@ariakit/react-components 0.1.1 → 0.1.2

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 (500) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/button/button.d.ts +1 -1
  3. package/dist/{button-Cp853csH.d.ts → button-CVWcOgxs.d.ts} +3 -3
  4. package/dist/{button-Cp853csH.d.ts.map → button-CVWcOgxs.d.ts.map} +1 -1
  5. package/dist/checkbox/checkbox-check.d.ts +1 -1
  6. package/dist/checkbox/checkbox-check.d.ts.map +1 -1
  7. package/dist/checkbox/checkbox.d.ts +2 -2
  8. package/dist/checkbox/checkbox.d.ts.map +1 -1
  9. package/dist/collection/collection-item-offscreen.d.ts +1 -1
  10. package/dist/collection/collection-item-offscreen.js +1 -1
  11. package/dist/collection/collection-item-offscreen.js.map +1 -1
  12. package/dist/collection/collection-item.d.ts +1 -1
  13. package/dist/collection/collection-renderer.d.ts +1 -1
  14. package/dist/collection/collection-renderer.js +1 -1
  15. package/dist/collection/collection-renderer.js.map +1 -1
  16. package/dist/collection/collection.d.ts +1 -1
  17. package/dist/collection/collection.d.ts.map +1 -1
  18. package/dist/{collection-item-offscreen-DyXa-sqj.d.ts → collection-item-offscreen-B5E5vNFi.d.ts} +2 -2
  19. package/dist/{collection-item-offscreen-DyXa-sqj.d.ts.map → collection-item-offscreen-B5E5vNFi.d.ts.map} +1 -1
  20. package/dist/{collection-item-C-g2BwVF.d.ts → collection-item-pvEWNoNs.d.ts} +2 -2
  21. package/dist/{collection-item-C-g2BwVF.d.ts.map → collection-item-pvEWNoNs.d.ts.map} +1 -1
  22. package/dist/{collection-renderer-DsPD9ksD.d.ts → collection-renderer-BhzF21Du.d.ts} +29 -15
  23. package/dist/collection-renderer-BhzF21Du.d.ts.map +1 -0
  24. package/dist/combobox/combobox-cancel.d.ts +2 -2
  25. package/dist/combobox/combobox-cancel.d.ts.map +1 -1
  26. package/dist/combobox/combobox-cancel.js +1 -1
  27. package/dist/combobox/combobox-cancel.js.map +1 -1
  28. package/dist/combobox/combobox-disclosure.d.ts +2 -2
  29. package/dist/combobox/combobox-disclosure.d.ts.map +1 -1
  30. package/dist/combobox/combobox-disclosure.js +1 -1
  31. package/dist/combobox/combobox-disclosure.js.map +1 -1
  32. package/dist/combobox/combobox-group-label.d.ts +1 -1
  33. package/dist/combobox/combobox-group-label.d.ts.map +1 -1
  34. package/dist/combobox/combobox-group.d.ts +1 -1
  35. package/dist/combobox/combobox-group.d.ts.map +1 -1
  36. package/dist/combobox/combobox-group.js +1 -1
  37. package/dist/combobox/combobox-group.js.map +1 -1
  38. package/dist/combobox/combobox-item-check.d.ts +1 -1
  39. package/dist/combobox/combobox-item-check.d.ts.map +1 -1
  40. package/dist/combobox/combobox-item-value.d.ts +1 -1
  41. package/dist/combobox/combobox-item-value.d.ts.map +1 -1
  42. package/dist/combobox/combobox-item.d.ts +3 -3
  43. package/dist/combobox/combobox-item.d.ts.map +1 -1
  44. package/dist/combobox/combobox-item.js +1 -1
  45. package/dist/combobox/combobox-item.js.map +1 -1
  46. package/dist/combobox/combobox-label.d.ts +1 -1
  47. package/dist/combobox/combobox-label.d.ts.map +1 -1
  48. package/dist/combobox/combobox-label.js +1 -1
  49. package/dist/combobox/combobox-label.js.map +1 -1
  50. package/dist/combobox/combobox-list.d.ts +1 -1
  51. package/dist/combobox/combobox-list.d.ts.map +1 -1
  52. package/dist/combobox/combobox-list.js +1 -1
  53. package/dist/combobox/combobox-list.js.map +1 -1
  54. package/dist/combobox/combobox-popover.d.ts +1 -1
  55. package/dist/combobox/combobox-popover.js +1 -1
  56. package/dist/combobox/combobox-popover.js.map +1 -1
  57. package/dist/combobox/combobox-row.d.ts +1 -1
  58. package/dist/combobox/combobox-row.d.ts.map +1 -1
  59. package/dist/combobox/combobox-row.js +1 -1
  60. package/dist/combobox/combobox-row.js.map +1 -1
  61. package/dist/combobox/combobox-separator.d.ts +1 -1
  62. package/dist/combobox/combobox-separator.d.ts.map +1 -1
  63. package/dist/combobox/combobox-separator.js +1 -1
  64. package/dist/combobox/combobox-separator.js.map +1 -1
  65. package/dist/combobox/combobox-value.js +1 -1
  66. package/dist/combobox/combobox-value.js.map +1 -1
  67. package/dist/combobox/combobox.d.ts +3 -3
  68. package/dist/combobox/combobox.d.ts.map +1 -1
  69. package/dist/combobox/combobox.js +16 -2
  70. package/dist/combobox/combobox.js.map +1 -1
  71. package/dist/command/command.d.ts +1 -1
  72. package/dist/{command-DckndCUK.d.ts → command-B9C8p3_S.d.ts} +3 -3
  73. package/dist/{command-DckndCUK.d.ts.map → command-B9C8p3_S.d.ts.map} +1 -1
  74. package/dist/composite/composite-container.d.ts +1 -1
  75. package/dist/composite/composite-container.d.ts.map +1 -1
  76. package/dist/composite/composite-container.js +2 -2
  77. package/dist/composite/composite-container.js.map +1 -1
  78. package/dist/composite/composite-group-label.d.ts +2 -2
  79. package/dist/composite/composite-group-label.d.ts.map +1 -1
  80. package/dist/composite/composite-group.d.ts +2 -2
  81. package/dist/composite/composite-group.d.ts.map +1 -1
  82. package/dist/composite/composite-hover.d.ts +1 -1
  83. package/dist/composite/composite-hover.js +9 -13
  84. package/dist/composite/composite-hover.js.map +1 -1
  85. package/dist/composite/composite-input.d.ts +1 -1
  86. package/dist/composite/composite-input.d.ts.map +1 -1
  87. package/dist/composite/composite-input.js +1 -1
  88. package/dist/composite/composite-input.js.map +1 -1
  89. package/dist/composite/composite-item-offscreen.d.ts +2 -2
  90. package/dist/composite/composite-item-offscreen.js +2 -2
  91. package/dist/composite/composite-item-offscreen.js.map +1 -1
  92. package/dist/composite/composite-item.d.ts +1 -1
  93. package/dist/composite/composite-item.js +2 -2
  94. package/dist/composite/composite-item.js.map +1 -1
  95. package/dist/composite/composite-overflow-disclosure.d.ts +2 -2
  96. package/dist/composite/composite-overflow-disclosure.d.ts.map +1 -1
  97. package/dist/composite/composite-overflow.d.ts +2 -2
  98. package/dist/composite/composite-overflow.d.ts.map +1 -1
  99. package/dist/composite/composite-renderer.d.ts +28 -14
  100. package/dist/composite/composite-renderer.d.ts.map +1 -1
  101. package/dist/composite/composite-renderer.js +2 -2
  102. package/dist/composite/composite-renderer.js.map +1 -1
  103. package/dist/composite/composite-row.d.ts +1 -1
  104. package/dist/composite/composite-row.d.ts.map +1 -1
  105. package/dist/composite/composite-row.js +3 -3
  106. package/dist/composite/composite-row.js.map +1 -1
  107. package/dist/composite/composite-separator.d.ts +2 -2
  108. package/dist/composite/composite-separator.d.ts.map +1 -1
  109. package/dist/composite/composite-separator.js +3 -3
  110. package/dist/composite/composite-separator.js.map +1 -1
  111. package/dist/composite/composite-typeahead.d.ts +1 -1
  112. package/dist/composite/composite-typeahead.js +3 -3
  113. package/dist/composite/composite-typeahead.js.map +1 -1
  114. package/dist/composite/composite.d.ts +1 -1
  115. package/dist/composite/composite.js +3 -3
  116. package/dist/composite/composite.js.map +1 -1
  117. package/dist/{composite-DLvyFHMq.d.ts → composite-KBhCGLEy.d.ts} +3 -3
  118. package/dist/{composite-DLvyFHMq.d.ts.map → composite-KBhCGLEy.d.ts.map} +1 -1
  119. package/dist/{composite-hover-C7ul163w.d.ts → composite-hover-BpXq3T8J.d.ts} +2 -2
  120. package/dist/{composite-hover-C7ul163w.d.ts.map → composite-hover-BpXq3T8J.d.ts.map} +1 -1
  121. package/dist/{composite-item-B4WTelVz.d.ts → composite-item-d4UXaZ84.d.ts} +4 -4
  122. package/dist/{composite-item-B4WTelVz.d.ts.map → composite-item-d4UXaZ84.d.ts.map} +1 -1
  123. package/dist/{composite-typeahead-DDhpyKqm.d.ts → composite-typeahead-0euW43GU.d.ts} +2 -2
  124. package/dist/{composite-typeahead-DDhpyKqm.d.ts.map → composite-typeahead-0euW43GU.d.ts.map} +1 -1
  125. package/dist/dialog/dialog-backdrop.d.ts +1 -1
  126. package/dist/dialog/dialog-description.d.ts +1 -1
  127. package/dist/dialog/dialog-disclosure.d.ts +1 -1
  128. package/dist/dialog/dialog-disclosure.js +1 -1
  129. package/dist/dialog/dialog-disclosure.js.map +1 -1
  130. package/dist/dialog/dialog-dismiss.d.ts +1 -1
  131. package/dist/dialog/dialog-heading.d.ts +1 -1
  132. package/dist/dialog/dialog.d.ts +1 -1
  133. package/dist/dialog/dialog.js +18 -6
  134. package/dist/dialog/dialog.js.map +1 -1
  135. package/dist/dialog/utils/disable-accessibility-tree-outside.d.ts +1 -3
  136. package/dist/dialog/utils/disable-accessibility-tree-outside.d.ts.map +1 -1
  137. package/dist/dialog/utils/disable-accessibility-tree-outside.js +1 -15
  138. package/dist/dialog/utils/disable-accessibility-tree-outside.js.map +1 -1
  139. package/dist/dialog/utils/use-hide-on-interact-outside.d.ts +1 -1
  140. package/dist/dialog/utils/use-hide-on-interact-outside.js +2 -2
  141. package/dist/dialog/utils/use-hide-on-interact-outside.js.map +1 -1
  142. package/dist/dialog/utils/use-prevent-body-scroll.js +2 -1
  143. package/dist/dialog/utils/use-prevent-body-scroll.js.map +1 -1
  144. package/dist/dialog/utils/use-previous-mouse-down-ref.d.ts +1 -1
  145. package/dist/dialog/utils/use-previous-mouse-down-ref.d.ts.map +1 -1
  146. package/dist/{dialog-C__C-zX2.d.ts → dialog-D23r2ZWj.d.ts} +4 -4
  147. package/dist/{dialog-C__C-zX2.d.ts.map → dialog-D23r2ZWj.d.ts.map} +1 -1
  148. package/dist/{dialog-description-BCZJ1Kyd.d.ts → dialog-description-CJGxnEvk.d.ts} +2 -2
  149. package/dist/{dialog-description-BCZJ1Kyd.d.ts.map → dialog-description-CJGxnEvk.d.ts.map} +1 -1
  150. package/dist/{dialog-disclosure-DLD10zlb.d.ts → dialog-disclosure-DSESk5pv.d.ts} +3 -3
  151. package/dist/{dialog-disclosure-DLD10zlb.d.ts.map → dialog-disclosure-DSESk5pv.d.ts.map} +1 -1
  152. package/dist/{dialog-dismiss-CnwEbzc6.d.ts → dialog-dismiss-DW3XQYvp.d.ts} +3 -3
  153. package/dist/{dialog-dismiss-CnwEbzc6.d.ts.map → dialog-dismiss-DW3XQYvp.d.ts.map} +1 -1
  154. package/dist/{dialog-heading-DQvnOfZH.d.ts → dialog-heading-DGA5d8VH.d.ts} +3 -3
  155. package/dist/{dialog-heading-DQvnOfZH.d.ts.map → dialog-heading-DGA5d8VH.d.ts.map} +1 -1
  156. package/dist/disclosure/disclosure-content.js +1 -1
  157. package/dist/disclosure/disclosure-content.js.map +1 -1
  158. package/dist/disclosure/disclosure.d.ts +1 -1
  159. package/dist/disclosure/disclosure.js +1 -1
  160. package/dist/disclosure/disclosure.js.map +1 -1
  161. package/dist/{disclosure-CQ37hPVP.d.ts → disclosure-C4F4sCVZ.d.ts} +3 -3
  162. package/dist/{disclosure-CQ37hPVP.d.ts.map → disclosure-C4F4sCVZ.d.ts.map} +1 -1
  163. package/dist/focus-trap/focus-trap-region.d.ts +1 -1
  164. package/dist/focus-trap/focus-trap-region.d.ts.map +1 -1
  165. package/dist/focus-trap/focus-trap.d.ts +1 -1
  166. package/dist/focus-trap/focus-trap.d.ts.map +1 -1
  167. package/dist/focusable/focusable-container.d.ts +1 -1
  168. package/dist/focusable/focusable-container.d.ts.map +1 -1
  169. package/dist/focusable/focusable.d.ts +1 -1
  170. package/dist/focusable/focusable.js +49 -8
  171. package/dist/focusable/focusable.js.map +1 -1
  172. package/dist/{focusable-B00tOxtB.d.ts → focusable-dBZH13-T.d.ts} +2 -2
  173. package/dist/{focusable-B00tOxtB.d.ts.map → focusable-dBZH13-T.d.ts.map} +1 -1
  174. package/dist/form/form-checkbox.d.ts +1 -1
  175. package/dist/form/form-checkbox.d.ts.map +1 -1
  176. package/dist/form/form-checkbox.js +1 -1
  177. package/dist/form/form-checkbox.js.map +1 -1
  178. package/dist/form/form-control.d.ts +2 -2
  179. package/dist/form/form-control.d.ts.map +1 -1
  180. package/dist/form/form-control.js +1 -1
  181. package/dist/form/form-control.js.map +1 -1
  182. package/dist/form/form-description.d.ts +2 -2
  183. package/dist/form/form-description.d.ts.map +1 -1
  184. package/dist/form/form-description.js +1 -1
  185. package/dist/form/form-description.js.map +1 -1
  186. package/dist/form/form-error.d.ts +2 -2
  187. package/dist/form/form-error.d.ts.map +1 -1
  188. package/dist/form/form-error.js +1 -1
  189. package/dist/form/form-error.js.map +1 -1
  190. package/dist/form/form-field.d.ts +1 -1
  191. package/dist/form/form-field.d.ts.map +1 -1
  192. package/dist/form/form-group-label.d.ts +2 -2
  193. package/dist/form/form-group-label.d.ts.map +1 -1
  194. package/dist/form/form-group.d.ts +2 -2
  195. package/dist/form/form-group.d.ts.map +1 -1
  196. package/dist/form/form-input.d.ts +2 -2
  197. package/dist/form/form-input.d.ts.map +1 -1
  198. package/dist/form/form-input.js +1 -1
  199. package/dist/form/form-input.js.map +1 -1
  200. package/dist/form/form-label.d.ts +2 -2
  201. package/dist/form/form-label.d.ts.map +1 -1
  202. package/dist/form/form-label.js +1 -1
  203. package/dist/form/form-label.js.map +1 -1
  204. package/dist/form/form-push.d.ts +3 -3
  205. package/dist/form/form-push.d.ts.map +1 -1
  206. package/dist/form/form-push.js +1 -1
  207. package/dist/form/form-push.js.map +1 -1
  208. package/dist/form/form-radio-group.d.ts +1 -1
  209. package/dist/form/form-radio-group.d.ts.map +1 -1
  210. package/dist/form/form-radio.d.ts +1 -1
  211. package/dist/form/form-radio.d.ts.map +1 -1
  212. package/dist/form/form-radio.js +1 -1
  213. package/dist/form/form-radio.js.map +1 -1
  214. package/dist/form/form-remove.d.ts +16 -12
  215. package/dist/form/form-remove.d.ts.map +1 -1
  216. package/dist/form/form-remove.js +15 -11
  217. package/dist/form/form-remove.js.map +1 -1
  218. package/dist/form/form-reset.d.ts +2 -2
  219. package/dist/form/form-reset.d.ts.map +1 -1
  220. package/dist/form/form-reset.js +1 -1
  221. package/dist/form/form-reset.js.map +1 -1
  222. package/dist/form/form-submit.d.ts +2 -2
  223. package/dist/form/form-submit.d.ts.map +1 -1
  224. package/dist/form/form-submit.js +1 -1
  225. package/dist/form/form-submit.js.map +1 -1
  226. package/dist/form/form.d.ts +1 -1
  227. package/dist/form/form.d.ts.map +1 -1
  228. package/dist/form/form.js +1 -1
  229. package/dist/form/form.js.map +1 -1
  230. package/dist/group/group-label.d.ts +1 -1
  231. package/dist/group/group.d.ts +1 -1
  232. package/dist/{group-label-C16IDs1b.d.ts → group-label-BKYqD4Sj.d.ts} +2 -2
  233. package/dist/{group-label-C16IDs1b.d.ts.map → group-label-BKYqD4Sj.d.ts.map} +1 -1
  234. package/dist/{group-CamegDJA.d.ts → group-nGD9e6Dj.d.ts} +2 -2
  235. package/dist/{group-CamegDJA.d.ts.map → group-nGD9e6Dj.d.ts.map} +1 -1
  236. package/dist/heading/heading.d.ts +1 -1
  237. package/dist/heading/heading.js +2 -2
  238. package/dist/heading/heading.js.map +1 -1
  239. package/dist/{heading-zY9g_9K-.d.ts → heading-D_AmeqL5.d.ts} +2 -2
  240. package/dist/{heading-zY9g_9K-.d.ts.map → heading-D_AmeqL5.d.ts.map} +1 -1
  241. package/dist/hovercard/hovercard-anchor.d.ts +2 -2
  242. package/dist/hovercard/hovercard-anchor.d.ts.map +1 -1
  243. package/dist/hovercard/hovercard-anchor.js +1 -1
  244. package/dist/hovercard/hovercard-anchor.js.map +1 -1
  245. package/dist/hovercard/hovercard-arrow.d.ts +1 -1
  246. package/dist/hovercard/hovercard-arrow.d.ts.map +1 -1
  247. package/dist/hovercard/hovercard-description.d.ts +2 -2
  248. package/dist/hovercard/hovercard-description.d.ts.map +1 -1
  249. package/dist/hovercard/hovercard-disclosure.d.ts +2 -2
  250. package/dist/hovercard/hovercard-disclosure.d.ts.map +1 -1
  251. package/dist/hovercard/hovercard-disclosure.js +4 -4
  252. package/dist/hovercard/hovercard-disclosure.js.map +1 -1
  253. package/dist/hovercard/hovercard-dismiss.d.ts +2 -2
  254. package/dist/hovercard/hovercard-dismiss.d.ts.map +1 -1
  255. package/dist/hovercard/hovercard-heading.d.ts +2 -2
  256. package/dist/hovercard/hovercard-heading.d.ts.map +1 -1
  257. package/dist/hovercard/hovercard.d.ts +1 -1
  258. package/dist/hovercard/hovercard.js +2 -2
  259. package/dist/hovercard/hovercard.js.map +1 -1
  260. package/dist/menu/menu-arrow.d.ts +2 -2
  261. package/dist/menu/menu-arrow.d.ts.map +1 -1
  262. package/dist/menu/menu-bar-provider.js +1 -1
  263. package/dist/menu/menu-bar-provider.js.map +1 -1
  264. package/dist/menu/menu-bar-store.d.ts +3 -3
  265. package/dist/menu/menu-bar-store.js +3 -3
  266. package/dist/menu/menu-bar-store.js.map +1 -1
  267. package/dist/menu/menu-bar.d.ts +1 -1
  268. package/dist/menu/menu-bar.d.ts.map +1 -1
  269. package/dist/menu/menu-bar.js +1 -1
  270. package/dist/menu/menu-bar.js.map +1 -1
  271. package/dist/menu/menu-button-arrow.d.ts +2 -2
  272. package/dist/menu/menu-button-arrow.d.ts.map +1 -1
  273. package/dist/menu/menu-button.d.ts +3 -3
  274. package/dist/menu/menu-button.d.ts.map +1 -1
  275. package/dist/menu/menu-button.js +1 -1
  276. package/dist/menu/menu-button.js.map +1 -1
  277. package/dist/menu/menu-context.d.ts +10 -3
  278. package/dist/menu/menu-context.d.ts.map +1 -1
  279. package/dist/menu/menu-context.js +8 -1
  280. package/dist/menu/menu-context.js.map +1 -1
  281. package/dist/menu/menu-description.d.ts +2 -2
  282. package/dist/menu/menu-description.d.ts.map +1 -1
  283. package/dist/menu/menu-dismiss.d.ts +2 -2
  284. package/dist/menu/menu-dismiss.d.ts.map +1 -1
  285. package/dist/menu/menu-group-label.d.ts +2 -2
  286. package/dist/menu/menu-group-label.d.ts.map +1 -1
  287. package/dist/menu/menu-group.d.ts +2 -2
  288. package/dist/menu/menu-group.d.ts.map +1 -1
  289. package/dist/menu/menu-heading.d.ts +2 -2
  290. package/dist/menu/menu-heading.d.ts.map +1 -1
  291. package/dist/menu/menu-item-check.d.ts +2 -2
  292. package/dist/menu/menu-item-check.d.ts.map +1 -1
  293. package/dist/menu/menu-item-checkbox.d.ts +2 -2
  294. package/dist/menu/menu-item-checkbox.d.ts.map +1 -1
  295. package/dist/menu/menu-item-checkbox.js +1 -1
  296. package/dist/menu/menu-item-checkbox.js.map +1 -1
  297. package/dist/menu/menu-item-radio.d.ts +2 -2
  298. package/dist/menu/menu-item-radio.d.ts.map +1 -1
  299. package/dist/menu/menu-item-radio.js +1 -1
  300. package/dist/menu/menu-item-radio.js.map +1 -1
  301. package/dist/menu/menu-item.d.ts +5 -5
  302. package/dist/menu/menu-item.d.ts.map +1 -1
  303. package/dist/menu/menu-item.js +8 -4
  304. package/dist/menu/menu-item.js.map +1 -1
  305. package/dist/menu/menu-list.d.ts +4 -4
  306. package/dist/menu/menu-list.d.ts.map +1 -1
  307. package/dist/menu/menu-list.js +6 -2
  308. package/dist/menu/menu-list.js.map +1 -1
  309. package/dist/menu/menu-provider.d.ts +1 -1
  310. package/dist/menu/menu-separator.d.ts +2 -2
  311. package/dist/menu/menu-separator.d.ts.map +1 -1
  312. package/dist/menu/menu-store.d.ts +1 -1
  313. package/dist/menu/menu.js +1 -1
  314. package/dist/menu/menu.js.map +1 -1
  315. package/dist/{menu-store-0CKKmNek.d.ts → menu-store-BpTJdcL8.d.ts} +2 -2
  316. package/dist/{menu-store-0CKKmNek.d.ts.map → menu-store-BpTJdcL8.d.ts.map} +1 -1
  317. package/dist/menubar/menubar-context.d.ts +2 -3
  318. package/dist/menubar/menubar-context.d.ts.map +1 -1
  319. package/dist/menubar/menubar-context.js +1 -3
  320. package/dist/menubar/menubar-context.js.map +1 -1
  321. package/dist/menubar/menubar-provider.d.ts +1 -1
  322. package/dist/menubar/menubar-store.d.ts +1 -1
  323. package/dist/menubar/menubar-store.js +2 -2
  324. package/dist/menubar/menubar-store.js.map +1 -1
  325. package/dist/menubar/menubar.d.ts +3 -3
  326. package/dist/menubar/menubar.d.ts.map +1 -1
  327. package/dist/{menubar-store-3h0eNIbS.d.ts → menubar-store-C553OKBw.d.ts} +3 -3
  328. package/dist/{menubar-store-3h0eNIbS.d.ts.map → menubar-store-C553OKBw.d.ts.map} +1 -1
  329. package/dist/popover/popover-anchor.d.ts +1 -1
  330. package/dist/popover/popover-arrow.d.ts +1 -1
  331. package/dist/popover/popover-arrow.d.ts.map +1 -1
  332. package/dist/popover/popover-arrow.js +4 -4
  333. package/dist/popover/popover-arrow.js.map +1 -1
  334. package/dist/popover/popover-description.d.ts +1 -1
  335. package/dist/popover/popover-disclosure-arrow.d.ts +1 -1
  336. package/dist/popover/popover-disclosure-arrow.d.ts.map +1 -1
  337. package/dist/popover/popover-disclosure-arrow.js +1 -1
  338. package/dist/popover/popover-disclosure-arrow.js.map +1 -1
  339. package/dist/popover/popover-disclosure.d.ts +3 -3
  340. package/dist/popover/popover-disclosure.d.ts.map +1 -1
  341. package/dist/popover/popover-disclosure.js +1 -1
  342. package/dist/popover/popover-disclosure.js.map +1 -1
  343. package/dist/popover/popover-dismiss.d.ts +1 -1
  344. package/dist/popover/popover-heading.d.ts +1 -1
  345. package/dist/popover/popover.d.ts +1 -1
  346. package/dist/popover/popover.js +2 -2
  347. package/dist/popover/popover.js.map +1 -1
  348. package/dist/{popover-CCqiRKqg.d.ts → popover-B9PxE5iP.d.ts} +10 -2
  349. package/dist/popover-B9PxE5iP.d.ts.map +1 -0
  350. package/dist/{popover-anchor-PgfeXyzs.d.ts → popover-anchor-W18KUmuM.d.ts} +2 -2
  351. package/dist/{popover-anchor-PgfeXyzs.d.ts.map → popover-anchor-W18KUmuM.d.ts.map} +1 -1
  352. package/dist/{popover-description-DU753dah.d.ts → popover-description-DbW4mVBb.d.ts} +3 -3
  353. package/dist/{popover-description-DU753dah.d.ts.map → popover-description-DbW4mVBb.d.ts.map} +1 -1
  354. package/dist/{popover-dismiss-DPeI6Zse.d.ts → popover-dismiss-CQFvuLzJ.d.ts} +3 -3
  355. package/dist/{popover-dismiss-DPeI6Zse.d.ts.map → popover-dismiss-CQFvuLzJ.d.ts.map} +1 -1
  356. package/dist/{popover-heading-DGsr6D5W.d.ts → popover-heading-DC8rYnwo.d.ts} +3 -3
  357. package/dist/{popover-heading-DGsr6D5W.d.ts.map → popover-heading-DC8rYnwo.d.ts.map} +1 -1
  358. package/dist/portal/portal.d.ts +1 -1
  359. package/dist/{portal-CMBWiayp.d.ts → portal-CKFTfCWH.d.ts} +2 -2
  360. package/dist/{portal-CMBWiayp.d.ts.map → portal-CKFTfCWH.d.ts.map} +1 -1
  361. package/dist/radio/radio-group.d.ts +2 -2
  362. package/dist/radio/radio-group.d.ts.map +1 -1
  363. package/dist/radio/radio-group.js +1 -1
  364. package/dist/radio/radio-group.js.map +1 -1
  365. package/dist/radio/radio.d.ts +2 -2
  366. package/dist/radio/radio.d.ts.map +1 -1
  367. package/dist/select/select-arrow.d.ts +1 -1
  368. package/dist/select/select-arrow.d.ts.map +1 -1
  369. package/dist/select/select-dismiss.d.ts +2 -2
  370. package/dist/select/select-dismiss.d.ts.map +1 -1
  371. package/dist/select/select-group-label.d.ts +1 -1
  372. package/dist/select/select-group-label.d.ts.map +1 -1
  373. package/dist/select/select-group.d.ts +1 -1
  374. package/dist/select/select-group.d.ts.map +1 -1
  375. package/dist/select/select-heading.d.ts +2 -2
  376. package/dist/select/select-heading.d.ts.map +1 -1
  377. package/dist/select/select-item-check.d.ts +1 -1
  378. package/dist/select/select-item-check.d.ts.map +1 -1
  379. package/dist/select/select-item.d.ts +3 -3
  380. package/dist/select/select-item.d.ts.map +1 -1
  381. package/dist/select/select-item.js +1 -1
  382. package/dist/select/select-item.js.map +1 -1
  383. package/dist/select/select-label.d.ts +1 -1
  384. package/dist/select/select-label.d.ts.map +1 -1
  385. package/dist/select/select-label.js +1 -1
  386. package/dist/select/select-label.js.map +1 -1
  387. package/dist/select/select-list.d.ts +3 -3
  388. package/dist/select/select-list.d.ts.map +1 -1
  389. package/dist/select/select-list.js +1 -1
  390. package/dist/select/select-list.js.map +1 -1
  391. package/dist/select/select-popover.d.ts +1 -1
  392. package/dist/select/select-renderer.d.ts +2 -2
  393. package/dist/select/select-renderer.d.ts.map +1 -1
  394. package/dist/select/select-row.d.ts +1 -1
  395. package/dist/select/select-row.d.ts.map +1 -1
  396. package/dist/select/select-row.js +1 -1
  397. package/dist/select/select-row.js.map +1 -1
  398. package/dist/select/select-separator.d.ts +1 -1
  399. package/dist/select/select-separator.d.ts.map +1 -1
  400. package/dist/select/select.d.ts +2 -2
  401. package/dist/select/select.d.ts.map +1 -1
  402. package/dist/select/select.js +1 -1
  403. package/dist/select/select.js.map +1 -1
  404. package/dist/separator/separator.d.ts +1 -1
  405. package/dist/{separator--ozQfMcK.d.ts → separator-BnvSVwBa.d.ts} +2 -2
  406. package/dist/{separator--ozQfMcK.d.ts.map → separator-BnvSVwBa.d.ts.map} +1 -1
  407. package/dist/tab/tab-list.d.ts +2 -2
  408. package/dist/tab/tab-list.d.ts.map +1 -1
  409. package/dist/tab/tab-list.js +1 -1
  410. package/dist/tab/tab-list.js.map +1 -1
  411. package/dist/tab/tab-panel.d.ts +3 -3
  412. package/dist/tab/tab-panel.d.ts.map +1 -1
  413. package/dist/tab/tab-panel.js +2 -3
  414. package/dist/tab/tab-panel.js.map +1 -1
  415. package/dist/tab/tab.d.ts +2 -2
  416. package/dist/tab/tab.d.ts.map +1 -1
  417. package/dist/tab/tab.js +1 -1
  418. package/dist/tab/tab.js.map +1 -1
  419. package/dist/tag/tag-input.d.ts +2 -2
  420. package/dist/tag/tag-input.d.ts.map +1 -1
  421. package/dist/tag/tag-input.js +1 -2
  422. package/dist/tag/tag-input.js.map +1 -1
  423. package/dist/tag/tag-list-label.d.ts +2 -2
  424. package/dist/tag/tag-list-label.d.ts.map +1 -1
  425. package/dist/tag/tag-list-label.js +1 -1
  426. package/dist/tag/tag-list-label.js.map +1 -1
  427. package/dist/tag/tag-list.d.ts +2 -2
  428. package/dist/tag/tag-list.d.ts.map +1 -1
  429. package/dist/tag/tag-list.js +1 -1
  430. package/dist/tag/tag-list.js.map +1 -1
  431. package/dist/tag/tag-remove.d.ts +1 -1
  432. package/dist/tag/tag-remove.d.ts.map +1 -1
  433. package/dist/tag/tag-remove.js +1 -2
  434. package/dist/tag/tag-remove.js.map +1 -1
  435. package/dist/tag/tag-value.js +1 -1
  436. package/dist/tag/tag-value.js.map +1 -1
  437. package/dist/tag/tag-values.js +1 -1
  438. package/dist/tag/tag-values.js.map +1 -1
  439. package/dist/tag/tag.d.ts +2 -2
  440. package/dist/tag/tag.d.ts.map +1 -1
  441. package/dist/tag/tag.js +1 -1
  442. package/dist/tag/tag.js.map +1 -1
  443. package/dist/toolbar/toolbar-container.d.ts +1 -1
  444. package/dist/toolbar/toolbar-container.d.ts.map +1 -1
  445. package/dist/toolbar/toolbar-input.d.ts +1 -1
  446. package/dist/toolbar/toolbar-input.d.ts.map +1 -1
  447. package/dist/toolbar/toolbar-item.d.ts +2 -2
  448. package/dist/toolbar/toolbar-item.d.ts.map +1 -1
  449. package/dist/toolbar/toolbar-separator.d.ts +1 -1
  450. package/dist/toolbar/toolbar-separator.d.ts.map +1 -1
  451. package/dist/toolbar/toolbar.d.ts +2 -2
  452. package/dist/toolbar/toolbar.d.ts.map +1 -1
  453. package/dist/tooltip/tooltip-anchor.d.ts +1 -1
  454. package/dist/tooltip/tooltip-anchor.d.ts.map +1 -1
  455. package/dist/tooltip/tooltip-anchor.js +15 -4
  456. package/dist/tooltip/tooltip-anchor.js.map +1 -1
  457. package/dist/tooltip/tooltip-arrow.d.ts +1 -1
  458. package/dist/tooltip/tooltip-arrow.d.ts.map +1 -1
  459. package/dist/tooltip/tooltip-arrow.js +1 -1
  460. package/dist/tooltip/tooltip-arrow.js.map +1 -1
  461. package/dist/tooltip/tooltip.js +1 -1
  462. package/dist/tooltip/tooltip.js.map +1 -1
  463. package/dist/visually-hidden/visually-hidden.d.ts +1 -1
  464. package/dist/visually-hidden/visually-hidden.d.ts.map +1 -1
  465. package/package.json +8 -8
  466. package/src/collection/collection-item-offscreen.tsx +1 -1
  467. package/src/combobox/combobox.tsx +47 -1
  468. package/src/composite/composite-container.tsx +2 -2
  469. package/src/composite/composite-hover.tsx +8 -14
  470. package/src/composite/composite-item-offscreen.tsx +2 -2
  471. package/src/composite/composite-item.tsx +2 -2
  472. package/src/composite/composite-renderer.tsx +2 -2
  473. package/src/composite/composite-row.tsx +2 -2
  474. package/src/composite/composite-separator.tsx +2 -2
  475. package/src/composite/composite-typeahead.tsx +2 -2
  476. package/src/composite/composite.tsx +3 -3
  477. package/src/dialog/dialog.tsx +33 -10
  478. package/src/dialog/utils/disable-accessibility-tree-outside.ts +0 -25
  479. package/src/dialog/utils/use-hide-on-interact-outside.ts +3 -2
  480. package/src/focusable/focusable.tsx +53 -10
  481. package/src/form/form-remove.tsx +14 -10
  482. package/src/form/form.tsx +3 -1
  483. package/src/heading/heading.tsx +2 -5
  484. package/src/hovercard/hovercard-disclosure.tsx +18 -4
  485. package/src/hovercard/hovercard.tsx +1 -1
  486. package/src/menu/menu-bar-store.ts +2 -2
  487. package/src/menu/menu-context.tsx +8 -0
  488. package/src/menu/menu-item.tsx +18 -1
  489. package/src/menu/menu-list.tsx +15 -0
  490. package/src/menubar/menubar-context.tsx +0 -5
  491. package/src/menubar/menubar-store.ts +2 -2
  492. package/src/popover/popover-arrow.tsx +3 -3
  493. package/src/popover/popover.tsx +8 -0
  494. package/src/tab/tab-panel.tsx +1 -1
  495. package/src/tag/tag-input.tsx +0 -1
  496. package/src/tag/tag-remove.tsx +0 -1
  497. package/src/tooltip/tooltip-anchor.tsx +23 -8
  498. package/dist/collection-renderer-DsPD9ksD.d.ts.map +0 -1
  499. package/dist/popover-CCqiRKqg.d.ts.map +0 -1
  500. package/src/hovercard/utils/__tests__/polygon-test.ts +0 -66
@@ -1,5 +1,5 @@
1
1
  import { CompositeSeparatorOptions } from "../composite/composite-separator.js";
2
- import { t as MenuStore } from "../menu-store-0CKKmNek.js";
2
+ import { t as MenuStore } from "../menu-store-BpTJdcL8.js";
3
3
  import { Props } from "@ariakit/react-utils";
4
4
  import { ElementType } from "react";
5
5
 
@@ -42,7 +42,7 @@ declare const useMenuSeparator: import("@ariakit/react-utils").Hook<"hr", MenuSe
42
42
  * </MenuProvider>
43
43
  * ```
44
44
  */
45
- declare const MenuSeparator: (props: MenuSeparatorProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
45
+ declare const MenuSeparator: (props: MenuSeparatorProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
46
46
  interface MenuSeparatorOptions<T extends ElementType = TagName> extends CompositeSeparatorOptions<T> {
47
47
  /**
48
48
  * Object returned by the
@@ -1 +1 @@
1
- {"version":3,"file":"menu-separator.d.ts","names":["Props","ElementType","CompositeSeparatorOptions","MenuStore","TagName","useMenuSeparator","MenuSeparatorOptions","Hook","MenuSeparator","MenuSeparatorProps","props","ReactElement","JSXElementConstructor","T","store"],"sources":["../../src/menu/menu-separator.d.ts"],"mappings":";;;;;;cAIcI,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAFoB;;;;AAC5B;AAAA;;;;AACQ;AAiB7B;;;;AAAqG;AAoBrG;AAvCiD,cAmB5BC,gBAAAA,iCAAiDE,IAAAA,OAAWD,oBAAoB;;;;;;;;AAoB8C;AACnJ;;;;;;;;;;;cADqBE,aAAAA,GAAgBE,KAAAA,EAAOD,kBAAkB,qBAAqBE,YAAAA,+BAA2CC,qBAAAA;AAAAA,UAC7GN,oBAAAA,WAA+BL,WAAAA,GAAcG,OAAAA,UAAiBF,yBAAAA,CAA0BW,CAAAA;EAA1BX;;;;;AAQ1D;AAErB;EAFIY,KAAAA,GAAQX,SAAAA;AAAAA;AAAAA,KAEAM,kBAAAA,WAA6BR,WAAAA,GAAcG,OAAAA,IAAWJ,KAAAA,CAAMa,CAAAA,EAAGP,oBAAAA,CAAqBO,CAAAA"}
1
+ {"version":3,"file":"menu-separator.d.ts","names":["Props","ElementType","CompositeSeparatorOptions","MenuStore","TagName","useMenuSeparator","MenuSeparatorOptions","Hook","MenuSeparator","MenuSeparatorProps","props","ReactElement","JSXElementConstructor","T","store"],"sources":["../../src/menu/menu-separator.d.ts"],"mappings":";;;;;;cAIcI,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAFoB;;;;AAC5B;AAAA;;;;AACQ;AAiB7B;;;;AAAqG;AAoBrG;AAvCiD,cAmB5BC,gBAAAA,iCAAiDE,IAAAA,OAAWD,oBAAoB;;;;;;;;AAoBkD;AACvJ;;;;;;;;;;;cADqBE,aAAAA,GAAgBE,KAAAA,EAAOD,kBAAkB,qBAAqBE,YAAAA,mCAA+CC,qBAAAA;AAAAA,UACjHN,oBAAAA,WAA+BL,WAAAA,GAAcG,OAAAA,UAAiBF,yBAAAA,CAA0BW,CAAAA;EAA1BX;;;;;AAQ1D;AAErB;EAFIY,KAAAA,GAAQX,SAAAA;AAAAA;AAAAA,KAEAM,kBAAAA,WAA6BR,WAAAA,GAAcG,OAAAA,IAAWJ,KAAAA,CAAMa,CAAAA,EAAGP,oBAAAA,CAAqBO,CAAAA"}
@@ -1,2 +1,2 @@
1
- import { a as MenuStoreState, c as useMenuStoreProps, i as MenuStoreProps, n as MenuStoreFunctions, o as MenuStoreValues, r as MenuStoreOptions, s as useMenuStore, t as MenuStore } from "../menu-store-0CKKmNek.js";
1
+ import { a as MenuStoreState, c as useMenuStoreProps, i as MenuStoreProps, n as MenuStoreFunctions, o as MenuStoreValues, r as MenuStoreOptions, s as useMenuStore, t as MenuStore } from "../menu-store-BpTJdcL8.js";
2
2
  export { MenuStore, MenuStoreFunctions, MenuStoreOptions, MenuStoreProps, MenuStoreState, MenuStoreValues, useMenuStore, useMenuStoreProps };
package/dist/menu/menu.js CHANGED
@@ -26,7 +26,7 @@ const TagName = "div";
26
26
  const useMenu = createHook(function useMenu({ store, modal: modalProp = false, portal = modalProp, hideOnEscape = true, autoFocusOnShow = true, hideOnHoverOutside, alwaysVisible, ...props }) {
27
27
  const context = useMenuProviderContext();
28
28
  store = store || context;
29
- invariant(store, "Menu must receive a `store` prop or be wrapped in a MenuProvider component.");
29
+ invariant(store, process.env.NODE_ENV !== "production" && "Menu must receive a `store` prop or be wrapped in a MenuProvider component.");
30
30
  const ref = useRef(null);
31
31
  const parentMenu = store.parent;
32
32
  const parentMenubar = store.menubar;
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","names":[],"sources":["../../src/menu/menu.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport {\n useMergeRefs,\n createElement,\n createHook,\n forwardRef,\n} from \"@ariakit/react-utils\";\nimport type { Props } from \"@ariakit/react-utils\";\nimport {\n fireEvent,\n hasFocusWithin,\n invariant,\n isFalsyBooleanCallback,\n} from \"@ariakit/utils\";\nimport type { ElementType, MutableRefObject } from \"react\";\nimport { createRef, useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDialogComponent } from \"../dialog/dialog.tsx\";\nimport type { HovercardOptions } from \"../hovercard/hovercard.tsx\";\nimport { useHovercard } from \"../hovercard/hovercard.tsx\";\nimport { useMenuProviderContext } from \"./menu-context.tsx\";\nimport type { MenuListOptions } from \"./menu-list.tsx\";\nimport { useMenuList } from \"./menu-list.tsx\";\n\nconst TagName = \"div\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype HTMLType = HTMLElementTagNameMap[TagName];\n\n/**\n * Returns props to create a `Menu` component.\n * @see https://ariakit.com/components/menu\n * @example\n * ```jsx\n * const store = useMenuStore();\n * const props = useMenu({ store });\n * <MenuButton store={store}>Edit</MenuButton>\n * <Role {...props}>\n * <MenuItem>Undo</MenuItem>\n * <MenuItem>Redo</MenuItem>\n * </Role>\n * ```\n */\nexport const useMenu = createHook<TagName, MenuOptions>(function useMenu({\n store,\n modal: modalProp = false,\n portal = modalProp,\n hideOnEscape = true,\n autoFocusOnShow = true,\n hideOnHoverOutside,\n alwaysVisible,\n ...props\n}) {\n const context = useMenuProviderContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"Menu must receive a `store` prop or be wrapped in a MenuProvider component.\",\n );\n\n const ref = useRef<HTMLType>(null);\n\n const parentMenu = store.parent;\n const parentMenubar = store.menubar;\n const hasParentMenu = !!parentMenu;\n const parentIsMenubar = !!parentMenubar && !hasParentMenu;\n // If it's a submenu, it shouldn't behave like a modal dialog.\n const modal = hasParentMenu ? false : modalProp;\n\n props = {\n ...props,\n ref: useMergeRefs(ref, props.ref),\n };\n\n // The aria-labelledby prop on MenuList defaults to the MenuButton's id. On\n // Dialog/Popover/Hovercard/Menu, we need to consider MenuHeading as well\n // and it should take precedence. That's why we need to destructure this\n // prop here and check if aria-labelledby is set later.\n const { \"aria-labelledby\": ariaLabelledBy, ...menuListProps } = useMenuList({\n store,\n alwaysVisible,\n ...props,\n });\n\n props = menuListProps;\n\n const [initialFocusRef, setInitialFocusRef] =\n useState<MutableRefObject<HTMLElement | null>>();\n\n const autoFocusOnShowState = useStoreState(store, \"autoFocusOnShow\");\n const initialFocus = useStoreState(store, \"initialFocus\");\n const baseElement = useStoreState(store, \"baseElement\");\n const items = useStoreState(store, \"renderedItems\");\n\n // Sets the initial focus ref.\n useEffect(() => {\n let cleaning = false;\n setInitialFocusRef((prevInitialFocusRef) => {\n if (cleaning) return;\n if (modal && prevInitialFocusRef?.current?.isConnected) {\n return prevInitialFocusRef;\n }\n if (!autoFocusOnShowState) return;\n let element: HTMLElement | null;\n switch (initialFocus) {\n // TODO: Refactor\n case \"first\":\n element =\n items.find((item) => !item.disabled && item.element)?.element ||\n null;\n break;\n case \"last\":\n element =\n [...items].reverse().find((item) => !item.disabled && item.element)\n ?.element || null;\n break;\n default:\n element = baseElement;\n }\n if (element && element === prevInitialFocusRef?.current) {\n return prevInitialFocusRef;\n }\n const ref = createRef() as MutableRefObject<HTMLElement | null>;\n ref.current = element;\n return ref;\n });\n return () => {\n cleaning = true;\n };\n }, [store, modal, autoFocusOnShowState, initialFocus, items, baseElement]);\n\n // When the `autoFocusOnShow` prop is set to `true` (default), we'll only\n // move focus to the menu when there's an initialFocusRef set or the menu is\n // modal. Otherwise, users would have to manually call\n // store.setAutoFocusOnShow(true) every time they want to open the menu.\n // This differs from the usual dialog behavior that would automatically\n // focus on the dialog container when no initialFocusRef is set.\n const canAutoFocusOnShow = !!initialFocusRef || !!props.initialFocus || modal;\n const autoFocusOnShowProp =\n autoFocusOnShow === false ? false : canAutoFocusOnShow && autoFocusOnShow;\n\n const contentElement = useStoreState(\n store.combobox || store,\n \"contentElement\",\n );\n const parentContentElement = useStoreState(\n parentMenu?.combobox || parentMenu,\n \"contentElement\",\n );\n\n // This ensures that, when the menu is nested in a non-menu wrapper, the tab\n // order will be preserved from the parent content element rather than from\n // the anchor element. This is because the preserveTabOrderAnchor feature\n // will use aria-owns to fix the tab order on screen readers. The parent\n // content element may have a role that does not allow this menu's role as a\n // child. By passing the parent content element as the tab order anchor, the\n // aria-owns element will be added as a sibling instead. TODO: Test this.\n const preserveTabOrderAnchor = useMemo(() => {\n if (!parentContentElement) return;\n if (!contentElement) return;\n const role = contentElement.getAttribute(\"role\");\n const parentRole = parentContentElement.getAttribute(\"role\");\n const parentIsMenuOrMenubar =\n parentRole === \"menu\" || parentRole === \"menubar\";\n if (parentIsMenuOrMenubar && role === \"menu\") return;\n return parentContentElement;\n }, [contentElement, parentContentElement]);\n\n if (preserveTabOrderAnchor !== undefined) {\n props = {\n preserveTabOrderAnchor,\n ...props,\n };\n }\n\n props = useHovercard({\n store,\n alwaysVisible,\n initialFocus: initialFocusRef,\n autoFocusOnShow: autoFocusOnShowProp,\n ...props,\n hideOnEscape(event) {\n if (isFalsyBooleanCallback(hideOnEscape, event)) return false;\n store?.hideAll();\n return true;\n },\n hideOnHoverOutside(event) {\n const disclosureElement = store?.getState().disclosureElement;\n const getHideOnHoverOutside = () => {\n if (typeof hideOnHoverOutside === \"function\") {\n return hideOnHoverOutside(event);\n }\n if (hideOnHoverOutside != null) return hideOnHoverOutside;\n // Hide the menu when hovering outside if it's a submenu in a dropdown\n // menu or if it's a menu in a menubar and the menu button doesn't\n // have focus.\n if (hasParentMenu) return true;\n if (!parentIsMenubar) return false;\n if (!disclosureElement) return true;\n if (hasFocusWithin(disclosureElement)) return false;\n return true;\n };\n if (!getHideOnHoverOutside()) return false;\n if (event.defaultPrevented) return true;\n if (!hasParentMenu) return true;\n if (!disclosureElement) return true;\n // This can be tested by hovering over a menu item (that's also a menu\n // button), waiting for the menu to open, and then moving towards the\n // menu, but stopping before reaching it. Then, move the mouse to the\n // other direction. The menu should close, but since we've already left\n // the menu button, the mouseout and therefore the blurOnHoverEnd\n // behavior won't be fired. That's why we need to manually re-fire it\n // here when the menu is closed by hovering away.\n fireEvent(disclosureElement, \"mouseout\", event);\n if (!hasFocusWithin(disclosureElement)) return true;\n // When the focus is determined by the aria-activedescendant attribute\n // (virtual focus), the mouseout event above won't update the state\n // synchronously. That is, the hasFocusWithin function above (which also\n // takes into account aria-activedescendant) will be true even though\n // the mouseout event has blurred the menu button.\n requestAnimationFrame(() => {\n if (hasFocusWithin(disclosureElement)) return;\n store?.hide();\n });\n return false;\n },\n modal,\n portal,\n backdrop: hasParentMenu ? false : props.backdrop,\n });\n\n props = {\n \"aria-labelledby\": ariaLabelledBy,\n ...props,\n };\n\n return props;\n});\n\n/**\n * Renders a dropdown menu element that's controlled by a\n * [`MenuButton`](https://ariakit.com/reference/menu-button) component.\n *\n * This component uses the primitive\n * [`MenuList`](https://ariakit.com/reference/menu-list) component under the\n * hood. It renders a popover and automatically focuses on items when the menu\n * is shown.\n * @see https://ariakit.com/components/menu\n * @example\n * ```jsx {3-6}\n * <MenuProvider>\n * <MenuButton>Edit</MenuButton>\n * <Menu>\n * <MenuItem>Undo</MenuItem>\n * <MenuItem>Redo</MenuItem>\n * </Menu>\n * </MenuProvider>\n * ```\n */\nexport const Menu = createDialogComponent(\n forwardRef(function Menu(props: MenuProps) {\n const htmlProps = useMenu(props);\n return createElement(TagName, htmlProps);\n }),\n useMenuProviderContext,\n);\n\nexport interface MenuOptions<T extends ElementType = TagName>\n extends MenuListOptions<T>, Omit<HovercardOptions<T>, \"store\"> {}\n\nexport type MenuProps<T extends ElementType = TagName> = Props<\n T,\n MenuOptions<T>\n>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","names":[],"sources":["../../src/menu/menu.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport {\n useMergeRefs,\n createElement,\n createHook,\n forwardRef,\n} from \"@ariakit/react-utils\";\nimport type { Props } from \"@ariakit/react-utils\";\nimport {\n fireEvent,\n hasFocusWithin,\n invariant,\n isFalsyBooleanCallback,\n} from \"@ariakit/utils\";\nimport type { ElementType, MutableRefObject } from \"react\";\nimport { createRef, useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDialogComponent } from \"../dialog/dialog.tsx\";\nimport type { HovercardOptions } from \"../hovercard/hovercard.tsx\";\nimport { useHovercard } from \"../hovercard/hovercard.tsx\";\nimport { useMenuProviderContext } from \"./menu-context.tsx\";\nimport type { MenuListOptions } from \"./menu-list.tsx\";\nimport { useMenuList } from \"./menu-list.tsx\";\n\nconst TagName = \"div\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype HTMLType = HTMLElementTagNameMap[TagName];\n\n/**\n * Returns props to create a `Menu` component.\n * @see https://ariakit.com/components/menu\n * @example\n * ```jsx\n * const store = useMenuStore();\n * const props = useMenu({ store });\n * <MenuButton store={store}>Edit</MenuButton>\n * <Role {...props}>\n * <MenuItem>Undo</MenuItem>\n * <MenuItem>Redo</MenuItem>\n * </Role>\n * ```\n */\nexport const useMenu = createHook<TagName, MenuOptions>(function useMenu({\n store,\n modal: modalProp = false,\n portal = modalProp,\n hideOnEscape = true,\n autoFocusOnShow = true,\n hideOnHoverOutside,\n alwaysVisible,\n ...props\n}) {\n const context = useMenuProviderContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"Menu must receive a `store` prop or be wrapped in a MenuProvider component.\",\n );\n\n const ref = useRef<HTMLType>(null);\n\n const parentMenu = store.parent;\n const parentMenubar = store.menubar;\n const hasParentMenu = !!parentMenu;\n const parentIsMenubar = !!parentMenubar && !hasParentMenu;\n // If it's a submenu, it shouldn't behave like a modal dialog.\n const modal = hasParentMenu ? false : modalProp;\n\n props = {\n ...props,\n ref: useMergeRefs(ref, props.ref),\n };\n\n // The aria-labelledby prop on MenuList defaults to the MenuButton's id. On\n // Dialog/Popover/Hovercard/Menu, we need to consider MenuHeading as well\n // and it should take precedence. That's why we need to destructure this\n // prop here and check if aria-labelledby is set later.\n const { \"aria-labelledby\": ariaLabelledBy, ...menuListProps } = useMenuList({\n store,\n alwaysVisible,\n ...props,\n });\n\n props = menuListProps;\n\n const [initialFocusRef, setInitialFocusRef] =\n useState<MutableRefObject<HTMLElement | null>>();\n\n const autoFocusOnShowState = useStoreState(store, \"autoFocusOnShow\");\n const initialFocus = useStoreState(store, \"initialFocus\");\n const baseElement = useStoreState(store, \"baseElement\");\n const items = useStoreState(store, \"renderedItems\");\n\n // Sets the initial focus ref.\n useEffect(() => {\n let cleaning = false;\n setInitialFocusRef((prevInitialFocusRef) => {\n if (cleaning) return;\n if (modal && prevInitialFocusRef?.current?.isConnected) {\n return prevInitialFocusRef;\n }\n if (!autoFocusOnShowState) return;\n let element: HTMLElement | null;\n switch (initialFocus) {\n // TODO: Refactor\n case \"first\":\n element =\n items.find((item) => !item.disabled && item.element)?.element ||\n null;\n break;\n case \"last\":\n element =\n [...items].reverse().find((item) => !item.disabled && item.element)\n ?.element || null;\n break;\n default:\n element = baseElement;\n }\n if (element && element === prevInitialFocusRef?.current) {\n return prevInitialFocusRef;\n }\n const ref = createRef() as MutableRefObject<HTMLElement | null>;\n ref.current = element;\n return ref;\n });\n return () => {\n cleaning = true;\n };\n }, [store, modal, autoFocusOnShowState, initialFocus, items, baseElement]);\n\n // When the `autoFocusOnShow` prop is set to `true` (default), we'll only\n // move focus to the menu when there's an initialFocusRef set or the menu is\n // modal. Otherwise, users would have to manually call\n // store.setAutoFocusOnShow(true) every time they want to open the menu.\n // This differs from the usual dialog behavior that would automatically\n // focus on the dialog container when no initialFocusRef is set.\n const canAutoFocusOnShow = !!initialFocusRef || !!props.initialFocus || modal;\n const autoFocusOnShowProp =\n autoFocusOnShow === false ? false : canAutoFocusOnShow && autoFocusOnShow;\n\n const contentElement = useStoreState(\n store.combobox || store,\n \"contentElement\",\n );\n const parentContentElement = useStoreState(\n parentMenu?.combobox || parentMenu,\n \"contentElement\",\n );\n\n // This ensures that, when the menu is nested in a non-menu wrapper, the tab\n // order will be preserved from the parent content element rather than from\n // the anchor element. This is because the preserveTabOrderAnchor feature\n // will use aria-owns to fix the tab order on screen readers. The parent\n // content element may have a role that does not allow this menu's role as a\n // child. By passing the parent content element as the tab order anchor, the\n // aria-owns element will be added as a sibling instead. TODO: Test this.\n const preserveTabOrderAnchor = useMemo(() => {\n if (!parentContentElement) return;\n if (!contentElement) return;\n const role = contentElement.getAttribute(\"role\");\n const parentRole = parentContentElement.getAttribute(\"role\");\n const parentIsMenuOrMenubar =\n parentRole === \"menu\" || parentRole === \"menubar\";\n if (parentIsMenuOrMenubar && role === \"menu\") return;\n return parentContentElement;\n }, [contentElement, parentContentElement]);\n\n if (preserveTabOrderAnchor !== undefined) {\n props = {\n preserveTabOrderAnchor,\n ...props,\n };\n }\n\n props = useHovercard({\n store,\n alwaysVisible,\n initialFocus: initialFocusRef,\n autoFocusOnShow: autoFocusOnShowProp,\n ...props,\n hideOnEscape(event) {\n if (isFalsyBooleanCallback(hideOnEscape, event)) return false;\n store?.hideAll();\n return true;\n },\n hideOnHoverOutside(event) {\n const disclosureElement = store?.getState().disclosureElement;\n const getHideOnHoverOutside = () => {\n if (typeof hideOnHoverOutside === \"function\") {\n return hideOnHoverOutside(event);\n }\n if (hideOnHoverOutside != null) return hideOnHoverOutside;\n // Hide the menu when hovering outside if it's a submenu in a dropdown\n // menu or if it's a menu in a menubar and the menu button doesn't\n // have focus.\n if (hasParentMenu) return true;\n if (!parentIsMenubar) return false;\n if (!disclosureElement) return true;\n if (hasFocusWithin(disclosureElement)) return false;\n return true;\n };\n if (!getHideOnHoverOutside()) return false;\n if (event.defaultPrevented) return true;\n if (!hasParentMenu) return true;\n if (!disclosureElement) return true;\n // This can be tested by hovering over a menu item (that's also a menu\n // button), waiting for the menu to open, and then moving towards the\n // menu, but stopping before reaching it. Then, move the mouse to the\n // other direction. The menu should close, but since we've already left\n // the menu button, the mouseout and therefore the blurOnHoverEnd\n // behavior won't be fired. That's why we need to manually re-fire it\n // here when the menu is closed by hovering away.\n fireEvent(disclosureElement, \"mouseout\", event);\n if (!hasFocusWithin(disclosureElement)) return true;\n // When the focus is determined by the aria-activedescendant attribute\n // (virtual focus), the mouseout event above won't update the state\n // synchronously. That is, the hasFocusWithin function above (which also\n // takes into account aria-activedescendant) will be true even though\n // the mouseout event has blurred the menu button.\n requestAnimationFrame(() => {\n if (hasFocusWithin(disclosureElement)) return;\n store?.hide();\n });\n return false;\n },\n modal,\n portal,\n backdrop: hasParentMenu ? false : props.backdrop,\n });\n\n props = {\n \"aria-labelledby\": ariaLabelledBy,\n ...props,\n };\n\n return props;\n});\n\n/**\n * Renders a dropdown menu element that's controlled by a\n * [`MenuButton`](https://ariakit.com/reference/menu-button) component.\n *\n * This component uses the primitive\n * [`MenuList`](https://ariakit.com/reference/menu-list) component under the\n * hood. It renders a popover and automatically focuses on items when the menu\n * is shown.\n * @see https://ariakit.com/components/menu\n * @example\n * ```jsx {3-6}\n * <MenuProvider>\n * <MenuButton>Edit</MenuButton>\n * <Menu>\n * <MenuItem>Undo</MenuItem>\n * <MenuItem>Redo</MenuItem>\n * </Menu>\n * </MenuProvider>\n * ```\n */\nexport const Menu = createDialogComponent(\n forwardRef(function Menu(props: MenuProps) {\n const htmlProps = useMenu(props);\n return createElement(TagName, htmlProps);\n }),\n useMenuProviderContext,\n);\n\nexport interface MenuOptions<T extends ElementType = TagName>\n extends MenuListOptions<T>, Omit<HovercardOptions<T>, \"store\"> {}\n\nexport type MenuProps<T extends ElementType = TagName> = Props<\n T,\n MenuOptions<T>\n>;\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { t as DisclosureStore } from "./disclosure-store-BsaBaRKv.js";
2
2
  import { i as CompositeStoreOptions, n as CompositeStoreFunctions, o as CompositeStoreState } from "./composite-store-DyJc-XRA.js";
3
3
  import { t as ComboboxStore } from "./combobox-store-DEVQ45mZ.js";
4
4
  import { a as HovercardStoreState, n as HovercardStoreFunctions, r as HovercardStoreOptions } from "./hovercard-store-gIeoQEn_.js";
5
- import { t as MenubarStore } from "./menubar-store-3h0eNIbS.js";
5
+ import { t as MenubarStore } from "./menubar-store-C553OKBw.js";
6
6
  import { BivariantCallback, PickRequired } from "@ariakit/utils";
7
7
  import { Store } from "@ariakit/react-store";
8
8
  import * as Core from "@ariakit/components/menu/menu-store";
@@ -80,4 +80,4 @@ interface MenuStoreProps<T extends MenuStoreValues = MenuStoreValues> extends Me
80
80
  interface MenuStore<T extends MenuStoreValues = MenuStoreValues> extends MenuStoreFunctions<T>, Omit<Store<Core.MenuStore<T>>, "combobox" | "parent" | "menubar" | "disclosure"> {}
81
81
  //#endregion
82
82
  export { MenuStoreState as a, useMenuStoreProps as c, MenuStoreProps as i, MenuStoreFunctions as n, MenuStoreValues as o, MenuStoreOptions as r, useMenuStore as s, MenuStore as t };
83
- //# sourceMappingURL=menu-store-0CKKmNek.d.ts.map
83
+ //# sourceMappingURL=menu-store-BpTJdcL8.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-store-0CKKmNek.d.ts","names":["Core","Store","BivariantCallback","PickRequired","ComboboxStore","CompositeStoreFunctions","CompositeStoreOptions","CompositeStoreState","HovercardStoreFunctions","HovercardStoreOptions","HovercardStoreState","MenubarStore","useMenuStoreProps","T","MenuStore","MenuStoreProps","_$___disclosure_disclosure_store_ts0","DisclosureStore","MenuStoreValues","store","update","props","disclosure","combobox","ComboboxStoreSelectedValue","parent","menubar","useMenuStore","MenuStoreState","MenuStoreFunctions","MenuStoreOptions","Pick","Omit","setValues","values"],"sources":["../src/menu/menu-store.d.ts"],"mappings":";;;;;;;;;;iBAOwBY,iBAAAA,WAA4BZ,IAAAA,CAAKc,SAAAA,CAAAA,CAAWK,KAAAA,EAAON,CAAAA,EAAGO,MAAAA,cAAoBC,KAAAA,EAAON,cAAAA,GAAiBF,CAAAA;EACtHS,UAAAA,EADuHN,eAAAA;AAAAA;EAGvHO,QAAAA,EAAUnB,aAAAA,uDAAoEoB,0BAAAA;EAC9EC,MAAAA,EAAQX,SAAAA,CAAUd,IAAAA,CAAKkB,eAAAA;EACvBQ,OAAAA,EAASf,YAAAA;AAAAA;;;;;;;;;;;;;;;;iBAiBWgB,YAAAA,WAAuBT,eAAAA,GAAkBA,eAAAA,CAAAA,CAAiBG,KAAAA,EAAOlB,YAAAA,CAAaY,cAAAA,CAAeF,CAAAA,iCAAkCC,SAAAA,CAAUD,CAAAA;AAAAA,iBACzIc,YAAAA,CAAaN,KAAAA,GAAQN,cAAAA,GAAiBD,SAAS;AAAA,KAC3DI,eAAAA,GAAkBlB,IAAAA,CAAKkB,eAAe;AAAA,UACjCU,cAAAA,WAAyBV,eAAAA,GAAkBA,eAAAA,UAAyBlB,IAAAA,CAAK4B,cAAAA,CAAef,CAAAA,GAAIN,mBAAAA,EAAqBG,mBAAAA;AAAAA,UAEjHmB,kBAAAA,WAA6BX,eAAAA,GAAkBA,eAAAA,UAAyBa,IAAAA,CAAKD,gBAAAA,qDAAqEE,IAAAA,CAAKhC,IAAAA,CAAK6B,kBAAAA,CAAmBhB,CAAAA,sDAAuDR,uBAAAA,EAAyBG,uBAAAA;AAAAA,UAE/PsB,gBAAAA,WAA2BZ,eAAAA,GAAkBA,eAAAA,UAAyBc,IAAAA,CAAKhC,IAAAA,CAAK8B,gBAAAA,CAAiBjB,CAAAA,kBAAmBP,qBAAAA,EAAuBG,qBAAAA;EA1B1Ee;;;;;;;;AAEzD;AAiBzB;EAkBIS,SAAAA,GAAY/B,iBAAAA,EAAmBgC,MAAAA,EAAQN,cAAAA,CAAef,CAAAA;EAlBtBA;;;;;;EAyBhCU,QAAAA,GAAWnB,aAAAA;EAzBwIU;;;;;;;;;;EAoCnJW,MAAAA,GAASX,SAAAA;EApCoJD;;AAAC;AAClK;;;;;;EA6CIa,OAAAA,GAAUf,YAAAA;AAAAA;AAAAA,UAEGI,cAAAA,WAAyBG,eAAAA,GAAkBA,eAAAA,UAAyBY,gBAAAA,CAAiBjB,CAAAA,GAAImB,IAAAA,CAAKhC,IAAAA,CAAKe,cAAAA,CAAeF,CAAAA;AAAAA,UAElHC,SAAAA,WAAoBI,eAAAA,GAAkBA,eAAAA,UAAyBW,kBAAAA,CAAmBhB,CAAAA,GAAImB,IAAAA,CAAK/B,KAAAA,CAAMD,IAAAA,CAAKc,SAAAA,CAAUD,CAAAA"}
1
+ {"version":3,"file":"menu-store-BpTJdcL8.d.ts","names":["Core","Store","BivariantCallback","PickRequired","ComboboxStore","CompositeStoreFunctions","CompositeStoreOptions","CompositeStoreState","HovercardStoreFunctions","HovercardStoreOptions","HovercardStoreState","MenubarStore","useMenuStoreProps","T","MenuStore","MenuStoreProps","_$___disclosure_disclosure_store_ts0","DisclosureStore","MenuStoreValues","store","update","props","disclosure","combobox","ComboboxStoreSelectedValue","parent","menubar","useMenuStore","MenuStoreState","MenuStoreFunctions","MenuStoreOptions","Pick","Omit","setValues","values"],"sources":["../src/menu/menu-store.d.ts"],"mappings":";;;;;;;;;;iBAOwBY,iBAAAA,WAA4BZ,IAAAA,CAAKc,SAAAA,CAAAA,CAAWK,KAAAA,EAAON,CAAAA,EAAGO,MAAAA,cAAoBC,KAAAA,EAAON,cAAAA,GAAiBF,CAAAA;EACtHS,UAAAA,EADuHN,eAAAA;AAAAA;EAGvHO,QAAAA,EAAUnB,aAAAA,uDAAoEoB,0BAAAA;EAC9EC,MAAAA,EAAQX,SAAAA,CAAUd,IAAAA,CAAKkB,eAAAA;EACvBQ,OAAAA,EAASf,YAAAA;AAAAA;;;;;;;;;;;;;;;;iBAiBWgB,YAAAA,WAAuBT,eAAAA,GAAkBA,eAAAA,CAAAA,CAAiBG,KAAAA,EAAOlB,YAAAA,CAAaY,cAAAA,CAAeF,CAAAA,iCAAkCC,SAAAA,CAAUD,CAAAA;AAAAA,iBACzIc,YAAAA,CAAaN,KAAAA,GAAQN,cAAAA,GAAiBD,SAAS;AAAA,KAC3DI,eAAAA,GAAkBlB,IAAAA,CAAKkB,eAAe;AAAA,UACjCU,cAAAA,WAAyBV,eAAAA,GAAkBA,eAAAA,UAAyBlB,IAAAA,CAAK4B,cAAAA,CAAef,CAAAA,GAAIN,mBAAAA,EAAqBG,mBAAAA;AAAAA,UAEjHmB,kBAAAA,WAA6BX,eAAAA,GAAkBA,eAAAA,UAAyBa,IAAAA,CAAKD,gBAAAA,qDAAqEE,IAAAA,CAAKhC,IAAAA,CAAK6B,kBAAAA,CAAmBhB,CAAAA,sDAAuDR,uBAAAA,EAAyBG,uBAAAA;AAAAA,UAE/PsB,gBAAAA,WAA2BZ,eAAAA,GAAkBA,eAAAA,UAAyBc,IAAAA,CAAKhC,IAAAA,CAAK8B,gBAAAA,CAAiBjB,CAAAA,kBAAmBP,qBAAAA,EAAuBG,qBAAAA;EA1B1Ee;;;;;;;;AAEzD;AAiBzB;EAkBIS,SAAAA,GAAY/B,iBAAAA,EAAmBgC,MAAAA,EAAQN,cAAAA,CAAef,CAAAA;EAlBtBA;;;;;;EAyBhCU,QAAAA,GAAWnB,aAAAA;EAzBwIU;;;;;;;;;;EAoCnJW,MAAAA,GAASX,SAAAA;EApCoJD;;AAAC;AAClK;;;;;;EA6CIa,OAAAA,GAAUf,YAAAA;AAAAA;AAAAA,UAEGI,cAAAA,WAAyBG,eAAAA,GAAkBA,eAAAA,UAAyBY,gBAAAA,CAAiBjB,CAAAA,GAAImB,IAAAA,CAAKhC,IAAAA,CAAKe,cAAAA,CAAeF,CAAAA;AAAAA,UAElHC,SAAAA,WAAoBI,eAAAA,GAAkBA,eAAAA,UAAyBW,kBAAAA,CAAmBhB,CAAAA,GAAImB,IAAAA,CAAK/B,KAAAA,CAAMD,IAAAA,CAAKc,SAAAA,CAAUD,CAAAA"}
@@ -1,4 +1,4 @@
1
- import { t as MenubarStore } from "../menubar-store-3h0eNIbS.js";
1
+ import { t as MenubarStore } from "../menubar-store-C553OKBw.js";
2
2
 
3
3
  //#region src/menubar/menubar-context.d.ts
4
4
  /**
@@ -19,7 +19,6 @@ declare const useMenubarScopedContext: (onlyScoped?: boolean) => MenubarStore |
19
19
  declare const useMenubarProviderContext: () => MenubarStore | undefined;
20
20
  declare const MenubarContextProvider: (props: import("react").ProviderProps<MenubarStore | undefined>) => import("react/jsx-runtime").JSX.Element;
21
21
  declare const MenubarScopedContextProvider: (props: import("react").ProviderProps<MenubarStore | undefined>) => import("react/jsx-runtime").JSX.Element;
22
- declare const MenuItemCheckedContext: import("react").Context<boolean | undefined>;
23
22
  //#endregion
24
- export { MenuItemCheckedContext, MenubarContextProvider, MenubarScopedContextProvider, useMenubarContext, useMenubarProviderContext, useMenubarScopedContext };
23
+ export { MenubarContextProvider, MenubarScopedContextProvider, useMenubarContext, useMenubarProviderContext, useMenubarScopedContext };
25
24
  //# sourceMappingURL=menubar-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menubar-context.d.ts","names":["MenubarStore","useMenubarContext","useMenubarScopedContext","onlyScoped","useMenubarProviderContext","MenubarContextProvider","ProviderProps","props","JSX","Element","MenubarScopedContextProvider","MenuItemCheckedContext","Context"],"sources":["../../src/menubar/menubar-context.d.ts"],"mappings":";;;;;AAcA;;;;AAA0D;AAC1D;;;;AAAoF;AACpF;cAFqBC,iBAAAA,QAAyBD,YAAY;AAAA,cACrCE,uBAAAA,GAA0BC,UAAAA,eAAyBH,YAAY;AAAA,cAC/DI,yBAAAA,QAAiCJ,YAAY;AAAA,cAC7CK,sBAAAA,GAAyBE,KAAAA,kBAAuBD,aAAAA,CAAcN,YAAY,8CAA8CQ,GAAAA,CAAIC,OAAAA;AAAAA,cAC5HC,4BAAAA,GAA+BH,KAAAA,kBAAuBD,aAAAA,CAAcN,YAAY,8CAA8CQ,GAAAA,CAAIC,OAAAA;AAAAA,cAClIE,sBAAAA,kBAAwCC,OAAO"}
1
+ {"version":3,"file":"menubar-context.d.ts","names":["MenubarStore","useMenubarContext","useMenubarScopedContext","onlyScoped","useMenubarProviderContext","MenubarContextProvider","ProviderProps","props","JSX","Element","MenubarScopedContextProvider"],"sources":["../../src/menubar/menubar-context.d.ts"],"mappings":";;;;;AAcA;;;;AAA0D;AAC1D;;;;AAAoF;AACpF;cAFqBC,iBAAAA,QAAyBD,YAAY;AAAA,cACrCE,uBAAAA,GAA0BC,UAAAA,eAAyBH,YAAY;AAAA,cAC/DI,yBAAAA,QAAiCJ,YAAY;AAAA,cAC7CK,sBAAAA,GAAyBE,KAAAA,kBAAuBD,aAAAA,CAAcN,YAAY,8CAA8CQ,GAAAA,CAAIC,OAAAA;AAAAA,cAC5HC,4BAAAA,GAA+BH,KAAAA,kBAAuBD,aAAAA,CAAcN,YAAY,8CAA8CQ,GAAAA,CAAIC,OAAAA"}
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { CompositeContextProvider, CompositeScopedContextProvider } from "../composite/composite-context.js";
3
3
  import { createStoreContext } from "@ariakit/react-utils";
4
- import { createContext } from "react";
5
4
  //#region src/menubar/menubar-context.tsx
6
5
  const menubar = createStoreContext([CompositeContextProvider], [CompositeScopedContextProvider]);
7
6
  /**
@@ -22,8 +21,7 @@ const useMenubarScopedContext = menubar.useScopedContext;
22
21
  const useMenubarProviderContext = menubar.useProviderContext;
23
22
  const MenubarContextProvider = menubar.ContextProvider;
24
23
  const MenubarScopedContextProvider = menubar.ScopedContextProvider;
25
- const MenuItemCheckedContext = createContext(void 0);
26
24
  //#endregion
27
- export { MenuItemCheckedContext, MenubarContextProvider, MenubarScopedContextProvider, useMenubarContext, useMenubarProviderContext, useMenubarScopedContext };
25
+ export { MenubarContextProvider, MenubarScopedContextProvider, useMenubarContext, useMenubarProviderContext, useMenubarScopedContext };
28
26
 
29
27
  //# sourceMappingURL=menubar-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menubar-context.js","names":[],"sources":["../../src/menubar/menubar-context.tsx"],"sourcesContent":["import { createStoreContext } from \"@ariakit/react-utils\";\nimport { createContext } from \"react\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider,\n} from \"../composite/composite-context.tsx\";\nimport type { MenubarStore } from \"./menubar-store.ts\";\n\nconst menubar = createStoreContext<MenubarStore>(\n [CompositeContextProvider],\n [CompositeScopedContextProvider],\n);\n\n/**\n * Returns the menubar store from the nearest menubar container.\n * @example\n * function Menubar() {\n * const store = useMenubarContext();\n *\n * if (!store) {\n * throw new Error(\"Menubar must be wrapped in MenubarProvider\");\n * }\n *\n * // Use the store...\n * }\n */\nexport const useMenubarContext = menubar.useContext;\n\nexport const useMenubarScopedContext = menubar.useScopedContext;\n\nexport const useMenubarProviderContext = menubar.useProviderContext;\n\nexport const MenubarContextProvider = menubar.ContextProvider;\n\nexport const MenubarScopedContextProvider = menubar.ScopedContextProvider;\n\nexport const MenuItemCheckedContext = createContext<boolean | undefined>(\n undefined,\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA4BA,MAAa,oBAAA,QAA0B;AAEvC,MAAa,0BAAA,QAA4B;AAEzC,MAAa,4BAAyB,QAAQ;AAE9C,MAAa,yBAAA,QAA+B;AAE5C,MAAa,+BAAyB,QACpC"}
1
+ {"version":3,"file":"menubar-context.js","names":[],"sources":["../../src/menubar/menubar-context.tsx"],"sourcesContent":["import { createStoreContext } from \"@ariakit/react-utils\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider,\n} from \"../composite/composite-context.tsx\";\nimport type { MenubarStore } from \"./menubar-store.ts\";\n\nconst menubar = createStoreContext<MenubarStore>(\n [CompositeContextProvider],\n [CompositeScopedContextProvider],\n);\n\n/**\n * Returns the menubar store from the nearest menubar container.\n * @example\n * function Menubar() {\n * const store = useMenubarContext();\n *\n * if (!store) {\n * throw new Error(\"Menubar must be wrapped in MenubarProvider\");\n * }\n *\n * // Use the store...\n * }\n */\nexport const useMenubarContext = menubar.useContext;\n\nexport const useMenubarScopedContext = menubar.useScopedContext;\n\nexport const useMenubarProviderContext = menubar.useProviderContext;\n\nexport const MenubarContextProvider = menubar.ContextProvider;\n\nexport const MenubarScopedContextProvider = menubar.ScopedContextProvider;\n"],"mappings":";;;;;;;;;;;;;;;;;;AA2BA,MAAa,oBAAA,QAA0B;AAEvC,MAAa,0BAAA,QAA4B;AAEzC,MAAa,4BAAyB,QAAQ;AAE9C,MAAa,yBAAA,QAA+B"}
@@ -1,4 +1,4 @@
1
- import { i as MenubarStoreProps } from "../menubar-store-3h0eNIbS.js";
1
+ import { i as MenubarStoreProps } from "../menubar-store-C553OKBw.js";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/menubar/menubar-provider.d.ts
@@ -1,2 +1,2 @@
1
- import { a as MenubarStoreState, i as MenubarStoreProps, n as MenubarStoreFunctions, o as useMenubarStore, r as MenubarStoreOptions, s as useMenubarStoreProps, t as MenubarStore } from "../menubar-store-3h0eNIbS.js";
1
+ import { a as MenubarStoreState, i as MenubarStoreProps, n as MenubarStoreFunctions, o as useMenubarStore, r as MenubarStoreOptions, s as useMenubarStoreProps, t as MenubarStore } from "../menubar-store-C553OKBw.js";
2
2
  export { MenubarStore, MenubarStoreFunctions, MenubarStoreOptions, MenubarStoreProps, MenubarStoreState, useMenubarStore, useMenubarStoreProps };
@@ -12,9 +12,9 @@ function useMenubarStoreProps(store, update, props) {
12
12
  * @see https://ariakit.com/components/menubar
13
13
  * @example
14
14
  * ```jsx
15
- * const menu = useMenubarStore();
15
+ * const menubar = useMenubarStore();
16
16
  *
17
- * <Menubar store={menu} />
17
+ * <Menubar store={menubar} />
18
18
  * ```
19
19
  */
20
20
  function useMenubarStore(props = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"menubar-store.js","names":[],"sources":["../../src/menubar/menubar-store.ts"],"sourcesContent":["import * as Core from \"@ariakit/components/menubar/menubar-store\";\nimport { useStore } from \"@ariakit/react-store\";\nimport type { Store } from \"@ariakit/react-store\";\nimport type {\n CompositeStoreFunctions,\n CompositeStoreOptions,\n CompositeStoreState,\n} from \"../composite/composite-store.ts\";\nimport { useCompositeStoreProps } from \"../composite/composite-store.ts\";\n\nexport function useMenubarStoreProps<T extends Core.MenubarStore>(\n store: T,\n update: () => void,\n props: MenubarStoreProps,\n) {\n return useCompositeStoreProps(store, update, props);\n}\n\n/**\n * Creates a menubar store to control the state of\n * [Menubar](https://ariakit.com/components/menubar) components.\n * @see https://ariakit.com/components/menubar\n * @example\n * ```jsx\n * const menu = useMenubarStore();\n *\n * <Menubar store={menu} />\n * ```\n */\nexport function useMenubarStore(props: MenubarStoreProps = {}): MenubarStore {\n const [store, update] = useStore(Core.createMenubarStore, props);\n return useMenubarStoreProps(store, update, props);\n}\n\nexport interface MenubarStoreState\n extends Core.MenubarStoreState, CompositeStoreState {}\n\nexport interface MenubarStoreFunctions\n extends Core.MenubarStoreFunctions, CompositeStoreFunctions {}\n\nexport interface MenubarStoreOptions\n extends Core.MenubarStoreOptions, CompositeStoreOptions {}\n\nexport interface MenubarStoreProps\n extends MenubarStoreOptions, Core.MenubarStoreProps {}\n\nexport interface MenubarStore\n extends MenubarStoreFunctions, Store<Core.MenubarStore> {}\n"],"mappings":";;;;;SAeS,qBAAA,OAAuB,QAAO,OAAa;CACpD,OAAA,uBAAA,OAAA,QAAA,KAAA;;;;;;;;;;;;;SAcS,gBAAiB,QAAA,CAAS,GAAA;CACjC,MAAA,CAAO,OAAA,UAAA,SAAqB,KAAO,oBAAa,KAAA;CAClD,OAAA,qBAAA,OAAA,QAAA,KAAA"}
1
+ {"version":3,"file":"menubar-store.js","names":[],"sources":["../../src/menubar/menubar-store.ts"],"sourcesContent":["import * as Core from \"@ariakit/components/menubar/menubar-store\";\nimport { useStore } from \"@ariakit/react-store\";\nimport type { Store } from \"@ariakit/react-store\";\nimport type {\n CompositeStoreFunctions,\n CompositeStoreOptions,\n CompositeStoreState,\n} from \"../composite/composite-store.ts\";\nimport { useCompositeStoreProps } from \"../composite/composite-store.ts\";\n\nexport function useMenubarStoreProps<T extends Core.MenubarStore>(\n store: T,\n update: () => void,\n props: MenubarStoreProps,\n) {\n return useCompositeStoreProps(store, update, props);\n}\n\n/**\n * Creates a menubar store to control the state of\n * [Menubar](https://ariakit.com/components/menubar) components.\n * @see https://ariakit.com/components/menubar\n * @example\n * ```jsx\n * const menubar = useMenubarStore();\n *\n * <Menubar store={menubar} />\n * ```\n */\nexport function useMenubarStore(props: MenubarStoreProps = {}): MenubarStore {\n const [store, update] = useStore(Core.createMenubarStore, props);\n return useMenubarStoreProps(store, update, props);\n}\n\nexport interface MenubarStoreState\n extends Core.MenubarStoreState, CompositeStoreState {}\n\nexport interface MenubarStoreFunctions\n extends Core.MenubarStoreFunctions, CompositeStoreFunctions {}\n\nexport interface MenubarStoreOptions\n extends Core.MenubarStoreOptions, CompositeStoreOptions {}\n\nexport interface MenubarStoreProps\n extends MenubarStoreOptions, Core.MenubarStoreProps {}\n\nexport interface MenubarStore\n extends MenubarStoreFunctions, Store<Core.MenubarStore> {}\n"],"mappings":";;;;;SAeS,qBAAA,OAAuB,QAAO,OAAa;CACpD,OAAA,uBAAA,OAAA,QAAA,KAAA;;;;;;;;;;;;;SAcS,gBAAiB,QAAA,CAAS,GAAA;CACjC,MAAA,CAAO,OAAA,UAAA,SAAqB,KAAO,oBAAa,KAAA;CAClD,OAAA,qBAAA,OAAA,QAAA,KAAA"}
@@ -1,5 +1,5 @@
1
- import { n as CompositeOptions } from "../composite-DLvyFHMq.js";
2
- import { i as MenubarStoreProps, t as MenubarStore } from "../menubar-store-3h0eNIbS.js";
1
+ import { n as CompositeOptions } from "../composite-KBhCGLEy.js";
2
+ import { i as MenubarStoreProps, t as MenubarStore } from "../menubar-store-C553OKBw.js";
3
3
  import { Props } from "@ariakit/react-utils";
4
4
  import { ElementType } from "react";
5
5
 
@@ -52,7 +52,7 @@ declare const useMenubar: import("@ariakit/react-utils").Hook<"div", MenubarOpti
52
52
  * </Menubar>
53
53
  * ```
54
54
  */
55
- declare const Menubar: (props: MenubarProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
55
+ declare const Menubar: (props: MenubarProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
56
56
  interface MenubarOptions<T extends ElementType = TagName> extends CompositeOptions<T>, Pick<MenubarStoreProps, "focusLoop" | "orientation" | "rtl" | "virtualFocus"> {
57
57
  /**
58
58
  * Object returned by the
@@ -1 +1 @@
1
- {"version":3,"file":"menubar.d.ts","names":["Props","ElementType","CompositeOptions","MenubarStore","MenubarStoreProps","TagName","useMenubar","MenubarOptions","Hook","Menubar","MenubarProps","props","ReactElement","JSXElementConstructor","T","Pick","store"],"sources":["../../src/menubar/menubar.d.ts"],"mappings":";;;;;;cAIcK,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAF6C;;;;AACrD;AAAA;;;;AACQ;AAqB7B;;;;AAA0F;AA0B1F;;;;;AAjD0E,cAuBrDC,UAAAA,iCAA2CE,IAAAA,QAAYD,cAAc;;;;AA0B6C;AACvI;;;;;;;;;;;;;;;;;;;;;cADqBE,OAAAA,GAAUE,KAAAA,EAAOD,YAAY,qBAAqBE,YAAAA,+BAA2CC,qBAAAA;AAAAA,UACjGN,cAAAA,WAAyBN,WAAAA,GAAcI,OAAAA,UAAiBH,gBAAAA,CAAiBY,CAAAA,GAAIC,IAAAA,CAAKX,iBAAAA;EAYvFM;;;;;;;;;EAFRM,KAAAA,GAAQb,YAAAA;AAAAA;AAAAA,KAEAO,YAAAA,WAAuBT,WAAAA,GAAcI,OAAAA,IAAWL,KAAAA,CAAMc,CAAAA,EAAGP,cAAAA,CAAeO,CAAAA"}
1
+ {"version":3,"file":"menubar.d.ts","names":["Props","ElementType","CompositeOptions","MenubarStore","MenubarStoreProps","TagName","useMenubar","MenubarOptions","Hook","Menubar","MenubarProps","props","ReactElement","JSXElementConstructor","T","Pick","store"],"sources":["../../src/menubar/menubar.d.ts"],"mappings":";;;;;;cAIcK,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAF6C;;;;AACrD;AAAA;;;;AACQ;AAqB7B;;;;AAA0F;AA0B1F;;;;;AAjD0E,cAuBrDC,UAAAA,iCAA2CE,IAAAA,QAAYD,cAAc;;;;AA0BiD;AAC3I;;;;;;;;;;;;;;;;;;;;;cADqBE,OAAAA,GAAUE,KAAAA,EAAOD,YAAY,qBAAqBE,YAAAA,mCAA+CC,qBAAAA;AAAAA,UACrGN,cAAAA,WAAyBN,WAAAA,GAAcI,OAAAA,UAAiBH,gBAAAA,CAAiBY,CAAAA,GAAIC,IAAAA,CAAKX,iBAAAA;EAYvFM;;;;;;;;;EAFRM,KAAAA,GAAQb,YAAAA;AAAAA;AAAAA,KAEAO,YAAAA,WAAuBT,WAAAA,GAAcI,OAAAA,IAAWL,KAAAA,CAAMc,CAAAA,EAAGP,cAAAA,CAAeO,CAAAA"}
@@ -10,9 +10,9 @@ declare function useMenubarStoreProps<T extends Core.MenubarStore>(store: T, upd
10
10
  * @see https://ariakit.com/components/menubar
11
11
  * @example
12
12
  * ```jsx
13
- * const menu = useMenubarStore();
13
+ * const menubar = useMenubarStore();
14
14
  *
15
- * <Menubar store={menu} />
15
+ * <Menubar store={menubar} />
16
16
  * ```
17
17
  */
18
18
  declare function useMenubarStore(props?: MenubarStoreProps): MenubarStore;
@@ -23,4 +23,4 @@ interface MenubarStoreProps extends MenubarStoreOptions, Core.MenubarStoreProps
23
23
  interface MenubarStore extends MenubarStoreFunctions, Store<Core.MenubarStore> {}
24
24
  //#endregion
25
25
  export { MenubarStoreState as a, MenubarStoreProps as i, MenubarStoreFunctions as n, useMenubarStore as o, MenubarStoreOptions as r, useMenubarStoreProps as s, MenubarStore as t };
26
- //# sourceMappingURL=menubar-store-3h0eNIbS.d.ts.map
26
+ //# sourceMappingURL=menubar-store-C553OKBw.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menubar-store-3h0eNIbS.d.ts","names":["Core","Store","CompositeStoreFunctions","CompositeStoreOptions","CompositeStoreState","useMenubarStoreProps","T","MenubarStore","MenubarStoreProps","store","update","props","useMenubarStore","MenubarStoreState","MenubarStoreFunctions","MenubarStoreOptions"],"sources":["../src/menubar/menubar-store.d.ts"],"mappings":";;;;;iBAGwBK,oBAAAA,WAA+BL,IAAAA,CAAKO,YAAAA,CAAAA,CAAcE,KAAAA,EAAOH,CAAAA,EAAGI,MAAAA,cAAoBC,KAAAA,EAAOH,iBAAAA,GAAoBF,CAAAA;;AAAnI;;;;;;;;;;iBAYwBM,eAAAA,CAAgBD,KAAAA,GAAQH,iBAAAA,GAAoBD,YAAY;AAAA,UAC/DM,iBAAAA,SAA0Bb,IAAAA,CAAKa,iBAAAA,EAAmBT,mBAAmB;AAAA,UAErEU,qBAAAA,SAA8Bd,IAAAA,CAAKc,qBAAAA,EAAuBZ,uBAAuB;AAAA,UAEjFa,mBAAAA,SAA4Bf,IAAAA,CAAKe,mBAAAA,EAAqBZ,qBAAqB;AAAA,UAE3EK,iBAAAA,SAA0BO,mBAAAA,EAAqBf,IAAAA,CAAKQ,iBAAiB;AAAA,UAErED,YAAAA,SAAqBO,qBAAAA,EAAuBb,KAAAA,CAAMD,IAAAA,CAAKO,YAAAA"}
1
+ {"version":3,"file":"menubar-store-C553OKBw.d.ts","names":["Core","Store","CompositeStoreFunctions","CompositeStoreOptions","CompositeStoreState","useMenubarStoreProps","T","MenubarStore","MenubarStoreProps","store","update","props","useMenubarStore","MenubarStoreState","MenubarStoreFunctions","MenubarStoreOptions"],"sources":["../src/menubar/menubar-store.d.ts"],"mappings":";;;;;iBAGwBK,oBAAAA,WAA+BL,IAAAA,CAAKO,YAAAA,CAAAA,CAAcE,KAAAA,EAAOH,CAAAA,EAAGI,MAAAA,cAAoBC,KAAAA,EAAOH,iBAAAA,GAAoBF,CAAAA;;AAAnI;;;;;;;;;;iBAYwBM,eAAAA,CAAgBD,KAAAA,GAAQH,iBAAAA,GAAoBD,YAAY;AAAA,UAC/DM,iBAAAA,SAA0Bb,IAAAA,CAAKa,iBAAAA,EAAmBT,mBAAmB;AAAA,UAErEU,qBAAAA,SAA8Bd,IAAAA,CAAKc,qBAAAA,EAAuBZ,uBAAuB;AAAA,UAEjFa,mBAAAA,SAA4Bf,IAAAA,CAAKe,mBAAAA,EAAqBZ,qBAAqB;AAAA,UAE3EK,iBAAAA,SAA0BO,mBAAAA,EAAqBf,IAAAA,CAAKQ,iBAAiB;AAAA,UAErED,YAAAA,SAAqBO,qBAAAA,EAAuBb,KAAAA,CAAMD,IAAAA,CAAKO,YAAAA"}
@@ -1,2 +1,2 @@
1
- import { i as usePopoverAnchor, n as PopoverAnchorOptions, r as PopoverAnchorProps, t as PopoverAnchor } from "../popover-anchor-PgfeXyzs.js";
1
+ import { i as usePopoverAnchor, n as PopoverAnchorOptions, r as PopoverAnchorProps, t as PopoverAnchor } from "../popover-anchor-W18KUmuM.js";
2
2
  export { PopoverAnchor, PopoverAnchorOptions, PopoverAnchorProps, usePopoverAnchor };
@@ -34,7 +34,7 @@ declare const usePopoverArrow: import("@ariakit/react-utils").Hook<"div", Popove
34
34
  * </PopoverProvider>
35
35
  * ```
36
36
  */
37
- declare const PopoverArrow: (props: PopoverArrowProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
37
+ declare const PopoverArrow: (props: PopoverArrowProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
38
38
  interface PopoverArrowOptions<_T extends ElementType = TagName> extends Options {
39
39
  /**
40
40
  * Object returned by the
@@ -1 +1 @@
1
- {"version":3,"file":"popover-arrow.d.ts","names":["Options","Props","ElementType","PopoverStore","TagName","usePopoverArrow","PopoverArrowOptions","Hook","PopoverArrow","PopoverArrowProps","props","ReactElement","JSXElementConstructor","_T","store","size","borderWidth","T"],"sources":["../../src/popover/popover-arrow.d.ts"],"mappings":";;;;;cAGcI,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAF0B;;;;AAClC;AAAA;;;;AACQ;AAc7B;;;AAhBuD,cAgBlCC,eAAAA,iCAAgDE,IAAAA,QAAYD,mBAAmB;AAAA;AAgBpG;;;;;;;;;AAAiJ;AACjJ;;;;AAjBoG,cAgB/EE,YAAAA,GAAeE,KAAAA,EAAOD,iBAAiB,qBAAqBE,YAAAA,+BAA2CC,qBAAAA;AAAAA,UAC3GN,mBAAAA,YAA+BJ,WAAAA,GAAcE,OAAAA,UAAiBJ,OAAAA;EAAAA;;;;;;;;EAS3Ec,KAAAA,GAAQX,YAAAA;EAQRY;;;AAKW;AAEf;;;EAPIA,IAAAA;EAOkDX;;;;EAFlDY,WAAAA;AAAAA;AAAAA,KAEQP,iBAAAA,WAA4BP,WAAAA,GAAcE,OAAAA,IAAWH,KAAAA,CAAMgB,CAAAA,EAAGX,mBAAAA,CAAoBW,CAAAA"}
1
+ {"version":3,"file":"popover-arrow.d.ts","names":["Options","Props","ElementType","PopoverStore","TagName","usePopoverArrow","PopoverArrowOptions","Hook","PopoverArrow","PopoverArrowProps","props","ReactElement","JSXElementConstructor","_T","store","size","borderWidth","T"],"sources":["../../src/popover/popover-arrow.d.ts"],"mappings":";;;;;cAGcI,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAF0B;;;;AAClC;AAAA;;;;AACQ;AAc7B;;;AAhBuD,cAgBlCC,eAAAA,iCAAgDE,IAAAA,QAAYD,mBAAmB;AAAA;AAgBpG;;;;;;;;;AAAqJ;AACrJ;;;;AAjBoG,cAgB/EE,YAAAA,GAAeE,KAAAA,EAAOD,iBAAiB,qBAAqBE,YAAAA,mCAA+CC,qBAAAA;AAAAA,UAC/GN,mBAAAA,YAA+BJ,WAAAA,GAAcE,OAAAA,UAAiBJ,OAAAA;EAAAA;;;;;;;;EAS3Ec,KAAAA,GAAQX,YAAAA;EAQRY;;;AAKW;AAEf;;;EAPIA,IAAAA;EAOkDX;;;;EAFlDY,WAAAA;AAAAA;AAAAA,KAEQP,iBAAAA,WAA4BP,WAAAA,GAAcE,OAAAA,IAAWH,KAAAA,CAAMgB,CAAAA,EAAGX,mBAAAA,CAAoBW,CAAAA"}
@@ -53,7 +53,7 @@ function getBorderColor(dir, style) {
53
53
  const usePopoverArrow = createHook(function usePopoverArrow({ store, size = defaultSize, borderWidth: borderWidthProp, ...props }) {
54
54
  const context = usePopoverContext();
55
55
  store = store || context;
56
- invariant(store, "PopoverArrow must be wrapped in a Popover component.");
56
+ invariant(store, process.env.NODE_ENV !== "production" && "PopoverArrow must be wrapped in a Popover component.");
57
57
  const dir = useStoreState(store, (state) => state.currentPlacement.split("-")[0]);
58
58
  const maskId = useId();
59
59
  const style = useComputedStyle(store);
@@ -86,7 +86,7 @@ const usePopoverArrow = createHook(function usePopoverArrow({ store, size = defa
86
86
  children: [
87
87
  !isRing && /* @__PURE__ */ jsx("path", {
88
88
  fill: "none",
89
- stroke: `var(--ak-layer, ${fill})`,
89
+ stroke: fill,
90
90
  d: "M23 27.8C24.1 29 26.4 30 28 30H30H0H2C3.7 30 5.9 29 7 27.8L14 20.6C14.7 19.8 15.3 19.8 16 20.6L23 27.8Z",
91
91
  mask: `url(#${maskId})`
92
92
  }),
@@ -128,8 +128,8 @@ const usePopoverArrow = createHook(function usePopoverArrow({ store, size = defa
128
128
  width: "1em",
129
129
  height: "1em",
130
130
  pointerEvents: "none",
131
- fill: `var(--ak-layer, ${fill})`,
132
- stroke: `var(--ak-layer-border, ${stroke})`,
131
+ fill,
132
+ stroke,
133
133
  strokeWidth,
134
134
  ...props.style
135
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"popover-arrow.js","names":[],"sources":["../../src/popover/popover-arrow.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport {\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n createElement,\n createHook,\n forwardRef,\n memo,\n} from \"@ariakit/react-utils\";\nimport type { Options, Props } from \"@ariakit/react-utils\";\nimport { getWindow, invariant, removeUndefinedValues } from \"@ariakit/utils\";\nimport type { ElementType } from \"react\";\nimport { useMemo, useState } from \"react\";\nimport { POPOVER_ARROW_PATH } from \"./popover-arrow-path.ts\";\nimport { usePopoverContext } from \"./popover-context.tsx\";\nimport type { PopoverStore } from \"./popover-store.ts\";\n\nconst TagName = \"div\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype BasePlacement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nconst defaultSize = 30;\nconst halfDefaultSize = defaultSize / 2;\n\nconst rotateMap = {\n top: `rotate(180 ${halfDefaultSize} ${halfDefaultSize})`,\n right: `rotate(-90 ${halfDefaultSize} ${halfDefaultSize})`,\n bottom: `rotate(0 ${halfDefaultSize} ${halfDefaultSize})`,\n left: `rotate(90 ${halfDefaultSize} ${halfDefaultSize})`,\n};\n\nfunction useComputedStyle(store: PopoverStore) {\n const [style, setStyle] = useState<CSSStyleDeclaration>();\n const contentElement = useStoreState(store, \"contentElement\");\n useSafeLayoutEffect(() => {\n if (!contentElement) return;\n const win = getWindow(contentElement);\n const computedStyle = win.getComputedStyle(contentElement);\n setStyle(computedStyle);\n }, [contentElement]);\n return style;\n}\n\nfunction getRingWidth(style?: CSSStyleDeclaration) {\n if (!style) return;\n const boxShadow = style.getPropertyValue(\"box-shadow\");\n const ringWidth = boxShadow.match(/0px 0px 0px ([^0]+px)/)?.[1];\n return ringWidth;\n}\n\nfunction getBorderColor(dir: BasePlacement, style?: CSSStyleDeclaration) {\n if (!style) return;\n const borderColor = style.getPropertyValue(`border-${dir}-color`);\n if (borderColor) return borderColor;\n const boxShadow = style.getPropertyValue(\"box-shadow\");\n const match = boxShadow.match(/0px 0px 0px [^,]+/);\n if (!match) return;\n const segment = match[0];\n const ringColor = segment.replace(/^0px 0px 0px\\s+[^\\s,]+/, \"\").trim();\n return ringColor || undefined;\n}\n\n/**\n * Returns props to create a `PopoverArrow` component.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx\n * const store = usePopoverStore();\n * const props = usePopoverArrow({ store });\n * <Popover store={store}>\n * <Role {...props} />\n * Popover\n * </Popover>\n * ```\n */\nexport const usePopoverArrow = createHook<TagName, PopoverArrowOptions>(\n function usePopoverArrow({\n store,\n size = defaultSize,\n borderWidth: borderWidthProp,\n ...props\n }) {\n const context = usePopoverContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"PopoverArrow must be wrapped in a Popover component.\",\n );\n\n const dir = useStoreState(\n store,\n (state) => state.currentPlacement.split(\"-\")[0] as BasePlacement,\n );\n\n const maskId = useId();\n const style = useComputedStyle(store);\n const stroke = getBorderColor(dir, style) || \"none\";\n const fill = style?.getPropertyValue(\"background-color\") || \"none\";\n\n const [borderWidth, isRing] = useMemo(() => {\n if (borderWidthProp != null) return [borderWidthProp, false];\n if (!style) return [0, false];\n const ringWidth = getRingWidth(style);\n if (ringWidth) return [Number.parseInt(ringWidth, 10), true];\n const borderWidth = style.getPropertyValue(`border-${dir}-width`);\n if (borderWidth) {\n const parsed = Number.parseFloat(borderWidth);\n if (!Number.isNaN(parsed)) {\n return [Math.ceil(parsed), false];\n }\n }\n return [0, false];\n }, [borderWidthProp, style, dir]);\n\n const strokeWidth = borderWidth * 2 * (defaultSize / size);\n const transform = rotateMap[dir];\n\n const children = useMemo(\n () => (\n <svg display=\"block\" viewBox=\"0 0 30 30\">\n <g transform={transform}>\n {!isRing && (\n // When using the CSS border property, set the fill color to match\n // the background behind the stroke so transparent strokes match\n // the appearance of borders on HTML elements.\n <path\n fill=\"none\"\n stroke={`var(--ak-layer, ${fill})`}\n d={POPOVER_ARROW_PATH}\n mask={`url(#${maskId})`}\n />\n )}\n <path fill=\"none\" d={POPOVER_ARROW_PATH} mask={`url(#${maskId})`} />\n <path stroke=\"none\" d={POPOVER_ARROW_PATH} />\n <mask id={maskId} maskUnits=\"userSpaceOnUse\">\n <rect\n x=\"-15\"\n y=\"0\"\n width=\"60\"\n height=\"30\"\n fill=\"white\"\n stroke=\"black\"\n />\n </mask>\n </g>\n </svg>\n ),\n [transform, isRing, fill, maskId],\n );\n\n props = {\n children,\n \"aria-hidden\": true,\n ...props,\n ref: useMergeRefs(store.setArrowElement, props.ref),\n style: {\n position: \"absolute\",\n fontSize: size,\n width: \"1em\",\n height: \"1em\",\n pointerEvents: \"none\",\n fill: `var(--ak-layer, ${fill})`,\n stroke: `var(--ak-layer-border, ${stroke})`,\n strokeWidth,\n ...props.style,\n },\n };\n\n return removeUndefinedValues(props);\n },\n);\n\n/**\n * Renders an arrow inside a [`Popover`](https://ariakit.com/reference/popover)\n * component pointing to the anchor element.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx {4}\n * <PopoverProvider>\n * <PopoverAnchor />\n * <Popover>\n * <PopoverArrow />\n * Popover\n * </Popover>\n * </PopoverProvider>\n * ```\n */\nexport const PopoverArrow = memo(\n forwardRef(function PopoverArrow(props: PopoverArrowProps) {\n const htmlProps = usePopoverArrow(props);\n return createElement(TagName, htmlProps);\n }),\n);\n\nexport interface PopoverArrowOptions<\n _T extends ElementType = TagName,\n> extends Options {\n /**\n * Object returned by the\n * [`usePopoverStore`](https://ariakit.com/reference/use-popover-store) hook.\n * If not provided, the closest\n * [`Popover`](https://ariakit.com/reference/popover) or\n * [`PopoverProvider`](https://ariakit.com/reference/popover-provider)\n * components' context will be used.\n */\n store?: PopoverStore;\n /**\n * The size of the arrow.\n *\n * Live examples:\n * - [Selection Popover](https://ariakit.com/examples/popover-selection)\n * @default 30\n */\n size?: number;\n /**\n * The arrow's border width. If not specified, Ariakit will infer it from the\n * popover `contentElement`'s style.\n */\n borderWidth?: number;\n}\n\nexport type PopoverArrowProps<T extends ElementType = TagName> = Props<\n T,\n PopoverArrowOptions<T>\n>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"popover-arrow.js","names":[],"sources":["../../src/popover/popover-arrow.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport {\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n createElement,\n createHook,\n forwardRef,\n memo,\n} from \"@ariakit/react-utils\";\nimport type { Options, Props } from \"@ariakit/react-utils\";\nimport { getWindow, invariant, removeUndefinedValues } from \"@ariakit/utils\";\nimport type { ElementType } from \"react\";\nimport { useMemo, useState } from \"react\";\nimport { POPOVER_ARROW_PATH } from \"./popover-arrow-path.ts\";\nimport { usePopoverContext } from \"./popover-context.tsx\";\nimport type { PopoverStore } from \"./popover-store.ts\";\n\nconst TagName = \"div\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype BasePlacement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nconst defaultSize = 30;\nconst halfDefaultSize = defaultSize / 2;\n\nconst rotateMap = {\n top: `rotate(180 ${halfDefaultSize} ${halfDefaultSize})`,\n right: `rotate(-90 ${halfDefaultSize} ${halfDefaultSize})`,\n bottom: `rotate(0 ${halfDefaultSize} ${halfDefaultSize})`,\n left: `rotate(90 ${halfDefaultSize} ${halfDefaultSize})`,\n};\n\nfunction useComputedStyle(store: PopoverStore) {\n const [style, setStyle] = useState<CSSStyleDeclaration>();\n const contentElement = useStoreState(store, \"contentElement\");\n useSafeLayoutEffect(() => {\n if (!contentElement) return;\n const win = getWindow(contentElement);\n const computedStyle = win.getComputedStyle(contentElement);\n setStyle(computedStyle);\n }, [contentElement]);\n return style;\n}\n\nfunction getRingWidth(style?: CSSStyleDeclaration) {\n if (!style) return;\n const boxShadow = style.getPropertyValue(\"box-shadow\");\n const ringWidth = boxShadow.match(/0px 0px 0px ([^0]+px)/)?.[1];\n return ringWidth;\n}\n\nfunction getBorderColor(dir: BasePlacement, style?: CSSStyleDeclaration) {\n if (!style) return;\n const borderColor = style.getPropertyValue(`border-${dir}-color`);\n if (borderColor) return borderColor;\n const boxShadow = style.getPropertyValue(\"box-shadow\");\n const match = boxShadow.match(/0px 0px 0px [^,]+/);\n if (!match) return;\n const segment = match[0];\n const ringColor = segment.replace(/^0px 0px 0px\\s+[^\\s,]+/, \"\").trim();\n return ringColor || undefined;\n}\n\n/**\n * Returns props to create a `PopoverArrow` component.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx\n * const store = usePopoverStore();\n * const props = usePopoverArrow({ store });\n * <Popover store={store}>\n * <Role {...props} />\n * Popover\n * </Popover>\n * ```\n */\nexport const usePopoverArrow = createHook<TagName, PopoverArrowOptions>(\n function usePopoverArrow({\n store,\n size = defaultSize,\n borderWidth: borderWidthProp,\n ...props\n }) {\n const context = usePopoverContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"PopoverArrow must be wrapped in a Popover component.\",\n );\n\n const dir = useStoreState(\n store,\n (state) => state.currentPlacement.split(\"-\")[0] as BasePlacement,\n );\n\n const maskId = useId();\n const style = useComputedStyle(store);\n const stroke = getBorderColor(dir, style) || \"none\";\n const fill = style?.getPropertyValue(\"background-color\") || \"none\";\n\n const [borderWidth, isRing] = useMemo(() => {\n if (borderWidthProp != null) return [borderWidthProp, false];\n if (!style) return [0, false];\n const ringWidth = getRingWidth(style);\n if (ringWidth) return [Number.parseInt(ringWidth, 10), true];\n const borderWidth = style.getPropertyValue(`border-${dir}-width`);\n if (borderWidth) {\n const parsed = Number.parseFloat(borderWidth);\n if (!Number.isNaN(parsed)) {\n return [Math.ceil(parsed), false];\n }\n }\n return [0, false];\n }, [borderWidthProp, style, dir]);\n\n const strokeWidth = borderWidth * 2 * (defaultSize / size);\n const transform = rotateMap[dir];\n\n const children = useMemo(\n () => (\n <svg display=\"block\" viewBox=\"0 0 30 30\">\n <g transform={transform}>\n {!isRing && (\n // When using the CSS border property, set the fill color to match\n // the background behind the stroke so transparent strokes match\n // the appearance of borders on HTML elements.\n <path\n fill=\"none\"\n stroke={fill}\n d={POPOVER_ARROW_PATH}\n mask={`url(#${maskId})`}\n />\n )}\n <path fill=\"none\" d={POPOVER_ARROW_PATH} mask={`url(#${maskId})`} />\n <path stroke=\"none\" d={POPOVER_ARROW_PATH} />\n <mask id={maskId} maskUnits=\"userSpaceOnUse\">\n <rect\n x=\"-15\"\n y=\"0\"\n width=\"60\"\n height=\"30\"\n fill=\"white\"\n stroke=\"black\"\n />\n </mask>\n </g>\n </svg>\n ),\n [transform, isRing, fill, maskId],\n );\n\n props = {\n children,\n \"aria-hidden\": true,\n ...props,\n ref: useMergeRefs(store.setArrowElement, props.ref),\n style: {\n position: \"absolute\",\n fontSize: size,\n width: \"1em\",\n height: \"1em\",\n pointerEvents: \"none\",\n fill,\n stroke,\n strokeWidth,\n ...props.style,\n },\n };\n\n return removeUndefinedValues(props);\n },\n);\n\n/**\n * Renders an arrow inside a [`Popover`](https://ariakit.com/reference/popover)\n * component pointing to the anchor element.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx {4}\n * <PopoverProvider>\n * <PopoverAnchor />\n * <Popover>\n * <PopoverArrow />\n * Popover\n * </Popover>\n * </PopoverProvider>\n * ```\n */\nexport const PopoverArrow = memo(\n forwardRef(function PopoverArrow(props: PopoverArrowProps) {\n const htmlProps = usePopoverArrow(props);\n return createElement(TagName, htmlProps);\n }),\n);\n\nexport interface PopoverArrowOptions<\n _T extends ElementType = TagName,\n> extends Options {\n /**\n * Object returned by the\n * [`usePopoverStore`](https://ariakit.com/reference/use-popover-store) hook.\n * If not provided, the closest\n * [`Popover`](https://ariakit.com/reference/popover) or\n * [`PopoverProvider`](https://ariakit.com/reference/popover-provider)\n * components' context will be used.\n */\n store?: PopoverStore;\n /**\n * The size of the arrow.\n *\n * Live examples:\n * - [Selection Popover](https://ariakit.com/examples/popover-selection)\n * @default 30\n */\n size?: number;\n /**\n * The arrow's border width. If not specified, Ariakit will infer it from the\n * popover `contentElement`'s style.\n */\n borderWidth?: number;\n}\n\nexport type PopoverArrowProps<T extends ElementType = TagName> = Props<\n T,\n PopoverArrowOptions<T>\n>;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { i as usePopoverDescription, n as PopoverDescriptionOptions, r as PopoverDescriptionProps, t as PopoverDescription } from "../popover-description-DU753dah.js";
1
+ import { i as usePopoverDescription, n as PopoverDescriptionOptions, r as PopoverDescriptionProps, t as PopoverDescription } from "../popover-description-DbW4mVBb.js";
2
2
  export { PopoverDescription, PopoverDescriptionOptions, PopoverDescriptionProps, usePopoverDescription };
@@ -36,7 +36,7 @@ declare const usePopoverDisclosureArrow: import("@ariakit/react-utils").Hook<"sp
36
36
  * </PopoverProvider>
37
37
  * ```
38
38
  */
39
- declare const PopoverDisclosureArrow: (props: PopoverDisclosureArrowProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
39
+ declare const PopoverDisclosureArrow: (props: PopoverDisclosureArrowProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
40
40
  interface PopoverDisclosureArrowOptions<_T extends ElementType = TagName> extends Options {
41
41
  /**
42
42
  * Object returned by the
@@ -1 +1 @@
1
- {"version":3,"file":"popover-disclosure-arrow.d.ts","names":["Options","Props","ElementType","PopoverStore","PopoverStoreState","TagName","usePopoverDisclosureArrow","PopoverDisclosureArrowOptions","Hook","PopoverDisclosureArrow","PopoverDisclosureArrowProps","props","ReactElement","JSXElementConstructor","_T","store","placement","T"],"sources":["../../src/popover/popover-disclosure-arrow.d.ts"],"mappings":";;;;;cAGcK,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAF6C;;;;AACrD;AAAA;;;;AACQ;AAc7B;;;AAhB0E,cAgBrDC,yBAAAA,iCAA0DE,IAAAA,SAAaD,6BAA6B;AAAA;AAkBzH;;;;;;;;;AAAqK;AACrK;;;;;;AAnByH,cAkBpGE,sBAAAA,GAAyBE,KAAAA,EAAOD,2BAA2B,qBAAqBE,YAAAA,+BAA2CC,qBAAAA;AAAAA,UAC/HN,6BAAAA,YAAyCL,WAAAA,GAAcG,OAAAA,UAAiBL,OAAAA;EAAO;;;;;;;;EAS5Fe,KAAAA,GAAQZ,YAAAA;EAQIC;;AAAiB;AAEjC;;;;EAFIY,SAAAA,GAAYZ,iBAAAA;AAAAA;AAAAA,KAEJM,2BAAAA,WAAsCR,WAAAA,GAAcG,OAAAA,IAAWJ,KAAAA,CAAMgB,CAAAA,EAAGV,6BAAAA,CAA8BU,CAAAA"}
1
+ {"version":3,"file":"popover-disclosure-arrow.d.ts","names":["Options","Props","ElementType","PopoverStore","PopoverStoreState","TagName","usePopoverDisclosureArrow","PopoverDisclosureArrowOptions","Hook","PopoverDisclosureArrow","PopoverDisclosureArrowProps","props","ReactElement","JSXElementConstructor","_T","store","placement","T"],"sources":["../../src/popover/popover-disclosure-arrow.d.ts"],"mappings":";;;;;cAGcK,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAF6C;;;;AACrD;AAAA;;;;AACQ;AAc7B;;;AAhB0E,cAgBrDC,yBAAAA,iCAA0DE,IAAAA,SAAaD,6BAA6B;AAAA;AAkBzH;;;;;;;;;AAAyK;AACzK;;;;;;AAnByH,cAkBpGE,sBAAAA,GAAyBE,KAAAA,EAAOD,2BAA2B,qBAAqBE,YAAAA,mCAA+CC,qBAAAA;AAAAA,UACnIN,6BAAAA,YAAyCL,WAAAA,GAAcG,OAAAA,UAAiBL,OAAAA;EAAO;;;;;;;;EAS5Fe,KAAAA,GAAQZ,YAAAA;EAQIC;;AAAiB;AAEjC;;;;EAFIY,SAAAA,GAAYZ,iBAAAA;AAAAA;AAAAA,KAEJM,2BAAAA,WAAsCR,WAAAA,GAAcG,OAAAA,IAAWJ,KAAAA,CAAMgB,CAAAA,EAAGV,6BAAAA,CAA8BU,CAAAA"}
@@ -29,7 +29,7 @@ const pointsMap = {
29
29
  const usePopoverDisclosureArrow = createHook(function usePopoverDisclosureArrow({ store, placement, ...props }) {
30
30
  const context = usePopoverContext();
31
31
  store = store || context;
32
- invariant(store, "PopoverDisclosureArrow must be wrapped in a PopoverDisclosure component.");
32
+ invariant(store, process.env.NODE_ENV !== "production" && "PopoverDisclosureArrow must be wrapped in a PopoverDisclosure component.");
33
33
  const points = pointsMap[useStoreState(store, (state) => placement || state.placement).split("-")[0]];
34
34
  props = {
35
35
  children: useMemo(() => /* @__PURE__ */ jsx("svg", {
@@ -1 +1 @@
1
- {"version":3,"file":"popover-disclosure-arrow.js","names":[],"sources":["../../src/popover/popover-disclosure-arrow.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport { createElement, createHook, forwardRef } from \"@ariakit/react-utils\";\nimport type { Options, Props } from \"@ariakit/react-utils\";\nimport { invariant, removeUndefinedValues } from \"@ariakit/utils\";\nimport type { ElementType } from \"react\";\nimport { useMemo } from \"react\";\nimport { usePopoverContext } from \"./popover-context.tsx\";\nimport type { PopoverStore, PopoverStoreState } from \"./popover-store.ts\";\n\nconst TagName = \"span\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype BasePlacement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nconst pointsMap = {\n top: \"4,10 8,6 12,10\",\n right: \"6,4 10,8 6,12\",\n bottom: \"4,6 8,10 12,6\",\n left: \"10,4 6,8 10,12\",\n};\n\n/**\n * Returns props to create a `PopoverDisclosureArrow` component.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx\n * const store = usePopoverStore();\n * const props = usePopoverDisclosureArrow({ store });\n * <PopoverDisclosure store={store}>\n * Disclosure\n * <Role {...props} />\n * </PopoverDisclosure>\n * ```\n */\nexport const usePopoverDisclosureArrow = createHook<\n TagName,\n PopoverDisclosureArrowOptions\n>(function usePopoverDisclosureArrow({ store, placement, ...props }) {\n const context = usePopoverContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"PopoverDisclosureArrow must be wrapped in a PopoverDisclosure component.\",\n );\n\n const position = useStoreState(\n store,\n (state) => placement || state.placement,\n );\n const dir = position.split(\"-\")[0] as BasePlacement;\n const points = pointsMap[dir];\n\n const children = useMemo(\n () => (\n <svg\n display=\"block\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n >\n <polyline points={points} />\n </svg>\n ),\n [points],\n );\n\n props = {\n children,\n \"aria-hidden\": true,\n ...props,\n style: {\n width: \"1em\",\n height: \"1em\",\n pointerEvents: \"none\",\n ...props.style,\n },\n };\n\n return removeUndefinedValues(props);\n});\n\n/**\n * Renders an arrow pointing to the popover position. It's usually rendered\n * inside the\n * [`PopoverDisclosure`](https://ariakit.com/reference/popover-disclosure)\n * component.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx {4}\n * <PopoverProvider>\n * <PopoverDisclosure>\n * Disclosure\n * <PopoverDisclosureArrow />\n * </PopoverDisclosure>\n * <Popover>Popover</Popover>\n * </PopoverProvider>\n * ```\n */\nexport const PopoverDisclosureArrow = forwardRef(\n function PopoverDisclosureArrow(props: PopoverDisclosureArrowProps) {\n const htmlProps = usePopoverDisclosureArrow(props);\n return createElement(TagName, htmlProps);\n },\n);\n\nexport interface PopoverDisclosureArrowOptions<\n _T extends ElementType = TagName,\n> extends Options {\n /**\n * Object returned by the\n * [`usePopoverStore`](https://ariakit.com/reference/use-popover-store) hook.\n * If not provided, the closest\n * [`PopoverDisclosure`](https://ariakit.com/reference/popover-disclosure) or\n * [`PopoverProvider`](https://ariakit.com/reference/popover-provider)\n * components' context will be used.\n */\n store?: PopoverStore;\n /**\n * Arrow's placement direction. If not provided, it will be inferred from the\n * context.\n *\n * Live examples:\n * - [Sliding Menu](https://ariakit.com/examples/menu-slide)\n */\n placement?: PopoverStoreState[\"placement\"];\n}\n\nexport type PopoverDisclosureArrowProps<T extends ElementType = TagName> =\n Props<T, PopoverDisclosureArrowOptions<T>>;\n"],"mappings":";;;;;;;;AAaA,MAAM,UAAA;MACC,YAAA;CACL,KAAA;CACA,OAAA;CACA,QAAM;CACR,MAAA;;;;;;;;;;;;;;;MAmBE,4BAAgB,WAAkB,SAAA,0BAAA,EAAA,OAAA,WAAA,GAAA,SAAA;CAClC,MAAA,UAAQ,kBAAS;CAEjB,QAAA,SAGI;CAQJ,UAAM,OAAS,0EADM;CAsBrB,MAAA,SAAQ,UAAA,cAAA,QAAA,UAAA,aAAA,MAAA,SAAA,EAAA,MAAA,GAAA,EAAA;SACN;YAjBY,cAAA,oBAAA,OAAA;GACR,SAAK;GACL,MAAA;GACA,QAAA;GACA,eAAA;GACA,gBAAa;GACb,aAAQ;GACR,SAAO;GACP,QAAM;;GAGH,UAMA,oBAAA,YAAA,EAAA,OAAA,CAAA;EACP,CAAA,GAAA,CAAA,MAAA,CAAA;EACA,eAAG;EACH,GAAA;SACE;GACA,OAAA;GACA,QAAA;GACA,eAAS;GACX,GAAA,MAAA;EACF;CAEA;CACD,OAAA,sBAAA,KAAA;;;;;;;;;;;;;;;;;;;MAsBG,yBADkB,WAAA,SAAA,uBACqB,OAAA;CAE3C,OAAA,cAAA,SAAA,0BAAA,KAAA,CAAA"}
1
+ {"version":3,"file":"popover-disclosure-arrow.js","names":[],"sources":["../../src/popover/popover-disclosure-arrow.tsx"],"sourcesContent":["import { useStoreState } from \"@ariakit/react-store\";\nimport { createElement, createHook, forwardRef } from \"@ariakit/react-utils\";\nimport type { Options, Props } from \"@ariakit/react-utils\";\nimport { invariant, removeUndefinedValues } from \"@ariakit/utils\";\nimport type { ElementType } from \"react\";\nimport { useMemo } from \"react\";\nimport { usePopoverContext } from \"./popover-context.tsx\";\nimport type { PopoverStore, PopoverStoreState } from \"./popover-store.ts\";\n\nconst TagName = \"span\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype BasePlacement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nconst pointsMap = {\n top: \"4,10 8,6 12,10\",\n right: \"6,4 10,8 6,12\",\n bottom: \"4,6 8,10 12,6\",\n left: \"10,4 6,8 10,12\",\n};\n\n/**\n * Returns props to create a `PopoverDisclosureArrow` component.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx\n * const store = usePopoverStore();\n * const props = usePopoverDisclosureArrow({ store });\n * <PopoverDisclosure store={store}>\n * Disclosure\n * <Role {...props} />\n * </PopoverDisclosure>\n * ```\n */\nexport const usePopoverDisclosureArrow = createHook<\n TagName,\n PopoverDisclosureArrowOptions\n>(function usePopoverDisclosureArrow({ store, placement, ...props }) {\n const context = usePopoverContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"PopoverDisclosureArrow must be wrapped in a PopoverDisclosure component.\",\n );\n\n const position = useStoreState(\n store,\n (state) => placement || state.placement,\n );\n const dir = position.split(\"-\")[0] as BasePlacement;\n const points = pointsMap[dir];\n\n const children = useMemo(\n () => (\n <svg\n display=\"block\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n viewBox=\"0 0 16 16\"\n height=\"1em\"\n width=\"1em\"\n >\n <polyline points={points} />\n </svg>\n ),\n [points],\n );\n\n props = {\n children,\n \"aria-hidden\": true,\n ...props,\n style: {\n width: \"1em\",\n height: \"1em\",\n pointerEvents: \"none\",\n ...props.style,\n },\n };\n\n return removeUndefinedValues(props);\n});\n\n/**\n * Renders an arrow pointing to the popover position. It's usually rendered\n * inside the\n * [`PopoverDisclosure`](https://ariakit.com/reference/popover-disclosure)\n * component.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx {4}\n * <PopoverProvider>\n * <PopoverDisclosure>\n * Disclosure\n * <PopoverDisclosureArrow />\n * </PopoverDisclosure>\n * <Popover>Popover</Popover>\n * </PopoverProvider>\n * ```\n */\nexport const PopoverDisclosureArrow = forwardRef(\n function PopoverDisclosureArrow(props: PopoverDisclosureArrowProps) {\n const htmlProps = usePopoverDisclosureArrow(props);\n return createElement(TagName, htmlProps);\n },\n);\n\nexport interface PopoverDisclosureArrowOptions<\n _T extends ElementType = TagName,\n> extends Options {\n /**\n * Object returned by the\n * [`usePopoverStore`](https://ariakit.com/reference/use-popover-store) hook.\n * If not provided, the closest\n * [`PopoverDisclosure`](https://ariakit.com/reference/popover-disclosure) or\n * [`PopoverProvider`](https://ariakit.com/reference/popover-provider)\n * components' context will be used.\n */\n store?: PopoverStore;\n /**\n * Arrow's placement direction. If not provided, it will be inferred from the\n * context.\n *\n * Live examples:\n * - [Sliding Menu](https://ariakit.com/examples/menu-slide)\n */\n placement?: PopoverStoreState[\"placement\"];\n}\n\nexport type PopoverDisclosureArrowProps<T extends ElementType = TagName> =\n Props<T, PopoverDisclosureArrowOptions<T>>;\n"],"mappings":";;;;;;;;AAaA,MAAM,UAAA;MACC,YAAA;CACL,KAAA;CACA,OAAA;CACA,QAAM;CACR,MAAA;;;;;;;;;;;;;;;MAmBE,4BAAgB,WAAkB,SAAA,0BAAA,EAAA,OAAA,WAAA,GAAA,SAAA;CAClC,MAAA,UAAQ,kBAAS;CAEjB,QAAA,SAEE;CASF,UAAM,OAAS,QALE,IAAA,aACf,gBACW,0EAEmB;CAsBhC,MAAA,SAAQ,UAAA,cAAA,QAAA,UAAA,aAAA,MAAA,SAAA,EAAA,MAAA,GAAA,EAAA;SACN;YAjBY,cAAA,oBAAA,OAAA;GACR,SAAK;GACL,MAAA;GACA,QAAA;GACA,eAAA;GACA,gBAAa;GACb,aAAQ;GACR,SAAO;GACP,QAAM;;GAGH,UAMA,oBAAA,YAAA,EAAA,OAAA,CAAA;EACP,CAAA,GAAA,CAAA,MAAA,CAAA;EACA,eAAG;EACH,GAAA;SACE;GACA,OAAA;GACA,QAAA;GACA,eAAS;GACX,GAAA,MAAA;EACF;CAEA;CACD,OAAA,sBAAA,KAAA;;;;;;;;;;;;;;;;;;;MAsBG,yBADkB,WAAA,SAAA,uBACqB,OAAA;CAE3C,OAAA,cAAA,SAAA,0BAAA,KAAA,CAAA"}
@@ -1,5 +1,5 @@
1
- import { n as DialogDisclosureOptions } from "../dialog-disclosure-DLD10zlb.js";
2
- import { n as PopoverAnchorOptions } from "../popover-anchor-PgfeXyzs.js";
1
+ import { n as DialogDisclosureOptions } from "../dialog-disclosure-DSESk5pv.js";
2
+ import { n as PopoverAnchorOptions } from "../popover-anchor-W18KUmuM.js";
3
3
  import { Props } from "@ariakit/react-utils";
4
4
  import { ElementType } from "react";
5
5
 
@@ -30,7 +30,7 @@ declare const usePopoverDisclosure: import("@ariakit/react-utils").Hook<"button"
30
30
  * </PopoverProvider>
31
31
  * ```
32
32
  */
33
- declare const PopoverDisclosure: (props: PopoverDisclosureProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
33
+ declare const PopoverDisclosure: (props: PopoverDisclosureProps) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
34
34
  interface PopoverDisclosureOptions<T extends ElementType = TagName> extends PopoverAnchorOptions<T>, Omit<DialogDisclosureOptions<T>, "store"> {}
35
35
  type PopoverDisclosureProps<T extends ElementType = TagName> = Props<T, PopoverDisclosureOptions<T>>;
36
36
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"popover-disclosure.d.ts","names":["Props","ElementType","DialogDisclosureOptions","PopoverAnchorOptions","TagName","usePopoverDisclosure","PopoverDisclosureOptions","Hook","PopoverDisclosure","PopoverDisclosureProps","props","ReactElement","JSXElementConstructor","T","Omit"],"sources":["../../src/popover/popover-disclosure.d.ts"],"mappings":";;;;;;cAIcI,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAFoC;;;;AAC5C;AAAA;;;;AACQ;AAY7B;AAdiE,cAc5CC,oBAAAA,iCAAqDE,IAAAA,WAAeD,wBAAwB;;;AAAA;AAajH;;;;;;;;;cAAqBE,iBAAAA,GAAoBE,KAAAA,EAAOD,sBAAsB,qBAAqBE,YAAAA,+BAA2CC,qBAAAA;AAAAA,UACrHN,wBAAAA,WAAmCL,WAAAA,GAAcG,OAAAA,UAAiBD,oBAAAA,CAAqBU,CAAAA,GAAIC,IAAAA,CAAKZ,uBAAAA,CAAwBW,CAAAA;AAAAA,KAE7HJ,sBAAAA,WAAiCR,WAAAA,GAAcG,OAAAA,IAAWJ,KAAAA,CAAMa,CAAAA,EAAGP,wBAAAA,CAAyBO,CAAAA"}
1
+ {"version":3,"file":"popover-disclosure.d.ts","names":["Props","ElementType","DialogDisclosureOptions","PopoverAnchorOptions","TagName","usePopoverDisclosure","PopoverDisclosureOptions","Hook","PopoverDisclosure","PopoverDisclosureProps","props","ReactElement","JSXElementConstructor","T","Omit"],"sources":["../../src/popover/popover-disclosure.d.ts"],"mappings":";;;;;;cAIcI,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAFoC;;;;AAC5C;AAAA;;;;AACQ;AAY7B;AAdiE,cAc5CC,oBAAAA,iCAAqDE,IAAAA,WAAeD,wBAAwB;;;AAAA;AAajH;;;;;;;;;cAAqBE,iBAAAA,GAAoBE,KAAAA,EAAOD,sBAAsB,qBAAqBE,YAAAA,mCAA+CC,qBAAAA;AAAAA,UACzHN,wBAAAA,WAAmCL,WAAAA,GAAcG,OAAAA,UAAiBD,oBAAAA,CAAqBU,CAAAA,GAAIC,IAAAA,CAAKZ,uBAAAA,CAAwBW,CAAAA;AAAAA,KAE7HJ,sBAAAA,WAAiCR,WAAAA,GAAcG,OAAAA,IAAWJ,KAAAA,CAAMa,CAAAA,EAAGP,wBAAAA,CAAyBO,CAAAA"}
@@ -21,7 +21,7 @@ const TagName = "button";
21
21
  const usePopoverDisclosure = createHook(function usePopoverDisclosure({ store, ...props }) {
22
22
  const context = usePopoverProviderContext();
23
23
  store = store || context;
24
- invariant(store, "PopoverDisclosure must receive a `store` prop or be wrapped in a PopoverProvider component.");
24
+ invariant(store, process.env.NODE_ENV !== "production" && "PopoverDisclosure must receive a `store` prop or be wrapped in a PopoverProvider component.");
25
25
  const onClickProp = props.onClick;
26
26
  const onClick = useEvent((event) => {
27
27
  store?.setAnchorElement(event.currentTarget);
@@ -1 +1 @@
1
- {"version":3,"file":"popover-disclosure.js","names":[],"sources":["../../src/popover/popover-disclosure.tsx"],"sourcesContent":["import {\n useEvent,\n useWrapElement,\n createElement,\n createHook,\n forwardRef,\n} from \"@ariakit/react-utils\";\nimport type { Props } from \"@ariakit/react-utils\";\nimport { invariant } from \"@ariakit/utils\";\nimport type { ElementType, MouseEvent } from \"react\";\nimport type { DialogDisclosureOptions } from \"../dialog/dialog-disclosure.tsx\";\nimport { useDialogDisclosure } from \"../dialog/dialog-disclosure.tsx\";\nimport type { PopoverAnchorOptions } from \"./popover-anchor.tsx\";\nimport { usePopoverAnchor } from \"./popover-anchor.tsx\";\nimport {\n PopoverScopedContextProvider,\n usePopoverProviderContext,\n} from \"./popover-context.tsx\";\n\nconst TagName = \"button\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype HTMLType = HTMLElementTagNameMap[TagName];\n\n/**\n * Returns props to create a `PopoverDisclosure` component.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx\n * const store = usePopoverStore();\n * const props = usePopoverDisclosure({ store });\n * <Role {...props}>Disclosure</Role>\n * <Popover store={store}>Popover</Popover>\n * ```\n */\nexport const usePopoverDisclosure = createHook<\n TagName,\n PopoverDisclosureOptions\n>(function usePopoverDisclosure({ store, ...props }) {\n const context = usePopoverProviderContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"PopoverDisclosure must receive a `store` prop or be wrapped in a PopoverProvider component.\",\n );\n\n const onClickProp = props.onClick;\n\n const onClick = useEvent((event: MouseEvent<HTMLType>) => {\n store?.setAnchorElement(event.currentTarget);\n onClickProp?.(event);\n });\n\n props = useWrapElement(\n props,\n (element) => (\n <PopoverScopedContextProvider value={store}>\n {element}\n </PopoverScopedContextProvider>\n ),\n [store],\n );\n\n props = {\n ...props,\n onClick,\n };\n\n props = usePopoverAnchor<TagName>({ store, ...props });\n props = useDialogDisclosure({ store, ...props });\n\n return props;\n});\n\n/**\n * Renders a button that controls the visibility of the\n * [`Popover`](https://ariakit.com/reference/popover) component when clicked.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx {2}\n * <PopoverProvider>\n * <PopoverDisclosure>Disclosure</PopoverDisclosure>\n * <Popover>Popover</Popover>\n * </PopoverProvider>\n * ```\n */\nexport const PopoverDisclosure = forwardRef(function PopoverDisclosure(\n props: PopoverDisclosureProps,\n) {\n const htmlProps = usePopoverDisclosure(props);\n return createElement(TagName, htmlProps);\n});\n\nexport interface PopoverDisclosureOptions<T extends ElementType = TagName>\n extends PopoverAnchorOptions<T>, Omit<DialogDisclosureOptions<T>, \"store\"> {}\n\nexport type PopoverDisclosureProps<T extends ElementType = TagName> = Props<\n T,\n PopoverDisclosureOptions<T>\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;MAsCE,uBAAgB,WAAA,SAA0B,qBAAA,EAAA,OAAA,GAAA,SAAA;CAC1C,MAAA,UAAQ,0BAAS;CAEjB,QAAA,SAGI;CAGJ,UAAM,OAAA,6FAAoB;CAE1B,MAAM,cAAU,MAAU;OACxB,UAAO,UAAiB,UAAM;EAC9B,OAAA,iBAAmB,MAAA,aAAA;EACpB,cAAA,KAAA;CAED,CAAA;SAGyC,eAAA,QAAA,YAAA,oBAAA,8BAAA;;EAEP,UAGlC;CAEA,CAAA,GAAA,CAAA,KAAQ,CAAA;SACH;EACH,GAAA;EACF;CAEA;SAAoC,iBAAA;EAAO;EAAU,GAAA;CACrD,CAAA;SAA8B,oBAAA;EAAO;EAAU,GAAA;CAE/C,CAAA;CACD,OAAA;;;;;;;;;;;;;;MAkBC,oBAAqB,WADH,SAAA,kBACqB,OAAA;CACxC,OAAA,cAAA,SAAA,qBAAA,KAAA,CAAA"}
1
+ {"version":3,"file":"popover-disclosure.js","names":[],"sources":["../../src/popover/popover-disclosure.tsx"],"sourcesContent":["import {\n useEvent,\n useWrapElement,\n createElement,\n createHook,\n forwardRef,\n} from \"@ariakit/react-utils\";\nimport type { Props } from \"@ariakit/react-utils\";\nimport { invariant } from \"@ariakit/utils\";\nimport type { ElementType, MouseEvent } from \"react\";\nimport type { DialogDisclosureOptions } from \"../dialog/dialog-disclosure.tsx\";\nimport { useDialogDisclosure } from \"../dialog/dialog-disclosure.tsx\";\nimport type { PopoverAnchorOptions } from \"./popover-anchor.tsx\";\nimport { usePopoverAnchor } from \"./popover-anchor.tsx\";\nimport {\n PopoverScopedContextProvider,\n usePopoverProviderContext,\n} from \"./popover-context.tsx\";\n\nconst TagName = \"button\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype HTMLType = HTMLElementTagNameMap[TagName];\n\n/**\n * Returns props to create a `PopoverDisclosure` component.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx\n * const store = usePopoverStore();\n * const props = usePopoverDisclosure({ store });\n * <Role {...props}>Disclosure</Role>\n * <Popover store={store}>Popover</Popover>\n * ```\n */\nexport const usePopoverDisclosure = createHook<\n TagName,\n PopoverDisclosureOptions\n>(function usePopoverDisclosure({ store, ...props }) {\n const context = usePopoverProviderContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"PopoverDisclosure must receive a `store` prop or be wrapped in a PopoverProvider component.\",\n );\n\n const onClickProp = props.onClick;\n\n const onClick = useEvent((event: MouseEvent<HTMLType>) => {\n store?.setAnchorElement(event.currentTarget);\n onClickProp?.(event);\n });\n\n props = useWrapElement(\n props,\n (element) => (\n <PopoverScopedContextProvider value={store}>\n {element}\n </PopoverScopedContextProvider>\n ),\n [store],\n );\n\n props = {\n ...props,\n onClick,\n };\n\n props = usePopoverAnchor<TagName>({ store, ...props });\n props = useDialogDisclosure({ store, ...props });\n\n return props;\n});\n\n/**\n * Renders a button that controls the visibility of the\n * [`Popover`](https://ariakit.com/reference/popover) component when clicked.\n * @see https://ariakit.com/components/popover\n * @example\n * ```jsx {2}\n * <PopoverProvider>\n * <PopoverDisclosure>Disclosure</PopoverDisclosure>\n * <Popover>Popover</Popover>\n * </PopoverProvider>\n * ```\n */\nexport const PopoverDisclosure = forwardRef(function PopoverDisclosure(\n props: PopoverDisclosureProps,\n) {\n const htmlProps = usePopoverDisclosure(props);\n return createElement(TagName, htmlProps);\n});\n\nexport interface PopoverDisclosureOptions<T extends ElementType = TagName>\n extends PopoverAnchorOptions<T>, Omit<DialogDisclosureOptions<T>, \"store\"> {}\n\nexport type PopoverDisclosureProps<T extends ElementType = TagName> = Props<\n T,\n PopoverDisclosureOptions<T>\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;MAsCE,uBAAgB,WAAA,SAA0B,qBAAA,EAAA,OAAA,GAAA,SAAA;CAC1C,MAAA,UAAQ,0BAAS;CAEjB,QAAA,SAEE;CAIF,UAAM,OAAA,QAAc,IAAM,aAAA,gBAAA,6FAAA;CAE1B,MAAM,cAAU,MAAU;OACxB,UAAO,UAAiB,UAAM;EAC9B,OAAA,iBAAmB,MAAA,aAAA;EACpB,cAAA,KAAA;CAED,CAAA;SAGyC,eAAA,QAAA,YAAA,oBAAA,8BAAA;;EAEP,UAGlC;CAEA,CAAA,GAAA,CAAA,KAAQ,CAAA;SACH;EACH,GAAA;EACF;CAEA;SAAoC,iBAAA;EAAO;EAAU,GAAA;CACrD,CAAA;SAA8B,oBAAA;EAAO;EAAU,GAAA;CAE/C,CAAA;CACD,OAAA;;;;;;;;;;;;;;MAkBC,oBAAqB,WADH,SAAA,kBACqB,OAAA;CACxC,OAAA,cAAA,SAAA,qBAAA,KAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import { i as usePopoverDismiss, n as PopoverDismissOptions, r as PopoverDismissProps, t as PopoverDismiss } from "../popover-dismiss-DPeI6Zse.js";
1
+ import { i as usePopoverDismiss, n as PopoverDismissOptions, r as PopoverDismissProps, t as PopoverDismiss } from "../popover-dismiss-CQFvuLzJ.js";
2
2
  export { PopoverDismiss, PopoverDismissOptions, PopoverDismissProps, usePopoverDismiss };
@@ -1,2 +1,2 @@
1
- import { i as usePopoverHeading, n as PopoverHeadingOptions, r as PopoverHeadingProps, t as PopoverHeading } from "../popover-heading-DGsr6D5W.js";
1
+ import { i as usePopoverHeading, n as PopoverHeadingOptions, r as PopoverHeadingProps, t as PopoverHeading } from "../popover-heading-DC8rYnwo.js";
2
2
  export { PopoverHeading, PopoverHeadingOptions, PopoverHeadingProps, usePopoverHeading };
@@ -1,2 +1,2 @@
1
- import { i as usePopover, n as PopoverOptions, r as PopoverProps, t as Popover } from "../popover-CCqiRKqg.js";
1
+ import { i as usePopover, n as PopoverOptions, r as PopoverProps, t as Popover } from "../popover-B9PxE5iP.js";
2
2
  export { Popover, PopoverOptions, PopoverProps, usePopover };
@@ -63,7 +63,7 @@ function getOffsetMiddleware(arrowElement, props) {
63
63
  function getFlipMiddleware(props) {
64
64
  if (props.flip === false) return;
65
65
  const fallbackPlacements = typeof props.flip === "string" ? props.flip.split(" ") : void 0;
66
- invariant(!fallbackPlacements || fallbackPlacements.every(isValidPlacement), "`flip` expects a spaced-delimited list of placements");
66
+ invariant(!fallbackPlacements || fallbackPlacements.every(isValidPlacement), process.env.NODE_ENV !== "production" && "`flip` expects a spaced-delimited list of placements");
67
67
  return flip({
68
68
  padding: props.overflowPadding,
69
69
  fallbackPlacements
@@ -117,7 +117,7 @@ function getArrowMiddleware(arrowElement, props) {
117
117
  const usePopover = createHook(function usePopover({ store, modal = false, portal = modal, preserveTabOrder = true, autoFocusOnShow = true, wrapperProps, fixed = false, flip = true, shift = 0, slide = true, overlap = false, sameWidth = false, fitViewport = false, gutter, arrowPadding = 4, overflowPadding = 8, getAnchorRect, updatePosition, ...props }) {
118
118
  const context = usePopoverProviderContext();
119
119
  store = store || context;
120
- invariant(store, "Popover must receive a `store` prop or be wrapped in a PopoverProvider component.");
120
+ invariant(store, process.env.NODE_ENV !== "production" && "Popover must receive a `store` prop or be wrapped in a PopoverProvider component.");
121
121
  const arrowElement = useStoreState(store, "arrowElement");
122
122
  const anchorElement = useStoreState(store, "anchorElement");
123
123
  const disclosureElement = useStoreState(store, "disclosureElement");