@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
package/dist/Menu.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { i as useMenuListContext, n as MenuListContext, r as MenuListContextValue, t as MenuItemValue } from "./MenuListContext-Dml16k0X.mjs";
2
- import { a as MenuItemsProps, i as MenuItems, n as MenuItemData, r as MenuItemRowData, t as MenuDividerData } from "./index-C3KrFPCj.mjs";
3
- import { a as MenuAlign, i as MenuStep, n as MenuCloseReason, r as MenuProps, t as Menu } from "./index-DckSub2J.mjs";
1
+ import { i as useMenuListContext, n as MenuListContext, r as MenuListContextValue, t as MenuItemValue } from "./MenuListContext-BWL5fM_L.mjs";
2
+ import { a as MenuItemsProps, i as MenuItems, n as MenuItemData, r as MenuItemRowData, t as MenuDividerData } from "./index-CRn4fWwA.mjs";
3
+ import { a as MenuAlign, i as MenuStep, n as MenuCloseReason, r as MenuProps, t as Menu } from "./index-lGpLM144.mjs";
4
4
  import { ContextMenu, ContextMenuProps } from "./Menu/ContextMenu.mjs";
5
5
  import { MenuDivider, MenuDividerProps } from "./Menu/MenuDivider.mjs";
6
6
  import { MenuList, MenuListProps } from "./Menu/MenuList.mjs";
package/dist/Menu.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { a as useMenuListContext, i as MenuListContext, t as MenuList } from "./MenuList-B7msJ1IG.mjs";
1
+ import { a as useMenuListContext, i as MenuListContext, t as MenuList } from "./MenuList-Cz3cupC3.mjs";
2
2
  import { MenuDivider } from "./Menu/MenuDivider.mjs";
3
3
  import { MenuItems } from "./Menu/MenuItems.mjs";
4
4
  import { ContextMenu } from "./Menu/ContextMenu.mjs";
5
- import { t as Menu } from "./Menu-tECbAEFj.mjs";
5
+ import { t as Menu } from "./Menu-CnG4ikZd.mjs";
6
6
  export { ContextMenu, Menu, MenuDivider, MenuItems, MenuList, MenuListContext, useMenuListContext };
@@ -1,10 +1,12 @@
1
1
  import { a as src_exports, o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
2
+ import { n as useDefaultProps, r as useTheme } from "./theme-oBfFhJm9.mjs";
2
3
  import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
3
- import { n as useDefaultProps, r as useTheme } from "./theme-Z9_QludW.mjs";
4
- import { t as Icon } from "./Icon-DlheCTJb.mjs";
5
- import { a as useMenuListContext, n as getNextRow, r as getOwnRows, t as MenuList } from "./MenuList-B7msJ1IG.mjs";
6
- import { t as computePopoverPosition } from "./computePopoverPosition-BIprs_xo.mjs";
7
- import { Children, createContext, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
4
+ import { t as getSurfaceRadius } from "./getSurfaceRadius-DTgqIzll.mjs";
5
+ import { t as Icon } from "./Icon-0hPpk-WZ.mjs";
6
+ import { t as isRtl } from "./isRtl-BJDtm86G.mjs";
7
+ import { t as useAnchoredPlacement } from "./useAnchoredPlacement-Pe7sY41E.mjs";
8
+ import { a as useMenuListContext, n as getNextRow, r as getOwnRows, t as MenuList } from "./MenuList-Cz3cupC3.mjs";
9
+ import { Children, createContext, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react";
8
10
  import { jsx, jsxs } from "react/jsx-runtime";
9
11
  //#region src/Menu/MenuPaper.ts
10
12
  const elevationSystem = (0, src_exports.system)({ elevation: {
@@ -18,9 +20,10 @@ const MenuPaper = styled("div", {
18
20
  shouldForwardProp: (prop) => ![
19
21
  "elevation",
20
22
  "layer",
21
- "margin"
23
+ "margin",
24
+ "borderRadius"
22
25
  ].includes(prop)
23
- })(({ theme, layer, margin }) => ({
26
+ })(({ theme, layer, margin, borderRadius }) => ({
24
27
  position: "fixed",
25
28
  top: 0,
26
29
  left: 0,
@@ -29,7 +32,7 @@ const MenuPaper = styled("div", {
29
32
  maxHeight: `calc(100vh - ${2 * margin}px)`,
30
33
  overflowY: "auto",
31
34
  backgroundColor: (0, src_exports.get)(theme, `background.${themeDefault(theme, "surfaceBg", "paper")}`),
32
- borderRadius: theme.radii.sm,
35
+ borderRadius: getSurfaceRadius(theme, borderRadius),
33
36
  visibility: "hidden"
34
37
  }), elevationSystem);
35
38
  //#endregion
@@ -91,89 +94,41 @@ function hasRoomBeside(anchorRect, width, viewportWidth, margin) {
91
94
  return width <= Math.max(roomBefore, roomAfter);
92
95
  }
93
96
  //#endregion
94
- //#region src/utils/isRtl.ts
95
- /** Whether an element sits in a right-to-left context - its nearest `dir` says so. */
96
- function isRtl(element) {
97
- return element.closest("[dir]")?.getAttribute("dir") === "rtl";
98
- }
99
- //#endregion
100
97
  //#region src/Menu/hooks/useMenuPlacement.ts
101
98
  /**
102
- * Places a menu's `position: fixed` surface in the window, next to its anchor - so a
103
- * scrolling panel's overflow never clips it, while it stays in the menu's own box in the
104
- * DOM. Placed before paint on every render while open, and again on resize and on any
105
- * scroll. The surface starts `visibility: hidden` and is shown here, as it is placed - in
106
- * the same layout pass, so it is visible by the time anything inside it takes focus.
107
- * Returns whether a list beside its row opened on the other side for want of room.
99
+ * Places a menu's `position: fixed` surface in the window, next to its anchor, with the shared
100
+ * `useAnchoredPlacement`. A submenu with room on neither side of its row opens under it (or over
101
+ * it) instead, so it never covers the row it came from. Returns whether a list beside its row
102
+ * opened on the other side for want of room.
108
103
  */
109
104
  function useMenuPlacement({ isOpen, anchorRef, surfaceRef, placement, align, margin, anchorPosition = null }) {
110
105
  const [isFlipped, setIsFlipped] = useState(false);
111
- const pointTop = anchorPosition?.top;
112
- const pointLeft = anchorPosition?.left ?? 0;
113
- const place = useCallback(() => {
114
- const anchor = anchorRef.current;
115
- const surface = surfaceRef.current;
116
- if (!anchor || !surface) return;
117
- const isPoint = pointTop !== void 0;
118
- const anchorRect = anchor.getBoundingClientRect();
119
- const paperRect = {
120
- width: surface.offsetWidth,
121
- height: surface.offsetHeight
122
- };
123
- const viewport = {
124
- width: window.innerWidth,
125
- height: window.innerHeight
126
- };
127
- const isCramped = placement === "beside" && !hasRoomBeside(anchorRect, paperRect.width, viewport.width, margin);
128
- const { top, left } = computePopoverPosition({
129
- anchorReference: isPoint ? "anchorPosition" : "anchorEl",
130
- anchorPosition: isPoint ? {
131
- top: pointTop,
132
- left: pointLeft
133
- } : void 0,
134
- anchorRect,
135
- paperRect,
136
- ...getMenuOrigins(isCramped ? "below" : placement, align, isRtl(anchor)),
137
- viewport,
138
- marginThreshold: margin
139
- });
140
- surface.style.top = `${top}px`;
141
- surface.style.left = `${left}px`;
142
- const landed = surface.getBoundingClientRect();
143
- const isOwnBox = paperRect.width > 0 && Math.round(landed.width) === paperRect.width;
144
- const shiftTop = Math.round(landed.top - top);
145
- const shiftLeft = Math.round(landed.left - left);
146
- if (isOwnBox && (shiftTop !== 0 || shiftLeft !== 0)) {
147
- surface.style.top = `${top - shiftTop}px`;
148
- surface.style.left = `${left - shiftLeft}px`;
149
- }
150
- surface.style.visibility = "visible";
151
- if (placement === "beside") {
152
- const isOpeningRight = left + paperRect.width / 2 > anchorRect.left + anchorRect.width / 2;
153
- const isRightPreferred = align === "start" !== isRtl(anchor);
154
- setIsFlipped(!isCramped && isOpeningRight !== isRightPreferred);
155
- }
106
+ const isCramped = useCallback(({ anchorRect, surfaceSize, viewport }) => placement === "beside" && !hasRoomBeside(anchorRect, surfaceSize.width, viewport.width, margin), [placement, margin]);
107
+ const getOrigins = useCallback((context) => getMenuOrigins(isCramped(context) ? "below" : placement, align, context.isRtl), [
108
+ isCramped,
109
+ placement,
110
+ align
111
+ ]);
112
+ const onPlaced = useCallback((placed) => {
113
+ if (placement !== "beside") return;
114
+ const { anchorRect, surfaceSize, left, isRtl } = placed;
115
+ const isOpeningRight = left + surfaceSize.width / 2 > anchorRect.left + anchorRect.width / 2;
116
+ const isRightPreferred = align === "start" !== isRtl;
117
+ setIsFlipped(!isCramped(placed) && isOpeningRight !== isRightPreferred);
156
118
  }, [
157
- anchorRef,
158
- surfaceRef,
159
119
  placement,
160
120
  align,
161
- margin,
162
- pointTop,
163
- pointLeft
121
+ isCramped
164
122
  ]);
165
- useLayoutEffect(() => {
166
- if (isOpen) place();
123
+ useAnchoredPlacement({
124
+ isOpen,
125
+ anchorRef,
126
+ surfaceRef,
127
+ anchorPosition,
128
+ getOrigins,
129
+ margin,
130
+ onPlaced
167
131
  });
168
- useEffect(() => {
169
- if (!isOpen) return void 0;
170
- window.addEventListener("resize", place);
171
- window.addEventListener("scroll", place, true);
172
- return () => {
173
- window.removeEventListener("resize", place);
174
- window.removeEventListener("scroll", place, true);
175
- };
176
- }, [isOpen, place]);
177
132
  return isFlipped;
178
133
  }
179
134
  //#endregion
@@ -464,7 +419,7 @@ const getRowAria = (state) => ({
464
419
  "aria-expanded": state.hasSubmenu ? state.isSubmenuOpen : void 0,
465
420
  "aria-controls": state.isSubmenuOpen ? state.submenuId : void 0,
466
421
  "aria-checked": state.role === "menuitem" ? void 0 : state.selected,
467
- "aria-keyshortcuts": typeof state.shortcut === "string" ? state.shortcut : void 0,
422
+ "aria-keyshortcuts": state.keyShortcuts ?? (typeof state.shortcut === "string" ? state.shortcut : void 0),
468
423
  "aria-describedby": state.note ? state.noteId : void 0
469
424
  });
470
425
  const joinClassNames = (...names) => names.filter(Boolean).join(" ") || void 0;
@@ -475,7 +430,7 @@ const joinClassNames = (...names) => names.filter(Boolean).join(" ") || void 0;
475
430
  * `<li role="option">` (override via `as`), whose selection, highlight and density props
476
431
  * `Select` injects; used on its own it renders a static, styled row.
477
432
  */
478
- function MenuItem({ value, children, as, disabled = false, selected = false, highlighted = false, multiple = false, color: colorProp, textColor: textColorProp, size: sizeProp, dense: denseProp, disableGutters = false, divider = false, autoFocus = false, focusVisibleClassName, onSelect, role = "menuitem", startIcon, shortcut, note, onClick, submenu, emptyLabel, secondaryAction, id, className, "data-testid": dataTestid }) {
433
+ function MenuItem({ value, children, as, disabled = false, selected = false, highlighted = false, multiple = false, color: colorProp, textColor: textColorProp, size: sizeProp, dense: denseProp, disableGutters = false, divider = false, autoFocus = false, focusVisibleClassName, onSelect, role = "menuitem", startIcon, shortcut, "aria-keyshortcuts": keyShortcuts, note, onClick, submenu, emptyLabel, secondaryAction, shouldAnnounceSecondaryAction = false, id, className, "data-testid": dataTestid }) {
479
434
  const menu = useMenuListContext();
480
435
  const isMenu = menu !== null;
481
436
  const { color, size, textColor, dense } = useRowLook({
@@ -581,6 +536,7 @@ function MenuItem({ value, children, as, disabled = false, selected = false, hig
581
536
  isSubmenuOpen,
582
537
  submenuId,
583
538
  shortcut,
539
+ keyShortcuts,
584
540
  note,
585
541
  noteId
586
542
  }),
@@ -621,7 +577,7 @@ function MenuItem({ value, children, as, disabled = false, selected = false, hig
621
577
  role: "none",
622
578
  hasSecondaryAction: true,
623
579
  children: [row, /* @__PURE__ */ jsx(SecondaryActionSlot, {
624
- "aria-hidden": true,
580
+ "aria-hidden": shouldAnnounceSecondaryAction ? void 0 : true,
625
581
  children: secondaryAction
626
582
  })]
627
583
  });
@@ -635,7 +591,7 @@ function MenuItem({ value, children, as, disabled = false, selected = false, hig
635
591
  children: [
636
592
  row,
637
593
  hasSecondaryAction && /* @__PURE__ */ jsx(SecondaryActionSlot, {
638
- "aria-hidden": true,
594
+ "aria-hidden": shouldAnnounceSecondaryAction ? void 0 : true,
639
595
  children: secondaryAction
640
596
  }),
641
597
  isSubmenuOpen && /* @__PURE__ */ jsx(Submenu, {
@@ -651,4 +607,4 @@ function MenuItem({ value, children, as, disabled = false, selected = false, hig
651
607
  });
652
608
  }
653
609
  //#endregion
654
- export { MenuPaper as a, MenuContext as i, useMenuPlacement as n, isRtl as r, MenuItem as t };
610
+ export { MenuPaper as i, useMenuPlacement as n, MenuContext as r, MenuItem as t };
@@ -1,9 +1,11 @@
1
1
  const require_src = require("./src-DU81aGy9.cjs");
2
+ const require_theme = require("./theme-DzfwuzMZ.cjs");
2
3
  const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
3
- const require_theme = require("./theme-BxXuXRgQ.cjs");
4
- const require_Icon = require("./Icon-Cvuhp9ek.cjs");
5
- const require_MenuList = require("./MenuList-D4imLXAa.cjs");
6
- const require_computePopoverPosition = require("./computePopoverPosition-DiyEOHnU.cjs");
4
+ const require_getSurfaceRadius = require("./getSurfaceRadius-BTUV1E8H.cjs");
5
+ const require_Icon = require("./Icon-BE7bRsqR.cjs");
6
+ const require_isRtl = require("./isRtl-DTkYHRPo.cjs");
7
+ const require_useAnchoredPlacement = require("./useAnchoredPlacement-B1FyGoZV.cjs");
8
+ const require_MenuList = require("./MenuList-BBAYeUvD.cjs");
7
9
  let react = require("react");
8
10
  let react_jsx_runtime = require("react/jsx-runtime");
9
11
  let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
@@ -19,9 +21,10 @@ const MenuPaper = require_src.styled("div", {
19
21
  shouldForwardProp: (prop) => ![
20
22
  "elevation",
21
23
  "layer",
22
- "margin"
24
+ "margin",
25
+ "borderRadius"
23
26
  ].includes(prop)
24
- })(({ theme, layer, margin }) => ({
27
+ })(({ theme, layer, margin, borderRadius }) => ({
25
28
  position: "fixed",
26
29
  top: 0,
27
30
  left: 0,
@@ -30,7 +33,7 @@ const MenuPaper = require_src.styled("div", {
30
33
  maxHeight: `calc(100vh - ${2 * margin}px)`,
31
34
  overflowY: "auto",
32
35
  backgroundColor: (0, require_src.src_exports.get)(theme, `background.${require_themeDefault.themeDefault(theme, "surfaceBg", "paper")}`),
33
- borderRadius: theme.radii.sm,
36
+ borderRadius: require_getSurfaceRadius.getSurfaceRadius(theme, borderRadius),
34
37
  visibility: "hidden"
35
38
  }), elevationSystem);
36
39
  //#endregion
@@ -92,89 +95,41 @@ function hasRoomBeside(anchorRect, width, viewportWidth, margin) {
92
95
  return width <= Math.max(roomBefore, roomAfter);
93
96
  }
94
97
  //#endregion
95
- //#region src/utils/isRtl.ts
96
- /** Whether an element sits in a right-to-left context - its nearest `dir` says so. */
97
- function isRtl(element) {
98
- return element.closest("[dir]")?.getAttribute("dir") === "rtl";
99
- }
100
- //#endregion
101
98
  //#region src/Menu/hooks/useMenuPlacement.ts
102
99
  /**
103
- * Places a menu's `position: fixed` surface in the window, next to its anchor - so a
104
- * scrolling panel's overflow never clips it, while it stays in the menu's own box in the
105
- * DOM. Placed before paint on every render while open, and again on resize and on any
106
- * scroll. The surface starts `visibility: hidden` and is shown here, as it is placed - in
107
- * the same layout pass, so it is visible by the time anything inside it takes focus.
108
- * Returns whether a list beside its row opened on the other side for want of room.
100
+ * Places a menu's `position: fixed` surface in the window, next to its anchor, with the shared
101
+ * `useAnchoredPlacement`. A submenu with room on neither side of its row opens under it (or over
102
+ * it) instead, so it never covers the row it came from. Returns whether a list beside its row
103
+ * opened on the other side for want of room.
109
104
  */
110
105
  function useMenuPlacement({ isOpen, anchorRef, surfaceRef, placement, align, margin, anchorPosition = null }) {
111
106
  const [isFlipped, setIsFlipped] = (0, react.useState)(false);
112
- const pointTop = anchorPosition?.top;
113
- const pointLeft = anchorPosition?.left ?? 0;
114
- const place = (0, react.useCallback)(() => {
115
- const anchor = anchorRef.current;
116
- const surface = surfaceRef.current;
117
- if (!anchor || !surface) return;
118
- const isPoint = pointTop !== void 0;
119
- const anchorRect = anchor.getBoundingClientRect();
120
- const paperRect = {
121
- width: surface.offsetWidth,
122
- height: surface.offsetHeight
123
- };
124
- const viewport = {
125
- width: window.innerWidth,
126
- height: window.innerHeight
127
- };
128
- const isCramped = placement === "beside" && !hasRoomBeside(anchorRect, paperRect.width, viewport.width, margin);
129
- const { top, left } = require_computePopoverPosition.computePopoverPosition({
130
- anchorReference: isPoint ? "anchorPosition" : "anchorEl",
131
- anchorPosition: isPoint ? {
132
- top: pointTop,
133
- left: pointLeft
134
- } : void 0,
135
- anchorRect,
136
- paperRect,
137
- ...getMenuOrigins(isCramped ? "below" : placement, align, isRtl(anchor)),
138
- viewport,
139
- marginThreshold: margin
140
- });
141
- surface.style.top = `${top}px`;
142
- surface.style.left = `${left}px`;
143
- const landed = surface.getBoundingClientRect();
144
- const isOwnBox = paperRect.width > 0 && Math.round(landed.width) === paperRect.width;
145
- const shiftTop = Math.round(landed.top - top);
146
- const shiftLeft = Math.round(landed.left - left);
147
- if (isOwnBox && (shiftTop !== 0 || shiftLeft !== 0)) {
148
- surface.style.top = `${top - shiftTop}px`;
149
- surface.style.left = `${left - shiftLeft}px`;
150
- }
151
- surface.style.visibility = "visible";
152
- if (placement === "beside") {
153
- const isOpeningRight = left + paperRect.width / 2 > anchorRect.left + anchorRect.width / 2;
154
- const isRightPreferred = align === "start" !== isRtl(anchor);
155
- setIsFlipped(!isCramped && isOpeningRight !== isRightPreferred);
156
- }
107
+ const isCramped = (0, react.useCallback)(({ anchorRect, surfaceSize, viewport }) => placement === "beside" && !hasRoomBeside(anchorRect, surfaceSize.width, viewport.width, margin), [placement, margin]);
108
+ const getOrigins = (0, react.useCallback)((context) => getMenuOrigins(isCramped(context) ? "below" : placement, align, context.isRtl), [
109
+ isCramped,
110
+ placement,
111
+ align
112
+ ]);
113
+ const onPlaced = (0, react.useCallback)((placed) => {
114
+ if (placement !== "beside") return;
115
+ const { anchorRect, surfaceSize, left, isRtl } = placed;
116
+ const isOpeningRight = left + surfaceSize.width / 2 > anchorRect.left + anchorRect.width / 2;
117
+ const isRightPreferred = align === "start" !== isRtl;
118
+ setIsFlipped(!isCramped(placed) && isOpeningRight !== isRightPreferred);
157
119
  }, [
158
- anchorRef,
159
- surfaceRef,
160
120
  placement,
161
121
  align,
162
- margin,
163
- pointTop,
164
- pointLeft
122
+ isCramped
165
123
  ]);
166
- (0, react.useLayoutEffect)(() => {
167
- if (isOpen) place();
124
+ require_useAnchoredPlacement.useAnchoredPlacement({
125
+ isOpen,
126
+ anchorRef,
127
+ surfaceRef,
128
+ anchorPosition,
129
+ getOrigins,
130
+ margin,
131
+ onPlaced
168
132
  });
169
- (0, react.useEffect)(() => {
170
- if (!isOpen) return void 0;
171
- window.addEventListener("resize", place);
172
- window.addEventListener("scroll", place, true);
173
- return () => {
174
- window.removeEventListener("resize", place);
175
- window.removeEventListener("scroll", place, true);
176
- };
177
- }, [isOpen, place]);
178
133
  return isFlipped;
179
134
  }
180
135
  //#endregion
@@ -248,7 +203,7 @@ function useSubmenu(rowRef, isEnabled) {
248
203
  if (isEnabled) setIsOpen(true);
249
204
  };
250
205
  const handleRowKeyDown = (event) => {
251
- const inward = isRtl(event.currentTarget) ? "ArrowLeft" : "ArrowRight";
206
+ const inward = require_isRtl.isRtl(event.currentTarget) ? "ArrowLeft" : "ArrowRight";
252
207
  if (!isEnabled || ![
253
208
  inward,
254
209
  "Enter",
@@ -266,7 +221,7 @@ function useSubmenu(rowRef, isEnabled) {
266
221
  const handleEntryKeyDown = (event) => {
267
222
  const list = document.getElementById(listId);
268
223
  if (event.target.closest("[role=\"menu\"]") !== list) return;
269
- const outward = isRtl(event.currentTarget) ? "ArrowRight" : "ArrowLeft";
224
+ const outward = require_isRtl.isRtl(event.currentTarget) ? "ArrowRight" : "ArrowLeft";
270
225
  if (event.key !== outward && event.key !== "Escape") return;
271
226
  event.preventDefault();
272
227
  event.stopPropagation();
@@ -465,7 +420,7 @@ const getRowAria = (state) => ({
465
420
  "aria-expanded": state.hasSubmenu ? state.isSubmenuOpen : void 0,
466
421
  "aria-controls": state.isSubmenuOpen ? state.submenuId : void 0,
467
422
  "aria-checked": state.role === "menuitem" ? void 0 : state.selected,
468
- "aria-keyshortcuts": typeof state.shortcut === "string" ? state.shortcut : void 0,
423
+ "aria-keyshortcuts": state.keyShortcuts ?? (typeof state.shortcut === "string" ? state.shortcut : void 0),
469
424
  "aria-describedby": state.note ? state.noteId : void 0
470
425
  });
471
426
  const joinClassNames = (...names) => names.filter(Boolean).join(" ") || void 0;
@@ -476,7 +431,7 @@ const joinClassNames = (...names) => names.filter(Boolean).join(" ") || void 0;
476
431
  * `<li role="option">` (override via `as`), whose selection, highlight and density props
477
432
  * `Select` injects; used on its own it renders a static, styled row.
478
433
  */
479
- function MenuItem({ value, children, as, disabled = false, selected = false, highlighted = false, multiple = false, color: colorProp, textColor: textColorProp, size: sizeProp, dense: denseProp, disableGutters = false, divider = false, autoFocus = false, focusVisibleClassName, onSelect, role = "menuitem", startIcon, shortcut, note, onClick, submenu, emptyLabel, secondaryAction, id, className, "data-testid": dataTestid }) {
434
+ function MenuItem({ value, children, as, disabled = false, selected = false, highlighted = false, multiple = false, color: colorProp, textColor: textColorProp, size: sizeProp, dense: denseProp, disableGutters = false, divider = false, autoFocus = false, focusVisibleClassName, onSelect, role = "menuitem", startIcon, shortcut, "aria-keyshortcuts": keyShortcuts, note, onClick, submenu, emptyLabel, secondaryAction, shouldAnnounceSecondaryAction = false, id, className, "data-testid": dataTestid }) {
480
435
  const menu = require_MenuList.useMenuListContext();
481
436
  const isMenu = menu !== null;
482
437
  const { color, size, textColor, dense } = useRowLook({
@@ -582,6 +537,7 @@ function MenuItem({ value, children, as, disabled = false, selected = false, hig
582
537
  isSubmenuOpen,
583
538
  submenuId,
584
539
  shortcut,
540
+ keyShortcuts,
585
541
  note,
586
542
  noteId
587
543
  }),
@@ -622,7 +578,7 @@ function MenuItem({ value, children, as, disabled = false, selected = false, hig
622
578
  role: "none",
623
579
  hasSecondaryAction: true,
624
580
  children: [row, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SecondaryActionSlot, {
625
- "aria-hidden": true,
581
+ "aria-hidden": shouldAnnounceSecondaryAction ? void 0 : true,
626
582
  children: secondaryAction
627
583
  })]
628
584
  });
@@ -636,7 +592,7 @@ function MenuItem({ value, children, as, disabled = false, selected = false, hig
636
592
  children: [
637
593
  row,
638
594
  hasSecondaryAction && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SecondaryActionSlot, {
639
- "aria-hidden": true,
595
+ "aria-hidden": shouldAnnounceSecondaryAction ? void 0 : true,
640
596
  children: secondaryAction
641
597
  }),
642
598
  isSubmenuOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Submenu, {
@@ -670,12 +626,6 @@ Object.defineProperty(exports, "MenuPaper", {
670
626
  return MenuPaper;
671
627
  }
672
628
  });
673
- Object.defineProperty(exports, "isRtl", {
674
- enumerable: true,
675
- get: function() {
676
- return isRtl;
677
- }
678
- });
679
629
  Object.defineProperty(exports, "useMenuPlacement", {
680
630
  enumerable: true,
681
631
  get: function() {
package/dist/MenuItem.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_MenuItem = require("./MenuItem-CfdN4axw.cjs");
2
+ const require_MenuItem = require("./MenuItem-EJ4u73f0.cjs");
3
3
  exports.MenuItem = require_MenuItem.MenuItem;
@@ -1,2 +1,2 @@
1
- import { a as MenuItemSize, i as MenuItemRole, n as MenuItemColor, o as MenuItemTextColor, r as MenuItemProps, t as MenuItem } from "./index-DCmH5f9I.cjs";
1
+ import { a as MenuItemSize, i as MenuItemRole, n as MenuItemColor, o as MenuItemTextColor, r as MenuItemProps, t as MenuItem } from "./index-BSGu9rPv.cjs";
2
2
  export { MenuItem, MenuItemColor, MenuItemProps, MenuItemRole, MenuItemSize, MenuItemTextColor };
@@ -1,2 +1,2 @@
1
- import { a as MenuItemSize, i as MenuItemRole, n as MenuItemColor, o as MenuItemTextColor, r as MenuItemProps, t as MenuItem } from "./index-Cj5Rhh_9.mjs";
1
+ import { a as MenuItemSize, i as MenuItemRole, n as MenuItemColor, o as MenuItemTextColor, r as MenuItemProps, t as MenuItem } from "./index-46mhlgP6.mjs";
2
2
  export { MenuItem, MenuItemColor, MenuItemProps, MenuItemRole, MenuItemSize, MenuItemTextColor };
package/dist/MenuItem.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as MenuItem } from "./MenuItem-BR7ingQx.mjs";
1
+ import { t as MenuItem } from "./MenuItem-C21eR7d6.mjs";
2
2
  export { MenuItem };
@@ -1,6 +1,6 @@
1
1
  const require_src = require("./src-DU81aGy9.cjs");
2
+ const require_theme = require("./theme-DzfwuzMZ.cjs");
2
3
  const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
3
- const require_theme = require("./theme-BxXuXRgQ.cjs");
4
4
  let react = require("react");
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
6
  let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
@@ -1,6 +1,6 @@
1
1
  import { a as src_exports, i as props, o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
2
+ import { n as useDefaultProps } from "./theme-oBfFhJm9.mjs";
2
3
  import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
3
- import { n as useDefaultProps } from "./theme-Z9_QludW.mjs";
4
4
  import { createContext, useContext, useEffect, useMemo, useRef } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region src/Menu/MenuActivationContext.ts
@@ -1,5 +1,5 @@
1
- import { V as Theme } from "./index-CVNJEUwJ.mjs";
2
- import "./index-BVPrG1L0.mjs";
1
+ import { nt as Theme } from "./index-CRQ7XLri.mjs";
2
+ import "./index-vBCN6iAz.mjs";
3
3
  import { SyntheticEvent } from "react";
4
4
  //#region src/Menu/MenuListContext.d.ts
5
5
  type MenuItemValue = string | number;
@@ -1,5 +1,5 @@
1
- import { V as Theme } from "./index-DmJ7yWWi.cjs";
2
- import "./index-DDJuUfL5.cjs";
1
+ import { nt as Theme } from "./index-XN4-ZqTB.cjs";
2
+ import "./index-BhnLFsBv.cjs";
3
3
  import { SyntheticEvent } from "react";
4
4
  //#region src/Menu/MenuListContext.d.ts
5
5
  type MenuItemValue = string | number;
@@ -1,9 +1,10 @@
1
1
  import { o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
2
2
  import { View } from "./View.mjs";
3
+ import { Portal } from "./Portal.mjs";
3
4
  import { Backdrop } from "./Backdrop.mjs";
4
5
  import { FocusTrap } from "./FocusTrap.mjs";
5
- import { Portal } from "./Portal.mjs";
6
- import { useCallback, useEffect, useMemo, useRef } from "react";
6
+ import { t as useMergedRefs } from "./useMergedRefs-BfBckwRY.mjs";
7
+ import { useCallback, useEffect, useRef } from "react";
7
8
  import { jsx, jsxs } from "react/jsx-runtime";
8
9
  //#region src/utils/ownerDocument.ts
9
10
  /**
@@ -180,26 +181,6 @@ function useEventCallback(fn) {
180
181
  return useCallback((...args) => ref.current(...args), []);
181
182
  }
182
183
  //#endregion
183
- //#region src/Modal/hooks/useMergedRefs.ts
184
- function assignRef(ref, value) {
185
- if (typeof ref === "function") ref(value);
186
- else if (ref) ref.current = value;
187
- }
188
- /**
189
- * Merges two refs into a single stable ref callback so one DOM node can be
190
- * tracked by both an internal ref and a forwarded `ref`. Returns `null` when
191
- * both refs are absent, so React skips attaching a callback ref entirely.
192
- */
193
- function useMergedRefs(refA, refB) {
194
- return useMemo(() => {
195
- if (refA == null && refB == null) return null;
196
- return (value) => {
197
- assignRef(refA, value);
198
- assignRef(refB, value);
199
- };
200
- }, [refA, refB]);
201
- }
202
- //#endregion
203
184
  //#region src/Modal/useModal.ts
204
185
  const modalManager = new ModalManager();
205
186
  function getContainer(container) {
@@ -1,8 +1,9 @@
1
1
  const require_src = require("./src-DU81aGy9.cjs");
2
2
  const require_View = require("./View.cjs");
3
+ const require_Portal = require("./Portal.cjs");
3
4
  const require_Backdrop = require("./Backdrop.cjs");
4
5
  const require_FocusTrap = require("./FocusTrap.cjs");
5
- const require_Portal = require("./Portal.cjs");
6
+ const require_useMergedRefs = require("./useMergedRefs-2zTDXgPO.cjs");
6
7
  let react = require("react");
7
8
  let react_jsx_runtime = require("react/jsx-runtime");
8
9
  let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
@@ -181,26 +182,6 @@ function useEventCallback(fn) {
181
182
  return (0, react.useCallback)((...args) => ref.current(...args), []);
182
183
  }
183
184
  //#endregion
184
- //#region src/Modal/hooks/useMergedRefs.ts
185
- function assignRef(ref, value) {
186
- if (typeof ref === "function") ref(value);
187
- else if (ref) ref.current = value;
188
- }
189
- /**
190
- * Merges two refs into a single stable ref callback so one DOM node can be
191
- * tracked by both an internal ref and a forwarded `ref`. Returns `null` when
192
- * both refs are absent, so React skips attaching a callback ref entirely.
193
- */
194
- function useMergedRefs(refA, refB) {
195
- return (0, react.useMemo)(() => {
196
- if (refA == null && refB == null) return null;
197
- return (value) => {
198
- assignRef(refA, value);
199
- assignRef(refB, value);
200
- };
201
- }, [refA, refB]);
202
- }
203
- //#endregion
204
185
  //#region src/Modal/useModal.ts
205
186
  const modalManager = new ModalManager();
206
187
  function getContainer(container) {
@@ -211,7 +192,7 @@ function useModal(parameters) {
211
192
  const modal = (0, react.useRef)({});
212
193
  const mountNodeRef = (0, react.useRef)(null);
213
194
  const modalRef = (0, react.useRef)(null);
214
- const handleRef = useMergedRefs(modalRef, rootRef);
195
+ const handleRef = require_useMergedRefs.useMergedRefs(modalRef, rootRef);
215
196
  const getModal = () => {
216
197
  modal.current.modalRef = modalRef.current;
217
198
  modal.current.mount = mountNodeRef.current;
package/dist/Modal.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_Modal = require("./Modal-CM3osOqj.cjs");
2
+ const require_Modal = require("./Modal-DBw4j0YA.cjs");
3
3
  exports.Modal = require_Modal.Modal;
4
4
  exports.ModalManager = require_Modal.ModalManager;
5
5
  exports.exposeToAria = require_Modal.exposeToAria;
package/dist/Modal.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as hideFromAria, c as ModalScroll, d as UseModalReturnValue, f as useModal, i as exposeToAria, l as ModalCloseReason, n as ManagedModalProps, o as Modal, r as ModalManager, s as ModalProps, t as ManagedModal, u as UseModalParameters } from "./index-DuVNRXP4.cjs";
1
+ import { a as hideFromAria, c as ModalScroll, d as UseModalReturnValue, f as useModal, i as exposeToAria, l as ModalCloseReason, n as ManagedModalProps, o as Modal, r as ModalManager, s as ModalProps, t as ManagedModal, u as UseModalParameters } from "./index-CrQDxJ1D.cjs";
2
2
  export { ManagedModal, ManagedModalProps, Modal, ModalCloseReason, ModalManager, ModalProps, ModalScroll, UseModalParameters, UseModalReturnValue, exposeToAria, hideFromAria, useModal };
package/dist/Modal.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as hideFromAria, c as ModalScroll, d as UseModalReturnValue, f as useModal, i as exposeToAria, l as ModalCloseReason, n as ManagedModalProps, o as Modal, r as ModalManager, s as ModalProps, t as ManagedModal, u as UseModalParameters } from "./index-DqjXDutI.mjs";
1
+ import { a as hideFromAria, c as ModalScroll, d as UseModalReturnValue, f as useModal, i as exposeToAria, l as ModalCloseReason, n as ManagedModalProps, o as Modal, r as ModalManager, s as ModalProps, t as ManagedModal, u as UseModalParameters } from "./index-Bfyz3MDc.mjs";
2
2
  export { ManagedModal, ManagedModalProps, Modal, ModalCloseReason, ModalManager, ModalProps, ModalScroll, UseModalParameters, UseModalReturnValue, exposeToAria, hideFromAria, useModal };
package/dist/Modal.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { a as hideFromAria, i as exposeToAria, n as useModal, r as ModalManager, t as Modal } from "./Modal-BcsyrrpH.mjs";
1
+ import { a as hideFromAria, i as exposeToAria, n as useModal, r as ModalManager, t as Modal } from "./Modal-CEHDej-v.mjs";
2
2
  export { Modal, ModalManager, exposeToAria, hideFromAria, useModal };