@galaxy-io/dls 1.6.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -50
- package/biome/index.json +74 -0
- package/biome/plugins/no-hex-literal.grit +20 -0
- package/biome/plugins/no-inline-style.grit +13 -0
- package/biome/plugins/no-margin.grit +9 -0
- package/biome/plugins/warn/no-hex-literal.grit +23 -0
- package/biome/plugins/warn/no-inline-style.grit +13 -0
- package/biome/plugins/warn/no-margin.grit +9 -0
- package/dist/a11y/FocusScope.d.ts +44 -0
- package/dist/a11y/FocusScope.js +229 -0
- package/dist/a11y/VisuallyHidden.d.ts +21 -0
- package/dist/a11y/VisuallyHidden.js +30 -0
- package/dist/avatar/Avatar.d.ts +56 -14
- package/dist/avatar/Avatar.js +250 -96
- package/dist/avatar/AvatarGroup.d.ts +43 -0
- package/dist/avatar/AvatarGroup.js +153 -0
- package/dist/backgrounds/GridBackground.d.ts +48 -0
- package/dist/backgrounds/GridBackground.js +146 -0
- package/dist/beacons/Beacon.d.ts +86 -22
- package/dist/beacons/Beacon.js +170 -47
- package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
- package/dist/brand/GalaxyFilamentWordmark.js +39 -0
- package/dist/brand/GalaxyLogomark.d.ts +26 -0
- package/dist/brand/GalaxyLogomark.js +41 -0
- package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
- package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
- package/dist/brand/GalaxyWordmark.d.ts +30 -0
- package/dist/brand/GalaxyWordmark.js +63 -0
- package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
- package/dist/brand/brandMark.d.ts +26 -0
- package/dist/brand/brandMark.js +35 -0
- package/dist/buttons/Button.d.ts +148 -59
- package/dist/buttons/Button.js +437 -227
- package/dist/buttons/ButtonGroup.d.ts +38 -0
- package/dist/buttons/ButtonGroup.js +68 -0
- package/dist/buttons/CopyButton.d.ts +77 -0
- package/dist/buttons/CopyButton.js +65 -0
- package/dist/charts/AreaChart.d.ts +49 -0
- package/dist/charts/AreaChart.js +31 -0
- package/dist/charts/BarChart.d.ts +54 -67
- package/dist/charts/BarChart.js +136 -116
- package/dist/charts/ChartAxis.d.ts +35 -40
- package/dist/charts/ChartAxis.js +114 -90
- package/dist/charts/ChartCategoryTargets.d.ts +12 -26
- package/dist/charts/ChartCategoryTargets.js +32 -20
- package/dist/charts/ChartFrame.d.ts +69 -116
- package/dist/charts/ChartFrame.js +253 -119
- package/dist/charts/ChartGroupProvider.d.ts +30 -41
- package/dist/charts/ChartGroupProvider.js +20 -7
- package/dist/charts/ChartLegend.d.ts +27 -48
- package/dist/charts/ChartLegend.js +206 -125
- package/dist/charts/ChartMarkTargets.d.ts +12 -28
- package/dist/charts/ChartMarkTargets.js +33 -20
- package/dist/charts/ChartPrimitives.d.ts +50 -305
- package/dist/charts/ChartPrimitives.js +65 -413
- package/dist/charts/ChartTooltip.d.ts +20 -26
- package/dist/charts/ChartTooltip.js +77 -40
- package/dist/charts/Heatmap.d.ts +35 -0
- package/dist/charts/Heatmap.js +295 -0
- package/dist/charts/LineChart.d.ts +54 -47
- package/dist/charts/LineChart.js +159 -117
- package/dist/charts/PieChart.d.ts +32 -53
- package/dist/charts/PieChart.js +149 -135
- package/dist/charts/Sparkline.d.ts +107 -0
- package/dist/charts/Sparkline.js +244 -0
- package/dist/charts/StatChart.d.ts +37 -13
- package/dist/charts/StatChart.js +82 -35
- package/dist/charts/barChartGeometry.d.ts +138 -86
- package/dist/charts/barChartGeometry.js +122 -101
- package/dist/charts/barChartLegend.d.ts +14 -18
- package/dist/charts/barChartLegend.js +18 -13
- package/dist/charts/chartFormat.d.ts +12 -18
- package/dist/charts/chartFormat.js +20 -52
- package/dist/charts/chartPalette.d.ts +33 -0
- package/dist/charts/chartPalette.js +68 -0
- package/dist/charts/chartScales.d.ts +41 -108
- package/dist/charts/chartScales.js +62 -128
- package/dist/charts/constants.d.ts +96 -256
- package/dist/charts/constants.js +105 -275
- package/dist/charts/heatmapGeometry.d.ts +95 -0
- package/dist/charts/heatmapGeometry.js +155 -0
- package/dist/charts/lineChartGeometry.d.ts +108 -58
- package/dist/charts/lineChartGeometry.js +120 -78
- package/dist/charts/pieChartGeometry.d.ts +66 -40
- package/dist/charts/pieChartGeometry.js +68 -38
- package/dist/charts/types.d.ts +197 -466
- package/dist/charts/types.js +55 -144
- package/dist/charts/useCartesianChartLayout.d.ts +28 -59
- package/dist/charts/useCartesianChartLayout.js +47 -32
- package/dist/charts/useChartDimensions.d.ts +19 -40
- package/dist/charts/useChartDimensions.js +40 -56
- package/dist/charts/useChartFormatters.d.ts +6 -15
- package/dist/charts/useChartFormatters.js +4 -9
- package/dist/charts/useChartInteraction.d.ts +47 -116
- package/dist/charts/useChartInteraction.js +95 -71
- package/dist/charts/useChartTooltipPosition.d.ts +29 -39
- package/dist/charts/useChartTooltipPosition.js +14 -5
- package/dist/charts/useSeriesColorResolver.d.ts +11 -33
- package/dist/charts/useSeriesColorResolver.js +19 -12
- package/dist/chips/Chip.d.ts +155 -44
- package/dist/chips/Chip.js +329 -155
- package/dist/chips/ChipGroup.d.ts +53 -0
- package/dist/chips/ChipGroup.js +98 -0
- package/dist/drawer/Drawer.d.ts +81 -17
- package/dist/drawer/Drawer.js +370 -65
- package/dist/dropdown/Dropdown.d.ts +80 -63
- package/dist/dropdown/Dropdown.js +127 -129
- package/dist/editor/CodeEditor.d.ts +119 -40
- package/dist/editor/CodeEditor.js +490 -400
- package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
- package/dist/editor/CodeEditorReactWidget.js +28 -21
- package/dist/feedback/Alert.d.ts +49 -0
- package/dist/feedback/Alert.js +172 -0
- package/dist/feedback/EmptyState.d.ts +39 -0
- package/dist/feedback/EmptyState.js +109 -0
- package/dist/feedback/ProgressBar.d.ts +125 -0
- package/dist/feedback/ProgressBar.js +183 -0
- package/dist/feedback/ProgressCircle.d.ts +99 -0
- package/dist/feedback/ProgressCircle.js +187 -0
- package/dist/feedback/Skeleton.d.ts +69 -0
- package/dist/feedback/Skeleton.js +130 -0
- package/dist/feedback/Spinner.d.ts +63 -0
- package/dist/feedback/Spinner.js +141 -0
- package/dist/fonts.css +70 -0
- package/dist/hooks/internal/useIsClient.d.ts +2 -0
- package/dist/hooks/internal/useIsClient.js +14 -0
- package/dist/hooks/useClipboard.d.ts +19 -0
- package/dist/hooks/useClipboard.js +45 -0
- package/dist/hooks/useControlledOpenState.d.ts +21 -0
- package/dist/hooks/useControlledOpenState.js +19 -0
- package/dist/hooks/useControlledState.d.ts +19 -0
- package/dist/hooks/useControlledState.js +22 -0
- package/dist/hooks/useDebouncedValue.d.ts +14 -0
- package/dist/hooks/useDebouncedValue.js +33 -0
- package/dist/hooks/useDisclosure.d.ts +26 -0
- package/dist/hooks/useDisclosure.js +36 -0
- package/dist/hooks/useDismiss.d.ts +23 -27
- package/dist/hooks/useDismiss.js +39 -27
- package/dist/hooks/useElementClientSize.d.ts +10 -10
- package/dist/hooks/useElementClientSize.js +8 -11
- package/dist/hooks/useElementWidth.d.ts +6 -13
- package/dist/hooks/useElementWidth.js +6 -14
- package/dist/hooks/useField.d.ts +47 -0
- package/dist/hooks/useField.js +40 -0
- package/dist/hooks/useHotkey.d.ts +77 -0
- package/dist/hooks/useHotkey.js +246 -0
- package/dist/hooks/useIsMac.d.ts +12 -0
- package/dist/hooks/useIsMac.js +27 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
- package/dist/hooks/useLocalStorage.d.ts +28 -0
- package/dist/hooks/useLocalStorage.js +145 -0
- package/dist/hooks/useMediaQuery.d.ts +11 -0
- package/dist/hooks/useMediaQuery.js +23 -0
- package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
- package/dist/hooks/usePrefersReducedMotion.js +25 -0
- package/dist/hooks/useResize.d.ts +42 -62
- package/dist/hooks/useResize.js +43 -31
- package/dist/icons/Icon.d.ts +64 -37
- package/dist/icons/Icon.js +96 -37
- package/dist/icons/internal/IconSlot.d.ts +10 -0
- package/dist/icons/internal/IconSlot.js +32 -0
- package/dist/inputs/CheckboxGroup.d.ts +115 -0
- package/dist/inputs/CheckboxGroup.js +183 -0
- package/dist/inputs/CheckboxInput.d.ts +98 -28
- package/dist/inputs/CheckboxInput.js +218 -88
- package/dist/inputs/ColorInput.d.ts +115 -29
- package/dist/inputs/ColorInput.js +748 -326
- package/dist/inputs/CopyInput.d.ts +49 -20
- package/dist/inputs/CopyInput.js +57 -49
- package/dist/inputs/CronInput.d.ts +94 -0
- package/dist/inputs/CronInput.js +618 -0
- package/dist/inputs/DateInput.d.ts +175 -28
- package/dist/inputs/DateInput.js +1109 -451
- package/dist/inputs/DurationInput.d.ts +101 -0
- package/dist/inputs/DurationInput.js +441 -0
- package/dist/inputs/Field.d.ts +75 -0
- package/dist/inputs/Field.js +247 -0
- package/dist/inputs/Fieldset.d.ts +53 -0
- package/dist/inputs/Fieldset.js +149 -0
- package/dist/inputs/FileInput.d.ts +110 -0
- package/dist/inputs/FileInput.js +476 -0
- package/dist/inputs/Input.d.ts +148 -187
- package/dist/inputs/Input.js +339 -259
- package/dist/inputs/KeyValueInput.d.ts +120 -0
- package/dist/inputs/KeyValueInput.js +383 -0
- package/dist/inputs/MultiSelectInput.d.ts +165 -54
- package/dist/inputs/MultiSelectInput.js +175 -559
- package/dist/inputs/NumberInput.d.ts +65 -9
- package/dist/inputs/NumberInput.js +197 -40
- package/dist/inputs/PasswordInput.d.ts +17 -12
- package/dist/inputs/PasswordInput.js +33 -33
- package/dist/inputs/PinInput.d.ts +117 -0
- package/dist/inputs/PinInput.js +364 -0
- package/dist/inputs/RadioGroup.d.ts +115 -0
- package/dist/inputs/RadioGroup.js +179 -0
- package/dist/inputs/RadioInput.d.ts +87 -24
- package/dist/inputs/RadioInput.js +182 -95
- package/dist/inputs/SearchInput.d.ts +66 -0
- package/dist/inputs/SearchInput.js +156 -0
- package/dist/inputs/SelectInput.d.ts +195 -55
- package/dist/inputs/SelectInput.js +1308 -446
- package/dist/inputs/SliderInput.d.ts +150 -30
- package/dist/inputs/SliderInput.js +441 -186
- package/dist/inputs/SwitchInput.d.ts +109 -0
- package/dist/inputs/SwitchInput.js +248 -0
- package/dist/inputs/TagInput.d.ts +117 -0
- package/dist/inputs/TagInput.js +408 -0
- package/dist/inputs/TextAreaInput.d.ts +146 -44
- package/dist/inputs/TextAreaInput.js +292 -198
- package/dist/inputs/TextInput.d.ts +4 -13
- package/dist/inputs/TextInput.js +13 -48
- package/dist/inputs/ToggleInput.d.ts +120 -22
- package/dist/inputs/ToggleInput.js +262 -116
- package/dist/inputs/internal/bareField.d.ts +18 -0
- package/dist/inputs/internal/bareField.js +38 -0
- package/dist/inputs/internal/devWarn.d.ts +7 -0
- package/dist/inputs/internal/devWarn.js +30 -0
- package/dist/inputs/internal/fieldFrame.d.ts +34 -0
- package/dist/inputs/internal/fieldFrame.js +64 -0
- package/dist/inputs/internal/fieldWiring.d.ts +50 -0
- package/dist/inputs/internal/fieldWiring.js +38 -0
- package/dist/inputs/internal/innerButton.d.ts +2 -0
- package/dist/inputs/internal/innerButton.js +24 -0
- package/dist/inputs/internal/ownField.d.ts +45 -0
- package/dist/inputs/internal/ownField.js +58 -0
- package/dist/inputs/internal/predicates.d.ts +9 -0
- package/dist/inputs/internal/predicates.js +11 -0
- package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
- package/dist/inputs/internal/useComboboxPopover.js +92 -0
- package/dist/json/JsonViewer.d.ts +62 -0
- package/dist/json/JsonViewer.js +483 -0
- package/dist/layout/Box.d.ts +87 -0
- package/dist/layout/Box.js +109 -0
- package/dist/layout/Divider.d.ts +25 -0
- package/dist/layout/Divider.js +70 -0
- package/dist/layout/Flex.d.ts +139 -0
- package/dist/layout/Flex.js +165 -0
- package/dist/layout/FlexItem.d.ts +72 -0
- package/dist/layout/FlexItem.js +84 -0
- package/dist/layout/Grid.d.ts +140 -0
- package/dist/layout/Grid.js +178 -0
- package/dist/layout/Portal.d.ts +29 -0
- package/dist/layout/Portal.js +27 -0
- package/dist/layout/ResizablePanels.d.ts +88 -0
- package/dist/layout/ResizablePanels.js +198 -0
- package/dist/layout/ResizeHandle.d.ts +48 -0
- package/dist/layout/ResizeHandle.js +143 -0
- package/dist/layout/ScrollArea.d.ts +30 -0
- package/dist/layout/ScrollArea.js +138 -0
- package/dist/links/Link.d.ts +101 -1
- package/dist/links/Link.js +166 -4
- package/dist/lists/BulletedList.d.ts +25 -7
- package/dist/lists/BulletedList.js +72 -27
- package/dist/lists/DescriptionList.d.ts +91 -0
- package/dist/lists/DescriptionList.js +147 -0
- package/dist/menu/ContextMenu.d.ts +64 -0
- package/dist/menu/ContextMenu.js +34 -0
- package/dist/menu/Menu.d.ts +280 -0
- package/dist/menu/Menu.js +1003 -0
- package/dist/modal/ConfirmDialog.d.ts +55 -0
- package/dist/modal/ConfirmDialog.js +151 -0
- package/dist/modal/Modal.d.ts +64 -14
- package/dist/modal/Modal.js +189 -48
- package/dist/navigation/Breadcrumbs.d.ts +65 -0
- package/dist/navigation/Breadcrumbs.js +243 -0
- package/dist/navigation/CommandPalette.d.ts +83 -0
- package/dist/navigation/CommandPalette.js +509 -0
- package/dist/navigation/Pagination.d.ts +87 -0
- package/dist/navigation/Pagination.js +300 -0
- package/dist/navigation/SidebarNav.d.ts +107 -0
- package/dist/navigation/SidebarNav.js +341 -0
- package/dist/navigation/Stepper.d.ts +52 -0
- package/dist/navigation/Stepper.js +207 -0
- package/dist/navigation/Tabs.d.ts +113 -0
- package/dist/navigation/Tabs.js +543 -0
- package/dist/navigation/Topbar.d.ts +20 -0
- package/dist/navigation/Topbar.js +62 -0
- package/dist/overlay/OverlayProvider.d.ts +28 -32
- package/dist/overlay/OverlayProvider.js +42 -93
- package/dist/overlay/useOverlay.d.ts +88 -12
- package/dist/overlay/useOverlay.js +220 -43
- package/dist/overlays/Popover.d.ts +114 -0
- package/dist/overlays/Popover.js +389 -0
- package/dist/shapes/Circle.d.ts +84 -8
- package/dist/shapes/Circle.js +122 -20
- package/dist/shapes/Square.d.ts +84 -8
- package/dist/shapes/Square.js +123 -20
- package/dist/styles/mixins.d.ts +35 -0
- package/dist/styles/mixins.js +60 -0
- package/dist/styles.css +1 -202
- package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
- package/dist/table/InfiniteSpreadsheet.js +762 -225
- package/dist/table/InfiniteTable.d.ts +116 -14
- package/dist/table/InfiniteTable.js +287 -429
- package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
- package/dist/table/SpreadsheetCellEditor.js +163 -84
- package/dist/table/TableCore.d.ts +252 -0
- package/dist/table/TableCore.js +1077 -0
- package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
- package/dist/table/VirtualizedInfiniteTable.js +280 -219
- package/dist/table/types.d.ts +66 -244
- package/dist/table/types.js +0 -51
- package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
- package/dist/table/useInfiniteScrollSentinel.js +38 -30
- package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
- package/dist/table/useSpreadsheetCellNavigation.js +141 -0
- package/dist/table/useTableColumnLayout.d.ts +90 -25
- package/dist/table/useTableColumnLayout.js +255 -50
- package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
- package/dist/table/useTableKeyboardNavigation.js +95 -71
- package/dist/table/useTableRowSelection.d.ts +24 -25
- package/dist/table/useTableRowSelection.js +57 -84
- package/dist/table/useTableVirtualizer.d.ts +20 -0
- package/dist/table/useTableVirtualizer.js +48 -0
- package/dist/text/Bold.d.ts +5 -6
- package/dist/text/Bold.js +16 -15
- package/dist/text/Code.d.ts +5 -6
- package/dist/text/Code.js +16 -25
- package/dist/text/CodeBlock.d.ts +77 -0
- package/dist/text/CodeBlock.js +373 -0
- package/dist/text/EditableText.d.ts +55 -15
- package/dist/text/EditableText.js +153 -135
- package/dist/text/Ellipsis.d.ts +34 -8
- package/dist/text/Ellipsis.js +55 -23
- package/dist/text/Kbd.d.ts +72 -0
- package/dist/text/Kbd.js +284 -0
- package/dist/text/MarkdownText.d.ts +27 -10
- package/dist/text/MarkdownText.js +317 -300
- package/dist/text/RequiredMarker.d.ts +17 -5
- package/dist/text/RequiredMarker.js +34 -36
- package/dist/text/Selectable.d.ts +5 -6
- package/dist/text/Selectable.js +16 -13
- package/dist/text/Span.d.ts +82 -0
- package/dist/text/Span.js +115 -0
- package/dist/text/Text.d.ts +128 -41
- package/dist/text/Text.js +209 -76
- package/dist/theme/GalaxyProvider.d.ts +75 -0
- package/dist/theme/GalaxyProvider.js +223 -0
- package/dist/theme/ThemeSwitcher.d.ts +52 -0
- package/dist/theme/ThemeSwitcher.js +94 -0
- package/dist/theme/enums.d.ts +118 -0
- package/dist/theme/enums.js +144 -0
- package/dist/theme/tokens/dark.d.ts +2 -0
- package/dist/theme/tokens/dark.js +275 -0
- package/dist/theme/tokens/generate.d.ts +15 -0
- package/dist/theme/tokens/generate.js +47 -0
- package/dist/theme/tokens/light.d.ts +2 -0
- package/dist/theme/tokens/light.js +274 -0
- package/dist/theme/tokens/palette.d.ts +14 -0
- package/dist/theme/tokens/palette.js +153 -0
- package/dist/theme/tokens/scales.d.ts +26 -0
- package/dist/theme/tokens/scales.js +154 -0
- package/dist/theme/tokens/t.d.ts +3 -0
- package/dist/theme/tokens/t.js +25 -0
- package/dist/theme/tokens/types.d.ts +189 -0
- package/dist/theme/tokens/types.js +0 -0
- package/dist/theme/useGalaxyTheme.d.ts +46 -0
- package/dist/theme/useGalaxyTheme.js +36 -0
- package/dist/theme/useInverseScope.d.ts +18 -0
- package/dist/theme/useInverseScope.js +33 -0
- package/dist/three/GalaxyLogomark3D.d.ts +46 -0
- package/dist/three/GalaxyLogomark3D.js +134 -0
- package/dist/three/assets/galaxy-logomark.js +4 -0
- package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
- package/dist/three/galaxyLogomark3DScene.js +165 -0
- package/dist/timeline/Timeline.d.ts +99 -0
- package/dist/timeline/Timeline.js +269 -0
- package/dist/toast/Toast.d.ts +43 -19
- package/dist/toast/Toast.js +130 -89
- package/dist/toast/ToastProvider.d.ts +23 -23
- package/dist/toast/ToastProvider.js +298 -101
- package/dist/toast/ToastViewport.d.ts +12 -0
- package/dist/toast/ToastViewport.js +210 -0
- package/dist/toast/useToast.d.ts +139 -5
- package/dist/toast/useToast.js +15 -13
- package/dist/tokens.css +654 -0
- package/dist/tooltip/Tooltip.d.ts +64 -44
- package/dist/tooltip/Tooltip.js +280 -73
- package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
- package/dist/tooltip/internal/LazyTooltip.js +53 -0
- package/dist/transform/Fade.d.ts +33 -11
- package/dist/transform/Fade.js +71 -19
- package/dist/transform/Flasher.d.ts +25 -0
- package/dist/transform/Flasher.js +39 -0
- package/dist/transform/Rotate.d.ts +24 -12
- package/dist/transform/Rotate.js +36 -22
- package/dist/transform/ScaleFade.d.ts +36 -11
- package/dist/transform/ScaleFade.js +86 -28
- package/dist/transform/internal/CollapseMotion.d.ts +10 -0
- package/dist/transform/internal/CollapseMotion.js +65 -0
- package/dist/tree/Tree.d.ts +85 -0
- package/dist/tree/Tree.js +387 -0
- package/dist/tree/treeRow.d.ts +39 -0
- package/dist/tree/treeRow.js +75 -0
- package/dist/utils/colors.d.ts +46 -13
- package/dist/utils/colors.js +92 -34
- package/dist/utils/css.d.ts +23 -0
- package/dist/utils/css.js +30 -0
- package/dist/utils/format.d.ts +58 -0
- package/dist/utils/format.js +220 -0
- package/dist/vite/index.d.ts +16 -0
- package/dist/vite/index.js +52 -0
- package/dist/widget/Widget.d.ts +164 -48
- package/dist/widget/Widget.js +335 -96
- package/dist/widget/WidgetGroup.d.ts +36 -0
- package/dist/widget/WidgetGroup.js +103 -0
- package/package.json +851 -157
- package/dist/accordion/Accordion.d.ts +0 -54
- package/dist/accordion/Accordion.js +0 -183
- package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
- package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
- package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
- package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
- package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
- package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
- package/dist/assets/models/galaxy-animation.js +0 -136666
- package/dist/assets/models/galaxy-logomark.js +0 -4
- package/dist/avatar/AvatarShimmer.d.ts +0 -30
- package/dist/avatar/AvatarShimmer.js +0 -22
- package/dist/backgrounds/CellGridBackground.d.ts +0 -24
- package/dist/backgrounds/CellGridBackground.js +0 -44
- package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
- package/dist/backgrounds/CrossGridBackground.js +0 -49
- package/dist/backgrounds/DotGridBackground.d.ts +0 -24
- package/dist/backgrounds/DotGridBackground.js +0 -47
- package/dist/badge/Badge.d.ts +0 -42
- package/dist/badge/Badge.js +0 -99
- package/dist/charts/ChartEmptyState.d.ts +0 -17
- package/dist/charts/ChartEmptyState.js +0 -29
- package/dist/charts/ProgressBar.d.ts +0 -29
- package/dist/charts/ProgressBar.js +0 -65
- package/dist/charts/chartTheme.d.ts +0 -18
- package/dist/charts/chartTheme.js +0 -26
- package/dist/containers/FlexItem.d.ts +0 -50
- package/dist/containers/FlexItem.js +0 -91
- package/dist/containers/FlexWrapper.d.ts +0 -96
- package/dist/containers/FlexWrapper.js +0 -143
- package/dist/containers/GridWrapper.d.ts +0 -79
- package/dist/containers/GridWrapper.js +0 -125
- package/dist/containers/Spacing.d.ts +0 -23
- package/dist/containers/Spacing.js +0 -59
- package/dist/containers/Wrapper.d.ts +0 -26
- package/dist/containers/Wrapper.js +0 -54
- package/dist/dividers/HorizontalDivider.d.ts +0 -7
- package/dist/dividers/HorizontalDivider.js +0 -39
- package/dist/dividers/VerticalDivider.d.ts +0 -6
- package/dist/dividers/VerticalDivider.js +0 -21
- package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
- package/dist/icons/GalaxyFilamentWordmark.js +0 -25
- package/dist/icons/GalaxyLogomark.d.ts +0 -13
- package/dist/icons/GalaxyLogomark.js +0 -27
- package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
- package/dist/icons/GalaxyLogomark3D.js +0 -319
- package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
- package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
- package/dist/icons/GalaxyWordmark.d.ts +0 -11
- package/dist/icons/GalaxyWordmark.js +0 -25
- package/dist/inputs/MultiTextInput.d.ts +0 -32
- package/dist/inputs/MultiTextInput.js +0 -180
- package/dist/inputs/SwitcherInput.d.ts +0 -27
- package/dist/inputs/SwitcherInput.js +0 -64
- package/dist/inputs/hooks.d.ts +0 -10
- package/dist/inputs/hooks.js +0 -22
- package/dist/overlay/constants.d.ts +0 -28
- package/dist/overlay/constants.js +0 -37
- package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
- package/dist/resizable/HorizontalResizeHandle.js +0 -38
- package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
- package/dist/resizable/VerticalResizeHandle.js +0 -39
- package/dist/table/SpreadsheetCell.d.ts +0 -21
- package/dist/table/SpreadsheetCell.js +0 -71
- package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
- package/dist/table/SpreadsheetHeaderCell.js +0 -91
- package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
- package/dist/table/SpreadsheetMenuItem.js +0 -33
- package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
- package/dist/table/SpreadsheetPrimitives.js +0 -105
- package/dist/table/SpreadsheetRow.d.ts +0 -33
- package/dist/table/SpreadsheetRow.js +0 -73
- package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
- package/dist/table/SpreadsheetRowActionCell.js +0 -51
- package/dist/table/TableExpandCell.d.ts +0 -11
- package/dist/table/TableExpandCell.js +0 -24
- package/dist/table/TableExpandedRow.d.ts +0 -16
- package/dist/table/TableExpandedRow.js +0 -77
- package/dist/table/TableHeaderCellContent.d.ts +0 -30
- package/dist/table/TableHeaderCellContent.js +0 -48
- package/dist/table/TablePrimitives.d.ts +0 -313
- package/dist/table/TablePrimitives.js +0 -302
- package/dist/table/TableSelectCell.d.ts +0 -18
- package/dist/table/TableSelectCell.js +0 -27
- package/dist/table/TableStatusRow.d.ts +0 -18
- package/dist/table/TableStatusRow.js +0 -50
- package/dist/table/useSpreadsheetEditing.d.ts +0 -13
- package/dist/table/useSpreadsheetEditing.js +0 -41
- package/dist/table/useTableColumnResize.d.ts +0 -38
- package/dist/table/useTableColumnResize.js +0 -155
- package/dist/table/useTableRowExpansion.d.ts +0 -24
- package/dist/table/useTableRowExpansion.js +0 -62
- package/dist/table/utils.d.ts +0 -50
- package/dist/table/utils.js +0 -78
- package/dist/text/HotKeys.d.ts +0 -30
- package/dist/text/HotKeys.js +0 -74
- package/dist/text/Paragraph.d.ts +0 -33
- package/dist/text/Paragraph.js +0 -83
- package/dist/text/TextShimmer.d.ts +0 -14
- package/dist/text/TextShimmer.js +0 -34
- package/dist/theme/GalaxyTheme.d.ts +0 -67
- package/dist/theme/GalaxyTheme.js +0 -119
- package/dist/theme/constants.d.ts +0 -8
- package/dist/theme/constants.js +0 -38
- package/dist/theme/index.d.ts +0 -6
- package/dist/theme/index.js +0 -7
- package/dist/theme/types.d.ts +0 -195
- package/dist/theme/types.js +0 -10
- package/dist/theme/typography.d.ts +0 -2
- package/dist/theme/typography.js +0 -73
- package/dist/theme/variants/dark.d.ts +0 -2
- package/dist/theme/variants/dark.js +0 -125
- package/dist/theme/variants/light.d.ts +0 -2
- package/dist/theme/variants/light.js +0 -125
- package/dist/toast/ToastContainer.d.ts +0 -10
- package/dist/toast/ToastContainer.js +0 -31
- package/dist/toast/ToastWrapper.d.ts +0 -6
- package/dist/toast/ToastWrapper.js +0 -27
- package/dist/transform/Flash.d.ts +0 -7
- package/dist/transform/Flash.js +0 -18
- package/dist/transform/Spin.d.ts +0 -14
- package/dist/transform/Spin.js +0 -25
- package/dist/utils/linaria.d.ts +0 -1
- package/dist/utils/linaria.js +0 -8
package/dist/charts/types.js
CHANGED
|
@@ -1,178 +1,89 @@
|
|
|
1
1
|
//#region src/charts/types.ts
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* deliberately one-directional: `TMetric` comes from the keys of the `series`
|
|
7
|
-
* record and from nowhere else, with {@link NoInfer} applied to every
|
|
8
|
-
* data-shaped prop.
|
|
9
|
-
*
|
|
10
|
-
* That asymmetry is what makes the guarantees real. Were `TMetric` also
|
|
11
|
-
* inferred from the data, an inline `{ metric: "revenue" }` would widen to
|
|
12
|
-
* `string`, TypeScript would pick the supertype, and every check below would
|
|
13
|
-
* quietly become a no-op — type safety that looks present but is not.
|
|
14
|
-
*
|
|
15
|
-
* ```ts
|
|
16
|
-
* <BarChart
|
|
17
|
-
* series={{
|
|
18
|
-
* revenue: { label: "Revenue" },
|
|
19
|
-
* cost: { label: "Cost" },
|
|
20
|
-
* }}
|
|
21
|
-
* groups={[
|
|
22
|
-
* { label: "Q1", bars: [{ metric: "revenu", components: [] }] },
|
|
23
|
-
* // ^ Type '"revenu"' is not assignable to
|
|
24
|
-
* // type '"revenue" | "cost"'.
|
|
25
|
-
* ]}
|
|
26
|
-
* />
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* The same union then makes aggregates exhaustive, spell-checks legend and
|
|
30
|
-
* ordering props, and narrows callback parameters for `ts-pattern`.
|
|
31
|
-
*/
|
|
32
|
-
/**
|
|
33
|
-
* Semantic color slot for a series, resolved against the active theme at render
|
|
34
|
-
* time by `resolveChartPaletteColor` in `chartTheme.ts`.
|
|
35
|
-
*
|
|
36
|
-
* Deliberately an enum of slots rather than a hex string: consumer data should
|
|
37
|
-
* never carry raw color, and every rendered color has to come from
|
|
38
|
-
* `theme.color.*` so both themes stay correct.
|
|
3
|
+
* Series color slot. Members are canonical color-set names (Constitution
|
|
4
|
+
* III.4). The first eight are the automatic order (purple leads); the rest are for explicit,
|
|
5
|
+
* meaningful assignment only.
|
|
39
6
|
*/
|
|
40
7
|
var ChartPalette = /* @__PURE__ */ function(ChartPalette) {
|
|
8
|
+
/** `text.purple`. First in the automatic order. */
|
|
41
9
|
ChartPalette["PURPLE"] = "PURPLE";
|
|
10
|
+
/** `text.pink`. */
|
|
42
11
|
ChartPalette["PINK"] = "PINK";
|
|
12
|
+
/** `text.blue`. */
|
|
43
13
|
ChartPalette["BLUE"] = "BLUE";
|
|
14
|
+
/** `text.teal`. */
|
|
44
15
|
ChartPalette["TEAL"] = "TEAL";
|
|
16
|
+
/** `text.lime`. */
|
|
45
17
|
ChartPalette["LIME"] = "LIME";
|
|
18
|
+
/** `text.orange`. */
|
|
46
19
|
ChartPalette["ORANGE"] = "ORANGE";
|
|
20
|
+
/** `text.yellow`. */
|
|
47
21
|
ChartPalette["YELLOW"] = "YELLOW";
|
|
22
|
+
/** `text.green`. Last in the automatic order. */
|
|
48
23
|
ChartPalette["GREEN"] = "GREEN";
|
|
49
|
-
|
|
24
|
+
/** `text.success`. Explicit assignment only. */
|
|
25
|
+
ChartPalette["SUCCESS"] = "SUCCESS";
|
|
26
|
+
/** `text.warning`. Explicit assignment only. */
|
|
27
|
+
ChartPalette["WARNING"] = "WARNING";
|
|
28
|
+
/** `text.error` (1.x `RED`). Explicit assignment only. */
|
|
29
|
+
ChartPalette["ERROR"] = "ERROR";
|
|
30
|
+
/** `text.indigo` (no gray in charts). Explicit assignment only. */
|
|
50
31
|
ChartPalette["PRIMARY"] = "PRIMARY";
|
|
32
|
+
/** `text.sky` (no gray in charts). Explicit assignment only. */
|
|
51
33
|
ChartPalette["SECONDARY"] = "SECONDARY";
|
|
34
|
+
/** `text.violet` (no gray in charts). Explicit assignment only. */
|
|
52
35
|
ChartPalette["TERTIARY"] = "TERTIARY";
|
|
53
|
-
ChartPalette["WARNING"] = "WARNING";
|
|
54
36
|
return ChartPalette;
|
|
55
37
|
}({});
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
ChartValueUnit["PLAIN"] = "PLAIN";
|
|
66
|
-
/** Locale currency with no decimals, e.g. `$1,250`. */
|
|
67
|
-
ChartValueUnit["CURRENCY"] = "CURRENCY";
|
|
68
|
-
/** Percentage of a 0–100 value, e.g. `42%`. */
|
|
69
|
-
ChartValueUnit["PERCENT"] = "PERCENT";
|
|
70
|
-
/** Abbreviated magnitude, e.g. `1.3K`, `4.2M`. */
|
|
71
|
-
ChartValueUnit["COMPACT"] = "COMPACT";
|
|
72
|
-
return ChartValueUnit;
|
|
38
|
+
/** How segments between points are drawn (LineChart, AreaChart, Sparkline). 1.x `LineChartCurve`. */
|
|
39
|
+
var ChartCurve = /* @__PURE__ */ function(ChartCurve) {
|
|
40
|
+
/** Straight segments. */
|
|
41
|
+
ChartCurve["LINEAR"] = "LINEAR";
|
|
42
|
+
/** Monotone cubic: smooth without overshooting the data. */
|
|
43
|
+
ChartCurve["SMOOTH"] = "SMOOTH";
|
|
44
|
+
/** Right-angled steps (step-after). */
|
|
45
|
+
ChartCurve["STEP"] = "STEP";
|
|
46
|
+
return ChartCurve;
|
|
73
47
|
}({});
|
|
74
|
-
/**
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
*/
|
|
48
|
+
/** @internal Emphasis of a rendered mark, applied as a `css` class (`CHART_MARK_STATE_TO_CSS_MAP`). */
|
|
49
|
+
var ChartMarkState = /* @__PURE__ */ function(ChartMarkState) {
|
|
50
|
+
/** Full strength: the default, and the engaged category or series. */
|
|
51
|
+
ChartMarkState["ACTIVE"] = "ACTIVE";
|
|
52
|
+
/** Softened: outside the engaged series, the selection, or while loading. */
|
|
53
|
+
ChartMarkState["MUTED"] = "MUTED";
|
|
54
|
+
/** Barely softened: off-category marks where a cursor band already carries the emphasis. */
|
|
55
|
+
ChartMarkState["DIMMED"] = "DIMMED";
|
|
56
|
+
return ChartMarkState;
|
|
57
|
+
}({});
|
|
58
|
+
/** @internal Which chart is rendering; phrases the default accessible name only. */
|
|
81
59
|
var ChartKind = /* @__PURE__ */ function(ChartKind) {
|
|
82
|
-
|
|
60
|
+
/** `LineChart`. */
|
|
83
61
|
ChartKind["LINE"] = "LINE";
|
|
62
|
+
/** `AreaChart`. */
|
|
63
|
+
ChartKind["AREA"] = "AREA";
|
|
64
|
+
/** `BarChart`. */
|
|
65
|
+
ChartKind["BAR"] = "BAR";
|
|
66
|
+
/** `PieChart`. */
|
|
84
67
|
ChartKind["PIE"] = "PIE";
|
|
68
|
+
/** `Heatmap`. */
|
|
69
|
+
ChartKind["HEATMAP"] = "HEATMAP";
|
|
85
70
|
return ChartKind;
|
|
86
71
|
}({});
|
|
87
|
-
/**
|
|
88
|
-
* Where the legend sits relative to the plot.
|
|
89
|
-
*
|
|
90
|
-
* Its own enum rather than a branch on {@link ChartKind}, which promises to be
|
|
91
|
-
* nothing but a label for the accessible name.
|
|
92
|
-
*/
|
|
72
|
+
/** @internal Where the legend sits relative to the plot. */
|
|
93
73
|
var ChartLegendPlacement = /* @__PURE__ */ function(ChartLegendPlacement) {
|
|
94
|
-
/** Beneath the plot,
|
|
74
|
+
/** Beneath the plot, one line (cartesian charts, Heatmap). */
|
|
95
75
|
ChartLegendPlacement["BOTTOM"] = "BOTTOM";
|
|
96
|
-
/** Beside the plot,
|
|
76
|
+
/** Beside the plot, one column, vertically centered (PieChart). */
|
|
97
77
|
ChartLegendPlacement["RIGHT"] = "RIGHT";
|
|
98
78
|
return ChartLegendPlacement;
|
|
99
79
|
}({});
|
|
100
|
-
/**
|
|
101
|
-
var ChartCategoryLabelMode = /* @__PURE__ */ function(ChartCategoryLabelMode) {
|
|
102
|
-
/** Render every label that fits; otherwise show every nth. The default. */
|
|
103
|
-
ChartCategoryLabelMode["AUTO"] = "AUTO";
|
|
104
|
-
/** Render every label, ellipsizing any that overflow its slot. */
|
|
105
|
-
ChartCategoryLabelMode["TRUNCATE"] = "TRUNCATE";
|
|
106
|
-
/** Render every label unconditionally, overlap included. */
|
|
107
|
-
ChartCategoryLabelMode["ALL"] = "ALL";
|
|
108
|
-
return ChartCategoryLabelMode;
|
|
109
|
-
}({});
|
|
110
|
-
/**
|
|
111
|
-
* Emphasis level of a rendered mark.
|
|
112
|
-
*
|
|
113
|
-
* Travels to the DOM as a `data-state` attribute rather than a styled-component
|
|
114
|
-
* prop: `@linaria/react` skips prop filtering entirely for SVG tags (its
|
|
115
|
-
* `allTagsSet` is built with a missing spread, so `has('rect')` is false and
|
|
116
|
-
* `propsAsIs` turns on), which would forward a `$`-prefixed prop straight to the
|
|
117
|
-
* DOM and trigger a React warning.
|
|
118
|
-
*/
|
|
119
|
-
var ChartMarkState = /* @__PURE__ */ function(ChartMarkState) {
|
|
120
|
-
/** Full strength — the default, and the hovered category. */
|
|
121
|
-
ChartMarkState["ACTIVE"] = "active";
|
|
122
|
-
/** Softened, for marks outside the engaged series or category. */
|
|
123
|
-
ChartMarkState["MUTED"] = "muted";
|
|
124
|
-
/**
|
|
125
|
-
* Barely softened — a whisper of {@link MUTED}.
|
|
126
|
-
*
|
|
127
|
-
* Used where another affordance already carries the emphasis and strong
|
|
128
|
-
* muting would be a second, louder voice: BarChart's category axis dims
|
|
129
|
-
* like this because the cursor band is the highlight.
|
|
130
|
-
*/
|
|
131
|
-
ChartMarkState["DIMMED"] = "dimmed";
|
|
132
|
-
return ChartMarkState;
|
|
133
|
-
}({});
|
|
134
|
-
/** Which pair of a rectangle's corners carries the radius. */
|
|
135
|
-
var BarCorners = /* @__PURE__ */ function(BarCorners) {
|
|
136
|
-
/** Cap for a bar growing up from the baseline. */
|
|
137
|
-
BarCorners["TOP"] = "TOP";
|
|
138
|
-
/** Cap for a bar growing down from the baseline. */
|
|
139
|
-
BarCorners["BOTTOM"] = "BOTTOM";
|
|
140
|
-
/** Interior stack segment — square on both ends. */
|
|
141
|
-
BarCorners["NONE"] = "NONE";
|
|
142
|
-
return BarCorners;
|
|
143
|
-
}({});
|
|
144
|
-
/**
|
|
145
|
-
* How bar values are scaled before rendering.
|
|
146
|
-
*
|
|
147
|
-
* Note there is no grouped-vs-stacked mode: with the group → bar → component
|
|
148
|
-
* hierarchy, several `bars` in a group render side by side and several
|
|
149
|
-
* `components` in a bar render on top of each other, so a chart can be grouped
|
|
150
|
-
* and stacked at the same time.
|
|
151
|
-
*/
|
|
152
|
-
var BarChartNormalization = /* @__PURE__ */ function(BarChartNormalization) {
|
|
153
|
-
/** Plot raw values. */
|
|
154
|
-
BarChartNormalization["NONE"] = "NONE";
|
|
155
|
-
/** Scale each bar's components to fill the axis — a 100% stacked chart. */
|
|
156
|
-
BarChartNormalization["PERCENT"] = "PERCENT";
|
|
157
|
-
return BarChartNormalization;
|
|
158
|
-
}({});
|
|
159
|
-
/** How the segments between points are interpolated. */
|
|
160
|
-
var LineChartCurve = /* @__PURE__ */ function(LineChartCurve) {
|
|
161
|
-
/** Straight segments. */
|
|
162
|
-
LineChartCurve["LINEAR"] = "LINEAR";
|
|
163
|
-
/** Monotone cubic — smooth without overshooting the data. */
|
|
164
|
-
LineChartCurve["SMOOTH"] = "SMOOTH";
|
|
165
|
-
/** Right-angled steps. */
|
|
166
|
-
LineChartCurve["STEP"] = "STEP";
|
|
167
|
-
return LineChartCurve;
|
|
168
|
-
}({});
|
|
169
|
-
/** Which shape a category's hit target is drawn as. */
|
|
80
|
+
/** @internal Shape of a hit target. */
|
|
170
81
|
var ChartTargetShape = /* @__PURE__ */ function(ChartTargetShape) {
|
|
171
|
-
/**
|
|
82
|
+
/** A rectangle: a category band or a bar. */
|
|
172
83
|
ChartTargetShape["RECT"] = "RECT";
|
|
173
|
-
/**
|
|
84
|
+
/** A path: an arc outline, redrawn transparent. */
|
|
174
85
|
ChartTargetShape["PATH"] = "PATH";
|
|
175
86
|
return ChartTargetShape;
|
|
176
87
|
}({});
|
|
177
88
|
//#endregion
|
|
178
|
-
export {
|
|
89
|
+
export { ChartCurve, ChartKind, ChartLegendPlacement, ChartMarkState, ChartPalette, ChartTargetShape };
|
|
@@ -1,70 +1,39 @@
|
|
|
1
|
-
import type { ChartLabelFormatter, ChartMargin, ChartValueDomain, ChartValueFormatter, ChartValueUnit } from "./types";
|
|
2
|
-
import type { ChartDimensions } from "./useChartDimensions";
|
|
3
1
|
/**
|
|
4
|
-
* Everything a cartesian chart resolves
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* ```
|
|
9
|
-
* domain → ticks → left margin → dimensions → plot size → geometry
|
|
10
|
-
* ```
|
|
11
|
-
*
|
|
12
|
-
* The gutter has to fit the tick labels, the ticks come from the domain, and
|
|
13
|
-
* the domain comes from the data — none of which needs the plot. Everything
|
|
14
|
-
* after `geometry` does need it, which is why this hook stops there rather than
|
|
15
|
-
* trying to own the whole chart: the geometry builders are generic over the
|
|
16
|
-
* chart's own key types, and threading those through here would buy nothing.
|
|
17
|
-
*
|
|
18
|
-
* Deliberately **not generic**. `getBarValueDomain` and `getLineValueDomain`
|
|
19
|
-
* have already erased the key types by the time they return an extent, so
|
|
20
|
-
* nothing in this phase needs them.
|
|
2
|
+
* @internal Everything a cartesian chart resolves before its geometry, in the one order that
|
|
3
|
+
* works: measured box → plot height (the top and bottom insets do not depend on the ticks) →
|
|
4
|
+
* domain and ticks thinned to that height → left gutter (fits the tick labels) → plot → geometry.
|
|
5
|
+
* Not generic: the value extent has already erased the series keys.
|
|
21
6
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
7
|
+
import { type RefObject } from "react";
|
|
8
|
+
import type { ChartAxisLabels, ChartLabelFormatter, ChartValueDomain, ChartValueFormatter } from "./types.js";
|
|
9
|
+
import { type ChartDimensions } from "./useChartDimensions.js";
|
|
10
|
+
/** @internal Inputs of `useCartesianChartLayout`. */
|
|
11
|
+
export interface UseCartesianChartLayoutOptions {
|
|
12
|
+
/** The plot box to measure. */
|
|
13
|
+
plotRef: RefObject<HTMLDivElement>;
|
|
14
|
+
/** The data's own extent, before any override or nicing. */
|
|
30
15
|
rawDomain: [number, number];
|
|
31
|
-
valueDomain
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
valueFormatter?: ChartValueFormatter;
|
|
40
|
-
labelFormatter?: ChartLabelFormatter;
|
|
41
|
-
/**
|
|
42
|
-
* Rewrites the resolved value formatter for the axis alone.
|
|
43
|
-
*
|
|
44
|
-
* Takes the resolved formatter rather than replacing it, because the only
|
|
45
|
-
* caller — a percent-normalized bar chart — falls back to it whenever the
|
|
46
|
-
* consumer asked for something specific. Applies to the tick labels *and* the
|
|
47
|
-
* gutter estimate, which is the point: sizing the gutter with a different
|
|
48
|
-
* formatter than the one that renders into it is how a gutter ends up too
|
|
49
|
-
* narrow for its own labels.
|
|
50
|
-
*
|
|
51
|
-
* Must be stable; memoize it at the call site.
|
|
52
|
-
*/
|
|
53
|
-
deriveAxisFormatter?: (formatValue: ChartValueFormatter) => ChartValueFormatter;
|
|
54
|
-
valueAxisTitle?: string;
|
|
55
|
-
categoryAxisTitle?: string;
|
|
16
|
+
/** The `valueDomain` prop. */
|
|
17
|
+
valueDomain?: Partial<ChartValueDomain> | undefined;
|
|
18
|
+
/** The `valueFormatter` prop. */
|
|
19
|
+
valueFormatter?: ChartValueFormatter | undefined;
|
|
20
|
+
/** The `labelFormatter` prop. */
|
|
21
|
+
labelFormatter?: ChartLabelFormatter | undefined;
|
|
22
|
+
/** The `axisLabels` prop. */
|
|
23
|
+
axisLabels?: ChartAxisLabels | undefined;
|
|
56
24
|
}
|
|
25
|
+
/** @internal The resolved layout. */
|
|
57
26
|
export interface CartesianChartLayout {
|
|
27
|
+
/** Measured plot box, insets and plot size. */
|
|
58
28
|
dimensions: ChartDimensions;
|
|
59
|
-
/** Override applied, zero included, degenerate widened, `nice()`
|
|
29
|
+
/** Override applied, zero included, degenerate widened, `nice()`d. */
|
|
60
30
|
domain: [number, number];
|
|
31
|
+
/** Value tick values. */
|
|
61
32
|
valueTicks: number[];
|
|
62
|
-
/**
|
|
33
|
+
/** Values: ticks, tooltip rows, announcements. */
|
|
63
34
|
formatValue: ChartValueFormatter;
|
|
64
|
-
/** Category names
|
|
35
|
+
/** Category names: the axis and the tooltip heading. */
|
|
65
36
|
formatLabel: ChartLabelFormatter;
|
|
66
|
-
/** Axis ticks. Identical to `formatValue` unless `deriveAxisFormatter` said otherwise. */
|
|
67
|
-
formatAxisValue: ChartValueFormatter;
|
|
68
37
|
}
|
|
69
|
-
|
|
70
|
-
export {};
|
|
38
|
+
/** @internal Resolves a cartesian chart's domain, ticks, insets, dimensions and formatters. */
|
|
39
|
+
export declare function useCartesianChartLayout({ plotRef, rawDomain, valueDomain, valueFormatter, labelFormatter, axisLabels, }: UseCartesianChartLayoutOptions): CartesianChartLayout;
|
|
@@ -1,55 +1,70 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { estimateValueAxisInset, getCartesianInsets, resolveValueAxis } from "./chartScales.js";
|
|
2
|
+
import { useElementClientSize } from "../hooks/useElementClientSize.js";
|
|
3
|
+
import { toChartDimensions } from "./useChartDimensions.js";
|
|
2
4
|
import { useChartFormatters } from "./useChartFormatters.js";
|
|
3
|
-
import { useChartDimensions } from "./useChartDimensions.js";
|
|
4
5
|
import { useMemo } from "react";
|
|
5
6
|
//#region src/charts/useCartesianChartLayout.ts
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
/**
|
|
8
|
+
* @internal Everything a cartesian chart resolves before its geometry, in the one order that
|
|
9
|
+
* works: measured box → plot height (the top and bottom insets do not depend on the ticks) →
|
|
10
|
+
* domain and ticks thinned to that height → left gutter (fits the tick labels) → plot → geometry.
|
|
11
|
+
* Not generic: the value extent has already erased the series keys.
|
|
12
|
+
*/
|
|
13
|
+
/** @internal Resolves a cartesian chart's domain, ticks, insets, dimensions and formatters. */
|
|
14
|
+
function useCartesianChartLayout({ plotRef, rawDomain, valueDomain, valueFormatter, labelFormatter, axisLabels }) {
|
|
15
|
+
const { formatValue, formatLabel } = useChartFormatters(valueFormatter, labelFormatter);
|
|
16
|
+
const { width: measuredWidth, height: measuredHeight } = useElementClientSize(plotRef);
|
|
17
|
+
const width = measuredWidth ?? 0;
|
|
18
|
+
const height = measuredHeight ?? 0;
|
|
19
|
+
const hasValueTitle = Boolean(axisLabels?.value);
|
|
20
|
+
const hasCategoryTitle = Boolean(axisLabels?.category);
|
|
21
|
+
const { top, bottom } = getCartesianInsets(0, {
|
|
22
|
+
hasValueTitle,
|
|
23
|
+
hasCategoryTitle
|
|
11
24
|
});
|
|
12
|
-
const
|
|
25
|
+
const plotHeight = height > 0 ? Math.max(0, height - top - bottom) : 0;
|
|
13
26
|
const [rawMin, rawMax] = rawDomain;
|
|
14
|
-
const
|
|
27
|
+
const domainMin = valueDomain?.min;
|
|
28
|
+
const domainMax = valueDomain?.max;
|
|
29
|
+
const tickCount = valueDomain?.tickCount;
|
|
30
|
+
const { domain, ticks: valueTicks } = useMemo(() => resolveValueAxis([rawMin, rawMax], {
|
|
31
|
+
...domainMin !== void 0 && { min: domainMin },
|
|
32
|
+
...domainMax !== void 0 && { max: domainMax },
|
|
33
|
+
...tickCount !== void 0 && { tickCount }
|
|
34
|
+
}, plotHeight), [
|
|
15
35
|
rawMin,
|
|
16
36
|
rawMax,
|
|
17
|
-
|
|
37
|
+
domainMin,
|
|
38
|
+
domainMax,
|
|
39
|
+
tickCount,
|
|
40
|
+
plotHeight
|
|
18
41
|
]);
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
42
|
+
const tickInset = useMemo(() => estimateValueAxisInset(valueTicks, formatValue), [valueTicks, formatValue]);
|
|
43
|
+
const insets = useMemo(() => getCartesianInsets(tickInset, {
|
|
44
|
+
hasValueTitle,
|
|
45
|
+
hasCategoryTitle
|
|
46
|
+
}), [
|
|
47
|
+
tickInset,
|
|
48
|
+
hasValueTitle,
|
|
49
|
+
hasCategoryTitle
|
|
50
|
+
]);
|
|
51
|
+
const dimensions = useMemo(() => toChartDimensions(width, height, insets), [
|
|
22
52
|
width,
|
|
23
53
|
height,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
aspectRatio,
|
|
27
|
-
margin: addAxisTitleSpace(useMemo(() => ({
|
|
28
|
-
...margin,
|
|
29
|
-
left: margin?.left ?? estimateValueAxisMargin(valueTicks, formatAxisValue)
|
|
30
|
-
}), [
|
|
31
|
-
margin,
|
|
32
|
-
valueTicks,
|
|
33
|
-
formatAxisValue
|
|
34
|
-
]), {
|
|
35
|
-
hasValueTitle: Boolean(valueAxisTitle),
|
|
36
|
-
hasCategoryTitle: Boolean(categoryAxisTitle)
|
|
37
|
-
})
|
|
38
|
-
});
|
|
54
|
+
insets
|
|
55
|
+
]);
|
|
39
56
|
return useMemo(() => ({
|
|
40
57
|
dimensions,
|
|
41
58
|
domain,
|
|
42
59
|
valueTicks,
|
|
43
60
|
formatValue,
|
|
44
|
-
formatLabel
|
|
45
|
-
formatAxisValue
|
|
61
|
+
formatLabel
|
|
46
62
|
}), [
|
|
47
63
|
dimensions,
|
|
48
64
|
domain,
|
|
49
65
|
valueTicks,
|
|
50
66
|
formatValue,
|
|
51
|
-
formatLabel
|
|
52
|
-
formatAxisValue
|
|
67
|
+
formatLabel
|
|
53
68
|
]);
|
|
54
69
|
}
|
|
55
70
|
//#endregion
|
|
@@ -1,47 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*/
|
|
10
|
-
containerRef: React.RefObject<HTMLElement | null>;
|
|
11
|
-
width?: number;
|
|
12
|
-
height?: number;
|
|
13
|
-
fillWidth?: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* Take the height from the measured box rather than a prop.
|
|
16
|
-
*
|
|
17
|
-
* Requires an ancestor with a definite height — see {@link ChartSize}. The
|
|
18
|
-
* measured element is the *plot box*, not the chart root, so the legend is
|
|
19
|
-
* already excluded by flexbox and nothing here has to subtract it.
|
|
20
|
-
*/
|
|
21
|
-
fillHeight?: boolean;
|
|
22
|
-
aspectRatio?: number;
|
|
23
|
-
margin?: Partial<ChartMargin>;
|
|
24
|
-
/**
|
|
25
|
-
* Fallback for whichever fields `margin` leaves out.
|
|
26
|
-
*
|
|
27
|
-
* Radial charts pass their own, since the cartesian default reserves gutters
|
|
28
|
-
* for axes they do not draw. Merged per field, so a caller's partial margin
|
|
29
|
-
* lands on top of *this* rather than reverting the chart to the cartesian
|
|
30
|
-
* defaults.
|
|
31
|
-
*/
|
|
32
|
-
defaultMargin?: ChartMargin;
|
|
33
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @internal Measures a chart's plot box. The chart fills its parent (or takes its 2:1
|
|
3
|
+
* aspect-ratio fallback through CSS), so the box already has its size before measurement lands
|
|
4
|
+
* and nothing shifts. SSR-safe: `useElementClientSize` measures in an effect.
|
|
5
|
+
*/
|
|
6
|
+
import { type RefObject } from "react";
|
|
7
|
+
import type { ChartInsets } from "./chartScales.js";
|
|
8
|
+
/** @internal The measured plot box and the plot inside it. */
|
|
34
9
|
export interface ChartDimensions {
|
|
10
|
+
/** Plot box width (client pixels). */
|
|
35
11
|
width: number;
|
|
12
|
+
/** Plot box height (client pixels). */
|
|
36
13
|
height: number;
|
|
14
|
+
/** Plot width: the box less the left and right insets, never negative. */
|
|
37
15
|
plotWidth: number;
|
|
16
|
+
/** Plot height: the box less the top and bottom insets, never negative. */
|
|
38
17
|
plotHeight: number;
|
|
39
|
-
|
|
40
|
-
|
|
18
|
+
/** Space between the box edge and the plot. */
|
|
19
|
+
insets: ChartInsets;
|
|
20
|
+
/** `false` until the first measurement with a usable size; marks render only after it. */
|
|
41
21
|
isMeasured: boolean;
|
|
42
|
-
/** Handed to the plot box so it reserves space before measurement lands. */
|
|
43
|
-
reservedHeight?: number;
|
|
44
|
-
reservedAspectRatio?: number;
|
|
45
22
|
}
|
|
46
|
-
|
|
47
|
-
export
|
|
23
|
+
/** @internal The plot inside a measured `width` × `height` box (pure: the hook below, without measuring). */
|
|
24
|
+
export declare function toChartDimensions(width: number, height: number, insets: ChartInsets): ChartDimensions;
|
|
25
|
+
/** @internal Measures `plotRef` (the plot box, not the root: the legend is a sibling). */
|
|
26
|
+
export declare function useChartDimensions(plotRef: RefObject<HTMLElement | null>, insets: ChartInsets): ChartDimensions;
|
|
@@ -1,63 +1,47 @@
|
|
|
1
1
|
import { useElementClientSize } from "../hooks/useElementClientSize.js";
|
|
2
|
-
import {
|
|
3
|
-
import { getPlotDimensions, resolveMargin } from "./chartScales.js";
|
|
4
|
-
import { useEffect, useMemo } from "react";
|
|
2
|
+
import { useMemo } from "react";
|
|
5
3
|
//#region src/charts/useChartDimensions.ts
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (!fillHeight || measuredHeight === void 0 || measuredHeight > 0) return;
|
|
40
|
-
console.warn("[@galaxy-io/dls] A chart with `fillHeight` measured 0px tall and will not render. `fillHeight` takes its height from the container, so an ancestor needs a definite height — an explicit height, a flex or grid track, or absolute positioning. Use `height` or `aspectRatio` instead if the container is sized by its content.");
|
|
41
|
-
}, [fillHeight, measuredHeight]);
|
|
42
|
-
return useMemo(() => ({
|
|
43
|
-
width: resolvedWidth,
|
|
44
|
-
height: resolvedHeight,
|
|
45
|
-
plotWidth,
|
|
46
|
-
plotHeight,
|
|
47
|
-
margin,
|
|
48
|
-
isMeasured: resolvedWidth > 0 && resolvedHeight > 0,
|
|
49
|
-
reservedHeight: fillHeight || aspectRatio ? void 0 : height,
|
|
50
|
-
reservedAspectRatio: fillHeight ? void 0 : aspectRatio
|
|
4
|
+
/**
|
|
5
|
+
* @internal Measures a chart's plot box. The chart fills its parent (or takes its 2:1
|
|
6
|
+
* aspect-ratio fallback through CSS), so the box already has its size before measurement lands
|
|
7
|
+
* and nothing shifts. SSR-safe: `useElementClientSize` measures in an effect.
|
|
8
|
+
*/
|
|
9
|
+
/** @internal The plot inside a measured `width` × `height` box (pure: the hook below, without measuring). */
|
|
10
|
+
function toChartDimensions(width, height, insets) {
|
|
11
|
+
const { top, right, bottom, left } = insets;
|
|
12
|
+
return {
|
|
13
|
+
width,
|
|
14
|
+
height,
|
|
15
|
+
plotWidth: Math.max(0, width - left - right),
|
|
16
|
+
plotHeight: Math.max(0, height - top - bottom),
|
|
17
|
+
insets: {
|
|
18
|
+
top,
|
|
19
|
+
right,
|
|
20
|
+
bottom,
|
|
21
|
+
left
|
|
22
|
+
},
|
|
23
|
+
isMeasured: width > 0 && height > 0
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** @internal Measures `plotRef` (the plot box, not the root: the legend is a sibling). */
|
|
27
|
+
function useChartDimensions(plotRef, insets) {
|
|
28
|
+
const { width: measuredWidth, height: measuredHeight } = useElementClientSize(plotRef);
|
|
29
|
+
const width = measuredWidth ?? 0;
|
|
30
|
+
const height = measuredHeight ?? 0;
|
|
31
|
+
const { top, right, bottom, left } = insets;
|
|
32
|
+
return useMemo(() => toChartDimensions(width, height, {
|
|
33
|
+
top,
|
|
34
|
+
right,
|
|
35
|
+
bottom,
|
|
36
|
+
left
|
|
51
37
|
}), [
|
|
52
|
-
|
|
53
|
-
resolvedHeight,
|
|
54
|
-
plotWidth,
|
|
55
|
-
plotHeight,
|
|
56
|
-
margin,
|
|
57
|
-
aspectRatio,
|
|
38
|
+
width,
|
|
58
39
|
height,
|
|
59
|
-
|
|
40
|
+
top,
|
|
41
|
+
right,
|
|
42
|
+
bottom,
|
|
43
|
+
left
|
|
60
44
|
]);
|
|
61
45
|
}
|
|
62
46
|
//#endregion
|
|
63
|
-
export { useChartDimensions };
|
|
47
|
+
export { toChartDimensions, useChartDimensions };
|
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
import type { ChartLabelFormatter, ChartValueFormatter
|
|
2
|
-
|
|
3
|
-
valueFormatter?: ChartValueFormatter;
|
|
4
|
-
valueUnit?: ChartValueUnit;
|
|
5
|
-
labelFormatter?: ChartLabelFormatter;
|
|
6
|
-
}
|
|
1
|
+
import type { ChartLabelFormatter, ChartValueFormatter } from "./types.js";
|
|
2
|
+
/** @internal The resolved formatters. */
|
|
7
3
|
export interface ChartFormatters {
|
|
4
|
+
/** Values: axis ticks, tooltip rows, announcements. */
|
|
8
5
|
formatValue: ChartValueFormatter;
|
|
6
|
+
/** Category names: the axis and the tooltip heading. */
|
|
9
7
|
formatLabel: ChartLabelFormatter;
|
|
10
8
|
}
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
* Doing this centrally is what keeps axis ticks, value labels and tooltip rows
|
|
15
|
-
* from drifting apart — the recurring failure when each call site formats for
|
|
16
|
-
* itself.
|
|
17
|
-
*/
|
|
18
|
-
export declare function useChartFormatters({ valueFormatter, valueUnit, labelFormatter, }: UseChartFormattersOptions): ChartFormatters;
|
|
19
|
-
export {};
|
|
9
|
+
/** @internal Resolves `valueFormatter` (default `formatNumber(v, { precision: 2 })`) and `labelFormatter` (identity). */
|
|
10
|
+
export declare function useChartFormatters(valueFormatter?: ChartValueFormatter, labelFormatter?: ChartLabelFormatter): ChartFormatters;
|