@galaxy-io/dls 1.6.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/README.md +47 -50
  2. package/biome/index.json +74 -0
  3. package/biome/plugins/no-hex-literal.grit +20 -0
  4. package/biome/plugins/no-inline-style.grit +13 -0
  5. package/biome/plugins/no-margin.grit +9 -0
  6. package/biome/plugins/warn/no-hex-literal.grit +23 -0
  7. package/biome/plugins/warn/no-inline-style.grit +13 -0
  8. package/biome/plugins/warn/no-margin.grit +9 -0
  9. package/dist/a11y/FocusScope.d.ts +44 -0
  10. package/dist/a11y/FocusScope.js +229 -0
  11. package/dist/a11y/VisuallyHidden.d.ts +21 -0
  12. package/dist/a11y/VisuallyHidden.js +30 -0
  13. package/dist/avatar/Avatar.d.ts +56 -14
  14. package/dist/avatar/Avatar.js +250 -96
  15. package/dist/avatar/AvatarGroup.d.ts +43 -0
  16. package/dist/avatar/AvatarGroup.js +153 -0
  17. package/dist/backgrounds/GridBackground.d.ts +48 -0
  18. package/dist/backgrounds/GridBackground.js +146 -0
  19. package/dist/beacons/Beacon.d.ts +86 -22
  20. package/dist/beacons/Beacon.js +170 -47
  21. package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
  22. package/dist/brand/GalaxyFilamentWordmark.js +39 -0
  23. package/dist/brand/GalaxyLogomark.d.ts +26 -0
  24. package/dist/brand/GalaxyLogomark.js +41 -0
  25. package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
  26. package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
  27. package/dist/brand/GalaxyWordmark.d.ts +30 -0
  28. package/dist/brand/GalaxyWordmark.js +63 -0
  29. package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
  30. package/dist/brand/brandMark.d.ts +26 -0
  31. package/dist/brand/brandMark.js +35 -0
  32. package/dist/buttons/Button.d.ts +148 -59
  33. package/dist/buttons/Button.js +437 -227
  34. package/dist/buttons/ButtonGroup.d.ts +38 -0
  35. package/dist/buttons/ButtonGroup.js +68 -0
  36. package/dist/buttons/CopyButton.d.ts +77 -0
  37. package/dist/buttons/CopyButton.js +65 -0
  38. package/dist/charts/AreaChart.d.ts +49 -0
  39. package/dist/charts/AreaChart.js +31 -0
  40. package/dist/charts/BarChart.d.ts +54 -67
  41. package/dist/charts/BarChart.js +136 -116
  42. package/dist/charts/ChartAxis.d.ts +35 -40
  43. package/dist/charts/ChartAxis.js +114 -90
  44. package/dist/charts/ChartCategoryTargets.d.ts +12 -26
  45. package/dist/charts/ChartCategoryTargets.js +32 -20
  46. package/dist/charts/ChartFrame.d.ts +69 -116
  47. package/dist/charts/ChartFrame.js +253 -119
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +27 -48
  51. package/dist/charts/ChartLegend.js +206 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +33 -20
  54. package/dist/charts/ChartPrimitives.d.ts +50 -305
  55. package/dist/charts/ChartPrimitives.js +65 -413
  56. package/dist/charts/ChartTooltip.d.ts +20 -26
  57. package/dist/charts/ChartTooltip.js +77 -40
  58. package/dist/charts/Heatmap.d.ts +35 -0
  59. package/dist/charts/Heatmap.js +295 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +159 -117
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +149 -135
  64. package/dist/charts/Sparkline.d.ts +107 -0
  65. package/dist/charts/Sparkline.js +244 -0
  66. package/dist/charts/StatChart.d.ts +37 -13
  67. package/dist/charts/StatChart.js +82 -35
  68. package/dist/charts/barChartGeometry.d.ts +138 -86
  69. package/dist/charts/barChartGeometry.js +122 -101
  70. package/dist/charts/barChartLegend.d.ts +14 -18
  71. package/dist/charts/barChartLegend.js +18 -13
  72. package/dist/charts/chartFormat.d.ts +12 -18
  73. package/dist/charts/chartFormat.js +20 -52
  74. package/dist/charts/chartPalette.d.ts +33 -0
  75. package/dist/charts/chartPalette.js +68 -0
  76. package/dist/charts/chartScales.d.ts +41 -108
  77. package/dist/charts/chartScales.js +62 -128
  78. package/dist/charts/constants.d.ts +96 -256
  79. package/dist/charts/constants.js +105 -275
  80. package/dist/charts/heatmapGeometry.d.ts +95 -0
  81. package/dist/charts/heatmapGeometry.js +155 -0
  82. package/dist/charts/lineChartGeometry.d.ts +108 -58
  83. package/dist/charts/lineChartGeometry.js +120 -78
  84. package/dist/charts/pieChartGeometry.d.ts +66 -40
  85. package/dist/charts/pieChartGeometry.js +68 -38
  86. package/dist/charts/types.d.ts +197 -466
  87. package/dist/charts/types.js +55 -144
  88. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  89. package/dist/charts/useCartesianChartLayout.js +47 -32
  90. package/dist/charts/useChartDimensions.d.ts +19 -40
  91. package/dist/charts/useChartDimensions.js +40 -56
  92. package/dist/charts/useChartFormatters.d.ts +6 -15
  93. package/dist/charts/useChartFormatters.js +4 -9
  94. package/dist/charts/useChartInteraction.d.ts +47 -116
  95. package/dist/charts/useChartInteraction.js +95 -71
  96. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  97. package/dist/charts/useChartTooltipPosition.js +14 -5
  98. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  99. package/dist/charts/useSeriesColorResolver.js +19 -12
  100. package/dist/chips/Chip.d.ts +155 -44
  101. package/dist/chips/Chip.js +329 -155
  102. package/dist/chips/ChipGroup.d.ts +53 -0
  103. package/dist/chips/ChipGroup.js +98 -0
  104. package/dist/drawer/Drawer.d.ts +81 -17
  105. package/dist/drawer/Drawer.js +370 -65
  106. package/dist/dropdown/Dropdown.d.ts +80 -63
  107. package/dist/dropdown/Dropdown.js +127 -129
  108. package/dist/editor/CodeEditor.d.ts +119 -40
  109. package/dist/editor/CodeEditor.js +490 -400
  110. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  111. package/dist/editor/CodeEditorReactWidget.js +28 -21
  112. package/dist/feedback/Alert.d.ts +49 -0
  113. package/dist/feedback/Alert.js +172 -0
  114. package/dist/feedback/EmptyState.d.ts +39 -0
  115. package/dist/feedback/EmptyState.js +109 -0
  116. package/dist/feedback/ProgressBar.d.ts +125 -0
  117. package/dist/feedback/ProgressBar.js +183 -0
  118. package/dist/feedback/ProgressCircle.d.ts +99 -0
  119. package/dist/feedback/ProgressCircle.js +187 -0
  120. package/dist/feedback/Skeleton.d.ts +69 -0
  121. package/dist/feedback/Skeleton.js +130 -0
  122. package/dist/feedback/Spinner.d.ts +63 -0
  123. package/dist/feedback/Spinner.js +141 -0
  124. package/dist/fonts.css +70 -0
  125. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  126. package/dist/hooks/internal/useIsClient.js +14 -0
  127. package/dist/hooks/useClipboard.d.ts +19 -0
  128. package/dist/hooks/useClipboard.js +45 -0
  129. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  130. package/dist/hooks/useControlledOpenState.js +19 -0
  131. package/dist/hooks/useControlledState.d.ts +19 -0
  132. package/dist/hooks/useControlledState.js +22 -0
  133. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  134. package/dist/hooks/useDebouncedValue.js +33 -0
  135. package/dist/hooks/useDisclosure.d.ts +26 -0
  136. package/dist/hooks/useDisclosure.js +36 -0
  137. package/dist/hooks/useDismiss.d.ts +23 -27
  138. package/dist/hooks/useDismiss.js +39 -27
  139. package/dist/hooks/useElementClientSize.d.ts +10 -10
  140. package/dist/hooks/useElementClientSize.js +8 -11
  141. package/dist/hooks/useElementWidth.d.ts +6 -13
  142. package/dist/hooks/useElementWidth.js +6 -14
  143. package/dist/hooks/useField.d.ts +47 -0
  144. package/dist/hooks/useField.js +40 -0
  145. package/dist/hooks/useHotkey.d.ts +77 -0
  146. package/dist/hooks/useHotkey.js +246 -0
  147. package/dist/hooks/useIsMac.d.ts +12 -0
  148. package/dist/hooks/useIsMac.js +27 -0
  149. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  150. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  151. package/dist/hooks/useLocalStorage.d.ts +28 -0
  152. package/dist/hooks/useLocalStorage.js +145 -0
  153. package/dist/hooks/useMediaQuery.d.ts +11 -0
  154. package/dist/hooks/useMediaQuery.js +23 -0
  155. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  156. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  157. package/dist/hooks/useResize.d.ts +42 -62
  158. package/dist/hooks/useResize.js +43 -31
  159. package/dist/icons/Icon.d.ts +64 -37
  160. package/dist/icons/Icon.js +96 -37
  161. package/dist/icons/internal/IconSlot.d.ts +10 -0
  162. package/dist/icons/internal/IconSlot.js +32 -0
  163. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  164. package/dist/inputs/CheckboxGroup.js +183 -0
  165. package/dist/inputs/CheckboxInput.d.ts +98 -28
  166. package/dist/inputs/CheckboxInput.js +218 -88
  167. package/dist/inputs/ColorInput.d.ts +115 -29
  168. package/dist/inputs/ColorInput.js +748 -326
  169. package/dist/inputs/CopyInput.d.ts +49 -20
  170. package/dist/inputs/CopyInput.js +57 -49
  171. package/dist/inputs/CronInput.d.ts +94 -0
  172. package/dist/inputs/CronInput.js +618 -0
  173. package/dist/inputs/DateInput.d.ts +175 -28
  174. package/dist/inputs/DateInput.js +1109 -451
  175. package/dist/inputs/DurationInput.d.ts +101 -0
  176. package/dist/inputs/DurationInput.js +441 -0
  177. package/dist/inputs/Field.d.ts +75 -0
  178. package/dist/inputs/Field.js +247 -0
  179. package/dist/inputs/Fieldset.d.ts +53 -0
  180. package/dist/inputs/Fieldset.js +149 -0
  181. package/dist/inputs/FileInput.d.ts +110 -0
  182. package/dist/inputs/FileInput.js +476 -0
  183. package/dist/inputs/Input.d.ts +148 -187
  184. package/dist/inputs/Input.js +339 -259
  185. package/dist/inputs/KeyValueInput.d.ts +120 -0
  186. package/dist/inputs/KeyValueInput.js +383 -0
  187. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  188. package/dist/inputs/MultiSelectInput.js +175 -559
  189. package/dist/inputs/NumberInput.d.ts +65 -9
  190. package/dist/inputs/NumberInput.js +197 -40
  191. package/dist/inputs/PasswordInput.d.ts +17 -12
  192. package/dist/inputs/PasswordInput.js +33 -33
  193. package/dist/inputs/PinInput.d.ts +117 -0
  194. package/dist/inputs/PinInput.js +364 -0
  195. package/dist/inputs/RadioGroup.d.ts +115 -0
  196. package/dist/inputs/RadioGroup.js +179 -0
  197. package/dist/inputs/RadioInput.d.ts +87 -24
  198. package/dist/inputs/RadioInput.js +182 -95
  199. package/dist/inputs/SearchInput.d.ts +66 -0
  200. package/dist/inputs/SearchInput.js +156 -0
  201. package/dist/inputs/SelectInput.d.ts +195 -55
  202. package/dist/inputs/SelectInput.js +1308 -446
  203. package/dist/inputs/SliderInput.d.ts +150 -30
  204. package/dist/inputs/SliderInput.js +441 -186
  205. package/dist/inputs/SwitchInput.d.ts +109 -0
  206. package/dist/inputs/SwitchInput.js +248 -0
  207. package/dist/inputs/TagInput.d.ts +117 -0
  208. package/dist/inputs/TagInput.js +408 -0
  209. package/dist/inputs/TextAreaInput.d.ts +146 -44
  210. package/dist/inputs/TextAreaInput.js +292 -198
  211. package/dist/inputs/TextInput.d.ts +4 -13
  212. package/dist/inputs/TextInput.js +13 -48
  213. package/dist/inputs/ToggleInput.d.ts +120 -22
  214. package/dist/inputs/ToggleInput.js +262 -116
  215. package/dist/inputs/internal/bareField.d.ts +18 -0
  216. package/dist/inputs/internal/bareField.js +38 -0
  217. package/dist/inputs/internal/devWarn.d.ts +7 -0
  218. package/dist/inputs/internal/devWarn.js +30 -0
  219. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  220. package/dist/inputs/internal/fieldFrame.js +64 -0
  221. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  222. package/dist/inputs/internal/fieldWiring.js +38 -0
  223. package/dist/inputs/internal/innerButton.d.ts +2 -0
  224. package/dist/inputs/internal/innerButton.js +24 -0
  225. package/dist/inputs/internal/ownField.d.ts +45 -0
  226. package/dist/inputs/internal/ownField.js +58 -0
  227. package/dist/inputs/internal/predicates.d.ts +9 -0
  228. package/dist/inputs/internal/predicates.js +11 -0
  229. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  230. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  231. package/dist/json/JsonViewer.d.ts +62 -0
  232. package/dist/json/JsonViewer.js +483 -0
  233. package/dist/layout/Box.d.ts +87 -0
  234. package/dist/layout/Box.js +109 -0
  235. package/dist/layout/Divider.d.ts +25 -0
  236. package/dist/layout/Divider.js +70 -0
  237. package/dist/layout/Flex.d.ts +139 -0
  238. package/dist/layout/Flex.js +165 -0
  239. package/dist/layout/FlexItem.d.ts +72 -0
  240. package/dist/layout/FlexItem.js +84 -0
  241. package/dist/layout/Grid.d.ts +140 -0
  242. package/dist/layout/Grid.js +178 -0
  243. package/dist/layout/Portal.d.ts +29 -0
  244. package/dist/layout/Portal.js +27 -0
  245. package/dist/layout/ResizablePanels.d.ts +88 -0
  246. package/dist/layout/ResizablePanels.js +198 -0
  247. package/dist/layout/ResizeHandle.d.ts +48 -0
  248. package/dist/layout/ResizeHandle.js +143 -0
  249. package/dist/layout/ScrollArea.d.ts +30 -0
  250. package/dist/layout/ScrollArea.js +138 -0
  251. package/dist/links/Link.d.ts +101 -1
  252. package/dist/links/Link.js +166 -4
  253. package/dist/lists/BulletedList.d.ts +25 -7
  254. package/dist/lists/BulletedList.js +72 -27
  255. package/dist/lists/DescriptionList.d.ts +91 -0
  256. package/dist/lists/DescriptionList.js +147 -0
  257. package/dist/menu/ContextMenu.d.ts +64 -0
  258. package/dist/menu/ContextMenu.js +34 -0
  259. package/dist/menu/Menu.d.ts +280 -0
  260. package/dist/menu/Menu.js +1003 -0
  261. package/dist/modal/ConfirmDialog.d.ts +55 -0
  262. package/dist/modal/ConfirmDialog.js +151 -0
  263. package/dist/modal/Modal.d.ts +64 -14
  264. package/dist/modal/Modal.js +189 -48
  265. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  266. package/dist/navigation/Breadcrumbs.js +243 -0
  267. package/dist/navigation/CommandPalette.d.ts +83 -0
  268. package/dist/navigation/CommandPalette.js +509 -0
  269. package/dist/navigation/Pagination.d.ts +87 -0
  270. package/dist/navigation/Pagination.js +300 -0
  271. package/dist/navigation/SidebarNav.d.ts +107 -0
  272. package/dist/navigation/SidebarNav.js +341 -0
  273. package/dist/navigation/Stepper.d.ts +52 -0
  274. package/dist/navigation/Stepper.js +207 -0
  275. package/dist/navigation/Tabs.d.ts +113 -0
  276. package/dist/navigation/Tabs.js +543 -0
  277. package/dist/navigation/Topbar.d.ts +20 -0
  278. package/dist/navigation/Topbar.js +62 -0
  279. package/dist/overlay/OverlayProvider.d.ts +28 -32
  280. package/dist/overlay/OverlayProvider.js +42 -93
  281. package/dist/overlay/useOverlay.d.ts +88 -12
  282. package/dist/overlay/useOverlay.js +220 -43
  283. package/dist/overlays/Popover.d.ts +114 -0
  284. package/dist/overlays/Popover.js +389 -0
  285. package/dist/shapes/Circle.d.ts +84 -8
  286. package/dist/shapes/Circle.js +122 -20
  287. package/dist/shapes/Square.d.ts +84 -8
  288. package/dist/shapes/Square.js +123 -20
  289. package/dist/styles/mixins.d.ts +35 -0
  290. package/dist/styles/mixins.js +60 -0
  291. package/dist/styles.css +1 -202
  292. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  293. package/dist/table/InfiniteSpreadsheet.js +762 -225
  294. package/dist/table/InfiniteTable.d.ts +116 -14
  295. package/dist/table/InfiniteTable.js +287 -429
  296. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  297. package/dist/table/SpreadsheetCellEditor.js +163 -84
  298. package/dist/table/TableCore.d.ts +252 -0
  299. package/dist/table/TableCore.js +1077 -0
  300. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  301. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  302. package/dist/table/types.d.ts +66 -244
  303. package/dist/table/types.js +0 -51
  304. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  305. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  306. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  307. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  308. package/dist/table/useTableColumnLayout.d.ts +90 -25
  309. package/dist/table/useTableColumnLayout.js +255 -50
  310. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  311. package/dist/table/useTableKeyboardNavigation.js +95 -71
  312. package/dist/table/useTableRowSelection.d.ts +24 -25
  313. package/dist/table/useTableRowSelection.js +57 -84
  314. package/dist/table/useTableVirtualizer.d.ts +20 -0
  315. package/dist/table/useTableVirtualizer.js +48 -0
  316. package/dist/text/Bold.d.ts +5 -6
  317. package/dist/text/Bold.js +16 -15
  318. package/dist/text/Code.d.ts +5 -6
  319. package/dist/text/Code.js +16 -25
  320. package/dist/text/CodeBlock.d.ts +77 -0
  321. package/dist/text/CodeBlock.js +373 -0
  322. package/dist/text/EditableText.d.ts +55 -15
  323. package/dist/text/EditableText.js +153 -135
  324. package/dist/text/Ellipsis.d.ts +34 -8
  325. package/dist/text/Ellipsis.js +55 -23
  326. package/dist/text/Kbd.d.ts +72 -0
  327. package/dist/text/Kbd.js +284 -0
  328. package/dist/text/MarkdownText.d.ts +27 -10
  329. package/dist/text/MarkdownText.js +317 -300
  330. package/dist/text/RequiredMarker.d.ts +17 -5
  331. package/dist/text/RequiredMarker.js +34 -36
  332. package/dist/text/Selectable.d.ts +5 -6
  333. package/dist/text/Selectable.js +16 -13
  334. package/dist/text/Span.d.ts +82 -0
  335. package/dist/text/Span.js +115 -0
  336. package/dist/text/Text.d.ts +128 -41
  337. package/dist/text/Text.js +209 -76
  338. package/dist/theme/GalaxyProvider.d.ts +75 -0
  339. package/dist/theme/GalaxyProvider.js +223 -0
  340. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  341. package/dist/theme/ThemeSwitcher.js +94 -0
  342. package/dist/theme/enums.d.ts +118 -0
  343. package/dist/theme/enums.js +144 -0
  344. package/dist/theme/tokens/dark.d.ts +2 -0
  345. package/dist/theme/tokens/dark.js +275 -0
  346. package/dist/theme/tokens/generate.d.ts +15 -0
  347. package/dist/theme/tokens/generate.js +47 -0
  348. package/dist/theme/tokens/light.d.ts +2 -0
  349. package/dist/theme/tokens/light.js +274 -0
  350. package/dist/theme/tokens/palette.d.ts +14 -0
  351. package/dist/theme/tokens/palette.js +153 -0
  352. package/dist/theme/tokens/scales.d.ts +26 -0
  353. package/dist/theme/tokens/scales.js +154 -0
  354. package/dist/theme/tokens/t.d.ts +3 -0
  355. package/dist/theme/tokens/t.js +25 -0
  356. package/dist/theme/tokens/types.d.ts +189 -0
  357. package/dist/theme/tokens/types.js +0 -0
  358. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  359. package/dist/theme/useGalaxyTheme.js +36 -0
  360. package/dist/theme/useInverseScope.d.ts +18 -0
  361. package/dist/theme/useInverseScope.js +33 -0
  362. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  363. package/dist/three/GalaxyLogomark3D.js +134 -0
  364. package/dist/three/assets/galaxy-logomark.js +4 -0
  365. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  366. package/dist/three/galaxyLogomark3DScene.js +165 -0
  367. package/dist/timeline/Timeline.d.ts +99 -0
  368. package/dist/timeline/Timeline.js +269 -0
  369. package/dist/toast/Toast.d.ts +43 -19
  370. package/dist/toast/Toast.js +130 -89
  371. package/dist/toast/ToastProvider.d.ts +23 -23
  372. package/dist/toast/ToastProvider.js +298 -101
  373. package/dist/toast/ToastViewport.d.ts +12 -0
  374. package/dist/toast/ToastViewport.js +210 -0
  375. package/dist/toast/useToast.d.ts +139 -5
  376. package/dist/toast/useToast.js +15 -13
  377. package/dist/tokens.css +654 -0
  378. package/dist/tooltip/Tooltip.d.ts +64 -44
  379. package/dist/tooltip/Tooltip.js +280 -73
  380. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  381. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  382. package/dist/transform/Fade.d.ts +33 -11
  383. package/dist/transform/Fade.js +71 -19
  384. package/dist/transform/Flasher.d.ts +25 -0
  385. package/dist/transform/Flasher.js +39 -0
  386. package/dist/transform/Rotate.d.ts +24 -12
  387. package/dist/transform/Rotate.js +36 -22
  388. package/dist/transform/ScaleFade.d.ts +36 -11
  389. package/dist/transform/ScaleFade.js +86 -28
  390. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  391. package/dist/transform/internal/CollapseMotion.js +65 -0
  392. package/dist/tree/Tree.d.ts +85 -0
  393. package/dist/tree/Tree.js +387 -0
  394. package/dist/tree/treeRow.d.ts +39 -0
  395. package/dist/tree/treeRow.js +75 -0
  396. package/dist/utils/colors.d.ts +46 -13
  397. package/dist/utils/colors.js +92 -34
  398. package/dist/utils/css.d.ts +23 -0
  399. package/dist/utils/css.js +30 -0
  400. package/dist/utils/format.d.ts +58 -0
  401. package/dist/utils/format.js +220 -0
  402. package/dist/vite/index.d.ts +16 -0
  403. package/dist/vite/index.js +52 -0
  404. package/dist/widget/Widget.d.ts +164 -48
  405. package/dist/widget/Widget.js +335 -96
  406. package/dist/widget/WidgetGroup.d.ts +36 -0
  407. package/dist/widget/WidgetGroup.js +103 -0
  408. package/package.json +851 -157
  409. package/dist/accordion/Accordion.d.ts +0 -54
  410. package/dist/accordion/Accordion.js +0 -183
  411. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  412. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  413. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  415. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  416. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  417. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  419. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  420. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  421. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  423. package/dist/assets/models/galaxy-animation.js +0 -136666
  424. package/dist/assets/models/galaxy-logomark.js +0 -4
  425. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  426. package/dist/avatar/AvatarShimmer.js +0 -22
  427. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  428. package/dist/backgrounds/CellGridBackground.js +0 -44
  429. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  430. package/dist/backgrounds/CrossGridBackground.js +0 -49
  431. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  432. package/dist/backgrounds/DotGridBackground.js +0 -47
  433. package/dist/badge/Badge.d.ts +0 -42
  434. package/dist/badge/Badge.js +0 -99
  435. package/dist/charts/ChartEmptyState.d.ts +0 -17
  436. package/dist/charts/ChartEmptyState.js +0 -29
  437. package/dist/charts/ProgressBar.d.ts +0 -29
  438. package/dist/charts/ProgressBar.js +0 -65
  439. package/dist/charts/chartTheme.d.ts +0 -18
  440. package/dist/charts/chartTheme.js +0 -26
  441. package/dist/containers/FlexItem.d.ts +0 -50
  442. package/dist/containers/FlexItem.js +0 -91
  443. package/dist/containers/FlexWrapper.d.ts +0 -96
  444. package/dist/containers/FlexWrapper.js +0 -143
  445. package/dist/containers/GridWrapper.d.ts +0 -79
  446. package/dist/containers/GridWrapper.js +0 -125
  447. package/dist/containers/Spacing.d.ts +0 -23
  448. package/dist/containers/Spacing.js +0 -59
  449. package/dist/containers/Wrapper.d.ts +0 -26
  450. package/dist/containers/Wrapper.js +0 -54
  451. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  452. package/dist/dividers/HorizontalDivider.js +0 -39
  453. package/dist/dividers/VerticalDivider.d.ts +0 -6
  454. package/dist/dividers/VerticalDivider.js +0 -21
  455. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  456. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  457. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  458. package/dist/icons/GalaxyLogomark.js +0 -27
  459. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  460. package/dist/icons/GalaxyLogomark3D.js +0 -319
  461. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  462. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  463. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  464. package/dist/icons/GalaxyWordmark.js +0 -25
  465. package/dist/inputs/MultiTextInput.d.ts +0 -32
  466. package/dist/inputs/MultiTextInput.js +0 -180
  467. package/dist/inputs/SwitcherInput.d.ts +0 -30
  468. package/dist/inputs/SwitcherInput.js +0 -81
  469. package/dist/inputs/hooks.d.ts +0 -10
  470. package/dist/inputs/hooks.js +0 -22
  471. package/dist/overlay/constants.d.ts +0 -28
  472. package/dist/overlay/constants.js +0 -37
  473. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  474. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  475. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  476. package/dist/resizable/VerticalResizeHandle.js +0 -39
  477. package/dist/table/SpreadsheetCell.d.ts +0 -21
  478. package/dist/table/SpreadsheetCell.js +0 -71
  479. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  480. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  481. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  482. package/dist/table/SpreadsheetMenuItem.js +0 -33
  483. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  484. package/dist/table/SpreadsheetPrimitives.js +0 -105
  485. package/dist/table/SpreadsheetRow.d.ts +0 -33
  486. package/dist/table/SpreadsheetRow.js +0 -73
  487. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  488. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  489. package/dist/table/TableExpandCell.d.ts +0 -11
  490. package/dist/table/TableExpandCell.js +0 -24
  491. package/dist/table/TableExpandedRow.d.ts +0 -16
  492. package/dist/table/TableExpandedRow.js +0 -77
  493. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  494. package/dist/table/TableHeaderCellContent.js +0 -48
  495. package/dist/table/TablePrimitives.d.ts +0 -313
  496. package/dist/table/TablePrimitives.js +0 -302
  497. package/dist/table/TableSelectCell.d.ts +0 -18
  498. package/dist/table/TableSelectCell.js +0 -27
  499. package/dist/table/TableStatusRow.d.ts +0 -18
  500. package/dist/table/TableStatusRow.js +0 -50
  501. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  502. package/dist/table/useSpreadsheetEditing.js +0 -41
  503. package/dist/table/useTableColumnResize.d.ts +0 -38
  504. package/dist/table/useTableColumnResize.js +0 -155
  505. package/dist/table/useTableRowExpansion.d.ts +0 -24
  506. package/dist/table/useTableRowExpansion.js +0 -62
  507. package/dist/table/utils.d.ts +0 -50
  508. package/dist/table/utils.js +0 -78
  509. package/dist/text/HotKeys.d.ts +0 -30
  510. package/dist/text/HotKeys.js +0 -74
  511. package/dist/text/Paragraph.d.ts +0 -33
  512. package/dist/text/Paragraph.js +0 -83
  513. package/dist/text/TextShimmer.d.ts +0 -14
  514. package/dist/text/TextShimmer.js +0 -34
  515. package/dist/theme/GalaxyTheme.d.ts +0 -67
  516. package/dist/theme/GalaxyTheme.js +0 -119
  517. package/dist/theme/constants.d.ts +0 -8
  518. package/dist/theme/constants.js +0 -38
  519. package/dist/theme/index.d.ts +0 -6
  520. package/dist/theme/index.js +0 -7
  521. package/dist/theme/types.d.ts +0 -195
  522. package/dist/theme/types.js +0 -10
  523. package/dist/theme/typography.d.ts +0 -2
  524. package/dist/theme/typography.js +0 -73
  525. package/dist/theme/variants/dark.d.ts +0 -2
  526. package/dist/theme/variants/dark.js +0 -125
  527. package/dist/theme/variants/light.d.ts +0 -2
  528. package/dist/theme/variants/light.js +0 -125
  529. package/dist/toast/ToastContainer.d.ts +0 -10
  530. package/dist/toast/ToastContainer.js +0 -31
  531. package/dist/toast/ToastWrapper.d.ts +0 -6
  532. package/dist/toast/ToastWrapper.js +0 -27
  533. package/dist/transform/Flash.d.ts +0 -7
  534. package/dist/transform/Flash.js +0 -18
  535. package/dist/transform/Spin.d.ts +0 -14
  536. package/dist/transform/Spin.js +0 -25
  537. package/dist/utils/linaria.d.ts +0 -1
  538. package/dist/utils/linaria.js +0 -8
@@ -1,35 +1,105 @@
1
- import { InputSize, InputVariant } from "./Input";
2
- export interface CheckboxInputProps {
3
- /**
4
- * Unchecked fill color. The checked fill is a state color and stays
5
- * `background.primaryAlt` so the tick keeps its contrast. Unlike the field
6
- * inputs, `TRANSPARENT` keeps the hairline border here — without it the box
7
- * would be invisible. @default InputVariant.PRIMARY
8
- */
9
- variant?: InputVariant;
10
- /** Box size — a hit target, so it steps 12 / 16 / 20px, not off the type scale.
11
- * @default InputSize.MEDIUM */
12
- size?: InputSize;
13
- /** Controlled state. The checkbox holds none of its own. */
14
- isChecked: boolean;
15
- /** Draw a dash instead of a tick — for a partially-selected group. */
1
+ import { type AriaAttributes, type ChangeEvent, type CSSProperties, type InputHTMLAttributes, type ReactNode } from "react";
2
+ /** Rung of the checkbox (Constitution III-A.4). The box is the rung's icon size. */
3
+ export declare enum CheckboxInputSize {
4
+ /** 12px box, caption label. */
5
+ X_SMALL = "X_SMALL",
6
+ /** 14px box, body_sm label. */
7
+ SMALL = "SMALL",
8
+ /** 16px box, body_md label. The default; the 1.x MEDIUM box. */
9
+ MEDIUM = "MEDIUM",
10
+ /** 16px box, body_lg label. */
11
+ LARGE = "LARGE",
12
+ /** 18px box, body_lg label. */
13
+ X_LARGE = "X_LARGE"
14
+ }
15
+ /** Fill of the unchecked box (Constitution V-A surface set; 1.x `InputVariant` unchanged). */
16
+ export declare enum CheckboxInputVariant {
17
+ /** `background.base`. */
18
+ BASE = "BASE",
19
+ /** `background.primary`. The default. */
20
+ PRIMARY = "PRIMARY",
21
+ /** `background.secondary`. */
22
+ SECONDARY = "SECONDARY",
23
+ /** `background.tertiary`. */
24
+ TERTIARY = "TERTIARY"
25
+ }
26
+ /** Native `<input>` attributes, typed as React types them. */
27
+ type NativeInputAttributes = InputHTMLAttributes<HTMLInputElement>;
28
+ /** The native passthrough allowlist, each documented. */
29
+ interface CheckboxInputNativeProps {
30
+ /** Form field name, passed to the `<input>`. */
31
+ name?: NativeInputAttributes["name"];
32
+ /** Focus the checkbox on mount. */
33
+ autoFocus?: NativeInputAttributes["autoFocus"];
34
+ /** Focus handler on the `<input>`. */
35
+ onFocus?: NativeInputAttributes["onFocus"];
36
+ /** Blur handler on the `<input>`. */
37
+ onBlur?: NativeInputAttributes["onBlur"];
38
+ }
39
+ export interface CheckboxInputProps extends AriaAttributes, CheckboxInputNativeProps {
40
+ /** Controlled checked state. Pass it with `onChange`. */
41
+ isChecked?: boolean;
42
+ /**
43
+ * Initial checked state while uncontrolled.
44
+ * @default false
45
+ */
46
+ defaultIsChecked?: boolean;
47
+ /** Called with the new state when the user toggles the box; the native change event is second (for a click, `event.nativeEvent` is the `MouseEvent`). */
48
+ onChange?: (isChecked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
49
+ /**
50
+ * Shows a dash and reports "mixed", for a parent of a partly selected group. Visual only: the next toggle still flips `isChecked`.
51
+ * @default false
52
+ */
16
53
  isIndeterminate?: boolean;
17
- /** Text beside the box. Omit it and set `ariaLabel` instead. */
54
+ /** Text beside the box. Clicking it toggles the box. */
18
55
  label?: string;
56
+ /** Help copy under the label. Text and inline `Link`s only. */
57
+ description?: ReactNode;
58
+ /**
59
+ * Rung: sets the box, the type steps and the gap.
60
+ * @default CheckboxInputSize.MEDIUM
61
+ */
62
+ size?: CheckboxInputSize;
63
+ /**
64
+ * Fill of the unchecked box, from the surface set. Ignored with `isGhost`.
65
+ * @default CheckboxInputVariant.PRIMARY
66
+ */
67
+ variant?: CheckboxInputVariant;
68
+ /**
69
+ * Ghost unchecked box: no fill, the hairline kept (1.x `TRANSPARENT`). For checkboxes on a
70
+ * surface whose own fill should show through, such as a selected table row.
71
+ * @default false
72
+ */
73
+ isGhost?: boolean;
74
+ /**
75
+ * Asterisk after the label and `aria-required`. It does no validation.
76
+ * @default false
77
+ */
19
78
  isRequired?: boolean;
79
+ /**
80
+ * Error border and `aria-invalid`. For a message, wrap the checkbox in `Field error`.
81
+ * @default false
82
+ */
83
+ isError?: boolean;
84
+ /**
85
+ * Not focusable or toggleable. Shows the disabled look.
86
+ * @default false
87
+ */
20
88
  isDisabled?: boolean;
21
- /** The originating event is passed through so callers can read modifiers. */
22
- onChange: (checked: boolean, event?: React.MouseEvent | React.KeyboardEvent) => void;
23
- /** Accessible name — required when the checkbox renders without a `label`. */
89
+ /** Accessible name when there is no `label` and no wrapping `Field` label. */
24
90
  ariaLabel?: string;
25
- /** Stops the click from bubbling, e.g. into a clickable table row. */
26
- stopClickPropagation?: boolean;
91
+ /**
92
+ * DOM id of the `<input>`. A wrapping `Field`'s id wins.
93
+ * @default useId()
94
+ */
95
+ id?: string;
96
+ /** Any `data-*` attribute, forwarded to the `<input>`. */
97
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
98
+ /** Extra class on the root `<label>`. */
99
+ className?: string;
100
+ /** Inline style on the root `<label>`; only for setting CSS custom properties. */
101
+ style?: CSSProperties;
27
102
  }
28
- /**
29
- * A checkbox with an optional label. Fully controlled — you own `isChecked`.
30
- *
31
- * `isIndeterminate` is purely visual and does not change what `onChange`
32
- * reports; the callback still flips against `isChecked`.
33
- */
34
- declare const CheckboxInput: ({ variant, size, isChecked, isIndeterminate, label, isRequired, isDisabled, onChange, ariaLabel, stopClickPropagation, }: CheckboxInputProps) => import("react").JSX.Element;
103
+ /** A labelled checkbox row: a native `<input type="checkbox">` drawn as a box, toggled by the whole row. */
104
+ declare const CheckboxInput: import("react").ForwardRefExoticComponent<CheckboxInputProps & import("react").RefAttributes<HTMLInputElement>>;
35
105
  export default CheckboxInput;
@@ -1,104 +1,234 @@
1
- import { withTheme } from "../theme/GalaxyTheme.js";
2
- import Text, { TextVariant } from "../text/Text.js";
1
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
2
+ import { useControlledState } from "../hooks/useControlledState.js";
3
3
  import Icon, { IconVariant, IconWeight } from "../icons/Icon.js";
4
- import FlexWrapper, { AlignItems } from "../containers/FlexWrapper.js";
4
+ import { useField } from "../hooks/useField.js";
5
5
  import RequiredMarker from "../text/RequiredMarker.js";
6
- import { InputSize, InputVariant, getInputControlSize, getInputSurfaceColor } from "./Input.js";
6
+ import { useDevWarning } from "./internal/devWarn.js";
7
+ import { hasContent, isFilled } from "./internal/predicates.js";
8
+ import { joinIds } from "./internal/fieldWiring.js";
7
9
  /* empty css */
8
10
  import { styled } from "@linaria/react";
11
+ import { forwardRef, useEffect, useId, useRef } from "react";
9
12
  import { jsx, jsxs } from "react/jsx-runtime";
13
+ import { cx } from "@linaria/core";
14
+ import { useMergeRefs } from "@floating-ui/react";
10
15
  import { CheckIcon, MinusIcon } from "@phosphor-icons/react";
11
16
  //#region src/inputs/CheckboxInput.tsx
12
- var _exp = () => ({ $isDisabled }) => $isDisabled ? "not-allowed" : "pointer";
13
- var _exp2 = () => ({ $isDisabled }) => $isDisabled ? .5 : 1;
14
- var _exp3 = () => ({ theme }) => theme.color.border.selected;
15
- var CheckboxContainer = withTheme(/*#__PURE__*/ styled("div")({
16
- name: "CheckboxContainer",
17
- class: "cythikj",
18
- propsAsIs: false,
19
- vars: {
20
- "cythikj-0": [_exp()],
21
- "cythikj-1": [_exp2()],
22
- "cythikj-2": [_exp3()]
23
- }
24
- }));
25
- var _exp5 = () => ({ $size }) => getInputControlSize($size);
26
- var _exp6 = () => ({ theme }) => theme.color.border.primary;
27
- var _exp7 = () => ({ theme, $variant, $isChecked, $isIndeterminate }) => $isChecked || $isIndeterminate ? theme.color.background.primaryAlt : getInputSurfaceColor(theme, $variant);
28
- var CheckboxWrapper = withTheme(/*#__PURE__*/ styled("div")({
29
- name: "CheckboxWrapper",
30
- class: "c1f4v2sg",
31
- propsAsIs: false,
32
- vars: {
33
- "c1f4v2sg-0": [_exp5()],
34
- "c1f4v2sg-1": [_exp6()],
35
- "c1f4v2sg-2": [_exp7()]
36
- }
37
- }));
38
- /** The tick sits inside the box, so it runs a step under `getInputIconSize`. */
39
- var CHECKBOX_INPUT_SIZE_TO_ICON_SIZE_MAP = {
40
- [InputSize.SMALL]: 10,
41
- [InputSize.MEDIUM]: 12,
42
- [InputSize.LARGE]: 14
43
- };
44
17
  /**
45
- * A checkbox with an optional label. Fully controlled — you own `isChecked`.
18
+ * One on/off choice the user confirms later, usually by submitting a form ("Email me when a sync
19
+ * fails", "I accept the terms", one row of a table selection). A native
20
+ * `<input type="checkbox">` drawn as a small box (`appearance: none`), with an optional `label`
21
+ * and `description` beside it; the whole row is a `<label>`, so clicking the text toggles. It holds
22
+ * a boolean with `isChecked` / `defaultIsChecked` / `onChange(isChecked, event)` and shows a dash
23
+ * for a partly selected group (`isIndeterminate`, also set on the native element so it reads
24
+ * "mixed"). Checked is the monochrome `solid.primary` fill with an on-solid tick.
46
25
  *
47
- * `isIndeterminate` is purely visual and does not change what `onChange`
48
- * reports; the callback still flips against `isChecked`.
26
+ * It never validates and renders no message: wrap it in `Field error` for one. An immediate on/off
27
+ * setting is `SwitchInput`. Replaces 1.x `CheckboxInput` (`InputSize` / `InputVariant` →
28
+ * `CheckboxInputSize` / `CheckboxInputVariant`; controlled or uncontrolled; native input instead
29
+ * of a `div role="checkbox"`; `stopClickPropagation` removed).
30
+ */
31
+ /** Rung of the checkbox (Constitution III-A.4). The box is the rung's icon size. */
32
+ var CheckboxInputSize = /* @__PURE__ */ function(CheckboxInputSize) {
33
+ /** 12px box, caption label. */
34
+ CheckboxInputSize["X_SMALL"] = "X_SMALL";
35
+ /** 14px box, body_sm label. */
36
+ CheckboxInputSize["SMALL"] = "SMALL";
37
+ /** 16px box, body_md label. The default; the 1.x MEDIUM box. */
38
+ CheckboxInputSize["MEDIUM"] = "MEDIUM";
39
+ /** 16px box, body_lg label. */
40
+ CheckboxInputSize["LARGE"] = "LARGE";
41
+ /** 18px box, body_lg label. */
42
+ CheckboxInputSize["X_LARGE"] = "X_LARGE";
43
+ return CheckboxInputSize;
44
+ }({});
45
+ /** Fill of the unchecked box (Constitution V-A surface set; 1.x `InputVariant` unchanged). */
46
+ var CheckboxInputVariant = /* @__PURE__ */ function(CheckboxInputVariant) {
47
+ /** `background.base`. */
48
+ CheckboxInputVariant["BASE"] = "BASE";
49
+ /** `background.primary`. The default. */
50
+ CheckboxInputVariant["PRIMARY"] = "PRIMARY";
51
+ /** `background.secondary`. */
52
+ CheckboxInputVariant["SECONDARY"] = "SECONDARY";
53
+ /** `background.tertiary`. */
54
+ CheckboxInputVariant["TERTIARY"] = "TERTIARY";
55
+ return CheckboxInputVariant;
56
+ }({});
57
+ /** The row: box column, then label and description. State lives in custom properties set here, so hovering anywhere lights the box. */
58
+ var Root = /*#__PURE__*/ styled("label")({
59
+ name: "Root",
60
+ class: "gx-CheckboxInput-rythikj",
61
+ propsAsIs: false
62
+ });
63
+ /** As tall as the label's first line, so the box centers on it. */
64
+ var Indicator = /*#__PURE__*/ styled("span")({
65
+ name: "Indicator",
66
+ class: "gx-CheckboxInput-Indicator-i1f4v2sg",
67
+ propsAsIs: false
68
+ });
69
+ /** The box's footprint; positions the mark over the input. */
70
+ var BoxWrap = /*#__PURE__*/ styled("span")({
71
+ name: "BoxWrap",
72
+ class: "gx-CheckboxInput-BoxWrap-b1t4qwib",
73
+ propsAsIs: false
74
+ });
75
+ /** The native checkbox, drawn as the box. It is the focused element, so `FOCUS_RING` applies as written. */
76
+ var Control = /*#__PURE__*/ styled("input")({
77
+ name: "Control",
78
+ class: "gx-CheckboxInput-Control-cig7nlw",
79
+ propsAsIs: false
80
+ });
81
+ /** The tick or dash, over the box; decorative and click-through. */
82
+ var Mark = /*#__PURE__*/ styled("span")({
83
+ name: "Mark",
84
+ class: "gx-CheckboxInput-Mark-m15cg9sy",
85
+ propsAsIs: false
86
+ });
87
+ /** Label over description, Field's label-to-description gap. */
88
+ var Content = /*#__PURE__*/ styled("span")({
89
+ name: "Content",
90
+ class: "gx-CheckboxInput-Content-c1o0d5kr",
91
+ propsAsIs: false
92
+ });
93
+ /** Box, first-line height and gap per rung: the box is the rung's icon size, the gap the rung's gap. */
94
+ var CHECKBOX_INPUT_SIZE_TO_CSS_MAP = {
95
+ ["X_SMALL"]: "gx-CheckboxInput-X_SMALL-xdordyk",
96
+ ["SMALL"]: "gx-CheckboxInput-SMALL-s1gpfkea",
97
+ ["MEDIUM"]: "gx-CheckboxInput-MEDIUM-m57f3d1",
98
+ ["LARGE"]: "gx-CheckboxInput-LARGE-l1vo2cvz",
99
+ ["X_LARGE"]: "gx-CheckboxInput-X_LARGE-xi8bh6d"
100
+ };
101
+ /** Rest look of the unchecked box (Input's table). */
102
+ var CHECKBOX_INPUT_VARIANT_TO_CSS_MAP = {
103
+ ["BASE"]: "gx-CheckboxInput-BASE-b14nzuna",
104
+ ["PRIMARY"]: "gx-CheckboxInput-PRIMARY-p1r4vxw9",
105
+ ["SECONDARY"]: "gx-CheckboxInput-SECONDARY-s1a5o682",
106
+ ["TERTIARY"]: "gx-CheckboxInput-TERTIARY-t1kopjc4"
107
+ };
108
+ /** `isGhost`: no fill, the hairline kept. Declared after the variant map, which it replaces. */
109
+ var GHOST_CSS = "gx-CheckboxInput-GHOST_CSS-gkp93fg";
110
+ /** The label and description column beside the box. */
111
+ var HAS_CONTENT_CSS = "gx-CheckboxInput-HAS_CONTENT_CSS-hp7bog7";
112
+ /** Hover and press on an enabled box: `border.hovered`, the field-frame hover (2026-10-03 resolution). */
113
+ var INTERACTIVE_CSS = "gx-CheckboxInput-INTERACTIVE_CSS-i1f2o1m9";
114
+ /** Checked or indeterminate: the `solid.primary` fill and an on-solid mark. */
115
+ var CHECKED_CSS = "gx-CheckboxInput-CHECKED_CSS-cnxcewa";
116
+ /** Hover and press on an enabled checked box; declared after `INTERACTIVE_CSS` so it wins. */
117
+ var CHECKED_INTERACTIVE_CSS = "gx-CheckboxInput-CHECKED_INTERACTIVE_CSS-c13ytekx";
118
+ /** Red hairline at rest, on hover and on press; a checked box keeps its `solid.primary` fill. */
119
+ var ERROR_CSS = "gx-CheckboxInput-ERROR_CSS-ef4a1f0";
120
+ /**
121
+ * Disabled, unchecked: the disabled fill (`background.pressed`, as disabled-checked) over
122
+ * the resting hairline, so a box with no label still reads as disabled; the label and cursor too.
49
123
  */
50
- var CheckboxInput = ({ variant = InputVariant.PRIMARY, size = InputSize.MEDIUM, isChecked, isIndeterminate = false, label, isRequired = false, isDisabled = false, onChange, ariaLabel, stopClickPropagation = false }) => {
51
- const handleClick = (event) => {
52
- if (stopClickPropagation) event.stopPropagation();
53
- if (!isDisabled) onChange(!isChecked, event);
124
+ var DISABLED_CSS = "gx-CheckboxInput-DISABLED_CSS-d1mz9pun";
125
+ /** Disabled, checked: Button's disabled `PRIMARY` fill, the resting hairline and a disabled mark. */
126
+ var DISABLED_CHECKED_CSS = "gx-CheckboxInput-DISABLED_CHECKED_CSS-dhn7d2h";
127
+ /** Tick and dash px per rung: whole-pixel insets inside the box. */
128
+ var CHECKBOX_INPUT_SIZE_TO_ICON_PX_MAP = {
129
+ ["X_SMALL"]: 10,
130
+ ["SMALL"]: 10,
131
+ ["MEDIUM"]: 12,
132
+ ["LARGE"]: 12,
133
+ ["X_LARGE"]: 14
134
+ };
135
+ /** Label step per rung (the canonical control text). */
136
+ var CHECKBOX_INPUT_SIZE_TO_TEXT_SIZE_MAP = {
137
+ ["X_SMALL"]: TextSize.CAPTION,
138
+ ["SMALL"]: TextSize.BODY_SM,
139
+ ["MEDIUM"]: TextSize.BODY_MD,
140
+ ["LARGE"]: TextSize.BODY_LG,
141
+ ["X_LARGE"]: TextSize.BODY_LG
142
+ };
143
+ /** Description step per rung (Field's help steps). */
144
+ var CHECKBOX_INPUT_SIZE_TO_HELP_TEXT_SIZE_MAP = {
145
+ ["X_SMALL"]: TextSize.CAPTION,
146
+ ["SMALL"]: TextSize.CAPTION,
147
+ ["MEDIUM"]: TextSize.BODY_SM,
148
+ ["LARGE"]: TextSize.BODY_SM,
149
+ ["X_LARGE"]: TextSize.BODY_MD
150
+ };
151
+ /** A labelled checkbox row: a native `<input type="checkbox">` drawn as a box, toggled by the whole row. */
152
+ var CheckboxInput = forwardRef(function CheckboxInput(props, ref) {
153
+ const { isChecked, defaultIsChecked = false, onChange, isIndeterminate = false, label, description, size = "MEDIUM", variant = "PRIMARY", isGhost = false, isRequired = false, isError = false, isDisabled = false, ariaLabel, id, "aria-describedby": ariaDescribedBy, className, style, ...rest } = props;
154
+ const field = useField();
155
+ const generatedId = useId();
156
+ const inputId = field?.controlId ?? id ?? generatedId;
157
+ const labelId = `${inputId}-label`;
158
+ const descriptionId = `${inputId}-description`;
159
+ const innerRef = useRef(null);
160
+ const mergedRef = useMergeRefs([innerRef, ref]);
161
+ const [checked, setChecked] = useControlledState({
162
+ value: isChecked,
163
+ defaultValue: defaultIsChecked
164
+ });
165
+ const hasLabel = isFilled(label);
166
+ const hasDescription = hasContent(description);
167
+ const isOn = checked || isIndeterminate;
168
+ const isInvalid = isError || field?.isError === true;
169
+ const isRequiredState = isRequired || field?.isRequired === true;
170
+ const describedBy = joinIds([
171
+ hasDescription && descriptionId,
172
+ field?.describedBy,
173
+ ariaDescribedBy
174
+ ]);
175
+ useDevWarning(!(hasLabel || field?.labelId !== void 0 || isFilled(ariaLabel) || isFilled(rest["aria-labelledby"]) || isFilled(rest["aria-label"])), "[@galaxy-io/dls] CheckboxInput has no accessible name. Pass `label`, wrap it in a labelled `Field`, or set `ariaLabel`.");
176
+ useEffect(() => {
177
+ if (innerRef.current !== null) innerRef.current.indeterminate = isIndeterminate;
178
+ });
179
+ const handleChange = (event) => {
180
+ const next = event.currentTarget.checked;
181
+ setChecked(next);
182
+ onChange?.(next, event);
54
183
  };
184
+ /** Enter toggles too (1.x), through the native click so `onChange` runs once, as for a mouse click. */
55
185
  const handleKeyDown = (event) => {
56
- if (event.key !== " " && event.key !== "Enter") return;
186
+ if (event.key !== "Enter" || event.nativeEvent.isComposing) return;
57
187
  event.preventDefault();
58
- if (stopClickPropagation) event.stopPropagation();
59
- if (!isDisabled) onChange(!isChecked, event);
60
- };
61
- const renderIcon = () => {
62
- if (isIndeterminate) return /* @__PURE__ */ jsx(Icon, {
63
- component: MinusIcon,
64
- size: CHECKBOX_INPUT_SIZE_TO_ICON_SIZE_MAP[size],
65
- weight: IconWeight.BOLD,
66
- variant: IconVariant.PRIMARY_ALT
67
- });
68
- if (isChecked) return /* @__PURE__ */ jsx(Icon, {
69
- component: CheckIcon,
70
- size: CHECKBOX_INPUT_SIZE_TO_ICON_SIZE_MAP[size],
71
- weight: IconWeight.BOLD,
72
- variant: IconVariant.PRIMARY_ALT
73
- });
74
- return null;
188
+ event.currentTarget.click();
75
189
  };
76
- return /* @__PURE__ */ jsxs(CheckboxContainer, {
77
- $isDisabled: isDisabled,
78
- $isRequired: isRequired,
79
- onClick: handleClick,
80
- onKeyDown: handleKeyDown,
81
- role: "checkbox",
82
- "aria-checked": isIndeterminate ? "mixed" : isChecked,
83
- "aria-disabled": isDisabled || void 0,
84
- "aria-label": ariaLabel,
85
- "aria-required": isRequired || void 0,
86
- tabIndex: isDisabled ? -1 : 0,
87
- children: [/* @__PURE__ */ jsx(CheckboxWrapper, {
88
- $variant: variant,
89
- $size: size,
90
- $isChecked: isChecked,
91
- $isIndeterminate: isIndeterminate,
92
- children: renderIcon()
93
- }), label && /* @__PURE__ */ jsxs(FlexWrapper, {
94
- alignItems: AlignItems.CENTER,
95
- gap: 1,
96
- children: [/* @__PURE__ */ jsx(Text, {
97
- variant: TextVariant.PRIMARY,
98
- children: label
99
- }), isRequired && /* @__PURE__ */ jsx(RequiredMarker, {})]
100
- })]
190
+ const iconPx = CHECKBOX_INPUT_SIZE_TO_ICON_PX_MAP[size];
191
+ const markIcon = isIndeterminate ? MinusIcon : checked ? CheckIcon : void 0;
192
+ return /* @__PURE__ */ jsxs(Root, {
193
+ className: cx(CHECKBOX_INPUT_SIZE_TO_CSS_MAP[size], isGhost ? GHOST_CSS : CHECKBOX_INPUT_VARIANT_TO_CSS_MAP[variant], (hasLabel || hasDescription) && HAS_CONTENT_CSS, !isDisabled && INTERACTIVE_CSS, isOn && CHECKED_CSS, isOn && !isDisabled && CHECKED_INTERACTIVE_CSS, isInvalid && ERROR_CSS, isDisabled && (isOn ? DISABLED_CHECKED_CSS : DISABLED_CSS), className),
194
+ ...style === void 0 ? {} : { style },
195
+ children: [/* @__PURE__ */ jsx(Indicator, { children: /* @__PURE__ */ jsxs(BoxWrap, { children: [/* @__PURE__ */ jsx(Control, {
196
+ ref: mergedRef,
197
+ type: "checkbox",
198
+ id: inputId,
199
+ checked,
200
+ onChange: handleChange,
201
+ onKeyDown: handleKeyDown,
202
+ disabled: isDisabled,
203
+ "aria-label": ariaLabel,
204
+ "aria-labelledby": hasLabel ? labelId : void 0,
205
+ "aria-describedby": describedBy,
206
+ "aria-invalid": isInvalid ? true : void 0,
207
+ "aria-required": isRequiredState ? true : void 0,
208
+ ...rest
209
+ }), /* @__PURE__ */ jsx(Mark, {
210
+ "aria-hidden": true,
211
+ children: markIcon !== void 0 && /* @__PURE__ */ jsx(Icon, {
212
+ component: markIcon,
213
+ size: iconPx,
214
+ weight: IconWeight.BOLD,
215
+ variant: IconVariant.INHERIT
216
+ })
217
+ })] }) }), (hasLabel || hasDescription) && /* @__PURE__ */ jsxs(Content, { children: [hasLabel && /* @__PURE__ */ jsxs(Text, {
218
+ as: "span",
219
+ id: labelId,
220
+ size: CHECKBOX_INPUT_SIZE_TO_TEXT_SIZE_MAP[size],
221
+ variant: isDisabled ? TextVariant.DISABLED : TextVariant.PRIMARY,
222
+ children: [label, isRequiredState && /* @__PURE__ */ jsx(RequiredMarker, {})]
223
+ }), hasDescription && /* @__PURE__ */ jsx(Text, {
224
+ as: "span",
225
+ id: descriptionId,
226
+ size: CHECKBOX_INPUT_SIZE_TO_HELP_TEXT_SIZE_MAP[size],
227
+ variant: isDisabled ? TextVariant.DISABLED : TextVariant.TERTIARY,
228
+ children: description
229
+ })] })]
101
230
  });
102
- };
231
+ });
232
+ CheckboxInput.displayName = "CheckboxInput";
103
233
  //#endregion
104
- export { CheckboxInput as default };
234
+ export { CheckboxInputSize, CheckboxInputVariant, CheckboxInput as default };
@@ -1,37 +1,123 @@
1
- import { InputSize, InputVariant } from "./Input";
2
- export interface ColorInputProps {
1
+ import { type AriaAttributes, type CSSProperties, type ReactElement } from "react";
2
+ import { type Hex } from "../utils/colors.js";
3
+ /** Canonical rungs; ColorInput supports all five (the Input rung table). */
4
+ export declare enum ColorInputSize {
5
+ /** 20px field, caption text, 12px swatch and icons, 10px caret. */
6
+ X_SMALL = "X_SMALL",
7
+ /** 24px field, body_sm text, 12px swatch and icons, 10px caret. */
8
+ SMALL = "SMALL",
9
+ /** 32px field, body_md text, 14px swatch and icons, 12px caret. The default (1.x `MEDIUM` was 28px). */
10
+ MEDIUM = "MEDIUM",
11
+ /** 36px field, body_lg text, 14px swatch and icons, 12px caret. */
12
+ LARGE = "LARGE",
13
+ /** 40px field, body_lg text, 16px swatch and icons, 12px caret. */
14
+ X_LARGE = "X_LARGE"
15
+ }
16
+ /** Resting fill of the field (Constitution V-A surface set; 1.x `InputVariant` unchanged). */
17
+ export declare enum ColorInputVariant {
18
+ /** `background.base` fill. */
19
+ BASE = "BASE",
20
+ /** `background.primary` fill. The default. */
21
+ PRIMARY = "PRIMARY",
22
+ /** `background.secondary` fill. */
23
+ SECONDARY = "SECONDARY",
24
+ /** `background.tertiary` fill. */
25
+ TERTIARY = "TERTIARY"
26
+ }
27
+ export interface ColorInputProps extends AriaAttributes {
28
+ /** Controlled color, `#rrggbb` (or `#rgb`). `null` shows the placeholder. Pass it with `onChange`. */
29
+ value?: Hex | null;
30
+ /**
31
+ * Initial color while uncontrolled.
32
+ * @default null
33
+ */
34
+ defaultValue?: Hex | null;
35
+ /** Called with lowercase `#rrggbb` when a color is committed (a drag ends, a key steps, a code is entered, a swatch is picked), and with `null` when cleared. */
36
+ onChange?: (value: Hex | null) => void;
37
+ /** Called on every change of the picked color, including mid-drag. Use it for a live preview; save from `onChange`. */
38
+ onPreviewChange?: (value: Hex) => void;
39
+ /** Swatches shown under the picker. Picking one commits it and closes the panel. */
40
+ presets?: Hex[];
41
+ /**
42
+ * Control rung: 20 / 24 / 32 / 36 / 40px tall. The picker panel is the same size at every rung.
43
+ * @default ColorInputSize.MEDIUM
44
+ */
45
+ size?: ColorInputSize;
46
+ /**
47
+ * Resting fill of the field, from the surface set. Ignored with `isGhost`.
48
+ * @default ColorInputVariant.PRIMARY
49
+ */
50
+ variant?: ColorInputVariant;
51
+ /**
52
+ * Ghost field: no fill and no hairline at rest; the frame appears on hover, focus and open (1.x
53
+ * `TRANSPARENT`). For colors set into a toolbar or a table cell. The panel is `PopoverVariant.BASE`.
54
+ * @default false
55
+ */
56
+ isGhost?: boolean;
57
+ /** Label above the field, rendered through `Field`. For a description or a horizontal layout, wrap the input in `Field` instead. */
3
58
  label?: string;
4
- /** Trigger surface color. @default InputVariant.PRIMARY */
5
- variant?: InputVariant;
6
- /** @default InputSize.MEDIUM */
7
- size?: InputSize;
8
- /** Controlled hex value, e.g. `"#1a1a1a"`. */
9
- value?: string | null;
59
+ /**
60
+ * Shown in the field while there is no value. Never the label.
61
+ * @default Select color…
62
+ */
10
63
  placeholder?: string;
11
- /** Called once the choice is committed. */
12
- onChange?: (value: string | null) => void;
13
- /** Called continuously while the user drags in the picker — for live preview. */
14
- onPreviewChange?: (value: string | null) => void;
15
- /** A number is px. */
16
- width?: number | string;
17
- fillWidth?: boolean;
64
+ /** Message from the app, shown under the field through `Field`. Also turns the border red and sets `aria-invalid`. */
65
+ error?: string;
66
+ /**
67
+ * Error border and `aria-invalid` without a message. `error` implies it.
68
+ * @default false
69
+ */
70
+ isError?: boolean;
71
+ /**
72
+ * Shows a clear button while there is a value and the field is editable. It calls `onChange(null)`.
73
+ * @default false
74
+ */
75
+ isClearable?: boolean;
76
+ /**
77
+ * Not focusable, never opens. Shows the disabled look.
78
+ * @default false
79
+ */
18
80
  isDisabled?: boolean;
81
+ /**
82
+ * Focusable and announced, shows the color, but never opens and has no clear button.
83
+ * @default false
84
+ */
85
+ isReadOnly?: boolean;
86
+ /**
87
+ * Required marker on the `label` (via `Field`) and `aria-required`. No validation.
88
+ * @default false
89
+ */
19
90
  isRequired?: boolean;
20
- /** Message under the field; also switches the border to the error color. */
21
- error?: string;
22
- /** Preset swatches shown above the picker. */
23
- pinnedHex?: string[];
24
- /** Controlled open state. Pair it with `onOpenChange`. */
91
+ /**
92
+ * Stretch to the parent's width. Without it, the field is 160px wide.
93
+ * @default false
94
+ */
95
+ fillWidth?: boolean;
96
+ /** Accessible name when there is no visible label (no `label` and no wrapping `Field`). Required with `children`. */
97
+ ariaLabel?: string;
98
+ /** Controlled open state of the picker panel. When set, ColorInput calls `onOpenChange` and lets the caller decide. */
25
99
  isOpen?: boolean;
100
+ /**
101
+ * Initial open state while uncontrolled.
102
+ * @default false
103
+ */
104
+ defaultIsOpen?: boolean;
105
+ /** Called with the requested state on click, the keyboard, a swatch, Escape, an outside press and focus leaving the panel. */
26
106
  onOpenChange?: (isOpen: boolean) => void;
27
- /** Replaces the default trigger. The picker still opens on click. */
28
- children?: React.ReactNode;
107
+ /** Custom trigger in place of the field: one focusable element that forwards its `ref` (a `Button`). The field's look props then do not apply. */
108
+ children?: ReactElement;
109
+ /**
110
+ * DOM id of the combobox element (or the custom trigger). A wrapping `Field`'s id wins.
111
+ * @default useId()
112
+ */
113
+ id?: string;
114
+ /** Any `data-*` attribute, forwarded to the combobox element (or the custom trigger). */
115
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
116
+ /** Extra class on the root: the `Field` wrapper when ColorInput renders one, otherwise the field wrapper. Not applied with `children`. */
117
+ className?: string;
118
+ /** Inline style on the root; only for setting CSS custom properties. Not applied with `children`. */
119
+ style?: CSSProperties;
29
120
  }
30
- /**
31
- * A hex color field with a picker popover. Fully controlled.
32
- *
33
- * `onPreviewChange` fires throughout the drag while `onChange` fires on commit —
34
- * drive a live preview from the first and persist from the second.
35
- */
36
- declare const ColorInput: ({ label, variant, size, value, placeholder, onChange, onPreviewChange, width, fillWidth, isDisabled, isRequired, error, pinnedHex, isOpen: controlledIsOpen, onOpenChange, children, }: ColorInputProps) => import("react").JSX.Element;
121
+ /** Choose one solid color as a hex value, in a field (or a custom trigger) that opens a picker. */
122
+ declare const ColorInput: import("react").ForwardRefExoticComponent<ColorInputProps & import("react").RefAttributes<HTMLElement>>;
37
123
  export default ColorInput;