@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
|
@@ -1,11 +1,59 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { type MutableRefObject } from "react";
|
|
2
|
+
import { type DateInputSize } from "../inputs/DateInput.js";
|
|
3
|
+
import type { InputSize } from "../inputs/Input.js";
|
|
4
|
+
import { type SelectInputSize, type SelectOption } from "../inputs/SelectInput.js";
|
|
5
|
+
import { type SwitchInputSize } from "../inputs/SwitchInput.js";
|
|
6
|
+
/** @internal Which editor to render (InfiniteSpreadsheet maps its `SpreadsheetCellType` here). */
|
|
7
|
+
export declare enum SpreadsheetEditorKind {
|
|
8
|
+
/** TextInput. */
|
|
9
|
+
TEXT = "TEXT",
|
|
10
|
+
/** NumberInput. */
|
|
11
|
+
NUMBER = "NUMBER",
|
|
12
|
+
/** SwitchInput. */
|
|
13
|
+
BOOLEAN = "BOOLEAN",
|
|
14
|
+
/** SelectInput. */
|
|
15
|
+
ENUM = "ENUM",
|
|
16
|
+
/** DateInput. */
|
|
17
|
+
DATE = "DATE"
|
|
18
|
+
}
|
|
19
|
+
/** @internal How editing began: Enter / F2 / a click selects the text; typing starts with that character. */
|
|
20
|
+
export type SpreadsheetEditEntry = {
|
|
21
|
+
kind: "select";
|
|
22
|
+
} | {
|
|
23
|
+
kind: "char";
|
|
24
|
+
char: string;
|
|
25
|
+
};
|
|
26
|
+
/** @internal The editor sizes of one grid rung. */
|
|
27
|
+
export interface SpreadsheetEditorSizes {
|
|
28
|
+
input: InputSize;
|
|
29
|
+
select: SelectInputSize;
|
|
30
|
+
date: DateInputSize;
|
|
31
|
+
switchInput: SwitchInputSize;
|
|
32
|
+
}
|
|
33
|
+
/** @internal Props of `SpreadsheetCellEditor`. */
|
|
3
34
|
export interface SpreadsheetCellEditorProps {
|
|
4
|
-
|
|
35
|
+
/** The editor for the column's value type. */
|
|
36
|
+
kind: SpreadsheetEditorKind;
|
|
37
|
+
/** The cell's current value. */
|
|
5
38
|
value: unknown;
|
|
6
|
-
|
|
39
|
+
/** The column header: the editor's accessible name. */
|
|
40
|
+
header: string;
|
|
41
|
+
/** ENUM choices. */
|
|
42
|
+
options: SelectOption[] | undefined;
|
|
43
|
+
/** Editor sizes for the grid's rung. */
|
|
44
|
+
sizes: SpreadsheetEditorSizes;
|
|
45
|
+
/** How editing began. */
|
|
46
|
+
entry: SpreadsheetEditEntry;
|
|
47
|
+
/** The host reads the current draft through this (outside presses). */
|
|
48
|
+
draftRef: MutableRefObject<(() => unknown) | null>;
|
|
49
|
+
/** Commit a value (the host reports it only if it changed). */
|
|
7
50
|
onCommit: (value: unknown) => void;
|
|
51
|
+
/** Leave without committing. */
|
|
8
52
|
onCancel: () => void;
|
|
53
|
+
/** Commit the draft and move to the next (or previous) cell. */
|
|
54
|
+
onTab: (value: unknown, isBackward: boolean) => void;
|
|
55
|
+
/** A select or date panel opened or closed. */
|
|
56
|
+
onPanelOpenChange: (isOpen: boolean) => void;
|
|
9
57
|
}
|
|
10
|
-
|
|
11
|
-
export
|
|
58
|
+
/** The in-cell editor. */
|
|
59
|
+
export declare function SpreadsheetCellEditor({ kind, value, header, options, sizes, entry, draftRef, onCommit, onCancel, onTab, onPanelOpenChange, }: SpreadsheetCellEditorProps): import("react").JSX.Element;
|
|
@@ -1,101 +1,180 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { FontFamily } from "../theme/enums.js";
|
|
2
|
+
import { BareFieldContext } from "../inputs/internal/bareField.js";
|
|
3
|
+
import TextInput from "../inputs/TextInput.js";
|
|
3
4
|
import SelectInput from "../inputs/SelectInput.js";
|
|
4
5
|
import DateInput from "../inputs/DateInput.js";
|
|
5
6
|
import NumberInput from "../inputs/NumberInput.js";
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import SwitchInput from "../inputs/SwitchInput.js";
|
|
8
|
+
/* empty css */
|
|
9
|
+
import { styled } from "@linaria/react";
|
|
10
|
+
import { useEffect, useRef, useState } from "react";
|
|
10
11
|
import { jsx } from "react/jsx-runtime";
|
|
11
12
|
//#region src/table/SpreadsheetCellEditor.tsx
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* @internal Shared by InfiniteSpreadsheet; apps use InfiniteSpreadsheet.
|
|
15
|
+
*
|
|
16
|
+
* The in-cell editor: one 2.0 input per value type at the grid rung's size, `fillWidth`, focused on
|
|
17
|
+
* mount, rendered bare (`BareFieldContext`): no border, fill, focus line or start padding, so the
|
|
18
|
+
* value's text stays exactly where the read-only cell drew it and the cell's own selection outline
|
|
19
|
+
* is the only focus cue. Every way out goes through the host's callbacks, so the commit
|
|
20
|
+
* rule (report only changed values) lives in one place:
|
|
21
|
+
* - Enter (TextInput / NumberInput `onEnter`), a choice in SelectInput / DateInput, any toggle of
|
|
22
|
+
* SwitchInput → `onCommit`.
|
|
23
|
+
* - Tab / Shift+Tab → `onTab` with the current draft (captured before the inputs see the key).
|
|
24
|
+
* - Escape → `onCancel` (captured, so NumberInput's own draft reset does not take a first press).
|
|
25
|
+
* While a select or date panel is open, Escape and Tab belong to the panel.
|
|
26
|
+
* The host reads the draft through `draftRef` when a press lands outside the cell.
|
|
17
27
|
*/
|
|
18
|
-
|
|
19
|
-
function
|
|
20
|
-
|
|
28
|
+
/** @internal Which editor to render (InfiniteSpreadsheet maps its `SpreadsheetCellType` here). */
|
|
29
|
+
var SpreadsheetEditorKind = /* @__PURE__ */ function(SpreadsheetEditorKind) {
|
|
30
|
+
/** TextInput. */
|
|
31
|
+
SpreadsheetEditorKind["TEXT"] = "TEXT";
|
|
32
|
+
/** NumberInput. */
|
|
33
|
+
SpreadsheetEditorKind["NUMBER"] = "NUMBER";
|
|
34
|
+
/** SwitchInput. */
|
|
35
|
+
SpreadsheetEditorKind["BOOLEAN"] = "BOOLEAN";
|
|
36
|
+
/** SelectInput. */
|
|
37
|
+
SpreadsheetEditorKind["ENUM"] = "ENUM";
|
|
38
|
+
/** DateInput. */
|
|
39
|
+
SpreadsheetEditorKind["DATE"] = "DATE";
|
|
40
|
+
return SpreadsheetEditorKind;
|
|
41
|
+
}({});
|
|
42
|
+
/** Fills the editing cell. */
|
|
43
|
+
var Root = /*#__PURE__*/ styled("div")({
|
|
44
|
+
name: "Root",
|
|
45
|
+
class: "gx-SpreadsheetCellEditor-r1scgnu2",
|
|
46
|
+
propsAsIs: false
|
|
47
|
+
});
|
|
48
|
+
/** NumberInput's draft text → the value it would commit (`undefined`: unparseable, keep the value). */
|
|
49
|
+
function parseNumberDraft(text) {
|
|
50
|
+
const cleaned = text.replace(/,/g, "").trim();
|
|
51
|
+
if (cleaned === "" || cleaned === "-" || cleaned === "." || cleaned === "-.") return null;
|
|
52
|
+
const parsed = Number(cleaned);
|
|
53
|
+
return Number.isNaN(parsed) ? void 0 : parsed;
|
|
21
54
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
55
|
+
/** The in-cell editor. */
|
|
56
|
+
function SpreadsheetCellEditor({ kind, value, header, options, sizes, entry, draftRef, onCommit, onCancel, onTab, onPanelOpenChange }) {
|
|
57
|
+
const rootRef = useRef(null);
|
|
58
|
+
const inputRef = useRef(null);
|
|
59
|
+
const triggerRef = useRef(null);
|
|
60
|
+
const [isPanelOpen, setIsPanelOpen] = useState(kind === "ENUM" || kind === "DATE");
|
|
61
|
+
const handlePanelOpenChange = (isOpen) => {
|
|
62
|
+
setIsPanelOpen(isOpen);
|
|
63
|
+
onPanelOpenChange(isOpen);
|
|
64
|
+
};
|
|
65
|
+
const [text, setText] = useState(entry.kind === "char" ? entry.char : typeof value === "string" ? value : value === null || value === void 0 ? "" : String(value));
|
|
66
|
+
const textRef = useRef(text);
|
|
67
|
+
textRef.current = text;
|
|
68
|
+
const initialNumber = entry.kind === "char" ? parseNumberDraft(entry.char) ?? null : typeof value === "number" ? value : null;
|
|
69
|
+
draftRef.current = () => {
|
|
70
|
+
switch (kind) {
|
|
71
|
+
case "TEXT": return textRef.current;
|
|
72
|
+
case "NUMBER": {
|
|
73
|
+
const parsed = parseNumberDraft(inputRef.current?.value ?? "");
|
|
74
|
+
return parsed === void 0 ? value : parsed;
|
|
75
|
+
}
|
|
76
|
+
default: return value;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
useEffect(() => () => {
|
|
80
|
+
draftRef.current = null;
|
|
81
|
+
}, [draftRef]);
|
|
82
|
+
const mountRef = useRef({ isSelect: entry.kind === "select" });
|
|
29
83
|
useEffect(() => {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
document.addEventListener("pointerdown", onPointerDown);
|
|
39
|
-
return () => document.removeEventListener("pointerdown", onPointerDown);
|
|
84
|
+
const input = inputRef.current;
|
|
85
|
+
if (input !== null) {
|
|
86
|
+
input.focus();
|
|
87
|
+
if (mountRef.current.isSelect && input.type !== "checkbox") input.select();
|
|
88
|
+
else if (input.type !== "checkbox") input.setSelectionRange(input.value.length, input.value.length);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (!rootRef.current?.contains(document.activeElement)) triggerRef.current?.focus();
|
|
40
92
|
}, []);
|
|
41
|
-
const
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
e.preventDefault();
|
|
93
|
+
const handleKeyDownCapture = (event) => {
|
|
94
|
+
if (isPanelOpen) return;
|
|
95
|
+
if (event.key === "Escape") {
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
event.stopPropagation();
|
|
47
98
|
onCancel();
|
|
48
|
-
} else if (
|
|
49
|
-
|
|
50
|
-
|
|
99
|
+
} else if (event.key === "Tab") {
|
|
100
|
+
event.preventDefault();
|
|
101
|
+
event.stopPropagation();
|
|
102
|
+
onTab(draftRef.current?.() ?? value, event.shiftKey);
|
|
51
103
|
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
onCommit(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
104
|
+
};
|
|
105
|
+
let editor;
|
|
106
|
+
switch (kind) {
|
|
107
|
+
case "TEXT":
|
|
108
|
+
editor = /* @__PURE__ */ jsx(TextInput, {
|
|
109
|
+
ref: inputRef,
|
|
110
|
+
size: sizes.input,
|
|
111
|
+
isGhost: true,
|
|
112
|
+
value: text,
|
|
113
|
+
onChange: setText,
|
|
114
|
+
onEnter: (next) => onCommit(next),
|
|
115
|
+
ariaLabel: header,
|
|
116
|
+
fillWidth: true
|
|
117
|
+
});
|
|
118
|
+
break;
|
|
119
|
+
case "NUMBER":
|
|
120
|
+
editor = /* @__PURE__ */ jsx(NumberInput, {
|
|
121
|
+
ref: inputRef,
|
|
122
|
+
size: sizes.input,
|
|
123
|
+
isGhost: true,
|
|
124
|
+
defaultValue: initialNumber,
|
|
125
|
+
family: FontFamily.MONO,
|
|
126
|
+
onEnter: (next) => onCommit(next),
|
|
127
|
+
ariaLabel: header,
|
|
128
|
+
fillWidth: true
|
|
129
|
+
});
|
|
130
|
+
break;
|
|
131
|
+
case "BOOLEAN":
|
|
132
|
+
editor = /* @__PURE__ */ jsx(SwitchInput, {
|
|
133
|
+
ref: inputRef,
|
|
134
|
+
size: sizes.switchInput,
|
|
135
|
+
isChecked: value === true,
|
|
136
|
+
onChange: (isChecked) => onCommit(isChecked),
|
|
137
|
+
ariaLabel: header
|
|
138
|
+
});
|
|
139
|
+
break;
|
|
140
|
+
case "ENUM":
|
|
141
|
+
editor = /* @__PURE__ */ jsx(SelectInput, {
|
|
142
|
+
ref: triggerRef,
|
|
143
|
+
size: sizes.select,
|
|
144
|
+
isGhost: true,
|
|
145
|
+
options: options ?? [],
|
|
146
|
+
value: typeof value === "string" ? value : null,
|
|
147
|
+
defaultIsOpen: true,
|
|
148
|
+
isSearchable: (options?.length ?? 0) > 8,
|
|
149
|
+
onChange: (next) => onCommit(next),
|
|
150
|
+
onOpenChange: handlePanelOpenChange,
|
|
151
|
+
ariaLabel: header,
|
|
152
|
+
fillWidth: true
|
|
153
|
+
});
|
|
154
|
+
break;
|
|
155
|
+
case "DATE":
|
|
156
|
+
editor = /* @__PURE__ */ jsx(DateInput, {
|
|
157
|
+
ref: triggerRef,
|
|
158
|
+
size: sizes.date,
|
|
159
|
+
isGhost: true,
|
|
160
|
+
value: value instanceof Date ? value : null,
|
|
161
|
+
defaultIsOpen: true,
|
|
162
|
+
onChange: (next) => onCommit(next),
|
|
163
|
+
onOpenChange: handlePanelOpenChange,
|
|
164
|
+
ariaLabel: header,
|
|
88
165
|
fillWidth: true,
|
|
89
|
-
|
|
166
|
+
isClearable: true
|
|
90
167
|
});
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
171
|
+
ref: rootRef,
|
|
172
|
+
onKeyDownCapture: handleKeyDownCapture,
|
|
173
|
+
children: /* @__PURE__ */ jsx(BareFieldContext.Provider, {
|
|
174
|
+
value: true,
|
|
175
|
+
children: editor
|
|
176
|
+
})
|
|
98
177
|
});
|
|
99
178
|
}
|
|
100
179
|
//#endregion
|
|
101
|
-
export { SpreadsheetCellEditor
|
|
180
|
+
export { SpreadsheetCellEditor, SpreadsheetEditorKind };
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type KeyboardEvent, type MouseEvent, type PointerEvent, type ReactNode, type Ref, type RefObject } from "react";
|
|
2
|
+
import { ButtonSize } from "../buttons/Button.js";
|
|
3
|
+
import { EmptyStateSize } from "../feedback/EmptyState.js";
|
|
4
|
+
import { SkeletonSize } from "../feedback/Skeleton.js";
|
|
5
|
+
import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
|
|
6
|
+
import { CheckboxInputSize } from "../inputs/CheckboxInput.js";
|
|
7
|
+
import { MenuSize } from "../menu/Menu.js";
|
|
8
|
+
import { TextSize } from "../text/Text.js";
|
|
9
|
+
import type { TableColumnAlign, TableColumnPin, TableSort } from "./types.js";
|
|
10
|
+
import type { TableColumnLayoutResult, TableColumnsMenuEntry, TableResolvedColumn } from "./useTableColumnLayout.js";
|
|
11
|
+
/** Re-exported for the table modules that measured with it before it became a shared hook. */
|
|
12
|
+
export { useIsomorphicLayoutEffect };
|
|
13
|
+
/** `onEndReached` fires when the last row comes within this many pixels of view. */
|
|
14
|
+
export declare const TABLE_END_REACHED_MARGIN_PX = 500;
|
|
15
|
+
/** Skeleton rows shown in place of an empty body while the first page loads. */
|
|
16
|
+
export declare const TABLE_LOADING_ROW_COUNT = 5;
|
|
17
|
+
/** Skeleton rows shown after the last row while more rows load. */
|
|
18
|
+
export declare const TABLE_LOADING_MORE_ROW_COUNT = 3;
|
|
19
|
+
/** Smallest column width when a column sets none (1.x). */
|
|
20
|
+
export declare const TABLE_DEFAULT_MIN_COLUMN_WIDTH = 60;
|
|
21
|
+
/** Largest resize width when a column sets none (1.x). */
|
|
22
|
+
export declare const TABLE_DEFAULT_MAX_COLUMN_WIDTH = 800;
|
|
23
|
+
/** Width of a pinned column that sets no `width` (1.x); a dev warning asks for one. */
|
|
24
|
+
export declare const TABLE_PINNED_FALLBACK_WIDTH = 150;
|
|
25
|
+
/** Horizontal pointer travel before a header press becomes a column drag: `space[4]`. */
|
|
26
|
+
export declare const TABLE_DRAG_THRESHOLD_PX: number;
|
|
27
|
+
/** Rows rendered above and below the visible window of a virtual body. */
|
|
28
|
+
export declare const VIRTUAL_OVERSCAN = 10;
|
|
29
|
+
/** Local stacking inside the root's `isolation: isolate`; never competes with `t.z` layers. */
|
|
30
|
+
/** @internal Stacking of pinned cells (and the spreadsheet's editing cell). */
|
|
31
|
+
export declare const TABLE_Z_PINNED = 1;
|
|
32
|
+
/** @internal True outside production builds (read through `process.env.NODE_ENV`). */
|
|
33
|
+
export declare function isDevelopment(): boolean;
|
|
34
|
+
/** @internal Every size a table rung implies, for the parts and the components they render. */
|
|
35
|
+
export interface TableMetrics {
|
|
36
|
+
/** Sets `--gx-table-row-height`, `--gx-table-header-height` and `--gx-table-cell-padding-inline` on the root. */
|
|
37
|
+
css: string;
|
|
38
|
+
/** Body row height in pixels (virtual bodies, synthetic column widths). */
|
|
39
|
+
rowHeightPx: number;
|
|
40
|
+
/** Header and footer row height in pixels (virtual bodies' scroll margins). */
|
|
41
|
+
headerHeightPx: number;
|
|
42
|
+
/** Cell and header text step. */
|
|
43
|
+
textSize: TextSize;
|
|
44
|
+
/** Sort and error icon size in pixels. */
|
|
45
|
+
headerIconPx: number;
|
|
46
|
+
/** Expand caret size in pixels: 12px, 10px on the 20px and 24px expand buttons (the collapsible Widget's caret). */
|
|
47
|
+
caretPx: number;
|
|
48
|
+
/** Select-column checkbox size. */
|
|
49
|
+
checkboxSize: CheckboxInputSize;
|
|
50
|
+
/** Expand, row actions, column actions and Columns button size. */
|
|
51
|
+
buttonSize: ButtonSize;
|
|
52
|
+
/** Skeleton row line size. */
|
|
53
|
+
skeletonSize: SkeletonSize;
|
|
54
|
+
/** Row actions, column actions and Columns menu size. */
|
|
55
|
+
menuSize: MenuSize;
|
|
56
|
+
/** Empty and error state size. */
|
|
57
|
+
emptyStateSize: EmptyStateSize;
|
|
58
|
+
}
|
|
59
|
+
/** @internal 32px rows, 32px header, body_sm. */
|
|
60
|
+
export declare const TABLE_SMALL_METRICS: TableMetrics;
|
|
61
|
+
/** @internal 48px rows, 40px header, body_md. */
|
|
62
|
+
export declare const TABLE_MEDIUM_METRICS: TableMetrics;
|
|
63
|
+
/** @internal 52px rows, 44px header, body_lg. */
|
|
64
|
+
export declare const TABLE_LARGE_METRICS: TableMetrics;
|
|
65
|
+
/** @internal A body row. States are classes (`ROW_*_CSS`). */
|
|
66
|
+
export declare const TableRow: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLTableRowElement> & import("react").HTMLAttributes<HTMLTableRowElement> & Record<never, unknown>>;
|
|
67
|
+
/** @internal A body or footer cell. */
|
|
68
|
+
export declare const TableCell: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLTableDataCellElement> & import("react").TdHTMLAttributes<HTMLTableDataCellElement> & Record<never, unknown>>;
|
|
69
|
+
/** @internal Select, expand and row-actions columns: a square of the row height, content centered. */
|
|
70
|
+
export declare const SYNTHETIC_CELL_CSS: import("@linaria/core").LinariaClassName;
|
|
71
|
+
/** @internal Alignment of a column's header and cells. */
|
|
72
|
+
export declare const COLUMN_ALIGN_TO_CSS_MAP: Record<TableColumnAlign, string>;
|
|
73
|
+
/** @internal Sticky to an edge while the table scrolls sideways. */
|
|
74
|
+
export declare const PIN_TO_CSS_MAP: Record<TableColumnPin, string>;
|
|
75
|
+
/** @internal The edge hairline of the last left-pinned / first right-pinned data column. */
|
|
76
|
+
export declare const PIN_TO_EDGE_CSS_MAP: Record<TableColumnPin, string>;
|
|
77
|
+
/** @internal The last row, or a row whose panel is open: no bottom hairline. */
|
|
78
|
+
export declare const ROW_NO_BORDER_CSS: import("@linaria/core").LinariaClassName;
|
|
79
|
+
/** @internal A virtual body: as tall as every row, which are positioned inside it. */
|
|
80
|
+
export declare const VIRTUAL_BODY_CSS: import("@linaria/core").LinariaClassName;
|
|
81
|
+
/** @internal A virtual row, placed at `--gx-table-row-start`. */
|
|
82
|
+
export declare const VIRTUAL_ROW_CSS: import("@linaria/core").LinariaClassName;
|
|
83
|
+
/** @internal Default cells and footer strings: shrink to truncate. */
|
|
84
|
+
export declare const CELL_TEXT_CSS: import("@linaria/core").LinariaClassName;
|
|
85
|
+
/** @internal The default cell renderer: one truncating line of formatted text. */
|
|
86
|
+
export declare function TableCellText({ value, textSize }: {
|
|
87
|
+
value: unknown;
|
|
88
|
+
textSize: TextSize;
|
|
89
|
+
}): import("react").JSX.Element;
|
|
90
|
+
/** @internal Props of `TableHeaderCell`. */
|
|
91
|
+
export interface TableHeaderCellProps {
|
|
92
|
+
resolved: TableResolvedColumn<unknown>;
|
|
93
|
+
metrics: TableMetrics;
|
|
94
|
+
/** `aria-sort` for sortable columns. */
|
|
95
|
+
sortState: "ascending" | "descending" | "none" | undefined;
|
|
96
|
+
/** The table is customizable: the label is a button (drag, Alt+Arrow). */
|
|
97
|
+
isCustomizable: boolean;
|
|
98
|
+
/** Column width for the resize handle. */
|
|
99
|
+
width: number;
|
|
100
|
+
/** Which edge shows the drop indicator while another column is dragged. */
|
|
101
|
+
dropEdge: "start" | "end" | null;
|
|
102
|
+
isDragged: boolean;
|
|
103
|
+
colIndex: number | undefined;
|
|
104
|
+
onSortPress: (columnId: string) => void;
|
|
105
|
+
onResize: (columnId: string, width: number) => void;
|
|
106
|
+
onLabelKeyDown: (columnId: string, event: KeyboardEvent<HTMLButtonElement>) => void;
|
|
107
|
+
onLabelPointerDown: (columnId: string, event: PointerEvent<HTMLButtonElement>) => void;
|
|
108
|
+
onLabelPointerMove: (event: PointerEvent<HTMLButtonElement>) => void;
|
|
109
|
+
onLabelPointerUp: (event: PointerEvent<HTMLButtonElement>) => void;
|
|
110
|
+
onLabelPointerCancel: (event: PointerEvent<HTMLButtonElement>) => void;
|
|
111
|
+
onLabelClickCapture: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
112
|
+
registerCell: (columnId: string, element: HTMLElement | null) => void;
|
|
113
|
+
registerButton: (columnId: string, element: HTMLButtonElement | null) => void;
|
|
114
|
+
}
|
|
115
|
+
/** @internal One column header: label (sort / drag button), sort icon, column actions, resize handle. */
|
|
116
|
+
export declare function TableHeaderCell({ resolved, metrics, sortState, isCustomizable, width, dropEdge, isDragged, colIndex, onSortPress, onResize, onLabelKeyDown, onLabelPointerDown, onLabelPointerMove, onLabelPointerUp, onLabelPointerCancel, onLabelClickCapture, registerCell, registerButton, }: TableHeaderCellProps): import("react").JSX.Element;
|
|
117
|
+
/** @internal The trailing corner's Columns menu: show / hide each column, reset the layout. */
|
|
118
|
+
export declare function TableColumnsMenu({ entries, metrics, onToggle, onReset, }: {
|
|
119
|
+
entries: TableColumnsMenuEntry[];
|
|
120
|
+
metrics: TableMetrics;
|
|
121
|
+
onToggle: (columnId: string, isVisible: boolean) => void;
|
|
122
|
+
onReset: () => void;
|
|
123
|
+
}): import("react").JSX.Element;
|
|
124
|
+
/** @internal Stable callbacks every body row shares (kept in a ref by the host). */
|
|
125
|
+
export interface TableRowCallbacks {
|
|
126
|
+
registerRow: (rowIndex: number, element: HTMLElement | null) => void;
|
|
127
|
+
onRowClick: ((row: unknown, event: MouseEvent<HTMLTableRowElement>) => void) | undefined;
|
|
128
|
+
onRowKeyDown: (rowIndex: number, event: KeyboardEvent<HTMLTableRowElement>) => void;
|
|
129
|
+
onRowFocus: (rowIndex: number) => void;
|
|
130
|
+
onToggleSelect: (rowId: string, isRange: boolean) => void;
|
|
131
|
+
onToggleExpand: (rowId: string) => void;
|
|
132
|
+
onActionsOpenChange: (rowId: string, isOpen: boolean) => void;
|
|
133
|
+
getRowActions: ((row: unknown, rowIndex: number) => ReactNode) | undefined;
|
|
134
|
+
getRowName: (row: unknown, rowIndex: number) => string;
|
|
135
|
+
}
|
|
136
|
+
/** @internal Props of `TableBodyRow`. */
|
|
137
|
+
export interface TableBodyRowProps {
|
|
138
|
+
row: unknown;
|
|
139
|
+
rowIndex: number;
|
|
140
|
+
rowId: string;
|
|
141
|
+
columns: TableResolvedColumn<unknown>[];
|
|
142
|
+
metrics: TableMetrics;
|
|
143
|
+
callbacks: TableRowCallbacks;
|
|
144
|
+
cellRole: "gridcell" | "cell";
|
|
145
|
+
/** The row takes part in the keyboard model (roving `tabIndex`). */
|
|
146
|
+
isFocusable: boolean;
|
|
147
|
+
/** The row is the roving tab stop. */
|
|
148
|
+
isTabStop: boolean;
|
|
149
|
+
/** The row does something on click. */
|
|
150
|
+
isClickable: boolean;
|
|
151
|
+
/** No bottom hairline. */
|
|
152
|
+
isBorderless: boolean;
|
|
153
|
+
isActive: boolean;
|
|
154
|
+
/** `undefined`: the table has no select column. */
|
|
155
|
+
isSelected: boolean | undefined;
|
|
156
|
+
/** The table has an expand column. */
|
|
157
|
+
hasExpandColumn: boolean;
|
|
158
|
+
/** `undefined`: this row cannot expand. */
|
|
159
|
+
isExpanded: boolean | undefined;
|
|
160
|
+
panelId: string | undefined;
|
|
161
|
+
/** The table has a trailing (row actions / Columns) column. */
|
|
162
|
+
hasTrailingColumn: boolean;
|
|
163
|
+
isActionsOpen: boolean;
|
|
164
|
+
/** `aria-rowindex` (virtual bodies). */
|
|
165
|
+
ariaRowIndex: number | undefined;
|
|
166
|
+
/** Set `aria-colindex` on cells (virtual bodies). */
|
|
167
|
+
hasColIndex: boolean;
|
|
168
|
+
className: string | undefined;
|
|
169
|
+
style: CSSProperties | undefined;
|
|
170
|
+
}
|
|
171
|
+
/** @internal One body row with its synthetic and data cells. Memoized: every prop is stable or primitive. */
|
|
172
|
+
export declare const TableBodyRow: import("react").NamedExoticComponent<TableBodyRowProps>;
|
|
173
|
+
/** @internal Props of `TableSkeletonRow`. */
|
|
174
|
+
export interface TableSkeletonRowProps {
|
|
175
|
+
columns: TableResolvedColumn<unknown>[];
|
|
176
|
+
metrics: TableMetrics;
|
|
177
|
+
leadingCount: number;
|
|
178
|
+
hasTrailingColumn: boolean;
|
|
179
|
+
isBorderless: boolean;
|
|
180
|
+
ariaRowIndex?: number;
|
|
181
|
+
/**
|
|
182
|
+
* A row of a virtual body that is not loaded yet: it stays in the accessibility tree
|
|
183
|
+
* (`aria-busy`, so `aria-rowindex` stays continuous) and takes part in the roving focus.
|
|
184
|
+
*/
|
|
185
|
+
pending?: {
|
|
186
|
+
rowRef: (element: HTMLElement | null) => void;
|
|
187
|
+
isTabStop: boolean;
|
|
188
|
+
onKeyDown: (event: KeyboardEvent<HTMLTableRowElement>) => void;
|
|
189
|
+
onFocus: () => void;
|
|
190
|
+
};
|
|
191
|
+
className?: string;
|
|
192
|
+
style?: CSSProperties;
|
|
193
|
+
}
|
|
194
|
+
/** @internal A placeholder row: a text skeleton in each data cell, synthetic cells empty. */
|
|
195
|
+
export declare function TableSkeletonRow({ columns, metrics, leadingCount, hasTrailingColumn, isBorderless, ariaRowIndex, pending, className, style, }: TableSkeletonRowProps): import("react").JSX.Element;
|
|
196
|
+
/** @internal An expanded row's panel, under its row, as wide as the visible area. */
|
|
197
|
+
export declare function TableExpandedRow({ panelId, colSpan, gutterPx, isLast, children, }: {
|
|
198
|
+
panelId: string;
|
|
199
|
+
colSpan: number;
|
|
200
|
+
gutterPx: number;
|
|
201
|
+
isLast: boolean;
|
|
202
|
+
children: ReactNode;
|
|
203
|
+
}): import("react").JSX.Element;
|
|
204
|
+
/** @internal Props of `TableFrame`. */
|
|
205
|
+
export interface TableFrameProps {
|
|
206
|
+
metrics: TableMetrics;
|
|
207
|
+
columnLayout: TableColumnLayoutResult<unknown>;
|
|
208
|
+
/** Header content of each leading synthetic column (select-all, expand). */
|
|
209
|
+
leadingHeaders: ReactNode[];
|
|
210
|
+
/** Header content of the trailing corner column; `undefined` when there is no trailing column. */
|
|
211
|
+
trailingHeader: ReactNode | undefined;
|
|
212
|
+
hasTrailingColumn: boolean;
|
|
213
|
+
sort: TableSort | null;
|
|
214
|
+
onSortPress: (columnId: string) => void;
|
|
215
|
+
canCustomizeColumns: boolean;
|
|
216
|
+
/** Loaded rows in the body. */
|
|
217
|
+
rowCount: number;
|
|
218
|
+
isLoading: boolean;
|
|
219
|
+
error: string | undefined;
|
|
220
|
+
emptyState: ReactNode;
|
|
221
|
+
onEndReached: (() => void) | undefined;
|
|
222
|
+
role: "grid" | "table";
|
|
223
|
+
ariaLabel: string | undefined;
|
|
224
|
+
/** `aria-*` passthrough for the `<table>`. */
|
|
225
|
+
tableAria: AriaAttributes;
|
|
226
|
+
isMultiselectable: boolean;
|
|
227
|
+
/** `aria-rowcount` for virtual bodies; also turns on `aria-rowindex` / `aria-colindex`. */
|
|
228
|
+
ariaRowCount: number | undefined;
|
|
229
|
+
rootRef: Ref<HTMLDivElement>;
|
|
230
|
+
scrollRef: RefObject<HTMLDivElement | null>;
|
|
231
|
+
rootProps: Record<string, unknown>;
|
|
232
|
+
bodyClassName?: string | undefined;
|
|
233
|
+
bodyStyle?: CSSProperties | undefined;
|
|
234
|
+
/** A message for the live region (sort changes in virtual bodies). */
|
|
235
|
+
announcement?: string | undefined;
|
|
236
|
+
/** Extra class on the trailing header and footer cells (a corner wider than one synthetic column). */
|
|
237
|
+
trailingClassName?: string | undefined;
|
|
238
|
+
/** Body rows. */
|
|
239
|
+
children: ReactNode;
|
|
240
|
+
className: string | undefined;
|
|
241
|
+
style: CSSProperties | undefined;
|
|
242
|
+
}
|
|
243
|
+
/** Root → scroll container → table (header, body, status, footer) → sentinel → live region. */
|
|
244
|
+
export declare function TableFrame({ metrics, columnLayout, leadingHeaders, trailingHeader, hasTrailingColumn, sort, onSortPress, canCustomizeColumns, rowCount, isLoading, error, emptyState, onEndReached, role, ariaLabel, tableAria, isMultiselectable, ariaRowCount, rootRef, scrollRef, rootProps, className, style, bodyClassName, bodyStyle, announcement, trailingClassName, children, }: TableFrameProps): import("react").JSX.Element;
|
|
245
|
+
/** @internal Header content of the select column: the select-all checkbox. */
|
|
246
|
+
export declare function TableSelectAllCheckbox({ metrics, isChecked, isIndeterminate, isDisabled, onToggle, }: {
|
|
247
|
+
metrics: TableMetrics;
|
|
248
|
+
isChecked: boolean;
|
|
249
|
+
isIndeterminate: boolean;
|
|
250
|
+
isDisabled: boolean;
|
|
251
|
+
onToggle: () => void;
|
|
252
|
+
}): import("react").JSX.Element;
|