@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
@@ -0,0 +1,27 @@
1
+ /** @internal What the scene draws; the component passes its props and the resolved color. */
2
+ export interface GalaxyLogomark3DSceneOptions {
3
+ /** Canvas width and height in CSS px. */
4
+ size: number;
5
+ /** Material color as a resolved hex (`solid.primary.background` or `background.base`). */
6
+ color: string;
7
+ /** Spin around the vertical axis at `speed`. */
8
+ isAutoRotate: boolean;
9
+ /** Drag to orbit (no zoom, no pan). */
10
+ isInteractive: boolean;
11
+ /** Double flip on random axes when the pointer enters. */
12
+ isHoverable: boolean;
13
+ /** Auto-rotation rate in rad/s; the flip lasts `0.5 / speed` s. */
14
+ speed: number;
15
+ }
16
+ /** @internal A mounted scene. */
17
+ export interface GalaxyLogomark3DScene {
18
+ /** Applies new options without rebuilding the scene. */
19
+ update(options: GalaxyLogomark3DSceneOptions): void;
20
+ /** Stops the loop and frees every GPU resource and listener. */
21
+ dispose(): void;
22
+ }
23
+ /**
24
+ * @internal Renders the Galaxy logomark into `canvas` and keeps it moving until `dispose()`.
25
+ * Calls `onFirstFrame` once, after the first frame is drawn.
26
+ */
27
+ export declare function mountGalaxyLogomark3DScene(canvas: HTMLCanvasElement, options: GalaxyLogomark3DSceneOptions, onFirstFrame: () => void): GalaxyLogomark3DScene;
@@ -0,0 +1,165 @@
1
+ import galaxy_logomark_default from "./assets/galaxy-logomark.js";
2
+ import { ACESFilmicToneMapping, AmbientLight, Box3, DirectionalLight, Group, MathUtils, Mesh, MeshPhysicalMaterial, PMREMGenerator, PerspectiveCamera, Scene, Vector3, WebGLRenderer } from "three";
3
+ import { OrbitControls } from "three/addons/controls/OrbitControls.js";
4
+ import { RoomEnvironment } from "three/addons/environments/RoomEnvironment.js";
5
+ import { OBJLoader } from "three/addons/loaders/OBJLoader.js";
6
+ //#region src/three/galaxyLogomark3DScene.ts
7
+ /**
8
+ * @internal The three.js scene behind `GalaxyLogomark3D`; not documented API. The component loads
9
+ * this module with a dynamic `import()` after mount, so three.js and the ~2.4 MB model stay out of
10
+ * every other module's graph and out of build-time evaluation. A port of the 1.x
11
+ * react-three-fiber scene with its default look: one glossy physical material, the simple
12
+ * three-light rig, a procedural `RoomEnvironment` (no CDN fetch), drag-to-orbit only.
13
+ */
14
+ /** The 1.x mesh scale: the resting mark spans ≈ 76% of the canvas at the 1.x camera. */
15
+ var MESH_SCALE = .088;
16
+ /** Reflection strength of the room environment on the material (1.x default, tuned in Storybook). */
17
+ var ENV_MAP_INTENSITY = 1.5;
18
+ /** Ease-out-quart, the 1.x flip curve. */
19
+ var easeOutQuart = (progress) => 1 - (1 - progress) ** 4;
20
+ /** Eases an angle 10% of the way to rest by the shortest way, snapping to 0 once invisible. */
21
+ var settle = (angle) => {
22
+ const next = MathUtils.lerp(wrapAngle(angle), 0, .1);
23
+ return Math.abs(next) < 1e-4 ? 0 : next;
24
+ };
25
+ /** The same angle in [-π, π). */
26
+ var wrapAngle = (angle) => MathUtils.euclideanModulo(angle + Math.PI, Math.PI * 2) - Math.PI;
27
+ /** -1, 0 or 1. */
28
+ var randomAxis = () => Math.floor(Math.random() * 3) - 1;
29
+ /**
30
+ * @internal Renders the Galaxy logomark into `canvas` and keeps it moving until `dispose()`.
31
+ * Calls `onFirstFrame` once, after the first frame is drawn.
32
+ */
33
+ function mountGalaxyLogomark3DScene(canvas, options, onFirstFrame) {
34
+ let current = options;
35
+ const renderer = new WebGLRenderer({
36
+ canvas,
37
+ alpha: true,
38
+ antialias: true
39
+ });
40
+ renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
41
+ renderer.setSize(current.size, current.size, false);
42
+ renderer.setClearAlpha(0);
43
+ renderer.toneMapping = ACESFilmicToneMapping;
44
+ const camera = new PerspectiveCamera(45, 1, .1, 100);
45
+ camera.position.set(0, 0, 4);
46
+ const scene = new Scene();
47
+ scene.add(new AmbientLight(void 0, .5));
48
+ const keyLight = new DirectionalLight(void 0, 1);
49
+ keyLight.position.set(10, 10, 5);
50
+ scene.add(keyLight);
51
+ const fillLight = new DirectionalLight(void 0, .5);
52
+ fillLight.position.set(-10, -10, -5);
53
+ scene.add(fillLight);
54
+ const pmremGenerator = new PMREMGenerator(renderer);
55
+ const roomEnvironment = new RoomEnvironment();
56
+ const environmentTexture = pmremGenerator.fromScene(roomEnvironment, .04).texture;
57
+ roomEnvironment.dispose();
58
+ scene.environment = environmentTexture;
59
+ const material = new MeshPhysicalMaterial({
60
+ color: current.color,
61
+ sheenColor: current.color,
62
+ metalness: 0,
63
+ roughness: 0,
64
+ transmission: 0,
65
+ thickness: 0,
66
+ ior: 1,
67
+ clearcoat: 0,
68
+ clearcoatRoughness: 0,
69
+ sheen: 1,
70
+ sheenRoughness: 0,
71
+ envMapIntensity: ENV_MAP_INTENSITY
72
+ });
73
+ const model = new OBJLoader().parse(galaxy_logomark_default);
74
+ model.traverse((child) => {
75
+ if (child instanceof Mesh) child.material = material;
76
+ });
77
+ model.position.sub(new Box3().setFromObject(model).getCenter(new Vector3()));
78
+ const group = new Group();
79
+ group.scale.setScalar(MESH_SCALE);
80
+ group.add(model);
81
+ scene.add(group);
82
+ const controls = new OrbitControls(camera, canvas);
83
+ controls.enableRotate = true;
84
+ controls.enableZoom = false;
85
+ controls.enablePan = false;
86
+ const setInteractive = (isInteractive) => {
87
+ controls.enabled = isInteractive;
88
+ if (isInteractive) controls.connect(canvas);
89
+ else controls.disconnect();
90
+ };
91
+ if (!current.isInteractive) setInteractive(false);
92
+ const startTime = performance.now();
93
+ const elapsedSeconds = () => (performance.now() - startTime) / 1e3;
94
+ let flipStart = null;
95
+ let flipAxes = {
96
+ x: 0,
97
+ y: 1,
98
+ z: 0
99
+ };
100
+ const onPointerEnter = () => {
101
+ if (!current.isHoverable) return;
102
+ let axes = {
103
+ x: randomAxis(),
104
+ y: randomAxis(),
105
+ z: randomAxis()
106
+ };
107
+ while (axes.x === 0 && axes.y === 0 && axes.z === 0) axes = {
108
+ x: randomAxis(),
109
+ y: randomAxis(),
110
+ z: randomAxis()
111
+ };
112
+ flipAxes = axes;
113
+ flipStart = elapsedSeconds();
114
+ };
115
+ canvas.addEventListener("pointerenter", onPointerEnter);
116
+ let hasDrawn = false;
117
+ let frame = 0;
118
+ const tick = () => {
119
+ frame = requestAnimationFrame(tick);
120
+ const elapsed = elapsedSeconds();
121
+ const flipDuration = .5 / current.speed;
122
+ const { rotation } = group;
123
+ if (flipStart !== null && elapsed - flipStart < flipDuration) {
124
+ const turn = easeOutQuart((elapsed - flipStart) / flipDuration) * Math.PI * 4;
125
+ rotation.set(turn * flipAxes.x, turn * flipAxes.y, turn * flipAxes.z);
126
+ } else {
127
+ flipStart = null;
128
+ rotation.x = settle(rotation.x);
129
+ rotation.z = settle(rotation.z);
130
+ rotation.y = current.isAutoRotate ? elapsed * current.speed : settle(rotation.y);
131
+ }
132
+ renderer.render(scene, camera);
133
+ if (!hasDrawn) {
134
+ hasDrawn = true;
135
+ onFirstFrame();
136
+ }
137
+ };
138
+ frame = requestAnimationFrame(tick);
139
+ return {
140
+ update(next) {
141
+ if (next.size !== current.size) renderer.setSize(next.size, next.size, false);
142
+ if (next.color !== current.color) {
143
+ material.color.set(next.color);
144
+ material.sheenColor.set(next.color);
145
+ }
146
+ if (next.isInteractive !== current.isInteractive) setInteractive(next.isInteractive);
147
+ current = next;
148
+ },
149
+ dispose() {
150
+ cancelAnimationFrame(frame);
151
+ canvas.removeEventListener("pointerenter", onPointerEnter);
152
+ controls.dispose();
153
+ model.traverse((child) => {
154
+ if (child instanceof Mesh) child.geometry.dispose();
155
+ });
156
+ material.dispose();
157
+ environmentTexture.dispose();
158
+ pmremGenerator.dispose();
159
+ renderer.dispose();
160
+ renderer.forceContextLoss();
161
+ }
162
+ };
163
+ }
164
+ //#endregion
165
+ export { mountGalaxyLogomark3DScene };
@@ -0,0 +1,120 @@
1
+ import type { Icon as PhosphorIcon } from "@phosphor-icons/react";
2
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
3
+ import type { PaletteColor } from "../theme/tokens/types.js";
4
+ /** Canonical rungs (subset); the member names the type step of the event text. */
5
+ export declare enum TimelineSize {
6
+ /** body_sm text, 16px box, 4px dot, 10px icon, 12px between events. */
7
+ SMALL = "SMALL",
8
+ /** body_md text, 20px box, 4px dot, 12px icon, 16px between events. The default. */
9
+ MEDIUM = "MEDIUM",
10
+ /** body_lg text, 24px box, 6px dot, 14px icon, 24px between events. */
11
+ LARGE = "LARGE"
12
+ }
13
+ /** The frame around every event's dot or icon. One shape per timeline. */
14
+ export declare enum TimelineMarkerShape {
15
+ /** A square hairline box with control-radius corners. The default. */
16
+ SQUARE = "SQUARE",
17
+ /** A round hairline box. */
18
+ CIRCLE = "CIRCLE",
19
+ /** No box: the dot or icon sits on the rail, 4px clear of the line above and below it. */
20
+ NONE = "NONE"
21
+ }
22
+ /** Marker color of one item (Constitution V-A color set; the Timeline item is listed in that column). */
23
+ export declare enum TimelineVariant {
24
+ /** `text.primary` marker in a `border.primary` box. */
25
+ PRIMARY = "PRIMARY",
26
+ /** `text.secondary` marker in a `border.primary` box. The default. */
27
+ SECONDARY = "SECONDARY",
28
+ /** `text.tertiary` marker in a `border.primary` box. */
29
+ TERTIARY = "TERTIARY",
30
+ /** `text.disabled` marker in a `border.disabled` box: a skipped or cancelled step. */
31
+ DISABLED = "DISABLED",
32
+ /** `currentColor` of the item (`text.primary`) in a `border.primary` box. */
33
+ INHERIT = "INHERIT",
34
+ /** `text.success` marker in a `border.success` box. */
35
+ SUCCESS = "SUCCESS",
36
+ /** `text.warning` marker in a `border.warning` box. */
37
+ WARNING = "WARNING",
38
+ /** `text.error` marker in a `border.error` box. */
39
+ ERROR = "ERROR"
40
+ }
41
+ /** The fields of an event other than its marker color. */
42
+ interface TimelineItemBase {
43
+ /** Stable identity of the event, used as the React key. Not rendered. */
44
+ id: string;
45
+ /** What happened, in a few words ("Run started"). Primary text; wraps when long. */
46
+ label: string;
47
+ /** Detail under the label, in secondary text ("12,480 rows loaded into contacts"). */
48
+ description?: string;
49
+ /** When it happened, already formatted by the app ("14:02", "2 min ago"). Shown at the end of the label line. */
50
+ time?: string;
51
+ /** Machine-readable form of `time` (ISO 8601). When set, `time` renders inside `<time dateTime>`. */
52
+ dateTime?: string;
53
+ /** Marker icon, a Phosphor component (`CheckIcon`, not `<CheckIcon />`). Without it the marker is a dot. */
54
+ icon?: PhosphorIcon;
55
+ /**
56
+ * The event is in progress: a dot marker pulses and the item gets `aria-current="step"`.
57
+ * @default false
58
+ */
59
+ isActive?: boolean;
60
+ /** Content under the description: links, chips, a button, a code block. */
61
+ footer?: ReactNode;
62
+ }
63
+ /** An event whose marker is colored by meaning (`variant`), or the default `SECONDARY`. */
64
+ interface TimelineItemVariantProps {
65
+ /**
66
+ * Marker color role: a neutral step or a status. Not with `color`.
67
+ * @default TimelineVariant.SECONDARY
68
+ */
69
+ variant?: TimelineVariant;
70
+ /** Categorical palette family. Not with `variant`. */
71
+ color?: undefined;
72
+ }
73
+ /** An event whose marker is colored by category (`color`). */
74
+ interface TimelineItemColorProps {
75
+ /**
76
+ * Marker color role: a neutral step or a status. Not with `color`.
77
+ * @default TimelineVariant.SECONDARY
78
+ */
79
+ variant?: undefined;
80
+ /**
81
+ * Categorical palette family (`"blue"`, `"violet"`, …): the dot or icon takes `text.<family>`
82
+ * and the box `border.<family>`, the way a status variant renders. For an event's category (a source, a team); meanings take
83
+ * `variant`. Not with `variant`.
84
+ */
85
+ color: PaletteColor;
86
+ }
87
+ /** One event on the timeline. Passing both `variant` and `color` is a type error. */
88
+ export type TimelineItem = TimelineItemBase & (TimelineItemVariantProps | TimelineItemColorProps);
89
+ export interface TimelineProps extends AriaAttributes {
90
+ /** The events, in the order to show. */
91
+ items: TimelineItem[];
92
+ /**
93
+ * Type step of the label, time and description (`body_sm` / `body_md` / `body_lg`), the marker box (16 / 20 / 24px) and the space between events.
94
+ * @default TimelineSize.MEDIUM
95
+ */
96
+ size?: TimelineSize;
97
+ /**
98
+ * The frame around each dot or icon: a square box, a round box, or none (the rail runs straight
99
+ * into the marker). The marker keeps its 16 / 20 / 24px slot in every shape, so text never moves.
100
+ * @default TimelineMarkerShape.SQUARE
101
+ */
102
+ markerShape?: TimelineMarkerShape;
103
+ /**
104
+ * Fill each box with its item's background role: a neutral step, `background.<status>` or
105
+ * `background.<family>`, the way a `Chip` fills. Ignored with `TimelineMarkerShape.NONE`.
106
+ * @default false
107
+ */
108
+ isFilled?: boolean;
109
+ /** DOM id on the root `<ol>`. */
110
+ id?: string;
111
+ /** Any `data-*` attribute, forwarded to the root `<ol>`. */
112
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
113
+ /** Extra class on the root `<ol>`. */
114
+ className?: string;
115
+ /** Inline style on the root `<ol>`; only for setting CSS custom properties. */
116
+ style?: CSSProperties;
117
+ }
118
+ /** A vertical list of events with dot or icon markers (boxed or bare) on a hairline rail. */
119
+ declare const Timeline: import("react").ForwardRefExoticComponent<TimelineProps & import("react").RefAttributes<HTMLOListElement>>;
120
+ export default Timeline;
@@ -0,0 +1,301 @@
1
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
2
+ import Beacon, { BeaconSize, BeaconVariant } from "../beacons/Beacon.js";
3
+ import Icon, { IconVariant } from "../icons/Icon.js";
4
+ /* empty css */
5
+ import { styled } from "@linaria/react";
6
+ import { forwardRef } from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { cx } from "@linaria/core";
9
+ //#region src/timeline/Timeline.tsx
10
+ /**
11
+ * A sequence of events in time order, top to bottom: a pipeline run's history, a sync's steps, an
12
+ * audit trail, an activity feed. Each item is a marker on a vertical rail (a `Beacon` dot, or an
13
+ * `Icon` when `icon` is set, inside a small hairline box: square, round, or no box at all with
14
+ * `markerShape`, unfilled unless `isFilled`), a one-line label centered on the marker, an optional time at the end of the label line, an optional description and
15
+ * an optional footer. A 0.5px rail runs from the bottom edge of each box to the top edge of the
16
+ * next, whatever the item's height. Only the marker takes the item's color-set `variant` (a
17
+ * meaning) or categorical `color` (a palette family): the dot or icon its text color, the box its
18
+ * border color (and its fill with `isFilled`). The words stay primary and secondary.
19
+ *
20
+ * Read-only: it does not order, group, fetch or format anything. An ordered list (`<ol>`, kept a
21
+ * list in Safari with `role="list"` because the package reset removes list styling); the rail is
22
+ * decorative. Not a `Stepper`, a table, or a chart over a time axis.
23
+ */
24
+ /** Canonical rungs (subset); the member names the type step of the event text. */
25
+ var TimelineSize = /* @__PURE__ */ function(TimelineSize) {
26
+ /** body_sm text, 16px box, 4px dot, 10px icon, 12px between events. */
27
+ TimelineSize["SMALL"] = "SMALL";
28
+ /** body_md text, 20px box, 4px dot, 12px icon, 16px between events. The default. */
29
+ TimelineSize["MEDIUM"] = "MEDIUM";
30
+ /** body_lg text, 24px box, 6px dot, 14px icon, 24px between events. */
31
+ TimelineSize["LARGE"] = "LARGE";
32
+ return TimelineSize;
33
+ }({});
34
+ /** The frame around every event's dot or icon. One shape per timeline. */
35
+ var TimelineMarkerShape = /* @__PURE__ */ function(TimelineMarkerShape) {
36
+ /** A square hairline box with control-radius corners. The default. */
37
+ TimelineMarkerShape["SQUARE"] = "SQUARE";
38
+ /** A round hairline box. */
39
+ TimelineMarkerShape["CIRCLE"] = "CIRCLE";
40
+ /** No box: the dot or icon sits on the rail, 4px clear of the line above and below it. */
41
+ TimelineMarkerShape["NONE"] = "NONE";
42
+ return TimelineMarkerShape;
43
+ }({});
44
+ /** Marker color of one item (Constitution V-A color set; the Timeline item is listed in that column). */
45
+ var TimelineVariant = /* @__PURE__ */ function(TimelineVariant) {
46
+ /** `text.primary` marker in a `border.primary` box. */
47
+ TimelineVariant["PRIMARY"] = "PRIMARY";
48
+ /** `text.secondary` marker in a `border.primary` box. The default. */
49
+ TimelineVariant["SECONDARY"] = "SECONDARY";
50
+ /** `text.tertiary` marker in a `border.primary` box. */
51
+ TimelineVariant["TERTIARY"] = "TERTIARY";
52
+ /** `text.disabled` marker in a `border.disabled` box: a skipped or cancelled step. */
53
+ TimelineVariant["DISABLED"] = "DISABLED";
54
+ /** `currentColor` of the item (`text.primary`) in a `border.primary` box. */
55
+ TimelineVariant["INHERIT"] = "INHERIT";
56
+ /** `text.success` marker in a `border.success` box. */
57
+ TimelineVariant["SUCCESS"] = "SUCCESS";
58
+ /** `text.warning` marker in a `border.warning` box. */
59
+ TimelineVariant["WARNING"] = "WARNING";
60
+ /** `text.error` marker in a `border.error` box. */
61
+ TimelineVariant["ERROR"] = "ERROR";
62
+ return TimelineVariant;
63
+ }({});
64
+ /** The ordered list of events. */
65
+ var Root = /*#__PURE__*/ styled("ol")({
66
+ name: "Root",
67
+ class: "gx-Timeline-rzjag0b",
68
+ propsAsIs: false
69
+ });
70
+ /**
71
+ * One event: the rail column and the body column in one grid row, so the rail stretches to the
72
+ * event's full height (its content plus the space before the next event) with no measurement.
73
+ */
74
+ var Item = /*#__PURE__*/ styled("li")({
75
+ name: "Item",
76
+ class: "gx-Timeline-Item-ihxmlb4",
77
+ propsAsIs: false
78
+ });
79
+ /**
80
+ * The marker box, then the connector: the connector fills from the box's bottom edge to the item's
81
+ * bottom edge, which is the next item's top edge and so the top of the next box. No gap, no overlap.
82
+ */
83
+ var Rail = /*#__PURE__*/ styled("span")({
84
+ name: "Rail",
85
+ class: "gx-Timeline-Rail-rfxm9ra",
86
+ propsAsIs: false
87
+ });
88
+ /**
89
+ * A square hairline box holding the dot or icon: no fill, the item's border color (the
90
+ * neutral \`border.primary\`, a status border or a palette family's border).
91
+ */
92
+ var Marker = /*#__PURE__*/ styled("span")({
93
+ name: "Marker",
94
+ class: "gx-Timeline-Marker-m11eshsv",
95
+ propsAsIs: false
96
+ });
97
+ /**
98
+ * The rail is a hairline from a zero-width box centered on the marker. Browsers paint it a whole CSS
99
+ * pixel wide, starting at the center and snapped to the right of it, so on a 2× screen it sits one
100
+ * device pixel right of the dot or icon. Half a pixel back centers it exactly and stays crisp at 2×
101
+ * and up; at 1× a 1px line cannot center on an even-width mark, so it stays put.
102
+ */
103
+ /**
104
+ * The marker frame per shape. `NONE` drops the box and draws the rail through the empty slot, above
105
+ * and below the dot or icon, stopping 4px short of it, so the line leads to the marker instead of an
106
+ * invisible box edge. The first event has no line above its marker and the last none below (the
107
+ * stubs keep their space, so the marker stays centered on its label).
108
+ */
109
+ var TIMELINE_MARKER_SHAPE_TO_CSS_MAP = {
110
+ ["SQUARE"]: "gx-Timeline-SQUARE-s1u5y4o2",
111
+ ["CIRCLE"]: "gx-Timeline-CIRCLE-c132ryei",
112
+ ["NONE"]: "gx-Timeline-NONE-n1j1o23c"
113
+ };
114
+ /** `isFilled`: the box takes its item's fill role (`--gx-timeline-fill`, set per variant and color). */
115
+ var FILLED_CSS = "gx-Timeline-FILLED_CSS-f6c9753";
116
+ /** The 0.5px hairline from the bottom of this box to the top of the next one. */
117
+ var Connector = /*#__PURE__*/ styled("span")({
118
+ name: "Connector",
119
+ class: "gx-Timeline-Connector-c1fj1oub",
120
+ propsAsIs: false
121
+ });
122
+ /**
123
+ * Label line, description and footer. The top padding centers the first line on the box; the space
124
+ * between events is bottom padding here, so the connector crosses it.
125
+ */
126
+ var Body = /*#__PURE__*/ styled("div")({
127
+ name: "Body",
128
+ class: "gx-Timeline-Body-b1whgn5t",
129
+ propsAsIs: false
130
+ });
131
+ /** The label wraps; the time stays at the end of the first line. */
132
+ var Heading = /*#__PURE__*/ styled("div")({
133
+ name: "Heading",
134
+ class: "gx-Timeline-Heading-h1j9kdi1",
135
+ propsAsIs: false
136
+ });
137
+ /**
138
+ * Links, chips, a button, a code block. Inline items keep their size and wrap; block content (a
139
+ * `CodeBlock`, a `JsonViewer`) takes the whole row, so code and JSON fill the body's width.
140
+ */
141
+ var Footer = /*#__PURE__*/ styled("div")({
142
+ name: "Footer",
143
+ class: "gx-Timeline-Footer-feakmyp",
144
+ propsAsIs: false
145
+ });
146
+ /**
147
+ * The time in the second column, on one line. A flex box, so a `<time>` wrapper has no line strut
148
+ * of its own (the inherited font size) and shares the label's baseline at every size.
149
+ */
150
+ var TIME_CSS = "gx-Timeline-TIME_CSS-t1vcatjx";
151
+ /** Line height, marker box (16 / 20 / 24px), column gap and event spacing per rung. */
152
+ var TIMELINE_SIZE_TO_CSS_MAP = {
153
+ ["SMALL"]: "gx-Timeline-SMALL-s1195fxg",
154
+ ["MEDIUM"]: "gx-Timeline-MEDIUM-m1oqbau9",
155
+ ["LARGE"]: "gx-Timeline-LARGE-l11wi4d2"
156
+ };
157
+ /** The event text's type step. */
158
+ var TIMELINE_SIZE_TO_TEXT_SIZE_MAP = {
159
+ ["SMALL"]: TextSize.BODY_SM,
160
+ ["MEDIUM"]: TextSize.BODY_MD,
161
+ ["LARGE"]: TextSize.BODY_LG
162
+ };
163
+ /** The rung's icon size, in px, inside the 16 / 20 / 24px box. */
164
+ var TIMELINE_SIZE_TO_ICON_PX_MAP = {
165
+ ["SMALL"]: 10,
166
+ ["MEDIUM"]: 12,
167
+ ["LARGE"]: 14
168
+ };
169
+ /** The dot's rung, one step below the text so it sits quietly in the smaller box. */
170
+ var TIMELINE_SIZE_TO_BEACON_SIZE_MAP = {
171
+ ["SMALL"]: BeaconSize.X_SMALL,
172
+ ["MEDIUM"]: BeaconSize.SMALL,
173
+ ["LARGE"]: BeaconSize.MEDIUM
174
+ };
175
+ /** Identity: the item variant is the dot's. */
176
+ var TIMELINE_VARIANT_TO_BEACON_VARIANT_MAP = {
177
+ ["PRIMARY"]: BeaconVariant.PRIMARY,
178
+ ["SECONDARY"]: BeaconVariant.SECONDARY,
179
+ ["TERTIARY"]: BeaconVariant.TERTIARY,
180
+ ["DISABLED"]: BeaconVariant.DISABLED,
181
+ ["INHERIT"]: BeaconVariant.INHERIT,
182
+ ["SUCCESS"]: BeaconVariant.SUCCESS,
183
+ ["WARNING"]: BeaconVariant.WARNING,
184
+ ["ERROR"]: BeaconVariant.ERROR
185
+ };
186
+ /** Identity: the item variant is the icon's. */
187
+ var TIMELINE_VARIANT_TO_ICON_VARIANT_MAP = {
188
+ ["PRIMARY"]: IconVariant.PRIMARY,
189
+ ["SECONDARY"]: IconVariant.SECONDARY,
190
+ ["TERTIARY"]: IconVariant.TERTIARY,
191
+ ["DISABLED"]: IconVariant.DISABLED,
192
+ ["INHERIT"]: IconVariant.INHERIT,
193
+ ["SUCCESS"]: IconVariant.SUCCESS,
194
+ ["WARNING"]: IconVariant.WARNING,
195
+ ["ERROR"]: IconVariant.ERROR
196
+ };
197
+ /**
198
+ * The marker box's hairline and fill per variant: neutral roles keep `border.primary` and fill
199
+ * `background.secondary`; statuses take their own border and background roles.
200
+ */
201
+ var TIMELINE_VARIANT_TO_CSS_MAP = {
202
+ ["PRIMARY"]: "gx-Timeline-PRIMARY-p1r53y3e",
203
+ ["SECONDARY"]: "gx-Timeline-SECONDARY-s61v3n7",
204
+ ["TERTIARY"]: "gx-Timeline-TERTIARY-t1tjq5mm",
205
+ ["DISABLED"]: "gx-Timeline-DISABLED-da735oo",
206
+ ["INHERIT"]: "gx-Timeline-INHERIT-i1ayi32k",
207
+ ["SUCCESS"]: "gx-Timeline-SUCCESS-s155vzhv",
208
+ ["WARNING"]: "gx-Timeline-WARNING-wtnc6wm",
209
+ ["ERROR"]: "gx-Timeline-ERROR-e1q3p1vl"
210
+ };
211
+ /**
212
+ * Categorical `color` on the marker: `text.<family>`, which an icon marker (`IconVariant.INHERIT`)
213
+ * takes, and `border.<family>` and the `background.<family>` fill on the box.
214
+ */
215
+ var TIMELINE_COLOR_TO_CSS_MAP = {
216
+ red: "gx-Timeline-red-r1khc5e9",
217
+ orange: "gx-Timeline-orange-oob0jun",
218
+ amber: "gx-Timeline-amber-acpz10x",
219
+ yellow: "gx-Timeline-yellow-y1arc1uv",
220
+ lime: "gx-Timeline-lime-l1x7dvj6",
221
+ green: "gx-Timeline-green-g1fx1m3c",
222
+ emerald: "gx-Timeline-emerald-e1gy5gqm",
223
+ teal: "gx-Timeline-teal-ttyv4re",
224
+ cyan: "gx-Timeline-cyan-c1506u15",
225
+ sky: "gx-Timeline-sky-s2f8n55",
226
+ blue: "gx-Timeline-blue-b1bza0tc",
227
+ indigo: "gx-Timeline-indigo-i1vbt6lr",
228
+ violet: "gx-Timeline-violet-vjtm0e",
229
+ purple: "gx-Timeline-purple-pek3kdh",
230
+ fuchsia: "gx-Timeline-fuchsia-f13hn3pe",
231
+ pink: "gx-Timeline-pink-pdf3rdi",
232
+ rose: "gx-Timeline-rose-rjv99mk"
233
+ };
234
+ /** A vertical list of events with dot or icon markers (boxed or bare) on a hairline rail. */
235
+ var Timeline = forwardRef(function Timeline({ items, size = "MEDIUM", markerShape = "SQUARE", isFilled = false, className, style, ...rest }, ref) {
236
+ const textSize = TIMELINE_SIZE_TO_TEXT_SIZE_MAP[size];
237
+ return /* @__PURE__ */ jsx(Root, {
238
+ ...rest,
239
+ ref,
240
+ role: "list",
241
+ className: cx(TIMELINE_SIZE_TO_CSS_MAP[size], className),
242
+ style,
243
+ children: items.map((item, index) => {
244
+ const { color } = item;
245
+ const variant = item.variant ?? "SECONDARY";
246
+ const hasTime = Boolean(item.time);
247
+ return /* @__PURE__ */ jsxs(Item, {
248
+ "aria-current": item.isActive === true ? "step" : void 0,
249
+ children: [/* @__PURE__ */ jsxs(Rail, {
250
+ "aria-hidden": true,
251
+ children: [/* @__PURE__ */ jsx(Marker, {
252
+ className: cx(color !== void 0 ? TIMELINE_COLOR_TO_CSS_MAP[color] : TIMELINE_VARIANT_TO_CSS_MAP[variant], TIMELINE_MARKER_SHAPE_TO_CSS_MAP[markerShape], isFilled && markerShape !== "NONE" && FILLED_CSS),
253
+ children: item.icon === void 0 ? /* @__PURE__ */ jsx(Beacon, {
254
+ size: TIMELINE_SIZE_TO_BEACON_SIZE_MAP[size],
255
+ ...color !== void 0 ? { color } : { variant: TIMELINE_VARIANT_TO_BEACON_VARIANT_MAP[variant] },
256
+ isPulse: item.isActive === true
257
+ }) : /* @__PURE__ */ jsx(Icon, {
258
+ component: item.icon,
259
+ size: TIMELINE_SIZE_TO_ICON_PX_MAP[size],
260
+ variant: color !== void 0 ? IconVariant.INHERIT : TIMELINE_VARIANT_TO_ICON_VARIANT_MAP[variant]
261
+ })
262
+ }), index < items.length - 1 && /* @__PURE__ */ jsx(Connector, {})]
263
+ }), /* @__PURE__ */ jsxs(Body, { children: [
264
+ /* @__PURE__ */ jsxs(Heading, { children: [/* @__PURE__ */ jsx(Text, {
265
+ as: "span",
266
+ size: textSize,
267
+ variant: TextVariant.PRIMARY,
268
+ children: item.label
269
+ }), hasTime && (item.dateTime ? /* @__PURE__ */ jsx("time", {
270
+ dateTime: item.dateTime,
271
+ className: TIME_CSS,
272
+ children: /* @__PURE__ */ jsx(Text, {
273
+ as: "span",
274
+ size: textSize,
275
+ variant: TextVariant.SECONDARY,
276
+ isTabular: true,
277
+ children: item.time
278
+ })
279
+ }) : /* @__PURE__ */ jsx(Text, {
280
+ as: "span",
281
+ size: textSize,
282
+ variant: TextVariant.SECONDARY,
283
+ isTabular: true,
284
+ className: TIME_CSS,
285
+ children: item.time
286
+ }))] }),
287
+ Boolean(item.description) && /* @__PURE__ */ jsx(Text, {
288
+ as: "p",
289
+ size: textSize,
290
+ variant: TextVariant.SECONDARY,
291
+ children: item.description
292
+ }),
293
+ item.footer !== void 0 && item.footer !== null && /* @__PURE__ */ jsx(Footer, { children: item.footer })
294
+ ] })]
295
+ }, item.id);
296
+ })
297
+ });
298
+ });
299
+ Timeline.displayName = "Timeline";
300
+ //#endregion
301
+ export { TimelineMarkerShape, TimelineSize, TimelineVariant, Timeline as default };