@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,37 +1,82 @@
1
- import Text, { TextSize, TextVariant, TextWeight } from "../text/Text.js";
2
- import FlexItem from "../containers/FlexItem.js";
3
- import FlexWrapper, { FlexDirection } from "../containers/FlexWrapper.js";
4
- import Circle from "../shapes/Circle.js";
1
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
2
+ import Flex, { AlignItems, FlexDirection } from "../layout/Flex.js";
3
+ import "./constants.js";
4
+ import Circle, { CircleSize } from "../shapes/Circle.js";
5
+ import Square, { SquareSize } from "../shapes/Square.js";
6
+ import { ChartLegendSwatch } from "./ChartLegend.js";
7
+ import Grid, { GridAlignItems } from "../layout/Grid.js";
5
8
  import { useChartTooltipPosition } from "./useChartTooltipPosition.js";
6
- import { ChartTooltipGrid, ChartTooltipLabelCell, ChartTooltipPositioner, ChartTooltipValueCell } from "./ChartPrimitives.js";
9
+ /* empty css */
10
+ import { styled } from "@linaria/react";
7
11
  import { Fragment, useState } from "react";
8
12
  import { jsx, jsxs } from "react/jsx-runtime";
13
+ import { cx } from "@linaria/core";
9
14
  //#region src/charts/ChartTooltip.tsx
10
- var ChartTooltip = ({ model, containerWidth, containerHeight, anchorHalfWidth, placeAwayFromX, verticalAlign, renderer, maxItems }) => {
15
+ /**
16
+ * @internal The in-chart tooltip: an absolutely positioned box inside the plot box, anchored to a
17
+ * geometric point that tracks the engaged category (not the `Tooltip` component, which anchors
18
+ * to a trigger element; chartgroupprovider.md Decision 8). It stays mounted so it can fade out,
19
+ * keeping its last content while it does. `aria-hidden`: keyboard moves are announced through the
20
+ * frame's live region instead.
21
+ */
22
+ /** The positioned box. Position arrives as `--gx-chart-tooltip-x` / `-y` (continuous values). */
23
+ var Root = /*#__PURE__*/ styled("div")({
24
+ name: "Root",
25
+ class: "gx-ChartTooltip-rtysfji",
26
+ propsAsIs: false
27
+ });
28
+ /** Shown. Declared after `Root` so it wins. */
29
+ var VISIBLE_STATE_CSS = "gx-ChartTooltip-VISIBLE_STATE_CSS-v1o4v2om";
30
+ function Row({ row, swatch }) {
31
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(Flex, {
32
+ alignItems: AlignItems.CENTER,
33
+ gap: 8,
34
+ minWidth: 0,
35
+ children: [swatch === ChartLegendSwatch.SQUARE ? /* @__PURE__ */ jsx(Square, {
36
+ size: SquareSize.SMALL,
37
+ hex: row.color
38
+ }) : /* @__PURE__ */ jsx(Circle, {
39
+ size: CircleSize.SMALL,
40
+ hex: row.color
41
+ }), /* @__PURE__ */ jsx(Text, {
42
+ size: TextSize.BODY_SM,
43
+ variant: TextVariant.SECONDARY,
44
+ lineClamp: 1,
45
+ children: row.label
46
+ })]
47
+ }), /* @__PURE__ */ jsx(Text, {
48
+ size: TextSize.BODY_SM,
49
+ isTabular: true,
50
+ align: "right",
51
+ children: row.formattedValue
52
+ })] });
53
+ }
54
+ /** @internal The chart tooltip body and positioner. */
55
+ function ChartTooltip({ model, containerWidth, containerHeight, anchorHalfWidth, placeAwayFromX, verticalAlign, renderTooltip, swatch = ChartLegendSwatch.CIRCLE }) {
11
56
  const [retained, setRetained] = useState(model);
12
57
  if (model !== null && model !== retained) setRetained(model);
58
+ const displayed = model ?? retained;
13
59
  const { tooltipRef, x, y, isMeasured } = useChartTooltipPosition({
14
- anchorX: model?.anchorX ?? retained?.anchorX ?? 0,
15
- anchorY: model?.anchorY ?? retained?.anchorY ?? 0,
60
+ anchorX: displayed?.anchorX ?? 0,
61
+ anchorY: displayed?.anchorY ?? 0,
16
62
  containerWidth,
17
63
  containerHeight,
18
64
  anchorHalfWidth,
19
65
  placeAwayFromX,
20
66
  verticalAlign
21
67
  });
22
- const displayed = model ?? retained;
23
68
  const rows = displayed?.rows ?? [];
24
- const cap = maxItems === void 0 ? rows.length : Math.max(1, maxItems);
25
- const visibleRows = rows.slice(0, cap);
69
+ const visibleRows = rows.slice(0, 8);
26
70
  const hiddenCount = rows.length - visibleRows.length;
27
- return /* @__PURE__ */ jsx(ChartTooltipPositioner, {
71
+ return /* @__PURE__ */ jsx(Root, {
28
72
  ref: tooltipRef,
29
- $x: x,
30
- $y: y,
31
- $isVisible: model !== null && isMeasured,
32
- role: "tooltip",
33
- "aria-hidden": model === null,
34
- children: !displayed ? null : renderer ? renderer(displayed) : /* @__PURE__ */ jsxs(FlexWrapper, {
73
+ "aria-hidden": "true",
74
+ className: cx(model !== null && isMeasured && VISIBLE_STATE_CSS),
75
+ style: {
76
+ "--gx-chart-tooltip-x": `${x}px`,
77
+ "--gx-chart-tooltip-y": `${y}px`
78
+ },
79
+ children: displayed === null ? null : renderTooltip ? renderTooltip(displayed) : /* @__PURE__ */ jsxs(Flex, {
35
80
  direction: FlexDirection.COLUMN,
36
81
  gap: 8,
37
82
  fillWidth: true,
@@ -39,37 +84,29 @@ var ChartTooltip = ({ model, containerWidth, containerHeight, anchorHalfWidth, p
39
84
  /* @__PURE__ */ jsx(Text, {
40
85
  size: TextSize.BODY_SM,
41
86
  variant: TextVariant.SECONDARY,
42
- isEllipsis: true,
87
+ lineClamp: 1,
43
88
  children: displayed.label
44
89
  }),
45
- displayed.rows.length === 0 ? /* @__PURE__ */ jsx(Text, {
90
+ rows.length === 0 ? /* @__PURE__ */ jsx(Text, {
46
91
  size: TextSize.BODY_SM,
47
- variant: TextVariant.SECONDARY,
48
92
  children: "No data"
49
- }) : /* @__PURE__ */ jsx(ChartTooltipGrid, { children: visibleRows.map((row) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(ChartTooltipLabelCell, { children: [/* @__PURE__ */ jsx(FlexItem, {
50
- shrink: 0,
51
- children: /* @__PURE__ */ jsx(Circle, {
52
- size: 8,
53
- hex: row.color
54
- })
55
- }), /* @__PURE__ */ jsx(Text, {
56
- size: TextSize.BODY_SM,
57
- isEllipsis: true,
58
- children: row.label
59
- })] }), /* @__PURE__ */ jsx(ChartTooltipValueCell, { children: /* @__PURE__ */ jsx(Text, {
60
- size: TextSize.BODY_SM,
61
- weight: TextWeight.MEDIUM,
62
- align: "right",
63
- children: row.formattedValue
64
- }) })] }, row.key)) }),
93
+ }) : /* @__PURE__ */ jsx(Grid, {
94
+ columns: "minmax(0, 1fr) auto",
95
+ gap: [4, 16],
96
+ alignItems: GridAlignItems.CENTER,
97
+ children: visibleRows.map((row) => /* @__PURE__ */ jsx(Row, {
98
+ row,
99
+ swatch
100
+ }, row.key))
101
+ }),
65
102
  hiddenCount > 0 && /* @__PURE__ */ jsx(Text, {
66
103
  size: TextSize.BODY_SM,
67
- variant: TextVariant.SECONDARY,
104
+ variant: TextVariant.TERTIARY,
68
105
  children: `+${hiddenCount} more`
69
106
  })
70
107
  ]
71
108
  })
72
109
  });
73
- };
110
+ }
74
111
  //#endregion
75
- export { ChartTooltip as default };
112
+ export { ChartTooltip };
@@ -0,0 +1,35 @@
1
+ import { type BaseChartProps, type ChartLabelFormatter, ChartPalette, type ChartValueDomain } from "./types.js";
2
+ /** One cell of the grid. */
3
+ export interface HeatmapCellDatum {
4
+ /** Column label; must match a column on the x-axis. */
5
+ column: string;
6
+ /** Row label; must match a row on the y-axis. */
7
+ row: string;
8
+ /** Value; `null` is an empty cell (no reading), which is not the same as 0. */
9
+ value: number | null;
10
+ }
11
+ /** Heatmap's own props; the shared chart props follow (`BaseChartProps`). */
12
+ interface HeatmapOwnProps {
13
+ /** One entry per filled cell. A column × row pair with no entry, or `value: null`, is an empty cell. */
14
+ cells: HeatmapCellDatum[];
15
+ /** Column order, left to right (e.g. hours). Pass it when some columns have no cells. @default every cell's `column`, first-seen order */
16
+ columns?: string[];
17
+ /** Row order, top to bottom (e.g. weekdays). Pass it when some rows have no cells. @default every cell's `row`, first-seen order */
18
+ rows?: string[];
19
+ /**
20
+ * The hue whose ramp fills the cells. `PRIMARY`, `SECONDARY` and `TERTIARY` use the `indigo`, `sky` and `violet` ramps (no gray).
21
+ * @default ChartPalette.PURPLE
22
+ */
23
+ color?: ChartPalette;
24
+ /**
25
+ * Formats column and row labels on the axes and in the tooltip heading. Selection still matches raw labels.
26
+ * @default (label) => label
27
+ */
28
+ labelFormatter?: ChartLabelFormatter;
29
+ /** `min` / `max` of the color ramp (`tickCount` is ignored). Fix it to compare heatmaps. @default [smallest, largest] of the non-null values */
30
+ valueDomain?: Partial<ChartValueDomain>;
31
+ }
32
+ export type HeatmapProps = HeatmapOwnProps & BaseChartProps<string>;
33
+ /** A grid of cells colored by value along one hue's token ramp. */
34
+ declare const Heatmap: import("react").ForwardRefExoticComponent<HeatmapOwnProps & BaseChartProps<string> & import("react").RefAttributes<HTMLDivElement>>;
35
+ export default Heatmap;
@@ -0,0 +1,295 @@
1
+ import { Orientation } from "../theme/enums.js";
2
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
3
+ import { t } from "../theme/tokens/t.js";
4
+ import Flex, { AlignItems } from "../layout/Flex.js";
5
+ import { ChartKind, ChartLegendPlacement, ChartMarkState, ChartPalette, ChartTargetShape } from "./types.js";
6
+ import { CHART_MARK_STATE_TO_CSS_MAP, HEATMAP_CELL_CSS, HEATMAP_EMPTY_CELL_CSS } from "./ChartPrimitives.js";
7
+ import { PLOT_INSET_BOTTOM, PLOT_INSET_RIGHT, PLOT_INSET_TOP } from "./constants.js";
8
+ import { clamp } from "./chartScales.js";
9
+ import { ChartCategoryAxis } from "./ChartAxis.js";
10
+ import Square, { SquareSize, SquareVariant } from "../shapes/Square.js";
11
+ import { ChartLegendSwatch } from "./ChartLegend.js";
12
+ import { ChartFrame } from "./ChartFrame.js";
13
+ import { formatChartValue } from "./chartFormat.js";
14
+ import { useChartDimensions } from "./useChartDimensions.js";
15
+ import { useChartFormatters } from "./useChartFormatters.js";
16
+ import { useChartInteraction } from "./useChartInteraction.js";
17
+ import { HEATMAP_CELL_RADIUS, HEATMAP_STEP_TO_TOKEN_MAP, buildHeatmapGeometry, estimateRowLabelInset, getHeatmapDomain, getHeatmapLabels } from "./heatmapGeometry.js";
18
+ /* empty css */
19
+ import { styled } from "@linaria/react";
20
+ import { forwardRef, useCallback, useMemo, useRef } from "react";
21
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
22
+ import { cx } from "@linaria/core";
23
+ //#region src/charts/Heatmap.tsx
24
+ /**
25
+ * Heatmap shows a value for every pair of two categories (hour × weekday, endpoint × region) as a
26
+ * grid of cells whose fill gets stronger as the value grows. The fill is one hue's token ramp in
27
+ * five steps (`color`, a `ChartPalette` slot), so it follows the theme; a
28
+ * missing value is an empty, outlined cell. Hover and arrow keys move cell by cell (Up / Down by
29
+ * row); the tooltip names the column, the row and the value; a click or Enter reports the cell. A
30
+ * step legend shows the low and high ends. It does not join `ChartGroupProvider` sync.
31
+ *
32
+ * The chart fills its parent; with no definite parent height it takes an aspect ratio of columns
33
+ * to rows (clamped 1–4), so cells stay near-square. Needs the optional peers `d3-scale` and
34
+ * `d3-shape`.
35
+ */
36
+ var DEFAULT_PLACEHOLDER = "No data available";
37
+ /** The step legend: aligned with the plot's left edge (a continuous inset). */
38
+ var LegendRoot = /*#__PURE__*/ styled("div")({
39
+ name: "LegendRoot",
40
+ class: "gx-Heatmap-LegendRoot-lii3tjm",
41
+ propsAsIs: false
42
+ });
43
+ /** A ramp swatch: a `Square INHERIT` that fills with this wrapper's `color`. */
44
+ var RampSwatch = /*#__PURE__*/ styled("span")({
45
+ name: "RampSwatch",
46
+ class: "gx-Heatmap-RampSwatch-r12vxnd7",
47
+ propsAsIs: false
48
+ });
49
+ /** The "No data" swatch: an outlined square the size of `SquareSize.SMALL`. */
50
+ var EmptySwatch = /*#__PURE__*/ styled("span")({
51
+ name: "EmptySwatch",
52
+ class: "gx-Heatmap-EmptySwatch-echoni0",
53
+ propsAsIs: false
54
+ });
55
+ function HeatmapLegend({ ramp, min, max, hasEmpty, inset }) {
56
+ return /* @__PURE__ */ jsx(LegendRoot, {
57
+ style: { "--gx-heatmap-legend-inset": `${inset}px` },
58
+ children: /* @__PURE__ */ jsxs(Flex, {
59
+ alignItems: AlignItems.CENTER,
60
+ gap: 8,
61
+ children: [
62
+ /* @__PURE__ */ jsx(Text, {
63
+ size: TextSize.CAPTION,
64
+ variant: TextVariant.TERTIARY,
65
+ isTabular: true,
66
+ children: min
67
+ }),
68
+ ramp.map((token) => /* @__PURE__ */ jsx(RampSwatch, {
69
+ style: { "--gx-chart-mark-color": token },
70
+ children: /* @__PURE__ */ jsx(Square, {
71
+ size: SquareSize.SMALL,
72
+ variant: SquareVariant.INHERIT
73
+ })
74
+ }, token)),
75
+ /* @__PURE__ */ jsx(Text, {
76
+ size: TextSize.CAPTION,
77
+ variant: TextVariant.TERTIARY,
78
+ isTabular: true,
79
+ children: max
80
+ }),
81
+ hasEmpty && /* @__PURE__ */ jsxs(Flex, {
82
+ alignItems: AlignItems.CENTER,
83
+ gap: 8,
84
+ padding: [
85
+ 0,
86
+ 0,
87
+ 0,
88
+ 8
89
+ ],
90
+ children: [/* @__PURE__ */ jsx(EmptySwatch, {}), /* @__PURE__ */ jsx(Text, {
91
+ size: TextSize.CAPTION,
92
+ variant: TextVariant.TERTIARY,
93
+ children: "No data"
94
+ })]
95
+ })
96
+ ]
97
+ })
98
+ });
99
+ }
100
+ /** A grid of cells colored by value along one hue's token ramp. */
101
+ var Heatmap = forwardRef(function Heatmap(props, ref) {
102
+ const { cells, columns: explicitColumns, rows: explicitRows, color = ChartPalette.PURPLE, labelFormatter, valueDomain, valueFormatter, hasLegend = true, hasTooltip = true, renderTooltip, isLoading = false, placeholder = DEFAULT_PLACEHOLDER, onSelect, selection, ariaLabel, id, className, style, ...rest } = props;
103
+ const plotRef = useRef(null);
104
+ const { formatValue, formatLabel } = useChartFormatters(valueFormatter, labelFormatter);
105
+ const { columns, rows } = useMemo(() => getHeatmapLabels(cells, explicitColumns, explicitRows), [
106
+ cells,
107
+ explicitColumns,
108
+ explicitRows
109
+ ]);
110
+ const domainMin = valueDomain?.min;
111
+ const domainMax = valueDomain?.max;
112
+ const domain = useMemo(() => getHeatmapDomain(cells, {
113
+ min: domainMin,
114
+ max: domainMax
115
+ }), [
116
+ cells,
117
+ domainMin,
118
+ domainMax
119
+ ]);
120
+ const ramp = HEATMAP_STEP_TO_TOKEN_MAP[color];
121
+ const formattedRows = useMemo(() => rows.map(formatLabel), [rows, formatLabel]);
122
+ const insetLeft = useMemo(() => estimateRowLabelInset(formattedRows), [formattedRows]);
123
+ const dimensions = useChartDimensions(plotRef, useMemo(() => ({
124
+ top: PLOT_INSET_TOP,
125
+ right: PLOT_INSET_RIGHT,
126
+ bottom: PLOT_INSET_BOTTOM,
127
+ left: insetLeft
128
+ }), [insetLeft]));
129
+ const { plotWidth, plotHeight } = dimensions;
130
+ const geometry = useMemo(() => buildHeatmapGeometry({
131
+ cells,
132
+ columns,
133
+ rows,
134
+ domain,
135
+ plotWidth,
136
+ plotHeight
137
+ }), [
138
+ cells,
139
+ columns,
140
+ rows,
141
+ domain,
142
+ plotWidth,
143
+ plotHeight
144
+ ]);
145
+ const isEmpty = columns.length === 0 || rows.length === 0;
146
+ const cellCount = columns.length * rows.length;
147
+ const cellColumnKeys = useMemo(() => rows.flatMap(() => columns), [rows, columns]);
148
+ const grid = useMemo(() => ({ columns: Math.max(1, columns.length) }), [columns.length]);
149
+ const interaction = useChartInteraction({
150
+ categoryCount: cellCount,
151
+ categoryKeys: cellColumnKeys,
152
+ enableGroupSync: false,
153
+ selection,
154
+ categoryMuteState: ChartMarkState.ACTIVE,
155
+ isDisabled: !(hasTooltip || onSelect) || isLoading || isEmpty,
156
+ isLoading,
157
+ grid
158
+ });
159
+ const stepColor = useCallback((cell) => cell.step === null ? t.color.border.primary : ramp[cell.step] ?? "", [ramp]);
160
+ const buildCategoryTooltip = useCallback((index) => {
161
+ const cell = geometry.cells[index];
162
+ if (!cell) return null;
163
+ return {
164
+ label: `${formatLabel(cell.column)} · ${formatLabel(cell.row)}`,
165
+ rows: [{
166
+ key: cell.id,
167
+ label: "Value",
168
+ value: cell.value,
169
+ formattedValue: formatChartValue(cell.value, formatValue),
170
+ color: stepColor(cell)
171
+ }],
172
+ anchorX: cell.x + cell.width / 2,
173
+ anchorY: cell.y
174
+ };
175
+ }, [
176
+ geometry.cells,
177
+ formatLabel,
178
+ formatValue,
179
+ stepColor
180
+ ]);
181
+ const describeCategory = useCallback((index) => {
182
+ const cell = geometry.cells[index];
183
+ if (!cell) return "";
184
+ const value = cell.value === null ? "no data" : formatValue(cell.value);
185
+ return `${formatLabel(cell.column)}, ${formatLabel(cell.row)}: ${value}.`;
186
+ }, [
187
+ geometry.cells,
188
+ formatLabel,
189
+ formatValue
190
+ ]);
191
+ const categoryTargets = useMemo(() => geometry.cells.map((cell) => {
192
+ const x0 = Math.max(0, cell.x - geometry.gapX / 2);
193
+ const y0 = Math.max(0, cell.y - geometry.gapY / 2);
194
+ const x1 = Math.min(plotWidth, cell.x + cell.width + geometry.gapX / 2);
195
+ const y1 = Math.min(plotHeight, cell.y + cell.height + geometry.gapY / 2);
196
+ return {
197
+ key: cell.id,
198
+ shape: ChartTargetShape.RECT,
199
+ x: x0,
200
+ y: y0,
201
+ width: x1 - x0,
202
+ height: y1 - y0
203
+ };
204
+ }), [
205
+ geometry,
206
+ plotWidth,
207
+ plotHeight
208
+ ]);
209
+ const handleSelect = useCallback((index) => {
210
+ const cell = geometry.cells[index];
211
+ if (!cell || !onSelect) return;
212
+ onSelect({
213
+ categoryIndex: cell.columnIndex,
214
+ categoryKey: cell.column,
215
+ seriesKey: cell.row,
216
+ ...cell.value !== null && { value: cell.value }
217
+ });
218
+ }, [geometry.cells, onSelect]);
219
+ const passedAriaLabel = typeof rest["aria-label"] === "string" ? rest["aria-label"] : void 0;
220
+ const resolvedAriaLabel = ariaLabel ?? passedAriaLabel ?? `Heatmap, ${columns.length} columns by ${rows.length} rows`;
221
+ const aspectRatio = clamp(columns.length / Math.max(1, rows.length), 1, 4);
222
+ return /* @__PURE__ */ jsx(ChartFrame, {
223
+ rootRef: ref,
224
+ plotRef,
225
+ id,
226
+ className,
227
+ style,
228
+ rest,
229
+ dimensions,
230
+ interaction,
231
+ kind: ChartKind.HEATMAP,
232
+ categoryCount: cellCount,
233
+ ariaLabel: resolvedAriaLabel,
234
+ aspectRatio,
235
+ axes: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ChartCategoryAxis, {
236
+ labels: columns,
237
+ positions: geometry.columnPositions,
238
+ step: geometry.columnStep,
239
+ plotWidth,
240
+ plotHeight,
241
+ orientation: Orientation.HORIZONTAL,
242
+ insetLeft,
243
+ formatter: formatLabel
244
+ }), /* @__PURE__ */ jsx(ChartCategoryAxis, {
245
+ labels: rows,
246
+ positions: geometry.rowPositions,
247
+ step: geometry.rowStep,
248
+ plotWidth,
249
+ plotHeight,
250
+ orientation: Orientation.VERTICAL,
251
+ insetLeft,
252
+ formatter: formatLabel
253
+ })] }),
254
+ describeCategory,
255
+ hasTooltip,
256
+ buildCategoryTooltip,
257
+ renderTooltip,
258
+ categoryTargets,
259
+ onCategorySelect: onSelect && handleSelect,
260
+ anchorHalfWidth: (geometry.cells[0]?.width ?? 0) / 2,
261
+ isEmpty,
262
+ isLoading,
263
+ placeholder,
264
+ hasLegend,
265
+ legendItems: [],
266
+ legendPlacement: ChartLegendPlacement.BOTTOM,
267
+ legendSwatch: ChartLegendSwatch.SQUARE,
268
+ legend: isEmpty ? null : /* @__PURE__ */ jsx(HeatmapLegend, {
269
+ ramp,
270
+ min: formatValue(domain[0]),
271
+ max: formatValue(domain[1]),
272
+ hasEmpty: geometry.hasEmptyCells,
273
+ inset: insetLeft
274
+ }),
275
+ children: geometry.cells.map((cell, index) => {
276
+ let state = interaction.getMarkState({
277
+ categoryIndex: index,
278
+ seriesKey: cell.row
279
+ });
280
+ if (state === ChartMarkState.MUTED && !isLoading) state = ChartMarkState.DIMMED;
281
+ return /* @__PURE__ */ jsx("rect", {
282
+ x: cell.x,
283
+ y: cell.y,
284
+ width: cell.width,
285
+ height: cell.height,
286
+ rx: HEATMAP_CELL_RADIUS,
287
+ className: cx(cell.step === null ? HEATMAP_EMPTY_CELL_CSS : HEATMAP_CELL_CSS, interaction.activeIndex === index && "gx-ChartPrimitives-HEATMAP_ACTIVE_CELL_CSS-h17guewt", CHART_MARK_STATE_TO_CSS_MAP[state]),
288
+ style: cell.step === null ? void 0 : { "--gx-chart-mark-color": stepColor(cell) }
289
+ }, cell.id);
290
+ })
291
+ });
292
+ });
293
+ Heatmap.displayName = "Heatmap";
294
+ //#endregion
295
+ export { Heatmap as default };
@@ -1,57 +1,64 @@
1
- import { LineChartCurve } from "./types";
2
- import type { BaseCartesianChartProps, ChartSelectionEvent, ChartSelectionInput, ChartSeriesStyles, ChartSize, LineChartLineDatum } from "./types";
3
- export type LineChartProps<TMetric extends string> = BaseCartesianChartProps & ChartSize & {
1
+ import { type ReactElement, type RefAttributes } from "react";
2
+ import { type BaseCartesianChartProps, ChartCurve, ChartKind, type ChartSeriesStyles } from "./types.js";
3
+ /** One reading on a line. */
4
+ export interface LineChartPointDatum {
5
+ /** Category this point sits on; must match a category on the axis. */
6
+ x: string;
7
+ /** Value; `null` breaks the line (a missing reading is not zero). */
8
+ y: number | null;
9
+ }
10
+ /** One line. Its label and color come from the chart's `series` record, keyed by `metric`. */
11
+ export interface LineChartLineDatum<TMetric extends string> {
12
+ /** Which metric this line draws; a key of `series`. */
13
+ metric: TMetric;
14
+ /** Points in category order. Sparse is fine: a missing category is a gap. */
15
+ points: LineChartPointDatum[];
4
16
  /**
5
- * Presentation for every metric, keyed by metric.
6
- *
7
- * `TMetric` is inferred from these keys alone — `lines` wraps it in
8
- * `NoInfer` — so a mistyped metric is a compile error rather than a line
9
- * that silently fails to draw.
17
+ * Draw the line dashed (4px dash, 4px gap): a forecast, a target, a previous period.
18
+ * @default false
10
19
  */
20
+ isDashed?: boolean;
21
+ }
22
+ /** LineChart's own props; the shared chart props follow (`BaseCartesianChartProps`). */
23
+ interface LineChartOwnProps<TMetric extends string> {
24
+ /** Label and color for every metric, keyed by metric. `TMetric` is inferred from these keys only, so a misspelt metric in `lines` is a type error. */
11
25
  series: ChartSeriesStyles<TMetric>;
12
- /** One entry per line. Lines may be sparse. */
26
+ /** One entry per line. Lines may be sparse; a missing category or a `null` reading is a gap. */
13
27
  lines: LineChartLineDatum<NoInfer<TMetric>>[];
14
- /**
15
- * Explicit category order along the x-axis.
16
- *
17
- * Worth supplying whenever the lines are sparse: the inferred order is the
18
- * union of each line's categories in first-seen order, which is only
19
- * correct if some line covers them all.
20
- */
28
+ /** Category order along the x-axis. Pass it whenever lines are sparse. @default the union of every line's `x`, first-seen order */
21
29
  categories?: string[];
22
- /** @default LineChartCurve.SMOOTH */
23
- curve?: LineChartCurve;
24
- /** Default stroke width in px, overridable per line. */
25
- strokeWidth?: number;
26
- /** Draw a vertical rule at the active category. @default true */
27
- showCursor?: boolean;
28
- /**
29
- * Fires when a category is clicked. Supplying it is what makes the plot
30
- * clickable.
31
- *
32
- * Always the category, never a single line: hit testing is per column here,
33
- * and a line has no segment to land on — the reading at a category belongs
34
- * to every line at once, which is exactly what the tooltip reports. Use
35
- * `seriesKey` in {@link selection} to narrow to one line.
36
- */
37
- onSelect?: (event: ChartSelectionEvent<NoInfer<TMetric>>) => void;
38
30
  /**
39
- * Which marks read as selected. Matching lines hold full strength, the rest
40
- * recede, and each selected category keeps a persistent cursor with its
41
- * dots — the hover rule one step firmer, held rather than previewed.
42
- *
43
- * Presentational and never written by the chart: the state belongs to
44
- * whatever the selection is filtering, so the two cannot drift apart.
31
+ * How segments between points are drawn.
32
+ * @default ChartCurve.SMOOTH
45
33
  */
46
- selection?: ChartSelectionInput<NoInfer<TMetric>>;
47
- };
34
+ curve?: ChartCurve;
35
+ }
36
+ export type LineChartProps<TMetric extends string> = LineChartOwnProps<TMetric> & BaseCartesianChartProps<NoInfer<TMetric>>;
37
+ /** @internal How `LineChartRoot` fills under its lines. */
38
+ export declare enum LineChartFill {
39
+ /** Lines only (LineChart). */
40
+ NONE = "NONE",
41
+ /** A translucent area to the baseline (AreaChart). */
42
+ AREA = "AREA"
43
+ }
44
+ /** @internal `LineChartRoot`'s extra props: the engine modes AreaChart sets. */
45
+ export interface LineChartRootProps<TMetric extends string> extends LineChartOwnProps<TMetric> {
46
+ /** Fill mode. */
47
+ fill: LineChartFill;
48
+ /** Stack the series in array order (AreaChart): top edges are running totals. */
49
+ isStacked: boolean;
50
+ /** Which chart (default name and legend swatch). */
51
+ kind: ChartKind;
52
+ }
53
+ /** @internal The generic signature of `LineChartRoot` (docgen reads an arrow function). */
54
+ declare const LINE_CHART_ROOT_SIGNATURE: <TMetric extends string>(_props: LineChartRootProps<TMetric> & BaseCartesianChartProps<NoInfer<TMetric>> & RefAttributes<HTMLDivElement>) => ReactElement | null;
55
+ /** @internal Shared by LineChart and AreaChart; apps use those. */
56
+ export declare const LineChartRoot: typeof LINE_CHART_ROOT_SIGNATURE;
48
57
  /**
49
- * Line chart over a categorical x-axis.
50
- *
51
- * Hit testing is per category column rather than per stroke: the tooltip
52
- * reports every line at the hovered category at once, which is almost always
53
- * what a reader wants, and it avoids the proximity search a
54
- * nearest-point-to-cursor model needs.
58
+ * The public, generic call signature (`TMetric` inferred from `series`). Never called: it only
59
+ * types the default export. An arrow function so react-docgen-typescript reads the props.
55
60
  */
56
- declare const LineChart: <TMetric extends string>({ series, lines, categories, width, height, fillWidth, fillHeight, aspectRatio, margin, curve, strokeWidth, showCursor, onSelect, selection, valueUnit, valueFormatter, labelFormatter, valueDomain, categoryLabelMode, categoryAxisTitle, valueAxisTitle, showGrid, showLegend, legendMaxItems, noTooltip, tooltipRenderer, tooltipMaxItems, isLoading, contentWhenEmpty, ariaLabel, ariaDescription, }: LineChartProps<TMetric>) => import("react").JSX.Element;
61
+ declare const LINE_CHART_SIGNATURE: <TMetric extends string>(_props: LineChartProps<TMetric> & RefAttributes<HTMLDivElement>) => ReactElement | null;
62
+ /** Lines over a categorical x-axis. */
63
+ declare const LineChart: typeof LINE_CHART_SIGNATURE;
57
64
  export default LineChart;