@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,247 @@
1
+ import VisuallyHidden from "../a11y/VisuallyHidden.js";
2
+ import { Orientation, Placement } from "../theme/enums.js";
3
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
4
+ import Tooltip from "../tooltip/Tooltip.js";
5
+ import Icon, { IconVariant } from "../icons/Icon.js";
6
+ import { FieldContext } from "../hooks/useField.js";
7
+ import RequiredMarker from "../text/RequiredMarker.js";
8
+ import { hasContent } from "./internal/predicates.js";
9
+ import { joinIds } from "./internal/fieldWiring.js";
10
+ /* empty css */
11
+ import { styled } from "@linaria/react";
12
+ import { forwardRef, useId, useMemo } from "react";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ import { cx } from "@linaria/core";
15
+ import { InfoIcon } from "@phosphor-icons/react";
16
+ //#region src/inputs/Field.tsx
17
+ /**
18
+ * The frame around one form control: the label above it (or beside it, `HORIZONTAL`), an optional
19
+ * description, and the error and character counter under it. It wires them to the control through
20
+ * `FieldContext` (read with `useField()` from `hooks/useField`): the label's `htmlFor` is the
21
+ * Field's `id`, the description, counter and error ids go to `aria-describedby`, and `error` and
22
+ * `isRequired` reach the control as `aria-invalid` and `aria-required`.
23
+ *
24
+ * Field does not validate, hold a value or draw a box around the control. Inputs that take `label`
25
+ * directly render a Field internally; a control wrapped in a Field must not also take `label`.
26
+ * Replaces 1.x `InputLabel` and the label and error lines every 1.x input drew for itself.
27
+ */
28
+ /** Rung of the control the Field frames (Constitution III-A.4). Use the control's own size. */
29
+ var FieldSize = /* @__PURE__ */ function(FieldSize) {
30
+ /** 20px control: caption label, caption help. */
31
+ FieldSize["X_SMALL"] = "X_SMALL";
32
+ /** 24px control: body_sm label, caption help. */
33
+ FieldSize["SMALL"] = "SMALL";
34
+ /** 32px control: body_md label, body_sm help. The default; matches 1.x. */
35
+ FieldSize["MEDIUM"] = "MEDIUM";
36
+ /** 36px control: body_lg label, body_sm help. */
37
+ FieldSize["LARGE"] = "LARGE";
38
+ /** 40px control: body_lg label, body_md help. */
39
+ FieldSize["X_LARGE"] = "X_LARGE";
40
+ return FieldSize;
41
+ }({});
42
+ /** The frame. Layout comes from the orientation map; the parts name their grid areas. */
43
+ var Root = /*#__PURE__*/ styled("div")({
44
+ name: "Root",
45
+ class: "gx-Field-rp2xtcu",
46
+ propsAsIs: false
47
+ });
48
+ /**
49
+ * Label row and description. In `HORIZONTAL` it spans both rows of the label column and is pushed
50
+ * down by `--gx-field-header-offset` so the label's line centers on the control's first row.
51
+ */
52
+ var Header = /*#__PURE__*/ styled("div")({
53
+ name: "Header",
54
+ class: "gx-Field-Header-h1tweyt9",
55
+ propsAsIs: false
56
+ });
57
+ /** Label and info trigger at the start, `actions` at the end. */
58
+ var LabelRow = /*#__PURE__*/ styled("div")({
59
+ name: "LabelRow",
60
+ class: "gx-Field-LabelRow-l1kmsddo",
61
+ propsAsIs: false
62
+ });
63
+ /** The label and its info trigger. */
64
+ var LabelGroup = /*#__PURE__*/ styled("div")({
65
+ name: "LabelGroup",
66
+ class: "gx-Field-LabelGroup-lcak6xp",
67
+ propsAsIs: false
68
+ });
69
+ /** The `actions` slot at the end of the label row. */
70
+ var ActionsGroup = /*#__PURE__*/ styled("div")({
71
+ name: "ActionsGroup",
72
+ class: "gx-Field-ActionsGroup-a1mil3ie",
73
+ propsAsIs: false
74
+ });
75
+ /** The `<label>`: the name (with the asterisk inside) and "(optional)". Wraps, never truncates. */
76
+ var Label = /*#__PURE__*/ styled("label")({
77
+ name: "Label",
78
+ class: "gx-Field-Label-l1fpgi4g",
79
+ propsAsIs: false
80
+ });
81
+ /** The info icon button beside the label. Outside the `<label>`, so no interactive content nests in it. */
82
+ var InfoTrigger = /*#__PURE__*/ styled("button")({
83
+ name: "InfoTrigger",
84
+ class: "gx-Field-InfoTrigger-i18ubaw",
85
+ propsAsIs: false
86
+ });
87
+ /** Holds the control at its own width; a control with `fillWidth` fills the Field. */
88
+ var ControlSlot = /*#__PURE__*/ styled("div")({
89
+ name: "ControlSlot",
90
+ class: "gx-Field-ControlSlot-cb8lcf8",
91
+ propsAsIs: false
92
+ });
93
+ /** Error in column 1, counter right-aligned in column 2. */
94
+ var Footer = /*#__PURE__*/ styled("div")({
95
+ name: "Footer",
96
+ class: "gx-Field-Footer-fuxw401",
97
+ propsAsIs: false
98
+ });
99
+ /** Keeps the counter in the right column when there is no error. */
100
+ var COUNTER_CSS = "gx-Field-COUNTER_CSS-cgr2f4k";
101
+ /** Stack (1.x 4px rhythm) or a `1fr : 2fr` label column beside the control. */
102
+ var FIELD_ORIENTATION_TO_CSS_MAP = {
103
+ [Orientation.VERTICAL]: "gx-Field-Orientation_VERTICAL-o2oy45q",
104
+ [Orientation.HORIZONTAL]: "gx-Field-Orientation_HORIZONTAL-o11kkysf"
105
+ };
106
+ /** `--gx-field-label-offset` = (control height − label line) / 2, read by the horizontal layout. */
107
+ var FIELD_SIZE_TO_CSS_MAP = {
108
+ ["X_SMALL"]: "gx-Field-X_SMALL-x6a5r9b",
109
+ ["SMALL"]: "gx-Field-SMALL-s1hxuzdf",
110
+ ["MEDIUM"]: "gx-Field-MEDIUM-m1wgl2f1",
111
+ ["LARGE"]: "gx-Field-LARGE-lnkg4jz",
112
+ ["X_LARGE"]: "gx-Field-X_LARGE-x1qywk8g"
113
+ };
114
+ /** Stretch to the parent's width. */
115
+ var FILL_WIDTH_CSS = "gx-Field-FILL_WIDTH_CSS-fc3vdiy";
116
+ /** Label step per rung: the canonical control text (Constitution III-A.4). */
117
+ var FIELD_SIZE_TO_LABEL_TEXT_SIZE_MAP = {
118
+ ["X_SMALL"]: TextSize.CAPTION,
119
+ ["SMALL"]: TextSize.BODY_SM,
120
+ ["MEDIUM"]: TextSize.BODY_MD,
121
+ ["LARGE"]: TextSize.BODY_LG,
122
+ ["X_LARGE"]: TextSize.BODY_LG
123
+ };
124
+ /** Description, error and counter step per rung: one step quieter, floored at `caption`. */
125
+ var FIELD_SIZE_TO_HELP_TEXT_SIZE_MAP = {
126
+ ["X_SMALL"]: TextSize.CAPTION,
127
+ ["SMALL"]: TextSize.CAPTION,
128
+ ["MEDIUM"]: TextSize.BODY_SM,
129
+ ["LARGE"]: TextSize.BODY_SM,
130
+ ["X_LARGE"]: TextSize.BODY_MD
131
+ };
132
+ /** Info icon px per rung. */
133
+ var FIELD_SIZE_TO_ICON_PX_MAP = {
134
+ ["X_SMALL"]: 12,
135
+ ["SMALL"]: 12,
136
+ ["MEDIUM"]: 12,
137
+ ["LARGE"]: 14,
138
+ ["X_LARGE"]: 14
139
+ };
140
+ /** Label, description, error and counter around one control, wired to it for assistive tech. */
141
+ var Field = forwardRef(function Field({ children, label, description, error, isRequired = false, isOptional = false, labelTooltip, actions, maxLength, count = 0, orientation = Orientation.VERTICAL, size = "MEDIUM", fillWidth = false, id, className, style, ...rest }, ref) {
142
+ const generatedId = useId();
143
+ const controlId = id ?? generatedId;
144
+ const hasLabel = label !== void 0 && label !== "";
145
+ const hasTooltip = hasContent(labelTooltip);
146
+ const hasActions = hasContent(actions);
147
+ const hasDescription = hasContent(description);
148
+ const hasError = error !== void 0 && error !== "";
149
+ const hasCounter = maxLength !== void 0;
150
+ const labelId = hasLabel ? `${controlId}-label` : void 0;
151
+ const descriptionId = `${controlId}-description`;
152
+ const counterId = `${controlId}-counter`;
153
+ const errorId = `${controlId}-error`;
154
+ const describedBy = joinIds([
155
+ hasDescription && descriptionId,
156
+ hasCounter && counterId,
157
+ hasError && errorId
158
+ ]);
159
+ const contextValue = useMemo(() => ({
160
+ controlId,
161
+ labelId,
162
+ describedBy,
163
+ isRequired,
164
+ isError: hasError
165
+ }), [
166
+ controlId,
167
+ labelId,
168
+ describedBy,
169
+ isRequired,
170
+ hasError
171
+ ]);
172
+ const labelSize = FIELD_SIZE_TO_LABEL_TEXT_SIZE_MAP[size];
173
+ const helpSize = FIELD_SIZE_TO_HELP_TEXT_SIZE_MAP[size];
174
+ const hasLabelRow = hasLabel || hasTooltip || hasActions;
175
+ const hasHeader = hasLabelRow || hasDescription || orientation === Orientation.HORIZONTAL;
176
+ return /* @__PURE__ */ jsx(Root, {
177
+ ...rest,
178
+ ref,
179
+ className: cx(FIELD_ORIENTATION_TO_CSS_MAP[orientation], FIELD_SIZE_TO_CSS_MAP[size], fillWidth && FILL_WIDTH_CSS, className),
180
+ style,
181
+ children: /* @__PURE__ */ jsxs(FieldContext.Provider, {
182
+ value: contextValue,
183
+ children: [
184
+ hasHeader && /* @__PURE__ */ jsxs(Header, { children: [hasLabelRow && /* @__PURE__ */ jsxs(LabelRow, { children: [/* @__PURE__ */ jsxs(LabelGroup, { children: [hasLabel && /* @__PURE__ */ jsxs(Label, {
185
+ htmlFor: controlId,
186
+ id: labelId,
187
+ children: [/* @__PURE__ */ jsxs(Text, {
188
+ as: "span",
189
+ size: labelSize,
190
+ variant: TextVariant.SECONDARY,
191
+ children: [label, isRequired && /* @__PURE__ */ jsx(RequiredMarker, {})]
192
+ }), isOptional && !isRequired && /* @__PURE__ */ jsx(Text, {
193
+ as: "span",
194
+ size: labelSize,
195
+ variant: TextVariant.TERTIARY,
196
+ children: "(optional)"
197
+ })]
198
+ }), hasTooltip && /* @__PURE__ */ jsx(Tooltip, {
199
+ body: labelTooltip,
200
+ placement: Placement.RIGHT,
201
+ children: /* @__PURE__ */ jsx(InfoTrigger, {
202
+ type: "button",
203
+ "aria-label": "More information",
204
+ children: /* @__PURE__ */ jsx(Icon, {
205
+ component: InfoIcon,
206
+ size: FIELD_SIZE_TO_ICON_PX_MAP[size],
207
+ variant: IconVariant.INHERIT
208
+ })
209
+ })
210
+ })] }), hasActions && /* @__PURE__ */ jsx(ActionsGroup, { children: actions })] }), hasDescription && /* @__PURE__ */ jsx(Text, {
211
+ as: "p",
212
+ id: descriptionId,
213
+ size: helpSize,
214
+ variant: TextVariant.TERTIARY,
215
+ children: description
216
+ })] }),
217
+ /* @__PURE__ */ jsx(ControlSlot, { children }),
218
+ (hasError || hasCounter) && /* @__PURE__ */ jsxs(Footer, { children: [hasError && /* @__PURE__ */ jsx(Text, {
219
+ as: "p",
220
+ id: errorId,
221
+ size: helpSize,
222
+ variant: TextVariant.ERROR,
223
+ children: error
224
+ }), hasCounter && /* @__PURE__ */ jsxs(Text, {
225
+ as: "span",
226
+ id: counterId,
227
+ size: helpSize,
228
+ variant: count > maxLength ? TextVariant.ERROR : TextVariant.TERTIARY,
229
+ isTabular: true,
230
+ className: COUNTER_CSS,
231
+ children: [
232
+ count,
233
+ " / ",
234
+ maxLength,
235
+ /* @__PURE__ */ jsx(VisuallyHidden, {
236
+ as: "span",
237
+ children: " characters"
238
+ })
239
+ ]
240
+ })] })
241
+ ]
242
+ })
243
+ });
244
+ });
245
+ Field.displayName = "Field";
246
+ //#endregion
247
+ export { FieldSize, Field as default };
@@ -0,0 +1,53 @@
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ /** Rung of the controls the Fieldset groups (Constitution III-A.4). Use the controls' own size. */
3
+ export declare enum FieldsetSize {
4
+ /** 20px controls: caption title and help, 8px between children. */
5
+ X_SMALL = "X_SMALL",
6
+ /** 24px controls: body_sm title, caption help, 12px between children. */
7
+ SMALL = "SMALL",
8
+ /** 32px controls: body_md title, body_sm help, 16px between children. The default. */
9
+ MEDIUM = "MEDIUM",
10
+ /** 36px controls: body_lg title, body_sm help, 16px between children. */
11
+ LARGE = "LARGE",
12
+ /** 40px controls: body_lg title, body_md help, 16px between children. */
13
+ X_LARGE = "X_LARGE"
14
+ }
15
+ export interface FieldsetProps extends AriaAttributes {
16
+ /** The grouped controls, usually `Field`s. Laid out in a column. */
17
+ children?: ReactNode;
18
+ /** The group's title, rendered as the `<legend>`. Required: it is the group's accessible name. */
19
+ label: string;
20
+ /** Help copy under the title. Text and inline `Link`s only. */
21
+ description?: ReactNode;
22
+ /** Group-level message under the controls ("Choose at least one"). */
23
+ error?: string;
24
+ /**
25
+ * Shows the red asterisk after the title. Mark each required control too.
26
+ * @default false
27
+ */
28
+ isRequired?: boolean;
29
+ /**
30
+ * Shows "(optional)" after the title. Ignored when `isRequired`.
31
+ * @default false
32
+ */
33
+ isOptional?: boolean;
34
+ /**
35
+ * The rung of the controls inside. Sets the title and help type steps and the gap between children.
36
+ * @default FieldsetSize.MEDIUM
37
+ */
38
+ size?: FieldsetSize;
39
+ /**
40
+ * DOM id on the `<fieldset>`; the description and error ids derive from it.
41
+ * @default useId()
42
+ */
43
+ id?: string;
44
+ /** Any `data-*` attribute, forwarded to the `<fieldset>`. */
45
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
46
+ /** Extra class on the `<fieldset>`. */
47
+ className?: string;
48
+ /** Inline style on the `<fieldset>`; only for setting CSS custom properties. */
49
+ style?: CSSProperties;
50
+ }
51
+ /** A titled group of controls: `<fieldset>` + `<legend>`, description, children and group error. */
52
+ declare const Fieldset: import("react").ForwardRefExoticComponent<FieldsetProps & import("react").RefAttributes<HTMLFieldSetElement>>;
53
+ export default Fieldset;
@@ -0,0 +1,149 @@
1
+ import Text, { TextSize, TextVariant, TextWeight } from "../text/Text.js";
2
+ import RequiredMarker from "../text/RequiredMarker.js";
3
+ import { hasContent } from "./internal/predicates.js";
4
+ import { joinIds } from "./internal/fieldWiring.js";
5
+ /* empty css */
6
+ import { styled } from "@linaria/react";
7
+ import { forwardRef, useId } from "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { cx } from "@linaria/core";
10
+ //#region src/inputs/Fieldset.tsx
11
+ /**
12
+ * Names a group of related controls: a section of a form ("Connection", "Notifications") or the
13
+ * options that answer one question. It renders a native `<fieldset>` whose `<legend>` is the title
14
+ * (`label`), so assistive tech announces the group's name when focus enters it. An optional
15
+ * `description` sits under the title and an optional group-level `error` under the controls; both
16
+ * are linked from the `<fieldset>` with `aria-describedby`. The children stack in a column with the
17
+ * form's spacing for the rung (`size`).
18
+ *
19
+ * The legend is floated (`float: left; width: 100%`, every following part `clear: both`) so it lays
20
+ * out like a normal block in every browser instead of being drawn in the fieldset's border area,
21
+ * while still naming the group.
22
+ *
23
+ * Fieldset does not draw a box (a bordered panel is `Box`), validate, manage values or disable its
24
+ * controls; one control's label is `Field`.
25
+ */
26
+ /** Rung of the controls the Fieldset groups (Constitution III-A.4). Use the controls' own size. */
27
+ var FieldsetSize = /* @__PURE__ */ function(FieldsetSize) {
28
+ /** 20px controls: caption title and help, 8px between children. */
29
+ FieldsetSize["X_SMALL"] = "X_SMALL";
30
+ /** 24px controls: body_sm title, caption help, 12px between children. */
31
+ FieldsetSize["SMALL"] = "SMALL";
32
+ /** 32px controls: body_md title, body_sm help, 16px between children. The default. */
33
+ FieldsetSize["MEDIUM"] = "MEDIUM";
34
+ /** 36px controls: body_lg title, body_sm help, 16px between children. */
35
+ FieldsetSize["LARGE"] = "LARGE";
36
+ /** 40px controls: body_lg title, body_md help, 16px between children. */
37
+ FieldsetSize["X_LARGE"] = "X_LARGE";
38
+ return FieldsetSize;
39
+ }({});
40
+ /** The `<fieldset>`, stripped to a plain block that may shrink in a flex or grid track. */
41
+ var Root = /*#__PURE__*/ styled("fieldset")({
42
+ name: "Root",
43
+ class: "gx-Fieldset-r9krani",
44
+ propsAsIs: false
45
+ });
46
+ /** The floated `<legend>`: title, asterisk and "(optional)" on one wrapping line. */
47
+ var Legend = /*#__PURE__*/ styled("legend")({
48
+ name: "Legend",
49
+ class: "gx-Fieldset-Legend-l1r8t67q",
50
+ propsAsIs: false
51
+ });
52
+ /** Help copy under the title. */
53
+ var Description = /*#__PURE__*/ styled("div")({
54
+ name: "Description",
55
+ class: "gx-Fieldset-Description-d88yn2d",
56
+ propsAsIs: false
57
+ });
58
+ /** The grouped controls, in a column. The gap comes from the size map. */
59
+ var Body = /*#__PURE__*/ styled("div")({
60
+ name: "Body",
61
+ class: "gx-Fieldset-Body-bm2zy39",
62
+ propsAsIs: false
63
+ });
64
+ /** The group-level error under the controls. */
65
+ var ErrorRow = /*#__PURE__*/ styled("div")({
66
+ name: "ErrorRow",
67
+ class: "gx-Fieldset-ErrorRow-e9guo5n",
68
+ propsAsIs: false
69
+ });
70
+ /** Gap between children per rung (8 / 12 / 16 / 16 / 16px). */
71
+ var FIELDSET_SIZE_TO_CSS_MAP = {
72
+ ["X_SMALL"]: "gx-Fieldset-X_SMALL-xj0pwmy",
73
+ ["SMALL"]: "gx-Fieldset-SMALL-svpuxtn",
74
+ ["MEDIUM"]: "gx-Fieldset-MEDIUM-mur66uc",
75
+ ["LARGE"]: "gx-Fieldset-LARGE-ls5534t",
76
+ ["X_LARGE"]: "gx-Fieldset-X_LARGE-x1s55kv3"
77
+ };
78
+ /** Title step per rung: the canonical control text, the same as Field's label. */
79
+ var FIELDSET_SIZE_TO_LABEL_TEXT_SIZE_MAP = {
80
+ ["X_SMALL"]: TextSize.CAPTION,
81
+ ["SMALL"]: TextSize.BODY_SM,
82
+ ["MEDIUM"]: TextSize.BODY_MD,
83
+ ["LARGE"]: TextSize.BODY_LG,
84
+ ["X_LARGE"]: TextSize.BODY_LG
85
+ };
86
+ /** Description and error step per rung: the same as Field's help text. */
87
+ var FIELDSET_SIZE_TO_HELP_TEXT_SIZE_MAP = {
88
+ ["X_SMALL"]: TextSize.CAPTION,
89
+ ["SMALL"]: TextSize.CAPTION,
90
+ ["MEDIUM"]: TextSize.BODY_SM,
91
+ ["LARGE"]: TextSize.BODY_SM,
92
+ ["X_LARGE"]: TextSize.BODY_MD
93
+ };
94
+ /** A titled group of controls: `<fieldset>` + `<legend>`, description, children and group error. */
95
+ var Fieldset = forwardRef(function Fieldset({ children, label, description, error, isRequired = false, isOptional = false, size = "MEDIUM", id, "aria-describedby": ariaDescribedBy, className, style, ...rest }, ref) {
96
+ const generatedId = useId();
97
+ const rootId = id ?? generatedId;
98
+ const descriptionId = `${rootId}-description`;
99
+ const errorId = `${rootId}-error`;
100
+ const hasDescription = hasContent(description);
101
+ const hasError = error !== void 0 && error !== "";
102
+ const describedBy = joinIds([
103
+ hasDescription && descriptionId,
104
+ hasError && errorId,
105
+ ariaDescribedBy
106
+ ]);
107
+ const labelSize = FIELDSET_SIZE_TO_LABEL_TEXT_SIZE_MAP[size];
108
+ const helpSize = FIELDSET_SIZE_TO_HELP_TEXT_SIZE_MAP[size];
109
+ return /* @__PURE__ */ jsxs(Root, {
110
+ ...rest,
111
+ ref,
112
+ id: rootId,
113
+ "aria-describedby": describedBy,
114
+ className: cx(FIELDSET_SIZE_TO_CSS_MAP[size], className),
115
+ style,
116
+ children: [
117
+ /* @__PURE__ */ jsxs(Legend, { children: [/* @__PURE__ */ jsxs(Text, {
118
+ as: "span",
119
+ size: labelSize,
120
+ variant: TextVariant.PRIMARY,
121
+ weight: TextWeight.MEDIUM,
122
+ children: [label, isRequired && /* @__PURE__ */ jsx(RequiredMarker, {})]
123
+ }), isOptional && !isRequired && /* @__PURE__ */ jsx(Text, {
124
+ as: "span",
125
+ size: labelSize,
126
+ variant: TextVariant.TERTIARY,
127
+ children: "(optional)"
128
+ })] }),
129
+ hasDescription && /* @__PURE__ */ jsx(Description, { children: /* @__PURE__ */ jsx(Text, {
130
+ as: "p",
131
+ id: descriptionId,
132
+ size: helpSize,
133
+ variant: TextVariant.TERTIARY,
134
+ children: description
135
+ }) }),
136
+ /* @__PURE__ */ jsx(Body, { children }),
137
+ hasError && /* @__PURE__ */ jsx(ErrorRow, { children: /* @__PURE__ */ jsx(Text, {
138
+ as: "p",
139
+ id: errorId,
140
+ size: helpSize,
141
+ variant: TextVariant.ERROR,
142
+ children: error
143
+ }) })
144
+ ]
145
+ });
146
+ });
147
+ Fieldset.displayName = "Fieldset";
148
+ //#endregion
149
+ export { FieldsetSize, Fieldset as default };
@@ -0,0 +1,110 @@
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ /** Canonical rungs; FileInput exposes three. Sets the button, the file rows, and the zone's padding and text. */
3
+ export declare enum FileInputSize {
4
+ /** 24px button and rows, body_sm text, 16px zone padding. */
5
+ SMALL = "SMALL",
6
+ /** 32px button and rows, body_md text, 24px zone padding. The default. */
7
+ MEDIUM = "MEDIUM",
8
+ /** 36px button and rows, body_lg text, 32px zone padding. */
9
+ LARGE = "LARGE"
10
+ }
11
+ /** Resting fill of the drop zone (Constitution V-A surface set; the 1.x `InputVariant` members). */
12
+ export declare enum FileInputVariant {
13
+ /** `background.base` fill. */
14
+ BASE = "BASE",
15
+ /** `background.primary` fill. The default. */
16
+ PRIMARY = "PRIMARY",
17
+ /** `background.secondary` fill. */
18
+ SECONDARY = "SECONDARY",
19
+ /** `background.tertiary` fill. */
20
+ TERTIARY = "TERTIARY"
21
+ }
22
+ export interface FileInputProps extends AriaAttributes {
23
+ /** Controlled list of chosen files, in the order they were added. Pass it with `onChange`. */
24
+ value?: File[];
25
+ /**
26
+ * Initial files while uncontrolled.
27
+ * @default []
28
+ */
29
+ defaultValue?: File[];
30
+ /** Called with the whole next list when files are added or removed. */
31
+ onChange?: (value: File[]) => void;
32
+ /** Called with the files FileInput did not add: not matching `accept`, folders, or extras beyond one when not `isMultiple`. */
33
+ onReject?: (files: File[]) => void;
34
+ /** Allowed types in the native `accept` syntax: MIME types, `type/*` wildcards and `.ext` extensions, comma-separated. Applies to the picker and to drops. All files when unset. */
35
+ accept?: string;
36
+ /**
37
+ * Allow several files. Without it, choosing or dropping a file replaces the current one.
38
+ * @default false
39
+ */
40
+ isMultiple?: boolean;
41
+ /** Replaces a file row's remove button: upload progress, a status chip, or the app's own actions. Return `null` to leave the row without actions. */
42
+ renderFileActions?: (file: File, index: number) => ReactNode;
43
+ /**
44
+ * Rung of the button, the file rows and the zone's padding and text: 24 / 32 / 36px controls.
45
+ * @default FileInputSize.MEDIUM
46
+ */
47
+ size?: FileInputSize;
48
+ /**
49
+ * Resting fill of the drop zone, from the surface set. Ignored with `isGhost`.
50
+ * @default FileInputVariant.PRIMARY
51
+ */
52
+ variant?: FileInputVariant;
53
+ /**
54
+ * Ghost drop zone: no fill and no dashed hairline at rest; the dashed frame appears on hover, while
55
+ * the button inside has focus, and while files are dragged over it. For a zone set into a panel that
56
+ * already frames it.
57
+ * @default false
58
+ */
59
+ isGhost?: boolean;
60
+ /** Label above the control, rendered through `Field`. For a description (the accepted types and limits), wrap it in `Field` instead. */
61
+ label?: string;
62
+ /**
63
+ * Text in the drop zone above the button.
64
+ * @default "Drop files here" ("Drop a file here" without isMultiple)
65
+ */
66
+ placeholder?: string;
67
+ /** Message from the app ("File is larger than 50 MB"), shown under the control through `Field` and linked to the button. It also turns the zone's border red. */
68
+ error?: string;
69
+ /**
70
+ * Error border without a message. `error` implies it.
71
+ * @default false
72
+ */
73
+ isError?: boolean;
74
+ /**
75
+ * Nothing can be dropped, chosen or removed. Shows the disabled look.
76
+ * @default false
77
+ */
78
+ isDisabled?: boolean;
79
+ /**
80
+ * Shows the file list without the drop zone and without remove buttons.
81
+ * @default false
82
+ */
83
+ isReadOnly?: boolean;
84
+ /**
85
+ * Required marker on the `label` (via `Field`). It does no validation.
86
+ * @default false
87
+ */
88
+ isRequired?: boolean;
89
+ /**
90
+ * Stretch to the parent's width. Without it, the control is 320px wide.
91
+ * @default false
92
+ */
93
+ fillWidth?: boolean;
94
+ /** Accessible name of the group when there is no visible label (no `label` and no wrapping `Field`). */
95
+ ariaLabel?: string;
96
+ /**
97
+ * DOM id of the group. A wrapping `Field`'s id wins.
98
+ * @default useId()
99
+ */
100
+ id?: string;
101
+ /** Any `data-*` attribute, forwarded to the group root. */
102
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
103
+ /** Extra class on the root: the `Field` wrapper when FileInput renders one, otherwise the group. */
104
+ className?: string;
105
+ /** Inline style on the root; only for setting CSS custom properties. */
106
+ style?: CSSProperties;
107
+ }
108
+ /** A drop zone and a "Choose files" button over a hidden native file input, with the chosen files listed. */
109
+ declare const FileInput: import("react").ForwardRefExoticComponent<FileInputProps & import("react").RefAttributes<HTMLDivElement>>;
110
+ export default FileInput;