@galaxy-io/dls 1.6.1 → 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 -30
  468. package/dist/inputs/SwitcherInput.js +0 -81
  469. package/dist/inputs/hooks.d.ts +0 -10
  470. package/dist/inputs/hooks.js +0 -22
  471. package/dist/overlay/constants.d.ts +0 -28
  472. package/dist/overlay/constants.js +0 -37
  473. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  474. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  475. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  476. package/dist/resizable/VerticalResizeHandle.js +0 -39
  477. package/dist/table/SpreadsheetCell.d.ts +0 -21
  478. package/dist/table/SpreadsheetCell.js +0 -71
  479. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  480. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  481. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  482. package/dist/table/SpreadsheetMenuItem.js +0 -33
  483. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  484. package/dist/table/SpreadsheetPrimitives.js +0 -105
  485. package/dist/table/SpreadsheetRow.d.ts +0 -33
  486. package/dist/table/SpreadsheetRow.js +0 -73
  487. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  488. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  489. package/dist/table/TableExpandCell.d.ts +0 -11
  490. package/dist/table/TableExpandCell.js +0 -24
  491. package/dist/table/TableExpandedRow.d.ts +0 -16
  492. package/dist/table/TableExpandedRow.js +0 -77
  493. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  494. package/dist/table/TableHeaderCellContent.js +0 -48
  495. package/dist/table/TablePrimitives.d.ts +0 -313
  496. package/dist/table/TablePrimitives.js +0 -302
  497. package/dist/table/TableSelectCell.d.ts +0 -18
  498. package/dist/table/TableSelectCell.js +0 -27
  499. package/dist/table/TableStatusRow.d.ts +0 -18
  500. package/dist/table/TableStatusRow.js +0 -50
  501. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  502. package/dist/table/useSpreadsheetEditing.js +0 -41
  503. package/dist/table/useTableColumnResize.d.ts +0 -38
  504. package/dist/table/useTableColumnResize.js +0 -155
  505. package/dist/table/useTableRowExpansion.d.ts +0 -24
  506. package/dist/table/useTableRowExpansion.js +0 -62
  507. package/dist/table/utils.d.ts +0 -50
  508. package/dist/table/utils.js +0 -78
  509. package/dist/text/HotKeys.d.ts +0 -30
  510. package/dist/text/HotKeys.js +0 -74
  511. package/dist/text/Paragraph.d.ts +0 -33
  512. package/dist/text/Paragraph.js +0 -83
  513. package/dist/text/TextShimmer.d.ts +0 -14
  514. package/dist/text/TextShimmer.js +0 -34
  515. package/dist/theme/GalaxyTheme.d.ts +0 -67
  516. package/dist/theme/GalaxyTheme.js +0 -119
  517. package/dist/theme/constants.d.ts +0 -8
  518. package/dist/theme/constants.js +0 -38
  519. package/dist/theme/index.d.ts +0 -6
  520. package/dist/theme/index.js +0 -7
  521. package/dist/theme/types.d.ts +0 -195
  522. package/dist/theme/types.js +0 -10
  523. package/dist/theme/typography.d.ts +0 -2
  524. package/dist/theme/typography.js +0 -73
  525. package/dist/theme/variants/dark.d.ts +0 -2
  526. package/dist/theme/variants/dark.js +0 -125
  527. package/dist/theme/variants/light.d.ts +0 -2
  528. package/dist/theme/variants/light.js +0 -125
  529. package/dist/toast/ToastContainer.d.ts +0 -10
  530. package/dist/toast/ToastContainer.js +0 -31
  531. package/dist/toast/ToastWrapper.d.ts +0 -6
  532. package/dist/toast/ToastWrapper.js +0 -27
  533. package/dist/transform/Flash.d.ts +0 -7
  534. package/dist/transform/Flash.js +0 -18
  535. package/dist/transform/Spin.d.ts +0 -14
  536. package/dist/transform/Spin.js +0 -25
  537. package/dist/utils/linaria.d.ts +0 -1
  538. package/dist/utils/linaria.js +0 -8
@@ -1,28 +1,80 @@
1
+ import { DURATION } from "../theme/tokens/scales.js";
2
+ import { usePrefersReducedMotion } from "../hooks/usePrefersReducedMotion.js";
3
+ /* empty css */
4
+ import { forwardRef } from "react";
1
5
  import { jsx } from "react/jsx-runtime";
2
- import { motion } from "framer-motion";
6
+ import { cx } from "@linaria/core";
7
+ import { AnimatePresence, motion } from "framer-motion";
3
8
  //#region src/transform/Fade.tsx
4
9
  /**
5
- * Fades children in on mount and out on unmount, over 200ms.
10
+ * The opacity enter/exit for content that appears and disappears. Given `isOpen`, it fades its
11
+ * content in, or fades it out and then removes it from the DOM, the tab order and the
12
+ * accessibility tree. Presentational only: no trigger, no state, no surface, no role. The host
13
+ * (an overlay backdrop, an in-place status message, content replacing a placeholder) owns those.
6
14
  *
7
- * The exit half only runs inside a framer-motion `AnimatePresence`. Fills its
8
- * parent (100% × 100%).
15
+ * Animated with `framer-motion` (Constitution II.7) over `duration.base`, `easeInOut`; instant
16
+ * under reduced motion. Never animates on the first render unless `shouldAnimateOnMount` is set.
17
+ * Fade does not move focus: a host that closes while focus is inside restores it itself.
9
18
  */
10
- var Fade = ({ children, delay = 0 }) => {
11
- return /* @__PURE__ */ jsx(motion.div, {
12
- initial: { opacity: 0 },
13
- animate: { opacity: 1 },
14
- exit: { opacity: 0 },
15
- transition: {
16
- duration: .2,
17
- ease: "easeInOut",
18
- delay
19
- },
20
- style: {
21
- width: "100%",
22
- height: "100%"
23
- },
19
+ /** The 1.x curve over `duration.base`. */
20
+ var FADE_TRANSITION = {
21
+ duration: Number.parseFloat(DURATION.base) / 1e3,
22
+ ease: "easeInOut"
23
+ };
24
+ /** Under reduced motion the state snaps; the `transitionEnd` values still apply. */
25
+ var FADE_REDUCED_TRANSITION = { duration: 0 };
26
+ /** Where an enter starts: transparent. */
27
+ var FADE_START = { opacity: 0 };
28
+ /** Open: opaque, visible from the first frame, takes pointer input. */
29
+ var FADE_OPEN = {
30
+ opacity: 1,
31
+ visibility: "visible",
32
+ pointerEvents: "auto"
33
+ };
34
+ /**
35
+ * Closed: transparent, no pointer input from the first frame, hidden (kept-mounted) at the end.
36
+ * `visibility: "visible"` is listed so framer owns the key during the close; with it only in
37
+ * `transitionEnd`, framer sets the value but never renders it at rest.
38
+ */
39
+ var FADE_CLOSED = {
40
+ opacity: 0,
41
+ visibility: "visible",
42
+ pointerEvents: "none",
43
+ transitionEnd: { visibility: "hidden" }
44
+ };
45
+ /** Lets a Fade that is a flex or grid child shrink with its content. */
46
+ var Root = "gx-Fade-rzn1s0s";
47
+ /** Fades its content in and out; unmounts it when closed by default. */
48
+ var Fade = forwardRef(function Fade({ children, isOpen = false, shouldKeepMounted = false, shouldAnimateOnMount = false, id, className, style, ...rest }, ref) {
49
+ const transition = usePrefersReducedMotion() ? FADE_REDUCED_TRANSITION : FADE_TRANSITION;
50
+ const styleProps = style === void 0 ? {} : { style };
51
+ if (shouldKeepMounted) return /* @__PURE__ */ jsx(motion.div, {
52
+ ...rest,
53
+ ref,
54
+ id,
55
+ initial: shouldAnimateOnMount ? FADE_START : false,
56
+ animate: isOpen ? FADE_OPEN : FADE_CLOSED,
57
+ transition,
58
+ className: cx(Root, className),
59
+ ...styleProps,
24
60
  children
25
61
  });
26
- };
62
+ return /* @__PURE__ */ jsx(AnimatePresence, {
63
+ initial: shouldAnimateOnMount,
64
+ children: isOpen && /* @__PURE__ */ jsx(motion.div, {
65
+ ...rest,
66
+ ref,
67
+ id,
68
+ initial: FADE_START,
69
+ animate: FADE_OPEN,
70
+ exit: FADE_CLOSED,
71
+ transition,
72
+ className: cx(Root, className),
73
+ ...styleProps,
74
+ children
75
+ }, "fade")
76
+ });
77
+ });
78
+ Fade.displayName = "Fade";
27
79
  //#endregion
28
80
  export { Fade as default };
@@ -0,0 +1,25 @@
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ export interface FlasherProps extends AriaAttributes {
3
+ /**
4
+ * The content to pulse: text, an `Icon`, an inline value. Phrasing content only (it renders
5
+ * inside a `<span>`); for a block, put Flasher inside it, around its text.
6
+ */
7
+ children?: ReactNode;
8
+ /**
9
+ * Pulses the content while `true` to mark it as in progress; at rest it is at full opacity.
10
+ * Static under reduced motion, so always pair it with a completion state.
11
+ * @default false
12
+ */
13
+ isFlashing?: boolean;
14
+ /** DOM id on the root `<span>`. */
15
+ id?: string;
16
+ /** Any `data-*` attribute, forwarded to the root `<span>`. */
17
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
18
+ /** Extra class on the root `<span>`. Must not set `animation` or `opacity`. */
19
+ className?: string;
20
+ /** Inline style on the root `<span>`; only for setting CSS custom properties. */
21
+ style?: CSSProperties;
22
+ }
23
+ /** Pulses its content while `isFlashing`; the wrapper is always rendered. */
24
+ declare const Flasher: import("react").ForwardRefExoticComponent<FlasherProps & import("react").RefAttributes<HTMLSpanElement>>;
25
+ export default Flasher;
@@ -0,0 +1,39 @@
1
+ /* empty css */
2
+ import { styled } from "@linaria/react";
3
+ import { forwardRef } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { cx } from "@linaria/core";
6
+ //#region src/transform/Flasher.tsx
7
+ /**
8
+ * Pulses its content between full and 40% opacity while `isFlashing`, to say "this is in
9
+ * progress": a "Syncing sources" label, a value that is recalculating. It wraps real content
10
+ * that is already there; a placeholder for content that has not arrived is `Skeleton`, and a live
11
+ * dot is `Beacon isPulse`. A loop (CSS keyframes over `7 × duration.base`), not an enter/exit.
12
+ *
13
+ * An inline `<span>` that is always rendered, so turning it off leaves content and layout as
14
+ * they are. Decorative: the words must say the progress, and a host `role="status"` region
15
+ * announces completion. Stops under reduced motion, so always pair it with a completion state.
16
+ * Replaces 1.x `Flash` (renamed; `isFlashing` is new).
17
+ */
18
+ /** Stays inline, so a Flasher can wrap a phrase inside a sentence. */
19
+ var Root = /*#__PURE__*/ styled("span")({
20
+ name: "Root",
21
+ class: "gx-Flasher-r11jlx92",
22
+ propsAsIs: false
23
+ });
24
+ /** Flashing: the 1.x pulse (1 → 0.4 → 1, ease-in-out) over `7 × duration.base` (1.05s). */
25
+ var FLASHING_CSS = "gx-Flasher-FLASHING_CSS-fo5zqvg";
26
+ /** Pulses its content while `isFlashing`; the wrapper is always rendered. */
27
+ var Flasher = forwardRef(function Flasher({ children, isFlashing = false, id, className, style, ...rest }, ref) {
28
+ return /* @__PURE__ */ jsx(Root, {
29
+ ...rest,
30
+ ref,
31
+ id,
32
+ className: cx(isFlashing && FLASHING_CSS, className),
33
+ style,
34
+ children
35
+ });
36
+ });
37
+ Flasher.displayName = "Flasher";
38
+ //#endregion
39
+ export { Flasher as default };
@@ -1,15 +1,27 @@
1
- import type { PropsWithChildren } from "react";
2
- export interface RotateProps {
3
- /** Rotated to `deg` when true, back to 0 when false. */
4
- isRotated: boolean;
5
- /** Angle in degrees at the rotated end. @default 180 */
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ export interface RotateProps extends AriaAttributes {
3
+ /** The glyph to turn, usually an `Icon`. Phrasing content only (it renders inside a `<span>`). */
4
+ children?: ReactNode;
5
+ /**
6
+ * Turned to `deg` when `true`, back to 0° when `false`. Changing it animates the turn.
7
+ * @default false
8
+ */
9
+ isRotated?: boolean;
10
+ /**
11
+ * The angle at the rotated end, in degrees. Negative turns counter-clockwise. Use `90` for a
12
+ * right-pointing disclosure caret and `180` for a down-pointing select caret.
13
+ * @default 180
14
+ */
6
15
  deg?: number;
7
- /** Transition duration in seconds. @default 0.075 */
8
- speed?: number;
16
+ /** DOM id on the root `<span>`. */
17
+ id?: string;
18
+ /** Any `data-*` attribute, forwarded to the root `<span>`. */
19
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
20
+ /** Extra class on the root `<span>`. Must not set `transform` or `transition`. */
21
+ className?: string;
22
+ /** Inline style on the root `<span>`; only for setting CSS custom properties. */
23
+ style?: CSSProperties;
9
24
  }
10
- /**
11
- * Tweens children between 0° and `deg` as `isRotated` flips. State-driven, not
12
- * looping — the usual case is a chevron on an expand/collapse toggle.
13
- */
14
- declare const Rotate: ({ children, isRotated, deg, speed }: PropsWithChildren<RotateProps>) => import("react").JSX.Element;
25
+ /** Turns its content to `deg` while `isRotated`; back to 0° otherwise. */
26
+ declare const Rotate: import("react").ForwardRefExoticComponent<RotateProps & import("react").RefAttributes<HTMLSpanElement>>;
15
27
  export default Rotate;
@@ -1,32 +1,46 @@
1
1
  /* empty css */
2
2
  import { styled } from "@linaria/react";
3
+ import { forwardRef } from "react";
3
4
  import { jsx } from "react/jsx-runtime";
5
+ import { cx } from "@linaria/core";
4
6
  //#region src/transform/Rotate.tsx
5
- var _exp = () => ({ $speed }) => $speed ?? .075;
6
- var _exp2 = () => ({ $isRotated, $deg }) => {
7
- if ($isRotated) return `${$deg}deg`;
8
- return "0deg";
9
- };
10
- var RotateWrapper = /*#__PURE__*/ styled("div")({
11
- name: "RotateWrapper",
12
- class: "r530s5l",
13
- propsAsIs: false,
14
- vars: {
15
- "r530s5l-0": [_exp(), "s"],
16
- "r530s5l-1": [_exp2()]
17
- }
18
- });
19
7
  /**
20
- * Tweens children between 0° and `deg` as `isRotated` flips. State-driven, not
21
- * looping — the usual case is a chevron on an expand/collapse toggle.
8
+ * Turns its content between 0° and `deg` when `isRotated` flips: the state caret on a disclosure,
9
+ * a select or dropdown trigger, a sort arrow. A state transition (a CSS transition over
10
+ * `duration.base`), not a loop (`Spinner` with children) and not an enter/exit (`Fade`, `ScaleFade`).
11
+ *
12
+ * An inline `<span>`, so it sits inside a `<button>`. Decorative: the host owns the state, the
13
+ * trigger and the semantics (`aria-expanded`, `aria-sort`). Snaps under reduced motion.
14
+ */
15
+ /** The custom property carrying the rotated angle (a continuous value). */
16
+ var ROTATE_DEG_VARIABLE = "--gx-rotate-deg";
17
+ /**
18
+ * Inline, centered, never squeezed. The explicit `rotate(0deg)` gives the transition a matching
19
+ * transform function, so the angle interpolates numerically (360 is a full turn, negative turns
20
+ * counter-clockwise).
22
21
  */
23
- var Rotate = ({ children, isRotated, deg = 180, speed }) => {
24
- return /* @__PURE__ */ jsx(RotateWrapper, {
25
- $isRotated: isRotated,
26
- $deg: deg,
27
- $speed: speed,
22
+ var Root = /*#__PURE__*/ styled("span")({
23
+ name: "Root",
24
+ class: "gx-Rotate-r530s5l",
25
+ propsAsIs: false
26
+ });
27
+ /** Rotated: turn to the angle in `--gx-rotate-deg`. */
28
+ var ROTATED_CSS = "gx-Rotate-ROTATED_CSS-r1qjv1rt";
29
+ /** Turns its content to `deg` while `isRotated`; back to 0° otherwise. */
30
+ var Rotate = forwardRef(function Rotate({ children, isRotated = false, deg = 180, id, className, style, ...rest }, ref) {
31
+ const variables = { [ROTATE_DEG_VARIABLE]: `${deg}deg` };
32
+ return /* @__PURE__ */ jsx(Root, {
33
+ ...rest,
34
+ ref,
35
+ id,
36
+ className: cx(isRotated && ROTATED_CSS, className),
37
+ style: {
38
+ ...variables,
39
+ ...style
40
+ },
28
41
  children
29
42
  });
30
- };
43
+ });
44
+ Rotate.displayName = "Rotate";
31
45
  //#endregion
32
46
  export { Rotate as default };
@@ -1,13 +1,38 @@
1
- import type { PropsWithChildren } from "react";
2
- export interface ScaleFadeProps {
3
- /** Seconds to wait before starting. @default 0 */
4
- delay?: number;
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ export interface ScaleFadeProps extends AriaAttributes {
3
+ /** The surface to pop in and out. */
4
+ children?: ReactNode;
5
+ /**
6
+ * Whether the content is shown. Changing it scales and fades the content in or out. Controlled only; the
7
+ * host owns the state.
8
+ * @default false
9
+ */
10
+ isOpen?: boolean;
11
+ /**
12
+ * Keep the content mounted while closed (transparent, scaled down, `visibility: hidden`) so its
13
+ * state survives. By default it unmounts after the exit.
14
+ * @default false
15
+ */
16
+ shouldKeepMounted?: boolean;
17
+ /**
18
+ * Pop in when the component mounts already open (a toast pushed onto a stack). By default a
19
+ * ScaleFade that mounts open renders at rest. The server renders it transparent, so don't use it
20
+ * for server-rendered content that must be readable before JavaScript runs.
21
+ * @default false
22
+ */
23
+ shouldAnimateOnMount?: boolean;
24
+ /** DOM id on the root `<div>`. */
25
+ id?: string;
26
+ /** Any `data-*` attribute, forwarded to the root `<div>`. */
27
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
28
+ /**
29
+ * Extra class on the root `<div>`. May set `transform-origin` (the anchor point); must not set
30
+ * `opacity`, `transform` or `visibility`, which the animation owns.
31
+ */
32
+ className?: string;
33
+ /** Inline style on the root `<div>`; only for setting CSS custom properties. */
34
+ style?: CSSProperties;
5
35
  }
6
- /**
7
- * Fades children in while scaling from 95% to 100%, over 200ms. The entrance for
8
- * things that pop: menus, popovers, toasts.
9
- *
10
- * The exit half only runs inside a framer-motion `AnimatePresence`.
11
- */
12
- declare const ScaleFade: ({ children, delay }: PropsWithChildren<ScaleFadeProps>) => import("react").JSX.Element;
36
+ /** Pops its content in and out (opacity + 95% scale); unmounts it when closed by default. */
37
+ declare const ScaleFade: import("react").ForwardRefExoticComponent<ScaleFadeProps & import("react").RefAttributes<HTMLDivElement>>;
13
38
  export default ScaleFade;
@@ -1,37 +1,95 @@
1
+ import { DURATION } from "../theme/tokens/scales.js";
2
+ import { usePrefersReducedMotion } from "../hooks/usePrefersReducedMotion.js";
3
+ /* empty css */
4
+ import { forwardRef } from "react";
1
5
  import { jsx } from "react/jsx-runtime";
2
- import { motion } from "framer-motion";
6
+ import { cx } from "@linaria/core";
7
+ import { AnimatePresence, motion } from "framer-motion";
3
8
  //#region src/transform/ScaleFade.tsx
4
9
  /**
5
- * Fades children in while scaling from 95% to 100%, over 200ms. The entrance for
6
- * things that pop: menus, popovers, toasts.
10
+ * The enter/exit for surfaces that pop: popovers, menus, dialogs and toasts. Given `isOpen`, it
11
+ * fades its content in while scaling it from 95% to 100%, or fades and shrinks it back and then
12
+ * removes it from the DOM, the tab order and the accessibility tree. Fade's API and contract;
13
+ * only the motion differs. Scales from the center; an anchored host sets `transform-origin`
14
+ * through `className` so the surface grows out of its trigger.
7
15
  *
8
- * The exit half only runs inside a framer-motion `AnimatePresence`.
16
+ * Animated with `framer-motion` (Constitution II.7) over `duration.base`, `easeOut` (the 1.x
17
+ * curve); instant under reduced motion. Never animates on the first render unless
18
+ * `shouldAnimateOnMount` is set. ScaleFade does not move focus: overlays trap and restore it
19
+ * through `FocusScope`, which in the default mode restores at the end of the exit.
9
20
  */
10
- var ScaleFade = ({ children, delay = 0 }) => {
11
- return /* @__PURE__ */ jsx(motion.div, {
12
- initial: {
13
- opacity: 0,
14
- scale: .95
15
- },
16
- animate: {
17
- opacity: 1,
18
- scale: 1
19
- },
20
- exit: {
21
- opacity: 0,
22
- scale: .95
23
- },
24
- transition: {
25
- duration: .2,
26
- ease: "easeOut",
27
- delay
28
- },
29
- style: {
30
- width: "100%",
31
- height: "100%"
32
- },
21
+ /** The 1.x curve over `duration.base`. */
22
+ var SCALE_FADE_TRANSITION = {
23
+ duration: Number.parseFloat(DURATION.base) / 1e3,
24
+ ease: "easeOut"
25
+ };
26
+ /** The closed scale (the 1.x value). */
27
+ var SCALE_FADE_SCALE = .95;
28
+ /** Under reduced motion the state snaps; the `transitionEnd` values still apply. */
29
+ var SCALE_FADE_REDUCED_TRANSITION = { duration: 0 };
30
+ /** Where an enter starts: transparent, scaled down. */
31
+ var SCALE_FADE_START = {
32
+ opacity: 0,
33
+ scale: SCALE_FADE_SCALE
34
+ };
35
+ /**
36
+ * Open: opaque at full size (framer writes `transform: none` at scale 1), visible from the first
37
+ * frame, takes pointer input.
38
+ */
39
+ var SCALE_FADE_OPEN = {
40
+ opacity: 1,
41
+ scale: 1,
42
+ visibility: "visible",
43
+ pointerEvents: "auto"
44
+ };
45
+ /**
46
+ * Closed: transparent and scaled down, no pointer input from the first frame, hidden
47
+ * (kept-mounted) at the end. `visibility: "visible"` is listed so framer owns the key during the
48
+ * close; with it only in `transitionEnd`, framer sets the value but never renders it at rest.
49
+ */
50
+ var SCALE_FADE_CLOSED = {
51
+ opacity: 0,
52
+ scale: SCALE_FADE_SCALE,
53
+ visibility: "visible",
54
+ pointerEvents: "none",
55
+ transitionEnd: { visibility: "hidden" }
56
+ };
57
+ /**
58
+ * Lets a ScaleFade that is a flex or grid child shrink with its content. `transform-origin` stays
59
+ * at the CSS default (center) so a host class overrides it without a specificity contest.
60
+ */
61
+ var Root = "gx-ScaleFade-r1iy8djq";
62
+ /** Pops its content in and out (opacity + 95% scale); unmounts it when closed by default. */
63
+ var ScaleFade = forwardRef(function ScaleFade({ children, isOpen = false, shouldKeepMounted = false, shouldAnimateOnMount = false, id, className, style, ...rest }, ref) {
64
+ const transition = usePrefersReducedMotion() ? SCALE_FADE_REDUCED_TRANSITION : SCALE_FADE_TRANSITION;
65
+ const styleProps = style === void 0 ? {} : { style };
66
+ if (shouldKeepMounted) return /* @__PURE__ */ jsx(motion.div, {
67
+ ...rest,
68
+ ref,
69
+ id,
70
+ initial: shouldAnimateOnMount ? SCALE_FADE_START : false,
71
+ animate: isOpen ? SCALE_FADE_OPEN : SCALE_FADE_CLOSED,
72
+ transition,
73
+ className: cx(Root, className),
74
+ ...styleProps,
33
75
  children
34
76
  });
35
- };
77
+ return /* @__PURE__ */ jsx(AnimatePresence, {
78
+ initial: shouldAnimateOnMount,
79
+ children: isOpen && /* @__PURE__ */ jsx(motion.div, {
80
+ ...rest,
81
+ ref,
82
+ id,
83
+ initial: SCALE_FADE_START,
84
+ animate: SCALE_FADE_OPEN,
85
+ exit: SCALE_FADE_CLOSED,
86
+ transition,
87
+ className: cx(Root, className),
88
+ ...styleProps,
89
+ children
90
+ }, "scale-fade")
91
+ });
92
+ });
93
+ ScaleFade.displayName = "ScaleFade";
36
94
  //#endregion
37
95
  export { ScaleFade as default };
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ /** @internal Props of `CollapseMotion`. */
3
+ export interface CollapseMotionProps {
4
+ /** The content to show and hide. */
5
+ children?: ReactNode;
6
+ /** Whether the content is shown. Changing it animates the height. */
7
+ isOpen: boolean;
8
+ }
9
+ /** @internal Animates its content's height open and closed; unmounts it when closed. */
10
+ export default function CollapseMotion({ children, isOpen }: CollapseMotionProps): import("react").JSX.Element;
@@ -0,0 +1,65 @@
1
+ import { DURATION } from "../../theme/tokens/scales.js";
2
+ import { usePrefersReducedMotion } from "../../hooks/usePrefersReducedMotion.js";
3
+ /* empty css */
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { AnimatePresence, motion } from "framer-motion";
6
+ //#region src/transform/internal/CollapseMotion.tsx
7
+ /**
8
+ * @internal The animated show/hide of a disclosure body, private to the DLS (an `internal/`
9
+ * module: built, never a package export). The collapsible Widget, Tree, SidebarNav groups and
10
+ * JsonViewer open and close through it; apps use `Widget isCollapsible`, or their own animation.
11
+ *
12
+ * Given `isOpen`, it grows its content from zero height to its natural height, or shrinks it back,
13
+ * then unmounts it, so closed content is out of the layout, the tab order and the accessibility
14
+ * tree. Presentational only: the host owns the trigger, the state and the semantic element it puts
15
+ * inside (`role="region"`, `ul role="group"`); padding, borders and semantics go on that child,
16
+ * never on this wrapper (padding on the animated element leaves a strip when closed).
17
+ *
18
+ * Animated with `framer-motion` over `duration.base`, `easeInOut` (the 1.x Accordion curve);
19
+ * instant under reduced motion. Never animates on the first render.
20
+ */
21
+ /** The 1.x Accordion timing: `duration.base`, ease-in-out. */
22
+ var COLLAPSE_TRANSITION = {
23
+ duration: Number.parseFloat(DURATION.base) / 1e3,
24
+ ease: "easeInOut"
25
+ };
26
+ /** Under reduced motion the state snaps. */
27
+ var COLLAPSE_REDUCED_TRANSITION = { duration: 0 };
28
+ /** Where an opening starts: zero height, clipped. */
29
+ var COLLAPSE_START = {
30
+ height: 0,
31
+ overflow: "hidden"
32
+ };
33
+ /**
34
+ * Open: grow to the content's height, clipped while moving; unclipped at rest so focus rings and
35
+ * overhangs show in full.
36
+ */
37
+ var COLLAPSE_OPEN = {
38
+ height: "auto",
39
+ overflow: "hidden",
40
+ transitionEnd: { overflow: "visible" }
41
+ };
42
+ /** Closed: shrink to zero, clipped from the first frame, then unmounted. */
43
+ var COLLAPSE_CLOSED = {
44
+ height: 0,
45
+ overflow: "hidden"
46
+ };
47
+ /** Lets the wrapper shrink with its content when it is a flex or grid child. */
48
+ var Root = "gx-CollapseMotion-r1q43jfl";
49
+ /** @internal Animates its content's height open and closed; unmounts it when closed. */
50
+ function CollapseMotion({ children, isOpen }) {
51
+ const prefersReducedMotion = usePrefersReducedMotion();
52
+ return /* @__PURE__ */ jsx(AnimatePresence, {
53
+ initial: false,
54
+ children: isOpen && /* @__PURE__ */ jsx(motion.div, {
55
+ initial: COLLAPSE_START,
56
+ animate: COLLAPSE_OPEN,
57
+ exit: COLLAPSE_CLOSED,
58
+ transition: prefersReducedMotion ? COLLAPSE_REDUCED_TRANSITION : COLLAPSE_TRANSITION,
59
+ className: Root,
60
+ children
61
+ }, "collapse")
62
+ });
63
+ }
64
+ //#endregion
65
+ export { CollapseMotion as default };
@@ -0,0 +1,85 @@
1
+ import { type Icon as PhosphorIcon } from "@phosphor-icons/react";
2
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
3
+ /** Row rung. Tree rows are dense: 24 and 28px, the same geometry as `JsonViewerSize`. */
4
+ export declare enum TreeSize {
5
+ /** 24px rows, `body_sm` labels, 12px icons, 10px carets, 14px indent per level. */
6
+ SMALL = "SMALL",
7
+ /** 28px rows, `body_md` labels, 14px icons, 12px carets, 16px indent per level. The default. */
8
+ MEDIUM = "MEDIUM"
9
+ }
10
+ /** One row of the tree, and its children. */
11
+ export interface TreeItem {
12
+ /** Unique across the whole tree; the value of `value`, `onChange` and `expandedIds`. */
13
+ id: string;
14
+ /** Row text. Also the type-ahead key. Plain text: one line, truncated with a tooltip on overflow. */
15
+ label: string;
16
+ /** Leading icon, rendered through `Icon` at the rung's icon size. */
17
+ icon?: PhosphorIcon;
18
+ /** Non-interactive mark after the label, right-aligned (a count `Chip`, a labeled `Beacon`, a `Kbd`). Never a button or link. */
19
+ trailing?: ReactNode;
20
+ /** Child rows. `undefined` on a parent with `hasChildren` means "not loaded yet". */
21
+ children?: TreeItem[];
22
+ /**
23
+ * Marks a parent whose children are not loaded yet (lazy).
24
+ * @default children !== undefined && children.length > 0
25
+ */
26
+ hasChildren?: boolean;
27
+ /**
28
+ * Not selectable; shown in the disabled color. It can still be focused and expanded.
29
+ * @default false
30
+ */
31
+ isDisabled?: boolean;
32
+ }
33
+ /** Every Tree prop except the accessible-name pair (`ariaLabel` / `aria-labelledby`). */
34
+ interface TreeBaseProps extends AriaAttributes {
35
+ /** The top-level rows. Each item may hold `children`; `id`s must be unique across the whole tree. */
36
+ items: TreeItem[];
37
+ /** Controlled selected item `id`. `null` means nothing is selected. */
38
+ value?: string | null;
39
+ /**
40
+ * Selected item `id` while uncontrolled.
41
+ * @default null
42
+ */
43
+ defaultValue?: string | null;
44
+ /** Called with the item `id` when the user selects a row (click, Enter or Space). Not called for disabled items. */
45
+ onChange?: (value: string) => void;
46
+ /** Controlled list of expanded parent `id`s. */
47
+ expandedIds?: string[];
48
+ /**
49
+ * Expanded parent `id`s while uncontrolled.
50
+ * @default []
51
+ */
52
+ defaultExpandedIds?: string[];
53
+ /** Called with the full new list whenever a row expands or collapses. Use it to fetch lazy children. */
54
+ onExpandedIdsChange?: (expandedIds: string[]) => void;
55
+ /**
56
+ * Row rung: 24 / 28px tall, with the rung's text, icon, caret and indent (14 / 16px per level).
57
+ * @default TreeSize.MEDIUM
58
+ */
59
+ size?: TreeSize;
60
+ /** DOM id on the root `role="tree"` element. */
61
+ id?: string;
62
+ /** Any `data-*` attribute, forwarded to the root `role="tree"` element. */
63
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
64
+ /** Extra class on the root. */
65
+ className?: string;
66
+ /** Inline style on the root; only for setting CSS custom properties. */
67
+ style?: CSSProperties;
68
+ }
69
+ /** Named by `ariaLabel`. */
70
+ interface TreeNamedProps {
71
+ /** Accessible name of the tree. Required unless `aria-labelledby` names it. */
72
+ ariaLabel: string;
73
+ }
74
+ /** Named by a visible heading through `aria-labelledby`. */
75
+ interface TreeLabelledByProps {
76
+ /** Accessible name of the tree. Required unless `aria-labelledby` names it. */
77
+ ariaLabel?: undefined;
78
+ /** Id of the element that names the tree (a visible heading). */
79
+ "aria-labelledby": string;
80
+ }
81
+ /** Tree props. The tree needs a name: `ariaLabel`, or `aria-labelledby` pointing at a heading. */
82
+ export type TreeProps = TreeBaseProps & (TreeNamedProps | TreeLabelledByProps);
83
+ /** Hierarchical rows with expand / collapse, single selection, lazy children and tree keyboard. */
84
+ declare const Tree: import("react").ForwardRefExoticComponent<TreeProps & import("react").RefAttributes<HTMLDivElement>>;
85
+ export default Tree;