@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
@@ -1,8 +1,8 @@
1
1
  import { a as src_exports, i as props, o as styled, t as createShouldForwardProp } from "./src-DLGYOJMh.mjs";
2
+ import { r as useTheme } from "./theme-oBfFhJm9.mjs";
2
3
  import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
3
- import { r as useTheme } from "./theme-Z9_QludW.mjs";
4
+ import { n as getFocusRing, r as getInputMinWidth, t as inputVariantStyles } from "./inputVariantStyles-q_cZsCJg.mjs";
4
5
  import { useFormControl } from "./FormControl.mjs";
5
- import { t as inputVariantStyles } from "./inputVariantStyles-CcqpGfuP.mjs";
6
6
  import { forwardRef, useCallback, useLayoutEffect, useRef } from "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  //#region src/TextInput/TextAreaAutoResize.tsx
@@ -63,10 +63,10 @@ const baseStyle = {
63
63
  alignItems: "center",
64
64
  transition: "border-color 0.15s ease"
65
65
  };
66
- const backgroundStyle = ({ theme, textColor = themeDefault(theme, "accentTextColor", "primary") }) => {
66
+ const backgroundStyle = ({ theme, textColor, color = themeDefault(theme, "color", "primary") }) => {
67
67
  return {
68
68
  backgroundColor: (0, src_exports.get)(theme, `background.${themeDefault(theme, "inputBg", "terminal")}`),
69
- color: (0, src_exports.get)(theme, `text.${textColor}`),
69
+ color: textColor ? (0, src_exports.get)(theme, `text.${textColor}`) : (0, src_exports.get)(theme, `palette.${color}.main`),
70
70
  fontFamily: (0, src_exports.get)(theme, "fonts.body"),
71
71
  fontSize: (0, src_exports.get)(theme, "fontSizes.1"),
72
72
  lineHeight: (0, src_exports.get)(theme, "lineHeights.base")
@@ -75,18 +75,14 @@ const backgroundStyle = ({ theme, textColor = themeDefault(theme, "accentTextCol
75
75
  const colorBorder = ({ theme, color = themeDefault(theme, "color", "primary"), error }) => {
76
76
  return { borderColor: error ? (0, src_exports.get)(theme, "palette.error.main") : (0, src_exports.get)(theme, `palette.${color}.light`) };
77
77
  };
78
- const focusVisibleRing = ({ theme }) => {
79
- return { "&:has(:focus-visible)": {
80
- outline: `2px solid ${(0, src_exports.get)(theme, `palette.${themeDefault(theme, "color", "primary")}.main`)}`,
81
- outlineOffset: "2px"
82
- } };
83
- };
78
+ const focusVisibleRing = ({ theme, color = themeDefault(theme, "color", "primary"), error }) => ({ "&:has(:focus-visible)": getFocusRing(theme, color, error) });
84
79
  const focusWithinColor = ({ theme, color = themeDefault(theme, "color", "primary"), error }) => ({ "&:focus-within": { borderColor: error ? (0, src_exports.get)(theme, "palette.error.main") : (0, src_exports.get)(theme, `palette.${color}.main`) } });
85
80
  const borderRadiusStyle = ({ variant: v = "default", borderRadius, theme }) => {
86
81
  if (v === "underline" || v === "text" || !borderRadius) return {};
87
82
  return { borderRadius: (0, src_exports.get)(theme, `radii.${borderRadius}`) };
88
83
  };
89
- const layoutStyles = ({ fullWidth, disabled }) => ({
84
+ const layoutStyles = ({ theme, fullWidth, disabled }) => ({
85
+ minWidth: getInputMinWidth(theme),
90
86
  ...fullWidth ? {
91
87
  display: "flex",
92
88
  width: "100%"
@@ -176,7 +172,7 @@ function TextInput({ autoComplete, autoFocus, borderRadius, classes, components,
176
172
  const { id, error, disabled, required, size, fullWidth } = fc;
177
173
  const theme = useTheme();
178
174
  const color = fc.color ?? themeDefault(theme, "color", "primary");
179
- const textColor = fc.textColor ?? themeDefault(theme, "accentTextColor", "primary");
175
+ const textColor = fc.textColor;
180
176
  const variant = variantProp ?? themeDefault(theme, "inputVariant", "default");
181
177
  const isAutoResize = resize;
182
178
  const isMultiline = multiline || rows !== void 0 && Number(rows) > 1;
@@ -203,14 +199,18 @@ function TextInput({ autoComplete, autoFocus, borderRadius, classes, components,
203
199
  };
204
200
  let inputElement = /* @__PURE__ */ jsx(StyledInput, {
205
201
  inputComponent: resolvedInputComponent,
206
- inputSize,
202
+ inputSize: inputSize ?? (resolvedInputComponent ? void 0 : 1),
207
203
  ...inputElProps
208
204
  });
209
205
  if (isTextarea) inputElement = isAutoResize ? /* @__PURE__ */ jsx(StyledAutoResizeTextarea, {
210
206
  ...inputElProps,
207
+ cols: 1,
211
208
  minRows: minRows ?? rows,
212
209
  maxRows
213
- }) : /* @__PURE__ */ jsx(StyledTextarea, { ...inputElProps });
210
+ }) : /* @__PURE__ */ jsx(StyledTextarea, {
211
+ ...inputElProps,
212
+ cols: 1
213
+ });
214
214
  return /* @__PURE__ */ jsx(TextInputRoot, {
215
215
  as: components?.Root,
216
216
  color,
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_src = require("../src-DU81aGy9.cjs");
3
- const require_themeDefault = require("../themeDefault-Cebi08Cv.cjs");
4
3
  const require_utils = require("../utils.cjs");
5
- const require_theme = require("../theme-BxXuXRgQ.cjs");
4
+ const require_theme = require("../theme-DzfwuzMZ.cjs");
5
+ const require_themeDefault = require("../themeDefault-Cebi08Cv.cjs");
6
6
  const require_ButtonGroupContext = require("../ButtonGroupContext-NtkVeDVE.cjs");
7
7
  const require_Button = require("../Button.cjs");
8
8
  const require_ToggleButtonGroupContext = require("../ToggleButtonGroupContext-Ewc5Ixas.cjs");
@@ -1,4 +1,4 @@
1
- import { i as ButtonProps } from "../index-XxydXX8l.cjs";
1
+ import { i as ButtonProps } from "../index-BQge4W7L.cjs";
2
2
  import { r as ToggleButtonValue } from "../ToggleButtonGroupContext-10jEsQdg.cjs";
3
3
  //#region src/ToggleButton/ToggleButton/ToggleButton.d.ts
4
4
  interface ToggleButtonProps extends Omit<ButtonProps, 'variant' | 'href' | 'target' | 'rel' | 'value' | 'onChange'> {
@@ -1,4 +1,4 @@
1
- import { i as ButtonProps } from "../index-Bxd9NOWb.mjs";
1
+ import { i as ButtonProps } from "../index-DK3zgGPe.mjs";
2
2
  import { r as ToggleButtonValue } from "../ToggleButtonGroupContext-10jEsQdg.mjs";
3
3
  //#region src/ToggleButton/ToggleButton/ToggleButton.d.ts
4
4
  interface ToggleButtonProps extends Omit<ButtonProps, 'variant' | 'href' | 'target' | 'rel' | 'value' | 'onChange'> {
@@ -1,7 +1,7 @@
1
1
  import { a as src_exports, o as styled } from "../src-DLGYOJMh.mjs";
2
- import { t as themeDefault } from "../themeDefault-Z3KmyIbm.mjs";
3
2
  import { alpha } from "../utils.mjs";
4
- import { r as useTheme } from "../theme-Z9_QludW.mjs";
3
+ import { r as useTheme } from "../theme-oBfFhJm9.mjs";
4
+ import { t as themeDefault } from "../themeDefault-Z3KmyIbm.mjs";
5
5
  import { t as ButtonGroupContext } from "../ButtonGroupContext-DS-kl9lG.mjs";
6
6
  import { Button } from "../Button.mjs";
7
7
  import { t as ToggleButtonGroupContext } from "../ToggleButtonGroupContext-DxIyy8ze.mjs";
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_src = require("../src-DU81aGy9.cjs");
3
+ const require_theme = require("../theme-DzfwuzMZ.cjs");
3
4
  const require_themeDefault = require("../themeDefault-Cebi08Cv.cjs");
4
- const require_theme = require("../theme-BxXuXRgQ.cjs");
5
5
  const require_ButtonGroup = require("../ButtonGroup.cjs");
6
6
  const require_ToggleButtonGroupContext = require("../ToggleButtonGroupContext-Ewc5Ixas.cjs");
7
7
  let react = require("react");
@@ -1,4 +1,4 @@
1
- import { a as ButtonGroupProps } from "../index-BjfPEP_5.cjs";
1
+ import { a as ButtonGroupProps } from "../index-Dk4KuTPB.cjs";
2
2
  import { r as ToggleButtonValue } from "../ToggleButtonGroupContext-10jEsQdg.cjs";
3
3
  //#region src/ToggleButton/ToggleButtonGroup/ToggleButtonGroup.d.ts
4
4
  interface ToggleButtonGroupProps extends Omit<ButtonGroupProps, 'variant' | 'onChange'> {
@@ -1,4 +1,4 @@
1
- import { a as ButtonGroupProps } from "../index-B8DNxyEw.mjs";
1
+ import { a as ButtonGroupProps } from "../index-MWUGpG-Y.mjs";
2
2
  import { r as ToggleButtonValue } from "../ToggleButtonGroupContext-10jEsQdg.mjs";
3
3
  //#region src/ToggleButton/ToggleButtonGroup/ToggleButtonGroup.d.ts
4
4
  interface ToggleButtonGroupProps extends Omit<ButtonGroupProps, 'variant' | 'onChange'> {
@@ -1,6 +1,6 @@
1
1
  import { o as styled } from "../src-DLGYOJMh.mjs";
2
+ import { r as useTheme } from "../theme-oBfFhJm9.mjs";
2
3
  import { t as themeDefault } from "../themeDefault-Z3KmyIbm.mjs";
3
- import { r as useTheme } from "../theme-Z9_QludW.mjs";
4
4
  import { ButtonGroup } from "../ButtonGroup.mjs";
5
5
  import { t as ToggleButtonGroupContext } from "../ToggleButtonGroupContext-DxIyy8ze.mjs";
6
6
  import { useMemo } from "react";
@@ -0,0 +1,270 @@
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_Portal = require("./Portal.cjs");
8
+ const require_useAnchoredPlacement = require("./useAnchoredPlacement-B1FyGoZV.cjs");
9
+ const require_useMergedRefs = require("./useMergedRefs-2zTDXgPO.cjs");
10
+ const require_getTooltipOrigins = require("./getTooltipOrigins-B_7XXtQq.cjs");
11
+ let react = require("react");
12
+ let react_jsx_runtime = require("react/jsx-runtime");
13
+ let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
14
+ //#region src/Tooltip/hooks/useTooltip.ts
15
+ const isKeyboardFocus = (event) => {
16
+ try {
17
+ return event.target.matches(":focus-visible");
18
+ } catch {
19
+ return true;
20
+ }
21
+ };
22
+ /**
23
+ * The state of a tooltip: whether it is open (its own, or its owner's), the timers that open and
24
+ * close it, and the handlers its child and the tooltip itself take. Opening and closing are
25
+ * delayed; moving from the child onto the tooltip does not close it, so its text can be read and
26
+ * selected (WCAG 1.4.13); Escape closes it at once.
27
+ */
28
+ function useTooltip({ isOpen: isOpenProp, defaultOpen, onOpen, onClose, enterDelay, leaveDelay, enterTouchDelay, leaveTouchDelay, shouldOpenOnHover, shouldOpenOnFocus, shouldOpenOnTouch }) {
29
+ const [isOpen, setIsOpen] = require_useControlled.useControlled({
30
+ controlled: isOpenProp,
31
+ default: defaultOpen
32
+ });
33
+ const timer = (0, react.useRef)(void 0);
34
+ const latest = (0, react.useRef)({
35
+ isOpen,
36
+ isOpenProp,
37
+ onOpen,
38
+ onClose
39
+ });
40
+ (0, react.useEffect)(() => {
41
+ latest.current = {
42
+ isOpen,
43
+ isOpenProp,
44
+ onOpen,
45
+ onClose
46
+ };
47
+ });
48
+ const clear = (0, react.useCallback)(() => window.clearTimeout(timer.current), []);
49
+ const ask = (0, react.useCallback)((next, event, delay) => {
50
+ clear();
51
+ timer.current = window.setTimeout(() => {
52
+ const current = latest.current;
53
+ if (current.isOpen === next) return;
54
+ if (current.isOpenProp === void 0) setIsOpen(next);
55
+ (next ? current.onOpen : current.onClose)?.(event);
56
+ }, delay);
57
+ }, [clear, setIsOpen]);
58
+ (0, react.useEffect)(() => clear, [clear]);
59
+ (0, react.useEffect)(() => {
60
+ if (!isOpen) return void 0;
61
+ const handleKeyDown = (event) => {
62
+ if (event.key === "Escape") ask(false, event, 0);
63
+ };
64
+ document.addEventListener("keydown", handleKeyDown);
65
+ return () => document.removeEventListener("keydown", handleKeyDown);
66
+ }, [isOpen, ask]);
67
+ return {
68
+ isOpen,
69
+ childHandlers: {
70
+ onMouseEnter: (event) => {
71
+ if (shouldOpenOnHover) ask(true, event, enterDelay);
72
+ },
73
+ onMouseLeave: (event) => {
74
+ if (shouldOpenOnHover) ask(false, event, leaveDelay);
75
+ },
76
+ onFocus: (event) => {
77
+ if (shouldOpenOnFocus && isKeyboardFocus(event)) ask(true, event, enterDelay);
78
+ },
79
+ onBlur: (event) => {
80
+ if (shouldOpenOnFocus) ask(false, event, leaveDelay);
81
+ },
82
+ onTouchStart: (event) => {
83
+ if (shouldOpenOnTouch) ask(true, event, enterTouchDelay);
84
+ },
85
+ onTouchEnd: (event) => {
86
+ if (shouldOpenOnTouch) ask(false, event, leaveTouchDelay);
87
+ },
88
+ onTouchCancel: (event) => {
89
+ if (shouldOpenOnTouch) ask(false, event, leaveTouchDelay);
90
+ }
91
+ },
92
+ surfaceHandlers: {
93
+ onMouseEnter: () => {
94
+ if (shouldOpenOnHover) clear();
95
+ },
96
+ onMouseLeave: (event) => {
97
+ if (shouldOpenOnHover) ask(false, event, leaveDelay);
98
+ }
99
+ }
100
+ };
101
+ }
102
+ //#endregion
103
+ //#region src/Tooltip/Tooltip.tsx
104
+ const MARGIN = 8;
105
+ const GAP = 8;
106
+ const ARROW = 8;
107
+ const TooltipSurface = require_src.styled("div", {
108
+ name: "Tooltip",
109
+ label: "Tooltip",
110
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
111
+ "layer",
112
+ "borderRadius",
113
+ "bg",
114
+ "textColor"
115
+ ])
116
+ })(({ theme, layer, borderRadius, bg, textColor }) => ({
117
+ position: "fixed",
118
+ top: 0,
119
+ left: 0,
120
+ visibility: "hidden",
121
+ zIndex: theme.zOrder[layer],
122
+ boxSizing: "border-box",
123
+ maxWidth: "20rem",
124
+ padding: `${theme.space[.5]} ${theme.space[1]}`,
125
+ borderRadius: require_getSurfaceRadius.getSurfaceRadius(theme, borderRadius),
126
+ boxShadow: theme.shadows[4],
127
+ backgroundColor: (0, require_src.src_exports.get)(theme, `background.${bg ?? "modal"}`),
128
+ color: (0, require_src.src_exports.get)(theme, `text.${textColor ?? require_themeDefault.themeDefault(theme, "textColor", "initial")}`),
129
+ fontFamily: (0, require_src.src_exports.get)(theme, "fonts.body"),
130
+ fontSize: theme.fontSizes[0],
131
+ lineHeight: (0, require_src.src_exports.get)(theme, "lineHeights.base"),
132
+ overflowWrap: "break-word"
133
+ }));
134
+ const TooltipArrow = require_src.styled("span", {
135
+ name: "Tooltip",
136
+ slot: "arrow",
137
+ label: "TooltipArrow"
138
+ })({
139
+ position: "absolute",
140
+ width: ARROW,
141
+ height: ARROW,
142
+ backgroundColor: "inherit",
143
+ transform: "rotate(45deg)",
144
+ pointerEvents: "none"
145
+ });
146
+ const getArrow = ({ anchorRect, surfaceSize, top, left }) => {
147
+ const { width, height } = surfaceSize;
148
+ if (top + height <= anchorRect.top + 1 || top >= anchorRect.bottom - 1) {
149
+ const side = top + height <= anchorRect.top + 1 ? "top" : "bottom";
150
+ const middle = anchorRect.left + anchorRect.width / 2 - left;
151
+ return {
152
+ side,
153
+ offset: Math.min(Math.max(middle, ARROW), width - ARROW)
154
+ };
155
+ }
156
+ const side = left + width <= anchorRect.left + 1 ? "left" : "right";
157
+ const middle = anchorRect.top + anchorRect.height / 2 - top;
158
+ return {
159
+ side,
160
+ offset: Math.min(Math.max(middle, ARROW), height - ARROW)
161
+ };
162
+ };
163
+ const isSameArrow = (a, b) => a !== null && a.side === b.side && a.offset === b.offset;
164
+ const getArrowStyle = ({ side, offset }) => {
165
+ const half = ARROW / 2;
166
+ if (side === "top") return {
167
+ bottom: -4,
168
+ left: offset - half
169
+ };
170
+ if (side === "bottom") return {
171
+ top: -4,
172
+ left: offset - half
173
+ };
174
+ if (side === "left") return {
175
+ right: -4,
176
+ top: offset - half
177
+ };
178
+ return {
179
+ left: -4,
180
+ top: offset - half
181
+ };
182
+ };
183
+ /**
184
+ * @description A short description of one child, shown on hover, keyboard focus and a long touch -
185
+ * a `role="tooltip"` in a `Portal`, placed beside its child and flipped for want of room. The
186
+ * child is named by it (`aria-label`) or described by it (`aria-describedby`, with
187
+ * `shouldDescribeChild`). It opens and closes after their delays, stays open while the pointer is
188
+ * on the tooltip itself, closes on Escape, and never takes or traps the focus.
189
+ */
190
+ function Tooltip({ children, title, placement: placementProp, hasArrow: hasArrowProp, enterDelay: enterDelayProp, leaveDelay: leaveDelayProp, enterTouchDelay: enterTouchDelayProp, leaveTouchDelay: leaveTouchDelayProp, shouldDescribeChild: shouldDescribeChildProp, isOpen: isOpenProp, defaultOpen = false, onOpen, onClose, shouldOpenOnHover: shouldOpenOnHoverProp, shouldOpenOnFocus: shouldOpenOnFocusProp, shouldOpenOnTouch: shouldOpenOnTouchProp, slots, slotProps, layer: layerProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, className, "data-testid": dataTestid }) {
191
+ const dp = require_theme.useDefaultProps("Tooltip");
192
+ const placement = placementProp ?? dp.placement ?? "top";
193
+ const hasArrow = hasArrowProp ?? dp.hasArrow ?? false;
194
+ const shouldDescribeChild = shouldDescribeChildProp ?? dp.shouldDescribeChild ?? false;
195
+ const layer = layerProp ?? dp.layer ?? "tooltip";
196
+ const borderRadius = borderRadiusProp ?? dp.borderRadius;
197
+ const bg = bgProp ?? dp.bg;
198
+ const textColor = textColorProp ?? dp.textColor;
199
+ const id = (0, react.useId)();
200
+ const { isOpen, childHandlers, surfaceHandlers } = useTooltip({
201
+ isOpen: isOpenProp,
202
+ defaultOpen,
203
+ onOpen,
204
+ onClose,
205
+ enterDelay: enterDelayProp ?? dp.enterDelay ?? 100,
206
+ leaveDelay: leaveDelayProp ?? dp.leaveDelay ?? 0,
207
+ enterTouchDelay: enterTouchDelayProp ?? dp.enterTouchDelay ?? 700,
208
+ leaveTouchDelay: leaveTouchDelayProp ?? dp.leaveTouchDelay ?? 1500,
209
+ shouldOpenOnHover: shouldOpenOnHoverProp ?? dp.shouldOpenOnHover ?? true,
210
+ shouldOpenOnFocus: shouldOpenOnFocusProp ?? dp.shouldOpenOnFocus ?? true,
211
+ shouldOpenOnTouch: shouldOpenOnTouchProp ?? dp.shouldOpenOnTouch ?? true
212
+ });
213
+ const isShown = isOpen && title !== void 0 && title !== null && title !== "";
214
+ const anchorRef = (0, react.useRef)(null);
215
+ const surfaceRef = (0, react.useRef)(null);
216
+ const own = children.props;
217
+ const ref = require_useMergedRefs.useMergedRefs(anchorRef, own.ref);
218
+ const [arrow, setArrow] = (0, react.useState)(null);
219
+ const getOrigins = (0, react.useCallback)((context) => require_getTooltipOrigins.getTooltipOrigins(require_getTooltipOrigins.resolveTooltipPlacement(placement, context), context.isRtl), [placement]);
220
+ const onPlaced = (0, react.useCallback)((placed) => {
221
+ if (!hasArrow) return;
222
+ const next = getArrow(placed);
223
+ setArrow((current) => isSameArrow(current, next) ? current : next);
224
+ }, [hasArrow]);
225
+ require_useAnchoredPlacement.useAnchoredPlacement({
226
+ isOpen: isShown,
227
+ anchorRef,
228
+ surfaceRef,
229
+ getOrigins,
230
+ margin: MARGIN,
231
+ gap: GAP,
232
+ onPlaced
233
+ });
234
+ const handlers = Object.fromEntries(Object.entries(childHandlers).map(([name, handler]) => [name, (event) => {
235
+ own[name]?.(event);
236
+ handler(event);
237
+ }]));
238
+ const ownDescription = own["aria-describedby"];
239
+ const names = typeof title === "string" && own["aria-label"] === void 0 && own["aria-labelledby"] === void 0 ? { "aria-label": title } : {};
240
+ const ariaProps = shouldDescribeChild ? { "aria-describedby": isShown ? [ownDescription, id].filter(Boolean).join(" ") : ownDescription } : names;
241
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react.cloneElement)(children, {
242
+ ...handlers,
243
+ ...ariaProps,
244
+ ref
245
+ }), isShown && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Portal.Portal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(TooltipSurface, {
246
+ ...slotProps?.root,
247
+ as: slots?.root,
248
+ ref: surfaceRef,
249
+ id,
250
+ role: "tooltip",
251
+ layer,
252
+ borderRadius,
253
+ bg,
254
+ textColor,
255
+ className: [slotProps?.root?.className, className].filter(Boolean).join(" ") || void 0,
256
+ "data-testid": dataTestid ?? slotProps?.root?.["data-testid"],
257
+ ...surfaceHandlers,
258
+ children: [title, hasArrow && arrow ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TooltipArrow, {
259
+ ...slotProps?.arrow,
260
+ as: slots?.arrow,
261
+ style: {
262
+ ...slotProps?.arrow?.style,
263
+ ...getArrowStyle(arrow)
264
+ },
265
+ "aria-hidden": "true"
266
+ }) : null]
267
+ }) })] });
268
+ }
269
+ //#endregion
270
+ exports.Tooltip = Tooltip;
@@ -0,0 +1,78 @@
1
+ import { nt as Theme } from "./index-XN4-ZqTB.cjs";
2
+ import { ElementType, HTMLAttributes, ReactElement, ReactNode, SyntheticEvent } from "react";
3
+ //#region src/Tooltip/utils/getTooltipOrigins.d.ts
4
+ /** A side of its child a tooltip sits on - and, after the dash, which end of that side it lines up with. */
5
+ type FixedTooltipPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
6
+ /** A fixed placement, or `auto` - the side with the most room, chosen as it is placed. */
7
+ type TooltipPlacement = FixedTooltipPlacement | 'auto' | 'auto-start' | 'auto-end';
8
+ //#endregion
9
+ //#region src/Tooltip/Tooltip.d.ts
10
+ interface TooltipSlots {
11
+ root?: ElementType;
12
+ arrow?: ElementType;
13
+ }
14
+ type SlotProps = HTMLAttributes<HTMLElement> & {
15
+ 'data-testid'?: string;
16
+ };
17
+ interface TooltipSlotProps {
18
+ root?: SlotProps;
19
+ arrow?: SlotProps;
20
+ }
21
+ interface TooltipProps {
22
+ /** The one element the tooltip is about - it holds a `ref` and takes the handlers. */
23
+ children: ReactElement;
24
+ /** What the tooltip says. Nothing says no tooltip. */
25
+ title?: ReactNode;
26
+ /** The side of the child it sits on, and the end it lines up with; `auto` takes the side with the most room. Flips for want of room. Default: `'top'`. */
27
+ placement?: TooltipPlacement;
28
+ /** Swaps the element a part is drawn as - it keeps its styles. `root` is the surface. */
29
+ slots?: TooltipSlots;
30
+ /** Props for a part: they are put first, so the tooltip's own `ref`, `id`, `role`, pointer handlers and the arrow's position win. */
31
+ slotProps?: TooltipSlotProps;
32
+ /** Draws an arrow towards the child. Default: `false`. */
33
+ hasArrow?: boolean;
34
+ /** How long the pointer or focus rests on the child before it opens, in milliseconds. Default: `100`. */
35
+ enterDelay?: number;
36
+ /** How long after they leave before it closes. Default: `0`. */
37
+ leaveDelay?: number;
38
+ /** How long a touch is held before it opens. Default: `700`. */
39
+ enterTouchDelay?: number;
40
+ /** How long after a touch ends before it closes. Default: `1500`. */
41
+ leaveTouchDelay?: number;
42
+ /** Describes the child (`aria-describedby`, while open) instead of naming it (`aria-label`). Default: `false`. */
43
+ shouldDescribeChild?: boolean;
44
+ /** Whether it is shown. Controlled with `onOpen` and `onClose`. */
45
+ isOpen?: boolean;
46
+ /** Whether it is shown at first, when uncontrolled. Default: `false`. */
47
+ defaultOpen?: boolean;
48
+ /** Fired when it asks to open. */
49
+ onOpen?: (event: Event | SyntheticEvent) => void;
50
+ /** Fired when it asks to close. */
51
+ onClose?: (event: Event | SyntheticEvent) => void;
52
+ /** Opens on hover. Default: `true`. */
53
+ shouldOpenOnHover?: boolean;
54
+ /** Opens on keyboard focus. Default: `true`. */
55
+ shouldOpenOnFocus?: boolean;
56
+ /** Opens on a long touch. Default: `true`. */
57
+ shouldOpenOnTouch?: boolean;
58
+ /** Corner radius, resolves against `theme.radii`. Default: `theme.defaults.surfaceRadius`, else square. */
59
+ borderRadius?: keyof Theme['radii'];
60
+ /** Background, resolves against `theme.background`. Default: `'modal'`. */
61
+ bg?: keyof Theme['background'];
62
+ /** Text color, resolves against `theme.text`. Default: `theme.defaults.textColor`, else `'initial'`. */
63
+ textColor?: keyof Theme['text'];
64
+ /** Stacking layer from `theme.zOrder`. Default: `'tooltip'`. */
65
+ layer?: keyof Theme['zOrder'];
66
+ className?: string;
67
+ 'data-testid'?: string;
68
+ }
69
+ /**
70
+ * @description A short description of one child, shown on hover, keyboard focus and a long touch -
71
+ * a `role="tooltip"` in a `Portal`, placed beside its child and flipped for want of room. The
72
+ * child is named by it (`aria-label`) or described by it (`aria-describedby`, with
73
+ * `shouldDescribeChild`). It opens and closes after their delays, stays open while the pointer is
74
+ * on the tooltip itself, closes on Escape, and never takes or traps the focus.
75
+ */
76
+ declare function Tooltip({ children, title, placement: placementProp, hasArrow: hasArrowProp, enterDelay: enterDelayProp, leaveDelay: leaveDelayProp, enterTouchDelay: enterTouchDelayProp, leaveTouchDelay: leaveTouchDelayProp, shouldDescribeChild: shouldDescribeChildProp, isOpen: isOpenProp, defaultOpen, onOpen, onClose, shouldOpenOnHover: shouldOpenOnHoverProp, shouldOpenOnFocus: shouldOpenOnFocusProp, shouldOpenOnTouch: shouldOpenOnTouchProp, slots, slotProps, layer: layerProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, className, 'data-testid': dataTestid }: Readonly<TooltipProps>): import("react").JSX.Element;
77
+ //#endregion
78
+ export { Tooltip, type TooltipPlacement, TooltipProps, TooltipSlotProps, TooltipSlots };
@@ -0,0 +1,78 @@
1
+ import { nt as Theme } from "./index-CRQ7XLri.mjs";
2
+ import { ElementType, HTMLAttributes, ReactElement, ReactNode, SyntheticEvent } from "react";
3
+ //#region src/Tooltip/utils/getTooltipOrigins.d.ts
4
+ /** A side of its child a tooltip sits on - and, after the dash, which end of that side it lines up with. */
5
+ type FixedTooltipPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
6
+ /** A fixed placement, or `auto` - the side with the most room, chosen as it is placed. */
7
+ type TooltipPlacement = FixedTooltipPlacement | 'auto' | 'auto-start' | 'auto-end';
8
+ //#endregion
9
+ //#region src/Tooltip/Tooltip.d.ts
10
+ interface TooltipSlots {
11
+ root?: ElementType;
12
+ arrow?: ElementType;
13
+ }
14
+ type SlotProps = HTMLAttributes<HTMLElement> & {
15
+ 'data-testid'?: string;
16
+ };
17
+ interface TooltipSlotProps {
18
+ root?: SlotProps;
19
+ arrow?: SlotProps;
20
+ }
21
+ interface TooltipProps {
22
+ /** The one element the tooltip is about - it holds a `ref` and takes the handlers. */
23
+ children: ReactElement;
24
+ /** What the tooltip says. Nothing says no tooltip. */
25
+ title?: ReactNode;
26
+ /** The side of the child it sits on, and the end it lines up with; `auto` takes the side with the most room. Flips for want of room. Default: `'top'`. */
27
+ placement?: TooltipPlacement;
28
+ /** Swaps the element a part is drawn as - it keeps its styles. `root` is the surface. */
29
+ slots?: TooltipSlots;
30
+ /** Props for a part: they are put first, so the tooltip's own `ref`, `id`, `role`, pointer handlers and the arrow's position win. */
31
+ slotProps?: TooltipSlotProps;
32
+ /** Draws an arrow towards the child. Default: `false`. */
33
+ hasArrow?: boolean;
34
+ /** How long the pointer or focus rests on the child before it opens, in milliseconds. Default: `100`. */
35
+ enterDelay?: number;
36
+ /** How long after they leave before it closes. Default: `0`. */
37
+ leaveDelay?: number;
38
+ /** How long a touch is held before it opens. Default: `700`. */
39
+ enterTouchDelay?: number;
40
+ /** How long after a touch ends before it closes. Default: `1500`. */
41
+ leaveTouchDelay?: number;
42
+ /** Describes the child (`aria-describedby`, while open) instead of naming it (`aria-label`). Default: `false`. */
43
+ shouldDescribeChild?: boolean;
44
+ /** Whether it is shown. Controlled with `onOpen` and `onClose`. */
45
+ isOpen?: boolean;
46
+ /** Whether it is shown at first, when uncontrolled. Default: `false`. */
47
+ defaultOpen?: boolean;
48
+ /** Fired when it asks to open. */
49
+ onOpen?: (event: Event | SyntheticEvent) => void;
50
+ /** Fired when it asks to close. */
51
+ onClose?: (event: Event | SyntheticEvent) => void;
52
+ /** Opens on hover. Default: `true`. */
53
+ shouldOpenOnHover?: boolean;
54
+ /** Opens on keyboard focus. Default: `true`. */
55
+ shouldOpenOnFocus?: boolean;
56
+ /** Opens on a long touch. Default: `true`. */
57
+ shouldOpenOnTouch?: boolean;
58
+ /** Corner radius, resolves against `theme.radii`. Default: `theme.defaults.surfaceRadius`, else square. */
59
+ borderRadius?: keyof Theme['radii'];
60
+ /** Background, resolves against `theme.background`. Default: `'modal'`. */
61
+ bg?: keyof Theme['background'];
62
+ /** Text color, resolves against `theme.text`. Default: `theme.defaults.textColor`, else `'initial'`. */
63
+ textColor?: keyof Theme['text'];
64
+ /** Stacking layer from `theme.zOrder`. Default: `'tooltip'`. */
65
+ layer?: keyof Theme['zOrder'];
66
+ className?: string;
67
+ 'data-testid'?: string;
68
+ }
69
+ /**
70
+ * @description A short description of one child, shown on hover, keyboard focus and a long touch -
71
+ * a `role="tooltip"` in a `Portal`, placed beside its child and flipped for want of room. The
72
+ * child is named by it (`aria-label`) or described by it (`aria-describedby`, with
73
+ * `shouldDescribeChild`). It opens and closes after their delays, stays open while the pointer is
74
+ * on the tooltip itself, closes on Escape, and never takes or traps the focus.
75
+ */
76
+ declare function Tooltip({ children, title, placement: placementProp, hasArrow: hasArrowProp, enterDelay: enterDelayProp, leaveDelay: leaveDelayProp, enterTouchDelay: enterTouchDelayProp, leaveTouchDelay: leaveTouchDelayProp, shouldDescribeChild: shouldDescribeChildProp, isOpen: isOpenProp, defaultOpen, onOpen, onClose, shouldOpenOnHover: shouldOpenOnHoverProp, shouldOpenOnFocus: shouldOpenOnFocusProp, shouldOpenOnTouch: shouldOpenOnTouchProp, slots, slotProps, layer: layerProp, borderRadius: borderRadiusProp, bg: bgProp, textColor: textColorProp, className, 'data-testid': dataTestid }: Readonly<TooltipProps>): import("react").JSX.Element;
77
+ //#endregion
78
+ export { Tooltip, type TooltipPlacement, TooltipProps, TooltipSlotProps, TooltipSlots };