@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
|
@@ -1,449 +1,307 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { EXPAND_COLUMN_ID, SELECT_COLUMN_ID, estimateColumnWidth } from "./utils.js";
|
|
4
|
-
import { useTableRowSelection } from "./useTableRowSelection.js";
|
|
5
|
-
import { useTableRowExpansion } from "./useTableRowExpansion.js";
|
|
6
|
-
import { useTableKeyboardNavigation } from "./useTableKeyboardNavigation.js";
|
|
7
|
-
import { useTableColumnResize } from "./useTableColumnResize.js";
|
|
1
|
+
import { useControlledState } from "../hooks/useControlledState.js";
|
|
2
|
+
import { TABLE_LARGE_METRICS, TABLE_MEDIUM_METRICS, TABLE_SMALL_METRICS, TableBodyRow, TableColumnsMenu, TableExpandedRow, TableFrame, TableSelectAllCheckbox } from "./TableCore.js";
|
|
8
3
|
import { useTableColumnLayout } from "./useTableColumnLayout.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import TableHeaderCellContent from "./TableHeaderCellContent.js";
|
|
13
|
-
import TableStatusRow from "./TableStatusRow.js";
|
|
14
|
-
import TableSelectCell from "./TableSelectCell.js";
|
|
15
|
-
import TableExpandedRow from "./TableExpandedRow.js";
|
|
16
|
-
import TableExpandCell from "./TableExpandCell.js";
|
|
17
|
-
import React, { useCallback, useEffect, useId, useMemo, useRef } from "react";
|
|
4
|
+
import { useTableKeyboardNavigation } from "./useTableKeyboardNavigation.js";
|
|
5
|
+
import { useTableRowSelection } from "./useTableRowSelection.js";
|
|
6
|
+
import { Fragment, forwardRef, useCallback, useId, useMemo, useRef, useState } from "react";
|
|
18
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
19
|
-
import {
|
|
8
|
+
import { getCoreRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
|
|
20
9
|
//#region src/table/InfiniteTable.tsx
|
|
21
10
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
11
|
+
* The read-only data table: rows of `data` laid out in `columns`, with a sticky header, optional
|
|
12
|
+
* sorting, row selection, expandable rows, per-row action menus, resizable and user-arranged
|
|
13
|
+
* columns, and a footer row of totals. It renders every row it is given and asks for more through
|
|
14
|
+
* `onEndReached` when the user scrolls near the end. It owns no data: the app fetches, filters
|
|
15
|
+
* and pages; the table sorts on its own only when it holds every row (no `onEndReached`).
|
|
25
16
|
*
|
|
26
|
-
*
|
|
27
|
-
* `
|
|
17
|
+
* Built on the shared table core (`TableCore`, `useTableColumnLayout`,
|
|
18
|
+
* `useTableKeyboardNavigation`, `useInfiniteScrollSentinel`), which VirtualizedInfiniteTable and
|
|
19
|
+
* InfiniteSpreadsheet share. `@tanstack/react-table` (an optional peer) supplies the row model and
|
|
20
|
+
* type-aware sorting; this is the only module that imports it.
|
|
21
|
+
*
|
|
22
|
+
* Key–value pairs are a `DescriptionList`; a list of cards is `Grid`; editable cells are
|
|
23
|
+
* `InfiniteSpreadsheet`; tens of thousands of rows are `VirtualizedInfiniteTable`.
|
|
28
24
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
header: canSelectAll ? ({ table }) => {
|
|
82
|
-
const rows = table.getRowModel().rows;
|
|
83
|
-
const selectableRows = rows.filter((row) => row.getCanSelect());
|
|
84
|
-
const selectedCount = selectableRows.filter((row) => row.getIsSelected()).length;
|
|
85
|
-
return /* @__PURE__ */ jsx(TableSelectCell, {
|
|
86
|
-
isChecked: selectableRows.length > 0 && selectedCount === selectableRows.length,
|
|
87
|
-
isIndeterminate: selectedCount > 0 && selectedCount < selectableRows.length,
|
|
88
|
-
isDisabled: selectableRows.length === 0,
|
|
89
|
-
density,
|
|
90
|
-
ariaLabel: selectAllAriaLabel,
|
|
91
|
-
onChange: (isChecked) => toggleAll(rows, isChecked)
|
|
92
|
-
});
|
|
93
|
-
} : () => null,
|
|
94
|
-
cell: ({ row }) => /* @__PURE__ */ jsx(TableSelectCell, {
|
|
95
|
-
isChecked: row.getIsSelected(),
|
|
96
|
-
isDisabled: !row.getCanSelect(),
|
|
97
|
-
density,
|
|
98
|
-
ariaLabel: getRowSelectAriaLabel?.(row) ?? `Select row ${row.index + 1}`,
|
|
99
|
-
onChange: (_isChecked, isShiftKey) => toggleRowSelection(row, isShiftKey)
|
|
100
|
-
}),
|
|
101
|
-
cellLoading: () => null
|
|
102
|
-
});
|
|
103
|
-
if (hasExpandColumn) syntheticColumns.push({
|
|
104
|
-
id: EXPAND_COLUMN_ID,
|
|
105
|
-
size: 44,
|
|
106
|
-
minSize: 44,
|
|
107
|
-
maxSize: 44,
|
|
108
|
-
pin: expandColumnPin,
|
|
109
|
-
align: ColumnAlign.CENTER,
|
|
110
|
-
enableResizing: false,
|
|
111
|
-
header: () => null,
|
|
112
|
-
cell: ({ row }) => {
|
|
113
|
-
if (!row.getCanExpand()) return null;
|
|
114
|
-
return /* @__PURE__ */ jsx(TableExpandCell, {
|
|
115
|
-
isExpanded: row.getIsExpanded(),
|
|
116
|
-
density,
|
|
117
|
-
expandedPanelId: `${instanceId}-expanded-${row.id}`,
|
|
118
|
-
onToggle: () => row.toggleExpanded()
|
|
119
|
-
});
|
|
120
|
-
},
|
|
121
|
-
cellLoading: () => null
|
|
122
|
-
});
|
|
123
|
-
return [...syntheticColumns, ...columns];
|
|
124
|
-
}, [
|
|
125
|
-
columns,
|
|
126
|
-
density,
|
|
127
|
-
instanceId,
|
|
128
|
-
hasExpandColumn,
|
|
129
|
-
expandColumnPin,
|
|
130
|
-
showSelectionColumn,
|
|
131
|
-
selectionColumnPin,
|
|
132
|
-
canSelectAll,
|
|
133
|
-
selectAllAriaLabel,
|
|
134
|
-
getRowSelectAriaLabel,
|
|
135
|
-
toggleAll,
|
|
136
|
-
toggleRowSelection
|
|
137
|
-
]);
|
|
138
|
-
const { getColumnWidth, pinnedOffsets, rowMinWidth } = useTableColumnLayout({
|
|
139
|
-
columns: resolvedColumns,
|
|
140
|
-
columnSizing: resize.columnSizing
|
|
25
|
+
/** Row rung of the table (canonical subset; the 1.x TableDensity members). */
|
|
26
|
+
var InfiniteTableSize = /* @__PURE__ */ function(InfiniteTableSize) {
|
|
27
|
+
/** 32px rows, body_sm text. Dense lists and side panels. */
|
|
28
|
+
InfiniteTableSize["SMALL"] = "SMALL";
|
|
29
|
+
/** 48px rows, body_md text. The default. */
|
|
30
|
+
InfiniteTableSize["MEDIUM"] = "MEDIUM";
|
|
31
|
+
/** 52px rows, body_lg text. Rows with avatars or two-line cells. */
|
|
32
|
+
InfiniteTableSize["LARGE"] = "LARGE";
|
|
33
|
+
return InfiniteTableSize;
|
|
34
|
+
}({});
|
|
35
|
+
var INFINITE_TABLE_SIZE_TO_TABLE_METRICS_MAP = {
|
|
36
|
+
["SMALL"]: TABLE_SMALL_METRICS,
|
|
37
|
+
["MEDIUM"]: TABLE_MEDIUM_METRICS,
|
|
38
|
+
["LARGE"]: TABLE_LARGE_METRICS
|
|
39
|
+
};
|
|
40
|
+
var NO_SORTING = [];
|
|
41
|
+
var noop = () => {};
|
|
42
|
+
/** `data-*` to the root, `aria-*` to the `<table>`. */
|
|
43
|
+
function splitPassthrough(rest) {
|
|
44
|
+
const rootProps = {};
|
|
45
|
+
const tableAria = {};
|
|
46
|
+
for (const [key, value] of Object.entries(rest)) if (key.startsWith("data-")) rootProps[key] = value;
|
|
47
|
+
else if (key.startsWith("aria-")) tableAria[key] = value;
|
|
48
|
+
return {
|
|
49
|
+
rootProps,
|
|
50
|
+
tableAria
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** The read-only data table. */
|
|
54
|
+
var InfiniteTableInner = forwardRef(function InfiniteTable(props, ref) {
|
|
55
|
+
const { columns, data, getRowId, size: sizeProp, isLoading: isLoadingProp, error: errorProp, emptyState, onEndReached, onRowClick, activeRowId, rowActions, sort, defaultSort, onSortChange, isSelectable: isSelectableProp, value, defaultValue, onChange, renderExpandedRow, expandedIds, defaultExpandedIds, onExpandedIdsChange, columnLayout, defaultColumnLayout, onColumnLayoutChange, canResizeColumns: canResizeColumnsProp, canCustomizeColumns: canCustomizeColumnsProp, ariaLabel, id, className, style, ...rest } = props;
|
|
56
|
+
const error = errorProp === "" ? void 0 : errorProp;
|
|
57
|
+
const size = sizeProp ?? "MEDIUM";
|
|
58
|
+
const isLoading = isLoadingProp ?? false;
|
|
59
|
+
const isSelectable = isSelectableProp ?? false;
|
|
60
|
+
const canResizeColumns = canResizeColumnsProp ?? false;
|
|
61
|
+
const canCustomizeColumns = canCustomizeColumnsProp ?? false;
|
|
62
|
+
const metrics = INFINITE_TABLE_SIZE_TO_TABLE_METRICS_MAP[size];
|
|
63
|
+
const baseId = useId();
|
|
64
|
+
const scrollRef = useRef(null);
|
|
65
|
+
const { rootProps, tableAria } = splitPassthrough(rest);
|
|
66
|
+
if (id !== void 0) rootProps.id = id;
|
|
67
|
+
const hasExpandColumn = renderExpandedRow !== void 0;
|
|
68
|
+
const hasRowActions = rowActions !== void 0;
|
|
69
|
+
const hasTrailingColumn = hasRowActions || canCustomizeColumns;
|
|
70
|
+
const leadingCount = (isSelectable ? 1 : 0) + (hasExpandColumn ? 1 : 0);
|
|
71
|
+
const isInteractive = onRowClick !== void 0 || isSelectable || hasExpandColumn || hasRowActions;
|
|
72
|
+
const resolveRowId = useCallback((row, index) => getRowId ? getRowId(row, index) : String(index), [getRowId]);
|
|
73
|
+
const [currentSort, setSort] = useControlledState({
|
|
74
|
+
value: sort,
|
|
75
|
+
defaultValue: defaultSort ?? null,
|
|
76
|
+
onChange: onSortChange
|
|
141
77
|
});
|
|
142
|
-
const
|
|
78
|
+
const isServerSorted = onEndReached !== void 0;
|
|
79
|
+
const modelRows = useReactTable({
|
|
143
80
|
data,
|
|
144
|
-
columns: useMemo(() =>
|
|
145
|
-
id:
|
|
146
|
-
accessorFn:
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const value = info.getValue();
|
|
157
|
-
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") return /* @__PURE__ */ jsx(Text, {
|
|
158
|
-
size: TextSize.BODY_SM,
|
|
159
|
-
children: String(value)
|
|
160
|
-
});
|
|
161
|
-
return /* @__PURE__ */ jsx(Text, {
|
|
162
|
-
size: TextSize.BODY_SM,
|
|
163
|
-
children: ""
|
|
164
|
-
});
|
|
165
|
-
},
|
|
166
|
-
size: col.size,
|
|
167
|
-
minSize: col.minSize,
|
|
168
|
-
maxSize: col.maxSize,
|
|
169
|
-
enableSorting: col.enableSorting ?? enableSorting,
|
|
170
|
-
sortDescFirst: col.sortDescFirst,
|
|
171
|
-
meta: {
|
|
172
|
-
pin: col.pin,
|
|
173
|
-
align: col.align,
|
|
174
|
-
cellLoading: col.cellLoading,
|
|
175
|
-
isCompact: col.id === "__expand__" || col.id === "__select__",
|
|
176
|
-
isResizable: canResizeColumn(col),
|
|
177
|
-
label: typeof col.header === "string" ? col.header : col.id
|
|
178
|
-
}
|
|
179
|
-
})), [
|
|
180
|
-
resolvedColumns,
|
|
181
|
-
enableSorting,
|
|
182
|
-
canResizeColumn
|
|
183
|
-
]),
|
|
184
|
-
getRowId,
|
|
81
|
+
columns: useMemo(() => columns.map((column) => ({
|
|
82
|
+
id: column.id,
|
|
83
|
+
accessorFn: (row) => column.accessor?.(row),
|
|
84
|
+
sortingFn: "auto",
|
|
85
|
+
sortUndefined: "last",
|
|
86
|
+
enableSorting: column.canSort === true
|
|
87
|
+
})), [columns]),
|
|
88
|
+
state: { sorting: useMemo(() => currentSort === null || isServerSorted ? NO_SORTING : [{
|
|
89
|
+
id: currentSort.columnId,
|
|
90
|
+
desc: currentSort.isDescending
|
|
91
|
+
}], [currentSort, isServerSorted]) },
|
|
92
|
+
onSortingChange: noop,
|
|
185
93
|
getCoreRowModel: getCoreRowModel(),
|
|
186
|
-
getSortedRowModel:
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
94
|
+
getSortedRowModel: getSortedRowModel(),
|
|
95
|
+
getRowId: resolveRowId,
|
|
96
|
+
manualSorting: isServerSorted,
|
|
97
|
+
enableMultiSort: false
|
|
98
|
+
}).getRowModel().rows;
|
|
99
|
+
const displayRows = useMemo(() => modelRows.map((entry) => ({
|
|
100
|
+
row: entry.original,
|
|
101
|
+
dataIndex: entry.index,
|
|
102
|
+
id: entry.id
|
|
103
|
+
})), [modelRows]);
|
|
104
|
+
const rowIds = useMemo(() => displayRows.map((entry) => entry.id), [displayRows]);
|
|
105
|
+
const handleSortPress = useCallback((columnId) => {
|
|
106
|
+
if (currentSort?.columnId !== columnId) setSort({
|
|
107
|
+
columnId,
|
|
108
|
+
isDescending: false
|
|
109
|
+
});
|
|
110
|
+
else if (!currentSort.isDescending) setSort({
|
|
111
|
+
columnId,
|
|
112
|
+
isDescending: true
|
|
113
|
+
});
|
|
114
|
+
else setSort(null);
|
|
115
|
+
}, [currentSort, setSort]);
|
|
116
|
+
const selection = useTableRowSelection({
|
|
117
|
+
value,
|
|
118
|
+
defaultValue: defaultValue ?? [],
|
|
119
|
+
onChange,
|
|
120
|
+
rowIds
|
|
208
121
|
});
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
|
|
122
|
+
const [expanded, setExpanded] = useControlledState({
|
|
123
|
+
value: expandedIds,
|
|
124
|
+
defaultValue: defaultExpandedIds ?? [],
|
|
125
|
+
onChange: onExpandedIdsChange
|
|
212
126
|
});
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
]);
|
|
226
|
-
const { pruneMissingRowIds } = expansion;
|
|
227
|
-
const rowIds = useMemo(() => rows.map((row) => row.id), [rows]);
|
|
228
|
-
useEffect(() => {
|
|
229
|
-
pruneMissingRowIds(rowIds);
|
|
230
|
-
}, [rowIds, pruneMissingRowIds]);
|
|
231
|
-
const sentinelRef = useInfiniteScrollSentinel({
|
|
232
|
-
scrollRef: scrollContainerRef,
|
|
233
|
-
hasNextPage,
|
|
234
|
-
isFetchingNextPage,
|
|
235
|
-
fetchNextPage,
|
|
236
|
-
rowCount: rows.length
|
|
127
|
+
const expandedSet = useMemo(() => new Set(expanded), [expanded]);
|
|
128
|
+
const [openActionsRowId, setOpenActionsRowId] = useState(null);
|
|
129
|
+
const layout = useTableColumnLayout({
|
|
130
|
+
columns,
|
|
131
|
+
columnLayout,
|
|
132
|
+
defaultColumnLayout: defaultColumnLayout ?? {},
|
|
133
|
+
onColumnLayoutChange,
|
|
134
|
+
canResizeColumns,
|
|
135
|
+
canCustomizeColumns,
|
|
136
|
+
leadingCount,
|
|
137
|
+
hasTrailing: hasTrailingColumn,
|
|
138
|
+
syntheticWidthPx: metrics.rowHeightPx
|
|
237
139
|
});
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
140
|
+
const latest = {
|
|
141
|
+
columns,
|
|
142
|
+
displayRows,
|
|
143
|
+
rowIds,
|
|
144
|
+
expanded,
|
|
145
|
+
onRowClick,
|
|
146
|
+
rowActions,
|
|
147
|
+
renderExpandedRow,
|
|
148
|
+
setExpanded,
|
|
149
|
+
selection,
|
|
150
|
+
isSelectable
|
|
151
|
+
};
|
|
152
|
+
const latestRef = useRef(latest);
|
|
153
|
+
latestRef.current = latest;
|
|
154
|
+
const toggleExpand = useCallback((rowId) => {
|
|
155
|
+
const { expanded: current, rowIds: ids, setExpanded: set } = latestRef.current;
|
|
156
|
+
const present = new Set(ids);
|
|
157
|
+
set((current.includes(rowId) ? current.filter((entry) => entry !== rowId) : [...current, rowId]).filter((entry) => present.has(entry)));
|
|
158
|
+
}, []);
|
|
159
|
+
const handleKey = useCallback((rowIndex, event) => {
|
|
160
|
+
const current = latestRef.current;
|
|
161
|
+
const entry = current.displayRows[rowIndex];
|
|
162
|
+
if (entry === void 0) return;
|
|
163
|
+
if (event.key === "Enter") {
|
|
164
|
+
current.onRowClick?.(entry.row, event);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (event.key === " ") {
|
|
168
|
+
event.preventDefault();
|
|
169
|
+
if (current.isSelectable) current.selection.toggleRow(entry.id, event.shiftKey);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (event.key === "ArrowRight" || event.key === "ArrowLeft") {
|
|
173
|
+
const content = current.renderExpandedRow?.(entry.row);
|
|
174
|
+
if (content === null || content === void 0) return;
|
|
175
|
+
const isOpen = current.expanded.includes(entry.id);
|
|
176
|
+
if (event.key === "ArrowRight" !== isOpen) {
|
|
177
|
+
event.preventDefault();
|
|
178
|
+
toggleExpand(entry.id);
|
|
250
179
|
}
|
|
251
|
-
|
|
252
|
-
},
|
|
253
|
-
onToggleSelect: (rowIndex) => {
|
|
254
|
-
const row = rowsRef.current[rowIndex];
|
|
255
|
-
if (!row || !isSelectable) return;
|
|
256
|
-
toggleRowSelection(row, false);
|
|
180
|
+
return;
|
|
257
181
|
}
|
|
182
|
+
if (event.key === "F10" && event.shiftKey || event.key === "ContextMenu") {
|
|
183
|
+
const actions = current.rowActions?.(entry.row, rowIndex);
|
|
184
|
+
if (actions === null || actions === void 0) return;
|
|
185
|
+
event.preventDefault();
|
|
186
|
+
setOpenActionsRowId(entry.id);
|
|
187
|
+
}
|
|
188
|
+
}, [toggleExpand]);
|
|
189
|
+
const getPageSize = useCallback(() => {
|
|
190
|
+
const scroll = scrollRef.current;
|
|
191
|
+
if (scroll === null) return 1;
|
|
192
|
+
return Math.floor(scroll.clientHeight / metrics.rowHeightPx) - 1;
|
|
193
|
+
}, [metrics.rowHeightPx]);
|
|
194
|
+
const navigation = useTableKeyboardNavigation({
|
|
195
|
+
rowCount: displayRows.length,
|
|
196
|
+
getPageSize,
|
|
197
|
+
onKeyDown: handleKey
|
|
258
198
|
});
|
|
259
|
-
const
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
199
|
+
const hasRowClick = onRowClick !== void 0;
|
|
200
|
+
const callbacks = useMemo(() => ({
|
|
201
|
+
registerRow: navigation.registerRow,
|
|
202
|
+
onRowClick: hasRowClick ? (row, event) => latestRef.current.onRowClick?.(row, event) : void 0,
|
|
203
|
+
onRowKeyDown: navigation.handleRowKeyDown,
|
|
204
|
+
onRowFocus: navigation.handleRowFocus,
|
|
205
|
+
onToggleSelect: (rowId, isRange) => latestRef.current.selection.toggleRow(rowId, isRange),
|
|
206
|
+
onToggleExpand: toggleExpand,
|
|
207
|
+
onActionsOpenChange: (rowId, isOpen) => setOpenActionsRowId((current) => isOpen ? rowId : current === rowId ? null : current),
|
|
208
|
+
getRowActions: hasRowActions ? (row, rowIndex) => latestRef.current.rowActions?.(row, rowIndex) : void 0,
|
|
209
|
+
getRowName: (row, rowIndex) => {
|
|
210
|
+
const name = latestRef.current.columns.find((column) => column.isRowHeader === true)?.accessor?.(row);
|
|
211
|
+
return name === void 0 || name === null || name === "" ? `row ${rowIndex + 1}` : String(name);
|
|
212
|
+
}
|
|
271
213
|
}), [
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
214
|
+
navigation.registerRow,
|
|
215
|
+
navigation.handleRowKeyDown,
|
|
216
|
+
navigation.handleRowFocus,
|
|
217
|
+
hasRowClick,
|
|
218
|
+
hasRowActions,
|
|
219
|
+
toggleExpand
|
|
276
220
|
]);
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
onResizeKeyDown: resize.resizeByKeyboard
|
|
357
|
-
} : void 0
|
|
358
|
-
})
|
|
359
|
-
}, header.id);
|
|
360
|
-
})
|
|
361
|
-
}, headerGroup.id))
|
|
362
|
-
}), /* @__PURE__ */ jsxs(TableBody, {
|
|
363
|
-
ref: bodyRef,
|
|
364
|
-
role: "rowgroup",
|
|
365
|
-
children: [
|
|
366
|
-
showLoading && renderLoadingRows(),
|
|
367
|
-
showError && /* @__PURE__ */ jsx(TableStatusRow, {
|
|
368
|
-
colSpan: columnCount,
|
|
369
|
-
viewportWidth,
|
|
370
|
-
availableHeight: statusAvailableHeight,
|
|
371
|
-
role: "alert",
|
|
372
|
-
children: typeof contentWhenError === "function" ? contentWhenError(error) : contentWhenError ?? /* @__PURE__ */ jsx(Text, {
|
|
373
|
-
variant: TextVariant.ERROR,
|
|
374
|
-
children: error?.message ?? "Error loading data"
|
|
375
|
-
})
|
|
376
|
-
}),
|
|
377
|
-
showEmpty && /* @__PURE__ */ jsx(TableStatusRow, {
|
|
378
|
-
colSpan: columnCount,
|
|
379
|
-
viewportWidth,
|
|
380
|
-
availableHeight: statusAvailableHeight,
|
|
381
|
-
role: "status",
|
|
382
|
-
children: contentWhenEmpty
|
|
383
|
-
}),
|
|
384
|
-
!showLoading && !showError && rows.map((row, index) => {
|
|
385
|
-
const isSelected = row.getIsSelected();
|
|
386
|
-
const isExpanded = hasExpansion && row.getIsExpanded();
|
|
387
|
-
const isLastRow = index === rows.length - 1;
|
|
388
|
-
const expandedPanelId = `${instanceId}-expanded-${row.id}`;
|
|
389
|
-
return /* @__PURE__ */ jsxs(React.Fragment, { children: [/* @__PURE__ */ jsx(TableRow, {
|
|
390
|
-
$isClickable: Boolean(onRowClick || onRowActivate),
|
|
391
|
-
$isSelected: isSelected,
|
|
392
|
-
$density: density,
|
|
393
|
-
$variant: variant,
|
|
394
|
-
$isExpanded: isExpanded,
|
|
395
|
-
$isLastRow: noLastRowBorder && isLastRow && !isExpanded,
|
|
396
|
-
role: "row",
|
|
397
|
-
"aria-rowindex": index + 1 + headerRowCount,
|
|
398
|
-
"aria-selected": isSelectable ? isSelected : void 0,
|
|
399
|
-
"aria-expanded": row.getCanExpand() ? isExpanded : void 0,
|
|
400
|
-
"aria-label": getRowAriaLabel?.(row),
|
|
401
|
-
tabIndex: keyboard.getRowTabIndex(index),
|
|
402
|
-
onFocus: resolvedEnableRowFocus ? () => keyboard.onRowFocus(index) : void 0,
|
|
403
|
-
onKeyDown: resolvedEnableRowFocus ? (event) => keyboard.onRowKeyDown(index, event) : void 0,
|
|
404
|
-
onClick: onRowClick || onRowActivate ? (event) => {
|
|
405
|
-
onRowClick?.(row, event);
|
|
406
|
-
onRowActivate?.(row, event);
|
|
407
|
-
} : void 0,
|
|
408
|
-
onDoubleClick: onRowDoubleClick ? (event) => onRowDoubleClick(row, event) : void 0,
|
|
409
|
-
["data-row-index"]: index,
|
|
410
|
-
children: row.getVisibleCells().map((cell, columnIndex) => {
|
|
411
|
-
const meta = cell.column.columnDef.meta;
|
|
412
|
-
return /* @__PURE__ */ jsx(TableDataCell, {
|
|
413
|
-
$width: getColumnWidth(resolvedColumns[columnIndex]),
|
|
414
|
-
$minWidth: cell.column.columnDef.minSize,
|
|
415
|
-
$maxWidth: cell.column.columnDef.maxSize,
|
|
416
|
-
$pin: meta?.pin,
|
|
417
|
-
$pinnedOffset: pinnedOffsets.get(cell.column.id),
|
|
418
|
-
$align: meta?.align,
|
|
419
|
-
$density: density,
|
|
420
|
-
$variant: variant,
|
|
421
|
-
$isCompact: meta?.isCompact,
|
|
422
|
-
role: isRowInteractive ? "gridcell" : "cell",
|
|
423
|
-
"aria-colindex": columnIndex + 1,
|
|
424
|
-
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
425
|
-
}, cell.id);
|
|
426
|
-
})
|
|
427
|
-
}), isExpanded && onRowExpand && /* @__PURE__ */ jsx(TableExpandedRow, {
|
|
428
|
-
panelId: expandedPanelId,
|
|
429
|
-
variant,
|
|
430
|
-
colSpan: columnCount,
|
|
431
|
-
rowMinWidth,
|
|
432
|
-
viewportWidth,
|
|
433
|
-
gutterWidth: hasExpandColumn ? 44 : 0,
|
|
434
|
-
isLastRow: noLastRowBorder && isLastRow,
|
|
435
|
-
children: onRowExpand(row)
|
|
436
|
-
})] }, row.id);
|
|
437
|
-
}),
|
|
438
|
-
isFetchingNextPage && renderLoadingRows()
|
|
439
|
-
]
|
|
440
|
-
})]
|
|
441
|
-
}), /* @__PURE__ */ jsx(InfiniteScrollSentinel, {
|
|
442
|
-
ref: sentinelRef,
|
|
443
|
-
"aria-hidden": "true"
|
|
444
|
-
})]
|
|
221
|
+
const visibleColumns = layout.visibleColumns;
|
|
222
|
+
const hasStatusAfter = isLoading || error !== void 0;
|
|
223
|
+
const rowCount = displayRows.length;
|
|
224
|
+
const cellRole = isInteractive ? "gridcell" : "cell";
|
|
225
|
+
const colSpan = leadingCount + visibleColumns.length + (hasTrailingColumn ? 1 : 0);
|
|
226
|
+
const leadingHeaders = [];
|
|
227
|
+
if (isSelectable) leadingHeaders.push(/* @__PURE__ */ jsx(TableSelectAllCheckbox, {
|
|
228
|
+
metrics,
|
|
229
|
+
isChecked: selection.isAllSelected,
|
|
230
|
+
isIndeterminate: selection.isSomeSelected,
|
|
231
|
+
isDisabled: data.length === 0,
|
|
232
|
+
onToggle: selection.toggleAll
|
|
233
|
+
}));
|
|
234
|
+
if (hasExpandColumn) leadingHeaders.push(null);
|
|
235
|
+
return /* @__PURE__ */ jsx(TableFrame, {
|
|
236
|
+
metrics,
|
|
237
|
+
columnLayout: layout,
|
|
238
|
+
leadingHeaders,
|
|
239
|
+
trailingHeader: canCustomizeColumns ? /* @__PURE__ */ jsx(TableColumnsMenu, {
|
|
240
|
+
entries: layout.menuEntries,
|
|
241
|
+
metrics,
|
|
242
|
+
onToggle: (columnId, isVisible) => layout.setColumnHidden(columnId, !isVisible),
|
|
243
|
+
onReset: layout.resetLayout
|
|
244
|
+
}) : void 0,
|
|
245
|
+
hasTrailingColumn,
|
|
246
|
+
sort: currentSort,
|
|
247
|
+
onSortPress: handleSortPress,
|
|
248
|
+
canCustomizeColumns,
|
|
249
|
+
rowCount,
|
|
250
|
+
isLoading,
|
|
251
|
+
error,
|
|
252
|
+
emptyState,
|
|
253
|
+
onEndReached,
|
|
254
|
+
role: isInteractive ? "grid" : "table",
|
|
255
|
+
ariaLabel,
|
|
256
|
+
tableAria,
|
|
257
|
+
isMultiselectable: isSelectable,
|
|
258
|
+
ariaRowCount: void 0,
|
|
259
|
+
rootRef: ref,
|
|
260
|
+
scrollRef,
|
|
261
|
+
rootProps,
|
|
262
|
+
className,
|
|
263
|
+
style,
|
|
264
|
+
children: displayRows.map((entry, rowIndex) => {
|
|
265
|
+
const content = renderExpandedRow?.(entry.row);
|
|
266
|
+
const canExpand = content !== null && content !== void 0;
|
|
267
|
+
const isExpanded = canExpand && expandedSet.has(entry.id);
|
|
268
|
+
const isLastRow = rowIndex === rowCount - 1;
|
|
269
|
+
const panelId = `${baseId}-panel-${entry.dataIndex}`;
|
|
270
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(TableBodyRow, {
|
|
271
|
+
row: entry.row,
|
|
272
|
+
rowIndex,
|
|
273
|
+
rowId: entry.id,
|
|
274
|
+
columns: visibleColumns,
|
|
275
|
+
metrics,
|
|
276
|
+
callbacks,
|
|
277
|
+
cellRole,
|
|
278
|
+
isFocusable: isInteractive,
|
|
279
|
+
isTabStop: rowIndex === navigation.tabStopIndex,
|
|
280
|
+
isClickable: hasRowClick,
|
|
281
|
+
isBorderless: isLastRow && !hasStatusAfter || isExpanded,
|
|
282
|
+
isActive: activeRowId !== void 0 && activeRowId !== null && activeRowId === entry.id,
|
|
283
|
+
isSelected: isSelectable ? selection.selectedIds.has(entry.id) : void 0,
|
|
284
|
+
hasExpandColumn,
|
|
285
|
+
isExpanded: canExpand ? isExpanded : void 0,
|
|
286
|
+
panelId: canExpand ? panelId : void 0,
|
|
287
|
+
hasTrailingColumn,
|
|
288
|
+
isActionsOpen: openActionsRowId === entry.id,
|
|
289
|
+
ariaRowIndex: void 0,
|
|
290
|
+
hasColIndex: false,
|
|
291
|
+
className: void 0,
|
|
292
|
+
style: void 0
|
|
293
|
+
}), isExpanded && /* @__PURE__ */ jsx(TableExpandedRow, {
|
|
294
|
+
panelId,
|
|
295
|
+
colSpan,
|
|
296
|
+
gutterPx: leadingCount * metrics.rowHeightPx,
|
|
297
|
+
isLast: isLastRow && !hasStatusAfter,
|
|
298
|
+
children: content
|
|
299
|
+
})] }, entry.id);
|
|
445
300
|
})
|
|
446
301
|
});
|
|
447
|
-
}
|
|
302
|
+
});
|
|
303
|
+
InfiniteTableInner.displayName = "InfiniteTable";
|
|
304
|
+
/** The read-only data table. */
|
|
305
|
+
var InfiniteTable = InfiniteTableInner;
|
|
448
306
|
//#endregion
|
|
449
|
-
export {
|
|
307
|
+
export { InfiniteTableSize, InfiniteTable as default };
|