@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,189 +1,212 @@
1
- import FlexWrapper, { AlignItems, FlexDirection, JustifyContent } from "../containers/FlexWrapper.js";
1
+ import Text, { TextSize, TextWeight } from "../text/Text.js";
2
2
  import { ChartKind, ChartLegendPlacement, ChartTargetShape } from "./types.js";
3
- import { PIE_CHART_MARGIN, PIE_MIN_SLICE_SHARE } from "./constants.js";
4
- import { useSeriesColorResolver } from "./useSeriesColorResolver.js";
3
+ import { CHART_ARC_CSS, CHART_MARK_STATE_TO_CSS_MAP } from "./ChartPrimitives.js";
4
+ import { RADIAL_PLOT_INSET } from "./constants.js";
5
+ import { ChartLegendSwatch } from "./ChartLegend.js";
5
6
  import { ChartTooltipVerticalAlign } from "./useChartTooltipPosition.js";
6
- import { useChartInteraction } from "./useChartInteraction.js";
7
- import { useChartFormatters } from "./useChartFormatters.js";
7
+ import { ChartFrame } from "./ChartFrame.js";
8
+ import { formatNumber, formatPercent } from "../utils/format.js";
8
9
  import { useChartDimensions } from "./useChartDimensions.js";
9
- import { buildPieChartGeometry } from "./pieChartGeometry.js";
10
- import { ChartArcPath, ChartCenterBox } from "./ChartPrimitives.js";
11
- import ChartFrame from "./ChartFrame.js";
12
- import { useCallback, useMemo, useRef } from "react";
10
+ import { useChartFormatters } from "./useChartFormatters.js";
11
+ import { useChartInteraction } from "./useChartInteraction.js";
12
+ import { useSeriesColorResolver } from "./useSeriesColorResolver.js";
13
+ import { PIE_MIN_SLICE_SHARE, buildPieChartGeometry, resolvePieChartSlices } from "./pieChartGeometry.js";
14
+ /* empty css */
15
+ import { styled } from "@linaria/react";
16
+ import { forwardRef, useCallback, useMemo, useRef } from "react";
13
17
  import { jsx } from "react/jsx-runtime";
18
+ import { cx } from "@linaria/core";
14
19
  //#region src/charts/PieChart.tsx
15
20
  /**
16
- * Pie and donut chart.
21
+ * PieChart shows how a whole splits into a few parts, as a donut (the default) or a solid pie.
22
+ * Slices are named in the `series` record and colored from `ChartPalette`;
23
+ * slices under `minSliceShare` fold into one neutral "Other" slice so every remaining arc is
24
+ * readable and hittable. The donut hole holds `children` (a total, a headline figure). The legend
25
+ * sits beside the plot. Hover and keyboard work per slice; a click or Enter reports the slice. It
26
+ * never joins `ChartGroupProvider` sync (it has no category axis).
17
27
  *
18
- * Unlike the cartesian charts there is no category axis to hit-test against, so
19
- * each arc is its own target. Small slices are folded into an "Other" bucket by
20
- * default, which keeps every remaining arc large enough to actually hit.
28
+ * The chart fills its parent (2:1 when the parent has no definite height). Needs the optional
29
+ * peers `d3-scale` and `d3-shape`.
21
30
  */
22
- var PieChart = ({ series, slices, width, height, fillWidth, fillHeight, aspectRatio, margin, innerRadiusRatio, padAngle, cornerRadius, minSliceShare = PIE_MIN_SLICE_SHARE, aggregatedLabel, centerContent, onSelect, selection, valueUnit, valueFormatter, labelFormatter, showLegend = true, legendMaxItems, noTooltip = false, tooltipRenderer, tooltipMaxItems, isLoading = false, contentWhenEmpty, ariaLabel, ariaDescription }) => {
23
- const containerRef = useRef(null);
31
+ var DEFAULT_PLACEHOLDER = "No data available";
32
+ var DEFAULT_AGGREGATED_LABEL = "Other";
33
+ var PLOT_INSETS = {
34
+ top: RADIAL_PLOT_INSET,
35
+ right: RADIAL_PLOT_INSET,
36
+ bottom: RADIAL_PLOT_INSET,
37
+ left: RADIAL_PLOT_INSET
38
+ };
39
+ /** The plot box takes the root's full height (the side-legend row centers its items). */
40
+ var PLOT_CSS = "gx-PieChart-PLOT_CSS-p1ez9f1";
41
+ /** Beside a legend the plot box is square (its height), so the legend sits next to the circle. */
42
+ var SQUARE_PLOT_CSS = "gx-PieChart-SQUARE_PLOT_CSS-smxszqr";
43
+ /** The donut hole's content box: the inscribed square of the hole, centered on the pie. */
44
+ var CenterBox = /*#__PURE__*/ styled("div")({
45
+ name: "CenterBox",
46
+ class: "gx-PieChart-CenterBox-c158myaw",
47
+ propsAsIs: false
48
+ });
49
+ function PieChartInner(props, ref) {
50
+ const { series, slices, isSolid = false, minSliceShare = PIE_MIN_SLICE_SHARE, aggregatedLabel = DEFAULT_AGGREGATED_LABEL, children, valueFormatter, hasLegend = true, hasTooltip = true, renderTooltip, isLoading = false, placeholder = DEFAULT_PLACEHOLDER, onSelect, selection, isFilterable = false, defaultSelection, onSelectionChange, ariaLabel, id, className, style, ...rest } = props;
51
+ const plotRef = useRef(null);
24
52
  const colors = useSeriesColorResolver(series);
25
- const dimensions = useChartDimensions({
26
- containerRef,
27
- width: showLegend && width !== void 0 && height !== void 0 ? Math.min(width, height) : width,
28
- height,
29
- fillWidth,
30
- fillHeight,
31
- aspectRatio,
32
- margin,
33
- defaultMargin: PIE_CHART_MARGIN
34
- });
35
- const { plotWidth, plotHeight } = dimensions;
36
- const { formatValue, formatLabel } = useChartFormatters({
37
- valueFormatter,
38
- valueUnit,
39
- labelFormatter
40
- });
41
- const getSliceLabel = useCallback((sliceKey) => series[sliceKey]?.label ?? sliceKey, [series]);
42
- const getSliceColor = useCallback((sliceKey) => series[sliceKey]?.color, [series]);
43
- const resolveColor = useCallback(({ sliceKey, explicit }) => sliceKey === null ? colors.neutral : colors.resolve(sliceKey, explicit), [colors]);
44
- const geometry = useMemo(() => buildPieChartGeometry({
53
+ const dimensions = useChartDimensions(plotRef, PLOT_INSETS);
54
+ const { plotWidth, plotHeight, insets } = dimensions;
55
+ const { formatValue } = useChartFormatters(valueFormatter);
56
+ const resolveColor = useCallback((sliceKey) => sliceKey === null ? colors.neutral : colors.resolve(sliceKey), [colors]);
57
+ const getSliceLabel = useCallback((key) => series[key]?.label ?? key, [series]);
58
+ const resolvedSlices = useMemo(() => resolvePieChartSlices({
45
59
  slices,
46
- plotWidth,
47
- plotHeight,
48
- innerRadiusRatio,
49
- padAngle,
50
- cornerRadius,
51
60
  minSliceShare,
52
61
  aggregatedLabel,
53
62
  resolveColor,
54
- getSliceColor,
55
63
  getSliceLabel
56
64
  }), [
57
65
  slices,
58
- plotWidth,
59
- plotHeight,
60
- innerRadiusRatio,
61
- padAngle,
62
- cornerRadius,
63
66
  minSliceShare,
64
67
  aggregatedLabel,
65
68
  resolveColor,
66
- getSliceColor,
67
69
  getSliceLabel
68
70
  ]);
69
- const isEmpty = geometry.arcs.length === 0;
70
- const legendItems = useMemo(() => geometry.arcs.map((chartArc) => ({
71
- key: chartArc.id,
72
- label: formatLabel(chartArc.label),
73
- color: chartArc.color
74
- })), [geometry.arcs, formatLabel]);
75
- const legendKeys = useMemo(() => legendItems.map((item) => item.key), [legendItems]);
71
+ const geometry = useMemo(() => buildPieChartGeometry({
72
+ slices: resolvedSlices,
73
+ plotWidth,
74
+ plotHeight,
75
+ isSolid
76
+ }), [
77
+ resolvedSlices,
78
+ plotWidth,
79
+ plotHeight,
80
+ isSolid
81
+ ]);
82
+ const isEmpty = !slices.some((slice) => Number.isFinite(slice.value) && slice.value > 0);
83
+ const legendItems = useMemo(() => resolvedSlices.map((item) => ({
84
+ key: item.id,
85
+ label: item.label,
86
+ ...item.color.palette !== void 0 && { palette: item.color.palette },
87
+ ...item.color.hex !== void 0 && { hex: item.color.hex }
88
+ })), [resolvedSlices]);
89
+ const arcKeys = useMemo(() => legendItems.map((item) => item.key), [legendItems]);
76
90
  const interaction = useChartInteraction({
77
- categoryCount: geometry.arcs.length,
78
- seriesKeys: legendKeys,
79
- categoryKeys: legendKeys,
91
+ categoryCount: resolvedSlices.length,
92
+ seriesKeys: arcKeys,
93
+ categoryKeys: arcKeys,
80
94
  enableGroupSync: false,
81
95
  selection,
82
- isDisabled: noTooltip || isLoading || isEmpty,
96
+ isFilterable,
97
+ defaultSelection,
98
+ onSelectionChange,
99
+ isDisabled: !(hasTooltip || onSelect || isFilterable) || isLoading || isEmpty,
83
100
  isLoading
84
101
  });
85
102
  const buildCategoryTooltip = useCallback((index) => {
86
- const chartArc = geometry.arcs[index];
87
- if (!chartArc) return null;
103
+ const item = geometry.arcs[index];
104
+ if (!item) return null;
88
105
  return {
89
- label: formatLabel(chartArc.label),
106
+ label: item.label,
90
107
  rows: [{
91
- key: chartArc.id,
92
- label: `${Math.round(chartArc.share * 1e3) / 10}% of total`,
93
- value: chartArc.value,
94
- formattedValue: formatValue(chartArc.value),
95
- color: chartArc.color
108
+ key: item.id,
109
+ label: item.label,
110
+ value: item.value,
111
+ formattedValue: `${formatValue(item.value)} · ${formatPercent(item.share)}`,
112
+ color: item.color.color
96
113
  }],
97
- anchorX: chartArc.anchorX,
98
- anchorY: chartArc.anchorY
114
+ anchorX: item.anchorX,
115
+ anchorY: item.anchorY
99
116
  };
100
- }, [
101
- geometry.arcs,
102
- formatValue,
103
- formatLabel
104
- ]);
105
- /**
106
- * Targets reuse each arc's own `d`, drawn again transparent above the marks.
107
- *
108
- * The arcs themselves stay pure marks: hit testing then works identically on
109
- * all three charts, instead of the pie hit-testing its visible arcs directly.
110
- */
111
- const categoryTargets = useMemo(() => geometry.arcs.map((chartArc) => ({
112
- key: chartArc.id,
117
+ }, [geometry.arcs, formatValue]);
118
+ const describeCategory = useCallback((index) => {
119
+ const item = resolvedSlices[index];
120
+ if (!item) return "";
121
+ const share = formatNumber(item.share * 100, { precision: 1 });
122
+ return `${item.label}. ${formatValue(item.value)}, ${share} percent.`;
123
+ }, [resolvedSlices, formatValue]);
124
+ const categoryTargets = useMemo(() => geometry.arcs.map((item) => ({
125
+ key: item.id,
113
126
  shape: ChartTargetShape.PATH,
114
- d: chartArc.path
127
+ d: item.path
115
128
  })), [geometry.arcs]);
116
- const handleCategorySelect = useCallback((index) => {
117
- const chartArc = geometry.arcs[index];
118
- if (!chartArc || !onSelect) return;
119
- const key = chartArc.id;
120
- onSelect({
129
+ const { toggleSelection } = interaction;
130
+ const handleSelect = useCallback((index, isAdditive = false) => {
131
+ const item = resolvedSlices[index];
132
+ if (!item) return;
133
+ onSelect?.({
121
134
  categoryIndex: index,
122
- categoryKey: chartArc.id,
123
- seriesKey: key,
124
- value: chartArc.value
135
+ categoryKey: item.id,
136
+ seriesKey: item.id,
137
+ value: item.value
125
138
  });
126
- }, [geometry.arcs, onSelect]);
127
- const showCenter = centerContent && (innerRadiusRatio ?? .62) > 0;
139
+ toggleSelection({ seriesKey: item.id }, isAdditive);
140
+ }, [
141
+ resolvedSlices,
142
+ onSelect,
143
+ toggleSelection
144
+ ]);
145
+ const passedAriaLabel = typeof rest["aria-label"] === "string" ? rest["aria-label"] : void 0;
146
+ const resolvedAriaLabel = ariaLabel ?? passedAriaLabel ?? `${isSolid ? "Pie" : "Donut"} chart, ${resolvedSlices.length} slices`;
147
+ const hasCenter = !isSolid && children !== void 0 && children !== null && !isEmpty;
148
+ const centerSize = Math.max(0, geometry.innerRadius * Math.SQRT2);
149
+ const center = hasCenter ? /* @__PURE__ */ jsx(CenterBox, {
150
+ style: {
151
+ "--gx-pie-center-x": `${insets.left + geometry.centerX}px`,
152
+ "--gx-pie-center-y": `${insets.top + geometry.centerY}px`,
153
+ "--gx-pie-center-size": `${centerSize}px`
154
+ },
155
+ children: typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx(Text, {
156
+ size: TextSize.HEADING_MD,
157
+ weight: TextWeight.MEDIUM,
158
+ isTabular: true,
159
+ children
160
+ }) : children
161
+ }) : null;
162
+ const centerTransform = `translate(${geometry.centerX}, ${geometry.centerY})`;
128
163
  return /* @__PURE__ */ jsx(ChartFrame, {
129
- containerRef,
164
+ rootRef: ref,
165
+ plotRef,
166
+ id,
167
+ className,
168
+ style,
169
+ rest,
130
170
  dimensions,
131
- fillWidth,
132
- fillHeight,
133
171
  interaction,
134
172
  kind: ChartKind.PIE,
135
- categoryCount: geometry.arcs.length,
136
- ariaLabel,
137
- ariaDescription,
138
- noTooltip,
173
+ categoryCount: resolvedSlices.length,
174
+ ariaLabel: resolvedAriaLabel,
175
+ aspectRatio: 2,
176
+ plotOverlay: center,
177
+ plotClassName: cx(PLOT_CSS, hasLegend && SQUARE_PLOT_CSS),
178
+ describeCategory,
179
+ hasTooltip,
139
180
  buildCategoryTooltip,
140
- tooltipRenderer,
141
- tooltipMaxItems,
181
+ renderTooltip,
142
182
  categoryTargets,
143
- onCategorySelect: onSelect && handleCategorySelect,
144
- categoryTargetsTransform: `translate(${geometry.centerX}, ${geometry.centerY})`,
183
+ targetsTransform: centerTransform,
184
+ onCategorySelect: onSelect || isFilterable ? handleSelect : void 0,
145
185
  placeAwayFromX: geometry.centerX,
146
186
  verticalAlign: ChartTooltipVerticalAlign.CENTERED,
147
187
  isEmpty,
148
188
  isLoading,
149
- contentWhenEmpty,
150
- showLegend,
189
+ placeholder,
190
+ hasLegend,
151
191
  legendItems,
152
- legendMaxItems,
153
192
  legendPlacement: ChartLegendPlacement.RIGHT,
154
- plotOverlay: showCenter && !isEmpty ? /* @__PURE__ */ jsx(ChartDonutCenter, {
155
- centerX: dimensions.margin.left + geometry.centerX,
156
- centerY: dimensions.margin.top + geometry.centerY,
157
- diameter: geometry.innerRadius * 2,
158
- children: centerContent
159
- }) : null,
193
+ legendSwatch: ChartLegendSwatch.SQUARE,
160
194
  children: /* @__PURE__ */ jsx("g", {
161
- transform: `translate(${geometry.centerX}, ${geometry.centerY})`,
162
- children: geometry.arcs.map((chartArc, index) => /* @__PURE__ */ jsx(ChartArcPath, {
163
- d: chartArc.path,
164
- fill: chartArc.color,
165
- "data-state": interaction.getMarkState({
195
+ transform: centerTransform,
196
+ children: geometry.arcs.map((item, index) => /* @__PURE__ */ jsx("path", {
197
+ d: item.path,
198
+ className: cx(CHART_ARC_CSS, CHART_MARK_STATE_TO_CSS_MAP[interaction.getMarkState({
166
199
  categoryIndex: index,
167
- seriesKey: chartArc.id
168
- })
169
- }, chartArc.id))
200
+ seriesKey: item.id
201
+ })]),
202
+ style: { "--gx-chart-mark-color": item.color.color }
203
+ }, item.id))
170
204
  })
171
205
  });
172
- };
173
- /** Positions arbitrary content inside the donut hole. */
174
- var ChartDonutCenter = ({ centerX, centerY, diameter, children }) => /* @__PURE__ */ jsx(ChartCenterBox, {
175
- $centerX: centerX,
176
- $centerY: centerY,
177
- $diameter: diameter,
178
- children: /* @__PURE__ */ jsx(FlexWrapper, {
179
- direction: FlexDirection.COLUMN,
180
- justifyContent: JustifyContent.CENTER,
181
- alignItems: AlignItems.CENTER,
182
- gap: 2,
183
- fillWidth: true,
184
- fillHeight: true,
185
- children
186
- })
187
- });
206
+ }
207
+ var PieChartForwarded = forwardRef(PieChartInner);
208
+ PieChartForwarded.displayName = "PieChart";
209
+ /** A donut (or solid pie) of a few parts of one whole. */
210
+ var PieChart = PieChartForwarded;
188
211
  //#endregion
189
212
  export { PieChart as default };
@@ -0,0 +1,107 @@
1
+ import { type AriaAttributes, type CSSProperties } from "react";
2
+ import type { Hex, PaletteColor } from "../theme/tokens/types.js";
3
+ import { type ChartValueDomain } from "./types.js";
4
+ /** Rung of the row the sparkline sits in. Height = control height; default width = 4 × height. */
5
+ export declare enum SparklineSize {
6
+ /** 20px tall, 80px wide. */
7
+ X_SMALL = "X_SMALL",
8
+ /** 24px tall, 96px wide. */
9
+ SMALL = "SMALL",
10
+ /** 32px tall, 128px wide. The default. */
11
+ MEDIUM = "MEDIUM",
12
+ /** 36px tall, 144px wide. */
13
+ LARGE = "LARGE",
14
+ /** 40px tall, 160px wide. */
15
+ X_LARGE = "X_LARGE"
16
+ }
17
+ /** Color role (Constitution V-A color set; subset). */
18
+ export declare enum SparklineVariant {
19
+ /** `text.primary`. */
20
+ PRIMARY = "PRIMARY",
21
+ /** `text.secondary`. The default. */
22
+ SECONDARY = "SECONDARY",
23
+ /** `text.tertiary`. */
24
+ TERTIARY = "TERTIARY",
25
+ /** The parent's color (`currentColor`). */
26
+ INHERIT = "INHERIT",
27
+ /** Status: success, `text.success`. */
28
+ SUCCESS = "SUCCESS",
29
+ /** Status: warning, `text.warning`. */
30
+ WARNING = "WARNING",
31
+ /** Status: error, `text.error`. */
32
+ ERROR = "ERROR"
33
+ }
34
+ /** What the data is drawn as. A named second axis (Article V), not a variant. */
35
+ export declare enum SparklineMark {
36
+ /** A 1.5px line. The default. */
37
+ LINE = "LINE",
38
+ /** One bar per value, from a zero baseline. */
39
+ BAR = "BAR"
40
+ }
41
+ interface SparklineBaseProps extends AriaAttributes {
42
+ /** Values in order, left to right. `null` breaks the line (or leaves a bar slot empty). */
43
+ data: (number | null)[];
44
+ /**
45
+ * Draw a line or a row of bars.
46
+ * @default SparklineMark.LINE
47
+ */
48
+ mark?: SparklineMark;
49
+ /** Raw color for a data-driven color. Discouraged: it does not follow the theme. Overrides `variant` and `color`. */
50
+ hex?: Hex;
51
+ /**
52
+ * Height of the control rung it sits beside (20 / 24 / 32 / 36 / 40px); width is four times the height unless `fillWidth`.
53
+ * @default SparklineSize.MEDIUM
54
+ */
55
+ size?: SparklineSize;
56
+ /**
57
+ * Stretch to the parent's width instead of the 4:1 default.
58
+ * @default false
59
+ */
60
+ fillWidth?: boolean;
61
+ /**
62
+ * Fix the vertical range so sparklines in a column compare.
63
+ * @default line: [smallest, largest]; bar: [min(0, smallest), max(0, largest)]
64
+ */
65
+ valueDomain?: Partial<Pick<ChartValueDomain, "min" | "max">>;
66
+ /** Accessible name that states the trend ("Signups, last 30 days, rising"). Without it the sparkline is decorative (`aria-hidden`). */
67
+ ariaLabel?: string;
68
+ /** DOM id on the root `<span>`. */
69
+ id?: string;
70
+ /** Any `data-*` attribute, forwarded to the root `<span>`. */
71
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
72
+ /** Extra class on the root `<span>`. */
73
+ className?: string;
74
+ /** Inline style on the root `<span>`; only for setting CSS custom properties. Merged after `--gx-sparkline-hex`. */
75
+ style?: CSSProperties;
76
+ }
77
+ /** A sparkline colored by meaning (`variant`), or the default `SECONDARY`. */
78
+ interface SparklineVariantProps {
79
+ /**
80
+ * Color role: a neutral step or a status, following the theme. `INHERIT` takes the parent's
81
+ * text color. Not with `color`.
82
+ * @default SparklineVariant.SECONDARY
83
+ */
84
+ variant?: SparklineVariant;
85
+ /** Categorical palette family. Not with `variant`. */
86
+ color?: undefined;
87
+ }
88
+ /** A sparkline colored by category (`color`). */
89
+ interface SparklineColorProps {
90
+ /**
91
+ * Color role: a neutral step or a status, following the theme. `INHERIT` takes the parent's
92
+ * text color. Not with `color`.
93
+ * @default SparklineVariant.SECONDARY
94
+ */
95
+ variant?: undefined;
96
+ /**
97
+ * Categorical palette family (`"blue"`, `"violet"`, …): the marks take `text.<family>`, the way
98
+ * a status variant renders. For a series' category color; meanings take `variant`. Not with
99
+ * `variant`.
100
+ */
101
+ color: PaletteColor;
102
+ }
103
+ /** Sparkline props. Passing both `variant` and `color` is a type error. */
104
+ export type SparklineProps = SparklineBaseProps & (SparklineVariantProps | SparklineColorProps);
105
+ /** A word-sized line or bar trend beside the number it summarizes. */
106
+ declare const Sparkline: import("react").ForwardRefExoticComponent<SparklineProps & import("react").RefAttributes<HTMLSpanElement>>;
107
+ export default Sparkline;