@galaxy-io/dls 1.6.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -50
- package/biome/index.json +74 -0
- package/biome/plugins/no-hex-literal.grit +20 -0
- package/biome/plugins/no-inline-style.grit +13 -0
- package/biome/plugins/no-margin.grit +9 -0
- package/biome/plugins/warn/no-hex-literal.grit +23 -0
- package/biome/plugins/warn/no-inline-style.grit +13 -0
- package/biome/plugins/warn/no-margin.grit +9 -0
- package/dist/a11y/FocusScope.d.ts +44 -0
- package/dist/a11y/FocusScope.js +229 -0
- package/dist/a11y/VisuallyHidden.d.ts +21 -0
- package/dist/a11y/VisuallyHidden.js +30 -0
- package/dist/avatar/Avatar.d.ts +56 -14
- package/dist/avatar/Avatar.js +250 -96
- package/dist/avatar/AvatarGroup.d.ts +43 -0
- package/dist/avatar/AvatarGroup.js +153 -0
- package/dist/backgrounds/GridBackground.d.ts +48 -0
- package/dist/backgrounds/GridBackground.js +146 -0
- package/dist/beacons/Beacon.d.ts +86 -22
- package/dist/beacons/Beacon.js +170 -47
- package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
- package/dist/brand/GalaxyFilamentWordmark.js +39 -0
- package/dist/brand/GalaxyLogomark.d.ts +26 -0
- package/dist/brand/GalaxyLogomark.js +41 -0
- package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
- package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
- package/dist/brand/GalaxyWordmark.d.ts +30 -0
- package/dist/brand/GalaxyWordmark.js +63 -0
- package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
- package/dist/brand/brandMark.d.ts +26 -0
- package/dist/brand/brandMark.js +35 -0
- package/dist/buttons/Button.d.ts +148 -59
- package/dist/buttons/Button.js +437 -227
- package/dist/buttons/ButtonGroup.d.ts +38 -0
- package/dist/buttons/ButtonGroup.js +68 -0
- package/dist/buttons/CopyButton.d.ts +77 -0
- package/dist/buttons/CopyButton.js +65 -0
- package/dist/charts/AreaChart.d.ts +49 -0
- package/dist/charts/AreaChart.js +31 -0
- package/dist/charts/BarChart.d.ts +54 -67
- package/dist/charts/BarChart.js +160 -124
- package/dist/charts/ChartAxis.d.ts +35 -40
- package/dist/charts/ChartAxis.js +114 -90
- package/dist/charts/ChartCategoryTargets.d.ts +12 -26
- package/dist/charts/ChartCategoryTargets.js +33 -20
- package/dist/charts/ChartFrame.d.ts +71 -116
- package/dist/charts/ChartFrame.js +306 -97
- package/dist/charts/ChartGroupProvider.d.ts +30 -41
- package/dist/charts/ChartGroupProvider.js +20 -7
- package/dist/charts/ChartLegend.d.ts +37 -48
- package/dist/charts/ChartLegend.js +243 -125
- package/dist/charts/ChartMarkTargets.d.ts +12 -28
- package/dist/charts/ChartMarkTargets.js +34 -20
- package/dist/charts/ChartPrimitives.d.ts +50 -305
- package/dist/charts/ChartPrimitives.js +65 -413
- package/dist/charts/ChartTooltip.d.ts +20 -26
- package/dist/charts/ChartTooltip.js +77 -40
- package/dist/charts/Heatmap.d.ts +35 -0
- package/dist/charts/Heatmap.js +307 -0
- package/dist/charts/LineChart.d.ts +54 -47
- package/dist/charts/LineChart.js +174 -121
- package/dist/charts/PieChart.d.ts +32 -53
- package/dist/charts/PieChart.js +159 -136
- package/dist/charts/Sparkline.d.ts +107 -0
- package/dist/charts/Sparkline.js +244 -0
- package/dist/charts/StatChart.d.ts +37 -13
- package/dist/charts/StatChart.js +82 -35
- package/dist/charts/barChartGeometry.d.ts +138 -86
- package/dist/charts/barChartGeometry.js +122 -101
- package/dist/charts/barChartLegend.d.ts +14 -18
- package/dist/charts/barChartLegend.js +18 -13
- package/dist/charts/chartFormat.d.ts +12 -18
- package/dist/charts/chartFormat.js +20 -52
- package/dist/charts/chartPalette.d.ts +33 -0
- package/dist/charts/chartPalette.js +68 -0
- package/dist/charts/chartScales.d.ts +41 -108
- package/dist/charts/chartScales.js +62 -128
- package/dist/charts/chartSelection.d.ts +15 -0
- package/dist/charts/chartSelection.js +22 -0
- package/dist/charts/constants.d.ts +100 -256
- package/dist/charts/constants.js +109 -275
- package/dist/charts/heatmapGeometry.d.ts +95 -0
- package/dist/charts/heatmapGeometry.js +155 -0
- package/dist/charts/lineChartGeometry.d.ts +108 -58
- package/dist/charts/lineChartGeometry.js +120 -78
- package/dist/charts/pieChartGeometry.d.ts +66 -40
- package/dist/charts/pieChartGeometry.js +68 -38
- package/dist/charts/types.d.ts +206 -466
- package/dist/charts/types.js +55 -144
- package/dist/charts/useCartesianChartLayout.d.ts +28 -59
- package/dist/charts/useCartesianChartLayout.js +47 -32
- package/dist/charts/useChartDimensions.d.ts +19 -40
- package/dist/charts/useChartDimensions.js +40 -56
- package/dist/charts/useChartFormatters.d.ts +6 -15
- package/dist/charts/useChartFormatters.js +4 -9
- package/dist/charts/useChartInteraction.d.ts +69 -116
- package/dist/charts/useChartInteraction.js +148 -78
- package/dist/charts/useChartTooltipPosition.d.ts +29 -39
- package/dist/charts/useChartTooltipPosition.js +14 -5
- package/dist/charts/useSeriesColorResolver.d.ts +11 -33
- package/dist/charts/useSeriesColorResolver.js +19 -12
- package/dist/chips/Chip.d.ts +155 -44
- package/dist/chips/Chip.js +329 -155
- package/dist/chips/ChipGroup.d.ts +53 -0
- package/dist/chips/ChipGroup.js +98 -0
- package/dist/drawer/Drawer.d.ts +83 -17
- package/dist/drawer/Drawer.js +399 -65
- package/dist/dropdown/Dropdown.d.ts +80 -63
- package/dist/dropdown/Dropdown.js +127 -129
- package/dist/editor/CodeEditor.d.ts +119 -40
- package/dist/editor/CodeEditor.js +490 -400
- package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
- package/dist/editor/CodeEditorReactWidget.js +28 -21
- package/dist/feedback/Alert.d.ts +49 -0
- package/dist/feedback/Alert.js +172 -0
- package/dist/feedback/EmptyState.d.ts +39 -0
- package/dist/feedback/EmptyState.js +109 -0
- package/dist/feedback/ProgressBar.d.ts +125 -0
- package/dist/feedback/ProgressBar.js +183 -0
- package/dist/feedback/ProgressCircle.d.ts +99 -0
- package/dist/feedback/ProgressCircle.js +187 -0
- package/dist/feedback/Skeleton.d.ts +69 -0
- package/dist/feedback/Skeleton.js +130 -0
- package/dist/feedback/Spinner.d.ts +63 -0
- package/dist/feedback/Spinner.js +141 -0
- package/dist/fonts.css +70 -0
- package/dist/hooks/internal/useIsClient.d.ts +2 -0
- package/dist/hooks/internal/useIsClient.js +14 -0
- package/dist/hooks/useClipboard.d.ts +19 -0
- package/dist/hooks/useClipboard.js +45 -0
- package/dist/hooks/useControlledOpenState.d.ts +21 -0
- package/dist/hooks/useControlledOpenState.js +19 -0
- package/dist/hooks/useControlledState.d.ts +19 -0
- package/dist/hooks/useControlledState.js +22 -0
- package/dist/hooks/useDebouncedValue.d.ts +14 -0
- package/dist/hooks/useDebouncedValue.js +33 -0
- package/dist/hooks/useDisclosure.d.ts +26 -0
- package/dist/hooks/useDisclosure.js +36 -0
- package/dist/hooks/useDismiss.d.ts +23 -27
- package/dist/hooks/useDismiss.js +39 -27
- package/dist/hooks/useElementClientSize.d.ts +10 -10
- package/dist/hooks/useElementClientSize.js +8 -11
- package/dist/hooks/useElementWidth.d.ts +6 -13
- package/dist/hooks/useElementWidth.js +6 -14
- package/dist/hooks/useField.d.ts +47 -0
- package/dist/hooks/useField.js +40 -0
- package/dist/hooks/useHotkey.d.ts +77 -0
- package/dist/hooks/useHotkey.js +246 -0
- package/dist/hooks/useIsMac.d.ts +12 -0
- package/dist/hooks/useIsMac.js +27 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
- package/dist/hooks/useLocalStorage.d.ts +28 -0
- package/dist/hooks/useLocalStorage.js +145 -0
- package/dist/hooks/useMediaQuery.d.ts +11 -0
- package/dist/hooks/useMediaQuery.js +23 -0
- package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
- package/dist/hooks/usePrefersReducedMotion.js +25 -0
- package/dist/hooks/useResize.d.ts +42 -62
- package/dist/hooks/useResize.js +43 -31
- package/dist/icons/Icon.d.ts +64 -37
- package/dist/icons/Icon.js +96 -37
- package/dist/icons/internal/IconSlot.d.ts +10 -0
- package/dist/icons/internal/IconSlot.js +32 -0
- package/dist/inputs/CheckboxGroup.d.ts +115 -0
- package/dist/inputs/CheckboxGroup.js +183 -0
- package/dist/inputs/CheckboxInput.d.ts +98 -28
- package/dist/inputs/CheckboxInput.js +218 -88
- package/dist/inputs/ColorInput.d.ts +115 -29
- package/dist/inputs/ColorInput.js +748 -326
- package/dist/inputs/CopyInput.d.ts +49 -20
- package/dist/inputs/CopyInput.js +57 -49
- package/dist/inputs/CronInput.d.ts +94 -0
- package/dist/inputs/CronInput.js +618 -0
- package/dist/inputs/DateInput.d.ts +175 -28
- package/dist/inputs/DateInput.js +1109 -451
- package/dist/inputs/DurationInput.d.ts +101 -0
- package/dist/inputs/DurationInput.js +441 -0
- package/dist/inputs/Field.d.ts +75 -0
- package/dist/inputs/Field.js +247 -0
- package/dist/inputs/Fieldset.d.ts +53 -0
- package/dist/inputs/Fieldset.js +149 -0
- package/dist/inputs/FileInput.d.ts +110 -0
- package/dist/inputs/FileInput.js +476 -0
- package/dist/inputs/Input.d.ts +148 -187
- package/dist/inputs/Input.js +339 -259
- package/dist/inputs/KeyValueInput.d.ts +120 -0
- package/dist/inputs/KeyValueInput.js +383 -0
- package/dist/inputs/MultiSelectInput.d.ts +165 -54
- package/dist/inputs/MultiSelectInput.js +175 -559
- package/dist/inputs/NumberInput.d.ts +65 -9
- package/dist/inputs/NumberInput.js +197 -40
- package/dist/inputs/PasswordInput.d.ts +17 -12
- package/dist/inputs/PasswordInput.js +33 -33
- package/dist/inputs/PinInput.d.ts +117 -0
- package/dist/inputs/PinInput.js +364 -0
- package/dist/inputs/RadioGroup.d.ts +115 -0
- package/dist/inputs/RadioGroup.js +179 -0
- package/dist/inputs/RadioInput.d.ts +87 -24
- package/dist/inputs/RadioInput.js +182 -95
- package/dist/inputs/SearchInput.d.ts +66 -0
- package/dist/inputs/SearchInput.js +156 -0
- package/dist/inputs/SelectInput.d.ts +195 -55
- package/dist/inputs/SelectInput.js +1308 -446
- package/dist/inputs/SliderInput.d.ts +150 -30
- package/dist/inputs/SliderInput.js +441 -186
- package/dist/inputs/SwitchInput.d.ts +109 -0
- package/dist/inputs/SwitchInput.js +248 -0
- package/dist/inputs/TagInput.d.ts +117 -0
- package/dist/inputs/TagInput.js +408 -0
- package/dist/inputs/TextAreaInput.d.ts +146 -44
- package/dist/inputs/TextAreaInput.js +298 -198
- package/dist/inputs/TextInput.d.ts +4 -13
- package/dist/inputs/TextInput.js +13 -48
- package/dist/inputs/ToggleInput.d.ts +120 -22
- package/dist/inputs/ToggleInput.js +262 -116
- package/dist/inputs/internal/bareField.d.ts +18 -0
- package/dist/inputs/internal/bareField.js +38 -0
- package/dist/inputs/internal/devWarn.d.ts +7 -0
- package/dist/inputs/internal/devWarn.js +30 -0
- package/dist/inputs/internal/fieldFrame.d.ts +34 -0
- package/dist/inputs/internal/fieldFrame.js +64 -0
- package/dist/inputs/internal/fieldWiring.d.ts +50 -0
- package/dist/inputs/internal/fieldWiring.js +38 -0
- package/dist/inputs/internal/innerButton.d.ts +2 -0
- package/dist/inputs/internal/innerButton.js +24 -0
- package/dist/inputs/internal/ownField.d.ts +45 -0
- package/dist/inputs/internal/ownField.js +58 -0
- package/dist/inputs/internal/predicates.d.ts +9 -0
- package/dist/inputs/internal/predicates.js +11 -0
- package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
- package/dist/inputs/internal/useComboboxPopover.js +92 -0
- package/dist/json/JsonViewer.d.ts +62 -0
- package/dist/json/JsonViewer.js +483 -0
- package/dist/layout/Box.d.ts +87 -0
- package/dist/layout/Box.js +109 -0
- package/dist/layout/Divider.d.ts +25 -0
- package/dist/layout/Divider.js +70 -0
- package/dist/layout/Flex.d.ts +139 -0
- package/dist/layout/Flex.js +165 -0
- package/dist/layout/FlexItem.d.ts +72 -0
- package/dist/layout/FlexItem.js +84 -0
- package/dist/layout/Grid.d.ts +140 -0
- package/dist/layout/Grid.js +178 -0
- package/dist/layout/Portal.d.ts +29 -0
- package/dist/layout/Portal.js +27 -0
- package/dist/layout/ResizablePanels.d.ts +88 -0
- package/dist/layout/ResizablePanels.js +198 -0
- package/dist/layout/ResizeHandle.d.ts +48 -0
- package/dist/layout/ResizeHandle.js +143 -0
- package/dist/layout/ScrollArea.d.ts +30 -0
- package/dist/layout/ScrollArea.js +138 -0
- package/dist/links/Link.d.ts +101 -1
- package/dist/links/Link.js +166 -4
- package/dist/lists/BulletedList.d.ts +25 -7
- package/dist/lists/BulletedList.js +72 -27
- package/dist/lists/DescriptionList.d.ts +91 -0
- package/dist/lists/DescriptionList.js +147 -0
- package/dist/menu/ContextMenu.d.ts +64 -0
- package/dist/menu/ContextMenu.js +34 -0
- package/dist/menu/Menu.d.ts +280 -0
- package/dist/menu/Menu.js +1003 -0
- package/dist/modal/ConfirmDialog.d.ts +55 -0
- package/dist/modal/ConfirmDialog.js +151 -0
- package/dist/modal/Modal.d.ts +64 -14
- package/dist/modal/Modal.js +189 -48
- package/dist/navigation/Breadcrumbs.d.ts +65 -0
- package/dist/navigation/Breadcrumbs.js +243 -0
- package/dist/navigation/CommandPalette.d.ts +83 -0
- package/dist/navigation/CommandPalette.js +509 -0
- package/dist/navigation/Pagination.d.ts +87 -0
- package/dist/navigation/Pagination.js +300 -0
- package/dist/navigation/SidebarNav.d.ts +107 -0
- package/dist/navigation/SidebarNav.js +341 -0
- package/dist/navigation/Stepper.d.ts +52 -0
- package/dist/navigation/Stepper.js +207 -0
- package/dist/navigation/Tabs.d.ts +113 -0
- package/dist/navigation/Tabs.js +543 -0
- package/dist/navigation/Topbar.d.ts +20 -0
- package/dist/navigation/Topbar.js +62 -0
- package/dist/overlay/OverlayProvider.d.ts +28 -32
- package/dist/overlay/OverlayProvider.js +42 -93
- package/dist/overlay/useOverlay.d.ts +88 -12
- package/dist/overlay/useOverlay.js +220 -43
- package/dist/overlays/Popover.d.ts +114 -0
- package/dist/overlays/Popover.js +389 -0
- package/dist/shapes/Circle.d.ts +84 -8
- package/dist/shapes/Circle.js +122 -20
- package/dist/shapes/Square.d.ts +84 -8
- package/dist/shapes/Square.js +123 -20
- package/dist/styles/mixins.d.ts +35 -0
- package/dist/styles/mixins.js +60 -0
- package/dist/styles.css +1 -202
- package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
- package/dist/table/InfiniteSpreadsheet.js +762 -225
- package/dist/table/InfiniteTable.d.ts +116 -14
- package/dist/table/InfiniteTable.js +287 -429
- package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
- package/dist/table/SpreadsheetCellEditor.js +163 -84
- package/dist/table/TableCore.d.ts +252 -0
- package/dist/table/TableCore.js +1082 -0
- package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
- package/dist/table/VirtualizedInfiniteTable.js +280 -219
- package/dist/table/types.d.ts +66 -244
- package/dist/table/types.js +0 -51
- package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
- package/dist/table/useInfiniteScrollSentinel.js +38 -30
- package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
- package/dist/table/useSpreadsheetCellNavigation.js +141 -0
- package/dist/table/useTableColumnLayout.d.ts +90 -25
- package/dist/table/useTableColumnLayout.js +255 -50
- package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
- package/dist/table/useTableKeyboardNavigation.js +95 -71
- package/dist/table/useTableRowSelection.d.ts +24 -25
- package/dist/table/useTableRowSelection.js +57 -84
- package/dist/table/useTableVirtualizer.d.ts +20 -0
- package/dist/table/useTableVirtualizer.js +48 -0
- package/dist/text/Bold.d.ts +5 -6
- package/dist/text/Bold.js +16 -15
- package/dist/text/Code.d.ts +5 -6
- package/dist/text/Code.js +16 -25
- package/dist/text/CodeBlock.d.ts +77 -0
- package/dist/text/CodeBlock.js +373 -0
- package/dist/text/EditableText.d.ts +55 -15
- package/dist/text/EditableText.js +153 -135
- package/dist/text/Ellipsis.d.ts +34 -8
- package/dist/text/Ellipsis.js +55 -23
- package/dist/text/Kbd.d.ts +72 -0
- package/dist/text/Kbd.js +284 -0
- package/dist/text/MarkdownText.d.ts +27 -10
- package/dist/text/MarkdownText.js +317 -300
- package/dist/text/RequiredMarker.d.ts +17 -5
- package/dist/text/RequiredMarker.js +34 -36
- package/dist/text/Selectable.d.ts +5 -6
- package/dist/text/Selectable.js +16 -13
- package/dist/text/Span.d.ts +82 -0
- package/dist/text/Span.js +115 -0
- package/dist/text/Text.d.ts +128 -41
- package/dist/text/Text.js +209 -76
- package/dist/theme/GalaxyProvider.d.ts +75 -0
- package/dist/theme/GalaxyProvider.js +223 -0
- package/dist/theme/ThemeSwitcher.d.ts +52 -0
- package/dist/theme/ThemeSwitcher.js +94 -0
- package/dist/theme/enums.d.ts +118 -0
- package/dist/theme/enums.js +144 -0
- package/dist/theme/tokens/dark.d.ts +2 -0
- package/dist/theme/tokens/dark.js +275 -0
- package/dist/theme/tokens/generate.d.ts +15 -0
- package/dist/theme/tokens/generate.js +47 -0
- package/dist/theme/tokens/light.d.ts +2 -0
- package/dist/theme/tokens/light.js +274 -0
- package/dist/theme/tokens/palette.d.ts +14 -0
- package/dist/theme/tokens/palette.js +153 -0
- package/dist/theme/tokens/scales.d.ts +26 -0
- package/dist/theme/tokens/scales.js +154 -0
- package/dist/theme/tokens/t.d.ts +3 -0
- package/dist/theme/tokens/t.js +25 -0
- package/dist/theme/tokens/types.d.ts +189 -0
- package/dist/theme/tokens/types.js +0 -0
- package/dist/theme/useGalaxyTheme.d.ts +46 -0
- package/dist/theme/useGalaxyTheme.js +36 -0
- package/dist/theme/useInverseScope.d.ts +18 -0
- package/dist/theme/useInverseScope.js +33 -0
- package/dist/three/GalaxyLogomark3D.d.ts +46 -0
- package/dist/three/GalaxyLogomark3D.js +134 -0
- package/dist/three/assets/galaxy-logomark.js +4 -0
- package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
- package/dist/three/galaxyLogomark3DScene.js +165 -0
- package/dist/timeline/Timeline.d.ts +120 -0
- package/dist/timeline/Timeline.js +301 -0
- package/dist/toast/Toast.d.ts +43 -19
- package/dist/toast/Toast.js +130 -89
- package/dist/toast/ToastProvider.d.ts +23 -23
- package/dist/toast/ToastProvider.js +298 -101
- package/dist/toast/ToastViewport.d.ts +12 -0
- package/dist/toast/ToastViewport.js +210 -0
- package/dist/toast/useToast.d.ts +139 -5
- package/dist/toast/useToast.js +15 -13
- package/dist/tokens.css +654 -0
- package/dist/tooltip/Tooltip.d.ts +64 -44
- package/dist/tooltip/Tooltip.js +280 -73
- package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
- package/dist/tooltip/internal/LazyTooltip.js +53 -0
- package/dist/transform/Fade.d.ts +33 -11
- package/dist/transform/Fade.js +71 -19
- package/dist/transform/Flasher.d.ts +25 -0
- package/dist/transform/Flasher.js +39 -0
- package/dist/transform/Rotate.d.ts +24 -12
- package/dist/transform/Rotate.js +36 -22
- package/dist/transform/ScaleFade.d.ts +36 -11
- package/dist/transform/ScaleFade.js +86 -28
- package/dist/transform/internal/CollapseMotion.d.ts +10 -0
- package/dist/transform/internal/CollapseMotion.js +65 -0
- package/dist/tree/Tree.d.ts +85 -0
- package/dist/tree/Tree.js +387 -0
- package/dist/tree/treeRow.d.ts +39 -0
- package/dist/tree/treeRow.js +75 -0
- package/dist/utils/colors.d.ts +46 -13
- package/dist/utils/colors.js +92 -34
- package/dist/utils/css.d.ts +23 -0
- package/dist/utils/css.js +30 -0
- package/dist/utils/format.d.ts +58 -0
- package/dist/utils/format.js +220 -0
- package/dist/vite/index.d.ts +16 -0
- package/dist/vite/index.js +52 -0
- package/dist/widget/Widget.d.ts +164 -48
- package/dist/widget/Widget.js +335 -96
- package/dist/widget/WidgetGroup.d.ts +36 -0
- package/dist/widget/WidgetGroup.js +103 -0
- package/package.json +855 -157
- package/dist/accordion/Accordion.d.ts +0 -54
- package/dist/accordion/Accordion.js +0 -183
- package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
- package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
- package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
- package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
- package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
- package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
- package/dist/assets/models/galaxy-animation.js +0 -136666
- package/dist/assets/models/galaxy-logomark.js +0 -4
- package/dist/avatar/AvatarShimmer.d.ts +0 -30
- package/dist/avatar/AvatarShimmer.js +0 -22
- package/dist/backgrounds/CellGridBackground.d.ts +0 -24
- package/dist/backgrounds/CellGridBackground.js +0 -44
- package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
- package/dist/backgrounds/CrossGridBackground.js +0 -49
- package/dist/backgrounds/DotGridBackground.d.ts +0 -24
- package/dist/backgrounds/DotGridBackground.js +0 -47
- package/dist/badge/Badge.d.ts +0 -42
- package/dist/badge/Badge.js +0 -99
- package/dist/charts/ChartEmptyState.d.ts +0 -17
- package/dist/charts/ChartEmptyState.js +0 -29
- package/dist/charts/ProgressBar.d.ts +0 -29
- package/dist/charts/ProgressBar.js +0 -65
- package/dist/charts/chartTheme.d.ts +0 -18
- package/dist/charts/chartTheme.js +0 -26
- package/dist/containers/FlexItem.d.ts +0 -50
- package/dist/containers/FlexItem.js +0 -91
- package/dist/containers/FlexWrapper.d.ts +0 -96
- package/dist/containers/FlexWrapper.js +0 -143
- package/dist/containers/GridWrapper.d.ts +0 -79
- package/dist/containers/GridWrapper.js +0 -125
- package/dist/containers/Spacing.d.ts +0 -23
- package/dist/containers/Spacing.js +0 -59
- package/dist/containers/Wrapper.d.ts +0 -26
- package/dist/containers/Wrapper.js +0 -54
- package/dist/dividers/HorizontalDivider.d.ts +0 -7
- package/dist/dividers/HorizontalDivider.js +0 -39
- package/dist/dividers/VerticalDivider.d.ts +0 -6
- package/dist/dividers/VerticalDivider.js +0 -21
- package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
- package/dist/icons/GalaxyFilamentWordmark.js +0 -25
- package/dist/icons/GalaxyLogomark.d.ts +0 -13
- package/dist/icons/GalaxyLogomark.js +0 -27
- package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
- package/dist/icons/GalaxyLogomark3D.js +0 -319
- package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
- package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
- package/dist/icons/GalaxyWordmark.d.ts +0 -11
- package/dist/icons/GalaxyWordmark.js +0 -25
- package/dist/inputs/MultiTextInput.d.ts +0 -32
- package/dist/inputs/MultiTextInput.js +0 -180
- package/dist/inputs/SwitcherInput.d.ts +0 -30
- package/dist/inputs/SwitcherInput.js +0 -81
- package/dist/inputs/hooks.d.ts +0 -10
- package/dist/inputs/hooks.js +0 -22
- package/dist/overlay/constants.d.ts +0 -28
- package/dist/overlay/constants.js +0 -37
- package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
- package/dist/resizable/HorizontalResizeHandle.js +0 -38
- package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
- package/dist/resizable/VerticalResizeHandle.js +0 -39
- package/dist/table/SpreadsheetCell.d.ts +0 -21
- package/dist/table/SpreadsheetCell.js +0 -71
- package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
- package/dist/table/SpreadsheetHeaderCell.js +0 -91
- package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
- package/dist/table/SpreadsheetMenuItem.js +0 -33
- package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
- package/dist/table/SpreadsheetPrimitives.js +0 -105
- package/dist/table/SpreadsheetRow.d.ts +0 -33
- package/dist/table/SpreadsheetRow.js +0 -73
- package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
- package/dist/table/SpreadsheetRowActionCell.js +0 -51
- package/dist/table/TableExpandCell.d.ts +0 -11
- package/dist/table/TableExpandCell.js +0 -24
- package/dist/table/TableExpandedRow.d.ts +0 -16
- package/dist/table/TableExpandedRow.js +0 -77
- package/dist/table/TableHeaderCellContent.d.ts +0 -30
- package/dist/table/TableHeaderCellContent.js +0 -48
- package/dist/table/TablePrimitives.d.ts +0 -313
- package/dist/table/TablePrimitives.js +0 -302
- package/dist/table/TableSelectCell.d.ts +0 -18
- package/dist/table/TableSelectCell.js +0 -27
- package/dist/table/TableStatusRow.d.ts +0 -18
- package/dist/table/TableStatusRow.js +0 -50
- package/dist/table/useSpreadsheetEditing.d.ts +0 -13
- package/dist/table/useSpreadsheetEditing.js +0 -41
- package/dist/table/useTableColumnResize.d.ts +0 -38
- package/dist/table/useTableColumnResize.js +0 -155
- package/dist/table/useTableRowExpansion.d.ts +0 -24
- package/dist/table/useTableRowExpansion.js +0 -62
- package/dist/table/utils.d.ts +0 -50
- package/dist/table/utils.js +0 -78
- package/dist/text/HotKeys.d.ts +0 -30
- package/dist/text/HotKeys.js +0 -74
- package/dist/text/Paragraph.d.ts +0 -33
- package/dist/text/Paragraph.js +0 -83
- package/dist/text/TextShimmer.d.ts +0 -14
- package/dist/text/TextShimmer.js +0 -34
- package/dist/theme/GalaxyTheme.d.ts +0 -67
- package/dist/theme/GalaxyTheme.js +0 -119
- package/dist/theme/constants.d.ts +0 -8
- package/dist/theme/constants.js +0 -38
- package/dist/theme/index.d.ts +0 -6
- package/dist/theme/index.js +0 -7
- package/dist/theme/types.d.ts +0 -195
- package/dist/theme/types.js +0 -10
- package/dist/theme/typography.d.ts +0 -2
- package/dist/theme/typography.js +0 -73
- package/dist/theme/variants/dark.d.ts +0 -2
- package/dist/theme/variants/dark.js +0 -125
- package/dist/theme/variants/light.d.ts +0 -2
- package/dist/theme/variants/light.js +0 -125
- package/dist/toast/ToastContainer.d.ts +0 -10
- package/dist/toast/ToastContainer.js +0 -31
- package/dist/toast/ToastWrapper.d.ts +0 -6
- package/dist/toast/ToastWrapper.js +0 -27
- package/dist/transform/Flash.d.ts +0 -7
- package/dist/transform/Flash.js +0 -18
- package/dist/transform/Spin.d.ts +0 -14
- package/dist/transform/Spin.js +0 -25
- package/dist/utils/linaria.d.ts +0 -1
- package/dist/utils/linaria.js +0 -8
package/dist/charts/BarChart.js
CHANGED
|
@@ -1,82 +1,80 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { Orientation } from "../theme/enums.js";
|
|
2
|
+
import { ChartKind, ChartLegendPlacement, ChartMarkState, ChartTargetShape } from "./types.js";
|
|
3
|
+
import { CHART_BAR_CSS, CHART_CURSOR_BAND_CSS, CHART_CURSOR_BAND_SELECTED_CSS, CHART_MARK_STATE_TO_CSS_MAP } from "./ChartPrimitives.js";
|
|
4
|
+
import "./constants.js";
|
|
5
|
+
import { ChartCategoryAxis, ChartValueAxis } from "./ChartAxis.js";
|
|
6
|
+
import { resolveChartSeriesColor } from "./chartPalette.js";
|
|
7
|
+
import { ChartLegendSwatch } from "./ChartLegend.js";
|
|
8
|
+
import { ChartFrame } from "./ChartFrame.js";
|
|
9
|
+
import { formatChartValue, resolveValueFormatter } from "./chartFormat.js";
|
|
4
10
|
import { useCartesianChartLayout } from "./useCartesianChartLayout.js";
|
|
11
|
+
import { useChartInteraction } from "./useChartInteraction.js";
|
|
12
|
+
import { useSeriesColorResolver } from "./useSeriesColorResolver.js";
|
|
13
|
+
import { buildBarChartGeometry, getBarValueDomain, isBarChartStacked, roundedRectPath } from "./barChartGeometry.js";
|
|
5
14
|
import { getBarLegendItems } from "./barChartLegend.js";
|
|
6
|
-
import {
|
|
7
|
-
import { ChartBarPath, ChartCursorBand } from "./ChartPrimitives.js";
|
|
8
|
-
import ChartFrame from "./ChartFrame.js";
|
|
9
|
-
import { ChartCategoryAxis, ChartValueAxis } from "./ChartAxis.js";
|
|
10
|
-
import { useCallback, useMemo, useRef } from "react";
|
|
15
|
+
import { forwardRef, useCallback, useMemo, useRef } from "react";
|
|
11
16
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
17
|
+
import { cx } from "@linaria/core";
|
|
12
18
|
//#region src/charts/BarChart.tsx
|
|
13
19
|
/**
|
|
14
|
-
*
|
|
20
|
+
* BarChart compares values across categories with vertical bars. Its data model is three levels:
|
|
21
|
+
* category **group** → one **bar** per metric → stacked **components**. A chart is grouped
|
|
22
|
+
* (several bars side by side), stacked (several components in a bar) or both, with no mode
|
|
23
|
+
* switch; `normalization={PERCENT}` turns every bar into a 100% stack. Hover and keyboard work per
|
|
24
|
+
* category: a quiet band marks the column, other columns step back, and the tooltip lists the
|
|
25
|
+
* column's values. A click names the segment under the pointer (or the column); Enter names the
|
|
26
|
+
* column. It joins `ChartGroupProvider` sync.
|
|
15
27
|
*
|
|
16
|
-
*
|
|
17
|
-
* `
|
|
18
|
-
* and a chart doing both at once needs no extra configuration.
|
|
28
|
+
* The chart fills its parent (2:1 when the parent has no definite height): size it with a `Box`,
|
|
29
|
+
* `Grid` track or flex item. Needs the optional peers `d3-scale` and `d3-shape`.
|
|
19
30
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
31
|
+
/** How bar values are scaled before drawing. Not a grouped/stacked switch: that comes from the data. */
|
|
32
|
+
var BarChartNormalization = /* @__PURE__ */ function(BarChartNormalization) {
|
|
33
|
+
/** Plot raw values. The default. */
|
|
34
|
+
BarChartNormalization["NONE"] = "NONE";
|
|
35
|
+
/** Scale each bar's components to fill the axis: a 100% stacked chart. */
|
|
36
|
+
BarChartNormalization["PERCENT"] = "PERCENT";
|
|
37
|
+
return BarChartNormalization;
|
|
38
|
+
}({});
|
|
39
|
+
var DEFAULT_PLACEHOLDER = "No data available";
|
|
40
|
+
/** The percent-normalized axis reads shares unless the app formats values itself (1.x rule). */
|
|
41
|
+
var PERCENT_AXIS_FORMATTER = (value) => `${Math.round(value * 100)}%`;
|
|
42
|
+
/** Tooltip rows of one bar, top segment first (positives outward-in, zeros, then negatives). */
|
|
43
|
+
function visualOrder(components) {
|
|
44
|
+
const indexed = components.map((component, index) => ({
|
|
45
|
+
component,
|
|
46
|
+
index
|
|
47
|
+
}));
|
|
48
|
+
const rank = ({ component, index }) => component.value > 0 ? -index : component.value === 0 ? 0 : 1 + index;
|
|
49
|
+
return [...indexed].sort((a, b) => rank(a) - rank(b) || a.index - b.index).map(({ component }) => component);
|
|
50
|
+
}
|
|
51
|
+
function BarChartInner(props, ref) {
|
|
52
|
+
const { series, groups, normalization = "NONE", minSegmentLength = 0, valueFormatter, labelFormatter, valueDomain, axisLabels, hasLegend = true, hasTooltip = true, renderTooltip, isLoading = false, placeholder = DEFAULT_PLACEHOLDER, onSelect, selection, isFilterable = false, defaultSelection, onSelectionChange, ariaLabel, id, className, style, ...rest } = props;
|
|
53
|
+
const plotRef = useRef(null);
|
|
22
54
|
const colors = useSeriesColorResolver(series);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* which describes their real units — would label it `0.2`, `0.4`. Unless they
|
|
28
|
-
* asked for something specific, show shares as percentages.
|
|
29
|
-
*
|
|
30
|
-
* Deliberately not used for the tooltip. `stackComponents` normalizes each
|
|
31
|
-
* segment's extent but leaves its `value` raw, so a tooltip row still carries
|
|
32
|
-
* the real number: the axis reports the share, the tooltip reports what the
|
|
33
|
-
* share is made of. Running a row through this would multiply a raw 200 into
|
|
34
|
-
* `20000%`.
|
|
35
|
-
*/
|
|
36
|
-
const deriveAxisFormatter = useCallback((formatValue) => {
|
|
37
|
-
if (normalization !== BarChartNormalization.PERCENT) return formatValue;
|
|
38
|
-
if (valueFormatter || valueUnit) return formatValue;
|
|
39
|
-
return (value) => `${Math.round(value * 100)}%`;
|
|
40
|
-
}, [
|
|
41
|
-
normalization,
|
|
42
|
-
valueFormatter,
|
|
43
|
-
valueUnit
|
|
44
|
-
]);
|
|
45
|
-
const { dimensions, domain, valueTicks, formatValue, formatLabel, formatAxisValue } = useCartesianChartLayout({
|
|
46
|
-
containerRef,
|
|
55
|
+
const axisValueFormatter = normalization === "PERCENT" && valueFormatter === void 0 ? PERCENT_AXIS_FORMATTER : valueFormatter;
|
|
56
|
+
const formatValue = useMemo(() => resolveValueFormatter(valueFormatter), [valueFormatter]);
|
|
57
|
+
const { dimensions, domain, valueTicks, formatValue: formatAxisValue, formatLabel } = useCartesianChartLayout({
|
|
58
|
+
plotRef,
|
|
47
59
|
rawDomain: useMemo(() => getBarValueDomain(groups, normalization), [groups, normalization]),
|
|
48
60
|
valueDomain,
|
|
49
|
-
|
|
50
|
-
height,
|
|
51
|
-
fillWidth,
|
|
52
|
-
fillHeight,
|
|
53
|
-
aspectRatio,
|
|
54
|
-
margin,
|
|
55
|
-
valueUnit,
|
|
56
|
-
valueFormatter,
|
|
61
|
+
valueFormatter: axisValueFormatter,
|
|
57
62
|
labelFormatter,
|
|
58
|
-
|
|
59
|
-
valueAxisTitle,
|
|
60
|
-
categoryAxisTitle
|
|
63
|
+
axisLabels
|
|
61
64
|
});
|
|
62
65
|
const { plotWidth, plotHeight } = dimensions;
|
|
63
|
-
/**
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
* paint every segment identically.
|
|
71
|
-
*/
|
|
72
|
-
const isStacked = useMemo(() => groups.some((group) => group.bars.some((bar) => bar.components.length > 1)), [groups]);
|
|
73
|
-
const resolveColor = useCallback(({ metric, componentIndex, isStacked: barIsStacked, explicit }) => barIsStacked ? colors.resolveByIndex(componentIndex, explicit) : colors.resolve(metric, explicit), [colors]);
|
|
66
|
+
/** Stacked charts color components (every stack repeats the ramp); others color metrics. */
|
|
67
|
+
const isStacked = useMemo(() => isBarChartStacked(groups), [groups]);
|
|
68
|
+
const resolveColor = useCallback(({ metric, componentIndex, explicit, hex }) => {
|
|
69
|
+
if (isStacked) return resolveChartSeriesColor(componentIndex, explicit, hex);
|
|
70
|
+
if (explicit !== void 0 || hex !== void 0) return resolveChartSeriesColor(colors.keys.indexOf(metric), explicit, hex);
|
|
71
|
+
return colors.resolve(metric);
|
|
72
|
+
}, [isStacked, colors]);
|
|
74
73
|
const geometry = useMemo(() => buildBarChartGeometry({
|
|
75
74
|
groups,
|
|
76
75
|
plotWidth,
|
|
77
76
|
plotHeight,
|
|
78
77
|
normalization,
|
|
79
|
-
isStacked,
|
|
80
78
|
domain,
|
|
81
79
|
resolveColor,
|
|
82
80
|
minSegmentLength
|
|
@@ -85,12 +83,11 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
|
|
|
85
83
|
plotWidth,
|
|
86
84
|
plotHeight,
|
|
87
85
|
normalization,
|
|
88
|
-
isStacked,
|
|
89
86
|
domain,
|
|
90
87
|
resolveColor,
|
|
91
88
|
minSegmentLength
|
|
92
89
|
]);
|
|
93
|
-
const isEmpty = groups.length === 0;
|
|
90
|
+
const isEmpty = groups.length === 0 || groups.every((group) => group.bars.length === 0);
|
|
94
91
|
const legendItems = useMemo(() => getBarLegendItems({
|
|
95
92
|
isStacked,
|
|
96
93
|
series,
|
|
@@ -105,26 +102,47 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
|
|
|
105
102
|
const legendKeys = useMemo(() => legendItems.map((item) => item.key), [legendItems]);
|
|
106
103
|
const categoryKeys = useMemo(() => groups.map((group) => group.label), [groups]);
|
|
107
104
|
const interaction = useChartInteraction({
|
|
108
|
-
categoryCount:
|
|
105
|
+
categoryCount: groups.length,
|
|
109
106
|
seriesKeys: legendKeys,
|
|
110
107
|
categoryKeys,
|
|
111
108
|
categoryMuteState: ChartMarkState.DIMMED,
|
|
112
109
|
selection,
|
|
113
|
-
|
|
110
|
+
isFilterable,
|
|
111
|
+
defaultSelection,
|
|
112
|
+
onSelectionChange,
|
|
113
|
+
isDisabled: !(hasTooltip || onSelect || isFilterable) || isLoading || isEmpty,
|
|
114
114
|
isLoading
|
|
115
115
|
});
|
|
116
|
-
const
|
|
116
|
+
const seriesKeyOf = useCallback((rect) => isStacked ? rect.componentKey : rect.metric, [isStacked]);
|
|
117
117
|
const buildCategoryTooltip = useCallback((index) => {
|
|
118
118
|
const band = geometry.bands[index];
|
|
119
119
|
const group = groups[index];
|
|
120
120
|
if (!band || !group) return null;
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
121
|
+
const isGrouped = group.bars.length > 1;
|
|
122
|
+
const rows = [];
|
|
123
|
+
group.bars.forEach((bar, barIndex) => {
|
|
124
|
+
const metricLabel = series[bar.metric]?.label ?? bar.metric;
|
|
125
|
+
const indexed = bar.components.map((component, componentIndex) => ({
|
|
126
|
+
component,
|
|
127
|
+
componentIndex,
|
|
128
|
+
value: component.value
|
|
129
|
+
}));
|
|
130
|
+
for (const { component, componentIndex } of visualOrder(indexed)) {
|
|
131
|
+
const label = !isStacked ? metricLabel : isGrouped ? `${metricLabel} · ${component.label}` : component.label;
|
|
132
|
+
rows.push({
|
|
133
|
+
key: `${index}:${barIndex}:${component.key}`,
|
|
134
|
+
label,
|
|
135
|
+
value: component.value,
|
|
136
|
+
formattedValue: formatChartValue(component.value, formatValue),
|
|
137
|
+
color: resolveColor({
|
|
138
|
+
metric: bar.metric,
|
|
139
|
+
componentIndex,
|
|
140
|
+
explicit: component.color,
|
|
141
|
+
hex: component.hex
|
|
142
|
+
}).color
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
});
|
|
128
146
|
return {
|
|
129
147
|
label: formatLabel(group.label),
|
|
130
148
|
rows,
|
|
@@ -132,13 +150,16 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
|
|
|
132
150
|
anchorY: band.anchorY
|
|
133
151
|
};
|
|
134
152
|
}, [
|
|
135
|
-
geometry,
|
|
153
|
+
geometry.bands,
|
|
136
154
|
groups,
|
|
155
|
+
series,
|
|
156
|
+
isStacked,
|
|
137
157
|
formatValue,
|
|
138
|
-
formatLabel
|
|
158
|
+
formatLabel,
|
|
159
|
+
resolveColor
|
|
139
160
|
]);
|
|
140
161
|
const categoryPositions = useMemo(() => geometry.bands.map((band) => band.x), [geometry.bands]);
|
|
141
|
-
const categoryStep = geometry.
|
|
162
|
+
const categoryStep = geometry.step;
|
|
142
163
|
const categoryTargets = useMemo(() => geometry.bands.map((band) => ({
|
|
143
164
|
key: String(band.groupIndex),
|
|
144
165
|
shape: ChartTargetShape.RECT,
|
|
@@ -147,15 +168,6 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
|
|
|
147
168
|
width: band.width,
|
|
148
169
|
height: band.height
|
|
149
170
|
})), [geometry.bands]);
|
|
150
|
-
/**
|
|
151
|
-
* One clickable target per drawn rectangle, over the bands.
|
|
152
|
-
*
|
|
153
|
-
* The rects already carry everything a click needs, so the target is exactly
|
|
154
|
-
* the mark — no inflation to make a thin segment easier to hit. Growing one
|
|
155
|
-
* would overlap the neighbour whose edge the geometry snapped to the same
|
|
156
|
-
* pixel, and a segment too small to hit still lands on the band beneath and
|
|
157
|
-
* selects its category, which is the honest answer for a sliver.
|
|
158
|
-
*/
|
|
159
171
|
const markTargets = useMemo(() => geometry.rects.map((rect) => ({
|
|
160
172
|
key: rect.id,
|
|
161
173
|
categoryIndex: rect.groupIndex,
|
|
@@ -165,97 +177,121 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
|
|
|
165
177
|
width: rect.width,
|
|
166
178
|
height: rect.height
|
|
167
179
|
})), [geometry.rects]);
|
|
168
|
-
const
|
|
180
|
+
const { toggleSelection } = interaction;
|
|
181
|
+
const handleCategorySelect = useCallback((index, isAdditive = false) => {
|
|
169
182
|
const group = groups[index];
|
|
170
|
-
if (!group
|
|
171
|
-
onSelect({
|
|
183
|
+
if (!group) return;
|
|
184
|
+
onSelect?.({
|
|
172
185
|
categoryIndex: index,
|
|
173
186
|
categoryKey: group.label
|
|
174
187
|
});
|
|
175
|
-
|
|
176
|
-
|
|
188
|
+
toggleSelection({ categoryKey: group.label }, isAdditive);
|
|
189
|
+
}, [
|
|
190
|
+
groups,
|
|
191
|
+
onSelect,
|
|
192
|
+
toggleSelection
|
|
193
|
+
]);
|
|
194
|
+
const handleMarkSelect = useCallback((index, isAdditive = false) => {
|
|
177
195
|
const rect = geometry.rects[index];
|
|
178
|
-
|
|
179
|
-
|
|
196
|
+
const group = groups[rect?.groupIndex ?? -1];
|
|
197
|
+
if (!rect || !group) return;
|
|
198
|
+
const seriesKey = seriesKeyOf(rect);
|
|
199
|
+
onSelect?.({
|
|
180
200
|
categoryIndex: rect.groupIndex,
|
|
181
|
-
categoryKey:
|
|
182
|
-
seriesKey
|
|
201
|
+
categoryKey: group.label,
|
|
202
|
+
seriesKey,
|
|
183
203
|
value: rect.value
|
|
184
204
|
});
|
|
205
|
+
toggleSelection({
|
|
206
|
+
categoryKey: group.label,
|
|
207
|
+
seriesKey
|
|
208
|
+
}, isAdditive);
|
|
185
209
|
}, [
|
|
186
210
|
geometry.rects,
|
|
187
211
|
groups,
|
|
188
|
-
|
|
189
|
-
|
|
212
|
+
onSelect,
|
|
213
|
+
seriesKeyOf,
|
|
214
|
+
toggleSelection
|
|
190
215
|
]);
|
|
216
|
+
const activeBand = interaction.activeIndex === null ? void 0 : geometry.bands[interaction.activeIndex];
|
|
191
217
|
return /* @__PURE__ */ jsxs(ChartFrame, {
|
|
192
|
-
|
|
218
|
+
rootRef: ref,
|
|
219
|
+
plotRef,
|
|
220
|
+
id,
|
|
221
|
+
className,
|
|
222
|
+
style,
|
|
223
|
+
rest,
|
|
193
224
|
dimensions,
|
|
194
|
-
fillWidth,
|
|
195
|
-
fillHeight,
|
|
196
225
|
interaction,
|
|
197
226
|
kind: ChartKind.BAR,
|
|
198
227
|
categoryCount: groups.length,
|
|
199
228
|
ariaLabel,
|
|
200
|
-
|
|
229
|
+
aspectRatio: 2,
|
|
201
230
|
axes: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ChartValueAxis, {
|
|
202
231
|
ticks: valueTicks,
|
|
203
232
|
scale: geometry.valueScale,
|
|
204
233
|
plotWidth,
|
|
205
234
|
plotHeight,
|
|
206
|
-
|
|
235
|
+
insetLeft: dimensions.insets.left,
|
|
207
236
|
formatter: formatAxisValue,
|
|
208
|
-
|
|
209
|
-
title: valueAxisTitle
|
|
237
|
+
title: axisLabels?.value
|
|
210
238
|
}), /* @__PURE__ */ jsx(ChartCategoryAxis, {
|
|
211
239
|
labels: categoryKeys,
|
|
212
240
|
positions: categoryPositions,
|
|
213
241
|
step: categoryStep,
|
|
214
242
|
plotWidth,
|
|
215
243
|
plotHeight,
|
|
244
|
+
orientation: Orientation.HORIZONTAL,
|
|
245
|
+
insetLeft: dimensions.insets.left,
|
|
216
246
|
formatter: formatLabel,
|
|
217
|
-
|
|
218
|
-
title: categoryAxisTitle
|
|
247
|
+
title: axisLabels?.category
|
|
219
248
|
})] }),
|
|
220
|
-
|
|
249
|
+
hasTooltip,
|
|
221
250
|
buildCategoryTooltip,
|
|
222
|
-
|
|
223
|
-
tooltipMaxItems,
|
|
251
|
+
renderTooltip,
|
|
224
252
|
categoryTargets,
|
|
225
253
|
markTargets,
|
|
226
|
-
onCategorySelect: onSelect
|
|
227
|
-
onMarkSelect: onSelect
|
|
254
|
+
onCategorySelect: onSelect || isFilterable ? handleCategorySelect : void 0,
|
|
255
|
+
onMarkSelect: onSelect || isFilterable ? handleMarkSelect : void 0,
|
|
228
256
|
anchorHalfWidth: categoryStep / 2,
|
|
229
257
|
isEmpty,
|
|
230
258
|
isLoading,
|
|
231
|
-
|
|
232
|
-
|
|
259
|
+
placeholder,
|
|
260
|
+
hasLegend,
|
|
261
|
+
formatCategoryKey: formatLabel,
|
|
233
262
|
legendItems,
|
|
234
|
-
|
|
263
|
+
legendPlacement: ChartLegendPlacement.BOTTOM,
|
|
264
|
+
legendSwatch: ChartLegendSwatch.SQUARE,
|
|
265
|
+
tooltipSwatch: ChartLegendSwatch.SQUARE,
|
|
235
266
|
children: [
|
|
236
|
-
geometry.bands.filter((band) => interaction.selectedCategoryIndices.has(band.groupIndex)).map((band) => /* @__PURE__ */ jsx(
|
|
267
|
+
geometry.bands.filter((band) => interaction.selectedCategoryIndices.has(band.groupIndex)).map((band) => /* @__PURE__ */ jsx("rect", {
|
|
237
268
|
x: band.x,
|
|
238
269
|
y: band.y,
|
|
239
270
|
width: band.width,
|
|
240
271
|
height: band.height,
|
|
241
|
-
|
|
272
|
+
className: cx(CHART_CURSOR_BAND_CSS, CHART_CURSOR_BAND_SELECTED_CSS)
|
|
242
273
|
}, `selected:${band.groupIndex}`)),
|
|
243
|
-
|
|
274
|
+
activeBand && /* @__PURE__ */ jsx("rect", {
|
|
244
275
|
x: activeBand.x,
|
|
245
276
|
y: activeBand.y,
|
|
246
277
|
width: activeBand.width,
|
|
247
|
-
height: activeBand.height
|
|
278
|
+
height: activeBand.height,
|
|
279
|
+
className: "gx-ChartPrimitives-CHART_CURSOR_BAND_CSS-c1iaray"
|
|
248
280
|
}),
|
|
249
|
-
geometry.rects.map((rect) => /* @__PURE__ */ jsx(
|
|
281
|
+
geometry.rects.map((rect) => /* @__PURE__ */ jsx("path", {
|
|
250
282
|
d: roundedRectPath(rect.x, rect.y, rect.width, rect.height, rect.radius, rect.corners),
|
|
251
|
-
|
|
252
|
-
"data-state": interaction.getMarkState({
|
|
283
|
+
className: cx(CHART_BAR_CSS, CHART_MARK_STATE_TO_CSS_MAP[interaction.getMarkState({
|
|
253
284
|
categoryIndex: rect.groupIndex,
|
|
254
|
-
seriesKey:
|
|
255
|
-
})
|
|
285
|
+
seriesKey: seriesKeyOf(rect)
|
|
286
|
+
})]),
|
|
287
|
+
style: { "--gx-chart-mark-color": rect.color.color }
|
|
256
288
|
}, rect.id))
|
|
257
289
|
]
|
|
258
290
|
});
|
|
259
|
-
}
|
|
291
|
+
}
|
|
292
|
+
var BarChartForwarded = forwardRef(BarChartInner);
|
|
293
|
+
BarChartForwarded.displayName = "BarChart";
|
|
294
|
+
/** Vertical bars over a categorical x-axis: grouped, stacked, or both. */
|
|
295
|
+
var BarChart = BarChartForwarded;
|
|
260
296
|
//#endregion
|
|
261
|
-
export { BarChart as default };
|
|
297
|
+
export { BarChartNormalization, BarChart as default };
|
|
@@ -1,53 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { ChartLabelFormatter, ChartValueFormatter } from "./types";
|
|
3
|
-
/**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* Neither axis draws a domain line or tick marks — the grid lines carry the
|
|
7
|
-
* structure, and the one at zero is what makes bars read as resting on a
|
|
8
|
-
* baseline rather than floating.
|
|
9
|
-
*/
|
|
10
|
-
interface ChartValueAxisProps {
|
|
1
|
+
import { Orientation } from "../theme/enums.js";
|
|
2
|
+
import type { ChartLabelFormatter, ChartValueFormatter } from "./types.js";
|
|
3
|
+
/** @internal Props of `ChartValueAxis`. */
|
|
4
|
+
export interface ChartValueAxisProps {
|
|
5
|
+
/** Tick values. */
|
|
11
6
|
ticks: number[];
|
|
12
|
-
/**
|
|
7
|
+
/** Tick value → y in plot coordinates. */
|
|
13
8
|
scale: (value: number) => number;
|
|
9
|
+
/** Plot width (grid line length). */
|
|
14
10
|
plotWidth: number;
|
|
15
|
-
/**
|
|
16
|
-
* The chart's left margin. The label box is this minus the tick gap, so the
|
|
17
|
-
* axis follows the margin instead of hardcoding an offset — a custom margin
|
|
18
|
-
* used to push these labels outside the viewport.
|
|
19
|
-
*/
|
|
20
|
-
marginLeft: number;
|
|
21
|
-
/** Needed to centre a rotated axis title along the gutter. */
|
|
11
|
+
/** Plot height (centers the rotated title). */
|
|
22
12
|
plotHeight: number;
|
|
13
|
+
/** The left inset; the label box is this less the title band and the tick gap. */
|
|
14
|
+
insetLeft: number;
|
|
15
|
+
/** Tick label formatter. */
|
|
23
16
|
formatter: ChartValueFormatter;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* Rotated title in the left gutter.
|
|
27
|
-
*
|
|
28
|
-
* Space for it must already be reserved by `addAxisTitleSpace`, since the
|
|
29
|
-
* margin is resolved before this renders.
|
|
30
|
-
*/
|
|
31
|
-
title?: string;
|
|
17
|
+
/** Rotated title in the left gutter (`axisLabels.value`). */
|
|
18
|
+
title?: string | undefined;
|
|
32
19
|
}
|
|
33
|
-
|
|
34
|
-
|
|
20
|
+
/** @internal Grid hairlines at every tick, tick labels, and the value axis title. */
|
|
21
|
+
export declare function ChartValueAxis({ ticks, scale, plotWidth, plotHeight, insetLeft, formatter, title, }: ChartValueAxisProps): import("react").JSX.Element;
|
|
22
|
+
/** @internal Props of `ChartCategoryAxis`. */
|
|
23
|
+
export interface ChartCategoryAxisProps {
|
|
24
|
+
/** Raw category labels. */
|
|
35
25
|
labels: string[];
|
|
36
|
-
/**
|
|
26
|
+
/** Leading edge of each category's slot (left for `HORIZONTAL`, top for `VERTICAL`), plot coordinates. */
|
|
37
27
|
positions: number[];
|
|
38
|
-
/**
|
|
28
|
+
/** Size of one category slot along the axis. */
|
|
39
29
|
step: number;
|
|
40
|
-
/**
|
|
30
|
+
/** Plot width. */
|
|
41
31
|
plotWidth: number;
|
|
32
|
+
/** Plot height. */
|
|
42
33
|
plotHeight: number;
|
|
34
|
+
/** `HORIZONTAL` under the plot; `VERTICAL` beside it (Heatmap rows). */
|
|
35
|
+
orientation: Orientation;
|
|
36
|
+
/** The left inset: the `VERTICAL` label gutter; for `HORIZONTAL`, how far an end label may run left of the plot. */
|
|
37
|
+
insetLeft?: number;
|
|
38
|
+
/** Label formatter. */
|
|
43
39
|
formatter: ChartLabelFormatter;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* Title below the tick labels.
|
|
47
|
-
*
|
|
48
|
-
* Space for it must already be reserved by `addAxisTitleSpace`.
|
|
49
|
-
*/
|
|
50
|
-
title?: string;
|
|
40
|
+
/** Category axis title (`axisLabels.category`). */
|
|
41
|
+
title?: string | undefined;
|
|
51
42
|
}
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
/**
|
|
44
|
+
* @internal Category labels with `AUTO` thinning: every label that fits, otherwise every nth
|
|
45
|
+
* (a skipped label is still inferable from its neighbours; a clipped one carries nothing). A
|
|
46
|
+
* rendered label may spread over the run it stands for.
|
|
47
|
+
*/
|
|
48
|
+
export declare function ChartCategoryAxis({ labels, positions, step, plotWidth, plotHeight, orientation, insetLeft, formatter, title, }: ChartCategoryAxisProps): import("react").JSX.Element;
|