@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,25 +1,21 @@
1
- import type { BarChartGroupDatum, ChartLegendItem, ChartSeriesStyles } from "./types";
2
- import type { SeriesColorResolver } from "./useSeriesColorResolver";
3
1
  /**
4
- * Legend entries for a bar chart.
5
- *
6
- * A pure walk over the data, kept out of the component because it is the one
7
- * legend in the DLS that cannot be a `.map()` over the `series` record: a bar's
8
- * *components* are a second dimension with no record of their own, so a stacked
9
- * chart's legend has to be recovered from the data itself.
2
+ * @internal Legend entries for a bar chart. The one chart legend that cannot be a `.map()` over
3
+ * the `series` record: when bars are stacked the colors distinguish components, a second dimension
4
+ * with no record of its own, so the legend is recovered from the data (first-seen order).
10
5
  */
11
- interface GetBarLegendItemsArgs<TMetric extends string, TComponentKey extends string> {
12
- /**
13
- * Whether the chart as a whole is stacked.
14
- *
15
- * Decides which dimension the legend names, and must match the flag the
16
- * geometry coloured with — a legend naming metrics beside bars coloured by
17
- * component describes a chart that is not on screen.
18
- */
6
+ import type { BarGeometryGroup } from "./barChartGeometry.js";
7
+ import type { ChartLegendItem, ChartSeriesStyles } from "./types.js";
8
+ import type { SeriesColorResolver } from "./useSeriesColorResolver.js";
9
+ /** @internal Inputs of `getBarLegendItems`. */
10
+ export interface GetBarLegendItemsArgs<TMetric extends string, TComponentKey extends string> {
11
+ /** Whether any bar is stacked: decides which dimension the legend names (and the colors use). */
19
12
  isStacked: boolean;
13
+ /** The `series` prop. */
20
14
  series: ChartSeriesStyles<TMetric>;
21
- groups: BarChartGroupDatum<TMetric, TComponentKey>[];
15
+ /** The `groups` prop. */
16
+ groups: BarGeometryGroup<TMetric, TComponentKey>[];
17
+ /** The chart's series color resolver. */
22
18
  colors: SeriesColorResolver<TMetric>;
23
19
  }
20
+ /** @internal Metrics when no bar is stacked; components (first seen, colored by position) otherwise. */
24
21
  export declare function getBarLegendItems<TMetric extends string, TComponentKey extends string>({ isStacked, series, groups, colors, }: GetBarLegendItemsArgs<TMetric, TComponentKey>): ChartLegendItem[];
25
- export {};
@@ -1,23 +1,28 @@
1
+ import { resolveChartSeriesColor } from "./chartPalette.js";
1
2
  //#region src/charts/barChartLegend.ts
3
+ /** @internal Metrics when no bar is stacked; components (first seen, colored by position) otherwise. */
2
4
  function getBarLegendItems({ isStacked, series, groups, colors }) {
3
- if (!isStacked) return colors.keys.map((metric) => ({
4
- key: metric,
5
- label: series[metric].label,
6
- color: colors.resolve(metric)
7
- }));
5
+ if (!isStacked) return colors.keys.map((metric) => {
6
+ const color = colors.resolve(metric);
7
+ return {
8
+ key: metric,
9
+ label: series[metric]?.label ?? metric,
10
+ ...color.palette !== void 0 && { palette: color.palette },
11
+ ...color.hex !== void 0 && { hex: color.hex }
12
+ };
13
+ });
8
14
  const seen = /* @__PURE__ */ new Map();
9
15
  for (const group of groups) for (const bar of group.bars) bar.components.forEach((component, componentIndex) => {
10
- if (!seen.has(component.key)) seen.set(component.key, {
16
+ if (seen.has(component.key)) return;
17
+ const color = resolveChartSeriesColor(componentIndex, component.color, component.hex);
18
+ seen.set(component.key, {
19
+ key: component.key,
11
20
  label: component.label,
12
- index: componentIndex,
13
- explicit: component.color
21
+ ...color.palette !== void 0 && { palette: color.palette },
22
+ ...color.hex !== void 0 && { hex: color.hex }
14
23
  });
15
24
  });
16
- return [...seen.entries()].map(([key, { label, index, explicit }]) => ({
17
- key,
18
- label,
19
- color: colors.resolveByIndex(index, explicit)
20
- }));
25
+ return [...seen.values()];
21
26
  }
22
27
  //#endregion
23
28
  export { getBarLegendItems };
@@ -1,19 +1,13 @@
1
- import { ChartValueUnit } from "./types";
2
- import type { ChartLabelFormatter, ChartValueFormatter } from "./types";
3
- /**
4
- * Format a value with a built-in unit.
5
- *
6
- * `PERCENT` takes a 0–100 value rather than a 0–1 fraction, matching how
7
- * percentage data usually arrives, and appends the sign itself instead of using
8
- * `style: "percent"` (which would divide by 100).
9
- */
10
- export declare function formatChartValue(value: number, unit: ChartValueUnit): string;
11
- /**
12
- * Pick the effective value formatter.
13
- *
14
- * An explicit `valueFormatter` always wins; otherwise the unit supplies a
15
- * default, and `PLAIN` is the fallback when neither is given.
16
- */
17
- export declare function resolveValueFormatter(valueFormatter?: ChartValueFormatter, unit?: ChartValueUnit): ChartValueFormatter;
18
- /** Pick the effective label formatter, defaulting to identity. */
1
+ import type { ChartLabelFormatter, ChartValueFormatter } from "./types.js";
2
+ /** @internal How a gap (a `null` reading) renders in the tooltip. */
3
+ export declare const CHART_NULL_VALUE = "\u2014";
4
+ /** @internal The default value formatter: grouped, at most two fraction digits. */
5
+ export declare const DEFAULT_CHART_VALUE_FORMATTER: ChartValueFormatter;
6
+ /** @internal The default label formatter: identity. */
7
+ export declare const DEFAULT_CHART_LABEL_FORMATTER: ChartLabelFormatter;
8
+ /** @internal The effective value formatter. */
9
+ export declare function resolveValueFormatter(valueFormatter?: ChartValueFormatter): ChartValueFormatter;
10
+ /** @internal The effective label formatter. */
19
11
  export declare function resolveLabelFormatter(labelFormatter?: ChartLabelFormatter): ChartLabelFormatter;
12
+ /** @internal Formats a reading, rendering a gap or a non-finite value as "—". */
13
+ export declare function formatChartValue(value: number | null, formatter: ChartValueFormatter): string;
@@ -1,59 +1,27 @@
1
- import { ChartValueUnit } from "./types.js";
2
- import { match } from "ts-pattern";
1
+ import { formatNumber } from "../utils/format.js";
3
2
  //#region src/charts/chartFormat.ts
4
3
  /**
5
- * Value and label formatting for the chart components.
6
- *
7
- * Resolving the formatter once, centrally, is what keeps axis ticks, value
8
- * labels and tooltip rows from drifting apart — a recurring problem when every
9
- * call site writes its own one-liner.
4
+ * @internal Value and label formatting for the chart family, resolved once per chart so axis
5
+ * ticks, tooltip rows and announcements cannot drift apart. Built on `utils/format` (en-US by
6
+ * default, so the server and the client agree).
10
7
  */
11
- /**
12
- * `Intl` formatters are comparatively expensive to construct, and the charts
13
- * format every tick and tooltip row on each render, so instances are cached per
14
- * unit.
15
- */
16
- var FORMATTER_CACHE = /* @__PURE__ */ new Map();
17
- function getIntlFormatter(unit) {
18
- const cached = FORMATTER_CACHE.get(unit);
19
- if (cached) return cached;
20
- const formatter = match(unit).with(ChartValueUnit.PLAIN, () => new Intl.NumberFormat(void 0, { maximumFractionDigits: 2 })).with(ChartValueUnit.CURRENCY, () => new Intl.NumberFormat(void 0, {
21
- style: "currency",
22
- currency: "USD",
23
- maximumFractionDigits: 0
24
- })).with(ChartValueUnit.PERCENT, () => new Intl.NumberFormat(void 0, { maximumFractionDigits: 1 })).with(ChartValueUnit.COMPACT, () => new Intl.NumberFormat(void 0, {
25
- notation: "compact",
26
- maximumFractionDigits: 1
27
- })).exhaustive();
28
- FORMATTER_CACHE.set(unit, formatter);
29
- return formatter;
30
- }
31
- /**
32
- * Format a value with a built-in unit.
33
- *
34
- * `PERCENT` takes a 0–100 value rather than a 0–1 fraction, matching how
35
- * percentage data usually arrives, and appends the sign itself instead of using
36
- * `style: "percent"` (which would divide by 100).
37
- */
38
- function formatChartValue(value, unit) {
39
- if (!Number.isFinite(value)) return "—";
40
- const formatted = getIntlFormatter(unit).format(value);
41
- return unit === ChartValueUnit.PERCENT ? `${formatted}%` : formatted;
8
+ /** @internal How a gap (a `null` reading) renders in the tooltip. */
9
+ var CHART_NULL_VALUE = "—";
10
+ /** @internal The default value formatter: grouped, at most two fraction digits. */
11
+ var DEFAULT_CHART_VALUE_FORMATTER = (value) => formatNumber(value, { precision: 2 });
12
+ /** @internal The default label formatter: identity. */
13
+ var DEFAULT_CHART_LABEL_FORMATTER = (label) => label;
14
+ /** @internal The effective value formatter. */
15
+ function resolveValueFormatter(valueFormatter) {
16
+ return valueFormatter ?? DEFAULT_CHART_VALUE_FORMATTER;
42
17
  }
43
- /**
44
- * Pick the effective value formatter.
45
- *
46
- * An explicit `valueFormatter` always wins; otherwise the unit supplies a
47
- * default, and `PLAIN` is the fallback when neither is given.
48
- */
49
- function resolveValueFormatter(valueFormatter, unit) {
50
- if (valueFormatter) return valueFormatter;
51
- const resolvedUnit = unit ?? ChartValueUnit.PLAIN;
52
- return (value) => formatChartValue(value, resolvedUnit);
53
- }
54
- /** Pick the effective label formatter, defaulting to identity. */
18
+ /** @internal The effective label formatter. */
55
19
  function resolveLabelFormatter(labelFormatter) {
56
- return labelFormatter ?? ((label) => label);
20
+ return labelFormatter ?? DEFAULT_CHART_LABEL_FORMATTER;
21
+ }
22
+ /** @internal Formats a reading, rendering a gap or a non-finite value as "—". */
23
+ function formatChartValue(value, formatter) {
24
+ return value === null || !Number.isFinite(value) ? "—" : formatter(value);
57
25
  }
58
26
  //#endregion
59
- export { formatChartValue, resolveLabelFormatter, resolveValueFormatter };
27
+ export { CHART_NULL_VALUE, DEFAULT_CHART_LABEL_FORMATTER, DEFAULT_CHART_VALUE_FORMATTER, formatChartValue, resolveLabelFormatter, resolveValueFormatter };
@@ -0,0 +1,33 @@
1
+ import type { Hex, PaletteColor, StatusColor } from "../theme/tokens/types.js";
2
+ import { ChartPalette } from "./types.js";
3
+ /**
4
+ * @internal Automatic assignment order: the eight hues, purple first. Status slots never join it
5
+ * (an ordinary ninth series must not read as an error).
6
+ */
7
+ export declare const CHART_PALETTE_ORDER: readonly ChartPalette[];
8
+ /** @internal A chart ramp: a palette family or a status role. Never gray. */
9
+ export type ChartHue = PaletteColor | StatusColor;
10
+ /**
11
+ * @internal Palette slot → its family. The status slots are the status roles (there is no `INFO`
12
+ * slot); the old neutral slots `PRIMARY` /
13
+ * `SECONDARY` / `TERTIARY` are hues too (no gray in charts, docs/theming.md): `indigo`, `sky`,
14
+ * `violet`.
15
+ */
16
+ export declare const CHART_PALETTE_TO_HUE_MAP: Record<ChartPalette, ChartHue>;
17
+ /** @internal Palette slot → the CSS color of its marks: the family's `text.<family>` (text and icons). */
18
+ export declare const CHART_PALETTE_TO_COLOR_MAP: Record<ChartPalette, string>;
19
+ /** @internal The color of a mark that names no series (PieChart's folded "Other" bucket): `cyan`, never gray. */
20
+ export declare const CHART_NEUTRAL_COLOR: string;
21
+ /** @internal A resolved series color plus the swatch inputs it came from. */
22
+ export interface ChartSeriesColor {
23
+ /** CSS color for marks: the series `hex`, or the slot's `var(--gx-…)` string. */
24
+ color: string;
25
+ /** The slot, when the color came from the palette. */
26
+ palette?: ChartPalette;
27
+ /** The raw color, when the series set one. */
28
+ hex?: Hex;
29
+ }
30
+ /** @internal The slot at a position in the automatic order (wraps after eight). */
31
+ export declare function chartPaletteAt(index: number): ChartPalette;
32
+ /** @internal Resolves a series color: `hex` wins, then an explicit slot, then the automatic order. */
33
+ export declare function resolveChartSeriesColor(index: number, explicit?: ChartPalette, hex?: Hex): ChartSeriesColor;
@@ -0,0 +1,68 @@
1
+ import { t } from "../theme/tokens/t.js";
2
+ import { ChartPalette } from "./types.js";
3
+ //#region src/charts/chartPalette.ts
4
+ /**
5
+ * @internal Series colors. A palette slot maps to a `t.color.text.<family>` string (`var(--gx-…)`),
6
+ * so a theme switch repaints marks through CSS with no React render. Imports only `t` and types:
7
+ * no component, no d3.
8
+ * Apps that want a slot's color in their own CSS use `t.color.text.<family>`.
9
+ */
10
+ /**
11
+ * @internal Automatic assignment order: the eight hues, purple first. Status slots never join it
12
+ * (an ordinary ninth series must not read as an error).
13
+ */
14
+ var CHART_PALETTE_ORDER = [
15
+ ChartPalette.PURPLE,
16
+ ChartPalette.PINK,
17
+ ChartPalette.BLUE,
18
+ ChartPalette.TEAL,
19
+ ChartPalette.LIME,
20
+ ChartPalette.ORANGE,
21
+ ChartPalette.YELLOW,
22
+ ChartPalette.GREEN
23
+ ];
24
+ /**
25
+ * @internal Palette slot → its family. The status slots are the status roles (there is no `INFO`
26
+ * slot); the old neutral slots `PRIMARY` /
27
+ * `SECONDARY` / `TERTIARY` are hues too (no gray in charts, docs/theming.md): `indigo`, `sky`,
28
+ * `violet`.
29
+ */
30
+ var CHART_PALETTE_TO_HUE_MAP = {
31
+ [ChartPalette.PURPLE]: "purple",
32
+ [ChartPalette.PINK]: "pink",
33
+ [ChartPalette.BLUE]: "blue",
34
+ [ChartPalette.TEAL]: "teal",
35
+ [ChartPalette.LIME]: "lime",
36
+ [ChartPalette.ORANGE]: "orange",
37
+ [ChartPalette.YELLOW]: "yellow",
38
+ [ChartPalette.GREEN]: "green",
39
+ [ChartPalette.SUCCESS]: "success",
40
+ [ChartPalette.WARNING]: "warning",
41
+ [ChartPalette.ERROR]: "error",
42
+ [ChartPalette.PRIMARY]: "indigo",
43
+ [ChartPalette.SECONDARY]: "sky",
44
+ [ChartPalette.TERTIARY]: "violet"
45
+ };
46
+ /** @internal Palette slot → the CSS color of its marks: the family's `text.<family>` (text and icons). */
47
+ var CHART_PALETTE_TO_COLOR_MAP = Object.fromEntries(Object.values(ChartPalette).map((palette) => [palette, t.color.text[CHART_PALETTE_TO_HUE_MAP[palette]]]));
48
+ /** @internal The color of a mark that names no series (PieChart's folded "Other" bucket): `cyan`, never gray. */
49
+ var CHART_NEUTRAL_COLOR = t.color.text.cyan;
50
+ /** @internal The slot at a position in the automatic order (wraps after eight). */
51
+ function chartPaletteAt(index) {
52
+ const order = CHART_PALETTE_ORDER;
53
+ return order[(index % order.length + order.length) % order.length] ?? ChartPalette.PURPLE;
54
+ }
55
+ /** @internal Resolves a series color: `hex` wins, then an explicit slot, then the automatic order. */
56
+ function resolveChartSeriesColor(index, explicit, hex) {
57
+ if (hex !== void 0) return {
58
+ color: hex,
59
+ hex
60
+ };
61
+ const palette = explicit ?? chartPaletteAt(index);
62
+ return {
63
+ color: CHART_PALETTE_TO_COLOR_MAP[palette],
64
+ palette
65
+ };
66
+ }
67
+ //#endregion
68
+ export { CHART_NEUTRAL_COLOR, CHART_PALETTE_ORDER, CHART_PALETTE_TO_COLOR_MAP, CHART_PALETTE_TO_HUE_MAP, chartPaletteAt, resolveChartSeriesColor };
@@ -1,120 +1,53 @@
1
- import type { ChartMargin, ChartValueDomain, ChartValueFormatter } from "./types";
2
- /**
3
- * Scale construction and axis sizing for the chart components.
4
- *
5
- * Pure arithmetic with no React and no theme access, so it can be unit-reasoned
6
- * about and stays safe for Linaria's build-time evaluation.
7
- */
1
+ import type { ChartValueDomain, ChartValueFormatter } from "./types.js";
2
+ /** @internal Space between the plot box edge and the plot (the 1.x `margin`, now computed). */
3
+ export interface ChartInsets {
4
+ /** Above the plot. */
5
+ top: number;
6
+ /** Right of the plot. */
7
+ right: number;
8
+ /** Below the plot (category labels and title). */
9
+ bottom: number;
10
+ /** Left of the plot (value tick labels and title). */
11
+ left: number;
12
+ }
13
+ /** @internal Clamps `value` into `[min, max]`. */
8
14
  export declare function clamp(value: number, min: number, max: number): number;
9
- /**
10
- * Coerce a datum value into something safe to feed a scale.
11
- *
12
- * A single `NaN` or `Infinity` in consumer data otherwise propagates into every
13
- * path's `d` attribute and blanks the entire chart rather than one mark.
14
- */
15
+ /** @internal A finite number, or 0: one `NaN` in data must not blank every path. */
15
16
  export declare function sanitizeValue(value: number | undefined | null): number;
16
17
  /**
17
- * Merge a partial margin over the defaults.
18
- *
19
- * Written per-field rather than as a spread: spreading an object that carries
20
- * an explicit `undefined` overwrites the default with `undefined` rather than
21
- * falling back to it, which is easy to trip over when the partial is assembled
22
- * from separate optional values.
23
- *
24
- * `defaults` exists because the cartesian default reserves axis gutters a
25
- * radial chart has no use for. Taking it as a parameter keeps the merge
26
- * per-field: a chart that substituted its own defaults with `margin ?? OWN`
27
- * would silently fall back to the *cartesian* defaults the moment a caller
28
- * passed a partial, handing an axis-less chart a 52px left gutter.
29
- */
30
- export declare function resolveMargin(partial?: Partial<ChartMargin>, defaults?: ChartMargin): ChartMargin;
31
- /** Inner plot dimensions, never negative. */
32
- export declare function getPlotDimensions(width: number, height: number, margin: ChartMargin): {
33
- plotWidth: number;
34
- plotHeight: number;
35
- };
36
- /**
37
- * Widen a margin to leave room for axis titles.
38
- *
39
- * The reservation has to happen here rather than inside the axis, because the
40
- * margin is resolved before any axis renders — and with the root SVG set to
41
- * `overflow: visible`, an unreserved title would paint outside the container and
42
- * be clipped by whatever the consumer wraps the chart in.
43
- *
44
- * Applied to the caller's *partial* before {@link resolveMargin} fills in the
45
- * defaults, so an explicit `margin.left` still governs the tick gutter and the
46
- * title band is added on top of it rather than eating into it. Returns the input
47
- * untouched when there are no titles, so the common case allocates nothing.
48
- */
49
- export declare function addAxisTitleSpace(partial: Partial<ChartMargin> | undefined, { hasValueTitle, hasCategoryTitle }: {
50
- hasValueTitle: boolean;
51
- hasCategoryTitle: boolean;
52
- }): Partial<ChartMargin> | undefined;
53
- /**
54
- * Turn a raw data extent into the domain the axis and the marks both use.
55
- *
56
- * Applies the caller's override, then three behaviours worth knowing:
57
- *
58
- * - **Zero is always in the domain.** Bars need a baseline to grow from, and
59
- * without this a negative value maps outside the range and renders as a
60
- * rectangle with negative height, which paints nothing at all.
61
- * - **A zero-width domain is widened to 0–1.** d3's `normalize()` returns a
62
- * constant `0.5` when the domain has no extent, so empty or all-zero data
63
- * would otherwise map every value to the middle of the plot and strand the
64
- * baseline halfway up.
65
- * - **`nice()` rounds the ends outward** to values a reader would choose.
66
- *
67
- * Split out of {@link buildValueScale} so the domain is computed exactly once
68
- * per chart and then handed to both the tick list and the geometry. Building it
69
- * twice — once at a throwaway range to get ticks, once at the real range to
70
- * place marks — leaves two `nice()` calls that must agree forever.
71
- *
72
- * `nice()` deliberately takes **no argument**. The default count is 10, not the
73
- * five ticks {@link DEFAULT_VALUE_TICK_COUNT} asks for, and nicing to the tick
74
- * count instead would change the axis extent on every existing chart.
18
+ * @internal The domain both the axis and the marks use: the override applied, zero always
19
+ * included (a baseline to grow from), a zero-width domain widened to 0–1, and the ends `nice()`d.
75
20
  */
76
21
  export declare function resolveValueDomain(raw: [number, number], override?: Partial<ChartValueDomain>): [number, number];
77
- /**
78
- * Linear scale over an already-resolved domain.
79
- *
80
- * Does no nicing and no zero-forcing — {@link resolveValueDomain} has done
81
- * both. Takes the domain rather than raw data so the same numbers drive the
82
- * axis, the ticks and every mark.
83
- */
22
+ /** @internal Linear scale over a resolved domain. */
84
23
  export declare function buildValueScale(domain: [number, number], range: [number, number]): import("d3-scale").ScaleLinear<number, number, never>;
85
- /** Point scale for categories, used by the line chart. */
24
+ /** @internal Point scale for categories (LineChart, AreaChart). */
86
25
  export declare function buildCategoryPointScale(labels: string[], range: [number, number], padding?: number): import("d3-scale").ScalePoint<string>;
26
+ /** @internal Tick values for a resolved domain. Needs no dimensions, so it can size the gutter first. */
27
+ export declare function getValueTicks(domain: [number, number], override?: Partial<ChartValueDomain>): number[];
28
+ /** @internal How many value ticks fit a plot `plotHeight` tall, at least `MIN_VALUE_TICK_SPACING` apart. */
29
+ export declare function getMaxValueTicks(plotHeight: number): number;
87
30
  /**
88
- * Left margin needed to fit the widest formatted tick label.
89
- *
90
- * Estimated from character count rather than measured from the DOM, mirroring
91
- * `estimateColumnWidth` in `table/utils.ts`, so it works during server rendering
92
- * and build-time evaluation. The estimate only has to be close: tick labels
93
- * right-align against the plot and ellipsize, so an underestimate truncates one
94
- * label rather than breaking the layout, and {@link MAX_AUTO_MARGIN_LEFT} caps
95
- * what a pathological formatter can take from the plot.
96
- *
97
- * Rounded up to {@link AUTO_MARGIN_LEFT_STEP} rather than used raw — see that
98
- * constant for why an exact fit is the wrong target.
99
- *
100
- * Safe to call before the chart has been measured: `nice()` and `ticks()` depend
101
- * on the domain and the requested count, never on the scale's range, so the tick
102
- * values here are the same ones the axis renders later.
31
+ * @internal The value axis for a plot `plotHeight` tall (0 = not measured yet): the domain and its
32
+ * ticks at the requested density, the ticks thinned until they sit at least
33
+ * `MIN_VALUE_TICK_SPACING` apart so labels never touch on a short chart. The domain never grows to
34
+ * suit the thinner ticks (a short chart keeps its marks tall; the top rule may sit below the top).
103
35
  */
104
- export declare function estimateValueAxisMargin(ticks: number[], formatter: ChartValueFormatter): number;
36
+ export declare function resolveValueAxis(raw: [number, number], override: Partial<ChartValueDomain> | undefined, plotHeight: number): {
37
+ domain: [number, number];
38
+ ticks: number[];
39
+ };
105
40
  /**
106
- * How many categories to skip between rendered axis labels.
107
- *
108
- * Returns 1 when every label fits, so a chart that is not crowded renders
109
- * exactly as it would with no skipping at all.
41
+ * @internal Left gutter that fits the widest formatted tick, estimated from character count (SSR
42
+ * safe), rounded up to a step so plots stay aligned and do not shift as live data gains a digit.
110
43
  */
44
+ export declare function estimateValueAxisInset(ticks: number[], formatter: ChartValueFormatter): number;
45
+ /** @internal The cartesian insets: the tick gutter, plus bands for the axis titles. */
46
+ export declare function getCartesianInsets(tickInset: number, { hasValueTitle, hasCategoryTitle }: {
47
+ hasValueTitle: boolean;
48
+ hasCategoryTitle: boolean;
49
+ }): ChartInsets;
50
+ /** @internal How many rows to skip between rendered row labels (Heatmap); 1 when every caption line fits. */
51
+ export declare function getRowLabelStride(step: number): number;
52
+ /** @internal How many categories to skip between rendered labels; 1 when every label fits. */
111
53
  export declare function getCategoryLabelStride(labels: string[], step: number): number;
112
- /**
113
- * Tick values for a resolved domain, honoring an explicit tick count.
114
- *
115
- * Needs no dimensions, which is what breaks the apparent circularity in the
116
- * layout: the left margin must fit the tick labels, the margin decides the plot
117
- * size, and the plot size builds the scale. Tick *values* fall out of the domain
118
- * alone, so they can be known before anything is measured.
119
- */
120
- export declare function getValueTicks(domain: [number, number], override?: Partial<ChartValueDomain>): number[];