@epilot/volt-ui-experimental-griffel 0.2.1 → 0.2.3

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 (63) hide show
  1. package/AGENTS.md +153 -0
  2. package/AUTHORING.md +292 -0
  3. package/README.md +85 -7
  4. package/dist/components/alert-dialog/alert-dialog.js +18 -18
  5. package/dist/components/avatar/avatar.js +18 -19
  6. package/dist/components/avatar/avatar.js.map +1 -1
  7. package/dist/components/badge/badge.js +13 -13
  8. package/dist/components/badge/badge.js.map +1 -1
  9. package/dist/components/breadcrumb/breadcrumb.js +6 -6
  10. package/dist/components/button/button.js +20 -20
  11. package/dist/components/button-group/button-group.js +6 -6
  12. package/dist/components/callout/callout.js +6 -6
  13. package/dist/components/card/card.js +8 -8
  14. package/dist/components/collapsible-sidebar/collapsible-sidebar.js +4 -4
  15. package/dist/components/command/command.js +15 -15
  16. package/dist/components/data-table/data-table-column-header.js +5 -5
  17. package/dist/components/data-table/data-table-error.js +13 -13
  18. package/dist/components/data-table/data-table-loading.js +4 -4
  19. package/dist/components/date-range-picker/date-range-picker.js +8 -8
  20. package/dist/components/date-time-picker/calendar.js +15 -15
  21. package/dist/components/date-time-picker/date-time-picker-panel.js +73 -67
  22. package/dist/components/date-time-picker/date-time-picker-panel.js.map +1 -1
  23. package/dist/components/date-time-picker/date-time-picker.js +53 -49
  24. package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
  25. package/dist/components/date-time-picker/time-picker.js +77 -71
  26. package/dist/components/date-time-picker/time-picker.js.map +1 -1
  27. package/dist/components/dialog/dialog.js +21 -21
  28. package/dist/components/drawer/drawer.js +16 -16
  29. package/dist/components/dropdown-menu/dropdown-menu.js +13 -13
  30. package/dist/components/field/field-combobox.js +9 -9
  31. package/dist/components/field/field.js +22 -22
  32. package/dist/components/label/label.js +11 -11
  33. package/dist/components/list/list.js +13 -13
  34. package/dist/components/option-card/option-card.js +24 -24
  35. package/dist/components/pill/pill.js +21 -20
  36. package/dist/components/pill/pill.js.map +1 -1
  37. package/dist/components/popover/popover.js +4 -4
  38. package/dist/components/radio/radio.js +8 -8
  39. package/dist/components/scroll-overflow/scroll-overflow.js +6 -6
  40. package/dist/components/select/select.js +25 -25
  41. package/dist/components/skeleton/skeleton.js +17 -17
  42. package/dist/components/skeleton/skeleton.js.map +1 -1
  43. package/dist/components/table/table-pagination.js +74 -76
  44. package/dist/components/table/table-pagination.js.map +1 -1
  45. package/dist/components/tabs/tabs.js +19 -19
  46. package/dist/components/toast/toast.js +24 -24
  47. package/dist/components/toggle/toggle.js +17 -17
  48. package/dist/components/tooltip/tooltip.js +6 -6
  49. package/dist/index.d.ts +1490 -1056
  50. package/dist/index.js +276 -273
  51. package/dist/index.js.map +1 -1
  52. package/dist/tokens/core.generated.js +1168 -1154
  53. package/dist/tokens/core.generated.js.map +1 -1
  54. package/dist/tokens/index.d.ts +1076 -1054
  55. package/dist/tokens/index.js +1078 -1056
  56. package/dist/tokens/index.js.map +1 -1
  57. package/dist/tokens/install.js +21 -9
  58. package/dist/tokens/install.js.map +1 -1
  59. package/dist/tokens/palette.generated.js +1323 -1293
  60. package/dist/tokens/palette.generated.js.map +1 -1
  61. package/dist/tokens.json +45 -1
  62. package/package.json +7 -2
  63. package/testing/jest-preset.cjs +64 -0
@@ -1 +1 @@
1
- {"version":3,"file":"time-picker.js","sources":["../../../src/components/date-time-picker/time-picker.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\nimport {\n getHours,\n getMinutes,\n padNumber,\n updateTime,\n} from \"./date-time-picker-utils\"\n\nconst HOURS = Array.from({ length: 24 }, (_, i) => i)\n\nexport type TimePickerProps = {\n value: Date | null\n onChange: (date: Date) => void\n onTimeSelect?: () => void\n disablePast?: boolean\n currentTimeInTimezone?: Date\n fillHeight?: boolean\n minuteStep?: number\n className?: string\n}\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"stretch\",\n justifyContent: \"center\",\n ...shorthands.gap(tokens.spacingElement1),\n },\n fillHeight: {\n height: \"100%\",\n },\n column: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n width: \"3.5rem\",\n },\n columnFillHeight: {\n minHeight: \"0\",\n },\n scroll: {\n display: \"flex\",\n flexDirection: \"column\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n width: \"100%\",\n alignItems: \"center\",\n ...shorthands.borderRadius(tokens.radiusMd),\n ...shorthands.border(\"1px\", \"solid\", tokens.grayA5),\n scrollbarWidth: \"thin\",\n scrollbarColor: `${tokens.grayA6} transparent`,\n },\n scrollFixed: {\n height: \"8rem\",\n },\n scrollFill: {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: \"0%\",\n minHeight: \"0\",\n },\n separator: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: tokens.textBase,\n lineHeight: tokens.leadingBase,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.grayA8,\n },\n timeBtn: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n ...shorthands.borderRadius(tokens.radiusMd),\n transitionProperty: \"background-color, color\",\n transitionDuration: \"150ms\",\n minHeight: \"2rem\",\n width: \"100%\",\n maxWidth: \"3rem\",\n ...shorthands.border(\"0\"),\n outlineStyle: \"none\",\n },\n timeBtnDefault: {\n backgroundColor: \"transparent\",\n color: tokens.grayA11,\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n },\n timeBtnSelected: {\n fontWeight: tokens.fontWeightSemibold,\n backgroundColor: tokens.semAccentSolid,\n color: tokens.semAccentContrast,\n \":hover\": {\n backgroundColor: tokens.semAccentSolidHover,\n },\n },\n timeBtnDisabled: {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n timeBtnEnabled: {\n cursor: \"pointer\",\n },\n})\n\ntype TimeButtonProps = {\n value: number\n isSelected: boolean\n isDisabled: boolean\n onClick: (value: number) => void\n}\n\nconst TimeButton = React.memo(function TimeButton({\n value,\n isSelected,\n isDisabled,\n onClick,\n}: TimeButtonProps) {\n const styles = useStyles()\n const handleClick = React.useCallback(() => {\n if (!isDisabled) {\n onClick(value)\n }\n }, [onClick, value, isDisabled])\n\n return (\n <button\n aria-disabled={isDisabled}\n aria-pressed={isSelected}\n className={mergeClasses(\n styles.timeBtn,\n !isSelected && styles.timeBtnDefault,\n isSelected && styles.timeBtnSelected,\n isDisabled ? styles.timeBtnDisabled : styles.timeBtnEnabled\n )}\n data-selected={isSelected}\n data-slot=\"time-button\"\n {...{ [SLOT_ATTR]: \"time-button\" }}\n data-value={value}\n disabled={isDisabled}\n onClick={handleClick}\n type=\"button\"\n >\n {padNumber(value)}\n </button>\n )\n})\n\nTimeButton.displayName = \"TimeButton\"\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n function TimePicker(\n {\n value,\n onChange,\n onTimeSelect,\n disablePast = false,\n currentTimeInTimezone,\n fillHeight = false,\n minuteStep = 1,\n className,\n },\n ref\n ) {\n const styles = useStyles()\n const step = Math.max(1, Math.floor(minuteStep))\n\n // Enumerate buckets 0, step, 2·step… stopping at <60 so a step that\n // doesn't divide 60 evenly (e.g. 7) can never produce an out-of-range\n // value like 63.\n const MINUTES = React.useMemo(() => {\n const buckets: number[] = []\n for (let m = 0; m < 60; m += step) buckets.push(m)\n\n return buckets\n }, [step])\n\n const selectedHour = value !== null ? getHours(value) : -1\n const rawMinute = value !== null ? getMinutes(value) : -1\n const selectedMinute =\n value === null\n ? -1\n : step === 1\n ? rawMinute\n : Math.min(\n MINUTES[MINUTES.length - 1],\n Math.round(rawMinute / step) * step\n )\n\n const hoursRef = React.useRef<HTMLDivElement>(null)\n const minutesRef = React.useRef<HTMLDivElement>(null)\n\n const now = React.useMemo(\n () => currentTimeInTimezone || new Date(),\n [currentTimeInTimezone]\n )\n const isToday = React.useMemo(() => {\n if (!value) return false\n\n return (\n value.getFullYear() === now.getFullYear() &&\n value.getMonth() === now.getMonth() &&\n value.getDate() === now.getDate()\n )\n }, [value, now])\n\n const currentHour = now.getHours()\n const currentMinute = now.getMinutes()\n\n const isHourDisabled = React.useCallback(\n (hour: number) => {\n if (!disablePast || !isToday) return false\n\n return hour < currentHour\n },\n [disablePast, isToday, currentHour]\n )\n\n const isMinuteDisabled = React.useCallback(\n (minute: number) => {\n if (!disablePast || !isToday) return false\n if (selectedHour < currentHour) return true\n if (selectedHour === currentHour) return minute < currentMinute\n\n return false\n },\n [disablePast, isToday, selectedHour, currentHour, currentMinute]\n )\n\n const handleHourChange = React.useCallback(\n (hour: number) => {\n const base = value || now\n const minute = selectedMinute >= 0 ? selectedMinute : 0\n\n onChange(updateTime(base, hour, minute))\n },\n [onChange, value, now, selectedMinute]\n )\n\n const handleMinuteChange = React.useCallback(\n (minute: number) => {\n const base = value || now\n const hour = selectedHour >= 0 ? selectedHour : 0\n\n onChange(updateTime(base, hour, minute))\n onTimeSelect?.()\n },\n [onChange, onTimeSelect, value, now, selectedHour]\n )\n\n React.useEffect(() => {\n if (hoursRef.current) {\n const selectedElement = hoursRef.current.querySelector(\n `[data-value=\"${selectedHour}\"]`\n )\n\n if (selectedElement) {\n selectedElement.scrollIntoView?.({\n block: \"center\",\n behavior: \"auto\",\n })\n }\n }\n if (minutesRef.current) {\n const selectedElement = minutesRef.current.querySelector(\n `[data-value=\"${selectedMinute}\"]`\n )\n\n if (selectedElement) {\n selectedElement.scrollIntoView?.({\n block: \"center\",\n behavior: \"auto\",\n })\n }\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <div\n ref={ref}\n className={mergeClasses(\n styles.root,\n fillHeight && styles.fillHeight,\n className\n )}\n data-slot=\"timepicker\"\n {...{ [SLOT_ATTR]: \"timepicker\" }}\n >\n <div\n className={mergeClasses(\n styles.column,\n fillHeight && styles.columnFillHeight\n )}\n >\n <div\n className={mergeClasses(\n styles.scroll,\n fillHeight ? styles.scrollFill : styles.scrollFixed\n )}\n data-slot=\"timepicker-scroll\"\n {...{ [SLOT_ATTR]: \"timepicker-scroll\" }}\n ref={hoursRef}\n >\n {HOURS.map((hour) => (\n <TimeButton\n isDisabled={isHourDisabled(hour)}\n isSelected={hour === selectedHour}\n key={hour}\n onClick={handleHourChange}\n value={hour}\n />\n ))}\n </div>\n </div>\n\n <div className={styles.separator}>:</div>\n\n <div\n className={mergeClasses(\n styles.column,\n fillHeight && styles.columnFillHeight\n )}\n >\n <div\n className={mergeClasses(\n styles.scroll,\n fillHeight ? styles.scrollFill : styles.scrollFixed\n )}\n data-slot=\"timepicker-scroll\"\n {...{ [SLOT_ATTR]: \"timepicker-scroll\" }}\n ref={minutesRef}\n >\n {MINUTES.map((minute) => (\n <TimeButton\n isDisabled={isMinuteDisabled(minute)}\n isSelected={minute === selectedMinute}\n key={minute}\n onClick={handleMinuteChange}\n value={minute}\n />\n ))}\n </div>\n </div>\n </div>\n )\n }\n)\n"],"names":["HOURS","_","i","useStyles","makeVoltStyles","shorthands","tokens.spacingElement1","tokens.radiusMd","tokens.grayA5","tokens.grayA6","tokens.textBase","tokens.leadingBase","tokens.fontWeightSemibold","tokens.grayA8","tokens.textSm","tokens.leadingSm","tokens.grayA11","tokens.grayA4","tokens.semAccentSolid","tokens.semAccentContrast","tokens.semAccentSolidHover","TimeButton","React","value","isSelected","isDisabled","onClick","styles","handleClick","jsx","mergeClasses","SLOT_ATTR","TimePicker","onChange","onTimeSelect","disablePast","currentTimeInTimezone","fillHeight","minuteStep","className","ref","step","MINUTES","buckets","m","selectedHour","getHours","rawMinute","getMinutes","selectedMinute","hoursRef","minutesRef","now","isToday","currentHour","currentMinute","isHourDisabled","hour","isMinuteDisabled","minute","handleHourChange","base","updateTime","handleMinuteChange","selectedElement","_a","_b","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"time-picker.js","sources":["../../../src/components/date-time-picker/time-picker.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\nimport {\n getHours,\n getMinutes,\n padNumber,\n updateTime,\n} from \"./date-time-picker-utils\"\n\nconst HOURS = Array.from({ length: 24 }, (_, i) => i)\n\nexport type TimePickerProps = {\n value: Date | null\n onChange: (date: Date) => void\n onTimeSelect?: () => void\n disablePast?: boolean\n currentTimeInTimezone?: Date\n fillHeight?: boolean\n minuteStep?: number\n className?: string\n /**\n * Accessible name for the hours column. Pass a translated string.\n *\n * These are ACCESSIBLE NAMES, not visible headers, and the distinction is deliberate. v1 ≤1.3.x\n * had `hoursLabel`/`minutesLabel` that rendered visible \"HH\"/\"MM\" headings; v1 deleted them in\n * `138fe05` (2026-06-25) and this package mirrors v1's current output, which Rule 0 makes the\n * fidelity target. But v1 replaced them with nothing, so both libraries now hand a screen reader\n * two unnamed columns of bare numbers. Naming them via `aria-label` closes that without moving a\n * pixel — the VR gate still matches v1 specimen for specimen.\n */\n hoursLabel?: string\n /** Accessible name for the minutes column. Pass a translated string. See `hoursLabel`. */\n minutesLabel?: string\n}\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"stretch\",\n justifyContent: \"center\",\n ...shorthands.gap(tokens.spacingElement1),\n },\n fillHeight: {\n height: \"100%\",\n },\n column: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n width: \"3.5rem\",\n },\n columnFillHeight: {\n minHeight: \"0\",\n },\n scroll: {\n display: \"flex\",\n flexDirection: \"column\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n width: \"100%\",\n alignItems: \"center\",\n ...shorthands.borderRadius(tokens.radiusMd),\n ...shorthands.border(\"1px\", \"solid\", tokens.grayA5),\n scrollbarWidth: \"thin\",\n scrollbarColor: `${tokens.grayA6} transparent`,\n },\n scrollFixed: {\n height: \"8rem\",\n },\n scrollFill: {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: \"0%\",\n minHeight: \"0\",\n },\n separator: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: tokens.textBase,\n lineHeight: tokens.leadingBase,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.grayA8,\n },\n timeBtn: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n ...shorthands.borderRadius(tokens.radiusMd),\n transitionProperty: \"background-color, color\",\n transitionDuration: \"150ms\",\n minHeight: \"2rem\",\n width: \"100%\",\n maxWidth: \"3rem\",\n ...shorthands.border(\"0\"),\n outlineStyle: \"none\",\n },\n timeBtnDefault: {\n backgroundColor: \"transparent\",\n color: tokens.grayA11,\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n },\n timeBtnSelected: {\n fontWeight: tokens.fontWeightSemibold,\n backgroundColor: tokens.semAccentSolid,\n color: tokens.semAccentContrast,\n \":hover\": {\n backgroundColor: tokens.semAccentSolidHover,\n },\n },\n timeBtnDisabled: {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n timeBtnEnabled: {\n cursor: \"pointer\",\n },\n})\n\ntype TimeButtonProps = {\n value: number\n isSelected: boolean\n isDisabled: boolean\n onClick: (value: number) => void\n}\n\nconst TimeButton = React.memo(function TimeButton({\n value,\n isSelected,\n isDisabled,\n onClick,\n}: TimeButtonProps) {\n const styles = useStyles()\n const handleClick = React.useCallback(() => {\n if (!isDisabled) {\n onClick(value)\n }\n }, [onClick, value, isDisabled])\n\n return (\n <button\n aria-disabled={isDisabled}\n aria-pressed={isSelected}\n className={mergeClasses(\n styles.timeBtn,\n !isSelected && styles.timeBtnDefault,\n isSelected && styles.timeBtnSelected,\n isDisabled ? styles.timeBtnDisabled : styles.timeBtnEnabled\n )}\n data-selected={isSelected}\n data-slot=\"time-button\"\n {...{ [SLOT_ATTR]: \"time-button\" }}\n data-value={value}\n disabled={isDisabled}\n onClick={handleClick}\n type=\"button\"\n >\n {padNumber(value)}\n </button>\n )\n})\n\nTimeButton.displayName = \"TimeButton\"\n\nexport const TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n function TimePicker(\n {\n value,\n onChange,\n onTimeSelect,\n disablePast = false,\n currentTimeInTimezone,\n fillHeight = false,\n minuteStep = 1,\n className,\n hoursLabel = \"Hours\",\n minutesLabel = \"Minutes\",\n },\n ref\n ) {\n const styles = useStyles()\n const step = Math.max(1, Math.floor(minuteStep))\n\n // Enumerate buckets 0, step, 2·step… stopping at <60 so a step that\n // doesn't divide 60 evenly (e.g. 7) can never produce an out-of-range\n // value like 63.\n const MINUTES = React.useMemo(() => {\n const buckets: number[] = []\n for (let m = 0; m < 60; m += step) buckets.push(m)\n\n return buckets\n }, [step])\n\n const selectedHour = value !== null ? getHours(value) : -1\n const rawMinute = value !== null ? getMinutes(value) : -1\n const selectedMinute =\n value === null\n ? -1\n : step === 1\n ? rawMinute\n : Math.min(\n MINUTES[MINUTES.length - 1],\n Math.round(rawMinute / step) * step\n )\n\n const hoursRef = React.useRef<HTMLDivElement>(null)\n const minutesRef = React.useRef<HTMLDivElement>(null)\n\n const now = React.useMemo(\n () => currentTimeInTimezone || new Date(),\n [currentTimeInTimezone]\n )\n const isToday = React.useMemo(() => {\n if (!value) return false\n\n return (\n value.getFullYear() === now.getFullYear() &&\n value.getMonth() === now.getMonth() &&\n value.getDate() === now.getDate()\n )\n }, [value, now])\n\n const currentHour = now.getHours()\n const currentMinute = now.getMinutes()\n\n const isHourDisabled = React.useCallback(\n (hour: number) => {\n if (!disablePast || !isToday) return false\n\n return hour < currentHour\n },\n [disablePast, isToday, currentHour]\n )\n\n const isMinuteDisabled = React.useCallback(\n (minute: number) => {\n if (!disablePast || !isToday) return false\n if (selectedHour < currentHour) return true\n if (selectedHour === currentHour) return minute < currentMinute\n\n return false\n },\n [disablePast, isToday, selectedHour, currentHour, currentMinute]\n )\n\n const handleHourChange = React.useCallback(\n (hour: number) => {\n const base = value || now\n const minute = selectedMinute >= 0 ? selectedMinute : 0\n\n onChange(updateTime(base, hour, minute))\n },\n [onChange, value, now, selectedMinute]\n )\n\n const handleMinuteChange = React.useCallback(\n (minute: number) => {\n const base = value || now\n const hour = selectedHour >= 0 ? selectedHour : 0\n\n onChange(updateTime(base, hour, minute))\n onTimeSelect?.()\n },\n [onChange, onTimeSelect, value, now, selectedHour]\n )\n\n React.useEffect(() => {\n if (hoursRef.current) {\n const selectedElement = hoursRef.current.querySelector(\n `[data-value=\"${selectedHour}\"]`\n )\n\n if (selectedElement) {\n selectedElement.scrollIntoView?.({\n block: \"center\",\n behavior: \"auto\",\n })\n }\n }\n if (minutesRef.current) {\n const selectedElement = minutesRef.current.querySelector(\n `[data-value=\"${selectedMinute}\"]`\n )\n\n if (selectedElement) {\n selectedElement.scrollIntoView?.({\n block: \"center\",\n behavior: \"auto\",\n })\n }\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <div\n ref={ref}\n className={mergeClasses(\n styles.root,\n fillHeight && styles.fillHeight,\n className\n )}\n data-slot=\"timepicker\"\n {...{ [SLOT_ATTR]: \"timepicker\" }}\n >\n <div\n className={mergeClasses(\n styles.column,\n fillHeight && styles.columnFillHeight\n )}\n >\n <div\n className={mergeClasses(\n styles.scroll,\n fillHeight ? styles.scrollFill : styles.scrollFixed\n )}\n aria-label={hoursLabel}\n data-slot=\"timepicker-scroll\"\n role=\"group\"\n {...{ [SLOT_ATTR]: \"timepicker-scroll\" }}\n ref={hoursRef}\n >\n {HOURS.map((hour) => (\n <TimeButton\n isDisabled={isHourDisabled(hour)}\n isSelected={hour === selectedHour}\n key={hour}\n onClick={handleHourChange}\n value={hour}\n />\n ))}\n </div>\n </div>\n\n <div className={styles.separator}>:</div>\n\n <div\n className={mergeClasses(\n styles.column,\n fillHeight && styles.columnFillHeight\n )}\n >\n <div\n className={mergeClasses(\n styles.scroll,\n fillHeight ? styles.scrollFill : styles.scrollFixed\n )}\n aria-label={minutesLabel}\n data-slot=\"timepicker-scroll\"\n role=\"group\"\n {...{ [SLOT_ATTR]: \"timepicker-scroll\" }}\n ref={minutesRef}\n >\n {MINUTES.map((minute) => (\n <TimeButton\n isDisabled={isMinuteDisabled(minute)}\n isSelected={minute === selectedMinute}\n key={minute}\n onClick={handleMinuteChange}\n value={minute}\n />\n ))}\n </div>\n </div>\n </div>\n )\n }\n)\n"],"names":["HOURS","_","i","useStyles","makeVoltStyles","shorthands","tokens.spacingElement1","tokens.radiusMd","tokens.grayA5","tokens.grayA6","tokens.textBase","tokens.leadingBase","tokens.fontWeightSemibold","tokens.grayA8","tokens.textSm","tokens.leadingSm","tokens.grayA11","tokens.grayA4","tokens.semAccentSolid","tokens.semAccentContrast","tokens.semAccentSolidHover","TimeButton","React","value","isSelected","isDisabled","onClick","styles","handleClick","jsx","mergeClasses","SLOT_ATTR","TimePicker","onChange","onTimeSelect","disablePast","currentTimeInTimezone","fillHeight","minuteStep","className","hoursLabel","minutesLabel","ref","step","MINUTES","buckets","m","selectedHour","getHours","rawMinute","getMinutes","selectedMinute","hoursRef","minutesRef","now","isToday","currentHour","currentMinute","isHourDisabled","hour","isMinuteDisabled","minute","handleHourChange","base","updateTime","handleMinuteChange","selectedElement","_a","_b","jsxs"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { shorthands as s } from "../../packages/volt-runtime/dist/vendor/@griffe
5
5
  import { SLOT_ATTR as l } from "../../packages/volt-runtime/dist/renderer/contract.js";
6
6
  import { mergeClasses as d } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
7
7
  import { makeVoltStyles as W } from "../../styles/make-styles.js";
8
- import { spacingElement2 as f, spacingGroup2 as p, grayA1 as L, leadingSm as N, textSm as T, grayA11 as A, grayA12 as O, fontWeightSemibold as F, leadingLg as k, textLg as P, accentA8 as x, semAccentSoft as H, accentA11 as I, container5xl as X, container4xl as j, container3xl as B, container2xl as E, containerXl as _, containerLg as M, containerMd as G, containerSm as Q, body as V, radiusXl as Z, spacingLayout1 as q } from "../../tokens/index.js";
8
+ import { spacingElement2 as f, spacingGroup2 as p, grayA1 as L, radiusXl as N, spacingLayout1 as T, leadingSm as A, textSm as O, grayA11 as F, grayA12 as k, fontWeightSemibold as P, leadingLg as H, textLg as I, accentA8 as x, semAccentSoft as X, accentA11 as j, container5xl as B, container4xl as E, container3xl as _, container2xl as M, containerXl as G, containerLg as Q, containerMd as V, containerSm as Z, body as q } from "../../tokens/index.js";
9
9
  const c = W({
10
10
  overlay: {
11
11
  position: "fixed",
@@ -31,7 +31,7 @@ const c = W({
31
31
  }
32
32
  },
33
33
  content: {
34
- backgroundColor: V,
34
+ backgroundColor: q,
35
35
  position: "fixed",
36
36
  top: "50%",
37
37
  left: "50%",
@@ -41,8 +41,8 @@ const c = W({
41
41
  width: "100%",
42
42
  maxWidth: "calc(100% - 2rem)",
43
43
  transform: "translate(-50%, -50%)",
44
- ...s.gap(q),
45
- ...s.borderRadius(Z),
44
+ ...s.gap(T),
45
+ ...s.borderRadius(N),
46
46
  ...s.border("1px", "solid", L),
47
47
  // v1 shadow-lg; elevation has no token in this package.
48
48
  boxShadow: "0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a",
@@ -74,14 +74,14 @@ const c = W({
74
74
  animationDuration: "150ms",
75
75
  animationTimingFunction: "cubic-bezier(0.4, 0, 1, 1)"
76
76
  },
77
- "&[data-size='sm']": { maxWidth: Q },
78
- "&[data-size='md']": { maxWidth: G },
79
- "&[data-size='lg']": { maxWidth: M },
80
- "&[data-size='xl']": { maxWidth: _ },
81
- "&[data-size='2xl']": { maxWidth: E },
82
- "&[data-size='3xl']": { maxWidth: B },
83
- "&[data-size='4xl']": { maxWidth: j },
84
- "&[data-size='5xl']": { maxWidth: X },
77
+ "&[data-size='sm']": { maxWidth: Z },
78
+ "&[data-size='md']": { maxWidth: V },
79
+ "&[data-size='lg']": { maxWidth: Q },
80
+ "&[data-size='xl']": { maxWidth: G },
81
+ "&[data-size='2xl']": { maxWidth: M },
82
+ "&[data-size='3xl']": { maxWidth: _ },
83
+ "&[data-size='4xl']": { maxWidth: E },
84
+ "&[data-size='5xl']": { maxWidth: B },
85
85
  "&[data-size='full-width']": { maxWidth: "100%" }
86
86
  },
87
87
  contentPadding: {
@@ -103,9 +103,9 @@ const c = W({
103
103
  // v1 rounded-full; no full-radius token exists in this package.
104
104
  borderRadius: "9999px",
105
105
  cursor: "pointer",
106
- color: I,
106
+ color: j,
107
107
  ":hover": {
108
- backgroundColor: H
108
+ backgroundColor: X
109
109
  },
110
110
  ":focus-visible": {
111
111
  outlineWidth: "2px",
@@ -135,15 +135,15 @@ const c = W({
135
135
  justifyContent: "flex-end"
136
136
  },
137
137
  title: {
138
- fontSize: P,
139
- lineHeight: k,
140
- fontWeight: F,
141
- color: O
138
+ fontSize: I,
139
+ lineHeight: H,
140
+ fontWeight: P,
141
+ color: k
142
142
  },
143
143
  description: {
144
- color: A,
145
- fontSize: T,
146
- lineHeight: N
144
+ color: F,
145
+ fontSize: O,
146
+ lineHeight: A
147
147
  },
148
148
  srOnly: {
149
149
  position: "absolute",
@@ -5,7 +5,7 @@ import { shorthands as i } from "../../packages/volt-runtime/dist/vendor/@griffe
5
5
  import { SLOT_ATTR as c } from "../../packages/volt-runtime/dist/renderer/contract.js";
6
6
  import { mergeClasses as m } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
7
7
  import { makeVoltStyles as L } from "../../styles/make-styles.js";
8
- import { spacingElement2 as g, grayA1 as p, spacingElement3 as y, leadingSm as X, textSm as A, grayA11 as O, grayA12 as Y, fontWeightSemibold as k, leadingLg as E, textLg as P, accentA8 as h, semAccentSoft as B, accentA11 as H, spacingGroup2 as b, spacingElement1 as n, gray2 as I, radius2xl as W } from "../../tokens/index.js";
8
+ import { spacingElement2 as g, grayA1 as p, spacingElement3 as y, radius2xl as X, spacingGroup2 as h, leadingSm as A, textSm as O, grayA11 as Y, grayA12 as k, fontWeightSemibold as E, leadingLg as P, textLg as B, accentA8 as b, semAccentSoft as H, accentA11 as I, spacingElement1 as n, gray2 as W } from "../../tokens/index.js";
9
9
  const d = L({
10
10
  overlay: {
11
11
  position: "fixed",
@@ -31,14 +31,14 @@ const d = L({
31
31
  }
32
32
  },
33
33
  content: {
34
- backgroundColor: I,
34
+ backgroundColor: W,
35
35
  position: "fixed",
36
36
  // v1's z-1300 is the overlay tier; no z-index token exists in this package.
37
37
  zIndex: 1300,
38
38
  display: "flex",
39
39
  flexDirection: "column",
40
- ...i.gap(b),
41
- ...i.borderRadius(W),
40
+ ...i.gap(h),
41
+ ...i.borderRadius(X),
42
42
  // v1 shadow-lg; elevation has no token in this package.
43
43
  boxShadow: "0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a"
44
44
  },
@@ -191,27 +191,27 @@ const d = L({
191
191
  outlineWidth: "2px",
192
192
  outlineStyle: "solid",
193
193
  outlineOffset: "2px",
194
- outlineColor: h
194
+ outlineColor: b
195
195
  }
196
196
  },
197
197
  closeButton: {
198
198
  position: "absolute",
199
199
  // v1 top-3 is 0.75rem; no spacing token for 0.75rem exists in this package.
200
200
  top: y,
201
- right: b,
201
+ right: h,
202
202
  ...i.padding(g),
203
203
  // v1 rounded-full; no full-radius token exists in this package.
204
204
  borderRadius: "9999px",
205
205
  cursor: "pointer",
206
- color: H,
206
+ color: I,
207
207
  ":hover": {
208
- backgroundColor: B
208
+ backgroundColor: H
209
209
  },
210
210
  ":focus-visible": {
211
211
  outlineWidth: "2px",
212
212
  outlineStyle: "solid",
213
213
  outlineOffset: "2px",
214
- outlineColor: h
214
+ outlineColor: b
215
215
  },
216
216
  ":disabled": {
217
217
  pointerEvents: "none"
@@ -238,15 +238,15 @@ const d = L({
238
238
  justifyContent: "flex-end"
239
239
  },
240
240
  title: {
241
- fontSize: P,
242
- lineHeight: E,
243
- fontWeight: k,
244
- color: Y
241
+ fontSize: B,
242
+ lineHeight: P,
243
+ fontWeight: E,
244
+ color: k
245
245
  },
246
246
  description: {
247
- color: O,
248
- fontSize: A,
249
- lineHeight: X
247
+ color: Y,
248
+ fontSize: O,
249
+ lineHeight: A
250
250
  },
251
251
  srOnly: {
252
252
  position: "absolute",
@@ -5,7 +5,7 @@ import { shorthands as g } from "../../packages/volt-runtime/dist/vendor/@griffe
5
5
  import { SLOT_ATTR as c } from "../../packages/volt-runtime/dist/renderer/contract.js";
6
6
  import { mergeClasses as p } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
7
7
  import { makeVoltStyles as z } from "../../styles/make-styles.js";
8
- import { spacingElement1 as u, grayA11 as W, leadingXs as X, textXs as B, grayA3 as E, fontWeightSemibold as $, leadingSm as b, textSm as x, spacingElement2 as m, semAccentSoft as f, semErrorSoft as w, errorA8 as P, errorA11 as j, grayA12 as Y, body as _, accentA11 as F, radiusMd as H, radiusXl as Z } from "../../tokens/index.js";
8
+ import { radiusMd as W, spacingElement2 as m, spacingElement1 as u, radiusXl as X, grayA11 as B, leadingXs as E, textXs as $, grayA3 as P, fontWeightSemibold as j, leadingSm as b, textSm as x, semAccentSoft as f, semErrorSoft as w, errorA8 as Y, errorA11 as _, grayA12 as F, body as H, accentA11 as Z } from "../../tokens/index.js";
9
9
  const O = (r) => /* @__PURE__ */ e(
10
10
  "svg",
11
11
  {
@@ -41,17 +41,17 @@ const O = (r) => /* @__PURE__ */ e(
41
41
  }
42
42
  ), l = z({
43
43
  trigger: {
44
- color: F
44
+ color: Z
45
45
  },
46
46
  portal: {
47
47
  display: "contents"
48
48
  },
49
49
  popup: {
50
- backgroundColor: _,
51
- color: Y,
50
+ backgroundColor: H,
51
+ color: F,
52
52
  minWidth: "10rem",
53
53
  overflow: "hidden",
54
- ...g.borderRadius(Z),
54
+ ...g.borderRadius(X),
55
55
  ...g.padding(u),
56
56
  // v1 shadow-lg
57
57
  boxShadow: "0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a",
@@ -118,7 +118,7 @@ const O = (r) => /* @__PURE__ */ e(
118
118
  userSelect: "none",
119
119
  alignItems: "center",
120
120
  ...g.gap(m),
121
- ...g.borderRadius(H),
121
+ ...g.borderRadius(W),
122
122
  paddingLeft: m,
123
123
  paddingRight: m,
124
124
  paddingTop: "0.375rem",
@@ -153,7 +153,7 @@ const O = (r) => /* @__PURE__ */ e(
153
153
  paddingLeft: "2rem"
154
154
  },
155
155
  itemDestructive: {
156
- color: j,
156
+ color: _,
157
157
  ":hover": {
158
158
  backgroundColor: w
159
159
  },
@@ -161,7 +161,7 @@ const O = (r) => /* @__PURE__ */ e(
161
161
  backgroundColor: w,
162
162
  outlineWidth: "2px",
163
163
  outlineStyle: "solid",
164
- outlineColor: P
164
+ outlineColor: Y
165
165
  },
166
166
  "&[data-highlighted]": {
167
167
  backgroundColor: w
@@ -204,7 +204,7 @@ const O = (r) => /* @__PURE__ */ e(
204
204
  paddingBottom: "0.375rem",
205
205
  fontSize: x,
206
206
  lineHeight: b,
207
- fontWeight: $
207
+ fontWeight: j
208
208
  },
209
209
  separator: {
210
210
  marginLeft: `calc(-1 * ${u})`,
@@ -212,14 +212,14 @@ const O = (r) => /* @__PURE__ */ e(
212
212
  marginTop: u,
213
213
  marginBottom: u,
214
214
  height: "1px",
215
- backgroundColor: E
215
+ backgroundColor: P
216
216
  },
217
217
  shortcut: {
218
218
  marginLeft: "auto",
219
- fontSize: B,
220
- lineHeight: X,
219
+ fontSize: $,
220
+ lineHeight: E,
221
221
  letterSpacing: "0.1em",
222
- color: W
222
+ color: B
223
223
  }
224
224
  }), ro = d.forwardRef(
225
225
  function(o, t) {
@@ -4,7 +4,7 @@ import { shorthands as s } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as p } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as m } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as R } from "../../styles/make-styles.js";
7
- import { spacingElement2 as b, grayA8 as S, accentA11 as I, spacingGroup1 as x, grayA11 as f, spacingElement1 as y, semGraySoft as L, leadingXs as N, textXs as q, fontWeightSemibold as P, leadingSm as h, textSm as C, grayA12 as g, radiusMd as T, radiusLg as V } from "../../tokens/index.js";
7
+ import { radiusMd as S, spacingElement2 as b, radiusLg as I, grayA8 as L, accentA11 as N, spacingGroup1 as x, grayA11 as f, spacingElement1 as y, semGraySoft as q, leadingXs as P, textXs as T, fontWeightSemibold as V, leadingSm as h, textSm as C, grayA12 as g } from "../../tokens/index.js";
8
8
  import { Command as G, CommandEmpty as B, CommandGroup as D, CommandInput as k, CommandItem as A, CommandList as E, CommandLoading as j, CommandSeparator as H } from "../command/command.js";
9
9
  import { Label as z } from "../label/label.js";
10
10
  import { Popover as M, PopoverPortal as W, PopoverContent as X, PopoverTrigger as Z } from "../popover/popover.js";
@@ -49,7 +49,7 @@ const _ = (n) => /* @__PURE__ */ a(
49
49
  alignItems: "center",
50
50
  justifyContent: "space-between",
51
51
  ...s.gap(b),
52
- ...s.borderRadius(V),
52
+ ...s.borderRadius(I),
53
53
  backgroundColor: "transparent",
54
54
  fontSize: C,
55
55
  lineHeight: h,
@@ -109,7 +109,7 @@ const _ = (n) => /* @__PURE__ */ a(
109
109
  cursor: "default",
110
110
  alignItems: "center",
111
111
  ...s.gap(b),
112
- ...s.borderRadius(T),
112
+ ...s.borderRadius(S),
113
113
  fontSize: C,
114
114
  lineHeight: h,
115
115
  outlineStyle: "none",
@@ -142,16 +142,16 @@ const _ = (n) => /* @__PURE__ */ a(
142
142
  },
143
143
  groupLabel: {
144
144
  color: f,
145
- fontWeight: P,
145
+ fontWeight: V,
146
146
  paddingLeft: b,
147
147
  paddingRight: b,
148
148
  paddingTop: b,
149
149
  paddingBottom: b,
150
- fontSize: q,
151
- lineHeight: N
150
+ fontSize: T,
151
+ lineHeight: P
152
152
  },
153
153
  separator: {
154
- backgroundColor: L,
154
+ backgroundColor: q,
155
155
  pointerEvents: "none",
156
156
  marginLeft: `calc(-1 * ${y})`,
157
157
  marginRight: `calc(-1 * ${y})`,
@@ -178,7 +178,7 @@ const _ = (n) => /* @__PURE__ */ a(
178
178
  ...s.borderRadius("9999px"),
179
179
  backgroundColor: "transparent",
180
180
  ...s.border("0"),
181
- color: I
181
+ color: N
182
182
  },
183
183
  clearSvg: {
184
184
  width: "1.25rem",
@@ -201,7 +201,7 @@ const _ = (n) => /* @__PURE__ */ a(
201
201
  color: "currentColor"
202
202
  },
203
203
  placeholder: {
204
- color: S
204
+ color: L
205
205
  }
206
206
  }), io = l.forwardRef(
207
207
  function(t, o) {
@@ -4,7 +4,7 @@ import { shorthands as r } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as c } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as f } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as W } from "../../styles/make-styles.js";
7
- import { fontWeightNormal as x, leadingSm as S, textSm as w, grayA11 as L, grayA8 as N, grayA12 as F, leadingXs as z, textXs as v, errorA11 as G, errorA8 as A, errorA4 as P, semErrorSoft as E, accentA8 as D, grayA3 as k, accentA4 as X, accentA3 as $, grayA4 as j, spacingElement3 as I, spacingElement2 as y, spacingElement1 as R, spacingLayout2 as M, radiusLg as q } from "../../tokens/index.js";
7
+ import { spacingElement2 as y, spacingElement1 as S, spacingLayout2 as P, radiusLg as X, fontWeightNormal as x, leadingSm as w, textSm as z, grayA11 as L, grayA8 as N, grayA12 as F, leadingXs as D, textXs as v, errorA11 as G, errorA8 as A, errorA4 as $, semErrorSoft as E, accentA8 as R, grayA3 as k, accentA4 as j, accentA3 as M, grayA4 as q, spacingElement3 as I } from "../../tokens/index.js";
8
8
  const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createContext(null), T = () => {
9
9
  const l = a.useContext(H);
10
10
  if (!l)
@@ -24,8 +24,8 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
24
24
  // silently loses 4px per side. See STATUS: the scale gap is the root cause.
25
25
  paddingLeft: I,
26
26
  paddingRight: I,
27
- ...r.gap(R),
28
- ...r.borderRadius(q),
27
+ ...r.gap(S),
28
+ ...r.borderRadius(X),
29
29
  transitionProperty: "all",
30
30
  transitionDuration: "75ms",
31
31
  outlineOffset: "2px",
@@ -59,31 +59,31 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
59
59
  rootDefault: {
60
60
  backgroundColor: k,
61
61
  ":hover": {
62
- backgroundColor: j
62
+ backgroundColor: q
63
63
  },
64
64
  "&[data-focused='true'], &[data-focus-visible]": {
65
- outlineColor: D
65
+ outlineColor: R
66
66
  }
67
67
  },
68
68
  rootHighlight: {
69
- backgroundColor: $,
69
+ backgroundColor: M,
70
70
  ":hover": {
71
- backgroundColor: X
71
+ backgroundColor: j
72
72
  },
73
73
  "&[data-focused='true'], &[data-focus-visible]": {
74
- outlineColor: D
74
+ outlineColor: R
75
75
  }
76
76
  },
77
77
  rootReadonly: {
78
78
  backgroundColor: k,
79
79
  "&[data-focused='true'], &[data-focus-visible]": {
80
- outlineColor: D
80
+ outlineColor: R
81
81
  }
82
82
  },
83
83
  rootDestructive: {
84
84
  backgroundColor: E,
85
85
  ":hover": {
86
- backgroundColor: P
86
+ backgroundColor: $
87
87
  },
88
88
  "&[data-focused='true'], &[data-focus-visible]": {
89
89
  outlineColor: A
@@ -92,7 +92,7 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
92
92
  fieldSet: {
93
93
  display: "flex",
94
94
  flexDirection: "column",
95
- ...r.gap(M),
95
+ ...r.gap(P),
96
96
  ...r.border("0"),
97
97
  ...r.padding(0),
98
98
  ...r.margin(0)
@@ -120,7 +120,7 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
120
120
  label: {
121
121
  minHeight: "1rem",
122
122
  fontSize: v,
123
- lineHeight: z,
123
+ lineHeight: D,
124
124
  display: "flex",
125
125
  width: "fit-content",
126
126
  ...r.gap(y),
@@ -133,7 +133,7 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
133
133
  labelContent: {
134
134
  display: "inline-flex",
135
135
  alignItems: "center",
136
- ...r.gap(R),
136
+ ...r.gap(S),
137
137
  transitionProperty: "opacity",
138
138
  transitionDuration: "150ms"
139
139
  },
@@ -164,7 +164,7 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
164
164
  error: {
165
165
  color: G,
166
166
  fontSize: v,
167
- lineHeight: z,
167
+ lineHeight: D,
168
168
  fontWeight: x
169
169
  },
170
170
  errorList: {
@@ -177,7 +177,7 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
177
177
  errorListItem: {
178
178
  color: G,
179
179
  fontSize: v,
180
- lineHeight: z,
180
+ lineHeight: D,
181
181
  fontWeight: x,
182
182
  marginTop: "0.25rem",
183
183
  marginBottom: "0.25rem"
@@ -186,8 +186,8 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
186
186
  width: "100%",
187
187
  height: "1.5rem",
188
188
  outlineStyle: "none",
189
- fontSize: w,
190
- lineHeight: S,
189
+ fontSize: z,
190
+ lineHeight: w,
191
191
  color: F,
192
192
  backgroundColor: "transparent",
193
193
  ...r.border("0"),
@@ -202,14 +202,14 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
202
202
  inputGroup: {
203
203
  display: "flex",
204
204
  alignItems: "center",
205
- ...r.gap(R),
205
+ ...r.gap(S),
206
206
  width: "100%"
207
207
  },
208
208
  textarea: {
209
209
  width: "100%",
210
210
  outlineStyle: "none",
211
- fontSize: w,
212
- lineHeight: S,
211
+ fontSize: z,
212
+ lineHeight: w,
213
213
  color: F,
214
214
  backgroundColor: "transparent",
215
215
  ...r.border("0"),
@@ -239,8 +239,8 @@ const Q = "div", U = "label", Y = "input", _ = "p", J = "div", H = a.createConte
239
239
  alignItems: "center",
240
240
  justifyContent: "center",
241
241
  ...r.gap(y),
242
- fontSize: w,
243
- lineHeight: S,
242
+ fontSize: z,
243
+ lineHeight: w,
244
244
  fontWeight: x,
245
245
  userSelect: "none"
246
246
  },
@@ -4,12 +4,12 @@ import { shorthands as n } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as m } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as f } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as p } from "../../styles/make-styles.js";
7
- import { leadingBase as g, textBase as c, leadingSm as d, textSm as y, leadingXs as b, textXs as S, errorA12 as h, grayA12 as x, fontWeightNormal as u, spacingElement2 as z } from "../../tokens/index.js";
7
+ import { spacingElement2 as g, leadingBase as c, textBase as d, leadingSm as y, textSm as b, leadingXs as S, textXs as h, errorA12 as x, grayA12 as u, fontWeightNormal as z } from "../../tokens/index.js";
8
8
  const A = p({
9
9
  root: {
10
10
  display: "flex",
11
11
  alignItems: "center",
12
- ...n.gap(z),
12
+ ...n.gap(g),
13
13
  // The leading lives on the size slots below, and which value it takes is a decided question --
14
14
  // see DECISIONS.md D9 and the label specimens in vr/specimens that pin it.
15
15
  //
@@ -34,7 +34,7 @@ const A = p({
34
34
  // and both belong in a STABLE360 ticket against v1. When v1 is fixed, delete the VR shim (see
35
35
  // vr/run.mjs V1_DECLARED_LEADING_SHIM); vr/v1-leading-references.test.ts fails on purpose to
36
36
  // force that, so the decision gets revisited together with the fix rather than silently.
37
- fontWeight: u,
37
+ fontWeight: z,
38
38
  "&[for]": {
39
39
  cursor: "pointer"
40
40
  },
@@ -53,23 +53,23 @@ const A = p({
53
53
  },
54
54
  // Variants
55
55
  primary: {
56
- color: x
56
+ color: u
57
57
  },
58
58
  destructive: {
59
- color: h
59
+ color: x
60
60
  },
61
61
  // Sizes
62
62
  sm: {
63
- fontSize: S,
64
- lineHeight: b
63
+ fontSize: h,
64
+ lineHeight: S
65
65
  },
66
66
  base: {
67
- fontSize: y,
68
- lineHeight: d
67
+ fontSize: b,
68
+ lineHeight: y
69
69
  },
70
70
  lg: {
71
- fontSize: c,
72
- lineHeight: g
71
+ fontSize: d,
72
+ lineHeight: c
73
73
  }
74
74
  }), N = l.forwardRef(
75
75
  function({ variant: t = "primary", size: o = "base", className: r, ...a }, s) {