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