@tempoxyz/id 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1096) hide show
  1. package/README.md +121 -2
  2. package/dist/App.d.ts +121 -0
  3. package/dist/App.d.ts.map +1 -0
  4. package/dist/App.js +132 -0
  5. package/dist/App.js.map +1 -0
  6. package/dist/app/client/.assetsignore +2 -0
  7. package/dist/app/client/_headers +4 -0
  8. package/dist/app/client/assets/Account-BYLpNFf3.css +1 -0
  9. package/dist/app/client/assets/Account-BllJah07.js +1 -0
  10. package/dist/app/client/assets/Amount-E_7snI0-.js +1 -0
  11. package/dist/app/client/assets/Amount-ZdtluGf-.css +1 -0
  12. package/dist/app/client/assets/Approval-CgV5JHlb.css +1 -0
  13. package/dist/app/client/assets/Approval-yKflypU2.js +1 -0
  14. package/dist/app/client/assets/ArrowUp-CRvqfMNU.js +1 -0
  15. package/dist/app/client/assets/Authentication-BAXhOh_4.js +2 -0
  16. package/dist/app/client/assets/BRLA-CZvVDNYr.png +0 -0
  17. package/dist/app/client/assets/BRZ-Cn3jEi9t.svg +1 -0
  18. package/dist/app/client/assets/CHFAU-DCedc4aH.png +0 -0
  19. package/dist/app/client/assets/Callout-B736759d.js +1 -0
  20. package/dist/app/client/assets/Callout-DBfEmP7q.css +1 -0
  21. package/dist/app/client/assets/Check-DVgD8tDG.js +1 -0
  22. package/dist/app/client/assets/ChevronRight-CsXtIZCB.js +1 -0
  23. package/dist/app/client/assets/ChooseAccount-BjxfQjPK.js +1 -0
  24. package/dist/app/client/assets/ChooseAccount-DL3wgJhE.css +1 -0
  25. package/dist/app/client/assets/Client-JrABNovb.js +1 -0
  26. package/dist/app/client/assets/Close-CRvWlhqc.js +1 -0
  27. package/dist/app/client/assets/Cloud-DgJsrqpQ.js +1 -0
  28. package/dist/app/client/assets/CodeInput-79Ctx8ZA.js +1 -0
  29. package/dist/app/client/assets/CodeInput-BqRteSwD.css +1 -0
  30. package/dist/app/client/assets/DLUSD-BnRXm3EI.png +0 -0
  31. package/dist/app/client/assets/Deposit-CclrAoXL.css +1 -0
  32. package/dist/app/client/assets/Deposit-c7uYn2Eb.js +1 -0
  33. package/dist/app/client/assets/DevTools-BYkmtuV5.css +1 -0
  34. package/dist/app/client/assets/DevTools-BgnzDGo2.js +1 -0
  35. package/dist/app/client/assets/DeviceApproval-BBUVv58e.js +1 -0
  36. package/dist/app/client/assets/DeviceApproval-BffFLD8F.css +1 -0
  37. package/dist/app/client/assets/EURAU-sjieTTB9.svg +1 -0
  38. package/dist/app/client/assets/EURC.e-CxYiiwkz.svg +1 -0
  39. package/dist/app/client/assets/Fingerprint-BNCA6qOJ.js +1 -0
  40. package/dist/app/client/assets/GBPA-DI_25xSG.svg +4 -0
  41. package/dist/app/client/assets/GUSD-BDEP2Qb-.svg +1 -0
  42. package/dist/app/client/assets/GeistMono-Variable-BRXCGrxA.woff2 +0 -0
  43. package/dist/app/client/assets/Globe-f0eWzcEI.js +1 -0
  44. package/dist/app/client/assets/Grant-5a-n1gJH.css +1 -0
  45. package/dist/app/client/assets/Grant-Dp7mpcEi.js +1 -0
  46. package/dist/app/client/assets/Hex-C9KeV7_9.css +1 -0
  47. package/dist/app/client/assets/Hex-CSp2U46W.js +10 -0
  48. package/dist/app/client/assets/IconChip-DpZHa1JW.js +1 -0
  49. package/dist/app/client/assets/IconChip-yqaQ2y_d.css +1 -0
  50. package/dist/app/client/assets/InputGroup-BlZvt9In.css +1 -0
  51. package/dist/app/client/assets/InputGroup-CsOeBnpB.js +1 -0
  52. package/dist/app/client/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
  53. package/dist/app/client/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
  54. package/dist/app/client/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
  55. package/dist/app/client/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
  56. package/dist/app/client/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
  57. package/dist/app/client/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
  58. package/dist/app/client/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
  59. package/dist/app/client/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
  60. package/dist/app/client/assets/Loader-Cm9YJNNJ.js +1 -0
  61. package/dist/app/client/assets/MACH-sK0r79kQ.svg +4 -0
  62. package/dist/app/client/assets/OUSD-BFXgVo-Z.svg +5 -0
  63. package/dist/app/client/assets/OUSD.dark-BbbjMvA1.svg +17 -0
  64. package/dist/app/client/assets/OUSD.light-B_zpSz_c.svg +17 -0
  65. package/dist/app/client/assets/PRIME-CiFp2-3e.svg +14 -0
  66. package/dist/app/client/assets/PopoverPopup-DprRXRQe.js +1 -0
  67. package/dist/app/client/assets/Rows-DPGTUdA8.css +1 -0
  68. package/dist/app/client/assets/Rows-Qqo3evtk.js +1 -0
  69. package/dist/app/client/assets/SBC-BTYkbkiD.svg +1 -0
  70. package/dist/app/client/assets/SEKAU-CB5Fc6o8.svg +5 -0
  71. package/dist/app/client/assets/Separator-CZUjVQOL.js +1 -0
  72. package/dist/app/client/assets/SignIn-HdaDzFmq.js +1 -0
  73. package/dist/app/client/assets/SignIn-mlBTwUq4.css +1 -0
  74. package/dist/app/client/assets/Stack-CkkvkOzj.js +1 -0
  75. package/dist/app/client/assets/Stack-D7Yt22Ed.css +1 -0
  76. package/dist/app/client/assets/Tag-BMh6ajrW.css +1 -0
  77. package/dist/app/client/assets/Tag-CLOVANTX.js +1 -0
  78. package/dist/app/client/assets/ToolbarRootContext-Zty_Dh3J.js +1 -0
  79. package/dist/app/client/assets/Tooltip-CLATV6YU.js +1 -0
  80. package/dist/app/client/assets/Tooltip-d3y9ESUJ.css +1 -0
  81. package/dist/app/client/assets/USD1-COVcO_PB.svg +30 -0
  82. package/dist/app/client/assets/USDB-Ckwb6UQw.svg +11 -0
  83. package/dist/app/client/assets/USDC.e-3nMsKAMC.svg +1 -0
  84. package/dist/app/client/assets/USDT0-ia60Dw0e.svg +1 -0
  85. package/dist/app/client/assets/USDY-CB4iet2q.svg +16 -0
  86. package/dist/app/client/assets/USDe-BXHQCd92.svg +1 -0
  87. package/dist/app/client/assets/Upgrade-D0_aO5AP.js +1 -0
  88. package/dist/app/client/assets/WalletUpgrade-BPsPNQsd.js +1 -0
  89. package/dist/app/client/assets/WalletUpgrade-C04kW0Jl.css +1 -0
  90. package/dist/app/client/assets/YLDS-CRh8Zw0g.svg +3 -0
  91. package/dist/app/client/assets/___-I98bns4o.css +1 -0
  92. package/dist/app/client/assets/___.flows-XOlLwMIy.js +5 -0
  93. package/dist/app/client/assets/alphaUSD-CpCFoVuh.svg +1 -0
  94. package/dist/app/client/assets/authorize-C-MlCyaM.js +1 -0
  95. package/dist/app/client/assets/betaUSD-9A8AjgYg.svg +1 -0
  96. package/dist/app/client/assets/cUSD-WsQfa-iC.svg +1 -0
  97. package/dist/app/client/assets/cbBTC-DvUDqrDi.svg +1 -0
  98. package/dist/app/client/assets/choose-account-nXR-SKa2.js +1 -0
  99. package/dist/app/client/assets/deposit-G8tiLPN4.js +1 -0
  100. package/dist/app/client/assets/device-BojBF7hZ.js +1 -0
  101. package/dist/app/client/assets/error-KiOpX7GD.js +1 -0
  102. package/dist/app/client/assets/frxUSD-n9pTpinR.svg +1 -0
  103. package/dist/app/client/assets/getPseudoElementBounds-BsLy4zf_.js +1 -0
  104. package/dist/app/client/assets/goUSD-D9kUvHsF.svg +5 -0
  105. package/dist/app/client/assets/iUSD-CWCJAq9X.svg +1 -0
  106. package/dist/app/client/assets/index-BZH0M7Nf.js +13 -0
  107. package/dist/app/client/assets/index-CIYxHmYA.css +1 -0
  108. package/dist/app/client/assets/login-DUjpk60p.js +1 -0
  109. package/dist/app/client/assets/pathUSD-BvaO6ooS.svg +25 -0
  110. package/dist/app/client/assets/preload-helper-Bs9KvdYl.js +1 -0
  111. package/dist/app/client/assets/rUSD-B-xuFS7T.svg +1 -0
  112. package/dist/app/client/assets/reUSD-CkIUs0Lx.svg +1 -0
  113. package/dist/app/client/assets/removable-DMiA3t_o.js +1 -0
  114. package/dist/app/client/assets/reset-co-CHrff.css +1 -0
  115. package/dist/app/client/assets/rolldown-runtime-WkwZ5CU-.js +1 -0
  116. package/dist/app/client/assets/routes-CK8cthzA.js +1 -0
  117. package/dist/app/client/assets/sUSDe-j9GOnH7I.svg +1 -0
  118. package/dist/app/client/assets/siUSD-C10QUNYS.svg +1 -0
  119. package/dist/app/client/assets/stcUSD-DIntDJeh.svg +1 -0
  120. package/dist/app/client/assets/syrupUSDC-DhYwZqdM.svg +5 -0
  121. package/dist/app/client/assets/thetaUSD-Dgmksf6G.svg +1 -0
  122. package/dist/app/client/assets/useNavigate-CB6S2u4J.js +1 -0
  123. package/dist/app/client/assets/useQuery-BpHfPhTT.js +1 -0
  124. package/dist/app/client/assets/useRegisterFieldControl-DsslqY-V.js +1 -0
  125. package/dist/app/client/assets/wYLDS-CaCKDrO-.svg +10 -0
  126. package/dist/app/client/assets/wsrUSD-B2Ey0bDQ.svg +1 -0
  127. package/dist/app/client/assets/zyzz-DYC-X0_B.css +1 -0
  128. package/dist/app/client/assets/zyzz.config-DX_D_7j3.js +2 -0
  129. package/dist/app/db/auth.d.ts +3412 -0
  130. package/dist/app/db/auth.d.ts.map +1 -0
  131. package/dist/app/db/auth.js +349 -0
  132. package/dist/app/db/auth.js.map +1 -0
  133. package/dist/app/db/schema.d.ts +1091 -0
  134. package/dist/app/db/schema.d.ts.map +1 -0
  135. package/dist/app/db/schema.js +183 -0
  136. package/dist/app/db/schema.js.map +1 -0
  137. package/dist/app/db/table.d.ts +8 -0
  138. package/dist/app/db/table.d.ts.map +1 -0
  139. package/dist/app/db/table.js +28 -0
  140. package/dist/app/db/table.js.map +1 -0
  141. package/dist/app/server/.vite/manifest.json +2093 -0
  142. package/dist/app/server/assets/Account-BYLpNFf3.css +1 -0
  143. package/dist/app/server/assets/Account-G_SUeRU3.js +2 -0
  144. package/dist/app/server/assets/Account-G_SUeRU3.js.map +1 -0
  145. package/dist/app/server/assets/Amount-Cgwdr3Xt.js +2 -0
  146. package/dist/app/server/assets/Amount-Cgwdr3Xt.js.map +1 -0
  147. package/dist/app/server/assets/Amount-ZdtluGf-.css +1 -0
  148. package/dist/app/server/assets/Approval-CgV5JHlb.css +1 -0
  149. package/dist/app/server/assets/Approval-DvkB9tWA.js +2 -0
  150. package/dist/app/server/assets/Approval-DvkB9tWA.js.map +1 -0
  151. package/dist/app/server/assets/ArrowUp-DpK_zNgZ.js +2 -0
  152. package/dist/app/server/assets/ArrowUp-DpK_zNgZ.js.map +1 -0
  153. package/dist/app/server/assets/Authentication-BOkhlNQu.js +2 -0
  154. package/dist/app/server/assets/Authentication-BOkhlNQu.js.map +1 -0
  155. package/dist/app/server/assets/Authentication-C3oNZAVX.js +2 -0
  156. package/dist/app/server/assets/Authentication-C3oNZAVX.js.map +1 -0
  157. package/dist/app/server/assets/BRLA-CZvVDNYr.png +0 -0
  158. package/dist/app/server/assets/BRZ-Cn3jEi9t.svg +1 -0
  159. package/dist/app/server/assets/Bytes-C7CRVS3J.js +4 -0
  160. package/dist/app/server/assets/Bytes-C7CRVS3J.js.map +1 -0
  161. package/dist/app/server/assets/CHFAU-DCedc4aH.png +0 -0
  162. package/dist/app/server/assets/Callout-DBfEmP7q.css +1 -0
  163. package/dist/app/server/assets/Callout-tQoAitWq.js +2 -0
  164. package/dist/app/server/assets/Callout-tQoAitWq.js.map +1 -0
  165. package/dist/app/server/assets/ChainList-C4A_7e-9.js +6 -0
  166. package/dist/app/server/assets/ChainList-C4A_7e-9.js.map +1 -0
  167. package/dist/app/server/assets/ChainName-BMnJyJrd.js +2 -0
  168. package/dist/app/server/assets/ChainName-BMnJyJrd.js.map +1 -0
  169. package/dist/app/server/assets/Check-DU_oR3Ev.js +2 -0
  170. package/dist/app/server/assets/Check-DU_oR3Ev.js.map +1 -0
  171. package/dist/app/server/assets/ChevronRight-DTBnw-W6.js +2 -0
  172. package/dist/app/server/assets/ChevronRight-DTBnw-W6.js.map +1 -0
  173. package/dist/app/server/assets/ChooseAccount-BizJvMrY.js +2 -0
  174. package/dist/app/server/assets/ChooseAccount-BizJvMrY.js.map +1 -0
  175. package/dist/app/server/assets/ChooseAccount-DL3wgJhE.css +1 -0
  176. package/dist/app/server/assets/Client-Dx3KrpJZ.js +2 -0
  177. package/dist/app/server/assets/Client-Dx3KrpJZ.js.map +1 -0
  178. package/dist/app/server/assets/ClientOnly-CKLiu67O.js +2 -0
  179. package/dist/app/server/assets/ClientOnly-CKLiu67O.js.map +1 -0
  180. package/dist/app/server/assets/Close-DUeE37ev.js +2 -0
  181. package/dist/app/server/assets/Close-DUeE37ev.js.map +1 -0
  182. package/dist/app/server/assets/Cloud-CLB3rTTy.js +2 -0
  183. package/dist/app/server/assets/Cloud-CLB3rTTy.js.map +1 -0
  184. package/dist/app/server/assets/CodeInput-BqRteSwD.css +1 -0
  185. package/dist/app/server/assets/CodeInput-FsPzVuLU.js +2 -0
  186. package/dist/app/server/assets/CodeInput-FsPzVuLU.js.map +1 -0
  187. package/dist/app/server/assets/Credential-DFjcrdyI.js +2 -0
  188. package/dist/app/server/assets/Credential-DFjcrdyI.js.map +1 -0
  189. package/dist/app/server/assets/DLUSD-BnRXm3EI.png +0 -0
  190. package/dist/app/server/assets/Deposit-CclrAoXL.css +1 -0
  191. package/dist/app/server/assets/Deposit-ChYGRfW2.js +2 -0
  192. package/dist/app/server/assets/Deposit-ChYGRfW2.js.map +1 -0
  193. package/dist/app/server/assets/DevTools-BYkmtuV5.css +1 -0
  194. package/dist/app/server/assets/DevTools-ZJVXqrIK.js +2 -0
  195. package/dist/app/server/assets/DevTools-ZJVXqrIK.js.map +1 -0
  196. package/dist/app/server/assets/DeviceApproval-BffFLD8F.css +1 -0
  197. package/dist/app/server/assets/DeviceApproval-Bqe3Mi78.js +2 -0
  198. package/dist/app/server/assets/DeviceApproval-Bqe3Mi78.js.map +1 -0
  199. package/dist/app/server/assets/EURAU-sjieTTB9.svg +1 -0
  200. package/dist/app/server/assets/EURC.e-CxYiiwkz.svg +1 -0
  201. package/dist/app/server/assets/ExecutionError-CDszGSF1.js +9 -0
  202. package/dist/app/server/assets/ExecutionError-CDszGSF1.js.map +1 -0
  203. package/dist/app/server/assets/Fingerprint-DhOPOdRr.js +2 -0
  204. package/dist/app/server/assets/Fingerprint-DhOPOdRr.js.map +1 -0
  205. package/dist/app/server/assets/GBPA-DI_25xSG.svg +4 -0
  206. package/dist/app/server/assets/GUSD-BDEP2Qb-.svg +1 -0
  207. package/dist/app/server/assets/GeistMono-Variable-BRXCGrxA.woff2 +0 -0
  208. package/dist/app/server/assets/Globe-2CxqxU-7.js +2 -0
  209. package/dist/app/server/assets/Globe-2CxqxU-7.js.map +1 -0
  210. package/dist/app/server/assets/Grant-5a-n1gJH.css +1 -0
  211. package/dist/app/server/assets/Grant-D_tun0mF.js +2 -0
  212. package/dist/app/server/assets/Grant-D_tun0mF.js.map +1 -0
  213. package/dist/app/server/assets/Hex-C9KeV7_9.css +1 -0
  214. package/dist/app/server/assets/Hex-Z6m_0Y0m.js +11 -0
  215. package/dist/app/server/assets/Hex-Z6m_0Y0m.js.map +1 -0
  216. package/dist/app/server/assets/IconChip-C9ZrmGB5.js +2 -0
  217. package/dist/app/server/assets/IconChip-C9ZrmGB5.js.map +1 -0
  218. package/dist/app/server/assets/IconChip-yqaQ2y_d.css +1 -0
  219. package/dist/app/server/assets/InputGroup-BlZvt9In.css +1 -0
  220. package/dist/app/server/assets/InputGroup-hpjuLuR7.js +2 -0
  221. package/dist/app/server/assets/InputGroup-hpjuLuR7.js.map +1 -0
  222. package/dist/app/server/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
  223. package/dist/app/server/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
  224. package/dist/app/server/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
  225. package/dist/app/server/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
  226. package/dist/app/server/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
  227. package/dist/app/server/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
  228. package/dist/app/server/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
  229. package/dist/app/server/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
  230. package/dist/app/server/assets/Loader-DnKC9P5p.js +2 -0
  231. package/dist/app/server/assets/Loader-DnKC9P5p.js.map +1 -0
  232. package/dist/app/server/assets/MACH-sK0r79kQ.svg +4 -0
  233. package/dist/app/server/assets/Match-CyVdYcSf.js +2 -0
  234. package/dist/app/server/assets/Match-CyVdYcSf.js.map +1 -0
  235. package/dist/app/server/assets/OUSD-BFXgVo-Z.svg +5 -0
  236. package/dist/app/server/assets/OUSD.dark-BbbjMvA1.svg +17 -0
  237. package/dist/app/server/assets/OUSD.light-B_zpSz_c.svg +17 -0
  238. package/dist/app/server/assets/PRIME-CiFp2-3e.svg +14 -0
  239. package/dist/app/server/assets/PopoverPopup-CwqeQelI.js +2 -0
  240. package/dist/app/server/assets/PopoverPopup-CwqeQelI.js.map +1 -0
  241. package/dist/app/server/assets/Rows-CQKQwTI1.js +2 -0
  242. package/dist/app/server/assets/Rows-CQKQwTI1.js.map +1 -0
  243. package/dist/app/server/assets/Rows-DPGTUdA8.css +1 -0
  244. package/dist/app/server/assets/SBC-BTYkbkiD.svg +1 -0
  245. package/dist/app/server/assets/SEKAU-CB5Fc6o8.svg +5 -0
  246. package/dist/app/server/assets/Separator-DrI7KRAs.js +2 -0
  247. package/dist/app/server/assets/Separator-DrI7KRAs.js.map +1 -0
  248. package/dist/app/server/assets/SignIn-DfeeLEmN.js +2 -0
  249. package/dist/app/server/assets/SignIn-DfeeLEmN.js.map +1 -0
  250. package/dist/app/server/assets/SignIn-mlBTwUq4.css +1 -0
  251. package/dist/app/server/assets/Stack-D7Yt22Ed.css +1 -0
  252. package/dist/app/server/assets/Stack-DGktaLZc.js +2 -0
  253. package/dist/app/server/assets/Stack-DGktaLZc.js.map +1 -0
  254. package/dist/app/server/assets/Tag-9vSRBpph.js +2 -0
  255. package/dist/app/server/assets/Tag-9vSRBpph.js.map +1 -0
  256. package/dist/app/server/assets/Tag-BMh6ajrW.css +1 -0
  257. package/dist/app/server/assets/ToolbarRootContext-BH_CFSWd.js +2 -0
  258. package/dist/app/server/assets/ToolbarRootContext-BH_CFSWd.js.map +1 -0
  259. package/dist/app/server/assets/Tooltip-DLX41peb.js +2 -0
  260. package/dist/app/server/assets/Tooltip-DLX41peb.js.map +1 -0
  261. package/dist/app/server/assets/Tooltip-d3y9ESUJ.css +1 -0
  262. package/dist/app/server/assets/USD1-COVcO_PB.svg +30 -0
  263. package/dist/app/server/assets/USDB-Ckwb6UQw.svg +11 -0
  264. package/dist/app/server/assets/USDC.e-3nMsKAMC.svg +1 -0
  265. package/dist/app/server/assets/USDT0-ia60Dw0e.svg +1 -0
  266. package/dist/app/server/assets/USDY-CB4iet2q.svg +16 -0
  267. package/dist/app/server/assets/USDe-BXHQCd92.svg +1 -0
  268. package/dist/app/server/assets/Upgrade-Dbfm2nm0.js +2 -0
  269. package/dist/app/server/assets/Upgrade-Dbfm2nm0.js.map +1 -0
  270. package/dist/app/server/assets/WalletUpgrade-C04kW0Jl.css +1 -0
  271. package/dist/app/server/assets/WalletUpgrade-CWKc5fYt.js +2 -0
  272. package/dist/app/server/assets/WalletUpgrade-CWKc5fYt.js.map +1 -0
  273. package/dist/app/server/assets/YLDS-CRh8Zw0g.svg +3 -0
  274. package/dist/app/server/assets/___-I98bns4o.css +1 -0
  275. package/dist/app/server/assets/___.flows-Cc-awUoC.js +6 -0
  276. package/dist/app/server/assets/___.flows-Cc-awUoC.js.map +1 -0
  277. package/dist/app/server/assets/_tanstack-start-manifest_v-U7TrtUSA.js +1 -0
  278. package/dist/app/server/assets/_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows-B1pPOqsM.css +1 -0
  279. package/dist/app/server/assets/_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-CKALi9oD.js +2 -0
  280. package/dist/app/server/assets/_zyzz__2Fhome_2Frunner_2Fwork_2Fid_2Fid_2Fsrc_2Fapp_2Froutes_2F_5B__5D.flows.tsx-CKALi9oD.js.map +1 -0
  281. package/dist/app/server/assets/_zyzz_shared-BbDIEd_j.css +1 -0
  282. package/dist/app/server/assets/alphaUSD-CpCFoVuh.svg +1 -0
  283. package/dist/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js +2 -0
  284. package/dist/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js.map +1 -0
  285. package/dist/app/server/assets/async-local-storage-DlOvwxXd.js +2 -0
  286. package/dist/app/server/assets/async-local-storage-DlOvwxXd.js.map +1 -0
  287. package/dist/app/server/assets/authorize-BXzTo2Pb.js +2 -0
  288. package/dist/app/server/assets/authorize-BXzTo2Pb.js.map +1 -0
  289. package/dist/app/server/assets/authorize-BzoUqOdA.js +2 -0
  290. package/dist/app/server/assets/authorize-BzoUqOdA.js.map +1 -0
  291. package/dist/app/server/assets/authorize-DXYo-K2n-rmQQ42x1.js +56 -0
  292. package/dist/app/server/assets/authorize-DXYo-K2n-rmQQ42x1.js.map +1 -0
  293. package/dist/app/server/assets/authorize-DfjPYJqS.css +1 -0
  294. package/dist/app/server/assets/betaUSD-9A8AjgYg.svg +1 -0
  295. package/dist/app/server/assets/bun-sqlite-dialect-DoOVo4ja-CtyBkVMb.js +2 -0
  296. package/dist/app/server/assets/bun-sqlite-dialect-DoOVo4ja-CtyBkVMb.js.map +1 -0
  297. package/dist/app/server/assets/cUSD-WsQfa-iC.svg +1 -0
  298. package/dist/app/server/assets/call-dzi0xjZd.js +31 -0
  299. package/dist/app/server/assets/call-dzi0xjZd.js.map +1 -0
  300. package/dist/app/server/assets/cbBTC-DvUDqrDi.svg +1 -0
  301. package/dist/app/server/assets/ccip-DjD8z_3B.js +2 -0
  302. package/dist/app/server/assets/ccip-DjD8z_3B.js.map +1 -0
  303. package/dist/app/server/assets/choose-account-_X7xq5am.js +2 -0
  304. package/dist/app/server/assets/choose-account-_X7xq5am.js.map +1 -0
  305. package/dist/app/server/assets/choose-account-lqA5SLx9.css +1 -0
  306. package/dist/app/server/assets/choose-account-zm-5Qs3e.js +2 -0
  307. package/dist/app/server/assets/choose-account-zm-5Qs3e.js.map +1 -0
  308. package/dist/app/server/assets/compiled-query-Ds2NVcFT.js +2 -0
  309. package/dist/app/server/assets/compiled-query-Ds2NVcFT.js.map +1 -0
  310. package/dist/app/server/assets/convert-BIC8n32x.js +2 -0
  311. package/dist/app/server/assets/convert-BIC8n32x.js.map +1 -0
  312. package/dist/app/server/assets/cookie-DxViaO10.js +2 -0
  313. package/dist/app/server/assets/cookie-DxViaO10.js.map +1 -0
  314. package/dist/app/server/assets/core-BBrZXfrB.js +56 -0
  315. package/dist/app/server/assets/core-BBrZXfrB.js.map +1 -0
  316. package/dist/app/server/assets/d1-sqlite-dialect-m0f01-4z-Cv-csE1u.js +2 -0
  317. package/dist/app/server/assets/d1-sqlite-dialect-m0f01-4z-Cv-csE1u.js.map +1 -0
  318. package/dist/app/server/assets/decodeFunctionData-bP6V2ai4.js +2 -0
  319. package/dist/app/server/assets/decodeFunctionData-bP6V2ai4.js.map +1 -0
  320. package/dist/app/server/assets/default-u_dwuiYb-DOrMMcg9.js +2 -0
  321. package/dist/app/server/assets/default-u_dwuiYb-DOrMMcg9.js.map +1 -0
  322. package/dist/app/server/assets/deposit-BBaNI01u.js +2 -0
  323. package/dist/app/server/assets/deposit-BBaNI01u.js.map +1 -0
  324. package/dist/app/server/assets/deposit-LWS6ZTuf.js +2 -0
  325. package/dist/app/server/assets/deposit-LWS6ZTuf.js.map +1 -0
  326. package/dist/app/server/assets/deposit-oFx15XCA.css +1 -0
  327. package/dist/app/server/assets/device-CrXlusjr.js +2 -0
  328. package/dist/app/server/assets/device-CrXlusjr.js.map +1 -0
  329. package/dist/app/server/assets/device-DdFMgYe2.js +2 -0
  330. package/dist/app/server/assets/device-DdFMgYe2.js.map +1 -0
  331. package/dist/app/server/assets/device-tMCpu5zk.css +1 -0
  332. package/dist/app/server/assets/dist-CR6FW-yS.js +1 -0
  333. package/dist/app/server/assets/dist-CoH0hD1s.js +15 -0
  334. package/dist/app/server/assets/dist-CoH0hD1s.js.map +1 -0
  335. package/dist/app/server/assets/dist-DcICI3fd.js +2 -0
  336. package/dist/app/server/assets/dist-DcICI3fd.js.map +1 -0
  337. package/dist/app/server/assets/effect-QlVUlMFu-mXPkuQTb.js +2 -0
  338. package/dist/app/server/assets/effect-QlVUlMFu-mXPkuQTb.js.map +1 -0
  339. package/dist/app/server/assets/empty-plugin-adapters-BaGcmrjC.js +2 -0
  340. package/dist/app/server/assets/empty-plugin-adapters-BaGcmrjC.js.map +1 -0
  341. package/dist/app/server/assets/error-CXy8gqdE.css +1 -0
  342. package/dist/app/server/assets/error-DXDT2AHy.js +2 -0
  343. package/dist/app/server/assets/error-DXDT2AHy.js.map +1 -0
  344. package/dist/app/server/assets/error-bnVzy9tx.js +2 -0
  345. package/dist/app/server/assets/error-bnVzy9tx.js.map +1 -0
  346. package/dist/app/server/assets/esm-C6SW--yt.js +4 -0
  347. package/dist/app/server/assets/esm-C6SW--yt.js.map +1 -0
  348. package/dist/app/server/assets/factory-dvoOlKer.js +5 -0
  349. package/dist/app/server/assets/factory-dvoOlKer.js.map +1 -0
  350. package/dist/app/server/assets/frxUSD-n9pTpinR.svg +1 -0
  351. package/dist/app/server/assets/get-id-field-OwLpfjj2.js +6 -0
  352. package/dist/app/server/assets/get-id-field-OwLpfjj2.js.map +1 -0
  353. package/dist/app/server/assets/getPseudoElementBounds-PkWU72kn.js +2 -0
  354. package/dist/app/server/assets/getPseudoElementBounds-PkWU72kn.js.map +1 -0
  355. package/dist/app/server/assets/goUSD-D9kUvHsF.svg +5 -0
  356. package/dist/app/server/assets/iUSD-CWCJAq9X.svg +1 -0
  357. package/dist/app/server/assets/index-CLddUTqr-CC33CMvS.js +2 -0
  358. package/dist/app/server/assets/index-CLddUTqr-CC33CMvS.js.map +1 -0
  359. package/dist/app/server/assets/index-DZEfthgZ-Ec2MMQ_e.js +2 -0
  360. package/dist/app/server/assets/index-DZEfthgZ-Ec2MMQ_e.js.map +1 -0
  361. package/dist/app/server/assets/kysely-adapter-B8tQwTcu.js +1 -0
  362. package/dist/app/server/assets/lazyRouteComponent-DPOOPZw_.js +2 -0
  363. package/dist/app/server/assets/lazyRouteComponent-DPOOPZw_.js.map +1 -0
  364. package/dist/app/server/assets/load-server-Dr0IlySo.js +3 -0
  365. package/dist/app/server/assets/load-server-Dr0IlySo.js.map +1 -0
  366. package/dist/app/server/assets/login-BLq3tEEr.js +2 -0
  367. package/dist/app/server/assets/login-BLq3tEEr.js.map +1 -0
  368. package/dist/app/server/assets/login-DCIrAbED.js +2 -0
  369. package/dist/app/server/assets/login-DCIrAbED.js.map +1 -0
  370. package/dist/app/server/assets/login-msDnt3yT.css +1 -0
  371. package/dist/app/server/assets/matchContext-ByrIUj4L.js +2 -0
  372. package/dist/app/server/assets/matchContext-ByrIUj4L.js.map +1 -0
  373. package/dist/app/server/assets/node-sqlite-dialect-BowWLXvK.js +2 -0
  374. package/dist/app/server/assets/node-sqlite-dialect-BowWLXvK.js.map +1 -0
  375. package/dist/app/server/assets/pathUSD-BvaO6ooS.svg +25 -0
  376. package/dist/app/server/assets/rUSD-B-xuFS7T.svg +1 -0
  377. package/dist/app/server/assets/reUSD-CkIUs0Lx.svg +1 -0
  378. package/dist/app/server/assets/react-dom-DYzj0HXX.js +2 -0
  379. package/dist/app/server/assets/react-dom-DYzj0HXX.js.map +1 -0
  380. package/dist/app/server/assets/removable-BCLTvPOx.js +2 -0
  381. package/dist/app/server/assets/removable-BCLTvPOx.js.map +1 -0
  382. package/dist/app/server/assets/reset-DZWeTZeQ.js +2 -0
  383. package/dist/app/server/assets/reset-DZWeTZeQ.js.map +1 -0
  384. package/dist/app/server/assets/reset-co-CHrff.css +1 -0
  385. package/dist/app/server/assets/resolveError-CZXXvCJR.js +2 -0
  386. package/dist/app/server/assets/resolveError-CZXXvCJR.js.map +1 -0
  387. package/dist/app/server/assets/rolldown-runtime-BWaJ3C7D.js +1 -0
  388. package/dist/app/server/assets/router-Bqz5X4Qw.js +2 -0
  389. package/dist/app/server/assets/router-Bqz5X4Qw.js.map +1 -0
  390. package/dist/app/server/assets/router-CclzitkY.css +1 -0
  391. package/dist/app/server/assets/routes-BLQdKqcZ.js +2 -0
  392. package/dist/app/server/assets/routes-BLQdKqcZ.js.map +1 -0
  393. package/dist/app/server/assets/routes-BgiIzrOt.css +1 -0
  394. package/dist/app/server/assets/routes-Bv6WzsSR.js +2 -0
  395. package/dist/app/server/assets/routes-Bv6WzsSR.js.map +1 -0
  396. package/dist/app/server/assets/sUSDe-j9GOnH7I.svg +1 -0
  397. package/dist/app/server/assets/schema-check-oLqvHR8y.js +9 -0
  398. package/dist/app/server/assets/schema-check-oLqvHR8y.js.map +1 -0
  399. package/dist/app/server/assets/secp256k1-yg8eeIYU.js +2 -0
  400. package/dist/app/server/assets/secp256k1-yg8eeIYU.js.map +1 -0
  401. package/dist/app/server/assets/server-RRUiOef2.js +76 -0
  402. package/dist/app/server/assets/server-RRUiOef2.js.map +1 -0
  403. package/dist/app/server/assets/siUSD-C10QUNYS.svg +1 -0
  404. package/dist/app/server/assets/sqlite-adapter-C_LAV4e3.js +2 -0
  405. package/dist/app/server/assets/sqlite-adapter-C_LAV4e3.js.map +1 -0
  406. package/dist/app/server/assets/sqlite-introspector-DSCAP82F-Crx7Ny14.js +6 -0
  407. package/dist/app/server/assets/sqlite-introspector-DSCAP82F-Crx7Ny14.js.map +1 -0
  408. package/dist/app/server/assets/standard-json-DY77efq0.js +2 -0
  409. package/dist/app/server/assets/standard-json-DY77efq0.js.map +1 -0
  410. package/dist/app/server/assets/standard-json-ig2t0wRt.js +2 -0
  411. package/dist/app/server/assets/standard-json-ig2t0wRt.js.map +1 -0
  412. package/dist/app/server/assets/standard-json-t-LNckA6.js +2 -0
  413. package/dist/app/server/assets/standard-json-t-LNckA6.js.map +1 -0
  414. package/dist/app/server/assets/standard-openapi-CONmVRl8.js +2 -0
  415. package/dist/app/server/assets/standard-openapi-CONmVRl8.js.map +1 -0
  416. package/dist/app/server/assets/start-C63VetBp.js +2 -0
  417. package/dist/app/server/assets/start-C63VetBp.js.map +1 -0
  418. package/dist/app/server/assets/stcUSD-DIntDJeh.svg +1 -0
  419. package/dist/app/server/assets/sury-CWZTCd75-CDaOS2oM.js +2 -0
  420. package/dist/app/server/assets/sury-CWZTCd75-CDaOS2oM.js.map +1 -0
  421. package/dist/app/server/assets/syrupUSDC-DhYwZqdM.svg +5 -0
  422. package/dist/app/server/assets/thetaUSD-Dgmksf6G.svg +1 -0
  423. package/dist/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js +2 -0
  424. package/dist/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js.map +1 -0
  425. package/dist/app/server/assets/useNavigate-D6d1w7KE.js +2 -0
  426. package/dist/app/server/assets/useNavigate-D6d1w7KE.js.map +1 -0
  427. package/dist/app/server/assets/useQuery-BRpCr5vj.js +2 -0
  428. package/dist/app/server/assets/useQuery-BRpCr5vj.js.map +1 -0
  429. package/dist/app/server/assets/useRegisterFieldControl-cJesrOWK.js +2 -0
  430. package/dist/app/server/assets/useRegisterFieldControl-cJesrOWK.js.map +1 -0
  431. package/dist/app/server/assets/utils-C4ZXZIZW.js +2 -0
  432. package/dist/app/server/assets/utils-C4ZXZIZW.js.map +1 -0
  433. package/dist/app/server/assets/utils-D57zfcg-.js +2 -0
  434. package/dist/app/server/assets/utils-D57zfcg-.js.map +1 -0
  435. package/dist/app/server/assets/valibot--1zFm7rT-CIKoH3MS.js +2 -0
  436. package/dist/app/server/assets/valibot--1zFm7rT-CIKoH3MS.js.map +1 -0
  437. package/dist/app/server/assets/valibot-D_HTw1Gn-BdPyLkXt.js +2 -0
  438. package/dist/app/server/assets/valibot-D_HTw1Gn-BdPyLkXt.js.map +1 -0
  439. package/dist/app/server/assets/wYLDS-CaCKDrO-.svg +10 -0
  440. package/dist/app/server/assets/wsrUSD-B2Ey0bDQ.svg +1 -0
  441. package/dist/app/server/assets/zod-Bwrt9trS-BezI5Gi1.js +2 -0
  442. package/dist/app/server/assets/zod-Bwrt9trS-BezI5Gi1.js.map +1 -0
  443. package/dist/app/server/assets/zod-DSgpEGAE-DZ7M_Q33.js +2 -0
  444. package/dist/app/server/assets/zod-DSgpEGAE-DZ7M_Q33.js.map +1 -0
  445. package/dist/app/server/assets/zyzz-6R2K52xP.css +1 -0
  446. package/dist/app/server/assets/zyzz.config-CJRpjn0E.js +3 -0
  447. package/dist/app/server/assets/zyzz.config-CJRpjn0E.js.map +1 -0
  448. package/dist/app/server/index.js +532 -0
  449. package/dist/app/server/index.js.map +1 -0
  450. package/dist/app/server/wrangler.json +1 -0
  451. package/dist/cli/Admin.d.ts +34 -0
  452. package/dist/cli/Admin.d.ts.map +1 -0
  453. package/dist/cli/Admin.js +61 -0
  454. package/dist/cli/Admin.js.map +1 -0
  455. package/dist/cli/Apps.d.ts +9 -0
  456. package/dist/cli/Apps.d.ts.map +1 -0
  457. package/dist/cli/Apps.js +34 -0
  458. package/dist/cli/Apps.js.map +1 -0
  459. package/dist/cli/Cli.d.ts +13 -0
  460. package/dist/cli/Cli.d.ts.map +1 -0
  461. package/dist/cli/Cli.js +26 -0
  462. package/dist/cli/Cli.js.map +1 -0
  463. package/dist/cli/Project.d.ts +17 -0
  464. package/dist/cli/Project.d.ts.map +1 -0
  465. package/dist/cli/Project.js +90 -0
  466. package/dist/cli/Project.js.map +1 -0
  467. package/dist/cli/Realms.d.ts +24 -0
  468. package/dist/cli/Realms.d.ts.map +1 -0
  469. package/dist/cli/Realms.js +48 -0
  470. package/dist/cli/Realms.js.map +1 -0
  471. package/dist/cli/Session.d.ts +79 -0
  472. package/dist/cli/Session.d.ts.map +1 -0
  473. package/dist/cli/Session.js +229 -0
  474. package/dist/cli/Session.js.map +1 -0
  475. package/dist/cli/User.d.ts +24 -0
  476. package/dist/cli/User.d.ts.map +1 -0
  477. package/dist/cli/User.js +34 -0
  478. package/dist/cli/User.js.map +1 -0
  479. package/dist/cli/V1.d.ts +32 -0
  480. package/dist/cli/V1.d.ts.map +1 -0
  481. package/dist/cli/V1.js +38 -0
  482. package/dist/cli/V1.js.map +1 -0
  483. package/dist/cli/bin.d.ts +3 -0
  484. package/dist/cli/bin.d.ts.map +1 -0
  485. package/dist/cli/bin.js +46 -0
  486. package/dist/cli/bin.js.map +1 -0
  487. package/dist/cli/commands/admin/apps/create.d.ts +23 -0
  488. package/dist/cli/commands/admin/apps/create.d.ts.map +1 -0
  489. package/dist/cli/commands/admin/apps/create.js +84 -0
  490. package/dist/cli/commands/admin/apps/create.js.map +1 -0
  491. package/dist/cli/commands/admin/apps/delete.d.ts +15 -0
  492. package/dist/cli/commands/admin/apps/delete.d.ts.map +1 -0
  493. package/dist/cli/commands/admin/apps/delete.js +41 -0
  494. package/dist/cli/commands/admin/apps/delete.js.map +1 -0
  495. package/dist/cli/commands/admin/apps/index.d.ts +5 -0
  496. package/dist/cli/commands/admin/apps/index.d.ts.map +1 -0
  497. package/dist/cli/commands/admin/apps/index.js +14 -0
  498. package/dist/cli/commands/admin/apps/index.js.map +1 -0
  499. package/dist/cli/commands/admin/apps/list.d.ts +10 -0
  500. package/dist/cli/commands/admin/apps/list.d.ts.map +1 -0
  501. package/dist/cli/commands/admin/apps/list.js +26 -0
  502. package/dist/cli/commands/admin/apps/list.js.map +1 -0
  503. package/dist/cli/commands/admin/apps/rotate-secret.d.ts +17 -0
  504. package/dist/cli/commands/admin/apps/rotate-secret.d.ts.map +1 -0
  505. package/dist/cli/commands/admin/apps/rotate-secret.js +47 -0
  506. package/dist/cli/commands/admin/apps/rotate-secret.js.map +1 -0
  507. package/dist/cli/commands/admin/apps/update.d.ts +20 -0
  508. package/dist/cli/commands/admin/apps/update.d.ts.map +1 -0
  509. package/dist/cli/commands/admin/apps/update.js +71 -0
  510. package/dist/cli/commands/admin/apps/update.js.map +1 -0
  511. package/dist/cli/commands/admin/index.d.ts +5 -0
  512. package/dist/cli/commands/admin/index.d.ts.map +1 -0
  513. package/dist/cli/commands/admin/index.js +13 -0
  514. package/dist/cli/commands/admin/index.js.map +1 -0
  515. package/dist/cli/commands/admin/migrate.d.ts +10 -0
  516. package/dist/cli/commands/admin/migrate.d.ts.map +1 -0
  517. package/dist/cli/commands/admin/migrate.js +20 -0
  518. package/dist/cli/commands/admin/migrate.js.map +1 -0
  519. package/dist/cli/commands/admin/realms/add.d.ts +13 -0
  520. package/dist/cli/commands/admin/realms/add.d.ts.map +1 -0
  521. package/dist/cli/commands/admin/realms/add.js +42 -0
  522. package/dist/cli/commands/admin/realms/add.js.map +1 -0
  523. package/dist/cli/commands/admin/realms/index.d.ts +5 -0
  524. package/dist/cli/commands/admin/realms/index.d.ts.map +1 -0
  525. package/dist/cli/commands/admin/realms/index.js +13 -0
  526. package/dist/cli/commands/admin/realms/index.js.map +1 -0
  527. package/dist/cli/commands/admin/realms/list.d.ts +14 -0
  528. package/dist/cli/commands/admin/realms/list.d.ts.map +1 -0
  529. package/dist/cli/commands/admin/realms/list.js +36 -0
  530. package/dist/cli/commands/admin/realms/list.js.map +1 -0
  531. package/dist/cli/commands/admin/realms/passkeys/index.d.ts +5 -0
  532. package/dist/cli/commands/admin/realms/passkeys/index.d.ts.map +1 -0
  533. package/dist/cli/commands/admin/realms/passkeys/index.js +13 -0
  534. package/dist/cli/commands/admin/realms/passkeys/index.js.map +1 -0
  535. package/dist/cli/commands/admin/realms/passkeys/set.d.ts +17 -0
  536. package/dist/cli/commands/admin/realms/passkeys/set.d.ts.map +1 -0
  537. package/dist/cli/commands/admin/realms/passkeys/set.js +46 -0
  538. package/dist/cli/commands/admin/realms/passkeys/set.js.map +1 -0
  539. package/dist/cli/commands/admin/realms/privy/index.d.ts +5 -0
  540. package/dist/cli/commands/admin/realms/privy/index.d.ts.map +1 -0
  541. package/dist/cli/commands/admin/realms/privy/index.js +13 -0
  542. package/dist/cli/commands/admin/realms/privy/index.js.map +1 -0
  543. package/dist/cli/commands/admin/realms/privy/set.d.ts +19 -0
  544. package/dist/cli/commands/admin/realms/privy/set.d.ts.map +1 -0
  545. package/dist/cli/commands/admin/realms/privy/set.js +66 -0
  546. package/dist/cli/commands/admin/realms/privy/set.js.map +1 -0
  547. package/dist/cli/commands/admin/realms/remove.d.ts +12 -0
  548. package/dist/cli/commands/admin/realms/remove.d.ts.map +1 -0
  549. package/dist/cli/commands/admin/realms/remove.js +35 -0
  550. package/dist/cli/commands/admin/realms/remove.js.map +1 -0
  551. package/dist/cli/commands/admin/realms/secp256k1/disable.d.ts +16 -0
  552. package/dist/cli/commands/admin/realms/secp256k1/disable.d.ts.map +1 -0
  553. package/dist/cli/commands/admin/realms/secp256k1/disable.js +42 -0
  554. package/dist/cli/commands/admin/realms/secp256k1/disable.js.map +1 -0
  555. package/dist/cli/commands/admin/realms/secp256k1/enable.d.ts +16 -0
  556. package/dist/cli/commands/admin/realms/secp256k1/enable.d.ts.map +1 -0
  557. package/dist/cli/commands/admin/realms/secp256k1/enable.js +42 -0
  558. package/dist/cli/commands/admin/realms/secp256k1/enable.js.map +1 -0
  559. package/dist/cli/commands/admin/realms/secp256k1/index.d.ts +9 -0
  560. package/dist/cli/commands/admin/realms/secp256k1/index.d.ts.map +1 -0
  561. package/dist/cli/commands/admin/realms/secp256k1/index.js +17 -0
  562. package/dist/cli/commands/admin/realms/secp256k1/index.js.map +1 -0
  563. package/dist/cli/commands/admin/realms/set.d.ts +17 -0
  564. package/dist/cli/commands/admin/realms/set.d.ts.map +1 -0
  565. package/dist/cli/commands/admin/realms/set.js +46 -0
  566. package/dist/cli/commands/admin/realms/set.js.map +1 -0
  567. package/dist/cli/commands/admin/rotate-key.d.ts +16 -0
  568. package/dist/cli/commands/admin/rotate-key.d.ts.map +1 -0
  569. package/dist/cli/commands/admin/rotate-key.js +46 -0
  570. package/dist/cli/commands/admin/rotate-key.js.map +1 -0
  571. package/dist/cli/commands/init.d.ts +11 -0
  572. package/dist/cli/commands/init.d.ts.map +1 -0
  573. package/dist/cli/commands/init.js +34 -0
  574. package/dist/cli/commands/init.js.map +1 -0
  575. package/dist/cli/commands/login.d.ts +12 -0
  576. package/dist/cli/commands/login.d.ts.map +1 -0
  577. package/dist/cli/commands/login.js +29 -0
  578. package/dist/cli/commands/login.js.map +1 -0
  579. package/dist/cli/commands/logout.d.ts +8 -0
  580. package/dist/cli/commands/logout.d.ts.map +1 -0
  581. package/dist/cli/commands/logout.js +19 -0
  582. package/dist/cli/commands/logout.js.map +1 -0
  583. package/dist/cli/commands/whoami.d.ts +12 -0
  584. package/dist/cli/commands/whoami.d.ts.map +1 -0
  585. package/dist/cli/commands/whoami.js +24 -0
  586. package/dist/cli/commands/whoami.js.map +1 -0
  587. package/dist/client/Actions.d.ts +108 -0
  588. package/dist/client/Actions.d.ts.map +1 -0
  589. package/dist/client/Actions.js +94 -0
  590. package/dist/client/Actions.js.map +1 -0
  591. package/dist/client/Auth.d.ts +143 -0
  592. package/dist/client/Auth.d.ts.map +1 -0
  593. package/dist/client/Auth.js +106 -0
  594. package/dist/client/Auth.js.map +1 -0
  595. package/dist/client/Authorization.d.ts +29 -0
  596. package/dist/client/Authorization.d.ts.map +1 -0
  597. package/dist/client/Authorization.js +12 -0
  598. package/dist/client/Authorization.js.map +1 -0
  599. package/dist/client/Decorator.d.ts +172 -0
  600. package/dist/client/Decorator.d.ts.map +1 -0
  601. package/dist/client/Decorator.js +241 -0
  602. package/dist/client/Decorator.js.map +1 -0
  603. package/dist/client/Key.d.ts +82 -0
  604. package/dist/client/Key.d.ts.map +1 -0
  605. package/dist/client/Key.js +81 -0
  606. package/dist/client/Key.js.map +1 -0
  607. package/dist/client/Pending.d.ts +38 -0
  608. package/dist/client/Pending.d.ts.map +1 -0
  609. package/dist/client/Pending.js +12 -0
  610. package/dist/client/Pending.js.map +1 -0
  611. package/dist/client/Permissions.d.ts +36 -0
  612. package/dist/client/Permissions.d.ts.map +1 -0
  613. package/dist/client/Permissions.js +16 -0
  614. package/dist/client/Permissions.js.map +1 -0
  615. package/dist/client/Storage.d.ts +27 -0
  616. package/dist/client/Storage.d.ts.map +1 -0
  617. package/dist/client/Storage.js +16 -0
  618. package/dist/client/Storage.js.map +1 -0
  619. package/dist/client/TempoAccount.d.ts +52 -0
  620. package/dist/client/TempoAccount.d.ts.map +1 -0
  621. package/dist/client/TempoAccount.js +17 -0
  622. package/dist/client/TempoAccount.js.map +1 -0
  623. package/dist/client/Tokens.d.ts +25 -0
  624. package/dist/client/Tokens.d.ts.map +1 -0
  625. package/dist/client/Tokens.js +12 -0
  626. package/dist/client/Tokens.js.map +1 -0
  627. package/dist/client/User.d.ts +21 -0
  628. package/dist/client/User.d.ts.map +1 -0
  629. package/dist/client/User.js +12 -0
  630. package/dist/client/User.js.map +1 -0
  631. package/dist/client/actions/account.d.ts +75 -0
  632. package/dist/client/actions/account.d.ts.map +1 -0
  633. package/dist/client/actions/account.js +102 -0
  634. package/dist/client/actions/account.js.map +1 -0
  635. package/dist/client/actions/device.d.ts +52 -0
  636. package/dist/client/actions/device.d.ts.map +1 -0
  637. package/dist/client/actions/device.js +103 -0
  638. package/dist/client/actions/device.js.map +1 -0
  639. package/dist/client/actions/email.d.ts +89 -0
  640. package/dist/client/actions/email.d.ts.map +1 -0
  641. package/dist/client/actions/email.js +86 -0
  642. package/dist/client/actions/email.js.map +1 -0
  643. package/dist/client/actions/oauth.d.ts +112 -0
  644. package/dist/client/actions/oauth.d.ts.map +1 -0
  645. package/dist/client/actions/oauth.js +103 -0
  646. package/dist/client/actions/oauth.js.map +1 -0
  647. package/dist/client/actions/passkey.d.ts +140 -0
  648. package/dist/client/actions/passkey.d.ts.map +1 -0
  649. package/dist/client/actions/passkey.js +170 -0
  650. package/dist/client/actions/passkey.js.map +1 -0
  651. package/dist/client/actions/realm.d.ts +25 -0
  652. package/dist/client/actions/realm.d.ts.map +1 -0
  653. package/dist/client/actions/realm.js +16 -0
  654. package/dist/client/actions/realm.js.map +1 -0
  655. package/dist/client/actions/redirect.d.ts +152 -0
  656. package/dist/client/actions/redirect.d.ts.map +1 -0
  657. package/dist/client/actions/redirect.js +311 -0
  658. package/dist/client/actions/redirect.js.map +1 -0
  659. package/dist/client/internal/accessKey.d.ts +21 -0
  660. package/dist/client/internal/accessKey.d.ts.map +1 -0
  661. package/dist/client/internal/accessKey.js +38 -0
  662. package/dist/client/internal/accessKey.js.map +1 -0
  663. package/dist/client/internal/account.d.ts +17 -0
  664. package/dist/client/internal/account.d.ts.map +1 -0
  665. package/dist/client/internal/account.js +3 -0
  666. package/dist/client/internal/account.js.map +1 -0
  667. package/dist/client/internal/api.d.ts +110 -0
  668. package/dist/client/internal/api.d.ts.map +1 -0
  669. package/dist/client/internal/api.js +136 -0
  670. package/dist/client/internal/api.js.map +1 -0
  671. package/dist/client/internal/headless.d.ts +159 -0
  672. package/dist/client/internal/headless.d.ts.map +1 -0
  673. package/dist/client/internal/headless.js +196 -0
  674. package/dist/client/internal/headless.js.map +1 -0
  675. package/dist/client/internal/indexedDb.d.ts +8 -0
  676. package/dist/client/internal/indexedDb.d.ts.map +1 -0
  677. package/dist/client/internal/indexedDb.js +32 -0
  678. package/dist/client/internal/indexedDb.js.map +1 -0
  679. package/dist/client/internal/request.d.ts +56 -0
  680. package/dist/client/internal/request.d.ts.map +1 -0
  681. package/dist/client/internal/request.js +44 -0
  682. package/dist/client/internal/request.js.map +1 -0
  683. package/dist/client/internal/store.d.ts +12 -0
  684. package/dist/client/internal/store.d.ts.map +1 -0
  685. package/dist/client/internal/store.js +15 -0
  686. package/dist/client/internal/store.js.map +1 -0
  687. package/dist/client/internal/verifier.d.ts +25 -0
  688. package/dist/client/internal/verifier.d.ts.map +1 -0
  689. package/dist/client/internal/verifier.js +52 -0
  690. package/dist/client/internal/verifier.js.map +1 -0
  691. package/dist/client.d.ts +18 -0
  692. package/dist/client.d.ts.map +1 -0
  693. package/dist/client.js +18 -0
  694. package/dist/client.js.map +1 -0
  695. package/dist/index.d.ts +6 -0
  696. package/dist/index.d.ts.map +1 -0
  697. package/dist/index.js +6 -0
  698. package/dist/index.js.map +1 -0
  699. package/dist/internal/Apps.d.ts +3169 -0
  700. package/dist/internal/Apps.d.ts.map +1 -0
  701. package/dist/internal/Apps.js +948 -0
  702. package/dist/internal/Apps.js.map +1 -0
  703. package/dist/internal/Auth.d.ts +4287 -0
  704. package/dist/internal/Auth.d.ts.map +1 -0
  705. package/dist/internal/Auth.js +185 -0
  706. package/dist/internal/Auth.js.map +1 -0
  707. package/dist/internal/Authorize.d.ts +526 -0
  708. package/dist/internal/Authorize.d.ts.map +1 -0
  709. package/dist/internal/Authorize.js +330 -0
  710. package/dist/internal/Authorize.js.map +1 -0
  711. package/dist/internal/Cache.d.ts +56 -0
  712. package/dist/internal/Cache.d.ts.map +1 -0
  713. package/dist/internal/Cache.js +65 -0
  714. package/dist/internal/Cache.js.map +1 -0
  715. package/dist/internal/Chain.d.ts +738 -0
  716. package/dist/internal/Chain.d.ts.map +1 -0
  717. package/dist/internal/Chain.js +65 -0
  718. package/dist/internal/Chain.js.map +1 -0
  719. package/dist/internal/ChainList.d.ts +117 -0
  720. package/dist/internal/ChainList.d.ts.map +1 -0
  721. package/dist/internal/ChainList.js +148 -0
  722. package/dist/internal/ChainList.js.map +1 -0
  723. package/dist/internal/ChainName.d.ts +11 -0
  724. package/dist/internal/ChainName.d.ts.map +1 -0
  725. package/dist/internal/ChainName.js +13 -0
  726. package/dist/internal/ChainName.js.map +1 -0
  727. package/dist/internal/CodeEmail.d.ts +38 -0
  728. package/dist/internal/CodeEmail.d.ts.map +1 -0
  729. package/dist/internal/CodeEmail.js +85 -0
  730. package/dist/internal/CodeEmail.js.map +1 -0
  731. package/dist/internal/ConfigurableAccount.d.ts +600 -0
  732. package/dist/internal/ConfigurableAccount.d.ts.map +1 -0
  733. package/dist/internal/ConfigurableAccount.js +795 -0
  734. package/dist/internal/ConfigurableAccount.js.map +1 -0
  735. package/dist/internal/Device.d.ts +246 -0
  736. package/dist/internal/Device.d.ts.map +1 -0
  737. package/dist/internal/Device.js +257 -0
  738. package/dist/internal/Device.js.map +1 -0
  739. package/dist/internal/Env.d.ts +97 -0
  740. package/dist/internal/Env.d.ts.map +1 -0
  741. package/dist/internal/Env.js +2 -0
  742. package/dist/internal/Env.js.map +1 -0
  743. package/dist/internal/ErrorResponse.d.ts +608 -0
  744. package/dist/internal/ErrorResponse.d.ts.map +1 -0
  745. package/dist/internal/ErrorResponse.js +701 -0
  746. package/dist/internal/ErrorResponse.js.map +1 -0
  747. package/dist/internal/Id.d.ts +10 -0
  748. package/dist/internal/Id.d.ts.map +1 -0
  749. package/dist/internal/Id.js +34 -0
  750. package/dist/internal/Id.js.map +1 -0
  751. package/dist/internal/KeyAuthorization.d.ts +1650 -0
  752. package/dist/internal/KeyAuthorization.d.ts.map +1 -0
  753. package/dist/internal/KeyAuthorization.js +1187 -0
  754. package/dist/internal/KeyAuthorization.js.map +1 -0
  755. package/dist/internal/Limits.d.ts +70 -0
  756. package/dist/internal/Limits.d.ts.map +1 -0
  757. package/dist/internal/Limits.js +36 -0
  758. package/dist/internal/Limits.js.map +1 -0
  759. package/dist/internal/Log.d.ts +34 -0
  760. package/dist/internal/Log.d.ts.map +1 -0
  761. package/dist/internal/Log.js +99 -0
  762. package/dist/internal/Log.js.map +1 -0
  763. package/dist/internal/LogLine.d.ts +29 -0
  764. package/dist/internal/LogLine.d.ts.map +1 -0
  765. package/dist/internal/LogLine.js +50 -0
  766. package/dist/internal/LogLine.js.map +1 -0
  767. package/dist/internal/Migrations.d.ts +28 -0
  768. package/dist/internal/Migrations.d.ts.map +1 -0
  769. package/dist/internal/Migrations.js +82 -0
  770. package/dist/internal/Migrations.js.map +1 -0
  771. package/dist/internal/Owner.d.ts +230 -0
  772. package/dist/internal/Owner.d.ts.map +1 -0
  773. package/dist/internal/Owner.js +101 -0
  774. package/dist/internal/Owner.js.map +1 -0
  775. package/dist/internal/Passkey.d.ts +901 -0
  776. package/dist/internal/Passkey.d.ts.map +1 -0
  777. package/dist/internal/Passkey.js +1185 -0
  778. package/dist/internal/Passkey.js.map +1 -0
  779. package/dist/internal/PendingKey.d.ts +49 -0
  780. package/dist/internal/PendingKey.d.ts.map +1 -0
  781. package/dist/internal/PendingKey.js +58 -0
  782. package/dist/internal/PendingKey.js.map +1 -0
  783. package/dist/internal/Privy.d.ts +138 -0
  784. package/dist/internal/Privy.d.ts.map +1 -0
  785. package/dist/internal/Privy.js +285 -0
  786. package/dist/internal/Privy.js.map +1 -0
  787. package/dist/internal/RateLimit.d.ts +218 -0
  788. package/dist/internal/RateLimit.d.ts.map +1 -0
  789. package/dist/internal/RateLimit.js +209 -0
  790. package/dist/internal/RateLimit.js.map +1 -0
  791. package/dist/internal/Realm.d.ts +290 -0
  792. package/dist/internal/Realm.d.ts.map +1 -0
  793. package/dist/internal/Realm.js +502 -0
  794. package/dist/internal/Realm.js.map +1 -0
  795. package/dist/internal/RequestId.d.ts +16 -0
  796. package/dist/internal/RequestId.d.ts.map +1 -0
  797. package/dist/internal/RequestId.js +78 -0
  798. package/dist/internal/RequestId.js.map +1 -0
  799. package/dist/internal/SigningKey.d.ts +126 -0
  800. package/dist/internal/SigningKey.d.ts.map +1 -0
  801. package/dist/internal/SigningKey.js +221 -0
  802. package/dist/internal/SigningKey.js.map +1 -0
  803. package/dist/internal/TempoAccount.d.ts +181 -0
  804. package/dist/internal/TempoAccount.d.ts.map +1 -0
  805. package/dist/internal/TempoAccount.js +369 -0
  806. package/dist/internal/TempoAccount.js.map +1 -0
  807. package/dist/internal/TestInbox.d.ts +42 -0
  808. package/dist/internal/TestInbox.d.ts.map +1 -0
  809. package/dist/internal/TestInbox.js +20 -0
  810. package/dist/internal/TestInbox.js.map +1 -0
  811. package/dist/internal/Timing.d.ts +52 -0
  812. package/dist/internal/Timing.d.ts.map +1 -0
  813. package/dist/internal/Timing.js +116 -0
  814. package/dist/internal/Timing.js.map +1 -0
  815. package/dist/internal/Validation.d.ts +52 -0
  816. package/dist/internal/Validation.d.ts.map +1 -0
  817. package/dist/internal/Validation.js +22 -0
  818. package/dist/internal/Validation.js.map +1 -0
  819. package/dist/internal/Verification.d.ts +24 -0
  820. package/dist/internal/Verification.d.ts.map +1 -0
  821. package/dist/internal/Verification.js +37 -0
  822. package/dist/internal/Verification.js.map +1 -0
  823. package/dist/internal/Wallet.d.ts +66 -0
  824. package/dist/internal/Wallet.d.ts.map +1 -0
  825. package/dist/internal/Wallet.js +59 -0
  826. package/dist/internal/Wallet.js.map +1 -0
  827. package/dist/internal/owners/Passkey.d.ts +9 -0
  828. package/dist/internal/owners/Passkey.d.ts.map +1 -0
  829. package/dist/internal/owners/Passkey.js +58 -0
  830. package/dist/internal/owners/Passkey.js.map +1 -0
  831. package/dist/internal/owners/Privy.d.ts +13 -0
  832. package/dist/internal/owners/Privy.d.ts.map +1 -0
  833. package/dist/internal/owners/Privy.js +59 -0
  834. package/dist/internal/owners/Privy.js.map +1 -0
  835. package/dist/internal/owners/Secp256k1.d.ts +12 -0
  836. package/dist/internal/owners/Secp256k1.d.ts.map +1 -0
  837. package/dist/internal/owners/Secp256k1.js +99 -0
  838. package/dist/internal/owners/Secp256k1.js.map +1 -0
  839. package/dist/worker.d.ts +18 -0
  840. package/dist/worker.d.ts.map +1 -0
  841. package/dist/worker.js +18 -0
  842. package/dist/worker.js.map +1 -0
  843. package/package.json +83 -3
  844. package/src/Api.ts +157 -0
  845. package/src/App.ts +316 -0
  846. package/src/api/account.ts +2266 -0
  847. package/src/api/authenticate.ts +1662 -0
  848. package/src/api/authorize.ts +1086 -0
  849. package/src/api/device.ts +516 -0
  850. package/src/api/health.ts +72 -0
  851. package/src/api/lib/AccountStep.ts +485 -0
  852. package/src/api/lib/Auth.ts +164 -0
  853. package/src/api/lib/Configure.ts +921 -0
  854. package/src/api/lib/Consent.ts +388 -0
  855. package/src/api/lib/Cors.ts +160 -0
  856. package/src/api/lib/Database.ts +10 -0
  857. package/src/api/lib/DeviceRequest.ts +244 -0
  858. package/src/api/lib/FirstAccount.ts +136 -0
  859. package/src/api/lib/Headless.ts +616 -0
  860. package/src/api/lib/IsolateCache.ts +28 -0
  861. package/src/api/lib/KeySigner.ts +690 -0
  862. package/src/api/lib/PasskeyLink.ts +162 -0
  863. package/src/api/lib/Session.ts +64 -0
  864. package/src/api/lib/SignInConsent.ts +393 -0
  865. package/src/api/oauth.ts +1796 -0
  866. package/src/app/components/CodeInput.tsx +153 -0
  867. package/src/app/components/DevTools.tsx +1071 -0
  868. package/src/app/components/Grant.tsx +476 -0
  869. package/src/app/components/icons/BRLA.png +0 -0
  870. package/src/app/components/icons/BRZ.svg +1 -0
  871. package/src/app/components/icons/CHFAU.png +0 -0
  872. package/src/app/components/icons/DLUSD.png +0 -0
  873. package/src/app/components/icons/EURAU.svg +1 -0
  874. package/src/app/components/icons/EURC.e.svg +1 -0
  875. package/src/app/components/icons/GBPA.svg +4 -0
  876. package/src/app/components/icons/GUSD.svg +1 -0
  877. package/src/app/components/icons/MACH.svg +4 -0
  878. package/src/app/components/icons/OUSD.svg +5 -0
  879. package/src/app/components/icons/PRIME.svg +14 -0
  880. package/src/app/components/icons/SBC.svg +1 -0
  881. package/src/app/components/icons/SEKAU.svg +5 -0
  882. package/src/app/components/icons/USD1.svg +30 -0
  883. package/src/app/components/icons/USDB.svg +11 -0
  884. package/src/app/components/icons/USDC.e.svg +1 -0
  885. package/src/app/components/icons/USDT0.svg +1 -0
  886. package/src/app/components/icons/USDY.svg +16 -0
  887. package/src/app/components/icons/USDe.svg +1 -0
  888. package/src/app/components/icons/YLDS.svg +3 -0
  889. package/src/app/components/icons/alphaUSD.svg +1 -0
  890. package/src/app/components/icons/betaUSD.svg +1 -0
  891. package/src/app/components/icons/cUSD.svg +1 -0
  892. package/src/app/components/icons/cbBTC.svg +1 -0
  893. package/src/app/components/icons/frxUSD.svg +1 -0
  894. package/src/app/components/icons/goUSD.svg +5 -0
  895. package/src/app/components/icons/iUSD.svg +1 -0
  896. package/src/app/components/icons/pathUSD.svg +25 -0
  897. package/src/app/components/icons/rUSD.svg +1 -0
  898. package/src/app/components/icons/reUSD.svg +1 -0
  899. package/src/app/components/icons/sUSDe.svg +1 -0
  900. package/src/app/components/icons/siUSD.svg +1 -0
  901. package/src/app/components/icons/stcUSD.svg +1 -0
  902. package/src/app/components/icons/syrupUSDC.svg +5 -0
  903. package/src/app/components/icons/thetaUSD.svg +1 -0
  904. package/src/app/components/icons/wYLDS.svg +10 -0
  905. package/src/app/components/icons/wsrUSD.svg +1 -0
  906. package/src/app/components/logos/OUSD.dark.svg +17 -0
  907. package/src/app/components/logos/OUSD.light.svg +17 -0
  908. package/src/app/coverage.server.ts +73 -0
  909. package/src/app/coverage.ts +69 -0
  910. package/src/app/crons/cleanup.ts +104 -0
  911. package/src/app/db/auth.ts +440 -0
  912. package/src/app/db/migrations/0000_better_auth.sql +53 -0
  913. package/src/app/db/migrations/0001_oauth_provider.sql +162 -0
  914. package/src/app/db/migrations/0002_device_code.sql +17 -0
  915. package/src/app/db/migrations/0003_realms.sql +27 -0
  916. package/src/app/db/migrations/0004_default_realm.sql +2 -0
  917. package/src/app/db/migrations/0005_passkeys.sql +30 -0
  918. package/src/app/db/migrations/0006_first_accounts.sql +9 -0
  919. package/src/app/db/migrations/0007_pending_keys.sql +13 -0
  920. package/src/app/db/migrations/0008_secp256k1_owners.sql +18 -0
  921. package/src/app/db/migrations/0009_device_requests.sql +8 -0
  922. package/src/app/db/migrations/0010_device_keys.sql +4 -0
  923. package/src/app/db/migrations/0011_registered_passkeys.sql +2 -0
  924. package/src/app/db/migrations/0012_passkey_accounts.sql +7 -0
  925. package/src/app/db/migrations/0013_first_party_apps.sql +4 -0
  926. package/src/app/db/migrations/0014_logout_revokes_tokens.sql +17 -0
  927. package/src/app/db/migrations/0015_expiry_indexes.sql +9 -0
  928. package/src/app/db/migrations/0016_configurable_accounts.sql +15 -0
  929. package/src/app/db/migrations/0017_account_config_keys.sql +3 -0
  930. package/src/app/db/migrations/0018_better_auth_1_8.sql +9 -0
  931. package/src/app/db/migrations/0019_drop_provider_account_index.sql +1 -0
  932. package/src/app/db/migrations/meta/0000_snapshot.json +362 -0
  933. package/src/app/db/migrations/meta/0001_snapshot.json +1487 -0
  934. package/src/app/db/migrations/meta/0002_snapshot.json +1603 -0
  935. package/src/app/db/migrations/meta/0003_snapshot.json +1760 -0
  936. package/src/app/db/migrations/meta/0004_snapshot.json +1760 -0
  937. package/src/app/db/migrations/meta/0005_snapshot.json +1911 -0
  938. package/src/app/db/migrations/meta/0006_snapshot.json +1967 -0
  939. package/src/app/db/migrations/meta/0007_snapshot.json +2047 -0
  940. package/src/app/db/migrations/meta/0008_snapshot.json +2157 -0
  941. package/src/app/db/migrations/meta/0009_snapshot.json +2207 -0
  942. package/src/app/db/migrations/meta/0010_snapshot.json +2231 -0
  943. package/src/app/db/migrations/meta/0011_snapshot.json +2231 -0
  944. package/src/app/db/migrations/meta/0012_snapshot.json +2231 -0
  945. package/src/app/db/migrations/meta/0013_snapshot.json +2231 -0
  946. package/src/app/db/migrations/meta/0014_snapshot.json +2231 -0
  947. package/src/app/db/migrations/meta/0015_snapshot.json +2375 -0
  948. package/src/app/db/migrations/meta/0016_snapshot.json +2475 -0
  949. package/src/app/db/migrations/meta/0017_snapshot.json +2481 -0
  950. package/src/app/db/migrations/meta/0018_snapshot.json +2535 -0
  951. package/src/app/db/migrations/meta/0019_snapshot.json +2514 -0
  952. package/src/app/db/migrations/meta/_journal.json +146 -0
  953. package/src/app/db/schema.ts +241 -0
  954. package/src/app/db/table.ts +31 -0
  955. package/src/app/env.ts +57 -0
  956. package/src/app/inbox.ts +190 -0
  957. package/src/app/lib/Client.ts +82 -0
  958. package/src/app/lib/Inbox.ts +11 -0
  959. package/src/app/lib/Loader.ts +21 -0
  960. package/src/app/lib/Upgrade.ts +221 -0
  961. package/src/app/package.json +8 -0
  962. package/src/app/public/_headers +4 -0
  963. package/src/app/routeTree.gen.ts +219 -0
  964. package/src/app/router.tsx +47 -0
  965. package/src/app/routes/[_].flows.tsx +4254 -0
  966. package/src/app/routes/__root.tsx +172 -0
  967. package/src/app/routes/authorize.tsx +379 -0
  968. package/src/app/routes/choose-account.tsx +144 -0
  969. package/src/app/routes/deposit.tsx +107 -0
  970. package/src/app/routes/device.tsx +273 -0
  971. package/src/app/routes/error.tsx +62 -0
  972. package/src/app/routes/index.tsx +511 -0
  973. package/src/app/routes/login.tsx +577 -0
  974. package/src/app/screens/Account.tsx +559 -0
  975. package/src/app/screens/Approval.tsx +444 -0
  976. package/src/app/screens/ChooseAccount.tsx +206 -0
  977. package/src/app/screens/Deposit.tsx +523 -0
  978. package/src/app/screens/DeviceApproval.tsx +500 -0
  979. package/src/app/screens/NotFound.tsx +62 -0
  980. package/src/app/screens/SignIn.tsx +372 -0
  981. package/src/app/screens/WalletUpgrade.tsx +121 -0
  982. package/src/app/screens/chains/base.svg +3 -0
  983. package/src/app/screens/chains/ethereum.svg +11 -0
  984. package/src/app/screens/chains/solana.svg +4 -0
  985. package/src/app/screens/chains/tempo.svg +4 -0
  986. package/src/app/server.ts +342 -0
  987. package/src/app/vite.config.ts +128 -0
  988. package/src/app/void.config.ts +36 -0
  989. package/src/app/wallet.ts +69 -0
  990. package/src/app/zyzz.config.ts +52 -0
  991. package/src/cli/Admin.ts +74 -0
  992. package/src/cli/Apps.ts +27 -0
  993. package/src/cli/Cli.ts +41 -0
  994. package/src/cli/Project.ts +119 -0
  995. package/src/cli/Realms.ts +49 -0
  996. package/src/cli/Session.ts +290 -0
  997. package/src/cli/User.ts +40 -0
  998. package/src/cli/V1.ts +54 -0
  999. package/src/cli/bin.ts +44 -0
  1000. package/src/cli/commands/admin/apps/create.ts +96 -0
  1001. package/src/cli/commands/admin/apps/delete.ts +38 -0
  1002. package/src/cli/commands/admin/apps/index.ts +15 -0
  1003. package/src/cli/commands/admin/apps/list.ts +25 -0
  1004. package/src/cli/commands/admin/apps/rotate-secret.ts +47 -0
  1005. package/src/cli/commands/admin/apps/update.ts +79 -0
  1006. package/src/cli/commands/admin/index.ts +14 -0
  1007. package/src/cli/commands/admin/migrate.ts +19 -0
  1008. package/src/cli/commands/admin/realms/add.ts +40 -0
  1009. package/src/cli/commands/admin/realms/index.ts +14 -0
  1010. package/src/cli/commands/admin/realms/list.ts +38 -0
  1011. package/src/cli/commands/admin/realms/passkeys/index.ts +15 -0
  1012. package/src/cli/commands/admin/realms/passkeys/set.ts +44 -0
  1013. package/src/cli/commands/admin/realms/privy/index.ts +14 -0
  1014. package/src/cli/commands/admin/realms/privy/set.ts +69 -0
  1015. package/src/cli/commands/admin/realms/remove.ts +33 -0
  1016. package/src/cli/commands/admin/realms/secp256k1/disable.ts +40 -0
  1017. package/src/cli/commands/admin/realms/secp256k1/enable.ts +40 -0
  1018. package/src/cli/commands/admin/realms/secp256k1/index.ts +19 -0
  1019. package/src/cli/commands/admin/realms/set.ts +46 -0
  1020. package/src/cli/commands/admin/rotate-key.ts +47 -0
  1021. package/src/cli/commands/init.ts +42 -0
  1022. package/src/cli/commands/login.ts +32 -0
  1023. package/src/cli/commands/logout.ts +19 -0
  1024. package/src/cli/commands/whoami.ts +23 -0
  1025. package/src/client/Actions.ts +180 -0
  1026. package/src/client/Auth.ts +267 -0
  1027. package/src/client/Authorization.ts +34 -0
  1028. package/src/client/Decorator.ts +444 -0
  1029. package/src/client/Key.ts +137 -0
  1030. package/src/client/Pending.ts +45 -0
  1031. package/src/client/Permissions.ts +41 -0
  1032. package/src/client/Storage.ts +29 -0
  1033. package/src/client/TempoAccount.ts +55 -0
  1034. package/src/client/Tokens.ts +27 -0
  1035. package/src/client/User.ts +23 -0
  1036. package/src/client/actions/account.ts +171 -0
  1037. package/src/client/actions/device.ts +166 -0
  1038. package/src/client/actions/email.ts +164 -0
  1039. package/src/client/actions/oauth.ts +179 -0
  1040. package/src/client/actions/passkey.ts +333 -0
  1041. package/src/client/actions/realm.ts +37 -0
  1042. package/src/client/actions/redirect.ts +502 -0
  1043. package/src/client/internal/accessKey.ts +54 -0
  1044. package/src/client/internal/account.ts +18 -0
  1045. package/src/client/internal/api.ts +242 -0
  1046. package/src/client/internal/headless.ts +308 -0
  1047. package/src/client/internal/indexedDb.ts +44 -0
  1048. package/src/client/internal/request.ts +70 -0
  1049. package/src/client/internal/store.ts +20 -0
  1050. package/src/client/internal/verifier.ts +75 -0
  1051. package/src/client.ts +17 -0
  1052. package/src/index.ts +5 -0
  1053. package/src/internal/Apps.ts +1283 -0
  1054. package/src/internal/Auth.ts +273 -0
  1055. package/src/internal/Authorize.ts +433 -0
  1056. package/src/internal/Balance.ts +144 -0
  1057. package/src/internal/BodyLimit.ts +31 -0
  1058. package/src/internal/Cache.ts +119 -0
  1059. package/src/internal/Chain.ts +99 -0
  1060. package/src/internal/ChainList.ts +270 -0
  1061. package/src/internal/ChainName.ts +14 -0
  1062. package/src/internal/ChainStatus.ts +65 -0
  1063. package/src/internal/CodeEmail.ts +138 -0
  1064. package/src/internal/ConfigurableAccount.ts +1315 -0
  1065. package/src/internal/Device.ts +471 -0
  1066. package/src/internal/Env.ts +92 -0
  1067. package/src/internal/ErrorResponse.ts +896 -0
  1068. package/src/internal/Faucet.ts +43 -0
  1069. package/src/internal/Id.ts +41 -0
  1070. package/src/internal/KeyAuthorization.ts +1536 -0
  1071. package/src/internal/Limits.ts +40 -0
  1072. package/src/internal/Log.ts +166 -0
  1073. package/src/internal/LogLine.ts +81 -0
  1074. package/src/internal/Logout.ts +356 -0
  1075. package/src/internal/Migrations.ts +120 -0
  1076. package/src/internal/OpenApi.ts +300 -0
  1077. package/src/internal/Owner.ts +310 -0
  1078. package/src/internal/Passkey.ts +1904 -0
  1079. package/src/internal/PendingKey.ts +104 -0
  1080. package/src/internal/Privy.ts +536 -0
  1081. package/src/internal/RateLimit.ts +346 -0
  1082. package/src/internal/Realm.ts +814 -0
  1083. package/src/internal/RequestId.ts +118 -0
  1084. package/src/internal/SignInGrant.ts +175 -0
  1085. package/src/internal/SigningKey.ts +319 -0
  1086. package/src/internal/TempoAccount.ts +545 -0
  1087. package/src/internal/TestInbox.ts +51 -0
  1088. package/src/internal/Timing.ts +172 -0
  1089. package/src/internal/Validation.ts +52 -0
  1090. package/src/internal/Verification.ts +58 -0
  1091. package/src/internal/Wallet.ts +101 -0
  1092. package/src/internal/owners/Passkey.ts +76 -0
  1093. package/src/internal/owners/Privy.ts +82 -0
  1094. package/src/internal/owners/Secp256k1.ts +139 -0
  1095. package/src/types/app.d.ts +39 -0
  1096. package/src/worker.ts +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevTools-ZJVXqrIK.js","names":["REASONS.none","REASONS.keyboard","REASONS.pointer","_formatErrorMessage","_formatErrorMessage","_formatErrorMessage","_formatErrorMessage","REASONS.itemPress","platform.os.mac","MenuCheckboxItemDataAttributes.checked","MenuCheckboxItemDataAttributes.unchecked","REASONS.itemPress","_formatErrorMessage","_formatErrorMessage","REASONS.siblingOpen","_formatErrorMessage","_formatErrorMessage","REASONS.itemPress","_formatErrorMessage","platform.engine.webkit","REASONS.imperativeAction","listNavigation","REASONS.keyboard","REASONS.none","_formatErrorMessage","REASONS.cancelOpen","_formatErrorMessage","REASONS.pointer","platform.screenReader.voiceOver","REASONS.focusOut","REASONS.none","createContext","BaseUi.Menu.Group","BaseUi.Menu.RadioGroup","BaseUi.Menu.Root","BaseUi.Menu.Trigger","_jsxs","BaseUi.Menu.CheckboxItem","styles","_jsx","BaseUi.Menu.CheckboxItemIndicator","BaseUi.Menu.GroupLabel","BaseUi.Menu.Item","BaseUi.Menu.LinkItem","useContext","BaseUi.Menu.Portal","BaseUi.Menu.Positioner","BaseUi.Menu.Popup","BaseUi.Menu.RadioItem","BaseUi.Menu.RadioItemIndicator","Separator","BaseUi.Menu.Separator","BaseUi.Menu.SubmenuRoot","BaseUi.Menu.SubmenuTrigger","_jsxs","_jsx","_jsx","useId","_jsxs","_jsx","_jsxs","_jsx","useState","Inbox.tokenPath","Inbox.path","Inbox.header","useRef","BaseUi.Popover.Root","BaseUi.Popover.Trigger","BaseUi.Popover.Portal","BaseUi.Popover.Positioner","BaseUi.Popover.Popup","_Fragment","Client.use","ChainList.ids","__toESM","ids","require_react","useRouter","require_jsx_runtime","useSearch","useNavigate","use","parseResponse","useStableCallback","EMPTY_OBJECT","createChangeEventDetails","unwrapLazyRenderProp","useRefWithInit","POPUP_COLLISION_AVOIDANCE","fastComponentRef","transitionStatusMapping","contains","useRenderElement","EMPTY_ARRAY","fastComponent","ownerDocument","formatErrorMessage","mac","pointer","isHTMLElement","useTimeout","imperativeAction","useButton","useMergedRefs","dispatchClickWithModifiers","itemPress","useAnimationsFinished","useOpenChangeComplete","none","mergeProps","create","ReactStore","webkit","isLastTraversableNode","useCompositeRootContext","voiceOver","keyboard","FocusGuard","getTarget","Button","cancelOpen","focusOut","vars","getParentNode","inertValue","useIsoLayoutEffect","siblingOpen","DROPDOWN_COLLISION_AVOIDANCE","NOOP","createGenericEventDetails","FloatingPortal","useTransitionStatus","useOpenStateTransitions","useTriggerDataForwarding","useFloatingNodeId","pressableTriggerOpenStateMapping","useFloatingParentNodeId","triggerOpenStateMapping","useFloatingTree","useDismiss","FloatingNode","useTriggerRegistration","FloatingTree","FloatingTreeStore","useImplicitActiveTrigger","popupTransitionStateMapping","FOCUSABLE_POPUP_PROPS","useDirection","safePolygon","useFocus","usePopupHandleStore","PopupTriggerMap","useAnchorPositioning","useSyncedFloatingRootContext","useHoverReferenceInteraction","popupStoreSelectors","usePositioner","useBaseUiId","createInitialPopupStoreState","getDisabledMountTransitionStyles","Tooltip","useHoverFloatingInteraction","PopupHandleAttachment","usePopupInteractionProps","createPopupOpenState","attachPreventUnmountOnClose","useOpenInteractionType","useClick","InternalBackdrop","FloatingFocusManager","COMPOSITE_KEYS","useAnchoredPopupScrollLock","useToolbarRootContext","useTypeahead","useListNavigation","isMouseWithinBounds","useTriggerFocusGuards","useTriggerSwitchTransition","useQuery","useCompositeListItem","CompositeList","useControlled","Close","Check","ChevronRight","Separator","useRouterState","contextRouter","opts","router","state","getHighlightReason","event","import_react","useCompositeItem","params","isHighlighted","highlightedIndex","index","itemRef","mergedRef","ref","onHighlightedIndexChange","item","highlightItemOnHover","disabled","CompositeItem","elementProps","componentProps","tag","compositeRef","refs","compositeProps","props","MenuPositionerContext","useMenuPositionerContext","context","optional","MenuRootContext","useMenuRootContext","ContextMenuRootContext","useContextMenuRootContext","MenuFilterImplContext","useMenuFilterImpl","impl","root","scope","UNFILTERED","useUnfilteredItem","useMenuFilterItem","forwardedRef","MenuCheckboxItemContext","useMenuCheckboxItemContext","preventMouseDownDefault","useMenuItemCommonProps","rootContext","contextMenuContext","isSubmenuTrigger","itemMetadata","virtualFocus","ariaSelected","highlighted","menuEvents","store","open","isContextMenu","tabIndex","typingRef","nodeId","closeOnClick","initialCursorPoint","id","REGULAR_ITEM","useMenuItem","nativeButton","commonProps","getItemProps","externalProps","getButtonProps","buttonRef","checked","unchecked","itemMapping","value","import_jsx_runtime","MenuCheckboxItemPlain","idProp","disabledProp","listItem","rootDisabled","itemProps","handleClick","details","onCheckedChange","element","MenuCheckboxItem","checkedProp","plainProps","setChecked","defaultChecked","filterItem","handleCheckedChange","nextChecked","eventDetails","MenuCheckboxItemIndicator","indicatorRef","setMounted","keepMounted","mounted","MenuGroupContext","useMenuGroupRootContext","MenuGroupPlain","labelId","setLabelId","MenuGroup","Group","MenuGroupLabel","currentId","MenuItemPlain","MenuItem","MenuLinkItemPlain","linkRef","MenuLinkItem","MenuSubmenuRootContext","useMenuSubmenuRootContext","resolveRenderedId","render","renderProps","fallbackId","useRenderedId","defaultId","registeredId","setId","resolvePopupLabel","renderedElementProps","ariaLabel","ariaLabelledBy","activeTriggerElement","activeTriggerId","MenuPopupPlain","initialFocusProp","inheritedSubmenuRootContext","insideToolbar","transitionStatus","popupProps","instantType","parent","lastOpenChangeReason","rootId","floatingContext","floatingTreeRoot","closeDelay","hoverEnabled","openMethod","listElement","registerIdRef","defaultFloatingId","setRenderedFloatingId","submenuRootContext","initialFocus","handleClose","setPopupElement","useNoParentHandoff","orientation","handleFocus","returnFocus","dynamicReturnFocus","parentVirtualFocusRef","finalFocus","NO_PARENT_HANDOFF","MenuPopup","Popup","MenuPortalContext","useMenuPortalContext","MenuPortal","portalProps","portalOwnerRole","MenuPositioner","anchorProp","positionMethodProp","alignProp","sideOffsetProp","alignOffsetProp","collisionAvoidanceProp","floatingRootContext","modal","triggerElement","positionerElement","adaptiveOrigin","floatingNodeId","floatingParentNodeId","domReference","anchor","sideOffset","alignOffset","align","collisionAvoidance","side","computedSide","computedAlign","contextMenu","positioner","arrowPadding","onMenuOpenChange","onParentClose","reason","closeTimeout","onItemHover","delay","menubarModal","shouldRenderBackdrop","backdropCutout","syncHighlightedItem","MenuRadioGroupContext","useMenuRadioGroupContext","MenuRadioGroupPlain","valueProp","onValueChangeProp","ariaLabelledByProp","setValueUnwrapped","defaultValue","setValue","newValue","MenuRadioGroup","RadioGroup","MenuRadioItemContext","useMenuRadioItemContext","MenuRadioItemPlain","selectedValue","setSelectedValue","groupDisabled","MenuRadioItem","MenuRadioItemIndicator","MenubarContext","useMenubarContext","selectors","popupId","triggerId","itemIndex","MenuStore","triggerElements","createInitialState","floatingId","nested","initialState","createInitialContext","keyboardEventRelay","nextRootId","nextFloatingTreeRoot","nextKeyboardEventRelay","activeIndex","isWriteBack","MenuFilterProviderContext","isKeyboardClick","isKeyboardOpen","MenuRootInternal","openProp","onItemHighlightedProp","modalProp","triggerIdProp","defaultTriggerIdProp","parentMenuRootContext","menubarContext","enclosingMenuStore","parentVirtualFocus","parentFromContext","isSubmenu","renderedFloatingId","floatingParentNodeIdFromContext","parentMenuStore","animateInitialOpen","defaultOpen","seededInstantType","menuStore","virtualFocusRef","onOpenChangeComplete","floatingNodeIdFromContext","keyboardOpen","payload","openEventRef","allowOutsidePressDismissalRef","allowOutsidePressDismissalTimeout","allowTouchToCloseRef","allowTouchToCloseTimeout","interactionTypeProps","runOnceAnimationsFinish","clearSeededInstantType","abortController","setOpen","nextOpen","shouldPreventUnmountOnClose","onOpenChange","nativeEvent","isDismissClose","popupOpenState","floatingEvents","handleSetOpenEvent","handleImperativeClose","actionsRef","forceUnmount","ctx","dismiss","closeParentOnEsc","direction","listNavigation$1","loopFocus","allowEscape","nextActiveIndex","onTyping","nextTyping","typeahead","onItemHighlighted","lastHighlightIndexRef","highlightReason","highlightEvent","openTriggerProps","rest","activeTriggerProps","mergedProps","inactiveTriggerProps","relay","renderedChildren","children","content","handle","MenuRoot","filterProvider","FilterRoot","EMPTY_SUBMENU_ROOT_CONTEXT","MenuSubmenuRoot","FilterSubmenuRoot","findRootOwnerId","node","useMixedToggleClickHandler","ignoreClickRef","enabled","mouseDownAction","MenuTrigger","openOnHoverProp","thisTriggerId","isTriggerActive","isOpenedByThisTrigger","controlsId","triggerElementRef","useMenuParent","compositeRootContext","floatingTreeRootFromContext","isInMenubar","triggerRef","allowMouseUpTriggerTimeout","handleDocumentMouseUp","mouseUpTarget","mouseEvent","doc","parentMenubarHasSubmenuOpen","hoverProps","isMountedByThisTrigger","stickIfOpen","useStickIfOpen","click","focus","mixedToggleHandlers","localInteractionProps","rootTriggerProps","filterTriggerProps","registerTrigger","handlePreFocusGuardFocus","handleFocusTargetFocus","stickIfOpenTimeout","setStickIfOpen","openReason","VOICE_OVER_EXPANDED_PROPS","MenuSubmenuTriggerPlain","menuPositionerContext","focusReturnedThroughGuardRef","baseRegisterTrigger","handleTriggerElementRef","el","handleGuardFocusOut","parentDisabled","openOnHover","openedByKeyboard","shouldOmitExpanded","submenuKeyDownProps","MenuSubmenuTrigger","submenuContext","Menu","CheckboxItem","attributes","styles$1","GroupLabel","Item","LinkItem","submenu","RadioItem","Separator$1","Shortcut","SubmenuRoot","SubmenuTrigger","external","input","style","inline","className","result","\"intent\"","\"size\"","CryptoNetwork","DarkMode","LightMode","Sliders","header","path","tokenPath","inboxEnabled","DevTools","collapsed","setCollapsed","useStored","nudging","setNudging","scheme","useScheme","seen","setSeen","tokenQuery","response","token","inbox","messages","newest","unread","message","latest","announcement","setAnnouncement","previous","chime","filled","fill","styles","Tip","ChainMenu","SchemeButton","client","navigate","search","signed","keyChainId","keyChain","chains","status","entry","ready","statusOf","name","chain","selected","dark","describe","label","Status","next","listedStatus","parsed","isReady","setScheme","system","setSystem","query","update","current","toggle","start","offset","frequency","gain","oscillator","code","subject","options","text","address","data","key","setState","initial","stored","\"ready\""],"sources":["../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../../../../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/getHighlightReason.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/item/useCompositeItem.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/item/CompositeItem.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/menu/positioner/MenuPositionerContext.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/menu/root/MenuRootContext.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/context-menu/root/ContextMenuRootContext.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/menu/filter-root/MenuFilterContext.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/menu/checkbox-item/MenuCheckboxItemContext.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/menu/item/useMenuItemCommonProps.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/menu/item/useMenuItem.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/menu/checkbox-item/MenuCheckboxItemDataAttributes.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/menu/utils/stateAttributesMapping.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/menu/checkbox-item/MenuCheckboxItem.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/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.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/menu/group/MenuGroupContext.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/menu/group/MenuGroup.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/menu/group-label/MenuGroupLabel.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/menu/item/MenuItem.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/menu/link-item/MenuLinkItem.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/menu/submenu-root/MenuSubmenuRootContext.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/resolveRenderedId.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/resolvePopupLabel.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/menu/popup/MenuPopup.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/menu/portal/MenuPortalContext.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/menu/portal/MenuPortal.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/menu/positioner/MenuPositioner.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/menu/radio-group/MenuRadioGroupContext.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/menu/radio-group/MenuRadioGroup.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/menu/radio-item/MenuRadioItemContext.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/menu/radio-item/MenuRadioItem.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/menu/radio-item-indicator/MenuRadioItemIndicator.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/menubar/MenubarContext.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/menu/store/MenuStore.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/menu/filter-provider/MenuFilterProviderContext.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/menu/utils/isKeyboardOpen.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/menu/root/MenuRoot.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/menu/submenu-root/MenuSubmenuRoot.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/menu/utils/findRootOwnerId.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/useMixedToggleClickHandler.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/menu/trigger/MenuTrigger.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/menu/submenu-trigger/MenuSubmenuTrigger.mjs","../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/components/Menu.js","../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/icons/CryptoNetwork.js","../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/icons/DarkMode.js","../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/icons/LightMode.js","../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/icons/Sliders.js","../../../lib/Inbox.ts","../../../components/DevTools.tsx"],"sourcesContent":["\"use client\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useStructuralSharing } from \"./useMatch.js\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useSelector } from \"@tanstack/react-store\";\n//#region src/useRouterState.tsx\n/**\n* Subscribe to the router's state store with optional selection and\n* structural sharing for render optimization.\n*\n* Options:\n* - `select`: Project the full router state to a derived slice\n* - `structuralSharing`: Replace-equal semantics for stable references\n* - `router`: Read state from a specific router instance instead of context\n*\n* @returns The selected router state (or the full state by default).\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useRouterStateHook\n*/\nfunction useRouterState(opts) {\n\tconst contextRouter = useRouter({ warn: opts?.router === void 0 });\n\tconst router = opts?.router || contextRouter;\n\tif (isServer ?? router.isServer) {\n\t\tconst state = router.stores.__store.get();\n\t\treturn opts?.select ? opts.select(state) : state;\n\t}\n\treturn useSelector(router.stores.__store, useStructuralSharing(opts, router));\n}\n//#endregion\nexport { useRouterState };\n\n//# sourceMappingURL=useRouterState.js.map","import { REASONS } from \"../internals/reasons.mjs\";\n\n/**\n * The `onItemHighlighted` reason for a list navigation event, matching the event type that the\n * reason promises in its details.\n */\nexport function getHighlightReason(event) {\n if (event == null) {\n return REASONS.none;\n }\n if (event.type.startsWith('key')) {\n return REASONS.keyboard;\n }\n if (event.type.startsWith('mouse') || event.type.startsWith('pointer')) {\n return REASONS.pointer;\n }\n return REASONS.none;\n}","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useCompositeRootContext } from \"../root/CompositeRootContext.mjs\";\nimport { useCompositeListItem } from \"../list/useCompositeListItem.mjs\";\nexport function useCompositeItem(params = {}) {\n const {\n highlightItemOnHover,\n highlightedIndex,\n onHighlightedIndexChange\n } = useCompositeRootContext();\n const {\n ref,\n index\n } = useCompositeListItem(params);\n const isHighlighted = highlightedIndex === index;\n const itemRef = React.useRef(null);\n const mergedRef = useMergedRefs(ref, itemRef);\n const compositeProps = {\n tabIndex: isHighlighted ? 0 : -1,\n onFocus() {\n onHighlightedIndexChange(index);\n },\n onMouseMove() {\n const item = itemRef.current;\n if (!highlightItemOnHover || !item) {\n return;\n }\n const disabled = item.hasAttribute('disabled') || item.ariaDisabled === 'true';\n if (!isHighlighted && !disabled) {\n item.focus();\n }\n }\n };\n return {\n compositeProps,\n compositeRef: mergedRef,\n index\n };\n}","'use client';\n\nimport { EMPTY_OBJECT, EMPTY_ARRAY } from '@base-ui/utils/empty';\nimport { useRenderElement } from \"../../useRenderElement.mjs\";\nimport { useCompositeItem } from \"./useCompositeItem.mjs\";\nexport function CompositeItem(componentProps) {\n const {\n render,\n className,\n style,\n state = EMPTY_OBJECT,\n props = EMPTY_ARRAY,\n refs = EMPTY_ARRAY,\n metadata,\n stateAttributesMapping,\n tag = 'div',\n ...elementProps\n } = componentProps;\n const {\n compositeProps,\n compositeRef\n } = useCompositeItem({\n metadata\n });\n return useRenderElement(tag, componentProps, {\n state,\n // The composite ref attaches first so an outer item wins when nested items share a DOM node.\n ref: [compositeRef, ...refs],\n props: [compositeProps, ...props, elementProps],\n stateAttributesMapping\n });\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const MenuPositionerContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuPositionerContext.displayName = \"MenuPositionerContext\";\nexport function useMenuPositionerContext(optional) {\n const context = React.useContext(MenuPositionerContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.' : _formatErrorMessage(33));\n }\n return context;\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const MenuRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuRootContext.displayName = \"MenuRootContext\";\nexport function useMenuRootContext(optional) {\n const context = React.useContext(MenuRootContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.' : _formatErrorMessage(36));\n }\n return context;\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ContextMenuRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ContextMenuRootContext.displayName = \"ContextMenuRootContext\";\nexport function useContextMenuRootContext(optional = true) {\n const context = React.useContext(ContextMenuRootContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.' : _formatErrorMessage(25));\n }\n return context;\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { MenuRootContext } from \"../root/MenuRootContext.mjs\";\n\n/**\n * The filter implementation that a filterable root hands to the parts below it. Only the roots\n * `Menu.FilterProvider` renders import it, so a plain menu never bundles it. Parts whose whole\n * structure differs are swapped as components; parts that only register with the filter call an\n * injected hook, so a menu that never renders them doesn't bundle a second implementation.\n */\n\n/** Static below a filter root: the implementation never changes, so subscribers never re-render. */\nexport const MenuFilterImplContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") MenuFilterImplContext.displayName = \"MenuFilterImplContext\";\n/**\n * The filter implementation when the menu this part belongs to is filterable, otherwise `null`.\n * `virtualFocus` marks a filter root; a plain `Menu.Root` never sets it. The result is fixed for\n * a mounted part: a filter root can't appear above it without remounting it.\n */\nexport function useMenuFilterImpl(scope = 'root') {\n const impl = React.useContext(MenuFilterImplContext);\n const root = React.useContext(MenuRootContext);\n if (impl === null || root === undefined) {\n return null;\n }\n const filterable = scope === 'submenu-trigger' ? root.virtualFocus || root.parentVirtualFocus : root.virtualFocus;\n return filterable ? impl : null;\n}\n\n/**\n * Throws unless the menu this part renders in is filterable, naming the part and the provider.\n */\nexport function useMenuFilterPart(part) {\n if (useMenuFilterImpl() === null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `Base UI: <Menu.${part}> must be placed in a menu wrapped in <Menu.FilterProvider>. ` + 'It reads the filter query and the matching items from the provider, which a plain menu ' + 'does not have. Wrap the <Menu.Root> or <Menu.SubmenuRoot> it belongs to in ' + '<Menu.FilterProvider>. See https://base-ui.com/react/components/menu#filtering' : _formatErrorMessage(104, part));\n }\n}\nconst UNFILTERED = {\n visible: true,\n ref: null\n};\nfunction useUnfilteredItem() {\n return UNFILTERED;\n}\n\n/**\n * Registers an item part with the filter of the menu it belongs to. A plain menu's items are\n * always visible.\n */\nexport function useMenuFilterItem(props, forwardedRef, scope = 'root') {\n const impl = useMenuFilterImpl(scope);\n const useItem = (scope === 'submenu-trigger' ? impl?.useSubmenuTrigger : impl?.useItem) ?? useUnfilteredItem;\n const item = useItem({\n label: props.label,\n children: props.children,\n render: props.render\n });\n const ref = useMergedRefs(forwardedRef, item.ref);\n return {\n visible: item.visible,\n ref,\n props: item.props\n };\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const MenuCheckboxItemContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuCheckboxItemContext.displayName = \"MenuCheckboxItemContext\";\nexport function useMenuCheckboxItemContext() {\n const context = React.useContext(MenuCheckboxItemContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: MenuCheckboxItemContext is missing. MenuCheckboxItem parts must be placed within <Menu.CheckboxItem>.' : _formatErrorMessage(30));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { platform } from '@base-ui/utils/platform';\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { dispatchClickWithModifiers } from \"../../utils/dispatchClickWithModifiers.mjs\";\nfunction preventMouseDownDefault(event) {\n event.preventDefault();\n}\n/**\n * Returns common props shared by all menu item types.\n * This hook extracts the shared logic for id, role, tabIndex, and interaction handlers.\n */\nexport function useMenuItemCommonProps(params) {\n const {\n closeOnClick,\n highlighted,\n id,\n nodeId,\n store,\n typingRef,\n itemRef,\n itemMetadata\n } = params;\n const rootContext = useMenuRootContext();\n const contextMenuContext = useContextMenuRootContext(true);\n\n // A submenu trigger is an item of the parent menu's list, so it follows that list's focus model.\n const isSubmenuTrigger = itemMetadata.type === 'submenu-trigger';\n const virtualFocus = isSubmenuTrigger ? rootContext.parentVirtualFocus : rootContext.virtualFocus;\n const selectionStore = isSubmenuTrigger && rootContext.parent.type === 'menu' ? rootContext.parent.store : rootContext.store;\n const ariaSelected = selectionStore.useState('webkitAriaSelected', highlighted);\n const {\n events: menuEvents\n } = store.useState('floatingTreeRoot');\n const open = store.useState('open');\n const isContextMenu = contextMenuContext !== undefined;\n // `-1` rather than omitting it, which leaves links and buttons in the tab order.\n const tabIndex = !virtualFocus && open && highlighted ? 0 : -1;\n return React.useMemo(() => ({\n id,\n role: 'menuitem',\n tabIndex,\n 'aria-selected': ariaSelected,\n // Real focus stays on the input or list that owns virtual navigation.\n onMouseDown: virtualFocus ? preventMouseDownDefault : undefined,\n onKeyDown(event) {\n if (event.key === ' ' && typingRef?.current) {\n event.preventDefault();\n }\n },\n onMouseMove(event) {\n if (!nodeId) {\n return;\n }\n\n // Inform the floating tree that a menu item within this menu was hovered/moved over\n // so unrelated descendant submenus can be closed.\n menuEvents.emit('itemhover', {\n nodeId,\n target: event.currentTarget\n });\n },\n onClick(event) {\n if (closeOnClick) {\n menuEvents.emit('close', {\n domEvent: event.nativeEvent,\n reason: REASONS.itemPress\n });\n }\n },\n onMouseUp(event) {\n if (contextMenuContext) {\n const initialCursorPoint = contextMenuContext.initialCursorPointRef.current;\n contextMenuContext.initialCursorPointRef.current = null;\n if (isContextMenu && initialCursorPoint && Math.abs(event.clientX - initialCursorPoint.x) <= 1 && Math.abs(event.clientY - initialCursorPoint.y) <= 1) {\n return;\n }\n\n // On non-macOS platforms, this mouseup belongs to the right-click gesture\n // that opened the context menu, so it must not activate an item.\n if (isContextMenu && !platform.os.mac && event.button === 2) {\n return;\n }\n }\n if (itemRef.current && store.context.allowMouseUpTriggerRef.current && (!isContextMenu || event.button === 2)) {\n // This fires whenever the user clicks on the trigger, moves the cursor, and releases it over the item.\n // We trigger the click and override the `closeOnClick` preference to always close the menu.\n if (itemMetadata.type === 'regular-item') {\n // `detail: 1` and `pointerType: 'mouse'` mark this as a mouse-gesture click so\n // MenuRoot and FloatingFocusManager don't treat it as a keyboard activation.\n dispatchClickWithModifiers(itemRef.current, event, {\n detail: 1,\n pointerType: 'mouse'\n });\n }\n }\n }\n }), [closeOnClick, tabIndex, id, menuEvents, nodeId, store.context.allowMouseUpTriggerRef, typingRef, itemRef, contextMenuContext, isContextMenu, itemMetadata.type, ariaSelected, virtualFocus]);\n}","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { useMenuItemCommonProps } from \"./useMenuItemCommonProps.mjs\";\nexport const REGULAR_ITEM = {\n type: 'regular-item'\n};\nexport function useMenuItem(params) {\n const {\n closeOnClick,\n disabled,\n highlighted,\n id,\n store,\n typingRef = store.context.typingRef,\n nativeButton,\n itemMetadata,\n nodeId\n } = params;\n const itemRef = React.useRef(null);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n focusableWhenDisabled: true,\n native: nativeButton,\n composite: true\n });\n const commonProps = useMenuItemCommonProps({\n closeOnClick,\n highlighted,\n id,\n nodeId,\n store,\n typingRef,\n itemRef,\n itemMetadata\n });\n const getItemProps = React.useCallback(externalProps => {\n return mergeProps(commonProps, {\n onMouseEnter(event) {\n if (itemMetadata.type !== 'submenu-trigger') {\n return;\n }\n itemMetadata.setActive(event.nativeEvent);\n }\n }, externalProps, getButtonProps);\n }, [commonProps, getButtonProps, itemMetadata]);\n const mergedRef = useMergedRefs(itemRef, buttonRef);\n return React.useMemo(() => ({\n getItemProps,\n itemRef: mergedRef\n }), [getItemProps, mergedRef]);\n}","/**\n * Present when the menu checkbox item is checked.\n */\nexport const checked = 'data-checked';\n/**\n * Present when the menu checkbox item is not checked.\n */\nexport const unchecked = 'data-unchecked';\n/**\n * Present when the menu checkbox item is disabled.\n */\nexport const disabled = 'data-disabled';\n/**\n * Present when the menu checkbox item is highlighted.\n */\nexport const highlighted = 'data-highlighted';","import { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport * as MenuCheckboxItemDataAttributes from \"../checkbox-item/MenuCheckboxItemDataAttributes.mjs\";\nexport const itemMapping = {\n checked(value) {\n if (value) {\n return {\n [MenuCheckboxItemDataAttributes.checked]: ''\n };\n }\n return {\n [MenuCheckboxItemDataAttributes.unchecked]: ''\n };\n },\n ...transitionStatusMapping\n};","'use client';\n\nimport * as React from 'react';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { NOOP } from '@base-ui/utils/empty';\nimport { useMenuFilterItem } from \"../filter-root/MenuFilterContext.mjs\";\nimport { MenuCheckboxItemContext } from \"./MenuCheckboxItemContext.mjs\";\nimport { REGULAR_ITEM, useMenuItem } from \"../item/useMenuItem.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { itemMapping } from \"../utils/stateAttributesMapping.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst MenuCheckboxItemPlain = /*#__PURE__*/React.forwardRef(function MenuCheckboxItemPlain(componentProps, forwardedRef) {\n const {\n render,\n className,\n id: idProp,\n label,\n nativeButton = false,\n disabled: disabledProp = false,\n closeOnClick = false,\n checked = false,\n onCheckedChange,\n style,\n ...elementProps\n } = componentProps;\n const {\n store\n } = useMenuRootContext();\n const listItem = useCompositeListItem({\n guess: true,\n label\n });\n const id = useBaseUiId(idProp);\n const rootDisabled = store.useState('disabled');\n const highlighted = store.useState('isActive', listItem.index);\n const nodeId = store.useState('floatingNodeId');\n const itemProps = store.useState('itemProps');\n const disabled = disabledProp || rootDisabled;\n const {\n getItemProps,\n itemRef\n } = useMenuItem({\n closeOnClick,\n disabled,\n highlighted,\n id,\n store,\n nativeButton,\n nodeId,\n itemMetadata: REGULAR_ITEM\n });\n const state = React.useMemo(() => ({\n disabled,\n highlighted,\n checked\n }), [disabled, highlighted, checked]);\n function handleClick(event) {\n const details = createChangeEventDetails(REASONS.itemPress, event.nativeEvent, undefined, {\n preventUnmountOnClose: NOOP\n });\n onCheckedChange?.(!checked, details);\n }\n const element = useRenderElement('div', componentProps, {\n state,\n stateAttributesMapping: itemMapping,\n props: [itemProps, {\n role: 'menuitemcheckbox',\n 'aria-checked': checked,\n onClick: handleClick\n }, elementProps, getItemProps],\n ref: [itemRef, forwardedRef, listItem.ref]\n });\n return /*#__PURE__*/_jsx(MenuCheckboxItemContext.Provider, {\n value: state,\n children: element\n });\n});\n\n/**\n * A menu item that toggles a setting on or off.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") MenuCheckboxItemPlain.displayName = \"MenuCheckboxItemPlain\";\nexport const MenuCheckboxItem = /*#__PURE__*/React.forwardRef(function MenuCheckboxItem(props, forwardedRef) {\n const {\n checked: checkedProp,\n defaultChecked,\n onCheckedChange,\n ...plainProps\n } = props;\n\n // Owned above the element so an uncontrolled item keeps its state while a filter hides it.\n const [checked, setChecked] = useControlled({\n controlled: checkedProp,\n default: defaultChecked ?? false,\n name: 'MenuCheckboxItem',\n state: 'checked'\n });\n const filterItem = useMenuFilterItem(props, forwardedRef);\n function handleCheckedChange(nextChecked, eventDetails) {\n onCheckedChange?.(nextChecked, eventDetails);\n if (!eventDetails.isCanceled) {\n setChecked(nextChecked);\n }\n }\n if (!filterItem.visible) {\n return null;\n }\n return /*#__PURE__*/_jsx(MenuCheckboxItemPlain, {\n ...plainProps,\n checked: checked,\n onCheckedChange: handleCheckedChange,\n ref: filterItem.ref\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuCheckboxItem.displayName = \"MenuCheckboxItem\";","'use client';\n\nimport * as React from 'react';\nimport { useMenuCheckboxItemContext } from \"../checkbox-item/MenuCheckboxItemContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { itemMapping } from \"../utils/stateAttributesMapping.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\n\n/**\n * Indicates whether the checkbox item is ticked.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuCheckboxItemIndicator = /*#__PURE__*/React.forwardRef(function MenuCheckboxItemIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n keepMounted = false,\n ...elementProps\n } = componentProps;\n const item = useMenuCheckboxItemContext();\n const indicatorRef = React.useRef(null);\n const {\n transitionStatus,\n mounted,\n setMounted\n } = useTransitionStatus(item.checked);\n useOpenChangeComplete({\n batch: true,\n enabled: !item.checked,\n open: item.checked,\n ref: indicatorRef,\n onComplete() {\n if (!item.checked) {\n setMounted(false);\n }\n }\n });\n const state = {\n checked: item.checked,\n disabled: item.disabled,\n highlighted: item.highlighted,\n transitionStatus\n };\n const element = useRenderElement('span', componentProps, {\n state,\n ref: [forwardedRef, indicatorRef],\n stateAttributesMapping: itemMapping,\n props: {\n 'aria-hidden': true,\n ...elementProps\n },\n enabled: keepMounted || mounted\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") MenuCheckboxItemIndicator.displayName = \"MenuCheckboxItemIndicator\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const MenuGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuGroupContext.displayName = \"MenuGroupContext\";\nexport function useMenuGroupRootContext() {\n const context = React.useContext(MenuGroupContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: MenuGroupContext is missing. Menu group parts must be used within <Menu.Group> or <Menu.RadioGroup>.' : _formatErrorMessage(31));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useMenuFilterImpl } from \"../filter-root/MenuFilterContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { MenuGroupContext } from \"./MenuGroupContext.mjs\";\n\n/**\n * @internal\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MenuGroupPlain = /*#__PURE__*/React.forwardRef(function MenuGroupPlain(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const [labelId, setLabelId] = React.useState(undefined);\n const element = useRenderElement('div', componentProps, {\n ref: forwardedRef,\n props: {\n role: 'group',\n 'aria-labelledby': labelId,\n ...elementProps\n }\n });\n return /*#__PURE__*/_jsx(MenuGroupContext.Provider, {\n value: setLabelId,\n children: element\n });\n});\n\n/**\n * Groups related menu items with the corresponding label.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") MenuGroupPlain.displayName = \"MenuGroupPlain\";\nexport const MenuGroup = /*#__PURE__*/React.forwardRef(function MenuGroup(props, forwardedRef) {\n const Group = useMenuFilterImpl()?.Group ?? MenuGroupPlain;\n return /*#__PURE__*/_jsx(Group, {\n ...props,\n ref: forwardedRef\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuGroup.displayName = \"MenuGroup\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useMenuGroupRootContext } from \"../group/MenuGroupContext.mjs\";\n\n/**\n * An accessible label that is automatically associated with its parent group.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuGroupLabel = /*#__PURE__*/React.forwardRef(function MenuGroupLabel(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n id: idProp,\n ...elementProps\n } = componentProps;\n const id = useBaseUiId(idProp);\n const setLabelId = useMenuGroupRootContext();\n useIsoLayoutEffect(() => {\n setLabelId(id);\n return () => {\n setLabelId(currentId => currentId === id ? undefined : currentId);\n };\n }, [setLabelId, id]);\n return useRenderElement('div', componentProps, {\n ref: forwardedRef,\n props: {\n id,\n 'aria-hidden': true,\n ...elementProps\n }\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuGroupLabel.displayName = \"MenuGroupLabel\";","'use client';\n\nimport * as React from 'react';\nimport { useMenuFilterItem } from \"../filter-root/MenuFilterContext.mjs\";\nimport { REGULAR_ITEM, useMenuItem } from \"./useMenuItem.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst MenuItemPlain = /*#__PURE__*/React.forwardRef(function MenuItemPlain(componentProps, forwardedRef) {\n const {\n render,\n className,\n id: idProp,\n label,\n nativeButton = false,\n disabled: disabledProp = false,\n closeOnClick = true,\n style,\n ...elementProps\n } = componentProps;\n const {\n store\n } = useMenuRootContext();\n const listItem = useCompositeListItem({\n guess: true,\n label\n });\n const id = useBaseUiId(idProp);\n const rootDisabled = store.useState('disabled');\n const highlighted = store.useState('isActive', listItem.index);\n const nodeId = store.useState('floatingNodeId');\n const itemProps = store.useState('itemProps');\n const disabled = disabledProp || rootDisabled;\n const {\n getItemProps,\n itemRef\n } = useMenuItem({\n closeOnClick,\n disabled,\n highlighted,\n id,\n store,\n nativeButton,\n nodeId,\n itemMetadata: REGULAR_ITEM\n });\n const state = {\n disabled,\n highlighted\n };\n return useRenderElement('div', componentProps, {\n state,\n props: [itemProps, elementProps, getItemProps],\n ref: [itemRef, forwardedRef, listItem.ref]\n });\n});\n\n/**\n * An individual interactive item in the menu.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") MenuItemPlain.displayName = \"MenuItemPlain\";\nexport const MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, forwardedRef) {\n const filterItem = useMenuFilterItem(props, forwardedRef);\n if (!filterItem.visible) {\n return null;\n }\n return /*#__PURE__*/_jsx(MenuItemPlain, {\n ...props,\n ref: filterItem.ref\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuItem.displayName = \"MenuItem\";","'use client';\n\nimport * as React from 'react';\nimport { useMenuFilterItem } from \"../filter-root/MenuFilterContext.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { useMenuItemCommonProps } from \"../item/useMenuItemCommonProps.mjs\";\nimport { REGULAR_ITEM } from \"../item/useMenuItem.mjs\";\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst MenuLinkItemPlain = /*#__PURE__*/React.forwardRef(function MenuLinkItemPlain(componentProps, forwardedRef) {\n const {\n render,\n className,\n id: idProp,\n label,\n closeOnClick = false,\n style,\n ...elementProps\n } = componentProps;\n const {\n store\n } = useMenuRootContext();\n const linkRef = React.useRef(null);\n const listItem = useCompositeListItem({\n guess: true,\n label\n });\n const id = useBaseUiId(idProp);\n const highlighted = store.useState('isActive', listItem.index);\n const nodeId = store.useState('floatingNodeId');\n const itemProps = store.useState('itemProps');\n const typingRef = store.context.typingRef;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n native: false,\n composite: true\n });\n const commonProps = useMenuItemCommonProps({\n closeOnClick,\n highlighted,\n id,\n nodeId,\n store,\n typingRef,\n itemRef: linkRef,\n itemMetadata: REGULAR_ITEM\n });\n function getItemProps(externalProps) {\n return mergeProps(commonProps, externalProps, getButtonProps);\n }\n const state = {\n highlighted\n };\n return useRenderElement('a', componentProps, {\n state,\n props: [itemProps, elementProps, getItemProps],\n ref: [linkRef, buttonRef, forwardedRef, listItem.ref]\n });\n});\n\n/**\n * A link in the menu that can be used to navigate to a different page or section.\n * Renders an `<a>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") MenuLinkItemPlain.displayName = \"MenuLinkItemPlain\";\nexport const MenuLinkItem = /*#__PURE__*/React.forwardRef(function MenuLinkItem(props, forwardedRef) {\n // The public ref type stays `Element` as before; the rendered `<a>` is always an `HTMLElement`.\n const filterItem = useMenuFilterItem(props, forwardedRef);\n if (!filterItem.visible) {\n return null;\n }\n return /*#__PURE__*/_jsx(MenuLinkItemPlain, {\n ...props,\n ref: filterItem.ref\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuLinkItem.displayName = \"MenuLinkItem\";","'use client';\n\nimport * as React from 'react';\nexport const MenuSubmenuRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuSubmenuRootContext.displayName = \"MenuSubmenuRootContext\";\nexport function useMenuSubmenuRootContext() {\n return React.useContext(MenuSubmenuRootContext);\n}","import * as React from 'react';\nimport { unwrapLazyRenderProp } from \"./useRenderElement.mjs\";\n/**\n * Resolves an element's id using the same precedence as `useRenderElement`.\n * Returns `''` when the element renders with an explicitly empty id, which consumers must treat\n * as \"no id\" rather than falling back to the generated one, so ARIA relationships never reference\n * an id no element carries. Render callbacks are opaque and are expected to use the id passed to\n * them.\n *\n * @internal\n */\nexport function resolveRenderedId(props, fallbackId) {\n const render = unwrapLazyRenderProp(props.render);\n if (/*#__PURE__*/React.isValidElement(render)) {\n const renderProps = render.props;\n if (Object.hasOwn(renderProps, 'id')) {\n return renderProps.id ?? '';\n }\n }\n return props.id ?? fallbackId;\n}\n\n/**\n * Resolves the element's id and returns a ref that publishes it to the owner while mounted.\n * A generated fallback is never published as an override, so removing an explicit id lets the\n * element return to the generated one.\n *\n * @internal\n */\nexport function useRenderedId(props, defaultId, setId) {\n const id = resolveRenderedId(props, defaultId);\n const registeredId = id === defaultId ? undefined : id;\n const ref = React.useCallback(element => setId?.(element ? registeredId : undefined), [registeredId, setId]);\n return [id, ref];\n}","import * as React from 'react';\nimport { unwrapLazyRenderProp } from \"./useRenderElement.mjs\";\nexport function resolvePopupLabel(props, activeTriggerElement, activeTriggerId) {\n const render = unwrapLazyRenderProp(props.render);\n const renderedElementProps = /*#__PURE__*/React.isValidElement(render) ? render.props : undefined;\n const ariaLabel = props['aria-label'] ?? renderedElementProps?.['aria-label'];\n let ariaLabelledBy = props['aria-labelledby'] ?? renderedElementProps?.['aria-labelledby'];\n if (ariaLabelledBy == null && !ariaLabel) {\n // Prefer the element's live id: a `render` element's own id wins over the registered one.\n ariaLabelledBy = activeTriggerElement ? activeTriggerElement.id || undefined : activeTriggerId || undefined;\n }\n return ariaLabelledBy;\n}","'use client';\n\nimport * as React from 'react';\nimport { FloatingFocusManager, useHoverFloatingInteraction } from \"../../floating-ui-react/index.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { useMenuPositionerContext } from \"../positioner/MenuPositionerContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { popupTransitionStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useToolbarRootContext } from \"../../toolbar/root/ToolbarRootContext.mjs\";\nimport { COMPOSITE_KEYS } from \"../../internals/composite/composite.mjs\";\nimport { getDisabledMountTransitionStyles } from \"../../internals/getDisabledMountTransitionStyles.mjs\";\nimport { useMenuSubmenuRootContext } from \"../submenu-root/MenuSubmenuRootContext.mjs\";\nimport { useRenderedId } from \"../../internals/resolveRenderedId.mjs\";\nimport { resolvePopupLabel } from \"../../internals/resolvePopupLabel.mjs\";\nimport { MenuFilterImplContext, useMenuFilterImpl } from \"../filter-root/MenuFilterContext.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * @internal\n */\nexport const MenuPopupPlain = /*#__PURE__*/React.forwardRef(function MenuPopupPlain(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n finalFocus,\n id: idProp,\n initialFocus: initialFocusProp,\n ...elementProps\n } = componentProps;\n const {\n store,\n defaultFloatingId,\n setRenderedFloatingId,\n virtualFocus,\n orientation\n } = useMenuRootContext();\n const inheritedSubmenuRootContext = useMenuSubmenuRootContext();\n const {\n side,\n align\n } = useMenuPositionerContext();\n const insideToolbar = useToolbarRootContext(true) != null;\n const open = store.useState('open');\n const transitionStatus = store.useState('transitionStatus');\n const popupProps = store.useState('popupProps');\n const mounted = store.useState('mounted');\n const instantType = store.useState('instantType');\n const activeTriggerElement = store.useState('activeTriggerElement');\n const parent = store.useState('parent');\n const lastOpenChangeReason = store.useState('lastOpenChangeReason');\n const rootId = store.useState('rootId');\n const floatingContext = store.useState('floatingRootContext');\n const floatingTreeRoot = store.useState('floatingTreeRoot');\n const closeDelay = store.useState('closeDelay');\n const hoverEnabled = store.useState('hoverEnabled');\n const disabled = store.useState('disabled');\n const openMethod = store.useState('openMethod');\n const activeTriggerId = store.useState('activeTriggerId');\n const listElement = store.useState('listElement');\n const [id, registerIdRef] = useRenderedId(componentProps, defaultFloatingId, setRenderedFloatingId);\n const ariaLabelledBy = resolvePopupLabel(componentProps, activeTriggerElement, activeTriggerId);\n\n // A dialog's menu can render under a submenu provider; only the actual submenu inherits it.\n const submenuRootContext = parent.type === 'menu' ? inheritedSubmenuRootContext : undefined;\n const isContextMenu = parent.type === 'context-menu';\n let initialFocus = initialFocusProp ?? parent.type !== 'menu';\n if (initialFocusProp === undefined && listElement && parent.type !== 'menu') {\n initialFocus = () => {\n // A keyboard or screen reader open highlights an item, which list navigation focuses.\n if (store.state.activeIndex !== null) {\n return false;\n }\n // The list holds the `menu` role, so a pointer open lands focus on it rather than on the\n // presentational popup.\n return listElement;\n };\n }\n useOpenChangeComplete({\n open,\n ref: store.context.popupRef,\n onComplete() {\n if (open) {\n store.context.onOpenChangeComplete?.(true);\n }\n }\n });\n React.useEffect(() => {\n function handleClose(event) {\n store.setOpen(false, createChangeEventDetails(event.reason, event.domEvent));\n }\n floatingTreeRoot.events.on('close', handleClose);\n return () => {\n floatingTreeRoot.events.off('close', handleClose);\n };\n }, [floatingTreeRoot.events, store]);\n useHoverFloatingInteraction(floatingContext, {\n enabled: hoverEnabled && !disabled && !isContextMenu && parent.type !== 'menubar',\n closeDelay\n });\n const setPopupElement = store.useStateSetter('popupElement');\n\n // Only a menu under a filter root bundles the handoff to a filterable parent. Whether one is\n // above is fixed for a mounted popup, so the hook doesn't change between renders.\n const useParentHandoff = React.useContext(MenuFilterImplContext)?.useParentHandoff ?? useNoParentHandoff;\n const {\n parentVirtualFocusRef,\n handleFocus\n } = useParentHandoff(store, parent, open, virtualFocus);\n const state = {\n transitionStatus,\n side,\n align,\n open,\n nested: parent.type === 'menu',\n instant: instantType\n };\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, store.context.popupRef, setPopupElement, registerIdRef],\n stateAttributesMapping: popupTransitionStateMapping,\n props: [popupProps, {\n id,\n // A rendered `Menu.List` carries the `menu` semantics instead.\n ...(listElement ? {\n role: 'presentation'\n } : {\n role: 'menu',\n // `menu` is implicitly vertical, so only the non-default value needs to be\n // rendered.\n 'aria-orientation': orientation === 'horizontal' ? 'horizontal' : undefined,\n 'aria-labelledby': ariaLabelledBy\n }),\n onKeyDown(event) {\n submenuRootContext?.onPopupKeyDown?.(event);\n if (insideToolbar && COMPOSITE_KEYS.has(event.key)) {\n event.stopPropagation();\n }\n },\n onFocus: handleFocus\n }, getDisabledMountTransitionStyles(transitionStatus), elementProps, {\n 'data-rootownerid': rootId\n }]\n });\n let returnFocus = parent.type === undefined || isContextMenu;\n if (activeTriggerElement || parent.type === 'menubar' && lastOpenChangeReason !== REASONS.outsidePress) {\n returnFocus = true;\n }\n\n // Internal defaults rather than consumer targets, so focus that already moved is respected.\n const dynamicReturnFocus = submenuRootContext?.getReturnElement ?? parentVirtualFocusRef;\n return /*#__PURE__*/_jsx(FloatingFocusManager, {\n context: floatingContext,\n openInteractionType: openMethod,\n modal: isContextMenu,\n disabled: !mounted,\n returnFocus: finalFocus ?? dynamicReturnFocus ?? returnFocus,\n explicitReturnFocus: finalFocus === undefined && dynamicReturnFocus ? false : undefined,\n initialFocus: initialFocus,\n restoreFocus: true,\n getInsideElements: parent.type === undefined ? () => [store.context.beforeTriggerFocusGuardRef.current] : undefined,\n externalTree: parent.type !== 'menubar' ? floatingTreeRoot : undefined,\n previousFocusableElement: activeTriggerElement,\n nextFocusableElement: parent.type === undefined ? store.context.triggerFocusTargetRef : undefined,\n beforeContentFocusGuardRef: store.context.beforeContentFocusGuardRef,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuPopupPlain.displayName = \"MenuPopupPlain\";\nconst NO_PARENT_HANDOFF = {\n parentVirtualFocusRef: undefined,\n handleFocus: undefined\n};\nfunction useNoParentHandoff() {\n return NO_PARENT_HANDOFF;\n}\n\n/**\n * A container for the menu items.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuPopup = /*#__PURE__*/React.forwardRef(function MenuPopup(props, forwardedRef) {\n const Popup = useMenuFilterImpl()?.Popup ?? MenuPopupPlain;\n return /*#__PURE__*/_jsx(Popup, {\n ...props,\n ref: forwardedRef\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuPopup.displayName = \"MenuPopup\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const MenuPortalContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuPortalContext.displayName = \"MenuPortalContext\";\nexport function useMenuPortalContext() {\n const value = React.useContext(MenuPortalContext);\n if (value === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Menu.Portal> is missing.' : _formatErrorMessage(32));\n }\n return value;\n}","'use client';\n\nimport * as React from 'react';\nimport { FloatingPortal } from \"../../floating-ui-react/index.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { MenuPortalContext } from \"./MenuPortalContext.mjs\";\n\n/**\n * A portal element that moves the popup to a different part of the DOM.\n * By default, the portal element is appended to `<body>`.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MenuPortal = /*#__PURE__*/React.forwardRef(function MenuPortal(props, forwardedRef) {\n const {\n keepMounted = false,\n ...portalProps\n } = props;\n const {\n store,\n parent\n } = useMenuRootContext();\n const mounted = store.useState('mounted');\n const shouldRender = mounted || keepMounted;\n if (!shouldRender) {\n return null;\n }\n\n // The hidden `aria-owns` owner renders here, in the React tree, so the role must be decided by\n // where this portal sits, not by the active trigger. `parent` comes from context (the `Menu.Root`\n // position), unlike the store's `parent`, which a detached trigger overwrites with its own.\n const portalOwnerRole = parent.type === 'menu' || parent.type === 'menubar' ? 'group' : undefined;\n return /*#__PURE__*/_jsx(MenuPortalContext.Provider, {\n value: keepMounted,\n children: /*#__PURE__*/_jsx(FloatingPortal, {\n ref: forwardedRef,\n ...portalProps,\n portalOwnerRole: portalOwnerRole\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuPortal.displayName = \"MenuPortal\";","'use client';\n\nimport * as React from 'react';\nimport { inertValue } from '@base-ui/utils/inertValue';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { FloatingNode } from \"../../floating-ui-react/index.mjs\";\nimport { MenuPositionerContext } from \"./MenuPositionerContext.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { useAnchorPositioning } from \"../../internals/useAnchorPositioning.mjs\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.mjs\";\nimport { InternalBackdrop } from \"../../utils/InternalBackdrop.mjs\";\nimport { useMenuPortalContext } from \"../portal/MenuPortalContext.mjs\";\nimport { DROPDOWN_COLLISION_AVOIDANCE, POPUP_COLLISION_AVOIDANCE } from \"../../internals/constants.mjs\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useTriggerSwitchTransition } from \"../../internals/useTriggerSwitchTransition.mjs\";\nimport { usePositioner } from \"../../utils/usePositioner.mjs\";\nimport { useAnchoredPopupScrollLock } from \"../../utils/useAnchoredPopupScrollLock.mjs\";\n\n/**\n * Positions the menu popup against the trigger.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const MenuPositioner = /*#__PURE__*/React.forwardRef(function MenuPositioner(componentProps, forwardedRef) {\n const {\n anchor: anchorProp,\n positionMethod: positionMethodProp = 'absolute',\n className,\n render,\n side,\n align: alignProp,\n sideOffset: sideOffsetProp = 0,\n alignOffset: alignOffsetProp = 0,\n collisionBoundary = 'clipping-ancestors',\n collisionPadding = 5,\n arrowPadding = 5,\n sticky = false,\n disableAnchorTracking = false,\n collisionAvoidance: collisionAvoidanceProp = DROPDOWN_COLLISION_AVOIDANCE,\n style,\n ...elementProps\n } = componentProps;\n const {\n store,\n virtualFocus,\n syncHighlightedItem\n } = useMenuRootContext();\n const keepMounted = useMenuPortalContext();\n const contextMenuContext = useContextMenuRootContext(true);\n const parent = store.useState('parent');\n const floatingRootContext = store.useState('floatingRootContext');\n const floatingTreeRoot = store.useState('floatingTreeRoot');\n const mounted = store.useState('mounted');\n const open = store.useState('open');\n const modal = store.useState('modal');\n const openMethod = store.useState('openMethod');\n const triggerElement = store.useState('activeTriggerElement');\n const transitionStatus = store.useState('transitionStatus');\n const positionerElement = store.useState('positionerElement');\n const instantType = store.useState('instantType');\n const adaptiveOrigin = store.useState('adaptiveOrigin');\n const lastOpenChangeReason = store.useState('lastOpenChangeReason');\n const floatingNodeId = store.useState('floatingNodeId');\n const floatingParentNodeId = store.useState('floatingParentNodeId');\n const domReference = floatingRootContext.useState('domReferenceElement');\n let anchor = anchorProp;\n let sideOffset = sideOffsetProp;\n let alignOffset = alignOffsetProp;\n let align = alignProp;\n let collisionAvoidance = collisionAvoidanceProp;\n if (parent.type === 'context-menu') {\n anchor = anchorProp ?? parent.context?.anchor;\n align = align ?? 'start';\n if (!side && align !== 'center') {\n alignOffset = componentProps.alignOffset ?? 2;\n sideOffset = componentProps.sideOffset ?? -5;\n }\n }\n let computedSide = side;\n let computedAlign = align;\n if (parent.type === 'menu') {\n computedSide = computedSide ?? 'inline-end';\n computedAlign = computedAlign ?? 'start';\n collisionAvoidance = componentProps.collisionAvoidance ?? POPUP_COLLISION_AVOIDANCE;\n } else if (parent.type === 'menubar') {\n computedSide = computedSide ?? (parent.context.orientation === 'vertical' ? 'inline-end' : 'bottom');\n computedAlign = computedAlign ?? 'start';\n }\n const contextMenu = parent.type === 'context-menu';\n const positioner = useAnchorPositioning({\n anchor,\n floatingRootContext,\n positionMethod: contextMenuContext ? 'fixed' : positionMethodProp,\n mounted,\n side: computedSide,\n sideOffset,\n align: computedAlign,\n alignOffset,\n arrowPadding: contextMenu ? 0 : arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n nodeId: floatingNodeId,\n keepMounted,\n disableAnchorTracking,\n collisionAvoidance,\n shift: contextMenu ? {\n crossAxis: !('side' in collisionAvoidance && collisionAvoidance.side === 'flip'),\n rootBoundary: 'layoutViewport'\n } : undefined,\n externalTree: floatingTreeRoot,\n adaptiveOrigin,\n lazyFlip: virtualFocus ? 'placement' : false\n });\n React.useEffect(() => {\n function onMenuOpenChange(details) {\n if (details.open) {\n if (details.parentNodeId === floatingNodeId) {\n store.set('hoverEnabled', false);\n }\n if (details.nodeId !== floatingNodeId && details.parentNodeId === store.select('floatingParentNodeId')) {\n store.setOpen(false, createChangeEventDetails(REASONS.siblingOpen));\n }\n }\n }\n floatingTreeRoot.events.on('menuopenchange', onMenuOpenChange);\n return () => {\n floatingTreeRoot.events.off('menuopenchange', onMenuOpenChange);\n };\n }, [store, floatingTreeRoot.events, floatingNodeId]);\n React.useEffect(() => {\n if (store.select('floatingParentNodeId') == null) {\n return undefined;\n }\n function onParentClose(details) {\n if (details.open || details.nodeId !== store.select('floatingParentNodeId')) {\n return;\n }\n const reason = details.reason ?? REASONS.siblingOpen;\n store.setOpen(false, createChangeEventDetails(reason));\n }\n floatingTreeRoot.events.on('menuopenchange', onParentClose);\n return () => {\n floatingTreeRoot.events.off('menuopenchange', onParentClose);\n };\n }, [floatingTreeRoot.events, store]);\n const closeTimeout = useTimeout();\n\n // Clear pending close timeout when the menu closes.\n React.useEffect(() => {\n if (!open) {\n closeTimeout.clear();\n }\n }, [open, closeTimeout]);\n\n // Close unrelated child submenus when hovering a different item in the parent menu.\n React.useEffect(() => {\n function onItemHover(event) {\n // If an item within our parent menu is hovered, and this menu's trigger is not that item,\n // close this submenu. This ensures hovering a different item in the parent closes other branches.\n if (!open || event.nodeId !== store.select('floatingParentNodeId')) {\n return;\n }\n if (event.target && triggerElement && triggerElement !== event.target) {\n const delay = store.select('closeDelay');\n if (delay > 0) {\n if (!closeTimeout.isStarted()) {\n closeTimeout.start(delay, () => {\n store.setOpen(false, createChangeEventDetails(REASONS.siblingOpen));\n });\n }\n } else {\n store.setOpen(false, createChangeEventDetails(REASONS.siblingOpen));\n }\n } else {\n // User re-hovered the submenu trigger, cancel pending close.\n closeTimeout.clear();\n }\n }\n floatingTreeRoot.events.on('itemhover', onItemHover);\n return () => {\n floatingTreeRoot.events.off('itemhover', onItemHover);\n };\n }, [floatingTreeRoot.events, open, triggerElement, store, closeTimeout]);\n React.useEffect(() => {\n const eventDetails = {\n open,\n nodeId: floatingNodeId,\n parentNodeId: floatingParentNodeId,\n reason: store.select('lastOpenChangeReason')\n };\n floatingTreeRoot.events.emit('menuopenchange', eventDetails);\n }, [floatingTreeRoot.events, open, store, floatingNodeId, floatingParentNodeId]);\n useTriggerSwitchTransition({\n store,\n domReference,\n positionerElement,\n open\n });\n const state = {\n open,\n side: positioner.side,\n align: positioner.align,\n anchorHidden: positioner.anchorHidden,\n nested: parent.type === 'menu',\n instant: instantType\n };\n const menubarModal = parent.type === 'menubar' && parent.context.modal;\n const popupModal = modal && lastOpenChangeReason !== REASONS.triggerHover;\n useAnchoredPopupScrollLock(open && (menubarModal || popupModal), openMethod === 'touch', positionerElement, triggerElement);\n const element = usePositioner(componentProps, state, {\n styles: positioner.positionerStyles,\n transitionStatus,\n props: elementProps,\n refs: [forwardedRef, store.useStateSetter('positionerElement')],\n hidden: !mounted,\n inert: !open\n });\n const shouldRenderBackdrop = mounted && parent.type !== 'menu' && (parent.type !== 'menubar' && modal && lastOpenChangeReason !== REASONS.triggerHover || parent.type === 'menubar' && parent.context.modal);\n\n // cuts a hole in the backdrop to allow pointer interaction with the menubar or dropdown menu trigger element\n let backdropCutout = null;\n if (parent.type === 'menubar') {\n backdropCutout = parent.context.contentElement;\n } else if (parent.type === undefined) {\n backdropCutout = triggerElement;\n }\n return /*#__PURE__*/_jsxs(MenuPositionerContext.Provider, {\n value: positioner,\n children: [shouldRenderBackdrop && /*#__PURE__*/_jsx(InternalBackdrop, {\n ref: parent.type === 'context-menu' || parent.type === 'nested-context-menu' ? parent.context.internalBackdropRef : null,\n inert: inertValue(!open),\n cutout: backdropCutout\n }), /*#__PURE__*/_jsx(FloatingNode, {\n id: floatingNodeId,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: store.context.itemDomElements,\n labelsRef: store.context.itemLabels,\n onMapChange: syncHighlightedItem,\n children: element\n })\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuPositioner.displayName = \"MenuPositioner\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const MenuRadioGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuRadioGroupContext.displayName = \"MenuRadioGroupContext\";\nexport function useMenuRadioGroupContext() {\n const context = React.useContext(MenuRadioGroupContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: MenuRadioGroupContext is missing. MenuRadioGroup parts must be placed within <Menu.RadioGroup>.' : _formatErrorMessage(34));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useMenuFilterImpl } from \"../filter-root/MenuFilterContext.mjs\";\nimport { MenuRadioGroupContext } from \"./MenuRadioGroupContext.mjs\";\nimport { MenuGroupContext } from \"../group/MenuGroupContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * @internal\n */\nexport const MenuRadioGroupPlain = /*#__PURE__*/React.forwardRef(function MenuRadioGroupPlain(componentProps, forwardedRef) {\n const {\n render,\n className,\n value: valueProp,\n defaultValue,\n onValueChange: onValueChangeProp,\n disabled = false,\n style,\n 'aria-labelledby': ariaLabelledByProp,\n ...elementProps\n } = componentProps;\n const [labelId, setLabelId] = React.useState(undefined);\n const [value, setValueUnwrapped] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: 'MenuRadioGroup'\n });\n const setValue = useStableCallback((newValue, eventDetails) => {\n onValueChangeProp?.(newValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setValueUnwrapped(newValue);\n });\n const state = {\n disabled\n };\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: {\n role: 'group',\n 'aria-labelledby': ariaLabelledByProp ?? labelId,\n 'aria-disabled': disabled || undefined,\n ...elementProps\n }\n });\n const context = React.useMemo(() => ({\n value,\n setValue,\n disabled\n }), [value, setValue, disabled]);\n return /*#__PURE__*/_jsx(MenuGroupContext.Provider, {\n value: setLabelId,\n children: /*#__PURE__*/_jsx(MenuRadioGroupContext.Provider, {\n value: context,\n children: element\n })\n });\n});\n\n/**\n * Groups related radio items.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") MenuRadioGroupPlain.displayName = \"MenuRadioGroupPlain\";\nexport const MenuRadioGroup = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function MenuRadioGroup(props, forwardedRef) {\n const RadioGroup = useMenuFilterImpl()?.RadioGroup ?? MenuRadioGroupPlain;\n return /*#__PURE__*/_jsx(RadioGroup, {\n ...props,\n ref: forwardedRef\n });\n}));\nif (process.env.NODE_ENV !== \"production\") MenuRadioGroup.displayName = \"MenuRadioGroup\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const MenuRadioItemContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") MenuRadioItemContext.displayName = \"MenuRadioItemContext\";\nexport function useMenuRadioItemContext() {\n const context = React.useContext(MenuRadioItemContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: MenuRadioItemContext is missing. MenuRadioItem parts must be placed within <Menu.RadioItem>.' : _formatErrorMessage(35));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from '@base-ui/utils/empty';\nimport { useMenuFilterItem } from \"../filter-root/MenuFilterContext.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useMenuRadioGroupContext } from \"../radio-group/MenuRadioGroupContext.mjs\";\nimport { MenuRadioItemContext } from \"./MenuRadioItemContext.mjs\";\nimport { itemMapping } from \"../utils/stateAttributesMapping.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { REGULAR_ITEM, useMenuItem } from \"../item/useMenuItem.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst MenuRadioItemPlain = /*#__PURE__*/React.forwardRef(function MenuRadioItemPlain(componentProps, forwardedRef) {\n const {\n render,\n className,\n id: idProp,\n label,\n nativeButton = false,\n disabled: disabledProp = false,\n closeOnClick = false,\n value,\n style,\n ...elementProps\n } = componentProps;\n const {\n store\n } = useMenuRootContext();\n const {\n value: selectedValue,\n setValue: setSelectedValue,\n disabled: groupDisabled\n } = useMenuRadioGroupContext();\n const listItem = useCompositeListItem({\n guess: true,\n label\n });\n const id = useBaseUiId(idProp);\n const highlighted = store.useState('isActive', listItem.index);\n const nodeId = store.useState('floatingNodeId');\n const itemProps = store.useState('itemProps');\n const rootDisabled = store.useState('disabled');\n const disabled = disabledProp || groupDisabled || rootDisabled;\n const checked = selectedValue === value;\n const {\n getItemProps,\n itemRef\n } = useMenuItem({\n closeOnClick,\n disabled,\n highlighted,\n id,\n store,\n nativeButton,\n nodeId,\n itemMetadata: REGULAR_ITEM\n });\n const state = React.useMemo(() => ({\n disabled,\n highlighted,\n checked\n }), [disabled, highlighted, checked]);\n function handleClick(event) {\n const details = createChangeEventDetails(REASONS.itemPress, event.nativeEvent, undefined, {\n preventUnmountOnClose: NOOP\n });\n setSelectedValue(value, details);\n }\n const element = useRenderElement('div', componentProps, {\n state,\n stateAttributesMapping: itemMapping,\n props: [itemProps, {\n role: 'menuitemradio',\n 'aria-checked': checked,\n onClick: handleClick\n }, elementProps, getItemProps],\n ref: [itemRef, forwardedRef, listItem.ref]\n });\n return /*#__PURE__*/_jsx(MenuRadioItemContext.Provider, {\n value: state,\n children: element\n });\n});\n\n/**\n * A menu item that works like a radio button in a given group.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") MenuRadioItemPlain.displayName = \"MenuRadioItemPlain\";\nexport const MenuRadioItem = /*#__PURE__*/React.forwardRef(function MenuRadioItem(props, forwardedRef) {\n const filterItem = useMenuFilterItem(props, forwardedRef);\n if (!filterItem.visible) {\n return null;\n }\n return /*#__PURE__*/_jsx(MenuRadioItemPlain, {\n ...props,\n ref: filterItem.ref\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuRadioItem.displayName = \"MenuRadioItem\";","'use client';\n\nimport * as React from 'react';\nimport { useMenuRadioItemContext } from \"../radio-item/MenuRadioItemContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { itemMapping } from \"../utils/stateAttributesMapping.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\n\n/**\n * Indicates whether the radio item is selected.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuRadioItemIndicator = /*#__PURE__*/React.forwardRef(function MenuRadioItemIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n keepMounted = false,\n ...elementProps\n } = componentProps;\n const item = useMenuRadioItemContext();\n const indicatorRef = React.useRef(null);\n const {\n transitionStatus,\n mounted,\n setMounted\n } = useTransitionStatus(item.checked);\n useOpenChangeComplete({\n batch: true,\n enabled: !item.checked,\n open: item.checked,\n ref: indicatorRef,\n onComplete() {\n if (!item.checked) {\n setMounted(false);\n }\n }\n });\n const state = {\n checked: item.checked,\n disabled: item.disabled,\n highlighted: item.highlighted,\n transitionStatus\n };\n const element = useRenderElement('span', componentProps, {\n state,\n stateAttributesMapping: itemMapping,\n ref: [forwardedRef, indicatorRef],\n props: {\n 'aria-hidden': true,\n ...elementProps\n },\n enabled: keepMounted || mounted\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") MenuRadioItemIndicator.displayName = \"MenuRadioItemIndicator\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const MenubarContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") MenubarContext.displayName = \"MenubarContext\";\nexport function useMenubarContext(optional) {\n const context = React.useContext(MenubarContext);\n if (context === null && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: MenubarContext is missing. Menubar parts must be placed within <Menubar>.' : _formatErrorMessage(5));\n }\n return context;\n}","import * as React from 'react';\nimport { ReactStore } from '@base-ui/utils/store';\nimport { EMPTY_OBJECT, NOOP } from '@base-ui/utils/empty';\nimport { platform } from '@base-ui/utils/platform';\nimport { FloatingTreeStore } from \"../../floating-ui-react/components/FloatingTreeStore.mjs\";\nimport { NullStore } from \"../../utils/NullStore.mjs\";\nimport { createInitialPopupStoreState, popupStoreSelectors, PopupTriggerMap } from \"../../utils/popups/index.mjs\";\nconst selectors = {\n ...popupStoreSelectors,\n disabled: state => state.parent.type === 'menubar' ? state.parent.context.disabled || state.disabled : state.disabled,\n modal: state => (state.parent.type === undefined || state.parent.type === 'context-menu') && (state.modal ?? true),\n openMethod: state => state.openMethod,\n keyboardOpen: state => state.keyboardOpen,\n allowMouseEnter: state => state.allowMouseEnter,\n highlightItemOnHover: state => state.highlightItemOnHover,\n parent: state => state.parent,\n rootId: state => {\n if (state.parent.type === 'menu') {\n return state.parent.store.select('rootId');\n }\n return state.parent.type !== undefined ? state.parent.context.rootId : state.rootId;\n },\n activeIndex: state => state.activeIndex,\n listElement: state => state.listElement,\n /** The trigger's `aria-controls`: the list when one holds the `menu` role, else the popup. */\n triggerControlsId: (state, triggerId) => {\n const popupId = popupStoreSelectors.triggerPopupId(state, triggerId);\n return popupId ? state.listElement?.id || popupId : undefined;\n },\n filterTriggerProps: state => state.filterTriggerProps,\n inputProps: state => state.inputProps,\n // `aria-selected` is invalid on `menuitem`, but Safari VoiceOver needs it for arrow-key\n // navigation. Limit it to WebKit while the input has focus so normal VoiceOver navigation\n // does not encounter the invalid attribute.\n webkitAriaSelected: (state, highlighted) => platform.engine.webkit && state.inputFocused && highlighted ? true : undefined,\n highlightedItemId: state => state.highlightedItem?.id || undefined,\n isActive: (state, itemIndex) => state.activeIndex === itemIndex,\n hoverEnabled: state => state.hoverEnabled,\n // `trigger-change` describes a popup moving between triggers, which only has\n // meaning while it is open. Dropping it once closed keeps a late or stale\n // restoration from marking a closing popup instant and skipping its exit\n // transition, including on close paths that never reach `setOpen` — a\n // controlled consumer committing `open={false}` goes straight through the prop.\n instantType: state => state.instantType === 'trigger-change' && !popupStoreSelectors.open(state) ? undefined : state.instantType,\n lastOpenChangeReason: state => state.openChangeReason,\n floatingTreeRoot: state => {\n if (state.parent.type === 'menu') {\n return state.parent.store.select('floatingTreeRoot');\n }\n return state.floatingTreeRoot;\n },\n floatingNodeId: state => state.floatingNodeId,\n floatingParentNodeId: state => state.floatingParentNodeId,\n itemProps: state => state.itemProps,\n closeDelay: state => state.closeDelay,\n adaptiveOrigin: state => state.adaptiveOrigin,\n keyboardEventRelay: state => {\n if (state.keyboardEventRelay) {\n return state.keyboardEventRelay;\n }\n if (state.parent.type === 'menu') {\n return state.parent.store.select('keyboardEventRelay');\n }\n return undefined;\n }\n};\n\n/**\n * The store view that detached handle-backed triggers read from. Both the real `MenuStore` and the\n * inert fallback store satisfy it, so a trigger can read from whichever store the handle currently\n * exposes. Narrowed to the members a trigger actually uses — the trigger-data members plus `setOpen`\n * (called by the focus guards) — so the exposed surface can't bypass the open-change pipeline; on\n * the detached fallback store every one of these mutations is a no-op.\n */\n\nexport class MenuStore extends ReactStore {\n constructor(initialState, floatingId, nested = false) {\n const triggerElements = new PopupTriggerMap();\n const state = createInitialState(triggerElements, floatingId, nested, initialState);\n super(state, createInitialContext(triggerElements), selectors);\n\n // Share the mouse-up trigger ref of the parent menu, if any. This observes the store's own\n // state, so the subscription lives exactly as long as the store and needs no cleanup.\n void this.observe('parent', parent => {\n if (parent.type === 'menu') {\n this.context.allowMouseUpTriggerRef = parent.store.context.allowMouseUpTriggerRef;\n } else if (parent.type !== undefined) {\n this.context.allowMouseUpTriggerRef = parent.context.allowMouseUpTriggerRef;\n }\n });\n }\n\n /**\n * Propagates changes of the parent menu's shared tree state to this store's subscribers.\n * The owning `Menu.Root` calls it from an effect so the parent store subscription is released\n * when the submenu unmounts.\n * @returns A function that removes the parent store subscription.\n */\n subscribeToParentMenu() {\n const parent = this.state.parent;\n if (parent.type !== 'menu') {\n return undefined;\n }\n let rootId = parent.store.select('rootId');\n let floatingTreeRoot = parent.store.select('floatingTreeRoot');\n let keyboardEventRelay = parent.store.select('keyboardEventRelay');\n return parent.store.subscribe(() => {\n const nextRootId = parent.store.select('rootId');\n const nextFloatingTreeRoot = parent.store.select('floatingTreeRoot');\n const nextKeyboardEventRelay = parent.store.select('keyboardEventRelay');\n if (rootId === nextRootId && floatingTreeRoot === nextFloatingTreeRoot && keyboardEventRelay === nextKeyboardEventRelay) {\n return;\n }\n rootId = nextRootId;\n floatingTreeRoot = nextFloatingTreeRoot;\n keyboardEventRelay = nextKeyboardEventRelay;\n this.notifyAll();\n });\n }\n setOpen(open, eventDetails) {\n this.state.floatingRootContext.context.events.emit('setOpen', {\n open,\n eventDetails\n });\n }\n setActiveIndex(activeIndex, reason, event) {\n // Only a write that changes the index is reported. Tagging a no-op, or a write back to the\n // reported item before the change commits, would let a later registry-driven re-emit report\n // this reason instead of `none`.\n if (this.state.activeIndex !== activeIndex) {\n const item = activeIndex === null ? undefined : this.context.itemDomElements.current[activeIndex];\n const isWriteBack = item === this.context.reportedItem;\n this.context.highlightReason = isWriteBack ? 'none' : reason;\n this.context.highlightEvent = isWriteBack ? undefined : event;\n }\n this.set('activeIndex', activeIndex);\n }\n highlightItem(element, reason, event) {\n const index = this.context.itemDomElements.current.indexOf(element);\n if (index > -1) {\n this.setActiveIndex(index, reason, event);\n }\n }\n}\n\n/**\n * Creates the inert fallback store used by detached handle-backed triggers while no `Menu.Root` is\n * attached. It preserves a menu-specific trigger registry in context so detached triggers can\n * register before migrating to the live root store. `setOpen` is a no-op (matching the inert\n * reads/writes of `NullStore`), so a trigger can hand the store to focus-guard helpers that expect\n * `setOpen` without it ever taking effect while detached.\n */\nexport function createNullMenuStore() {\n const triggerElements = new PopupTriggerMap();\n const store = new NullStore(Object.freeze(createInitialState(triggerElements)), Object.freeze(createInitialContext(triggerElements)), selectors);\n return Object.assign(store, {\n setOpen: NOOP\n });\n}\nfunction createInitialContext(triggerElements) {\n return {\n positionerRef: /*#__PURE__*/React.createRef(),\n popupRef: /*#__PURE__*/React.createRef(),\n typingRef: {\n current: false\n },\n itemDomElements: {\n current: []\n },\n itemLabels: {\n current: []\n },\n highlightReason: 'none',\n highlightEvent: undefined,\n reportedItem: undefined,\n allowMouseUpTriggerRef: {\n current: false\n },\n virtualFocusRef: undefined,\n triggerFocusTargetRef: /*#__PURE__*/React.createRef(),\n beforeTriggerFocusGuardRef: /*#__PURE__*/React.createRef(),\n beforeContentFocusGuardRef: /*#__PURE__*/React.createRef(),\n onOpenChangeComplete: undefined,\n triggerElements\n };\n}\nfunction createInitialState(triggerElements, floatingId, nested = false, initialState) {\n return {\n ...createInitialPopupStoreState(triggerElements, floatingId, nested),\n disabled: false,\n modal: true,\n openMethod: null,\n keyboardOpen: false,\n allowMouseEnter: false,\n highlightItemOnHover: true,\n parent: {\n type: undefined\n },\n rootId: undefined,\n activeIndex: null,\n listElement: null,\n filterTriggerProps: EMPTY_OBJECT,\n inputProps: EMPTY_OBJECT,\n inputFocused: false,\n highlightedItem: undefined,\n hoverEnabled: true,\n instantType: undefined,\n openChangeReason: null,\n floatingTreeRoot: new FloatingTreeStore(),\n floatingNodeId: undefined,\n floatingParentNodeId: null,\n itemProps: EMPTY_OBJECT,\n keyboardEventRelay: undefined,\n closeDelay: 0,\n adaptiveOrigin: undefined,\n ...initialState\n };\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * What `Menu.FilterProvider` hands to the root directly inside it: the filterable root\n * implementations (the provider is their only importer) and the filter props.\n */\n\n/**\n * Non-null only directly below a provider. The root that consumes it resets it, so a plain\n * `Menu.SubmenuRoot` inside a filterable menu stays plain.\n */\nexport const MenuFilterProviderContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") MenuFilterProviderContext.displayName = \"MenuFilterProviderContext\";","import { REASONS } from \"../../internals/reasons.mjs\";\n\n/**\n * Keyboard and assistive-technology activations produce `detail === 0` clicks; mouse-gesture\n * clicks (including the synthesized drag-release click from `useMenuItemCommonProps`) carry\n * `detail >= 1`.\n */\nexport function isKeyboardClick(reason, event) {\n return (reason === REASONS.triggerPress || reason === REASONS.itemPress) && event?.detail === 0;\n}\n\n/**\n * Whether a menu opens from the keyboard, which lands focus in the popup. Arrow keys report\n * `list-navigation`; Enter and Space dispatch a click carrying no pointer detail.\n */\nexport function isKeyboardOpen(reason, event) {\n return reason === REASONS.listNavigation || isKeyboardClick(reason, event);\n}","'use client';\n\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { fastComponent } from '@base-ui/utils/fastHooks';\nimport { FloatingTree, useDismiss, useFloatingNodeId, useFloatingParentNodeId, useListNavigation, useTypeahead, useSyncedFloatingRootContext } from \"../../floating-ui-react/index.mjs\";\nimport { MenuRootContext, useMenuRootContext } from \"./MenuRootContext.mjs\";\nimport { useMenubarContext } from \"../../menubar/MenubarContext.mjs\";\nimport { TYPEAHEAD_RESET_MS } from \"../../internals/constants.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { useOpenInteractionType } from \"../../utils/useOpenInteractionType.mjs\";\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getHighlightReason } from \"../../utils/getHighlightReason.mjs\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { useAnimationsFinished } from \"../../internals/useAnimationsFinished.mjs\";\nimport { MenuStore } from \"../store/MenuStore.mjs\";\nimport { attachPreventUnmountOnClose, FOCUSABLE_POPUP_PROPS, createPopupOpenState, PopupHandleAttachment, useImplicitActiveTrigger, useOpenStateTransitions, usePopupInteractionProps } from \"../../utils/popups/index.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { MenuFilterProviderContext } from \"../filter-provider/MenuFilterProviderContext.mjs\";\nimport { isKeyboardClick, isKeyboardOpen } from \"../utils/isKeyboardOpen.mjs\";\n\n/**\n * @internal\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const MenuRootInternal = fastComponent(function MenuRootInternal(props) {\n const {\n children,\n open: openProp,\n onOpenChange,\n onOpenChangeComplete,\n onItemHighlighted: onItemHighlightedProp,\n defaultOpen = false,\n disabled: disabledProp = false,\n modal: modalProp,\n loopFocus = true,\n orientation = 'vertical',\n actionsRef,\n closeParentOnEsc = false,\n handle,\n triggerId: triggerIdProp,\n defaultTriggerId: defaultTriggerIdProp = null,\n highlightItemOnHover = true,\n isSubmenu = false,\n virtualFocus = false,\n virtualFocusRef,\n allowEscape = true,\n resetOnPointerLeave = true\n } = props;\n const contextMenuContext = useContextMenuRootContext(true);\n const parentMenuRootContext = useMenuRootContext(true);\n const menubarContext = useMenubarContext(true);\n\n // Depend on the stable pieces rather than the parent context object, so a parent context\n // invalidation doesn't cascade into every descendant root's context.\n const enclosingMenuStore = parentMenuRootContext?.store;\n const parentVirtualFocus = parentMenuRootContext?.virtualFocus ?? false;\n const parentFromContext = React.useMemo(() => {\n if (isSubmenu && enclosingMenuStore) {\n return {\n type: 'menu',\n store: enclosingMenuStore\n };\n }\n if (menubarContext) {\n return {\n type: 'menubar',\n context: menubarContext\n };\n }\n\n // Ensure this is not a Menu nested inside ContextMenu.Trigger.\n // ContextMenu parentContext is always undefined as ContextMenu.Root is instantiated with\n // <MenuRootContext.Provider value={undefined}>\n if (contextMenuContext && !enclosingMenuStore) {\n return {\n type: 'context-menu',\n context: contextMenuContext\n };\n }\n return {\n type: undefined\n };\n }, [contextMenuContext, enclosingMenuStore, menubarContext, isSubmenu]);\n const rootId = useBaseUiId();\n // React 17 resolves generated ids in an effect, so they must be read live rather than captured\n // in a state initializer.\n const defaultFloatingId = useBaseUiId();\n const [renderedFloatingId, setRenderedFloatingId] = React.useState(undefined);\n\n // A registered `''` means the popup rendered with an explicitly empty id, so nothing may point\n // at the generated fallback.\n const floatingId = (renderedFloatingId ?? defaultFloatingId) || undefined;\n const floatingParentNodeIdFromContext = useFloatingParentNodeId();\n const parentMenuStore = parentFromContext.type === 'menu' ? parentFromContext.store : undefined;\n // An initially open submenu should animate in only when the user watches it appear, i.e. when\n // its subtree mounts because the parent popup is playing its own enter transition. A parent\n // that was `defaultOpen` at page load never passes through `'starting'`, and under a\n // `keepMounted` parent these initializers run at page load while the parent's status is still\n // `undefined` — in both cases the submenu is page-load content that must not animate. Gated on\n // being open at mount so a closed submenu doesn't seed `instantType` it would never clear. Read\n // during the first render only — consumed exclusively by first-render initializers below\n // (`useState` and the store's initial state).\n const animateInitialOpen = (openProp ?? defaultOpen) && parentMenuStore?.state.transitionStatus === 'starting';\n\n // Mirror an instantly-opened parent (e.g. keyboard click) so `[data-instant]` styling\n // suppresses the enter transition on both popups or neither. Captured once —\n // `animateInitialOpen` is only meaningful during the first render.\n const seededInstantType = useRefWithInit(() => animateInitialOpen ? parentMenuStore?.state.instantType : undefined).current;\n const store = useRefWithInit(() => {\n const menuStore = new MenuStore({\n open: defaultOpen,\n openProp,\n activeTriggerId: defaultTriggerIdProp,\n triggerIdProp,\n parent: parentFromContext,\n disabled: disabledProp,\n highlightItemOnHover,\n modal: parentFromContext.type === undefined ? modalProp : undefined,\n rootId,\n instantType: seededInstantType\n }, floatingId, floatingParentNodeIdFromContext != null);\n // A stable ref object, so descendants can read it during render from the first commit.\n menuStore.context.virtualFocusRef = virtualFocusRef;\n return menuStore;\n }).current;\n store.useControlledProp('openProp', openProp);\n store.useControlledProp('triggerIdProp', triggerIdProp);\n store.useContextCallback('onOpenChangeComplete', onOpenChangeComplete);\n const floatingTreeRoot = store.useState('floatingTreeRoot');\n const floatingNodeIdFromContext = useFloatingNodeId(floatingTreeRoot);\n const open = store.useState('open');\n const activeTriggerElement = store.useState('activeTriggerElement');\n const positionerElement = store.useState('positionerElement');\n const hoverEnabled = store.useState('hoverEnabled');\n const disabled = store.useState('disabled');\n const lastOpenChangeReason = store.useState('lastOpenChangeReason');\n const parent = store.useState('parent');\n const activeIndex = store.useState('activeIndex');\n const keyboardOpen = store.useState('keyboardOpen');\n const payload = store.useState('payload');\n const floatingParentNodeId = store.useState('floatingParentNodeId');\n const openEventRef = React.useRef(null);\n const allowOutsidePressDismissalRef = React.useRef(parent.type !== 'context-menu');\n const allowOutsidePressDismissalTimeout = useTimeout();\n const allowTouchToCloseRef = React.useRef(true);\n const allowTouchToCloseTimeout = useTimeout();\n const nested = floatingParentNodeId != null;\n if (process.env.NODE_ENV !== 'production') {\n if (parent.type !== undefined && modalProp !== undefined) {\n console.warn('Base UI: The `modal` prop is not supported on nested menus. It will be ignored.');\n }\n }\n const {\n openMethod,\n triggerProps: interactionTypeProps\n } = useOpenInteractionType(open);\n store.useSyncedValues({\n disabled: disabledProp,\n highlightItemOnHover,\n modal: parent.type === undefined ? modalProp : undefined,\n openMethod,\n rootId\n });\n useImplicitActiveTrigger(store);\n const {\n forceUnmount,\n transitionStatus\n } = useOpenStateTransitions(open, store, () => {\n store.set('allowMouseEnter', false);\n }, animateInitialOpen);\n const runOnceAnimationsFinish = useAnimationsFinished(store.context.popupRef);\n\n // An inherited `instantType` is only for the initial reveal. A later controlled `open` flip\n // bypasses `setOpen`, so nothing would reset it and `[data-instant]` would wrongly suppress\n // every subsequent transition. Clear it once the enter phase settles, unless an interactive\n // open change already replaced it.\n React.useEffect(() => {\n if (seededInstantType === undefined) {\n return undefined;\n }\n const clearSeededInstantType = () => {\n if (store.state.instantType === seededInstantType) {\n store.set('instantType', undefined);\n }\n };\n\n // A controlled close can interrupt the initial enter before the animations-finished cleanup\n // below fires (its abort cancels the pending callback, and a closed popup schedules no new\n // one). Nothing is left to protect once closing starts — the exit's suppression was already\n // decided at its trigger commit — so clear now or the next reopen renders a stale\n // `[data-instant]`.\n if (!open) {\n clearSeededInstantType();\n return undefined;\n }\n if (transitionStatus !== undefined) {\n return undefined;\n }\n\n // With no popup element (e.g. its subtree is suspended or waiting on data), there is no\n // enter transition to protect, and `useAnimationsFinished` would return without invoking the\n // callback — a ref assignment alone would never rerun this effect, leaving the seed stuck.\n // Clear immediately: a popup that appears after the reveal settles is page-load-like content.\n if (store.context.popupRef.current == null) {\n clearSeededInstantType();\n return undefined;\n }\n const abortController = new AbortController();\n runOnceAnimationsFinish(clearSeededInstantType, abortController.signal);\n return () => {\n abortController.abort();\n };\n }, [seededInstantType, open, transitionStatus, runOnceAnimationsFinish, store]);\n useIsoLayoutEffect(() => {\n if (contextMenuContext && !parentMenuRootContext) {\n // This is a context menu root.\n // It doesn't support detached triggers yet, so we have to sync the parent context manually.\n store.update({\n parent: {\n type: 'context-menu',\n context: contextMenuContext\n },\n floatingNodeId: floatingNodeIdFromContext,\n floatingParentNodeId: floatingParentNodeIdFromContext\n });\n } else if (parentMenuRootContext || !store.select('activeTriggerElement')) {\n // Without an active trigger, the root must supply its own tree IDs.\n // Read the store here: a trigger can register after render, before this effect.\n store.update({\n floatingNodeId: floatingNodeIdFromContext,\n floatingParentNodeId: floatingParentNodeIdFromContext\n });\n }\n }, [contextMenuContext, parentMenuRootContext, floatingNodeIdFromContext, floatingParentNodeIdFromContext, activeTriggerElement, store]);\n React.useEffect(() => {\n if (!open) {\n openEventRef.current = null;\n }\n if (parent.type !== 'context-menu') {\n return;\n }\n if (!open) {\n allowOutsidePressDismissalTimeout.clear();\n allowOutsidePressDismissalRef.current = false;\n return;\n }\n\n // With `mousedown` outside press events and long press touch input, there\n // needs to be a grace period after opening to ensure the dismissal event\n // doesn't fire immediately after open.\n allowOutsidePressDismissalTimeout.start(500, () => {\n allowOutsidePressDismissalRef.current = true;\n });\n }, [allowOutsidePressDismissalTimeout, open, parent.type]);\n useIsoLayoutEffect(() => {\n if (!open && !hoverEnabled) {\n store.set('hoverEnabled', true);\n }\n }, [open, hoverEnabled, store]);\n const setOpen = useStableCallback((nextOpen, eventDetails) => {\n const reason = eventDetails.reason;\n\n // Read the store directly, as relayed tree events and stale hover timers can request\n // a close after the state changed but before this component re-rendered.\n if (!nextOpen && !store.select('open')) {\n return;\n }\n if (open === nextOpen && eventDetails.trigger === activeTriggerElement && lastOpenChangeReason === reason) {\n return;\n }\n const shouldPreventUnmountOnClose = attachPreventUnmountOnClose(eventDetails);\n\n // Do not immediately reset the activeTriggerId to allow\n // exit animations to play and focus to be returned correctly.\n if (!nextOpen && eventDetails.trigger == null) {\n eventDetails.trigger = activeTriggerElement ?? undefined;\n }\n onOpenChange?.(nextOpen, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n store.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);\n const nativeEvent = eventDetails.event;\n if (nextOpen === false && reason !== REASONS.itemPress && nativeEvent?.type === 'click' && nativeEvent.pointerType === 'touch' && !allowTouchToCloseRef.current) {\n return;\n }\n\n // Prevent the menu from closing on mobile devices that have a delayed click event.\n // In some cases the menu, when tapped, will fire the focus event first and then the click event.\n // Without this guard, the menu will close immediately after opening.\n if (nextOpen && reason === REASONS.triggerFocus) {\n allowTouchToCloseRef.current = false;\n allowTouchToCloseTimeout.start(300, () => {\n allowTouchToCloseRef.current = true;\n });\n } else {\n allowTouchToCloseRef.current = true;\n allowTouchToCloseTimeout.clear();\n }\n const isDismissClose = !nextOpen && (reason === REASONS.escapeKey || reason == null);\n openEventRef.current = eventDetails.event;\n const popupOpenState = createPopupOpenState(store.state, nextOpen, eventDetails.trigger, shouldPreventUnmountOnClose());\n popupOpenState.openChangeReason = reason;\n popupOpenState.keyboardOpen = nextOpen && isKeyboardOpen(reason, nativeEvent);\n if (parent.type === 'menubar' && (reason === REASONS.triggerFocus || reason === REASONS.focusOut || reason === REASONS.triggerHover || reason === REASONS.listNavigation || reason === REASONS.siblingOpen)) {\n popupOpenState.instantType = 'group';\n } else if (isKeyboardClick(reason, nativeEvent)) {\n popupOpenState.instantType = 'click';\n } else if (isDismissClose) {\n popupOpenState.instantType = 'dismiss';\n } else {\n popupOpenState.instantType = undefined;\n }\n\n // `instantType` must land in the same update that mounts the popup subtree: in React 17\n // legacy mode this `update` can flush synchronously, and a separate `instantType` write\n // after it would come too late for an initially open submenu seeding its own store from\n // this one during that flush.\n store.update(popupOpenState);\n });\n const floatingRootContext = useSyncedFloatingRootContext({\n popupStore: store,\n floatingRootContext: store.state.floatingRootContext,\n floatingId,\n nested: floatingParentNodeIdFromContext != null,\n onOpenChange: setOpen\n });\n const floatingEvents = floatingRootContext.context.events;\n\n // Registered in a layout effect (not a passive one) so `setOpen` emits from imperative\n // `MenuHandle.open()` calls made in the same commit this root mounts — e.g. from another layout\n // effect during a route-transition handoff — are received instead of being silently dropped.\n useIsoLayoutEffect(() => {\n const handleSetOpenEvent = ({\n open: nextOpen,\n eventDetails\n }) => setOpen(nextOpen, eventDetails);\n floatingEvents.on('setOpen', handleSetOpenEvent);\n return () => {\n floatingEvents?.off('setOpen', handleSetOpenEvent);\n };\n }, [floatingEvents, setOpen]);\n useIsoLayoutEffect(() => store.subscribeToParentMenu(), [store]);\n const handleImperativeClose = React.useCallback(() => {\n store.setOpen(false, createChangeEventDetails(REASONS.imperativeAction));\n }, [store]);\n React.useImperativeHandle(actionsRef, () => ({\n unmount: forceUnmount,\n close: handleImperativeClose\n }), [forceUnmount, handleImperativeClose]);\n let ctx;\n if (parent.type === 'context-menu') {\n ctx = parent.context;\n }\n React.useImperativeHandle(ctx?.positionerRef, () => positionerElement, [positionerElement]);\n React.useImperativeHandle(ctx?.actionsRef, () => ({\n setOpen\n }), [setOpen]);\n const dismiss = useDismiss(floatingRootContext, {\n enabled: !disabled,\n bubbles: {\n escapeKey: closeParentOnEsc && parent.type === 'menu'\n },\n outsidePress() {\n if (parent.type !== 'context-menu' || openEventRef.current?.type === 'contextmenu') {\n return true;\n }\n return allowOutsidePressDismissalRef.current;\n },\n externalTree: nested ? floatingTreeRoot : undefined\n });\n const direction = useDirection();\n const listNavigation = useListNavigation(floatingRootContext, {\n enabled: !disabled,\n listRef: store.context.itemDomElements,\n activeIndex,\n virtual: virtualFocus,\n nested: parent.type === 'menubar' || !virtualFocus && parent.type !== undefined,\n parentOrientation: parent.type === 'menubar' ? parent.context.orientation : undefined,\n loopFocus,\n // Filtered menus keep DOM focus on the input, while keyboard and virtual opens initially\n // highlight an item as ordinary menus do. The input stays in the arrow-key loop unless the\n // filter highlights automatically.\n focusItemOnOpen: virtualFocus ? keyboardOpen : undefined,\n allowEscape: virtualFocus && loopFocus && allowEscape,\n orientation,\n // A virtual-focus list can navigate on either axis, but its trigger always opens on the\n // vertical one.\n triggerOrientation: virtualFocus ? 'vertical' : orientation,\n rtl: direction === 'rtl',\n disabledIndices: EMPTY_ARRAY,\n onNavigate(nextActiveIndex, event) {\n store.setActiveIndex(nextActiveIndex, getHighlightReason(event), event?.nativeEvent);\n },\n // A virtual-focus submenu's keyboard opening is orchestrated by its navigation wrapper based\n // on both menus' orientations; the generic arrow-key opening would also react to the parent's\n // forwarded cross-axis keys while closed.\n openOnArrowKeyDown: parent.type !== 'context-menu' && !(virtualFocus && isSubmenu),\n externalTree: !virtualFocus && nested ? floatingTreeRoot : undefined,\n nestedReturnFocusRef: parentMenuStore?.context.virtualFocusRef,\n focusItemOnHover: highlightItemOnHover,\n resetOnPointerLeave\n });\n const onTyping = React.useCallback(nextTyping => {\n store.context.typingRef.current = nextTyping;\n }, [store]);\n const typeahead = useTypeahead(floatingRootContext, {\n // Under virtual focus the input owns typing, so typeahead would race the filter query.\n enabled: !disabled && !virtualFocus,\n listRef: store.context.itemLabels,\n elementsRef: store.context.itemDomElements,\n activeIndex,\n resetMs: TYPEAHEAD_RESET_MS,\n onMatch: (index, event) => {\n if (open && index !== activeIndex) {\n store.setActiveIndex(index, REASONS.keyboard, event.nativeEvent);\n }\n },\n onTyping\n });\n const onItemHighlighted = useStableCallback(onItemHighlightedProp);\n const lastHighlightIndexRef = React.useRef(-1);\n\n // Runs when `activeIndex` commits and again when the item registry settles, since an index\n // can come to point at a different element while its value stays the same.\n const syncHighlightedItem = useStableCallback(() => {\n const index = store.state.activeIndex;\n const item = index === null ? undefined : store.context.itemDomElements.current[index] ?? undefined;\n // An item removed in this commit stays registered until the list flushes, which calls back\n // here with the settled registry.\n if (item?.isConnected === false) {\n return;\n }\n const itemIndex = item === undefined ? -1 : index;\n if (lastHighlightIndexRef.current === itemIndex && store.context.reportedItem === item) {\n return;\n }\n lastHighlightIndexRef.current = itemIndex;\n store.context.reportedItem = item;\n // Only virtual focus renders from the highlighted element. Publishing it in every menu would\n // notify each item's subscription on every highlight change.\n if (virtualFocus) {\n store.set('highlightedItem', item);\n }\n // The tag left by the write that produced this committed value.\n const {\n highlightReason,\n highlightEvent\n } = store.context;\n store.context.highlightReason = REASONS.none;\n store.context.highlightEvent = undefined;\n if (!onItemHighlightedProp) {\n return;\n }\n onItemHighlighted(item, createGenericEventDetails(highlightReason, highlightEvent, {\n label: item === undefined ? undefined : store.context.itemLabels.current[itemIndex] ?? undefined\n }));\n });\n useIsoLayoutEffect(() => {\n syncHighlightedItem();\n }, [activeIndex, syncHighlightedItem]);\n\n // Under virtual focus an element inside the popup holds real focus, so it takes the\n // navigation's reference props (`aria-activedescendant` and the key handling) and the trigger\n // keeps only the props that open the menu.\n const openTriggerProps = React.useMemo(() => {\n if (!virtualFocus) {\n return listNavigation.reference;\n }\n if (!listNavigation.trigger) {\n return EMPTY_OBJECT;\n }\n // Focusing the trigger while the menu is open must not seed the virtual highlight. This can\n // happen before a pointer press closes the menu in Safari.\n const {\n onFocus,\n ...rest\n } = listNavigation.trigger;\n return rest;\n }, [virtualFocus, listNavigation.reference, listNavigation.trigger]);\n store.useSyncedValue('inputProps', virtualFocus ? listNavigation.reference ?? EMPTY_OBJECT : EMPTY_OBJECT);\n const activeTriggerProps = React.useMemo(() => {\n const mergedProps = mergeProps(typeahead.reference, openTriggerProps, dismiss.reference, {\n onMouseMove() {\n store.set('allowMouseEnter', true);\n }\n }, interactionTypeProps);\n mergedProps['aria-haspopup'] = 'menu';\n mergedProps['aria-expanded'] = open;\n return mergedProps;\n }, [store, typeahead.reference, openTriggerProps, dismiss.reference, interactionTypeProps, open]);\n const inactiveTriggerProps = React.useMemo(() => {\n const mergedProps = mergeProps(listNavigation.trigger, dismiss.trigger, interactionTypeProps);\n mergedProps['aria-haspopup'] = 'menu';\n mergedProps['aria-expanded'] = false;\n return mergedProps;\n }, [listNavigation.trigger, dismiss.trigger, interactionTypeProps]);\n\n // The initial render has no store subscribers yet. Seed these props before triggers render so\n // the synchronization effect below doesn't make every trigger render twice in the first commit.\n useRefWithInit(() => {\n store.update({\n inactiveTriggerProps\n });\n return null;\n });\n const popupProps = React.useMemo(() => mergeProps(FOCUSABLE_POPUP_PROPS, {\n onMouseMove() {\n store.set('allowMouseEnter', true);\n if (parent.type === 'menu') {\n store.set('hoverEnabled', false);\n }\n },\n onClick() {\n if (store.select('hoverEnabled')) {\n store.set('hoverEnabled', false);\n }\n },\n onKeyDown(event) {\n // The Menubar's CompositeRoot captures keyboard events via\n // event delegation. This works well when Menu.Root is nested inside Menubar,\n // but with detached triggers we need to manually forward the event to the CompositeRoot.\n const relay = store.select('keyboardEventRelay');\n if (relay && !event.isPropagationStopped()) {\n relay(event);\n }\n }\n }, typeahead.floating, listNavigation.floating, dismiss.floating), [parent.type, store, typeahead.floating, listNavigation.floating, dismiss.floating]);\n const itemProps = listNavigation.item ?? EMPTY_OBJECT;\n usePopupInteractionProps(store, {\n floatingRootContext,\n activeTriggerProps,\n inactiveTriggerProps,\n popupProps,\n itemProps\n });\n const context = React.useMemo(() => ({\n store,\n parent: parentFromContext,\n orientation,\n loopFocus,\n allowEscape,\n defaultFloatingId,\n setRenderedFloatingId,\n virtualFocus,\n parentVirtualFocus,\n syncHighlightedItem\n }), [store, parentFromContext, orientation, loopFocus, allowEscape, defaultFloatingId, virtualFocus, parentVirtualFocus, syncHighlightedItem]);\n const renderedChildren = typeof children === 'function' ? children({\n payload\n }) : children;\n let content = /*#__PURE__*/_jsxs(MenuRootContext.Provider, {\n value: context,\n children: [handle && /*#__PURE__*/_jsx(PopupHandleAttachment, {\n handle: handle,\n store: store\n }), renderedChildren]\n });\n if (parent.type === undefined || parent.type === 'context-menu') {\n // set up a FloatingTree to provide the context to nested menus\n content = /*#__PURE__*/_jsx(FloatingTree, {\n externalTree: floatingTreeRoot,\n children: content\n });\n }\n return content;\n});\n\n/**\n * Groups all parts of the menu.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") MenuRootInternal.displayName = \"MenuRootInternal\";\nexport function MenuRoot(props) {\n const filterProvider = React.useContext(MenuFilterProviderContext);\n if (filterProvider === null) {\n return /*#__PURE__*/_jsx(MenuRootInternal, {\n ...props\n });\n }\n const FilterRoot = filterProvider.Root;\n return (\n /*#__PURE__*/\n // The root consumes its provider so a plain submenu inside doesn't inherit it.\n _jsx(MenuFilterProviderContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(FilterRoot, {\n ...filterProvider.options,\n ...props\n })\n })\n );\n}","'use client';\n\nimport * as React from 'react';\nimport { MenuRootInternal } from \"../root/MenuRoot.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { MenuSubmenuRootContext } from \"./MenuSubmenuRootContext.mjs\";\nimport { MenuFilterProviderContext } from \"../filter-provider/MenuFilterProviderContext.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport { useMenuSubmenuRootContext } from \"./MenuSubmenuRootContext.mjs\";\nconst EMPTY_SUBMENU_ROOT_CONTEXT = {};\n\n/**\n * Groups all parts of a submenu.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport function MenuSubmenuRoot(props) {\n // Throws when the submenu isn't inside a menu.\n useMenuRootContext();\n const filterProvider = React.useContext(MenuFilterProviderContext);\n if (filterProvider !== null) {\n const FilterSubmenuRoot = filterProvider.SubmenuRoot;\n return /*#__PURE__*/_jsx(MenuFilterProviderContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(FilterSubmenuRoot, {\n ...filterProvider.options,\n ...props\n })\n });\n }\n return /*#__PURE__*/_jsx(MenuSubmenuRootContext.Provider, {\n value: EMPTY_SUBMENU_ROOT_CONTEXT,\n children: /*#__PURE__*/_jsx(MenuRootInternal, {\n ...props,\n isSubmenu: true\n })\n });\n}","import { getParentNode, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nexport function findRootOwnerId(node) {\n if (isHTMLElement(node) && node.hasAttribute('data-rootownerid')) {\n return node.getAttribute('data-rootownerid');\n }\n if (isLastTraversableNode(node)) {\n return undefined;\n }\n return findRootOwnerId(getParentNode(node));\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\n/**\n * Returns `click` and `mousedown` handlers that fix the behavior of triggers of popups that are toggled by different events.\n * For example, a button that opens a popup on mousedown and closes it on click.\n * This hook prevents the popup from closing immediately after the mouse button is released.\n */\nexport function useMixedToggleClickHandler(params) {\n const {\n enabled = true,\n mouseDownAction,\n open\n } = params;\n const ignoreClickRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) {\n return EMPTY_OBJECT;\n }\n return {\n onMouseDown: event => {\n if (mouseDownAction === 'open' && !open || mouseDownAction === 'close' && open) {\n ignoreClickRef.current = true;\n ownerDocument(event.currentTarget).addEventListener('click', () => {\n ignoreClickRef.current = false;\n }, {\n once: true\n });\n }\n },\n onClick: event => {\n if (ignoreClickRef.current) {\n ignoreClickRef.current = false;\n event.preventBaseUIHandler();\n }\n }\n };\n }, [enabled, mouseDownAction, open]);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { fastComponentRef } from '@base-ui/utils/fastHooks';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { safePolygon, useClick, useFloatingTree, useFocus, useHoverReferenceInteraction, useFloatingNodeId, useFloatingParentNodeId } from \"../../floating-ui-react/index.mjs\";\nimport { FloatingTreeStore } from \"../../floating-ui-react/components/FloatingTreeStore.mjs\";\nimport { contains } from \"../../floating-ui-react/utils.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { isMouseWithinBounds } from \"../../utils/getPseudoElementBounds.mjs\";\nimport { CompositeItem } from \"../../internals/composite/item/CompositeItem.mjs\";\nimport { useCompositeRootContext } from \"../../internals/composite/root/CompositeRootContext.mjs\";\nimport { findRootOwnerId } from \"../utils/findRootOwnerId.mjs\";\nimport { usePopupHandleStore, useTriggerDataForwarding } from \"../../utils/popups/index.mjs\";\nimport { useTriggerFocusGuards } from \"../../utils/popups/useTriggerFocusGuards.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useMixedToggleClickHandler } from \"../../utils/useMixedToggleClickHandler.mjs\";\nimport { useMenubarContext } from \"../../menubar/MenubarContext.mjs\";\nimport { PATIENT_CLICK_THRESHOLD } from \"../../internals/constants.mjs\";\nimport { FocusGuard } from \"../../utils/FocusGuard.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\n\n/**\n * A button that opens the menu.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const MenuTrigger = fastComponentRef(function MenuTrigger(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n disabled: disabledProp = false,\n nativeButton = true,\n id: idProp,\n openOnHover: openOnHoverProp,\n delay = 100,\n closeDelay = 0,\n handle,\n payload,\n ...elementProps\n } = componentProps;\n const rootContext = useMenuRootContext(true);\n const handleStore = usePopupHandleStore(handle);\n const store = handleStore ?? rootContext?.store;\n if (!store) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Menu.Trigger> must be either used within a <Menu.Root> component or provided with a handle.' : _formatErrorMessage(85));\n }\n const thisTriggerId = useBaseUiId(idProp);\n const isTriggerActive = store.useState('isTriggerActive', thisTriggerId);\n const floatingRootContext = store.useState('floatingRootContext');\n const isOpenedByThisTrigger = store.useState('isOpenedByTrigger', thisTriggerId);\n const controlsId = store.useState('triggerControlsId', thisTriggerId);\n const triggerElementRef = React.useRef(null);\n const parent = useMenuParent();\n const compositeRootContext = useCompositeRootContext(true);\n const floatingTreeRootFromContext = useFloatingTree();\n const floatingTreeRoot = React.useMemo(() => {\n return floatingTreeRootFromContext ?? new FloatingTreeStore();\n }, [floatingTreeRootFromContext]);\n const floatingNodeId = useFloatingNodeId(floatingTreeRoot);\n const floatingParentNodeId = useFloatingParentNodeId();\n const {\n registerTrigger,\n isMountedByThisTrigger\n } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {\n payload,\n closeDelay,\n parent,\n floatingTreeRoot,\n floatingNodeId,\n floatingParentNodeId,\n keyboardEventRelay: compositeRootContext?.relayKeyboardEvent\n });\n const isInMenubar = parent.type === 'menubar';\n const rootDisabled = store.useState('disabled');\n const disabled = disabledProp || rootDisabled || isInMenubar && parent.context.disabled;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n React.useEffect(() => {\n if (!isOpenedByThisTrigger && parent.type === undefined) {\n store.context.allowMouseUpTriggerRef.current = false;\n }\n }, [store, isOpenedByThisTrigger, parent.type]);\n const triggerRef = React.useRef(null);\n const allowMouseUpTriggerTimeout = useTimeout();\n const handleDocumentMouseUp = useStableCallback(mouseEvent => {\n if (!triggerRef.current) {\n return;\n }\n allowMouseUpTriggerTimeout.clear();\n store.context.allowMouseUpTriggerRef.current = false;\n const mouseUpTarget = mouseEvent.target;\n if (contains(triggerRef.current, mouseUpTarget) || contains(store.select('positionerElement'), mouseUpTarget) || mouseUpTarget === triggerRef.current) {\n return;\n }\n if (mouseUpTarget != null && findRootOwnerId(mouseUpTarget) === store.select('rootId')) {\n return;\n }\n if (isMouseWithinBounds(mouseEvent, triggerRef.current)) {\n return;\n }\n floatingTreeRoot.events.emit('close', {\n domEvent: mouseEvent,\n reason: REASONS.cancelOpen\n });\n });\n React.useEffect(() => {\n const doc = ownerDocument(triggerRef.current);\n if (isOpenedByThisTrigger && store.select('lastOpenChangeReason') === REASONS.triggerHover) {\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n return () => {\n doc.removeEventListener('mouseup', handleDocumentMouseUp);\n };\n }\n return undefined;\n }, [isOpenedByThisTrigger, handleDocumentMouseUp, store]);\n const parentMenubarHasSubmenuOpen = isInMenubar && parent.context.hasSubmenuOpen;\n const openOnHover = openOnHoverProp ?? parentMenubarHasSubmenuOpen;\n const hoverProps = useHoverReferenceInteraction(floatingRootContext, {\n enabled: openOnHover && !disabled && (!isInMenubar || parentMenubarHasSubmenuOpen && !isMountedByThisTrigger),\n handleClose: safePolygon({\n blockPointerEvents: !isInMenubar\n }),\n mouseOnly: true,\n move: false,\n restMs: parent.type === undefined ? delay : undefined,\n delay: {\n close: closeDelay\n },\n triggerElementRef,\n externalTree: floatingTreeRoot,\n isActiveTrigger: isTriggerActive,\n isClosing: () => store.select('transitionStatus') === 'ending'\n });\n\n // Whether to ignore clicks to open the menu.\n // `lastOpenChangeReason` doesn't need to be reactive here, as we need to run this\n // only when `isOpenedByThisTrigger` changes.\n const stickIfOpen = useStickIfOpen(isOpenedByThisTrigger, store.select('lastOpenChangeReason'));\n const click = useClick(floatingRootContext, {\n enabled: !disabled,\n event: isOpenedByThisTrigger && isInMenubar ? 'click' : 'mousedown',\n toggle: true,\n ignoreMouse: false,\n stickIfOpen: parent.type === undefined ? stickIfOpen : false\n });\n const focus = useFocus(floatingRootContext, {\n enabled: !disabled && parentMenubarHasSubmenuOpen\n });\n const mixedToggleHandlers = useMixedToggleClickHandler({\n open: isOpenedByThisTrigger,\n enabled: isInMenubar,\n mouseDownAction: 'open'\n });\n const localInteractionProps = React.useMemo(() => mergeProps(focus.reference, click.reference), [focus.reference, click.reference]);\n const rootTriggerProps = store.useState('triggerProps', isMountedByThisTrigger);\n // A filterable menu keeps real focus inside its popup and publishes what its trigger needs.\n const filterTriggerProps = store.useState('filterTriggerProps');\n const {\n handlePreFocusGuardFocus,\n handleFocusTargetFocus\n } = useTriggerFocusGuards(store, triggerElementRef);\n const state = {\n disabled,\n open: isOpenedByThisTrigger\n };\n const ref = [triggerRef, forwardedRef, buttonRef, registerTrigger, triggerElementRef];\n const props = [localInteractionProps, hoverProps ?? EMPTY_OBJECT, rootTriggerProps, {\n 'aria-haspopup': 'menu',\n 'aria-controls': controlsId,\n id: thisTriggerId,\n onMouseDown: event => {\n if (store.select('open')) {\n return;\n }\n\n // mousedown -> mouseup on menu item should not trigger it within 200ms.\n allowMouseUpTriggerTimeout.start(200, () => {\n store.context.allowMouseUpTriggerRef.current = true;\n });\n const doc = ownerDocument(event.currentTarget);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, filterTriggerProps, isInMenubar ? {\n role: 'menuitem'\n } : {}, mixedToggleHandlers, elementProps, getButtonProps];\n const element = useRenderElement('button', componentProps, {\n enabled: !isInMenubar,\n stateAttributesMapping: pressableTriggerOpenStateMapping,\n state,\n ref,\n props\n });\n if (isInMenubar) {\n return /*#__PURE__*/_jsx(CompositeItem, {\n tag: \"button\",\n render: render,\n className: className,\n style: style,\n state: state,\n refs: ref,\n props: props,\n stateAttributesMapping: pressableTriggerOpenStateMapping\n });\n }\n\n // A fragment with key is required to ensure that the `element` is mounted to the same DOM node\n // regardless of whether the focus guards are rendered or not.\n\n if (isOpenedByThisTrigger) {\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(FocusGuard, {\n ref: store.context.beforeTriggerFocusGuardRef,\n onFocus: handlePreFocusGuardFocus\n }, `${thisTriggerId}-pre-focus-guard`), /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId), /*#__PURE__*/_jsx(FocusGuard, {\n ref: store.context.triggerFocusTargetRef,\n onFocus: handleFocusTargetFocus\n }, `${thisTriggerId}-post-focus-guard`)]\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId);\n});\nif (process.env.NODE_ENV !== \"production\") MenuTrigger.displayName = \"MenuTrigger\";\n/**\n * Determines whether to ignore clicks after a hover-open.\n */\nfunction useStickIfOpen(open, openReason) {\n const stickIfOpenTimeout = useTimeout();\n const [stickIfOpen, setStickIfOpen] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (open && openReason === REASONS.triggerHover) {\n // Only allow \"patient\" clicks to close the menu if it's open.\n // If they clicked within 500ms of the menu opening, keep it open.\n setStickIfOpen(true);\n stickIfOpenTimeout.start(PATIENT_CLICK_THRESHOLD, () => {\n setStickIfOpen(false);\n });\n } else if (!open) {\n stickIfOpenTimeout.clear();\n setStickIfOpen(false);\n }\n }, [open, openReason, stickIfOpenTimeout]);\n return stickIfOpen;\n}\nfunction useMenuParent() {\n const menubarContext = useMenubarContext(true);\n const parent = React.useMemo(() => {\n if (menubarContext) {\n return {\n type: 'menubar',\n context: menubarContext\n };\n }\n return {\n type: undefined\n };\n }, [menubarContext]);\n return parent;\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { isElementDisabled } from '@base-ui/utils/isElementDisabled';\nimport { warn } from '@base-ui/utils/warn';\nimport { SafeReact } from '@base-ui/utils/safeReact';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { platform } from '@base-ui/utils/platform';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { getTarget } from '@base-ui/utils/shadowDom';\nimport { useMenuFilterItem } from \"../filter-root/MenuFilterContext.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { safePolygon, useClick, useHoverReferenceInteraction } from \"../../floating-ui-react/index.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { triggerOpenStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { useMenuItem } from \"../item/useMenuItem.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useMenuPositionerContext } from \"../positioner/MenuPositionerContext.mjs\";\nimport { useTriggerRegistration } from \"../../utils/popups/index.mjs\";\nimport { useMenuSubmenuRootContext } from \"../submenu-root/MenuSubmenuRootContext.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst VOICE_OVER_EXPANDED_PROPS = {\n 'aria-expanded': undefined\n};\nconst MenuSubmenuTriggerPlain = /*#__PURE__*/React.forwardRef(function MenuSubmenuTriggerPlain(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n id: idProp,\n nativeButton = false,\n openOnHover = true,\n delay = 100,\n closeDelay = 0,\n disabled: disabledProp = false,\n ...elementProps\n } = componentProps;\n const context = useMenuRootContext(true);\n if (context?.parent.type !== 'menu') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Menu.SubmenuTrigger> must be placed in <Menu.SubmenuRoot>.' : _formatErrorMessage(37));\n }\n const menuPositionerContext = useMenuPositionerContext();\n const submenuRootContext = useMenuSubmenuRootContext();\n const {\n store,\n parentVirtualFocus\n } = context;\n const parentMenuStore = context.parent.store;\n const listItem = useCompositeListItem({\n guess: true,\n label\n });\n const thisTriggerId = useBaseUiId(idProp);\n const open = store.useState('open');\n const focusReturnedThroughGuardRef = React.useRef(false);\n const positionerElement = store.useState('positionerElement');\n const floatingRootContext = store.useState('floatingRootContext');\n const floatingTreeRoot = store.useState('floatingTreeRoot');\n const popupId = store.useState('triggerPopupId', thisTriggerId);\n const baseRegisterTrigger = useTriggerRegistration(thisTriggerId, store);\n\n // Stable, so the merged ref on the rendered element keeps its identity for the trigger's whole\n // lifetime; the latest `closeDelay` is read when it runs.\n const registerTrigger = useStableCallback(element => {\n baseRegisterTrigger(element);\n const activeTriggerElement = store.select('activeTriggerElement');\n if (element !== null && store.select('open') && (activeTriggerElement === element || store.select('activeTriggerId') == null)) {\n store.update({\n activeTriggerId: thisTriggerId ?? null,\n activeTriggerElement: element,\n closeDelay\n });\n }\n });\n const triggerElementRef = React.useRef(null);\n const handleTriggerElementRef = React.useCallback(el => {\n triggerElementRef.current = el;\n store.set('activeTriggerElement', el);\n }, [store]);\n\n // A stable ref does not re-fire when the id changes, so register the rendered element here\n // instead. On React 17 the id also starts out `undefined`, so this is what registers the trigger\n // at all.\n useIsoLayoutEffect(() => {\n registerTrigger(triggerElementRef.current);\n return () => registerTrigger(null);\n }, [registerTrigger, thisTriggerId, store]);\n useIsoLayoutEffect(() => {\n if (!open || !positionerElement) {\n return undefined;\n }\n function handleGuardFocusOut(event) {\n if (getTarget(event) === store.context.beforeContentFocusGuardRef.current) {\n focusReturnedThroughGuardRef.current = event.relatedTarget === triggerElementRef.current;\n }\n }\n\n // Observe focus leaving the guard inside its positioner. When the portal is in a shadow root,\n // the trigger's focus event can report the shadow host as `relatedTarget`, not the guard.\n positionerElement.addEventListener('focusout', handleGuardFocusOut, true);\n return () => {\n focusReturnedThroughGuardRef.current = false;\n positionerElement.removeEventListener('focusout', handleGuardFocusOut, true);\n };\n }, [open, positionerElement, store]);\n store.useSyncedValue('closeDelay', closeDelay);\n const rootDisabled = store.useState('disabled');\n const parentDisabled = parentMenuStore.useState('disabled');\n const disabled = disabledProp || rootDisabled || parentDisabled;\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n const element = triggerElementRef.current;\n if (element && isElementDisabled(element) && !disabled) {\n const ownerStackMessage = SafeReact.captureOwnerStack?.() || '';\n warn(`A disabled element was detected on <Menu.SubmenuTrigger>. To properly disable the trigger, use the \\`disabled\\` prop on the component instead of setting it on the rendered element.${ownerStackMessage}`);\n }\n });\n }\n const itemProps = parentMenuStore.useState('itemProps');\n const highlighted = parentMenuStore.useState('isActive', listItem.index);\n const itemMetadata = React.useMemo(() => ({\n type: 'submenu-trigger',\n setActive(event) {\n if (parentMenuStore.select('highlightItemOnHover')) {\n parentMenuStore.setActiveIndex(listItem.index, REASONS.pointer, event);\n }\n }\n }), [parentMenuStore, listItem.index]);\n const {\n getItemProps,\n itemRef\n } = useMenuItem({\n closeOnClick: false,\n disabled,\n highlighted,\n id: thisTriggerId,\n store,\n typingRef: parentMenuStore.context.typingRef,\n nativeButton,\n itemMetadata,\n nodeId: menuPositionerContext?.context.nodeId\n });\n const hoverEnabled = store.useState('hoverEnabled');\n const hoverProps = useHoverReferenceInteraction(floatingRootContext, {\n enabled: hoverEnabled && openOnHover && !disabled,\n handleClose: safePolygon({\n blockPointerEvents: true\n }),\n mouseOnly: true,\n move: true,\n restMs: delay,\n delay: {\n open: delay,\n close: closeDelay\n },\n shouldOpen: delay > 0 ? () => parentMenuStore.select('allowMouseEnter') : undefined,\n triggerElementRef,\n externalTree: floatingTreeRoot,\n isClosing: () => store.select('transitionStatus') === 'ending',\n // Chrome can drop the trigger's `mouseleave` during a fast pointer sweep,\n // leaving a stale submenu open (see #5152) — cancel from `mouseout` too.\n guardStaleOpen: true\n });\n const click = useClick(floatingRootContext, {\n enabled: !disabled,\n event: 'mousedown',\n // Without toggling, TalkBack users cannot close the submenu to reach the next parent menu\n // item: moving the virtual cursor outside does not close it, and moving forward again\n // re-enters the still-open submenu. Keep toggling enabled so activating its trigger closes it.\n // Toggling applies to touch and keyboard activation. In hover mode, mouse presses are\n // ignored and the first activation after hover-opening keeps the submenu open.\n toggle: true,\n ignoreMouse: openOnHover,\n stickIfOpen: openOnHover\n });\n const localInteractionProps = click.reference ?? EMPTY_OBJECT;\n const rootTriggerProps = store.useState('triggerProps', true);\n delete rootTriggerProps.id;\n const state = {\n disabled,\n highlighted,\n open\n };\n const openMethod = store.useState('openMethod');\n const lastOpenChangeReason = store.useState('lastOpenChangeReason');\n // Arrow keys open the submenu through list navigation without dispatching a click, so\n // `openMethod` stays null there; Enter and Space do dispatch one and report `keyboard`.\n const openedByKeyboard = lastOpenChangeReason === REASONS.listNavigation || openMethod === 'keyboard';\n const shouldOmitExpanded = open && openedByKeyboard && platform.screenReader.voiceOver;\n const submenuKeyDownProps = submenuRootContext?.onTriggerKeyDown ? {\n onKeyDown: submenuRootContext.onTriggerKeyDown\n } : undefined;\n const element = useRenderElement('div', componentProps, {\n state,\n stateAttributesMapping: triggerOpenStateMapping,\n props: [localInteractionProps, hoverProps, rootTriggerProps,\n // MenuFilterSubmenuRoot overrides the generic trigger handler because entry and exit\n // depend on both the parent and child menu orientations.\n submenuKeyDownProps, itemProps,\n // Opening a submenu changes the trigger's expanded state while the trigger still holds\n // focus, and VoiceOver announces that state change instead of the submenu item that focus\n // moves to a moment later, so the first item is never announced. Dropping the state while\n // the submenu is open avoids the announcement without claiming the submenu is collapsed;\n // `aria-haspopup` still conveys that the item opens a submenu.\n shouldOmitExpanded ? VOICE_OVER_EXPANDED_PROPS : undefined, {\n 'aria-controls': popupId,\n // A virtually focused parent keeps real focus on its input, so the trigger must stay out\n // of the tab order.\n tabIndex: parentVirtualFocus || !(open || highlighted) ? -1 : 0,\n onFocus(event) {\n // Close when focus returns through the submenu's guard to its trigger. This also lets\n // screen reader users move past the trigger in the parent menu. Direct focus from a\n // submenu item, such as on hover, leaves the submenu open.\n if (store.select('open') && focusReturnedThroughGuardRef.current) {\n focusReturnedThroughGuardRef.current = false;\n store.setOpen(false, createChangeEventDetails(REASONS.focusOut, event.nativeEvent));\n }\n },\n onBlur() {\n if (highlighted) {\n parentMenuStore.setActiveIndex(null, REASONS.none);\n }\n }\n }, elementProps,\n // `getItemProps` stays last so `useButton` keeps gating consumer handlers while disabled.\n getItemProps],\n ref: [forwardedRef, listItem.ref, itemRef, registerTrigger, handleTriggerElementRef]\n });\n return element;\n});\n\n/**\n * A menu item that opens a submenu.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nif (process.env.NODE_ENV !== \"production\") MenuSubmenuTriggerPlain.displayName = \"MenuSubmenuTriggerPlain\";\nexport const MenuSubmenuTrigger = /*#__PURE__*/React.forwardRef(function MenuSubmenuTrigger(props, forwardedRef) {\n const filterItem = useMenuFilterItem(props, forwardedRef, 'submenu-trigger');\n if (!filterItem.visible) {\n return null;\n }\n const mergedProps = filterItem.props ? mergeProps(filterItem.props, props) : props;\n return /*#__PURE__*/_jsx(MenuSubmenuTriggerPlain, {\n ...mergedProps,\n ref: filterItem.ref\n });\n});\nif (process.env.NODE_ENV !== \"production\") MenuSubmenuTrigger.displayName = \"MenuSubmenuTrigger\";","\nimport { Props as __zyzzProps } from 'zyzz/runtime';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as BaseUi from '@base-ui/react/menu';\nimport { createContext, useContext } from 'react';\nimport { style, variants } from '../zyzz.config.js';\nimport { Check } from '../icons/Check.js';\nimport { ChevronRight } from '../icons/ChevronRight.js';\nconst submenuContext = createContext(false);\n/**\n * A menu button that opens a Base UI Menu of actions, with `menu` and `menuitem` roles.\n * Arrow keys move between items, typing jumps to a matching item, Enter activates, and Escape\n * closes the menu and returns focus to the trigger. The menu is modal by default.\n *\n * - Use for actions and commands. Use `Select` or `Combobox` to choose a form value.\n * - Give an icon-only trigger an `aria-label`, such as `More options`.\n * - Group related items with `Menu.Group` and divide groups with `Menu.Separator`.\n * - Use `intent=\"negative\"` for destructive items and keep them at the end.\n *\n * @example\n * <Menu.Root>\n * <Menu.Trigger render={<Button variant=\"secondary\" />}>Options</Menu.Trigger>\n * <Menu.Popup>\n * <Menu.Item onClick={onEdit}>Edit</Menu.Item>\n * <Menu.Item intent=\"negative\">Delete</Menu.Item>\n * </Menu.Popup>\n * </Menu.Root>\n *\n * @see {@link https://base-ui.com/react/components/menu | Base UI Menu}\n * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/ | WAI-ARIA APG Menu Button pattern}\n * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/menubar/ | WAI-ARIA APG Menu and Menubar pattern}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/keyboard.html | WCAG 2.2 Keyboard}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html | WCAG 2.2 Name, Role, Value}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/focus-visible.html | WCAG 2.2 Focus Visible}\n */\nexport var Menu;\n(function (Menu) {\n /** Groups related items in a `group` role, named by a `Menu.GroupLabel` inside it. */\n Menu.Group = BaseUi.Menu.Group;\n /**\n * Holds `Menu.RadioItem`s and owns the selected `value`. Pass `value` and `onValueChange` to\n * control it, or `defaultValue` to leave it uncontrolled.\n */\n Menu.RadioGroup = BaseUi.Menu.RadioGroup;\n /** Owns the open state. Pass `open` and `onOpenChange` to control it. */\n Menu.Root = BaseUi.Menu.Root;\n /**\n * Renders a button with `aria-haspopup=\"menu\"` that toggles the menu. Pass `render` to use a\n * `Button`, and name an icon-only trigger with `aria-label`.\n */\n Menu.Trigger = BaseUi.Menu.Trigger;\n /**\n * Renders a `menuitemcheckbox` with a check mark while checked. It stays open on click unless\n * `closeOnClick` is set.\n */\n function CheckboxItem(props) {\n const { children, className, vars, ...attributes } = props;\n return (_jsxs(BaseUi.Menu.CheckboxItem, { ...attributes, ...styles.item({ className, style: props.style, vars }), children: [_jsx(\"span\", { ...styles.slot(), children: _jsx(BaseUi.Menu.CheckboxItemIndicator, { children: _jsx(Check, {}) }) }), children] }));\n }\n Menu.CheckboxItem = CheckboxItem;\n /** Names the surrounding `Menu.Group` through `aria-labelledby`. */\n function GroupLabel(props) {\n const { className, vars, ...attributes } = props;\n return (_jsx(BaseUi.Menu.GroupLabel, { ...attributes, ...styles.groupLabel({ className, style: props.style, vars }) }));\n }\n Menu.GroupLabel = GroupLabel;\n /**\n * Renders a `menuitem` that closes the menu on click. `intent=\"negative\"` colors destructive\n * actions red. Pass `label` when the text content does not start with the characters a\n * keyboard user would type to reach the item.\n */\n function Item(props) {\n const { className, intent, vars, ...attributes } = props;\n return (_jsx(BaseUi.Menu.Item, { ...attributes, ...styles.item({ className, intent, style: props.style, vars }) }));\n }\n Menu.Item = Item;\n /**\n * Renders an `<a>` with the `menuitem` role for navigation from a menu. Unlike `Menu.Item`, it\n * keeps the menu open on click unless `closeOnClick` is set.\n */\n function LinkItem(props) {\n const { className, intent, vars, ...attributes } = props;\n return (_jsx(BaseUi.Menu.LinkItem, { ...attributes, ...styles.item({ className, intent, style: props.style, vars }) }));\n }\n Menu.LinkItem = LinkItem;\n /**\n * Renders the portal, positioner and popup. Inside `Menu.SubmenuRoot` it opens beside the\n * trigger. `sideOffset` defaults to `4`, or `0` in a submenu, where `alignOffset` defaults to\n * `-8`. `size` sets 32, 40 or 56px items.\n */\n function Popup(props) {\n const { align, alignOffset, anchor, className, collisionPadding, side, sideOffset, size, vars, ...attributes } = props;\n const submenu = useContext(submenuContext);\n return (_jsx(BaseUi.Menu.Portal, { children: _jsx(BaseUi.Menu.Positioner, { ...styles.positioner(), align: align, alignOffset: alignOffset ?? (submenu ? -8 : 0), anchor: anchor, collisionPadding: collisionPadding, side: side, sideOffset: sideOffset ?? (submenu ? 0 : 4), children: _jsx(BaseUi.Menu.Popup, { ...attributes, ...styles.popup({ className, size, style: props.style, vars }) }) }) }));\n }\n Menu.Popup = Popup;\n /**\n * Renders a `menuitemradio` inside `Menu.RadioGroup`, with a check mark while selected. It stays\n * open on click unless `closeOnClick` is set.\n */\n function RadioItem(props) {\n const { children, className, vars, ...attributes } = props;\n return (_jsxs(BaseUi.Menu.RadioItem, { ...attributes, ...styles.item({ className, style: props.style, vars }), children: [_jsx(\"span\", { ...styles.slot(), children: _jsx(BaseUi.Menu.RadioItemIndicator, { children: _jsx(Check, {}) }) }), children] }));\n }\n Menu.RadioItem = RadioItem;\n /** Divides groups of items with a `separator` role. */\n function Separator(props) {\n const { className, vars, ...attributes } = props;\n return (_jsx(BaseUi.Menu.Separator, { ...attributes, ...styles.separator({ className, style: props.style, vars }) }));\n }\n Menu.Separator = Separator;\n /**\n * Renders a `<kbd>` for an item's keyboard shortcut. It only displays the keys, so bind the\n * shortcut yourself.\n */\n function Shortcut(props) {\n const { className, vars, ...attributes } = props;\n return _jsx(\"kbd\", { ...attributes, ...styles.shortcut({ className, style: props.style, vars }) });\n }\n Menu.Shortcut = Shortcut;\n /** Nests a menu inside an item. Its `Menu.Popup` opens beside `Menu.SubmenuTrigger`. */\n function SubmenuRoot(props) {\n return (_jsx(submenuContext.Provider, { value: true, children: _jsx(BaseUi.Menu.SubmenuRoot, { ...props }) }));\n }\n Menu.SubmenuRoot = SubmenuRoot;\n /**\n * Renders an item with a trailing chevron. It opens the nested menu on hover unless\n * `openOnHover` is `false`, and from the keyboard with the arrow key pointing toward it.\n */\n function SubmenuTrigger(props) {\n const { children, className, intent, vars, ...attributes } = props;\n return (_jsxs(BaseUi.Menu.SubmenuTrigger, { ...attributes, ...styles.item({ className, intent, style: props.style, vars }), children: [children, _jsx(ChevronRight, { ...styles.chevron() })] }));\n }\n Menu.SubmenuTrigger = SubmenuTrigger;\n})(Menu || (Menu = {}));\nexport var styles;\n(function (styles) {\n styles.chevron = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-0-ZY_y0 z_tds_2f_web-0-ZY_y1 z_tds_2f_web-0-ZY_y2\"});\n styles.groupLabel = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-0-ZY_y3 z_tds_2f_web-0-ZY_y4 z_tds_2f_web-0-ZY_y5 z_tds_2f_web-0-ZY_y6 z_tds_2f_web-0-ZY_y7 z_tds_2f_web-0-ZY_y8 z_tds_2f_web-0-ZY_y9 z_tds_2f_web-0-ZY_ya\"});\n styles.item = ((input={})=>{const external=input.className,style=input.style,vars=input.vars,inline=vars?{...vars,...style}:style,className=external?\"z_tds_2f_web-0-ZY_yb z_tds_2f_web-0-ZY_yc z_tds_2f_web-0-ZY_yd z_tds_2f_web-0-ZY_ye z_tds_2f_web-0-ZY_yf z_tds_2f_web-0-ZY_yg z_tds_2f_web-0-ZY_yh z_tds_2f_web-0-ZY_yi z_tds_2f_web-0-ZY_yj z_tds_2f_web-0-ZY_yk z_tds_2f_web-0-ZY_yl z_tds_2f_web-0-ZY_ym z_tds_2f_web-0-ZY_yn z_tds_2f_web-0-ZY_yo z_tds_2f_web-0-ZY_yp z_tds_2f_web-0-ZY_yq z_tds_2f_web-0-ZY_yr z_tds_2f_web-0-ZY_ys z_tds_2f_web-0-ZY_yt z_tds_2f_web-0-ZY_yu z_tds_2f_web-0-ZY_yv z_tds_2f_web-0-ZY_yw z_tds_2f_web-0-ZY_yx z_tds_2f_web-0-ZY_yy z_tds_2f_web-0-ZY_yz z_tds_2f_web-0-ZY_y10\"+\" \"+external:\"z_tds_2f_web-0-ZY_yb z_tds_2f_web-0-ZY_yc z_tds_2f_web-0-ZY_yd z_tds_2f_web-0-ZY_ye z_tds_2f_web-0-ZY_yf z_tds_2f_web-0-ZY_yg z_tds_2f_web-0-ZY_yh z_tds_2f_web-0-ZY_yi z_tds_2f_web-0-ZY_yj z_tds_2f_web-0-ZY_yk z_tds_2f_web-0-ZY_yl z_tds_2f_web-0-ZY_ym z_tds_2f_web-0-ZY_yn z_tds_2f_web-0-ZY_yo z_tds_2f_web-0-ZY_yp z_tds_2f_web-0-ZY_yq z_tds_2f_web-0-ZY_yr z_tds_2f_web-0-ZY_ys z_tds_2f_web-0-ZY_yt z_tds_2f_web-0-ZY_yu z_tds_2f_web-0-ZY_yv z_tds_2f_web-0-ZY_yw z_tds_2f_web-0-ZY_yx z_tds_2f_web-0-ZY_yy z_tds_2f_web-0-ZY_yz z_tds_2f_web-0-ZY_y10\",result=inline?{className,style:inline}:{className};let value;value=Object.hasOwn(input,\"intent\")?input[\"intent\"]:void 0;if(value===void 0)value=\"default\";if(value!==null&&value!==void 0)result[\"data-intent\"]=String(value);return result});\n styles.popup = ((input={})=>{const external=input.className,style=input.style,vars=input.vars,inline=vars?{...vars,...style}:style,className=external?\"z_tds_2f_web-0-ZY_y11 z_tds_2f_web-0-ZY_y12 z_tds_2f_web-0-ZY_y13 z_tds_2f_web-0-ZY_yd z_tds_2f_web-0-ZY_y14 z_tds_2f_web-0-ZY_y15 z_tds_2f_web-0-ZY_y16 z_tds_2f_web-0-ZY_yj z_tds_2f_web-0-ZY_y17 z_tds_2f_web-0-ZY_y18 z_tds_2f_web-0-ZY_y19 z_tds_2f_web-0-ZY_y1a z_tds_2f_web-0-ZY_y1b z_tds_2f_web-0-ZY_yo z_tds_2f_web-0-ZY_y1c z_tds_2f_web-0-ZY_y1d z_tds_2f_web-0-ZY_y1e z_tds_2f_web-0-ZY_y1f z_tds_2f_web-0-ZY_y1g z_tds_2f_web-0-ZY_y1h z_tds_2f_web-0-ZY_y1i z_tds_2f_web-0-ZY_y1j z_tds_2f_web-0-ZY_y1k z_tds_2f_web-0-ZY_y1l z_tds_2f_web-0-ZY_y1m z_tds_2f_web-0-ZY_y1n z_tds_2f_web-0-ZY_y1o z_tds_2f_web-0-ZY_y1p z_tds_2f_web-0-ZY_y1q z_tds_2f_web-0-ZY_y1r z_tds_2f_web-0-ZY_y1s z_tds_2f_web-0-ZY_y1t z_tds_2f_web-0-ZY_y1u z_tds_2f_web-0-ZY_y1v z_tds_2f_web-0-ZY_y1w z_tds_2f_web-0-ZY_y1x z_tds_2f_web-0-ZY_y1y z_tds_2f_web-0-ZY_y1z z_tds_2f_web-0-ZY_y20\"+\" \"+external:\"z_tds_2f_web-0-ZY_y11 z_tds_2f_web-0-ZY_y12 z_tds_2f_web-0-ZY_y13 z_tds_2f_web-0-ZY_yd z_tds_2f_web-0-ZY_y14 z_tds_2f_web-0-ZY_y15 z_tds_2f_web-0-ZY_y16 z_tds_2f_web-0-ZY_yj z_tds_2f_web-0-ZY_y17 z_tds_2f_web-0-ZY_y18 z_tds_2f_web-0-ZY_y19 z_tds_2f_web-0-ZY_y1a z_tds_2f_web-0-ZY_y1b z_tds_2f_web-0-ZY_yo z_tds_2f_web-0-ZY_y1c z_tds_2f_web-0-ZY_y1d z_tds_2f_web-0-ZY_y1e z_tds_2f_web-0-ZY_y1f z_tds_2f_web-0-ZY_y1g z_tds_2f_web-0-ZY_y1h z_tds_2f_web-0-ZY_y1i z_tds_2f_web-0-ZY_y1j z_tds_2f_web-0-ZY_y1k z_tds_2f_web-0-ZY_y1l z_tds_2f_web-0-ZY_y1m z_tds_2f_web-0-ZY_y1n z_tds_2f_web-0-ZY_y1o z_tds_2f_web-0-ZY_y1p z_tds_2f_web-0-ZY_y1q z_tds_2f_web-0-ZY_y1r z_tds_2f_web-0-ZY_y1s z_tds_2f_web-0-ZY_y1t z_tds_2f_web-0-ZY_y1u z_tds_2f_web-0-ZY_y1v z_tds_2f_web-0-ZY_y1w z_tds_2f_web-0-ZY_y1x z_tds_2f_web-0-ZY_y1y z_tds_2f_web-0-ZY_y1z z_tds_2f_web-0-ZY_y20\",result=inline?{className,style:inline}:{className};let value;value=Object.hasOwn(input,\"size\")?input[\"size\"]:void 0;if(value===void 0)value=\"medium\";if(value!==null&&value!==void 0)result[\"data-size\"]=String(value);return result});\n styles.positioner = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-0-ZY_y21\"});\n styles.separator = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-0-ZY_y22 z_tds_2f_web-0-ZY_y23 z_tds_2f_web-0-ZY_y24 z_tds_2f_web-0-ZY_y25\"});\n styles.shortcut = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-0-ZY_y26 z_tds_2f_web-0-ZY_y27 z_tds_2f_web-0-ZY_y28 z_tds_2f_web-0-ZY_y29 z_tds_2f_web-0-ZY_y2a z_tds_2f_web-0-ZY_y2b z_tds_2f_web-0-ZY_y2c z_tds_2f_web-0-ZY_y2d\"});\n styles.slot = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-0-ZY_yb z_tds_2f_web-0-ZY_y2e z_tds_2f_web-0-ZY_y1 z_tds_2f_web-0-ZY_y2f z_tds_2f_web-0-ZY_y2g z_tds_2f_web-0-ZY_y2h\"});\n})(styles || (styles = {}));\n//# sourceMappingURL=Menu.js.map\nimport './Menu.css';\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function CryptoNetwork(props) {\n return (_jsxs(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": props['aria-label'] || props['aria-labelledby'] ? undefined : true, role: props['aria-label'] || props['aria-labelledby'] ? 'img' : undefined, ...props, children: [_jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M7.41699 4.4873C7.77783 4.27921 8.2232 4.27906 8.58398 4.4873L10.751 5.73828C11.1116 5.94669 11.3339 6.33249 11.334 6.74902V9.25098C11.3338 9.66731 11.1113 10.0523 10.751 10.2607L8.58398 11.5117C8.2231 11.7201 7.77791 11.72 7.41699 11.5117L5.25098 10.2607C4.89013 10.0524 4.66714 9.66763 4.66699 9.25098V6.74902C4.6671 6.33233 4.89009 5.94663 5.25098 5.73828L7.41699 4.4873ZM8.08398 5.35352C8.03259 5.32385 7.96846 5.32404 7.91699 5.35352L5.75098 6.60449C5.6995 6.63421 5.6671 6.6896 5.66699 6.74902V9.25098C5.66714 9.31036 5.69953 9.36483 5.75098 9.39453L7.91699 10.6455C7.96852 10.6751 8.0325 10.6752 8.08398 10.6455L10.251 9.39453C10.3019 9.36471 10.3338 9.31001 10.334 9.25098V6.74902C10.3339 6.68978 10.3022 6.63428 10.251 6.60449L8.08398 5.35352Z\", fill: \"currentColor\" }), _jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M8.00098 1.33301C11.6824 1.33345 14.6668 4.31851 14.667 8C14.6668 11.6815 11.6824 14.6656 8.00098 14.666C4.31919 14.666 1.33318 11.6817 1.33301 8C1.33317 4.31824 4.31918 1.33301 8.00098 1.33301ZM8.00098 2.33301C4.87146 2.33301 2.33415 4.87053 2.33398 8C2.33416 11.1295 4.87147 13.666 8.00098 13.666C11.1301 13.6656 13.6668 11.1292 13.667 8C13.6668 4.8708 11.1301 2.33345 8.00098 2.33301Z\", fill: \"currentColor\" })] }));\n}\n//# sourceMappingURL=CryptoNetwork.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nexport function DarkMode(props) {\n return (_jsx(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": props['aria-label'] || props['aria-labelledby'] ? undefined : true, role: props['aria-label'] || props['aria-labelledby'] ? 'img' : undefined, ...props, children: _jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M8.13672 1.33398C8.32139 1.33792 8.48987 1.44355 8.57324 1.6084C8.65658 1.7734 8.64166 1.972 8.53516 2.12305C8.09371 2.74745 7.83405 3.50929 7.83398 4.33301C7.83398 6.44999 9.55005 8.16584 11.667 8.16602C12.4904 8.16591 13.2527 7.90704 13.877 7.46582L13.9365 7.42969C14.0777 7.3569 14.2474 7.35488 14.3916 7.42773C14.5564 7.5112 14.6622 7.67953 14.666 7.86426C14.6669 7.90918 14.667 7.95484 14.667 8C14.6668 11.6815 11.6824 14.6656 8.00098 14.666C4.31919 14.666 1.33318 11.6817 1.33301 8C1.33317 4.31824 4.31918 1.33301 8.00098 1.33301C8.0461 1.33301 8.09179 1.33308 8.13672 1.33398ZM7.24512 2.38379C4.47285 2.7532 2.33414 5.12673 2.33398 8C2.33416 11.1295 4.87147 13.666 8.00098 13.666C10.8744 13.6656 13.2463 11.5265 13.6152 8.75391C13.0189 9.01701 12.36 9.16595 11.667 9.16602C8.99777 9.16584 6.83398 7.00228 6.83398 4.33301C6.83403 3.63974 6.98182 2.98034 7.24512 2.38379Z\", fill: \"currentColor\" }) }));\n}\n//# sourceMappingURL=DarkMode.js.map","'use client';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useId } from 'react';\nexport function LightMode(props) {\n const id = useId();\n return (_jsxs(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": props['aria-label'] || props['aria-labelledby'] ? undefined : true, role: props['aria-label'] || props['aria-labelledby'] ? 'img' : undefined, ...props, children: [_jsxs(\"g\", { clipPath: `url(#clip0_3487_1918-${id})`, children: [_jsx(\"path\", { d: \"M8 13.3066C8.27592 13.3069 8.5 13.5307 8.5 13.8066V14.8223C8.49976 15.098 8.27577 15.322 8 15.3223C7.7242 15.322 7.50024 15.0981 7.5 14.8223V13.8066C7.5 13.5306 7.72405 13.3069 8 13.3066Z\", fill: \"currentColor\" }), _jsx(\"path\", { d: \"M3.54102 11.7529C3.73629 11.5578 4.05282 11.5577 4.24805 11.7529C4.44286 11.9482 4.44308 12.2648 4.24805 12.46L3.53027 13.1777C3.33515 13.3728 3.01852 13.3726 2.82324 13.1777C2.628 12.9825 2.62804 12.666 2.82324 12.4707L3.54102 11.7529Z\", fill: \"currentColor\" }), _jsx(\"path\", { d: \"M11.752 11.7529C11.9472 11.5578 12.2638 11.5577 12.459 11.7529L13.1777 12.4707C13.3723 12.6659 13.3726 12.9827 13.1777 13.1777C12.9827 13.3728 12.666 13.3724 12.4707 13.1777L11.752 12.46C11.5568 12.2648 11.5571 11.9482 11.752 11.7529Z\", fill: \"currentColor\" }), _jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M5.17188 5.17188C6.73398 3.60991 9.26705 3.60982 10.8291 5.17188C12.3906 6.73397 12.3909 9.26717 10.8291 10.8291C9.26718 12.391 6.73401 12.3907 5.17188 10.8291C3.60978 9.267 3.60978 6.73397 5.17188 5.17188ZM10.1221 5.87891C8.95054 4.70738 7.05049 4.70747 5.87891 5.87891C4.70733 7.05048 4.70733 8.9505 5.87891 10.1221C7.05052 11.2931 8.95067 11.2935 10.1221 10.1221C11.2933 8.95066 11.2931 7.05048 10.1221 5.87891Z\", fill: \"currentColor\" }), _jsx(\"path\", { d: \"M2.19434 7.5C2.47006 7.50033 2.69411 7.72425 2.69434 8C2.69417 8.2758 2.4701 8.49967 2.19434 8.5H1.17871C0.90267 8.5 0.677899 8.276 0.677734 8C0.677959 7.72405 0.902707 7.5 1.17871 7.5H2.19434Z\", fill: \"currentColor\" }), _jsx(\"path\", { d: \"M14.8223 7.5C15.0978 7.5005 15.322 7.72436 15.3223 8C15.3221 8.27569 15.0979 8.4995 14.8223 8.5H13.8066C13.5306 8.5 13.3068 8.276 13.3066 8C13.3069 7.72405 13.5306 7.5 13.8066 7.5H14.8223Z\", fill: \"currentColor\" }), _jsx(\"path\", { d: \"M2.82324 2.82324C3.01851 2.62807 3.33504 2.62801 3.53027 2.82324L4.24805 3.54102C4.44288 3.73628 4.44309 4.05291 4.24805 4.24805C4.05292 4.44318 3.73631 4.44291 3.54102 4.24805L2.82324 3.53027C2.62798 3.33501 2.62798 3.0185 2.82324 2.82324Z\", fill: \"currentColor\" }), _jsx(\"path\", { d: \"M12.4707 2.82324C12.666 2.62826 12.9826 2.62807 13.1777 2.82324C13.3723 3.01846 13.3725 3.33518 13.1777 3.53027L12.459 4.24805C12.2639 4.44317 11.9472 4.44291 11.752 4.24805C11.557 4.05276 11.5568 3.73617 11.752 3.54102L12.4707 2.82324Z\", fill: \"currentColor\" }), _jsx(\"path\", { d: \"M8 0.678711C8.27592 0.678975 8.5 0.902731 8.5 1.17871V2.19434C8.49977 2.47012 8.27578 2.69407 8 2.69434C7.7242 2.6941 7.50023 2.47014 7.5 2.19434V1.17871C7.5 0.902711 7.72405 0.678942 8 0.678711Z\", fill: \"currentColor\" })] }), _jsx(\"defs\", { children: _jsx(\"clipPath\", { id: `clip0_3487_1918-${id}`, children: _jsx(\"rect\", { width: \"16\", height: \"16\", fill: \"white\" }) }) })] }));\n}\n//# sourceMappingURL=LightMode.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function Sliders(props) {\n return (_jsxs(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": props['aria-label'] || props['aria-labelledby'] ? undefined : true, role: props['aria-label'] || props['aria-labelledby'] ? 'img' : undefined, ...props, children: [_jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M6.00098 8.5C7.30282 8.50039 8.38425 9.43328 8.61816 10.667H14.001V11.667H8.61816C8.38412 12.9004 7.3027 13.8326 6.00098 13.833C4.69888 13.833 3.61605 12.9007 3.38184 11.667H2V10.667H3.38184C3.61591 9.43302 4.69876 8.5 6.00098 8.5ZM6.00098 9.5C5.08004 9.5 4.33398 10.2461 4.33398 11.167C4.33416 12.0878 5.08015 12.833 6.00098 12.833C6.92142 12.8326 7.66682 12.0875 7.66699 11.167C7.66699 10.2463 6.92153 9.50044 6.00098 9.5Z\", fill: \"currentColor\" }), _jsx(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.001 2.16602C11.303 2.1664 12.3844 3.10002 12.6182 4.33398H14.001V5.33398H12.6182C12.3839 6.56719 11.3025 7.49961 10.001 7.5C8.69906 7.5 7.61624 6.56745 7.38184 5.33398H2V4.33398H7.38184C7.61573 3.09976 8.69861 2.16602 10.001 2.16602ZM10.001 3.16699C9.08005 3.16699 8.33398 3.91305 8.33398 4.83398C8.33442 5.75455 9.08032 6.5 10.001 6.5C10.9213 6.49956 11.6666 5.75427 11.667 4.83398C11.667 3.91332 10.9215 3.16743 10.001 3.16699Z\", fill: \"currentColor\" })] }));\n}\n//# sourceMappingURL=Sliders.js.map","/** Names that the dev toolbar shares with `src/app/inbox.ts`, without Node imports. @module */\n/* istanbul ignore file -- Only the dev toolbar and the dev server read it. */\n\n/** Carries Void's dev-trigger token, which the JSON inbox requires. */\nexport const header = 'x-void-dev-trigger'\n\n/** The path of the JSON inbox. */\nexport const path = '/__devtools/inbox'\n\n/** Serves the token to the toolbar, without CORS headers. */\nexport const tokenPath = '/__devtools/token'\n","/**\n * The dev toolbar: chain and color scheme switches, the chains' status, and Void's dev inbox in\n * `vp dev`. @module\n */\n/* istanbul ignore file -- It renders only in a browser, once the page hydrates. */\nimport * as BaseUi from '@base-ui/react/popover'\nimport { useQuery } from '@tanstack/react-query'\nimport { useNavigate, useRouterState, useSearch } from '@tanstack/react-router'\nimport { Button, CopyButton, Menu, Tooltip } from '@tempoxyz/ds'\nimport {\n Close,\n CryptoNetwork,\n DarkMode,\n LightMode,\n Mail,\n Sliders,\n} from '@tempoxyz/ds/icons'\nimport { parseResponse } from 'hono/client'\nimport { type ReactElement, useEffect, useRef, useState } from 'react'\nimport { keyframes } from 'zyzz/web'\nimport type * as Chain from '../../internal/Chain.js'\nimport * as ChainList from '../../internal/ChainList.js'\nimport * as Client from '../lib/Client.js'\nimport * as Inbox from '../lib/Inbox.js'\nimport { CodeInput } from './CodeInput.js'\nimport { style, variants, vars } from '../zyzz.config.js'\n\n/** Whether the toolbar shows Void's dev inbox, which only `vp dev` serves. */\nconst inboxEnabled = import.meta.env.DEV\n\n/** Renders the toolbar. */\nexport function DevTools() {\n const [collapsed, setCollapsed] = useStored('collapsed', false)\n const [nudging, setNudging] = useState(false)\n const [open, setOpen] = useState(false)\n const scheme = useScheme()\n // The ID of the newest message that the inbox showed. IDs stay unique where capture times can tie.\n const [seen, setSeen] = useStored<string | undefined>('seen-id', undefined)\n // Opening the panel focuses the panel itself, not the first slot of its read-only code field.\n const panel = useRef<HTMLDivElement>(null)\n\n // Void's dev-trigger token, which the JSON inbox needs, since its messages hold sign-in codes.\n const tokenQuery = useQuery({\n queryFn: async () => {\n const response = await fetch(Inbox.tokenPath)\n if (!response.ok) {\n await response.body?.cancel()\n throw new Error('The dev server has no inbox token yet.')\n }\n return ((await response.json()) as { token: string }).token\n },\n // A build has no dev inbox, since email goes to real addresses.\n enabled: inboxEnabled,\n queryKey: ['devtools', 'inbox', 'token'],\n retry: true,\n retryDelay: 1_500,\n staleTime: Number.POSITIVE_INFINITY,\n })\n const token = tokenQuery.data\n\n const inbox = useQuery({\n queryFn: async () => {\n const response = await fetch(Inbox.path, {\n headers: { [Inbox.header]: token ?? '' },\n })\n // Void writes a new token when its plugin restarts.\n if (response.status === 401) void tokenQuery.refetch()\n if (!response.ok) {\n // An unread body keeps the response open.\n await response.body?.cancel()\n throw new Error('The inbox did not respond.')\n }\n return (await response.json()) as { messages: readonly Summary[] }\n },\n enabled: token !== undefined,\n queryKey: ['devtools', 'inbox', 'list', token],\n refetchInterval: 1_500,\n })\n const messages = inbox.data?.messages ?? []\n const newest = messages[0]\n const unread = (() => {\n if (open) return 0\n // Messages come newest first, so the ones before the seen message are unread. A seen message\n // that Void evicted leaves every message unread.\n const index = messages.findIndex((message) => message.id === seen)\n return index === -1 ? messages.length : index\n })()\n\n // The first response sets the baseline, so only a message that arrives later chimes.\n const latest = useRef<string | null | undefined>(undefined)\n const [announcement, setAnnouncement] = useState('')\n useEffect(() => {\n if (!inbox.data) return\n const previous = latest.current\n latest.current = newest?.id ?? null\n // A panel that opened before the first response shows that response, so it counts as seen.\n if (previous === undefined) {\n if (open && newest) setSeen(newest.id)\n return\n }\n if (!newest || newest.id === previous) return\n\n if (open) setSeen(newest.id)\n else {\n chime()\n setNudging(true)\n }\n const filled = fill({ message: newest })\n setAnnouncement(\n `New email: ${newest.subject}.${filled ? ' The code field holds its code.' : ''}`,\n )\n }, [inbox.data, newest, open, setSeen])\n\n const onOpenChange = (next: boolean) => {\n setOpen(next)\n if (next && newest) setSeen(newest.id)\n }\n\n const inboxButton = (\n <BaseUi.Popover.Root onOpenChange={onOpenChange} open={open}>\n <Tip label=\"Inbox\">\n <BaseUi.Popover.Trigger\n aria-label={unread ? `Inbox, ${unread} unread` : 'Inbox'}\n render={\n <Button\n {...styles.tool()}\n shape=\"icon\"\n size=\"small\"\n variant=\"text\"\n />\n }\n >\n <Mail {...styles.icon()} />\n {unread > 0 && (\n // A new key restarts the pop on each count.\n <span aria-hidden key={unread} {...styles.badge()}>\n {unread > 9 ? '9+' : unread}\n </span>\n )}\n </BaseUi.Popover.Trigger>\n </Tip>\n <BaseUi.Popover.Portal>\n <BaseUi.Popover.Positioner\n {...styles.positioner()}\n collisionPadding={16}\n side=\"top\"\n sideOffset={12}\n >\n {/* The panel draws on the toolbar's surface, in its dark scheme. */}\n <div {...vars({ colorScheme: 'dark' })}>\n <BaseUi.Popover.Popup\n aria-label=\"Inbox\"\n initialFocus={panel}\n ref={panel}\n {...styles.panel()}\n >\n <InboxPanel messages={messages} token={token} />\n </BaseUi.Popover.Popup>\n </div>\n </BaseUi.Popover.Positioner>\n </BaseUi.Popover.Portal>\n </BaseUi.Popover.Root>\n )\n\n return (\n <aside aria-label=\"Developer tools\" {...styles.root()}>\n <span aria-live=\"polite\" role=\"status\" {...styles.hidden()}>\n {announcement}\n </span>\n <div\n {...vars({ colorScheme: 'dark' })}\n data-nudging={nudging || undefined}\n // The badge's own pop bubbles here too, and ends before the nudge does.\n onAnimationEnd={(event) => {\n if (event.target === event.currentTarget) setNudging(false)\n }}\n {...styles.toolbar()}\n >\n {collapsed ? (\n <>\n {inboxEnabled && (unread > 0 || open) && inboxButton}\n <Tip label=\"Show developer tools\">\n <Button\n {...styles.tool()}\n aria-label=\"Show developer tools\"\n onClick={() => setCollapsed(false)}\n shape=\"icon\"\n size=\"small\"\n variant=\"text\"\n >\n <Sliders {...styles.icon()} />\n </Button>\n </Tip>\n </>\n ) : (\n <>\n <ChainMenu />\n <SchemeButton scheme={scheme} />\n {inboxEnabled && inboxButton}\n <span aria-hidden {...styles.divider()} />\n <Tip label=\"Hide developer tools\">\n <Button\n {...styles.tool()}\n aria-label=\"Hide developer tools\"\n onClick={() => setCollapsed(true)}\n shape=\"icon\"\n size=\"small\"\n variant=\"text\"\n >\n <Close {...styles.icon()} />\n </Button>\n </Tip>\n </>\n )}\n </div>\n </aside>\n )\n}\n\n/** A message in the inbox list, without its parts. */\ntype Summary = {\n /** Milliseconds since the epoch. */\n capturedAt: number\n /** The sender. */\n from: Address\n /** Void's ID of the message. */\n id: string\n /** The subject line. */\n subject: string\n /** The recipients. */\n to: readonly Address[]\n}\n\n/** A message with its parts. */\ntype Message = Summary & {\n /** Absent without an HTML part. */\n html?: string | undefined\n /** Absent without a text part. */\n text?: string | undefined\n}\n\n/** An address on a message. */\ntype Address = {\n /** The email address. */\n email: string\n /** Absent without a display name. */\n name?: string | undefined\n}\n\n/** The search parameters of the chain switch. */\ntype ChainSearch = {\n /** The chain whose balances the page shows. */\n chain?: Chain.Chain | undefined\n /** Better Auth's signature of an OAuth request's query, which omits `chain`. */\n sig?: unknown\n}\n\n/**\n * Selects the `chain` parameter, with a {@link Status} dot per listed chain. A signed request\n * disables it, since a changed `chain` fails the signature.\n */\nfunction ChainMenu() {\n const client = Client.use()\n const navigate = useNavigate()\n const search: ChainSearch = useSearch({ strict: false })\n const signed = search.sig !== undefined\n // The signed query keeps the key authorization, which `useSearch` leaves out of the routes' fields.\n const keyChainId = useRouterState({\n select: (state) =>\n signed\n ? keyChain(\n new URLSearchParams(state.location.searchStr).get(\n 'key_authorization',\n ),\n )\n : undefined,\n })\n\n const listed = useQuery({\n queryFn: async () => {\n const response = await client.i.chains.$get()\n return (await response.json()).chains\n },\n queryKey: ['devtools', 'chains'],\n // A deployment's list changes only with its configuration.\n staleTime: Number.POSITIVE_INFINITY,\n })\n const chains = listed.data ?? [\n { chainId: ChainList.ids.mainnet, name: 'mainnet' },\n { chainId: ChainList.ids.testnet, name: 'testnet' },\n ]\n\n // Only the deployment's listed chains have a status, so a deployment without one sends no probe.\n const status = useQuery({\n enabled: chains.some((entry) => !(entry.name in ChainList.ids)),\n queryFn: async () =>\n (await parseResponse(client.i.chains.status.$get())).chains,\n queryKey: ['devtools', 'chains', 'status'],\n refetchInterval: (query) =>\n query.state.data?.every(ready) ? false : 3_000,\n })\n const statusOf = (name: string) =>\n status.data?.find((entry) => entry.name === name)\n // A key that names a chain no name lists shows its chain ID.\n const chain =\n keyChainId === undefined\n ? (search.chain ?? 'mainnet')\n : (chains.find((entry) => entry.chainId === keyChainId)?.name ??\n String(keyChainId))\n const selected = statusOf(chain)\n // The menu opens in a portal, outside the toolbar's dark scheme.\n const dark = vars({ colorScheme: 'dark' })\n\n return (\n <Menu.Root>\n <Tip\n label={(() => {\n if (signed) return 'The signed request fixes the chain'\n if (selected) return describe(selected)\n return 'Chain'\n })()}\n >\n <Menu.Trigger\n aria-label={`Chain: ${chain}${selected ? `, ${ready(selected) ? 'ready' : 'starting'}` : ''}`}\n disabled={signed}\n render={<Button {...styles.chain()} size=\"small\" variant=\"text\" />}\n >\n <CryptoNetwork {...styles.icon()} />\n <span {...styles.chainName()}>\n {label(chain)}\n {selected && <Status status={selected} />}\n </span>\n </Menu.Trigger>\n </Tip>\n <Menu.Popup\n className={dark.className}\n side=\"top\"\n sideOffset={12}\n size=\"small\"\n style={dark.style}\n >\n <Menu.RadioGroup\n onValueChange={(next: string) =>\n // The navigation settles once the loaders finish, and the page renders any failure.\n void navigate({\n replace: true,\n // Mainnet is the default, so its pages carry no parameter.\n search: (previous: Record<string, unknown>) => ({\n ...previous,\n chain: next === 'mainnet' ? undefined : next,\n }),\n to: '.',\n })\n }\n value={chain}\n >\n {chains.map((entry) => (\n <Menu.RadioItem closeOnClick key={entry.name} value={entry.name}>\n <span {...styles.chainName()}>\n {label(entry.name)}\n {(() => {\n const listedStatus = statusOf(entry.name)\n return listedStatus && <Status status={listedStatus} />\n })()}\n </span>\n <span {...styles.chainId()}>{entry.chainId}</span>\n </Menu.RadioItem>\n ))}\n </Menu.RadioGroup>\n </Menu.Popup>\n </Menu.Root>\n )\n}\n\n/** Returns the chain ID of a base64url JSON `key_authorization`, or `undefined`. */\nfunction keyChain(value: string | null) {\n if (!value) return undefined\n try {\n const parsed = JSON.parse(\n atob(value.replaceAll('-', '+').replaceAll('_', '/')),\n ) as { chainId?: unknown }\n if (typeof parsed.chainId === 'number') return parsed.chainId\n if (typeof parsed.chainId === 'string')\n return Number(BigInt(parsed.chainId))\n return undefined\n } catch {\n // A request that does not parse fails on the page, which shows its own error.\n return undefined\n }\n}\n\n/** A listed chain's status, from `GET /i/chains/status`. */\ntype ChainStatus = {\n /** `none` without a Tempo API. */\n api: 'down' | 'none' | 'up'\n /** Whether the chain's node responds. */\n node: 'down' | 'up'\n}\n\n/** Returns whether the chain's node responds, and its Tempo API if it has one. */\nfunction ready(status: ChainStatus) {\n return status.node === 'up' && status.api !== 'down'\n}\n\n/** Returns the tooltip text for a chain's status. */\nfunction describe(status: ChainStatus) {\n if (status.node === 'down') return 'The node is not responding yet'\n if (status.api === 'down')\n return 'The node is up. The Tempo API is not responding yet'\n if (status.api === 'none') return 'The node is up'\n return 'The node and the Tempo API are up'\n}\n\n/** Shows a green dot for a ready chain, or a pulsing amber dot while it starts. */\nfunction Status(props: Status.Props) {\n const isReady = ready(props.status)\n return (\n <span\n aria-label={isReady ? 'Ready' : 'Starting'}\n role=\"img\"\n {...styles.status({ ready: isReady })}\n />\n )\n}\n\ndeclare namespace Status {\n type Props = {\n /** The chain's status. */\n status: ChainStatus\n }\n}\n\n/** Returns a chain's label: `Mainnet`, `Testnet`, `Localnet` for `local`, or the name. */\nfunction label(name: string) {\n if (name === 'mainnet') return 'Mainnet'\n if (name === 'testnet') return 'Testnet'\n if (name === 'local') return 'Localnet'\n return name\n}\n\n/** Returns the color scheme and its switch, which applies to the root element. */\nfunction useScheme() {\n const [scheme, setScheme] = useStored<'dark' | 'light' | undefined>(\n 'scheme',\n undefined,\n )\n const [system, setSystem] = useState<'dark' | 'light'>('light')\n\n useEffect(() => {\n const query = matchMedia('(prefers-color-scheme: dark)')\n const update = () => setSystem(query.matches ? 'dark' : 'light')\n update()\n query.addEventListener('change', update)\n return () => query.removeEventListener('change', update)\n }, [])\n\n useEffect(() => {\n document.documentElement.style.colorScheme = scheme ?? ''\n }, [scheme])\n\n const current = scheme ?? system\n const next = current === 'dark' ? 'light' : 'dark'\n\n return {\n current,\n next,\n // The system's own scheme clears the choice, so a later system change applies again.\n toggle: () => setScheme(next === system ? undefined : next),\n }\n}\n\n/** Switches the page between the light and dark schemes. */\nfunction SchemeButton(props: SchemeButton.Props) {\n const { current, next, toggle } = props.scheme\n\n return (\n <Tip label={`Switch to ${next} mode`}>\n <Button\n {...styles.tool()}\n aria-label={`Switch to ${next} mode`}\n onClick={toggle}\n shape=\"icon\"\n size=\"small\"\n variant=\"text\"\n >\n {current === 'dark' ? (\n <LightMode {...styles.icon()} />\n ) : (\n <DarkMode {...styles.icon()} />\n )}\n </Button>\n </Tip>\n )\n}\n\ndeclare namespace SchemeButton {\n type Props = {\n /** The page's color scheme and its switch. */\n scheme: ReturnType<typeof useScheme>\n }\n}\n\n/** Shows the newest message, or the selected one of the next three. */\nfunction InboxPanel(props: InboxPanel.Props) {\n const [selected, setSelected] = useState<string | undefined>(undefined)\n const { token } = props\n\n const newest = props.messages[0]?.id\n useEffect(() => setSelected(undefined), [newest])\n\n const current =\n props.messages.find((message) => message.id === selected) ??\n props.messages[0]\n const others = props.messages\n .filter((message) => message !== current)\n .slice(0, 3)\n\n if (token === undefined)\n return <p {...styles.empty()}>Connecting to the dev server's inbox.</p>\n\n if (!current)\n return (\n <p {...styles.empty()}>\n No email yet. Request a sign-in code, and its email shows here.\n </p>\n )\n\n return (\n <>\n <MessageView summary={current} token={token} />\n {others.length > 0 && (\n <div {...styles.more()}>\n <span {...styles.label()}>More</span>\n {others.map((message) => (\n <Button\n {...styles.entry()}\n key={message.id}\n onClick={() => setSelected(message.id)}\n size=\"small\"\n variant=\"text\"\n >\n <span {...styles.entryTitle()}>\n {code(message.subject) ?? (message.subject || '(No subject)')}\n </span>\n <span {...styles.entryMeta()}>\n <span {...styles.entryAddress()}>{message.to[0]?.email}</span>\n <span {...styles.entryTime()}>\n · {time(message.capturedAt)}\n </span>\n </span>\n </Button>\n ))}\n </div>\n )}\n </>\n )\n}\n\ndeclare namespace InboxPanel {\n type Props = {\n /** The messages, newest first. */\n messages: readonly Summary[]\n /** Void's dev-trigger token. Absent until the toolbar reads it. */\n token: string | undefined\n }\n}\n\n/** Shows a message's code, addresses, and text part. The code comes from the subject. */\nfunction MessageView(props: MessageView.Props) {\n const { summary } = props\n const value = code(summary.subject)\n\n const message = useQuery({\n queryFn: async () => {\n const response = await fetch(\n `${Inbox.path}/${encodeURIComponent(summary.id)}`,\n { headers: { [Inbox.header]: props.token } },\n )\n if (!response.ok) {\n await response.body?.cancel()\n throw new Error('The inbox has no such message.')\n }\n return (await response.json()) as Message\n },\n queryKey: ['devtools', 'inbox', 'message', summary.id],\n })\n\n return (\n <div {...styles.message()}>\n {value ? (\n <div {...styles.code()}>\n {/* One cell for the field's hidden label and its slots. */}\n <div>\n <CodeInput\n aria-label=\"Code\"\n // The page's own code field is the one that `fill` finds by its autofill hint.\n autoComplete=\"off\"\n characters=\"digits\"\n defaultValue={value}\n // The field is uncontrolled, so another message remounts it with its own code.\n key={value}\n length={6}\n readOnly\n />\n </div>\n <CopyButton aria-label=\"Copy code\" size=\"small\" value={value} />\n </div>\n ) : (\n <h3 {...styles.subject()}>{summary.subject || '(No subject)'}</h3>\n )}\n <div {...styles.details()}>\n <p {...styles.meta()}>\n To {summary.to.map((address) => address.email).join(', ')} ·{' '}\n {time(summary.capturedAt)}\n </p>\n <pre {...styles.body()}>\n {(() => {\n if (message.data) return message.data.text ?? '(No text part)'\n if (message.isError) return 'This message is gone.'\n return ''\n })()}\n </pre>\n </div>\n </div>\n )\n}\n\ndeclare namespace MessageView {\n type Props = {\n /** The message, without its parts. */\n summary: Summary\n /** Void's dev-trigger token. */\n token: string\n }\n}\n\n/** Wraps a toolbar control in a tooltip. */\nfunction Tip(props: Tip.Props) {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger delay={300} render={props.children} />\n <Tooltip.Popup side=\"top\" sideOffset={12}>\n {props.label}\n </Tooltip.Popup>\n </Tooltip.Root>\n )\n}\n\ndeclare namespace Tip {\n type Props = {\n /** The control, which receives the trigger's props. */\n children: ReactElement\n /** The tooltip text. */\n label: string\n }\n}\n\n/** Plays a two-note chime. The browser keeps it silent before the first user gesture. */\nfunction chime() {\n try {\n const context = new AudioContext()\n const start = context.currentTime\n for (const [offset, frequency] of [\n [0, 1318.51],\n [0.09, 1975.53],\n ] as const) {\n const gain = context.createGain()\n gain.connect(context.destination)\n gain.gain.setValueAtTime(0.0001, start + offset)\n gain.gain.exponentialRampToValueAtTime(0.12, start + offset + 0.01)\n gain.gain.exponentialRampToValueAtTime(0.0001, start + offset + 0.6)\n\n const oscillator = context.createOscillator()\n oscillator.connect(gain)\n oscillator.frequency.value = frequency\n oscillator.type = 'sine'\n oscillator.start(start + offset)\n oscillator.stop(start + offset + 0.6)\n }\n setTimeout(() => void context.close(), 1_000)\n } catch {\n // A browser without Web Audio stays silent.\n }\n}\n\n/** Returns the code at the start of a sign-in email's subject, or `undefined`. */\nfunction code(subject: string) {\n return /^\\d{6}\\b/.exec(subject)?.[0]\n}\n\n/**\n * Pastes the code of `message` into the page's empty code field if the page shows a recipient.\n * Returns whether it did.\n */\nfunction fill(options: fill.Options) {\n const value = code(options.message.subject)\n const input = document.querySelector<HTMLInputElement>(\n // The field's hidden input holds the joined value for its form, and takes no paste.\n 'input[autocomplete=\"one-time-code\"]:not([aria-hidden=\"true\"])',\n )\n if (!value || !input || input.value || input.readOnly) return false\n\n const text = (input.closest('main') ?? document.body).textContent ?? ''\n const named = options.message.to.some((address) =>\n text.toLowerCase().includes(address.email.toLowerCase()),\n )\n if (!named) return false\n\n const data = new DataTransfer()\n data.setData('text/plain', value)\n input.focus()\n input.dispatchEvent(\n new ClipboardEvent('paste', {\n bubbles: true,\n cancelable: true,\n clipboardData: data,\n }),\n )\n return true\n}\n\ndeclare namespace fill {\n type Options = {\n /** The message whose code fills the field. */\n message: Summary\n }\n}\n\n/** Formats a capture time as the local time of day. */\nfunction time(at: number) {\n return new Date(at).toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n })\n}\n\n/** Returns a state stored in `localStorage` under `tempo-id:devtools:<key>`, after hydration. */\nfunction useStored<value>(key: string, initial: value) {\n const name = `tempo-id:devtools:${key}`\n const [state, setState] = useState(initial)\n\n useEffect(() => {\n try {\n const stored = localStorage.getItem(name)\n if (stored !== null) setState(JSON.parse(stored) as value)\n } catch {\n // Blocked storage keeps the initial value.\n }\n }, [name])\n\n const set = useRef((next: value) => {\n setState(next)\n try {\n if (next === undefined) localStorage.removeItem(name)\n else localStorage.setItem(name, JSON.stringify(next))\n } catch {\n // Blocked storage keeps the state for this page only.\n }\n }).current\n\n return [state, set] as const\n}\n\n/** The fill of the toolbar and its panel, darker than the page in either scheme. */\nconst surface = '#161616 !custom'\n\nconst nudge = keyframes(\n {\n '0%, 100%': { transform: 'translateX(0) rotate(0deg)' },\n '20%': { transform: 'translateX(-4px) rotate(-1.5deg)' },\n '40%': { transform: 'translateX(4px) rotate(1.5deg)' },\n '60%': { transform: 'translateX(-2px) rotate(-0.75deg)' },\n '80%': { transform: 'translateX(2px) rotate(0.75deg)' },\n },\n { id: 'tempo-id/devtools/nudge' },\n)\n\nconst pulse = keyframes(\n {\n '0%, 100%': { opacity: 1, transform: 'scale(1)' },\n '50%': { opacity: 0.35, transform: 'scale(0.75)' },\n },\n { id: 'tempo-id/devtools/pulse' },\n)\n\nconst pop = keyframes(\n {\n from: { opacity: 0, transform: 'scale(0.4)' },\n to: { opacity: 1, transform: 'scale(1)' },\n },\n { id: 'tempo-id/devtools/pop' },\n)\n\nnamespace styles {\n export const badge = style({\n alignItems: 'center',\n animationDuration: '320ms !custom',\n animationName: `${pop} !custom`,\n animationTimingFunction: vars.ease.overshoot,\n backgroundColor: 'red.800',\n borderRadius: 'full',\n boxShadow: '0 0 0 2px #161616 !custom',\n boxSizing: 'border-box',\n color: 'white',\n display: 'flex',\n height: '16',\n justifyContent: 'center',\n minWidth: '16',\n paddingInline: '4',\n pointerEvents: 'none',\n position: 'absolute',\n right: '-2px !custom',\n top: '-2px !custom',\n typography: 'label.12',\n fontSize: '10px !custom',\n lineHeight: '16px !custom',\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'none !custom',\n },\n })\n\n export const body = style({\n backgroundColor: 'grayAlpha.100',\n borderRadius: '12',\n color: 'gray.900',\n margin: '0',\n maxHeight: '160',\n minHeight: '80',\n overflow: 'auto',\n padding: '12',\n typography: 'copy.13.mono',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n })\n\n export const chain = style({\n color: 'gray.1000',\n paddingInline: '12',\n borderRadius: 'full',\n })\n\n export const chainId = style({\n color: 'gray.900',\n marginInlineStart: 'auto !custom',\n paddingInlineStart: '16',\n typography: 'copy.13.mono',\n })\n\n // The status dot sits beside the name, centered on its line.\n export const chainName = style({\n alignItems: 'center',\n display: 'inline-flex',\n gap: '6',\n typography: 'copy.13',\n })\n\n export const code = style({\n alignItems: 'center',\n display: 'flex',\n gap: '12',\n })\n\n export const details = style({\n display: 'flex',\n flexDirection: 'column',\n gap: '8',\n })\n\n export const divider = style({\n alignSelf: 'stretch',\n backgroundColor: 'grayAlpha.300',\n marginBlock: '8',\n marginInline: '4',\n width: '1px !custom',\n })\n\n export const empty = style({\n color: 'gray.900',\n margin: '0',\n padding: '8',\n typography: 'copy.13',\n })\n\n // `Button` wraps its children in one span, which spans the row so the meta ends at the right.\n export const entry = style({\n paddingInline: '8',\n width: '100% !custom',\n selectors: {\n // A zero minimum width lets a long address shrink inside the row instead of overflowing it.\n '& > span': {\n alignItems: 'baseline !custom',\n columnGap: '12',\n flexGrow: '1 !custom',\n justifyContent: 'space-between',\n minWidth: '0 !custom',\n },\n },\n })\n\n // The address shortens before the time does.\n export const entryAddress = style({\n minWidth: '0 !custom',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n })\n\n export const entryMeta = style({\n color: 'gray.900',\n columnGap: '4',\n display: 'flex',\n minWidth: '0 !custom',\n typography: 'copy.13',\n })\n\n export const entryTime = style({ flexShrink: '0 !custom' })\n\n export const entryTitle = style({\n flexShrink: '0 !custom',\n typography: 'copy.13.mono',\n })\n\n export const hidden = style({\n clipPath: 'inset(50%) !custom',\n height: '1px !custom',\n overflow: 'hidden',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px !custom',\n })\n\n export const icon = style({\n flexShrink: '0 !custom',\n height: '18',\n width: '18',\n })\n\n export const label = style({\n color: 'gray.900',\n paddingBlock: '4',\n paddingInline: '8',\n typography: 'label.12',\n })\n\n export const message = style({\n display: 'flex',\n flexDirection: 'column',\n gap: '16',\n })\n\n export const meta = style({\n color: 'gray.900',\n margin: '0',\n typography: 'copy.13',\n })\n\n export const more = style({\n borderTopColor: 'grayAlpha.200',\n borderTopStyle: 'solid !custom',\n borderTopWidth: '1px !custom',\n display: 'flex',\n flexDirection: 'column',\n marginInline: '-4',\n paddingTop: '8',\n })\n\n export const panel = style({\n backgroundColor: surface,\n borderRadius: '16',\n boxShadow: 'popover',\n boxSizing: 'border-box',\n color: 'foreground',\n display: 'flex',\n flexDirection: 'column',\n gap: '12',\n maxHeight: 'min(70dvh, 520px) !custom',\n outline: 'none !custom',\n overflowY: 'auto',\n padding: '12',\n transformOrigin: 'var(--transform-origin) !custom',\n transitionDuration: '200',\n transitionProperty: 'opacity, scale',\n transitionTimingFunction: 'snappy',\n width: 'min(360px, calc(100vw - 32px)) !custom',\n selectors: {\n '&[data-ending-style]': {\n opacity: '0 !custom',\n scale: 'enter',\n transitionDuration: '140',\n },\n '&[data-starting-style]': { opacity: '0 !custom', scale: 'enter' },\n },\n '@media (prefers-reduced-motion: reduce)': {\n transitionProperty: 'opacity',\n selectors: {\n '&[data-ending-style], &[data-starting-style]': {\n scale: 'none !custom',\n },\n },\n },\n })\n\n export const positioner = style({ zIndex: 'popover' })\n\n export const root = style({\n bottom: '16',\n display: 'flex',\n justifyContent: 'center',\n left: '0',\n pointerEvents: 'none',\n position: 'fixed',\n right: '0',\n zIndex: 'overlay',\n })\n\n export const status = variants({\n base: {\n borderRadius: 'full',\n display: 'inline-block',\n flexShrink: '0 !custom',\n height: '8',\n // The name is mostly lowercase, so the line's center sits above the letters' optical center.\n // `top` keeps the offset apart from the pulse's `transform`.\n position: 'relative',\n top: '1px !custom',\n width: '8',\n },\n variants: {\n ready: {\n false: {\n animationDuration: '1200ms !custom',\n animationIterationCount: 'infinite !custom',\n animationName: `${pulse} !custom`,\n animationTimingFunction: 'ease-in-out !custom',\n backgroundColor: 'amber.700',\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'none !custom',\n },\n },\n true: { backgroundColor: 'green.700' },\n },\n },\n })\n\n export const subject = style({ margin: '0', typography: 'heading.16' })\n\n export const tool = style({ color: 'gray.1000' })\n\n export const toolbar = style({\n alignItems: 'center',\n backgroundColor: surface,\n borderRadius: 'full',\n boxShadow: 'popover',\n color: 'foreground',\n display: 'flex',\n gap: '2',\n padding: '6',\n pointerEvents: 'auto',\n transformOrigin: 'bottom center !custom',\n selectors: {\n '&[data-nudging]': {\n animationDuration: '480ms !custom',\n animationName: `${nudge} !custom`,\n animationTimingFunction: vars.ease.snappy,\n },\n },\n '@media (prefers-reduced-motion: reduce)': {\n selectors: { '&[data-nudging]': { animation: 'none !custom' } },\n },\n })\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"mappings":"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"}