@galaxy-io/dls 1.6.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/README.md +47 -50
  2. package/biome/index.json +74 -0
  3. package/biome/plugins/no-hex-literal.grit +20 -0
  4. package/biome/plugins/no-inline-style.grit +13 -0
  5. package/biome/plugins/no-margin.grit +9 -0
  6. package/biome/plugins/warn/no-hex-literal.grit +23 -0
  7. package/biome/plugins/warn/no-inline-style.grit +13 -0
  8. package/biome/plugins/warn/no-margin.grit +9 -0
  9. package/dist/a11y/FocusScope.d.ts +44 -0
  10. package/dist/a11y/FocusScope.js +229 -0
  11. package/dist/a11y/VisuallyHidden.d.ts +21 -0
  12. package/dist/a11y/VisuallyHidden.js +30 -0
  13. package/dist/avatar/Avatar.d.ts +56 -14
  14. package/dist/avatar/Avatar.js +250 -96
  15. package/dist/avatar/AvatarGroup.d.ts +43 -0
  16. package/dist/avatar/AvatarGroup.js +153 -0
  17. package/dist/backgrounds/GridBackground.d.ts +48 -0
  18. package/dist/backgrounds/GridBackground.js +146 -0
  19. package/dist/beacons/Beacon.d.ts +86 -22
  20. package/dist/beacons/Beacon.js +170 -47
  21. package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
  22. package/dist/brand/GalaxyFilamentWordmark.js +39 -0
  23. package/dist/brand/GalaxyLogomark.d.ts +26 -0
  24. package/dist/brand/GalaxyLogomark.js +41 -0
  25. package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
  26. package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
  27. package/dist/brand/GalaxyWordmark.d.ts +30 -0
  28. package/dist/brand/GalaxyWordmark.js +63 -0
  29. package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
  30. package/dist/brand/brandMark.d.ts +26 -0
  31. package/dist/brand/brandMark.js +35 -0
  32. package/dist/buttons/Button.d.ts +148 -59
  33. package/dist/buttons/Button.js +437 -227
  34. package/dist/buttons/ButtonGroup.d.ts +38 -0
  35. package/dist/buttons/ButtonGroup.js +68 -0
  36. package/dist/buttons/CopyButton.d.ts +77 -0
  37. package/dist/buttons/CopyButton.js +65 -0
  38. package/dist/charts/AreaChart.d.ts +49 -0
  39. package/dist/charts/AreaChart.js +31 -0
  40. package/dist/charts/BarChart.d.ts +54 -67
  41. package/dist/charts/BarChart.js +136 -116
  42. package/dist/charts/ChartAxis.d.ts +35 -40
  43. package/dist/charts/ChartAxis.js +114 -90
  44. package/dist/charts/ChartCategoryTargets.d.ts +12 -26
  45. package/dist/charts/ChartCategoryTargets.js +32 -20
  46. package/dist/charts/ChartFrame.d.ts +69 -116
  47. package/dist/charts/ChartFrame.js +253 -119
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +27 -48
  51. package/dist/charts/ChartLegend.js +206 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +33 -20
  54. package/dist/charts/ChartPrimitives.d.ts +50 -305
  55. package/dist/charts/ChartPrimitives.js +65 -413
  56. package/dist/charts/ChartTooltip.d.ts +20 -26
  57. package/dist/charts/ChartTooltip.js +77 -40
  58. package/dist/charts/Heatmap.d.ts +35 -0
  59. package/dist/charts/Heatmap.js +295 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +159 -117
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +149 -135
  64. package/dist/charts/Sparkline.d.ts +107 -0
  65. package/dist/charts/Sparkline.js +244 -0
  66. package/dist/charts/StatChart.d.ts +37 -13
  67. package/dist/charts/StatChart.js +82 -35
  68. package/dist/charts/barChartGeometry.d.ts +138 -86
  69. package/dist/charts/barChartGeometry.js +122 -101
  70. package/dist/charts/barChartLegend.d.ts +14 -18
  71. package/dist/charts/barChartLegend.js +18 -13
  72. package/dist/charts/chartFormat.d.ts +12 -18
  73. package/dist/charts/chartFormat.js +20 -52
  74. package/dist/charts/chartPalette.d.ts +33 -0
  75. package/dist/charts/chartPalette.js +68 -0
  76. package/dist/charts/chartScales.d.ts +41 -108
  77. package/dist/charts/chartScales.js +62 -128
  78. package/dist/charts/constants.d.ts +96 -256
  79. package/dist/charts/constants.js +105 -275
  80. package/dist/charts/heatmapGeometry.d.ts +95 -0
  81. package/dist/charts/heatmapGeometry.js +155 -0
  82. package/dist/charts/lineChartGeometry.d.ts +108 -58
  83. package/dist/charts/lineChartGeometry.js +120 -78
  84. package/dist/charts/pieChartGeometry.d.ts +66 -40
  85. package/dist/charts/pieChartGeometry.js +68 -38
  86. package/dist/charts/types.d.ts +197 -466
  87. package/dist/charts/types.js +55 -144
  88. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  89. package/dist/charts/useCartesianChartLayout.js +47 -32
  90. package/dist/charts/useChartDimensions.d.ts +19 -40
  91. package/dist/charts/useChartDimensions.js +40 -56
  92. package/dist/charts/useChartFormatters.d.ts +6 -15
  93. package/dist/charts/useChartFormatters.js +4 -9
  94. package/dist/charts/useChartInteraction.d.ts +47 -116
  95. package/dist/charts/useChartInteraction.js +95 -71
  96. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  97. package/dist/charts/useChartTooltipPosition.js +14 -5
  98. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  99. package/dist/charts/useSeriesColorResolver.js +19 -12
  100. package/dist/chips/Chip.d.ts +155 -44
  101. package/dist/chips/Chip.js +329 -155
  102. package/dist/chips/ChipGroup.d.ts +53 -0
  103. package/dist/chips/ChipGroup.js +98 -0
  104. package/dist/drawer/Drawer.d.ts +81 -17
  105. package/dist/drawer/Drawer.js +370 -65
  106. package/dist/dropdown/Dropdown.d.ts +80 -63
  107. package/dist/dropdown/Dropdown.js +127 -129
  108. package/dist/editor/CodeEditor.d.ts +119 -40
  109. package/dist/editor/CodeEditor.js +490 -400
  110. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  111. package/dist/editor/CodeEditorReactWidget.js +28 -21
  112. package/dist/feedback/Alert.d.ts +49 -0
  113. package/dist/feedback/Alert.js +172 -0
  114. package/dist/feedback/EmptyState.d.ts +39 -0
  115. package/dist/feedback/EmptyState.js +109 -0
  116. package/dist/feedback/ProgressBar.d.ts +125 -0
  117. package/dist/feedback/ProgressBar.js +183 -0
  118. package/dist/feedback/ProgressCircle.d.ts +99 -0
  119. package/dist/feedback/ProgressCircle.js +187 -0
  120. package/dist/feedback/Skeleton.d.ts +69 -0
  121. package/dist/feedback/Skeleton.js +130 -0
  122. package/dist/feedback/Spinner.d.ts +63 -0
  123. package/dist/feedback/Spinner.js +141 -0
  124. package/dist/fonts.css +70 -0
  125. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  126. package/dist/hooks/internal/useIsClient.js +14 -0
  127. package/dist/hooks/useClipboard.d.ts +19 -0
  128. package/dist/hooks/useClipboard.js +45 -0
  129. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  130. package/dist/hooks/useControlledOpenState.js +19 -0
  131. package/dist/hooks/useControlledState.d.ts +19 -0
  132. package/dist/hooks/useControlledState.js +22 -0
  133. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  134. package/dist/hooks/useDebouncedValue.js +33 -0
  135. package/dist/hooks/useDisclosure.d.ts +26 -0
  136. package/dist/hooks/useDisclosure.js +36 -0
  137. package/dist/hooks/useDismiss.d.ts +23 -27
  138. package/dist/hooks/useDismiss.js +39 -27
  139. package/dist/hooks/useElementClientSize.d.ts +10 -10
  140. package/dist/hooks/useElementClientSize.js +8 -11
  141. package/dist/hooks/useElementWidth.d.ts +6 -13
  142. package/dist/hooks/useElementWidth.js +6 -14
  143. package/dist/hooks/useField.d.ts +47 -0
  144. package/dist/hooks/useField.js +40 -0
  145. package/dist/hooks/useHotkey.d.ts +77 -0
  146. package/dist/hooks/useHotkey.js +246 -0
  147. package/dist/hooks/useIsMac.d.ts +12 -0
  148. package/dist/hooks/useIsMac.js +27 -0
  149. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  150. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  151. package/dist/hooks/useLocalStorage.d.ts +28 -0
  152. package/dist/hooks/useLocalStorage.js +145 -0
  153. package/dist/hooks/useMediaQuery.d.ts +11 -0
  154. package/dist/hooks/useMediaQuery.js +23 -0
  155. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  156. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  157. package/dist/hooks/useResize.d.ts +42 -62
  158. package/dist/hooks/useResize.js +43 -31
  159. package/dist/icons/Icon.d.ts +64 -37
  160. package/dist/icons/Icon.js +96 -37
  161. package/dist/icons/internal/IconSlot.d.ts +10 -0
  162. package/dist/icons/internal/IconSlot.js +32 -0
  163. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  164. package/dist/inputs/CheckboxGroup.js +183 -0
  165. package/dist/inputs/CheckboxInput.d.ts +98 -28
  166. package/dist/inputs/CheckboxInput.js +218 -88
  167. package/dist/inputs/ColorInput.d.ts +115 -29
  168. package/dist/inputs/ColorInput.js +748 -326
  169. package/dist/inputs/CopyInput.d.ts +49 -20
  170. package/dist/inputs/CopyInput.js +57 -49
  171. package/dist/inputs/CronInput.d.ts +94 -0
  172. package/dist/inputs/CronInput.js +618 -0
  173. package/dist/inputs/DateInput.d.ts +175 -28
  174. package/dist/inputs/DateInput.js +1109 -451
  175. package/dist/inputs/DurationInput.d.ts +101 -0
  176. package/dist/inputs/DurationInput.js +441 -0
  177. package/dist/inputs/Field.d.ts +75 -0
  178. package/dist/inputs/Field.js +247 -0
  179. package/dist/inputs/Fieldset.d.ts +53 -0
  180. package/dist/inputs/Fieldset.js +149 -0
  181. package/dist/inputs/FileInput.d.ts +110 -0
  182. package/dist/inputs/FileInput.js +476 -0
  183. package/dist/inputs/Input.d.ts +148 -187
  184. package/dist/inputs/Input.js +339 -259
  185. package/dist/inputs/KeyValueInput.d.ts +120 -0
  186. package/dist/inputs/KeyValueInput.js +383 -0
  187. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  188. package/dist/inputs/MultiSelectInput.js +175 -559
  189. package/dist/inputs/NumberInput.d.ts +65 -9
  190. package/dist/inputs/NumberInput.js +197 -40
  191. package/dist/inputs/PasswordInput.d.ts +17 -12
  192. package/dist/inputs/PasswordInput.js +33 -33
  193. package/dist/inputs/PinInput.d.ts +117 -0
  194. package/dist/inputs/PinInput.js +364 -0
  195. package/dist/inputs/RadioGroup.d.ts +115 -0
  196. package/dist/inputs/RadioGroup.js +179 -0
  197. package/dist/inputs/RadioInput.d.ts +87 -24
  198. package/dist/inputs/RadioInput.js +182 -95
  199. package/dist/inputs/SearchInput.d.ts +66 -0
  200. package/dist/inputs/SearchInput.js +156 -0
  201. package/dist/inputs/SelectInput.d.ts +195 -55
  202. package/dist/inputs/SelectInput.js +1308 -446
  203. package/dist/inputs/SliderInput.d.ts +150 -30
  204. package/dist/inputs/SliderInput.js +441 -186
  205. package/dist/inputs/SwitchInput.d.ts +109 -0
  206. package/dist/inputs/SwitchInput.js +248 -0
  207. package/dist/inputs/TagInput.d.ts +117 -0
  208. package/dist/inputs/TagInput.js +408 -0
  209. package/dist/inputs/TextAreaInput.d.ts +146 -44
  210. package/dist/inputs/TextAreaInput.js +292 -198
  211. package/dist/inputs/TextInput.d.ts +4 -13
  212. package/dist/inputs/TextInput.js +13 -48
  213. package/dist/inputs/ToggleInput.d.ts +120 -22
  214. package/dist/inputs/ToggleInput.js +262 -116
  215. package/dist/inputs/internal/bareField.d.ts +18 -0
  216. package/dist/inputs/internal/bareField.js +38 -0
  217. package/dist/inputs/internal/devWarn.d.ts +7 -0
  218. package/dist/inputs/internal/devWarn.js +30 -0
  219. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  220. package/dist/inputs/internal/fieldFrame.js +64 -0
  221. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  222. package/dist/inputs/internal/fieldWiring.js +38 -0
  223. package/dist/inputs/internal/innerButton.d.ts +2 -0
  224. package/dist/inputs/internal/innerButton.js +24 -0
  225. package/dist/inputs/internal/ownField.d.ts +45 -0
  226. package/dist/inputs/internal/ownField.js +58 -0
  227. package/dist/inputs/internal/predicates.d.ts +9 -0
  228. package/dist/inputs/internal/predicates.js +11 -0
  229. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  230. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  231. package/dist/json/JsonViewer.d.ts +62 -0
  232. package/dist/json/JsonViewer.js +483 -0
  233. package/dist/layout/Box.d.ts +87 -0
  234. package/dist/layout/Box.js +109 -0
  235. package/dist/layout/Divider.d.ts +25 -0
  236. package/dist/layout/Divider.js +70 -0
  237. package/dist/layout/Flex.d.ts +139 -0
  238. package/dist/layout/Flex.js +165 -0
  239. package/dist/layout/FlexItem.d.ts +72 -0
  240. package/dist/layout/FlexItem.js +84 -0
  241. package/dist/layout/Grid.d.ts +140 -0
  242. package/dist/layout/Grid.js +178 -0
  243. package/dist/layout/Portal.d.ts +29 -0
  244. package/dist/layout/Portal.js +27 -0
  245. package/dist/layout/ResizablePanels.d.ts +88 -0
  246. package/dist/layout/ResizablePanels.js +198 -0
  247. package/dist/layout/ResizeHandle.d.ts +48 -0
  248. package/dist/layout/ResizeHandle.js +143 -0
  249. package/dist/layout/ScrollArea.d.ts +30 -0
  250. package/dist/layout/ScrollArea.js +138 -0
  251. package/dist/links/Link.d.ts +101 -1
  252. package/dist/links/Link.js +166 -4
  253. package/dist/lists/BulletedList.d.ts +25 -7
  254. package/dist/lists/BulletedList.js +72 -27
  255. package/dist/lists/DescriptionList.d.ts +91 -0
  256. package/dist/lists/DescriptionList.js +147 -0
  257. package/dist/menu/ContextMenu.d.ts +64 -0
  258. package/dist/menu/ContextMenu.js +34 -0
  259. package/dist/menu/Menu.d.ts +280 -0
  260. package/dist/menu/Menu.js +1003 -0
  261. package/dist/modal/ConfirmDialog.d.ts +55 -0
  262. package/dist/modal/ConfirmDialog.js +151 -0
  263. package/dist/modal/Modal.d.ts +64 -14
  264. package/dist/modal/Modal.js +189 -48
  265. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  266. package/dist/navigation/Breadcrumbs.js +243 -0
  267. package/dist/navigation/CommandPalette.d.ts +83 -0
  268. package/dist/navigation/CommandPalette.js +509 -0
  269. package/dist/navigation/Pagination.d.ts +87 -0
  270. package/dist/navigation/Pagination.js +300 -0
  271. package/dist/navigation/SidebarNav.d.ts +107 -0
  272. package/dist/navigation/SidebarNav.js +341 -0
  273. package/dist/navigation/Stepper.d.ts +52 -0
  274. package/dist/navigation/Stepper.js +207 -0
  275. package/dist/navigation/Tabs.d.ts +113 -0
  276. package/dist/navigation/Tabs.js +543 -0
  277. package/dist/navigation/Topbar.d.ts +20 -0
  278. package/dist/navigation/Topbar.js +62 -0
  279. package/dist/overlay/OverlayProvider.d.ts +28 -32
  280. package/dist/overlay/OverlayProvider.js +42 -93
  281. package/dist/overlay/useOverlay.d.ts +88 -12
  282. package/dist/overlay/useOverlay.js +220 -43
  283. package/dist/overlays/Popover.d.ts +114 -0
  284. package/dist/overlays/Popover.js +389 -0
  285. package/dist/shapes/Circle.d.ts +84 -8
  286. package/dist/shapes/Circle.js +122 -20
  287. package/dist/shapes/Square.d.ts +84 -8
  288. package/dist/shapes/Square.js +123 -20
  289. package/dist/styles/mixins.d.ts +35 -0
  290. package/dist/styles/mixins.js +60 -0
  291. package/dist/styles.css +1 -202
  292. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  293. package/dist/table/InfiniteSpreadsheet.js +762 -225
  294. package/dist/table/InfiniteTable.d.ts +116 -14
  295. package/dist/table/InfiniteTable.js +287 -429
  296. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  297. package/dist/table/SpreadsheetCellEditor.js +163 -84
  298. package/dist/table/TableCore.d.ts +252 -0
  299. package/dist/table/TableCore.js +1077 -0
  300. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  301. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  302. package/dist/table/types.d.ts +66 -244
  303. package/dist/table/types.js +0 -51
  304. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  305. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  306. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  307. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  308. package/dist/table/useTableColumnLayout.d.ts +90 -25
  309. package/dist/table/useTableColumnLayout.js +255 -50
  310. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  311. package/dist/table/useTableKeyboardNavigation.js +95 -71
  312. package/dist/table/useTableRowSelection.d.ts +24 -25
  313. package/dist/table/useTableRowSelection.js +57 -84
  314. package/dist/table/useTableVirtualizer.d.ts +20 -0
  315. package/dist/table/useTableVirtualizer.js +48 -0
  316. package/dist/text/Bold.d.ts +5 -6
  317. package/dist/text/Bold.js +16 -15
  318. package/dist/text/Code.d.ts +5 -6
  319. package/dist/text/Code.js +16 -25
  320. package/dist/text/CodeBlock.d.ts +77 -0
  321. package/dist/text/CodeBlock.js +373 -0
  322. package/dist/text/EditableText.d.ts +55 -15
  323. package/dist/text/EditableText.js +153 -135
  324. package/dist/text/Ellipsis.d.ts +34 -8
  325. package/dist/text/Ellipsis.js +55 -23
  326. package/dist/text/Kbd.d.ts +72 -0
  327. package/dist/text/Kbd.js +284 -0
  328. package/dist/text/MarkdownText.d.ts +27 -10
  329. package/dist/text/MarkdownText.js +317 -300
  330. package/dist/text/RequiredMarker.d.ts +17 -5
  331. package/dist/text/RequiredMarker.js +34 -36
  332. package/dist/text/Selectable.d.ts +5 -6
  333. package/dist/text/Selectable.js +16 -13
  334. package/dist/text/Span.d.ts +82 -0
  335. package/dist/text/Span.js +115 -0
  336. package/dist/text/Text.d.ts +128 -41
  337. package/dist/text/Text.js +209 -76
  338. package/dist/theme/GalaxyProvider.d.ts +75 -0
  339. package/dist/theme/GalaxyProvider.js +223 -0
  340. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  341. package/dist/theme/ThemeSwitcher.js +94 -0
  342. package/dist/theme/enums.d.ts +118 -0
  343. package/dist/theme/enums.js +144 -0
  344. package/dist/theme/tokens/dark.d.ts +2 -0
  345. package/dist/theme/tokens/dark.js +275 -0
  346. package/dist/theme/tokens/generate.d.ts +15 -0
  347. package/dist/theme/tokens/generate.js +47 -0
  348. package/dist/theme/tokens/light.d.ts +2 -0
  349. package/dist/theme/tokens/light.js +274 -0
  350. package/dist/theme/tokens/palette.d.ts +14 -0
  351. package/dist/theme/tokens/palette.js +153 -0
  352. package/dist/theme/tokens/scales.d.ts +26 -0
  353. package/dist/theme/tokens/scales.js +154 -0
  354. package/dist/theme/tokens/t.d.ts +3 -0
  355. package/dist/theme/tokens/t.js +25 -0
  356. package/dist/theme/tokens/types.d.ts +189 -0
  357. package/dist/theme/tokens/types.js +0 -0
  358. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  359. package/dist/theme/useGalaxyTheme.js +36 -0
  360. package/dist/theme/useInverseScope.d.ts +18 -0
  361. package/dist/theme/useInverseScope.js +33 -0
  362. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  363. package/dist/three/GalaxyLogomark3D.js +134 -0
  364. package/dist/three/assets/galaxy-logomark.js +4 -0
  365. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  366. package/dist/three/galaxyLogomark3DScene.js +165 -0
  367. package/dist/timeline/Timeline.d.ts +99 -0
  368. package/dist/timeline/Timeline.js +269 -0
  369. package/dist/toast/Toast.d.ts +43 -19
  370. package/dist/toast/Toast.js +130 -89
  371. package/dist/toast/ToastProvider.d.ts +23 -23
  372. package/dist/toast/ToastProvider.js +298 -101
  373. package/dist/toast/ToastViewport.d.ts +12 -0
  374. package/dist/toast/ToastViewport.js +210 -0
  375. package/dist/toast/useToast.d.ts +139 -5
  376. package/dist/toast/useToast.js +15 -13
  377. package/dist/tokens.css +654 -0
  378. package/dist/tooltip/Tooltip.d.ts +64 -44
  379. package/dist/tooltip/Tooltip.js +280 -73
  380. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  381. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  382. package/dist/transform/Fade.d.ts +33 -11
  383. package/dist/transform/Fade.js +71 -19
  384. package/dist/transform/Flasher.d.ts +25 -0
  385. package/dist/transform/Flasher.js +39 -0
  386. package/dist/transform/Rotate.d.ts +24 -12
  387. package/dist/transform/Rotate.js +36 -22
  388. package/dist/transform/ScaleFade.d.ts +36 -11
  389. package/dist/transform/ScaleFade.js +86 -28
  390. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  391. package/dist/transform/internal/CollapseMotion.js +65 -0
  392. package/dist/tree/Tree.d.ts +85 -0
  393. package/dist/tree/Tree.js +387 -0
  394. package/dist/tree/treeRow.d.ts +39 -0
  395. package/dist/tree/treeRow.js +75 -0
  396. package/dist/utils/colors.d.ts +46 -13
  397. package/dist/utils/colors.js +92 -34
  398. package/dist/utils/css.d.ts +23 -0
  399. package/dist/utils/css.js +30 -0
  400. package/dist/utils/format.d.ts +58 -0
  401. package/dist/utils/format.js +220 -0
  402. package/dist/vite/index.d.ts +16 -0
  403. package/dist/vite/index.js +52 -0
  404. package/dist/widget/Widget.d.ts +164 -48
  405. package/dist/widget/Widget.js +335 -96
  406. package/dist/widget/WidgetGroup.d.ts +36 -0
  407. package/dist/widget/WidgetGroup.js +103 -0
  408. package/package.json +851 -157
  409. package/dist/accordion/Accordion.d.ts +0 -54
  410. package/dist/accordion/Accordion.js +0 -183
  411. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  412. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  413. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  415. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  416. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  417. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  419. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  420. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  421. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  423. package/dist/assets/models/galaxy-animation.js +0 -136666
  424. package/dist/assets/models/galaxy-logomark.js +0 -4
  425. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  426. package/dist/avatar/AvatarShimmer.js +0 -22
  427. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  428. package/dist/backgrounds/CellGridBackground.js +0 -44
  429. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  430. package/dist/backgrounds/CrossGridBackground.js +0 -49
  431. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  432. package/dist/backgrounds/DotGridBackground.js +0 -47
  433. package/dist/badge/Badge.d.ts +0 -42
  434. package/dist/badge/Badge.js +0 -99
  435. package/dist/charts/ChartEmptyState.d.ts +0 -17
  436. package/dist/charts/ChartEmptyState.js +0 -29
  437. package/dist/charts/ProgressBar.d.ts +0 -29
  438. package/dist/charts/ProgressBar.js +0 -65
  439. package/dist/charts/chartTheme.d.ts +0 -18
  440. package/dist/charts/chartTheme.js +0 -26
  441. package/dist/containers/FlexItem.d.ts +0 -50
  442. package/dist/containers/FlexItem.js +0 -91
  443. package/dist/containers/FlexWrapper.d.ts +0 -96
  444. package/dist/containers/FlexWrapper.js +0 -143
  445. package/dist/containers/GridWrapper.d.ts +0 -79
  446. package/dist/containers/GridWrapper.js +0 -125
  447. package/dist/containers/Spacing.d.ts +0 -23
  448. package/dist/containers/Spacing.js +0 -59
  449. package/dist/containers/Wrapper.d.ts +0 -26
  450. package/dist/containers/Wrapper.js +0 -54
  451. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  452. package/dist/dividers/HorizontalDivider.js +0 -39
  453. package/dist/dividers/VerticalDivider.d.ts +0 -6
  454. package/dist/dividers/VerticalDivider.js +0 -21
  455. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  456. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  457. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  458. package/dist/icons/GalaxyLogomark.js +0 -27
  459. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  460. package/dist/icons/GalaxyLogomark3D.js +0 -319
  461. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  462. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  463. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  464. package/dist/icons/GalaxyWordmark.js +0 -25
  465. package/dist/inputs/MultiTextInput.d.ts +0 -32
  466. package/dist/inputs/MultiTextInput.js +0 -180
  467. package/dist/inputs/SwitcherInput.d.ts +0 -30
  468. package/dist/inputs/SwitcherInput.js +0 -81
  469. package/dist/inputs/hooks.d.ts +0 -10
  470. package/dist/inputs/hooks.js +0 -22
  471. package/dist/overlay/constants.d.ts +0 -28
  472. package/dist/overlay/constants.js +0 -37
  473. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  474. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  475. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  476. package/dist/resizable/VerticalResizeHandle.js +0 -39
  477. package/dist/table/SpreadsheetCell.d.ts +0 -21
  478. package/dist/table/SpreadsheetCell.js +0 -71
  479. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  480. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  481. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  482. package/dist/table/SpreadsheetMenuItem.js +0 -33
  483. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  484. package/dist/table/SpreadsheetPrimitives.js +0 -105
  485. package/dist/table/SpreadsheetRow.d.ts +0 -33
  486. package/dist/table/SpreadsheetRow.js +0 -73
  487. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  488. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  489. package/dist/table/TableExpandCell.d.ts +0 -11
  490. package/dist/table/TableExpandCell.js +0 -24
  491. package/dist/table/TableExpandedRow.d.ts +0 -16
  492. package/dist/table/TableExpandedRow.js +0 -77
  493. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  494. package/dist/table/TableHeaderCellContent.js +0 -48
  495. package/dist/table/TablePrimitives.d.ts +0 -313
  496. package/dist/table/TablePrimitives.js +0 -302
  497. package/dist/table/TableSelectCell.d.ts +0 -18
  498. package/dist/table/TableSelectCell.js +0 -27
  499. package/dist/table/TableStatusRow.d.ts +0 -18
  500. package/dist/table/TableStatusRow.js +0 -50
  501. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  502. package/dist/table/useSpreadsheetEditing.js +0 -41
  503. package/dist/table/useTableColumnResize.d.ts +0 -38
  504. package/dist/table/useTableColumnResize.js +0 -155
  505. package/dist/table/useTableRowExpansion.d.ts +0 -24
  506. package/dist/table/useTableRowExpansion.js +0 -62
  507. package/dist/table/utils.d.ts +0 -50
  508. package/dist/table/utils.js +0 -78
  509. package/dist/text/HotKeys.d.ts +0 -30
  510. package/dist/text/HotKeys.js +0 -74
  511. package/dist/text/Paragraph.d.ts +0 -33
  512. package/dist/text/Paragraph.js +0 -83
  513. package/dist/text/TextShimmer.d.ts +0 -14
  514. package/dist/text/TextShimmer.js +0 -34
  515. package/dist/theme/GalaxyTheme.d.ts +0 -67
  516. package/dist/theme/GalaxyTheme.js +0 -119
  517. package/dist/theme/constants.d.ts +0 -8
  518. package/dist/theme/constants.js +0 -38
  519. package/dist/theme/index.d.ts +0 -6
  520. package/dist/theme/index.js +0 -7
  521. package/dist/theme/types.d.ts +0 -195
  522. package/dist/theme/types.js +0 -10
  523. package/dist/theme/typography.d.ts +0 -2
  524. package/dist/theme/typography.js +0 -73
  525. package/dist/theme/variants/dark.d.ts +0 -2
  526. package/dist/theme/variants/dark.js +0 -125
  527. package/dist/theme/variants/light.d.ts +0 -2
  528. package/dist/theme/variants/light.js +0 -125
  529. package/dist/toast/ToastContainer.d.ts +0 -10
  530. package/dist/toast/ToastContainer.js +0 -31
  531. package/dist/toast/ToastWrapper.d.ts +0 -6
  532. package/dist/toast/ToastWrapper.js +0 -27
  533. package/dist/transform/Flash.d.ts +0 -7
  534. package/dist/transform/Flash.js +0 -18
  535. package/dist/transform/Spin.d.ts +0 -14
  536. package/dist/transform/Spin.js +0 -25
  537. package/dist/utils/linaria.d.ts +0 -1
  538. package/dist/utils/linaria.js +0 -8
@@ -1,10 +1,66 @@
1
- import { type InputProps } from "./Input";
2
- /** Every `InputProps` field except `type` and `parse`, which are fixed to number. */
3
- export type NumberInputProps = Omit<InputProps<number>, "type" | "parse">;
4
- /**
5
- * A numeric field. `min`/`max` are a real numeric range here (unlike `TextInput`,
6
- * where they bound character count) and values outside it are clamped, not
7
- * rejected — `onChange` only ever sees an in-range number.
8
- */
9
- declare const NumberInput: ({ value, placeholder, label, labelTooltip, variant, size, leading, trailing, error, isError, isRequired, isDisabled, autoFocus, min, max, step, onChange, onFocus, onBlur, onKeyDown, width, fillWidth, isMonospace, }: NumberInputProps) => import("react").JSX.Element;
1
+ import { type InputProps } from "./Input.js";
2
+ /** Every `Input` prop except the string value quartet and what NumberInput fixes, plus its own. */
3
+ export type NumberInputProps = Omit<InputProps, "type" | "value" | "defaultValue" | "onChange" | "onEnter" | "isClearable" | "inputMode" | "maxLength" | "spellCheck"> & {
4
+ /** Controlled committed value. `null` is an empty field. */
5
+ value?: number | null;
6
+ /**
7
+ * Initial value while uncontrolled.
8
+ * @default null
9
+ */
10
+ defaultValue?: number | null;
11
+ /** Called when a value is committed (blur, Enter or a step), clamped and rounded, and only if it changed. `null` when cleared. */
12
+ onChange?: (value: number | null) => void;
13
+ /** Called after Enter commits, with the committed value. Enter still submits a surrounding form. */
14
+ onEnter?: (value: number | null) => void;
15
+ /** Lowest allowed value. Commits and steps clamp to it. */
16
+ min?: number;
17
+ /** Highest allowed value. Commits and steps clamp to it. */
18
+ max?: number;
19
+ /**
20
+ * Amount the arrow keys and steppers add or subtract. PageUp / PageDown use ten steps.
21
+ * @default 1
22
+ */
23
+ step?: number;
24
+ /** Maximum fraction digits; commits round to it. `0` allows integers only. Unset keeps what was typed. */
25
+ precision?: number;
26
+ /** Display text while the field is not focused, e.g. `formatNumber`. The raw number shows while editing. */
27
+ format?: (value: number) => string;
28
+ /**
29
+ * Shows `−` / `+` buttons at the end of the field.
30
+ * @default false
31
+ */
32
+ hasSteppers?: boolean;
33
+ };
34
+ /** A single-line number field: `Input` with `type="text"`, parsing, clamping and stepping at its edge. */
35
+ declare const NumberInput: import("react").ForwardRefExoticComponent<Omit<InputProps, "value" | "defaultValue" | "onChange" | "spellCheck" | "inputMode" | "type" | "onEnter" | "maxLength" | "isClearable"> & {
36
+ /** Controlled committed value. `null` is an empty field. */
37
+ value?: number | null;
38
+ /**
39
+ * Initial value while uncontrolled.
40
+ * @default null
41
+ */
42
+ defaultValue?: number | null;
43
+ /** Called when a value is committed (blur, Enter or a step), clamped and rounded, and only if it changed. `null` when cleared. */
44
+ onChange?: (value: number | null) => void;
45
+ /** Called after Enter commits, with the committed value. Enter still submits a surrounding form. */
46
+ onEnter?: (value: number | null) => void;
47
+ /** Lowest allowed value. Commits and steps clamp to it. */
48
+ min?: number;
49
+ /** Highest allowed value. Commits and steps clamp to it. */
50
+ max?: number;
51
+ /**
52
+ * Amount the arrow keys and steppers add or subtract. PageUp / PageDown use ten steps.
53
+ * @default 1
54
+ */
55
+ step?: number;
56
+ /** Maximum fraction digits; commits round to it. `0` allows integers only. Unset keeps what was typed. */
57
+ precision?: number;
58
+ /** Display text while the field is not focused, e.g. `formatNumber`. The raw number shows while editing. */
59
+ format?: (value: number) => string;
60
+ /**
61
+ * Shows `−` / `+` buttons at the end of the field.
62
+ * @default false
63
+ */
64
+ hasSteppers?: boolean;
65
+ } & import("react").RefAttributes<HTMLInputElement>>;
10
66
  export default NumberInput;
@@ -1,49 +1,206 @@
1
- import Input from "./Input.js";
2
- import { useCallback } from "react";
3
- import { jsx } from "react/jsx-runtime";
1
+ import { useControlledState } from "../hooks/useControlledState.js";
2
+ import Button, { ButtonVariant } from "../buttons/Button.js";
3
+ import "./internal/innerButton.js";
4
+ import Input, { INPUT_SIZE_TO_BUTTON_SIZE_MAP, InputSize } from "./Input.js";
5
+ /* empty css */
6
+ import { styled } from "@linaria/react";
7
+ import { forwardRef, useState } from "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { cx } from "@linaria/core";
10
+ import { MinusIcon, PlusIcon } from "@phosphor-icons/react";
4
11
  //#region src/inputs/NumberInput.tsx
5
12
  /**
6
- * A numeric field. `min`/`max` are a real numeric range here (unlike `TextInput`,
7
- * where they bound character count) and values outside it are clamped, not
8
- * rejected — `onChange` only ever sees an in-range number.
13
+ * A single-line field for one number. The user types it, or steps it with the arrow keys
14
+ * (`ArrowUp` / `ArrowDown`, `PageUp` / `PageDown` ×10, `Home` / `End` to the bounds) or the
15
+ * optional `−` / `+` buttons (`hasSteppers`). Its value is a `number`, or `null` when empty.
16
+ *
17
+ * A preset over `Input` (base): Input holds the text being typed, and NumberInput converts at its
18
+ * edge. `onChange` fires on **commit** (blur, Enter or a step) with the value clamped to
19
+ * `min` / `max` and rounded to `precision`, never per keystroke. While not focused the field can
20
+ * show `format(value)` (`formatNumber`, `formatBytes`, …); the raw number shows while editing.
21
+ * Units are Input's `suffix` / `prefix`. `InputSize` / `InputVariant` are imported from
22
+ * `inputs/Input`. It never validates: out-of-range values are clamped, not rejected.
23
+ *
24
+ * Replaces 1.x `NumberInput` (`type="number"` and per-keystroke clamping are gone; `width` →
25
+ * `fillWidth`, `isMonospace` → `family`, `labelTooltip` → wrap in `Field`).
9
26
  */
10
- var NumberInput = ({ value, placeholder, label, labelTooltip, variant, size, leading, trailing, error, isError, isRequired, isDisabled, autoFocus, min, max, step, onChange, onFocus, onBlur, onKeyDown, width, fillWidth, isMonospace }) => {
11
- return /* @__PURE__ */ jsx(Input, {
12
- type: "number",
27
+ /** Tabular digits, so the value keeps its width while stepping (lands on Input's root). */
28
+ var NUMBER_INPUT_CSS = "gx-NumberInput-NUMBER_INPUT_CSS-n19kajw4";
29
+ /** The `−` / `+` group (and any `trailing`), 2px apart. */
30
+ var Steppers = /*#__PURE__*/ styled("span")({
31
+ name: "Steppers",
32
+ class: "gx-NumberInput-Steppers-s1qkbe08",
33
+ propsAsIs: false
34
+ });
35
+ /** Drafts that commit `null`: nothing, or a sign / point with no digits. */
36
+ var EMPTY_DRAFTS = new Set([
37
+ "",
38
+ "-",
39
+ ".",
40
+ "-."
41
+ ]);
42
+ /** Separators removed from typed or pasted text (`1,204` → `1204`). */
43
+ var SEPARATORS = /[\s,_]/g;
44
+ /** The most fraction digits `toFixed` accepts. */
45
+ var MAX_FRACTION_DIGITS = 100;
46
+ /** Fraction digits of a finite number, exponent notation included (`1e-7` → 7). */
47
+ function countFractionDigits(n) {
48
+ if (!Number.isFinite(n)) return 0;
49
+ const [mantissa = "", exponent] = String(n).split("e");
50
+ const fraction = mantissa.split(".")[1]?.length ?? 0;
51
+ return Math.max(0, fraction - (exponent === void 0 ? 0 : Number(exponent)));
52
+ }
53
+ /** Rounds to at most `digits` fraction digits. */
54
+ function roundTo(n, digits) {
55
+ return Number(n.toFixed(Math.min(Math.max(digits, 0), MAX_FRACTION_DIGITS)));
56
+ }
57
+ /** The raw text of a committed value, shown while editing. */
58
+ function toRawText(value) {
59
+ return value === null ? "" : String(value);
60
+ }
61
+ /** A single-line number field: `Input` with `type="text"`, parsing, clamping and stepping at its edge. */
62
+ var NumberInput = forwardRef(function NumberInput(props, ref) {
63
+ const { value, defaultValue, onChange, onEnter, min, max, step = 1, precision, format, hasSteppers = false, trailing, size = InputSize.MEDIUM, isDisabled = false, isReadOnly = false, onFocus, onBlur, onKeyDown, className, style, ...rest } = props;
64
+ const [committed, setCommitted] = useControlledState({
13
65
  value,
14
- placeholder,
15
- label,
16
- labelTooltip,
17
- variant,
66
+ defaultValue: defaultValue ?? null,
67
+ onChange
68
+ });
69
+ const [isFocused, setIsFocused] = useState(false);
70
+ /** The text being edited, or `null` when the field shows the committed value. */
71
+ const [draft, setDraft] = useState(null);
72
+ const [seenValue, setSeenValue] = useState(committed);
73
+ if (!Object.is(seenValue, committed)) {
74
+ setSeenValue(committed);
75
+ setDraft(null);
76
+ }
77
+ const isBlocked = isDisabled || isReadOnly;
78
+ const allowsNegative = min === void 0 || min < 0;
79
+ const allowsFraction = precision !== 0;
80
+ const inputMode = allowsNegative ? "text" : precision === 0 ? "numeric" : "decimal";
81
+ const shownText = draft ?? (committed === null ? "" : isFocused || format === void 0 ? String(committed) : format(committed));
82
+ const clamp = (n) => {
83
+ if (min !== void 0 && n < min) return min;
84
+ if (max !== void 0 && n > max) return max;
85
+ return n;
86
+ };
87
+ /** Sets the committed value if it differs from `current`, and shows it. */
88
+ const commitValue = (next, current = committed) => {
89
+ if (!Object.is(next, current)) setCommitted(next);
90
+ setDraft(null);
91
+ return next;
92
+ };
93
+ /** Parses the draft (if any), rounds and clamps it, and commits. Returns the committed value. */
94
+ const commit = () => {
95
+ if (draft === null) return committed;
96
+ if (EMPTY_DRAFTS.has(draft)) return commitValue(null);
97
+ const parsed = Number(draft);
98
+ if (Number.isNaN(parsed)) return commitValue(committed);
99
+ return commitValue(clamp(precision === void 0 ? parsed : roundTo(parsed, precision)));
100
+ };
101
+ /** Commits, then adds `amount` (or starts at `min ?? 0` from empty). */
102
+ const stepBy = (amount) => {
103
+ if (isBlocked) return;
104
+ const base = commit();
105
+ if (base === null) {
106
+ commitValue(clamp(min ?? 0), base);
107
+ return;
108
+ }
109
+ const digits = Math.max(countFractionDigits(base), countFractionDigits(step));
110
+ let next = roundTo(base + amount, digits);
111
+ if (precision !== void 0) next = roundTo(next, precision);
112
+ commitValue(clamp(next), base);
113
+ };
114
+ const handleDraft = (next) => {
115
+ const cleaned = next.replace(SEPARATORS, "");
116
+ if (new RegExp(`^${allowsNegative ? "-?" : ""}\\d*${allowsFraction ? "(\\.\\d*)?" : ""}$`).test(cleaned)) setDraft(cleaned);
117
+ };
118
+ const handleEnter = () => {
119
+ const result = commit();
120
+ onEnter?.(result);
121
+ };
122
+ const handleFocus = (event) => {
123
+ onFocus?.(event);
124
+ setIsFocused(true);
125
+ };
126
+ const handleBlur = (event) => {
127
+ onBlur?.(event);
128
+ commit();
129
+ setIsFocused(false);
130
+ };
131
+ const handleKeyDown = (event) => {
132
+ onKeyDown?.(event);
133
+ if (event.defaultPrevented || event.nativeEvent.isComposing) return;
134
+ switch (event.key) {
135
+ case "ArrowUp":
136
+ case "ArrowDown":
137
+ case "PageUp":
138
+ case "PageDown": {
139
+ if (isBlocked) return;
140
+ event.preventDefault();
141
+ const amount = event.key === "PageUp" || event.key === "PageDown" ? step * 10 : step;
142
+ stepBy(event.key === "ArrowUp" || event.key === "PageUp" ? amount : -amount);
143
+ return;
144
+ }
145
+ case "Home":
146
+ case "End": {
147
+ const bound = event.key === "Home" ? min : max;
148
+ if (bound === void 0 || isBlocked) return;
149
+ event.preventDefault();
150
+ commitValue(bound);
151
+ return;
152
+ }
153
+ case "Escape":
154
+ if (draft === null || draft === toRawText(committed)) return;
155
+ event.stopPropagation();
156
+ setDraft(null);
157
+ return;
158
+ default: return;
159
+ }
160
+ };
161
+ const showsSteppers = hasSteppers && !isReadOnly;
162
+ const hasTrailing = trailing !== void 0 && trailing !== null && trailing !== false;
163
+ const trailingNode = showsSteppers ? /* @__PURE__ */ jsxs(Steppers, { children: [
164
+ hasTrailing && trailing,
165
+ /* @__PURE__ */ jsx(Button, {
166
+ variant: ButtonVariant.TERTIARY,
167
+ size: INPUT_SIZE_TO_BUTTON_SIZE_MAP[size],
168
+ icon: MinusIcon,
169
+ ariaLabel: "Decrease",
170
+ isDisabled: isDisabled || committed !== null && min !== void 0 && committed <= min,
171
+ onClick: () => stepBy(-step),
172
+ className: cx(size === InputSize.X_SMALL && "gx-innerButton-X_SMALL_INNER_BUTTON_CSS-x1ep0pcd")
173
+ }),
174
+ /* @__PURE__ */ jsx(Button, {
175
+ variant: ButtonVariant.TERTIARY,
176
+ size: INPUT_SIZE_TO_BUTTON_SIZE_MAP[size],
177
+ icon: PlusIcon,
178
+ ariaLabel: "Increase",
179
+ isDisabled: isDisabled || committed !== null && max !== void 0 && committed >= max,
180
+ onClick: () => stepBy(step),
181
+ className: cx(size === InputSize.X_SMALL && "gx-innerButton-X_SMALL_INNER_BUTTON_CSS-x1ep0pcd")
182
+ })
183
+ ] }) : hasTrailing ? trailing : void 0;
184
+ return /* @__PURE__ */ jsx(Input, {
185
+ ref,
186
+ ...rest,
18
187
  size,
19
- leading,
20
- trailing,
21
- error,
22
- isError,
23
- isRequired,
24
188
  isDisabled,
25
- autoFocus,
26
- min,
27
- max,
28
- step,
29
- onChange: useCallback((newValue) => {
30
- if (newValue === null) return min ?? void 0;
31
- if (min !== void 0 && newValue < min) return min;
32
- if (max !== void 0 && newValue > max) return max;
33
- onChange(newValue);
34
- }, [
35
- min,
36
- max,
37
- onChange
38
- ]),
39
- onFocus,
40
- onBlur,
41
- onKeyDown,
42
- parse: Number,
43
- width,
44
- fillWidth,
45
- isMonospace
189
+ isReadOnly,
190
+ type: "text",
191
+ inputMode,
192
+ spellCheck: false,
193
+ value: shownText,
194
+ onChange: handleDraft,
195
+ onEnter: handleEnter,
196
+ onFocus: handleFocus,
197
+ onBlur: handleBlur,
198
+ onKeyDown: handleKeyDown,
199
+ trailing: trailingNode,
200
+ className: cx(NUMBER_INPUT_CSS, className),
201
+ ...style === void 0 ? {} : { style }
46
202
  });
47
- };
203
+ });
204
+ NumberInput.displayName = "NumberInput";
48
205
  //#endregion
49
206
  export { NumberInput as default };
@@ -1,13 +1,18 @@
1
- import { type InputProps } from "./Input";
2
- /**
3
- * Every `InputProps` field except `type` and `parse`, which are fixed. `trailing`
4
- * is omitted because the reveal toggle owns that slot, and `min`/`max`/`step` are
5
- * numeric-only.
6
- */
7
- export type PasswordInputProps = Omit<InputProps<string>, "type" | "parse" | "trailing" | "min" | "max" | "step">;
8
- /**
9
- * A masked text field with a built-in reveal toggle in the trailing slot.
10
- * Toggling only flips the DOM `type` — the value is never transformed.
11
- */
12
- declare const PasswordInput: import("react").ForwardRefExoticComponent<PasswordInputProps & import("react").RefAttributes<HTMLInputElement>>;
1
+ import { type InputProps } from "./Input.js";
2
+ /** Every `Input` prop except those the password field fixes or owns, with its own `autoComplete` default. */
3
+ export type PasswordInputProps = Omit<InputProps, "type" | "trailing" | "isClearable" | "prefix" | "suffix" | "inputMode" | "spellCheck" | "autoComplete"> & {
4
+ /**
5
+ * Password-manager hint. Use `"new-password"` on sign-up and change-password forms.
6
+ * @default "current-password"
7
+ */
8
+ autoComplete?: InputProps["autoComplete"];
9
+ };
10
+ /** A masked single-line field with a "Show password" toggle: `Input` with `type="password"`. */
11
+ declare const PasswordInput: import("react").ForwardRefExoticComponent<Omit<InputProps, "spellCheck" | "prefix" | "inputMode" | "type" | "trailing" | "autoComplete" | "suffix" | "isClearable"> & {
12
+ /**
13
+ * Password-manager hint. Use `"new-password"` on sign-up and change-password forms.
14
+ * @default "current-password"
15
+ */
16
+ autoComplete?: InputProps["autoComplete"];
17
+ } & import("react").RefAttributes<HTMLInputElement>>;
13
18
  export default PasswordInput;
@@ -1,46 +1,46 @@
1
- import Input from "./Input.js";
1
+ import Button, { ButtonVariant } from "../buttons/Button.js";
2
+ import "./internal/innerButton.js";
3
+ import Input, { INPUT_SIZE_TO_BUTTON_SIZE_MAP, InputSize } from "./Input.js";
2
4
  import { forwardRef, useState } from "react";
3
5
  import { jsx } from "react/jsx-runtime";
6
+ import { cx } from "@linaria/core";
4
7
  import { EyeIcon, EyeSlashIcon } from "@phosphor-icons/react";
5
8
  //#region src/inputs/PasswordInput.tsx
6
- var DEFAULT_STATE = { showPassword: false };
7
9
  /**
8
- * A masked text field with a built-in reveal toggle in the trailing slot.
9
- * Toggling only flips the DOM `type` — the value is never transformed.
10
+ * A single-line field whose value is masked, with a reveal toggle at its end. A preset over `Input`
11
+ * (base), like `TextInput`: it renders a real `Input` with `type="password"` (`"text"` while
12
+ * revealed), puts the toggle in Input's `trailing` slot using Input's in-field action pattern (a
13
+ * `TERTIARY` icon-only `Button` at the rung's in-field button size), and sets password-friendly
14
+ * defaults (`autoComplete="current-password"`, spell-check off). Every other prop is Input's;
15
+ * `InputSize` / `InputVariant` are imported from `inputs/Input`.
16
+ *
17
+ * PasswordInput holds no strength or matching rules: the app validates and passes `error`.
18
+ * Replaces 1.x `PasswordInput` (its unnamed bare toggle is now a named `aria-pressed` Button;
19
+ * `width` → `fillWidth`, `isMonospace` → `family`, `labelTooltip` → wrap in `Field`).
10
20
  */
11
- var PasswordInput = forwardRef(({ variant, size, value, placeholder, label, labelTooltip, leading, error, isError, isRequired, isDisabled, autoFocus, onChange, width, fillWidth, onKeyDown, onBlur, onFocus, isMonospace }, ref) => {
12
- const [state, setState] = useState(DEFAULT_STATE);
21
+ /** A masked single-line field with a "Show password" toggle: `Input` with `type="password"`. */
22
+ var PasswordInput = forwardRef(function PasswordInput(props, ref) {
23
+ const { autoComplete = "current-password", size = InputSize.MEDIUM, isDisabled = false, ...rest } = props;
24
+ const [isRevealed, setIsRevealed] = useState(false);
25
+ const toggle = /* @__PURE__ */ jsx(Button, {
26
+ variant: ButtonVariant.TERTIARY,
27
+ size: INPUT_SIZE_TO_BUTTON_SIZE_MAP[size],
28
+ icon: isRevealed ? EyeSlashIcon : EyeIcon,
29
+ ariaLabel: "Show password",
30
+ "aria-pressed": isRevealed,
31
+ isDisabled,
32
+ onClick: () => setIsRevealed(!isRevealed),
33
+ className: cx(size === InputSize.X_SMALL && "gx-innerButton-X_SMALL_INNER_BUTTON_CSS-x1ep0pcd")
34
+ });
13
35
  return /* @__PURE__ */ jsx(Input, {
14
36
  ref,
15
- parse: String,
16
- onChange,
17
- variant,
37
+ ...rest,
18
38
  size,
19
- type: state.showPassword ? "text" : "password",
20
- value,
21
- placeholder,
22
- label,
23
- labelTooltip,
24
- leading,
25
- trailing: {
26
- icon: state.showPassword ? EyeSlashIcon : EyeIcon,
27
- onClick: () => setState({
28
- ...state,
29
- showPassword: !state.showPassword
30
- }),
31
- isDisabled
32
- },
33
- error,
34
- isError,
35
- isRequired,
36
39
  isDisabled,
37
- autoFocus,
38
- onKeyDown,
39
- onBlur,
40
- onFocus,
41
- width,
42
- fillWidth,
43
- isMonospace
40
+ type: isRevealed ? "text" : "password",
41
+ autoComplete,
42
+ spellCheck: false,
43
+ trailing: toggle
44
44
  });
45
45
  });
46
46
  PasswordInput.displayName = "PasswordInput";
@@ -0,0 +1,117 @@
1
+ import { type AriaAttributes, type CSSProperties, type InputHTMLAttributes } from "react";
2
+ /** Canonical rungs; PinInput exposes three (EXAMPLES §14). Boxes are squares of the rung height. */
3
+ export declare enum PinInputSize {
4
+ /** 24px boxes, body_md mono characters. */
5
+ SMALL = "SMALL",
6
+ /** 32px boxes, body_lg mono characters. The default. */
7
+ MEDIUM = "MEDIUM",
8
+ /** 36px boxes, heading_sm mono characters. */
9
+ LARGE = "LARGE"
10
+ }
11
+ /** Resting fill of each box (Constitution V-A surface set; the 1.x InputVariant members). */
12
+ export declare enum PinInputVariant {
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
+ /** Which characters a box accepts (EXAMPLES §14). */
23
+ export declare enum PinInputType {
24
+ /** 0–9; the numeric keypad on mobile. The default. */
25
+ NUMERIC = "NUMERIC",
26
+ /** A–Z, a–z, 0–9, kept in the case typed; the text keyboard. */
27
+ ALPHANUMERIC = "ALPHANUMERIC"
28
+ }
29
+ /** The one native attribute PinInput passes through (kept out of the lint-checked props list). */
30
+ interface PinInputNativeProps {
31
+ /**
32
+ * Focus the first empty box on mount.
33
+ * @default false
34
+ */
35
+ autoFocus?: InputHTMLAttributes<HTMLInputElement>["autoFocus"];
36
+ }
37
+ export interface PinInputProps extends AriaAttributes, PinInputNativeProps {
38
+ /**
39
+ * Number of boxes. Floored; values below 1 render 1.
40
+ * @default 6
41
+ */
42
+ length?: number;
43
+ /** Controlled code: the characters typed so far, from the first box, with no gaps. Pass it with `onChange`. */
44
+ value?: string;
45
+ /**
46
+ * Initial code while uncontrolled.
47
+ * @default ""
48
+ */
49
+ defaultValue?: string;
50
+ /** Called with the whole code (possibly partial) after every edit, paste or deletion. */
51
+ onChange?: (value: string) => void;
52
+ /** Called once, after `onChange`, each time an edit makes the code `length` characters long. */
53
+ onComplete?: (value: string) => void;
54
+ /**
55
+ * Which characters are accepted. Others are ignored when typed or pasted. Also sets the mobile keyboard.
56
+ * @default PinInputType.NUMERIC
57
+ */
58
+ type?: PinInputType;
59
+ /**
60
+ * Show dots instead of characters, for codes that should not be read over a shoulder.
61
+ * @default false
62
+ */
63
+ isMasked?: boolean;
64
+ /**
65
+ * Box rung: 24 / 32 / 36px squares.
66
+ * @default PinInputSize.MEDIUM
67
+ */
68
+ size?: PinInputSize;
69
+ /**
70
+ * Resting fill of each box, from the surface set. Ignored with `isGhost`.
71
+ * @default PinInputVariant.PRIMARY
72
+ */
73
+ variant?: PinInputVariant;
74
+ /**
75
+ * Ghost boxes: no fill and no hairline at rest; a box shows its frame on hover and focus (1.x
76
+ * `TRANSPARENT`).
77
+ * @default false
78
+ */
79
+ isGhost?: boolean;
80
+ /** Label above the boxes, rendered through `Field`. For a description, wrap the PinInput in `Field` instead. */
81
+ label?: string;
82
+ /** Message from the app ("Code is incorrect"), shown under the boxes through `Field`. Also turns every box's border red and sets `aria-invalid`. */
83
+ error?: string;
84
+ /**
85
+ * Error borders and `aria-invalid` without a message. `error` implies it.
86
+ * @default false
87
+ */
88
+ isError?: boolean;
89
+ /**
90
+ * No box is focusable or editable. Shows the disabled look.
91
+ * @default false
92
+ */
93
+ isDisabled?: boolean;
94
+ /**
95
+ * Boxes are focusable and the code is readable, but nothing can be typed, deleted or pasted.
96
+ * @default false
97
+ */
98
+ isReadOnly?: boolean;
99
+ /**
100
+ * Required marker on the `label` (via `Field`) and `aria-required` on every box. No validation.
101
+ * @default false
102
+ */
103
+ isRequired?: boolean;
104
+ /** Accessible name of the group when there is no visible label (no `label` and no wrapping `Field`). */
105
+ ariaLabel?: string;
106
+ /** DOM id of the first box. A wrapping `Field`'s label points to it, and the other boxes derive their ids from it. */
107
+ id?: string;
108
+ /** Any `data-*` attribute, forwarded to the group root. */
109
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
110
+ /** Extra class on the root: the `Field` wrapper when PinInput renders one, otherwise the group. */
111
+ className?: string;
112
+ /** Inline style on the root; only for setting CSS custom properties. */
113
+ style?: CSSProperties;
114
+ }
115
+ /** One box per character, for OTP and confirmation codes. */
116
+ declare const PinInput: import("react").ForwardRefExoticComponent<PinInputProps & import("react").RefAttributes<HTMLDivElement>>;
117
+ export default PinInput;