UNPKG

@yamada-ui/pagination

Version:

Yamada UI pagination component

87 lines (85 loc) 2.31 kB
"use client" import { PaginationEllipsisIcon, PaginationFirstIcon, PaginationLastIcon, PaginationNextIcon, PaginationPrevIcon } from "./chunk-VZWGYG76.mjs"; import { usePaginationContext } from "./chunk-ZOXC7X6K.mjs"; // src/pagination-item.tsx import { forwardRef, ui } from "@yamada-ui/core"; import { Ripple, useRipple } from "@yamada-ui/ripple"; import { cx, dataAttr } from "@yamada-ui/utils"; import { jsx, jsxs } from "react/jsx-runtime"; var iconMap = { ellipsis: /* @__PURE__ */ jsx(PaginationEllipsisIcon, {}), first: /* @__PURE__ */ jsx(PaginationFirstIcon, {}), last: /* @__PURE__ */ jsx(PaginationLastIcon, {}), next: /* @__PURE__ */ jsx(PaginationNextIcon, {}), prev: /* @__PURE__ */ jsx(PaginationPrevIcon, {}) }; var PaginationItem = forwardRef( ({ className, isActive, active = isActive, page, children = ((_a) => (_a = iconMap[page]) != null ? _a : page)(), isDisabled, disabled = isDisabled, disableRipple, ...rest }, ref) => { const styles = usePaginationContext(); const ellipsis = page === "ellipsis"; const { onPointerDown, ...rippleProps } = useRipple({ ...rest, disabled: disableRipple || disabled || ellipsis }); const css = { alignItems: "center", display: "flex", justifyContent: "center", overflow: "hidden", position: "relative", userSelect: "none", ...styles.item, ...styles[page] }; const Component = ui[ellipsis ? "span" : "button"]; return /* @__PURE__ */ jsxs( Component, { ref, ...!ellipsis ? { type: "button", "data-disabled": dataAttr(disabled), "data-selected": dataAttr(active), disabled } : {}, className: cx( "ui-pagination__item", ellipsis ? "ui-pagination__item--ellipsis" : void 0, className ), tabIndex: !ellipsis ? 0 : -1, __css: css, ...rest, onPointerDown, children: [ children, /* @__PURE__ */ jsx(Ripple, { ...rippleProps }) ] } ); } ); PaginationItem.displayName = "PaginationItem"; PaginationItem.__ui__ = "PaginationItem"; export { PaginationItem }; //# sourceMappingURL=chunk-V3A6LHVY.mjs.map