@ariakit/react-core 0.1.6 → 0.1.7

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 (567) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/cjs/__chunks/242GTPET.cjs +50 -0
  3. package/cjs/__chunks/{3X3VOT2M.cjs → 2DVMVYK2.cjs} +17 -13
  4. package/cjs/__chunks/{UIUFH5TV.cjs → 2G35RG62.cjs} +12 -10
  5. package/cjs/__chunks/{TZSSCEPY.cjs → 3BSEASER.cjs} +14 -9
  6. package/cjs/__chunks/3FTPSHLH.cjs +59 -0
  7. package/cjs/__chunks/{BSR35RJL.cjs → 4JD5VZVV.cjs} +42 -32
  8. package/cjs/__chunks/{DSXWE3J4.cjs → 4OKO2MSE.cjs} +6 -6
  9. package/cjs/__chunks/56NPFF7P.cjs +8 -0
  10. package/cjs/__chunks/{DVEJQM2Q.cjs → 5C3EJRAK.cjs} +22 -17
  11. package/cjs/__chunks/{53UPJ72H.cjs → 5I6IQHKQ.cjs} +70 -53
  12. package/cjs/__chunks/6455U47T.cjs +37 -0
  13. package/cjs/__chunks/64OSK6KA.cjs +34 -0
  14. package/cjs/__chunks/{UYIFJ7U3.cjs → 7NAIPZYN.cjs} +12 -7
  15. package/cjs/__chunks/{2WXUU3G6.cjs → A2LEUR7G.cjs} +34 -28
  16. package/cjs/__chunks/{OVCUW432.cjs → ACYEPHBQ.cjs} +25 -20
  17. package/cjs/__chunks/ASQZCUUA.cjs +125 -0
  18. package/cjs/__chunks/AUDANYMJ.cjs +54 -0
  19. package/cjs/__chunks/C7Y26CUV.cjs +42 -0
  20. package/cjs/__chunks/CARNFZQT.cjs +56 -0
  21. package/cjs/__chunks/CCVWD45Y.cjs +36 -0
  22. package/cjs/__chunks/{WMRNXISU.cjs → DASOL6J2.cjs} +27 -21
  23. package/cjs/__chunks/{KFKFEB7D.cjs → DCDTT7UY.cjs} +62 -48
  24. package/cjs/__chunks/{S6SU42H5.cjs → DG7HSSDP.cjs} +6 -6
  25. package/cjs/__chunks/{MWKUZW4E.cjs → E5VOJWDR.cjs} +38 -82
  26. package/cjs/__chunks/EE6OIU6X.cjs +40 -0
  27. package/cjs/__chunks/EEXWIKOB.cjs +469 -0
  28. package/cjs/__chunks/{SWSQUGVG.cjs → EM2PMFEW.cjs} +23 -17
  29. package/cjs/__chunks/ESIFH6RK.cjs +32 -0
  30. package/cjs/__chunks/{IONDNL4F.cjs → EXKBMUPC.cjs} +17 -14
  31. package/cjs/__chunks/{SXSNI6QA.cjs → F7HVNVHQ.cjs} +14 -10
  32. package/cjs/__chunks/{BVCQMR5S.cjs → FU76FHC2.cjs} +50 -41
  33. package/cjs/__chunks/{6THZKJIB.cjs → GE4P5OCB.cjs} +26 -20
  34. package/cjs/__chunks/{OISXSXPD.cjs → GHWBKA6H.cjs} +11 -7
  35. package/cjs/__chunks/GRHIGAKK.cjs +48 -0
  36. package/cjs/__chunks/H4HQSH5N.cjs +33 -0
  37. package/cjs/__chunks/{W2ODSL37.cjs → HVQRVCAS.cjs} +21 -15
  38. package/cjs/__chunks/{QTUC5TMJ.cjs → ISPZN54T.cjs} +18 -13
  39. package/cjs/__chunks/{YTLECYPS.cjs → IUMXLBMB.cjs} +41 -31
  40. package/cjs/__chunks/{IZT4J627.cjs → IVDDGJWU.cjs} +13 -7
  41. package/cjs/__chunks/{R6BI5EIU.cjs → J3YGFEJT.cjs} +6 -6
  42. package/cjs/__chunks/KFXK3MNI.cjs +11 -0
  43. package/cjs/__chunks/{WUOKNX34.cjs → KJ6JFZDM.cjs} +22 -16
  44. package/cjs/__chunks/{6622YWGR.cjs → KLZID3QO.cjs} +7 -4
  45. package/cjs/__chunks/KY5OLICK.cjs +33 -0
  46. package/cjs/__chunks/{IBJDDWWU.cjs → KZLZWIJN.cjs} +7 -4
  47. package/cjs/__chunks/{2G5G7FQE.cjs → LIP53P4I.cjs} +72 -61
  48. package/cjs/__chunks/{XXDYPCCB.cjs → M72BOABW.cjs} +3 -3
  49. package/cjs/__chunks/{DCYFB2F3.cjs → MMOSWGBA.cjs} +6 -6
  50. package/cjs/__chunks/N3CPQNGA.cjs +34 -0
  51. package/cjs/__chunks/{GUYEUWH3.cjs → NCNXDNIC.cjs} +6 -6
  52. package/cjs/__chunks/NR3SJH64.cjs +90 -0
  53. package/cjs/__chunks/{5QY4WCTR.cjs → NREUHWTU.cjs} +14 -6
  54. package/cjs/__chunks/{URF73P5I.cjs → NUMCUPYT.cjs} +46 -36
  55. package/cjs/__chunks/{X5PL2AHY.cjs → NVBNDB5B.cjs} +42 -32
  56. package/cjs/__chunks/NZYGNCZL.cjs +61 -0
  57. package/cjs/__chunks/O45IXGJW.cjs +55 -0
  58. package/cjs/__chunks/OEMSRXCM.cjs +43 -0
  59. package/cjs/__chunks/OHRAT4C4.cjs +68 -0
  60. package/cjs/__chunks/OV363CW6.cjs +61 -0
  61. package/cjs/__chunks/{QVX74QFT.cjs → P7TWEJ6I.cjs} +8 -5
  62. package/cjs/__chunks/{KUXCWMWW.cjs → PFD4TS6B.cjs} +25 -20
  63. package/cjs/__chunks/QRAQT522.cjs +70 -0
  64. package/cjs/__chunks/{DGBC5VB4.cjs → QTPUX3NM.cjs} +13 -11
  65. package/cjs/__chunks/{2ZU7T6CD.cjs → QXXZLOZG.cjs} +26 -24
  66. package/cjs/__chunks/{USA6K5CC.cjs → RD47UJK7.cjs} +9 -6
  67. package/cjs/__chunks/{K5YC5EZN.cjs → RHO5OVPE.cjs} +37 -31
  68. package/cjs/__chunks/{RLMRI6EX.cjs → SN6W6IRB.cjs} +15 -11
  69. package/cjs/__chunks/TVZPJJTX.cjs +26 -0
  70. package/cjs/__chunks/{TBYPXZ5H.cjs → UBDR3SAB.cjs} +30 -22
  71. package/cjs/__chunks/VCDX6ZTB.cjs +133 -0
  72. package/cjs/__chunks/{5EIZ4QQ7.cjs → W32FX7DM.cjs} +11 -9
  73. package/cjs/__chunks/{HSDQTR23.cjs → WA6EKMUL.cjs} +6 -6
  74. package/cjs/__chunks/{EZH72G5T.cjs → WB27Q34H.cjs} +21 -16
  75. package/cjs/__chunks/WUH43WQ5.cjs +35 -0
  76. package/cjs/__chunks/{YDTVED7A.cjs → XFZ3MEQZ.cjs} +9 -6
  77. package/cjs/__chunks/ZA4H6SFX.cjs +33 -0
  78. package/cjs/__chunks/{Y5DDEPH5.cjs → ZEPLRONX.cjs} +20 -15
  79. package/cjs/button/button.cjs +7 -6
  80. package/cjs/checkbox/checkbox-check.cjs +4 -3
  81. package/cjs/checkbox/checkbox-checked-context.cjs +1 -0
  82. package/cjs/checkbox/checkbox-store.cjs +5 -4
  83. package/cjs/checkbox/checkbox.cjs +8 -7
  84. package/cjs/collection/collection-context.cjs +1 -0
  85. package/cjs/collection/collection-item.cjs +5 -4
  86. package/cjs/collection/collection-store.cjs +5 -4
  87. package/cjs/collection/collection.cjs +11 -7
  88. package/cjs/combobox/combobox-cancel.cjs +27 -18
  89. package/cjs/combobox/combobox-context.cjs +1 -0
  90. package/cjs/combobox/combobox-disclosure.cjs +27 -21
  91. package/cjs/combobox/combobox-group-label.cjs +9 -8
  92. package/cjs/combobox/combobox-group.cjs +9 -8
  93. package/cjs/combobox/combobox-item-value.cjs +15 -11
  94. package/cjs/combobox/combobox-item.cjs +63 -49
  95. package/cjs/combobox/combobox-list.cjs +5 -4
  96. package/cjs/combobox/combobox-popover.cjs +40 -33
  97. package/cjs/combobox/combobox-row.cjs +14 -9
  98. package/cjs/combobox/combobox-separator.cjs +13 -8
  99. package/cjs/combobox/combobox-store.cjs +16 -16
  100. package/cjs/combobox/combobox.cjs +80 -63
  101. package/cjs/command/command.cjs +6 -5
  102. package/cjs/composite/composite-container.cjs +7 -6
  103. package/cjs/composite/composite-context.cjs +1 -0
  104. package/cjs/composite/composite-group-label.cjs +6 -5
  105. package/cjs/composite/composite-group.cjs +6 -5
  106. package/cjs/composite/composite-hover.cjs +5 -4
  107. package/cjs/composite/composite-input.cjs +6 -5
  108. package/cjs/composite/composite-item.cjs +10 -9
  109. package/cjs/composite/composite-overflow-disclosure.cjs +34 -28
  110. package/cjs/composite/composite-overflow-store.cjs +12 -9
  111. package/cjs/composite/composite-overflow.cjs +60 -51
  112. package/cjs/composite/composite-row.cjs +5 -4
  113. package/cjs/composite/composite-separator.cjs +5 -4
  114. package/cjs/composite/composite-store.cjs +6 -5
  115. package/cjs/composite/composite-typeahead.cjs +6 -5
  116. package/cjs/composite/composite.cjs +7 -6
  117. package/cjs/composite/utils.cjs +3 -2
  118. package/cjs/dialog/dialog-backdrop.cjs +6 -5
  119. package/cjs/dialog/dialog-context.cjs +1 -0
  120. package/cjs/dialog/dialog-description.cjs +5 -4
  121. package/cjs/dialog/dialog-disclosure.cjs +9 -8
  122. package/cjs/dialog/dialog-dismiss.cjs +8 -7
  123. package/cjs/dialog/dialog-heading.cjs +6 -5
  124. package/cjs/dialog/dialog-store.cjs +6 -5
  125. package/cjs/dialog/dialog.cjs +22 -20
  126. package/cjs/dialog/dialog.d.ts +30 -18
  127. package/cjs/dialog/utils/disable-accessibility-tree-outside.cjs +7 -3
  128. package/cjs/dialog/utils/disable-accessibility-tree-outside.d.ts +1 -0
  129. package/cjs/dialog/utils/disable-tree-outside.cjs +7 -3
  130. package/cjs/dialog/utils/mark-tree-outside.cjs +15 -0
  131. package/cjs/dialog/utils/mark-tree-outside.d.ts +6 -0
  132. package/cjs/dialog/utils/orchestrate.cjs +13 -0
  133. package/cjs/dialog/utils/orchestrate.d.ts +9 -0
  134. package/cjs/dialog/utils/prepend-hidden-dismiss.cjs +3 -2
  135. package/cjs/dialog/utils/supports-inert.cjs +7 -0
  136. package/cjs/dialog/utils/supports-inert.d.ts +1 -0
  137. package/cjs/dialog/utils/use-hide-on-interact-outside.cjs +7 -3
  138. package/cjs/dialog/utils/use-hide-on-interact-outside.d.ts +1 -5
  139. package/cjs/dialog/utils/use-nested-dialogs.cjs +4 -3
  140. package/cjs/dialog/utils/use-nested-dialogs.d.ts +2 -6
  141. package/cjs/dialog/utils/use-prevent-body-scroll.cjs +5 -4
  142. package/cjs/dialog/utils/use-previous-mouse-down-ref.cjs +1 -0
  143. package/cjs/dialog/utils/walk-tree-outside.cjs +3 -2
  144. package/cjs/dialog/utils/walk-tree-outside.d.ts +1 -1
  145. package/cjs/disclosure/disclosure-content.cjs +5 -4
  146. package/cjs/disclosure/disclosure-store.cjs +5 -4
  147. package/cjs/disclosure/disclosure.cjs +8 -7
  148. package/cjs/focus-trap/focus-trap-region.cjs +77 -6
  149. package/cjs/focus-trap/focus-trap.cjs +5 -4
  150. package/cjs/focusable/focusable-container.cjs +5 -4
  151. package/cjs/focusable/focusable-context.cjs +1 -0
  152. package/cjs/focusable/focusable.cjs +5 -4
  153. package/cjs/focusable/focusable.d.ts +4 -0
  154. package/cjs/form/form-checkbox.cjs +25 -21
  155. package/cjs/form/form-context.cjs +1 -0
  156. package/cjs/form/form-description.cjs +22 -17
  157. package/cjs/form/form-error.cjs +24 -18
  158. package/cjs/form/form-field.cjs +6 -5
  159. package/cjs/form/form-group-label.cjs +12 -8
  160. package/cjs/form/form-group.cjs +6 -5
  161. package/cjs/form/form-input.cjs +25 -19
  162. package/cjs/form/form-label.cjs +33 -29
  163. package/cjs/form/form-push.cjs +40 -29
  164. package/cjs/form/form-radio-group.cjs +15 -10
  165. package/cjs/form/form-radio.cjs +31 -27
  166. package/cjs/form/form-remove.cjs +31 -25
  167. package/cjs/form/form-reset.cjs +18 -14
  168. package/cjs/form/form-store.cjs +16 -13
  169. package/cjs/form/form-submit.cjs +19 -14
  170. package/cjs/form/form.cjs +47 -32
  171. package/cjs/group/group-label-context.cjs +1 -0
  172. package/cjs/group/group-label.cjs +5 -4
  173. package/cjs/group/group.cjs +5 -4
  174. package/cjs/heading/heading-context.cjs +1 -0
  175. package/cjs/heading/heading-level.cjs +1 -0
  176. package/cjs/heading/heading.cjs +5 -4
  177. package/cjs/hovercard/hovercard-anchor.cjs +6 -5
  178. package/cjs/hovercard/hovercard-arrow.cjs +8 -7
  179. package/cjs/hovercard/hovercard-description.cjs +7 -6
  180. package/cjs/hovercard/hovercard-disclosure.cjs +33 -31
  181. package/cjs/hovercard/hovercard-dismiss.cjs +10 -9
  182. package/cjs/hovercard/hovercard-heading.cjs +8 -7
  183. package/cjs/hovercard/hovercard-store.cjs +8 -7
  184. package/cjs/hovercard/hovercard.cjs +24 -22
  185. package/cjs/hovercard/utils/debug-polygon.cjs +3 -1
  186. package/cjs/hovercard/utils/polygon.cjs +1 -0
  187. package/cjs/index.cjs +3 -1
  188. package/cjs/menu/menu-arrow.cjs +8 -7
  189. package/cjs/menu/menu-bar-store.cjs +11 -8
  190. package/cjs/menu/menu-bar.cjs +19 -15
  191. package/cjs/menu/menu-button-arrow.cjs +12 -7
  192. package/cjs/menu/menu-button.cjs +51 -47
  193. package/cjs/menu/menu-context.cjs +1 -0
  194. package/cjs/menu/menu-description.cjs +10 -9
  195. package/cjs/menu/menu-dismiss.cjs +13 -12
  196. package/cjs/menu/menu-group-label.cjs +9 -8
  197. package/cjs/menu/menu-group.cjs +9 -8
  198. package/cjs/menu/menu-heading.cjs +11 -10
  199. package/cjs/menu/menu-item-check.cjs +15 -9
  200. package/cjs/menu/menu-item-checkbox.cjs +30 -26
  201. package/cjs/menu/menu-item-radio.cjs +47 -38
  202. package/cjs/menu/menu-item.cjs +13 -12
  203. package/cjs/menu/menu-list.cjs +10 -9
  204. package/cjs/menu/menu-separator.cjs +8 -7
  205. package/cjs/menu/menu-store.cjs +26 -24
  206. package/cjs/menu/menu.cjs +69 -62
  207. package/cjs/menu/utils.cjs +3 -2
  208. package/cjs/popover/popover-anchor.cjs +5 -4
  209. package/cjs/popover/popover-arrow-path.cjs +1 -0
  210. package/cjs/popover/popover-arrow.cjs +5 -4
  211. package/cjs/popover/popover-context.cjs +1 -0
  212. package/cjs/popover/popover-description.cjs +6 -5
  213. package/cjs/popover/popover-disclosure-arrow.cjs +4 -3
  214. package/cjs/popover/popover-disclosure.cjs +11 -10
  215. package/cjs/popover/popover-dismiss.cjs +9 -8
  216. package/cjs/popover/popover-heading.cjs +7 -6
  217. package/cjs/popover/popover-store.cjs +7 -6
  218. package/cjs/popover/popover.cjs +23 -21
  219. package/cjs/portal/portal-context.cjs +1 -0
  220. package/cjs/portal/portal.cjs +7 -6
  221. package/cjs/radio/radio-context.cjs +1 -0
  222. package/cjs/radio/radio-group.cjs +19 -15
  223. package/cjs/radio/radio-store.cjs +11 -8
  224. package/cjs/radio/radio.cjs +11 -10
  225. package/cjs/role/role.cjs +5 -4
  226. package/cjs/select/select-arrow.cjs +5 -4
  227. package/cjs/select/select-context.cjs +1 -0
  228. package/cjs/select/select-group-label.cjs +9 -8
  229. package/cjs/select/select-group.cjs +9 -8
  230. package/cjs/select/select-item-check.cjs +15 -9
  231. package/cjs/select/select-item.cjs +63 -51
  232. package/cjs/select/select-label.cjs +26 -21
  233. package/cjs/select/select-list.cjs +9 -8
  234. package/cjs/select/select-popover.cjs +36 -30
  235. package/cjs/select/select-row.cjs +14 -9
  236. package/cjs/select/select-separator.cjs +8 -7
  237. package/cjs/select/select-store.cjs +16 -16
  238. package/cjs/select/select.cjs +73 -52
  239. package/cjs/separator/separator.cjs +4 -3
  240. package/cjs/tab/tab-context.cjs +1 -0
  241. package/cjs/tab/tab-list.cjs +18 -14
  242. package/cjs/tab/tab-panel.cjs +33 -24
  243. package/cjs/tab/tab-panel.d.ts +3 -0
  244. package/cjs/tab/tab-store.cjs +15 -11
  245. package/cjs/tab/tab.cjs +44 -32
  246. package/cjs/toolbar/toolbar-container.cjs +21 -16
  247. package/cjs/toolbar/toolbar-context.cjs +1 -0
  248. package/cjs/toolbar/toolbar-input.cjs +21 -16
  249. package/cjs/toolbar/toolbar-item.cjs +11 -10
  250. package/cjs/toolbar/toolbar-separator.cjs +8 -7
  251. package/cjs/toolbar/toolbar-store.cjs +11 -8
  252. package/cjs/toolbar/toolbar.cjs +18 -14
  253. package/cjs/tooltip/tooltip-anchor.cjs +28 -22
  254. package/cjs/tooltip/tooltip-arrow.cjs +13 -8
  255. package/cjs/tooltip/tooltip-context.cjs +1 -0
  256. package/cjs/tooltip/tooltip-store.cjs +12 -9
  257. package/cjs/tooltip/tooltip.cjs +46 -37
  258. package/cjs/tsconfig.build.tsbuildinfo +1 -1
  259. package/cjs/utils/hooks.cjs +3 -2
  260. package/cjs/utils/misc.cjs +1 -0
  261. package/cjs/utils/store.cjs +4 -3
  262. package/cjs/utils/system.cjs +3 -2
  263. package/cjs/visually-hidden/visually-hidden.cjs +4 -3
  264. package/dialog/utils/mark-tree-outside/package.json +7 -0
  265. package/dialog/utils/orchestrate/package.json +7 -0
  266. package/dialog/utils/supports-inert/package.json +7 -0
  267. package/esm/__chunks/{UBWZV2LZ.js → 24P2K6AU.js} +16 -10
  268. package/esm/__chunks/{2EKS6A3C.js → 3FKA4P4C.js} +6 -3
  269. package/esm/__chunks/{EX5SMLJA.js → 3L2YBPR3.js} +48 -34
  270. package/esm/__chunks/4BKCJXBM.js +37 -0
  271. package/esm/__chunks/4H6H5RRM.js +55 -0
  272. package/esm/__chunks/{DGTYZREX.js → 4JRG3QNR.js} +13 -9
  273. package/esm/__chunks/{SMBMF2TX.js → 4QNHBDVS.js} +18 -12
  274. package/esm/__chunks/{JE5NWDDX.js → 5ETIGB6O.js} +11 -6
  275. package/esm/__chunks/{7GYXZEBT.js → 5LA7CLO3.js} +23 -17
  276. package/esm/__chunks/{PU22SOKH.js → 62DFK33R.js} +11 -9
  277. package/esm/__chunks/{FVED2REU.js → 65MJJ4BW.js} +13 -8
  278. package/esm/__chunks/{FFRIGW5T.js → 6AJCHLAV.js} +15 -9
  279. package/esm/__chunks/{CDHQAO3X.js → 6M5FZNI5.js} +33 -23
  280. package/esm/__chunks/{MMKQPA5B.js → 6O3TZMB4.js} +16 -11
  281. package/esm/__chunks/{D6AEGMVG.js → 6WVG5KFF.js} +7 -3
  282. package/esm/__chunks/7A3SODQV.js +26 -0
  283. package/esm/__chunks/{HBXYECGK.js → AGWM73EZ.js} +30 -20
  284. package/esm/__chunks/{B7MIN7YT.js → ASYR66PQ.js} +13 -5
  285. package/esm/__chunks/{EUGPS2W3.js → AV5WE37O.js} +7 -3
  286. package/esm/__chunks/{KO6UUYKG.js → AWLCMCCK.js} +7 -3
  287. package/esm/__chunks/{GUVHAKSF.js → B7WY5IEM.js} +15 -9
  288. package/esm/__chunks/BH4YAZB2.js +56 -0
  289. package/esm/__chunks/{DQXTORDL.js → C5MG6ALB.js} +29 -23
  290. package/esm/__chunks/{RNWB46DZ.js → D6NPK2DL.js} +11 -6
  291. package/esm/__chunks/{NDTB3OGK.js → DIO64N2C.js} +13 -10
  292. package/esm/__chunks/DJESYNLE.js +90 -0
  293. package/esm/__chunks/{V3PAD47N.js → DQSQP4IL.js} +28 -22
  294. package/esm/__chunks/{TCSUGBIK.js → E6PO3W4O.js} +7 -3
  295. package/esm/__chunks/{SG5D3YRB.js → ECY3BFPU.js} +8 -6
  296. package/esm/__chunks/{LMKEQY3H.js → HFDCAETG.js} +35 -25
  297. package/esm/__chunks/{NL6KEDBG.js → HN4VMOUI.js} +5 -2
  298. package/esm/__chunks/{NYJYNUSY.js → HWXCBMWZ.js} +7 -3
  299. package/esm/__chunks/{VDIWPJGE.js → HXGZWZML.js} +14 -9
  300. package/esm/__chunks/{HVXLVRRR.js → ISPCL6N4.js} +15 -3
  301. package/esm/__chunks/{SE7IFIBU.js → JNCKMFIN.js} +10 -8
  302. package/esm/__chunks/{SDULECC7.js → JQEVJM46.js} +10 -8
  303. package/esm/__chunks/{4U6AOLE4.js → JXNLCNWG.js} +20 -18
  304. package/esm/__chunks/{3QLNHI3O.js → KCAKBKAU.js} +1 -1
  305. package/esm/__chunks/KOVUJERF.js +8 -0
  306. package/esm/__chunks/{HOVZF3TA.js → KPEUI6QX.js} +10 -6
  307. package/esm/__chunks/{6OCAIYRY.js → KSVEVAMH.js} +15 -9
  308. package/esm/__chunks/{ARIIJA3Z.js → KUXENZYT.js} +39 -83
  309. package/esm/__chunks/{QYIULXLT.js → LPZMU6Z4.js} +9 -4
  310. package/esm/__chunks/{OOPJDYET.js → LSTZ5Q72.js} +9 -4
  311. package/esm/__chunks/{HAHDW4I2.js → M32DI6TL.js} +50 -39
  312. package/esm/__chunks/{A62WSI6V.js → MERE2IT6.js} +9 -4
  313. package/esm/__chunks/{WKCZETSE.js → MEYEPL2D.js} +5 -2
  314. package/esm/__chunks/{A2DUDEP2.js → MHR7JFVW.js} +9 -4
  315. package/esm/__chunks/{SE2URGHN.js → MR7KGB6U.js} +2 -2
  316. package/esm/__chunks/{TTILJGKR.js → NILUKB4E.js} +2 -2
  317. package/esm/__chunks/{LWUHIEZR.js → OBNQHP6V.js} +6 -3
  318. package/esm/__chunks/{GEZPJZJE.js → OQUXG6FE.js} +11 -7
  319. package/esm/__chunks/{STKLF26R.js → OXPV2NBK.js} +6 -3
  320. package/esm/__chunks/{NOLA2XUH.js → OY5YT7OV.js} +47 -30
  321. package/esm/__chunks/{QLGPSTUO.js → PIRVQZZN.js} +2 -2
  322. package/esm/__chunks/{NMA53LJC.js → POSBQXS7.js} +10 -4
  323. package/esm/__chunks/{HS4EASQI.js → PYEPYVON.js} +10 -6
  324. package/esm/__chunks/{DH2UH4YR.js → PZK3B6LX.js} +41 -28
  325. package/esm/__chunks/{DVR5Q5UR.js → R3XRDDO7.js} +2 -2
  326. package/esm/__chunks/{GWYHKM6Q.js → RBUEJWRA.js} +15 -41
  327. package/esm/__chunks/{TQC4ZBYZ.js → RPJS3S4B.js} +35 -25
  328. package/esm/__chunks/{LUPFVLDA.js → RVIGSXKO.js} +41 -32
  329. package/esm/__chunks/{HMJVMCGK.js → RXTFLI35.js} +2 -2
  330. package/esm/__chunks/{YTUXLB4R.js → SHGWT5HV.js} +10 -7
  331. package/esm/__chunks/{ZNVJPG2U.js → SSM4B45D.js} +6 -3
  332. package/esm/__chunks/T3WBUAHU.js +61 -0
  333. package/esm/__chunks/{E3LZDF77.js → TCX5FQUL.js} +168 -170
  334. package/esm/__chunks/{KHFKAEA6.js → TFLZHAF5.js} +15 -10
  335. package/esm/__chunks/{NZB3NDFQ.js → TSWOSEC5.js} +16 -10
  336. package/esm/__chunks/{Q7WBN353.js → UBPCHT5E.js} +19 -14
  337. package/esm/__chunks/{DRSUYUM5.js → UGXJ5IN7.js} +22 -14
  338. package/esm/__chunks/{MPZ7PKON.js → USCWE5QL.js} +14 -9
  339. package/esm/__chunks/W7JXAQKF.js +11 -0
  340. package/esm/__chunks/{HTHL3GU7.js → WQVVOKZA.js} +14 -10
  341. package/esm/__chunks/{ON2AV7GH.js → X7UZWWYG.js} +14 -8
  342. package/esm/__chunks/{H5L4MRQM.js → XHOWZOKI.js} +16 -11
  343. package/esm/__chunks/{2PS226YW.js → YEBR6RK7.js} +2 -2
  344. package/esm/button/button.js +6 -5
  345. package/esm/checkbox/checkbox-check.js +3 -2
  346. package/esm/checkbox/checkbox-checked-context.js +1 -0
  347. package/esm/checkbox/checkbox-store.js +4 -3
  348. package/esm/checkbox/checkbox.js +7 -6
  349. package/esm/collection/collection-context.js +1 -0
  350. package/esm/collection/collection-item.js +4 -3
  351. package/esm/collection/collection-store.js +4 -3
  352. package/esm/collection/collection.js +7 -3
  353. package/esm/combobox/combobox-cancel.js +21 -12
  354. package/esm/combobox/combobox-context.js +1 -0
  355. package/esm/combobox/combobox-disclosure.js +21 -15
  356. package/esm/combobox/combobox-group-label.js +5 -4
  357. package/esm/combobox/combobox-group.js +5 -4
  358. package/esm/combobox/combobox-item-value.js +11 -7
  359. package/esm/combobox/combobox-item.js +53 -39
  360. package/esm/combobox/combobox-list.js +4 -3
  361. package/esm/combobox/combobox-popover.js +36 -29
  362. package/esm/combobox/combobox-row.js +11 -6
  363. package/esm/combobox/combobox-separator.js +10 -5
  364. package/esm/combobox/combobox-store.js +12 -12
  365. package/esm/combobox/combobox.js +57 -40
  366. package/esm/command/command.js +5 -4
  367. package/esm/composite/composite-container.js +6 -5
  368. package/esm/composite/composite-context.js +1 -0
  369. package/esm/composite/composite-group-label.js +5 -4
  370. package/esm/composite/composite-group.js +5 -4
  371. package/esm/composite/composite-hover.js +4 -3
  372. package/esm/composite/composite-input.js +5 -4
  373. package/esm/composite/composite-item.js +9 -8
  374. package/esm/composite/composite-overflow-disclosure.js +28 -22
  375. package/esm/composite/composite-overflow-store.js +9 -6
  376. package/esm/composite/composite-overflow.js +55 -46
  377. package/esm/composite/composite-row.js +4 -3
  378. package/esm/composite/composite-separator.js +4 -3
  379. package/esm/composite/composite-store.js +5 -4
  380. package/esm/composite/composite-typeahead.js +5 -4
  381. package/esm/composite/composite.js +6 -5
  382. package/esm/composite/utils.js +2 -1
  383. package/esm/dialog/dialog-backdrop.js +5 -4
  384. package/esm/dialog/dialog-context.js +1 -0
  385. package/esm/dialog/dialog-description.js +4 -3
  386. package/esm/dialog/dialog-disclosure.js +8 -7
  387. package/esm/dialog/dialog-dismiss.js +7 -6
  388. package/esm/dialog/dialog-heading.js +5 -4
  389. package/esm/dialog/dialog-store.js +5 -4
  390. package/esm/dialog/dialog.d.ts +30 -18
  391. package/esm/dialog/dialog.js +21 -19
  392. package/esm/dialog/utils/disable-accessibility-tree-outside.d.ts +1 -0
  393. package/esm/dialog/utils/disable-accessibility-tree-outside.js +8 -4
  394. package/esm/dialog/utils/disable-tree-outside.js +6 -2
  395. package/esm/dialog/utils/mark-tree-outside.d.ts +6 -0
  396. package/esm/dialog/utils/mark-tree-outside.js +15 -0
  397. package/esm/dialog/utils/orchestrate.d.ts +9 -0
  398. package/esm/dialog/utils/orchestrate.js +13 -0
  399. package/esm/dialog/utils/prepend-hidden-dismiss.js +2 -1
  400. package/esm/dialog/utils/supports-inert.d.ts +1 -0
  401. package/esm/dialog/utils/supports-inert.js +7 -0
  402. package/esm/dialog/utils/use-hide-on-interact-outside.d.ts +1 -5
  403. package/esm/dialog/utils/use-hide-on-interact-outside.js +6 -2
  404. package/esm/dialog/utils/use-nested-dialogs.d.ts +2 -6
  405. package/esm/dialog/utils/use-nested-dialogs.js +3 -2
  406. package/esm/dialog/utils/use-prevent-body-scroll.js +4 -3
  407. package/esm/dialog/utils/use-previous-mouse-down-ref.js +1 -0
  408. package/esm/dialog/utils/walk-tree-outside.d.ts +1 -1
  409. package/esm/dialog/utils/walk-tree-outside.js +2 -1
  410. package/esm/disclosure/disclosure-content.js +4 -3
  411. package/esm/disclosure/disclosure-store.js +4 -3
  412. package/esm/disclosure/disclosure.js +7 -6
  413. package/esm/focus-trap/focus-trap-region.js +78 -7
  414. package/esm/focus-trap/focus-trap.js +4 -3
  415. package/esm/focusable/focusable-container.js +4 -3
  416. package/esm/focusable/focusable-context.js +1 -0
  417. package/esm/focusable/focusable.d.ts +4 -0
  418. package/esm/focusable/focusable.js +4 -3
  419. package/esm/form/form-checkbox.js +20 -16
  420. package/esm/form/form-context.js +1 -0
  421. package/esm/form/form-description.js +17 -12
  422. package/esm/form/form-error.js +18 -12
  423. package/esm/form/form-field.js +5 -4
  424. package/esm/form/form-group-label.js +8 -4
  425. package/esm/form/form-group.js +5 -4
  426. package/esm/form/form-input.js +19 -13
  427. package/esm/form/form-label.js +26 -22
  428. package/esm/form/form-push.js +34 -23
  429. package/esm/form/form-radio-group.js +11 -6
  430. package/esm/form/form-radio.js +26 -22
  431. package/esm/form/form-remove.js +22 -16
  432. package/esm/form/form-reset.js +14 -10
  433. package/esm/form/form-store.js +9 -6
  434. package/esm/form/form-submit.js +16 -11
  435. package/esm/form/form.js +35 -20
  436. package/esm/group/group-label-context.js +1 -0
  437. package/esm/group/group-label.js +4 -3
  438. package/esm/group/group.js +4 -3
  439. package/esm/heading/heading-context.js +1 -0
  440. package/esm/heading/heading-level.js +1 -0
  441. package/esm/heading/heading.js +4 -3
  442. package/esm/hovercard/hovercard-anchor.js +5 -4
  443. package/esm/hovercard/hovercard-arrow.js +4 -3
  444. package/esm/hovercard/hovercard-description.js +6 -5
  445. package/esm/hovercard/hovercard-disclosure.js +25 -23
  446. package/esm/hovercard/hovercard-dismiss.js +9 -8
  447. package/esm/hovercard/hovercard-heading.js +7 -6
  448. package/esm/hovercard/hovercard-store.js +7 -6
  449. package/esm/hovercard/hovercard.js +23 -21
  450. package/esm/hovercard/utils/debug-polygon.js +2 -0
  451. package/esm/hovercard/utils/polygon.js +1 -0
  452. package/esm/index.js +2 -0
  453. package/esm/menu/menu-arrow.js +4 -3
  454. package/esm/menu/menu-bar-store.js +8 -5
  455. package/esm/menu/menu-bar.js +15 -11
  456. package/esm/menu/menu-button-arrow.js +9 -4
  457. package/esm/menu/menu-button.js +39 -35
  458. package/esm/menu/menu-context.js +1 -0
  459. package/esm/menu/menu-description.js +6 -5
  460. package/esm/menu/menu-dismiss.js +9 -8
  461. package/esm/menu/menu-group-label.js +5 -4
  462. package/esm/menu/menu-group.js +5 -4
  463. package/esm/menu/menu-heading.js +7 -6
  464. package/esm/menu/menu-item-check.js +11 -5
  465. package/esm/menu/menu-item-checkbox.js +25 -21
  466. package/esm/menu/menu-item-radio.js +42 -33
  467. package/esm/menu/menu-item.js +12 -11
  468. package/esm/menu/menu-list.js +9 -8
  469. package/esm/menu/menu-separator.js +4 -3
  470. package/esm/menu/menu-store.js +21 -19
  471. package/esm/menu/menu.js +62 -55
  472. package/esm/menu/utils.js +2 -1
  473. package/esm/popover/popover-anchor.js +4 -3
  474. package/esm/popover/popover-arrow-path.js +1 -0
  475. package/esm/popover/popover-arrow.js +4 -3
  476. package/esm/popover/popover-context.js +1 -0
  477. package/esm/popover/popover-description.js +5 -4
  478. package/esm/popover/popover-disclosure-arrow.js +3 -2
  479. package/esm/popover/popover-disclosure.js +10 -9
  480. package/esm/popover/popover-dismiss.js +8 -7
  481. package/esm/popover/popover-heading.js +6 -5
  482. package/esm/popover/popover-store.js +6 -5
  483. package/esm/popover/popover.js +22 -20
  484. package/esm/portal/portal-context.js +1 -0
  485. package/esm/portal/portal.js +6 -5
  486. package/esm/radio/radio-context.js +1 -0
  487. package/esm/radio/radio-group.js +15 -11
  488. package/esm/radio/radio-store.js +8 -5
  489. package/esm/radio/radio.js +10 -9
  490. package/esm/role/role.js +2 -1
  491. package/esm/select/select-arrow.js +4 -3
  492. package/esm/select/select-context.js +1 -0
  493. package/esm/select/select-group-label.js +5 -4
  494. package/esm/select/select-group.js +5 -4
  495. package/esm/select/select-item-check.js +11 -5
  496. package/esm/select/select-item.js +53 -41
  497. package/esm/select/select-label.js +19 -14
  498. package/esm/select/select-list.js +8 -7
  499. package/esm/select/select-popover.js +33 -27
  500. package/esm/select/select-row.js +11 -6
  501. package/esm/select/select-separator.js +4 -3
  502. package/esm/select/select-store.js +12 -12
  503. package/esm/select/select.js +59 -38
  504. package/esm/separator/separator.js +3 -2
  505. package/esm/tab/tab-context.js +1 -0
  506. package/esm/tab/tab-list.js +15 -11
  507. package/esm/tab/tab-panel.d.ts +3 -0
  508. package/esm/tab/tab-panel.js +26 -17
  509. package/esm/tab/tab-store.js +10 -6
  510. package/esm/tab/tab.js +38 -26
  511. package/esm/toolbar/toolbar-container.js +18 -13
  512. package/esm/toolbar/toolbar-context.js +1 -0
  513. package/esm/toolbar/toolbar-input.js +18 -13
  514. package/esm/toolbar/toolbar-item.js +10 -9
  515. package/esm/toolbar/toolbar-separator.js +4 -3
  516. package/esm/toolbar/toolbar-store.js +8 -5
  517. package/esm/toolbar/toolbar.js +15 -11
  518. package/esm/tooltip/tooltip-anchor.js +20 -14
  519. package/esm/tooltip/tooltip-arrow.js +10 -5
  520. package/esm/tooltip/tooltip-context.js +1 -0
  521. package/esm/tooltip/tooltip-store.js +9 -6
  522. package/esm/tooltip/tooltip.js +37 -28
  523. package/esm/tsconfig.build.tsbuildinfo +1 -1
  524. package/esm/utils/hooks.js +2 -1
  525. package/esm/utils/misc.js +1 -0
  526. package/esm/utils/store.js +3 -2
  527. package/esm/utils/system.js +2 -1
  528. package/esm/visually-hidden/visually-hidden.js +3 -2
  529. package/package.json +13 -5
  530. package/cjs/__chunks/5ARECY7S.cjs +0 -471
  531. package/cjs/__chunks/66TVVZQ7.cjs +0 -56
  532. package/cjs/__chunks/7AIJRTAH.cjs +0 -30
  533. package/cjs/__chunks/7RBGKDQ5.cjs +0 -28
  534. package/cjs/__chunks/BJTWNJAP.cjs +0 -31
  535. package/cjs/__chunks/CE4N5VGL.cjs +0 -28
  536. package/cjs/__chunks/CP6M4POZ.cjs +0 -96
  537. package/cjs/__chunks/DARNBOHZ.cjs +0 -62
  538. package/cjs/__chunks/EE77OJ6W.cjs +0 -30
  539. package/cjs/__chunks/EFF3S3YM.cjs +0 -41
  540. package/cjs/__chunks/ET6BKYQA.cjs +0 -29
  541. package/cjs/__chunks/F2O4M6DR.cjs +0 -8
  542. package/cjs/__chunks/F5U4P2DJ.cjs +0 -127
  543. package/cjs/__chunks/GD6HHJCV.cjs +0 -44
  544. package/cjs/__chunks/HRXM35NF.cjs +0 -51
  545. package/cjs/__chunks/K5PHY3H7.cjs +0 -112
  546. package/cjs/__chunks/MAH7ORCZ.cjs +0 -39
  547. package/cjs/__chunks/NKZKDBAR.cjs +0 -53
  548. package/cjs/__chunks/OKPDB2ZM.cjs +0 -44
  549. package/cjs/__chunks/UHVME3EZ.cjs +0 -46
  550. package/cjs/__chunks/UK7WFIG4.cjs +0 -100
  551. package/cjs/__chunks/VXIYZJTU.cjs +0 -28
  552. package/cjs/__chunks/WBMW454M.cjs +0 -30
  553. package/cjs/__chunks/XFVLDGPP.cjs +0 -31
  554. package/cjs/__chunks/YHG3KGFW.cjs +0 -28
  555. package/cjs/__chunks/ZDO3DQPW.cjs +0 -43
  556. package/cjs/__chunks/ZNVMDYMM.cjs +0 -78
  557. package/cjs/dialog/utils/use-champion-dialog.cjs +0 -8
  558. package/cjs/dialog/utils/use-champion-dialog.d.ts +0 -6
  559. package/dialog/utils/use-champion-dialog/package.json +0 -7
  560. package/esm/__chunks/2SVAPVVI.js +0 -78
  561. package/esm/__chunks/FD7UP2TJ.js +0 -43
  562. package/esm/__chunks/IIX2NU6T.js +0 -100
  563. package/esm/__chunks/NV7HSBKK.js +0 -31
  564. package/esm/__chunks/SJEKLK5Q.js +0 -8
  565. package/esm/__chunks/X3J57OQT.js +0 -44
  566. package/esm/dialog/utils/use-champion-dialog.d.ts +0 -6
  567. package/esm/dialog/utils/use-champion-dialog.js +0 -8
@@ -1,33 +1,30 @@
1
1
  import {
2
2
  DialogBackdrop
3
- } from "./4U6AOLE4.js";
3
+ } from "./JXNLCNWG.js";
4
4
  import {
5
5
  usePreventBodyScroll
6
- } from "./GWYHKM6Q.js";
6
+ } from "./RBUEJWRA.js";
7
7
  import {
8
8
  useNestedDialogs
9
- } from "./IIX2NU6T.js";
9
+ } from "./T3WBUAHU.js";
10
10
  import {
11
11
  useHideOnInteractOutside
12
- } from "./ARIIJA3Z.js";
13
- import {
14
- useChampionDialog
15
- } from "./FD7UP2TJ.js";
12
+ } from "./KUXENZYT.js";
16
13
  import {
17
14
  prependHiddenDismiss
18
- } from "./PU22SOKH.js";
15
+ } from "./62DFK33R.js";
16
+ import {
17
+ markTreeOutside
18
+ } from "./BH4YAZB2.js";
19
19
  import {
20
20
  disableTreeOutside
21
- } from "./X3J57OQT.js";
21
+ } from "./4H6H5RRM.js";
22
22
  import {
23
23
  disableAccessibilityTreeOutside
24
- } from "./NV7HSBKK.js";
24
+ } from "./7A3SODQV.js";
25
25
  import {
26
26
  useFocusableContainer
27
- } from "./D6AEGMVG.js";
28
- import {
29
- useFocusTrapRegion
30
- } from "./2SVAPVVI.js";
27
+ } from "./6WVG5KFF.js";
31
28
  import {
32
29
  HeadingLevel
33
30
  } from "./6OMX4H3W.js";
@@ -38,27 +35,32 @@ import {
38
35
  } from "./LNHZLQEK.js";
39
36
  import {
40
37
  useFocusable
41
- } from "./HBXYECGK.js";
38
+ } from "./AGWM73EZ.js";
42
39
  import {
43
40
  usePortal
44
- } from "./MPZ7PKON.js";
41
+ } from "./USCWE5QL.js";
45
42
  import {
46
43
  useDisclosureContent
47
- } from "./FFRIGW5T.js";
44
+ } from "./6AJCHLAV.js";
48
45
  import {
49
46
  createComponent,
50
47
  createElement,
51
48
  createHook
52
- } from "./JE5NWDDX.js";
49
+ } from "./5ETIGB6O.js";
53
50
  import {
54
51
  useBooleanEvent,
52
+ useEvent,
55
53
  useForkRef,
56
54
  useId,
57
- useLiveRef,
58
55
  usePortalRef,
59
56
  useSafeLayoutEffect,
60
57
  useWrapElement
61
- } from "./B7MIN7YT.js";
58
+ } from "./ASYR66PQ.js";
59
+ import {
60
+ __objRest,
61
+ __spreadProps,
62
+ __spreadValues
63
+ } from "./4BKCJXBM.js";
62
64
 
63
65
  // src/dialog/dialog.tsx
64
66
  import { useEffect, useRef, useState } from "react";
@@ -88,10 +90,7 @@ function isBackdrop(dialog, element) {
88
90
  return;
89
91
  return element.getAttribute("data-backdrop") === id;
90
92
  }
91
- function isInDialog(element) {
92
- return (dialog) => dialog && contains(dialog, element);
93
- }
94
- function isAlreadyFocusingAnotherElement(dialog, nestedDialogs) {
93
+ function isAlreadyFocusingAnotherElement(dialog) {
95
94
  const activeElement = getActiveElement();
96
95
  if (!activeElement)
97
96
  return false;
@@ -99,7 +98,7 @@ function isAlreadyFocusingAnotherElement(dialog, nestedDialogs) {
99
98
  return false;
100
99
  if (isBackdrop(dialog, activeElement))
101
100
  return false;
102
- if (nestedDialogs?.some(isInDialog(activeElement)))
101
+ if (activeElement.hasAttribute("data-dialog"))
103
102
  return false;
104
103
  if (isFocusable(activeElement))
105
104
  return true;
@@ -116,22 +115,38 @@ function getElementFromProp(prop, focusable = false) {
116
115
  return element;
117
116
  }
118
117
  var useDialog = createHook(
119
- ({
120
- store,
121
- focusable = true,
122
- modal = true,
123
- portal = !!modal,
124
- backdrop = !!modal,
125
- backdropProps,
126
- hideOnEscape = true,
127
- hideOnInteractOutside = true,
128
- preventBodyScroll = !!modal,
129
- autoFocusOnShow = true,
130
- autoFocusOnHide = true,
131
- initialFocus,
132
- finalFocus,
133
- ...props
134
- }) => {
118
+ (_a) => {
119
+ var _b = _a, {
120
+ store,
121
+ focusable = true,
122
+ modal = true,
123
+ portal = !!modal,
124
+ backdrop = !!modal,
125
+ backdropProps,
126
+ hideOnEscape = true,
127
+ hideOnInteractOutside = true,
128
+ getPersistentElements,
129
+ preventBodyScroll = !!modal,
130
+ autoFocusOnShow = true,
131
+ autoFocusOnHide = true,
132
+ initialFocus,
133
+ finalFocus
134
+ } = _b, props = __objRest(_b, [
135
+ "store",
136
+ "focusable",
137
+ "modal",
138
+ "portal",
139
+ "backdrop",
140
+ "backdropProps",
141
+ "hideOnEscape",
142
+ "hideOnInteractOutside",
143
+ "getPersistentElements",
144
+ "preventBodyScroll",
145
+ "autoFocusOnShow",
146
+ "autoFocusOnHide",
147
+ "initialFocus",
148
+ "finalFocus"
149
+ ]);
135
150
  const ref = useRef(null);
136
151
  const { portalRef, portalNode, domReady } = usePortalRef(
137
152
  portal,
@@ -141,10 +156,14 @@ var useDialog = createHook(
141
156
  const preserveTabOrder = store.useState(
142
157
  (state) => preserveTabOrderProp && !modal && state.mounted
143
158
  );
144
- const open = store.useState("open");
145
- const shouldDisableAccessibilityTree = modal || portal && preserveTabOrder && isSafari();
146
159
  const id = useId(props.id);
160
+ const open = store.useState("open");
161
+ const mounted = store.useState("mounted");
147
162
  const contentElement = store.useState("contentElement");
163
+ usePreventBodyScroll(store, mounted && preventBodyScroll);
164
+ useHideOnInteractOutside(store, hideOnInteractOutside);
165
+ const { wrapElement, nestedDialogs } = useNestedDialogs(store);
166
+ props = useWrapElement(props, wrapElement, [wrapElement]);
148
167
  useEffect(() => {
149
168
  if (!open)
150
169
  return;
@@ -158,52 +177,14 @@ var useDialog = createHook(
158
177
  return;
159
178
  store.setDisclosureElement(activeElement);
160
179
  }, [open]);
161
- const nested = useNestedDialogs(store, modal);
162
- const { nestedDialogs, openModals, wrapElement } = nested;
163
- const nestedDialogsRef = useLiveRef(nestedDialogs);
164
- const shouldPreventBodyScroll = store.useState(
165
- (state) => preventBodyScroll && state.mounted
166
- );
167
- usePreventBodyScroll(store, shouldPreventBodyScroll);
168
- useHideOnInteractOutside({
169
- store,
170
- modal,
171
- hideOnInteractOutside,
172
- nestedDialogs
173
- });
174
- const shouldRestoreLostFocus = useChampionDialog(
175
- "data-dialog-restore-lost-focus",
176
- store,
177
- open && modal && !openModals.length
178
- );
179
- useEffect(() => {
180
- if (!shouldRestoreLostFocus())
181
- return;
182
- let raf = 0;
183
- const restoreLostFocus = () => {
184
- const dialog = ref.current;
185
- raf = requestAnimationFrame(restoreLostFocus);
186
- if (!dialog)
187
- return;
188
- const doc = getDocument(dialog);
189
- if (!doc.hasFocus())
190
- return;
191
- if (doc.activeElement !== doc.body)
192
- return;
193
- dialog.focus();
194
- };
195
- restoreLostFocus();
196
- return () => cancelAnimationFrame(raf);
197
- }, [shouldRestoreLostFocus]);
198
- const mounted = store.useState("mounted");
199
180
  if (isSafariBrowser) {
200
181
  useEffect(() => {
201
182
  if (!mounted)
202
183
  return;
203
- const disclosure = store.getState().disclosureElement;
204
- if (!disclosure)
184
+ const { disclosureElement } = store.getState();
185
+ if (!disclosureElement)
205
186
  return;
206
- if (!isButton(disclosure))
187
+ if (!isButton(disclosureElement))
207
188
  return;
208
189
  const onMouseDown = () => {
209
190
  let receivedFocus = false;
@@ -211,20 +192,26 @@ var useDialog = createHook(
211
192
  receivedFocus = true;
212
193
  };
213
194
  const options = { capture: true, once: true };
214
- disclosure.addEventListener("focusin", onFocus, options);
215
- queueBeforeEvent(disclosure, "mouseup", () => {
216
- disclosure.removeEventListener("focusin", onFocus, true);
195
+ disclosureElement.addEventListener("focusin", onFocus, options);
196
+ queueBeforeEvent(disclosureElement, "mouseup", () => {
197
+ disclosureElement.removeEventListener("focusin", onFocus, true);
217
198
  if (receivedFocus)
218
199
  return;
219
- focusIfNeeded(disclosure);
200
+ focusIfNeeded(disclosureElement);
220
201
  });
221
202
  };
222
- disclosure.addEventListener("mousedown", onMouseDown);
203
+ disclosureElement.addEventListener("mousedown", onMouseDown);
223
204
  return () => {
224
- disclosure.removeEventListener("mousedown", onMouseDown);
205
+ disclosureElement.removeEventListener("mousedown", onMouseDown);
225
206
  };
226
207
  }, [mounted]);
227
208
  }
209
+ const shouldDisableAccessibilityTree = modal || // Usually, we only want to disable the accessibility tree outside if the
210
+ // dialog is a modal. But the Portal component can't preserve the tab
211
+ // order on Safari/VoiceOver. By allowing only the dialog/portal to be
212
+ // accessible, we provide a similar tab order flow. We don't need to
213
+ // disable pointer events because it's just for screen readers.
214
+ portal && preserveTabOrder && isSafari();
228
215
  useEffect(() => {
229
216
  if (!mounted)
230
217
  return;
@@ -240,23 +227,40 @@ var useDialog = createHook(
240
227
  return;
241
228
  return prependHiddenDismiss(dialog, store.hide);
242
229
  }, [mounted, domReady, shouldDisableAccessibilityTree]);
243
- const shouldDisableOutside = useChampionDialog(
244
- "data-dialog-disable-outside",
245
- store,
246
- open && !openModals.length && shouldDisableAccessibilityTree
247
- );
230
+ const getPersistentElementsProp = useEvent(getPersistentElements);
248
231
  useSafeLayoutEffect(() => {
249
- if (!shouldDisableOutside())
232
+ if (!id)
233
+ return;
234
+ if (!open)
250
235
  return;
236
+ const { disclosureElement } = store.getState();
251
237
  const element = portal ? portalNode : ref.current;
238
+ const persistentElements = getPersistentElementsProp() || [];
239
+ const allElements = [element, ...nestedDialogs, ...persistentElements];
240
+ if (!shouldDisableAccessibilityTree) {
241
+ return markTreeOutside(id, disclosureElement, ...allElements);
242
+ }
252
243
  if (modal) {
253
244
  return chain(
254
- disableAccessibilityTreeOutside(element),
255
- disableTreeOutside(element)
245
+ markTreeOutside(id, ...allElements),
246
+ disableTreeOutside(...allElements)
256
247
  );
257
248
  }
258
- return disableAccessibilityTreeOutside(element);
259
- }, [shouldDisableOutside, portal, portalNode, modal]);
249
+ return chain(
250
+ markTreeOutside(id, disclosureElement, ...allElements),
251
+ disableAccessibilityTreeOutside(...allElements)
252
+ );
253
+ }, [
254
+ id,
255
+ open,
256
+ store,
257
+ portal,
258
+ portalNode,
259
+ nestedDialogs,
260
+ getPersistentElementsProp,
261
+ shouldDisableAccessibilityTree,
262
+ modal
263
+ ]);
260
264
  const mayAutoFocusOnShow = !!autoFocusOnShow;
261
265
  const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow);
262
266
  const [autoFocusEnabled, setAutoFocusEnabled] = useState(false);
@@ -267,34 +271,29 @@ var useDialog = createHook(
267
271
  return;
268
272
  if (!domReady)
269
273
  return;
270
- const hasNestedOpenDialog = nestedDialogsRef.current?.some(
271
- (dialog2) => !dialog2.hidden
272
- );
273
- if (hasNestedOpenDialog)
274
- return;
275
- const dialog = contentElement;
276
- if (!dialog?.isConnected)
274
+ if (!(contentElement == null ? void 0 : contentElement.isConnected))
277
275
  return;
278
276
  const element = getElementFromProp(initialFocus, true) || // If no initial focus is specified, we try to focus the first element
279
- // with the `autofocus` attribute. If it's an Ariakit component, the
280
- // `Focusable` component will consume the `autoFocus` prop and add the
281
- // `data-autofocus` attribute to the element instead.
282
- dialog.querySelector(
277
+ // with the autofocus attribute. If it's an Ariakit component, the
278
+ // Focusable component will consume the autoFocus prop and add the
279
+ // data-autofocus attribute to the element instead.
280
+ contentElement.querySelector(
283
281
  "[data-autofocus=true],[autofocus]"
284
282
  ) || // We have to fallback to the first focusable element otherwise portaled
285
283
  // dialogs with preserveTabOrder set to true will not receive focus
286
284
  // properly because the elements aren't tabbable until the dialog
287
285
  // receives focus.
288
- getFirstTabbableIn(dialog, true, portal && preserveTabOrder) || dialog;
286
+ getFirstTabbableIn(contentElement, true, portal && preserveTabOrder) || // Finally, we fallback to the dialog element itself.
287
+ contentElement;
289
288
  if (!autoFocusOnShowProp(element))
290
289
  return;
291
290
  setAutoFocusEnabled(true);
292
291
  element.focus();
293
292
  }, [
294
- contentElement,
295
293
  open,
296
294
  mayAutoFocusOnShow,
297
295
  domReady,
296
+ contentElement,
298
297
  initialFocus,
299
298
  portal,
300
299
  preserveTabOrder,
@@ -314,38 +313,44 @@ var useDialog = createHook(
314
313
  return;
315
314
  if (!mayAutoFocusOnHide)
316
315
  return;
317
- const focusOnHide = () => {
318
- const dialog = ref.current;
316
+ const dialog = ref.current;
317
+ const focusOnHide = (retry = true) => {
319
318
  if (!dialog)
320
319
  return;
321
- const dialogs = nestedDialogsRef.current;
322
- if (isAlreadyFocusingAnotherElement(dialog, dialogs))
320
+ if (isAlreadyFocusingAnotherElement(dialog))
323
321
  return;
324
- let element = getElementFromProp(finalFocus) || store.getState().disclosureElement;
325
- if (element) {
326
- if (element.id) {
327
- const doc = getDocument(element);
328
- const selector = `[aria-activedescendant="${element.id}"]`;
329
- const composite = doc.querySelector(selector);
330
- if (composite) {
331
- element = composite;
332
- }
322
+ const { disclosureElement } = store.getState();
323
+ let element = getElementFromProp(finalFocus) || disclosureElement;
324
+ if (!element)
325
+ return;
326
+ if (element.id) {
327
+ const doc = getDocument(element);
328
+ const selector = `[aria-activedescendant="${element.id}"]`;
329
+ const composite = doc.querySelector(selector);
330
+ if (composite) {
331
+ element = composite;
333
332
  }
334
- if (!isFocusable(element)) {
335
- const parentDialog = closest(element, "[data-dialog]");
336
- if (parentDialog && parentDialog.id) {
337
- const doc = getDocument(parentDialog);
338
- const selector = `[aria-controls~="${parentDialog.id}"]`;
339
- const control = doc.querySelector(selector);
340
- if (control) {
341
- element = control;
342
- }
333
+ }
334
+ if (!isFocusable(element)) {
335
+ const maybeParentDialog = closest(element, "[data-dialog]");
336
+ if (maybeParentDialog && maybeParentDialog.id) {
337
+ const doc = getDocument(maybeParentDialog);
338
+ const selector = `[aria-controls~="${maybeParentDialog.id}"]`;
339
+ const control = doc.querySelector(selector);
340
+ if (control) {
341
+ element = control;
343
342
  }
344
343
  }
345
- if (!autoFocusOnHideProp(element))
344
+ }
345
+ if (!isFocusable(element)) {
346
+ if (!retry)
346
347
  return;
347
- element.focus();
348
+ requestAnimationFrame(() => focusOnHide(false));
349
+ return;
348
350
  }
351
+ if (!autoFocusOnHideProp(element))
352
+ return;
353
+ element.focus();
349
354
  };
350
355
  if (!open) {
351
356
  return focusOnHide();
@@ -359,48 +364,42 @@ var useDialog = createHook(
359
364
  if (!mounted)
360
365
  return;
361
366
  const onKeyDown = (event) => {
362
- const dialog = ref.current;
363
- if (!dialog)
364
- return;
365
- const target = event.target;
366
- const disclosure = store.getState().disclosureElement;
367
367
  if (event.key !== "Escape")
368
368
  return;
369
369
  if (event.defaultPrevented)
370
370
  return;
371
+ const dialog = ref.current;
372
+ if (!dialog)
373
+ return;
374
+ const target = event.target;
371
375
  if (!target)
372
376
  return;
377
+ const { disclosureElement } = store.getState();
373
378
  const isValidTarget = () => {
374
- if (contains(dialog, target)) {
375
- const dialogs = nestedDialogsRef.current;
376
- const inNestedDialog = dialogs.some(isInDialog(target));
377
- if (inNestedDialog)
378
- return false;
379
+ if (target.tagName === "BODY")
379
380
  return true;
380
- }
381
- if (disclosure && contains(disclosure, target))
381
+ if (contains(dialog, target))
382
+ return true;
383
+ if (!disclosureElement)
384
+ return false;
385
+ if (contains(disclosureElement, target))
382
386
  return true;
383
387
  return false;
384
388
  };
385
- if (isValidTarget() && hideOnEscapeProp(event)) {
386
- store.hide();
387
- }
389
+ if (!isValidTarget())
390
+ return;
391
+ if (!hideOnEscapeProp(event))
392
+ return;
393
+ event.stopImmediatePropagation();
394
+ store.hide();
388
395
  };
389
396
  return addGlobalEventListener("keydown", onKeyDown);
390
397
  }, [mounted, domReady, hideOnEscapeProp]);
391
- props = useWrapElement(props, wrapElement, [wrapElement]);
392
398
  props = useWrapElement(
393
399
  props,
394
400
  (element) => /* @__PURE__ */ jsx(HeadingLevel, { level: modal ? 1 : void 0, children: element }),
395
401
  [modal]
396
402
  );
397
- const [shouldFocusTrap, setShouldFocusTrap] = useState(false);
398
- const hasOpenModals = !!openModals.length;
399
- useSafeLayoutEffect(() => {
400
- const value = open && modal && !hasOpenModals && !("inert" in HTMLElement.prototype);
401
- setShouldFocusTrap(value);
402
- }, [modal, open, hasOpenModals]);
403
- props = useFocusTrapRegion({ ...props, enabled: shouldFocusTrap });
404
403
  const hiddenProp = props.hidden;
405
404
  props = useWrapElement(
406
405
  props,
@@ -437,23 +436,22 @@ var useDialog = createHook(
437
436
  (element) => /* @__PURE__ */ jsx(DialogContext.Provider, { value: store, children: /* @__PURE__ */ jsx(DialogHeadingContext.Provider, { value: setHeadingId, children: /* @__PURE__ */ jsx(DialogDescriptionContext.Provider, { value: setDescriptionId, children: element }) }) }),
438
437
  [store]
439
438
  );
440
- props = {
439
+ props = __spreadProps(__spreadValues({
441
440
  id,
442
441
  "data-dialog": "",
443
442
  role: "dialog",
444
443
  tabIndex: focusable ? -1 : void 0,
445
444
  "aria-labelledby": headingId,
446
- "aria-describedby": descriptionId,
447
- ...props,
445
+ "aria-describedby": descriptionId
446
+ }, props), {
448
447
  ref: useForkRef(ref, props.ref)
449
- };
450
- props = useFocusableContainer({
451
- ...props,
452
- autoFocusOnShow: autoFocusEnabled
453
448
  });
454
- props = useDisclosureContent({ store, ...props });
455
- props = useFocusable({ ...props, focusable });
456
- props = usePortal({ portal, ...props, portalRef, preserveTabOrder });
449
+ props = useFocusableContainer(__spreadProps(__spreadValues({}, props), {
450
+ autoFocusOnShow: autoFocusEnabled
451
+ }));
452
+ props = useDisclosureContent(__spreadValues({ store }, props));
453
+ props = useFocusable(__spreadProps(__spreadValues({}, props), { focusable }));
454
+ props = usePortal(__spreadProps(__spreadValues({ portal }, props), { portalRef, preserveTabOrder }));
457
455
  return props;
458
456
  }
459
457
  );
@@ -5,7 +5,12 @@ import {
5
5
  createComponent,
6
6
  createElement,
7
7
  createHook
8
- } from "./JE5NWDDX.js";
8
+ } from "./5ETIGB6O.js";
9
+ import {
10
+ __objRest,
11
+ __spreadProps,
12
+ __spreadValues
13
+ } from "./4BKCJXBM.js";
9
14
 
10
15
  // src/popover/popover-disclosure-arrow.tsx
11
16
  import { useContext, useMemo } from "react";
@@ -18,7 +23,8 @@ var pointsMap = {
18
23
  left: "10,4 6,8 10,12"
19
24
  };
20
25
  var usePopoverDisclosureArrow = createHook(
21
- ({ store, placement, ...props }) => {
26
+ (_a) => {
27
+ var _b = _a, { store, placement } = _b, props = __objRest(_b, ["store", "placement"]);
22
28
  const context = useContext(PopoverContext);
23
29
  store = store || context;
24
30
  invariant(
@@ -46,17 +52,16 @@ var usePopoverDisclosureArrow = createHook(
46
52
  ),
47
53
  [points]
48
54
  );
49
- props = {
55
+ props = __spreadProps(__spreadValues({
50
56
  children,
51
- "aria-hidden": true,
52
- ...props,
53
- style: {
57
+ "aria-hidden": true
58
+ }, props), {
59
+ style: __spreadValues({
54
60
  width: "1em",
55
61
  height: "1em",
56
- pointerEvents: "none",
57
- ...props.style
58
- }
59
- };
62
+ pointerEvents: "none"
63
+ }, props.style)
64
+ });
60
65
  return props;
61
66
  }
62
67
  );
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useButton
3
- } from "./GEZPJZJE.js";
3
+ } from "./OQUXG6FE.js";
4
4
  import {
5
5
  DialogContext
6
6
  } from "./LNHZLQEK.js";
@@ -8,24 +8,30 @@ import {
8
8
  createComponent,
9
9
  createElement,
10
10
  createHook
11
- } from "./JE5NWDDX.js";
11
+ } from "./5ETIGB6O.js";
12
12
  import {
13
13
  useEvent
14
- } from "./B7MIN7YT.js";
14
+ } from "./ASYR66PQ.js";
15
+ import {
16
+ __objRest,
17
+ __spreadProps,
18
+ __spreadValues
19
+ } from "./4BKCJXBM.js";
15
20
 
16
21
  // src/dialog/dialog-dismiss.tsx
17
22
  import { useContext, useMemo } from "react";
18
23
  import { jsx, jsxs } from "react/jsx-runtime";
19
24
  var useDialogDismiss = createHook(
20
- ({ store, ...props }) => {
25
+ (_a) => {
26
+ var _b = _a, { store } = _b, props = __objRest(_b, ["store"]);
21
27
  const context = useContext(DialogContext);
22
28
  store = store || context;
23
29
  const onClickProp = props.onClick;
24
30
  const onClick = useEvent((event) => {
25
- onClickProp?.(event);
31
+ onClickProp == null ? void 0 : onClickProp(event);
26
32
  if (event.defaultPrevented)
27
33
  return;
28
- store?.hide();
34
+ store == null ? void 0 : store.hide();
29
35
  });
30
36
  const children = useMemo(
31
37
  () => /* @__PURE__ */ jsxs(
@@ -49,12 +55,12 @@ var useDialogDismiss = createHook(
49
55
  ),
50
56
  []
51
57
  );
52
- props = {
58
+ props = __spreadProps(__spreadValues({
53
59
  "data-dialog-dismiss": "",
54
- children,
55
- ...props,
60
+ children
61
+ }, props), {
56
62
  onClick
57
- };
63
+ });
58
64
  props = useButton(props);
59
65
  return props;
60
66
  }