@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
@@ -0,0 +1,244 @@
1
+ import { ChartCurve } from "./types.js";
2
+ import { buildLinePath } from "./lineChartGeometry.js";
3
+ import { layoutBars } from "./barChartGeometry.js";
4
+ /* empty css */
5
+ import { styled } from "@linaria/react";
6
+ import { forwardRef } from "react";
7
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
+ import { cx } from "@linaria/core";
9
+ //#region src/charts/Sparkline.tsx
10
+ /**
11
+ * Sparkline is a word-sized trend: a tiny line or row of bars with no axes, legend, tooltip or
12
+ * interaction, set beside the number it summarizes in a table cell, a list row, a `StatChart` or a
13
+ * sentence. It shows shape (rising, falling, spiky), not values; a chart to read values from is
14
+ * `LineChart` / `BarChart`.
15
+ *
16
+ * Color is CSS: `SPARKLINE_VARIANT_TO_CSS_MAP` (or `SPARKLINE_COLOR_TO_CSS_MAP` for a categorical
17
+ * `color`) sets `color` from `color.text.*` and the marks read
18
+ * `currentColor`, so `INHERIT` and `hex` share one path and a theme switch needs no re-render.
19
+ * Height is a control rung so it lines up with its row; width is four times
20
+ * the height unless `fillWidth`.
21
+ *
22
+ * Drawn in a fixed `0 0 100 100` viewBox with `preserveAspectRatio="none"` and a non-scaling
23
+ * stroke: no measurement, identical under SSR. Reuses LineChart's curve and the 1.x bar spacing.
24
+ * Needs the optional peer `d3-shape`.
25
+ */
26
+ /** Rung of the row the sparkline sits in. Height = control height; default width = 4 × height. */
27
+ var SparklineSize = /* @__PURE__ */ function(SparklineSize) {
28
+ /** 20px tall, 80px wide. */
29
+ SparklineSize["X_SMALL"] = "X_SMALL";
30
+ /** 24px tall, 96px wide. */
31
+ SparklineSize["SMALL"] = "SMALL";
32
+ /** 32px tall, 128px wide. The default. */
33
+ SparklineSize["MEDIUM"] = "MEDIUM";
34
+ /** 36px tall, 144px wide. */
35
+ SparklineSize["LARGE"] = "LARGE";
36
+ /** 40px tall, 160px wide. */
37
+ SparklineSize["X_LARGE"] = "X_LARGE";
38
+ return SparklineSize;
39
+ }({});
40
+ /** Color role (Constitution V-A color set; subset). */
41
+ var SparklineVariant = /* @__PURE__ */ function(SparklineVariant) {
42
+ /** `text.primary`. */
43
+ SparklineVariant["PRIMARY"] = "PRIMARY";
44
+ /** `text.secondary`. The default. */
45
+ SparklineVariant["SECONDARY"] = "SECONDARY";
46
+ /** `text.tertiary`. */
47
+ SparklineVariant["TERTIARY"] = "TERTIARY";
48
+ /** The parent's color (`currentColor`). */
49
+ SparklineVariant["INHERIT"] = "INHERIT";
50
+ /** Status: success, `text.success`. */
51
+ SparklineVariant["SUCCESS"] = "SUCCESS";
52
+ /** Status: warning, `text.warning`. */
53
+ SparklineVariant["WARNING"] = "WARNING";
54
+ /** Status: error, `text.error`. */
55
+ SparklineVariant["ERROR"] = "ERROR";
56
+ return SparklineVariant;
57
+ }({});
58
+ /** What the data is drawn as. A named second axis (Article V), not a variant. */
59
+ var SparklineMark = /* @__PURE__ */ function(SparklineMark) {
60
+ /** A 1.5px line. The default. */
61
+ SparklineMark["LINE"] = "LINE";
62
+ /** One bar per value, from a zero baseline. */
63
+ SparklineMark["BAR"] = "BAR";
64
+ return SparklineMark;
65
+ }({});
66
+ /**
67
+ * Px kept clear on every side of the drawing, so the line's round caps and its stroke at the top
68
+ * and bottom stay inside the root (half the stroke, rounded up to a whole pixel). Padding in real
69
+ * pixels, not viewBox units, because the viewBox stretches with the box.
70
+ */
71
+ /** Gap between bars: 1 viewBox unit per 100 (≈ 1px at the default width). */
72
+ var SPARKLINE_BAR_GAP = 1;
73
+ /**
74
+ * Phrasing content, so a sparkline is valid inside `Text`, a table cell or a `<label>`. The marks
75
+ * paint with `currentColor`; `forced-color-adjust: none` keeps the data marks in their color in
76
+ * high contrast (the Circle, Square and Beacon precedent).
77
+ */
78
+ var Root = /*#__PURE__*/ styled("span")({
79
+ name: "Root",
80
+ class: "gx-Sparkline-r1asbe5y",
81
+ propsAsIs: false
82
+ });
83
+ var Svg = /*#__PURE__*/ styled("svg")({
84
+ name: "Svg",
85
+ class: "gx-Sparkline-Svg-s9k8755",
86
+ propsAsIs: false
87
+ });
88
+ /** The line: the chart line weight however far the box is stretched. */
89
+ var SPARKLINE_LINE_CSS = "gx-Sparkline-SPARKLINE_LINE_CSS-s119f4ag";
90
+ /** Square bars (Decision 4). */
91
+ var SPARKLINE_BAR_CSS = "gx-Sparkline-SPARKLINE_BAR_CSS-srn2uxg";
92
+ /** The zero baseline when a bar domain crosses zero. */
93
+ var SPARKLINE_BASELINE_CSS = "gx-Sparkline-SPARKLINE_BASELINE_CSS-s1brjpq6";
94
+ var FILL_WIDTH_CSS = "gx-Sparkline-FILL_WIDTH_CSS-fvjsow7";
95
+ /** Height per rung (the control rungs). */
96
+ var SPARKLINE_SIZE_TO_CSS_MAP = {
97
+ ["X_SMALL"]: "gx-Sparkline-X_SMALL-xcnrk12",
98
+ ["SMALL"]: "gx-Sparkline-SMALL-s1060hmm",
99
+ ["MEDIUM"]: "gx-Sparkline-MEDIUM-m1rkkg41",
100
+ ["LARGE"]: "gx-Sparkline-LARGE-l1mfr8ta",
101
+ ["X_LARGE"]: "gx-Sparkline-X_LARGE-x1tuu0sq"
102
+ };
103
+ /** Sets `color`; the marks read it. */
104
+ var SPARKLINE_VARIANT_TO_CSS_MAP = {
105
+ ["PRIMARY"]: "gx-Sparkline-PRIMARY-p15j1694",
106
+ ["SECONDARY"]: "gx-Sparkline-SECONDARY-sqf29gm",
107
+ ["TERTIARY"]: "gx-Sparkline-TERTIARY-to15cvu",
108
+ ["INHERIT"]: "gx-Sparkline-INHERIT-iwafbc4",
109
+ ["SUCCESS"]: "gx-Sparkline-SUCCESS-s18oxn06",
110
+ ["WARNING"]: "gx-Sparkline-WARNING-w12wppjx",
111
+ ["ERROR"]: "gx-Sparkline-ERROR-e1vjlz3y"
112
+ };
113
+ /** Categorical `color`: `text.<family>`, the way a status variant renders. */
114
+ var SPARKLINE_COLOR_TO_CSS_MAP = {
115
+ red: "gx-Sparkline-red-r1g1xl1p",
116
+ orange: "gx-Sparkline-orange-o1jau8rz",
117
+ amber: "gx-Sparkline-amber-a1oe0nww",
118
+ yellow: "gx-Sparkline-yellow-y927tvl",
119
+ lime: "gx-Sparkline-lime-l17vquw4",
120
+ green: "gx-Sparkline-green-g1dzgnla",
121
+ emerald: "gx-Sparkline-emerald-e11hl6v6",
122
+ teal: "gx-Sparkline-teal-t1dtbnvn",
123
+ cyan: "gx-Sparkline-cyan-c1hj4qmv",
124
+ sky: "gx-Sparkline-sky-s157jvnt",
125
+ blue: "gx-Sparkline-blue-b14oiqli",
126
+ indigo: "gx-Sparkline-indigo-izvb5wf",
127
+ violet: "gx-Sparkline-violet-v1rblyi3",
128
+ purple: "gx-Sparkline-purple-p1lhbciw",
129
+ fuchsia: "gx-Sparkline-fuchsia-f1l7cy0y",
130
+ pink: "gx-Sparkline-pink-ppfz7ft",
131
+ rose: "gx-Sparkline-rose-r14stz7g"
132
+ };
133
+ /** Declared after the variant and color maps so `hex` wins over them. */
134
+ var HEX_CSS = "gx-Sparkline-HEX_CSS-h41c05i";
135
+ /** A finite reading, or `null` for a gap. */
136
+ var toReading = (value) => typeof value === "number" && Number.isFinite(value) ? value : null;
137
+ /** The vertical range: the override where given, else the mark's default from the readings. */
138
+ function resolveDomain(readings, mark, valueDomain) {
139
+ const smallest = Math.min(...readings);
140
+ const largest = Math.max(...readings);
141
+ const autoMin = mark === "BAR" ? Math.min(0, smallest) : smallest;
142
+ const autoMax = mark === "BAR" ? Math.max(0, largest) : largest;
143
+ return [toReading(valueDomain?.min) ?? autoMin, toReading(valueDomain?.max) ?? autoMax];
144
+ }
145
+ /** Value → viewBox y (clamped to the box; the root's padding keeps the stroke inside). A flat domain sits at mid-height. */
146
+ function toY(value, [min, max]) {
147
+ if (max <= min) return 50;
148
+ const y = (1 - (value - min) / (max - min)) * 100;
149
+ return Math.min(100, Math.max(0, y));
150
+ }
151
+ /** The line, split at gaps; a lone reading between gaps is a zero-length segment (a round dot). */
152
+ function renderLine(values, domain) {
153
+ const count = values.length;
154
+ const runs = [];
155
+ let run = [];
156
+ values.forEach((value, index) => {
157
+ if (value === null) {
158
+ if (run.length > 0) runs.push(run);
159
+ run = [];
160
+ return;
161
+ }
162
+ run.push({
163
+ x: count === 1 ? 50 : index / (count - 1) * 100,
164
+ y: toY(value, domain)
165
+ });
166
+ });
167
+ if (run.length > 0) runs.push(run);
168
+ const path = runs.map((points) => {
169
+ const [only] = points;
170
+ if (points.length === 1 && only !== void 0) return `M${only.x},${only.y}L${only.x},${only.y}`;
171
+ return buildLinePath(points, ChartCurve.SMOOTH);
172
+ }).join("");
173
+ return path === "" ? null : /* @__PURE__ */ jsx("path", {
174
+ className: SPARKLINE_LINE_CSS,
175
+ d: path
176
+ });
177
+ }
178
+ /** One square bar per reading from the zero baseline, plus the baseline when the domain crosses 0. */
179
+ function renderBars(values, domain) {
180
+ const slots = layoutBars(values.length, 100, SPARKLINE_BAR_GAP);
181
+ const zeroY = toY(Math.min(Math.max(0, domain[0]), domain[1]), domain);
182
+ const crossesZero = domain[0] < 0 && domain[1] > 0;
183
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [values.map((value, index) => {
184
+ const slot = slots[index];
185
+ if (value === null || slot === void 0) return null;
186
+ const y = toY(value, domain);
187
+ return /* @__PURE__ */ jsx("rect", {
188
+ className: SPARKLINE_BAR_CSS,
189
+ x: slot.x,
190
+ width: slot.width,
191
+ y: Math.min(y, zeroY),
192
+ height: Math.abs(zeroY - y)
193
+ }, index);
194
+ }), crossesZero && /* @__PURE__ */ jsx("line", {
195
+ className: SPARKLINE_BASELINE_CSS,
196
+ x1: 0,
197
+ x2: 100,
198
+ y1: zeroY,
199
+ y2: zeroY
200
+ })] });
201
+ }
202
+ /** A word-sized line or bar trend beside the number it summarizes. */
203
+ var Sparkline = forwardRef(function Sparkline({ data, mark = "LINE", variant = "SECONDARY", color, hex, size = "MEDIUM", fillWidth = false, valueDomain, ariaLabel, id, className, style, ...rest }, ref) {
204
+ const variables = {};
205
+ if (hex !== void 0) variables["--gx-sparkline-hex"] = hex;
206
+ const values = data.map(toReading);
207
+ const readings = values.filter((value) => value !== null);
208
+ let marks = null;
209
+ if (readings.length > 0) {
210
+ const domain = resolveDomain(readings, mark, valueDomain);
211
+ marks = mark === "BAR" ? renderBars(values, domain) : renderLine(values, domain);
212
+ }
213
+ const passedLabel = typeof rest["aria-label"] === "string" ? rest["aria-label"] : void 0;
214
+ const name = ariaLabel || passedLabel;
215
+ const accessibility = name ? {
216
+ role: "img",
217
+ "aria-label": name,
218
+ "aria-hidden": void 0
219
+ } : {
220
+ "aria-hidden": true,
221
+ "aria-label": void 0
222
+ };
223
+ return /* @__PURE__ */ jsx(Root, {
224
+ ...rest,
225
+ ...accessibility,
226
+ ref,
227
+ id,
228
+ className: cx(SPARKLINE_SIZE_TO_CSS_MAP[size], color !== void 0 ? SPARKLINE_COLOR_TO_CSS_MAP[color] : SPARKLINE_VARIANT_TO_CSS_MAP[variant], hex !== void 0 && HEX_CSS, fillWidth && FILL_WIDTH_CSS, className),
229
+ style: {
230
+ ...variables,
231
+ ...style
232
+ },
233
+ children: /* @__PURE__ */ jsx(Svg, {
234
+ viewBox: "0 0 100 100",
235
+ preserveAspectRatio: "none",
236
+ "aria-hidden": true,
237
+ focusable: "false",
238
+ children: marks
239
+ })
240
+ });
241
+ });
242
+ Sparkline.displayName = "Sparkline";
243
+ //#endregion
244
+ export { SparklineMark, SparklineSize, SparklineVariant, Sparkline as default };
@@ -1,24 +1,48 @@
1
- import type { ReactNode } from "react";
2
- /** Surface treatment of the stat tile. */
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ /** Tile fill (Constitution V surface set: containers). */
3
3
  export declare enum StatChartVariant {
4
+ /** The canvas fill, `background.base`. */
4
5
  BASE = "BASE",
6
+ /** A panel fill, `background.primary`. The default (1.x). */
5
7
  PRIMARY = "PRIMARY",
8
+ /** A raised fill, `background.secondary`. */
6
9
  SECONDARY = "SECONDARY",
10
+ /** The most elevated fill, `background.tertiary`. */
7
11
  TERTIARY = "TERTIARY"
8
12
  }
9
- export interface StatChartProps {
10
- /** What the number means. Rendered small and secondary above the value. */
13
+ export interface StatChartProps extends AriaAttributes {
14
+ /** What the number means. Small, tertiary, one line above the value. */
11
15
  label: string;
12
- /** The headline figure. A node, so it can carry a unit or a trend indicator. */
16
+ /** The headline figure. A string or number renders as `body_lg` medium with tabular numerals; pass a node for a value with a unit or a custom treatment. */
13
17
  value: ReactNode;
14
- /** @default StatChartVariant.PRIMARY */
18
+ /** One short line under the value: the comparison or context ("+4% vs last week"). */
19
+ description?: string;
20
+ /** At the end of the value row, vertically centered: a `Sparkline`, a `Chip`, a delta. */
21
+ trailing?: ReactNode;
22
+ /**
23
+ * Surface fill of the tile.
24
+ * @default StatChartVariant.PRIMARY
25
+ */
15
26
  variant?: StatChartVariant;
16
- /** Drop the hairline border — for tiles inside an already-bordered container. */
17
- noBorder?: boolean;
27
+ /**
28
+ * Adds the `0.5px` hairline. Use it for tiles on a page; leave it off inside an already-bordered container.
29
+ * @default false
30
+ */
31
+ hasBorder?: boolean;
32
+ /**
33
+ * Replaces `value` with a `Skeleton` line and hides `description` and `trailing`; the label stays. Sets `aria-busy`.
34
+ * @default false
35
+ */
36
+ isLoading?: boolean;
37
+ /** DOM id on the root. */
38
+ id?: string;
39
+ /** Any `data-*` attribute, forwarded to the root. */
40
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
41
+ /** Extra class on the root. */
42
+ className?: string;
43
+ /** Inline style on the root; only for setting CSS custom properties. */
44
+ style?: CSSProperties;
18
45
  }
19
- /**
20
- * A single-number stat tile — the KPI card. Fixed 140px minimum width so a row
21
- * of them lines up without you setting widths.
22
- */
23
- declare const StatChart: ({ label, value, variant, noBorder, }: StatChartProps) => import("react").JSX.Element;
46
+ /** A KPI tile: label, headline value, optional description and trailing trend. */
47
+ declare const StatChart: import("react").ForwardRefExoticComponent<StatChartProps & import("react").RefAttributes<HTMLElement>>;
24
48
  export default StatChart;
@@ -1,58 +1,105 @@
1
- import { withTheme } from "../theme/GalaxyTheme.js";
1
+ import Skeleton, { SkeletonSize, SkeletonVariant } from "../feedback/Skeleton.js";
2
+ import { Radius } from "../theme/enums.js";
2
3
  import Text, { TextSize, TextVariant, TextWeight } from "../text/Text.js";
3
- import FlexWrapper, { AlignItems, FlexDirection } from "../containers/FlexWrapper.js";
4
+ import Flex, { AlignItems, FlexDirection } from "../layout/Flex.js";
5
+ import Box, { BoxVariant } from "../layout/Box.js";
6
+ import FlexItem from "../layout/FlexItem.js";
4
7
  /* empty css */
5
- import { styled } from "@linaria/react";
6
- import { match } from "ts-pattern";
8
+ import { forwardRef } from "react";
7
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
+ import { cx } from "@linaria/core";
8
11
  //#region src/charts/StatChart.tsx
9
- /** Surface treatment of the stat tile. */
12
+ /**
13
+ * StatChart is the KPI tile: one number with its label, on a quiet surface, sized so a row of them
14
+ * lines up. A `label` ("Active users"), a `value` ("1,284"), an optional `description` under the
15
+ * value ("+4% vs last week") and an optional `trailing` slot at the end of the value row for a
16
+ * `Sparkline` or a `Chip`. The tile is a `Box`: `variant` picks its surface step and `hasBorder`
17
+ * adds the hairline. `isLoading` swaps the value for a `Skeleton` line of the same height.
18
+ *
19
+ * It draws no chart itself and imports no chart code (no d3). It is not a card with a header and
20
+ * actions (`Widget`) and not a list of label/value pairs (`DescriptionList`).
21
+ */
22
+ /** Tile fill (Constitution V surface set: containers). */
10
23
  var StatChartVariant = /* @__PURE__ */ function(StatChartVariant) {
24
+ /** The canvas fill, `background.base`. */
11
25
  StatChartVariant["BASE"] = "BASE";
26
+ /** A panel fill, `background.primary`. The default (1.x). */
12
27
  StatChartVariant["PRIMARY"] = "PRIMARY";
28
+ /** A raised fill, `background.secondary`. */
13
29
  StatChartVariant["SECONDARY"] = "SECONDARY";
30
+ /** The most elevated fill, `background.tertiary`. */
14
31
  StatChartVariant["TERTIARY"] = "TERTIARY";
15
32
  return StatChartVariant;
16
33
  }({});
17
- var _exp = () => ({ theme, $variant }) => match($variant).with("BASE", () => theme.color.background.base).with("PRIMARY", () => theme.color.background.primary).with("SECONDARY", () => theme.color.background.secondary).with("TERTIARY", () => theme.color.background.tertiary).exhaustive();
18
- var _exp2 = () => ({ theme, $noBorder }) => $noBorder ? "transparent" : theme.color.border.primary;
19
- var StatChartWrapper = withTheme(/*#__PURE__*/ styled("div")({
20
- name: "StatChartWrapper",
21
- class: "slaxlp8",
22
- propsAsIs: false,
23
- vars: {
24
- "slaxlp8-0": [_exp()],
25
- "slaxlp8-1": [_exp2()]
26
- }
27
- }));
28
- /**
29
- * A single-number stat tile — the KPI card. Fixed 140px minimum width so a row
30
- * of them lines up without you setting widths.
31
- */
32
- var StatChart = ({ label, value, variant = "PRIMARY", noBorder }) => {
33
- return /* @__PURE__ */ jsx(StatChartWrapper, {
34
- $variant: variant,
35
- $noBorder: noBorder,
36
- children: /* @__PURE__ */ jsxs(FlexWrapper, {
34
+ /** Identity by member name: `Box` owns the fill and the hairline. */
35
+ var STAT_CHART_VARIANT_TO_BOX_VARIANT_MAP = {
36
+ ["BASE"]: BoxVariant.BASE,
37
+ ["PRIMARY"]: BoxVariant.PRIMARY,
38
+ ["SECONDARY"]: BoxVariant.SECONDARY,
39
+ ["TERTIARY"]: BoxVariant.TERTIARY
40
+ };
41
+ /** Tiles in a `Flex` row keep their width; in a `Grid` they stretch to the track (1.x). */
42
+ var ROOT_CSS = "gx-StatChart-ROOT_CSS-rlaxlp8";
43
+ /** A string or number as the headline figure; a node as given. */
44
+ function renderValue(value) {
45
+ if (typeof value === "string" || typeof value === "number") return /* @__PURE__ */ jsx(Text, {
46
+ size: TextSize.BODY_LG,
47
+ weight: TextWeight.MEDIUM,
48
+ isTabular: true,
49
+ lineClamp: 1,
50
+ children: value
51
+ });
52
+ return value;
53
+ }
54
+ /** A KPI tile: label, headline value, optional description and trailing trend. */
55
+ var StatChart = forwardRef(function StatChart({ label, value, description, trailing, variant = "PRIMARY", hasBorder = false, isLoading = false, id, className, style, ...rest }, ref) {
56
+ return /* @__PURE__ */ jsx(Box, {
57
+ ...rest,
58
+ ...isLoading ? { "aria-busy": true } : {},
59
+ ref,
60
+ ...id === void 0 ? {} : { id },
61
+ variant: STAT_CHART_VARIANT_TO_BOX_VARIANT_MAP[variant],
62
+ hasBorder,
63
+ radius: Radius.LG,
64
+ padding: [12, 16],
65
+ minWidth: 140,
66
+ className: cx(ROOT_CSS, className),
67
+ ...style === void 0 ? {} : { style },
68
+ children: /* @__PURE__ */ jsxs(Flex, {
37
69
  direction: FlexDirection.COLUMN,
38
70
  gap: 8,
39
71
  minWidth: 0,
40
72
  children: [/* @__PURE__ */ jsx(Text, {
41
73
  size: TextSize.BODY_SM,
42
74
  variant: TextVariant.TERTIARY,
43
- isEllipsis: true,
75
+ lineClamp: 1,
44
76
  children: label
45
- }), /* @__PURE__ */ jsx(FlexWrapper, {
46
- alignItems: AlignItems.CENTER,
47
- gap: 6,
48
- children: typeof value === "string" ? /* @__PURE__ */ jsx(Text, {
49
- size: TextSize.BODY_LG,
50
- weight: TextWeight.MEDIUM,
51
- children: value
52
- }) : value
77
+ }), isLoading ? /* @__PURE__ */ jsx(Skeleton, {
78
+ variant: SkeletonVariant.TEXT,
79
+ size: SkeletonSize.LARGE
80
+ }) : /* @__PURE__ */ jsxs(Flex, {
81
+ direction: FlexDirection.COLUMN,
82
+ gap: 4,
83
+ minWidth: 0,
84
+ children: [/* @__PURE__ */ jsxs(Flex, {
85
+ alignItems: AlignItems.CENTER,
86
+ gap: 8,
87
+ minWidth: 0,
88
+ children: [/* @__PURE__ */ jsx(FlexItem, {
89
+ grow: 1,
90
+ minWidth: 0,
91
+ children: renderValue(value)
92
+ }), trailing]
93
+ }), description ? /* @__PURE__ */ jsx(Text, {
94
+ size: TextSize.BODY_SM,
95
+ variant: TextVariant.SECONDARY,
96
+ lineClamp: 1,
97
+ children: description
98
+ }) : null]
53
99
  })]
54
100
  })
55
101
  });
56
- };
102
+ });
103
+ StatChart.displayName = "StatChart";
57
104
  //#endregion
58
105
  export { StatChartVariant, StatChart as default };