@soroush.tech/design-system 2.0.0-rc.2 → 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 (457) hide show
  1. package/README.md +66 -40
  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 +14 -4
  121. package/dist/FormControl.d.cts +9 -1
  122. package/dist/FormControl.d.mts +9 -1
  123. package/dist/FormControl.mjs +14 -4
  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 +13 -2
  129. package/dist/FormLabel.d.cts +2 -2
  130. package/dist/FormLabel.d.mts +2 -2
  131. package/dist/FormLabel.mjs +14 -3
  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-DlheCTJb.mjs → Icon-0hPpk-WZ.mjs} +71 -1
  139. package/dist/{Icon-Cvuhp9ek.cjs → Icon-BE7bRsqR.cjs} +71 -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-tECbAEFj.mjs → Menu-CnG4ikZd.mjs} +7 -4
  171. package/dist/{Menu-BkKPTOfh.cjs → Menu-DXLjR9ga.cjs} +8 -5
  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-BR7ingQx.mjs → MenuItem-C21eR7d6.mjs} +42 -86
  177. package/dist/{MenuItem-CfdN4axw.cjs → MenuItem-EJ4u73f0.cjs} +42 -92
  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-Dml16k0X.d.mts → MenuListContext-BWL5fM_L.d.mts} +2 -2
  185. package/dist/{MenuListContext-vujGcRk9.d.cts → 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 +15 -18
  193. package/dist/NativeSelect.d.cts +3 -3
  194. package/dist/NativeSelect.d.mts +3 -3
  195. package/dist/NativeSelect.mjs +15 -18
  196. package/dist/NumberInput.cjs +502 -0
  197. package/dist/NumberInput.d.cts +79 -0
  198. package/dist/NumberInput.d.mts +79 -0
  199. package/dist/NumberInput.mjs +500 -0
  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/RangeInput.cjs +677 -0
  229. package/dist/RangeInput.d.cts +79 -0
  230. package/dist/RangeInput.d.mts +79 -0
  231. package/dist/RangeInput.mjs +675 -0
  232. package/dist/Rating.cjs +373 -0
  233. package/dist/Rating.d.cts +57 -0
  234. package/dist/Rating.d.mts +57 -0
  235. package/dist/Rating.mjs +371 -0
  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 +11 -13
  241. package/dist/Select.d.cts +3 -3
  242. package/dist/Select.d.mts +3 -3
  243. package/dist/Select.mjs +13 -15
  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 +4 -4
  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 +35 -18
  261. package/dist/Switch.d.cts +4 -2
  262. package/dist/Switch.d.mts +4 -2
  263. package/dist/Switch.mjs +37 -20
  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/TableControl.mjs +2 -2
  275. package/dist/Table/TableFooter.d.cts +1 -1
  276. package/dist/Table/TableFooter.d.mts +1 -1
  277. package/dist/Table/TableHead.d.cts +1 -1
  278. package/dist/Table/TableHead.d.mts +1 -1
  279. package/dist/Table/TablePagination.cjs +1 -0
  280. package/dist/Table/TablePagination.d.cts +2 -2
  281. package/dist/Table/TablePagination.d.mts +2 -2
  282. package/dist/Table/TablePagination.mjs +1 -0
  283. package/dist/Table/TablePaginationActions.cjs +1 -1
  284. package/dist/Table/TablePaginationActions.d.cts +1 -1
  285. package/dist/Table/TablePaginationActions.d.mts +1 -1
  286. package/dist/Table/TablePaginationActions.mjs +1 -1
  287. package/dist/Table/TableRow.d.cts +1 -1
  288. package/dist/Table/TableRow.d.mts +1 -1
  289. package/dist/Table/TableSortLabel.cjs +1 -1
  290. package/dist/Table/TableSortLabel.d.cts +1 -1
  291. package/dist/Table/TableSortLabel.d.mts +1 -1
  292. package/dist/Table/TableSortLabel.mjs +1 -1
  293. package/dist/Table/hooks.d.cts +1 -1
  294. package/dist/Table/hooks.d.mts +1 -1
  295. package/dist/Table.d.cts +5 -5
  296. package/dist/Table.d.mts +5 -5
  297. package/dist/{TableContext-6PgGpUzM.d.mts → TableContext-Be8tluYZ.d.cts} +1 -1
  298. package/dist/{TableContext-CBGk-Lh8.d.cts → TableContext-DUPqls5k.d.mts} +1 -1
  299. package/dist/Tabs/Tab.cjs +16 -7
  300. package/dist/Tabs/Tab.d.cts +2 -2
  301. package/dist/Tabs/Tab.d.mts +2 -2
  302. package/dist/Tabs/Tab.mjs +16 -7
  303. package/dist/Tabs/TabContext.d.cts +1 -1
  304. package/dist/Tabs/TabContext.d.mts +1 -1
  305. package/dist/Tabs/TabList.cjs +1 -1
  306. package/dist/Tabs/TabList.d.cts +1 -1
  307. package/dist/Tabs/TabList.d.mts +1 -1
  308. package/dist/Tabs/TabList.mjs +1 -1
  309. package/dist/Tabs/TabPanel.cjs +1 -1
  310. package/dist/Tabs/TabPanel.d.cts +2 -2
  311. package/dist/Tabs/TabPanel.d.mts +2 -2
  312. package/dist/Tabs/TabPanel.mjs +1 -1
  313. package/dist/Tabs/TabScrollButton.cjs +2 -2
  314. package/dist/Tabs/TabScrollButton.d.cts +1 -1
  315. package/dist/Tabs/TabScrollButton.d.mts +1 -1
  316. package/dist/Tabs/TabScrollButton.mjs +2 -2
  317. package/dist/Tabs/Tabs.cjs +1 -1
  318. package/dist/Tabs/Tabs.d.cts +2 -2
  319. package/dist/Tabs/Tabs.d.mts +2 -2
  320. package/dist/Tabs/Tabs.mjs +1 -1
  321. package/dist/{Tabs-D_wkX-Jb.cjs → Tabs-Croeq9s2.cjs} +15 -10
  322. package/dist/{Tabs-YfCUbkQV.mjs → Tabs-DMMP5aDj.mjs} +12 -7
  323. package/dist/Tabs.cjs +1 -1
  324. package/dist/Tabs.d.cts +3 -3
  325. package/dist/Tabs.d.mts +3 -3
  326. package/dist/Tabs.mjs +1 -1
  327. package/dist/{TabsContext-C2agsLBN.d.cts → TabsContext-BYeGjSZK.d.cts} +1 -1
  328. package/dist/{TabsContext-DqyxdmGW.d.mts → TabsContext-D4YumTfD.d.mts} +1 -1
  329. package/dist/TextInput.cjs +14 -14
  330. package/dist/TextInput.d.cts +2 -2
  331. package/dist/TextInput.d.mts +2 -2
  332. package/dist/TextInput.mjs +14 -14
  333. package/dist/ToggleButton/ToggleButton.cjs +2 -2
  334. package/dist/ToggleButton/ToggleButton.d.cts +1 -1
  335. package/dist/ToggleButton/ToggleButton.d.mts +1 -1
  336. package/dist/ToggleButton/ToggleButton.mjs +2 -2
  337. package/dist/ToggleButton/ToggleButtonGroup.cjs +1 -1
  338. package/dist/ToggleButton/ToggleButtonGroup.d.cts +1 -1
  339. package/dist/ToggleButton/ToggleButtonGroup.d.mts +1 -1
  340. package/dist/ToggleButton/ToggleButtonGroup.mjs +1 -1
  341. package/dist/Tooltip.cjs +270 -0
  342. package/dist/Tooltip.d.cts +78 -0
  343. package/dist/Tooltip.d.mts +78 -0
  344. package/dist/Tooltip.mjs +268 -0
  345. package/dist/TransferList.cjs +363 -0
  346. package/dist/TransferList.d.cts +69 -0
  347. package/dist/TransferList.d.mts +69 -0
  348. package/dist/TransferList.mjs +361 -0
  349. package/dist/Typography.cjs +1 -1
  350. package/dist/Typography.d.cts +2 -2
  351. package/dist/Typography.d.mts +2 -2
  352. package/dist/Typography.mjs +1 -1
  353. package/dist/View.d.cts +1 -1
  354. package/dist/View.d.mts +1 -1
  355. package/dist/Zoom.cjs +16 -0
  356. package/dist/Zoom.d.cts +10 -0
  357. package/dist/Zoom.d.mts +10 -0
  358. package/dist/Zoom.mjs +15 -0
  359. package/dist/catalog.cjs +1405 -45
  360. package/dist/catalog.d.cts +1 -1
  361. package/dist/catalog.d.mts +1 -1
  362. package/dist/catalog.mjs +1405 -45
  363. package/dist/engine.d.cts +2 -2
  364. package/dist/engine.d.mts +1 -1
  365. package/dist/getAnchorRel-CySI28HJ.mjs +8 -0
  366. package/dist/getAnchorRel-_vtAXC-4.cjs +13 -0
  367. package/dist/getShapeRadius-B9ytqDSk.d.cts +5 -0
  368. package/dist/getShapeRadius-B9ytqDSk.d.mts +5 -0
  369. package/dist/getShapeRadius-sY6-AGP4.mjs +12 -0
  370. package/dist/getShapeRadius-vXmXGV3f.cjs +17 -0
  371. package/dist/getSurfaceRadius-BTUV1E8H.cjs +11 -0
  372. package/dist/getSurfaceRadius-DTgqIzll.mjs +6 -0
  373. package/dist/getTooltipOrigins-B_7XXtQq.cjs +104 -0
  374. package/dist/getTooltipOrigins-CyyIMCF1.mjs +87 -0
  375. package/dist/{index-qlfNErNd.d.cts → index-05VGk0y_.d.cts} +30 -2
  376. package/dist/{index-CrIxI8Na.d.mts → index-2x01drCL.d.mts} +2 -2
  377. package/dist/{index-Cj5Rhh_9.d.mts → index-46mhlgP6.d.mts} +7 -3
  378. package/dist/{index-BiVvxOvj.d.cts → index-BCzI2Iqo.d.cts} +2 -2
  379. package/dist/{index-IdMqR82e.d.cts → index-BDqIc6Gx.d.cts} +1 -1
  380. package/dist/{index-BSA6SKao.d.mts → index-BPh60KDs.d.mts} +1 -1
  381. package/dist/{index-Bxd9NOWb.d.mts → index-BQge4W7L.d.cts} +3 -3
  382. package/dist/{index-DCmH5f9I.d.cts → index-BSGu9rPv.d.cts} +7 -3
  383. package/dist/{index-Bhdn4KTy.d.cts → index-BThHG5QU.d.mts} +3 -3
  384. package/dist/{index-DrVYWt-X.d.mts → index-BUeqNHjb.d.cts} +3 -3
  385. package/dist/{index-DIC7HKpP.d.mts → index-BeqpkGV-.d.mts} +1 -1
  386. package/dist/{index-DqjXDutI.d.mts → index-Bfyz3MDc.d.mts} +1 -1
  387. package/dist/{index-BlLH6rlE.d.cts → index-BgLqA52S.d.cts} +2 -2
  388. package/dist/{index-DDJuUfL5.d.cts → index-BhnLFsBv.d.cts} +1 -1
  389. package/dist/{index-gnh-Oe0n.d.cts → index-BitQk7Hx.d.cts} +1 -1
  390. package/dist/index-BvgX5eyV.d.mts +36 -0
  391. package/dist/index-CERyXFjz.d.cts +32 -0
  392. package/dist/index-CLvlNnjM.d.mts +32 -0
  393. package/dist/{index-C3KrFPCj.d.mts → index-CO-XxjiZ.d.cts} +2 -2
  394. package/dist/{index-DXhMkjQ6.d.cts → index-CR0akDlJ.d.cts} +2 -2
  395. package/dist/{index-CVNJEUwJ.d.mts → index-CRQ7XLri.d.mts} +234 -6
  396. package/dist/{index-DQcnJ5H4.d.cts → index-CRn4fWwA.d.mts} +2 -2
  397. package/dist/{index-BCnKYNlZ.d.cts → index-CWPvdEjP.d.mts} +3 -3
  398. package/dist/{index-DuVNRXP4.d.cts → index-CrQDxJ1D.d.cts} +1 -1
  399. package/dist/index-Ctx-DKV3.d.cts +18 -0
  400. package/dist/index-Ctx-DKV3.d.mts +18 -0
  401. package/dist/{index-BjPX49XA.d.mts → index-CyLhEXYB.d.mts} +1 -1
  402. package/dist/{index-DeDxYlSQ.d.mts → index-D05fSuF1.d.mts} +2 -2
  403. package/dist/{index-XxydXX8l.d.cts → index-DK3zgGPe.d.mts} +3 -3
  404. package/dist/{index-BqpS_Huq.d.mts → index-DNj5P2NH.d.mts} +30 -2
  405. package/dist/{index-BFruxTHv.d.cts → index-DOH1xY0L.d.cts} +1 -1
  406. package/dist/{index-B3LIhqHR.d.cts → index-D_-DAAE7.d.mts} +14 -6
  407. package/dist/{index-BbgFYfX_.d.mts → index-D_LT3QiH.d.mts} +2 -2
  408. package/dist/index-Db4L2hwa.d.cts +36 -0
  409. package/dist/{index-BjfPEP_5.d.cts → index-Dk4KuTPB.d.cts} +2 -2
  410. package/dist/{index-CoEqjFYn.d.mts → index-Ebjbrbsk.d.cts} +14 -6
  411. package/dist/{index-B8DNxyEw.d.mts → index-MWUGpG-Y.d.mts} +2 -2
  412. package/dist/{index-DmJ7yWWi.d.cts → index-XN4-ZqTB.d.cts} +236 -8
  413. package/dist/index-fPRELf0V.d.mts +1 -0
  414. package/dist/{index-CWnbCxgw.d.cts → index-fi-W3MOz.d.cts} +7 -5
  415. package/dist/{index-DJCpnTH3.d.mts → index-iTquH69S.d.cts} +3 -3
  416. package/dist/{index-DckSub2J.d.mts → index-lGpLM144.d.mts} +7 -5
  417. package/dist/{index-BVPrG1L0.d.mts → index-vBCN6iAz.d.mts} +1 -1
  418. package/dist/index-x3WC9ViD.d.cts +1 -0
  419. package/dist/index.d.cts +1 -1
  420. package/dist/index.d.mts +1 -1
  421. package/dist/inputVariantStyles-BUK_62Ra.cjs +61 -0
  422. package/dist/inputVariantStyles-q_cZsCJg.mjs +44 -0
  423. package/dist/isRtl-BJDtm86G.mjs +7 -0
  424. package/dist/isRtl-DTkYHRPo.cjs +12 -0
  425. package/dist/precision-B1lhxnnO.mjs +25 -0
  426. package/dist/precision-B58cTPB2.cjs +48 -0
  427. package/dist/style.cjs +1 -1
  428. package/dist/style.d.cts +2 -2
  429. package/dist/style.d.mts +2 -2
  430. package/dist/style.mjs +1 -1
  431. package/dist/{theme-BxXuXRgQ.cjs → theme-DzfwuzMZ.cjs} +1 -1
  432. package/dist/{theme-Z9_QludW.mjs → theme-oBfFhJm9.mjs} +1 -1
  433. package/dist/theme.cjs +3 -2
  434. package/dist/theme.d.cts +3 -3
  435. package/dist/theme.d.mts +3 -3
  436. package/dist/theme.mjs +3 -3
  437. package/dist/{themes-gd6tcmqS.cjs → themes--4eci3M1.cjs} +25 -2
  438. package/dist/{themes-L-dE7_ck.mjs → themes-BwEsdVox.mjs} +20 -3
  439. package/dist/useAnchoredPlacement-B1FyGoZV.cjs +111 -0
  440. package/dist/useAnchoredPlacement-Pe7sY41E.mjs +106 -0
  441. package/dist/useControlled-C666KpQ0.cjs +18 -0
  442. package/dist/useControlled-CBRLsO-H.mjs +13 -0
  443. package/dist/useMergedRefs-2zTDXgPO.cjs +27 -0
  444. package/dist/useMergedRefs-BfBckwRY.mjs +22 -0
  445. package/dist/{useTablePagination-C5VKtqDp.d.cts → useTablePagination-CFb_FYA9.d.cts} +1 -1
  446. package/dist/{useTablePagination-C6LSlt3w.d.mts → useTablePagination-_-bzuXJO.d.mts} +1 -1
  447. package/dist/useTransition-C1F7MuHO.d.mts +42 -0
  448. package/dist/useTransition-DAQd1PX3.cjs +83 -0
  449. package/dist/useTransition-DP1k0irI.mjs +78 -0
  450. package/dist/useTransition-l9dv83-Y.d.cts +42 -0
  451. package/dist/useTransitionChild-CikpU0Yh.cjs +54 -0
  452. package/dist/useTransitionChild-Dvg9hO-F.mjs +49 -0
  453. package/package.json +194 -4
  454. package/dist/index-DBteSahY.d.cts +0 -1
  455. package/dist/index-_G1osn09.d.mts +0 -1
  456. package/dist/inputVariantStyles-BBkkYQtE.cjs +0 -32
  457. package/dist/inputVariantStyles-CcqpGfuP.mjs +0 -28
@@ -0,0 +1,17 @@
1
+ import { n as TransitionProps } from "./useTransition-C1F7MuHO.mjs";
2
+ //#region src/Slide/Slide.d.ts
3
+ /** The edge of the window the child slides in from. */
4
+ type SlideDirection = 'up' | 'down' | 'left' | 'right';
5
+ interface SlideProps extends TransitionProps {
6
+ /** The edge it slides in from - and out to. Mirrored in right-to-left pages. Default: `'down'`. */
7
+ direction?: SlideDirection;
8
+ }
9
+ /**
10
+ * @description Slides one child in from an edge of the window and back out. The child holds a
11
+ * `ref` and takes a `style`; out, it is hidden. Its way out is measured as it starts, so it
12
+ * leaves the window from wherever it sits. A user who asked for less motion sees it change at
13
+ * once.
14
+ */
15
+ declare function Slide({ direction, ...props }: Readonly<SlideProps>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
16
+ //#endregion
17
+ export { Slide, SlideDirection, SlideProps };
package/dist/Slide.mjs ADDED
@@ -0,0 +1,50 @@
1
+ import { t as isRtl } from "./isRtl-BJDtm86G.mjs";
2
+ import { t as useTransitionChild } from "./useTransitionChild-Dvg9hO-F.mjs";
3
+ import { useRef } from "react";
4
+ //#region src/Slide/Slide.tsx
5
+ const mirrored = {
6
+ up: "up",
7
+ down: "down",
8
+ left: "right",
9
+ right: "left"
10
+ };
11
+ const getOffset = (node, direction) => {
12
+ const rect = node.getBoundingClientRect();
13
+ const toward = isRtl(node) ? mirrored[direction] : direction;
14
+ if (toward === "left") return `translateX(${-(rect.left + rect.width)}px)`;
15
+ if (toward === "right") return `translateX(${window.innerWidth - rect.left}px)`;
16
+ if (toward === "up") return `translateY(${-(rect.top + rect.height)}px)`;
17
+ return `translateY(${window.innerHeight - rect.top}px)`;
18
+ };
19
+ /**
20
+ * @description Slides one child in from an edge of the window and back out. The child holds a
21
+ * `ref` and takes a `style`; out, it is hidden. Its way out is measured as it starts, so it
22
+ * leaves the window from wherever it sits. A user who asked for less motion sees it change at
23
+ * once.
24
+ */
25
+ function Slide({ direction = "down", ...props }) {
26
+ const offset = useRef("");
27
+ const measure = (node) => {
28
+ const { transform } = node.style;
29
+ node.style.transform = "none";
30
+ offset.current = getOffset(node, direction);
31
+ node.style.transform = transform;
32
+ };
33
+ return useTransitionChild(props, ({ status, duration, easing }) => ({
34
+ transform: status === "entering" || status === "entered" ? "none" : offset.current || void 0,
35
+ transition: `transform ${duration}ms ${easing}`,
36
+ visibility: status === "exited" ? "hidden" : void 0
37
+ }), {
38
+ onEnter: (node) => {
39
+ measure(node);
40
+ const { transition } = node.style;
41
+ node.style.transition = "none";
42
+ node.style.transform = offset.current;
43
+ node.getBoundingClientRect();
44
+ node.style.transition = transition;
45
+ },
46
+ onExit: measure
47
+ });
48
+ }
49
+ //#endregion
50
+ export { Slide };
@@ -0,0 +1,205 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_src = require("./src-DU81aGy9.cjs");
3
+ const require_theme = require("./theme-DzfwuzMZ.cjs");
4
+ const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
5
+ const require_getSurfaceRadius = require("./getSurfaceRadius-BTUV1E8H.cjs");
6
+ const require_useControlled = require("./useControlled-C666KpQ0.cjs");
7
+ const require_getShapeRadius = require("./getShapeRadius-vXmXGV3f.cjs");
8
+ const require_Portal = require("./Portal.cjs");
9
+ const require_Grow = require("./Grow.cjs");
10
+ let react = require("react");
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
13
+ //#region src/Snackbar/hooks/useAutoHide.ts
14
+ /**
15
+ * The clock of a message that hides itself: it runs while the message is open, stops while the
16
+ * pointer or the focus is on it, and starts again - for `resumeDuration` - once they leave.
17
+ */
18
+ function useAutoHide({ isOpen, duration, resumeDuration, onHide }) {
19
+ const timer = (0, react.useRef)(void 0);
20
+ const hide = (0, react.useRef)(onHide);
21
+ (0, react.useEffect)(() => {
22
+ hide.current = onHide;
23
+ });
24
+ const stop = (0, react.useCallback)(() => window.clearTimeout(timer.current), []);
25
+ const start = (0, react.useCallback)((ms) => {
26
+ stop();
27
+ if (ms !== void 0) timer.current = window.setTimeout(() => hide.current(), ms);
28
+ }, [stop]);
29
+ (0, react.useEffect)(() => {
30
+ if (!isOpen) return void 0;
31
+ start(duration);
32
+ return stop;
33
+ }, [
34
+ isOpen,
35
+ duration,
36
+ start,
37
+ stop
38
+ ]);
39
+ return {
40
+ pause: stop,
41
+ resume: (0, react.useCallback)(() => {
42
+ if (!isOpen || duration === void 0) return;
43
+ start(resumeDuration ?? duration / 2);
44
+ }, [
45
+ isOpen,
46
+ duration,
47
+ resumeDuration,
48
+ start
49
+ ])
50
+ };
51
+ }
52
+ //#endregion
53
+ //#region src/Snackbar/Snackbar.tsx
54
+ const DEFAULT_ANCHOR = {
55
+ vertical: "bottom",
56
+ horizontal: "start"
57
+ };
58
+ const SnackbarRoot = require_src.styled("div", {
59
+ name: "Snackbar",
60
+ label: "Snackbar",
61
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)(["anchorOrigin", "layer"])
62
+ })(({ theme, anchorOrigin, layer }) => {
63
+ const { vertical, horizontal } = anchorOrigin;
64
+ return {
65
+ position: "fixed",
66
+ zIndex: theme.zOrder[layer],
67
+ display: "flex",
68
+ pointerEvents: "none",
69
+ [vertical]: theme.space[3],
70
+ ...horizontal === "center" ? {
71
+ left: 0,
72
+ right: 0,
73
+ justifyContent: "center"
74
+ } : { [horizontal === "start" ? "insetInlineStart" : "insetInlineEnd"]: theme.space[3] }
75
+ };
76
+ });
77
+ const SnackbarContent = require_src.styled("div", {
78
+ name: "Snackbar",
79
+ slot: "content",
80
+ label: "SnackbarContent",
81
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
82
+ "shape",
83
+ "borderRadius",
84
+ "bg",
85
+ "textColor"
86
+ ])
87
+ })(({ theme, shape, borderRadius, bg, textColor }) => ({
88
+ display: "flex",
89
+ alignItems: "center",
90
+ gap: theme.space[2],
91
+ boxSizing: "border-box",
92
+ minWidth: "18rem",
93
+ maxWidth: `calc(100vw - ${theme.space[3]} - ${theme.space[3]})`,
94
+ padding: `${theme.space[1]} ${theme.space[2]}`,
95
+ pointerEvents: "auto",
96
+ borderRadius: require_getShapeRadius.getShapeRadius(shape, require_getSurfaceRadius.getSurfaceRadius(theme, borderRadius)),
97
+ boxShadow: theme.shadows[6],
98
+ backgroundColor: (0, require_src.src_exports.get)(theme, `background.${bg ?? "modal"}`),
99
+ color: (0, require_src.src_exports.get)(theme, `text.${textColor ?? require_themeDefault.themeDefault(theme, "textColor", "initial")}`),
100
+ fontFamily: (0, require_src.src_exports.get)(theme, "fonts.body"),
101
+ fontSize: theme.fontSizes[1],
102
+ lineHeight: (0, require_src.src_exports.get)(theme, "lineHeights.base")
103
+ }));
104
+ const SnackbarMessage = require_src.styled("div", {
105
+ name: "Snackbar",
106
+ slot: "message",
107
+ label: "SnackbarMessage"
108
+ })(({ theme }) => ({
109
+ flex: 1,
110
+ minWidth: 0,
111
+ padding: `${theme.space[1]} 0`
112
+ }));
113
+ const SnackbarAction = require_src.styled("div", {
114
+ name: "Snackbar",
115
+ slot: "action",
116
+ label: "SnackbarAction"
117
+ })(({ theme }) => ({
118
+ display: "flex",
119
+ alignItems: "center",
120
+ flexShrink: 0,
121
+ gap: theme.space[1],
122
+ marginInlineStart: "auto"
123
+ }));
124
+ /**
125
+ * @description A transient message in a corner of the window, through a `Portal`. It hides itself
126
+ * after `autoHideDuration` - the clock stops while the pointer or the focus is on it - and asks to
127
+ * close on Escape and on a click away, `onClose` told why. It is a `role="status"`, announced
128
+ * politely, and never takes the focus. Several at once do not stack: the app queues them.
129
+ */
130
+ function Snackbar({ isOpen: isOpenProp, defaultOpen = false, onClose, autoHideDuration: autoHideDurationProp, resumeHideDuration: resumeHideDurationProp, message, action, children, anchorOrigin: anchorOriginProp, transition: Transition = require_Grow.Grow, layer: layerProp, shape: shapeProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, container, className, "data-testid": dataTestid }) {
131
+ const dp = require_theme.useDefaultProps("Snackbar");
132
+ const autoHideDuration = autoHideDurationProp ?? dp.autoHideDuration;
133
+ const resumeHideDuration = resumeHideDurationProp ?? dp.resumeHideDuration;
134
+ const anchorOrigin = anchorOriginProp ?? dp.anchorOrigin ?? DEFAULT_ANCHOR;
135
+ const layer = layerProp ?? dp.layer ?? "snackbar";
136
+ const shape = shapeProp ?? dp.shape ?? "rounded";
137
+ const borderRadius = borderRadiusProp ?? dp.borderRadius;
138
+ const bg = bgProp ?? dp.bg;
139
+ const textColor = textColorProp ?? dp.textColor;
140
+ const [isOpen, setIsOpen] = require_useControlled.useControlled({
141
+ controlled: isOpenProp,
142
+ default: defaultOpen
143
+ });
144
+ const [isMounted, setIsMounted] = (0, react.useState)(isOpen);
145
+ if (isOpen && !isMounted) setIsMounted(true);
146
+ const close = (event, reason) => {
147
+ onClose?.(event, reason);
148
+ if (isOpenProp === void 0 && reason !== "clickaway") setIsOpen(false);
149
+ };
150
+ const latestClose = (0, react.useRef)(close);
151
+ (0, react.useEffect)(() => {
152
+ latestClose.current = close;
153
+ });
154
+ const { pause, resume } = useAutoHide({
155
+ isOpen,
156
+ duration: autoHideDuration,
157
+ resumeDuration: resumeHideDuration,
158
+ onHide: () => latestClose.current(new Event("timeout"), "timeout")
159
+ });
160
+ const contentRef = (0, react.useRef)(null);
161
+ (0, react.useEffect)(() => {
162
+ if (!isOpen) return void 0;
163
+ const handleKeyDown = (event) => {
164
+ if (event.key === "Escape") latestClose.current(event, "escapeKeyDown");
165
+ };
166
+ const handlePointerDown = (event) => {
167
+ if (!contentRef.current?.contains(event.target)) latestClose.current(event, "clickaway");
168
+ };
169
+ document.addEventListener("keydown", handleKeyDown);
170
+ document.addEventListener("pointerdown", handlePointerDown);
171
+ return () => {
172
+ document.removeEventListener("keydown", handleKeyDown);
173
+ document.removeEventListener("pointerdown", handlePointerDown);
174
+ };
175
+ }, [isOpen]);
176
+ if (!isMounted) return null;
177
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Portal.Portal, {
178
+ container,
179
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SnackbarRoot, {
180
+ anchorOrigin,
181
+ layer,
182
+ className,
183
+ "data-testid": dataTestid,
184
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Transition, {
185
+ isShown: isOpen,
186
+ onExited: () => setIsMounted(false),
187
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SnackbarContent, {
188
+ ref: contentRef,
189
+ role: "status",
190
+ shape,
191
+ borderRadius,
192
+ bg,
193
+ textColor,
194
+ onMouseEnter: pause,
195
+ onMouseLeave: resume,
196
+ onFocus: pause,
197
+ onBlur: resume,
198
+ children: children ?? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SnackbarMessage, { children: message }), action ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SnackbarAction, { children: action }) : null] })
199
+ })
200
+ })
201
+ })
202
+ });
203
+ }
204
+ //#endregion
205
+ exports.Snackbar = Snackbar;
@@ -0,0 +1,62 @@
1
+ import { nt as Theme } from "./index-XN4-ZqTB.cjs";
2
+ import { n as TransitionProps } from "./useTransition-l9dv83-Y.cjs";
3
+ import { t as Shape } from "./getShapeRadius-B9ytqDSk.cjs";
4
+ import { n as PortalProps } from "./index-Ctx-DKV3.cjs";
5
+ import { ComponentType, ReactNode, SyntheticEvent } from "react";
6
+ //#region src/Snackbar/Snackbar.d.ts
7
+ /** Why a snackbar asks to close. */
8
+ type SnackbarCloseReason = 'timeout' | 'clickaway' | 'escapeKeyDown';
9
+ interface SnackbarAnchorOrigin {
10
+ vertical: 'top' | 'bottom';
11
+ /** `'start'` and `'end'` are the left and the right, and swap right to left. */
12
+ horizontal: 'start' | 'center' | 'end';
13
+ }
14
+ type SnackbarShape = Shape;
15
+ interface SnackbarProps {
16
+ /**
17
+ * Corner shape: `'square'` is 0, `'pill'` a full round, `'rounded'` the radius of `borderRadius`.
18
+ * Default: `'rounded'`.
19
+ */
20
+ shape?: SnackbarShape;
21
+ /** The radius of a `'rounded'` snackbar, resolves against `theme.radii`. Default: `theme.defaults.surfaceRadius`, else square. Other shapes ignore it. */
22
+ borderRadius?: keyof Theme['radii'];
23
+ /** Background, resolves against `theme.background`. Default: `'modal'`. */
24
+ bg?: keyof Theme['background'];
25
+ /** Text color, resolves against `theme.text`. Default: `theme.defaults.textColor`, else `'initial'`. */
26
+ textColor?: keyof Theme['text'];
27
+ /** Whether it is shown. Controlled with `onClose`. */
28
+ isOpen?: boolean;
29
+ /** Whether it is shown at first, when uncontrolled. Default: `false`. */
30
+ defaultOpen?: boolean;
31
+ /** Fired when it asks to close, with why. Uncontrolled, it closes itself - but not on a click away. */
32
+ onClose?: (event: Event | SyntheticEvent, reason: SnackbarCloseReason) => void;
33
+ /** How long it stays, in milliseconds. Without it, it stays until it is closed. */
34
+ autoHideDuration?: number;
35
+ /** How long it stays once the pointer or focus has left it. Default: half of `autoHideDuration`. */
36
+ resumeHideDuration?: number;
37
+ /** The message. */
38
+ message?: ReactNode;
39
+ /** What sits after the message - a button. */
40
+ action?: ReactNode;
41
+ /** What it holds in place of the message and the action - an `Alert`. */
42
+ children?: ReactNode;
43
+ /** Which corner of the window it sits in. Default: `{ vertical: 'bottom', horizontal: 'start' }`. */
44
+ anchorOrigin?: SnackbarAnchorOrigin;
45
+ /** The transition that shows and hides it. Default: `Grow`. */
46
+ transition?: ComponentType<TransitionProps>;
47
+ /** Stacking layer from `theme.zOrder`. Default: `'snackbar'`. */
48
+ layer?: keyof Theme['zOrder'];
49
+ /** Portal target. Default: `document.body`. */
50
+ container?: Exclude<PortalProps['container'], undefined>;
51
+ className?: string;
52
+ 'data-testid'?: string;
53
+ }
54
+ /**
55
+ * @description A transient message in a corner of the window, through a `Portal`. It hides itself
56
+ * after `autoHideDuration` - the clock stops while the pointer or the focus is on it - and asks to
57
+ * close on Escape and on a click away, `onClose` told why. It is a `role="status"`, announced
58
+ * politely, and never takes the focus. Several at once do not stack: the app queues them.
59
+ */
60
+ declare function Snackbar({ isOpen: isOpenProp, defaultOpen, onClose, autoHideDuration: autoHideDurationProp, resumeHideDuration: resumeHideDurationProp, message, action, children, anchorOrigin: anchorOriginProp, transition: Transition, layer: layerProp, shape: shapeProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, container, className, 'data-testid': dataTestid }: Readonly<SnackbarProps>): import("react").JSX.Element | null;
61
+ //#endregion
62
+ export { Snackbar, SnackbarAnchorOrigin, SnackbarCloseReason, SnackbarProps, SnackbarShape };
@@ -0,0 +1,62 @@
1
+ import { nt as Theme } from "./index-CRQ7XLri.mjs";
2
+ import { n as TransitionProps } from "./useTransition-C1F7MuHO.mjs";
3
+ import { t as Shape } from "./getShapeRadius-B9ytqDSk.mjs";
4
+ import { n as PortalProps } from "./index-Ctx-DKV3.mjs";
5
+ import { ComponentType, ReactNode, SyntheticEvent } from "react";
6
+ //#region src/Snackbar/Snackbar.d.ts
7
+ /** Why a snackbar asks to close. */
8
+ type SnackbarCloseReason = 'timeout' | 'clickaway' | 'escapeKeyDown';
9
+ interface SnackbarAnchorOrigin {
10
+ vertical: 'top' | 'bottom';
11
+ /** `'start'` and `'end'` are the left and the right, and swap right to left. */
12
+ horizontal: 'start' | 'center' | 'end';
13
+ }
14
+ type SnackbarShape = Shape;
15
+ interface SnackbarProps {
16
+ /**
17
+ * Corner shape: `'square'` is 0, `'pill'` a full round, `'rounded'` the radius of `borderRadius`.
18
+ * Default: `'rounded'`.
19
+ */
20
+ shape?: SnackbarShape;
21
+ /** The radius of a `'rounded'` snackbar, resolves against `theme.radii`. Default: `theme.defaults.surfaceRadius`, else square. Other shapes ignore it. */
22
+ borderRadius?: keyof Theme['radii'];
23
+ /** Background, resolves against `theme.background`. Default: `'modal'`. */
24
+ bg?: keyof Theme['background'];
25
+ /** Text color, resolves against `theme.text`. Default: `theme.defaults.textColor`, else `'initial'`. */
26
+ textColor?: keyof Theme['text'];
27
+ /** Whether it is shown. Controlled with `onClose`. */
28
+ isOpen?: boolean;
29
+ /** Whether it is shown at first, when uncontrolled. Default: `false`. */
30
+ defaultOpen?: boolean;
31
+ /** Fired when it asks to close, with why. Uncontrolled, it closes itself - but not on a click away. */
32
+ onClose?: (event: Event | SyntheticEvent, reason: SnackbarCloseReason) => void;
33
+ /** How long it stays, in milliseconds. Without it, it stays until it is closed. */
34
+ autoHideDuration?: number;
35
+ /** How long it stays once the pointer or focus has left it. Default: half of `autoHideDuration`. */
36
+ resumeHideDuration?: number;
37
+ /** The message. */
38
+ message?: ReactNode;
39
+ /** What sits after the message - a button. */
40
+ action?: ReactNode;
41
+ /** What it holds in place of the message and the action - an `Alert`. */
42
+ children?: ReactNode;
43
+ /** Which corner of the window it sits in. Default: `{ vertical: 'bottom', horizontal: 'start' }`. */
44
+ anchorOrigin?: SnackbarAnchorOrigin;
45
+ /** The transition that shows and hides it. Default: `Grow`. */
46
+ transition?: ComponentType<TransitionProps>;
47
+ /** Stacking layer from `theme.zOrder`. Default: `'snackbar'`. */
48
+ layer?: keyof Theme['zOrder'];
49
+ /** Portal target. Default: `document.body`. */
50
+ container?: Exclude<PortalProps['container'], undefined>;
51
+ className?: string;
52
+ 'data-testid'?: string;
53
+ }
54
+ /**
55
+ * @description A transient message in a corner of the window, through a `Portal`. It hides itself
56
+ * after `autoHideDuration` - the clock stops while the pointer or the focus is on it - and asks to
57
+ * close on Escape and on a click away, `onClose` told why. It is a `role="status"`, announced
58
+ * politely, and never takes the focus. Several at once do not stack: the app queues them.
59
+ */
60
+ declare function Snackbar({ isOpen: isOpenProp, defaultOpen, onClose, autoHideDuration: autoHideDurationProp, resumeHideDuration: resumeHideDurationProp, message, action, children, anchorOrigin: anchorOriginProp, transition: Transition, layer: layerProp, shape: shapeProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, container, className, 'data-testid': dataTestid }: Readonly<SnackbarProps>): import("react").JSX.Element | null;
61
+ //#endregion
62
+ export { Snackbar, SnackbarAnchorOrigin, SnackbarCloseReason, SnackbarProps, SnackbarShape };
@@ -0,0 +1,203 @@
1
+ import { a as src_exports, o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
2
+ import { n as useDefaultProps } from "./theme-oBfFhJm9.mjs";
3
+ import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
4
+ import { t as getSurfaceRadius } from "./getSurfaceRadius-DTgqIzll.mjs";
5
+ import { t as useControlled } from "./useControlled-CBRLsO-H.mjs";
6
+ import { t as getShapeRadius } from "./getShapeRadius-sY6-AGP4.mjs";
7
+ import { Portal } from "./Portal.mjs";
8
+ import { Grow } from "./Grow.mjs";
9
+ import { useCallback, useEffect, useRef, useState } from "react";
10
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
+ //#region src/Snackbar/hooks/useAutoHide.ts
12
+ /**
13
+ * The clock of a message that hides itself: it runs while the message is open, stops while the
14
+ * pointer or the focus is on it, and starts again - for `resumeDuration` - once they leave.
15
+ */
16
+ function useAutoHide({ isOpen, duration, resumeDuration, onHide }) {
17
+ const timer = useRef(void 0);
18
+ const hide = useRef(onHide);
19
+ useEffect(() => {
20
+ hide.current = onHide;
21
+ });
22
+ const stop = useCallback(() => window.clearTimeout(timer.current), []);
23
+ const start = useCallback((ms) => {
24
+ stop();
25
+ if (ms !== void 0) timer.current = window.setTimeout(() => hide.current(), ms);
26
+ }, [stop]);
27
+ useEffect(() => {
28
+ if (!isOpen) return void 0;
29
+ start(duration);
30
+ return stop;
31
+ }, [
32
+ isOpen,
33
+ duration,
34
+ start,
35
+ stop
36
+ ]);
37
+ return {
38
+ pause: stop,
39
+ resume: useCallback(() => {
40
+ if (!isOpen || duration === void 0) return;
41
+ start(resumeDuration ?? duration / 2);
42
+ }, [
43
+ isOpen,
44
+ duration,
45
+ resumeDuration,
46
+ start
47
+ ])
48
+ };
49
+ }
50
+ //#endregion
51
+ //#region src/Snackbar/Snackbar.tsx
52
+ const DEFAULT_ANCHOR = {
53
+ vertical: "bottom",
54
+ horizontal: "start"
55
+ };
56
+ const SnackbarRoot = styled("div", {
57
+ name: "Snackbar",
58
+ label: "Snackbar",
59
+ shouldForwardProp: createShouldForwardProp(["anchorOrigin", "layer"])
60
+ })(({ theme, anchorOrigin, layer }) => {
61
+ const { vertical, horizontal } = anchorOrigin;
62
+ return {
63
+ position: "fixed",
64
+ zIndex: theme.zOrder[layer],
65
+ display: "flex",
66
+ pointerEvents: "none",
67
+ [vertical]: theme.space[3],
68
+ ...horizontal === "center" ? {
69
+ left: 0,
70
+ right: 0,
71
+ justifyContent: "center"
72
+ } : { [horizontal === "start" ? "insetInlineStart" : "insetInlineEnd"]: theme.space[3] }
73
+ };
74
+ });
75
+ const SnackbarContent = styled("div", {
76
+ name: "Snackbar",
77
+ slot: "content",
78
+ label: "SnackbarContent",
79
+ shouldForwardProp: createShouldForwardProp([
80
+ "shape",
81
+ "borderRadius",
82
+ "bg",
83
+ "textColor"
84
+ ])
85
+ })(({ theme, shape, borderRadius, bg, textColor }) => ({
86
+ display: "flex",
87
+ alignItems: "center",
88
+ gap: theme.space[2],
89
+ boxSizing: "border-box",
90
+ minWidth: "18rem",
91
+ maxWidth: `calc(100vw - ${theme.space[3]} - ${theme.space[3]})`,
92
+ padding: `${theme.space[1]} ${theme.space[2]}`,
93
+ pointerEvents: "auto",
94
+ borderRadius: getShapeRadius(shape, getSurfaceRadius(theme, borderRadius)),
95
+ boxShadow: theme.shadows[6],
96
+ backgroundColor: (0, src_exports.get)(theme, `background.${bg ?? "modal"}`),
97
+ color: (0, src_exports.get)(theme, `text.${textColor ?? themeDefault(theme, "textColor", "initial")}`),
98
+ fontFamily: (0, src_exports.get)(theme, "fonts.body"),
99
+ fontSize: theme.fontSizes[1],
100
+ lineHeight: (0, src_exports.get)(theme, "lineHeights.base")
101
+ }));
102
+ const SnackbarMessage = styled("div", {
103
+ name: "Snackbar",
104
+ slot: "message",
105
+ label: "SnackbarMessage"
106
+ })(({ theme }) => ({
107
+ flex: 1,
108
+ minWidth: 0,
109
+ padding: `${theme.space[1]} 0`
110
+ }));
111
+ const SnackbarAction = styled("div", {
112
+ name: "Snackbar",
113
+ slot: "action",
114
+ label: "SnackbarAction"
115
+ })(({ theme }) => ({
116
+ display: "flex",
117
+ alignItems: "center",
118
+ flexShrink: 0,
119
+ gap: theme.space[1],
120
+ marginInlineStart: "auto"
121
+ }));
122
+ /**
123
+ * @description A transient message in a corner of the window, through a `Portal`. It hides itself
124
+ * after `autoHideDuration` - the clock stops while the pointer or the focus is on it - and asks to
125
+ * close on Escape and on a click away, `onClose` told why. It is a `role="status"`, announced
126
+ * politely, and never takes the focus. Several at once do not stack: the app queues them.
127
+ */
128
+ function Snackbar({ isOpen: isOpenProp, defaultOpen = false, onClose, autoHideDuration: autoHideDurationProp, resumeHideDuration: resumeHideDurationProp, message, action, children, anchorOrigin: anchorOriginProp, transition: Transition = Grow, layer: layerProp, shape: shapeProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, container, className, "data-testid": dataTestid }) {
129
+ const dp = useDefaultProps("Snackbar");
130
+ const autoHideDuration = autoHideDurationProp ?? dp.autoHideDuration;
131
+ const resumeHideDuration = resumeHideDurationProp ?? dp.resumeHideDuration;
132
+ const anchorOrigin = anchorOriginProp ?? dp.anchorOrigin ?? DEFAULT_ANCHOR;
133
+ const layer = layerProp ?? dp.layer ?? "snackbar";
134
+ const shape = shapeProp ?? dp.shape ?? "rounded";
135
+ const borderRadius = borderRadiusProp ?? dp.borderRadius;
136
+ const bg = bgProp ?? dp.bg;
137
+ const textColor = textColorProp ?? dp.textColor;
138
+ const [isOpen, setIsOpen] = useControlled({
139
+ controlled: isOpenProp,
140
+ default: defaultOpen
141
+ });
142
+ const [isMounted, setIsMounted] = useState(isOpen);
143
+ if (isOpen && !isMounted) setIsMounted(true);
144
+ const close = (event, reason) => {
145
+ onClose?.(event, reason);
146
+ if (isOpenProp === void 0 && reason !== "clickaway") setIsOpen(false);
147
+ };
148
+ const latestClose = useRef(close);
149
+ useEffect(() => {
150
+ latestClose.current = close;
151
+ });
152
+ const { pause, resume } = useAutoHide({
153
+ isOpen,
154
+ duration: autoHideDuration,
155
+ resumeDuration: resumeHideDuration,
156
+ onHide: () => latestClose.current(new Event("timeout"), "timeout")
157
+ });
158
+ const contentRef = useRef(null);
159
+ useEffect(() => {
160
+ if (!isOpen) return void 0;
161
+ const handleKeyDown = (event) => {
162
+ if (event.key === "Escape") latestClose.current(event, "escapeKeyDown");
163
+ };
164
+ const handlePointerDown = (event) => {
165
+ if (!contentRef.current?.contains(event.target)) latestClose.current(event, "clickaway");
166
+ };
167
+ document.addEventListener("keydown", handleKeyDown);
168
+ document.addEventListener("pointerdown", handlePointerDown);
169
+ return () => {
170
+ document.removeEventListener("keydown", handleKeyDown);
171
+ document.removeEventListener("pointerdown", handlePointerDown);
172
+ };
173
+ }, [isOpen]);
174
+ if (!isMounted) return null;
175
+ return /* @__PURE__ */ jsx(Portal, {
176
+ container,
177
+ children: /* @__PURE__ */ jsx(SnackbarRoot, {
178
+ anchorOrigin,
179
+ layer,
180
+ className,
181
+ "data-testid": dataTestid,
182
+ children: /* @__PURE__ */ jsx(Transition, {
183
+ isShown: isOpen,
184
+ onExited: () => setIsMounted(false),
185
+ children: /* @__PURE__ */ jsx(SnackbarContent, {
186
+ ref: contentRef,
187
+ role: "status",
188
+ shape,
189
+ borderRadius,
190
+ bg,
191
+ textColor,
192
+ onMouseEnter: pause,
193
+ onMouseLeave: resume,
194
+ onFocus: pause,
195
+ onBlur: resume,
196
+ children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(SnackbarMessage, { children: message }), action ? /* @__PURE__ */ jsx(SnackbarAction, { children: action }) : null] })
197
+ })
198
+ })
199
+ })
200
+ });
201
+ }
202
+ //#endregion
203
+ export { Snackbar };