@epilot/volt-ui-experimental-griffel 0.2.1 → 0.3.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.
- package/ADOPTING.md +416 -0
- package/README.md +96 -17
- package/dist/_virtual/jsx-dev-runtime.js +5 -0
- package/dist/_virtual/jsx-dev-runtime.js.map +1 -0
- package/dist/_virtual/react-jsx-dev-runtime.development.js +5 -0
- package/dist/_virtual/react-jsx-dev-runtime.development.js.map +1 -0
- package/dist/_virtual/react-jsx-dev-runtime.production.js +5 -0
- package/dist/_virtual/react-jsx-dev-runtime.production.js.map +1 -0
- package/dist/components/accordion/accordion.js +126 -66
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.js +239 -137
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/avatar/avatar-group.js +102 -47
- package/dist/components/avatar/avatar-group.js.map +1 -1
- package/dist/components/avatar/avatar.js +99 -76
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/badge/badge.js +56 -40
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +97 -49
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/button/button.js +89 -78
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/button-group/button-group.js +57 -33
- package/dist/components/button-group/button-group.js.map +1 -1
- package/dist/components/callout/callout.js +288 -164
- package/dist/components/callout/callout.js.map +1 -1
- package/dist/components/card/card.js +138 -82
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +100 -49
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js +155 -107
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js.map +1 -1
- package/dist/components/command/command.js +295 -156
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/data-table/data-table-body.js +114 -54
- package/dist/components/data-table/data-table-body.js.map +1 -1
- package/dist/components/data-table/data-table-column-header.js +117 -45
- package/dist/components/data-table/data-table-column-header.js.map +1 -1
- package/dist/components/data-table/data-table-column-visibility.js +98 -39
- package/dist/components/data-table/data-table-column-visibility.js.map +1 -1
- package/dist/components/data-table/data-table-content.js +90 -58
- package/dist/components/data-table/data-table-content.js.map +1 -1
- package/dist/components/data-table/data-table-error.js +86 -42
- package/dist/components/data-table/data-table-error.js.map +1 -1
- package/dist/components/data-table/data-table-header.js +88 -54
- package/dist/components/data-table/data-table-header.js.map +1 -1
- package/dist/components/data-table/data-table-loading.js +30 -18
- package/dist/components/data-table/data-table-loading.js.map +1 -1
- package/dist/components/data-table/data-table-pagination.js +27 -19
- package/dist/components/data-table/data-table-pagination.js.map +1 -1
- package/dist/components/data-table/data-table-row.js +87 -64
- package/dist/components/data-table/data-table-row.js.map +1 -1
- package/dist/components/data-table/data-table-toolbar.js +24 -16
- package/dist/components/data-table/data-table-toolbar.js.map +1 -1
- package/dist/components/data-table/data-table.js +182 -145
- package/dist/components/data-table/data-table.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +342 -214
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker/range-calendar.js +132 -92
- package/dist/components/date-range-picker/range-calendar.js.map +1 -1
- package/dist/components/date-time-picker/calendar.js +507 -323
- package/dist/components/date-time-picker/calendar.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-context.js +64 -60
- package/dist/components/date-time-picker/date-time-picker-context.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-input.js +249 -149
- package/dist/components/date-time-picker/date-time-picker-input.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-panel.js +270 -156
- package/dist/components/date-time-picker/date-time-picker-panel.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-popover.js +22 -14
- package/dist/components/date-time-picker/date-time-picker-popover.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker.js +118 -70
- package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
- package/dist/components/date-time-picker/time-picker.js +204 -132
- package/dist/components/date-time-picker/time-picker.js.map +1 -1
- package/dist/components/density-provider/density-provider.js +48 -0
- package/dist/components/density-provider/density-provider.js.map +1 -0
- package/dist/components/dialog/dialog.js +281 -151
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js +272 -162
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +376 -193
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/field/field-combobox.js +447 -240
- package/dist/components/field/field-combobox.js.map +1 -1
- package/dist/components/field/field-select.js +23 -19
- package/dist/components/field/field-select.js.map +1 -1
- package/dist/components/field/field.js +315 -206
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/label/label.js +24 -16
- package/dist/components/label/label.js.map +1 -1
- package/dist/components/list/list.js +623 -369
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/option-card/option-card.js +323 -159
- package/dist/components/option-card/option-card.js.map +1 -1
- package/dist/components/pill/pill.js +91 -72
- package/dist/components/pill/pill.js.map +1 -1
- package/dist/components/popover/popover.js +99 -54
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/radio/radio.js +92 -49
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/scroll-overflow/scroll-overflow.js +349 -197
- package/dist/components/scroll-overflow/scroll-overflow.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +141 -97
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.js +452 -227
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/separator/separator.js +24 -16
- package/dist/components/separator/separator.js.map +1 -1
- package/dist/components/skeleton/skeleton.js +78 -38
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/spinner/spinner.js +44 -20
- package/dist/components/spinner/spinner.js.map +1 -1
- package/dist/components/switch/switch.js +163 -86
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-pagination.js +468 -210
- package/dist/components/table/table-pagination.js.map +1 -1
- package/dist/components/table/table.js +212 -144
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/tabs/tabs.js +94 -58
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/text/text.js +40 -32
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/toast/toast.js +189 -113
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toggle/toggle-group.js +40 -24
- package/dist/components/toggle/toggle-group.js.map +1 -1
- package/dist/components/toggle/toggle.js +50 -42
- package/dist/components/toggle/toggle.js.map +1 -1
- package/dist/components/tooltip/tooltip.js +101 -55
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/index.d.ts +1675 -1068
- package/dist/index.js +286 -280
- package/dist/index.js.map +1 -1
- package/dist/lib/clear-button.js +27 -15
- package/dist/lib/clear-button.js.map +1 -1
- package/dist/lib/icons.js +18 -6
- package/dist/lib/icons.js.map +1 -1
- package/dist/packages/volt-runtime/dist/sheet.js +27 -10
- package/dist/packages/volt-runtime/dist/sheet.js.map +1 -1
- package/dist/packages/volt-runtime/dist/styles/recipe.js +76 -0
- package/dist/packages/volt-runtime/dist/styles/recipe.js.map +1 -0
- package/dist/styles/document-context.js +12 -0
- package/dist/styles/document-context.js.map +1 -0
- package/dist/styles/make-styles.js +18 -10
- package/dist/styles/make-styles.js.map +1 -1
- package/dist/tokens/core.generated.js +1239 -1153
- package/dist/tokens/core.generated.js.map +1 -1
- package/dist/tokens/index.d.ts +1103 -1054
- package/dist/tokens/index.js +1045 -996
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/install.js +25 -9
- package/dist/tokens/install.js.map +1 -1
- package/dist/tokens/palette.generated.js +1323 -1293
- package/dist/tokens/palette.generated.js.map +1 -1
- package/dist/tokens/use-palette-tokens.js +20 -0
- package/dist/tokens/use-palette-tokens.js.map +1 -0
- package/dist/tokens.json +127 -2
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.development.js +236 -0
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.development.js.map +1 -0
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.production.js +21 -0
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.production.js.map +1 -0
- package/dist/vendor/react/jsx-dev-runtime.js +9 -0
- package/dist/vendor/react/jsx-dev-runtime.js.map +1 -0
- package/package.json +17 -4
- package/scripts/migration-diagnostics-core.mjs +859 -0
- package/scripts/migration-diagnostics.mjs +353 -0
- package/scripts/migration-sweep.mjs +179 -0
- package/testing/jest-preset.cjs +64 -0
- package/dist/packages/volt-runtime/dist/styles/make-styles.js +0 -22
- package/dist/packages/volt-runtime/dist/styles/make-styles.js.map +0 -1
|
@@ -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/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } 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 = makeVoltStyles({\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 \":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 },\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.accentA8,\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n },\n },\n triggerClearIcon: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n color: tokens.accentA11,\n },\n popup: {\n backgroundColor: tokens.body,\n ...shorthands.padding(tokens.spacingElement2),\n ...shorthands.gap(tokens.spacingElement1),\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 \"&[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 paddingLeft: tokens.spacingGroup1,\n paddingRight: \"2rem\",\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\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\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Content\n ref={ref}\n data-slot=\"select-content\"\n {...{ [SLOT_ATTR]: \"select-content\" }}\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","makeVoltStyles","shorthands","tokens.spacingElement2","tokens.radiusLg","tokens.textSm","tokens.leadingSm","tokens.grayA8","SLOT_ATTR","tokens.grayA11","tokens.accentA11","tokens.radiusMd","tokens.semAccentSoft","tokens.accentA8","tokens.body","tokens.spacingElement1","tokens.grayA12","tokens.radius2xl","tokens.spacingGroup1","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","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
|
+
{"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/volt-ui-runtime\"\n\nimport { useDensity } from \"../density-provider/density-provider\"\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } 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 = makeVoltStyles({\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\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 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","jsxDEV","this","CheckIcon","ChevronDownIcon","ChevronUpIcon","useStyles","makeVoltStyles","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","SelectPrimitive.Trigger","mergeClasses","SelectPrimitive.Icon","SelectTriggerClear","onClick","event","SelectContent","position","align","container","override","useDensity","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,42 +1,50 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { j as m } from "../../vendor/react/jsx-dev-runtime.js";
|
|
2
2
|
import * as n from "react";
|
|
3
3
|
import { SLOT_ATTR as p } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
4
|
-
import { mergeClasses as
|
|
5
|
-
import { makeVoltStyles as
|
|
6
|
-
import { grayA5 as
|
|
7
|
-
const
|
|
4
|
+
import { mergeClasses as f } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
5
|
+
import { makeVoltStyles as u } from "../../styles/make-styles.js";
|
|
6
|
+
import { grayA5 as e } from "../../tokens/index.js";
|
|
7
|
+
const c = u({
|
|
8
8
|
horizontal: {
|
|
9
|
-
backgroundColor:
|
|
9
|
+
backgroundColor: e,
|
|
10
10
|
flexShrink: 0,
|
|
11
11
|
height: "1px",
|
|
12
12
|
width: "100%"
|
|
13
13
|
},
|
|
14
14
|
vertical: {
|
|
15
|
-
backgroundColor:
|
|
15
|
+
backgroundColor: e,
|
|
16
16
|
flexShrink: 0,
|
|
17
17
|
height: "100%",
|
|
18
18
|
width: "1px"
|
|
19
19
|
}
|
|
20
|
-
}),
|
|
21
|
-
function({ className:
|
|
22
|
-
const l =
|
|
23
|
-
return /* @__PURE__ */ m(
|
|
20
|
+
}), k = n.forwardRef(
|
|
21
|
+
function({ className: t, orientation: r = "horizontal", decorative: o = !0, ...s }, i) {
|
|
22
|
+
const l = c(), a = !o;
|
|
23
|
+
return /* @__PURE__ */ m.jsxDEV(
|
|
24
24
|
"div",
|
|
25
25
|
{
|
|
26
|
-
ref:
|
|
26
|
+
ref: i,
|
|
27
27
|
"data-slot": "separator",
|
|
28
28
|
[p]: "separator",
|
|
29
29
|
"data-orientation": r,
|
|
30
30
|
role: a ? "separator" : void 0,
|
|
31
31
|
"aria-orientation": a ? r : void 0,
|
|
32
32
|
"aria-hidden": o ? "true" : void 0,
|
|
33
|
-
className:
|
|
34
|
-
...
|
|
35
|
-
}
|
|
33
|
+
className: f(l[r], t),
|
|
34
|
+
...s
|
|
35
|
+
},
|
|
36
|
+
void 0,
|
|
37
|
+
!1,
|
|
38
|
+
{
|
|
39
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/separator/separator.tsx",
|
|
40
|
+
lineNumber: 65,
|
|
41
|
+
columnNumber: 7
|
|
42
|
+
},
|
|
43
|
+
this
|
|
36
44
|
);
|
|
37
45
|
}
|
|
38
46
|
);
|
|
39
47
|
export {
|
|
40
|
-
|
|
48
|
+
k as Separator
|
|
41
49
|
};
|
|
42
50
|
//# sourceMappingURL=separator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator.js","sources":["../../../src/components/separator/separator.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\n/**\n * Separator — v1's `@radix-ui/react-separator` ported to Griffel atoms with no Radix dependency.\n *\n * A separator needs no behaviour beyond correct semantics, so it is a plain `<div>`. The two\n * orientation variants are separate style slots selected in JS from the `orientation` prop — we\n * deliberately do NOT style off a `data-[orientation=...]` attribute, like v1 does. v1 keyed its\n * sizing on `data-[orientation=horizontal]`; doing that here would either key on `data-slot`-style\n * selectors (whose values are shared with v1, so the rule also matches v1-rendered DOM) or on the\n * custom-property slot marker. Two slots in the style object is simpler and cheaper. We still emit\n * `data-orientation` as a plain attribute — for diagnostics and for consumers — we just never style\n * off it.\n *\n * The accessibility surface is the whole point of the component, so it gets the full treatment:\n * - `decorative` (default `true`): the divider is purely presentational, so it is hidden from\n * assistive technology with `aria-hidden=\"true\"` and carries no `role`.\n * - `decorative={false}`: a meaningful separator, so it gets `role=\"separator\"` and\n * `aria-orientation` matching the `orientation` prop.\n */\n\nexport type SeparatorOrientation = \"horizontal\" | \"vertical\"\n\nconst useStyles = makeVoltStyles({\n horizontal: {\n backgroundColor: tokens.grayA5,\n flexShrink: 0,\n height: \"1px\",\n width: \"100%\",\n },\n vertical: {\n backgroundColor: tokens.grayA5,\n flexShrink: 0,\n height: \"100%\",\n width: \"1px\",\n },\n})\n\nexport type SeparatorProps = React.ComponentProps<\"div\"> & {\n orientation?: SeparatorOrientation\n /**\n * When `true` the separator is purely decorative and is hidden from assistive technology\n * (`aria-hidden=\"true\"`, no `role`). When `false` it is a meaningful separator and gets\n * `role=\"separator\"` plus `aria-orientation`.\n */\n decorative?: boolean\n}\n\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n function Separator(\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) {\n const styles = useStyles()\n\n const meaningful = !decorative\n\n return (\n <div\n ref={ref}\n data-slot=\"separator\"\n {...{ [SLOT_ATTR]: \"separator\" }}\n data-orientation={orientation}\n role={meaningful ? \"separator\" : undefined}\n aria-orientation={meaningful ? orientation : undefined}\n aria-hidden={decorative ? \"true\" : undefined}\n className={mergeClasses(styles[orientation], className)}\n {...props}\n />\n )\n }\n)\n"],"names":["useStyles","makeVoltStyles","tokens.grayA5","Separator","React","className","orientation","decorative","props","ref","styles","meaningful","
|
|
1
|
+
{"version":3,"file":"separator.js","sources":["../../../src/components/separator/separator.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\n/**\n * Separator — v1's `@radix-ui/react-separator` ported to Griffel atoms with no Radix dependency.\n *\n * A separator needs no behaviour beyond correct semantics, so it is a plain `<div>`. The two\n * orientation variants are separate style slots selected in JS from the `orientation` prop — we\n * deliberately do NOT style off a `data-[orientation=...]` attribute, like v1 does. v1 keyed its\n * sizing on `data-[orientation=horizontal]`; doing that here would either key on `data-slot`-style\n * selectors (whose values are shared with v1, so the rule also matches v1-rendered DOM) or on the\n * custom-property slot marker. Two slots in the style object is simpler and cheaper. We still emit\n * `data-orientation` as a plain attribute — for diagnostics and for consumers — we just never style\n * off it.\n *\n * The accessibility surface is the whole point of the component, so it gets the full treatment:\n * - `decorative` (default `true`): the divider is purely presentational, so it is hidden from\n * assistive technology with `aria-hidden=\"true\"` and carries no `role`.\n * - `decorative={false}`: a meaningful separator, so it gets `role=\"separator\"` and\n * `aria-orientation` matching the `orientation` prop.\n */\n\nexport type SeparatorOrientation = \"horizontal\" | \"vertical\"\n\nconst useStyles = makeVoltStyles({\n horizontal: {\n backgroundColor: tokens.grayA5,\n flexShrink: 0,\n height: \"1px\",\n width: \"100%\",\n },\n vertical: {\n backgroundColor: tokens.grayA5,\n flexShrink: 0,\n height: \"100%\",\n width: \"1px\",\n },\n})\n\nexport type SeparatorProps = React.ComponentProps<\"div\"> & {\n orientation?: SeparatorOrientation\n /**\n * When `true` the separator is purely decorative and is hidden from assistive technology\n * (`aria-hidden=\"true\"`, no `role`). When `false` it is a meaningful separator and gets\n * `role=\"separator\"` plus `aria-orientation`.\n */\n decorative?: boolean\n}\n\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n function Separator(\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) {\n const styles = useStyles()\n\n const meaningful = !decorative\n\n return (\n <div\n ref={ref}\n data-slot=\"separator\"\n {...{ [SLOT_ATTR]: \"separator\" }}\n data-orientation={orientation}\n role={meaningful ? \"separator\" : undefined}\n aria-orientation={meaningful ? orientation : undefined}\n aria-hidden={decorative ? \"true\" : undefined}\n className={mergeClasses(styles[orientation], className)}\n {...props}\n />\n )\n }\n)\n"],"names":["useStyles","makeVoltStyles","tokens.grayA5","Separator","React","className","orientation","decorative","props","ref","styles","meaningful","jsxDEV","SLOT_ATTR","mergeClasses"],"mappings":";;;;;;AA6BA,MAAMA,IAAYC,EAAe;AAAA,EAC/B,YAAY;AAAA,IACV,iBAAiBC;AAAAA,IACjB,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,UAAU;AAAA,IACR,iBAAiBA;AAAAA,IACjB,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,CAAC,GAYYC,IAAYC,EAAM;AAAA,EAC7B,SACE,EAAE,WAAAC,GAAW,aAAAC,IAAc,cAAc,YAAAC,IAAa,IAAM,GAAGC,EAAA,GAC/DC,GACA;AACA,UAAMC,IAASV,EAAA,GAETW,IAAa,CAACJ;AAEpB,WACEK,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAH;AAAA,QACA,aAAU;AAAA,QACJ,CAACI,CAAS,GAAG;AAAA,QACnB,oBAAkBP;AAAA,QAClB,MAAMK,IAAa,cAAc;AAAA,QACjC,oBAAkBA,IAAaL,IAAc;AAAA,QAC7C,eAAaC,IAAa,SAAS;AAAA,QACnC,WAAWO,EAAaJ,EAAOJ,CAAW,GAAGD,CAAS;AAAA,QACrD,GAAGG;AAAA,MAAA;AAAA,MATN;AAAA,MAAA;AAAA,MAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAYJ;AACF;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
import { shorthands as
|
|
1
|
+
import { j as a } from "../../vendor/react/jsx-dev-runtime.js";
|
|
2
|
+
import * as c from "react";
|
|
3
|
+
import { shorthands as n } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/index.js";
|
|
4
4
|
import { SLOT_ATTR as m } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
5
5
|
import { mergeClasses as t } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
6
6
|
import { makeVoltStyles as p } from "../../styles/make-styles.js";
|
|
7
|
-
import { indigoA4 as f, pinkA4 as
|
|
8
|
-
import {
|
|
9
|
-
const
|
|
7
|
+
import { radiusMd as u, indigoA4 as f, pinkA4 as d, purpleA4 as g, gray3 as k, gray4 as N } from "../../tokens/index.js";
|
|
8
|
+
import { useVoltPaletteTokensWhen as b } from "../../tokens/use-palette-tokens.js";
|
|
9
|
+
const x = p({
|
|
10
10
|
default: {
|
|
11
|
-
backgroundColor:
|
|
12
|
-
...
|
|
11
|
+
backgroundColor: N,
|
|
12
|
+
...n.borderRadius(u),
|
|
13
13
|
animationName: {
|
|
14
14
|
"0%,100%": { opacity: 1 },
|
|
15
15
|
"50%": { opacity: 0.5 }
|
|
@@ -19,21 +19,21 @@ const T = p({
|
|
|
19
19
|
animationIterationCount: "infinite"
|
|
20
20
|
},
|
|
21
21
|
ai: {
|
|
22
|
-
backgroundColor:
|
|
23
|
-
...
|
|
22
|
+
backgroundColor: k,
|
|
23
|
+
...n.borderRadius(u),
|
|
24
24
|
position: "relative",
|
|
25
|
-
...
|
|
25
|
+
...n.overflow("hidden")
|
|
26
26
|
},
|
|
27
27
|
spot: {
|
|
28
28
|
position: "absolute",
|
|
29
29
|
inset: "-50%",
|
|
30
|
-
...
|
|
30
|
+
...n.borderRadius("50%"),
|
|
31
31
|
opacity: 0.6,
|
|
32
32
|
filter: "blur(18px)",
|
|
33
33
|
pointerEvents: "none"
|
|
34
34
|
},
|
|
35
35
|
spot1: {
|
|
36
|
-
backgroundImage: `radial-gradient(circle, ${
|
|
36
|
+
backgroundImage: `radial-gradient(circle, ${g} 0%, transparent 65%)`,
|
|
37
37
|
animationName: {
|
|
38
38
|
"0%,100%": { transform: "translate(-20%, 0%) scale(1)" },
|
|
39
39
|
"33%": { transform: "translate(40%, -25%) scale(1.2)" },
|
|
@@ -44,7 +44,7 @@ const T = p({
|
|
|
44
44
|
animationIterationCount: "infinite"
|
|
45
45
|
},
|
|
46
46
|
spot2: {
|
|
47
|
-
backgroundImage: `radial-gradient(circle, ${
|
|
47
|
+
backgroundImage: `radial-gradient(circle, ${d} 0%, transparent 65%)`,
|
|
48
48
|
animationName: {
|
|
49
49
|
"0%,100%": { transform: "translate(20%, 0%) scale(1.1)" },
|
|
50
50
|
"33%": { transform: "translate(-35%, 25%) scale(0.9)" },
|
|
@@ -65,57 +65,97 @@ const T = p({
|
|
|
65
65
|
animationTimingFunction: "ease-in-out",
|
|
66
66
|
animationIterationCount: "infinite"
|
|
67
67
|
}
|
|
68
|
-
}),
|
|
69
|
-
function({ variant:
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
return
|
|
68
|
+
}), E = c.forwardRef(
|
|
69
|
+
function({ variant: i = "default", className: o, children: s, ...r }, l) {
|
|
70
|
+
b(i === "ai");
|
|
71
|
+
const e = x();
|
|
72
|
+
return i === "ai" ? /* @__PURE__ */ a.jsxDEV(
|
|
73
73
|
"div",
|
|
74
74
|
{
|
|
75
|
-
ref:
|
|
75
|
+
ref: l,
|
|
76
76
|
"data-slot": "skeleton",
|
|
77
77
|
[m]: "skeleton",
|
|
78
|
-
className: t(
|
|
78
|
+
className: t(e.ai, o),
|
|
79
79
|
...r,
|
|
80
80
|
children: [
|
|
81
|
-
/* @__PURE__ */
|
|
81
|
+
/* @__PURE__ */ a.jsxDEV(
|
|
82
82
|
"span",
|
|
83
83
|
{
|
|
84
84
|
"aria-hidden": "true",
|
|
85
|
-
className: t(
|
|
86
|
-
}
|
|
85
|
+
className: t(e.spot, e.spot1)
|
|
86
|
+
},
|
|
87
|
+
void 0,
|
|
88
|
+
!1,
|
|
89
|
+
{
|
|
90
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/skeleton/skeleton.tsx",
|
|
91
|
+
lineNumber: 119,
|
|
92
|
+
columnNumber: 11
|
|
93
|
+
},
|
|
94
|
+
this
|
|
87
95
|
),
|
|
88
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ a.jsxDEV(
|
|
89
97
|
"span",
|
|
90
98
|
{
|
|
91
99
|
"aria-hidden": "true",
|
|
92
|
-
className: t(
|
|
93
|
-
}
|
|
100
|
+
className: t(e.spot, e.spot2)
|
|
101
|
+
},
|
|
102
|
+
void 0,
|
|
103
|
+
!1,
|
|
104
|
+
{
|
|
105
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/skeleton/skeleton.tsx",
|
|
106
|
+
lineNumber: 123,
|
|
107
|
+
columnNumber: 11
|
|
108
|
+
},
|
|
109
|
+
this
|
|
94
110
|
),
|
|
95
|
-
/* @__PURE__ */
|
|
111
|
+
/* @__PURE__ */ a.jsxDEV(
|
|
96
112
|
"span",
|
|
97
113
|
{
|
|
98
114
|
"aria-hidden": "true",
|
|
99
|
-
className: t(
|
|
100
|
-
}
|
|
115
|
+
className: t(e.spot, e.spot3)
|
|
116
|
+
},
|
|
117
|
+
void 0,
|
|
118
|
+
!1,
|
|
119
|
+
{
|
|
120
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/skeleton/skeleton.tsx",
|
|
121
|
+
lineNumber: 127,
|
|
122
|
+
columnNumber: 11
|
|
123
|
+
},
|
|
124
|
+
this
|
|
101
125
|
),
|
|
102
|
-
|
|
126
|
+
s
|
|
103
127
|
]
|
|
104
|
-
}
|
|
105
|
-
|
|
128
|
+
},
|
|
129
|
+
void 0,
|
|
130
|
+
!0,
|
|
131
|
+
{
|
|
132
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/skeleton/skeleton.tsx",
|
|
133
|
+
lineNumber: 112,
|
|
134
|
+
columnNumber: 9
|
|
135
|
+
},
|
|
136
|
+
this
|
|
137
|
+
) : /* @__PURE__ */ a.jsxDEV(
|
|
106
138
|
"div",
|
|
107
139
|
{
|
|
108
|
-
ref:
|
|
140
|
+
ref: l,
|
|
109
141
|
"data-slot": "skeleton",
|
|
110
142
|
[m]: "skeleton",
|
|
111
|
-
className: t(
|
|
143
|
+
className: t(e.default, o),
|
|
112
144
|
...r,
|
|
113
|
-
children:
|
|
114
|
-
}
|
|
145
|
+
children: s
|
|
146
|
+
},
|
|
147
|
+
void 0,
|
|
148
|
+
!1,
|
|
149
|
+
{
|
|
150
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/skeleton/skeleton.tsx",
|
|
151
|
+
lineNumber: 137,
|
|
152
|
+
columnNumber: 7
|
|
153
|
+
},
|
|
154
|
+
this
|
|
115
155
|
);
|
|
116
156
|
}
|
|
117
157
|
);
|
|
118
158
|
export {
|
|
119
|
-
|
|
159
|
+
E as Skeleton
|
|
120
160
|
};
|
|
121
161
|
//# sourceMappingURL=skeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.js","sources":["../../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import * as React from \"react\"\n\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\"\nimport {
|
|
1
|
+
{"version":3,"file":"skeleton.js","sources":["../../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import * as React from \"react\"\n\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\"\nimport { useVoltPaletteTokensWhen } from \"../../tokens/use-palette-tokens\"\n\n/**\n * Skeleton — v1's loading placeholder ported to Griffel atoms.\n *\n * Two variants, `default` and `ai`. `default` is a gray block that pulses; `ai` is a gray field\n * that renders three decorative colour spots drifting behind the content. The spots are ported from\n * v1's global `skeleton-ai-spot-*` classes in `styles/utilities.css`, including their exact\n * gradients, durations (10s / 12s / 14s) and easing.\n *\n * The keyframes are the object form, so Griffel hashes each one from its content — a hand-authored\n * global `@keyframes` would collide across two co-resident copies of this package. The pulse is a\n * single three-stop animation; each spot carries its own.\n *\n * The spots are `purple-a4`, `pink-a4` and `indigo-a4`, none of which is a core token family\n * (accent / gray / error / warning / success / info ship in the core sheet; everything else lives\n * in the palette sheet, which is not loaded by default). `ai` therefore calls\n * `ensurePaletteTokens()` — CONVENTIONS rule 3. There is no `color` prop, so no inline custom\n * properties: the spot colours are constant and live inside the style objects.\n */\n\nexport type SkeletonVariant = \"default\" | \"ai\"\n\nconst useStyles = makeVoltStyles({\n default: {\n backgroundColor: tokens.gray4,\n ...shorthands.borderRadius(tokens.radiusMd),\n animationName: {\n \"0%,100%\": { opacity: 1 },\n \"50%\": { opacity: 0.5 },\n },\n animationDuration: \"2s\",\n animationTimingFunction: \"cubic-bezier(0.4,0,0.6,1)\",\n animationIterationCount: \"infinite\",\n },\n ai: {\n backgroundColor: tokens.gray3,\n ...shorthands.borderRadius(tokens.radiusMd),\n position: \"relative\",\n ...shorthands.overflow(\"hidden\"),\n },\n spot: {\n position: \"absolute\",\n inset: \"-50%\",\n ...shorthands.borderRadius(\"50%\"),\n opacity: 0.6,\n filter: \"blur(18px)\",\n pointerEvents: \"none\",\n },\n spot1: {\n backgroundImage: `radial-gradient(circle, ${tokens.purpleA4} 0%, transparent 65%)`,\n animationName: {\n \"0%,100%\": { transform: \"translate(-20%, 0%) scale(1)\" },\n \"33%\": { transform: \"translate(40%, -25%) scale(1.2)\" },\n \"66%\": { transform: \"translate(-10%, 30%) scale(0.9)\" },\n },\n animationDuration: \"10s\",\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n },\n spot2: {\n backgroundImage: `radial-gradient(circle, ${tokens.pinkA4} 0%, transparent 65%)`,\n animationName: {\n \"0%,100%\": { transform: \"translate(20%, 0%) scale(1.1)\" },\n \"33%\": { transform: \"translate(-35%, 25%) scale(0.9)\" },\n \"66%\": { transform: \"translate(30%, -20%) scale(1.3)\" },\n },\n animationDuration: \"12s\",\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n },\n spot3: {\n backgroundImage: `radial-gradient(circle, ${tokens.indigoA4} 0%, transparent 65%)`,\n animationName: {\n \"0%,100%\": { transform: \"translate(0%, 20%) scale(1)\" },\n \"33%\": { transform: \"translate(25%, -30%) scale(1.2)\" },\n \"66%\": { transform: \"translate(-30%, 10%) scale(0.8)\" },\n },\n animationDuration: \"14s\",\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n },\n})\n\nexport type SkeletonProps = React.ComponentProps<\"div\"> & {\n variant?: SkeletonVariant\n}\n\nexport const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n function Skeleton(\n { variant = \"default\", className, children, ...props },\n ref\n ) {\n // The decorative families live in the palette sheet, which is not installed by default\n // (CONVENTIONS rule 3). Only the `ai` variant paints them — purple-a4, pink-a4, indigo-a4.\n // The hook is called unconditionally every render (WP2B2 — hook order); the `variant === \"ai\"`\n // branch lives inside its commit-phase effect, not around this call, so the default variant\n // still installs nothing it never reads.\n useVoltPaletteTokensWhen(variant === \"ai\")\n\n const styles = useStyles()\n\n if (variant === \"ai\") {\n return (\n <div\n ref={ref}\n data-slot=\"skeleton\"\n {...{ [SLOT_ATTR]: \"skeleton\" }}\n className={mergeClasses(styles.ai, className)}\n {...props}\n >\n <span\n aria-hidden=\"true\"\n className={mergeClasses(styles.spot, styles.spot1)}\n />\n <span\n aria-hidden=\"true\"\n className={mergeClasses(styles.spot, styles.spot2)}\n />\n <span\n aria-hidden=\"true\"\n className={mergeClasses(styles.spot, styles.spot3)}\n />\n {children}\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"skeleton\"\n {...{ [SLOT_ATTR]: \"skeleton\" }}\n className={mergeClasses(styles.default, className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\n"],"names":["useStyles","makeVoltStyles","tokens.gray4","shorthands","tokens.radiusMd","tokens.gray3","tokens.purpleA4","tokens.pinkA4","tokens.indigoA4","Skeleton","React","variant","className","children","props","ref","useVoltPaletteTokensWhen","styles","jsxDEV","SLOT_ATTR","mergeClasses"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { j as e } from "../../vendor/react/jsx-dev-runtime.js";
|
|
2
2
|
import * as o from "react";
|
|
3
|
-
import { SLOT_ATTR as
|
|
4
|
-
import { mergeClasses as
|
|
5
|
-
import { makeVoltStyles as
|
|
6
|
-
const
|
|
3
|
+
import { SLOT_ATTR as a } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
4
|
+
import { mergeClasses as l } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
5
|
+
import { makeVoltStyles as m } from "../../styles/make-styles.js";
|
|
6
|
+
const c = m({
|
|
7
7
|
sm: {
|
|
8
8
|
width: "1rem",
|
|
9
9
|
height: "1rem"
|
|
@@ -52,13 +52,13 @@ const l = c({
|
|
|
52
52
|
animationTimingFunction: "ease-in-out",
|
|
53
53
|
animationIterationCount: "infinite"
|
|
54
54
|
}
|
|
55
|
-
}),
|
|
56
|
-
function({ size:
|
|
57
|
-
const
|
|
58
|
-
return /* @__PURE__ */ e(
|
|
55
|
+
}), x = o.forwardRef(
|
|
56
|
+
function({ size: r = "base", className: s, ...n }, t) {
|
|
57
|
+
const i = c();
|
|
58
|
+
return /* @__PURE__ */ e.jsxDEV(
|
|
59
59
|
"svg",
|
|
60
60
|
{
|
|
61
|
-
ref:
|
|
61
|
+
ref: t,
|
|
62
62
|
xmlns: "http://www.w3.org/2000/svg",
|
|
63
63
|
width: "24",
|
|
64
64
|
height: "24",
|
|
@@ -67,29 +67,53 @@ const l = c({
|
|
|
67
67
|
stroke: "currentColor",
|
|
68
68
|
role: "status",
|
|
69
69
|
"data-slot": "spinner",
|
|
70
|
-
[
|
|
71
|
-
className:
|
|
70
|
+
[a]: "spinner",
|
|
71
|
+
className: l(i[r], s),
|
|
72
72
|
...n,
|
|
73
|
-
children: /* @__PURE__ */
|
|
74
|
-
/* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "9.5", strokeWidth: "3", opacity: "0.1" }
|
|
75
|
-
|
|
73
|
+
children: /* @__PURE__ */ e.jsxDEV("g", { className: i.spin, children: [
|
|
74
|
+
/* @__PURE__ */ e.jsxDEV("circle", { cx: "12", cy: "12", r: "9.5", strokeWidth: "3", opacity: "0.1" }, void 0, !1, {
|
|
75
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/spinner/spinner.tsx",
|
|
76
|
+
lineNumber: 105,
|
|
77
|
+
columnNumber: 11
|
|
78
|
+
}, this),
|
|
79
|
+
/* @__PURE__ */ e.jsxDEV(
|
|
76
80
|
"circle",
|
|
77
81
|
{
|
|
78
|
-
className:
|
|
82
|
+
className: i.dash,
|
|
79
83
|
cx: "12",
|
|
80
84
|
cy: "12",
|
|
81
85
|
r: "9.5",
|
|
82
86
|
strokeWidth: "3",
|
|
83
87
|
strokeLinecap: "round",
|
|
84
88
|
fill: "none"
|
|
85
|
-
}
|
|
89
|
+
},
|
|
90
|
+
void 0,
|
|
91
|
+
!1,
|
|
92
|
+
{
|
|
93
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/spinner/spinner.tsx",
|
|
94
|
+
lineNumber: 106,
|
|
95
|
+
columnNumber: 11
|
|
96
|
+
},
|
|
97
|
+
this
|
|
86
98
|
)
|
|
87
|
-
] }
|
|
88
|
-
|
|
99
|
+
] }, void 0, !0, {
|
|
100
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/spinner/spinner.tsx",
|
|
101
|
+
lineNumber: 104,
|
|
102
|
+
columnNumber: 9
|
|
103
|
+
}, this)
|
|
104
|
+
},
|
|
105
|
+
void 0,
|
|
106
|
+
!1,
|
|
107
|
+
{
|
|
108
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/spinner/spinner.tsx",
|
|
109
|
+
lineNumber: 90,
|
|
110
|
+
columnNumber: 7
|
|
111
|
+
},
|
|
112
|
+
this
|
|
89
113
|
);
|
|
90
114
|
}
|
|
91
115
|
);
|
|
92
116
|
export {
|
|
93
|
-
|
|
117
|
+
x as Spinner
|
|
94
118
|
};
|
|
95
119
|
//# sourceMappingURL=spinner.js.map
|
|
@@ -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/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } 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: `size`\n * is the supported API and the `@deprecated` tag is dropped (CONVENTIONS rule 9).\n *\n * The SVG markup, `viewBox` and stroke attributes are copied exactly from v1. Both animations are\n * the object form per CONVENTIONS rule 8: the outer `<g>` spins from a single `100%` stop, and the\n * dash sweep carries all three of v1's keyframe stops (`0%`, `47.5%`, `95%,100%`) from\n * `styles/animations.css`. The only mechanical changes are stylistic: sizes become width/height\n * atoms and the two `animate-*` classes become `animationName` + duration + timing + iteration.\n *\n * The five dimensions (1rem / 1.5rem / 2.5rem / 4rem / 6rem) are v1's Tailwind `size-N` values;\n * the v2 token set has no size or width/height family, so they are literals (CONVENTIONS rule 1).\n *\n * v1 also exposes a `variant` prop (`circle` | `line`) whose branches are both empty strings — it\n * produces no styles at all, so it is omitted here.\n */\n\nexport type SpinnerSize = \"sm\" | \"base\" | \"lg\" | \"xl\" | \"2xl\"\n\nconst useStyles = makeVoltStyles({\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","makeVoltStyles","Spinner","React","size","className","props","ref","styles","
|
|
1
|
+
{"version":3,"file":"spinner.js","sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } 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: `size`\n * is the supported API and the `@deprecated` tag is dropped (CONVENTIONS rule 9).\n *\n * The SVG markup, `viewBox` and stroke attributes are copied exactly from v1. Both animations are\n * the object form per CONVENTIONS rule 8: the outer `<g>` spins from a single `100%` stop, and the\n * dash sweep carries all three of v1's keyframe stops (`0%`, `47.5%`, `95%,100%`) from\n * `styles/animations.css`. The only mechanical changes are stylistic: sizes become width/height\n * atoms and the two `animate-*` classes become `animationName` + duration + timing + iteration.\n *\n * The five dimensions (1rem / 1.5rem / 2.5rem / 4rem / 6rem) are v1's Tailwind `size-N` values;\n * the v2 token set has no size or width/height family, so they are literals (CONVENTIONS rule 1).\n *\n * v1 also exposes a `variant` prop (`circle` | `line`) whose branches are both empty strings — it\n * produces no styles at all, so it is omitted here.\n */\n\nexport type SpinnerSize = \"sm\" | \"base\" | \"lg\" | \"xl\" | \"2xl\"\n\nconst useStyles = makeVoltStyles({\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","makeVoltStyles","Spinner","React","size","className","props","ref","styles","jsxDEV","SLOT_ATTR","mergeClasses"],"mappings":";;;;;AA6BA,MAAMA,IAAYC,EAAe;AAAA,EAC/B,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,WACES,gBAAAA,EAAAA;AAAAA,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,UAAAG,gBAAAA,EAAAA,OAAC,KAAA,EAAE,WAAWD,EAAO,MACnB,UAAA;AAAA,UAAAC,gBAAAA,EAAAA,OAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,OAAM,aAAY,KAAI,SAAQ,MAAA,GAAxD,QAAA,IAAA;AAAA,YAAA,UAAA;AAAA,YAAA,YAAA;AAAA,YAAA,cAAA;AAAA,UAAA,GAAA,IAA8D;AAAA,UAC9DA,gBAAAA,EAAAA;AAAAA,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,YAPP;AAAA,YAAA;AAAA,YAAA;AAAA,cAAA,UAAA;AAAA,cAAA,YAAA;AAAA,cAAA,cAAA;AAAA,YAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAQA,EAAA,GAVF,QAAA,IAAA;AAAA,UAAA,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,cAAA;AAAA,QAAA,GAAA,IAWA;AAAA,MAAA;AAAA,MAzBF;AAAA,MAAA;AAAA,MAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EA4BJ;AACF;"}
|