@galaxy-io/dls 1.6.1 → 2.0.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/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 +136 -116
- 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 +32 -20
- package/dist/charts/ChartFrame.d.ts +69 -116
- package/dist/charts/ChartFrame.js +253 -119
- package/dist/charts/ChartGroupProvider.d.ts +30 -41
- package/dist/charts/ChartGroupProvider.js +20 -7
- package/dist/charts/ChartLegend.d.ts +27 -48
- package/dist/charts/ChartLegend.js +206 -125
- package/dist/charts/ChartMarkTargets.d.ts +12 -28
- package/dist/charts/ChartMarkTargets.js +33 -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 +295 -0
- package/dist/charts/LineChart.d.ts +54 -47
- package/dist/charts/LineChart.js +159 -117
- package/dist/charts/PieChart.d.ts +32 -53
- package/dist/charts/PieChart.js +149 -135
- 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/constants.d.ts +96 -256
- package/dist/charts/constants.js +105 -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 +197 -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 +47 -116
- package/dist/charts/useChartInteraction.js +95 -71
- 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 +81 -17
- package/dist/drawer/Drawer.js +370 -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 +292 -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 +1077 -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 +99 -0
- package/dist/timeline/Timeline.js +269 -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 +851 -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
package/dist/icons/Icon.d.ts
CHANGED
|
@@ -1,51 +1,78 @@
|
|
|
1
|
-
import type { Icon as PhosphorIcon
|
|
2
|
-
|
|
1
|
+
import type { Icon as PhosphorIcon } from "@phosphor-icons/react";
|
|
2
|
+
import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
|
|
3
|
+
import type { Hex } from "../theme/tokens/types.js";
|
|
4
|
+
/** Color role of the icon (color set, Constitution V-A). Resolves to `color.text.*`. */
|
|
3
5
|
export declare enum IconVariant {
|
|
6
|
+
/** `text.primary`. The default. */
|
|
4
7
|
PRIMARY = "PRIMARY",
|
|
5
|
-
|
|
8
|
+
/** `text.secondary`. */
|
|
6
9
|
SECONDARY = "SECONDARY",
|
|
7
|
-
|
|
10
|
+
/** `text.tertiary`. */
|
|
8
11
|
TERTIARY = "TERTIARY",
|
|
9
|
-
|
|
12
|
+
/** `text.disabled`. */
|
|
13
|
+
DISABLED = "DISABLED",
|
|
14
|
+
/** The parent's color (`currentColor`); used inside Button, Chip and other colored controls. */
|
|
15
|
+
INHERIT = "INHERIT",
|
|
16
|
+
/** Status: success, `text.success`. */
|
|
10
17
|
SUCCESS = "SUCCESS",
|
|
11
|
-
|
|
18
|
+
/** Status: warning, `text.warning`. */
|
|
12
19
|
WARNING = "WARNING",
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
BLUE = "BLUE",
|
|
16
|
-
LIME = "LIME",
|
|
17
|
-
TEAL = "TEAL",
|
|
18
|
-
YELLOW = "YELLOW",
|
|
19
|
-
ORANGE = "ORANGE",
|
|
20
|
-
PURPLE = "PURPLE",
|
|
21
|
-
PINK = "PINK"
|
|
20
|
+
/** Status: error, `text.error`. */
|
|
21
|
+
ERROR = "ERROR"
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Direct mapping to the Phosphor Icons `IconWeight` type.
|
|
25
|
-
*/
|
|
23
|
+
/** Stroke weight: Phosphor's six styles of the same glyph. */
|
|
26
24
|
export declare enum IconWeight {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
/** Hairline strokes. */
|
|
26
|
+
THIN = "THIN",
|
|
27
|
+
/** Light strokes. */
|
|
28
|
+
LIGHT = "LIGHT",
|
|
29
|
+
/** Phosphor's default stroke. */
|
|
30
|
+
REGULAR = "REGULAR",
|
|
31
|
+
/** Heavier strokes; reads well at 12–18px beside 400/500 text. */
|
|
32
|
+
BOLD = "BOLD",
|
|
33
|
+
/** Solid fill. */
|
|
34
|
+
FILL = "FILL",
|
|
35
|
+
/** Stroke over a 20% fill. */
|
|
36
|
+
DUOTONE = "DUOTONE"
|
|
33
37
|
}
|
|
34
|
-
export interface IconProps {
|
|
35
|
-
/** Phosphor icon *component
|
|
38
|
+
export interface IconProps extends AriaAttributes {
|
|
39
|
+
/** Phosphor icon *component*: pass `PlusIcon`, not `<PlusIcon />`. */
|
|
36
40
|
component: PhosphorIcon;
|
|
37
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Square size in px. Parents pick it from their rung (`BUTTON_SIZE_TO_ICON_PX_MAP`).
|
|
43
|
+
* @default 16
|
|
44
|
+
*/
|
|
38
45
|
size?: number;
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Stroke weight.
|
|
48
|
+
* @default IconWeight.REGULAR
|
|
49
|
+
*/
|
|
50
|
+
weight?: IconWeight;
|
|
51
|
+
/**
|
|
52
|
+
* Color role. `INHERIT` follows the parent's color (used inside Button).
|
|
53
|
+
* @default IconVariant.PRIMARY
|
|
54
|
+
*/
|
|
42
55
|
variant?: IconVariant;
|
|
43
|
-
/**
|
|
44
|
-
|
|
56
|
+
/** Raw color override that bypasses `variant`. Discouraged: prefer a `variant`. */
|
|
57
|
+
hex?: Hex;
|
|
58
|
+
/** Accessible name. Set it when the icon carries meaning on its own; when absent the icon is `aria-hidden`. */
|
|
59
|
+
ariaLabel?: string;
|
|
60
|
+
/** Hover hint, shown in a `Tooltip`. */
|
|
61
|
+
tooltip?: string | ReactNode;
|
|
62
|
+
/**
|
|
63
|
+
* Rotates continuously (a loading glyph). Static under reduced motion.
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
isSpinning?: boolean;
|
|
67
|
+
/** DOM id on the `<svg>`. */
|
|
68
|
+
id?: string;
|
|
69
|
+
/** Any `data-*` attribute, forwarded to the `<svg>`. */
|
|
70
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
71
|
+
/** Extra class on the `<svg>`. */
|
|
72
|
+
className?: string;
|
|
73
|
+
/** Inline style on the `<svg>`; only for setting CSS custom properties. */
|
|
74
|
+
style?: CSSProperties;
|
|
45
75
|
}
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
* hardcoded `color` prop. Never render a Phosphor icon bare.
|
|
49
|
-
*/
|
|
50
|
-
declare const Icon: ({ component: IconComponent, variant, size, weight, alt, }: IconProps) => import("react").JSX.Element;
|
|
76
|
+
/** Wraps a Phosphor icon so its color, weight and motion come from the DLS. Never render a Phosphor icon bare. */
|
|
77
|
+
declare const Icon: import("react").ForwardRefExoticComponent<IconProps & import("react").RefAttributes<SVGSVGElement>>;
|
|
51
78
|
export default Icon;
|
package/dist/icons/Icon.js
CHANGED
|
@@ -1,56 +1,115 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import LazyTooltip from "../tooltip/internal/LazyTooltip.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import { forwardRef } from "react";
|
|
3
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { cx } from "@linaria/core";
|
|
4
6
|
//#region src/icons/Icon.tsx
|
|
5
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* The one way to draw a Phosphor icon. Color is CSS, not JS: `ICON_VARIANT_TO_CSS_MAP` sets
|
|
9
|
+
* `color` on the `<svg>` from `color.text.*`, and Phosphor paints with `currentColor`, so a theme
|
|
10
|
+
* switch needs no React re-render (1.x read the theme with `useGalaxyTheme()`).
|
|
11
|
+
*
|
|
12
|
+
* `size` stays a number in px: an icon sizes to its container's rung through the parent's
|
|
13
|
+
* `<PARENT>_SIZE_TO_ICON_PX_MAP` (`BUTTON_SIZE_TO_ICON_PX_MAP`). Parents that own the color
|
|
14
|
+
* (`Button`, `Chip`) pass `IconVariant.INHERIT` so the icon follows their `color`.
|
|
15
|
+
*
|
|
16
|
+
* `hex` is set as the `--gx-icon-hex` custom property in `style` and read by a block switched on
|
|
17
|
+
* only when the prop is set (the Text pattern).
|
|
18
|
+
*
|
|
19
|
+
* `tooltip` renders through `LazyTooltip`, so an icon without one never loads `Tooltip` (and
|
|
20
|
+
* floating-ui) into the bundle that draws it.
|
|
21
|
+
*/
|
|
22
|
+
/** Color role of the icon (color set, Constitution V-A). Resolves to `color.text.*`. */
|
|
6
23
|
var IconVariant = /* @__PURE__ */ function(IconVariant) {
|
|
24
|
+
/** `text.primary`. The default. */
|
|
7
25
|
IconVariant["PRIMARY"] = "PRIMARY";
|
|
8
|
-
|
|
26
|
+
/** `text.secondary`. */
|
|
9
27
|
IconVariant["SECONDARY"] = "SECONDARY";
|
|
10
|
-
|
|
28
|
+
/** `text.tertiary`. */
|
|
11
29
|
IconVariant["TERTIARY"] = "TERTIARY";
|
|
12
|
-
|
|
30
|
+
/** `text.disabled`. */
|
|
31
|
+
IconVariant["DISABLED"] = "DISABLED";
|
|
32
|
+
/** The parent's color (`currentColor`); used inside Button, Chip and other colored controls. */
|
|
33
|
+
IconVariant["INHERIT"] = "INHERIT";
|
|
34
|
+
/** Status: success, `text.success`. */
|
|
13
35
|
IconVariant["SUCCESS"] = "SUCCESS";
|
|
14
|
-
|
|
36
|
+
/** Status: warning, `text.warning`. */
|
|
15
37
|
IconVariant["WARNING"] = "WARNING";
|
|
16
|
-
|
|
17
|
-
IconVariant["
|
|
18
|
-
IconVariant["BLUE"] = "BLUE";
|
|
19
|
-
IconVariant["LIME"] = "LIME";
|
|
20
|
-
IconVariant["TEAL"] = "TEAL";
|
|
21
|
-
IconVariant["YELLOW"] = "YELLOW";
|
|
22
|
-
IconVariant["ORANGE"] = "ORANGE";
|
|
23
|
-
IconVariant["PURPLE"] = "PURPLE";
|
|
24
|
-
IconVariant["PINK"] = "PINK";
|
|
38
|
+
/** Status: error, `text.error`. */
|
|
39
|
+
IconVariant["ERROR"] = "ERROR";
|
|
25
40
|
return IconVariant;
|
|
26
41
|
}({});
|
|
27
|
-
/**
|
|
28
|
-
* Direct mapping to the Phosphor Icons `IconWeight` type.
|
|
29
|
-
*/
|
|
42
|
+
/** Stroke weight: Phosphor's six styles of the same glyph. */
|
|
30
43
|
var IconWeight = /* @__PURE__ */ function(IconWeight) {
|
|
31
|
-
|
|
32
|
-
IconWeight["
|
|
33
|
-
|
|
34
|
-
IconWeight["
|
|
35
|
-
|
|
36
|
-
IconWeight["
|
|
44
|
+
/** Hairline strokes. */
|
|
45
|
+
IconWeight["THIN"] = "THIN";
|
|
46
|
+
/** Light strokes. */
|
|
47
|
+
IconWeight["LIGHT"] = "LIGHT";
|
|
48
|
+
/** Phosphor's default stroke. */
|
|
49
|
+
IconWeight["REGULAR"] = "REGULAR";
|
|
50
|
+
/** Heavier strokes; reads well at 12–18px beside 400/500 text. */
|
|
51
|
+
IconWeight["BOLD"] = "BOLD";
|
|
52
|
+
/** Solid fill. */
|
|
53
|
+
IconWeight["FILL"] = "FILL";
|
|
54
|
+
/** Stroke over a 20% fill. */
|
|
55
|
+
IconWeight["DUOTONE"] = "DUOTONE";
|
|
37
56
|
return IconWeight;
|
|
38
57
|
}({});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
58
|
+
/** The Phosphor weight each `IconWeight` draws. */
|
|
59
|
+
var ICON_WEIGHT_TO_PHOSPHOR_WEIGHT_MAP = {
|
|
60
|
+
["THIN"]: "thin",
|
|
61
|
+
["LIGHT"]: "light",
|
|
62
|
+
["REGULAR"]: "regular",
|
|
63
|
+
["BOLD"]: "bold",
|
|
64
|
+
["FILL"]: "fill",
|
|
65
|
+
["DUOTONE"]: "duotone"
|
|
66
|
+
};
|
|
67
|
+
/** Never squeezed by a flex row; color changes on the `duration.fast` curve like Text. */
|
|
68
|
+
var ROOT_CSS = "gx-Icon-ROOT_CSS-rjgxn1p";
|
|
69
|
+
var ICON_VARIANT_TO_CSS_MAP = {
|
|
70
|
+
["PRIMARY"]: "gx-Icon-PRIMARY-p1o2vka7",
|
|
71
|
+
["SECONDARY"]: "gx-Icon-SECONDARY-smpvpdm",
|
|
72
|
+
["TERTIARY"]: "gx-Icon-TERTIARY-t1j7b465",
|
|
73
|
+
["DISABLED"]: "gx-Icon-DISABLED-d1bri864",
|
|
74
|
+
["INHERIT"]: "gx-Icon-INHERIT-iky75km",
|
|
75
|
+
["SUCCESS"]: "gx-Icon-SUCCESS-s1oor3li",
|
|
76
|
+
["WARNING"]: "gx-Icon-WARNING-w1awu5xi",
|
|
77
|
+
["ERROR"]: "gx-Icon-ERROR-e1ucpgem"
|
|
78
|
+
};
|
|
79
|
+
/** Declared after the variant map so `hex` wins over it. */
|
|
80
|
+
var HEX_CSS = "gx-Icon-HEX_CSS-h8mope0";
|
|
42
81
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
82
|
+
* One turn every six `duration.base` steps (900ms), linear, forever. The keyframes are global, so
|
|
83
|
+
* the name is `gx-` prefixed. `REDUCED_MOTION` stops it.
|
|
45
84
|
*/
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
85
|
+
var SPINNING_CSS = "gx-Icon-SPINNING_CSS-s1uiuyxj";
|
|
86
|
+
/** Wraps a Phosphor icon so its color, weight and motion come from the DLS. Never render a Phosphor icon bare. */
|
|
87
|
+
var Icon = forwardRef(function Icon({ component: PhosphorComponent, size = 16, weight = "REGULAR", variant = "PRIMARY", hex, ariaLabel, tooltip, isSpinning = false, id, className, style, ...rest }, ref) {
|
|
88
|
+
const variables = {};
|
|
89
|
+
if (hex !== void 0) variables["--gx-icon-hex"] = hex;
|
|
90
|
+
const hasTooltip = tooltip !== void 0 && tooltip !== null && tooltip !== false && tooltip !== "";
|
|
91
|
+
const icon = /* @__PURE__ */ jsx(PhosphorComponent, {
|
|
92
|
+
...ariaLabel === void 0 ? { "aria-hidden": true } : {
|
|
93
|
+
role: "img",
|
|
94
|
+
"aria-label": ariaLabel
|
|
95
|
+
},
|
|
96
|
+
...rest,
|
|
97
|
+
ref,
|
|
98
|
+
id,
|
|
49
99
|
size,
|
|
50
|
-
weight,
|
|
51
|
-
color:
|
|
52
|
-
|
|
100
|
+
weight: ICON_WEIGHT_TO_PHOSPHOR_WEIGHT_MAP[weight],
|
|
101
|
+
color: "currentColor",
|
|
102
|
+
className: cx(ROOT_CSS, ICON_VARIANT_TO_CSS_MAP[variant], hex !== void 0 && HEX_CSS, isSpinning && SPINNING_CSS, className),
|
|
103
|
+
style: {
|
|
104
|
+
...variables,
|
|
105
|
+
...style
|
|
106
|
+
}
|
|
53
107
|
});
|
|
54
|
-
|
|
108
|
+
return hasTooltip ? /* @__PURE__ */ jsx(LazyTooltip, {
|
|
109
|
+
body: tooltip,
|
|
110
|
+
children: icon
|
|
111
|
+
}) : icon;
|
|
112
|
+
});
|
|
113
|
+
Icon.displayName = "Icon";
|
|
55
114
|
//#endregion
|
|
56
115
|
export { IconVariant, IconWeight, Icon as default };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/** @internal Props of `IconSlot`. */
|
|
3
|
+
export interface IconSlotProps {
|
|
4
|
+
/** The glyph size in px; the slot is that rounded up to even. */
|
|
5
|
+
px: number;
|
|
6
|
+
/** The `Icon` (or spinning ring) at `px`. */
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/** @internal An even, fixed-size box for an odd-sized icon: crisp at 1x, centered at 2x. */
|
|
10
|
+
export default function IconSlot({ px, children }: IconSlotProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* empty css */
|
|
2
|
+
import { styled } from "@linaria/react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/icons/internal/IconSlot.tsx
|
|
5
|
+
/**
|
|
6
|
+
* @internal The box a content icon sits in when its size is odd (Button's and Widget's 13 / 15 /
|
|
7
|
+
* 17px icons), private to the DLS (an `internal/` module: built, never a package export).
|
|
8
|
+
*
|
|
9
|
+
* An odd glyph centered in an even row (or an even icon-only square) lands on a half pixel, which
|
|
10
|
+
* blurs its strokes at 1x. The slot is the glyph's size rounded up to even, so it centers on whole
|
|
11
|
+
* pixels; inside it the glyph sits at the top-left on 1x screens (whole pixels, half a pixel off
|
|
12
|
+
* the true center) and centered from 1.5x up (half a CSS pixel is a whole device pixel there, so
|
|
13
|
+
* it is both crisp and exactly centered). The glyph's own center is then a half pixel, where an
|
|
14
|
+
* odd Phosphor glyph draws its middle strokes, so those land on whole pixels too.
|
|
15
|
+
*
|
|
16
|
+
* Fixed size whatever it holds, so a host can swap the icon for a spinning ring of the same px
|
|
17
|
+
* (Button `isLoading`) without changing its width.
|
|
18
|
+
*/
|
|
19
|
+
var Root = /*#__PURE__*/ styled("span")({
|
|
20
|
+
name: "Root",
|
|
21
|
+
class: "gx-IconSlot-ryqtygb",
|
|
22
|
+
propsAsIs: false
|
|
23
|
+
});
|
|
24
|
+
/** @internal An even, fixed-size box for an odd-sized icon: crisp at 1x, centered at 2x. */
|
|
25
|
+
function IconSlot({ px, children }) {
|
|
26
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
27
|
+
style: { "--gx-icon-slot": `${px % 2 === 0 ? px : px + 1}px` },
|
|
28
|
+
children
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { IconSlot as default };
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type ReactElement, type ReactNode, type RefAttributes } from "react";
|
|
2
|
+
import { Orientation } from "../theme/enums.js";
|
|
3
|
+
/** Rung of the group's checkboxes (Constitution III-A.4). Mapped to CheckboxInputSize and FieldSize one to one. */
|
|
4
|
+
export declare enum CheckboxGroupSize {
|
|
5
|
+
/** 12px boxes, caption labels. */
|
|
6
|
+
X_SMALL = "X_SMALL",
|
|
7
|
+
/** 14px boxes, body_sm labels. */
|
|
8
|
+
SMALL = "SMALL",
|
|
9
|
+
/** 16px boxes, body_md labels. The default. */
|
|
10
|
+
MEDIUM = "MEDIUM",
|
|
11
|
+
/** 16px boxes, body_lg labels. */
|
|
12
|
+
LARGE = "LARGE",
|
|
13
|
+
/** 18px boxes, body_lg labels. */
|
|
14
|
+
X_LARGE = "X_LARGE"
|
|
15
|
+
}
|
|
16
|
+
/** Fill of the unchecked boxes (Constitution V-A surface set). Mapped to CheckboxInputVariant one to one. */
|
|
17
|
+
export declare enum CheckboxGroupVariant {
|
|
18
|
+
/** `background.base`. */
|
|
19
|
+
BASE = "BASE",
|
|
20
|
+
/** `background.primary`. The default. */
|
|
21
|
+
PRIMARY = "PRIMARY",
|
|
22
|
+
/** `background.secondary`. */
|
|
23
|
+
SECONDARY = "SECONDARY",
|
|
24
|
+
/** `background.tertiary`. */
|
|
25
|
+
TERTIARY = "TERTIARY"
|
|
26
|
+
}
|
|
27
|
+
/** One choice in a CheckboxGroup. */
|
|
28
|
+
export interface CheckboxGroupOption<TId extends string = string> {
|
|
29
|
+
/** Stable identifier; what `value` holds. */
|
|
30
|
+
id: TId;
|
|
31
|
+
/** Text beside the box. */
|
|
32
|
+
label: string;
|
|
33
|
+
/** Help copy under the label. Text and inline `Link`s only. */
|
|
34
|
+
description?: ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* Disables this option only.
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
isDisabled?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface CheckboxGroupProps<TId extends string = string> extends AriaAttributes {
|
|
42
|
+
/** The choices, in display order. */
|
|
43
|
+
options: CheckboxGroupOption<TId>[];
|
|
44
|
+
/** Controlled ids of the checked options. Pass it with `onChange`. */
|
|
45
|
+
value?: TId[];
|
|
46
|
+
/**
|
|
47
|
+
* Initial checked ids while uncontrolled.
|
|
48
|
+
* @default []
|
|
49
|
+
*/
|
|
50
|
+
defaultValue?: TId[];
|
|
51
|
+
/** Called with the new array of checked ids, in `options` order. */
|
|
52
|
+
onChange?: (value: TId[]) => void;
|
|
53
|
+
/** The question, rendered through `Field` above the options. For a description, a tooltip or a horizontal layout, wrap the group in `Field` instead. */
|
|
54
|
+
label?: string;
|
|
55
|
+
/** Message from the app, shown under the options through `Field`. It also marks every box invalid. */
|
|
56
|
+
error?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Error border and `aria-invalid` on every box, without a message. `error` implies it.
|
|
59
|
+
* @default false
|
|
60
|
+
*/
|
|
61
|
+
isError?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Asterisk on the `label` (via `Field`). It does no validation.
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
isRequired?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* `VERTICAL` stacks the options; `HORIZONTAL` puts them in a row that wraps.
|
|
69
|
+
* @default Orientation.VERTICAL
|
|
70
|
+
*/
|
|
71
|
+
orientation?: Orientation;
|
|
72
|
+
/**
|
|
73
|
+
* Rung of every box and label, of the gaps, and of the `label` and `error` type.
|
|
74
|
+
* @default CheckboxGroupSize.MEDIUM
|
|
75
|
+
*/
|
|
76
|
+
size?: CheckboxGroupSize;
|
|
77
|
+
/**
|
|
78
|
+
* Fill of every unchecked box, from the surface set. Ignored with `isGhost`.
|
|
79
|
+
* @default CheckboxGroupVariant.PRIMARY
|
|
80
|
+
*/
|
|
81
|
+
variant?: CheckboxGroupVariant;
|
|
82
|
+
/**
|
|
83
|
+
* Ghost items: every unchecked box has no fill and keeps its hairline (1.x `TRANSPARENT`);
|
|
84
|
+
* passed to each CheckboxInput as `isGhost`.
|
|
85
|
+
* @default false
|
|
86
|
+
*/
|
|
87
|
+
isGhost?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Disables every option.
|
|
90
|
+
* @default false
|
|
91
|
+
*/
|
|
92
|
+
isDisabled?: boolean;
|
|
93
|
+
/** Accessible name of the group when there is no `label` and no wrapping `Field` label. */
|
|
94
|
+
ariaLabel?: string;
|
|
95
|
+
/**
|
|
96
|
+
* DOM id of the group element. A wrapping `Field`'s id wins.
|
|
97
|
+
* @default useId()
|
|
98
|
+
*/
|
|
99
|
+
id?: string;
|
|
100
|
+
/** Any `data-*` attribute, forwarded to the group element. */
|
|
101
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
102
|
+
/** Extra class on the root: the `Field` wrapper when the group renders one, otherwise the group element. */
|
|
103
|
+
className?: string;
|
|
104
|
+
/** Inline style on the root; only for setting CSS custom properties. */
|
|
105
|
+
style?: CSSProperties;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The public, generic call signature (`TId` inferred from `options`). Never called: it only types
|
|
109
|
+
* the default export. An arrow function rather than a type literal, so react-docgen-typescript
|
|
110
|
+
* reads the props for the Docs tab.
|
|
111
|
+
*/
|
|
112
|
+
declare const CHECKBOX_GROUP_SIGNATURE: <TId extends string = string>(_props: CheckboxGroupProps<TId> & RefAttributes<HTMLDivElement>) => ReactElement | null;
|
|
113
|
+
/** A set of checkboxes answering one question; the value is the array of checked ids. */
|
|
114
|
+
declare const CheckboxGroup: typeof CHECKBOX_GROUP_SIGNATURE;
|
|
115
|
+
export default CheckboxGroup;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { Orientation } from "../theme/enums.js";
|
|
2
|
+
import { useControlledState } from "../hooks/useControlledState.js";
|
|
3
|
+
import { FieldContext } from "../hooks/useField.js";
|
|
4
|
+
import { useDevWarning } from "./internal/devWarn.js";
|
|
5
|
+
import { useFieldWiring } from "./internal/fieldWiring.js";
|
|
6
|
+
import CheckboxInput, { CheckboxInputSize, CheckboxInputVariant } from "./CheckboxInput.js";
|
|
7
|
+
import Field, { FieldSize } from "./Field.js";
|
|
8
|
+
import { rootStyle, useOwnField } from "./internal/ownField.js";
|
|
9
|
+
/* empty css */
|
|
10
|
+
import { styled } from "@linaria/react";
|
|
11
|
+
import { forwardRef } from "react";
|
|
12
|
+
import { jsx } from "react/jsx-runtime";
|
|
13
|
+
import { cx } from "@linaria/core";
|
|
14
|
+
//#region src/inputs/CheckboxGroup.tsx
|
|
15
|
+
/**
|
|
16
|
+
* One question whose answer is any number of options ("Notify me about", "Sync these tables"). It
|
|
17
|
+
* renders a `CheckboxInput` per option, in a column or a wrapping row, holds the checked ids as one
|
|
18
|
+
* array with `value` / `defaultValue` / `onChange`, and names the set for assistive tech as a
|
|
19
|
+
* `group`. Like the text inputs, it takes `label` and `error` directly and renders them through
|
|
20
|
+
* `Field`; for a description, a label tooltip or a horizontal label column, wrap it in a `Field`.
|
|
21
|
+
*
|
|
22
|
+
* It does not validate ("choose at least one" is the app's `error`), draws no "select all" (a parent
|
|
23
|
+
* `CheckboxInput` with `isIndeterminate` does that), and is not a multi-select menu
|
|
24
|
+
* (`MultiSelectInput`). Exactly one choice is `RadioGroup`. New in 2.0 (1.x laid out
|
|
25
|
+
* `CheckboxInput`s by hand with one boolean per box).
|
|
26
|
+
*/
|
|
27
|
+
/** Rung of the group's checkboxes (Constitution III-A.4). Mapped to CheckboxInputSize and FieldSize one to one. */
|
|
28
|
+
var CheckboxGroupSize = /* @__PURE__ */ function(CheckboxGroupSize) {
|
|
29
|
+
/** 12px boxes, caption labels. */
|
|
30
|
+
CheckboxGroupSize["X_SMALL"] = "X_SMALL";
|
|
31
|
+
/** 14px boxes, body_sm labels. */
|
|
32
|
+
CheckboxGroupSize["SMALL"] = "SMALL";
|
|
33
|
+
/** 16px boxes, body_md labels. The default. */
|
|
34
|
+
CheckboxGroupSize["MEDIUM"] = "MEDIUM";
|
|
35
|
+
/** 16px boxes, body_lg labels. */
|
|
36
|
+
CheckboxGroupSize["LARGE"] = "LARGE";
|
|
37
|
+
/** 18px boxes, body_lg labels. */
|
|
38
|
+
CheckboxGroupSize["X_LARGE"] = "X_LARGE";
|
|
39
|
+
return CheckboxGroupSize;
|
|
40
|
+
}({});
|
|
41
|
+
/** Fill of the unchecked boxes (Constitution V-A surface set). Mapped to CheckboxInputVariant one to one. */
|
|
42
|
+
var CheckboxGroupVariant = /* @__PURE__ */ function(CheckboxGroupVariant) {
|
|
43
|
+
/** `background.base`. */
|
|
44
|
+
CheckboxGroupVariant["BASE"] = "BASE";
|
|
45
|
+
/** `background.primary`. The default. */
|
|
46
|
+
CheckboxGroupVariant["PRIMARY"] = "PRIMARY";
|
|
47
|
+
/** `background.secondary`. */
|
|
48
|
+
CheckboxGroupVariant["SECONDARY"] = "SECONDARY";
|
|
49
|
+
/** `background.tertiary`. */
|
|
50
|
+
CheckboxGroupVariant["TERTIARY"] = "TERTIARY";
|
|
51
|
+
return CheckboxGroupVariant;
|
|
52
|
+
}({});
|
|
53
|
+
/** The group element. The first row sits in a control-height band (block inset = Field's label offset). */
|
|
54
|
+
var Root = /*#__PURE__*/ styled("div")({
|
|
55
|
+
name: "Root",
|
|
56
|
+
class: "gx-CheckboxGroup-r121frsz",
|
|
57
|
+
propsAsIs: false
|
|
58
|
+
});
|
|
59
|
+
/** A column, or a row that wraps. */
|
|
60
|
+
var CHECKBOX_GROUP_ORIENTATION_TO_CSS_MAP = {
|
|
61
|
+
[Orientation.VERTICAL]: "gx-CheckboxGroup-Orientation_VERTICAL-o112a0gt",
|
|
62
|
+
[Orientation.HORIZONTAL]: "gx-CheckboxGroup-Orientation_HORIZONTAL-o1y9waz3"
|
|
63
|
+
};
|
|
64
|
+
/** Row gap, column gap and block inset per rung (inset = (control rung − label line) / 2). */
|
|
65
|
+
var CHECKBOX_GROUP_SIZE_TO_CSS_MAP = {
|
|
66
|
+
["X_SMALL"]: "gx-CheckboxGroup-X_SMALL-x1vxye07",
|
|
67
|
+
["SMALL"]: "gx-CheckboxGroup-SMALL-sxibfpp",
|
|
68
|
+
["MEDIUM"]: "gx-CheckboxGroup-MEDIUM-m6pqkmw",
|
|
69
|
+
["LARGE"]: "gx-CheckboxGroup-LARGE-l1wbobiu",
|
|
70
|
+
["X_LARGE"]: "gx-CheckboxGroup-X_LARGE-xtetomk"
|
|
71
|
+
};
|
|
72
|
+
/** Every box takes the group's rung. */
|
|
73
|
+
var CHECKBOX_GROUP_SIZE_TO_CHECKBOX_INPUT_SIZE_MAP = {
|
|
74
|
+
["X_SMALL"]: CheckboxInputSize.X_SMALL,
|
|
75
|
+
["SMALL"]: CheckboxInputSize.SMALL,
|
|
76
|
+
["MEDIUM"]: CheckboxInputSize.MEDIUM,
|
|
77
|
+
["LARGE"]: CheckboxInputSize.LARGE,
|
|
78
|
+
["X_LARGE"]: CheckboxInputSize.X_LARGE
|
|
79
|
+
};
|
|
80
|
+
/** Every box takes the group's fill. */
|
|
81
|
+
var CHECKBOX_GROUP_VARIANT_TO_CHECKBOX_INPUT_VARIANT_MAP = {
|
|
82
|
+
["BASE"]: CheckboxInputVariant.BASE,
|
|
83
|
+
["PRIMARY"]: CheckboxInputVariant.PRIMARY,
|
|
84
|
+
["SECONDARY"]: CheckboxInputVariant.SECONDARY,
|
|
85
|
+
["TERTIARY"]: CheckboxInputVariant.TERTIARY
|
|
86
|
+
};
|
|
87
|
+
/** The `Field` the group renders for its own `label` / `error` uses the same rung. */
|
|
88
|
+
var CHECKBOX_GROUP_SIZE_TO_FIELD_SIZE_MAP = {
|
|
89
|
+
["X_SMALL"]: FieldSize.X_SMALL,
|
|
90
|
+
["SMALL"]: FieldSize.SMALL,
|
|
91
|
+
["MEDIUM"]: FieldSize.MEDIUM,
|
|
92
|
+
["LARGE"]: FieldSize.LARGE,
|
|
93
|
+
["X_LARGE"]: FieldSize.X_LARGE
|
|
94
|
+
};
|
|
95
|
+
/** The uncontrolled default; never mutated. */
|
|
96
|
+
var EMPTY_IDS = [];
|
|
97
|
+
/** The group element and its boxes, wired to the nearest Field (the group's own or the app's). */
|
|
98
|
+
function GroupBody({ groupProps, forwardedRef, isRoot }) {
|
|
99
|
+
const { options, value, defaultValue, onChange, label: _label, error, isError = false, isRequired = false, orientation = Orientation.VERTICAL, size = "MEDIUM", variant = "PRIMARY", isGhost = false, isDisabled = false, ariaLabel, id, "aria-describedby": ariaDescribedBy, className, style, ...rest } = groupProps;
|
|
100
|
+
const wiring = useFieldWiring({
|
|
101
|
+
id,
|
|
102
|
+
ariaLabel,
|
|
103
|
+
ariaLabelAttribute: rest["aria-label"],
|
|
104
|
+
ariaLabelledBy: rest["aria-labelledby"],
|
|
105
|
+
ariaDescribedBy,
|
|
106
|
+
error,
|
|
107
|
+
isError,
|
|
108
|
+
isRequired
|
|
109
|
+
});
|
|
110
|
+
const { field, controlId: groupId, describedBy, hasName } = wiring;
|
|
111
|
+
const [checked, setChecked] = useControlledState({
|
|
112
|
+
value,
|
|
113
|
+
defaultValue: defaultValue ?? EMPTY_IDS,
|
|
114
|
+
onChange
|
|
115
|
+
});
|
|
116
|
+
const isInvalid = error !== void 0 || wiring.isInvalid;
|
|
117
|
+
useDevWarning(!hasName, "[@galaxy-io/dls] CheckboxGroup has no accessible name. Pass `label`, wrap it in a labelled `Field`, or set `ariaLabel`.");
|
|
118
|
+
/** The checked ids after one toggle: rendered options in `options` order, then unknown ids kept. */
|
|
119
|
+
const toggle = (optionId, isChecked) => {
|
|
120
|
+
const isOn = (candidate) => candidate === optionId ? isChecked : checked.includes(candidate);
|
|
121
|
+
const known = new Set(options.map((option) => option.id));
|
|
122
|
+
setChecked([...options.map((option) => option.id).filter(isOn), ...checked.filter((candidate) => !known.has(candidate))]);
|
|
123
|
+
};
|
|
124
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
125
|
+
ref: forwardedRef,
|
|
126
|
+
role: "group",
|
|
127
|
+
id: groupId,
|
|
128
|
+
"aria-labelledby": field?.labelId,
|
|
129
|
+
"aria-label": ariaLabel,
|
|
130
|
+
"aria-describedby": describedBy,
|
|
131
|
+
"aria-disabled": isDisabled ? true : void 0,
|
|
132
|
+
...rest,
|
|
133
|
+
className: cx(CHECKBOX_GROUP_ORIENTATION_TO_CSS_MAP[orientation], CHECKBOX_GROUP_SIZE_TO_CSS_MAP[size], isRoot && className),
|
|
134
|
+
...rootStyle(isRoot, style),
|
|
135
|
+
children: /* @__PURE__ */ jsx(FieldContext.Provider, {
|
|
136
|
+
value: null,
|
|
137
|
+
children: options.map((option) => /* @__PURE__ */ jsx(CheckboxInput, {
|
|
138
|
+
label: option.label,
|
|
139
|
+
...option.description === void 0 ? {} : { description: option.description },
|
|
140
|
+
size: CHECKBOX_GROUP_SIZE_TO_CHECKBOX_INPUT_SIZE_MAP[size],
|
|
141
|
+
variant: CHECKBOX_GROUP_VARIANT_TO_CHECKBOX_INPUT_VARIANT_MAP[variant],
|
|
142
|
+
isGhost,
|
|
143
|
+
isChecked: checked.includes(option.id),
|
|
144
|
+
isDisabled: isDisabled || option.isDisabled === true,
|
|
145
|
+
isError: isInvalid,
|
|
146
|
+
onChange: (isChecked) => toggle(option.id, isChecked)
|
|
147
|
+
}, option.id))
|
|
148
|
+
})
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/** A set of checkboxes answering one question; the value is the array of checked ids. */
|
|
152
|
+
var CheckboxGroupBase = forwardRef(function CheckboxGroup(props, ref) {
|
|
153
|
+
const { label, error, isRequired = false, size = "MEDIUM" } = props;
|
|
154
|
+
const { id, className, style } = props;
|
|
155
|
+
const ownField = useOwnField({
|
|
156
|
+
componentName: "CheckboxGroup",
|
|
157
|
+
label,
|
|
158
|
+
error,
|
|
159
|
+
isRequired,
|
|
160
|
+
size: CHECKBOX_GROUP_SIZE_TO_FIELD_SIZE_MAP[size],
|
|
161
|
+
id,
|
|
162
|
+
className,
|
|
163
|
+
style
|
|
164
|
+
});
|
|
165
|
+
if (ownField !== null) return /* @__PURE__ */ jsx(Field, {
|
|
166
|
+
...ownField,
|
|
167
|
+
children: /* @__PURE__ */ jsx(GroupBody, {
|
|
168
|
+
groupProps: props,
|
|
169
|
+
forwardedRef: ref,
|
|
170
|
+
isRoot: false
|
|
171
|
+
})
|
|
172
|
+
});
|
|
173
|
+
return /* @__PURE__ */ jsx(GroupBody, {
|
|
174
|
+
groupProps: props,
|
|
175
|
+
forwardedRef: ref,
|
|
176
|
+
isRoot: true
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
CheckboxGroupBase.displayName = "CheckboxGroup";
|
|
180
|
+
/** A set of checkboxes answering one question; the value is the array of checked ids. */
|
|
181
|
+
var CheckboxGroup = CheckboxGroupBase;
|
|
182
|
+
//#endregion
|
|
183
|
+
export { CheckboxGroupSize, CheckboxGroupVariant, CheckboxGroup as default };
|