@tempoxyz/id 0.0.0-pr-293.sha-db2bcd0 → 0.0.0-pr-293.sha-e314a6e

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 (377) hide show
  1. package/dist/app/client/assets/Account-BYLpNFf3.css +1 -0
  2. package/dist/app/client/assets/Account-DKlYpUaF.js +1 -0
  3. package/dist/app/client/assets/Amount-ZdtluGf-.css +1 -0
  4. package/dist/app/client/assets/Amount-uCaXmEC1.js +1 -0
  5. package/dist/app/client/assets/{Approval-lMS61Hor.js → Approval-_VTK0bIA.js} +1 -1
  6. package/dist/app/client/assets/{Authentication-CNU_hdsE.js → Authentication-CcZraW4V.js} +1 -1
  7. package/dist/app/client/assets/Callout-Cpp2tekO.js +1 -0
  8. package/dist/app/client/assets/Callout-DBfEmP7q.css +1 -0
  9. package/dist/app/client/assets/{Chain-CgM0gkul.js → Chain-BaJbQHEq.js} +1 -1
  10. package/dist/app/client/assets/{Check-l6Xt-h8M.js → Check-T-Kf-w2J.js} +1 -1
  11. package/dist/app/client/assets/{ChevronRight-Dgx1CBfS.js → ChevronRight-Cb0izsfB.js} +1 -1
  12. package/dist/app/client/assets/{ChooseAccount-DKQvWYym.js → ChooseAccount-BbdtokuQ.js} +1 -1
  13. package/dist/app/client/assets/{Client-B3HiaUR7.js → Client-XdlKOIjT.js} +1 -1
  14. package/dist/app/client/assets/{Close-CHeDbDyp.js → Close-9qiwSZoT.js} +1 -1
  15. package/dist/app/client/assets/{Cloud-BnBzwFJQ.js → Cloud-yU0Kxv28.js} +1 -1
  16. package/dist/app/client/assets/CodeInput-BqRteSwD.css +1 -0
  17. package/dist/app/client/assets/CodeInput-C8ad0edh.js +1 -0
  18. package/dist/app/client/assets/Deposit-CclrAoXL.css +1 -0
  19. package/dist/app/client/assets/Deposit-b5yx-L71.js +1 -0
  20. package/dist/app/client/assets/DevTools-BYkmtuV5.css +1 -0
  21. package/dist/app/client/assets/DevTools-Cgd0Ogan.js +1 -0
  22. package/dist/app/client/assets/{DeviceApproval-DKQklicf.js → DeviceApproval-CGdmL9U5.js} +1 -1
  23. package/dist/app/client/assets/{Fingerprint-CVLZp0fE.js → Fingerprint-081gQp_i.js} +1 -1
  24. package/dist/app/client/assets/{Globe-RAkdkLVn.js → Globe-D4HEnXoi.js} +1 -1
  25. package/dist/app/client/assets/Grant-5a-n1gJH.css +1 -0
  26. package/dist/app/client/assets/Grant-C-7ibHJb.js +1 -0
  27. package/dist/app/client/assets/Hex-C9KeV7_9.css +1 -0
  28. package/dist/app/client/assets/Hex-COpLAksw.js +10 -0
  29. package/dist/app/client/assets/IconChip-Cr71cqFZ.js +1 -0
  30. package/dist/app/client/assets/IconChip-yqaQ2y_d.css +1 -0
  31. package/dist/app/client/assets/InputGroup-BMExR1w7.js +1 -0
  32. package/dist/app/client/assets/InputGroup-BlZvt9In.css +1 -0
  33. package/dist/app/client/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
  34. package/dist/app/client/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
  35. package/dist/app/client/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
  36. package/dist/app/client/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
  37. package/dist/app/client/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
  38. package/dist/app/client/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
  39. package/dist/app/client/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
  40. package/dist/app/client/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
  41. package/dist/app/client/assets/Loader-CVy-jQh9.js +1 -0
  42. package/dist/app/client/assets/{PopoverPopup-AaR182Lw.js → PopoverPopup-CQv00nl_.js} +1 -1
  43. package/dist/app/client/assets/Rows-CT3nC-Gp.js +1 -0
  44. package/dist/app/client/assets/Rows-DPGTUdA8.css +1 -0
  45. package/dist/app/client/assets/{Separator-C1NRk_mW.js → Separator-Doxz2kha.js} +1 -1
  46. package/dist/app/client/assets/SignIn-D2D3rbzT.js +1 -0
  47. package/dist/app/client/assets/SignIn-mlBTwUq4.css +1 -0
  48. package/dist/app/client/assets/Stack-D7Yt22Ed.css +1 -0
  49. package/dist/app/client/assets/Stack-qm24zmlV.js +1 -0
  50. package/dist/app/client/assets/ToolbarRootContext-Ctu7JTLk.js +1 -0
  51. package/dist/app/client/assets/Tooltip-arQraM0D.js +1 -0
  52. package/dist/app/client/assets/Tooltip-d3y9ESUJ.css +1 -0
  53. package/dist/app/client/assets/___-I98bns4o.css +1 -0
  54. package/dist/app/client/assets/___.flows-8Dmgeehd.js +5 -0
  55. package/dist/app/client/assets/{authorize-BQ1QbDZ8.js → authorize-DAtsqrNM.js} +1 -1
  56. package/dist/app/client/assets/{choose-account-Da0fLaYb.js → choose-account-DEFRgijo.js} +1 -1
  57. package/dist/app/client/assets/{deposit-CwKR_KjX.js → deposit--QiYWQfo.js} +1 -1
  58. package/dist/app/client/assets/{device-CCwq2oAs.js → device-Bq9xs5K6.js} +1 -1
  59. package/dist/app/client/assets/{error-Dj24A5n4.js → error-IQXxc1eM.js} +1 -1
  60. package/dist/app/client/assets/{getPseudoElementBounds-DH_jjqMh.js → getPseudoElementBounds-4olojy3W.js} +1 -1
  61. package/dist/app/client/assets/index-CyFheDuU.js +13 -0
  62. package/dist/app/client/assets/index-DSkPoKOK.css +1 -0
  63. package/dist/app/client/assets/{lazyRouteComponent-108fI1-o.js → lazyRouteComponent-Dz0rIGYN.js} +1 -1
  64. package/dist/app/client/assets/{login--cK4-SN_.js → login-B0BjHqjo.js} +1 -1
  65. package/dist/app/client/assets/pathUSD-BMh6ajrW.css +1 -0
  66. package/dist/app/client/assets/pathUSD-DuAfAKZZ.js +1 -0
  67. package/dist/app/client/assets/{removable-CZFK4Sbw.js → removable-CbJQgeuY.js} +1 -1
  68. package/dist/app/client/assets/{routes-BEKA6M9o.js → routes-BkBTe_Iu.js} +1 -1
  69. package/dist/app/client/assets/{suspense-ClIj0Mjn.js → suspense-Djz3yPi6.js} +1 -1
  70. package/dist/app/client/assets/useNavigate-B3GfD6JV.js +1 -0
  71. package/dist/app/client/assets/{useRegisterFieldControl-r_mKBm9D.js → useRegisterFieldControl-C8uwO_R4.js} +1 -1
  72. package/dist/app/client/assets/zyzz-DYC-X0_B.css +1 -0
  73. package/dist/app/client/assets/zyzz.config-DJRBo25J.js +2 -0
  74. package/dist/app/server/.vite/manifest.json +640 -608
  75. package/dist/app/server/assets/Account-BYLpNFf3.css +1 -0
  76. package/dist/app/server/assets/Account-g1_Uaj86.js +2 -0
  77. package/dist/app/server/assets/Account-g1_Uaj86.js.map +1 -0
  78. package/dist/app/server/assets/Amount-BXSuv2fx.js +2 -0
  79. package/dist/app/server/assets/Amount-BXSuv2fx.js.map +1 -0
  80. package/dist/app/server/assets/Amount-ZdtluGf-.css +1 -0
  81. package/dist/app/server/assets/{Approval-DhLkTvkI.js → Approval-DA8fDZIl.js} +2 -2
  82. package/dist/app/server/assets/{Approval-DhLkTvkI.js.map → Approval-DA8fDZIl.js.map} +1 -1
  83. package/dist/app/server/assets/{Authentication-Odm8-gfs.js → Authentication-BJgy8lyC.js} +2 -2
  84. package/dist/app/server/assets/{Authentication-Odm8-gfs.js.map → Authentication-BJgy8lyC.js.map} +1 -1
  85. package/dist/app/server/assets/{Authentication-DLWMd2mA.js → Authentication-CsSh3HGu.js} +2 -2
  86. package/dist/app/server/assets/{Authentication-DLWMd2mA.js.map → Authentication-CsSh3HGu.js.map} +1 -1
  87. package/dist/app/server/assets/Callout-DBfEmP7q.css +1 -0
  88. package/dist/app/server/assets/Callout-DlcQ5BUo.js +2 -0
  89. package/dist/app/server/assets/Callout-DlcQ5BUo.js.map +1 -0
  90. package/dist/app/server/assets/{Chain-CQgBRAXx.js → Chain-C9RGZDJm.js} +2 -2
  91. package/dist/app/server/assets/{Chain-CQgBRAXx.js.map → Chain-C9RGZDJm.js.map} +1 -1
  92. package/dist/app/server/assets/{Check-BwwQ6kDn.js → Check-CQIa-Y5d.js} +2 -2
  93. package/dist/app/server/assets/{Check-BwwQ6kDn.js.map → Check-CQIa-Y5d.js.map} +1 -1
  94. package/dist/app/server/assets/{ChevronRight-B_ft-uyS.js → ChevronRight-wzF9Mh2e.js} +2 -2
  95. package/dist/app/server/assets/{ChevronRight-B_ft-uyS.js.map → ChevronRight-wzF9Mh2e.js.map} +1 -1
  96. package/dist/app/server/assets/{ChooseAccount-FJJ2kRPk.js → ChooseAccount-De_YweJM.js} +2 -2
  97. package/dist/app/server/assets/{ChooseAccount-FJJ2kRPk.js.map → ChooseAccount-De_YweJM.js.map} +1 -1
  98. package/dist/app/server/assets/{Client-D3gnMDTr.js → Client-BAXSFa9e.js} +2 -2
  99. package/dist/app/server/assets/{Client-D3gnMDTr.js.map → Client-BAXSFa9e.js.map} +1 -1
  100. package/dist/app/server/assets/{ClientOnly-CbQVNHub.js → ClientOnly-B8k5xDwz.js} +2 -2
  101. package/dist/app/server/assets/{ClientOnly-CbQVNHub.js.map → ClientOnly-B8k5xDwz.js.map} +1 -1
  102. package/dist/app/server/assets/{Close-ChRMz-uR.js → Close-C74hwnOn.js} +2 -2
  103. package/dist/app/server/assets/{Close-ChRMz-uR.js.map → Close-C74hwnOn.js.map} +1 -1
  104. package/dist/app/server/assets/{Cloud-C3_mtq_Y.js → Cloud-CYXeneSe.js} +2 -2
  105. package/dist/app/server/assets/{Cloud-C3_mtq_Y.js.map → Cloud-CYXeneSe.js.map} +1 -1
  106. package/dist/app/server/assets/CodeInput-BqRteSwD.css +1 -0
  107. package/dist/app/server/assets/CodeInput-DdkMKOyq.js +2 -0
  108. package/dist/app/server/assets/CodeInput-DdkMKOyq.js.map +1 -0
  109. package/dist/app/server/assets/{Credential-D82PNwyx.js → Credential-DXcfPJEP.js} +2 -2
  110. package/dist/app/server/assets/{Credential-D82PNwyx.js.map → Credential-DXcfPJEP.js.map} +1 -1
  111. package/dist/app/server/assets/Deposit-CclrAoXL.css +1 -0
  112. package/dist/app/server/assets/Deposit-DOp5HCDX.js +2 -0
  113. package/dist/app/server/assets/Deposit-DOp5HCDX.js.map +1 -0
  114. package/dist/app/server/assets/DevTools-BYkmtuV5.css +1 -0
  115. package/dist/app/server/assets/DevTools-CxdPUN3V.js +2 -0
  116. package/dist/app/server/assets/DevTools-CxdPUN3V.js.map +1 -0
  117. package/dist/app/server/assets/{DeviceApproval-BhWgrv9l.js → DeviceApproval-o7T8XlX3.js} +2 -2
  118. package/dist/app/server/assets/{DeviceApproval-BhWgrv9l.js.map → DeviceApproval-o7T8XlX3.js.map} +1 -1
  119. package/dist/app/server/assets/{ExecutionError-DSSCSoHl.js → ExecutionError-DoRNvh3D.js} +2 -2
  120. package/dist/app/server/assets/{ExecutionError-DSSCSoHl.js.map → ExecutionError-DoRNvh3D.js.map} +1 -1
  121. package/dist/app/server/assets/{Faucet-Cv-nQMBR.js → Faucet-jp6zNWHE.js} +2 -2
  122. package/dist/app/server/assets/{Faucet-Cv-nQMBR.js.map → Faucet-jp6zNWHE.js.map} +1 -1
  123. package/dist/app/server/assets/{Fingerprint-B0Iay4Ws.js → Fingerprint-CAqjOS3T.js} +2 -2
  124. package/dist/app/server/assets/{Fingerprint-B0Iay4Ws.js.map → Fingerprint-CAqjOS3T.js.map} +1 -1
  125. package/dist/app/server/assets/{Globe-C6rnzTY0.js → Globe-BZ_5dGqa.js} +2 -2
  126. package/dist/app/server/assets/{Globe-C6rnzTY0.js.map → Globe-BZ_5dGqa.js.map} +1 -1
  127. package/dist/app/server/assets/Grant-5a-n1gJH.css +1 -0
  128. package/dist/app/{client/assets/Grant-DurkleN7.js → server/assets/Grant-BwOC2P94.js} +2 -1
  129. package/dist/app/server/assets/Grant-BwOC2P94.js.map +1 -0
  130. package/dist/app/server/assets/Hex-67thYs-f.js +11 -0
  131. package/dist/app/server/assets/Hex-67thYs-f.js.map +1 -0
  132. package/dist/app/server/assets/Hex-C9KeV7_9.css +1 -0
  133. package/dist/app/server/assets/IconChip-Cmufss8d.js +2 -0
  134. package/dist/app/server/assets/IconChip-Cmufss8d.js.map +1 -0
  135. package/dist/app/server/assets/IconChip-yqaQ2y_d.css +1 -0
  136. package/dist/app/server/assets/InputGroup-BlZvt9In.css +1 -0
  137. package/dist/app/server/assets/InputGroup-Bn2KM9pd.js +2 -0
  138. package/dist/app/server/assets/InputGroup-Bn2KM9pd.js.map +1 -0
  139. package/dist/app/server/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
  140. package/dist/app/server/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
  141. package/dist/app/server/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
  142. package/dist/app/server/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
  143. package/dist/app/server/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
  144. package/dist/app/server/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
  145. package/dist/app/server/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
  146. package/dist/app/server/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
  147. package/dist/app/server/assets/Loader-DvDbd8kj.js +2 -0
  148. package/dist/app/server/assets/{Loader-Ivf5dWFl.js.map → Loader-DvDbd8kj.js.map} +1 -1
  149. package/dist/app/server/assets/{Match-DusFDz9D.js → Match-C65vhhhD.js} +2 -2
  150. package/dist/app/server/assets/{Match-DusFDz9D.js.map → Match-C65vhhhD.js.map} +1 -1
  151. package/dist/app/server/assets/PopoverPopup-kuWGUSYM.js +2 -0
  152. package/dist/app/server/assets/{PopoverPopup-D98JOZVe.js.map → PopoverPopup-kuWGUSYM.js.map} +1 -1
  153. package/dist/app/server/assets/Rows-DPGTUdA8.css +1 -0
  154. package/dist/app/server/assets/Rows-eTPur_py.js +2 -0
  155. package/dist/app/server/assets/Rows-eTPur_py.js.map +1 -0
  156. package/dist/app/server/assets/{Separator-B6od-9JY.js → Separator-BPNenixO.js} +2 -2
  157. package/dist/app/server/assets/{Separator-B6od-9JY.js.map → Separator-BPNenixO.js.map} +1 -1
  158. package/dist/app/server/assets/SignIn-CVPZSR-8.js +2 -0
  159. package/dist/app/server/assets/SignIn-CVPZSR-8.js.map +1 -0
  160. package/dist/app/server/assets/SignIn-mlBTwUq4.css +1 -0
  161. package/dist/app/server/assets/Stack-D7Yt22Ed.css +1 -0
  162. package/dist/app/server/assets/Stack-DQMZBUUB.js +2 -0
  163. package/dist/app/server/assets/Stack-DQMZBUUB.js.map +1 -0
  164. package/dist/app/server/assets/ToolbarRootContext-5168W3t4.js +2 -0
  165. package/dist/app/server/assets/{ToolbarRootContext-BCmWBQ7n.js.map → ToolbarRootContext-5168W3t4.js.map} +1 -1
  166. package/dist/app/server/assets/Tooltip-DR3nssae.js +2 -0
  167. package/dist/app/server/assets/Tooltip-DR3nssae.js.map +1 -0
  168. package/dist/app/server/assets/Tooltip-d3y9ESUJ.css +1 -0
  169. package/dist/app/server/assets/___-I98bns4o.css +1 -0
  170. package/dist/app/server/assets/___.flows-D_J822MU.js +6 -0
  171. package/dist/app/server/assets/___.flows-D_J822MU.js.map +1 -0
  172. package/dist/app/server/assets/_tanstack-start-manifest_v-DQjMcFpU.js +1 -0
  173. package/dist/app/server/assets/{_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-Drf_Iqhc.js → _zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-EmCsnNUQ.js} +2 -2
  174. package/dist/app/server/assets/{_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-Drf_Iqhc.js.map → _zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-EmCsnNUQ.js.map} +1 -1
  175. package/dist/app/server/assets/{accessKey-CxNqjouy.js → accessKey-DlBe71R7.js} +4 -4
  176. package/dist/app/server/assets/{accessKey-CxNqjouy.js.map → accessKey-DlBe71R7.js.map} +1 -1
  177. package/dist/app/server/assets/{authorize-D_5EG0WN.js → authorize-C3nY01zc.js} +2 -2
  178. package/dist/app/server/assets/{authorize-D_5EG0WN.js.map → authorize-C3nY01zc.js.map} +1 -1
  179. package/dist/app/server/assets/{authorize-pZETCSux.js → authorize-C9tfZ34z.js} +2 -2
  180. package/dist/app/server/assets/{authorize-pZETCSux.js.map → authorize-C9tfZ34z.js.map} +1 -1
  181. package/dist/app/server/assets/{authorize-DXYo-K2n-08rIhXFT.js → authorize-DXYo-K2n-Bc8o9t1x.js} +2 -2
  182. package/dist/app/server/assets/{authorize-DXYo-K2n-08rIhXFT.js.map → authorize-DXYo-K2n-Bc8o9t1x.js.map} +1 -1
  183. package/dist/app/server/assets/{choose-account-BOPrs9l7.js → choose-account-DNfcLweT.js} +2 -2
  184. package/dist/app/server/assets/{choose-account-BOPrs9l7.js.map → choose-account-DNfcLweT.js.map} +1 -1
  185. package/dist/app/server/assets/{choose-account-MDW4jp29.js → choose-account-Lq0qFqBr.js} +2 -2
  186. package/dist/app/server/assets/{choose-account-MDW4jp29.js.map → choose-account-Lq0qFqBr.js.map} +1 -1
  187. package/dist/app/server/assets/{core-Dxqe4Tzf.js → core-Ci_AVqAl.js} +2 -2
  188. package/dist/app/server/assets/{core-Dxqe4Tzf.js.map → core-Ci_AVqAl.js.map} +1 -1
  189. package/dist/app/server/assets/default-u_dwuiYb-D3URkhAV.js +2 -0
  190. package/dist/app/server/assets/{default-u_dwuiYb-BZX-cEte.js.map → default-u_dwuiYb-D3URkhAV.js.map} +1 -1
  191. package/dist/app/server/assets/{deposit-AgLrOoA3.js → deposit-Ch8VqCtG.js} +2 -2
  192. package/dist/app/server/assets/{deposit-AgLrOoA3.js.map → deposit-Ch8VqCtG.js.map} +1 -1
  193. package/dist/app/server/assets/{deposit-Cjt69KmJ.js → deposit-xQrouL3f.js} +2 -2
  194. package/dist/app/server/assets/{deposit-Cjt69KmJ.js.map → deposit-xQrouL3f.js.map} +1 -1
  195. package/dist/app/server/assets/{device-TEgIth9V.js → device-BAsgIC7D.js} +2 -2
  196. package/dist/app/server/assets/{device-TEgIth9V.js.map → device-BAsgIC7D.js.map} +1 -1
  197. package/dist/app/server/assets/{device-DO_RH0Or.js → device-BV99aHMG.js} +2 -2
  198. package/dist/app/server/assets/{device-DO_RH0Or.js.map → device-BV99aHMG.js.map} +1 -1
  199. package/dist/app/server/assets/dist-BhIyCFP8.js +1 -0
  200. package/dist/app/server/assets/{dist-C9wLcfH8.js → dist-C-Rzwa6V.js} +2 -2
  201. package/dist/app/server/assets/{dist-C9wLcfH8.js.map → dist-C-Rzwa6V.js.map} +1 -1
  202. package/dist/app/server/assets/{dist-SBl0rlY-.js → dist-CJN10pUl.js} +2 -2
  203. package/dist/app/server/assets/{dist-SBl0rlY-.js.map → dist-CJN10pUl.js.map} +1 -1
  204. package/dist/app/server/assets/{effect-QlVUlMFu-aB2jdYth.js → effect-QlVUlMFu-svPBY1dH.js} +2 -2
  205. package/dist/app/server/assets/{effect-QlVUlMFu-aB2jdYth.js.map → effect-QlVUlMFu-svPBY1dH.js.map} +1 -1
  206. package/dist/app/server/assets/{error-BDVg4EUJ.js → error-CHeOE_lh.js} +2 -2
  207. package/dist/app/server/assets/{error-BDVg4EUJ.js.map → error-CHeOE_lh.js.map} +1 -1
  208. package/dist/app/server/assets/{error-Yg6jqry-.js → error-PecJkSHO.js} +2 -2
  209. package/dist/app/server/assets/{error-Yg6jqry-.js.map → error-PecJkSHO.js.map} +1 -1
  210. package/dist/app/server/assets/{factory-BPswjDEW.js → factory-Bs0vLkBr.js} +2 -2
  211. package/dist/app/server/assets/{factory-BPswjDEW.js.map → factory-Bs0vLkBr.js.map} +1 -1
  212. package/dist/app/server/assets/getPseudoElementBounds-DIn3v91B.js +2 -0
  213. package/dist/app/server/assets/{getPseudoElementBounds-BdqJhx6M.js.map → getPseudoElementBounds-DIn3v91B.js.map} +1 -1
  214. package/dist/app/server/assets/{index-CLddUTqr-Bavq3Qss.js → index-CLddUTqr-CmUyZRXY.js} +2 -2
  215. package/dist/app/server/assets/{index-CLddUTqr-Bavq3Qss.js.map → index-CLddUTqr-CmUyZRXY.js.map} +1 -1
  216. package/dist/app/server/assets/{index-DZEfthgZ--TkOBRwP.js → index-DZEfthgZ-Bkf7F_aP.js} +2 -2
  217. package/dist/app/server/assets/{index-DZEfthgZ--TkOBRwP.js.map → index-DZEfthgZ-Bkf7F_aP.js.map} +1 -1
  218. package/dist/app/server/assets/{kysely-adapter-BVql8na5.js → kysely-adapter-DhztbDJz.js} +1 -1
  219. package/dist/app/server/assets/{lazyRouteComponent-BXabRVTE.js → lazyRouteComponent-DOSE663E.js} +2 -2
  220. package/dist/app/server/assets/{lazyRouteComponent-BXabRVTE.js.map → lazyRouteComponent-DOSE663E.js.map} +1 -1
  221. package/dist/app/server/assets/{login-BR3Vh4Jw.js → login-6K4ND-gN.js} +2 -2
  222. package/dist/app/server/assets/{login-BR3Vh4Jw.js.map → login-6K4ND-gN.js.map} +1 -1
  223. package/dist/app/server/assets/{login-DtRzF4FQ.js → login-CGq85v-9.js} +2 -2
  224. package/dist/app/server/assets/{login-DtRzF4FQ.js.map → login-CGq85v-9.js.map} +1 -1
  225. package/dist/app/server/assets/{matchContext-Cuq8aYzA.js → matchContext-BHbopc_c.js} +2 -2
  226. package/dist/app/server/assets/{matchContext-Cuq8aYzA.js.map → matchContext-BHbopc_c.js.map} +1 -1
  227. package/dist/app/server/assets/{mutation-BseSOMT8.js → mutation-D0MCZKRo.js} +2 -2
  228. package/dist/app/server/assets/{mutation-BseSOMT8.js.map → mutation-D0MCZKRo.js.map} +1 -1
  229. package/dist/app/server/assets/pathUSD-BMh6ajrW.css +1 -0
  230. package/dist/app/server/assets/pathUSD-DqRWfB70.js +2 -0
  231. package/dist/app/server/assets/pathUSD-DqRWfB70.js.map +1 -0
  232. package/dist/app/server/assets/{query-lzX3sTGO.js → query-BfAOtP6H.js} +2 -2
  233. package/dist/app/server/assets/{query-lzX3sTGO.js.map → query-BfAOtP6H.js.map} +1 -1
  234. package/dist/app/server/assets/react-dom-BbDIEd_j.css +1 -0
  235. package/dist/app/server/assets/{react-dom-DtwtyQPy.js → react-dom-pSpaua7D.js} +1 -1
  236. package/dist/app/server/assets/{react-dom-DtwtyQPy.js.map → react-dom-pSpaua7D.js.map} +1 -1
  237. package/dist/app/server/assets/{removable-HVB1MGzn.js → removable-BIS_RRBc.js} +2 -2
  238. package/dist/app/server/assets/{removable-HVB1MGzn.js.map → removable-BIS_RRBc.js.map} +1 -1
  239. package/dist/app/server/assets/{resolveError-DSqzEjUE.js → resolveError-DPXmbkOB.js} +2 -2
  240. package/dist/app/server/assets/{resolveError-DSqzEjUE.js.map → resolveError-DPXmbkOB.js.map} +1 -1
  241. package/dist/app/server/assets/{router-uhTdTHZE.js → router-nrTsbXpb.js} +2 -2
  242. package/dist/app/server/assets/router-nrTsbXpb.js.map +1 -0
  243. package/dist/app/server/assets/routes-BgiIzrOt.css +1 -0
  244. package/dist/app/server/assets/{routes-CeDOMpI-.js → routes-ClVSwEtU.js} +2 -2
  245. package/dist/app/server/assets/{routes-CeDOMpI-.js.map → routes-ClVSwEtU.js.map} +1 -1
  246. package/dist/app/server/assets/routes-DM3C9lXZ.js +2 -0
  247. package/dist/app/server/assets/routes-DM3C9lXZ.js.map +1 -0
  248. package/dist/app/server/assets/{schemas-fV27l6kI.js → schemas-CFw4XgfH.js} +2 -2
  249. package/dist/app/server/assets/{schemas-fV27l6kI.js.map → schemas-CFw4XgfH.js.map} +1 -1
  250. package/dist/app/server/assets/{secp256k1-5tp4GQIt.js → secp256k1-BmATpikU.js} +2 -2
  251. package/dist/app/server/assets/{secp256k1-5tp4GQIt.js.map → secp256k1-BmATpikU.js.map} +1 -1
  252. package/dist/app/server/assets/{sury-CWZTCd75-BPXRo6iz.js → sury-CWZTCd75-B2_9nmQ-.js} +2 -2
  253. package/dist/app/server/assets/{sury-CWZTCd75-BPXRo6iz.js.map → sury-CWZTCd75-B2_9nmQ-.js.map} +1 -1
  254. package/dist/app/server/assets/{suspense-CVCU9Kbi.js → suspense-gv0MCXZ8.js} +2 -2
  255. package/dist/app/server/assets/{suspense-CVCU9Kbi.js.map → suspense-gv0MCXZ8.js.map} +1 -1
  256. package/dist/app/server/assets/{useNavigate-D9psnozp.js → useNavigate-gn6-bYOz.js} +2 -2
  257. package/dist/app/server/assets/{useNavigate-D9psnozp.js.map → useNavigate-gn6-bYOz.js.map} +1 -1
  258. package/dist/app/server/assets/useRegisterFieldControl-DMeVvRtG.js +2 -0
  259. package/dist/app/server/assets/{useRegisterFieldControl-UOdCWAKS.js.map → useRegisterFieldControl-DMeVvRtG.js.map} +1 -1
  260. package/dist/app/server/assets/{utils-Dst7Jy9U.js → utils-CJnLBS6t.js} +2 -2
  261. package/dist/app/server/assets/{utils-Dst7Jy9U.js.map → utils-CJnLBS6t.js.map} +1 -1
  262. package/dist/app/server/assets/{valibot--1zFm7rT-LDsJca69.js → valibot--1zFm7rT-DAm9l6Yd.js} +2 -2
  263. package/dist/app/server/assets/{valibot--1zFm7rT-LDsJca69.js.map → valibot--1zFm7rT-DAm9l6Yd.js.map} +1 -1
  264. package/dist/app/server/assets/{valibot-D_HTw1Gn-DY-tIZ72.js → valibot-D_HTw1Gn-B_uu9X0a.js} +2 -2
  265. package/dist/app/server/assets/{valibot-D_HTw1Gn-DY-tIZ72.js.map → valibot-D_HTw1Gn-B_uu9X0a.js.map} +1 -1
  266. package/dist/app/server/assets/{zod-Bwrt9trS-Cf4c1iF8.js → zod-Bwrt9trS-DDq3sdx6.js} +2 -2
  267. package/dist/app/server/assets/{zod-Bwrt9trS-Cf4c1iF8.js.map → zod-Bwrt9trS-DDq3sdx6.js.map} +1 -1
  268. package/dist/app/server/assets/{zod-DSgpEGAE-IkLVlUaZ.js → zod-DSgpEGAE-Dzlub58Z.js} +2 -2
  269. package/dist/app/server/assets/{zod-DSgpEGAE-IkLVlUaZ.js.map → zod-DSgpEGAE-Dzlub58Z.js.map} +1 -1
  270. package/dist/app/server/assets/zyzz-6R2K52xP.css +1 -0
  271. package/dist/app/server/assets/{zyzz.config-DYq-16_0.js → zyzz.config-CW977vYL.js} +3 -3
  272. package/dist/app/server/assets/zyzz.config-CW977vYL.js.map +1 -0
  273. package/dist/app/server/index.js +3 -3
  274. package/package.json +1 -1
  275. package/dist/app/client/assets/Account-DiXbQ7gq.css +0 -1
  276. package/dist/app/client/assets/Account-JXT-dSA8.js +0 -1
  277. package/dist/app/client/assets/Amount-C5uw89Ge.js +0 -1
  278. package/dist/app/client/assets/Amount-Ck6sPRDT.css +0 -1
  279. package/dist/app/client/assets/Callout-DE0CvxbE.css +0 -1
  280. package/dist/app/client/assets/Callout-D_dLrptL.js +0 -1
  281. package/dist/app/client/assets/CodeInput-CXbj-o_B.js +0 -1
  282. package/dist/app/client/assets/CodeInput-C_clyqA2.css +0 -1
  283. package/dist/app/client/assets/Deposit-CAkrtNYZ.css +0 -1
  284. package/dist/app/client/assets/Deposit-Cv7IQBO0.js +0 -1
  285. package/dist/app/client/assets/DevTools-CnWAfvO2.js +0 -1
  286. package/dist/app/client/assets/DevTools-DLG9O0YT.css +0 -1
  287. package/dist/app/client/assets/Grant-B6bmC4rh.css +0 -1
  288. package/dist/app/client/assets/Hex-BR5nHbFT.js +0 -10
  289. package/dist/app/client/assets/Hex-CriDfcNg.css +0 -1
  290. package/dist/app/client/assets/IconChip-BVqRSUpG.css +0 -1
  291. package/dist/app/client/assets/IconChip-ClKbN-8M.js +0 -1
  292. package/dist/app/client/assets/InputGroup-4QFqa-T2.css +0 -1
  293. package/dist/app/client/assets/InputGroup-CEI6gBId.js +0 -1
  294. package/dist/app/client/assets/Inter-Variable-DiVDrmQJ.woff2 +0 -0
  295. package/dist/app/client/assets/Loader-CtzJeMeX.js +0 -1
  296. package/dist/app/client/assets/Rows-DgpXomcK.js +0 -1
  297. package/dist/app/client/assets/Rows-oSTffNii.css +0 -1
  298. package/dist/app/client/assets/SignIn-CjGB1wk9.js +0 -1
  299. package/dist/app/client/assets/SignIn-Dz1G9XNf.css +0 -1
  300. package/dist/app/client/assets/Stack-90EFgtQe.js +0 -1
  301. package/dist/app/client/assets/Stack-CKvHhjzW.css +0 -1
  302. package/dist/app/client/assets/ToolbarRootContext-dnisUzmP.js +0 -1
  303. package/dist/app/client/assets/Tooltip-9TI_rDvs.css +0 -1
  304. package/dist/app/client/assets/Tooltip-C3H_9mgz.js +0 -1
  305. package/dist/app/client/assets/___-7yUISk6H.css +0 -1
  306. package/dist/app/client/assets/___.flows-DwoJPGMf.js +0 -5
  307. package/dist/app/client/assets/index-BXTO-7dr.css +0 -1
  308. package/dist/app/client/assets/index-CkKM7xlX.js +0 -13
  309. package/dist/app/client/assets/pathUSD-DY3ycgMd.js +0 -1
  310. package/dist/app/client/assets/pathUSD-Dn2NadYx.css +0 -1
  311. package/dist/app/client/assets/useNavigate-DsbQ8bTr.js +0 -1
  312. package/dist/app/client/assets/zyzz-MTPfhrAv.css +0 -1
  313. package/dist/app/client/assets/zyzz.config-ENEfJGzk.js +0 -2
  314. package/dist/app/server/assets/Account-BqjoGTzm.js +0 -2
  315. package/dist/app/server/assets/Account-BqjoGTzm.js.map +0 -1
  316. package/dist/app/server/assets/Account-DiXbQ7gq.css +0 -1
  317. package/dist/app/server/assets/Amount-Ck6sPRDT.css +0 -1
  318. package/dist/app/server/assets/Amount-CmypanEu.js +0 -2
  319. package/dist/app/server/assets/Amount-CmypanEu.js.map +0 -1
  320. package/dist/app/server/assets/Callout-DE0CvxbE.css +0 -1
  321. package/dist/app/server/assets/Callout-_eafmkya.js +0 -2
  322. package/dist/app/server/assets/Callout-_eafmkya.js.map +0 -1
  323. package/dist/app/server/assets/CodeInput-CRxIP0KX.js +0 -2
  324. package/dist/app/server/assets/CodeInput-CRxIP0KX.js.map +0 -1
  325. package/dist/app/server/assets/CodeInput-C_clyqA2.css +0 -1
  326. package/dist/app/server/assets/Deposit-CAkrtNYZ.css +0 -1
  327. package/dist/app/server/assets/Deposit-CiWidviP.js +0 -2
  328. package/dist/app/server/assets/Deposit-CiWidviP.js.map +0 -1
  329. package/dist/app/server/assets/DevTools-BJcNvNjx.js +0 -2
  330. package/dist/app/server/assets/DevTools-BJcNvNjx.js.map +0 -1
  331. package/dist/app/server/assets/DevTools-DLG9O0YT.css +0 -1
  332. package/dist/app/server/assets/Grant-B6bmC4rh.css +0 -1
  333. package/dist/app/server/assets/Grant-N8RQy7lZ.js +0 -2
  334. package/dist/app/server/assets/Grant-N8RQy7lZ.js.map +0 -1
  335. package/dist/app/server/assets/Hex-CriDfcNg.css +0 -1
  336. package/dist/app/server/assets/Hex-vNjxlXvk.js +0 -11
  337. package/dist/app/server/assets/Hex-vNjxlXvk.js.map +0 -1
  338. package/dist/app/server/assets/IconChip-BQdjH8i6.js +0 -2
  339. package/dist/app/server/assets/IconChip-BQdjH8i6.js.map +0 -1
  340. package/dist/app/server/assets/IconChip-BVqRSUpG.css +0 -1
  341. package/dist/app/server/assets/InputGroup-4QFqa-T2.css +0 -1
  342. package/dist/app/server/assets/InputGroup-BhUIBTgI.js +0 -2
  343. package/dist/app/server/assets/InputGroup-BhUIBTgI.js.map +0 -1
  344. package/dist/app/server/assets/Inter-Variable-DiVDrmQJ.woff2 +0 -0
  345. package/dist/app/server/assets/Loader-Ivf5dWFl.js +0 -2
  346. package/dist/app/server/assets/PopoverPopup-D98JOZVe.js +0 -2
  347. package/dist/app/server/assets/Rows-BuyZXkPa.js +0 -2
  348. package/dist/app/server/assets/Rows-BuyZXkPa.js.map +0 -1
  349. package/dist/app/server/assets/Rows-oSTffNii.css +0 -1
  350. package/dist/app/server/assets/SignIn-D7jl6zbw.js +0 -2
  351. package/dist/app/server/assets/SignIn-D7jl6zbw.js.map +0 -1
  352. package/dist/app/server/assets/SignIn-Dz1G9XNf.css +0 -1
  353. package/dist/app/server/assets/Stack-C3ecM7vx.js +0 -2
  354. package/dist/app/server/assets/Stack-C3ecM7vx.js.map +0 -1
  355. package/dist/app/server/assets/Stack-CKvHhjzW.css +0 -1
  356. package/dist/app/server/assets/ToolbarRootContext-BCmWBQ7n.js +0 -2
  357. package/dist/app/server/assets/Tooltip-9TI_rDvs.css +0 -1
  358. package/dist/app/server/assets/Tooltip-D3NLigmC.js +0 -2
  359. package/dist/app/server/assets/Tooltip-D3NLigmC.js.map +0 -1
  360. package/dist/app/server/assets/___-7yUISk6H.css +0 -1
  361. package/dist/app/server/assets/___.flows-DRvHKxBR.js +0 -6
  362. package/dist/app/server/assets/___.flows-DRvHKxBR.js.map +0 -1
  363. package/dist/app/server/assets/_tanstack-start-manifest_v-BIobT_5u.js +0 -1
  364. package/dist/app/server/assets/default-u_dwuiYb-BZX-cEte.js +0 -2
  365. package/dist/app/server/assets/dist-k0uWU-Rh.js +0 -1
  366. package/dist/app/server/assets/getPseudoElementBounds-BdqJhx6M.js +0 -2
  367. package/dist/app/server/assets/pathUSD-CVs71wGH.js +0 -2
  368. package/dist/app/server/assets/pathUSD-CVs71wGH.js.map +0 -1
  369. package/dist/app/server/assets/pathUSD-Dn2NadYx.css +0 -1
  370. package/dist/app/server/assets/react-dom-bupMaze0.css +0 -1
  371. package/dist/app/server/assets/router-uhTdTHZE.js.map +0 -1
  372. package/dist/app/server/assets/routes-ZveUsG66.js +0 -2
  373. package/dist/app/server/assets/routes-ZveUsG66.js.map +0 -1
  374. package/dist/app/server/assets/routes-dxKeFXjL.css +0 -1
  375. package/dist/app/server/assets/useRegisterFieldControl-UOdCWAKS.js +0 -2
  376. package/dist/app/server/assets/zyzz-DuvTIyXM.css +0 -1
  377. package/dist/app/server/assets/zyzz.config-DYq-16_0.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarRootContext-BCmWBQ7n.js","names":["ownerWindow","REASONS.focusOut","platform.engine.webkit","REASONS.triggerPress","platform.os.ios","ownerWindow","platform.engine.webkit","platform.os.ios","_formatErrorMessage","require_react","__toESM","require_jsx_runtime","useAnimationFrame","getNodeName","isTabbable","getFloatingFocusElement","focusable","isElementVisible","activeElement","getNextTabbable","FocusGuard","getTarget","closest","getPreviousTabbable","isTypeableElement","createAttribute","AnimationFrame","triggerPress","NOOP","tabbable","ownerDocument","ios","Timeout","isOverflowElement","focusOut","useStableCallback","webkit","isTypeableCombobox","isShadowRoot","mergeCleanups","isHTMLElement","contains","getWindow","addEventListener","useMergedRefs","formatErrorMessage","EMPTY_OBJECT","createChangeEventDetails","usePortalContext","useTimeout","resolveRef","useIsoLayoutEffect","isOutsideEvent","getNodeChildren","useValueAsRef","isVirtualClick","useFloatingTree","stopEvent","isVirtualPointerEvent","isMouseLikePointerType","getNodeAncestors","import_react","rafId","enqueueFocus","options","exec","shouldFocus","el","sync","currentRafId","markerName","ariaHiddenCounterMap","uncontrolledElementsSet","markerCounterMap","lockCount","unwrapHost","node","correctElements","targets","parent","target","correctedTarget","x","buildKeepSet","keep","collectOutsideElements","outside","walk","keepElements","root","applyAttributeToOthers","avoidElements","body","uncorrectedAvoidElements","markerTargets","mark","hiddenElements","markedElements","ariaHidden","ariaLiveElements","controlElements","attr","alreadyHidden","counterValue","markerValue","element","markOthers","import_jsx_runtime","getEventType","win","event","lastInteractionType","LIST_LIMIT","previouslyFocusedElements","clearDisconnectedPreviouslyFocusedElements","entry","addPreviouslyFocusedElement","getPreviouslyFocusedElement","getFirstTabbableElement","container","handleTabIndex","floatingFocusElement","tabbableContent","dataTabIndex","tabIndex","FloatingFocusManager","store","props","open","domReference","floating","getNodeId","dataRef","ignoreInitialFocus","initialFocus","isUntrappedTypeableCombobox","initialFocusRef","returnFocusRef","returnFocus","explicitReturnFocusRef","explicitReturnFocus","openInteractionTypeRef","openInteractionType","openRef","tree","externalTree","portalContext","preventReturnFocusRef","isPointerDownRef","pointerDownOutsideRef","lastFocusedTabbableRef","closeTypeRef","lastInteractionTypeRef","beforeGuardRef","afterGuardRef","mergedBeforeGuardRef","beforeContentFocusGuardRef","mergedAfterGuardRef","blurTimeout","pointerDownTimeout","restoreFocusFrame","isInsidePortal","getTabbableContent","getResolvedInsideElements","getInsideElements","disabled","modal","onKeyDown","doc","clearPointerDownOutside","onPointerDown","insideElements","pointerTargetInside","closeOnFocusOut","handlePointerDown","handleFocusIn","handleFocusOutside","relatedTarget","currentTarget","nodeId","triggers","isRelatedFocusGuard","previousFocusableElement","nextFocusableElement","movedToUnrelatedNode","trigger","restoreFocus","prevTabbable","nodeToFocus","markInsideReactTree","domReferenceElement","portalNodes","rootAncestorComboboxDomReference","ariaHiddenCleanup","markerCleanup","previouslyFocusedElement","initialFocusValueOrFn","resolvedInitialFocus","focusableElements","getDefaultFocusElement","elToFocus","hadFocusInside","openEvent","openedByVirtualPress","currentActiveElement","pendingReturnFocusRef","elementFocusedBeforeOpen","preferPreviousFocus","onOpenChangeLocal","details","isPreventScrollSupported","events","getReturnElement","returnFocusValueOrFn","resolvedReturnFocusValue","closeType","referenceReturnElement","previousReturnElement","defaultReturnElement","activeEl","isFocusInsideFloatingTree","returnElement","job","tabbableReturnElement","hasExplicitReturnFocus","focusOptions","shouldRenderGuards","els","children","useClick","eventOption","pointerTypeRef","frame","touchOpenTimeout","reference","setOpenWithTouchDelay","reason","nativeEvent","nextOpen","pointerType","touchOpenDelay","getNextOpen","hasClickedOnInactiveTrigger","toggle","stickIfOpen","isClickLikeOpenEvent","ignoreMouse","openEventType","isTypeable","eventCurrentTarget","enabled","useEnhancedClickHandler","lastClickInteractionTypeRef","handler","useValueChanged","valueRef","value","onChangeCallback","onChange","useOpenMethodTriggerProps","setOpenMethod","interactionType","onClick","useOpenInteractionType","openMethod","triggerProps","previousOpen","InternalBackdrop","otherProps","clipPath","cutout","rect","originalHtmlStyles","originalBodyStyles","originalHtmlScrollBehavior","getViewportScroller","html","isPageScrollLocked","hasInsetScrollbars","referenceElement","supportsStableScrollbarGutter","scrollContainer","originalScrollContainerOverflowY","originalHtmlStyleGutter","before","after","preventScrollOverlayScrollbars","elementToLock","originalElementToLockStyles","preventScrollInsetScrollbars","scrollTop","scrollLeft","updateGutterOnly","resizeFrame","lockScroll","htmlStyles","bodyStyles","scrollbarGutterValue","isScrollableY","isScrollableX","hasConstantOverflowY","hasConstantOverflowX","scrollbarWidth","scrollbarHeight","marginY","marginX","cleanup","handleResize","unsubscribeResize","SCROLL_LOCKER","observer","hasOverlayScrollbars","useScrollLock","VIEWPORT_WIDTH_TOLERANCE_PX","useAnchoredPopupScrollLock","touchOpenShouldLockScroll","setTouchOpenShouldLockScroll","touchOpen","positionerElement","viewportWidth","popupWidth","COMPOSITE_KEYS","ToolbarRootContext","useToolbarRootContext","context","optional"],"sources":["../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/floating-ui-react/utils/enqueueFocus.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/floating-ui-react/utils/markOthers.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/floating-ui-react/components/FloatingFocusManager.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/floating-ui-react/hooks/useClick.mjs","../../../../../node_modules/.pnpm/@base-ui+utils@0.5.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/utils/useEnhancedClickHandler.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/internals/useValueChanged.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/useOpenInteractionType.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/InternalBackdrop.mjs","../../../../../node_modules/.pnpm/@base-ui+utils@0.5.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/utils/useScrollLock.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/useAnchoredPopupScrollLock.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/internals/composite/composite.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toolbar/root/ToolbarRootContext.mjs"],"sourcesContent":["import { NOOP } from '@base-ui/utils/empty';\nlet rafId = 0;\nexport function enqueueFocus(el, options = {}) {\n const {\n preventScroll = false,\n sync = false,\n shouldFocus\n } = options;\n cancelAnimationFrame(rafId);\n function exec() {\n if (shouldFocus && !shouldFocus()) {\n return;\n }\n el?.focus({\n preventScroll\n });\n }\n if (sync) {\n exec();\n return NOOP;\n }\n const currentRafId = requestAnimationFrame(exec);\n rafId = currentRafId;\n return () => {\n if (rafId === currentRafId) {\n cancelAnimationFrame(currentRafId);\n rafId = 0;\n }\n };\n}","// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nimport { getNodeName, isShadowRoot } from '@floating-ui/utils/dom';\nimport { ownerDocument } from '@base-ui/utils/owner';\nconst markerName = 'data-base-ui-inert';\nlet ariaHiddenCounterMap = new WeakMap();\nlet uncontrolledElementsSet = new WeakSet();\nlet markerCounterMap = new WeakMap();\nlet lockCount = 0;\nfunction unwrapHost(node) {\n if (!node) {\n return null;\n }\n return isShadowRoot(node) ? node.host : unwrapHost(node.parentNode);\n}\nconst correctElements = (parent, targets) => targets.map(target => {\n if (parent.contains(target)) {\n return target;\n }\n const correctedTarget = unwrapHost(target);\n if (parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n return null;\n}).filter(x => x != null);\nconst buildKeepSet = targets => {\n const keep = new Set();\n targets.forEach(target => {\n let node = target;\n while (node && !keep.has(node)) {\n keep.add(node);\n node = node.parentNode;\n }\n });\n return keep;\n};\nconst collectOutsideElements = (root, keepElements, stopElements) => {\n const outside = [];\n const walk = parent => {\n if (!parent || stopElements.has(parent)) {\n return;\n }\n Array.from(parent.children).forEach(node => {\n if (getNodeName(node) === 'script') {\n return;\n }\n if (keepElements.has(node)) {\n walk(node);\n } else {\n outside.push(node);\n }\n });\n };\n walk(root);\n return outside;\n};\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, {\n mark = true\n}) {\n const avoidElements = correctElements(body, uncorrectedAvoidElements);\n const markerTargets = mark ? collectOutsideElements(body, buildKeepSet(avoidElements), new Set(avoidElements)) : [];\n const hiddenElements = [];\n const markedElements = [];\n if (ariaHidden) {\n const ariaLiveElements = correctElements(body, Array.from(body.querySelectorAll('[aria-live]')));\n const controlElements = avoidElements.concat(ariaLiveElements);\n const controlTargets = collectOutsideElements(body, buildKeepSet(controlElements), new Set(controlElements));\n controlTargets.forEach(node => {\n const attr = node.getAttribute('aria-hidden');\n const alreadyHidden = attr !== null && attr !== 'false';\n const counterValue = (ariaHiddenCounterMap.get(node) || 0) + 1;\n ariaHiddenCounterMap.set(node, counterValue);\n hiddenElements.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledElementsSet.add(node);\n }\n if (!alreadyHidden) {\n node.setAttribute('aria-hidden', 'true');\n }\n });\n }\n if (mark) {\n markerTargets.forEach(node => {\n const markerValue = (markerCounterMap.get(node) || 0) + 1;\n markerCounterMap.set(node, markerValue);\n markedElements.push(node);\n if (markerValue === 1) {\n node.setAttribute(markerName, '');\n }\n });\n }\n lockCount += 1;\n return () => {\n hiddenElements.forEach(element => {\n const counterValue = (ariaHiddenCounterMap.get(element) || 0) - 1;\n ariaHiddenCounterMap.set(element, counterValue);\n if (!counterValue) {\n if (!uncontrolledElementsSet.has(element)) {\n element.removeAttribute('aria-hidden');\n }\n uncontrolledElementsSet.delete(element);\n }\n });\n if (mark) {\n markedElements.forEach(element => {\n const markerValue = (markerCounterMap.get(element) || 0) - 1;\n markerCounterMap.set(element, markerValue);\n if (!markerValue) {\n element.removeAttribute(markerName);\n }\n });\n }\n lockCount -= 1;\n if (!lockCount) {\n ariaHiddenCounterMap = new WeakMap();\n uncontrolledElementsSet = new WeakSet();\n markerCounterMap = new WeakMap();\n }\n };\n}\nexport function markOthers(avoidElements, options = {}) {\n const {\n ariaHidden = false,\n mark = true\n } = options;\n const body = ownerDocument(avoidElements[0]).body;\n return applyAttributeToOthers(avoidElements, body, ariaHidden, {\n mark\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { getNodeName, isHTMLElement } from '@floating-ui/utils/dom';\nimport { addEventListener } from '@base-ui/utils/addEventListener';\nimport { mergeCleanups } from '@base-ui/utils/mergeCleanups';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { platform } from '@base-ui/utils/platform';\nimport { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { FocusGuard } from \"../../utils/FocusGuard.mjs\";\nimport { activeElement, closest, contains, getTarget, isTypeableCombobox, getFloatingFocusElement, isTypeableElement } from \"../utils/element.mjs\";\nimport { isVirtualClick, isVirtualPointerEvent, stopEvent } from \"../utils/event.mjs\";\nimport { tabbable, focusable, isOutsideEvent, isTabbable, getNextTabbable, getPreviousTabbable } from \"../utils/tabbable.mjs\";\nimport { getNodeAncestors, getNodeChildren } from \"../utils/nodes.mjs\";\nimport { isElementVisible } from \"../utils/composite.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { createAttribute } from \"../utils/createAttribute.mjs\";\nimport { enqueueFocus } from \"../utils/enqueueFocus.mjs\";\nimport { markOthers } from \"../utils/markOthers.mjs\";\nimport { usePortalContext } from \"./FloatingPortal.mjs\";\nimport { useFloatingTree } from \"./FloatingTree.mjs\";\nimport { CLICK_TRIGGER_IDENTIFIER } from \"../../internals/constants.mjs\";\nimport { resolveRef } from \"../../utils/resolveRef.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getEventType(event, lastInteractionType) {\n const win = ownerWindow(getTarget(event));\n if (event instanceof win.KeyboardEvent) {\n return 'keyboard';\n }\n if (event instanceof win.FocusEvent) {\n // Focus events can be caused by a preceding pointer interaction (e.g., focusout on outside press).\n // Prefer the last known pointer type if provided, else treat as keyboard.\n return lastInteractionType || 'keyboard';\n }\n if ('pointerType' in event) {\n // A trusted click without a pointerType is keyboard/AT; only synthesized\n // clicks (e.g. a test harness) pair an empty pointerType with a click count.\n return event.pointerType || (isVirtualClick(event) ? 'keyboard' : lastInteractionType || 'mouse');\n }\n if ('touches' in event) {\n return 'touch';\n }\n if (event instanceof win.MouseEvent) {\n // onClick events may not contain pointer events, and will fall through to here\n return lastInteractionType || (event.detail === 0 ? 'keyboard' : 'mouse');\n }\n return '';\n}\nconst LIST_LIMIT = 20;\nlet previouslyFocusedElements = [];\nfunction clearDisconnectedPreviouslyFocusedElements() {\n previouslyFocusedElements = previouslyFocusedElements.filter(entry => {\n return entry.deref()?.isConnected;\n });\n}\nfunction addPreviouslyFocusedElement(element) {\n clearDisconnectedPreviouslyFocusedElements();\n if (element && getNodeName(element) !== 'body') {\n previouslyFocusedElements.push(new WeakRef(element));\n if (previouslyFocusedElements.length > LIST_LIMIT) {\n previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);\n }\n }\n}\nfunction getPreviouslyFocusedElement() {\n clearDisconnectedPreviouslyFocusedElements();\n return previouslyFocusedElements[previouslyFocusedElements.length - 1]?.deref();\n}\nfunction getFirstTabbableElement(container) {\n if (!container) {\n return null;\n }\n if (isTabbable(container)) {\n return container;\n }\n return tabbable(container)[0] || container;\n}\nfunction handleTabIndex(floatingFocusElement) {\n if (floatingFocusElement.hasAttribute('tabindex') && !floatingFocusElement.hasAttribute('data-tabindex')) {\n return;\n }\n if (!floatingFocusElement.getAttribute('role')?.includes('dialog')) {\n return;\n }\n const focusableElements = focusable(floatingFocusElement);\n const tabbableContent = focusableElements.filter(element => {\n const dataTabIndex = element.getAttribute('data-tabindex') || '';\n return isTabbable(element) || element.hasAttribute('data-tabindex') && !dataTabIndex.startsWith('-');\n });\n const tabIndex = floatingFocusElement.getAttribute('tabindex');\n if (tabbableContent.length === 0) {\n if (tabIndex !== '0') {\n floatingFocusElement.setAttribute('tabindex', '0');\n // Mark our own write so the externally-managed early-return above doesn't\n // mistake it for a user-authored `tabindex` and freeze management.\n floatingFocusElement.setAttribute('data-tabindex', '0');\n }\n } else if (tabIndex !== '-1' || floatingFocusElement.hasAttribute('data-tabindex') && floatingFocusElement.getAttribute('data-tabindex') !== '-1') {\n floatingFocusElement.setAttribute('tabindex', '-1');\n floatingFocusElement.setAttribute('data-tabindex', '-1');\n }\n}\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n * @internal\n */\nexport function FloatingFocusManager(props) {\n const {\n context: store,\n children,\n disabled = false,\n initialFocus = true,\n returnFocus = true,\n explicitReturnFocus,\n restoreFocus = false,\n modal = true,\n closeOnFocusOut = true,\n openInteractionType = '',\n nextFocusableElement,\n previousFocusableElement,\n beforeContentFocusGuardRef,\n externalTree,\n getInsideElements\n } = props;\n const open = store.useState('open');\n const domReference = store.useState('domReferenceElement');\n const floating = store.useState('floatingElement');\n const {\n events,\n dataRef\n } = store.context;\n const getNodeId = useStableCallback(() => dataRef.current.floatingContext?.nodeId);\n const ignoreInitialFocus = initialFocus === false;\n // A typeable combobox reference (e.g. input/textarea) with `initialFocus={false}`\n // has different focus semantics: focus is not trapped inside the floating element,\n // so in the modal case the guards are not rendered, but `aria-hidden` is still\n // applied to the outside nodes.\n const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;\n const initialFocusRef = useValueAsRef(initialFocus);\n const returnFocusRef = useValueAsRef(returnFocus);\n // Read through a ref so a mid-open change can't re-run the return-focus effect, whose cleanup\n // would move focus while the floating element is still open.\n const explicitReturnFocusRef = useValueAsRef(explicitReturnFocus);\n const openInteractionTypeRef = useValueAsRef(openInteractionType);\n const openRef = useValueAsRef(open);\n const tree = useFloatingTree(externalTree);\n const portalContext = usePortalContext();\n const preventReturnFocusRef = React.useRef(false);\n const isPointerDownRef = React.useRef(false);\n const pointerDownOutsideRef = React.useRef(false);\n const lastFocusedTabbableRef = React.useRef(null);\n const closeTypeRef = React.useRef('');\n const lastInteractionTypeRef = React.useRef('');\n const beforeGuardRef = React.useRef(null);\n const afterGuardRef = React.useRef(null);\n const mergedBeforeGuardRef = useMergedRefs(beforeGuardRef, beforeContentFocusGuardRef, portalContext?.beforeInsideRef);\n const mergedAfterGuardRef = useMergedRefs(afterGuardRef, portalContext?.afterInsideRef);\n const blurTimeout = useTimeout();\n const pointerDownTimeout = useTimeout();\n const restoreFocusFrame = useAnimationFrame();\n const isInsidePortal = portalContext != null;\n const floatingFocusElement = getFloatingFocusElement(floating);\n const getTabbableContent = useStableCallback((container = floatingFocusElement) => {\n return container ? tabbable(container) : [];\n });\n const getResolvedInsideElements = useStableCallback(() => getInsideElements?.().filter(element => element != null) ?? []);\n\n // Prevent Tab from escaping the modal when there are no tabbable elements.\n React.useEffect(() => {\n if (disabled || !modal) {\n return undefined;\n }\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains(floatingFocusElement, activeElement(ownerDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n stopEvent(event);\n }\n }\n }\n const doc = ownerDocument(floatingFocusElement);\n return addEventListener(doc, 'keydown', onKeyDown);\n }, [disabled, floatingFocusElement, modal, isUntrappedTypeableCombobox, getTabbableContent]);\n\n // Track pointer/keyboard interactions to disambiguate focus and outside presses.\n React.useEffect(() => {\n if (disabled || !open) {\n return undefined;\n }\n const doc = ownerDocument(floatingFocusElement);\n function clearPointerDownOutside() {\n pointerDownOutsideRef.current = false;\n }\n function onPointerDown(event) {\n const target = getTarget(event);\n const insideElements = getResolvedInsideElements();\n const pointerTargetInside = contains(floating, target) || contains(domReference, target) || contains(portalContext?.portalNode, target) || insideElements.some(element => element === target || contains(element, target));\n pointerDownOutsideRef.current = !pointerTargetInside;\n lastInteractionTypeRef.current = event.pointerType || 'keyboard';\n if (closest(target, `[${CLICK_TRIGGER_IDENTIFIER}]`)) {\n isPointerDownRef.current = true;\n // Reset on the next tick so a single click on a click-trigger doesn't\n // permanently suppress focus-out closing for the lifetime of the instance.\n pointerDownTimeout.start(0, () => {\n isPointerDownRef.current = false;\n });\n }\n }\n function onKeyDown() {\n lastInteractionTypeRef.current = 'keyboard';\n }\n return mergeCleanups(addEventListener(doc, 'pointerdown', onPointerDown, true), addEventListener(doc, 'pointerup', clearPointerDownOutside, true), addEventListener(doc, 'pointercancel', clearPointerDownOutside, true), addEventListener(doc, 'keydown', onKeyDown, true),\n // Avoid a stale `true` leaking into the next open (e.g. keep-mounted popups)\n // if the popup dismissed between pointerdown and pointerup.\n clearPointerDownOutside);\n }, [disabled, floating, domReference, floatingFocusElement, open, portalContext, pointerDownTimeout, getResolvedInsideElements]);\n\n // Close on focus out and restore focus within the floating tree when needed.\n React.useEffect(() => {\n if (disabled || !closeOnFocusOut) {\n return undefined;\n }\n const doc = ownerDocument(floatingFocusElement);\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n pointerDownTimeout.start(0, () => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusIn(event) {\n const target = getTarget(event);\n if (isTabbable(target)) {\n lastFocusedTabbableRef.current = target;\n }\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n const currentTarget = event.currentTarget;\n const target = getTarget(event);\n\n // When focus is lost to the body (e.g. on a backdrop press), record the element that\n // had focus so a confirmation dialog opened while the body is focused can return focus\n // to it. Scoped to `modal` to avoid non-modal popups polluting the shared stack.\n if (modal && relatedTarget == null && target != null && contains(floating, target)) {\n addPreviouslyFocusedElement(target);\n }\n queueMicrotask(() => {\n const nodeId = getNodeId();\n const triggers = store.context.triggerElements;\n const insideElements = getResolvedInsideElements();\n const isRelatedFocusGuard = relatedTarget?.hasAttribute(createAttribute('focus-guard')) && [beforeGuardRef.current, afterGuardRef.current, portalContext?.beforeInsideRef.current, portalContext?.afterInsideRef.current, portalContext?.beforeOutsideRef.current, portalContext?.afterOutsideRef.current, resolveRef(previousFocusableElement), resolveRef(nextFocusableElement)].includes(relatedTarget);\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext?.portalNode, relatedTarget) || insideElements.some(element => element === relatedTarget || contains(element, relatedTarget)) || triggers.hasMatchingElement(trigger => contains(trigger, relatedTarget)) || isRelatedFocusGuard || tree && (getNodeChildren(tree.nodesRef.current, nodeId).find(node => contains(node.context?.elements.floating, relatedTarget) || contains(node.context?.elements.domReference, relatedTarget)) || getNodeAncestors(tree.nodesRef.current, nodeId).find(node => [node.context?.elements.floating, getFloatingFocusElement(node.context?.elements.floating)].includes(relatedTarget) || node.context?.elements.domReference === relatedTarget)));\n if (currentTarget === domReference && floatingFocusElement) {\n handleTabIndex(floatingFocusElement);\n }\n\n // Restore focus to the previously focused tabbable element to prevent\n // focus from being lost outside the floating tree.\n if (restoreFocus && currentTarget !== domReference && !isElementVisible(target) && activeElement(doc) === doc.body) {\n // Let `FloatingPortal` effect knows that focus is still inside the\n // floating tree.\n if (isHTMLElement(floatingFocusElement)) {\n floatingFocusElement.focus();\n // If explicitly requested to restore focus to the popup container, do not search\n // for the next/previous tabbable element.\n if (restoreFocus === 'popup') {\n // If the focused element is removed on pointerdown, the browser\n // tries to move focus to it right after the `.focus()` call above,\n // but because it's removed in the same tick, focus is lost instead.\n // Re-focusing asynchronously (next frame) wins that race.\n restoreFocusFrame.request(() => {\n floatingFocusElement.focus();\n });\n return;\n }\n }\n const tabbableContent = getTabbableContent();\n const prevTabbable = lastFocusedTabbableRef.current;\n const nodeToFocus = (prevTabbable && tabbableContent.includes(prevTabbable) ? prevTabbable : null) || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n if (isHTMLElement(nodeToFocus)) {\n nodeToFocus.focus();\n }\n }\n\n // https://github.com/floating-ui/floating-ui/issues/3060\n if (dataRef.current.insideReactTree) {\n dataRef.current.insideReactTree = false;\n return;\n }\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current && (\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n // For an \"untrapped\" typeable combobox (input role=combobox with\n // initialFocus=false), re-opening the popup and tabbing out should still close it even\n // when the previously focused element (e.g. the next tabbable outside the popup) is\n // focused again. Otherwise, the popup remains open on the second Tab sequence:\n // click input -> Tab (closes) -> click input -> Tab.\n // Allow closing when `isUntrappedTypeableCombobox` regardless of the previously focused element.\n isUntrappedTypeableCombobox || relatedTarget !== getPreviouslyFocusedElement())) {\n preventReturnFocusRef.current = true;\n store.setOpen(false, createChangeEventDetails(REASONS.focusOut, event));\n }\n });\n }\n function markInsideReactTree() {\n if (pointerDownOutsideRef.current) {\n return;\n }\n dataRef.current.insideReactTree = true;\n blurTimeout.start(0, () => {\n dataRef.current.insideReactTree = false;\n });\n }\n const domReferenceElement = isHTMLElement(domReference) ? domReference : null;\n if (!floating && !domReferenceElement) {\n return undefined;\n }\n return mergeCleanups(domReferenceElement && addEventListener(domReferenceElement, 'focusout', handleFocusOutside), domReferenceElement && addEventListener(domReferenceElement, 'pointerdown', handlePointerDown), floating && addEventListener(floating, 'focusin', handleFocusIn), floating && addEventListener(floating, 'focusout', handleFocusOutside), floating && portalContext && addEventListener(floating, 'focusout', markInsideReactTree, true));\n }, [disabled, domReference, floating, floatingFocusElement, modal, tree, portalContext, store, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox, getNodeId, dataRef, blurTimeout, pointerDownTimeout, restoreFocusFrame, nextFocusableElement, previousFocusableElement, getResolvedInsideElements]);\n\n // Hide everything outside the floating tree from assistive tech while open.\n React.useEffect(() => {\n if (disabled || !floating || !open) {\n return undefined;\n }\n\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from(portalContext?.portalNode?.querySelectorAll(`[${createAttribute('portal')}]`) || []);\n const ancestors = tree ? getNodeAncestors(tree.nodesRef.current, getNodeId()) : [];\n const rootAncestorComboboxDomReference = ancestors.find(node => isTypeableCombobox(node.context?.elements.domReference || null))?.context?.elements.domReference;\n const controlInsideElements = [floating, ...portalNodes, beforeGuardRef.current, afterGuardRef.current, portalContext?.beforeOutsideRef.current, portalContext?.afterOutsideRef.current, ...getResolvedInsideElements()];\n const insideElements = [...controlInsideElements, rootAncestorComboboxDomReference, resolveRef(previousFocusableElement), resolveRef(nextFocusableElement), isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n const ariaHiddenCleanup = markOthers(insideElements, {\n ariaHidden: modal || isUntrappedTypeableCombobox,\n mark: false\n });\n const markerInsideElements = [floating, ...portalNodes].filter(x => x != null);\n const markerCleanup = markOthers(markerInsideElements);\n return () => {\n markerCleanup();\n ariaHiddenCleanup();\n };\n }, [open, disabled, domReference, floating, modal, portalContext, isUntrappedTypeableCombobox, tree, getNodeId, nextFocusableElement, previousFocusableElement, getResolvedInsideElements]);\n\n // Focus the initial element when the floating element opens.\n useIsoLayoutEffect(() => {\n if (!open || disabled || !isHTMLElement(floatingFocusElement)) {\n return;\n }\n closeTypeRef.current = '';\n lastInteractionTypeRef.current = '';\n const doc = ownerDocument(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const initialFocusValueOrFn = initialFocusRef.current;\n const resolvedInitialFocus = typeof initialFocusValueOrFn === 'function' ? initialFocusValueOrFn(openInteractionTypeRef.current || '') : initialFocusValueOrFn;\n\n // `null` should fallback to default behavior in case of an empty ref.\n if (resolvedInitialFocus === undefined || resolvedInitialFocus === false) {\n return;\n }\n const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);\n if (focusAlreadyInsideFloatingEl) {\n return;\n }\n let focusableElements = null;\n const getDefaultFocusElement = () => {\n if (focusableElements == null) {\n focusableElements = getTabbableContent(floatingFocusElement);\n }\n return focusableElements[0] || floatingFocusElement;\n };\n let elToFocus;\n if (resolvedInitialFocus === true || resolvedInitialFocus === null) {\n elToFocus = getDefaultFocusElement();\n } else {\n elToFocus = resolveRef(resolvedInitialFocus);\n }\n elToFocus = elToFocus || getDefaultFocusElement();\n const hadFocusInside = contains(floatingFocusElement, activeElement(doc));\n\n // Screen readers re-sync focus to their cursor right after a synthesized press. A focus\n // that lands a frame later reads as a stray move and gets pulled back to the reference.\n const openEvent = dataRef.current.openEvent;\n const openedByVirtualPress = openEvent?.type === 'mousedown' && isVirtualClick(openEvent);\n\n // enqueueFocus returns a rAF-cancel function; we intentionally don't cancel this focus.\n void enqueueFocus(elToFocus, {\n sync: openedByVirtualPress,\n preventScroll: elToFocus === floatingFocusElement,\n shouldFocus() {\n // If the floating element has closed before this runs — e.g. tabbing out of a\n // kept-mounted popup — don't pull focus back onto the initial element after it has\n // legitimately moved elsewhere.\n if (!openRef.current) {\n return false;\n }\n if (hadFocusInside) {\n return true;\n }\n const currentActiveElement = activeElement(doc);\n const focusMovedInside = currentActiveElement !== elToFocus && contains(floatingFocusElement, currentActiveElement);\n return !focusMovedInside;\n }\n });\n });\n }, [disabled, open, floatingFocusElement, getTabbableContent, initialFocusRef, openInteractionTypeRef, openRef, dataRef]);\n\n // A return-focus queued by the effect cleanup. If the effect re-arms in the same commit, a\n // dependency changed while the popup stayed open, so the cleanup was not a close.\n const pendingReturnFocusRef = React.useRef(null);\n\n // Track return focus targets and restore focus on unmount/close.\n useIsoLayoutEffect(() => {\n if (disabled || !floatingFocusElement) {\n pendingReturnFocusRef.current = null;\n return undefined;\n }\n if (pendingReturnFocusRef.current) {\n pendingReturnFocusRef.current.cancelled = true;\n pendingReturnFocusRef.current = null;\n }\n const doc = ownerDocument(floatingFocusElement);\n const elementFocusedBeforeOpen = activeElement(doc);\n // Only an explicit `null` interaction type represents a programmatic open.\n // `undefined` is normalized to `''` by the prop default, so it never reaches\n // here as nullish and is intentionally not treated as programmatic.\n const preferPreviousFocus = openInteractionTypeRef.current == null;\n addPreviouslyFocusedElement(elementFocusedBeforeOpen);\n function onOpenChangeLocal(details) {\n if (!details.open) {\n closeTypeRef.current = getEventType(details.nativeEvent, lastInteractionTypeRef.current);\n }\n\n // Focus guards transfer focus themselves; other close handlers may still need return focus.\n if (details.reason === REASONS.focusOut && details.triggerElement?.hasAttribute(createAttribute('focus-guard')) || details.reason === REASONS.triggerHover && details.nativeEvent.type === 'mouseleave') {\n preventReturnFocusRef.current = true;\n }\n if (details.reason !== REASONS.outsidePress) {\n return;\n }\n if (details.nested) {\n preventReturnFocusRef.current = false;\n } else if (isVirtualClick(details.nativeEvent) || isVirtualPointerEvent(details.nativeEvent)) {\n preventReturnFocusRef.current = false;\n } else {\n // On outside press, only return focus to the reference when the browser supports the\n // `focus({ preventScroll })` option; without it, restoring focus scrolls the page.\n // Chrome on Android and Samsung Internet still don't support `preventScroll`\n // (https://issues.chromium.org/issues/41453122), so the runtime check keeps return\n // focus disabled there to avoid the scroll jump.\n let isPreventScrollSupported = false;\n ownerDocument(floatingFocusElement).createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n if (isPreventScrollSupported) {\n preventReturnFocusRef.current = false;\n } else {\n preventReturnFocusRef.current = true;\n }\n }\n }\n events.on('openchange', onOpenChangeLocal);\n function getReturnElement(closeType) {\n const returnFocusValueOrFn = returnFocusRef.current;\n let resolvedReturnFocusValue = typeof returnFocusValueOrFn === 'function' ? returnFocusValueOrFn(closeType) : returnFocusValueOrFn;\n\n // `null` should fallback to default behavior in case of an empty ref.\n if (resolvedReturnFocusValue === undefined || resolvedReturnFocusValue === false) {\n return null;\n }\n if (resolvedReturnFocusValue === null) {\n resolvedReturnFocusValue = true;\n }\n const referenceReturnElement = domReference?.isConnected ? domReference : null;\n const previousReturnElement = elementFocusedBeforeOpen?.isConnected && getNodeName(elementFocusedBeforeOpen) !== 'body' ? elementFocusedBeforeOpen : null;\n let defaultReturnElement = preferPreviousFocus ? previousReturnElement || referenceReturnElement : referenceReturnElement || previousReturnElement;\n if (!defaultReturnElement) {\n defaultReturnElement = getPreviouslyFocusedElement() || null;\n }\n if (typeof resolvedReturnFocusValue === 'boolean') {\n return defaultReturnElement;\n }\n return resolveRef(resolvedReturnFocusValue) || defaultReturnElement || null;\n }\n return () => {\n events.off('openchange', onOpenChangeLocal);\n const activeEl = activeElement(doc);\n const insideElements = getResolvedInsideElements();\n const isFocusInsideFloatingTree = contains(floating, activeEl) || insideElements.some(element => element === activeEl || contains(element, activeEl)) || tree && getNodeChildren(tree.nodesRef.current, getNodeId(), false).some(node => contains(node.context?.elements.floating, activeEl));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const returnFocusValueOrFn = returnFocusRef.current;\n const closeType = closeTypeRef.current;\n const returnElement = getReturnElement(closeType);\n const job = {\n cancelled: false\n };\n pendingReturnFocusRef.current = job;\n queueMicrotask(() => {\n if (pendingReturnFocusRef.current === job) {\n pendingReturnFocusRef.current = null;\n }\n // `returnElement` if it is tabbable, otherwise its first tabbable child,\n // otherwise `returnElement` itself (which may not be tabbable at all).\n const tabbableReturnElement = getFirstTabbableElement(returnElement);\n // Read in the cleanup on purpose: the latest `explicitReturnFocus` decides.\n const hasExplicitReturnFocus =\n // eslint-disable-next-line react-hooks/exhaustive-deps\n explicitReturnFocusRef.current ?? typeof returnFocusValueOrFn !== 'boolean';\n if (!job.cancelled && returnFocusValueOrFn && !preventReturnFocusRef.current && isHTMLElement(tabbableReturnElement) && (\n // If the focus moved somewhere else after mount, avoid returning focus\n // since it likely entered a different element which should be\n // respected: https://github.com/floating-ui/floating-ui/issues/2607\n !hasExplicitReturnFocus && tabbableReturnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) {\n const focusOptions = {\n preventScroll: true\n };\n if (closeType === 'keyboard') {\n focusOptions.focusVisible = true;\n }\n tabbableReturnElement.focus(focusOptions);\n }\n\n // A cancelled return must also clear suppression before the next close.\n preventReturnFocusRef.current = false;\n });\n };\n }, [disabled, floating, floatingFocusElement, returnFocusRef, explicitReturnFocusRef, openInteractionTypeRef, events, tree, domReference, getNodeId, getResolvedInsideElements]);\n\n // Safari may randomly scroll to the bottom of the page if an input inside a popup has focus\n // when the popup unmounts from the DOM.\n // By blurring it before the popup unmounts, we can prevent this behavior.\n useIsoLayoutEffect(() => {\n if (!platform.engine.webkit || open || !floating) {\n return;\n }\n const activeEl = activeElement(ownerDocument(floating));\n if (!isHTMLElement(activeEl) || !isTypeableElement(activeEl)) {\n return;\n }\n if (contains(floating, activeEl)) {\n activeEl.blur();\n }\n }, [open, floating]);\n\n // Synchronize the focus manager state (modal, closeOnFocusOut, open, etc.) to the\n // FloatingPortal context, which uses it to decide whether to render its own guards.\n useIsoLayoutEffect(() => {\n if (disabled || !portalContext) {\n return undefined;\n }\n portalContext.setFocusManagerState({\n modal,\n closeOnFocusOut,\n open,\n onOpenChange: store.setOpen,\n domReference\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [disabled, portalContext, modal, open, store, closeOnFocusOut, domReference]);\n\n // Keep the floating element tabIndex in sync and clear stale focus records.\n useIsoLayoutEffect(() => {\n if (disabled || !floatingFocusElement) {\n return undefined;\n }\n handleTabIndex(floatingFocusElement);\n return () => {\n queueMicrotask(clearDisconnectedPreviouslyFocusedElements);\n };\n }, [disabled, floatingFocusElement]);\n const shouldRenderGuards = !disabled && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [shouldRenderGuards && /*#__PURE__*/_jsx(FocusGuard, {\n \"data-type\": \"inside\",\n ref: mergedBeforeGuardRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableContent();\n // enqueueFocus returns a rAF-cancel function we don't need here.\n void enqueueFocus(els[els.length - 1]);\n } else if (portalContext?.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable(domReference);\n nextTabbable?.focus();\n } else {\n resolveRef(previousFocusableElement ?? portalContext.beforeOutsideRef)?.focus();\n }\n }\n }\n }), children, shouldRenderGuards && /*#__PURE__*/_jsx(FocusGuard, {\n \"data-type\": \"inside\",\n ref: mergedAfterGuardRef,\n onFocus: event => {\n if (modal) {\n // enqueueFocus returns a rAF-cancel function we don't need here.\n void enqueueFocus(getTabbableContent()[0]);\n } else if (portalContext?.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable(domReference);\n prevTabbable?.focus();\n } else {\n resolveRef(nextFocusableElement ?? portalContext.afterOutsideRef)?.focus();\n }\n }\n }\n })]\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { getTarget, isTypeableElement } from \"../utils/element.mjs\";\nimport { isMouseLikePointerType, isVirtualPointerEvent } from \"../utils/event.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nexport function useClick(store, props = {}) {\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n stickIfOpen = true,\n touchOpenDelay = 0,\n reason = REASONS.triggerPress\n } = props;\n const dataRef = store.context.dataRef;\n const pointerTypeRef = React.useRef(undefined);\n const frame = useAnimationFrame();\n const touchOpenTimeout = useTimeout();\n const reference = React.useMemo(() => {\n function setOpenWithTouchDelay(nextOpen, nativeEvent, target, pointerType) {\n const details = createChangeEventDetails(reason, nativeEvent, target);\n if (nextOpen && pointerType === 'touch' && touchOpenDelay > 0) {\n touchOpenTimeout.start(touchOpenDelay, () => {\n store.setOpen(true, details);\n });\n } else {\n store.setOpen(nextOpen, details);\n }\n }\n function getNextOpen(open, currentTarget, isClickLikeOpenEvent) {\n const openEvent = dataRef.current.openEvent;\n const hasClickedOnInactiveTrigger = store.select('domReferenceElement') !== currentTarget;\n if (open && hasClickedOnInactiveTrigger) {\n // Moving between triggers should always open the newly active one.\n return true;\n }\n if (!open) {\n // A closed popup should open on the next press.\n return true;\n }\n if (!toggle) {\n // Non-toggle mode never closes on a repeated trigger press.\n return true;\n }\n if (openEvent && (typeof stickIfOpen === 'function' ? stickIfOpen() : stickIfOpen)) {\n // Preserve hover/focus-opened popups until the matching click-like event closes them.\n return !isClickLikeOpenEvent(openEvent.type);\n }\n\n // Otherwise, a repeated click toggles the popup closed.\n return false;\n }\n return {\n onPointerDown(event) {\n // Screen reader activations (Android TalkBack, desktop screen readers) report a\n // mouse-like `pointerType`, but `ignoreMouse` must not drop them: hover logic cannot\n // open for a virtual press since there is no real pointer movement to wait for.\n // Virtual `touch` presses (iOS VoiceOver) keep their type so `touchOpenDelay` applies.\n pointerTypeRef.current = isMouseLikePointerType(event.pointerType, true) && isVirtualPointerEvent(event.nativeEvent) ? 'virtual' : event.pointerType;\n },\n onMouseDown(event) {\n const pointerType = pointerTypeRef.current;\n const nativeEvent = event.nativeEvent;\n const open = store.select('open');\n\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0 || eventOption === 'click' || isMouseLikePointerType(pointerType, true) && ignoreMouse) {\n return;\n }\n const nextOpen = getNextOpen(open, event.currentTarget, openEventType => openEventType === 'click' || openEventType === 'mousedown');\n\n // Animations sometimes won't run on a typeable element if using a rAF.\n // Focus is always set on these elements. For touch, we may delay opening.\n // A screen reader press opens synchronously, so the popup's focus lands before the reader\n // re-syncs focus to its cursor, which would otherwise read as a stray move.\n const target = getTarget(nativeEvent);\n const isTypeable = isTypeableElement(target);\n if (isTypeable || pointerType === 'virtual') {\n // A virtual press may target a descendant of the trigger; the trigger is what opened.\n setOpenWithTouchDelay(nextOpen, nativeEvent, isTypeable ? target : event.currentTarget, pointerType);\n return;\n }\n\n // Capture the currentTarget before the rAF.\n // as React sets it to null after the event handler completes.\n const eventCurrentTarget = event.currentTarget;\n\n // Wait until focus is set on the element. This is an alternative to\n // `event.preventDefault()` to avoid :focus-visible from appearing when using a pointer.\n frame.request(() => {\n setOpenWithTouchDelay(nextOpen, nativeEvent, eventCurrentTarget, pointerType);\n });\n },\n onClick(event) {\n if (eventOption === 'mousedown-only') {\n return;\n }\n const pointerType = pointerTypeRef.current;\n if (eventOption === 'mousedown' && pointerType) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) {\n return;\n }\n const open = store.select('open');\n const nextOpen = getNextOpen(open, event.currentTarget, openEventType => openEventType === 'click' || openEventType === 'mousedown' || openEventType === 'keydown' || openEventType === 'keyup');\n setOpenWithTouchDelay(nextOpen, event.nativeEvent, event.currentTarget, pointerType);\n },\n onKeyDown() {\n pointerTypeRef.current = undefined;\n }\n };\n }, [dataRef, eventOption, ignoreMouse, reason, store, stickIfOpen, toggle, frame, touchOpenTimeout, touchOpenDelay]);\n return React.useMemo(() => enabled ? {\n reference\n } : EMPTY_OBJECT, [enabled, reference]);\n}","'use client';\n\nimport * as React from 'react';\n/**\n * Provides a cross-browser way to determine the type of the pointer used to click.\n * Safari and Firefox do not provide the PointerEvent to the click handler (they use MouseEvent) yet.\n * Additionally, this implementation detects if the click was triggered by the keyboard.\n *\n * @param handler The function to be called when the button is clicked. The first parameter is the original event and the second parameter is the pointer type.\n */\nexport function useEnhancedClickHandler(handler) {\n const lastClickInteractionTypeRef = React.useRef('');\n const handlePointerDown = React.useCallback(event => {\n if (event.defaultPrevented) {\n return;\n }\n lastClickInteractionTypeRef.current = event.pointerType;\n handler(event, event.pointerType);\n }, [handler]);\n const handleClick = React.useCallback(event => {\n // event.detail has the number of clicks performed on the element. 0 means it was triggered by the keyboard.\n if (event.detail === 0) {\n handler(event, 'keyboard');\n return;\n }\n if ('pointerType' in event) {\n // Chrome and Edge correctly use PointerEvent\n handler(event, event.pointerType);\n } else {\n handler(event, lastClickInteractionTypeRef.current);\n }\n lastClickInteractionTypeRef.current = '';\n }, [handler]);\n return {\n onClick: handleClick,\n onPointerDown: handlePointerDown\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nexport function useValueChanged(value, onChange) {\n const valueRef = React.useRef(value);\n const onChangeCallback = useStableCallback(onChange);\n useIsoLayoutEffect(() => {\n if (valueRef.current !== value) {\n onChangeCallback(valueRef.current);\n }\n valueRef.current = value;\n }, [value, onChangeCallback]);\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useEnhancedClickHandler } from '@base-ui/utils/useEnhancedClickHandler';\nimport { platform } from '@base-ui/utils/platform';\nimport { useValueChanged } from \"../internals/useValueChanged.mjs\";\nexport function useOpenMethodTriggerProps(open, setOpenMethod) {\n const handleTriggerClick = useStableCallback((_, interactionType) => {\n const isOpen = typeof open === 'function' ? open() : open;\n if (!isOpen) {\n setOpenMethod(interactionType || (\n // On iOS Safari, the hitslop around touch targets means tapping outside an element's\n // bounds does not fire `pointerdown` but does fire `mousedown`. The `interactionType`\n // will be \"\" in that case.\n platform.os.ios ? 'touch' : ''));\n }\n });\n const {\n onClick,\n onPointerDown\n } = useEnhancedClickHandler(handleTriggerClick);\n return React.useMemo(() => ({\n onClick,\n onPointerDown\n }), [onClick, onPointerDown]);\n}\n\n/**\n * Determines the interaction type (keyboard, mouse, touch, etc.) that opened the component.\n *\n * @param open The open state of the component.\n */\nexport function useOpenInteractionType(open) {\n const [openMethod, setOpenMethod] = React.useState(null);\n const triggerProps = useOpenMethodTriggerProps(open, setOpenMethod);\n useValueChanged(open, previousOpen => {\n if (previousOpen && !open) {\n setOpenMethod(null);\n }\n });\n return React.useMemo(() => ({\n openMethod,\n triggerProps\n }), [openMethod, triggerProps]);\n}","import * as React from 'react';\n\n/**\n * @internal\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const InternalBackdrop = /*#__PURE__*/React.forwardRef(function InternalBackdrop(props, ref) {\n const {\n cutout,\n ...otherProps\n } = props;\n let clipPath;\n if (cutout) {\n const rect = cutout.getBoundingClientRect();\n clipPath = `polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${rect.left}px ${rect.top}px,${rect.left}px ${rect.bottom}px,${rect.right}px ${rect.bottom}px,${rect.right}px ${rect.top}px,${rect.left}px ${rect.top}px)`;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n role: \"presentation\"\n // Ensures Floating UI's outside press detection runs, as it considers\n // it an element that existed when the popup rendered.\n ,\n \"data-base-ui-inert\": \"\",\n ...otherProps,\n style: {\n position: 'fixed',\n inset: 0,\n userSelect: 'none',\n WebkitUserSelect: 'none',\n clipPath\n }\n });\n});\nif (process.env.NODE_ENV !== \"production\") InternalBackdrop.displayName = \"InternalBackdrop\";","'use client';\n\nimport { isOverflowElement } from '@floating-ui/utils/dom';\nimport { addEventListener } from \"./addEventListener.mjs\";\nimport { platform } from \"./platform/index.mjs\";\nimport { ownerDocument, ownerWindow } from \"./owner.mjs\";\nimport { useIsoLayoutEffect } from \"./useIsoLayoutEffect.mjs\";\nimport { Timeout } from \"./useTimeout.mjs\";\nimport { AnimationFrame } from \"./useAnimationFrame.mjs\";\nlet originalHtmlStyles = {};\nlet originalBodyStyles = {};\nlet originalHtmlScrollBehavior = '';\n\n// The viewport's overflow comes from <html> when it establishes its own scroll container, and\n// propagates from <body> otherwise. An `overflow` style on the other element doesn't lock the page.\nfunction getViewportScroller(html, body) {\n return isOverflowElement(html) ? html : body;\n}\nfunction isPageScrollLocked(win, html, body) {\n return /hidden|clip/.test(win.getComputedStyle(getViewportScroller(html, body)).overflowY);\n}\nfunction hasInsetScrollbars(referenceElement) {\n if (typeof document === 'undefined') {\n return false;\n }\n const doc = ownerDocument(referenceElement);\n const win = ownerWindow(doc);\n return win.innerWidth - doc.documentElement.clientWidth > 0;\n}\nfunction supportsStableScrollbarGutter(referenceElement) {\n const supported = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('scrollbar-gutter', 'stable');\n if (!supported || typeof document === 'undefined') {\n return false;\n }\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const scrollContainer = getViewportScroller(html, body);\n const originalScrollContainerOverflowY = scrollContainer.style.overflowY;\n const originalHtmlStyleGutter = html.style.scrollbarGutter;\n html.style.scrollbarGutter = 'stable';\n scrollContainer.style.overflowY = 'scroll';\n const before = scrollContainer.offsetWidth;\n scrollContainer.style.overflowY = 'hidden';\n const after = scrollContainer.offsetWidth;\n scrollContainer.style.overflowY = originalScrollContainerOverflowY;\n html.style.scrollbarGutter = originalHtmlStyleGutter;\n return before === after;\n}\nfunction preventScrollOverlayScrollbars(referenceElement) {\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n\n // If an `overflow` style is present on <html>, we need to lock it, because a lock on <body>\n // won't have any effect.\n // But if <body> has an `overflow` style (like `overflow-x: hidden`), we need to lock it\n // instead, as sticky elements shift otherwise.\n const elementToLock = getViewportScroller(html, body);\n const originalElementToLockStyles = {\n overflowY: elementToLock.style.overflowY,\n overflowX: elementToLock.style.overflowX\n };\n Object.assign(elementToLock.style, {\n overflowY: 'hidden',\n overflowX: 'hidden'\n });\n return () => {\n Object.assign(elementToLock.style, originalElementToLockStyles);\n };\n}\nfunction preventScrollInsetScrollbars(referenceElement) {\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const win = ownerWindow(html);\n let scrollTop = 0;\n let scrollLeft = 0;\n let updateGutterOnly = false;\n const resizeFrame = AnimationFrame.create();\n\n // Pinch-zoom in Safari causes a shift. Just don't lock scroll if there's any pinch-zoom.\n if (platform.engine.webkit && (win.visualViewport?.scale ?? 1) !== 1) {\n return () => {};\n }\n function lockScroll() {\n /* DOM reads: */\n\n const htmlStyles = win.getComputedStyle(html);\n const bodyStyles = win.getComputedStyle(body);\n const htmlScrollbarGutterValue = htmlStyles.scrollbarGutter || '';\n const hasBothEdges = htmlScrollbarGutterValue.includes('both-edges');\n const scrollbarGutterValue = hasBothEdges ? 'stable both-edges' : 'stable';\n scrollTop = html.scrollTop;\n scrollLeft = html.scrollLeft;\n originalHtmlStyles = {\n scrollbarGutter: html.style.scrollbarGutter,\n overflowY: html.style.overflowY,\n overflowX: html.style.overflowX\n };\n originalHtmlScrollBehavior = html.style.scrollBehavior;\n originalBodyStyles = {\n position: body.style.position,\n height: body.style.height,\n width: body.style.width,\n boxSizing: body.style.boxSizing,\n overflowY: body.style.overflowY,\n overflowX: body.style.overflowX,\n scrollBehavior: body.style.scrollBehavior\n };\n const isScrollableY = html.scrollHeight > html.clientHeight;\n const isScrollableX = html.scrollWidth > html.clientWidth;\n const hasConstantOverflowY = htmlStyles.overflowY === 'scroll' || bodyStyles.overflowY === 'scroll';\n const hasConstantOverflowX = htmlStyles.overflowX === 'scroll' || bodyStyles.overflowX === 'scroll';\n\n // Values can be negative in Firefox\n const scrollbarWidth = Math.max(0, win.innerWidth - body.clientWidth);\n const scrollbarHeight = Math.max(0, win.innerHeight - body.clientHeight);\n\n // Avoid shift due to the default <body> margin. This does cause elements to be clipped\n // with whitespace. Warn if <body> has margins?\n const marginY = parseFloat(bodyStyles.marginTop) + parseFloat(bodyStyles.marginBottom);\n const marginX = parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight);\n const elementToLock = getViewportScroller(html, body);\n updateGutterOnly = supportsStableScrollbarGutter(referenceElement);\n\n /*\n * DOM writes:\n * Do not read the DOM past this point!\n */\n\n if (updateGutterOnly) {\n html.style.scrollbarGutter = scrollbarGutterValue;\n elementToLock.style.overflowY = 'hidden';\n elementToLock.style.overflowX = 'hidden';\n return;\n }\n Object.assign(html.style, {\n scrollbarGutter: scrollbarGutterValue,\n overflowY: 'hidden',\n overflowX: 'hidden'\n });\n if (isScrollableY || hasConstantOverflowY) {\n html.style.overflowY = 'scroll';\n }\n if (isScrollableX || hasConstantOverflowX) {\n html.style.overflowX = 'scroll';\n }\n Object.assign(body.style, {\n position: 'relative',\n height: marginY || scrollbarHeight ? `calc(100dvh - ${marginY + scrollbarHeight}px)` : '100dvh',\n width: marginX || scrollbarWidth ? `calc(100vw - ${marginX + scrollbarWidth}px)` : '100vw',\n boxSizing: 'border-box',\n // Assign the longhands that `cleanup` restores, so nothing is left behind.\n overflowY: 'hidden',\n overflowX: 'hidden',\n scrollBehavior: 'unset'\n });\n body.scrollTop = scrollTop;\n body.scrollLeft = scrollLeft;\n html.setAttribute('data-base-ui-scroll-locked', '');\n html.style.scrollBehavior = 'unset';\n }\n function cleanup() {\n Object.assign(html.style, originalHtmlStyles);\n Object.assign(body.style, originalBodyStyles);\n if (!updateGutterOnly) {\n html.scrollTop = scrollTop;\n html.scrollLeft = scrollLeft;\n html.removeAttribute('data-base-ui-scroll-locked');\n html.style.scrollBehavior = originalHtmlScrollBehavior;\n }\n }\n function handleResize() {\n cleanup();\n resizeFrame.request(lockScroll);\n }\n lockScroll();\n const unsubscribeResize = addEventListener(win, 'resize', handleResize);\n return () => {\n resizeFrame.cancel();\n cleanup();\n // Sometimes this cleanup can run after test teardown because it is called\n // in a `setTimeout(fn, 0)`. Guard the returned cleanup to avoid calling\n // `removeEventListener` when it is no longer available in tests.\n if (typeof win.removeEventListener === 'function') {\n unsubscribeResize();\n }\n };\n}\nclass ScrollLocker {\n lockCount = 0;\n restore = null;\n timeoutLock = Timeout.create();\n timeoutUnlock = Timeout.create();\n acquire(referenceElement) {\n this.lockCount += 1;\n if (this.lockCount === 1 && this.restore === null) {\n this.timeoutLock.start(0, () => this.lock(referenceElement));\n }\n return this.release;\n }\n release = () => {\n this.lockCount -= 1;\n if (this.lockCount === 0 && this.restore) {\n this.timeoutUnlock.start(0, this.unlock);\n }\n };\n unlock = () => {\n if (this.lockCount === 0 && this.restore) {\n this.restore?.();\n this.restore = null;\n }\n };\n lock(referenceElement) {\n if (this.lockCount === 0 || this.restore !== null) {\n return;\n }\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const win = ownerWindow(html);\n\n // The page is already locked, either by the site author or by a non-Base UI overlay that\n // hasn't cleaned up yet. Leave it alone and wait for the lock to clear before taking over,\n // otherwise we'd snapshot the locked state and restore it after our own lock is released.\n if (isPageScrollLocked(win, html, body)) {\n const observer = new win.MutationObserver(() => {\n if (isPageScrollLocked(win, html, body)) {\n return;\n }\n observer.disconnect();\n this.restore = null;\n this.lock(referenceElement);\n });\n\n // Watch every attribute: locks are applied through inline styles, classes, or attributes\n // paired with a stylesheet (`data-scroll-locked` in react-remove-scroll, for example).\n const options = {\n attributes: true\n };\n observer.observe(html, options);\n observer.observe(body, options);\n this.restore = () => observer.disconnect();\n return;\n }\n const hasOverlayScrollbars = platform.os.ios || !hasInsetScrollbars(referenceElement);\n\n // On iOS, scroll locking does not work if the navbar is collapsed. Due to numerous\n // side effects and bugs that arise on iOS, it must be researched extensively before\n // being enabled to ensure it doesn't cause the following issues:\n // - Textboxes must scroll into view when focused, nor cause a glitchy scroll animation.\n // - The navbar must not force itself into view and cause layout shift.\n // - Scroll containers must not flicker upon closing a popup when it has an exit animation.\n this.restore = hasOverlayScrollbars ? preventScrollOverlayScrollbars(referenceElement) : preventScrollInsetScrollbars(referenceElement);\n }\n}\nconst SCROLL_LOCKER = new ScrollLocker();\n\n/**\n * Locks the scroll of the document when enabled.\n *\n * @param enabled - Whether to enable the scroll lock.\n * @param referenceElement - Element to use as a reference for lock calculations.\n */\nexport function useScrollLock(enabled = true, referenceElement = null) {\n useIsoLayoutEffect(() => {\n if (!enabled) {\n return undefined;\n }\n return SCROLL_LOCKER.acquire(referenceElement);\n }, [enabled, referenceElement]);\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useScrollLock } from '@base-ui/utils/useScrollLock';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\n\n// Touch-opened popups normally avoid scroll locking so users can still swipe outside to dismiss.\n// This hook re-enables scroll lock only when the popup is effectively full-width.\n// Treat popups with up to 20px of total horizontal gutter as full-width so common ~10px side\n// padding still locks scroll, since that leaves too little outside space for a reliable swipe.\nconst VIEWPORT_WIDTH_TOLERANCE_PX = 20;\n\n/**\n * Manages scroll lock for anchored popups. For non-touch opens, scroll lock is applied when\n * enabled. For touch opens, scroll lock is applied only when the positioner width is effectively\n * viewport-sized.\n */\nexport function useAnchoredPopupScrollLock(enabled, touchOpen, positionerElement, referenceElement) {\n const [touchOpenShouldLockScroll, setTouchOpenShouldLockScroll] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (!enabled || !touchOpen || positionerElement == null) {\n setTouchOpenShouldLockScroll(false);\n return;\n }\n const viewportWidth = ownerDocument(positionerElement).documentElement.clientWidth;\n const popupWidth = positionerElement.offsetWidth;\n setTouchOpenShouldLockScroll(viewportWidth > 0 && popupWidth > 0 && popupWidth >= viewportWidth - VIEWPORT_WIDTH_TOLERANCE_PX);\n }, [enabled, touchOpen, positionerElement]);\n useScrollLock(enabled && (!touchOpen || touchOpenShouldLockScroll), referenceElement);\n}","import { isHTMLElement } from '@floating-ui/utils/dom';\nexport { stopEvent, isIndexOutOfListBounds, isListIndexDisabled, findNonDisabledListIndex, getMaxListIndex, getMinListIndex } from \"../../floating-ui-react/utils.mjs\";\nexport const ARROW_UP = 'ArrowUp';\nexport const ARROW_DOWN = 'ArrowDown';\nexport const ARROW_LEFT = 'ArrowLeft';\nexport const ARROW_RIGHT = 'ArrowRight';\nexport const HOME = 'Home';\nexport const END = 'End';\nexport const PAGE_UP = 'PageUp';\nexport const PAGE_DOWN = 'PageDown';\nexport const COMPOSITE_KEYS = new Set([ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, HOME, END]);\nexport const SHIFT = 'Shift';\nexport const MODIFIER_KEYS = [SHIFT, 'Control', 'Alt', 'Meta'];\nfunction isInputElement(element) {\n return isHTMLElement(element) && element.tagName === 'INPUT';\n}\nexport function isNativeInput(element) {\n if (isInputElement(element) && element.selectionStart != null) {\n return true;\n }\n if (isHTMLElement(element) && element.tagName === 'TEXTAREA') {\n return true;\n }\n return false;\n}\nexport function scrollIntoViewIfNeeded(scrollContainer, element, direction, orientation) {\n if (!scrollContainer || !element || !element.scrollTo) {\n return;\n }\n let targetX = scrollContainer.scrollLeft;\n let targetY = scrollContainer.scrollTop;\n const isOverflowingX = scrollContainer.clientWidth < scrollContainer.scrollWidth;\n const isOverflowingY = scrollContainer.clientHeight < scrollContainer.scrollHeight;\n if (isOverflowingX && orientation !== 'vertical') {\n const elementOffsetLeft = getOffset(scrollContainer, element, 'left');\n const containerStyles = getStyles(scrollContainer);\n const elementStyles = getStyles(element);\n if (direction === 'ltr') {\n if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) {\n // overflow to the right, scroll to align right edges\n targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight;\n } else if (elementOffsetLeft - elementStyles.scrollMarginLeft < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) {\n // overflow to the left, scroll to align left edges\n targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft;\n }\n }\n if (direction === 'rtl') {\n if (elementOffsetLeft - elementStyles.scrollMarginLeft < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) {\n // overflow to the left, scroll to align left edges\n targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft;\n } else if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) {\n // overflow to the right, scroll to align right edges\n targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight;\n }\n }\n }\n if (isOverflowingY && orientation !== 'horizontal') {\n const elementOffsetTop = getOffset(scrollContainer, element, 'top');\n const containerStyles = getStyles(scrollContainer);\n const elementStyles = getStyles(element);\n if (elementOffsetTop - elementStyles.scrollMarginTop < scrollContainer.scrollTop + containerStyles.scrollPaddingTop) {\n // overflow upwards, align top edges\n targetY = elementOffsetTop - elementStyles.scrollMarginTop - containerStyles.scrollPaddingTop;\n } else if (elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom > scrollContainer.scrollTop + scrollContainer.clientHeight - containerStyles.scrollPaddingBottom) {\n // overflow downwards, align bottom edges\n targetY = elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom - scrollContainer.clientHeight + containerStyles.scrollPaddingBottom;\n }\n }\n scrollContainer.scrollTo({\n left: targetX,\n top: targetY,\n behavior: 'auto'\n });\n}\nfunction getOffset(ancestor, element, side) {\n const propName = side === 'left' ? 'offsetLeft' : 'offsetTop';\n let result = 0;\n while (element.offsetParent) {\n result += element[propName];\n if (element.offsetParent === ancestor) {\n break;\n }\n element = element.offsetParent;\n }\n return result;\n}\nfunction getStyles(element) {\n const styles = getComputedStyle(element);\n return {\n scrollMarginTop: parseFloat(styles.scrollMarginTop) || 0,\n scrollMarginRight: parseFloat(styles.scrollMarginRight) || 0,\n scrollMarginBottom: parseFloat(styles.scrollMarginBottom) || 0,\n scrollMarginLeft: parseFloat(styles.scrollMarginLeft) || 0,\n scrollPaddingTop: parseFloat(styles.scrollPaddingTop) || 0,\n scrollPaddingRight: parseFloat(styles.scrollPaddingRight) || 0,\n scrollPaddingBottom: parseFloat(styles.scrollPaddingBottom) || 0,\n scrollPaddingLeft: parseFloat(styles.scrollPaddingLeft) || 0\n };\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ToolbarRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ToolbarRootContext.displayName = \"ToolbarRootContext\";\nexport function useToolbarRootContext(optional) {\n const context = React.useContext(ToolbarRootContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ToolbarRootContext is missing. Toolbar parts must be placed within <Toolbar.Root>.' : _formatErrorMessage(69));\n }\n return context;\n}"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarRootContext-5168W3t4.js","names":["ownerWindow","REASONS.focusOut","platform.engine.webkit","REASONS.triggerPress","platform.os.ios","ownerWindow","platform.engine.webkit","platform.os.ios","_formatErrorMessage","require_react","__toESM","require_jsx_runtime","useStableCallback","isTypeableCombobox","tabbable","EMPTY_OBJECT","createChangeEventDetails","getNextTabbable","closest","getPreviousTabbable","contains","createAttribute","focusable","useAnimationFrame","getNodeName","isOutsideEvent","getFloatingFocusElement","isElementVisible","activeElement","ownerDocument","AnimationFrame","formatErrorMessage","isHTMLElement","usePortalContext","useTimeout","isShadowRoot","useMergedRefs","ios","isTypeableElement","webkit","getWindow","addEventListener","FocusGuard","getTarget","isOverflowElement","focusOut","mergeCleanups","resolveRef","useIsoLayoutEffect","NOOP","triggerPress","Timeout","isTabbable","getNodeChildren","useValueAsRef","isVirtualClick","useFloatingTree","stopEvent","isVirtualPointerEvent","isMouseLikePointerType","getNodeAncestors","import_react","rafId","enqueueFocus","options","exec","shouldFocus","el","sync","currentRafId","markerName","ariaHiddenCounterMap","uncontrolledElementsSet","markerCounterMap","lockCount","unwrapHost","node","correctElements","targets","parent","target","correctedTarget","x","buildKeepSet","keep","collectOutsideElements","outside","walk","keepElements","root","applyAttributeToOthers","avoidElements","body","uncorrectedAvoidElements","markerTargets","mark","hiddenElements","markedElements","ariaHidden","ariaLiveElements","controlElements","attr","alreadyHidden","counterValue","markerValue","element","markOthers","import_jsx_runtime","getEventType","win","event","lastInteractionType","LIST_LIMIT","previouslyFocusedElements","clearDisconnectedPreviouslyFocusedElements","entry","addPreviouslyFocusedElement","getPreviouslyFocusedElement","getFirstTabbableElement","container","handleTabIndex","floatingFocusElement","tabbableContent","dataTabIndex","tabIndex","FloatingFocusManager","store","props","open","domReference","floating","getNodeId","dataRef","ignoreInitialFocus","initialFocus","isUntrappedTypeableCombobox","initialFocusRef","returnFocusRef","returnFocus","explicitReturnFocusRef","explicitReturnFocus","openInteractionTypeRef","openInteractionType","openRef","tree","externalTree","portalContext","preventReturnFocusRef","isPointerDownRef","pointerDownOutsideRef","lastFocusedTabbableRef","closeTypeRef","lastInteractionTypeRef","beforeGuardRef","afterGuardRef","mergedBeforeGuardRef","beforeContentFocusGuardRef","mergedAfterGuardRef","blurTimeout","pointerDownTimeout","restoreFocusFrame","isInsidePortal","getTabbableContent","getResolvedInsideElements","getInsideElements","disabled","modal","onKeyDown","doc","clearPointerDownOutside","onPointerDown","insideElements","pointerTargetInside","closeOnFocusOut","handlePointerDown","handleFocusIn","handleFocusOutside","relatedTarget","currentTarget","nodeId","triggers","isRelatedFocusGuard","previousFocusableElement","nextFocusableElement","movedToUnrelatedNode","trigger","restoreFocus","prevTabbable","nodeToFocus","markInsideReactTree","domReferenceElement","portalNodes","rootAncestorComboboxDomReference","ariaHiddenCleanup","markerCleanup","previouslyFocusedElement","initialFocusValueOrFn","resolvedInitialFocus","focusableElements","getDefaultFocusElement","elToFocus","hadFocusInside","openEvent","openedByVirtualPress","currentActiveElement","pendingReturnFocusRef","elementFocusedBeforeOpen","preferPreviousFocus","onOpenChangeLocal","details","isPreventScrollSupported","events","getReturnElement","returnFocusValueOrFn","resolvedReturnFocusValue","closeType","referenceReturnElement","previousReturnElement","defaultReturnElement","activeEl","isFocusInsideFloatingTree","returnElement","job","tabbableReturnElement","hasExplicitReturnFocus","focusOptions","shouldRenderGuards","els","children","useClick","eventOption","pointerTypeRef","frame","touchOpenTimeout","reference","setOpenWithTouchDelay","reason","nativeEvent","nextOpen","pointerType","touchOpenDelay","getNextOpen","hasClickedOnInactiveTrigger","toggle","stickIfOpen","isClickLikeOpenEvent","ignoreMouse","openEventType","isTypeable","eventCurrentTarget","enabled","useEnhancedClickHandler","lastClickInteractionTypeRef","handler","useValueChanged","valueRef","value","onChangeCallback","onChange","useOpenMethodTriggerProps","setOpenMethod","interactionType","onClick","useOpenInteractionType","openMethod","triggerProps","previousOpen","InternalBackdrop","otherProps","clipPath","cutout","rect","originalHtmlStyles","originalBodyStyles","originalHtmlScrollBehavior","getViewportScroller","html","isPageScrollLocked","hasInsetScrollbars","referenceElement","supportsStableScrollbarGutter","scrollContainer","originalScrollContainerOverflowY","originalHtmlStyleGutter","before","after","preventScrollOverlayScrollbars","elementToLock","originalElementToLockStyles","preventScrollInsetScrollbars","scrollTop","scrollLeft","updateGutterOnly","resizeFrame","lockScroll","htmlStyles","bodyStyles","scrollbarGutterValue","isScrollableY","isScrollableX","hasConstantOverflowY","hasConstantOverflowX","scrollbarWidth","scrollbarHeight","marginY","marginX","cleanup","handleResize","unsubscribeResize","SCROLL_LOCKER","observer","hasOverlayScrollbars","useScrollLock","VIEWPORT_WIDTH_TOLERANCE_PX","useAnchoredPopupScrollLock","touchOpenShouldLockScroll","setTouchOpenShouldLockScroll","touchOpen","positionerElement","viewportWidth","popupWidth","COMPOSITE_KEYS","ToolbarRootContext","useToolbarRootContext","context","optional"],"sources":["../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/floating-ui-react/utils/enqueueFocus.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/floating-ui-react/utils/markOthers.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/floating-ui-react/components/FloatingFocusManager.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/floating-ui-react/hooks/useClick.mjs","../../../../../node_modules/.pnpm/@base-ui+utils@0.5.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/utils/useEnhancedClickHandler.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/internals/useValueChanged.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/useOpenInteractionType.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/InternalBackdrop.mjs","../../../../../node_modules/.pnpm/@base-ui+utils@0.5.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/utils/useScrollLock.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/useAnchoredPopupScrollLock.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/internals/composite/composite.mjs","../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/toolbar/root/ToolbarRootContext.mjs"],"sourcesContent":["import { NOOP } from '@base-ui/utils/empty';\nlet rafId = 0;\nexport function enqueueFocus(el, options = {}) {\n const {\n preventScroll = false,\n sync = false,\n shouldFocus\n } = options;\n cancelAnimationFrame(rafId);\n function exec() {\n if (shouldFocus && !shouldFocus()) {\n return;\n }\n el?.focus({\n preventScroll\n });\n }\n if (sync) {\n exec();\n return NOOP;\n }\n const currentRafId = requestAnimationFrame(exec);\n rafId = currentRafId;\n return () => {\n if (rafId === currentRafId) {\n cancelAnimationFrame(currentRafId);\n rafId = 0;\n }\n };\n}","// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nimport { getNodeName, isShadowRoot } from '@floating-ui/utils/dom';\nimport { ownerDocument } from '@base-ui/utils/owner';\nconst markerName = 'data-base-ui-inert';\nlet ariaHiddenCounterMap = new WeakMap();\nlet uncontrolledElementsSet = new WeakSet();\nlet markerCounterMap = new WeakMap();\nlet lockCount = 0;\nfunction unwrapHost(node) {\n if (!node) {\n return null;\n }\n return isShadowRoot(node) ? node.host : unwrapHost(node.parentNode);\n}\nconst correctElements = (parent, targets) => targets.map(target => {\n if (parent.contains(target)) {\n return target;\n }\n const correctedTarget = unwrapHost(target);\n if (parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n return null;\n}).filter(x => x != null);\nconst buildKeepSet = targets => {\n const keep = new Set();\n targets.forEach(target => {\n let node = target;\n while (node && !keep.has(node)) {\n keep.add(node);\n node = node.parentNode;\n }\n });\n return keep;\n};\nconst collectOutsideElements = (root, keepElements, stopElements) => {\n const outside = [];\n const walk = parent => {\n if (!parent || stopElements.has(parent)) {\n return;\n }\n Array.from(parent.children).forEach(node => {\n if (getNodeName(node) === 'script') {\n return;\n }\n if (keepElements.has(node)) {\n walk(node);\n } else {\n outside.push(node);\n }\n });\n };\n walk(root);\n return outside;\n};\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, {\n mark = true\n}) {\n const avoidElements = correctElements(body, uncorrectedAvoidElements);\n const markerTargets = mark ? collectOutsideElements(body, buildKeepSet(avoidElements), new Set(avoidElements)) : [];\n const hiddenElements = [];\n const markedElements = [];\n if (ariaHidden) {\n const ariaLiveElements = correctElements(body, Array.from(body.querySelectorAll('[aria-live]')));\n const controlElements = avoidElements.concat(ariaLiveElements);\n const controlTargets = collectOutsideElements(body, buildKeepSet(controlElements), new Set(controlElements));\n controlTargets.forEach(node => {\n const attr = node.getAttribute('aria-hidden');\n const alreadyHidden = attr !== null && attr !== 'false';\n const counterValue = (ariaHiddenCounterMap.get(node) || 0) + 1;\n ariaHiddenCounterMap.set(node, counterValue);\n hiddenElements.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledElementsSet.add(node);\n }\n if (!alreadyHidden) {\n node.setAttribute('aria-hidden', 'true');\n }\n });\n }\n if (mark) {\n markerTargets.forEach(node => {\n const markerValue = (markerCounterMap.get(node) || 0) + 1;\n markerCounterMap.set(node, markerValue);\n markedElements.push(node);\n if (markerValue === 1) {\n node.setAttribute(markerName, '');\n }\n });\n }\n lockCount += 1;\n return () => {\n hiddenElements.forEach(element => {\n const counterValue = (ariaHiddenCounterMap.get(element) || 0) - 1;\n ariaHiddenCounterMap.set(element, counterValue);\n if (!counterValue) {\n if (!uncontrolledElementsSet.has(element)) {\n element.removeAttribute('aria-hidden');\n }\n uncontrolledElementsSet.delete(element);\n }\n });\n if (mark) {\n markedElements.forEach(element => {\n const markerValue = (markerCounterMap.get(element) || 0) - 1;\n markerCounterMap.set(element, markerValue);\n if (!markerValue) {\n element.removeAttribute(markerName);\n }\n });\n }\n lockCount -= 1;\n if (!lockCount) {\n ariaHiddenCounterMap = new WeakMap();\n uncontrolledElementsSet = new WeakSet();\n markerCounterMap = new WeakMap();\n }\n };\n}\nexport function markOthers(avoidElements, options = {}) {\n const {\n ariaHidden = false,\n mark = true\n } = options;\n const body = ownerDocument(avoidElements[0]).body;\n return applyAttributeToOthers(avoidElements, body, ariaHidden, {\n mark\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { getNodeName, isHTMLElement } from '@floating-ui/utils/dom';\nimport { addEventListener } from '@base-ui/utils/addEventListener';\nimport { mergeCleanups } from '@base-ui/utils/mergeCleanups';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { platform } from '@base-ui/utils/platform';\nimport { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { FocusGuard } from \"../../utils/FocusGuard.mjs\";\nimport { activeElement, closest, contains, getTarget, isTypeableCombobox, getFloatingFocusElement, isTypeableElement } from \"../utils/element.mjs\";\nimport { isVirtualClick, isVirtualPointerEvent, stopEvent } from \"../utils/event.mjs\";\nimport { tabbable, focusable, isOutsideEvent, isTabbable, getNextTabbable, getPreviousTabbable } from \"../utils/tabbable.mjs\";\nimport { getNodeAncestors, getNodeChildren } from \"../utils/nodes.mjs\";\nimport { isElementVisible } from \"../utils/composite.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { createAttribute } from \"../utils/createAttribute.mjs\";\nimport { enqueueFocus } from \"../utils/enqueueFocus.mjs\";\nimport { markOthers } from \"../utils/markOthers.mjs\";\nimport { usePortalContext } from \"./FloatingPortal.mjs\";\nimport { useFloatingTree } from \"./FloatingTree.mjs\";\nimport { CLICK_TRIGGER_IDENTIFIER } from \"../../internals/constants.mjs\";\nimport { resolveRef } from \"../../utils/resolveRef.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getEventType(event, lastInteractionType) {\n const win = ownerWindow(getTarget(event));\n if (event instanceof win.KeyboardEvent) {\n return 'keyboard';\n }\n if (event instanceof win.FocusEvent) {\n // Focus events can be caused by a preceding pointer interaction (e.g., focusout on outside press).\n // Prefer the last known pointer type if provided, else treat as keyboard.\n return lastInteractionType || 'keyboard';\n }\n if ('pointerType' in event) {\n // A trusted click without a pointerType is keyboard/AT; only synthesized\n // clicks (e.g. a test harness) pair an empty pointerType with a click count.\n return event.pointerType || (isVirtualClick(event) ? 'keyboard' : lastInteractionType || 'mouse');\n }\n if ('touches' in event) {\n return 'touch';\n }\n if (event instanceof win.MouseEvent) {\n // onClick events may not contain pointer events, and will fall through to here\n return lastInteractionType || (event.detail === 0 ? 'keyboard' : 'mouse');\n }\n return '';\n}\nconst LIST_LIMIT = 20;\nlet previouslyFocusedElements = [];\nfunction clearDisconnectedPreviouslyFocusedElements() {\n previouslyFocusedElements = previouslyFocusedElements.filter(entry => {\n return entry.deref()?.isConnected;\n });\n}\nfunction addPreviouslyFocusedElement(element) {\n clearDisconnectedPreviouslyFocusedElements();\n if (element && getNodeName(element) !== 'body') {\n previouslyFocusedElements.push(new WeakRef(element));\n if (previouslyFocusedElements.length > LIST_LIMIT) {\n previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);\n }\n }\n}\nfunction getPreviouslyFocusedElement() {\n clearDisconnectedPreviouslyFocusedElements();\n return previouslyFocusedElements[previouslyFocusedElements.length - 1]?.deref();\n}\nfunction getFirstTabbableElement(container) {\n if (!container) {\n return null;\n }\n if (isTabbable(container)) {\n return container;\n }\n return tabbable(container)[0] || container;\n}\nfunction handleTabIndex(floatingFocusElement) {\n if (floatingFocusElement.hasAttribute('tabindex') && !floatingFocusElement.hasAttribute('data-tabindex')) {\n return;\n }\n if (!floatingFocusElement.getAttribute('role')?.includes('dialog')) {\n return;\n }\n const focusableElements = focusable(floatingFocusElement);\n const tabbableContent = focusableElements.filter(element => {\n const dataTabIndex = element.getAttribute('data-tabindex') || '';\n return isTabbable(element) || element.hasAttribute('data-tabindex') && !dataTabIndex.startsWith('-');\n });\n const tabIndex = floatingFocusElement.getAttribute('tabindex');\n if (tabbableContent.length === 0) {\n if (tabIndex !== '0') {\n floatingFocusElement.setAttribute('tabindex', '0');\n // Mark our own write so the externally-managed early-return above doesn't\n // mistake it for a user-authored `tabindex` and freeze management.\n floatingFocusElement.setAttribute('data-tabindex', '0');\n }\n } else if (tabIndex !== '-1' || floatingFocusElement.hasAttribute('data-tabindex') && floatingFocusElement.getAttribute('data-tabindex') !== '-1') {\n floatingFocusElement.setAttribute('tabindex', '-1');\n floatingFocusElement.setAttribute('data-tabindex', '-1');\n }\n}\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n * @internal\n */\nexport function FloatingFocusManager(props) {\n const {\n context: store,\n children,\n disabled = false,\n initialFocus = true,\n returnFocus = true,\n explicitReturnFocus,\n restoreFocus = false,\n modal = true,\n closeOnFocusOut = true,\n openInteractionType = '',\n nextFocusableElement,\n previousFocusableElement,\n beforeContentFocusGuardRef,\n externalTree,\n getInsideElements\n } = props;\n const open = store.useState('open');\n const domReference = store.useState('domReferenceElement');\n const floating = store.useState('floatingElement');\n const {\n events,\n dataRef\n } = store.context;\n const getNodeId = useStableCallback(() => dataRef.current.floatingContext?.nodeId);\n const ignoreInitialFocus = initialFocus === false;\n // A typeable combobox reference (e.g. input/textarea) with `initialFocus={false}`\n // has different focus semantics: focus is not trapped inside the floating element,\n // so in the modal case the guards are not rendered, but `aria-hidden` is still\n // applied to the outside nodes.\n const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;\n const initialFocusRef = useValueAsRef(initialFocus);\n const returnFocusRef = useValueAsRef(returnFocus);\n // Read through a ref so a mid-open change can't re-run the return-focus effect, whose cleanup\n // would move focus while the floating element is still open.\n const explicitReturnFocusRef = useValueAsRef(explicitReturnFocus);\n const openInteractionTypeRef = useValueAsRef(openInteractionType);\n const openRef = useValueAsRef(open);\n const tree = useFloatingTree(externalTree);\n const portalContext = usePortalContext();\n const preventReturnFocusRef = React.useRef(false);\n const isPointerDownRef = React.useRef(false);\n const pointerDownOutsideRef = React.useRef(false);\n const lastFocusedTabbableRef = React.useRef(null);\n const closeTypeRef = React.useRef('');\n const lastInteractionTypeRef = React.useRef('');\n const beforeGuardRef = React.useRef(null);\n const afterGuardRef = React.useRef(null);\n const mergedBeforeGuardRef = useMergedRefs(beforeGuardRef, beforeContentFocusGuardRef, portalContext?.beforeInsideRef);\n const mergedAfterGuardRef = useMergedRefs(afterGuardRef, portalContext?.afterInsideRef);\n const blurTimeout = useTimeout();\n const pointerDownTimeout = useTimeout();\n const restoreFocusFrame = useAnimationFrame();\n const isInsidePortal = portalContext != null;\n const floatingFocusElement = getFloatingFocusElement(floating);\n const getTabbableContent = useStableCallback((container = floatingFocusElement) => {\n return container ? tabbable(container) : [];\n });\n const getResolvedInsideElements = useStableCallback(() => getInsideElements?.().filter(element => element != null) ?? []);\n\n // Prevent Tab from escaping the modal when there are no tabbable elements.\n React.useEffect(() => {\n if (disabled || !modal) {\n return undefined;\n }\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains(floatingFocusElement, activeElement(ownerDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n stopEvent(event);\n }\n }\n }\n const doc = ownerDocument(floatingFocusElement);\n return addEventListener(doc, 'keydown', onKeyDown);\n }, [disabled, floatingFocusElement, modal, isUntrappedTypeableCombobox, getTabbableContent]);\n\n // Track pointer/keyboard interactions to disambiguate focus and outside presses.\n React.useEffect(() => {\n if (disabled || !open) {\n return undefined;\n }\n const doc = ownerDocument(floatingFocusElement);\n function clearPointerDownOutside() {\n pointerDownOutsideRef.current = false;\n }\n function onPointerDown(event) {\n const target = getTarget(event);\n const insideElements = getResolvedInsideElements();\n const pointerTargetInside = contains(floating, target) || contains(domReference, target) || contains(portalContext?.portalNode, target) || insideElements.some(element => element === target || contains(element, target));\n pointerDownOutsideRef.current = !pointerTargetInside;\n lastInteractionTypeRef.current = event.pointerType || 'keyboard';\n if (closest(target, `[${CLICK_TRIGGER_IDENTIFIER}]`)) {\n isPointerDownRef.current = true;\n // Reset on the next tick so a single click on a click-trigger doesn't\n // permanently suppress focus-out closing for the lifetime of the instance.\n pointerDownTimeout.start(0, () => {\n isPointerDownRef.current = false;\n });\n }\n }\n function onKeyDown() {\n lastInteractionTypeRef.current = 'keyboard';\n }\n return mergeCleanups(addEventListener(doc, 'pointerdown', onPointerDown, true), addEventListener(doc, 'pointerup', clearPointerDownOutside, true), addEventListener(doc, 'pointercancel', clearPointerDownOutside, true), addEventListener(doc, 'keydown', onKeyDown, true),\n // Avoid a stale `true` leaking into the next open (e.g. keep-mounted popups)\n // if the popup dismissed between pointerdown and pointerup.\n clearPointerDownOutside);\n }, [disabled, floating, domReference, floatingFocusElement, open, portalContext, pointerDownTimeout, getResolvedInsideElements]);\n\n // Close on focus out and restore focus within the floating tree when needed.\n React.useEffect(() => {\n if (disabled || !closeOnFocusOut) {\n return undefined;\n }\n const doc = ownerDocument(floatingFocusElement);\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n pointerDownTimeout.start(0, () => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusIn(event) {\n const target = getTarget(event);\n if (isTabbable(target)) {\n lastFocusedTabbableRef.current = target;\n }\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n const currentTarget = event.currentTarget;\n const target = getTarget(event);\n\n // When focus is lost to the body (e.g. on a backdrop press), record the element that\n // had focus so a confirmation dialog opened while the body is focused can return focus\n // to it. Scoped to `modal` to avoid non-modal popups polluting the shared stack.\n if (modal && relatedTarget == null && target != null && contains(floating, target)) {\n addPreviouslyFocusedElement(target);\n }\n queueMicrotask(() => {\n const nodeId = getNodeId();\n const triggers = store.context.triggerElements;\n const insideElements = getResolvedInsideElements();\n const isRelatedFocusGuard = relatedTarget?.hasAttribute(createAttribute('focus-guard')) && [beforeGuardRef.current, afterGuardRef.current, portalContext?.beforeInsideRef.current, portalContext?.afterInsideRef.current, portalContext?.beforeOutsideRef.current, portalContext?.afterOutsideRef.current, resolveRef(previousFocusableElement), resolveRef(nextFocusableElement)].includes(relatedTarget);\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext?.portalNode, relatedTarget) || insideElements.some(element => element === relatedTarget || contains(element, relatedTarget)) || triggers.hasMatchingElement(trigger => contains(trigger, relatedTarget)) || isRelatedFocusGuard || tree && (getNodeChildren(tree.nodesRef.current, nodeId).find(node => contains(node.context?.elements.floating, relatedTarget) || contains(node.context?.elements.domReference, relatedTarget)) || getNodeAncestors(tree.nodesRef.current, nodeId).find(node => [node.context?.elements.floating, getFloatingFocusElement(node.context?.elements.floating)].includes(relatedTarget) || node.context?.elements.domReference === relatedTarget)));\n if (currentTarget === domReference && floatingFocusElement) {\n handleTabIndex(floatingFocusElement);\n }\n\n // Restore focus to the previously focused tabbable element to prevent\n // focus from being lost outside the floating tree.\n if (restoreFocus && currentTarget !== domReference && !isElementVisible(target) && activeElement(doc) === doc.body) {\n // Let `FloatingPortal` effect knows that focus is still inside the\n // floating tree.\n if (isHTMLElement(floatingFocusElement)) {\n floatingFocusElement.focus();\n // If explicitly requested to restore focus to the popup container, do not search\n // for the next/previous tabbable element.\n if (restoreFocus === 'popup') {\n // If the focused element is removed on pointerdown, the browser\n // tries to move focus to it right after the `.focus()` call above,\n // but because it's removed in the same tick, focus is lost instead.\n // Re-focusing asynchronously (next frame) wins that race.\n restoreFocusFrame.request(() => {\n floatingFocusElement.focus();\n });\n return;\n }\n }\n const tabbableContent = getTabbableContent();\n const prevTabbable = lastFocusedTabbableRef.current;\n const nodeToFocus = (prevTabbable && tabbableContent.includes(prevTabbable) ? prevTabbable : null) || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n if (isHTMLElement(nodeToFocus)) {\n nodeToFocus.focus();\n }\n }\n\n // https://github.com/floating-ui/floating-ui/issues/3060\n if (dataRef.current.insideReactTree) {\n dataRef.current.insideReactTree = false;\n return;\n }\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current && (\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n // For an \"untrapped\" typeable combobox (input role=combobox with\n // initialFocus=false), re-opening the popup and tabbing out should still close it even\n // when the previously focused element (e.g. the next tabbable outside the popup) is\n // focused again. Otherwise, the popup remains open on the second Tab sequence:\n // click input -> Tab (closes) -> click input -> Tab.\n // Allow closing when `isUntrappedTypeableCombobox` regardless of the previously focused element.\n isUntrappedTypeableCombobox || relatedTarget !== getPreviouslyFocusedElement())) {\n preventReturnFocusRef.current = true;\n store.setOpen(false, createChangeEventDetails(REASONS.focusOut, event));\n }\n });\n }\n function markInsideReactTree() {\n if (pointerDownOutsideRef.current) {\n return;\n }\n dataRef.current.insideReactTree = true;\n blurTimeout.start(0, () => {\n dataRef.current.insideReactTree = false;\n });\n }\n const domReferenceElement = isHTMLElement(domReference) ? domReference : null;\n if (!floating && !domReferenceElement) {\n return undefined;\n }\n return mergeCleanups(domReferenceElement && addEventListener(domReferenceElement, 'focusout', handleFocusOutside), domReferenceElement && addEventListener(domReferenceElement, 'pointerdown', handlePointerDown), floating && addEventListener(floating, 'focusin', handleFocusIn), floating && addEventListener(floating, 'focusout', handleFocusOutside), floating && portalContext && addEventListener(floating, 'focusout', markInsideReactTree, true));\n }, [disabled, domReference, floating, floatingFocusElement, modal, tree, portalContext, store, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox, getNodeId, dataRef, blurTimeout, pointerDownTimeout, restoreFocusFrame, nextFocusableElement, previousFocusableElement, getResolvedInsideElements]);\n\n // Hide everything outside the floating tree from assistive tech while open.\n React.useEffect(() => {\n if (disabled || !floating || !open) {\n return undefined;\n }\n\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from(portalContext?.portalNode?.querySelectorAll(`[${createAttribute('portal')}]`) || []);\n const ancestors = tree ? getNodeAncestors(tree.nodesRef.current, getNodeId()) : [];\n const rootAncestorComboboxDomReference = ancestors.find(node => isTypeableCombobox(node.context?.elements.domReference || null))?.context?.elements.domReference;\n const controlInsideElements = [floating, ...portalNodes, beforeGuardRef.current, afterGuardRef.current, portalContext?.beforeOutsideRef.current, portalContext?.afterOutsideRef.current, ...getResolvedInsideElements()];\n const insideElements = [...controlInsideElements, rootAncestorComboboxDomReference, resolveRef(previousFocusableElement), resolveRef(nextFocusableElement), isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n const ariaHiddenCleanup = markOthers(insideElements, {\n ariaHidden: modal || isUntrappedTypeableCombobox,\n mark: false\n });\n const markerInsideElements = [floating, ...portalNodes].filter(x => x != null);\n const markerCleanup = markOthers(markerInsideElements);\n return () => {\n markerCleanup();\n ariaHiddenCleanup();\n };\n }, [open, disabled, domReference, floating, modal, portalContext, isUntrappedTypeableCombobox, tree, getNodeId, nextFocusableElement, previousFocusableElement, getResolvedInsideElements]);\n\n // Focus the initial element when the floating element opens.\n useIsoLayoutEffect(() => {\n if (!open || disabled || !isHTMLElement(floatingFocusElement)) {\n return;\n }\n closeTypeRef.current = '';\n lastInteractionTypeRef.current = '';\n const doc = ownerDocument(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const initialFocusValueOrFn = initialFocusRef.current;\n const resolvedInitialFocus = typeof initialFocusValueOrFn === 'function' ? initialFocusValueOrFn(openInteractionTypeRef.current || '') : initialFocusValueOrFn;\n\n // `null` should fallback to default behavior in case of an empty ref.\n if (resolvedInitialFocus === undefined || resolvedInitialFocus === false) {\n return;\n }\n const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);\n if (focusAlreadyInsideFloatingEl) {\n return;\n }\n let focusableElements = null;\n const getDefaultFocusElement = () => {\n if (focusableElements == null) {\n focusableElements = getTabbableContent(floatingFocusElement);\n }\n return focusableElements[0] || floatingFocusElement;\n };\n let elToFocus;\n if (resolvedInitialFocus === true || resolvedInitialFocus === null) {\n elToFocus = getDefaultFocusElement();\n } else {\n elToFocus = resolveRef(resolvedInitialFocus);\n }\n elToFocus = elToFocus || getDefaultFocusElement();\n const hadFocusInside = contains(floatingFocusElement, activeElement(doc));\n\n // Screen readers re-sync focus to their cursor right after a synthesized press. A focus\n // that lands a frame later reads as a stray move and gets pulled back to the reference.\n const openEvent = dataRef.current.openEvent;\n const openedByVirtualPress = openEvent?.type === 'mousedown' && isVirtualClick(openEvent);\n\n // enqueueFocus returns a rAF-cancel function; we intentionally don't cancel this focus.\n void enqueueFocus(elToFocus, {\n sync: openedByVirtualPress,\n preventScroll: elToFocus === floatingFocusElement,\n shouldFocus() {\n // If the floating element has closed before this runs — e.g. tabbing out of a\n // kept-mounted popup — don't pull focus back onto the initial element after it has\n // legitimately moved elsewhere.\n if (!openRef.current) {\n return false;\n }\n if (hadFocusInside) {\n return true;\n }\n const currentActiveElement = activeElement(doc);\n const focusMovedInside = currentActiveElement !== elToFocus && contains(floatingFocusElement, currentActiveElement);\n return !focusMovedInside;\n }\n });\n });\n }, [disabled, open, floatingFocusElement, getTabbableContent, initialFocusRef, openInteractionTypeRef, openRef, dataRef]);\n\n // A return-focus queued by the effect cleanup. If the effect re-arms in the same commit, a\n // dependency changed while the popup stayed open, so the cleanup was not a close.\n const pendingReturnFocusRef = React.useRef(null);\n\n // Track return focus targets and restore focus on unmount/close.\n useIsoLayoutEffect(() => {\n if (disabled || !floatingFocusElement) {\n pendingReturnFocusRef.current = null;\n return undefined;\n }\n if (pendingReturnFocusRef.current) {\n pendingReturnFocusRef.current.cancelled = true;\n pendingReturnFocusRef.current = null;\n }\n const doc = ownerDocument(floatingFocusElement);\n const elementFocusedBeforeOpen = activeElement(doc);\n // Only an explicit `null` interaction type represents a programmatic open.\n // `undefined` is normalized to `''` by the prop default, so it never reaches\n // here as nullish and is intentionally not treated as programmatic.\n const preferPreviousFocus = openInteractionTypeRef.current == null;\n addPreviouslyFocusedElement(elementFocusedBeforeOpen);\n function onOpenChangeLocal(details) {\n if (!details.open) {\n closeTypeRef.current = getEventType(details.nativeEvent, lastInteractionTypeRef.current);\n }\n\n // Focus guards transfer focus themselves; other close handlers may still need return focus.\n if (details.reason === REASONS.focusOut && details.triggerElement?.hasAttribute(createAttribute('focus-guard')) || details.reason === REASONS.triggerHover && details.nativeEvent.type === 'mouseleave') {\n preventReturnFocusRef.current = true;\n }\n if (details.reason !== REASONS.outsidePress) {\n return;\n }\n if (details.nested) {\n preventReturnFocusRef.current = false;\n } else if (isVirtualClick(details.nativeEvent) || isVirtualPointerEvent(details.nativeEvent)) {\n preventReturnFocusRef.current = false;\n } else {\n // On outside press, only return focus to the reference when the browser supports the\n // `focus({ preventScroll })` option; without it, restoring focus scrolls the page.\n // Chrome on Android and Samsung Internet still don't support `preventScroll`\n // (https://issues.chromium.org/issues/41453122), so the runtime check keeps return\n // focus disabled there to avoid the scroll jump.\n let isPreventScrollSupported = false;\n ownerDocument(floatingFocusElement).createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n if (isPreventScrollSupported) {\n preventReturnFocusRef.current = false;\n } else {\n preventReturnFocusRef.current = true;\n }\n }\n }\n events.on('openchange', onOpenChangeLocal);\n function getReturnElement(closeType) {\n const returnFocusValueOrFn = returnFocusRef.current;\n let resolvedReturnFocusValue = typeof returnFocusValueOrFn === 'function' ? returnFocusValueOrFn(closeType) : returnFocusValueOrFn;\n\n // `null` should fallback to default behavior in case of an empty ref.\n if (resolvedReturnFocusValue === undefined || resolvedReturnFocusValue === false) {\n return null;\n }\n if (resolvedReturnFocusValue === null) {\n resolvedReturnFocusValue = true;\n }\n const referenceReturnElement = domReference?.isConnected ? domReference : null;\n const previousReturnElement = elementFocusedBeforeOpen?.isConnected && getNodeName(elementFocusedBeforeOpen) !== 'body' ? elementFocusedBeforeOpen : null;\n let defaultReturnElement = preferPreviousFocus ? previousReturnElement || referenceReturnElement : referenceReturnElement || previousReturnElement;\n if (!defaultReturnElement) {\n defaultReturnElement = getPreviouslyFocusedElement() || null;\n }\n if (typeof resolvedReturnFocusValue === 'boolean') {\n return defaultReturnElement;\n }\n return resolveRef(resolvedReturnFocusValue) || defaultReturnElement || null;\n }\n return () => {\n events.off('openchange', onOpenChangeLocal);\n const activeEl = activeElement(doc);\n const insideElements = getResolvedInsideElements();\n const isFocusInsideFloatingTree = contains(floating, activeEl) || insideElements.some(element => element === activeEl || contains(element, activeEl)) || tree && getNodeChildren(tree.nodesRef.current, getNodeId(), false).some(node => contains(node.context?.elements.floating, activeEl));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const returnFocusValueOrFn = returnFocusRef.current;\n const closeType = closeTypeRef.current;\n const returnElement = getReturnElement(closeType);\n const job = {\n cancelled: false\n };\n pendingReturnFocusRef.current = job;\n queueMicrotask(() => {\n if (pendingReturnFocusRef.current === job) {\n pendingReturnFocusRef.current = null;\n }\n // `returnElement` if it is tabbable, otherwise its first tabbable child,\n // otherwise `returnElement` itself (which may not be tabbable at all).\n const tabbableReturnElement = getFirstTabbableElement(returnElement);\n // Read in the cleanup on purpose: the latest `explicitReturnFocus` decides.\n const hasExplicitReturnFocus =\n // eslint-disable-next-line react-hooks/exhaustive-deps\n explicitReturnFocusRef.current ?? typeof returnFocusValueOrFn !== 'boolean';\n if (!job.cancelled && returnFocusValueOrFn && !preventReturnFocusRef.current && isHTMLElement(tabbableReturnElement) && (\n // If the focus moved somewhere else after mount, avoid returning focus\n // since it likely entered a different element which should be\n // respected: https://github.com/floating-ui/floating-ui/issues/2607\n !hasExplicitReturnFocus && tabbableReturnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) {\n const focusOptions = {\n preventScroll: true\n };\n if (closeType === 'keyboard') {\n focusOptions.focusVisible = true;\n }\n tabbableReturnElement.focus(focusOptions);\n }\n\n // A cancelled return must also clear suppression before the next close.\n preventReturnFocusRef.current = false;\n });\n };\n }, [disabled, floating, floatingFocusElement, returnFocusRef, explicitReturnFocusRef, openInteractionTypeRef, events, tree, domReference, getNodeId, getResolvedInsideElements]);\n\n // Safari may randomly scroll to the bottom of the page if an input inside a popup has focus\n // when the popup unmounts from the DOM.\n // By blurring it before the popup unmounts, we can prevent this behavior.\n useIsoLayoutEffect(() => {\n if (!platform.engine.webkit || open || !floating) {\n return;\n }\n const activeEl = activeElement(ownerDocument(floating));\n if (!isHTMLElement(activeEl) || !isTypeableElement(activeEl)) {\n return;\n }\n if (contains(floating, activeEl)) {\n activeEl.blur();\n }\n }, [open, floating]);\n\n // Synchronize the focus manager state (modal, closeOnFocusOut, open, etc.) to the\n // FloatingPortal context, which uses it to decide whether to render its own guards.\n useIsoLayoutEffect(() => {\n if (disabled || !portalContext) {\n return undefined;\n }\n portalContext.setFocusManagerState({\n modal,\n closeOnFocusOut,\n open,\n onOpenChange: store.setOpen,\n domReference\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [disabled, portalContext, modal, open, store, closeOnFocusOut, domReference]);\n\n // Keep the floating element tabIndex in sync and clear stale focus records.\n useIsoLayoutEffect(() => {\n if (disabled || !floatingFocusElement) {\n return undefined;\n }\n handleTabIndex(floatingFocusElement);\n return () => {\n queueMicrotask(clearDisconnectedPreviouslyFocusedElements);\n };\n }, [disabled, floatingFocusElement]);\n const shouldRenderGuards = !disabled && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [shouldRenderGuards && /*#__PURE__*/_jsx(FocusGuard, {\n \"data-type\": \"inside\",\n ref: mergedBeforeGuardRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableContent();\n // enqueueFocus returns a rAF-cancel function we don't need here.\n void enqueueFocus(els[els.length - 1]);\n } else if (portalContext?.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable(domReference);\n nextTabbable?.focus();\n } else {\n resolveRef(previousFocusableElement ?? portalContext.beforeOutsideRef)?.focus();\n }\n }\n }\n }), children, shouldRenderGuards && /*#__PURE__*/_jsx(FocusGuard, {\n \"data-type\": \"inside\",\n ref: mergedAfterGuardRef,\n onFocus: event => {\n if (modal) {\n // enqueueFocus returns a rAF-cancel function we don't need here.\n void enqueueFocus(getTabbableContent()[0]);\n } else if (portalContext?.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable(domReference);\n prevTabbable?.focus();\n } else {\n resolveRef(nextFocusableElement ?? portalContext.afterOutsideRef)?.focus();\n }\n }\n }\n })]\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { getTarget, isTypeableElement } from \"../utils/element.mjs\";\nimport { isMouseLikePointerType, isVirtualPointerEvent } from \"../utils/event.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nexport function useClick(store, props = {}) {\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n stickIfOpen = true,\n touchOpenDelay = 0,\n reason = REASONS.triggerPress\n } = props;\n const dataRef = store.context.dataRef;\n const pointerTypeRef = React.useRef(undefined);\n const frame = useAnimationFrame();\n const touchOpenTimeout = useTimeout();\n const reference = React.useMemo(() => {\n function setOpenWithTouchDelay(nextOpen, nativeEvent, target, pointerType) {\n const details = createChangeEventDetails(reason, nativeEvent, target);\n if (nextOpen && pointerType === 'touch' && touchOpenDelay > 0) {\n touchOpenTimeout.start(touchOpenDelay, () => {\n store.setOpen(true, details);\n });\n } else {\n store.setOpen(nextOpen, details);\n }\n }\n function getNextOpen(open, currentTarget, isClickLikeOpenEvent) {\n const openEvent = dataRef.current.openEvent;\n const hasClickedOnInactiveTrigger = store.select('domReferenceElement') !== currentTarget;\n if (open && hasClickedOnInactiveTrigger) {\n // Moving between triggers should always open the newly active one.\n return true;\n }\n if (!open) {\n // A closed popup should open on the next press.\n return true;\n }\n if (!toggle) {\n // Non-toggle mode never closes on a repeated trigger press.\n return true;\n }\n if (openEvent && (typeof stickIfOpen === 'function' ? stickIfOpen() : stickIfOpen)) {\n // Preserve hover/focus-opened popups until the matching click-like event closes them.\n return !isClickLikeOpenEvent(openEvent.type);\n }\n\n // Otherwise, a repeated click toggles the popup closed.\n return false;\n }\n return {\n onPointerDown(event) {\n // Screen reader activations (Android TalkBack, desktop screen readers) report a\n // mouse-like `pointerType`, but `ignoreMouse` must not drop them: hover logic cannot\n // open for a virtual press since there is no real pointer movement to wait for.\n // Virtual `touch` presses (iOS VoiceOver) keep their type so `touchOpenDelay` applies.\n pointerTypeRef.current = isMouseLikePointerType(event.pointerType, true) && isVirtualPointerEvent(event.nativeEvent) ? 'virtual' : event.pointerType;\n },\n onMouseDown(event) {\n const pointerType = pointerTypeRef.current;\n const nativeEvent = event.nativeEvent;\n const open = store.select('open');\n\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0 || eventOption === 'click' || isMouseLikePointerType(pointerType, true) && ignoreMouse) {\n return;\n }\n const nextOpen = getNextOpen(open, event.currentTarget, openEventType => openEventType === 'click' || openEventType === 'mousedown');\n\n // Animations sometimes won't run on a typeable element if using a rAF.\n // Focus is always set on these elements. For touch, we may delay opening.\n // A screen reader press opens synchronously, so the popup's focus lands before the reader\n // re-syncs focus to its cursor, which would otherwise read as a stray move.\n const target = getTarget(nativeEvent);\n const isTypeable = isTypeableElement(target);\n if (isTypeable || pointerType === 'virtual') {\n // A virtual press may target a descendant of the trigger; the trigger is what opened.\n setOpenWithTouchDelay(nextOpen, nativeEvent, isTypeable ? target : event.currentTarget, pointerType);\n return;\n }\n\n // Capture the currentTarget before the rAF.\n // as React sets it to null after the event handler completes.\n const eventCurrentTarget = event.currentTarget;\n\n // Wait until focus is set on the element. This is an alternative to\n // `event.preventDefault()` to avoid :focus-visible from appearing when using a pointer.\n frame.request(() => {\n setOpenWithTouchDelay(nextOpen, nativeEvent, eventCurrentTarget, pointerType);\n });\n },\n onClick(event) {\n if (eventOption === 'mousedown-only') {\n return;\n }\n const pointerType = pointerTypeRef.current;\n if (eventOption === 'mousedown' && pointerType) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) {\n return;\n }\n const open = store.select('open');\n const nextOpen = getNextOpen(open, event.currentTarget, openEventType => openEventType === 'click' || openEventType === 'mousedown' || openEventType === 'keydown' || openEventType === 'keyup');\n setOpenWithTouchDelay(nextOpen, event.nativeEvent, event.currentTarget, pointerType);\n },\n onKeyDown() {\n pointerTypeRef.current = undefined;\n }\n };\n }, [dataRef, eventOption, ignoreMouse, reason, store, stickIfOpen, toggle, frame, touchOpenTimeout, touchOpenDelay]);\n return React.useMemo(() => enabled ? {\n reference\n } : EMPTY_OBJECT, [enabled, reference]);\n}","'use client';\n\nimport * as React from 'react';\n/**\n * Provides a cross-browser way to determine the type of the pointer used to click.\n * Safari and Firefox do not provide the PointerEvent to the click handler (they use MouseEvent) yet.\n * Additionally, this implementation detects if the click was triggered by the keyboard.\n *\n * @param handler The function to be called when the button is clicked. The first parameter is the original event and the second parameter is the pointer type.\n */\nexport function useEnhancedClickHandler(handler) {\n const lastClickInteractionTypeRef = React.useRef('');\n const handlePointerDown = React.useCallback(event => {\n if (event.defaultPrevented) {\n return;\n }\n lastClickInteractionTypeRef.current = event.pointerType;\n handler(event, event.pointerType);\n }, [handler]);\n const handleClick = React.useCallback(event => {\n // event.detail has the number of clicks performed on the element. 0 means it was triggered by the keyboard.\n if (event.detail === 0) {\n handler(event, 'keyboard');\n return;\n }\n if ('pointerType' in event) {\n // Chrome and Edge correctly use PointerEvent\n handler(event, event.pointerType);\n } else {\n handler(event, lastClickInteractionTypeRef.current);\n }\n lastClickInteractionTypeRef.current = '';\n }, [handler]);\n return {\n onClick: handleClick,\n onPointerDown: handlePointerDown\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nexport function useValueChanged(value, onChange) {\n const valueRef = React.useRef(value);\n const onChangeCallback = useStableCallback(onChange);\n useIsoLayoutEffect(() => {\n if (valueRef.current !== value) {\n onChangeCallback(valueRef.current);\n }\n valueRef.current = value;\n }, [value, onChangeCallback]);\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useEnhancedClickHandler } from '@base-ui/utils/useEnhancedClickHandler';\nimport { platform } from '@base-ui/utils/platform';\nimport { useValueChanged } from \"../internals/useValueChanged.mjs\";\nexport function useOpenMethodTriggerProps(open, setOpenMethod) {\n const handleTriggerClick = useStableCallback((_, interactionType) => {\n const isOpen = typeof open === 'function' ? open() : open;\n if (!isOpen) {\n setOpenMethod(interactionType || (\n // On iOS Safari, the hitslop around touch targets means tapping outside an element's\n // bounds does not fire `pointerdown` but does fire `mousedown`. The `interactionType`\n // will be \"\" in that case.\n platform.os.ios ? 'touch' : ''));\n }\n });\n const {\n onClick,\n onPointerDown\n } = useEnhancedClickHandler(handleTriggerClick);\n return React.useMemo(() => ({\n onClick,\n onPointerDown\n }), [onClick, onPointerDown]);\n}\n\n/**\n * Determines the interaction type (keyboard, mouse, touch, etc.) that opened the component.\n *\n * @param open The open state of the component.\n */\nexport function useOpenInteractionType(open) {\n const [openMethod, setOpenMethod] = React.useState(null);\n const triggerProps = useOpenMethodTriggerProps(open, setOpenMethod);\n useValueChanged(open, previousOpen => {\n if (previousOpen && !open) {\n setOpenMethod(null);\n }\n });\n return React.useMemo(() => ({\n openMethod,\n triggerProps\n }), [openMethod, triggerProps]);\n}","import * as React from 'react';\n\n/**\n * @internal\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const InternalBackdrop = /*#__PURE__*/React.forwardRef(function InternalBackdrop(props, ref) {\n const {\n cutout,\n ...otherProps\n } = props;\n let clipPath;\n if (cutout) {\n const rect = cutout.getBoundingClientRect();\n clipPath = `polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${rect.left}px ${rect.top}px,${rect.left}px ${rect.bottom}px,${rect.right}px ${rect.bottom}px,${rect.right}px ${rect.top}px,${rect.left}px ${rect.top}px)`;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n ref: ref,\n role: \"presentation\"\n // Ensures Floating UI's outside press detection runs, as it considers\n // it an element that existed when the popup rendered.\n ,\n \"data-base-ui-inert\": \"\",\n ...otherProps,\n style: {\n position: 'fixed',\n inset: 0,\n userSelect: 'none',\n WebkitUserSelect: 'none',\n clipPath\n }\n });\n});\nif (process.env.NODE_ENV !== \"production\") InternalBackdrop.displayName = \"InternalBackdrop\";","'use client';\n\nimport { isOverflowElement } from '@floating-ui/utils/dom';\nimport { addEventListener } from \"./addEventListener.mjs\";\nimport { platform } from \"./platform/index.mjs\";\nimport { ownerDocument, ownerWindow } from \"./owner.mjs\";\nimport { useIsoLayoutEffect } from \"./useIsoLayoutEffect.mjs\";\nimport { Timeout } from \"./useTimeout.mjs\";\nimport { AnimationFrame } from \"./useAnimationFrame.mjs\";\nlet originalHtmlStyles = {};\nlet originalBodyStyles = {};\nlet originalHtmlScrollBehavior = '';\n\n// The viewport's overflow comes from <html> when it establishes its own scroll container, and\n// propagates from <body> otherwise. An `overflow` style on the other element doesn't lock the page.\nfunction getViewportScroller(html, body) {\n return isOverflowElement(html) ? html : body;\n}\nfunction isPageScrollLocked(win, html, body) {\n return /hidden|clip/.test(win.getComputedStyle(getViewportScroller(html, body)).overflowY);\n}\nfunction hasInsetScrollbars(referenceElement) {\n if (typeof document === 'undefined') {\n return false;\n }\n const doc = ownerDocument(referenceElement);\n const win = ownerWindow(doc);\n return win.innerWidth - doc.documentElement.clientWidth > 0;\n}\nfunction supportsStableScrollbarGutter(referenceElement) {\n const supported = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('scrollbar-gutter', 'stable');\n if (!supported || typeof document === 'undefined') {\n return false;\n }\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const scrollContainer = getViewportScroller(html, body);\n const originalScrollContainerOverflowY = scrollContainer.style.overflowY;\n const originalHtmlStyleGutter = html.style.scrollbarGutter;\n html.style.scrollbarGutter = 'stable';\n scrollContainer.style.overflowY = 'scroll';\n const before = scrollContainer.offsetWidth;\n scrollContainer.style.overflowY = 'hidden';\n const after = scrollContainer.offsetWidth;\n scrollContainer.style.overflowY = originalScrollContainerOverflowY;\n html.style.scrollbarGutter = originalHtmlStyleGutter;\n return before === after;\n}\nfunction preventScrollOverlayScrollbars(referenceElement) {\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n\n // If an `overflow` style is present on <html>, we need to lock it, because a lock on <body>\n // won't have any effect.\n // But if <body> has an `overflow` style (like `overflow-x: hidden`), we need to lock it\n // instead, as sticky elements shift otherwise.\n const elementToLock = getViewportScroller(html, body);\n const originalElementToLockStyles = {\n overflowY: elementToLock.style.overflowY,\n overflowX: elementToLock.style.overflowX\n };\n Object.assign(elementToLock.style, {\n overflowY: 'hidden',\n overflowX: 'hidden'\n });\n return () => {\n Object.assign(elementToLock.style, originalElementToLockStyles);\n };\n}\nfunction preventScrollInsetScrollbars(referenceElement) {\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const win = ownerWindow(html);\n let scrollTop = 0;\n let scrollLeft = 0;\n let updateGutterOnly = false;\n const resizeFrame = AnimationFrame.create();\n\n // Pinch-zoom in Safari causes a shift. Just don't lock scroll if there's any pinch-zoom.\n if (platform.engine.webkit && (win.visualViewport?.scale ?? 1) !== 1) {\n return () => {};\n }\n function lockScroll() {\n /* DOM reads: */\n\n const htmlStyles = win.getComputedStyle(html);\n const bodyStyles = win.getComputedStyle(body);\n const htmlScrollbarGutterValue = htmlStyles.scrollbarGutter || '';\n const hasBothEdges = htmlScrollbarGutterValue.includes('both-edges');\n const scrollbarGutterValue = hasBothEdges ? 'stable both-edges' : 'stable';\n scrollTop = html.scrollTop;\n scrollLeft = html.scrollLeft;\n originalHtmlStyles = {\n scrollbarGutter: html.style.scrollbarGutter,\n overflowY: html.style.overflowY,\n overflowX: html.style.overflowX\n };\n originalHtmlScrollBehavior = html.style.scrollBehavior;\n originalBodyStyles = {\n position: body.style.position,\n height: body.style.height,\n width: body.style.width,\n boxSizing: body.style.boxSizing,\n overflowY: body.style.overflowY,\n overflowX: body.style.overflowX,\n scrollBehavior: body.style.scrollBehavior\n };\n const isScrollableY = html.scrollHeight > html.clientHeight;\n const isScrollableX = html.scrollWidth > html.clientWidth;\n const hasConstantOverflowY = htmlStyles.overflowY === 'scroll' || bodyStyles.overflowY === 'scroll';\n const hasConstantOverflowX = htmlStyles.overflowX === 'scroll' || bodyStyles.overflowX === 'scroll';\n\n // Values can be negative in Firefox\n const scrollbarWidth = Math.max(0, win.innerWidth - body.clientWidth);\n const scrollbarHeight = Math.max(0, win.innerHeight - body.clientHeight);\n\n // Avoid shift due to the default <body> margin. This does cause elements to be clipped\n // with whitespace. Warn if <body> has margins?\n const marginY = parseFloat(bodyStyles.marginTop) + parseFloat(bodyStyles.marginBottom);\n const marginX = parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight);\n const elementToLock = getViewportScroller(html, body);\n updateGutterOnly = supportsStableScrollbarGutter(referenceElement);\n\n /*\n * DOM writes:\n * Do not read the DOM past this point!\n */\n\n if (updateGutterOnly) {\n html.style.scrollbarGutter = scrollbarGutterValue;\n elementToLock.style.overflowY = 'hidden';\n elementToLock.style.overflowX = 'hidden';\n return;\n }\n Object.assign(html.style, {\n scrollbarGutter: scrollbarGutterValue,\n overflowY: 'hidden',\n overflowX: 'hidden'\n });\n if (isScrollableY || hasConstantOverflowY) {\n html.style.overflowY = 'scroll';\n }\n if (isScrollableX || hasConstantOverflowX) {\n html.style.overflowX = 'scroll';\n }\n Object.assign(body.style, {\n position: 'relative',\n height: marginY || scrollbarHeight ? `calc(100dvh - ${marginY + scrollbarHeight}px)` : '100dvh',\n width: marginX || scrollbarWidth ? `calc(100vw - ${marginX + scrollbarWidth}px)` : '100vw',\n boxSizing: 'border-box',\n // Assign the longhands that `cleanup` restores, so nothing is left behind.\n overflowY: 'hidden',\n overflowX: 'hidden',\n scrollBehavior: 'unset'\n });\n body.scrollTop = scrollTop;\n body.scrollLeft = scrollLeft;\n html.setAttribute('data-base-ui-scroll-locked', '');\n html.style.scrollBehavior = 'unset';\n }\n function cleanup() {\n Object.assign(html.style, originalHtmlStyles);\n Object.assign(body.style, originalBodyStyles);\n if (!updateGutterOnly) {\n html.scrollTop = scrollTop;\n html.scrollLeft = scrollLeft;\n html.removeAttribute('data-base-ui-scroll-locked');\n html.style.scrollBehavior = originalHtmlScrollBehavior;\n }\n }\n function handleResize() {\n cleanup();\n resizeFrame.request(lockScroll);\n }\n lockScroll();\n const unsubscribeResize = addEventListener(win, 'resize', handleResize);\n return () => {\n resizeFrame.cancel();\n cleanup();\n // Sometimes this cleanup can run after test teardown because it is called\n // in a `setTimeout(fn, 0)`. Guard the returned cleanup to avoid calling\n // `removeEventListener` when it is no longer available in tests.\n if (typeof win.removeEventListener === 'function') {\n unsubscribeResize();\n }\n };\n}\nclass ScrollLocker {\n lockCount = 0;\n restore = null;\n timeoutLock = Timeout.create();\n timeoutUnlock = Timeout.create();\n acquire(referenceElement) {\n this.lockCount += 1;\n if (this.lockCount === 1 && this.restore === null) {\n this.timeoutLock.start(0, () => this.lock(referenceElement));\n }\n return this.release;\n }\n release = () => {\n this.lockCount -= 1;\n if (this.lockCount === 0 && this.restore) {\n this.timeoutUnlock.start(0, this.unlock);\n }\n };\n unlock = () => {\n if (this.lockCount === 0 && this.restore) {\n this.restore?.();\n this.restore = null;\n }\n };\n lock(referenceElement) {\n if (this.lockCount === 0 || this.restore !== null) {\n return;\n }\n const doc = ownerDocument(referenceElement);\n const html = doc.documentElement;\n const body = doc.body;\n const win = ownerWindow(html);\n\n // The page is already locked, either by the site author or by a non-Base UI overlay that\n // hasn't cleaned up yet. Leave it alone and wait for the lock to clear before taking over,\n // otherwise we'd snapshot the locked state and restore it after our own lock is released.\n if (isPageScrollLocked(win, html, body)) {\n const observer = new win.MutationObserver(() => {\n if (isPageScrollLocked(win, html, body)) {\n return;\n }\n observer.disconnect();\n this.restore = null;\n this.lock(referenceElement);\n });\n\n // Watch every attribute: locks are applied through inline styles, classes, or attributes\n // paired with a stylesheet (`data-scroll-locked` in react-remove-scroll, for example).\n const options = {\n attributes: true\n };\n observer.observe(html, options);\n observer.observe(body, options);\n this.restore = () => observer.disconnect();\n return;\n }\n const hasOverlayScrollbars = platform.os.ios || !hasInsetScrollbars(referenceElement);\n\n // On iOS, scroll locking does not work if the navbar is collapsed. Due to numerous\n // side effects and bugs that arise on iOS, it must be researched extensively before\n // being enabled to ensure it doesn't cause the following issues:\n // - Textboxes must scroll into view when focused, nor cause a glitchy scroll animation.\n // - The navbar must not force itself into view and cause layout shift.\n // - Scroll containers must not flicker upon closing a popup when it has an exit animation.\n this.restore = hasOverlayScrollbars ? preventScrollOverlayScrollbars(referenceElement) : preventScrollInsetScrollbars(referenceElement);\n }\n}\nconst SCROLL_LOCKER = new ScrollLocker();\n\n/**\n * Locks the scroll of the document when enabled.\n *\n * @param enabled - Whether to enable the scroll lock.\n * @param referenceElement - Element to use as a reference for lock calculations.\n */\nexport function useScrollLock(enabled = true, referenceElement = null) {\n useIsoLayoutEffect(() => {\n if (!enabled) {\n return undefined;\n }\n return SCROLL_LOCKER.acquire(referenceElement);\n }, [enabled, referenceElement]);\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useScrollLock } from '@base-ui/utils/useScrollLock';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\n\n// Touch-opened popups normally avoid scroll locking so users can still swipe outside to dismiss.\n// This hook re-enables scroll lock only when the popup is effectively full-width.\n// Treat popups with up to 20px of total horizontal gutter as full-width so common ~10px side\n// padding still locks scroll, since that leaves too little outside space for a reliable swipe.\nconst VIEWPORT_WIDTH_TOLERANCE_PX = 20;\n\n/**\n * Manages scroll lock for anchored popups. For non-touch opens, scroll lock is applied when\n * enabled. For touch opens, scroll lock is applied only when the positioner width is effectively\n * viewport-sized.\n */\nexport function useAnchoredPopupScrollLock(enabled, touchOpen, positionerElement, referenceElement) {\n const [touchOpenShouldLockScroll, setTouchOpenShouldLockScroll] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (!enabled || !touchOpen || positionerElement == null) {\n setTouchOpenShouldLockScroll(false);\n return;\n }\n const viewportWidth = ownerDocument(positionerElement).documentElement.clientWidth;\n const popupWidth = positionerElement.offsetWidth;\n setTouchOpenShouldLockScroll(viewportWidth > 0 && popupWidth > 0 && popupWidth >= viewportWidth - VIEWPORT_WIDTH_TOLERANCE_PX);\n }, [enabled, touchOpen, positionerElement]);\n useScrollLock(enabled && (!touchOpen || touchOpenShouldLockScroll), referenceElement);\n}","import { isHTMLElement } from '@floating-ui/utils/dom';\nexport { stopEvent, isIndexOutOfListBounds, isListIndexDisabled, findNonDisabledListIndex, getMaxListIndex, getMinListIndex } from \"../../floating-ui-react/utils.mjs\";\nexport const ARROW_UP = 'ArrowUp';\nexport const ARROW_DOWN = 'ArrowDown';\nexport const ARROW_LEFT = 'ArrowLeft';\nexport const ARROW_RIGHT = 'ArrowRight';\nexport const HOME = 'Home';\nexport const END = 'End';\nexport const PAGE_UP = 'PageUp';\nexport const PAGE_DOWN = 'PageDown';\nexport const COMPOSITE_KEYS = new Set([ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, HOME, END]);\nexport const SHIFT = 'Shift';\nexport const MODIFIER_KEYS = [SHIFT, 'Control', 'Alt', 'Meta'];\nfunction isInputElement(element) {\n return isHTMLElement(element) && element.tagName === 'INPUT';\n}\nexport function isNativeInput(element) {\n if (isInputElement(element) && element.selectionStart != null) {\n return true;\n }\n if (isHTMLElement(element) && element.tagName === 'TEXTAREA') {\n return true;\n }\n return false;\n}\nexport function scrollIntoViewIfNeeded(scrollContainer, element, direction, orientation) {\n if (!scrollContainer || !element || !element.scrollTo) {\n return;\n }\n let targetX = scrollContainer.scrollLeft;\n let targetY = scrollContainer.scrollTop;\n const isOverflowingX = scrollContainer.clientWidth < scrollContainer.scrollWidth;\n const isOverflowingY = scrollContainer.clientHeight < scrollContainer.scrollHeight;\n if (isOverflowingX && orientation !== 'vertical') {\n const elementOffsetLeft = getOffset(scrollContainer, element, 'left');\n const containerStyles = getStyles(scrollContainer);\n const elementStyles = getStyles(element);\n if (direction === 'ltr') {\n if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) {\n // overflow to the right, scroll to align right edges\n targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight;\n } else if (elementOffsetLeft - elementStyles.scrollMarginLeft < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) {\n // overflow to the left, scroll to align left edges\n targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft;\n }\n }\n if (direction === 'rtl') {\n if (elementOffsetLeft - elementStyles.scrollMarginLeft < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) {\n // overflow to the left, scroll to align left edges\n targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft;\n } else if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) {\n // overflow to the right, scroll to align right edges\n targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight;\n }\n }\n }\n if (isOverflowingY && orientation !== 'horizontal') {\n const elementOffsetTop = getOffset(scrollContainer, element, 'top');\n const containerStyles = getStyles(scrollContainer);\n const elementStyles = getStyles(element);\n if (elementOffsetTop - elementStyles.scrollMarginTop < scrollContainer.scrollTop + containerStyles.scrollPaddingTop) {\n // overflow upwards, align top edges\n targetY = elementOffsetTop - elementStyles.scrollMarginTop - containerStyles.scrollPaddingTop;\n } else if (elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom > scrollContainer.scrollTop + scrollContainer.clientHeight - containerStyles.scrollPaddingBottom) {\n // overflow downwards, align bottom edges\n targetY = elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom - scrollContainer.clientHeight + containerStyles.scrollPaddingBottom;\n }\n }\n scrollContainer.scrollTo({\n left: targetX,\n top: targetY,\n behavior: 'auto'\n });\n}\nfunction getOffset(ancestor, element, side) {\n const propName = side === 'left' ? 'offsetLeft' : 'offsetTop';\n let result = 0;\n while (element.offsetParent) {\n result += element[propName];\n if (element.offsetParent === ancestor) {\n break;\n }\n element = element.offsetParent;\n }\n return result;\n}\nfunction getStyles(element) {\n const styles = getComputedStyle(element);\n return {\n scrollMarginTop: parseFloat(styles.scrollMarginTop) || 0,\n scrollMarginRight: parseFloat(styles.scrollMarginRight) || 0,\n scrollMarginBottom: parseFloat(styles.scrollMarginBottom) || 0,\n scrollMarginLeft: parseFloat(styles.scrollMarginLeft) || 0,\n scrollPaddingTop: parseFloat(styles.scrollPaddingTop) || 0,\n scrollPaddingRight: parseFloat(styles.scrollPaddingRight) || 0,\n scrollPaddingBottom: parseFloat(styles.scrollPaddingBottom) || 0,\n scrollPaddingLeft: parseFloat(styles.scrollPaddingLeft) || 0\n };\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ToolbarRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ToolbarRootContext.displayName = \"ToolbarRootContext\";\nexport function useToolbarRootContext(optional) {\n const context = React.useContext(ToolbarRootContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ToolbarRootContext is missing. Toolbar parts must be placed within <Toolbar.Root>.' : _formatErrorMessage(69));\n }\n return context;\n}"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11],"mappings":"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"}