@galaxy-io/dls 1.6.1 → 2.0.1
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/README.md +47 -50
- package/biome/index.json +74 -0
- package/biome/plugins/no-hex-literal.grit +20 -0
- package/biome/plugins/no-inline-style.grit +13 -0
- package/biome/plugins/no-margin.grit +9 -0
- package/biome/plugins/warn/no-hex-literal.grit +23 -0
- package/biome/plugins/warn/no-inline-style.grit +13 -0
- package/biome/plugins/warn/no-margin.grit +9 -0
- package/dist/a11y/FocusScope.d.ts +44 -0
- package/dist/a11y/FocusScope.js +229 -0
- package/dist/a11y/VisuallyHidden.d.ts +21 -0
- package/dist/a11y/VisuallyHidden.js +30 -0
- package/dist/avatar/Avatar.d.ts +56 -14
- package/dist/avatar/Avatar.js +250 -96
- package/dist/avatar/AvatarGroup.d.ts +43 -0
- package/dist/avatar/AvatarGroup.js +153 -0
- package/dist/backgrounds/GridBackground.d.ts +48 -0
- package/dist/backgrounds/GridBackground.js +146 -0
- package/dist/beacons/Beacon.d.ts +86 -22
- package/dist/beacons/Beacon.js +170 -47
- package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
- package/dist/brand/GalaxyFilamentWordmark.js +39 -0
- package/dist/brand/GalaxyLogomark.d.ts +26 -0
- package/dist/brand/GalaxyLogomark.js +41 -0
- package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
- package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
- package/dist/brand/GalaxyWordmark.d.ts +30 -0
- package/dist/brand/GalaxyWordmark.js +63 -0
- package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
- package/dist/brand/brandMark.d.ts +26 -0
- package/dist/brand/brandMark.js +35 -0
- package/dist/buttons/Button.d.ts +148 -59
- package/dist/buttons/Button.js +437 -227
- package/dist/buttons/ButtonGroup.d.ts +38 -0
- package/dist/buttons/ButtonGroup.js +68 -0
- package/dist/buttons/CopyButton.d.ts +77 -0
- package/dist/buttons/CopyButton.js +65 -0
- package/dist/charts/AreaChart.d.ts +49 -0
- package/dist/charts/AreaChart.js +31 -0
- package/dist/charts/BarChart.d.ts +54 -67
- package/dist/charts/BarChart.js +160 -124
- package/dist/charts/ChartAxis.d.ts +35 -40
- package/dist/charts/ChartAxis.js +114 -90
- package/dist/charts/ChartCategoryTargets.d.ts +12 -26
- package/dist/charts/ChartCategoryTargets.js +33 -20
- package/dist/charts/ChartFrame.d.ts +71 -116
- package/dist/charts/ChartFrame.js +306 -97
- package/dist/charts/ChartGroupProvider.d.ts +30 -41
- package/dist/charts/ChartGroupProvider.js +20 -7
- package/dist/charts/ChartLegend.d.ts +37 -48
- package/dist/charts/ChartLegend.js +243 -125
- package/dist/charts/ChartMarkTargets.d.ts +12 -28
- package/dist/charts/ChartMarkTargets.js +34 -20
- package/dist/charts/ChartPrimitives.d.ts +50 -305
- package/dist/charts/ChartPrimitives.js +65 -413
- package/dist/charts/ChartTooltip.d.ts +20 -26
- package/dist/charts/ChartTooltip.js +77 -40
- package/dist/charts/Heatmap.d.ts +35 -0
- package/dist/charts/Heatmap.js +307 -0
- package/dist/charts/LineChart.d.ts +54 -47
- package/dist/charts/LineChart.js +174 -121
- package/dist/charts/PieChart.d.ts +32 -53
- package/dist/charts/PieChart.js +159 -136
- package/dist/charts/Sparkline.d.ts +107 -0
- package/dist/charts/Sparkline.js +244 -0
- package/dist/charts/StatChart.d.ts +37 -13
- package/dist/charts/StatChart.js +82 -35
- package/dist/charts/barChartGeometry.d.ts +138 -86
- package/dist/charts/barChartGeometry.js +122 -101
- package/dist/charts/barChartLegend.d.ts +14 -18
- package/dist/charts/barChartLegend.js +18 -13
- package/dist/charts/chartFormat.d.ts +12 -18
- package/dist/charts/chartFormat.js +20 -52
- package/dist/charts/chartPalette.d.ts +33 -0
- package/dist/charts/chartPalette.js +68 -0
- package/dist/charts/chartScales.d.ts +41 -108
- package/dist/charts/chartScales.js +62 -128
- package/dist/charts/chartSelection.d.ts +15 -0
- package/dist/charts/chartSelection.js +22 -0
- package/dist/charts/constants.d.ts +100 -256
- package/dist/charts/constants.js +109 -275
- package/dist/charts/heatmapGeometry.d.ts +95 -0
- package/dist/charts/heatmapGeometry.js +155 -0
- package/dist/charts/lineChartGeometry.d.ts +108 -58
- package/dist/charts/lineChartGeometry.js +120 -78
- package/dist/charts/pieChartGeometry.d.ts +66 -40
- package/dist/charts/pieChartGeometry.js +68 -38
- package/dist/charts/types.d.ts +206 -466
- package/dist/charts/types.js +55 -144
- package/dist/charts/useCartesianChartLayout.d.ts +28 -59
- package/dist/charts/useCartesianChartLayout.js +47 -32
- package/dist/charts/useChartDimensions.d.ts +19 -40
- package/dist/charts/useChartDimensions.js +40 -56
- package/dist/charts/useChartFormatters.d.ts +6 -15
- package/dist/charts/useChartFormatters.js +4 -9
- package/dist/charts/useChartInteraction.d.ts +69 -116
- package/dist/charts/useChartInteraction.js +148 -78
- package/dist/charts/useChartTooltipPosition.d.ts +29 -39
- package/dist/charts/useChartTooltipPosition.js +14 -5
- package/dist/charts/useSeriesColorResolver.d.ts +11 -33
- package/dist/charts/useSeriesColorResolver.js +19 -12
- package/dist/chips/Chip.d.ts +155 -44
- package/dist/chips/Chip.js +329 -155
- package/dist/chips/ChipGroup.d.ts +53 -0
- package/dist/chips/ChipGroup.js +98 -0
- package/dist/drawer/Drawer.d.ts +83 -17
- package/dist/drawer/Drawer.js +399 -65
- package/dist/dropdown/Dropdown.d.ts +80 -63
- package/dist/dropdown/Dropdown.js +127 -129
- package/dist/editor/CodeEditor.d.ts +119 -40
- package/dist/editor/CodeEditor.js +490 -400
- package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
- package/dist/editor/CodeEditorReactWidget.js +28 -21
- package/dist/feedback/Alert.d.ts +49 -0
- package/dist/feedback/Alert.js +172 -0
- package/dist/feedback/EmptyState.d.ts +39 -0
- package/dist/feedback/EmptyState.js +109 -0
- package/dist/feedback/ProgressBar.d.ts +125 -0
- package/dist/feedback/ProgressBar.js +183 -0
- package/dist/feedback/ProgressCircle.d.ts +99 -0
- package/dist/feedback/ProgressCircle.js +187 -0
- package/dist/feedback/Skeleton.d.ts +69 -0
- package/dist/feedback/Skeleton.js +130 -0
- package/dist/feedback/Spinner.d.ts +63 -0
- package/dist/feedback/Spinner.js +141 -0
- package/dist/fonts.css +70 -0
- package/dist/hooks/internal/useIsClient.d.ts +2 -0
- package/dist/hooks/internal/useIsClient.js +14 -0
- package/dist/hooks/useClipboard.d.ts +19 -0
- package/dist/hooks/useClipboard.js +45 -0
- package/dist/hooks/useControlledOpenState.d.ts +21 -0
- package/dist/hooks/useControlledOpenState.js +19 -0
- package/dist/hooks/useControlledState.d.ts +19 -0
- package/dist/hooks/useControlledState.js +22 -0
- package/dist/hooks/useDebouncedValue.d.ts +14 -0
- package/dist/hooks/useDebouncedValue.js +33 -0
- package/dist/hooks/useDisclosure.d.ts +26 -0
- package/dist/hooks/useDisclosure.js +36 -0
- package/dist/hooks/useDismiss.d.ts +23 -27
- package/dist/hooks/useDismiss.js +39 -27
- package/dist/hooks/useElementClientSize.d.ts +10 -10
- package/dist/hooks/useElementClientSize.js +8 -11
- package/dist/hooks/useElementWidth.d.ts +6 -13
- package/dist/hooks/useElementWidth.js +6 -14
- package/dist/hooks/useField.d.ts +47 -0
- package/dist/hooks/useField.js +40 -0
- package/dist/hooks/useHotkey.d.ts +77 -0
- package/dist/hooks/useHotkey.js +246 -0
- package/dist/hooks/useIsMac.d.ts +12 -0
- package/dist/hooks/useIsMac.js +27 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
- package/dist/hooks/useLocalStorage.d.ts +28 -0
- package/dist/hooks/useLocalStorage.js +145 -0
- package/dist/hooks/useMediaQuery.d.ts +11 -0
- package/dist/hooks/useMediaQuery.js +23 -0
- package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
- package/dist/hooks/usePrefersReducedMotion.js +25 -0
- package/dist/hooks/useResize.d.ts +42 -62
- package/dist/hooks/useResize.js +43 -31
- package/dist/icons/Icon.d.ts +64 -37
- package/dist/icons/Icon.js +96 -37
- package/dist/icons/internal/IconSlot.d.ts +10 -0
- package/dist/icons/internal/IconSlot.js +32 -0
- package/dist/inputs/CheckboxGroup.d.ts +115 -0
- package/dist/inputs/CheckboxGroup.js +183 -0
- package/dist/inputs/CheckboxInput.d.ts +98 -28
- package/dist/inputs/CheckboxInput.js +218 -88
- package/dist/inputs/ColorInput.d.ts +115 -29
- package/dist/inputs/ColorInput.js +748 -326
- package/dist/inputs/CopyInput.d.ts +49 -20
- package/dist/inputs/CopyInput.js +57 -49
- package/dist/inputs/CronInput.d.ts +94 -0
- package/dist/inputs/CronInput.js +618 -0
- package/dist/inputs/DateInput.d.ts +175 -28
- package/dist/inputs/DateInput.js +1109 -451
- package/dist/inputs/DurationInput.d.ts +101 -0
- package/dist/inputs/DurationInput.js +441 -0
- package/dist/inputs/Field.d.ts +75 -0
- package/dist/inputs/Field.js +247 -0
- package/dist/inputs/Fieldset.d.ts +53 -0
- package/dist/inputs/Fieldset.js +149 -0
- package/dist/inputs/FileInput.d.ts +110 -0
- package/dist/inputs/FileInput.js +476 -0
- package/dist/inputs/Input.d.ts +148 -187
- package/dist/inputs/Input.js +339 -259
- package/dist/inputs/KeyValueInput.d.ts +120 -0
- package/dist/inputs/KeyValueInput.js +383 -0
- package/dist/inputs/MultiSelectInput.d.ts +165 -54
- package/dist/inputs/MultiSelectInput.js +175 -559
- package/dist/inputs/NumberInput.d.ts +65 -9
- package/dist/inputs/NumberInput.js +197 -40
- package/dist/inputs/PasswordInput.d.ts +17 -12
- package/dist/inputs/PasswordInput.js +33 -33
- package/dist/inputs/PinInput.d.ts +117 -0
- package/dist/inputs/PinInput.js +364 -0
- package/dist/inputs/RadioGroup.d.ts +115 -0
- package/dist/inputs/RadioGroup.js +179 -0
- package/dist/inputs/RadioInput.d.ts +87 -24
- package/dist/inputs/RadioInput.js +182 -95
- package/dist/inputs/SearchInput.d.ts +66 -0
- package/dist/inputs/SearchInput.js +156 -0
- package/dist/inputs/SelectInput.d.ts +195 -55
- package/dist/inputs/SelectInput.js +1308 -446
- package/dist/inputs/SliderInput.d.ts +150 -30
- package/dist/inputs/SliderInput.js +441 -186
- package/dist/inputs/SwitchInput.d.ts +109 -0
- package/dist/inputs/SwitchInput.js +248 -0
- package/dist/inputs/TagInput.d.ts +117 -0
- package/dist/inputs/TagInput.js +408 -0
- package/dist/inputs/TextAreaInput.d.ts +146 -44
- package/dist/inputs/TextAreaInput.js +298 -198
- package/dist/inputs/TextInput.d.ts +4 -13
- package/dist/inputs/TextInput.js +13 -48
- package/dist/inputs/ToggleInput.d.ts +120 -22
- package/dist/inputs/ToggleInput.js +262 -116
- package/dist/inputs/internal/bareField.d.ts +18 -0
- package/dist/inputs/internal/bareField.js +38 -0
- package/dist/inputs/internal/devWarn.d.ts +7 -0
- package/dist/inputs/internal/devWarn.js +30 -0
- package/dist/inputs/internal/fieldFrame.d.ts +34 -0
- package/dist/inputs/internal/fieldFrame.js +64 -0
- package/dist/inputs/internal/fieldWiring.d.ts +50 -0
- package/dist/inputs/internal/fieldWiring.js +38 -0
- package/dist/inputs/internal/innerButton.d.ts +2 -0
- package/dist/inputs/internal/innerButton.js +24 -0
- package/dist/inputs/internal/ownField.d.ts +45 -0
- package/dist/inputs/internal/ownField.js +58 -0
- package/dist/inputs/internal/predicates.d.ts +9 -0
- package/dist/inputs/internal/predicates.js +11 -0
- package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
- package/dist/inputs/internal/useComboboxPopover.js +92 -0
- package/dist/json/JsonViewer.d.ts +62 -0
- package/dist/json/JsonViewer.js +483 -0
- package/dist/layout/Box.d.ts +87 -0
- package/dist/layout/Box.js +109 -0
- package/dist/layout/Divider.d.ts +25 -0
- package/dist/layout/Divider.js +70 -0
- package/dist/layout/Flex.d.ts +139 -0
- package/dist/layout/Flex.js +165 -0
- package/dist/layout/FlexItem.d.ts +72 -0
- package/dist/layout/FlexItem.js +84 -0
- package/dist/layout/Grid.d.ts +140 -0
- package/dist/layout/Grid.js +178 -0
- package/dist/layout/Portal.d.ts +29 -0
- package/dist/layout/Portal.js +27 -0
- package/dist/layout/ResizablePanels.d.ts +88 -0
- package/dist/layout/ResizablePanels.js +198 -0
- package/dist/layout/ResizeHandle.d.ts +48 -0
- package/dist/layout/ResizeHandle.js +143 -0
- package/dist/layout/ScrollArea.d.ts +30 -0
- package/dist/layout/ScrollArea.js +138 -0
- package/dist/links/Link.d.ts +101 -1
- package/dist/links/Link.js +166 -4
- package/dist/lists/BulletedList.d.ts +25 -7
- package/dist/lists/BulletedList.js +72 -27
- package/dist/lists/DescriptionList.d.ts +91 -0
- package/dist/lists/DescriptionList.js +147 -0
- package/dist/menu/ContextMenu.d.ts +64 -0
- package/dist/menu/ContextMenu.js +34 -0
- package/dist/menu/Menu.d.ts +280 -0
- package/dist/menu/Menu.js +1003 -0
- package/dist/modal/ConfirmDialog.d.ts +55 -0
- package/dist/modal/ConfirmDialog.js +151 -0
- package/dist/modal/Modal.d.ts +64 -14
- package/dist/modal/Modal.js +189 -48
- package/dist/navigation/Breadcrumbs.d.ts +65 -0
- package/dist/navigation/Breadcrumbs.js +243 -0
- package/dist/navigation/CommandPalette.d.ts +83 -0
- package/dist/navigation/CommandPalette.js +509 -0
- package/dist/navigation/Pagination.d.ts +87 -0
- package/dist/navigation/Pagination.js +300 -0
- package/dist/navigation/SidebarNav.d.ts +107 -0
- package/dist/navigation/SidebarNav.js +341 -0
- package/dist/navigation/Stepper.d.ts +52 -0
- package/dist/navigation/Stepper.js +207 -0
- package/dist/navigation/Tabs.d.ts +113 -0
- package/dist/navigation/Tabs.js +543 -0
- package/dist/navigation/Topbar.d.ts +20 -0
- package/dist/navigation/Topbar.js +62 -0
- package/dist/overlay/OverlayProvider.d.ts +28 -32
- package/dist/overlay/OverlayProvider.js +42 -93
- package/dist/overlay/useOverlay.d.ts +88 -12
- package/dist/overlay/useOverlay.js +220 -43
- package/dist/overlays/Popover.d.ts +114 -0
- package/dist/overlays/Popover.js +389 -0
- package/dist/shapes/Circle.d.ts +84 -8
- package/dist/shapes/Circle.js +122 -20
- package/dist/shapes/Square.d.ts +84 -8
- package/dist/shapes/Square.js +123 -20
- package/dist/styles/mixins.d.ts +35 -0
- package/dist/styles/mixins.js +60 -0
- package/dist/styles.css +1 -202
- package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
- package/dist/table/InfiniteSpreadsheet.js +762 -225
- package/dist/table/InfiniteTable.d.ts +116 -14
- package/dist/table/InfiniteTable.js +287 -429
- package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
- package/dist/table/SpreadsheetCellEditor.js +163 -84
- package/dist/table/TableCore.d.ts +252 -0
- package/dist/table/TableCore.js +1082 -0
- package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
- package/dist/table/VirtualizedInfiniteTable.js +280 -219
- package/dist/table/types.d.ts +66 -244
- package/dist/table/types.js +0 -51
- package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
- package/dist/table/useInfiniteScrollSentinel.js +38 -30
- package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
- package/dist/table/useSpreadsheetCellNavigation.js +141 -0
- package/dist/table/useTableColumnLayout.d.ts +90 -25
- package/dist/table/useTableColumnLayout.js +255 -50
- package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
- package/dist/table/useTableKeyboardNavigation.js +95 -71
- package/dist/table/useTableRowSelection.d.ts +24 -25
- package/dist/table/useTableRowSelection.js +57 -84
- package/dist/table/useTableVirtualizer.d.ts +20 -0
- package/dist/table/useTableVirtualizer.js +48 -0
- package/dist/text/Bold.d.ts +5 -6
- package/dist/text/Bold.js +16 -15
- package/dist/text/Code.d.ts +5 -6
- package/dist/text/Code.js +16 -25
- package/dist/text/CodeBlock.d.ts +77 -0
- package/dist/text/CodeBlock.js +373 -0
- package/dist/text/EditableText.d.ts +55 -15
- package/dist/text/EditableText.js +153 -135
- package/dist/text/Ellipsis.d.ts +34 -8
- package/dist/text/Ellipsis.js +55 -23
- package/dist/text/Kbd.d.ts +72 -0
- package/dist/text/Kbd.js +284 -0
- package/dist/text/MarkdownText.d.ts +27 -10
- package/dist/text/MarkdownText.js +317 -300
- package/dist/text/RequiredMarker.d.ts +17 -5
- package/dist/text/RequiredMarker.js +34 -36
- package/dist/text/Selectable.d.ts +5 -6
- package/dist/text/Selectable.js +16 -13
- package/dist/text/Span.d.ts +82 -0
- package/dist/text/Span.js +115 -0
- package/dist/text/Text.d.ts +128 -41
- package/dist/text/Text.js +209 -76
- package/dist/theme/GalaxyProvider.d.ts +75 -0
- package/dist/theme/GalaxyProvider.js +223 -0
- package/dist/theme/ThemeSwitcher.d.ts +52 -0
- package/dist/theme/ThemeSwitcher.js +94 -0
- package/dist/theme/enums.d.ts +118 -0
- package/dist/theme/enums.js +144 -0
- package/dist/theme/tokens/dark.d.ts +2 -0
- package/dist/theme/tokens/dark.js +275 -0
- package/dist/theme/tokens/generate.d.ts +15 -0
- package/dist/theme/tokens/generate.js +47 -0
- package/dist/theme/tokens/light.d.ts +2 -0
- package/dist/theme/tokens/light.js +274 -0
- package/dist/theme/tokens/palette.d.ts +14 -0
- package/dist/theme/tokens/palette.js +153 -0
- package/dist/theme/tokens/scales.d.ts +26 -0
- package/dist/theme/tokens/scales.js +154 -0
- package/dist/theme/tokens/t.d.ts +3 -0
- package/dist/theme/tokens/t.js +25 -0
- package/dist/theme/tokens/types.d.ts +189 -0
- package/dist/theme/tokens/types.js +0 -0
- package/dist/theme/useGalaxyTheme.d.ts +46 -0
- package/dist/theme/useGalaxyTheme.js +36 -0
- package/dist/theme/useInverseScope.d.ts +18 -0
- package/dist/theme/useInverseScope.js +33 -0
- package/dist/three/GalaxyLogomark3D.d.ts +46 -0
- package/dist/three/GalaxyLogomark3D.js +134 -0
- package/dist/three/assets/galaxy-logomark.js +4 -0
- package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
- package/dist/three/galaxyLogomark3DScene.js +165 -0
- package/dist/timeline/Timeline.d.ts +120 -0
- package/dist/timeline/Timeline.js +301 -0
- package/dist/toast/Toast.d.ts +43 -19
- package/dist/toast/Toast.js +130 -89
- package/dist/toast/ToastProvider.d.ts +23 -23
- package/dist/toast/ToastProvider.js +298 -101
- package/dist/toast/ToastViewport.d.ts +12 -0
- package/dist/toast/ToastViewport.js +210 -0
- package/dist/toast/useToast.d.ts +139 -5
- package/dist/toast/useToast.js +15 -13
- package/dist/tokens.css +654 -0
- package/dist/tooltip/Tooltip.d.ts +64 -44
- package/dist/tooltip/Tooltip.js +280 -73
- package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
- package/dist/tooltip/internal/LazyTooltip.js +53 -0
- package/dist/transform/Fade.d.ts +33 -11
- package/dist/transform/Fade.js +71 -19
- package/dist/transform/Flasher.d.ts +25 -0
- package/dist/transform/Flasher.js +39 -0
- package/dist/transform/Rotate.d.ts +24 -12
- package/dist/transform/Rotate.js +36 -22
- package/dist/transform/ScaleFade.d.ts +36 -11
- package/dist/transform/ScaleFade.js +86 -28
- package/dist/transform/internal/CollapseMotion.d.ts +10 -0
- package/dist/transform/internal/CollapseMotion.js +65 -0
- package/dist/tree/Tree.d.ts +85 -0
- package/dist/tree/Tree.js +387 -0
- package/dist/tree/treeRow.d.ts +39 -0
- package/dist/tree/treeRow.js +75 -0
- package/dist/utils/colors.d.ts +46 -13
- package/dist/utils/colors.js +92 -34
- package/dist/utils/css.d.ts +23 -0
- package/dist/utils/css.js +30 -0
- package/dist/utils/format.d.ts +58 -0
- package/dist/utils/format.js +220 -0
- package/dist/vite/index.d.ts +16 -0
- package/dist/vite/index.js +52 -0
- package/dist/widget/Widget.d.ts +164 -48
- package/dist/widget/Widget.js +335 -96
- package/dist/widget/WidgetGroup.d.ts +36 -0
- package/dist/widget/WidgetGroup.js +103 -0
- package/package.json +855 -157
- package/dist/accordion/Accordion.d.ts +0 -54
- package/dist/accordion/Accordion.js +0 -183
- package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
- package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
- package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
- package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
- package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
- package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
- package/dist/assets/models/galaxy-animation.js +0 -136666
- package/dist/assets/models/galaxy-logomark.js +0 -4
- package/dist/avatar/AvatarShimmer.d.ts +0 -30
- package/dist/avatar/AvatarShimmer.js +0 -22
- package/dist/backgrounds/CellGridBackground.d.ts +0 -24
- package/dist/backgrounds/CellGridBackground.js +0 -44
- package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
- package/dist/backgrounds/CrossGridBackground.js +0 -49
- package/dist/backgrounds/DotGridBackground.d.ts +0 -24
- package/dist/backgrounds/DotGridBackground.js +0 -47
- package/dist/badge/Badge.d.ts +0 -42
- package/dist/badge/Badge.js +0 -99
- package/dist/charts/ChartEmptyState.d.ts +0 -17
- package/dist/charts/ChartEmptyState.js +0 -29
- package/dist/charts/ProgressBar.d.ts +0 -29
- package/dist/charts/ProgressBar.js +0 -65
- package/dist/charts/chartTheme.d.ts +0 -18
- package/dist/charts/chartTheme.js +0 -26
- package/dist/containers/FlexItem.d.ts +0 -50
- package/dist/containers/FlexItem.js +0 -91
- package/dist/containers/FlexWrapper.d.ts +0 -96
- package/dist/containers/FlexWrapper.js +0 -143
- package/dist/containers/GridWrapper.d.ts +0 -79
- package/dist/containers/GridWrapper.js +0 -125
- package/dist/containers/Spacing.d.ts +0 -23
- package/dist/containers/Spacing.js +0 -59
- package/dist/containers/Wrapper.d.ts +0 -26
- package/dist/containers/Wrapper.js +0 -54
- package/dist/dividers/HorizontalDivider.d.ts +0 -7
- package/dist/dividers/HorizontalDivider.js +0 -39
- package/dist/dividers/VerticalDivider.d.ts +0 -6
- package/dist/dividers/VerticalDivider.js +0 -21
- package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
- package/dist/icons/GalaxyFilamentWordmark.js +0 -25
- package/dist/icons/GalaxyLogomark.d.ts +0 -13
- package/dist/icons/GalaxyLogomark.js +0 -27
- package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
- package/dist/icons/GalaxyLogomark3D.js +0 -319
- package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
- package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
- package/dist/icons/GalaxyWordmark.d.ts +0 -11
- package/dist/icons/GalaxyWordmark.js +0 -25
- package/dist/inputs/MultiTextInput.d.ts +0 -32
- package/dist/inputs/MultiTextInput.js +0 -180
- package/dist/inputs/SwitcherInput.d.ts +0 -30
- package/dist/inputs/SwitcherInput.js +0 -81
- package/dist/inputs/hooks.d.ts +0 -10
- package/dist/inputs/hooks.js +0 -22
- package/dist/overlay/constants.d.ts +0 -28
- package/dist/overlay/constants.js +0 -37
- package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
- package/dist/resizable/HorizontalResizeHandle.js +0 -38
- package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
- package/dist/resizable/VerticalResizeHandle.js +0 -39
- package/dist/table/SpreadsheetCell.d.ts +0 -21
- package/dist/table/SpreadsheetCell.js +0 -71
- package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
- package/dist/table/SpreadsheetHeaderCell.js +0 -91
- package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
- package/dist/table/SpreadsheetMenuItem.js +0 -33
- package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
- package/dist/table/SpreadsheetPrimitives.js +0 -105
- package/dist/table/SpreadsheetRow.d.ts +0 -33
- package/dist/table/SpreadsheetRow.js +0 -73
- package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
- package/dist/table/SpreadsheetRowActionCell.js +0 -51
- package/dist/table/TableExpandCell.d.ts +0 -11
- package/dist/table/TableExpandCell.js +0 -24
- package/dist/table/TableExpandedRow.d.ts +0 -16
- package/dist/table/TableExpandedRow.js +0 -77
- package/dist/table/TableHeaderCellContent.d.ts +0 -30
- package/dist/table/TableHeaderCellContent.js +0 -48
- package/dist/table/TablePrimitives.d.ts +0 -313
- package/dist/table/TablePrimitives.js +0 -302
- package/dist/table/TableSelectCell.d.ts +0 -18
- package/dist/table/TableSelectCell.js +0 -27
- package/dist/table/TableStatusRow.d.ts +0 -18
- package/dist/table/TableStatusRow.js +0 -50
- package/dist/table/useSpreadsheetEditing.d.ts +0 -13
- package/dist/table/useSpreadsheetEditing.js +0 -41
- package/dist/table/useTableColumnResize.d.ts +0 -38
- package/dist/table/useTableColumnResize.js +0 -155
- package/dist/table/useTableRowExpansion.d.ts +0 -24
- package/dist/table/useTableRowExpansion.js +0 -62
- package/dist/table/utils.d.ts +0 -50
- package/dist/table/utils.js +0 -78
- package/dist/text/HotKeys.d.ts +0 -30
- package/dist/text/HotKeys.js +0 -74
- package/dist/text/Paragraph.d.ts +0 -33
- package/dist/text/Paragraph.js +0 -83
- package/dist/text/TextShimmer.d.ts +0 -14
- package/dist/text/TextShimmer.js +0 -34
- package/dist/theme/GalaxyTheme.d.ts +0 -67
- package/dist/theme/GalaxyTheme.js +0 -119
- package/dist/theme/constants.d.ts +0 -8
- package/dist/theme/constants.js +0 -38
- package/dist/theme/index.d.ts +0 -6
- package/dist/theme/index.js +0 -7
- package/dist/theme/types.d.ts +0 -195
- package/dist/theme/types.js +0 -10
- package/dist/theme/typography.d.ts +0 -2
- package/dist/theme/typography.js +0 -73
- package/dist/theme/variants/dark.d.ts +0 -2
- package/dist/theme/variants/dark.js +0 -125
- package/dist/theme/variants/light.d.ts +0 -2
- package/dist/theme/variants/light.js +0 -125
- package/dist/toast/ToastContainer.d.ts +0 -10
- package/dist/toast/ToastContainer.js +0 -31
- package/dist/toast/ToastWrapper.d.ts +0 -6
- package/dist/toast/ToastWrapper.js +0 -27
- package/dist/transform/Flash.d.ts +0 -7
- package/dist/transform/Flash.js +0 -18
- package/dist/transform/Spin.d.ts +0 -14
- package/dist/transform/Spin.js +0 -25
- package/dist/utils/linaria.d.ts +0 -1
- package/dist/utils/linaria.js +0 -8
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { type AriaAttributes, type ChangeEvent, type CSSProperties, type InputHTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
/** Canonical rungs; SwitchInput supports all five. The rung sets the row height, the track, the label step and the spinner. */
|
|
3
|
+
export declare enum SwitchInputSize {
|
|
4
|
+
/** 20px row, 24×14 track, 10px thumb, caption label. */
|
|
5
|
+
X_SMALL = "X_SMALL",
|
|
6
|
+
/** 24px row, 28×16 track, 12px thumb, body_sm label (the 1.x SMALL track). */
|
|
7
|
+
SMALL = "SMALL",
|
|
8
|
+
/** 32px row, 36×20 track, 16px thumb, body_md label. The default (1.x MEDIUM was 32×18). */
|
|
9
|
+
MEDIUM = "MEDIUM",
|
|
10
|
+
/** 36px row, 40×22 track, 18px thumb, body_lg label. */
|
|
11
|
+
LARGE = "LARGE",
|
|
12
|
+
/** 40px row, 44×24 track, 20px thumb, body_lg label. */
|
|
13
|
+
X_LARGE = "X_LARGE"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The surface the switch sits on (Constitution V-A surface set; 1.x `InputVariant` unchanged).
|
|
17
|
+
* The off track is always one neutral step stronger than that surface, so it never washes out. On
|
|
18
|
+
* an unknown or mixed surface keep the default: 1.x `TRANSPARENT` drew the same
|
|
19
|
+
* `background.tertiary` off track, so it was removed (color 2.1) with no `isGhost` replacement.
|
|
20
|
+
*/
|
|
21
|
+
export declare enum SwitchInputVariant {
|
|
22
|
+
/** On `background.base`: off track `background.hovered`. */
|
|
23
|
+
BASE = "BASE",
|
|
24
|
+
/** On `background.primary`: off track `background.pressed`. */
|
|
25
|
+
PRIMARY = "PRIMARY",
|
|
26
|
+
/** On `background.secondary`: off track `background.tertiary`. The default. */
|
|
27
|
+
SECONDARY = "SECONDARY",
|
|
28
|
+
/** On `background.tertiary`: off track `background.tertiary`. */
|
|
29
|
+
TERTIARY = "TERTIARY"
|
|
30
|
+
}
|
|
31
|
+
/** Native `<input>` attributes, typed as React types them. */
|
|
32
|
+
type NativeInputAttributes = InputHTMLAttributes<HTMLInputElement>;
|
|
33
|
+
/** The native passthrough allowlist, each documented. */
|
|
34
|
+
interface SwitchInputNativeProps {
|
|
35
|
+
/** Form field name; a checked switch submits `name=on` in a native form. */
|
|
36
|
+
name?: NativeInputAttributes["name"];
|
|
37
|
+
/** Focus the switch on mount. */
|
|
38
|
+
autoFocus?: NativeInputAttributes["autoFocus"];
|
|
39
|
+
/** Focus handler on the `<input>`. */
|
|
40
|
+
onFocus?: NativeInputAttributes["onFocus"];
|
|
41
|
+
/** Blur handler on the `<input>`. */
|
|
42
|
+
onBlur?: NativeInputAttributes["onBlur"];
|
|
43
|
+
}
|
|
44
|
+
export interface SwitchInputProps extends AriaAttributes, SwitchInputNativeProps {
|
|
45
|
+
/** Controlled on/off state. Pass it with `onChange`. */
|
|
46
|
+
isChecked?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Initial on/off state while uncontrolled.
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
defaultIsChecked?: boolean;
|
|
52
|
+
/** Called with the new state (and the change event) when the user toggles the switch. Not called while disabled, loading or read-only. */
|
|
53
|
+
onChange?: (isChecked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
|
|
54
|
+
/** Visible name beside the track. Clicking it toggles the switch. */
|
|
55
|
+
label?: string;
|
|
56
|
+
/** Help copy under the label ("Pause without deleting."). Text and inline `Link`s only. */
|
|
57
|
+
description?: ReactNode;
|
|
58
|
+
/**
|
|
59
|
+
* Put the label and description after the track instead of before it.
|
|
60
|
+
* @default false
|
|
61
|
+
*/
|
|
62
|
+
isLabelTrailing?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Control rung: the row is 20 / 24 / 32 / 36 / 40px tall without a description.
|
|
65
|
+
* @default SwitchInputSize.MEDIUM
|
|
66
|
+
*/
|
|
67
|
+
size?: SwitchInputSize;
|
|
68
|
+
/**
|
|
69
|
+
* The surface the switch sits on; the off track is one neutral step stronger.
|
|
70
|
+
* @default SwitchInputVariant.SECONDARY
|
|
71
|
+
*/
|
|
72
|
+
variant?: SwitchInputVariant;
|
|
73
|
+
/**
|
|
74
|
+
* Not focusable and cannot be toggled. Shows the disabled look.
|
|
75
|
+
* @default false
|
|
76
|
+
*/
|
|
77
|
+
isDisabled?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* A change is in flight: the thumb shows a spinner, toggling is blocked, and the switch keeps focus.
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
isLoading?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Focusable and announced, but cannot be toggled. No hover change.
|
|
85
|
+
* @default false
|
|
86
|
+
*/
|
|
87
|
+
isReadOnly?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Stretch to the parent's width. With the label leading, the track sits at the end of the row.
|
|
90
|
+
* @default false
|
|
91
|
+
*/
|
|
92
|
+
fillWidth?: boolean;
|
|
93
|
+
/** Accessible name when there is no visible `label` and no labelled wrapping `Field`. */
|
|
94
|
+
ariaLabel?: string;
|
|
95
|
+
/**
|
|
96
|
+
* DOM id of the `<input>`. A wrapping `Field`'s id wins.
|
|
97
|
+
* @default useId()
|
|
98
|
+
*/
|
|
99
|
+
id?: string;
|
|
100
|
+
/** Any `data-*` attribute, forwarded to the `<input>`. */
|
|
101
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
102
|
+
/** Extra class on the root. */
|
|
103
|
+
className?: string;
|
|
104
|
+
/** Inline style on the root; only for setting CSS custom properties. */
|
|
105
|
+
style?: CSSProperties;
|
|
106
|
+
}
|
|
107
|
+
/** An on/off switch for a setting that applies immediately, with its own label and description. */
|
|
108
|
+
declare const SwitchInput: import("react").ForwardRefExoticComponent<SwitchInputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
109
|
+
export default SwitchInput;
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import Text, { TextSize, TextVariant } from "../text/Text.js";
|
|
2
|
+
import { useControlledState } from "../hooks/useControlledState.js";
|
|
3
|
+
import { useDevWarning } from "./internal/devWarn.js";
|
|
4
|
+
import { useField } from "../hooks/useField.js";
|
|
5
|
+
import Spinner, { SpinnerSize, SpinnerVariant } from "../feedback/Spinner.js";
|
|
6
|
+
import { hasContent, isFilled } from "./internal/predicates.js";
|
|
7
|
+
import { joinIds } from "./internal/fieldWiring.js";
|
|
8
|
+
import { useIsBareField } from "./internal/bareField.js";
|
|
9
|
+
/* empty css */
|
|
10
|
+
import { styled } from "@linaria/react";
|
|
11
|
+
import { forwardRef, useId } from "react";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { cx } from "@linaria/core";
|
|
14
|
+
//#region src/inputs/SwitchInput.tsx
|
|
15
|
+
/**
|
|
16
|
+
* The on/off control for a setting that takes effect immediately ("Enabled", "Send alerts", "Show
|
|
17
|
+
* archived"). One native `<input type="checkbox" role="switch">` laid transparently over a pill
|
|
18
|
+
* track with a sliding thumb, with its own `label` beside the track and an optional `description`
|
|
19
|
+
* under it, so one component is a complete settings row. It holds a boolean with `isChecked` /
|
|
20
|
+
* `defaultIsChecked` / `onChange(isChecked, event)`; `isLoading` shows a spinner in the thumb and blocks toggles
|
|
21
|
+
* while keeping focus. On is the monochrome `solid.primary` fill.
|
|
22
|
+
*
|
|
23
|
+
* It never validates, submits or confirms. A choice applied on Save is `CheckboxInput`; a choice
|
|
24
|
+
* between named options is `ToggleInput`. Wrap it in `Field` for an error or required mark.
|
|
25
|
+
* Renamed from 1.x `ToggleInput` (Constitution XII.4): `InputSize` → `SwitchInputSize`,
|
|
26
|
+
* `InputVariant` → `SwitchInputVariant`, `value` → `isChecked`, `labelTooltip` and `width` removed.
|
|
27
|
+
*/
|
|
28
|
+
/** Canonical rungs; SwitchInput supports all five. The rung sets the row height, the track, the label step and the spinner. */
|
|
29
|
+
var SwitchInputSize = /* @__PURE__ */ function(SwitchInputSize) {
|
|
30
|
+
/** 20px row, 24×14 track, 10px thumb, caption label. */
|
|
31
|
+
SwitchInputSize["X_SMALL"] = "X_SMALL";
|
|
32
|
+
/** 24px row, 28×16 track, 12px thumb, body_sm label (the 1.x SMALL track). */
|
|
33
|
+
SwitchInputSize["SMALL"] = "SMALL";
|
|
34
|
+
/** 32px row, 36×20 track, 16px thumb, body_md label. The default (1.x MEDIUM was 32×18). */
|
|
35
|
+
SwitchInputSize["MEDIUM"] = "MEDIUM";
|
|
36
|
+
/** 36px row, 40×22 track, 18px thumb, body_lg label. */
|
|
37
|
+
SwitchInputSize["LARGE"] = "LARGE";
|
|
38
|
+
/** 40px row, 44×24 track, 20px thumb, body_lg label. */
|
|
39
|
+
SwitchInputSize["X_LARGE"] = "X_LARGE";
|
|
40
|
+
return SwitchInputSize;
|
|
41
|
+
}({});
|
|
42
|
+
/**
|
|
43
|
+
* The surface the switch sits on (Constitution V-A surface set; 1.x `InputVariant` unchanged).
|
|
44
|
+
* The off track is always one neutral step stronger than that surface, so it never washes out. On
|
|
45
|
+
* an unknown or mixed surface keep the default: 1.x `TRANSPARENT` drew the same
|
|
46
|
+
* `background.tertiary` off track, so it was removed (color 2.1) with no `isGhost` replacement.
|
|
47
|
+
*/
|
|
48
|
+
var SwitchInputVariant = /* @__PURE__ */ function(SwitchInputVariant) {
|
|
49
|
+
/** On `background.base`: off track `background.hovered`. */
|
|
50
|
+
SwitchInputVariant["BASE"] = "BASE";
|
|
51
|
+
/** On `background.primary`: off track `background.pressed`. */
|
|
52
|
+
SwitchInputVariant["PRIMARY"] = "PRIMARY";
|
|
53
|
+
/** On `background.secondary`: off track `background.tertiary`. The default. */
|
|
54
|
+
SwitchInputVariant["SECONDARY"] = "SECONDARY";
|
|
55
|
+
/** On `background.tertiary`: off track `background.tertiary`. */
|
|
56
|
+
SwitchInputVariant["TERTIARY"] = "TERTIARY";
|
|
57
|
+
return SwitchInputVariant;
|
|
58
|
+
}({});
|
|
59
|
+
/** The row: track then text in the DOM, exactly the rung's height without a description. */
|
|
60
|
+
var Root = /*#__PURE__*/ styled("div")({
|
|
61
|
+
name: "Root",
|
|
62
|
+
class: "gx-SwitchInput-re1ivwu",
|
|
63
|
+
propsAsIs: false
|
|
64
|
+
});
|
|
65
|
+
/** The pill. The input covers it, so hover on the input is hover on the track. */
|
|
66
|
+
var Track = /*#__PURE__*/ styled("span")({
|
|
67
|
+
name: "Track",
|
|
68
|
+
class: "gx-SwitchInput-Track-t5qpvv1",
|
|
69
|
+
propsAsIs: false
|
|
70
|
+
});
|
|
71
|
+
/** The sliding knob; holds the Spinner while loading. Positioned so its outer offset is 2px at every rung. */
|
|
72
|
+
var Thumb = /*#__PURE__*/ styled("span")({
|
|
73
|
+
name: "Thumb",
|
|
74
|
+
class: "gx-SwitchInput-Thumb-t1jqwma5",
|
|
75
|
+
propsAsIs: false
|
|
76
|
+
});
|
|
77
|
+
/** The real control: a transparent native checkbox over the whole track. */
|
|
78
|
+
var Control = /*#__PURE__*/ styled("input")({
|
|
79
|
+
name: "Control",
|
|
80
|
+
class: "gx-SwitchInput-Control-cjjj90p",
|
|
81
|
+
propsAsIs: false
|
|
82
|
+
});
|
|
83
|
+
/** Label over description; the label's first line centers on the track. */
|
|
84
|
+
var TextBlock = /*#__PURE__*/ styled("span")({
|
|
85
|
+
name: "TextBlock",
|
|
86
|
+
class: "gx-SwitchInput-TextBlock-t1tkpa7t",
|
|
87
|
+
propsAsIs: false
|
|
88
|
+
});
|
|
89
|
+
/** The `<label>` around the label Text; clicking it toggles the switch. */
|
|
90
|
+
var Label = /*#__PURE__*/ styled("label")({
|
|
91
|
+
name: "Label",
|
|
92
|
+
class: "gx-SwitchInput-Label-l1hm3zsx",
|
|
93
|
+
propsAsIs: false
|
|
94
|
+
});
|
|
95
|
+
/** Row height, track, thumb (= travel), gap and label line per rung. Track width = 2 × height − 4. */
|
|
96
|
+
var SWITCH_INPUT_SIZE_TO_CSS_MAP = {
|
|
97
|
+
["X_SMALL"]: "gx-SwitchInput-X_SMALL-xtbk4la",
|
|
98
|
+
["SMALL"]: "gx-SwitchInput-SMALL-sszeqx7",
|
|
99
|
+
["MEDIUM"]: "gx-SwitchInput-MEDIUM-m1esdh64",
|
|
100
|
+
["LARGE"]: "gx-SwitchInput-LARGE-ldceza6",
|
|
101
|
+
["X_LARGE"]: "gx-SwitchInput-X_LARGE-x1vx0934"
|
|
102
|
+
};
|
|
103
|
+
/** Off-track fill per surface: one neutral step stronger than the surface the switch sits on. */
|
|
104
|
+
var SWITCH_INPUT_VARIANT_TO_CSS_MAP = {
|
|
105
|
+
["BASE"]: "gx-SwitchInput-BASE-bachef7",
|
|
106
|
+
["PRIMARY"]: "gx-SwitchInput-PRIMARY-p1nnx17d",
|
|
107
|
+
["SECONDARY"]: "gx-SwitchInput-SECONDARY-s1hshoo0",
|
|
108
|
+
["TERTIARY"]: "gx-SwitchInput-TERTIARY-tdz2ykz"
|
|
109
|
+
};
|
|
110
|
+
/** Label and description before the track (the default); the DOM order stays track first. */
|
|
111
|
+
var LABEL_LEADING_CSS = "gx-SwitchInput-LABEL_LEADING_CSS-l2i0zpv";
|
|
112
|
+
/** Stretch to the parent's width; the text block takes the free space. */
|
|
113
|
+
var FILL_WIDTH_CSS = "gx-SwitchInput-FILL_WIDTH_CSS-f8moo2b";
|
|
114
|
+
/** `fillWidth` with the label leading: the label starts the row and the track ends it (the 1.x look). */
|
|
115
|
+
var FILL_WIDTH_LABEL_LEADING_CSS = "gx-SwitchInput-FILL_WIDTH_LABEL_LEADING_CSS-fletk2z";
|
|
116
|
+
/** Off: the variant's neutral step, a `border.secondary` hairline and an `text.secondary` thumb. */
|
|
117
|
+
var OFF_CSS = "gx-SwitchInput-OFF_CSS-ow7nyud";
|
|
118
|
+
/** On: the `solid.primary` track and an on-solid thumb, slid one thumb width. */
|
|
119
|
+
var ON_CSS = "gx-SwitchInput-ON_CSS-ol1ilzg";
|
|
120
|
+
/** Hover on an editable off switch: `border.hovered` (the field-frame hover) and a brighter thumb. */
|
|
121
|
+
var OFF_HOVER_CSS = "gx-SwitchInput-OFF_HOVER_CSS-omhhgt3";
|
|
122
|
+
/** Hover and press on an editable on switch. */
|
|
123
|
+
var ON_HOVER_CSS = "gx-SwitchInput-ON_HOVER_CSS-ogtcfgw";
|
|
124
|
+
/** Disabled: the disabled fill and thumb with the `border.primary` resting hairline (field-frame note). */
|
|
125
|
+
var DISABLED_CSS = "gx-SwitchInput-DISABLED_CSS-dqj8tqw";
|
|
126
|
+
/** Red hairline at rest and on hover, from a wrapping Field's error. */
|
|
127
|
+
var ERROR_CSS = "gx-SwitchInput-ERROR_CSS-e11pamfu";
|
|
128
|
+
/** Loading: the Spinner draws in the thumb's color on a transparent thumb. */
|
|
129
|
+
var LOADING_CSS = "gx-SwitchInput-LOADING_CSS-li6rt8k";
|
|
130
|
+
/** Cursor for the input and the label, per blocked state (on `Root`). */
|
|
131
|
+
var DISABLED_CURSOR_CSS = "gx-SwitchInput-DISABLED_CURSOR_CSS-d1ub6p6x";
|
|
132
|
+
var LOADING_CURSOR_CSS = "gx-SwitchInput-LOADING_CURSOR_CSS-lysofzb";
|
|
133
|
+
var READ_ONLY_CURSOR_CSS = "gx-SwitchInput-READ_ONLY_CURSOR_CSS-r7de0fp";
|
|
134
|
+
/** Label step per rung (the canonical control text). */
|
|
135
|
+
var SWITCH_INPUT_SIZE_TO_TEXT_SIZE_MAP = {
|
|
136
|
+
["X_SMALL"]: TextSize.CAPTION,
|
|
137
|
+
["SMALL"]: TextSize.BODY_SM,
|
|
138
|
+
["MEDIUM"]: TextSize.BODY_MD,
|
|
139
|
+
["LARGE"]: TextSize.BODY_LG,
|
|
140
|
+
["X_LARGE"]: TextSize.BODY_LG
|
|
141
|
+
};
|
|
142
|
+
/** Description step per rung (Field's help steps). */
|
|
143
|
+
var SWITCH_INPUT_SIZE_TO_DESCRIPTION_TEXT_SIZE_MAP = {
|
|
144
|
+
["X_SMALL"]: TextSize.CAPTION,
|
|
145
|
+
["SMALL"]: TextSize.CAPTION,
|
|
146
|
+
["MEDIUM"]: TextSize.BODY_SM,
|
|
147
|
+
["LARGE"]: TextSize.BODY_SM,
|
|
148
|
+
["X_LARGE"]: TextSize.BODY_MD
|
|
149
|
+
};
|
|
150
|
+
/** The thumb's spinner per rung (identity). */
|
|
151
|
+
var SWITCH_INPUT_SIZE_TO_SPINNER_SIZE_MAP = {
|
|
152
|
+
["X_SMALL"]: SpinnerSize.X_SMALL,
|
|
153
|
+
["SMALL"]: SpinnerSize.SMALL,
|
|
154
|
+
["MEDIUM"]: SpinnerSize.MEDIUM,
|
|
155
|
+
["LARGE"]: SpinnerSize.LARGE,
|
|
156
|
+
["X_LARGE"]: SpinnerSize.X_LARGE
|
|
157
|
+
};
|
|
158
|
+
/** An on/off switch for a setting that applies immediately, with its own label and description. */
|
|
159
|
+
var SwitchInput = forwardRef(function SwitchInput(props, ref) {
|
|
160
|
+
const { isChecked, defaultIsChecked = false, onChange, label, description, isLabelTrailing = false, size = "MEDIUM", variant = "SECONDARY", isDisabled = false, isLoading = false, isReadOnly = false, fillWidth = false, ariaLabel, id, "aria-describedby": ariaDescribedBy, className, style, ...rest } = props;
|
|
161
|
+
const field = useField();
|
|
162
|
+
const isBare = useIsBareField();
|
|
163
|
+
const generatedId = useId();
|
|
164
|
+
const inputId = field?.controlId ?? id ?? generatedId;
|
|
165
|
+
const descriptionId = `${inputId}-description`;
|
|
166
|
+
const [isOn, setIsOn] = useControlledState({
|
|
167
|
+
value: isChecked,
|
|
168
|
+
defaultValue: defaultIsChecked
|
|
169
|
+
});
|
|
170
|
+
const hasLabel = isFilled(label);
|
|
171
|
+
const hasDescription = hasContent(description);
|
|
172
|
+
const isInvalid = field?.isError === true;
|
|
173
|
+
const isBlocked = isLoading || isReadOnly;
|
|
174
|
+
const isEditable = !isDisabled && !isBlocked;
|
|
175
|
+
const describedBy = joinIds([
|
|
176
|
+
field?.describedBy,
|
|
177
|
+
hasDescription && descriptionId,
|
|
178
|
+
ariaDescribedBy
|
|
179
|
+
]);
|
|
180
|
+
const hasFieldLabel = field?.labelId !== void 0;
|
|
181
|
+
useDevWarning(!(hasLabel || hasFieldLabel || isFilled(ariaLabel) || isFilled(rest["aria-labelledby"]) || isFilled(rest["aria-label"])), "[@galaxy-io/dls] SwitchInput has no accessible name. Pass `label`, wrap it in a labelled `Field`, or set `ariaLabel`.");
|
|
182
|
+
useDevWarning(hasLabel && hasFieldLabel, "[@galaxy-io/dls] SwitchInput has both its own `label` and a labelled wrapping `Field`; both name it. Use one, and give the switch `ariaLabel` inside a Field.");
|
|
183
|
+
const handleChange = (event) => {
|
|
184
|
+
const next = event.currentTarget.checked;
|
|
185
|
+
setIsOn(next);
|
|
186
|
+
onChange?.(next, event);
|
|
187
|
+
};
|
|
188
|
+
/** Loading and read-only keep focus and block the native toggle, so no change event fires. */
|
|
189
|
+
const handleClick = (event) => {
|
|
190
|
+
if (isBlocked) event.preventDefault();
|
|
191
|
+
};
|
|
192
|
+
/** Enter toggles too (1.x), through the native click so blocking and `onChange` apply as for a mouse click. */
|
|
193
|
+
const handleKeyDown = (event) => {
|
|
194
|
+
if (event.key !== "Enter" || event.nativeEvent.isComposing) return;
|
|
195
|
+
event.preventDefault();
|
|
196
|
+
event.currentTarget.click();
|
|
197
|
+
};
|
|
198
|
+
return /* @__PURE__ */ jsxs(Root, {
|
|
199
|
+
className: cx(SWITCH_INPUT_SIZE_TO_CSS_MAP[size], SWITCH_INPUT_VARIANT_TO_CSS_MAP[variant], !isLabelTrailing && LABEL_LEADING_CSS, fillWidth && FILL_WIDTH_CSS, fillWidth && !isLabelTrailing && FILL_WIDTH_LABEL_LEADING_CSS, isDisabled && DISABLED_CURSOR_CSS, !isDisabled && isLoading && LOADING_CURSOR_CSS, !isDisabled && !isLoading && isReadOnly && READ_ONLY_CURSOR_CSS, className),
|
|
200
|
+
...style === void 0 ? {} : { style },
|
|
201
|
+
children: [/* @__PURE__ */ jsxs(Track, {
|
|
202
|
+
className: cx(isOn ? ON_CSS : OFF_CSS, isEditable && (isOn ? ON_HOVER_CSS : OFF_HOVER_CSS), isDisabled && DISABLED_CSS, isInvalid && ERROR_CSS, isLoading && LOADING_CSS, isBare && "gx-bareField-BARE_SWITCH_TRACK_CSS-b1rpy78w"),
|
|
203
|
+
children: [/* @__PURE__ */ jsx(Thumb, {
|
|
204
|
+
"aria-hidden": true,
|
|
205
|
+
children: isLoading && /* @__PURE__ */ jsx(Spinner, {
|
|
206
|
+
size: SWITCH_INPUT_SIZE_TO_SPINNER_SIZE_MAP[size],
|
|
207
|
+
variant: SpinnerVariant.INHERIT,
|
|
208
|
+
"aria-hidden": true
|
|
209
|
+
})
|
|
210
|
+
}), /* @__PURE__ */ jsx(Control, {
|
|
211
|
+
ref,
|
|
212
|
+
type: "checkbox",
|
|
213
|
+
role: "switch",
|
|
214
|
+
id: inputId,
|
|
215
|
+
checked: isOn,
|
|
216
|
+
onChange: handleChange,
|
|
217
|
+
onClick: handleClick,
|
|
218
|
+
onKeyDown: handleKeyDown,
|
|
219
|
+
disabled: isDisabled,
|
|
220
|
+
"aria-label": ariaLabel,
|
|
221
|
+
"aria-describedby": describedBy,
|
|
222
|
+
"aria-invalid": isInvalid ? true : void 0,
|
|
223
|
+
"aria-required": field?.isRequired === true ? true : void 0,
|
|
224
|
+
"aria-disabled": !isDisabled && isLoading ? true : void 0,
|
|
225
|
+
"aria-busy": isLoading ? true : void 0,
|
|
226
|
+
"aria-readonly": !isDisabled && !isLoading && isReadOnly ? true : void 0,
|
|
227
|
+
...rest
|
|
228
|
+
})]
|
|
229
|
+
}), (hasLabel || hasDescription) && /* @__PURE__ */ jsxs(TextBlock, { children: [hasLabel && /* @__PURE__ */ jsx(Label, {
|
|
230
|
+
htmlFor: inputId,
|
|
231
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
232
|
+
as: "span",
|
|
233
|
+
size: SWITCH_INPUT_SIZE_TO_TEXT_SIZE_MAP[size],
|
|
234
|
+
variant: isDisabled ? TextVariant.DISABLED : TextVariant.PRIMARY,
|
|
235
|
+
children: label
|
|
236
|
+
})
|
|
237
|
+
}), hasDescription && /* @__PURE__ */ jsx(Text, {
|
|
238
|
+
as: "p",
|
|
239
|
+
id: descriptionId,
|
|
240
|
+
size: SWITCH_INPUT_SIZE_TO_DESCRIPTION_TEXT_SIZE_MAP[size],
|
|
241
|
+
variant: isDisabled ? TextVariant.DISABLED : TextVariant.TERTIARY,
|
|
242
|
+
children: description
|
|
243
|
+
})] })]
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
SwitchInput.displayName = "SwitchInput";
|
|
247
|
+
//#endregion
|
|
248
|
+
export { SwitchInputSize, SwitchInputVariant, SwitchInput as default };
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type InputHTMLAttributes } from "react";
|
|
2
|
+
/** Canonical rungs; TagInput supports all five. One line of the field is the rung height. */
|
|
3
|
+
export declare enum TagInputSize {
|
|
4
|
+
/** 20px line, 16px chips, caption text. */
|
|
5
|
+
X_SMALL = "X_SMALL",
|
|
6
|
+
/** 24px line, 16px chips, body_sm text. */
|
|
7
|
+
SMALL = "SMALL",
|
|
8
|
+
/** 32px line, 20px chips, body_md text. The default. */
|
|
9
|
+
MEDIUM = "MEDIUM",
|
|
10
|
+
/** 36px line, 24px chips, body_lg text. */
|
|
11
|
+
LARGE = "LARGE",
|
|
12
|
+
/** 40px line, 28px chips, body_lg text. */
|
|
13
|
+
X_LARGE = "X_LARGE"
|
|
14
|
+
}
|
|
15
|
+
/** Resting fill of the field (Constitution V-A surface set; the 1.x `InputVariant` members, unchanged). */
|
|
16
|
+
export declare enum TagInputVariant {
|
|
17
|
+
/** `background.base` fill. */
|
|
18
|
+
BASE = "BASE",
|
|
19
|
+
/** `background.primary` fill. The default. */
|
|
20
|
+
PRIMARY = "PRIMARY",
|
|
21
|
+
/** `background.secondary` fill. */
|
|
22
|
+
SECONDARY = "SECONDARY",
|
|
23
|
+
/** `background.tertiary` fill. */
|
|
24
|
+
TERTIARY = "TERTIARY"
|
|
25
|
+
}
|
|
26
|
+
/** Native `<input>` attributes, typed as React types them. */
|
|
27
|
+
type NativeInputAttributes = InputHTMLAttributes<HTMLInputElement>;
|
|
28
|
+
/** The native passthrough allowlist (`autoFocus`, `onFocus`, `onBlur`), each documented. */
|
|
29
|
+
interface TagInputNativeProps {
|
|
30
|
+
/** Focus the text input on mount. */
|
|
31
|
+
autoFocus?: NativeInputAttributes["autoFocus"];
|
|
32
|
+
/** Focus handler on the text input. */
|
|
33
|
+
onFocus?: NativeInputAttributes["onFocus"];
|
|
34
|
+
/** Blur handler on the text input. TagInput commits the typed text first. */
|
|
35
|
+
onBlur?: NativeInputAttributes["onBlur"];
|
|
36
|
+
}
|
|
37
|
+
export interface TagInputProps extends AriaAttributes, TagInputNativeProps {
|
|
38
|
+
/** Controlled list of tags, in the order they were added. Pass it with `onChange`. */
|
|
39
|
+
value?: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Initial tags while uncontrolled.
|
|
42
|
+
* @default []
|
|
43
|
+
*/
|
|
44
|
+
defaultValue?: string[];
|
|
45
|
+
/** Called with the whole next list (not a delta) when tags are added or removed. */
|
|
46
|
+
onChange?: (value: string[]) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Single characters that commit the typed text as a tag, alongside Enter and blur. A paste is also split on newlines and tabs.
|
|
49
|
+
* @default [","]
|
|
50
|
+
*/
|
|
51
|
+
separators?: string[];
|
|
52
|
+
/** The app's rule for one tag. Tags it returns `true` for render as error chips and mark the field invalid. TagInput never rejects a tag on its own. */
|
|
53
|
+
isTagInvalid?: (tag: string) => boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Control rung: one line is 20 / 24 / 32 / 36 / 40px tall. Chips step down to fit inside it.
|
|
56
|
+
* @default TagInputSize.MEDIUM
|
|
57
|
+
*/
|
|
58
|
+
size?: TagInputSize;
|
|
59
|
+
/**
|
|
60
|
+
* Resting fill, from the surface set. Ignored with `isGhost`.
|
|
61
|
+
* @default TagInputVariant.PRIMARY
|
|
62
|
+
*/
|
|
63
|
+
variant?: TagInputVariant;
|
|
64
|
+
/**
|
|
65
|
+
* Ghost field: no fill and no hairline at rest; the frame appears on hover and focus (1.x
|
|
66
|
+
* `TRANSPARENT`). For tag fields set into a toolbar or a table cell. Chips are `ChipVariant.SECONDARY`.
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
isGhost?: boolean;
|
|
70
|
+
/** Label above the field, rendered through `Field`. For a description or a horizontal layout, wrap it in `Field` instead. */
|
|
71
|
+
label?: string;
|
|
72
|
+
/** Hint shown while there are no tags and nothing is typed. It is never the label. */
|
|
73
|
+
placeholder?: string;
|
|
74
|
+
/** Message from the app, shown under the field through `Field`. It also turns the border red and sets `aria-invalid`. */
|
|
75
|
+
error?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Error border and `aria-invalid` without a message. `error` implies it.
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
80
|
+
isError?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Nothing can be typed or removed; chips show the disabled look and lose their ×.
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
85
|
+
isDisabled?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Tags are shown and the field is focusable, but nothing can be typed or removed (chips have no ×).
|
|
88
|
+
* @default false
|
|
89
|
+
*/
|
|
90
|
+
isReadOnly?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Required marker on the `label` (via `Field`) and `aria-required`. It does no validation.
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
95
|
+
isRequired?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Stretch to the parent's width. Without it, the field is 200px wide.
|
|
98
|
+
* @default false
|
|
99
|
+
*/
|
|
100
|
+
fillWidth?: boolean;
|
|
101
|
+
/** Accessible name when there is no visible label (no `label` and no wrapping `Field`). */
|
|
102
|
+
ariaLabel?: string;
|
|
103
|
+
/**
|
|
104
|
+
* DOM id of the text input. A wrapping `Field`'s id wins.
|
|
105
|
+
* @default useId()
|
|
106
|
+
*/
|
|
107
|
+
id?: string;
|
|
108
|
+
/** Any `data-*` attribute, forwarded to the text input. */
|
|
109
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
110
|
+
/** Extra class on the root: the `Field` wrapper when TagInput renders one, otherwise the frame. */
|
|
111
|
+
className?: string;
|
|
112
|
+
/** Inline style on the root; only for setting CSS custom properties. */
|
|
113
|
+
style?: CSSProperties;
|
|
114
|
+
}
|
|
115
|
+
/** A field of free-form tags: type and press Enter or a separator, paste a list, remove with × or Backspace. */
|
|
116
|
+
declare const TagInput: import("react").ForwardRefExoticComponent<TagInputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
117
|
+
export default TagInput;
|