@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
@@ -1,75 +1,92 @@
1
- import { type PropsWithChildren, type ReactNode } from "react";
2
- /** Surface treatment of the dropdown panel. */
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; the 1.x default). */
3
4
  export declare enum DropdownVariant {
4
- TRANSPARENT = "TRANSPARENT",
5
+ /** The canvas fill, `background.base`. The default (as in 1.x). */
5
6
  BASE = "BASE",
7
+ /** A panel fill, `background.primary`. */
6
8
  PRIMARY = "PRIMARY",
9
+ /** A raised fill, `background.secondary`. */
7
10
  SECONDARY = "SECONDARY",
11
+ /** The most elevated fill, `background.tertiary`. */
8
12
  TERTIARY = "TERTIARY"
9
13
  }
10
- /** Placement relative to the trigger. The `AUTO_*` values pick a side that fits. */
11
- export declare enum DropdownPosition {
12
- TOP = "top",
13
- BOTTOM = "bottom",
14
- LEFT = "left",
15
- RIGHT = "right",
16
- TOP_START = "top-start",
17
- TOP_END = "top-end",
18
- BOTTOM_START = "bottom-start",
19
- BOTTOM_END = "bottom-end",
20
- RIGHT_START = "right-start",
21
- RIGHT_END = "right-end",
22
- LEFT_START = "left-start",
23
- LEFT_END = "left-end",
24
- AUTO = "auto",
25
- AUTO_START = "auto-start",
26
- AUTO_END = "auto-end"
14
+ /** What a region's render function receives. */
15
+ export interface DropdownRenderArgs {
16
+ /** Closes the panel (calls `onOpenChange(false)`; a controlled caller decides). */
17
+ close: () => void;
27
18
  }
28
- /** What opens the panel. `MANUAL` hands control entirely to `isOpen`. */
29
- export declare enum DropdownTrigger {
30
- CLICK = "click",
31
- HOVER = "hover",
32
- FOCUS = "focus",
33
- MANUAL = "manual"
34
- }
35
- export interface DropdownProps {
36
- /** @default DropdownVariant.BASE */
19
+ /** Content of a Dropdown region, or a function of `{ close }` that returns it (1.x `contentWhenDropdown`). */
20
+ export type DropdownSlot = ReactNode | ((args: DropdownRenderArgs) => ReactNode);
21
+ export interface DropdownProps extends AriaAttributes {
22
+ /**
23
+ * The trigger: one element that forwards its `ref` and spreads props to a DOM element. Dropdown
24
+ * clones it (through Popover) and does not wrap it. Clicking it, or Enter / Space on it, toggles
25
+ * the panel.
26
+ */
27
+ children: ReactElement;
28
+ /**
29
+ * Content pinned above the body, with a hairline under it: a title, a search field, tabs. A
30
+ * string or number renders as `Text`. A function receives `{ close }`.
31
+ */
32
+ header?: DropdownSlot;
33
+ /**
34
+ * The panel content. It scrolls when the panel is capped by the room on screen. A string or
35
+ * number renders as `Text`. A function receives `{ close }`.
36
+ */
37
+ body: DropdownSlot;
38
+ /**
39
+ * Content pinned below the body, with a hairline above it: Apply / Reset buttons, a hint. A
40
+ * string or number renders as `Text`. A function receives `{ close }`.
41
+ */
42
+ footer?: DropdownSlot;
43
+ /**
44
+ * Panel fill (surface step). Ignored when `hasSurface` is `false`.
45
+ * @default DropdownVariant.BASE
46
+ */
37
47
  variant?: DropdownVariant;
38
- /** Pinned above the scrolling body. */
39
- header?: ReactNode;
40
- /** Panel content. */
41
- body: ReactNode;
42
- /** Pinned below the scrolling body. */
43
- footer?: ReactNode;
44
- /** @default DropdownPosition.BOTTOM_START */
45
- position?: DropdownPosition;
46
- /** `[skidding, distance]` in px from the trigger. @default [0, 6] */
47
- offset?: [number, number];
48
- /** @default DropdownTrigger.CLICK */
49
- trigger?: DropdownTrigger;
50
- /** A number is px. */
51
- width?: number | string;
52
- /** Controlled open state. Pass it together with `onClose`. */
48
+ /**
49
+ * Draw the panel's fill and outer hairline (Popover's `hasSurface`). `false` draws neither, for
50
+ * content that brings its own surface; the region dividers and insets stay. Defaults to `true`.
51
+ * @default true
52
+ */
53
+ hasSurface?: boolean;
54
+ /**
55
+ * Preferred side and alignment. The panel flips and shifts to stay in the viewport; `AUTO*`
56
+ * picks the side with the most room.
57
+ * @default Placement.BOTTOM_START
58
+ */
59
+ placement?: Placement;
60
+ /**
61
+ * Make the panel exactly as wide as the trigger.
62
+ * @default false
63
+ */
64
+ shouldMatchTriggerWidth?: boolean;
65
+ /** Controlled open state. When set, Dropdown calls `onOpenChange` and lets the caller decide. */
53
66
  isOpen?: boolean;
54
- /** Called when the panel dismisses itself — Escape, or a click outside. */
55
- onClose?: () => void;
56
- minWidth?: number | string;
57
- /** Also clips overflowing content. A number is px. */
58
- maxWidth?: number | string;
59
- /** Stretch the trigger wrapper to the parent's width. */
60
- fillWidth?: boolean;
61
- /** Drop the 4px inset — for panels that host their own layout. */
62
- noPadding?: boolean;
63
- /** Drop the hairline border. */
64
- noBorder?: boolean;
65
- /** Render children bare, with no dropdown at all. */
67
+ /**
68
+ * Initial open state while uncontrolled.
69
+ * @default false
70
+ */
71
+ defaultIsOpen?: boolean;
72
+ /** Called with the requested open state on trigger click, Escape, outside press, focus leaving the panel, and `close()`. */
73
+ onOpenChange?: (isOpen: boolean) => void;
74
+ /**
75
+ * Never opens. The trigger renders exactly as when enabled, without the popup ARIA.
76
+ * @default false
77
+ */
66
78
  isDisabled?: boolean;
79
+ /** Accessible name of the panel. When omitted (and no `aria-labelledby` is passed), the panel is labelled by the trigger. */
80
+ ariaLabel?: string;
81
+ /** DOM id on the panel; the trigger's `aria-controls` target. @default a `useId()` value */
82
+ id?: string;
83
+ /** Any `data-*` attribute, forwarded to the panel. */
84
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
85
+ /** Extra class on the panel. */
86
+ className?: string;
87
+ /** Inline style on the panel; only for setting CSS custom properties. */
88
+ style?: CSSProperties;
67
89
  }
68
- /**
69
- * A panel anchored to a trigger. Children are the trigger.
70
- *
71
- * Uncontrolled by default. Pass `isOpen` *and* `onClose` to drive it yourself —
72
- * useful when a selection inside the body should close it.
73
- */
74
- declare const Dropdown: ({ children, variant, header, body, footer, position, offset, minWidth, maxWidth, isOpen: controlledIsOpen, onClose, noPadding, noBorder, fillWidth, isDisabled, }: PropsWithChildren<DropdownProps>) => import("react").JSX.Element;
90
+ /** A click-opened anchored panel with a pinned header, a scrolling body and a pinned footer. */
91
+ declare const Dropdown: import("react").ForwardRefExoticComponent<DropdownProps & import("react").RefAttributes<HTMLDivElement>>;
75
92
  export default Dropdown;
@@ -1,146 +1,144 @@
1
- import { withTheme } from "../theme/GalaxyTheme.js";
2
- import { getCssSizeValue } from "../utils/linaria.js";
1
+ import { Placement } from "../theme/enums.js";
2
+ import Text, { TextSize, TextVariant, TextWeight } from "../text/Text.js";
3
+ import { useControlledOpenState } from "../hooks/useControlledOpenState.js";
4
+ import Box from "../layout/Box.js";
5
+ import Divider from "../layout/Divider.js";
6
+ import ScrollArea from "../layout/ScrollArea.js";
7
+ import Popover, { PopoverRole, PopoverTrigger, PopoverVariant } from "../overlays/Popover.js";
3
8
  /* empty css */
4
9
  import { styled } from "@linaria/react";
5
- import { match } from "ts-pattern";
6
- import { useState } from "react";
7
- import { jsx, jsxs } from "react/jsx-runtime";
8
- import Tippy from "@tippyjs/react";
10
+ import { forwardRef, useCallback, useMemo } from "react";
11
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
12
  //#region src/dropdown/Dropdown.tsx
10
- /** Surface treatment of the dropdown panel. */
13
+ /**
14
+ * The click-opened anchored panel with chrome: an optional pinned `header`, a scrolling `body` and
15
+ * an optional pinned `footer`, separated by hairlines. A thin preset over `Popover` (`CLICK`,
16
+ * `DIALOG`): Popover places, stacks, animates and dismisses the panel and manages focus; Dropdown
17
+ * adds the three regions, their 4px inset, and a `close` function region content can call.
18
+ *
19
+ * The trigger is the single child, cloned (by Popover) and not wrapped. A command list with arrow
20
+ * keys is a `Menu`; a bare panel, or one opened by hover, focus or right-click, is a `Popover`.
21
+ *
22
+ * SSR: only the trigger renders on the server. Nothing here touches `window` or `document` at
23
+ * module scope.
24
+ */
25
+ /** Panel fill: a surface step (Constitution V-A surface set, all four members; the 1.x default). */
11
26
  var DropdownVariant = /* @__PURE__ */ function(DropdownVariant) {
12
- DropdownVariant["TRANSPARENT"] = "TRANSPARENT";
27
+ /** The canvas fill, `background.base`. The default (as in 1.x). */
13
28
  DropdownVariant["BASE"] = "BASE";
29
+ /** A panel fill, `background.primary`. */
14
30
  DropdownVariant["PRIMARY"] = "PRIMARY";
31
+ /** A raised fill, `background.secondary`. */
15
32
  DropdownVariant["SECONDARY"] = "SECONDARY";
33
+ /** The most elevated fill, `background.tertiary`. */
16
34
  DropdownVariant["TERTIARY"] = "TERTIARY";
17
35
  return DropdownVariant;
18
36
  }({});
19
- /** Placement relative to the trigger. The `AUTO_*` values pick a side that fits. */
20
- var DropdownPosition = /* @__PURE__ */ function(DropdownPosition) {
21
- DropdownPosition["TOP"] = "top";
22
- DropdownPosition["BOTTOM"] = "bottom";
23
- DropdownPosition["LEFT"] = "left";
24
- DropdownPosition["RIGHT"] = "right";
25
- DropdownPosition["TOP_START"] = "top-start";
26
- DropdownPosition["TOP_END"] = "top-end";
27
- DropdownPosition["BOTTOM_START"] = "bottom-start";
28
- DropdownPosition["BOTTOM_END"] = "bottom-end";
29
- DropdownPosition["RIGHT_START"] = "right-start";
30
- DropdownPosition["RIGHT_END"] = "right-end";
31
- DropdownPosition["LEFT_START"] = "left-start";
32
- DropdownPosition["LEFT_END"] = "left-end";
33
- DropdownPosition["AUTO"] = "auto";
34
- DropdownPosition["AUTO_START"] = "auto-start";
35
- DropdownPosition["AUTO_END"] = "auto-end";
36
- return DropdownPosition;
37
- }({});
38
- /** What opens the panel. `MANUAL` hands control entirely to `isOpen`. */
39
- var DropdownTrigger = /* @__PURE__ */ function(DropdownTrigger) {
40
- DropdownTrigger["CLICK"] = "click";
41
- DropdownTrigger["HOVER"] = "hover";
42
- DropdownTrigger["FOCUS"] = "focus";
43
- DropdownTrigger["MANUAL"] = "manual";
44
- return DropdownTrigger;
45
- }({});
46
- var _exp = () => ({ $fillWidth }) => $fillWidth ? "100%" : "fit-content";
47
- var _exp2 = () => ({ $minWidth }) => getCssSizeValue($minWidth, "fit-content");
48
- var _exp3 = () => ({ $maxWidth }) => getCssSizeValue($maxWidth, "none");
49
- var _exp4 = () => ({ $maxWidth }) => $maxWidth ? "hidden" : "visible";
50
- var _exp5 = () => ({ $noPadding }) => $noPadding ? "0" : "4px";
51
- var _exp6 = () => ({ $variant, theme }) => {
52
- return match($variant).returnType().with("TRANSPARENT", () => "transparent").with("BASE", () => theme.color.background.base).with("PRIMARY", () => theme.color.background.primary).with("SECONDARY", () => theme.color.background.secondary).with("TERTIARY", () => theme.color.background.tertiary).exhaustive();
37
+ /** A string region's type: a medium small title, body copy, a quiet small hint. */
38
+ var DROPDOWN_REGION_TO_TEXT_PROPS_MAP = {
39
+ header: {
40
+ size: TextSize.BODY_SM,
41
+ weight: TextWeight.MEDIUM,
42
+ variant: TextVariant.PRIMARY
43
+ },
44
+ body: {
45
+ size: TextSize.BODY_MD,
46
+ weight: TextWeight.REGULAR,
47
+ variant: TextVariant.PRIMARY
48
+ },
49
+ footer: {
50
+ size: TextSize.BODY_SM,
51
+ weight: TextWeight.REGULAR,
52
+ variant: TextVariant.TERTIARY
53
+ }
53
54
  };
54
- var _exp7 = () => ({ $noBorder, $variant, theme }) => {
55
- if ($noBorder) return "none";
56
- return match($variant).returnType().with("TRANSPARENT", () => "transparent").with("BASE", () => `0.5px solid ${theme.color.border.primary}`).with("PRIMARY", () => `0.5px solid ${theme.color.border.primary}`).with("SECONDARY", () => `0.5px solid ${theme.color.border.primary}`).with("TERTIARY", () => `0.5px solid ${theme.color.border.primary}`).exhaustive();
55
+ /** Identity over the four shared surface steps; the fill CSS is Popover's. */
56
+ var DROPDOWN_VARIANT_TO_POPOVER_VARIANT_MAP = {
57
+ ["BASE"]: PopoverVariant.BASE,
58
+ ["PRIMARY"]: PopoverVariant.PRIMARY,
59
+ ["SECONDARY"]: PopoverVariant.SECONDARY,
60
+ ["TERTIARY"]: PopoverVariant.TERTIARY
57
61
  };
58
- var DropdownContent = withTheme(/*#__PURE__*/ styled("span")({
59
- name: "DropdownContent",
60
- class: "d1bgy4cf",
61
- propsAsIs: false,
62
- vars: {
63
- "d1bgy4cf-0": [_exp()],
64
- "d1bgy4cf-1": [_exp2()],
65
- "d1bgy4cf-2": [_exp3()],
66
- "d1bgy4cf-3": [_exp4()],
67
- "d1bgy4cf-4": [_exp5()],
68
- "d1bgy4cf-5": [_exp6()],
69
- "d1bgy4cf-6": [_exp7()]
70
- }
71
- }));
72
- var _exp8 = () => ({ $isOpen }) => $isOpen ? 1001 : "auto";
73
- var _exp9 = () => ({ $fillWidth }) => $fillWidth ? "block" : "inline-block";
74
- var _exp0 = () => ({ $fillWidth }) => $fillWidth ? "100%" : "auto";
75
- var DropdownTriggerWrapper = /*#__PURE__*/ styled("span")({
76
- name: "DropdownTriggerWrapper",
77
- class: "dfdzgmt",
78
- propsAsIs: false,
79
- vars: {
80
- "dfdzgmt-0": [_exp8()],
81
- "dfdzgmt-1": [_exp9()],
82
- "dfdzgmt-2": [_exp0()]
83
- }
84
- });
85
62
  /**
86
- * A panel anchored to a trigger. Children are the trigger.
87
- *
88
- * Uncontrolled by default. Pass `isOpen` *and* `onClose` to drive it yourself —
89
- * useful when a selection inside the body should close it.
63
+ * The panel is `border-box` with a 0.5px hairline top and bottom, so its content box is 1px
64
+ * shorter than the room Popover reports.
90
65
  */
91
- var Dropdown = ({ children, variant = "BASE", header, body, footer, position = "bottom-start", offset = [0, 6], minWidth, maxWidth, isOpen: controlledIsOpen, onClose, noPadding = false, noBorder = false, fillWidth = false, isDisabled = false }) => {
92
- const [internalIsOpen, setInternalIsOpen] = useState(false);
93
- const isControlled = controlledIsOpen !== void 0;
94
- const visible = isControlled ? controlledIsOpen : internalIsOpen;
95
- const handleVisibilityChange = (isVisible) => {
96
- if (!isControlled) setInternalIsOpen(isVisible);
97
- if (!isVisible && onClose) onClose();
98
- };
99
- const handleClick = () => {
100
- if (!isControlled) setInternalIsOpen(!internalIsOpen);
101
- };
102
- const content = /* @__PURE__ */ jsxs(DropdownContent, {
103
- $variant: variant,
104
- $minWidth: minWidth,
105
- $maxWidth: maxWidth,
106
- $noPadding: noPadding,
107
- $noBorder: noBorder,
108
- $fillWidth: fillWidth,
109
- children: [
110
- header,
111
- body,
112
- footer
113
- ]
114
- });
115
- const handleClickOutside = (instance, event) => {
116
- const clickedTippyRoot = event.target.closest("[data-tippy-root]");
117
- if (clickedTippyRoot) {
118
- const allTippyRoots = Array.from(document.querySelectorAll("[data-tippy-root]"));
119
- const currentIndex = allTippyRoots.indexOf(instance.popper);
120
- const clickedIndex = allTippyRoots.indexOf(clickedTippyRoot);
121
- if (clickedIndex > currentIndex && clickedIndex >= 0 && currentIndex >= 0) return;
122
- }
123
- handleVisibilityChange(false);
124
- };
125
- return /* @__PURE__ */ jsx(Tippy, {
126
- content,
127
- visible,
128
- onClickOutside: handleClickOutside,
129
- placement: position,
130
- offset,
131
- interactive: true,
132
- duration: 0,
133
- appendTo: () => document.body,
134
- disabled: isDisabled,
135
- zIndex: 1e4,
136
- maxWidth: "none",
137
- children: /* @__PURE__ */ jsx(DropdownTriggerWrapper, {
138
- onClick: handleClick,
139
- $isOpen: visible,
140
- $fillWidth: fillWidth,
141
- children
66
+ /** The region column, capped to the room on screen so only the body scrolls. */
67
+ var Layout = /*#__PURE__*/ styled("div")({
68
+ name: "Layout",
69
+ class: "gx-Dropdown-Layout-l1bgy4cf",
70
+ propsAsIs: false
71
+ });
72
+ /** The pinned header region. */
73
+ var Header = /*#__PURE__*/ styled("div")({
74
+ name: "Header",
75
+ class: "gx-Dropdown-Header-hfdzgmt",
76
+ propsAsIs: false
77
+ });
78
+ /** The pinned footer region. */
79
+ var Footer = /*#__PURE__*/ styled("div")({
80
+ name: "Footer",
81
+ class: "gx-Dropdown-Footer-f1ffkeig",
82
+ propsAsIs: false
83
+ });
84
+ /** The body's ScrollArea takes the height left under the cap, and scrolls. */
85
+ var BODY_CSS = "gx-Dropdown-BODY_CSS-b1vl6aed";
86
+ /** `undefined`, `null` and `false` leave a region out. */
87
+ function isPresent(slot) {
88
+ return slot !== void 0 && slot !== null && slot !== false;
89
+ }
90
+ /** A region's content: a function is called with `{ close }`; a string or number becomes `Text`. */
91
+ function renderRegion(slot, region, args) {
92
+ const value = typeof slot === "function" ? slot(args) : slot;
93
+ if (typeof value === "string" || typeof value === "number") return /* @__PURE__ */ jsx(Box, {
94
+ padding: 8,
95
+ children: /* @__PURE__ */ jsx(Text, {
96
+ ...DROPDOWN_REGION_TO_TEXT_PROPS_MAP[region],
97
+ children: value
142
98
  })
143
99
  });
144
- };
100
+ return value;
101
+ }
102
+ /** A click-opened anchored panel with a pinned header, a scrolling body and a pinned footer. */
103
+ var Dropdown = forwardRef(function Dropdown({ children, header, body, footer, variant = "BASE", hasSurface = true, placement = Placement.BOTTOM_START, shouldMatchTriggerWidth = false, isOpen: isOpenProp, defaultIsOpen = false, onOpenChange, isDisabled = false, ariaLabel, id, className, style, ...rest }, ref) {
104
+ const { isOpen, setOpen } = useControlledOpenState({
105
+ isOpen: isOpenProp,
106
+ defaultIsOpen,
107
+ onOpenChange
108
+ });
109
+ const close = useCallback(() => setOpen(false), [setOpen]);
110
+ const args = useMemo(() => ({ close }), [close]);
111
+ const panel = /* @__PURE__ */ jsxs(Layout, { children: [
112
+ isPresent(header) && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Header, { children: renderRegion(header, "header", args) }), /* @__PURE__ */ jsx(Divider, {})] }),
113
+ /* @__PURE__ */ jsx(ScrollArea, {
114
+ className: BODY_CSS,
115
+ children: /* @__PURE__ */ jsx(Box, {
116
+ padding: 4,
117
+ children: renderRegion(body, "body", args)
118
+ })
119
+ }),
120
+ isPresent(footer) && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Divider, {}), /* @__PURE__ */ jsx(Footer, { children: renderRegion(footer, "footer", args) })] })
121
+ ] });
122
+ return /* @__PURE__ */ jsx(Popover, {
123
+ ...rest,
124
+ ref,
125
+ trigger: PopoverTrigger.CLICK,
126
+ role: PopoverRole.DIALOG,
127
+ variant: DROPDOWN_VARIANT_TO_POPOVER_VARIANT_MAP[variant],
128
+ hasSurface,
129
+ placement,
130
+ shouldMatchTriggerWidth,
131
+ isOpen,
132
+ onOpenChange: setOpen,
133
+ isDisabled,
134
+ ...ariaLabel === void 0 ? {} : { ariaLabel },
135
+ ...id === void 0 ? {} : { id },
136
+ ...className === void 0 ? {} : { className },
137
+ ...style === void 0 ? {} : { style },
138
+ body: panel,
139
+ children
140
+ });
141
+ });
142
+ Dropdown.displayName = "Dropdown";
145
143
  //#endregion
146
- export { DropdownPosition, DropdownTrigger, DropdownVariant, Dropdown as default };
144
+ export { DropdownVariant, Dropdown as default };
@@ -1,49 +1,128 @@
1
- import { Extension } from "@codemirror/state";
2
- import { LanguageName } from "@uiw/codemirror-extensions-langs";
3
- import { GalaxyTheme, Theme } from "../theme/types";
4
- /** Background treatment of the editor surface. */
1
+ /**
2
+ * The multi-line code editing field: a SQL query, a JSON or YAML config, a Python transform. It is
3
+ * CodeMirror 6 in DLS tokens: the input frame (surface `variant`, hairline, error, read-only; the
4
+ * frame stays at rest on hover and focus, where the caret and selection show focus), mono type, syntax colors that match `CodeBlock`, themed gutters, search and
5
+ * completion popups. It holds a string with `value` / `defaultValue` / `onChange`, calls
6
+ * `onExecute` on Cmd/Ctrl+Enter, and takes extra CodeMirror `extensions`.
7
+ *
8
+ * Opt-in subpath (`@galaxy-io/dls/editor/*`): it imports only the optional CodeMirror peers, and
9
+ * every CodeMirror call happens inside functions and hooks, so nothing runs at module scope and
10
+ * wyw never evaluates CodeMirror while extracting CSS. Grammars load lazily after mount.
11
+ *
12
+ * Replaces 1.x `CodeEditor` (`content` → `value`, `lang` → `language`, `noLineNumbers` →
13
+ * `hasLineNumbers`, `customExtensions` → `extensions`, `noBorder` → `isGhost`; `borderRadius`,
14
+ * `padding` and the theme helper exports are gone).
15
+ */
16
+ import type { Extension } from "@codemirror/state";
17
+ import { type AriaAttributes, type CSSProperties } from "react";
18
+ /** Resting fill of the editor frame (Constitution V-A surface set; 1.x members). 1.x `noBorder` is `isGhost`. */
5
19
  export declare enum CodeEditorVariant {
20
+ /** `background.base`. */
6
21
  BASE = "BASE",
22
+ /** `background.primary`. The default. */
7
23
  PRIMARY = "PRIMARY",
24
+ /** `background.secondary`. */
8
25
  SECONDARY = "SECONDARY",
26
+ /** `background.tertiary`. */
9
27
  TERTIARY = "TERTIARY"
10
28
  }
11
- /** A CodeMirror language name — "sql", "json", "python", … */
12
- export type CodeEditorLanguage = LanguageName;
13
- export type CodeEditorProps = {
14
- /** Editor contents. Controlled — pair it with `onChange`. */
15
- content: string;
16
- /** Shown when `content` is empty. */
17
- placeholder?: string;
18
- /** Syntax highlighting mode. Plain text when unset. */
19
- lang?: CodeEditorLanguage;
20
- /** Render contents without allowing edits. */
21
- isReadOnly?: boolean;
22
- /** Hide the line-number gutter. */
23
- noLineNumbers?: boolean;
24
- /** Extra CodeMirror extensions — decorations, keymaps, autocomplete sources. */
25
- customExtensions?: Extension[];
26
- /** Called with the full document on every keystroke. */
29
+ /** Grammar used to highlight and edit the document. The `CodeBlockLanguage` set minus GRAPHQL. */
30
+ export declare enum CodeEditorLanguage {
31
+ /** No grammar: unhighlighted text. */
32
+ PLAIN = "PLAIN",
33
+ /** Shell scripts and commands. */
34
+ BASH = "BASH",
35
+ /** CSS. */
36
+ CSS = "CSS",
37
+ /** Go. */
38
+ GO = "GO",
39
+ /** HTML. */
40
+ HTML = "HTML",
41
+ /** JavaScript. */
42
+ JAVASCRIPT = "JAVASCRIPT",
43
+ /** JSON. */
44
+ JSON = "JSON",
45
+ /** JavaScript with JSX. */
46
+ JSX = "JSX",
47
+ /** Markdown. */
48
+ MARKDOWN = "MARKDOWN",
49
+ /** Protocol Buffers. */
50
+ PROTOBUF = "PROTOBUF",
51
+ /** Python. */
52
+ PYTHON = "PYTHON",
53
+ /** Rust. */
54
+ RUST = "RUST",
55
+ /** SQL. */
56
+ SQL = "SQL",
57
+ /** TOML. */
58
+ TOML = "TOML",
59
+ /** TypeScript with JSX. */
60
+ TSX = "TSX",
61
+ /** TypeScript. */
62
+ TYPESCRIPT = "TYPESCRIPT",
63
+ /** YAML. */
64
+ YAML = "YAML"
65
+ }
66
+ export interface CodeEditorProps extends AriaAttributes {
67
+ /** Controlled document. Pass it with `onChange`. */
68
+ value?: string;
69
+ /**
70
+ * Initial document while uncontrolled.
71
+ * @default ""
72
+ */
73
+ defaultValue?: string;
74
+ /** Called with the whole document after every edit. */
27
75
  onChange?: (value: string) => void;
28
- /** Called on Cmd/Ctrl+Enter — the "run this" shortcut. */
29
- onExecute?: () => void;
30
- /** A number is px. */
31
- borderRadius?: string | number;
32
- /** Drop the hairline border. */
33
- noBorder?: boolean;
34
- /** Inset around the content area. A number is px. */
35
- padding?: React.CSSProperties["padding"];
36
- /** @default CodeEditorVariant.PRIMARY */
76
+ /** Called with the document on Cmd+Enter (macOS) or Ctrl+Enter, the "run this" shortcut. Not called while read-only. */
77
+ onExecute?: (value: string) => void;
78
+ /**
79
+ * Grammar for highlighting, indentation and bracket rules. `PLAIN` edits unhighlighted text.
80
+ * @default CodeEditorLanguage.PLAIN
81
+ */
82
+ language?: CodeEditorLanguage;
83
+ /** Hint shown while the document is empty. It is never the label. */
84
+ placeholder?: string;
85
+ /**
86
+ * Resting fill of the frame, from the surface set. Ignored with `isGhost`.
87
+ * @default CodeEditorVariant.PRIMARY
88
+ */
37
89
  variant?: CodeEditorVariant;
38
- };
39
- export declare function createSearchPanelThemeExtension(theme: Theme): Extension;
40
- export declare function createCodeMirrorThemeExtension(theme: Theme, activeTheme: Exclude<GalaxyTheme, GalaxyTheme.SYSTEM>, variant: CodeEditorVariant, isReadOnly?: boolean): Extension;
41
- /**
42
- * A CodeMirror 6 editor themed to match DLS — Berkeley Mono, theme-aware syntax
43
- * colors, hairline border.
44
- *
45
- * Controlled: `content` is the document and `onChange` fires per keystroke.
46
- * Extend it through `customExtensions` rather than forking the component.
47
- */
48
- declare const CodeEditor: ({ content, placeholder, lang, customExtensions, onChange, onExecute, borderRadius, noBorder, isReadOnly, noLineNumbers, padding, variant, }: CodeEditorProps) => import("react").JSX.Element;
90
+ /**
91
+ * Ghost frame: no fill and no hairline, on hover and focus too (only an error draws the
92
+ * hairline). 1.x `noBorder`. For an editor set into a panel that already frames it. The
93
+ * line-number gutter is painted `background.primary` so scrolled code passes under it; on another
94
+ * surface, set `--gx-code-editor-fill` (through `style`) to that surface.
95
+ * @default false
96
+ */
97
+ isGhost?: boolean;
98
+ /**
99
+ * Show the line-number gutter (with fold markers).
100
+ * @default false
101
+ */
102
+ hasLineNumbers?: boolean;
103
+ /**
104
+ * Focusable, selectable and searchable, but not editable.
105
+ * @default false
106
+ */
107
+ isReadOnly?: boolean;
108
+ /**
109
+ * Error border and `aria-invalid`. Inside a `Field` with an `error`, it is on automatically.
110
+ * @default false
111
+ */
112
+ isError?: boolean;
113
+ /** Extra CodeMirror extensions (completion sources, decorations, keymaps, other grammars), applied after the DLS ones. Memoize the array. */
114
+ extensions?: Extension[];
115
+ /** Accessible name when there is no visible label (no wrapping `Field` with a `label`). */
116
+ ariaLabel?: string;
117
+ /** DOM id of the editable content element. A wrapping `Field`'s id wins. */
118
+ id?: string;
119
+ /** Any `data-*` attribute, forwarded to the root `<div>` (the frame). */
120
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
121
+ /** Extra class on the root (the frame). */
122
+ className?: string;
123
+ /** Inline style on the root; only for setting CSS custom properties. */
124
+ style?: CSSProperties;
125
+ }
126
+ /** The multi-line code editor: CodeMirror 6 in the DLS input frame. */
127
+ declare const CodeEditor: import("react").ForwardRefExoticComponent<CodeEditorProps & import("react").RefAttributes<HTMLDivElement>>;
49
128
  export default CodeEditor;