@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
@@ -0,0 +1,109 @@
1
+ import { type AriaAttributes, type ChangeEvent, type CSSProperties, type InputHTMLAttributes, type ReactNode } from "react";
2
+ /** Canonical rungs; SwitchInput supports all five. The rung sets the row height, the track, the label step and the spinner. */
3
+ export declare enum SwitchInputSize {
4
+ /** 20px row, 24×14 track, 10px thumb, caption label. */
5
+ X_SMALL = "X_SMALL",
6
+ /** 24px row, 28×16 track, 12px thumb, body_sm label (the 1.x SMALL track). */
7
+ SMALL = "SMALL",
8
+ /** 32px row, 36×20 track, 16px thumb, body_md label. The default (1.x MEDIUM was 32×18). */
9
+ MEDIUM = "MEDIUM",
10
+ /** 36px row, 40×22 track, 18px thumb, body_lg label. */
11
+ LARGE = "LARGE",
12
+ /** 40px row, 44×24 track, 20px thumb, body_lg label. */
13
+ X_LARGE = "X_LARGE"
14
+ }
15
+ /**
16
+ * The surface the switch sits on (Constitution V-A surface set; 1.x `InputVariant` unchanged).
17
+ * The off track is always one neutral step stronger than that surface, so it never washes out. On
18
+ * an unknown or mixed surface keep the default: 1.x `TRANSPARENT` drew the same
19
+ * `background.tertiary` off track, so it was removed (color 2.1) with no `isGhost` replacement.
20
+ */
21
+ export declare enum SwitchInputVariant {
22
+ /** On `background.base`: off track `background.hovered`. */
23
+ BASE = "BASE",
24
+ /** On `background.primary`: off track `background.pressed`. */
25
+ PRIMARY = "PRIMARY",
26
+ /** On `background.secondary`: off track `background.tertiary`. The default. */
27
+ SECONDARY = "SECONDARY",
28
+ /** On `background.tertiary`: off track `background.tertiary`. */
29
+ TERTIARY = "TERTIARY"
30
+ }
31
+ /** Native `<input>` attributes, typed as React types them. */
32
+ type NativeInputAttributes = InputHTMLAttributes<HTMLInputElement>;
33
+ /** The native passthrough allowlist, each documented. */
34
+ interface SwitchInputNativeProps {
35
+ /** Form field name; a checked switch submits `name=on` in a native form. */
36
+ name?: NativeInputAttributes["name"];
37
+ /** Focus the switch on mount. */
38
+ autoFocus?: NativeInputAttributes["autoFocus"];
39
+ /** Focus handler on the `<input>`. */
40
+ onFocus?: NativeInputAttributes["onFocus"];
41
+ /** Blur handler on the `<input>`. */
42
+ onBlur?: NativeInputAttributes["onBlur"];
43
+ }
44
+ export interface SwitchInputProps extends AriaAttributes, SwitchInputNativeProps {
45
+ /** Controlled on/off state. Pass it with `onChange`. */
46
+ isChecked?: boolean;
47
+ /**
48
+ * Initial on/off state while uncontrolled.
49
+ * @default false
50
+ */
51
+ defaultIsChecked?: boolean;
52
+ /** Called with the new state (and the change event) when the user toggles the switch. Not called while disabled, loading or read-only. */
53
+ onChange?: (isChecked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
54
+ /** Visible name beside the track. Clicking it toggles the switch. */
55
+ label?: string;
56
+ /** Help copy under the label ("Pause without deleting."). Text and inline `Link`s only. */
57
+ description?: ReactNode;
58
+ /**
59
+ * Put the label and description after the track instead of before it.
60
+ * @default false
61
+ */
62
+ isLabelTrailing?: boolean;
63
+ /**
64
+ * Control rung: the row is 20 / 24 / 32 / 36 / 40px tall without a description.
65
+ * @default SwitchInputSize.MEDIUM
66
+ */
67
+ size?: SwitchInputSize;
68
+ /**
69
+ * The surface the switch sits on; the off track is one neutral step stronger.
70
+ * @default SwitchInputVariant.SECONDARY
71
+ */
72
+ variant?: SwitchInputVariant;
73
+ /**
74
+ * Not focusable and cannot be toggled. Shows the disabled look.
75
+ * @default false
76
+ */
77
+ isDisabled?: boolean;
78
+ /**
79
+ * A change is in flight: the thumb shows a spinner, toggling is blocked, and the switch keeps focus.
80
+ * @default false
81
+ */
82
+ isLoading?: boolean;
83
+ /**
84
+ * Focusable and announced, but cannot be toggled. No hover change.
85
+ * @default false
86
+ */
87
+ isReadOnly?: boolean;
88
+ /**
89
+ * Stretch to the parent's width. With the label leading, the track sits at the end of the row.
90
+ * @default false
91
+ */
92
+ fillWidth?: boolean;
93
+ /** Accessible name when there is no visible `label` and no labelled wrapping `Field`. */
94
+ ariaLabel?: string;
95
+ /**
96
+ * DOM id of the `<input>`. A wrapping `Field`'s id wins.
97
+ * @default useId()
98
+ */
99
+ id?: string;
100
+ /** Any `data-*` attribute, forwarded to the `<input>`. */
101
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
102
+ /** Extra class on the root. */
103
+ className?: string;
104
+ /** Inline style on the root; only for setting CSS custom properties. */
105
+ style?: CSSProperties;
106
+ }
107
+ /** An on/off switch for a setting that applies immediately, with its own label and description. */
108
+ declare const SwitchInput: import("react").ForwardRefExoticComponent<SwitchInputProps & import("react").RefAttributes<HTMLInputElement>>;
109
+ export default SwitchInput;
@@ -0,0 +1,248 @@
1
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
2
+ import { useControlledState } from "../hooks/useControlledState.js";
3
+ import { useDevWarning } from "./internal/devWarn.js";
4
+ import { useField } from "../hooks/useField.js";
5
+ import Spinner, { SpinnerSize, SpinnerVariant } from "../feedback/Spinner.js";
6
+ import { hasContent, isFilled } from "./internal/predicates.js";
7
+ import { joinIds } from "./internal/fieldWiring.js";
8
+ import { useIsBareField } from "./internal/bareField.js";
9
+ /* empty css */
10
+ import { styled } from "@linaria/react";
11
+ import { forwardRef, useId } from "react";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ import { cx } from "@linaria/core";
14
+ //#region src/inputs/SwitchInput.tsx
15
+ /**
16
+ * The on/off control for a setting that takes effect immediately ("Enabled", "Send alerts", "Show
17
+ * archived"). One native `<input type="checkbox" role="switch">` laid transparently over a pill
18
+ * track with a sliding thumb, with its own `label` beside the track and an optional `description`
19
+ * under it, so one component is a complete settings row. It holds a boolean with `isChecked` /
20
+ * `defaultIsChecked` / `onChange(isChecked, event)`; `isLoading` shows a spinner in the thumb and blocks toggles
21
+ * while keeping focus. On is the monochrome `solid.primary` fill.
22
+ *
23
+ * It never validates, submits or confirms. A choice applied on Save is `CheckboxInput`; a choice
24
+ * between named options is `ToggleInput`. Wrap it in `Field` for an error or required mark.
25
+ * Renamed from 1.x `ToggleInput` (Constitution XII.4): `InputSize` → `SwitchInputSize`,
26
+ * `InputVariant` → `SwitchInputVariant`, `value` → `isChecked`, `labelTooltip` and `width` removed.
27
+ */
28
+ /** Canonical rungs; SwitchInput supports all five. The rung sets the row height, the track, the label step and the spinner. */
29
+ var SwitchInputSize = /* @__PURE__ */ function(SwitchInputSize) {
30
+ /** 20px row, 24×14 track, 10px thumb, caption label. */
31
+ SwitchInputSize["X_SMALL"] = "X_SMALL";
32
+ /** 24px row, 28×16 track, 12px thumb, body_sm label (the 1.x SMALL track). */
33
+ SwitchInputSize["SMALL"] = "SMALL";
34
+ /** 32px row, 36×20 track, 16px thumb, body_md label. The default (1.x MEDIUM was 32×18). */
35
+ SwitchInputSize["MEDIUM"] = "MEDIUM";
36
+ /** 36px row, 40×22 track, 18px thumb, body_lg label. */
37
+ SwitchInputSize["LARGE"] = "LARGE";
38
+ /** 40px row, 44×24 track, 20px thumb, body_lg label. */
39
+ SwitchInputSize["X_LARGE"] = "X_LARGE";
40
+ return SwitchInputSize;
41
+ }({});
42
+ /**
43
+ * The surface the switch sits on (Constitution V-A surface set; 1.x `InputVariant` unchanged).
44
+ * The off track is always one neutral step stronger than that surface, so it never washes out. On
45
+ * an unknown or mixed surface keep the default: 1.x `TRANSPARENT` drew the same
46
+ * `background.tertiary` off track, so it was removed (color 2.1) with no `isGhost` replacement.
47
+ */
48
+ var SwitchInputVariant = /* @__PURE__ */ function(SwitchInputVariant) {
49
+ /** On `background.base`: off track `background.hovered`. */
50
+ SwitchInputVariant["BASE"] = "BASE";
51
+ /** On `background.primary`: off track `background.pressed`. */
52
+ SwitchInputVariant["PRIMARY"] = "PRIMARY";
53
+ /** On `background.secondary`: off track `background.tertiary`. The default. */
54
+ SwitchInputVariant["SECONDARY"] = "SECONDARY";
55
+ /** On `background.tertiary`: off track `background.tertiary`. */
56
+ SwitchInputVariant["TERTIARY"] = "TERTIARY";
57
+ return SwitchInputVariant;
58
+ }({});
59
+ /** The row: track then text in the DOM, exactly the rung's height without a description. */
60
+ var Root = /*#__PURE__*/ styled("div")({
61
+ name: "Root",
62
+ class: "gx-SwitchInput-re1ivwu",
63
+ propsAsIs: false
64
+ });
65
+ /** The pill. The input covers it, so hover on the input is hover on the track. */
66
+ var Track = /*#__PURE__*/ styled("span")({
67
+ name: "Track",
68
+ class: "gx-SwitchInput-Track-t5qpvv1",
69
+ propsAsIs: false
70
+ });
71
+ /** The sliding knob; holds the Spinner while loading. Positioned so its outer offset is 2px at every rung. */
72
+ var Thumb = /*#__PURE__*/ styled("span")({
73
+ name: "Thumb",
74
+ class: "gx-SwitchInput-Thumb-t1jqwma5",
75
+ propsAsIs: false
76
+ });
77
+ /** The real control: a transparent native checkbox over the whole track. */
78
+ var Control = /*#__PURE__*/ styled("input")({
79
+ name: "Control",
80
+ class: "gx-SwitchInput-Control-cjjj90p",
81
+ propsAsIs: false
82
+ });
83
+ /** Label over description; the label's first line centers on the track. */
84
+ var TextBlock = /*#__PURE__*/ styled("span")({
85
+ name: "TextBlock",
86
+ class: "gx-SwitchInput-TextBlock-t1tkpa7t",
87
+ propsAsIs: false
88
+ });
89
+ /** The `<label>` around the label Text; clicking it toggles the switch. */
90
+ var Label = /*#__PURE__*/ styled("label")({
91
+ name: "Label",
92
+ class: "gx-SwitchInput-Label-l1hm3zsx",
93
+ propsAsIs: false
94
+ });
95
+ /** Row height, track, thumb (= travel), gap and label line per rung. Track width = 2 × height − 4. */
96
+ var SWITCH_INPUT_SIZE_TO_CSS_MAP = {
97
+ ["X_SMALL"]: "gx-SwitchInput-X_SMALL-xtbk4la",
98
+ ["SMALL"]: "gx-SwitchInput-SMALL-sszeqx7",
99
+ ["MEDIUM"]: "gx-SwitchInput-MEDIUM-m1esdh64",
100
+ ["LARGE"]: "gx-SwitchInput-LARGE-ldceza6",
101
+ ["X_LARGE"]: "gx-SwitchInput-X_LARGE-x1vx0934"
102
+ };
103
+ /** Off-track fill per surface: one neutral step stronger than the surface the switch sits on. */
104
+ var SWITCH_INPUT_VARIANT_TO_CSS_MAP = {
105
+ ["BASE"]: "gx-SwitchInput-BASE-bachef7",
106
+ ["PRIMARY"]: "gx-SwitchInput-PRIMARY-p1nnx17d",
107
+ ["SECONDARY"]: "gx-SwitchInput-SECONDARY-s1hshoo0",
108
+ ["TERTIARY"]: "gx-SwitchInput-TERTIARY-tdz2ykz"
109
+ };
110
+ /** Label and description before the track (the default); the DOM order stays track first. */
111
+ var LABEL_LEADING_CSS = "gx-SwitchInput-LABEL_LEADING_CSS-l2i0zpv";
112
+ /** Stretch to the parent's width; the text block takes the free space. */
113
+ var FILL_WIDTH_CSS = "gx-SwitchInput-FILL_WIDTH_CSS-f8moo2b";
114
+ /** `fillWidth` with the label leading: the label starts the row and the track ends it (the 1.x look). */
115
+ var FILL_WIDTH_LABEL_LEADING_CSS = "gx-SwitchInput-FILL_WIDTH_LABEL_LEADING_CSS-fletk2z";
116
+ /** Off: the variant's neutral step, a `border.secondary` hairline and an `text.secondary` thumb. */
117
+ var OFF_CSS = "gx-SwitchInput-OFF_CSS-ow7nyud";
118
+ /** On: the `solid.primary` track and an on-solid thumb, slid one thumb width. */
119
+ var ON_CSS = "gx-SwitchInput-ON_CSS-ol1ilzg";
120
+ /** Hover on an editable off switch: `border.hovered` (the field-frame hover) and a brighter thumb. */
121
+ var OFF_HOVER_CSS = "gx-SwitchInput-OFF_HOVER_CSS-omhhgt3";
122
+ /** Hover and press on an editable on switch. */
123
+ var ON_HOVER_CSS = "gx-SwitchInput-ON_HOVER_CSS-ogtcfgw";
124
+ /** Disabled: the disabled fill and thumb with the `border.primary` resting hairline (field-frame note). */
125
+ var DISABLED_CSS = "gx-SwitchInput-DISABLED_CSS-dqj8tqw";
126
+ /** Red hairline at rest and on hover, from a wrapping Field's error. */
127
+ var ERROR_CSS = "gx-SwitchInput-ERROR_CSS-e11pamfu";
128
+ /** Loading: the Spinner draws in the thumb's color on a transparent thumb. */
129
+ var LOADING_CSS = "gx-SwitchInput-LOADING_CSS-li6rt8k";
130
+ /** Cursor for the input and the label, per blocked state (on `Root`). */
131
+ var DISABLED_CURSOR_CSS = "gx-SwitchInput-DISABLED_CURSOR_CSS-d1ub6p6x";
132
+ var LOADING_CURSOR_CSS = "gx-SwitchInput-LOADING_CURSOR_CSS-lysofzb";
133
+ var READ_ONLY_CURSOR_CSS = "gx-SwitchInput-READ_ONLY_CURSOR_CSS-r7de0fp";
134
+ /** Label step per rung (the canonical control text). */
135
+ var SWITCH_INPUT_SIZE_TO_TEXT_SIZE_MAP = {
136
+ ["X_SMALL"]: TextSize.CAPTION,
137
+ ["SMALL"]: TextSize.BODY_SM,
138
+ ["MEDIUM"]: TextSize.BODY_MD,
139
+ ["LARGE"]: TextSize.BODY_LG,
140
+ ["X_LARGE"]: TextSize.BODY_LG
141
+ };
142
+ /** Description step per rung (Field's help steps). */
143
+ var SWITCH_INPUT_SIZE_TO_DESCRIPTION_TEXT_SIZE_MAP = {
144
+ ["X_SMALL"]: TextSize.CAPTION,
145
+ ["SMALL"]: TextSize.CAPTION,
146
+ ["MEDIUM"]: TextSize.BODY_SM,
147
+ ["LARGE"]: TextSize.BODY_SM,
148
+ ["X_LARGE"]: TextSize.BODY_MD
149
+ };
150
+ /** The thumb's spinner per rung (identity). */
151
+ var SWITCH_INPUT_SIZE_TO_SPINNER_SIZE_MAP = {
152
+ ["X_SMALL"]: SpinnerSize.X_SMALL,
153
+ ["SMALL"]: SpinnerSize.SMALL,
154
+ ["MEDIUM"]: SpinnerSize.MEDIUM,
155
+ ["LARGE"]: SpinnerSize.LARGE,
156
+ ["X_LARGE"]: SpinnerSize.X_LARGE
157
+ };
158
+ /** An on/off switch for a setting that applies immediately, with its own label and description. */
159
+ var SwitchInput = forwardRef(function SwitchInput(props, ref) {
160
+ const { isChecked, defaultIsChecked = false, onChange, label, description, isLabelTrailing = false, size = "MEDIUM", variant = "SECONDARY", isDisabled = false, isLoading = false, isReadOnly = false, fillWidth = false, ariaLabel, id, "aria-describedby": ariaDescribedBy, className, style, ...rest } = props;
161
+ const field = useField();
162
+ const isBare = useIsBareField();
163
+ const generatedId = useId();
164
+ const inputId = field?.controlId ?? id ?? generatedId;
165
+ const descriptionId = `${inputId}-description`;
166
+ const [isOn, setIsOn] = useControlledState({
167
+ value: isChecked,
168
+ defaultValue: defaultIsChecked
169
+ });
170
+ const hasLabel = isFilled(label);
171
+ const hasDescription = hasContent(description);
172
+ const isInvalid = field?.isError === true;
173
+ const isBlocked = isLoading || isReadOnly;
174
+ const isEditable = !isDisabled && !isBlocked;
175
+ const describedBy = joinIds([
176
+ field?.describedBy,
177
+ hasDescription && descriptionId,
178
+ ariaDescribedBy
179
+ ]);
180
+ const hasFieldLabel = field?.labelId !== void 0;
181
+ useDevWarning(!(hasLabel || hasFieldLabel || isFilled(ariaLabel) || isFilled(rest["aria-labelledby"]) || isFilled(rest["aria-label"])), "[@galaxy-io/dls] SwitchInput has no accessible name. Pass `label`, wrap it in a labelled `Field`, or set `ariaLabel`.");
182
+ useDevWarning(hasLabel && hasFieldLabel, "[@galaxy-io/dls] SwitchInput has both its own `label` and a labelled wrapping `Field`; both name it. Use one, and give the switch `ariaLabel` inside a Field.");
183
+ const handleChange = (event) => {
184
+ const next = event.currentTarget.checked;
185
+ setIsOn(next);
186
+ onChange?.(next, event);
187
+ };
188
+ /** Loading and read-only keep focus and block the native toggle, so no change event fires. */
189
+ const handleClick = (event) => {
190
+ if (isBlocked) event.preventDefault();
191
+ };
192
+ /** Enter toggles too (1.x), through the native click so blocking and `onChange` apply as for a mouse click. */
193
+ const handleKeyDown = (event) => {
194
+ if (event.key !== "Enter" || event.nativeEvent.isComposing) return;
195
+ event.preventDefault();
196
+ event.currentTarget.click();
197
+ };
198
+ return /* @__PURE__ */ jsxs(Root, {
199
+ className: cx(SWITCH_INPUT_SIZE_TO_CSS_MAP[size], SWITCH_INPUT_VARIANT_TO_CSS_MAP[variant], !isLabelTrailing && LABEL_LEADING_CSS, fillWidth && FILL_WIDTH_CSS, fillWidth && !isLabelTrailing && FILL_WIDTH_LABEL_LEADING_CSS, isDisabled && DISABLED_CURSOR_CSS, !isDisabled && isLoading && LOADING_CURSOR_CSS, !isDisabled && !isLoading && isReadOnly && READ_ONLY_CURSOR_CSS, className),
200
+ ...style === void 0 ? {} : { style },
201
+ children: [/* @__PURE__ */ jsxs(Track, {
202
+ className: cx(isOn ? ON_CSS : OFF_CSS, isEditable && (isOn ? ON_HOVER_CSS : OFF_HOVER_CSS), isDisabled && DISABLED_CSS, isInvalid && ERROR_CSS, isLoading && LOADING_CSS, isBare && "gx-bareField-BARE_SWITCH_TRACK_CSS-b1rpy78w"),
203
+ children: [/* @__PURE__ */ jsx(Thumb, {
204
+ "aria-hidden": true,
205
+ children: isLoading && /* @__PURE__ */ jsx(Spinner, {
206
+ size: SWITCH_INPUT_SIZE_TO_SPINNER_SIZE_MAP[size],
207
+ variant: SpinnerVariant.INHERIT,
208
+ "aria-hidden": true
209
+ })
210
+ }), /* @__PURE__ */ jsx(Control, {
211
+ ref,
212
+ type: "checkbox",
213
+ role: "switch",
214
+ id: inputId,
215
+ checked: isOn,
216
+ onChange: handleChange,
217
+ onClick: handleClick,
218
+ onKeyDown: handleKeyDown,
219
+ disabled: isDisabled,
220
+ "aria-label": ariaLabel,
221
+ "aria-describedby": describedBy,
222
+ "aria-invalid": isInvalid ? true : void 0,
223
+ "aria-required": field?.isRequired === true ? true : void 0,
224
+ "aria-disabled": !isDisabled && isLoading ? true : void 0,
225
+ "aria-busy": isLoading ? true : void 0,
226
+ "aria-readonly": !isDisabled && !isLoading && isReadOnly ? true : void 0,
227
+ ...rest
228
+ })]
229
+ }), (hasLabel || hasDescription) && /* @__PURE__ */ jsxs(TextBlock, { children: [hasLabel && /* @__PURE__ */ jsx(Label, {
230
+ htmlFor: inputId,
231
+ children: /* @__PURE__ */ jsx(Text, {
232
+ as: "span",
233
+ size: SWITCH_INPUT_SIZE_TO_TEXT_SIZE_MAP[size],
234
+ variant: isDisabled ? TextVariant.DISABLED : TextVariant.PRIMARY,
235
+ children: label
236
+ })
237
+ }), hasDescription && /* @__PURE__ */ jsx(Text, {
238
+ as: "p",
239
+ id: descriptionId,
240
+ size: SWITCH_INPUT_SIZE_TO_DESCRIPTION_TEXT_SIZE_MAP[size],
241
+ variant: isDisabled ? TextVariant.DISABLED : TextVariant.TERTIARY,
242
+ children: description
243
+ })] })]
244
+ });
245
+ });
246
+ SwitchInput.displayName = "SwitchInput";
247
+ //#endregion
248
+ export { SwitchInputSize, SwitchInputVariant, SwitchInput as default };
@@ -0,0 +1,117 @@
1
+ import { type AriaAttributes, type CSSProperties, type InputHTMLAttributes } from "react";
2
+ /** Canonical rungs; TagInput supports all five. One line of the field is the rung height. */
3
+ export declare enum TagInputSize {
4
+ /** 20px line, 16px chips, caption text. */
5
+ X_SMALL = "X_SMALL",
6
+ /** 24px line, 16px chips, body_sm text. */
7
+ SMALL = "SMALL",
8
+ /** 32px line, 20px chips, body_md text. The default. */
9
+ MEDIUM = "MEDIUM",
10
+ /** 36px line, 24px chips, body_lg text. */
11
+ LARGE = "LARGE",
12
+ /** 40px line, 28px chips, body_lg text. */
13
+ X_LARGE = "X_LARGE"
14
+ }
15
+ /** Resting fill of the field (Constitution V-A surface set; the 1.x `InputVariant` members, unchanged). */
16
+ export declare enum TagInputVariant {
17
+ /** `background.base` fill. */
18
+ BASE = "BASE",
19
+ /** `background.primary` fill. The default. */
20
+ PRIMARY = "PRIMARY",
21
+ /** `background.secondary` fill. */
22
+ SECONDARY = "SECONDARY",
23
+ /** `background.tertiary` fill. */
24
+ TERTIARY = "TERTIARY"
25
+ }
26
+ /** Native `<input>` attributes, typed as React types them. */
27
+ type NativeInputAttributes = InputHTMLAttributes<HTMLInputElement>;
28
+ /** The native passthrough allowlist (`autoFocus`, `onFocus`, `onBlur`), each documented. */
29
+ interface TagInputNativeProps {
30
+ /** Focus the text input on mount. */
31
+ autoFocus?: NativeInputAttributes["autoFocus"];
32
+ /** Focus handler on the text input. */
33
+ onFocus?: NativeInputAttributes["onFocus"];
34
+ /** Blur handler on the text input. TagInput commits the typed text first. */
35
+ onBlur?: NativeInputAttributes["onBlur"];
36
+ }
37
+ export interface TagInputProps extends AriaAttributes, TagInputNativeProps {
38
+ /** Controlled list of tags, in the order they were added. Pass it with `onChange`. */
39
+ value?: string[];
40
+ /**
41
+ * Initial tags while uncontrolled.
42
+ * @default []
43
+ */
44
+ defaultValue?: string[];
45
+ /** Called with the whole next list (not a delta) when tags are added or removed. */
46
+ onChange?: (value: string[]) => void;
47
+ /**
48
+ * Single characters that commit the typed text as a tag, alongside Enter and blur. A paste is also split on newlines and tabs.
49
+ * @default [","]
50
+ */
51
+ separators?: string[];
52
+ /** The app's rule for one tag. Tags it returns `true` for render as error chips and mark the field invalid. TagInput never rejects a tag on its own. */
53
+ isTagInvalid?: (tag: string) => boolean;
54
+ /**
55
+ * Control rung: one line is 20 / 24 / 32 / 36 / 40px tall. Chips step down to fit inside it.
56
+ * @default TagInputSize.MEDIUM
57
+ */
58
+ size?: TagInputSize;
59
+ /**
60
+ * Resting fill, from the surface set. Ignored with `isGhost`.
61
+ * @default TagInputVariant.PRIMARY
62
+ */
63
+ variant?: TagInputVariant;
64
+ /**
65
+ * Ghost field: no fill and no hairline at rest; the frame appears on hover and focus (1.x
66
+ * `TRANSPARENT`). For tag fields set into a toolbar or a table cell. Chips are `ChipVariant.SECONDARY`.
67
+ * @default false
68
+ */
69
+ isGhost?: boolean;
70
+ /** Label above the field, rendered through `Field`. For a description or a horizontal layout, wrap it in `Field` instead. */
71
+ label?: string;
72
+ /** Hint shown while there are no tags and nothing is typed. It is never the label. */
73
+ placeholder?: string;
74
+ /** Message from the app, shown under the field through `Field`. It also turns the border red and sets `aria-invalid`. */
75
+ error?: string;
76
+ /**
77
+ * Error border and `aria-invalid` without a message. `error` implies it.
78
+ * @default false
79
+ */
80
+ isError?: boolean;
81
+ /**
82
+ * Nothing can be typed or removed; chips show the disabled look and lose their ×.
83
+ * @default false
84
+ */
85
+ isDisabled?: boolean;
86
+ /**
87
+ * Tags are shown and the field is focusable, but nothing can be typed or removed (chips have no ×).
88
+ * @default false
89
+ */
90
+ isReadOnly?: boolean;
91
+ /**
92
+ * Required marker on the `label` (via `Field`) and `aria-required`. It does no validation.
93
+ * @default false
94
+ */
95
+ isRequired?: boolean;
96
+ /**
97
+ * Stretch to the parent's width. Without it, the field is 200px wide.
98
+ * @default false
99
+ */
100
+ fillWidth?: boolean;
101
+ /** Accessible name when there is no visible label (no `label` and no wrapping `Field`). */
102
+ ariaLabel?: string;
103
+ /**
104
+ * DOM id of the text input. A wrapping `Field`'s id wins.
105
+ * @default useId()
106
+ */
107
+ id?: string;
108
+ /** Any `data-*` attribute, forwarded to the text input. */
109
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
110
+ /** Extra class on the root: the `Field` wrapper when TagInput renders one, otherwise the frame. */
111
+ className?: string;
112
+ /** Inline style on the root; only for setting CSS custom properties. */
113
+ style?: CSSProperties;
114
+ }
115
+ /** A field of free-form tags: type and press Enter or a separator, paste a list, remove with × or Backspace. */
116
+ declare const TagInput: import("react").ForwardRefExoticComponent<TagInputProps & import("react").RefAttributes<HTMLInputElement>>;
117
+ export default TagInput;