@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,38 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
import { Orientation } from "../theme/enums.js";
|
|
3
|
+
export interface ButtonGroupProps extends Omit<AriaAttributes, "aria-label"> {
|
|
4
|
+
/**
|
|
5
|
+
* The buttons: `Button`, `CopyButton`, or another Button preset, all of one `size`. Falsy
|
|
6
|
+
* children are skipped.
|
|
7
|
+
*/
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Join the buttons into one segmented control: no gap, square inner corners, one hairline at
|
|
11
|
+
* each seam.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
isAttached?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Lay the buttons out in a row or a column.
|
|
17
|
+
* @default Orientation.HORIZONTAL
|
|
18
|
+
*/
|
|
19
|
+
orientation?: Orientation;
|
|
20
|
+
/**
|
|
21
|
+
* Stretch the group to the parent's width. In a row, the buttons share the width equally.
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
fillWidth?: boolean;
|
|
25
|
+
/** Accessible name of the group, such as "Text formatting". Set it when the set has a meaning beyond its buttons' own names. */
|
|
26
|
+
ariaLabel?: string;
|
|
27
|
+
/** DOM id on the root. */
|
|
28
|
+
id?: string;
|
|
29
|
+
/** Any `data-*` attribute, forwarded to the root. */
|
|
30
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
31
|
+
/** Extra class on the root. */
|
|
32
|
+
className?: string;
|
|
33
|
+
/** Inline style on the root; only for setting CSS custom properties. */
|
|
34
|
+
style?: CSSProperties;
|
|
35
|
+
}
|
|
36
|
+
/** A set of related buttons, spaced or attached into one segmented control. */
|
|
37
|
+
declare const ButtonGroup: import("react").ForwardRefExoticComponent<ButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
38
|
+
export default ButtonGroup;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Orientation } from "../theme/enums.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import { styled } from "@linaria/react";
|
|
4
|
+
import { forwardRef } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { cx } from "@linaria/core";
|
|
7
|
+
//#region src/buttons/ButtonGroup.tsx
|
|
8
|
+
/**
|
|
9
|
+
* Puts a set of related buttons in one row (or column) and names them as a group
|
|
10
|
+
* (`role="group"`). By default the buttons sit `space[8]` apart. With `isAttached` they join into
|
|
11
|
+
* one segmented control: no gap, square inner corners, and one shared hairline at each seam (each
|
|
12
|
+
* later child's leading border is removed), so only the outer corners stay round.
|
|
13
|
+
*
|
|
14
|
+
* ButtonGroup holds no value and pushes nothing into its children: each child is an ordinary
|
|
15
|
+
* `Button` (or a preset such as `CopyButton`) with its own `size`, `variant` and `isDisabled`. It
|
|
16
|
+
* adds no wrapper around a child, so every child's root element is a direct child of the group.
|
|
17
|
+
* The child rules are written at (0,2,0) specificity, so they win over Button's single-class root
|
|
18
|
+
* rules whatever the stylesheet order.
|
|
19
|
+
*
|
|
20
|
+
* Not a single choice among options (`ToggleInput`), not a toolbar with arrow keys, and not a
|
|
21
|
+
* split button (`Button dropdown`, Dropdown row).
|
|
22
|
+
*/
|
|
23
|
+
/** Static rules. `isolation: isolate` keeps the focused child's `z-index: 1` inside the group. */
|
|
24
|
+
var Root = /*#__PURE__*/ styled("div")({
|
|
25
|
+
name: "Root",
|
|
26
|
+
class: "gx-ButtonGroup-r1i5m4j6",
|
|
27
|
+
propsAsIs: false
|
|
28
|
+
});
|
|
29
|
+
/** Row or column. In a column the buttons stretch to the widest child's width. */
|
|
30
|
+
var BUTTON_GROUP_ORIENTATION_TO_CSS_MAP = {
|
|
31
|
+
[Orientation.HORIZONTAL]: "gx-ButtonGroup-Orientation_HORIZONTAL-okrb96p",
|
|
32
|
+
[Orientation.VERTICAL]: "gx-ButtonGroup-Orientation_VERTICAL-o1imubde"
|
|
33
|
+
};
|
|
34
|
+
/** Not attached: a fixed gap (a different spacing is a `Flex`). */
|
|
35
|
+
var DETACHED_CSS = "gx-ButtonGroup-DETACHED_CSS-d1l4w5po";
|
|
36
|
+
/**
|
|
37
|
+
* Attached: every child after the first loses its leading border and leading corners, every
|
|
38
|
+
* child before the last loses its trailing corners, so each seam is one hairline (the previous
|
|
39
|
+
* child's trailing border). The focused child is lifted so its focus ring is never painted over
|
|
40
|
+
* by the next sibling. The `0` values and the local `z-index: 1` are literals, not scale steps.
|
|
41
|
+
*/
|
|
42
|
+
var BUTTON_GROUP_ORIENTATION_TO_ATTACHED_CSS_MAP = {
|
|
43
|
+
[Orientation.HORIZONTAL]: "gx-ButtonGroup-Orientation_HORIZONTAL-o1a8lwt0",
|
|
44
|
+
[Orientation.VERTICAL]: "gx-ButtonGroup-Orientation_VERTICAL-o1p86yuh"
|
|
45
|
+
};
|
|
46
|
+
/** `fillWidth`: the group takes the parent's width. */
|
|
47
|
+
var FILL_WIDTH_CSS = "gx-ButtonGroup-FILL_WIDTH_CSS-f1n78ece";
|
|
48
|
+
/** `fillWidth` in a row: the buttons share the width equally and their labels truncate. */
|
|
49
|
+
var BUTTON_GROUP_ORIENTATION_TO_FILL_WIDTH_CSS_MAP = {
|
|
50
|
+
[Orientation.HORIZONTAL]: "gx-ButtonGroup-Orientation_HORIZONTAL-o12vzedd",
|
|
51
|
+
[Orientation.VERTICAL]: ""
|
|
52
|
+
};
|
|
53
|
+
/** A set of related buttons, spaced or attached into one segmented control. */
|
|
54
|
+
var ButtonGroup = forwardRef(function ButtonGroup({ children, isAttached = false, orientation = Orientation.HORIZONTAL, fillWidth = false, ariaLabel, id, className, style, ...rest }, ref) {
|
|
55
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
56
|
+
...rest,
|
|
57
|
+
ref,
|
|
58
|
+
id,
|
|
59
|
+
role: "group",
|
|
60
|
+
"aria-label": ariaLabel ?? rest["aria-label"],
|
|
61
|
+
className: cx(BUTTON_GROUP_ORIENTATION_TO_CSS_MAP[orientation], isAttached ? BUTTON_GROUP_ORIENTATION_TO_ATTACHED_CSS_MAP[orientation] : DETACHED_CSS, fillWidth && FILL_WIDTH_CSS, fillWidth && BUTTON_GROUP_ORIENTATION_TO_FILL_WIDTH_CSS_MAP[orientation], className),
|
|
62
|
+
style,
|
|
63
|
+
children
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
ButtonGroup.displayName = "ButtonGroup";
|
|
67
|
+
//#endregion
|
|
68
|
+
export { ButtonGroup as default };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type FocusEventHandler, type MouseEvent, type MouseEventHandler } from "react";
|
|
2
|
+
import { ButtonSize, ButtonVariant } from "./Button.js";
|
|
3
|
+
/** Every CopyButton prop except the accessible-name pair (`label` / `ariaLabel`). */
|
|
4
|
+
export interface CopyButtonBaseProps extends AriaAttributes {
|
|
5
|
+
/** The text written to the clipboard on press. */
|
|
6
|
+
value: string;
|
|
7
|
+
/**
|
|
8
|
+
* Button mode: solid, bordered, transparent, or muted fill. Copying is never destructive, so
|
|
9
|
+
* `ERROR` is a type error.
|
|
10
|
+
* @default ButtonVariant.TERTIARY
|
|
11
|
+
*/
|
|
12
|
+
variant?: Exclude<ButtonVariant, ButtonVariant.ERROR>;
|
|
13
|
+
/**
|
|
14
|
+
* Button rung: 20 / 24 / 32 / 36 / 40px tall.
|
|
15
|
+
* @default ButtonSize.MEDIUM
|
|
16
|
+
*/
|
|
17
|
+
size?: ButtonSize;
|
|
18
|
+
/**
|
|
19
|
+
* Blocks the copy, shows Button's disabled look, and disables the hint.
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
isDisabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Stretch to the parent's width. Content stays centered.
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
fillWidth?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Called on press, right after the copy starts (it does not wait for the clipboard). Call
|
|
30
|
+
* `event.stopPropagation()` here to keep a surrounding clickable row from also firing.
|
|
31
|
+
*/
|
|
32
|
+
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
33
|
+
/** Focus passthrough to the button. */
|
|
34
|
+
onFocus?: FocusEventHandler<HTMLButtonElement>;
|
|
35
|
+
/** Blur passthrough to the button. */
|
|
36
|
+
onBlur?: FocusEventHandler<HTMLButtonElement>;
|
|
37
|
+
/** Pointer-enter passthrough to the button. */
|
|
38
|
+
onMouseEnter?: MouseEventHandler<HTMLButtonElement>;
|
|
39
|
+
/** Pointer-leave passthrough to the button. */
|
|
40
|
+
onMouseLeave?: MouseEventHandler<HTMLButtonElement>;
|
|
41
|
+
/** DOM id on the button. */
|
|
42
|
+
id?: string;
|
|
43
|
+
/** Any `data-*` attribute, forwarded to the button. */
|
|
44
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
45
|
+
/** Extra class on the button. */
|
|
46
|
+
className?: string;
|
|
47
|
+
/** Inline style on the button; only for setting CSS custom properties. */
|
|
48
|
+
style?: CSSProperties;
|
|
49
|
+
}
|
|
50
|
+
/** A visible label, optionally with an accessible name that starts with it. */
|
|
51
|
+
interface CopyButtonLabelledProps {
|
|
52
|
+
/**
|
|
53
|
+
* Visible text after the copy icon ("Copy link"). It does not change to "Copied"; the tooltip
|
|
54
|
+
* confirms. Omit it for an icon-only button and set `ariaLabel` instead.
|
|
55
|
+
*/
|
|
56
|
+
label: string;
|
|
57
|
+
/** Accessible name. With a `label`, it must start with the visible label text. */
|
|
58
|
+
ariaLabel?: string;
|
|
59
|
+
}
|
|
60
|
+
/** No visible label: the accessible name is required. */
|
|
61
|
+
interface CopyButtonUnlabelledProps {
|
|
62
|
+
/**
|
|
63
|
+
* Visible text after the copy icon ("Copy link"). It does not change to "Copied"; the tooltip
|
|
64
|
+
* confirms. Omit it for an icon-only button and set `ariaLabel` instead.
|
|
65
|
+
*/
|
|
66
|
+
label?: undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Accessible name, required without a `label`; it also fills the hover hint. Name what is
|
|
69
|
+
* copied ("Copy API key").
|
|
70
|
+
*/
|
|
71
|
+
ariaLabel: string;
|
|
72
|
+
}
|
|
73
|
+
/** CopyButton props. Without a `label`, `ariaLabel` is required by the type. */
|
|
74
|
+
export type CopyButtonProps = CopyButtonBaseProps & (CopyButtonLabelledProps | CopyButtonUnlabelledProps);
|
|
75
|
+
/** Copies `value` on press, swaps the icon to a check, and confirms with "Copied". */
|
|
76
|
+
declare const CopyButton: import("react").ForwardRefExoticComponent<CopyButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
77
|
+
export default CopyButton;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import VisuallyHidden from "../a11y/VisuallyHidden.js";
|
|
2
|
+
import Portal from "../layout/Portal.js";
|
|
3
|
+
import Tooltip from "../tooltip/Tooltip.js";
|
|
4
|
+
import Button, { ButtonSize, ButtonVariant } from "./Button.js";
|
|
5
|
+
import { useClipboard } from "../hooks/useClipboard.js";
|
|
6
|
+
import { forwardRef, useState } from "react";
|
|
7
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { CheckIcon, CopyIcon } from "@phosphor-icons/react";
|
|
9
|
+
//#region src/buttons/CopyButton.tsx
|
|
10
|
+
/**
|
|
11
|
+
* Copies one string to the clipboard when pressed and confirms it: the copy icon turns into a
|
|
12
|
+
* check and a "Copied" tooltip shows for the `useClipboard` timeout (1.5s), while a polite live
|
|
13
|
+
* region announces "Copied" to screen readers. When the clipboard API is missing or refuses,
|
|
14
|
+
* nothing changes: CopyButton never claims a copy that did not happen.
|
|
15
|
+
*
|
|
16
|
+
* A preset over `Button` (as `Bold` and `Code` are over `Span`): it renders a real `Button` with
|
|
17
|
+
* the icon, the click handler and a controlled `Tooltip` filled in, and takes Button's own
|
|
18
|
+
* `ButtonSize` and `ButtonVariant` (import them from `buttons/Button`). It has no styles of its
|
|
19
|
+
* own. The tooltip bubble and the live region render through `Portal`, so CopyButton's only DOM
|
|
20
|
+
* node in place is the `<button>` (a valid `ButtonGroup` child).
|
|
21
|
+
*
|
|
22
|
+
* A read-only field with a copy button is `CopyInput`, which composes `TextInput` and this.
|
|
23
|
+
*/
|
|
24
|
+
/** The confirmation text in the tooltip and the live region (fixed English, as Button's "(opens in a new tab)"). */
|
|
25
|
+
var COPIED_LABEL = "Copied";
|
|
26
|
+
/** Copies `value` on press, swaps the icon to a check, and confirms with "Copied". */
|
|
27
|
+
var CopyButton = forwardRef(function CopyButton(props, ref) {
|
|
28
|
+
const { value, label, ariaLabel, variant = ButtonVariant.TERTIARY, size = ButtonSize.MEDIUM, isDisabled = false, fillWidth = false, onClick, ...rest } = props;
|
|
29
|
+
const { copy, hasCopied } = useClipboard();
|
|
30
|
+
const [isHintOpen, setIsHintOpen] = useState(false);
|
|
31
|
+
const nameProps = props.label !== void 0 ? {
|
|
32
|
+
label: props.label,
|
|
33
|
+
...props.ariaLabel === void 0 ? {} : { ariaLabel: props.ariaLabel }
|
|
34
|
+
} : { ariaLabel: props.ariaLabel };
|
|
35
|
+
const handleClick = (event) => {
|
|
36
|
+
copy(value);
|
|
37
|
+
onClick?.(event);
|
|
38
|
+
};
|
|
39
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Tooltip, {
|
|
40
|
+
body: hasCopied ? COPIED_LABEL : label === void 0 ? ariaLabel : "",
|
|
41
|
+
isOpen: hasCopied || isHintOpen,
|
|
42
|
+
onOpenChange: setIsHintOpen,
|
|
43
|
+
isDisabled,
|
|
44
|
+
"aria-hidden": true,
|
|
45
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
46
|
+
...rest,
|
|
47
|
+
...nameProps,
|
|
48
|
+
ref,
|
|
49
|
+
icon: hasCopied ? CheckIcon : CopyIcon,
|
|
50
|
+
variant,
|
|
51
|
+
size,
|
|
52
|
+
isDisabled,
|
|
53
|
+
fillWidth,
|
|
54
|
+
type: "button",
|
|
55
|
+
onClick: handleClick
|
|
56
|
+
})
|
|
57
|
+
}), /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(VisuallyHidden, {
|
|
58
|
+
"aria-live": "polite",
|
|
59
|
+
"aria-atomic": "true",
|
|
60
|
+
children: hasCopied ? COPIED_LABEL : ""
|
|
61
|
+
}) })] });
|
|
62
|
+
});
|
|
63
|
+
CopyButton.displayName = "CopyButton";
|
|
64
|
+
//#endregion
|
|
65
|
+
export { CopyButton as default };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AreaChart plots series as filled areas over a categorical x-axis: volume over time, or, with
|
|
3
|
+
* `isStacked`, how a total splits into parts over time. Each area is a flat, translucent fill
|
|
4
|
+
* with its line on top, colored from `ChartPalette`. A `null` reading breaks
|
|
5
|
+
* that area's top edge; in a stack it contributes 0, so the total stays a total.
|
|
6
|
+
*
|
|
7
|
+
* A preset over LineChart's engine (`LineChartRoot`): hover, keyboard, tooltip, cursor,
|
|
8
|
+
* selection, gaps and `ChartGroupProvider` sync behave exactly as on LineChart. The chart fills
|
|
9
|
+
* its parent (2:1 when the parent has no definite height). Needs the optional peers `d3-scale`
|
|
10
|
+
* and `d3-shape`.
|
|
11
|
+
*/
|
|
12
|
+
import { type ReactElement, type RefAttributes } from "react";
|
|
13
|
+
import { type LineChartPointDatum } from "./LineChart.js";
|
|
14
|
+
import { type BaseCartesianChartProps, type ChartCurve, type ChartSeriesStyles } from "./types.js";
|
|
15
|
+
/** One area. Same shape as a line, without the dash (an area is never a forecast). */
|
|
16
|
+
export interface AreaChartAreaDatum<TMetric extends string> {
|
|
17
|
+
/** Which metric this area draws; a key of `series`. */
|
|
18
|
+
metric: TMetric;
|
|
19
|
+
/** Points in category order; `y: null` is a gap. */
|
|
20
|
+
points: LineChartPointDatum[];
|
|
21
|
+
}
|
|
22
|
+
/** AreaChart's own props; the shared chart props follow (`BaseCartesianChartProps`). */
|
|
23
|
+
interface AreaChartOwnProps<TMetric extends string> {
|
|
24
|
+
/** Label and color for every metric, keyed by metric. `TMetric` is inferred from these keys only. */
|
|
25
|
+
series: ChartSeriesStyles<TMetric>;
|
|
26
|
+
/** One entry per area, drawn in array order (the first is at the back, or at the bottom of the stack). Areas may be sparse. */
|
|
27
|
+
areas: AreaChartAreaDatum<NoInfer<TMetric>>[];
|
|
28
|
+
/** Category order along the x-axis. Pass it whenever areas are sparse. @default the union of every area's `x`, first-seen order */
|
|
29
|
+
categories?: string[];
|
|
30
|
+
/**
|
|
31
|
+
* How the top edge of each area is drawn.
|
|
32
|
+
* @default ChartCurve.SMOOTH
|
|
33
|
+
*/
|
|
34
|
+
curve?: ChartCurve;
|
|
35
|
+
/**
|
|
36
|
+
* Stack the areas so the top edge is the running total; off, areas overlap from the zero baseline.
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
isStacked?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export type AreaChartProps<TMetric extends string> = AreaChartOwnProps<TMetric> & BaseCartesianChartProps<NoInfer<TMetric>>;
|
|
42
|
+
/**
|
|
43
|
+
* The public, generic call signature (`TMetric` inferred from `series`). Never called: it only
|
|
44
|
+
* types the default export. An arrow function so react-docgen-typescript reads the props.
|
|
45
|
+
*/
|
|
46
|
+
declare const AREA_CHART_SIGNATURE: <TMetric extends string>(_props: AreaChartProps<TMetric> & RefAttributes<HTMLDivElement>) => ReactElement | null;
|
|
47
|
+
/** Filled series over a categorical x-axis, overlapping or stacked. */
|
|
48
|
+
declare const AreaChart: typeof AREA_CHART_SIGNATURE;
|
|
49
|
+
export default AreaChart;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChartKind } from "./types.js";
|
|
2
|
+
import { LineChartFill, LineChartRoot } from "./LineChart.js";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/charts/AreaChart.tsx
|
|
6
|
+
/**
|
|
7
|
+
* AreaChart plots series as filled areas over a categorical x-axis: volume over time, or, with
|
|
8
|
+
* `isStacked`, how a total splits into parts over time. Each area is a flat, translucent fill
|
|
9
|
+
* with its line on top, colored from `ChartPalette`. A `null` reading breaks
|
|
10
|
+
* that area's top edge; in a stack it contributes 0, so the total stays a total.
|
|
11
|
+
*
|
|
12
|
+
* A preset over LineChart's engine (`LineChartRoot`): hover, keyboard, tooltip, cursor,
|
|
13
|
+
* selection, gaps and `ChartGroupProvider` sync behave exactly as on LineChart. The chart fills
|
|
14
|
+
* its parent (2:1 when the parent has no definite height). Needs the optional peers `d3-scale`
|
|
15
|
+
* and `d3-shape`.
|
|
16
|
+
*/
|
|
17
|
+
var AreaChartInner = forwardRef(function AreaChart({ areas, isStacked = false, ...rest }, ref) {
|
|
18
|
+
return /* @__PURE__ */ jsx(LineChartRoot, {
|
|
19
|
+
...rest,
|
|
20
|
+
ref,
|
|
21
|
+
lines: areas,
|
|
22
|
+
fill: LineChartFill.AREA,
|
|
23
|
+
isStacked,
|
|
24
|
+
kind: ChartKind.AREA
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
AreaChartInner.displayName = "AreaChart";
|
|
28
|
+
/** Filled series over a categorical x-axis, overlapping or stacked. */
|
|
29
|
+
var AreaChart = AreaChartInner;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { AreaChart as default };
|
|
@@ -1,77 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { type ReactElement, type RefAttributes } from "react";
|
|
2
|
+
import type { Hex } from "../theme/tokens/types.js";
|
|
3
|
+
import { type BaseCartesianChartProps, type ChartPalette, type ChartSeriesStyles } from "./types.js";
|
|
4
|
+
/** How bar values are scaled before drawing. Not a grouped/stacked switch: that comes from the data. */
|
|
5
|
+
export declare enum BarChartNormalization {
|
|
6
|
+
/** Plot raw values. The default. */
|
|
7
|
+
NONE = "NONE",
|
|
8
|
+
/** Scale each bar's components to fill the axis: a 100% stacked chart. */
|
|
9
|
+
PERCENT = "PERCENT"
|
|
10
|
+
}
|
|
11
|
+
/** One stacked segment of a bar. A bar with a single component is a plain, unstacked bar. */
|
|
12
|
+
export interface BarChartComponentDatum<TComponentKey extends string = string> {
|
|
13
|
+
/** Identifies this segment; unique within its bar. Names it in the legend when bars are stacked. */
|
|
14
|
+
key: TComponentKey;
|
|
15
|
+
/** Name shown in the tooltip and, when bars are stacked, the legend. */
|
|
16
|
+
label: string;
|
|
17
|
+
/** Segment magnitude. Negative values stack below the zero baseline. */
|
|
18
|
+
value: number;
|
|
19
|
+
/** Palette slot; defaults to the component's position in the automatic order. */
|
|
20
|
+
color?: ChartPalette;
|
|
21
|
+
/** Raw color. Discouraged: it does not follow the theme. Wins over `color`. */
|
|
22
|
+
hex?: Hex;
|
|
23
|
+
}
|
|
24
|
+
/** One bar in a group: a stack of components for one metric. */
|
|
25
|
+
export interface BarChartBarDatum<TMetric extends string, TComponentKey extends string = string> {
|
|
26
|
+
/** Which metric this bar draws; a key of `series`. */
|
|
27
|
+
metric: TMetric;
|
|
28
|
+
/** Segments, stacked in array order outward from the baseline. */
|
|
29
|
+
components: BarChartComponentDatum<TComponentKey>[];
|
|
30
|
+
}
|
|
31
|
+
/** One category on the x-axis, holding one bar per metric. */
|
|
32
|
+
export interface BarChartGroupDatum<TMetric extends string, TComponentKey extends string = string> {
|
|
33
|
+
/** Category label under the group; also the raw key that selection and sync match on. */
|
|
34
|
+
label: string;
|
|
35
|
+
/** Bars, left to right in array order. */
|
|
36
|
+
bars: BarChartBarDatum<TMetric, TComponentKey>[];
|
|
37
|
+
}
|
|
38
|
+
/** BarChart's own props; the shared chart props follow (`BaseCartesianChartProps`). */
|
|
39
|
+
interface BarChartOwnProps<TMetric extends string, TComponentKey extends string> {
|
|
40
|
+
/** Label and color for every metric, keyed by metric. `TMetric` is inferred from these keys only. */
|
|
11
41
|
series: ChartSeriesStyles<TMetric>;
|
|
12
|
-
/** Categories
|
|
42
|
+
/** Categories left to right; each holds one bar per metric, each bar a stack of components. */
|
|
13
43
|
groups: BarChartGroupDatum<NoInfer<TMetric>, NoInfer<TComponentKey>>[];
|
|
14
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* `PERCENT` scales every bar to fill the axis (a 100% stacked chart); the tooltip still shows raw values.
|
|
46
|
+
* @default BarChartNormalization.NONE
|
|
47
|
+
*/
|
|
15
48
|
normalization?: BarChartNormalization;
|
|
16
|
-
/** Tint the active category's full band, marking the hover position even
|
|
17
|
-
* where there is no data. @default true */
|
|
18
|
-
showCursor?: boolean;
|
|
19
49
|
/**
|
|
20
|
-
*
|
|
21
|
-
* that is a rounding error next to its neighbours still leaves a visible
|
|
22
|
-
* mark instead of disappearing. `0`, the default, draws segments at their
|
|
23
|
-
* true size.
|
|
24
|
-
*
|
|
25
|
-
* Opt-in because it is a lie, and a small one is worth being deliberate
|
|
26
|
-
* about: the pixels a sliver gains are taken from the other segments in the
|
|
27
|
-
* same stack, in proportion to how much slack each has. The stack's total
|
|
28
|
-
* height, its cap position and every value in the tooltip stay exactly
|
|
29
|
-
* right — only the split between segments shifts, by at most a couple of
|
|
30
|
-
* pixels per rescued sliver. Reach for it when presence/absence is the
|
|
31
|
-
* thing being read (an error series, a small cohort); leave it off when the
|
|
32
|
-
* chart is being read for proportion.
|
|
33
|
-
*
|
|
34
|
-
* Ignored on unstacked bars, which already have a 2px floor — there is no
|
|
35
|
-
* neighbour to take from, so it costs nothing there. Ignored, too, when a
|
|
36
|
-
* stack is so crowded that honouring it would pin every segment to the
|
|
37
|
-
* minimum: at that point the bar would stop describing its data, and the
|
|
38
|
-
* chart is better off saying so. Fold the tail into an "Other" component
|
|
39
|
-
* instead.
|
|
40
|
-
*
|
|
50
|
+
* Smallest rendered height, in px, of a stack segment, taken from its neighbors so the stack's total stays exact. Use it when presence matters more than proportion.
|
|
41
51
|
* @default 0
|
|
42
52
|
*/
|
|
43
53
|
minSegmentLength?: number;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* makes the plot clickable.
|
|
47
|
-
*
|
|
48
|
-
* A click resolves to the finest thing under the pointer: a segment reports
|
|
49
|
-
* its own key and value, while the gutters, the plot above a short bar and
|
|
50
|
-
* the hairline seams between segments fall back to the category alone.
|
|
51
|
-
*
|
|
52
|
-
* `seriesKey` follows the same rule the legend and the mute axis do —
|
|
53
|
-
* components when the chart is stacked, metrics when it is not — so all
|
|
54
|
-
* three always name the same dimension.
|
|
55
|
-
*/
|
|
56
|
-
onSelect?: (event: ChartSelectionEvent<NoInfer<TMetric> | NoInfer<TComponentKey>>) => void;
|
|
57
|
-
/**
|
|
58
|
-
* Which marks read as selected. Matching bars hold full strength, the rest
|
|
59
|
-
* recede, and each selected category takes a persistent band — the hover
|
|
60
|
-
* tint one step firmer, held rather than previewed.
|
|
61
|
-
*
|
|
62
|
-
* Presentational and never written by the chart: the state belongs to
|
|
63
|
-
* whatever the selection is filtering, so the two cannot drift apart. Feed
|
|
64
|
-
* an {@link onSelect} event straight back, or describe a broader set —
|
|
65
|
-
* `{ seriesKey: "failed" }` selects every failure on the axis.
|
|
66
|
-
*/
|
|
67
|
-
selection?: ChartSelectionInput<NoInfer<TMetric> | NoInfer<TComponentKey>>;
|
|
68
|
-
};
|
|
54
|
+
}
|
|
55
|
+
export type BarChartProps<TMetric extends string, TComponentKey extends string = string> = BarChartOwnProps<TMetric, TComponentKey> & BaseCartesianChartProps<NoInfer<TMetric> | NoInfer<TComponentKey>>;
|
|
69
56
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* `bars` in a group render side by side, several `components` in a bar stack,
|
|
74
|
-
* and a chart doing both at once needs no extra configuration.
|
|
57
|
+
* The public, generic call signature (`TMetric` inferred from `series`; `TComponentKey` given
|
|
58
|
+
* explicitly to type component keys). Never called: it only types the default export. An arrow
|
|
59
|
+
* function so react-docgen-typescript reads the props.
|
|
75
60
|
*/
|
|
76
|
-
declare const
|
|
61
|
+
declare const BAR_CHART_SIGNATURE: <TMetric extends string, TComponentKey extends string = string>(_props: BarChartProps<TMetric, TComponentKey> & RefAttributes<HTMLDivElement>) => ReactElement | null;
|
|
62
|
+
/** Vertical bars over a categorical x-axis: grouped, stacked, or both. */
|
|
63
|
+
declare const BarChart: typeof BAR_CHART_SIGNATURE;
|
|
77
64
|
export default BarChart;
|