@galaxy-io/dls 1.6.0 → 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 -27
- package/dist/inputs/SwitcherInput.js +0 -64
- 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/text/Text.js
CHANGED
|
@@ -1,114 +1,247 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FontFamily } from "../theme/enums.js";
|
|
2
|
+
import LazyTooltip from "../tooltip/internal/LazyTooltip.js";
|
|
2
3
|
/* empty css */
|
|
3
4
|
import { styled } from "@linaria/react";
|
|
4
|
-
import {
|
|
5
|
+
import { forwardRef, useCallback, useRef, useState } from "react";
|
|
5
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { cx } from "@linaria/core";
|
|
6
8
|
//#region src/text/Text.tsx
|
|
7
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* The text primitive. Every string in a Galaxy UI renders through it, so color, type step, weight
|
|
11
|
+
* and family always resolve from tokens. Renders a `<p>` by default; `as` changes the element (and
|
|
12
|
+
* so the semantics: `as="h2"` is how a heading gets its role) without changing the style. Replaces
|
|
13
|
+
* 1.x `Text` and `Paragraph` (`isProse` is the paragraph mode).
|
|
14
|
+
*
|
|
15
|
+
* Size × family without 27 blocks: each `TEXT_SIZE_TO_CSS_MAP` entry writes the step's metrics for
|
|
16
|
+
* all three families into `--gx-text-<metric>-<family>` custom properties, and the one
|
|
17
|
+
* `TEXT_FAMILY_TO_CSS_MAP` entry in play reads its own family's set. Weight works the same way.
|
|
18
|
+
*
|
|
19
|
+
* Continuous values (`hex`, `lineClamp`, `cursor`) are set as `--gx-text-*` custom properties in
|
|
20
|
+
* `style`, read by a block that is switched on only when the prop is set, so a nested `Text` never
|
|
21
|
+
* inherits its parent's value (the Box pattern).
|
|
22
|
+
*
|
|
23
|
+
* Plain `Text` has no hooks and imports no overlay code. `shouldTooltipOnOverflow` hands the
|
|
24
|
+
* element to `OverflowTooltipText`, which measures only when the pointer (or focus) arrives and
|
|
25
|
+
* mounts a `LazyTooltip` the first time the text really is cut, so a table of a thousand clamped
|
|
26
|
+
* cells carries no observers and no floating-ui instances until one is hovered.
|
|
27
|
+
*/
|
|
28
|
+
/** Color role of the text (color set, Constitution V-A). */
|
|
8
29
|
var TextVariant = /* @__PURE__ */ function(TextVariant) {
|
|
30
|
+
/** Primary copy, `text.primary`. */
|
|
9
31
|
TextVariant["PRIMARY"] = "PRIMARY";
|
|
10
|
-
|
|
32
|
+
/** Supporting copy, `text.secondary`. */
|
|
11
33
|
TextVariant["SECONDARY"] = "SECONDARY";
|
|
12
|
-
|
|
34
|
+
/** Hints and metadata, `text.tertiary`. */
|
|
13
35
|
TextVariant["TERTIARY"] = "TERTIARY";
|
|
14
|
-
|
|
36
|
+
/** Disabled controls, `text.disabled`. */
|
|
37
|
+
TextVariant["DISABLED"] = "DISABLED";
|
|
38
|
+
/** The parent's color (used inside Button and other colored controls). */
|
|
39
|
+
TextVariant["INHERIT"] = "INHERIT";
|
|
40
|
+
/** Status: success, `text.success`. */
|
|
15
41
|
TextVariant["SUCCESS"] = "SUCCESS";
|
|
42
|
+
/** Status: warning, `text.warning`. */
|
|
16
43
|
TextVariant["WARNING"] = "WARNING";
|
|
44
|
+
/** Status: error, `text.error`. */
|
|
17
45
|
TextVariant["ERROR"] = "ERROR";
|
|
18
|
-
TextVariant["PINK"] = "PINK";
|
|
19
|
-
TextVariant["ORANGE"] = "ORANGE";
|
|
20
|
-
TextVariant["YELLOW"] = "YELLOW";
|
|
21
|
-
TextVariant["LIME"] = "LIME";
|
|
22
|
-
TextVariant["BLUE"] = "BLUE";
|
|
23
|
-
TextVariant["TEAL"] = "TEAL";
|
|
24
|
-
TextVariant["PURPLE"] = "PURPLE";
|
|
25
|
-
TextVariant["DISABLED"] = "DISABLED";
|
|
26
46
|
return TextVariant;
|
|
27
47
|
}({});
|
|
28
|
-
/** Type
|
|
48
|
+
/** Type-scale step. Sets font size, line height and letter spacing together (Constitution III-A). */
|
|
29
49
|
var TextSize = /* @__PURE__ */ function(TextSize) {
|
|
50
|
+
/** 10px on a 12px line. */
|
|
30
51
|
TextSize["CAPTION"] = "CAPTION";
|
|
52
|
+
/** 12px on a 16px line. */
|
|
31
53
|
TextSize["BODY_SM"] = "BODY_SM";
|
|
54
|
+
/** 13px on a 16px line. The default. */
|
|
32
55
|
TextSize["BODY_MD"] = "BODY_MD";
|
|
56
|
+
/** 14px on a 20px line. */
|
|
33
57
|
TextSize["BODY_LG"] = "BODY_LG";
|
|
58
|
+
/** 16px on a 20px line. */
|
|
34
59
|
TextSize["HEADING_SM"] = "HEADING_SM";
|
|
60
|
+
/** 20px on a 24px line. */
|
|
35
61
|
TextSize["HEADING_MD"] = "HEADING_MD";
|
|
62
|
+
/** 24px on a 28px line. */
|
|
36
63
|
TextSize["HEADING_LG"] = "HEADING_LG";
|
|
64
|
+
/** 32px on a 40px line. */
|
|
65
|
+
TextSize["DISPLAY_SM"] = "DISPLAY_SM";
|
|
66
|
+
/** 40px on a 48px line. */
|
|
67
|
+
TextSize["DISPLAY_LG"] = "DISPLAY_LG";
|
|
37
68
|
return TextSize;
|
|
38
69
|
}({});
|
|
39
|
-
/** Font weight. Two steps by design
|
|
70
|
+
/** Font weight. Two steps by design: hierarchy comes from size, not weight. */
|
|
40
71
|
var TextWeight = /* @__PURE__ */ function(TextWeight) {
|
|
72
|
+
/** 400. */
|
|
41
73
|
TextWeight["REGULAR"] = "REGULAR";
|
|
74
|
+
/** 500. */
|
|
42
75
|
TextWeight["MEDIUM"] = "MEDIUM";
|
|
43
76
|
return TextWeight;
|
|
44
77
|
}({});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
78
|
+
/** Case transform. */
|
|
79
|
+
var TextTransform = /* @__PURE__ */ function(TextTransform) {
|
|
80
|
+
/** As written. */
|
|
81
|
+
TextTransform["NONE"] = "NONE";
|
|
82
|
+
/** All caps with added tracking, for small labels. */
|
|
83
|
+
TextTransform["UPPERCASE"] = "UPPERCASE";
|
|
84
|
+
return TextTransform;
|
|
85
|
+
}({});
|
|
86
|
+
var Root = /*#__PURE__*/ styled("p")({
|
|
87
|
+
name: "Root",
|
|
88
|
+
class: "gx-Text-rhbcgkd",
|
|
89
|
+
propsAsIs: false
|
|
90
|
+
});
|
|
91
|
+
var TEXT_VARIANT_TO_CSS_MAP = {
|
|
92
|
+
["PRIMARY"]: "gx-Text-PRIMARY-p1o7ndnh",
|
|
93
|
+
["SECONDARY"]: "gx-Text-SECONDARY-sxn0am",
|
|
94
|
+
["TERTIARY"]: "gx-Text-TERTIARY-tjam0gv",
|
|
95
|
+
["DISABLED"]: "gx-Text-DISABLED-d9vq58r",
|
|
96
|
+
["INHERIT"]: "gx-Text-INHERIT-ikc9uqt",
|
|
97
|
+
["SUCCESS"]: "gx-Text-SUCCESS-sd9g98b",
|
|
98
|
+
["WARNING"]: "gx-Text-WARNING-wj6mcrw",
|
|
99
|
+
["ERROR"]: "gx-Text-ERROR-em7katg"
|
|
100
|
+
};
|
|
101
|
+
var TEXT_SIZE_TO_CSS_MAP = {
|
|
102
|
+
["CAPTION"]: "gx-Text-CAPTION-clqhh6f",
|
|
103
|
+
["BODY_SM"]: "gx-Text-BODY_SM-bhah7z5",
|
|
104
|
+
["BODY_MD"]: "gx-Text-BODY_MD-bx8q0yn",
|
|
105
|
+
["BODY_LG"]: "gx-Text-BODY_LG-b1blssxg",
|
|
106
|
+
["HEADING_SM"]: "gx-Text-HEADING_SM-hp6b6ct",
|
|
107
|
+
["HEADING_MD"]: "gx-Text-HEADING_MD-h1n2lvag",
|
|
108
|
+
["HEADING_LG"]: "gx-Text-HEADING_LG-h123wkme",
|
|
109
|
+
["DISPLAY_SM"]: "gx-Text-DISPLAY_SM-d1m1eryv",
|
|
110
|
+
["DISPLAY_LG"]: "gx-Text-DISPLAY_LG-doytb7j"
|
|
48
111
|
};
|
|
49
|
-
|
|
50
|
-
var
|
|
51
|
-
|
|
112
|
+
/** Each family's weight, read by the family block. */
|
|
113
|
+
var TEXT_WEIGHT_TO_CSS_MAP = {
|
|
114
|
+
["REGULAR"]: "gx-Text-REGULAR-rf1moiw",
|
|
115
|
+
["MEDIUM"]: "gx-Text-MEDIUM-mii0sim"
|
|
52
116
|
};
|
|
53
|
-
|
|
54
|
-
|
|
117
|
+
/** The family stack, and the family's own set of the step and weight variables. */
|
|
118
|
+
var TEXT_FAMILY_TO_CSS_MAP = {
|
|
119
|
+
[FontFamily.SANS]: "gx-Text-FontFamily_SANS-f1r9nxxz",
|
|
120
|
+
[FontFamily.MONO]: "gx-Text-FontFamily_MONO-f1rdyhdd",
|
|
121
|
+
[FontFamily.SERIF]: "gx-Text-FontFamily_SERIF-f1tw09v7"
|
|
55
122
|
};
|
|
56
|
-
var
|
|
57
|
-
|
|
123
|
+
var TEXT_ALIGN_TO_CSS_MAP = {
|
|
124
|
+
left: "gx-Text-left-l14le4my",
|
|
125
|
+
center: "gx-Text-center-c1fdaqaz",
|
|
126
|
+
right: "gx-Text-right-royz62m"
|
|
58
127
|
};
|
|
59
|
-
var
|
|
60
|
-
|
|
128
|
+
var TEXT_TRANSFORM_TO_CSS_MAP = {
|
|
129
|
+
["NONE"]: "gx-Text-NONE-n1ms692r",
|
|
130
|
+
["UPPERCASE"]: "gx-Text-UPPERCASE-uceej59"
|
|
61
131
|
};
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
var
|
|
66
|
-
var
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
class: "shbcgkd",
|
|
73
|
-
propsAsIs: false,
|
|
74
|
-
vars: {
|
|
75
|
-
"shbcgkd-0": [_exp()],
|
|
76
|
-
"shbcgkd-1": [_exp2()],
|
|
77
|
-
"shbcgkd-2": [_exp3()],
|
|
78
|
-
"shbcgkd-3": [_exp4()],
|
|
79
|
-
"shbcgkd-4": [_exp5()],
|
|
80
|
-
"shbcgkd-5": [_exp6()],
|
|
81
|
-
"shbcgkd-6": [_exp7()],
|
|
82
|
-
"shbcgkd-7": [_exp8()],
|
|
83
|
-
"shbcgkd-8": [_exp9()],
|
|
84
|
-
"shbcgkd-9": [_exp11()],
|
|
85
|
-
"shbcgkd-10": [_exp12()],
|
|
86
|
-
"shbcgkd-11": [_exp13()],
|
|
87
|
-
"shbcgkd-12": [_exp14()],
|
|
88
|
-
"shbcgkd-13": [_exp15()]
|
|
89
|
-
}
|
|
90
|
-
}));
|
|
132
|
+
var PROSE_CSS = "gx-Text-PROSE_CSS-porkynj";
|
|
133
|
+
var UI_SELECT_CSS = "gx-Text-UI_SELECT_CSS-ug9onio";
|
|
134
|
+
var SELECTABLE_CSS = "gx-Text-SELECTABLE_CSS-snbodax";
|
|
135
|
+
var TABULAR_CSS = "gx-Text-TABULAR_CSS-tzelh2u";
|
|
136
|
+
var ITALIC_CSS = "gx-Text-ITALIC_CSS-i1wm3pcb";
|
|
137
|
+
var UNDERLINED_CSS = "gx-Text-UNDERLINED_CSS-ur3mnle";
|
|
138
|
+
var STRIKETHROUGH_CSS = "gx-Text-STRIKETHROUGH_CSS-spzvz5x";
|
|
139
|
+
var UNDERLINED_STRIKETHROUGH_CSS = "gx-Text-UNDERLINED_STRIKETHROUGH_CSS-u1xwjpqd";
|
|
140
|
+
/** `lineClamp={1}`: one line ending in an ellipsis, clipped sideways only (see `TRUNCATE`). */
|
|
141
|
+
var SINGLE_LINE_CLAMP_CSS = "gx-Text-SINGLE_LINE_CLAMP_CSS-s59kfuv";
|
|
91
142
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
143
|
+
* `lineClamp > 1`: N lines, the last ending in an ellipsis. The hidden lines need a vertical clip;
|
|
144
|
+
* it never cuts the last visible line's descenders because every line height holds its ink.
|
|
145
|
+
*/
|
|
146
|
+
var MULTI_LINE_CLAMP_CSS = "gx-Text-MULTI_LINE_CLAMP_CSS-m1ukj6n6";
|
|
147
|
+
/** Declared after the variant map so `hex` wins over it. */
|
|
148
|
+
var HEX_CSS = "gx-Text-HEX_CSS-h1x2tvf1";
|
|
149
|
+
var CURSOR_CSS = "gx-Text-CURSOR_CSS-c1bar1us";
|
|
150
|
+
/** What `line-height: normal` resolves to, roughly, when a computed style reports `normal`. */
|
|
151
|
+
var NORMAL_LINE_HEIGHT_RATIO = 1.2;
|
|
152
|
+
/**
|
|
153
|
+
* Whether a clamped element hides some of its text. One line clips sideways, so only the widths
|
|
154
|
+
* are compared. Several lines clip downwards, and a hidden line adds at least one full line
|
|
155
|
+
* height, so the height test ignores anything under half a line (sub-pixel rounding).
|
|
156
|
+
*/
|
|
157
|
+
function isClampOverflowing(element, clamp) {
|
|
158
|
+
if (element.scrollWidth > element.clientWidth) return true;
|
|
159
|
+
if (clamp === 1) return false;
|
|
160
|
+
const computed = getComputedStyle(element);
|
|
161
|
+
const lineHeight = Number.parseFloat(computed.lineHeight);
|
|
162
|
+
const line = Number.isFinite(lineHeight) ? lineHeight : Number.parseFloat(computed.fontSize) * NORMAL_LINE_HEIGHT_RATIO;
|
|
163
|
+
return element.scrollHeight - element.clientHeight > line / 2;
|
|
164
|
+
}
|
|
165
|
+
/** The full text of a clamped element while it is cut, or `undefined` while it all fits. */
|
|
166
|
+
function overflowTextOf(element, clamp) {
|
|
167
|
+
if (!element) return void 0;
|
|
168
|
+
const text = element.textContent ?? "";
|
|
169
|
+
return text !== "" && isClampOverflowing(element, clamp) ? text : void 0;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* The `shouldTooltipOnOverflow` path. Nothing is measured and no `Tooltip` exists until the pointer
|
|
173
|
+
* (or focus) reaches the element; the first time the text is cut, a `LazyTooltip` mounts already
|
|
174
|
+
* open with the full text, and from then on every open request re-measures, so a cell that later
|
|
175
|
+
* fits shows no bubble. The bubble is `aria-hidden`: the full text is already the element's
|
|
176
|
+
* content.
|
|
97
177
|
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
178
|
+
function OverflowTooltipText({ clamp, forwardedRef, renderRoot }) {
|
|
179
|
+
const elementRef = useRef(null);
|
|
180
|
+
const [overflowText, setOverflowText] = useState(void 0);
|
|
181
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
182
|
+
const setRefs = useCallback((node) => {
|
|
183
|
+
elementRef.current = node;
|
|
184
|
+
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
185
|
+
else if (forwardedRef) forwardedRef.current = node;
|
|
186
|
+
}, [forwardedRef]);
|
|
187
|
+
const arm = () => {
|
|
188
|
+
const text = overflowTextOf(elementRef.current, clamp);
|
|
189
|
+
if (text === void 0) return;
|
|
190
|
+
setOverflowText(text);
|
|
191
|
+
setIsOpen(true);
|
|
192
|
+
};
|
|
193
|
+
const handleOpenChange = (next) => {
|
|
194
|
+
if (!next) {
|
|
195
|
+
setIsOpen(false);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
const text = overflowTextOf(elementRef.current, clamp);
|
|
199
|
+
setOverflowText(text);
|
|
200
|
+
setIsOpen(text !== void 0);
|
|
201
|
+
};
|
|
202
|
+
if (overflowText === void 0) return renderRoot(setRefs, {
|
|
203
|
+
onPointerEnter: arm,
|
|
204
|
+
onFocus: arm
|
|
205
|
+
});
|
|
206
|
+
return /* @__PURE__ */ jsx(LazyTooltip, {
|
|
207
|
+
body: overflowText,
|
|
208
|
+
isOpen,
|
|
209
|
+
onOpenChange: handleOpenChange,
|
|
210
|
+
"aria-hidden": true,
|
|
211
|
+
children: renderRoot(setRefs, {})
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
/** The text primitive: a color role, a type step, a weight and a family, all from tokens. */
|
|
215
|
+
var Text = forwardRef(function Text({ children, as = "p", variant = "PRIMARY", size = "BODY_MD", weight = "REGULAR", family = FontFamily.SANS, align = "left", transform = "NONE", lineClamp, shouldTooltipOnOverflow = false, isProse = false, isTabular: isTabularProp, isItalic = false, isUnderlined = false, isStrikethrough = false, isSelectable: isSelectableProp, hex, cursor, id, className, style, ...rest }, ref) {
|
|
216
|
+
const isTabular = isTabularProp ?? family === FontFamily.MONO;
|
|
217
|
+
const isSelectable = isSelectableProp ?? isProse;
|
|
218
|
+
const clamp = lineClamp !== void 0 && lineClamp > 0 ? Math.floor(lineClamp) : void 0;
|
|
219
|
+
const hasOverflowTooltip = shouldTooltipOnOverflow && clamp !== void 0;
|
|
220
|
+
const variables = {};
|
|
221
|
+
if (hex !== void 0) variables["--gx-text-hex"] = hex;
|
|
222
|
+
if (clamp !== void 0 && clamp > 1) variables["--gx-text-line-clamp"] = String(clamp);
|
|
223
|
+
if (cursor !== void 0) variables["--gx-text-cursor"] = cursor;
|
|
224
|
+
const rootClassName = cx(TEXT_VARIANT_TO_CSS_MAP[variant], TEXT_SIZE_TO_CSS_MAP[size], TEXT_WEIGHT_TO_CSS_MAP[weight], TEXT_FAMILY_TO_CSS_MAP[family], TEXT_ALIGN_TO_CSS_MAP[align], TEXT_TRANSFORM_TO_CSS_MAP[transform], isProse && PROSE_CSS, isSelectable ? SELECTABLE_CSS : UI_SELECT_CSS, isTabular && TABULAR_CSS, isItalic && ITALIC_CSS, isUnderlined && isStrikethrough ? UNDERLINED_STRIKETHROUGH_CSS : isUnderlined && UNDERLINED_CSS || isStrikethrough && STRIKETHROUGH_CSS, clamp === 1 && SINGLE_LINE_CLAMP_CSS, clamp !== void 0 && clamp > 1 && MULTI_LINE_CLAMP_CSS, hex !== void 0 && HEX_CSS, cursor !== void 0 && CURSOR_CSS, className);
|
|
225
|
+
const renderRoot = (rootRef, handlers) => /* @__PURE__ */ jsx(Root, {
|
|
226
|
+
...rest,
|
|
227
|
+
...handlers,
|
|
228
|
+
as,
|
|
229
|
+
ref: rootRef,
|
|
230
|
+
id,
|
|
231
|
+
className: rootClassName,
|
|
232
|
+
style: {
|
|
233
|
+
...variables,
|
|
234
|
+
...style
|
|
235
|
+
},
|
|
110
236
|
children
|
|
111
237
|
});
|
|
112
|
-
};
|
|
238
|
+
if (!hasOverflowTooltip) return renderRoot(ref, {});
|
|
239
|
+
return /* @__PURE__ */ jsx(OverflowTooltipText, {
|
|
240
|
+
clamp,
|
|
241
|
+
forwardedRef: ref,
|
|
242
|
+
renderRoot
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
Text.displayName = "Text";
|
|
113
246
|
//#endregion
|
|
114
|
-
export { TextSize, TextVariant, TextWeight, Text as default };
|
|
247
|
+
export { TextSize, TextTransform, TextVariant, TextWeight, Text as default };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { GalaxyTheme, ReducedMotion } from "./enums.js";
|
|
3
|
+
/** The two themes the OS can report, and the two every preference resolves to. */
|
|
4
|
+
type BaseTheme = GalaxyTheme.DARK | GalaxyTheme.LIGHT;
|
|
5
|
+
/** Where the theme preference persists (`localStorage`, a cookie, a desktop store). */
|
|
6
|
+
export interface GalaxyProviderStorage {
|
|
7
|
+
/** The stored value for `key`, or `null` when nothing is stored. */
|
|
8
|
+
get(key: string): string | null;
|
|
9
|
+
/** Store `value` under `key`. */
|
|
10
|
+
set(key: string, value: string): void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* How the provider reads the OS theme. Supply your own where `prefers-color-scheme` is not the
|
|
14
|
+
* source of truth (Electron, React Native).
|
|
15
|
+
*/
|
|
16
|
+
export interface ThemeDetector {
|
|
17
|
+
/**
|
|
18
|
+
* Read the OS theme once, at mount. A synchronous result applies before the first paint; a
|
|
19
|
+
* promise applies when it resolves. Throwing or rejecting leaves `isSystemThemeSupported` false.
|
|
20
|
+
*/
|
|
21
|
+
detectInitialTheme(): BaseTheme | Promise<BaseTheme>;
|
|
22
|
+
/** Subscribe to OS theme changes. Returns the unsubscribe function. */
|
|
23
|
+
onThemeChange(callback: (theme: BaseTheme) => void): () => void;
|
|
24
|
+
}
|
|
25
|
+
export interface GalaxyProviderProps {
|
|
26
|
+
/**
|
|
27
|
+
* Theme to start on when nothing is stored. A starting value; remount with a `key` to reset it.
|
|
28
|
+
* Omitted on a scoped provider inside another provider: the parent's resolved theme.
|
|
29
|
+
* @default GalaxyTheme.SYSTEM
|
|
30
|
+
*/
|
|
31
|
+
theme?: GalaxyTheme;
|
|
32
|
+
/**
|
|
33
|
+
* Where the theme preference persists. Pass `null` to disable persistence.
|
|
34
|
+
* @default localStorage in browsers, null on the server and when `isScoped`
|
|
35
|
+
*/
|
|
36
|
+
storage?: GalaxyProviderStorage | null;
|
|
37
|
+
/**
|
|
38
|
+
* Storage key of the theme preference.
|
|
39
|
+
* @default "galaxy:theme"
|
|
40
|
+
*/
|
|
41
|
+
storageKey?: string;
|
|
42
|
+
/**
|
|
43
|
+
* How the OS theme is read (Electron and React Native can supply their own).
|
|
44
|
+
* @default a detector that reads `prefers-color-scheme`
|
|
45
|
+
*/
|
|
46
|
+
detector?: ThemeDetector;
|
|
47
|
+
/**
|
|
48
|
+
* Write the theme attributes to a wrapper `div` instead of `<html>`, for a nested theme.
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
isScoped?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Where Portal, Modal, Drawer, Popover and Toast render. A nested provider without it keeps its
|
|
54
|
+
* parent's; `null` holds portals back until the node exists.
|
|
55
|
+
* @default document.body
|
|
56
|
+
*/
|
|
57
|
+
portalContainer?: HTMLElement | null;
|
|
58
|
+
/**
|
|
59
|
+
* Reduce motion always, never, or when the OS asks (`prefers-reduced-motion`).
|
|
60
|
+
* @default ReducedMotion.SYSTEM
|
|
61
|
+
*/
|
|
62
|
+
reducedMotion?: ReducedMotion;
|
|
63
|
+
/** The app, or the subtree the theme applies to when `isScoped`. */
|
|
64
|
+
children?: ReactNode;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The single root every app mounts. Resolves the theme, writes `data-gx-theme` (and
|
|
68
|
+
* `color-scheme`, reduced motion) on `<html>` or, when `isScoped`, on a wrapper `div`, and
|
|
69
|
+
* provides `useGalaxyTheme()`.
|
|
70
|
+
*/
|
|
71
|
+
declare function GalaxyProvider({ theme, storage, storageKey, detector, isScoped, portalContainer, reducedMotion, children, }: GalaxyProviderProps): import("react").JSX.Element;
|
|
72
|
+
declare namespace GalaxyProvider {
|
|
73
|
+
var displayName: string;
|
|
74
|
+
}
|
|
75
|
+
export default GalaxyProvider;
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
|
|
2
|
+
import { GalaxyTheme, ReducedMotion } from "./enums.js";
|
|
3
|
+
import { DARK_THEME } from "./tokens/dark.js";
|
|
4
|
+
import { GalaxyThemeContext, PortalContainerContext, ThemeScopeContext } from "./useGalaxyTheme.js";
|
|
5
|
+
import OverlayProvider from "../overlay/OverlayProvider.js";
|
|
6
|
+
import ToastProvider from "../toast/ToastProvider.js";
|
|
7
|
+
import { LIGHT_THEME } from "./tokens/light.js";
|
|
8
|
+
/* empty css */
|
|
9
|
+
import { useCallback, useContext, useMemo, useRef, useState } from "react";
|
|
10
|
+
import { jsx } from "react/jsx-runtime";
|
|
11
|
+
import { cx } from "@linaria/core";
|
|
12
|
+
//#region src/theme/GalaxyProvider.tsx
|
|
13
|
+
/**
|
|
14
|
+
* The one provider an app mounts (spec 03). It resolves the theme (`DARK`, `LIGHT` or `SYSTEM`),
|
|
15
|
+
* writes `data-gx-theme` on `<html>` (or on a wrapper when `isScoped`) and fills the context
|
|
16
|
+
* `useGalaxyTheme()` reads. It also hosts `OverlayProvider` (the overlay stack: `z` order and
|
|
17
|
+
* Escape to the topmost overlay) and, inside it, `ToastProvider` (the toast queue, placement
|
|
18
|
+
* regions, timers and announcements), so apps never mount either themselves.
|
|
19
|
+
*
|
|
20
|
+
* Styling never subscribes to it: components read `var(--gx-…)`, so a theme switch is one
|
|
21
|
+
* attribute change. Only `useGalaxyTheme()` consumers re-render. Galaxy is monochrome: there is
|
|
22
|
+
* no accent to configure.
|
|
23
|
+
*
|
|
24
|
+
* SSR: nothing here touches `window`, `document` or `localStorage` at module scope. Storage, the
|
|
25
|
+
* OS theme and the `<html>` attribute are read and written in layout effects, so the server
|
|
26
|
+
* renders the `theme` prop and the first client paint is already themed.
|
|
27
|
+
*/
|
|
28
|
+
/** Default `storageKey`. */
|
|
29
|
+
var DEFAULT_STORAGE_KEY = "galaxy:theme";
|
|
30
|
+
/** The attribute the token CSS keys off (`tokens.css`, `themeToCss`). */
|
|
31
|
+
var THEME_ATTRIBUTE = "data-gx-theme";
|
|
32
|
+
/** The resolved token object behind each theme, for `useGalaxyTheme().theme`. */
|
|
33
|
+
var BASE_THEME_TO_THEME_MAP = {
|
|
34
|
+
[GalaxyTheme.DARK]: DARK_THEME,
|
|
35
|
+
[GalaxyTheme.LIGHT]: LIGHT_THEME
|
|
36
|
+
};
|
|
37
|
+
/** `color-scheme` follows the active theme, so native controls and scrollbars match. */
|
|
38
|
+
var PROVIDER_COLOR_SCHEME_TO_CSS_MAP = {
|
|
39
|
+
[GalaxyTheme.DARK]: "gx-GalaxyProvider-GalaxyTheme_DARK-g1mrhybl",
|
|
40
|
+
[GalaxyTheme.LIGHT]: "gx-GalaxyProvider-GalaxyTheme_LIGHT-g5p68x8"
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Reduced motion on the root and every descendant. `SYSTEM` reuses the media-gated
|
|
44
|
+
* `REDUCED_MOTION` mixin; `ALWAYS` writes the mixin's two rules without the media gate (the one
|
|
45
|
+
* documented re-declaration, GalaxyProvider Q5); `NEVER` adds nothing.
|
|
46
|
+
*/
|
|
47
|
+
var PROVIDER_REDUCED_MOTION_TO_CSS_MAP = {
|
|
48
|
+
[ReducedMotion.SYSTEM]: "gx-GalaxyProvider-ReducedMotion_SYSTEM-r1dimuet",
|
|
49
|
+
[ReducedMotion.ALWAYS]: "gx-GalaxyProvider-ReducedMotion_ALWAYS-rylvh5s",
|
|
50
|
+
[ReducedMotion.NEVER]: ""
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* On while the theme flips: no transitions anywhere for that one frame, so every color (and the
|
|
54
|
+
* ThemeSwitcher pill) lands on the new theme at once instead of easing through a mixed state.
|
|
55
|
+
*/
|
|
56
|
+
var THEME_SWITCHING_CSS = "gx-GalaxyProvider-THEME_SWITCHING_CSS-t154i2sa";
|
|
57
|
+
/** The `isScoped` wrapper re-roots inherited text color under its own theme. */
|
|
58
|
+
var SCOPE_CSS = "gx-GalaxyProvider-SCOPE_CSS-svyyo75";
|
|
59
|
+
var BUILT_IN_THEMES = Object.values(GalaxyTheme);
|
|
60
|
+
var isPromiseLike = (value) => typeof value === "object" && value !== null && "then" in value;
|
|
61
|
+
/** `localStorage`, read lazily and guarded (private modes throw). */
|
|
62
|
+
var LOCAL_STORAGE = {
|
|
63
|
+
get(key) {
|
|
64
|
+
try {
|
|
65
|
+
return typeof window === "undefined" ? null : window.localStorage.getItem(key);
|
|
66
|
+
} catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
set(key, value) {
|
|
71
|
+
try {
|
|
72
|
+
if (typeof window !== "undefined") window.localStorage.setItem(key, value);
|
|
73
|
+
} catch {}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
/** Reads `prefers-color-scheme`. Throws where `matchMedia` is missing (unsupported). */
|
|
77
|
+
var BROWSER_THEME_DETECTOR = {
|
|
78
|
+
detectInitialTheme() {
|
|
79
|
+
if (typeof window === "undefined" || typeof window.matchMedia !== "function") throw new Error("prefers-color-scheme is not available.");
|
|
80
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? GalaxyTheme.DARK : GalaxyTheme.LIGHT;
|
|
81
|
+
},
|
|
82
|
+
onThemeChange(callback) {
|
|
83
|
+
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return () => {};
|
|
84
|
+
const query = window.matchMedia("(prefers-color-scheme: dark)");
|
|
85
|
+
const handleChange = (event) => callback(event.matches ? GalaxyTheme.DARK : GalaxyTheme.LIGHT);
|
|
86
|
+
query.addEventListener("change", handleChange);
|
|
87
|
+
return () => query.removeEventListener("change", handleChange);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
/** Sets `name` on `element` to `value`, or removes it when `value` is `null`. */
|
|
91
|
+
function restoreAttribute(element, name, value) {
|
|
92
|
+
if (value === null) element.removeAttribute(name);
|
|
93
|
+
else element.setAttribute(name, value);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The single root every app mounts. Resolves the theme, writes `data-gx-theme` (and
|
|
97
|
+
* `color-scheme`, reduced motion) on `<html>` or, when `isScoped`, on a wrapper `div`, and
|
|
98
|
+
* provides `useGalaxyTheme()`.
|
|
99
|
+
*/
|
|
100
|
+
function GalaxyProvider({ theme, storage, storageKey = DEFAULT_STORAGE_KEY, detector = BROWSER_THEME_DETECTOR, isScoped = false, portalContainer, reducedMotion = ReducedMotion.SYSTEM, children }) {
|
|
101
|
+
const parentScope = useContext(ThemeScopeContext);
|
|
102
|
+
const parentPortalContainer = useContext(PortalContainerContext);
|
|
103
|
+
const resolvedPortalContainer = portalContainer !== void 0 ? portalContainer : parentPortalContainer;
|
|
104
|
+
const resolvedStorage = storage !== void 0 ? storage : isScoped ? null : LOCAL_STORAGE;
|
|
105
|
+
const inheritedTheme = isScoped && theme === void 0 ? parentScope?.base : void 0;
|
|
106
|
+
const [chosenTheme, setChosenTheme] = useState(theme);
|
|
107
|
+
const selectedTheme = chosenTheme ?? inheritedTheme ?? GalaxyTheme.SYSTEM;
|
|
108
|
+
const [systemTheme, setSystemTheme] = useState(GalaxyTheme.DARK);
|
|
109
|
+
const [isSystemThemeSupported, setIsSystemThemeSupported] = useState(false);
|
|
110
|
+
const hasReadStorageRef = useRef(false);
|
|
111
|
+
useIsomorphicLayoutEffect(() => {
|
|
112
|
+
if (hasReadStorageRef.current) return;
|
|
113
|
+
hasReadStorageRef.current = true;
|
|
114
|
+
if (resolvedStorage === null) return;
|
|
115
|
+
let storedTheme = null;
|
|
116
|
+
try {
|
|
117
|
+
storedTheme = resolvedStorage.get(storageKey);
|
|
118
|
+
} catch {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (storedTheme !== null && BUILT_IN_THEMES.includes(storedTheme)) setChosenTheme(storedTheme);
|
|
122
|
+
}, [resolvedStorage, storageKey]);
|
|
123
|
+
useIsomorphicLayoutEffect(() => {
|
|
124
|
+
let isMounted = true;
|
|
125
|
+
const applyInitial = (initial) => {
|
|
126
|
+
if (!isMounted) return;
|
|
127
|
+
setSystemTheme(initial);
|
|
128
|
+
setIsSystemThemeSupported(true);
|
|
129
|
+
};
|
|
130
|
+
try {
|
|
131
|
+
const initial = detector.detectInitialTheme();
|
|
132
|
+
if (isPromiseLike(initial)) initial.then(applyInitial, () => {});
|
|
133
|
+
else applyInitial(initial);
|
|
134
|
+
} catch {}
|
|
135
|
+
let unsubscribe = () => {};
|
|
136
|
+
try {
|
|
137
|
+
unsubscribe = detector.onThemeChange((next) => {
|
|
138
|
+
if (isMounted) setSystemTheme(next);
|
|
139
|
+
});
|
|
140
|
+
} catch {}
|
|
141
|
+
return () => {
|
|
142
|
+
isMounted = false;
|
|
143
|
+
unsubscribe();
|
|
144
|
+
};
|
|
145
|
+
}, [detector]);
|
|
146
|
+
const activeTheme = selectedTheme === GalaxyTheme.SYSTEM ? systemTheme : selectedTheme;
|
|
147
|
+
const themeAttribute = activeTheme.toLowerCase();
|
|
148
|
+
const colorSchemeClass = PROVIDER_COLOR_SCHEME_TO_CSS_MAP[activeTheme];
|
|
149
|
+
const reducedMotionClass = PROVIDER_REDUCED_MOTION_TO_CSS_MAP[reducedMotion];
|
|
150
|
+
useIsomorphicLayoutEffect(() => {
|
|
151
|
+
if (isScoped) return;
|
|
152
|
+
const root = document.documentElement;
|
|
153
|
+
const previousTheme = root.getAttribute(THEME_ATTRIBUTE);
|
|
154
|
+
root.setAttribute(THEME_ATTRIBUTE, themeAttribute);
|
|
155
|
+
const addedClasses = [colorSchemeClass, reducedMotionClass].filter((className) => className !== "" && !root.classList.contains(className));
|
|
156
|
+
root.classList.add(...addedClasses);
|
|
157
|
+
return () => {
|
|
158
|
+
restoreAttribute(root, THEME_ATTRIBUTE, previousTheme);
|
|
159
|
+
root.classList.remove(...addedClasses);
|
|
160
|
+
};
|
|
161
|
+
}, [
|
|
162
|
+
isScoped,
|
|
163
|
+
themeAttribute,
|
|
164
|
+
colorSchemeClass,
|
|
165
|
+
reducedMotionClass
|
|
166
|
+
]);
|
|
167
|
+
const lastThemeRef = useRef(themeAttribute);
|
|
168
|
+
useIsomorphicLayoutEffect(() => {
|
|
169
|
+
if (lastThemeRef.current === themeAttribute) return;
|
|
170
|
+
lastThemeRef.current = themeAttribute;
|
|
171
|
+
const root = document.documentElement;
|
|
172
|
+
root.classList.add(THEME_SWITCHING_CSS);
|
|
173
|
+
getComputedStyle(root).color;
|
|
174
|
+
let frame = requestAnimationFrame(() => {
|
|
175
|
+
frame = requestAnimationFrame(() => root.classList.remove(THEME_SWITCHING_CSS));
|
|
176
|
+
});
|
|
177
|
+
return () => {
|
|
178
|
+
cancelAnimationFrame(frame);
|
|
179
|
+
root.classList.remove(THEME_SWITCHING_CSS);
|
|
180
|
+
};
|
|
181
|
+
}, [themeAttribute]);
|
|
182
|
+
const setTheme = useCallback((next) => {
|
|
183
|
+
setChosenTheme(next);
|
|
184
|
+
try {
|
|
185
|
+
resolvedStorage?.set(storageKey, next);
|
|
186
|
+
} catch {}
|
|
187
|
+
}, [resolvedStorage, storageKey]);
|
|
188
|
+
const scope = useMemo(() => ({ base: activeTheme }), [activeTheme]);
|
|
189
|
+
const value = useMemo(() => ({
|
|
190
|
+
theme: BASE_THEME_TO_THEME_MAP[activeTheme],
|
|
191
|
+
activeTheme,
|
|
192
|
+
selectedTheme,
|
|
193
|
+
systemTheme,
|
|
194
|
+
isSystemThemeSupported,
|
|
195
|
+
setTheme,
|
|
196
|
+
reducedMotion
|
|
197
|
+
}), [
|
|
198
|
+
activeTheme,
|
|
199
|
+
selectedTheme,
|
|
200
|
+
systemTheme,
|
|
201
|
+
isSystemThemeSupported,
|
|
202
|
+
setTheme,
|
|
203
|
+
reducedMotion
|
|
204
|
+
]);
|
|
205
|
+
const content = isScoped ? /* @__PURE__ */ jsx("div", {
|
|
206
|
+
"data-gx-theme": themeAttribute,
|
|
207
|
+
className: cx(SCOPE_CSS, colorSchemeClass, reducedMotionClass),
|
|
208
|
+
children
|
|
209
|
+
}) : children;
|
|
210
|
+
return /* @__PURE__ */ jsx(GalaxyThemeContext.Provider, {
|
|
211
|
+
value,
|
|
212
|
+
children: /* @__PURE__ */ jsx(ThemeScopeContext.Provider, {
|
|
213
|
+
value: scope,
|
|
214
|
+
children: /* @__PURE__ */ jsx(PortalContainerContext.Provider, {
|
|
215
|
+
value: resolvedPortalContainer,
|
|
216
|
+
children: /* @__PURE__ */ jsx(OverlayProvider, { children: /* @__PURE__ */ jsx(ToastProvider, { children: content }) })
|
|
217
|
+
})
|
|
218
|
+
})
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
GalaxyProvider.displayName = "GalaxyProvider";
|
|
222
|
+
//#endregion
|
|
223
|
+
export { GalaxyProvider as default };
|