@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
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
//#region src/hooks/useIsMac.ts
|
|
3
|
+
var MAC_PLATFORM = /mac|iphone|ipad|ipod/i;
|
|
4
|
+
/** The platform never changes while the page is open, so there is nothing to subscribe to. */
|
|
5
|
+
var subscribe = () => () => {};
|
|
6
|
+
var getSnapshot = () => {
|
|
7
|
+
if (typeof navigator === "undefined") return false;
|
|
8
|
+
const platform = navigator.userAgentData?.platform || navigator.platform || "";
|
|
9
|
+
return MAC_PLATFORM.test(platform);
|
|
10
|
+
};
|
|
11
|
+
var getServerSnapshot = () => false;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the user is on an Apple platform (macOS, iOS, iPadOS), for ⌘ vs Ctrl labels and
|
|
14
|
+
* bindings. Reads `navigator.userAgentData.platform`, falling back to `navigator.platform`.
|
|
15
|
+
* `false` on the server and during hydration; the client re-renders once with the real value.
|
|
16
|
+
*
|
|
17
|
+
* @returns Whether the platform is macOS, iOS or iPadOS
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* const isMac = useIsMac();
|
|
21
|
+
* const modLabel = isMac ? "⌘" : "Ctrl";
|
|
22
|
+
*/
|
|
23
|
+
function useIsMac() {
|
|
24
|
+
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { useIsMac };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `useLayoutEffect` in the browser, `useEffect` on the server. React warns when `useLayoutEffect`
|
|
3
|
+
* runs during server rendering (it never fires there); this picks the effect at module load so
|
|
4
|
+
* measuring and focusing code reads the DOM before paint in the browser and stays silent in SSR.
|
|
5
|
+
* The choice is made once per module load, which is SSR-safe: `typeof window` is a check, not a
|
|
6
|
+
* read.
|
|
7
|
+
*/
|
|
8
|
+
import { useEffect } from "react";
|
|
9
|
+
/**
|
|
10
|
+
* Layout effect in the browser, plain effect on the server (no SSR warning).
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* useIsomorphicLayoutEffect(() => {
|
|
14
|
+
* setWidth(ref.current?.getBoundingClientRect().width ?? 0);
|
|
15
|
+
* }, []);
|
|
16
|
+
*/
|
|
17
|
+
export declare const useIsomorphicLayoutEffect: typeof useEffect;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useEffect, useLayoutEffect } from "react";
|
|
2
|
+
//#region src/hooks/useIsomorphicLayoutEffect.ts
|
|
3
|
+
/**
|
|
4
|
+
* `useLayoutEffect` in the browser, `useEffect` on the server. React warns when `useLayoutEffect`
|
|
5
|
+
* runs during server rendering (it never fires there); this picks the effect at module load so
|
|
6
|
+
* measuring and focusing code reads the DOM before paint in the browser and stays silent in SSR.
|
|
7
|
+
* The choice is made once per module load, which is SSR-safe: `typeof window` is a check, not a
|
|
8
|
+
* read.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Layout effect in the browser, plain effect on the server (no SSR warning).
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* useIsomorphicLayoutEffect(() => {
|
|
15
|
+
* setWidth(ref.current?.getBoundingClientRect().width ?? 0);
|
|
16
|
+
* }, []);
|
|
17
|
+
*/
|
|
18
|
+
var useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { useIsomorphicLayoutEffect };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** The part of the Web Storage API `useLocalStorage` uses; `sessionStorage` or any adapter fits. */
|
|
2
|
+
export type LocalStorageLike = Pick<Storage, "getItem" | "setItem" | "removeItem">;
|
|
3
|
+
/** Options for `useLocalStorage`. */
|
|
4
|
+
export interface UseLocalStorageOptions<T> {
|
|
5
|
+
/** Turns a value into the stored string. @default JSON.stringify */
|
|
6
|
+
serialize?: ((value: T) => string) | undefined;
|
|
7
|
+
/** Turns the stored string back into a value; a throw reads as `initial`. @default JSON.parse */
|
|
8
|
+
deserialize?: ((raw: string) => T) | undefined;
|
|
9
|
+
/** Where the value lives. Read lazily, never at module scope. @default window.localStorage */
|
|
10
|
+
storage?: LocalStorageLike | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* State persisted in `localStorage` (or `options.storage`) under `key`. Returns
|
|
14
|
+
* `[value, setValue, remove]`; `setValue` takes a value or an updater, `remove()` deletes the key
|
|
15
|
+
* and the value returns to `initial`. Instances with the same key stay in sync, in this tab and
|
|
16
|
+
* across tabs. Returns `initial` on the server and during hydration, so hydration never
|
|
17
|
+
* mismatches. A value that fails to deserialize reads as `initial`; a failed write still updates
|
|
18
|
+
* the value for the session.
|
|
19
|
+
*
|
|
20
|
+
* @param key - The storage key
|
|
21
|
+
* @param initial - The value when nothing (or nothing readable) is stored, and on the server
|
|
22
|
+
* @param options - `serialize` (default `JSON.stringify`), `deserialize` (default `JSON.parse`), `storage` (default `window.localStorage`)
|
|
23
|
+
* @returns `[value, setValue, remove]`
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* const [isCollapsed, setIsCollapsed] = useLocalStorage("sidebar:collapsed", false);
|
|
27
|
+
*/
|
|
28
|
+
export declare function useLocalStorage<T>(key: string, initial: T, options?: UseLocalStorageOptions<T>): [value: T, setValue: (value: T | ((previous: T) => T)) => void, remove: () => void];
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { useCallback, useRef, useSyncExternalStore } from "react";
|
|
2
|
+
//#region src/hooks/useLocalStorage.ts
|
|
3
|
+
/**
|
|
4
|
+
* Writes that failed (quota, private mode) per storage, so the value still holds for the session.
|
|
5
|
+
* `null` records a failed remove.
|
|
6
|
+
*/
|
|
7
|
+
var MEMORY_OVERLAYS = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
/** Same-tab subscribers; the `storage` event only reaches other tabs. */
|
|
9
|
+
var LISTENERS = /* @__PURE__ */ new Set();
|
|
10
|
+
/** Stands in for `localStorage` on the server, or where reading it throws. Created on first use. */
|
|
11
|
+
var memoryStorage;
|
|
12
|
+
function getMemoryStorage() {
|
|
13
|
+
if (memoryStorage === void 0) {
|
|
14
|
+
const values = /* @__PURE__ */ new Map();
|
|
15
|
+
memoryStorage = {
|
|
16
|
+
getItem: (key) => values.get(key) ?? null,
|
|
17
|
+
setItem: (key, value) => {
|
|
18
|
+
values.set(key, value);
|
|
19
|
+
},
|
|
20
|
+
removeItem: (key) => {
|
|
21
|
+
values.delete(key);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return memoryStorage;
|
|
26
|
+
}
|
|
27
|
+
function getDefaultStorage() {
|
|
28
|
+
try {
|
|
29
|
+
if (typeof window !== "undefined" && window.localStorage) return window.localStorage;
|
|
30
|
+
} catch {}
|
|
31
|
+
return getMemoryStorage();
|
|
32
|
+
}
|
|
33
|
+
function getOverlay(storage) {
|
|
34
|
+
let overlay = MEMORY_OVERLAYS.get(storage);
|
|
35
|
+
if (overlay === void 0) {
|
|
36
|
+
overlay = /* @__PURE__ */ new Map();
|
|
37
|
+
MEMORY_OVERLAYS.set(storage, overlay);
|
|
38
|
+
}
|
|
39
|
+
return overlay;
|
|
40
|
+
}
|
|
41
|
+
/** The stored string for `key`: a failed write's value first, then the storage itself. */
|
|
42
|
+
function readRaw(storage, key) {
|
|
43
|
+
const overlay = MEMORY_OVERLAYS.get(storage);
|
|
44
|
+
if (overlay?.has(key)) return overlay.get(key) ?? null;
|
|
45
|
+
try {
|
|
46
|
+
return storage.getItem(key);
|
|
47
|
+
} catch {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function writeRaw(storage, key, raw) {
|
|
52
|
+
try {
|
|
53
|
+
if (raw === null) storage.removeItem(key);
|
|
54
|
+
else storage.setItem(key, raw);
|
|
55
|
+
MEMORY_OVERLAYS.get(storage)?.delete(key);
|
|
56
|
+
} catch {
|
|
57
|
+
getOverlay(storage).set(key, raw);
|
|
58
|
+
}
|
|
59
|
+
for (const listener of LISTENERS) listener(storage, key);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* State persisted in `localStorage` (or `options.storage`) under `key`. Returns
|
|
63
|
+
* `[value, setValue, remove]`; `setValue` takes a value or an updater, `remove()` deletes the key
|
|
64
|
+
* and the value returns to `initial`. Instances with the same key stay in sync, in this tab and
|
|
65
|
+
* across tabs. Returns `initial` on the server and during hydration, so hydration never
|
|
66
|
+
* mismatches. A value that fails to deserialize reads as `initial`; a failed write still updates
|
|
67
|
+
* the value for the session.
|
|
68
|
+
*
|
|
69
|
+
* @param key - The storage key
|
|
70
|
+
* @param initial - The value when nothing (or nothing readable) is stored, and on the server
|
|
71
|
+
* @param options - `serialize` (default `JSON.stringify`), `deserialize` (default `JSON.parse`), `storage` (default `window.localStorage`)
|
|
72
|
+
* @returns `[value, setValue, remove]`
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* const [isCollapsed, setIsCollapsed] = useLocalStorage("sidebar:collapsed", false);
|
|
76
|
+
*/
|
|
77
|
+
function useLocalStorage(key, initial, options) {
|
|
78
|
+
const storageOption = options?.storage;
|
|
79
|
+
const serialize = options?.serialize ?? JSON.stringify;
|
|
80
|
+
const deserialize = options?.deserialize ?? JSON.parse;
|
|
81
|
+
const initialRef = useRef(initial);
|
|
82
|
+
const cacheRef = useRef(void 0);
|
|
83
|
+
const resolveStorage = useCallback(() => storageOption ?? getDefaultStorage(), [storageOption]);
|
|
84
|
+
const subscribe = useCallback((onStoreChange) => {
|
|
85
|
+
const storage = resolveStorage();
|
|
86
|
+
const handleLocalChange = (changedStorage, changedKey) => {
|
|
87
|
+
if (changedStorage === storage && changedKey === key) onStoreChange();
|
|
88
|
+
};
|
|
89
|
+
const handleStorageEvent = (event) => {
|
|
90
|
+
if (event.storageArea === storage && (event.key === key || event.key === null)) onStoreChange();
|
|
91
|
+
};
|
|
92
|
+
LISTENERS.add(handleLocalChange);
|
|
93
|
+
window.addEventListener("storage", handleStorageEvent);
|
|
94
|
+
return () => {
|
|
95
|
+
LISTENERS.delete(handleLocalChange);
|
|
96
|
+
window.removeEventListener("storage", handleStorageEvent);
|
|
97
|
+
};
|
|
98
|
+
}, [resolveStorage, key]);
|
|
99
|
+
const getSnapshot = () => {
|
|
100
|
+
const raw = readRaw(resolveStorage(), key);
|
|
101
|
+
const cached = cacheRef.current;
|
|
102
|
+
if (cached !== void 0 && cached.key === key && cached.raw === raw) return cached.value;
|
|
103
|
+
let value = initialRef.current;
|
|
104
|
+
if (raw !== null) try {
|
|
105
|
+
value = deserialize(raw);
|
|
106
|
+
} catch {
|
|
107
|
+
value = initialRef.current;
|
|
108
|
+
}
|
|
109
|
+
cacheRef.current = {
|
|
110
|
+
key,
|
|
111
|
+
raw,
|
|
112
|
+
value
|
|
113
|
+
};
|
|
114
|
+
return value;
|
|
115
|
+
};
|
|
116
|
+
const getServerSnapshot = () => initialRef.current;
|
|
117
|
+
const value = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
118
|
+
const latestRef = useRef({
|
|
119
|
+
serialize,
|
|
120
|
+
getSnapshot
|
|
121
|
+
});
|
|
122
|
+
latestRef.current = {
|
|
123
|
+
serialize,
|
|
124
|
+
getSnapshot
|
|
125
|
+
};
|
|
126
|
+
return [
|
|
127
|
+
value,
|
|
128
|
+
useCallback((next) => {
|
|
129
|
+
const { serialize: write, getSnapshot: read } = latestRef.current;
|
|
130
|
+
const resolved = typeof next === "function" ? next(read()) : next;
|
|
131
|
+
const raw = write(resolved);
|
|
132
|
+
cacheRef.current = {
|
|
133
|
+
key,
|
|
134
|
+
raw,
|
|
135
|
+
value: resolved
|
|
136
|
+
};
|
|
137
|
+
writeRaw(resolveStorage(), key, raw);
|
|
138
|
+
}, [resolveStorage, key]),
|
|
139
|
+
useCallback(() => {
|
|
140
|
+
writeRaw(resolveStorage(), key, null);
|
|
141
|
+
}, [resolveStorage, key])
|
|
142
|
+
];
|
|
143
|
+
}
|
|
144
|
+
//#endregion
|
|
145
|
+
export { useLocalStorage };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether the CSS media `query` matches, updating when it changes. `false` on the server and
|
|
3
|
+
* during hydration; the client re-renders once with the real value.
|
|
4
|
+
*
|
|
5
|
+
* @param query - A CSS media query, e.g. `"(max-width: 640px)"`
|
|
6
|
+
* @returns Whether it matches
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const isNarrow = useMediaQuery("(max-width: 640px)");
|
|
10
|
+
*/
|
|
11
|
+
export declare function useMediaQuery(query: string): boolean;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useCallback, useSyncExternalStore } from "react";
|
|
2
|
+
//#region src/hooks/useMediaQuery.ts
|
|
3
|
+
var getServerSnapshot = () => false;
|
|
4
|
+
/**
|
|
5
|
+
* Whether the CSS media `query` matches, updating when it changes. `false` on the server and
|
|
6
|
+
* during hydration; the client re-renders once with the real value.
|
|
7
|
+
*
|
|
8
|
+
* @param query - A CSS media query, e.g. `"(max-width: 640px)"`
|
|
9
|
+
* @returns Whether it matches
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const isNarrow = useMediaQuery("(max-width: 640px)");
|
|
13
|
+
*/
|
|
14
|
+
function useMediaQuery(query) {
|
|
15
|
+
return useSyncExternalStore(useCallback((onStoreChange) => {
|
|
16
|
+
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return () => {};
|
|
17
|
+
const mediaQueryList = window.matchMedia(query);
|
|
18
|
+
mediaQueryList.addEventListener("change", onStoreChange);
|
|
19
|
+
return () => mediaQueryList.removeEventListener("change", onStoreChange);
|
|
20
|
+
}, [query]), useCallback(() => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(query).matches, [query]), getServerSnapshot);
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { useMediaQuery };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether motion should be reduced. The nearest `GalaxyProvider`'s `reducedMotion` wins:
|
|
3
|
+
* `ALWAYS` → `true`, `NEVER` → `false`. With `SYSTEM`, or outside a provider, it follows
|
|
4
|
+
* `prefers-reduced-motion`. `false` on the server and during hydration unless a provider forces it.
|
|
5
|
+
*
|
|
6
|
+
* @returns Whether motion should be reduced
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const prefersReducedMotion = usePrefersReducedMotion();
|
|
10
|
+
* <motion.div transition={prefersReducedMotion ? { duration: 0 } : undefined} />
|
|
11
|
+
*/
|
|
12
|
+
export declare function usePrefersReducedMotion(): boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ReducedMotion } from "../theme/enums.js";
|
|
2
|
+
import { GalaxyThemeContext } from "../theme/useGalaxyTheme.js";
|
|
3
|
+
import { useMediaQuery } from "./useMediaQuery.js";
|
|
4
|
+
import { useContext } from "react";
|
|
5
|
+
//#region src/hooks/usePrefersReducedMotion.ts
|
|
6
|
+
/**
|
|
7
|
+
* Whether motion should be reduced. The nearest `GalaxyProvider`'s `reducedMotion` wins:
|
|
8
|
+
* `ALWAYS` → `true`, `NEVER` → `false`. With `SYSTEM`, or outside a provider, it follows
|
|
9
|
+
* `prefers-reduced-motion`. `false` on the server and during hydration unless a provider forces it.
|
|
10
|
+
*
|
|
11
|
+
* @returns Whether motion should be reduced
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const prefersReducedMotion = usePrefersReducedMotion();
|
|
15
|
+
* <motion.div transition={prefersReducedMotion ? { duration: 0 } : undefined} />
|
|
16
|
+
*/
|
|
17
|
+
function usePrefersReducedMotion() {
|
|
18
|
+
const reducedMotion = useContext(GalaxyThemeContext)?.reducedMotion ?? ReducedMotion.SYSTEM;
|
|
19
|
+
const isSystemReduced = useMediaQuery("(prefers-reduced-motion: reduce)");
|
|
20
|
+
if (reducedMotion === ReducedMotion.ALWAYS) return true;
|
|
21
|
+
if (reducedMotion === ReducedMotion.NEVER) return false;
|
|
22
|
+
return isSystemReduced;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { usePrefersReducedMotion };
|
|
@@ -1,86 +1,66 @@
|
|
|
1
|
+
import { type MouseEvent as ReactMouseEvent } from "react";
|
|
1
2
|
/**
|
|
2
|
-
* Which edge or corner
|
|
3
|
-
* dimension; corner anchors resize both.
|
|
3
|
+
* Which edge or corner the resize handle sits on; the opposite edge or corner stays put while
|
|
4
|
+
* dragging. Edge anchors resize one dimension; corner anchors resize both.
|
|
4
5
|
*/
|
|
5
|
-
export
|
|
6
|
+
export declare enum ResizeAnchor {
|
|
7
|
+
/** Handle on the left; the right edge is fixed. Resizes width. */
|
|
8
|
+
LEFT = "LEFT",
|
|
9
|
+
/** Handle on the right; the left edge is fixed. Resizes width. */
|
|
10
|
+
RIGHT = "RIGHT",
|
|
11
|
+
/** Handle on top; the bottom edge is fixed. Resizes height. */
|
|
12
|
+
TOP = "TOP",
|
|
13
|
+
/** Handle on the bottom; the top edge is fixed. Resizes height. */
|
|
14
|
+
BOTTOM = "BOTTOM",
|
|
15
|
+
/** Handle top-left; the bottom-right corner is fixed. Resizes both. */
|
|
16
|
+
TOP_LEFT = "TOP_LEFT",
|
|
17
|
+
/** Handle top-right; the bottom-left corner is fixed. Resizes both. */
|
|
18
|
+
TOP_RIGHT = "TOP_RIGHT",
|
|
19
|
+
/** Handle bottom-left; the top-right corner is fixed. Resizes both. */
|
|
20
|
+
BOTTOM_LEFT = "BOTTOM_LEFT",
|
|
21
|
+
/** Handle bottom-right; the top-left corner is fixed. Resizes both. */
|
|
22
|
+
BOTTOM_RIGHT = "BOTTOM_RIGHT"
|
|
23
|
+
}
|
|
24
|
+
/** Options for `useResize`. */
|
|
6
25
|
export interface UseResizeProps {
|
|
7
|
-
/**
|
|
8
|
-
* Current width of the element
|
|
9
|
-
*/
|
|
26
|
+
/** Current width of the element in pixels; read when a drag starts. */
|
|
10
27
|
currentWidth: number;
|
|
11
|
-
/**
|
|
12
|
-
* Current height of the element
|
|
13
|
-
*/
|
|
28
|
+
/** Current height of the element in pixels; read when a drag starts. */
|
|
14
29
|
currentHeight: number;
|
|
15
|
-
/**
|
|
16
|
-
* Callback when width changes
|
|
17
|
-
*/
|
|
30
|
+
/** Called with the new width while dragging an edge that resizes width. */
|
|
18
31
|
onWidthChange?: (width: number) => void;
|
|
19
|
-
/**
|
|
20
|
-
* Callback when height changes
|
|
21
|
-
*/
|
|
32
|
+
/** Called with the new height while dragging an edge that resizes height. */
|
|
22
33
|
onHeightChange?: (height: number) => void;
|
|
23
|
-
/**
|
|
24
|
-
* Callback when both dimensions change (for corner resizing)
|
|
25
|
-
*/
|
|
34
|
+
/** Called with both dimensions while dragging; when set it replaces `onWidthChange`/`onHeightChange`. */
|
|
26
35
|
onSizeChange?: (width: number, height: number) => void;
|
|
27
|
-
/**
|
|
28
|
-
* Minimum width constraint
|
|
29
|
-
*/
|
|
36
|
+
/** Minimum width in pixels. @default 0 */
|
|
30
37
|
minWidth?: number;
|
|
31
|
-
/**
|
|
32
|
-
* Maximum width constraint
|
|
33
|
-
*/
|
|
38
|
+
/** Maximum width in pixels. @default Infinity */
|
|
34
39
|
maxWidth?: number;
|
|
35
|
-
/**
|
|
36
|
-
* Minimum height constraint
|
|
37
|
-
*/
|
|
40
|
+
/** Minimum height in pixels. @default 0 */
|
|
38
41
|
minHeight?: number;
|
|
39
|
-
/**
|
|
40
|
-
* Maximum height constraint
|
|
41
|
-
*/
|
|
42
|
+
/** Maximum height in pixels. @default Infinity */
|
|
42
43
|
maxHeight?: number;
|
|
43
|
-
/**
|
|
44
|
-
* Which edge(s) are anchored/fixed. The resize handle is on the opposite side.
|
|
45
|
-
* - "left": right edge is fixed, handle on left
|
|
46
|
-
* - "right": left edge is fixed, handle on right
|
|
47
|
-
* - "top": bottom edge is fixed, handle on top
|
|
48
|
-
* - "bottom": top edge is fixed, handle on bottom
|
|
49
|
-
* - "top-left": bottom-right corner is fixed, handle on top-left
|
|
50
|
-
* - "top-right": bottom-left corner is fixed, handle on top-right
|
|
51
|
-
* - "bottom-left": top-right corner is fixed, handle on bottom-left
|
|
52
|
-
* - "bottom-right": top-left corner is fixed, handle on bottom-right
|
|
53
|
-
*/
|
|
44
|
+
/** Where the resize handle sits; the opposite edge or corner is fixed. */
|
|
54
45
|
anchor: ResizeAnchor;
|
|
55
46
|
}
|
|
56
47
|
/**
|
|
57
|
-
*
|
|
48
|
+
* Horizontal, vertical, and diagonal drag-resizing. Returns a `mousedown` handler for the resize
|
|
49
|
+
* handle; document listeners attach on mousedown only, so the hook is SSR-safe.
|
|
58
50
|
*
|
|
59
|
-
* The anchor
|
|
60
|
-
* -
|
|
61
|
-
* -
|
|
51
|
+
* The anchor determines what resizes:
|
|
52
|
+
* - Edge anchors (`LEFT` / `RIGHT` / `TOP` / `BOTTOM`) resize one dimension.
|
|
53
|
+
* - Corner anchors (`TOP_LEFT` / `TOP_RIGHT` / `BOTTOM_LEFT` / `BOTTOM_RIGHT`) resize both.
|
|
62
54
|
*
|
|
63
55
|
* @example
|
|
64
|
-
* // Resize from left edge (right edge is fixed)
|
|
65
|
-
* const
|
|
66
|
-
* currentWidth: width,
|
|
67
|
-
* anchor: "left",
|
|
68
|
-
* onWidthChange: setWidth,
|
|
69
|
-
* minWidth: 100,
|
|
70
|
-
* maxWidth: 1000,
|
|
71
|
-
* });
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* // Resize from top-left corner (bottom-right corner is fixed)
|
|
75
|
-
* const handleResize = useResize({
|
|
56
|
+
* // Resize from the left edge (right edge is fixed)
|
|
57
|
+
* const onResizeStart = useResize({
|
|
76
58
|
* currentWidth: width,
|
|
77
59
|
* currentHeight: height,
|
|
78
|
-
* anchor:
|
|
79
|
-
*
|
|
60
|
+
* anchor: ResizeAnchor.LEFT,
|
|
61
|
+
* onWidthChange: setWidth,
|
|
80
62
|
* minWidth: 100,
|
|
81
63
|
* maxWidth: 1000,
|
|
82
|
-
* minHeight: 100,
|
|
83
|
-
* maxHeight: 1000,
|
|
84
64
|
* });
|
|
85
65
|
*/
|
|
86
|
-
export declare
|
|
66
|
+
export declare function useResize({ currentWidth, currentHeight, onWidthChange, onHeightChange, onSizeChange, minWidth, maxWidth, minHeight, maxHeight, anchor, }: UseResizeProps): (event: ReactMouseEvent) => void;
|
package/dist/hooks/useResize.js
CHANGED
|
@@ -1,36 +1,48 @@
|
|
|
1
1
|
import { useCallback, useRef } from "react";
|
|
2
2
|
//#region src/hooks/useResize.ts
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
* Which edge or corner the resize handle sits on; the opposite edge or corner stays put while
|
|
5
|
+
* dragging. Edge anchors resize one dimension; corner anchors resize both.
|
|
6
|
+
*/
|
|
7
|
+
var ResizeAnchor = /* @__PURE__ */ function(ResizeAnchor) {
|
|
8
|
+
/** Handle on the left; the right edge is fixed. Resizes width. */
|
|
9
|
+
ResizeAnchor["LEFT"] = "LEFT";
|
|
10
|
+
/** Handle on the right; the left edge is fixed. Resizes width. */
|
|
11
|
+
ResizeAnchor["RIGHT"] = "RIGHT";
|
|
12
|
+
/** Handle on top; the bottom edge is fixed. Resizes height. */
|
|
13
|
+
ResizeAnchor["TOP"] = "TOP";
|
|
14
|
+
/** Handle on the bottom; the top edge is fixed. Resizes height. */
|
|
15
|
+
ResizeAnchor["BOTTOM"] = "BOTTOM";
|
|
16
|
+
/** Handle top-left; the bottom-right corner is fixed. Resizes both. */
|
|
17
|
+
ResizeAnchor["TOP_LEFT"] = "TOP_LEFT";
|
|
18
|
+
/** Handle top-right; the bottom-left corner is fixed. Resizes both. */
|
|
19
|
+
ResizeAnchor["TOP_RIGHT"] = "TOP_RIGHT";
|
|
20
|
+
/** Handle bottom-left; the top-right corner is fixed. Resizes both. */
|
|
21
|
+
ResizeAnchor["BOTTOM_LEFT"] = "BOTTOM_LEFT";
|
|
22
|
+
/** Handle bottom-right; the top-left corner is fixed. Resizes both. */
|
|
23
|
+
ResizeAnchor["BOTTOM_RIGHT"] = "BOTTOM_RIGHT";
|
|
24
|
+
return ResizeAnchor;
|
|
25
|
+
}({});
|
|
26
|
+
/**
|
|
27
|
+
* Horizontal, vertical, and diagonal drag-resizing. Returns a `mousedown` handler for the resize
|
|
28
|
+
* handle; document listeners attach on mousedown only, so the hook is SSR-safe.
|
|
9
29
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* currentWidth: width,
|
|
14
|
-
* anchor: "left",
|
|
15
|
-
* onWidthChange: setWidth,
|
|
16
|
-
* minWidth: 100,
|
|
17
|
-
* maxWidth: 1000,
|
|
18
|
-
* });
|
|
30
|
+
* The anchor determines what resizes:
|
|
31
|
+
* - Edge anchors (`LEFT` / `RIGHT` / `TOP` / `BOTTOM`) resize one dimension.
|
|
32
|
+
* - Corner anchors (`TOP_LEFT` / `TOP_RIGHT` / `BOTTOM_LEFT` / `BOTTOM_RIGHT`) resize both.
|
|
19
33
|
*
|
|
20
34
|
* @example
|
|
21
|
-
* // Resize from
|
|
22
|
-
* const
|
|
35
|
+
* // Resize from the left edge (right edge is fixed)
|
|
36
|
+
* const onResizeStart = useResize({
|
|
23
37
|
* currentWidth: width,
|
|
24
38
|
* currentHeight: height,
|
|
25
|
-
* anchor:
|
|
26
|
-
*
|
|
39
|
+
* anchor: ResizeAnchor.LEFT,
|
|
40
|
+
* onWidthChange: setWidth,
|
|
27
41
|
* minWidth: 100,
|
|
28
42
|
* maxWidth: 1000,
|
|
29
|
-
* minHeight: 100,
|
|
30
|
-
* maxHeight: 1000,
|
|
31
43
|
* });
|
|
32
44
|
*/
|
|
33
|
-
|
|
45
|
+
function useResize({ currentWidth, currentHeight, onWidthChange, onHeightChange, onSizeChange, minWidth = 0, maxWidth = Number.POSITIVE_INFINITY, minHeight = 0, maxHeight = Number.POSITIVE_INFINITY, anchor }) {
|
|
34
46
|
const isResizingRef = useRef(false);
|
|
35
47
|
const startXRef = useRef(0);
|
|
36
48
|
const startYRef = useRef(0);
|
|
@@ -43,31 +55,31 @@ var useResize = ({ currentWidth, currentHeight, onWidthChange, onHeightChange, o
|
|
|
43
55
|
let widthDelta = 0;
|
|
44
56
|
let heightDelta = 0;
|
|
45
57
|
switch (anchor) {
|
|
46
|
-
case "
|
|
58
|
+
case "LEFT":
|
|
47
59
|
widthDelta = deltaX;
|
|
48
60
|
break;
|
|
49
|
-
case "
|
|
61
|
+
case "RIGHT":
|
|
50
62
|
widthDelta = -deltaX;
|
|
51
63
|
break;
|
|
52
|
-
case "
|
|
64
|
+
case "TOP":
|
|
53
65
|
heightDelta = deltaY;
|
|
54
66
|
break;
|
|
55
|
-
case "
|
|
67
|
+
case "BOTTOM":
|
|
56
68
|
heightDelta = -deltaY;
|
|
57
69
|
break;
|
|
58
|
-
case "
|
|
70
|
+
case "TOP_LEFT":
|
|
59
71
|
widthDelta = deltaX;
|
|
60
72
|
heightDelta = deltaY;
|
|
61
73
|
break;
|
|
62
|
-
case "
|
|
74
|
+
case "TOP_RIGHT":
|
|
63
75
|
widthDelta = -deltaX;
|
|
64
76
|
heightDelta = deltaY;
|
|
65
77
|
break;
|
|
66
|
-
case "
|
|
78
|
+
case "BOTTOM_LEFT":
|
|
67
79
|
widthDelta = deltaX;
|
|
68
80
|
heightDelta = -deltaY;
|
|
69
81
|
break;
|
|
70
|
-
case "
|
|
82
|
+
case "BOTTOM_RIGHT":
|
|
71
83
|
widthDelta = -deltaX;
|
|
72
84
|
heightDelta = -deltaY;
|
|
73
85
|
break;
|
|
@@ -109,6 +121,6 @@ var useResize = ({ currentWidth, currentHeight, onWidthChange, onHeightChange, o
|
|
|
109
121
|
currentHeight,
|
|
110
122
|
handleMouseMove
|
|
111
123
|
]);
|
|
112
|
-
}
|
|
124
|
+
}
|
|
113
125
|
//#endregion
|
|
114
|
-
export { useResize };
|
|
126
|
+
export { ResizeAnchor, useResize };
|