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

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 (324) hide show
  1. package/README.md +30 -10
  2. package/dist/AppBar.d.cts +1 -3
  3. package/dist/AppBar.d.mts +1 -3
  4. package/dist/Avatar.cjs +1 -1
  5. package/dist/Avatar.d.cts +1 -3
  6. package/dist/Avatar.d.mts +1 -3
  7. package/dist/Avatar.mjs +1 -1
  8. package/dist/Backdrop.d.cts +1 -1
  9. package/dist/Backdrop.d.mts +1 -1
  10. package/dist/Breadcrumbs.cjs +132 -0
  11. package/dist/Breadcrumbs.d.cts +40 -0
  12. package/dist/Breadcrumbs.d.mts +40 -0
  13. package/dist/Breadcrumbs.mjs +131 -0
  14. package/dist/Button.cjs +1 -1
  15. package/dist/Button.d.cts +1 -1
  16. package/dist/Button.d.mts +1 -1
  17. package/dist/Button.mjs +1 -1
  18. package/dist/ButtonGroup.d.cts +1 -1
  19. package/dist/ButtonGroup.d.mts +1 -1
  20. package/dist/Card.cjs +3 -3
  21. package/dist/Card.d.cts +4 -3
  22. package/dist/Card.d.mts +4 -3
  23. package/dist/Card.mjs +3 -3
  24. package/dist/Checkbox.d.cts +1 -2
  25. package/dist/Checkbox.d.mts +1 -2
  26. package/dist/CircularProgress.d.cts +2 -3
  27. package/dist/CircularProgress.d.mts +2 -3
  28. package/dist/Drawer.d.cts +3 -2
  29. package/dist/Drawer.d.mts +3 -2
  30. package/dist/Flex.d.cts +1 -1
  31. package/dist/Flex.d.mts +1 -1
  32. package/dist/Form.d.cts +1 -1
  33. package/dist/Form.d.mts +1 -1
  34. package/dist/FormControl.cjs +10 -2
  35. package/dist/FormControl.d.cts +9 -2
  36. package/dist/FormControl.d.mts +9 -2
  37. package/dist/FormControl.mjs +10 -2
  38. package/dist/FormHelperText.d.cts +1 -1
  39. package/dist/FormHelperText.d.mts +1 -1
  40. package/dist/FormLabel.cjs +9 -1
  41. package/dist/FormLabel.d.cts +2 -2
  42. package/dist/FormLabel.d.mts +2 -2
  43. package/dist/FormLabel.mjs +10 -2
  44. package/dist/Grid.d.cts +1 -3
  45. package/dist/Grid.d.mts +1 -3
  46. package/dist/{Icon-CH3asUJu.mjs → Icon-BihOAP4u.mjs} +52 -2
  47. package/dist/{Icon-CI6q2Eyi.cjs → Icon-D-EWsBVg.cjs} +52 -2
  48. package/dist/Icon.cjs +1 -1
  49. package/dist/Icon.d.cts +1 -1
  50. package/dist/Icon.d.mts +1 -1
  51. package/dist/Icon.mjs +1 -1
  52. package/dist/Image.d.cts +1 -2
  53. package/dist/Image.d.mts +1 -2
  54. package/dist/InputRange.cjs +675 -0
  55. package/dist/InputRange.d.cts +79 -0
  56. package/dist/InputRange.d.mts +79 -0
  57. package/dist/InputRange.mjs +673 -0
  58. package/dist/LinearProgress.d.cts +2 -3
  59. package/dist/LinearProgress.d.mts +2 -3
  60. package/dist/Link.cjs +1 -1
  61. package/dist/Link.d.cts +1 -1
  62. package/dist/Link.d.mts +1 -1
  63. package/dist/Link.mjs +1 -1
  64. package/dist/Menu/ContextMenu.cjs +146 -0
  65. package/dist/Menu/ContextMenu.d.cts +52 -0
  66. package/dist/Menu/ContextMenu.d.mts +52 -0
  67. package/dist/Menu/ContextMenu.mjs +145 -0
  68. package/dist/Menu/Menu.cjs +3 -0
  69. package/dist/Menu/Menu.d.cts +2 -0
  70. package/dist/Menu/Menu.d.mts +2 -0
  71. package/dist/Menu/Menu.mjs +2 -0
  72. package/dist/Menu/MenuDivider.cjs +29 -0
  73. package/dist/Menu/MenuDivider.d.cts +12 -0
  74. package/dist/Menu/MenuDivider.d.mts +12 -0
  75. package/dist/Menu/MenuDivider.mjs +28 -0
  76. package/dist/Menu/MenuItems.cjs +29 -0
  77. package/dist/Menu/MenuItems.d.cts +2 -0
  78. package/dist/Menu/MenuItems.d.mts +2 -0
  79. package/dist/Menu/MenuItems.mjs +28 -0
  80. package/dist/Menu/MenuList.cjs +3 -0
  81. package/dist/Menu/MenuList.d.cts +38 -0
  82. package/dist/Menu/MenuList.d.mts +38 -0
  83. package/dist/Menu/MenuList.mjs +2 -0
  84. package/dist/Menu-Cgg-sX4W.cjs +173 -0
  85. package/dist/Menu-CrzHc_cn.mjs +168 -0
  86. package/dist/Menu.cjs +13 -0
  87. package/dist/Menu.d.cts +7 -0
  88. package/dist/Menu.d.mts +7 -0
  89. package/dist/Menu.mjs +6 -0
  90. package/dist/MenuItem-BTP7Ijwi.cjs +673 -0
  91. package/dist/MenuItem-DUn4IZKK.mjs +649 -0
  92. package/dist/MenuItem.cjs +2 -148
  93. package/dist/MenuItem.d.cts +2 -52
  94. package/dist/MenuItem.d.mts +2 -52
  95. package/dist/MenuItem.mjs +1 -147
  96. package/dist/MenuList-B7msJ1IG.mjs +187 -0
  97. package/dist/MenuList-D4imLXAa.cjs +223 -0
  98. package/dist/MenuListContext-DKUOhNyw.d.cts +21 -0
  99. package/dist/MenuListContext-x-7lH4CH.d.mts +21 -0
  100. package/dist/Modal.d.cts +1 -1
  101. package/dist/Modal.d.mts +1 -1
  102. package/dist/NativeSelect.cjs +9 -8
  103. package/dist/NativeSelect.d.cts +3 -4
  104. package/dist/NativeSelect.d.mts +3 -4
  105. package/dist/NativeSelect.mjs +9 -8
  106. package/dist/NumberField.cjs +476 -0
  107. package/dist/NumberField.d.cts +74 -0
  108. package/dist/NumberField.d.mts +74 -0
  109. package/dist/NumberField.mjs +474 -0
  110. package/dist/Pagination/PaginationItem.cjs +1 -1
  111. package/dist/Pagination/PaginationItem.d.cts +1 -1
  112. package/dist/Pagination/PaginationItem.d.mts +1 -1
  113. package/dist/Pagination/PaginationItem.mjs +1 -1
  114. package/dist/Pagination.d.cts +2 -2
  115. package/dist/Pagination.d.mts +2 -2
  116. package/dist/Paper.cjs +1 -1
  117. package/dist/Paper.d.cts +2 -1
  118. package/dist/Paper.d.mts +2 -1
  119. package/dist/Paper.mjs +1 -1
  120. package/dist/{Popover-TpwRSORC.cjs → Popover-CiZfgiKE.cjs} +5 -125
  121. package/dist/Popover-QjM5Z1CR.mjs +133 -0
  122. package/dist/Popover.cjs +1 -1
  123. package/dist/Popover.d.cts +6 -7
  124. package/dist/Popover.d.mts +6 -7
  125. package/dist/Popover.mjs +1 -1
  126. package/dist/Pressable.cjs +1 -1
  127. package/dist/Pressable.d.cts +1 -1
  128. package/dist/Pressable.d.mts +1 -1
  129. package/dist/Pressable.mjs +1 -1
  130. package/dist/Quote.d.cts +2 -3
  131. package/dist/Quote.d.mts +2 -3
  132. package/dist/Radio.d.cts +1 -2
  133. package/dist/Radio.d.mts +1 -2
  134. package/dist/Rating.cjs +373 -0
  135. package/dist/Rating.d.cts +57 -0
  136. package/dist/Rating.d.mts +57 -0
  137. package/dist/Rating.mjs +371 -0
  138. package/dist/Select.cjs +5 -4
  139. package/dist/Select.d.cts +3 -4
  140. package/dist/Select.d.mts +3 -4
  141. package/dist/Select.mjs +7 -6
  142. package/dist/Sidebar/Sidebar.d.cts +1 -1
  143. package/dist/Sidebar/Sidebar.d.mts +1 -1
  144. package/dist/Sidebar/SidebarItem.cjs +1 -1
  145. package/dist/Sidebar/SidebarItem.d.cts +3 -4
  146. package/dist/Sidebar/SidebarItem.d.mts +3 -4
  147. package/dist/Sidebar/SidebarItem.mjs +3 -3
  148. package/dist/Skeleton.d.cts +1 -2
  149. package/dist/Skeleton.d.mts +1 -2
  150. package/dist/Switch.cjs +23 -16
  151. package/dist/Switch.d.cts +2 -3
  152. package/dist/Switch.d.mts +2 -3
  153. package/dist/Switch.mjs +25 -18
  154. package/dist/Table/Table.d.cts +2 -3
  155. package/dist/Table/Table.d.mts +2 -3
  156. package/dist/Table/TableBody.d.cts +1 -2
  157. package/dist/Table/TableBody.d.mts +1 -2
  158. package/dist/Table/TableCell.d.cts +1 -1
  159. package/dist/Table/TableCell.d.mts +1 -1
  160. package/dist/Table/TableContainer.d.cts +1 -3
  161. package/dist/Table/TableContainer.d.mts +1 -3
  162. package/dist/Table/TableControl.d.cts +1 -1
  163. package/dist/Table/TableControl.d.mts +1 -1
  164. package/dist/Table/TableControl.mjs +2 -2
  165. package/dist/Table/TableFooter.d.cts +1 -2
  166. package/dist/Table/TableFooter.d.mts +1 -2
  167. package/dist/Table/TableHead.d.cts +1 -2
  168. package/dist/Table/TableHead.d.mts +1 -2
  169. package/dist/Table/TablePagination.d.cts +2 -2
  170. package/dist/Table/TablePagination.d.mts +2 -2
  171. package/dist/Table/TablePaginationActions.cjs +1 -1
  172. package/dist/Table/TablePaginationActions.d.cts +1 -1
  173. package/dist/Table/TablePaginationActions.d.mts +1 -1
  174. package/dist/Table/TablePaginationActions.mjs +1 -1
  175. package/dist/Table/TableRow.d.cts +1 -2
  176. package/dist/Table/TableRow.d.mts +1 -2
  177. package/dist/Table/TableSortLabel.cjs +1 -1
  178. package/dist/Table/TableSortLabel.d.cts +1 -1
  179. package/dist/Table/TableSortLabel.d.mts +1 -1
  180. package/dist/Table/TableSortLabel.mjs +1 -1
  181. package/dist/Table/hooks.d.cts +1 -1
  182. package/dist/Table/hooks.d.mts +1 -1
  183. package/dist/Table.d.cts +5 -5
  184. package/dist/Table.d.mts +5 -5
  185. package/dist/{TableContext-BeCxbtHH.d.cts → TableContext-DhuRf6Wy.d.mts} +1 -1
  186. package/dist/{TableContext-BiRiYkVZ.d.mts → TableContext-Duj1nVG7.d.cts} +1 -1
  187. package/dist/Tabs/Tab.cjs +306 -0
  188. package/dist/Tabs/Tab.d.cts +62 -0
  189. package/dist/Tabs/Tab.d.mts +62 -0
  190. package/dist/Tabs/Tab.mjs +305 -0
  191. package/dist/Tabs/TabContext.cjs +34 -0
  192. package/dist/Tabs/TabContext.d.cts +20 -0
  193. package/dist/Tabs/TabContext.d.mts +20 -0
  194. package/dist/Tabs/TabContext.mjs +33 -0
  195. package/dist/Tabs/TabList.cjs +31 -0
  196. package/dist/Tabs/TabList.d.cts +11 -0
  197. package/dist/Tabs/TabList.d.mts +11 -0
  198. package/dist/Tabs/TabList.mjs +30 -0
  199. package/dist/Tabs/TabPanel.cjs +40 -0
  200. package/dist/Tabs/TabPanel.d.cts +27 -0
  201. package/dist/Tabs/TabPanel.d.mts +27 -0
  202. package/dist/Tabs/TabPanel.mjs +38 -0
  203. package/dist/Tabs/TabScrollButton.cjs +93 -0
  204. package/dist/Tabs/TabScrollButton.d.cts +2 -0
  205. package/dist/Tabs/TabScrollButton.d.mts +2 -0
  206. package/dist/Tabs/TabScrollButton.mjs +91 -0
  207. package/dist/Tabs/Tabs.cjs +3 -0
  208. package/dist/Tabs/Tabs.d.cts +3 -0
  209. package/dist/Tabs/Tabs.d.mts +3 -0
  210. package/dist/Tabs/Tabs.mjs +2 -0
  211. package/dist/Tabs-BTNOJx5v.mjs +634 -0
  212. package/dist/Tabs-D4tWCq78.cjs +646 -0
  213. package/dist/Tabs.cjs +13 -0
  214. package/dist/Tabs.d.cts +8 -0
  215. package/dist/Tabs.d.mts +8 -0
  216. package/dist/Tabs.mjs +7 -0
  217. package/dist/TabsContext-B_XHbjcS.d.cts +6 -0
  218. package/dist/TabsContext-Dn2kqUwr.d.mts +6 -0
  219. package/dist/TabsValueContext-D40zGCpE.cjs +19 -0
  220. package/dist/TabsValueContext-DvL3inf7.mjs +8 -0
  221. package/dist/TextInput.cjs +4 -4
  222. package/dist/TextInput.d.cts +2 -3
  223. package/dist/TextInput.d.mts +2 -3
  224. package/dist/TextInput.mjs +4 -4
  225. package/dist/ToggleButton/ToggleButton.cjs +1 -1
  226. package/dist/ToggleButton/ToggleButton.d.cts +1 -1
  227. package/dist/ToggleButton/ToggleButton.d.mts +1 -1
  228. package/dist/ToggleButton/ToggleButton.mjs +1 -1
  229. package/dist/ToggleButton/ToggleButtonGroup.cjs +1 -1
  230. package/dist/ToggleButton/ToggleButtonGroup.d.cts +1 -1
  231. package/dist/ToggleButton/ToggleButtonGroup.d.mts +1 -1
  232. package/dist/ToggleButton/ToggleButtonGroup.mjs +1 -1
  233. package/dist/TransferList.cjs +356 -0
  234. package/dist/TransferList.d.cts +67 -0
  235. package/dist/TransferList.d.mts +67 -0
  236. package/dist/TransferList.mjs +354 -0
  237. package/dist/Typography.cjs +1 -1
  238. package/dist/Typography.d.cts +2 -2
  239. package/dist/Typography.d.mts +2 -2
  240. package/dist/Typography.mjs +1 -1
  241. package/dist/View.d.cts +1 -1
  242. package/dist/View.d.mts +1 -1
  243. package/dist/catalog.cjs +4568 -0
  244. package/dist/catalog.d.cts +90 -0
  245. package/dist/catalog.d.mts +90 -0
  246. package/dist/catalog.mjs +4567 -0
  247. package/dist/computePopoverPosition-BIprs_xo.mjs +123 -0
  248. package/dist/computePopoverPosition-DiyEOHnU.cjs +128 -0
  249. package/dist/dividerLine-BNljcGlv.cjs +66 -0
  250. package/dist/dividerLine-FahY-M6_.mjs +31 -0
  251. package/dist/engine.d.cts +1 -1
  252. package/dist/engine.d.mts +1 -1
  253. package/dist/index-B1RFybA_.d.mts +72 -0
  254. package/dist/index-B4TeaB7b.d.cts +72 -0
  255. package/dist/{index-BUoVTCqX.d.mts → index-BGbTuHP9.d.mts} +1 -2
  256. package/dist/{index-Celm-8iN.d.cts → index-BHKgEOZJ.d.cts} +2 -3
  257. package/dist/{index-Chg6pSrr.d.mts → index-BQWjh4rK.d.mts} +2 -3
  258. package/dist/{index-B78VkB0-.d.cts → index-BelFIizY.d.cts} +2 -3
  259. package/dist/index-BkzZxHVj.d.mts +35 -0
  260. package/dist/{index-DbEnSf2m.d.cts → index-BrgwkY6z.d.mts} +3 -4
  261. package/dist/{index-Wnv6jCR3.d.mts → index-Bx0-6yeX.d.mts} +1 -2
  262. package/dist/index-BxVTIMnB.d.cts +1 -0
  263. package/dist/{index-BfZuh9c2.d.mts → index-ByYxVl9O.d.mts} +2 -3
  264. package/dist/index-CE5JG1us.d.mts +34 -0
  265. package/dist/{index-BhibLnZ0.d.cts → index-CG_1uPrD.d.mts} +2 -3
  266. package/dist/{themes-RX2UX5gD.d.mts → index-CJhK7JND.d.mts} +265 -8
  267. package/dist/{index-BB-dLv5V.d.mts → index-CQfJZADG.d.cts} +3 -4
  268. package/dist/{index-CxUsrlg1.d.cts → index-CUz2h5xY.d.mts} +2 -3
  269. package/dist/{index-Bid71KeF.d.cts → index-CbFaWtjK.d.mts} +2 -2
  270. package/dist/{index-DdqdSOct.d.cts → index-ChXeKJCk.d.cts} +1 -2
  271. package/dist/index-CknoXDLQ.d.cts +35 -0
  272. package/dist/{index-BSqet8aO.d.cts → index-ClZyaZrR.d.mts} +2 -3
  273. package/dist/{index-DXvQ-JVZ.d.mts → index-DAwcmIjN.d.cts} +2 -3
  274. package/dist/index-DGnXJwLj.d.mts +72 -0
  275. package/dist/{themes-Kbk9h5cN.d.cts → index-DJ0f69wh.d.cts} +262 -5
  276. package/dist/index-DWjz5ZzG.d.cts +72 -0
  277. package/dist/{index-DNwF3DUX.d.cts → index-DYF8sRE-.d.cts} +2 -3
  278. package/dist/index-DaIIo5QU.d.mts +1 -0
  279. package/dist/{index-CrN4MSUF.d.cts → index-DchHf5cF.d.cts} +1 -1
  280. package/dist/{index-S-ClM6WM.d.mts → index-DtYjdBvO.d.cts} +2 -2
  281. package/dist/{index-Ctqajtac.d.cts → index-Dv_fk1_F.d.cts} +27 -3
  282. package/dist/{index-smqjMLAZ.d.mts → index-K5exjvnX.d.cts} +2 -3
  283. package/dist/index-KnXhlKMr.d.cts +34 -0
  284. package/dist/index-WHFhjfgy.d.cts +98 -0
  285. package/dist/{index-GpnmW6vu.d.mts → index-YKrfFC_I.d.cts} +2 -3
  286. package/dist/index-bpnLB_4K.d.mts +98 -0
  287. package/dist/{index-VOsBSWEu.d.mts → index-h4dYtVrp.d.mts} +1 -1
  288. package/dist/{index-DO9J-Fla.d.mts → index-ha1WjSZ5.d.mts} +27 -3
  289. package/dist/{index-Belxmt1X.d.cts → index-nqUA_6J_.d.cts} +1 -2
  290. package/dist/{index-nc4Sxiy9.d.mts → index-pTNq3iQn.d.mts} +2 -3
  291. package/dist/index.d.cts +1 -2
  292. package/dist/index.d.mts +1 -2
  293. package/dist/isRtl-BJDtm86G.mjs +7 -0
  294. package/dist/isRtl-DTkYHRPo.cjs +12 -0
  295. package/dist/precision-B1lhxnnO.mjs +25 -0
  296. package/dist/precision-B58cTPB2.cjs +48 -0
  297. package/dist/style.cjs +1 -1
  298. package/dist/style.d.cts +2 -2
  299. package/dist/style.d.mts +2 -2
  300. package/dist/style.mjs +1 -1
  301. package/dist/surfaceSystem-BGQBoXv_.cjs +38 -0
  302. package/dist/surfaceSystem-D8TbmKy3.mjs +21 -0
  303. package/dist/theme-BxXuXRgQ.cjs +137 -0
  304. package/dist/theme-Z9_QludW.mjs +102 -0
  305. package/dist/theme.cjs +25 -24
  306. package/dist/theme.d.cts +3 -3
  307. package/dist/theme.d.mts +3 -3
  308. package/dist/theme.mjs +2 -1
  309. package/dist/{theme-CDVxig_g.mjs → themes-L-dE7_ck.mjs} +10 -110
  310. package/dist/{theme-BXlAP3xf.cjs → themes-gd6tcmqS.cjs} +0 -136
  311. package/dist/useControlled-C666KpQ0.cjs +18 -0
  312. package/dist/useControlled-CBRLsO-H.mjs +13 -0
  313. package/dist/{useTablePagination-COTiNH_8.d.mts → useTablePagination-C-u3ru4N.d.cts} +1 -1
  314. package/dist/{useTablePagination-WFkaUZu8.d.cts → useTablePagination-D-39ZmQh.d.mts} +1 -1
  315. package/package.json +83 -2
  316. package/dist/Popover-DwnSLpp1.mjs +0 -253
  317. package/dist/index-B_dKjEDR.d.mts +0 -23
  318. package/dist/index-C1WqEDtQ.d.mts +0 -69
  319. package/dist/index-CA7HnbtH.d.cts +0 -21
  320. package/dist/index-CKZaErxJ.d.mts +0 -21
  321. package/dist/index-DBUwu65Z.d.cts +0 -69
  322. package/dist/index-DzQJSYIh.d.cts +0 -23
  323. package/dist/index-cuv3o-L7.d.mts +0 -34
  324. package/dist/index-nB94D7UM.d.cts +0 -34
@@ -1,6 +1,7 @@
1
1
  const require_src = require("./src-DU81aGy9.cjs");
2
- const require_theme = require("./theme-BXlAP3xf.cjs");
2
+ const require_theme = require("./theme-BxXuXRgQ.cjs");
3
3
  const require_Paper = require("./Paper.cjs");
4
+ const require_computePopoverPosition = require("./computePopoverPosition-DiyEOHnU.cjs");
4
5
  const require_Modal = require("./Modal-CM3osOqj.cjs");
5
6
  let react = require("react");
6
7
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -11,128 +12,6 @@ function resolveAnchorEl(anchorEl) {
11
12
  return (typeof anchorEl === "function" ? anchorEl() : anchorEl) ?? null;
12
13
  }
13
14
  //#endregion
14
- //#region src/Popover/utils/getOffset.ts
15
- /** Vertical offset within a rect for an anchor/transform origin keyword or explicit px. */
16
- function getOffsetTop(rect, vertical) {
17
- if (typeof vertical === "number") return vertical;
18
- if (vertical === "center") return rect.height / 2;
19
- if (vertical === "bottom") return rect.height;
20
- return 0;
21
- }
22
- /** Horizontal offset within a rect for an anchor/transform origin keyword or explicit px. */
23
- function getOffsetLeft(rect, horizontal) {
24
- if (typeof horizontal === "number") return horizontal;
25
- if (horizontal === "center") return rect.width / 2;
26
- if (horizontal === "right") return rect.width;
27
- return 0;
28
- }
29
- //#endregion
30
- //#region src/Popover/utils/getTransformOriginValue.ts
31
- /** Serializes a resolved transform origin (in px) to a CSS `transform-origin` value. */
32
- function getTransformOriginValue(origin) {
33
- return `${origin.horizontal}px ${origin.vertical}px`;
34
- }
35
- //#endregion
36
- //#region src/Popover/utils/computePopoverPosition.ts
37
- /** Mirrors a keyword origin to the opposite edge; numbers and `center` are unchanged. */
38
- function flipVertical(origin) {
39
- if (origin === "top") return "bottom";
40
- if (origin === "bottom") return "top";
41
- return origin;
42
- }
43
- function flipHorizontal(origin) {
44
- if (origin === "left") return "right";
45
- if (origin === "right") return "left";
46
- return origin;
47
- }
48
- function resolveAxis({ anchorStart, anchorSize, anchorOrigin, transformOrigin, paperSize, viewportSize, margin, offset, flip }) {
49
- const preferredTransform = offset(paperSize, transformOrigin);
50
- const preferredPosition = anchorStart + offset(anchorSize, anchorOrigin) - preferredTransform;
51
- let position = preferredPosition;
52
- let transformOffset = preferredTransform;
53
- if (margin != null) {
54
- const fits = (candidate) => candidate >= margin && candidate + paperSize <= viewportSize - margin;
55
- if (!fits(preferredPosition)) {
56
- const flippedTransform = offset(paperSize, flip(transformOrigin));
57
- const flippedPosition = anchorStart + offset(anchorSize, flip(anchorOrigin)) - flippedTransform;
58
- if (fits(flippedPosition)) {
59
- position = flippedPosition;
60
- transformOffset = flippedTransform;
61
- }
62
- }
63
- if (position < margin) {
64
- const diff = position - margin;
65
- position -= diff;
66
- transformOffset += diff;
67
- } else if (position + paperSize > viewportSize - margin) {
68
- const diff = position + paperSize - (viewportSize - margin);
69
- position -= diff;
70
- transformOffset += diff;
71
- }
72
- }
73
- return {
74
- position,
75
- transformOffset
76
- };
77
- }
78
- /**
79
- * Places the paper so its `transformOrigin` meets the anchor's `anchorOrigin`, flipping
80
- * to the opposite side at a viewport edge and clamping as a fallback. Returns `null`
81
- * coordinates for `anchorReference === 'none'`.
82
- */
83
- function computePopoverPosition(params) {
84
- const { anchorReference, anchorRect, anchorPosition, paperRect, anchorOrigin, transformOrigin, viewport, marginThreshold } = params;
85
- if (anchorReference === "none") return {
86
- top: null,
87
- left: null,
88
- transformOrigin: getTransformOriginValue({
89
- vertical: getOffsetTop(paperRect, transformOrigin.vertical),
90
- horizontal: getOffsetLeft(paperRect, transformOrigin.horizontal)
91
- })
92
- };
93
- const rect = anchorReference === "anchorPosition" ? {
94
- top: anchorPosition?.top ?? 0,
95
- left: anchorPosition?.left ?? 0,
96
- width: 0,
97
- height: 0
98
- } : anchorRect ?? {
99
- top: 0,
100
- left: 0,
101
- width: 0,
102
- height: 0
103
- };
104
- const vertical = resolveAxis({
105
- anchorStart: rect.top,
106
- anchorSize: rect.height,
107
- anchorOrigin: anchorOrigin.vertical,
108
- transformOrigin: transformOrigin.vertical,
109
- paperSize: paperRect.height,
110
- viewportSize: viewport.height,
111
- margin: marginThreshold,
112
- offset: (size, origin) => getOffsetTop({ height: size }, origin),
113
- flip: (origin) => flipVertical(origin)
114
- });
115
- const horizontal = resolveAxis({
116
- anchorStart: rect.left,
117
- anchorSize: rect.width,
118
- anchorOrigin: anchorOrigin.horizontal,
119
- transformOrigin: transformOrigin.horizontal,
120
- paperSize: paperRect.width,
121
- viewportSize: viewport.width,
122
- margin: marginThreshold,
123
- offset: (size, origin) => getOffsetLeft({ width: size }, origin),
124
- flip: (origin) => flipHorizontal(origin)
125
- });
126
- return {
127
- top: Math.floor(vertical.position),
128
- left: Math.floor(horizontal.position),
129
- transformOrigin: getTransformOriginValue({
130
- vertical: vertical.transformOffset,
131
- horizontal: horizontal.transformOffset
132
- })
133
- };
134
- }
135
- //#endregion
136
15
  //#region src/Popover/Popover.tsx
137
16
  const ANCHOR_ORIGIN_DEFAULT = {
138
17
  vertical: "top",
@@ -176,9 +55,10 @@ function Popover({ open, children, anchorEl = null, anchorReference = "anchorEl"
176
55
  const element = positionerRef.current;
177
56
  if (!element) return;
178
57
  const resolved = resolveAnchorEl(anchorEl);
179
- const positioning = computePopoverPosition({
58
+ const anchorRect = anchorReference === "anchorEl" && resolved ? resolved.getBoundingClientRect() : null;
59
+ const positioning = require_computePopoverPosition.computePopoverPosition({
180
60
  anchorReference,
181
- anchorRect: anchorReference === "anchorEl" && resolved ? resolved.getBoundingClientRect() : null,
61
+ anchorRect,
182
62
  anchorPosition: anchorTop != null && anchorLeft != null ? {
183
63
  top: anchorTop,
184
64
  left: anchorLeft
@@ -0,0 +1,133 @@
1
+ import { o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
2
+ import { r as useTheme } from "./theme-Z9_QludW.mjs";
3
+ import { Paper } from "./Paper.mjs";
4
+ import { t as computePopoverPosition } from "./computePopoverPosition-BIprs_xo.mjs";
5
+ import { t as Modal } from "./Modal-BcsyrrpH.mjs";
6
+ import { useCallback, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ //#region src/Popover/utils/resolveAnchorEl.ts
9
+ /** Resolves the `anchorEl` prop, which may be an element or a function returning one. */
10
+ function resolveAnchorEl(anchorEl) {
11
+ return (typeof anchorEl === "function" ? anchorEl() : anchorEl) ?? null;
12
+ }
13
+ //#endregion
14
+ //#region src/Popover/Popover.tsx
15
+ const ANCHOR_ORIGIN_DEFAULT = {
16
+ vertical: "top",
17
+ horizontal: "left"
18
+ };
19
+ const Positioner = styled("div", {
20
+ name: "Popover",
21
+ slot: "positioner",
22
+ label: "PopoverPositioner",
23
+ shouldForwardProp: createShouldForwardProp(["isPositioned"])
24
+ })(({ isPositioned }) => ({
25
+ position: "absolute",
26
+ ...isPositioned ? {} : { opacity: 0 }
27
+ }));
28
+ const Surface = styled(Paper, {
29
+ name: "Popover",
30
+ label: "Popover"
31
+ })({
32
+ overflowY: "auto",
33
+ overflowX: "hidden",
34
+ minWidth: 16,
35
+ minHeight: 16,
36
+ maxWidth: "calc(100vw - 32px)",
37
+ maxHeight: "calc(100vh - 32px)",
38
+ outline: 0
39
+ });
40
+ /**
41
+ * @description Positions its content next to an anchor, portaled above the page.
42
+ * Built on `Modal`, so it inherits the portal, optional backdrop, focus management,
43
+ * scroll lock, and Escape/click-away close - then adds anchor positioning
44
+ * (`anchorOrigin`/`transformOrigin`/`marginThreshold`).
45
+ */
46
+ function Popover({ open, children, anchorEl = null, anchorReference = "anchorEl", anchorPosition, anchorOrigin = ANCHOR_ORIGIN_DEFAULT, transformOrigin = ANCHOR_ORIGIN_DEFAULT, onClose, elevation = 8, marginThreshold = 2, container, action, slotProps, hasBackdrop = false, disableScrollLock = false, disableAriaHidden = false, shouldAutoFocus = true, shouldTrapFocus = true, shouldEnforceFocus = true, shouldRestoreFocus = true, shouldKeepMounted = false, layer = "modal" }) {
47
+ const theme = useTheme();
48
+ const positionerRef = useRef(null);
49
+ const [isPositioned, setIsPositioned] = useState(false);
50
+ const anchorTop = anchorPosition?.top;
51
+ const anchorLeft = anchorPosition?.left;
52
+ const marginThresholdPx = marginThreshold == null ? null : Number.parseFloat(String(theme.space[marginThreshold]));
53
+ const setPositioningStyles = useCallback(() => {
54
+ const element = positionerRef.current;
55
+ if (!element) return;
56
+ const resolved = resolveAnchorEl(anchorEl);
57
+ const anchorRect = anchorReference === "anchorEl" && resolved ? resolved.getBoundingClientRect() : null;
58
+ const positioning = computePopoverPosition({
59
+ anchorReference,
60
+ anchorRect,
61
+ anchorPosition: anchorTop != null && anchorLeft != null ? {
62
+ top: anchorTop,
63
+ left: anchorLeft
64
+ } : void 0,
65
+ paperRect: {
66
+ width: element.offsetWidth,
67
+ height: element.offsetHeight
68
+ },
69
+ anchorOrigin,
70
+ transformOrigin,
71
+ viewport: {
72
+ width: window.innerWidth,
73
+ height: window.innerHeight
74
+ },
75
+ marginThreshold: marginThresholdPx
76
+ });
77
+ if (positioning.top !== null) element.style.top = `${positioning.top}px`;
78
+ if (positioning.left !== null) element.style.left = `${positioning.left}px`;
79
+ element.style.transformOrigin = positioning.transformOrigin;
80
+ setIsPositioned(true);
81
+ }, [
82
+ anchorEl,
83
+ anchorReference,
84
+ anchorTop,
85
+ anchorLeft,
86
+ anchorOrigin,
87
+ transformOrigin,
88
+ marginThresholdPx
89
+ ]);
90
+ useLayoutEffect(() => {
91
+ if (open) setPositioningStyles();
92
+ });
93
+ useEffect(() => {
94
+ if (!open) return;
95
+ const handle = () => setPositioningStyles();
96
+ window.addEventListener("resize", handle);
97
+ if (disableScrollLock) window.addEventListener("scroll", handle, true);
98
+ return () => {
99
+ window.removeEventListener("resize", handle);
100
+ window.removeEventListener("scroll", handle, true);
101
+ };
102
+ }, [
103
+ open,
104
+ disableScrollLock,
105
+ setPositioningStyles
106
+ ]);
107
+ useImperativeHandle(action, () => ({ updatePosition: setPositioningStyles }), [setPositioningStyles]);
108
+ return /* @__PURE__ */ jsx(Modal, {
109
+ isOpen: open,
110
+ onClose,
111
+ hasBackdrop,
112
+ shouldKeepMounted,
113
+ shouldLockScroll: !disableScrollLock,
114
+ disableAriaHidden,
115
+ shouldAutoFocus,
116
+ shouldTrapFocus,
117
+ shouldEnforceFocus,
118
+ shouldRestoreFocus,
119
+ portalContainer: container,
120
+ layer,
121
+ children: /* @__PURE__ */ jsx(Positioner, {
122
+ ref: positionerRef,
123
+ isPositioned,
124
+ children: /* @__PURE__ */ jsx(Surface, {
125
+ elevation,
126
+ ...slotProps?.paper,
127
+ children
128
+ })
129
+ })
130
+ });
131
+ }
132
+ //#endregion
133
+ export { Popover as t };
package/dist/Popover.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_Popover = require("./Popover-TpwRSORC.cjs");
2
+ const require_Popover = require("./Popover-CiZfgiKE.cjs");
3
3
  exports.Popover = require_Popover.Popover;
@@ -1,11 +1,7 @@
1
- import { T as Theme } from "./themes-Kbk9h5cN.cjs";
2
- import "./index-DBUwu65Z.cjs";
3
- import { n as PaperElevation, r as PaperProps } from "./index-DzQJSYIh.cjs";
4
- import { l as ModalCloseReason } from "./index-Belxmt1X.cjs";
1
+ import { Gt as PaperElevation, Kt as PaperProps, W as Theme } from "./index-DJ0f69wh.cjs";
2
+ import "./index-BxVTIMnB.cjs";
3
+ import { l as ModalCloseReason } from "./index-nqUA_6J_.cjs";
5
4
  import { ReactNode, Ref } from "react";
6
- //#region src/Popover/utils/resolveAnchorEl.d.ts
7
- type PopoverAnchorEl = HTMLElement | (() => HTMLElement | null) | null;
8
- //#endregion
9
5
  //#region src/Popover/utils/getOffset.d.ts
10
6
  type PopoverVerticalOrigin = 'top' | 'center' | 'bottom' | number;
11
7
  type PopoverHorizontalOrigin = 'left' | 'center' | 'right' | number;
@@ -21,6 +17,9 @@ interface PopoverPosition {
21
17
  left: number;
22
18
  }
23
19
  //#endregion
20
+ //#region src/Popover/utils/resolveAnchorEl.d.ts
21
+ type PopoverAnchorEl = HTMLElement | (() => HTMLElement | null) | null;
22
+ //#endregion
24
23
  //#region src/Popover/Popover.d.ts
25
24
  interface PopoverActions {
26
25
  /** Recomputes the popover's position against its anchor. */
@@ -1,11 +1,7 @@
1
- import { T as Theme } from "./themes-RX2UX5gD.mjs";
2
- import "./index-C1WqEDtQ.mjs";
3
- import { n as PaperElevation, r as PaperProps } from "./index-B_dKjEDR.mjs";
4
- import { l as ModalCloseReason } from "./index-Wnv6jCR3.mjs";
1
+ import { Gt as PaperElevation, Kt as PaperProps, W as Theme } from "./index-CJhK7JND.mjs";
2
+ import "./index-DaIIo5QU.mjs";
3
+ import { l as ModalCloseReason } from "./index-Bx0-6yeX.mjs";
5
4
  import { ReactNode, Ref } from "react";
6
- //#region src/Popover/utils/resolveAnchorEl.d.ts
7
- type PopoverAnchorEl = HTMLElement | (() => HTMLElement | null) | null;
8
- //#endregion
9
5
  //#region src/Popover/utils/getOffset.d.ts
10
6
  type PopoverVerticalOrigin = 'top' | 'center' | 'bottom' | number;
11
7
  type PopoverHorizontalOrigin = 'left' | 'center' | 'right' | number;
@@ -21,6 +17,9 @@ interface PopoverPosition {
21
17
  left: number;
22
18
  }
23
19
  //#endregion
20
+ //#region src/Popover/utils/resolveAnchorEl.d.ts
21
+ type PopoverAnchorEl = HTMLElement | (() => HTMLElement | null) | null;
22
+ //#endregion
24
23
  //#region src/Popover/Popover.d.ts
25
24
  interface PopoverActions {
26
25
  /** Recomputes the popover's position against its anchor. */
package/dist/Popover.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as Popover } from "./Popover-DwnSLpp1.mjs";
1
+ import { t as Popover } from "./Popover-QjM5Z1CR.mjs";
2
2
  export { Popover };
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_src = require("./src-DU81aGy9.cjs");
3
3
  const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
4
4
  const require_utils = require("./utils.cjs");
5
- const require_theme = require("./theme-BXlAP3xf.cjs");
5
+ const require_theme = require("./theme-BxXuXRgQ.cjs");
6
6
  require("react");
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
@@ -1,2 +1,2 @@
1
- import { i as PressableProps, n as PressableColor, r as PressableFeedback, t as Pressable } from "./index-CxUsrlg1.cjs";
1
+ import { i as PressableProps, n as PressableColor, r as PressableFeedback, t as Pressable } from "./index-YKrfFC_I.cjs";
2
2
  export { Pressable, PressableColor, PressableFeedback, PressableProps };
@@ -1,2 +1,2 @@
1
- import { i as PressableProps, n as PressableColor, r as PressableFeedback, t as Pressable } from "./index-GpnmW6vu.mjs";
1
+ import { i as PressableProps, n as PressableColor, r as PressableFeedback, t as Pressable } from "./index-CUz2h5xY.mjs";
2
2
  export { Pressable, PressableColor, PressableFeedback, PressableProps };
@@ -1,7 +1,7 @@
1
1
  import { a as src_exports, i as props, o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
2
2
  import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
3
3
  import { alpha } from "./utils.mjs";
4
- import { n as useDefaultProps, r as useTheme } from "./theme-CDVxig_g.mjs";
4
+ import { n as useDefaultProps, r as useTheme } from "./theme-Z9_QludW.mjs";
5
5
  import "react";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  //#region src/Pressable/Pressable.tsx
package/dist/Quote.d.cts CHANGED
@@ -1,6 +1,5 @@
1
- import { T as Theme } from "./themes-Kbk9h5cN.cjs";
2
- import "./index-DBUwu65Z.cjs";
3
- import { s as ViewProps } from "./index-nB94D7UM.cjs";
1
+ import { W as Theme, nn as ViewProps } from "./index-DJ0f69wh.cjs";
2
+ import "./index-DchHf5cF.cjs";
4
3
  //#region src/Quote/Quote.d.ts
5
4
  type QuoteProps = ViewProps;
6
5
  /** A View with a 2px primary left-border - used for terminal readouts and markdown blockquotes. */
package/dist/Quote.d.mts CHANGED
@@ -1,6 +1,5 @@
1
- import { T as Theme } from "./themes-RX2UX5gD.mjs";
2
- import "./index-C1WqEDtQ.mjs";
3
- import { s as ViewProps } from "./index-cuv3o-L7.mjs";
1
+ import { W as Theme, nn as ViewProps } from "./index-CJhK7JND.mjs";
2
+ import "./index-h4dYtVrp.mjs";
4
3
  //#region src/Quote/Quote.d.ts
5
4
  type QuoteProps = ViewProps;
6
5
  /** A View with a 2px primary left-border - used for terminal readouts and markdown blockquotes. */
package/dist/Radio.d.cts CHANGED
@@ -1,5 +1,4 @@
1
- import { T as Theme, x as PaletteColor } from "./themes-Kbk9h5cN.cjs";
2
- import "./index-DBUwu65Z.cjs";
1
+ import { P as PaletteColor, W as Theme } from "./index-DJ0f69wh.cjs";
3
2
  import { ChangeEvent, InputHTMLAttributes, ReactNode } from "react";
4
3
  import { SpaceProps } from "@soroush.tech/styled-system";
5
4
  //#region src/Radio/Radio.d.ts
package/dist/Radio.d.mts CHANGED
@@ -1,5 +1,4 @@
1
- import { T as Theme, x as PaletteColor } from "./themes-RX2UX5gD.mjs";
2
- import "./index-C1WqEDtQ.mjs";
1
+ import { P as PaletteColor, W as Theme } from "./index-CJhK7JND.mjs";
3
2
  import { SpaceProps } from "@soroush.tech/styled-system";
4
3
  import { ChangeEvent, InputHTMLAttributes, ReactNode } from "react";
5
4
  //#region src/Radio/Radio.d.ts