@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,44 +1,62 @@
1
- import { ChartKind, ChartTargetShape, LineChartCurve } from "./types.js";
2
- import { LINE_AREA_OPACITY, LINE_POINT_RADIUS } from "./constants.js";
3
- import { useSeriesColorResolver } from "./useSeriesColorResolver.js";
4
- import { useChartInteraction } from "./useChartInteraction.js";
5
- import { useCartesianChartLayout } from "./useCartesianChartLayout.js";
6
- import { buildLineChartGeometry, getLineValueDomain } from "./lineChartGeometry.js";
7
- import { ChartAreaPath, ChartCursorLine, ChartLinePath, ChartPointCircle } from "./ChartPrimitives.js";
8
- import ChartFrame from "./ChartFrame.js";
1
+ import { Orientation } from "../theme/enums.js";
2
+ import { ChartCurve, ChartKind, ChartLegendPlacement, ChartTargetShape } from "./types.js";
3
+ import { CHART_CURSOR_LINE_CSS, CHART_CURSOR_LINE_SELECTED_CSS, CHART_MARK_STATE_TO_CSS_MAP, CHART_POINT_CSS } from "./ChartPrimitives.js";
4
+ import { LINE_POINT_RADIUS } from "./constants.js";
9
5
  import { ChartCategoryAxis, ChartValueAxis } from "./ChartAxis.js";
10
- import { useCallback, useMemo, useRef } from "react";
6
+ import { ChartLegendSwatch } from "./ChartLegend.js";
7
+ import { ChartFrame } from "./ChartFrame.js";
8
+ import { formatChartValue } from "./chartFormat.js";
9
+ import { buildLineChartGeometry, getLineValueDomain, getStackedLineValueDomain, hasNoReadings } from "./lineChartGeometry.js";
10
+ import { useCartesianChartLayout } from "./useCartesianChartLayout.js";
11
+ import { useChartInteraction } from "./useChartInteraction.js";
12
+ import { useSeriesColorResolver } from "./useSeriesColorResolver.js";
13
+ import { forwardRef, useCallback, useMemo, useRef } from "react";
11
14
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
15
+ import { cx } from "@linaria/core";
12
16
  //#region src/charts/LineChart.tsx
13
17
  /**
14
- * Line chart over a categorical x-axis.
18
+ * LineChart plots one or more series as lines over a categorical x-axis (hours, days, releases)
19
+ * so a reader can compare trends. Each line is a series named in the `series` record and colored
20
+ * from `ChartPalette`; a `null` reading breaks the line instead of dropping to zero. Hover or
21
+ * keyboard focus works per category column: a cursor rule marks the column, every line shows its
22
+ * dot there, and the tooltip lists every line's value. Clicks and Enter report the category
23
+ * through `onSelect`; with `isFilterable` they also pin it, and legend clicks pin a line. It joins
24
+ * `ChartGroupProvider` sync.
15
25
  *
16
- * Hit testing is per category column rather than per stroke: the tooltip
17
- * reports every line at the hovered category at once, which is almost always
18
- * what a reader wants, and it avoids the proximity search a
19
- * nearest-point-to-cursor model needs.
26
+ * Filled series are `AreaChart`; inline trends without axes are `Sparkline`. The chart fills its
27
+ * parent (2:1 when the parent has no definite height): size it with a `Box`, `Grid` track or
28
+ * flex item. Needs the optional peers `d3-scale` and `d3-shape`.
29
+ */
30
+ /** @internal How `LineChartRoot` fills under its lines. */
31
+ var LineChartFill = /* @__PURE__ */ function(LineChartFill) {
32
+ /** Lines only (LineChart). */
33
+ LineChartFill["NONE"] = "NONE";
34
+ /** A translucent area to the baseline (AreaChart). */
35
+ LineChartFill["AREA"] = "AREA";
36
+ return LineChartFill;
37
+ }({});
38
+ var DEFAULT_PLACEHOLDER = "No data available";
39
+ /**
40
+ * @internal Shared by LineChart and AreaChart; apps use those. One engine, two public
41
+ * components, no public mode prop (the `MenuRoot` precedent).
20
42
  */
21
- var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeight, aspectRatio, margin, curve = LineChartCurve.SMOOTH, strokeWidth, showCursor = true, onSelect, selection, valueUnit, valueFormatter, labelFormatter, valueDomain, categoryLabelMode, categoryAxisTitle, valueAxisTitle, showGrid = true, showLegend = true, legendMaxItems, noTooltip = false, tooltipRenderer, tooltipMaxItems, isLoading = false, contentWhenEmpty, ariaLabel, ariaDescription }) => {
22
- const containerRef = useRef(null);
43
+ function LineChartRootInner(props, ref) {
44
+ const { series, lines, categories, curve = ChartCurve.SMOOTH, fill, isStacked, kind, valueFormatter, labelFormatter, valueDomain, axisLabels, hasLegend = true, hasTooltip = true, renderTooltip, isLoading = false, placeholder = DEFAULT_PLACEHOLDER, onSelect, selection, isFilterable = false, defaultSelection, onSelectionChange, ariaLabel, id, className, style, ...rest } = props;
45
+ const plotRef = useRef(null);
23
46
  const colors = useSeriesColorResolver(series);
24
47
  const { dimensions, domain, valueTicks, formatValue, formatLabel } = useCartesianChartLayout({
25
- containerRef,
26
- rawDomain: useMemo(() => getLineValueDomain(lines), [lines]),
48
+ plotRef,
49
+ rawDomain: useMemo(() => isStacked ? getStackedLineValueDomain(lines, categories) : getLineValueDomain(lines), [
50
+ isStacked,
51
+ lines,
52
+ categories
53
+ ]),
27
54
  valueDomain,
28
- width,
29
- height,
30
- fillWidth,
31
- fillHeight,
32
- aspectRatio,
33
- margin,
34
- valueUnit,
35
55
  valueFormatter,
36
56
  labelFormatter,
37
- valueAxisTitle,
38
- categoryAxisTitle
57
+ axisLabels
39
58
  });
40
59
  const { plotWidth, plotHeight } = dimensions;
41
- const resolveColor = useCallback(({ metric }) => colors.resolve(metric), [colors]);
42
60
  const geometry = useMemo(() => buildLineChartGeometry({
43
61
  lines,
44
62
  categories,
@@ -46,8 +64,9 @@ var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeig
46
64
  plotHeight,
47
65
  curve,
48
66
  domain,
49
- strokeWidth,
50
- resolveColor
67
+ hasArea: fill === "AREA",
68
+ isStacked,
69
+ resolveColor: colors.resolve
51
70
  }), [
52
71
  lines,
53
72
  categories,
@@ -55,38 +74,63 @@ var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeig
55
74
  plotHeight,
56
75
  curve,
57
76
  domain,
58
- strokeWidth,
59
- resolveColor
77
+ fill,
78
+ isStacked,
79
+ colors.resolve
60
80
  ]);
61
- const isEmpty = geometry.categories.length === 0 || lines.length === 0;
62
- const legendItems = useMemo(() => colors.keys.map((metric) => ({
63
- key: metric,
64
- label: series[metric].label,
65
- color: colors.resolve(metric)
66
- })), [colors, series]);
67
- const legendKeys = useMemo(() => legendItems.map((item) => item.key), [legendItems]);
81
+ const isEmpty = geometry.categories.length === 0 || lines.length === 0 || hasNoReadings(lines);
82
+ const legendItems = useMemo(() => colors.keys.map((key) => {
83
+ const color = colors.resolve(key);
84
+ return {
85
+ key,
86
+ label: series[key]?.label ?? key,
87
+ ...color.palette !== void 0 && { palette: color.palette },
88
+ ...color.hex !== void 0 && { hex: color.hex }
89
+ };
90
+ }), [colors, series]);
91
+ const seriesKeys = useMemo(() => legendItems.map((item) => item.key), [legendItems]);
68
92
  const interaction = useChartInteraction({
69
- categoryCount: geometry.columns.length,
70
- seriesKeys: legendKeys,
93
+ categoryCount: geometry.categories.length,
94
+ seriesKeys,
71
95
  categoryKeys: geometry.categories,
72
96
  selection,
73
- isDisabled: noTooltip || isLoading || isEmpty,
97
+ isFilterable,
98
+ defaultSelection,
99
+ onSelectionChange,
100
+ isDisabled: !(hasTooltip || onSelect || isFilterable) || isLoading || isEmpty,
74
101
  isLoading
75
102
  });
76
- const activeColumn = interaction.activeIndex === null ? null : geometry.columns[interaction.activeIndex];
103
+ const activeColumn = interaction.activeIndex === null ? void 0 : geometry.columns[interaction.activeIndex];
77
104
  const buildCategoryTooltip = useCallback((index) => {
78
105
  const column = geometry.columns[index];
79
106
  if (!column) return null;
80
- const rows = [...column.points].sort((a, b) => b.value - a.value).map((point) => ({
107
+ const label = (metric) => series[metric]?.label ?? metric;
108
+ const gapRow = (metric) => ({
109
+ key: `${metric}:gap`,
110
+ label: label(metric),
111
+ value: null,
112
+ formattedValue: formatChartValue(null, formatValue),
113
+ color: colors.resolve(metric).color
114
+ });
115
+ const pointRow = (point) => ({
81
116
  key: point.id,
82
- label: series[point.metric]?.label ?? point.metric,
117
+ label: label(point.metric),
83
118
  value: point.value,
84
- formattedValue: formatValue(point.value),
85
- color: point.color
86
- }));
119
+ formattedValue: formatChartValue(point.value, formatValue),
120
+ color: point.color.color
121
+ });
122
+ let rows;
123
+ if (isStacked) rows = [...lines].reverse().map((lineDatum) => {
124
+ const point = column.points.find((item) => item.metric === lineDatum.metric);
125
+ return point ? pointRow(point) : gapRow(lineDatum.metric);
126
+ });
127
+ else {
128
+ rows = [...column.points].sort((a, b) => b.value - a.value).map(pointRow);
129
+ for (const metric of column.gaps) rows.push(gapRow(metric));
130
+ }
87
131
  return {
88
132
  label: formatLabel(column.label),
89
- rows,
133
+ rows: column.points.length === 0 ? [] : rows,
90
134
  anchorX: column.x,
91
135
  anchorY: column.anchorY
92
136
  };
@@ -94,7 +138,10 @@ var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeig
94
138
  geometry.columns,
95
139
  series,
96
140
  formatValue,
97
- formatLabel
141
+ formatLabel,
142
+ colors,
143
+ isStacked,
144
+ lines
98
145
  ]);
99
146
  const categoryPositions = useMemo(() => geometry.columns.map((column) => column.x - geometry.step / 2), [geometry.columns, geometry.step]);
100
147
  const categoryTargets = useMemo(() => geometry.columns.map((column) => ({
@@ -105,114 +152,120 @@ var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeig
105
152
  width: column.bandWidth,
106
153
  height: plotHeight
107
154
  })), [geometry.columns, plotHeight]);
108
- const handleCategorySelect = useCallback((index) => {
109
- const category = geometry.categories[index];
110
- if (category === void 0 || !onSelect) return;
111
- onSelect({
155
+ const { toggleSelection } = interaction;
156
+ const handleCategorySelect = useCallback((index, isAdditive = false) => {
157
+ const categoryKey = geometry.categories[index];
158
+ if (categoryKey === void 0) return;
159
+ onSelect?.({
112
160
  categoryIndex: index,
113
- categoryKey: category
161
+ categoryKey
114
162
  });
115
- }, [geometry.categories, onSelect]);
116
- /**
117
- * Columns the selection names, resolved once.
118
- *
119
- * These get the cursor and the dots permanently — the same treatment hovering
120
- * gives, one step firmer on the same neutral ramp, which is the whole
121
- * difference the held stroke has to communicate.
122
- */
123
- const selectedColumns = useMemo(() => geometry.columns.filter((column) => interaction.selectedCategoryIndices.has(column.categoryIndex)), [geometry.columns, interaction.selectedCategoryIndices]);
163
+ toggleSelection({ categoryKey }, isAdditive);
164
+ }, [
165
+ geometry.categories,
166
+ onSelect,
167
+ toggleSelection
168
+ ]);
169
+ const selectedColumns = geometry.columns.filter((column) => interaction.selectedCategoryIndices.has(column.categoryIndex));
170
+ const point = (item, keyPrefix = "") => /* @__PURE__ */ jsx("circle", {
171
+ cx: item.x,
172
+ cy: item.y,
173
+ r: LINE_POINT_RADIUS,
174
+ className: cx(CHART_POINT_CSS, CHART_MARK_STATE_TO_CSS_MAP[interaction.getMarkState({ seriesKey: item.metric })]),
175
+ style: { "--gx-chart-mark-color": item.color.color }
176
+ }, `${keyPrefix}${item.id}`);
124
177
  return /* @__PURE__ */ jsxs(ChartFrame, {
125
- containerRef,
178
+ rootRef: ref,
179
+ plotRef,
180
+ id,
181
+ className,
182
+ style,
183
+ rest,
126
184
  dimensions,
127
- fillWidth,
128
- fillHeight,
129
185
  interaction,
130
- kind: ChartKind.LINE,
186
+ kind,
131
187
  categoryCount: geometry.categories.length,
132
188
  ariaLabel,
133
- ariaDescription,
189
+ aspectRatio: 2,
134
190
  axes: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ChartValueAxis, {
135
191
  ticks: valueTicks,
136
192
  scale: geometry.valueScale,
137
193
  plotWidth,
138
194
  plotHeight,
139
- marginLeft: dimensions.margin.left,
195
+ insetLeft: dimensions.insets.left,
140
196
  formatter: formatValue,
141
- showGrid,
142
- title: valueAxisTitle
197
+ title: axisLabels?.value
143
198
  }), /* @__PURE__ */ jsx(ChartCategoryAxis, {
144
199
  labels: geometry.categories,
145
200
  positions: categoryPositions,
146
201
  step: geometry.step,
147
202
  plotWidth,
148
203
  plotHeight,
204
+ orientation: Orientation.HORIZONTAL,
205
+ insetLeft: dimensions.insets.left,
149
206
  formatter: formatLabel,
150
- mode: categoryLabelMode,
151
- title: categoryAxisTitle
207
+ title: axisLabels?.category
152
208
  })] }),
153
- noTooltip,
209
+ hasTooltip,
154
210
  buildCategoryTooltip,
155
- tooltipRenderer,
156
- tooltipMaxItems,
211
+ renderTooltip,
157
212
  categoryTargets,
158
- onCategorySelect: onSelect && handleCategorySelect,
213
+ onCategorySelect: onSelect || isFilterable ? handleCategorySelect : void 0,
159
214
  anchorHalfWidth: geometry.step / 2,
160
215
  isEmpty,
161
216
  isLoading,
162
- contentWhenEmpty,
163
- showLegend,
217
+ placeholder,
218
+ hasLegend,
219
+ formatCategoryKey: formatLabel,
164
220
  legendItems,
165
- legendMaxItems,
221
+ legendPlacement: ChartLegendPlacement.BOTTOM,
222
+ legendSwatch: kind === ChartKind.AREA ? ChartLegendSwatch.SQUARE : ChartLegendSwatch.CIRCLE,
166
223
  children: [
167
- geometry.paths.map((linePath) => linePath.areaPath ? /* @__PURE__ */ jsx(ChartAreaPath, {
168
- d: linePath.areaPath,
169
- fill: linePath.color,
170
- fillOpacity: LINE_AREA_OPACITY,
171
- "data-state": interaction.getMarkState({ seriesKey: linePath.metric })
172
- }, `${linePath.id}:area`) : null),
173
- selectedColumns.map((column) => /* @__PURE__ */ jsx(ChartCursorLine, {
224
+ !isEmpty && geometry.paths.map((path) => path.areaPath ? /* @__PURE__ */ jsx("path", {
225
+ d: path.areaPath,
226
+ className: cx("gx-ChartPrimitives-CHART_AREA_CSS-c10uj5yt", isStacked ? "gx-ChartPrimitives-CHART_AREA_STACKED_CSS-c1ob2op2" : "gx-ChartPrimitives-CHART_AREA_OVERLAP_CSS-cyuty3o", CHART_MARK_STATE_TO_CSS_MAP[interaction.getMarkState({ seriesKey: path.metric })]),
227
+ style: { "--gx-chart-mark-color": path.color.color }
228
+ }, `${path.id}:area`) : null),
229
+ selectedColumns.map((column) => /* @__PURE__ */ jsx("line", {
174
230
  x1: column.x,
175
231
  x2: column.x,
176
232
  y1: 0,
177
233
  y2: plotHeight,
178
- "data-selected": "true"
234
+ className: cx(CHART_CURSOR_LINE_CSS, CHART_CURSOR_LINE_SELECTED_CSS)
179
235
  }, `selected:${column.categoryIndex}`)),
180
- showCursor && activeColumn && /* @__PURE__ */ jsx(ChartCursorLine, {
236
+ activeColumn && /* @__PURE__ */ jsx("line", {
181
237
  x1: activeColumn.x,
182
238
  x2: activeColumn.x,
183
239
  y1: 0,
184
- y2: plotHeight
240
+ y2: plotHeight,
241
+ className: "gx-ChartPrimitives-CHART_CURSOR_LINE_CSS-cwcko2m"
185
242
  }),
186
- geometry.paths.map((linePath) => /* @__PURE__ */ jsx(ChartLinePath, {
187
- d: linePath.path,
188
- stroke: linePath.color,
189
- strokeWidth: linePath.strokeWidth,
190
- strokeDasharray: linePath.dashArray,
191
- "data-state": interaction.getMarkState({ seriesKey: linePath.metric })
192
- }, linePath.id)),
193
- geometry.isolatedPoints.map((point) => /* @__PURE__ */ jsx(ChartPointCircle, {
194
- cx: point.x,
195
- cy: point.y,
196
- r: LINE_POINT_RADIUS,
197
- fill: point.color,
198
- "data-state": interaction.getMarkState({ seriesKey: point.metric })
199
- }, `${point.id}:isolated`)),
200
- activeColumn?.points.map((point) => /* @__PURE__ */ jsx(ChartPointCircle, {
201
- cx: point.x,
202
- cy: point.y,
203
- r: LINE_POINT_RADIUS,
204
- fill: point.color,
205
- "data-state": interaction.getMarkState({ seriesKey: point.metric })
206
- }, point.id)),
207
- selectedColumns.filter((column) => column.categoryIndex !== activeColumn?.categoryIndex).flatMap((column) => column.points.map((point) => /* @__PURE__ */ jsx(ChartPointCircle, {
208
- cx: point.x,
209
- cy: point.y,
210
- r: LINE_POINT_RADIUS,
211
- fill: point.color,
212
- "data-state": interaction.getMarkState({ seriesKey: point.metric })
213
- }, `selected:${point.id}`)))
243
+ !isEmpty && geometry.paths.map((path) => /* @__PURE__ */ jsx("path", {
244
+ d: path.path,
245
+ className: cx("gx-ChartPrimitives-CHART_LINE_CSS-c1hcga6s", path.isDashed && "gx-ChartPrimitives-CHART_LINE_DASHED_CSS-c1fvbgkp", CHART_MARK_STATE_TO_CSS_MAP[interaction.getMarkState({ seriesKey: path.metric })]),
246
+ style: { "--gx-chart-mark-color": path.color.color }
247
+ }, path.id)),
248
+ geometry.isolatedPoints.map((item) => point(item, "isolated:")),
249
+ activeColumn?.points.map((item) => point(item)),
250
+ selectedColumns.filter((column) => column.categoryIndex !== activeColumn?.categoryIndex).flatMap((column) => column.points.map((item) => point(item, "selected:")))
214
251
  ]
215
252
  });
216
- };
253
+ }
254
+ var LineChartRootForwarded = forwardRef(LineChartRootInner);
255
+ LineChartRootForwarded.displayName = "LineChartRoot";
256
+ /** @internal Shared by LineChart and AreaChart; apps use those. */
257
+ var LineChartRoot = LineChartRootForwarded;
258
+ var LineChartInner = forwardRef(function LineChart(props, ref) {
259
+ return /* @__PURE__ */ jsx(LineChartRoot, {
260
+ ...props,
261
+ ref,
262
+ fill: "NONE",
263
+ isStacked: false,
264
+ kind: ChartKind.LINE
265
+ });
266
+ });
267
+ LineChartInner.displayName = "LineChart";
268
+ /** Lines over a categorical x-axis. */
269
+ var LineChart = LineChartInner;
217
270
  //#endregion
218
- export { LineChart as default };
271
+ export { LineChartFill, LineChartRoot, LineChart as default };
@@ -1,65 +1,44 @@
1
- import type { ReactNode } from "react";
2
- import { AGGREGATED_SLICE_KEY } from "./constants";
3
- import type { BaseChartProps, ChartSelectionEvent, ChartSelectionInput, ChartSeriesStyles, ChartSize, PieChartSliceDatum } from "./types";
4
- export type PieChartProps<TSlice extends string> = BaseChartProps & ChartSize & {
5
- /**
6
- * Presentation for every slice, keyed by slice.
7
- *
8
- * `TSlice` is inferred from these keys alone — `slices` wraps it in
9
- * `NoInfer` — so a mistyped key is a compile error rather than a slice that
10
- * silently fails to draw.
11
- */
1
+ import { type ReactElement, type ReactNode, type RefAttributes } from "react";
2
+ import { type BaseChartProps, type ChartSeriesStyles } from "./types.js";
3
+ /** One slice. */
4
+ export interface PieChartSliceDatum<TSlice extends string> {
5
+ /** Which slice this is; a key of `series`. */
6
+ key: TSlice;
7
+ /** Magnitude. Negative values are drawn as 0 (a part of a whole cannot be negative). */
8
+ value: number;
9
+ }
10
+ /** Key of the folded "Other" slice in `onSelect` events and `selection`. */
11
+ export type PieChartAggregatedKey = "__other__";
12
+ /** PieChart's own props; the shared chart props follow (`BaseChartProps`). */
13
+ interface PieChartOwnProps<TSlice extends string> {
14
+ /** Label and color for every slice, keyed by slice. `TSlice` is inferred from these keys only. */
12
15
  series: ChartSeriesStyles<TSlice>;
13
- /** Slices, rendered clockwise from 12 o'clock in array order. */
16
+ /** Slices, clockwise from 12 o'clock in array order. Negative values count as 0. */
14
17
  slices: PieChartSliceDatum<NoInfer<TSlice>>[];
15
18
  /**
16
- * Hole size as a fraction of the outer radius, 0–1.
17
- * `0` is a solid pie. Defaults to a donut.
19
+ * Draw a solid pie instead of a donut.
20
+ * @default false
18
21
  */
19
- innerRadiusRatio?: number;
20
- /** Gap between slices, in radians. */
21
- padAngle?: number;
22
- /** Slice corner radius in px. */
23
- cornerRadius?: number;
22
+ isSolid?: boolean;
24
23
  /**
25
- * Slices below this share of the total are folded into one bucket.
26
- * Set `0` to render every slice faithfully.
24
+ * Slices under this share of the total fold into one "Other" slice. `0` draws every slice.
25
+ * @default 0.02
27
26
  */
28
27
  minSliceShare?: number;
29
- /** Label for the folded bucket. @default "Other" */
30
- aggregatedLabel?: string;
31
- /**
32
- * Content for the donut hole — a total, a headline percentage.
33
- * Ignored when `innerRadiusRatio` is 0.
34
- */
35
- centerContent?: ReactNode;
36
- /**
37
- * Fires when a slice is clicked. Supplying it is what makes the plot
38
- * clickable.
39
- *
40
- * `categoryKey` and `seriesKey` are always the same value here: a pie's
41
- * category axis *is* its series axis, and the arcs are already its hit
42
- * targets, so there is no coarser fallback to take. Clicking the folded
43
- * bucket reports {@link AGGREGATED_SLICE_KEY}, which the key union says
44
- * outright rather than widening to `string`.
45
- */
46
- onSelect?: (event: ChartSelectionEvent<NoInfer<TSlice> | typeof AGGREGATED_SLICE_KEY>) => void;
47
28
  /**
48
- * Which arcs read as selected. Matching arcs hold full strength and the
49
- * rest recede — the lone lit slice is unambiguous, so there is no band or
50
- * outline on top of it.
51
- *
52
- * Presentational and never written by the chart: the state belongs to
53
- * whatever the selection is filtering, so the two cannot drift apart.
29
+ * Label of the folded slice.
30
+ * @default Other
54
31
  */
55
- selection?: ChartSelectionInput<NoInfer<TSlice> | typeof AGGREGATED_SLICE_KEY>;
56
- };
32
+ aggregatedLabel?: string;
33
+ /** Content centered in the donut hole: a total, a headline figure. Ignored with `isSolid`. */
34
+ children?: ReactNode;
35
+ }
36
+ export type PieChartProps<TSlice extends string> = PieChartOwnProps<TSlice> & BaseChartProps<NoInfer<TSlice> | PieChartAggregatedKey>;
57
37
  /**
58
- * Pie and donut chart.
59
- *
60
- * Unlike the cartesian charts there is no category axis to hit-test against, so
61
- * each arc is its own target. Small slices are folded into an "Other" bucket by
62
- * default, which keeps every remaining arc large enough to actually hit.
38
+ * The public, generic call signature (`TSlice` inferred from `series`). Never called: it only
39
+ * types the default export. An arrow function so react-docgen-typescript reads the props.
63
40
  */
64
- declare const PieChart: <TSlice extends string>({ series, slices, width, height, fillWidth, fillHeight, aspectRatio, margin, innerRadiusRatio, padAngle, cornerRadius, minSliceShare, aggregatedLabel, centerContent, onSelect, selection, valueUnit, valueFormatter, labelFormatter, showLegend, legendMaxItems, noTooltip, tooltipRenderer, tooltipMaxItems, isLoading, contentWhenEmpty, ariaLabel, ariaDescription, }: PieChartProps<TSlice>) => import("react").JSX.Element;
41
+ declare const PIE_CHART_SIGNATURE: <TSlice extends string>(_props: PieChartProps<TSlice> & RefAttributes<HTMLDivElement>) => ReactElement | null;
42
+ /** A donut (or solid pie) of a few parts of one whole. */
43
+ declare const PieChart: typeof PIE_CHART_SIGNATURE;
65
44
  export default PieChart;