@epilot/zenith-react 0.1.0-next.1 → 0.2.0-next.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 (121) hide show
  1. package/README.md +79 -10
  2. package/dist/components/alert-dialog/alert-dialog.js +48 -47
  3. package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
  4. package/dist/components/appearance-boundary/appearance-boundary.js +32 -34
  5. package/dist/components/appearance-boundary/appearance-boundary.js.map +1 -1
  6. package/dist/components/badge/badge.js +1 -1
  7. package/dist/components/badge/badge.js.map +1 -1
  8. package/dist/components/breadcrumb/breadcrumb.js +10 -10
  9. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  10. package/dist/components/button/button.js +28 -28
  11. package/dist/components/button/button.js.map +1 -1
  12. package/dist/components/callout/callout.js +42 -40
  13. package/dist/components/callout/callout.js.map +1 -1
  14. package/dist/components/checkbox/checkbox.js +13 -13
  15. package/dist/components/checkbox/checkbox.js.map +1 -1
  16. package/dist/components/code-block/code-block.js +6 -6
  17. package/dist/components/code-block/code-block.js.map +1 -1
  18. package/dist/components/code-editor/code-editor.js +1 -1
  19. package/dist/components/code-editor/code-editor.js.map +1 -1
  20. package/dist/components/command/command.js +6 -6
  21. package/dist/components/command/command.js.map +1 -1
  22. package/dist/components/data-table/data-table-body.js +120 -66
  23. package/dist/components/data-table/data-table-body.js.map +1 -1
  24. package/dist/components/data-table/data-table-column-header.js +7 -7
  25. package/dist/components/data-table/data-table-column-header.js.map +1 -1
  26. package/dist/components/data-table/data-table-column-order.js +277 -0
  27. package/dist/components/data-table/data-table-column-order.js.map +1 -0
  28. package/dist/components/data-table/data-table-content.js +72 -58
  29. package/dist/components/data-table/data-table-content.js.map +1 -1
  30. package/dist/components/data-table/data-table-context.js +8 -4
  31. package/dist/components/data-table/data-table-context.js.map +1 -1
  32. package/dist/components/data-table/data-table-footer.js +31 -0
  33. package/dist/components/data-table/data-table-footer.js.map +1 -0
  34. package/dist/components/data-table/data-table-header-draggable.js +151 -0
  35. package/dist/components/data-table/data-table-header-draggable.js.map +1 -0
  36. package/dist/components/data-table/data-table-header.js +130 -57
  37. package/dist/components/data-table/data-table-header.js.map +1 -1
  38. package/dist/components/data-table/data-table-resize-handle.js +137 -0
  39. package/dist/components/data-table/data-table-resize-handle.js.map +1 -0
  40. package/dist/components/data-table/data-table.js +184 -156
  41. package/dist/components/data-table/data-table.js.map +1 -1
  42. package/dist/components/data-table/hooks/use-data-table-virtualizer.js +9 -0
  43. package/dist/components/data-table/hooks/use-data-table-virtualizer.js.map +1 -0
  44. package/dist/components/date-range-picker/date-range-picker.js +196 -179
  45. package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
  46. package/dist/components/date-time-picker/calendar.js +29 -29
  47. package/dist/components/date-time-picker/calendar.js.map +1 -1
  48. package/dist/components/date-time-picker/date-time-picker-input.js +127 -114
  49. package/dist/components/date-time-picker/date-time-picker-input.js.map +1 -1
  50. package/dist/components/date-time-picker/date-time-picker.js +91 -88
  51. package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
  52. package/dist/components/date-time-picker/time-picker.js +55 -55
  53. package/dist/components/date-time-picker/time-picker.js.map +1 -1
  54. package/dist/components/dialog/dialog.js +74 -72
  55. package/dist/components/dialog/dialog.js.map +1 -1
  56. package/dist/components/drawer/drawer.js +69 -67
  57. package/dist/components/drawer/drawer.js.map +1 -1
  58. package/dist/components/dropdown-menu/dropdown-menu.js +36 -36
  59. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
  60. package/dist/components/field/field-combobox.js +4 -4
  61. package/dist/components/field/field-combobox.js.map +1 -1
  62. package/dist/components/field/field.js +207 -176
  63. package/dist/components/field/field.js.map +1 -1
  64. package/dist/components/list/list.js +40 -40
  65. package/dist/components/list/list.js.map +1 -1
  66. package/dist/components/option-card/option-card.js +27 -25
  67. package/dist/components/option-card/option-card.js.map +1 -1
  68. package/dist/components/pill/pill.js +9 -9
  69. package/dist/components/pill/pill.js.map +1 -1
  70. package/dist/components/radio/radio.js +14 -14
  71. package/dist/components/radio/radio.js.map +1 -1
  72. package/dist/components/scroll-area/scroll-area.js +9 -9
  73. package/dist/components/scroll-area/scroll-area.js.map +1 -1
  74. package/dist/components/segmented-control/segmented-control.js +1 -1
  75. package/dist/components/segmented-control/segmented-control.js.map +1 -1
  76. package/dist/components/select/select.js +11 -11
  77. package/dist/components/select/select.js.map +1 -1
  78. package/dist/components/spinner/spinner.js.map +1 -1
  79. package/dist/components/switch/switch.js +11 -11
  80. package/dist/components/switch/switch.js.map +1 -1
  81. package/dist/components/table/table-pagination.js +1 -1
  82. package/dist/components/table/table-pagination.js.map +1 -1
  83. package/dist/components/table/table.js +15 -15
  84. package/dist/components/table/table.js.map +1 -1
  85. package/dist/components/tabs/tabs.js +131 -76
  86. package/dist/components/tabs/tabs.js.map +1 -1
  87. package/dist/components/text/text.js +10 -1
  88. package/dist/components/text/text.js.map +1 -1
  89. package/dist/components/toast/toast.js +26 -26
  90. package/dist/components/toast/toast.js.map +1 -1
  91. package/dist/components/toggle/toggle.js +20 -20
  92. package/dist/components/toggle/toggle.js.map +1 -1
  93. package/dist/index.d.ts +1940 -1867
  94. package/dist/index.js +133 -121
  95. package/dist/index.js.map +1 -1
  96. package/dist/packages/tokens/dist/generated/core.generated.js +13 -22
  97. package/dist/packages/tokens/dist/generated/core.generated.js.map +1 -1
  98. package/dist/packages/tokens/dist/generated/palette.generated.js +5 -5
  99. package/dist/packages/tokens/dist/generated/palette.generated.js.map +1 -1
  100. package/dist/packages/tokens/dist/install.js +5 -5
  101. package/dist/packages/tokens/dist/install.js.map +1 -1
  102. package/dist/tokens/core.meta.generated.js +2 -2
  103. package/dist/tokens/core.meta.generated.js.map +1 -1
  104. package/dist/tokens/index.d.ts +1029 -1104
  105. package/dist/tokens/index.js +1031 -1106
  106. package/dist/tokens/index.js.map +1 -1
  107. package/dist/tokens/palette.generated.js +2 -2
  108. package/dist/tokens/palette.generated.js.map +1 -1
  109. package/dist/tokens.json +605 -755
  110. package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js +385 -340
  111. package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js.map +1 -1
  112. package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js +344 -229
  113. package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js.map +1 -1
  114. package/dist/vendor/.bun/@dnd-kit_utilities@3.2.2_62547eec5a2188e3/vendor/@dnd-kit/utilities/dist/utilities.esm.js +1 -1
  115. package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js +36 -0
  116. package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
  117. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js +450 -0
  118. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
  119. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js +50 -0
  120. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
  121. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sources":["../../../src/components/select/select.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { useAppearanceAttributes } from \"../appearance-boundary/appearance-boundary\"\nimport { useDensity } from \"../density-provider/density-provider\"\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\nconst XIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z\" />\n </svg>\n)\n\nconst CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"m382-354 339-339q12-12 28-12t28 12q12 12 12 28.5T777-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z\" />\n </svg>\n)\n\nconst ChevronDownIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M459-381 314-526q-3-3-4.5-6.5T308-540q0-8 5.5-14t14.5-6h304q9 0 14.5 6t5.5 14q0 2-6 14L501-381q-5 5-10 7t-11 2q-6 0-11-2t-10-7Z\" />\n </svg>\n)\n\nconst ChevronUpIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-528 324-372q-11 11-28 11t-28-11q-11-11-11-28t11-28l184-184q12-12 28-12t28 12l184 184q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-528Z\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n trigger: {\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusLg),\n backgroundColor: \"transparent\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n whiteSpace: \"normal\",\n textAlign: \"left\",\n cursor: \"pointer\",\n transitionProperty: \"color, box-shadow\",\n transitionDuration: \"150ms\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.semFocusRing,\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n \"&[data-placeholder]\": {\n color: tokens.grayA8,\n },\n \"& svg\": {\n pointerEvents: \"none\",\n flexShrink: 0,\n },\n [`& [${SLOT_ATTR}=\"select-value\"]`]: {\n display: \"flex\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n\n // The open-state chevron rotation is declared HERE, on the trigger that carries the state\n // attribute, reaching the icon by SLOT_ATTR.\n [`&[data-state='open'] [${SLOT_ATTR}=\"select-icon\"] svg`]: {\n transform: \"rotate(180deg)\",\n },\n [`&[data-state='open'] [${SLOT_ATTR}=\"select-icon\"]`]: {\n transform: \"rotate(180deg)\",\n },\n [`&[data-open] [${SLOT_ATTR}=\"select-icon\"] svg`]: {\n transform: \"rotate(180deg)\",\n },\n [`&[data-popup-open] [${SLOT_ATTR}=\"select-icon\"] svg`]: {\n transform: \"rotate(180deg)\",\n },\n },\n triggerIconWrapper: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n triggerIcon: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n color: tokens.grayA11,\n transitionProperty: \"transform\",\n transitionDuration: \"150ms\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n },\n triggerClear: {\n position: \"absolute\",\n right: \"2.75rem\",\n paddingTop: \"0.125rem\",\n paddingBottom: \"0.125rem\",\n paddingLeft: \"0.125rem\",\n paddingRight: \"0.125rem\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"transparent\",\n color: tokens.accentA11,\n cursor: \"pointer\",\n ...shorthands.borderRadius(tokens.radiusMd),\n \":hover\": {\n backgroundColor: tokens.semAccentSoft,\n },\n \":focus-visible\": {\n outlineColor: tokens.semFocusRing,\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n },\n },\n triggerClearIcon: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n color: tokens.accentA11,\n },\n popup: {\n backgroundColor: tokens.body,\n // DENSITY-SPEC.md §2.3 — popup padding/gap only; the slide-in animation offsets a few lines\n // below deliberately keep the plain (non-density) `spacingElement2` value: they are not in the\n // approved matrix, and re-using the same primitive for two unrelated purposes doesn't make the\n // animation distance a density lever too.\n ...shorthands.padding(tokens.selectContentPadding),\n ...shorthands.gap(tokens.selectContentGap),\n color: tokens.grayA12,\n position: \"relative\",\n zIndex: 50,\n transformOrigin: \"var(--radix-select-content-transform-origin)\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n ...shorthands.borderRadius(tokens.radius2xl),\n ...shorthands.border(\"1px\", \"solid\", \"transparent\"),\n // v1 shadow-md\n boxShadow: \"0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a\",\n outlineStyle: \"none\",\n maxHeight: \"var(--radix-popper-available-height, 20rem)\",\n \"@media (prefers-reduced-motion: reduce)\": {\n animationDuration: \"0.01ms\",\n animationIterationCount: \"1\",\n \"&[data-state='open']\": {\n animationDuration: \"0.01ms\",\n },\n },\n \"&[data-state='open']\": {\n animationName: {\n from: { opacity: 0, transform: \"scale(0.95)\" },\n to: { opacity: 1, transform: \"scale(1)\" },\n },\n animationDuration: \"150ms\",\n animationTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n },\n \"&[data-state='open'][data-side='bottom']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateY(-${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateY(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='left']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateX(${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateX(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='right']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateX(-${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateX(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='top']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateY(${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateY(0) scale(1)\" },\n },\n },\n \"&[data-state='closed']\": {\n animationName: {\n from: { opacity: 1, transform: \"scale(1)\" },\n to: { opacity: 0, transform: \"scale(0.95)\" },\n },\n animationDuration: \"100ms\",\n animationTimingFunction: \"cubic-bezier(0.4, 0, 1, 1)\",\n },\n },\n viewport: {\n width: \"100%\",\n minWidth: \"var(--radix-select-trigger-width)\",\n scrollMarginTop: tokens.spacingElement1,\n scrollMarginBottom: tokens.spacingElement1,\n },\n item: {\n position: \"relative\",\n display: \"flex\",\n width: \"100%\",\n cursor: \"default\",\n userSelect: \"none\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusMd),\n // DENSITY-SPEC.md §2.3 — left padding and vertical padding are density levers; right padding\n // stays a fixed 32px at every tier (reserves the check-indicator's space, not modeled in\n // density.yaml).\n paddingLeft: tokens.selectItemPaddingLeft,\n paddingRight: \"2rem\",\n paddingTop: tokens.selectItemPaddingY,\n paddingBottom: tokens.selectItemPaddingY,\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA12,\n outlineStyle: \"none\",\n \":not(:first-child)\": {\n marginTop: \"0.125rem\",\n },\n \"&[data-highlighted]\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-state='checked']\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-disabled]\": {\n pointerEvents: \"none\",\n opacity: 0.5,\n },\n \"& svg\": {\n pointerEvents: \"none\",\n flexShrink: 0,\n },\n \"& svg:not([class*='text-'])\": {\n color: tokens.grayA11,\n },\n },\n itemIndicatorWrapper: {\n position: \"absolute\",\n right: tokens.spacingElement2,\n display: \"flex\",\n width: \"1rem\",\n height: \"1rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n itemIndicatorIcon: {\n width: \"1rem\",\n height: \"1rem\",\n color: tokens.grayA11,\n },\n label: {\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.gray11,\n },\n separator: {\n pointerEvents: \"none\",\n marginLeft: `calc(-1 * ${tokens.spacingElement1})`,\n marginRight: `calc(-1 * ${tokens.spacingElement1})`,\n marginTop: tokens.spacingElement1,\n marginBottom: tokens.spacingElement1,\n height: \"1px\",\n backgroundColor: tokens.semGraySoft,\n },\n scrollArrow: {\n display: \"flex\",\n cursor: \"default\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n scrollArrowUp: {\n paddingBottom: tokens.spacingElement1,\n },\n scrollArrowDown: {\n paddingTop: tokens.spacingElement1,\n },\n scrollArrowIcon: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n },\n scrollArrowDownIcon: {\n transform: \"rotate(180deg)\",\n },\n})\n\nexport type SelectProps = React.ComponentProps<typeof SelectPrimitive.Root>\n\nexport const Select: React.ForwardRefExoticComponent<\n SelectProps & React.RefAttributes<HTMLElement>\n> = React.forwardRef<HTMLElement, SelectProps>(function Select(props, _ref) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n})\n\nexport type SelectGroupProps = React.ComponentProps<\n typeof SelectPrimitive.Group\n>\n\nexport const SelectGroup = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Group>,\n SelectGroupProps\n>(function SelectGroup({ className, ...props }, ref) {\n return (\n <SelectPrimitive.Group\n ref={ref}\n data-slot=\"select-group\"\n {...{ [SLOT_ATTR]: \"select-group\" }}\n className={className}\n {...props}\n />\n )\n})\n\nexport type SelectValueProps = React.ComponentProps<\n typeof SelectPrimitive.Value\n>\n\nexport const SelectValue = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Value>,\n SelectValueProps\n>(function SelectValue({ className, ...props }, ref) {\n return (\n <SelectPrimitive.Value\n ref={ref}\n data-slot=\"select-value\"\n {...{ [SLOT_ATTR]: \"select-value\" }}\n className={className}\n {...props}\n />\n )\n})\n\nexport type SelectTriggerProps = React.ComponentProps<\n typeof SelectPrimitive.Trigger\n>\n\nexport const SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(function SelectTrigger({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n {...{ [SLOT_ATTR]: \"select-trigger\" }}\n className={mergeClasses(styles.trigger, className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n asChild\n data-slot=\"select-icon\"\n {...{ [SLOT_ATTR]: \"select-icon\" }}\n className={styles.triggerIconWrapper}\n >\n <ChevronDownIcon className={styles.triggerIcon} />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n})\n\nexport type SelectTriggerClearProps = React.ComponentProps<\"span\">\n\nexport const SelectTriggerClear = React.forwardRef<\n HTMLSpanElement,\n SelectTriggerClearProps\n>(function SelectTriggerClear({ className, onClick, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n role=\"button\"\n tabIndex={0}\n data-slot=\"select-trigger-clear\"\n {...{ [SLOT_ATTR]: \"select-trigger-clear\" }}\n className={mergeClasses(styles.triggerClear, className)}\n onPointerDown={(event) => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onClick={(event: React.MouseEvent<HTMLSpanElement>) => {\n event.preventDefault()\n event.stopPropagation()\n onClick?.(event)\n }}\n {...props}\n >\n <XIcon className={styles.triggerClearIcon} />\n </span>\n )\n})\n\nexport type SelectContentProps = React.ComponentProps<\n typeof SelectPrimitive.Content\n> & {\n container?: React.ComponentProps<typeof SelectPrimitive.Portal>[\"container\"]\n}\n\nexport const SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(function SelectContent(\n {\n className,\n children,\n position = \"popper\",\n align = \"center\",\n container,\n ...props\n },\n ref\n) {\n const styles = useStyles()\n // DENSITY-SPEC.md §4.4 — SelectContent is a portal root: stamp the explicit override ONLY when\n // one exists in the React tree, so an ambient shell default (which already reaches this portal\n // via ordinary DOM inheritance, since the portal container is still a descendant of `<html>`)\n // isn't masked by a stale/default value.\n const override = useDensity()\n // SPEC.md §2 rule 3 — the same portal asymmetry, for the appearance pair: re-stamp the\n // nearest explicit AppearanceBoundary's mode+surface, or neither attribute when there is\n // none, leaving live shell inheritance in place.\n const appearance = useAppearanceAttributes()\n\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Content\n ref={ref}\n data-slot=\"select-content\"\n {...{ [SLOT_ATTR]: \"select-content\" }}\n {...(override !== undefined ? { \"data-density\": override } : {})}\n {...appearance}\n position={position}\n align={align}\n className={mergeClasses(styles.popup, className)}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-slot=\"select-viewport\"\n {...{ [SLOT_ATTR]: \"select-viewport\" }}\n className={styles.viewport}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n})\n\nexport type SelectLabelProps = React.ComponentProps<\n typeof SelectPrimitive.Label\n>\n\nexport const SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n SelectLabelProps\n>(function SelectLabel({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.Label\n ref={ref}\n data-slot=\"select-label\"\n {...{ [SLOT_ATTR]: \"select-label\" }}\n className={mergeClasses(styles.label, className)}\n {...props}\n />\n )\n})\n\nexport type SelectItemProps = React.ComponentProps<typeof SelectPrimitive.Item>\n\nexport const SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n SelectItemProps\n>(function SelectItem({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.Item\n ref={ref}\n data-slot=\"select-item\"\n {...{ [SLOT_ATTR]: \"select-item\" }}\n className={mergeClasses(styles.item, className)}\n {...props}\n >\n <span className={styles.itemIndicatorWrapper}>\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className={styles.itemIndicatorIcon} />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n})\n\nexport type SelectSeparatorProps = React.ComponentProps<\n typeof SelectPrimitive.Separator\n>\n\nexport const SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n SelectSeparatorProps\n>(function SelectSeparator({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.Separator\n ref={ref}\n data-slot=\"select-separator\"\n {...{ [SLOT_ATTR]: \"select-separator\" }}\n className={mergeClasses(styles.separator, className)}\n {...props}\n />\n )\n})\n\nexport type SelectScrollUpButtonProps = React.ComponentProps<\n typeof SelectPrimitive.ScrollUpButton\n>\n\nexport const SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n SelectScrollUpButtonProps\n>(function SelectScrollUpButton({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n data-slot=\"select-scroll-up-button\"\n {...{ [SLOT_ATTR]: \"select-scroll-up-button\" }}\n className={mergeClasses(\n styles.scrollArrow,\n styles.scrollArrowUp,\n className\n )}\n {...props}\n >\n {children ?? <ChevronUpIcon className={styles.scrollArrowIcon} />}\n </SelectPrimitive.ScrollUpButton>\n )\n})\n\nexport type SelectScrollDownButtonProps = React.ComponentProps<\n typeof SelectPrimitive.ScrollDownButton\n>\n\nexport const SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n SelectScrollDownButtonProps\n>(function SelectScrollDownButton({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n data-slot=\"select-scroll-down-button\"\n {...{ [SLOT_ATTR]: \"select-scroll-down-button\" }}\n className={mergeClasses(\n styles.scrollArrow,\n styles.scrollArrowDown,\n className\n )}\n {...props}\n >\n {children ?? (\n <ChevronUpIcon\n className={mergeClasses(\n styles.scrollArrowIcon,\n styles.scrollArrowDownIcon\n )}\n />\n )}\n </SelectPrimitive.ScrollDownButton>\n )\n})\n"],"names":["XIcon","props","jsx","CheckIcon","ChevronDownIcon","ChevronUpIcon","useStyles","makeZenithStyles","shorthands","tokens.spacingElement2","tokens.radiusLg","tokens.textSm","tokens.leadingSm","tokens.semFocusRing","tokens.grayA8","SLOT_ATTR","tokens.grayA11","tokens.accentA11","tokens.radiusMd","tokens.semAccentSoft","tokens.body","tokens.selectContentPadding","tokens.selectContentGap","tokens.grayA12","tokens.radius2xl","tokens.spacingElement1","tokens.selectItemPaddingLeft","tokens.selectItemPaddingY","tokens.accentA3","tokens.textXs","tokens.leadingXs","tokens.fontWeightSemibold","tokens.gray11","tokens.semGraySoft","Select","React","_ref","SelectPrimitive.Root","SelectGroup","className","ref","SelectPrimitive.Group","SelectValue","SelectPrimitive.Value","SelectTrigger","children","styles","jsxs","SelectPrimitive.Trigger","mergeClasses","SelectPrimitive.Icon","SelectTriggerClear","onClick","event","SelectContent","position","align","container","override","useDensity","appearance","useAppearanceAttributes","SelectPrimitive.Portal","SelectPrimitive.Content","SelectScrollUpButton","SelectPrimitive.Viewport","SelectScrollDownButton","SelectLabel","SelectPrimitive.Label","SelectItem","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","SelectPrimitive.ItemText","SelectSeparator","SelectPrimitive.Separator","SelectPrimitive.ScrollUpButton","SelectPrimitive.ScrollDownButton"],"mappings":";;;;;;;;AAWA,MAAMA,KAAQ,CAACC,MACb,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,GAAGD;AAAA,IAEJ,UAAA,gBAAAC,EAAC,QAAA,EAAK,GAAE,oOAAA,CAAoO;AAAA,EAAA;AAC9O,GAGIC,KAAY,CAACF,MACjB,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,GAAGD;AAAA,IAEJ,UAAA,gBAAAC,EAAC,QAAA,EAAK,GAAE,uJAAA,CAAuJ;AAAA,EAAA;AACjK,GAGIE,KAAkB,CAACH,MACvB,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,GAAGD;AAAA,IAEJ,UAAA,gBAAAC,EAAC,QAAA,EAAK,GAAE,kIAAA,CAAkI;AAAA,EAAA;AAC5I,GAGIG,IAAgB,CAACJ,MACrB,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,GAAGD;AAAA,IAEJ,UAAA,gBAAAC,EAAC,QAAA,EAAK,GAAE,4IAAA,CAA4I;AAAA,EAAA;AACtJ,GAGII,IAAYC,EAAiB;AAAA,EACjC,SAAS;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,GAAGC,EAAW,IAAIC,CAAsB;AAAA,IACxC,GAAGD,EAAW,aAAaE,EAAe;AAAA,IAC1C,iBAAiB;AAAA,IACjB,UAAUC;AAAAA,IACV,YAAYC;AAAAA,IACZ,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,0BAA0B;AAAA,IAC1B,2CAA2C;AAAA,MACzC,oBAAoB;AAAA,IAAA;AAAA,IAEtB,kBAAkB;AAAA,MAChB,cAAc;AAAA,MACd,cAAc;AAAA,MACd,eAAe;AAAA,MACf,cAAcC;AAAAA,IAAO;AAAA,IAEvB,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,IAAA;AAAA,IAEX,uBAAuB;AAAA,MACrB,OAAOC;AAAAA,IAAO;AAAA,IAEhB,SAAS;AAAA,MACP,eAAe;AAAA,MACf,YAAY;AAAA,IAAA;AAAA,IAEd,CAAC,MAAMC,CAAS,kBAAkB,GAAG;AAAA,MACnC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,GAAGP,EAAW,IAAIC,CAAsB;AAAA,MACxC,UAAU;AAAA,MACV,cAAc;AAAA,MACd,YAAY;AAAA,IAAA;AAAA;AAAA;AAAA,IAKd,CAAC,yBAAyBM,CAAS,qBAAqB,GAAG;AAAA,MACzD,WAAW;AAAA,IAAA;AAAA,IAEb,CAAC,yBAAyBA,CAAS,iBAAiB,GAAG;AAAA,MACrD,WAAW;AAAA,IAAA;AAAA,IAEb,CAAC,iBAAiBA,CAAS,qBAAqB,GAAG;AAAA,MACjD,WAAW;AAAA,IAAA;AAAA,IAEb,CAAC,uBAAuBA,CAAS,qBAAqB,GAAG;AAAA,MACvD,WAAW;AAAA,IAAA;AAAA,EACb;AAAA,EAEF,oBAAoB;AAAA,IAClB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,YAAY;AAAA,EAAA;AAAA,EAEd,aAAa;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOC;AAAAA,IACP,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,0BAA0B;AAAA,IAC1B,2CAA2C;AAAA,MACzC,oBAAoB;AAAA,IAAA;AAAA,EACtB;AAAA,EAEF,cAAc;AAAA,IACZ,UAAU;AAAA,IACV,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,aAAa;AAAA,IACb,cAAc;AAAA,IACd,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,OAAOC;AAAAA,IACP,QAAQ;AAAA,IACR,GAAGT,EAAW,aAAaU,CAAe;AAAA,IAC1C,UAAU;AAAA,MACR,iBAAiBC;AAAAA,IAAO;AAAA,IAE1B,kBAAkB;AAAA,MAChB,cAAcN;AAAAA,MACd,cAAc;AAAA,MACd,cAAc;AAAA,MACd,eAAe;AAAA,IAAA;AAAA,EACjB;AAAA,EAEF,kBAAkB;AAAA,IAChB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOI;AAAAA,EAAO;AAAA,EAEhB,OAAO;AAAA,IACL,iBAAiBG;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAKjB,GAAGZ,EAAW,QAAQa,EAA2B;AAAA,IACjD,GAAGb,EAAW,IAAIc,EAAuB;AAAA,IACzC,OAAOC;AAAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,WAAW;AAAA,IACX,WAAW;AAAA,IACX,GAAGf,EAAW,aAAagB,EAAgB;AAAA,IAC3C,GAAGhB,EAAW,OAAO,OAAO,SAAS,aAAa;AAAA;AAAA,IAElD,WAAW;AAAA,IACX,cAAc;AAAA,IACd,WAAW;AAAA,IACX,2CAA2C;AAAA,MACzC,mBAAmB;AAAA,MACnB,yBAAyB;AAAA,MACzB,wBAAwB;AAAA,QACtB,mBAAmB;AAAA,MAAA;AAAA,IACrB;AAAA,IAEF,wBAAwB;AAAA,MACtB,eAAe;AAAA,QACb,MAAM,EAAE,SAAS,GAAG,WAAW,cAAA;AAAA,QAC/B,IAAI,EAAE,SAAS,GAAG,WAAW,WAAA;AAAA,MAAW;AAAA,MAE1C,mBAAmB;AAAA,MACnB,yBAAyB;AAAA,IAAA;AAAA,IAE3B,4CAA4C;AAAA,MAC1C,eAAe;AAAA,QACb,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,WAAW,eAAeC,CAAsB;AAAA,QAAA;AAAA,QAElD,IAAI,EAAE,SAAS,GAAG,WAAW,yBAAA;AAAA,MAAyB;AAAA,IACxD;AAAA,IAEF,0CAA0C;AAAA,MACxC,eAAe;AAAA,QACb,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,WAAW,cAAcA,CAAsB;AAAA,QAAA;AAAA,QAEjD,IAAI,EAAE,SAAS,GAAG,WAAW,yBAAA;AAAA,MAAyB;AAAA,IACxD;AAAA,IAEF,2CAA2C;AAAA,MACzC,eAAe;AAAA,QACb,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,WAAW,eAAeA,CAAsB;AAAA,QAAA;AAAA,QAElD,IAAI,EAAE,SAAS,GAAG,WAAW,yBAAA;AAAA,MAAyB;AAAA,IACxD;AAAA,IAEF,yCAAyC;AAAA,MACvC,eAAe;AAAA,QACb,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,WAAW,cAAcA,CAAsB;AAAA,QAAA;AAAA,QAEjD,IAAI,EAAE,SAAS,GAAG,WAAW,yBAAA;AAAA,MAAyB;AAAA,IACxD;AAAA,IAEF,0BAA0B;AAAA,MACxB,eAAe;AAAA,QACb,MAAM,EAAE,SAAS,GAAG,WAAW,WAAA;AAAA,QAC/B,IAAI,EAAE,SAAS,GAAG,WAAW,cAAA;AAAA,MAAc;AAAA,MAE7C,mBAAmB;AAAA,MACnB,yBAAyB;AAAA,IAAA;AAAA,EAC3B;AAAA,EAEF,UAAU;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,iBAAiBgB;AAAAA,IACjB,oBAAoBA;AAAAA,EAAO;AAAA,EAE7B,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,GAAGjB,EAAW,IAAIC,CAAsB;AAAA,IACxC,GAAGD,EAAW,aAAaU,CAAe;AAAA;AAAA;AAAA;AAAA,IAI1C,aAAaQ;AAAAA,IACb,cAAc;AAAA,IACd,YAAYC;AAAAA,IACZ,eAAeA;AAAAA,IACf,UAAUhB;AAAAA,IACV,YAAYC;AAAAA,IACZ,OAAOW;AAAAA,IACP,cAAc;AAAA,IACd,sBAAsB;AAAA,MACpB,WAAW;AAAA,IAAA;AAAA,IAEb,uBAAuB;AAAA,MACrB,iBAAiBK;AAAAA,IAAO;AAAA,IAE1B,2BAA2B;AAAA,MACzB,iBAAiBA;AAAAA,IAAO;AAAA,IAE1B,oBAAoB;AAAA,MAClB,eAAe;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,IAEX,SAAS;AAAA,MACP,eAAe;AAAA,MACf,YAAY;AAAA,IAAA;AAAA,IAEd,+BAA+B;AAAA,MAC7B,OAAOZ;AAAAA,IAAO;AAAA,EAChB;AAAA,EAEF,sBAAsB;AAAA,IACpB,UAAU;AAAA,IACV,OAAOP;AAAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAAA;AAAA,EAElB,mBAAmB;AAAA,IACjB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOO;AAAAA,EAAO;AAAA,EAEhB,OAAO;AAAA,IACL,aAAaP;AAAAA,IACb,cAAcA;AAAAA,IACd,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,UAAUoB;AAAAA,IACV,YAAYC;AAAAA,IACZ,YAAYC;AAAAA,IACZ,OAAOC;AAAAA,EAAO;AAAA,EAEhB,WAAW;AAAA,IACT,eAAe;AAAA,IACf,YAAY,aAAaP,CAAsB;AAAA,IAC/C,aAAa,aAAaA,CAAsB;AAAA,IAChD,WAAWA;AAAAA,IACX,cAAcA;AAAAA,IACd,QAAQ;AAAA,IACR,iBAAiBQ;AAAAA,EAAO;AAAA,EAE1B,aAAa;AAAA,IACX,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAAA;AAAA,EAElB,eAAe;AAAA,IACb,eAAeR;AAAAA,EAAO;AAAA,EAExB,iBAAiB;AAAA,IACf,YAAYA;AAAAA,EAAO;AAAA,EAErB,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,qBAAqB;AAAA,IACnB,WAAW;AAAA,EAAA;AAEf,CAAC,GAIYS,KAETC,EAAM,WAAqC,SAAgBlC,GAAOmC,GAAM;AAC1E,2BAAQC,GAAA,EAAqB,aAAU,UAAU,GAAGpC,GAAO;AAC7D,CAAC,GAMYqC,KAAcH,EAAM,WAG/B,SAAqB,EAAE,WAAAI,GAAW,GAAGtC,EAAA,GAASuC,GAAK;AACnD,SACE,gBAAAtC;AAAA,IAACuC;AAAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAAwB;AAAA,MACC,GAAGtC;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC,GAMYyC,KAAcP,EAAM,WAG/B,SAAqB,EAAE,WAAAI,GAAW,GAAGtC,EAAA,GAASuC,GAAK;AACnD,SACE,gBAAAtC;AAAA,IAACyC;AAAAA,IAAA;AAAA,MACC,KAAAH;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAAwB;AAAA,MACC,GAAGtC;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC,GAMY2C,KAAgBT,EAAM,WAGjC,SAAuB,EAAE,WAAAI,GAAW,UAAAM,GAAU,GAAG5C,EAAA,GAASuC,GAAK;AAC/D,QAAMM,IAASxC,EAAA;AAEf,SACE,gBAAAyC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAR;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAWkC,EAAaH,EAAO,SAASP,CAAS;AAAA,MAChD,GAAGtC;AAAA,MAEH,UAAA;AAAA,QAAA4C;AAAA,QACD,gBAAA3C;AAAA,UAACgD;AAAAA,UAAA;AAAA,YACC,SAAO;AAAA,YACP,aAAU;AAAA,YACJ,CAACnC,CAAS,GAAG;AAAA,YACnB,WAAW+B,EAAO;AAAA,YAElB,UAAA,gBAAA5C,EAACE,IAAA,EAAgB,WAAW0C,EAAO,YAAA,CAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MAClD;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC,GAIYK,KAAqBhB,EAAM,WAGtC,SAA4B,EAAE,WAAAI,GAAW,SAAAa,GAAS,GAAGnD,EAAA,GAASuC,GAAK;AACnE,QAAMM,IAASxC,EAAA;AAEf,SACE,gBAAAJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAsC;AAAA,MACA,MAAK;AAAA,MACL,UAAU;AAAA,MACV,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAWkC,EAAaH,EAAO,cAAcP,CAAS;AAAA,MACtD,eAAe,CAACc,MAAU;AACxB,QAAAA,EAAM,eAAA,GACNA,EAAM,gBAAA;AAAA,MACR;AAAA,MACA,SAAS,CAACA,MAA6C;AACrD,QAAAA,EAAM,eAAA,GACNA,EAAM,gBAAA,GACND,KAAA,QAAAA,EAAUC;AAAA,MACZ;AAAA,MACC,GAAGpD;AAAA,MAEJ,UAAA,gBAAAC,EAACF,IAAA,EAAM,WAAW8C,EAAO,iBAAA,CAAkB;AAAA,IAAA;AAAA,EAAA;AAGjD,CAAC,GAQYQ,KAAgBnB,EAAM,WAGjC,SACA;AAAA,EACE,WAAAI;AAAA,EACA,UAAAM;AAAA,EACA,UAAAU,IAAW;AAAA,EACX,OAAAC,IAAQ;AAAA,EACR,WAAAC;AAAA,EACA,GAAGxD;AACL,GACAuC,GACA;AACA,QAAMM,IAASxC,EAAA,GAKToD,IAAWC,EAAA,GAIXC,IAAaC,EAAA;AAEnB,SACE,gBAAA3D,EAAC4D,GAAA,EAAuB,WAAAL,GACtB,UAAA,gBAAAV;AAAA,IAACgB;AAAAA,IAAA;AAAA,MACC,KAAAvB;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MAClB,GAAI2C,MAAa,SAAY,EAAE,gBAAgBA,EAAA,IAAa,CAAA;AAAA,MAC5D,GAAGE;AAAA,MACJ,UAAAL;AAAA,MACA,OAAAC;AAAA,MACA,WAAWP,EAAaH,EAAO,OAAOP,CAAS;AAAA,MAC9C,GAAGtC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAC,EAAC8D,IAAA,EAAqB;AAAA,QACtB,gBAAA9D;AAAA,UAAC+D;AAAAA,UAAA;AAAA,YACC,aAAU;AAAA,YACJ,CAAClD,CAAS,GAAG;AAAA,YACnB,WAAW+B,EAAO;AAAA,YAEjB,UAAAD;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEFqB,IAAA,CAAA,CAAuB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAE5B;AAEJ,CAAC,GAMYC,KAAchC,EAAM,WAG/B,SAAqB,EAAE,WAAAI,GAAW,GAAGtC,EAAA,GAASuC,GAAK;AACnD,QAAMM,IAASxC,EAAA;AAEf,SACE,gBAAAJ;AAAA,IAACkE;AAAAA,IAAA;AAAA,MACC,KAAA5B;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAWkC,EAAaH,EAAO,OAAOP,CAAS;AAAA,MAC9C,GAAGtC;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC,GAIYoE,KAAalC,EAAM,WAG9B,SAAoB,EAAE,WAAAI,GAAW,UAAAM,GAAU,GAAG5C,EAAA,GAASuC,GAAK;AAC5D,QAAMM,IAASxC,EAAA;AAEf,SACE,gBAAAyC;AAAA,IAACuB;AAAAA,IAAA;AAAA,MACC,KAAA9B;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAWkC,EAAaH,EAAO,MAAMP,CAAS;AAAA,MAC7C,GAAGtC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAC,EAAC,QAAA,EAAK,WAAW4C,EAAO,sBACtB,4BAACyB,GAAA,EACC,UAAA,gBAAArE,EAACC,IAAA,EAAU,WAAW2C,EAAO,kBAAA,CAAmB,GAClD,GACF;AAAA,QACA,gBAAA5C,EAACsE,GAAA,EAA0B,UAAA3B,EAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C,CAAC,GAMY4B,KAAkBtC,EAAM,WAGnC,SAAyB,EAAE,WAAAI,GAAW,GAAGtC,EAAA,GAASuC,GAAK;AACvD,QAAMM,IAASxC,EAAA;AAEf,SACE,gBAAAJ;AAAA,IAACwE;AAAAA,IAAA;AAAA,MACC,KAAAlC;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAWkC,EAAaH,EAAO,WAAWP,CAAS;AAAA,MAClD,GAAGtC;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC,GAMY+D,KAAuB7B,EAAM,WAGxC,SAA8B,EAAE,WAAAI,GAAW,UAAAM,GAAU,GAAG5C,EAAA,GAASuC,GAAK;AACtE,QAAMM,IAASxC,EAAA;AAEf,SACE,gBAAAJ;AAAA,IAACyE;AAAAA,IAAA;AAAA,MACC,KAAAnC;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAWkC;AAAA,QACTH,EAAO;AAAA,QACPA,EAAO;AAAA,QACPP;AAAA,MAAA;AAAA,MAED,GAAGtC;AAAA,MAEH,UAAA4C,KAAY,gBAAA3C,EAACG,GAAA,EAAc,WAAWyC,EAAO,gBAAA,CAAiB;AAAA,IAAA;AAAA,EAAA;AAGrE,CAAC,GAMYoB,KAAyB/B,EAAM,WAG1C,SAAgC,EAAE,WAAAI,GAAW,UAAAM,GAAU,GAAG5C,EAAA,GAASuC,GAAK;AACxE,QAAMM,IAASxC,EAAA;AAEf,SACE,gBAAAJ;AAAA,IAAC0E;AAAAA,IAAA;AAAA,MACC,KAAApC;AAAA,MACA,aAAU;AAAA,MACJ,CAACzB,CAAS,GAAG;AAAA,MACnB,WAAWkC;AAAA,QACTH,EAAO;AAAA,QACPA,EAAO;AAAA,QACPP;AAAA,MAAA;AAAA,MAED,GAAGtC;AAAA,MAEH,UAAA4C,KACC,gBAAA3C;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,WAAW4C;AAAA,YACTH,EAAO;AAAA,YACPA,EAAO;AAAA,UAAA;AAAA,QACT;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAIR,CAAC;"}
1
+ {"version":3,"file":"select.js","sources":["../../../src/components/select/select.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { useAppearanceAttributes } from \"../appearance-boundary/appearance-boundary\"\nimport { useDensity } from \"../density-provider/density-provider\"\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\nconst XIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z\" />\n </svg>\n)\n\nconst CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"m382-354 339-339q12-12 28-12t28 12q12 12 12 28.5T777-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z\" />\n </svg>\n)\n\nconst ChevronDownIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M459-381 314-526q-3-3-4.5-6.5T308-540q0-8 5.5-14t14.5-6h304q9 0 14.5 6t5.5 14q0 2-6 14L501-381q-5 5-10 7t-11 2q-6 0-11-2t-10-7Z\" />\n </svg>\n)\n\nconst ChevronUpIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-528 324-372q-11 11-28 11t-28-11q-11-11-11-28t11-28l184-184q12-12 28-12t28 12l184 184q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-528Z\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n trigger: {\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusLg),\n backgroundColor: \"transparent\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n whiteSpace: \"normal\",\n textAlign: \"left\",\n cursor: \"pointer\",\n transitionProperty: \"color, box-shadow\",\n transitionDuration: \"150ms\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.focusRing,\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n \"&[data-placeholder]\": {\n color: tokens.grayA8,\n },\n \"& svg\": {\n pointerEvents: \"none\",\n flexShrink: 0,\n },\n [`& [${SLOT_ATTR}=\"select-value\"]`]: {\n display: \"flex\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n\n // The open-state chevron rotation is declared HERE, on the trigger that carries the state\n // attribute, reaching the icon by SLOT_ATTR.\n [`&[data-state='open'] [${SLOT_ATTR}=\"select-icon\"] svg`]: {\n transform: \"rotate(180deg)\",\n },\n [`&[data-state='open'] [${SLOT_ATTR}=\"select-icon\"]`]: {\n transform: \"rotate(180deg)\",\n },\n [`&[data-open] [${SLOT_ATTR}=\"select-icon\"] svg`]: {\n transform: \"rotate(180deg)\",\n },\n [`&[data-popup-open] [${SLOT_ATTR}=\"select-icon\"] svg`]: {\n transform: \"rotate(180deg)\",\n },\n },\n triggerIconWrapper: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n triggerIcon: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n color: tokens.grayA11,\n transitionProperty: \"transform\",\n transitionDuration: \"150ms\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n },\n triggerClear: {\n position: \"absolute\",\n right: \"2.75rem\",\n paddingTop: \"0.125rem\",\n paddingBottom: \"0.125rem\",\n paddingLeft: \"0.125rem\",\n paddingRight: \"0.125rem\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"transparent\",\n color: tokens.accentA11,\n cursor: \"pointer\",\n ...shorthands.borderRadius(tokens.radiusMd),\n \":hover\": {\n backgroundColor: tokens.accentSoft,\n },\n \":focus-visible\": {\n outlineColor: tokens.focusRing,\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n },\n },\n triggerClearIcon: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n color: tokens.accentA11,\n },\n popup: {\n backgroundColor: tokens.body,\n // DENSITY-SPEC.md §2.3 — popup padding/gap only; the slide-in animation offsets a few lines\n // below deliberately keep the plain (non-density) `spacingElement2` value: they are not in the\n // approved matrix, and re-using the same primitive for two unrelated purposes doesn't make the\n // animation distance a density lever too.\n ...shorthands.padding(tokens.selectContentPadding),\n ...shorthands.gap(tokens.selectContentGap),\n color: tokens.grayA12,\n position: \"relative\",\n zIndex: 50,\n transformOrigin: \"var(--radix-select-content-transform-origin)\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n ...shorthands.borderRadius(tokens.radius2xl),\n ...shorthands.border(\"1px\", \"solid\", \"transparent\"),\n // v1 shadow-md\n boxShadow: \"0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a\",\n outlineStyle: \"none\",\n maxHeight: \"var(--radix-popper-available-height, 20rem)\",\n \"@media (prefers-reduced-motion: reduce)\": {\n animationDuration: \"0.01ms\",\n animationIterationCount: \"1\",\n \"&[data-state='open']\": {\n animationDuration: \"0.01ms\",\n },\n },\n \"&[data-state='open']\": {\n animationName: {\n from: { opacity: 0, transform: \"scale(0.95)\" },\n to: { opacity: 1, transform: \"scale(1)\" },\n },\n animationDuration: \"150ms\",\n animationTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n },\n \"&[data-state='open'][data-side='bottom']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateY(-${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateY(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='left']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateX(${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateX(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='right']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateX(-${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateX(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='top']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateY(${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateY(0) scale(1)\" },\n },\n },\n \"&[data-state='closed']\": {\n animationName: {\n from: { opacity: 1, transform: \"scale(1)\" },\n to: { opacity: 0, transform: \"scale(0.95)\" },\n },\n animationDuration: \"100ms\",\n animationTimingFunction: \"cubic-bezier(0.4, 0, 1, 1)\",\n },\n },\n viewport: {\n width: \"100%\",\n minWidth: \"var(--radix-select-trigger-width)\",\n scrollMarginTop: tokens.spacingElement1,\n scrollMarginBottom: tokens.spacingElement1,\n },\n item: {\n position: \"relative\",\n display: \"flex\",\n width: \"100%\",\n cursor: \"default\",\n userSelect: \"none\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusMd),\n // DENSITY-SPEC.md §2.3 — left padding and vertical padding are density levers; right padding\n // stays a fixed 32px at every tier (reserves the check-indicator's space, not modeled in\n // density.yaml).\n paddingLeft: tokens.selectItemPaddingLeft,\n paddingRight: \"2rem\",\n paddingTop: tokens.selectItemPaddingY,\n paddingBottom: tokens.selectItemPaddingY,\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA12,\n outlineStyle: \"none\",\n \":not(:first-child)\": {\n marginTop: \"0.125rem\",\n },\n \"&[data-highlighted]\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-state='checked']\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-disabled]\": {\n pointerEvents: \"none\",\n opacity: 0.5,\n },\n \"& svg\": {\n pointerEvents: \"none\",\n flexShrink: 0,\n },\n \"& svg:not([class*='text-'])\": {\n color: tokens.grayA11,\n },\n },\n itemIndicatorWrapper: {\n position: \"absolute\",\n right: tokens.spacingElement2,\n display: \"flex\",\n width: \"1rem\",\n height: \"1rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n itemIndicatorIcon: {\n width: \"1rem\",\n height: \"1rem\",\n color: tokens.grayA11,\n },\n label: {\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.gray11,\n },\n separator: {\n pointerEvents: \"none\",\n marginLeft: `calc(-1 * ${tokens.spacingElement1})`,\n marginRight: `calc(-1 * ${tokens.spacingElement1})`,\n marginTop: tokens.spacingElement1,\n marginBottom: tokens.spacingElement1,\n height: \"1px\",\n backgroundColor: tokens.graySoft,\n },\n scrollArrow: {\n display: \"flex\",\n cursor: \"default\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n scrollArrowUp: {\n paddingBottom: tokens.spacingElement1,\n },\n scrollArrowDown: {\n paddingTop: tokens.spacingElement1,\n },\n scrollArrowIcon: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n },\n scrollArrowDownIcon: {\n transform: \"rotate(180deg)\",\n },\n})\n\nexport type SelectProps = React.ComponentProps<typeof SelectPrimitive.Root>\n\nexport const Select: React.ForwardRefExoticComponent<\n SelectProps & React.RefAttributes<HTMLElement>\n> = React.forwardRef<HTMLElement, SelectProps>(function Select(props, _ref) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n})\n\nexport type SelectGroupProps = React.ComponentProps<\n typeof SelectPrimitive.Group\n>\n\nexport const SelectGroup = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Group>,\n SelectGroupProps\n>(function SelectGroup({ className, ...props }, ref) {\n return (\n <SelectPrimitive.Group\n ref={ref}\n data-slot=\"select-group\"\n {...{ [SLOT_ATTR]: \"select-group\" }}\n className={className}\n {...props}\n />\n )\n})\n\nexport type SelectValueProps = React.ComponentProps<\n typeof SelectPrimitive.Value\n>\n\nexport const SelectValue = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Value>,\n SelectValueProps\n>(function SelectValue({ className, ...props }, ref) {\n return (\n <SelectPrimitive.Value\n ref={ref}\n data-slot=\"select-value\"\n {...{ [SLOT_ATTR]: \"select-value\" }}\n className={className}\n {...props}\n />\n )\n})\n\nexport type SelectTriggerProps = React.ComponentProps<\n typeof SelectPrimitive.Trigger\n>\n\nexport const SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(function SelectTrigger({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n {...{ [SLOT_ATTR]: \"select-trigger\" }}\n className={mergeClasses(styles.trigger, className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n asChild\n data-slot=\"select-icon\"\n {...{ [SLOT_ATTR]: \"select-icon\" }}\n className={styles.triggerIconWrapper}\n >\n <ChevronDownIcon className={styles.triggerIcon} />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n})\n\nexport type SelectTriggerClearProps = React.ComponentProps<\"span\">\n\nexport const SelectTriggerClear = React.forwardRef<\n HTMLSpanElement,\n SelectTriggerClearProps\n>(function SelectTriggerClear({ className, onClick, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n role=\"button\"\n tabIndex={0}\n data-slot=\"select-trigger-clear\"\n {...{ [SLOT_ATTR]: \"select-trigger-clear\" }}\n className={mergeClasses(styles.triggerClear, className)}\n onPointerDown={(event) => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onClick={(event: React.MouseEvent<HTMLSpanElement>) => {\n event.preventDefault()\n event.stopPropagation()\n onClick?.(event)\n }}\n {...props}\n >\n <XIcon className={styles.triggerClearIcon} />\n </span>\n )\n})\n\nexport type SelectContentProps = React.ComponentProps<\n typeof SelectPrimitive.Content\n> & {\n container?: React.ComponentProps<typeof SelectPrimitive.Portal>[\"container\"]\n}\n\nexport const SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(function SelectContent(\n {\n className,\n children,\n position = \"popper\",\n align = \"center\",\n container,\n ...props\n },\n ref\n) {\n const styles = useStyles()\n // DENSITY-SPEC.md §4.4 — SelectContent is a portal root: stamp the explicit override ONLY when\n // one exists in the React tree, so an ambient shell default (which already reaches this portal\n // via ordinary DOM inheritance, since the portal container is still a descendant of `<html>`)\n // isn't masked by a stale/default value.\n const override = useDensity()\n // SPEC.md §2 rule 3 — the same portal asymmetry, for the appearance pair: re-stamp the\n // nearest explicit AppearanceBoundary's mode+surface, or neither attribute when there is\n // none, leaving live shell inheritance in place.\n const appearance = useAppearanceAttributes()\n\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Content\n ref={ref}\n data-slot=\"select-content\"\n {...{ [SLOT_ATTR]: \"select-content\" }}\n {...(override !== undefined ? { \"data-density\": override } : {})}\n {...appearance}\n position={position}\n align={align}\n className={mergeClasses(styles.popup, className)}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-slot=\"select-viewport\"\n {...{ [SLOT_ATTR]: \"select-viewport\" }}\n className={styles.viewport}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n})\n\nexport type SelectLabelProps = React.ComponentProps<\n typeof SelectPrimitive.Label\n>\n\nexport const SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n SelectLabelProps\n>(function SelectLabel({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.Label\n ref={ref}\n data-slot=\"select-label\"\n {...{ [SLOT_ATTR]: \"select-label\" }}\n className={mergeClasses(styles.label, className)}\n {...props}\n />\n )\n})\n\nexport type SelectItemProps = React.ComponentProps<typeof SelectPrimitive.Item>\n\nexport const SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n SelectItemProps\n>(function SelectItem({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.Item\n ref={ref}\n data-slot=\"select-item\"\n {...{ [SLOT_ATTR]: \"select-item\" }}\n className={mergeClasses(styles.item, className)}\n {...props}\n >\n <span className={styles.itemIndicatorWrapper}>\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className={styles.itemIndicatorIcon} />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n})\n\nexport type SelectSeparatorProps = React.ComponentProps<\n typeof SelectPrimitive.Separator\n>\n\nexport const SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n SelectSeparatorProps\n>(function SelectSeparator({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.Separator\n ref={ref}\n data-slot=\"select-separator\"\n {...{ [SLOT_ATTR]: \"select-separator\" }}\n className={mergeClasses(styles.separator, className)}\n {...props}\n />\n )\n})\n\nexport type SelectScrollUpButtonProps = React.ComponentProps<\n typeof SelectPrimitive.ScrollUpButton\n>\n\nexport const SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n SelectScrollUpButtonProps\n>(function SelectScrollUpButton({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n data-slot=\"select-scroll-up-button\"\n {...{ [SLOT_ATTR]: \"select-scroll-up-button\" }}\n className={mergeClasses(\n styles.scrollArrow,\n styles.scrollArrowUp,\n className\n )}\n {...props}\n >\n {children ?? <ChevronUpIcon className={styles.scrollArrowIcon} />}\n </SelectPrimitive.ScrollUpButton>\n )\n})\n\nexport type SelectScrollDownButtonProps = React.ComponentProps<\n typeof SelectPrimitive.ScrollDownButton\n>\n\nexport const SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n SelectScrollDownButtonProps\n>(function SelectScrollDownButton({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n data-slot=\"select-scroll-down-button\"\n {...{ [SLOT_ATTR]: \"select-scroll-down-button\" }}\n className={mergeClasses(\n styles.scrollArrow,\n styles.scrollArrowDown,\n className\n )}\n {...props}\n >\n {children ?? (\n <ChevronUpIcon\n className={mergeClasses(\n styles.scrollArrowIcon,\n styles.scrollArrowDownIcon\n )}\n />\n )}\n </SelectPrimitive.ScrollDownButton>\n )\n})\n"],"names":["XIcon","props","jsx","CheckIcon","ChevronDownIcon","ChevronUpIcon","useStyles","makeZenithStyles","shorthands","tokens.spacingElement2","tokens.radiusLg","tokens.textSm","tokens.leadingSm","tokens.focusRing","tokens.grayA8","SLOT_ATTR","tokens.grayA11","tokens.accentA11","tokens.radiusMd","tokens.accentSoft","tokens.body","tokens.selectContentPadding","tokens.selectContentGap","tokens.grayA12","tokens.radius2xl","tokens.spacingElement1","tokens.selectItemPaddingLeft","tokens.selectItemPaddingY","tokens.accentA3","tokens.textXs","tokens.leadingXs","tokens.fontWeightSemibold","tokens.gray11","tokens.graySoft","Select","React","_ref","SelectPrimitive.Root","SelectGroup","className","ref","SelectPrimitive.Group","SelectValue","SelectPrimitive.Value","SelectTrigger","children","styles","jsxs","SelectPrimitive.Trigger","mergeClasses","SelectPrimitive.Icon","SelectTriggerClear","onClick","event","SelectContent","position","align","container","override","useDensity","appearance","useAppearanceAttributes","SelectPrimitive.Portal","SelectPrimitive.Content","SelectScrollUpButton","SelectPrimitive.Viewport","SelectScrollDownButton","SelectLabel","SelectPrimitive.Label","SelectItem","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","SelectPrimitive.ItemText","SelectSeparator","SelectPrimitive.Separator","SelectPrimitive.ScrollUpButton","SelectPrimitive.ScrollDownButton"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\n\n/**\n * Spinner — v1's SVG spinner ported to a size-driven style object. v1 sizes this with Tailwind\n * `size-*` utilities and deprecated the `size` prop in favour of a `className` like `size-4`.\n * is the supported API and the `@deprecated` tag is dropped (CONVENTIONS rule 9).\n */\n\nexport type SpinnerSize = \"sm\" | \"base\" | \"lg\" | \"xl\" | \"2xl\"\n\nconst useStyles = makeZenithStyles({\n sm: {\n width: \"1rem\",\n height: \"1rem\",\n },\n base: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n },\n lg: {\n width: \"2.5rem\",\n height: \"2.5rem\",\n },\n xl: {\n width: \"4rem\",\n height: \"4rem\",\n },\n \"2xl\": {\n width: \"6rem\",\n height: \"6rem\",\n },\n spin: {\n transformOrigin: \"center\",\n animationName: {\n \"100%\": { transform: \"rotate(360deg)\" },\n },\n animationDuration: \"2s\",\n animationTimingFunction: \"linear\",\n animationIterationCount: \"infinite\",\n },\n dash: {\n animationName: {\n \"0%\": {\n strokeDasharray: \"0 150\",\n strokeDashoffset: 0,\n },\n \"47.5%\": {\n strokeDasharray: \"42 150\",\n strokeDashoffset: -16,\n },\n \"95%,100%\": {\n strokeDasharray: \"42 150\",\n strokeDashoffset: -59,\n },\n },\n animationDuration: \"1.5s\",\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n },\n})\n\nexport type SpinnerProps = React.ComponentProps<\"svg\"> & {\n size?: SpinnerSize\n}\n\nexport const Spinner = React.forwardRef<SVGSVGElement, SpinnerProps>(\n function Spinner({ size = \"base\", className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n role=\"status\"\n data-slot=\"spinner\"\n {...{ [SLOT_ATTR]: \"spinner\" }}\n className={mergeClasses(styles[size], className)}\n {...props}\n >\n <g className={styles.spin}>\n <circle cx=\"12\" cy=\"12\" r=\"9.5\" strokeWidth=\"3\" opacity=\"0.1\" />\n <circle\n className={styles.dash}\n cx=\"12\"\n cy=\"12\"\n r=\"9.5\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n </g>\n </svg>\n )\n }\n)\n"],"names":["useStyles","makeZenithStyles","Spinner","React","size","className","props","ref","styles","jsx","SLOT_ATTR","mergeClasses","jsxs"],"mappings":";;;;AAeA,MAAMA,IAAYC,EAAiB;AAAA,EACjC,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,OAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,eAAe;AAAA,MACb,QAAQ,EAAE,WAAW,iBAAA;AAAA,IAAiB;AAAA,IAExC,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAAA;AAAA,EAE3B,MAAM;AAAA,IACJ,eAAe;AAAA,MACb,MAAM;AAAA,QACJ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MAAA;AAAA,MAEpB,SAAS;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MAAA;AAAA,MAEpB,YAAY;AAAA,QACV,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MAAA;AAAA,IACpB;AAAA,IAEF,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAAA;AAE7B,CAAC,GAMYC,IAAUC,EAAM;AAAA,EAC3B,SAAiB,EAAE,MAAAC,IAAO,QAAQ,WAAAC,GAAW,GAAGC,EAAA,GAASC,GAAK;AAC5D,UAAMC,IAASR,EAAA;AAEf,WACE,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAF;AAAA,QACA,OAAM;AAAA,QACN,OAAM;AAAA,QACN,QAAO;AAAA,QACP,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,QAAO;AAAA,QACP,MAAK;AAAA,QACL,aAAU;AAAA,QACJ,CAACG,CAAS,GAAG;AAAA,QACnB,WAAWC,EAAaH,EAAOJ,CAAI,GAAGC,CAAS;AAAA,QAC9C,GAAGC;AAAA,QAEJ,UAAA,gBAAAM,EAAC,KAAA,EAAE,WAAWJ,EAAO,MACnB,UAAA;AAAA,UAAA,gBAAAC,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,OAAM,aAAY,KAAI,SAAQ,MAAA,CAAM;AAAA,UAC9D,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWD,EAAO;AAAA,cAClB,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACF,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,MAAK;AAAA,YAAA;AAAA,UAAA;AAAA,QACP,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
1
+ {"version":3,"file":"spinner.js","sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\n\n/**\n * Spinner — v1's SVG spinner ported to a size-driven style object.\n *\n * v1 sizes this with Tailwind `size-*` utilities and deprecated the `size` prop in favour of a\n * `className` like `size-4`. There is no Tailwind here, so that escape hatch does not exist:\n * `size` is the supported API and the `@deprecated` tag is dropped (CONVENTIONS rule 9).\n */\n\nexport type SpinnerSize = \"sm\" | \"base\" | \"lg\" | \"xl\" | \"2xl\"\n\nconst useStyles = makeZenithStyles({\n sm: {\n width: \"1rem\",\n height: \"1rem\",\n },\n base: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n },\n lg: {\n width: \"2.5rem\",\n height: \"2.5rem\",\n },\n xl: {\n width: \"4rem\",\n height: \"4rem\",\n },\n \"2xl\": {\n width: \"6rem\",\n height: \"6rem\",\n },\n spin: {\n transformOrigin: \"center\",\n animationName: {\n \"100%\": { transform: \"rotate(360deg)\" },\n },\n animationDuration: \"2s\",\n animationTimingFunction: \"linear\",\n animationIterationCount: \"infinite\",\n },\n dash: {\n animationName: {\n \"0%\": {\n strokeDasharray: \"0 150\",\n strokeDashoffset: 0,\n },\n \"47.5%\": {\n strokeDasharray: \"42 150\",\n strokeDashoffset: -16,\n },\n \"95%,100%\": {\n strokeDasharray: \"42 150\",\n strokeDashoffset: -59,\n },\n },\n animationDuration: \"1.5s\",\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n },\n})\n\nexport type SpinnerProps = React.ComponentProps<\"svg\"> & {\n size?: SpinnerSize\n}\n\nexport const Spinner = React.forwardRef<SVGSVGElement, SpinnerProps>(\n function Spinner({ size = \"base\", className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n role=\"status\"\n data-slot=\"spinner\"\n {...{ [SLOT_ATTR]: \"spinner\" }}\n className={mergeClasses(styles[size], className)}\n {...props}\n >\n <g className={styles.spin}>\n <circle cx=\"12\" cy=\"12\" r=\"9.5\" strokeWidth=\"3\" opacity=\"0.1\" />\n <circle\n className={styles.dash}\n cx=\"12\"\n cy=\"12\"\n r=\"9.5\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n </g>\n </svg>\n )\n }\n)\n"],"names":["useStyles","makeZenithStyles","Spinner","React","size","className","props","ref","styles","jsx","SLOT_ATTR","mergeClasses","jsxs"],"mappings":";;;;AAiBA,MAAMA,IAAYC,EAAiB;AAAA,EACjC,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,OAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,eAAe;AAAA,MACb,QAAQ,EAAE,WAAW,iBAAA;AAAA,IAAiB;AAAA,IAExC,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAAA;AAAA,EAE3B,MAAM;AAAA,IACJ,eAAe;AAAA,MACb,MAAM;AAAA,QACJ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MAAA;AAAA,MAEpB,SAAS;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MAAA;AAAA,MAEpB,YAAY;AAAA,QACV,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MAAA;AAAA,IACpB;AAAA,IAEF,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,EAAA;AAE7B,CAAC,GAMYC,IAAUC,EAAM;AAAA,EAC3B,SAAiB,EAAE,MAAAC,IAAO,QAAQ,WAAAC,GAAW,GAAGC,EAAA,GAASC,GAAK;AAC5D,UAAMC,IAASR,EAAA;AAEf,WACE,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAF;AAAA,QACA,OAAM;AAAA,QACN,OAAM;AAAA,QACN,QAAO;AAAA,QACP,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,QAAO;AAAA,QACP,MAAK;AAAA,QACL,aAAU;AAAA,QACJ,CAACG,CAAS,GAAG;AAAA,QACnB,WAAWC,EAAaH,EAAOJ,CAAI,GAAGC,CAAS;AAAA,QAC9C,GAAGC;AAAA,QAEJ,UAAA,gBAAAM,EAAC,KAAA,EAAE,WAAWJ,EAAO,MACnB,UAAA;AAAA,UAAA,gBAAAC,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,OAAM,aAAY,KAAI,SAAQ,MAAA,CAAM;AAAA,UAC9D,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWD,EAAO;AAAA,cAClB,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACF,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,MAAK;AAAA,YAAA;AAAA,UAAA;AAAA,QACP,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
@@ -1,10 +1,10 @@
1
- import { jsx as t, jsxs as f } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as k } from "react/jsx-runtime";
2
2
  import * as a from "react";
3
3
  import { Root as x, Thumb as y } from "../../vendor/.bun/@radix-ui_react-switch@1.2.6_2b23df507bdda662/vendor/@radix-ui/react-switch/dist/index.js";
4
4
  import { mergeClasses as g, SLOT_ATTR as n, shorthands as r } from "@epilot/zenith-runtime/v1";
5
5
  import { makeZenithStyles as b } from "../../styles/make-styles.js";
6
- import { errorA3 as C, semErrorSolid as v, errorA8 as u, grayA3 as S, semAccentSolid as T, grayA8 as m, semFocusRing as R, errorA11 as A, errorContrast as z, accentA11 as D, grayContrast as E } from "../../tokens/index.js";
7
- const I = a.forwardRef(
6
+ import { errorA3 as C, errorSolid as v, errorA8 as u, grayA3 as S, accentSolid as T, grayA8 as m, focusRing as R, errorA11 as z, errorContrast as A, accentA11 as D, grayContrast as I } from "../../tokens/index.js";
7
+ const V = a.forwardRef(
8
8
  function(i, e) {
9
9
  const o = w();
10
10
  return /* @__PURE__ */ t(
@@ -22,7 +22,7 @@ const I = a.forwardRef(
22
22
  }
23
23
  );
24
24
  }
25
- ), V = a.forwardRef(
25
+ ), E = a.forwardRef(
26
26
  function(i, e) {
27
27
  const o = w();
28
28
  return /* @__PURE__ */ t(
@@ -177,15 +177,15 @@ const I = a.forwardRef(
177
177
  }
178
178
  },
179
179
  default: {
180
- backgroundColor: E,
180
+ backgroundColor: I,
181
181
  color: m,
182
182
  "&[data-state='checked']": { color: D },
183
183
  "&[data-state='unchecked']": { color: m }
184
184
  },
185
185
  destructive: {
186
- backgroundColor: z,
186
+ backgroundColor: A,
187
187
  color: u,
188
- "&[data-state='checked']": { color: A },
188
+ "&[data-state='checked']": { color: z },
189
189
  "&[data-state='unchecked']": { color: u }
190
190
  },
191
191
  sm: {
@@ -215,12 +215,12 @@ const I = a.forwardRef(
215
215
  className: o,
216
216
  showThumbIcon: d = !1,
217
217
  ...s
218
- }, k) {
218
+ }, f) {
219
219
  const l = H(), h = _(), p = i === "primary" ? "default" : i;
220
220
  return /* @__PURE__ */ t(
221
221
  x,
222
222
  {
223
- ref: k,
223
+ ref: f,
224
224
  "data-slot": "switch",
225
225
  [n]: "switch",
226
226
  className: g(
@@ -230,7 +230,7 @@ const I = a.forwardRef(
230
230
  o
231
231
  ),
232
232
  ...s,
233
- children: /* @__PURE__ */ f(
233
+ children: /* @__PURE__ */ k(
234
234
  y,
235
235
  {
236
236
  "data-slot": "switch-thumb",
@@ -241,8 +241,8 @@ const I = a.forwardRef(
241
241
  h[e]
242
242
  ),
243
243
  children: [
244
- d && !s.disabled && /* @__PURE__ */ t(I, {}),
245
244
  d && !s.disabled && /* @__PURE__ */ t(V, {}),
245
+ d && !s.disabled && /* @__PURE__ */ t(E, {}),
246
246
  d && s.disabled && /* @__PURE__ */ t(N, {})
247
247
  ]
248
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sources":["../../../src/components/switch/switch.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\nconst ThumbIconChecked = React.forwardRef<SVGSVGElement>(\n function ThumbIconChecked(_props, ref) {\n const styles = useThumbIconStyles()\n\n return (\n <svg\n ref={ref}\n data-slot=\"switch-thumb-icon-checked\"\n {...{ [SLOT_ATTR]: \"switch-thumb-icon-checked\" }}\n role=\"presentation\"\n className={styles.checked}\n viewBox=\"0 0 1 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"1\" height=\"6\" fill=\"currentColor\" />\n </svg>\n )\n }\n)\n\nconst ThumbIconUnchecked = React.forwardRef<SVGSVGElement>(\n function ThumbIconUnchecked(_props, ref) {\n const styles = useThumbIconStyles()\n\n return (\n <svg\n ref={ref}\n data-slot=\"switch-thumb-icon-unchecked\"\n {...{ [SLOT_ATTR]: \"switch-thumb-icon-unchecked\" }}\n role=\"presentation\"\n className={styles.unchecked}\n viewBox=\"0 0 4 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"3\"\n height=\"5\"\n rx=\"1.5\"\n stroke=\"currentColor\"\n />\n </svg>\n )\n }\n)\n\nconst ThumbIconDisabled = React.forwardRef<SVGSVGElement>(\n function ThumbIconDisabled(_props, ref) {\n const styles = useThumbIconStyles()\n\n return (\n <svg\n ref={ref}\n data-slot=\"switch-thumb-icon-disabled\"\n {...{ [SLOT_ATTR]: \"switch-thumb-icon-disabled\" }}\n className={styles.disabled}\n viewBox=\"0 0 4 5\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 5V1.875H0.666667V1.25C0.666667 0.90625 0.797223 0.611979 1.05833 0.367188C1.31944 0.122396 1.63333 0 2 0C2.36667 0 2.68056 0.122396 2.94167 0.367188C3.20278 0.611979 3.33333 0.90625 3.33333 1.25V1.875H4V5H0ZM1.33333 1.875H2.66667V1.25C2.66667 1.07292 2.60278 0.924479 2.475 0.804687C2.34722 0.684896 2.18889 0.625 2 0.625C1.81111 0.625 1.65278 0.684896 1.525 0.804687C1.39722 0.924479 1.33333 1.07292 1.33333 1.25V1.875Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n }\n)\n\nconst useThumbIconStyles = makeZenithStyles({\n checked: {\n display: \"none\",\n position: \"absolute\",\n pointerEvents: \"none\",\n ...shorthands.inset(0),\n color: \"currentColor\",\n ...shorthands.margin(\"auto\"),\n },\n unchecked: {\n display: \"none\",\n position: \"absolute\",\n pointerEvents: \"none\",\n ...shorthands.inset(0),\n color: \"currentColor\",\n ...shorthands.margin(\"auto\"),\n },\n disabled: {\n display: \"inline-block\",\n position: \"absolute\",\n pointerEvents: \"none\",\n ...shorthands.inset(0),\n color: \"currentColor\",\n ...shorthands.margin(\"auto\"),\n },\n})\n\nconst useRootStyles = makeZenithStyles({\n root: {\n boxSizing: \"border-box\",\n display: \"inline-flex\",\n alignItems: \"center\",\n flexShrink: 0,\n cursor: \"pointer\",\n borderRadius: \"9999px\",\n ...shorthands.border(\"1px\", \"solid\", \"transparent\"),\n boxShadow: \"0 1px 2px 0 #0000000d\",\n transitionProperty: \"all\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n transitionDuration: \"150ms\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.semFocusRing,\n },\n \":disabled, &[data-disabled]\": {\n pointerEvents: \"none\",\n opacity: 0.5,\n },\n },\n default: {\n color: tokens.grayA8,\n \"&[data-state='checked']\": { backgroundColor: tokens.semAccentSolid },\n \"&[data-state='unchecked']\": { backgroundColor: tokens.grayA3 },\n },\n destructive: {\n color: tokens.errorA8,\n \"&[data-state='checked']\": { backgroundColor: tokens.semErrorSolid },\n \"&[data-state='unchecked']\": { backgroundColor: tokens.errorA3 },\n },\n sm: {\n width: \"1.625rem\",\n height: \"1rem\",\n \"& svg\": { width: \"0.25rem\", height: \"0.375rem\" },\n },\n base: {\n width: \"2.125rem\",\n height: \"1.25rem\",\n \"& svg\": { width: \"0.4375rem\", height: \"0.5rem\" },\n },\n lg: {\n width: \"2.625rem\",\n height: \"1.5rem\",\n \"& svg\": { width: \"0.5rem\", height: \"0.625rem\" },\n },\n})\n\nconst useThumbStyles = makeZenithStyles({\n thumb: {\n position: \"relative\",\n display: \"block\",\n pointerEvents: \"none\",\n borderRadius: \"9999px\",\n boxShadow: \"0 1px 2px 0 #0000000d\",\n transitionProperty: \"transform\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n transitionDuration: \"150ms\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n \"&[data-state='checked']\": {\n transform: \"translateX(calc(100% - 1px))\",\n },\n \"&[data-state='unchecked']\": {\n transform: \"translateX(1px)\",\n },\n \"&[data-state='checked'] [data-zenith-slot='switch-thumb-icon-checked']\": {\n display: \"inline-block\",\n },\n \"&[data-state='unchecked'] [data-zenith-slot='switch-thumb-icon-unchecked']\":\n {\n display: \"inline-block\",\n },\n },\n default: {\n backgroundColor: tokens.grayContrast,\n color: tokens.grayA8,\n \"&[data-state='checked']\": { color: tokens.accentA11 },\n \"&[data-state='unchecked']\": { color: tokens.grayA8 },\n },\n destructive: {\n backgroundColor: tokens.errorContrast,\n color: tokens.errorA8,\n \"&[data-state='checked']\": { color: tokens.errorA11 },\n \"&[data-state='unchecked']\": { color: tokens.errorA8 },\n },\n sm: {\n width: \"0.75rem\",\n height: \"0.75rem\",\n \"& svg[data-zenith-slot='switch-thumb-icon-disabled']\": {\n width: \"0.25rem\",\n },\n },\n base: {\n width: \"1rem\",\n height: \"1rem\",\n \"& svg[data-zenith-slot='switch-thumb-icon-disabled']\": {\n width: \"0.375rem\",\n },\n },\n lg: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n \"& svg[data-zenith-slot='switch-thumb-icon-disabled']\": {\n width: \"0.4375rem\",\n },\n },\n})\n\n/**\n * `primary` is a deprecated alias of `default`, carried because v1 has it and real consumers still\n * pass it — entity-sidepanel's SettingsControls does. v1's own comment marks it deprecated and its\n * styles are byte-identical to `default`, so it is mapped rather than duplicated.\n *\n * @remarks `primary` is deprecated; use `default`.\n */\nexport type SwitchVariant = \"default\" | \"destructive\" | \"primary\"\nexport type SwitchSize = \"sm\" | \"base\" | \"lg\"\n\nexport type SwitchProps = React.ComponentProps<typeof SwitchPrimitive.Root> & {\n /**\n * `default` or `destructive`. `primary` is a **deprecated alias of `default`** with byte-\n * identical styles, kept because v1 had it and consumers still pass it. Choosing it changes\n * nothing; use `default`.\n */\n variant?: SwitchVariant\n /** @default \"base\" */\n size?: SwitchSize\n showThumbIcon?: boolean\n}\n\nexport const Switch = React.forwardRef<\n React.ComponentRef<typeof SwitchPrimitive.Root>,\n SwitchProps\n>(function Switch(\n {\n variant = \"default\",\n size = \"base\",\n className,\n showThumbIcon = false,\n ...props\n },\n ref\n) {\n const rootStyles = useRootStyles()\n const thumbStyles = useThumbStyles()\n // See SwitchVariant: `primary` is v1's deprecated alias for `default`, same styles.\n const variantKey = variant === \"primary\" ? \"default\" : variant\n\n return (\n <SwitchPrimitive.Root\n ref={ref}\n data-slot=\"switch\"\n {...{ [SLOT_ATTR]: \"switch\" }}\n className={mergeClasses(\n rootStyles.root,\n rootStyles[variantKey],\n rootStyles[size],\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n {...{ [SLOT_ATTR]: \"switch-thumb\" }}\n className={mergeClasses(\n thumbStyles.thumb,\n thumbStyles[variantKey],\n thumbStyles[size]\n )}\n >\n {showThumbIcon && !props.disabled && <ThumbIconChecked />}\n {showThumbIcon && !props.disabled && <ThumbIconUnchecked />}\n {showThumbIcon && props.disabled && <ThumbIconDisabled />}\n </SwitchPrimitive.Thumb>\n </SwitchPrimitive.Root>\n )\n})\n"],"names":["ThumbIconChecked","React","_props","ref","styles","useThumbIconStyles","jsx","SLOT_ATTR","ThumbIconUnchecked","ThumbIconDisabled","makeZenithStyles","shorthands","useRootStyles","tokens.semFocusRing","tokens.grayA8","tokens.semAccentSolid","tokens.grayA3","tokens.errorA8","tokens.semErrorSolid","tokens.errorA3","useThumbStyles","tokens.grayContrast","tokens.accentA11","tokens.errorContrast","tokens.errorA11","Switch","variant","size","className","showThumbIcon","props","rootStyles","thumbStyles","variantKey","SwitchPrimitive.Root","mergeClasses","jsxs","SwitchPrimitive.Thumb"],"mappings":"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"}
1
+ {"version":3,"file":"switch.js","sources":["../../../src/components/switch/switch.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\nconst ThumbIconChecked = React.forwardRef<SVGSVGElement>(\n function ThumbIconChecked(_props, ref) {\n const styles = useThumbIconStyles()\n\n return (\n <svg\n ref={ref}\n data-slot=\"switch-thumb-icon-checked\"\n {...{ [SLOT_ATTR]: \"switch-thumb-icon-checked\" }}\n role=\"presentation\"\n className={styles.checked}\n viewBox=\"0 0 1 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"1\" height=\"6\" fill=\"currentColor\" />\n </svg>\n )\n }\n)\n\nconst ThumbIconUnchecked = React.forwardRef<SVGSVGElement>(\n function ThumbIconUnchecked(_props, ref) {\n const styles = useThumbIconStyles()\n\n return (\n <svg\n ref={ref}\n data-slot=\"switch-thumb-icon-unchecked\"\n {...{ [SLOT_ATTR]: \"switch-thumb-icon-unchecked\" }}\n role=\"presentation\"\n className={styles.unchecked}\n viewBox=\"0 0 4 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"3\"\n height=\"5\"\n rx=\"1.5\"\n stroke=\"currentColor\"\n />\n </svg>\n )\n }\n)\n\nconst ThumbIconDisabled = React.forwardRef<SVGSVGElement>(\n function ThumbIconDisabled(_props, ref) {\n const styles = useThumbIconStyles()\n\n return (\n <svg\n ref={ref}\n data-slot=\"switch-thumb-icon-disabled\"\n {...{ [SLOT_ATTR]: \"switch-thumb-icon-disabled\" }}\n className={styles.disabled}\n viewBox=\"0 0 4 5\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 5V1.875H0.666667V1.25C0.666667 0.90625 0.797223 0.611979 1.05833 0.367188C1.31944 0.122396 1.63333 0 2 0C2.36667 0 2.68056 0.122396 2.94167 0.367188C3.20278 0.611979 3.33333 0.90625 3.33333 1.25V1.875H4V5H0ZM1.33333 1.875H2.66667V1.25C2.66667 1.07292 2.60278 0.924479 2.475 0.804687C2.34722 0.684896 2.18889 0.625 2 0.625C1.81111 0.625 1.65278 0.684896 1.525 0.804687C1.39722 0.924479 1.33333 1.07292 1.33333 1.25V1.875Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n }\n)\n\nconst useThumbIconStyles = makeZenithStyles({\n checked: {\n display: \"none\",\n position: \"absolute\",\n pointerEvents: \"none\",\n ...shorthands.inset(0),\n color: \"currentColor\",\n ...shorthands.margin(\"auto\"),\n },\n unchecked: {\n display: \"none\",\n position: \"absolute\",\n pointerEvents: \"none\",\n ...shorthands.inset(0),\n color: \"currentColor\",\n ...shorthands.margin(\"auto\"),\n },\n disabled: {\n display: \"inline-block\",\n position: \"absolute\",\n pointerEvents: \"none\",\n ...shorthands.inset(0),\n color: \"currentColor\",\n ...shorthands.margin(\"auto\"),\n },\n})\n\nconst useRootStyles = makeZenithStyles({\n root: {\n boxSizing: \"border-box\",\n display: \"inline-flex\",\n alignItems: \"center\",\n flexShrink: 0,\n cursor: \"pointer\",\n borderRadius: \"9999px\",\n ...shorthands.border(\"1px\", \"solid\", \"transparent\"),\n boxShadow: \"0 1px 2px 0 #0000000d\",\n transitionProperty: \"all\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n transitionDuration: \"150ms\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.focusRing,\n },\n \":disabled, &[data-disabled]\": {\n pointerEvents: \"none\",\n opacity: 0.5,\n },\n },\n default: {\n color: tokens.grayA8,\n \"&[data-state='checked']\": { backgroundColor: tokens.accentSolid },\n \"&[data-state='unchecked']\": { backgroundColor: tokens.grayA3 },\n },\n destructive: {\n color: tokens.errorA8,\n \"&[data-state='checked']\": { backgroundColor: tokens.errorSolid },\n \"&[data-state='unchecked']\": { backgroundColor: tokens.errorA3 },\n },\n sm: {\n width: \"1.625rem\",\n height: \"1rem\",\n \"& svg\": { width: \"0.25rem\", height: \"0.375rem\" },\n },\n base: {\n width: \"2.125rem\",\n height: \"1.25rem\",\n \"& svg\": { width: \"0.4375rem\", height: \"0.5rem\" },\n },\n lg: {\n width: \"2.625rem\",\n height: \"1.5rem\",\n \"& svg\": { width: \"0.5rem\", height: \"0.625rem\" },\n },\n})\n\nconst useThumbStyles = makeZenithStyles({\n thumb: {\n position: \"relative\",\n display: \"block\",\n pointerEvents: \"none\",\n borderRadius: \"9999px\",\n boxShadow: \"0 1px 2px 0 #0000000d\",\n transitionProperty: \"transform\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n transitionDuration: \"150ms\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n \"&[data-state='checked']\": {\n transform: \"translateX(calc(100% - 1px))\",\n },\n \"&[data-state='unchecked']\": {\n transform: \"translateX(1px)\",\n },\n \"&[data-state='checked'] [data-zenith-slot='switch-thumb-icon-checked']\": {\n display: \"inline-block\",\n },\n \"&[data-state='unchecked'] [data-zenith-slot='switch-thumb-icon-unchecked']\":\n {\n display: \"inline-block\",\n },\n },\n default: {\n backgroundColor: tokens.grayContrast,\n color: tokens.grayA8,\n \"&[data-state='checked']\": { color: tokens.accentA11 },\n \"&[data-state='unchecked']\": { color: tokens.grayA8 },\n },\n destructive: {\n backgroundColor: tokens.errorContrast,\n color: tokens.errorA8,\n \"&[data-state='checked']\": { color: tokens.errorA11 },\n \"&[data-state='unchecked']\": { color: tokens.errorA8 },\n },\n sm: {\n width: \"0.75rem\",\n height: \"0.75rem\",\n \"& svg[data-zenith-slot='switch-thumb-icon-disabled']\": {\n width: \"0.25rem\",\n },\n },\n base: {\n width: \"1rem\",\n height: \"1rem\",\n \"& svg[data-zenith-slot='switch-thumb-icon-disabled']\": {\n width: \"0.375rem\",\n },\n },\n lg: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n \"& svg[data-zenith-slot='switch-thumb-icon-disabled']\": {\n width: \"0.4375rem\",\n },\n },\n})\n\n/**\n * `primary` is a deprecated alias of `default`, carried because v1 has it and real consumers still\n * pass it — entity-sidepanel's SettingsControls does. v1's own comment marks it deprecated and its\n * styles are byte-identical to `default`, so it is mapped rather than duplicated.\n *\n * @remarks `primary` is deprecated; use `default`.\n */\nexport type SwitchVariant = \"default\" | \"destructive\" | \"primary\"\nexport type SwitchSize = \"sm\" | \"base\" | \"lg\"\n\nexport type SwitchProps = React.ComponentProps<typeof SwitchPrimitive.Root> & {\n /**\n * `default` or `destructive`. `primary` is a **deprecated alias of `default`** with byte-\n * identical styles, kept because v1 had it and consumers still pass it. Choosing it changes\n * nothing; use `default`.\n */\n variant?: SwitchVariant\n /** @default \"base\" */\n size?: SwitchSize\n showThumbIcon?: boolean\n}\n\nexport const Switch = React.forwardRef<\n React.ComponentRef<typeof SwitchPrimitive.Root>,\n SwitchProps\n>(function Switch(\n {\n variant = \"default\",\n size = \"base\",\n className,\n showThumbIcon = false,\n ...props\n },\n ref\n) {\n const rootStyles = useRootStyles()\n const thumbStyles = useThumbStyles()\n // See SwitchVariant: `primary` is v1's deprecated alias for `default`, same styles.\n const variantKey = variant === \"primary\" ? \"default\" : variant\n\n return (\n <SwitchPrimitive.Root\n ref={ref}\n data-slot=\"switch\"\n {...{ [SLOT_ATTR]: \"switch\" }}\n className={mergeClasses(\n rootStyles.root,\n rootStyles[variantKey],\n rootStyles[size],\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n {...{ [SLOT_ATTR]: \"switch-thumb\" }}\n className={mergeClasses(\n thumbStyles.thumb,\n thumbStyles[variantKey],\n thumbStyles[size]\n )}\n >\n {showThumbIcon && !props.disabled && <ThumbIconChecked />}\n {showThumbIcon && !props.disabled && <ThumbIconUnchecked />}\n {showThumbIcon && props.disabled && <ThumbIconDisabled />}\n </SwitchPrimitive.Thumb>\n </SwitchPrimitive.Root>\n )\n})\n"],"names":["ThumbIconChecked","React","_props","ref","styles","useThumbIconStyles","jsx","SLOT_ATTR","ThumbIconUnchecked","ThumbIconDisabled","makeZenithStyles","shorthands","useRootStyles","tokens.focusRing","tokens.grayA8","tokens.accentSolid","tokens.grayA3","tokens.errorA8","tokens.errorSolid","tokens.errorA3","useThumbStyles","tokens.grayContrast","tokens.accentA11","tokens.errorContrast","tokens.errorA11","Switch","variant","size","className","showThumbIcon","props","rootStyles","thumbStyles","variantKey","SwitchPrimitive.Root","mergeClasses","jsxs","SwitchPrimitive.Thumb"],"mappings":"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"}
@@ -3,7 +3,7 @@ import * as U from "react";
3
3
  import { Root as X, Trigger as Z, Value as J, Icon as q, Portal as K, Content as Q, Viewport as Y, Group as ee, Label as te, Item as oe, ItemIndicator as ne, ItemText as re } from "../../vendor/.bun/@radix-ui_react-select@2.2.6_2b23df507bdda662/vendor/@radix-ui/react-select/dist/index.js";
4
4
  import { mergeClasses as ie, SLOT_ATTR as ae, shorthands as i } from "@epilot/zenith-runtime/v1";
5
5
  import { makeZenithStyles as se } from "../../styles/make-styles.js";
6
- import { accentA3 as z, leadingSm as m, textSm as u, grayA11 as k, fontWeightSemibold as ce, leadingXs as le, textXs as ge, semBody as de, accent8 as pe, grayA4 as x, grayA3 as g, spacingElement1 as he, spacingGroup1 as R, accent11 as C, trackingNormal as me, accentA8 as ue, spacingElement2 as ve, radiusMd as fe, grayA6 as we, radiusLg as W, spacingElement3 as ke } from "../../tokens/index.js";
6
+ import { accentA3 as z, leadingSm as m, textSm as u, grayA11 as k, fontWeightSemibold as ce, leadingXs as le, textXs as ge, body as de, accent8 as pe, grayA4 as x, grayA3 as g, spacingElement1 as he, spacingGroup1 as R, accent11 as C, trackingNormal as me, accentA8 as ue, spacingElement2 as ve, radiusMd as fe, grayA6 as we, radiusLg as W, spacingElement3 as ke } from "../../tokens/index.js";
7
7
  import { useAppearanceAttributes as xe } from "../appearance-boundary/appearance-boundary.js";
8
8
  import { useDensity as Ce } from "../density-provider/density-provider.js";
9
9
  import { calculatePagination as Pe, getPageNumbers as ye, clampPage as Ie } from "../../lib/pagination.js";
@@ -1 +1 @@
1
- {"version":3,"file":"table-pagination.js","sources":["../../../src/components/table/table-pagination.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { SVGProps, ComponentProps } from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { useAppearanceAttributes } from \"../appearance-boundary/appearance-boundary\"\nimport { useDensity } from \"../density-provider/density-provider\"\nimport {\n calculatePagination,\n clampPage,\n getPageNumbers,\n} from \"../../lib/pagination\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../tooltip/tooltip\"\nimport { Button } from \"../button/button\"\n\n// Navigation icons\nconst IconFirstPage = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M6 6v12\" />\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n)\n\nconst IconChevronLeft = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n)\n\nconst IconChevronRight = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n)\n\nconst IconLastPage = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m9 18 6-6-6-6\" />\n <path d=\"M18 6v12\" />\n </svg>\n)\n\n// Select icons\nconst ChevronDownIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n)\n\nconst CheckIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n)\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100]\n\nconst useStyles = makeZenithStyles({\n root: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingGroup1,\n ...shorthands.paddingBlock(tokens.spacingElement3),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n },\n left: {\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacingElement2,\n },\n navButton: {\n backgroundColor: tokens.grayA3,\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n \":disabled\": {\n backgroundColor: tokens.grayA3,\n color: tokens.accentA8,\n pointerEvents: \"none\",\n },\n },\n pageButtonActive: {\n pointerEvents: \"none\",\n },\n pageButtonInactive: {\n backgroundColor: \"transparent\",\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA3,\n },\n \":active\": {\n backgroundColor: tokens.grayA4,\n },\n },\n ellipsisButton: {\n letterSpacing: tokens.trackingNormal,\n backgroundColor: \"transparent\",\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA3,\n },\n },\n right: {\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacingGroup1,\n paddingRight: \"0.125rem\",\n },\n range: {\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA11,\n fontVariantNumeric: \"tabular-nums\",\n },\n selectTrigger: {\n display: \"flex\",\n height: \"2rem\",\n width: \"auto\",\n minWidth: \"4rem\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingElement1,\n ...shorthands.borderRadius(tokens.radiusLg),\n backgroundColor: tokens.grayA3,\n ...shorthands.paddingInline(\"0.75rem\"),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n cursor: \"pointer\",\n ...shorthands.borderWidth(0),\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n \":focus\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineColor: tokens.accent8,\n outlineOffset: \"2px\",\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n },\n selectIcon: {\n display: \"flex\",\n alignItems: \"center\",\n color: tokens.grayA11,\n },\n selectContent: {\n position: \"relative\",\n zIndex: 50,\n ...shorthands.overflow(\"hidden\"),\n ...shorthands.borderRadius(tokens.radiusLg),\n ...shorthands.border(\"1px\", \"solid\", tokens.grayA6),\n backgroundColor: tokens.semBody,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n },\n selectViewport: {\n ...shorthands.padding(\"0.25rem\"),\n },\n selectLabel: {\n ...shorthands.padding(\"0.375rem\", \"0.5rem\"),\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.grayA11,\n },\n selectItem: {\n position: \"relative\",\n display: \"flex\",\n cursor: \"pointer\",\n userSelect: \"none\",\n alignItems: \"center\",\n ...shorthands.borderRadius(tokens.radiusMd),\n ...shorthands.padding(\"0.375rem\", \"0.5rem\", \"0.375rem\", \"2rem\"),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n \":focus\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-state='checked']\": {\n backgroundColor: tokens.accentA3,\n },\n },\n selectItemIndicator: {\n position: \"absolute\",\n left: \"0.5rem\",\n display: \"flex\",\n width: \"1rem\",\n height: \"1rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n})\n\nconst DEFAULT_PAGINATION_LABELS = {\n navigation: \"Pagination\",\n firstPage: \"First page\",\n previousPage: \"Previous page\",\n nextPage: \"Next page\",\n lastPage: \"Last page\",\n goToPage: (page: number) => `Page ${page}`,\n jumpToPage: (page: number) => `Jump to page ${page}`,\n pageSizeSelector: (size: number) => `Rows per page: ${size}`,\n} as const satisfies TablePaginationLabels\n\nexport type TablePaginationLabels = {\n /** Label for the pagination navigation region. */\n navigation?: string\n /** Label for first page button. */\n firstPage?: string\n /** Label for previous page button. */\n previousPage?: string\n /** Label for next page button. */\n nextPage?: string\n /** Label for last page button. */\n lastPage?: string\n /** Label generator for page number buttons. Receives 1-indexed page number. */\n goToPage?: (page: number) => string\n /** Label generator for ellipsis jump buttons. Receives target page number. */\n jumpToPage?: (page: number) => string\n /** Label generator for page size selector. Receives current page size. */\n pageSizeSelector?: (pageSize: number) => string\n /** Label for page size dropdown header. */\n resultsPerPage?: string\n /** Label generator for the range display. Receives start, end, and total. */\n rangeDisplay?: (start: number, end: number, total: number) => string\n}\n\nexport type TablePaginationProps = Omit<ComponentProps<\"div\">, \"onChange\"> & {\n /** Current page number (1-indexed) */\n page: number\n /** Total number of items across all pages */\n totalItems: number\n /** Current page size (items per page) */\n pageSize: number\n /** Callback fired when the page changes */\n onPageChange: (page: number) => void\n /** Callback fired when the page size changes */\n onPageSizeChange: (pageSize: number) => void\n /** Available page size options for the dropdown */\n pageSizeOptions?: number[]\n /** Number of sibling pages to show on each side of current page */\n siblingCount?: number\n /** Whether the pagination controls are disabled */\n disabled?: boolean\n /** Labels for i18n. All labels are optional for backwards compatibility but recommended. */\n labels?: TablePaginationLabels\n}\n\nexport const TablePagination = React.forwardRef<\n HTMLDivElement,\n TablePaginationProps\n>(function TablePagination(\n {\n page,\n totalItems,\n pageSize,\n onPageChange,\n onPageSizeChange,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n siblingCount = 2,\n disabled = false,\n labels: labelsProp,\n className,\n ...props\n },\n ref\n) {\n /**\n * Accessible names for the controls. Every button here is icon-only, so\n * without a name it reaches assistive technology as an unlabelled button --\n * which is what `actions.mdx` forbids, and what this component shipped\n * whenever a caller omitted `labels`. The caller's values still win; these\n * only fill the gaps, so a localised app overrides them exactly as before.\n */\n const labels = { ...DEFAULT_PAGINATION_LABELS, ...labelsProp }\n const styles = useStyles()\n // Closes the previously deferred inline Select portal — stamp\n // an explicit override only when one exists in the React tree (Table/DataTable's own explicit\n // density, via DensityContextBoundary), never a fabricated default; an omitted override still\n // inherits live shell density through ordinary DOM/CSS since the portal container is a\n // descendant of <html>. Same pattern as select.tsx's SelectContent.\n const densityOverride = useDensity()\n // SPEC.md §2 rule 3 — the same portal asymmetry, for the appearance pair: re-stamp the\n // nearest explicit AppearanceBoundary's mode+surface, or neither attribute when there is\n // none, leaving live shell inheritance in place.\n const appearance = useAppearanceAttributes()\n const { totalPages, start, end, isFirstPage, isLastPage } =\n calculatePagination({\n page,\n pageSize,\n totalItems,\n })\n\n const safePage = clampPage(page, totalPages)\n const pageItems = getPageNumbers(safePage, totalPages, siblingCount)\n\n const handlePageSizeChange = (value: string) => {\n const newSize = parseInt(value, 10)\n if (!isNaN(newSize)) {\n onPageSizeChange(newSize)\n }\n }\n\n // Don't render if no items\n if (totalItems === 0) {\n return null\n }\n\n return (\n <TooltipProvider>\n <div\n ref={ref}\n data-slot=\"table-pagination\"\n {...{ [SLOT_ATTR]: \"table-pagination\" }}\n data-fs-element=\"TablePagination\"\n role=\"navigation\"\n aria-label={labels?.navigation}\n className={mergeClasses(styles.root, className)}\n {...props}\n >\n {/* LEFT SIDE: Navigation and page buttons */}\n <div className={styles.left}>\n {/* First page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isFirstPage}\n onClick={() => onPageChange(1)}\n aria-label={labels?.firstPage}\n className={styles.navButton}\n >\n <IconFirstPage />\n </Button>\n\n {/* Previous page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isFirstPage}\n onClick={() => onPageChange(safePage - 1)}\n aria-label={labels?.previousPage}\n className={styles.navButton}\n >\n <IconChevronLeft />\n </Button>\n\n {/* Page number buttons */}\n {pageItems.map((item, index) => {\n const key =\n item.type === \"ellipsis\"\n ? `ellipsis-${index}-${item.targetPage}`\n : `page-${item.page}`\n\n if (item.type === \"ellipsis\") {\n return (\n <Tooltip key={key}>\n <TooltipTrigger asChild>\n <Button\n variant=\"tertiary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled}\n onClick={() => onPageChange(item.targetPage)}\n aria-label={labels?.jumpToPage?.(item.targetPage)}\n className={styles.ellipsisButton}\n >\n ...\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {labels?.jumpToPage?.(item.targetPage)}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n const isCurrentPage = item.page === safePage\n\n return (\n <Button\n key={key}\n variant={isCurrentPage ? \"secondary\" : \"tertiary\"}\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled}\n onClick={() => onPageChange(item.page)}\n aria-label={labels?.goToPage?.(item.page)}\n aria-current={isCurrentPage ? \"page\" : undefined}\n className={\n isCurrentPage\n ? styles.pageButtonActive\n : styles.pageButtonInactive\n }\n >\n {item.page}\n </Button>\n )\n })}\n\n {/* Next page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isLastPage}\n onClick={() => onPageChange(safePage + 1)}\n aria-label={labels?.nextPage}\n className={styles.navButton}\n >\n <IconChevronRight />\n </Button>\n\n {/* Last page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isLastPage}\n onClick={() => onPageChange(totalPages)}\n aria-label={labels?.lastPage}\n className={styles.navButton}\n >\n <IconLastPage />\n </Button>\n </div>\n\n {/* RIGHT SIDE: Range display and page size selector */}\n <div className={styles.right}>\n {/* Range display */}\n <span\n data-slot=\"table-pagination-range\"\n className={styles.range}\n aria-live=\"polite\"\n >\n {labels?.rangeDisplay\n ? labels.rangeDisplay(start, end, totalItems)\n : `${start}-${end} / ${totalItems}`}\n </span>\n\n {/* Page size selector */}\n <SelectPrimitive.Root\n value={String(pageSize)}\n onValueChange={handlePageSizeChange}\n disabled={disabled}\n >\n <SelectPrimitive.Trigger\n className={styles.selectTrigger}\n aria-label={labels?.pageSizeSelector?.(pageSize)}\n >\n <SelectPrimitive.Value />\n <SelectPrimitive.Icon className={styles.selectIcon}>\n <ChevronDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={styles.selectContent}\n {...(densityOverride !== undefined\n ? { \"data-density\": densityOverride }\n : {})}\n {...appearance}\n position=\"popper\"\n sideOffset={4}\n >\n <SelectPrimitive.Viewport className={styles.selectViewport}>\n <SelectPrimitive.Group>\n {labels?.resultsPerPage && (\n <SelectPrimitive.Label className={styles.selectLabel}>\n {labels.resultsPerPage}\n </SelectPrimitive.Label>\n )}\n {pageSizeOptions.map((option) => (\n <SelectPrimitive.Item\n key={option}\n value={String(option)}\n className={styles.selectItem}\n >\n <span className={styles.selectItemIndicator}>\n <SelectPrimitive.ItemIndicator>\n <CheckIcon style={{ width: 16, height: 16 }} />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>\n {option}\n </SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Group>\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n </div>\n </div>\n </TooltipProvider>\n )\n})\n"],"names":["IconFirstPage","props","jsxs","jsx","IconChevronLeft","IconChevronRight","IconLastPage","ChevronDownIcon","CheckIcon","DEFAULT_PAGE_SIZE_OPTIONS","useStyles","makeZenithStyles","tokens.spacingGroup1","shorthands","tokens.spacingElement3","tokens.textSm","tokens.leadingSm","tokens.spacingElement2","tokens.grayA3","tokens.accent11","tokens.grayA4","tokens.accentA8","tokens.trackingNormal","tokens.grayA11","tokens.spacingElement1","tokens.radiusLg","tokens.accent8","tokens.grayA6","tokens.semBody","tokens.textXs","tokens.leadingXs","tokens.fontWeightSemibold","tokens.radiusMd","tokens.accentA3","DEFAULT_PAGINATION_LABELS","page","size","TablePagination","React","totalItems","pageSize","onPageChange","onPageSizeChange","pageSizeOptions","siblingCount","disabled","labelsProp","className","ref","labels","styles","densityOverride","useDensity","appearance","useAppearanceAttributes","totalPages","start","end","isFirstPage","isLastPage","calculatePagination","safePage","clampPage","pageItems","getPageNumbers","handlePageSizeChange","value","newSize","TooltipProvider","SLOT_ATTR","mergeClasses","Button","item","index","key","Tooltip","TooltipTrigger","_a","TooltipContent","_b","isCurrentPage","_c","SelectPrimitive.Root","SelectPrimitive.Trigger","SelectPrimitive.Value","SelectPrimitive.Icon","SelectPrimitive.Portal","SelectPrimitive.Content","SelectPrimitive.Viewport","SelectPrimitive.Group","SelectPrimitive.Label","option","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","SelectPrimitive.ItemText"],"mappings":"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"}
1
+ {"version":3,"file":"table-pagination.js","sources":["../../../src/components/table/table-pagination.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { SVGProps, ComponentProps } from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { useAppearanceAttributes } from \"../appearance-boundary/appearance-boundary\"\nimport { useDensity } from \"../density-provider/density-provider\"\nimport {\n calculatePagination,\n clampPage,\n getPageNumbers,\n} from \"../../lib/pagination\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../tooltip/tooltip\"\nimport { Button } from \"../button/button\"\n\n// Navigation icons\nconst IconFirstPage = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M6 6v12\" />\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n)\n\nconst IconChevronLeft = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n)\n\nconst IconChevronRight = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n)\n\nconst IconLastPage = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m9 18 6-6-6-6\" />\n <path d=\"M18 6v12\" />\n </svg>\n)\n\n// Select icons\nconst ChevronDownIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n)\n\nconst CheckIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n)\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100]\n\nconst useStyles = makeZenithStyles({\n root: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingGroup1,\n ...shorthands.paddingBlock(tokens.spacingElement3),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n },\n left: {\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacingElement2,\n },\n navButton: {\n backgroundColor: tokens.grayA3,\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n \":disabled\": {\n backgroundColor: tokens.grayA3,\n color: tokens.accentA8,\n pointerEvents: \"none\",\n },\n },\n pageButtonActive: {\n pointerEvents: \"none\",\n },\n pageButtonInactive: {\n backgroundColor: \"transparent\",\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA3,\n },\n \":active\": {\n backgroundColor: tokens.grayA4,\n },\n },\n ellipsisButton: {\n letterSpacing: tokens.trackingNormal,\n backgroundColor: \"transparent\",\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA3,\n },\n },\n right: {\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacingGroup1,\n paddingRight: \"0.125rem\",\n },\n range: {\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA11,\n fontVariantNumeric: \"tabular-nums\",\n },\n selectTrigger: {\n display: \"flex\",\n height: \"2rem\",\n width: \"auto\",\n minWidth: \"4rem\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingElement1,\n ...shorthands.borderRadius(tokens.radiusLg),\n backgroundColor: tokens.grayA3,\n ...shorthands.paddingInline(\"0.75rem\"),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n cursor: \"pointer\",\n ...shorthands.borderWidth(0),\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n \":focus\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineColor: tokens.accent8,\n outlineOffset: \"2px\",\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n },\n selectIcon: {\n display: \"flex\",\n alignItems: \"center\",\n color: tokens.grayA11,\n },\n selectContent: {\n position: \"relative\",\n zIndex: 50,\n ...shorthands.overflow(\"hidden\"),\n ...shorthands.borderRadius(tokens.radiusLg),\n ...shorthands.border(\"1px\", \"solid\", tokens.grayA6),\n backgroundColor: tokens.body,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n },\n selectViewport: {\n ...shorthands.padding(\"0.25rem\"),\n },\n selectLabel: {\n ...shorthands.padding(\"0.375rem\", \"0.5rem\"),\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.grayA11,\n },\n selectItem: {\n position: \"relative\",\n display: \"flex\",\n cursor: \"pointer\",\n userSelect: \"none\",\n alignItems: \"center\",\n ...shorthands.borderRadius(tokens.radiusMd),\n ...shorthands.padding(\"0.375rem\", \"0.5rem\", \"0.375rem\", \"2rem\"),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n \":focus\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-state='checked']\": {\n backgroundColor: tokens.accentA3,\n },\n },\n selectItemIndicator: {\n position: \"absolute\",\n left: \"0.5rem\",\n display: \"flex\",\n width: \"1rem\",\n height: \"1rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n})\n\nconst DEFAULT_PAGINATION_LABELS = {\n navigation: \"Pagination\",\n firstPage: \"First page\",\n previousPage: \"Previous page\",\n nextPage: \"Next page\",\n lastPage: \"Last page\",\n goToPage: (page: number) => `Page ${page}`,\n jumpToPage: (page: number) => `Jump to page ${page}`,\n pageSizeSelector: (size: number) => `Rows per page: ${size}`,\n} as const satisfies TablePaginationLabels\n\nexport type TablePaginationLabels = {\n /** Label for the pagination navigation region. */\n navigation?: string\n /** Label for first page button. */\n firstPage?: string\n /** Label for previous page button. */\n previousPage?: string\n /** Label for next page button. */\n nextPage?: string\n /** Label for last page button. */\n lastPage?: string\n /** Label generator for page number buttons. Receives 1-indexed page number. */\n goToPage?: (page: number) => string\n /** Label generator for ellipsis jump buttons. Receives target page number. */\n jumpToPage?: (page: number) => string\n /** Label generator for page size selector. Receives current page size. */\n pageSizeSelector?: (pageSize: number) => string\n /** Label for page size dropdown header. */\n resultsPerPage?: string\n /** Label generator for the range display. Receives start, end, and total. */\n rangeDisplay?: (start: number, end: number, total: number) => string\n}\n\nexport type TablePaginationProps = Omit<ComponentProps<\"div\">, \"onChange\"> & {\n /** Current page number (1-indexed) */\n page: number\n /** Total number of items across all pages */\n totalItems: number\n /** Current page size (items per page) */\n pageSize: number\n /** Callback fired when the page changes */\n onPageChange: (page: number) => void\n /** Callback fired when the page size changes */\n onPageSizeChange: (pageSize: number) => void\n /** Available page size options for the dropdown */\n pageSizeOptions?: number[]\n /** Number of sibling pages to show on each side of current page */\n siblingCount?: number\n /** Whether the pagination controls are disabled */\n disabled?: boolean\n /** Labels for i18n. All labels are optional for backwards compatibility but recommended. */\n labels?: TablePaginationLabels\n}\n\nexport const TablePagination = React.forwardRef<\n HTMLDivElement,\n TablePaginationProps\n>(function TablePagination(\n {\n page,\n totalItems,\n pageSize,\n onPageChange,\n onPageSizeChange,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n siblingCount = 2,\n disabled = false,\n labels: labelsProp,\n className,\n ...props\n },\n ref\n) {\n /**\n * Accessible names for the controls. Every button here is icon-only, so\n * without a name it reaches assistive technology as an unlabelled button --\n * which is what `actions.mdx` forbids, and what this component shipped\n * whenever a caller omitted `labels`. The caller's values still win; these\n * only fill the gaps, so a localised app overrides them exactly as before.\n */\n const labels = { ...DEFAULT_PAGINATION_LABELS, ...labelsProp }\n const styles = useStyles()\n // Closes the previously deferred inline Select portal — stamp\n // an explicit override only when one exists in the React tree (Table/DataTable's own explicit\n // density, via DensityContextBoundary), never a fabricated default; an omitted override still\n // inherits live shell density through ordinary DOM/CSS since the portal container is a\n // descendant of <html>. Same pattern as select.tsx's SelectContent.\n const densityOverride = useDensity()\n // SPEC.md §2 rule 3 — the same portal asymmetry, for the appearance pair: re-stamp the\n // nearest explicit AppearanceBoundary's mode+surface, or neither attribute when there is\n // none, leaving live shell inheritance in place.\n const appearance = useAppearanceAttributes()\n const { totalPages, start, end, isFirstPage, isLastPage } =\n calculatePagination({\n page,\n pageSize,\n totalItems,\n })\n\n const safePage = clampPage(page, totalPages)\n const pageItems = getPageNumbers(safePage, totalPages, siblingCount)\n\n const handlePageSizeChange = (value: string) => {\n const newSize = parseInt(value, 10)\n if (!isNaN(newSize)) {\n onPageSizeChange(newSize)\n }\n }\n\n // Don't render if no items\n if (totalItems === 0) {\n return null\n }\n\n return (\n <TooltipProvider>\n <div\n ref={ref}\n data-slot=\"table-pagination\"\n {...{ [SLOT_ATTR]: \"table-pagination\" }}\n data-fs-element=\"TablePagination\"\n role=\"navigation\"\n aria-label={labels?.navigation}\n className={mergeClasses(styles.root, className)}\n {...props}\n >\n {/* LEFT SIDE: Navigation and page buttons */}\n <div className={styles.left}>\n {/* First page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isFirstPage}\n onClick={() => onPageChange(1)}\n aria-label={labels?.firstPage}\n className={styles.navButton}\n >\n <IconFirstPage />\n </Button>\n\n {/* Previous page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isFirstPage}\n onClick={() => onPageChange(safePage - 1)}\n aria-label={labels?.previousPage}\n className={styles.navButton}\n >\n <IconChevronLeft />\n </Button>\n\n {/* Page number buttons */}\n {pageItems.map((item, index) => {\n const key =\n item.type === \"ellipsis\"\n ? `ellipsis-${index}-${item.targetPage}`\n : `page-${item.page}`\n\n if (item.type === \"ellipsis\") {\n return (\n <Tooltip key={key}>\n <TooltipTrigger asChild>\n <Button\n variant=\"tertiary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled}\n onClick={() => onPageChange(item.targetPage)}\n aria-label={labels?.jumpToPage?.(item.targetPage)}\n className={styles.ellipsisButton}\n >\n ...\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {labels?.jumpToPage?.(item.targetPage)}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n const isCurrentPage = item.page === safePage\n\n return (\n <Button\n key={key}\n variant={isCurrentPage ? \"secondary\" : \"tertiary\"}\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled}\n onClick={() => onPageChange(item.page)}\n aria-label={labels?.goToPage?.(item.page)}\n aria-current={isCurrentPage ? \"page\" : undefined}\n className={\n isCurrentPage\n ? styles.pageButtonActive\n : styles.pageButtonInactive\n }\n >\n {item.page}\n </Button>\n )\n })}\n\n {/* Next page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isLastPage}\n onClick={() => onPageChange(safePage + 1)}\n aria-label={labels?.nextPage}\n className={styles.navButton}\n >\n <IconChevronRight />\n </Button>\n\n {/* Last page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isLastPage}\n onClick={() => onPageChange(totalPages)}\n aria-label={labels?.lastPage}\n className={styles.navButton}\n >\n <IconLastPage />\n </Button>\n </div>\n\n {/* RIGHT SIDE: Range display and page size selector */}\n <div className={styles.right}>\n {/* Range display */}\n <span\n data-slot=\"table-pagination-range\"\n className={styles.range}\n aria-live=\"polite\"\n >\n {labels?.rangeDisplay\n ? labels.rangeDisplay(start, end, totalItems)\n : `${start}-${end} / ${totalItems}`}\n </span>\n\n {/* Page size selector */}\n <SelectPrimitive.Root\n value={String(pageSize)}\n onValueChange={handlePageSizeChange}\n disabled={disabled}\n >\n <SelectPrimitive.Trigger\n className={styles.selectTrigger}\n aria-label={labels?.pageSizeSelector?.(pageSize)}\n >\n <SelectPrimitive.Value />\n <SelectPrimitive.Icon className={styles.selectIcon}>\n <ChevronDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={styles.selectContent}\n {...(densityOverride !== undefined\n ? { \"data-density\": densityOverride }\n : {})}\n {...appearance}\n position=\"popper\"\n sideOffset={4}\n >\n <SelectPrimitive.Viewport className={styles.selectViewport}>\n <SelectPrimitive.Group>\n {labels?.resultsPerPage && (\n <SelectPrimitive.Label className={styles.selectLabel}>\n {labels.resultsPerPage}\n </SelectPrimitive.Label>\n )}\n {pageSizeOptions.map((option) => (\n <SelectPrimitive.Item\n key={option}\n value={String(option)}\n className={styles.selectItem}\n >\n <span className={styles.selectItemIndicator}>\n <SelectPrimitive.ItemIndicator>\n <CheckIcon style={{ width: 16, height: 16 }} />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>\n {option}\n </SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Group>\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n </div>\n </div>\n </TooltipProvider>\n )\n})\n"],"names":["IconFirstPage","props","jsxs","jsx","IconChevronLeft","IconChevronRight","IconLastPage","ChevronDownIcon","CheckIcon","DEFAULT_PAGE_SIZE_OPTIONS","useStyles","makeZenithStyles","tokens.spacingGroup1","shorthands","tokens.spacingElement3","tokens.textSm","tokens.leadingSm","tokens.spacingElement2","tokens.grayA3","tokens.accent11","tokens.grayA4","tokens.accentA8","tokens.trackingNormal","tokens.grayA11","tokens.spacingElement1","tokens.radiusLg","tokens.accent8","tokens.grayA6","tokens.body","tokens.textXs","tokens.leadingXs","tokens.fontWeightSemibold","tokens.radiusMd","tokens.accentA3","DEFAULT_PAGINATION_LABELS","page","size","TablePagination","React","totalItems","pageSize","onPageChange","onPageSizeChange","pageSizeOptions","siblingCount","disabled","labelsProp","className","ref","labels","styles","densityOverride","useDensity","appearance","useAppearanceAttributes","totalPages","start","end","isFirstPage","isLastPage","calculatePagination","safePage","clampPage","pageItems","getPageNumbers","handlePageSizeChange","value","newSize","TooltipProvider","SLOT_ATTR","mergeClasses","Button","item","index","key","Tooltip","TooltipTrigger","_a","TooltipContent","_b","isCurrentPage","_c","SelectPrimitive.Root","SelectPrimitive.Trigger","SelectPrimitive.Value","SelectPrimitive.Icon","SelectPrimitive.Portal","SelectPrimitive.Content","SelectPrimitive.Viewport","SelectPrimitive.Group","SelectPrimitive.Label","option","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","SelectPrimitive.ItemText"],"mappings":"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"}