@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.
Files changed (538) hide show
  1. package/README.md +47 -50
  2. package/biome/index.json +74 -0
  3. package/biome/plugins/no-hex-literal.grit +20 -0
  4. package/biome/plugins/no-inline-style.grit +13 -0
  5. package/biome/plugins/no-margin.grit +9 -0
  6. package/biome/plugins/warn/no-hex-literal.grit +23 -0
  7. package/biome/plugins/warn/no-inline-style.grit +13 -0
  8. package/biome/plugins/warn/no-margin.grit +9 -0
  9. package/dist/a11y/FocusScope.d.ts +44 -0
  10. package/dist/a11y/FocusScope.js +229 -0
  11. package/dist/a11y/VisuallyHidden.d.ts +21 -0
  12. package/dist/a11y/VisuallyHidden.js +30 -0
  13. package/dist/avatar/Avatar.d.ts +56 -14
  14. package/dist/avatar/Avatar.js +250 -96
  15. package/dist/avatar/AvatarGroup.d.ts +43 -0
  16. package/dist/avatar/AvatarGroup.js +153 -0
  17. package/dist/backgrounds/GridBackground.d.ts +48 -0
  18. package/dist/backgrounds/GridBackground.js +146 -0
  19. package/dist/beacons/Beacon.d.ts +86 -22
  20. package/dist/beacons/Beacon.js +170 -47
  21. package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
  22. package/dist/brand/GalaxyFilamentWordmark.js +39 -0
  23. package/dist/brand/GalaxyLogomark.d.ts +26 -0
  24. package/dist/brand/GalaxyLogomark.js +41 -0
  25. package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
  26. package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
  27. package/dist/brand/GalaxyWordmark.d.ts +30 -0
  28. package/dist/brand/GalaxyWordmark.js +63 -0
  29. package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
  30. package/dist/brand/brandMark.d.ts +26 -0
  31. package/dist/brand/brandMark.js +35 -0
  32. package/dist/buttons/Button.d.ts +148 -59
  33. package/dist/buttons/Button.js +437 -227
  34. package/dist/buttons/ButtonGroup.d.ts +38 -0
  35. package/dist/buttons/ButtonGroup.js +68 -0
  36. package/dist/buttons/CopyButton.d.ts +77 -0
  37. package/dist/buttons/CopyButton.js +65 -0
  38. package/dist/charts/AreaChart.d.ts +49 -0
  39. package/dist/charts/AreaChart.js +31 -0
  40. package/dist/charts/BarChart.d.ts +54 -67
  41. package/dist/charts/BarChart.js +136 -116
  42. package/dist/charts/ChartAxis.d.ts +35 -40
  43. package/dist/charts/ChartAxis.js +114 -90
  44. package/dist/charts/ChartCategoryTargets.d.ts +12 -26
  45. package/dist/charts/ChartCategoryTargets.js +32 -20
  46. package/dist/charts/ChartFrame.d.ts +69 -116
  47. package/dist/charts/ChartFrame.js +253 -119
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +27 -48
  51. package/dist/charts/ChartLegend.js +206 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +33 -20
  54. package/dist/charts/ChartPrimitives.d.ts +50 -305
  55. package/dist/charts/ChartPrimitives.js +65 -413
  56. package/dist/charts/ChartTooltip.d.ts +20 -26
  57. package/dist/charts/ChartTooltip.js +77 -40
  58. package/dist/charts/Heatmap.d.ts +35 -0
  59. package/dist/charts/Heatmap.js +295 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +159 -117
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +149 -135
  64. package/dist/charts/Sparkline.d.ts +107 -0
  65. package/dist/charts/Sparkline.js +244 -0
  66. package/dist/charts/StatChart.d.ts +37 -13
  67. package/dist/charts/StatChart.js +82 -35
  68. package/dist/charts/barChartGeometry.d.ts +138 -86
  69. package/dist/charts/barChartGeometry.js +122 -101
  70. package/dist/charts/barChartLegend.d.ts +14 -18
  71. package/dist/charts/barChartLegend.js +18 -13
  72. package/dist/charts/chartFormat.d.ts +12 -18
  73. package/dist/charts/chartFormat.js +20 -52
  74. package/dist/charts/chartPalette.d.ts +33 -0
  75. package/dist/charts/chartPalette.js +68 -0
  76. package/dist/charts/chartScales.d.ts +41 -108
  77. package/dist/charts/chartScales.js +62 -128
  78. package/dist/charts/constants.d.ts +96 -256
  79. package/dist/charts/constants.js +105 -275
  80. package/dist/charts/heatmapGeometry.d.ts +95 -0
  81. package/dist/charts/heatmapGeometry.js +155 -0
  82. package/dist/charts/lineChartGeometry.d.ts +108 -58
  83. package/dist/charts/lineChartGeometry.js +120 -78
  84. package/dist/charts/pieChartGeometry.d.ts +66 -40
  85. package/dist/charts/pieChartGeometry.js +68 -38
  86. package/dist/charts/types.d.ts +197 -466
  87. package/dist/charts/types.js +55 -144
  88. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  89. package/dist/charts/useCartesianChartLayout.js +47 -32
  90. package/dist/charts/useChartDimensions.d.ts +19 -40
  91. package/dist/charts/useChartDimensions.js +40 -56
  92. package/dist/charts/useChartFormatters.d.ts +6 -15
  93. package/dist/charts/useChartFormatters.js +4 -9
  94. package/dist/charts/useChartInteraction.d.ts +47 -116
  95. package/dist/charts/useChartInteraction.js +95 -71
  96. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  97. package/dist/charts/useChartTooltipPosition.js +14 -5
  98. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  99. package/dist/charts/useSeriesColorResolver.js +19 -12
  100. package/dist/chips/Chip.d.ts +155 -44
  101. package/dist/chips/Chip.js +329 -155
  102. package/dist/chips/ChipGroup.d.ts +53 -0
  103. package/dist/chips/ChipGroup.js +98 -0
  104. package/dist/drawer/Drawer.d.ts +81 -17
  105. package/dist/drawer/Drawer.js +370 -65
  106. package/dist/dropdown/Dropdown.d.ts +80 -63
  107. package/dist/dropdown/Dropdown.js +127 -129
  108. package/dist/editor/CodeEditor.d.ts +119 -40
  109. package/dist/editor/CodeEditor.js +490 -400
  110. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  111. package/dist/editor/CodeEditorReactWidget.js +28 -21
  112. package/dist/feedback/Alert.d.ts +49 -0
  113. package/dist/feedback/Alert.js +172 -0
  114. package/dist/feedback/EmptyState.d.ts +39 -0
  115. package/dist/feedback/EmptyState.js +109 -0
  116. package/dist/feedback/ProgressBar.d.ts +125 -0
  117. package/dist/feedback/ProgressBar.js +183 -0
  118. package/dist/feedback/ProgressCircle.d.ts +99 -0
  119. package/dist/feedback/ProgressCircle.js +187 -0
  120. package/dist/feedback/Skeleton.d.ts +69 -0
  121. package/dist/feedback/Skeleton.js +130 -0
  122. package/dist/feedback/Spinner.d.ts +63 -0
  123. package/dist/feedback/Spinner.js +141 -0
  124. package/dist/fonts.css +70 -0
  125. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  126. package/dist/hooks/internal/useIsClient.js +14 -0
  127. package/dist/hooks/useClipboard.d.ts +19 -0
  128. package/dist/hooks/useClipboard.js +45 -0
  129. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  130. package/dist/hooks/useControlledOpenState.js +19 -0
  131. package/dist/hooks/useControlledState.d.ts +19 -0
  132. package/dist/hooks/useControlledState.js +22 -0
  133. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  134. package/dist/hooks/useDebouncedValue.js +33 -0
  135. package/dist/hooks/useDisclosure.d.ts +26 -0
  136. package/dist/hooks/useDisclosure.js +36 -0
  137. package/dist/hooks/useDismiss.d.ts +23 -27
  138. package/dist/hooks/useDismiss.js +39 -27
  139. package/dist/hooks/useElementClientSize.d.ts +10 -10
  140. package/dist/hooks/useElementClientSize.js +8 -11
  141. package/dist/hooks/useElementWidth.d.ts +6 -13
  142. package/dist/hooks/useElementWidth.js +6 -14
  143. package/dist/hooks/useField.d.ts +47 -0
  144. package/dist/hooks/useField.js +40 -0
  145. package/dist/hooks/useHotkey.d.ts +77 -0
  146. package/dist/hooks/useHotkey.js +246 -0
  147. package/dist/hooks/useIsMac.d.ts +12 -0
  148. package/dist/hooks/useIsMac.js +27 -0
  149. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  150. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  151. package/dist/hooks/useLocalStorage.d.ts +28 -0
  152. package/dist/hooks/useLocalStorage.js +145 -0
  153. package/dist/hooks/useMediaQuery.d.ts +11 -0
  154. package/dist/hooks/useMediaQuery.js +23 -0
  155. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  156. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  157. package/dist/hooks/useResize.d.ts +42 -62
  158. package/dist/hooks/useResize.js +43 -31
  159. package/dist/icons/Icon.d.ts +64 -37
  160. package/dist/icons/Icon.js +96 -37
  161. package/dist/icons/internal/IconSlot.d.ts +10 -0
  162. package/dist/icons/internal/IconSlot.js +32 -0
  163. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  164. package/dist/inputs/CheckboxGroup.js +183 -0
  165. package/dist/inputs/CheckboxInput.d.ts +98 -28
  166. package/dist/inputs/CheckboxInput.js +218 -88
  167. package/dist/inputs/ColorInput.d.ts +115 -29
  168. package/dist/inputs/ColorInput.js +748 -326
  169. package/dist/inputs/CopyInput.d.ts +49 -20
  170. package/dist/inputs/CopyInput.js +57 -49
  171. package/dist/inputs/CronInput.d.ts +94 -0
  172. package/dist/inputs/CronInput.js +618 -0
  173. package/dist/inputs/DateInput.d.ts +175 -28
  174. package/dist/inputs/DateInput.js +1109 -451
  175. package/dist/inputs/DurationInput.d.ts +101 -0
  176. package/dist/inputs/DurationInput.js +441 -0
  177. package/dist/inputs/Field.d.ts +75 -0
  178. package/dist/inputs/Field.js +247 -0
  179. package/dist/inputs/Fieldset.d.ts +53 -0
  180. package/dist/inputs/Fieldset.js +149 -0
  181. package/dist/inputs/FileInput.d.ts +110 -0
  182. package/dist/inputs/FileInput.js +476 -0
  183. package/dist/inputs/Input.d.ts +148 -187
  184. package/dist/inputs/Input.js +339 -259
  185. package/dist/inputs/KeyValueInput.d.ts +120 -0
  186. package/dist/inputs/KeyValueInput.js +383 -0
  187. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  188. package/dist/inputs/MultiSelectInput.js +175 -559
  189. package/dist/inputs/NumberInput.d.ts +65 -9
  190. package/dist/inputs/NumberInput.js +197 -40
  191. package/dist/inputs/PasswordInput.d.ts +17 -12
  192. package/dist/inputs/PasswordInput.js +33 -33
  193. package/dist/inputs/PinInput.d.ts +117 -0
  194. package/dist/inputs/PinInput.js +364 -0
  195. package/dist/inputs/RadioGroup.d.ts +115 -0
  196. package/dist/inputs/RadioGroup.js +179 -0
  197. package/dist/inputs/RadioInput.d.ts +87 -24
  198. package/dist/inputs/RadioInput.js +182 -95
  199. package/dist/inputs/SearchInput.d.ts +66 -0
  200. package/dist/inputs/SearchInput.js +156 -0
  201. package/dist/inputs/SelectInput.d.ts +195 -55
  202. package/dist/inputs/SelectInput.js +1308 -446
  203. package/dist/inputs/SliderInput.d.ts +150 -30
  204. package/dist/inputs/SliderInput.js +441 -186
  205. package/dist/inputs/SwitchInput.d.ts +109 -0
  206. package/dist/inputs/SwitchInput.js +248 -0
  207. package/dist/inputs/TagInput.d.ts +117 -0
  208. package/dist/inputs/TagInput.js +408 -0
  209. package/dist/inputs/TextAreaInput.d.ts +146 -44
  210. package/dist/inputs/TextAreaInput.js +292 -198
  211. package/dist/inputs/TextInput.d.ts +4 -13
  212. package/dist/inputs/TextInput.js +13 -48
  213. package/dist/inputs/ToggleInput.d.ts +120 -22
  214. package/dist/inputs/ToggleInput.js +262 -116
  215. package/dist/inputs/internal/bareField.d.ts +18 -0
  216. package/dist/inputs/internal/bareField.js +38 -0
  217. package/dist/inputs/internal/devWarn.d.ts +7 -0
  218. package/dist/inputs/internal/devWarn.js +30 -0
  219. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  220. package/dist/inputs/internal/fieldFrame.js +64 -0
  221. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  222. package/dist/inputs/internal/fieldWiring.js +38 -0
  223. package/dist/inputs/internal/innerButton.d.ts +2 -0
  224. package/dist/inputs/internal/innerButton.js +24 -0
  225. package/dist/inputs/internal/ownField.d.ts +45 -0
  226. package/dist/inputs/internal/ownField.js +58 -0
  227. package/dist/inputs/internal/predicates.d.ts +9 -0
  228. package/dist/inputs/internal/predicates.js +11 -0
  229. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  230. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  231. package/dist/json/JsonViewer.d.ts +62 -0
  232. package/dist/json/JsonViewer.js +483 -0
  233. package/dist/layout/Box.d.ts +87 -0
  234. package/dist/layout/Box.js +109 -0
  235. package/dist/layout/Divider.d.ts +25 -0
  236. package/dist/layout/Divider.js +70 -0
  237. package/dist/layout/Flex.d.ts +139 -0
  238. package/dist/layout/Flex.js +165 -0
  239. package/dist/layout/FlexItem.d.ts +72 -0
  240. package/dist/layout/FlexItem.js +84 -0
  241. package/dist/layout/Grid.d.ts +140 -0
  242. package/dist/layout/Grid.js +178 -0
  243. package/dist/layout/Portal.d.ts +29 -0
  244. package/dist/layout/Portal.js +27 -0
  245. package/dist/layout/ResizablePanels.d.ts +88 -0
  246. package/dist/layout/ResizablePanels.js +198 -0
  247. package/dist/layout/ResizeHandle.d.ts +48 -0
  248. package/dist/layout/ResizeHandle.js +143 -0
  249. package/dist/layout/ScrollArea.d.ts +30 -0
  250. package/dist/layout/ScrollArea.js +138 -0
  251. package/dist/links/Link.d.ts +101 -1
  252. package/dist/links/Link.js +166 -4
  253. package/dist/lists/BulletedList.d.ts +25 -7
  254. package/dist/lists/BulletedList.js +72 -27
  255. package/dist/lists/DescriptionList.d.ts +91 -0
  256. package/dist/lists/DescriptionList.js +147 -0
  257. package/dist/menu/ContextMenu.d.ts +64 -0
  258. package/dist/menu/ContextMenu.js +34 -0
  259. package/dist/menu/Menu.d.ts +280 -0
  260. package/dist/menu/Menu.js +1003 -0
  261. package/dist/modal/ConfirmDialog.d.ts +55 -0
  262. package/dist/modal/ConfirmDialog.js +151 -0
  263. package/dist/modal/Modal.d.ts +64 -14
  264. package/dist/modal/Modal.js +189 -48
  265. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  266. package/dist/navigation/Breadcrumbs.js +243 -0
  267. package/dist/navigation/CommandPalette.d.ts +83 -0
  268. package/dist/navigation/CommandPalette.js +509 -0
  269. package/dist/navigation/Pagination.d.ts +87 -0
  270. package/dist/navigation/Pagination.js +300 -0
  271. package/dist/navigation/SidebarNav.d.ts +107 -0
  272. package/dist/navigation/SidebarNav.js +341 -0
  273. package/dist/navigation/Stepper.d.ts +52 -0
  274. package/dist/navigation/Stepper.js +207 -0
  275. package/dist/navigation/Tabs.d.ts +113 -0
  276. package/dist/navigation/Tabs.js +543 -0
  277. package/dist/navigation/Topbar.d.ts +20 -0
  278. package/dist/navigation/Topbar.js +62 -0
  279. package/dist/overlay/OverlayProvider.d.ts +28 -32
  280. package/dist/overlay/OverlayProvider.js +42 -93
  281. package/dist/overlay/useOverlay.d.ts +88 -12
  282. package/dist/overlay/useOverlay.js +220 -43
  283. package/dist/overlays/Popover.d.ts +114 -0
  284. package/dist/overlays/Popover.js +389 -0
  285. package/dist/shapes/Circle.d.ts +84 -8
  286. package/dist/shapes/Circle.js +122 -20
  287. package/dist/shapes/Square.d.ts +84 -8
  288. package/dist/shapes/Square.js +123 -20
  289. package/dist/styles/mixins.d.ts +35 -0
  290. package/dist/styles/mixins.js +60 -0
  291. package/dist/styles.css +1 -202
  292. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  293. package/dist/table/InfiniteSpreadsheet.js +762 -225
  294. package/dist/table/InfiniteTable.d.ts +116 -14
  295. package/dist/table/InfiniteTable.js +287 -429
  296. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  297. package/dist/table/SpreadsheetCellEditor.js +163 -84
  298. package/dist/table/TableCore.d.ts +252 -0
  299. package/dist/table/TableCore.js +1077 -0
  300. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  301. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  302. package/dist/table/types.d.ts +66 -244
  303. package/dist/table/types.js +0 -51
  304. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  305. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  306. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  307. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  308. package/dist/table/useTableColumnLayout.d.ts +90 -25
  309. package/dist/table/useTableColumnLayout.js +255 -50
  310. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  311. package/dist/table/useTableKeyboardNavigation.js +95 -71
  312. package/dist/table/useTableRowSelection.d.ts +24 -25
  313. package/dist/table/useTableRowSelection.js +57 -84
  314. package/dist/table/useTableVirtualizer.d.ts +20 -0
  315. package/dist/table/useTableVirtualizer.js +48 -0
  316. package/dist/text/Bold.d.ts +5 -6
  317. package/dist/text/Bold.js +16 -15
  318. package/dist/text/Code.d.ts +5 -6
  319. package/dist/text/Code.js +16 -25
  320. package/dist/text/CodeBlock.d.ts +77 -0
  321. package/dist/text/CodeBlock.js +373 -0
  322. package/dist/text/EditableText.d.ts +55 -15
  323. package/dist/text/EditableText.js +153 -135
  324. package/dist/text/Ellipsis.d.ts +34 -8
  325. package/dist/text/Ellipsis.js +55 -23
  326. package/dist/text/Kbd.d.ts +72 -0
  327. package/dist/text/Kbd.js +284 -0
  328. package/dist/text/MarkdownText.d.ts +27 -10
  329. package/dist/text/MarkdownText.js +317 -300
  330. package/dist/text/RequiredMarker.d.ts +17 -5
  331. package/dist/text/RequiredMarker.js +34 -36
  332. package/dist/text/Selectable.d.ts +5 -6
  333. package/dist/text/Selectable.js +16 -13
  334. package/dist/text/Span.d.ts +82 -0
  335. package/dist/text/Span.js +115 -0
  336. package/dist/text/Text.d.ts +128 -41
  337. package/dist/text/Text.js +209 -76
  338. package/dist/theme/GalaxyProvider.d.ts +75 -0
  339. package/dist/theme/GalaxyProvider.js +223 -0
  340. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  341. package/dist/theme/ThemeSwitcher.js +94 -0
  342. package/dist/theme/enums.d.ts +118 -0
  343. package/dist/theme/enums.js +144 -0
  344. package/dist/theme/tokens/dark.d.ts +2 -0
  345. package/dist/theme/tokens/dark.js +275 -0
  346. package/dist/theme/tokens/generate.d.ts +15 -0
  347. package/dist/theme/tokens/generate.js +47 -0
  348. package/dist/theme/tokens/light.d.ts +2 -0
  349. package/dist/theme/tokens/light.js +274 -0
  350. package/dist/theme/tokens/palette.d.ts +14 -0
  351. package/dist/theme/tokens/palette.js +153 -0
  352. package/dist/theme/tokens/scales.d.ts +26 -0
  353. package/dist/theme/tokens/scales.js +154 -0
  354. package/dist/theme/tokens/t.d.ts +3 -0
  355. package/dist/theme/tokens/t.js +25 -0
  356. package/dist/theme/tokens/types.d.ts +189 -0
  357. package/dist/theme/tokens/types.js +0 -0
  358. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  359. package/dist/theme/useGalaxyTheme.js +36 -0
  360. package/dist/theme/useInverseScope.d.ts +18 -0
  361. package/dist/theme/useInverseScope.js +33 -0
  362. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  363. package/dist/three/GalaxyLogomark3D.js +134 -0
  364. package/dist/three/assets/galaxy-logomark.js +4 -0
  365. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  366. package/dist/three/galaxyLogomark3DScene.js +165 -0
  367. package/dist/timeline/Timeline.d.ts +99 -0
  368. package/dist/timeline/Timeline.js +269 -0
  369. package/dist/toast/Toast.d.ts +43 -19
  370. package/dist/toast/Toast.js +130 -89
  371. package/dist/toast/ToastProvider.d.ts +23 -23
  372. package/dist/toast/ToastProvider.js +298 -101
  373. package/dist/toast/ToastViewport.d.ts +12 -0
  374. package/dist/toast/ToastViewport.js +210 -0
  375. package/dist/toast/useToast.d.ts +139 -5
  376. package/dist/toast/useToast.js +15 -13
  377. package/dist/tokens.css +654 -0
  378. package/dist/tooltip/Tooltip.d.ts +64 -44
  379. package/dist/tooltip/Tooltip.js +280 -73
  380. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  381. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  382. package/dist/transform/Fade.d.ts +33 -11
  383. package/dist/transform/Fade.js +71 -19
  384. package/dist/transform/Flasher.d.ts +25 -0
  385. package/dist/transform/Flasher.js +39 -0
  386. package/dist/transform/Rotate.d.ts +24 -12
  387. package/dist/transform/Rotate.js +36 -22
  388. package/dist/transform/ScaleFade.d.ts +36 -11
  389. package/dist/transform/ScaleFade.js +86 -28
  390. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  391. package/dist/transform/internal/CollapseMotion.js +65 -0
  392. package/dist/tree/Tree.d.ts +85 -0
  393. package/dist/tree/Tree.js +387 -0
  394. package/dist/tree/treeRow.d.ts +39 -0
  395. package/dist/tree/treeRow.js +75 -0
  396. package/dist/utils/colors.d.ts +46 -13
  397. package/dist/utils/colors.js +92 -34
  398. package/dist/utils/css.d.ts +23 -0
  399. package/dist/utils/css.js +30 -0
  400. package/dist/utils/format.d.ts +58 -0
  401. package/dist/utils/format.js +220 -0
  402. package/dist/vite/index.d.ts +16 -0
  403. package/dist/vite/index.js +52 -0
  404. package/dist/widget/Widget.d.ts +164 -48
  405. package/dist/widget/Widget.js +335 -96
  406. package/dist/widget/WidgetGroup.d.ts +36 -0
  407. package/dist/widget/WidgetGroup.js +103 -0
  408. package/package.json +851 -157
  409. package/dist/accordion/Accordion.d.ts +0 -54
  410. package/dist/accordion/Accordion.js +0 -183
  411. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  412. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  413. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  415. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  416. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  417. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  419. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  420. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  421. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  423. package/dist/assets/models/galaxy-animation.js +0 -136666
  424. package/dist/assets/models/galaxy-logomark.js +0 -4
  425. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  426. package/dist/avatar/AvatarShimmer.js +0 -22
  427. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  428. package/dist/backgrounds/CellGridBackground.js +0 -44
  429. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  430. package/dist/backgrounds/CrossGridBackground.js +0 -49
  431. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  432. package/dist/backgrounds/DotGridBackground.js +0 -47
  433. package/dist/badge/Badge.d.ts +0 -42
  434. package/dist/badge/Badge.js +0 -99
  435. package/dist/charts/ChartEmptyState.d.ts +0 -17
  436. package/dist/charts/ChartEmptyState.js +0 -29
  437. package/dist/charts/ProgressBar.d.ts +0 -29
  438. package/dist/charts/ProgressBar.js +0 -65
  439. package/dist/charts/chartTheme.d.ts +0 -18
  440. package/dist/charts/chartTheme.js +0 -26
  441. package/dist/containers/FlexItem.d.ts +0 -50
  442. package/dist/containers/FlexItem.js +0 -91
  443. package/dist/containers/FlexWrapper.d.ts +0 -96
  444. package/dist/containers/FlexWrapper.js +0 -143
  445. package/dist/containers/GridWrapper.d.ts +0 -79
  446. package/dist/containers/GridWrapper.js +0 -125
  447. package/dist/containers/Spacing.d.ts +0 -23
  448. package/dist/containers/Spacing.js +0 -59
  449. package/dist/containers/Wrapper.d.ts +0 -26
  450. package/dist/containers/Wrapper.js +0 -54
  451. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  452. package/dist/dividers/HorizontalDivider.js +0 -39
  453. package/dist/dividers/VerticalDivider.d.ts +0 -6
  454. package/dist/dividers/VerticalDivider.js +0 -21
  455. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  456. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  457. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  458. package/dist/icons/GalaxyLogomark.js +0 -27
  459. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  460. package/dist/icons/GalaxyLogomark3D.js +0 -319
  461. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  462. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  463. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  464. package/dist/icons/GalaxyWordmark.js +0 -25
  465. package/dist/inputs/MultiTextInput.d.ts +0 -32
  466. package/dist/inputs/MultiTextInput.js +0 -180
  467. package/dist/inputs/SwitcherInput.d.ts +0 -27
  468. package/dist/inputs/SwitcherInput.js +0 -64
  469. package/dist/inputs/hooks.d.ts +0 -10
  470. package/dist/inputs/hooks.js +0 -22
  471. package/dist/overlay/constants.d.ts +0 -28
  472. package/dist/overlay/constants.js +0 -37
  473. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  474. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  475. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  476. package/dist/resizable/VerticalResizeHandle.js +0 -39
  477. package/dist/table/SpreadsheetCell.d.ts +0 -21
  478. package/dist/table/SpreadsheetCell.js +0 -71
  479. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  480. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  481. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  482. package/dist/table/SpreadsheetMenuItem.js +0 -33
  483. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  484. package/dist/table/SpreadsheetPrimitives.js +0 -105
  485. package/dist/table/SpreadsheetRow.d.ts +0 -33
  486. package/dist/table/SpreadsheetRow.js +0 -73
  487. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  488. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  489. package/dist/table/TableExpandCell.d.ts +0 -11
  490. package/dist/table/TableExpandCell.js +0 -24
  491. package/dist/table/TableExpandedRow.d.ts +0 -16
  492. package/dist/table/TableExpandedRow.js +0 -77
  493. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  494. package/dist/table/TableHeaderCellContent.js +0 -48
  495. package/dist/table/TablePrimitives.d.ts +0 -313
  496. package/dist/table/TablePrimitives.js +0 -302
  497. package/dist/table/TableSelectCell.d.ts +0 -18
  498. package/dist/table/TableSelectCell.js +0 -27
  499. package/dist/table/TableStatusRow.d.ts +0 -18
  500. package/dist/table/TableStatusRow.js +0 -50
  501. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  502. package/dist/table/useSpreadsheetEditing.js +0 -41
  503. package/dist/table/useTableColumnResize.d.ts +0 -38
  504. package/dist/table/useTableColumnResize.js +0 -155
  505. package/dist/table/useTableRowExpansion.d.ts +0 -24
  506. package/dist/table/useTableRowExpansion.js +0 -62
  507. package/dist/table/utils.d.ts +0 -50
  508. package/dist/table/utils.js +0 -78
  509. package/dist/text/HotKeys.d.ts +0 -30
  510. package/dist/text/HotKeys.js +0 -74
  511. package/dist/text/Paragraph.d.ts +0 -33
  512. package/dist/text/Paragraph.js +0 -83
  513. package/dist/text/TextShimmer.d.ts +0 -14
  514. package/dist/text/TextShimmer.js +0 -34
  515. package/dist/theme/GalaxyTheme.d.ts +0 -67
  516. package/dist/theme/GalaxyTheme.js +0 -119
  517. package/dist/theme/constants.d.ts +0 -8
  518. package/dist/theme/constants.js +0 -38
  519. package/dist/theme/index.d.ts +0 -6
  520. package/dist/theme/index.js +0 -7
  521. package/dist/theme/types.d.ts +0 -195
  522. package/dist/theme/types.js +0 -10
  523. package/dist/theme/typography.d.ts +0 -2
  524. package/dist/theme/typography.js +0 -73
  525. package/dist/theme/variants/dark.d.ts +0 -2
  526. package/dist/theme/variants/dark.js +0 -125
  527. package/dist/theme/variants/light.d.ts +0 -2
  528. package/dist/theme/variants/light.js +0 -125
  529. package/dist/toast/ToastContainer.d.ts +0 -10
  530. package/dist/toast/ToastContainer.js +0 -31
  531. package/dist/toast/ToastWrapper.d.ts +0 -6
  532. package/dist/toast/ToastWrapper.js +0 -27
  533. package/dist/transform/Flash.d.ts +0 -7
  534. package/dist/transform/Flash.js +0 -18
  535. package/dist/transform/Spin.d.ts +0 -14
  536. package/dist/transform/Spin.js +0 -25
  537. package/dist/utils/linaria.d.ts +0 -1
  538. package/dist/utils/linaria.js +0 -8
@@ -1,82 +1,80 @@
1
- import { BarChartNormalization, ChartKind, ChartMarkState, ChartTargetShape } from "./types.js";
2
- import { useSeriesColorResolver } from "./useSeriesColorResolver.js";
3
- import { useChartInteraction } from "./useChartInteraction.js";
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 { buildBarChartGeometry, getBarValueDomain, roundedRectPath } from "./barChartGeometry.js";
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
- * Bar chart with a three-level data model.
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
- * Grouping and stacking are properties of the data rather than a mode: several
17
- * `bars` in a group render side by side, several `components` in a bar stack,
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
- var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRatio, margin, normalization = BarChartNormalization.NONE, showCursor = true, minSegmentLength = 0, onSelect, selection, valueUnit, valueFormatter, labelFormatter, valueDomain, categoryLabelMode, categoryAxisTitle, valueAxisTitle, showGrid = true, showLegend = true, legendMaxItems, noTooltip = false, tooltipRenderer, tooltipMaxItems, isLoading = false, contentWhenEmpty, ariaLabel, ariaDescription }) => {
21
- const containerRef = useRef(null);
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, ariaLabel, id, className, style, ...rest } = props;
53
+ const plotRef = useRef(null);
22
54
  const colors = useSeriesColorResolver(series);
23
- /**
24
- * Axis-only formatting for a percent-normalized chart.
25
- *
26
- * Normalization rescales the *axis* into 0–1, so the caller's formatter —
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
- width,
50
- height,
51
- fillWidth,
52
- fillHeight,
53
- aspectRatio,
54
- margin,
55
- valueUnit,
56
- valueFormatter,
61
+ valueFormatter: axisValueFormatter,
57
62
  labelFormatter,
58
- deriveAxisFormatter,
59
- valueAxisTitle,
60
- categoryAxisTitle
63
+ axisLabels
61
64
  });
62
65
  const { plotWidth, plotHeight } = dimensions;
63
- /**
64
- * True when any bar carries more than one component.
65
- *
66
- * This is what decides the colour grammar. In a stacked chart the segments
67
- * are the thing being compared, so they take the palette and every stack
68
- * repeats the same ramp; in an unstacked one the metrics are, so each bar
69
- * takes its metric's colour. Applying the metric colour to a stack would
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,44 @@ 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: geometry.bands.length,
105
+ categoryCount: groups.length,
109
106
  seriesKeys: legendKeys,
110
107
  categoryKeys,
111
108
  categoryMuteState: ChartMarkState.DIMMED,
112
109
  selection,
113
- isDisabled: noTooltip || isLoading || isEmpty,
110
+ isDisabled: !(hasTooltip || onSelect) || isLoading || isEmpty,
114
111
  isLoading
115
112
  });
116
- const activeBand = interaction.activeIndex === null ? null : geometry.bands[interaction.activeIndex] ?? null;
113
+ const seriesKeyOf = useCallback((rect) => isStacked ? rect.componentKey : rect.metric, [isStacked]);
117
114
  const buildCategoryTooltip = useCallback((index) => {
118
115
  const band = geometry.bands[index];
119
116
  const group = groups[index];
120
117
  if (!band || !group) return null;
121
- const rows = geometry.rects.filter((rect) => rect.groupIndex === index).map((rect) => ({
122
- key: rect.id,
123
- label: rect.label,
124
- value: rect.value,
125
- formattedValue: formatValue(rect.value),
126
- color: rect.color
127
- }));
118
+ const isGrouped = group.bars.length > 1;
119
+ const rows = [];
120
+ group.bars.forEach((bar, barIndex) => {
121
+ const metricLabel = series[bar.metric]?.label ?? bar.metric;
122
+ const indexed = bar.components.map((component, componentIndex) => ({
123
+ component,
124
+ componentIndex,
125
+ value: component.value
126
+ }));
127
+ for (const { component, componentIndex } of visualOrder(indexed)) {
128
+ const label = !isStacked ? metricLabel : isGrouped ? `${metricLabel} · ${component.label}` : component.label;
129
+ rows.push({
130
+ key: `${index}:${barIndex}:${component.key}`,
131
+ label,
132
+ value: component.value,
133
+ formattedValue: formatChartValue(component.value, formatValue),
134
+ color: resolveColor({
135
+ metric: bar.metric,
136
+ componentIndex,
137
+ explicit: component.color,
138
+ hex: component.hex
139
+ }).color
140
+ });
141
+ }
142
+ });
128
143
  return {
129
144
  label: formatLabel(group.label),
130
145
  rows,
@@ -132,13 +147,16 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
132
147
  anchorY: band.anchorY
133
148
  };
134
149
  }, [
135
- geometry,
150
+ geometry.bands,
136
151
  groups,
152
+ series,
153
+ isStacked,
137
154
  formatValue,
138
- formatLabel
155
+ formatLabel,
156
+ resolveColor
139
157
  ]);
140
158
  const categoryPositions = useMemo(() => geometry.bands.map((band) => band.x), [geometry.bands]);
141
- const categoryStep = geometry.bands[0]?.width ?? 0;
159
+ const categoryStep = geometry.step;
142
160
  const categoryTargets = useMemo(() => geometry.bands.map((band) => ({
143
161
  key: String(band.groupIndex),
144
162
  shape: ChartTargetShape.RECT,
@@ -147,15 +165,6 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
147
165
  width: band.width,
148
166
  height: band.height
149
167
  })), [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
168
  const markTargets = useMemo(() => geometry.rects.map((rect) => ({
160
169
  key: rect.id,
161
170
  categoryIndex: rect.groupIndex,
@@ -175,52 +184,56 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
175
184
  }, [groups, onSelect]);
176
185
  const handleMarkSelect = useCallback((index) => {
177
186
  const rect = geometry.rects[index];
178
- if (!rect || !onSelect) return;
187
+ const group = groups[rect?.groupIndex ?? -1];
188
+ if (!rect || !group || !onSelect) return;
179
189
  onSelect({
180
190
  categoryIndex: rect.groupIndex,
181
- categoryKey: groups[rect.groupIndex]?.label ?? rect.metric,
182
- seriesKey: isStacked ? rect.componentKey : rect.metric,
191
+ categoryKey: group.label,
192
+ seriesKey: seriesKeyOf(rect),
183
193
  value: rect.value
184
194
  });
185
195
  }, [
186
196
  geometry.rects,
187
197
  groups,
188
- isStacked,
189
- onSelect
198
+ onSelect,
199
+ seriesKeyOf
190
200
  ]);
201
+ const activeBand = interaction.activeIndex === null ? void 0 : geometry.bands[interaction.activeIndex];
191
202
  return /* @__PURE__ */ jsxs(ChartFrame, {
192
- containerRef,
203
+ rootRef: ref,
204
+ plotRef,
205
+ id,
206
+ className,
207
+ style,
208
+ rest,
193
209
  dimensions,
194
- fillWidth,
195
- fillHeight,
196
210
  interaction,
197
211
  kind: ChartKind.BAR,
198
212
  categoryCount: groups.length,
199
213
  ariaLabel,
200
- ariaDescription,
214
+ aspectRatio: 2,
201
215
  axes: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ChartValueAxis, {
202
216
  ticks: valueTicks,
203
217
  scale: geometry.valueScale,
204
218
  plotWidth,
205
219
  plotHeight,
206
- marginLeft: dimensions.margin.left,
220
+ insetLeft: dimensions.insets.left,
207
221
  formatter: formatAxisValue,
208
- showGrid,
209
- title: valueAxisTitle
222
+ title: axisLabels?.value
210
223
  }), /* @__PURE__ */ jsx(ChartCategoryAxis, {
211
224
  labels: categoryKeys,
212
225
  positions: categoryPositions,
213
226
  step: categoryStep,
214
227
  plotWidth,
215
228
  plotHeight,
229
+ orientation: Orientation.HORIZONTAL,
230
+ insetLeft: dimensions.insets.left,
216
231
  formatter: formatLabel,
217
- mode: categoryLabelMode,
218
- title: categoryAxisTitle
232
+ title: axisLabels?.category
219
233
  })] }),
220
- noTooltip,
234
+ hasTooltip,
221
235
  buildCategoryTooltip,
222
- tooltipRenderer,
223
- tooltipMaxItems,
236
+ renderTooltip,
224
237
  categoryTargets,
225
238
  markTargets,
226
239
  onCategorySelect: onSelect && handleCategorySelect,
@@ -228,34 +241,41 @@ var BarChart = ({ series, groups, width, height, fillWidth, fillHeight, aspectRa
228
241
  anchorHalfWidth: categoryStep / 2,
229
242
  isEmpty,
230
243
  isLoading,
231
- contentWhenEmpty,
232
- showLegend,
244
+ placeholder,
245
+ hasLegend,
233
246
  legendItems,
234
- legendMaxItems,
247
+ legendPlacement: ChartLegendPlacement.BOTTOM,
248
+ legendSwatch: ChartLegendSwatch.SQUARE,
249
+ tooltipSwatch: ChartLegendSwatch.SQUARE,
235
250
  children: [
236
- geometry.bands.filter((band) => interaction.selectedCategoryIndices.has(band.groupIndex)).map((band) => /* @__PURE__ */ jsx(ChartCursorBand, {
251
+ geometry.bands.filter((band) => interaction.selectedCategoryIndices.has(band.groupIndex)).map((band) => /* @__PURE__ */ jsx("rect", {
237
252
  x: band.x,
238
253
  y: band.y,
239
254
  width: band.width,
240
255
  height: band.height,
241
- "data-selected": "true"
256
+ className: cx(CHART_CURSOR_BAND_CSS, CHART_CURSOR_BAND_SELECTED_CSS)
242
257
  }, `selected:${band.groupIndex}`)),
243
- showCursor && activeBand && /* @__PURE__ */ jsx(ChartCursorBand, {
258
+ activeBand && /* @__PURE__ */ jsx("rect", {
244
259
  x: activeBand.x,
245
260
  y: activeBand.y,
246
261
  width: activeBand.width,
247
- height: activeBand.height
262
+ height: activeBand.height,
263
+ className: "gx-ChartPrimitives-CHART_CURSOR_BAND_CSS-c1iaray"
248
264
  }),
249
- geometry.rects.map((rect) => /* @__PURE__ */ jsx(ChartBarPath, {
265
+ geometry.rects.map((rect) => /* @__PURE__ */ jsx("path", {
250
266
  d: roundedRectPath(rect.x, rect.y, rect.width, rect.height, rect.radius, rect.corners),
251
- fill: rect.color,
252
- "data-state": interaction.getMarkState({
267
+ className: cx(CHART_BAR_CSS, CHART_MARK_STATE_TO_CSS_MAP[interaction.getMarkState({
253
268
  categoryIndex: rect.groupIndex,
254
- seriesKey: isStacked ? rect.componentKey : rect.metric
255
- })
269
+ seriesKey: seriesKeyOf(rect)
270
+ })]),
271
+ style: { "--gx-chart-mark-color": rect.color.color }
256
272
  }, rect.id))
257
273
  ]
258
274
  });
259
- };
275
+ }
276
+ var BarChartForwarded = forwardRef(BarChartInner);
277
+ BarChartForwarded.displayName = "BarChart";
278
+ /** Vertical bars over a categorical x-axis: grouped, stacked, or both. */
279
+ var BarChart = BarChartForwarded;
260
280
  //#endregion
261
- export { BarChart as default };
281
+ export { BarChartNormalization, BarChart as default };
@@ -1,53 +1,48 @@
1
- import { ChartCategoryLabelMode } from "./types";
2
- import type { ChartLabelFormatter, ChartValueFormatter } from "./types";
3
- /**
4
- * Axes for the cartesian charts.
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
- /** Maps a tick value to its y position in plot coordinates. */
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
- showGrid?: boolean;
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
- export declare const ChartValueAxis: ({ ticks, scale, plotWidth, plotHeight, marginLeft, formatter, showGrid, title, }: ChartValueAxisProps) => import("react").JSX.Element;
34
- interface ChartCategoryAxisProps {
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
- /** Left edge of each category's slot, in plot coordinates. */
26
+ /** Leading edge of each category's slot (left for `HORIZONTAL`, top for `VERTICAL`), plot coordinates. */
37
27
  positions: number[];
38
- /** Width of one category slot. */
28
+ /** Size of one category slot along the axis. */
39
29
  step: number;
40
- /** Needed to span an axis title across the full plot. */
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
- mode?: ChartCategoryLabelMode;
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
- export declare const ChartCategoryAxis: ({ labels, positions, step, plotWidth, plotHeight, formatter, mode, title, }: ChartCategoryAxisProps) => import("react").JSX.Element;
53
- export {};
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;