panelui-native 0.38.0 → 0.41.0

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.
Files changed (67) hide show
  1. package/README.md +3 -1
  2. package/lib/module/components/card/index.js +172 -3
  3. package/lib/module/components/card/index.js.map +1 -1
  4. package/lib/module/components/drawer/index.js +13 -4
  5. package/lib/module/components/drawer/index.js.map +1 -1
  6. package/lib/module/components/heatmap-chart/index.js +113 -6
  7. package/lib/module/components/heatmap-chart/index.js.map +1 -1
  8. package/lib/module/components/map/index.js +72 -12
  9. package/lib/module/components/map/index.js.map +1 -1
  10. package/lib/module/components/pagination/index.js +529 -0
  11. package/lib/module/components/pagination/index.js.map +1 -0
  12. package/lib/module/components/panelside/index.js +68 -18
  13. package/lib/module/components/panelside/index.js.map +1 -1
  14. package/lib/module/components/ring-chart/index.js +183 -45
  15. package/lib/module/components/ring-chart/index.js.map +1 -1
  16. package/lib/module/components/steps/index.js +8 -6
  17. package/lib/module/components/steps/index.js.map +1 -1
  18. package/lib/module/components/table/index.js +100 -26
  19. package/lib/module/components/table/index.js.map +1 -1
  20. package/lib/module/components/text-animation/index.js +857 -0
  21. package/lib/module/components/text-animation/index.js.map +1 -0
  22. package/lib/module/components/timeline/index.js +8 -7
  23. package/lib/module/components/timeline/index.js.map +1 -1
  24. package/lib/module/icons/index.js +25 -7
  25. package/lib/module/icons/index.js.map +1 -1
  26. package/lib/module/index.js +2 -0
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/typescript/src/components/card/index.d.ts +20 -0
  29. package/lib/typescript/src/components/card/index.d.ts.map +1 -1
  30. package/lib/typescript/src/components/drawer/index.d.ts +13 -1
  31. package/lib/typescript/src/components/drawer/index.d.ts.map +1 -1
  32. package/lib/typescript/src/components/heatmap-chart/index.d.ts +51 -3
  33. package/lib/typescript/src/components/heatmap-chart/index.d.ts.map +1 -1
  34. package/lib/typescript/src/components/map/index.d.ts +37 -2
  35. package/lib/typescript/src/components/map/index.d.ts.map +1 -1
  36. package/lib/typescript/src/components/pagination/index.d.ts +285 -0
  37. package/lib/typescript/src/components/pagination/index.d.ts.map +1 -0
  38. package/lib/typescript/src/components/panelside/index.d.ts +50 -4
  39. package/lib/typescript/src/components/panelside/index.d.ts.map +1 -1
  40. package/lib/typescript/src/components/ring-chart/index.d.ts +75 -8
  41. package/lib/typescript/src/components/ring-chart/index.d.ts.map +1 -1
  42. package/lib/typescript/src/components/steps/index.d.ts +8 -6
  43. package/lib/typescript/src/components/steps/index.d.ts.map +1 -1
  44. package/lib/typescript/src/components/table/index.d.ts +59 -17
  45. package/lib/typescript/src/components/table/index.d.ts.map +1 -1
  46. package/lib/typescript/src/components/text-animation/index.d.ts +268 -0
  47. package/lib/typescript/src/components/text-animation/index.d.ts.map +1 -0
  48. package/lib/typescript/src/components/timeline/index.d.ts +8 -7
  49. package/lib/typescript/src/components/timeline/index.d.ts.map +1 -1
  50. package/lib/typescript/src/icons/index.d.ts +6 -0
  51. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  52. package/lib/typescript/src/index.d.ts +6 -4
  53. package/lib/typescript/src/index.d.ts.map +1 -1
  54. package/package.json +1 -1
  55. package/src/components/card/index.tsx +227 -2
  56. package/src/components/drawer/index.tsx +31 -9
  57. package/src/components/heatmap-chart/index.tsx +147 -5
  58. package/src/components/map/index.tsx +158 -14
  59. package/src/components/pagination/index.tsx +603 -0
  60. package/src/components/panelside/index.tsx +134 -19
  61. package/src/components/ring-chart/index.tsx +269 -47
  62. package/src/components/steps/index.tsx +8 -6
  63. package/src/components/table/index.tsx +146 -30
  64. package/src/components/text-animation/index.tsx +1093 -0
  65. package/src/components/timeline/index.tsx +8 -7
  66. package/src/icons/index.tsx +23 -4
  67. package/src/index.ts +28 -1
@@ -0,0 +1,529 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Pagination — moving through a result set one page at a time.
5
+ *
6
+ * The component owns the arithmetic and nothing else. Give it how many pages
7
+ * there are and which one you are on, and it works out which numbers to show,
8
+ * where the gaps fall, and which controls are dead at the ends; it never fetches
9
+ * and never slices, because the data is yours.
10
+ *
11
+ * ```tsx
12
+ * <Pagination count={12} page={page} onPageChange={setPage} />
13
+ * ```
14
+ *
15
+ * Three presentations, because a phone is not a desktop:
16
+ *
17
+ * - `numbers` — the full run, with the middle folded into ellipses. Fits about
18
+ * seven targets across a phone, which is what `siblings` and `boundaries`
19
+ * are tuned for.
20
+ * - `compact` — the two arrows with `3 / 12` between them. Digits and a slash,
21
+ * so there is no sentence to translate.
22
+ * - `simple` — labelled Previous and Next, for a flow you walk rather than
23
+ * jump around in: a wizard, an article, a set of onboarding cards.
24
+ *
25
+ * Every target is at least 44pt in both axes, and the small size keeps that
26
+ * reach with `hitSlop` rather than by growing — the row gets denser, the
27
+ * fingers do not get smaller.
28
+ *
29
+ * An ellipsis is a button, not punctuation. A dead 44pt target in the middle of
30
+ * a row of live ones is a thing people tap and then think is broken, so tapping
31
+ * one jumps `pageJump` pages that way.
32
+ *
33
+ * Given children, the root becomes a row with them on the leading edge and the
34
+ * controls on the trailing one — which is where `Pagination.Status` goes:
35
+ *
36
+ * ```tsx
37
+ * <Pagination count={12} page={page} onPageChange={setPage} variant="compact">
38
+ * <Pagination.Status page={page} pageSize={20} total={240} />
39
+ * </Pagination>
40
+ * ```
41
+ */
42
+ import { createContext, forwardRef, useCallback, useContext, useMemo, useState } from 'react';
43
+ import { View } from 'react-native';
44
+ import { tv } from 'tailwind-variants';
45
+ import { useCSSVariable } from 'uniwind';
46
+ import { ChevronLeftIcon, ChevronRightIcon, EllipsisIcon } from "../../icons/index.js";
47
+ import { useDirection } from "../../hooks/use-direction.js";
48
+ import { AnimatedPressable } from "../../primitives/animated-pressable.js";
49
+ import { Text, textChildren } from "../../primitives/text.js";
50
+ import { cn } from "../../utils/cn.js";
51
+ import { selectionTick } from "../../utils/haptics.js";
52
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
53
+ /**
54
+ * What the small size gives back as padding. 44pt is the smallest target a
55
+ * finger reliably hits, and the row is allowed to get tighter than that only
56
+ * because the reach is restored outside the paint — so this is exactly the
57
+ * difference between the small target's 32pt and that 44.
58
+ */
59
+ const SMALL_HIT_SLOP = {
60
+ top: 6,
61
+ bottom: 6,
62
+ left: 6,
63
+ right: 6
64
+ };
65
+ const paginationVariants = tv({
66
+ slots: {
67
+ root: 'flex-row items-center',
68
+ list: 'flex-row items-center',
69
+ item: 'items-center justify-center rounded-lg',
70
+ itemLabel: 'font-medium tabular-nums',
71
+ ellipsis: 'items-center justify-center',
72
+ status: 'text-muted-foreground tabular-nums',
73
+ summary: 'text-muted-foreground tabular-nums'
74
+ },
75
+ variants: {
76
+ size: {
77
+ default: {
78
+ list: 'gap-1',
79
+ item: 'h-11 min-w-11 px-1',
80
+ itemLabel: 'text-sm',
81
+ ellipsis: 'h-11 w-11',
82
+ status: 'text-sm',
83
+ summary: 'text-sm'
84
+ },
85
+ sm: {
86
+ list: 'gap-0.5',
87
+ item: 'h-8 min-w-8 px-1',
88
+ itemLabel: 'text-xs',
89
+ ellipsis: 'h-8 w-8',
90
+ status: 'text-xs',
91
+ summary: 'text-xs'
92
+ }
93
+ },
94
+ /** Whether the item is the page you are on. */
95
+ current: {
96
+ true: {
97
+ item: 'bg-primary',
98
+ itemLabel: 'text-primary-foreground'
99
+ },
100
+ false: {
101
+ itemLabel: 'text-foreground'
102
+ }
103
+ },
104
+ disabled: {
105
+ true: {
106
+ item: 'opacity-[0.4]'
107
+ }
108
+ }
109
+ },
110
+ defaultVariants: {
111
+ size: 'default',
112
+ current: false
113
+ }
114
+ });
115
+ const iconSize = {
116
+ default: 20,
117
+ sm: 16
118
+ };
119
+
120
+ /**
121
+ * The state every part reads. A `Pagination.Previous` dropped into a row of
122
+ * your own still knows which page it is on and whether it is at the start,
123
+ * because that answer lives here rather than in the props it was given.
124
+ */
125
+
126
+ const PaginationContext = /*#__PURE__*/createContext(null);
127
+ function usePagination(part) {
128
+ const context = useContext(PaginationContext);
129
+ if (!context) {
130
+ throw new Error(`${part} must be used inside <Pagination>.`);
131
+ }
132
+ return context;
133
+ }
134
+ const range = (start, end) => end < start ? [] : Array.from({
135
+ length: end - start + 1
136
+ }, (_, i) => start + i);
137
+ /**
138
+ * Which numbers to draw, and where the gaps go.
139
+ *
140
+ * The run is a fixed width rather than a sliding window: the same number of
141
+ * targets whichever page you are on, so the row does not reflow under the
142
+ * finger as you step through it and the arrow you were aiming at stays put.
143
+ * `boundaries` pins the ends, `siblings` pads the middle, and a gap of exactly
144
+ * one page is drawn as that page instead of an ellipsis — a `…` that hides a
145
+ * single number is longer than the number.
146
+ *
147
+ * Exported because a caller sometimes needs the same run for a control of their
148
+ * own, and two implementations of this would drift.
149
+ */
150
+ export function paginationRange({
151
+ count,
152
+ page,
153
+ siblings = 1,
154
+ boundaries = 1
155
+ }) {
156
+ const startPages = range(1, Math.min(boundaries, count));
157
+ const endPages = range(Math.max(count - boundaries + 1, boundaries + 1), count);
158
+ const siblingsStart = Math.max(Math.min(page - siblings, count - boundaries - siblings * 2 - 1), boundaries + 2);
159
+ const siblingsEnd = Math.min(Math.max(page + siblings, boundaries + siblings * 2 + 2), endPages.length > 0 ? endPages[0] - 2 : count - 1);
160
+ return [...startPages, ...(siblingsStart > boundaries + 2 ? ['start-ellipsis'] : boundaries + 1 < count - boundaries ? [boundaries + 1] : []), ...range(siblingsStart, siblingsEnd), ...(siblingsEnd < count - boundaries - 1 ? ['end-ellipsis'] : count - boundaries > boundaries ? [count - boundaries] : []), ...endPages];
161
+ }
162
+ const PaginationRoot = /*#__PURE__*/forwardRef(({
163
+ className,
164
+ count,
165
+ page: controlledPage,
166
+ defaultPage = 1,
167
+ onPageChange,
168
+ variant = 'numbers',
169
+ size = 'default',
170
+ siblings = 1,
171
+ boundaries = 1,
172
+ controls = true,
173
+ pageJump = 5,
174
+ disabled = false,
175
+ accessibilityLabel = 'Pagination',
176
+ children,
177
+ ...props
178
+ }, ref) => {
179
+ const [internalPage, setInternalPage] = useState(defaultPage);
180
+ const isControlled = controlledPage !== undefined;
181
+ // Clamped on the way out as well as on the way in: `count` can shrink under
182
+ // a controlled page — a filter narrowing the result set — and a page number
183
+ // past the end would light nothing and disable both arrows at once.
184
+ const page = Math.min(Math.max(isControlled ? controlledPage : internalPage, 1), count);
185
+ const goTo = useCallback(next => {
186
+ const clamped = Math.min(Math.max(next, 1), count);
187
+ if (clamped === page || disabled) return;
188
+ // On the frame of the press rather than after the fetch: the tick is
189
+ // what ties the feeling to the tap, and the rows arrive whenever they
190
+ // arrive.
191
+ selectionTick();
192
+ if (!isControlled) setInternalPage(clamped);
193
+ onPageChange?.(clamped);
194
+ }, [count, page, disabled, isControlled, onPageChange]);
195
+ const context = useMemo(() => ({
196
+ page,
197
+ count,
198
+ size,
199
+ disabled,
200
+ goTo
201
+ }), [page, count, size, disabled, goTo]);
202
+ const items = useMemo(() => variant === 'numbers' ? paginationRange({
203
+ count,
204
+ page,
205
+ siblings,
206
+ boundaries
207
+ }) : [], [variant, count, page, siblings, boundaries]);
208
+ const {
209
+ root,
210
+ list
211
+ } = paginationVariants({
212
+ size
213
+ });
214
+ return /*#__PURE__*/_jsx(PaginationContext.Provider, {
215
+ value: context,
216
+ children: /*#__PURE__*/_jsxs(View, {
217
+ ref: ref,
218
+ role: "navigation",
219
+ accessibilityLabel: accessibilityLabel,
220
+ className: root({
221
+ // With nothing on the leading edge the controls are the whole row
222
+ // and centre in it; with something there they part to the two ends,
223
+ // which is the shape a table footer wants.
224
+ //
225
+ // Clipped, because the run is a fixed number of targets and a
226
+ // narrow enough container cannot hold it. Overflowing, a centred
227
+ // row hangs the same distance past both edges, and the leading
228
+ // number ends up half off the screen with nothing to say why.
229
+ // Inside its own bounds the shortfall at least looks deliberate,
230
+ // and `siblings`/`boundaries` are the knobs that fix it.
231
+ className: cn('overflow-hidden', children ? 'justify-between gap-3' : 'justify-center', className)
232
+ }),
233
+ ...props,
234
+ children: [textChildren(children, text => /*#__PURE__*/_jsx(PaginationStatus, {
235
+ children: text
236
+ })), /*#__PURE__*/_jsxs(View, {
237
+ className: list({
238
+ className: 'max-w-full'
239
+ }),
240
+ children: [controls ? /*#__PURE__*/_jsx(PaginationPrevious, {
241
+ label: variant === 'simple'
242
+ }) : null, variant === 'numbers' ? items.map((item, index) => typeof item === 'number' ? /*#__PURE__*/_jsx(PaginationItem, {
243
+ page: item
244
+ }, item) : /*#__PURE__*/_jsx(PaginationEllipsis, {
245
+ direction: item === 'start-ellipsis' ? -1 : 1,
246
+ jump: pageJump
247
+ }, `${item}-${index}`)) : null, variant === 'compact' ? /*#__PURE__*/_jsx(PaginationSummary, {}) : null, controls ? /*#__PURE__*/_jsx(PaginationNext, {
248
+ label: variant === 'simple'
249
+ }) : null]
250
+ })]
251
+ })
252
+ });
253
+ });
254
+ PaginationRoot.displayName = 'Pagination';
255
+ /**
256
+ * One numbered target. Announced as a selected button when it is the page you
257
+ * are on, so the current page is spoken as state rather than only painted.
258
+ */
259
+ const PaginationItem = /*#__PURE__*/forwardRef(({
260
+ className,
261
+ labelClassName,
262
+ page,
263
+ children,
264
+ ...props
265
+ }, ref) => {
266
+ const {
267
+ page: current,
268
+ size,
269
+ disabled,
270
+ goTo
271
+ } = usePagination('Pagination.Item');
272
+ const isCurrent = page === current;
273
+ const {
274
+ item,
275
+ itemLabel
276
+ } = paginationVariants({
277
+ size,
278
+ current: isCurrent,
279
+ disabled
280
+ });
281
+ return /*#__PURE__*/_jsx(AnimatedPressable, {
282
+ ref: ref,
283
+ accessibilityRole: "button",
284
+ accessibilityLabel: `Page ${page}`,
285
+ accessibilityState: {
286
+ selected: isCurrent,
287
+ disabled
288
+ },
289
+ disabled: disabled,
290
+ hitSlop: size === 'sm' ? SMALL_HIT_SLOP : undefined,
291
+ onPress: () => goTo(page),
292
+ className: item({
293
+ className
294
+ }),
295
+ ...props,
296
+ children: textChildren(children ?? String(page), text => /*#__PURE__*/_jsx(Text, {
297
+ className: itemLabel({
298
+ className: labelClassName
299
+ }),
300
+ children: text
301
+ }))
302
+ });
303
+ });
304
+ PaginationItem.displayName = 'Pagination.Item';
305
+ /**
306
+ * The two arrows, which are the same button pointed the other way.
307
+ *
308
+ * Which glyph is "back" is a question about the reading direction, not about
309
+ * the component: in a right-to-left layout the previous page is to the right.
310
+ * Yoga mirrors the row on its own; the arrowhead inside it has to be chosen.
311
+ */
312
+ function useArrow(step, part) {
313
+ const {
314
+ page,
315
+ count,
316
+ size,
317
+ disabled,
318
+ goTo
319
+ } = usePagination(part);
320
+ const rtl = useDirection() === 'rtl';
321
+ const color = useCSSVariable('--color-foreground');
322
+ const target = page + step;
323
+ const spent = disabled || target < 1 || target > count;
324
+ const Glyph = step === -1 === rtl ? ChevronRightIcon : ChevronLeftIcon;
325
+ return {
326
+ Glyph,
327
+ size,
328
+ spent,
329
+ color: typeof color === 'string' ? color : '#0a0a0a',
330
+ press: () => goTo(target)
331
+ };
332
+ }
333
+ function PaginationArrow({
334
+ step,
335
+ part,
336
+ word,
337
+ className,
338
+ label,
339
+ ...props
340
+ }) {
341
+ const {
342
+ Glyph,
343
+ size,
344
+ spent,
345
+ color,
346
+ press
347
+ } = useArrow(step, part);
348
+ const {
349
+ item,
350
+ itemLabel
351
+ } = paginationVariants({
352
+ size,
353
+ disabled: spent
354
+ });
355
+ return /*#__PURE__*/_jsxs(AnimatedPressable, {
356
+ accessibilityRole: "button",
357
+ accessibilityLabel: word,
358
+ accessibilityState: {
359
+ disabled: spent
360
+ },
361
+ disabled: spent,
362
+ hitSlop: size === 'sm' ? SMALL_HIT_SLOP : undefined,
363
+ onPress: press,
364
+ className: item({
365
+ className: cn('flex-row gap-1', label && (size === 'sm' ? 'px-2' : 'px-3'), className)
366
+ }),
367
+ ...props,
368
+ children: [step === -1 ? /*#__PURE__*/_jsx(Glyph, {
369
+ size: iconSize[size],
370
+ color: color
371
+ }) : null, label ? /*#__PURE__*/_jsx(Text, {
372
+ className: itemLabel(),
373
+ children: word
374
+ }) : null, step === 1 ? /*#__PURE__*/_jsx(Glyph, {
375
+ size: iconSize[size],
376
+ color: color
377
+ }) : null]
378
+ });
379
+ }
380
+
381
+ /** Back one page. Dead on the first page rather than looping to the last. */
382
+ const PaginationPrevious = ({
383
+ ...props
384
+ }) => /*#__PURE__*/_jsx(PaginationArrow, {
385
+ step: -1,
386
+ part: "Pagination.Previous",
387
+ word: "Previous",
388
+ ...props
389
+ });
390
+ PaginationPrevious.displayName = 'Pagination.Previous';
391
+
392
+ /** Forward one page. Dead on the last page rather than looping to the first. */
393
+ const PaginationNext = ({
394
+ ...props
395
+ }) => /*#__PURE__*/_jsx(PaginationArrow, {
396
+ step: 1,
397
+ part: "Pagination.Next",
398
+ word: "Next",
399
+ ...props
400
+ });
401
+ PaginationNext.displayName = 'Pagination.Next';
402
+ /**
403
+ * The gap in the run, and a way across it. Tapping jumps `jump` pages towards
404
+ * the end the gap is on — which is why the two ellipses are told apart: a jump
405
+ * that always went forwards would strand anyone reading the row right to left.
406
+ */
407
+ const PaginationEllipsis = /*#__PURE__*/forwardRef(({
408
+ className,
409
+ direction = 1,
410
+ jump = 5,
411
+ ...props
412
+ }, ref) => {
413
+ const {
414
+ page,
415
+ size,
416
+ disabled,
417
+ goTo
418
+ } = usePagination('Pagination.Ellipsis');
419
+ const color = useCSSVariable('--color-muted-foreground');
420
+ const {
421
+ ellipsis
422
+ } = paginationVariants({
423
+ size
424
+ });
425
+ return /*#__PURE__*/_jsx(AnimatedPressable, {
426
+ ref: ref,
427
+ accessibilityRole: "button",
428
+ accessibilityLabel: direction === -1 ? `Back ${jump} pages` : `Forward ${jump} pages`,
429
+ accessibilityState: {
430
+ disabled
431
+ },
432
+ disabled: disabled,
433
+ hitSlop: size === 'sm' ? SMALL_HIT_SLOP : undefined,
434
+ onPress: () => goTo(page + direction * jump),
435
+ className: ellipsis({
436
+ className
437
+ }),
438
+ ...props,
439
+ children: /*#__PURE__*/_jsx(EllipsisIcon, {
440
+ size: iconSize[size],
441
+ color: typeof color === 'string' ? color : '#737373'
442
+ })
443
+ });
444
+ });
445
+ PaginationEllipsis.displayName = 'Pagination.Ellipsis';
446
+ /**
447
+ * `3 / 12` — where you are, in the space two arrows leave between them.
448
+ *
449
+ * Digits and a slash rather than "Page 3 of 12", because a phone has no room
450
+ * for the sentence and the sentence would need translating. `Pagination.Status`
451
+ * is the place for words.
452
+ */
453
+ const PaginationSummary = /*#__PURE__*/forwardRef(({
454
+ className,
455
+ ...props
456
+ }, ref) => {
457
+ const {
458
+ page,
459
+ count,
460
+ size
461
+ } = usePagination('Pagination.Summary');
462
+ const {
463
+ summary
464
+ } = paginationVariants({
465
+ size
466
+ });
467
+ return /*#__PURE__*/_jsxs(Text, {
468
+ ref: ref,
469
+ accessibilityLabel: `Page ${page} of ${count}`,
470
+ className: summary({
471
+ className: cn('px-2', className)
472
+ }),
473
+ ...props,
474
+ children: [page, " / ", count]
475
+ });
476
+ });
477
+ PaginationSummary.displayName = 'Pagination.Summary';
478
+ /**
479
+ * The line that says how much of the set you are looking at — `1–20 of 240`.
480
+ *
481
+ * Worth having beside a table because a page number alone does not answer the
482
+ * question people actually have, which is how much is left. Given `children`
483
+ * it renders those instead, for a set whose size is not known yet.
484
+ */
485
+ const PaginationStatus = /*#__PURE__*/forwardRef(({
486
+ className,
487
+ page: ownPage,
488
+ pageSize,
489
+ total,
490
+ children,
491
+ ...props
492
+ }, ref) => {
493
+ const context = useContext(PaginationContext);
494
+ const size = context?.size ?? 'default';
495
+ const page = ownPage ?? context?.page ?? 1;
496
+ const {
497
+ status
498
+ } = paginationVariants({
499
+ size
500
+ });
501
+ const span = useMemo(() => {
502
+ if (children !== undefined) return null;
503
+ if (pageSize === undefined || total === undefined) return null;
504
+ if (total <= 0) return 'None';
505
+ const from = (page - 1) * pageSize + 1;
506
+ // The last page is nearly always short; counting a full one past the end
507
+ // is the classic off-by-a-page-size.
508
+ const to = Math.min(page * pageSize, total);
509
+ return `${from}–${to} of ${total}`;
510
+ }, [children, page, pageSize, total]);
511
+ return /*#__PURE__*/_jsx(Text, {
512
+ ref: ref,
513
+ className: status({
514
+ className
515
+ }),
516
+ ...props,
517
+ children: span ?? textChildren(children)
518
+ });
519
+ });
520
+ PaginationStatus.displayName = 'Pagination.Status';
521
+ export const Pagination = Object.assign(PaginationRoot, {
522
+ Item: PaginationItem,
523
+ Previous: PaginationPrevious,
524
+ Next: PaginationNext,
525
+ Ellipsis: PaginationEllipsis,
526
+ Summary: PaginationSummary,
527
+ Status: PaginationStatus
528
+ });
529
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","forwardRef","useCallback","useContext","useMemo","useState","View","tv","useCSSVariable","ChevronLeftIcon","ChevronRightIcon","EllipsisIcon","useDirection","AnimatedPressable","Text","textChildren","cn","selectionTick","jsx","_jsx","jsxs","_jsxs","SMALL_HIT_SLOP","top","bottom","left","right","paginationVariants","slots","root","list","item","itemLabel","ellipsis","status","summary","variants","size","default","sm","current","true","false","disabled","defaultVariants","iconSize","PaginationContext","usePagination","part","context","Error","range","start","end","Array","from","length","_","i","paginationRange","count","page","siblings","boundaries","startPages","Math","min","endPages","max","siblingsStart","siblingsEnd","PaginationRoot","className","controlledPage","defaultPage","onPageChange","variant","controls","pageJump","accessibilityLabel","children","props","ref","internalPage","setInternalPage","isControlled","undefined","goTo","next","clamped","items","Provider","value","role","text","PaginationStatus","PaginationPrevious","label","map","index","PaginationItem","PaginationEllipsis","direction","jump","PaginationSummary","PaginationNext","displayName","labelClassName","isCurrent","accessibilityRole","accessibilityState","selected","hitSlop","onPress","String","useArrow","step","rtl","color","target","spent","Glyph","press","PaginationArrow","word","ownPage","pageSize","total","span","to","Pagination","Object","assign","Item","Previous","Next","Ellipsis","Summary","Status"],"sourceRoot":"../../../../src","sources":["components/pagination/index.tsx"],"mappings":"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","ignoreList":[]}