@bigbinary/neeto-atoms 1.0.97 → 1.0.99

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 (331) hide show
  1. package/dist/{Alert-CQ7lMpGp.js → Alert-CydF7eEs.js} +9 -31
  2. package/dist/Alert-CydF7eEs.js.map +1 -0
  3. package/dist/{Combobox-CKR_H-QS.js → Combobox-DriZMj4f.js} +300 -5017
  4. package/dist/Combobox-DriZMj4f.js.map +1 -0
  5. package/dist/{Dialog-BOcBeB8v.js → Dialog-D8C0-nEo.js} +10 -31
  6. package/dist/Dialog-D8C0-nEo.js.map +1 -0
  7. package/dist/DialogTrigger-a3diAOif.js +992 -0
  8. package/dist/DialogTrigger-a3diAOif.js.map +1 -0
  9. package/dist/{Select-Bc0D3byr.js → Select-Dng-cXLj.js} +2 -2
  10. package/dist/{Select-Bc0D3byr.js.map → Select-Dng-cXLj.js.map} +1 -1
  11. package/dist/{Sheet-Bw8GVQPS.js → Sheet-D1MWtg1q.js} +9 -33
  12. package/dist/Sheet-D1MWtg1q.js.map +1 -0
  13. package/dist/{button-CrEMzWKw.js → button-CePY5zne.js} +2 -2
  14. package/dist/button-CePY5zne.js.map +1 -0
  15. package/dist/cjs/{Alert-CxctOMOk.js → Alert-BdZVGiON.js} +9 -31
  16. package/dist/cjs/Alert-BdZVGiON.js.map +1 -0
  17. package/dist/cjs/Combobox-BE8LT4yq.js +5501 -0
  18. package/dist/cjs/Combobox-BE8LT4yq.js.map +1 -0
  19. package/dist/cjs/{Dialog-CBSuKeu_.js → Dialog-DNv7j7ts.js} +10 -31
  20. package/dist/cjs/Dialog-DNv7j7ts.js.map +1 -0
  21. package/dist/cjs/DialogTrigger-B0Q6yIrx.js +1026 -0
  22. package/dist/cjs/DialogTrigger-B0Q6yIrx.js.map +1 -0
  23. package/dist/cjs/{Select-DVDECeJb.js → Select-gItId3pj.js} +2 -2
  24. package/dist/cjs/{Select-DVDECeJb.js.map → Select-gItId3pj.js.map} +1 -1
  25. package/dist/cjs/{Sheet-By1W1pFD.js → Sheet-D-NWMprq.js} +9 -33
  26. package/dist/cjs/Sheet-D-NWMprq.js.map +1 -0
  27. package/dist/cjs/{button-CMl9rLXi.js → button-CSBhDSDJ.js} +2 -2
  28. package/dist/cjs/button-CSBhDSDJ.js.map +1 -0
  29. package/dist/cjs/components/Alert.js +22 -18
  30. package/dist/cjs/components/Alert.js.map +1 -1
  31. package/dist/cjs/components/Avatar.js +4 -3
  32. package/dist/cjs/components/Avatar.js.map +1 -1
  33. package/dist/cjs/components/Button.js +5 -4
  34. package/dist/cjs/components/Button.js.map +1 -1
  35. package/dist/cjs/components/Checkbox.js +5 -4
  36. package/dist/cjs/components/Checkbox.js.map +1 -1
  37. package/dist/cjs/components/ColorPicker.js +4 -3
  38. package/dist/cjs/components/ColorPicker.js.map +1 -1
  39. package/dist/cjs/components/DataTable.js +6 -5
  40. package/dist/cjs/components/DataTable.js.map +1 -1
  41. package/dist/cjs/components/DatePicker.js +5 -4
  42. package/dist/cjs/components/DatePicker.js.map +1 -1
  43. package/dist/cjs/components/Dialog.js +10 -16
  44. package/dist/cjs/components/Dialog.js.map +1 -1
  45. package/dist/cjs/components/DropdownMenu.js +6 -5
  46. package/dist/cjs/components/DropdownMenu.js.map +1 -1
  47. package/dist/cjs/components/Empty.js +5 -4
  48. package/dist/cjs/components/Empty.js.map +1 -1
  49. package/dist/cjs/components/Input.js +6 -5
  50. package/dist/cjs/components/Input.js.map +1 -1
  51. package/dist/cjs/components/Kbd.js +4 -3
  52. package/dist/cjs/components/Kbd.js.map +1 -1
  53. package/dist/cjs/components/Label.js +5 -4
  54. package/dist/cjs/components/Label.js.map +1 -1
  55. package/dist/cjs/components/MultiEmailInput.js +5 -4
  56. package/dist/cjs/components/MultiEmailInput.js.map +1 -1
  57. package/dist/cjs/components/Pagination.js +1 -1
  58. package/dist/cjs/components/Popover.js +3 -2
  59. package/dist/cjs/components/Popover.js.map +1 -1
  60. package/dist/cjs/components/RadioGroup.js +5 -4
  61. package/dist/cjs/components/RadioGroup.js.map +1 -1
  62. package/dist/cjs/components/Select.js +9 -7
  63. package/dist/cjs/components/Select.js.map +1 -1
  64. package/dist/cjs/components/Sheet.js +10 -16
  65. package/dist/cjs/components/Sheet.js.map +1 -1
  66. package/dist/cjs/components/Slider.js +5 -4
  67. package/dist/cjs/components/Slider.js.map +1 -1
  68. package/dist/cjs/components/Switch.js +5 -4
  69. package/dist/cjs/components/Switch.js.map +1 -1
  70. package/dist/cjs/components/Textarea.js +5 -4
  71. package/dist/cjs/components/Textarea.js.map +1 -1
  72. package/dist/cjs/components/TimePicker.js +5 -4
  73. package/dist/cjs/components/TimePicker.js.map +1 -1
  74. package/dist/cjs/components/Tooltip.js +4 -3
  75. package/dist/cjs/components/Tooltip.js.map +1 -1
  76. package/dist/cjs/components/TreeSelect.js +5 -4
  77. package/dist/cjs/components/TreeSelect.js.map +1 -1
  78. package/dist/cjs/components/index.js +18 -16
  79. package/dist/cjs/components/index.js.map +1 -1
  80. package/dist/cjs/{dialog-Cs1qH5xA.js → dialog-CGblgaX5.js} +34 -40
  81. package/dist/cjs/dialog-CGblgaX5.js.map +1 -0
  82. package/dist/cjs/{floating-ui.react-dom-B4Aw6O7R.js → floating-ui.react-dom--alWUjS1.js} +147 -463
  83. package/dist/cjs/floating-ui.react-dom--alWUjS1.js.map +1 -0
  84. package/dist/cjs/floating-ui.utils.dom-BGEmL7pd.js +339 -0
  85. package/dist/cjs/floating-ui.utils.dom-BGEmL7pd.js.map +1 -0
  86. package/dist/cjs/formik/ActionBlock.js +5 -4
  87. package/dist/cjs/formik/ActionBlock.js.map +1 -1
  88. package/dist/cjs/formik/BlockNavigation.js +23 -19
  89. package/dist/cjs/formik/BlockNavigation.js.map +1 -1
  90. package/dist/cjs/formik/Button.js +5 -4
  91. package/dist/cjs/formik/Button.js.map +1 -1
  92. package/dist/cjs/formik/Checkbox.js +5 -4
  93. package/dist/cjs/formik/Checkbox.js.map +1 -1
  94. package/dist/cjs/formik/Input.js +6 -5
  95. package/dist/cjs/formik/Input.js.map +1 -1
  96. package/dist/cjs/formik/MultiEmailInput.js +5 -4
  97. package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
  98. package/dist/cjs/formik/RadioGroup.js +5 -4
  99. package/dist/cjs/formik/RadioGroup.js.map +1 -1
  100. package/dist/cjs/formik/Select.js +9 -7
  101. package/dist/cjs/formik/Select.js.map +1 -1
  102. package/dist/cjs/formik/Slider.js +5 -4
  103. package/dist/cjs/formik/Slider.js.map +1 -1
  104. package/dist/cjs/formik/Switch.js +5 -4
  105. package/dist/cjs/formik/Switch.js.map +1 -1
  106. package/dist/cjs/formik/Textarea.js +5 -4
  107. package/dist/cjs/formik/Textarea.js.map +1 -1
  108. package/dist/cjs/formik/TreeSelect.js +5 -4
  109. package/dist/cjs/formik/TreeSelect.js.map +1 -1
  110. package/dist/cjs/formik/index.js +12 -10
  111. package/dist/cjs/formik/index.js.map +1 -1
  112. package/dist/cjs/{index-DbA93GP3.js → index-CMFCdiR6.js} +2 -2
  113. package/dist/cjs/{index-DbA93GP3.js.map → index-CMFCdiR6.js.map} +1 -1
  114. package/dist/cjs/{index-BTsnrFFc.js → index-DdQaz0iQ.js} +31 -33
  115. package/dist/cjs/{index-BTsnrFFc.js.map → index-DdQaz0iQ.js.map} +1 -1
  116. package/dist/cjs/{index-C9ICrOhM.js → index-owSUsE-n.js} +2 -2
  117. package/dist/cjs/{index-C9ICrOhM.js.map → index-owSUsE-n.js.map} +1 -1
  118. package/dist/cjs/index.js +18 -16
  119. package/dist/cjs/index.js.map +1 -1
  120. package/dist/cjs/{input-group-BdQoKm0i.js → input-group-DZ-c2jRZ.js} +2 -2
  121. package/dist/cjs/{input-group-BdQoKm0i.js.map → input-group-DZ-c2jRZ.js.map} +1 -1
  122. package/dist/cjs/primitives/AlertDialog.js +112 -188
  123. package/dist/cjs/primitives/AlertDialog.js.map +1 -1
  124. package/dist/cjs/primitives/Button.js +1 -2
  125. package/dist/cjs/primitives/Button.js.map +1 -1
  126. package/dist/cjs/primitives/Calendar.js +1 -1
  127. package/dist/cjs/primitives/Carousel.js +1 -1
  128. package/dist/cjs/primitives/Combobox.js +6 -4
  129. package/dist/cjs/primitives/Combobox.js.map +1 -1
  130. package/dist/cjs/primitives/Command.js +19 -5
  131. package/dist/cjs/primitives/Command.js.map +1 -1
  132. package/dist/cjs/primitives/ContextMenu.js +4 -3
  133. package/dist/cjs/primitives/ContextMenu.js.map +1 -1
  134. package/dist/cjs/primitives/Dialog.js +48 -44
  135. package/dist/cjs/primitives/Dialog.js.map +1 -1
  136. package/dist/cjs/primitives/Drawer.js +2 -2
  137. package/dist/cjs/primitives/Drawer.js.map +1 -1
  138. package/dist/cjs/primitives/DropdownMenu.js +20 -13
  139. package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
  140. package/dist/cjs/primitives/Field.js +5 -4
  141. package/dist/cjs/primitives/Field.js.map +1 -1
  142. package/dist/cjs/primitives/HoverCard.js +3 -2
  143. package/dist/cjs/primitives/HoverCard.js.map +1 -1
  144. package/dist/cjs/primitives/InputGroup.js +2 -2
  145. package/dist/cjs/primitives/Menubar.js +4 -3
  146. package/dist/cjs/primitives/Menubar.js.map +1 -1
  147. package/dist/cjs/primitives/Pagination.js +1 -1
  148. package/dist/cjs/primitives/Popover.js +3 -2
  149. package/dist/cjs/primitives/Popover.js.map +1 -1
  150. package/dist/cjs/primitives/Select.js +3 -2
  151. package/dist/cjs/primitives/Select.js.map +1 -1
  152. package/dist/cjs/primitives/Sheet.js +68 -62
  153. package/dist/cjs/primitives/Sheet.js.map +1 -1
  154. package/dist/cjs/primitives/Sidebar.js +15 -11
  155. package/dist/cjs/primitives/Sidebar.js.map +1 -1
  156. package/dist/cjs/primitives/Tooltip.js +4 -3
  157. package/dist/cjs/primitives/Tooltip.js.map +1 -1
  158. package/dist/cjs/primitives/index.js +18 -15
  159. package/dist/cjs/primitives/index.js.map +1 -1
  160. package/dist/cjs/sheet-BMQ9juND.js +138 -0
  161. package/dist/cjs/sheet-BMQ9juND.js.map +1 -0
  162. package/dist/cjs/{tooltip-BYCcUMZn.js → tooltip-hM8gc5L8.js} +2 -2
  163. package/dist/cjs/{tooltip-BYCcUMZn.js.map → tooltip-hM8gc5L8.js.map} +1 -1
  164. package/dist/cjs/useOpenInteractionType-D4z6FTrA.js +4877 -0
  165. package/dist/cjs/useOpenInteractionType-D4z6FTrA.js.map +1 -0
  166. package/dist/components/Alert.js +22 -18
  167. package/dist/components/Alert.js.map +1 -1
  168. package/dist/components/Avatar.js +4 -3
  169. package/dist/components/Avatar.js.map +1 -1
  170. package/dist/components/Button.js +5 -4
  171. package/dist/components/Button.js.map +1 -1
  172. package/dist/components/Checkbox.js +5 -4
  173. package/dist/components/Checkbox.js.map +1 -1
  174. package/dist/components/ColorPicker.js +4 -3
  175. package/dist/components/ColorPicker.js.map +1 -1
  176. package/dist/components/DataTable.js +6 -5
  177. package/dist/components/DataTable.js.map +1 -1
  178. package/dist/components/DatePicker.js +5 -4
  179. package/dist/components/DatePicker.js.map +1 -1
  180. package/dist/components/Dialog/Dialog.d.ts +1 -1
  181. package/dist/components/Dialog.js +10 -16
  182. package/dist/components/Dialog.js.map +1 -1
  183. package/dist/components/DropdownMenu.js +6 -5
  184. package/dist/components/DropdownMenu.js.map +1 -1
  185. package/dist/components/Empty.js +5 -4
  186. package/dist/components/Empty.js.map +1 -1
  187. package/dist/components/Input.js +6 -5
  188. package/dist/components/Input.js.map +1 -1
  189. package/dist/components/Kbd.js +4 -3
  190. package/dist/components/Kbd.js.map +1 -1
  191. package/dist/components/Label.js +5 -4
  192. package/dist/components/Label.js.map +1 -1
  193. package/dist/components/MultiEmailInput.js +5 -4
  194. package/dist/components/MultiEmailInput.js.map +1 -1
  195. package/dist/components/Pagination.js +1 -1
  196. package/dist/components/Popover.js +3 -2
  197. package/dist/components/Popover.js.map +1 -1
  198. package/dist/components/RadioGroup.js +5 -4
  199. package/dist/components/RadioGroup.js.map +1 -1
  200. package/dist/components/Select.js +9 -7
  201. package/dist/components/Select.js.map +1 -1
  202. package/dist/components/Sheet/Sheet.d.ts +2 -2
  203. package/dist/components/Sheet.js +10 -16
  204. package/dist/components/Sheet.js.map +1 -1
  205. package/dist/components/Slider.js +5 -4
  206. package/dist/components/Slider.js.map +1 -1
  207. package/dist/components/Switch.js +5 -4
  208. package/dist/components/Switch.js.map +1 -1
  209. package/dist/components/Textarea.js +5 -4
  210. package/dist/components/Textarea.js.map +1 -1
  211. package/dist/components/TimePicker.js +5 -4
  212. package/dist/components/TimePicker.js.map +1 -1
  213. package/dist/components/Tooltip.js +4 -3
  214. package/dist/components/Tooltip.js.map +1 -1
  215. package/dist/components/TreeSelect.js +5 -4
  216. package/dist/components/TreeSelect.js.map +1 -1
  217. package/dist/components/index.js +18 -16
  218. package/dist/components/index.js.map +1 -1
  219. package/dist/{dialog-BVHqPY9y.js → dialog-CqXuhXNS.js} +34 -40
  220. package/dist/dialog-CqXuhXNS.js.map +1 -0
  221. package/dist/{floating-ui.react-dom-D8_f_WWh.js → floating-ui.react-dom-BtFUJRfb.js} +3 -299
  222. package/dist/floating-ui.react-dom-BtFUJRfb.js.map +1 -0
  223. package/dist/floating-ui.utils.dom-Bw_Rc4bg.js +299 -0
  224. package/dist/floating-ui.utils.dom-Bw_Rc4bg.js.map +1 -0
  225. package/dist/formik/ActionBlock.js +5 -4
  226. package/dist/formik/ActionBlock.js.map +1 -1
  227. package/dist/formik/BlockNavigation.js +23 -19
  228. package/dist/formik/BlockNavigation.js.map +1 -1
  229. package/dist/formik/Button.js +5 -4
  230. package/dist/formik/Button.js.map +1 -1
  231. package/dist/formik/Checkbox.js +5 -4
  232. package/dist/formik/Checkbox.js.map +1 -1
  233. package/dist/formik/Input.js +6 -5
  234. package/dist/formik/Input.js.map +1 -1
  235. package/dist/formik/MultiEmailInput.js +5 -4
  236. package/dist/formik/MultiEmailInput.js.map +1 -1
  237. package/dist/formik/RadioGroup.js +5 -4
  238. package/dist/formik/RadioGroup.js.map +1 -1
  239. package/dist/formik/Select.js +9 -7
  240. package/dist/formik/Select.js.map +1 -1
  241. package/dist/formik/Slider.js +5 -4
  242. package/dist/formik/Slider.js.map +1 -1
  243. package/dist/formik/Switch.js +5 -4
  244. package/dist/formik/Switch.js.map +1 -1
  245. package/dist/formik/Textarea.js +5 -4
  246. package/dist/formik/Textarea.js.map +1 -1
  247. package/dist/formik/TreeSelect.js +5 -4
  248. package/dist/formik/TreeSelect.js.map +1 -1
  249. package/dist/formik/index.js +12 -10
  250. package/dist/formik/index.js.map +1 -1
  251. package/dist/{index-DnD7-4_R.js → index-BQtGUR27.js} +2 -2
  252. package/dist/{index-DnD7-4_R.js.map → index-BQtGUR27.js.map} +1 -1
  253. package/dist/{index-GJ3FauH8.js → index-CLV7U7i7.js} +4 -4
  254. package/dist/{index-GJ3FauH8.js.map → index-CLV7U7i7.js.map} +1 -1
  255. package/dist/{index-C3hByjk3.js → index-XvwNqU74.js} +2 -2
  256. package/dist/{index-C3hByjk3.js.map → index-XvwNqU74.js.map} +1 -1
  257. package/dist/index.js +18 -16
  258. package/dist/index.js.map +1 -1
  259. package/dist/{input-group-DDwp2ozP.js → input-group-DuITGkyB.js} +2 -2
  260. package/dist/{input-group-DDwp2ozP.js.map → input-group-DuITGkyB.js.map} +1 -1
  261. package/dist/primitives/AlertDialog.js +113 -189
  262. package/dist/primitives/AlertDialog.js.map +1 -1
  263. package/dist/primitives/Button.js +2 -3
  264. package/dist/primitives/Button.js.map +1 -1
  265. package/dist/primitives/Calendar.js +1 -1
  266. package/dist/primitives/Carousel.js +1 -1
  267. package/dist/primitives/Combobox.js +6 -4
  268. package/dist/primitives/Combobox.js.map +1 -1
  269. package/dist/primitives/Command.js +19 -5
  270. package/dist/primitives/Command.js.map +1 -1
  271. package/dist/primitives/ContextMenu.js +4 -3
  272. package/dist/primitives/ContextMenu.js.map +1 -1
  273. package/dist/primitives/Dialog.d.ts +6 -4
  274. package/dist/primitives/Dialog.js +49 -45
  275. package/dist/primitives/Dialog.js.map +1 -1
  276. package/dist/primitives/Drawer.js +2 -2
  277. package/dist/primitives/Drawer.js.map +1 -1
  278. package/dist/primitives/DropdownMenu.js +20 -13
  279. package/dist/primitives/DropdownMenu.js.map +1 -1
  280. package/dist/primitives/Field.js +5 -4
  281. package/dist/primitives/Field.js.map +1 -1
  282. package/dist/primitives/HoverCard.js +3 -2
  283. package/dist/primitives/HoverCard.js.map +1 -1
  284. package/dist/primitives/InputGroup.js +2 -2
  285. package/dist/primitives/Menubar.js +4 -3
  286. package/dist/primitives/Menubar.js.map +1 -1
  287. package/dist/primitives/Pagination.js +1 -1
  288. package/dist/primitives/Popover.js +3 -2
  289. package/dist/primitives/Popover.js.map +1 -1
  290. package/dist/primitives/Select.js +3 -2
  291. package/dist/primitives/Select.js.map +1 -1
  292. package/dist/primitives/Sheet.d.ts +5 -4
  293. package/dist/primitives/Sheet.js +68 -62
  294. package/dist/primitives/Sheet.js.map +1 -1
  295. package/dist/primitives/Sidebar.js +15 -11
  296. package/dist/primitives/Sidebar.js.map +1 -1
  297. package/dist/primitives/Tooltip.js +4 -3
  298. package/dist/primitives/Tooltip.js.map +1 -1
  299. package/dist/primitives/index.js +18 -15
  300. package/dist/primitives/index.js.map +1 -1
  301. package/dist/shadcn/components/alert-dialog.d.ts +8 -8
  302. package/dist/shadcn/components/command.d.ts +3 -1
  303. package/dist/shadcn/components/dialog.d.ts +10 -9
  304. package/dist/shadcn/components/dropdown-menu.d.ts +1 -1
  305. package/dist/shadcn/components/sheet.d.ts +7 -7
  306. package/dist/sheet-B9oDGvvX.js +129 -0
  307. package/dist/sheet-B9oDGvvX.js.map +1 -0
  308. package/dist/{tooltip-ChQ9xD1j.js → tooltip-0DecQ06t.js} +2 -2
  309. package/dist/{tooltip-ChQ9xD1j.js.map → tooltip-0DecQ06t.js.map} +1 -1
  310. package/dist/useOpenInteractionType-CVfxIsuz.js +4766 -0
  311. package/dist/useOpenInteractionType-CVfxIsuz.js.map +1 -0
  312. package/package.json +1 -1
  313. package/dist/Alert-CQ7lMpGp.js.map +0 -1
  314. package/dist/Combobox-CKR_H-QS.js.map +0 -1
  315. package/dist/Dialog-BOcBeB8v.js.map +0 -1
  316. package/dist/Sheet-Bw8GVQPS.js.map +0 -1
  317. package/dist/button-CrEMzWKw.js.map +0 -1
  318. package/dist/cjs/Alert-CxctOMOk.js.map +0 -1
  319. package/dist/cjs/Combobox-Dd2m0qal.js +0 -10218
  320. package/dist/cjs/Combobox-Dd2m0qal.js.map +0 -1
  321. package/dist/cjs/Dialog-CBSuKeu_.js.map +0 -1
  322. package/dist/cjs/Sheet-By1W1pFD.js.map +0 -1
  323. package/dist/cjs/button-CMl9rLXi.js.map +0 -1
  324. package/dist/cjs/dialog-Cs1qH5xA.js.map +0 -1
  325. package/dist/cjs/floating-ui.react-dom-B4Aw6O7R.js.map +0 -1
  326. package/dist/cjs/sheet-G6ismmAK.js +0 -147
  327. package/dist/cjs/sheet-G6ismmAK.js.map +0 -1
  328. package/dist/dialog-BVHqPY9y.js.map +0 -1
  329. package/dist/floating-ui.react-dom-D8_f_WWh.js.map +0 -1
  330. package/dist/sheet-DNANcGkk.js +0 -138
  331. package/dist/sheet-DNANcGkk.js.map +0 -1
@@ -0,0 +1,1026 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var useOpenInteractionType = require('./useOpenInteractionType-D4z6FTrA.js');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ require('react-dom');
7
+ var floatingUi_utils_dom = require('./floating-ui.utils.dom-BGEmL7pd.js');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
+
29
+ const DialogRootContext = /*#__PURE__*/React__namespace.createContext(undefined);
30
+ function useDialogRootContext(optional) {
31
+ const dialogRootContext = React__namespace.useContext(DialogRootContext);
32
+ if (optional === false && dialogRootContext === undefined) {
33
+ throw new Error(useOpenInteractionType.formatErrorMessage(27));
34
+ }
35
+ return dialogRootContext;
36
+ }
37
+
38
+ const stateAttributesMapping$1 = {
39
+ ...useOpenInteractionType.popupStateMapping,
40
+ ...useOpenInteractionType.transitionStatusMapping
41
+ };
42
+
43
+ /**
44
+ * An overlay displayed beneath the popup.
45
+ * Renders a `<div>` element.
46
+ *
47
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
48
+ */
49
+ const DialogBackdrop = /*#__PURE__*/React__namespace.forwardRef(function DialogBackdrop(componentProps, forwardedRef) {
50
+ const {
51
+ render,
52
+ className,
53
+ style,
54
+ forceRender = false,
55
+ ...elementProps
56
+ } = componentProps;
57
+ const {
58
+ store
59
+ } = useDialogRootContext();
60
+ const open = store.useState('open');
61
+ const nested = store.useState('nested');
62
+ const mounted = store.useState('mounted');
63
+ const transitionStatus = store.useState('transitionStatus');
64
+ const state = {
65
+ open,
66
+ transitionStatus
67
+ };
68
+ return useOpenInteractionType.useRenderElement('div', componentProps, {
69
+ state,
70
+ ref: [store.context.backdropRef, forwardedRef],
71
+ stateAttributesMapping: stateAttributesMapping$1,
72
+ props: [{
73
+ role: 'presentation',
74
+ hidden: !mounted,
75
+ style: {
76
+ userSelect: 'none',
77
+ WebkitUserSelect: 'none'
78
+ }
79
+ }, elementProps],
80
+ enabled: forceRender || !nested
81
+ });
82
+ });
83
+
84
+ /**
85
+ * A button that closes the dialog.
86
+ * Renders a `<button>` element.
87
+ *
88
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
89
+ */
90
+ const DialogClose = /*#__PURE__*/React__namespace.forwardRef(function DialogClose(componentProps, forwardedRef) {
91
+ const {
92
+ render,
93
+ className,
94
+ disabled = false,
95
+ nativeButton = true,
96
+ style,
97
+ ...elementProps
98
+ } = componentProps;
99
+ const {
100
+ store
101
+ } = useDialogRootContext();
102
+ const open = store.useState('open');
103
+ function handleClick(event) {
104
+ if (open) {
105
+ store.setOpen(false, useOpenInteractionType.createChangeEventDetails(useOpenInteractionType.closePress, event.nativeEvent));
106
+ }
107
+ }
108
+ const {
109
+ getButtonProps,
110
+ buttonRef
111
+ } = useOpenInteractionType.useButton({
112
+ disabled,
113
+ native: nativeButton
114
+ });
115
+ const state = {
116
+ disabled
117
+ };
118
+ return useOpenInteractionType.useRenderElement('button', componentProps, {
119
+ state,
120
+ ref: [forwardedRef, buttonRef],
121
+ props: [{
122
+ onClick: handleClick
123
+ }, elementProps, getButtonProps]
124
+ });
125
+ });
126
+
127
+ /**
128
+ * A paragraph with additional information about the dialog.
129
+ * Renders a `<p>` element.
130
+ *
131
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
132
+ */
133
+ const DialogDescription = /*#__PURE__*/React__namespace.forwardRef(function DialogDescription(componentProps, forwardedRef) {
134
+ const {
135
+ render,
136
+ className,
137
+ style,
138
+ id: idProp,
139
+ ...elementProps
140
+ } = componentProps;
141
+ const {
142
+ store
143
+ } = useDialogRootContext();
144
+ const id = useOpenInteractionType.useBaseUiId(idProp);
145
+ store.useSyncedValueWithCleanup('descriptionElementId', id);
146
+ return useOpenInteractionType.useRenderElement('p', componentProps, {
147
+ ref: forwardedRef,
148
+ props: [{
149
+ id
150
+ }, elementProps]
151
+ });
152
+ });
153
+
154
+ /**
155
+ * Returns a callback ref that registers/unregisters the trigger element in the store.
156
+ *
157
+ * @param store The Store instance where the trigger should be registered.
158
+ */
159
+ function useTriggerRegistration(id, store) {
160
+ // Keep track of the currently registered element to unregister it on unmount or id change.
161
+ const registeredElementIdRef = React__namespace.useRef(null);
162
+ const registeredElementRef = React__namespace.useRef(null);
163
+ return React__namespace.useCallback(element => {
164
+ if (id === undefined) {
165
+ return;
166
+ }
167
+ if (registeredElementIdRef.current !== null) {
168
+ const registeredId = registeredElementIdRef.current;
169
+ const registeredElement = registeredElementRef.current;
170
+ const currentElement = store.context.triggerElements.getById(registeredId);
171
+ if (registeredElement && currentElement === registeredElement) {
172
+ store.context.triggerElements.delete(registeredId);
173
+ }
174
+ registeredElementIdRef.current = null;
175
+ registeredElementRef.current = null;
176
+ }
177
+ if (element !== null) {
178
+ registeredElementIdRef.current = id;
179
+ registeredElementRef.current = element;
180
+ store.context.triggerElements.add(id, element);
181
+ }
182
+ }, [store, id]);
183
+ }
184
+
185
+ /**
186
+ * Sets up trigger data forwarding to the store.
187
+ *
188
+ * @param triggerId Id of the trigger.
189
+ * @param triggerElement The trigger DOM element.
190
+ * @param store The Store instance managing the popup state.
191
+ * @param stateUpdates An object with state updates to apply when the trigger is active.
192
+ */
193
+ function useTriggerDataForwarding(triggerId, triggerElementRef, store, stateUpdates) {
194
+ const isMountedByThisTrigger = store.useState('isMountedByTrigger', triggerId);
195
+ const baseRegisterTrigger = useTriggerRegistration(triggerId, store);
196
+ const registerTrigger = useOpenInteractionType.useStableCallback(element => {
197
+ baseRegisterTrigger(element);
198
+ if (!element || !store.select('open')) {
199
+ return;
200
+ }
201
+ const activeTriggerId = store.select('activeTriggerId');
202
+ if (activeTriggerId === triggerId) {
203
+ store.update({
204
+ activeTriggerElement: element,
205
+ ...stateUpdates
206
+ });
207
+ return;
208
+ }
209
+ if (activeTriggerId == null) {
210
+ // This runs when popup is open, but no active trigger is set.
211
+ // It can happen when using controlled mode and the trigger is mounted after opening or if `triggerId` prop is not set explicitly.
212
+ // In such cases the first trigger to run this code becomes the active trigger (store.select('activeTriggerId') should not return null after that).
213
+ // This is mostly for compatibility with contained triggers where no explicit `triggerId` was required in controlled mode.
214
+ store.update({
215
+ activeTriggerId: triggerId,
216
+ activeTriggerElement: element,
217
+ ...stateUpdates
218
+ });
219
+ }
220
+ });
221
+ useOpenInteractionType.useIsoLayoutEffect(() => {
222
+ if (isMountedByThisTrigger) {
223
+ store.update({
224
+ activeTriggerElement: triggerElementRef.current,
225
+ ...stateUpdates
226
+ });
227
+ }
228
+ // eslint-disable-next-line react-hooks/exhaustive-deps
229
+ }, [isMountedByThisTrigger, store, triggerElementRef, ...Object.values(stateUpdates)]);
230
+ return {
231
+ registerTrigger,
232
+ isMountedByThisTrigger
233
+ };
234
+ }
235
+ /**
236
+ * Ensures that when there's only one trigger element registered, it is set as the active trigger.
237
+ * This allows controlled popups to work correctly without an explicit triggerId, maintaining compatibility
238
+ * with the contained triggers.
239
+ *
240
+ * This should be called on the Root part.
241
+ *
242
+ * @param open Whether the popup is open.
243
+ * @param store The Store instance managing the popup state.
244
+ */
245
+ function useImplicitActiveTrigger(store) {
246
+ const open = store.useState('open');
247
+ useOpenInteractionType.useIsoLayoutEffect(() => {
248
+ if (open && !store.select('activeTriggerId') && store.context.triggerElements.size === 1) {
249
+ const iteratorResult = store.context.triggerElements.entries().next();
250
+ if (!iteratorResult.done) {
251
+ const [implicitTriggerId, implicitTriggerElement] = iteratorResult.value;
252
+ store.update({
253
+ activeTriggerId: implicitTriggerId,
254
+ activeTriggerElement: implicitTriggerElement
255
+ });
256
+ }
257
+ }
258
+ }, [open, store]);
259
+ }
260
+
261
+ /**
262
+ * Mangages the mounted state of the popup.
263
+ * Sets up the transition status listeners and handles unmounting when needed.
264
+ * Updates the `mounted` and `transitionStatus` states in the store.
265
+ *
266
+ * @param open Whether the popup is open.
267
+ * @param store The Store instance managing the popup state.
268
+ * @param onUnmount Optional callback to be called when the popup is unmounted.
269
+ *
270
+ * @returns A function to forcibly unmount the popup.
271
+ */
272
+ function useOpenStateTransitions(open, store, onUnmount) {
273
+ const {
274
+ mounted,
275
+ setMounted,
276
+ transitionStatus
277
+ } = useOpenInteractionType.useTransitionStatus(open);
278
+ store.useSyncedValues({
279
+ mounted,
280
+ transitionStatus
281
+ });
282
+ const forceUnmount = useOpenInteractionType.useStableCallback(() => {
283
+ setMounted(false);
284
+ store.update({
285
+ activeTriggerId: null,
286
+ activeTriggerElement: null,
287
+ mounted: false
288
+ });
289
+ store.context.onOpenChangeComplete?.(false);
290
+ });
291
+ const preventUnmountingOnClose = store.useState('preventUnmountingOnClose');
292
+ useOpenInteractionType.useOpenChangeComplete({
293
+ enabled: !preventUnmountingOnClose,
294
+ open,
295
+ ref: store.context.popupRef,
296
+ onComplete() {
297
+ if (!open) {
298
+ forceUnmount();
299
+ }
300
+ }
301
+ });
302
+ return {
303
+ forceUnmount,
304
+ transitionStatus
305
+ };
306
+ }
307
+
308
+ /**
309
+ * Initializes a FloatingRootStore that is kept in sync with the provided PopupStore.
310
+ * The new instance is created only once and updated on every render.
311
+ */
312
+ function useSyncedFloatingRootContext(options) {
313
+ const {
314
+ popupStore,
315
+ treatPopupAsFloatingElement = false,
316
+ onOpenChange
317
+ } = options;
318
+ const floatingId = useOpenInteractionType.useId();
319
+ const nested = useOpenInteractionType.useFloatingParentNodeId() != null;
320
+ const open = popupStore.useState('open');
321
+ const referenceElement = popupStore.useState('activeTriggerElement');
322
+ const floatingElement = popupStore.useState(treatPopupAsFloatingElement ? 'popupElement' : 'positionerElement');
323
+ const triggerElements = popupStore.context.triggerElements;
324
+ const store = useOpenInteractionType.useRefWithInit(() => new useOpenInteractionType.FloatingRootStore({
325
+ open,
326
+ transitionStatus: undefined,
327
+ referenceElement,
328
+ floatingElement,
329
+ triggerElements,
330
+ onOpenChange,
331
+ floatingId,
332
+ syncOnly: true,
333
+ nested
334
+ })).current;
335
+ useOpenInteractionType.useIsoLayoutEffect(() => {
336
+ const valuesToSync = {
337
+ open,
338
+ floatingId,
339
+ referenceElement,
340
+ floatingElement
341
+ };
342
+ if (floatingUi_utils_dom.isElement(referenceElement)) {
343
+ valuesToSync.domReferenceElement = referenceElement;
344
+ }
345
+ if (store.state.positionReference === store.state.referenceElement) {
346
+ valuesToSync.positionReference = referenceElement;
347
+ }
348
+ store.update(valuesToSync);
349
+ }, [open, floatingId, referenceElement, floatingElement, store]);
350
+
351
+ // TODO: When `setOpen` is a part of the PopupStore API, we don't need to sync it.
352
+ store.context.onOpenChange = onOpenChange;
353
+ store.context.nested = nested;
354
+ return store;
355
+ }
356
+
357
+ const componentRoleToAriaRoleMap = new Map([['select', 'listbox'], ['combobox', 'listbox'], ['label', false]]);
358
+
359
+ /**
360
+ * Adds base screen reader props to the reference and floating elements for a
361
+ * given floating element `role`.
362
+ * @see https://floating-ui.com/docs/useRole
363
+ */
364
+ function useRole(context, props = {}) {
365
+ const store = 'rootStore' in context ? context.rootStore : context;
366
+ const open = store.useState('open');
367
+ const defaultFloatingId = store.useState('floatingId');
368
+ const domReference = store.useState('domReferenceElement');
369
+ const floatingElement = store.useState('floatingElement');
370
+ const {
371
+ role = 'dialog'
372
+ } = props;
373
+ const defaultReferenceId = useOpenInteractionType.useId();
374
+ const referenceId = domReference?.id || defaultReferenceId;
375
+ const floatingId = React__namespace.useMemo(() => useOpenInteractionType.getFloatingFocusElement(floatingElement)?.id || defaultFloatingId, [floatingElement, defaultFloatingId]);
376
+ const ariaRole = componentRoleToAriaRoleMap.get(role) ?? role;
377
+ const parentId = useOpenInteractionType.useFloatingParentNodeId();
378
+ const isNested = parentId != null;
379
+ const trigger = React__namespace.useMemo(() => {
380
+ if (ariaRole === 'tooltip' || role === 'label') {
381
+ return useOpenInteractionType.EMPTY_OBJECT;
382
+ }
383
+ return {
384
+ 'aria-haspopup': ariaRole === 'alertdialog' ? 'dialog' : ariaRole,
385
+ 'aria-expanded': 'false',
386
+ ...(ariaRole === 'listbox' && {
387
+ role: 'combobox'
388
+ }),
389
+ ...(ariaRole === 'menu' && isNested && {
390
+ role: 'menuitem'
391
+ }),
392
+ ...(role === 'select' && {
393
+ 'aria-autocomplete': 'none'
394
+ }),
395
+ ...(role === 'combobox' && {
396
+ 'aria-autocomplete': 'list'
397
+ })
398
+ };
399
+ }, [ariaRole, isNested, role]);
400
+ const reference = React__namespace.useMemo(() => {
401
+ if (ariaRole === 'tooltip' || role === 'label') {
402
+ return {
403
+ [`aria-${role === 'label' ? 'labelledby' : 'describedby'}`]: open ? floatingId : undefined
404
+ };
405
+ }
406
+ const triggerProps = trigger;
407
+ return {
408
+ ...triggerProps,
409
+ 'aria-expanded': open ? 'true' : 'false',
410
+ 'aria-controls': open ? floatingId : undefined,
411
+ ...(ariaRole === 'menu' && {
412
+ id: referenceId
413
+ })
414
+ };
415
+ }, [ariaRole, floatingId, open, referenceId, role, trigger]);
416
+ const floating = React__namespace.useMemo(() => {
417
+ const floatingProps = {
418
+ id: floatingId,
419
+ ...(ariaRole && {
420
+ role: ariaRole
421
+ })
422
+ };
423
+ if (ariaRole === 'tooltip' || role === 'label') {
424
+ return floatingProps;
425
+ }
426
+ return {
427
+ ...floatingProps,
428
+ ...(ariaRole === 'menu' && {
429
+ 'aria-labelledby': referenceId
430
+ })
431
+ };
432
+ }, [ariaRole, floatingId, referenceId, role]);
433
+ const item = React__namespace.useCallback(({
434
+ active,
435
+ selected
436
+ }) => {
437
+ const commonProps = {
438
+ role: 'option',
439
+ ...(active && {
440
+ id: `${floatingId}-fui-option`
441
+ })
442
+ };
443
+
444
+ // For `menu`, we are unable to tell if the item is a `menuitemradio`
445
+ // or `menuitemcheckbox`. For backwards-compatibility reasons, also
446
+ // avoid defaulting to `menuitem` as it may overwrite custom role props.
447
+ switch (role) {
448
+ case 'select':
449
+ case 'combobox':
450
+ return {
451
+ ...commonProps,
452
+ 'aria-selected': selected
453
+ };
454
+ }
455
+ return {};
456
+ }, [floatingId, role]);
457
+ return React__namespace.useMemo(() => ({
458
+ reference,
459
+ floating,
460
+ item,
461
+ trigger
462
+ }), [reference, floating, trigger, item]);
463
+ }
464
+
465
+ let DialogPopupCssVars = /*#__PURE__*/function (DialogPopupCssVars) {
466
+ /**
467
+ * Indicates how many dialogs are nested within.
468
+ * @type {number}
469
+ */
470
+ DialogPopupCssVars["nestedDialogs"] = "--nested-dialogs";
471
+ return DialogPopupCssVars;
472
+ }({});
473
+
474
+ let DialogPopupDataAttributes = function (DialogPopupDataAttributes) {
475
+ /**
476
+ * Present when the dialog is open.
477
+ */
478
+ DialogPopupDataAttributes[DialogPopupDataAttributes["open"] = useOpenInteractionType.CommonPopupDataAttributes.open] = "open";
479
+ /**
480
+ * Present when the dialog is closed.
481
+ */
482
+ DialogPopupDataAttributes[DialogPopupDataAttributes["closed"] = useOpenInteractionType.CommonPopupDataAttributes.closed] = "closed";
483
+ /**
484
+ * Present when the dialog is animating in.
485
+ */
486
+ DialogPopupDataAttributes[DialogPopupDataAttributes["startingStyle"] = useOpenInteractionType.CommonPopupDataAttributes.startingStyle] = "startingStyle";
487
+ /**
488
+ * Present when the dialog is animating out.
489
+ */
490
+ DialogPopupDataAttributes[DialogPopupDataAttributes["endingStyle"] = useOpenInteractionType.CommonPopupDataAttributes.endingStyle] = "endingStyle";
491
+ /**
492
+ * Present when the dialog is nested within another dialog.
493
+ */
494
+ DialogPopupDataAttributes["nested"] = "data-nested";
495
+ /**
496
+ * Present when the dialog has other open dialogs nested within it.
497
+ */
498
+ DialogPopupDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
499
+ return DialogPopupDataAttributes;
500
+ }({});
501
+
502
+ const DialogPortalContext = /*#__PURE__*/React__namespace.createContext(undefined);
503
+ function useDialogPortalContext() {
504
+ const value = React__namespace.useContext(DialogPortalContext);
505
+ if (value === undefined) {
506
+ throw new Error(useOpenInteractionType.formatErrorMessage(26));
507
+ }
508
+ return value;
509
+ }
510
+
511
+ const ARROW_UP = 'ArrowUp';
512
+ const ARROW_DOWN = 'ArrowDown';
513
+ const ARROW_LEFT = 'ArrowLeft';
514
+ const ARROW_RIGHT = 'ArrowRight';
515
+ const HOME = 'Home';
516
+ const END = 'End';
517
+ const HORIZONTAL_KEYS = new Set([ARROW_LEFT, ARROW_RIGHT]);
518
+ const VERTICAL_KEYS = new Set([ARROW_UP, ARROW_DOWN]);
519
+ const ARROW_KEYS = new Set([...HORIZONTAL_KEYS, ...VERTICAL_KEYS]);
520
+ new Set([...ARROW_KEYS, HOME, END]);
521
+ const COMPOSITE_KEYS = new Set([ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, HOME, END]);
522
+
523
+ const stateAttributesMapping = {
524
+ ...useOpenInteractionType.popupStateMapping,
525
+ ...useOpenInteractionType.transitionStatusMapping,
526
+ nestedDialogOpen(value) {
527
+ return value ? {
528
+ [DialogPopupDataAttributes.nestedDialogOpen]: ''
529
+ } : null;
530
+ }
531
+ };
532
+
533
+ /**
534
+ * A container for the dialog contents.
535
+ * Renders a `<div>` element.
536
+ *
537
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
538
+ */
539
+ const DialogPopup = /*#__PURE__*/React__namespace.forwardRef(function DialogPopup(componentProps, forwardedRef) {
540
+ const {
541
+ className,
542
+ finalFocus,
543
+ initialFocus,
544
+ render,
545
+ style,
546
+ ...elementProps
547
+ } = componentProps;
548
+ const {
549
+ store
550
+ } = useDialogRootContext();
551
+ const descriptionElementId = store.useState('descriptionElementId');
552
+ const disablePointerDismissal = store.useState('disablePointerDismissal');
553
+ const floatingRootContext = store.useState('floatingRootContext');
554
+ const rootPopupProps = store.useState('popupProps');
555
+ const modal = store.useState('modal');
556
+ const mounted = store.useState('mounted');
557
+ const nested = store.useState('nested');
558
+ const nestedOpenDialogCount = store.useState('nestedOpenDialogCount');
559
+ const open = store.useState('open');
560
+ const openMethod = store.useState('openMethod');
561
+ const titleElementId = store.useState('titleElementId');
562
+ const transitionStatus = store.useState('transitionStatus');
563
+ const role = store.useState('role');
564
+ useDialogPortalContext();
565
+ useOpenInteractionType.useOpenChangeComplete({
566
+ open,
567
+ ref: store.context.popupRef,
568
+ onComplete() {
569
+ if (open) {
570
+ store.context.onOpenChangeComplete?.(true);
571
+ }
572
+ }
573
+ });
574
+
575
+ // Default initial focus logic:
576
+ // If opened by touch, focus the popup element to prevent the virtual keyboard from opening
577
+ // (this is required for Android specifically as iOS handles this automatically).
578
+ function defaultInitialFocus(interactionType) {
579
+ if (interactionType === 'touch') {
580
+ return store.context.popupRef.current;
581
+ }
582
+ return true;
583
+ }
584
+ const resolvedInitialFocus = initialFocus === undefined ? defaultInitialFocus : initialFocus;
585
+ const nestedDialogOpen = nestedOpenDialogCount > 0;
586
+ const state = {
587
+ open,
588
+ nested,
589
+ transitionStatus,
590
+ nestedDialogOpen
591
+ };
592
+ const element = useOpenInteractionType.useRenderElement('div', componentProps, {
593
+ state,
594
+ props: [rootPopupProps, {
595
+ 'aria-labelledby': titleElementId ?? undefined,
596
+ 'aria-describedby': descriptionElementId ?? undefined,
597
+ role,
598
+ tabIndex: -1,
599
+ hidden: !mounted,
600
+ onKeyDown(event) {
601
+ if (COMPOSITE_KEYS.has(event.key)) {
602
+ event.stopPropagation();
603
+ }
604
+ },
605
+ style: {
606
+ [DialogPopupCssVars.nestedDialogs]: nestedOpenDialogCount
607
+ }
608
+ }, elementProps],
609
+ ref: [forwardedRef, store.context.popupRef, store.useStateSetter('popupElement')],
610
+ stateAttributesMapping
611
+ });
612
+ return /*#__PURE__*/jsxRuntime.jsx(useOpenInteractionType.FloatingFocusManager, {
613
+ context: floatingRootContext,
614
+ openInteractionType: openMethod,
615
+ disabled: !mounted,
616
+ closeOnFocusOut: !disablePointerDismissal,
617
+ initialFocus: resolvedInitialFocus,
618
+ returnFocus: finalFocus,
619
+ modal: modal !== false,
620
+ restoreFocus: "popup",
621
+ children: element
622
+ });
623
+ });
624
+
625
+ const DialogPortal = /*#__PURE__*/React__namespace.forwardRef(function DialogPortal(props, forwardedRef) {
626
+ const {
627
+ keepMounted = false,
628
+ ...portalProps
629
+ } = props;
630
+ const {
631
+ store
632
+ } = useDialogRootContext();
633
+ const mounted = store.useState('mounted');
634
+ const modal = store.useState('modal');
635
+ const open = store.useState('open');
636
+ const shouldRender = mounted || keepMounted;
637
+ if (!shouldRender) {
638
+ return null;
639
+ }
640
+ return /*#__PURE__*/jsxRuntime.jsx(DialogPortalContext.Provider, {
641
+ value: keepMounted,
642
+ children: /*#__PURE__*/jsxRuntime.jsxs(useOpenInteractionType.FloatingPortal, {
643
+ ref: forwardedRef,
644
+ ...portalProps,
645
+ children: [mounted && modal === true && /*#__PURE__*/jsxRuntime.jsx(useOpenInteractionType.InternalBackdrop, {
646
+ ref: store.context.internalBackdropRef,
647
+ inert: useOpenInteractionType.inertValue(!open)
648
+ }), props.children]
649
+ })
650
+ });
651
+ });
652
+
653
+ function useDialogRoot(params) {
654
+ const {
655
+ store,
656
+ parentContext,
657
+ actionsRef,
658
+ isDrawer
659
+ } = params;
660
+ const open = store.useState('open');
661
+ const disablePointerDismissal = store.useState('disablePointerDismissal');
662
+ const modal = store.useState('modal');
663
+ const popupElement = store.useState('popupElement');
664
+ const {
665
+ openMethod,
666
+ triggerProps
667
+ } = useOpenInteractionType.useOpenInteractionType(open);
668
+ useImplicitActiveTrigger(store);
669
+ const {
670
+ forceUnmount
671
+ } = useOpenStateTransitions(open, store);
672
+ const createDialogEventDetails = useOpenInteractionType.useStableCallback(reason => {
673
+ const details = useOpenInteractionType.createChangeEventDetails(reason);
674
+ details.preventUnmountOnClose = () => {
675
+ store.set('preventUnmountingOnClose', true);
676
+ };
677
+ return details;
678
+ });
679
+ const handleImperativeClose = React__namespace.useCallback(() => {
680
+ store.setOpen(false, createDialogEventDetails(useOpenInteractionType.imperativeAction));
681
+ }, [store, createDialogEventDetails]);
682
+ React__namespace.useImperativeHandle(actionsRef, () => ({
683
+ unmount: forceUnmount,
684
+ close: handleImperativeClose
685
+ }), [forceUnmount, handleImperativeClose]);
686
+ const floatingRootContext = useSyncedFloatingRootContext({
687
+ popupStore: store,
688
+ onOpenChange: store.setOpen,
689
+ treatPopupAsFloatingElement: true
690
+ });
691
+ const [ownNestedOpenDialogs, setOwnNestedOpenDialogs] = React__namespace.useState(0);
692
+ const [ownNestedOpenDrawers, setOwnNestedOpenDrawers] = React__namespace.useState(0);
693
+ const isTopmost = ownNestedOpenDialogs === 0;
694
+ const role = useRole(floatingRootContext);
695
+ const dismiss = useOpenInteractionType.useDismiss(floatingRootContext, {
696
+ outsidePressEvent() {
697
+ if (store.context.internalBackdropRef.current || store.context.backdropRef.current) {
698
+ return 'intentional';
699
+ }
700
+ // Ensure `aria-hidden` on outside elements is removed immediately
701
+ // on outside press when trapping focus.
702
+ return {
703
+ mouse: modal === 'trap-focus' ? 'sloppy' : 'intentional',
704
+ touch: 'sloppy'
705
+ };
706
+ },
707
+ outsidePress(event) {
708
+ if (!store.context.outsidePressEnabledRef.current) {
709
+ return false;
710
+ }
711
+
712
+ // For mouse events, only accept left button (button 0)
713
+ // For touch events, a single touch is equivalent to left button
714
+ if ('button' in event && event.button !== 0) {
715
+ return false;
716
+ }
717
+ if ('touches' in event && event.touches.length !== 1) {
718
+ return false;
719
+ }
720
+ const target = useOpenInteractionType.getTarget(event);
721
+ if (isTopmost && !disablePointerDismissal) {
722
+ const eventTarget = target;
723
+ // Only close if the click occurred on the dialog's owning backdrop.
724
+ // This supports multiple modal dialogs that aren't nested in the React tree:
725
+ // https://github.com/mui/base-ui/issues/1320
726
+ if (modal) {
727
+ return store.context.internalBackdropRef.current || store.context.backdropRef.current ? store.context.internalBackdropRef.current === eventTarget || store.context.backdropRef.current === eventTarget || useOpenInteractionType.contains(eventTarget, popupElement) && !eventTarget?.hasAttribute('data-base-ui-portal') : true;
728
+ }
729
+ return true;
730
+ }
731
+ return false;
732
+ },
733
+ escapeKey: isTopmost
734
+ });
735
+ useOpenInteractionType.useScrollLock(open && modal === true, popupElement);
736
+ const {
737
+ getReferenceProps,
738
+ getFloatingProps,
739
+ getTriggerProps
740
+ } = useOpenInteractionType.useInteractions([role, dismiss]);
741
+
742
+ // Listen for nested open/close events on this store to maintain the counts.
743
+ store.useContextCallback('onNestedDialogOpen', (dialogCount, drawerCount) => {
744
+ setOwnNestedOpenDialogs(dialogCount);
745
+ setOwnNestedOpenDrawers(drawerCount);
746
+ });
747
+ store.useContextCallback('onNestedDialogClose', () => {
748
+ setOwnNestedOpenDialogs(0);
749
+ setOwnNestedOpenDrawers(0);
750
+ });
751
+
752
+ // Notify parent of our open/close state using parent callbacks, if any
753
+ React__namespace.useEffect(() => {
754
+ if (parentContext?.onNestedDialogOpen && open) {
755
+ parentContext.onNestedDialogOpen(ownNestedOpenDialogs + 1, ownNestedOpenDrawers + (isDrawer ? 1 : 0));
756
+ }
757
+ if (parentContext?.onNestedDialogClose && !open) {
758
+ parentContext.onNestedDialogClose();
759
+ }
760
+ return () => {
761
+ if (parentContext?.onNestedDialogClose && open) {
762
+ parentContext.onNestedDialogClose();
763
+ }
764
+ };
765
+ }, [isDrawer, open, ownNestedOpenDialogs, ownNestedOpenDrawers, parentContext]);
766
+ const activeTriggerProps = React__namespace.useMemo(() => getReferenceProps(triggerProps), [getReferenceProps, triggerProps]);
767
+ const inactiveTriggerProps = React__namespace.useMemo(() => getTriggerProps(triggerProps), [getTriggerProps, triggerProps]);
768
+ const popupProps = React__namespace.useMemo(() => getFloatingProps(), [getFloatingProps]);
769
+ store.useSyncedValues({
770
+ openMethod,
771
+ activeTriggerProps,
772
+ inactiveTriggerProps,
773
+ popupProps,
774
+ floatingRootContext,
775
+ nestedOpenDialogCount: ownNestedOpenDialogs,
776
+ nestedOpenDrawerCount: ownNestedOpenDrawers
777
+ });
778
+ }
779
+
780
+ const selectors = {
781
+ ...useOpenInteractionType.popupStoreSelectors,
782
+ modal: useOpenInteractionType.createSelector(state => state.modal),
783
+ nested: useOpenInteractionType.createSelector(state => state.nested),
784
+ nestedOpenDialogCount: useOpenInteractionType.createSelector(state => state.nestedOpenDialogCount),
785
+ nestedOpenDrawerCount: useOpenInteractionType.createSelector(state => state.nestedOpenDrawerCount),
786
+ disablePointerDismissal: useOpenInteractionType.createSelector(state => state.disablePointerDismissal),
787
+ openMethod: useOpenInteractionType.createSelector(state => state.openMethod),
788
+ descriptionElementId: useOpenInteractionType.createSelector(state => state.descriptionElementId),
789
+ titleElementId: useOpenInteractionType.createSelector(state => state.titleElementId),
790
+ viewportElement: useOpenInteractionType.createSelector(state => state.viewportElement),
791
+ role: useOpenInteractionType.createSelector(state => state.role)
792
+ };
793
+ class DialogStore extends useOpenInteractionType.ReactStore {
794
+ constructor(initialState) {
795
+ super(createInitialState(initialState), {
796
+ popupRef: /*#__PURE__*/React__namespace.createRef(),
797
+ backdropRef: /*#__PURE__*/React__namespace.createRef(),
798
+ internalBackdropRef: /*#__PURE__*/React__namespace.createRef(),
799
+ outsidePressEnabledRef: {
800
+ current: true
801
+ },
802
+ triggerElements: new useOpenInteractionType.PopupTriggerMap(),
803
+ onOpenChange: undefined,
804
+ onOpenChangeComplete: undefined
805
+ }, selectors);
806
+ }
807
+ setOpen = (nextOpen, eventDetails) => {
808
+ eventDetails.preventUnmountOnClose = () => {
809
+ this.set('preventUnmountingOnClose', true);
810
+ };
811
+ if (!nextOpen && eventDetails.trigger == null && this.state.activeTriggerId != null) {
812
+ // When closing the dialog, pass the old trigger to the onOpenChange event
813
+ // so it's not reset too early (potentially causing focus issues in controlled scenarios).
814
+ eventDetails.trigger = this.state.activeTriggerElement ?? undefined;
815
+ }
816
+ this.context.onOpenChange?.(nextOpen, eventDetails);
817
+ if (eventDetails.isCanceled) {
818
+ return;
819
+ }
820
+ this.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
821
+ const updatedState = {
822
+ open: nextOpen
823
+ };
824
+
825
+ // If a popup is closing, the `trigger` may be null.
826
+ // We want to keep the previous value so that exit animations are played and focus is returned correctly.
827
+ const newTriggerId = eventDetails.trigger?.id ?? null;
828
+ if (newTriggerId || nextOpen) {
829
+ updatedState.activeTriggerId = newTriggerId;
830
+ updatedState.activeTriggerElement = eventDetails.trigger ?? null;
831
+ }
832
+ this.update(updatedState);
833
+ };
834
+ static useStore(externalStore, initialState) {
835
+ // eslint-disable-next-line react-hooks/rules-of-hooks
836
+ const internalStore = useOpenInteractionType.useRefWithInit(() => {
837
+ return new DialogStore(initialState);
838
+ }).current;
839
+ return externalStore ?? internalStore;
840
+ }
841
+ }
842
+ function createInitialState(initialState = {}) {
843
+ return {
844
+ ...useOpenInteractionType.createInitialPopupStoreState(),
845
+ modal: true,
846
+ disablePointerDismissal: false,
847
+ popupElement: null,
848
+ viewportElement: null,
849
+ descriptionElementId: undefined,
850
+ titleElementId: undefined,
851
+ openMethod: null,
852
+ nested: false,
853
+ nestedOpenDialogCount: 0,
854
+ nestedOpenDrawerCount: 0,
855
+ role: 'dialog',
856
+ ...initialState
857
+ };
858
+ }
859
+
860
+ const IsDrawerContext = /*#__PURE__*/React__namespace.createContext(false);
861
+ function DialogRoot(props) {
862
+ const {
863
+ children,
864
+ open: openProp,
865
+ defaultOpen = false,
866
+ onOpenChange,
867
+ onOpenChangeComplete,
868
+ disablePointerDismissal = false,
869
+ modal = true,
870
+ actionsRef,
871
+ handle,
872
+ triggerId: triggerIdProp,
873
+ defaultTriggerId: defaultTriggerIdProp = null
874
+ } = props;
875
+ const parentDialogRootContext = useDialogRootContext(true);
876
+ const isDrawer = React__namespace.useContext(IsDrawerContext);
877
+ const nested = Boolean(parentDialogRootContext);
878
+ const store = DialogStore.useStore(handle?.store, {
879
+ open: defaultOpen,
880
+ openProp,
881
+ activeTriggerId: defaultTriggerIdProp,
882
+ triggerIdProp,
883
+ modal,
884
+ disablePointerDismissal,
885
+ nested
886
+ });
887
+
888
+ // Support initially open state when uncontrolled
889
+ useOpenInteractionType.useOnFirstRender(() => {
890
+ if (openProp === undefined && store.state.open === false && defaultOpen === true) {
891
+ store.update({
892
+ open: true,
893
+ activeTriggerId: defaultTriggerIdProp
894
+ });
895
+ }
896
+ });
897
+ store.useControlledProp('openProp', openProp);
898
+ store.useControlledProp('triggerIdProp', triggerIdProp);
899
+ store.useSyncedValues({
900
+ disablePointerDismissal,
901
+ nested,
902
+ modal
903
+ });
904
+ store.useContextCallback('onOpenChange', onOpenChange);
905
+ store.useContextCallback('onOpenChangeComplete', onOpenChangeComplete);
906
+ const payload = store.useState('payload');
907
+ useDialogRoot({
908
+ store,
909
+ actionsRef,
910
+ parentContext: parentDialogRootContext?.store.context,
911
+ isDrawer});
912
+ const contextValue = React__namespace.useMemo(() => ({
913
+ store
914
+ }), [store]);
915
+ return /*#__PURE__*/jsxRuntime.jsx(IsDrawerContext.Provider, {
916
+ value: false,
917
+ children: /*#__PURE__*/jsxRuntime.jsx(DialogRootContext.Provider, {
918
+ value: contextValue,
919
+ children: typeof children === 'function' ? children({
920
+ payload
921
+ }) : children
922
+ })
923
+ });
924
+ }
925
+
926
+ /**
927
+ * A heading that labels the dialog.
928
+ * Renders an `<h2>` element.
929
+ *
930
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
931
+ */
932
+ const DialogTitle = /*#__PURE__*/React__namespace.forwardRef(function DialogTitle(componentProps, forwardedRef) {
933
+ const {
934
+ render,
935
+ className,
936
+ style,
937
+ id: idProp,
938
+ ...elementProps
939
+ } = componentProps;
940
+ const {
941
+ store
942
+ } = useDialogRootContext();
943
+ const id = useOpenInteractionType.useBaseUiId(idProp);
944
+ store.useSyncedValueWithCleanup('titleElementId', id);
945
+ return useOpenInteractionType.useRenderElement('h2', componentProps, {
946
+ ref: forwardedRef,
947
+ props: [{
948
+ id
949
+ }, elementProps]
950
+ });
951
+ });
952
+
953
+ /**
954
+ * A button that opens the dialog.
955
+ * Renders a `<button>` element.
956
+ *
957
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
958
+ */
959
+ const DialogTrigger = /*#__PURE__*/React__namespace.forwardRef(function DialogTrigger(componentProps, forwardedRef) {
960
+ const {
961
+ render,
962
+ className,
963
+ disabled = false,
964
+ nativeButton = true,
965
+ id: idProp,
966
+ payload,
967
+ handle,
968
+ style,
969
+ ...elementProps
970
+ } = componentProps;
971
+ const dialogRootContext = useDialogRootContext(true);
972
+ const store = handle?.store ?? dialogRootContext?.store;
973
+ if (!store) {
974
+ throw new Error(useOpenInteractionType.formatErrorMessage(79));
975
+ }
976
+ const thisTriggerId = useOpenInteractionType.useBaseUiId(idProp);
977
+ const floatingContext = store.useState('floatingRootContext');
978
+ const isOpenedByThisTrigger = store.useState('isOpenedByTrigger', thisTriggerId);
979
+ const triggerElementRef = React__namespace.useRef(null);
980
+ const {
981
+ registerTrigger,
982
+ isMountedByThisTrigger
983
+ } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {
984
+ payload
985
+ });
986
+ const {
987
+ getButtonProps,
988
+ buttonRef
989
+ } = useOpenInteractionType.useButton({
990
+ disabled,
991
+ native: nativeButton
992
+ });
993
+ const click = useOpenInteractionType.useClick(floatingContext, {
994
+ enabled: floatingContext != null
995
+ });
996
+ const localInteractionProps = useOpenInteractionType.useInteractions([click]);
997
+ const state = {
998
+ disabled,
999
+ open: isOpenedByThisTrigger
1000
+ };
1001
+ const rootTriggerProps = store.useState('triggerProps', isMountedByThisTrigger);
1002
+ return useOpenInteractionType.useRenderElement('button', componentProps, {
1003
+ state,
1004
+ ref: [buttonRef, forwardedRef, registerTrigger, triggerElementRef],
1005
+ props: [localInteractionProps.getReferenceProps(), rootTriggerProps, {
1006
+ [useOpenInteractionType.CLICK_TRIGGER_IDENTIFIER]: '',
1007
+ id: thisTriggerId
1008
+ }, elementProps, getButtonProps],
1009
+ stateAttributesMapping: useOpenInteractionType.triggerOpenStateMapping
1010
+ });
1011
+ });
1012
+
1013
+ exports.DialogBackdrop = DialogBackdrop;
1014
+ exports.DialogClose = DialogClose;
1015
+ exports.DialogDescription = DialogDescription;
1016
+ exports.DialogPopup = DialogPopup;
1017
+ exports.DialogPortal = DialogPortal;
1018
+ exports.DialogRoot = DialogRoot;
1019
+ exports.DialogRootContext = DialogRootContext;
1020
+ exports.DialogStore = DialogStore;
1021
+ exports.DialogTitle = DialogTitle;
1022
+ exports.DialogTrigger = DialogTrigger;
1023
+ exports.IsDrawerContext = IsDrawerContext;
1024
+ exports.useDialogRoot = useDialogRoot;
1025
+ exports.useDialogRootContext = useDialogRootContext;
1026
+ //# sourceMappingURL=DialogTrigger-B0Q6yIrx.js.map