{"version":3,"sources":["../src/pagination-item.tsx"],"sourcesContent":["import type { CSSUIObject, HTMLUIProps } from \"@yamada-ui/core\"\nimport type { ReactNode } from \"react\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { Ripple, useRipple } from \"@yamada-ui/ripple\"\nimport { cx, dataAttr } from \"@yamada-ui/utils\"\nimport {\n  PaginationEllipsisIcon,\n  PaginationFirstIcon,\n  PaginationLastIcon,\n  PaginationNextIcon,\n  PaginationPrevIcon,\n} from \"./pagination-icon\"\nimport { usePaginationContext } from \"./use-pagination\"\n\ninterface PaginationItemOptions {\n  /**\n   * The type of the page or item assigned to the pagination item.\n   */\n  page: \"ellipsis\" | \"first\" | \"last\" | \"next\" | \"prev\" | number\n  /**\n   * If `true`, the pagination item will be activated.\n   *\n   * @default false\n   */\n  active?: boolean\n  /**\n   * If `true`, the pagination item will be disabled.\n   *\n   * @default false\n   */\n  disabled?: boolean\n  /**\n   * If `true`, disable ripple effects when pressing a element.\n   *\n   * @default false\n   */\n  disableRipple?: boolean\n  /**\n   * If `true`, the pagination item will be activated.\n   *\n   * @default false\n   *\n   * @deprecated Use `active` instead.\n   */\n  isActive?: boolean\n  /**\n   * If `true`, the pagination item will be disabled.\n   *\n   * @default false\n   *\n   * @deprecated Use `disabled` instead.\n   */\n  isDisabled?: boolean\n}\n\nexport interface PaginationItemProps\n  extends Omit<HTMLUIProps<\"button\">, \"page\">,\n    PaginationItemOptions {}\n\nconst iconMap: {\n  [key in \"ellipsis\" | \"first\" | \"last\" | \"next\" | \"prev\" | number]: ReactNode\n} = {\n  ellipsis: <PaginationEllipsisIcon />,\n  first: <PaginationFirstIcon />,\n  last: <PaginationLastIcon />,\n  next: <PaginationNextIcon />,\n  prev: <PaginationPrevIcon />,\n}\n\nexport const PaginationItem = forwardRef<PaginationItemProps, \"button\">(\n  (\n    {\n      className,\n      isActive,\n      active = isActive,\n      page,\n      children = iconMap[page] ?? page,\n      isDisabled,\n      disabled = isDisabled,\n      disableRipple,\n      ...rest\n    },\n    ref,\n  ) => {\n    const styles = usePaginationContext()\n    const ellipsis = page === \"ellipsis\"\n    const { onPointerDown, ...rippleProps } = useRipple({\n      ...rest,\n      disabled: disableRipple || disabled || ellipsis,\n    })\n    const css: CSSUIObject = {\n      alignItems: \"center\",\n      display: \"flex\",\n      justifyContent: \"center\",\n      overflow: \"hidden\",\n      position: \"relative\",\n      userSelect: \"none\",\n      ...styles.item,\n      ...styles[page],\n    }\n    const Component = ui[ellipsis ? \"span\" : \"button\"]\n\n    return (\n      <Component\n        ref={ref}\n        {...(!ellipsis\n          ? {\n              type: \"button\",\n              \"data-disabled\": dataAttr(disabled),\n              \"data-selected\": dataAttr(active),\n              disabled,\n            }\n          : {})}\n        className={cx(\n          \"ui-pagination__item\",\n          ellipsis ? \"ui-pagination__item--ellipsis\" : undefined,\n          className,\n        )}\n        tabIndex={!ellipsis ? 0 : -1}\n        __css={css}\n        {...rest}\n        onPointerDown={onPointerDown}\n      >\n        {children}\n\n        <Ripple {...rippleProps} />\n      </Component>\n    )\n  },\n)\n\nPaginationItem.displayName = \"PaginationItem\"\nPaginationItem.__ui__ = \"PaginationItem\"\n"],"mappings":";;;;;;;;;;;;;AAEA,SAAS,YAAY,UAAU;AAC/B,SAAS,QAAQ,iBAAiB;AAClC,SAAS,IAAI,gBAAgB;AA0DjB,cAyCN,YAzCM;AAHZ,IAAM,UAEF;AAAA,EACF,UAAU,oBAAC,0BAAuB;AAAA,EAClC,OAAO,oBAAC,uBAAoB;AAAA,EAC5B,MAAM,oBAAC,sBAAmB;AAAA,EAC1B,MAAM,oBAAC,sBAAmB;AAAA,EAC1B,MAAM,oBAAC,sBAAmB;AAC5B;AAEO,IAAM,iBAAiB;AAAA,EAC5B,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,YAAW,sBAAQ,IAAI,MAAZ,YAAiB;AAAA,IAC5B;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,SAAS,qBAAqB;AACpC,UAAM,WAAW,SAAS;AAC1B,UAAM,EAAE,eAAe,GAAG,YAAY,IAAI,UAAU;AAAA,MAClD,GAAG;AAAA,MACH,UAAU,iBAAiB,YAAY;AAAA,IACzC,CAAC;AACD,UAAM,MAAmB;AAAA,MACvB,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,GAAG,OAAO;AAAA,MACV,GAAG,OAAO,IAAI;AAAA,IAChB;AACA,UAAM,YAAY,GAAG,WAAW,SAAS,QAAQ;AAEjD,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACC,GAAI,CAAC,WACF;AAAA,UACE,MAAM;AAAA,UACN,iBAAiB,SAAS,QAAQ;AAAA,UAClC,iBAAiB,SAAS,MAAM;AAAA,UAChC;AAAA,QACF,IACA,CAAC;AAAA,QACL,WAAW;AAAA,UACT;AAAA,UACA,WAAW,kCAAkC;AAAA,UAC7C;AAAA,QACF;AAAA,QACA,UAAU,CAAC,WAAW,IAAI;AAAA,QAC1B,OAAO;AAAA,QACN,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA;AAAA,UAED,oBAAC,UAAQ,GAAG,aAAa;AAAA;AAAA;AAAA,IAC3B;AAAA,EAEJ;AACF;AAEA,eAAe,cAAc;AAC7B,eAAe,SAAS;","names":[]}