@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,115 +1,139 @@
1
+ import { Orientation } from "../theme/enums.js";
1
2
  import Text, { TextSize, TextVariant } from "../text/Text.js";
2
- import FlexWrapper, { AlignItems, JustifyContent } from "../containers/FlexWrapper.js";
3
- import { ChartCategoryLabelMode } from "./types.js";
4
- import "./constants.js";
5
- import { getCategoryLabelStride } from "./chartScales.js";
6
- import { ChartAxisLabelBox, ChartGridLine } from "./ChartPrimitives.js";
3
+ import Flex, { AlignItems, JustifyContent } from "../layout/Flex.js";
4
+ import { CHART_AXIS_LABEL_BOX_CSS, CHART_GRID_LINE_CSS } from "./ChartPrimitives.js";
5
+ import { AXIS_TITLE_BAND, AXIS_TITLE_GAP, CAPTION_CHAR_WIDTH_PX, CATEGORY_AXIS_LABEL_GAP, CATEGORY_AXIS_LABEL_HEIGHT, GRID_LINE_BLEED, PLOT_INSET_RIGHT, VALUE_AXIS_TICK_GAP } from "./constants.js";
6
+ import { clamp, getCategoryLabelStride, getRowLabelStride } from "./chartScales.js";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  //#region src/charts/ChartAxis.tsx
9
- var ChartValueAxis = ({ ticks, scale, plotWidth, plotHeight, marginLeft, formatter, showGrid = true, title }) => {
10
- const titleBand = title ? 26 : 0;
11
- const labelWidth = Math.max(0, marginLeft - titleBand - 12);
12
- return /* @__PURE__ */ jsxs("g", {
13
- "aria-hidden": true,
14
- children: [ticks.map((tick) => /* @__PURE__ */ jsxs("g", {
15
- transform: `translate(0, ${scale(tick)})`,
16
- children: [showGrid && /* @__PURE__ */ jsx(ChartGridLine, {
17
- x1: -12,
18
- x2: plotWidth + 12,
9
+ /**
10
+ * @internal Axes for the cartesian charts and Heatmap. No domain line and no tick marks: the grid
11
+ * hairlines carry the structure, and the one at zero is the baseline. Labels render through
12
+ * `Text` (`CAPTION`, `TERTIARY`) in `foreignObject` boxes, truncating with `lineClamp={1}`.
13
+ */
14
+ /** One label box: a `foreignObject` holding a centered `Text`. */
15
+ function AxisLabel({ x, y, width, height, justify, align, isTabular = false, children }) {
16
+ return /* @__PURE__ */ jsx("foreignObject", {
17
+ x,
18
+ y,
19
+ width: Math.max(0, width),
20
+ height,
21
+ className: CHART_AXIS_LABEL_BOX_CSS,
22
+ children: /* @__PURE__ */ jsx(Flex, {
23
+ alignItems: AlignItems.CENTER,
24
+ justifyContent: justify,
25
+ fillWidth: true,
26
+ height: "100%",
27
+ children: /* @__PURE__ */ jsx(Text, {
28
+ size: TextSize.CAPTION,
29
+ variant: TextVariant.TERTIARY,
30
+ align,
31
+ lineClamp: 1,
32
+ isTabular,
33
+ children
34
+ })
35
+ })
36
+ });
37
+ }
38
+ /** @internal Grid hairlines at every tick, tick labels, and the value axis title. */
39
+ function ChartValueAxis({ ticks, scale, plotWidth, plotHeight, insetLeft, formatter, title }) {
40
+ const titleBand = title ? AXIS_TITLE_BAND + AXIS_TITLE_GAP : 0;
41
+ const labelWidth = insetLeft - titleBand - VALUE_AXIS_TICK_GAP;
42
+ return /* @__PURE__ */ jsxs("g", { children: [ticks.map((tick) => {
43
+ return /* @__PURE__ */ jsxs("g", {
44
+ transform: `translate(0, ${Math.round(scale(tick))})`,
45
+ children: [/* @__PURE__ */ jsx("line", {
46
+ className: CHART_GRID_LINE_CSS,
47
+ x1: -GRID_LINE_BLEED,
48
+ x2: plotWidth + GRID_LINE_BLEED,
19
49
  y1: 0,
20
50
  y2: 0
21
- }), labelWidth > 0 && /* @__PURE__ */ jsx(ChartAxisLabelBox, {
22
- x: -marginLeft + titleBand,
51
+ }), labelWidth > 0 && /* @__PURE__ */ jsx(AxisLabel, {
52
+ x: -insetLeft + titleBand,
23
53
  y: -20 / 2,
24
54
  width: labelWidth,
25
55
  height: 20,
26
- children: /* @__PURE__ */ jsx(FlexWrapper, {
27
- justifyContent: JustifyContent.END,
28
- alignItems: AlignItems.CENTER,
29
- fillWidth: true,
30
- fillHeight: true,
31
- children: /* @__PURE__ */ jsx(Text, {
32
- size: TextSize.CAPTION,
33
- variant: TextVariant.TERTIARY,
34
- align: "right",
35
- isEllipsis: true,
36
- children: formatter(tick)
37
- })
38
- })
56
+ justify: JustifyContent.END,
57
+ align: "right",
58
+ isTabular: true,
59
+ children: formatter(tick)
39
60
  })]
40
- }, tick)), title && /* @__PURE__ */ jsx("g", {
41
- transform: `translate(${-marginLeft + 18 / 2}, ${plotHeight / 2}) rotate(-90)`,
42
- children: /* @__PURE__ */ jsx(ChartAxisLabelBox, {
61
+ }, tick);
62
+ }), title && /* @__PURE__ */ jsx("g", {
63
+ transform: `translate(${-insetLeft + AXIS_TITLE_BAND / 2}, ${plotHeight / 2}) rotate(-90)`,
64
+ children: /* @__PURE__ */ jsx(AxisLabel, {
65
+ x: -plotHeight / 2,
66
+ y: -AXIS_TITLE_BAND / 2,
67
+ width: plotHeight,
68
+ height: AXIS_TITLE_BAND,
69
+ justify: JustifyContent.CENTER,
70
+ align: "center",
71
+ children: title
72
+ })
73
+ })] });
74
+ }
75
+ /**
76
+ * @internal Category labels with `AUTO` thinning: every label that fits, otherwise every nth
77
+ * (a skipped label is still inferable from its neighbours; a clipped one carries nothing). A
78
+ * rendered label may spread over the run it stands for.
79
+ */
80
+ function ChartCategoryAxis({ labels, positions, step, plotWidth, plotHeight, orientation, insetLeft = 0, formatter, title }) {
81
+ const formatted = labels.map(formatter);
82
+ if (orientation === Orientation.VERTICAL) {
83
+ const titleBand = title ? AXIS_TITLE_BAND + AXIS_TITLE_GAP : 0;
84
+ const labelWidth = insetLeft - titleBand - VALUE_AXIS_TICK_GAP;
85
+ const rowStride = getRowLabelStride(step);
86
+ return /* @__PURE__ */ jsxs("g", { children: [labelWidth > 0 && formatted.map((label, index) => index % rowStride !== 0 ? null : /* @__PURE__ */ jsx(AxisLabel, {
87
+ x: -insetLeft + titleBand,
88
+ y: (positions[index] ?? 0) - step * (rowStride - 1) / 2,
89
+ width: labelWidth,
90
+ height: step * rowStride,
91
+ justify: JustifyContent.END,
92
+ align: "right",
93
+ children: label
94
+ }, labels[index])), title && /* @__PURE__ */ jsx("g", {
95
+ transform: `translate(${-insetLeft + AXIS_TITLE_BAND / 2}, ${plotHeight / 2}) rotate(-90)`,
96
+ children: /* @__PURE__ */ jsx(AxisLabel, {
43
97
  x: -plotHeight / 2,
44
- y: -18 / 2,
98
+ y: -AXIS_TITLE_BAND / 2,
45
99
  width: plotHeight,
46
- height: 18,
47
- children: /* @__PURE__ */ jsx(FlexWrapper, {
48
- justifyContent: JustifyContent.CENTER,
49
- alignItems: AlignItems.CENTER,
50
- fillWidth: true,
51
- fillHeight: true,
52
- children: /* @__PURE__ */ jsx(Text, {
53
- size: TextSize.CAPTION,
54
- variant: TextVariant.TERTIARY,
55
- align: "center",
56
- isEllipsis: true,
57
- children: title
58
- })
59
- })
100
+ height: AXIS_TITLE_BAND,
101
+ justify: JustifyContent.CENTER,
102
+ align: "center",
103
+ children: title
60
104
  })
61
- })]
62
- });
63
- };
64
- var ChartCategoryAxis = ({ labels, positions, step, plotWidth, plotHeight, formatter, mode = ChartCategoryLabelMode.AUTO, title }) => {
65
- const formatted = labels.map(formatter);
66
- const stride = mode === ChartCategoryLabelMode.AUTO ? getCategoryLabelStride(formatted, step) : 1;
105
+ })] });
106
+ }
107
+ const stride = getCategoryLabelStride(formatted, step);
67
108
  const labelWidth = step * stride;
68
109
  const labelInset = (labelWidth - step) / 2;
110
+ const minX = -insetLeft;
111
+ const maxX = plotWidth + PLOT_INSET_RIGHT;
69
112
  return /* @__PURE__ */ jsxs("g", {
70
113
  transform: `translate(0, ${plotHeight})`,
71
- "aria-hidden": true,
72
114
  children: [formatted.map((label, index) => {
73
115
  if (index % stride !== 0) return null;
74
- return /* @__PURE__ */ jsx(ChartAxisLabelBox, {
75
- x: positions[index] - labelInset,
76
- y: 8,
116
+ const center = (positions[index] ?? 0) + step / 2;
117
+ const halfText = Math.min(labelWidth, label.length * CAPTION_CHAR_WIDTH_PX) / 2;
118
+ return /* @__PURE__ */ jsx(AxisLabel, {
119
+ x: (maxX - minX > halfText * 2 ? clamp(center, minX + halfText, maxX - halfText) : center) - step / 2 - labelInset,
120
+ y: CATEGORY_AXIS_LABEL_GAP,
77
121
  width: labelWidth,
78
- height: 24,
79
- children: /* @__PURE__ */ jsx(FlexWrapper, {
80
- justifyContent: JustifyContent.CENTER,
81
- alignItems: AlignItems.CENTER,
82
- fillWidth: true,
83
- fillHeight: true,
84
- children: /* @__PURE__ */ jsx(Text, {
85
- size: TextSize.CAPTION,
86
- variant: TextVariant.TERTIARY,
87
- align: "center",
88
- isEllipsis: mode !== ChartCategoryLabelMode.ALL,
89
- children: label
90
- })
91
- })
92
- }, `${index}:${label}`);
93
- }), title && /* @__PURE__ */ jsx(ChartAxisLabelBox, {
122
+ height: CATEGORY_AXIS_LABEL_HEIGHT,
123
+ justify: JustifyContent.CENTER,
124
+ align: "center",
125
+ children: label
126
+ }, labels[index]);
127
+ }), title && /* @__PURE__ */ jsx(AxisLabel, {
94
128
  x: 0,
95
- y: 32,
129
+ y: CATEGORY_AXIS_LABEL_GAP + CATEGORY_AXIS_LABEL_HEIGHT + AXIS_TITLE_GAP,
96
130
  width: plotWidth,
97
- height: 18,
98
- children: /* @__PURE__ */ jsx(FlexWrapper, {
99
- justifyContent: JustifyContent.CENTER,
100
- alignItems: AlignItems.CENTER,
101
- fillWidth: true,
102
- fillHeight: true,
103
- children: /* @__PURE__ */ jsx(Text, {
104
- size: TextSize.CAPTION,
105
- variant: TextVariant.TERTIARY,
106
- align: "center",
107
- isEllipsis: true,
108
- children: title
109
- })
110
- })
131
+ height: AXIS_TITLE_BAND,
132
+ justify: JustifyContent.CENTER,
133
+ align: "center",
134
+ children: title
111
135
  })]
112
136
  });
113
- };
137
+ }
114
138
  //#endregion
115
139
  export { ChartCategoryAxis, ChartValueAxis };
@@ -1,28 +1,14 @@
1
- import type { ChartCategoryTarget } from "./types";
2
- import type { ChartInteraction } from "./useChartInteraction";
3
- /**
4
- * The base hit layer: one transparent target per category, above the marks.
5
- *
6
- * Shared by all three charts so hit testing is spelled once. Targets carry no
7
- * roles and no tab stops — the plot is `role="img"` and its accessible story is
8
- * the frame's label and description, while pointer users get the tooltip.
9
- *
10
- * Every category is hoverable, including one with nothing to show: the cursor
11
- * still marks where the pointer is over an empty stretch of axis, and the
12
- * tooltip opens with a "No data" body so the hover always gets an answer.
13
- *
14
- * **Only `onMouseEnter` lives here; leaving is the target group's job.** Per-target
15
- * leave handlers fire on every crossing *within* the plot, so the state fell to
16
- * null and back on each one — a wasted render between neighbouring bands, and a
17
- * visible flicker once the mark layer above added a second boundary inside a
18
- * single category. The group's leave fires exactly once, when the pointer
19
- * actually leaves the plot.
20
- */
21
- interface ChartCategoryTargetsProps {
1
+ import { type ChartCategoryTarget } from "./types.js";
2
+ /** @internal Props of `ChartCategoryTargets`. */
3
+ export interface ChartCategoryTargetsProps {
4
+ /** One target per category, in category order. */
22
5
  targets: ChartCategoryTarget[];
23
- interaction: ChartInteraction;
24
- /** Supplying this makes the category clickable, cursor included. */
25
- onSelect?: (categoryIndex: number) => void;
6
+ /** Pointer entered a category. */
7
+ onEnter: (categoryIndex: number) => void;
8
+ /** Pointer left the target layers (moving between targets is not leaving). */
9
+ onLeave: () => void;
10
+ /** Click on a category; supplying it makes the targets clickable. */
11
+ onSelect?: ((categoryIndex: number) => void) | undefined;
26
12
  }
27
- declare const ChartCategoryTargets: ({ targets, interaction, onSelect }: ChartCategoryTargetsProps) => import("react").JSX.Element;
28
- export default ChartCategoryTargets;
13
+ /** @internal The category hit layer. */
14
+ export declare function ChartCategoryTargets({ targets, onEnter, onLeave, onSelect, }: ChartCategoryTargetsProps): import("react").JSX.Element;
@@ -1,24 +1,36 @@
1
1
  import { ChartTargetShape } from "./types.js";
2
- import { ChartHitTarget, ChartHitTargetPath } from "./ChartPrimitives.js";
3
- import { match } from "ts-pattern";
2
+ import { CHART_HIT_TARGET_CSS, leaveUnlessTarget } from "./ChartPrimitives.js";
4
3
  import { Fragment, jsx } from "react/jsx-runtime";
4
+ import { cx } from "@linaria/core";
5
5
  //#region src/charts/ChartCategoryTargets.tsx
6
- var ChartCategoryTargets = ({ targets, interaction, onSelect }) => /* @__PURE__ */ jsx(Fragment, { children: targets.map((target, index) => {
7
- const shared = {
8
- onMouseEnter: () => interaction.onCategoryEnter(index),
9
- onClick: onSelect === void 0 ? void 0 : () => onSelect(index),
10
- "data-clickable": onSelect === void 0 ? void 0 : "true"
11
- };
12
- return match(target).with({ shape: ChartTargetShape.RECT }, (rect) => /* @__PURE__ */ jsx(ChartHitTarget, {
13
- x: rect.x,
14
- y: rect.y,
15
- width: rect.width,
16
- height: rect.height,
17
- ...shared
18
- }, rect.key)).with({ shape: ChartTargetShape.PATH }, (path) => /* @__PURE__ */ jsx(ChartHitTargetPath, {
19
- d: path.d,
20
- ...shared
21
- }, path.key)).exhaustive();
22
- }) });
6
+ /**
7
+ * @internal The base hit layer: one transparent target per category above the marks (a band for
8
+ * cartesian charts, the arc outline for a pie). Hover is per category, so a two-pixel mark is as
9
+ * easy to hover as a large one. A target's leave only counts when the pointer leaves the target
10
+ * layers (`leaveUnlessTarget`), so crossing between bands never flickers through "nothing engaged".
11
+ */
12
+ /** @internal The category hit layer. */
13
+ function ChartCategoryTargets({ targets, onEnter, onLeave, onSelect }) {
14
+ const className = cx(CHART_HIT_TARGET_CSS, onSelect && "gx-ChartPrimitives-CHART_HIT_TARGET_CLICKABLE_CSS-cjirv6a");
15
+ return /* @__PURE__ */ jsx(Fragment, { children: targets.map((target, index) => {
16
+ const handlers = {
17
+ onMouseEnter: () => onEnter(index),
18
+ onMouseLeave: (event) => leaveUnlessTarget(event, onLeave),
19
+ ...onSelect && { onClick: () => onSelect(index) }
20
+ };
21
+ return target.shape === ChartTargetShape.RECT ? /* @__PURE__ */ jsx("rect", {
22
+ x: target.x,
23
+ y: target.y,
24
+ width: Math.max(0, target.width),
25
+ height: Math.max(0, target.height),
26
+ className,
27
+ ...handlers
28
+ }, target.key) : /* @__PURE__ */ jsx("path", {
29
+ d: target.d,
30
+ className,
31
+ ...handlers
32
+ }, target.key);
33
+ }) });
34
+ }
23
35
  //#endregion
24
- export { ChartCategoryTargets as default };
36
+ export { ChartCategoryTargets };
@@ -1,132 +1,85 @@
1
- import type { ReactNode } from "react";
2
- import { ChartKind, ChartLegendPlacement } from "./types";
3
- import type { ChartCategoryTarget, ChartLegendItem, ChartMarkTarget, ChartPlotTooltipModel, ChartTooltipRenderer } from "./types";
4
- import type { ChartDimensions } from "./useChartDimensions";
5
- import type { ChartInteraction } from "./useChartInteraction";
6
- import type { ChartTooltipVerticalAlign } from "./useChartTooltipPosition";
7
- /**
8
- * The shell every chart renders into: measured root, reserved plot box, SVG and
9
- * its margin translate, the plot group, the hover targets, the tooltip, the
10
- * empty state and the legend.
11
- *
12
- * **The frame owns the plot translate.** Marks are drawn inside a
13
- * `translate(margin.left, margin.top)` group, and every coordinate handed to
14
- * this component — including the tooltip anchor and `placeAwayFromX` — is in
15
- * that same plot space. Charts never add the margin themselves; three
16
- * hand-written copies of `+ margin.left` is precisely what drifts silently.
17
- *
18
- * Knows nothing about scales, marks or geometry — all of that arrives through
19
- * `axes` and `children`.
20
- *
21
- * @internal Published as a subpath only because this package has no barrel
22
- * files, not because charts are meant to be composed out of it.
23
- */
1
+ import { type CSSProperties, type ForwardedRef, type ReactNode, type RefObject } from "react";
2
+ import { type ChartLegendSwatch } from "./ChartLegend.js";
3
+ import { type ChartCategoryTarget, ChartKind, type ChartLegendItem, ChartLegendPlacement, type ChartMarkTarget, type ChartPlotTooltipModel, type ChartTooltipRenderer } from "./types.js";
4
+ import type { ChartDimensions } from "./useChartDimensions.js";
5
+ import type { ChartInteraction } from "./useChartInteraction.js";
6
+ import type { ChartTooltipVerticalAlign } from "./useChartTooltipPosition.js";
7
+ /** @internal Props of `ChartFrame`. */
24
8
  export interface ChartFrameProps {
25
- /**
26
- * The element `useChartDimensions` measures — the *plot box*, not the root.
27
- *
28
- * Measuring the plot box is what keeps `fillHeight` honest: the legend is a
29
- * sibling in the root's flex column, so the box's height is already the space
30
- * left over for the plot and no one has to subtract a wrapped legend. Width is
31
- * unaffected, the box being `width: 100%` of the root either way.
32
- *
33
- * Created by the chart, not here: the chart needs the resulting dimensions
34
- * during its own render — to size the geometry and to feed
35
- * `useChartInteraction` — so the ref has to exist before this component does.
36
- * A named prop rather than `ref` because ref-as-a-prop needs React 19 and this
37
- * package still supports 18.
38
- */
39
- containerRef: React.RefObject<HTMLDivElement>;
9
+ /** The chart's forwarded ref (to the root). */
10
+ rootRef: ForwardedRef<HTMLDivElement>;
11
+ /** The plot box, measured by the chart's `useChartDimensions`. */
12
+ plotRef: RefObject<HTMLDivElement>;
13
+ /** Passthrough: `id`. */
14
+ id?: string | undefined;
15
+ /** Remaining passthrough: `data-*` to the root, `aria-*` to the plot box. */
16
+ rest: Record<string, unknown>;
17
+ /** Measured box and insets. */
40
18
  dimensions: ChartDimensions;
41
- fillWidth?: boolean;
42
- fillHeight?: boolean;
19
+ /** The chart's interaction state. */
43
20
  interaction: ChartInteraction;
44
- /** Which chart this is. Only used to phrase the default accessible name. */
21
+ /** Which chart (phrases the default name). */
45
22
  kind: ChartKind;
46
- /** Categories on the axis, or slices for a pie. Names the plot, so it counts
47
- * what is *rendered* rather than what was supplied. */
23
+ /** Categories (slices, cells) rendered. */
48
24
  categoryCount: number;
49
- /** Overrides the name derived from {@link kind} and the counts. */
50
- ariaLabel?: string;
51
- /** Long description, associated with the SVG via `aria-describedby`. */
52
- ariaDescription?: string;
53
- /**
54
- * Axes, drawn inside the plot translate group *before* {@link children}, so
55
- * grid lines paint under the marks. Radial charts pass nothing.
56
- */
25
+ /** The `ariaLabel` prop. */
26
+ ariaLabel?: string | undefined;
27
+ /** `--gx-chart-aspect-ratio`. */
28
+ aspectRatio: number;
29
+ /** Axes, inside the plot group before the marks (grid under marks). */
57
30
  axes?: ReactNode;
58
- /**
59
- * Marks, drawn inside the plot group beneath the hover targets.
60
- *
61
- * Rendered only once measured, so no caller writes that guard. Note it is
62
- * still *evaluated* on the unmeasured pass — as is the geometry it maps over,
63
- * which each chart's `useMemo` already runs at a 0×0 plot. Geometry builders
64
- * must stay total at zero; they already are.
65
- */
31
+ /** Marks. Rendered once measured. */
66
32
  children?: ReactNode;
67
- /** HTML painted over the plot and under the tooltip — the donut centre. */
33
+ /** HTML over the plot, under the tooltip (PieChart's donut center). */
68
34
  plotOverlay?: ReactNode;
69
- noTooltip?: boolean;
70
- /**
71
- * Builds one category's tooltip, in plot coordinates.
72
- *
73
- * A rowless model means "no data here": the category stays hoverable and
74
- * the built-in tooltip renders it with a "No data" body. A custom
75
- * {@link tooltipRenderer} never receives a rowless model.
76
- *
77
- * Must be stable; memoize it at the call site.
78
- */
35
+ /** Extra class on the plot box (PieChart: the square plot beside a side legend). */
36
+ plotClassName?: string | undefined;
37
+ /** The live-region sentence for a category; defaults to the tooltip heading and rows. */
38
+ describeCategory?: ((index: number) => string) | undefined;
39
+ /** The `hasTooltip` prop. */
40
+ hasTooltip: boolean;
41
+ /** Builds a category's tooltip in plot coordinates; empty rows mean "No data". */
79
42
  buildCategoryTooltip: (index: number) => ChartPlotTooltipModel | null;
80
- tooltipRenderer?: ChartTooltipRenderer;
81
- /** Row cap for the built-in tooltip body. See {@link BaseChartProps.tooltipMaxItems}. */
82
- tooltipMaxItems?: number;
83
- /**
84
- * One target per category, in plot coordinates and in category order.
85
- *
86
- * Empty disables interaction entirely, which is what a chart with nothing to
87
- * plot passes.
88
- */
89
- categoryTargets?: ChartCategoryTarget[];
90
- /**
91
- * One target per rendered mark, painted over {@link categoryTargets} so a
92
- * click can name a segment rather than only its column. Omitted by the charts
93
- * whose marks are not separately clickable — see `ChartMarkTargets`.
94
- */
43
+ /** The `renderTooltip` prop. */
44
+ renderTooltip?: ChartTooltipRenderer | undefined;
45
+ /** One hover target per category. */
46
+ categoryTargets: ChartCategoryTarget[];
47
+ /** Click targets per mark. */
95
48
  markTargets?: ChartMarkTarget[];
96
- /** Applied to both target layers. Radial charts pass their centre translate. */
97
- categoryTargetsTransform?: string;
98
- /**
99
- * Click on a category, by index. Supplying it is what makes the plot
100
- * clickable at all — the cursor and the mark layer's handler both follow it.
101
- *
102
- * Index-based, because building the event needs the chart's own geometry and
103
- * vocabulary. The frame knows neither, exactly as with
104
- * {@link buildCategoryTooltip}.
105
- */
106
- onCategorySelect?: (categoryIndex: number) => void;
107
- /** Click on one mark, by its index in {@link markTargets}. */
108
- onMarkSelect?: (markIndex: number) => void;
109
- /** Half a category's width, so the tooltip sits beside the marks. */
49
+ /** Transform applied to both target layers (radial charts: their center). */
50
+ targetsTransform?: string;
51
+ /** Category chosen by click, Enter or Space. Supplying it makes the plot selectable. */
52
+ onCategorySelect?: ((categoryIndex: number) => void) | undefined;
53
+ /** Mark clicked, by index in `markTargets`. */
54
+ onMarkSelect?: ((markIndex: number) => void) | undefined;
55
+ /** Half a category's width (tooltip sits beside it). */
110
56
  anchorHalfWidth?: number;
111
- /** Radial charts pass their centre, in plot coordinates. */
57
+ /** Radial charts: their center x, in plot coordinates. */
112
58
  placeAwayFromX?: number;
59
+ /** Tooltip vertical placement. */
113
60
  verticalAlign?: ChartTooltipVerticalAlign;
114
- /** Each chart defines "empty" for itself; the frame only renders the result. */
61
+ /** Nothing to plot. */
115
62
  isEmpty: boolean;
116
- isLoading?: boolean;
117
- contentWhenEmpty?: ReactNode;
118
- showLegend?: boolean;
63
+ /** The `isLoading` prop. */
64
+ isLoading: boolean;
65
+ /** The `placeholder` prop. */
66
+ placeholder: string;
67
+ /** The `hasLegend` prop. */
68
+ hasLegend: boolean;
69
+ /** Legend entries. */
119
70
  legendItems: ChartLegendItem[];
120
- /** Inline cap; the rest collapse behind "+N more". See {@link BaseChartProps.legendMaxItems}. */
121
- legendMaxItems?: number;
122
- /** Where the legend sits. RIGHT stacks it beside the plot, vertically centred. */
123
- legendPlacement?: ChartLegendPlacement;
124
- /**
125
- * BOTTOM: left padding, defaulting to the left margin so the legend aligns
126
- * with the plot rather than the axis gutter. RIGHT: the gap between the plot
127
- * box and the legend, defaulting to {@link CHART_LEGEND_SIDE_GAP}.
128
- */
129
- legendInset?: number;
71
+ /** Legend placement. */
72
+ legendPlacement: ChartLegendPlacement;
73
+ /** Legend swatch shape. */
74
+ legendSwatch: ChartLegendSwatch;
75
+ /** Tooltip row swatch shape. Defaults to `CIRCLE` (BarChart passes `SQUARE`). */
76
+ tooltipSwatch?: ChartLegendSwatch | undefined;
77
+ /** A chart's own legend in place of the series legend (Heatmap's step legend). */
78
+ legend?: ReactNode;
79
+ /** Passthrough: `className` on the root. */
80
+ className?: string | undefined;
81
+ /** Passthrough: `style` on the root. */
82
+ style?: CSSProperties | undefined;
130
83
  }
131
- declare const ChartFrame: ({ containerRef, dimensions, fillWidth, fillHeight, interaction, kind, categoryCount, ariaLabel, ariaDescription, axes, children, plotOverlay, noTooltip, buildCategoryTooltip, tooltipRenderer, tooltipMaxItems, categoryTargets, markTargets, categoryTargetsTransform, onCategorySelect, onMarkSelect, anchorHalfWidth, placeAwayFromX, verticalAlign, isEmpty, isLoading, contentWhenEmpty, showLegend, legendItems, legendMaxItems, legendPlacement, legendInset, }: ChartFrameProps) => import("react").JSX.Element;
132
- export default ChartFrame;
84
+ /** @internal The chart shell. */
85
+ export declare function ChartFrame({ rootRef, plotRef, id, className, style, rest, dimensions, interaction, kind, categoryCount, ariaLabel, aspectRatio, axes, children, plotOverlay, plotClassName, describeCategory, hasTooltip, buildCategoryTooltip, renderTooltip, categoryTargets, markTargets, targetsTransform, onCategorySelect, onMarkSelect, anchorHalfWidth, placeAwayFromX, verticalAlign, isEmpty, isLoading, placeholder, hasLegend, legendItems, legendPlacement, legendSwatch, tooltipSwatch, legend, }: ChartFrameProps): import("react").JSX.Element;