@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,51 +1,78 @@
1
- import type { Icon as PhosphorIcon, IconWeight as PhosphorIconWeight } from "@phosphor-icons/react";
2
- /** Icon color role. Resolves to a `theme.color.icon.*` token in both themes. */
1
+ import type { Icon as PhosphorIcon } from "@phosphor-icons/react";
2
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
3
+ import type { Hex } from "../theme/tokens/types.js";
4
+ /** Color role of the icon (color set, Constitution V-A). Resolves to `color.text.*`. */
3
5
  export declare enum IconVariant {
6
+ /** `text.primary`. The default. */
4
7
  PRIMARY = "PRIMARY",
5
- PRIMARY_ALT = "PRIMARY_ALT",
8
+ /** `text.secondary`. */
6
9
  SECONDARY = "SECONDARY",
7
- SECONDARY_ALT = "SECONDARY_ALT",
10
+ /** `text.tertiary`. */
8
11
  TERTIARY = "TERTIARY",
9
- TERTIARY_ALT = "TERTIARY_ALT",
12
+ /** `text.disabled`. */
13
+ DISABLED = "DISABLED",
14
+ /** The parent's color (`currentColor`); used inside Button, Chip and other colored controls. */
15
+ INHERIT = "INHERIT",
16
+ /** Status: success, `text.success`. */
10
17
  SUCCESS = "SUCCESS",
11
- ERROR = "ERROR",
18
+ /** Status: warning, `text.warning`. */
12
19
  WARNING = "WARNING",
13
- LOADING = "LOADING",
14
- DISABLED = "DISABLED",
15
- BLUE = "BLUE",
16
- LIME = "LIME",
17
- TEAL = "TEAL",
18
- YELLOW = "YELLOW",
19
- ORANGE = "ORANGE",
20
- PURPLE = "PURPLE",
21
- PINK = "PINK"
20
+ /** Status: error, `text.error`. */
21
+ ERROR = "ERROR"
22
22
  }
23
- /**
24
- * Direct mapping to the Phosphor Icons `IconWeight` type.
25
- */
23
+ /** Stroke weight: Phosphor's six styles of the same glyph. */
26
24
  export declare enum IconWeight {
27
- THIN = "thin",
28
- LIGHT = "light",
29
- REGULAR = "regular",
30
- BOLD = "bold",
31
- FILL = "fill",
32
- DUOTONE = "duotone"
25
+ /** Hairline strokes. */
26
+ THIN = "THIN",
27
+ /** Light strokes. */
28
+ LIGHT = "LIGHT",
29
+ /** Phosphor's default stroke. */
30
+ REGULAR = "REGULAR",
31
+ /** Heavier strokes; reads well at 12–18px beside 400/500 text. */
32
+ BOLD = "BOLD",
33
+ /** Solid fill. */
34
+ FILL = "FILL",
35
+ /** Stroke over a 20% fill. */
36
+ DUOTONE = "DUOTONE"
33
37
  }
34
- export interface IconProps {
35
- /** Phosphor icon *component* — pass `PlusIcon`, not `<PlusIcon />`. */
38
+ export interface IconProps extends AriaAttributes {
39
+ /** Phosphor icon *component*: pass `PlusIcon`, not `<PlusIcon />`. */
36
40
  component: PhosphorIcon;
37
- /** Square size in px. @default 16 */
41
+ /**
42
+ * Square size in px. Parents pick it from their rung (`BUTTON_SIZE_TO_ICON_PX_MAP`).
43
+ * @default 16
44
+ */
38
45
  size?: number;
39
- /** Stroke weight. @default IconWeight.BOLD */
40
- weight?: PhosphorIconWeight;
41
- /** Color role. @default IconVariant.PRIMARY */
46
+ /**
47
+ * Stroke weight.
48
+ * @default IconWeight.REGULAR
49
+ */
50
+ weight?: IconWeight;
51
+ /**
52
+ * Color role. `INHERIT` follows the parent's color (used inside Button).
53
+ * @default IconVariant.PRIMARY
54
+ */
42
55
  variant?: IconVariant;
43
- /** Accessible label. Set it when the icon is the only content. */
44
- alt?: string;
56
+ /** Raw color override that bypasses `variant`. Discouraged: prefer a `variant`. */
57
+ hex?: Hex;
58
+ /** Accessible name. Set it when the icon carries meaning on its own; when absent the icon is `aria-hidden`. */
59
+ ariaLabel?: string;
60
+ /** Hover hint, shown in a `Tooltip`. */
61
+ tooltip?: string | ReactNode;
62
+ /**
63
+ * Rotates continuously (a loading glyph). Static under reduced motion.
64
+ * @default false
65
+ */
66
+ isSpinning?: boolean;
67
+ /** DOM id on the `<svg>`. */
68
+ id?: string;
69
+ /** Any `data-*` attribute, forwarded to the `<svg>`. */
70
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
71
+ /** Extra class on the `<svg>`. */
72
+ className?: string;
73
+ /** Inline style on the `<svg>`; only for setting CSS custom properties. */
74
+ style?: CSSProperties;
45
75
  }
46
- /**
47
- * Wraps a Phosphor icon so its color comes from a theme token rather than a
48
- * hardcoded `color` prop. Never render a Phosphor icon bare.
49
- */
50
- declare const Icon: ({ component: IconComponent, variant, size, weight, alt, }: IconProps) => import("react").JSX.Element;
76
+ /** Wraps a Phosphor icon so its color, weight and motion come from the DLS. Never render a Phosphor icon bare. */
77
+ declare const Icon: import("react").ForwardRefExoticComponent<IconProps & import("react").RefAttributes<SVGSVGElement>>;
51
78
  export default Icon;
@@ -1,56 +1,115 @@
1
- import { useGalaxyTheme } from "../theme/GalaxyTheme.js";
2
- import { match } from "ts-pattern";
1
+ import LazyTooltip from "../tooltip/internal/LazyTooltip.js";
2
+ /* empty css */
3
+ import { forwardRef } from "react";
3
4
  import { jsx } from "react/jsx-runtime";
5
+ import { cx } from "@linaria/core";
4
6
  //#region src/icons/Icon.tsx
5
- /** Icon color role. Resolves to a `theme.color.icon.*` token in both themes. */
7
+ /**
8
+ * The one way to draw a Phosphor icon. Color is CSS, not JS: `ICON_VARIANT_TO_CSS_MAP` sets
9
+ * `color` on the `<svg>` from `color.text.*`, and Phosphor paints with `currentColor`, so a theme
10
+ * switch needs no React re-render (1.x read the theme with `useGalaxyTheme()`).
11
+ *
12
+ * `size` stays a number in px: an icon sizes to its container's rung through the parent's
13
+ * `<PARENT>_SIZE_TO_ICON_PX_MAP` (`BUTTON_SIZE_TO_ICON_PX_MAP`). Parents that own the color
14
+ * (`Button`, `Chip`) pass `IconVariant.INHERIT` so the icon follows their `color`.
15
+ *
16
+ * `hex` is set as the `--gx-icon-hex` custom property in `style` and read by a block switched on
17
+ * only when the prop is set (the Text pattern).
18
+ *
19
+ * `tooltip` renders through `LazyTooltip`, so an icon without one never loads `Tooltip` (and
20
+ * floating-ui) into the bundle that draws it.
21
+ */
22
+ /** Color role of the icon (color set, Constitution V-A). Resolves to `color.text.*`. */
6
23
  var IconVariant = /* @__PURE__ */ function(IconVariant) {
24
+ /** `text.primary`. The default. */
7
25
  IconVariant["PRIMARY"] = "PRIMARY";
8
- IconVariant["PRIMARY_ALT"] = "PRIMARY_ALT";
26
+ /** `text.secondary`. */
9
27
  IconVariant["SECONDARY"] = "SECONDARY";
10
- IconVariant["SECONDARY_ALT"] = "SECONDARY_ALT";
28
+ /** `text.tertiary`. */
11
29
  IconVariant["TERTIARY"] = "TERTIARY";
12
- IconVariant["TERTIARY_ALT"] = "TERTIARY_ALT";
30
+ /** `text.disabled`. */
31
+ IconVariant["DISABLED"] = "DISABLED";
32
+ /** The parent's color (`currentColor`); used inside Button, Chip and other colored controls. */
33
+ IconVariant["INHERIT"] = "INHERIT";
34
+ /** Status: success, `text.success`. */
13
35
  IconVariant["SUCCESS"] = "SUCCESS";
14
- IconVariant["ERROR"] = "ERROR";
36
+ /** Status: warning, `text.warning`. */
15
37
  IconVariant["WARNING"] = "WARNING";
16
- IconVariant["LOADING"] = "LOADING";
17
- IconVariant["DISABLED"] = "DISABLED";
18
- IconVariant["BLUE"] = "BLUE";
19
- IconVariant["LIME"] = "LIME";
20
- IconVariant["TEAL"] = "TEAL";
21
- IconVariant["YELLOW"] = "YELLOW";
22
- IconVariant["ORANGE"] = "ORANGE";
23
- IconVariant["PURPLE"] = "PURPLE";
24
- IconVariant["PINK"] = "PINK";
38
+ /** Status: error, `text.error`. */
39
+ IconVariant["ERROR"] = "ERROR";
25
40
  return IconVariant;
26
41
  }({});
27
- /**
28
- * Direct mapping to the Phosphor Icons `IconWeight` type.
29
- */
42
+ /** Stroke weight: Phosphor's six styles of the same glyph. */
30
43
  var IconWeight = /* @__PURE__ */ function(IconWeight) {
31
- IconWeight["THIN"] = "thin";
32
- IconWeight["LIGHT"] = "light";
33
- IconWeight["REGULAR"] = "regular";
34
- IconWeight["BOLD"] = "bold";
35
- IconWeight["FILL"] = "fill";
36
- IconWeight["DUOTONE"] = "duotone";
44
+ /** Hairline strokes. */
45
+ IconWeight["THIN"] = "THIN";
46
+ /** Light strokes. */
47
+ IconWeight["LIGHT"] = "LIGHT";
48
+ /** Phosphor's default stroke. */
49
+ IconWeight["REGULAR"] = "REGULAR";
50
+ /** Heavier strokes; reads well at 12–18px beside 400/500 text. */
51
+ IconWeight["BOLD"] = "BOLD";
52
+ /** Solid fill. */
53
+ IconWeight["FILL"] = "FILL";
54
+ /** Stroke over a 20% fill. */
55
+ IconWeight["DUOTONE"] = "DUOTONE";
37
56
  return IconWeight;
38
57
  }({});
39
- function getIconColor(variant, theme) {
40
- return match(variant).with("PRIMARY", () => theme.color.icon.primary).with("PRIMARY_ALT", () => theme.color.icon.primaryAlt).with("SECONDARY", () => theme.color.icon.secondary).with("SECONDARY_ALT", () => theme.color.icon.secondaryAlt).with("TERTIARY", () => theme.color.icon.tertiary).with("TERTIARY_ALT", () => theme.color.icon.tertiaryAlt).with("SUCCESS", () => theme.color.icon.success).with("ERROR", () => theme.color.icon.error).with("WARNING", () => theme.color.icon.warning).with("LOADING", () => theme.color.icon.primary).with("LIME", () => theme.color.icon.lime).with("BLUE", () => theme.color.icon.blue).with("TEAL", () => theme.color.icon.teal).with("YELLOW", () => theme.color.icon.yellow).with("ORANGE", () => theme.color.icon.orange).with("PURPLE", () => theme.color.icon.purple).with("PINK", () => theme.color.icon.pink).with("DISABLED", () => theme.color.text.disabled).with(void 0, () => theme.color.icon.primary).exhaustive();
41
- }
58
+ /** The Phosphor weight each `IconWeight` draws. */
59
+ var ICON_WEIGHT_TO_PHOSPHOR_WEIGHT_MAP = {
60
+ ["THIN"]: "thin",
61
+ ["LIGHT"]: "light",
62
+ ["REGULAR"]: "regular",
63
+ ["BOLD"]: "bold",
64
+ ["FILL"]: "fill",
65
+ ["DUOTONE"]: "duotone"
66
+ };
67
+ /** Never squeezed by a flex row; color changes on the `duration.fast` curve like Text. */
68
+ var ROOT_CSS = "gx-Icon-ROOT_CSS-rjgxn1p";
69
+ var ICON_VARIANT_TO_CSS_MAP = {
70
+ ["PRIMARY"]: "gx-Icon-PRIMARY-p1o2vka7",
71
+ ["SECONDARY"]: "gx-Icon-SECONDARY-smpvpdm",
72
+ ["TERTIARY"]: "gx-Icon-TERTIARY-t1j7b465",
73
+ ["DISABLED"]: "gx-Icon-DISABLED-d1bri864",
74
+ ["INHERIT"]: "gx-Icon-INHERIT-iky75km",
75
+ ["SUCCESS"]: "gx-Icon-SUCCESS-s1oor3li",
76
+ ["WARNING"]: "gx-Icon-WARNING-w1awu5xi",
77
+ ["ERROR"]: "gx-Icon-ERROR-e1ucpgem"
78
+ };
79
+ /** Declared after the variant map so `hex` wins over it. */
80
+ var HEX_CSS = "gx-Icon-HEX_CSS-h8mope0";
42
81
  /**
43
- * Wraps a Phosphor icon so its color comes from a theme token rather than a
44
- * hardcoded `color` prop. Never render a Phosphor icon bare.
82
+ * One turn every six `duration.base` steps (900ms), linear, forever. The keyframes are global, so
83
+ * the name is `gx-` prefixed. `REDUCED_MOTION` stops it.
45
84
  */
46
- var Icon = ({ component: IconComponent, variant = "PRIMARY", size = 16, weight = "bold", alt }) => {
47
- const { theme } = useGalaxyTheme();
48
- return /* @__PURE__ */ jsx(IconComponent, {
85
+ var SPINNING_CSS = "gx-Icon-SPINNING_CSS-s1uiuyxj";
86
+ /** Wraps a Phosphor icon so its color, weight and motion come from the DLS. Never render a Phosphor icon bare. */
87
+ var Icon = forwardRef(function Icon({ component: PhosphorComponent, size = 16, weight = "REGULAR", variant = "PRIMARY", hex, ariaLabel, tooltip, isSpinning = false, id, className, style, ...rest }, ref) {
88
+ const variables = {};
89
+ if (hex !== void 0) variables["--gx-icon-hex"] = hex;
90
+ const hasTooltip = tooltip !== void 0 && tooltip !== null && tooltip !== false && tooltip !== "";
91
+ const icon = /* @__PURE__ */ jsx(PhosphorComponent, {
92
+ ...ariaLabel === void 0 ? { "aria-hidden": true } : {
93
+ role: "img",
94
+ "aria-label": ariaLabel
95
+ },
96
+ ...rest,
97
+ ref,
98
+ id,
49
99
  size,
50
- weight,
51
- color: getIconColor(variant, theme),
52
- alt
100
+ weight: ICON_WEIGHT_TO_PHOSPHOR_WEIGHT_MAP[weight],
101
+ color: "currentColor",
102
+ className: cx(ROOT_CSS, ICON_VARIANT_TO_CSS_MAP[variant], hex !== void 0 && HEX_CSS, isSpinning && SPINNING_CSS, className),
103
+ style: {
104
+ ...variables,
105
+ ...style
106
+ }
53
107
  });
54
- };
108
+ return hasTooltip ? /* @__PURE__ */ jsx(LazyTooltip, {
109
+ body: tooltip,
110
+ children: icon
111
+ }) : icon;
112
+ });
113
+ Icon.displayName = "Icon";
55
114
  //#endregion
56
115
  export { IconVariant, IconWeight, Icon as default };
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ /** @internal Props of `IconSlot`. */
3
+ export interface IconSlotProps {
4
+ /** The glyph size in px; the slot is that rounded up to even. */
5
+ px: number;
6
+ /** The `Icon` (or spinning ring) at `px`. */
7
+ children: ReactNode;
8
+ }
9
+ /** @internal An even, fixed-size box for an odd-sized icon: crisp at 1x, centered at 2x. */
10
+ export default function IconSlot({ px, children }: IconSlotProps): import("react").JSX.Element;
@@ -0,0 +1,32 @@
1
+ /* empty css */
2
+ import { styled } from "@linaria/react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/icons/internal/IconSlot.tsx
5
+ /**
6
+ * @internal The box a content icon sits in when its size is odd (Button's and Widget's 13 / 15 /
7
+ * 17px icons), private to the DLS (an `internal/` module: built, never a package export).
8
+ *
9
+ * An odd glyph centered in an even row (or an even icon-only square) lands on a half pixel, which
10
+ * blurs its strokes at 1x. The slot is the glyph's size rounded up to even, so it centers on whole
11
+ * pixels; inside it the glyph sits at the top-left on 1x screens (whole pixels, half a pixel off
12
+ * the true center) and centered from 1.5x up (half a CSS pixel is a whole device pixel there, so
13
+ * it is both crisp and exactly centered). The glyph's own center is then a half pixel, where an
14
+ * odd Phosphor glyph draws its middle strokes, so those land on whole pixels too.
15
+ *
16
+ * Fixed size whatever it holds, so a host can swap the icon for a spinning ring of the same px
17
+ * (Button `isLoading`) without changing its width.
18
+ */
19
+ var Root = /*#__PURE__*/ styled("span")({
20
+ name: "Root",
21
+ class: "gx-IconSlot-ryqtygb",
22
+ propsAsIs: false
23
+ });
24
+ /** @internal An even, fixed-size box for an odd-sized icon: crisp at 1x, centered at 2x. */
25
+ function IconSlot({ px, children }) {
26
+ return /* @__PURE__ */ jsx(Root, {
27
+ style: { "--gx-icon-slot": `${px % 2 === 0 ? px : px + 1}px` },
28
+ children
29
+ });
30
+ }
31
+ //#endregion
32
+ export { IconSlot as default };
@@ -0,0 +1,115 @@
1
+ import { type AriaAttributes, type CSSProperties, type ReactElement, type ReactNode, type RefAttributes } from "react";
2
+ import { Orientation } from "../theme/enums.js";
3
+ /** Rung of the group's checkboxes (Constitution III-A.4). Mapped to CheckboxInputSize and FieldSize one to one. */
4
+ export declare enum CheckboxGroupSize {
5
+ /** 12px boxes, caption labels. */
6
+ X_SMALL = "X_SMALL",
7
+ /** 14px boxes, body_sm labels. */
8
+ SMALL = "SMALL",
9
+ /** 16px boxes, body_md labels. The default. */
10
+ MEDIUM = "MEDIUM",
11
+ /** 16px boxes, body_lg labels. */
12
+ LARGE = "LARGE",
13
+ /** 18px boxes, body_lg labels. */
14
+ X_LARGE = "X_LARGE"
15
+ }
16
+ /** Fill of the unchecked boxes (Constitution V-A surface set). Mapped to CheckboxInputVariant one to one. */
17
+ export declare enum CheckboxGroupVariant {
18
+ /** `background.base`. */
19
+ BASE = "BASE",
20
+ /** `background.primary`. The default. */
21
+ PRIMARY = "PRIMARY",
22
+ /** `background.secondary`. */
23
+ SECONDARY = "SECONDARY",
24
+ /** `background.tertiary`. */
25
+ TERTIARY = "TERTIARY"
26
+ }
27
+ /** One choice in a CheckboxGroup. */
28
+ export interface CheckboxGroupOption<TId extends string = string> {
29
+ /** Stable identifier; what `value` holds. */
30
+ id: TId;
31
+ /** Text beside the box. */
32
+ label: string;
33
+ /** Help copy under the label. Text and inline `Link`s only. */
34
+ description?: ReactNode;
35
+ /**
36
+ * Disables this option only.
37
+ * @default false
38
+ */
39
+ isDisabled?: boolean;
40
+ }
41
+ export interface CheckboxGroupProps<TId extends string = string> extends AriaAttributes {
42
+ /** The choices, in display order. */
43
+ options: CheckboxGroupOption<TId>[];
44
+ /** Controlled ids of the checked options. Pass it with `onChange`. */
45
+ value?: TId[];
46
+ /**
47
+ * Initial checked ids while uncontrolled.
48
+ * @default []
49
+ */
50
+ defaultValue?: TId[];
51
+ /** Called with the new array of checked ids, in `options` order. */
52
+ onChange?: (value: TId[]) => void;
53
+ /** The question, rendered through `Field` above the options. For a description, a tooltip or a horizontal layout, wrap the group in `Field` instead. */
54
+ label?: string;
55
+ /** Message from the app, shown under the options through `Field`. It also marks every box invalid. */
56
+ error?: string;
57
+ /**
58
+ * Error border and `aria-invalid` on every box, without a message. `error` implies it.
59
+ * @default false
60
+ */
61
+ isError?: boolean;
62
+ /**
63
+ * Asterisk on the `label` (via `Field`). It does no validation.
64
+ * @default false
65
+ */
66
+ isRequired?: boolean;
67
+ /**
68
+ * `VERTICAL` stacks the options; `HORIZONTAL` puts them in a row that wraps.
69
+ * @default Orientation.VERTICAL
70
+ */
71
+ orientation?: Orientation;
72
+ /**
73
+ * Rung of every box and label, of the gaps, and of the `label` and `error` type.
74
+ * @default CheckboxGroupSize.MEDIUM
75
+ */
76
+ size?: CheckboxGroupSize;
77
+ /**
78
+ * Fill of every unchecked box, from the surface set. Ignored with `isGhost`.
79
+ * @default CheckboxGroupVariant.PRIMARY
80
+ */
81
+ variant?: CheckboxGroupVariant;
82
+ /**
83
+ * Ghost items: every unchecked box has no fill and keeps its hairline (1.x `TRANSPARENT`);
84
+ * passed to each CheckboxInput as `isGhost`.
85
+ * @default false
86
+ */
87
+ isGhost?: boolean;
88
+ /**
89
+ * Disables every option.
90
+ * @default false
91
+ */
92
+ isDisabled?: boolean;
93
+ /** Accessible name of the group when there is no `label` and no wrapping `Field` label. */
94
+ ariaLabel?: string;
95
+ /**
96
+ * DOM id of the group element. A wrapping `Field`'s id wins.
97
+ * @default useId()
98
+ */
99
+ id?: string;
100
+ /** Any `data-*` attribute, forwarded to the group element. */
101
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
102
+ /** Extra class on the root: the `Field` wrapper when the group renders one, otherwise the group element. */
103
+ className?: string;
104
+ /** Inline style on the root; only for setting CSS custom properties. */
105
+ style?: CSSProperties;
106
+ }
107
+ /**
108
+ * The public, generic call signature (`TId` inferred from `options`). Never called: it only types
109
+ * the default export. An arrow function rather than a type literal, so react-docgen-typescript
110
+ * reads the props for the Docs tab.
111
+ */
112
+ declare const CHECKBOX_GROUP_SIGNATURE: <TId extends string = string>(_props: CheckboxGroupProps<TId> & RefAttributes<HTMLDivElement>) => ReactElement | null;
113
+ /** A set of checkboxes answering one question; the value is the array of checked ids. */
114
+ declare const CheckboxGroup: typeof CHECKBOX_GROUP_SIGNATURE;
115
+ export default CheckboxGroup;
@@ -0,0 +1,183 @@
1
+ import { Orientation } from "../theme/enums.js";
2
+ import { useControlledState } from "../hooks/useControlledState.js";
3
+ import { useDevWarning } from "./internal/devWarn.js";
4
+ import { FieldContext } from "../hooks/useField.js";
5
+ import { useFieldWiring } from "./internal/fieldWiring.js";
6
+ import CheckboxInput, { CheckboxInputSize, CheckboxInputVariant } from "./CheckboxInput.js";
7
+ import Field, { FieldSize } from "./Field.js";
8
+ import { rootStyle, useOwnField } from "./internal/ownField.js";
9
+ /* empty css */
10
+ import { styled } from "@linaria/react";
11
+ import { forwardRef } from "react";
12
+ import { jsx } from "react/jsx-runtime";
13
+ import { cx } from "@linaria/core";
14
+ //#region src/inputs/CheckboxGroup.tsx
15
+ /**
16
+ * One question whose answer is any number of options ("Notify me about", "Sync these tables"). It
17
+ * renders a `CheckboxInput` per option, in a column or a wrapping row, holds the checked ids as one
18
+ * array with `value` / `defaultValue` / `onChange`, and names the set for assistive tech as a
19
+ * `group`. Like the text inputs, it takes `label` and `error` directly and renders them through
20
+ * `Field`; for a description, a label tooltip or a horizontal label column, wrap it in a `Field`.
21
+ *
22
+ * It does not validate ("choose at least one" is the app's `error`), draws no "select all" (a parent
23
+ * `CheckboxInput` with `isIndeterminate` does that), and is not a multi-select menu
24
+ * (`MultiSelectInput`). Exactly one choice is `RadioGroup`. New in 2.0 (1.x laid out
25
+ * `CheckboxInput`s by hand with one boolean per box).
26
+ */
27
+ /** Rung of the group's checkboxes (Constitution III-A.4). Mapped to CheckboxInputSize and FieldSize one to one. */
28
+ var CheckboxGroupSize = /* @__PURE__ */ function(CheckboxGroupSize) {
29
+ /** 12px boxes, caption labels. */
30
+ CheckboxGroupSize["X_SMALL"] = "X_SMALL";
31
+ /** 14px boxes, body_sm labels. */
32
+ CheckboxGroupSize["SMALL"] = "SMALL";
33
+ /** 16px boxes, body_md labels. The default. */
34
+ CheckboxGroupSize["MEDIUM"] = "MEDIUM";
35
+ /** 16px boxes, body_lg labels. */
36
+ CheckboxGroupSize["LARGE"] = "LARGE";
37
+ /** 18px boxes, body_lg labels. */
38
+ CheckboxGroupSize["X_LARGE"] = "X_LARGE";
39
+ return CheckboxGroupSize;
40
+ }({});
41
+ /** Fill of the unchecked boxes (Constitution V-A surface set). Mapped to CheckboxInputVariant one to one. */
42
+ var CheckboxGroupVariant = /* @__PURE__ */ function(CheckboxGroupVariant) {
43
+ /** `background.base`. */
44
+ CheckboxGroupVariant["BASE"] = "BASE";
45
+ /** `background.primary`. The default. */
46
+ CheckboxGroupVariant["PRIMARY"] = "PRIMARY";
47
+ /** `background.secondary`. */
48
+ CheckboxGroupVariant["SECONDARY"] = "SECONDARY";
49
+ /** `background.tertiary`. */
50
+ CheckboxGroupVariant["TERTIARY"] = "TERTIARY";
51
+ return CheckboxGroupVariant;
52
+ }({});
53
+ /** The group element. The first row sits in a control-height band (block inset = Field's label offset). */
54
+ var Root = /*#__PURE__*/ styled("div")({
55
+ name: "Root",
56
+ class: "gx-CheckboxGroup-r121frsz",
57
+ propsAsIs: false
58
+ });
59
+ /** A column, or a row that wraps. */
60
+ var CHECKBOX_GROUP_ORIENTATION_TO_CSS_MAP = {
61
+ [Orientation.VERTICAL]: "gx-CheckboxGroup-Orientation_VERTICAL-o112a0gt",
62
+ [Orientation.HORIZONTAL]: "gx-CheckboxGroup-Orientation_HORIZONTAL-o1y9waz3"
63
+ };
64
+ /** Row gap, column gap and block inset per rung (inset = (control rung − label line) / 2). */
65
+ var CHECKBOX_GROUP_SIZE_TO_CSS_MAP = {
66
+ ["X_SMALL"]: "gx-CheckboxGroup-X_SMALL-x1vxye07",
67
+ ["SMALL"]: "gx-CheckboxGroup-SMALL-sxibfpp",
68
+ ["MEDIUM"]: "gx-CheckboxGroup-MEDIUM-m6pqkmw",
69
+ ["LARGE"]: "gx-CheckboxGroup-LARGE-l1wbobiu",
70
+ ["X_LARGE"]: "gx-CheckboxGroup-X_LARGE-xtetomk"
71
+ };
72
+ /** Every box takes the group's rung. */
73
+ var CHECKBOX_GROUP_SIZE_TO_CHECKBOX_INPUT_SIZE_MAP = {
74
+ ["X_SMALL"]: CheckboxInputSize.X_SMALL,
75
+ ["SMALL"]: CheckboxInputSize.SMALL,
76
+ ["MEDIUM"]: CheckboxInputSize.MEDIUM,
77
+ ["LARGE"]: CheckboxInputSize.LARGE,
78
+ ["X_LARGE"]: CheckboxInputSize.X_LARGE
79
+ };
80
+ /** Every box takes the group's fill. */
81
+ var CHECKBOX_GROUP_VARIANT_TO_CHECKBOX_INPUT_VARIANT_MAP = {
82
+ ["BASE"]: CheckboxInputVariant.BASE,
83
+ ["PRIMARY"]: CheckboxInputVariant.PRIMARY,
84
+ ["SECONDARY"]: CheckboxInputVariant.SECONDARY,
85
+ ["TERTIARY"]: CheckboxInputVariant.TERTIARY
86
+ };
87
+ /** The `Field` the group renders for its own `label` / `error` uses the same rung. */
88
+ var CHECKBOX_GROUP_SIZE_TO_FIELD_SIZE_MAP = {
89
+ ["X_SMALL"]: FieldSize.X_SMALL,
90
+ ["SMALL"]: FieldSize.SMALL,
91
+ ["MEDIUM"]: FieldSize.MEDIUM,
92
+ ["LARGE"]: FieldSize.LARGE,
93
+ ["X_LARGE"]: FieldSize.X_LARGE
94
+ };
95
+ /** The uncontrolled default; never mutated. */
96
+ var EMPTY_IDS = [];
97
+ /** The group element and its boxes, wired to the nearest Field (the group's own or the app's). */
98
+ function GroupBody({ groupProps, forwardedRef, isRoot }) {
99
+ const { options, value, defaultValue, onChange, label: _label, error, isError = false, isRequired = false, orientation = Orientation.VERTICAL, size = "MEDIUM", variant = "PRIMARY", isGhost = false, isDisabled = false, ariaLabel, id, "aria-describedby": ariaDescribedBy, className, style, ...rest } = groupProps;
100
+ const wiring = useFieldWiring({
101
+ id,
102
+ ariaLabel,
103
+ ariaLabelAttribute: rest["aria-label"],
104
+ ariaLabelledBy: rest["aria-labelledby"],
105
+ ariaDescribedBy,
106
+ error,
107
+ isError,
108
+ isRequired
109
+ });
110
+ const { field, controlId: groupId, describedBy, hasName } = wiring;
111
+ const [checked, setChecked] = useControlledState({
112
+ value,
113
+ defaultValue: defaultValue ?? EMPTY_IDS,
114
+ onChange
115
+ });
116
+ const isInvalid = error !== void 0 || wiring.isInvalid;
117
+ useDevWarning(!hasName, "[@galaxy-io/dls] CheckboxGroup has no accessible name. Pass `label`, wrap it in a labelled `Field`, or set `ariaLabel`.");
118
+ /** The checked ids after one toggle: rendered options in `options` order, then unknown ids kept. */
119
+ const toggle = (optionId, isChecked) => {
120
+ const isOn = (candidate) => candidate === optionId ? isChecked : checked.includes(candidate);
121
+ const known = new Set(options.map((option) => option.id));
122
+ setChecked([...options.map((option) => option.id).filter(isOn), ...checked.filter((candidate) => !known.has(candidate))]);
123
+ };
124
+ return /* @__PURE__ */ jsx(Root, {
125
+ ref: forwardedRef,
126
+ role: "group",
127
+ id: groupId,
128
+ "aria-labelledby": field?.labelId,
129
+ "aria-label": ariaLabel,
130
+ "aria-describedby": describedBy,
131
+ "aria-disabled": isDisabled ? true : void 0,
132
+ ...rest,
133
+ className: cx(CHECKBOX_GROUP_ORIENTATION_TO_CSS_MAP[orientation], CHECKBOX_GROUP_SIZE_TO_CSS_MAP[size], isRoot && className),
134
+ ...rootStyle(isRoot, style),
135
+ children: /* @__PURE__ */ jsx(FieldContext.Provider, {
136
+ value: null,
137
+ children: options.map((option) => /* @__PURE__ */ jsx(CheckboxInput, {
138
+ label: option.label,
139
+ ...option.description === void 0 ? {} : { description: option.description },
140
+ size: CHECKBOX_GROUP_SIZE_TO_CHECKBOX_INPUT_SIZE_MAP[size],
141
+ variant: CHECKBOX_GROUP_VARIANT_TO_CHECKBOX_INPUT_VARIANT_MAP[variant],
142
+ isGhost,
143
+ isChecked: checked.includes(option.id),
144
+ isDisabled: isDisabled || option.isDisabled === true,
145
+ isError: isInvalid,
146
+ onChange: (isChecked) => toggle(option.id, isChecked)
147
+ }, option.id))
148
+ })
149
+ });
150
+ }
151
+ /** A set of checkboxes answering one question; the value is the array of checked ids. */
152
+ var CheckboxGroupBase = forwardRef(function CheckboxGroup(props, ref) {
153
+ const { label, error, isRequired = false, size = "MEDIUM" } = props;
154
+ const { id, className, style } = props;
155
+ const ownField = useOwnField({
156
+ componentName: "CheckboxGroup",
157
+ label,
158
+ error,
159
+ isRequired,
160
+ size: CHECKBOX_GROUP_SIZE_TO_FIELD_SIZE_MAP[size],
161
+ id,
162
+ className,
163
+ style
164
+ });
165
+ if (ownField !== null) return /* @__PURE__ */ jsx(Field, {
166
+ ...ownField,
167
+ children: /* @__PURE__ */ jsx(GroupBody, {
168
+ groupProps: props,
169
+ forwardedRef: ref,
170
+ isRoot: false
171
+ })
172
+ });
173
+ return /* @__PURE__ */ jsx(GroupBody, {
174
+ groupProps: props,
175
+ forwardedRef: ref,
176
+ isRoot: true
177
+ });
178
+ });
179
+ CheckboxGroupBase.displayName = "CheckboxGroup";
180
+ /** A set of checkboxes answering one question; the value is the array of checked ids. */
181
+ var CheckboxGroup = CheckboxGroupBase;
182
+ //#endregion
183
+ export { CheckboxGroupSize, CheckboxGroupVariant, CheckboxGroup as default };