@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,34 @@
1
+ /** @internal The DLS hairline width, for frames that draw or subtract it in `calc()`. */
2
+ export declare const HAIRLINE_WIDTH = "0.5px";
3
+ /** @internal The surface set a field frame rests on (the values of every input's `variant`). */
4
+ export declare enum FieldSurface {
5
+ /** `background.base` fill. */
6
+ BASE = "BASE",
7
+ /** `background.primary` fill. The default. */
8
+ PRIMARY = "PRIMARY",
9
+ /** `background.secondary` fill. */
10
+ SECONDARY = "SECONDARY",
11
+ /** `background.tertiary` fill. */
12
+ TERTIARY = "TERTIARY"
13
+ }
14
+ /** @internal Rest look per surface: the fill and the `border.primary` hairline color. */
15
+ export declare const FIELD_SURFACE_TO_REST_MAP: Record<FieldSurface, string>;
16
+ /** @internal `isGhost` at rest: no fill and no hairline. Interpolate after the variant map, which it replaces. */
17
+ export declare const FIELD_GHOST_REST = "background: transparent; border-color: transparent;";
18
+ /**
19
+ * @internal Hover on an editable field (every surface, and a ghost field): the hairline steps up to
20
+ * `border.hovered`, stronger than `border.primary` in both themes (Constitution III.6).
21
+ */
22
+ export declare const FIELD_HOVER: string;
23
+ /**
24
+ * @internal The error hairline, declarations only: `border.error`, and the 1px inset focus line
25
+ * (`FIELD_FOCUS`) red too. Put it inside the frame's rest, hover and focus selectors.
26
+ */
27
+ export declare const FIELD_ERROR: string;
28
+ /**
29
+ * @internal Disabled: the variant's resting fill and hairline are kept (`border.disabled` is not
30
+ * used on frames); the field reads as disabled through `text.disabled` and the cursor.
31
+ */
32
+ export declare const FIELD_DISABLED = "cursor: not-allowed;";
33
+ /** @internal Stretch to the parent's width (the frame, and the `Field` wrapper when there is one). */
34
+ export declare const FIELD_FILL_WIDTH = "display: flex; width: 100%;";
@@ -0,0 +1,64 @@
1
+ import { t } from "../../theme/tokens/t.js";
2
+ //#region src/inputs/internal/fieldFrame.ts
3
+ /**
4
+ * @internal The field-frame look every framed input shares (Input, TextAreaInput, SelectInput,
5
+ * TagInput, PinInput, DurationInput, DateInput, ColorInput, FileInput, SliderInput, ...): the
6
+ * resting fill and hairline per surface variant, the ghost rest, the hover hairline, the error
7
+ * hairline, the disabled cursor and the fill-width box. Private on purpose (an `internal/` module:
8
+ * built, never a package export).
9
+ *
10
+ * Each export is a CSS-text fragment (a plain string, evaluated at build time by wyw), like the
11
+ * mixins in `styles/mixins`: interpolate it inside the component's own `css` block instead of
12
+ * re-declaring the rules. They are deliberately **not** `css` classes. The stylesheet lists a
13
+ * module's CSS after the CSS of the modules it imports (`scripts/css-order.mjs`), so a class
14
+ * declared here would land *before* every component's `styled` Root; the Root's own
15
+ * `border: 0.5px solid transparent`, `display: inline-flex` and `cursor: text` would then win over
16
+ * the fill, the hairline, `fillWidth` and the disabled cursor at equal specificity. Interpolating
17
+ * keeps each class where the component declares it, so the cascade order is unchanged.
18
+ *
19
+ * A component keeps its public `<Component>Variant` enum (the surface set) and a full
20
+ * `<COMPONENT>_VARIANT_TO_CSS_MAP: Record<<Component>Variant, string>` of `css` blocks whose bodies
21
+ * are these fragments, keyed through `FieldSurface`.
22
+ */
23
+ /** @internal The DLS hairline width, for frames that draw or subtract it in `calc()`. */
24
+ var HAIRLINE_WIDTH = "0.5px";
25
+ /** @internal The surface set a field frame rests on (the values of every input's `variant`). */
26
+ var FieldSurface = /* @__PURE__ */ function(FieldSurface) {
27
+ /** `background.base` fill. */
28
+ FieldSurface["BASE"] = "BASE";
29
+ /** `background.primary` fill. The default. */
30
+ FieldSurface["PRIMARY"] = "PRIMARY";
31
+ /** `background.secondary` fill. */
32
+ FieldSurface["SECONDARY"] = "SECONDARY";
33
+ /** `background.tertiary` fill. */
34
+ FieldSurface["TERTIARY"] = "TERTIARY";
35
+ return FieldSurface;
36
+ }({});
37
+ /** @internal Rest look per surface: the fill and the `border.primary` hairline color. */
38
+ var FIELD_SURFACE_TO_REST_MAP = {
39
+ ["BASE"]: `background: ${t.color.background.base}; border-color: ${t.color.border.primary};`,
40
+ ["PRIMARY"]: `background: ${t.color.background.primary}; border-color: ${t.color.border.primary};`,
41
+ ["SECONDARY"]: `background: ${t.color.background.secondary}; border-color: ${t.color.border.primary};`,
42
+ ["TERTIARY"]: `background: ${t.color.background.tertiary}; border-color: ${t.color.border.primary};`
43
+ };
44
+ /** @internal `isGhost` at rest: no fill and no hairline. Interpolate after the variant map, which it replaces. */
45
+ var FIELD_GHOST_REST = "background: transparent; border-color: transparent;";
46
+ /**
47
+ * @internal Hover on an editable field (every surface, and a ghost field): the hairline steps up to
48
+ * `border.hovered`, stronger than `border.primary` in both themes (Constitution III.6).
49
+ */
50
+ var FIELD_HOVER = `&:hover { border-color: ${t.color.border.hovered}; }`;
51
+ /**
52
+ * @internal The error hairline, declarations only: `border.error`, and the 1px inset focus line
53
+ * (`FIELD_FOCUS`) red too. Put it inside the frame's rest, hover and focus selectors.
54
+ */
55
+ var FIELD_ERROR = `border-color: ${t.color.border.error}; outline-color: ${t.color.border.error};`;
56
+ /**
57
+ * @internal Disabled: the variant's resting fill and hairline are kept (`border.disabled` is not
58
+ * used on frames); the field reads as disabled through `text.disabled` and the cursor.
59
+ */
60
+ var FIELD_DISABLED = "cursor: not-allowed;";
61
+ /** @internal Stretch to the parent's width (the frame, and the `Field` wrapper when there is one). */
62
+ var FIELD_FILL_WIDTH = "display: flex; width: 100%;";
63
+ //#endregion
64
+ export { FIELD_DISABLED, FIELD_ERROR, FIELD_FILL_WIDTH, FIELD_GHOST_REST, FIELD_HOVER, FIELD_SURFACE_TO_REST_MAP, FieldSurface, HAIRLINE_WIDTH };
@@ -0,0 +1,50 @@
1
+ import { type FieldContextValue } from "../../hooks/useField.js";
2
+ /** @internal What a control gives the wiring: its own props, as destructured. */
3
+ export interface FieldWiringOptions {
4
+ /** The control's own `id` prop. */
5
+ id: string | undefined;
6
+ /** The control's `ariaLabel` prop. */
7
+ ariaLabel: string | undefined;
8
+ /** A pass-through `aria-label` (from `...rest`). */
9
+ ariaLabelAttribute?: string | undefined;
10
+ /** A pass-through `aria-labelledby` (from `...rest`). */
11
+ ariaLabelledBy?: string | undefined;
12
+ /** The app's `aria-describedby`, appended after the Field's and the control's own ids. */
13
+ ariaDescribedBy: string | undefined;
14
+ /**
15
+ * Ids of the control's own descriptive parts (a prefix, a counter), in order; `false` skips one.
16
+ * A function receives the resolved control id, for part ids derived from it.
17
+ */
18
+ describedByIds?: readonly (string | false)[] | ((controlId: string) => readonly (string | false)[]);
19
+ /** The control's `error` message; a non-empty one marks it invalid. */
20
+ error?: string | undefined;
21
+ /**
22
+ * The control's `isError`.
23
+ * @default false
24
+ */
25
+ isError?: boolean;
26
+ /**
27
+ * The control's `isRequired`.
28
+ * @default false
29
+ */
30
+ isRequired?: boolean;
31
+ }
32
+ /** @internal The wiring a control applies to its root or `<input>`. */
33
+ export interface FieldWiring {
34
+ /** The nearest Field's context, or `null` outside a Field. */
35
+ field: FieldContextValue | null;
36
+ /** The id the control carries: the Field's `controlId`, else the control's `id`, else generated. */
37
+ controlId: string;
38
+ /** Space-separated `aria-describedby`, or `undefined` when there is nothing to point at. */
39
+ describedBy: string | undefined;
40
+ /** `aria-invalid`: a non-empty `error`, `isError`, or the Field's `isError`. */
41
+ isInvalid: boolean;
42
+ /** `aria-required`: the control's `isRequired` or the Field's. */
43
+ isRequired: boolean;
44
+ /** True when something names the control (the Field's label, `ariaLabel`, `aria-label`, `aria-labelledby`). */
45
+ hasName: boolean;
46
+ }
47
+ /** @internal Joins the ids that are set into one `aria-describedby` value; `undefined` when none. */
48
+ export declare function joinIds(ids: readonly (string | false | undefined)[]): string | undefined;
49
+ /** @internal Reads the nearest Field and merges it with the control's own props (see the module doc). */
50
+ export declare function useFieldWiring({ id, ariaLabel, ariaLabelAttribute, ariaLabelledBy, ariaDescribedBy, describedByIds, error, isError, isRequired, }: FieldWiringOptions): FieldWiring;
@@ -0,0 +1,38 @@
1
+ import { useField } from "../../hooks/useField.js";
2
+ import { isFilled } from "./predicates.js";
3
+ import { useId } from "react";
4
+ //#region src/inputs/internal/fieldWiring.ts
5
+ /**
6
+ * @internal The `useField()` consumer contract (`hooks/useField`), computed once for every input:
7
+ * the control id (the Field's wins over the control's own `id`, then a generated one), the merged
8
+ * `aria-describedby` (the Field's ids, the control's own part ids, then the app's), the invalid and
9
+ * required flags (the control's own props or the Field's), and whether the control has an
10
+ * accessible name (the Field's label, `ariaLabel`, or a pass-through `aria-label` /
11
+ * `aria-labelledby`). Private on purpose (an `internal/` module: built, never a package export).
12
+ */
13
+ /** @internal Joins the ids that are set into one `aria-describedby` value; `undefined` when none. */
14
+ function joinIds(ids) {
15
+ const present = ids.filter((candidate) => typeof candidate === "string" && candidate !== "");
16
+ return present.length > 0 ? present.join(" ") : void 0;
17
+ }
18
+ /** @internal Reads the nearest Field and merges it with the control's own props (see the module doc). */
19
+ function useFieldWiring({ id, ariaLabel, ariaLabelAttribute, ariaLabelledBy, ariaDescribedBy, describedByIds = [], error, isError = false, isRequired = false }) {
20
+ const field = useField();
21
+ const generatedId = useId();
22
+ const controlId = field?.controlId ?? id ?? generatedId;
23
+ const ownIds = typeof describedByIds === "function" ? describedByIds(controlId) : describedByIds;
24
+ return {
25
+ field,
26
+ controlId,
27
+ describedBy: joinIds([
28
+ field?.describedBy,
29
+ ...ownIds,
30
+ ariaDescribedBy
31
+ ]),
32
+ isInvalid: isFilled(error) || isError || field?.isError === true,
33
+ isRequired: isRequired || field?.isRequired === true,
34
+ hasName: field?.labelId !== void 0 || isFilled(ariaLabel) || isFilled(ariaLabelledBy) || isFilled(ariaLabelAttribute)
35
+ };
36
+ }
37
+ //#endregion
38
+ export { joinIds, useFieldWiring };
@@ -0,0 +1,2 @@
1
+ /** @internal Apply to an in-field Button's `className` on the X_SMALL rung only. */
2
+ export declare const X_SMALL_INNER_BUTTON_CSS: import("@linaria/core").LinariaClassName;
@@ -0,0 +1,24 @@
1
+ /* empty css */
2
+ //#region src/inputs/internal/innerButton.ts
3
+ /**
4
+ * @internal The in-field button on the X_SMALL rung, private to the DLS (an `internal/` module:
5
+ * built, never a package export).
6
+ *
7
+ * A field puts a `ButtonSize.X_SMALL` button (20px) inside its frame: the clear button of Input,
8
+ * SelectInput / MultiSelectInput, DateInput and ColorInput, CopyInput's copy, PasswordInput's
9
+ * reveal and NumberInput's steppers. From SMALL up the frame leaves 2–6px around it, but an
10
+ * X_SMALL frame is 20px itself, so the button's hover fill would cover the whole frame and run
11
+ * over its hairline. On that rung the button is a 16px square instead: the frame height minus
12
+ * 2px on each side, so the fill sits inside the frame with the same 2px gap SMALL has.
13
+ *
14
+ * The icon stays Button's 13px glyph in its 14px `IconSlot`, which lands on whole pixels in the
15
+ * 16px box (1px in from each edge). The focus ring is drawn on the button's own edge
16
+ * (`outline-offset: -1px`) rather than 1px outside it, so it stays inside the frame too.
17
+ *
18
+ * Doubled class, so it beats Button's size and icon-only rules (one class each) and its
19
+ * `FOCUS_RING` offset whatever the stylesheet order.
20
+ */
21
+ /** @internal Apply to an in-field Button's `className` on the X_SMALL rung only. */
22
+ var X_SMALL_INNER_BUTTON_CSS = "gx-innerButton-X_SMALL_INNER_BUTTON_CSS-x1ep0pcd";
23
+ //#endregion
24
+ export { X_SMALL_INNER_BUTTON_CSS };
@@ -0,0 +1,45 @@
1
+ import type { CSSProperties } from "react";
2
+ import type { FieldProps, FieldSize } from "../Field.js";
3
+ /** @internal What the input hands the shell: its own props, as destructured. */
4
+ export interface OwnFieldOptions {
5
+ /** The component's display name, for the development warning. */
6
+ componentName: string;
7
+ /** The input's `label`. */
8
+ label: string | undefined;
9
+ /** The input's `error`. */
10
+ error: string | undefined;
11
+ /** The input's `isRequired`, forwarded to the Field (the asterisk and `aria-required`). */
12
+ isRequired: boolean;
13
+ /** The Field rung, from the component's own `<COMPONENT>_SIZE_TO_FIELD_SIZE_MAP`. */
14
+ size: FieldSize;
15
+ /** The input's `id`, forwarded to the Field (the control's id, the label's `htmlFor`). */
16
+ id: string | undefined;
17
+ /** The input's `className`; on the Field when one renders, otherwise the frame's. */
18
+ className: string | undefined;
19
+ /** The input's `style`; on the Field when one renders, otherwise the frame's. */
20
+ style: CSSProperties | undefined;
21
+ /** A class placed before `className` on the Field (the component's fill-width class, when `fillWidth`). */
22
+ rootClassName?: string | false;
23
+ /** Forwarded as the Field's own `fillWidth` prop (ToggleInput's Field stretches itself). */
24
+ fillWidth?: boolean;
25
+ /**
26
+ * `false` when the input never renders its own Field (ColorInput with a custom trigger).
27
+ * @default true
28
+ */
29
+ isEnabled?: boolean;
30
+ }
31
+ /** @internal The props of the Field an input renders for itself. */
32
+ export type OwnFieldProps = Pick<FieldProps, "label" | "error" | "isRequired" | "size" | "fillWidth" | "id" | "className" | "style">;
33
+ /**
34
+ * @internal The Field props when the input must render its own Field (standalone, with a `label`
35
+ * or an `error`), or `null` when the frame renders alone (no label and no error, or inside an
36
+ * app's Field). Warns once, in development, when an input inside a Field also has its own `label`.
37
+ */
38
+ export declare function useOwnField({ componentName, label, error, isRequired, size, id, className, style, rootClassName, fillWidth, isEnabled, }: OwnFieldOptions): OwnFieldProps | null;
39
+ /**
40
+ * @internal The frame's `style`, only when the frame is the root (an own Field takes it otherwise).
41
+ * Spread onto the frame: `{...rootStyle(isRoot, style)}`.
42
+ */
43
+ export declare function rootStyle(isRoot: boolean, style: CSSProperties | undefined): {
44
+ style?: CSSProperties;
45
+ };
@@ -0,0 +1,58 @@
1
+ import { useDevWarning } from "./devWarn.js";
2
+ import { useField } from "../../hooks/useField.js";
3
+ import { isFilled } from "./predicates.js";
4
+ import { cx } from "@linaria/core";
5
+ //#region src/inputs/internal/ownField.tsx
6
+ /**
7
+ * @internal The own-Field shell every labelled input shares. A standalone input with `label` or
8
+ * `error` renders a `Field` around its frame; inside an app's Field it never wraps itself again
9
+ * and reads the Field's wiring instead (`useField()`). The shell also decides where `className`
10
+ * and `style` go: on the Field when the input renders one, otherwise on the frame (the root).
11
+ * Private on purpose (an `internal/` module: built, never a package export).
12
+ *
13
+ * ```tsx
14
+ * const Input = forwardRef<HTMLInputElement, InputProps>(function Input(props, ref) {
15
+ * const ownField = useOwnField({ componentName: "Input", ..., size: INPUT_SIZE_TO_FIELD_SIZE_MAP[size] });
16
+ * if (ownField !== null) {
17
+ * return (
18
+ * <Field {...ownField}>
19
+ * <InputFrame inputProps={props} forwardedRef={ref} isRoot={false} />
20
+ * </Field>
21
+ * );
22
+ * }
23
+ * return <InputFrame inputProps={props} forwardedRef={ref} isRoot />;
24
+ * });
25
+ * ```
26
+ */
27
+ /**
28
+ * @internal The Field props when the input must render its own Field (standalone, with a `label`
29
+ * or an `error`), or `null` when the frame renders alone (no label and no error, or inside an
30
+ * app's Field). Warns once, in development, when an input inside a Field also has its own `label`.
31
+ */
32
+ function useOwnField({ componentName, label, error, isRequired, size, id, className, style, rootClassName, fillWidth, isEnabled = true }) {
33
+ const field = useField();
34
+ const hasLabel = isFilled(label);
35
+ const hasError = isFilled(error);
36
+ useDevWarning(isEnabled && field !== null && hasLabel, `[@galaxy-io/dls] ${componentName} inside a Field ignores its own \`label\`. Put the label on the Field only.`);
37
+ if (!isEnabled || field !== null || !hasLabel && !hasError) return null;
38
+ const fieldClassName = cx(rootClassName, className);
39
+ return {
40
+ ...hasLabel ? { label } : {},
41
+ ...hasError ? { error } : {},
42
+ isRequired,
43
+ size,
44
+ ...fillWidth === void 0 ? {} : { fillWidth },
45
+ ...id === void 0 ? {} : { id },
46
+ ...fieldClassName === "" ? {} : { className: fieldClassName },
47
+ ...style === void 0 ? {} : { style }
48
+ };
49
+ }
50
+ /**
51
+ * @internal The frame's `style`, only when the frame is the root (an own Field takes it otherwise).
52
+ * Spread onto the frame: `{...rootStyle(isRoot, style)}`.
53
+ */
54
+ function rootStyle(isRoot, style) {
55
+ return isRoot && style !== void 0 ? { style } : {};
56
+ }
57
+ //#endregion
58
+ export { rootStyle, useOwnField };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @internal The two predicates every input uses to decide whether a string prop or a slot renders.
3
+ * Private on purpose (an `internal/` module: built, never a package export).
4
+ */
5
+ import type { ReactNode } from "react";
6
+ /** @internal True for a non-empty string (`label`, `error`, `prefix`, an `aria-*` id list). */
7
+ export declare function isFilled(text: string | undefined): text is string;
8
+ /** @internal True when a slot value would render something (`leading`, `trailing`, `description`). */
9
+ export declare function hasContent(node: ReactNode): boolean;
@@ -0,0 +1,11 @@
1
+ //#region src/inputs/internal/predicates.ts
2
+ /** @internal True for a non-empty string (`label`, `error`, `prefix`, an `aria-*` id list). */
3
+ function isFilled(text) {
4
+ return text !== void 0 && text !== "";
5
+ }
6
+ /** @internal True when a slot value would render something (`leading`, `trailing`, `description`). */
7
+ function hasContent(node) {
8
+ return node !== void 0 && node !== null && node !== false && node !== "";
9
+ }
10
+ //#endregion
11
+ export { hasContent, isFilled };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @internal The plumbing a field that opens a panel shares (SelectInput, DateInput, ColorInput):
3
+ * an open setter that drops repeated requests before React renders, the focus return after a
4
+ * press outside the panel, and the retried focus into a panel that mounts in a portal a render
5
+ * after it opens. Private on purpose (an `internal/` module: built, never a package export).
6
+ */
7
+ import { type MutableRefObject, type RefObject } from "react";
8
+ /** @internal The deduped open setter and the latest requested state, for handlers that run before React renders. */
9
+ export interface DedupedOpen {
10
+ /** Opens or closes, ignoring a request that matches the latest requested state. */
11
+ setOpen: (next: boolean) => void;
12
+ /** The latest requested state (`isShown`, or a pending request not yet rendered). */
13
+ isShownRef: RefObject<boolean>;
14
+ }
15
+ /**
16
+ * @internal An open setter that ignores a request matching the latest requested state. An outside
17
+ * press and the blur it causes both ask to close before React renders: the second is dropped.
18
+ * Every accepted request re-renders, so the tracked state returns to the real `isShown` even when
19
+ * a controlled caller ignores the request.
20
+ */
21
+ export declare function useDedupedOpen(isShown: boolean, setOpenState: (isOpen: boolean) => void): DedupedOpen;
22
+ /** @internal Where focus returns after an outside press, and what counts as inside. */
23
+ export interface RestoreFocusOptions {
24
+ /** Whether the panel is shown; the listener is only installed while it is. */
25
+ isShown: boolean;
26
+ /** The element focus returns to (the combobox control or the custom trigger); also the document source. */
27
+ focusRef: RefObject<HTMLElement | null>;
28
+ /** A press inside any of these (the field, the trigger, the panel) is not an outside press. */
29
+ insideRefs: readonly RefObject<HTMLElement | null>[];
30
+ /** Focus returns only when, as the press began, the active element was inside one of these. */
31
+ focusScopeRefs: readonly RefObject<HTMLElement | null>[];
32
+ }
33
+ /**
34
+ * @internal A press outside closes the panel (Popover), which does not return focus. When focus was
35
+ * inside the scope as the press began and the press lands on nothing focusable, the browser moves
36
+ * focus to the body; once the press settles (`pointerup`, then a frame), focus returns to
37
+ * `focusRef`. Any other field that took focus keeps it.
38
+ */
39
+ export declare function useRestoreFocusAfterOutsidePress(options: RestoreFocusOptions): void;
40
+ /**
41
+ * @internal Focuses `findTarget()` before paint while `shouldFocusRef` asks for it and the panel is
42
+ * shown. The portal mounts a render later than the panel's first commit, so a missing target is
43
+ * retried for up to `retryFrames` animation frames. Runs after every render, like the code it
44
+ * replaces; the ref is cleared once the target is focused.
45
+ */
46
+ export declare function useRetriedFocus(shouldFocusRef: MutableRefObject<boolean>, isShown: boolean, findTarget: () => HTMLElement | null, retryFrames: number): void;
@@ -0,0 +1,92 @@
1
+ import { useIsomorphicLayoutEffect } from "../../hooks/useIsomorphicLayoutEffect.js";
2
+ import { useCallback, useEffect, useReducer, useRef } from "react";
3
+ //#region src/inputs/internal/useComboboxPopover.ts
4
+ /**
5
+ * @internal The plumbing a field that opens a panel shares (SelectInput, DateInput, ColorInput):
6
+ * an open setter that drops repeated requests before React renders, the focus return after a
7
+ * press outside the panel, and the retried focus into a panel that mounts in a portal a render
8
+ * after it opens. Private on purpose (an `internal/` module: built, never a package export).
9
+ */
10
+ /**
11
+ * @internal An open setter that ignores a request matching the latest requested state. An outside
12
+ * press and the blur it causes both ask to close before React renders: the second is dropped.
13
+ * Every accepted request re-renders, so the tracked state returns to the real `isShown` even when
14
+ * a controlled caller ignores the request.
15
+ */
16
+ function useDedupedOpen(isShown, setOpenState) {
17
+ const isShownRef = useRef(isShown);
18
+ isShownRef.current = isShown;
19
+ const [, rerender] = useReducer((count) => count + 1, 0);
20
+ return {
21
+ setOpen: useCallback((next) => {
22
+ if (next === isShownRef.current) return;
23
+ isShownRef.current = next;
24
+ setOpenState(next);
25
+ rerender();
26
+ }, [setOpenState]),
27
+ isShownRef
28
+ };
29
+ }
30
+ /**
31
+ * @internal A press outside closes the panel (Popover), which does not return focus. When focus was
32
+ * inside the scope as the press began and the press lands on nothing focusable, the browser moves
33
+ * focus to the body; once the press settles (`pointerup`, then a frame), focus returns to
34
+ * `focusRef`. Any other field that took focus keeps it.
35
+ */
36
+ function useRestoreFocusAfterOutsidePress(options) {
37
+ const { isShown } = options;
38
+ const optionsRef = useRef(options);
39
+ optionsRef.current = options;
40
+ useEffect(() => {
41
+ const doc = optionsRef.current.focusRef.current?.ownerDocument;
42
+ if (!isShown || doc === void 0) return;
43
+ const restore = () => {
44
+ if (doc.activeElement === null || doc.activeElement === doc.body) optionsRef.current.focusRef.current?.focus({ preventScroll: true });
45
+ };
46
+ const handlePointerDown = (event) => {
47
+ const target = event.target;
48
+ if (target === null) return;
49
+ const { insideRefs, focusScopeRefs } = optionsRef.current;
50
+ if (insideRefs.some((ref) => ref.current?.contains(target) === true)) return;
51
+ const active = doc.activeElement;
52
+ if (!(active !== null && active !== doc.body && focusScopeRefs.some((ref) => ref.current?.contains(active) === true))) return;
53
+ const settle = () => doc.defaultView?.requestAnimationFrame(restore);
54
+ doc.addEventListener("pointerup", settle, {
55
+ once: true,
56
+ capture: true
57
+ });
58
+ };
59
+ doc.addEventListener("pointerdown", handlePointerDown, true);
60
+ return () => doc.removeEventListener("pointerdown", handlePointerDown, true);
61
+ }, [isShown]);
62
+ }
63
+ /**
64
+ * @internal Focuses `findTarget()` before paint while `shouldFocusRef` asks for it and the panel is
65
+ * shown. The portal mounts a render later than the panel's first commit, so a missing target is
66
+ * retried for up to `retryFrames` animation frames. Runs after every render, like the code it
67
+ * replaces; the ref is cleared once the target is focused.
68
+ */
69
+ function useRetriedFocus(shouldFocusRef, isShown, findTarget, retryFrames) {
70
+ useIsomorphicLayoutEffect(() => {
71
+ if (!shouldFocusRef.current || !isShown) return;
72
+ const tryFocus = () => {
73
+ const target = findTarget();
74
+ if (target === null) return false;
75
+ shouldFocusRef.current = false;
76
+ target.focus({ preventScroll: true });
77
+ return true;
78
+ };
79
+ if (tryFocus()) return;
80
+ let tries = 0;
81
+ let frame = 0;
82
+ const retry = () => {
83
+ if (!shouldFocusRef.current || tryFocus()) return;
84
+ tries += 1;
85
+ if (tries < retryFrames) frame = requestAnimationFrame(retry);
86
+ };
87
+ frame = requestAnimationFrame(retry);
88
+ return () => cancelAnimationFrame(frame);
89
+ });
90
+ }
91
+ //#endregion
92
+ export { useDedupedOpen, useRestoreFocusAfterOutsidePress, useRetriedFocus };
@@ -0,0 +1,62 @@
1
+ import { type AriaAttributes, type CSSProperties } from "react";
2
+ /** Row rung: the same two rungs, with the same row geometry, as `TreeSize`. */
3
+ export declare enum JsonViewerSize {
4
+ /** Tree's SMALL row: 24px, mono `body_sm`, 10px caret, 14px per level; `SMALL` search field, `X_SMALL` copy buttons. */
5
+ SMALL = "SMALL",
6
+ /** Tree's MEDIUM row: 28px, mono `body_md`, 12px caret, 16px per level; `MEDIUM` search field, `SMALL` copy buttons. The default. */
7
+ MEDIUM = "MEDIUM"
8
+ }
9
+ /** A JSON value: what `JSON.parse` returns. */
10
+ export type JsonValue = string | number | boolean | null | JsonValue[] | {
11
+ [key: string]: JsonValue;
12
+ };
13
+ /** Every JsonViewer prop except the accessible-name pair (`ariaLabel` / `aria-labelledby`). */
14
+ interface JsonViewerBaseProps extends AriaAttributes {
15
+ /** The value to show, already parsed. Keys keep their insertion order. */
16
+ data: JsonValue;
17
+ /**
18
+ * How many levels start expanded: `0` shows only the top-level rows collapsed, `1` opens the top-level objects and arrays, `Infinity` opens everything.
19
+ * @default 1
20
+ */
21
+ defaultExpandedDepth?: number;
22
+ /**
23
+ * Show a search field above the rows. Matching keys and values are highlighted and their ancestors expand.
24
+ * @default false
25
+ */
26
+ canSearch?: boolean;
27
+ /**
28
+ * Show a footer with the focused row's path and buttons to copy the path and the row's value as JSON.
29
+ * @default false
30
+ */
31
+ canCopy?: boolean;
32
+ /**
33
+ * Row rung: Tree's 24 / 28px rows, with the rung's text, caret and indent. The search field and footer buttons follow it.
34
+ * @default JsonViewerSize.MEDIUM
35
+ */
36
+ size?: JsonViewerSize;
37
+ /** DOM id on the root `<div>`. */
38
+ id?: string;
39
+ /** Any `data-*` attribute, forwarded to the root `<div>`. */
40
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
41
+ /** Extra class on the root `<div>`. */
42
+ className?: string;
43
+ /** Inline style on the root `<div>`; only for setting CSS custom properties. */
44
+ style?: CSSProperties;
45
+ }
46
+ /** Named by `ariaLabel`. */
47
+ interface JsonViewerNamedProps {
48
+ /** Accessible name of the tree. Required unless `aria-labelledby` names it. */
49
+ ariaLabel: string;
50
+ }
51
+ /** Named by a visible heading through `aria-labelledby` (forwarded to the `role="tree"` element). */
52
+ interface JsonViewerLabelledByProps {
53
+ /** Accessible name of the tree. Required unless `aria-labelledby` names it. */
54
+ ariaLabel?: undefined;
55
+ /** Id of the element that names the tree (a visible heading). */
56
+ "aria-labelledby": string;
57
+ }
58
+ /** JsonViewer props. The tree needs a name: `ariaLabel`, or `aria-labelledby` pointing at a heading. */
59
+ export type JsonViewerProps = JsonViewerBaseProps & (JsonViewerNamedProps | JsonViewerLabelledByProps);
60
+ /** Collapsible, type-colored JSON with search and path copy. */
61
+ declare const JsonViewer: import("react").ForwardRefExoticComponent<JsonViewerProps & import("react").RefAttributes<HTMLDivElement>>;
62
+ export default JsonViewer;