@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,44 +1,61 @@
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`. It joins `ChartGroupProvider` sync.
15
24
  *
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.
25
+ * Filled series are `AreaChart`; inline trends without axes are `Sparkline`. The chart fills its
26
+ * parent (2:1 when the parent has no definite height): size it with a `Box`, `Grid` track or
27
+ * flex item. Needs the optional peers `d3-scale` and `d3-shape`.
28
+ */
29
+ /** @internal How `LineChartRoot` fills under its lines. */
30
+ var LineChartFill = /* @__PURE__ */ function(LineChartFill) {
31
+ /** Lines only (LineChart). */
32
+ LineChartFill["NONE"] = "NONE";
33
+ /** A translucent area to the baseline (AreaChart). */
34
+ LineChartFill["AREA"] = "AREA";
35
+ return LineChartFill;
36
+ }({});
37
+ var DEFAULT_PLACEHOLDER = "No data available";
38
+ /**
39
+ * @internal Shared by LineChart and AreaChart; apps use those. One engine, two public
40
+ * components, no public mode prop (the `MenuRoot` precedent).
20
41
  */
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);
42
+ function LineChartRootInner(props, ref) {
43
+ 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, ariaLabel, id, className, style, ...rest } = props;
44
+ const plotRef = useRef(null);
23
45
  const colors = useSeriesColorResolver(series);
24
46
  const { dimensions, domain, valueTicks, formatValue, formatLabel } = useCartesianChartLayout({
25
- containerRef,
26
- rawDomain: useMemo(() => getLineValueDomain(lines), [lines]),
47
+ plotRef,
48
+ rawDomain: useMemo(() => isStacked ? getStackedLineValueDomain(lines, categories) : getLineValueDomain(lines), [
49
+ isStacked,
50
+ lines,
51
+ categories
52
+ ]),
27
53
  valueDomain,
28
- width,
29
- height,
30
- fillWidth,
31
- fillHeight,
32
- aspectRatio,
33
- margin,
34
- valueUnit,
35
54
  valueFormatter,
36
55
  labelFormatter,
37
- valueAxisTitle,
38
- categoryAxisTitle
56
+ axisLabels
39
57
  });
40
58
  const { plotWidth, plotHeight } = dimensions;
41
- const resolveColor = useCallback(({ metric }) => colors.resolve(metric), [colors]);
42
59
  const geometry = useMemo(() => buildLineChartGeometry({
43
60
  lines,
44
61
  categories,
@@ -46,8 +63,9 @@ var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeig
46
63
  plotHeight,
47
64
  curve,
48
65
  domain,
49
- strokeWidth,
50
- resolveColor
66
+ hasArea: fill === "AREA",
67
+ isStacked,
68
+ resolveColor: colors.resolve
51
69
  }), [
52
70
  lines,
53
71
  categories,
@@ -55,38 +73,60 @@ var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeig
55
73
  plotHeight,
56
74
  curve,
57
75
  domain,
58
- strokeWidth,
59
- resolveColor
76
+ fill,
77
+ isStacked,
78
+ colors.resolve
60
79
  ]);
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]);
80
+ const isEmpty = geometry.categories.length === 0 || lines.length === 0 || hasNoReadings(lines);
81
+ const legendItems = useMemo(() => colors.keys.map((key) => {
82
+ const color = colors.resolve(key);
83
+ return {
84
+ key,
85
+ label: series[key]?.label ?? key,
86
+ ...color.palette !== void 0 && { palette: color.palette },
87
+ ...color.hex !== void 0 && { hex: color.hex }
88
+ };
89
+ }), [colors, series]);
90
+ const seriesKeys = useMemo(() => legendItems.map((item) => item.key), [legendItems]);
68
91
  const interaction = useChartInteraction({
69
- categoryCount: geometry.columns.length,
70
- seriesKeys: legendKeys,
92
+ categoryCount: geometry.categories.length,
93
+ seriesKeys,
71
94
  categoryKeys: geometry.categories,
72
95
  selection,
73
- isDisabled: noTooltip || isLoading || isEmpty,
96
+ isDisabled: !(hasTooltip || onSelect) || isLoading || isEmpty,
74
97
  isLoading
75
98
  });
76
- const activeColumn = interaction.activeIndex === null ? null : geometry.columns[interaction.activeIndex];
99
+ const activeColumn = interaction.activeIndex === null ? void 0 : geometry.columns[interaction.activeIndex];
77
100
  const buildCategoryTooltip = useCallback((index) => {
78
101
  const column = geometry.columns[index];
79
102
  if (!column) return null;
80
- const rows = [...column.points].sort((a, b) => b.value - a.value).map((point) => ({
103
+ const label = (metric) => series[metric]?.label ?? metric;
104
+ const gapRow = (metric) => ({
105
+ key: `${metric}:gap`,
106
+ label: label(metric),
107
+ value: null,
108
+ formattedValue: formatChartValue(null, formatValue),
109
+ color: colors.resolve(metric).color
110
+ });
111
+ const pointRow = (point) => ({
81
112
  key: point.id,
82
- label: series[point.metric]?.label ?? point.metric,
113
+ label: label(point.metric),
83
114
  value: point.value,
84
- formattedValue: formatValue(point.value),
85
- color: point.color
86
- }));
115
+ formattedValue: formatChartValue(point.value, formatValue),
116
+ color: point.color.color
117
+ });
118
+ let rows;
119
+ if (isStacked) rows = [...lines].reverse().map((lineDatum) => {
120
+ const point = column.points.find((item) => item.metric === lineDatum.metric);
121
+ return point ? pointRow(point) : gapRow(lineDatum.metric);
122
+ });
123
+ else {
124
+ rows = [...column.points].sort((a, b) => b.value - a.value).map(pointRow);
125
+ for (const metric of column.gaps) rows.push(gapRow(metric));
126
+ }
87
127
  return {
88
128
  label: formatLabel(column.label),
89
- rows,
129
+ rows: column.points.length === 0 ? [] : rows,
90
130
  anchorX: column.x,
91
131
  anchorY: column.anchorY
92
132
  };
@@ -94,7 +134,10 @@ var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeig
94
134
  geometry.columns,
95
135
  series,
96
136
  formatValue,
97
- formatLabel
137
+ formatLabel,
138
+ colors,
139
+ isStacked,
140
+ lines
98
141
  ]);
99
142
  const categoryPositions = useMemo(() => geometry.columns.map((column) => column.x - geometry.step / 2), [geometry.columns, geometry.step]);
100
143
  const categoryTargets = useMemo(() => geometry.columns.map((column) => ({
@@ -106,113 +149,112 @@ var LineChart = ({ series, lines, categories, width, height, fillWidth, fillHeig
106
149
  height: plotHeight
107
150
  })), [geometry.columns, plotHeight]);
108
151
  const handleCategorySelect = useCallback((index) => {
109
- const category = geometry.categories[index];
110
- if (category === void 0 || !onSelect) return;
152
+ const categoryKey = geometry.categories[index];
153
+ if (categoryKey === void 0 || !onSelect) return;
111
154
  onSelect({
112
155
  categoryIndex: index,
113
- categoryKey: category
156
+ categoryKey
114
157
  });
115
158
  }, [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]);
159
+ const selectedColumns = geometry.columns.filter((column) => interaction.selectedCategoryIndices.has(column.categoryIndex));
160
+ const point = (item, keyPrefix = "") => /* @__PURE__ */ jsx("circle", {
161
+ cx: item.x,
162
+ cy: item.y,
163
+ r: LINE_POINT_RADIUS,
164
+ className: cx(CHART_POINT_CSS, CHART_MARK_STATE_TO_CSS_MAP[interaction.getMarkState({ seriesKey: item.metric })]),
165
+ style: { "--gx-chart-mark-color": item.color.color }
166
+ }, `${keyPrefix}${item.id}`);
124
167
  return /* @__PURE__ */ jsxs(ChartFrame, {
125
- containerRef,
168
+ rootRef: ref,
169
+ plotRef,
170
+ id,
171
+ className,
172
+ style,
173
+ rest,
126
174
  dimensions,
127
- fillWidth,
128
- fillHeight,
129
175
  interaction,
130
- kind: ChartKind.LINE,
176
+ kind,
131
177
  categoryCount: geometry.categories.length,
132
178
  ariaLabel,
133
- ariaDescription,
179
+ aspectRatio: 2,
134
180
  axes: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ChartValueAxis, {
135
181
  ticks: valueTicks,
136
182
  scale: geometry.valueScale,
137
183
  plotWidth,
138
184
  plotHeight,
139
- marginLeft: dimensions.margin.left,
185
+ insetLeft: dimensions.insets.left,
140
186
  formatter: formatValue,
141
- showGrid,
142
- title: valueAxisTitle
187
+ title: axisLabels?.value
143
188
  }), /* @__PURE__ */ jsx(ChartCategoryAxis, {
144
189
  labels: geometry.categories,
145
190
  positions: categoryPositions,
146
191
  step: geometry.step,
147
192
  plotWidth,
148
193
  plotHeight,
194
+ orientation: Orientation.HORIZONTAL,
195
+ insetLeft: dimensions.insets.left,
149
196
  formatter: formatLabel,
150
- mode: categoryLabelMode,
151
- title: categoryAxisTitle
197
+ title: axisLabels?.category
152
198
  })] }),
153
- noTooltip,
199
+ hasTooltip,
154
200
  buildCategoryTooltip,
155
- tooltipRenderer,
156
- tooltipMaxItems,
201
+ renderTooltip,
157
202
  categoryTargets,
158
203
  onCategorySelect: onSelect && handleCategorySelect,
159
204
  anchorHalfWidth: geometry.step / 2,
160
205
  isEmpty,
161
206
  isLoading,
162
- contentWhenEmpty,
163
- showLegend,
207
+ placeholder,
208
+ hasLegend,
164
209
  legendItems,
165
- legendMaxItems,
210
+ legendPlacement: ChartLegendPlacement.BOTTOM,
211
+ legendSwatch: kind === ChartKind.AREA ? ChartLegendSwatch.SQUARE : ChartLegendSwatch.CIRCLE,
166
212
  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, {
213
+ !isEmpty && geometry.paths.map((path) => path.areaPath ? /* @__PURE__ */ jsx("path", {
214
+ d: path.areaPath,
215
+ 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 })]),
216
+ style: { "--gx-chart-mark-color": path.color.color }
217
+ }, `${path.id}:area`) : null),
218
+ selectedColumns.map((column) => /* @__PURE__ */ jsx("line", {
174
219
  x1: column.x,
175
220
  x2: column.x,
176
221
  y1: 0,
177
222
  y2: plotHeight,
178
- "data-selected": "true"
223
+ className: cx(CHART_CURSOR_LINE_CSS, CHART_CURSOR_LINE_SELECTED_CSS)
179
224
  }, `selected:${column.categoryIndex}`)),
180
- showCursor && activeColumn && /* @__PURE__ */ jsx(ChartCursorLine, {
225
+ activeColumn && /* @__PURE__ */ jsx("line", {
181
226
  x1: activeColumn.x,
182
227
  x2: activeColumn.x,
183
228
  y1: 0,
184
- y2: plotHeight
229
+ y2: plotHeight,
230
+ className: "gx-ChartPrimitives-CHART_CURSOR_LINE_CSS-cwcko2m"
185
231
  }),
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}`)))
232
+ !isEmpty && geometry.paths.map((path) => /* @__PURE__ */ jsx("path", {
233
+ d: path.path,
234
+ 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 })]),
235
+ style: { "--gx-chart-mark-color": path.color.color }
236
+ }, path.id)),
237
+ geometry.isolatedPoints.map((item) => point(item, "isolated:")),
238
+ activeColumn?.points.map((item) => point(item)),
239
+ selectedColumns.filter((column) => column.categoryIndex !== activeColumn?.categoryIndex).flatMap((column) => column.points.map((item) => point(item, "selected:")))
214
240
  ]
215
241
  });
216
- };
242
+ }
243
+ var LineChartRootForwarded = forwardRef(LineChartRootInner);
244
+ LineChartRootForwarded.displayName = "LineChartRoot";
245
+ /** @internal Shared by LineChart and AreaChart; apps use those. */
246
+ var LineChartRoot = LineChartRootForwarded;
247
+ var LineChartInner = forwardRef(function LineChart(props, ref) {
248
+ return /* @__PURE__ */ jsx(LineChartRoot, {
249
+ ...props,
250
+ ref,
251
+ fill: "NONE",
252
+ isStacked: false,
253
+ kind: ChartKind.LINE
254
+ });
255
+ });
256
+ LineChartInner.displayName = "LineChart";
257
+ /** Lines over a categorical x-axis. */
258
+ var LineChart = LineChartInner;
217
259
  //#endregion
218
- export { LineChart as default };
260
+ 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;