@yamada-ui/pagination 1.0.43-next-20241021022308 → 1.1.0-dev-20241024011656

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,173 @@
1
+ "use client"
2
+ import {
3
+ PaginationItem
4
+ } from "./chunk-LFUBRVFO.mjs";
5
+ import {
6
+ PaginationProvider,
7
+ usePagination
8
+ } from "./chunk-O6EIBNLC.mjs";
9
+
10
+ // src/pagination.tsx
11
+ import {
12
+ forwardRef,
13
+ omitThemeProps,
14
+ ui,
15
+ useComponentMultiStyle
16
+ } from "@yamada-ui/core";
17
+ import { useValue } from "@yamada-ui/use-value";
18
+ import { cx, dataAttr, handlerAll } from "@yamada-ui/utils";
19
+ import { useMemo } from "react";
20
+ import { jsx, jsxs } from "react/jsx-runtime";
21
+ var Pagination = forwardRef((props, ref) => {
22
+ const [styles, mergedProps] = useComponentMultiStyle("Pagination", props);
23
+ const {
24
+ className,
25
+ boundaries,
26
+ component: Component = PaginationItem,
27
+ defaultPage,
28
+ isDisabled,
29
+ page,
30
+ siblings,
31
+ total,
32
+ withControls: _withControls = true,
33
+ withEdges: _withEdges = false,
34
+ containerProps,
35
+ controlNextProps,
36
+ controlPrevProps,
37
+ controlProps,
38
+ edgeFirstProps,
39
+ edgeLastProps,
40
+ edgeProps,
41
+ itemProps,
42
+ onChange: onChangeProp,
43
+ ...rest
44
+ } = omitThemeProps(mergedProps);
45
+ const withControls = useValue(_withControls);
46
+ const withEdges = useValue(_withEdges);
47
+ const { currentPage, range, onChange, onFirst, onLast, onNext, onPrev } = usePagination({
48
+ boundaries,
49
+ defaultPage,
50
+ isDisabled,
51
+ page,
52
+ siblings,
53
+ total,
54
+ onChange: onChangeProp
55
+ });
56
+ const children = useMemo(
57
+ () => range.map((page2, key) => /* @__PURE__ */ jsx(ui.li, { children: /* @__PURE__ */ jsx(
58
+ Component,
59
+ {
60
+ "aria-label": page2 !== "ellipsis" ? `Go to page ${page2}` : void 0,
61
+ isActive: currentPage === page2,
62
+ isDisabled,
63
+ ...itemProps,
64
+ page: page2,
65
+ onClick: handlerAll(
66
+ itemProps == null ? void 0 : itemProps.onClick,
67
+ page2 !== "ellipsis" ? () => onChange(page2) : void 0
68
+ )
69
+ }
70
+ ) }, key)),
71
+ [Component, currentPage, isDisabled, onChange, range, itemProps]
72
+ );
73
+ const css = {
74
+ ...styles.container
75
+ };
76
+ return /* @__PURE__ */ jsx(PaginationProvider, { value: styles, children: /* @__PURE__ */ jsx(
77
+ ui.nav,
78
+ {
79
+ ref,
80
+ className: cx("ui-pagination", className),
81
+ "data-disabled": dataAttr(isDisabled),
82
+ __css: css,
83
+ ...containerProps,
84
+ children: /* @__PURE__ */ jsxs(
85
+ ui.ul,
86
+ {
87
+ className: "ui-pagination-inner",
88
+ "data-disabled": dataAttr(isDisabled),
89
+ __css: {
90
+ alignItems: "center",
91
+ display: "flex",
92
+ ...styles.inner
93
+ },
94
+ ...rest,
95
+ children: [
96
+ withEdges ? /* @__PURE__ */ jsx(ui.li, { children: /* @__PURE__ */ jsx(
97
+ Component,
98
+ {
99
+ className: "ui-pagination__item--first",
100
+ "aria-label": "Go to first page",
101
+ isDisabled: isDisabled || currentPage === 1,
102
+ page: "first",
103
+ ...edgeProps,
104
+ ...edgeFirstProps,
105
+ onClick: handlerAll(
106
+ edgeProps == null ? void 0 : edgeProps.onClick,
107
+ edgeFirstProps == null ? void 0 : edgeFirstProps.onClick,
108
+ onFirst
109
+ )
110
+ }
111
+ ) }) : null,
112
+ withControls ? /* @__PURE__ */ jsx(ui.li, { children: /* @__PURE__ */ jsx(
113
+ Component,
114
+ {
115
+ className: "ui-pagination__item--prev",
116
+ "aria-label": "Go to previous page",
117
+ isDisabled: isDisabled || currentPage === 1,
118
+ page: "prev",
119
+ ...controlProps,
120
+ ...controlPrevProps,
121
+ onClick: handlerAll(
122
+ controlProps == null ? void 0 : controlProps.onClick,
123
+ controlPrevProps == null ? void 0 : controlPrevProps.onClick,
124
+ onPrev
125
+ )
126
+ }
127
+ ) }) : null,
128
+ children,
129
+ withControls ? /* @__PURE__ */ jsx(ui.li, { children: /* @__PURE__ */ jsx(
130
+ Component,
131
+ {
132
+ className: "ui-pagination__item--next",
133
+ "aria-label": "Go to next page",
134
+ isDisabled: isDisabled || currentPage === total,
135
+ page: "next",
136
+ ...controlProps,
137
+ ...controlNextProps,
138
+ onClick: handlerAll(
139
+ controlProps == null ? void 0 : controlProps.onClick,
140
+ controlNextProps == null ? void 0 : controlNextProps.onClick,
141
+ onNext
142
+ )
143
+ }
144
+ ) }) : null,
145
+ withEdges ? /* @__PURE__ */ jsx(ui.li, { children: /* @__PURE__ */ jsx(
146
+ Component,
147
+ {
148
+ className: "ui-pagination__item--last",
149
+ "aria-label": "Go to last page",
150
+ isDisabled: isDisabled || currentPage === total,
151
+ page: "last",
152
+ ...edgeProps,
153
+ ...edgeLastProps,
154
+ onClick: handlerAll(
155
+ edgeProps == null ? void 0 : edgeProps.onClick,
156
+ edgeLastProps == null ? void 0 : edgeLastProps.onClick,
157
+ onLast
158
+ )
159
+ }
160
+ ) }) : null
161
+ ]
162
+ }
163
+ )
164
+ }
165
+ ) });
166
+ });
167
+ Pagination.displayName = "Pagination";
168
+ Pagination.__ui__ = "Pagination";
169
+
170
+ export {
171
+ Pagination
172
+ };
173
+ //# sourceMappingURL=chunk-2SJMAKWY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/pagination.tsx"],"sourcesContent":["import type {\n CSSUIObject,\n HTMLUIProps,\n ThemeProps,\n Token,\n} from \"@yamada-ui/core\"\nimport type { FC } from \"react\"\nimport type { PaginationItemProps } from \"./pagination-item\"\nimport type { UsePaginationProps } from \"./use-pagination\"\nimport {\n forwardRef,\n omitThemeProps,\n ui,\n useComponentMultiStyle,\n} from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, dataAttr, handlerAll } from \"@yamada-ui/utils\"\nimport { useMemo } from \"react\"\nimport { PaginationItem } from \"./pagination-item\"\nimport { PaginationProvider, usePagination } from \"./use-pagination\"\n\ninterface PaginationOptions {\n /**\n * The pagination button component to use.\n */\n component?: FC<PaginationItemProps>\n /**\n * If `true`, display the control buttons.\n *\n * @default true\n */\n withControls?: Token<boolean>\n /**\n * If `true`, display the edge buttons.\n *\n * @default false\n */\n withEdges?: Token<boolean>\n /**\n * Props for container element.\n */\n containerProps?: HTMLUIProps<\"nav\">\n /**\n * Props for next of the control button element.\n */\n controlNextProps?: Omit<PaginationItemProps, \"page\">\n /**\n * Props for previous of the control button element.\n */\n controlPrevProps?: Omit<PaginationItemProps, \"page\">\n /**\n * Props for control button element.\n */\n controlProps?: Omit<PaginationItemProps, \"page\">\n /**\n * Props for first of the edge button element.\n */\n edgeFirstProps?: Omit<PaginationItemProps, \"page\">\n /**\n * Props for last of the edge button element.\n */\n edgeLastProps?: Omit<PaginationItemProps, \"page\">\n /**\n * Props for edge button element.\n */\n edgeProps?: Omit<PaginationItemProps, \"page\">\n /**\n * Props for button element.\n */\n itemProps?: Omit<PaginationItemProps, \"page\">\n}\n\nexport interface PaginationProps\n extends Omit<HTMLUIProps<\"ul\">, \"children\" | \"onChange\" | \"page\">,\n ThemeProps<\"Pagination\">,\n UsePaginationProps,\n PaginationOptions {}\n\n/**\n * `Pagination` is a component for managing the pagination and navigation of content.\n *\n * @see Docs https://yamada-ui.com/components/navigation/pagination\n */\nexport const Pagination = forwardRef<PaginationProps, \"ul\">((props, ref) => {\n const [styles, mergedProps] = useComponentMultiStyle(\"Pagination\", props)\n const {\n className,\n boundaries,\n component: Component = PaginationItem,\n defaultPage,\n isDisabled,\n page,\n siblings,\n total,\n withControls: _withControls = true,\n withEdges: _withEdges = false,\n containerProps,\n controlNextProps,\n controlPrevProps,\n controlProps,\n edgeFirstProps,\n edgeLastProps,\n edgeProps,\n itemProps,\n onChange: onChangeProp,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const withControls = useValue(_withControls)\n const withEdges = useValue(_withEdges)\n\n const { currentPage, range, onChange, onFirst, onLast, onNext, onPrev } =\n usePagination({\n boundaries,\n defaultPage,\n isDisabled,\n page,\n siblings,\n total,\n onChange: onChangeProp,\n })\n\n const children = useMemo(\n () =>\n range.map((page, key) => (\n <ui.li key={key}>\n <Component\n aria-label={page !== \"ellipsis\" ? `Go to page ${page}` : undefined}\n isActive={currentPage === page}\n isDisabled={isDisabled}\n {...itemProps}\n page={page}\n onClick={handlerAll(\n itemProps?.onClick,\n page !== \"ellipsis\" ? () => onChange(page) : undefined,\n )}\n />\n </ui.li>\n )),\n [Component, currentPage, isDisabled, onChange, range, itemProps],\n )\n\n const css: CSSUIObject = {\n ...styles.container,\n }\n\n return (\n <PaginationProvider value={styles}>\n <ui.nav\n ref={ref}\n className={cx(\"ui-pagination\", className)}\n data-disabled={dataAttr(isDisabled)}\n __css={css}\n {...containerProps}\n >\n <ui.ul\n className=\"ui-pagination-inner\"\n data-disabled={dataAttr(isDisabled)}\n __css={{\n alignItems: \"center\",\n display: \"flex\",\n ...styles.inner,\n }}\n {...rest}\n >\n {withEdges ? (\n <ui.li>\n <Component\n className=\"ui-pagination__item--first\"\n aria-label=\"Go to first page\"\n isDisabled={isDisabled || currentPage === 1}\n page=\"first\"\n {...edgeProps}\n {...edgeFirstProps}\n onClick={handlerAll(\n edgeProps?.onClick,\n edgeFirstProps?.onClick,\n onFirst,\n )}\n />\n </ui.li>\n ) : null}\n\n {withControls ? (\n <ui.li>\n <Component\n className=\"ui-pagination__item--prev\"\n aria-label=\"Go to previous page\"\n isDisabled={isDisabled || currentPage === 1}\n page=\"prev\"\n {...controlProps}\n {...controlPrevProps}\n onClick={handlerAll(\n controlProps?.onClick,\n controlPrevProps?.onClick,\n onPrev,\n )}\n />\n </ui.li>\n ) : null}\n\n {children}\n\n {withControls ? (\n <ui.li>\n <Component\n className=\"ui-pagination__item--next\"\n aria-label=\"Go to next page\"\n isDisabled={isDisabled || currentPage === total}\n page=\"next\"\n {...controlProps}\n {...controlNextProps}\n onClick={handlerAll(\n controlProps?.onClick,\n controlNextProps?.onClick,\n onNext,\n )}\n />\n </ui.li>\n ) : null}\n\n {withEdges ? (\n <ui.li>\n <Component\n className=\"ui-pagination__item--last\"\n aria-label=\"Go to last page\"\n isDisabled={isDisabled || currentPage === total}\n page=\"last\"\n {...edgeProps}\n {...edgeLastProps}\n onClick={handlerAll(\n edgeProps?.onClick,\n edgeLastProps?.onClick,\n onLast,\n )}\n />\n </ui.li>\n ) : null}\n </ui.ul>\n </ui.nav>\n </PaginationProvider>\n )\n})\n\nPagination.displayName = \"Pagination\"\nPagination.__ui__ = \"Pagination\"\n"],"mappings":"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","names":["page"]}
@@ -0,0 +1,78 @@
1
+ "use client"
2
+ import {
3
+ PaginationEllipsisIcon,
4
+ PaginationFirstIcon,
5
+ PaginationLastIcon,
6
+ PaginationNextIcon,
7
+ PaginationPrevIcon
8
+ } from "./chunk-VZWGYG76.mjs";
9
+ import {
10
+ usePaginationContext
11
+ } from "./chunk-O6EIBNLC.mjs";
12
+
13
+ // src/pagination-item.tsx
14
+ import { forwardRef, ui } from "@yamada-ui/core";
15
+ import { Ripple, useRipple } from "@yamada-ui/ripple";
16
+ import { cx, dataAttr } from "@yamada-ui/utils";
17
+ import { jsx, jsxs } from "react/jsx-runtime";
18
+ var iconMap = {
19
+ ellipsis: /* @__PURE__ */ jsx(PaginationEllipsisIcon, {}),
20
+ first: /* @__PURE__ */ jsx(PaginationFirstIcon, {}),
21
+ last: /* @__PURE__ */ jsx(PaginationLastIcon, {}),
22
+ next: /* @__PURE__ */ jsx(PaginationNextIcon, {}),
23
+ prev: /* @__PURE__ */ jsx(PaginationPrevIcon, {})
24
+ };
25
+ var PaginationItem = forwardRef(
26
+ ({ className, children, disableRipple, isActive, isDisabled, page, ...rest }, ref) => {
27
+ var _a;
28
+ const styles = usePaginationContext();
29
+ const isEllipsis = page === "ellipsis";
30
+ const { onPointerDown, ...rippleProps } = useRipple({
31
+ ...rest,
32
+ isDisabled: disableRipple || isDisabled || isEllipsis
33
+ });
34
+ children != null ? children : children = (_a = iconMap[page]) != null ? _a : page;
35
+ const css = {
36
+ alignItems: "center",
37
+ display: "flex",
38
+ justifyContent: "center",
39
+ overflow: "hidden",
40
+ position: "relative",
41
+ userSelect: "none",
42
+ ...styles.item,
43
+ ...styles[page]
44
+ };
45
+ const Component = ui[isEllipsis ? "span" : "button"];
46
+ return /* @__PURE__ */ jsxs(
47
+ Component,
48
+ {
49
+ ref,
50
+ ...!isEllipsis ? {
51
+ "data-disabled": dataAttr(isDisabled),
52
+ "data-selected": dataAttr(isActive),
53
+ disabled: isDisabled
54
+ } : {},
55
+ className: cx(
56
+ "ui-pagination__item",
57
+ isEllipsis ? "ui-pagination__item--ellipsis" : void 0,
58
+ className
59
+ ),
60
+ tabIndex: !isEllipsis ? 0 : -1,
61
+ __css: css,
62
+ ...rest,
63
+ onPointerDown,
64
+ children: [
65
+ children,
66
+ /* @__PURE__ */ jsx(Ripple, { isDisabled: disableRipple || isDisabled, ...rippleProps })
67
+ ]
68
+ }
69
+ );
70
+ }
71
+ );
72
+ PaginationItem.displayName = "PaginationItem";
73
+ PaginationItem.__ui__ = "PaginationItem";
74
+
75
+ export {
76
+ PaginationItem
77
+ };
78
+ //# sourceMappingURL=chunk-LFUBRVFO.mjs.map
@@ -0,0 +1 @@
1
+ {"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`, 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 isActive?: boolean\n /**\n * If `true`, the pagination item will be disabled.\n *\n * @default false\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 { className, children, disableRipple, isActive, isDisabled, page, ...rest },\n ref,\n ) => {\n const styles = usePaginationContext()\n const isEllipsis = page === \"ellipsis\"\n const { onPointerDown, ...rippleProps } = useRipple({\n ...rest,\n isDisabled: disableRipple || isDisabled || isEllipsis,\n })\n\n children ??= iconMap[page] ?? page\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\n const Component = ui[isEllipsis ? \"span\" : \"button\"]\n\n return (\n <Component\n ref={ref}\n {...(!isEllipsis\n ? {\n \"data-disabled\": dataAttr(isDisabled),\n \"data-selected\": dataAttr(isActive),\n disabled: isDisabled,\n }\n : {})}\n className={cx(\n \"ui-pagination__item\",\n isEllipsis ? \"ui-pagination__item--ellipsis\" : undefined,\n className,\n )}\n tabIndex={!isEllipsis ? 0 : -1}\n __css={css}\n {...rest}\n onPointerDown={onPointerDown}\n >\n {children}\n\n <Ripple isDisabled={disableRipple || isDisabled} {...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;AA0CjB,cAmCN,YAnCM;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,EAAE,WAAW,UAAU,eAAe,UAAU,YAAY,MAAM,GAAG,KAAK,GAC1E,QACG;AAzDP;AA0DI,UAAM,SAAS,qBAAqB;AACpC,UAAM,aAAa,SAAS;AAC5B,UAAM,EAAE,eAAe,GAAG,YAAY,IAAI,UAAU;AAAA,MAClD,GAAG;AAAA,MACH,YAAY,iBAAiB,cAAc;AAAA,IAC7C,CAAC;AAED,8CAAa,aAAQ,IAAI,MAAZ,YAAiB;AAE9B,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;AAEA,UAAM,YAAY,GAAG,aAAa,SAAS,QAAQ;AAEnD,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACC,GAAI,CAAC,aACF;AAAA,UACE,iBAAiB,SAAS,UAAU;AAAA,UACpC,iBAAiB,SAAS,QAAQ;AAAA,UAClC,UAAU;AAAA,QACZ,IACA,CAAC;AAAA,QACL,WAAW;AAAA,UACT;AAAA,UACA,aAAa,kCAAkC;AAAA,UAC/C;AAAA,QACF;AAAA,QACA,UAAU,CAAC,aAAa,IAAI;AAAA,QAC5B,OAAO;AAAA,QACN,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA;AAAA,UAED,oBAAC,UAAO,YAAY,iBAAiB,YAAa,GAAG,aAAa;AAAA;AAAA;AAAA,IACpE;AAAA,EAEJ;AACF;AAEA,eAAe,cAAc;AAC7B,eAAe,SAAS;","names":[]}
package/dist/index.js CHANGED
@@ -192,51 +192,53 @@ var iconMap = {
192
192
  next: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PaginationNextIcon, {}),
193
193
  prev: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PaginationPrevIcon, {})
194
194
  };
195
- var PaginationItem = ({
196
- className,
197
- children,
198
- disableRipple,
199
- isActive,
200
- isDisabled,
201
- page,
202
- ...rest
203
- }) => {
204
- var _a;
205
- const styles = usePaginationContext();
206
- const { onPointerDown, ...rippleProps } = (0, import_ripple.useRipple)({
207
- ...rest,
208
- isDisabled: disableRipple || isDisabled
209
- });
210
- children != null ? children : children = (_a = iconMap[page]) != null ? _a : page;
211
- const css = {
212
- alignItems: "center",
213
- display: "flex",
214
- justifyContent: "center",
215
- overflow: "hidden",
216
- position: "relative",
217
- userSelect: "none",
218
- ...styles.item,
219
- ...styles[page]
220
- };
221
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
222
- import_core.ui.button,
223
- {
224
- type: "button",
225
- className: (0, import_utils2.cx)("ui-pagination__item", className),
226
- "data-disabled": (0, import_utils2.dataAttr)(isDisabled),
227
- "data-selected": (0, import_utils2.dataAttr)(isActive),
228
- disabled: isDisabled,
229
- tabIndex: page !== "ellipsis" ? 0 : -1,
230
- __css: css,
195
+ var PaginationItem = (0, import_core.forwardRef)(
196
+ ({ className, children, disableRipple, isActive, isDisabled, page, ...rest }, ref) => {
197
+ var _a;
198
+ const styles = usePaginationContext();
199
+ const isEllipsis = page === "ellipsis";
200
+ const { onPointerDown, ...rippleProps } = (0, import_ripple.useRipple)({
231
201
  ...rest,
232
- onPointerDown,
233
- children: [
234
- children,
235
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_ripple.Ripple, { isDisabled: disableRipple || isDisabled, ...rippleProps })
236
- ]
237
- }
238
- );
239
- };
202
+ isDisabled: disableRipple || isDisabled || isEllipsis
203
+ });
204
+ children != null ? children : children = (_a = iconMap[page]) != null ? _a : page;
205
+ const css = {
206
+ alignItems: "center",
207
+ display: "flex",
208
+ justifyContent: "center",
209
+ overflow: "hidden",
210
+ position: "relative",
211
+ userSelect: "none",
212
+ ...styles.item,
213
+ ...styles[page]
214
+ };
215
+ const Component = import_core.ui[isEllipsis ? "span" : "button"];
216
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
217
+ Component,
218
+ {
219
+ ref,
220
+ ...!isEllipsis ? {
221
+ "data-disabled": (0, import_utils2.dataAttr)(isDisabled),
222
+ "data-selected": (0, import_utils2.dataAttr)(isActive),
223
+ disabled: isDisabled
224
+ } : {},
225
+ className: (0, import_utils2.cx)(
226
+ "ui-pagination__item",
227
+ isEllipsis ? "ui-pagination__item--ellipsis" : void 0,
228
+ className
229
+ ),
230
+ tabIndex: !isEllipsis ? 0 : -1,
231
+ __css: css,
232
+ ...rest,
233
+ onPointerDown,
234
+ children: [
235
+ children,
236
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_ripple.Ripple, { isDisabled: disableRipple || isDisabled, ...rippleProps })
237
+ ]
238
+ }
239
+ );
240
+ }
241
+ );
240
242
  PaginationItem.displayName = "PaginationItem";
241
243
  PaginationItem.__ui__ = "PaginationItem";
242
244
 
@@ -255,13 +257,13 @@ var Pagination = (0, import_core2.forwardRef)((props, ref) => {
255
257
  total,
256
258
  withControls: _withControls = true,
257
259
  withEdges: _withEdges = false,
260
+ containerProps,
258
261
  controlNextProps,
259
262
  controlPrevProps,
260
263
  controlProps,
261
264
  edgeFirstProps,
262
265
  edgeLastProps,
263
266
  edgeProps,
264
- innerProps,
265
267
  itemProps,
266
268
  onChange: onChangeProp,
267
269
  ...rest
@@ -278,117 +280,113 @@ var Pagination = (0, import_core2.forwardRef)((props, ref) => {
278
280
  onChange: onChangeProp
279
281
  });
280
282
  const children = (0, import_react2.useMemo)(
281
- () => range.map((page2, key) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
283
+ () => range.map((page2, key) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_core2.ui.li, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
282
284
  Component,
283
285
  {
284
- "aria-label": page2 === "ellipsis" ? "Jump to omitted pages" : `Go to page ${page2}`,
286
+ "aria-label": page2 !== "ellipsis" ? `Go to page ${page2}` : void 0,
285
287
  isActive: currentPage === page2,
286
288
  isDisabled,
287
- page: page2,
288
289
  ...itemProps,
290
+ page: page2,
289
291
  onClick: (0, import_utils3.handlerAll)(
290
292
  itemProps == null ? void 0 : itemProps.onClick,
291
293
  page2 !== "ellipsis" ? () => onChange(page2) : void 0
292
294
  )
293
- },
294
- key
295
- )),
295
+ }
296
+ ) }, key)),
296
297
  [Component, currentPage, isDisabled, onChange, range, itemProps]
297
298
  );
298
299
  const css = {
299
- alignItems: "center",
300
- display: "flex",
301
300
  ...styles.container
302
301
  };
303
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PaginationProvider, { value: styles, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
304
- import_core2.ui.div,
302
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PaginationProvider, { value: styles, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
303
+ import_core2.ui.nav,
305
304
  {
306
305
  ref,
307
306
  className: (0, import_utils3.cx)("ui-pagination", className),
308
- role: "navigation",
309
- __css: css,
310
- ...rest,
311
307
  "data-disabled": (0, import_utils3.dataAttr)(isDisabled),
312
- children: [
313
- withEdges ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
314
- Component,
315
- {
316
- className: "ui-pagination__item--first",
317
- "aria-label": "Go to first page",
318
- isDisabled: isDisabled || currentPage === 1,
319
- page: "first",
320
- ...edgeProps,
321
- ...edgeFirstProps,
322
- onClick: (0, import_utils3.handlerAll)(
323
- edgeProps == null ? void 0 : edgeProps.onClick,
324
- edgeFirstProps == null ? void 0 : edgeFirstProps.onClick,
325
- onFirst
326
- )
327
- }
328
- ) : null,
329
- withControls ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
330
- Component,
331
- {
332
- className: "ui-pagination__item--prev",
333
- "aria-label": "Go to previous page",
334
- isDisabled: isDisabled || currentPage === 1,
335
- page: "prev",
336
- ...controlProps,
337
- ...controlPrevProps,
338
- onClick: (0, import_utils3.handlerAll)(
339
- controlProps == null ? void 0 : controlProps.onClick,
340
- controlPrevProps == null ? void 0 : controlPrevProps.onClick,
341
- onPrev
342
- )
343
- }
344
- ) : null,
345
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
346
- import_core2.ui.div,
347
- {
348
- className: "ui-pagination-inner",
349
- __css: {
350
- alignItems: "center",
351
- display: "flex",
352
- justifyContent: "center",
353
- ...styles.inner
354
- },
355
- ...innerProps,
356
- children
357
- }
358
- ),
359
- withControls ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
360
- Component,
361
- {
362
- className: "ui-pagination__item--next",
363
- "aria-label": "Go to next page",
364
- isDisabled: isDisabled || currentPage === total,
365
- page: "next",
366
- ...controlProps,
367
- ...controlNextProps,
368
- onClick: (0, import_utils3.handlerAll)(
369
- controlProps == null ? void 0 : controlProps.onClick,
370
- controlNextProps == null ? void 0 : controlNextProps.onClick,
371
- onNext
372
- )
373
- }
374
- ) : null,
375
- withEdges ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
376
- Component,
377
- {
378
- className: "ui-pagination__item--last",
379
- "aria-label": "Go to last page",
380
- isDisabled: isDisabled || currentPage === total,
381
- page: "last",
382
- ...edgeProps,
383
- ...edgeLastProps,
384
- onClick: (0, import_utils3.handlerAll)(
385
- edgeProps == null ? void 0 : edgeProps.onClick,
386
- edgeLastProps == null ? void 0 : edgeLastProps.onClick,
387
- onLast
388
- )
389
- }
390
- ) : null
391
- ]
308
+ __css: css,
309
+ ...containerProps,
310
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
311
+ import_core2.ui.ul,
312
+ {
313
+ className: "ui-pagination-inner",
314
+ "data-disabled": (0, import_utils3.dataAttr)(isDisabled),
315
+ __css: {
316
+ alignItems: "center",
317
+ display: "flex",
318
+ ...styles.inner
319
+ },
320
+ ...rest,
321
+ children: [
322
+ withEdges ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_core2.ui.li, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
323
+ Component,
324
+ {
325
+ className: "ui-pagination__item--first",
326
+ "aria-label": "Go to first page",
327
+ isDisabled: isDisabled || currentPage === 1,
328
+ page: "first",
329
+ ...edgeProps,
330
+ ...edgeFirstProps,
331
+ onClick: (0, import_utils3.handlerAll)(
332
+ edgeProps == null ? void 0 : edgeProps.onClick,
333
+ edgeFirstProps == null ? void 0 : edgeFirstProps.onClick,
334
+ onFirst
335
+ )
336
+ }
337
+ ) }) : null,
338
+ withControls ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_core2.ui.li, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
339
+ Component,
340
+ {
341
+ className: "ui-pagination__item--prev",
342
+ "aria-label": "Go to previous page",
343
+ isDisabled: isDisabled || currentPage === 1,
344
+ page: "prev",
345
+ ...controlProps,
346
+ ...controlPrevProps,
347
+ onClick: (0, import_utils3.handlerAll)(
348
+ controlProps == null ? void 0 : controlProps.onClick,
349
+ controlPrevProps == null ? void 0 : controlPrevProps.onClick,
350
+ onPrev
351
+ )
352
+ }
353
+ ) }) : null,
354
+ children,
355
+ withControls ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_core2.ui.li, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
356
+ Component,
357
+ {
358
+ className: "ui-pagination__item--next",
359
+ "aria-label": "Go to next page",
360
+ isDisabled: isDisabled || currentPage === total,
361
+ page: "next",
362
+ ...controlProps,
363
+ ...controlNextProps,
364
+ onClick: (0, import_utils3.handlerAll)(
365
+ controlProps == null ? void 0 : controlProps.onClick,
366
+ controlNextProps == null ? void 0 : controlNextProps.onClick,
367
+ onNext
368
+ )
369
+ }
370
+ ) }) : null,
371
+ withEdges ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_core2.ui.li, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
372
+ Component,
373
+ {
374
+ className: "ui-pagination__item--last",
375
+ "aria-label": "Go to last page",
376
+ isDisabled: isDisabled || currentPage === total,
377
+ page: "last",
378
+ ...edgeProps,
379
+ ...edgeLastProps,
380
+ onClick: (0, import_utils3.handlerAll)(
381
+ edgeProps == null ? void 0 : edgeProps.onClick,
382
+ edgeLastProps == null ? void 0 : edgeLastProps.onClick,
383
+ onLast
384
+ )
385
+ }
386
+ ) }) : null
387
+ ]
388
+ }
389
+ )
392
390
  }
393
391
  ) });
394
392
  });