@galaxy-io/dls 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/README.md +47 -50
  2. package/biome/index.json +74 -0
  3. package/biome/plugins/no-hex-literal.grit +20 -0
  4. package/biome/plugins/no-inline-style.grit +13 -0
  5. package/biome/plugins/no-margin.grit +9 -0
  6. package/biome/plugins/warn/no-hex-literal.grit +23 -0
  7. package/biome/plugins/warn/no-inline-style.grit +13 -0
  8. package/biome/plugins/warn/no-margin.grit +9 -0
  9. package/dist/a11y/FocusScope.d.ts +44 -0
  10. package/dist/a11y/FocusScope.js +229 -0
  11. package/dist/a11y/VisuallyHidden.d.ts +21 -0
  12. package/dist/a11y/VisuallyHidden.js +30 -0
  13. package/dist/avatar/Avatar.d.ts +56 -14
  14. package/dist/avatar/Avatar.js +250 -96
  15. package/dist/avatar/AvatarGroup.d.ts +43 -0
  16. package/dist/avatar/AvatarGroup.js +153 -0
  17. package/dist/backgrounds/GridBackground.d.ts +48 -0
  18. package/dist/backgrounds/GridBackground.js +146 -0
  19. package/dist/beacons/Beacon.d.ts +86 -22
  20. package/dist/beacons/Beacon.js +170 -47
  21. package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
  22. package/dist/brand/GalaxyFilamentWordmark.js +39 -0
  23. package/dist/brand/GalaxyLogomark.d.ts +26 -0
  24. package/dist/brand/GalaxyLogomark.js +41 -0
  25. package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
  26. package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
  27. package/dist/brand/GalaxyWordmark.d.ts +30 -0
  28. package/dist/brand/GalaxyWordmark.js +63 -0
  29. package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
  30. package/dist/brand/brandMark.d.ts +26 -0
  31. package/dist/brand/brandMark.js +35 -0
  32. package/dist/buttons/Button.d.ts +148 -59
  33. package/dist/buttons/Button.js +437 -227
  34. package/dist/buttons/ButtonGroup.d.ts +38 -0
  35. package/dist/buttons/ButtonGroup.js +68 -0
  36. package/dist/buttons/CopyButton.d.ts +77 -0
  37. package/dist/buttons/CopyButton.js +65 -0
  38. package/dist/charts/AreaChart.d.ts +49 -0
  39. package/dist/charts/AreaChart.js +31 -0
  40. package/dist/charts/BarChart.d.ts +54 -67
  41. package/dist/charts/BarChart.js +136 -116
  42. package/dist/charts/ChartAxis.d.ts +35 -40
  43. package/dist/charts/ChartAxis.js +114 -90
  44. package/dist/charts/ChartCategoryTargets.d.ts +12 -26
  45. package/dist/charts/ChartCategoryTargets.js +32 -20
  46. package/dist/charts/ChartFrame.d.ts +69 -116
  47. package/dist/charts/ChartFrame.js +253 -119
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +27 -48
  51. package/dist/charts/ChartLegend.js +206 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +33 -20
  54. package/dist/charts/ChartPrimitives.d.ts +50 -305
  55. package/dist/charts/ChartPrimitives.js +65 -413
  56. package/dist/charts/ChartTooltip.d.ts +20 -26
  57. package/dist/charts/ChartTooltip.js +77 -40
  58. package/dist/charts/Heatmap.d.ts +35 -0
  59. package/dist/charts/Heatmap.js +295 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +159 -117
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +149 -135
  64. package/dist/charts/Sparkline.d.ts +107 -0
  65. package/dist/charts/Sparkline.js +244 -0
  66. package/dist/charts/StatChart.d.ts +37 -13
  67. package/dist/charts/StatChart.js +82 -35
  68. package/dist/charts/barChartGeometry.d.ts +138 -86
  69. package/dist/charts/barChartGeometry.js +122 -101
  70. package/dist/charts/barChartLegend.d.ts +14 -18
  71. package/dist/charts/barChartLegend.js +18 -13
  72. package/dist/charts/chartFormat.d.ts +12 -18
  73. package/dist/charts/chartFormat.js +20 -52
  74. package/dist/charts/chartPalette.d.ts +33 -0
  75. package/dist/charts/chartPalette.js +68 -0
  76. package/dist/charts/chartScales.d.ts +41 -108
  77. package/dist/charts/chartScales.js +62 -128
  78. package/dist/charts/constants.d.ts +96 -256
  79. package/dist/charts/constants.js +105 -275
  80. package/dist/charts/heatmapGeometry.d.ts +95 -0
  81. package/dist/charts/heatmapGeometry.js +155 -0
  82. package/dist/charts/lineChartGeometry.d.ts +108 -58
  83. package/dist/charts/lineChartGeometry.js +120 -78
  84. package/dist/charts/pieChartGeometry.d.ts +66 -40
  85. package/dist/charts/pieChartGeometry.js +68 -38
  86. package/dist/charts/types.d.ts +197 -466
  87. package/dist/charts/types.js +55 -144
  88. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  89. package/dist/charts/useCartesianChartLayout.js +47 -32
  90. package/dist/charts/useChartDimensions.d.ts +19 -40
  91. package/dist/charts/useChartDimensions.js +40 -56
  92. package/dist/charts/useChartFormatters.d.ts +6 -15
  93. package/dist/charts/useChartFormatters.js +4 -9
  94. package/dist/charts/useChartInteraction.d.ts +47 -116
  95. package/dist/charts/useChartInteraction.js +95 -71
  96. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  97. package/dist/charts/useChartTooltipPosition.js +14 -5
  98. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  99. package/dist/charts/useSeriesColorResolver.js +19 -12
  100. package/dist/chips/Chip.d.ts +155 -44
  101. package/dist/chips/Chip.js +329 -155
  102. package/dist/chips/ChipGroup.d.ts +53 -0
  103. package/dist/chips/ChipGroup.js +98 -0
  104. package/dist/drawer/Drawer.d.ts +81 -17
  105. package/dist/drawer/Drawer.js +370 -65
  106. package/dist/dropdown/Dropdown.d.ts +80 -63
  107. package/dist/dropdown/Dropdown.js +127 -129
  108. package/dist/editor/CodeEditor.d.ts +119 -40
  109. package/dist/editor/CodeEditor.js +490 -400
  110. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  111. package/dist/editor/CodeEditorReactWidget.js +28 -21
  112. package/dist/feedback/Alert.d.ts +49 -0
  113. package/dist/feedback/Alert.js +172 -0
  114. package/dist/feedback/EmptyState.d.ts +39 -0
  115. package/dist/feedback/EmptyState.js +109 -0
  116. package/dist/feedback/ProgressBar.d.ts +125 -0
  117. package/dist/feedback/ProgressBar.js +183 -0
  118. package/dist/feedback/ProgressCircle.d.ts +99 -0
  119. package/dist/feedback/ProgressCircle.js +187 -0
  120. package/dist/feedback/Skeleton.d.ts +69 -0
  121. package/dist/feedback/Skeleton.js +130 -0
  122. package/dist/feedback/Spinner.d.ts +63 -0
  123. package/dist/feedback/Spinner.js +141 -0
  124. package/dist/fonts.css +70 -0
  125. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  126. package/dist/hooks/internal/useIsClient.js +14 -0
  127. package/dist/hooks/useClipboard.d.ts +19 -0
  128. package/dist/hooks/useClipboard.js +45 -0
  129. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  130. package/dist/hooks/useControlledOpenState.js +19 -0
  131. package/dist/hooks/useControlledState.d.ts +19 -0
  132. package/dist/hooks/useControlledState.js +22 -0
  133. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  134. package/dist/hooks/useDebouncedValue.js +33 -0
  135. package/dist/hooks/useDisclosure.d.ts +26 -0
  136. package/dist/hooks/useDisclosure.js +36 -0
  137. package/dist/hooks/useDismiss.d.ts +23 -27
  138. package/dist/hooks/useDismiss.js +39 -27
  139. package/dist/hooks/useElementClientSize.d.ts +10 -10
  140. package/dist/hooks/useElementClientSize.js +8 -11
  141. package/dist/hooks/useElementWidth.d.ts +6 -13
  142. package/dist/hooks/useElementWidth.js +6 -14
  143. package/dist/hooks/useField.d.ts +47 -0
  144. package/dist/hooks/useField.js +40 -0
  145. package/dist/hooks/useHotkey.d.ts +77 -0
  146. package/dist/hooks/useHotkey.js +246 -0
  147. package/dist/hooks/useIsMac.d.ts +12 -0
  148. package/dist/hooks/useIsMac.js +27 -0
  149. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  150. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  151. package/dist/hooks/useLocalStorage.d.ts +28 -0
  152. package/dist/hooks/useLocalStorage.js +145 -0
  153. package/dist/hooks/useMediaQuery.d.ts +11 -0
  154. package/dist/hooks/useMediaQuery.js +23 -0
  155. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  156. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  157. package/dist/hooks/useResize.d.ts +42 -62
  158. package/dist/hooks/useResize.js +43 -31
  159. package/dist/icons/Icon.d.ts +64 -37
  160. package/dist/icons/Icon.js +96 -37
  161. package/dist/icons/internal/IconSlot.d.ts +10 -0
  162. package/dist/icons/internal/IconSlot.js +32 -0
  163. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  164. package/dist/inputs/CheckboxGroup.js +183 -0
  165. package/dist/inputs/CheckboxInput.d.ts +98 -28
  166. package/dist/inputs/CheckboxInput.js +218 -88
  167. package/dist/inputs/ColorInput.d.ts +115 -29
  168. package/dist/inputs/ColorInput.js +748 -326
  169. package/dist/inputs/CopyInput.d.ts +49 -20
  170. package/dist/inputs/CopyInput.js +57 -49
  171. package/dist/inputs/CronInput.d.ts +94 -0
  172. package/dist/inputs/CronInput.js +618 -0
  173. package/dist/inputs/DateInput.d.ts +175 -28
  174. package/dist/inputs/DateInput.js +1109 -451
  175. package/dist/inputs/DurationInput.d.ts +101 -0
  176. package/dist/inputs/DurationInput.js +441 -0
  177. package/dist/inputs/Field.d.ts +75 -0
  178. package/dist/inputs/Field.js +247 -0
  179. package/dist/inputs/Fieldset.d.ts +53 -0
  180. package/dist/inputs/Fieldset.js +149 -0
  181. package/dist/inputs/FileInput.d.ts +110 -0
  182. package/dist/inputs/FileInput.js +476 -0
  183. package/dist/inputs/Input.d.ts +148 -187
  184. package/dist/inputs/Input.js +339 -259
  185. package/dist/inputs/KeyValueInput.d.ts +120 -0
  186. package/dist/inputs/KeyValueInput.js +383 -0
  187. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  188. package/dist/inputs/MultiSelectInput.js +175 -559
  189. package/dist/inputs/NumberInput.d.ts +65 -9
  190. package/dist/inputs/NumberInput.js +197 -40
  191. package/dist/inputs/PasswordInput.d.ts +17 -12
  192. package/dist/inputs/PasswordInput.js +33 -33
  193. package/dist/inputs/PinInput.d.ts +117 -0
  194. package/dist/inputs/PinInput.js +364 -0
  195. package/dist/inputs/RadioGroup.d.ts +115 -0
  196. package/dist/inputs/RadioGroup.js +179 -0
  197. package/dist/inputs/RadioInput.d.ts +87 -24
  198. package/dist/inputs/RadioInput.js +182 -95
  199. package/dist/inputs/SearchInput.d.ts +66 -0
  200. package/dist/inputs/SearchInput.js +156 -0
  201. package/dist/inputs/SelectInput.d.ts +195 -55
  202. package/dist/inputs/SelectInput.js +1308 -446
  203. package/dist/inputs/SliderInput.d.ts +150 -30
  204. package/dist/inputs/SliderInput.js +441 -186
  205. package/dist/inputs/SwitchInput.d.ts +109 -0
  206. package/dist/inputs/SwitchInput.js +248 -0
  207. package/dist/inputs/TagInput.d.ts +117 -0
  208. package/dist/inputs/TagInput.js +408 -0
  209. package/dist/inputs/TextAreaInput.d.ts +146 -44
  210. package/dist/inputs/TextAreaInput.js +292 -198
  211. package/dist/inputs/TextInput.d.ts +4 -13
  212. package/dist/inputs/TextInput.js +13 -48
  213. package/dist/inputs/ToggleInput.d.ts +120 -22
  214. package/dist/inputs/ToggleInput.js +262 -116
  215. package/dist/inputs/internal/bareField.d.ts +18 -0
  216. package/dist/inputs/internal/bareField.js +38 -0
  217. package/dist/inputs/internal/devWarn.d.ts +7 -0
  218. package/dist/inputs/internal/devWarn.js +30 -0
  219. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  220. package/dist/inputs/internal/fieldFrame.js +64 -0
  221. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  222. package/dist/inputs/internal/fieldWiring.js +38 -0
  223. package/dist/inputs/internal/innerButton.d.ts +2 -0
  224. package/dist/inputs/internal/innerButton.js +24 -0
  225. package/dist/inputs/internal/ownField.d.ts +45 -0
  226. package/dist/inputs/internal/ownField.js +58 -0
  227. package/dist/inputs/internal/predicates.d.ts +9 -0
  228. package/dist/inputs/internal/predicates.js +11 -0
  229. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  230. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  231. package/dist/json/JsonViewer.d.ts +62 -0
  232. package/dist/json/JsonViewer.js +483 -0
  233. package/dist/layout/Box.d.ts +87 -0
  234. package/dist/layout/Box.js +109 -0
  235. package/dist/layout/Divider.d.ts +25 -0
  236. package/dist/layout/Divider.js +70 -0
  237. package/dist/layout/Flex.d.ts +139 -0
  238. package/dist/layout/Flex.js +165 -0
  239. package/dist/layout/FlexItem.d.ts +72 -0
  240. package/dist/layout/FlexItem.js +84 -0
  241. package/dist/layout/Grid.d.ts +140 -0
  242. package/dist/layout/Grid.js +178 -0
  243. package/dist/layout/Portal.d.ts +29 -0
  244. package/dist/layout/Portal.js +27 -0
  245. package/dist/layout/ResizablePanels.d.ts +88 -0
  246. package/dist/layout/ResizablePanels.js +198 -0
  247. package/dist/layout/ResizeHandle.d.ts +48 -0
  248. package/dist/layout/ResizeHandle.js +143 -0
  249. package/dist/layout/ScrollArea.d.ts +30 -0
  250. package/dist/layout/ScrollArea.js +138 -0
  251. package/dist/links/Link.d.ts +101 -1
  252. package/dist/links/Link.js +166 -4
  253. package/dist/lists/BulletedList.d.ts +25 -7
  254. package/dist/lists/BulletedList.js +72 -27
  255. package/dist/lists/DescriptionList.d.ts +91 -0
  256. package/dist/lists/DescriptionList.js +147 -0
  257. package/dist/menu/ContextMenu.d.ts +64 -0
  258. package/dist/menu/ContextMenu.js +34 -0
  259. package/dist/menu/Menu.d.ts +280 -0
  260. package/dist/menu/Menu.js +1003 -0
  261. package/dist/modal/ConfirmDialog.d.ts +55 -0
  262. package/dist/modal/ConfirmDialog.js +151 -0
  263. package/dist/modal/Modal.d.ts +64 -14
  264. package/dist/modal/Modal.js +189 -48
  265. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  266. package/dist/navigation/Breadcrumbs.js +243 -0
  267. package/dist/navigation/CommandPalette.d.ts +83 -0
  268. package/dist/navigation/CommandPalette.js +509 -0
  269. package/dist/navigation/Pagination.d.ts +87 -0
  270. package/dist/navigation/Pagination.js +300 -0
  271. package/dist/navigation/SidebarNav.d.ts +107 -0
  272. package/dist/navigation/SidebarNav.js +341 -0
  273. package/dist/navigation/Stepper.d.ts +52 -0
  274. package/dist/navigation/Stepper.js +207 -0
  275. package/dist/navigation/Tabs.d.ts +113 -0
  276. package/dist/navigation/Tabs.js +543 -0
  277. package/dist/navigation/Topbar.d.ts +20 -0
  278. package/dist/navigation/Topbar.js +62 -0
  279. package/dist/overlay/OverlayProvider.d.ts +28 -32
  280. package/dist/overlay/OverlayProvider.js +42 -93
  281. package/dist/overlay/useOverlay.d.ts +88 -12
  282. package/dist/overlay/useOverlay.js +220 -43
  283. package/dist/overlays/Popover.d.ts +114 -0
  284. package/dist/overlays/Popover.js +389 -0
  285. package/dist/shapes/Circle.d.ts +84 -8
  286. package/dist/shapes/Circle.js +122 -20
  287. package/dist/shapes/Square.d.ts +84 -8
  288. package/dist/shapes/Square.js +123 -20
  289. package/dist/styles/mixins.d.ts +35 -0
  290. package/dist/styles/mixins.js +60 -0
  291. package/dist/styles.css +1 -202
  292. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  293. package/dist/table/InfiniteSpreadsheet.js +762 -225
  294. package/dist/table/InfiniteTable.d.ts +116 -14
  295. package/dist/table/InfiniteTable.js +287 -429
  296. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  297. package/dist/table/SpreadsheetCellEditor.js +163 -84
  298. package/dist/table/TableCore.d.ts +252 -0
  299. package/dist/table/TableCore.js +1077 -0
  300. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  301. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  302. package/dist/table/types.d.ts +66 -244
  303. package/dist/table/types.js +0 -51
  304. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  305. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  306. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  307. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  308. package/dist/table/useTableColumnLayout.d.ts +90 -25
  309. package/dist/table/useTableColumnLayout.js +255 -50
  310. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  311. package/dist/table/useTableKeyboardNavigation.js +95 -71
  312. package/dist/table/useTableRowSelection.d.ts +24 -25
  313. package/dist/table/useTableRowSelection.js +57 -84
  314. package/dist/table/useTableVirtualizer.d.ts +20 -0
  315. package/dist/table/useTableVirtualizer.js +48 -0
  316. package/dist/text/Bold.d.ts +5 -6
  317. package/dist/text/Bold.js +16 -15
  318. package/dist/text/Code.d.ts +5 -6
  319. package/dist/text/Code.js +16 -25
  320. package/dist/text/CodeBlock.d.ts +77 -0
  321. package/dist/text/CodeBlock.js +373 -0
  322. package/dist/text/EditableText.d.ts +55 -15
  323. package/dist/text/EditableText.js +153 -135
  324. package/dist/text/Ellipsis.d.ts +34 -8
  325. package/dist/text/Ellipsis.js +55 -23
  326. package/dist/text/Kbd.d.ts +72 -0
  327. package/dist/text/Kbd.js +284 -0
  328. package/dist/text/MarkdownText.d.ts +27 -10
  329. package/dist/text/MarkdownText.js +317 -300
  330. package/dist/text/RequiredMarker.d.ts +17 -5
  331. package/dist/text/RequiredMarker.js +34 -36
  332. package/dist/text/Selectable.d.ts +5 -6
  333. package/dist/text/Selectable.js +16 -13
  334. package/dist/text/Span.d.ts +82 -0
  335. package/dist/text/Span.js +115 -0
  336. package/dist/text/Text.d.ts +128 -41
  337. package/dist/text/Text.js +209 -76
  338. package/dist/theme/GalaxyProvider.d.ts +75 -0
  339. package/dist/theme/GalaxyProvider.js +223 -0
  340. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  341. package/dist/theme/ThemeSwitcher.js +94 -0
  342. package/dist/theme/enums.d.ts +118 -0
  343. package/dist/theme/enums.js +144 -0
  344. package/dist/theme/tokens/dark.d.ts +2 -0
  345. package/dist/theme/tokens/dark.js +275 -0
  346. package/dist/theme/tokens/generate.d.ts +15 -0
  347. package/dist/theme/tokens/generate.js +47 -0
  348. package/dist/theme/tokens/light.d.ts +2 -0
  349. package/dist/theme/tokens/light.js +274 -0
  350. package/dist/theme/tokens/palette.d.ts +14 -0
  351. package/dist/theme/tokens/palette.js +153 -0
  352. package/dist/theme/tokens/scales.d.ts +26 -0
  353. package/dist/theme/tokens/scales.js +154 -0
  354. package/dist/theme/tokens/t.d.ts +3 -0
  355. package/dist/theme/tokens/t.js +25 -0
  356. package/dist/theme/tokens/types.d.ts +189 -0
  357. package/dist/theme/tokens/types.js +0 -0
  358. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  359. package/dist/theme/useGalaxyTheme.js +36 -0
  360. package/dist/theme/useInverseScope.d.ts +18 -0
  361. package/dist/theme/useInverseScope.js +33 -0
  362. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  363. package/dist/three/GalaxyLogomark3D.js +134 -0
  364. package/dist/three/assets/galaxy-logomark.js +4 -0
  365. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  366. package/dist/three/galaxyLogomark3DScene.js +165 -0
  367. package/dist/timeline/Timeline.d.ts +99 -0
  368. package/dist/timeline/Timeline.js +269 -0
  369. package/dist/toast/Toast.d.ts +43 -19
  370. package/dist/toast/Toast.js +130 -89
  371. package/dist/toast/ToastProvider.d.ts +23 -23
  372. package/dist/toast/ToastProvider.js +298 -101
  373. package/dist/toast/ToastViewport.d.ts +12 -0
  374. package/dist/toast/ToastViewport.js +210 -0
  375. package/dist/toast/useToast.d.ts +139 -5
  376. package/dist/toast/useToast.js +15 -13
  377. package/dist/tokens.css +654 -0
  378. package/dist/tooltip/Tooltip.d.ts +64 -44
  379. package/dist/tooltip/Tooltip.js +280 -73
  380. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  381. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  382. package/dist/transform/Fade.d.ts +33 -11
  383. package/dist/transform/Fade.js +71 -19
  384. package/dist/transform/Flasher.d.ts +25 -0
  385. package/dist/transform/Flasher.js +39 -0
  386. package/dist/transform/Rotate.d.ts +24 -12
  387. package/dist/transform/Rotate.js +36 -22
  388. package/dist/transform/ScaleFade.d.ts +36 -11
  389. package/dist/transform/ScaleFade.js +86 -28
  390. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  391. package/dist/transform/internal/CollapseMotion.js +65 -0
  392. package/dist/tree/Tree.d.ts +85 -0
  393. package/dist/tree/Tree.js +387 -0
  394. package/dist/tree/treeRow.d.ts +39 -0
  395. package/dist/tree/treeRow.js +75 -0
  396. package/dist/utils/colors.d.ts +46 -13
  397. package/dist/utils/colors.js +92 -34
  398. package/dist/utils/css.d.ts +23 -0
  399. package/dist/utils/css.js +30 -0
  400. package/dist/utils/format.d.ts +58 -0
  401. package/dist/utils/format.js +220 -0
  402. package/dist/vite/index.d.ts +16 -0
  403. package/dist/vite/index.js +52 -0
  404. package/dist/widget/Widget.d.ts +164 -48
  405. package/dist/widget/Widget.js +335 -96
  406. package/dist/widget/WidgetGroup.d.ts +36 -0
  407. package/dist/widget/WidgetGroup.js +103 -0
  408. package/package.json +851 -157
  409. package/dist/accordion/Accordion.d.ts +0 -54
  410. package/dist/accordion/Accordion.js +0 -183
  411. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  412. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  413. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  415. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  416. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  417. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  419. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  420. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  421. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  423. package/dist/assets/models/galaxy-animation.js +0 -136666
  424. package/dist/assets/models/galaxy-logomark.js +0 -4
  425. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  426. package/dist/avatar/AvatarShimmer.js +0 -22
  427. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  428. package/dist/backgrounds/CellGridBackground.js +0 -44
  429. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  430. package/dist/backgrounds/CrossGridBackground.js +0 -49
  431. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  432. package/dist/backgrounds/DotGridBackground.js +0 -47
  433. package/dist/badge/Badge.d.ts +0 -42
  434. package/dist/badge/Badge.js +0 -99
  435. package/dist/charts/ChartEmptyState.d.ts +0 -17
  436. package/dist/charts/ChartEmptyState.js +0 -29
  437. package/dist/charts/ProgressBar.d.ts +0 -29
  438. package/dist/charts/ProgressBar.js +0 -65
  439. package/dist/charts/chartTheme.d.ts +0 -18
  440. package/dist/charts/chartTheme.js +0 -26
  441. package/dist/containers/FlexItem.d.ts +0 -50
  442. package/dist/containers/FlexItem.js +0 -91
  443. package/dist/containers/FlexWrapper.d.ts +0 -96
  444. package/dist/containers/FlexWrapper.js +0 -143
  445. package/dist/containers/GridWrapper.d.ts +0 -79
  446. package/dist/containers/GridWrapper.js +0 -125
  447. package/dist/containers/Spacing.d.ts +0 -23
  448. package/dist/containers/Spacing.js +0 -59
  449. package/dist/containers/Wrapper.d.ts +0 -26
  450. package/dist/containers/Wrapper.js +0 -54
  451. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  452. package/dist/dividers/HorizontalDivider.js +0 -39
  453. package/dist/dividers/VerticalDivider.d.ts +0 -6
  454. package/dist/dividers/VerticalDivider.js +0 -21
  455. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  456. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  457. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  458. package/dist/icons/GalaxyLogomark.js +0 -27
  459. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  460. package/dist/icons/GalaxyLogomark3D.js +0 -319
  461. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  462. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  463. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  464. package/dist/icons/GalaxyWordmark.js +0 -25
  465. package/dist/inputs/MultiTextInput.d.ts +0 -32
  466. package/dist/inputs/MultiTextInput.js +0 -180
  467. package/dist/inputs/SwitcherInput.d.ts +0 -27
  468. package/dist/inputs/SwitcherInput.js +0 -64
  469. package/dist/inputs/hooks.d.ts +0 -10
  470. package/dist/inputs/hooks.js +0 -22
  471. package/dist/overlay/constants.d.ts +0 -28
  472. package/dist/overlay/constants.js +0 -37
  473. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  474. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  475. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  476. package/dist/resizable/VerticalResizeHandle.js +0 -39
  477. package/dist/table/SpreadsheetCell.d.ts +0 -21
  478. package/dist/table/SpreadsheetCell.js +0 -71
  479. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  480. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  481. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  482. package/dist/table/SpreadsheetMenuItem.js +0 -33
  483. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  484. package/dist/table/SpreadsheetPrimitives.js +0 -105
  485. package/dist/table/SpreadsheetRow.d.ts +0 -33
  486. package/dist/table/SpreadsheetRow.js +0 -73
  487. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  488. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  489. package/dist/table/TableExpandCell.d.ts +0 -11
  490. package/dist/table/TableExpandCell.js +0 -24
  491. package/dist/table/TableExpandedRow.d.ts +0 -16
  492. package/dist/table/TableExpandedRow.js +0 -77
  493. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  494. package/dist/table/TableHeaderCellContent.js +0 -48
  495. package/dist/table/TablePrimitives.d.ts +0 -313
  496. package/dist/table/TablePrimitives.js +0 -302
  497. package/dist/table/TableSelectCell.d.ts +0 -18
  498. package/dist/table/TableSelectCell.js +0 -27
  499. package/dist/table/TableStatusRow.d.ts +0 -18
  500. package/dist/table/TableStatusRow.js +0 -50
  501. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  502. package/dist/table/useSpreadsheetEditing.js +0 -41
  503. package/dist/table/useTableColumnResize.d.ts +0 -38
  504. package/dist/table/useTableColumnResize.js +0 -155
  505. package/dist/table/useTableRowExpansion.d.ts +0 -24
  506. package/dist/table/useTableRowExpansion.js +0 -62
  507. package/dist/table/utils.d.ts +0 -50
  508. package/dist/table/utils.js +0 -78
  509. package/dist/text/HotKeys.d.ts +0 -30
  510. package/dist/text/HotKeys.js +0 -74
  511. package/dist/text/Paragraph.d.ts +0 -33
  512. package/dist/text/Paragraph.js +0 -83
  513. package/dist/text/TextShimmer.d.ts +0 -14
  514. package/dist/text/TextShimmer.js +0 -34
  515. package/dist/theme/GalaxyTheme.d.ts +0 -67
  516. package/dist/theme/GalaxyTheme.js +0 -119
  517. package/dist/theme/constants.d.ts +0 -8
  518. package/dist/theme/constants.js +0 -38
  519. package/dist/theme/index.d.ts +0 -6
  520. package/dist/theme/index.js +0 -7
  521. package/dist/theme/types.d.ts +0 -195
  522. package/dist/theme/types.js +0 -10
  523. package/dist/theme/typography.d.ts +0 -2
  524. package/dist/theme/typography.js +0 -73
  525. package/dist/theme/variants/dark.d.ts +0 -2
  526. package/dist/theme/variants/dark.js +0 -125
  527. package/dist/theme/variants/light.d.ts +0 -2
  528. package/dist/theme/variants/light.js +0 -125
  529. package/dist/toast/ToastContainer.d.ts +0 -10
  530. package/dist/toast/ToastContainer.js +0 -31
  531. package/dist/toast/ToastWrapper.d.ts +0 -6
  532. package/dist/toast/ToastWrapper.js +0 -27
  533. package/dist/transform/Flash.d.ts +0 -7
  534. package/dist/transform/Flash.js +0 -18
  535. package/dist/transform/Spin.d.ts +0 -14
  536. package/dist/transform/Spin.js +0 -25
  537. package/dist/utils/linaria.d.ts +0 -1
  538. package/dist/utils/linaria.js +0 -8
package/dist/text/Text.js CHANGED
@@ -1,114 +1,247 @@
1
- import { withTheme } from "../theme/GalaxyTheme.js";
1
+ import { FontFamily } from "../theme/enums.js";
2
+ import LazyTooltip from "../tooltip/internal/LazyTooltip.js";
2
3
  /* empty css */
3
4
  import { styled } from "@linaria/react";
4
- import { match } from "ts-pattern";
5
+ import { forwardRef, useCallback, useRef, useState } from "react";
5
6
  import { jsx } from "react/jsx-runtime";
7
+ import { cx } from "@linaria/core";
6
8
  //#region src/text/Text.tsx
7
- /** Text color role. Resolves to a `theme.color.text.*` token in both themes. */
9
+ /**
10
+ * The text primitive. Every string in a Galaxy UI renders through it, so color, type step, weight
11
+ * and family always resolve from tokens. Renders a `<p>` by default; `as` changes the element (and
12
+ * so the semantics: `as="h2"` is how a heading gets its role) without changing the style. Replaces
13
+ * 1.x `Text` and `Paragraph` (`isProse` is the paragraph mode).
14
+ *
15
+ * Size × family without 27 blocks: each `TEXT_SIZE_TO_CSS_MAP` entry writes the step's metrics for
16
+ * all three families into `--gx-text-<metric>-<family>` custom properties, and the one
17
+ * `TEXT_FAMILY_TO_CSS_MAP` entry in play reads its own family's set. Weight works the same way.
18
+ *
19
+ * Continuous values (`hex`, `lineClamp`, `cursor`) are set as `--gx-text-*` custom properties in
20
+ * `style`, read by a block that is switched on only when the prop is set, so a nested `Text` never
21
+ * inherits its parent's value (the Box pattern).
22
+ *
23
+ * Plain `Text` has no hooks and imports no overlay code. `shouldTooltipOnOverflow` hands the
24
+ * element to `OverflowTooltipText`, which measures only when the pointer (or focus) arrives and
25
+ * mounts a `LazyTooltip` the first time the text really is cut, so a table of a thousand clamped
26
+ * cells carries no observers and no floating-ui instances until one is hovered.
27
+ */
28
+ /** Color role of the text (color set, Constitution V-A). */
8
29
  var TextVariant = /* @__PURE__ */ function(TextVariant) {
30
+ /** Primary copy, `text.primary`. */
9
31
  TextVariant["PRIMARY"] = "PRIMARY";
10
- TextVariant["PRIMARY_ALT"] = "PRIMARY_ALT";
32
+ /** Supporting copy, `text.secondary`. */
11
33
  TextVariant["SECONDARY"] = "SECONDARY";
12
- TextVariant["SECONDARY_ALT"] = "SECONDARY_ALT";
34
+ /** Hints and metadata, `text.tertiary`. */
13
35
  TextVariant["TERTIARY"] = "TERTIARY";
14
- TextVariant["TERTIARY_ALT"] = "TERTIARY_ALT";
36
+ /** Disabled controls, `text.disabled`. */
37
+ TextVariant["DISABLED"] = "DISABLED";
38
+ /** The parent's color (used inside Button and other colored controls). */
39
+ TextVariant["INHERIT"] = "INHERIT";
40
+ /** Status: success, `text.success`. */
15
41
  TextVariant["SUCCESS"] = "SUCCESS";
42
+ /** Status: warning, `text.warning`. */
16
43
  TextVariant["WARNING"] = "WARNING";
44
+ /** Status: error, `text.error`. */
17
45
  TextVariant["ERROR"] = "ERROR";
18
- TextVariant["PINK"] = "PINK";
19
- TextVariant["ORANGE"] = "ORANGE";
20
- TextVariant["YELLOW"] = "YELLOW";
21
- TextVariant["LIME"] = "LIME";
22
- TextVariant["BLUE"] = "BLUE";
23
- TextVariant["TEAL"] = "TEAL";
24
- TextVariant["PURPLE"] = "PURPLE";
25
- TextVariant["DISABLED"] = "DISABLED";
26
46
  return TextVariant;
27
47
  }({});
28
- /** Type scale step. Sets font-size, line-height and letter-spacing together. */
48
+ /** Type-scale step. Sets font size, line height and letter spacing together (Constitution III-A). */
29
49
  var TextSize = /* @__PURE__ */ function(TextSize) {
50
+ /** 10px on a 12px line. */
30
51
  TextSize["CAPTION"] = "CAPTION";
52
+ /** 12px on a 16px line. */
31
53
  TextSize["BODY_SM"] = "BODY_SM";
54
+ /** 13px on a 16px line. The default. */
32
55
  TextSize["BODY_MD"] = "BODY_MD";
56
+ /** 14px on a 20px line. */
33
57
  TextSize["BODY_LG"] = "BODY_LG";
58
+ /** 16px on a 20px line. */
34
59
  TextSize["HEADING_SM"] = "HEADING_SM";
60
+ /** 20px on a 24px line. */
35
61
  TextSize["HEADING_MD"] = "HEADING_MD";
62
+ /** 24px on a 28px line. */
36
63
  TextSize["HEADING_LG"] = "HEADING_LG";
64
+ /** 32px on a 40px line. */
65
+ TextSize["DISPLAY_SM"] = "DISPLAY_SM";
66
+ /** 40px on a 48px line. */
67
+ TextSize["DISPLAY_LG"] = "DISPLAY_LG";
37
68
  return TextSize;
38
69
  }({});
39
- /** Font weight. Two steps by design — hierarchy comes from size, not weight. */
70
+ /** Font weight. Two steps by design: hierarchy comes from size, not weight. */
40
71
  var TextWeight = /* @__PURE__ */ function(TextWeight) {
72
+ /** 400. */
41
73
  TextWeight["REGULAR"] = "REGULAR";
74
+ /** 500. */
42
75
  TextWeight["MEDIUM"] = "MEDIUM";
43
76
  return TextWeight;
44
77
  }({});
45
- var _exp = () => ({ theme, $variant, $hex }) => {
46
- if ($hex) return $hex;
47
- return match($variant).with("PRIMARY", () => theme.color.text.primary).with("PRIMARY_ALT", () => theme.color.text.primaryAlt).with("SECONDARY", () => theme.color.text.secondary).with("SECONDARY_ALT", () => theme.color.text.secondaryAlt).with("TERTIARY", () => theme.color.text.tertiary).with("TERTIARY_ALT", () => theme.color.text.tertiaryAlt).with("SUCCESS", () => theme.color.text.success).with("ERROR", () => theme.color.text.error).with("LIME", () => theme.color.text.lime).with("PURPLE", () => theme.color.text.purple).with("TEAL", () => theme.color.text.teal).with("YELLOW", () => theme.color.text.yellow).with("ORANGE", () => theme.color.text.orange).with("PINK", () => theme.color.text.pink).with("BLUE", () => theme.color.text.blue).with("WARNING", () => theme.color.text.warning).with("DISABLED", () => theme.color.text.disabled).exhaustive();
78
+ /** Case transform. */
79
+ var TextTransform = /* @__PURE__ */ function(TextTransform) {
80
+ /** As written. */
81
+ TextTransform["NONE"] = "NONE";
82
+ /** All caps with added tracking, for small labels. */
83
+ TextTransform["UPPERCASE"] = "UPPERCASE";
84
+ return TextTransform;
85
+ }({});
86
+ var Root = /*#__PURE__*/ styled("p")({
87
+ name: "Root",
88
+ class: "gx-Text-rhbcgkd",
89
+ propsAsIs: false
90
+ });
91
+ var TEXT_VARIANT_TO_CSS_MAP = {
92
+ ["PRIMARY"]: "gx-Text-PRIMARY-p1o7ndnh",
93
+ ["SECONDARY"]: "gx-Text-SECONDARY-sxn0am",
94
+ ["TERTIARY"]: "gx-Text-TERTIARY-tjam0gv",
95
+ ["DISABLED"]: "gx-Text-DISABLED-d9vq58r",
96
+ ["INHERIT"]: "gx-Text-INHERIT-ikc9uqt",
97
+ ["SUCCESS"]: "gx-Text-SUCCESS-sd9g98b",
98
+ ["WARNING"]: "gx-Text-WARNING-wj6mcrw",
99
+ ["ERROR"]: "gx-Text-ERROR-em7katg"
100
+ };
101
+ var TEXT_SIZE_TO_CSS_MAP = {
102
+ ["CAPTION"]: "gx-Text-CAPTION-clqhh6f",
103
+ ["BODY_SM"]: "gx-Text-BODY_SM-bhah7z5",
104
+ ["BODY_MD"]: "gx-Text-BODY_MD-bx8q0yn",
105
+ ["BODY_LG"]: "gx-Text-BODY_LG-b1blssxg",
106
+ ["HEADING_SM"]: "gx-Text-HEADING_SM-hp6b6ct",
107
+ ["HEADING_MD"]: "gx-Text-HEADING_MD-h1n2lvag",
108
+ ["HEADING_LG"]: "gx-Text-HEADING_LG-h123wkme",
109
+ ["DISPLAY_SM"]: "gx-Text-DISPLAY_SM-d1m1eryv",
110
+ ["DISPLAY_LG"]: "gx-Text-DISPLAY_LG-doytb7j"
48
111
  };
49
- var _exp2 = () => ({ theme, $isMonospace }) => $isMonospace ? theme.font.mono.family : theme.font.sans.family;
50
- var _exp3 = () => ({ theme, $size }) => {
51
- return match($size).with("CAPTION", () => theme.font.sans.size.caption).with("BODY_SM", () => theme.font.sans.size.body_sm).with("BODY_MD", () => theme.font.sans.size.body_md).with("BODY_LG", () => theme.font.sans.size.body_lg).with("HEADING_SM", () => theme.font.sans.size.heading_sm).with("HEADING_MD", () => theme.font.sans.size.heading_md).with("HEADING_LG", () => theme.font.sans.size.heading_lg).exhaustive();
112
+ /** Each family's weight, read by the family block. */
113
+ var TEXT_WEIGHT_TO_CSS_MAP = {
114
+ ["REGULAR"]: "gx-Text-REGULAR-rf1moiw",
115
+ ["MEDIUM"]: "gx-Text-MEDIUM-mii0sim"
52
116
  };
53
- var _exp4 = () => ({ theme, $weight }) => {
54
- return match($weight).with("REGULAR", () => theme.font.sans.weight.regular).with("MEDIUM", () => theme.font.sans.weight.medium).exhaustive();
117
+ /** The family stack, and the family's own set of the step and weight variables. */
118
+ var TEXT_FAMILY_TO_CSS_MAP = {
119
+ [FontFamily.SANS]: "gx-Text-FontFamily_SANS-f1r9nxxz",
120
+ [FontFamily.MONO]: "gx-Text-FontFamily_MONO-f1rdyhdd",
121
+ [FontFamily.SERIF]: "gx-Text-FontFamily_SERIF-f1tw09v7"
55
122
  };
56
- var _exp5 = () => ({ theme, $size }) => {
57
- return match($size).with("CAPTION", () => theme.font.sans.height.caption).with("BODY_SM", () => theme.font.sans.height.body_sm).with("BODY_MD", () => theme.font.sans.height.body_md).with("BODY_LG", () => theme.font.sans.height.body_lg).with("HEADING_SM", () => theme.font.sans.height.heading_sm).with("HEADING_MD", () => theme.font.sans.height.heading_md).with("HEADING_LG", () => theme.font.sans.height.heading_lg).exhaustive();
123
+ var TEXT_ALIGN_TO_CSS_MAP = {
124
+ left: "gx-Text-left-l14le4my",
125
+ center: "gx-Text-center-c1fdaqaz",
126
+ right: "gx-Text-right-royz62m"
58
127
  };
59
- var _exp6 = () => ({ theme, $size }) => {
60
- return match($size).with("CAPTION", () => theme.font.sans.spacing.caption).with("BODY_SM", () => theme.font.sans.spacing.body_sm).with("BODY_MD", () => theme.font.sans.spacing.body_md).with("BODY_LG", () => theme.font.sans.spacing.body_lg).with("HEADING_SM", () => theme.font.sans.spacing.heading_sm).with("HEADING_MD", () => theme.font.sans.spacing.heading_md).with("HEADING_LG", () => theme.font.sans.spacing.heading_lg).exhaustive();
128
+ var TEXT_TRANSFORM_TO_CSS_MAP = {
129
+ ["NONE"]: "gx-Text-NONE-n1ms692r",
130
+ ["UPPERCASE"]: "gx-Text-UPPERCASE-uceej59"
61
131
  };
62
- var _exp7 = () => ({ $align }) => $align ?? "left";
63
- var _exp8 = () => ({ $isUnderlined }) => $isUnderlined ? "underline" : "none";
64
- var _exp9 = () => ({ $cursor }) => $cursor ?? "inherit";
65
- var _exp11 = () => ({ $isSelectable }) => $isSelectable ? "text" : "none";
66
- var _exp12 = () => ({ $isEllipsis }) => $isEllipsis ? "hidden" : "visible";
67
- var _exp13 = () => ({ $isEllipsis }) => $isEllipsis ? "ellipsis" : "clip";
68
- var _exp14 = () => ({ $isEllipsis }) => $isEllipsis ? "nowrap" : "normal";
69
- var _exp15 = () => ({ $isEllipsis }) => $isEllipsis ? "100%" : "auto";
70
- var StyledText = withTheme(/*#__PURE__*/ styled("p")({
71
- name: "StyledText",
72
- class: "shbcgkd",
73
- propsAsIs: false,
74
- vars: {
75
- "shbcgkd-0": [_exp()],
76
- "shbcgkd-1": [_exp2()],
77
- "shbcgkd-2": [_exp3()],
78
- "shbcgkd-3": [_exp4()],
79
- "shbcgkd-4": [_exp5()],
80
- "shbcgkd-5": [_exp6()],
81
- "shbcgkd-6": [_exp7()],
82
- "shbcgkd-7": [_exp8()],
83
- "shbcgkd-8": [_exp9()],
84
- "shbcgkd-9": [_exp11()],
85
- "shbcgkd-10": [_exp12()],
86
- "shbcgkd-11": [_exp13()],
87
- "shbcgkd-12": [_exp14()],
88
- "shbcgkd-13": [_exp15()]
89
- }
90
- }));
132
+ var PROSE_CSS = "gx-Text-PROSE_CSS-porkynj";
133
+ var UI_SELECT_CSS = "gx-Text-UI_SELECT_CSS-ug9onio";
134
+ var SELECTABLE_CSS = "gx-Text-SELECTABLE_CSS-snbodax";
135
+ var TABULAR_CSS = "gx-Text-TABULAR_CSS-tzelh2u";
136
+ var ITALIC_CSS = "gx-Text-ITALIC_CSS-i1wm3pcb";
137
+ var UNDERLINED_CSS = "gx-Text-UNDERLINED_CSS-ur3mnle";
138
+ var STRIKETHROUGH_CSS = "gx-Text-STRIKETHROUGH_CSS-spzvz5x";
139
+ var UNDERLINED_STRIKETHROUGH_CSS = "gx-Text-UNDERLINED_STRIKETHROUGH_CSS-u1xwjpqd";
140
+ /** `lineClamp={1}`: one line ending in an ellipsis, clipped sideways only (see `TRUNCATE`). */
141
+ var SINGLE_LINE_CLAMP_CSS = "gx-Text-SINGLE_LINE_CLAMP_CSS-s59kfuv";
91
142
  /**
92
- * The text primitive. Every string in a Galaxy UI renders through it, so color,
93
- * size and weight always resolve from theme tokens rather than raw CSS.
94
- *
95
- * Renders a `<p>`. For inline treatments nest `Bold`, `Code`, `Selectable` or
96
- * `HotKeys` inside it rather than reaching for a raw tag.
143
+ * `lineClamp > 1`: N lines, the last ending in an ellipsis. The hidden lines need a vertical clip;
144
+ * it never cuts the last visible line's descenders because every line height holds its ink.
145
+ */
146
+ var MULTI_LINE_CLAMP_CSS = "gx-Text-MULTI_LINE_CLAMP_CSS-m1ukj6n6";
147
+ /** Declared after the variant map so `hex` wins over it. */
148
+ var HEX_CSS = "gx-Text-HEX_CSS-h1x2tvf1";
149
+ var CURSOR_CSS = "gx-Text-CURSOR_CSS-c1bar1us";
150
+ /** What `line-height: normal` resolves to, roughly, when a computed style reports `normal`. */
151
+ var NORMAL_LINE_HEIGHT_RATIO = 1.2;
152
+ /**
153
+ * Whether a clamped element hides some of its text. One line clips sideways, so only the widths
154
+ * are compared. Several lines clip downwards, and a hidden line adds at least one full line
155
+ * height, so the height test ignores anything under half a line (sub-pixel rounding).
156
+ */
157
+ function isClampOverflowing(element, clamp) {
158
+ if (element.scrollWidth > element.clientWidth) return true;
159
+ if (clamp === 1) return false;
160
+ const computed = getComputedStyle(element);
161
+ const lineHeight = Number.parseFloat(computed.lineHeight);
162
+ const line = Number.isFinite(lineHeight) ? lineHeight : Number.parseFloat(computed.fontSize) * NORMAL_LINE_HEIGHT_RATIO;
163
+ return element.scrollHeight - element.clientHeight > line / 2;
164
+ }
165
+ /** The full text of a clamped element while it is cut, or `undefined` while it all fits. */
166
+ function overflowTextOf(element, clamp) {
167
+ if (!element) return void 0;
168
+ const text = element.textContent ?? "";
169
+ return text !== "" && isClampOverflowing(element, clamp) ? text : void 0;
170
+ }
171
+ /**
172
+ * The `shouldTooltipOnOverflow` path. Nothing is measured and no `Tooltip` exists until the pointer
173
+ * (or focus) reaches the element; the first time the text is cut, a `LazyTooltip` mounts already
174
+ * open with the full text, and from then on every open request re-measures, so a cell that later
175
+ * fits shows no bubble. The bubble is `aria-hidden`: the full text is already the element's
176
+ * content.
97
177
  */
98
- var Text = ({ children, size = "BODY_MD", variant = "PRIMARY", weight = "REGULAR", align = "left", cursor, isMonospace = false, isSelectable = false, isUnderlined = false, isEllipsis = false, hex }) => {
99
- return /* @__PURE__ */ jsx(StyledText, {
100
- $size: size,
101
- $variant: variant,
102
- $weight: weight,
103
- $align: align,
104
- $cursor: cursor,
105
- $isMonospace: isMonospace,
106
- $isSelectable: isSelectable,
107
- $isUnderlined: isUnderlined,
108
- $isEllipsis: isEllipsis,
109
- $hex: hex,
178
+ function OverflowTooltipText({ clamp, forwardedRef, renderRoot }) {
179
+ const elementRef = useRef(null);
180
+ const [overflowText, setOverflowText] = useState(void 0);
181
+ const [isOpen, setIsOpen] = useState(false);
182
+ const setRefs = useCallback((node) => {
183
+ elementRef.current = node;
184
+ if (typeof forwardedRef === "function") forwardedRef(node);
185
+ else if (forwardedRef) forwardedRef.current = node;
186
+ }, [forwardedRef]);
187
+ const arm = () => {
188
+ const text = overflowTextOf(elementRef.current, clamp);
189
+ if (text === void 0) return;
190
+ setOverflowText(text);
191
+ setIsOpen(true);
192
+ };
193
+ const handleOpenChange = (next) => {
194
+ if (!next) {
195
+ setIsOpen(false);
196
+ return;
197
+ }
198
+ const text = overflowTextOf(elementRef.current, clamp);
199
+ setOverflowText(text);
200
+ setIsOpen(text !== void 0);
201
+ };
202
+ if (overflowText === void 0) return renderRoot(setRefs, {
203
+ onPointerEnter: arm,
204
+ onFocus: arm
205
+ });
206
+ return /* @__PURE__ */ jsx(LazyTooltip, {
207
+ body: overflowText,
208
+ isOpen,
209
+ onOpenChange: handleOpenChange,
210
+ "aria-hidden": true,
211
+ children: renderRoot(setRefs, {})
212
+ });
213
+ }
214
+ /** The text primitive: a color role, a type step, a weight and a family, all from tokens. */
215
+ var Text = forwardRef(function Text({ children, as = "p", variant = "PRIMARY", size = "BODY_MD", weight = "REGULAR", family = FontFamily.SANS, align = "left", transform = "NONE", lineClamp, shouldTooltipOnOverflow = false, isProse = false, isTabular: isTabularProp, isItalic = false, isUnderlined = false, isStrikethrough = false, isSelectable: isSelectableProp, hex, cursor, id, className, style, ...rest }, ref) {
216
+ const isTabular = isTabularProp ?? family === FontFamily.MONO;
217
+ const isSelectable = isSelectableProp ?? isProse;
218
+ const clamp = lineClamp !== void 0 && lineClamp > 0 ? Math.floor(lineClamp) : void 0;
219
+ const hasOverflowTooltip = shouldTooltipOnOverflow && clamp !== void 0;
220
+ const variables = {};
221
+ if (hex !== void 0) variables["--gx-text-hex"] = hex;
222
+ if (clamp !== void 0 && clamp > 1) variables["--gx-text-line-clamp"] = String(clamp);
223
+ if (cursor !== void 0) variables["--gx-text-cursor"] = cursor;
224
+ const rootClassName = cx(TEXT_VARIANT_TO_CSS_MAP[variant], TEXT_SIZE_TO_CSS_MAP[size], TEXT_WEIGHT_TO_CSS_MAP[weight], TEXT_FAMILY_TO_CSS_MAP[family], TEXT_ALIGN_TO_CSS_MAP[align], TEXT_TRANSFORM_TO_CSS_MAP[transform], isProse && PROSE_CSS, isSelectable ? SELECTABLE_CSS : UI_SELECT_CSS, isTabular && TABULAR_CSS, isItalic && ITALIC_CSS, isUnderlined && isStrikethrough ? UNDERLINED_STRIKETHROUGH_CSS : isUnderlined && UNDERLINED_CSS || isStrikethrough && STRIKETHROUGH_CSS, clamp === 1 && SINGLE_LINE_CLAMP_CSS, clamp !== void 0 && clamp > 1 && MULTI_LINE_CLAMP_CSS, hex !== void 0 && HEX_CSS, cursor !== void 0 && CURSOR_CSS, className);
225
+ const renderRoot = (rootRef, handlers) => /* @__PURE__ */ jsx(Root, {
226
+ ...rest,
227
+ ...handlers,
228
+ as,
229
+ ref: rootRef,
230
+ id,
231
+ className: rootClassName,
232
+ style: {
233
+ ...variables,
234
+ ...style
235
+ },
110
236
  children
111
237
  });
112
- };
238
+ if (!hasOverflowTooltip) return renderRoot(ref, {});
239
+ return /* @__PURE__ */ jsx(OverflowTooltipText, {
240
+ clamp,
241
+ forwardedRef: ref,
242
+ renderRoot
243
+ });
244
+ });
245
+ Text.displayName = "Text";
113
246
  //#endregion
114
- export { TextSize, TextVariant, TextWeight, Text as default };
247
+ export { TextSize, TextTransform, TextVariant, TextWeight, Text as default };
@@ -0,0 +1,75 @@
1
+ import { type ReactNode } from "react";
2
+ import { GalaxyTheme, ReducedMotion } from "./enums.js";
3
+ /** The two themes the OS can report, and the two every preference resolves to. */
4
+ type BaseTheme = GalaxyTheme.DARK | GalaxyTheme.LIGHT;
5
+ /** Where the theme preference persists (`localStorage`, a cookie, a desktop store). */
6
+ export interface GalaxyProviderStorage {
7
+ /** The stored value for `key`, or `null` when nothing is stored. */
8
+ get(key: string): string | null;
9
+ /** Store `value` under `key`. */
10
+ set(key: string, value: string): void;
11
+ }
12
+ /**
13
+ * How the provider reads the OS theme. Supply your own where `prefers-color-scheme` is not the
14
+ * source of truth (Electron, React Native).
15
+ */
16
+ export interface ThemeDetector {
17
+ /**
18
+ * Read the OS theme once, at mount. A synchronous result applies before the first paint; a
19
+ * promise applies when it resolves. Throwing or rejecting leaves `isSystemThemeSupported` false.
20
+ */
21
+ detectInitialTheme(): BaseTheme | Promise<BaseTheme>;
22
+ /** Subscribe to OS theme changes. Returns the unsubscribe function. */
23
+ onThemeChange(callback: (theme: BaseTheme) => void): () => void;
24
+ }
25
+ export interface GalaxyProviderProps {
26
+ /**
27
+ * Theme to start on when nothing is stored. A starting value; remount with a `key` to reset it.
28
+ * Omitted on a scoped provider inside another provider: the parent's resolved theme.
29
+ * @default GalaxyTheme.SYSTEM
30
+ */
31
+ theme?: GalaxyTheme;
32
+ /**
33
+ * Where the theme preference persists. Pass `null` to disable persistence.
34
+ * @default localStorage in browsers, null on the server and when `isScoped`
35
+ */
36
+ storage?: GalaxyProviderStorage | null;
37
+ /**
38
+ * Storage key of the theme preference.
39
+ * @default "galaxy:theme"
40
+ */
41
+ storageKey?: string;
42
+ /**
43
+ * How the OS theme is read (Electron and React Native can supply their own).
44
+ * @default a detector that reads `prefers-color-scheme`
45
+ */
46
+ detector?: ThemeDetector;
47
+ /**
48
+ * Write the theme attributes to a wrapper `div` instead of `<html>`, for a nested theme.
49
+ * @default false
50
+ */
51
+ isScoped?: boolean;
52
+ /**
53
+ * Where Portal, Modal, Drawer, Popover and Toast render. A nested provider without it keeps its
54
+ * parent's; `null` holds portals back until the node exists.
55
+ * @default document.body
56
+ */
57
+ portalContainer?: HTMLElement | null;
58
+ /**
59
+ * Reduce motion always, never, or when the OS asks (`prefers-reduced-motion`).
60
+ * @default ReducedMotion.SYSTEM
61
+ */
62
+ reducedMotion?: ReducedMotion;
63
+ /** The app, or the subtree the theme applies to when `isScoped`. */
64
+ children?: ReactNode;
65
+ }
66
+ /**
67
+ * The single root every app mounts. Resolves the theme, writes `data-gx-theme` (and
68
+ * `color-scheme`, reduced motion) on `<html>` or, when `isScoped`, on a wrapper `div`, and
69
+ * provides `useGalaxyTheme()`.
70
+ */
71
+ declare function GalaxyProvider({ theme, storage, storageKey, detector, isScoped, portalContainer, reducedMotion, children, }: GalaxyProviderProps): import("react").JSX.Element;
72
+ declare namespace GalaxyProvider {
73
+ var displayName: string;
74
+ }
75
+ export default GalaxyProvider;
@@ -0,0 +1,223 @@
1
+ import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
2
+ import { GalaxyTheme, ReducedMotion } from "./enums.js";
3
+ import { DARK_THEME } from "./tokens/dark.js";
4
+ import { GalaxyThemeContext, PortalContainerContext, ThemeScopeContext } from "./useGalaxyTheme.js";
5
+ import OverlayProvider from "../overlay/OverlayProvider.js";
6
+ import ToastProvider from "../toast/ToastProvider.js";
7
+ import { LIGHT_THEME } from "./tokens/light.js";
8
+ /* empty css */
9
+ import { useCallback, useContext, useMemo, useRef, useState } from "react";
10
+ import { jsx } from "react/jsx-runtime";
11
+ import { cx } from "@linaria/core";
12
+ //#region src/theme/GalaxyProvider.tsx
13
+ /**
14
+ * The one provider an app mounts (spec 03). It resolves the theme (`DARK`, `LIGHT` or `SYSTEM`),
15
+ * writes `data-gx-theme` on `<html>` (or on a wrapper when `isScoped`) and fills the context
16
+ * `useGalaxyTheme()` reads. It also hosts `OverlayProvider` (the overlay stack: `z` order and
17
+ * Escape to the topmost overlay) and, inside it, `ToastProvider` (the toast queue, placement
18
+ * regions, timers and announcements), so apps never mount either themselves.
19
+ *
20
+ * Styling never subscribes to it: components read `var(--gx-…)`, so a theme switch is one
21
+ * attribute change. Only `useGalaxyTheme()` consumers re-render. Galaxy is monochrome: there is
22
+ * no accent to configure.
23
+ *
24
+ * SSR: nothing here touches `window`, `document` or `localStorage` at module scope. Storage, the
25
+ * OS theme and the `<html>` attribute are read and written in layout effects, so the server
26
+ * renders the `theme` prop and the first client paint is already themed.
27
+ */
28
+ /** Default `storageKey`. */
29
+ var DEFAULT_STORAGE_KEY = "galaxy:theme";
30
+ /** The attribute the token CSS keys off (`tokens.css`, `themeToCss`). */
31
+ var THEME_ATTRIBUTE = "data-gx-theme";
32
+ /** The resolved token object behind each theme, for `useGalaxyTheme().theme`. */
33
+ var BASE_THEME_TO_THEME_MAP = {
34
+ [GalaxyTheme.DARK]: DARK_THEME,
35
+ [GalaxyTheme.LIGHT]: LIGHT_THEME
36
+ };
37
+ /** `color-scheme` follows the active theme, so native controls and scrollbars match. */
38
+ var PROVIDER_COLOR_SCHEME_TO_CSS_MAP = {
39
+ [GalaxyTheme.DARK]: "gx-GalaxyProvider-GalaxyTheme_DARK-g1mrhybl",
40
+ [GalaxyTheme.LIGHT]: "gx-GalaxyProvider-GalaxyTheme_LIGHT-g5p68x8"
41
+ };
42
+ /**
43
+ * Reduced motion on the root and every descendant. `SYSTEM` reuses the media-gated
44
+ * `REDUCED_MOTION` mixin; `ALWAYS` writes the mixin's two rules without the media gate (the one
45
+ * documented re-declaration, GalaxyProvider Q5); `NEVER` adds nothing.
46
+ */
47
+ var PROVIDER_REDUCED_MOTION_TO_CSS_MAP = {
48
+ [ReducedMotion.SYSTEM]: "gx-GalaxyProvider-ReducedMotion_SYSTEM-r1dimuet",
49
+ [ReducedMotion.ALWAYS]: "gx-GalaxyProvider-ReducedMotion_ALWAYS-rylvh5s",
50
+ [ReducedMotion.NEVER]: ""
51
+ };
52
+ /**
53
+ * On while the theme flips: no transitions anywhere for that one frame, so every color (and the
54
+ * ThemeSwitcher pill) lands on the new theme at once instead of easing through a mixed state.
55
+ */
56
+ var THEME_SWITCHING_CSS = "gx-GalaxyProvider-THEME_SWITCHING_CSS-t154i2sa";
57
+ /** The `isScoped` wrapper re-roots inherited text color under its own theme. */
58
+ var SCOPE_CSS = "gx-GalaxyProvider-SCOPE_CSS-svyyo75";
59
+ var BUILT_IN_THEMES = Object.values(GalaxyTheme);
60
+ var isPromiseLike = (value) => typeof value === "object" && value !== null && "then" in value;
61
+ /** `localStorage`, read lazily and guarded (private modes throw). */
62
+ var LOCAL_STORAGE = {
63
+ get(key) {
64
+ try {
65
+ return typeof window === "undefined" ? null : window.localStorage.getItem(key);
66
+ } catch {
67
+ return null;
68
+ }
69
+ },
70
+ set(key, value) {
71
+ try {
72
+ if (typeof window !== "undefined") window.localStorage.setItem(key, value);
73
+ } catch {}
74
+ }
75
+ };
76
+ /** Reads `prefers-color-scheme`. Throws where `matchMedia` is missing (unsupported). */
77
+ var BROWSER_THEME_DETECTOR = {
78
+ detectInitialTheme() {
79
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") throw new Error("prefers-color-scheme is not available.");
80
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? GalaxyTheme.DARK : GalaxyTheme.LIGHT;
81
+ },
82
+ onThemeChange(callback) {
83
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return () => {};
84
+ const query = window.matchMedia("(prefers-color-scheme: dark)");
85
+ const handleChange = (event) => callback(event.matches ? GalaxyTheme.DARK : GalaxyTheme.LIGHT);
86
+ query.addEventListener("change", handleChange);
87
+ return () => query.removeEventListener("change", handleChange);
88
+ }
89
+ };
90
+ /** Sets `name` on `element` to `value`, or removes it when `value` is `null`. */
91
+ function restoreAttribute(element, name, value) {
92
+ if (value === null) element.removeAttribute(name);
93
+ else element.setAttribute(name, value);
94
+ }
95
+ /**
96
+ * The single root every app mounts. Resolves the theme, writes `data-gx-theme` (and
97
+ * `color-scheme`, reduced motion) on `<html>` or, when `isScoped`, on a wrapper `div`, and
98
+ * provides `useGalaxyTheme()`.
99
+ */
100
+ function GalaxyProvider({ theme, storage, storageKey = DEFAULT_STORAGE_KEY, detector = BROWSER_THEME_DETECTOR, isScoped = false, portalContainer, reducedMotion = ReducedMotion.SYSTEM, children }) {
101
+ const parentScope = useContext(ThemeScopeContext);
102
+ const parentPortalContainer = useContext(PortalContainerContext);
103
+ const resolvedPortalContainer = portalContainer !== void 0 ? portalContainer : parentPortalContainer;
104
+ const resolvedStorage = storage !== void 0 ? storage : isScoped ? null : LOCAL_STORAGE;
105
+ const inheritedTheme = isScoped && theme === void 0 ? parentScope?.base : void 0;
106
+ const [chosenTheme, setChosenTheme] = useState(theme);
107
+ const selectedTheme = chosenTheme ?? inheritedTheme ?? GalaxyTheme.SYSTEM;
108
+ const [systemTheme, setSystemTheme] = useState(GalaxyTheme.DARK);
109
+ const [isSystemThemeSupported, setIsSystemThemeSupported] = useState(false);
110
+ const hasReadStorageRef = useRef(false);
111
+ useIsomorphicLayoutEffect(() => {
112
+ if (hasReadStorageRef.current) return;
113
+ hasReadStorageRef.current = true;
114
+ if (resolvedStorage === null) return;
115
+ let storedTheme = null;
116
+ try {
117
+ storedTheme = resolvedStorage.get(storageKey);
118
+ } catch {
119
+ return;
120
+ }
121
+ if (storedTheme !== null && BUILT_IN_THEMES.includes(storedTheme)) setChosenTheme(storedTheme);
122
+ }, [resolvedStorage, storageKey]);
123
+ useIsomorphicLayoutEffect(() => {
124
+ let isMounted = true;
125
+ const applyInitial = (initial) => {
126
+ if (!isMounted) return;
127
+ setSystemTheme(initial);
128
+ setIsSystemThemeSupported(true);
129
+ };
130
+ try {
131
+ const initial = detector.detectInitialTheme();
132
+ if (isPromiseLike(initial)) initial.then(applyInitial, () => {});
133
+ else applyInitial(initial);
134
+ } catch {}
135
+ let unsubscribe = () => {};
136
+ try {
137
+ unsubscribe = detector.onThemeChange((next) => {
138
+ if (isMounted) setSystemTheme(next);
139
+ });
140
+ } catch {}
141
+ return () => {
142
+ isMounted = false;
143
+ unsubscribe();
144
+ };
145
+ }, [detector]);
146
+ const activeTheme = selectedTheme === GalaxyTheme.SYSTEM ? systemTheme : selectedTheme;
147
+ const themeAttribute = activeTheme.toLowerCase();
148
+ const colorSchemeClass = PROVIDER_COLOR_SCHEME_TO_CSS_MAP[activeTheme];
149
+ const reducedMotionClass = PROVIDER_REDUCED_MOTION_TO_CSS_MAP[reducedMotion];
150
+ useIsomorphicLayoutEffect(() => {
151
+ if (isScoped) return;
152
+ const root = document.documentElement;
153
+ const previousTheme = root.getAttribute(THEME_ATTRIBUTE);
154
+ root.setAttribute(THEME_ATTRIBUTE, themeAttribute);
155
+ const addedClasses = [colorSchemeClass, reducedMotionClass].filter((className) => className !== "" && !root.classList.contains(className));
156
+ root.classList.add(...addedClasses);
157
+ return () => {
158
+ restoreAttribute(root, THEME_ATTRIBUTE, previousTheme);
159
+ root.classList.remove(...addedClasses);
160
+ };
161
+ }, [
162
+ isScoped,
163
+ themeAttribute,
164
+ colorSchemeClass,
165
+ reducedMotionClass
166
+ ]);
167
+ const lastThemeRef = useRef(themeAttribute);
168
+ useIsomorphicLayoutEffect(() => {
169
+ if (lastThemeRef.current === themeAttribute) return;
170
+ lastThemeRef.current = themeAttribute;
171
+ const root = document.documentElement;
172
+ root.classList.add(THEME_SWITCHING_CSS);
173
+ getComputedStyle(root).color;
174
+ let frame = requestAnimationFrame(() => {
175
+ frame = requestAnimationFrame(() => root.classList.remove(THEME_SWITCHING_CSS));
176
+ });
177
+ return () => {
178
+ cancelAnimationFrame(frame);
179
+ root.classList.remove(THEME_SWITCHING_CSS);
180
+ };
181
+ }, [themeAttribute]);
182
+ const setTheme = useCallback((next) => {
183
+ setChosenTheme(next);
184
+ try {
185
+ resolvedStorage?.set(storageKey, next);
186
+ } catch {}
187
+ }, [resolvedStorage, storageKey]);
188
+ const scope = useMemo(() => ({ base: activeTheme }), [activeTheme]);
189
+ const value = useMemo(() => ({
190
+ theme: BASE_THEME_TO_THEME_MAP[activeTheme],
191
+ activeTheme,
192
+ selectedTheme,
193
+ systemTheme,
194
+ isSystemThemeSupported,
195
+ setTheme,
196
+ reducedMotion
197
+ }), [
198
+ activeTheme,
199
+ selectedTheme,
200
+ systemTheme,
201
+ isSystemThemeSupported,
202
+ setTheme,
203
+ reducedMotion
204
+ ]);
205
+ const content = isScoped ? /* @__PURE__ */ jsx("div", {
206
+ "data-gx-theme": themeAttribute,
207
+ className: cx(SCOPE_CSS, colorSchemeClass, reducedMotionClass),
208
+ children
209
+ }) : children;
210
+ return /* @__PURE__ */ jsx(GalaxyThemeContext.Provider, {
211
+ value,
212
+ children: /* @__PURE__ */ jsx(ThemeScopeContext.Provider, {
213
+ value: scope,
214
+ children: /* @__PURE__ */ jsx(PortalContainerContext.Provider, {
215
+ value: resolvedPortalContainer,
216
+ children: /* @__PURE__ */ jsx(OverlayProvider, { children: /* @__PURE__ */ jsx(ToastProvider, { children: content }) })
217
+ })
218
+ })
219
+ });
220
+ }
221
+ GalaxyProvider.displayName = "GalaxyProvider";
222
+ //#endregion
223
+ export { GalaxyProvider as default };