@soroush.tech/design-system 2.0.0-rc.3 → 2.0.0-rc.4

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 (450) hide show
  1. package/README.md +54 -32
  2. package/dist/Accordion/Accordion.cjs +100 -0
  3. package/dist/Accordion/Accordion.d.cts +41 -0
  4. package/dist/Accordion/Accordion.d.mts +41 -0
  5. package/dist/Accordion/Accordion.mjs +98 -0
  6. package/dist/Accordion/AccordionActions.cjs +29 -0
  7. package/dist/Accordion/AccordionActions.d.cts +12 -0
  8. package/dist/Accordion/AccordionActions.d.mts +12 -0
  9. package/dist/Accordion/AccordionActions.mjs +27 -0
  10. package/dist/Accordion/AccordionDetails.cjs +23 -0
  11. package/dist/Accordion/AccordionDetails.d.cts +12 -0
  12. package/dist/Accordion/AccordionDetails.d.mts +12 -0
  13. package/dist/Accordion/AccordionDetails.mjs +21 -0
  14. package/dist/Accordion/AccordionGroup.cjs +79 -0
  15. package/dist/Accordion/AccordionGroup.d.cts +24 -0
  16. package/dist/Accordion/AccordionGroup.d.mts +24 -0
  17. package/dist/Accordion/AccordionGroup.mjs +77 -0
  18. package/dist/Accordion/AccordionSummary.cjs +99 -0
  19. package/dist/Accordion/AccordionSummary.d.cts +21 -0
  20. package/dist/Accordion/AccordionSummary.d.mts +21 -0
  21. package/dist/Accordion/AccordionSummary.mjs +97 -0
  22. package/dist/Accordion.cjs +11 -0
  23. package/dist/Accordion.d.cts +6 -0
  24. package/dist/Accordion.d.mts +6 -0
  25. package/dist/Accordion.mjs +6 -0
  26. package/dist/AccordionContext-B2TCl9Os.cjs +44 -0
  27. package/dist/AccordionContext-DDk_i9Dx.mjs +15 -0
  28. package/dist/Alert/Alert.cjs +154 -0
  29. package/dist/Alert/Alert.d.cts +37 -0
  30. package/dist/Alert/Alert.d.mts +37 -0
  31. package/dist/Alert/Alert.mjs +152 -0
  32. package/dist/Alert/AlertTitle.cjs +21 -0
  33. package/dist/Alert/AlertTitle.d.cts +12 -0
  34. package/dist/Alert/AlertTitle.d.mts +12 -0
  35. package/dist/Alert/AlertTitle.mjs +20 -0
  36. package/dist/Alert.cjs +5 -0
  37. package/dist/Alert.d.cts +3 -0
  38. package/dist/Alert.d.mts +3 -0
  39. package/dist/Alert.mjs +3 -0
  40. package/dist/AppBar.cjs +1 -1
  41. package/dist/AppBar.d.cts +1 -1
  42. package/dist/AppBar.d.mts +1 -1
  43. package/dist/AppBar.mjs +1 -1
  44. package/dist/Autocomplete.cjs +666 -0
  45. package/dist/Autocomplete.d.cts +97 -0
  46. package/dist/Autocomplete.d.mts +97 -0
  47. package/dist/Autocomplete.mjs +664 -0
  48. package/dist/Avatar.cjs +2 -2
  49. package/dist/Avatar.d.cts +1 -1
  50. package/dist/Avatar.d.mts +1 -1
  51. package/dist/Avatar.mjs +2 -2
  52. package/dist/Backdrop.d.cts +1 -1
  53. package/dist/Backdrop.d.mts +1 -1
  54. package/dist/Badge.cjs +130 -0
  55. package/dist/Badge.d.cts +45 -0
  56. package/dist/Badge.d.mts +45 -0
  57. package/dist/Badge.mjs +128 -0
  58. package/dist/Breadcrumbs.cjs +2 -2
  59. package/dist/Breadcrumbs.d.cts +3 -3
  60. package/dist/Breadcrumbs.d.mts +3 -3
  61. package/dist/Breadcrumbs.mjs +2 -2
  62. package/dist/Button.cjs +6 -3
  63. package/dist/Button.d.cts +1 -1
  64. package/dist/Button.d.mts +1 -1
  65. package/dist/Button.mjs +6 -3
  66. package/dist/ButtonGroup.cjs +1 -1
  67. package/dist/ButtonGroup.d.cts +1 -1
  68. package/dist/ButtonGroup.d.mts +1 -1
  69. package/dist/ButtonGroup.mjs +1 -1
  70. package/dist/Card.cjs +2 -2
  71. package/dist/Card.d.cts +4 -4
  72. package/dist/Card.d.mts +4 -4
  73. package/dist/Card.mjs +2 -2
  74. package/dist/Checkbox.cjs +13 -3
  75. package/dist/Checkbox.d.cts +4 -2
  76. package/dist/Checkbox.d.mts +4 -2
  77. package/dist/Checkbox.mjs +13 -3
  78. package/dist/Chip.cjs +194 -0
  79. package/dist/Chip.d.cts +49 -0
  80. package/dist/Chip.d.mts +49 -0
  81. package/dist/Chip.mjs +192 -0
  82. package/dist/CircularProgress.cjs +1 -1
  83. package/dist/CircularProgress.d.cts +2 -2
  84. package/dist/CircularProgress.d.mts +2 -2
  85. package/dist/CircularProgress.mjs +1 -1
  86. package/dist/Collapse.cjs +126 -0
  87. package/dist/Collapse.d.cts +2 -0
  88. package/dist/Collapse.d.mts +2 -0
  89. package/dist/Collapse.mjs +124 -0
  90. package/dist/Drawer.d.cts +3 -3
  91. package/dist/Drawer.d.mts +3 -3
  92. package/dist/Fab.cjs +114 -0
  93. package/dist/Fab.d.cts +2 -0
  94. package/dist/Fab.d.mts +2 -0
  95. package/dist/Fab.mjs +113 -0
  96. package/dist/FabMenu/FabMenu.cjs +3 -0
  97. package/dist/FabMenu/FabMenu.d.cts +53 -0
  98. package/dist/FabMenu/FabMenu.d.mts +53 -0
  99. package/dist/FabMenu/FabMenu.mjs +2 -0
  100. package/dist/FabMenu/FabMenuItem.cjs +28 -0
  101. package/dist/FabMenu/FabMenuItem.d.cts +19 -0
  102. package/dist/FabMenu/FabMenuItem.d.mts +19 -0
  103. package/dist/FabMenu/FabMenuItem.mjs +27 -0
  104. package/dist/FabMenu-BDfkT_zt.mjs +273 -0
  105. package/dist/FabMenu-RiVtzrKe.cjs +279 -0
  106. package/dist/FabMenu.cjs +5 -0
  107. package/dist/FabMenu.d.cts +3 -0
  108. package/dist/FabMenu.d.mts +3 -0
  109. package/dist/FabMenu.mjs +3 -0
  110. package/dist/FabMenuContext-BZslb0lL.cjs +22 -0
  111. package/dist/FabMenuContext-D-XlDbLl.mjs +11 -0
  112. package/dist/Fade.cjs +17 -0
  113. package/dist/Fade.d.cts +11 -0
  114. package/dist/Fade.d.mts +11 -0
  115. package/dist/Fade.mjs +16 -0
  116. package/dist/Flex.d.cts +1 -1
  117. package/dist/Flex.d.mts +1 -1
  118. package/dist/Form.d.cts +1 -1
  119. package/dist/Form.d.mts +1 -1
  120. package/dist/FormControl.cjs +5 -3
  121. package/dist/FormControl.d.cts +1 -1
  122. package/dist/FormControl.d.mts +1 -1
  123. package/dist/FormControl.mjs +5 -3
  124. package/dist/FormHelperText.cjs +1 -1
  125. package/dist/FormHelperText.d.cts +1 -1
  126. package/dist/FormHelperText.d.mts +1 -1
  127. package/dist/FormHelperText.mjs +1 -1
  128. package/dist/FormLabel.cjs +4 -1
  129. package/dist/FormLabel.d.cts +1 -1
  130. package/dist/FormLabel.d.mts +1 -1
  131. package/dist/FormLabel.mjs +4 -1
  132. package/dist/Grid.d.cts +1 -1
  133. package/dist/Grid.d.mts +1 -1
  134. package/dist/Grow.cjs +21 -0
  135. package/dist/Grow.d.cts +11 -0
  136. package/dist/Grow.d.mts +11 -0
  137. package/dist/Grow.mjs +20 -0
  138. package/dist/{Icon-BihOAP4u.mjs → Icon-0hPpk-WZ.mjs} +31 -1
  139. package/dist/{Icon-D-EWsBVg.cjs → Icon-BE7bRsqR.cjs} +31 -1
  140. package/dist/Icon.cjs +1 -1
  141. package/dist/Icon.d.cts +1 -1
  142. package/dist/Icon.d.mts +1 -1
  143. package/dist/Icon.mjs +1 -1
  144. package/dist/Image.d.cts +1 -1
  145. package/dist/Image.d.mts +1 -1
  146. package/dist/LinearProgress.cjs +1 -1
  147. package/dist/LinearProgress.d.cts +2 -2
  148. package/dist/LinearProgress.d.mts +2 -2
  149. package/dist/LinearProgress.mjs +1 -1
  150. package/dist/Link.cjs +3 -3
  151. package/dist/Link.d.cts +1 -1
  152. package/dist/Link.d.mts +1 -1
  153. package/dist/Link.mjs +3 -3
  154. package/dist/Menu/ContextMenu.cjs +6 -4
  155. package/dist/Menu/ContextMenu.d.cts +8 -6
  156. package/dist/Menu/ContextMenu.d.mts +8 -6
  157. package/dist/Menu/ContextMenu.mjs +6 -4
  158. package/dist/Menu/Menu.cjs +1 -1
  159. package/dist/Menu/Menu.d.cts +1 -1
  160. package/dist/Menu/Menu.d.mts +1 -1
  161. package/dist/Menu/Menu.mjs +1 -1
  162. package/dist/Menu/MenuItems.cjs +1 -1
  163. package/dist/Menu/MenuItems.d.cts +1 -1
  164. package/dist/Menu/MenuItems.d.mts +1 -1
  165. package/dist/Menu/MenuItems.mjs +1 -1
  166. package/dist/Menu/MenuList.cjs +1 -1
  167. package/dist/Menu/MenuList.d.cts +2 -2
  168. package/dist/Menu/MenuList.d.mts +2 -2
  169. package/dist/Menu/MenuList.mjs +1 -1
  170. package/dist/{Menu-CrzHc_cn.mjs → Menu-CnG4ikZd.mjs} +6 -4
  171. package/dist/{Menu-Cgg-sX4W.cjs → Menu-DXLjR9ga.cjs} +6 -4
  172. package/dist/Menu.cjs +2 -2
  173. package/dist/Menu.d.cts +3 -3
  174. package/dist/Menu.d.mts +3 -3
  175. package/dist/Menu.mjs +2 -2
  176. package/dist/{MenuItem-DUn4IZKK.mjs → MenuItem-C21eR7d6.mjs} +40 -79
  177. package/dist/{MenuItem-BTP7Ijwi.cjs → MenuItem-EJ4u73f0.cjs} +39 -78
  178. package/dist/MenuItem.cjs +1 -1
  179. package/dist/MenuItem.d.cts +1 -1
  180. package/dist/MenuItem.d.mts +1 -1
  181. package/dist/MenuItem.mjs +1 -1
  182. package/dist/{MenuList-D4imLXAa.cjs → MenuList-BBAYeUvD.cjs} +1 -1
  183. package/dist/{MenuList-B7msJ1IG.mjs → MenuList-Cz3cupC3.mjs} +1 -1
  184. package/dist/{MenuListContext-DKUOhNyw.d.cts → MenuListContext-BWL5fM_L.d.mts} +2 -2
  185. package/dist/{MenuListContext-x-7lH4CH.d.mts → MenuListContext-BrCKLgKZ.d.cts} +2 -2
  186. package/dist/{Modal-BcsyrrpH.mjs → Modal-CEHDej-v.mjs} +3 -22
  187. package/dist/{Modal-CM3osOqj.cjs → Modal-DBw4j0YA.cjs} +3 -22
  188. package/dist/Modal.cjs +1 -1
  189. package/dist/Modal.d.cts +1 -1
  190. package/dist/Modal.d.mts +1 -1
  191. package/dist/Modal.mjs +1 -1
  192. package/dist/NativeSelect.cjs +8 -12
  193. package/dist/NativeSelect.d.cts +2 -2
  194. package/dist/NativeSelect.d.mts +2 -2
  195. package/dist/NativeSelect.mjs +8 -12
  196. package/dist/{NumberField.cjs → NumberInput.cjs} +69 -43
  197. package/dist/{NumberField.d.cts → NumberInput.d.cts} +14 -9
  198. package/dist/{NumberField.d.mts → NumberInput.d.mts} +14 -9
  199. package/dist/{NumberField.mjs → NumberInput.mjs} +69 -43
  200. package/dist/Pagination/PaginationItem.cjs +2 -2
  201. package/dist/Pagination/PaginationItem.d.cts +1 -1
  202. package/dist/Pagination/PaginationItem.d.mts +1 -1
  203. package/dist/Pagination/PaginationItem.mjs +2 -2
  204. package/dist/Pagination.d.cts +2 -2
  205. package/dist/Pagination.d.mts +2 -2
  206. package/dist/Paper.cjs +2 -2
  207. package/dist/Paper.d.cts +2 -2
  208. package/dist/Paper.d.mts +2 -2
  209. package/dist/Paper.mjs +2 -2
  210. package/dist/{Popover-QjM5Z1CR.mjs → Popover-Neeqs_7l.mjs} +3 -3
  211. package/dist/{Popover-CiZfgiKE.cjs → Popover-xyJTSjZy.cjs} +3 -3
  212. package/dist/Popover.cjs +1 -1
  213. package/dist/Popover.d.cts +3 -3
  214. package/dist/Popover.d.mts +3 -3
  215. package/dist/Popover.mjs +1 -1
  216. package/dist/Portal.d.cts +1 -17
  217. package/dist/Portal.d.mts +1 -17
  218. package/dist/Pressable.cjs +17 -13
  219. package/dist/Pressable.d.cts +1 -1
  220. package/dist/Pressable.d.mts +1 -1
  221. package/dist/Pressable.mjs +17 -13
  222. package/dist/Quote.d.cts +2 -2
  223. package/dist/Quote.d.mts +2 -2
  224. package/dist/Radio.cjs +13 -3
  225. package/dist/Radio.d.cts +4 -2
  226. package/dist/Radio.d.mts +4 -2
  227. package/dist/Radio.mjs +13 -3
  228. package/dist/{InputRange.cjs → RangeInput.cjs} +45 -43
  229. package/dist/{InputRange.d.mts → RangeInput.d.cts} +15 -15
  230. package/dist/{InputRange.d.cts → RangeInput.d.mts} +15 -15
  231. package/dist/{InputRange.mjs → RangeInput.mjs} +45 -43
  232. package/dist/Rating.cjs +3 -3
  233. package/dist/Rating.d.cts +1 -1
  234. package/dist/Rating.d.mts +1 -1
  235. package/dist/Rating.mjs +3 -3
  236. package/dist/ScrollArea.cjs +268 -0
  237. package/dist/ScrollArea.d.cts +40 -0
  238. package/dist/ScrollArea.d.mts +40 -0
  239. package/dist/ScrollArea.mjs +266 -0
  240. package/dist/Select.cjs +9 -12
  241. package/dist/Select.d.cts +2 -2
  242. package/dist/Select.d.mts +2 -2
  243. package/dist/Select.mjs +9 -12
  244. package/dist/Sidebar/Sidebar.d.cts +1 -1
  245. package/dist/Sidebar/Sidebar.d.mts +1 -1
  246. package/dist/Sidebar/SidebarItem.cjs +2 -2
  247. package/dist/Sidebar/SidebarItem.d.cts +3 -3
  248. package/dist/Sidebar/SidebarItem.d.mts +3 -3
  249. package/dist/Sidebar/SidebarItem.mjs +2 -2
  250. package/dist/Skeleton.d.cts +1 -1
  251. package/dist/Skeleton.d.mts +1 -1
  252. package/dist/Slide.cjs +51 -0
  253. package/dist/Slide.d.cts +17 -0
  254. package/dist/Slide.d.mts +17 -0
  255. package/dist/Slide.mjs +50 -0
  256. package/dist/Snackbar.cjs +205 -0
  257. package/dist/Snackbar.d.cts +62 -0
  258. package/dist/Snackbar.d.mts +62 -0
  259. package/dist/Snackbar.mjs +203 -0
  260. package/dist/Switch.cjs +15 -5
  261. package/dist/Switch.d.cts +4 -2
  262. package/dist/Switch.d.mts +4 -2
  263. package/dist/Switch.mjs +15 -5
  264. package/dist/Table/Table.d.cts +2 -2
  265. package/dist/Table/Table.d.mts +2 -2
  266. package/dist/Table/TableBody.d.cts +1 -1
  267. package/dist/Table/TableBody.d.mts +1 -1
  268. package/dist/Table/TableCell.d.cts +1 -1
  269. package/dist/Table/TableCell.d.mts +1 -1
  270. package/dist/Table/TableContainer.d.cts +1 -1
  271. package/dist/Table/TableContainer.d.mts +1 -1
  272. package/dist/Table/TableControl.d.cts +1 -1
  273. package/dist/Table/TableControl.d.mts +1 -1
  274. package/dist/Table/TableFooter.d.cts +1 -1
  275. package/dist/Table/TableFooter.d.mts +1 -1
  276. package/dist/Table/TableHead.d.cts +1 -1
  277. package/dist/Table/TableHead.d.mts +1 -1
  278. package/dist/Table/TablePagination.cjs +1 -0
  279. package/dist/Table/TablePagination.d.cts +2 -2
  280. package/dist/Table/TablePagination.d.mts +2 -2
  281. package/dist/Table/TablePagination.mjs +1 -0
  282. package/dist/Table/TablePaginationActions.cjs +1 -1
  283. package/dist/Table/TablePaginationActions.d.cts +1 -1
  284. package/dist/Table/TablePaginationActions.d.mts +1 -1
  285. package/dist/Table/TablePaginationActions.mjs +1 -1
  286. package/dist/Table/TableRow.d.cts +1 -1
  287. package/dist/Table/TableRow.d.mts +1 -1
  288. package/dist/Table/TableSortLabel.cjs +1 -1
  289. package/dist/Table/TableSortLabel.d.cts +1 -1
  290. package/dist/Table/TableSortLabel.d.mts +1 -1
  291. package/dist/Table/TableSortLabel.mjs +1 -1
  292. package/dist/Table/hooks.d.cts +1 -1
  293. package/dist/Table/hooks.d.mts +1 -1
  294. package/dist/Table.d.cts +5 -5
  295. package/dist/Table.d.mts +5 -5
  296. package/dist/{TableContext-DhuRf6Wy.d.mts → TableContext-Be8tluYZ.d.cts} +1 -1
  297. package/dist/{TableContext-Duj1nVG7.d.cts → TableContext-DUPqls5k.d.mts} +1 -1
  298. package/dist/Tabs/Tab.cjs +16 -7
  299. package/dist/Tabs/Tab.d.cts +2 -2
  300. package/dist/Tabs/Tab.d.mts +2 -2
  301. package/dist/Tabs/Tab.mjs +16 -7
  302. package/dist/Tabs/TabContext.d.cts +1 -1
  303. package/dist/Tabs/TabContext.d.mts +1 -1
  304. package/dist/Tabs/TabList.cjs +1 -1
  305. package/dist/Tabs/TabList.d.cts +1 -1
  306. package/dist/Tabs/TabList.d.mts +1 -1
  307. package/dist/Tabs/TabList.mjs +1 -1
  308. package/dist/Tabs/TabPanel.cjs +1 -1
  309. package/dist/Tabs/TabPanel.d.cts +2 -2
  310. package/dist/Tabs/TabPanel.d.mts +2 -2
  311. package/dist/Tabs/TabPanel.mjs +1 -1
  312. package/dist/Tabs/TabScrollButton.cjs +2 -2
  313. package/dist/Tabs/TabScrollButton.d.cts +1 -1
  314. package/dist/Tabs/TabScrollButton.d.mts +1 -1
  315. package/dist/Tabs/TabScrollButton.mjs +2 -2
  316. package/dist/Tabs/Tabs.cjs +1 -1
  317. package/dist/Tabs/Tabs.d.cts +2 -2
  318. package/dist/Tabs/Tabs.d.mts +2 -2
  319. package/dist/Tabs/Tabs.mjs +1 -1
  320. package/dist/{Tabs-D4tWCq78.cjs → Tabs-Croeq9s2.cjs} +11 -7
  321. package/dist/{Tabs-BTNOJx5v.mjs → Tabs-DMMP5aDj.mjs} +11 -7
  322. package/dist/Tabs.cjs +1 -1
  323. package/dist/Tabs.d.cts +3 -3
  324. package/dist/Tabs.d.mts +3 -3
  325. package/dist/Tabs.mjs +1 -1
  326. package/dist/{TabsContext-B_XHbjcS.d.cts → TabsContext-BYeGjSZK.d.cts} +1 -1
  327. package/dist/{TabsContext-Dn2kqUwr.d.mts → TabsContext-D4YumTfD.d.mts} +1 -1
  328. package/dist/TextInput.cjs +11 -11
  329. package/dist/TextInput.d.cts +1 -1
  330. package/dist/TextInput.d.mts +1 -1
  331. package/dist/TextInput.mjs +11 -11
  332. package/dist/ToggleButton/ToggleButton.cjs +2 -2
  333. package/dist/ToggleButton/ToggleButton.d.cts +1 -1
  334. package/dist/ToggleButton/ToggleButton.d.mts +1 -1
  335. package/dist/ToggleButton/ToggleButton.mjs +2 -2
  336. package/dist/ToggleButton/ToggleButtonGroup.cjs +1 -1
  337. package/dist/ToggleButton/ToggleButtonGroup.d.cts +1 -1
  338. package/dist/ToggleButton/ToggleButtonGroup.d.mts +1 -1
  339. package/dist/ToggleButton/ToggleButtonGroup.mjs +1 -1
  340. package/dist/Tooltip.cjs +270 -0
  341. package/dist/Tooltip.d.cts +78 -0
  342. package/dist/Tooltip.d.mts +78 -0
  343. package/dist/Tooltip.mjs +268 -0
  344. package/dist/TransferList.cjs +14 -7
  345. package/dist/TransferList.d.cts +4 -2
  346. package/dist/TransferList.d.mts +4 -2
  347. package/dist/TransferList.mjs +14 -7
  348. package/dist/Typography.cjs +1 -1
  349. package/dist/Typography.d.cts +2 -2
  350. package/dist/Typography.d.mts +2 -2
  351. package/dist/Typography.mjs +1 -1
  352. package/dist/View.d.cts +1 -1
  353. package/dist/View.d.mts +1 -1
  354. package/dist/Zoom.cjs +16 -0
  355. package/dist/Zoom.d.cts +10 -0
  356. package/dist/Zoom.d.mts +10 -0
  357. package/dist/Zoom.mjs +15 -0
  358. package/dist/catalog.cjs +932 -30
  359. package/dist/catalog.d.cts +1 -1
  360. package/dist/catalog.d.mts +1 -1
  361. package/dist/catalog.mjs +932 -30
  362. package/dist/engine.d.cts +2 -2
  363. package/dist/engine.d.mts +1 -1
  364. package/dist/getAnchorRel-CySI28HJ.mjs +8 -0
  365. package/dist/getAnchorRel-_vtAXC-4.cjs +13 -0
  366. package/dist/getShapeRadius-B9ytqDSk.d.cts +5 -0
  367. package/dist/getShapeRadius-B9ytqDSk.d.mts +5 -0
  368. package/dist/getShapeRadius-sY6-AGP4.mjs +12 -0
  369. package/dist/getShapeRadius-vXmXGV3f.cjs +17 -0
  370. package/dist/getSurfaceRadius-BTUV1E8H.cjs +11 -0
  371. package/dist/getSurfaceRadius-DTgqIzll.mjs +6 -0
  372. package/dist/getTooltipOrigins-B_7XXtQq.cjs +104 -0
  373. package/dist/getTooltipOrigins-CyyIMCF1.mjs +87 -0
  374. package/dist/{index-Dv_fk1_F.d.cts → index-05VGk0y_.d.cts} +14 -2
  375. package/dist/{index-DtYjdBvO.d.cts → index-2x01drCL.d.mts} +2 -2
  376. package/dist/{index-B1RFybA_.d.mts → index-46mhlgP6.d.mts} +7 -3
  377. package/dist/{index-BQWjh4rK.d.mts → index-BCzI2Iqo.d.cts} +3 -3
  378. package/dist/{index-ClZyaZrR.d.mts → index-BDqIc6Gx.d.cts} +2 -2
  379. package/dist/{index-K5exjvnX.d.cts → index-BPh60KDs.d.mts} +2 -2
  380. package/dist/{index-DAwcmIjN.d.cts → index-BQge4W7L.d.cts} +2 -2
  381. package/dist/{index-B4TeaB7b.d.cts → index-BSGu9rPv.d.cts} +7 -3
  382. package/dist/{index-BelFIizY.d.cts → index-BThHG5QU.d.mts} +3 -3
  383. package/dist/{index-YKrfFC_I.d.cts → index-BUeqNHjb.d.cts} +2 -2
  384. package/dist/{index-BGbTuHP9.d.mts → index-BeqpkGV-.d.mts} +1 -1
  385. package/dist/{index-Bx0-6yeX.d.mts → index-Bfyz3MDc.d.mts} +1 -1
  386. package/dist/{index-CbFaWtjK.d.mts → index-BgLqA52S.d.cts} +2 -2
  387. package/dist/{index-DchHf5cF.d.cts → index-BhnLFsBv.d.cts} +1 -1
  388. package/dist/{index-KnXhlKMr.d.cts → index-BitQk7Hx.d.cts} +1 -1
  389. package/dist/index-BvgX5eyV.d.mts +36 -0
  390. package/dist/index-CERyXFjz.d.cts +32 -0
  391. package/dist/index-CLvlNnjM.d.mts +32 -0
  392. package/dist/{index-BkzZxHVj.d.mts → index-CO-XxjiZ.d.cts} +2 -2
  393. package/dist/{index-DYF8sRE-.d.cts → index-CR0akDlJ.d.cts} +2 -2
  394. package/dist/{index-CJhK7JND.d.mts → index-CRQ7XLri.d.mts} +193 -13
  395. package/dist/{index-CknoXDLQ.d.cts → index-CRn4fWwA.d.mts} +2 -2
  396. package/dist/{index-CUz2h5xY.d.mts → index-CWPvdEjP.d.mts} +2 -2
  397. package/dist/{index-nqUA_6J_.d.cts → index-CrQDxJ1D.d.cts} +1 -1
  398. package/dist/index-Ctx-DKV3.d.cts +18 -0
  399. package/dist/index-Ctx-DKV3.d.mts +18 -0
  400. package/dist/{index-CE5JG1us.d.mts → index-CyLhEXYB.d.mts} +1 -1
  401. package/dist/{index-pTNq3iQn.d.mts → index-D05fSuF1.d.mts} +2 -2
  402. package/dist/{index-CG_1uPrD.d.mts → index-DK3zgGPe.d.mts} +2 -2
  403. package/dist/{index-ha1WjSZ5.d.mts → index-DNj5P2NH.d.mts} +14 -2
  404. package/dist/{index-ChXeKJCk.d.cts → index-DOH1xY0L.d.cts} +1 -1
  405. package/dist/{index-WHFhjfgy.d.cts → index-D_-DAAE7.d.mts} +14 -6
  406. package/dist/{index-BHKgEOZJ.d.cts → index-D_LT3QiH.d.mts} +3 -3
  407. package/dist/index-Db4L2hwa.d.cts +36 -0
  408. package/dist/{index-BrgwkY6z.d.mts → index-Dk4KuTPB.d.cts} +3 -3
  409. package/dist/{index-bpnLB_4K.d.mts → index-Ebjbrbsk.d.cts} +14 -6
  410. package/dist/{index-CQfJZADG.d.cts → index-MWUGpG-Y.d.mts} +3 -3
  411. package/dist/{index-DJ0f69wh.d.cts → index-XN4-ZqTB.d.cts} +195 -15
  412. package/dist/index-fPRELf0V.d.mts +1 -0
  413. package/dist/{index-DGnXJwLj.d.mts → index-fi-W3MOz.d.cts} +7 -5
  414. package/dist/{index-ByYxVl9O.d.mts → index-iTquH69S.d.cts} +3 -3
  415. package/dist/{index-DWjz5ZzG.d.cts → index-lGpLM144.d.mts} +7 -5
  416. package/dist/{index-h4dYtVrp.d.mts → index-vBCN6iAz.d.mts} +1 -1
  417. package/dist/index-x3WC9ViD.d.cts +1 -0
  418. package/dist/index.d.cts +1 -1
  419. package/dist/index.d.mts +1 -1
  420. package/dist/inputVariantStyles-BUK_62Ra.cjs +61 -0
  421. package/dist/inputVariantStyles-q_cZsCJg.mjs +44 -0
  422. package/dist/style.cjs +1 -1
  423. package/dist/style.d.cts +2 -2
  424. package/dist/style.d.mts +2 -2
  425. package/dist/style.mjs +1 -1
  426. package/dist/{theme-BxXuXRgQ.cjs → theme-DzfwuzMZ.cjs} +1 -1
  427. package/dist/{theme-Z9_QludW.mjs → theme-oBfFhJm9.mjs} +1 -1
  428. package/dist/theme.cjs +3 -2
  429. package/dist/theme.d.cts +3 -3
  430. package/dist/theme.d.mts +3 -3
  431. package/dist/theme.mjs +3 -3
  432. package/dist/{themes-gd6tcmqS.cjs → themes--4eci3M1.cjs} +25 -2
  433. package/dist/{themes-L-dE7_ck.mjs → themes-BwEsdVox.mjs} +20 -3
  434. package/dist/useAnchoredPlacement-B1FyGoZV.cjs +111 -0
  435. package/dist/useAnchoredPlacement-Pe7sY41E.mjs +106 -0
  436. package/dist/useMergedRefs-2zTDXgPO.cjs +27 -0
  437. package/dist/useMergedRefs-BfBckwRY.mjs +22 -0
  438. package/dist/{useTablePagination-C-u3ru4N.d.cts → useTablePagination-CFb_FYA9.d.cts} +1 -1
  439. package/dist/{useTablePagination-D-39ZmQh.d.mts → useTablePagination-_-bzuXJO.d.mts} +1 -1
  440. package/dist/useTransition-C1F7MuHO.d.mts +42 -0
  441. package/dist/useTransition-DAQd1PX3.cjs +83 -0
  442. package/dist/useTransition-DP1k0irI.mjs +78 -0
  443. package/dist/useTransition-l9dv83-Y.d.cts +42 -0
  444. package/dist/useTransitionChild-CikpU0Yh.cjs +54 -0
  445. package/dist/useTransitionChild-Dvg9hO-F.mjs +49 -0
  446. package/package.json +164 -14
  447. package/dist/index-BxVTIMnB.d.cts +0 -1
  448. package/dist/index-DaIIo5QU.d.mts +0 -1
  449. package/dist/inputVariantStyles-BBkkYQtE.cjs +0 -32
  450. package/dist/inputVariantStyles-CcqpGfuP.mjs +0 -28
@@ -1,18 +1,18 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_src = require("./src-DU81aGy9.cjs");
3
- const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
4
3
  const require_utils = require("./utils.cjs");
5
- const require_theme = require("./theme-BxXuXRgQ.cjs");
6
- const require_Icon = require("./Icon-D-EWsBVg.cjs");
4
+ const require_theme = require("./theme-DzfwuzMZ.cjs");
5
+ const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
6
+ const require_useControlled = require("./useControlled-C666KpQ0.cjs");
7
+ const require_Icon = require("./Icon-BE7bRsqR.cjs");
8
+ const require_inputVariantStyles = require("./inputVariantStyles-BUK_62Ra.cjs");
7
9
  const require_FormControlContext = require("./FormControlContext-74gvPGFk.cjs");
8
10
  const require_FormControl = require("./FormControl.cjs");
9
- const require_useControlled = require("./useControlled-C666KpQ0.cjs");
10
11
  const require_precision = require("./precision-B58cTPB2.cjs");
11
- const require_inputVariantStyles = require("./inputVariantStyles-BBkkYQtE.cjs");
12
12
  let react = require("react");
13
13
  let react_jsx_runtime = require("react/jsx-runtime");
14
14
  let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
15
- //#region src/NumberField/hooks/useHoldRepeat.ts
15
+ //#region src/NumberInput/hooks/useHoldRepeat.ts
16
16
  /**
17
17
  * Runs `action` at once on a press, then again and again while it is held - after a pause, so a
18
18
  * tap is one step. `start` begins it, `stop` ends it, and it ends by itself when the component
@@ -47,7 +47,7 @@ function useHoldRepeat(action, { delay = 400, interval = 60 } = {}) {
47
47
  };
48
48
  }
49
49
  //#endregion
50
- //#region src/NumberField/utils/number.ts
50
+ //#region src/NumberInput/utils/number.ts
51
51
  /** What a number is shown as unless told otherwise: all its digits, ungrouped, so typing round-trips. */
52
52
  const DEFAULT_FORMAT = {
53
53
  useGrouping: false,
@@ -101,14 +101,14 @@ function parseNumber(text, syntax) {
101
101
  return syntax.isPercent ? Number((signed / 100).toFixed(require_precision.getDecimalPrecision(parsed) + 2)) : signed;
102
102
  }
103
103
  //#endregion
104
- //#region src/NumberField/hooks/useNumberField.ts
104
+ //#region src/NumberInput/hooks/useNumberInput.ts
105
105
  const clampTo = (value, min, max) => require_utils.clamp(value, min ?? Number.NEGATIVE_INFINITY, max ?? Number.POSITIVE_INFINITY);
106
106
  /**
107
107
  * A number field's state: the number (controlled or not), the text the user is typing - which
108
108
  * is theirs until it is committed on blur or Enter - and the steps by key and by button. A
109
109
  * number typed is told at once; one outside the range is clamped when it is committed.
110
110
  */
111
- function useNumberField({ value: valueProp, defaultValue, onChange, onChangeCommitted, min, max, step, smallStep, largeStep, format, locale, shouldSnapOnStep, isFrozen }) {
111
+ function useNumberInput({ value: valueProp, defaultValue, onChange, onChangeCommitted, min, max, step, smallStep, largeStep, format, locale, shouldSnapOnStep, isFrozen }) {
112
112
  const [value, setValue] = require_useControlled.useControlled({
113
113
  controlled: valueProp,
114
114
  default: defaultValue ?? null
@@ -178,7 +178,7 @@ function useNumberField({ value: valueProp, defaultValue, onChange, onChangeComm
178
178
  };
179
179
  }
180
180
  //#endregion
181
- //#region src/NumberField/hooks/useWheelStep.ts
181
+ //#region src/NumberInput/hooks/useWheelStep.ts
182
182
  /**
183
183
  * Steps a focused field by the mouse wheel - up for a wheel up. A native listener, since the
184
184
  * page must not scroll as it turns, and a React one can't prevent that.
@@ -201,7 +201,7 @@ function useWheelStep(ref, isEnabled, onStep) {
201
201
  }, [ref, isEnabled]);
202
202
  }
203
203
  //#endregion
204
- //#region src/NumberField/NumberField.tsx
204
+ //#region src/NumberInput/NumberInput.tsx
205
205
  const widthStyles = (0, require_src.src_exports.system)({
206
206
  width: true,
207
207
  minWidth: true,
@@ -215,6 +215,7 @@ const frameStyle = ({ theme, color, textColor, isError, isDisabled, isFullWidth,
215
215
  display: isFullWidth || isInField ? "flex" : "inline-flex",
216
216
  ...isFullWidth && { width: "100%" },
217
217
  ...isInField && !isFullWidth && { width: "fit-content" },
218
+ minWidth: require_inputVariantStyles.getInputMinWidth(theme),
218
219
  alignItems: "stretch",
219
220
  transition: "border-color 0.15s ease",
220
221
  backgroundColor: (0, require_src.src_exports.get)(theme, `background.${require_themeDefault.themeDefault(theme, "inputBg", "terminal")}`),
@@ -223,10 +224,7 @@ const frameStyle = ({ theme, color, textColor, isError, isDisabled, isFullWidth,
223
224
  lineHeight: (0, require_src.src_exports.get)(theme, "lineHeights.base"),
224
225
  borderColor: border,
225
226
  "&:focus-within": { borderColor: focusBorder },
226
- "&:has(input:focus-visible)": {
227
- outline: `2px solid ${main}`,
228
- outlineOffset: "2px"
229
- },
227
+ "&:has(:focus-visible)": require_inputVariantStyles.getFocusRing(theme, color, isError),
230
228
  ...isDisabled && {
231
229
  opacity: .5,
232
230
  cursor: "not-allowed",
@@ -234,9 +232,9 @@ const frameStyle = ({ theme, color, textColor, isError, isDisabled, isFullWidth,
234
232
  }
235
233
  };
236
234
  };
237
- const NumberFieldRoot = require_src.styled("div", {
238
- name: "NumberField",
239
- label: "NumberField",
235
+ const NumberInputRoot = require_src.styled("div", {
236
+ name: "NumberInput",
237
+ label: "NumberInput",
240
238
  shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
241
239
  ..._soroush_tech_styled_system_should_forward_prop.props,
242
240
  "color",
@@ -249,17 +247,17 @@ const NumberFieldRoot = require_src.styled("div", {
249
247
  ]),
250
248
  systemProps: [require_src.src_exports.space, widthStyles]
251
249
  })(require_inputVariantStyles.inputVariantStyles, frameStyle);
252
- const NumberFieldInput = require_src.styled("input", {
253
- name: "NumberField",
250
+ const NumberInputInput = require_src.styled("input", {
251
+ name: "NumberInput",
254
252
  slot: "input",
255
- label: "NumberFieldInput",
253
+ label: "NumberInputInput",
256
254
  shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)(["sizeToken", "isCentered"])
257
255
  })(({ theme, sizeToken, isCentered }) => {
258
256
  const s = theme.sizes[sizeToken];
259
257
  return {
260
- flex: 1,
258
+ flex: "1 1 0",
261
259
  minWidth: 0,
262
- width: "100%",
260
+ width: 0,
263
261
  border: "none",
264
262
  outline: "none",
265
263
  background: "transparent",
@@ -279,10 +277,26 @@ const NumberFieldInput = require_src.styled("input", {
279
277
  "&:disabled": { cursor: "not-allowed" }
280
278
  };
281
279
  });
282
- const NumberFieldSpinButtons = require_src.styled("span", {
283
- name: "NumberField",
280
+ const NumberInputContent = require_src.styled("span", {
281
+ name: "NumberInput",
282
+ slot: "content",
283
+ label: "NumberInputContent",
284
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)(["edge", "sizeToken"])
285
+ })(({ theme, edge, sizeToken }) => {
286
+ const s = theme.sizes[sizeToken];
287
+ return {
288
+ display: "inline-flex",
289
+ alignItems: "center",
290
+ flexShrink: 0,
291
+ gap: theme.space[.5],
292
+ color: "inherit",
293
+ ...edge === "start" ? { paddingInlineStart: theme.space[s.paddingLeft] } : { paddingInlineEnd: theme.space[s.paddingRight] }
294
+ };
295
+ });
296
+ const NumberInputSpinButtons = require_src.styled("span", {
297
+ name: "NumberInput",
284
298
  slot: "spinButtons",
285
- label: "NumberFieldSpinButtons"
299
+ label: "NumberInputSpinButtons"
286
300
  })(({ theme }) => ({
287
301
  display: "flex",
288
302
  flexDirection: "column",
@@ -295,7 +309,8 @@ const spinStyle = ({ theme, color, isSide }) => {
295
309
  appearance: "none",
296
310
  display: "grid",
297
311
  placeItems: "center",
298
- flex: isSide ? "0 0 auto" : 1,
312
+ flex: isSide ? "0 0 auto" : "1 1 0px",
313
+ ...!isSide && { minHeight: 0 },
299
314
  minWidth: isSide ? theme.space[5] : theme.icon.lg,
300
315
  padding: 0,
301
316
  border: "none",
@@ -316,29 +331,29 @@ const sideDivider = (edge) => {
316
331
  borderColor: "inherit"
317
332
  } : {};
318
333
  };
319
- const NumberFieldIncrement = require_src.styled("button", {
320
- name: "NumberField",
334
+ const NumberInputIncrement = require_src.styled("button", {
335
+ name: "NumberInput",
321
336
  slot: "increment",
322
- label: "NumberFieldIncrement",
337
+ label: "NumberInputIncrement",
323
338
  shouldForwardProp: spinProps
324
339
  })(spinStyle, sideDivider("borderInlineStart"));
325
- const NumberFieldDecrement = require_src.styled("button", {
326
- name: "NumberField",
340
+ const NumberInputDecrement = require_src.styled("button", {
341
+ name: "NumberInput",
327
342
  slot: "decrement",
328
- label: "NumberFieldDecrement",
343
+ label: "NumberInputDecrement",
329
344
  shouldForwardProp: spinProps
330
345
  })(spinStyle, sideDivider("borderInlineEnd"));
331
346
  const getSpinIcon = (direction, isSide) => {
332
347
  if (isSide) return direction === 1 ? "add" : "remove";
333
348
  return direction === 1 ? "expand_less" : "expand_more";
334
349
  };
335
- function SpinButton({ direction, label, isSide, isDisabled, color, onStep }) {
350
+ function SpinButton({ direction, label, isSide, isDisabled, color, size, onStep }) {
336
351
  const hold = useHoldRepeat(() => onStep(direction));
337
352
  const { stop } = hold;
338
353
  (0, react.useEffect)(() => {
339
354
  if (isDisabled) stop();
340
355
  }, [isDisabled, stop]);
341
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(direction === 1 ? NumberFieldIncrement : NumberFieldDecrement, {
356
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(direction === 1 ? NumberInputIncrement : NumberInputDecrement, {
342
357
  type: "button",
343
358
  tabIndex: -1,
344
359
  "aria-label": label,
@@ -353,7 +368,7 @@ function SpinButton({ direction, label, isSide, isDisabled, color, onStep }) {
353
368
  onClick: (event) => event.detail === 0 && onStep(direction),
354
369
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
355
370
  name: getSpinIcon(direction, isSide),
356
- size: "sm",
371
+ size,
357
372
  color: "inherit"
358
373
  })
359
374
  });
@@ -366,9 +381,9 @@ function SpinButton({ direction, label, isSide, isDisabled, color, onStep }) {
366
381
  * number to a form. In a `FormControl` it takes the field's size, color, error, disabled and
367
382
  * required state, and its `FormLabel` targets the field.
368
383
  */
369
- function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, max, step: stepProp, smallStep: smallStepProp, largeStep: largeStepProp, format, locale, shouldSnapOnStep: shouldSnapProp, shouldScrubOnWheel: shouldScrubProp, spinButtons: spinButtonsProp, incrementLabel: incrementLabelProp, decrementLabel: decrementLabelProp, variant: variantProp, size: sizeProp, color: colorProp, textColor: textColorProp, error: errorProp, disabled: disabledProp, readOnly = false, required: requiredProp, fullWidth: fullWidthProp, name, id: idProp, placeholder, autoFocus, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-describedby": ariaDescribedby, "data-testid": dataTestid, ...rest }) {
384
+ function NumberInput({ value, defaultValue, onChange, onChangeCommitted, min, max, step: stepProp, smallStep: smallStepProp, largeStep: largeStepProp, format, locale, shouldSnapOnStep: shouldSnapProp, shouldScrubOnWheel: shouldScrubProp, spinButtons: spinButtonsProp, incrementLabel: incrementLabelProp, decrementLabel: decrementLabelProp, variant: variantProp, size: sizeProp, color: colorProp, textColor: textColorProp, error: errorProp, disabled: disabledProp, readOnly = false, required: requiredProp, fullWidth: fullWidthProp, name, id: idProp, placeholder, autoFocus, startContent, endContent, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-describedby": ariaDescribedby, "data-testid": dataTestid, ...rest }) {
370
385
  const theme = require_theme.useTheme();
371
- const dp = require_theme.useDefaultProps("NumberField");
386
+ const dp = require_theme.useDefaultProps("NumberInput");
372
387
  const isInField = (0, react.useContext)(require_FormControlContext.FormControlContext) !== null;
373
388
  const fc = require_FormControl.useFormControl({
374
389
  id: idProp,
@@ -386,7 +401,7 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
386
401
  const spinButtons = spinButtonsProp ?? dp.spinButtons ?? "stacked";
387
402
  const step = stepProp ?? dp.step ?? 1;
388
403
  const isFrozen = fc.disabled || readOnly;
389
- const field = useNumberField({
404
+ const field = useNumberInput({
390
405
  value,
391
406
  defaultValue,
392
407
  onChange,
@@ -407,6 +422,7 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
407
422
  const buttonProps = {
408
423
  isSide,
409
424
  color,
425
+ size: fc.size,
410
426
  onStep: field.stepBy
411
427
  };
412
428
  const decrement = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SpinButton, {
@@ -422,7 +438,7 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
422
438
  ...buttonProps
423
439
  });
424
440
  const inputMode = (min ?? -1) >= 0 && Number.isInteger(step) ? "numeric" : "decimal";
425
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(NumberFieldRoot, {
441
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(NumberInputRoot, {
426
442
  color,
427
443
  textColor,
428
444
  variant,
@@ -435,7 +451,12 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
435
451
  ...rest,
436
452
  children: [
437
453
  isSide && decrement,
438
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NumberFieldInput, {
454
+ startContent != null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NumberInputContent, {
455
+ edge: "start",
456
+ sizeToken: fc.size,
457
+ children: startContent
458
+ }),
459
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NumberInputInput, {
439
460
  ref: inputRef,
440
461
  type: "text",
441
462
  role: "spinbutton",
@@ -467,10 +488,15 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
467
488
  value: field.value ?? "",
468
489
  disabled: fc.disabled
469
490
  }),
470
- spinButtons === "stacked" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(NumberFieldSpinButtons, { children: [increment, decrement] }),
491
+ endContent != null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NumberInputContent, {
492
+ edge: "end",
493
+ sizeToken: fc.size,
494
+ children: endContent
495
+ }),
496
+ spinButtons === "stacked" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(NumberInputSpinButtons, { children: [increment, decrement] }),
471
497
  isSide && increment
472
498
  ]
473
499
  });
474
500
  }
475
501
  //#endregion
476
- exports.NumberField = NumberField;
502
+ exports.NumberInput = NumberInput;
@@ -1,9 +1,10 @@
1
- import { W as Theme } from "./index-DJ0f69wh.cjs";
1
+ import { nt as Theme } from "./index-XN4-ZqTB.cjs";
2
+ import { ReactNode } from "react";
2
3
  import { LayoutProps, SpaceProps } from "@soroush.tech/styled-system";
3
- //#region src/NumberField/NumberField.d.ts
4
- type NumberFieldVariant = 'default' | 'outlined' | 'text' | 'underline';
5
- type NumberFieldSpinButtons = 'stacked' | 'sides' | 'none';
6
- interface NumberFieldProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>, 'width' | 'minWidth' | 'maxWidth'> {
4
+ //#region src/NumberInput/NumberInput.d.ts
5
+ type NumberInputVariant = 'default' | 'outlined' | 'text' | 'underline';
6
+ type NumberInputSpinButtons = 'stacked' | 'sides' | 'none';
7
+ interface NumberInputProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>, 'width' | 'minWidth' | 'maxWidth'> {
7
8
  /** The number - `null` for none. Controlled with `onChange`. */
8
9
  value?: number | null;
9
10
  /** The number at first, when uncontrolled. */
@@ -31,13 +32,17 @@ interface NumberFieldProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>, '
31
32
  /** The mouse wheel steps the number while the field is focused. Default: `false`. */
32
33
  shouldScrubOnWheel?: boolean;
33
34
  /** Where the step buttons are: stacked at the end, either side of the field, or none. Default: `'stacked'`. */
34
- spinButtons?: NumberFieldSpinButtons;
35
+ spinButtons?: NumberInputSpinButtons;
35
36
  /** Names the increase button - no built-in text; a theme gives it through `defaultProps`. */
36
37
  incrementLabel?: string;
37
38
  /** Names the decrease button. */
38
39
  decrementLabel?: string;
40
+ /** Content inside the frame before the number - an icon, a label. */
41
+ startContent?: ReactNode;
42
+ /** Content inside the frame after the number, before the step buttons - a unit such as `px` or `%`, a button. */
43
+ endContent?: ReactNode;
39
44
  /** The frame: a box, an outline, an underline or none. Default: `theme.defaults.inputVariant`. */
40
- variant?: NumberFieldVariant;
45
+ variant?: NumberInputVariant;
41
46
  /** Resolves against `theme.sizes`. Default: its `FormControl`'s, else `'md'`. */
42
47
  size?: keyof Theme['sizes'];
43
48
  /** The focus border color - resolves to `theme.palette`. Default: `'primary'`. */
@@ -69,6 +74,6 @@ interface NumberFieldProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>, '
69
74
  * number to a form. In a `FormControl` it takes the field's size, color, error, disabled and
70
75
  * required state, and its `FormLabel` targets the field.
71
76
  */
72
- declare function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, max, step: stepProp, smallStep: smallStepProp, largeStep: largeStepProp, format, locale, shouldSnapOnStep: shouldSnapProp, shouldScrubOnWheel: shouldScrubProp, spinButtons: spinButtonsProp, incrementLabel: incrementLabelProp, decrementLabel: decrementLabelProp, variant: variantProp, size: sizeProp, color: colorProp, textColor: textColorProp, error: errorProp, disabled: disabledProp, readOnly, required: requiredProp, fullWidth: fullWidthProp, name, id: idProp, placeholder, autoFocus, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, 'data-testid': dataTestid, ...rest }: Readonly<NumberFieldProps>): import("react").JSX.Element;
77
+ declare function NumberInput({ value, defaultValue, onChange, onChangeCommitted, min, max, step: stepProp, smallStep: smallStepProp, largeStep: largeStepProp, format, locale, shouldSnapOnStep: shouldSnapProp, shouldScrubOnWheel: shouldScrubProp, spinButtons: spinButtonsProp, incrementLabel: incrementLabelProp, decrementLabel: decrementLabelProp, variant: variantProp, size: sizeProp, color: colorProp, textColor: textColorProp, error: errorProp, disabled: disabledProp, readOnly, required: requiredProp, fullWidth: fullWidthProp, name, id: idProp, placeholder, autoFocus, startContent, endContent, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, 'data-testid': dataTestid, ...rest }: Readonly<NumberInputProps>): import("react").JSX.Element;
73
78
  //#endregion
74
- export { NumberField, NumberFieldProps, NumberFieldSpinButtons, NumberFieldVariant };
79
+ export { NumberInput, NumberInputProps, NumberInputSpinButtons, NumberInputVariant };
@@ -1,9 +1,10 @@
1
- import { W as Theme } from "./index-CJhK7JND.mjs";
1
+ import { nt as Theme } from "./index-CRQ7XLri.mjs";
2
2
  import { LayoutProps, SpaceProps } from "@soroush.tech/styled-system";
3
- //#region src/NumberField/NumberField.d.ts
4
- type NumberFieldVariant = 'default' | 'outlined' | 'text' | 'underline';
5
- type NumberFieldSpinButtons = 'stacked' | 'sides' | 'none';
6
- interface NumberFieldProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>, 'width' | 'minWidth' | 'maxWidth'> {
3
+ import { ReactNode } from "react";
4
+ //#region src/NumberInput/NumberInput.d.ts
5
+ type NumberInputVariant = 'default' | 'outlined' | 'text' | 'underline';
6
+ type NumberInputSpinButtons = 'stacked' | 'sides' | 'none';
7
+ interface NumberInputProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>, 'width' | 'minWidth' | 'maxWidth'> {
7
8
  /** The number - `null` for none. Controlled with `onChange`. */
8
9
  value?: number | null;
9
10
  /** The number at first, when uncontrolled. */
@@ -31,13 +32,17 @@ interface NumberFieldProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>, '
31
32
  /** The mouse wheel steps the number while the field is focused. Default: `false`. */
32
33
  shouldScrubOnWheel?: boolean;
33
34
  /** Where the step buttons are: stacked at the end, either side of the field, or none. Default: `'stacked'`. */
34
- spinButtons?: NumberFieldSpinButtons;
35
+ spinButtons?: NumberInputSpinButtons;
35
36
  /** Names the increase button - no built-in text; a theme gives it through `defaultProps`. */
36
37
  incrementLabel?: string;
37
38
  /** Names the decrease button. */
38
39
  decrementLabel?: string;
40
+ /** Content inside the frame before the number - an icon, a label. */
41
+ startContent?: ReactNode;
42
+ /** Content inside the frame after the number, before the step buttons - a unit such as `px` or `%`, a button. */
43
+ endContent?: ReactNode;
39
44
  /** The frame: a box, an outline, an underline or none. Default: `theme.defaults.inputVariant`. */
40
- variant?: NumberFieldVariant;
45
+ variant?: NumberInputVariant;
41
46
  /** Resolves against `theme.sizes`. Default: its `FormControl`'s, else `'md'`. */
42
47
  size?: keyof Theme['sizes'];
43
48
  /** The focus border color - resolves to `theme.palette`. Default: `'primary'`. */
@@ -69,6 +74,6 @@ interface NumberFieldProps extends SpaceProps<Theme>, Pick<LayoutProps<Theme>, '
69
74
  * number to a form. In a `FormControl` it takes the field's size, color, error, disabled and
70
75
  * required state, and its `FormLabel` targets the field.
71
76
  */
72
- declare function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, max, step: stepProp, smallStep: smallStepProp, largeStep: largeStepProp, format, locale, shouldSnapOnStep: shouldSnapProp, shouldScrubOnWheel: shouldScrubProp, spinButtons: spinButtonsProp, incrementLabel: incrementLabelProp, decrementLabel: decrementLabelProp, variant: variantProp, size: sizeProp, color: colorProp, textColor: textColorProp, error: errorProp, disabled: disabledProp, readOnly, required: requiredProp, fullWidth: fullWidthProp, name, id: idProp, placeholder, autoFocus, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, 'data-testid': dataTestid, ...rest }: Readonly<NumberFieldProps>): import("react").JSX.Element;
77
+ declare function NumberInput({ value, defaultValue, onChange, onChangeCommitted, min, max, step: stepProp, smallStep: smallStepProp, largeStep: largeStepProp, format, locale, shouldSnapOnStep: shouldSnapProp, shouldScrubOnWheel: shouldScrubProp, spinButtons: spinButtonsProp, incrementLabel: incrementLabelProp, decrementLabel: decrementLabelProp, variant: variantProp, size: sizeProp, color: colorProp, textColor: textColorProp, error: errorProp, disabled: disabledProp, readOnly, required: requiredProp, fullWidth: fullWidthProp, name, id: idProp, placeholder, autoFocus, startContent, endContent, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, 'data-testid': dataTestid, ...rest }: Readonly<NumberInputProps>): import("react").JSX.Element;
73
78
  //#endregion
74
- export { NumberField, NumberFieldProps, NumberFieldSpinButtons, NumberFieldVariant };
79
+ export { NumberInput, NumberInputProps, NumberInputSpinButtons, NumberInputVariant };
@@ -1,16 +1,16 @@
1
1
  import { a as src_exports, i as props, o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
2
- import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
3
2
  import { clamp } from "./utils.mjs";
4
- import { n as useDefaultProps, r as useTheme } from "./theme-Z9_QludW.mjs";
5
- import { t as Icon } from "./Icon-BihOAP4u.mjs";
3
+ import { n as useDefaultProps, r as useTheme } from "./theme-oBfFhJm9.mjs";
4
+ import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
5
+ import { t as useControlled } from "./useControlled-CBRLsO-H.mjs";
6
+ import { t as Icon } from "./Icon-0hPpk-WZ.mjs";
7
+ import { n as getFocusRing, r as getInputMinWidth, t as inputVariantStyles } from "./inputVariantStyles-q_cZsCJg.mjs";
6
8
  import { t as FormControlContext } from "./FormControlContext-CC2kToms.mjs";
7
9
  import { useFormControl } from "./FormControl.mjs";
8
- import { t as useControlled } from "./useControlled-CBRLsO-H.mjs";
9
10
  import { i as snapToStep, n as getDecimalPrecision, t as addExact } from "./precision-B1lhxnnO.mjs";
10
- import { t as inputVariantStyles } from "./inputVariantStyles-CcqpGfuP.mjs";
11
11
  import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
12
12
  import { jsx, jsxs } from "react/jsx-runtime";
13
- //#region src/NumberField/hooks/useHoldRepeat.ts
13
+ //#region src/NumberInput/hooks/useHoldRepeat.ts
14
14
  /**
15
15
  * Runs `action` at once on a press, then again and again while it is held - after a pause, so a
16
16
  * tap is one step. `start` begins it, `stop` ends it, and it ends by itself when the component
@@ -45,7 +45,7 @@ function useHoldRepeat(action, { delay = 400, interval = 60 } = {}) {
45
45
  };
46
46
  }
47
47
  //#endregion
48
- //#region src/NumberField/utils/number.ts
48
+ //#region src/NumberInput/utils/number.ts
49
49
  /** What a number is shown as unless told otherwise: all its digits, ungrouped, so typing round-trips. */
50
50
  const DEFAULT_FORMAT = {
51
51
  useGrouping: false,
@@ -99,14 +99,14 @@ function parseNumber(text, syntax) {
99
99
  return syntax.isPercent ? Number((signed / 100).toFixed(getDecimalPrecision(parsed) + 2)) : signed;
100
100
  }
101
101
  //#endregion
102
- //#region src/NumberField/hooks/useNumberField.ts
102
+ //#region src/NumberInput/hooks/useNumberInput.ts
103
103
  const clampTo = (value, min, max) => clamp(value, min ?? Number.NEGATIVE_INFINITY, max ?? Number.POSITIVE_INFINITY);
104
104
  /**
105
105
  * A number field's state: the number (controlled or not), the text the user is typing - which
106
106
  * is theirs until it is committed on blur or Enter - and the steps by key and by button. A
107
107
  * number typed is told at once; one outside the range is clamped when it is committed.
108
108
  */
109
- function useNumberField({ value: valueProp, defaultValue, onChange, onChangeCommitted, min, max, step, smallStep, largeStep, format, locale, shouldSnapOnStep, isFrozen }) {
109
+ function useNumberInput({ value: valueProp, defaultValue, onChange, onChangeCommitted, min, max, step, smallStep, largeStep, format, locale, shouldSnapOnStep, isFrozen }) {
110
110
  const [value, setValue] = useControlled({
111
111
  controlled: valueProp,
112
112
  default: defaultValue ?? null
@@ -176,7 +176,7 @@ function useNumberField({ value: valueProp, defaultValue, onChange, onChangeComm
176
176
  };
177
177
  }
178
178
  //#endregion
179
- //#region src/NumberField/hooks/useWheelStep.ts
179
+ //#region src/NumberInput/hooks/useWheelStep.ts
180
180
  /**
181
181
  * Steps a focused field by the mouse wheel - up for a wheel up. A native listener, since the
182
182
  * page must not scroll as it turns, and a React one can't prevent that.
@@ -199,7 +199,7 @@ function useWheelStep(ref, isEnabled, onStep) {
199
199
  }, [ref, isEnabled]);
200
200
  }
201
201
  //#endregion
202
- //#region src/NumberField/NumberField.tsx
202
+ //#region src/NumberInput/NumberInput.tsx
203
203
  const widthStyles = (0, src_exports.system)({
204
204
  width: true,
205
205
  minWidth: true,
@@ -213,6 +213,7 @@ const frameStyle = ({ theme, color, textColor, isError, isDisabled, isFullWidth,
213
213
  display: isFullWidth || isInField ? "flex" : "inline-flex",
214
214
  ...isFullWidth && { width: "100%" },
215
215
  ...isInField && !isFullWidth && { width: "fit-content" },
216
+ minWidth: getInputMinWidth(theme),
216
217
  alignItems: "stretch",
217
218
  transition: "border-color 0.15s ease",
218
219
  backgroundColor: (0, src_exports.get)(theme, `background.${themeDefault(theme, "inputBg", "terminal")}`),
@@ -221,10 +222,7 @@ const frameStyle = ({ theme, color, textColor, isError, isDisabled, isFullWidth,
221
222
  lineHeight: (0, src_exports.get)(theme, "lineHeights.base"),
222
223
  borderColor: border,
223
224
  "&:focus-within": { borderColor: focusBorder },
224
- "&:has(input:focus-visible)": {
225
- outline: `2px solid ${main}`,
226
- outlineOffset: "2px"
227
- },
225
+ "&:has(:focus-visible)": getFocusRing(theme, color, isError),
228
226
  ...isDisabled && {
229
227
  opacity: .5,
230
228
  cursor: "not-allowed",
@@ -232,9 +230,9 @@ const frameStyle = ({ theme, color, textColor, isError, isDisabled, isFullWidth,
232
230
  }
233
231
  };
234
232
  };
235
- const NumberFieldRoot = styled("div", {
236
- name: "NumberField",
237
- label: "NumberField",
233
+ const NumberInputRoot = styled("div", {
234
+ name: "NumberInput",
235
+ label: "NumberInput",
238
236
  shouldForwardProp: createShouldForwardProp([
239
237
  ...props,
240
238
  "color",
@@ -247,17 +245,17 @@ const NumberFieldRoot = styled("div", {
247
245
  ]),
248
246
  systemProps: [src_exports.space, widthStyles]
249
247
  })(inputVariantStyles, frameStyle);
250
- const NumberFieldInput = styled("input", {
251
- name: "NumberField",
248
+ const NumberInputInput = styled("input", {
249
+ name: "NumberInput",
252
250
  slot: "input",
253
- label: "NumberFieldInput",
251
+ label: "NumberInputInput",
254
252
  shouldForwardProp: createShouldForwardProp(["sizeToken", "isCentered"])
255
253
  })(({ theme, sizeToken, isCentered }) => {
256
254
  const s = theme.sizes[sizeToken];
257
255
  return {
258
- flex: 1,
256
+ flex: "1 1 0",
259
257
  minWidth: 0,
260
- width: "100%",
258
+ width: 0,
261
259
  border: "none",
262
260
  outline: "none",
263
261
  background: "transparent",
@@ -277,10 +275,26 @@ const NumberFieldInput = styled("input", {
277
275
  "&:disabled": { cursor: "not-allowed" }
278
276
  };
279
277
  });
280
- const NumberFieldSpinButtons = styled("span", {
281
- name: "NumberField",
278
+ const NumberInputContent = styled("span", {
279
+ name: "NumberInput",
280
+ slot: "content",
281
+ label: "NumberInputContent",
282
+ shouldForwardProp: createShouldForwardProp(["edge", "sizeToken"])
283
+ })(({ theme, edge, sizeToken }) => {
284
+ const s = theme.sizes[sizeToken];
285
+ return {
286
+ display: "inline-flex",
287
+ alignItems: "center",
288
+ flexShrink: 0,
289
+ gap: theme.space[.5],
290
+ color: "inherit",
291
+ ...edge === "start" ? { paddingInlineStart: theme.space[s.paddingLeft] } : { paddingInlineEnd: theme.space[s.paddingRight] }
292
+ };
293
+ });
294
+ const NumberInputSpinButtons = styled("span", {
295
+ name: "NumberInput",
282
296
  slot: "spinButtons",
283
- label: "NumberFieldSpinButtons"
297
+ label: "NumberInputSpinButtons"
284
298
  })(({ theme }) => ({
285
299
  display: "flex",
286
300
  flexDirection: "column",
@@ -293,7 +307,8 @@ const spinStyle = ({ theme, color, isSide }) => {
293
307
  appearance: "none",
294
308
  display: "grid",
295
309
  placeItems: "center",
296
- flex: isSide ? "0 0 auto" : 1,
310
+ flex: isSide ? "0 0 auto" : "1 1 0px",
311
+ ...!isSide && { minHeight: 0 },
297
312
  minWidth: isSide ? theme.space[5] : theme.icon.lg,
298
313
  padding: 0,
299
314
  border: "none",
@@ -314,29 +329,29 @@ const sideDivider = (edge) => {
314
329
  borderColor: "inherit"
315
330
  } : {};
316
331
  };
317
- const NumberFieldIncrement = styled("button", {
318
- name: "NumberField",
332
+ const NumberInputIncrement = styled("button", {
333
+ name: "NumberInput",
319
334
  slot: "increment",
320
- label: "NumberFieldIncrement",
335
+ label: "NumberInputIncrement",
321
336
  shouldForwardProp: spinProps
322
337
  })(spinStyle, sideDivider("borderInlineStart"));
323
- const NumberFieldDecrement = styled("button", {
324
- name: "NumberField",
338
+ const NumberInputDecrement = styled("button", {
339
+ name: "NumberInput",
325
340
  slot: "decrement",
326
- label: "NumberFieldDecrement",
341
+ label: "NumberInputDecrement",
327
342
  shouldForwardProp: spinProps
328
343
  })(spinStyle, sideDivider("borderInlineEnd"));
329
344
  const getSpinIcon = (direction, isSide) => {
330
345
  if (isSide) return direction === 1 ? "add" : "remove";
331
346
  return direction === 1 ? "expand_less" : "expand_more";
332
347
  };
333
- function SpinButton({ direction, label, isSide, isDisabled, color, onStep }) {
348
+ function SpinButton({ direction, label, isSide, isDisabled, color, size, onStep }) {
334
349
  const hold = useHoldRepeat(() => onStep(direction));
335
350
  const { stop } = hold;
336
351
  useEffect(() => {
337
352
  if (isDisabled) stop();
338
353
  }, [isDisabled, stop]);
339
- return /* @__PURE__ */ jsx(direction === 1 ? NumberFieldIncrement : NumberFieldDecrement, {
354
+ return /* @__PURE__ */ jsx(direction === 1 ? NumberInputIncrement : NumberInputDecrement, {
340
355
  type: "button",
341
356
  tabIndex: -1,
342
357
  "aria-label": label,
@@ -351,7 +366,7 @@ function SpinButton({ direction, label, isSide, isDisabled, color, onStep }) {
351
366
  onClick: (event) => event.detail === 0 && onStep(direction),
352
367
  children: /* @__PURE__ */ jsx(Icon, {
353
368
  name: getSpinIcon(direction, isSide),
354
- size: "sm",
369
+ size,
355
370
  color: "inherit"
356
371
  })
357
372
  });
@@ -364,9 +379,9 @@ function SpinButton({ direction, label, isSide, isDisabled, color, onStep }) {
364
379
  * number to a form. In a `FormControl` it takes the field's size, color, error, disabled and
365
380
  * required state, and its `FormLabel` targets the field.
366
381
  */
367
- function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, max, step: stepProp, smallStep: smallStepProp, largeStep: largeStepProp, format, locale, shouldSnapOnStep: shouldSnapProp, shouldScrubOnWheel: shouldScrubProp, spinButtons: spinButtonsProp, incrementLabel: incrementLabelProp, decrementLabel: decrementLabelProp, variant: variantProp, size: sizeProp, color: colorProp, textColor: textColorProp, error: errorProp, disabled: disabledProp, readOnly = false, required: requiredProp, fullWidth: fullWidthProp, name, id: idProp, placeholder, autoFocus, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-describedby": ariaDescribedby, "data-testid": dataTestid, ...rest }) {
382
+ function NumberInput({ value, defaultValue, onChange, onChangeCommitted, min, max, step: stepProp, smallStep: smallStepProp, largeStep: largeStepProp, format, locale, shouldSnapOnStep: shouldSnapProp, shouldScrubOnWheel: shouldScrubProp, spinButtons: spinButtonsProp, incrementLabel: incrementLabelProp, decrementLabel: decrementLabelProp, variant: variantProp, size: sizeProp, color: colorProp, textColor: textColorProp, error: errorProp, disabled: disabledProp, readOnly = false, required: requiredProp, fullWidth: fullWidthProp, name, id: idProp, placeholder, autoFocus, startContent, endContent, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-describedby": ariaDescribedby, "data-testid": dataTestid, ...rest }) {
368
383
  const theme = useTheme();
369
- const dp = useDefaultProps("NumberField");
384
+ const dp = useDefaultProps("NumberInput");
370
385
  const isInField = useContext(FormControlContext) !== null;
371
386
  const fc = useFormControl({
372
387
  id: idProp,
@@ -384,7 +399,7 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
384
399
  const spinButtons = spinButtonsProp ?? dp.spinButtons ?? "stacked";
385
400
  const step = stepProp ?? dp.step ?? 1;
386
401
  const isFrozen = fc.disabled || readOnly;
387
- const field = useNumberField({
402
+ const field = useNumberInput({
388
403
  value,
389
404
  defaultValue,
390
405
  onChange,
@@ -405,6 +420,7 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
405
420
  const buttonProps = {
406
421
  isSide,
407
422
  color,
423
+ size: fc.size,
408
424
  onStep: field.stepBy
409
425
  };
410
426
  const decrement = /* @__PURE__ */ jsx(SpinButton, {
@@ -420,7 +436,7 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
420
436
  ...buttonProps
421
437
  });
422
438
  const inputMode = (min ?? -1) >= 0 && Number.isInteger(step) ? "numeric" : "decimal";
423
- return /* @__PURE__ */ jsxs(NumberFieldRoot, {
439
+ return /* @__PURE__ */ jsxs(NumberInputRoot, {
424
440
  color,
425
441
  textColor,
426
442
  variant,
@@ -433,7 +449,12 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
433
449
  ...rest,
434
450
  children: [
435
451
  isSide && decrement,
436
- /* @__PURE__ */ jsx(NumberFieldInput, {
452
+ startContent != null && /* @__PURE__ */ jsx(NumberInputContent, {
453
+ edge: "start",
454
+ sizeToken: fc.size,
455
+ children: startContent
456
+ }),
457
+ /* @__PURE__ */ jsx(NumberInputInput, {
437
458
  ref: inputRef,
438
459
  type: "text",
439
460
  role: "spinbutton",
@@ -465,10 +486,15 @@ function NumberField({ value, defaultValue, onChange, onChangeCommitted, min, ma
465
486
  value: field.value ?? "",
466
487
  disabled: fc.disabled
467
488
  }),
468
- spinButtons === "stacked" && /* @__PURE__ */ jsxs(NumberFieldSpinButtons, { children: [increment, decrement] }),
489
+ endContent != null && /* @__PURE__ */ jsx(NumberInputContent, {
490
+ edge: "end",
491
+ sizeToken: fc.size,
492
+ children: endContent
493
+ }),
494
+ spinButtons === "stacked" && /* @__PURE__ */ jsxs(NumberInputSpinButtons, { children: [increment, decrement] }),
469
495
  isSide && increment
470
496
  ]
471
497
  });
472
498
  }
473
499
  //#endregion
474
- export { NumberField };
500
+ export { NumberInput };