@galaxy-io/dls 1.6.1 → 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 -30
- package/dist/inputs/SwitcherInput.js +0 -81
- package/dist/inputs/hooks.d.ts +0 -10
- package/dist/inputs/hooks.js +0 -22
- package/dist/overlay/constants.d.ts +0 -28
- package/dist/overlay/constants.js +0 -37
- package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
- package/dist/resizable/HorizontalResizeHandle.js +0 -38
- package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
- package/dist/resizable/VerticalResizeHandle.js +0 -39
- package/dist/table/SpreadsheetCell.d.ts +0 -21
- package/dist/table/SpreadsheetCell.js +0 -71
- package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
- package/dist/table/SpreadsheetHeaderCell.js +0 -91
- package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
- package/dist/table/SpreadsheetMenuItem.js +0 -33
- package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
- package/dist/table/SpreadsheetPrimitives.js +0 -105
- package/dist/table/SpreadsheetRow.d.ts +0 -33
- package/dist/table/SpreadsheetRow.js +0 -73
- package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
- package/dist/table/SpreadsheetRowActionCell.js +0 -51
- package/dist/table/TableExpandCell.d.ts +0 -11
- package/dist/table/TableExpandCell.js +0 -24
- package/dist/table/TableExpandedRow.d.ts +0 -16
- package/dist/table/TableExpandedRow.js +0 -77
- package/dist/table/TableHeaderCellContent.d.ts +0 -30
- package/dist/table/TableHeaderCellContent.js +0 -48
- package/dist/table/TablePrimitives.d.ts +0 -313
- package/dist/table/TablePrimitives.js +0 -302
- package/dist/table/TableSelectCell.d.ts +0 -18
- package/dist/table/TableSelectCell.js +0 -27
- package/dist/table/TableStatusRow.d.ts +0 -18
- package/dist/table/TableStatusRow.js +0 -50
- package/dist/table/useSpreadsheetEditing.d.ts +0 -13
- package/dist/table/useSpreadsheetEditing.js +0 -41
- package/dist/table/useTableColumnResize.d.ts +0 -38
- package/dist/table/useTableColumnResize.js +0 -155
- package/dist/table/useTableRowExpansion.d.ts +0 -24
- package/dist/table/useTableRowExpansion.js +0 -62
- package/dist/table/utils.d.ts +0 -50
- package/dist/table/utils.js +0 -78
- package/dist/text/HotKeys.d.ts +0 -30
- package/dist/text/HotKeys.js +0 -74
- package/dist/text/Paragraph.d.ts +0 -33
- package/dist/text/Paragraph.js +0 -83
- package/dist/text/TextShimmer.d.ts +0 -14
- package/dist/text/TextShimmer.js +0 -34
- package/dist/theme/GalaxyTheme.d.ts +0 -67
- package/dist/theme/GalaxyTheme.js +0 -119
- package/dist/theme/constants.d.ts +0 -8
- package/dist/theme/constants.js +0 -38
- package/dist/theme/index.d.ts +0 -6
- package/dist/theme/index.js +0 -7
- package/dist/theme/types.d.ts +0 -195
- package/dist/theme/types.js +0 -10
- package/dist/theme/typography.d.ts +0 -2
- package/dist/theme/typography.js +0 -73
- package/dist/theme/variants/dark.d.ts +0 -2
- package/dist/theme/variants/dark.js +0 -125
- package/dist/theme/variants/light.d.ts +0 -2
- package/dist/theme/variants/light.js +0 -125
- package/dist/toast/ToastContainer.d.ts +0 -10
- package/dist/toast/ToastContainer.js +0 -31
- package/dist/toast/ToastWrapper.d.ts +0 -6
- package/dist/toast/ToastWrapper.js +0 -27
- package/dist/transform/Flash.d.ts +0 -7
- package/dist/transform/Flash.js +0 -18
- package/dist/transform/Spin.d.ts +0 -14
- package/dist/transform/Spin.js +0 -25
- package/dist/utils/linaria.d.ts +0 -1
- package/dist/utils/linaria.js +0 -8
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
|
|
2
|
+
import { Placement } from "../theme/enums.js";
|
|
3
|
+
import Text, { TextSize, TextVariant } from "../text/Text.js";
|
|
4
|
+
import { useControlledState } from "../hooks/useControlledState.js";
|
|
5
|
+
import Icon, { IconVariant } from "../icons/Icon.js";
|
|
6
|
+
import Button, { ButtonSize, ButtonVariant } from "../buttons/Button.js";
|
|
7
|
+
import { formatNumber } from "../utils/format.js";
|
|
8
|
+
import SelectInput, { SelectInputSize } from "../inputs/SelectInput.js";
|
|
9
|
+
/* empty css */
|
|
10
|
+
import { styled } from "@linaria/react";
|
|
11
|
+
import { forwardRef, useCallback, useId, useRef } from "react";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { cx } from "@linaria/core";
|
|
14
|
+
import { CaretLeftIcon, CaretRightIcon } from "@phosphor-icons/react";
|
|
15
|
+
//#region src/navigation/Pagination.tsx
|
|
16
|
+
/**
|
|
17
|
+
* The control under a paged list or table that moves between pages: previous and next buttons
|
|
18
|
+
* around a short window of page numbers, with an optional "1–25 of 312" summary and an optional
|
|
19
|
+
* rows-per-page select. The app owns the data: it passes the item `total` and the `pageSize`, and
|
|
20
|
+
* Pagination reports the page the user picks (`onChange`) and the size they pick
|
|
21
|
+
* (`onPageSizeChange`). It does not fetch, slice or route. `isCompact` replaces the page numbers
|
|
22
|
+
* with "3 of 13" for narrow toolbars.
|
|
23
|
+
*
|
|
24
|
+
* Not "Load more" (a `Button`), not `Tabs` (sibling views), not `Breadcrumbs` (parent pages).
|
|
25
|
+
*
|
|
26
|
+
* SSR: the page window is pure; nothing touches `window` or `document` at module scope.
|
|
27
|
+
*/
|
|
28
|
+
/** Canonical rungs; Pagination supports all five (the rung of every button and the select). */
|
|
29
|
+
var PaginationSize = /* @__PURE__ */ function(PaginationSize) {
|
|
30
|
+
/** 20px controls, caption text. */
|
|
31
|
+
PaginationSize["X_SMALL"] = "X_SMALL";
|
|
32
|
+
/** 24px controls, body_sm text. The usual size in a table footer or a Topbar. */
|
|
33
|
+
PaginationSize["SMALL"] = "SMALL";
|
|
34
|
+
/** 32px controls, body_md text. The default. */
|
|
35
|
+
PaginationSize["MEDIUM"] = "MEDIUM";
|
|
36
|
+
/** 36px controls, body_lg text. */
|
|
37
|
+
PaginationSize["LARGE"] = "LARGE";
|
|
38
|
+
/** 40px controls, body_lg text. */
|
|
39
|
+
PaginationSize["X_LARGE"] = "X_LARGE";
|
|
40
|
+
return PaginationSize;
|
|
41
|
+
}({});
|
|
42
|
+
/** Pages shown in full up to this count; past it the window is always seven slots. */
|
|
43
|
+
var WINDOW_SLOTS = 7;
|
|
44
|
+
/** The default `nav` name. */
|
|
45
|
+
var DEFAULT_ARIA_LABEL = "Pagination";
|
|
46
|
+
var Root = /*#__PURE__*/ styled("nav")({
|
|
47
|
+
name: "Root",
|
|
48
|
+
class: "gx-Pagination-r9u33u3",
|
|
49
|
+
propsAsIs: false
|
|
50
|
+
});
|
|
51
|
+
var Controls = /*#__PURE__*/ styled("div")({
|
|
52
|
+
name: "Controls",
|
|
53
|
+
class: "gx-Pagination-Controls-c1ffm52h",
|
|
54
|
+
propsAsIs: false
|
|
55
|
+
});
|
|
56
|
+
var PageSize = /*#__PURE__*/ styled("div")({
|
|
57
|
+
name: "PageSize",
|
|
58
|
+
class: "gx-Pagination-PageSize-p1uj1xow",
|
|
59
|
+
propsAsIs: false
|
|
60
|
+
});
|
|
61
|
+
var Pages = /*#__PURE__*/ styled("ul")({
|
|
62
|
+
name: "Pages",
|
|
63
|
+
class: "gx-Pagination-Pages-p1ytmnqd",
|
|
64
|
+
propsAsIs: false
|
|
65
|
+
});
|
|
66
|
+
/** The summary at the start, the controls at the end. */
|
|
67
|
+
var FILL_WIDTH_CSS = "gx-Pagination-FILL_WIDTH_CSS-f1bfyy52";
|
|
68
|
+
/** 96px: a four-digit size and its caret at every rung (SelectInput's own default is 200px). */
|
|
69
|
+
var PAGE_SIZE_SELECT_CSS = "gx-Pagination-PAGE_SIZE_SELECT_CSS-p16nmdqk";
|
|
70
|
+
/** Previous / next: a square of the button's rung around a smaller caret (TableCore's expand button). */
|
|
71
|
+
var CARET_BUTTON_CSS = "gx-Pagination-CARET_BUTTON_CSS-c8xq1jo";
|
|
72
|
+
/** The previous / next caret: 12px, 10px on the 20px and 24px rungs (the collapsible Widget's caret). */
|
|
73
|
+
var PAGINATION_SIZE_TO_CARET_PX_MAP = {
|
|
74
|
+
["X_SMALL"]: 10,
|
|
75
|
+
["SMALL"]: 10,
|
|
76
|
+
["MEDIUM"]: 12,
|
|
77
|
+
["LARGE"]: 12,
|
|
78
|
+
["X_LARGE"]: 12
|
|
79
|
+
};
|
|
80
|
+
var PAGINATION_SIZE_TO_BUTTON_SIZE_MAP = {
|
|
81
|
+
["X_SMALL"]: ButtonSize.X_SMALL,
|
|
82
|
+
["SMALL"]: ButtonSize.SMALL,
|
|
83
|
+
["MEDIUM"]: ButtonSize.MEDIUM,
|
|
84
|
+
["LARGE"]: ButtonSize.LARGE,
|
|
85
|
+
["X_LARGE"]: ButtonSize.X_LARGE
|
|
86
|
+
};
|
|
87
|
+
var PAGINATION_SIZE_TO_SELECT_INPUT_SIZE_MAP = {
|
|
88
|
+
["X_SMALL"]: SelectInputSize.X_SMALL,
|
|
89
|
+
["SMALL"]: SelectInputSize.SMALL,
|
|
90
|
+
["MEDIUM"]: SelectInputSize.MEDIUM,
|
|
91
|
+
["LARGE"]: SelectInputSize.LARGE,
|
|
92
|
+
["X_LARGE"]: SelectInputSize.X_LARGE
|
|
93
|
+
};
|
|
94
|
+
var PAGINATION_SIZE_TO_TEXT_SIZE_MAP = {
|
|
95
|
+
["X_SMALL"]: TextSize.CAPTION,
|
|
96
|
+
["SMALL"]: TextSize.BODY_SM,
|
|
97
|
+
["MEDIUM"]: TextSize.BODY_MD,
|
|
98
|
+
["LARGE"]: TextSize.BODY_LG,
|
|
99
|
+
["X_LARGE"]: TextSize.BODY_LG
|
|
100
|
+
};
|
|
101
|
+
/** The page window: every page up to seven, else seven slots with one or two ellipses. */
|
|
102
|
+
function getPaginationSlots(page, pageCount) {
|
|
103
|
+
const pages = (from, to) => Array.from({ length: to - from + 1 }, (_, index) => ({
|
|
104
|
+
kind: "page",
|
|
105
|
+
page: from + index
|
|
106
|
+
}));
|
|
107
|
+
if (pageCount <= WINDOW_SLOTS) return pages(1, pageCount);
|
|
108
|
+
if (page <= 4) return [
|
|
109
|
+
...pages(1, 5),
|
|
110
|
+
{
|
|
111
|
+
kind: "ellipsis",
|
|
112
|
+
key: "end-ellipsis"
|
|
113
|
+
},
|
|
114
|
+
...pages(pageCount, pageCount)
|
|
115
|
+
];
|
|
116
|
+
if (page >= pageCount - 3) return [
|
|
117
|
+
...pages(1, 1),
|
|
118
|
+
{
|
|
119
|
+
kind: "ellipsis",
|
|
120
|
+
key: "start-ellipsis"
|
|
121
|
+
},
|
|
122
|
+
...pages(pageCount - 4, pageCount)
|
|
123
|
+
];
|
|
124
|
+
return [
|
|
125
|
+
...pages(1, 1),
|
|
126
|
+
{
|
|
127
|
+
kind: "ellipsis",
|
|
128
|
+
key: "start-ellipsis"
|
|
129
|
+
},
|
|
130
|
+
...pages(page - 1, page + 1),
|
|
131
|
+
{
|
|
132
|
+
kind: "ellipsis",
|
|
133
|
+
key: "end-ellipsis"
|
|
134
|
+
},
|
|
135
|
+
...pages(pageCount, pageCount)
|
|
136
|
+
];
|
|
137
|
+
}
|
|
138
|
+
/** A whole number at least `min`; non-finite reads as `fallback`. */
|
|
139
|
+
function wholeAtLeast(value, min, fallback) {
|
|
140
|
+
return Number.isFinite(value) ? Math.max(min, Math.floor(value)) : fallback;
|
|
141
|
+
}
|
|
142
|
+
/** Moves between the pages of a list or table, with an optional summary and page-size select. */
|
|
143
|
+
var Pagination = forwardRef(function Pagination({ total, value, defaultValue = 1, onChange, pageSize: pageSizeProp = 25, pageSizeOptions, onPageSizeChange, hasSummary = false, isCompact = false, size = "MEDIUM", isDisabled = false, fillWidth = false, ariaLabel, id, className, style, ...rest }, ref) {
|
|
144
|
+
const pageSize = wholeAtLeast(pageSizeProp, 1, 1);
|
|
145
|
+
const itemCount = wholeAtLeast(total, 0, 0);
|
|
146
|
+
const pageCount = Math.max(1, Math.ceil(itemCount / pageSize));
|
|
147
|
+
const [rawPage, setPage] = useControlledState({
|
|
148
|
+
value,
|
|
149
|
+
defaultValue,
|
|
150
|
+
onChange
|
|
151
|
+
});
|
|
152
|
+
const page = Math.min(pageCount, wholeAtLeast(rawPage, 1, 1));
|
|
153
|
+
const textSize = PAGINATION_SIZE_TO_TEXT_SIZE_MAP[size];
|
|
154
|
+
const buttonSize = PAGINATION_SIZE_TO_BUTTON_SIZE_MAP[size];
|
|
155
|
+
const pageSizeLabelId = useId();
|
|
156
|
+
const pendingFocus = useRef(null);
|
|
157
|
+
const pageButtons = useRef(/* @__PURE__ */ new Map());
|
|
158
|
+
const previousButton = useRef(null);
|
|
159
|
+
const nextButton = useRef(null);
|
|
160
|
+
useIsomorphicLayoutEffect(() => {
|
|
161
|
+
const target = pendingFocus.current;
|
|
162
|
+
if (target === null) return;
|
|
163
|
+
pendingFocus.current = null;
|
|
164
|
+
(target === "previous" ? previousButton.current : target === "next" ? nextButton.current : pageButtons.current.get(page))?.focus();
|
|
165
|
+
});
|
|
166
|
+
const goTo = (next) => {
|
|
167
|
+
if (next === page || next < 1 || next > pageCount) return;
|
|
168
|
+
setPage(next);
|
|
169
|
+
};
|
|
170
|
+
/** An arrow press; at the edge, focus goes to the current page (or the other arrow when compact). */
|
|
171
|
+
const step = (delta) => {
|
|
172
|
+
const next = page + delta;
|
|
173
|
+
if (next < 1 || next > pageCount) return;
|
|
174
|
+
if (next === 1 || next === pageCount) pendingFocus.current = isCompact ? delta === 1 ? "previous" : "next" : "current";
|
|
175
|
+
goTo(next);
|
|
176
|
+
};
|
|
177
|
+
const sizeOptions = (() => {
|
|
178
|
+
if (pageSizeOptions === void 0) return [];
|
|
179
|
+
return (pageSizeOptions.includes(pageSize) ? pageSizeOptions : [...pageSizeOptions, pageSize].sort((a, b) => a - b)).map((option) => ({
|
|
180
|
+
id: String(option),
|
|
181
|
+
label: formatNumber(option)
|
|
182
|
+
}));
|
|
183
|
+
})();
|
|
184
|
+
const handlePageSizeChange = useCallback((selected) => {
|
|
185
|
+
if (selected === null) return;
|
|
186
|
+
const next = Number(selected);
|
|
187
|
+
if (!Number.isFinite(next) || next === pageSize) return;
|
|
188
|
+
onPageSizeChange?.(next);
|
|
189
|
+
const nextPage = Math.floor((page - 1) * pageSize / next) + 1;
|
|
190
|
+
if (nextPage !== page) setPage(nextPage);
|
|
191
|
+
}, [
|
|
192
|
+
onPageSizeChange,
|
|
193
|
+
page,
|
|
194
|
+
pageSize,
|
|
195
|
+
setPage
|
|
196
|
+
]);
|
|
197
|
+
const from = (page - 1) * pageSize + 1;
|
|
198
|
+
const to = Math.min(page * pageSize, itemCount);
|
|
199
|
+
const summary = itemCount === 0 ? "No results" : `${formatNumber(from)}–${formatNumber(to)} of ${formatNumber(itemCount)}`;
|
|
200
|
+
const name = ariaLabel || rest["aria-label"] || (rest["aria-labelledby"] ? void 0 : DEFAULT_ARIA_LABEL);
|
|
201
|
+
const setPageButton = (pageNumber) => (element) => {
|
|
202
|
+
if (element === null) pageButtons.current.delete(pageNumber);
|
|
203
|
+
else pageButtons.current.set(pageNumber, element);
|
|
204
|
+
};
|
|
205
|
+
return /* @__PURE__ */ jsxs(Root, {
|
|
206
|
+
...rest,
|
|
207
|
+
ref,
|
|
208
|
+
id,
|
|
209
|
+
"aria-label": name,
|
|
210
|
+
className: cx(fillWidth && FILL_WIDTH_CSS, className),
|
|
211
|
+
style,
|
|
212
|
+
children: [hasSummary && /* @__PURE__ */ jsx(Text, {
|
|
213
|
+
as: "span",
|
|
214
|
+
size: textSize,
|
|
215
|
+
variant: TextVariant.SECONDARY,
|
|
216
|
+
isTabular: itemCount > 0,
|
|
217
|
+
"aria-live": "polite",
|
|
218
|
+
"aria-atomic": "true",
|
|
219
|
+
children: summary
|
|
220
|
+
}), /* @__PURE__ */ jsxs(Controls, { children: [pageSizeOptions !== void 0 && /* @__PURE__ */ jsxs(PageSize, { children: [/* @__PURE__ */ jsx(Text, {
|
|
221
|
+
as: "span",
|
|
222
|
+
id: pageSizeLabelId,
|
|
223
|
+
size: textSize,
|
|
224
|
+
variant: TextVariant.SECONDARY,
|
|
225
|
+
children: "Rows per page"
|
|
226
|
+
}), /* @__PURE__ */ jsx(SelectInput, {
|
|
227
|
+
options: sizeOptions,
|
|
228
|
+
value: String(pageSize),
|
|
229
|
+
onChange: handlePageSizeChange,
|
|
230
|
+
size: PAGINATION_SIZE_TO_SELECT_INPUT_SIZE_MAP[size],
|
|
231
|
+
isDisabled,
|
|
232
|
+
"aria-labelledby": pageSizeLabelId,
|
|
233
|
+
placement: Placement.BOTTOM_END,
|
|
234
|
+
className: PAGE_SIZE_SELECT_CSS
|
|
235
|
+
})] }), /* @__PURE__ */ jsxs(Pages, {
|
|
236
|
+
role: "list",
|
|
237
|
+
children: [
|
|
238
|
+
/* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Button, {
|
|
239
|
+
ref: (element) => {
|
|
240
|
+
previousButton.current = element;
|
|
241
|
+
},
|
|
242
|
+
leading: /* @__PURE__ */ jsx(Icon, {
|
|
243
|
+
component: CaretLeftIcon,
|
|
244
|
+
size: PAGINATION_SIZE_TO_CARET_PX_MAP[size],
|
|
245
|
+
variant: IconVariant.INHERIT
|
|
246
|
+
}),
|
|
247
|
+
ariaLabel: "Previous page",
|
|
248
|
+
variant: ButtonVariant.TERTIARY,
|
|
249
|
+
size: buttonSize,
|
|
250
|
+
isDisabled: isDisabled || page === 1,
|
|
251
|
+
onClick: () => step(-1),
|
|
252
|
+
className: CARET_BUTTON_CSS
|
|
253
|
+
}) }),
|
|
254
|
+
isCompact ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Text, {
|
|
255
|
+
as: "span",
|
|
256
|
+
size: textSize,
|
|
257
|
+
isTabular: true,
|
|
258
|
+
"aria-live": "polite",
|
|
259
|
+
"aria-atomic": "true",
|
|
260
|
+
children: `${formatNumber(page)} of ${formatNumber(pageCount)}`
|
|
261
|
+
}) }) : getPaginationSlots(page, pageCount).map((slot) => slot.kind === "page" ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Button, {
|
|
262
|
+
ref: setPageButton(slot.page),
|
|
263
|
+
label: formatNumber(slot.page),
|
|
264
|
+
variant: slot.page === page ? ButtonVariant.SECONDARY : ButtonVariant.TERTIARY,
|
|
265
|
+
size: buttonSize,
|
|
266
|
+
isDisabled,
|
|
267
|
+
"aria-current": slot.page === page ? "page" : void 0,
|
|
268
|
+
onClick: () => goTo(slot.page)
|
|
269
|
+
}) }, slot.page) : /* @__PURE__ */ jsx("li", {
|
|
270
|
+
"aria-hidden": "true",
|
|
271
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
272
|
+
as: "span",
|
|
273
|
+
size: textSize,
|
|
274
|
+
variant: TextVariant.TERTIARY,
|
|
275
|
+
children: "…"
|
|
276
|
+
})
|
|
277
|
+
}, slot.key)),
|
|
278
|
+
/* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Button, {
|
|
279
|
+
ref: (element) => {
|
|
280
|
+
nextButton.current = element;
|
|
281
|
+
},
|
|
282
|
+
leading: /* @__PURE__ */ jsx(Icon, {
|
|
283
|
+
component: CaretRightIcon,
|
|
284
|
+
size: PAGINATION_SIZE_TO_CARET_PX_MAP[size],
|
|
285
|
+
variant: IconVariant.INHERIT
|
|
286
|
+
}),
|
|
287
|
+
ariaLabel: "Next page",
|
|
288
|
+
variant: ButtonVariant.TERTIARY,
|
|
289
|
+
size: buttonSize,
|
|
290
|
+
isDisabled: isDisabled || page === pageCount,
|
|
291
|
+
onClick: () => step(1),
|
|
292
|
+
className: CARET_BUTTON_CSS
|
|
293
|
+
}) })
|
|
294
|
+
]
|
|
295
|
+
})] })]
|
|
296
|
+
});
|
|
297
|
+
});
|
|
298
|
+
Pagination.displayName = "Pagination";
|
|
299
|
+
//#endregion
|
|
300
|
+
export { PaginationSize, Pagination as default };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { type Icon as PhosphorIcon } from "@phosphor-icons/react";
|
|
2
|
+
import { type AriaAttributes, type CSSProperties, type ElementType, type MouseEvent, type ReactNode } from "react";
|
|
3
|
+
export interface SidebarNavProps extends AriaAttributes {
|
|
4
|
+
/** The destinations: `NavItem`s and `NavGroup`s, in display order. Scrolls when taller than the column. */
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
/** Content of the 48px row at the top: the brand mark or a workspace switcher. In collapsed mode, pass a compact version (the logomark alone). */
|
|
7
|
+
header?: ReactNode;
|
|
8
|
+
/** Content pinned under the list: the account row, `NavItem`s such as Settings, the collapse toggle. */
|
|
9
|
+
footer?: ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* Icon rail: items show only their icon (labels and counts move into tooltips), group labels become dividers. Give the parent a 48px width.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
isCollapsed?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Name of the `<nav>` landmark (announced "Main navigation").
|
|
17
|
+
* @default Main
|
|
18
|
+
*/
|
|
19
|
+
ariaLabel?: string;
|
|
20
|
+
/** DOM id of the `<nav>`. */
|
|
21
|
+
id?: string;
|
|
22
|
+
/** Any `data-*` attribute, forwarded to the `<nav>`. */
|
|
23
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
24
|
+
/** Extra class on the `<nav>`. */
|
|
25
|
+
className?: string;
|
|
26
|
+
/** Inline style on the `<nav>`; only for setting CSS custom properties. */
|
|
27
|
+
style?: CSSProperties;
|
|
28
|
+
}
|
|
29
|
+
export interface NavItemProps extends AriaAttributes {
|
|
30
|
+
/** Visible text; truncates to one line. In collapsed mode it is visually hidden (still the accessible name) and shown in the tooltip. */
|
|
31
|
+
label: string;
|
|
32
|
+
/** Phosphor icon component (`HouseIcon`, not `<HouseIcon />`), 14px. In collapsed mode an item without one shows its label's first letter. */
|
|
33
|
+
icon?: PhosphorIcon;
|
|
34
|
+
/** Destination. Renders an `<a>` (or `as`). Without it the item is a `<button>`. */
|
|
35
|
+
href?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Router link component that renders the anchor when `href` is set. It receives `href` and must forward its `ref`. Ignored without `href`.
|
|
38
|
+
* @default "a"
|
|
39
|
+
*/
|
|
40
|
+
as?: ElementType;
|
|
41
|
+
/**
|
|
42
|
+
* With `href`: opens in a new tab (`target="_blank"`, `rel="noopener noreferrer"`) and adds a trailing arrow plus visually hidden "(opens in a new tab)".
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
isExternal?: boolean;
|
|
46
|
+
/** Called on activation (a button item's action, or analytics on a link). Not called while disabled. */
|
|
47
|
+
onClick?: (event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>) => void;
|
|
48
|
+
/**
|
|
49
|
+
* The current page: `aria-current="page"`, the active fill and a `text.primary` icon. Derive it from the route, not local state.
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
isActive?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Not activatable: no `href`, disabled color, `aria-disabled`. Stays focusable so its `tooltip` can say why.
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
57
|
+
isDisabled?: boolean;
|
|
58
|
+
/** Badge after the label (a `SMALL` `Chip count`; `99+` past 99). Values of 0 or less are hidden. In collapsed mode it moves into the tooltip and the accessible name. */
|
|
59
|
+
count?: number;
|
|
60
|
+
/** Content after the label and count: a "Beta" `Chip`, a `Kbd`. Must not be interactive. Hidden in collapsed mode. */
|
|
61
|
+
trailing?: ReactNode;
|
|
62
|
+
/** Tooltip on the item, placed to the right. In collapsed mode it replaces the default tooltip (the label and count). */
|
|
63
|
+
tooltip?: string | ReactNode;
|
|
64
|
+
/** DOM id of the link or button. */
|
|
65
|
+
id?: string;
|
|
66
|
+
/** Any `data-*` attribute, forwarded to the link or button. */
|
|
67
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
68
|
+
/** Extra class on the link or button. */
|
|
69
|
+
className?: string;
|
|
70
|
+
/** Inline style on the link or button; only for setting CSS custom properties. */
|
|
71
|
+
style?: CSSProperties;
|
|
72
|
+
}
|
|
73
|
+
export interface NavGroupProps extends AriaAttributes {
|
|
74
|
+
/** Section heading, small uppercase tertiary text. Names the section's list. In collapsed mode it becomes a divider (still the list's accessible name). */
|
|
75
|
+
label: string;
|
|
76
|
+
/** The section's `NavItem`s. */
|
|
77
|
+
children?: ReactNode;
|
|
78
|
+
/**
|
|
79
|
+
* The heading becomes a toggle with a caret that folds the section.
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
isCollapsible?: boolean;
|
|
83
|
+
/** Controlled open state of a collapsible section. Pass it with `onOpenChange`. */
|
|
84
|
+
isOpen?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Initial open state of a collapsible section while uncontrolled. Pass `defaultIsOpen` for sections that start open.
|
|
87
|
+
* @default false
|
|
88
|
+
*/
|
|
89
|
+
defaultIsOpen?: boolean;
|
|
90
|
+
/** Called with the next state when the heading of a collapsible section is pressed. */
|
|
91
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
92
|
+
/** DOM id of the section's `<li>`. */
|
|
93
|
+
id?: string;
|
|
94
|
+
/** Any `data-*` attribute, forwarded to the section's `<li>`. */
|
|
95
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
96
|
+
/** Extra class on the section's `<li>`. */
|
|
97
|
+
className?: string;
|
|
98
|
+
/** Inline style on the section's `<li>`; only for setting CSS custom properties. */
|
|
99
|
+
style?: CSSProperties;
|
|
100
|
+
}
|
|
101
|
+
/** The primary navigation column: header, scrolling list of items and sections, footer. */
|
|
102
|
+
declare const SidebarNav: import("react").ForwardRefExoticComponent<SidebarNavProps & import("react").RefAttributes<HTMLElement>>;
|
|
103
|
+
/** One destination: a link (`href`) or a button, with an icon, a label, a count and an active state. */
|
|
104
|
+
export declare const NavItem: import("react").ForwardRefExoticComponent<NavItemProps & import("react").RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
|
|
105
|
+
/** A labelled section of items; with `isCollapsible` its heading folds it. */
|
|
106
|
+
export declare const NavGroup: import("react").ForwardRefExoticComponent<NavGroupProps & import("react").RefAttributes<HTMLLIElement>>;
|
|
107
|
+
export default SidebarNav;
|