@galaxy-io/dls 1.6.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -50
- package/biome/index.json +74 -0
- package/biome/plugins/no-hex-literal.grit +20 -0
- package/biome/plugins/no-inline-style.grit +13 -0
- package/biome/plugins/no-margin.grit +9 -0
- package/biome/plugins/warn/no-hex-literal.grit +23 -0
- package/biome/plugins/warn/no-inline-style.grit +13 -0
- package/biome/plugins/warn/no-margin.grit +9 -0
- package/dist/a11y/FocusScope.d.ts +44 -0
- package/dist/a11y/FocusScope.js +229 -0
- package/dist/a11y/VisuallyHidden.d.ts +21 -0
- package/dist/a11y/VisuallyHidden.js +30 -0
- package/dist/avatar/Avatar.d.ts +56 -14
- package/dist/avatar/Avatar.js +250 -96
- package/dist/avatar/AvatarGroup.d.ts +43 -0
- package/dist/avatar/AvatarGroup.js +153 -0
- package/dist/backgrounds/GridBackground.d.ts +48 -0
- package/dist/backgrounds/GridBackground.js +146 -0
- package/dist/beacons/Beacon.d.ts +86 -22
- package/dist/beacons/Beacon.js +170 -47
- package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
- package/dist/brand/GalaxyFilamentWordmark.js +39 -0
- package/dist/brand/GalaxyLogomark.d.ts +26 -0
- package/dist/brand/GalaxyLogomark.js +41 -0
- package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
- package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
- package/dist/brand/GalaxyWordmark.d.ts +30 -0
- package/dist/brand/GalaxyWordmark.js +63 -0
- package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
- package/dist/brand/brandMark.d.ts +26 -0
- package/dist/brand/brandMark.js +35 -0
- package/dist/buttons/Button.d.ts +148 -59
- package/dist/buttons/Button.js +437 -227
- package/dist/buttons/ButtonGroup.d.ts +38 -0
- package/dist/buttons/ButtonGroup.js +68 -0
- package/dist/buttons/CopyButton.d.ts +77 -0
- package/dist/buttons/CopyButton.js +65 -0
- package/dist/charts/AreaChart.d.ts +49 -0
- package/dist/charts/AreaChart.js +31 -0
- package/dist/charts/BarChart.d.ts +54 -67
- package/dist/charts/BarChart.js +136 -116
- package/dist/charts/ChartAxis.d.ts +35 -40
- package/dist/charts/ChartAxis.js +114 -90
- package/dist/charts/ChartCategoryTargets.d.ts +12 -26
- package/dist/charts/ChartCategoryTargets.js +32 -20
- package/dist/charts/ChartFrame.d.ts +69 -116
- package/dist/charts/ChartFrame.js +253 -119
- package/dist/charts/ChartGroupProvider.d.ts +30 -41
- package/dist/charts/ChartGroupProvider.js +20 -7
- package/dist/charts/ChartLegend.d.ts +27 -48
- package/dist/charts/ChartLegend.js +206 -125
- package/dist/charts/ChartMarkTargets.d.ts +12 -28
- package/dist/charts/ChartMarkTargets.js +33 -20
- package/dist/charts/ChartPrimitives.d.ts +50 -305
- package/dist/charts/ChartPrimitives.js +65 -413
- package/dist/charts/ChartTooltip.d.ts +20 -26
- package/dist/charts/ChartTooltip.js +77 -40
- package/dist/charts/Heatmap.d.ts +35 -0
- package/dist/charts/Heatmap.js +295 -0
- package/dist/charts/LineChart.d.ts +54 -47
- package/dist/charts/LineChart.js +159 -117
- package/dist/charts/PieChart.d.ts +32 -53
- package/dist/charts/PieChart.js +149 -135
- package/dist/charts/Sparkline.d.ts +107 -0
- package/dist/charts/Sparkline.js +244 -0
- package/dist/charts/StatChart.d.ts +37 -13
- package/dist/charts/StatChart.js +82 -35
- package/dist/charts/barChartGeometry.d.ts +138 -86
- package/dist/charts/barChartGeometry.js +122 -101
- package/dist/charts/barChartLegend.d.ts +14 -18
- package/dist/charts/barChartLegend.js +18 -13
- package/dist/charts/chartFormat.d.ts +12 -18
- package/dist/charts/chartFormat.js +20 -52
- package/dist/charts/chartPalette.d.ts +33 -0
- package/dist/charts/chartPalette.js +68 -0
- package/dist/charts/chartScales.d.ts +41 -108
- package/dist/charts/chartScales.js +62 -128
- package/dist/charts/constants.d.ts +96 -256
- package/dist/charts/constants.js +105 -275
- package/dist/charts/heatmapGeometry.d.ts +95 -0
- package/dist/charts/heatmapGeometry.js +155 -0
- package/dist/charts/lineChartGeometry.d.ts +108 -58
- package/dist/charts/lineChartGeometry.js +120 -78
- package/dist/charts/pieChartGeometry.d.ts +66 -40
- package/dist/charts/pieChartGeometry.js +68 -38
- package/dist/charts/types.d.ts +197 -466
- package/dist/charts/types.js +55 -144
- package/dist/charts/useCartesianChartLayout.d.ts +28 -59
- package/dist/charts/useCartesianChartLayout.js +47 -32
- package/dist/charts/useChartDimensions.d.ts +19 -40
- package/dist/charts/useChartDimensions.js +40 -56
- package/dist/charts/useChartFormatters.d.ts +6 -15
- package/dist/charts/useChartFormatters.js +4 -9
- package/dist/charts/useChartInteraction.d.ts +47 -116
- package/dist/charts/useChartInteraction.js +95 -71
- package/dist/charts/useChartTooltipPosition.d.ts +29 -39
- package/dist/charts/useChartTooltipPosition.js +14 -5
- package/dist/charts/useSeriesColorResolver.d.ts +11 -33
- package/dist/charts/useSeriesColorResolver.js +19 -12
- package/dist/chips/Chip.d.ts +155 -44
- package/dist/chips/Chip.js +329 -155
- package/dist/chips/ChipGroup.d.ts +53 -0
- package/dist/chips/ChipGroup.js +98 -0
- package/dist/drawer/Drawer.d.ts +81 -17
- package/dist/drawer/Drawer.js +370 -65
- package/dist/dropdown/Dropdown.d.ts +80 -63
- package/dist/dropdown/Dropdown.js +127 -129
- package/dist/editor/CodeEditor.d.ts +119 -40
- package/dist/editor/CodeEditor.js +490 -400
- package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
- package/dist/editor/CodeEditorReactWidget.js +28 -21
- package/dist/feedback/Alert.d.ts +49 -0
- package/dist/feedback/Alert.js +172 -0
- package/dist/feedback/EmptyState.d.ts +39 -0
- package/dist/feedback/EmptyState.js +109 -0
- package/dist/feedback/ProgressBar.d.ts +125 -0
- package/dist/feedback/ProgressBar.js +183 -0
- package/dist/feedback/ProgressCircle.d.ts +99 -0
- package/dist/feedback/ProgressCircle.js +187 -0
- package/dist/feedback/Skeleton.d.ts +69 -0
- package/dist/feedback/Skeleton.js +130 -0
- package/dist/feedback/Spinner.d.ts +63 -0
- package/dist/feedback/Spinner.js +141 -0
- package/dist/fonts.css +70 -0
- package/dist/hooks/internal/useIsClient.d.ts +2 -0
- package/dist/hooks/internal/useIsClient.js +14 -0
- package/dist/hooks/useClipboard.d.ts +19 -0
- package/dist/hooks/useClipboard.js +45 -0
- package/dist/hooks/useControlledOpenState.d.ts +21 -0
- package/dist/hooks/useControlledOpenState.js +19 -0
- package/dist/hooks/useControlledState.d.ts +19 -0
- package/dist/hooks/useControlledState.js +22 -0
- package/dist/hooks/useDebouncedValue.d.ts +14 -0
- package/dist/hooks/useDebouncedValue.js +33 -0
- package/dist/hooks/useDisclosure.d.ts +26 -0
- package/dist/hooks/useDisclosure.js +36 -0
- package/dist/hooks/useDismiss.d.ts +23 -27
- package/dist/hooks/useDismiss.js +39 -27
- package/dist/hooks/useElementClientSize.d.ts +10 -10
- package/dist/hooks/useElementClientSize.js +8 -11
- package/dist/hooks/useElementWidth.d.ts +6 -13
- package/dist/hooks/useElementWidth.js +6 -14
- package/dist/hooks/useField.d.ts +47 -0
- package/dist/hooks/useField.js +40 -0
- package/dist/hooks/useHotkey.d.ts +77 -0
- package/dist/hooks/useHotkey.js +246 -0
- package/dist/hooks/useIsMac.d.ts +12 -0
- package/dist/hooks/useIsMac.js +27 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
- package/dist/hooks/useLocalStorage.d.ts +28 -0
- package/dist/hooks/useLocalStorage.js +145 -0
- package/dist/hooks/useMediaQuery.d.ts +11 -0
- package/dist/hooks/useMediaQuery.js +23 -0
- package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
- package/dist/hooks/usePrefersReducedMotion.js +25 -0
- package/dist/hooks/useResize.d.ts +42 -62
- package/dist/hooks/useResize.js +43 -31
- package/dist/icons/Icon.d.ts +64 -37
- package/dist/icons/Icon.js +96 -37
- package/dist/icons/internal/IconSlot.d.ts +10 -0
- package/dist/icons/internal/IconSlot.js +32 -0
- package/dist/inputs/CheckboxGroup.d.ts +115 -0
- package/dist/inputs/CheckboxGroup.js +183 -0
- package/dist/inputs/CheckboxInput.d.ts +98 -28
- package/dist/inputs/CheckboxInput.js +218 -88
- package/dist/inputs/ColorInput.d.ts +115 -29
- package/dist/inputs/ColorInput.js +748 -326
- package/dist/inputs/CopyInput.d.ts +49 -20
- package/dist/inputs/CopyInput.js +57 -49
- package/dist/inputs/CronInput.d.ts +94 -0
- package/dist/inputs/CronInput.js +618 -0
- package/dist/inputs/DateInput.d.ts +175 -28
- package/dist/inputs/DateInput.js +1109 -451
- package/dist/inputs/DurationInput.d.ts +101 -0
- package/dist/inputs/DurationInput.js +441 -0
- package/dist/inputs/Field.d.ts +75 -0
- package/dist/inputs/Field.js +247 -0
- package/dist/inputs/Fieldset.d.ts +53 -0
- package/dist/inputs/Fieldset.js +149 -0
- package/dist/inputs/FileInput.d.ts +110 -0
- package/dist/inputs/FileInput.js +476 -0
- package/dist/inputs/Input.d.ts +148 -187
- package/dist/inputs/Input.js +339 -259
- package/dist/inputs/KeyValueInput.d.ts +120 -0
- package/dist/inputs/KeyValueInput.js +383 -0
- package/dist/inputs/MultiSelectInput.d.ts +165 -54
- package/dist/inputs/MultiSelectInput.js +175 -559
- package/dist/inputs/NumberInput.d.ts +65 -9
- package/dist/inputs/NumberInput.js +197 -40
- package/dist/inputs/PasswordInput.d.ts +17 -12
- package/dist/inputs/PasswordInput.js +33 -33
- package/dist/inputs/PinInput.d.ts +117 -0
- package/dist/inputs/PinInput.js +364 -0
- package/dist/inputs/RadioGroup.d.ts +115 -0
- package/dist/inputs/RadioGroup.js +179 -0
- package/dist/inputs/RadioInput.d.ts +87 -24
- package/dist/inputs/RadioInput.js +182 -95
- package/dist/inputs/SearchInput.d.ts +66 -0
- package/dist/inputs/SearchInput.js +156 -0
- package/dist/inputs/SelectInput.d.ts +195 -55
- package/dist/inputs/SelectInput.js +1308 -446
- package/dist/inputs/SliderInput.d.ts +150 -30
- package/dist/inputs/SliderInput.js +441 -186
- package/dist/inputs/SwitchInput.d.ts +109 -0
- package/dist/inputs/SwitchInput.js +248 -0
- package/dist/inputs/TagInput.d.ts +117 -0
- package/dist/inputs/TagInput.js +408 -0
- package/dist/inputs/TextAreaInput.d.ts +146 -44
- package/dist/inputs/TextAreaInput.js +292 -198
- package/dist/inputs/TextInput.d.ts +4 -13
- package/dist/inputs/TextInput.js +13 -48
- package/dist/inputs/ToggleInput.d.ts +120 -22
- package/dist/inputs/ToggleInput.js +262 -116
- package/dist/inputs/internal/bareField.d.ts +18 -0
- package/dist/inputs/internal/bareField.js +38 -0
- package/dist/inputs/internal/devWarn.d.ts +7 -0
- package/dist/inputs/internal/devWarn.js +30 -0
- package/dist/inputs/internal/fieldFrame.d.ts +34 -0
- package/dist/inputs/internal/fieldFrame.js +64 -0
- package/dist/inputs/internal/fieldWiring.d.ts +50 -0
- package/dist/inputs/internal/fieldWiring.js +38 -0
- package/dist/inputs/internal/innerButton.d.ts +2 -0
- package/dist/inputs/internal/innerButton.js +24 -0
- package/dist/inputs/internal/ownField.d.ts +45 -0
- package/dist/inputs/internal/ownField.js +58 -0
- package/dist/inputs/internal/predicates.d.ts +9 -0
- package/dist/inputs/internal/predicates.js +11 -0
- package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
- package/dist/inputs/internal/useComboboxPopover.js +92 -0
- package/dist/json/JsonViewer.d.ts +62 -0
- package/dist/json/JsonViewer.js +483 -0
- package/dist/layout/Box.d.ts +87 -0
- package/dist/layout/Box.js +109 -0
- package/dist/layout/Divider.d.ts +25 -0
- package/dist/layout/Divider.js +70 -0
- package/dist/layout/Flex.d.ts +139 -0
- package/dist/layout/Flex.js +165 -0
- package/dist/layout/FlexItem.d.ts +72 -0
- package/dist/layout/FlexItem.js +84 -0
- package/dist/layout/Grid.d.ts +140 -0
- package/dist/layout/Grid.js +178 -0
- package/dist/layout/Portal.d.ts +29 -0
- package/dist/layout/Portal.js +27 -0
- package/dist/layout/ResizablePanels.d.ts +88 -0
- package/dist/layout/ResizablePanels.js +198 -0
- package/dist/layout/ResizeHandle.d.ts +48 -0
- package/dist/layout/ResizeHandle.js +143 -0
- package/dist/layout/ScrollArea.d.ts +30 -0
- package/dist/layout/ScrollArea.js +138 -0
- package/dist/links/Link.d.ts +101 -1
- package/dist/links/Link.js +166 -4
- package/dist/lists/BulletedList.d.ts +25 -7
- package/dist/lists/BulletedList.js +72 -27
- package/dist/lists/DescriptionList.d.ts +91 -0
- package/dist/lists/DescriptionList.js +147 -0
- package/dist/menu/ContextMenu.d.ts +64 -0
- package/dist/menu/ContextMenu.js +34 -0
- package/dist/menu/Menu.d.ts +280 -0
- package/dist/menu/Menu.js +1003 -0
- package/dist/modal/ConfirmDialog.d.ts +55 -0
- package/dist/modal/ConfirmDialog.js +151 -0
- package/dist/modal/Modal.d.ts +64 -14
- package/dist/modal/Modal.js +189 -48
- package/dist/navigation/Breadcrumbs.d.ts +65 -0
- package/dist/navigation/Breadcrumbs.js +243 -0
- package/dist/navigation/CommandPalette.d.ts +83 -0
- package/dist/navigation/CommandPalette.js +509 -0
- package/dist/navigation/Pagination.d.ts +87 -0
- package/dist/navigation/Pagination.js +300 -0
- package/dist/navigation/SidebarNav.d.ts +107 -0
- package/dist/navigation/SidebarNav.js +341 -0
- package/dist/navigation/Stepper.d.ts +52 -0
- package/dist/navigation/Stepper.js +207 -0
- package/dist/navigation/Tabs.d.ts +113 -0
- package/dist/navigation/Tabs.js +543 -0
- package/dist/navigation/Topbar.d.ts +20 -0
- package/dist/navigation/Topbar.js +62 -0
- package/dist/overlay/OverlayProvider.d.ts +28 -32
- package/dist/overlay/OverlayProvider.js +42 -93
- package/dist/overlay/useOverlay.d.ts +88 -12
- package/dist/overlay/useOverlay.js +220 -43
- package/dist/overlays/Popover.d.ts +114 -0
- package/dist/overlays/Popover.js +389 -0
- package/dist/shapes/Circle.d.ts +84 -8
- package/dist/shapes/Circle.js +122 -20
- package/dist/shapes/Square.d.ts +84 -8
- package/dist/shapes/Square.js +123 -20
- package/dist/styles/mixins.d.ts +35 -0
- package/dist/styles/mixins.js +60 -0
- package/dist/styles.css +1 -202
- package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
- package/dist/table/InfiniteSpreadsheet.js +762 -225
- package/dist/table/InfiniteTable.d.ts +116 -14
- package/dist/table/InfiniteTable.js +287 -429
- package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
- package/dist/table/SpreadsheetCellEditor.js +163 -84
- package/dist/table/TableCore.d.ts +252 -0
- package/dist/table/TableCore.js +1077 -0
- package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
- package/dist/table/VirtualizedInfiniteTable.js +280 -219
- package/dist/table/types.d.ts +66 -244
- package/dist/table/types.js +0 -51
- package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
- package/dist/table/useInfiniteScrollSentinel.js +38 -30
- package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
- package/dist/table/useSpreadsheetCellNavigation.js +141 -0
- package/dist/table/useTableColumnLayout.d.ts +90 -25
- package/dist/table/useTableColumnLayout.js +255 -50
- package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
- package/dist/table/useTableKeyboardNavigation.js +95 -71
- package/dist/table/useTableRowSelection.d.ts +24 -25
- package/dist/table/useTableRowSelection.js +57 -84
- package/dist/table/useTableVirtualizer.d.ts +20 -0
- package/dist/table/useTableVirtualizer.js +48 -0
- package/dist/text/Bold.d.ts +5 -6
- package/dist/text/Bold.js +16 -15
- package/dist/text/Code.d.ts +5 -6
- package/dist/text/Code.js +16 -25
- package/dist/text/CodeBlock.d.ts +77 -0
- package/dist/text/CodeBlock.js +373 -0
- package/dist/text/EditableText.d.ts +55 -15
- package/dist/text/EditableText.js +153 -135
- package/dist/text/Ellipsis.d.ts +34 -8
- package/dist/text/Ellipsis.js +55 -23
- package/dist/text/Kbd.d.ts +72 -0
- package/dist/text/Kbd.js +284 -0
- package/dist/text/MarkdownText.d.ts +27 -10
- package/dist/text/MarkdownText.js +317 -300
- package/dist/text/RequiredMarker.d.ts +17 -5
- package/dist/text/RequiredMarker.js +34 -36
- package/dist/text/Selectable.d.ts +5 -6
- package/dist/text/Selectable.js +16 -13
- package/dist/text/Span.d.ts +82 -0
- package/dist/text/Span.js +115 -0
- package/dist/text/Text.d.ts +128 -41
- package/dist/text/Text.js +209 -76
- package/dist/theme/GalaxyProvider.d.ts +75 -0
- package/dist/theme/GalaxyProvider.js +223 -0
- package/dist/theme/ThemeSwitcher.d.ts +52 -0
- package/dist/theme/ThemeSwitcher.js +94 -0
- package/dist/theme/enums.d.ts +118 -0
- package/dist/theme/enums.js +144 -0
- package/dist/theme/tokens/dark.d.ts +2 -0
- package/dist/theme/tokens/dark.js +275 -0
- package/dist/theme/tokens/generate.d.ts +15 -0
- package/dist/theme/tokens/generate.js +47 -0
- package/dist/theme/tokens/light.d.ts +2 -0
- package/dist/theme/tokens/light.js +274 -0
- package/dist/theme/tokens/palette.d.ts +14 -0
- package/dist/theme/tokens/palette.js +153 -0
- package/dist/theme/tokens/scales.d.ts +26 -0
- package/dist/theme/tokens/scales.js +154 -0
- package/dist/theme/tokens/t.d.ts +3 -0
- package/dist/theme/tokens/t.js +25 -0
- package/dist/theme/tokens/types.d.ts +189 -0
- package/dist/theme/tokens/types.js +0 -0
- package/dist/theme/useGalaxyTheme.d.ts +46 -0
- package/dist/theme/useGalaxyTheme.js +36 -0
- package/dist/theme/useInverseScope.d.ts +18 -0
- package/dist/theme/useInverseScope.js +33 -0
- package/dist/three/GalaxyLogomark3D.d.ts +46 -0
- package/dist/three/GalaxyLogomark3D.js +134 -0
- package/dist/three/assets/galaxy-logomark.js +4 -0
- package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
- package/dist/three/galaxyLogomark3DScene.js +165 -0
- package/dist/timeline/Timeline.d.ts +99 -0
- package/dist/timeline/Timeline.js +269 -0
- package/dist/toast/Toast.d.ts +43 -19
- package/dist/toast/Toast.js +130 -89
- package/dist/toast/ToastProvider.d.ts +23 -23
- package/dist/toast/ToastProvider.js +298 -101
- package/dist/toast/ToastViewport.d.ts +12 -0
- package/dist/toast/ToastViewport.js +210 -0
- package/dist/toast/useToast.d.ts +139 -5
- package/dist/toast/useToast.js +15 -13
- package/dist/tokens.css +654 -0
- package/dist/tooltip/Tooltip.d.ts +64 -44
- package/dist/tooltip/Tooltip.js +280 -73
- package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
- package/dist/tooltip/internal/LazyTooltip.js +53 -0
- package/dist/transform/Fade.d.ts +33 -11
- package/dist/transform/Fade.js +71 -19
- package/dist/transform/Flasher.d.ts +25 -0
- package/dist/transform/Flasher.js +39 -0
- package/dist/transform/Rotate.d.ts +24 -12
- package/dist/transform/Rotate.js +36 -22
- package/dist/transform/ScaleFade.d.ts +36 -11
- package/dist/transform/ScaleFade.js +86 -28
- package/dist/transform/internal/CollapseMotion.d.ts +10 -0
- package/dist/transform/internal/CollapseMotion.js +65 -0
- package/dist/tree/Tree.d.ts +85 -0
- package/dist/tree/Tree.js +387 -0
- package/dist/tree/treeRow.d.ts +39 -0
- package/dist/tree/treeRow.js +75 -0
- package/dist/utils/colors.d.ts +46 -13
- package/dist/utils/colors.js +92 -34
- package/dist/utils/css.d.ts +23 -0
- package/dist/utils/css.js +30 -0
- package/dist/utils/format.d.ts +58 -0
- package/dist/utils/format.js +220 -0
- package/dist/vite/index.d.ts +16 -0
- package/dist/vite/index.js +52 -0
- package/dist/widget/Widget.d.ts +164 -48
- package/dist/widget/Widget.js +335 -96
- package/dist/widget/WidgetGroup.d.ts +36 -0
- package/dist/widget/WidgetGroup.js +103 -0
- package/package.json +851 -157
- package/dist/accordion/Accordion.d.ts +0 -54
- package/dist/accordion/Accordion.js +0 -183
- package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
- package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
- package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
- package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
- package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
- package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
- package/dist/assets/models/galaxy-animation.js +0 -136666
- package/dist/assets/models/galaxy-logomark.js +0 -4
- package/dist/avatar/AvatarShimmer.d.ts +0 -30
- package/dist/avatar/AvatarShimmer.js +0 -22
- package/dist/backgrounds/CellGridBackground.d.ts +0 -24
- package/dist/backgrounds/CellGridBackground.js +0 -44
- package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
- package/dist/backgrounds/CrossGridBackground.js +0 -49
- package/dist/backgrounds/DotGridBackground.d.ts +0 -24
- package/dist/backgrounds/DotGridBackground.js +0 -47
- package/dist/badge/Badge.d.ts +0 -42
- package/dist/badge/Badge.js +0 -99
- package/dist/charts/ChartEmptyState.d.ts +0 -17
- package/dist/charts/ChartEmptyState.js +0 -29
- package/dist/charts/ProgressBar.d.ts +0 -29
- package/dist/charts/ProgressBar.js +0 -65
- package/dist/charts/chartTheme.d.ts +0 -18
- package/dist/charts/chartTheme.js +0 -26
- package/dist/containers/FlexItem.d.ts +0 -50
- package/dist/containers/FlexItem.js +0 -91
- package/dist/containers/FlexWrapper.d.ts +0 -96
- package/dist/containers/FlexWrapper.js +0 -143
- package/dist/containers/GridWrapper.d.ts +0 -79
- package/dist/containers/GridWrapper.js +0 -125
- package/dist/containers/Spacing.d.ts +0 -23
- package/dist/containers/Spacing.js +0 -59
- package/dist/containers/Wrapper.d.ts +0 -26
- package/dist/containers/Wrapper.js +0 -54
- package/dist/dividers/HorizontalDivider.d.ts +0 -7
- package/dist/dividers/HorizontalDivider.js +0 -39
- package/dist/dividers/VerticalDivider.d.ts +0 -6
- package/dist/dividers/VerticalDivider.js +0 -21
- package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
- package/dist/icons/GalaxyFilamentWordmark.js +0 -25
- package/dist/icons/GalaxyLogomark.d.ts +0 -13
- package/dist/icons/GalaxyLogomark.js +0 -27
- package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
- package/dist/icons/GalaxyLogomark3D.js +0 -319
- package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
- package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
- package/dist/icons/GalaxyWordmark.d.ts +0 -11
- package/dist/icons/GalaxyWordmark.js +0 -25
- package/dist/inputs/MultiTextInput.d.ts +0 -32
- package/dist/inputs/MultiTextInput.js +0 -180
- package/dist/inputs/SwitcherInput.d.ts +0 -27
- package/dist/inputs/SwitcherInput.js +0 -64
- package/dist/inputs/hooks.d.ts +0 -10
- package/dist/inputs/hooks.js +0 -22
- package/dist/overlay/constants.d.ts +0 -28
- package/dist/overlay/constants.js +0 -37
- package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
- package/dist/resizable/HorizontalResizeHandle.js +0 -38
- package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
- package/dist/resizable/VerticalResizeHandle.js +0 -39
- package/dist/table/SpreadsheetCell.d.ts +0 -21
- package/dist/table/SpreadsheetCell.js +0 -71
- package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
- package/dist/table/SpreadsheetHeaderCell.js +0 -91
- package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
- package/dist/table/SpreadsheetMenuItem.js +0 -33
- package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
- package/dist/table/SpreadsheetPrimitives.js +0 -105
- package/dist/table/SpreadsheetRow.d.ts +0 -33
- package/dist/table/SpreadsheetRow.js +0 -73
- package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
- package/dist/table/SpreadsheetRowActionCell.js +0 -51
- package/dist/table/TableExpandCell.d.ts +0 -11
- package/dist/table/TableExpandCell.js +0 -24
- package/dist/table/TableExpandedRow.d.ts +0 -16
- package/dist/table/TableExpandedRow.js +0 -77
- package/dist/table/TableHeaderCellContent.d.ts +0 -30
- package/dist/table/TableHeaderCellContent.js +0 -48
- package/dist/table/TablePrimitives.d.ts +0 -313
- package/dist/table/TablePrimitives.js +0 -302
- package/dist/table/TableSelectCell.d.ts +0 -18
- package/dist/table/TableSelectCell.js +0 -27
- package/dist/table/TableStatusRow.d.ts +0 -18
- package/dist/table/TableStatusRow.js +0 -50
- package/dist/table/useSpreadsheetEditing.d.ts +0 -13
- package/dist/table/useSpreadsheetEditing.js +0 -41
- package/dist/table/useTableColumnResize.d.ts +0 -38
- package/dist/table/useTableColumnResize.js +0 -155
- package/dist/table/useTableRowExpansion.d.ts +0 -24
- package/dist/table/useTableRowExpansion.js +0 -62
- package/dist/table/utils.d.ts +0 -50
- package/dist/table/utils.js +0 -78
- package/dist/text/HotKeys.d.ts +0 -30
- package/dist/text/HotKeys.js +0 -74
- package/dist/text/Paragraph.d.ts +0 -33
- package/dist/text/Paragraph.js +0 -83
- package/dist/text/TextShimmer.d.ts +0 -14
- package/dist/text/TextShimmer.js +0 -34
- package/dist/theme/GalaxyTheme.d.ts +0 -67
- package/dist/theme/GalaxyTheme.js +0 -119
- package/dist/theme/constants.d.ts +0 -8
- package/dist/theme/constants.js +0 -38
- package/dist/theme/index.d.ts +0 -6
- package/dist/theme/index.js +0 -7
- package/dist/theme/types.d.ts +0 -195
- package/dist/theme/types.js +0 -10
- package/dist/theme/typography.d.ts +0 -2
- package/dist/theme/typography.js +0 -73
- package/dist/theme/variants/dark.d.ts +0 -2
- package/dist/theme/variants/dark.js +0 -125
- package/dist/theme/variants/light.d.ts +0 -2
- package/dist/theme/variants/light.js +0 -125
- package/dist/toast/ToastContainer.d.ts +0 -10
- package/dist/toast/ToastContainer.js +0 -31
- package/dist/toast/ToastWrapper.d.ts +0 -6
- package/dist/toast/ToastWrapper.js +0 -27
- package/dist/transform/Flash.d.ts +0 -7
- package/dist/transform/Flash.js +0 -18
- package/dist/transform/Spin.d.ts +0 -14
- package/dist/transform/Spin.js +0 -25
- package/dist/utils/linaria.d.ts +0 -1
- package/dist/utils/linaria.js +0 -8
package/dist/table/types.d.ts
CHANGED
|
@@ -1,251 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column and state types shared by `InfiniteTable`, `VirtualizedInfiniteTable` and
|
|
3
|
+
* `InfiniteSpreadsheet` (`@galaxy-io/dls/table/types`). Types only: importing this module costs
|
|
4
|
+
* nothing at runtime and pulls in no optional peer. A column array written for one table works
|
|
5
|
+
* unchanged in the others.
|
|
6
|
+
*/
|
|
1
7
|
import type { ReactNode } from "react";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
export declare enum ColumnAlign {
|
|
20
|
-
LEFT = "LEFT",
|
|
21
|
-
CENTER = "CENTER",
|
|
22
|
-
RIGHT = "RIGHT"
|
|
23
|
-
}
|
|
24
|
-
export declare enum ColumnResizeMode {
|
|
25
|
-
/** Column width follows the pointer while dragging. */
|
|
26
|
-
ON_CHANGE = "ON_CHANGE",
|
|
27
|
-
/** Column width commits once the drag ends. */
|
|
28
|
-
ON_END = "ON_END"
|
|
8
|
+
import type { TextProps } from "../text/Text.js";
|
|
9
|
+
import type { Side } from "../theme/enums.js";
|
|
10
|
+
/** Side a column sticks to while the table scrolls sideways. */
|
|
11
|
+
export type TableColumnPin = Side.LEFT | Side.RIGHT;
|
|
12
|
+
/** Horizontal alignment of a column's header and cells (the `Text` `align` values). */
|
|
13
|
+
export type TableColumnAlign = NonNullable<TextProps["align"]>;
|
|
14
|
+
/** What a column's `cell` renderer receives. */
|
|
15
|
+
export interface TableCellContext<TData, TValue = unknown> {
|
|
16
|
+
/** The column's `accessor` result for this row (`undefined` without an accessor). */
|
|
17
|
+
value: TValue;
|
|
18
|
+
/** The row's data object. */
|
|
19
|
+
row: TData;
|
|
20
|
+
/** Position of the row in the table body, from 0. */
|
|
21
|
+
rowIndex: number;
|
|
22
|
+
/** The row's id (`getRowId`). */
|
|
23
|
+
rowId: string;
|
|
29
24
|
}
|
|
30
|
-
|
|
25
|
+
/** One column of a table. */
|
|
26
|
+
export interface TableColumn<TData, TValue = unknown> {
|
|
27
|
+
/** Stable identity; used by sorting, `columnLayout` and React keys. */
|
|
31
28
|
id: string;
|
|
32
|
-
|
|
33
|
-
header
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
cell
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
pin?: ColumnPin;
|
|
44
|
-
enableSorting?: boolean;
|
|
45
|
-
sortDescFirst?: boolean;
|
|
46
|
-
enableResizing?: boolean;
|
|
47
|
-
align?: ColumnAlign;
|
|
48
|
-
cellLoading?: () => ReactNode;
|
|
49
|
-
headerAriaLabel?: string;
|
|
50
|
-
}
|
|
51
|
-
export interface EstimateColumnWidthOptions {
|
|
29
|
+
/** Column name, shown in the header and used by the Columns menu, the resize handle and screen readers. */
|
|
30
|
+
header: string;
|
|
31
|
+
/** Reads the cell value from a row. Sorting compares these values. */
|
|
32
|
+
accessor?(row: TData): TValue;
|
|
33
|
+
/** Renders the cell. Without it the value renders as one line of text. Must stay cheap; it runs for every visible row. */
|
|
34
|
+
cell?(context: TableCellContext<TData, TValue>): ReactNode;
|
|
35
|
+
/** Content of this column's cell in the sticky footer row (a total). A string renders as medium-weight text. */
|
|
36
|
+
footer?: ReactNode;
|
|
37
|
+
/** Width in pixels. Without it the column shares the leftover space. */
|
|
38
|
+
width?: number;
|
|
39
|
+
/** Smallest width in pixels, when resizing or sharing space. @default 60 */
|
|
52
40
|
minWidth?: number;
|
|
41
|
+
/** Largest width in pixels when resizing. @default 800 */
|
|
53
42
|
maxWidth?: number;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
density?: TableDensity;
|
|
73
|
-
variant?: TableVariant;
|
|
74
|
-
hasNextPage?: boolean;
|
|
75
|
-
isFetchingNextPage?: boolean;
|
|
76
|
-
fetchNextPage?: () => void;
|
|
77
|
-
isLoading?: boolean;
|
|
78
|
-
isError?: boolean;
|
|
79
|
-
error?: Error;
|
|
80
|
-
loadingRowCount?: number;
|
|
81
|
-
contentWhenEmpty?: ReactNode;
|
|
82
|
-
contentWhenError?: ReactNode | ((error?: Error) => ReactNode);
|
|
83
|
-
noHeader?: boolean;
|
|
84
|
-
noLastRowBorder?: boolean;
|
|
85
|
-
noLastRowPadding?: boolean;
|
|
86
|
-
enableColumnResizing?: boolean;
|
|
87
|
-
columnSizing?: ColumnSizingState;
|
|
88
|
-
defaultColumnSizing?: ColumnSizingState;
|
|
89
|
-
onColumnSizingChange?: (columnSizing: ColumnSizingState) => void;
|
|
90
|
-
columnResizeMode?: ColumnResizeMode;
|
|
91
|
-
ariaLabel?: string;
|
|
92
|
-
ariaLabelledBy?: string;
|
|
93
|
-
}
|
|
94
|
-
export interface InfiniteTableProps<TData> extends BaseTableProps<TData> {
|
|
95
|
-
data: TData[];
|
|
96
|
-
enableRowSelection?: boolean | ((row: TanstackRow<TData>) => boolean);
|
|
97
|
-
enableMultiRowSelection?: boolean;
|
|
98
|
-
rowSelection?: TanstackRowSelectionState;
|
|
99
|
-
defaultRowSelection?: TanstackRowSelectionState;
|
|
100
|
-
onRowSelectionChange?: TanstackOnChangeFn<TanstackRowSelectionState>;
|
|
101
|
-
onSelectedRowsChange?: (rows: TanstackRow<TData>[]) => void;
|
|
102
|
-
/** Renders a leading checkbox column that can actually toggle selection. */
|
|
103
|
-
showSelectionColumn?: boolean;
|
|
104
|
-
selectionColumnPin?: ColumnPin;
|
|
105
|
-
enableSelectAll?: boolean;
|
|
106
|
-
/** Shift-click selects the range between the last click and this row. */
|
|
107
|
-
enableSelectionRange?: boolean;
|
|
108
|
-
selectAllAriaLabel?: string;
|
|
109
|
-
getRowSelectAriaLabel?: (row: TanstackRow<TData>) => string;
|
|
110
|
-
enableSorting?: boolean;
|
|
111
|
-
enableMultiSort?: boolean;
|
|
112
|
-
sorting?: TanstackSortingState;
|
|
113
|
-
onSortingChange?: TanstackOnChangeFn<TanstackSortingState>;
|
|
114
|
-
manualSorting?: boolean;
|
|
115
|
-
onRowExpand?: (row: TanstackRow<TData>) => ReactNode;
|
|
116
|
-
expandedRowIds?: string[];
|
|
117
|
-
defaultExpandedRowIds?: string[];
|
|
118
|
-
onExpandedChange?: (expandedRowIds: string[]) => void;
|
|
119
|
-
getRowCanExpand?: (row: TanstackRow<TData>) => boolean;
|
|
120
|
-
/** When false, expanding a row collapses whichever row was open. */
|
|
121
|
-
enableMultiRowExpansion?: boolean;
|
|
122
|
-
showExpandColumn?: boolean;
|
|
123
|
-
expandColumnPin?: ColumnPin;
|
|
124
|
-
onRowClick?: (row: TanstackRow<TData>, event: React.MouseEvent) => void;
|
|
125
|
-
onRowDoubleClick?: (row: TanstackRow<TData>, event: React.MouseEvent) => void;
|
|
126
|
-
/** Fired by click *and* by Enter/Space when a row has keyboard focus. */
|
|
127
|
-
onRowActivate?: (row: TanstackRow<TData>, event: React.MouseEvent | React.KeyboardEvent) => void;
|
|
128
|
-
getRowAriaLabel?: (row: TanstackRow<TData>) => string;
|
|
129
|
-
enableRowFocus?: boolean;
|
|
130
|
-
onTableReady?: (table: TanstackTable<TData>) => void;
|
|
131
|
-
}
|
|
132
|
-
export interface VirtualizedInfiniteTableProps<TData> extends BaseTableProps<TData> {
|
|
133
|
-
totalRowCount: number;
|
|
134
|
-
getRowData: (index: number) => TData | undefined;
|
|
135
|
-
estimateRowHeight?: number;
|
|
136
|
-
overscan?: number;
|
|
137
|
-
onRowClick?: (row: TanstackRow<TData>, event: React.MouseEvent) => void;
|
|
138
|
-
}
|
|
139
|
-
export type { TanstackRow as Row, TanstackTable as Table };
|
|
140
|
-
export declare enum CellEnrichmentStatus {
|
|
141
|
-
IDLE = "IDLE",
|
|
142
|
-
PENDING = "PENDING",
|
|
143
|
-
RUNNING = "RUNNING",
|
|
144
|
-
COMPLETE = "COMPLETE",
|
|
145
|
-
ERROR = "ERROR"
|
|
146
|
-
}
|
|
147
|
-
export declare enum SpreadsheetCellType {
|
|
148
|
-
TEXT = "TEXT",
|
|
149
|
-
NUMBER = "NUMBER",
|
|
150
|
-
BOOLEAN = "BOOLEAN",
|
|
151
|
-
ENUM = "ENUM",
|
|
152
|
-
DATE = "DATE",
|
|
153
|
-
READONLY = "READONLY"
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Row access handed to a column-level enrichment action.
|
|
157
|
-
*
|
|
158
|
-
* A spreadsheet is virtualized over an index, so there is no row array to pass.
|
|
159
|
-
* Actions that genuinely need every row call `getLoadedRows()`; actions that
|
|
160
|
-
* only need a count read `totalRowCount` without paying for a full scan.
|
|
161
|
-
*/
|
|
162
|
-
export interface SpreadsheetRowsContext<TData> {
|
|
163
|
-
totalRowCount: number;
|
|
164
|
-
getRowData: (index: number) => TData | undefined;
|
|
165
|
-
/**
|
|
166
|
-
* Materializes every currently-loaded row, skipping indices that have not
|
|
167
|
-
* been fetched. O(totalRowCount) — call once, never per row.
|
|
168
|
-
*/
|
|
169
|
-
getLoadedRows: () => TData[];
|
|
170
|
-
}
|
|
171
|
-
export interface SpreadsheetColumnAction<TData> {
|
|
172
|
-
id: string;
|
|
173
|
-
label: string;
|
|
174
|
-
icon?: ReactNode;
|
|
175
|
-
onAction: (columnId: string, rows: SpreadsheetRowsContext<TData>) => void;
|
|
176
|
-
}
|
|
177
|
-
export interface SpreadsheetHeaderAction {
|
|
178
|
-
id: string;
|
|
179
|
-
label: string;
|
|
180
|
-
icon?: ReactNode;
|
|
181
|
-
variant?: TextVariant;
|
|
182
|
-
onAction: (columnId: string) => void;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* A spreadsheet column.
|
|
186
|
-
*
|
|
187
|
-
* Extends `ColumnDef` so `id`, `accessorFn`, sizing, `pin`, `align`,
|
|
188
|
-
* `cellLoading`, `enableResizing` and `headerAriaLabel` have one definition
|
|
189
|
-
* across the domain — and so these columns feed `useTableColumnLayout` and
|
|
190
|
-
* `useTableColumnResize` without a cast.
|
|
191
|
-
*
|
|
192
|
-
* `header` is narrowed to a string and sorting is dropped: the spreadsheet
|
|
193
|
-
* header owns its own menu affordance, and there is no table instance to hand
|
|
194
|
-
* a header render function.
|
|
195
|
-
*/
|
|
196
|
-
export interface SpreadsheetColumnDef<TData, TValue = unknown> extends Omit<ColumnDef<TData, TValue>, "cell" | "header" | "enableSorting" | "sortDescFirst"> {
|
|
197
|
-
header?: string;
|
|
198
|
-
/**
|
|
199
|
-
* Custom cell renderer.
|
|
200
|
-
*
|
|
201
|
-
* `row` carries only `original` and `index` — a virtualized spreadsheet has
|
|
202
|
-
* no TanStack row model behind it, so row methods (`id`, `getIsSelected`,
|
|
203
|
-
* `subRows`, `getValue`) are absent at runtime despite being on the type.
|
|
204
|
-
*
|
|
205
|
-
* `isEditing` is optional on purpose: it keeps this signature assignable to
|
|
206
|
-
* `ColumnDef["cell"]`, which is what lets the shared layout and resize hooks
|
|
207
|
-
* consume these columns unchanged.
|
|
208
|
-
*/
|
|
209
|
-
cell?: (props: {
|
|
210
|
-
value: TValue;
|
|
211
|
-
row: TanstackRow<TData>;
|
|
212
|
-
isEditing?: boolean;
|
|
213
|
-
}) => ReactNode;
|
|
214
|
-
cellType: SpreadsheetCellType;
|
|
215
|
-
editable?: boolean;
|
|
216
|
-
enumOptions?: string[];
|
|
217
|
-
onCellChange?: (rowIndex: number, row: TData, value: TValue) => void;
|
|
218
|
-
headerActions?: SpreadsheetHeaderAction[];
|
|
219
|
-
enrichmentActions?: SpreadsheetColumnAction<TData>[];
|
|
220
|
-
getCellEnrichmentStatus?: (row: TData, rowIndex: number) => CellEnrichmentStatus;
|
|
221
|
-
}
|
|
222
|
-
export interface SpreadsheetRowAction<TData> {
|
|
223
|
-
id: string;
|
|
224
|
-
label: string;
|
|
225
|
-
icon?: ReactNode;
|
|
226
|
-
onAction: (rowIndex: number, row: TData) => void;
|
|
227
|
-
}
|
|
228
|
-
export interface EditingCell {
|
|
229
|
-
rowIndex: number;
|
|
43
|
+
/** Alignment of the header and cells. Use "right" for numbers. @default "left" */
|
|
44
|
+
align?: TableColumnAlign;
|
|
45
|
+
/** Keeps the column in view at the left or right edge while the table scrolls sideways. Give pinned columns a `width`. */
|
|
46
|
+
pin?: TableColumnPin;
|
|
47
|
+
/** This column's value names the row (a name or title). Its cells are row headers, and it labels the row's checkbox and actions. */
|
|
48
|
+
isRowHeader?: boolean;
|
|
49
|
+
/** The header sorts the table when pressed. @default false */
|
|
50
|
+
canSort?: boolean;
|
|
51
|
+
/** The column can be resized. @default the table's `canResizeColumns` */
|
|
52
|
+
canResize?: boolean;
|
|
53
|
+
/** The column can be hidden from the Columns menu. @default the table's `canCustomizeColumns` */
|
|
54
|
+
canHide?: boolean;
|
|
55
|
+
/** Menu rows (`MenuItem`, …) for a menu opened from a "…" button in this column's header. */
|
|
56
|
+
actions?: ReactNode;
|
|
57
|
+
}
|
|
58
|
+
/** The sorted column. */
|
|
59
|
+
export interface TableSort {
|
|
60
|
+
/** `id` of the sorted column. */
|
|
230
61
|
columnId: string;
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
*/
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
onAddColumn?: () => void;
|
|
243
|
-
addColumnAriaLabel?: string;
|
|
244
|
-
rowActions?: SpreadsheetRowAction<TData>[];
|
|
245
|
-
getRowActionsAriaLabel?: (rowIndex: number) => string;
|
|
246
|
-
/** Controlled when provided; uncontrolled otherwise. */
|
|
247
|
-
editingCell?: EditingCell | null;
|
|
248
|
-
onEditingCellChange?: (cell: EditingCell | null) => void;
|
|
249
|
-
/** Roving-tabindex row focus and arrow-key row navigation. Defaults to true. */
|
|
250
|
-
enableRowFocus?: boolean;
|
|
62
|
+
/** Sorted high to low (Z–A, newest first). */
|
|
63
|
+
isDescending: boolean;
|
|
64
|
+
}
|
|
65
|
+
/** The user's arrangement of the columns. Every field is optional; missing fields mean "as defined in `columns`". */
|
|
66
|
+
export interface TableColumnLayout {
|
|
67
|
+
/** Column ids in display order. Ids not listed follow in `columns` order; unknown ids are ignored. */
|
|
68
|
+
order?: string[];
|
|
69
|
+
/** Ids of hidden columns. */
|
|
70
|
+
hiddenIds?: string[];
|
|
71
|
+
/** Widths in pixels set by resizing, by column id. They win over `width`. */
|
|
72
|
+
widths?: Record<string, number>;
|
|
251
73
|
}
|
package/dist/table/types.js
CHANGED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
//#region src/table/types.ts
|
|
2
|
-
var TableVariant = /* @__PURE__ */ function(TableVariant) {
|
|
3
|
-
TableVariant["BASE"] = "BASE";
|
|
4
|
-
TableVariant["PRIMARY"] = "PRIMARY";
|
|
5
|
-
TableVariant["SECONDARY"] = "SECONDARY";
|
|
6
|
-
TableVariant["TERTIARY"] = "TERTIARY";
|
|
7
|
-
return TableVariant;
|
|
8
|
-
}({});
|
|
9
|
-
var TableDensity = /* @__PURE__ */ function(TableDensity) {
|
|
10
|
-
TableDensity["SMALL"] = "SMALL";
|
|
11
|
-
TableDensity["MEDIUM"] = "MEDIUM";
|
|
12
|
-
TableDensity["LARGE"] = "LARGE";
|
|
13
|
-
return TableDensity;
|
|
14
|
-
}({});
|
|
15
|
-
var ColumnPin = /* @__PURE__ */ function(ColumnPin) {
|
|
16
|
-
ColumnPin["LEFT"] = "LEFT";
|
|
17
|
-
ColumnPin["RIGHT"] = "RIGHT";
|
|
18
|
-
return ColumnPin;
|
|
19
|
-
}({});
|
|
20
|
-
var ColumnAlign = /* @__PURE__ */ function(ColumnAlign) {
|
|
21
|
-
ColumnAlign["LEFT"] = "LEFT";
|
|
22
|
-
ColumnAlign["CENTER"] = "CENTER";
|
|
23
|
-
ColumnAlign["RIGHT"] = "RIGHT";
|
|
24
|
-
return ColumnAlign;
|
|
25
|
-
}({});
|
|
26
|
-
var ColumnResizeMode = /* @__PURE__ */ function(ColumnResizeMode) {
|
|
27
|
-
/** Column width follows the pointer while dragging. */
|
|
28
|
-
ColumnResizeMode["ON_CHANGE"] = "ON_CHANGE";
|
|
29
|
-
/** Column width commits once the drag ends. */
|
|
30
|
-
ColumnResizeMode["ON_END"] = "ON_END";
|
|
31
|
-
return ColumnResizeMode;
|
|
32
|
-
}({});
|
|
33
|
-
var CellEnrichmentStatus = /* @__PURE__ */ function(CellEnrichmentStatus) {
|
|
34
|
-
CellEnrichmentStatus["IDLE"] = "IDLE";
|
|
35
|
-
CellEnrichmentStatus["PENDING"] = "PENDING";
|
|
36
|
-
CellEnrichmentStatus["RUNNING"] = "RUNNING";
|
|
37
|
-
CellEnrichmentStatus["COMPLETE"] = "COMPLETE";
|
|
38
|
-
CellEnrichmentStatus["ERROR"] = "ERROR";
|
|
39
|
-
return CellEnrichmentStatus;
|
|
40
|
-
}({});
|
|
41
|
-
var SpreadsheetCellType = /* @__PURE__ */ function(SpreadsheetCellType) {
|
|
42
|
-
SpreadsheetCellType["TEXT"] = "TEXT";
|
|
43
|
-
SpreadsheetCellType["NUMBER"] = "NUMBER";
|
|
44
|
-
SpreadsheetCellType["BOOLEAN"] = "BOOLEAN";
|
|
45
|
-
SpreadsheetCellType["ENUM"] = "ENUM";
|
|
46
|
-
SpreadsheetCellType["DATE"] = "DATE";
|
|
47
|
-
SpreadsheetCellType["READONLY"] = "READONLY";
|
|
48
|
-
return SpreadsheetCellType;
|
|
49
|
-
}({});
|
|
50
|
-
//#endregion
|
|
51
|
-
export { CellEnrichmentStatus, ColumnAlign, ColumnPin, ColumnResizeMode, SpreadsheetCellType, TableDensity, TableVariant };
|
|
@@ -1,24 +1,28 @@
|
|
|
1
|
-
interface UseInfiniteScrollSentinelOptions {
|
|
2
|
-
scrollRef: React.RefObject<HTMLElement | null>;
|
|
3
|
-
hasNextPage?: boolean;
|
|
4
|
-
isFetchingNextPage?: boolean;
|
|
5
|
-
fetchNextPage?: () => void;
|
|
6
|
-
/**
|
|
7
|
-
* Number of rows currently rendered. Changing it re-arms the observer, which
|
|
8
|
-
* is what makes a short first page keep paging until the viewport fills.
|
|
9
|
-
*/
|
|
10
|
-
rowCount: number;
|
|
11
|
-
}
|
|
12
1
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* A plain `scroll` listener can dead-end: if the first page is shorter than the
|
|
17
|
-
* viewport, no scroll event ever fires and paging never starts. Re-observing an
|
|
18
|
-
* already-intersecting sentinel re-fires the callback, so this keeps pumping
|
|
19
|
-
* until the content overflows or `hasNextPage` goes false.
|
|
2
|
+
* @internal Shared by the table components; apps use InfiniteTable, VirtualizedInfiniteTable or
|
|
3
|
+
* InfiniteSpreadsheet.
|
|
20
4
|
*
|
|
21
|
-
*
|
|
5
|
+
* The `onEndReached` sentinel: a 1px element after the table, observed with an
|
|
6
|
+
* `IntersectionObserver` whose bottom margin is `marginPx` (`TABLE_END_REACHED_MARGIN_PX`). The root is the
|
|
7
|
+
* scroll container when it overflows, otherwise the viewport, so a table in an unbounded parent
|
|
8
|
+
* pages on page scroll. Armed only while enabled (not loading, no error), re-armed when the row
|
|
9
|
+
* count changes, and calls `onEndReached` at most once per row count: an app with no next page
|
|
10
|
+
* adds no rows, so it is not called again. Without `IntersectionObserver` it falls back to a
|
|
11
|
+
* passive `scroll` listener. Nothing runs at module scope.
|
|
22
12
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
import { type RefObject } from "react";
|
|
14
|
+
/** @internal Options for `useInfiniteScrollSentinel`. */
|
|
15
|
+
export interface UseInfiniteScrollSentinelOptions {
|
|
16
|
+
/** The table's scroll container. */
|
|
17
|
+
scrollRef: RefObject<HTMLElement | null>;
|
|
18
|
+
/** Called when the end comes within reach; omitted, nothing is observed. */
|
|
19
|
+
onEndReached: (() => void) | undefined;
|
|
20
|
+
/** False while loading or in error: paging pauses. */
|
|
21
|
+
isEnabled: boolean;
|
|
22
|
+
/** Loaded rows; a change re-arms the observer. */
|
|
23
|
+
rowCount: number;
|
|
24
|
+
/** How far below the visible area the end counts as reached, in pixels. */
|
|
25
|
+
marginPx: number;
|
|
26
|
+
}
|
|
27
|
+
/** @internal Observes the sentinel and calls `onEndReached`; returns the sentinel's ref. */
|
|
28
|
+
export declare function useInfiniteScrollSentinel({ scrollRef, onEndReached, isEnabled, rowCount, marginPx, }: UseInfiniteScrollSentinelOptions): RefObject<HTMLDivElement | null>;
|
|
@@ -1,51 +1,59 @@
|
|
|
1
|
-
import "./utils.js";
|
|
2
1
|
import { useEffect, useRef } from "react";
|
|
3
2
|
//#region src/table/useInfiniteScrollSentinel.ts
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* @internal Shared by the table components; apps use InfiniteTable, VirtualizedInfiniteTable or
|
|
5
|
+
* InfiniteSpreadsheet.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
7
|
+
* The `onEndReached` sentinel: a 1px element after the table, observed with an
|
|
8
|
+
* `IntersectionObserver` whose bottom margin is `marginPx` (`TABLE_END_REACHED_MARGIN_PX`). The root is the
|
|
9
|
+
* scroll container when it overflows, otherwise the viewport, so a table in an unbounded parent
|
|
10
|
+
* pages on page scroll. Armed only while enabled (not loading, no error), re-armed when the row
|
|
11
|
+
* count changes, and calls `onEndReached` at most once per row count: an app with no next page
|
|
12
|
+
* adds no rows, so it is not called again. Without `IntersectionObserver` it falls back to a
|
|
13
|
+
* passive `scroll` listener. Nothing runs at module scope.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
/** @internal Observes the sentinel and calls `onEndReached`; returns the sentinel's ref. */
|
|
16
|
+
function useInfiniteScrollSentinel({ scrollRef, onEndReached, isEnabled, rowCount, marginPx }) {
|
|
16
17
|
const sentinelRef = useRef(null);
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const canFetch = fetchNextPage !== void 0;
|
|
18
|
+
const onEndReachedRef = useRef(onEndReached);
|
|
19
|
+
onEndReachedRef.current = onEndReached;
|
|
20
|
+
const calledForCountRef = useRef(null);
|
|
21
|
+
const hasHandler = onEndReached !== void 0;
|
|
22
22
|
useEffect(() => {
|
|
23
|
-
const
|
|
23
|
+
const scroll = scrollRef.current;
|
|
24
24
|
const sentinel = sentinelRef.current;
|
|
25
|
-
if (!
|
|
25
|
+
if (!hasHandler || !isEnabled || scroll === null || sentinel === null) return;
|
|
26
|
+
if (calledForCountRef.current === rowCount) return;
|
|
27
|
+
const reach = () => {
|
|
28
|
+
if (calledForCountRef.current === rowCount) return;
|
|
29
|
+
calledForCountRef.current = rowCount;
|
|
30
|
+
onEndReachedRef.current?.();
|
|
31
|
+
};
|
|
32
|
+
const isScrollRoot = scroll.scrollHeight > scroll.clientHeight;
|
|
26
33
|
if (typeof IntersectionObserver === "undefined") {
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
const target = isScrollRoot ? scroll : window;
|
|
35
|
+
const check = () => {
|
|
36
|
+
const bottom = isScrollRoot ? scroll.getBoundingClientRect().bottom : window.innerHeight;
|
|
37
|
+
if (sentinel.getBoundingClientRect().top - bottom < marginPx) reach();
|
|
30
38
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return () =>
|
|
39
|
+
check();
|
|
40
|
+
target.addEventListener("scroll", check, { passive: true });
|
|
41
|
+
return () => target.removeEventListener("scroll", check);
|
|
34
42
|
}
|
|
35
43
|
const observer = new IntersectionObserver((entries) => {
|
|
36
|
-
if (entries.some((entry) => entry.isIntersecting))
|
|
44
|
+
if (entries.some((entry) => entry.isIntersecting)) reach();
|
|
37
45
|
}, {
|
|
38
|
-
root,
|
|
39
|
-
rootMargin: `0px 0px
|
|
46
|
+
root: isScrollRoot ? scroll : null,
|
|
47
|
+
rootMargin: `0px 0px ${marginPx}px 0px`
|
|
40
48
|
});
|
|
41
49
|
observer.observe(sentinel);
|
|
42
50
|
return () => observer.disconnect();
|
|
43
51
|
}, [
|
|
44
52
|
scrollRef,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
hasHandler,
|
|
54
|
+
isEnabled,
|
|
55
|
+
rowCount,
|
|
56
|
+
marginPx
|
|
49
57
|
]);
|
|
50
58
|
return sentinelRef;
|
|
51
59
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal Shared by InfiniteSpreadsheet; apps use InfiniteSpreadsheet.
|
|
3
|
+
*
|
|
4
|
+
* Roving cell focus over a spreadsheet body (the WAI-ARIA grid pattern): one cell is the tab stop
|
|
5
|
+
* (`tabIndex` 0), every other -1. Arrow keys move one cell, Home / End go to the ends of the row,
|
|
6
|
+
* Ctrl/Cmd+Home / End to the first / last cell of the grid, PageUp / PageDown one visible page.
|
|
7
|
+
* A move scrolls the row into the virtual window first (`scrollToIndex`), focuses the cell once it
|
|
8
|
+
* is mounted and scrolls it into view sideways. A cell element replaced in place (a skeleton row
|
|
9
|
+
* whose data arrives, a row re-keyed by id) takes the focus back on mount.
|
|
10
|
+
*/
|
|
11
|
+
import { type KeyboardEvent } from "react";
|
|
12
|
+
/** @internal A cell of the navigation grid (column index over the navigable columns). */
|
|
13
|
+
export interface SpreadsheetGridCell {
|
|
14
|
+
/** Row index, from 0. */
|
|
15
|
+
rowIndex: number;
|
|
16
|
+
/** Column index among the navigable columns, from 0. */
|
|
17
|
+
columnIndex: number;
|
|
18
|
+
}
|
|
19
|
+
/** @internal Options for `useSpreadsheetCellNavigation`. */
|
|
20
|
+
export interface UseSpreadsheetCellNavigationOptions {
|
|
21
|
+
/** Rows, loaded or not. */
|
|
22
|
+
rowCount: number;
|
|
23
|
+
/** Navigable columns (visible columns, plus the row-actions column). */
|
|
24
|
+
columnCount: number;
|
|
25
|
+
/** Rows in one visible page, for PageUp / PageDown. */
|
|
26
|
+
getPageSize: () => number;
|
|
27
|
+
/** Brings a row into the rendered window. */
|
|
28
|
+
scrollToIndex: (rowIndex: number) => void;
|
|
29
|
+
}
|
|
30
|
+
/** @internal What `useSpreadsheetCellNavigation` returns. */
|
|
31
|
+
export interface SpreadsheetCellNavigation {
|
|
32
|
+
/** The tab-stop cell, clamped to the grid. */
|
|
33
|
+
active: SpreadsheetGridCell;
|
|
34
|
+
/** Ref registration for each rendered cell. */
|
|
35
|
+
registerCell: (rowIndex: number, columnIndex: number, element: HTMLElement | null) => void;
|
|
36
|
+
/** Makes a cell the tab stop and focuses it (scrolling it into view). */
|
|
37
|
+
focusCell: (rowIndex: number, columnIndex: number) => void;
|
|
38
|
+
/** A cell received focus: it becomes the tab stop. */
|
|
39
|
+
handleCellFocus: (rowIndex: number, columnIndex: number) => void;
|
|
40
|
+
/** Moves for a navigation key from `from`; returns `true` when the key was handled. */
|
|
41
|
+
handleNavigationKey: (from: SpreadsheetGridCell, event: KeyboardEvent<HTMLElement>) => boolean;
|
|
42
|
+
}
|
|
43
|
+
/** @internal Roving focus over the cells of a spreadsheet body. */
|
|
44
|
+
export declare function useSpreadsheetCellNavigation({ rowCount, columnCount, getPageSize, scrollToIndex, }: UseSpreadsheetCellNavigationOptions): SpreadsheetCellNavigation;
|