lynote-ui 0.0.1

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 (577) hide show
  1. package/README.md +24 -0
  2. package/dist/CompositeItem-DKYDWwo1.js +30 -0
  3. package/dist/CompositeItem-DKYDWwo1.js.map +1 -0
  4. package/dist/CompositeItem-DqbuwxxP.mjs +31 -0
  5. package/dist/CompositeItem-DqbuwxxP.mjs.map +1 -0
  6. package/dist/CompositeList-CLP_jD9H.js +151 -0
  7. package/dist/CompositeList-CLP_jD9H.js.map +1 -0
  8. package/dist/CompositeList-CM71m-RA.mjs +135 -0
  9. package/dist/CompositeList-CM71m-RA.mjs.map +1 -0
  10. package/dist/CompositeRoot-Clz7hqk6.mjs +291 -0
  11. package/dist/CompositeRoot-Clz7hqk6.mjs.map +1 -0
  12. package/dist/CompositeRoot-DhWDFM9v.js +307 -0
  13. package/dist/CompositeRoot-DhWDFM9v.js.map +1 -0
  14. package/dist/DialogRoot-C_3aVl-g.mjs +69 -0
  15. package/dist/DialogRoot-C_3aVl-g.mjs.map +1 -0
  16. package/dist/DialogRoot-D_7sM8HI.js +85 -0
  17. package/dist/DialogRoot-D_7sM8HI.js.map +1 -0
  18. package/dist/DialogTrigger-BqeNq2F6.mjs +532 -0
  19. package/dist/DialogTrigger-BqeNq2F6.mjs.map +1 -0
  20. package/dist/DialogTrigger-CgBPTG9W.js +548 -0
  21. package/dist/DialogTrigger-CgBPTG9W.js.map +1 -0
  22. package/dist/DirectionContext-BaCziR5k.mjs +12 -0
  23. package/dist/DirectionContext-BaCziR5k.mjs.map +1 -0
  24. package/dist/DirectionContext-BsZvU9q3.js +28 -0
  25. package/dist/DirectionContext-BsZvU9q3.js.map +1 -0
  26. package/dist/DirectionProvider-DaKrURtH.js +36 -0
  27. package/dist/DirectionProvider-DaKrURtH.js.map +1 -0
  28. package/dist/DirectionProvider-ttyWmQjZ.mjs +20 -0
  29. package/dist/DirectionProvider-ttyWmQjZ.mjs.map +1 -0
  30. package/dist/FieldItemContext-DRVgx-D1.mjs +13 -0
  31. package/dist/FieldItemContext-DRVgx-D1.mjs.map +1 -0
  32. package/dist/FieldItemContext-K2sFjft8.js +29 -0
  33. package/dist/FieldItemContext-K2sFjft8.js.map +1 -0
  34. package/dist/FloatingPortalLite-CEKehtqV.js +50 -0
  35. package/dist/FloatingPortalLite-CEKehtqV.js.map +1 -0
  36. package/dist/FloatingPortalLite-CsPfJ360.mjs +33 -0
  37. package/dist/FloatingPortalLite-CsPfJ360.mjs.map +1 -0
  38. package/dist/FormItem-BmgGAecB.mjs +185 -0
  39. package/dist/FormItem-BmgGAecB.mjs.map +1 -0
  40. package/dist/FormItem-xksTqxKD.js +200 -0
  41. package/dist/FormItem-xksTqxKD.js.map +1 -0
  42. package/dist/InternalBackdrop-B3WuVcuG.js +1021 -0
  43. package/dist/InternalBackdrop-B3WuVcuG.js.map +1 -0
  44. package/dist/InternalBackdrop-C7vtdMWQ.mjs +1005 -0
  45. package/dist/InternalBackdrop-C7vtdMWQ.mjs.map +1 -0
  46. package/dist/LabelableContext-DLLBESLn.mjs +213 -0
  47. package/dist/LabelableContext-DLLBESLn.mjs.map +1 -0
  48. package/dist/LabelableContext-DYy4DAX3.js +230 -0
  49. package/dist/LabelableContext-DYy4DAX3.js.map +1 -0
  50. package/dist/MenuSubmenuTrigger-95oBD6Dx.js +1659 -0
  51. package/dist/MenuSubmenuTrigger-95oBD6Dx.js.map +1 -0
  52. package/dist/MenuSubmenuTrigger-Bnw6ycbc.mjs +1643 -0
  53. package/dist/MenuSubmenuTrigger-Bnw6ycbc.mjs.map +1 -0
  54. package/dist/Separator-BKPk5Lcn.js +43 -0
  55. package/dist/Separator-BKPk5Lcn.js.map +1 -0
  56. package/dist/Separator-Dvb0TS9E.mjs +27 -0
  57. package/dist/Separator-Dvb0TS9E.mjs.map +1 -0
  58. package/dist/ToolbarRootContext-B_HxjkNI.mjs +11 -0
  59. package/dist/ToolbarRootContext-B_HxjkNI.mjs.map +1 -0
  60. package/dist/ToolbarRootContext-C8eU2VAC.js +27 -0
  61. package/dist/ToolbarRootContext-C8eU2VAC.js.map +1 -0
  62. package/dist/accordion/index.d.ts +6 -0
  63. package/dist/accordion/index.js +618 -0
  64. package/dist/accordion/index.js.map +1 -0
  65. package/dist/accordion/index.mjs +601 -0
  66. package/dist/accordion/index.mjs.map +1 -0
  67. package/dist/alert/index.d.ts +11 -0
  68. package/dist/alert/index.js +78 -0
  69. package/dist/alert/index.js.map +1 -0
  70. package/dist/alert/index.mjs +78 -0
  71. package/dist/alert/index.mjs.map +1 -0
  72. package/dist/alert-dialog/index.d.ts +18 -0
  73. package/dist/alert-dialog/index.js +240 -0
  74. package/dist/alert-dialog/index.js.map +1 -0
  75. package/dist/alert-dialog/index.mjs +223 -0
  76. package/dist/alert-dialog/index.mjs.map +1 -0
  77. package/dist/aspect-ratio/index.d.ts +4 -0
  78. package/dist/aspect-ratio/index.js +23 -0
  79. package/dist/aspect-ratio/index.js.map +1 -0
  80. package/dist/aspect-ratio/index.mjs +23 -0
  81. package/dist/aspect-ratio/index.mjs.map +1 -0
  82. package/dist/avatar/index.d.ts +11 -0
  83. package/dist/avatar/index.js +287 -0
  84. package/dist/avatar/index.js.map +1 -0
  85. package/dist/avatar/index.mjs +270 -0
  86. package/dist/avatar/index.mjs.map +1 -0
  87. package/dist/badge/index.d.ts +9 -0
  88. package/dist/badge/index.js +48 -0
  89. package/dist/badge/index.js.map +1 -0
  90. package/dist/badge/index.mjs +48 -0
  91. package/dist/badge/index.mjs.map +1 -0
  92. package/dist/breadcrumb/index.d.ts +10 -0
  93. package/dist/breadcrumb/index.js +123 -0
  94. package/dist/breadcrumb/index.js.map +1 -0
  95. package/dist/breadcrumb/index.mjs +123 -0
  96. package/dist/breadcrumb/index.mjs.map +1 -0
  97. package/dist/button/index.d.ts +9 -0
  98. package/dist/button/index.js +99 -0
  99. package/dist/button/index.js.map +1 -0
  100. package/dist/button/index.mjs +82 -0
  101. package/dist/button/index.mjs.map +1 -0
  102. package/dist/button-group/index.d.ts +12 -0
  103. package/dist/button-group/index.js +83 -0
  104. package/dist/button-group/index.js.map +1 -0
  105. package/dist/button-group/index.mjs +83 -0
  106. package/dist/button-group/index.mjs.map +1 -0
  107. package/dist/calendar/index.d.ts +10 -0
  108. package/dist/calendar/index.js +205 -0
  109. package/dist/calendar/index.js.map +1 -0
  110. package/dist/calendar/index.mjs +188 -0
  111. package/dist/calendar/index.mjs.map +1 -0
  112. package/dist/card/index.d.ts +11 -0
  113. package/dist/card/index.js +102 -0
  114. package/dist/card/index.js.map +1 -0
  115. package/dist/card/index.mjs +102 -0
  116. package/dist/card/index.mjs.map +1 -0
  117. package/dist/carousel/index.d.ts +28 -0
  118. package/dist/carousel/index.js +217 -0
  119. package/dist/carousel/index.js.map +1 -0
  120. package/dist/carousel/index.mjs +200 -0
  121. package/dist/carousel/index.mjs.map +1 -0
  122. package/dist/chart/index.d.ts +44 -0
  123. package/dist/chart/index.js +272 -0
  124. package/dist/chart/index.js.map +1 -0
  125. package/dist/chart/index.mjs +254 -0
  126. package/dist/chart/index.mjs.map +1 -0
  127. package/dist/checkbox/index.d.ts +3 -0
  128. package/dist/checkbox/index.js +425 -0
  129. package/dist/checkbox/index.js.map +1 -0
  130. package/dist/checkbox/index.mjs +408 -0
  131. package/dist/checkbox/index.mjs.map +1 -0
  132. package/dist/clamp-CRAygR8_.mjs +17 -0
  133. package/dist/clamp-CRAygR8_.mjs.map +1 -0
  134. package/dist/clamp-Cl34OJjs.js +33 -0
  135. package/dist/clamp-Cl34OJjs.js.map +1 -0
  136. package/dist/collapsible/index.d.ts +5 -0
  137. package/dist/collapsible/index.js +244 -0
  138. package/dist/collapsible/index.js.map +1 -0
  139. package/dist/collapsible/index.mjs +227 -0
  140. package/dist/collapsible/index.mjs.map +1 -0
  141. package/dist/combobox/index.d.ts +24 -0
  142. package/dist/combobox/index.js +294 -0
  143. package/dist/combobox/index.js.map +1 -0
  144. package/dist/combobox/index.mjs +277 -0
  145. package/dist/combobox/index.mjs.map +1 -0
  146. package/dist/command/index.d.ts +19 -0
  147. package/dist/command/index.js +174 -0
  148. package/dist/command/index.js.map +1 -0
  149. package/dist/command/index.mjs +174 -0
  150. package/dist/command/index.mjs.map +1 -0
  151. package/dist/composite-54CI9F0V.mjs +346 -0
  152. package/dist/composite-54CI9F0V.mjs.map +1 -0
  153. package/dist/composite-B6lEHrCV.mjs +119 -0
  154. package/dist/composite-B6lEHrCV.mjs.map +1 -0
  155. package/dist/composite-BT0EMBUB.js +118 -0
  156. package/dist/composite-BT0EMBUB.js.map +1 -0
  157. package/dist/composite-DhXBXmhV.js +345 -0
  158. package/dist/composite-DhXBXmhV.js.map +1 -0
  159. package/dist/constants-DAVIOz2s.js +18 -0
  160. package/dist/constants-DAVIOz2s.js.map +1 -0
  161. package/dist/constants-Dfh7hQez.mjs +19 -0
  162. package/dist/constants-Dfh7hQez.mjs.map +1 -0
  163. package/dist/context-menu/index.d.ts +29 -0
  164. package/dist/context-menu/index.js +458 -0
  165. package/dist/context-menu/index.js.map +1 -0
  166. package/dist/context-menu/index.mjs +441 -0
  167. package/dist/context-menu/index.mjs.map +1 -0
  168. package/dist/createBaseUIEventDetails-CRQSf9K3.mjs +79 -0
  169. package/dist/createBaseUIEventDetails-CRQSf9K3.mjs.map +1 -0
  170. package/dist/createBaseUIEventDetails-D39y2D9R.js +78 -0
  171. package/dist/createBaseUIEventDetails-D39y2D9R.js.map +1 -0
  172. package/dist/date-picker/index.d.ts +3 -0
  173. package/dist/date-picker/index.js +47 -0
  174. package/dist/date-picker/index.js.map +1 -0
  175. package/dist/date-picker/index.mjs +30 -0
  176. package/dist/date-picker/index.mjs.map +1 -0
  177. package/dist/detectBrowser-CT93wuqL.mjs +64 -0
  178. package/dist/detectBrowser-CT93wuqL.mjs.map +1 -0
  179. package/dist/detectBrowser-j_AUpd7-.js +63 -0
  180. package/dist/detectBrowser-j_AUpd7-.js.map +1 -0
  181. package/dist/dialog/index.d.ts +17 -0
  182. package/dist/dialog/index.js +153 -0
  183. package/dist/dialog/index.js.map +1 -0
  184. package/dist/dialog/index.mjs +153 -0
  185. package/dist/dialog/index.mjs.map +1 -0
  186. package/dist/direction/index.d.ts +1 -0
  187. package/dist/direction/index.js +7 -0
  188. package/dist/direction/index.js.map +1 -0
  189. package/dist/direction/index.mjs +7 -0
  190. package/dist/direction/index.mjs.map +1 -0
  191. package/dist/drawer/index.d.ts +13 -0
  192. package/dist/drawer/index.js +128 -0
  193. package/dist/drawer/index.js.map +1 -0
  194. package/dist/drawer/index.mjs +128 -0
  195. package/dist/drawer/index.mjs.map +1 -0
  196. package/dist/dropdown-menu/index.d.ts +29 -0
  197. package/dist/dropdown-menu/index.js +573 -0
  198. package/dist/dropdown-menu/index.js.map +1 -0
  199. package/dist/dropdown-menu/index.mjs +555 -0
  200. package/dist/dropdown-menu/index.mjs.map +1 -0
  201. package/dist/element-BtC-M4rb.mjs +103 -0
  202. package/dist/element-BtC-M4rb.mjs.map +1 -0
  203. package/dist/element-DAAyJrnp.js +102 -0
  204. package/dist/element-DAAyJrnp.js.map +1 -0
  205. package/dist/empty/index.d.ts +12 -0
  206. package/dist/empty/index.js +103 -0
  207. package/dist/empty/index.js.map +1 -0
  208. package/dist/empty/index.mjs +103 -0
  209. package/dist/empty/index.mjs.map +1 -0
  210. package/dist/event-BHxKjfyi.js +43 -0
  211. package/dist/event-BHxKjfyi.js.map +1 -0
  212. package/dist/event-CcyVszlp.mjs +44 -0
  213. package/dist/event-CcyVszlp.mjs.map +1 -0
  214. package/dist/field/index.d.ts +25 -0
  215. package/dist/field/index.js +219 -0
  216. package/dist/field/index.js.map +1 -0
  217. package/dist/field/index.mjs +219 -0
  218. package/dist/field/index.mjs.map +1 -0
  219. package/dist/floating-ui.utils-CMX6M1P8.js +149 -0
  220. package/dist/floating-ui.utils-CMX6M1P8.js.map +1 -0
  221. package/dist/floating-ui.utils-DoPG3M8C.mjs +150 -0
  222. package/dist/floating-ui.utils-DoPG3M8C.mjs.map +1 -0
  223. package/dist/floating-ui.utils.dom-BAD07kLX.mjs +176 -0
  224. package/dist/floating-ui.utils.dom-BAD07kLX.mjs.map +1 -0
  225. package/dist/floating-ui.utils.dom-djqmdyxg.js +175 -0
  226. package/dist/floating-ui.utils.dom-djqmdyxg.js.map +1 -0
  227. package/dist/form/components/Form.d.ts +4 -0
  228. package/dist/form/components/FormControl.d.ts +3 -0
  229. package/dist/form/components/FormDescription.d.ts +3 -0
  230. package/dist/form/components/FormField.d.ts +3 -0
  231. package/dist/form/components/FormItem.d.ts +7 -0
  232. package/dist/form/components/FormLabel.d.ts +3 -0
  233. package/dist/form/components/FormMessage.d.ts +4 -0
  234. package/dist/form/components/variants.d.ts +6 -0
  235. package/dist/form/context/index.d.ts +4 -0
  236. package/dist/form/hooks/useFormField.d.ts +14 -0
  237. package/dist/form/index.d.ts +11 -0
  238. package/dist/form/index.js +19 -0
  239. package/dist/form/index.js.map +1 -0
  240. package/dist/form/index.mjs +13 -0
  241. package/dist/form/index.mjs.map +1 -0
  242. package/dist/form/type.d.ts +48 -0
  243. package/dist/getEmptyRootContext-CBrvBF2x.mjs +17 -0
  244. package/dist/getEmptyRootContext-CBrvBF2x.mjs.map +1 -0
  245. package/dist/getEmptyRootContext-DrOPobKp.js +16 -0
  246. package/dist/getEmptyRootContext-DrOPobKp.js.map +1 -0
  247. package/dist/getPseudoElementBounds-CN2-zcsN.js +29 -0
  248. package/dist/getPseudoElementBounds-CN2-zcsN.js.map +1 -0
  249. package/dist/getPseudoElementBounds-i4YX-qQ2.mjs +30 -0
  250. package/dist/getPseudoElementBounds-i4YX-qQ2.mjs.map +1 -0
  251. package/dist/hooks/use-mobile.d.ts +1 -0
  252. package/dist/hover-card/index.d.ts +5 -0
  253. package/dist/hover-card/index.js +501 -0
  254. package/dist/hover-card/index.js.map +1 -0
  255. package/dist/hover-card/index.mjs +483 -0
  256. package/dist/hover-card/index.mjs.map +1 -0
  257. package/dist/index-B3i3Mf61.mjs +147 -0
  258. package/dist/index-B3i3Mf61.mjs.map +1 -0
  259. package/dist/index-zBgD3uv6.js +163 -0
  260. package/dist/index-zBgD3uv6.js.map +1 -0
  261. package/dist/index.d.ts +57 -0
  262. package/dist/index.js +393 -0
  263. package/dist/index.js.map +1 -0
  264. package/dist/index.mjs +384 -0
  265. package/dist/index.mjs.map +1 -0
  266. package/dist/inertValue-gSeyz2Lm.js +10 -0
  267. package/dist/inertValue-gSeyz2Lm.js.map +1 -0
  268. package/dist/inertValue-t5QI1CFn.mjs +11 -0
  269. package/dist/inertValue-t5QI1CFn.mjs.map +1 -0
  270. package/dist/input/index.d.ts +3 -0
  271. package/dist/input/index.js +167 -0
  272. package/dist/input/index.js.map +1 -0
  273. package/dist/input/index.mjs +150 -0
  274. package/dist/input/index.mjs.map +1 -0
  275. package/dist/input-group/index.d.ts +19 -0
  276. package/dist/input-group/index.js +146 -0
  277. package/dist/input-group/index.js.map +1 -0
  278. package/dist/input-group/index.mjs +146 -0
  279. package/dist/input-group/index.mjs.map +1 -0
  280. package/dist/input-otp/index.d.ts +11 -0
  281. package/dist/input-otp/index.js +84 -0
  282. package/dist/input-otp/index.js.map +1 -0
  283. package/dist/input-otp/index.mjs +67 -0
  284. package/dist/input-otp/index.mjs.map +1 -0
  285. package/dist/isElementDisabled-2KG8-O4B.mjs +7 -0
  286. package/dist/isElementDisabled-2KG8-O4B.mjs.map +1 -0
  287. package/dist/isElementDisabled-p2fc38Eq.js +6 -0
  288. package/dist/isElementDisabled-p2fc38Eq.js.map +1 -0
  289. package/dist/item/index.d.ts +23 -0
  290. package/dist/item/index.js +196 -0
  291. package/dist/item/index.js.map +1 -0
  292. package/dist/item/index.mjs +196 -0
  293. package/dist/item/index.mjs.map +1 -0
  294. package/dist/jsx-runtime-CPzt8Nmm.js +321 -0
  295. package/dist/jsx-runtime-CPzt8Nmm.js.map +1 -0
  296. package/dist/jsx-runtime-Dog7MAYX.mjs +322 -0
  297. package/dist/jsx-runtime-Dog7MAYX.mjs.map +1 -0
  298. package/dist/kbd/index.d.ts +3 -0
  299. package/dist/kbd/index.js +30 -0
  300. package/dist/kbd/index.js.map +1 -0
  301. package/dist/kbd/index.mjs +30 -0
  302. package/dist/kbd/index.mjs.map +1 -0
  303. package/dist/label/index.d.ts +3 -0
  304. package/dist/label/index.js +19 -0
  305. package/dist/label/index.js.map +1 -0
  306. package/dist/label/index.mjs +19 -0
  307. package/dist/label/index.mjs.map +1 -0
  308. package/dist/lib/cva.d.ts +1 -0
  309. package/dist/lib/index.d.ts +2 -0
  310. package/dist/lib/utils.d.ts +2 -0
  311. package/dist/menubar/index.d.ts +29 -0
  312. package/dist/menubar/index.js +365 -0
  313. package/dist/menubar/index.js.map +1 -0
  314. package/dist/menubar/index.mjs +348 -0
  315. package/dist/menubar/index.mjs.map +1 -0
  316. package/dist/native-select/index.d.ts +8 -0
  317. package/dist/native-select/index.js +54 -0
  318. package/dist/native-select/index.js.map +1 -0
  319. package/dist/native-select/index.mjs +54 -0
  320. package/dist/native-select/index.mjs.map +1 -0
  321. package/dist/navigation-menu/index.d.ts +12 -0
  322. package/dist/navigation-menu/index.js +1702 -0
  323. package/dist/navigation-menu/index.js.map +1 -0
  324. package/dist/navigation-menu/index.mjs +1684 -0
  325. package/dist/navigation-menu/index.mjs.map +1 -0
  326. package/dist/owner-Cf_X0F_A.mjs +7 -0
  327. package/dist/owner-Cf_X0F_A.mjs.map +1 -0
  328. package/dist/owner-DohlhdQa.js +6 -0
  329. package/dist/owner-DohlhdQa.js.map +1 -0
  330. package/dist/pagination/index.d.ts +17 -0
  331. package/dist/pagination/index.js +129 -0
  332. package/dist/pagination/index.js.map +1 -0
  333. package/dist/pagination/index.mjs +129 -0
  334. package/dist/pagination/index.mjs.map +1 -0
  335. package/dist/popover/index.d.ts +12 -0
  336. package/dist/popover/index.js +83 -0
  337. package/dist/popover/index.js.map +1 -0
  338. package/dist/popover/index.mjs +83 -0
  339. package/dist/popover/index.mjs.map +1 -0
  340. package/dist/popupStateMapping-DKN5mXrh.js +2694 -0
  341. package/dist/popupStateMapping-DKN5mXrh.js.map +1 -0
  342. package/dist/popupStateMapping-Dvf6vjid.mjs +2678 -0
  343. package/dist/popupStateMapping-Dvf6vjid.mjs.map +1 -0
  344. package/dist/progress/index.d.ts +7 -0
  345. package/dist/progress/index.js +315 -0
  346. package/dist/progress/index.js.map +1 -0
  347. package/dist/progress/index.mjs +298 -0
  348. package/dist/progress/index.mjs.map +1 -0
  349. package/dist/radio-group/index.d.ts +5 -0
  350. package/dist/radio-group/index.js +549 -0
  351. package/dist/radio-group/index.js.map +1 -0
  352. package/dist/radio-group/index.mjs +532 -0
  353. package/dist/radio-group/index.mjs.map +1 -0
  354. package/dist/resizable/index.d.ts +7 -0
  355. package/dist/resizable/index.js +63 -0
  356. package/dist/resizable/index.js.map +1 -0
  357. package/dist/resizable/index.mjs +46 -0
  358. package/dist/resizable/index.mjs.map +1 -0
  359. package/dist/resolveAriaLabelledBy-BOrKNO_y.js +10 -0
  360. package/dist/resolveAriaLabelledBy-BOrKNO_y.js.map +1 -0
  361. package/dist/resolveAriaLabelledBy-JxsTST5s.mjs +11 -0
  362. package/dist/resolveAriaLabelledBy-JxsTST5s.mjs.map +1 -0
  363. package/dist/safePolygon-ClN7sX4N.mjs +710 -0
  364. package/dist/safePolygon-ClN7sX4N.mjs.map +1 -0
  365. package/dist/safePolygon-DzT-LXP_.js +727 -0
  366. package/dist/safePolygon-DzT-LXP_.js.map +1 -0
  367. package/dist/safeReact-V1Amqcv9.mjs +8 -0
  368. package/dist/safeReact-V1Amqcv9.mjs.map +1 -0
  369. package/dist/safeReact-j2phwwP4.js +24 -0
  370. package/dist/safeReact-j2phwwP4.js.map +1 -0
  371. package/dist/scroll-area/index.d.ts +4 -0
  372. package/dist/scroll-area/index.js +1017 -0
  373. package/dist/scroll-area/index.js.map +1 -0
  374. package/dist/scroll-area/index.mjs +1000 -0
  375. package/dist/scroll-area/index.mjs.map +1 -0
  376. package/dist/select/index.d.ts +15 -0
  377. package/dist/select/index.js +2311 -0
  378. package/dist/select/index.js.map +1 -0
  379. package/dist/select/index.mjs +2293 -0
  380. package/dist/select/index.mjs.map +1 -0
  381. package/dist/separator/index.d.ts +3 -0
  382. package/dist/separator/index.js +25 -0
  383. package/dist/separator/index.js.map +1 -0
  384. package/dist/separator/index.mjs +25 -0
  385. package/dist/separator/index.mjs.map +1 -0
  386. package/dist/serializeValue-BLvnTy3o.mjs +17 -0
  387. package/dist/serializeValue-BLvnTy3o.mjs.map +1 -0
  388. package/dist/serializeValue-rMlAxdiX.js +16 -0
  389. package/dist/serializeValue-rMlAxdiX.js.map +1 -0
  390. package/dist/sheet/index.d.ts +14 -0
  391. package/dist/sheet/index.js +135 -0
  392. package/dist/sheet/index.js.map +1 -0
  393. package/dist/sheet/index.mjs +135 -0
  394. package/dist/sheet/index.mjs.map +1 -0
  395. package/dist/sidebar/index.d.ts +64 -0
  396. package/dist/sidebar/index.js +671 -0
  397. package/dist/sidebar/index.js.map +1 -0
  398. package/dist/sidebar/index.mjs +654 -0
  399. package/dist/sidebar/index.mjs.map +1 -0
  400. package/dist/skeleton/index.d.ts +2 -0
  401. package/dist/skeleton/index.js +16 -0
  402. package/dist/skeleton/index.js.map +1 -0
  403. package/dist/skeleton/index.mjs +16 -0
  404. package/dist/skeleton/index.mjs.map +1 -0
  405. package/dist/slider/index.d.ts +3 -0
  406. package/dist/slider/index.js +1361 -0
  407. package/dist/slider/index.js.map +1 -0
  408. package/dist/slider/index.mjs +1344 -0
  409. package/dist/slider/index.mjs.map +1 -0
  410. package/dist/sonner/index.d.ts +3 -0
  411. package/dist/sonner/index.js +10 -0
  412. package/dist/sonner/index.js.map +1 -0
  413. package/dist/sonner/index.mjs +7 -0
  414. package/dist/sonner/index.mjs.map +1 -0
  415. package/dist/sonner/sonner.d.ts +3 -0
  416. package/dist/sonner-Ctpa1LLR.js +36 -0
  417. package/dist/sonner-Ctpa1LLR.js.map +1 -0
  418. package/dist/sonner-D0rALbMy.mjs +37 -0
  419. package/dist/sonner-D0rALbMy.mjs.map +1 -0
  420. package/dist/spinner/index.d.ts +2 -0
  421. package/dist/spinner/index.js +10 -0
  422. package/dist/spinner/index.js.map +1 -0
  423. package/dist/spinner/index.mjs +10 -0
  424. package/dist/spinner/index.mjs.map +1 -0
  425. package/dist/style.css +6284 -0
  426. package/dist/styles-BY9BExrL.js +17 -0
  427. package/dist/styles-BY9BExrL.js.map +1 -0
  428. package/dist/styles-DGdX19B5.mjs +18 -0
  429. package/dist/styles-DGdX19B5.mjs.map +1 -0
  430. package/dist/switch/index.d.ts +5 -0
  431. package/dist/switch/index.js +306 -0
  432. package/dist/switch/index.js.map +1 -0
  433. package/dist/switch/index.mjs +289 -0
  434. package/dist/switch/index.mjs.map +1 -0
  435. package/dist/table/index.d.ts +10 -0
  436. package/dist/table/index.js +115 -0
  437. package/dist/table/index.js.map +1 -0
  438. package/dist/table/index.mjs +115 -0
  439. package/dist/table/index.mjs.map +1 -0
  440. package/dist/tabs/index.d.ts +11 -0
  441. package/dist/tabs/index.js +718 -0
  442. package/dist/tabs/index.js.map +1 -0
  443. package/dist/tabs/index.mjs +701 -0
  444. package/dist/tabs/index.mjs.map +1 -0
  445. package/dist/textarea/index.d.ts +3 -0
  446. package/dist/textarea/index.js +19 -0
  447. package/dist/textarea/index.js.map +1 -0
  448. package/dist/textarea/index.mjs +19 -0
  449. package/dist/textarea/index.mjs.map +1 -0
  450. package/dist/toggle/index.d.ts +9 -0
  451. package/dist/toggle/index.js +9 -0
  452. package/dist/toggle/index.js.map +1 -0
  453. package/dist/toggle/index.mjs +9 -0
  454. package/dist/toggle/index.mjs.map +1 -0
  455. package/dist/toggle-group/index.d.ts +10 -0
  456. package/dist/toggle-group/index.js +199 -0
  457. package/dist/toggle-group/index.js.map +1 -0
  458. package/dist/toggle-group/index.mjs +182 -0
  459. package/dist/toggle-group/index.mjs.map +1 -0
  460. package/dist/tooltip/index.d.ts +6 -0
  461. package/dist/tooltip/index.js +940 -0
  462. package/dist/tooltip/index.js.map +1 -0
  463. package/dist/tooltip/index.mjs +922 -0
  464. package/dist/tooltip/index.mjs.map +1 -0
  465. package/dist/useAnchorPositioning-DEkPt210.mjs +2213 -0
  466. package/dist/useAnchorPositioning-DEkPt210.mjs.map +1 -0
  467. package/dist/useAnchorPositioning-jXRh4g8d.js +2229 -0
  468. package/dist/useAnchorPositioning-jXRh4g8d.js.map +1 -0
  469. package/dist/useAnimationFrame-Bgt4Euiv.js +100 -0
  470. package/dist/useAnimationFrame-Bgt4Euiv.js.map +1 -0
  471. package/dist/useAnimationFrame-CJsjFUv3.mjs +101 -0
  472. package/dist/useAnimationFrame-CJsjFUv3.mjs.map +1 -0
  473. package/dist/useAriaLabelledBy-AZCBHH3a.js +63 -0
  474. package/dist/useAriaLabelledBy-AZCBHH3a.js.map +1 -0
  475. package/dist/useAriaLabelledBy-Chelmb26.mjs +47 -0
  476. package/dist/useAriaLabelledBy-Chelmb26.mjs.map +1 -0
  477. package/dist/useBaseUiId-Dd6rCWZj.mjs +30 -0
  478. package/dist/useBaseUiId-Dd6rCWZj.mjs.map +1 -0
  479. package/dist/useBaseUiId-ZDgjliOe.js +46 -0
  480. package/dist/useBaseUiId-ZDgjliOe.js.map +1 -0
  481. package/dist/useButton-CcvYPR5H.js +246 -0
  482. package/dist/useButton-CcvYPR5H.js.map +1 -0
  483. package/dist/useButton-DbBdV6Ig.mjs +230 -0
  484. package/dist/useButton-DbBdV6Ig.mjs.map +1 -0
  485. package/dist/useClick-1DLd7znk.mjs +97 -0
  486. package/dist/useClick-1DLd7znk.mjs.map +1 -0
  487. package/dist/useClick-wsFFnZw6.js +113 -0
  488. package/dist/useClick-wsFFnZw6.js.map +1 -0
  489. package/dist/useCollapsiblePanel-DIdAXCDX.mjs +439 -0
  490. package/dist/useCollapsiblePanel-DIdAXCDX.mjs.map +1 -0
  491. package/dist/useCollapsiblePanel-OP0gCAiW.js +455 -0
  492. package/dist/useCollapsiblePanel-OP0gCAiW.js.map +1 -0
  493. package/dist/useCompositeItem-CP0qNLGv.mjs +43 -0
  494. package/dist/useCompositeItem-CP0qNLGv.mjs.map +1 -0
  495. package/dist/useCompositeItem-F8jky_8M.js +59 -0
  496. package/dist/useCompositeItem-F8jky_8M.js.map +1 -0
  497. package/dist/useCompositeListItem-CPSGNf6p.js +116 -0
  498. package/dist/useCompositeListItem-CPSGNf6p.js.map +1 -0
  499. package/dist/useCompositeListItem-CvqgwmCe.mjs +100 -0
  500. package/dist/useCompositeListItem-CvqgwmCe.mjs.map +1 -0
  501. package/dist/useControlled-DITi2kHX.mjs +38 -0
  502. package/dist/useControlled-DITi2kHX.mjs.map +1 -0
  503. package/dist/useControlled-DTjTIpeU.js +54 -0
  504. package/dist/useControlled-DTjTIpeU.js.map +1 -0
  505. package/dist/useFocus-BonLJ9UY.js +162 -0
  506. package/dist/useFocus-BonLJ9UY.js.map +1 -0
  507. package/dist/useFocus-D2m1G1R7.mjs +146 -0
  508. package/dist/useFocus-D2m1G1R7.mjs.map +1 -0
  509. package/dist/useIsoLayoutEffect-CAx-dEZM.mjs +8 -0
  510. package/dist/useIsoLayoutEffect-CAx-dEZM.mjs.map +1 -0
  511. package/dist/useIsoLayoutEffect-CYDr9Bko.js +24 -0
  512. package/dist/useIsoLayoutEffect-CYDr9Bko.js.map +1 -0
  513. package/dist/useLabelableId-BMQMbGuJ.mjs +67 -0
  514. package/dist/useLabelableId-BMQMbGuJ.mjs.map +1 -0
  515. package/dist/useLabelableId-C-dL4hfJ.js +83 -0
  516. package/dist/useLabelableId-C-dL4hfJ.js.map +1 -0
  517. package/dist/useOnFirstRender-BYSeF6Y1.js +28 -0
  518. package/dist/useOnFirstRender-BYSeF6Y1.js.map +1 -0
  519. package/dist/useOnFirstRender-_PvKQsmi.mjs +12 -0
  520. package/dist/useOnFirstRender-_PvKQsmi.mjs.map +1 -0
  521. package/dist/useOnMount-CzmIG4WC.js +25 -0
  522. package/dist/useOnMount-CzmIG4WC.js.map +1 -0
  523. package/dist/useOnMount-DN6FnE-7.mjs +9 -0
  524. package/dist/useOnMount-DN6FnE-7.mjs.map +1 -0
  525. package/dist/useOpenChangeComplete-B0xZNwMu.js +194 -0
  526. package/dist/useOpenChangeComplete-B0xZNwMu.js.map +1 -0
  527. package/dist/useOpenChangeComplete-DbPLu-k9.mjs +177 -0
  528. package/dist/useOpenChangeComplete-DbPLu-k9.mjs.map +1 -0
  529. package/dist/useRender-DKDvf6kd.mjs +8 -0
  530. package/dist/useRender-DKDvf6kd.mjs.map +1 -0
  531. package/dist/useRender-PucZeh4Y.js +7 -0
  532. package/dist/useRender-PucZeh4Y.js.map +1 -0
  533. package/dist/useRenderElement-CtyURhhF.js +427 -0
  534. package/dist/useRenderElement-CtyURhhF.js.map +1 -0
  535. package/dist/useRenderElement-DtkRtCHE.mjs +412 -0
  536. package/dist/useRenderElement-DtkRtCHE.mjs.map +1 -0
  537. package/dist/useRole-CuVJ_Qa_.js +125 -0
  538. package/dist/useRole-CuVJ_Qa_.js.map +1 -0
  539. package/dist/useRole-DzRWctvj.mjs +109 -0
  540. package/dist/useRole-DzRWctvj.mjs.map +1 -0
  541. package/dist/useStableCallback-8_xI9oDo.mjs +40 -0
  542. package/dist/useStableCallback-8_xI9oDo.mjs.map +1 -0
  543. package/dist/useStableCallback-CfE_knIO.js +56 -0
  544. package/dist/useStableCallback-CfE_knIO.js.map +1 -0
  545. package/dist/useSyncedFloatingRootContext-BhwJbN5C.js +237 -0
  546. package/dist/useSyncedFloatingRootContext-BhwJbN5C.js.map +1 -0
  547. package/dist/useSyncedFloatingRootContext-BiC-l-Yp.mjs +221 -0
  548. package/dist/useSyncedFloatingRootContext-BiC-l-Yp.mjs.map +1 -0
  549. package/dist/useTimeout-CSlJ10_7.js +45 -0
  550. package/dist/useTimeout-CSlJ10_7.js.map +1 -0
  551. package/dist/useTimeout-DP0d-UkF.mjs +46 -0
  552. package/dist/useTimeout-DP0d-UkF.mjs.map +1 -0
  553. package/dist/useTypeahead-De1veul8.mjs +697 -0
  554. package/dist/useTypeahead-De1veul8.mjs.map +1 -0
  555. package/dist/useTypeahead-JL7mFfnS.js +713 -0
  556. package/dist/useTypeahead-JL7mFfnS.js.map +1 -0
  557. package/dist/useValueAsRef-BPI-p5A3.mjs +22 -0
  558. package/dist/useValueAsRef-BPI-p5A3.mjs.map +1 -0
  559. package/dist/useValueAsRef-uSzmRbW_.js +21 -0
  560. package/dist/useValueAsRef-uSzmRbW_.js.map +1 -0
  561. package/dist/useValueChanged-CEUlHhs5.mjs +20 -0
  562. package/dist/useValueChanged-CEUlHhs5.mjs.map +1 -0
  563. package/dist/useValueChanged-CvJls2Pv.js +36 -0
  564. package/dist/useValueChanged-CvJls2Pv.js.map +1 -0
  565. package/dist/utils-H80jjgLf.mjs +9 -0
  566. package/dist/utils-H80jjgLf.mjs.map +1 -0
  567. package/dist/utils-ij3i9zTT.js +8 -0
  568. package/dist/utils-ij3i9zTT.js.map +1 -0
  569. package/dist/valueToPercent-CfYnVMaY.js +39 -0
  570. package/dist/valueToPercent-CfYnVMaY.js.map +1 -0
  571. package/dist/valueToPercent-DxMnLf8t.mjs +40 -0
  572. package/dist/valueToPercent-DxMnLf8t.mjs.map +1 -0
  573. package/dist/visuallyHidden-D_sL9-70.mjs +25 -0
  574. package/dist/visuallyHidden-D_sL9-70.mjs.map +1 -0
  575. package/dist/visuallyHidden-Dkg-c0_K.js +24 -0
  576. package/dist/visuallyHidden-Dkg-c0_K.js.map +1 -0
  577. package/package.json +382 -0
@@ -0,0 +1,1702 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../jsx-runtime-CPzt8Nmm.js");
4
+ const classVarianceAuthority = require("class-variance-authority");
5
+ const lucideReact = require("lucide-react");
6
+ const React = require("react");
7
+ const floatingUi_utils_dom = require("../floating-ui.utils.dom-djqmdyxg.js");
8
+ const useControlled = require("../useControlled-DTjTIpeU.js");
9
+ const useStableCallback = require("../useStableCallback-CfE_knIO.js");
10
+ const owner = require("../owner-DohlhdQa.js");
11
+ const useRenderElement = require("../useRenderElement-CtyURhhF.js");
12
+ const useOpenChangeComplete = require("../useOpenChangeComplete-B0xZNwMu.js");
13
+ const floatingUi_utils = require("../floating-ui.utils-CMX6M1P8.js");
14
+ const popupStateMapping = require("../popupStateMapping-DKN5mXrh.js");
15
+ const createBaseUIEventDetails = require("../createBaseUIEventDetails-D39y2D9R.js");
16
+ const element = require("../element-DAAyJrnp.js");
17
+ const utils = require("../utils-ij3i9zTT.js");
18
+ const ReactDOM = require("react-dom");
19
+ const useIsoLayoutEffect = require("../useIsoLayoutEffect-CYDr9Bko.js");
20
+ const inertValue = require("../inertValue-gSeyz2Lm.js");
21
+ const CompositeRoot = require("../CompositeRoot-DhWDFM9v.js");
22
+ const useBaseUiId = require("../useBaseUiId-ZDgjliOe.js");
23
+ const CompositeItem = require("../CompositeItem-DKYDWwo1.js");
24
+ const getEmptyRootContext = require("../getEmptyRootContext-DrOPobKp.js");
25
+ const safePolygon = require("../safePolygon-DzT-LXP_.js");
26
+ const useTimeout = require("../useTimeout-CSlJ10_7.js");
27
+ const useAnchorPositioning = require("../useAnchorPositioning-jXRh4g8d.js");
28
+ const DirectionContext = require("../DirectionContext-BsZvU9q3.js");
29
+ const useAnimationFrame = require("../useAnimationFrame-Bgt4Euiv.js");
30
+ const useValueAsRef = require("../useValueAsRef-uSzmRbW_.js");
31
+ const detectBrowser = require("../detectBrowser-j_AUpd7-.js");
32
+ const useClick = require("../useClick-wsFFnZw6.js");
33
+ const useButton = require("../useButton-CcvYPR5H.js");
34
+ const event = require("../event-BHxKjfyi.js");
35
+ function _interopNamespaceDefault(e) {
36
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
37
+ if (e) {
38
+ for (const k in e) {
39
+ if (k !== "default") {
40
+ const d = Object.getOwnPropertyDescriptor(e, k);
41
+ Object.defineProperty(n, k, d.get ? d : {
42
+ enumerable: true,
43
+ get: () => e[k]
44
+ });
45
+ }
46
+ }
47
+ }
48
+ n.default = e;
49
+ return Object.freeze(n);
50
+ }
51
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
52
+ const ReactDOM__namespace = /* @__PURE__ */ _interopNamespaceDefault(ReactDOM);
53
+ function getCssDimensions(element2) {
54
+ const css = floatingUi_utils_dom.getComputedStyle(element2);
55
+ let width = parseFloat(css.width) || 0;
56
+ let height = parseFloat(css.height) || 0;
57
+ const hasOffset = floatingUi_utils_dom.isHTMLElement(element2);
58
+ const offsetWidth = hasOffset ? element2.offsetWidth : width;
59
+ const offsetHeight = hasOffset ? element2.offsetHeight : height;
60
+ const shouldFallback = floatingUi_utils.round(width) !== offsetWidth || floatingUi_utils.round(height) !== offsetHeight;
61
+ if (shouldFallback) {
62
+ width = offsetWidth;
63
+ height = offsetHeight;
64
+ }
65
+ return {
66
+ width,
67
+ height
68
+ };
69
+ }
70
+ const NavigationMenuRootContext = /* @__PURE__ */ React__namespace.createContext(void 0);
71
+ if (process.env.NODE_ENV !== "production") NavigationMenuRootContext.displayName = "NavigationMenuRootContext";
72
+ if (process.env.NODE_ENV !== "production") {
73
+ NavigationMenuRootContext.displayName = "NavigationMenuRootContext";
74
+ }
75
+ function useNavigationMenuRootContext(optional) {
76
+ const context = React__namespace.useContext(NavigationMenuRootContext);
77
+ if (context === void 0 && !optional) {
78
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: NavigationMenuRootContext is missing. Navigation Menu parts must be placed within <NavigationMenu.Root>." : useRenderElement.formatErrorMessage(41));
79
+ }
80
+ return context;
81
+ }
82
+ const NavigationMenuTreeContext = /* @__PURE__ */ React__namespace.createContext(void 0);
83
+ if (process.env.NODE_ENV !== "production") NavigationMenuTreeContext.displayName = "NavigationMenuTreeContext";
84
+ function useNavigationMenuTreeContext() {
85
+ return React__namespace.useContext(NavigationMenuTreeContext);
86
+ }
87
+ let NavigationMenuPopupCssVars = /* @__PURE__ */ (function(NavigationMenuPopupCssVars2) {
88
+ NavigationMenuPopupCssVars2["popupWidth"] = "--popup-width";
89
+ NavigationMenuPopupCssVars2["popupHeight"] = "--popup-height";
90
+ return NavigationMenuPopupCssVars2;
91
+ })({});
92
+ let NavigationMenuPositionerCssVars = /* @__PURE__ */ (function(NavigationMenuPositionerCssVars2) {
93
+ NavigationMenuPositionerCssVars2["availableWidth"] = "--available-width";
94
+ NavigationMenuPositionerCssVars2["availableHeight"] = "--available-height";
95
+ NavigationMenuPositionerCssVars2["anchorWidth"] = "--anchor-width";
96
+ NavigationMenuPositionerCssVars2["anchorHeight"] = "--anchor-height";
97
+ NavigationMenuPositionerCssVars2["transformOrigin"] = "--transform-origin";
98
+ NavigationMenuPositionerCssVars2["positionerWidth"] = "--positioner-width";
99
+ NavigationMenuPositionerCssVars2["positionerHeight"] = "--positioner-height";
100
+ return NavigationMenuPositionerCssVars2;
101
+ })({});
102
+ const blockedReturnFocusReasons = /* @__PURE__ */ new Set([createBaseUIEventDetails.triggerHover, createBaseUIEventDetails.outsidePress, createBaseUIEventDetails.focusOut]);
103
+ function setSharedFixedSize(popupElement, positionerElement) {
104
+ const {
105
+ width,
106
+ height
107
+ } = getCssDimensions(popupElement);
108
+ if (width === 0 || height === 0) {
109
+ return;
110
+ }
111
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupWidth, `${width}px`);
112
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupHeight, `${height}px`);
113
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerWidth, `${width}px`);
114
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerHeight, `${height}px`);
115
+ }
116
+ const NavigationMenuRoot = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuRoot2(componentProps, forwardedRef) {
117
+ const {
118
+ defaultValue = null,
119
+ value: valueParam,
120
+ onValueChange,
121
+ actionsRef,
122
+ delay = 50,
123
+ closeDelay = 50,
124
+ orientation = "horizontal",
125
+ onOpenChangeComplete
126
+ } = componentProps;
127
+ const nested = popupStateMapping.useFloatingParentNodeId() != null;
128
+ const parentRootContext = useNavigationMenuRootContext(true);
129
+ const [value, setValueUnwrapped] = useControlled.useControlled({
130
+ controlled: valueParam,
131
+ default: defaultValue,
132
+ name: "NavigationMenu",
133
+ state: "value"
134
+ });
135
+ const open = value != null;
136
+ const closeReasonRef = React__namespace.useRef(void 0);
137
+ const rootRef = React__namespace.useRef(null);
138
+ const [positionerElement, setPositionerElement] = React__namespace.useState(null);
139
+ const [popupElement, setPopupElement] = React__namespace.useState(null);
140
+ const [viewportElement, setViewportElement] = React__namespace.useState(null);
141
+ const [viewportTargetElement, setViewportTargetElement] = React__namespace.useState(null);
142
+ const [activationDirection, setActivationDirection] = React__namespace.useState(null);
143
+ const [floatingRootContext, setFloatingRootContext] = React__namespace.useState(void 0);
144
+ const [viewportInert, setViewportInert] = React__namespace.useState(false);
145
+ const prevTriggerElementRef = React__namespace.useRef(null);
146
+ const currentContentRef = React__namespace.useRef(null);
147
+ const beforeInsideRef = React__namespace.useRef(null);
148
+ const afterInsideRef = React__namespace.useRef(null);
149
+ const beforeOutsideRef = React__namespace.useRef(null);
150
+ const afterOutsideRef = React__namespace.useRef(null);
151
+ const {
152
+ mounted,
153
+ setMounted,
154
+ transitionStatus
155
+ } = useOpenChangeComplete.useTransitionStatus(open);
156
+ React__namespace.useEffect(() => {
157
+ setViewportInert(false);
158
+ }, [value]);
159
+ const setValue = useStableCallback.useStableCallback((nextValue, eventDetails) => {
160
+ if (!nextValue) {
161
+ closeReasonRef.current = eventDetails.reason;
162
+ setActivationDirection(null);
163
+ setFloatingRootContext(void 0);
164
+ if (positionerElement && popupElement) {
165
+ setSharedFixedSize(popupElement, positionerElement);
166
+ }
167
+ }
168
+ if (nextValue !== value) {
169
+ onValueChange == null ? void 0 : onValueChange(nextValue, eventDetails);
170
+ }
171
+ if (eventDetails.isCanceled) {
172
+ return;
173
+ }
174
+ setValueUnwrapped(nextValue);
175
+ if (nested && !nextValue && eventDetails.reason === createBaseUIEventDetails.linkPress && parentRootContext) {
176
+ parentRootContext.setValue(null, eventDetails);
177
+ }
178
+ });
179
+ const handleUnmount = useStableCallback.useStableCallback(() => {
180
+ const doc = owner.ownerDocument(rootRef.current);
181
+ const activeEl = element.activeElement(doc);
182
+ const isReturnFocusBlocked = closeReasonRef.current ? blockedReturnFocusReasons.has(closeReasonRef.current) : false;
183
+ if (!isReturnFocusBlocked && floatingUi_utils_dom.isHTMLElement(prevTriggerElementRef.current) && (activeEl === owner.ownerDocument(popupElement).body || element.contains(popupElement, activeEl)) && popupElement) {
184
+ prevTriggerElementRef.current.focus({
185
+ preventScroll: true
186
+ });
187
+ prevTriggerElementRef.current = void 0;
188
+ }
189
+ setMounted(false);
190
+ onOpenChangeComplete == null ? void 0 : onOpenChangeComplete(false);
191
+ setActivationDirection(null);
192
+ setFloatingRootContext(void 0);
193
+ currentContentRef.current = null;
194
+ closeReasonRef.current = void 0;
195
+ });
196
+ useOpenChangeComplete.useOpenChangeComplete({
197
+ enabled: !actionsRef,
198
+ open,
199
+ ref: {
200
+ current: popupElement
201
+ },
202
+ onComplete() {
203
+ if (!open) {
204
+ handleUnmount();
205
+ }
206
+ }
207
+ });
208
+ useOpenChangeComplete.useOpenChangeComplete({
209
+ enabled: !actionsRef,
210
+ open,
211
+ ref: {
212
+ current: viewportTargetElement
213
+ },
214
+ onComplete() {
215
+ if (!open) {
216
+ handleUnmount();
217
+ }
218
+ }
219
+ });
220
+ const contextValue = React__namespace.useMemo(() => ({
221
+ open,
222
+ value,
223
+ setValue,
224
+ mounted,
225
+ transitionStatus,
226
+ positionerElement,
227
+ setPositionerElement,
228
+ popupElement,
229
+ setPopupElement,
230
+ viewportElement,
231
+ setViewportElement,
232
+ viewportTargetElement,
233
+ setViewportTargetElement,
234
+ activationDirection,
235
+ setActivationDirection,
236
+ floatingRootContext,
237
+ setFloatingRootContext,
238
+ currentContentRef,
239
+ nested,
240
+ rootRef,
241
+ beforeInsideRef,
242
+ afterInsideRef,
243
+ beforeOutsideRef,
244
+ afterOutsideRef,
245
+ prevTriggerElementRef,
246
+ delay,
247
+ closeDelay,
248
+ orientation,
249
+ viewportInert,
250
+ setViewportInert
251
+ }), [open, value, setValue, mounted, transitionStatus, positionerElement, popupElement, viewportElement, viewportTargetElement, activationDirection, floatingRootContext, nested, delay, closeDelay, orientation, viewportInert]);
252
+ const jsx = /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuRootContext.Provider, {
253
+ value: contextValue,
254
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(TreeContext, {
255
+ componentProps,
256
+ forwardedRef,
257
+ children: componentProps.children
258
+ })
259
+ });
260
+ if (!nested) {
261
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FloatingTree, {
262
+ children: jsx
263
+ });
264
+ }
265
+ return jsx;
266
+ });
267
+ if (process.env.NODE_ENV !== "production") NavigationMenuRoot.displayName = "NavigationMenuRoot";
268
+ function TreeContext(props) {
269
+ const {
270
+ className,
271
+ render,
272
+ defaultValue,
273
+ value: valueParam,
274
+ onValueChange,
275
+ actionsRef,
276
+ delay,
277
+ closeDelay,
278
+ orientation,
279
+ onOpenChangeComplete,
280
+ ...elementProps
281
+ } = props.componentProps;
282
+ const nodeId = popupStateMapping.useFloatingNodeId();
283
+ const {
284
+ rootRef,
285
+ nested
286
+ } = useNavigationMenuRootContext();
287
+ const {
288
+ open
289
+ } = useNavigationMenuRootContext();
290
+ const state = {
291
+ open,
292
+ nested
293
+ };
294
+ const element2 = useRenderElement.useRenderElement(nested ? "div" : "nav", props.componentProps, {
295
+ state,
296
+ ref: [props.forwardedRef, rootRef],
297
+ props: elementProps
298
+ });
299
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuTreeContext.Provider, {
300
+ value: nodeId,
301
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FloatingNode, {
302
+ id: nodeId,
303
+ children: element2
304
+ })
305
+ });
306
+ }
307
+ const NAVIGATION_MENU_TRIGGER_IDENTIFIER = "data-base-ui-navigation-menu-trigger";
308
+ const NavigationMenuDismissContext = /* @__PURE__ */ React__namespace.createContext(void 0);
309
+ if (process.env.NODE_ENV !== "production") NavigationMenuDismissContext.displayName = "NavigationMenuDismissContext";
310
+ function useNavigationMenuDismissContext() {
311
+ return React__namespace.useContext(NavigationMenuDismissContext);
312
+ }
313
+ const NavigationMenuList$1 = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuList(componentProps, forwardedRef) {
314
+ const {
315
+ className,
316
+ render,
317
+ ...elementProps
318
+ } = componentProps;
319
+ const {
320
+ orientation,
321
+ open,
322
+ floatingRootContext,
323
+ positionerElement,
324
+ value,
325
+ closeDelay,
326
+ viewportElement,
327
+ nested
328
+ } = useNavigationMenuRootContext();
329
+ const fallbackContext = React__namespace.useMemo(() => getEmptyRootContext.getEmptyRootContext(), []);
330
+ const context = floatingRootContext || fallbackContext;
331
+ const interactionsEnabled = positionerElement ? true : !value;
332
+ const hoverInteractionsEnabled = positionerElement || viewportElement ? true : !value;
333
+ safePolygon.useHoverFloatingInteraction(context, {
334
+ enabled: Boolean(floatingRootContext) && hoverInteractionsEnabled,
335
+ closeDelay
336
+ });
337
+ const dismiss = popupStateMapping.useDismiss(context, {
338
+ enabled: interactionsEnabled,
339
+ outsidePressEvent: "intentional",
340
+ outsidePress(event2) {
341
+ const target = element.getTarget(event2);
342
+ const closestNavigationMenuTrigger = target == null ? void 0 : target.closest(`[${NAVIGATION_MENU_TRIGGER_IDENTIFIER}]`);
343
+ return closestNavigationMenuTrigger === null;
344
+ }
345
+ });
346
+ const dismissProps = floatingRootContext ? dismiss : void 0;
347
+ const state = {
348
+ open
349
+ };
350
+ const defaultProps = nested ? {
351
+ "aria-orientation": orientation
352
+ } : {
353
+ onKeyDown(event2) {
354
+ const shouldStop = orientation === "horizontal" && (event2.key === "ArrowLeft" || event2.key === "ArrowRight") || orientation === "vertical" && (event2.key === "ArrowUp" || event2.key === "ArrowDown");
355
+ if (shouldStop) {
356
+ event2.stopPropagation();
357
+ }
358
+ }
359
+ };
360
+ const props = [(dismissProps == null ? void 0 : dismissProps.floating) || useRenderElement.EMPTY_OBJECT, defaultProps, elementProps];
361
+ const element$1 = useRenderElement.useRenderElement("ul", componentProps, {
362
+ state,
363
+ ref: forwardedRef,
364
+ props,
365
+ enabled: nested
366
+ });
367
+ if (nested) {
368
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuDismissContext.Provider, {
369
+ value: dismissProps,
370
+ children: element$1
371
+ });
372
+ }
373
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuDismissContext.Provider, {
374
+ value: dismissProps,
375
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(CompositeRoot.CompositeRoot, {
376
+ render,
377
+ className,
378
+ state,
379
+ refs: [forwardedRef],
380
+ props,
381
+ loopFocus: false,
382
+ orientation,
383
+ tag: "ul"
384
+ })
385
+ });
386
+ });
387
+ if (process.env.NODE_ENV !== "production") NavigationMenuList$1.displayName = "NavigationMenuList";
388
+ const NavigationMenuItemContext = /* @__PURE__ */ React__namespace.createContext(void 0);
389
+ if (process.env.NODE_ENV !== "production") NavigationMenuItemContext.displayName = "NavigationMenuItemContext";
390
+ function useNavigationMenuItemContext() {
391
+ const value = React__namespace.useContext(NavigationMenuItemContext);
392
+ if (!value) {
393
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: NavigationMenuItem parts must be used within a <NavigationMenu.Item>." : useRenderElement.formatErrorMessage(39));
394
+ }
395
+ return value;
396
+ }
397
+ const NavigationMenuItem$1 = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuItem(componentProps, forwardedRef) {
398
+ const {
399
+ className,
400
+ render,
401
+ value: valueProp,
402
+ ...elementProps
403
+ } = componentProps;
404
+ const fallbackValue = useBaseUiId.useBaseUiId();
405
+ const value = valueProp ?? fallbackValue;
406
+ const element2 = useRenderElement.useRenderElement("li", componentProps, {
407
+ ref: forwardedRef,
408
+ props: elementProps
409
+ });
410
+ const contextValue = React__namespace.useMemo(() => ({
411
+ value
412
+ }), [value]);
413
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuItemContext.Provider, {
414
+ value: contextValue,
415
+ children: element2
416
+ });
417
+ });
418
+ if (process.env.NODE_ENV !== "production") NavigationMenuItem$1.displayName = "NavigationMenuItem";
419
+ const stateAttributesMapping$1 = {
420
+ ...popupStateMapping.popupStateMapping,
421
+ ...useOpenChangeComplete.transitionStatusMapping,
422
+ activationDirection(value) {
423
+ if (!value) {
424
+ return null;
425
+ }
426
+ return {
427
+ "data-activation-direction": value
428
+ };
429
+ }
430
+ };
431
+ const NavigationMenuContent$1 = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuContent(componentProps, forwardedRef) {
432
+ const {
433
+ className,
434
+ render,
435
+ keepMounted = false,
436
+ ...elementProps
437
+ } = componentProps;
438
+ const {
439
+ mounted: popupMounted,
440
+ viewportElement,
441
+ value,
442
+ activationDirection,
443
+ currentContentRef,
444
+ viewportTargetElement
445
+ } = useNavigationMenuRootContext();
446
+ const {
447
+ value: itemValue
448
+ } = useNavigationMenuItemContext();
449
+ const nodeId = useNavigationMenuTreeContext();
450
+ const open = popupMounted && value === itemValue;
451
+ const ref = React__namespace.useRef(null);
452
+ const [hasMountedInPortal, setHasMountedInPortal] = React__namespace.useState(false);
453
+ const [focusInside, setFocusInside] = React__namespace.useState(false);
454
+ const {
455
+ mounted,
456
+ setMounted,
457
+ transitionStatus
458
+ } = useOpenChangeComplete.useTransitionStatus(open);
459
+ if (mounted && !popupMounted) {
460
+ setMounted(false);
461
+ }
462
+ useOpenChangeComplete.useOpenChangeComplete({
463
+ ref,
464
+ open,
465
+ onComplete() {
466
+ if (!open) {
467
+ setMounted(false);
468
+ }
469
+ }
470
+ });
471
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
472
+ if (open && ref.current) {
473
+ currentContentRef.current = ref.current;
474
+ }
475
+ }, [open, currentContentRef]);
476
+ const state = {
477
+ open,
478
+ transitionStatus,
479
+ activationDirection
480
+ };
481
+ const handleCurrentContentRef = React__namespace.useCallback((node) => {
482
+ if (node) {
483
+ currentContentRef.current = node;
484
+ }
485
+ }, [currentContentRef]);
486
+ const commonProps = {
487
+ onFocus(event2) {
488
+ const target = element.getTarget(event2.nativeEvent);
489
+ if (target == null ? void 0 : target.hasAttribute("data-base-ui-focus-guard")) {
490
+ return;
491
+ }
492
+ setFocusInside(true);
493
+ },
494
+ onBlur(event2) {
495
+ if (!element.contains(event2.currentTarget, event2.relatedTarget)) {
496
+ setFocusInside(false);
497
+ }
498
+ }
499
+ };
500
+ const defaultProps = !open && mounted ? {
501
+ style: {
502
+ position: "absolute",
503
+ top: 0,
504
+ left: 0
505
+ },
506
+ inert: inertValue.inertValue(!focusInside),
507
+ ...commonProps
508
+ } : commonProps;
509
+ const portalContainer = viewportTargetElement || viewportElement;
510
+ const hidden = keepMounted && !mounted;
511
+ const shouldRenderInline = keepMounted && !portalContainer && !hasMountedInPortal;
512
+ if (keepMounted && portalContainer && !hasMountedInPortal) {
513
+ setHasMountedInPortal(true);
514
+ }
515
+ if (shouldRenderInline) {
516
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(CompositeRoot.CompositeRoot, {
517
+ render,
518
+ className,
519
+ state,
520
+ refs: [forwardedRef],
521
+ props: [defaultProps, {
522
+ hidden: true
523
+ }, elementProps],
524
+ stateAttributesMapping: stateAttributesMapping$1
525
+ });
526
+ }
527
+ if (!portalContainer || !mounted && !keepMounted) {
528
+ return null;
529
+ }
530
+ return /* @__PURE__ */ ReactDOM__namespace.createPortal(/* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FloatingNode, {
531
+ id: nodeId,
532
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(CompositeRoot.CompositeRoot, {
533
+ render,
534
+ className,
535
+ state,
536
+ refs: [forwardedRef, ref, handleCurrentContentRef],
537
+ props: [defaultProps, hidden ? {
538
+ hidden: true
539
+ } : useRenderElement.EMPTY_OBJECT, elementProps],
540
+ stateAttributesMapping: stateAttributesMapping$1
541
+ })
542
+ }), portalContainer);
543
+ });
544
+ if (process.env.NODE_ENV !== "production") NavigationMenuContent$1.displayName = "NavigationMenuContent";
545
+ function isOutsideMenuEvent({
546
+ currentTarget,
547
+ relatedTarget
548
+ }, params) {
549
+ const {
550
+ popupElement,
551
+ viewportElement,
552
+ rootRef,
553
+ tree,
554
+ nodeId
555
+ } = params;
556
+ const nodeChildrenContains = tree ? popupStateMapping.getNodeChildren(tree.nodesRef.current, nodeId).some((node) => {
557
+ var _a;
558
+ return element.contains((_a = node.context) == null ? void 0 : _a.elements.floating, relatedTarget);
559
+ }) : [];
560
+ if (!popupElement) {
561
+ return !element.contains(rootRef.current, relatedTarget) && !nodeChildrenContains;
562
+ }
563
+ const floatingElement = popupElement || viewportElement;
564
+ return !element.contains(floatingElement, currentTarget) && !element.contains(floatingElement, relatedTarget) && !element.contains(rootRef.current, relatedTarget) && !nodeChildrenContains && !(element.contains(floatingElement, relatedTarget) && (relatedTarget == null ? void 0 : relatedTarget.hasAttribute("data-base-ui-focus-guard")));
565
+ }
566
+ const DEFAULT_SIZE = {
567
+ width: 0,
568
+ height: 0
569
+ };
570
+ const NavigationMenuTrigger$1 = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuTrigger(componentProps, forwardedRef) {
571
+ const {
572
+ className,
573
+ render,
574
+ nativeButton = true,
575
+ disabled,
576
+ ...elementProps
577
+ } = componentProps;
578
+ const {
579
+ value,
580
+ setValue,
581
+ mounted,
582
+ open,
583
+ positionerElement,
584
+ setActivationDirection,
585
+ setFloatingRootContext,
586
+ popupElement,
587
+ viewportElement,
588
+ transitionStatus,
589
+ rootRef,
590
+ beforeOutsideRef,
591
+ afterOutsideRef,
592
+ afterInsideRef,
593
+ beforeInsideRef,
594
+ prevTriggerElementRef,
595
+ currentContentRef,
596
+ delay,
597
+ closeDelay,
598
+ orientation,
599
+ setViewportInert,
600
+ nested
601
+ } = useNavigationMenuRootContext();
602
+ const {
603
+ value: itemValue
604
+ } = useNavigationMenuItemContext();
605
+ const nodeId = useNavigationMenuTreeContext();
606
+ const tree = popupStateMapping.useFloatingTree();
607
+ const dismissProps = useNavigationMenuDismissContext();
608
+ const stickIfOpenTimeout = useTimeout.useTimeout();
609
+ const focusFrame = useAnimationFrame.useAnimationFrame();
610
+ const mutationFrame = useAnimationFrame.useAnimationFrame();
611
+ const resizeFrame = useAnimationFrame.useAnimationFrame();
612
+ const sizeFrame = useAnimationFrame.useAnimationFrame();
613
+ const [triggerElement, setTriggerElement] = React__namespace.useState(null);
614
+ const [stickIfOpen, setStickIfOpen] = React__namespace.useState(true);
615
+ const [pointerType, setPointerType] = React__namespace.useState("");
616
+ const triggerElementRef = React__namespace.useRef(null);
617
+ const allowFocusRef = React__namespace.useRef(false);
618
+ const prevSizeRef = React__namespace.useRef(DEFAULT_SIZE);
619
+ const animationAbortControllerRef = React__namespace.useRef(null);
620
+ const skipAutoSizeSyncRef = React__namespace.useRef(false);
621
+ const isActiveItem = open && value === itemValue;
622
+ const isActiveItemRef = useValueAsRef.useValueAsRef(isActiveItem);
623
+ const interactionsEnabled = positionerElement ? true : !value;
624
+ const hoverFloatingElement = positionerElement || viewportElement;
625
+ const hoverInteractionsEnabled = hoverFloatingElement ? true : !value;
626
+ const runOnceAnimationsFinish = useOpenChangeComplete.useAnimationsFinished(popupElement, false, false);
627
+ const handleTriggerElement = React__namespace.useCallback((element2) => {
628
+ triggerElementRef.current = element2;
629
+ setTriggerElement(element2);
630
+ }, []);
631
+ React__namespace.useEffect(() => {
632
+ var _a;
633
+ (_a = animationAbortControllerRef.current) == null ? void 0 : _a.abort();
634
+ }, [isActiveItem]);
635
+ function setAutoSizes() {
636
+ if (!popupElement) {
637
+ return;
638
+ }
639
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupWidth, "auto");
640
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupHeight, "auto");
641
+ }
642
+ function clearFixedSizes() {
643
+ if (!popupElement || !positionerElement) {
644
+ return;
645
+ }
646
+ popupElement.style.removeProperty(NavigationMenuPopupCssVars.popupWidth);
647
+ popupElement.style.removeProperty(NavigationMenuPopupCssVars.popupHeight);
648
+ positionerElement.style.removeProperty(NavigationMenuPositionerCssVars.positionerWidth);
649
+ positionerElement.style.removeProperty(NavigationMenuPositionerCssVars.positionerHeight);
650
+ }
651
+ function setSharedFixedSizes(width, height) {
652
+ if (!popupElement || !positionerElement) {
653
+ return;
654
+ }
655
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupWidth, `${width}px`);
656
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupHeight, `${height}px`);
657
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerWidth, `${width}px`);
658
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerHeight, `${height}px`);
659
+ }
660
+ function scheduleAutoSizeReset() {
661
+ animationAbortControllerRef.current = new AbortController();
662
+ runOnceAnimationsFinish(setAutoSizes, animationAbortControllerRef.current.signal);
663
+ }
664
+ const handleValueChange = useStableCallback.useStableCallback((currentWidth, currentHeight, options = {}) => {
665
+ if (!popupElement || !positionerElement) {
666
+ return;
667
+ }
668
+ const {
669
+ syncPositioner = false
670
+ } = options;
671
+ clearFixedSizes();
672
+ const {
673
+ width,
674
+ height
675
+ } = getCssDimensions(popupElement);
676
+ const measuredWidth = width || prevSizeRef.current.width;
677
+ const measuredHeight = height || prevSizeRef.current.height;
678
+ if (currentHeight === 0 || currentWidth === 0) {
679
+ currentWidth = measuredWidth;
680
+ currentHeight = measuredHeight;
681
+ }
682
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupWidth, `${currentWidth}px`);
683
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupHeight, `${currentHeight}px`);
684
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerWidth, `${syncPositioner ? currentWidth : measuredWidth}px`);
685
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerHeight, `${syncPositioner ? currentHeight : measuredHeight}px`);
686
+ sizeFrame.request(() => {
687
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupWidth, `${measuredWidth}px`);
688
+ popupElement.style.setProperty(NavigationMenuPopupCssVars.popupHeight, `${measuredHeight}px`);
689
+ if (syncPositioner) {
690
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerWidth, `${measuredWidth}px`);
691
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerHeight, `${measuredHeight}px`);
692
+ }
693
+ scheduleAutoSizeReset();
694
+ });
695
+ });
696
+ const handleInterruptedMutationResize = useStableCallback.useStableCallback((currentWidth, currentHeight) => {
697
+ var _a;
698
+ if (!popupElement || !positionerElement) {
699
+ return;
700
+ }
701
+ sizeFrame.cancel();
702
+ mutationFrame.cancel();
703
+ (_a = animationAbortControllerRef.current) == null ? void 0 : _a.abort();
704
+ animationAbortControllerRef.current = null;
705
+ if (currentWidth === 0 || currentHeight === 0) {
706
+ return;
707
+ }
708
+ setSharedFixedSizes(currentWidth, currentHeight);
709
+ mutationFrame.request(() => {
710
+ mutationFrame.request(() => {
711
+ clearFixedSizes();
712
+ const {
713
+ width,
714
+ height
715
+ } = getCssDimensions(popupElement);
716
+ const measuredWidth = width || currentWidth || prevSizeRef.current.width;
717
+ const measuredHeight = height || currentHeight || prevSizeRef.current.height;
718
+ setSharedFixedSizes(currentWidth, currentHeight);
719
+ sizeFrame.request(() => {
720
+ setSharedFixedSizes(measuredWidth, measuredHeight);
721
+ scheduleAutoSizeReset();
722
+ });
723
+ });
724
+ });
725
+ });
726
+ const syncCurrentSize = useStableCallback.useStableCallback(() => {
727
+ var _a;
728
+ if (!popupElement || !positionerElement) {
729
+ return;
730
+ }
731
+ sizeFrame.cancel();
732
+ (_a = animationAbortControllerRef.current) == null ? void 0 : _a.abort();
733
+ animationAbortControllerRef.current = null;
734
+ clearFixedSizes();
735
+ const {
736
+ width,
737
+ height
738
+ } = getCssDimensions(popupElement);
739
+ if (width === 0 || height === 0) {
740
+ return;
741
+ }
742
+ prevSizeRef.current = {
743
+ width,
744
+ height
745
+ };
746
+ setAutoSizes();
747
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerWidth, `${width}px`);
748
+ positionerElement.style.setProperty(NavigationMenuPositionerCssVars.positionerHeight, `${height}px`);
749
+ });
750
+ const getMutationBaseline = useStableCallback.useStableCallback(() => {
751
+ if (!popupElement) {
752
+ return {
753
+ size: prevSizeRef.current,
754
+ syncPositioner: false
755
+ };
756
+ }
757
+ const popupWidth = popupElement.style.getPropertyValue(NavigationMenuPopupCssVars.popupWidth);
758
+ const popupHeight = popupElement.style.getPropertyValue(NavigationMenuPopupCssVars.popupHeight);
759
+ const isResizing = popupWidth !== "" && popupWidth !== "auto" && popupHeight !== "" && popupHeight !== "auto";
760
+ if (!isResizing) {
761
+ return {
762
+ size: prevSizeRef.current,
763
+ syncPositioner: false
764
+ };
765
+ }
766
+ return {
767
+ size: {
768
+ width: popupElement.offsetWidth || prevSizeRef.current.width,
769
+ height: popupElement.offsetHeight || prevSizeRef.current.height
770
+ },
771
+ syncPositioner: true
772
+ };
773
+ });
774
+ React__namespace.useEffect(() => {
775
+ var _a;
776
+ if (!open) {
777
+ stickIfOpenTimeout.clear();
778
+ mutationFrame.cancel();
779
+ resizeFrame.cancel();
780
+ sizeFrame.cancel();
781
+ (_a = animationAbortControllerRef.current) == null ? void 0 : _a.abort();
782
+ animationAbortControllerRef.current = null;
783
+ skipAutoSizeSyncRef.current = false;
784
+ setPointerType("");
785
+ }
786
+ }, [stickIfOpenTimeout, open, mutationFrame, resizeFrame, sizeFrame]);
787
+ React__namespace.useEffect(() => {
788
+ if (!mounted) {
789
+ prevSizeRef.current = DEFAULT_SIZE;
790
+ }
791
+ }, [mounted]);
792
+ React__namespace.useEffect(() => {
793
+ if (!popupElement || typeof ResizeObserver !== "function") {
794
+ return void 0;
795
+ }
796
+ const resizeObserver = new ResizeObserver(() => {
797
+ prevSizeRef.current = {
798
+ width: popupElement.offsetWidth,
799
+ height: popupElement.offsetHeight
800
+ };
801
+ });
802
+ resizeObserver.observe(popupElement);
803
+ return () => {
804
+ resizeObserver.disconnect();
805
+ };
806
+ }, [popupElement]);
807
+ React__namespace.useEffect(() => {
808
+ if (!open || !isActiveItem || !popupElement || !positionerElement) {
809
+ return void 0;
810
+ }
811
+ const win = floatingUi_utils_dom.getWindow(positionerElement);
812
+ function handleResize() {
813
+ resizeFrame.cancel();
814
+ resizeFrame.request(syncCurrentSize);
815
+ }
816
+ win.addEventListener("resize", handleResize);
817
+ return () => {
818
+ resizeFrame.cancel();
819
+ win.removeEventListener("resize", handleResize);
820
+ };
821
+ }, [open, isActiveItem, popupElement, positionerElement, resizeFrame, syncCurrentSize]);
822
+ React__namespace.useEffect(() => {
823
+ const observedElement = currentContentRef.current;
824
+ if (!observedElement || !popupElement || !isActiveItem || typeof MutationObserver !== "function") {
825
+ return void 0;
826
+ }
827
+ const mutationObserver = new MutationObserver(() => {
828
+ if (transitionStatus === "starting" || popupElement.hasAttribute(useOpenChangeComplete.TransitionStatusDataAttributes.startingStyle)) {
829
+ syncCurrentSize();
830
+ return;
831
+ }
832
+ const {
833
+ size,
834
+ syncPositioner
835
+ } = getMutationBaseline();
836
+ if (syncPositioner) {
837
+ handleInterruptedMutationResize(size.width, size.height);
838
+ return;
839
+ }
840
+ handleValueChange(size.width, size.height);
841
+ });
842
+ mutationObserver.observe(observedElement, {
843
+ childList: true,
844
+ subtree: true,
845
+ characterData: true
846
+ });
847
+ return () => {
848
+ mutationObserver.disconnect();
849
+ };
850
+ }, [currentContentRef, popupElement, isActiveItem, transitionStatus, getMutationBaseline, handleInterruptedMutationResize, handleValueChange, syncCurrentSize]);
851
+ React__namespace.useEffect(() => {
852
+ if (isActiveItem && open && popupElement && allowFocusRef.current) {
853
+ allowFocusRef.current = false;
854
+ focusFrame.request(() => {
855
+ var _a;
856
+ (_a = beforeOutsideRef.current) == null ? void 0 : _a.focus();
857
+ });
858
+ }
859
+ return () => {
860
+ focusFrame.cancel();
861
+ };
862
+ }, [beforeOutsideRef, focusFrame, isActiveItem, open, popupElement]);
863
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
864
+ var _a;
865
+ if (isActiveItemRef.current && open && popupElement) {
866
+ if (transitionStatus === "starting") {
867
+ const hasNestedMenu = ((_a = currentContentRef.current) == null ? void 0 : _a.querySelector("[data-nested]")) != null;
868
+ if (hasNestedMenu) {
869
+ sizeFrame.request(syncCurrentSize);
870
+ return () => {
871
+ sizeFrame.cancel();
872
+ };
873
+ }
874
+ }
875
+ if (skipAutoSizeSyncRef.current) {
876
+ skipAutoSizeSyncRef.current = false;
877
+ return void 0;
878
+ }
879
+ handleValueChange(0, 0);
880
+ }
881
+ return void 0;
882
+ }, [currentContentRef, handleValueChange, isActiveItemRef, open, popupElement, sizeFrame, syncCurrentSize, transitionStatus]);
883
+ function handleOpenChange(nextOpen, eventDetails) {
884
+ const isHover = eventDetails.reason === createBaseUIEventDetails.triggerHover;
885
+ if (!interactionsEnabled) {
886
+ return;
887
+ }
888
+ if (pointerType === "touch" && isHover) {
889
+ return;
890
+ }
891
+ if (!nextOpen && value !== itemValue) {
892
+ return;
893
+ }
894
+ function changeState() {
895
+ if (isHover) {
896
+ setStickIfOpen(true);
897
+ stickIfOpenTimeout.clear();
898
+ stickIfOpenTimeout.start(popupStateMapping.PATIENT_CLICK_THRESHOLD, () => {
899
+ setStickIfOpen(false);
900
+ });
901
+ }
902
+ if (nextOpen) {
903
+ setValue(itemValue, eventDetails);
904
+ } else {
905
+ setValue(null, eventDetails);
906
+ setPointerType("");
907
+ }
908
+ }
909
+ if (isHover) {
910
+ ReactDOM__namespace.flushSync(changeState);
911
+ } else {
912
+ changeState();
913
+ }
914
+ }
915
+ const context = useAnchorPositioning.useFloatingRootContext({
916
+ open,
917
+ onOpenChange: handleOpenChange,
918
+ elements: {
919
+ reference: triggerElement,
920
+ floating: hoverFloatingElement
921
+ }
922
+ });
923
+ const hoverInteractionState = safePolygon.useHoverInteractionSharedState(context);
924
+ React__namespace.useEffect(() => {
925
+ if (!open) {
926
+ context.context.dataRef.current.openEvent = void 0;
927
+ hoverInteractionState.pointerType = void 0;
928
+ hoverInteractionState.interactedInside = false;
929
+ hoverInteractionState.restTimeoutPending = false;
930
+ hoverInteractionState.openChangeTimeout.clear();
931
+ hoverInteractionState.restTimeout.clear();
932
+ safePolygon.clearSafePolygonPointerEventsMutation(hoverInteractionState);
933
+ }
934
+ }, [context, hoverInteractionState, open]);
935
+ const getInlineHandleCloseContext = useStableCallback.useStableCallback(() => {
936
+ if (!nested || positionerElement || !triggerElementRef.current || !hoverFloatingElement) {
937
+ return null;
938
+ }
939
+ return getHandleCloseContext(triggerElementRef.current, hoverFloatingElement, nodeId);
940
+ });
941
+ function getScope() {
942
+ var _a;
943
+ return ((_a = triggerElementRef.current) == null ? void 0 : _a.closest("ul")) ?? null;
944
+ }
945
+ const hoverProps = safePolygon.useHoverReferenceInteraction(context, {
946
+ enabled: hoverInteractionsEnabled,
947
+ move: false,
948
+ handleClose: safePolygon.safePolygon({
949
+ blockPointerEvents: pointerType !== "touch" && (!detectBrowser.isWebKit || nested)
950
+ }),
951
+ restMs: mounted && positionerElement ? 0 : delay,
952
+ delay: {
953
+ close: closeDelay
954
+ },
955
+ triggerElementRef,
956
+ getHandleCloseContext: getInlineHandleCloseContext
957
+ });
958
+ const hover = React__namespace.useMemo(() => hoverProps ? {
959
+ reference: hoverProps
960
+ } : void 0, [hoverProps]);
961
+ const click = useClick.useClick(context, {
962
+ enabled: interactionsEnabled,
963
+ stickIfOpen,
964
+ toggle: isActiveItem
965
+ });
966
+ const {
967
+ getReferenceProps
968
+ } = popupStateMapping.useInteractions([hover, click]);
969
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
970
+ if (isActiveItem) {
971
+ setFloatingRootContext(context);
972
+ prevTriggerElementRef.current = triggerElement;
973
+ }
974
+ }, [isActiveItem, context, setFloatingRootContext, prevTriggerElementRef, triggerElement]);
975
+ function handleActivation(event2) {
976
+ ReactDOM__namespace.flushSync(() => {
977
+ var _a;
978
+ const prevTriggerRect = (_a = prevTriggerElementRef.current) == null ? void 0 : _a.getBoundingClientRect();
979
+ if (mounted && prevTriggerRect && triggerElement) {
980
+ const nextTriggerRect = triggerElement.getBoundingClientRect();
981
+ const isMovingRight = nextTriggerRect.left > prevTriggerRect.left;
982
+ const isMovingDown = nextTriggerRect.top > prevTriggerRect.top;
983
+ if (orientation === "horizontal" && nextTriggerRect.left !== prevTriggerRect.left) {
984
+ setActivationDirection(isMovingRight ? "right" : "left");
985
+ } else if (orientation === "vertical" && nextTriggerRect.top !== prevTriggerRect.top) {
986
+ setActivationDirection(isMovingDown ? "down" : "up");
987
+ }
988
+ }
989
+ if (event2.type !== "click" && value != null) {
990
+ context.context.dataRef.current.openEvent = void 0;
991
+ }
992
+ if (pointerType === "touch" && event2.type !== "click") {
993
+ return;
994
+ }
995
+ if (value != null) {
996
+ setValue(itemValue, createBaseUIEventDetails.createChangeEventDetails(event2.type === "mouseenter" ? createBaseUIEventDetails.triggerHover : createBaseUIEventDetails.triggerPress, event2.nativeEvent));
997
+ }
998
+ if (event2.type === "mouseenter" && nested && !positionerElement && pointerType !== "touch" && hoverFloatingElement && floatingUi_utils_dom.isHTMLElement(event2.currentTarget)) {
999
+ const scopeElement = getScope();
1000
+ if (!scopeElement) {
1001
+ return;
1002
+ }
1003
+ safePolygon.applySafePolygonPointerEventsMutation(hoverInteractionState, {
1004
+ scopeElement,
1005
+ referenceElement: event2.currentTarget,
1006
+ floatingElement: hoverFloatingElement
1007
+ });
1008
+ }
1009
+ });
1010
+ }
1011
+ const handleOpenEvent = useStableCallback.useStableCallback((event2) => {
1012
+ if (!popupElement || !positionerElement) {
1013
+ handleActivation(event2);
1014
+ return;
1015
+ }
1016
+ const {
1017
+ width,
1018
+ height
1019
+ } = getCssDimensions(popupElement);
1020
+ const shouldSkipAutoSizeSync = value != null && value !== itemValue && (event2.type === "click" || pointerType !== "touch");
1021
+ handleActivation(event2);
1022
+ if (shouldSkipAutoSizeSync) {
1023
+ skipAutoSizeSyncRef.current = true;
1024
+ }
1025
+ handleValueChange(width, height);
1026
+ });
1027
+ const state = {
1028
+ open: isActiveItem
1029
+ };
1030
+ function handleSetPointerType(event2) {
1031
+ setPointerType(event2.pointerType);
1032
+ }
1033
+ const defaultProps = {
1034
+ tabIndex: 0,
1035
+ onMouseEnter: handleOpenEvent,
1036
+ onClick: handleOpenEvent,
1037
+ onPointerEnter: handleSetPointerType,
1038
+ onPointerDown: handleSetPointerType,
1039
+ "aria-expanded": isActiveItem,
1040
+ "aria-controls": isActiveItem ? popupElement == null ? void 0 : popupElement.id : void 0,
1041
+ [NAVIGATION_MENU_TRIGGER_IDENTIFIER]: "",
1042
+ onFocus() {
1043
+ if (!isActiveItem) {
1044
+ return;
1045
+ }
1046
+ setViewportInert(false);
1047
+ },
1048
+ onMouseMove() {
1049
+ allowFocusRef.current = false;
1050
+ },
1051
+ onKeyDown(event$1) {
1052
+ allowFocusRef.current = true;
1053
+ if (nested) {
1054
+ return;
1055
+ }
1056
+ const openHorizontal = orientation === "horizontal" && event$1.key === "ArrowDown";
1057
+ const openVertical = orientation === "vertical" && event$1.key === "ArrowRight";
1058
+ if (openHorizontal || openVertical) {
1059
+ setValue(itemValue, createBaseUIEventDetails.createChangeEventDetails(createBaseUIEventDetails.listNavigation, event$1.nativeEvent));
1060
+ handleOpenEvent(event$1);
1061
+ event.stopEvent(event$1);
1062
+ }
1063
+ },
1064
+ onBlur(event2) {
1065
+ if (positionerElement && popupElement && isOutsideMenuEvent({
1066
+ currentTarget: event2.currentTarget,
1067
+ relatedTarget: event2.relatedTarget
1068
+ }, {
1069
+ popupElement,
1070
+ rootRef,
1071
+ tree,
1072
+ nodeId
1073
+ })) {
1074
+ setValue(null, createBaseUIEventDetails.createChangeEventDetails(createBaseUIEventDetails.focusOut, event2.nativeEvent));
1075
+ }
1076
+ }
1077
+ };
1078
+ const {
1079
+ getButtonProps,
1080
+ buttonRef
1081
+ } = useButton.useButton({
1082
+ disabled,
1083
+ focusableWhenDisabled: true,
1084
+ native: nativeButton
1085
+ });
1086
+ const referenceElement = hoverFloatingElement;
1087
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(React__namespace.Fragment, {
1088
+ children: [/* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(CompositeItem.CompositeItem, {
1089
+ tag: "button",
1090
+ render,
1091
+ className,
1092
+ state,
1093
+ stateAttributesMapping: popupStateMapping.pressableTriggerOpenStateMapping,
1094
+ refs: [forwardedRef, handleTriggerElement, buttonRef],
1095
+ props: [getReferenceProps, (dismissProps == null ? void 0 : dismissProps.reference) || useRenderElement.EMPTY_ARRAY, defaultProps, elementProps, getButtonProps]
1096
+ }), isActiveItem && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(React__namespace.Fragment, {
1097
+ children: [/* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FocusGuard, {
1098
+ ref: beforeOutsideRef,
1099
+ onFocus: (event2) => {
1100
+ var _a;
1101
+ if (referenceElement && popupStateMapping.isOutsideEvent(event2, referenceElement)) {
1102
+ (_a = beforeInsideRef.current) == null ? void 0 : _a.focus();
1103
+ } else {
1104
+ const prevTabbable = popupStateMapping.getPreviousTabbable(triggerElement);
1105
+ prevTabbable == null ? void 0 : prevTabbable.focus();
1106
+ }
1107
+ }
1108
+ }), /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", {
1109
+ "aria-owns": viewportElement == null ? void 0 : viewportElement.id,
1110
+ style: popupStateMapping.ownerVisuallyHidden
1111
+ }), /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FocusGuard, {
1112
+ ref: afterOutsideRef,
1113
+ onFocus: (event2) => {
1114
+ if (referenceElement && popupStateMapping.isOutsideEvent(event2, referenceElement)) {
1115
+ const elementToFocus = afterInsideRef.current && popupStateMapping.isTabbable(afterInsideRef.current) ? afterInsideRef.current : triggerElement;
1116
+ elementToFocus == null ? void 0 : elementToFocus.focus();
1117
+ } else {
1118
+ let nextTabbable = popupStateMapping.getNextTabbable(triggerElement);
1119
+ if (nested && !positionerElement && referenceElement && nextTabbable && element.contains(referenceElement, nextTabbable)) {
1120
+ nextTabbable = popupStateMapping.getTabbableAfterElement(afterInsideRef.current);
1121
+ }
1122
+ nextTabbable == null ? void 0 : nextTabbable.focus();
1123
+ if ((!nested || positionerElement) && !element.contains(rootRef.current, nextTabbable)) {
1124
+ setValue(null, createBaseUIEventDetails.createChangeEventDetails(createBaseUIEventDetails.focusOut, event2.nativeEvent));
1125
+ }
1126
+ }
1127
+ }
1128
+ })]
1129
+ })]
1130
+ });
1131
+ });
1132
+ if (process.env.NODE_ENV !== "production") NavigationMenuTrigger$1.displayName = "NavigationMenuTrigger";
1133
+ function getPlacementFromElements(domReferenceElement, floatingElement) {
1134
+ const referenceRect = domReferenceElement.getBoundingClientRect();
1135
+ const floatingRect = floatingElement.getBoundingClientRect();
1136
+ const referenceCenterX = referenceRect.left + referenceRect.width / 2;
1137
+ const referenceCenterY = referenceRect.top + referenceRect.height / 2;
1138
+ const floatingCenterX = floatingRect.left + floatingRect.width / 2;
1139
+ const floatingCenterY = floatingRect.top + floatingRect.height / 2;
1140
+ const deltaX = floatingCenterX - referenceCenterX;
1141
+ const deltaY = floatingCenterY - referenceCenterY;
1142
+ if (Math.abs(deltaX) >= Math.abs(deltaY)) {
1143
+ return deltaX >= 0 ? "right" : "left";
1144
+ }
1145
+ return deltaY >= 0 ? "bottom" : "top";
1146
+ }
1147
+ function getHandleCloseContext(domReferenceElement, floatingElement, nodeId) {
1148
+ return {
1149
+ placement: getPlacementFromElements(domReferenceElement, floatingElement),
1150
+ elements: {
1151
+ domReference: domReferenceElement,
1152
+ floating: floatingElement
1153
+ },
1154
+ nodeId
1155
+ };
1156
+ }
1157
+ const NavigationMenuPortalContext = /* @__PURE__ */ React__namespace.createContext(void 0);
1158
+ if (process.env.NODE_ENV !== "production") NavigationMenuPortalContext.displayName = "NavigationMenuPortalContext";
1159
+ function useNavigationMenuPortalContext() {
1160
+ const value = React__namespace.useContext(NavigationMenuPortalContext);
1161
+ if (value === void 0) {
1162
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <NavigationMenu.Portal> is missing." : useRenderElement.formatErrorMessage(40));
1163
+ }
1164
+ return value;
1165
+ }
1166
+ const NavigationMenuPortal = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuPortal2(props, forwardedRef) {
1167
+ const {
1168
+ keepMounted = false,
1169
+ ...portalProps
1170
+ } = props;
1171
+ const {
1172
+ mounted
1173
+ } = useNavigationMenuRootContext();
1174
+ const shouldRender = mounted || keepMounted;
1175
+ if (!shouldRender) {
1176
+ return null;
1177
+ }
1178
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuPortalContext.Provider, {
1179
+ value: keepMounted,
1180
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FloatingPortal, {
1181
+ ref: forwardedRef,
1182
+ ...portalProps
1183
+ })
1184
+ });
1185
+ });
1186
+ if (process.env.NODE_ENV !== "production") NavigationMenuPortal.displayName = "NavigationMenuPortal";
1187
+ const NavigationMenuPositionerContext = /* @__PURE__ */ React__namespace.createContext(void 0);
1188
+ if (process.env.NODE_ENV !== "production") NavigationMenuPositionerContext.displayName = "NavigationMenuPositionerContext";
1189
+ function useNavigationMenuPositionerContext(optional = false) {
1190
+ const context = React__namespace.useContext(NavigationMenuPositionerContext);
1191
+ if (!context && !optional) {
1192
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: NavigationMenuPositionerContext is missing. NavigationMenuPositioner parts must be placed within <NavigationMenu.Positioner>." : useRenderElement.formatErrorMessage(42));
1193
+ }
1194
+ return context;
1195
+ }
1196
+ const EMPTY_ROOT_CONTEXT$1 = getEmptyRootContext.getEmptyRootContext();
1197
+ const NavigationMenuPositioner$1 = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuPositioner(componentProps, forwardedRef) {
1198
+ const {
1199
+ open,
1200
+ mounted,
1201
+ positionerElement,
1202
+ setPositionerElement,
1203
+ floatingRootContext,
1204
+ nested,
1205
+ transitionStatus
1206
+ } = useNavigationMenuRootContext();
1207
+ const {
1208
+ className,
1209
+ render,
1210
+ anchor,
1211
+ positionMethod = "absolute",
1212
+ side = "bottom",
1213
+ align = "center",
1214
+ sideOffset = 0,
1215
+ alignOffset = 0,
1216
+ collisionBoundary = "clipping-ancestors",
1217
+ collisionPadding = 5,
1218
+ collisionAvoidance = nested ? popupStateMapping.POPUP_COLLISION_AVOIDANCE : popupStateMapping.DROPDOWN_COLLISION_AVOIDANCE,
1219
+ arrowPadding = 5,
1220
+ sticky = false,
1221
+ disableAnchorTracking = false,
1222
+ ...elementProps
1223
+ } = componentProps;
1224
+ const keepMounted = useNavigationMenuPortalContext();
1225
+ const nodeId = useNavigationMenuTreeContext();
1226
+ const resizeTimeout = useTimeout.useTimeout();
1227
+ const [instant, setInstant] = React__namespace.useState(false);
1228
+ const positionerRef = React__namespace.useRef(null);
1229
+ const prevTriggerElementRef = React__namespace.useRef(null);
1230
+ React__namespace.useEffect(() => {
1231
+ if (!positionerElement) {
1232
+ return void 0;
1233
+ }
1234
+ function onFocus(event2) {
1235
+ if (positionerElement && popupStateMapping.isOutsideEvent(event2)) {
1236
+ const focusing = event2.type === "focusin";
1237
+ const manageFocus = focusing ? popupStateMapping.enableFocusInside : popupStateMapping.disableFocusInside;
1238
+ manageFocus(positionerElement);
1239
+ }
1240
+ }
1241
+ positionerElement.addEventListener("focusin", onFocus, true);
1242
+ positionerElement.addEventListener("focusout", onFocus, true);
1243
+ return () => {
1244
+ positionerElement.removeEventListener("focusin", onFocus, true);
1245
+ positionerElement.removeEventListener("focusout", onFocus, true);
1246
+ };
1247
+ }, [positionerElement]);
1248
+ const domReference = (floatingRootContext || EMPTY_ROOT_CONTEXT$1).useState("domReferenceElement");
1249
+ const positioning = useAnchorPositioning.useAnchorPositioning({
1250
+ anchor: anchor ?? domReference ?? prevTriggerElementRef,
1251
+ positionMethod,
1252
+ mounted,
1253
+ side,
1254
+ sideOffset,
1255
+ align,
1256
+ alignOffset,
1257
+ arrowPadding,
1258
+ collisionBoundary,
1259
+ collisionPadding,
1260
+ sticky,
1261
+ disableAnchorTracking,
1262
+ keepMounted,
1263
+ floatingRootContext,
1264
+ collisionAvoidance,
1265
+ nodeId,
1266
+ // Allows the menu to remain anchored without wobbling while its size
1267
+ // and position transition simultaneously when side=top or side=left.
1268
+ adaptiveOrigin: useAnchorPositioning.adaptiveOrigin
1269
+ });
1270
+ const defaultProps = React__namespace.useMemo(() => {
1271
+ const hiddenStyles = {};
1272
+ if (!open) {
1273
+ hiddenStyles.pointerEvents = "none";
1274
+ }
1275
+ return {
1276
+ role: "presentation",
1277
+ hidden: !mounted,
1278
+ style: {
1279
+ ...positioning.positionerStyles,
1280
+ ...hiddenStyles
1281
+ }
1282
+ };
1283
+ }, [open, mounted, positioning.positionerStyles]);
1284
+ const state = {
1285
+ open,
1286
+ side: positioning.side,
1287
+ align: positioning.align,
1288
+ anchorHidden: positioning.anchorHidden,
1289
+ instant
1290
+ };
1291
+ React__namespace.useEffect(() => {
1292
+ if (!open) {
1293
+ return void 0;
1294
+ }
1295
+ function handleResize() {
1296
+ ReactDOM__namespace.flushSync(() => {
1297
+ setInstant(true);
1298
+ });
1299
+ resizeTimeout.start(100, () => {
1300
+ setInstant(false);
1301
+ });
1302
+ }
1303
+ const win = floatingUi_utils_dom.getWindow(positionerElement);
1304
+ win.addEventListener("resize", handleResize);
1305
+ return () => {
1306
+ win.removeEventListener("resize", handleResize);
1307
+ };
1308
+ }, [open, resizeTimeout, positionerElement]);
1309
+ const element2 = useRenderElement.useRenderElement("div", componentProps, {
1310
+ state,
1311
+ ref: [forwardedRef, setPositionerElement, positionerRef],
1312
+ props: [defaultProps, useAnchorPositioning.getDisabledMountTransitionStyles(transitionStatus), elementProps],
1313
+ stateAttributesMapping: popupStateMapping.popupStateMapping
1314
+ });
1315
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuPositionerContext.Provider, {
1316
+ value: positioning,
1317
+ children: element2
1318
+ });
1319
+ });
1320
+ if (process.env.NODE_ENV !== "production") NavigationMenuPositioner$1.displayName = "NavigationMenuPositioner";
1321
+ const EMPTY_ROOT_CONTEXT = getEmptyRootContext.getEmptyRootContext();
1322
+ function Guards({
1323
+ children
1324
+ }) {
1325
+ const {
1326
+ beforeInsideRef,
1327
+ beforeOutsideRef,
1328
+ afterInsideRef,
1329
+ afterOutsideRef,
1330
+ positionerElement,
1331
+ viewportElement,
1332
+ floatingRootContext
1333
+ } = useNavigationMenuRootContext();
1334
+ const hasPositioner = Boolean(useNavigationMenuPositionerContext(true));
1335
+ const referenceElement = positionerElement || viewportElement;
1336
+ if (!floatingRootContext && !hasPositioner) {
1337
+ return children;
1338
+ }
1339
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(React__namespace.Fragment, {
1340
+ children: [/* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FocusGuard, {
1341
+ ref: beforeInsideRef,
1342
+ onFocus: (event2) => {
1343
+ var _a, _b;
1344
+ if (referenceElement && popupStateMapping.isOutsideEvent(event2, referenceElement)) {
1345
+ (_a = popupStateMapping.getNextTabbable(referenceElement)) == null ? void 0 : _a.focus();
1346
+ } else {
1347
+ (_b = beforeOutsideRef.current) == null ? void 0 : _b.focus();
1348
+ }
1349
+ }
1350
+ }), children, /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FocusGuard, {
1351
+ ref: afterInsideRef,
1352
+ onFocus: (event2) => {
1353
+ var _a, _b;
1354
+ if (referenceElement && popupStateMapping.isOutsideEvent(event2, referenceElement)) {
1355
+ (_a = popupStateMapping.getPreviousTabbable(referenceElement)) == null ? void 0 : _a.focus();
1356
+ } else {
1357
+ (_b = afterOutsideRef.current) == null ? void 0 : _b.focus();
1358
+ }
1359
+ }
1360
+ })]
1361
+ });
1362
+ }
1363
+ const NavigationMenuViewport = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuViewport2(componentProps, forwardedRef) {
1364
+ const {
1365
+ className,
1366
+ render,
1367
+ children,
1368
+ id: idProp,
1369
+ ...elementProps
1370
+ } = componentProps;
1371
+ const id = useBaseUiId.useId(idProp);
1372
+ const {
1373
+ setViewportElement,
1374
+ setViewportTargetElement,
1375
+ floatingRootContext,
1376
+ prevTriggerElementRef,
1377
+ viewportInert,
1378
+ setViewportInert
1379
+ } = useNavigationMenuRootContext();
1380
+ const positioning = useNavigationMenuPositionerContext(true);
1381
+ const hasPositioner = Boolean(positioning);
1382
+ const domReference = (floatingRootContext || EMPTY_ROOT_CONTEXT).useState("domReferenceElement");
1383
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
1384
+ if (domReference) {
1385
+ prevTriggerElementRef.current = domReference;
1386
+ }
1387
+ }, [domReference, prevTriggerElementRef]);
1388
+ const element$1 = useRenderElement.useRenderElement("div", componentProps, {
1389
+ ref: [forwardedRef, setViewportElement],
1390
+ props: [{
1391
+ id,
1392
+ onBlur(event2) {
1393
+ const relatedTarget = event2.relatedTarget;
1394
+ const currentTarget = event2.currentTarget;
1395
+ if (relatedTarget && !element.contains(currentTarget, relatedTarget) && relatedTarget !== domReference) {
1396
+ setViewportInert(true);
1397
+ }
1398
+ },
1399
+ ...!hasPositioner && viewportInert && {
1400
+ inert: inertValue.inertValue(true)
1401
+ },
1402
+ children: hasPositioner ? children : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Guards, {
1403
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", {
1404
+ ref: setViewportTargetElement,
1405
+ children
1406
+ })
1407
+ })
1408
+ }, elementProps]
1409
+ });
1410
+ return hasPositioner ? /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Guards, {
1411
+ children: element$1
1412
+ }) : element$1;
1413
+ });
1414
+ if (process.env.NODE_ENV !== "production") NavigationMenuViewport.displayName = "NavigationMenuViewport";
1415
+ const stateAttributesMapping = {
1416
+ ...popupStateMapping.popupStateMapping,
1417
+ ...useOpenChangeComplete.transitionStatusMapping
1418
+ };
1419
+ const NavigationMenuPopup = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuPopup2(componentProps, forwardedRef) {
1420
+ const {
1421
+ className,
1422
+ render,
1423
+ id: idProp,
1424
+ ...elementProps
1425
+ } = componentProps;
1426
+ const {
1427
+ open,
1428
+ transitionStatus,
1429
+ setPopupElement
1430
+ } = useNavigationMenuRootContext();
1431
+ const positioning = useNavigationMenuPositionerContext();
1432
+ const direction = DirectionContext.useDirection();
1433
+ const id = useBaseUiId.useBaseUiId(idProp);
1434
+ const state = {
1435
+ open,
1436
+ transitionStatus,
1437
+ side: positioning.side,
1438
+ align: positioning.align,
1439
+ anchorHidden: positioning.anchorHidden
1440
+ };
1441
+ let isOriginSide = positioning.side === "top";
1442
+ let isPhysicalLeft = positioning.side === "left";
1443
+ if (direction === "rtl") {
1444
+ isOriginSide = isOriginSide || positioning.side === "inline-end";
1445
+ isPhysicalLeft = isPhysicalLeft || positioning.side === "inline-end";
1446
+ } else {
1447
+ isOriginSide = isOriginSide || positioning.side === "inline-start";
1448
+ isPhysicalLeft = isPhysicalLeft || positioning.side === "inline-start";
1449
+ }
1450
+ const element2 = useRenderElement.useRenderElement("nav", componentProps, {
1451
+ state,
1452
+ ref: [forwardedRef, setPopupElement],
1453
+ props: [{
1454
+ id,
1455
+ tabIndex: -1,
1456
+ style: isOriginSide ? {
1457
+ position: "absolute",
1458
+ [positioning.side === "top" ? "bottom" : "top"]: "0",
1459
+ [isPhysicalLeft ? "right" : "left"]: "0"
1460
+ } : {}
1461
+ }, elementProps],
1462
+ stateAttributesMapping
1463
+ });
1464
+ return element2;
1465
+ });
1466
+ if (process.env.NODE_ENV !== "production") NavigationMenuPopup.displayName = "NavigationMenuPopup";
1467
+ const NavigationMenuLink$1 = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuLink(componentProps, forwardedRef) {
1468
+ const {
1469
+ className,
1470
+ render,
1471
+ active = false,
1472
+ closeOnClick = false,
1473
+ ...elementProps
1474
+ } = componentProps;
1475
+ const {
1476
+ setValue,
1477
+ popupElement,
1478
+ positionerElement,
1479
+ rootRef
1480
+ } = useNavigationMenuRootContext();
1481
+ const nodeId = useNavigationMenuTreeContext();
1482
+ const tree = popupStateMapping.useFloatingTree();
1483
+ const state = {
1484
+ active
1485
+ };
1486
+ const defaultProps = {
1487
+ "aria-current": active ? "page" : void 0,
1488
+ tabIndex: void 0,
1489
+ onClick(event2) {
1490
+ if (closeOnClick) {
1491
+ setValue(null, createBaseUIEventDetails.createChangeEventDetails(createBaseUIEventDetails.linkPress, event2.nativeEvent));
1492
+ }
1493
+ },
1494
+ onBlur(event2) {
1495
+ if (positionerElement && popupElement && isOutsideMenuEvent({
1496
+ currentTarget: event2.currentTarget,
1497
+ relatedTarget: event2.relatedTarget
1498
+ }, {
1499
+ popupElement,
1500
+ rootRef,
1501
+ tree,
1502
+ nodeId
1503
+ })) {
1504
+ setValue(null, createBaseUIEventDetails.createChangeEventDetails(createBaseUIEventDetails.focusOut, event2.nativeEvent));
1505
+ }
1506
+ }
1507
+ };
1508
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(CompositeItem.CompositeItem, {
1509
+ tag: "a",
1510
+ render,
1511
+ className,
1512
+ state,
1513
+ refs: [forwardedRef],
1514
+ props: [defaultProps, elementProps]
1515
+ });
1516
+ });
1517
+ if (process.env.NODE_ENV !== "production") NavigationMenuLink$1.displayName = "NavigationMenuLink";
1518
+ const NavigationMenuIcon = /* @__PURE__ */ React__namespace.forwardRef(function NavigationMenuIcon2(componentProps, forwardedRef) {
1519
+ const {
1520
+ className,
1521
+ render,
1522
+ ...elementProps
1523
+ } = componentProps;
1524
+ const {
1525
+ value: itemValue
1526
+ } = useNavigationMenuItemContext();
1527
+ const {
1528
+ open,
1529
+ value
1530
+ } = useNavigationMenuRootContext();
1531
+ const isActiveItem = open && value === itemValue;
1532
+ const state = {
1533
+ open: isActiveItem
1534
+ };
1535
+ const element2 = useRenderElement.useRenderElement("span", componentProps, {
1536
+ state,
1537
+ ref: forwardedRef,
1538
+ props: [{
1539
+ "aria-hidden": true,
1540
+ children: "▼"
1541
+ }, elementProps],
1542
+ stateAttributesMapping: popupStateMapping.triggerOpenStateMapping
1543
+ });
1544
+ return element2;
1545
+ });
1546
+ if (process.env.NODE_ENV !== "production") NavigationMenuIcon.displayName = "NavigationMenuIcon";
1547
+ function NavigationMenu({
1548
+ align = "start",
1549
+ className,
1550
+ children,
1551
+ ...props
1552
+ }) {
1553
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
1554
+ NavigationMenuRoot,
1555
+ {
1556
+ "data-slot": "navigation-menu",
1557
+ className: utils.cn(
1558
+ "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
1559
+ className
1560
+ ),
1561
+ ...props,
1562
+ children: [
1563
+ children,
1564
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuPositioner2, { align })
1565
+ ]
1566
+ }
1567
+ );
1568
+ }
1569
+ function NavigationMenuList2({
1570
+ className,
1571
+ ...props
1572
+ }) {
1573
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
1574
+ NavigationMenuList$1,
1575
+ {
1576
+ "data-slot": "navigation-menu-list",
1577
+ className: utils.cn(
1578
+ "group flex flex-1 list-none items-center justify-center gap-0",
1579
+ className
1580
+ ),
1581
+ ...props
1582
+ }
1583
+ );
1584
+ }
1585
+ function NavigationMenuItem2({
1586
+ className,
1587
+ ...props
1588
+ }) {
1589
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
1590
+ NavigationMenuItem$1,
1591
+ {
1592
+ "data-slot": "navigation-menu-item",
1593
+ className: utils.cn("relative", className),
1594
+ ...props
1595
+ }
1596
+ );
1597
+ }
1598
+ const navigationMenuTriggerStyle = classVarianceAuthority.cva(
1599
+ "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted"
1600
+ );
1601
+ function NavigationMenuTrigger2({
1602
+ className,
1603
+ children,
1604
+ ...props
1605
+ }) {
1606
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
1607
+ NavigationMenuTrigger$1,
1608
+ {
1609
+ "data-slot": "navigation-menu-trigger",
1610
+ className: utils.cn(navigationMenuTriggerStyle(), "group", className),
1611
+ ...props,
1612
+ children: [
1613
+ children,
1614
+ " ",
1615
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(lucideReact.ChevronDownIcon, { className: "relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180", "aria-hidden": "true" })
1616
+ ]
1617
+ }
1618
+ );
1619
+ }
1620
+ function NavigationMenuContent2({
1621
+ className,
1622
+ ...props
1623
+ }) {
1624
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
1625
+ NavigationMenuContent$1,
1626
+ {
1627
+ "data-slot": "navigation-menu-content",
1628
+ className: utils.cn(
1629
+ "data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95",
1630
+ className
1631
+ ),
1632
+ ...props
1633
+ }
1634
+ );
1635
+ }
1636
+ function NavigationMenuPositioner2({
1637
+ className,
1638
+ side = "bottom",
1639
+ sideOffset = 8,
1640
+ align = "start",
1641
+ alignOffset = 0,
1642
+ ...props
1643
+ }) {
1644
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuPortal, { children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
1645
+ NavigationMenuPositioner$1,
1646
+ {
1647
+ side,
1648
+ sideOffset,
1649
+ align,
1650
+ alignOffset,
1651
+ className: utils.cn(
1652
+ "isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0",
1653
+ className
1654
+ ),
1655
+ ...props,
1656
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuPopup, { className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(NavigationMenuViewport, { className: "relative size-full overflow-hidden" }) })
1657
+ }
1658
+ ) });
1659
+ }
1660
+ function NavigationMenuLink2({
1661
+ className,
1662
+ ...props
1663
+ }) {
1664
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
1665
+ NavigationMenuLink$1,
1666
+ {
1667
+ "data-slot": "navigation-menu-link",
1668
+ className: utils.cn(
1669
+ "flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4",
1670
+ className
1671
+ ),
1672
+ ...props
1673
+ }
1674
+ );
1675
+ }
1676
+ function NavigationMenuIndicator({
1677
+ className,
1678
+ ...props
1679
+ }) {
1680
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
1681
+ NavigationMenuIcon,
1682
+ {
1683
+ "data-slot": "navigation-menu-indicator",
1684
+ className: utils.cn(
1685
+ "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in",
1686
+ className
1687
+ ),
1688
+ ...props,
1689
+ children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
1690
+ }
1691
+ );
1692
+ }
1693
+ exports.NavigationMenu = NavigationMenu;
1694
+ exports.NavigationMenuContent = NavigationMenuContent2;
1695
+ exports.NavigationMenuIndicator = NavigationMenuIndicator;
1696
+ exports.NavigationMenuItem = NavigationMenuItem2;
1697
+ exports.NavigationMenuLink = NavigationMenuLink2;
1698
+ exports.NavigationMenuList = NavigationMenuList2;
1699
+ exports.NavigationMenuPositioner = NavigationMenuPositioner2;
1700
+ exports.NavigationMenuTrigger = NavigationMenuTrigger2;
1701
+ exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle;
1702
+ //# sourceMappingURL=index.js.map