@galaxy-io/dls 1.6.1 → 2.0.1

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 (540) 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 +160 -124
  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 +33 -20
  46. package/dist/charts/ChartFrame.d.ts +71 -116
  47. package/dist/charts/ChartFrame.js +306 -97
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +37 -48
  51. package/dist/charts/ChartLegend.js +243 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +34 -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 +307 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +174 -121
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +159 -136
  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/chartSelection.d.ts +15 -0
  79. package/dist/charts/chartSelection.js +22 -0
  80. package/dist/charts/constants.d.ts +100 -256
  81. package/dist/charts/constants.js +109 -275
  82. package/dist/charts/heatmapGeometry.d.ts +95 -0
  83. package/dist/charts/heatmapGeometry.js +155 -0
  84. package/dist/charts/lineChartGeometry.d.ts +108 -58
  85. package/dist/charts/lineChartGeometry.js +120 -78
  86. package/dist/charts/pieChartGeometry.d.ts +66 -40
  87. package/dist/charts/pieChartGeometry.js +68 -38
  88. package/dist/charts/types.d.ts +206 -466
  89. package/dist/charts/types.js +55 -144
  90. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  91. package/dist/charts/useCartesianChartLayout.js +47 -32
  92. package/dist/charts/useChartDimensions.d.ts +19 -40
  93. package/dist/charts/useChartDimensions.js +40 -56
  94. package/dist/charts/useChartFormatters.d.ts +6 -15
  95. package/dist/charts/useChartFormatters.js +4 -9
  96. package/dist/charts/useChartInteraction.d.ts +69 -116
  97. package/dist/charts/useChartInteraction.js +148 -78
  98. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  99. package/dist/charts/useChartTooltipPosition.js +14 -5
  100. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  101. package/dist/charts/useSeriesColorResolver.js +19 -12
  102. package/dist/chips/Chip.d.ts +155 -44
  103. package/dist/chips/Chip.js +329 -155
  104. package/dist/chips/ChipGroup.d.ts +53 -0
  105. package/dist/chips/ChipGroup.js +98 -0
  106. package/dist/drawer/Drawer.d.ts +83 -17
  107. package/dist/drawer/Drawer.js +399 -65
  108. package/dist/dropdown/Dropdown.d.ts +80 -63
  109. package/dist/dropdown/Dropdown.js +127 -129
  110. package/dist/editor/CodeEditor.d.ts +119 -40
  111. package/dist/editor/CodeEditor.js +490 -400
  112. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  113. package/dist/editor/CodeEditorReactWidget.js +28 -21
  114. package/dist/feedback/Alert.d.ts +49 -0
  115. package/dist/feedback/Alert.js +172 -0
  116. package/dist/feedback/EmptyState.d.ts +39 -0
  117. package/dist/feedback/EmptyState.js +109 -0
  118. package/dist/feedback/ProgressBar.d.ts +125 -0
  119. package/dist/feedback/ProgressBar.js +183 -0
  120. package/dist/feedback/ProgressCircle.d.ts +99 -0
  121. package/dist/feedback/ProgressCircle.js +187 -0
  122. package/dist/feedback/Skeleton.d.ts +69 -0
  123. package/dist/feedback/Skeleton.js +130 -0
  124. package/dist/feedback/Spinner.d.ts +63 -0
  125. package/dist/feedback/Spinner.js +141 -0
  126. package/dist/fonts.css +70 -0
  127. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  128. package/dist/hooks/internal/useIsClient.js +14 -0
  129. package/dist/hooks/useClipboard.d.ts +19 -0
  130. package/dist/hooks/useClipboard.js +45 -0
  131. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  132. package/dist/hooks/useControlledOpenState.js +19 -0
  133. package/dist/hooks/useControlledState.d.ts +19 -0
  134. package/dist/hooks/useControlledState.js +22 -0
  135. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  136. package/dist/hooks/useDebouncedValue.js +33 -0
  137. package/dist/hooks/useDisclosure.d.ts +26 -0
  138. package/dist/hooks/useDisclosure.js +36 -0
  139. package/dist/hooks/useDismiss.d.ts +23 -27
  140. package/dist/hooks/useDismiss.js +39 -27
  141. package/dist/hooks/useElementClientSize.d.ts +10 -10
  142. package/dist/hooks/useElementClientSize.js +8 -11
  143. package/dist/hooks/useElementWidth.d.ts +6 -13
  144. package/dist/hooks/useElementWidth.js +6 -14
  145. package/dist/hooks/useField.d.ts +47 -0
  146. package/dist/hooks/useField.js +40 -0
  147. package/dist/hooks/useHotkey.d.ts +77 -0
  148. package/dist/hooks/useHotkey.js +246 -0
  149. package/dist/hooks/useIsMac.d.ts +12 -0
  150. package/dist/hooks/useIsMac.js +27 -0
  151. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  152. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  153. package/dist/hooks/useLocalStorage.d.ts +28 -0
  154. package/dist/hooks/useLocalStorage.js +145 -0
  155. package/dist/hooks/useMediaQuery.d.ts +11 -0
  156. package/dist/hooks/useMediaQuery.js +23 -0
  157. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  158. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  159. package/dist/hooks/useResize.d.ts +42 -62
  160. package/dist/hooks/useResize.js +43 -31
  161. package/dist/icons/Icon.d.ts +64 -37
  162. package/dist/icons/Icon.js +96 -37
  163. package/dist/icons/internal/IconSlot.d.ts +10 -0
  164. package/dist/icons/internal/IconSlot.js +32 -0
  165. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  166. package/dist/inputs/CheckboxGroup.js +183 -0
  167. package/dist/inputs/CheckboxInput.d.ts +98 -28
  168. package/dist/inputs/CheckboxInput.js +218 -88
  169. package/dist/inputs/ColorInput.d.ts +115 -29
  170. package/dist/inputs/ColorInput.js +748 -326
  171. package/dist/inputs/CopyInput.d.ts +49 -20
  172. package/dist/inputs/CopyInput.js +57 -49
  173. package/dist/inputs/CronInput.d.ts +94 -0
  174. package/dist/inputs/CronInput.js +618 -0
  175. package/dist/inputs/DateInput.d.ts +175 -28
  176. package/dist/inputs/DateInput.js +1109 -451
  177. package/dist/inputs/DurationInput.d.ts +101 -0
  178. package/dist/inputs/DurationInput.js +441 -0
  179. package/dist/inputs/Field.d.ts +75 -0
  180. package/dist/inputs/Field.js +247 -0
  181. package/dist/inputs/Fieldset.d.ts +53 -0
  182. package/dist/inputs/Fieldset.js +149 -0
  183. package/dist/inputs/FileInput.d.ts +110 -0
  184. package/dist/inputs/FileInput.js +476 -0
  185. package/dist/inputs/Input.d.ts +148 -187
  186. package/dist/inputs/Input.js +339 -259
  187. package/dist/inputs/KeyValueInput.d.ts +120 -0
  188. package/dist/inputs/KeyValueInput.js +383 -0
  189. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  190. package/dist/inputs/MultiSelectInput.js +175 -559
  191. package/dist/inputs/NumberInput.d.ts +65 -9
  192. package/dist/inputs/NumberInput.js +197 -40
  193. package/dist/inputs/PasswordInput.d.ts +17 -12
  194. package/dist/inputs/PasswordInput.js +33 -33
  195. package/dist/inputs/PinInput.d.ts +117 -0
  196. package/dist/inputs/PinInput.js +364 -0
  197. package/dist/inputs/RadioGroup.d.ts +115 -0
  198. package/dist/inputs/RadioGroup.js +179 -0
  199. package/dist/inputs/RadioInput.d.ts +87 -24
  200. package/dist/inputs/RadioInput.js +182 -95
  201. package/dist/inputs/SearchInput.d.ts +66 -0
  202. package/dist/inputs/SearchInput.js +156 -0
  203. package/dist/inputs/SelectInput.d.ts +195 -55
  204. package/dist/inputs/SelectInput.js +1308 -446
  205. package/dist/inputs/SliderInput.d.ts +150 -30
  206. package/dist/inputs/SliderInput.js +441 -186
  207. package/dist/inputs/SwitchInput.d.ts +109 -0
  208. package/dist/inputs/SwitchInput.js +248 -0
  209. package/dist/inputs/TagInput.d.ts +117 -0
  210. package/dist/inputs/TagInput.js +408 -0
  211. package/dist/inputs/TextAreaInput.d.ts +146 -44
  212. package/dist/inputs/TextAreaInput.js +298 -198
  213. package/dist/inputs/TextInput.d.ts +4 -13
  214. package/dist/inputs/TextInput.js +13 -48
  215. package/dist/inputs/ToggleInput.d.ts +120 -22
  216. package/dist/inputs/ToggleInput.js +262 -116
  217. package/dist/inputs/internal/bareField.d.ts +18 -0
  218. package/dist/inputs/internal/bareField.js +38 -0
  219. package/dist/inputs/internal/devWarn.d.ts +7 -0
  220. package/dist/inputs/internal/devWarn.js +30 -0
  221. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  222. package/dist/inputs/internal/fieldFrame.js +64 -0
  223. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  224. package/dist/inputs/internal/fieldWiring.js +38 -0
  225. package/dist/inputs/internal/innerButton.d.ts +2 -0
  226. package/dist/inputs/internal/innerButton.js +24 -0
  227. package/dist/inputs/internal/ownField.d.ts +45 -0
  228. package/dist/inputs/internal/ownField.js +58 -0
  229. package/dist/inputs/internal/predicates.d.ts +9 -0
  230. package/dist/inputs/internal/predicates.js +11 -0
  231. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  232. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  233. package/dist/json/JsonViewer.d.ts +62 -0
  234. package/dist/json/JsonViewer.js +483 -0
  235. package/dist/layout/Box.d.ts +87 -0
  236. package/dist/layout/Box.js +109 -0
  237. package/dist/layout/Divider.d.ts +25 -0
  238. package/dist/layout/Divider.js +70 -0
  239. package/dist/layout/Flex.d.ts +139 -0
  240. package/dist/layout/Flex.js +165 -0
  241. package/dist/layout/FlexItem.d.ts +72 -0
  242. package/dist/layout/FlexItem.js +84 -0
  243. package/dist/layout/Grid.d.ts +140 -0
  244. package/dist/layout/Grid.js +178 -0
  245. package/dist/layout/Portal.d.ts +29 -0
  246. package/dist/layout/Portal.js +27 -0
  247. package/dist/layout/ResizablePanels.d.ts +88 -0
  248. package/dist/layout/ResizablePanels.js +198 -0
  249. package/dist/layout/ResizeHandle.d.ts +48 -0
  250. package/dist/layout/ResizeHandle.js +143 -0
  251. package/dist/layout/ScrollArea.d.ts +30 -0
  252. package/dist/layout/ScrollArea.js +138 -0
  253. package/dist/links/Link.d.ts +101 -1
  254. package/dist/links/Link.js +166 -4
  255. package/dist/lists/BulletedList.d.ts +25 -7
  256. package/dist/lists/BulletedList.js +72 -27
  257. package/dist/lists/DescriptionList.d.ts +91 -0
  258. package/dist/lists/DescriptionList.js +147 -0
  259. package/dist/menu/ContextMenu.d.ts +64 -0
  260. package/dist/menu/ContextMenu.js +34 -0
  261. package/dist/menu/Menu.d.ts +280 -0
  262. package/dist/menu/Menu.js +1003 -0
  263. package/dist/modal/ConfirmDialog.d.ts +55 -0
  264. package/dist/modal/ConfirmDialog.js +151 -0
  265. package/dist/modal/Modal.d.ts +64 -14
  266. package/dist/modal/Modal.js +189 -48
  267. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  268. package/dist/navigation/Breadcrumbs.js +243 -0
  269. package/dist/navigation/CommandPalette.d.ts +83 -0
  270. package/dist/navigation/CommandPalette.js +509 -0
  271. package/dist/navigation/Pagination.d.ts +87 -0
  272. package/dist/navigation/Pagination.js +300 -0
  273. package/dist/navigation/SidebarNav.d.ts +107 -0
  274. package/dist/navigation/SidebarNav.js +341 -0
  275. package/dist/navigation/Stepper.d.ts +52 -0
  276. package/dist/navigation/Stepper.js +207 -0
  277. package/dist/navigation/Tabs.d.ts +113 -0
  278. package/dist/navigation/Tabs.js +543 -0
  279. package/dist/navigation/Topbar.d.ts +20 -0
  280. package/dist/navigation/Topbar.js +62 -0
  281. package/dist/overlay/OverlayProvider.d.ts +28 -32
  282. package/dist/overlay/OverlayProvider.js +42 -93
  283. package/dist/overlay/useOverlay.d.ts +88 -12
  284. package/dist/overlay/useOverlay.js +220 -43
  285. package/dist/overlays/Popover.d.ts +114 -0
  286. package/dist/overlays/Popover.js +389 -0
  287. package/dist/shapes/Circle.d.ts +84 -8
  288. package/dist/shapes/Circle.js +122 -20
  289. package/dist/shapes/Square.d.ts +84 -8
  290. package/dist/shapes/Square.js +123 -20
  291. package/dist/styles/mixins.d.ts +35 -0
  292. package/dist/styles/mixins.js +60 -0
  293. package/dist/styles.css +1 -202
  294. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  295. package/dist/table/InfiniteSpreadsheet.js +762 -225
  296. package/dist/table/InfiniteTable.d.ts +116 -14
  297. package/dist/table/InfiniteTable.js +287 -429
  298. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  299. package/dist/table/SpreadsheetCellEditor.js +163 -84
  300. package/dist/table/TableCore.d.ts +252 -0
  301. package/dist/table/TableCore.js +1082 -0
  302. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  303. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  304. package/dist/table/types.d.ts +66 -244
  305. package/dist/table/types.js +0 -51
  306. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  307. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  308. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  309. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  310. package/dist/table/useTableColumnLayout.d.ts +90 -25
  311. package/dist/table/useTableColumnLayout.js +255 -50
  312. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  313. package/dist/table/useTableKeyboardNavigation.js +95 -71
  314. package/dist/table/useTableRowSelection.d.ts +24 -25
  315. package/dist/table/useTableRowSelection.js +57 -84
  316. package/dist/table/useTableVirtualizer.d.ts +20 -0
  317. package/dist/table/useTableVirtualizer.js +48 -0
  318. package/dist/text/Bold.d.ts +5 -6
  319. package/dist/text/Bold.js +16 -15
  320. package/dist/text/Code.d.ts +5 -6
  321. package/dist/text/Code.js +16 -25
  322. package/dist/text/CodeBlock.d.ts +77 -0
  323. package/dist/text/CodeBlock.js +373 -0
  324. package/dist/text/EditableText.d.ts +55 -15
  325. package/dist/text/EditableText.js +153 -135
  326. package/dist/text/Ellipsis.d.ts +34 -8
  327. package/dist/text/Ellipsis.js +55 -23
  328. package/dist/text/Kbd.d.ts +72 -0
  329. package/dist/text/Kbd.js +284 -0
  330. package/dist/text/MarkdownText.d.ts +27 -10
  331. package/dist/text/MarkdownText.js +317 -300
  332. package/dist/text/RequiredMarker.d.ts +17 -5
  333. package/dist/text/RequiredMarker.js +34 -36
  334. package/dist/text/Selectable.d.ts +5 -6
  335. package/dist/text/Selectable.js +16 -13
  336. package/dist/text/Span.d.ts +82 -0
  337. package/dist/text/Span.js +115 -0
  338. package/dist/text/Text.d.ts +128 -41
  339. package/dist/text/Text.js +209 -76
  340. package/dist/theme/GalaxyProvider.d.ts +75 -0
  341. package/dist/theme/GalaxyProvider.js +223 -0
  342. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  343. package/dist/theme/ThemeSwitcher.js +94 -0
  344. package/dist/theme/enums.d.ts +118 -0
  345. package/dist/theme/enums.js +144 -0
  346. package/dist/theme/tokens/dark.d.ts +2 -0
  347. package/dist/theme/tokens/dark.js +275 -0
  348. package/dist/theme/tokens/generate.d.ts +15 -0
  349. package/dist/theme/tokens/generate.js +47 -0
  350. package/dist/theme/tokens/light.d.ts +2 -0
  351. package/dist/theme/tokens/light.js +274 -0
  352. package/dist/theme/tokens/palette.d.ts +14 -0
  353. package/dist/theme/tokens/palette.js +153 -0
  354. package/dist/theme/tokens/scales.d.ts +26 -0
  355. package/dist/theme/tokens/scales.js +154 -0
  356. package/dist/theme/tokens/t.d.ts +3 -0
  357. package/dist/theme/tokens/t.js +25 -0
  358. package/dist/theme/tokens/types.d.ts +189 -0
  359. package/dist/theme/tokens/types.js +0 -0
  360. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  361. package/dist/theme/useGalaxyTheme.js +36 -0
  362. package/dist/theme/useInverseScope.d.ts +18 -0
  363. package/dist/theme/useInverseScope.js +33 -0
  364. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  365. package/dist/three/GalaxyLogomark3D.js +134 -0
  366. package/dist/three/assets/galaxy-logomark.js +4 -0
  367. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  368. package/dist/three/galaxyLogomark3DScene.js +165 -0
  369. package/dist/timeline/Timeline.d.ts +120 -0
  370. package/dist/timeline/Timeline.js +301 -0
  371. package/dist/toast/Toast.d.ts +43 -19
  372. package/dist/toast/Toast.js +130 -89
  373. package/dist/toast/ToastProvider.d.ts +23 -23
  374. package/dist/toast/ToastProvider.js +298 -101
  375. package/dist/toast/ToastViewport.d.ts +12 -0
  376. package/dist/toast/ToastViewport.js +210 -0
  377. package/dist/toast/useToast.d.ts +139 -5
  378. package/dist/toast/useToast.js +15 -13
  379. package/dist/tokens.css +654 -0
  380. package/dist/tooltip/Tooltip.d.ts +64 -44
  381. package/dist/tooltip/Tooltip.js +280 -73
  382. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  383. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  384. package/dist/transform/Fade.d.ts +33 -11
  385. package/dist/transform/Fade.js +71 -19
  386. package/dist/transform/Flasher.d.ts +25 -0
  387. package/dist/transform/Flasher.js +39 -0
  388. package/dist/transform/Rotate.d.ts +24 -12
  389. package/dist/transform/Rotate.js +36 -22
  390. package/dist/transform/ScaleFade.d.ts +36 -11
  391. package/dist/transform/ScaleFade.js +86 -28
  392. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  393. package/dist/transform/internal/CollapseMotion.js +65 -0
  394. package/dist/tree/Tree.d.ts +85 -0
  395. package/dist/tree/Tree.js +387 -0
  396. package/dist/tree/treeRow.d.ts +39 -0
  397. package/dist/tree/treeRow.js +75 -0
  398. package/dist/utils/colors.d.ts +46 -13
  399. package/dist/utils/colors.js +92 -34
  400. package/dist/utils/css.d.ts +23 -0
  401. package/dist/utils/css.js +30 -0
  402. package/dist/utils/format.d.ts +58 -0
  403. package/dist/utils/format.js +220 -0
  404. package/dist/vite/index.d.ts +16 -0
  405. package/dist/vite/index.js +52 -0
  406. package/dist/widget/Widget.d.ts +164 -48
  407. package/dist/widget/Widget.js +335 -96
  408. package/dist/widget/WidgetGroup.d.ts +36 -0
  409. package/dist/widget/WidgetGroup.js +103 -0
  410. package/package.json +855 -157
  411. package/dist/accordion/Accordion.d.ts +0 -54
  412. package/dist/accordion/Accordion.js +0 -183
  413. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  415. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  416. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  417. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  419. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  420. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  421. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  423. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  424. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  425. package/dist/assets/models/galaxy-animation.js +0 -136666
  426. package/dist/assets/models/galaxy-logomark.js +0 -4
  427. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  428. package/dist/avatar/AvatarShimmer.js +0 -22
  429. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  430. package/dist/backgrounds/CellGridBackground.js +0 -44
  431. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  432. package/dist/backgrounds/CrossGridBackground.js +0 -49
  433. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  434. package/dist/backgrounds/DotGridBackground.js +0 -47
  435. package/dist/badge/Badge.d.ts +0 -42
  436. package/dist/badge/Badge.js +0 -99
  437. package/dist/charts/ChartEmptyState.d.ts +0 -17
  438. package/dist/charts/ChartEmptyState.js +0 -29
  439. package/dist/charts/ProgressBar.d.ts +0 -29
  440. package/dist/charts/ProgressBar.js +0 -65
  441. package/dist/charts/chartTheme.d.ts +0 -18
  442. package/dist/charts/chartTheme.js +0 -26
  443. package/dist/containers/FlexItem.d.ts +0 -50
  444. package/dist/containers/FlexItem.js +0 -91
  445. package/dist/containers/FlexWrapper.d.ts +0 -96
  446. package/dist/containers/FlexWrapper.js +0 -143
  447. package/dist/containers/GridWrapper.d.ts +0 -79
  448. package/dist/containers/GridWrapper.js +0 -125
  449. package/dist/containers/Spacing.d.ts +0 -23
  450. package/dist/containers/Spacing.js +0 -59
  451. package/dist/containers/Wrapper.d.ts +0 -26
  452. package/dist/containers/Wrapper.js +0 -54
  453. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  454. package/dist/dividers/HorizontalDivider.js +0 -39
  455. package/dist/dividers/VerticalDivider.d.ts +0 -6
  456. package/dist/dividers/VerticalDivider.js +0 -21
  457. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  458. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  459. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  460. package/dist/icons/GalaxyLogomark.js +0 -27
  461. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  462. package/dist/icons/GalaxyLogomark3D.js +0 -319
  463. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  464. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  465. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  466. package/dist/icons/GalaxyWordmark.js +0 -25
  467. package/dist/inputs/MultiTextInput.d.ts +0 -32
  468. package/dist/inputs/MultiTextInput.js +0 -180
  469. package/dist/inputs/SwitcherInput.d.ts +0 -30
  470. package/dist/inputs/SwitcherInput.js +0 -81
  471. package/dist/inputs/hooks.d.ts +0 -10
  472. package/dist/inputs/hooks.js +0 -22
  473. package/dist/overlay/constants.d.ts +0 -28
  474. package/dist/overlay/constants.js +0 -37
  475. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  476. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  477. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  478. package/dist/resizable/VerticalResizeHandle.js +0 -39
  479. package/dist/table/SpreadsheetCell.d.ts +0 -21
  480. package/dist/table/SpreadsheetCell.js +0 -71
  481. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  482. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  483. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  484. package/dist/table/SpreadsheetMenuItem.js +0 -33
  485. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  486. package/dist/table/SpreadsheetPrimitives.js +0 -105
  487. package/dist/table/SpreadsheetRow.d.ts +0 -33
  488. package/dist/table/SpreadsheetRow.js +0 -73
  489. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  490. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  491. package/dist/table/TableExpandCell.d.ts +0 -11
  492. package/dist/table/TableExpandCell.js +0 -24
  493. package/dist/table/TableExpandedRow.d.ts +0 -16
  494. package/dist/table/TableExpandedRow.js +0 -77
  495. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  496. package/dist/table/TableHeaderCellContent.js +0 -48
  497. package/dist/table/TablePrimitives.d.ts +0 -313
  498. package/dist/table/TablePrimitives.js +0 -302
  499. package/dist/table/TableSelectCell.d.ts +0 -18
  500. package/dist/table/TableSelectCell.js +0 -27
  501. package/dist/table/TableStatusRow.d.ts +0 -18
  502. package/dist/table/TableStatusRow.js +0 -50
  503. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  504. package/dist/table/useSpreadsheetEditing.js +0 -41
  505. package/dist/table/useTableColumnResize.d.ts +0 -38
  506. package/dist/table/useTableColumnResize.js +0 -155
  507. package/dist/table/useTableRowExpansion.d.ts +0 -24
  508. package/dist/table/useTableRowExpansion.js +0 -62
  509. package/dist/table/utils.d.ts +0 -50
  510. package/dist/table/utils.js +0 -78
  511. package/dist/text/HotKeys.d.ts +0 -30
  512. package/dist/text/HotKeys.js +0 -74
  513. package/dist/text/Paragraph.d.ts +0 -33
  514. package/dist/text/Paragraph.js +0 -83
  515. package/dist/text/TextShimmer.d.ts +0 -14
  516. package/dist/text/TextShimmer.js +0 -34
  517. package/dist/theme/GalaxyTheme.d.ts +0 -67
  518. package/dist/theme/GalaxyTheme.js +0 -119
  519. package/dist/theme/constants.d.ts +0 -8
  520. package/dist/theme/constants.js +0 -38
  521. package/dist/theme/index.d.ts +0 -6
  522. package/dist/theme/index.js +0 -7
  523. package/dist/theme/types.d.ts +0 -195
  524. package/dist/theme/types.js +0 -10
  525. package/dist/theme/typography.d.ts +0 -2
  526. package/dist/theme/typography.js +0 -73
  527. package/dist/theme/variants/dark.d.ts +0 -2
  528. package/dist/theme/variants/dark.js +0 -125
  529. package/dist/theme/variants/light.d.ts +0 -2
  530. package/dist/theme/variants/light.js +0 -125
  531. package/dist/toast/ToastContainer.d.ts +0 -10
  532. package/dist/toast/ToastContainer.js +0 -31
  533. package/dist/toast/ToastWrapper.d.ts +0 -6
  534. package/dist/toast/ToastWrapper.js +0 -27
  535. package/dist/transform/Flash.d.ts +0 -7
  536. package/dist/transform/Flash.js +0 -18
  537. package/dist/transform/Spin.d.ts +0 -14
  538. package/dist/transform/Spin.js +0 -25
  539. package/dist/utils/linaria.d.ts +0 -1
  540. 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 (additive with ⌘ / Ctrl / Shift); supplying it makes the targets clickable. */
11
+ onSelect?: ((categoryIndex: number, isAdditive: boolean) => 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,37 @@
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";
3
+ import { isAdditiveEvent } from "./chartSelection.js";
4
4
  import { Fragment, jsx } from "react/jsx-runtime";
5
+ import { cx } from "@linaria/core";
5
6
  //#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
- }) });
7
+ /**
8
+ * @internal The base hit layer: one transparent target per category above the marks (a band for
9
+ * cartesian charts, the arc outline for a pie). Hover is per category, so a two-pixel mark is as
10
+ * easy to hover as a large one. A target's leave only counts when the pointer leaves the target
11
+ * layers (`leaveUnlessTarget`), so crossing between bands never flickers through "nothing engaged".
12
+ */
13
+ /** @internal The category hit layer. */
14
+ function ChartCategoryTargets({ targets, onEnter, onLeave, onSelect }) {
15
+ const className = cx(CHART_HIT_TARGET_CSS, onSelect && "gx-ChartPrimitives-CHART_HIT_TARGET_CLICKABLE_CSS-cjirv6a");
16
+ return /* @__PURE__ */ jsx(Fragment, { children: targets.map((target, index) => {
17
+ const handlers = {
18
+ onMouseEnter: () => onEnter(index),
19
+ onMouseLeave: (event) => leaveUnlessTarget(event, onLeave),
20
+ ...onSelect && { onClick: (event) => onSelect(index, isAdditiveEvent(event)) }
21
+ };
22
+ return target.shape === ChartTargetShape.RECT ? /* @__PURE__ */ jsx("rect", {
23
+ x: target.x,
24
+ y: target.y,
25
+ width: Math.max(0, target.width),
26
+ height: Math.max(0, target.height),
27
+ className,
28
+ ...handlers
29
+ }, target.key) : /* @__PURE__ */ jsx("path", {
30
+ d: target.d,
31
+ className,
32
+ ...handlers
33
+ }, target.key);
34
+ }) });
35
+ }
23
36
  //#endregion
24
- export { ChartCategoryTargets as default };
37
+ export { ChartCategoryTargets };
@@ -1,132 +1,87 @@
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 (additive with ⌘ / Ctrl / Shift). Supplying it makes the plot selectable. */
52
+ onCategorySelect?: ((categoryIndex: number, isAdditive: boolean) => void) | undefined;
53
+ /** Mark clicked, by index in `markTargets` (additive with ⌘ / Ctrl / Shift). */
54
+ onMarkSelect?: ((markIndex: number, isAdditive: boolean) => 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
+ /** Names a raw category key in the filter chip (the chart's `labelFormatter`). @default the key */
80
+ formatCategoryKey?: ((key: string) => string) | undefined;
81
+ /** Passthrough: `className` on the root. */
82
+ className?: string | undefined;
83
+ /** Passthrough: `style` on the root. */
84
+ style?: CSSProperties | undefined;
130
85
  }
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;
86
+ /** @internal The chart shell. */
87
+ 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, formatCategoryKey, }: ChartFrameProps): import("react").JSX.Element;