solid-baseui 0.1.0-alpha.0

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 (810) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +150 -0
  3. package/dist/lib/client/CSPContext-faVzToiT.js +10 -0
  4. package/dist/lib/client/CheckboxGroupContext-1CRRHK0T.js +8 -0
  5. package/dist/lib/client/DialogHandle-DrN2YWCv.js +518 -0
  6. package/dist/lib/client/DialogPopup-ZlqmGfdk.js +136 -0
  7. package/dist/lib/client/DirectionContext-BwMabICS.js +7 -0
  8. package/dist/lib/client/FieldControl-Bc-z2og6.js +116 -0
  9. package/dist/lib/client/FieldItemContext-Bwzf-4tL.js +7 -0
  10. package/dist/lib/client/FieldRootContext-izCEh80D.js +32 -0
  11. package/dist/lib/client/FieldsetRootContext-BgThSAcd.js +13 -0
  12. package/dist/lib/client/FloatingTree-23B7KKPD.js +83 -0
  13. package/dist/lib/client/FocusManager-grSdNHqW.js +360 -0
  14. package/dist/lib/client/FormContext-BB05lWOI.js +16 -0
  15. package/dist/lib/client/InternalBackdrop-cSK13gaM.js +160 -0
  16. package/dist/lib/client/LabelableContext-DKsB0fIx.js +48 -0
  17. package/dist/lib/client/MenuSubmenuTrigger-QZkQ0F2v.js +1570 -0
  18. package/dist/lib/client/MenubarContext-BYt3fkt-.js +13 -0
  19. package/dist/lib/client/PopupHandle-CcJG4NMy.js +101 -0
  20. package/dist/lib/client/PopupStore-DjB-wO88.js +468 -0
  21. package/dist/lib/client/PopupViewport-DgrIqQea.js +152 -0
  22. package/dist/lib/client/RadioGroupContext-CZexBsPa.js +9 -0
  23. package/dist/lib/client/Separator-9DboD_Si.js +25 -0
  24. package/dist/lib/client/ToggleGroupContext-_THxLgJU.js +9 -0
  25. package/dist/lib/client/ToolbarGroupContext-Dpc3_mFx.js +9 -0
  26. package/dist/lib/client/ToolbarItemOwnerContext-DtVqVnSE.js +9 -0
  27. package/dist/lib/client/ToolbarRootContext-88yZoAOy.js +13 -0
  28. package/dist/lib/client/TriggerFocusGuards-CQ-JuASy.js +56 -0
  29. package/dist/lib/client/accordion/index.js +2 -0
  30. package/dist/lib/client/accordion-sOXt9AlG.js +399 -0
  31. package/dist/lib/client/alert-dialog/index.js +2 -0
  32. package/dist/lib/client/alert-dialog-BH_3ndio.js +30 -0
  33. package/dist/lib/client/autocomplete/index.js +2 -0
  34. package/dist/lib/client/autocomplete-Cob_FZEP.js +113 -0
  35. package/dist/lib/client/avatar/index.js +2 -0
  36. package/dist/lib/client/avatar-AF9vyD4q.js +146 -0
  37. package/dist/lib/client/button/index.js +2 -0
  38. package/dist/lib/client/button-DpUi-2g8.js +82 -0
  39. package/dist/lib/client/buttonSemantics-paljfpOX.js +39 -0
  40. package/dist/lib/client/checkbox/index.js +2 -0
  41. package/dist/lib/client/checkbox-BbAwOptH.js +441 -0
  42. package/dist/lib/client/checkbox-group/index.js +2 -0
  43. package/dist/lib/client/checkbox-group-CSSp_805.js +128 -0
  44. package/dist/lib/client/collapsible/index.js +2 -0
  45. package/dist/lib/client/collapsible-BIbje_ub.js +232 -0
  46. package/dist/lib/client/combobox/index.js +2 -0
  47. package/dist/lib/client/combobox-8O-vgTLL.js +352 -0
  48. package/dist/lib/client/compositeNavigation-sxniYTc7.js +58 -0
  49. package/dist/lib/client/constants-BYjBUIIi.js +424 -0
  50. package/dist/lib/client/context-menu/index.js +2 -0
  51. package/dist/lib/client/context-menu-BTMkXtrs.js +217 -0
  52. package/dist/lib/client/createAnchorPositioning-DcxDXUgB.js +1058 -0
  53. package/dist/lib/client/createAnchoredPopupScrollLock-Cx0cbh1_.js +19 -0
  54. package/dist/lib/client/createClickInteraction-CTaIFBiV.js +45 -0
  55. package/dist/lib/client/createCollapsiblePanel-DeDu0O2t.js +231 -0
  56. package/dist/lib/client/createFocusInteraction-D4w1-235.js +50 -0
  57. package/dist/lib/client/createPopupAutoResize-CGNiLhGq.js +60 -0
  58. package/dist/lib/client/createTransitionStatus-B1L-whed.js +53 -0
  59. package/dist/lib/client/csp-provider/index.js +2 -0
  60. package/dist/lib/client/csp-provider-C7nRHDKK.js +16 -0
  61. package/dist/lib/client/dialog/index.js +2 -0
  62. package/dist/lib/client/dialog-DkaQwIgP.js +19 -0
  63. package/dist/lib/client/direction-provider/index.js +3 -0
  64. package/dist/lib/client/direction-provider-DYhRN-8f.js +13 -0
  65. package/dist/lib/client/dom-BEAeQ9Eb.js +58 -0
  66. package/dist/lib/client/drawer/index.js +2 -0
  67. package/dist/lib/client/drawer-Ce2cChLt.js +1550 -0
  68. package/dist/lib/client/field/index.js +2 -0
  69. package/dist/lib/client/field-C-o7jzKW.js +469 -0
  70. package/dist/lib/client/fieldset/index.js +2 -0
  71. package/dist/lib/client/fieldset-BQTAWv2L.js +65 -0
  72. package/dist/lib/client/form/index.js +2 -0
  73. package/dist/lib/client/form-BINBiW5L.js +106 -0
  74. package/dist/lib/client/form-types-DFBxc1LF.js +8 -0
  75. package/dist/lib/client/index.js +43 -0
  76. package/dist/lib/client/input/index.js +2 -0
  77. package/dist/lib/client/input-gb0ejxkm.js +7 -0
  78. package/dist/lib/client/internals/composeEventHandlers.js +50 -0
  79. package/dist/lib/client/internals/createBaseUIEventDetails.js +31 -0
  80. package/dist/lib/client/internals/csp-context/index.js +2 -0
  81. package/dist/lib/client/internals/direction-context/index.js +2 -0
  82. package/dist/lib/client/internals/field-constants.js +56 -0
  83. package/dist/lib/client/internals/field-root-context/index.js +2 -0
  84. package/dist/lib/client/internals/form-context/index.js +2 -0
  85. package/dist/lib/client/internals/getStateAttributesProps.js +21 -0
  86. package/dist/lib/client/internals/labelable-provider/index.js +19 -0
  87. package/dist/lib/client/internals/mergeStyles.js +9 -0
  88. package/dist/lib/client/internals/reasons.js +2 -0
  89. package/dist/lib/client/internals/stateAttributesMapping.js +8 -0
  90. package/dist/lib/client/internals/types.js +0 -0
  91. package/dist/lib/client/menu/index.js +2 -0
  92. package/dist/lib/client/menu-DeMT08oD.js +326 -0
  93. package/dist/lib/client/menubar/index.js +2 -0
  94. package/dist/lib/client/menubar-C4aomSYv.js +185 -0
  95. package/dist/lib/client/mergeStyleValue-C4ITiiIV.js +42 -0
  96. package/dist/lib/client/meter/index.js +2 -0
  97. package/dist/lib/client/meter-xSU37Q0m.js +171 -0
  98. package/dist/lib/client/navigation-menu/index.js +2 -0
  99. package/dist/lib/client/navigation-menu-ZILQmdn6.js +1083 -0
  100. package/dist/lib/client/number-field/index.js +2 -0
  101. package/dist/lib/client/number-field-B8CsTb_8.js +1035 -0
  102. package/dist/lib/client/otp-field/index.js +2 -0
  103. package/dist/lib/client/otp-field-DBkMcnog.js +582 -0
  104. package/dist/lib/client/platform-Bk5Q32mf.js +13 -0
  105. package/dist/lib/client/popover/index.js +2 -0
  106. package/dist/lib/client/popover-CQwyp-fs.js +929 -0
  107. package/dist/lib/client/popupStateMapping-C9eZl19i.js +367 -0
  108. package/dist/lib/client/preview-card/index.js +2 -0
  109. package/dist/lib/client/preview-card-D_2Q8lpC.js +625 -0
  110. package/dist/lib/client/progress/index.js +2 -0
  111. package/dist/lib/client/progress-D7r0xAC9.js +188 -0
  112. package/dist/lib/client/radio/index.js +2 -0
  113. package/dist/lib/client/radio-CzGQ81z1.js +299 -0
  114. package/dist/lib/client/radio-group/index.js +2 -0
  115. package/dist/lib/client/radio-group-DpHlBKA6.js +193 -0
  116. package/dist/lib/client/reasons-Co5CzjKq.js +41 -0
  117. package/dist/lib/client/resolveStyle-XcgAuaKR.js +11 -0
  118. package/dist/lib/client/rolldown-runtime-Dy4uBu1J.js +11 -0
  119. package/dist/lib/client/runOnceAnimationsFinish-15EM-Z4l.js +48 -0
  120. package/dist/lib/client/safePolygon--bbKn0c8.js +316 -0
  121. package/dist/lib/client/scroll-area/index.js +2 -0
  122. package/dist/lib/client/scroll-area-CffM4U0R.js +701 -0
  123. package/dist/lib/client/scrollable-SRNYlhF7.js +42 -0
  124. package/dist/lib/client/select/index.js +2 -0
  125. package/dist/lib/client/select-IFhiEg73.js +1940 -0
  126. package/dist/lib/client/separator/index.js +2 -0
  127. package/dist/lib/client/setRef-fXF6OIo3.js +7 -0
  128. package/dist/lib/client/slider/index.js +2 -0
  129. package/dist/lib/client/slider-BCagYmGp.js +921 -0
  130. package/dist/lib/client/switch/index.js +2 -0
  131. package/dist/lib/client/switch-RIJeDnvS.js +308 -0
  132. package/dist/lib/client/tabs/index.js +2 -0
  133. package/dist/lib/client/tabs-fOAKs7r3.js +696 -0
  134. package/dist/lib/client/toast/index.js +2 -0
  135. package/dist/lib/client/toast-D2P8UqUs.js +1108 -0
  136. package/dist/lib/client/toggle/index.js +2 -0
  137. package/dist/lib/client/toggle-group/index.js +2 -0
  138. package/dist/lib/client/toggle-group-0Aue0owJ.js +129 -0
  139. package/dist/lib/client/toggle-momVEIBL.js +138 -0
  140. package/dist/lib/client/toolbar/index.js +2 -0
  141. package/dist/lib/client/toolbar-Du22aKCv.js +492 -0
  142. package/dist/lib/client/tooltip/index.js +2 -0
  143. package/dist/lib/client/tooltip-CyK61fl1.js +844 -0
  144. package/dist/lib/client/types/index.js +0 -0
  145. package/dist/lib/client/useFilteredItems-DTekHz39.js +2223 -0
  146. package/dist/lib/client/withoutComponentBinding-CcCW7fSc.js +13 -0
  147. package/dist/lib/server/CSPContext-DOxR0PO7.js +10 -0
  148. package/dist/lib/server/CheckboxGroupContext-DTP679kK.js +8 -0
  149. package/dist/lib/server/DialogHandle-ATZlm9RC.js +689 -0
  150. package/dist/lib/server/DialogPopup-BebI-w5P.js +159 -0
  151. package/dist/lib/server/DirectionContext-YORWLF08.js +10 -0
  152. package/dist/lib/server/FieldControl-Y_kI7ARp.js +174 -0
  153. package/dist/lib/server/FieldItemContext-x-C7ZlmX.js +7 -0
  154. package/dist/lib/server/FieldRootContext-IC-LWzVp.js +34 -0
  155. package/dist/lib/server/FieldsetRootContext-DyNqCjK6.js +14 -0
  156. package/dist/lib/server/FloatingTree-z1JPD1dR.js +101 -0
  157. package/dist/lib/server/FocusManager-BrbZVWME.js +538 -0
  158. package/dist/lib/server/FormContext-pvESt85v.js +17 -0
  159. package/dist/lib/server/InternalBackdrop-C_iDPVR-.js +260 -0
  160. package/dist/lib/server/LabelableContext-DZP3rgAY.js +59 -0
  161. package/dist/lib/server/MenuSubmenuTrigger-DA4gsv6z.js +2072 -0
  162. package/dist/lib/server/MenubarContext-C-62rMnO.js +14 -0
  163. package/dist/lib/server/PopupHandle-DthPgNjy.js +115 -0
  164. package/dist/lib/server/PopupStore-DEs3FAEe.js +645 -0
  165. package/dist/lib/server/PopupViewport-3r_KTFwX.js +220 -0
  166. package/dist/lib/server/RadioGroupContext-D5xmTkDz.js +10 -0
  167. package/dist/lib/server/Separator-vhhYxWGr.js +31 -0
  168. package/dist/lib/server/ToggleGroupContext-COor8gYc.js +10 -0
  169. package/dist/lib/server/ToolbarGroupContext-CzdHxijX.js +10 -0
  170. package/dist/lib/server/ToolbarItemOwnerContext-L5dsZ_vS.js +10 -0
  171. package/dist/lib/server/ToolbarRootContext-DD-qe7s8.js +14 -0
  172. package/dist/lib/server/TriggerFocusGuards-sbGwf45f.js +63 -0
  173. package/dist/lib/server/accordion/index.js +566 -0
  174. package/dist/lib/server/alert-dialog/index.js +36 -0
  175. package/dist/lib/server/autocomplete/index.js +173 -0
  176. package/dist/lib/server/avatar/index.js +199 -0
  177. package/dist/lib/server/button/index.js +119 -0
  178. package/dist/lib/server/buttonSemantics-BSwDxJhh.js +49 -0
  179. package/dist/lib/server/checkbox/index.js +537 -0
  180. package/dist/lib/server/checkbox-group/index.js +198 -0
  181. package/dist/lib/server/collapsible/index.js +307 -0
  182. package/dist/lib/server/combobox/index.js +480 -0
  183. package/dist/lib/server/compositeNavigation-BRVT1C38.js +68 -0
  184. package/dist/lib/server/constants-9H__9xbS.js +706 -0
  185. package/dist/lib/server/context-menu/index.js +263 -0
  186. package/dist/lib/server/createAnchorPositioning-C-cVOPwz.js +381 -0
  187. package/dist/lib/server/createAnchoredPopupScrollLock-DFuUrykR.js +20 -0
  188. package/dist/lib/server/createClickInteraction-BYsMgvup.js +68 -0
  189. package/dist/lib/server/createCollapsiblePanel-DTyVJz0G.js +297 -0
  190. package/dist/lib/server/createFocusInteraction-EIS0QOel.js +77 -0
  191. package/dist/lib/server/createPopupAutoResize-DO50jjNX.js +111 -0
  192. package/dist/lib/server/createTransitionStatus-BTlrerSS.js +61 -0
  193. package/dist/lib/server/csp-provider/index.js +15 -0
  194. package/dist/lib/server/dialog/index.js +19 -0
  195. package/dist/lib/server/direction-provider/index.js +13 -0
  196. package/dist/lib/server/dom-Crg_2R-j.js +67 -0
  197. package/dist/lib/server/drawer/index.js +2351 -0
  198. package/dist/lib/server/field/index.js +677 -0
  199. package/dist/lib/server/fieldset/index.js +91 -0
  200. package/dist/lib/server/form/index.js +136 -0
  201. package/dist/lib/server/form-types-P7-SCWyr.js +8 -0
  202. package/dist/lib/server/index.js +43 -0
  203. package/dist/lib/server/input/index.js +11 -0
  204. package/dist/lib/server/internals/composeEventHandlers.js +60 -0
  205. package/dist/lib/server/internals/createBaseUIEventDetails.js +33 -0
  206. package/dist/lib/server/internals/csp-context/index.js +2 -0
  207. package/dist/lib/server/internals/direction-context/index.js +2 -0
  208. package/dist/lib/server/internals/field-constants.js +64 -0
  209. package/dist/lib/server/internals/field-root-context/index.js +2 -0
  210. package/dist/lib/server/internals/form-context/index.js +2 -0
  211. package/dist/lib/server/internals/getStateAttributesProps.js +23 -0
  212. package/dist/lib/server/internals/labelable-provider/index.js +20 -0
  213. package/dist/lib/server/internals/mergeStyles.js +15 -0
  214. package/dist/lib/server/internals/reasons.js +76 -0
  215. package/dist/lib/server/internals/stateAttributesMapping.js +15 -0
  216. package/dist/lib/server/internals/types.js +1 -0
  217. package/dist/lib/server/menu/index.js +423 -0
  218. package/dist/lib/server/menubar/index.js +242 -0
  219. package/dist/lib/server/mergeStyleValue-Db8bRCM4.js +67 -0
  220. package/dist/lib/server/meter/index.js +217 -0
  221. package/dist/lib/server/navigation-menu/index.js +1436 -0
  222. package/dist/lib/server/number-field/index.js +1497 -0
  223. package/dist/lib/server/otp-field/index.js +811 -0
  224. package/dist/lib/server/platform-DYukKUir.js +13 -0
  225. package/dist/lib/server/popover/index.js +1187 -0
  226. package/dist/lib/server/popupStateMapping-nKoUwoke.js +459 -0
  227. package/dist/lib/server/preview-card/index.js +797 -0
  228. package/dist/lib/server/progress/index.js +252 -0
  229. package/dist/lib/server/radio/index.js +364 -0
  230. package/dist/lib/server/radio-group/index.js +282 -0
  231. package/dist/lib/server/resolveStyle-XCSFDHAL.js +11 -0
  232. package/dist/lib/server/rolldown-runtime-D7D4PA-g.js +13 -0
  233. package/dist/lib/server/runOnceAnimationsFinish-DCHzXWZU.js +59 -0
  234. package/dist/lib/server/safePolygon-CAm5RJGv.js +474 -0
  235. package/dist/lib/server/scroll-area/index.js +993 -0
  236. package/dist/lib/server/scrollable-CjsSxbGr.js +54 -0
  237. package/dist/lib/server/select/index.js +2630 -0
  238. package/dist/lib/server/separator/index.js +2 -0
  239. package/dist/lib/server/setRef-Bt70sW7c.js +7 -0
  240. package/dist/lib/server/slider/index.js +1333 -0
  241. package/dist/lib/server/switch/index.js +389 -0
  242. package/dist/lib/server/tabs/index.js +1007 -0
  243. package/dist/lib/server/toast/index.js +1588 -0
  244. package/dist/lib/server/toggle/index.js +201 -0
  245. package/dist/lib/server/toggle-group/index.js +192 -0
  246. package/dist/lib/server/toolbar/index.js +685 -0
  247. package/dist/lib/server/tooltip/index.js +1092 -0
  248. package/dist/lib/server/types/index.js +1 -0
  249. package/dist/lib/server/useFilteredItems-DvuctLt3.js +3157 -0
  250. package/dist/lib/server/withoutComponentBinding-BHaWr5kU.js +20 -0
  251. package/dist/lib/types/accordion/header/AccordionHeader.d.ts +12 -0
  252. package/dist/lib/types/accordion/index.d.ts +6 -0
  253. package/dist/lib/types/accordion/index.parts.d.ts +5 -0
  254. package/dist/lib/types/accordion/item/AccordionItem.d.ts +29 -0
  255. package/dist/lib/types/accordion/item/AccordionItemContext.d.ts +22 -0
  256. package/dist/lib/types/accordion/item/AccordionItemDataAttributes.d.ts +5 -0
  257. package/dist/lib/types/accordion/item/stateAttributesMapping.d.ts +13 -0
  258. package/dist/lib/types/accordion/panel/AccordionPanel.d.ts +20 -0
  259. package/dist/lib/types/accordion/panel/AccordionPanelCssVars.d.ts +4 -0
  260. package/dist/lib/types/accordion/root/AccordionRoot.d.ts +46 -0
  261. package/dist/lib/types/accordion/root/AccordionRootContext.d.ts +22 -0
  262. package/dist/lib/types/accordion/root/stateAttributesMapping.d.ts +3 -0
  263. package/dist/lib/types/accordion/trigger/AccordionTrigger.d.ts +27 -0
  264. package/dist/lib/types/accordion/trigger/AccordionTriggerDataAttributes.d.ts +4 -0
  265. package/dist/lib/types/alert-dialog/handle.d.ts +6 -0
  266. package/dist/lib/types/alert-dialog/index.d.ts +10 -0
  267. package/dist/lib/types/alert-dialog/index.parts.d.ts +10 -0
  268. package/dist/lib/types/alert-dialog/root/AlertDialogRoot.d.ts +29 -0
  269. package/dist/lib/types/alert-dialog/trigger/AlertDialogTrigger.d.ts +19 -0
  270. package/dist/lib/types/autocomplete/index.d.ts +24 -0
  271. package/dist/lib/types/autocomplete/index.parts.d.ts +23 -0
  272. package/dist/lib/types/autocomplete/input-group/AutocompleteInputGroup.d.ts +26 -0
  273. package/dist/lib/types/autocomplete/item/AutocompleteItem.d.ts +18 -0
  274. package/dist/lib/types/autocomplete/root/AutocompleteRoot.d.ts +195 -0
  275. package/dist/lib/types/autocomplete/root/utils/useFilter.d.ts +9 -0
  276. package/dist/lib/types/autocomplete/separator/AutocompleteSeparator.d.ts +17 -0
  277. package/dist/lib/types/autocomplete/trigger/AutocompleteTrigger.d.ts +24 -0
  278. package/dist/lib/types/autocomplete/value/AutocompleteValue.d.ts +15 -0
  279. package/dist/lib/types/avatar/fallback/AvatarFallback.d.ts +16 -0
  280. package/dist/lib/types/avatar/image/AvatarImage.d.ts +17 -0
  281. package/dist/lib/types/avatar/image/createImageLoadingStatus.d.ts +10 -0
  282. package/dist/lib/types/avatar/index.d.ts +4 -0
  283. package/dist/lib/types/avatar/index.parts.d.ts +3 -0
  284. package/dist/lib/types/avatar/root/AvatarRoot.d.ts +13 -0
  285. package/dist/lib/types/avatar/root/AvatarRootContext.d.ts +10 -0
  286. package/dist/lib/types/button/Button.d.ts +34 -0
  287. package/dist/lib/types/button/index.d.ts +2 -0
  288. package/dist/lib/types/checkbox/index.d.ts +3 -0
  289. package/dist/lib/types/checkbox/index.parts.d.ts +2 -0
  290. package/dist/lib/types/checkbox/indicator/CheckboxIndicator.d.ts +20 -0
  291. package/dist/lib/types/checkbox/root/CheckboxRoot.d.ts +56 -0
  292. package/dist/lib/types/checkbox/root/CheckboxRootContext.d.ts +7 -0
  293. package/dist/lib/types/checkbox/utils/getCheckboxStateAttributesMapping.d.ts +3 -0
  294. package/dist/lib/types/checkbox-group/CheckboxGroup.d.ts +32 -0
  295. package/dist/lib/types/checkbox-group/CheckboxGroupContext.d.ts +30 -0
  296. package/dist/lib/types/checkbox-group/index.d.ts +2 -0
  297. package/dist/lib/types/collapsible/index.d.ts +4 -0
  298. package/dist/lib/types/collapsible/index.parts.d.ts +3 -0
  299. package/dist/lib/types/collapsible/panel/CollapsiblePanel.d.ts +25 -0
  300. package/dist/lib/types/collapsible/panel/createCollapsiblePanel.d.ts +26 -0
  301. package/dist/lib/types/collapsible/root/CollapsibleRoot.d.ts +34 -0
  302. package/dist/lib/types/collapsible/root/CollapsibleRootContext.d.ts +19 -0
  303. package/dist/lib/types/collapsible/root/createCollapsibleTransitionStatus.d.ts +9 -0
  304. package/dist/lib/types/collapsible/root/stateAttributesMapping.d.ts +14 -0
  305. package/dist/lib/types/collapsible/trigger/CollapsibleTrigger.d.ts +28 -0
  306. package/dist/lib/types/combobox/arrow/ComboboxArrow.d.ts +16 -0
  307. package/dist/lib/types/combobox/backdrop/ComboboxBackdrop.d.ts +14 -0
  308. package/dist/lib/types/combobox/chip/ComboboxChip.d.ts +17 -0
  309. package/dist/lib/types/combobox/chip/ComboboxChipContext.d.ts +8 -0
  310. package/dist/lib/types/combobox/chip-remove/ComboboxChipRemove.d.ts +26 -0
  311. package/dist/lib/types/combobox/chips/ComboboxChips.d.ts +16 -0
  312. package/dist/lib/types/combobox/chips/ComboboxChipsContext.d.ts +26 -0
  313. package/dist/lib/types/combobox/clear/ComboboxClear.d.ts +35 -0
  314. package/dist/lib/types/combobox/collection/ComboboxCollection.d.ts +19 -0
  315. package/dist/lib/types/combobox/empty/ComboboxEmpty.d.ts +16 -0
  316. package/dist/lib/types/combobox/group/ComboboxGroup.d.ts +19 -0
  317. package/dist/lib/types/combobox/group/ComboboxGroupContext.d.ts +9 -0
  318. package/dist/lib/types/combobox/group-label/ComboboxGroupLabel.d.ts +11 -0
  319. package/dist/lib/types/combobox/icon/ComboboxIcon.d.ts +12 -0
  320. package/dist/lib/types/combobox/index.d.ts +29 -0
  321. package/dist/lib/types/combobox/index.parts.d.ts +28 -0
  322. package/dist/lib/types/combobox/input/ComboboxInput.d.ts +36 -0
  323. package/dist/lib/types/combobox/input-group/ComboboxInputGroup.d.ts +24 -0
  324. package/dist/lib/types/combobox/item/ComboboxItem.d.ts +40 -0
  325. package/dist/lib/types/combobox/item/ComboboxItemContext.d.ts +9 -0
  326. package/dist/lib/types/combobox/item-indicator/ComboboxItemIndicator.d.ts +22 -0
  327. package/dist/lib/types/combobox/label/ComboboxLabel.d.ts +22 -0
  328. package/dist/lib/types/combobox/list/ComboboxList.d.ts +24 -0
  329. package/dist/lib/types/combobox/popup/ComboboxPopup.d.ts +35 -0
  330. package/dist/lib/types/combobox/portal/ComboboxPortal.d.ts +25 -0
  331. package/dist/lib/types/combobox/portal/ComboboxPortalContext.d.ts +5 -0
  332. package/dist/lib/types/combobox/positioner/ComboboxPositioner.d.ts +37 -0
  333. package/dist/lib/types/combobox/positioner/ComboboxPositionerContext.d.ts +11 -0
  334. package/dist/lib/types/combobox/root/AriaCombobox.d.ts +82 -0
  335. package/dist/lib/types/combobox/root/ComboboxRoot.d.ts +180 -0
  336. package/dist/lib/types/combobox/root/ComboboxRootContext.d.ts +99 -0
  337. package/dist/lib/types/combobox/root/utils/useFilter.d.ts +25 -0
  338. package/dist/lib/types/combobox/root/utils/useFilteredItems.d.ts +5 -0
  339. package/dist/lib/types/combobox/row/ComboboxRow.d.ts +14 -0
  340. package/dist/lib/types/combobox/row/ComboboxRowContext.d.ts +3 -0
  341. package/dist/lib/types/combobox/separator/ComboboxSeparator.d.ts +21 -0
  342. package/dist/lib/types/combobox/status/ComboboxStatus.d.ts +17 -0
  343. package/dist/lib/types/combobox/store/ComboboxItemRegistry.d.ts +39 -0
  344. package/dist/lib/types/combobox/store/ComboboxStore.d.ts +65 -0
  345. package/dist/lib/types/combobox/trigger/ComboboxTrigger.d.ts +36 -0
  346. package/dist/lib/types/combobox/types.d.ts +15 -0
  347. package/dist/lib/types/combobox/utils/ComboboxInternalDismissButton.d.ts +9 -0
  348. package/dist/lib/types/combobox/utils/comboboxPopupId.d.ts +5 -0
  349. package/dist/lib/types/combobox/utils/createInitialLiveRegionTextMutation.d.ts +7 -0
  350. package/dist/lib/types/combobox/utils/handleInputPress.d.ts +7 -0
  351. package/dist/lib/types/combobox/utils/parts.d.ts +4 -0
  352. package/dist/lib/types/combobox/utils/stateAttributesMapping.d.ts +58 -0
  353. package/dist/lib/types/combobox/value/ComboboxValue.d.ts +20 -0
  354. package/dist/lib/types/context-menu/index.d.ts +19 -0
  355. package/dist/lib/types/context-menu/index.parts.d.ts +19 -0
  356. package/dist/lib/types/context-menu/root/ContextMenuRoot.d.ts +21 -0
  357. package/dist/lib/types/context-menu/root/ContextMenuRootContext.d.ts +19 -0
  358. package/dist/lib/types/context-menu/trigger/ContextMenuTrigger.d.ts +21 -0
  359. package/dist/lib/types/csp-provider/CSPProvider.d.ts +14 -0
  360. package/dist/lib/types/csp-provider/index.d.ts +2 -0
  361. package/dist/lib/types/dialog/backdrop/DialogBackdrop.d.ts +18 -0
  362. package/dist/lib/types/dialog/close/DialogClose.d.ts +26 -0
  363. package/dist/lib/types/dialog/description/DialogDescription.d.ts +11 -0
  364. package/dist/lib/types/dialog/index.d.ts +10 -0
  365. package/dist/lib/types/dialog/index.parts.d.ts +10 -0
  366. package/dist/lib/types/dialog/popup/DialogPopup.d.ts +24 -0
  367. package/dist/lib/types/dialog/portal/DialogPortal.d.ts +17 -0
  368. package/dist/lib/types/dialog/portal/DialogPortalContext.d.ts +8 -0
  369. package/dist/lib/types/dialog/root/DialogRoot.d.ts +44 -0
  370. package/dist/lib/types/dialog/root/DialogRootContext.d.ts +38 -0
  371. package/dist/lib/types/dialog/store/DialogHandle.d.ts +11 -0
  372. package/dist/lib/types/dialog/store/DialogStore.d.ts +20 -0
  373. package/dist/lib/types/dialog/title/DialogTitle.d.ts +11 -0
  374. package/dist/lib/types/dialog/trigger/DialogTrigger.d.ts +30 -0
  375. package/dist/lib/types/dialog/utils/mergeDialogStyles.d.ts +2 -0
  376. package/dist/lib/types/dialog/utils/stateAttributesMapping.d.ts +20 -0
  377. package/dist/lib/types/dialog/viewport/DialogViewport.d.ts +16 -0
  378. package/dist/lib/types/direction-provider/DirectionProvider.d.ts +13 -0
  379. package/dist/lib/types/direction-provider/index.d.ts +4 -0
  380. package/dist/lib/types/drawer/backdrop/DrawerBackdrop.d.ts +24 -0
  381. package/dist/lib/types/drawer/backdrop/DrawerBackdropCssVars.d.ts +7 -0
  382. package/dist/lib/types/drawer/content/DrawerContent.d.ts +14 -0
  383. package/dist/lib/types/drawer/content/DrawerContentDataAttributes.d.ts +1 -0
  384. package/dist/lib/types/drawer/handle.d.ts +14 -0
  385. package/dist/lib/types/drawer/indent/DrawerIndent.d.ts +16 -0
  386. package/dist/lib/types/drawer/indent-background/DrawerIndentBackground.d.ts +23 -0
  387. package/dist/lib/types/drawer/index.d.ts +17 -0
  388. package/dist/lib/types/drawer/index.parts.d.ts +16 -0
  389. package/dist/lib/types/drawer/popup/DrawerPopup.d.ts +46 -0
  390. package/dist/lib/types/drawer/popup/DrawerPopupCssVars.d.ts +37 -0
  391. package/dist/lib/types/drawer/popup/DrawerPopupDataAttributes.d.ts +25 -0
  392. package/dist/lib/types/drawer/provider/DrawerProvider.d.ts +15 -0
  393. package/dist/lib/types/drawer/provider/DrawerProviderContext.d.ts +21 -0
  394. package/dist/lib/types/drawer/root/DrawerRoot.d.ts +65 -0
  395. package/dist/lib/types/drawer/root/DrawerRootContext.d.ts +68 -0
  396. package/dist/lib/types/drawer/root/createDrawerSnapPoints.d.ts +24 -0
  397. package/dist/lib/types/drawer/swipe-area/DrawerSwipeArea.d.ts +43 -0
  398. package/dist/lib/types/drawer/swipe-area/DrawerSwipeAreaDataAttributes.d.ts +15 -0
  399. package/dist/lib/types/drawer/viewport/DrawerViewport.d.ts +31 -0
  400. package/dist/lib/types/drawer/viewport/DrawerViewportContext.d.ts +12 -0
  401. package/dist/lib/types/drawer/viewport/DrawerViewportCssVars.d.ts +8 -0
  402. package/dist/lib/types/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardContext.d.ts +14 -0
  403. package/dist/lib/types/drawer/virtual-keyboard-provider/DrawerVirtualKeyboardProvider.d.ts +14 -0
  404. package/dist/lib/types/field/control/FieldControl.d.ts +35 -0
  405. package/dist/lib/types/field/description/FieldDescription.d.ts +16 -0
  406. package/dist/lib/types/field/error/FieldError.d.ts +19 -0
  407. package/dist/lib/types/field/index.d.ts +8 -0
  408. package/dist/lib/types/field/index.parts.d.ts +8 -0
  409. package/dist/lib/types/field/item/FieldItem.d.ts +16 -0
  410. package/dist/lib/types/field/item/FieldItemContext.d.ts +6 -0
  411. package/dist/lib/types/field/label/FieldLabel.d.ts +24 -0
  412. package/dist/lib/types/field/root/FieldRoot.d.ts +30 -0
  413. package/dist/lib/types/field/root/createFieldValidation.d.ts +22 -0
  414. package/dist/lib/types/field/validity/FieldValidity.d.ts +16 -0
  415. package/dist/lib/types/fieldset/index.d.ts +3 -0
  416. package/dist/lib/types/fieldset/index.parts.d.ts +2 -0
  417. package/dist/lib/types/fieldset/legend/FieldsetLegend.d.ts +21 -0
  418. package/dist/lib/types/fieldset/root/FieldsetRoot.d.ts +21 -0
  419. package/dist/lib/types/fieldset/root/FieldsetRootContext.d.ts +11 -0
  420. package/dist/lib/types/form/Form.d.ts +39 -0
  421. package/dist/lib/types/form/index.d.ts +2 -0
  422. package/dist/lib/types/index.d.ts +41 -0
  423. package/dist/lib/types/input/Input.d.ts +20 -0
  424. package/dist/lib/types/input/index.d.ts +2 -0
  425. package/dist/lib/types/internals/buttonSemantics.d.ts +10 -0
  426. package/dist/lib/types/internals/clamp.d.ts +1 -0
  427. package/dist/lib/types/internals/composeEventHandlers.d.ts +11 -0
  428. package/dist/lib/types/internals/constants.d.ts +4 -0
  429. package/dist/lib/types/internals/createBaseUIEventDetails.d.ts +57 -0
  430. package/dist/lib/types/internals/createTransitionStatus.d.ts +9 -0
  431. package/dist/lib/types/internals/csp-context/CSPContext.d.ts +7 -0
  432. package/dist/lib/types/internals/csp-context/index.d.ts +2 -0
  433. package/dist/lib/types/internals/direction-context/DirectionContext.d.ts +6 -0
  434. package/dist/lib/types/internals/direction-context/index.d.ts +2 -0
  435. package/dist/lib/types/internals/field-constants.d.ts +44 -0
  436. package/dist/lib/types/internals/field-root-context/FieldRootContext.d.ts +31 -0
  437. package/dist/lib/types/internals/field-root-context/index.d.ts +2 -0
  438. package/dist/lib/types/internals/filter.d.ts +18 -0
  439. package/dist/lib/types/internals/form-context/FormContext.d.ts +13 -0
  440. package/dist/lib/types/internals/form-context/index.d.ts +3 -0
  441. package/dist/lib/types/internals/form-types.d.ts +11 -0
  442. package/dist/lib/types/internals/getStateAttributesProps.d.ts +4 -0
  443. package/dist/lib/types/internals/installOwnedEventHandlers.d.ts +3 -0
  444. package/dist/lib/types/internals/isSolidAccessor.d.ts +6 -0
  445. package/dist/lib/types/internals/itemEquality.d.ts +17 -0
  446. package/dist/lib/types/internals/labelable-provider/LabelableContext.d.ts +18 -0
  447. package/dist/lib/types/internals/labelable-provider/LabelableProvider.d.ts +11 -0
  448. package/dist/lib/types/internals/labelable-provider/index.d.ts +2 -0
  449. package/dist/lib/types/internals/mergeStyleValue.d.ts +8 -0
  450. package/dist/lib/types/internals/mergeStyles.d.ts +6 -0
  451. package/dist/lib/types/internals/overlay/FloatingRootStore.d.ts +49 -0
  452. package/dist/lib/types/internals/overlay/FloatingTree.d.ts +48 -0
  453. package/dist/lib/types/internals/overlay/FocusGuard.d.ts +2 -0
  454. package/dist/lib/types/internals/overlay/FocusManager.d.ts +30 -0
  455. package/dist/lib/types/internals/overlay/InternalBackdrop.d.ts +6 -0
  456. package/dist/lib/types/internals/overlay/PopupHandle.d.ts +47 -0
  457. package/dist/lib/types/internals/overlay/PopupPortal.d.ts +37 -0
  458. package/dist/lib/types/internals/overlay/PopupStore.d.ts +89 -0
  459. package/dist/lib/types/internals/overlay/PopupTriggerMap.d.ts +11 -0
  460. package/dist/lib/types/internals/overlay/PopupViewport.d.ts +16 -0
  461. package/dist/lib/types/internals/overlay/ReactiveStore.d.ts +26 -0
  462. package/dist/lib/types/internals/overlay/TriggerFocusGuards.d.ts +14 -0
  463. package/dist/lib/types/internals/overlay/adaptiveOrigin.d.ts +2 -0
  464. package/dist/lib/types/internals/overlay/compositeNavigation.d.ts +20 -0
  465. package/dist/lib/types/internals/overlay/createAnchorPositioning.d.ts +57 -0
  466. package/dist/lib/types/internals/overlay/createAnchoredPopupScrollLock.d.ts +12 -0
  467. package/dist/lib/types/internals/overlay/createClickInteraction.d.ts +20 -0
  468. package/dist/lib/types/internals/overlay/createClientPoint.d.ts +12 -0
  469. package/dist/lib/types/internals/overlay/createContextMenuInteraction.d.ts +17 -0
  470. package/dist/lib/types/internals/overlay/createDelayGroup.d.ts +18 -0
  471. package/dist/lib/types/internals/overlay/createDismiss.d.ts +27 -0
  472. package/dist/lib/types/internals/overlay/createFloatingPosition.d.ts +22 -0
  473. package/dist/lib/types/internals/overlay/createFocusInteraction.d.ts +14 -0
  474. package/dist/lib/types/internals/overlay/createHoverInteraction.d.ts +30 -0
  475. package/dist/lib/types/internals/overlay/createInitialPositioning.d.ts +3 -0
  476. package/dist/lib/types/internals/overlay/createListNavigation.d.ts +26 -0
  477. package/dist/lib/types/internals/overlay/createPopupAutoResize.d.ts +18 -0
  478. package/dist/lib/types/internals/overlay/createPopupPresence.d.ts +18 -0
  479. package/dist/lib/types/internals/overlay/createSwipeDismiss.d.ts +107 -0
  480. package/dist/lib/types/internals/overlay/createTypeahead.d.ts +20 -0
  481. package/dist/lib/types/internals/overlay/dom.d.ts +19 -0
  482. package/dist/lib/types/internals/overlay/eventEmitter.d.ts +7 -0
  483. package/dist/lib/types/internals/overlay/getElementAtPoint.d.ts +8 -0
  484. package/dist/lib/types/internals/overlay/index.d.ts +37 -0
  485. package/dist/lib/types/internals/overlay/inlineRect.d.ts +32 -0
  486. package/dist/lib/types/internals/overlay/markOthers.d.ts +6 -0
  487. package/dist/lib/types/internals/overlay/popupStateMapping.d.ts +46 -0
  488. package/dist/lib/types/internals/overlay/safePolygon.d.ts +24 -0
  489. package/dist/lib/types/internals/overlay/scrollLock.d.ts +10 -0
  490. package/dist/lib/types/internals/overlay/tabbable.d.ts +11 -0
  491. package/dist/lib/types/internals/platform.d.ts +1 -0
  492. package/dist/lib/types/internals/reason-parts.d.ts +35 -0
  493. package/dist/lib/types/internals/reasons.d.ts +4 -0
  494. package/dist/lib/types/internals/resolveClass.d.ts +3 -0
  495. package/dist/lib/types/internals/resolveStyle.d.ts +3 -0
  496. package/dist/lib/types/internals/runOnceAnimationsFinish.d.ts +4 -0
  497. package/dist/lib/types/internals/scrollable.d.ts +18 -0
  498. package/dist/lib/types/internals/setRef.d.ts +2 -0
  499. package/dist/lib/types/internals/stateAttributesMapping.d.ts +8 -0
  500. package/dist/lib/types/internals/types.d.ts +2 -0
  501. package/dist/lib/types/internals/valueLabel.d.ts +28 -0
  502. package/dist/lib/types/internals/withoutComponentBinding.d.ts +7 -0
  503. package/dist/lib/types/menu/arrow/MenuArrow.d.ts +16 -0
  504. package/dist/lib/types/menu/backdrop/MenuBackdrop.d.ts +14 -0
  505. package/dist/lib/types/menu/checkbox-item/MenuCheckboxItem.d.ts +37 -0
  506. package/dist/lib/types/menu/checkbox-item/MenuCheckboxItemContext.d.ts +6 -0
  507. package/dist/lib/types/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts +18 -0
  508. package/dist/lib/types/menu/group/MenuGroup.d.ts +11 -0
  509. package/dist/lib/types/menu/group/MenuGroupContext.d.ts +9 -0
  510. package/dist/lib/types/menu/group-label/MenuGroupLabel.d.ts +11 -0
  511. package/dist/lib/types/menu/index.d.ts +20 -0
  512. package/dist/lib/types/menu/index.parts.d.ts +21 -0
  513. package/dist/lib/types/menu/item/MenuItem.d.ts +28 -0
  514. package/dist/lib/types/menu/item/createMenuItem.d.ts +24 -0
  515. package/dist/lib/types/menu/link-item/MenuLinkItem.d.ts +25 -0
  516. package/dist/lib/types/menu/popup/MenuPopup.d.ts +28 -0
  517. package/dist/lib/types/menu/portal/MenuPortal.d.ts +17 -0
  518. package/dist/lib/types/menu/portal/MenuPortalContext.d.ts +8 -0
  519. package/dist/lib/types/menu/positioner/MenuPositioner.d.ts +39 -0
  520. package/dist/lib/types/menu/positioner/MenuPositionerContext.d.ts +5 -0
  521. package/dist/lib/types/menu/radio-group/MenuRadioGroup.d.ts +24 -0
  522. package/dist/lib/types/menu/radio-group/MenuRadioGroupContext.d.ts +11 -0
  523. package/dist/lib/types/menu/radio-item/MenuRadioItem.d.ts +30 -0
  524. package/dist/lib/types/menu/radio-item/MenuRadioItemContext.d.ts +6 -0
  525. package/dist/lib/types/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts +18 -0
  526. package/dist/lib/types/menu/root/MenuRoot.d.ts +56 -0
  527. package/dist/lib/types/menu/root/MenuRootContext.d.ts +23 -0
  528. package/dist/lib/types/menu/store/MenuCollection.d.ts +19 -0
  529. package/dist/lib/types/menu/store/MenuHandle.d.ts +10 -0
  530. package/dist/lib/types/menu/store/MenuStore.d.ts +110 -0
  531. package/dist/lib/types/menu/submenu-root/MenuSubmenuRoot.d.ts +17 -0
  532. package/dist/lib/types/menu/submenu-root/MenuSubmenuRootContext.d.ts +8 -0
  533. package/dist/lib/types/menu/submenu-trigger/MenuSubmenuTrigger.d.ts +33 -0
  534. package/dist/lib/types/menu/trigger/MenuTrigger.d.ts +36 -0
  535. package/dist/lib/types/menu/utils/mergeMenuStyles.d.ts +2 -0
  536. package/dist/lib/types/menu/utils/stateAttributesMapping.d.ts +39 -0
  537. package/dist/lib/types/menu/viewport/MenuViewport.d.ts +15 -0
  538. package/dist/lib/types/menubar/Menubar.d.ts +23 -0
  539. package/dist/lib/types/menubar/MenubarContext.d.ts +34 -0
  540. package/dist/lib/types/menubar/index.d.ts +2 -0
  541. package/dist/lib/types/meter/index.d.ts +6 -0
  542. package/dist/lib/types/meter/index.parts.d.ts +5 -0
  543. package/dist/lib/types/meter/indicator/MeterIndicator.d.ts +12 -0
  544. package/dist/lib/types/meter/label/MeterLabel.d.ts +17 -0
  545. package/dist/lib/types/meter/root/MeterRoot.d.ts +28 -0
  546. package/dist/lib/types/meter/root/MeterRootContext.d.ts +12 -0
  547. package/dist/lib/types/meter/track/MeterTrack.d.ts +12 -0
  548. package/dist/lib/types/meter/value/MeterValue.d.ts +16 -0
  549. package/dist/lib/types/navigation-menu/arrow/NavigationMenuArrow.d.ts +16 -0
  550. package/dist/lib/types/navigation-menu/backdrop/NavigationMenuBackdrop.d.ts +14 -0
  551. package/dist/lib/types/navigation-menu/composite/NavigationMenuCompositeContext.d.ts +22 -0
  552. package/dist/lib/types/navigation-menu/content/NavigationMenuContent.d.ts +21 -0
  553. package/dist/lib/types/navigation-menu/icon/NavigationMenuIcon.d.ts +12 -0
  554. package/dist/lib/types/navigation-menu/index.d.ts +14 -0
  555. package/dist/lib/types/navigation-menu/index.parts.d.ts +13 -0
  556. package/dist/lib/types/navigation-menu/item/NavigationMenuItem.d.ts +15 -0
  557. package/dist/lib/types/navigation-menu/item/NavigationMenuItemContext.d.ts +8 -0
  558. package/dist/lib/types/navigation-menu/link/NavigationMenuLink.d.ts +20 -0
  559. package/dist/lib/types/navigation-menu/list/NavigationMenuList.d.ts +12 -0
  560. package/dist/lib/types/navigation-menu/popup/NavigationMenuPopup.d.ts +23 -0
  561. package/dist/lib/types/navigation-menu/portal/NavigationMenuPortal.d.ts +17 -0
  562. package/dist/lib/types/navigation-menu/portal/NavigationMenuPortalContext.d.ts +8 -0
  563. package/dist/lib/types/navigation-menu/positioner/NavigationMenuPositioner.d.ts +37 -0
  564. package/dist/lib/types/navigation-menu/positioner/NavigationMenuPositionerContext.d.ts +5 -0
  565. package/dist/lib/types/navigation-menu/root/NavigationMenuRoot.d.ts +39 -0
  566. package/dist/lib/types/navigation-menu/root/NavigationMenuRootContext.d.ts +19 -0
  567. package/dist/lib/types/navigation-menu/store/NavigationMenuStore.d.ts +64 -0
  568. package/dist/lib/types/navigation-menu/trigger/NavigationMenuTrigger.d.ts +27 -0
  569. package/dist/lib/types/navigation-menu/utils/mergeNavigationMenuStyles.d.ts +2 -0
  570. package/dist/lib/types/navigation-menu/viewport/NavigationMenuViewport.d.ts +11 -0
  571. package/dist/lib/types/number-field/decrement/NumberFieldDecrement.d.ts +12 -0
  572. package/dist/lib/types/number-field/group/NumberFieldGroup.d.ts +12 -0
  573. package/dist/lib/types/number-field/increment/NumberFieldIncrement.d.ts +12 -0
  574. package/dist/lib/types/number-field/increment/NumberFieldStepperButton.d.ts +26 -0
  575. package/dist/lib/types/number-field/index.d.ts +8 -0
  576. package/dist/lib/types/number-field/index.parts.d.ts +7 -0
  577. package/dist/lib/types/number-field/input/NumberFieldInput.d.ts +25 -0
  578. package/dist/lib/types/number-field/root/NumberFieldRoot.d.ts +55 -0
  579. package/dist/lib/types/number-field/root/NumberFieldRootContext.d.ts +39 -0
  580. package/dist/lib/types/number-field/root/createPressAndHold.d.ts +24 -0
  581. package/dist/lib/types/number-field/scrub-area/NumberFieldScrubArea.d.ts +20 -0
  582. package/dist/lib/types/number-field/scrub-area/NumberFieldScrubAreaContext.d.ts +13 -0
  583. package/dist/lib/types/number-field/scrub-area-cursor/NumberFieldScrubAreaCursor.d.ts +12 -0
  584. package/dist/lib/types/number-field/utils/format.d.ts +2 -0
  585. package/dist/lib/types/number-field/utils/getViewportRect.d.ts +6 -0
  586. package/dist/lib/types/number-field/utils/parse.d.ts +40 -0
  587. package/dist/lib/types/number-field/utils/platform.d.ts +3 -0
  588. package/dist/lib/types/number-field/utils/stateAttributesMapping.d.ts +10 -0
  589. package/dist/lib/types/number-field/utils/types.d.ts +16 -0
  590. package/dist/lib/types/number-field/utils/validate.d.ts +9 -0
  591. package/dist/lib/types/otp-field/index.d.ts +3 -0
  592. package/dist/lib/types/otp-field/index.parts.d.ts +3 -0
  593. package/dist/lib/types/otp-field/input/OTPFieldInput.d.ts +29 -0
  594. package/dist/lib/types/otp-field/root/OTPFieldRoot.d.ts +56 -0
  595. package/dist/lib/types/otp-field/root/OTPFieldRootContext.d.ts +45 -0
  596. package/dist/lib/types/otp-field/utils/otp.d.ts +14 -0
  597. package/dist/lib/types/otp-field/utils/stateAttributesMapping.d.ts +5 -0
  598. package/dist/lib/types/popover/arrow/PopoverArrow.d.ts +16 -0
  599. package/dist/lib/types/popover/backdrop/PopoverBackdrop.d.ts +14 -0
  600. package/dist/lib/types/popover/close/PopoverClose.d.ts +25 -0
  601. package/dist/lib/types/popover/description/PopoverDescription.d.ts +11 -0
  602. package/dist/lib/types/popover/index.d.ts +12 -0
  603. package/dist/lib/types/popover/index.parts.d.ts +12 -0
  604. package/dist/lib/types/popover/popup/PopoverPopup.d.ts +26 -0
  605. package/dist/lib/types/popover/portal/PopoverPortal.d.ts +17 -0
  606. package/dist/lib/types/popover/portal/PopoverPortalContext.d.ts +8 -0
  607. package/dist/lib/types/popover/positioner/PopoverPositioner.d.ts +38 -0
  608. package/dist/lib/types/popover/positioner/PopoverPositionerContext.d.ts +5 -0
  609. package/dist/lib/types/popover/root/PopoverRoot.d.ts +38 -0
  610. package/dist/lib/types/popover/root/PopoverRootContext.d.ts +25 -0
  611. package/dist/lib/types/popover/store/PopoverHandle.d.ts +10 -0
  612. package/dist/lib/types/popover/store/PopoverStore.d.ts +65 -0
  613. package/dist/lib/types/popover/title/PopoverTitle.d.ts +11 -0
  614. package/dist/lib/types/popover/trigger/PopoverTrigger.d.ts +33 -0
  615. package/dist/lib/types/popover/utils/ClosePartContext.d.ts +10 -0
  616. package/dist/lib/types/popover/utils/mergePopoverStyles.d.ts +2 -0
  617. package/dist/lib/types/popover/utils/stateAttributesMapping.d.ts +26 -0
  618. package/dist/lib/types/popover/viewport/PopoverViewport.d.ts +15 -0
  619. package/dist/lib/types/preview-card/arrow/PreviewCardArrow.d.ts +16 -0
  620. package/dist/lib/types/preview-card/backdrop/PreviewCardBackdrop.d.ts +14 -0
  621. package/dist/lib/types/preview-card/index.d.ts +9 -0
  622. package/dist/lib/types/preview-card/index.parts.d.ts +9 -0
  623. package/dist/lib/types/preview-card/popup/PreviewCardPopup.d.ts +23 -0
  624. package/dist/lib/types/preview-card/portal/PreviewCardPortal.d.ts +17 -0
  625. package/dist/lib/types/preview-card/portal/PreviewCardPortalContext.d.ts +8 -0
  626. package/dist/lib/types/preview-card/positioner/PreviewCardPositioner.d.ts +38 -0
  627. package/dist/lib/types/preview-card/positioner/PreviewCardPositionerContext.d.ts +5 -0
  628. package/dist/lib/types/preview-card/root/PreviewCardRoot.d.ts +37 -0
  629. package/dist/lib/types/preview-card/root/PreviewCardRootContext.d.ts +12 -0
  630. package/dist/lib/types/preview-card/store/PreviewCardHandle.d.ts +10 -0
  631. package/dist/lib/types/preview-card/store/PreviewCardStore.d.ts +34 -0
  632. package/dist/lib/types/preview-card/trigger/PreviewCardTrigger.d.ts +20 -0
  633. package/dist/lib/types/preview-card/utils/mergePreviewCardStyles.d.ts +2 -0
  634. package/dist/lib/types/preview-card/utils/stateAttributesMapping.d.ts +32 -0
  635. package/dist/lib/types/preview-card/viewport/PreviewCardViewport.d.ts +14 -0
  636. package/dist/lib/types/progress/index.d.ts +6 -0
  637. package/dist/lib/types/progress/index.parts.d.ts +6 -0
  638. package/dist/lib/types/progress/indicator/ProgressIndicator.d.ts +12 -0
  639. package/dist/lib/types/progress/label/ProgressLabel.d.ts +17 -0
  640. package/dist/lib/types/progress/root/ProgressRoot.d.ts +31 -0
  641. package/dist/lib/types/progress/root/ProgressRootContext.d.ts +13 -0
  642. package/dist/lib/types/progress/root/stateAttributesMapping.d.ts +3 -0
  643. package/dist/lib/types/progress/track/ProgressTrack.d.ts +12 -0
  644. package/dist/lib/types/progress/value/ProgressValue.d.ts +16 -0
  645. package/dist/lib/types/radio/index.d.ts +3 -0
  646. package/dist/lib/types/radio/index.parts.d.ts +2 -0
  647. package/dist/lib/types/radio/indicator/RadioIndicator.d.ts +20 -0
  648. package/dist/lib/types/radio/root/RadioRoot.d.ts +39 -0
  649. package/dist/lib/types/radio/root/RadioRootContext.d.ts +7 -0
  650. package/dist/lib/types/radio-group/RadioGroup.d.ts +43 -0
  651. package/dist/lib/types/radio-group/RadioGroupContext.d.ts +33 -0
  652. package/dist/lib/types/radio-group/index.d.ts +2 -0
  653. package/dist/lib/types/scroll-area/constants.d.ts +2 -0
  654. package/dist/lib/types/scroll-area/content/ScrollAreaContent.d.ts +12 -0
  655. package/dist/lib/types/scroll-area/corner/ScrollAreaCorner.d.ts +11 -0
  656. package/dist/lib/types/scroll-area/index.d.ts +7 -0
  657. package/dist/lib/types/scroll-area/index.parts.d.ts +6 -0
  658. package/dist/lib/types/scroll-area/root/ScrollAreaRoot.d.ts +58 -0
  659. package/dist/lib/types/scroll-area/root/ScrollAreaRootContext.d.ts +44 -0
  660. package/dist/lib/types/scroll-area/root/stateAttributes.d.ts +3 -0
  661. package/dist/lib/types/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +28 -0
  662. package/dist/lib/types/scroll-area/scrollbar/ScrollAreaScrollbarContext.d.ts +7 -0
  663. package/dist/lib/types/scroll-area/thumb/ScrollAreaThumb.d.ts +22 -0
  664. package/dist/lib/types/scroll-area/utils/dom.d.ts +2 -0
  665. package/dist/lib/types/scroll-area/utils/eventTarget.d.ts +2 -0
  666. package/dist/lib/types/scroll-area/utils/getOffset.d.ts +1 -0
  667. package/dist/lib/types/scroll-area/utils/scrollEdges.d.ts +1 -0
  668. package/dist/lib/types/scroll-area/viewport/ScrollAreaViewport.d.ts +22 -0
  669. package/dist/lib/types/scroll-area/viewport/ScrollAreaViewportContext.d.ts +7 -0
  670. package/dist/lib/types/select/arrow/SelectArrow.d.ts +16 -0
  671. package/dist/lib/types/select/backdrop/SelectBackdrop.d.ts +14 -0
  672. package/dist/lib/types/select/group/SelectGroup.d.ts +11 -0
  673. package/dist/lib/types/select/group/SelectGroupContext.d.ts +9 -0
  674. package/dist/lib/types/select/group-label/SelectGroupLabel.d.ts +11 -0
  675. package/dist/lib/types/select/icon/SelectIcon.d.ts +12 -0
  676. package/dist/lib/types/select/index.d.ts +20 -0
  677. package/dist/lib/types/select/index.parts.d.ts +19 -0
  678. package/dist/lib/types/select/item/SelectItem.d.ts +32 -0
  679. package/dist/lib/types/select/item/SelectItemContext.d.ts +12 -0
  680. package/dist/lib/types/select/item-indicator/SelectItemIndicator.d.ts +18 -0
  681. package/dist/lib/types/select/item-text/SelectItemText.d.ts +11 -0
  682. package/dist/lib/types/select/label/SelectLabel.d.ts +17 -0
  683. package/dist/lib/types/select/list/SelectList.d.ts +16 -0
  684. package/dist/lib/types/select/popup/SelectPopup.d.ts +26 -0
  685. package/dist/lib/types/select/portal/SelectPortal.d.ts +16 -0
  686. package/dist/lib/types/select/portal/SelectPortalContext.d.ts +4 -0
  687. package/dist/lib/types/select/positioner/SelectPositioner.d.ts +37 -0
  688. package/dist/lib/types/select/positioner/SelectPositionerContext.d.ts +16 -0
  689. package/dist/lib/types/select/root/SelectRoot.d.ts +52 -0
  690. package/dist/lib/types/select/root/SelectRootContext.d.ts +63 -0
  691. package/dist/lib/types/select/scroll-arrow/SelectScrollArrow.d.ts +22 -0
  692. package/dist/lib/types/select/scroll-down-arrow/SelectScrollDownArrow.d.ts +15 -0
  693. package/dist/lib/types/select/scroll-up-arrow/SelectScrollUpArrow.d.ts +15 -0
  694. package/dist/lib/types/select/separator/SelectSeparator.d.ts +17 -0
  695. package/dist/lib/types/select/store/SelectCollection.d.ts +25 -0
  696. package/dist/lib/types/select/store/SelectStore.d.ts +82 -0
  697. package/dist/lib/types/select/trigger/SelectTrigger.d.ts +35 -0
  698. package/dist/lib/types/select/types.d.ts +10 -0
  699. package/dist/lib/types/select/utils/equality.d.ts +2 -0
  700. package/dist/lib/types/select/utils/mergeSelectStyles.d.ts +1 -0
  701. package/dist/lib/types/select/utils/scrollEdges.d.ts +3 -0
  702. package/dist/lib/types/select/utils/stateAttributesMapping.d.ts +37 -0
  703. package/dist/lib/types/select/utils/value.d.ts +7 -0
  704. package/dist/lib/types/select/value/SelectValue.d.ts +18 -0
  705. package/dist/lib/types/separator/Separator.d.ts +19 -0
  706. package/dist/lib/types/separator/index.d.ts +2 -0
  707. package/dist/lib/types/slider/control/SliderControl.d.ts +18 -0
  708. package/dist/lib/types/slider/index.d.ts +8 -0
  709. package/dist/lib/types/slider/index.parts.d.ts +7 -0
  710. package/dist/lib/types/slider/indicator/SliderIndicator.d.ts +12 -0
  711. package/dist/lib/types/slider/label/SliderLabel.d.ts +17 -0
  712. package/dist/lib/types/slider/root/SliderRoot.d.ts +57 -0
  713. package/dist/lib/types/slider/root/SliderRootContext.d.ts +63 -0
  714. package/dist/lib/types/slider/stateAttributesMapping.d.ts +14 -0
  715. package/dist/lib/types/slider/thumb/SliderThumb.d.ts +31 -0
  716. package/dist/lib/types/slider/thumb/SliderThumbDataAttributes.d.ts +11 -0
  717. package/dist/lib/types/slider/thumb/prehydrationScript.d.ts +1 -0
  718. package/dist/lib/types/slider/track/SliderTrack.d.ts +12 -0
  719. package/dist/lib/types/slider/utils/dom.d.ts +4 -0
  720. package/dist/lib/types/slider/utils/getPushedThumbValues.d.ts +1 -0
  721. package/dist/lib/types/slider/utils/getSliderValue.d.ts +1 -0
  722. package/dist/lib/types/slider/utils/math.d.ts +4 -0
  723. package/dist/lib/types/slider/utils/resolveThumbCollision.d.ts +7 -0
  724. package/dist/lib/types/slider/utils/roundValueToStep.d.ts +2 -0
  725. package/dist/lib/types/slider/utils/validateMinimumDistance.d.ts +1 -0
  726. package/dist/lib/types/slider/value/SliderValue.d.ts +16 -0
  727. package/dist/lib/types/switch/index.d.ts +3 -0
  728. package/dist/lib/types/switch/index.parts.d.ts +2 -0
  729. package/dist/lib/types/switch/root/SwitchRoot.d.ts +55 -0
  730. package/dist/lib/types/switch/root/SwitchRootContext.d.ts +7 -0
  731. package/dist/lib/types/switch/stateAttributesMapping.d.ts +9 -0
  732. package/dist/lib/types/switch/thumb/SwitchThumb.d.ts +12 -0
  733. package/dist/lib/types/tabs/index.d.ts +6 -0
  734. package/dist/lib/types/tabs/index.parts.d.ts +5 -0
  735. package/dist/lib/types/tabs/indicator/TabsIndicator.d.ts +22 -0
  736. package/dist/lib/types/tabs/indicator/TabsIndicatorCssVars.d.ts +8 -0
  737. package/dist/lib/types/tabs/indicator/prehydrationScript.d.ts +1 -0
  738. package/dist/lib/types/tabs/list/TabsList.d.ts +21 -0
  739. package/dist/lib/types/tabs/list/TabsListContext.d.ts +14 -0
  740. package/dist/lib/types/tabs/panel/TabsPanel.d.ts +30 -0
  741. package/dist/lib/types/tabs/panel/TabsPanelDataAttributes.d.ts +6 -0
  742. package/dist/lib/types/tabs/root/TabsRoot.d.ts +38 -0
  743. package/dist/lib/types/tabs/root/TabsRootContext.d.ts +43 -0
  744. package/dist/lib/types/tabs/root/TabsRootDataAttributes.d.ts +4 -0
  745. package/dist/lib/types/tabs/root/stateAttributesMapping.d.ts +8 -0
  746. package/dist/lib/types/tabs/tab/TabsTab.d.ts +59 -0
  747. package/dist/lib/types/tabs/tab/TabsTabDataAttributes.d.ts +6 -0
  748. package/dist/lib/types/toast/action/ToastAction.d.ts +30 -0
  749. package/dist/lib/types/toast/arrow/ToastArrow.d.ts +18 -0
  750. package/dist/lib/types/toast/close/ToastClose.d.ts +29 -0
  751. package/dist/lib/types/toast/content/ToastContent.d.ts +15 -0
  752. package/dist/lib/types/toast/createToastManager.d.ts +15 -0
  753. package/dist/lib/types/toast/description/ToastDescription.d.ts +16 -0
  754. package/dist/lib/types/toast/index.d.ts +17 -0
  755. package/dist/lib/types/toast/index.parts.d.ts +11 -0
  756. package/dist/lib/types/toast/portal/ToastPortal.d.ts +20 -0
  757. package/dist/lib/types/toast/positioner/ToastPositioner.d.ts +42 -0
  758. package/dist/lib/types/toast/positioner/ToastPositionerContext.d.ts +6 -0
  759. package/dist/lib/types/toast/provider/ToastProvider.d.ts +28 -0
  760. package/dist/lib/types/toast/provider/ToastProviderContext.d.ts +5 -0
  761. package/dist/lib/types/toast/root/ToastRoot.d.ts +39 -0
  762. package/dist/lib/types/toast/root/ToastRootContext.d.ts +14 -0
  763. package/dist/lib/types/toast/store/ToastStore.d.ts +60 -0
  764. package/dist/lib/types/toast/title/ToastTitle.d.ts +13 -0
  765. package/dist/lib/types/toast/types.d.ts +77 -0
  766. package/dist/lib/types/toast/useToastManager.d.ts +11 -0
  767. package/dist/lib/types/toast/utils/createToastLabelPart.d.ts +17 -0
  768. package/dist/lib/types/toast/utils/focusVisible.d.ts +6 -0
  769. package/dist/lib/types/toast/utils/generateToastId.d.ts +5 -0
  770. package/dist/lib/types/toast/utils/isRenderableNode.d.ts +6 -0
  771. package/dist/lib/types/toast/utils/mergeToastStyles.d.ts +2 -0
  772. package/dist/lib/types/toast/utils/resolvePromiseOptions.d.ts +2 -0
  773. package/dist/lib/types/toast/viewport/ToastViewport.d.ts +13 -0
  774. package/dist/lib/types/toggle/Toggle.d.ts +40 -0
  775. package/dist/lib/types/toggle/index.d.ts +2 -0
  776. package/dist/lib/types/toggle-group/ToggleGroup.d.ts +37 -0
  777. package/dist/lib/types/toggle-group/ToggleGroupContext.d.ts +25 -0
  778. package/dist/lib/types/toggle-group/index.d.ts +2 -0
  779. package/dist/lib/types/toolbar/ToolbarItemOwnerContext.d.ts +10 -0
  780. package/dist/lib/types/toolbar/button/ToolbarButton.d.ts +32 -0
  781. package/dist/lib/types/toolbar/createToolbarItem.d.ts +13 -0
  782. package/dist/lib/types/toolbar/group/ToolbarGroup.d.ts +16 -0
  783. package/dist/lib/types/toolbar/group/ToolbarGroupContext.d.ts +8 -0
  784. package/dist/lib/types/toolbar/index.d.ts +8 -0
  785. package/dist/lib/types/toolbar/index.parts.d.ts +7 -0
  786. package/dist/lib/types/toolbar/input/ToolbarInput.d.ts +29 -0
  787. package/dist/lib/types/toolbar/link/ToolbarLink.d.ts +14 -0
  788. package/dist/lib/types/toolbar/root/ToolbarRoot.d.ts +29 -0
  789. package/dist/lib/types/toolbar/root/ToolbarRootContext.d.ts +23 -0
  790. package/dist/lib/types/toolbar/separator/ToolbarSeparator.d.ts +16 -0
  791. package/dist/lib/types/tooltip/arrow/TooltipArrow.d.ts +17 -0
  792. package/dist/lib/types/tooltip/index.d.ts +9 -0
  793. package/dist/lib/types/tooltip/index.parts.d.ts +9 -0
  794. package/dist/lib/types/tooltip/popup/TooltipPopup.d.ts +23 -0
  795. package/dist/lib/types/tooltip/portal/TooltipPortal.d.ts +17 -0
  796. package/dist/lib/types/tooltip/portal/TooltipPortalContext.d.ts +8 -0
  797. package/dist/lib/types/tooltip/positioner/TooltipPositioner.d.ts +37 -0
  798. package/dist/lib/types/tooltip/positioner/TooltipPositionerContext.d.ts +14 -0
  799. package/dist/lib/types/tooltip/provider/TooltipProvider.d.ts +15 -0
  800. package/dist/lib/types/tooltip/provider/TooltipProviderContext.d.ts +10 -0
  801. package/dist/lib/types/tooltip/root/TooltipRoot.d.ts +40 -0
  802. package/dist/lib/types/tooltip/root/TooltipRootContext.d.ts +11 -0
  803. package/dist/lib/types/tooltip/store/TooltipHandle.d.ts +10 -0
  804. package/dist/lib/types/tooltip/store/TooltipStore.d.ts +60 -0
  805. package/dist/lib/types/tooltip/trigger/TooltipTrigger.d.ts +35 -0
  806. package/dist/lib/types/tooltip/utils/mergeTooltipStyles.d.ts +2 -0
  807. package/dist/lib/types/tooltip/utils/stateAttributesMapping.d.ts +68 -0
  808. package/dist/lib/types/tooltip/viewport/TooltipViewport.d.ts +14 -0
  809. package/dist/lib/types/types/index.d.ts +29 -0
  810. package/package.json +583 -0
@@ -0,0 +1,2072 @@
1
+ import { getStateAttributesProps } from "./internals/getStateAttributesProps.js";
2
+ import { N as triggerPress, O as siblingOpen, S as listNavigation, d as imperativeAction, u as focusOut, y as itemPress } from "./internals/reasons.js";
3
+ import { n as resolveClass, t as resolveStyle } from "./resolveStyle-XCSFDHAL.js";
4
+ import { createChangeEventDetails } from "./internals/createBaseUIEventDetails.js";
5
+ import { transitionStatusMapping } from "./internals/stateAttributesMapping.js";
6
+ import { composeEventHandlers } from "./internals/composeEventHandlers.js";
7
+ import { t as runOnceAnimationsFinish } from "./runOnceAnimationsFinish-DCHzXWZU.js";
8
+ import { o as isElementVisible } from "./dom-Crg_2R-j.js";
9
+ import { t as createAnchorPositioning } from "./createAnchorPositioning-C-cVOPwz.js";
10
+ import { t as InternalBackdrop } from "./InternalBackdrop-C_iDPVR-.js";
11
+ import { t as createAnchoredPopupScrollLock } from "./createAnchoredPopupScrollLock-DFuUrykR.js";
12
+ import { c as useFloatingTree, i as createFloatingNode, n as FloatingTreeContext, r as FloatingTreeStore, s as useFloatingParentNodeId, t as FloatingParentNodeContext } from "./FloatingTree-z1JPD1dR.js";
13
+ import { a as createPopupPresence, n as createTriggerRegistration, o as createDismiss, t as PopupStore } from "./PopupStore-DEs3FAEe.js";
14
+ import { n as createInitialPositioning, r as createHoverInteraction, t as safePolygon } from "./safePolygon-CAm5RJGv.js";
15
+ import { t as createTransitionStatus } from "./createTransitionStatus-BTlrerSS.js";
16
+ import { a as triggerOpenStateMapping, h as tabbable, n as popupStateMapping, o as PopupPortal, r as popupTransitionStateMapping } from "./popupStateMapping-nKoUwoke.js";
17
+ import { t as FocusManager } from "./FocusManager-BrbZVWME.js";
18
+ import { r as attachPopupHandle } from "./PopupHandle-DthPgNjy.js";
19
+ import { a as stopButtonInteraction, r as preventButtonInteraction } from "./buttonSemantics-BSwDxJhh.js";
20
+ import { t as setRef } from "./setRef-Bt70sW7c.js";
21
+ import { n as useDirection } from "./DirectionContext-YORWLF08.js";
22
+ import { n as useMenubarContext } from "./MenubarContext-C-62rMnO.js";
23
+ import { n as useToolbarRootContext } from "./ToolbarRootContext-DD-qe7s8.js";
24
+ import { Dynamic, escape, memo, mergeProps, ssrElement } from "@solidjs/web";
25
+ import { $REFRESH, Show, createContext, createEffect, createMemo, createSignal, createUniqueId, omit, onCleanup, untrack, useContext } from "solid-js";
26
+ //#region src/context-menu/root/ContextMenuRootContext.ts
27
+ var MISSING_CONTEXT$8 = Symbol("ContextMenuRootContext");
28
+ var ContextMenuRootContext = createContext(MISSING_CONTEXT$8);
29
+ function useContextMenuRootContext(optional = true) {
30
+ const context = useContext(ContextMenuRootContext);
31
+ if (context === MISSING_CONTEXT$8) {
32
+ if (optional) return;
33
+ throw new Error("Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.");
34
+ }
35
+ return context;
36
+ }
37
+ //#endregion
38
+ //#region src/menu/store/MenuCollection.ts
39
+ var MenuCollection = class {
40
+ registrations = /* @__PURE__ */ new Map();
41
+ revision;
42
+ setRevision;
43
+ constructor() {
44
+ const [revision, setRevision] = createSignal(0, { ownedWrite: true });
45
+ this.revision = revision;
46
+ this.setRevision = setRevision;
47
+ }
48
+ register(item) {
49
+ this.registrations.set(item.token, item);
50
+ this.touch();
51
+ return () => {
52
+ if (this.registrations.delete(item.token)) this.touch();
53
+ };
54
+ }
55
+ touch() {
56
+ this.setRevision((value) => value + 1);
57
+ }
58
+ items() {
59
+ this.revision();
60
+ return Array.from(this.registrations.values()).sort(compareItems);
61
+ }
62
+ indexOf(token) {
63
+ return this.items().findIndex((item) => item.token === token);
64
+ }
65
+ labels() {
66
+ return this.items().map((item) => {
67
+ const explicit = item.label();
68
+ if (explicit !== void 0) return explicit;
69
+ return item.element()?.textContent?.trim() || null;
70
+ });
71
+ }
72
+ elements() {
73
+ return this.items().map((item) => item.element());
74
+ }
75
+ availableIndices() {
76
+ return this.items().flatMap((item, index) => {
77
+ const element = item.element();
78
+ return element && !element.matches(":disabled") && isElementVisible(element) ? [index] : [];
79
+ });
80
+ }
81
+ };
82
+ function compareItems(a, b) {
83
+ const elementA = a.element();
84
+ const elementB = b.element();
85
+ if (!elementA || !elementB || elementA === elementB) return 0;
86
+ const position = elementA.compareDocumentPosition(elementB);
87
+ if (position & Node.DOCUMENT_POSITION_FOLLOWING) return -1;
88
+ if (position & Node.DOCUMENT_POSITION_PRECEDING) return 1;
89
+ return 0;
90
+ }
91
+ //#endregion
92
+ //#region src/menu/store/MenuStore.ts
93
+ var MenuStore = class extends PopupStore {
94
+ parentStore;
95
+ collection = new MenuCollection();
96
+ disabled;
97
+ modal;
98
+ orientation;
99
+ loopFocus;
100
+ highlightItemOnHover;
101
+ closeParentOnEsc;
102
+ direction;
103
+ contextMenu;
104
+ ownTree;
105
+ ownParentNodeId;
106
+ menubarAccessor;
107
+ setMenubarSignal;
108
+ triggerMenubars = /* @__PURE__ */ new Map();
109
+ activeIndexAccessor;
110
+ setActiveIndexSignal;
111
+ activeElementAccessor;
112
+ setActiveElementSignal;
113
+ openMethodAccessor;
114
+ setOpenMethodSignal;
115
+ openMethodValue = null;
116
+ openReasonAccessor;
117
+ setOpenReasonSignal;
118
+ instantTypeAccessor;
119
+ setInstantTypeSignal;
120
+ typingAccessor;
121
+ setTypingSignal;
122
+ hoverEnabledAccessor;
123
+ setHoverEnabledSignal;
124
+ allowMouseEnterAccessor;
125
+ setAllowMouseEnterSignal;
126
+ beforeContentGuardAccessor;
127
+ setBeforeContentGuardSignal;
128
+ afterTriggerGuardAccessor;
129
+ setAfterTriggerGuardSignal;
130
+ pendingFocus = null;
131
+ typed = "";
132
+ typeaheadTimer;
133
+ allowTouchToClose = true;
134
+ allowTouchToCloseTimer;
135
+ ownAllowMouseUpTrigger = false;
136
+ constructor(options) {
137
+ super(options);
138
+ this.ownTree = options.tree;
139
+ this.parentStore = options.parentStore;
140
+ this.ownParentNodeId = options.parentNodeId;
141
+ const [menubar, setMenubar] = createSignal(options.menubar, { ownedWrite: true });
142
+ this.menubarAccessor = menubar;
143
+ this.setMenubarSignal = setMenubar;
144
+ this.disabled = () => options.disabled() || Boolean(this.parentStore?.disabled()) || Boolean(this.menubar()?.disabled());
145
+ this.modal = () => this.menubar() ? false : options.modal();
146
+ this.orientation = options.orientation;
147
+ this.loopFocus = options.loopFocus;
148
+ this.highlightItemOnHover = options.highlightItemOnHover;
149
+ this.closeParentOnEsc = options.closeParentOnEsc;
150
+ this.direction = options.direction;
151
+ this.contextMenu = options.parentStore?.contextMenu ?? options.contextMenu;
152
+ const [activeIndex, setActiveIndex] = createSignal(null, { ownedWrite: true });
153
+ this.activeIndexAccessor = activeIndex;
154
+ this.setActiveIndexSignal = setActiveIndex;
155
+ const [activeElement, setActiveElement] = createSignal(null, { ownedWrite: true });
156
+ this.activeElementAccessor = activeElement;
157
+ this.setActiveElementSignal = setActiveElement;
158
+ const [openMethod, setOpenMethod] = createSignal(null, { ownedWrite: true });
159
+ this.openMethodAccessor = openMethod;
160
+ this.setOpenMethodSignal = setOpenMethod;
161
+ const [openReason, setOpenReason] = createSignal(null, { ownedWrite: true });
162
+ this.openReasonAccessor = openReason;
163
+ this.setOpenReasonSignal = setOpenReason;
164
+ const [instantType, setInstantType] = createSignal(void 0, { ownedWrite: true });
165
+ this.instantTypeAccessor = instantType;
166
+ this.setInstantTypeSignal = setInstantType;
167
+ const [typing, setTyping] = createSignal(false, { ownedWrite: true });
168
+ this.typingAccessor = typing;
169
+ this.setTypingSignal = setTyping;
170
+ const [hoverEnabled, setHoverEnabled] = createSignal(true, { ownedWrite: true });
171
+ this.hoverEnabledAccessor = hoverEnabled;
172
+ this.setHoverEnabledSignal = setHoverEnabled;
173
+ const [allowMouseEnter, setAllowMouseEnter] = createSignal(false, { ownedWrite: true });
174
+ this.allowMouseEnterAccessor = allowMouseEnter;
175
+ this.setAllowMouseEnterSignal = setAllowMouseEnter;
176
+ const [beforeContentGuard, setBeforeContentGuard] = createSignal(null, { ownedWrite: true });
177
+ this.beforeContentGuardAccessor = beforeContentGuard;
178
+ this.setBeforeContentGuardSignal = setBeforeContentGuard;
179
+ const [afterTriggerGuard, setAfterTriggerGuard] = createSignal(null, { ownedWrite: true });
180
+ this.afterTriggerGuardAccessor = afterTriggerGuard;
181
+ this.setAfterTriggerGuardSignal = setAfterTriggerGuard;
182
+ }
183
+ get allowMouseUpTrigger() {
184
+ return this.parentStore?.allowMouseUpTrigger ?? this.menubar()?.allowMouseUpTrigger.value ?? this.ownAllowMouseUpTrigger;
185
+ }
186
+ set allowMouseUpTrigger(value) {
187
+ if (this.parentStore) this.parentStore.allowMouseUpTrigger = value;
188
+ else if (this.menubar()) this.menubar().allowMouseUpTrigger.value = value;
189
+ else this.ownAllowMouseUpTrigger = value;
190
+ }
191
+ menubar() {
192
+ return this.parentStore?.menubar() ?? this.menubarAccessor();
193
+ }
194
+ tree() {
195
+ return this.parentStore?.tree() ?? this.menubar()?.tree ?? this.ownTree;
196
+ }
197
+ parentNodeId() {
198
+ if (this.parentStore) return this.ownParentNodeId;
199
+ return this.menubar()?.nodeId ?? this.ownParentNodeId;
200
+ }
201
+ registerMenubarTrigger(id, context) {
202
+ this.triggerMenubars.set(id, context);
203
+ if (this.activeTriggerId() === id) this.setMenubarSignal(context);
204
+ return () => {
205
+ if (this.triggerMenubars.get(id) === context) this.triggerMenubars.delete(id);
206
+ };
207
+ }
208
+ forwardMenubarTrigger(id, context) {
209
+ this.triggerMenubars.set(id, context);
210
+ if (this.activeTriggerId() === id) this.setMenubarSignal(context);
211
+ }
212
+ activateMenubarTrigger(id) {
213
+ this.setMenubarSignal(this.triggerMenubars.get(id));
214
+ }
215
+ rootStore() {
216
+ return this.parentStore?.rootStore() ?? this;
217
+ }
218
+ rootNodeId() {
219
+ return this.menubar()?.rootId() ?? this.rootStore().context.floatingRoot.context.nodeId;
220
+ }
221
+ relayKeyboardEvent(event) {
222
+ this.menubar()?.relayKeyboardEvent(event);
223
+ }
224
+ activeIndex() {
225
+ const element = this.activeElementAccessor();
226
+ if (element) {
227
+ const index = this.collection.elements().indexOf(element);
228
+ return index === -1 ? null : index;
229
+ }
230
+ return this.activeIndexAccessor();
231
+ }
232
+ activeElement() {
233
+ return this.activeElementAccessor();
234
+ }
235
+ isItemActive(element) {
236
+ return element !== null && this.activeElementAccessor() === element;
237
+ }
238
+ setActiveIndex(index, focus = false) {
239
+ const element = index === null ? null : this.collection.elements()[index] ?? null;
240
+ this.setActiveIndexSignal(index);
241
+ this.setActiveElementSignal(element);
242
+ if (focus && element) {
243
+ element.focus({ preventScroll: true });
244
+ element.scrollIntoView?.({ block: "nearest" });
245
+ }
246
+ }
247
+ setActiveElement(element) {
248
+ this.setActiveElementSignal(element);
249
+ this.setActiveIndexSignal(element ? this.collection.elements().indexOf(element) : null);
250
+ }
251
+ openMethod() {
252
+ this.openMethodAccessor();
253
+ return this.openMethodValue;
254
+ }
255
+ setOpenMethod(value) {
256
+ this.openMethodValue = value;
257
+ this.setOpenMethodSignal(value);
258
+ }
259
+ openChangeReason() {
260
+ return this.openReasonAccessor();
261
+ }
262
+ instantType() {
263
+ return this.instantTypeAccessor();
264
+ }
265
+ setInstantType(value) {
266
+ this.setInstantTypeSignal(value);
267
+ }
268
+ typing() {
269
+ return this.typingAccessor();
270
+ }
271
+ hoverEnabled() {
272
+ return this.hoverEnabledAccessor();
273
+ }
274
+ setHoverEnabled(value) {
275
+ this.setHoverEnabledSignal(value);
276
+ }
277
+ allowMouseEnter() {
278
+ return this.allowMouseEnterAccessor();
279
+ }
280
+ setAllowMouseEnter(value) {
281
+ this.setAllowMouseEnterSignal(value);
282
+ }
283
+ beforeContentGuard() {
284
+ return this.beforeContentGuardAccessor();
285
+ }
286
+ setBeforeContentGuard(element) {
287
+ this.setBeforeContentGuardSignal(element);
288
+ }
289
+ afterTriggerGuard() {
290
+ return this.afterTriggerGuardAccessor();
291
+ }
292
+ setAfterTriggerGuard(element) {
293
+ this.setAfterTriggerGuardSignal(element);
294
+ }
295
+ setPendingFocus(value) {
296
+ this.pendingFocus = value;
297
+ }
298
+ focusPendingItem() {
299
+ if (!this.pendingFocus) return false;
300
+ const available = this.collection.availableIndices();
301
+ const index = this.pendingFocus === "first" ? available[0] : available[available.length - 1];
302
+ if (index === void 0) return false;
303
+ this.setActiveIndex(index, true);
304
+ const element = this.collection.elements()[index];
305
+ const focused = Boolean(element && element.ownerDocument.activeElement === element);
306
+ if (focused) this.pendingFocus = null;
307
+ return focused;
308
+ }
309
+ navigate(event) {
310
+ const available = this.collection.availableIndices();
311
+ if (available.length === 0) return false;
312
+ const orientation = this.orientation();
313
+ const rtl = this.direction() === "rtl";
314
+ const forwardKey = orientation === "vertical" ? "ArrowDown" : rtl ? "ArrowLeft" : "ArrowRight";
315
+ if (![
316
+ forwardKey,
317
+ orientation === "vertical" ? "ArrowUp" : rtl ? "ArrowRight" : "ArrowLeft",
318
+ "Home",
319
+ "End"
320
+ ].includes(event.key)) return false;
321
+ event.preventDefault();
322
+ event.stopPropagation();
323
+ const current = this.activeIndex();
324
+ let position = current === null ? -1 : available.indexOf(current);
325
+ if (event.key === "Home") position = 0;
326
+ else if (event.key === "End") position = available.length - 1;
327
+ else if (current === null) position = event.key === forwardKey ? 0 : available.length - 1;
328
+ else {
329
+ const delta = event.key === forwardKey ? 1 : -1;
330
+ position += delta;
331
+ if (this.loopFocus()) position = (position + available.length) % available.length;
332
+ else position = Math.max(0, Math.min(available.length - 1, position));
333
+ }
334
+ this.setActiveIndex(available[position], true);
335
+ return true;
336
+ }
337
+ handleTypeahead(event) {
338
+ if (event.key.length !== 1 || event.ctrlKey || event.metaKey || event.altKey) return false;
339
+ if (event.key === " " && this.typed === "") return false;
340
+ event.preventDefault();
341
+ event.stopPropagation();
342
+ const labels = this.collection.labels();
343
+ const available = new Set(this.collection.availableIndices());
344
+ const repeated = this.typed.length > 0 && [...this.typed].every((character) => character.toLocaleLowerCase() === event.key.toLocaleLowerCase());
345
+ this.typed = repeated ? event.key : this.typed + event.key;
346
+ this.setTypingSignal(true);
347
+ clearTimeout(this.typeaheadTimer);
348
+ this.typeaheadTimer = setTimeout(() => {
349
+ this.typed = "";
350
+ this.setTypingSignal(false);
351
+ }, 500);
352
+ const query = this.typed.toLocaleLowerCase();
353
+ const start = (this.activeIndex() ?? -1) + 1;
354
+ for (let offset = 0; offset < labels.length; offset += 1) {
355
+ const index = (start + offset) % labels.length;
356
+ if (available.has(index) && labels[index]?.toLocaleLowerCase().startsWith(query)) {
357
+ this.setActiveIndex(index, true);
358
+ return true;
359
+ }
360
+ }
361
+ return true;
362
+ }
363
+ handleTriggerKeyDown(event, trigger) {
364
+ if (this.disabled()) return;
365
+ const menubar = this.menubar();
366
+ if (menubar) {
367
+ if (this.open()) return;
368
+ const openKey = menubar.orientation() === "horizontal" ? "ArrowDown" : this.direction() === "rtl" ? "ArrowLeft" : "ArrowRight";
369
+ if (event.key !== openKey) return;
370
+ event.preventDefault();
371
+ event.stopPropagation();
372
+ this.setOpenMethod("keyboard");
373
+ this.setPendingFocus("first");
374
+ this.setOpen(true, createChangeEventDetails(listNavigation, event, trigger));
375
+ return;
376
+ }
377
+ if (this.open()) {
378
+ if (this.navigate(event)) return;
379
+ return;
380
+ }
381
+ const orientation = this.orientation();
382
+ const rtl = this.direction() === "rtl";
383
+ const firstKey = orientation === "vertical" ? "ArrowDown" : rtl ? "ArrowLeft" : "ArrowRight";
384
+ const lastKey = orientation === "vertical" ? "ArrowUp" : rtl ? "ArrowRight" : "ArrowLeft";
385
+ if (event.key !== firstKey && event.key !== lastKey) return;
386
+ event.preventDefault();
387
+ event.stopPropagation();
388
+ this.setOpenMethod("keyboard");
389
+ this.setPendingFocus(event.key === firstKey ? "first" : "last");
390
+ this.setOpen(true, createChangeEventDetails(listNavigation, event, trigger));
391
+ }
392
+ closeTree(event, reason) {
393
+ this.tree().events.emit("close", {
394
+ event,
395
+ reason
396
+ });
397
+ }
398
+ setOpen(open, details) {
399
+ if (!open && !this.open()) return false;
400
+ if (!open && details.trigger == null) details.trigger = this.track().activeTriggerElement ?? void 0;
401
+ if (open && details.trigger?.id) this.activateMenubarTrigger(details.trigger.id);
402
+ if (!super.setOpen(open, details)) return false;
403
+ this.setOpenReasonSignal(details.reason);
404
+ if (open && details.reason === "imperative-action") this.setOpenMethod(null);
405
+ if (open && details.reason === "trigger-hover") this.setOpenMethod("mouse");
406
+ const keyboardClick = (details.reason === "trigger-press" || details.reason === "item-press") && details.event.type === "click" && details.event.detail === 0;
407
+ if (this.menubar() && (details.reason === "trigger-focus" || details.reason === "focus-out" || details.reason === "trigger-hover" || details.reason === "list-navigation" || details.reason === "sibling-open")) this.setInstantTypeSignal("group");
408
+ else if (keyboardClick) this.setInstantTypeSignal("click");
409
+ else if (!open && (details.reason === "escape-key" || details.reason === "none")) this.setInstantTypeSignal("dismiss");
410
+ else if (details.reason !== "trigger-hover") this.setInstantTypeSignal(void 0);
411
+ return true;
412
+ }
413
+ resetAfterObservedClose() {
414
+ this.setActiveIndex(null);
415
+ this.setOpenMethod(null);
416
+ this.setAllowMouseEnter(false);
417
+ if (!this.menubar()) this.allowMouseUpTrigger = false;
418
+ this.pendingFocus = null;
419
+ }
420
+ dispose() {
421
+ clearTimeout(this.typeaheadTimer);
422
+ clearTimeout(this.allowTouchToCloseTimer);
423
+ }
424
+ shouldCommitOpenChange(open, details) {
425
+ const event = details.event;
426
+ if (!open && event?.type === "click" && event.pointerType === "touch" && !this.allowTouchToClose) return false;
427
+ clearTimeout(this.allowTouchToCloseTimer);
428
+ if (open && details.reason === "trigger-focus") {
429
+ this.allowTouchToClose = false;
430
+ this.allowTouchToCloseTimer = setTimeout(() => {
431
+ this.allowTouchToClose = true;
432
+ }, 300);
433
+ } else this.allowTouchToClose = true;
434
+ return true;
435
+ }
436
+ };
437
+ //#endregion
438
+ //#region src/menu/submenu-root/MenuSubmenuRootContext.ts
439
+ var MISSING_CONTEXT$7 = Symbol("MenuSubmenuRootContext");
440
+ var MenuSubmenuRootContext = createContext(MISSING_CONTEXT$7);
441
+ function useMenuSubmenuRootContext(optional = false) {
442
+ const context = useContext(MenuSubmenuRootContext);
443
+ if (context === MISSING_CONTEXT$7) {
444
+ if (optional) return;
445
+ throw new Error("Base UI: <Menu.SubmenuTrigger> must be placed in <Menu.SubmenuRoot>.");
446
+ }
447
+ return context;
448
+ }
449
+ //#endregion
450
+ //#region src/menu/root/MenuRootContext.ts
451
+ var MISSING_CONTEXT$6 = Symbol("MenuRootContext");
452
+ var MenuRootContext = createContext(MISSING_CONTEXT$6);
453
+ function useMenuRootContext(optional = false) {
454
+ const context = useContext(MenuRootContext);
455
+ if (context === MISSING_CONTEXT$6) {
456
+ if (optional) return;
457
+ throw new Error("Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.");
458
+ }
459
+ return context;
460
+ }
461
+ //#endregion
462
+ //#region src/menu/root/MenuRoot.tsx
463
+ /** Groups all parts of the menu without rendering an element. */
464
+ function MenuRoot(props) {
465
+ const contextMenuContext = useContextMenuRootContext(true);
466
+ const menubarContext = useMenubarContext(true);
467
+ const ambientMenu = useMenuRootContext(true);
468
+ const submenu = useMenuSubmenuRootContext(true);
469
+ const contextMenu = contextMenuContext && !ambientMenu ? contextMenuContext : void 0;
470
+ const parentStore = contextMenu ? void 0 : submenu?.parentStore;
471
+ const inheritedTree = useFloatingTree();
472
+ const inheritedParentNodeId = useFloatingParentNodeId();
473
+ const direction = useDirection();
474
+ const menubar = parentStore ? void 0 : menubarContext;
475
+ const tree = contextMenu ? new FloatingTreeStore() : untrack(() => parentStore?.tree()) ?? menubar?.tree ?? inheritedTree ?? new FloatingTreeStore();
476
+ const nodeId = createUniqueId();
477
+ const floatingId = createUniqueId();
478
+ const controlledOpen = untrack(() => props.open !== void 0);
479
+ const controlledTriggerId = untrack(() => props.triggerId !== void 0);
480
+ const nested = parentStore !== void 0;
481
+ const store = new MenuStore({
482
+ controlledOpen: () => controlledOpen ? props.open : void 0,
483
+ controlledTriggerId: () => controlledTriggerId ? props.triggerId : void 0,
484
+ floatingId,
485
+ nested,
486
+ nodeId,
487
+ onOpenChange: () => props.onOpenChange,
488
+ onOpenChangeComplete: () => props.onOpenChangeComplete,
489
+ tree,
490
+ parentStore,
491
+ parentNodeId: contextMenu ? null : menubar?.nodeId ?? inheritedParentNodeId,
492
+ disabled: () => props.disabled ?? false,
493
+ modal: () => nested ? false : props.modal ?? true,
494
+ orientation: () => props.orientation ?? "vertical",
495
+ loopFocus: () => props.loopFocus ?? true,
496
+ highlightItemOnHover: () => props.highlightItemOnHover ?? true,
497
+ closeParentOnEsc: () => props.closeParentOnEsc ?? false,
498
+ direction,
499
+ contextMenu,
500
+ menubar
501
+ });
502
+ store.update({
503
+ open: controlledOpen ? Boolean(untrack(() => props.open)) : Boolean(untrack(() => props.defaultOpen)),
504
+ activeTriggerId: untrack(() => props.defaultTriggerId ?? null)
505
+ });
506
+ store.configureTriggerUnmount({ closeOnActiveTriggerUnmount: false });
507
+ const payload = store.access((state) => state.payload);
508
+ const node = createFloatingNode({
509
+ tree: () => store.tree(),
510
+ id: nodeId,
511
+ parentId: () => store.parentNodeId(),
512
+ context: () => store.context.floatingRoot
513
+ });
514
+ const [backdropElement, setBackdropElement] = createSignal(null, { ownedWrite: true });
515
+ const [internalBackdropElement, setInternalBackdropElement] = createSignal(null, { ownedWrite: true });
516
+ const presence = createPopupPresence(store, () => store.track().popupElement, { onUnmount: () => {
517
+ store.setHoverEnabled(true);
518
+ store.setInstantType(void 0);
519
+ } });
520
+ const context = {
521
+ store,
522
+ node,
523
+ nested,
524
+ presence,
525
+ contextMenu: store.contextMenu,
526
+ backdropElement,
527
+ setBackdropElement,
528
+ internalBackdropElement,
529
+ setInternalBackdropElement,
530
+ beforeContentGuard: () => store.beforeContentGuard(),
531
+ setBeforeContentGuard: (element) => store.setBeforeContentGuard(element),
532
+ afterTriggerGuard: () => store.afterTriggerGuard(),
533
+ setAfterTriggerGuard: (element) => store.setAfterTriggerGuard(element)
534
+ };
535
+ store.context.floatingRoot.context.data.insideElements = () => [
536
+ backdropElement(),
537
+ internalBackdropElement(),
538
+ store.menubar()?.rootElement()
539
+ ];
540
+ attachPopupHandle(() => props.handle, store);
541
+ let allowOutsidePressTimer;
542
+ const dismiss = createDismiss({
543
+ context: store.context.floatingRoot,
544
+ tree: () => store.tree(),
545
+ enabled: () => !store.disabled(),
546
+ bubbles: () => ({ escapeKey: nested && store.closeParentOnEsc() }),
547
+ outsidePress: () => () => {
548
+ if (!contextMenu || store.context.floatingRoot.context.data.openEvent?.type === "contextmenu") return true;
549
+ return contextMenu.allowOutsidePressDismissal.current;
550
+ },
551
+ outsidePressEvent: () => ({
552
+ mouse: "sloppy",
553
+ touch: "sloppy"
554
+ })
555
+ });
556
+ store.setInteractionProps({
557
+ activeTriggerProps: { onKeyDown: dismiss.onKeyDown },
558
+ inactiveTriggerProps: { onKeyDown: dismiss.onKeyDown },
559
+ popupProps: { onKeyDown: dismiss.onKeyDown }
560
+ });
561
+ let contextMenuOpen = false;
562
+ createEffect(() => store.open(), (open) => {
563
+ if (!contextMenu || open === contextMenuOpen) return;
564
+ contextMenuOpen = open;
565
+ clearTimeout(allowOutsidePressTimer);
566
+ contextMenu.allowOutsidePressDismissal.current = false;
567
+ if (open) allowOutsidePressTimer = setTimeout(() => {
568
+ contextMenu.allowOutsidePressDismissal.current = true;
569
+ }, 500);
570
+ });
571
+ createEffect(() => ({
572
+ open: store.open(),
573
+ activeTriggerId: store.activeTriggerId()
574
+ }), () => untrack(() => store.reconcileTriggers()));
575
+ let observedOpen = untrack(() => store.open());
576
+ createEffect(() => store.open(), (open) => {
577
+ if (observedOpen && !open) untrack(() => {
578
+ store.context.floatingRoot.syncOpenEvent(false, void 0);
579
+ store.resetAfterObservedClose();
580
+ });
581
+ observedOpen = open;
582
+ });
583
+ createEffect(() => ({
584
+ open: store.open(),
585
+ mounted: presence.mounted(),
586
+ items: store.collection.items()
587
+ }), ({ open, mounted }) => {
588
+ if (!open || !mounted) return;
589
+ let canceled = false;
590
+ let frame = 0;
591
+ let attempts = 0;
592
+ const focusKeyboardItem = () => {
593
+ untrack(() => {
594
+ if (canceled || !store.open() || store.openMethod() !== "keyboard") return;
595
+ if (!store.focusPendingItem()) store.activeElement()?.focus({ preventScroll: true });
596
+ attempts += 1;
597
+ if (attempts < 4) frame = requestAnimationFrame(focusKeyboardItem);
598
+ });
599
+ };
600
+ queueMicrotask(() => {
601
+ untrack(() => {
602
+ store.focusPendingItem();
603
+ if (store.openMethod() === "keyboard") frame = requestAnimationFrame(focusKeyboardItem);
604
+ });
605
+ });
606
+ return () => {
607
+ canceled = true;
608
+ cancelAnimationFrame(frame);
609
+ };
610
+ });
611
+ createEffect(() => ({
612
+ open: store.open(),
613
+ reason: store.openChangeReason(),
614
+ tree: store.tree(),
615
+ parentNodeId: store.parentNodeId()
616
+ }), ({ open, reason, tree: currentTree, parentNodeId: currentParentNodeId }) => {
617
+ untrack(() => {
618
+ currentTree.events.emit("menuopenchange", {
619
+ open,
620
+ nodeId,
621
+ parentNodeId: currentParentNodeId,
622
+ reason
623
+ });
624
+ });
625
+ });
626
+ createEffect(() => store.tree(), (currentTree) => currentTree.events.on("close", ({ event, reason }) => {
627
+ if (store.open()) store.setOpen(false, createChangeEventDetails(reason, event));
628
+ }));
629
+ const actions = {
630
+ unmount: presence.forceUnmount,
631
+ close() {
632
+ store.setOpen(false, createChangeEventDetails(imperativeAction));
633
+ }
634
+ };
635
+ createEffect(() => props.actionsRef, (ref) => {
636
+ ref?.(actions);
637
+ });
638
+ function MenuRootContent() {
639
+ const child = createMemo(() => props.children);
640
+ const initialChild = untrack(child);
641
+ let content = initialChild;
642
+ if (typeof initialChild === "function") content = initialChild.name === "bound read" && Object.prototype.hasOwnProperty.call(initialChild, $REFRESH) ? memo(() => {
643
+ return escape(child());
644
+ }) : untrack(() => initialChild({ payload }));
645
+ return content;
646
+ }
647
+ onCleanup(() => {
648
+ clearTimeout(allowOutsidePressTimer);
649
+ store.dispose();
650
+ store.clearInteractionProps();
651
+ delete store.context.floatingRoot.context.data.insideElements;
652
+ });
653
+ return MenuRootContext({
654
+ value: context,
655
+ get children() {
656
+ return FloatingTreeContext({
657
+ value: tree,
658
+ get children() {
659
+ return FloatingParentNodeContext({
660
+ get value() {
661
+ return node.id ?? null;
662
+ },
663
+ get children() {
664
+ return MenuRootContent({});
665
+ }
666
+ });
667
+ }
668
+ });
669
+ }
670
+ });
671
+ }
672
+ //#endregion
673
+ //#region src/menu/utils/mergeMenuStyles.ts
674
+ function mergeMenuStyles(internal, external) {
675
+ if (typeof external === "string") {
676
+ const serialized = Object.entries(internal).filter((entry) => entry[1] != null).map(([property, value]) => `${property}:${String(value)}`).join(";");
677
+ return serialized ? `${serialized};${external}` : external;
678
+ }
679
+ return {
680
+ ...internal,
681
+ ...external || void 0
682
+ };
683
+ }
684
+ //#endregion
685
+ //#region src/menu/backdrop/MenuBackdrop.tsx
686
+ /** A presentational overlay displayed beneath the menu popup. */
687
+ function MenuBackdrop(props) {
688
+ const context = useMenuRootContext();
689
+ const internalProps = props;
690
+ const allProps = props;
691
+ const state = createMemo(() => ({
692
+ open: context.store.open(),
693
+ transitionStatus: context.store.track().transitionStatus
694
+ }));
695
+ const classValue = createMemo(() => resolveClass(props.class, state()));
696
+ const styleValue = createMemo(() => mergeMenuStyles({
697
+ "pointer-events": context.store.openChangeReason() === "trigger-hover" ? "none" : void 0,
698
+ "user-select": "none",
699
+ "-webkit-user-select": "none"
700
+ }, resolveStyle(props.style, state())));
701
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), popupTransitionStateMapping));
702
+ const others = omit(allProps, "as", "class", "ref", "style");
703
+ let backdrop = null;
704
+ onCleanup(() => {
705
+ if (context.backdropElement() === backdrop) context.setBackdropElement(null);
706
+ });
707
+ return Dynamic(mergeProps({
708
+ get component() {
709
+ return props.as ?? "div";
710
+ },
711
+ ref: [((element) => {
712
+ backdrop = element;
713
+ context.setBackdropElement(element);
714
+ }), internalProps.ref],
715
+ role: "presentation",
716
+ get hidden() {
717
+ return !context.presence.mounted();
718
+ },
719
+ get ["class"]() {
720
+ return classValue();
721
+ },
722
+ get style() {
723
+ return styleValue();
724
+ }
725
+ }, stateAttributes, others));
726
+ }
727
+ //#endregion
728
+ //#region src/menu/portal/MenuPortalContext.ts
729
+ var MISSING_CONTEXT$5 = Symbol("MenuPortalContext");
730
+ var MenuPortalContext = createContext(MISSING_CONTEXT$5);
731
+ function useMenuPortalContext() {
732
+ const context = useContext(MenuPortalContext);
733
+ if (context === MISSING_CONTEXT$5) throw new Error("Base UI: <Menu.Positioner> must be placed within <Menu.Portal>.");
734
+ return context;
735
+ }
736
+ //#endregion
737
+ //#region src/menu/portal/MenuPortal.tsx
738
+ /** Moves the menu layer into a portal appended to the document body by default. */
739
+ function MenuPortal(props) {
740
+ const context = useMenuRootContext();
741
+ const internalProps = props;
742
+ const allProps = props;
743
+ const keepMounted = createMemo(() => internalProps.keepMounted ?? false);
744
+ const shouldRender = createMemo(() => context.presence.mounted() || keepMounted());
745
+ const state = {};
746
+ const classValue = createMemo(() => resolveClass(props.class, state));
747
+ const styleValue = createMemo(() => resolveStyle(props.style, state));
748
+ const others = omit(allProps, "as", "class", "container", "keepMounted", "ref", "style");
749
+ const portalContext = { keepMounted };
750
+ return Show({
751
+ get when() {
752
+ return shouldRender();
753
+ },
754
+ get children() {
755
+ return MenuPortalContext({
756
+ value: portalContext,
757
+ get children() {
758
+ return PopupPortal(mergeProps({
759
+ get as() {
760
+ return props.as;
761
+ },
762
+ get container() {
763
+ return internalProps.container;
764
+ },
765
+ ref: (element) => {
766
+ if (internalProps.ref) setRef(internalProps.ref, element);
767
+ },
768
+ get ["class"]() {
769
+ return classValue();
770
+ },
771
+ get style() {
772
+ return styleValue();
773
+ }
774
+ }, others, { get children() {
775
+ return props.children;
776
+ } }));
777
+ }
778
+ });
779
+ }
780
+ });
781
+ }
782
+ //#endregion
783
+ //#region src/menu/utils/stateAttributesMapping.ts
784
+ var menuPositionerStateMapping = {
785
+ ...popupStateMapping,
786
+ nested: (value) => value ? { "data-nested": "" } : null
787
+ };
788
+ var menuPopupStateMapping = {
789
+ ...popupTransitionStateMapping,
790
+ nested: (value) => value ? { "data-nested": "" } : null
791
+ };
792
+ var menuViewportStateMapping = { activationDirection: (value) => value ? { "data-activation-direction": value } : null };
793
+ var CHECKED = { "data-checked": "" };
794
+ var UNCHECKED = { "data-unchecked": "" };
795
+ var menuItemStateMapping = { checked: (value) => value ? CHECKED : UNCHECKED };
796
+ //#endregion
797
+ //#region src/menu/positioner/MenuPositionerContext.ts
798
+ var MISSING_CONTEXT$4 = Symbol("MenuPositionerContext");
799
+ var MenuPositionerContext = createContext(MISSING_CONTEXT$4);
800
+ function useMenuPositionerContext(optional = false) {
801
+ const context = useContext(MenuPositionerContext);
802
+ if (context === MISSING_CONTEXT$4) {
803
+ if (optional) return;
804
+ throw new Error("Base UI: <Menu.Positioner> is missing.");
805
+ }
806
+ return context;
807
+ }
808
+ //#endregion
809
+ //#region src/menu/positioner/MenuPositioner.tsx
810
+ /** Positions the menu popup against its active trigger or a custom anchor. */
811
+ function MenuPositioner(props) {
812
+ useMenuPortalContext();
813
+ const context = useMenuRootContext();
814
+ const direction = useDirection();
815
+ const internalProps = props;
816
+ const allProps = props;
817
+ const [element, setElement] = createSignal(null, { ownedWrite: true });
818
+ const contextMenuRoot = context.contextMenu !== void 0 && !context.nested;
819
+ const reference = createMemo(() => resolveAnchor(internalProps.anchor) ?? (contextMenuRoot ? context.contextMenu?.anchor() : void 0) ?? context.store.context.floatingRoot.referenceElement());
820
+ const align = () => internalProps.align ?? (context.nested || contextMenuRoot || context.store.menubar() ? "start" : "center");
821
+ const hasContextMenuDefaultOffsets = () => contextMenuRoot && internalProps.side === void 0 && align() !== "center";
822
+ const collisionAvoidance = () => internalProps.collisionAvoidance ?? { fallbackAxisSide: context.nested ? "end" : "none" };
823
+ const positioning = createAnchorPositioning({
824
+ reference,
825
+ floating: element,
826
+ mounted: context.presence.mounted,
827
+ direction,
828
+ positionMethod: () => context.contextMenu ? "fixed" : internalProps.positionMethod ?? "absolute",
829
+ side: () => internalProps.side ?? (context.nested || context.store.menubar()?.orientation() === "vertical" ? "inline-end" : "bottom"),
830
+ sideOffset: () => internalProps.sideOffset ?? (hasContextMenuDefaultOffsets() ? -5 : 0),
831
+ align,
832
+ alignOffset: () => internalProps.alignOffset ?? (hasContextMenuDefaultOffsets() ? 2 : 0),
833
+ collisionBoundary: () => internalProps.collisionBoundary ?? "clipping-ancestors",
834
+ collisionPadding: () => internalProps.collisionPadding ?? 5,
835
+ arrowPadding: () => contextMenuRoot ? 0 : internalProps.arrowPadding ?? 5,
836
+ sticky: () => internalProps.sticky ?? false,
837
+ disableAnchorTracking: () => internalProps.disableAnchorTracking ?? false,
838
+ collisionAvoidance,
839
+ shiftRootBoundary: () => contextMenuRoot ? "layoutViewport" : void 0,
840
+ shiftCrossAxis: () => contextMenuRoot && !("side" in collisionAvoidance() && collisionAvoidance().side === "flip"),
841
+ adaptiveOriginMiddleware: () => context.store.track().adaptiveOriginMiddleware
842
+ });
843
+ const initialPositioning = createInitialPositioning(() => context.store.open(), () => positioning.state().isPositioned);
844
+ const state = createMemo(() => ({
845
+ open: context.store.open(),
846
+ side: positioning.renderedSide(),
847
+ align: positioning.renderedAlign(),
848
+ anchorHidden: positioning.anchorHidden(),
849
+ nested: context.nested,
850
+ instant: context.store.instantType() ?? (initialPositioning() ? "initial" : void 0)
851
+ }));
852
+ const classValue = createMemo(() => resolveClass(props.class, state()));
853
+ const styleValue = createMemo(() => mergeMenuStyles({
854
+ ...positioning.styles(),
855
+ "pointer-events": context.store.open() ? void 0 : "none"
856
+ }, resolveStyle(props.style, state())));
857
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), menuPositionerStateMapping));
858
+ const others = omit(allProps, "align", "alignOffset", "anchor", "arrowPadding", "as", "class", "collisionAvoidance", "collisionBoundary", "collisionPadding", "disableAnchorTracking", "positionMethod", "ref", "side", "sideOffset", "sticky", "style");
859
+ const modalNonHover = createMemo(() => !context.nested && context.store.modal() && context.store.openChangeReason() !== "trigger-hover");
860
+ const menubarModal = createMemo(() => context.store.menubar()?.modal() ?? false);
861
+ const modalPolicy = createMemo(() => menubarModal() || modalNonHover());
862
+ let previousTrigger = null;
863
+ let handoffController;
864
+ let closeTimer;
865
+ createAnchoredPopupScrollLock({
866
+ enabled: () => context.store.open() && modalPolicy(),
867
+ touchOpen: () => context.store.openMethod() === "touch",
868
+ positioner: element,
869
+ reference: () => context.store.track().activeTriggerElement
870
+ });
871
+ createEffect(() => positioning.state().placement, (placement) => {
872
+ context.store.context.floatingRoot.context.data.placement = placement;
873
+ });
874
+ createEffect(() => ({
875
+ positioned: positioning.state().isPositioned,
876
+ open: context.store.open(),
877
+ method: context.store.openMethod()
878
+ }), ({ positioned, open, method }) => {
879
+ if (positioned && open && method === "keyboard") queueMicrotask(() => {
880
+ untrack(() => {
881
+ if (!context.store.focusPendingItem()) context.store.activeElement()?.focus({ preventScroll: true });
882
+ });
883
+ });
884
+ });
885
+ createEffect(() => ({
886
+ trigger: context.store.track().activeTriggerElement,
887
+ positioner: element(),
888
+ open: context.store.open()
889
+ }), ({ trigger, positioner, open }) => {
890
+ if (!open) {
891
+ previousTrigger = null;
892
+ handoffController?.abort();
893
+ return;
894
+ }
895
+ const previous = previousTrigger;
896
+ if (trigger) previousTrigger = trigger;
897
+ if (!previous || !trigger || previous === trigger || !positioner) return;
898
+ context.store.setInstantType(void 0);
899
+ handoffController?.abort();
900
+ const controller = new AbortController();
901
+ handoffController = controller;
902
+ runOnceAnimationsFinish(positioner, () => context.store.setInstantType("trigger-change"), controller.signal);
903
+ return () => controller.abort();
904
+ });
905
+ createEffect(() => context.store.tree(), (tree) => tree.events.on("menuopenchange", (details) => {
906
+ if (details.open && details.parentNodeId === context.node.id) context.store.setHoverEnabled(false);
907
+ if (details.open && details.nodeId !== context.node.id && details.parentNodeId === context.store.parentNodeId()) {
908
+ context.store.setOpen(false, createChangeEventDetails(siblingOpen));
909
+ return;
910
+ }
911
+ if (!details.open && context.store.parentNodeId() !== null && details.nodeId === context.store.parentNodeId()) context.store.setOpen(false, createChangeEventDetails(details.reason ?? "sibling-open"));
912
+ }));
913
+ createEffect(() => context.store.tree(), (tree) => tree.events.on("itemhover", ({ nodeId, target }) => {
914
+ if (!context.store.open() || nodeId !== context.store.parentNodeId()) return;
915
+ if (target === context.store.track().activeTriggerElement) {
916
+ clearTimeout(closeTimer);
917
+ closeTimer = void 0;
918
+ return;
919
+ }
920
+ if (closeTimer !== void 0) return;
921
+ const close = () => context.store.setOpen(false, createChangeEventDetails(siblingOpen));
922
+ const delay = context.store.track().closeDelay;
923
+ if (delay > 0) closeTimer = setTimeout(() => {
924
+ closeTimer = void 0;
925
+ close();
926
+ }, delay);
927
+ else close();
928
+ }));
929
+ createEffect(() => context.store.open(), (open) => {
930
+ if (!open) {
931
+ clearTimeout(closeTimer);
932
+ closeTimer = void 0;
933
+ }
934
+ });
935
+ onCleanup(() => {
936
+ clearTimeout(closeTimer);
937
+ handoffController?.abort();
938
+ delete context.store.context.floatingRoot.context.data.placement;
939
+ if (context.store.state.positionerElement === untrack(element)) context.store.setPositionerElement(null);
940
+ });
941
+ function ModalBackdrop() {
942
+ let backdrop = null;
943
+ onCleanup(() => {
944
+ if (context.internalBackdropElement() === backdrop) context.setInternalBackdropElement(null);
945
+ });
946
+ return InternalBackdrop({
947
+ ref: (value) => {
948
+ backdrop = value;
949
+ context.setInternalBackdropElement(value);
950
+ },
951
+ get cutout() {
952
+ return context.store.menubar()?.rootElement() ?? context.store.track().activeTriggerElement;
953
+ },
954
+ get open() {
955
+ return context.store.open();
956
+ }
957
+ });
958
+ }
959
+ return MenuPositionerContext({
960
+ value: positioning,
961
+ get children() {
962
+ return [Show({
963
+ get when() {
964
+ return memo(() => {
965
+ return !!context.presence.mounted();
966
+ })() ? modalPolicy() : context.presence.mounted();
967
+ },
968
+ get children() {
969
+ return ModalBackdrop({});
970
+ }
971
+ }), Dynamic(mergeProps({
972
+ get component() {
973
+ return props.as ?? "div";
974
+ },
975
+ ref: [((value) => {
976
+ setElement(value);
977
+ context.store.setPositionerElement(value);
978
+ }), internalProps.ref],
979
+ role: "presentation",
980
+ get hidden() {
981
+ return !context.presence.mounted();
982
+ },
983
+ get inert() {
984
+ return !context.store.open() || void 0;
985
+ },
986
+ get ["class"]() {
987
+ return classValue();
988
+ },
989
+ get style() {
990
+ return styleValue();
991
+ }
992
+ }, stateAttributes, others))];
993
+ }
994
+ });
995
+ }
996
+ function resolveAnchor(anchor) {
997
+ if (typeof anchor === "function") return anchor();
998
+ if (anchor && "current" in anchor) return anchor.current;
999
+ return anchor;
1000
+ }
1001
+ //#endregion
1002
+ //#region src/menu/popup/MenuPopup.tsx
1003
+ var COMPOSITE_KEYS = /* @__PURE__ */ new Set([
1004
+ "ArrowUp",
1005
+ "ArrowDown",
1006
+ "ArrowLeft",
1007
+ "ArrowRight",
1008
+ "Home",
1009
+ "End"
1010
+ ]);
1011
+ /** A container for the menu items. */
1012
+ function MenuPopup(props) {
1013
+ const context = useMenuRootContext();
1014
+ const positioner = useMenuPositionerContext();
1015
+ const insideToolbar = useToolbarRootContext(true) !== void 0;
1016
+ const internalProps = props;
1017
+ const allProps = props;
1018
+ const contextMenuRoot = context.contextMenu !== void 0 && !context.nested;
1019
+ const state = createMemo(() => ({
1020
+ transitionStatus: context.store.track().transitionStatus,
1021
+ side: positioner.renderedSide(),
1022
+ align: positioner.renderedAlign(),
1023
+ open: context.store.open(),
1024
+ nested: context.nested,
1025
+ instant: context.store.instantType()
1026
+ }));
1027
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1028
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1029
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), menuPopupStateMapping));
1030
+ const id = createMemo(() => internalProps.id ?? context.store.context.floatingId);
1031
+ const others = omit(allProps, "as", "class", "finalFocus", "id", "onClick", "onKeyDown", "onMouseMove", "ref", "style");
1032
+ let popupElement = null;
1033
+ function handleKeyDown(event) {
1034
+ const dismissHandler = context.store.state.popupProps.onKeyDown;
1035
+ if (typeof dismissHandler === "function") dismissHandler(event);
1036
+ if (context.store.disabled()) return;
1037
+ if (event.key === "Tab") {
1038
+ event.preventDefault();
1039
+ const rootStore = context.store.rootStore();
1040
+ const trigger = (context.nested && event.shiftKey ? context.store : rootStore).track().activeTriggerElement;
1041
+ const target = event.shiftKey ? trigger : getNextTabTarget(trigger, rootStore.rootNodeId());
1042
+ if (context.nested && event.shiftKey) context.store.setOpen(false, createChangeEventDetails(focusOut, event));
1043
+ else rootStore.closeTree(event, focusOut);
1044
+ queueMicrotask(() => target?.focus({ preventScroll: true }));
1045
+ return;
1046
+ }
1047
+ if (context.store.handleTypeahead(event)) return;
1048
+ if (event.defaultPrevented || context.store.navigate(event)) return;
1049
+ if (context.nested && context.store.parentStore) {
1050
+ const closeKey = context.store.parentStore.orientation() === "vertical" ? context.store.direction() === "rtl" ? "ArrowRight" : "ArrowLeft" : "ArrowUp";
1051
+ if (event.key === closeKey) {
1052
+ event.preventDefault();
1053
+ event.stopPropagation();
1054
+ const trigger = context.store.track().activeTriggerElement;
1055
+ context.store.setOpen(false, createChangeEventDetails(listNavigation, event));
1056
+ trigger?.focus({ preventScroll: true });
1057
+ }
1058
+ }
1059
+ if (!event.defaultPrevented && !event.cancelBubble) context.store.relayKeyboardEvent(event);
1060
+ }
1061
+ const onKeyDown = composeEventHandlers(() => internalProps.onKeyDown, () => handleKeyDown, () => (event) => {
1062
+ if (insideToolbar && COMPOSITE_KEYS.has(event.key)) event.stopPropagation();
1063
+ });
1064
+ const onMouseMove = composeEventHandlers(() => internalProps.onMouseMove, () => () => {
1065
+ context.store.setAllowMouseEnter(true);
1066
+ if (context.nested) context.store.setHoverEnabled(false);
1067
+ });
1068
+ const onClick = composeEventHandlers(() => internalProps.onClick, () => () => context.store.setHoverEnabled(false));
1069
+ const defaultReturnFocus = () => untrack(() => {
1070
+ const reason = context.store.openChangeReason();
1071
+ if (reason === "focus-out" || context.store.menubar() && (reason === "sibling-open" || reason === "list-navigation")) return false;
1072
+ if (context.store.menubar() && !context.store.track().activeTriggerElement && reason === "outside-press") return false;
1073
+ return true;
1074
+ });
1075
+ createEffect(() => id(), (currentId) => context.store.setPopupId(currentId));
1076
+ createEffect(() => context.store.track().popupElement, (element) => {
1077
+ if (!element || typeof MutationObserver === "undefined") return;
1078
+ const observer = new MutationObserver(() => context.store.collection.touch());
1079
+ observer.observe(element, {
1080
+ childList: true,
1081
+ subtree: true,
1082
+ characterData: true
1083
+ });
1084
+ return () => observer.disconnect();
1085
+ });
1086
+ onCleanup(() => {
1087
+ if (context.store.state.popupElement === popupElement) context.store.setPopupElement(null);
1088
+ });
1089
+ function PopupElement() {
1090
+ return Dynamic(mergeProps({
1091
+ get component() {
1092
+ return props.as ?? "div";
1093
+ },
1094
+ ref: [((element) => {
1095
+ popupElement = element;
1096
+ context.store.setPopupElement(element);
1097
+ }), internalProps.ref],
1098
+ get id() {
1099
+ return id();
1100
+ },
1101
+ role: "menu",
1102
+ tabIndex: -1,
1103
+ "data-base-ui-focusable": "",
1104
+ get ["data-rootownerid"]() {
1105
+ return context.store.rootNodeId();
1106
+ },
1107
+ get ["aria-labelledby"]() {
1108
+ return context.store.track().activeTriggerElement?.id || void 0;
1109
+ },
1110
+ get ["aria-orientation"]() {
1111
+ return context.store.orientation();
1112
+ },
1113
+ get ["class"]() {
1114
+ return classValue();
1115
+ },
1116
+ get style() {
1117
+ return styleValue();
1118
+ },
1119
+ onClick,
1120
+ onMouseMove,
1121
+ onKeyDown
1122
+ }, stateAttributes, others));
1123
+ }
1124
+ return FocusManager({
1125
+ get context() {
1126
+ return context.store.context.floatingRoot;
1127
+ },
1128
+ get tree() {
1129
+ return context.store.tree();
1130
+ },
1131
+ get disabled() {
1132
+ return !context.presence.mounted();
1133
+ },
1134
+ initialFocus: () => {
1135
+ return untrack(() => {
1136
+ if (context.store.focusPendingItem()) return false;
1137
+ if (context.store.openMethod() === "keyboard" && context.store.collection.availableIndices().length > 0) return false;
1138
+ return context.store.openChangeReason() === "trigger-hover" || context.nested ? false : true;
1139
+ });
1140
+ },
1141
+ get returnFocus() {
1142
+ return internalProps.finalFocus ?? defaultReturnFocus;
1143
+ },
1144
+ modal: contextMenuRoot,
1145
+ restoreFocus: true,
1146
+ get openInteractionType() {
1147
+ return context.store.openMethod();
1148
+ },
1149
+ get previousFocusableElement() {
1150
+ return context.store.track().activeTriggerElement;
1151
+ },
1152
+ get nextFocusableElement() {
1153
+ return memo(() => {
1154
+ return !!(context.nested || context.store.menubar());
1155
+ })() ? void 0 : context.store.afterTriggerGuard.bind(context.store);
1156
+ },
1157
+ get beforeContentGuardRef() {
1158
+ return memo(() => {
1159
+ return !!(context.nested || context.store.menubar());
1160
+ })() ? void 0 : context.store.setBeforeContentGuard.bind(context.store);
1161
+ },
1162
+ get children() {
1163
+ return PopupElement({});
1164
+ }
1165
+ });
1166
+ }
1167
+ function getNextTabTarget(trigger, rootOwnerId) {
1168
+ if (!trigger) return null;
1169
+ const elements = tabbable(trigger.ownerDocument.body).filter((element) => !element.hasAttribute("data-base-ui-focus-guard") && !element.closest(`[data-rootownerid="${rootOwnerId}"]`));
1170
+ const index = elements.indexOf(trigger);
1171
+ return index === -1 ? null : elements[index + 1] ?? null;
1172
+ }
1173
+ //#endregion
1174
+ //#region src/menu/arrow/MenuArrow.tsx
1175
+ /** Displays an element positioned against the menu anchor. */
1176
+ function MenuArrow(props) {
1177
+ const context = useMenuRootContext();
1178
+ const positioner = useMenuPositionerContext();
1179
+ const internalProps = props;
1180
+ const allProps = props;
1181
+ const state = createMemo(() => ({
1182
+ open: context.store.open(),
1183
+ side: positioner.renderedSide(),
1184
+ align: positioner.renderedAlign(),
1185
+ uncentered: positioner.arrowUncentered()
1186
+ }));
1187
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1188
+ const styleValue = createMemo(() => mergeMenuStyles(positioner.arrowStyles(), resolveStyle(props.style, state())));
1189
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), popupStateMapping));
1190
+ const others = omit(allProps, "as", "class", "ref", "style");
1191
+ let arrowElement = null;
1192
+ onCleanup(() => {
1193
+ if (arrowElement) positioner.setArrowElement(null);
1194
+ });
1195
+ return Dynamic(mergeProps({
1196
+ get component() {
1197
+ return props.as ?? "div";
1198
+ },
1199
+ ref: [((element) => {
1200
+ arrowElement = element;
1201
+ positioner.setArrowElement(element);
1202
+ }), internalProps.ref],
1203
+ "aria-hidden": "true",
1204
+ get ["class"]() {
1205
+ return classValue();
1206
+ },
1207
+ get style() {
1208
+ return styleValue();
1209
+ }
1210
+ }, stateAttributes, others));
1211
+ }
1212
+ //#endregion
1213
+ //#region src/menu/group/MenuGroupContext.ts
1214
+ var MISSING_CONTEXT$3 = Symbol("MenuGroupContext");
1215
+ var MenuGroupContext = createContext(MISSING_CONTEXT$3);
1216
+ function useMenuGroupContext() {
1217
+ const context = useContext(MenuGroupContext);
1218
+ if (context === MISSING_CONTEXT$3) throw new Error("Base UI: <Menu.GroupLabel> must be placed within <Menu.Group> or <Menu.RadioGroup>.");
1219
+ return context;
1220
+ }
1221
+ //#endregion
1222
+ //#region src/menu/group/MenuGroup.tsx
1223
+ /** Groups related menu items. */
1224
+ function MenuGroup(props) {
1225
+ const internalProps = props;
1226
+ const allProps = props;
1227
+ const [labelId, setLabelId] = createSignal();
1228
+ const context = {
1229
+ labelId,
1230
+ setLabelId
1231
+ };
1232
+ const state = {};
1233
+ const classValue = createMemo(() => resolveClass(props.class, state));
1234
+ const styleValue = createMemo(() => resolveStyle(props.style, state));
1235
+ const others = omit(allProps, "as", "class", "ref", "style");
1236
+ return MenuGroupContext({
1237
+ value: context,
1238
+ get children() {
1239
+ return Dynamic(mergeProps({
1240
+ get component() {
1241
+ return props.as ?? "div";
1242
+ },
1243
+ ref: [internalProps.ref],
1244
+ role: "group",
1245
+ get ["aria-labelledby"]() {
1246
+ return labelId();
1247
+ },
1248
+ get ["class"]() {
1249
+ return classValue();
1250
+ },
1251
+ get style() {
1252
+ return styleValue();
1253
+ }
1254
+ }, others));
1255
+ }
1256
+ });
1257
+ }
1258
+ //#endregion
1259
+ //#region src/menu/group-label/MenuGroupLabel.tsx
1260
+ /** An accessible label for a menu group. */
1261
+ function MenuGroupLabel(props) {
1262
+ const context = useMenuGroupContext();
1263
+ const internalProps = props;
1264
+ const allProps = props;
1265
+ const generatedId = `base-ui-${createUniqueId()}`;
1266
+ const id = createMemo(() => internalProps.id || generatedId);
1267
+ const state = {};
1268
+ const classValue = createMemo(() => resolveClass(props.class, state));
1269
+ const styleValue = createMemo(() => resolveStyle(props.style, state));
1270
+ const others = omit(allProps, "as", "class", "id", "ref", "style");
1271
+ createEffect(() => id(), (currentId) => {
1272
+ context.setLabelId(currentId);
1273
+ return () => {
1274
+ if (context.labelId() === currentId) context.setLabelId(void 0);
1275
+ };
1276
+ });
1277
+ return Dynamic(mergeProps({
1278
+ get component() {
1279
+ return props.as ?? "div";
1280
+ },
1281
+ ref: [internalProps.ref],
1282
+ get id() {
1283
+ return id();
1284
+ },
1285
+ role: "presentation",
1286
+ get ["class"]() {
1287
+ return classValue();
1288
+ },
1289
+ get style() {
1290
+ return styleValue();
1291
+ }
1292
+ }, others));
1293
+ }
1294
+ //#endregion
1295
+ //#region src/menu/item/createMenuItem.ts
1296
+ function createMenuItem(options) {
1297
+ const token = Symbol("menu-item");
1298
+ const [element, setElement] = createSignal(null, { ownedWrite: true });
1299
+ const unregister = options.store.collection.register({
1300
+ token,
1301
+ element,
1302
+ label: options.label
1303
+ });
1304
+ const index = createMemo(() => options.store.collection.indexOf(token));
1305
+ const highlighted = createMemo(() => options.store.isItemActive(element()));
1306
+ onCleanup(unregister);
1307
+ return {
1308
+ element,
1309
+ setElement(value) {
1310
+ setElement(value);
1311
+ options.store.collection.touch();
1312
+ },
1313
+ index,
1314
+ highlighted,
1315
+ onFocus(event) {
1316
+ untrack(() => options.store.setActiveElement(event.currentTarget));
1317
+ },
1318
+ onBlur(event) {
1319
+ untrack(() => {
1320
+ const current = event.currentTarget;
1321
+ if (options.store.activeElement() === current && event.relatedTarget !== current) options.store.setActiveElement(null);
1322
+ });
1323
+ },
1324
+ onMouseMove(event) {
1325
+ options.store.tree().events.emit("itemhover", {
1326
+ nodeId: options.store.context.floatingRoot.context.nodeId,
1327
+ target: event.currentTarget
1328
+ });
1329
+ if (options.store.highlightItemOnHover()) {
1330
+ const current = event.currentTarget;
1331
+ options.store.setActiveElement(current);
1332
+ if (options.store.allowMouseEnter()) current.focus({ preventScroll: true });
1333
+ }
1334
+ },
1335
+ onMouseUp(event) {
1336
+ const contextMenu = options.store.contextMenu;
1337
+ if (contextMenu) {
1338
+ const initialCursorPoint = contextMenu.initialCursorPoint.current;
1339
+ contextMenu.initialCursorPoint.current = null;
1340
+ if (initialCursorPoint && Math.abs(event.clientX - initialCursorPoint.x) <= 1 && Math.abs(event.clientY - initialCursorPoint.y) <= 1) return;
1341
+ if (!isMacPlatform() && event.button === 2) return;
1342
+ }
1343
+ if (!options.submenu && options.store.allowMouseUpTrigger && (!contextMenu || event.button === 2)) dispatchClickWithModifiers(event.currentTarget, event, 1);
1344
+ },
1345
+ onKeyDown(event, nativeButton) {
1346
+ if (event.target !== event.currentTarget) return;
1347
+ if (event.key === " " && options.store.typing()) {
1348
+ event.preventDefault();
1349
+ event.preventBaseUIHandler();
1350
+ return;
1351
+ }
1352
+ if (event.key !== "Enter" && event.key !== " ") return;
1353
+ const current = event.currentTarget;
1354
+ if (current.tagName === "A" && Boolean(current.href) && event.key === "Enter") return;
1355
+ if (nativeButton && current.tagName === "BUTTON" && event.key === "Enter") return;
1356
+ event.preventDefault();
1357
+ event.preventBaseUIHandler();
1358
+ dispatchClickWithModifiers(current, event, 0);
1359
+ },
1360
+ onKeyUp(event, nativeButton) {
1361
+ if (nativeButton && event.target === event.currentTarget && event.currentTarget.tagName === "BUTTON" && event.key === " ") event.preventDefault();
1362
+ },
1363
+ close(event) {
1364
+ options.store.closeTree(event, "item-press");
1365
+ }
1366
+ };
1367
+ }
1368
+ function isMacPlatform() {
1369
+ if (typeof navigator === "undefined") return false;
1370
+ const platform = navigator.platform.toLowerCase();
1371
+ return !(/^i(os$|p)/.test(platform) || platform === "macintel" && navigator.maxTouchPoints > 1) && platform.startsWith("mac");
1372
+ }
1373
+ function dispatchClickWithModifiers(target, source, detail, onCreate) {
1374
+ const EventConstructor = target.ownerDocument.defaultView?.MouseEvent ?? MouseEvent;
1375
+ const mouseSource = "button" in source ? source : null;
1376
+ const event = new EventConstructor("click", {
1377
+ bubbles: true,
1378
+ cancelable: true,
1379
+ composed: true,
1380
+ detail,
1381
+ button: mouseSource?.button ?? 0,
1382
+ buttons: mouseSource?.buttons ?? 0,
1383
+ clientX: mouseSource?.clientX ?? 0,
1384
+ clientY: mouseSource?.clientY ?? 0,
1385
+ shiftKey: source.shiftKey,
1386
+ ctrlKey: source.ctrlKey,
1387
+ altKey: source.altKey,
1388
+ metaKey: source.metaKey
1389
+ });
1390
+ onCreate?.(event);
1391
+ target.dispatchEvent(event);
1392
+ return event;
1393
+ }
1394
+ function preventDisabledMenuItemActivation(event) {
1395
+ if (event.key === "Enter" || event.key === " ") {
1396
+ event.preventDefault();
1397
+ event.preventBaseUIHandler();
1398
+ }
1399
+ }
1400
+ //#endregion
1401
+ //#region src/menu/item/MenuItem.tsx
1402
+ /** An individual interactive item in the menu. */
1403
+ function MenuItem(props) {
1404
+ const context = useMenuRootContext();
1405
+ const internalProps = props;
1406
+ const allProps = props;
1407
+ const nativeButton = createMemo(() => internalProps.nativeButton ?? false);
1408
+ const disabled = createMemo(() => Boolean(internalProps.disabled || context.store.disabled()));
1409
+ const closeOnClick = createMemo(() => internalProps.closeOnClick ?? true);
1410
+ const item = createMenuItem({
1411
+ store: context.store,
1412
+ label: () => internalProps.label
1413
+ });
1414
+ const state = createMemo(() => ({
1415
+ disabled: disabled(),
1416
+ highlighted: item.highlighted()
1417
+ }));
1418
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1419
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1420
+ const stateAttributes = createMemo(() => getStateAttributesProps(state()));
1421
+ const others = omit(allProps, "as", "class", "closeOnClick", "disabled", "id", "label", "nativeButton", "onClick", "onFocus", "onBlur", "onKeyDown", "onKeyUp", "onMouseMove", "onMouseUp", "ref", "style");
1422
+ const onClick = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onClick, () => (event) => {
1423
+ if (closeOnClick()) item.close(event);
1424
+ });
1425
+ const onKeyDown = composeEventHandlers(() => untrack(() => disabled() ? preventDisabledMenuItemActivation : void 0), () => internalProps.onKeyDown, () => (event) => item.onKeyDown(event, nativeButton()));
1426
+ const onKeyUp = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onKeyUp, () => (event) => item.onKeyUp(event, nativeButton()));
1427
+ const onMouseMove = composeEventHandlers(() => internalProps.onMouseMove, () => item.onMouseMove);
1428
+ const onMouseUp = composeEventHandlers(() => internalProps.onMouseUp, () => item.onMouseUp);
1429
+ const onFocus = composeEventHandlers(() => internalProps.onFocus, () => item.onFocus);
1430
+ const onBlur = composeEventHandlers(() => internalProps.onBlur, () => item.onBlur);
1431
+ return Dynamic(mergeProps({
1432
+ get component() {
1433
+ return props.as ?? "div";
1434
+ },
1435
+ ref: [((element) => item.setElement(element)), internalProps.ref],
1436
+ get id() {
1437
+ return internalProps.id;
1438
+ },
1439
+ get type() {
1440
+ return nativeButton() ? "button" : void 0;
1441
+ },
1442
+ role: "menuitem",
1443
+ get tabIndex() {
1444
+ return context.store.open() && item.highlighted() ? 0 : -1;
1445
+ },
1446
+ get ["aria-disabled"]() {
1447
+ return disabled() ? "true" : void 0;
1448
+ },
1449
+ get ["class"]() {
1450
+ return classValue();
1451
+ },
1452
+ get style() {
1453
+ return styleValue();
1454
+ },
1455
+ onClick,
1456
+ onFocus,
1457
+ onBlur,
1458
+ onKeyDown,
1459
+ onKeyUp,
1460
+ onMouseMove,
1461
+ onMouseUp
1462
+ }, stateAttributes, others));
1463
+ }
1464
+ //#endregion
1465
+ //#region src/menu/checkbox-item/MenuCheckboxItemContext.ts
1466
+ var MISSING_CONTEXT$2 = Symbol("MenuCheckboxItemContext");
1467
+ var MenuCheckboxItemContext = createContext(MISSING_CONTEXT$2);
1468
+ function useMenuCheckboxItemContext() {
1469
+ const context = useContext(MenuCheckboxItemContext);
1470
+ if (context === MISSING_CONTEXT$2) throw new Error("Base UI: <Menu.CheckboxItemIndicator> must be placed within <Menu.CheckboxItem>.");
1471
+ return context;
1472
+ }
1473
+ //#endregion
1474
+ //#region src/menu/checkbox-item/MenuCheckboxItem.tsx
1475
+ /** A menu item that toggles a setting on or off. */
1476
+ function MenuCheckboxItem(props) {
1477
+ const context = useMenuRootContext();
1478
+ const internalProps = props;
1479
+ const allProps = props;
1480
+ const controlled = untrack(() => internalProps.checked !== void 0);
1481
+ const [uncontrolledChecked, setUncontrolledChecked] = createSignal(untrack(() => internalProps.defaultChecked ?? false), { ownedWrite: true });
1482
+ const checked = createMemo(() => controlled ? Boolean(internalProps.checked) : uncontrolledChecked());
1483
+ const nativeButton = createMemo(() => internalProps.nativeButton ?? false);
1484
+ const disabled = createMemo(() => Boolean(internalProps.disabled || context.store.disabled()));
1485
+ const closeOnClick = createMemo(() => internalProps.closeOnClick ?? false);
1486
+ const item = createMenuItem({
1487
+ store: context.store,
1488
+ label: () => internalProps.label
1489
+ });
1490
+ const state = createMemo(() => ({
1491
+ disabled: disabled(),
1492
+ highlighted: item.highlighted(),
1493
+ checked: checked()
1494
+ }));
1495
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1496
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1497
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), menuItemStateMapping));
1498
+ const others = omit(allProps, "as", "checked", "class", "closeOnClick", "defaultChecked", "disabled", "id", "label", "nativeButton", "onBlur", "onCheckedChange", "onClick", "onFocus", "onKeyDown", "onKeyUp", "onMouseMove", "onMouseUp", "ref", "style");
1499
+ function toggle(event) {
1500
+ const nextChecked = !checked();
1501
+ const details = createChangeEventDetails(itemPress, event, void 0, { preventUnmountOnClose() {} });
1502
+ internalProps.onCheckedChange?.(nextChecked, details);
1503
+ if (!details.isCanceled && !controlled) setUncontrolledChecked(nextChecked);
1504
+ }
1505
+ const onClick = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onClick, () => toggle, () => (event) => {
1506
+ if (closeOnClick()) item.close(event);
1507
+ });
1508
+ const onKeyDown = composeEventHandlers(() => untrack(() => disabled() ? preventDisabledMenuItemActivation : void 0), () => internalProps.onKeyDown, () => (event) => item.onKeyDown(event, nativeButton()));
1509
+ const onKeyUp = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onKeyUp, () => (event) => item.onKeyUp(event, nativeButton()));
1510
+ const onFocus = composeEventHandlers(() => internalProps.onFocus, () => item.onFocus);
1511
+ const onBlur = composeEventHandlers(() => internalProps.onBlur, () => item.onBlur);
1512
+ const onMouseMove = composeEventHandlers(() => internalProps.onMouseMove, () => item.onMouseMove);
1513
+ const onMouseUp = composeEventHandlers(() => internalProps.onMouseUp, () => item.onMouseUp);
1514
+ return MenuCheckboxItemContext({
1515
+ value: state,
1516
+ get children() {
1517
+ return Dynamic(mergeProps({
1518
+ get component() {
1519
+ return props.as ?? "div";
1520
+ },
1521
+ ref: [((value) => item.setElement(value)), internalProps.ref],
1522
+ get id() {
1523
+ return internalProps.id;
1524
+ },
1525
+ get type() {
1526
+ return nativeButton() ? "button" : void 0;
1527
+ },
1528
+ role: "menuitemcheckbox",
1529
+ get tabIndex() {
1530
+ return context.store.open() && item.highlighted() ? 0 : -1;
1531
+ },
1532
+ get ["aria-checked"]() {
1533
+ return checked() ? "true" : "false";
1534
+ },
1535
+ get ["aria-disabled"]() {
1536
+ return disabled() ? "true" : void 0;
1537
+ },
1538
+ get ["class"]() {
1539
+ return classValue();
1540
+ },
1541
+ get style() {
1542
+ return styleValue();
1543
+ },
1544
+ onClick,
1545
+ onFocus,
1546
+ onBlur,
1547
+ onKeyDown,
1548
+ onKeyUp,
1549
+ onMouseMove,
1550
+ onMouseUp
1551
+ }, stateAttributes, others));
1552
+ }
1553
+ });
1554
+ }
1555
+ //#endregion
1556
+ //#region src/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.tsx
1557
+ /** Indicates whether the enclosing checkbox item is checked. */
1558
+ function MenuCheckboxItemIndicator(props) {
1559
+ const itemState = useMenuCheckboxItemContext();
1560
+ const internalProps = props;
1561
+ const allProps = props;
1562
+ const transition = createTransitionStatus(() => itemState().checked);
1563
+ const shouldRender = createMemo(() => (internalProps.keepMounted ?? false) || transition.mounted());
1564
+ const state = createMemo(() => ({
1565
+ ...itemState(),
1566
+ transitionStatus: transition.transitionStatus()
1567
+ }));
1568
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1569
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1570
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), {
1571
+ ...menuItemStateMapping,
1572
+ ...transitionStatusMapping
1573
+ }));
1574
+ const others = omit(allProps, "as", "class", "keepMounted", "ref", "style");
1575
+ let element;
1576
+ let latestChecked = false;
1577
+ createEffect(() => ({
1578
+ checked: itemState().checked,
1579
+ status: transition.transitionStatus(),
1580
+ element
1581
+ }), (current) => {
1582
+ latestChecked = current.checked;
1583
+ if (current.checked || current.status !== "ending" || !current.element) return;
1584
+ const controller = new AbortController();
1585
+ runOnceAnimationsFinish(current.element, () => {
1586
+ if (!latestChecked) transition.setMounted(false);
1587
+ }, controller.signal);
1588
+ return () => controller.abort();
1589
+ });
1590
+ return Show({
1591
+ get when() {
1592
+ return shouldRender();
1593
+ },
1594
+ get children() {
1595
+ return Dynamic(mergeProps({
1596
+ get component() {
1597
+ return props.as ?? "span";
1598
+ },
1599
+ ref: [((value) => element = value), internalProps.ref],
1600
+ "aria-hidden": "true",
1601
+ get ["class"]() {
1602
+ return classValue();
1603
+ },
1604
+ get style() {
1605
+ return styleValue();
1606
+ }
1607
+ }, stateAttributes, others));
1608
+ }
1609
+ });
1610
+ }
1611
+ //#endregion
1612
+ //#region src/menu/link-item/MenuLinkItem.tsx
1613
+ /** A link in the menu that navigates to another page or section. */
1614
+ function MenuLinkItem(props) {
1615
+ const context = useMenuRootContext();
1616
+ const internalProps = props;
1617
+ const allProps = props;
1618
+ const closeOnClick = createMemo(() => internalProps.closeOnClick ?? false);
1619
+ const disabled = createMemo(() => context.store.disabled());
1620
+ const item = createMenuItem({
1621
+ store: context.store,
1622
+ label: () => internalProps.label
1623
+ });
1624
+ const state = createMemo(() => ({ highlighted: item.highlighted() }));
1625
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1626
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1627
+ const stateAttributes = createMemo(() => getStateAttributesProps(state()));
1628
+ const others = omit(allProps, "as", "class", "closeOnClick", "id", "label", "onClick", "onFocus", "onBlur", "onKeyDown", "onKeyUp", "onMouseMove", "onMouseUp", "ref", "style");
1629
+ const onClick = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onClick, () => (event) => {
1630
+ if (closeOnClick()) item.close(event);
1631
+ });
1632
+ const onKeyDown = composeEventHandlers(() => untrack(() => disabled() ? preventDisabledMenuItemActivation : void 0), () => internalProps.onKeyDown, () => (event) => item.onKeyDown(event, false));
1633
+ const onKeyUp = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onKeyUp, () => (event) => item.onKeyUp(event, false));
1634
+ const onMouseMove = composeEventHandlers(() => internalProps.onMouseMove, () => item.onMouseMove);
1635
+ const onMouseUp = composeEventHandlers(() => internalProps.onMouseUp, () => item.onMouseUp);
1636
+ const onFocus = composeEventHandlers(() => internalProps.onFocus, () => item.onFocus);
1637
+ const onBlur = composeEventHandlers(() => internalProps.onBlur, () => item.onBlur);
1638
+ return Dynamic(mergeProps({
1639
+ get component() {
1640
+ return props.as ?? "a";
1641
+ },
1642
+ ref: [((element) => item.setElement(element)), internalProps.ref],
1643
+ get id() {
1644
+ return internalProps.id;
1645
+ },
1646
+ role: "menuitem",
1647
+ get tabIndex() {
1648
+ return context.store.open() && item.highlighted() ? 0 : -1;
1649
+ },
1650
+ get ["class"]() {
1651
+ return classValue();
1652
+ },
1653
+ get style() {
1654
+ return styleValue();
1655
+ },
1656
+ onClick,
1657
+ onFocus,
1658
+ onBlur,
1659
+ onKeyDown,
1660
+ onKeyUp,
1661
+ onMouseMove,
1662
+ onMouseUp
1663
+ }, stateAttributes, others));
1664
+ }
1665
+ //#endregion
1666
+ //#region src/menu/radio-group/MenuRadioGroupContext.ts
1667
+ var MISSING_CONTEXT$1 = Symbol("MenuRadioGroupContext");
1668
+ var MenuRadioGroupContext = createContext(MISSING_CONTEXT$1);
1669
+ function useMenuRadioGroupContext() {
1670
+ const context = useContext(MenuRadioGroupContext);
1671
+ if (context === MISSING_CONTEXT$1) throw new Error("Base UI: <Menu.RadioItem> must be placed within <Menu.RadioGroup>.");
1672
+ return context;
1673
+ }
1674
+ //#endregion
1675
+ //#region src/menu/radio-group/MenuRadioGroup.tsx
1676
+ /** Groups related radio items. */
1677
+ function MenuRadioGroup(props) {
1678
+ const internalProps = props;
1679
+ const allProps = props;
1680
+ const controlled = untrack(() => internalProps.value !== void 0);
1681
+ const [uncontrolledValue, setUncontrolledValue] = createSignal(untrack(() => internalProps.defaultValue), { ownedWrite: true });
1682
+ const [labelId, setLabelId] = createSignal();
1683
+ const value = createMemo(() => controlled ? internalProps.value : uncontrolledValue());
1684
+ const disabled = createMemo(() => internalProps.disabled ?? false);
1685
+ const state = createMemo(() => ({ disabled: disabled() }));
1686
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1687
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1688
+ const stateAttributes = createMemo(() => getStateAttributesProps(state()));
1689
+ const others = omit(allProps, "aria-labelledby", "as", "class", "defaultValue", "disabled", "onValueChange", "ref", "style", "value");
1690
+ const groupContext = {
1691
+ labelId,
1692
+ setLabelId
1693
+ };
1694
+ const radioContext = {
1695
+ value,
1696
+ disabled,
1697
+ setValue(nextValue, details) {
1698
+ internalProps.onValueChange?.(nextValue, details);
1699
+ if (!details.isCanceled && !controlled) setUncontrolledValue(() => nextValue);
1700
+ }
1701
+ };
1702
+ return MenuGroupContext({
1703
+ value: groupContext,
1704
+ get children() {
1705
+ return MenuRadioGroupContext({
1706
+ value: radioContext,
1707
+ get children() {
1708
+ return Dynamic(mergeProps({
1709
+ get component() {
1710
+ return props.as ?? "div";
1711
+ },
1712
+ ref: [internalProps.ref],
1713
+ role: "group",
1714
+ get ["aria-labelledby"]() {
1715
+ return internalProps["aria-labelledby"] ?? labelId();
1716
+ },
1717
+ get ["aria-disabled"]() {
1718
+ return disabled() ? "true" : void 0;
1719
+ },
1720
+ get ["class"]() {
1721
+ return classValue();
1722
+ },
1723
+ get style() {
1724
+ return styleValue();
1725
+ }
1726
+ }, stateAttributes, others));
1727
+ }
1728
+ });
1729
+ }
1730
+ });
1731
+ }
1732
+ //#endregion
1733
+ //#region src/menu/radio-item/MenuRadioItemContext.ts
1734
+ var MISSING_CONTEXT = Symbol("MenuRadioItemContext");
1735
+ var MenuRadioItemContext = createContext(MISSING_CONTEXT);
1736
+ function useMenuRadioItemContext() {
1737
+ const context = useContext(MenuRadioItemContext);
1738
+ if (context === MISSING_CONTEXT) throw new Error("Base UI: <Menu.RadioItemIndicator> must be placed within <Menu.RadioItem>.");
1739
+ return context;
1740
+ }
1741
+ //#endregion
1742
+ //#region src/menu/radio-item/MenuRadioItem.tsx
1743
+ /** A radio item within a menu radio group. */
1744
+ function MenuRadioItem(props) {
1745
+ const context = useMenuRootContext();
1746
+ const group = useMenuRadioGroupContext();
1747
+ const internalProps = props;
1748
+ const allProps = props;
1749
+ const nativeButton = createMemo(() => internalProps.nativeButton ?? false);
1750
+ const disabled = createMemo(() => Boolean(internalProps.disabled || group.disabled() || context.store.disabled()));
1751
+ const closeOnClick = createMemo(() => internalProps.closeOnClick ?? false);
1752
+ const checked = createMemo(() => group.value() === internalProps.value);
1753
+ const item = createMenuItem({
1754
+ store: context.store,
1755
+ label: () => internalProps.label
1756
+ });
1757
+ const state = createMemo(() => ({
1758
+ disabled: disabled(),
1759
+ highlighted: item.highlighted(),
1760
+ checked: checked()
1761
+ }));
1762
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1763
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1764
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), menuItemStateMapping));
1765
+ const others = omit(allProps, "as", "class", "closeOnClick", "disabled", "id", "label", "nativeButton", "onBlur", "onClick", "onFocus", "onKeyDown", "onKeyUp", "onMouseMove", "onMouseUp", "ref", "style", "value");
1766
+ function select(event) {
1767
+ const details = createChangeEventDetails(itemPress, event, void 0, { preventUnmountOnClose() {} });
1768
+ group.setValue(internalProps.value, details);
1769
+ }
1770
+ const onClick = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onClick, () => select, () => (event) => {
1771
+ if (closeOnClick()) item.close(event);
1772
+ });
1773
+ const onKeyDown = composeEventHandlers(() => untrack(() => disabled() ? preventDisabledMenuItemActivation : void 0), () => internalProps.onKeyDown, () => (event) => item.onKeyDown(event, nativeButton()));
1774
+ const onKeyUp = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onKeyUp, () => (event) => item.onKeyUp(event, nativeButton()));
1775
+ const onFocus = composeEventHandlers(() => internalProps.onFocus, () => item.onFocus);
1776
+ const onBlur = composeEventHandlers(() => internalProps.onBlur, () => item.onBlur);
1777
+ const onMouseMove = composeEventHandlers(() => internalProps.onMouseMove, () => item.onMouseMove);
1778
+ const onMouseUp = composeEventHandlers(() => internalProps.onMouseUp, () => item.onMouseUp);
1779
+ return MenuRadioItemContext({
1780
+ value: state,
1781
+ get children() {
1782
+ return Dynamic(mergeProps({
1783
+ get component() {
1784
+ return props.as ?? "div";
1785
+ },
1786
+ ref: [((value) => item.setElement(value)), internalProps.ref],
1787
+ get id() {
1788
+ return internalProps.id;
1789
+ },
1790
+ get type() {
1791
+ return nativeButton() ? "button" : void 0;
1792
+ },
1793
+ role: "menuitemradio",
1794
+ get tabIndex() {
1795
+ return context.store.open() && item.highlighted() ? 0 : -1;
1796
+ },
1797
+ get ["aria-checked"]() {
1798
+ return checked() ? "true" : "false";
1799
+ },
1800
+ get ["aria-disabled"]() {
1801
+ return disabled() ? "true" : void 0;
1802
+ },
1803
+ get ["class"]() {
1804
+ return classValue();
1805
+ },
1806
+ get style() {
1807
+ return styleValue();
1808
+ },
1809
+ onClick,
1810
+ onFocus,
1811
+ onBlur,
1812
+ onKeyDown,
1813
+ onKeyUp,
1814
+ onMouseMove,
1815
+ onMouseUp
1816
+ }, stateAttributes, others));
1817
+ }
1818
+ });
1819
+ }
1820
+ //#endregion
1821
+ //#region src/menu/radio-item-indicator/MenuRadioItemIndicator.tsx
1822
+ /** Indicates whether the enclosing radio item is selected. */
1823
+ function MenuRadioItemIndicator(props) {
1824
+ const itemState = useMenuRadioItemContext();
1825
+ const internalProps = props;
1826
+ const allProps = props;
1827
+ const transition = createTransitionStatus(() => itemState().checked);
1828
+ const shouldRender = createMemo(() => (internalProps.keepMounted ?? false) || transition.mounted());
1829
+ const state = createMemo(() => ({
1830
+ ...itemState(),
1831
+ transitionStatus: transition.transitionStatus()
1832
+ }));
1833
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1834
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1835
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), {
1836
+ ...menuItemStateMapping,
1837
+ ...transitionStatusMapping
1838
+ }));
1839
+ const others = omit(allProps, "as", "class", "keepMounted", "ref", "style");
1840
+ let element;
1841
+ let latestChecked = false;
1842
+ createEffect(() => ({
1843
+ checked: itemState().checked,
1844
+ status: transition.transitionStatus(),
1845
+ element
1846
+ }), (current) => {
1847
+ latestChecked = current.checked;
1848
+ if (current.checked || current.status !== "ending" || !current.element) return;
1849
+ const controller = new AbortController();
1850
+ runOnceAnimationsFinish(current.element, () => {
1851
+ if (!latestChecked) transition.setMounted(false);
1852
+ }, controller.signal);
1853
+ return () => controller.abort();
1854
+ });
1855
+ return Show({
1856
+ get when() {
1857
+ return shouldRender();
1858
+ },
1859
+ get children() {
1860
+ return Dynamic(mergeProps({
1861
+ get component() {
1862
+ return props.as ?? "span";
1863
+ },
1864
+ ref: [((value) => element = value), internalProps.ref],
1865
+ "aria-hidden": "true",
1866
+ get ["class"]() {
1867
+ return classValue();
1868
+ },
1869
+ get style() {
1870
+ return styleValue();
1871
+ }
1872
+ }, stateAttributes, others));
1873
+ }
1874
+ });
1875
+ }
1876
+ //#endregion
1877
+ //#region src/menu/submenu-root/MenuSubmenuRoot.tsx
1878
+ /** Groups all parts of a submenu without rendering an element. */
1879
+ function MenuSubmenuRoot(props) {
1880
+ const parent = useMenuRootContext();
1881
+ return MenuSubmenuRootContext({
1882
+ get value() {
1883
+ return { parentStore: parent.store };
1884
+ },
1885
+ get children() {
1886
+ return MenuRoot(props);
1887
+ }
1888
+ });
1889
+ }
1890
+ //#endregion
1891
+ //#region src/menu/submenu-trigger/MenuSubmenuTrigger.tsx
1892
+ /** A menu item that opens a submenu. */
1893
+ function MenuSubmenuTrigger(props) {
1894
+ const submenu = useMenuSubmenuRootContext();
1895
+ const child = useMenuRootContext();
1896
+ const parentStore = submenu.parentStore;
1897
+ const internalProps = props;
1898
+ const allProps = props;
1899
+ const id = createMemo(() => internalProps.id || `base-ui-${child.node.id}-trigger`);
1900
+ const nativeButton = createMemo(() => internalProps.nativeButton ?? false);
1901
+ const openOnHover = createMemo(() => internalProps.openOnHover ?? true);
1902
+ const delay = createMemo(() => internalProps.delay ?? 100);
1903
+ const closeDelay = createMemo(() => internalProps.closeDelay ?? 0);
1904
+ const disabled = createMemo(() => Boolean(internalProps.disabled || child.store.disabled() || parentStore.disabled()));
1905
+ const item = createMenuItem({
1906
+ store: parentStore,
1907
+ label: () => internalProps.label,
1908
+ submenu: true
1909
+ });
1910
+ const open = createMemo(() => child.store.open());
1911
+ const state = createMemo(() => ({
1912
+ disabled: disabled(),
1913
+ highlighted: item.highlighted(),
1914
+ open: open()
1915
+ }));
1916
+ const classValue = createMemo(() => resolveClass(props.class, state()));
1917
+ const styleValue = createMemo(() => resolveStyle(props.style, state()));
1918
+ const stateAttributes = createMemo(() => getStateAttributesProps(state(), triggerOpenStateMapping));
1919
+ const omitExpanded = createMemo(() => open() && isApplePlatform() && (child.store.openChangeReason() === "list-navigation" || child.store.openMethod() === "keyboard"));
1920
+ const others = omit(allProps, "as", "class", "closeDelay", "delay", "disabled", "id", "label", "nativeButton", "onClick", "onFocus", "onBlur", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseMove", "onMouseUp", "onMouseEnter", "openOnHover", "ref", "style");
1921
+ createTriggerRegistration(() => child.store, id, item.element, () => ({ closeDelay: closeDelay() }));
1922
+ let mouseDownHandled = false;
1923
+ function setSubmenuOpen(nextOpen, event, reason) {
1924
+ const element = item.element();
1925
+ if (!element || disabled()) return;
1926
+ child.store.setOpenMethod(event instanceof KeyboardEvent || event.detail === 0 ? "keyboard" : "mouse");
1927
+ child.store.setPendingFocus(nextOpen ? "first" : null);
1928
+ child.store.setOpen(nextOpen, createChangeEventDetails(reason, event, element));
1929
+ }
1930
+ function handleKeyDown(event) {
1931
+ const openKey = parentStore.orientation() === "vertical" ? parentStore.direction() === "rtl" ? "ArrowLeft" : "ArrowRight" : "ArrowDown";
1932
+ if (event.key === openKey) {
1933
+ event.preventDefault();
1934
+ event.stopPropagation();
1935
+ event.preventBaseUIHandler();
1936
+ setSubmenuOpen(true, event, listNavigation);
1937
+ return;
1938
+ }
1939
+ item.onKeyDown(event, nativeButton());
1940
+ }
1941
+ const onClick = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onClick, () => (event) => {
1942
+ if (mouseDownHandled) {
1943
+ mouseDownHandled = false;
1944
+ return;
1945
+ }
1946
+ if (!openOnHover() || event.detail === 0) setSubmenuOpen(openOnHover() ? true : !open(), event, triggerPress);
1947
+ });
1948
+ const onMouseDown = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onMouseDown, () => (event) => {
1949
+ if (!openOnHover() && event.button === 0) {
1950
+ mouseDownHandled = true;
1951
+ setSubmenuOpen(!open(), event, triggerPress);
1952
+ }
1953
+ });
1954
+ const onKeyDown = composeEventHandlers(() => untrack(() => disabled() ? preventDisabledMenuItemActivation : void 0), () => internalProps.onKeyDown, () => handleDismissKeyDown, () => handleKeyDown);
1955
+ const onKeyUp = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onKeyUp, () => (event) => item.onKeyUp(event, nativeButton()));
1956
+ const onMouseMove = composeEventHandlers(() => internalProps.onMouseMove, () => item.onMouseMove);
1957
+ const onMouseUp = composeEventHandlers(() => internalProps.onMouseUp, () => item.onMouseUp);
1958
+ const onFocus = composeEventHandlers(() => internalProps.onFocus, () => item.onFocus);
1959
+ const onBlur = composeEventHandlers(() => internalProps.onBlur, () => item.onBlur);
1960
+ const onMouseEnter = composeEventHandlers(() => internalProps.onMouseEnter, () => () => {
1961
+ if (parentStore.highlightItemOnHover()) parentStore.setActiveElement(item.element());
1962
+ });
1963
+ function handleDismissKeyDown(event) {
1964
+ const handler = child.store.state.activeTriggerProps.onKeyDown;
1965
+ if (typeof handler === "function") handler(event);
1966
+ }
1967
+ function HoverInteraction() {
1968
+ createHoverInteraction({
1969
+ context: child.store.context.floatingRoot,
1970
+ reference: item.element,
1971
+ floating: () => child.store.track().positionerElement,
1972
+ tree: () => child.store.tree(),
1973
+ enabled: () => child.store.hoverEnabled() && openOnHover() && !disabled(),
1974
+ delay: () => ({
1975
+ open: delay(),
1976
+ close: closeDelay()
1977
+ }),
1978
+ restMs: delay,
1979
+ handleClose: () => safePolygon({ blockPointerEvents: true }),
1980
+ mouseOnly: () => true,
1981
+ shouldOpen: () => delay() === 0 || parentStore.allowMouseEnter(),
1982
+ blockPointerEventsScope: () => parentStore.track().popupElement,
1983
+ guardStaleOpen: () => true
1984
+ });
1985
+ return null;
1986
+ }
1987
+ return [HoverInteraction({}), Show({
1988
+ get when() {
1989
+ return props.as;
1990
+ },
1991
+ get fallback() {
1992
+ return ssrElement("div", () => {
1993
+ return mergeProps({
1994
+ get id() {
1995
+ return id();
1996
+ },
1997
+ role: "menuitem",
1998
+ get tabIndex() {
1999
+ return open() || item.highlighted() ? 0 : -1;
2000
+ },
2001
+ "aria-haspopup": "menu",
2002
+ get ["aria-expanded"]() {
2003
+ return omitExpanded() ? void 0 : open() ? "true" : "false";
2004
+ },
2005
+ get ["aria-controls"]() {
2006
+ return child.store.triggerPopupId(id());
2007
+ },
2008
+ get ["aria-disabled"]() {
2009
+ return disabled() ? "true" : void 0;
2010
+ },
2011
+ get ["class"]() {
2012
+ return classValue();
2013
+ },
2014
+ get style() {
2015
+ return styleValue();
2016
+ }
2017
+ }, stateAttributes, others);
2018
+ }, void 0, true);
2019
+ },
2020
+ children: (component) => Dynamic(mergeProps({
2021
+ get component() {
2022
+ return component();
2023
+ },
2024
+ ref: [((element) => {
2025
+ item.setElement(element);
2026
+ }), internalProps.ref],
2027
+ get id() {
2028
+ return id();
2029
+ },
2030
+ get type() {
2031
+ return nativeButton() ? "button" : void 0;
2032
+ },
2033
+ role: "menuitem",
2034
+ get tabIndex() {
2035
+ return open() || item.highlighted() ? 0 : -1;
2036
+ },
2037
+ "aria-haspopup": "menu",
2038
+ get ["aria-expanded"]() {
2039
+ return memo(() => {
2040
+ return !!omitExpanded();
2041
+ })() ? void 0 : open() ? "true" : "false";
2042
+ },
2043
+ get ["aria-controls"]() {
2044
+ return child.store.triggerPopupId(id());
2045
+ },
2046
+ get ["aria-disabled"]() {
2047
+ return disabled() ? "true" : void 0;
2048
+ },
2049
+ get ["class"]() {
2050
+ return classValue();
2051
+ },
2052
+ get style() {
2053
+ return styleValue();
2054
+ },
2055
+ onClick,
2056
+ onFocus,
2057
+ onBlur,
2058
+ onKeyDown,
2059
+ onKeyUp,
2060
+ onMouseEnter,
2061
+ onMouseDown,
2062
+ onMouseMove,
2063
+ onMouseUp
2064
+ }, stateAttributes, others))
2065
+ })];
2066
+ }
2067
+ function isApplePlatform() {
2068
+ if (typeof navigator === "undefined") return false;
2069
+ return /Mac|iPhone|iPad|iPod/i.test(`${navigator.platform} ${navigator.userAgent}`);
2070
+ }
2071
+ //#endregion
2072
+ export { useMenuRootContext as C, useContextMenuRootContext as E, MenuRootContext as S, ContextMenuRootContext as T, menuViewportStateMapping as _, MenuRadioGroup as a, mergeMenuStyles as b, MenuCheckboxItem as c, MenuGroupLabel as d, MenuGroup as f, useMenuPositionerContext as g, MenuPositioner as h, MenuRadioItem as i, MenuItem as l, MenuPopup as m, MenuSubmenuRoot as n, MenuLinkItem as o, MenuArrow as p, MenuRadioItemIndicator as r, MenuCheckboxItemIndicator as s, MenuSubmenuTrigger as t, dispatchClickWithModifiers as u, MenuPortal as v, MenuStore as w, MenuRoot as x, MenuBackdrop as y };