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,1021 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ const floatingUi_utils_dom = require("./floating-ui.utils.dom-djqmdyxg.js");
6
+ const detectBrowser = require("./detectBrowser-j_AUpd7-.js");
7
+ const owner = require("./owner-DohlhdQa.js");
8
+ const useIsoLayoutEffect = require("./useIsoLayoutEffect-CYDr9Bko.js");
9
+ const useTimeout = require("./useTimeout-CSlJ10_7.js");
10
+ const useAnimationFrame = require("./useAnimationFrame-Bgt4Euiv.js");
11
+ const useRenderElement = require("./useRenderElement-CtyURhhF.js");
12
+ const React = require("react");
13
+ const popupStateMapping = require("./popupStateMapping-DKN5mXrh.js");
14
+ const useValueAsRef = require("./useValueAsRef-uSzmRbW_.js");
15
+ const useStableCallback = require("./useStableCallback-CfE_knIO.js");
16
+ const createBaseUIEventDetails = require("./createBaseUIEventDetails-D39y2D9R.js");
17
+ const useOpenChangeComplete = require("./useOpenChangeComplete-B0xZNwMu.js");
18
+ const jsxRuntime = require("./jsx-runtime-CPzt8Nmm.js");
19
+ const element = require("./element-DAAyJrnp.js");
20
+ const event = require("./event-BHxKjfyi.js");
21
+ const composite = require("./composite-DhXBXmhV.js");
22
+ const useValueChanged = require("./useValueChanged-CvJls2Pv.js");
23
+ function _interopNamespaceDefault(e) {
24
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
25
+ if (e) {
26
+ for (const k in e) {
27
+ if (k !== "default") {
28
+ const d = Object.getOwnPropertyDescriptor(e, k);
29
+ Object.defineProperty(n, k, d.get ? d : {
30
+ enumerable: true,
31
+ get: () => e[k]
32
+ });
33
+ }
34
+ }
35
+ }
36
+ n.default = e;
37
+ return Object.freeze(n);
38
+ }
39
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
40
+ let originalHtmlStyles = {};
41
+ let originalBodyStyles = {};
42
+ let originalHtmlScrollBehavior = "";
43
+ function hasInsetScrollbars(referenceElement) {
44
+ if (typeof document === "undefined") {
45
+ return false;
46
+ }
47
+ const doc = owner.ownerDocument(referenceElement);
48
+ const win = floatingUi_utils_dom.getWindow(doc);
49
+ return win.innerWidth - doc.documentElement.clientWidth > 0;
50
+ }
51
+ function supportsStableScrollbarGutter(referenceElement) {
52
+ const supported = typeof CSS !== "undefined" && CSS.supports && CSS.supports("scrollbar-gutter", "stable");
53
+ if (!supported || typeof document === "undefined") {
54
+ return false;
55
+ }
56
+ const doc = owner.ownerDocument(referenceElement);
57
+ const html = doc.documentElement;
58
+ const body = doc.body;
59
+ const scrollContainer = floatingUi_utils_dom.isOverflowElement(html) ? html : body;
60
+ const originalScrollContainerOverflowY = scrollContainer.style.overflowY;
61
+ const originalHtmlStyleGutter = html.style.scrollbarGutter;
62
+ html.style.scrollbarGutter = "stable";
63
+ scrollContainer.style.overflowY = "scroll";
64
+ const before = scrollContainer.offsetWidth;
65
+ scrollContainer.style.overflowY = "hidden";
66
+ const after = scrollContainer.offsetWidth;
67
+ scrollContainer.style.overflowY = originalScrollContainerOverflowY;
68
+ html.style.scrollbarGutter = originalHtmlStyleGutter;
69
+ return before === after;
70
+ }
71
+ function preventScrollOverlayScrollbars(referenceElement) {
72
+ const doc = owner.ownerDocument(referenceElement);
73
+ const html = doc.documentElement;
74
+ const body = doc.body;
75
+ const elementToLock = floatingUi_utils_dom.isOverflowElement(html) ? html : body;
76
+ const originalElementToLockStyles = {
77
+ overflowY: elementToLock.style.overflowY,
78
+ overflowX: elementToLock.style.overflowX
79
+ };
80
+ Object.assign(elementToLock.style, {
81
+ overflowY: "hidden",
82
+ overflowX: "hidden"
83
+ });
84
+ return () => {
85
+ Object.assign(elementToLock.style, originalElementToLockStyles);
86
+ };
87
+ }
88
+ function preventScrollInsetScrollbars(referenceElement) {
89
+ var _a;
90
+ const doc = owner.ownerDocument(referenceElement);
91
+ const html = doc.documentElement;
92
+ const body = doc.body;
93
+ const win = floatingUi_utils_dom.getWindow(html);
94
+ let scrollTop = 0;
95
+ let scrollLeft = 0;
96
+ let updateGutterOnly = false;
97
+ const resizeFrame = useAnimationFrame.AnimationFrame.create();
98
+ if (detectBrowser.isWebKit && (((_a = win.visualViewport) == null ? void 0 : _a.scale) ?? 1) !== 1) {
99
+ return () => {
100
+ };
101
+ }
102
+ function lockScroll() {
103
+ const htmlStyles = win.getComputedStyle(html);
104
+ const bodyStyles = win.getComputedStyle(body);
105
+ const htmlScrollbarGutterValue = htmlStyles.scrollbarGutter || "";
106
+ const hasBothEdges = htmlScrollbarGutterValue.includes("both-edges");
107
+ const scrollbarGutterValue = hasBothEdges ? "stable both-edges" : "stable";
108
+ scrollTop = html.scrollTop;
109
+ scrollLeft = html.scrollLeft;
110
+ originalHtmlStyles = {
111
+ scrollbarGutter: html.style.scrollbarGutter,
112
+ overflowY: html.style.overflowY,
113
+ overflowX: html.style.overflowX
114
+ };
115
+ originalHtmlScrollBehavior = html.style.scrollBehavior;
116
+ originalBodyStyles = {
117
+ position: body.style.position,
118
+ height: body.style.height,
119
+ width: body.style.width,
120
+ boxSizing: body.style.boxSizing,
121
+ overflowY: body.style.overflowY,
122
+ overflowX: body.style.overflowX,
123
+ scrollBehavior: body.style.scrollBehavior
124
+ };
125
+ const isScrollableY = html.scrollHeight > html.clientHeight;
126
+ const isScrollableX = html.scrollWidth > html.clientWidth;
127
+ const hasConstantOverflowY = htmlStyles.overflowY === "scroll" || bodyStyles.overflowY === "scroll";
128
+ const hasConstantOverflowX = htmlStyles.overflowX === "scroll" || bodyStyles.overflowX === "scroll";
129
+ const scrollbarWidth = Math.max(0, win.innerWidth - body.clientWidth);
130
+ const scrollbarHeight = Math.max(0, win.innerHeight - body.clientHeight);
131
+ const marginY = parseFloat(bodyStyles.marginTop) + parseFloat(bodyStyles.marginBottom);
132
+ const marginX = parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight);
133
+ const elementToLock = floatingUi_utils_dom.isOverflowElement(html) ? html : body;
134
+ updateGutterOnly = supportsStableScrollbarGutter(referenceElement);
135
+ if (updateGutterOnly) {
136
+ html.style.scrollbarGutter = scrollbarGutterValue;
137
+ elementToLock.style.overflowY = "hidden";
138
+ elementToLock.style.overflowX = "hidden";
139
+ return;
140
+ }
141
+ Object.assign(html.style, {
142
+ scrollbarGutter: scrollbarGutterValue,
143
+ overflowY: "hidden",
144
+ overflowX: "hidden"
145
+ });
146
+ if (isScrollableY || hasConstantOverflowY) {
147
+ html.style.overflowY = "scroll";
148
+ }
149
+ if (isScrollableX || hasConstantOverflowX) {
150
+ html.style.overflowX = "scroll";
151
+ }
152
+ Object.assign(body.style, {
153
+ position: "relative",
154
+ height: marginY || scrollbarHeight ? `calc(100dvh - ${marginY + scrollbarHeight}px)` : "100dvh",
155
+ width: marginX || scrollbarWidth ? `calc(100vw - ${marginX + scrollbarWidth}px)` : "100vw",
156
+ boxSizing: "border-box",
157
+ overflow: "hidden",
158
+ scrollBehavior: "unset"
159
+ });
160
+ body.scrollTop = scrollTop;
161
+ body.scrollLeft = scrollLeft;
162
+ html.setAttribute("data-base-ui-scroll-locked", "");
163
+ html.style.scrollBehavior = "unset";
164
+ }
165
+ function cleanup() {
166
+ Object.assign(html.style, originalHtmlStyles);
167
+ Object.assign(body.style, originalBodyStyles);
168
+ if (!updateGutterOnly) {
169
+ html.scrollTop = scrollTop;
170
+ html.scrollLeft = scrollLeft;
171
+ html.removeAttribute("data-base-ui-scroll-locked");
172
+ html.style.scrollBehavior = originalHtmlScrollBehavior;
173
+ }
174
+ }
175
+ function handleResize() {
176
+ cleanup();
177
+ resizeFrame.request(lockScroll);
178
+ }
179
+ lockScroll();
180
+ win.addEventListener("resize", handleResize);
181
+ return () => {
182
+ resizeFrame.cancel();
183
+ cleanup();
184
+ if (typeof win.removeEventListener === "function") {
185
+ win.removeEventListener("resize", handleResize);
186
+ }
187
+ };
188
+ }
189
+ class ScrollLocker {
190
+ constructor() {
191
+ __publicField(this, "lockCount", 0);
192
+ __publicField(this, "restore", null);
193
+ __publicField(this, "timeoutLock", useTimeout.Timeout.create());
194
+ __publicField(this, "timeoutUnlock", useTimeout.Timeout.create());
195
+ __publicField(this, "release", () => {
196
+ this.lockCount -= 1;
197
+ if (this.lockCount === 0 && this.restore) {
198
+ this.timeoutUnlock.start(0, this.unlock);
199
+ }
200
+ });
201
+ __publicField(this, "unlock", () => {
202
+ var _a;
203
+ if (this.lockCount === 0 && this.restore) {
204
+ (_a = this.restore) == null ? void 0 : _a.call(this);
205
+ this.restore = null;
206
+ }
207
+ });
208
+ }
209
+ acquire(referenceElement) {
210
+ this.lockCount += 1;
211
+ if (this.lockCount === 1 && this.restore === null) {
212
+ this.timeoutLock.start(0, () => this.lock(referenceElement));
213
+ }
214
+ return this.release;
215
+ }
216
+ lock(referenceElement) {
217
+ if (this.lockCount === 0 || this.restore !== null) {
218
+ return;
219
+ }
220
+ const doc = owner.ownerDocument(referenceElement);
221
+ const html = doc.documentElement;
222
+ const htmlOverflowY = floatingUi_utils_dom.getWindow(html).getComputedStyle(html).overflowY;
223
+ if (htmlOverflowY === "hidden" || htmlOverflowY === "clip") {
224
+ this.restore = useRenderElement.NOOP;
225
+ return;
226
+ }
227
+ const hasOverlayScrollbars = detectBrowser.isIOS || !hasInsetScrollbars(referenceElement);
228
+ this.restore = hasOverlayScrollbars ? preventScrollOverlayScrollbars(referenceElement) : preventScrollInsetScrollbars(referenceElement);
229
+ }
230
+ }
231
+ const SCROLL_LOCKER = new ScrollLocker();
232
+ function useScrollLock(enabled = true, referenceElement = null) {
233
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
234
+ if (!enabled) {
235
+ return void 0;
236
+ }
237
+ return SCROLL_LOCKER.acquire(referenceElement);
238
+ }, [enabled, referenceElement]);
239
+ }
240
+ let rafId = 0;
241
+ function enqueueFocus(el, options = {}) {
242
+ const {
243
+ preventScroll = false,
244
+ cancelPrevious = true,
245
+ sync = false
246
+ } = options;
247
+ if (cancelPrevious) {
248
+ cancelAnimationFrame(rafId);
249
+ }
250
+ const exec = () => el == null ? void 0 : el.focus({
251
+ preventScroll
252
+ });
253
+ if (sync) {
254
+ exec();
255
+ } else {
256
+ rafId = requestAnimationFrame(exec);
257
+ }
258
+ }
259
+ const counters = {
260
+ inert: /* @__PURE__ */ new WeakMap(),
261
+ "aria-hidden": /* @__PURE__ */ new WeakMap()
262
+ };
263
+ const markerName = "data-base-ui-inert";
264
+ const uncontrolledElementsSets = {
265
+ inert: /* @__PURE__ */ new WeakSet(),
266
+ "aria-hidden": /* @__PURE__ */ new WeakSet()
267
+ };
268
+ let markerCounterMap = /* @__PURE__ */ new WeakMap();
269
+ let lockCount = 0;
270
+ function getUncontrolledElementsSet(controlAttribute) {
271
+ return uncontrolledElementsSets[controlAttribute];
272
+ }
273
+ function unwrapHost(node) {
274
+ if (!node) {
275
+ return null;
276
+ }
277
+ return floatingUi_utils_dom.isShadowRoot(node) ? node.host : unwrapHost(node.parentNode);
278
+ }
279
+ const correctElements = (parent, targets) => targets.map((target) => {
280
+ if (parent.contains(target)) {
281
+ return target;
282
+ }
283
+ const correctedTarget = unwrapHost(target);
284
+ if (parent.contains(correctedTarget)) {
285
+ return correctedTarget;
286
+ }
287
+ return null;
288
+ }).filter((x) => x != null);
289
+ const buildKeepSet = (targets) => {
290
+ const keep = /* @__PURE__ */ new Set();
291
+ targets.forEach((target) => {
292
+ let node = target;
293
+ while (node && !keep.has(node)) {
294
+ keep.add(node);
295
+ node = node.parentNode;
296
+ }
297
+ });
298
+ return keep;
299
+ };
300
+ const collectOutsideElements = (root, keepElements, stopElements) => {
301
+ const outside = [];
302
+ const walk = (parent) => {
303
+ if (!parent || stopElements.has(parent)) {
304
+ return;
305
+ }
306
+ Array.from(parent.children).forEach((node) => {
307
+ if (floatingUi_utils_dom.getNodeName(node) === "script") {
308
+ return;
309
+ }
310
+ if (keepElements.has(node)) {
311
+ walk(node);
312
+ } else {
313
+ outside.push(node);
314
+ }
315
+ });
316
+ };
317
+ walk(root);
318
+ return outside;
319
+ };
320
+ function applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert, {
321
+ mark = true,
322
+ markerIgnoreElements = []
323
+ }) {
324
+ const controlAttribute = inert ? "inert" : ariaHidden ? "aria-hidden" : null;
325
+ let counterMap = null;
326
+ let uncontrolledElementsSet = null;
327
+ const avoidElements = correctElements(body, uncorrectedAvoidElements);
328
+ const markerIgnoreTargets = mark ? correctElements(body, markerIgnoreElements) : [];
329
+ const markerIgnoreSet = new Set(markerIgnoreTargets);
330
+ const markerTargets = mark ? collectOutsideElements(body, buildKeepSet(avoidElements), new Set(avoidElements)).filter((target) => !markerIgnoreSet.has(target)) : [];
331
+ const hiddenElements = [];
332
+ const markedElements = [];
333
+ if (controlAttribute) {
334
+ const map = counters[controlAttribute];
335
+ const currentUncontrolledElementsSet = getUncontrolledElementsSet(controlAttribute);
336
+ uncontrolledElementsSet = currentUncontrolledElementsSet;
337
+ counterMap = map;
338
+ const ariaLiveElements = correctElements(body, Array.from(body.querySelectorAll("[aria-live]")));
339
+ const controlElements = avoidElements.concat(ariaLiveElements);
340
+ const controlTargets = collectOutsideElements(body, buildKeepSet(controlElements), new Set(controlElements));
341
+ controlTargets.forEach((node) => {
342
+ const attr = node.getAttribute(controlAttribute);
343
+ const alreadyHidden = attr !== null && attr !== "false";
344
+ const counterValue = (map.get(node) || 0) + 1;
345
+ map.set(node, counterValue);
346
+ hiddenElements.push(node);
347
+ if (counterValue === 1 && alreadyHidden) {
348
+ currentUncontrolledElementsSet.add(node);
349
+ }
350
+ if (!alreadyHidden) {
351
+ node.setAttribute(controlAttribute, controlAttribute === "inert" ? "" : "true");
352
+ }
353
+ });
354
+ }
355
+ if (mark) {
356
+ markerTargets.forEach((node) => {
357
+ const markerValue = (markerCounterMap.get(node) || 0) + 1;
358
+ markerCounterMap.set(node, markerValue);
359
+ markedElements.push(node);
360
+ if (markerValue === 1) {
361
+ node.setAttribute(markerName, "");
362
+ }
363
+ });
364
+ }
365
+ lockCount += 1;
366
+ return () => {
367
+ if (counterMap) {
368
+ hiddenElements.forEach((element2) => {
369
+ const currentCounterValue = counterMap.get(element2) || 0;
370
+ const counterValue = currentCounterValue - 1;
371
+ counterMap.set(element2, counterValue);
372
+ if (!counterValue) {
373
+ if (!(uncontrolledElementsSet == null ? void 0 : uncontrolledElementsSet.has(element2)) && controlAttribute) {
374
+ element2.removeAttribute(controlAttribute);
375
+ }
376
+ uncontrolledElementsSet == null ? void 0 : uncontrolledElementsSet.delete(element2);
377
+ }
378
+ });
379
+ }
380
+ if (mark) {
381
+ markedElements.forEach((element2) => {
382
+ const markerValue = (markerCounterMap.get(element2) || 0) - 1;
383
+ markerCounterMap.set(element2, markerValue);
384
+ if (!markerValue) {
385
+ element2.removeAttribute(markerName);
386
+ }
387
+ });
388
+ }
389
+ lockCount -= 1;
390
+ if (!lockCount) {
391
+ counters.inert = /* @__PURE__ */ new WeakMap();
392
+ counters["aria-hidden"] = /* @__PURE__ */ new WeakMap();
393
+ uncontrolledElementsSets.inert = /* @__PURE__ */ new WeakSet();
394
+ uncontrolledElementsSets["aria-hidden"] = /* @__PURE__ */ new WeakSet();
395
+ markerCounterMap = /* @__PURE__ */ new WeakMap();
396
+ }
397
+ };
398
+ }
399
+ function markOthers(avoidElements, options = {}) {
400
+ const {
401
+ ariaHidden = false,
402
+ inert = false,
403
+ mark = true,
404
+ markerIgnoreElements = []
405
+ } = options;
406
+ const body = owner.ownerDocument(avoidElements[0]).body;
407
+ return applyAttributeToOthers(avoidElements, body, ariaHidden, inert, {
408
+ mark,
409
+ markerIgnoreElements
410
+ });
411
+ }
412
+ function getEventType(event2, lastInteractionType) {
413
+ const win = floatingUi_utils_dom.getWindow(event2.target);
414
+ if (event2 instanceof win.KeyboardEvent) {
415
+ return "keyboard";
416
+ }
417
+ if (event2 instanceof win.FocusEvent) {
418
+ return lastInteractionType || "keyboard";
419
+ }
420
+ if ("pointerType" in event2) {
421
+ return event2.pointerType || "keyboard";
422
+ }
423
+ if ("touches" in event2) {
424
+ return "touch";
425
+ }
426
+ if (event2 instanceof win.MouseEvent) {
427
+ return lastInteractionType || (event2.detail === 0 ? "keyboard" : "mouse");
428
+ }
429
+ return "";
430
+ }
431
+ const LIST_LIMIT = 20;
432
+ let previouslyFocusedElements = [];
433
+ function clearDisconnectedPreviouslyFocusedElements() {
434
+ previouslyFocusedElements = previouslyFocusedElements.filter((entry) => {
435
+ var _a;
436
+ return (_a = entry.deref()) == null ? void 0 : _a.isConnected;
437
+ });
438
+ }
439
+ function addPreviouslyFocusedElement(element2) {
440
+ clearDisconnectedPreviouslyFocusedElements();
441
+ if (element2 && floatingUi_utils_dom.getNodeName(element2) !== "body") {
442
+ previouslyFocusedElements.push(new WeakRef(element2));
443
+ if (previouslyFocusedElements.length > LIST_LIMIT) {
444
+ previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);
445
+ }
446
+ }
447
+ }
448
+ function getPreviouslyFocusedElement() {
449
+ var _a;
450
+ clearDisconnectedPreviouslyFocusedElements();
451
+ return (_a = previouslyFocusedElements[previouslyFocusedElements.length - 1]) == null ? void 0 : _a.deref();
452
+ }
453
+ function getFirstTabbableElement(container) {
454
+ if (!container) {
455
+ return null;
456
+ }
457
+ const tabbableOptions = popupStateMapping.getTabbableOptions();
458
+ if (popupStateMapping.isTabbable(container, tabbableOptions)) {
459
+ return container;
460
+ }
461
+ return popupStateMapping.tabbable(container, tabbableOptions)[0] || container;
462
+ }
463
+ function isFocusable(element2) {
464
+ if (!element2 || !element2.isConnected) {
465
+ return false;
466
+ }
467
+ if (typeof element2.checkVisibility === "function") {
468
+ return element2.checkVisibility();
469
+ }
470
+ return composite.isElementVisible(element2);
471
+ }
472
+ function handleTabIndex(floatingFocusElement, orderRef) {
473
+ var _a;
474
+ if (!orderRef.current.includes("floating") && !((_a = floatingFocusElement.getAttribute("role")) == null ? void 0 : _a.includes("dialog"))) {
475
+ return;
476
+ }
477
+ const options = popupStateMapping.getTabbableOptions();
478
+ const focusableElements = popupStateMapping.focusable(floatingFocusElement, options);
479
+ const tabbableContent = focusableElements.filter((element2) => {
480
+ const dataTabIndex = element2.getAttribute("data-tabindex") || "";
481
+ return popupStateMapping.isTabbable(element2, options) || element2.hasAttribute("data-tabindex") && !dataTabIndex.startsWith("-");
482
+ });
483
+ const tabIndex = floatingFocusElement.getAttribute("tabindex");
484
+ if (orderRef.current.includes("floating") || tabbableContent.length === 0) {
485
+ if (tabIndex !== "0") {
486
+ floatingFocusElement.setAttribute("tabindex", "0");
487
+ }
488
+ } else if (tabIndex !== "-1" || floatingFocusElement.hasAttribute("data-tabindex") && floatingFocusElement.getAttribute("data-tabindex") !== "-1") {
489
+ floatingFocusElement.setAttribute("tabindex", "-1");
490
+ floatingFocusElement.setAttribute("data-tabindex", "-1");
491
+ }
492
+ }
493
+ function FloatingFocusManager(props) {
494
+ const {
495
+ context,
496
+ children,
497
+ disabled = false,
498
+ initialFocus = true,
499
+ returnFocus = true,
500
+ restoreFocus = false,
501
+ modal = true,
502
+ closeOnFocusOut = true,
503
+ openInteractionType = "",
504
+ nextFocusableElement,
505
+ previousFocusableElement,
506
+ beforeContentFocusGuardRef,
507
+ externalTree,
508
+ getInsideElements
509
+ } = props;
510
+ const store = "rootStore" in context ? context.rootStore : context;
511
+ const open = store.useState("open");
512
+ const domReference = store.useState("domReferenceElement");
513
+ const floating = store.useState("floatingElement");
514
+ const {
515
+ events,
516
+ dataRef
517
+ } = store.context;
518
+ const getNodeId = useStableCallback.useStableCallback(() => {
519
+ var _a;
520
+ return (_a = dataRef.current.floatingContext) == null ? void 0 : _a.nodeId;
521
+ });
522
+ const ignoreInitialFocus = initialFocus === false;
523
+ const isUntrappedTypeableCombobox = element.isTypeableCombobox(domReference) && ignoreInitialFocus;
524
+ const orderRef = React__namespace.useRef(["content"]);
525
+ const initialFocusRef = useValueAsRef.useValueAsRef(initialFocus);
526
+ const returnFocusRef = useValueAsRef.useValueAsRef(returnFocus);
527
+ const openInteractionTypeRef = useValueAsRef.useValueAsRef(openInteractionType);
528
+ const tree = popupStateMapping.useFloatingTree(externalTree);
529
+ const portalContext = popupStateMapping.usePortalContext();
530
+ const preventReturnFocusRef = React__namespace.useRef(false);
531
+ const isPointerDownRef = React__namespace.useRef(false);
532
+ const pointerDownOutsideRef = React__namespace.useRef(false);
533
+ const tabbableIndexRef = React__namespace.useRef(-1);
534
+ const closeTypeRef = React__namespace.useRef("");
535
+ const lastInteractionTypeRef = React__namespace.useRef("");
536
+ const beforeGuardRef = React__namespace.useRef(null);
537
+ const afterGuardRef = React__namespace.useRef(null);
538
+ const mergedBeforeGuardRef = useRenderElement.useMergedRefs(beforeGuardRef, beforeContentFocusGuardRef, portalContext == null ? void 0 : portalContext.beforeInsideRef);
539
+ const mergedAfterGuardRef = useRenderElement.useMergedRefs(afterGuardRef, portalContext == null ? void 0 : portalContext.afterInsideRef);
540
+ const blurTimeout = useTimeout.useTimeout();
541
+ const pointerDownTimeout = useTimeout.useTimeout();
542
+ const restoreFocusFrame = useAnimationFrame.useAnimationFrame();
543
+ const isInsidePortal = portalContext != null;
544
+ const floatingFocusElement = element.getFloatingFocusElement(floating);
545
+ const getTabbableContent = useStableCallback.useStableCallback((container = floatingFocusElement) => {
546
+ return container ? popupStateMapping.tabbable(container, popupStateMapping.getTabbableOptions()) : [];
547
+ });
548
+ const getResolvedInsideElements = useStableCallback.useStableCallback(() => (getInsideElements == null ? void 0 : getInsideElements().filter((element2) => element2 != null)) ?? []);
549
+ const getTabbableElements = useStableCallback.useStableCallback((container) => {
550
+ const content = getTabbableContent(container);
551
+ return orderRef.current.map(() => content).filter(Boolean).flat();
552
+ });
553
+ React__namespace.useEffect(() => {
554
+ if (disabled || !modal) {
555
+ return void 0;
556
+ }
557
+ function onKeyDown(event$1) {
558
+ if (event$1.key === "Tab") {
559
+ if (element.contains(floatingFocusElement, element.activeElement(owner.ownerDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {
560
+ event.stopEvent(event$1);
561
+ }
562
+ }
563
+ }
564
+ const doc = owner.ownerDocument(floatingFocusElement);
565
+ doc.addEventListener("keydown", onKeyDown);
566
+ return () => {
567
+ doc.removeEventListener("keydown", onKeyDown);
568
+ };
569
+ }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);
570
+ React__namespace.useEffect(() => {
571
+ if (disabled || !open) {
572
+ return void 0;
573
+ }
574
+ const doc = owner.ownerDocument(floatingFocusElement);
575
+ function clearPointerDownOutside() {
576
+ pointerDownOutsideRef.current = false;
577
+ }
578
+ function onPointerDown(event2) {
579
+ const target = element.getTarget(event2);
580
+ const insideElements = getResolvedInsideElements();
581
+ const pointerTargetInside = element.contains(floating, target) || element.contains(domReference, target) || element.contains(portalContext == null ? void 0 : portalContext.portalNode, target) || insideElements.some((element$1) => element$1 === target || element.contains(element$1, target));
582
+ pointerDownOutsideRef.current = !pointerTargetInside;
583
+ lastInteractionTypeRef.current = event2.pointerType || "keyboard";
584
+ if (target == null ? void 0 : target.closest(`[${popupStateMapping.CLICK_TRIGGER_IDENTIFIER}]`)) {
585
+ isPointerDownRef.current = true;
586
+ }
587
+ }
588
+ function onKeyDown() {
589
+ lastInteractionTypeRef.current = "keyboard";
590
+ }
591
+ doc.addEventListener("pointerdown", onPointerDown, true);
592
+ doc.addEventListener("pointerup", clearPointerDownOutside, true);
593
+ doc.addEventListener("pointercancel", clearPointerDownOutside, true);
594
+ doc.addEventListener("keydown", onKeyDown, true);
595
+ return () => {
596
+ doc.removeEventListener("pointerdown", onPointerDown, true);
597
+ doc.removeEventListener("pointerup", clearPointerDownOutside, true);
598
+ doc.removeEventListener("pointercancel", clearPointerDownOutside, true);
599
+ doc.removeEventListener("keydown", onKeyDown, true);
600
+ };
601
+ }, [disabled, floating, domReference, floatingFocusElement, open, portalContext, getResolvedInsideElements]);
602
+ React__namespace.useEffect(() => {
603
+ if (disabled || !closeOnFocusOut) {
604
+ return void 0;
605
+ }
606
+ const doc = owner.ownerDocument(floatingFocusElement);
607
+ function handlePointerDown() {
608
+ isPointerDownRef.current = true;
609
+ pointerDownTimeout.start(0, () => {
610
+ isPointerDownRef.current = false;
611
+ });
612
+ }
613
+ function handleFocusIn(event2) {
614
+ const target = element.getTarget(event2);
615
+ const tabbableContent = getTabbableContent();
616
+ const tabbableIndex = tabbableContent.indexOf(target);
617
+ if (tabbableIndex !== -1) {
618
+ tabbableIndexRef.current = tabbableIndex;
619
+ }
620
+ }
621
+ function handleFocusOutside(event2) {
622
+ const relatedTarget = event2.relatedTarget;
623
+ const currentTarget = event2.currentTarget;
624
+ const target = element.getTarget(event2);
625
+ queueMicrotask(() => {
626
+ const nodeId = getNodeId();
627
+ const triggers = store.context.triggerElements;
628
+ const insideElements = getResolvedInsideElements();
629
+ const isRelatedFocusGuard = (relatedTarget == null ? void 0 : relatedTarget.hasAttribute(popupStateMapping.createAttribute("focus-guard"))) && [beforeGuardRef.current, afterGuardRef.current, portalContext == null ? void 0 : portalContext.beforeInsideRef.current, portalContext == null ? void 0 : portalContext.afterInsideRef.current, portalContext == null ? void 0 : portalContext.beforeOutsideRef.current, portalContext == null ? void 0 : portalContext.afterOutsideRef.current, useOpenChangeComplete.resolveRef(previousFocusableElement), useOpenChangeComplete.resolveRef(nextFocusableElement)].includes(relatedTarget);
630
+ const movedToUnrelatedNode = !(element.contains(domReference, relatedTarget) || element.contains(floating, relatedTarget) || element.contains(relatedTarget, floating) || element.contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || insideElements.some((element$1) => element$1 === relatedTarget || element.contains(element$1, relatedTarget)) || relatedTarget != null && triggers.hasElement(relatedTarget) || triggers.hasMatchingElement((trigger) => element.contains(trigger, relatedTarget)) || isRelatedFocusGuard || tree && (popupStateMapping.getNodeChildren(tree.nodesRef.current, nodeId).find((node) => {
631
+ var _a, _b;
632
+ return element.contains((_a = node.context) == null ? void 0 : _a.elements.floating, relatedTarget) || element.contains((_b = node.context) == null ? void 0 : _b.elements.domReference, relatedTarget);
633
+ }) || popupStateMapping.getNodeAncestors(tree.nodesRef.current, nodeId).find((node) => {
634
+ var _a, _b, _c;
635
+ return [(_a = node.context) == null ? void 0 : _a.elements.floating, element.getFloatingFocusElement((_b = node.context) == null ? void 0 : _b.elements.floating)].includes(relatedTarget) || ((_c = node.context) == null ? void 0 : _c.elements.domReference) === relatedTarget;
636
+ })));
637
+ if (currentTarget === domReference && floatingFocusElement) {
638
+ handleTabIndex(floatingFocusElement, orderRef);
639
+ }
640
+ if (restoreFocus && currentTarget !== domReference && !isFocusable(target) && element.activeElement(doc) === doc.body) {
641
+ if (floatingUi_utils_dom.isHTMLElement(floatingFocusElement)) {
642
+ floatingFocusElement.focus();
643
+ if (restoreFocus === "popup") {
644
+ restoreFocusFrame.request(() => {
645
+ floatingFocusElement.focus();
646
+ });
647
+ return;
648
+ }
649
+ }
650
+ const prevTabbableIndex = tabbableIndexRef.current;
651
+ const tabbableContent = getTabbableContent();
652
+ const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;
653
+ if (floatingUi_utils_dom.isHTMLElement(nodeToFocus)) {
654
+ nodeToFocus.focus();
655
+ }
656
+ }
657
+ if (dataRef.current.insideReactTree) {
658
+ dataRef.current.insideReactTree = false;
659
+ return;
660
+ }
661
+ if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current && // Fix React 18 Strict Mode returnFocus due to double rendering.
662
+ // For an "untrapped" typeable combobox (input role=combobox with
663
+ // initialFocus=false), re-opening the popup and tabbing out should still close it even
664
+ // when the previously focused element (e.g. the next tabbable outside the popup) is
665
+ // focused again. Otherwise, the popup remains open on the second Tab sequence:
666
+ // click input -> Tab (closes) -> click input -> Tab.
667
+ // Allow closing when `isUntrappedTypeableCombobox` regardless of the previously focused element.
668
+ (isUntrappedTypeableCombobox || relatedTarget !== getPreviouslyFocusedElement())) {
669
+ preventReturnFocusRef.current = true;
670
+ store.setOpen(false, createBaseUIEventDetails.createChangeEventDetails(createBaseUIEventDetails.focusOut, event2));
671
+ }
672
+ });
673
+ }
674
+ function markInsideReactTree() {
675
+ if (pointerDownOutsideRef.current) {
676
+ return;
677
+ }
678
+ dataRef.current.insideReactTree = true;
679
+ blurTimeout.start(0, () => {
680
+ dataRef.current.insideReactTree = false;
681
+ });
682
+ }
683
+ const domReferenceElement = floatingUi_utils_dom.isHTMLElement(domReference) ? domReference : null;
684
+ const cleanups = [];
685
+ if (!floating && !domReferenceElement) {
686
+ return void 0;
687
+ }
688
+ if (domReferenceElement) {
689
+ domReferenceElement.addEventListener("focusout", handleFocusOutside);
690
+ domReferenceElement.addEventListener("pointerdown", handlePointerDown);
691
+ cleanups.push(() => {
692
+ domReferenceElement.removeEventListener("focusout", handleFocusOutside);
693
+ domReferenceElement.removeEventListener("pointerdown", handlePointerDown);
694
+ });
695
+ }
696
+ if (floating) {
697
+ floating.addEventListener("focusin", handleFocusIn);
698
+ floating.addEventListener("focusout", handleFocusOutside);
699
+ if (portalContext) {
700
+ floating.addEventListener("focusout", markInsideReactTree, true);
701
+ cleanups.push(() => {
702
+ floating.removeEventListener("focusout", markInsideReactTree, true);
703
+ });
704
+ }
705
+ cleanups.push(() => {
706
+ floating.removeEventListener("focusin", handleFocusIn);
707
+ floating.removeEventListener("focusout", handleFocusOutside);
708
+ });
709
+ }
710
+ return () => {
711
+ cleanups.forEach((cleanup) => {
712
+ cleanup();
713
+ });
714
+ };
715
+ }, [disabled, domReference, floating, floatingFocusElement, modal, tree, portalContext, store, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox, getNodeId, orderRef, dataRef, blurTimeout, pointerDownTimeout, restoreFocusFrame, nextFocusableElement, previousFocusableElement, getResolvedInsideElements]);
716
+ React__namespace.useEffect(() => {
717
+ var _a, _b, _c;
718
+ if (disabled || !floating || !open) {
719
+ return void 0;
720
+ }
721
+ const portalNodes = Array.from(((_a = portalContext == null ? void 0 : portalContext.portalNode) == null ? void 0 : _a.querySelectorAll(`[${popupStateMapping.createAttribute("portal")}]`)) || []);
722
+ const ancestors = tree ? popupStateMapping.getNodeAncestors(tree.nodesRef.current, getNodeId()) : [];
723
+ const rootAncestorComboboxDomReference = (_c = (_b = ancestors.find((node) => {
724
+ var _a2;
725
+ return element.isTypeableCombobox(((_a2 = node.context) == null ? void 0 : _a2.elements.domReference) || null);
726
+ })) == null ? void 0 : _b.context) == null ? void 0 : _c.elements.domReference;
727
+ const controlInsideElements = [floating, ...portalNodes, beforeGuardRef.current, afterGuardRef.current, portalContext == null ? void 0 : portalContext.beforeOutsideRef.current, portalContext == null ? void 0 : portalContext.afterOutsideRef.current, ...getResolvedInsideElements()];
728
+ const insideElements = [...controlInsideElements, rootAncestorComboboxDomReference, useOpenChangeComplete.resolveRef(previousFocusableElement), useOpenChangeComplete.resolveRef(nextFocusableElement), isUntrappedTypeableCombobox ? domReference : null].filter((x) => x != null);
729
+ const ariaHiddenCleanup = markOthers(insideElements, {
730
+ ariaHidden: modal || isUntrappedTypeableCombobox,
731
+ mark: false
732
+ });
733
+ const markerInsideElements = [floating, ...portalNodes].filter((x) => x != null);
734
+ const markerCleanup = markOthers(markerInsideElements);
735
+ return () => {
736
+ markerCleanup();
737
+ ariaHiddenCleanup();
738
+ };
739
+ }, [open, disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, tree, getNodeId, nextFocusableElement, previousFocusableElement, getResolvedInsideElements]);
740
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
741
+ if (!open || disabled || !floatingUi_utils_dom.isHTMLElement(floatingFocusElement)) {
742
+ return;
743
+ }
744
+ const doc = owner.ownerDocument(floatingFocusElement);
745
+ const previouslyFocusedElement = element.activeElement(doc);
746
+ queueMicrotask(() => {
747
+ const focusableElements = getTabbableElements(floatingFocusElement);
748
+ const initialFocusValueOrFn = initialFocusRef.current;
749
+ const resolvedInitialFocus = typeof initialFocusValueOrFn === "function" ? initialFocusValueOrFn(openInteractionTypeRef.current || "") : initialFocusValueOrFn;
750
+ if (resolvedInitialFocus === void 0 || resolvedInitialFocus === false) {
751
+ return;
752
+ }
753
+ let elToFocus;
754
+ if (resolvedInitialFocus === true || resolvedInitialFocus === null) {
755
+ elToFocus = focusableElements[0] || floatingFocusElement;
756
+ } else {
757
+ elToFocus = useOpenChangeComplete.resolveRef(resolvedInitialFocus);
758
+ }
759
+ elToFocus = elToFocus || focusableElements[0] || floatingFocusElement;
760
+ const focusAlreadyInsideFloatingEl = element.contains(floatingFocusElement, previouslyFocusedElement);
761
+ if (focusAlreadyInsideFloatingEl) {
762
+ return;
763
+ }
764
+ enqueueFocus(elToFocus, {
765
+ preventScroll: elToFocus === floatingFocusElement
766
+ });
767
+ });
768
+ }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef, openInteractionTypeRef]);
769
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
770
+ if (disabled || !floatingFocusElement) {
771
+ return void 0;
772
+ }
773
+ const doc = owner.ownerDocument(floatingFocusElement);
774
+ const previouslyFocusedElement = element.activeElement(doc);
775
+ addPreviouslyFocusedElement(previouslyFocusedElement);
776
+ function onOpenChangeLocal(details) {
777
+ if (!details.open) {
778
+ closeTypeRef.current = getEventType(details.nativeEvent, lastInteractionTypeRef.current);
779
+ }
780
+ if (details.reason === createBaseUIEventDetails.triggerHover && details.nativeEvent.type === "mouseleave") {
781
+ preventReturnFocusRef.current = true;
782
+ }
783
+ if (details.reason !== createBaseUIEventDetails.outsidePress) {
784
+ return;
785
+ }
786
+ if (details.nested) {
787
+ preventReturnFocusRef.current = false;
788
+ } else if (event.isVirtualClick(details.nativeEvent) || event.isVirtualPointerEvent(details.nativeEvent)) {
789
+ preventReturnFocusRef.current = false;
790
+ } else {
791
+ let isPreventScrollSupported = false;
792
+ document.createElement("div").focus({
793
+ get preventScroll() {
794
+ isPreventScrollSupported = true;
795
+ return false;
796
+ }
797
+ });
798
+ if (isPreventScrollSupported) {
799
+ preventReturnFocusRef.current = false;
800
+ } else {
801
+ preventReturnFocusRef.current = true;
802
+ }
803
+ }
804
+ }
805
+ events.on("openchange", onOpenChangeLocal);
806
+ function getReturnElement() {
807
+ const returnFocusValueOrFn = returnFocusRef.current;
808
+ let resolvedReturnFocusValue = typeof returnFocusValueOrFn === "function" ? returnFocusValueOrFn(closeTypeRef.current) : returnFocusValueOrFn;
809
+ if (resolvedReturnFocusValue === void 0 || resolvedReturnFocusValue === false) {
810
+ return null;
811
+ }
812
+ if (resolvedReturnFocusValue === null) {
813
+ resolvedReturnFocusValue = true;
814
+ }
815
+ if (typeof resolvedReturnFocusValue === "boolean") {
816
+ const el = domReference || getPreviouslyFocusedElement();
817
+ return el && el.isConnected ? el : null;
818
+ }
819
+ const fallback = domReference || getPreviouslyFocusedElement();
820
+ return useOpenChangeComplete.resolveRef(resolvedReturnFocusValue) || fallback || null;
821
+ }
822
+ return () => {
823
+ events.off("openchange", onOpenChangeLocal);
824
+ const activeEl = element.activeElement(doc);
825
+ const insideElements = getResolvedInsideElements();
826
+ const isFocusInsideFloatingTree = element.contains(floating, activeEl) || insideElements.some((element$1) => element$1 === activeEl || element.contains(element$1, activeEl)) || tree && popupStateMapping.getNodeChildren(tree.nodesRef.current, getNodeId(), false).some((node) => {
827
+ var _a;
828
+ return element.contains((_a = node.context) == null ? void 0 : _a.elements.floating, activeEl);
829
+ });
830
+ const returnElement = getReturnElement();
831
+ queueMicrotask(() => {
832
+ const tabbableReturnElement = getFirstTabbableElement(returnElement);
833
+ const hasExplicitReturnFocus = typeof returnFocusRef.current !== "boolean";
834
+ if (
835
+ // eslint-disable-next-line react-hooks/exhaustive-deps
836
+ returnFocusRef.current && !preventReturnFocusRef.current && floatingUi_utils_dom.isHTMLElement(tabbableReturnElement) && // If the focus moved somewhere else after mount, avoid returning focus
837
+ // since it likely entered a different element which should be
838
+ // respected: https://github.com/floating-ui/floating-ui/issues/2607
839
+ (!hasExplicitReturnFocus && tabbableReturnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)
840
+ ) {
841
+ tabbableReturnElement.focus({
842
+ preventScroll: true
843
+ });
844
+ }
845
+ preventReturnFocusRef.current = false;
846
+ });
847
+ };
848
+ }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, events, tree, domReference, getNodeId, getResolvedInsideElements]);
849
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
850
+ if (!detectBrowser.isWebKit || open || !floating) {
851
+ return;
852
+ }
853
+ const activeEl = element.activeElement(owner.ownerDocument(floating));
854
+ if (!floatingUi_utils_dom.isHTMLElement(activeEl) || !element.isTypeableElement(activeEl)) {
855
+ return;
856
+ }
857
+ if (element.contains(floating, activeEl)) {
858
+ activeEl.blur();
859
+ }
860
+ }, [open, floating]);
861
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
862
+ if (disabled || !portalContext) {
863
+ return void 0;
864
+ }
865
+ portalContext.setFocusManagerState({
866
+ modal,
867
+ closeOnFocusOut,
868
+ open,
869
+ onOpenChange: store.setOpen,
870
+ domReference
871
+ });
872
+ return () => {
873
+ portalContext.setFocusManagerState(null);
874
+ };
875
+ }, [disabled, portalContext, modal, open, store, closeOnFocusOut, domReference]);
876
+ useIsoLayoutEffect.useIsoLayoutEffect(() => {
877
+ if (disabled || !floatingFocusElement) {
878
+ return void 0;
879
+ }
880
+ handleTabIndex(floatingFocusElement, orderRef);
881
+ return () => {
882
+ queueMicrotask(clearDisconnectedPreviouslyFocusedElements);
883
+ };
884
+ }, [disabled, floatingFocusElement, orderRef]);
885
+ const shouldRenderGuards = !disabled && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);
886
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(React__namespace.Fragment, {
887
+ children: [shouldRenderGuards && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FocusGuard, {
888
+ "data-type": "inside",
889
+ ref: mergedBeforeGuardRef,
890
+ onFocus: (event2) => {
891
+ var _a;
892
+ if (modal) {
893
+ const els = getTabbableElements();
894
+ enqueueFocus(els[els.length - 1]);
895
+ } else if (portalContext == null ? void 0 : portalContext.portalNode) {
896
+ preventReturnFocusRef.current = false;
897
+ if (popupStateMapping.isOutsideEvent(event2, portalContext.portalNode)) {
898
+ const nextTabbable = popupStateMapping.getNextTabbable(domReference);
899
+ nextTabbable == null ? void 0 : nextTabbable.focus();
900
+ } else {
901
+ (_a = useOpenChangeComplete.resolveRef(previousFocusableElement ?? portalContext.beforeOutsideRef)) == null ? void 0 : _a.focus();
902
+ }
903
+ }
904
+ }
905
+ }), children, shouldRenderGuards && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(popupStateMapping.FocusGuard, {
906
+ "data-type": "inside",
907
+ ref: mergedAfterGuardRef,
908
+ onFocus: (event2) => {
909
+ var _a;
910
+ if (modal) {
911
+ enqueueFocus(getTabbableElements()[0]);
912
+ } else if (portalContext == null ? void 0 : portalContext.portalNode) {
913
+ if (closeOnFocusOut) {
914
+ preventReturnFocusRef.current = true;
915
+ }
916
+ if (popupStateMapping.isOutsideEvent(event2, portalContext.portalNode)) {
917
+ const prevTabbable = popupStateMapping.getPreviousTabbable(domReference);
918
+ prevTabbable == null ? void 0 : prevTabbable.focus();
919
+ } else {
920
+ (_a = useOpenChangeComplete.resolveRef(nextFocusableElement ?? portalContext.afterOutsideRef)) == null ? void 0 : _a.focus();
921
+ }
922
+ }
923
+ }
924
+ })]
925
+ });
926
+ }
927
+ function useEnhancedClickHandler(handler) {
928
+ const lastClickInteractionTypeRef = React__namespace.useRef("");
929
+ const handlePointerDown = React__namespace.useCallback((event2) => {
930
+ if (event2.defaultPrevented) {
931
+ return;
932
+ }
933
+ lastClickInteractionTypeRef.current = event2.pointerType;
934
+ handler(event2, event2.pointerType);
935
+ }, [handler]);
936
+ const handleClick = React__namespace.useCallback((event2) => {
937
+ if (event2.detail === 0) {
938
+ handler(event2, "keyboard");
939
+ return;
940
+ }
941
+ if ("pointerType" in event2) {
942
+ handler(event2, event2.pointerType);
943
+ } else {
944
+ handler(event2, lastClickInteractionTypeRef.current);
945
+ }
946
+ lastClickInteractionTypeRef.current = "";
947
+ }, [handler]);
948
+ return {
949
+ onClick: handleClick,
950
+ onPointerDown: handlePointerDown
951
+ };
952
+ }
953
+ function useOpenInteractionType(open) {
954
+ const [openMethod, setOpenMethod] = React__namespace.useState(null);
955
+ const handleTriggerClick = useStableCallback.useStableCallback((_, interactionType) => {
956
+ if (!open) {
957
+ setOpenMethod(interactionType || // On iOS Safari, the hitslop around touch targets means tapping outside an element's
958
+ // bounds does not fire `pointerdown` but does fire `mousedown`. The `interactionType`
959
+ // will be "" in that case.
960
+ (detectBrowser.isIOS ? "touch" : ""));
961
+ }
962
+ });
963
+ useValueChanged.useValueChanged(open, (previousOpen) => {
964
+ if (previousOpen && !open) {
965
+ setOpenMethod(null);
966
+ }
967
+ });
968
+ const {
969
+ onClick,
970
+ onPointerDown
971
+ } = useEnhancedClickHandler(handleTriggerClick);
972
+ return React__namespace.useMemo(() => ({
973
+ openMethod,
974
+ triggerProps: {
975
+ onClick,
976
+ onPointerDown
977
+ }
978
+ }), [openMethod, onClick, onPointerDown]);
979
+ }
980
+ const InternalBackdrop = /* @__PURE__ */ React__namespace.forwardRef(function InternalBackdrop2(props, ref) {
981
+ const {
982
+ cutout,
983
+ ...otherProps
984
+ } = props;
985
+ let clipPath;
986
+ if (cutout) {
987
+ const rect = cutout == null ? void 0 : cutout.getBoundingClientRect();
988
+ clipPath = `polygon(
989
+ 0% 0%,
990
+ 100% 0%,
991
+ 100% 100%,
992
+ 0% 100%,
993
+ 0% 0%,
994
+ ${rect.left}px ${rect.top}px,
995
+ ${rect.left}px ${rect.bottom}px,
996
+ ${rect.right}px ${rect.bottom}px,
997
+ ${rect.right}px ${rect.top}px,
998
+ ${rect.left}px ${rect.top}px
999
+ )`;
1000
+ }
1001
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", {
1002
+ ref,
1003
+ role: "presentation",
1004
+ "data-base-ui-inert": "",
1005
+ ...otherProps,
1006
+ style: {
1007
+ position: "fixed",
1008
+ inset: 0,
1009
+ userSelect: "none",
1010
+ WebkitUserSelect: "none",
1011
+ clipPath
1012
+ }
1013
+ });
1014
+ });
1015
+ if (process.env.NODE_ENV !== "production") InternalBackdrop.displayName = "InternalBackdrop";
1016
+ exports.FloatingFocusManager = FloatingFocusManager;
1017
+ exports.InternalBackdrop = InternalBackdrop;
1018
+ exports.enqueueFocus = enqueueFocus;
1019
+ exports.useOpenInteractionType = useOpenInteractionType;
1020
+ exports.useScrollLock = useScrollLock;
1021
+ //# sourceMappingURL=InternalBackdrop-B3WuVcuG.js.map