@galaxy-io/dls 1.6.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 -30
  468. package/dist/inputs/SwitcherInput.js +0 -81
  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,165 +1,99 @@
1
- import { CAPTION_CHAR_WIDTH_PX, DEFAULT_CHART_MARGIN } from "./constants.js";
1
+ import { AUTO_INSET_LEFT_STEP, AXIS_TITLE_BAND, AXIS_TITLE_GAP, CAPTION_CHAR_WIDTH_PX, CAPTION_LINE, MIN_AUTO_INSET_LEFT, MIN_CATEGORY_LABEL_GAP, MIN_VALUE_TICK_SPACING, PLOT_INSET_BOTTOM, PLOT_INSET_RIGHT, PLOT_INSET_TOP, VALUE_AXIS_TICK_GAP } from "./constants.js";
2
2
  import { scaleLinear, scalePoint } from "d3-scale";
3
3
  //#region src/charts/chartScales.ts
4
4
  /**
5
- * Scale construction and axis sizing for the chart components.
6
- *
7
- * Pure arithmetic with no React and no theme access, so it can be unit-reasoned
8
- * about and stays safe for Linaria's build-time evaluation.
5
+ * @internal Scales, value domains, ticks and plot insets for the chart family. Pure arithmetic on
6
+ * `d3-scale` (an optional peer, imported only by chart modules); no React, no DOM.
9
7
  */
8
+ /** @internal Clamps `value` into `[min, max]`. */
10
9
  function clamp(value, min, max) {
11
10
  return Math.min(Math.max(value, min), max);
12
11
  }
13
- /**
14
- * Coerce a datum value into something safe to feed a scale.
15
- *
16
- * A single `NaN` or `Infinity` in consumer data otherwise propagates into every
17
- * path's `d` attribute and blanks the entire chart rather than one mark.
18
- */
12
+ /** @internal A finite number, or 0: one `NaN` in data must not blank every path. */
19
13
  function sanitizeValue(value) {
20
14
  return typeof value === "number" && Number.isFinite(value) ? value : 0;
21
15
  }
22
16
  /**
23
- * Merge a partial margin over the defaults.
24
- *
25
- * Written per-field rather than as a spread: spreading an object that carries
26
- * an explicit `undefined` overwrites the default with `undefined` rather than
27
- * falling back to it, which is easy to trip over when the partial is assembled
28
- * from separate optional values.
29
- *
30
- * `defaults` exists because the cartesian default reserves axis gutters a
31
- * radial chart has no use for. Taking it as a parameter keeps the merge
32
- * per-field: a chart that substituted its own defaults with `margin ?? OWN`
33
- * would silently fall back to the *cartesian* defaults the moment a caller
34
- * passed a partial, handing an axis-less chart a 52px left gutter.
35
- */
36
- function resolveMargin(partial, defaults = DEFAULT_CHART_MARGIN) {
37
- return {
38
- top: partial?.top ?? defaults.top,
39
- right: partial?.right ?? defaults.right,
40
- bottom: partial?.bottom ?? defaults.bottom,
41
- left: partial?.left ?? defaults.left
42
- };
43
- }
44
- /** Inner plot dimensions, never negative. */
45
- function getPlotDimensions(width, height, margin) {
46
- return {
47
- plotWidth: Math.max(0, width - margin.left - margin.right),
48
- plotHeight: Math.max(0, height - margin.top - margin.bottom)
49
- };
50
- }
51
- /**
52
- * Widen a margin to leave room for axis titles.
53
- *
54
- * The reservation has to happen here rather than inside the axis, because the
55
- * margin is resolved before any axis renders — and with the root SVG set to
56
- * `overflow: visible`, an unreserved title would paint outside the container and
57
- * be clipped by whatever the consumer wraps the chart in.
58
- *
59
- * Applied to the caller's *partial* before {@link resolveMargin} fills in the
60
- * defaults, so an explicit `margin.left` still governs the tick gutter and the
61
- * title band is added on top of it rather than eating into it. Returns the input
62
- * untouched when there are no titles, so the common case allocates nothing.
63
- */
64
- function addAxisTitleSpace(partial, { hasValueTitle, hasCategoryTitle }) {
65
- if (!hasValueTitle && !hasCategoryTitle) return partial;
66
- return {
67
- ...partial,
68
- left: (partial?.left ?? DEFAULT_CHART_MARGIN.left) + (hasValueTitle ? 26 : 0),
69
- bottom: (partial?.bottom ?? DEFAULT_CHART_MARGIN.bottom) + (hasCategoryTitle ? 18 : 0)
70
- };
71
- }
72
- /**
73
- * Turn a raw data extent into the domain the axis and the marks both use.
74
- *
75
- * Applies the caller's override, then three behaviours worth knowing:
76
- *
77
- * - **Zero is always in the domain.** Bars need a baseline to grow from, and
78
- * without this a negative value maps outside the range and renders as a
79
- * rectangle with negative height, which paints nothing at all.
80
- * - **A zero-width domain is widened to 0–1.** d3's `normalize()` returns a
81
- * constant `0.5` when the domain has no extent, so empty or all-zero data
82
- * would otherwise map every value to the middle of the plot and strand the
83
- * baseline halfway up.
84
- * - **`nice()` rounds the ends outward** to values a reader would choose.
85
- *
86
- * Split out of {@link buildValueScale} so the domain is computed exactly once
87
- * per chart and then handed to both the tick list and the geometry. Building it
88
- * twice — once at a throwaway range to get ticks, once at the real range to
89
- * place marks — leaves two `nice()` calls that must agree forever.
90
- *
91
- * `nice()` deliberately takes **no argument**. The default count is 10, not the
92
- * five ticks {@link DEFAULT_VALUE_TICK_COUNT} asks for, and nicing to the tick
93
- * count instead would change the axis extent on every existing chart.
17
+ * @internal The domain both the axis and the marks use: the override applied, zero always
18
+ * included (a baseline to grow from), a zero-width domain widened to 0–1, and the ends `nice()`d.
94
19
  */
95
20
  function resolveValueDomain(raw, override) {
96
21
  const min = override?.min ?? raw[0];
97
22
  const max = override?.max ?? raw[1];
98
23
  const lo = Math.min(0, min);
99
24
  const hi = Math.max(0, max);
100
- const [niceLo, niceHi] = scaleLinear().domain([lo, lo === hi ? hi + 1 : hi]).nice().domain();
25
+ const [niceLo = lo, niceHi = hi] = scaleLinear().domain([lo, lo === hi ? hi + 1 : hi]).nice().domain();
101
26
  return [niceLo, niceHi];
102
27
  }
103
- /**
104
- * Linear scale over an already-resolved domain.
105
- *
106
- * Does no nicing and no zero-forcing — {@link resolveValueDomain} has done
107
- * both. Takes the domain rather than raw data so the same numbers drive the
108
- * axis, the ticks and every mark.
109
- */
28
+ /** @internal Linear scale over a resolved domain. */
110
29
  function buildValueScale(domain, range) {
111
30
  return scaleLinear().domain(domain).range(range);
112
31
  }
113
- /** Point scale for categories, used by the line chart. */
32
+ /** @internal Point scale for categories (LineChart, AreaChart). */
114
33
  function buildCategoryPointScale(labels, range, padding = 0) {
115
34
  return scalePoint().domain(labels).range(range).padding(padding);
116
35
  }
36
+ /** @internal Tick values for a resolved domain. Needs no dimensions, so it can size the gutter first. */
37
+ function getValueTicks(domain, override) {
38
+ return scaleLinear().domain(domain).ticks(override?.tickCount ?? 5);
39
+ }
40
+ /** @internal How many value ticks fit a plot `plotHeight` tall, at least `MIN_VALUE_TICK_SPACING` apart. */
41
+ function getMaxValueTicks(plotHeight) {
42
+ return Math.max(2, Math.floor(plotHeight / MIN_VALUE_TICK_SPACING) + 1);
43
+ }
117
44
  /**
118
- * Left margin needed to fit the widest formatted tick label.
119
- *
120
- * Estimated from character count rather than measured from the DOM, mirroring
121
- * `estimateColumnWidth` in `table/utils.ts`, so it works during server rendering
122
- * and build-time evaluation. The estimate only has to be close: tick labels
123
- * right-align against the plot and ellipsize, so an underestimate truncates one
124
- * label rather than breaking the layout, and {@link MAX_AUTO_MARGIN_LEFT} caps
125
- * what a pathological formatter can take from the plot.
126
- *
127
- * Rounded up to {@link AUTO_MARGIN_LEFT_STEP} rather than used raw — see that
128
- * constant for why an exact fit is the wrong target.
129
- *
130
- * Safe to call before the chart has been measured: `nice()` and `ticks()` depend
131
- * on the domain and the requested count, never on the scale's range, so the tick
132
- * values here are the same ones the axis renders later.
45
+ * @internal The value axis for a plot `plotHeight` tall (0 = not measured yet): the domain and its
46
+ * ticks at the requested density, the ticks thinned until they sit at least
47
+ * `MIN_VALUE_TICK_SPACING` apart so labels never touch on a short chart. The domain never grows to
48
+ * suit the thinner ticks (a short chart keeps its marks tall; the top rule may sit below the top).
133
49
  */
134
- function estimateValueAxisMargin(ticks, formatter) {
135
- let widest = 0;
136
- for (const tick of ticks) widest = Math.max(widest, formatter(tick).length * CAPTION_CHAR_WIDTH_PX);
137
- const needed = Math.ceil(widest) + 12;
138
- return clamp(Math.ceil(needed / 8) * 8, 32, 96);
50
+ function resolveValueAxis(raw, override, plotHeight) {
51
+ const requested = override?.tickCount ?? 5;
52
+ const domain = resolveValueDomain(raw, override);
53
+ let ticks = getValueTicks(domain, { tickCount: requested });
54
+ if (plotHeight <= 0) return {
55
+ domain,
56
+ ticks
57
+ };
58
+ const maxTicks = getMaxValueTicks(plotHeight);
59
+ for (let count = requested - 1; ticks.length > maxTicks && count >= 1; count -= 1) ticks = getValueTicks(domain, { tickCount: count });
60
+ return {
61
+ domain,
62
+ ticks
63
+ };
139
64
  }
140
65
  /**
141
- * How many categories to skip between rendered axis labels.
142
- *
143
- * Returns 1 when every label fits, so a chart that is not crowded renders
144
- * exactly as it would with no skipping at all.
66
+ * @internal Left gutter that fits the widest formatted tick, estimated from character count (SSR
67
+ * safe), rounded up to a step so plots stay aligned and do not shift as live data gains a digit.
145
68
  */
69
+ function estimateValueAxisInset(ticks, formatter) {
70
+ let widest = 0;
71
+ for (const tick of ticks) widest = Math.max(widest, formatter(tick).length * CAPTION_CHAR_WIDTH_PX);
72
+ const needed = Math.ceil(widest) + VALUE_AXIS_TICK_GAP;
73
+ return clamp(Math.ceil(needed / AUTO_INSET_LEFT_STEP) * AUTO_INSET_LEFT_STEP, MIN_AUTO_INSET_LEFT, 96);
74
+ }
75
+ /** @internal The cartesian insets: the tick gutter, plus bands for the axis titles. */
76
+ function getCartesianInsets(tickInset, { hasValueTitle, hasCategoryTitle }) {
77
+ return {
78
+ top: PLOT_INSET_TOP,
79
+ right: PLOT_INSET_RIGHT,
80
+ bottom: PLOT_INSET_BOTTOM + (hasCategoryTitle ? AXIS_TITLE_GAP + AXIS_TITLE_BAND : 0),
81
+ left: tickInset + (hasValueTitle ? AXIS_TITLE_BAND + AXIS_TITLE_GAP : 0)
82
+ };
83
+ }
84
+ /** @internal How many rows to skip between rendered row labels (Heatmap); 1 when every caption line fits. */
85
+ function getRowLabelStride(step) {
86
+ if (step <= 0) return 1;
87
+ const required = CAPTION_LINE + MIN_CATEGORY_LABEL_GAP / 2;
88
+ return required <= step ? 1 : Math.ceil(required / step);
89
+ }
90
+ /** @internal How many categories to skip between rendered labels; 1 when every label fits. */
146
91
  function getCategoryLabelStride(labels, step) {
147
92
  if (labels.length === 0 || step <= 0) return 1;
148
93
  let widest = 0;
149
94
  for (const label of labels) widest = Math.max(widest, label.length * CAPTION_CHAR_WIDTH_PX);
150
- const required = widest + 8;
95
+ const required = widest + MIN_CATEGORY_LABEL_GAP;
151
96
  return required <= step ? 1 : Math.ceil(required / step);
152
97
  }
153
- /**
154
- * Tick values for a resolved domain, honoring an explicit tick count.
155
- *
156
- * Needs no dimensions, which is what breaks the apparent circularity in the
157
- * layout: the left margin must fit the tick labels, the margin decides the plot
158
- * size, and the plot size builds the scale. Tick *values* fall out of the domain
159
- * alone, so they can be known before anything is measured.
160
- */
161
- function getValueTicks(domain, override) {
162
- return scaleLinear().domain(domain).ticks(override?.tickCount ?? 5);
163
- }
164
98
  //#endregion
165
- export { addAxisTitleSpace, buildCategoryPointScale, buildValueScale, clamp, estimateValueAxisMargin, getCategoryLabelStride, getPlotDimensions, getValueTicks, resolveMargin, resolveValueDomain, sanitizeValue };
99
+ export { buildCategoryPointScale, buildValueScale, clamp, estimateValueAxisInset, getCartesianInsets, getCategoryLabelStride, getMaxValueTicks, getRowLabelStride, getValueTicks, resolveValueAxis, resolveValueDomain, sanitizeValue };
@@ -1,263 +1,103 @@
1
- import { ChartPalette } from "./types";
2
- import type { ChartMargin } from "./types";
3
- /**
4
- * Layout and motion tokens for the chart components.
5
- *
6
- * This module is evaluated by Linaria at build time — its constants are
7
- * interpolated statically into styled templates — so it must stay free of
8
- * component imports. Pulling React, framer-motion or Phosphor in here would
9
- * drag them into build-time evaluation.
10
- */
11
- export declare const DEFAULT_CHART_MARGIN: ChartMargin;
12
- /**
13
- * Gap between a value-axis tick label and the plot edge.
14
- *
15
- * The label box is `margin.left - VALUE_AXIS_TICK_GAP` wide, so the axis
16
- * geometry follows the margin instead of hardcoding an offset.
17
- */
18
- export declare const VALUE_AXIS_TICK_GAP = 12;
19
- /** Height of a value-axis tick label box in px. */
1
+ /** @internal Height of one caption line (`caption` type step): every axis label and title. */
2
+ export declare const CAPTION_LINE: number;
3
+ /** @internal Clear space between an axis label (or title) and the plot, its grid, or the next label row. */
4
+ export declare const AXIS_LABEL_GAP: number;
5
+ /** @internal Grid lines extend this far past both plot edges: a short lead-in, clear of the labels. */
6
+ export declare const GRID_LINE_BLEED: number;
7
+ /** @internal Space above the plot: half a value label box (its text clears the top) plus air for a dot. */
8
+ export declare const PLOT_INSET_TOP: number;
9
+ /** @internal Space right of the plot: the grid bleed plus air for a line's end dot and cap. */
10
+ export declare const PLOT_INSET_RIGHT: number;
11
+ /** @internal Gap between a value tick label and the plot edge: the grid bleed plus the label gap. */
12
+ export declare const VALUE_AXIS_TICK_GAP: number;
13
+ /** @internal Height of a value tick label box: taller than the caption line so it centers on its tick. */
20
14
  export declare const VALUE_AXIS_LABEL_HEIGHT = 20;
21
- /** Height of the category-axis label box in px. */
22
- export declare const CATEGORY_AXIS_LABEL_HEIGHT = 24;
23
- /** Gap between the plot's bottom edge and the category labels, in px. */
24
- export declare const CATEGORY_AXIS_LABEL_GAP = 8;
25
- /** Band reserved for an axis title, in px. Sized for one CAPTION line. */
26
- export declare const AXIS_TITLE_BAND = 18;
27
- /**
28
- * Clear space between an axis title and its tick labels, in px.
29
- *
30
- * The category axis gets this for free: its labels sit in a 24px box and its
31
- * title in an 18px band, and centring a CAPTION line in each leaves roughly this
32
- * much air between the two. The value axis has no such slack — its title band
33
- * abuts the label box exactly — so without reserving it here a wide tick number
34
- * runs straight into the rotated title, and the two axes visibly disagree.
35
- */
36
- export declare const AXIS_TITLE_GAP = 8;
37
- /** Default approximate tick count on the value axis. */
15
+ /** @internal Gap between the plot's bottom edge and the category labels. */
16
+ export declare const CATEGORY_AXIS_LABEL_GAP: number;
17
+ /** @internal Height of the category label box: one caption line, so the label gap is the visible gap. */
18
+ export declare const CATEGORY_AXIS_LABEL_HEIGHT: number;
19
+ /** @internal Space below the plot: label gap + label line. */
20
+ export declare const PLOT_INSET_BOTTOM: number;
21
+ /** @internal Band reserved for an axis title: a caption line with 2px of air each side, so a rotated title stays inside the chart. */
22
+ export declare const AXIS_TITLE_BAND: number;
23
+ /** @internal Clear space between an axis title and its tick labels. */
24
+ export declare const AXIS_TITLE_GAP: number;
25
+ /** @internal Minimum distance between value ticks (a caption line plus the label gap): closer ticks are thinned so labels never crowd. */
26
+ export declare const MIN_VALUE_TICK_SPACING: number;
27
+ /** @internal Default approximate tick count on the value axis. */
38
28
  export declare const DEFAULT_VALUE_TICK_COUNT = 5;
39
- /** Corner radius applied to the outer end of a wide bar, in px. */
40
- export declare const BAR_RADIUS = 4;
41
- /** Corner radius for bars narrower than {@link NARROW_BAR_WIDTH}, in px. */
42
- export declare const BAR_RADIUS_NARROW = 2;
43
- /** Bars below this width use the smaller radius so the curve doesn't dominate. */
44
- export declare const NARROW_BAR_WIDTH = 40;
45
- /**
46
- * Px shaved off a stacked segment's covered edge to separate it from its
47
- * neighbour.
48
- *
49
- * Keep this a whole number. The geometry snaps every stack boundary to a whole
50
- * pixel first, so an integer gap renders at exactly the same size at every seam;
51
- * a fractional one would land differently against the device pixel grid from one
52
- * boundary to the next and read as uneven.
53
- *
54
- * Applied to every segment except the one sitting on the baseline, so each seam
55
- * gets a gap and the bar still meets the axis flush.
56
- */
57
- export declare const STACK_SEGMENT_GAP = 2;
58
- /** Minimum rendered height for a non-zero bar, in px. */
59
- export declare const MIN_BAR_LENGTH = 2;
60
- /**
61
- * Target gaps in px between groups, and between bars within a group.
62
- *
63
- * The within-group gap must stay clearly smaller than the between-group gap —
64
- * that ratio is the only thing making a group read as a group. When the two are
65
- * close, the eye has nothing to bind a group's bars together and the chart reads
66
- * as one long row of unrelated bars.
67
- */
68
- export declare const GROUP_GAP_COMFORTABLE = 24;
69
- export declare const BAR_GAP_COMFORTABLE = 6;
70
- export declare const GROUP_GAP_MEDIUM = 16;
71
- export declare const BAR_GAP_MEDIUM = 4;
72
- export declare const GROUP_GAP_TIGHT = 12;
73
- export declare const BAR_GAP_TIGHT = 3;
74
- /**
75
- * Fraction of its available slot a bar actually fills.
76
- *
77
- * Bars sized to consume every last pixel of their group read as heavy, and the
78
- * chart becomes a wall of colour rather than a set of measurements. Holding them
79
- * back leaves air on both sides of each group without touching the gap between
80
- * neighbouring bars.
81
- */
82
- export declare const BAR_WIDTH_RATIO = 0.8;
83
- /**
84
- * Ceiling on a single bar's thickness, in px.
85
- *
86
- * Without it a two- or three-category chart divides the whole plot between a
87
- * handful of bars and produces slabs — the width stops carrying information the
88
- * moment it exceeds what the eye needs to compare heights.
89
- */
90
- export declare const MAX_BAR_WIDTH = 44;
91
- /** Below this many bars the chart always uses comfortable spacing. */
92
- export declare const MIN_BARS_FOR_TIGHT_SPACING = 13;
93
- /**
94
- * Ceiling on a gap, as a share of the space it divides.
95
- *
96
- * The gaps above are absolute pixel values chosen from chart-wide density, which
97
- * says nothing about how much room a *single* category actually got. Forty
98
- * categories in a 650px plot leave a 16px step, and a 24px gap subtracted from
99
- * that goes negative — the width lands on its 1px floor and every bar renders as
100
- * a hairline. Capping the gap proportionally keeps it honest at any density: it
101
- * stays exactly as specified whenever there is room, and degrades smoothly when
102
- * there is not.
103
- */
104
- export declare const MAX_GAP_SHARE = 0.3;
105
- /** Plot widths above this stay comfortable; below the tight threshold go tight. */
106
- export declare const WIDTH_FOR_MEDIUM_SPACING = 650;
107
- export declare const WIDTH_FOR_TIGHT_SPACING = 500;
108
- /** Grid lines extend this far past both plot edges, in px. */
109
- export declare const GRID_LINE_BLEED = 12;
110
- export declare const DEFAULT_LINE_STROKE_WIDTH = 1.5;
111
- /** Radius of the dot marking a point on a hovered category, in px. */
29
+ /** @internal Width of one caption character, for arithmetic label sizing (SSR-safe, no DOM). */
30
+ export declare const CAPTION_CHAR_WIDTH_PX = 6.2;
31
+ /** @internal Floor of the auto-sized left gutter. */
32
+ export declare const MIN_AUTO_INSET_LEFT: number;
33
+ /** @internal Ceiling of the auto-sized left gutter, so a wide formatter cannot eat the plot (no step). */
34
+ export declare const MAX_AUTO_INSET_LEFT = 96;
35
+ /** @internal The left gutter grows in steps of this, so plots stay aligned across charts. */
36
+ export declare const AUTO_INSET_LEFT_STEP: number;
37
+ /** @internal Minimum space between category labels before the axis thins them (rows: one caption line apart). */
38
+ export declare const MIN_CATEGORY_LABEL_GAP: number;
39
+ /** @internal Insets around a radial plot, which draws no axes. */
40
+ export declare const RADIAL_PLOT_INSET: number;
41
+ /** @internal Every line's stroke width (no stroke token; the 1.x weight). */
42
+ export declare const LINE_STROKE_WIDTH = 1.5;
43
+ /** @internal Radius of a point dot (the 1.x dot; no step). */
112
44
  export declare const LINE_POINT_RADIUS = 3.5;
113
- /** Opacity of the area fill under a line. */
114
- export declare const LINE_AREA_OPACITY = 0.12;
115
- /** Gap between slices, in radians. */
116
- export declare const PIE_PAD_ANGLE = 0.012;
117
- /** Slice corner radius in px. */
118
- export declare const PIE_CORNER_RADIUS = 2;
119
- /** Inner radius as a fraction of the outer radius, for donut mode. */
120
- export declare const PIE_DONUT_INNER_RATIO = 0.62;
121
- /**
122
- * Share of the narrowest slice that its two inner pad insets may consume.
123
- *
124
- * d3 turns {@link PIE_PAD_ANGLE} into a *constant linear* gap, and holding that
125
- * width at radius `r` costs an angular inset of `asin(gap / 2r)` — unbounded as
126
- * `r` approaches zero. When the two insets no longer fit inside a slice's own
127
- * span, d3 collapses that slice's inner edge rather than sweeping backwards. The
128
- * collapse is what makes a hole-less pie look wrong: the gap edge stops being
129
- * radial, so gaps sit at visibly different widths and lean at slight angles, and
130
- * it bites hardest between the *narrowest* slices, where the span runs out
131
- * first.
132
- *
133
- * So the inner radius is solved for rather than guessed: pick the radius that
134
- * keeps both insets inside the narrowest slice, with this much of it spent. At
135
- * 0.7 the measured gap spread is 1.01× (against 1.46× when the inner edge is
136
- * left to collapse), and the remaining 30% is what absorbs the corner radius.
137
- */
138
- export declare const PIE_MAX_INSET_SHARE = 0.7;
139
- /**
140
- * Ceiling on the auto-derived inner radius, as a share of the outer radius.
141
- *
142
- * The radius needed grows without bound as the narrowest slice shrinks, so a
143
- * single sliver would otherwise turn a pie into a donut. Past this point the
144
- * hole is doing more visual damage than the uneven gap it fixes, so the gap is
145
- * allowed to degrade instead — never worse than it renders today.
146
- */
147
- export declare const PIE_MAX_AUTO_INNER_RATIO = 0.06;
148
- /** How far outside the arc the tooltip anchors, in px. */
149
- export declare const PIE_TOOLTIP_ANCHOR_INSET = 8;
150
- /**
151
- * Default share below which a slice is folded into an "Other" bucket.
152
- *
153
- * Slivers this thin are unreadable and effectively unhoverable, so grouping
154
- * them communicates more than rendering each faithfully.
155
- */
156
- export declare const PIE_MIN_SLICE_SHARE = 0.02;
157
- /** React key used for the bucket that absorbs slices below the fold threshold. */
158
- export declare const AGGREGATED_SLICE_KEY = "__other__";
159
- /** Margin around a pie, which needs no axis gutters. */
160
- export declare const PIE_CHART_MARGIN: ChartMargin;
161
- /**
162
- * Duration in ms for the tooltip's fade and glide.
163
- *
164
- * Sits inside the 75–150ms band the DLS uses everywhere else. Only the tooltip
165
- * transitions — mark and legend emphasis snaps, because emphasis is feedback
166
- * and feedback that eases in reads as lag.
167
- */
168
- export declare const CHART_TRANSITION_MS = 100;
169
- /**
170
- * Opacity ramp for the mark states.
171
- *
172
- * The grammar is inherited from the reference charts and is the opposite of the
173
- * obvious one: hovering does not brighten the hovered mark, it *softens*
174
- * everything else. `MUTED` applies to marks outside the hovered category or
175
- * series.
176
- *
177
- * The step down from ACTIVE is deliberately steep. These are large filled areas
178
- * — bars and arcs — and a filled shape still reads as present at an opacity
179
- * where a hairline would have vanished, so a timid step barely registers as a
180
- * highlight at all.
181
- */
45
+ /** @internal Dash and gap of a dashed line. */
46
+ export declare const LINE_DASH: number;
47
+ /** @internal Opacity of an area fill (1.x `LINE_AREA_OPACITY`). */
48
+ export declare const AREA_FILL_OPACITY = 0.12;
49
+ /** @internal Opacity of a stacked area band: bands never overlap, so they carry a firmer fill (AreaChart). */
50
+ export declare const AREA_STACKED_FILL_OPACITY = 0.24;
51
+ /** @internal Opacity of `ChartMarkState.ACTIVE`. */
182
52
  export declare const CHART_MARK_OPACITY_ACTIVE = 1;
53
+ /** @internal Opacity of `ChartMarkState.MUTED`: steep, so a filled mark visibly recedes. */
183
54
  export declare const CHART_MARK_OPACITY_MUTED = 0.1;
184
- /**
185
- * The whisper tier, for `ChartMarkState.DIMMED`.
186
- *
187
- * Deliberately far gentler than MUTED: it is used where another affordance —
188
- * BarChart's cursor band — already marks the hovered category, so the
189
- * off-category marks only need to step back, not disappear.
190
- */
55
+ /** @internal Opacity of `ChartMarkState.DIMMED`: a whisper, where a cursor band already highlights. */
191
56
  export declare const CHART_MARK_OPACITY_DIMMED = 0.4;
192
- /** Distance in px between the tooltip and its anchor. */
193
- export declare const CHART_TOOLTIP_OFFSET = 10;
194
- /** Minimum width of the tooltip, in px. */
195
- export declare const CHART_TOOLTIP_MIN_WIDTH = 200;
196
- /** Maximum width of the tooltip, in px. */
197
- export declare const CHART_TOOLTIP_MAX_WIDTH = 320;
198
- /** Gap in px between the plot box and a side-placed legend. */
199
- export declare const CHART_LEGEND_SIDE_GAP = 16;
200
- /**
201
- * Spacing in px between entries in a horizontal legend.
202
- *
203
- * Applied as each entry's *trailing padding*, not a flex gap on the row: a gap
204
- * is dead space between hover targets, and sweeping across it drops the series
205
- * isolation between every pair of entries. Because the padding lives inside
206
- * the entries, measured entry sizes already include the spacing and the fit
207
- * computation needs no separate gap term.
208
- */
209
- export declare const CHART_LEGEND_COLUMN_GAP = 16;
210
- /** Spacing in px between entries in a vertical legend. Same contract as
211
- * {@link CHART_LEGEND_COLUMN_GAP}: trailing padding on the entry, no flex gap. */
212
- export declare const CHART_LEGEND_VERTICAL_GAP = 8;
213
- /**
214
- * Ceiling on the collapsed-legend popover's height, in px.
215
- *
216
- * Roughly eight entries. Past that the list scrolls rather than growing into a
217
- * popover taller than the chart it annotates — the cap on *visible* entries is
218
- * the caller's `legendMaxItems`; this one only bounds the overflow list itself.
219
- */
57
+ /** @internal Corner radius on the outer end of a wide bar. */
58
+ export declare const BAR_RADIUS: number;
59
+ /** @internal Corner radius of a bar narrower than `NARROW_BAR_WIDTH`. */
60
+ export declare const BAR_RADIUS_NARROW: number;
61
+ /** @internal Bars below this width use the smaller radius (1.x). */
62
+ export declare const NARROW_BAR_WIDTH = 40;
63
+ /** @internal Seam between stacked segments; whole pixels so every seam renders alike. */
64
+ export declare const STACK_SEGMENT_GAP: number;
65
+ /** @internal Minimum drawn length of a non-zero bar. */
66
+ export declare const MIN_BAR_LENGTH: number;
67
+ /**
68
+ * @internal The gap between categories as a share of the category band. Gaps are proportional so
69
+ * a narrow chart keeps its bars; this share and the in-group one below reproduce the 1.x look at
70
+ * 480px and up, where the bars also hit their 44px ceiling or the gaps hit theirs.
71
+ */
72
+ export declare const CATEGORY_GAP_RATIO = 0.35;
73
+ /** @internal Floor of the category gap, so neighbouring categories never touch. */
74
+ export declare const MIN_CATEGORY_GAP: number;
75
+ /**
76
+ * @internal Ceiling of the category gap. 1.x drew 24px plus 20% of each bar slot as air, so a wide
77
+ * grouped chart showed ~40px between groups; this ceiling keeps that look.
78
+ */
79
+ export declare const MAX_CATEGORY_GAP: number;
80
+ /** @internal The gap between bars in a group as a share of one bar's slot (the group gap binds a group). */
81
+ export declare const BAR_GAP_RATIO = 0.2;
82
+ /** @internal Floor of the in-group gap: one hairline of air (no step). */
83
+ export declare const MIN_BAR_GAP = 1;
84
+ /** @internal Ceiling of the in-group gap (the 1.x gap). */
85
+ export declare const MAX_BAR_GAP: number;
86
+ /** @internal Gap between heatmap cells as a share of a cell's step: proportional, like the bar gaps. */
87
+ export declare const HEATMAP_CELL_GAP_RATIO = 0.1;
88
+ /** @internal Floor of the heatmap cell gap: one hairline of air (no step). */
89
+ export declare const MIN_HEATMAP_CELL_GAP = 1;
90
+ /** @internal Ceiling of the heatmap cell gap (the 1.x gap). */
91
+ export declare const MAX_HEATMAP_CELL_GAP: number;
92
+ /** @internal Width of the seam between pie slices, constant in pixels at any radius (the stack seam). */
93
+ export declare const PIE_SLICE_GAP: number;
94
+ /** @internal Distance between the tooltip and its anchor. */
95
+ export declare const CHART_TOOLTIP_OFFSET: number;
96
+ /** @internal Rows the built-in tooltip body shows before "+N more". */
97
+ export declare const CHART_TOOLTIP_MAX_ROWS = 8;
98
+ /** @internal Gap between the plot box and a side-placed legend. */
99
+ export declare const CHART_LEGEND_SIDE_GAP: number;
100
+ /** @internal Height cap of the "+N more" legend list (about eight entries) before it scrolls. */
220
101
  export declare const CHART_LEGEND_OVERFLOW_MAX_HEIGHT = 208;
221
- /**
222
- * Floor on the collapsed-legend popover's width, in px, measured as the full
223
- * popover box — the list inside subtracts the Tooltip's 8px inset per side.
224
- * Without one, a couple of short labels shrink-wrap into a scrunched box.
225
- */
226
- export declare const CHART_LEGEND_OVERFLOW_MIN_WIDTH = 160;
227
- /**
228
- * Approximate width of one CAPTION-size character.
229
- *
230
- * Axis sizing estimates label widths arithmetically rather than measuring the
231
- * DOM, so it stays correct during build-time evaluation and server rendering.
232
- */
233
- export declare const CAPTION_CHAR_WIDTH_PX = 6.2;
234
- /** Ceiling for an auto-sized left margin, so a wide formatter can't eat the plot. */
235
- export declare const MAX_AUTO_MARGIN_LEFT = 96;
236
- /**
237
- * Floor for an auto-sized left margin.
238
- *
239
- * Enough for a two- or three-character tick plus {@link VALUE_AXIS_TICK_GAP}, so
240
- * an axis labelled `0`–`5` still has its numbers clear of the container edge
241
- * rather than jammed against it.
242
- */
243
- export declare const MIN_AUTO_MARGIN_LEFT = 32;
244
- /**
245
- * Quantum for an auto-sized left margin, in px.
246
- *
247
- * Sizing the gutter to the widest tick means the plot origin moves whenever that
248
- * label's width changes — live data crossing 999 → 1000 gains a digit and would
249
- * shift every mark sideways. Rounding up to a step absorbs that: the margin only
250
- * moves when a label crosses a real threshold, and two charts with similar ticks
251
- * land on the *same* value, so stacked charts in a dashboard keep their plots
252
- * aligned instead of each choosing its own origin.
253
- */
254
- export declare const AUTO_MARGIN_LEFT_STEP = 8;
255
- /** Minimum px between category labels before AUTO mode starts skipping them. */
256
- export declare const MIN_CATEGORY_LABEL_GAP = 8;
257
- /**
258
- * Default assignment order for series colors.
259
- *
260
- * Purple leads to match the Galaxy brand. Galaxy blue is deliberately absent —
261
- * it is structural only, reserved for primary actions and selection.
262
- */
263
- export declare const CHART_PALETTE_ORDER: ChartPalette[];
102
+ /** @internal 2:1, the aspect-ratio fallback of cartesian charts and PieChart. */
103
+ export declare const CHART_DEFAULT_ASPECT_RATIO = 2;