@ai-matrx/design-system 0.18.21 → 0.19.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 (86) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/content-transfer/alchemy.svg +1 -1
  3. package/dist/content-transfer/copy-transform.svg +1 -0
  4. package/dist/content-transfer/icon.cjs +8 -2
  5. package/dist/content-transfer/icon.cjs.map +1 -1
  6. package/dist/content-transfer/icon.d.cts +5 -3
  7. package/dist/content-transfer/icon.d.ts +5 -3
  8. package/dist/content-transfer/icon.js +8 -2
  9. package/dist/content-transfer/icon.js.map +1 -1
  10. package/dist/content-transfer/portal.svg +1 -0
  11. package/dist/content-transfer.cjs +923 -304
  12. package/dist/content-transfer.cjs.map +1 -1
  13. package/dist/content-transfer.css +17 -74
  14. package/dist/content-transfer.d.cts +14 -3
  15. package/dist/content-transfer.d.ts +14 -3
  16. package/dist/content-transfer.js +929 -305
  17. package/dist/content-transfer.js.map +1 -1
  18. package/dist/data-table/copy-helpers.d.cts +1 -1
  19. package/dist/data-table/copy-helpers.d.ts +1 -1
  20. package/dist/data-table/data-row-inspector.cjs +990 -397
  21. package/dist/data-table/data-row-inspector.cjs.map +1 -1
  22. package/dist/data-table/data-row-inspector.js +988 -390
  23. package/dist/data-table/data-row-inspector.js.map +1 -1
  24. package/dist/data-table/data-row-window.cjs +989 -396
  25. package/dist/data-table/data-row-window.cjs.map +1 -1
  26. package/dist/data-table/data-row-window.js +987 -389
  27. package/dist/data-table/data-row-window.js.map +1 -1
  28. package/dist/data-table/filter-engine.d.cts +1 -1
  29. package/dist/data-table/filter-engine.d.ts +1 -1
  30. package/dist/data-table/host.cjs.map +1 -1
  31. package/dist/data-table/host.d.cts +3 -2
  32. package/dist/data-table/host.d.ts +3 -2
  33. package/dist/data-table/host.js.map +1 -1
  34. package/dist/data-table/index.cjs +2733 -1441
  35. package/dist/data-table/index.cjs.map +1 -1
  36. package/dist/data-table/index.d.cts +2 -2
  37. package/dist/data-table/index.d.ts +2 -2
  38. package/dist/data-table/index.js +2742 -1440
  39. package/dist/data-table/index.js.map +1 -1
  40. package/dist/data-table/infer-filter.d.cts +1 -1
  41. package/dist/data-table/infer-filter.d.ts +1 -1
  42. package/dist/data-table/layered-filters.d.cts +1 -1
  43. package/dist/data-table/layered-filters.d.ts +1 -1
  44. package/dist/data-table/pagination.cjs +135 -97
  45. package/dist/data-table/pagination.cjs.map +1 -1
  46. package/dist/data-table/pagination.d.cts +8 -1
  47. package/dist/data-table/pagination.d.ts +8 -1
  48. package/dist/data-table/pagination.js +130 -92
  49. package/dist/data-table/pagination.js.map +1 -1
  50. package/dist/data-table/query-control.d.cts +1 -1
  51. package/dist/data-table/query-control.d.ts +1 -1
  52. package/dist/data-table/scroll-pagination.cjs +82 -54
  53. package/dist/data-table/scroll-pagination.cjs.map +1 -1
  54. package/dist/data-table/scroll-pagination.js +82 -54
  55. package/dist/data-table/scroll-pagination.js.map +1 -1
  56. package/dist/data-table/types.cjs.map +1 -1
  57. package/dist/data-table/types.d.cts +1 -1
  58. package/dist/data-table/types.d.ts +1 -1
  59. package/dist/data-table/url-state.cjs +7 -1
  60. package/dist/data-table/url-state.cjs.map +1 -1
  61. package/dist/data-table/url-state.d.cts +1 -1
  62. package/dist/data-table/url-state.d.ts +1 -1
  63. package/dist/data-table/url-state.js +7 -1
  64. package/dist/data-table/url-state.js.map +1 -1
  65. package/dist/data-table/uuid-cell.cjs +1 -1
  66. package/dist/data-table/uuid-cell.cjs.map +1 -1
  67. package/dist/data-table/uuid-cell.js +1 -1
  68. package/dist/data-table/uuid-cell.js.map +1 -1
  69. package/dist/data-table/xlsx.d.cts +1 -1
  70. package/dist/data-table/xlsx.d.ts +1 -1
  71. package/dist/index.cjs +527 -0
  72. package/dist/index.cjs.map +1 -1
  73. package/dist/index.d.cts +1 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.js +531 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/tap-target.cjs +636 -0
  78. package/dist/tap-target.cjs.map +1 -0
  79. package/dist/tap-target.css +151 -0
  80. package/dist/tap-target.d.cts +131 -0
  81. package/dist/tap-target.d.ts +131 -0
  82. package/dist/tap-target.js +608 -0
  83. package/dist/tap-target.js.map +1 -0
  84. package/dist/{types-BuDKVpeF.d.ts → types-D1m14boM.d.ts} +49 -3
  85. package/dist/{types-Dqcb7jXO.d.cts → types-Di6QT0P1.d.cts} +49 -3
  86. package/package.json +14 -1
@@ -151,7 +151,7 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
151
151
  // src/data-table/icons.tsx
152
152
  import { jsx as jsx4, jsxs } from "react/jsx-runtime";
153
153
  function Icon({ children, ...props }) {
154
- return /* @__PURE__ */ jsx4("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", "aria-hidden": "true", ...props, children });
154
+ return /* @__PURE__ */ jsx4("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", ...props, children });
155
155
  }
156
156
  var ChevronLeft = (p) => /* @__PURE__ */ jsx4(Icon, { ...p, children: /* @__PURE__ */ jsx4("path", { d: "m15 18-6-6 6-6" }) });
157
157
  var ChevronRight = (p) => /* @__PURE__ */ jsx4(Icon, { ...p, children: /* @__PURE__ */ jsx4("path", { d: "m9 18 6-6-6-6" }) });
@@ -351,8 +351,18 @@ var SelectSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__
351
351
  ));
352
352
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
353
353
 
354
+ // src/data-table/host.tsx
355
+ import { createContext as createContext2, useContext as useContext2 } from "react";
356
+ import { jsx as jsx7 } from "react/jsx-runtime";
357
+ var HOST_SLOT = /* @__PURE__ */ Symbol.for("ai-matrx.design-system.table-host-context");
358
+ var hostRegistry = globalThis;
359
+ var HostContext = hostRegistry[HOST_SLOT] ??= createContext2({});
360
+ function useMatrxDataTableHost() {
361
+ return useContext2(HostContext);
362
+ }
363
+
354
364
  // src/data-table/pagination.tsx
355
- import { Fragment, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
365
+ import { Fragment, jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
356
366
  function PageNavigationControl({
357
367
  label,
358
368
  disabledHint,
@@ -361,17 +371,17 @@ function PageNavigationControl({
361
371
  className,
362
372
  ...props
363
373
  }) {
364
- const button = /* @__PURE__ */ jsx7(
374
+ const button = /* @__PURE__ */ jsx8(
365
375
  Button,
366
376
  {
367
377
  ...props,
368
378
  disabled,
369
379
  "aria-label": label,
370
- className: cn(visibilityClassName, className)
380
+ className: cn(visibilityClassName, className, "[&_svg]:size-3.5")
371
381
  }
372
382
  );
373
383
  return /* @__PURE__ */ jsxs4(Tooltip, { children: [
374
- /* @__PURE__ */ jsx7(TooltipTrigger, { asChild: true, children: disabled ? /* @__PURE__ */ jsx7(
384
+ /* @__PURE__ */ jsx8(TooltipTrigger, { asChild: true, children: disabled ? /* @__PURE__ */ jsx8(
375
385
  "span",
376
386
  {
377
387
  className: cn(visibilityClassName, "rounded-md outline-none focus-visible:ring-2 focus-visible:ring-ring"),
@@ -380,9 +390,49 @@ function PageNavigationControl({
380
390
  children: button
381
391
  }
382
392
  ) : button }),
383
- /* @__PURE__ */ jsx7(TooltipContent, { children: disabled ? disabledHint : label })
393
+ /* @__PURE__ */ jsx8(TooltipContent, { children: disabled ? disabledHint : label })
384
394
  ] });
385
395
  }
396
+ function PaginationAction({
397
+ HostAction,
398
+ active = false,
399
+ disabledHint,
400
+ visibilityClassName = "inline-flex",
401
+ fallbackClassName,
402
+ ...props
403
+ }) {
404
+ if (HostAction) {
405
+ return /* @__PURE__ */ jsx8("span", { className: visibilityClassName, children: /* @__PURE__ */ jsx8(
406
+ HostAction,
407
+ {
408
+ ...props,
409
+ active,
410
+ tooltip: props.disabled ? disabledHint : props.tooltip ?? props.ariaLabel
411
+ }
412
+ ) });
413
+ }
414
+ return /* @__PURE__ */ jsx8(
415
+ PageNavigationControl,
416
+ {
417
+ variant: "outline",
418
+ size: "icon",
419
+ visibilityClassName,
420
+ label: props.ariaLabel,
421
+ disabledHint,
422
+ disabled: props.disabled,
423
+ onClick: props.onClick,
424
+ className: cn(
425
+ PAGINATION_ACTION_CLASS,
426
+ active && PAGINATION_ACTIVE_CLASS,
427
+ fallbackClassName
428
+ ),
429
+ "aria-current": active ? "page" : void 0,
430
+ children: props.children
431
+ }
432
+ );
433
+ }
434
+ var PAGINATION_ACTION_CLASS = "relative isolate h-11 w-11 min-h-11 min-w-11 border-0 bg-transparent p-0 text-xs shadow-none before:absolute before:inset-1.5 before:z-0 before:rounded-md before:border before:border-border before:bg-card before:content-[''] hover:bg-transparent hover:before:bg-accent disabled:bg-transparent disabled:before:opacity-40 [&>*]:relative [&>*]:z-10";
435
+ var PAGINATION_ACTIVE_CLASS = "text-primary-foreground before:border-primary before:bg-primary hover:before:bg-primary/90";
386
436
  function GenericTablePagination({
387
437
  totalItems,
388
438
  itemsPerPage,
@@ -408,8 +458,10 @@ function GenericTablePagination({
408
458
  layoutType = "grid",
409
459
  labelFormat,
410
460
  compact = false,
411
- hideEntriesInfo = false
461
+ hideEntriesInfo = false,
462
+ progressive
412
463
  }) {
464
+ const host = useMatrxDataTableHost();
413
465
  const positivePageSizes = pageSizeOptions.filter((size) => size > 0);
414
466
  const availablePageSizes = itemsPerPage > 0 && !positivePageSizes.includes(itemsPerPage) ? [...positivePageSizes, itemsPerPage].sort((a, b) => a - b) : positivePageSizes;
415
467
  const effectiveItemsPerPage = itemsPerPage === 0 ? Math.max(totalItems, 1) : Math.max(itemsPerPage, 1);
@@ -425,24 +477,22 @@ function GenericTablePagination({
425
477
  };
426
478
  const isFirstPageDisabled = currentPage <= 1;
427
479
  const isLastPageDisabled = currentPage >= totalPages;
428
- const startItem = totalItems === 0 ? 0 : (currentPage - 1) * effectiveItemsPerPage + 1;
429
- const endItem = Math.min(currentPage * effectiveItemsPerPage, totalItems);
480
+ const startItem = totalItems === 0 ? 0 : progressive ? 1 : (currentPage - 1) * effectiveItemsPerPage + 1;
481
+ const endItem = Math.min(progressive?.shownCount ?? currentPage * effectiveItemsPerPage, totalItems);
430
482
  const defaultLabelFormat = (start, end, total) => {
431
483
  return compact ? `${start}-${end} of ${total}` : `Showing ${start} to ${end} of ${total} entries`;
432
484
  };
433
485
  const formatLabel = labelFormat || defaultLabelFormat;
434
- const buttonSize = compact ? "sm" : "icon";
435
- const compactButtonClass = "relative isolate h-11 w-11 min-w-11 border-0 bg-transparent p-0 text-xs shadow-none before:absolute before:inset-1.5 before:z-0 before:rounded-md before:border before:border-border before:bg-card before:content-[''] hover:bg-transparent hover:before:bg-accent disabled:bg-transparent disabled:before:opacity-40 [&_svg]:relative [&_svg]:z-10 lg:h-7 lg:min-h-7 lg:w-7 lg:min-w-7 lg:border lg:border-input lg:bg-background lg:before:hidden lg:hover:bg-accent";
436
- const compactActiveButtonClass = "text-primary-foreground before:border-primary before:bg-primary hover:before:bg-primary/90 lg:border-primary lg:bg-primary lg:hover:bg-primary/90";
437
486
  const containerClass = cn(
438
- "w-full items-center border-t border-border",
487
+ "w-full items-center",
488
+ !compact && "border-t border-border",
439
489
  layoutType === "grid" ? "grid grid-cols-[auto_minmax(0,1fr)_auto]" : "flex flex-nowrap justify-between",
440
- compact ? "h-11 gap-0 px-0 py-0 lg:h-8" : "gap-1 px-2 py-1 sm:gap-4 sm:px-3",
490
+ compact ? "box-border h-11 gap-0 px-0 py-0" : "gap-1 px-2 py-1 sm:gap-4 sm:px-3",
441
491
  className,
442
492
  containerClassName
443
493
  );
444
- return /* @__PURE__ */ jsx7(TooltipProvider, { children: /* @__PURE__ */ jsxs4("div", { "data-matrx-table-footer": true, className: containerClass, children: [
445
- showItemsPerPageSelect && /* @__PURE__ */ jsx7(
494
+ return /* @__PURE__ */ jsx8(TooltipProvider, { children: /* @__PURE__ */ jsxs4("div", { "data-matrx-table-footer": true, className: containerClass, children: [
495
+ showItemsPerPageSelect && /* @__PURE__ */ jsx8(
446
496
  "div",
447
497
  {
448
498
  className: cn(
@@ -456,27 +506,27 @@ function GenericTablePagination({
456
506
  value: itemsPerPage.toString(),
457
507
  onValueChange: (value) => onItemsPerPageChange(parseInt(value)),
458
508
  children: [
459
- /* @__PURE__ */ jsx7(
509
+ /* @__PURE__ */ jsx8(
460
510
  SelectTrigger,
461
511
  {
462
512
  "aria-label": "Rows per page",
463
513
  className: cn(
464
514
  "focus:ring-0",
465
- compact ? "relative isolate h-11 w-14 border-0 bg-transparent px-2 text-xs before:absolute before:inset-x-1 before:inset-y-1.5 before:z-0 before:rounded-md before:border before:border-border before:bg-card before:content-[''] hover:before:bg-accent [&>*]:relative [&>*]:z-10 lg:h-7 lg:min-h-7 lg:w-16 lg:border lg:border-input lg:bg-background lg:px-2 lg:before:hidden" : "h-8 w-[3.75rem] text-xs sm:w-36 sm:text-sm"
515
+ compact ? "relative isolate h-11 w-16 border-0 bg-transparent px-1 text-xs before:absolute before:inset-1.5 before:z-0 before:rounded-md before:border before:border-border before:bg-card before:content-[''] hover:before:bg-accent [&>*]:relative [&>*]:z-10 [&_svg]:h-3.5 [&_svg]:w-3.5" : "h-8 w-[3.75rem] text-xs sm:w-36 sm:text-sm"
466
516
  ),
467
- children: /* @__PURE__ */ jsx7(SelectValue, { placeholder: itemsPerPage.toString() })
517
+ children: /* @__PURE__ */ jsx8(SelectValue, { placeholder: itemsPerPage.toString() })
468
518
  }
469
519
  ),
470
520
  /* @__PURE__ */ jsxs4(SelectContent, { children: [
471
- availablePageSizes.map((size) => /* @__PURE__ */ jsx7(SelectItem, { value: size.toString(), children: size }, size)),
472
- showAllOption ? /* @__PURE__ */ jsx7(SelectItem, { value: allValue.toString(), children: allOptionLabel }) : null
521
+ availablePageSizes.map((size) => /* @__PURE__ */ jsx8(SelectItem, { value: size.toString(), children: size }, size)),
522
+ showAllOption ? /* @__PURE__ */ jsx8(SelectItem, { value: allValue.toString(), children: allOptionLabel }) : null
473
523
  ] })
474
524
  ]
475
525
  }
476
526
  )
477
527
  }
478
528
  ),
479
- /* @__PURE__ */ jsx7(
529
+ /* @__PURE__ */ jsx8(
480
530
  "div",
481
531
  {
482
532
  className: cn("flex min-w-0 justify-center", infoContainerClassName),
@@ -488,7 +538,7 @@ function GenericTablePagination({
488
538
  " / ",
489
539
  totalItems
490
540
  ] }),
491
- /* @__PURE__ */ jsx7(
541
+ /* @__PURE__ */ jsx8(
492
542
  "span",
493
543
  {
494
544
  className: `hidden whitespace-nowrap ${compact ? "text-xs" : "text-sm"} text-muted-foreground sm:inline`,
@@ -498,7 +548,17 @@ function GenericTablePagination({
498
548
  ] })
499
549
  }
500
550
  ),
501
- showPageControls && /* @__PURE__ */ jsxs4(
551
+ progressive ? /* @__PURE__ */ jsx8(
552
+ PaginationAction,
553
+ {
554
+ HostAction: host.ToolbarAction,
555
+ ariaLabel: progressive.hasMore ? "Show more rows" : "All rows shown",
556
+ disabledHint: "All rows shown",
557
+ disabled: !progressive.hasMore,
558
+ onClick: progressive.onShowMore,
559
+ children: /* @__PURE__ */ jsx8(ChevronRight, { className: "h-3.5 w-3.5 rotate-90" })
560
+ }
561
+ ) : showPageControls && /* @__PURE__ */ jsxs4(
502
562
  "div",
503
563
  {
504
564
  className: cn(
@@ -507,107 +567,85 @@ function GenericTablePagination({
507
567
  controlsContainerClassName
508
568
  ),
509
569
  children: [
510
- /* @__PURE__ */ jsx7(
511
- PageNavigationControl,
570
+ /* @__PURE__ */ jsx8(
571
+ PaginationAction,
512
572
  {
513
- variant: "outline",
514
- size: buttonSize,
515
- visibilityClassName: "hidden sm:inline-flex",
516
- label: "First page",
573
+ HostAction: host.ToolbarAction,
574
+ ariaLabel: "First page",
517
575
  disabledHint: "Already on the first page",
576
+ visibilityClassName: "hidden sm:inline-flex",
577
+ fallbackClassName: navButtonClassName,
518
578
  onClick: () => onPageChange(1),
519
579
  disabled: isFirstPageDisabled,
520
- className: cn(
521
- compact ? compactButtonClass : "h-8 w-8 p-0",
522
- navButtonClassName
523
- ),
524
- children: /* @__PURE__ */ jsx7(ChevronsLeft, { className: compact ? "h-3.5 w-3.5" : "h-4 w-4" })
580
+ children: /* @__PURE__ */ jsx8(ChevronsLeft, { className: "h-3.5 w-3.5" })
525
581
  }
526
582
  ),
527
- /* @__PURE__ */ jsx7(
528
- PageNavigationControl,
583
+ /* @__PURE__ */ jsx8(
584
+ PaginationAction,
529
585
  {
530
- variant: "outline",
531
- size: buttonSize,
532
- label: "Previous page",
586
+ HostAction: host.ToolbarAction,
587
+ ariaLabel: "Previous page",
533
588
  disabledHint: "Already on the first page",
589
+ fallbackClassName: navButtonClassName,
534
590
  onClick: () => onPageChange(currentPage - 1),
535
591
  disabled: isFirstPageDisabled,
536
- className: cn(
537
- compact ? compactButtonClass : "h-8 w-8 p-0",
538
- navButtonClassName
539
- ),
540
- children: /* @__PURE__ */ jsx7(ChevronLeft, { className: compact ? "h-3.5 w-3.5" : "h-4 w-4" })
592
+ children: /* @__PURE__ */ jsx8(ChevronLeft, { className: "h-3.5 w-3.5" })
541
593
  }
542
594
  ),
543
- getPageNumbers(3).map((page) => /* @__PURE__ */ jsx7(
544
- Button,
595
+ getPageNumbers(3).map((page) => /* @__PURE__ */ jsx8(
596
+ PaginationAction,
545
597
  {
546
- variant: currentPage === page ? "default" : "outline",
547
- size: buttonSize,
548
- "aria-label": `Page ${page}`,
549
- "aria-current": currentPage === page ? "page" : void 0,
550
- onClick: () => onPageChange(page),
551
- className: cn(
598
+ HostAction: host.ToolbarAction,
599
+ ariaLabel: `Page ${page}`,
600
+ active: currentPage === page,
601
+ disabledHint: `Already on page ${page}`,
602
+ visibilityClassName: cn(
552
603
  "sm:hidden",
553
- page === currentPage ? "inline-flex" : "hidden min-[360px]:inline-flex",
554
- compact ? compactButtonClass : "h-8 w-8 p-0",
555
- compact && page === currentPage && compactActiveButtonClass,
556
- page === currentPage ? pageActiveButtonClassName : pageButtonClassName
604
+ page === currentPage ? "inline-flex" : "hidden min-[360px]:inline-flex"
557
605
  ),
558
- children: /* @__PURE__ */ jsx7("span", { className: "relative z-10", children: page })
606
+ fallbackClassName: page === currentPage ? pageActiveButtonClassName : pageButtonClassName,
607
+ onClick: () => onPageChange(page),
608
+ children: /* @__PURE__ */ jsx8("span", { children: page })
559
609
  },
560
610
  `mobile-${page}`
561
611
  )),
562
- getPageNumbers().map((page) => /* @__PURE__ */ jsx7(
563
- Button,
612
+ getPageNumbers().map((page) => /* @__PURE__ */ jsx8(
613
+ PaginationAction,
564
614
  {
565
- variant: currentPage === page ? "default" : "outline",
566
- size: buttonSize,
567
- "aria-label": `Page ${page}`,
568
- "aria-current": currentPage === page ? "page" : void 0,
615
+ HostAction: host.ToolbarAction,
616
+ ariaLabel: `Page ${page}`,
617
+ active: currentPage === page,
618
+ disabledHint: `Already on page ${page}`,
619
+ visibilityClassName: "hidden sm:inline-flex",
620
+ fallbackClassName: currentPage === page ? pageActiveButtonClassName : pageButtonClassName,
569
621
  onClick: () => onPageChange(page),
570
- className: cn(
571
- "hidden sm:inline-flex",
572
- compact ? compactButtonClass : "h-8 w-8 p-0",
573
- compact && page === currentPage && compactActiveButtonClass,
574
- currentPage === page ? pageActiveButtonClassName : pageButtonClassName
575
- ),
576
- children: /* @__PURE__ */ jsx7("span", { className: "relative z-10", children: page })
622
+ children: /* @__PURE__ */ jsx8("span", { children: page })
577
623
  },
578
624
  `desktop-${page}`
579
625
  )),
580
- /* @__PURE__ */ jsx7(
581
- PageNavigationControl,
626
+ /* @__PURE__ */ jsx8(
627
+ PaginationAction,
582
628
  {
583
- variant: "outline",
584
- size: buttonSize,
585
- label: "Next page",
629
+ HostAction: host.ToolbarAction,
630
+ ariaLabel: "Next page",
586
631
  disabledHint: "Already on the last page",
632
+ fallbackClassName: navButtonClassName,
587
633
  onClick: () => onPageChange(currentPage + 1),
588
634
  disabled: isLastPageDisabled,
589
- className: cn(
590
- compact ? compactButtonClass : "h-8 w-8 p-0",
591
- navButtonClassName
592
- ),
593
- children: /* @__PURE__ */ jsx7(ChevronRight, { className: compact ? "h-3.5 w-3.5" : "h-4 w-4" })
635
+ children: /* @__PURE__ */ jsx8(ChevronRight, { className: "h-3.5 w-3.5" })
594
636
  }
595
637
  ),
596
- /* @__PURE__ */ jsx7(
597
- PageNavigationControl,
638
+ /* @__PURE__ */ jsx8(
639
+ PaginationAction,
598
640
  {
599
- variant: "outline",
600
- size: buttonSize,
601
- visibilityClassName: "hidden sm:inline-flex",
602
- label: "Last page",
641
+ HostAction: host.ToolbarAction,
642
+ ariaLabel: "Last page",
603
643
  disabledHint: "Already on the last page",
644
+ visibilityClassName: "hidden sm:inline-flex",
645
+ fallbackClassName: navButtonClassName,
604
646
  onClick: () => onPageChange(totalPages),
605
647
  disabled: isLastPageDisabled,
606
- className: cn(
607
- compact ? compactButtonClass : "h-8 w-8 p-0",
608
- navButtonClassName
609
- ),
610
- children: /* @__PURE__ */ jsx7(ChevronsRight, { className: compact ? "h-3.5 w-3.5" : "h-4 w-4" })
648
+ children: /* @__PURE__ */ jsx8(ChevronsRight, { className: "h-3.5 w-3.5" })
611
649
  }
612
650
  )
613
651
  ]