@galaxy-io/dls 1.6.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -50
- package/biome/index.json +74 -0
- package/biome/plugins/no-hex-literal.grit +20 -0
- package/biome/plugins/no-inline-style.grit +13 -0
- package/biome/plugins/no-margin.grit +9 -0
- package/biome/plugins/warn/no-hex-literal.grit +23 -0
- package/biome/plugins/warn/no-inline-style.grit +13 -0
- package/biome/plugins/warn/no-margin.grit +9 -0
- package/dist/a11y/FocusScope.d.ts +44 -0
- package/dist/a11y/FocusScope.js +229 -0
- package/dist/a11y/VisuallyHidden.d.ts +21 -0
- package/dist/a11y/VisuallyHidden.js +30 -0
- package/dist/avatar/Avatar.d.ts +56 -14
- package/dist/avatar/Avatar.js +250 -96
- package/dist/avatar/AvatarGroup.d.ts +43 -0
- package/dist/avatar/AvatarGroup.js +153 -0
- package/dist/backgrounds/GridBackground.d.ts +48 -0
- package/dist/backgrounds/GridBackground.js +146 -0
- package/dist/beacons/Beacon.d.ts +86 -22
- package/dist/beacons/Beacon.js +170 -47
- package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
- package/dist/brand/GalaxyFilamentWordmark.js +39 -0
- package/dist/brand/GalaxyLogomark.d.ts +26 -0
- package/dist/brand/GalaxyLogomark.js +41 -0
- package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
- package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
- package/dist/brand/GalaxyWordmark.d.ts +30 -0
- package/dist/brand/GalaxyWordmark.js +63 -0
- package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
- package/dist/brand/brandMark.d.ts +26 -0
- package/dist/brand/brandMark.js +35 -0
- package/dist/buttons/Button.d.ts +148 -59
- package/dist/buttons/Button.js +437 -227
- package/dist/buttons/ButtonGroup.d.ts +38 -0
- package/dist/buttons/ButtonGroup.js +68 -0
- package/dist/buttons/CopyButton.d.ts +77 -0
- package/dist/buttons/CopyButton.js +65 -0
- package/dist/charts/AreaChart.d.ts +49 -0
- package/dist/charts/AreaChart.js +31 -0
- package/dist/charts/BarChart.d.ts +54 -67
- package/dist/charts/BarChart.js +160 -124
- package/dist/charts/ChartAxis.d.ts +35 -40
- package/dist/charts/ChartAxis.js +114 -90
- package/dist/charts/ChartCategoryTargets.d.ts +12 -26
- package/dist/charts/ChartCategoryTargets.js +33 -20
- package/dist/charts/ChartFrame.d.ts +71 -116
- package/dist/charts/ChartFrame.js +306 -97
- package/dist/charts/ChartGroupProvider.d.ts +30 -41
- package/dist/charts/ChartGroupProvider.js +20 -7
- package/dist/charts/ChartLegend.d.ts +37 -48
- package/dist/charts/ChartLegend.js +243 -125
- package/dist/charts/ChartMarkTargets.d.ts +12 -28
- package/dist/charts/ChartMarkTargets.js +34 -20
- package/dist/charts/ChartPrimitives.d.ts +50 -305
- package/dist/charts/ChartPrimitives.js +65 -413
- package/dist/charts/ChartTooltip.d.ts +20 -26
- package/dist/charts/ChartTooltip.js +77 -40
- package/dist/charts/Heatmap.d.ts +35 -0
- package/dist/charts/Heatmap.js +307 -0
- package/dist/charts/LineChart.d.ts +54 -47
- package/dist/charts/LineChart.js +174 -121
- package/dist/charts/PieChart.d.ts +32 -53
- package/dist/charts/PieChart.js +159 -136
- package/dist/charts/Sparkline.d.ts +107 -0
- package/dist/charts/Sparkline.js +244 -0
- package/dist/charts/StatChart.d.ts +37 -13
- package/dist/charts/StatChart.js +82 -35
- package/dist/charts/barChartGeometry.d.ts +138 -86
- package/dist/charts/barChartGeometry.js +122 -101
- package/dist/charts/barChartLegend.d.ts +14 -18
- package/dist/charts/barChartLegend.js +18 -13
- package/dist/charts/chartFormat.d.ts +12 -18
- package/dist/charts/chartFormat.js +20 -52
- package/dist/charts/chartPalette.d.ts +33 -0
- package/dist/charts/chartPalette.js +68 -0
- package/dist/charts/chartScales.d.ts +41 -108
- package/dist/charts/chartScales.js +62 -128
- package/dist/charts/chartSelection.d.ts +15 -0
- package/dist/charts/chartSelection.js +22 -0
- package/dist/charts/constants.d.ts +100 -256
- package/dist/charts/constants.js +109 -275
- package/dist/charts/heatmapGeometry.d.ts +95 -0
- package/dist/charts/heatmapGeometry.js +155 -0
- package/dist/charts/lineChartGeometry.d.ts +108 -58
- package/dist/charts/lineChartGeometry.js +120 -78
- package/dist/charts/pieChartGeometry.d.ts +66 -40
- package/dist/charts/pieChartGeometry.js +68 -38
- package/dist/charts/types.d.ts +206 -466
- package/dist/charts/types.js +55 -144
- package/dist/charts/useCartesianChartLayout.d.ts +28 -59
- package/dist/charts/useCartesianChartLayout.js +47 -32
- package/dist/charts/useChartDimensions.d.ts +19 -40
- package/dist/charts/useChartDimensions.js +40 -56
- package/dist/charts/useChartFormatters.d.ts +6 -15
- package/dist/charts/useChartFormatters.js +4 -9
- package/dist/charts/useChartInteraction.d.ts +69 -116
- package/dist/charts/useChartInteraction.js +148 -78
- package/dist/charts/useChartTooltipPosition.d.ts +29 -39
- package/dist/charts/useChartTooltipPosition.js +14 -5
- package/dist/charts/useSeriesColorResolver.d.ts +11 -33
- package/dist/charts/useSeriesColorResolver.js +19 -12
- package/dist/chips/Chip.d.ts +155 -44
- package/dist/chips/Chip.js +329 -155
- package/dist/chips/ChipGroup.d.ts +53 -0
- package/dist/chips/ChipGroup.js +98 -0
- package/dist/drawer/Drawer.d.ts +83 -17
- package/dist/drawer/Drawer.js +399 -65
- package/dist/dropdown/Dropdown.d.ts +80 -63
- package/dist/dropdown/Dropdown.js +127 -129
- package/dist/editor/CodeEditor.d.ts +119 -40
- package/dist/editor/CodeEditor.js +490 -400
- package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
- package/dist/editor/CodeEditorReactWidget.js +28 -21
- package/dist/feedback/Alert.d.ts +49 -0
- package/dist/feedback/Alert.js +172 -0
- package/dist/feedback/EmptyState.d.ts +39 -0
- package/dist/feedback/EmptyState.js +109 -0
- package/dist/feedback/ProgressBar.d.ts +125 -0
- package/dist/feedback/ProgressBar.js +183 -0
- package/dist/feedback/ProgressCircle.d.ts +99 -0
- package/dist/feedback/ProgressCircle.js +187 -0
- package/dist/feedback/Skeleton.d.ts +69 -0
- package/dist/feedback/Skeleton.js +130 -0
- package/dist/feedback/Spinner.d.ts +63 -0
- package/dist/feedback/Spinner.js +141 -0
- package/dist/fonts.css +70 -0
- package/dist/hooks/internal/useIsClient.d.ts +2 -0
- package/dist/hooks/internal/useIsClient.js +14 -0
- package/dist/hooks/useClipboard.d.ts +19 -0
- package/dist/hooks/useClipboard.js +45 -0
- package/dist/hooks/useControlledOpenState.d.ts +21 -0
- package/dist/hooks/useControlledOpenState.js +19 -0
- package/dist/hooks/useControlledState.d.ts +19 -0
- package/dist/hooks/useControlledState.js +22 -0
- package/dist/hooks/useDebouncedValue.d.ts +14 -0
- package/dist/hooks/useDebouncedValue.js +33 -0
- package/dist/hooks/useDisclosure.d.ts +26 -0
- package/dist/hooks/useDisclosure.js +36 -0
- package/dist/hooks/useDismiss.d.ts +23 -27
- package/dist/hooks/useDismiss.js +39 -27
- package/dist/hooks/useElementClientSize.d.ts +10 -10
- package/dist/hooks/useElementClientSize.js +8 -11
- package/dist/hooks/useElementWidth.d.ts +6 -13
- package/dist/hooks/useElementWidth.js +6 -14
- package/dist/hooks/useField.d.ts +47 -0
- package/dist/hooks/useField.js +40 -0
- package/dist/hooks/useHotkey.d.ts +77 -0
- package/dist/hooks/useHotkey.js +246 -0
- package/dist/hooks/useIsMac.d.ts +12 -0
- package/dist/hooks/useIsMac.js +27 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
- package/dist/hooks/useLocalStorage.d.ts +28 -0
- package/dist/hooks/useLocalStorage.js +145 -0
- package/dist/hooks/useMediaQuery.d.ts +11 -0
- package/dist/hooks/useMediaQuery.js +23 -0
- package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
- package/dist/hooks/usePrefersReducedMotion.js +25 -0
- package/dist/hooks/useResize.d.ts +42 -62
- package/dist/hooks/useResize.js +43 -31
- package/dist/icons/Icon.d.ts +64 -37
- package/dist/icons/Icon.js +96 -37
- package/dist/icons/internal/IconSlot.d.ts +10 -0
- package/dist/icons/internal/IconSlot.js +32 -0
- package/dist/inputs/CheckboxGroup.d.ts +115 -0
- package/dist/inputs/CheckboxGroup.js +183 -0
- package/dist/inputs/CheckboxInput.d.ts +98 -28
- package/dist/inputs/CheckboxInput.js +218 -88
- package/dist/inputs/ColorInput.d.ts +115 -29
- package/dist/inputs/ColorInput.js +748 -326
- package/dist/inputs/CopyInput.d.ts +49 -20
- package/dist/inputs/CopyInput.js +57 -49
- package/dist/inputs/CronInput.d.ts +94 -0
- package/dist/inputs/CronInput.js +618 -0
- package/dist/inputs/DateInput.d.ts +175 -28
- package/dist/inputs/DateInput.js +1109 -451
- package/dist/inputs/DurationInput.d.ts +101 -0
- package/dist/inputs/DurationInput.js +441 -0
- package/dist/inputs/Field.d.ts +75 -0
- package/dist/inputs/Field.js +247 -0
- package/dist/inputs/Fieldset.d.ts +53 -0
- package/dist/inputs/Fieldset.js +149 -0
- package/dist/inputs/FileInput.d.ts +110 -0
- package/dist/inputs/FileInput.js +476 -0
- package/dist/inputs/Input.d.ts +148 -187
- package/dist/inputs/Input.js +339 -259
- package/dist/inputs/KeyValueInput.d.ts +120 -0
- package/dist/inputs/KeyValueInput.js +383 -0
- package/dist/inputs/MultiSelectInput.d.ts +165 -54
- package/dist/inputs/MultiSelectInput.js +175 -559
- package/dist/inputs/NumberInput.d.ts +65 -9
- package/dist/inputs/NumberInput.js +197 -40
- package/dist/inputs/PasswordInput.d.ts +17 -12
- package/dist/inputs/PasswordInput.js +33 -33
- package/dist/inputs/PinInput.d.ts +117 -0
- package/dist/inputs/PinInput.js +364 -0
- package/dist/inputs/RadioGroup.d.ts +115 -0
- package/dist/inputs/RadioGroup.js +179 -0
- package/dist/inputs/RadioInput.d.ts +87 -24
- package/dist/inputs/RadioInput.js +182 -95
- package/dist/inputs/SearchInput.d.ts +66 -0
- package/dist/inputs/SearchInput.js +156 -0
- package/dist/inputs/SelectInput.d.ts +195 -55
- package/dist/inputs/SelectInput.js +1308 -446
- package/dist/inputs/SliderInput.d.ts +150 -30
- package/dist/inputs/SliderInput.js +441 -186
- package/dist/inputs/SwitchInput.d.ts +109 -0
- package/dist/inputs/SwitchInput.js +248 -0
- package/dist/inputs/TagInput.d.ts +117 -0
- package/dist/inputs/TagInput.js +408 -0
- package/dist/inputs/TextAreaInput.d.ts +146 -44
- package/dist/inputs/TextAreaInput.js +298 -198
- package/dist/inputs/TextInput.d.ts +4 -13
- package/dist/inputs/TextInput.js +13 -48
- package/dist/inputs/ToggleInput.d.ts +120 -22
- package/dist/inputs/ToggleInput.js +262 -116
- package/dist/inputs/internal/bareField.d.ts +18 -0
- package/dist/inputs/internal/bareField.js +38 -0
- package/dist/inputs/internal/devWarn.d.ts +7 -0
- package/dist/inputs/internal/devWarn.js +30 -0
- package/dist/inputs/internal/fieldFrame.d.ts +34 -0
- package/dist/inputs/internal/fieldFrame.js +64 -0
- package/dist/inputs/internal/fieldWiring.d.ts +50 -0
- package/dist/inputs/internal/fieldWiring.js +38 -0
- package/dist/inputs/internal/innerButton.d.ts +2 -0
- package/dist/inputs/internal/innerButton.js +24 -0
- package/dist/inputs/internal/ownField.d.ts +45 -0
- package/dist/inputs/internal/ownField.js +58 -0
- package/dist/inputs/internal/predicates.d.ts +9 -0
- package/dist/inputs/internal/predicates.js +11 -0
- package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
- package/dist/inputs/internal/useComboboxPopover.js +92 -0
- package/dist/json/JsonViewer.d.ts +62 -0
- package/dist/json/JsonViewer.js +483 -0
- package/dist/layout/Box.d.ts +87 -0
- package/dist/layout/Box.js +109 -0
- package/dist/layout/Divider.d.ts +25 -0
- package/dist/layout/Divider.js +70 -0
- package/dist/layout/Flex.d.ts +139 -0
- package/dist/layout/Flex.js +165 -0
- package/dist/layout/FlexItem.d.ts +72 -0
- package/dist/layout/FlexItem.js +84 -0
- package/dist/layout/Grid.d.ts +140 -0
- package/dist/layout/Grid.js +178 -0
- package/dist/layout/Portal.d.ts +29 -0
- package/dist/layout/Portal.js +27 -0
- package/dist/layout/ResizablePanels.d.ts +88 -0
- package/dist/layout/ResizablePanels.js +198 -0
- package/dist/layout/ResizeHandle.d.ts +48 -0
- package/dist/layout/ResizeHandle.js +143 -0
- package/dist/layout/ScrollArea.d.ts +30 -0
- package/dist/layout/ScrollArea.js +138 -0
- package/dist/links/Link.d.ts +101 -1
- package/dist/links/Link.js +166 -4
- package/dist/lists/BulletedList.d.ts +25 -7
- package/dist/lists/BulletedList.js +72 -27
- package/dist/lists/DescriptionList.d.ts +91 -0
- package/dist/lists/DescriptionList.js +147 -0
- package/dist/menu/ContextMenu.d.ts +64 -0
- package/dist/menu/ContextMenu.js +34 -0
- package/dist/menu/Menu.d.ts +280 -0
- package/dist/menu/Menu.js +1003 -0
- package/dist/modal/ConfirmDialog.d.ts +55 -0
- package/dist/modal/ConfirmDialog.js +151 -0
- package/dist/modal/Modal.d.ts +64 -14
- package/dist/modal/Modal.js +189 -48
- package/dist/navigation/Breadcrumbs.d.ts +65 -0
- package/dist/navigation/Breadcrumbs.js +243 -0
- package/dist/navigation/CommandPalette.d.ts +83 -0
- package/dist/navigation/CommandPalette.js +509 -0
- package/dist/navigation/Pagination.d.ts +87 -0
- package/dist/navigation/Pagination.js +300 -0
- package/dist/navigation/SidebarNav.d.ts +107 -0
- package/dist/navigation/SidebarNav.js +341 -0
- package/dist/navigation/Stepper.d.ts +52 -0
- package/dist/navigation/Stepper.js +207 -0
- package/dist/navigation/Tabs.d.ts +113 -0
- package/dist/navigation/Tabs.js +543 -0
- package/dist/navigation/Topbar.d.ts +20 -0
- package/dist/navigation/Topbar.js +62 -0
- package/dist/overlay/OverlayProvider.d.ts +28 -32
- package/dist/overlay/OverlayProvider.js +42 -93
- package/dist/overlay/useOverlay.d.ts +88 -12
- package/dist/overlay/useOverlay.js +220 -43
- package/dist/overlays/Popover.d.ts +114 -0
- package/dist/overlays/Popover.js +389 -0
- package/dist/shapes/Circle.d.ts +84 -8
- package/dist/shapes/Circle.js +122 -20
- package/dist/shapes/Square.d.ts +84 -8
- package/dist/shapes/Square.js +123 -20
- package/dist/styles/mixins.d.ts +35 -0
- package/dist/styles/mixins.js +60 -0
- package/dist/styles.css +1 -202
- package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
- package/dist/table/InfiniteSpreadsheet.js +762 -225
- package/dist/table/InfiniteTable.d.ts +116 -14
- package/dist/table/InfiniteTable.js +287 -429
- package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
- package/dist/table/SpreadsheetCellEditor.js +163 -84
- package/dist/table/TableCore.d.ts +252 -0
- package/dist/table/TableCore.js +1082 -0
- package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
- package/dist/table/VirtualizedInfiniteTable.js +280 -219
- package/dist/table/types.d.ts +66 -244
- package/dist/table/types.js +0 -51
- package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
- package/dist/table/useInfiniteScrollSentinel.js +38 -30
- package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
- package/dist/table/useSpreadsheetCellNavigation.js +141 -0
- package/dist/table/useTableColumnLayout.d.ts +90 -25
- package/dist/table/useTableColumnLayout.js +255 -50
- package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
- package/dist/table/useTableKeyboardNavigation.js +95 -71
- package/dist/table/useTableRowSelection.d.ts +24 -25
- package/dist/table/useTableRowSelection.js +57 -84
- package/dist/table/useTableVirtualizer.d.ts +20 -0
- package/dist/table/useTableVirtualizer.js +48 -0
- package/dist/text/Bold.d.ts +5 -6
- package/dist/text/Bold.js +16 -15
- package/dist/text/Code.d.ts +5 -6
- package/dist/text/Code.js +16 -25
- package/dist/text/CodeBlock.d.ts +77 -0
- package/dist/text/CodeBlock.js +373 -0
- package/dist/text/EditableText.d.ts +55 -15
- package/dist/text/EditableText.js +153 -135
- package/dist/text/Ellipsis.d.ts +34 -8
- package/dist/text/Ellipsis.js +55 -23
- package/dist/text/Kbd.d.ts +72 -0
- package/dist/text/Kbd.js +284 -0
- package/dist/text/MarkdownText.d.ts +27 -10
- package/dist/text/MarkdownText.js +317 -300
- package/dist/text/RequiredMarker.d.ts +17 -5
- package/dist/text/RequiredMarker.js +34 -36
- package/dist/text/Selectable.d.ts +5 -6
- package/dist/text/Selectable.js +16 -13
- package/dist/text/Span.d.ts +82 -0
- package/dist/text/Span.js +115 -0
- package/dist/text/Text.d.ts +128 -41
- package/dist/text/Text.js +209 -76
- package/dist/theme/GalaxyProvider.d.ts +75 -0
- package/dist/theme/GalaxyProvider.js +223 -0
- package/dist/theme/ThemeSwitcher.d.ts +52 -0
- package/dist/theme/ThemeSwitcher.js +94 -0
- package/dist/theme/enums.d.ts +118 -0
- package/dist/theme/enums.js +144 -0
- package/dist/theme/tokens/dark.d.ts +2 -0
- package/dist/theme/tokens/dark.js +275 -0
- package/dist/theme/tokens/generate.d.ts +15 -0
- package/dist/theme/tokens/generate.js +47 -0
- package/dist/theme/tokens/light.d.ts +2 -0
- package/dist/theme/tokens/light.js +274 -0
- package/dist/theme/tokens/palette.d.ts +14 -0
- package/dist/theme/tokens/palette.js +153 -0
- package/dist/theme/tokens/scales.d.ts +26 -0
- package/dist/theme/tokens/scales.js +154 -0
- package/dist/theme/tokens/t.d.ts +3 -0
- package/dist/theme/tokens/t.js +25 -0
- package/dist/theme/tokens/types.d.ts +189 -0
- package/dist/theme/tokens/types.js +0 -0
- package/dist/theme/useGalaxyTheme.d.ts +46 -0
- package/dist/theme/useGalaxyTheme.js +36 -0
- package/dist/theme/useInverseScope.d.ts +18 -0
- package/dist/theme/useInverseScope.js +33 -0
- package/dist/three/GalaxyLogomark3D.d.ts +46 -0
- package/dist/three/GalaxyLogomark3D.js +134 -0
- package/dist/three/assets/galaxy-logomark.js +4 -0
- package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
- package/dist/three/galaxyLogomark3DScene.js +165 -0
- package/dist/timeline/Timeline.d.ts +120 -0
- package/dist/timeline/Timeline.js +301 -0
- package/dist/toast/Toast.d.ts +43 -19
- package/dist/toast/Toast.js +130 -89
- package/dist/toast/ToastProvider.d.ts +23 -23
- package/dist/toast/ToastProvider.js +298 -101
- package/dist/toast/ToastViewport.d.ts +12 -0
- package/dist/toast/ToastViewport.js +210 -0
- package/dist/toast/useToast.d.ts +139 -5
- package/dist/toast/useToast.js +15 -13
- package/dist/tokens.css +654 -0
- package/dist/tooltip/Tooltip.d.ts +64 -44
- package/dist/tooltip/Tooltip.js +280 -73
- package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
- package/dist/tooltip/internal/LazyTooltip.js +53 -0
- package/dist/transform/Fade.d.ts +33 -11
- package/dist/transform/Fade.js +71 -19
- package/dist/transform/Flasher.d.ts +25 -0
- package/dist/transform/Flasher.js +39 -0
- package/dist/transform/Rotate.d.ts +24 -12
- package/dist/transform/Rotate.js +36 -22
- package/dist/transform/ScaleFade.d.ts +36 -11
- package/dist/transform/ScaleFade.js +86 -28
- package/dist/transform/internal/CollapseMotion.d.ts +10 -0
- package/dist/transform/internal/CollapseMotion.js +65 -0
- package/dist/tree/Tree.d.ts +85 -0
- package/dist/tree/Tree.js +387 -0
- package/dist/tree/treeRow.d.ts +39 -0
- package/dist/tree/treeRow.js +75 -0
- package/dist/utils/colors.d.ts +46 -13
- package/dist/utils/colors.js +92 -34
- package/dist/utils/css.d.ts +23 -0
- package/dist/utils/css.js +30 -0
- package/dist/utils/format.d.ts +58 -0
- package/dist/utils/format.js +220 -0
- package/dist/vite/index.d.ts +16 -0
- package/dist/vite/index.js +52 -0
- package/dist/widget/Widget.d.ts +164 -48
- package/dist/widget/Widget.js +335 -96
- package/dist/widget/WidgetGroup.d.ts +36 -0
- package/dist/widget/WidgetGroup.js +103 -0
- package/package.json +855 -157
- package/dist/accordion/Accordion.d.ts +0 -54
- package/dist/accordion/Accordion.js +0 -183
- package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
- package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
- package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
- package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
- package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
- package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
- package/dist/assets/models/galaxy-animation.js +0 -136666
- package/dist/assets/models/galaxy-logomark.js +0 -4
- package/dist/avatar/AvatarShimmer.d.ts +0 -30
- package/dist/avatar/AvatarShimmer.js +0 -22
- package/dist/backgrounds/CellGridBackground.d.ts +0 -24
- package/dist/backgrounds/CellGridBackground.js +0 -44
- package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
- package/dist/backgrounds/CrossGridBackground.js +0 -49
- package/dist/backgrounds/DotGridBackground.d.ts +0 -24
- package/dist/backgrounds/DotGridBackground.js +0 -47
- package/dist/badge/Badge.d.ts +0 -42
- package/dist/badge/Badge.js +0 -99
- package/dist/charts/ChartEmptyState.d.ts +0 -17
- package/dist/charts/ChartEmptyState.js +0 -29
- package/dist/charts/ProgressBar.d.ts +0 -29
- package/dist/charts/ProgressBar.js +0 -65
- package/dist/charts/chartTheme.d.ts +0 -18
- package/dist/charts/chartTheme.js +0 -26
- package/dist/containers/FlexItem.d.ts +0 -50
- package/dist/containers/FlexItem.js +0 -91
- package/dist/containers/FlexWrapper.d.ts +0 -96
- package/dist/containers/FlexWrapper.js +0 -143
- package/dist/containers/GridWrapper.d.ts +0 -79
- package/dist/containers/GridWrapper.js +0 -125
- package/dist/containers/Spacing.d.ts +0 -23
- package/dist/containers/Spacing.js +0 -59
- package/dist/containers/Wrapper.d.ts +0 -26
- package/dist/containers/Wrapper.js +0 -54
- package/dist/dividers/HorizontalDivider.d.ts +0 -7
- package/dist/dividers/HorizontalDivider.js +0 -39
- package/dist/dividers/VerticalDivider.d.ts +0 -6
- package/dist/dividers/VerticalDivider.js +0 -21
- package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
- package/dist/icons/GalaxyFilamentWordmark.js +0 -25
- package/dist/icons/GalaxyLogomark.d.ts +0 -13
- package/dist/icons/GalaxyLogomark.js +0 -27
- package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
- package/dist/icons/GalaxyLogomark3D.js +0 -319
- package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
- package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
- package/dist/icons/GalaxyWordmark.d.ts +0 -11
- package/dist/icons/GalaxyWordmark.js +0 -25
- package/dist/inputs/MultiTextInput.d.ts +0 -32
- package/dist/inputs/MultiTextInput.js +0 -180
- package/dist/inputs/SwitcherInput.d.ts +0 -30
- package/dist/inputs/SwitcherInput.js +0 -81
- package/dist/inputs/hooks.d.ts +0 -10
- package/dist/inputs/hooks.js +0 -22
- package/dist/overlay/constants.d.ts +0 -28
- package/dist/overlay/constants.js +0 -37
- package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
- package/dist/resizable/HorizontalResizeHandle.js +0 -38
- package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
- package/dist/resizable/VerticalResizeHandle.js +0 -39
- package/dist/table/SpreadsheetCell.d.ts +0 -21
- package/dist/table/SpreadsheetCell.js +0 -71
- package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
- package/dist/table/SpreadsheetHeaderCell.js +0 -91
- package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
- package/dist/table/SpreadsheetMenuItem.js +0 -33
- package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
- package/dist/table/SpreadsheetPrimitives.js +0 -105
- package/dist/table/SpreadsheetRow.d.ts +0 -33
- package/dist/table/SpreadsheetRow.js +0 -73
- package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
- package/dist/table/SpreadsheetRowActionCell.js +0 -51
- package/dist/table/TableExpandCell.d.ts +0 -11
- package/dist/table/TableExpandCell.js +0 -24
- package/dist/table/TableExpandedRow.d.ts +0 -16
- package/dist/table/TableExpandedRow.js +0 -77
- package/dist/table/TableHeaderCellContent.d.ts +0 -30
- package/dist/table/TableHeaderCellContent.js +0 -48
- package/dist/table/TablePrimitives.d.ts +0 -313
- package/dist/table/TablePrimitives.js +0 -302
- package/dist/table/TableSelectCell.d.ts +0 -18
- package/dist/table/TableSelectCell.js +0 -27
- package/dist/table/TableStatusRow.d.ts +0 -18
- package/dist/table/TableStatusRow.js +0 -50
- package/dist/table/useSpreadsheetEditing.d.ts +0 -13
- package/dist/table/useSpreadsheetEditing.js +0 -41
- package/dist/table/useTableColumnResize.d.ts +0 -38
- package/dist/table/useTableColumnResize.js +0 -155
- package/dist/table/useTableRowExpansion.d.ts +0 -24
- package/dist/table/useTableRowExpansion.js +0 -62
- package/dist/table/utils.d.ts +0 -50
- package/dist/table/utils.js +0 -78
- package/dist/text/HotKeys.d.ts +0 -30
- package/dist/text/HotKeys.js +0 -74
- package/dist/text/Paragraph.d.ts +0 -33
- package/dist/text/Paragraph.js +0 -83
- package/dist/text/TextShimmer.d.ts +0 -14
- package/dist/text/TextShimmer.js +0 -34
- package/dist/theme/GalaxyTheme.d.ts +0 -67
- package/dist/theme/GalaxyTheme.js +0 -119
- package/dist/theme/constants.d.ts +0 -8
- package/dist/theme/constants.js +0 -38
- package/dist/theme/index.d.ts +0 -6
- package/dist/theme/index.js +0 -7
- package/dist/theme/types.d.ts +0 -195
- package/dist/theme/types.js +0 -10
- package/dist/theme/typography.d.ts +0 -2
- package/dist/theme/typography.js +0 -73
- package/dist/theme/variants/dark.d.ts +0 -2
- package/dist/theme/variants/dark.js +0 -125
- package/dist/theme/variants/light.d.ts +0 -2
- package/dist/theme/variants/light.js +0 -125
- package/dist/toast/ToastContainer.d.ts +0 -10
- package/dist/toast/ToastContainer.js +0 -31
- package/dist/toast/ToastWrapper.d.ts +0 -6
- package/dist/toast/ToastWrapper.js +0 -27
- package/dist/transform/Flash.d.ts +0 -7
- package/dist/transform/Flash.js +0 -18
- package/dist/transform/Spin.d.ts +0 -14
- package/dist/transform/Spin.js +0 -25
- package/dist/utils/linaria.d.ts +0 -1
- package/dist/utils/linaria.js +0 -8
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type ElementType, type ReactNode } from "react";
|
|
2
|
+
import type { Space, SpaceShorthand } from "../theme/enums.js";
|
|
3
|
+
/** Block-axis alignment of each item inside its own grid area (`align-items`). */
|
|
4
|
+
export declare enum GridAlignItems {
|
|
5
|
+
/** Pack each item at the start of its area. */
|
|
6
|
+
START = "START",
|
|
7
|
+
/** Center each item in its area. */
|
|
8
|
+
CENTER = "CENTER",
|
|
9
|
+
/** Pack each item at the end of its area. */
|
|
10
|
+
END = "END",
|
|
11
|
+
/** Stretch each item to fill its area. */
|
|
12
|
+
STRETCH = "STRETCH"
|
|
13
|
+
}
|
|
14
|
+
/** Inline-axis alignment of each item inside its own grid area (`justify-items`). */
|
|
15
|
+
export declare enum GridJustifyItems {
|
|
16
|
+
/** Pack each item at the start of its area. */
|
|
17
|
+
START = "START",
|
|
18
|
+
/** Center each item in its area. */
|
|
19
|
+
CENTER = "CENTER",
|
|
20
|
+
/** Pack each item at the end of its area. */
|
|
21
|
+
END = "END",
|
|
22
|
+
/** Stretch each item to fill its area. */
|
|
23
|
+
STRETCH = "STRETCH"
|
|
24
|
+
}
|
|
25
|
+
/** Inline-axis distribution of the tracks when they are narrower than the grid (`justify-content`). */
|
|
26
|
+
export declare enum GridJustifyContent {
|
|
27
|
+
/** Pack the tracks at the inline start. */
|
|
28
|
+
START = "START",
|
|
29
|
+
/** Center the tracks. */
|
|
30
|
+
CENTER = "CENTER",
|
|
31
|
+
/** Pack the tracks at the inline end. */
|
|
32
|
+
END = "END",
|
|
33
|
+
/** First and last track at the edges, equal space between. */
|
|
34
|
+
SPACE_BETWEEN = "SPACE_BETWEEN",
|
|
35
|
+
/** Equal space around each track (half-size at the edges). */
|
|
36
|
+
SPACE_AROUND = "SPACE_AROUND",
|
|
37
|
+
/** Equal space between tracks and at the edges. */
|
|
38
|
+
SPACE_EVENLY = "SPACE_EVENLY",
|
|
39
|
+
/** Grow `auto` tracks to fill the grid. */
|
|
40
|
+
STRETCH = "STRETCH"
|
|
41
|
+
}
|
|
42
|
+
/** Block-axis distribution of the tracks when they are shorter than the grid (`align-content`). */
|
|
43
|
+
export declare enum GridAlignContent {
|
|
44
|
+
/** Pack the tracks at the block start. */
|
|
45
|
+
START = "START",
|
|
46
|
+
/** Center the tracks. */
|
|
47
|
+
CENTER = "CENTER",
|
|
48
|
+
/** Pack the tracks at the block end. */
|
|
49
|
+
END = "END",
|
|
50
|
+
/** First and last track at the edges, equal space between. */
|
|
51
|
+
SPACE_BETWEEN = "SPACE_BETWEEN",
|
|
52
|
+
/** Equal space around each track (half-size at the edges). */
|
|
53
|
+
SPACE_AROUND = "SPACE_AROUND",
|
|
54
|
+
/** Equal space between tracks and at the edges. */
|
|
55
|
+
SPACE_EVENLY = "SPACE_EVENLY",
|
|
56
|
+
/** Grow `auto` tracks to fill the grid. */
|
|
57
|
+
STRETCH = "STRETCH"
|
|
58
|
+
}
|
|
59
|
+
export interface GridProps extends AriaAttributes {
|
|
60
|
+
/** Content of the grid: its items. */
|
|
61
|
+
children?: ReactNode;
|
|
62
|
+
/**
|
|
63
|
+
* Column tracks. A number is that many equal tracks (`repeat(n, minmax(0, 1fr))`); a string is
|
|
64
|
+
* used as-is (`"200px 1fr"`).
|
|
65
|
+
* @default 1
|
|
66
|
+
*/
|
|
67
|
+
columns?: number | string;
|
|
68
|
+
/**
|
|
69
|
+
* Row tracks. A number is that many equal tracks (`repeat(n, minmax(0, 1fr))`); a string is used
|
|
70
|
+
* as-is. Unset, rows are implicit and sized to their content.
|
|
71
|
+
*/
|
|
72
|
+
rows?: number | string;
|
|
73
|
+
/**
|
|
74
|
+
* Named areas (`grid-template-areas`), one string per row: `["header header", "nav main"]`.
|
|
75
|
+
* Items join an area through their own `grid-area`.
|
|
76
|
+
*/
|
|
77
|
+
areas?: string[];
|
|
78
|
+
/** Space between tracks from the space scale: one value, or `[row, column]`. */
|
|
79
|
+
gap?: Space | [Space, Space];
|
|
80
|
+
/**
|
|
81
|
+
* Block-axis alignment of each item in its area.
|
|
82
|
+
* @default GridAlignItems.STRETCH
|
|
83
|
+
*/
|
|
84
|
+
alignItems?: GridAlignItems;
|
|
85
|
+
/**
|
|
86
|
+
* Inline-axis alignment of each item in its area.
|
|
87
|
+
* @default GridJustifyItems.STRETCH
|
|
88
|
+
*/
|
|
89
|
+
justifyItems?: GridJustifyItems;
|
|
90
|
+
/**
|
|
91
|
+
* Block-axis distribution of the tracks when they are shorter than the grid.
|
|
92
|
+
* @default GridAlignContent.START
|
|
93
|
+
*/
|
|
94
|
+
alignContent?: GridAlignContent;
|
|
95
|
+
/**
|
|
96
|
+
* Inline-axis distribution of the tracks when they are narrower than the grid.
|
|
97
|
+
* @default GridJustifyContent.START
|
|
98
|
+
*/
|
|
99
|
+
justifyContent?: GridJustifyContent;
|
|
100
|
+
/** Padding from the space scale: one value, or 2–4 in CSS shorthand order (`[12, 16]`). */
|
|
101
|
+
padding?: SpaceShorthand;
|
|
102
|
+
/** CSS `width`. A number is px. `fillWidth` wins over it. */
|
|
103
|
+
width?: number | string;
|
|
104
|
+
/** CSS `height`. A number is px. Use `"100%"` to fill the parent (1.x `fillHeight`). */
|
|
105
|
+
height?: number | string;
|
|
106
|
+
/** CSS `min-width`. A number is px. */
|
|
107
|
+
minWidth?: number | string;
|
|
108
|
+
/** CSS `max-width`. A number is px. */
|
|
109
|
+
maxWidth?: number | string;
|
|
110
|
+
/** CSS `min-height`. A number is px. */
|
|
111
|
+
minHeight?: number | string;
|
|
112
|
+
/** CSS `max-height`. A number is px. */
|
|
113
|
+
maxHeight?: number | string;
|
|
114
|
+
/**
|
|
115
|
+
* Stretch to the parent's full width (`width: 100%`). Wins over `width`.
|
|
116
|
+
* @default false
|
|
117
|
+
*/
|
|
118
|
+
fillWidth?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* CSS `overflow`.
|
|
121
|
+
* @default "visible"
|
|
122
|
+
*/
|
|
123
|
+
overflow?: CSSProperties["overflow"];
|
|
124
|
+
/**
|
|
125
|
+
* Element or component to render (`"section"`, `"ul"`, `"dl"`).
|
|
126
|
+
* @default "div"
|
|
127
|
+
*/
|
|
128
|
+
as?: ElementType;
|
|
129
|
+
/** DOM id on the root element. */
|
|
130
|
+
id?: string;
|
|
131
|
+
/** Any `data-*` attribute, forwarded to the root element. */
|
|
132
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
133
|
+
/** Extra class on the root element. */
|
|
134
|
+
className?: string;
|
|
135
|
+
/** Inline style on the root element; only for setting CSS custom properties. */
|
|
136
|
+
style?: CSSProperties;
|
|
137
|
+
}
|
|
138
|
+
/** The CSS grid layout primitive: tracks, areas, alignment, `gap`, `padding` and sizing. */
|
|
139
|
+
declare const Grid: import("react").ForwardRefExoticComponent<GridProps & import("react").RefAttributes<HTMLElement>>;
|
|
140
|
+
export default Grid;
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { gapToCss, getCssSizeValue, spaceToCss } from "../utils/css.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import { styled } from "@linaria/react";
|
|
4
|
+
import { forwardRef } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { cx } from "@linaria/core";
|
|
7
|
+
//#region src/layout/Grid.tsx
|
|
8
|
+
/**
|
|
9
|
+
* The CSS grid layout primitive: a `display: grid` element with tracks, areas, alignment and
|
|
10
|
+
* sizing as props. Replaces 1.x `GridWrapper`. Spacing is `gap` and `padding` from the space
|
|
11
|
+
* scale; there is no `margin` (Constitution II.5).
|
|
12
|
+
*
|
|
13
|
+
* The four alignment axes are enums, each a `Record` of `css` blocks. Continuous values (tracks,
|
|
14
|
+
* areas, `gap`, `padding`, sizes, `overflow`) are set as `--gx-grid-*` custom properties on the
|
|
15
|
+
* root, and a block that reads each one is switched on only when its prop is set. So a nested
|
|
16
|
+
* `Grid` never inherits its parent's values, and nothing extra reaches a custom `as` component
|
|
17
|
+
* (Linaria forwards `$`-props to one). Same pattern as `Flex` and `Box`.
|
|
18
|
+
*/
|
|
19
|
+
/** Block-axis alignment of each item inside its own grid area (`align-items`). */
|
|
20
|
+
var GridAlignItems = /* @__PURE__ */ function(GridAlignItems) {
|
|
21
|
+
/** Pack each item at the start of its area. */
|
|
22
|
+
GridAlignItems["START"] = "START";
|
|
23
|
+
/** Center each item in its area. */
|
|
24
|
+
GridAlignItems["CENTER"] = "CENTER";
|
|
25
|
+
/** Pack each item at the end of its area. */
|
|
26
|
+
GridAlignItems["END"] = "END";
|
|
27
|
+
/** Stretch each item to fill its area. */
|
|
28
|
+
GridAlignItems["STRETCH"] = "STRETCH";
|
|
29
|
+
return GridAlignItems;
|
|
30
|
+
}({});
|
|
31
|
+
/** Inline-axis alignment of each item inside its own grid area (`justify-items`). */
|
|
32
|
+
var GridJustifyItems = /* @__PURE__ */ function(GridJustifyItems) {
|
|
33
|
+
/** Pack each item at the start of its area. */
|
|
34
|
+
GridJustifyItems["START"] = "START";
|
|
35
|
+
/** Center each item in its area. */
|
|
36
|
+
GridJustifyItems["CENTER"] = "CENTER";
|
|
37
|
+
/** Pack each item at the end of its area. */
|
|
38
|
+
GridJustifyItems["END"] = "END";
|
|
39
|
+
/** Stretch each item to fill its area. */
|
|
40
|
+
GridJustifyItems["STRETCH"] = "STRETCH";
|
|
41
|
+
return GridJustifyItems;
|
|
42
|
+
}({});
|
|
43
|
+
/** Inline-axis distribution of the tracks when they are narrower than the grid (`justify-content`). */
|
|
44
|
+
var GridJustifyContent = /* @__PURE__ */ function(GridJustifyContent) {
|
|
45
|
+
/** Pack the tracks at the inline start. */
|
|
46
|
+
GridJustifyContent["START"] = "START";
|
|
47
|
+
/** Center the tracks. */
|
|
48
|
+
GridJustifyContent["CENTER"] = "CENTER";
|
|
49
|
+
/** Pack the tracks at the inline end. */
|
|
50
|
+
GridJustifyContent["END"] = "END";
|
|
51
|
+
/** First and last track at the edges, equal space between. */
|
|
52
|
+
GridJustifyContent["SPACE_BETWEEN"] = "SPACE_BETWEEN";
|
|
53
|
+
/** Equal space around each track (half-size at the edges). */
|
|
54
|
+
GridJustifyContent["SPACE_AROUND"] = "SPACE_AROUND";
|
|
55
|
+
/** Equal space between tracks and at the edges. */
|
|
56
|
+
GridJustifyContent["SPACE_EVENLY"] = "SPACE_EVENLY";
|
|
57
|
+
/** Grow `auto` tracks to fill the grid. */
|
|
58
|
+
GridJustifyContent["STRETCH"] = "STRETCH";
|
|
59
|
+
return GridJustifyContent;
|
|
60
|
+
}({});
|
|
61
|
+
/** Block-axis distribution of the tracks when they are shorter than the grid (`align-content`). */
|
|
62
|
+
var GridAlignContent = /* @__PURE__ */ function(GridAlignContent) {
|
|
63
|
+
/** Pack the tracks at the block start. */
|
|
64
|
+
GridAlignContent["START"] = "START";
|
|
65
|
+
/** Center the tracks. */
|
|
66
|
+
GridAlignContent["CENTER"] = "CENTER";
|
|
67
|
+
/** Pack the tracks at the block end. */
|
|
68
|
+
GridAlignContent["END"] = "END";
|
|
69
|
+
/** First and last track at the edges, equal space between. */
|
|
70
|
+
GridAlignContent["SPACE_BETWEEN"] = "SPACE_BETWEEN";
|
|
71
|
+
/** Equal space around each track (half-size at the edges). */
|
|
72
|
+
GridAlignContent["SPACE_AROUND"] = "SPACE_AROUND";
|
|
73
|
+
/** Equal space between tracks and at the edges. */
|
|
74
|
+
GridAlignContent["SPACE_EVENLY"] = "SPACE_EVENLY";
|
|
75
|
+
/** Grow `auto` tracks to fill the grid. */
|
|
76
|
+
GridAlignContent["STRETCH"] = "STRETCH";
|
|
77
|
+
return GridAlignContent;
|
|
78
|
+
}({});
|
|
79
|
+
var Root = /*#__PURE__*/ styled("div")({
|
|
80
|
+
name: "Root",
|
|
81
|
+
class: "gx-Grid-rkbfhvt",
|
|
82
|
+
propsAsIs: false
|
|
83
|
+
});
|
|
84
|
+
var GRID_ALIGN_ITEMS_TO_CSS_MAP = {
|
|
85
|
+
["START"]: "gx-Grid-START-s1893hgf",
|
|
86
|
+
["CENTER"]: "gx-Grid-CENTER-ch9ax48",
|
|
87
|
+
["END"]: "gx-Grid-END-epvlyzq",
|
|
88
|
+
["STRETCH"]: "gx-Grid-STRETCH-ssf1p0g"
|
|
89
|
+
};
|
|
90
|
+
var GRID_JUSTIFY_ITEMS_TO_CSS_MAP = {
|
|
91
|
+
["START"]: "gx-Grid-START-slmg0j4",
|
|
92
|
+
["CENTER"]: "gx-Grid-CENTER-c19tdltw",
|
|
93
|
+
["END"]: "gx-Grid-END-e11pnn7d",
|
|
94
|
+
["STRETCH"]: "gx-Grid-STRETCH-s1gt0lci"
|
|
95
|
+
};
|
|
96
|
+
var GRID_ALIGN_CONTENT_TO_CSS_MAP = {
|
|
97
|
+
["START"]: "gx-Grid-START-sbisc1x",
|
|
98
|
+
["CENTER"]: "gx-Grid-CENTER-c199j9z9",
|
|
99
|
+
["END"]: "gx-Grid-END-e1hb8jsc",
|
|
100
|
+
["SPACE_BETWEEN"]: "gx-Grid-SPACE_BETWEEN-sgin4su",
|
|
101
|
+
["SPACE_AROUND"]: "gx-Grid-SPACE_AROUND-sytg8ql",
|
|
102
|
+
["SPACE_EVENLY"]: "gx-Grid-SPACE_EVENLY-sohzvpe",
|
|
103
|
+
["STRETCH"]: "gx-Grid-STRETCH-s139n4pb"
|
|
104
|
+
};
|
|
105
|
+
var GRID_JUSTIFY_CONTENT_TO_CSS_MAP = {
|
|
106
|
+
["START"]: "gx-Grid-START-slcmno0",
|
|
107
|
+
["CENTER"]: "gx-Grid-CENTER-cqkb4g8",
|
|
108
|
+
["END"]: "gx-Grid-END-e1wdz102",
|
|
109
|
+
["SPACE_BETWEEN"]: "gx-Grid-SPACE_BETWEEN-s8fdlfb",
|
|
110
|
+
["SPACE_AROUND"]: "gx-Grid-SPACE_AROUND-s1rtxpr5",
|
|
111
|
+
["SPACE_EVENLY"]: "gx-Grid-SPACE_EVENLY-s1qrmtgh",
|
|
112
|
+
["STRETCH"]: "gx-Grid-STRETCH-s1j87zqz"
|
|
113
|
+
};
|
|
114
|
+
var FILL_WIDTH_CSS = "gx-Grid-FILL_WIDTH_CSS-foxewdq";
|
|
115
|
+
/** Each block reads the `--gx-grid-<property>` custom property the component sets beside it. */
|
|
116
|
+
var GRID_CSS_PROPERTY_TO_CSS_MAP = {
|
|
117
|
+
"grid-template-columns": "gx-Grid-grid-template-columns-gpojuj0",
|
|
118
|
+
"grid-template-rows": "gx-Grid-grid-template-rows-gaxyr7p",
|
|
119
|
+
"grid-template-areas": "gx-Grid-grid-template-areas-g1dxyfzv",
|
|
120
|
+
gap: "gx-Grid-gap-g1w5z5h1",
|
|
121
|
+
padding: "gx-Grid-padding-p1icr3de",
|
|
122
|
+
width: "gx-Grid-width-w1w6zgma",
|
|
123
|
+
height: "gx-Grid-height-h17wto8a",
|
|
124
|
+
"min-width": "gx-Grid-min-width-m1l1yba3",
|
|
125
|
+
"max-width": "gx-Grid-max-width-m65i8tr",
|
|
126
|
+
"min-height": "gx-Grid-min-height-m1c4ixrp",
|
|
127
|
+
"max-height": "gx-Grid-max-height-m1a2u3k1",
|
|
128
|
+
overflow: "gx-Grid-overflow-o1666kxy"
|
|
129
|
+
};
|
|
130
|
+
/** A length prop as CSS (number → px), or `undefined` when unset. */
|
|
131
|
+
var toLength = (value) => value === void 0 ? void 0 : getCssSizeValue(value);
|
|
132
|
+
/** A track prop as CSS: a number is that many equal tracks, a string is used as-is. */
|
|
133
|
+
var toTracks = (value) => {
|
|
134
|
+
if (value === void 0) return void 0;
|
|
135
|
+
return typeof value === "number" ? `repeat(${value}, minmax(0, 1fr))` : value;
|
|
136
|
+
};
|
|
137
|
+
/** `areas` as `grid-template-areas`: each row string quoted, rows space-separated. */
|
|
138
|
+
var toAreas = (value) => value === void 0 || value.length === 0 ? void 0 : value.map((row) => `"${row}"`).join(" ");
|
|
139
|
+
/** The CSS grid layout primitive: tracks, areas, alignment, `gap`, `padding` and sizing. */
|
|
140
|
+
var Grid = forwardRef(function Grid({ children, columns = 1, rows, areas, gap, alignItems = "STRETCH", justifyItems = "STRETCH", alignContent = "START", justifyContent = "START", padding, width, height, minWidth, maxWidth, minHeight, maxHeight, fillWidth = false, overflow, as = "div", id, className, style, ...rest }, ref) {
|
|
141
|
+
const values = {
|
|
142
|
+
"grid-template-columns": toTracks(columns),
|
|
143
|
+
"grid-template-rows": toTracks(rows),
|
|
144
|
+
"grid-template-areas": toAreas(areas),
|
|
145
|
+
gap: gap === void 0 ? void 0 : gapToCss(gap),
|
|
146
|
+
padding: padding === void 0 ? void 0 : spaceToCss(padding),
|
|
147
|
+
width: fillWidth ? void 0 : toLength(width),
|
|
148
|
+
height: toLength(height),
|
|
149
|
+
"min-width": toLength(minWidth),
|
|
150
|
+
"max-width": toLength(maxWidth),
|
|
151
|
+
"min-height": toLength(minHeight),
|
|
152
|
+
"max-height": toLength(maxHeight),
|
|
153
|
+
overflow
|
|
154
|
+
};
|
|
155
|
+
const classNames = [];
|
|
156
|
+
const variables = {};
|
|
157
|
+
for (const property of Object.keys(values)) {
|
|
158
|
+
const value = values[property];
|
|
159
|
+
if (value === void 0) continue;
|
|
160
|
+
classNames.push(GRID_CSS_PROPERTY_TO_CSS_MAP[property]);
|
|
161
|
+
variables[`--gx-grid-${property}`] = value;
|
|
162
|
+
}
|
|
163
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
164
|
+
...rest,
|
|
165
|
+
as,
|
|
166
|
+
ref,
|
|
167
|
+
id,
|
|
168
|
+
className: cx(GRID_ALIGN_ITEMS_TO_CSS_MAP[alignItems], GRID_JUSTIFY_ITEMS_TO_CSS_MAP[justifyItems], GRID_ALIGN_CONTENT_TO_CSS_MAP[alignContent], GRID_JUSTIFY_CONTENT_TO_CSS_MAP[justifyContent], fillWidth && FILL_WIDTH_CSS, ...classNames, className),
|
|
169
|
+
style: {
|
|
170
|
+
...variables,
|
|
171
|
+
...style
|
|
172
|
+
},
|
|
173
|
+
children
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
Grid.displayName = "Grid";
|
|
177
|
+
//#endregion
|
|
178
|
+
export { GridAlignContent, GridAlignItems, GridJustifyContent, GridJustifyItems, Grid as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders its children into another DOM node — the nearest `GalaxyProvider`'s `portalContainer`,
|
|
3
|
+
* else `document.body` — while they stay where they are in the React tree, so context and events
|
|
4
|
+
* still flow through their React parent. Modal, Drawer, Popover, Tooltip and Toast render through it.
|
|
5
|
+
*
|
|
6
|
+
* SSR: renders nothing on the server and during hydration, then mounts on the client. Nothing here
|
|
7
|
+
* touches `document` at module scope.
|
|
8
|
+
*/
|
|
9
|
+
import { type ReactNode } from "react";
|
|
10
|
+
export interface PortalProps {
|
|
11
|
+
/** What to render in the mount node. */
|
|
12
|
+
children?: ReactNode;
|
|
13
|
+
/**
|
|
14
|
+
* Override the mount node. `null` renders nothing until the node exists (a ref set in state).
|
|
15
|
+
* @default the provider's `portalContainer`, else `document.body`
|
|
16
|
+
*/
|
|
17
|
+
container?: HTMLElement | null;
|
|
18
|
+
/**
|
|
19
|
+
* Render the children inline, where `Portal` sits, instead of portaling them.
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
isDisabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Renders `children` into the provider's `portalContainer` (or `container`, or `document.body`). */
|
|
25
|
+
declare function Portal({ children, container, isDisabled }: PortalProps): import("react").JSX.Element | null;
|
|
26
|
+
declare namespace Portal {
|
|
27
|
+
var displayName: string;
|
|
28
|
+
}
|
|
29
|
+
export default Portal;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useIsClient } from "../hooks/internal/useIsClient.js";
|
|
2
|
+
import { PortalContainerContext } from "../theme/useGalaxyTheme.js";
|
|
3
|
+
import { useContext } from "react";
|
|
4
|
+
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
5
|
+
import { createPortal } from "react-dom";
|
|
6
|
+
//#region src/layout/Portal.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Renders its children into another DOM node — the nearest `GalaxyProvider`'s `portalContainer`,
|
|
9
|
+
* else `document.body` — while they stay where they are in the React tree, so context and events
|
|
10
|
+
* still flow through their React parent. Modal, Drawer, Popover, Tooltip and Toast render through it.
|
|
11
|
+
*
|
|
12
|
+
* SSR: renders nothing on the server and during hydration, then mounts on the client. Nothing here
|
|
13
|
+
* touches `document` at module scope.
|
|
14
|
+
*/
|
|
15
|
+
/** Renders `children` into the provider's `portalContainer` (or `container`, or `document.body`). */
|
|
16
|
+
function Portal({ children, container, isDisabled = false }) {
|
|
17
|
+
const providerContainer = useContext(PortalContainerContext);
|
|
18
|
+
const isClient = useIsClient();
|
|
19
|
+
if (isDisabled) return /* @__PURE__ */ jsx(Fragment$1, { children });
|
|
20
|
+
if (!isClient) return null;
|
|
21
|
+
const target = container !== void 0 ? container : providerContainer;
|
|
22
|
+
const mountNode = target === void 0 ? document.body : target;
|
|
23
|
+
return mountNode === null ? null : createPortal(children, mountNode);
|
|
24
|
+
}
|
|
25
|
+
Portal.displayName = "Portal";
|
|
26
|
+
//#endregion
|
|
27
|
+
export { Portal as default };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
import { Orientation } from "../theme/enums.js";
|
|
3
|
+
export interface ResizablePanelsProps extends AriaAttributes {
|
|
4
|
+
/** `ResizablePanel` elements, in order. `null` / `false` children are skipped, so a panel can be shown conditionally. Other children are not rendered. */
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
/**
|
|
7
|
+
* Axis the panels are laid out along. `HORIZONTAL` places them side by side (vertical handles, sizes are widths); `VERTICAL` stacks them (horizontal handles, sizes are heights).
|
|
8
|
+
* @default Orientation.HORIZONTAL
|
|
9
|
+
*/
|
|
10
|
+
orientation?: Orientation;
|
|
11
|
+
/** Persists each uncontrolled panel's size in `localStorage` under this key, by panel `id`. Off when omitted. */
|
|
12
|
+
storageKey?: string;
|
|
13
|
+
/** DOM id on the root `<div>`. */
|
|
14
|
+
id?: string;
|
|
15
|
+
/** Any `data-*` attribute, forwarded to the root `<div>`. */
|
|
16
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
17
|
+
/** Extra class on the root `<div>`. */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** Inline style on the root `<div>`; only for setting CSS custom properties. */
|
|
20
|
+
style?: CSSProperties;
|
|
21
|
+
}
|
|
22
|
+
/** Props every panel takes, sized or fluid. */
|
|
23
|
+
interface ResizablePanelBaseProps extends AriaAttributes {
|
|
24
|
+
/** DOM id of the panel, the target of its handle's `aria-controls`, and its key in `storageKey`. Unique on the page. */
|
|
25
|
+
id: string;
|
|
26
|
+
/** The panel's content. It scrolls when it overflows. */
|
|
27
|
+
children?: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Smallest size in pixels. On the fluid panel, the room it keeps when the others grow.
|
|
30
|
+
* @default 0
|
|
31
|
+
*/
|
|
32
|
+
min?: number;
|
|
33
|
+
/** Any `data-*` attribute, forwarded to the panel `<div>`. */
|
|
34
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
35
|
+
/** Extra class on the panel `<div>`. */
|
|
36
|
+
className?: string;
|
|
37
|
+
/** Inline style on the panel `<div>`; only for setting CSS custom properties. */
|
|
38
|
+
style?: CSSProperties;
|
|
39
|
+
}
|
|
40
|
+
/** A controlled sized panel: its size is `value`; it must be named. */
|
|
41
|
+
interface ResizablePanelControlledProps {
|
|
42
|
+
/** Controlled size in pixels (width or height, by `orientation`). Pass it with `onChange`. */
|
|
43
|
+
value: number;
|
|
44
|
+
/** Initial size in pixels while uncontrolled. A panel with neither `value` nor `defaultValue` is the fluid panel and takes the remaining space. */
|
|
45
|
+
defaultValue?: undefined;
|
|
46
|
+
/** Called with the new size, clamped and rounded, while its handle is dragged or keyed. */
|
|
47
|
+
onChange?: (value: number) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Largest size in pixels. Also capped so the fluid panel keeps its `min`. Ignored on the fluid panel.
|
|
50
|
+
* @default Infinity
|
|
51
|
+
*/
|
|
52
|
+
max?: number;
|
|
53
|
+
/** Names the panel as a region ("Logs") and its handle ("Resize Logs"). Required on a sized panel. */
|
|
54
|
+
ariaLabel: string;
|
|
55
|
+
}
|
|
56
|
+
/** An uncontrolled sized panel: it starts at `defaultValue`; it must be named. */
|
|
57
|
+
interface ResizablePanelUncontrolledProps {
|
|
58
|
+
/** Controlled size in pixels (width or height, by `orientation`). Pass it with `onChange`. */
|
|
59
|
+
value?: undefined;
|
|
60
|
+
/** Initial size in pixels while uncontrolled. A panel with neither `value` nor `defaultValue` is the fluid panel and takes the remaining space. */
|
|
61
|
+
defaultValue: number;
|
|
62
|
+
/** Called with the new size, clamped and rounded, while its handle is dragged or keyed. */
|
|
63
|
+
onChange?: (value: number) => void;
|
|
64
|
+
/** Largest size in pixels. Also capped so the fluid panel keeps its `min`. Ignored on the fluid panel. */
|
|
65
|
+
max?: number;
|
|
66
|
+
/** Names the panel as a region ("Logs") and its handle ("Resize Logs"). Required on a sized panel. */
|
|
67
|
+
ariaLabel: string;
|
|
68
|
+
}
|
|
69
|
+
/** The fluid panel: no size of its own; it takes the remaining space. */
|
|
70
|
+
interface ResizablePanelFluidProps {
|
|
71
|
+
/** Controlled size in pixels (width or height, by `orientation`). Pass it with `onChange`. */
|
|
72
|
+
value?: undefined;
|
|
73
|
+
/** Initial size in pixels while uncontrolled. A panel with neither `value` nor `defaultValue` is the fluid panel and takes the remaining space. */
|
|
74
|
+
defaultValue?: undefined;
|
|
75
|
+
/** Called with the new size, clamped and rounded, while its handle is dragged or keyed. */
|
|
76
|
+
onChange?: undefined;
|
|
77
|
+
/** Largest size in pixels. Also capped so the fluid panel keeps its `min`. Ignored on the fluid panel. */
|
|
78
|
+
max?: undefined;
|
|
79
|
+
/** Names the panel as a region ("Logs") and its handle ("Resize Logs"). Required on a sized panel. */
|
|
80
|
+
ariaLabel?: string;
|
|
81
|
+
}
|
|
82
|
+
/** `ResizablePanel` props: a sized panel (`value` or `defaultValue`, named by `ariaLabel`) or the fluid one. */
|
|
83
|
+
export type ResizablePanelProps = ResizablePanelBaseProps & (ResizablePanelControlledProps | ResizablePanelUncontrolledProps | ResizablePanelFluidProps);
|
|
84
|
+
/** A split layout of `ResizablePanel`s with a `ResizeHandle` between each sized–fluid pair. */
|
|
85
|
+
declare const ResizablePanels: import("react").ForwardRefExoticComponent<ResizablePanelsProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
86
|
+
/** One panel of a `ResizablePanels` group: sized (`value` / `defaultValue`) or fluid. */
|
|
87
|
+
export declare const ResizablePanel: import("react").ForwardRefExoticComponent<ResizablePanelProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
88
|
+
export default ResizablePanels;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { Orientation } from "../theme/enums.js";
|
|
2
|
+
import { SPACE } from "../theme/tokens/scales.js";
|
|
3
|
+
import { useElementClientSize } from "../hooks/useElementClientSize.js";
|
|
4
|
+
import ResizeHandle from "./ResizeHandle.js";
|
|
5
|
+
import { useLocalStorage } from "../hooks/useLocalStorage.js";
|
|
6
|
+
/* empty css */
|
|
7
|
+
import { styled } from "@linaria/react";
|
|
8
|
+
import { Children, createContext, forwardRef, isValidElement, useContext, useRef, useState } from "react";
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
import { cx } from "@linaria/core";
|
|
11
|
+
import { useMergeRefs } from "@floating-ui/react";
|
|
12
|
+
//#region src/layout/ResizablePanels.tsx
|
|
13
|
+
/**
|
|
14
|
+
* A split layout: two or more `ResizablePanel`s side by side (or stacked) with a `ResizeHandle`
|
|
15
|
+
* between each pair, so the user can change how much room each one gets by pointer or keyboard.
|
|
16
|
+
* One panel is fluid and takes whatever space is left; every other panel has a size in pixels, a
|
|
17
|
+
* `min` and a `max`, and a handle on the side that faces the fluid panel. With `storageKey` the
|
|
18
|
+
* sizes the user chose survive reloads.
|
|
19
|
+
*
|
|
20
|
+
* Pass `ResizablePanel`s as direct children (Fragments are not flattened); `null` / `false`
|
|
21
|
+
* children are skipped, so a panel can be shown conditionally. A panel with neither `value` nor
|
|
22
|
+
* `defaultValue` is the fluid one; with none, the last panel is.
|
|
23
|
+
*/
|
|
24
|
+
var ResizablePanelsContext = createContext(null);
|
|
25
|
+
/** The storage key while `storageKey` is unset; it lives in a per-instance memory adapter. */
|
|
26
|
+
var RESIZABLE_PANELS_NO_STORAGE_KEY = "gx-resizable-panels:off";
|
|
27
|
+
/** A handle's thickness: the `space[8]` token, in pixels (ResizeHandle's strip). */
|
|
28
|
+
var HANDLE_THICKNESS_PX = Number.parseFloat(SPACE[8]);
|
|
29
|
+
/** A row of panels needs vertical bars; a stack needs horizontal ones (logic, not CSS). */
|
|
30
|
+
var RESIZABLE_PANELS_ORIENTATION_TO_HANDLE_ORIENTATION_MAP = {
|
|
31
|
+
[Orientation.HORIZONTAL]: Orientation.VERTICAL,
|
|
32
|
+
[Orientation.VERTICAL]: Orientation.HORIZONTAL
|
|
33
|
+
};
|
|
34
|
+
/** A per-instance in-memory storage, used while `storageKey` is not set. */
|
|
35
|
+
function createMemoryStorage() {
|
|
36
|
+
const values = /* @__PURE__ */ new Map();
|
|
37
|
+
return {
|
|
38
|
+
getItem: (key) => values.get(key) ?? null,
|
|
39
|
+
setItem: (key, value) => {
|
|
40
|
+
values.set(key, value);
|
|
41
|
+
},
|
|
42
|
+
removeItem: (key) => {
|
|
43
|
+
values.delete(key);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
var Root = /*#__PURE__*/ styled("div")({
|
|
48
|
+
name: "Root",
|
|
49
|
+
class: "gx-ResizablePanels-rov2pu6",
|
|
50
|
+
propsAsIs: false
|
|
51
|
+
});
|
|
52
|
+
/** Every panel scrolls its own content; no padding or surface (content brings its own). */
|
|
53
|
+
var Panel = /*#__PURE__*/ styled("div")({
|
|
54
|
+
name: "Panel",
|
|
55
|
+
class: "gx-ResizablePanels-Panel-piht8m9",
|
|
56
|
+
propsAsIs: false
|
|
57
|
+
});
|
|
58
|
+
var RESIZABLE_PANELS_ORIENTATION_TO_CSS_MAP = {
|
|
59
|
+
[Orientation.HORIZONTAL]: "gx-ResizablePanels-Orientation_HORIZONTAL-o1hgxsmq",
|
|
60
|
+
[Orientation.VERTICAL]: "gx-ResizablePanels-Orientation_VERTICAL-ow20qci"
|
|
61
|
+
};
|
|
62
|
+
/** `min` applies on the layout axis. */
|
|
63
|
+
var RESIZABLE_PANEL_ORIENTATION_TO_CSS_MAP = {
|
|
64
|
+
[Orientation.HORIZONTAL]: "gx-ResizablePanels-Orientation_HORIZONTAL-ot38enr",
|
|
65
|
+
[Orientation.VERTICAL]: "gx-ResizablePanels-Orientation_VERTICAL-o1ev9pzd"
|
|
66
|
+
};
|
|
67
|
+
/** A sized panel may shrink below its size (toward `min`) when the container is too small. */
|
|
68
|
+
var SIZED_CSS = "gx-ResizablePanels-SIZED_CSS-s16ojr42";
|
|
69
|
+
/** The fluid panel takes the remaining space. */
|
|
70
|
+
var FLUID_CSS = "gx-ResizablePanels-FLUID_CSS-f1k6jei3";
|
|
71
|
+
/** Rounds and keeps `value` within `[min, max]`. */
|
|
72
|
+
function clamp(value, min, max) {
|
|
73
|
+
return Math.min(Math.max(Math.round(value), min), max);
|
|
74
|
+
}
|
|
75
|
+
function isPanelElement(node) {
|
|
76
|
+
return isValidElement(node) && node.type === ResizablePanel;
|
|
77
|
+
}
|
|
78
|
+
/** A split layout of `ResizablePanel`s with a `ResizeHandle` between each sized–fluid pair. */
|
|
79
|
+
var ResizablePanels = forwardRef(function ResizablePanels({ children, orientation = Orientation.HORIZONTAL, storageKey, className, style, ...rest }, ref) {
|
|
80
|
+
const rootRef = useRef(null);
|
|
81
|
+
const mergedRef = useMergeRefs([rootRef, ref]);
|
|
82
|
+
const rootSize = useElementClientSize(rootRef);
|
|
83
|
+
const available = orientation === Orientation.HORIZONTAL ? rootSize.width : rootSize.height;
|
|
84
|
+
const [memoryStorage] = useState(createMemoryStorage);
|
|
85
|
+
const [stored, setStored] = useLocalStorage(storageKey ?? RESIZABLE_PANELS_NO_STORAGE_KEY, {}, { storage: storageKey === void 0 ? memoryStorage : void 0 });
|
|
86
|
+
const elements = Children.toArray(children).filter(isPanelElement);
|
|
87
|
+
const hasDeclaredFluid = elements.some((element) => element.props.value === void 0 && element.props.defaultValue === void 0);
|
|
88
|
+
const panels = elements.map((element, index) => {
|
|
89
|
+
const { props } = element;
|
|
90
|
+
const isFluid = hasDeclaredFluid ? props.value === void 0 && props.defaultValue === void 0 : index === elements.length - 1;
|
|
91
|
+
const min = props.min ?? 0;
|
|
92
|
+
const max = isFluid ? Number.POSITIVE_INFINITY : props.max ?? Number.POSITIVE_INFINITY;
|
|
93
|
+
return {
|
|
94
|
+
element,
|
|
95
|
+
props,
|
|
96
|
+
isFluid,
|
|
97
|
+
min,
|
|
98
|
+
max: Math.max(min, max)
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
/** The size a sized panel renders at: `value`, else its stored size, else `defaultValue`. */
|
|
102
|
+
const sizeOf = (panel) => {
|
|
103
|
+
const { value, defaultValue, id } = panel.props;
|
|
104
|
+
const storedSize = stored[id];
|
|
105
|
+
return clamp(value ?? (typeof storedSize === "number" && Number.isFinite(storedSize) ? storedSize : defaultValue) ?? panel.min, panel.min, panel.max);
|
|
106
|
+
};
|
|
107
|
+
const setSize = (panel, next) => {
|
|
108
|
+
const { value, onChange, id } = panel.props;
|
|
109
|
+
if (value === void 0) setStored((previous) => ({
|
|
110
|
+
...previous,
|
|
111
|
+
[id]: next
|
|
112
|
+
}));
|
|
113
|
+
onChange?.(next);
|
|
114
|
+
};
|
|
115
|
+
const firstFluidIndex = panels.findIndex((panel) => panel.isFluid);
|
|
116
|
+
const handleTargets = panels.map((panel, index) => {
|
|
117
|
+
if (index === 0) return void 0;
|
|
118
|
+
const before = panels[index - 1];
|
|
119
|
+
if (before !== void 0 && !before.isFluid && index - 1 < firstFluidIndex) return index - 1;
|
|
120
|
+
if (!panel.isFluid) return index;
|
|
121
|
+
});
|
|
122
|
+
const handleCount = handleTargets.filter((target) => target !== void 0).length;
|
|
123
|
+
/** A handle's `max`: the panel's own, capped so every fluid panel keeps its `min`. */
|
|
124
|
+
const dynamicMaxOf = (target) => {
|
|
125
|
+
if (available === void 0) return target.max;
|
|
126
|
+
let room = available - handleCount * HANDLE_THICKNESS_PX;
|
|
127
|
+
for (const panel of panels) {
|
|
128
|
+
if (panel === target) continue;
|
|
129
|
+
room -= panel.isFluid ? panel.min : sizeOf(panel);
|
|
130
|
+
}
|
|
131
|
+
return Math.max(target.min, Math.min(target.max, Math.floor(room)));
|
|
132
|
+
};
|
|
133
|
+
const layoutById = new Map(panels.map((panel) => [panel.props.id, {
|
|
134
|
+
size: panel.isFluid ? void 0 : sizeOf(panel),
|
|
135
|
+
min: panel.min,
|
|
136
|
+
isFluid: panel.isFluid
|
|
137
|
+
}]));
|
|
138
|
+
const contextValue = {
|
|
139
|
+
orientation,
|
|
140
|
+
getLayout: (id) => layoutById.get(id)
|
|
141
|
+
};
|
|
142
|
+
const content = [];
|
|
143
|
+
panels.forEach((panel, index) => {
|
|
144
|
+
const targetIndex = handleTargets[index];
|
|
145
|
+
const target = targetIndex === void 0 ? void 0 : panels[targetIndex];
|
|
146
|
+
if (target !== void 0) {
|
|
147
|
+
const max = dynamicMaxOf(target);
|
|
148
|
+
content.push(/* @__PURE__ */ jsx(ResizeHandle, {
|
|
149
|
+
orientation: RESIZABLE_PANELS_ORIENTATION_TO_HANDLE_ORIENTATION_MAP[orientation],
|
|
150
|
+
isReversed: targetIndex === index,
|
|
151
|
+
value: Math.min(sizeOf(target), max),
|
|
152
|
+
onChange: (next) => setSize(target, next),
|
|
153
|
+
min: target.min,
|
|
154
|
+
max,
|
|
155
|
+
ariaLabel: `Resize ${target.props.ariaLabel ?? target.props.id}`,
|
|
156
|
+
"aria-controls": target.props.id
|
|
157
|
+
}, `handle:${panel.props.id}`));
|
|
158
|
+
}
|
|
159
|
+
content.push(panel.element);
|
|
160
|
+
});
|
|
161
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
162
|
+
...rest,
|
|
163
|
+
ref: mergedRef,
|
|
164
|
+
className: cx(RESIZABLE_PANELS_ORIENTATION_TO_CSS_MAP[orientation], className),
|
|
165
|
+
style,
|
|
166
|
+
children: /* @__PURE__ */ jsx(ResizablePanelsContext.Provider, {
|
|
167
|
+
value: contextValue,
|
|
168
|
+
children: content
|
|
169
|
+
})
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
ResizablePanels.displayName = "ResizablePanels";
|
|
173
|
+
/** One panel of a `ResizablePanels` group: sized (`value` / `defaultValue`) or fluid. */
|
|
174
|
+
var ResizablePanel = forwardRef(function ResizablePanel({ id, children, value: _value, defaultValue: _defaultValue, onChange: _onChange, min = 0, max: _max, ariaLabel, className, style, ...rest }, ref) {
|
|
175
|
+
const group = useContext(ResizablePanelsContext);
|
|
176
|
+
const orientation = group?.orientation ?? Orientation.HORIZONTAL;
|
|
177
|
+
const layout = group?.getLayout(id);
|
|
178
|
+
const isFluid = layout?.isFluid ?? true;
|
|
179
|
+
const name = ariaLabel ?? rest["aria-label"];
|
|
180
|
+
const variables = { "--gx-resizable-panel-min": `${layout?.min ?? min}px` };
|
|
181
|
+
if (layout?.size !== void 0) variables["--gx-resizable-panel-size"] = `${layout.size}px`;
|
|
182
|
+
return /* @__PURE__ */ jsx(Panel, {
|
|
183
|
+
...rest,
|
|
184
|
+
ref,
|
|
185
|
+
id,
|
|
186
|
+
role: name ? "region" : void 0,
|
|
187
|
+
"aria-label": name,
|
|
188
|
+
className: cx(RESIZABLE_PANEL_ORIENTATION_TO_CSS_MAP[orientation], isFluid ? FLUID_CSS : SIZED_CSS, className),
|
|
189
|
+
style: {
|
|
190
|
+
...style,
|
|
191
|
+
...variables
|
|
192
|
+
},
|
|
193
|
+
children
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
ResizablePanel.displayName = "ResizablePanel";
|
|
197
|
+
//#endregion
|
|
198
|
+
export { ResizablePanel, ResizablePanels as default };
|