@ariakit/react-core 0.1.6 → 0.1.8

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