@galaxy-io/dls 1.6.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/README.md +47 -50
  2. package/biome/index.json +74 -0
  3. package/biome/plugins/no-hex-literal.grit +20 -0
  4. package/biome/plugins/no-inline-style.grit +13 -0
  5. package/biome/plugins/no-margin.grit +9 -0
  6. package/biome/plugins/warn/no-hex-literal.grit +23 -0
  7. package/biome/plugins/warn/no-inline-style.grit +13 -0
  8. package/biome/plugins/warn/no-margin.grit +9 -0
  9. package/dist/a11y/FocusScope.d.ts +44 -0
  10. package/dist/a11y/FocusScope.js +229 -0
  11. package/dist/a11y/VisuallyHidden.d.ts +21 -0
  12. package/dist/a11y/VisuallyHidden.js +30 -0
  13. package/dist/avatar/Avatar.d.ts +56 -14
  14. package/dist/avatar/Avatar.js +250 -96
  15. package/dist/avatar/AvatarGroup.d.ts +43 -0
  16. package/dist/avatar/AvatarGroup.js +153 -0
  17. package/dist/backgrounds/GridBackground.d.ts +48 -0
  18. package/dist/backgrounds/GridBackground.js +146 -0
  19. package/dist/beacons/Beacon.d.ts +86 -22
  20. package/dist/beacons/Beacon.js +170 -47
  21. package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
  22. package/dist/brand/GalaxyFilamentWordmark.js +39 -0
  23. package/dist/brand/GalaxyLogomark.d.ts +26 -0
  24. package/dist/brand/GalaxyLogomark.js +41 -0
  25. package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
  26. package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
  27. package/dist/brand/GalaxyWordmark.d.ts +30 -0
  28. package/dist/brand/GalaxyWordmark.js +63 -0
  29. package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
  30. package/dist/brand/brandMark.d.ts +26 -0
  31. package/dist/brand/brandMark.js +35 -0
  32. package/dist/buttons/Button.d.ts +148 -59
  33. package/dist/buttons/Button.js +437 -227
  34. package/dist/buttons/ButtonGroup.d.ts +38 -0
  35. package/dist/buttons/ButtonGroup.js +68 -0
  36. package/dist/buttons/CopyButton.d.ts +77 -0
  37. package/dist/buttons/CopyButton.js +65 -0
  38. package/dist/charts/AreaChart.d.ts +49 -0
  39. package/dist/charts/AreaChart.js +31 -0
  40. package/dist/charts/BarChart.d.ts +54 -67
  41. package/dist/charts/BarChart.js +160 -124
  42. package/dist/charts/ChartAxis.d.ts +35 -40
  43. package/dist/charts/ChartAxis.js +114 -90
  44. package/dist/charts/ChartCategoryTargets.d.ts +12 -26
  45. package/dist/charts/ChartCategoryTargets.js +33 -20
  46. package/dist/charts/ChartFrame.d.ts +71 -116
  47. package/dist/charts/ChartFrame.js +306 -97
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +37 -48
  51. package/dist/charts/ChartLegend.js +243 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +34 -20
  54. package/dist/charts/ChartPrimitives.d.ts +50 -305
  55. package/dist/charts/ChartPrimitives.js +65 -413
  56. package/dist/charts/ChartTooltip.d.ts +20 -26
  57. package/dist/charts/ChartTooltip.js +77 -40
  58. package/dist/charts/Heatmap.d.ts +35 -0
  59. package/dist/charts/Heatmap.js +307 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +174 -121
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +159 -136
  64. package/dist/charts/Sparkline.d.ts +107 -0
  65. package/dist/charts/Sparkline.js +244 -0
  66. package/dist/charts/StatChart.d.ts +37 -13
  67. package/dist/charts/StatChart.js +82 -35
  68. package/dist/charts/barChartGeometry.d.ts +138 -86
  69. package/dist/charts/barChartGeometry.js +122 -101
  70. package/dist/charts/barChartLegend.d.ts +14 -18
  71. package/dist/charts/barChartLegend.js +18 -13
  72. package/dist/charts/chartFormat.d.ts +12 -18
  73. package/dist/charts/chartFormat.js +20 -52
  74. package/dist/charts/chartPalette.d.ts +33 -0
  75. package/dist/charts/chartPalette.js +68 -0
  76. package/dist/charts/chartScales.d.ts +41 -108
  77. package/dist/charts/chartScales.js +62 -128
  78. package/dist/charts/chartSelection.d.ts +15 -0
  79. package/dist/charts/chartSelection.js +22 -0
  80. package/dist/charts/constants.d.ts +100 -256
  81. package/dist/charts/constants.js +109 -275
  82. package/dist/charts/heatmapGeometry.d.ts +95 -0
  83. package/dist/charts/heatmapGeometry.js +155 -0
  84. package/dist/charts/lineChartGeometry.d.ts +108 -58
  85. package/dist/charts/lineChartGeometry.js +120 -78
  86. package/dist/charts/pieChartGeometry.d.ts +66 -40
  87. package/dist/charts/pieChartGeometry.js +68 -38
  88. package/dist/charts/types.d.ts +206 -466
  89. package/dist/charts/types.js +55 -144
  90. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  91. package/dist/charts/useCartesianChartLayout.js +47 -32
  92. package/dist/charts/useChartDimensions.d.ts +19 -40
  93. package/dist/charts/useChartDimensions.js +40 -56
  94. package/dist/charts/useChartFormatters.d.ts +6 -15
  95. package/dist/charts/useChartFormatters.js +4 -9
  96. package/dist/charts/useChartInteraction.d.ts +69 -116
  97. package/dist/charts/useChartInteraction.js +148 -78
  98. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  99. package/dist/charts/useChartTooltipPosition.js +14 -5
  100. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  101. package/dist/charts/useSeriesColorResolver.js +19 -12
  102. package/dist/chips/Chip.d.ts +155 -44
  103. package/dist/chips/Chip.js +329 -155
  104. package/dist/chips/ChipGroup.d.ts +53 -0
  105. package/dist/chips/ChipGroup.js +98 -0
  106. package/dist/drawer/Drawer.d.ts +83 -17
  107. package/dist/drawer/Drawer.js +399 -65
  108. package/dist/dropdown/Dropdown.d.ts +80 -63
  109. package/dist/dropdown/Dropdown.js +127 -129
  110. package/dist/editor/CodeEditor.d.ts +119 -40
  111. package/dist/editor/CodeEditor.js +490 -400
  112. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  113. package/dist/editor/CodeEditorReactWidget.js +28 -21
  114. package/dist/feedback/Alert.d.ts +49 -0
  115. package/dist/feedback/Alert.js +172 -0
  116. package/dist/feedback/EmptyState.d.ts +39 -0
  117. package/dist/feedback/EmptyState.js +109 -0
  118. package/dist/feedback/ProgressBar.d.ts +125 -0
  119. package/dist/feedback/ProgressBar.js +183 -0
  120. package/dist/feedback/ProgressCircle.d.ts +99 -0
  121. package/dist/feedback/ProgressCircle.js +187 -0
  122. package/dist/feedback/Skeleton.d.ts +69 -0
  123. package/dist/feedback/Skeleton.js +130 -0
  124. package/dist/feedback/Spinner.d.ts +63 -0
  125. package/dist/feedback/Spinner.js +141 -0
  126. package/dist/fonts.css +70 -0
  127. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  128. package/dist/hooks/internal/useIsClient.js +14 -0
  129. package/dist/hooks/useClipboard.d.ts +19 -0
  130. package/dist/hooks/useClipboard.js +45 -0
  131. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  132. package/dist/hooks/useControlledOpenState.js +19 -0
  133. package/dist/hooks/useControlledState.d.ts +19 -0
  134. package/dist/hooks/useControlledState.js +22 -0
  135. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  136. package/dist/hooks/useDebouncedValue.js +33 -0
  137. package/dist/hooks/useDisclosure.d.ts +26 -0
  138. package/dist/hooks/useDisclosure.js +36 -0
  139. package/dist/hooks/useDismiss.d.ts +23 -27
  140. package/dist/hooks/useDismiss.js +39 -27
  141. package/dist/hooks/useElementClientSize.d.ts +10 -10
  142. package/dist/hooks/useElementClientSize.js +8 -11
  143. package/dist/hooks/useElementWidth.d.ts +6 -13
  144. package/dist/hooks/useElementWidth.js +6 -14
  145. package/dist/hooks/useField.d.ts +47 -0
  146. package/dist/hooks/useField.js +40 -0
  147. package/dist/hooks/useHotkey.d.ts +77 -0
  148. package/dist/hooks/useHotkey.js +246 -0
  149. package/dist/hooks/useIsMac.d.ts +12 -0
  150. package/dist/hooks/useIsMac.js +27 -0
  151. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  152. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  153. package/dist/hooks/useLocalStorage.d.ts +28 -0
  154. package/dist/hooks/useLocalStorage.js +145 -0
  155. package/dist/hooks/useMediaQuery.d.ts +11 -0
  156. package/dist/hooks/useMediaQuery.js +23 -0
  157. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  158. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  159. package/dist/hooks/useResize.d.ts +42 -62
  160. package/dist/hooks/useResize.js +43 -31
  161. package/dist/icons/Icon.d.ts +64 -37
  162. package/dist/icons/Icon.js +96 -37
  163. package/dist/icons/internal/IconSlot.d.ts +10 -0
  164. package/dist/icons/internal/IconSlot.js +32 -0
  165. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  166. package/dist/inputs/CheckboxGroup.js +183 -0
  167. package/dist/inputs/CheckboxInput.d.ts +98 -28
  168. package/dist/inputs/CheckboxInput.js +218 -88
  169. package/dist/inputs/ColorInput.d.ts +115 -29
  170. package/dist/inputs/ColorInput.js +748 -326
  171. package/dist/inputs/CopyInput.d.ts +49 -20
  172. package/dist/inputs/CopyInput.js +57 -49
  173. package/dist/inputs/CronInput.d.ts +94 -0
  174. package/dist/inputs/CronInput.js +618 -0
  175. package/dist/inputs/DateInput.d.ts +175 -28
  176. package/dist/inputs/DateInput.js +1109 -451
  177. package/dist/inputs/DurationInput.d.ts +101 -0
  178. package/dist/inputs/DurationInput.js +441 -0
  179. package/dist/inputs/Field.d.ts +75 -0
  180. package/dist/inputs/Field.js +247 -0
  181. package/dist/inputs/Fieldset.d.ts +53 -0
  182. package/dist/inputs/Fieldset.js +149 -0
  183. package/dist/inputs/FileInput.d.ts +110 -0
  184. package/dist/inputs/FileInput.js +476 -0
  185. package/dist/inputs/Input.d.ts +148 -187
  186. package/dist/inputs/Input.js +339 -259
  187. package/dist/inputs/KeyValueInput.d.ts +120 -0
  188. package/dist/inputs/KeyValueInput.js +383 -0
  189. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  190. package/dist/inputs/MultiSelectInput.js +175 -559
  191. package/dist/inputs/NumberInput.d.ts +65 -9
  192. package/dist/inputs/NumberInput.js +197 -40
  193. package/dist/inputs/PasswordInput.d.ts +17 -12
  194. package/dist/inputs/PasswordInput.js +33 -33
  195. package/dist/inputs/PinInput.d.ts +117 -0
  196. package/dist/inputs/PinInput.js +364 -0
  197. package/dist/inputs/RadioGroup.d.ts +115 -0
  198. package/dist/inputs/RadioGroup.js +179 -0
  199. package/dist/inputs/RadioInput.d.ts +87 -24
  200. package/dist/inputs/RadioInput.js +182 -95
  201. package/dist/inputs/SearchInput.d.ts +66 -0
  202. package/dist/inputs/SearchInput.js +156 -0
  203. package/dist/inputs/SelectInput.d.ts +195 -55
  204. package/dist/inputs/SelectInput.js +1308 -446
  205. package/dist/inputs/SliderInput.d.ts +150 -30
  206. package/dist/inputs/SliderInput.js +441 -186
  207. package/dist/inputs/SwitchInput.d.ts +109 -0
  208. package/dist/inputs/SwitchInput.js +248 -0
  209. package/dist/inputs/TagInput.d.ts +117 -0
  210. package/dist/inputs/TagInput.js +408 -0
  211. package/dist/inputs/TextAreaInput.d.ts +146 -44
  212. package/dist/inputs/TextAreaInput.js +298 -198
  213. package/dist/inputs/TextInput.d.ts +4 -13
  214. package/dist/inputs/TextInput.js +13 -48
  215. package/dist/inputs/ToggleInput.d.ts +120 -22
  216. package/dist/inputs/ToggleInput.js +262 -116
  217. package/dist/inputs/internal/bareField.d.ts +18 -0
  218. package/dist/inputs/internal/bareField.js +38 -0
  219. package/dist/inputs/internal/devWarn.d.ts +7 -0
  220. package/dist/inputs/internal/devWarn.js +30 -0
  221. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  222. package/dist/inputs/internal/fieldFrame.js +64 -0
  223. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  224. package/dist/inputs/internal/fieldWiring.js +38 -0
  225. package/dist/inputs/internal/innerButton.d.ts +2 -0
  226. package/dist/inputs/internal/innerButton.js +24 -0
  227. package/dist/inputs/internal/ownField.d.ts +45 -0
  228. package/dist/inputs/internal/ownField.js +58 -0
  229. package/dist/inputs/internal/predicates.d.ts +9 -0
  230. package/dist/inputs/internal/predicates.js +11 -0
  231. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  232. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  233. package/dist/json/JsonViewer.d.ts +62 -0
  234. package/dist/json/JsonViewer.js +483 -0
  235. package/dist/layout/Box.d.ts +87 -0
  236. package/dist/layout/Box.js +109 -0
  237. package/dist/layout/Divider.d.ts +25 -0
  238. package/dist/layout/Divider.js +70 -0
  239. package/dist/layout/Flex.d.ts +139 -0
  240. package/dist/layout/Flex.js +165 -0
  241. package/dist/layout/FlexItem.d.ts +72 -0
  242. package/dist/layout/FlexItem.js +84 -0
  243. package/dist/layout/Grid.d.ts +140 -0
  244. package/dist/layout/Grid.js +178 -0
  245. package/dist/layout/Portal.d.ts +29 -0
  246. package/dist/layout/Portal.js +27 -0
  247. package/dist/layout/ResizablePanels.d.ts +88 -0
  248. package/dist/layout/ResizablePanels.js +198 -0
  249. package/dist/layout/ResizeHandle.d.ts +48 -0
  250. package/dist/layout/ResizeHandle.js +143 -0
  251. package/dist/layout/ScrollArea.d.ts +30 -0
  252. package/dist/layout/ScrollArea.js +138 -0
  253. package/dist/links/Link.d.ts +101 -1
  254. package/dist/links/Link.js +166 -4
  255. package/dist/lists/BulletedList.d.ts +25 -7
  256. package/dist/lists/BulletedList.js +72 -27
  257. package/dist/lists/DescriptionList.d.ts +91 -0
  258. package/dist/lists/DescriptionList.js +147 -0
  259. package/dist/menu/ContextMenu.d.ts +64 -0
  260. package/dist/menu/ContextMenu.js +34 -0
  261. package/dist/menu/Menu.d.ts +280 -0
  262. package/dist/menu/Menu.js +1003 -0
  263. package/dist/modal/ConfirmDialog.d.ts +55 -0
  264. package/dist/modal/ConfirmDialog.js +151 -0
  265. package/dist/modal/Modal.d.ts +64 -14
  266. package/dist/modal/Modal.js +189 -48
  267. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  268. package/dist/navigation/Breadcrumbs.js +243 -0
  269. package/dist/navigation/CommandPalette.d.ts +83 -0
  270. package/dist/navigation/CommandPalette.js +509 -0
  271. package/dist/navigation/Pagination.d.ts +87 -0
  272. package/dist/navigation/Pagination.js +300 -0
  273. package/dist/navigation/SidebarNav.d.ts +107 -0
  274. package/dist/navigation/SidebarNav.js +341 -0
  275. package/dist/navigation/Stepper.d.ts +52 -0
  276. package/dist/navigation/Stepper.js +207 -0
  277. package/dist/navigation/Tabs.d.ts +113 -0
  278. package/dist/navigation/Tabs.js +543 -0
  279. package/dist/navigation/Topbar.d.ts +20 -0
  280. package/dist/navigation/Topbar.js +62 -0
  281. package/dist/overlay/OverlayProvider.d.ts +28 -32
  282. package/dist/overlay/OverlayProvider.js +42 -93
  283. package/dist/overlay/useOverlay.d.ts +88 -12
  284. package/dist/overlay/useOverlay.js +220 -43
  285. package/dist/overlays/Popover.d.ts +114 -0
  286. package/dist/overlays/Popover.js +389 -0
  287. package/dist/shapes/Circle.d.ts +84 -8
  288. package/dist/shapes/Circle.js +122 -20
  289. package/dist/shapes/Square.d.ts +84 -8
  290. package/dist/shapes/Square.js +123 -20
  291. package/dist/styles/mixins.d.ts +35 -0
  292. package/dist/styles/mixins.js +60 -0
  293. package/dist/styles.css +1 -202
  294. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  295. package/dist/table/InfiniteSpreadsheet.js +762 -225
  296. package/dist/table/InfiniteTable.d.ts +116 -14
  297. package/dist/table/InfiniteTable.js +287 -429
  298. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  299. package/dist/table/SpreadsheetCellEditor.js +163 -84
  300. package/dist/table/TableCore.d.ts +252 -0
  301. package/dist/table/TableCore.js +1082 -0
  302. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  303. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  304. package/dist/table/types.d.ts +66 -244
  305. package/dist/table/types.js +0 -51
  306. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  307. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  308. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  309. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  310. package/dist/table/useTableColumnLayout.d.ts +90 -25
  311. package/dist/table/useTableColumnLayout.js +255 -50
  312. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  313. package/dist/table/useTableKeyboardNavigation.js +95 -71
  314. package/dist/table/useTableRowSelection.d.ts +24 -25
  315. package/dist/table/useTableRowSelection.js +57 -84
  316. package/dist/table/useTableVirtualizer.d.ts +20 -0
  317. package/dist/table/useTableVirtualizer.js +48 -0
  318. package/dist/text/Bold.d.ts +5 -6
  319. package/dist/text/Bold.js +16 -15
  320. package/dist/text/Code.d.ts +5 -6
  321. package/dist/text/Code.js +16 -25
  322. package/dist/text/CodeBlock.d.ts +77 -0
  323. package/dist/text/CodeBlock.js +373 -0
  324. package/dist/text/EditableText.d.ts +55 -15
  325. package/dist/text/EditableText.js +153 -135
  326. package/dist/text/Ellipsis.d.ts +34 -8
  327. package/dist/text/Ellipsis.js +55 -23
  328. package/dist/text/Kbd.d.ts +72 -0
  329. package/dist/text/Kbd.js +284 -0
  330. package/dist/text/MarkdownText.d.ts +27 -10
  331. package/dist/text/MarkdownText.js +317 -300
  332. package/dist/text/RequiredMarker.d.ts +17 -5
  333. package/dist/text/RequiredMarker.js +34 -36
  334. package/dist/text/Selectable.d.ts +5 -6
  335. package/dist/text/Selectable.js +16 -13
  336. package/dist/text/Span.d.ts +82 -0
  337. package/dist/text/Span.js +115 -0
  338. package/dist/text/Text.d.ts +128 -41
  339. package/dist/text/Text.js +209 -76
  340. package/dist/theme/GalaxyProvider.d.ts +75 -0
  341. package/dist/theme/GalaxyProvider.js +223 -0
  342. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  343. package/dist/theme/ThemeSwitcher.js +94 -0
  344. package/dist/theme/enums.d.ts +118 -0
  345. package/dist/theme/enums.js +144 -0
  346. package/dist/theme/tokens/dark.d.ts +2 -0
  347. package/dist/theme/tokens/dark.js +275 -0
  348. package/dist/theme/tokens/generate.d.ts +15 -0
  349. package/dist/theme/tokens/generate.js +47 -0
  350. package/dist/theme/tokens/light.d.ts +2 -0
  351. package/dist/theme/tokens/light.js +274 -0
  352. package/dist/theme/tokens/palette.d.ts +14 -0
  353. package/dist/theme/tokens/palette.js +153 -0
  354. package/dist/theme/tokens/scales.d.ts +26 -0
  355. package/dist/theme/tokens/scales.js +154 -0
  356. package/dist/theme/tokens/t.d.ts +3 -0
  357. package/dist/theme/tokens/t.js +25 -0
  358. package/dist/theme/tokens/types.d.ts +189 -0
  359. package/dist/theme/tokens/types.js +0 -0
  360. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  361. package/dist/theme/useGalaxyTheme.js +36 -0
  362. package/dist/theme/useInverseScope.d.ts +18 -0
  363. package/dist/theme/useInverseScope.js +33 -0
  364. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  365. package/dist/three/GalaxyLogomark3D.js +134 -0
  366. package/dist/three/assets/galaxy-logomark.js +4 -0
  367. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  368. package/dist/three/galaxyLogomark3DScene.js +165 -0
  369. package/dist/timeline/Timeline.d.ts +120 -0
  370. package/dist/timeline/Timeline.js +301 -0
  371. package/dist/toast/Toast.d.ts +43 -19
  372. package/dist/toast/Toast.js +130 -89
  373. package/dist/toast/ToastProvider.d.ts +23 -23
  374. package/dist/toast/ToastProvider.js +298 -101
  375. package/dist/toast/ToastViewport.d.ts +12 -0
  376. package/dist/toast/ToastViewport.js +210 -0
  377. package/dist/toast/useToast.d.ts +139 -5
  378. package/dist/toast/useToast.js +15 -13
  379. package/dist/tokens.css +654 -0
  380. package/dist/tooltip/Tooltip.d.ts +64 -44
  381. package/dist/tooltip/Tooltip.js +280 -73
  382. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  383. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  384. package/dist/transform/Fade.d.ts +33 -11
  385. package/dist/transform/Fade.js +71 -19
  386. package/dist/transform/Flasher.d.ts +25 -0
  387. package/dist/transform/Flasher.js +39 -0
  388. package/dist/transform/Rotate.d.ts +24 -12
  389. package/dist/transform/Rotate.js +36 -22
  390. package/dist/transform/ScaleFade.d.ts +36 -11
  391. package/dist/transform/ScaleFade.js +86 -28
  392. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  393. package/dist/transform/internal/CollapseMotion.js +65 -0
  394. package/dist/tree/Tree.d.ts +85 -0
  395. package/dist/tree/Tree.js +387 -0
  396. package/dist/tree/treeRow.d.ts +39 -0
  397. package/dist/tree/treeRow.js +75 -0
  398. package/dist/utils/colors.d.ts +46 -13
  399. package/dist/utils/colors.js +92 -34
  400. package/dist/utils/css.d.ts +23 -0
  401. package/dist/utils/css.js +30 -0
  402. package/dist/utils/format.d.ts +58 -0
  403. package/dist/utils/format.js +220 -0
  404. package/dist/vite/index.d.ts +16 -0
  405. package/dist/vite/index.js +52 -0
  406. package/dist/widget/Widget.d.ts +164 -48
  407. package/dist/widget/Widget.js +335 -96
  408. package/dist/widget/WidgetGroup.d.ts +36 -0
  409. package/dist/widget/WidgetGroup.js +103 -0
  410. package/package.json +855 -157
  411. package/dist/accordion/Accordion.d.ts +0 -54
  412. package/dist/accordion/Accordion.js +0 -183
  413. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  415. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  416. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  417. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  419. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  420. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  421. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  423. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  424. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  425. package/dist/assets/models/galaxy-animation.js +0 -136666
  426. package/dist/assets/models/galaxy-logomark.js +0 -4
  427. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  428. package/dist/avatar/AvatarShimmer.js +0 -22
  429. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  430. package/dist/backgrounds/CellGridBackground.js +0 -44
  431. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  432. package/dist/backgrounds/CrossGridBackground.js +0 -49
  433. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  434. package/dist/backgrounds/DotGridBackground.js +0 -47
  435. package/dist/badge/Badge.d.ts +0 -42
  436. package/dist/badge/Badge.js +0 -99
  437. package/dist/charts/ChartEmptyState.d.ts +0 -17
  438. package/dist/charts/ChartEmptyState.js +0 -29
  439. package/dist/charts/ProgressBar.d.ts +0 -29
  440. package/dist/charts/ProgressBar.js +0 -65
  441. package/dist/charts/chartTheme.d.ts +0 -18
  442. package/dist/charts/chartTheme.js +0 -26
  443. package/dist/containers/FlexItem.d.ts +0 -50
  444. package/dist/containers/FlexItem.js +0 -91
  445. package/dist/containers/FlexWrapper.d.ts +0 -96
  446. package/dist/containers/FlexWrapper.js +0 -143
  447. package/dist/containers/GridWrapper.d.ts +0 -79
  448. package/dist/containers/GridWrapper.js +0 -125
  449. package/dist/containers/Spacing.d.ts +0 -23
  450. package/dist/containers/Spacing.js +0 -59
  451. package/dist/containers/Wrapper.d.ts +0 -26
  452. package/dist/containers/Wrapper.js +0 -54
  453. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  454. package/dist/dividers/HorizontalDivider.js +0 -39
  455. package/dist/dividers/VerticalDivider.d.ts +0 -6
  456. package/dist/dividers/VerticalDivider.js +0 -21
  457. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  458. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  459. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  460. package/dist/icons/GalaxyLogomark.js +0 -27
  461. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  462. package/dist/icons/GalaxyLogomark3D.js +0 -319
  463. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  464. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  465. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  466. package/dist/icons/GalaxyWordmark.js +0 -25
  467. package/dist/inputs/MultiTextInput.d.ts +0 -32
  468. package/dist/inputs/MultiTextInput.js +0 -180
  469. package/dist/inputs/SwitcherInput.d.ts +0 -30
  470. package/dist/inputs/SwitcherInput.js +0 -81
  471. package/dist/inputs/hooks.d.ts +0 -10
  472. package/dist/inputs/hooks.js +0 -22
  473. package/dist/overlay/constants.d.ts +0 -28
  474. package/dist/overlay/constants.js +0 -37
  475. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  476. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  477. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  478. package/dist/resizable/VerticalResizeHandle.js +0 -39
  479. package/dist/table/SpreadsheetCell.d.ts +0 -21
  480. package/dist/table/SpreadsheetCell.js +0 -71
  481. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  482. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  483. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  484. package/dist/table/SpreadsheetMenuItem.js +0 -33
  485. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  486. package/dist/table/SpreadsheetPrimitives.js +0 -105
  487. package/dist/table/SpreadsheetRow.d.ts +0 -33
  488. package/dist/table/SpreadsheetRow.js +0 -73
  489. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  490. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  491. package/dist/table/TableExpandCell.d.ts +0 -11
  492. package/dist/table/TableExpandCell.js +0 -24
  493. package/dist/table/TableExpandedRow.d.ts +0 -16
  494. package/dist/table/TableExpandedRow.js +0 -77
  495. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  496. package/dist/table/TableHeaderCellContent.js +0 -48
  497. package/dist/table/TablePrimitives.d.ts +0 -313
  498. package/dist/table/TablePrimitives.js +0 -302
  499. package/dist/table/TableSelectCell.d.ts +0 -18
  500. package/dist/table/TableSelectCell.js +0 -27
  501. package/dist/table/TableStatusRow.d.ts +0 -18
  502. package/dist/table/TableStatusRow.js +0 -50
  503. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  504. package/dist/table/useSpreadsheetEditing.js +0 -41
  505. package/dist/table/useTableColumnResize.d.ts +0 -38
  506. package/dist/table/useTableColumnResize.js +0 -155
  507. package/dist/table/useTableRowExpansion.d.ts +0 -24
  508. package/dist/table/useTableRowExpansion.js +0 -62
  509. package/dist/table/utils.d.ts +0 -50
  510. package/dist/table/utils.js +0 -78
  511. package/dist/text/HotKeys.d.ts +0 -30
  512. package/dist/text/HotKeys.js +0 -74
  513. package/dist/text/Paragraph.d.ts +0 -33
  514. package/dist/text/Paragraph.js +0 -83
  515. package/dist/text/TextShimmer.d.ts +0 -14
  516. package/dist/text/TextShimmer.js +0 -34
  517. package/dist/theme/GalaxyTheme.d.ts +0 -67
  518. package/dist/theme/GalaxyTheme.js +0 -119
  519. package/dist/theme/constants.d.ts +0 -8
  520. package/dist/theme/constants.js +0 -38
  521. package/dist/theme/index.d.ts +0 -6
  522. package/dist/theme/index.js +0 -7
  523. package/dist/theme/types.d.ts +0 -195
  524. package/dist/theme/types.js +0 -10
  525. package/dist/theme/typography.d.ts +0 -2
  526. package/dist/theme/typography.js +0 -73
  527. package/dist/theme/variants/dark.d.ts +0 -2
  528. package/dist/theme/variants/dark.js +0 -125
  529. package/dist/theme/variants/light.d.ts +0 -2
  530. package/dist/theme/variants/light.js +0 -125
  531. package/dist/toast/ToastContainer.d.ts +0 -10
  532. package/dist/toast/ToastContainer.js +0 -31
  533. package/dist/toast/ToastWrapper.d.ts +0 -6
  534. package/dist/toast/ToastWrapper.js +0 -27
  535. package/dist/transform/Flash.d.ts +0 -7
  536. package/dist/transform/Flash.js +0 -18
  537. package/dist/transform/Spin.d.ts +0 -14
  538. package/dist/transform/Spin.js +0 -25
  539. package/dist/utils/linaria.d.ts +0 -1
  540. package/dist/utils/linaria.js +0 -8
@@ -1,15 +1,33 @@
1
- /** Item text size — maps onto the matching `TextSize` step. */
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ /** Item type step; canonical rungs `SMALL MEDIUM LARGE` (the 1.x members). */
2
3
  export declare enum BulletedListSize {
4
+ /** `body_sm` items (12px on 16px). */
3
5
  SMALL = "SMALL",
6
+ /** `body_md` items (13px on 16px). The default. */
4
7
  MEDIUM = "MEDIUM",
8
+ /** `body_lg` items (14px on 20px). */
5
9
  LARGE = "LARGE"
6
10
  }
7
- export interface BulletedListProps {
8
- /** One string per bullet. Plain text only — no nesting, no rich content. */
9
- items: string[];
10
- /** @default BulletedListSize.MEDIUM */
11
+ export interface BulletedListProps extends AriaAttributes {
12
+ /**
13
+ * One entry per bullet: a string, inline content (`Span`, `Code`, `Link`), or content ending in
14
+ * a nested `BulletedList`. Required.
15
+ */
16
+ items: ReactNode[];
17
+ /**
18
+ * Type step of every item: `body_sm`, `body_md` or `body_lg`.
19
+ * @default BulletedListSize.MEDIUM
20
+ */
11
21
  size?: BulletedListSize;
22
+ /** DOM id on the root `<ul>`. */
23
+ id?: string;
24
+ /** Any `data-*` attribute, forwarded to the root `<ul>`. */
25
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
26
+ /** Extra class on the root `<ul>`. */
27
+ className?: string;
28
+ /** Inline style on the root `<ul>`; only for setting CSS custom properties. */
29
+ style?: CSSProperties;
12
30
  }
13
- /** An unordered list of plain strings, each rendered through `Text`. */
14
- declare const BulletedList: ({ items, size }: BulletedListProps) => import("react").JSX.Element;
31
+ /** An unordered list of short items, each rendered through `Text`. */
32
+ declare const BulletedList: import("react").ForwardRefExoticComponent<BulletedListProps & import("react").RefAttributes<HTMLUListElement>>;
15
33
  export default BulletedList;
@@ -1,43 +1,88 @@
1
- import { withTheme } from "../theme/GalaxyTheme.js";
2
- import Text, { TextSize } from "../text/Text.js";
1
+ import Text, { TextSize, TextWeight } from "../text/Text.js";
3
2
  /* empty css */
4
3
  import { styled } from "@linaria/react";
5
- import { jsx } from "react/jsx-runtime";
4
+ import { forwardRef } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/lists/BulletedList.tsx
7
- var _exp = () => ({ theme }) => theme.color.text.primary;
8
- var _exp2 = () => ({ theme }) => theme.font.sans.weight.medium;
9
- var StyledBulletedList = withTheme(/*#__PURE__*/ styled("ul")({
10
- name: "StyledBulletedList",
11
- class: "s1o45025",
12
- propsAsIs: false,
13
- vars: {
14
- "s1o45025-0": [_exp()],
15
- "s1o45025-1": [_exp2()]
16
- }
17
- }));
18
- var StyledBulletedListItem = /*#__PURE__*/ styled("li")({
19
- name: "StyledBulletedListItem",
20
- class: "s13x8jj4",
21
- propsAsIs: false
22
- });
23
- /** Item text size — maps onto the matching `TextSize` step. */
7
+ /**
8
+ * A short unordered list: one bullet per item, items stacked with the 1.x spacing (8px indent, a
9
+ * 16px bullet column, no gap), each item's copy rendered through `Text` at the list's size. An
10
+ * item is a string or inline content (`Span`, `Code`, `Link`), and may end in a nested
11
+ * `BulletedList`, which indents by its own 8px plus the bullet column.
12
+ *
13
+ * The bullet is a `Text` glyph hidden from screen readers, sharing the item's size so it sits on
14
+ * the item's first line at every size; long items wrap beside it, never under it. The list keeps
15
+ * its semantics in Safari with `role="list"` (the package reset sets `list-style: none`).
16
+ *
17
+ * For a few lines of supporting copy, not interactive rows (`Menu`), navigation (`SidebarNav`),
18
+ * key / value pairs (`DescriptionList`) or numbered steps.
19
+ */
20
+ /** Item type step; canonical rungs `SMALL MEDIUM LARGE` (the 1.x members). */
24
21
  var BulletedListSize = /* @__PURE__ */ function(BulletedListSize) {
22
+ /** `body_sm` items (12px on 16px). */
25
23
  BulletedListSize["SMALL"] = "SMALL";
24
+ /** `body_md` items (13px on 16px). The default. */
26
25
  BulletedListSize["MEDIUM"] = "MEDIUM";
26
+ /** `body_lg` items (14px on 20px). */
27
27
  BulletedListSize["LARGE"] = "LARGE";
28
28
  return BulletedListSize;
29
29
  }({});
30
+ /** The list: a column with the 1.x 8px indent and no gap. */
31
+ var Root = /*#__PURE__*/ styled("ul")({
32
+ name: "Root",
33
+ class: "gx-BulletedList-r1o45025",
34
+ propsAsIs: false
35
+ });
36
+ /** One item: the bullet column and the copy, top-aligned. */
37
+ var Item = /*#__PURE__*/ styled("li")({
38
+ name: "Item",
39
+ class: "gx-BulletedList-Item-i13x8jj4",
40
+ propsAsIs: false
41
+ });
42
+ /**
43
+ * The 16px bullet column (1.x geometry). A flex box, so the glyph's own line box (the item's
44
+ * line height) sets its height instead of the column's inherited strut.
45
+ */
46
+ var Marker = /*#__PURE__*/ styled("div")({
47
+ name: "Marker",
48
+ class: "gx-BulletedList-Marker-m1kl5jbx",
49
+ propsAsIs: false
50
+ });
51
+ /** The item copy takes the rest of the row, so long items wrap beside the bullet. */
52
+ var ITEM_TEXT_CSS = "gx-BulletedList-ITEM_TEXT_CSS-i1dtejob";
30
53
  var BULLETED_LIST_SIZE_TO_TEXT_SIZE_MAP = {
31
54
  ["SMALL"]: TextSize.BODY_SM,
32
55
  ["MEDIUM"]: TextSize.BODY_MD,
33
56
  ["LARGE"]: TextSize.BODY_LG
34
57
  };
35
- /** An unordered list of plain strings, each rendered through `Text`. */
36
- var BulletedList = ({ items, size = "MEDIUM" }) => {
37
- return /* @__PURE__ */ jsx(StyledBulletedList, { children: items.map((item, index) => /* @__PURE__ */ jsx(StyledBulletedListItem, { children: /* @__PURE__ */ jsx(Text, {
38
- size: BULLETED_LIST_SIZE_TO_TEXT_SIZE_MAP[size],
39
- children: item
40
- }) }, index)) });
41
- };
58
+ /** An unordered list of short items, each rendered through `Text`. */
59
+ var BulletedList = forwardRef(function BulletedList({ items, size = "MEDIUM", id, className, style, ...rest }, ref) {
60
+ const textSize = BULLETED_LIST_SIZE_TO_TEXT_SIZE_MAP[size];
61
+ const entries = items.map((item, position) => ({
62
+ item,
63
+ position
64
+ }));
65
+ return /* @__PURE__ */ jsx(Root, {
66
+ ...rest,
67
+ ref,
68
+ role: "list",
69
+ id,
70
+ className,
71
+ style,
72
+ children: entries.map(({ item, position }) => /* @__PURE__ */ jsxs(Item, { children: [/* @__PURE__ */ jsx(Marker, { children: /* @__PURE__ */ jsx(Text, {
73
+ as: "span",
74
+ size: textSize,
75
+ weight: TextWeight.MEDIUM,
76
+ "aria-hidden": true,
77
+ children: "•"
78
+ }) }), /* @__PURE__ */ jsx(Text, {
79
+ as: "div",
80
+ size: textSize,
81
+ className: ITEM_TEXT_CSS,
82
+ children: item
83
+ })] }, position))
84
+ });
85
+ });
86
+ BulletedList.displayName = "BulletedList";
42
87
  //#endregion
43
88
  export { BulletedListSize, BulletedList as default };
@@ -0,0 +1,91 @@
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ import { FontFamily, Orientation } from "../theme/enums.js";
3
+ /** Type step of labels and values; canonical rungs `SMALL MEDIUM LARGE`. */
4
+ export declare enum DescriptionListSize {
5
+ /** `body_sm` labels and values; `X_SMALL` copy button. */
6
+ SMALL = "SMALL",
7
+ /** `body_md` labels and values; `X_SMALL` copy button. The default. */
8
+ MEDIUM = "MEDIUM",
9
+ /** `body_lg` labels and values; `SMALL` copy button. */
10
+ LARGE = "LARGE"
11
+ }
12
+ /** Fields every item has, whatever its value. */
13
+ interface DescriptionListItemBase {
14
+ /** The term: a short label, rendered in secondary text. Keep it short; it does not wrap beside a value. */
15
+ label: string;
16
+ /**
17
+ * Font family of a string or number value. `MONO` for ids, hashes, paths and timestamps.
18
+ * @default FontFamily.SANS
19
+ */
20
+ family?: FontFamily;
21
+ }
22
+ /** An item whose value is text (a string or number), or empty. */
23
+ interface DescriptionListTextItem {
24
+ /** The value. A string or number renders as `Text`; `null`, `undefined` or `""` renders an em dash. */
25
+ value: string | number | null | undefined;
26
+ /**
27
+ * Shows a copy button after the value. Copies `copyValue`, else the value as text.
28
+ * @default false
29
+ */
30
+ isCopyable?: boolean;
31
+ /** Text the copy button writes, when it differs from the shown value (a full id behind a short one). */
32
+ copyValue?: string;
33
+ }
34
+ /** An item whose value is a node, without a copy button. */
35
+ interface DescriptionListNodeItem {
36
+ /** The value: any node (a labeled `Beacon`, a `Link`, a `Chip`). */
37
+ value: ReactNode;
38
+ /**
39
+ * A node value is copyable only with a `copyValue`.
40
+ * @default false
41
+ */
42
+ isCopyable?: false;
43
+ /** No copy text without a copy button. */
44
+ copyValue?: undefined;
45
+ }
46
+ /** An item whose value is a node, with a copy button writing `copyValue`. */
47
+ interface DescriptionListCopyableNodeItem {
48
+ /** The value: any node (a labeled `Beacon`, a `Link`, a `Chip`). */
49
+ value: ReactNode;
50
+ /** Shows a copy button after the value. */
51
+ isCopyable: true;
52
+ /** Text the copy button writes; required, a node cannot be read as text. */
53
+ copyValue: string;
54
+ }
55
+ /**
56
+ * One row: a label and a value. A node value with `isCopyable` needs a `copyValue` (a type
57
+ * error otherwise: there would be nothing to copy).
58
+ */
59
+ export type DescriptionListItem = DescriptionListItemBase & (DescriptionListTextItem | DescriptionListNodeItem | DescriptionListCopyableNodeItem);
60
+ /** How many items sit side by side. */
61
+ export type DescriptionListColumns = 1 | 2 | 3 | 4;
62
+ export interface DescriptionListProps extends AriaAttributes {
63
+ /** The rows, in order. Required. */
64
+ items: DescriptionListItem[];
65
+ /**
66
+ * Type step of labels and values (`body_sm` / `body_md` / `body_lg`) and the copy button's rung.
67
+ * @default DescriptionListSize.MEDIUM
68
+ */
69
+ size?: DescriptionListSize;
70
+ /**
71
+ * `HORIZONTAL`: label beside value, labels aligned in one column. `VERTICAL`: label above value.
72
+ * @default Orientation.HORIZONTAL
73
+ */
74
+ orientation?: Orientation;
75
+ /**
76
+ * Number of items side by side. Items fill rows left to right.
77
+ * @default 1
78
+ */
79
+ columns?: DescriptionListColumns;
80
+ /** DOM id on the root `<dl>`. */
81
+ id?: string;
82
+ /** Any `data-*` attribute, forwarded to the root `<dl>`. */
83
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
84
+ /** Extra class on the root `<dl>`. */
85
+ className?: string;
86
+ /** Inline style on the root `<dl>`; only for setting CSS custom properties. */
87
+ style?: CSSProperties;
88
+ }
89
+ /** Labelled values in a `<dl>`: labels aligned in one column, or above their values. */
90
+ declare const DescriptionList: import("react").ForwardRefExoticComponent<DescriptionListProps & import("react").RefAttributes<HTMLDListElement>>;
91
+ export default DescriptionList;
@@ -0,0 +1,147 @@
1
+ import { FontFamily, Orientation } from "../theme/enums.js";
2
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
3
+ import { ButtonSize, ButtonVariant } from "../buttons/Button.js";
4
+ import CopyButton from "../buttons/CopyButton.js";
5
+ /* empty css */
6
+ import { styled } from "@linaria/react";
7
+ import { forwardRef } from "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { cx } from "@linaria/core";
10
+ //#region src/lists/DescriptionList.tsx
11
+ /**
12
+ * Labelled values: the detail pane of a run, a source or a user. Each item is a label (the term,
13
+ * secondary text) and a value: a string or number through `Text` (optionally mono, optionally
14
+ * with a copy button), or any node (a labeled `Beacon`, `Link`, `Chip`). An empty value renders an em dash.
15
+ *
16
+ * `HORIZONTAL` puts every label beside its value with all labels of an item column in one grid
17
+ * track (`display: contents` on the item group + a `max-content` label track), so labels align
18
+ * without measuring. `VERTICAL` stacks label above value. `columns` sets how many items sit side
19
+ * by side. Rows take the copy button's height when any item is copyable, so the list keeps one
20
+ * rhythm.
21
+ *
22
+ * Read-only: editing is a form (`Field` + inputs); a list of plain lines is `BulletedList`.
23
+ */
24
+ /** Type step of labels and values; canonical rungs `SMALL MEDIUM LARGE`. */
25
+ var DescriptionListSize = /* @__PURE__ */ function(DescriptionListSize) {
26
+ /** `body_sm` labels and values; `X_SMALL` copy button. */
27
+ DescriptionListSize["SMALL"] = "SMALL";
28
+ /** `body_md` labels and values; `X_SMALL` copy button. The default. */
29
+ DescriptionListSize["MEDIUM"] = "MEDIUM";
30
+ /** `body_lg` labels and values; `SMALL` copy button. */
31
+ DescriptionListSize["LARGE"] = "LARGE";
32
+ return DescriptionListSize;
33
+ }({});
34
+ /** The list: a grid whose tracks come from the orientation and column blocks. */
35
+ var Root = /*#__PURE__*/ styled("dl")({
36
+ name: "Root",
37
+ class: "gx-DescriptionList-r1rtdwfl",
38
+ propsAsIs: false
39
+ });
40
+ /** One label / value group. A `div` grouping a `dt` and its `dd` is valid in a `<dl>`. */
41
+ var Item = /*#__PURE__*/ styled("div")({
42
+ name: "Item",
43
+ class: "gx-DescriptionList-Item-i1gmyim5",
44
+ propsAsIs: false
45
+ });
46
+ /** The label cell. */
47
+ var Term = /*#__PURE__*/ styled("dt")({
48
+ name: "Term",
49
+ class: "gx-DescriptionList-Term-t198hz73",
50
+ propsAsIs: false
51
+ });
52
+ /** The value cell: the value and its copy button; long ids and paths wrap inside the track. */
53
+ var Details = /*#__PURE__*/ styled("dd")({
54
+ name: "Details",
55
+ class: "gx-DescriptionList-Details-d15164ci",
56
+ propsAsIs: false
57
+ });
58
+ /**
59
+ * A node value sits in a `Text` box of the list's step whose first flex item is a zero-width text
60
+ * strut, so the value's baseline is a real text baseline at that step (not, say, the synthesized
61
+ * bottom edge of a `Beacon` dot) and the label lines up with it. Marks (`Beacon`, `Chip`, `Link`)
62
+ * center on the strut's line.
63
+ */
64
+ var NODE_VALUE_CSS = "gx-DescriptionList-NODE_VALUE_CSS-n1mikopx";
65
+ var DESCRIPTION_LIST_ORIENTATION_TO_CSS_MAP = {
66
+ [Orientation.HORIZONTAL]: "gx-DescriptionList-Orientation_HORIZONTAL-o17z38i7",
67
+ [Orientation.VERTICAL]: "gx-DescriptionList-Orientation_VERTICAL-oarm5a8"
68
+ };
69
+ var DESCRIPTION_LIST_COLUMNS_TO_CSS_MAP = {
70
+ 1: "gx-DescriptionList-1-_1itek1z",
71
+ 2: "gx-DescriptionList-2-_19oquh",
72
+ 3: "gx-DescriptionList-3-_108p3ql",
73
+ 4: "gx-DescriptionList-4-_10x7q9y"
74
+ };
75
+ /** Applied only when some item is copyable: every row is as tall as a row with a copy button. */
76
+ var DESCRIPTION_LIST_SIZE_TO_ROW_CSS_MAP = {
77
+ ["SMALL"]: "gx-DescriptionList-SMALL-s1g4xmgd",
78
+ ["MEDIUM"]: "gx-DescriptionList-MEDIUM-m1s7hmki",
79
+ ["LARGE"]: "gx-DescriptionList-LARGE-l1t8g3vn"
80
+ };
81
+ var DESCRIPTION_LIST_SIZE_TO_TEXT_SIZE_MAP = {
82
+ ["SMALL"]: TextSize.BODY_SM,
83
+ ["MEDIUM"]: TextSize.BODY_MD,
84
+ ["LARGE"]: TextSize.BODY_LG
85
+ };
86
+ var DESCRIPTION_LIST_SIZE_TO_BUTTON_SIZE_MAP = {
87
+ ["SMALL"]: ButtonSize.X_SMALL,
88
+ ["MEDIUM"]: ButtonSize.X_SMALL,
89
+ ["LARGE"]: ButtonSize.SMALL
90
+ };
91
+ var isText = (value) => typeof value === "string" || typeof value === "number";
92
+ var isEmpty = (value) => value === null || value === void 0 || value === "";
93
+ /** The text a copy button writes for an item, or `undefined` when there is nothing to copy. */
94
+ var getCopyText = (item) => {
95
+ if (!item.isCopyable) return void 0;
96
+ if (item.copyValue !== void 0) return item.copyValue;
97
+ return isText(item.value) && !isEmpty(item.value) ? String(item.value) : void 0;
98
+ };
99
+ /** Labelled values in a `<dl>`: labels aligned in one column, or above their values. */
100
+ var DescriptionList = forwardRef(function DescriptionList({ items, size = "MEDIUM", orientation = Orientation.HORIZONTAL, columns = 1, id, className, style, ...rest }, ref) {
101
+ const textSize = DESCRIPTION_LIST_SIZE_TO_TEXT_SIZE_MAP[size];
102
+ const hasCopy = items.some((item) => item.isCopyable === true);
103
+ const entries = items.map((item, position) => ({
104
+ item,
105
+ position
106
+ }));
107
+ return /* @__PURE__ */ jsx(Root, {
108
+ ...rest,
109
+ ref,
110
+ id,
111
+ className: cx(DESCRIPTION_LIST_ORIENTATION_TO_CSS_MAP[orientation], DESCRIPTION_LIST_COLUMNS_TO_CSS_MAP[columns], hasCopy && DESCRIPTION_LIST_SIZE_TO_ROW_CSS_MAP[size], className),
112
+ style,
113
+ children: entries.map(({ item, position }) => {
114
+ const copyText = getCopyText(item);
115
+ return /* @__PURE__ */ jsxs(Item, { children: [/* @__PURE__ */ jsx(Term, { children: /* @__PURE__ */ jsx(Text, {
116
+ as: "span",
117
+ size: textSize,
118
+ variant: TextVariant.SECONDARY,
119
+ children: item.label
120
+ }) }), /* @__PURE__ */ jsxs(Details, { children: [isEmpty(item.value) ? /* @__PURE__ */ jsx(Text, {
121
+ as: "span",
122
+ size: textSize,
123
+ variant: TextVariant.TERTIARY,
124
+ children: "—"
125
+ }) : isText(item.value) ? /* @__PURE__ */ jsx(Text, {
126
+ as: "span",
127
+ size: textSize,
128
+ family: item.family ?? FontFamily.SANS,
129
+ isSelectable: true,
130
+ children: String(item.value)
131
+ }) : /* @__PURE__ */ jsx(Text, {
132
+ as: "div",
133
+ size: textSize,
134
+ className: NODE_VALUE_CSS,
135
+ children: item.value
136
+ }), copyText !== void 0 && /* @__PURE__ */ jsx(CopyButton, {
137
+ value: copyText,
138
+ ariaLabel: `Copy ${item.label}`,
139
+ size: DESCRIPTION_LIST_SIZE_TO_BUTTON_SIZE_MAP[size],
140
+ variant: ButtonVariant.TERTIARY
141
+ })] })] }, position);
142
+ })
143
+ });
144
+ });
145
+ DescriptionList.displayName = "DescriptionList";
146
+ //#endregion
147
+ export { DescriptionListSize, DescriptionList as default };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * A `Menu` opened by right-clicking a region (or pressing Shift+F10 or the ContextMenu key while
3
+ * focus is in it), at the pointer, in place of the browser's own context menu. It takes the same
4
+ * rows as `Menu` (`MenuItem`, `MenuCheckboxItem`, `MenuRadioGroup`, `MenuGroup`,
5
+ * `MenuSeparator`, imported from `menu/Menu`) and has the same keyboard model, sizes and surfaces.
6
+ *
7
+ * A preset: `MenuRoot` with Popover's `CONTEXT_MENU` trigger, no search and `BOTTOM_START` from
8
+ * the pointer. It adds no behavior and no styles of its own, and takes Menu's `MenuSize` and
9
+ * `MenuVariant` (import them from `menu/Menu`).
10
+ *
11
+ * Its commands are shortcuts: each one must also be reachable another way (a toolbar, a row's
12
+ * `Menu` button), because touch and keyboard users may never open a context menu.
13
+ *
14
+ * SSR: closed by default, only the region renders on the server. Nothing at module scope.
15
+ */
16
+ import { type AriaAttributes, type CSSProperties, type ReactElement, type ReactNode } from "react";
17
+ import { type MenuSize, type MenuVariant } from "./Menu.js";
18
+ export interface ContextMenuProps extends AriaAttributes {
19
+ /**
20
+ * The region that is right-clicked: one element that forwards its `ref` and spreads props to a
21
+ * DOM element. ContextMenu clones it and does not wrap it. Keyboard users open the menu with
22
+ * Shift+F10 or the ContextMenu key while focus is on it or inside it.
23
+ */
24
+ trigger: ReactElement;
25
+ /** The rows: `MenuItem`, `MenuCheckboxItem`, `MenuRadioGroup`, `MenuGroup`, `MenuSeparator` (from `menu/Menu`). */
26
+ children?: ReactNode;
27
+ /**
28
+ * Row rung: 24 or 32px rows, as on Menu.
29
+ * @default MenuSize.MEDIUM
30
+ */
31
+ size?: MenuSize;
32
+ /**
33
+ * Panel fill (surface step), as on Menu.
34
+ * @default MenuVariant.BASE
35
+ */
36
+ variant?: MenuVariant;
37
+ /** Controlled open state. When set, ContextMenu calls `onOpenChange` and lets the caller decide. */
38
+ isOpen?: boolean;
39
+ /**
40
+ * Initial open state while uncontrolled. It opens anchored to the region's box (there is no pointer position yet).
41
+ * @default false
42
+ */
43
+ defaultIsOpen?: boolean;
44
+ /** Called with the requested open state on right-click, the keyboard context-menu keys, a selection, Escape, outside press and Tab. */
45
+ onOpenChange?: (isOpen: boolean) => void;
46
+ /**
47
+ * Never opens: right-click shows the browser's own context menu. The region renders exactly as when enabled.
48
+ * @default false
49
+ */
50
+ isDisabled?: boolean;
51
+ /** Accessible name of the menu ("File actions"). Required, because a region is not a usable name. */
52
+ ariaLabel: string;
53
+ /** DOM id on the panel. */
54
+ id?: string;
55
+ /** Any `data-*` attribute, forwarded to the panel. */
56
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
57
+ /** Extra class on the panel. */
58
+ className?: string;
59
+ /** Inline style on the panel; only for setting CSS custom properties. */
60
+ style?: CSSProperties;
61
+ }
62
+ /** A Menu opened by right-click (or Shift+F10 / the ContextMenu key) on a region, at the pointer. */
63
+ declare const ContextMenu: import("react").ForwardRefExoticComponent<ContextMenuProps & import("react").RefAttributes<HTMLDivElement>>;
64
+ export default ContextMenu;
@@ -0,0 +1,34 @@
1
+ import { Placement } from "../theme/enums.js";
2
+ import { PopoverTrigger } from "../overlays/Popover.js";
3
+ import { MenuRoot } from "./Menu.js";
4
+ import { forwardRef } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region src/menu/ContextMenu.tsx
7
+ /**
8
+ * A `Menu` opened by right-clicking a region (or pressing Shift+F10 or the ContextMenu key while
9
+ * focus is in it), at the pointer, in place of the browser's own context menu. It takes the same
10
+ * rows as `Menu` (`MenuItem`, `MenuCheckboxItem`, `MenuRadioGroup`, `MenuGroup`,
11
+ * `MenuSeparator`, imported from `menu/Menu`) and has the same keyboard model, sizes and surfaces.
12
+ *
13
+ * A preset: `MenuRoot` with Popover's `CONTEXT_MENU` trigger, no search and `BOTTOM_START` from
14
+ * the pointer. It adds no behavior and no styles of its own, and takes Menu's `MenuSize` and
15
+ * `MenuVariant` (import them from `menu/Menu`).
16
+ *
17
+ * Its commands are shortcuts: each one must also be reachable another way (a toolbar, a row's
18
+ * `Menu` button), because touch and keyboard users may never open a context menu.
19
+ *
20
+ * SSR: closed by default, only the region renders on the server. Nothing at module scope.
21
+ */
22
+ /** A Menu opened by right-click (or Shift+F10 / the ContextMenu key) on a region, at the pointer. */
23
+ var ContextMenu = forwardRef(function ContextMenu(props, ref) {
24
+ return /* @__PURE__ */ jsx(MenuRoot, {
25
+ ...props,
26
+ ref,
27
+ popoverTrigger: PopoverTrigger.CONTEXT_MENU,
28
+ placement: Placement.BOTTOM_START,
29
+ isSearchable: false
30
+ });
31
+ });
32
+ ContextMenu.displayName = "ContextMenu";
33
+ //#endregion
34
+ export { ContextMenu as default };