@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
@@ -0,0 +1,114 @@
1
+ import { type AriaAttributes, type CSSProperties, type ReactElement, type ReactNode } from "react";
2
+ import { Placement } from "../theme/enums.js";
3
+ /** Panel fill: a surface step (Constitution V-A surface set, all four members). */
4
+ export declare enum PopoverVariant {
5
+ /** The canvas fill, `background.base`. The default (as in 1.x). */
6
+ BASE = "BASE",
7
+ /** A panel fill, `background.primary`. */
8
+ PRIMARY = "PRIMARY",
9
+ /** A raised fill, `background.secondary`. */
10
+ SECONDARY = "SECONDARY",
11
+ /** The most elevated fill, `background.tertiary`. */
12
+ TERTIARY = "TERTIARY"
13
+ }
14
+ /** What opens the panel (mode set, declared here; 1.x `DropdownTrigger` plus `CONTEXT_MENU`). */
15
+ export declare enum PopoverTrigger {
16
+ /** Click, Enter or Space on the trigger toggles it. */
17
+ CLICK = "CLICK",
18
+ /** The pointer rests on the trigger (after `delay`), or the trigger gets keyboard focus. */
19
+ HOVER = "HOVER",
20
+ /** The trigger receives focus. */
21
+ FOCUS = "FOCUS",
22
+ /** Right-click (or the keyboard context-menu key) on the region; opens at the pointer. */
23
+ CONTEXT_MENU = "CONTEXT_MENU",
24
+ /** Nothing opens it; `isOpen` does (combobox hosts). */
25
+ MANUAL = "MANUAL"
26
+ }
27
+ /** The panel's role and the trigger's `aria-haspopup` (mode set, declared here). */
28
+ export declare enum PopoverRole {
29
+ /** `role="dialog"`, `aria-haspopup="dialog"`. The default. */
30
+ DIALOG = "DIALOG",
31
+ /** `role="menu"`, `aria-haspopup="menu"` (Menu, ContextMenu). */
32
+ MENU = "MENU",
33
+ /** `role="listbox"`, `aria-haspopup="listbox"` (SelectInput). */
34
+ LISTBOX = "LISTBOX"
35
+ }
36
+ export interface PopoverProps extends AriaAttributes {
37
+ /**
38
+ * The trigger: one element that forwards its `ref` and spreads props to a DOM element. Popover
39
+ * clones it and does not wrap it. With `CONTEXT_MENU` it is the region that is right-clicked.
40
+ */
41
+ children: ReactElement;
42
+ /**
43
+ * Panel content. A string or number renders as `Text` with 12px padding; a node renders as it
44
+ * is, with no padding.
45
+ */
46
+ body: ReactNode;
47
+ /**
48
+ * What opens the panel: click, hover, focus, right-click, or nothing (`MANUAL`: only `isOpen`).
49
+ * @default PopoverTrigger.CLICK
50
+ */
51
+ trigger?: PopoverTrigger;
52
+ /**
53
+ * Preferred side and alignment. The panel flips and shifts to stay in the viewport; `AUTO*`
54
+ * picks the side with the most room. With `CONTEXT_MENU` it is relative to the pointer.
55
+ * @default Placement.BOTTOM_START
56
+ */
57
+ placement?: Placement;
58
+ /**
59
+ * Panel fill (surface step). Ignored when `hasSurface` is `false`.
60
+ * @default PopoverVariant.BASE
61
+ */
62
+ variant?: PopoverVariant;
63
+ /**
64
+ * Draw the panel's fill and hairline. `false` draws neither, for content that brings its own
65
+ * surface (a host-drawn panel); radius, focus ring and scrolling stay. Defaults to `true`, the
66
+ * one boolean that does: a panel normally has a surface.
67
+ * @default true
68
+ */
69
+ hasSurface?: boolean;
70
+ /**
71
+ * What the panel is to assistive tech, and the trigger's `aria-haspopup`. Menu and SelectInput
72
+ * set it; most callers leave it.
73
+ * @default PopoverRole.DIALOG
74
+ */
75
+ role?: PopoverRole;
76
+ /**
77
+ * Make the panel exactly as wide as the trigger (select-style). Ignored with `CONTEXT_MENU`.
78
+ * @default false
79
+ */
80
+ shouldMatchTriggerWidth?: boolean;
81
+ /**
82
+ * With `HOVER`: milliseconds the pointer must rest on the trigger before the panel opens.
83
+ * Ignored by the other triggers.
84
+ * @default 0
85
+ */
86
+ delay?: number;
87
+ /** Controlled open state. When set, Popover calls `onOpenChange` and lets the caller decide. */
88
+ isOpen?: boolean;
89
+ /**
90
+ * Initial open state while uncontrolled.
91
+ * @default false
92
+ */
93
+ defaultIsOpen?: boolean;
94
+ /** Called with the requested open state on trigger interaction, Escape, outside press and focus leaving the panel. */
95
+ onOpenChange?: (isOpen: boolean) => void;
96
+ /**
97
+ * Never opens. The trigger renders exactly as when enabled, without the popup ARIA.
98
+ * @default false
99
+ */
100
+ isDisabled?: boolean;
101
+ /** Accessible name of the panel. When omitted (and no `aria-labelledby` is passed), the panel is labelled by the trigger. */
102
+ ariaLabel?: string;
103
+ /** DOM id on the panel; the trigger's `aria-controls` target. @default a `useId()` value */
104
+ id?: string;
105
+ /** Any `data-*` attribute, forwarded to the panel. */
106
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
107
+ /** Extra class on the panel. */
108
+ className?: string;
109
+ /** Inline style on the panel; only for setting CSS custom properties. */
110
+ style?: CSSProperties;
111
+ }
112
+ /** An anchored panel for interactive content, opened from one trigger element. */
113
+ declare const Popover: import("react").ForwardRefExoticComponent<PopoverProps & import("react").RefAttributes<HTMLDivElement>>;
114
+ export default Popover;
@@ -0,0 +1,389 @@
1
+ import { Placement } from "../theme/enums.js";
2
+ import Text from "../text/Text.js";
3
+ import { SPACE } from "../theme/tokens/scales.js";
4
+ import { useControlledOpenState } from "../hooks/useControlledOpenState.js";
5
+ import { PortalContainerContext } from "../theme/useGalaxyTheme.js";
6
+ import { OverlayLayer, useOverlay } from "../overlay/useOverlay.js";
7
+ import Box from "../layout/Box.js";
8
+ import { OverlayNode } from "../overlay/OverlayProvider.js";
9
+ import ScaleFade from "../transform/ScaleFade.js";
10
+ /* empty css */
11
+ import { styled } from "@linaria/react";
12
+ import { cloneElement, forwardRef, useCallback, useContext, useId, useReducer, useRef, useState, version } from "react";
13
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
14
+ import { cx } from "@linaria/core";
15
+ import { FloatingFocusManager, FloatingNode, FloatingPortal, FloatingTree, autoPlacement, autoUpdate, flip, hide, offset, safePolygon, shift, size, useClick, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFocus, useHover, useInteractions, useMergeRefs, useRole } from "@floating-ui/react";
16
+ //#region src/overlays/Popover.tsx
17
+ /**
18
+ * The anchored panel: a surface that opens next to one trigger element, holds interactive content
19
+ * (a filter form, a hover card, a set of actions, a picker), and closes on Escape, an outside
20
+ * press, or when the trigger asks. The trigger is the single child: Popover clones it (adding the
21
+ * event handlers, the `ref` and the popup ARIA) instead of wrapping it, as Tooltip does.
22
+ *
23
+ * Positioning, interactions and non-modal focus come from `@floating-ui/react`. The computed
24
+ * `x`/`y` and the overlay stack's `zIndex` are written as custom properties on the positioner and
25
+ * read by static CSS. The panel enters and exits through `ScaleFade`, growing out of the trigger.
26
+ * Escape goes through the overlay stack (`useOverlay`), so it reaches only the topmost overlay.
27
+ *
28
+ * Popover has no slots and no padding: Dropdown, Menu, ContextMenu, SelectInput, DateInput and
29
+ * ColorInput are built on it and bring their own layout.
30
+ *
31
+ * SSR: only the trigger renders on the server. Nothing here touches `window` or `document` at
32
+ * module scope.
33
+ */
34
+ /** Panel fill: a surface step (Constitution V-A surface set, all four members). */
35
+ var PopoverVariant = /* @__PURE__ */ function(PopoverVariant) {
36
+ /** The canvas fill, `background.base`. The default (as in 1.x). */
37
+ PopoverVariant["BASE"] = "BASE";
38
+ /** A panel fill, `background.primary`. */
39
+ PopoverVariant["PRIMARY"] = "PRIMARY";
40
+ /** A raised fill, `background.secondary`. */
41
+ PopoverVariant["SECONDARY"] = "SECONDARY";
42
+ /** The most elevated fill, `background.tertiary`. */
43
+ PopoverVariant["TERTIARY"] = "TERTIARY";
44
+ return PopoverVariant;
45
+ }({});
46
+ /** What opens the panel (mode set, declared here; 1.x `DropdownTrigger` plus `CONTEXT_MENU`). */
47
+ var PopoverTrigger = /* @__PURE__ */ function(PopoverTrigger) {
48
+ /** Click, Enter or Space on the trigger toggles it. */
49
+ PopoverTrigger["CLICK"] = "CLICK";
50
+ /** The pointer rests on the trigger (after `delay`), or the trigger gets keyboard focus. */
51
+ PopoverTrigger["HOVER"] = "HOVER";
52
+ /** The trigger receives focus. */
53
+ PopoverTrigger["FOCUS"] = "FOCUS";
54
+ /** Right-click (or the keyboard context-menu key) on the region; opens at the pointer. */
55
+ PopoverTrigger["CONTEXT_MENU"] = "CONTEXT_MENU";
56
+ /** Nothing opens it; `isOpen` does (combobox hosts). */
57
+ PopoverTrigger["MANUAL"] = "MANUAL";
58
+ return PopoverTrigger;
59
+ }({});
60
+ /** The panel's role and the trigger's `aria-haspopup` (mode set, declared here). */
61
+ var PopoverRole = /* @__PURE__ */ function(PopoverRole) {
62
+ /** `role="dialog"`, `aria-haspopup="dialog"`. The default. */
63
+ PopoverRole["DIALOG"] = "DIALOG";
64
+ /** `role="menu"`, `aria-haspopup="menu"` (Menu, ContextMenu). */
65
+ PopoverRole["MENU"] = "MENU";
66
+ /** `role="listbox"`, `aria-haspopup="listbox"` (SelectInput). */
67
+ PopoverRole["LISTBOX"] = "LISTBOX";
68
+ return PopoverRole;
69
+ }({});
70
+ /** Gap between the trigger and the panel, and the viewport inset, resolved to numbers for the engine. */
71
+ var POPOVER_OFFSET_PX = Number.parseFloat(SPACE[4]);
72
+ var POPOVER_VIEWPORT_PADDING_PX = Number.parseFloat(SPACE[8]);
73
+ /** `Placement` → the engine: 12 sided placements, and `AUTO*` as `autoPlacement` (replacing `flip`). */
74
+ var POPOVER_PLACEMENT_TO_FLOATING_PLACEMENT_MAP = {
75
+ [Placement.TOP]: { placement: "top" },
76
+ [Placement.BOTTOM]: { placement: "bottom" },
77
+ [Placement.LEFT]: { placement: "left" },
78
+ [Placement.RIGHT]: { placement: "right" },
79
+ [Placement.TOP_START]: { placement: "top-start" },
80
+ [Placement.TOP_END]: { placement: "top-end" },
81
+ [Placement.BOTTOM_START]: { placement: "bottom-start" },
82
+ [Placement.BOTTOM_END]: { placement: "bottom-end" },
83
+ [Placement.LEFT_START]: { placement: "left-start" },
84
+ [Placement.LEFT_END]: { placement: "left-end" },
85
+ [Placement.RIGHT_START]: { placement: "right-start" },
86
+ [Placement.RIGHT_END]: { placement: "right-end" },
87
+ [Placement.AUTO]: { autoAlignment: void 0 },
88
+ [Placement.AUTO_START]: { autoAlignment: "start" },
89
+ [Placement.AUTO_END]: { autoAlignment: "end" }
90
+ };
91
+ /** The engine's resolved placement (after flip) → the matching sided `Placement` member. */
92
+ var FLOATING_PLACEMENT_TO_PLACEMENT_MAP = {
93
+ top: Placement.TOP,
94
+ bottom: Placement.BOTTOM,
95
+ left: Placement.LEFT,
96
+ right: Placement.RIGHT,
97
+ "top-start": Placement.TOP_START,
98
+ "top-end": Placement.TOP_END,
99
+ "bottom-start": Placement.BOTTOM_START,
100
+ "bottom-end": Placement.BOTTOM_END,
101
+ "left-start": Placement.LEFT_START,
102
+ "left-end": Placement.LEFT_END,
103
+ "right-start": Placement.RIGHT_START,
104
+ "right-end": Placement.RIGHT_END
105
+ };
106
+ /** `PopoverRole` → the engine's `useRole` role (logic, not CSS). */
107
+ var POPOVER_ROLE_TO_FLOATING_ROLE_MAP = {
108
+ ["DIALOG"]: "dialog",
109
+ ["MENU"]: "menu",
110
+ ["LISTBOX"]: "listbox"
111
+ };
112
+ /**
113
+ * The resolved placement → ScaleFade's `transform-origin` (the ScaleFade host contract), on the
114
+ * edge that faces the trigger. The `AUTO*` entries never resolve at runtime; the `Record` is
115
+ * exhaustive.
116
+ */
117
+ var POPOVER_PLACEMENT_TO_TRANSFORM_ORIGIN_MAP = {
118
+ [Placement.TOP]: "gx-Popover-Placement_TOP-p1yvjfp0",
119
+ [Placement.BOTTOM]: "gx-Popover-Placement_BOTTOM-pwlcd4n",
120
+ [Placement.LEFT]: "gx-Popover-Placement_LEFT-p18tkktd",
121
+ [Placement.RIGHT]: "gx-Popover-Placement_RIGHT-p4a12jv",
122
+ [Placement.TOP_START]: "gx-Popover-Placement_TOP_START-pjnmget",
123
+ [Placement.TOP_END]: "gx-Popover-Placement_TOP_END-p2hbin6",
124
+ [Placement.BOTTOM_START]: "gx-Popover-Placement_BOTTOM_START-pfmlxvc",
125
+ [Placement.BOTTOM_END]: "gx-Popover-Placement_BOTTOM_END-p1la2k9h",
126
+ [Placement.LEFT_START]: "gx-Popover-Placement_LEFT_START-pdik70u",
127
+ [Placement.LEFT_END]: "gx-Popover-Placement_LEFT_END-p1pbd719",
128
+ [Placement.RIGHT_START]: "gx-Popover-Placement_RIGHT_START-pb7wca0",
129
+ [Placement.RIGHT_END]: "gx-Popover-Placement_RIGHT_END-pc20w2h",
130
+ [Placement.AUTO]: "gx-Popover-Placement_AUTO-p10li10o",
131
+ [Placement.AUTO_START]: "gx-Popover-Placement_AUTO_START-p1mpbi15",
132
+ [Placement.AUTO_END]: "gx-Popover-Placement_AUTO_END-p10ruo79"
133
+ };
134
+ /** The floating element: positioned by the engine through custom properties. */
135
+ var Positioner = /*#__PURE__*/ styled("div")({
136
+ name: "Positioner",
137
+ class: "gx-Popover-Positioner-p1bj6g5f",
138
+ propsAsIs: false
139
+ });
140
+ /** The surface: fill, hairline, radius; no padding. */
141
+ var Panel = /*#__PURE__*/ styled("div")({
142
+ name: "Panel",
143
+ class: "gx-Popover-Panel-ps6yk73",
144
+ propsAsIs: false
145
+ });
146
+ /** Panel fill per surface step; the hairline comes from the panel. */
147
+ var POPOVER_VARIANT_TO_CSS_MAP = {
148
+ ["BASE"]: "gx-Popover-BASE-b2873uo",
149
+ ["PRIMARY"]: "gx-Popover-PRIMARY-pa776er",
150
+ ["SECONDARY"]: "gx-Popover-SECONDARY-s1afmqx4",
151
+ ["TERTIARY"]: "gx-Popover-TERTIARY-tdu5hku"
152
+ };
153
+ /** `hasSurface={false}`: no fill and a transparent hairline. Replaces the variant class. */
154
+ var NO_SURFACE_CSS = "gx-Popover-NO_SURFACE_CSS-n1lgpldq";
155
+ /** `shouldMatchTriggerWidth`: exactly as wide as the trigger. */
156
+ var MATCH_TRIGGER_WIDTH_CSS = "gx-Popover-MATCH_TRIGGER_WIDTH_CSS-mgy0n2s";
157
+ /** Closed (the exit, if any, still shows: ScaleFade's root sets its own visibility). */
158
+ var CLOSED_CSS = "gx-Popover-CLOSED_CSS-c17lvfn2";
159
+ /**
160
+ * Not positioned yet, or the trigger scrolled fully out of view. Clipped rather than
161
+ * `visibility: hidden`, because ScaleFade's root sets `visibility: visible` inline, which an
162
+ * ancestor's `hidden` cannot override; a clip hides the descendants and their hit area.
163
+ */
164
+ var REFERENCE_HIDDEN_CSS = "gx-Popover-REFERENCE_HIDDEN_CSS-r1gfapfk";
165
+ /** React 19 moved an element's `ref` into `props`; React 18 keeps it on the element. */
166
+ var IS_REACT_19 = Number.parseInt(version, 10) >= 19;
167
+ /** The child's own ref, read where the running React version keeps it, so neither version warns. */
168
+ function getElementRef(element) {
169
+ return (IS_REACT_19 ? element.props : element).ref;
170
+ }
171
+ /** Rounds to the device pixel grid so the translated panel's content stays sharp. */
172
+ function roundToDevicePixel(value) {
173
+ const ratio = typeof window === "undefined" ? 1 : window.devicePixelRatio || 1;
174
+ return Math.round(value * ratio) / ratio;
175
+ }
176
+ /** A zero-size point at viewport coordinates: the context menu's anchor. */
177
+ function pointReference(x, y) {
178
+ return { getBoundingClientRect: () => ({
179
+ x,
180
+ y,
181
+ width: 0,
182
+ height: 0,
183
+ top: y,
184
+ left: x,
185
+ right: x,
186
+ bottom: y
187
+ }) };
188
+ }
189
+ /** A control frame that positions popovers opened from an element inside it (Input's frame). */
190
+ var ANCHOR_SELECTOR = "[data-gx-anchor]";
191
+ /** The engine's trigger ARIA that Popover sets itself (`id`) or leaves to the host (`role`). */
192
+ var OWN_REFERENCE_KEYS = new Set([
193
+ "id",
194
+ "role",
195
+ "aria-controls"
196
+ ]);
197
+ /** One popover inside a `FloatingTree` (its own, or an enclosing popover's). */
198
+ function PopoverRoot({ children, body, trigger = "CLICK", placement = Placement.BOTTOM_START, variant = "BASE", hasSurface = true, role = "DIALOG", shouldMatchTriggerWidth = false, delay = 0, isOpen: isOpenProp, defaultIsOpen = false, onOpenChange, isDisabled = false, ariaLabel, id, className, style, panelRef, ...rest }) {
199
+ const nodeId = useFloatingNodeId();
200
+ const generatedPanelId = useId();
201
+ const panelId = id ?? generatedPanelId;
202
+ const generatedTriggerId = useId();
203
+ const portalContainer = useContext(PortalContainerContext);
204
+ const isEnabled = !isDisabled;
205
+ const isContextMenu = trigger === "CONTEXT_MENU";
206
+ const { isOpen, setOpen } = useControlledOpenState({
207
+ isOpen: isOpenProp,
208
+ defaultIsOpen,
209
+ onOpenChange
210
+ });
211
+ const isShown = isOpen && isEnabled;
212
+ const [hasOpened, setHasOpened] = useState(isShown);
213
+ if (isShown && !hasOpened) setHasOpened(true);
214
+ const [isOpenOnFirstRender] = useState(isShown);
215
+ const isShownRef = useRef(isShown);
216
+ isShownRef.current = isShown;
217
+ const setOpenRef = useRef(setOpen);
218
+ setOpenRef.current = setOpen;
219
+ /** Re-renders this popover, so `isShownRef` is reset to the real state after every request. */
220
+ const [, rerender] = useReducer((count) => count + 1, 0);
221
+ const handleOpenChange = useCallback((nextIsOpen) => {
222
+ if (nextIsOpen === isShownRef.current) return;
223
+ isShownRef.current = nextIsOpen;
224
+ setOpenRef.current(nextIsOpen);
225
+ rerender();
226
+ }, []);
227
+ const close = useCallback(() => handleOpenChange(false), [handleOpenChange]);
228
+ const { zIndex, overlayId } = useOverlay({
229
+ isOpen: isShown,
230
+ layer: OverlayLayer.DROPDOWN,
231
+ onEscape: close
232
+ });
233
+ const target = POPOVER_PLACEMENT_TO_FLOATING_PLACEMENT_MAP[placement];
234
+ const { refs, context, x, y, middlewareData, isPositioned, placement: resolved } = useFloating({
235
+ nodeId,
236
+ open: isShown,
237
+ onOpenChange: handleOpenChange,
238
+ placement: "placement" in target ? target.placement : "bottom",
239
+ strategy: "absolute",
240
+ whileElementsMounted: autoUpdate,
241
+ middleware: [
242
+ offset(POPOVER_OFFSET_PX),
243
+ "placement" in target ? flip() : autoPlacement({ alignment: target.autoAlignment }),
244
+ shift({ padding: POPOVER_VIEWPORT_PADDING_PX }),
245
+ size({
246
+ padding: POPOVER_VIEWPORT_PADDING_PX,
247
+ apply({ rects, availableHeight, elements }) {
248
+ elements.floating.style.setProperty("--gx-popover-trigger-width", `${rects.reference.width}px`);
249
+ elements.floating.style.setProperty("--gx-popover-available-height", `${Math.max(0, availableHeight)}px`);
250
+ }
251
+ }),
252
+ ...isContextMenu ? [] : [hide()]
253
+ ]
254
+ });
255
+ const { getReferenceProps, getFloatingProps } = useInteractions([
256
+ useClick(context, { enabled: isEnabled && trigger === "CLICK" }),
257
+ useHover(context, {
258
+ enabled: isEnabled && trigger === "HOVER",
259
+ mouseOnly: true,
260
+ delay: {
261
+ open: delay,
262
+ close: 0
263
+ },
264
+ handleClose: safePolygon()
265
+ }),
266
+ useFocus(context, {
267
+ enabled: isEnabled && (trigger === "HOVER" || trigger === "FOCUS"),
268
+ visibleOnly: trigger === "HOVER"
269
+ }),
270
+ useDismiss(context, {
271
+ enabled: isEnabled,
272
+ escapeKey: false,
273
+ outsidePress: true,
274
+ referencePress: false,
275
+ bubbles: { outsidePress: true }
276
+ }),
277
+ useRole(context, {
278
+ enabled: isEnabled && !isContextMenu,
279
+ role: POPOVER_ROLE_TO_FLOATING_ROLE_MAP[role]
280
+ })
281
+ ]);
282
+ const childProps = children.props;
283
+ const ownTriggerId = typeof childProps.id === "string" ? childProps.id : void 0;
284
+ /**
285
+ * Positions against the trigger's control frame when it sits in one (`[data-gx-anchor]`, e.g.
286
+ * the Input frame around its `<input>`); events, focus and ARIA stay on the trigger itself.
287
+ */
288
+ const anchorRef = useCallback((node) => {
289
+ if (node === null || isContextMenu) return;
290
+ const anchor = node.closest(ANCHOR_SELECTOR);
291
+ if (anchor !== null && anchor !== node) refs.setPositionReference(anchor);
292
+ }, [refs, isContextMenu]);
293
+ const triggerRef = useMergeRefs([
294
+ refs.setReference,
295
+ anchorRef,
296
+ getElementRef(children)
297
+ ]);
298
+ /** Right-click opens at the pointer; a keyboard context menu (0, 0) anchors to the region. */
299
+ const handleContextMenu = (event) => {
300
+ if (!isEnabled || event.defaultPrevented) return;
301
+ event.preventDefault();
302
+ const region = event.currentTarget;
303
+ refs.setPositionReference(event.clientX === 0 && event.clientY === 0 ? region : pointReference(event.clientX, event.clientY));
304
+ if (!isShownRef.current) handleOpenChange(true);
305
+ };
306
+ const engineProps = isEnabled ? { ...getReferenceProps() } : {};
307
+ if (isContextMenu) engineProps.onContextMenu = handleContextMenu;
308
+ const triggerProps = {};
309
+ for (const [key, value] of Object.entries(engineProps)) {
310
+ if (OWN_REFERENCE_KEYS.has(key)) continue;
311
+ const own = childProps[key];
312
+ triggerProps[key] = typeof value === "function" && typeof own === "function" ? (...args) => {
313
+ own(...args);
314
+ value(...args);
315
+ } : value;
316
+ }
317
+ if (isEnabled && !isContextMenu) triggerProps["aria-controls"] = isShown ? panelId : void 0;
318
+ const triggerElement = cloneElement(children, {
319
+ ...triggerProps,
320
+ ref: triggerRef,
321
+ id: ownTriggerId ?? generatedTriggerId
322
+ });
323
+ const labelledBy = context.elements.domReference?.id || ownTriggerId || generatedTriggerId;
324
+ const { "aria-labelledby": _engineLabelledBy, ...floatingProps } = getFloatingProps();
325
+ const labelling = rest["aria-labelledby"] !== void 0 ? {} : ariaLabel !== void 0 ? { "aria-label": ariaLabel } : { "aria-labelledby": labelledBy };
326
+ const resolvedPlacement = FLOATING_PLACEMENT_TO_PLACEMENT_MAP[resolved];
327
+ const isReferenceHidden = !isContextMenu && middlewareData.hide?.referenceHidden === true;
328
+ const position = {
329
+ "--gx-popover-x": `${roundToDevicePixel(x)}px`,
330
+ "--gx-popover-y": `${roundToDevicePixel(y)}px`,
331
+ "--gx-popover-z": zIndex
332
+ };
333
+ const content = typeof body === "string" || typeof body === "number" ? /* @__PURE__ */ jsx(Box, {
334
+ padding: 12,
335
+ children: /* @__PURE__ */ jsx(Text, { children: body })
336
+ }) : body;
337
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [triggerElement, /* @__PURE__ */ jsx(FloatingNode, {
338
+ id: nodeId,
339
+ children: hasOpened && /* @__PURE__ */ jsx(FloatingPortal, {
340
+ ...portalContainer === void 0 ? {} : { root: portalContainer },
341
+ children: /* @__PURE__ */ jsx(OverlayNode, {
342
+ overlayId,
343
+ children: /* @__PURE__ */ jsx(FloatingFocusManager, {
344
+ context,
345
+ disabled: !isShown,
346
+ modal: false,
347
+ initialFocus: trigger === "CLICK" || isContextMenu ? 0 : -1,
348
+ returnFocus: true,
349
+ closeOnFocusOut: trigger !== "MANUAL",
350
+ children: /* @__PURE__ */ jsx(Positioner, {
351
+ ref: isShown ? refs.setFloating : void 0,
352
+ className: cx(!isShown && CLOSED_CSS, isShown && (!isPositioned || isReferenceHidden) && REFERENCE_HIDDEN_CSS),
353
+ style: position,
354
+ children: /* @__PURE__ */ jsx(ScaleFade, {
355
+ isOpen: isShown,
356
+ shouldAnimateOnMount: !isOpenOnFirstRender,
357
+ className: POPOVER_PLACEMENT_TO_TRANSFORM_ORIGIN_MAP[resolvedPlacement],
358
+ children: /* @__PURE__ */ jsx(Panel, {
359
+ ...floatingProps,
360
+ ...labelling,
361
+ ...rest,
362
+ ref: panelRef,
363
+ id: panelId,
364
+ role: POPOVER_ROLE_TO_FLOATING_ROLE_MAP[role],
365
+ className: cx(hasSurface ? POPOVER_VARIANT_TO_CSS_MAP[variant] : NO_SURFACE_CSS, shouldMatchTriggerWidth && !isContextMenu && MATCH_TRIGGER_WIDTH_CSS, className),
366
+ style,
367
+ children: content
368
+ })
369
+ })
370
+ })
371
+ })
372
+ })
373
+ })
374
+ })] });
375
+ }
376
+ /** An anchored panel for interactive content, opened from one trigger element. */
377
+ var Popover = forwardRef(function Popover(props, ref) {
378
+ if (useFloatingParentNodeId() === null) return /* @__PURE__ */ jsx(FloatingTree, { children: /* @__PURE__ */ jsx(PopoverRoot, {
379
+ ...props,
380
+ panelRef: ref
381
+ }) });
382
+ return /* @__PURE__ */ jsx(PopoverRoot, {
383
+ ...props,
384
+ panelRef: ref
385
+ });
386
+ });
387
+ Popover.displayName = "Popover";
388
+ //#endregion
389
+ export { PopoverRole, PopoverTrigger, PopoverVariant, Popover as default };
@@ -1,9 +1,85 @@
1
- export interface CircleProps {
2
- /** Diameter. A number is px. */
3
- size: number | string;
4
- /** Fill color. @default theme.color.text.tertiary */
5
- hex?: string;
6
- }
7
- /** A filled dot. Used for status indicators and legend swatches. */
8
- declare const Circle: ({ size, hex }: CircleProps) => import("react").JSX.Element;
1
+ import { type AriaAttributes, type CSSProperties } from "react";
2
+ import type { Hex, PaletteColor } from "../theme/tokens/types.js";
3
+ /** Canonical rungs; the member names the rung of the text the dot sits beside. */
4
+ export declare enum CircleSize {
5
+ /** 6px, beside `caption` (12px line). */
6
+ X_SMALL = "X_SMALL",
7
+ /** 8px, beside `body_sm` (16px line). */
8
+ SMALL = "SMALL",
9
+ /** 10px, beside `body_md` (16px line). The default. */
10
+ MEDIUM = "MEDIUM",
11
+ /** 10px, beside `body_lg` (20px line). */
12
+ LARGE = "LARGE",
13
+ /** 12px, beside `body_lg` (20px line). */
14
+ X_LARGE = "X_LARGE"
15
+ }
16
+ /** Fill color role (Constitution V-A color set). Resolves to `color.text.*`. */
17
+ export declare enum CircleVariant {
18
+ /** `text.primary`. */
19
+ PRIMARY = "PRIMARY",
20
+ /** `text.secondary`. */
21
+ SECONDARY = "SECONDARY",
22
+ /** `text.tertiary`. The default (the 1.x fill). */
23
+ TERTIARY = "TERTIARY",
24
+ /** `text.disabled`. */
25
+ DISABLED = "DISABLED",
26
+ /** The parent's color (`currentColor`). */
27
+ INHERIT = "INHERIT",
28
+ /** Status: success, `text.success`. */
29
+ SUCCESS = "SUCCESS",
30
+ /** Status: warning, `text.warning`. */
31
+ WARNING = "WARNING",
32
+ /** Status: error, `text.error`. */
33
+ ERROR = "ERROR"
34
+ }
35
+ interface CircleBaseProps extends AriaAttributes {
36
+ /**
37
+ * The rung of the text the dot sits beside. Diameter 6 / 8 / 10 / 10 / 12px for `X_SMALL` …
38
+ * `X_LARGE`.
39
+ * @default CircleSize.MEDIUM
40
+ */
41
+ size?: CircleSize;
42
+ /** Raw fill color for data-driven colors (chart series, user categories). Discouraged otherwise: it does not follow the theme. Overrides `variant` and `color`. */
43
+ hex?: Hex;
44
+ /** Accessible name when the dot carries meaning on its own; without it the dot is decorative (`aria-hidden`). */
45
+ ariaLabel?: string;
46
+ /** DOM id on the root `<span>`. */
47
+ id?: string;
48
+ /** Any `data-*` attribute, forwarded to the root `<span>`. */
49
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
50
+ /** Extra class on the root `<span>`. */
51
+ className?: string;
52
+ /** Inline style on the root `<span>`; only for setting CSS custom properties. */
53
+ style?: CSSProperties;
54
+ }
55
+ /** A dot colored by meaning (`variant`), or the default `TERTIARY`. */
56
+ interface CircleVariantProps {
57
+ /**
58
+ * Fill color role: a neutral step or a status, following the theme. `INHERIT` fills
59
+ * with the parent's `currentColor`. Not with `color`.
60
+ * @default CircleVariant.TERTIARY
61
+ */
62
+ variant?: CircleVariant;
63
+ /** Categorical palette family. Not with `variant`. */
64
+ color?: undefined;
65
+ }
66
+ /** A dot colored by category (`color`). */
67
+ interface CircleColorProps {
68
+ /**
69
+ * Fill color role: a neutral step or a status, following the theme. `INHERIT` fills
70
+ * with the parent's `currentColor`. Not with `color`.
71
+ * @default CircleVariant.TERTIARY
72
+ */
73
+ variant?: undefined;
74
+ /**
75
+ * Categorical palette family (`"blue"`, `"violet"`, …): fills with `text.<family>`, the way a
76
+ * status variant renders. For categories (a series, a source type); meanings take `variant`.
77
+ * Not with `variant`.
78
+ */
79
+ color: PaletteColor;
80
+ }
81
+ /** Circle props. Passing both `variant` and `color` is a type error. */
82
+ export type CircleProps = CircleBaseProps & (CircleVariantProps | CircleColorProps);
83
+ /** A filled dot beside a label; its color is a role (`variant`), a category (`color`) or data (`hex`). */
84
+ declare const Circle: import("react").ForwardRefExoticComponent<CircleProps & import("react").RefAttributes<HTMLSpanElement>>;
9
85
  export default Circle;