@galaxy-io/dls 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/README.md +47 -50
  2. package/biome/index.json +74 -0
  3. package/biome/plugins/no-hex-literal.grit +20 -0
  4. package/biome/plugins/no-inline-style.grit +13 -0
  5. package/biome/plugins/no-margin.grit +9 -0
  6. package/biome/plugins/warn/no-hex-literal.grit +23 -0
  7. package/biome/plugins/warn/no-inline-style.grit +13 -0
  8. package/biome/plugins/warn/no-margin.grit +9 -0
  9. package/dist/a11y/FocusScope.d.ts +44 -0
  10. package/dist/a11y/FocusScope.js +229 -0
  11. package/dist/a11y/VisuallyHidden.d.ts +21 -0
  12. package/dist/a11y/VisuallyHidden.js +30 -0
  13. package/dist/avatar/Avatar.d.ts +56 -14
  14. package/dist/avatar/Avatar.js +250 -96
  15. package/dist/avatar/AvatarGroup.d.ts +43 -0
  16. package/dist/avatar/AvatarGroup.js +153 -0
  17. package/dist/backgrounds/GridBackground.d.ts +48 -0
  18. package/dist/backgrounds/GridBackground.js +146 -0
  19. package/dist/beacons/Beacon.d.ts +86 -22
  20. package/dist/beacons/Beacon.js +170 -47
  21. package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
  22. package/dist/brand/GalaxyFilamentWordmark.js +39 -0
  23. package/dist/brand/GalaxyLogomark.d.ts +26 -0
  24. package/dist/brand/GalaxyLogomark.js +41 -0
  25. package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
  26. package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
  27. package/dist/brand/GalaxyWordmark.d.ts +30 -0
  28. package/dist/brand/GalaxyWordmark.js +63 -0
  29. package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
  30. package/dist/brand/brandMark.d.ts +26 -0
  31. package/dist/brand/brandMark.js +35 -0
  32. package/dist/buttons/Button.d.ts +148 -59
  33. package/dist/buttons/Button.js +437 -227
  34. package/dist/buttons/ButtonGroup.d.ts +38 -0
  35. package/dist/buttons/ButtonGroup.js +68 -0
  36. package/dist/buttons/CopyButton.d.ts +77 -0
  37. package/dist/buttons/CopyButton.js +65 -0
  38. package/dist/charts/AreaChart.d.ts +49 -0
  39. package/dist/charts/AreaChart.js +31 -0
  40. package/dist/charts/BarChart.d.ts +54 -67
  41. package/dist/charts/BarChart.js +136 -116
  42. package/dist/charts/ChartAxis.d.ts +35 -40
  43. package/dist/charts/ChartAxis.js +114 -90
  44. package/dist/charts/ChartCategoryTargets.d.ts +12 -26
  45. package/dist/charts/ChartCategoryTargets.js +32 -20
  46. package/dist/charts/ChartFrame.d.ts +69 -116
  47. package/dist/charts/ChartFrame.js +253 -119
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +27 -48
  51. package/dist/charts/ChartLegend.js +206 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +33 -20
  54. package/dist/charts/ChartPrimitives.d.ts +50 -305
  55. package/dist/charts/ChartPrimitives.js +65 -413
  56. package/dist/charts/ChartTooltip.d.ts +20 -26
  57. package/dist/charts/ChartTooltip.js +77 -40
  58. package/dist/charts/Heatmap.d.ts +35 -0
  59. package/dist/charts/Heatmap.js +295 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +159 -117
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +149 -135
  64. package/dist/charts/Sparkline.d.ts +107 -0
  65. package/dist/charts/Sparkline.js +244 -0
  66. package/dist/charts/StatChart.d.ts +37 -13
  67. package/dist/charts/StatChart.js +82 -35
  68. package/dist/charts/barChartGeometry.d.ts +138 -86
  69. package/dist/charts/barChartGeometry.js +122 -101
  70. package/dist/charts/barChartLegend.d.ts +14 -18
  71. package/dist/charts/barChartLegend.js +18 -13
  72. package/dist/charts/chartFormat.d.ts +12 -18
  73. package/dist/charts/chartFormat.js +20 -52
  74. package/dist/charts/chartPalette.d.ts +33 -0
  75. package/dist/charts/chartPalette.js +68 -0
  76. package/dist/charts/chartScales.d.ts +41 -108
  77. package/dist/charts/chartScales.js +62 -128
  78. package/dist/charts/constants.d.ts +96 -256
  79. package/dist/charts/constants.js +105 -275
  80. package/dist/charts/heatmapGeometry.d.ts +95 -0
  81. package/dist/charts/heatmapGeometry.js +155 -0
  82. package/dist/charts/lineChartGeometry.d.ts +108 -58
  83. package/dist/charts/lineChartGeometry.js +120 -78
  84. package/dist/charts/pieChartGeometry.d.ts +66 -40
  85. package/dist/charts/pieChartGeometry.js +68 -38
  86. package/dist/charts/types.d.ts +197 -466
  87. package/dist/charts/types.js +55 -144
  88. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  89. package/dist/charts/useCartesianChartLayout.js +47 -32
  90. package/dist/charts/useChartDimensions.d.ts +19 -40
  91. package/dist/charts/useChartDimensions.js +40 -56
  92. package/dist/charts/useChartFormatters.d.ts +6 -15
  93. package/dist/charts/useChartFormatters.js +4 -9
  94. package/dist/charts/useChartInteraction.d.ts +47 -116
  95. package/dist/charts/useChartInteraction.js +95 -71
  96. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  97. package/dist/charts/useChartTooltipPosition.js +14 -5
  98. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  99. package/dist/charts/useSeriesColorResolver.js +19 -12
  100. package/dist/chips/Chip.d.ts +155 -44
  101. package/dist/chips/Chip.js +329 -155
  102. package/dist/chips/ChipGroup.d.ts +53 -0
  103. package/dist/chips/ChipGroup.js +98 -0
  104. package/dist/drawer/Drawer.d.ts +81 -17
  105. package/dist/drawer/Drawer.js +370 -65
  106. package/dist/dropdown/Dropdown.d.ts +80 -63
  107. package/dist/dropdown/Dropdown.js +127 -129
  108. package/dist/editor/CodeEditor.d.ts +119 -40
  109. package/dist/editor/CodeEditor.js +490 -400
  110. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  111. package/dist/editor/CodeEditorReactWidget.js +28 -21
  112. package/dist/feedback/Alert.d.ts +49 -0
  113. package/dist/feedback/Alert.js +172 -0
  114. package/dist/feedback/EmptyState.d.ts +39 -0
  115. package/dist/feedback/EmptyState.js +109 -0
  116. package/dist/feedback/ProgressBar.d.ts +125 -0
  117. package/dist/feedback/ProgressBar.js +183 -0
  118. package/dist/feedback/ProgressCircle.d.ts +99 -0
  119. package/dist/feedback/ProgressCircle.js +187 -0
  120. package/dist/feedback/Skeleton.d.ts +69 -0
  121. package/dist/feedback/Skeleton.js +130 -0
  122. package/dist/feedback/Spinner.d.ts +63 -0
  123. package/dist/feedback/Spinner.js +141 -0
  124. package/dist/fonts.css +70 -0
  125. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  126. package/dist/hooks/internal/useIsClient.js +14 -0
  127. package/dist/hooks/useClipboard.d.ts +19 -0
  128. package/dist/hooks/useClipboard.js +45 -0
  129. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  130. package/dist/hooks/useControlledOpenState.js +19 -0
  131. package/dist/hooks/useControlledState.d.ts +19 -0
  132. package/dist/hooks/useControlledState.js +22 -0
  133. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  134. package/dist/hooks/useDebouncedValue.js +33 -0
  135. package/dist/hooks/useDisclosure.d.ts +26 -0
  136. package/dist/hooks/useDisclosure.js +36 -0
  137. package/dist/hooks/useDismiss.d.ts +23 -27
  138. package/dist/hooks/useDismiss.js +39 -27
  139. package/dist/hooks/useElementClientSize.d.ts +10 -10
  140. package/dist/hooks/useElementClientSize.js +8 -11
  141. package/dist/hooks/useElementWidth.d.ts +6 -13
  142. package/dist/hooks/useElementWidth.js +6 -14
  143. package/dist/hooks/useField.d.ts +47 -0
  144. package/dist/hooks/useField.js +40 -0
  145. package/dist/hooks/useHotkey.d.ts +77 -0
  146. package/dist/hooks/useHotkey.js +246 -0
  147. package/dist/hooks/useIsMac.d.ts +12 -0
  148. package/dist/hooks/useIsMac.js +27 -0
  149. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  150. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  151. package/dist/hooks/useLocalStorage.d.ts +28 -0
  152. package/dist/hooks/useLocalStorage.js +145 -0
  153. package/dist/hooks/useMediaQuery.d.ts +11 -0
  154. package/dist/hooks/useMediaQuery.js +23 -0
  155. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  156. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  157. package/dist/hooks/useResize.d.ts +42 -62
  158. package/dist/hooks/useResize.js +43 -31
  159. package/dist/icons/Icon.d.ts +64 -37
  160. package/dist/icons/Icon.js +96 -37
  161. package/dist/icons/internal/IconSlot.d.ts +10 -0
  162. package/dist/icons/internal/IconSlot.js +32 -0
  163. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  164. package/dist/inputs/CheckboxGroup.js +183 -0
  165. package/dist/inputs/CheckboxInput.d.ts +98 -28
  166. package/dist/inputs/CheckboxInput.js +218 -88
  167. package/dist/inputs/ColorInput.d.ts +115 -29
  168. package/dist/inputs/ColorInput.js +748 -326
  169. package/dist/inputs/CopyInput.d.ts +49 -20
  170. package/dist/inputs/CopyInput.js +57 -49
  171. package/dist/inputs/CronInput.d.ts +94 -0
  172. package/dist/inputs/CronInput.js +618 -0
  173. package/dist/inputs/DateInput.d.ts +175 -28
  174. package/dist/inputs/DateInput.js +1109 -451
  175. package/dist/inputs/DurationInput.d.ts +101 -0
  176. package/dist/inputs/DurationInput.js +441 -0
  177. package/dist/inputs/Field.d.ts +75 -0
  178. package/dist/inputs/Field.js +247 -0
  179. package/dist/inputs/Fieldset.d.ts +53 -0
  180. package/dist/inputs/Fieldset.js +149 -0
  181. package/dist/inputs/FileInput.d.ts +110 -0
  182. package/dist/inputs/FileInput.js +476 -0
  183. package/dist/inputs/Input.d.ts +148 -187
  184. package/dist/inputs/Input.js +339 -259
  185. package/dist/inputs/KeyValueInput.d.ts +120 -0
  186. package/dist/inputs/KeyValueInput.js +383 -0
  187. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  188. package/dist/inputs/MultiSelectInput.js +175 -559
  189. package/dist/inputs/NumberInput.d.ts +65 -9
  190. package/dist/inputs/NumberInput.js +197 -40
  191. package/dist/inputs/PasswordInput.d.ts +17 -12
  192. package/dist/inputs/PasswordInput.js +33 -33
  193. package/dist/inputs/PinInput.d.ts +117 -0
  194. package/dist/inputs/PinInput.js +364 -0
  195. package/dist/inputs/RadioGroup.d.ts +115 -0
  196. package/dist/inputs/RadioGroup.js +179 -0
  197. package/dist/inputs/RadioInput.d.ts +87 -24
  198. package/dist/inputs/RadioInput.js +182 -95
  199. package/dist/inputs/SearchInput.d.ts +66 -0
  200. package/dist/inputs/SearchInput.js +156 -0
  201. package/dist/inputs/SelectInput.d.ts +195 -55
  202. package/dist/inputs/SelectInput.js +1308 -446
  203. package/dist/inputs/SliderInput.d.ts +150 -30
  204. package/dist/inputs/SliderInput.js +441 -186
  205. package/dist/inputs/SwitchInput.d.ts +109 -0
  206. package/dist/inputs/SwitchInput.js +248 -0
  207. package/dist/inputs/TagInput.d.ts +117 -0
  208. package/dist/inputs/TagInput.js +408 -0
  209. package/dist/inputs/TextAreaInput.d.ts +146 -44
  210. package/dist/inputs/TextAreaInput.js +292 -198
  211. package/dist/inputs/TextInput.d.ts +4 -13
  212. package/dist/inputs/TextInput.js +13 -48
  213. package/dist/inputs/ToggleInput.d.ts +120 -22
  214. package/dist/inputs/ToggleInput.js +262 -116
  215. package/dist/inputs/internal/bareField.d.ts +18 -0
  216. package/dist/inputs/internal/bareField.js +38 -0
  217. package/dist/inputs/internal/devWarn.d.ts +7 -0
  218. package/dist/inputs/internal/devWarn.js +30 -0
  219. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  220. package/dist/inputs/internal/fieldFrame.js +64 -0
  221. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  222. package/dist/inputs/internal/fieldWiring.js +38 -0
  223. package/dist/inputs/internal/innerButton.d.ts +2 -0
  224. package/dist/inputs/internal/innerButton.js +24 -0
  225. package/dist/inputs/internal/ownField.d.ts +45 -0
  226. package/dist/inputs/internal/ownField.js +58 -0
  227. package/dist/inputs/internal/predicates.d.ts +9 -0
  228. package/dist/inputs/internal/predicates.js +11 -0
  229. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  230. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  231. package/dist/json/JsonViewer.d.ts +62 -0
  232. package/dist/json/JsonViewer.js +483 -0
  233. package/dist/layout/Box.d.ts +87 -0
  234. package/dist/layout/Box.js +109 -0
  235. package/dist/layout/Divider.d.ts +25 -0
  236. package/dist/layout/Divider.js +70 -0
  237. package/dist/layout/Flex.d.ts +139 -0
  238. package/dist/layout/Flex.js +165 -0
  239. package/dist/layout/FlexItem.d.ts +72 -0
  240. package/dist/layout/FlexItem.js +84 -0
  241. package/dist/layout/Grid.d.ts +140 -0
  242. package/dist/layout/Grid.js +178 -0
  243. package/dist/layout/Portal.d.ts +29 -0
  244. package/dist/layout/Portal.js +27 -0
  245. package/dist/layout/ResizablePanels.d.ts +88 -0
  246. package/dist/layout/ResizablePanels.js +198 -0
  247. package/dist/layout/ResizeHandle.d.ts +48 -0
  248. package/dist/layout/ResizeHandle.js +143 -0
  249. package/dist/layout/ScrollArea.d.ts +30 -0
  250. package/dist/layout/ScrollArea.js +138 -0
  251. package/dist/links/Link.d.ts +101 -1
  252. package/dist/links/Link.js +166 -4
  253. package/dist/lists/BulletedList.d.ts +25 -7
  254. package/dist/lists/BulletedList.js +72 -27
  255. package/dist/lists/DescriptionList.d.ts +91 -0
  256. package/dist/lists/DescriptionList.js +147 -0
  257. package/dist/menu/ContextMenu.d.ts +64 -0
  258. package/dist/menu/ContextMenu.js +34 -0
  259. package/dist/menu/Menu.d.ts +280 -0
  260. package/dist/menu/Menu.js +1003 -0
  261. package/dist/modal/ConfirmDialog.d.ts +55 -0
  262. package/dist/modal/ConfirmDialog.js +151 -0
  263. package/dist/modal/Modal.d.ts +64 -14
  264. package/dist/modal/Modal.js +189 -48
  265. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  266. package/dist/navigation/Breadcrumbs.js +243 -0
  267. package/dist/navigation/CommandPalette.d.ts +83 -0
  268. package/dist/navigation/CommandPalette.js +509 -0
  269. package/dist/navigation/Pagination.d.ts +87 -0
  270. package/dist/navigation/Pagination.js +300 -0
  271. package/dist/navigation/SidebarNav.d.ts +107 -0
  272. package/dist/navigation/SidebarNav.js +341 -0
  273. package/dist/navigation/Stepper.d.ts +52 -0
  274. package/dist/navigation/Stepper.js +207 -0
  275. package/dist/navigation/Tabs.d.ts +113 -0
  276. package/dist/navigation/Tabs.js +543 -0
  277. package/dist/navigation/Topbar.d.ts +20 -0
  278. package/dist/navigation/Topbar.js +62 -0
  279. package/dist/overlay/OverlayProvider.d.ts +28 -32
  280. package/dist/overlay/OverlayProvider.js +42 -93
  281. package/dist/overlay/useOverlay.d.ts +88 -12
  282. package/dist/overlay/useOverlay.js +220 -43
  283. package/dist/overlays/Popover.d.ts +114 -0
  284. package/dist/overlays/Popover.js +389 -0
  285. package/dist/shapes/Circle.d.ts +84 -8
  286. package/dist/shapes/Circle.js +122 -20
  287. package/dist/shapes/Square.d.ts +84 -8
  288. package/dist/shapes/Square.js +123 -20
  289. package/dist/styles/mixins.d.ts +35 -0
  290. package/dist/styles/mixins.js +60 -0
  291. package/dist/styles.css +1 -202
  292. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  293. package/dist/table/InfiniteSpreadsheet.js +762 -225
  294. package/dist/table/InfiniteTable.d.ts +116 -14
  295. package/dist/table/InfiniteTable.js +287 -429
  296. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  297. package/dist/table/SpreadsheetCellEditor.js +163 -84
  298. package/dist/table/TableCore.d.ts +252 -0
  299. package/dist/table/TableCore.js +1077 -0
  300. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  301. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  302. package/dist/table/types.d.ts +66 -244
  303. package/dist/table/types.js +0 -51
  304. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  305. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  306. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  307. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  308. package/dist/table/useTableColumnLayout.d.ts +90 -25
  309. package/dist/table/useTableColumnLayout.js +255 -50
  310. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  311. package/dist/table/useTableKeyboardNavigation.js +95 -71
  312. package/dist/table/useTableRowSelection.d.ts +24 -25
  313. package/dist/table/useTableRowSelection.js +57 -84
  314. package/dist/table/useTableVirtualizer.d.ts +20 -0
  315. package/dist/table/useTableVirtualizer.js +48 -0
  316. package/dist/text/Bold.d.ts +5 -6
  317. package/dist/text/Bold.js +16 -15
  318. package/dist/text/Code.d.ts +5 -6
  319. package/dist/text/Code.js +16 -25
  320. package/dist/text/CodeBlock.d.ts +77 -0
  321. package/dist/text/CodeBlock.js +373 -0
  322. package/dist/text/EditableText.d.ts +55 -15
  323. package/dist/text/EditableText.js +153 -135
  324. package/dist/text/Ellipsis.d.ts +34 -8
  325. package/dist/text/Ellipsis.js +55 -23
  326. package/dist/text/Kbd.d.ts +72 -0
  327. package/dist/text/Kbd.js +284 -0
  328. package/dist/text/MarkdownText.d.ts +27 -10
  329. package/dist/text/MarkdownText.js +317 -300
  330. package/dist/text/RequiredMarker.d.ts +17 -5
  331. package/dist/text/RequiredMarker.js +34 -36
  332. package/dist/text/Selectable.d.ts +5 -6
  333. package/dist/text/Selectable.js +16 -13
  334. package/dist/text/Span.d.ts +82 -0
  335. package/dist/text/Span.js +115 -0
  336. package/dist/text/Text.d.ts +128 -41
  337. package/dist/text/Text.js +209 -76
  338. package/dist/theme/GalaxyProvider.d.ts +75 -0
  339. package/dist/theme/GalaxyProvider.js +223 -0
  340. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  341. package/dist/theme/ThemeSwitcher.js +94 -0
  342. package/dist/theme/enums.d.ts +118 -0
  343. package/dist/theme/enums.js +144 -0
  344. package/dist/theme/tokens/dark.d.ts +2 -0
  345. package/dist/theme/tokens/dark.js +275 -0
  346. package/dist/theme/tokens/generate.d.ts +15 -0
  347. package/dist/theme/tokens/generate.js +47 -0
  348. package/dist/theme/tokens/light.d.ts +2 -0
  349. package/dist/theme/tokens/light.js +274 -0
  350. package/dist/theme/tokens/palette.d.ts +14 -0
  351. package/dist/theme/tokens/palette.js +153 -0
  352. package/dist/theme/tokens/scales.d.ts +26 -0
  353. package/dist/theme/tokens/scales.js +154 -0
  354. package/dist/theme/tokens/t.d.ts +3 -0
  355. package/dist/theme/tokens/t.js +25 -0
  356. package/dist/theme/tokens/types.d.ts +189 -0
  357. package/dist/theme/tokens/types.js +0 -0
  358. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  359. package/dist/theme/useGalaxyTheme.js +36 -0
  360. package/dist/theme/useInverseScope.d.ts +18 -0
  361. package/dist/theme/useInverseScope.js +33 -0
  362. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  363. package/dist/three/GalaxyLogomark3D.js +134 -0
  364. package/dist/three/assets/galaxy-logomark.js +4 -0
  365. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  366. package/dist/three/galaxyLogomark3DScene.js +165 -0
  367. package/dist/timeline/Timeline.d.ts +99 -0
  368. package/dist/timeline/Timeline.js +269 -0
  369. package/dist/toast/Toast.d.ts +43 -19
  370. package/dist/toast/Toast.js +130 -89
  371. package/dist/toast/ToastProvider.d.ts +23 -23
  372. package/dist/toast/ToastProvider.js +298 -101
  373. package/dist/toast/ToastViewport.d.ts +12 -0
  374. package/dist/toast/ToastViewport.js +210 -0
  375. package/dist/toast/useToast.d.ts +139 -5
  376. package/dist/toast/useToast.js +15 -13
  377. package/dist/tokens.css +654 -0
  378. package/dist/tooltip/Tooltip.d.ts +64 -44
  379. package/dist/tooltip/Tooltip.js +280 -73
  380. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  381. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  382. package/dist/transform/Fade.d.ts +33 -11
  383. package/dist/transform/Fade.js +71 -19
  384. package/dist/transform/Flasher.d.ts +25 -0
  385. package/dist/transform/Flasher.js +39 -0
  386. package/dist/transform/Rotate.d.ts +24 -12
  387. package/dist/transform/Rotate.js +36 -22
  388. package/dist/transform/ScaleFade.d.ts +36 -11
  389. package/dist/transform/ScaleFade.js +86 -28
  390. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  391. package/dist/transform/internal/CollapseMotion.js +65 -0
  392. package/dist/tree/Tree.d.ts +85 -0
  393. package/dist/tree/Tree.js +387 -0
  394. package/dist/tree/treeRow.d.ts +39 -0
  395. package/dist/tree/treeRow.js +75 -0
  396. package/dist/utils/colors.d.ts +46 -13
  397. package/dist/utils/colors.js +92 -34
  398. package/dist/utils/css.d.ts +23 -0
  399. package/dist/utils/css.js +30 -0
  400. package/dist/utils/format.d.ts +58 -0
  401. package/dist/utils/format.js +220 -0
  402. package/dist/vite/index.d.ts +16 -0
  403. package/dist/vite/index.js +52 -0
  404. package/dist/widget/Widget.d.ts +164 -48
  405. package/dist/widget/Widget.js +335 -96
  406. package/dist/widget/WidgetGroup.d.ts +36 -0
  407. package/dist/widget/WidgetGroup.js +103 -0
  408. package/package.json +851 -157
  409. package/dist/accordion/Accordion.d.ts +0 -54
  410. package/dist/accordion/Accordion.js +0 -183
  411. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  412. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  413. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  415. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  416. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  417. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  419. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  420. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  421. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  423. package/dist/assets/models/galaxy-animation.js +0 -136666
  424. package/dist/assets/models/galaxy-logomark.js +0 -4
  425. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  426. package/dist/avatar/AvatarShimmer.js +0 -22
  427. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  428. package/dist/backgrounds/CellGridBackground.js +0 -44
  429. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  430. package/dist/backgrounds/CrossGridBackground.js +0 -49
  431. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  432. package/dist/backgrounds/DotGridBackground.js +0 -47
  433. package/dist/badge/Badge.d.ts +0 -42
  434. package/dist/badge/Badge.js +0 -99
  435. package/dist/charts/ChartEmptyState.d.ts +0 -17
  436. package/dist/charts/ChartEmptyState.js +0 -29
  437. package/dist/charts/ProgressBar.d.ts +0 -29
  438. package/dist/charts/ProgressBar.js +0 -65
  439. package/dist/charts/chartTheme.d.ts +0 -18
  440. package/dist/charts/chartTheme.js +0 -26
  441. package/dist/containers/FlexItem.d.ts +0 -50
  442. package/dist/containers/FlexItem.js +0 -91
  443. package/dist/containers/FlexWrapper.d.ts +0 -96
  444. package/dist/containers/FlexWrapper.js +0 -143
  445. package/dist/containers/GridWrapper.d.ts +0 -79
  446. package/dist/containers/GridWrapper.js +0 -125
  447. package/dist/containers/Spacing.d.ts +0 -23
  448. package/dist/containers/Spacing.js +0 -59
  449. package/dist/containers/Wrapper.d.ts +0 -26
  450. package/dist/containers/Wrapper.js +0 -54
  451. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  452. package/dist/dividers/HorizontalDivider.js +0 -39
  453. package/dist/dividers/VerticalDivider.d.ts +0 -6
  454. package/dist/dividers/VerticalDivider.js +0 -21
  455. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  456. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  457. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  458. package/dist/icons/GalaxyLogomark.js +0 -27
  459. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  460. package/dist/icons/GalaxyLogomark3D.js +0 -319
  461. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  462. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  463. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  464. package/dist/icons/GalaxyWordmark.js +0 -25
  465. package/dist/inputs/MultiTextInput.d.ts +0 -32
  466. package/dist/inputs/MultiTextInput.js +0 -180
  467. package/dist/inputs/SwitcherInput.d.ts +0 -27
  468. package/dist/inputs/SwitcherInput.js +0 -64
  469. package/dist/inputs/hooks.d.ts +0 -10
  470. package/dist/inputs/hooks.js +0 -22
  471. package/dist/overlay/constants.d.ts +0 -28
  472. package/dist/overlay/constants.js +0 -37
  473. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  474. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  475. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  476. package/dist/resizable/VerticalResizeHandle.js +0 -39
  477. package/dist/table/SpreadsheetCell.d.ts +0 -21
  478. package/dist/table/SpreadsheetCell.js +0 -71
  479. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  480. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  481. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  482. package/dist/table/SpreadsheetMenuItem.js +0 -33
  483. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  484. package/dist/table/SpreadsheetPrimitives.js +0 -105
  485. package/dist/table/SpreadsheetRow.d.ts +0 -33
  486. package/dist/table/SpreadsheetRow.js +0 -73
  487. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  488. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  489. package/dist/table/TableExpandCell.d.ts +0 -11
  490. package/dist/table/TableExpandCell.js +0 -24
  491. package/dist/table/TableExpandedRow.d.ts +0 -16
  492. package/dist/table/TableExpandedRow.js +0 -77
  493. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  494. package/dist/table/TableHeaderCellContent.js +0 -48
  495. package/dist/table/TablePrimitives.d.ts +0 -313
  496. package/dist/table/TablePrimitives.js +0 -302
  497. package/dist/table/TableSelectCell.d.ts +0 -18
  498. package/dist/table/TableSelectCell.js +0 -27
  499. package/dist/table/TableStatusRow.d.ts +0 -18
  500. package/dist/table/TableStatusRow.js +0 -50
  501. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  502. package/dist/table/useSpreadsheetEditing.js +0 -41
  503. package/dist/table/useTableColumnResize.d.ts +0 -38
  504. package/dist/table/useTableColumnResize.js +0 -155
  505. package/dist/table/useTableRowExpansion.d.ts +0 -24
  506. package/dist/table/useTableRowExpansion.js +0 -62
  507. package/dist/table/utils.d.ts +0 -50
  508. package/dist/table/utils.js +0 -78
  509. package/dist/text/HotKeys.d.ts +0 -30
  510. package/dist/text/HotKeys.js +0 -74
  511. package/dist/text/Paragraph.d.ts +0 -33
  512. package/dist/text/Paragraph.js +0 -83
  513. package/dist/text/TextShimmer.d.ts +0 -14
  514. package/dist/text/TextShimmer.js +0 -34
  515. package/dist/theme/GalaxyTheme.d.ts +0 -67
  516. package/dist/theme/GalaxyTheme.js +0 -119
  517. package/dist/theme/constants.d.ts +0 -8
  518. package/dist/theme/constants.js +0 -38
  519. package/dist/theme/index.d.ts +0 -6
  520. package/dist/theme/index.js +0 -7
  521. package/dist/theme/types.d.ts +0 -195
  522. package/dist/theme/types.js +0 -10
  523. package/dist/theme/typography.d.ts +0 -2
  524. package/dist/theme/typography.js +0 -73
  525. package/dist/theme/variants/dark.d.ts +0 -2
  526. package/dist/theme/variants/dark.js +0 -125
  527. package/dist/theme/variants/light.d.ts +0 -2
  528. package/dist/theme/variants/light.js +0 -125
  529. package/dist/toast/ToastContainer.d.ts +0 -10
  530. package/dist/toast/ToastContainer.js +0 -31
  531. package/dist/toast/ToastWrapper.d.ts +0 -6
  532. package/dist/toast/ToastWrapper.js +0 -27
  533. package/dist/transform/Flash.d.ts +0 -7
  534. package/dist/transform/Flash.js +0 -18
  535. package/dist/transform/Spin.d.ts +0 -14
  536. package/dist/transform/Spin.js +0 -25
  537. package/dist/utils/linaria.d.ts +0 -1
  538. package/dist/utils/linaria.js +0 -8
@@ -1,46 +1,144 @@
1
+ import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
2
+ import { Placement } from "../theme/enums.js";
1
3
  import Text, { TextSize, TextVariant } from "../text/Text.js";
2
- import Tooltip, { TooltipPosition, TooltipVariant } from "../tooltip/Tooltip.js";
3
- import Circle from "../shapes/Circle.js";
4
- import { ChartMarkState } from "./types.js";
5
- import { ChartLegendItemButton, ChartLegendItemStatic, ChartLegendMeasure, ChartLegendMeasureClip, ChartLegendOverflowList, ChartLegendRow } from "./ChartPrimitives.js";
6
- import { useCallback, useLayoutEffect, useRef, useState } from "react";
7
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
4
+ import Flex, { AlignItems } from "../layout/Flex.js";
5
+ import Tooltip from "../tooltip/Tooltip.js";
6
+ import { ChartLegendPlacement, ChartMarkState, ChartPalette } from "./types.js";
7
+ import { CHART_MARK_STATE_TO_CSS_MAP } from "./ChartPrimitives.js";
8
+ import Circle, { CircleSize, CircleVariant } from "../shapes/Circle.js";
9
+ import Square, { SquareSize, SquareVariant } from "../shapes/Square.js";
10
+ import { CHART_PALETTE_TO_COLOR_MAP } from "./chartPalette.js";
11
+ /* empty css */
12
+ import { styled } from "@linaria/react";
13
+ import { useCallback, useRef, useState } from "react";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ import { cx } from "@linaria/core";
8
16
  //#region src/charts/ChartLegend.tsx
9
17
  /**
10
- * Legend for the chart components.
18
+ * @internal The chart legend: one line beneath the plot (`BOTTOM`) or one column beside it
19
+ * (`RIGHT`). Entries that do not fit collapse behind a "+N more" button whose `Tooltip` lists
20
+ * them. The fit is measured, not guessed: a hidden copy of every entry is laid out unconstrained
21
+ * and the visible count is however many real sizes fit beside the trigger.
11
22
  *
12
- * Hovering or focusing an entry isolates its series; leaving releases it.
13
- *
14
- * The legend never outgrows the plot. A horizontal legend holds exactly one
15
- * line of the plot's width; a side-placed legend holds one column of the
16
- * plot's height. Entries that would not fit collapse behind a "+N more"
17
- * trigger whose tooltip lists them — still hoverable, so a collapsed series
18
- * isolates exactly like a visible one. The fit is measured, not guessed: a
19
- * hidden copy of every entry is laid out unconstrained, and the visible count
20
- * is however many real sizes fit beside the trigger.
21
- *
22
- * Deliberately *not* a visibility toggle: hiding a series would have to rescale
23
- * the value axis to stay honest — otherwise the remaining bars sit mysteriously
24
- * short — and that belongs with the geometry layer rather than bolted on here.
25
- * Isolation only changes opacity, so the domain is untouched and the numbers
26
- * keep meaning what they did.
23
+ * Entries are list items with no action (no button semantics); hovering one isolates its series,
24
+ * a pointer enhancement (keyboard users hear every series in the announcement). Spacing is
25
+ * padding on each entry (trailing in a row, split above and below in a column so the column
26
+ * centers), not a flex gap, so sweeping across entries never drops the isolation. Isolation changes opacity only; it never rescales the axis.
27
+ */
28
+ /** @internal Swatch shape: a dot for line series, a square for filled series. */
29
+ var ChartLegendSwatch = /* @__PURE__ */ function(ChartLegendSwatch) {
30
+ /** `Circle SMALL`: line series. */
31
+ ChartLegendSwatch["CIRCLE"] = "CIRCLE";
32
+ /** `Square SMALL`: area, bar, arc and heatmap series. */
33
+ ChartLegendSwatch["SQUARE"] = "SQUARE";
34
+ return ChartLegendSwatch;
35
+ }({});
36
+ /**
37
+ * A swatch takes its slot's mark color (`CHART_PALETTE_TO_COLOR_MAP`) through `currentColor`, so
38
+ * the legend always matches the marks (the hue slots that stand in for the old neutrals included).
27
39
  */
28
- var ChartLegend = ({ items, inset, hoveredKey = null, vertical = false, verticalExtent, maxItems, onItemEnter, onItemLeave }) => {
29
- const rowRef = useRef(null);
40
+ var SwatchColor = /*#__PURE__*/ styled("span")({
41
+ name: "SwatchColor",
42
+ class: "gx-ChartLegend-SwatchColor-s1bx0eug",
43
+ propsAsIs: false
44
+ });
45
+ /** The legend box. `position: relative` anchors the measure layer. */
46
+ var Root = /*#__PURE__*/ styled("div")({
47
+ name: "Root",
48
+ class: "gx-ChartLegend-r1c62hgg",
49
+ propsAsIs: false
50
+ });
51
+ /** The visible list. Never wraps: the fit computation guarantees one line (or column). */
52
+ var List = /*#__PURE__*/ styled("ul")({
53
+ name: "List",
54
+ class: "gx-ChartLegend-List-l1lgbp5d",
55
+ propsAsIs: false
56
+ });
57
+ /** Legend placement → list layout. BOTTOM aligns the first entry with the plot's left edge. */
58
+ var CHART_LEGEND_PLACEMENT_TO_LIST_CSS_MAP = {
59
+ [ChartLegendPlacement.BOTTOM]: "gx-ChartLegend-ChartLegendPlacement_BOTTOM-c681qv5",
60
+ [ChartLegendPlacement.RIGHT]: "gx-ChartLegend-ChartLegendPlacement_RIGHT-c1l24ron"
61
+ };
62
+ /** Zero-size clip that stops the measure layer's max-content box from adding page overflow. */
63
+ var MeasureClip = /*#__PURE__*/ styled("div")({
64
+ name: "MeasureClip",
65
+ class: "gx-ChartLegend-MeasureClip-m4cjheg",
66
+ propsAsIs: false
67
+ });
68
+ /** Invisible copy of every entry plus the widest trigger, laid out unconstrained. */
69
+ var Measure = /*#__PURE__*/ styled("div")({
70
+ name: "Measure",
71
+ class: "gx-ChartLegend-Measure-m1byi1w",
72
+ propsAsIs: false
73
+ });
74
+ var MEASURE_PLACEMENT_TO_CSS_MAP = {
75
+ [ChartLegendPlacement.BOTTOM]: "gx-ChartLegend-ChartLegendPlacement_BOTTOM-cixvbm6",
76
+ [ChartLegendPlacement.RIGHT]: "gx-ChartLegend-ChartLegendPlacement_RIGHT-c1ehakcs"
77
+ };
78
+ /** An entry never shrinks below its content; the fit decides what shows. */
79
+ var ENTRY_CSS = "gx-ChartLegend-ENTRY_CSS-esomlsk";
80
+ /** The "+N more" trigger: a real button, Tab-reachable. */
81
+ var TRIGGER_CSS = "gx-ChartLegend-TRIGGER_CSS-tdc52xq";
82
+ /** The hidden entries, listed in the trigger's tooltip. */
83
+ var OverflowList = /*#__PURE__*/ styled("ul")({
84
+ name: "OverflowList",
85
+ class: "gx-ChartLegend-OverflowList-ome95dp",
86
+ propsAsIs: false
87
+ });
88
+ function Swatch({ item, swatch }) {
89
+ return /* @__PURE__ */ jsx(SwatchColor, {
90
+ style: { "--gx-chart-mark-color": item.hex ?? CHART_PALETTE_TO_COLOR_MAP[item.palette ?? ChartPalette.TERTIARY] },
91
+ children: swatch === "CIRCLE" ? /* @__PURE__ */ jsx(Circle, {
92
+ size: CircleSize.SMALL,
93
+ variant: CircleVariant.INHERIT
94
+ }) : /* @__PURE__ */ jsx(Square, {
95
+ size: SquareSize.SMALL,
96
+ variant: SquareVariant.INHERIT
97
+ })
98
+ });
99
+ }
100
+ function Entry({ item, swatch, isVertical, state, as = "li", onEnter, onLeave }) {
101
+ return /* @__PURE__ */ jsxs(Flex, {
102
+ as,
103
+ alignItems: AlignItems.CENTER,
104
+ gap: 8,
105
+ padding: isVertical ? [4, 0] : [
106
+ 0,
107
+ 16,
108
+ 0,
109
+ 0
110
+ ],
111
+ className: cx(ENTRY_CSS, CHART_MARK_STATE_TO_CSS_MAP[state]),
112
+ ...onEnter && { onMouseEnter: onEnter },
113
+ ...onLeave && { onMouseLeave: onLeave },
114
+ children: [/* @__PURE__ */ jsx(Swatch, {
115
+ item,
116
+ swatch
117
+ }), /* @__PURE__ */ jsx(Text, {
118
+ size: TextSize.BODY_SM,
119
+ variant: TextVariant.SECONDARY,
120
+ lineClamp: 1,
121
+ children: item.label
122
+ })]
123
+ });
124
+ }
125
+ /** @internal The chart legend. */
126
+ function ChartLegend({ items, placement, swatch, inset, extent = 0, hoveredKey, onItemEnter, onItemLeave }) {
127
+ const listRef = useRef(null);
30
128
  const measureRef = useRef(null);
31
- /** How many entries fit inline. `null` until the first measurement lands. */
32
129
  const [fitCount, setFitCount] = useState(null);
130
+ const isVertical = placement === ChartLegendPlacement.RIGHT;
33
131
  const recompute = useCallback(() => {
34
- const row = rowRef.current;
132
+ const list = listRef.current;
35
133
  const measure = measureRef.current;
36
- if (!row || !measure) return;
134
+ if (!list || !measure) return;
37
135
  const rendered = Array.from(measure.children);
38
136
  const trigger = rendered.pop();
39
137
  if (!trigger) return;
40
- const available = vertical ? verticalExtent || Number.POSITIVE_INFINITY : row.clientWidth - inset;
41
- const sizeOf = (el) => {
42
- const rect = el.getBoundingClientRect();
43
- return Math.ceil(vertical ? rect.height : rect.width);
138
+ const available = isVertical ? extent || Number.POSITIVE_INFINITY : list.clientWidth - inset;
139
+ const sizeOf = (element) => {
140
+ const rect = element.getBoundingClientRect();
141
+ return Math.ceil(isVertical ? rect.height : rect.width);
44
142
  };
45
143
  const sizes = rendered.map(sizeOf);
46
144
  if (sizes.reduce((sum, size) => sum + size, 0) <= available) {
@@ -50,117 +148,100 @@ var ChartLegend = ({ items, inset, hoveredKey = null, vertical = false, vertical
50
148
  const triggerSize = sizeOf(trigger);
51
149
  let used = 0;
52
150
  let count = 0;
53
- for (const [i, size] of sizes.entries()) {
151
+ for (const [index, size] of sizes.entries()) {
54
152
  used += size;
55
153
  if (used + triggerSize > available) break;
56
- count = i + 1;
154
+ count = index + 1;
57
155
  }
58
156
  setFitCount(Math.max(1, count));
59
157
  }, [
60
- inset,
61
- vertical,
62
- verticalExtent
158
+ isVertical,
159
+ extent,
160
+ inset
63
161
  ]);
64
- useLayoutEffect(() => {
162
+ useIsomorphicLayoutEffect(() => {
65
163
  recompute();
66
- }, [
67
- recompute,
68
- items,
69
- maxItems
70
- ]);
71
- useLayoutEffect(() => {
72
- const row = rowRef.current;
73
- if (!row) return;
164
+ }, [recompute, items]);
165
+ useIsomorphicLayoutEffect(() => {
166
+ const list = listRef.current;
167
+ if (!list || typeof ResizeObserver === "undefined") return;
74
168
  const observer = new ResizeObserver(() => recompute());
75
- observer.observe(row);
169
+ observer.observe(list);
76
170
  return () => observer.disconnect();
77
171
  }, [recompute]);
78
172
  if (items.length === 0) return null;
79
- const isInteractive = Boolean(onItemEnter);
80
- const activeKey = hoveredKey;
81
- const renderItem = (item, verticalPadding) => {
82
- const state = activeKey === null || item.key === activeKey ? ChartMarkState.ACTIVE : ChartMarkState.MUTED;
83
- const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Circle, {
84
- size: 8,
85
- hex: item.color
86
- }), /* @__PURE__ */ jsx(Text, {
87
- size: TextSize.BODY_SM,
88
- children: item.label
89
- })] });
90
- if (!isInteractive) return /* @__PURE__ */ jsx(ChartLegendItemStatic, {
91
- $vertical: verticalPadding,
92
- "data-state": state,
93
- children: content
94
- }, item.key);
95
- return /* @__PURE__ */ jsx(ChartLegendItemButton, {
96
- type: "button",
97
- $vertical: verticalPadding,
98
- "data-state": state,
99
- onMouseEnter: () => onItemEnter?.(item.key),
100
- onMouseLeave: () => onItemLeave?.(),
101
- onFocus: () => onItemEnter?.(item.key),
102
- onBlur: () => onItemLeave?.(),
103
- children: content
104
- }, item.key);
173
+ const stateOf = (key) => hoveredKey === null || key === hoveredKey ? ChartMarkState.ACTIVE : ChartMarkState.MUTED;
174
+ const inline = items.slice(0, fitCount ?? items.length);
175
+ const overflow = items.slice(inline.length);
176
+ const isOverflowEngaged = hoveredKey !== null && overflow.some((item) => item.key === hoveredKey);
177
+ const triggerState = hoveredKey === null || isOverflowEngaged ? ChartMarkState.ACTIVE : ChartMarkState.MUTED;
178
+ const variables = {
179
+ "--gx-chart-legend-inset": `${inset}px`,
180
+ ...isVertical && extent > 0 && { "--gx-chart-legend-extent": `${extent}px` }
105
181
  };
106
- const capFromProp = maxItems === void 0 ? items.length : Math.max(1, maxItems);
107
- const capFromFit = fitCount === null ? items.length : fitCount;
108
- const inlineItems = items.slice(0, Math.min(capFromProp, capFromFit));
109
- const overflowItems = items.slice(inlineItems.length);
110
- /**
111
- * The trigger holds full strength while a *collapsed* series is engaged — the
112
- * one visual cue that the isolated series lives behind it — and recedes with
113
- * the other entries when a visible one is.
114
- */
115
- const isOverflowEngaged = activeKey !== null && overflowItems.some((item) => item.key === activeKey);
116
- const triggerState = activeKey === null || isOverflowEngaged ? ChartMarkState.ACTIVE : ChartMarkState.MUTED;
117
- return /* @__PURE__ */ jsxs(ChartLegendRow, {
118
- ref: rowRef,
119
- $inset: inset,
120
- $vertical: vertical,
121
- $extent: verticalExtent,
122
- children: [
123
- /* @__PURE__ */ jsx(ChartLegendMeasureClip, { children: /* @__PURE__ */ jsxs(ChartLegendMeasure, {
124
- ref: measureRef,
125
- $vertical: vertical,
126
- "aria-hidden": "true",
127
- children: [items.map((item) => /* @__PURE__ */ jsxs(ChartLegendItemStatic, {
128
- $vertical: vertical,
129
- children: [/* @__PURE__ */ jsx(Circle, {
130
- size: 8,
131
- hex: item.color
132
- }), /* @__PURE__ */ jsx(Text, {
133
- size: TextSize.BODY_SM,
134
- children: item.label
135
- })]
136
- }, item.key)), /* @__PURE__ */ jsx(ChartLegendItemStatic, {
137
- $vertical: vertical,
138
- children: /* @__PURE__ */ jsx(Text, {
139
- size: TextSize.BODY_SM,
140
- variant: TextVariant.SECONDARY,
141
- children: `+${items.length - 1} more`
142
- })
143
- })]
144
- }) }),
145
- inlineItems.map((item) => renderItem(item, vertical)),
146
- overflowItems.length > 0 && /* @__PURE__ */ jsx(Tooltip, {
147
- isInteractive: true,
148
- position: vertical ? TooltipPosition.RIGHT : TooltipPosition.TOP,
149
- variant: TooltipVariant.TERTIARY,
150
- body: /* @__PURE__ */ jsx(ChartLegendOverflowList, { children: overflowItems.map((item) => renderItem(item, true)) }),
151
- children: /* @__PURE__ */ jsx(ChartLegendItemButton, {
182
+ return /* @__PURE__ */ jsxs(Root, { children: [/* @__PURE__ */ jsx(MeasureClip, {
183
+ "aria-hidden": "true",
184
+ children: /* @__PURE__ */ jsxs(Measure, {
185
+ ref: measureRef,
186
+ className: MEASURE_PLACEMENT_TO_CSS_MAP[placement],
187
+ children: [items.map((item) => /* @__PURE__ */ jsx(Entry, {
188
+ as: "div",
189
+ item,
190
+ swatch,
191
+ isVertical,
192
+ state: ChartMarkState.ACTIVE
193
+ }, item.key)), /* @__PURE__ */ jsx(Flex, {
194
+ as: "div",
195
+ padding: isVertical ? [4, 0] : [
196
+ 0,
197
+ 16,
198
+ 0,
199
+ 0
200
+ ],
201
+ children: /* @__PURE__ */ jsx(Text, {
202
+ size: TextSize.BODY_SM,
203
+ variant: TextVariant.SECONDARY,
204
+ children: `+${items.length - 1} more`
205
+ })
206
+ })]
207
+ })
208
+ }), /* @__PURE__ */ jsxs(List, {
209
+ ref: listRef,
210
+ className: CHART_LEGEND_PLACEMENT_TO_LIST_CSS_MAP[placement],
211
+ style: variables,
212
+ children: [inline.map((item) => /* @__PURE__ */ jsx(Entry, {
213
+ item,
214
+ swatch,
215
+ isVertical,
216
+ state: stateOf(item.key),
217
+ onEnter: () => onItemEnter(item.key),
218
+ onLeave: onItemLeave
219
+ }, item.key)), overflow.length > 0 && /* @__PURE__ */ jsx(Flex, {
220
+ as: "li",
221
+ alignItems: AlignItems.CENTER,
222
+ className: cx(ENTRY_CSS, CHART_MARK_STATE_TO_CSS_MAP[triggerState]),
223
+ children: /* @__PURE__ */ jsx(Tooltip, {
224
+ placement: isVertical ? Placement.RIGHT : Placement.TOP,
225
+ body: /* @__PURE__ */ jsx(OverflowList, { children: overflow.map((item) => /* @__PURE__ */ jsx(Entry, {
226
+ item,
227
+ swatch,
228
+ isVertical: true,
229
+ state: stateOf(item.key),
230
+ onEnter: () => onItemEnter(item.key),
231
+ onLeave: onItemLeave
232
+ }, item.key)) }),
233
+ children: /* @__PURE__ */ jsx("button", {
152
234
  type: "button",
153
- $vertical: vertical,
154
- "data-state": triggerState,
235
+ className: TRIGGER_CSS,
155
236
  children: /* @__PURE__ */ jsx(Text, {
156
237
  size: TextSize.BODY_SM,
157
238
  variant: TextVariant.SECONDARY,
158
- children: `+${overflowItems.length} more`
239
+ children: `+${overflow.length} more`
159
240
  })
160
241
  })
161
242
  })
162
- ]
163
- });
164
- };
243
+ })]
244
+ })] });
245
+ }
165
246
  //#endregion
166
- export { ChartLegend as default };
247
+ export { ChartLegend, ChartLegendSwatch };
@@ -1,30 +1,14 @@
1
- import type { ChartMarkTarget } from "./types";
2
- import type { ChartInteraction } from "./useChartInteraction";
3
- /**
4
- * The mark hit layer: one transparent target per rendered mark, above the
5
- * category targets.
6
- *
7
- * Exists so a click can name a single segment — the red block of the 00:00 bar
8
- * — where the category layer beneath can only name the column. Rendered by the
9
- * charts that have marks worth distinguishing: BarChart does, LineChart has no
10
- * segments to hit, and PieChart's category targets already *are* its arcs.
11
- *
12
- * **Hover is not refined here.** Each target reports its own category on enter,
13
- * exactly as the band underneath would, so the tooltip reads the same index
14
- * whichever layer the pointer is over and holds still while crossing a stack.
15
- * The banded hover is deliberate — it makes a two-pixel segment as easy to
16
- * hover as a two-hundred-pixel one — and this layer only adds a finer *click*.
17
- *
18
- * Anything the marks do not cover falls through to the category target: the
19
- * gutters, the plot above a short bar, and the hairline gaps between stack
20
- * segments. That is the documented fallback, and it is why a segment too small
21
- * to hit still selects something sensible.
22
- */
23
- interface ChartMarkTargetsProps {
1
+ import { type ChartMarkTarget } from "./types.js";
2
+ /** @internal Props of `ChartMarkTargets`. */
3
+ export interface ChartMarkTargetsProps {
4
+ /** One target per mark. */
24
5
  targets: ChartMarkTarget[];
25
- interaction: ChartInteraction;
26
- /** Supplying this makes the marks clickable, cursor included. */
27
- onSelect?: (markIndex: number) => void;
6
+ /** Pointer entered a mark: engages its 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 mark, by its index in `targets`. */
11
+ onSelect: (markIndex: number) => void;
28
12
  }
29
- declare const ChartMarkTargets: ({ targets, interaction, onSelect }: ChartMarkTargetsProps) => import("react").JSX.Element;
30
- export default ChartMarkTargets;
13
+ /** @internal The mark hit layer. */
14
+ export declare function ChartMarkTargets({ targets, onEnter, onLeave, onSelect }: ChartMarkTargetsProps): 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_CLICKABLE_CSS, 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/ChartMarkTargets.tsx
6
- var ChartMarkTargets = ({ targets, interaction, onSelect }) => /* @__PURE__ */ jsx(Fragment, { children: targets.map((target, index) => {
7
- const shared = {
8
- onMouseEnter: () => interaction.onCategoryEnter(target.categoryIndex),
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 mark hit layer: one transparent target per rendered mark, above the category
8
+ * targets, so a click can name one segment where the band beneath names only its column. Hover is
9
+ * not refined: each target reports its own category on enter, exactly as the band would. Anything
10
+ * the marks do not cover falls through to the category target. Rendered only when the chart has
11
+ * a click handler (BarChart); LineChart has no per-category segment to hit.
12
+ */
13
+ /** @internal The mark hit layer. */
14
+ function ChartMarkTargets({ targets, onEnter, onLeave, onSelect }) {
15
+ const className = cx(CHART_HIT_TARGET_CSS, CHART_HIT_TARGET_CLICKABLE_CSS);
16
+ return /* @__PURE__ */ jsx(Fragment, { children: targets.map((target, index) => {
17
+ const handlers = {
18
+ onMouseEnter: () => onEnter(target.categoryIndex),
19
+ onMouseLeave: (event) => leaveUnlessTarget(event, onLeave),
20
+ onClick: () => onSelect(index)
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 { ChartMarkTargets as default };
37
+ export { ChartMarkTargets };