@fangorn-network/westmarch 0.0.20-dev → 2026.10.2-2.0-dev

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 (327) hide show
  1. package/README.md +33 -3
  2. package/docs/app-to-agent.md +117 -60
  3. package/package.json +10 -5
  4. package/plugin/scripts/fx.mjs +7 -9
  5. package/site/dist/assets/{AccountNotFoundScreen-C4njXc69-BOfmiSH1.js → AccountNotFoundScreen-C4njXc69-DyVH4CEz.js} +1 -1
  6. package/site/dist/assets/{AddFundsSelectionScreen-RAoCn7ej-D_EsIeJu.js → AddFundsSelectionScreen-RAoCn7ej-Dz1--SS9.js} +1 -1
  7. package/site/dist/assets/{Address-H8kD1d9O-C85sJ79B.js → Address-H8kD1d9O-BdFZmRwI.js} +1 -1
  8. package/site/dist/assets/{AffirmativeConsentScreen-BG0MJxku-DdEPFOww.js → AffirmativeConsentScreen-BG0MJxku-CxaCAisL.js} +1 -1
  9. package/site/dist/assets/{AllowlistRejectionScreen-Cae6e1Od-DhVy9iGN.js → AllowlistRejectionScreen-Cae6e1Od-JGk7vndN.js} +1 -1
  10. package/site/dist/assets/{ApiController-CYdiyu9B.js → ApiController-CTLbMCcH.js} +4 -4
  11. package/site/dist/assets/{ArrowsRightLeftIcon-cp60yobq.js → ArrowsRightLeftIcon-B8g9adpz.js} +1 -1
  12. package/site/dist/assets/{AuthenticateWithWalletScreen-CU6hIcFT-8rbYiYYE.js → AuthenticateWithWalletScreen-CU6hIcFT-CXD9_OP8.js} +1 -1
  13. package/site/dist/assets/{AwaitingEvmToSolBridgingScreen-D0e_sZMS-2pkNfCno.js → AwaitingEvmToSolBridgingScreen-D0e_sZMS-BtJCglvU.js} +1 -1
  14. package/site/dist/assets/{AwaitingExternalEthereumTransferScreen-ur5HL4R7-7AQt25_k.js → AwaitingExternalEthereumTransferScreen-ur5HL4R7-BgC2TsqH.js} +1 -1
  15. package/site/dist/assets/{AwaitingPasswordlessCodeScreen-DRHz76mM-BZY30TGs.js → AwaitingPasswordlessCodeScreen-DRHz76mM-B9OzLeEO.js} +1 -1
  16. package/site/dist/assets/{AwaitingSolToEvmBridgingScreen-CdLRrGD2-BILOOLi_.js → AwaitingSolToEvmBridgingScreen-CdLRrGD2-C7r5snUL.js} +1 -1
  17. package/site/dist/assets/BridgeNetworkSelectionView-CFGjB2nO-BTV0NRio.js +68 -0
  18. package/site/dist/assets/{CaptchaScreen-DbpvkIGx-D8eDcAkc.js → CaptchaScreen-DbpvkIGx-7rSZIuM-.js} +1 -1
  19. package/site/dist/assets/{CheckCircleIcon-NCOQc0Gs.js → CheckCircleIcon-B1l17ioc.js} +1 -1
  20. package/site/dist/assets/{CheckCircleIcon-BM409mGI.js → CheckCircleIcon-BGSI8nKf.js} +1 -1
  21. package/site/dist/assets/{Checkbox-D1EDeo41-rHlvsZzP.js → Checkbox-D1EDeo41-BUfq0w99.js} +1 -1
  22. package/site/dist/assets/{ChevronDownIcon-CW-4MSpE.js → ChevronDownIcon-B6uJvPHu.js} +1 -1
  23. package/site/dist/assets/{Chip-CZKIKt9K-CutJG010.js → Chip-CZKIKt9K-r9Nk__0-.js} +1 -1
  24. package/site/dist/assets/{CoinbaseOnrampStatusScreen-BbyCJDXL-DLs9zX-Q.js → CoinbaseOnrampStatusScreen-BbyCJDXL-DWWNHxmR.js} +1 -1
  25. package/site/dist/assets/{ConnectEmailForm-B-VRE0MN-N9J6T_YL.js → ConnectEmailForm-B-VRE0MN-CRQwS0Xu.js} +1 -1
  26. package/site/dist/assets/{ConnectLedgerScreen-DWHABGot-h0uYIUi6.js → ConnectLedgerScreen-DWHABGot-CZcCt31O.js} +1 -1
  27. package/site/dist/assets/{ConnectOnlyLandingScreen-CZYx9Bmp-LeuDMN1E.js → ConnectOnlyLandingScreen-CZYx9Bmp-C5IOf-SQ.js} +1 -1
  28. package/site/dist/assets/{ConnectOnlyStatusScreen-DCRzjxHx-DaRa59tZ.js → ConnectOnlyStatusScreen-DCRzjxHx-cwg74F3A.js} +1 -1
  29. package/site/dist/assets/ConnectOrCreateScreen-CUUYUO07-D28oeK6b.js +1 -0
  30. package/site/dist/assets/{ConnectPhoneForm-Dek5xn4C-BEA4FmhI.js → ConnectPhoneForm-Dek5xn4C-EEdkKeTp.js} +1 -1
  31. package/site/dist/assets/ConnectWalletView-DqI-PTvX-C2mEzukj.js +74 -0
  32. package/site/dist/assets/{ConnectionStatusScreen-fUfROm9m-BeWLchcf.js → ConnectionStatusScreen-fUfROm9m-CH_7r8iV.js} +1 -1
  33. package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-Z33kis0B.js +1 -0
  34. package/site/dist/assets/{ConnectorUtil-Cq4lWnfe.js → ConnectorUtil-DH4NePk5.js} +1 -1
  35. package/site/dist/assets/{CopyToClipboard-i_OQSBJr-DujUHNzW.js → CopyToClipboard-i_OQSBJr-_G88JCVR.js} +1 -1
  36. package/site/dist/assets/{CopyableText-CQapvaMr-DMIdpDaU.js → CopyableText-CQapvaMr-CGGfc_zM.js} +1 -1
  37. package/site/dist/assets/{CrossAppAuthScreen-CLw7ymZq-Csju14vF.js → CrossAppAuthScreen-CLw7ymZq-C9Okoc0V.js} +1 -1
  38. package/site/dist/assets/{CustomLandingScreenView-Cm_MBSyX-CBOrbNLo.js → CustomLandingScreenView-Cm_MBSyX-D2l6hdSl.js} +1 -1
  39. package/site/dist/assets/{DelegatedActionsConsentScreen-DYF2U4y5-BL5hzNUI.js → DelegatedActionsConsentScreen-DYF2U4y5-Dda3KKqS.js} +1 -1
  40. package/site/dist/assets/{DelegatedActionsRevokeScreen-bPp6Uwyh-fcO51q5H.js → DelegatedActionsRevokeScreen-bPp6Uwyh-DG8kJPt1.js} +1 -1
  41. package/site/dist/assets/{DepositAddressAddressStepView-4vdkb55L-B3vY888G.js → DepositAddressAddressStepView-4vdkb55L-CcOUfn6f.js} +1 -1
  42. package/site/dist/assets/{DepositAddressScreen-DBLRs7aI-DmdQaFI2.js → DepositAddressScreen-DBLRs7aI-DeituDNh.js} +1 -1
  43. package/site/dist/assets/{DepositAddressV3Screen-CDqIEMQw-BoupRyfV.js → DepositAddressV3Screen-CDqIEMQw-FDg6K14-.js} +1 -1
  44. package/site/dist/assets/{EmailInputForm-Cqo1mda8-B2NG3K5V.js → EmailInputForm-Cqo1mda8-BmbxvPHC.js} +1 -1
  45. package/site/dist/assets/{EmbeddedWalletConnectingScreen-D4T7DUzs-D_AVgO4s.js → EmbeddedWalletConnectingScreen-D4T7DUzs-B05CQ9rx.js} +1 -1
  46. package/site/dist/assets/{EmbeddedWalletCreatedScreen-D7WhW5ve-CLsJbPYQ.js → EmbeddedWalletCreatedScreen-D7WhW5ve-Cxd1b9XH.js} +1 -1
  47. package/site/dist/assets/{EmbeddedWalletKeyExportScreen-CqV4NYQ3-C9sAExzE.js → EmbeddedWalletKeyExportScreen-CqV4NYQ3-CrJy0ViX.js} +1 -1
  48. package/site/dist/assets/{EmbeddedWalletOnAccountCreateScreen-BoKb3Q2S-DxaWAAKa.js → EmbeddedWalletOnAccountCreateScreen-BoKb3Q2S-Bakaa3zu.js} +1 -1
  49. package/site/dist/assets/{EmbeddedWalletPasswordUpdateScreen-D3rMlqS7-CxrfLr5q.js → EmbeddedWalletPasswordUpdateScreen-D3rMlqS7-j78vKrcj.js} +1 -1
  50. package/site/dist/assets/{EmbeddedWalletPasswordUpdateSplashScreen-BPFkWJeE-DHZRGoTN.js → EmbeddedWalletPasswordUpdateSplashScreen-BPFkWJeE-D3dr7W9_.js} +1 -1
  51. package/site/dist/assets/{EnrollTotp-Dibew4dp-SA2pvNEc.js → EnrollTotp-Dibew4dp-BXbYV8nI.js} +1 -1
  52. package/site/dist/assets/{EnvelopeIcon-Dh2vSVj4.js → EnvelopeIcon-DjPofnRI.js} +1 -1
  53. package/site/dist/assets/{ErrorBanner-BcpGRt0h-BKOYTyCi.js → ErrorBanner-BcpGRt0h-BhH6_V-9.js} +1 -1
  54. package/site/dist/assets/{ErrorMessage-D8VaAP5m-CrZOnUyg.js → ErrorMessage-D8VaAP5m-Bs7uX2a9.js} +1 -1
  55. package/site/dist/assets/{ErrorScreen-DipdTWzE-c8g8En21.js → ErrorScreen-DipdTWzE-BgPRgnOb.js} +1 -1
  56. package/site/dist/assets/ErrorScreen-DipdTWzE-CvxXC6pz.js +1 -0
  57. package/site/dist/assets/{ExclamationCircleIcon-DUA2wMfO.js → ExclamationCircleIcon-BE-WGrut.js} +1 -1
  58. package/site/dist/assets/{ExclamationTriangleIcon-eZfaqcFq.js → ExclamationTriangleIcon-Ca1Xlc_f.js} +1 -1
  59. package/site/dist/assets/{FarcasterConnectStatusScreen-51tjUxqq-s_s5M2CZ.js → FarcasterConnectStatusScreen-51tjUxqq-De2JvZdV.js} +1 -1
  60. package/site/dist/assets/{FarcasterSignerStatusScreen-6x-Uh95G-BHBR4k8H.js → FarcasterSignerStatusScreen-6x-Uh95G-bLp3hXoO.js} +1 -1
  61. package/site/dist/assets/FiatOnrampScreen-BAhYeiTI-Jr6D6JiZ.js +491 -0
  62. package/site/dist/assets/{FingerPrintIcon-Dm6kxmg7.js → FingerPrintIcon-DOCbS93y.js} +1 -1
  63. package/site/dist/assets/{FundSolWalletWithExternalSolanaWallet-WtLwYaOl-B8TRV36j.js → FundSolWalletWithExternalSolanaWallet-WtLwYaOl-A_G5kfa1.js} +1 -1
  64. package/site/dist/assets/{FundWalletMethodHeader-BWNkokCT-BQdbJ5Bb.js → FundWalletMethodHeader-BWNkokCT-LPv35wkD.js} +1 -1
  65. package/site/dist/assets/{FundWithBankDepositScreen-DajkHxBD-9rPtyA3d.js → FundWithBankDepositScreen-DajkHxBD-0hfGrfvf.js} +1 -1
  66. package/site/dist/assets/{FundingEditAmountScreen-CpvpiO4M-GaXigGI9.js → FundingEditAmountScreen-CpvpiO4M-Dz0s_NWR.js} +1 -1
  67. package/site/dist/assets/{FundingMethodSelectionScreen-Db7vhRlE-UsmtTqv4.js → FundingMethodSelectionScreen-Db7vhRlE-ZGm-3-Io.js} +1 -1
  68. package/site/dist/assets/{GlobeAltIcon-vqrVV5ho.js → GlobeAltIcon-BBRl2MMn.js} +1 -1
  69. package/site/dist/assets/{GooglePay-B53WnudL-BX5_WtCx.js → GooglePay-B53WnudL-BGiVpB8y.js} +1 -1
  70. package/site/dist/assets/{HCaptchaWrapper-CUi9LJsp-D-I8j7NO.js → HCaptchaWrapper-CUi9LJsp-CHdfIeD_.js} +3 -3
  71. package/site/dist/assets/{InAppBrowserLoginNotPossible-BMR9br1T-BY3j50El.js → InAppBrowserLoginNotPossible-BMR9br1T-Cgoiow3m.js} +1 -1
  72. package/site/dist/assets/{InfoBanner-Cb3p1z12-DLBl_Ywy.js → InfoBanner-Cb3p1z12-_YqQmRiu.js} +1 -1
  73. package/site/dist/assets/{InjectedWalletIcon-DLcYOGDj-DLSV_NjP.js → InjectedWalletIcon-DLcYOGDj-tuIrKQHH.js} +1 -1
  74. package/site/dist/assets/{InstallWalletScreen-DTA8dwLv-CxreyXoD.js → InstallWalletScreen-DTA8dwLv-BMU_wa61.js} +1 -1
  75. package/site/dist/assets/{JsonTree-BHzNC-ic-DcNcbSoM.js → JsonTree-BHzNC-ic-DcVr0YF0.js} +1 -1
  76. package/site/dist/assets/{LabelXs-oqZNqbm_-iafrj25N.js → LabelXs-oqZNqbm_-CNprGVQM.js} +1 -1
  77. package/site/dist/assets/LandingScreen-CGWUoSUG-fH6rsQen.js +1 -0
  78. package/site/dist/assets/{Layouts-BMRfo5hw-CeCOyCLK.js → Layouts-BMRfo5hw-e-sepi6F.js} +1 -1
  79. package/site/dist/assets/{Link-BdDilT2T-BEDEdHuS.js → Link-BdDilT2T-BdwlRJch.js} +1 -1
  80. package/site/dist/assets/{LinkConflictScreen-C3ZEPsgl-ClWoqvEL.js → LinkConflictScreen-C3ZEPsgl-BXKN2Qm5.js} +1 -1
  81. package/site/dist/assets/LinkEmailScreen-dKo9frwc-Cyn7Q8p1.js +1 -0
  82. package/site/dist/assets/{LinkPasskeyScreen-zbrl_AI_-D72Gb0LW.js → LinkPasskeyScreen-zbrl_AI_-CWiqnwLM.js} +1 -1
  83. package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-YmDevJzf.js +1 -0
  84. package/site/dist/assets/{LinkPhoneScreen-oIUpfj0w-C0DuD14j.js → LinkPhoneScreen-oIUpfj0w-h7shW-Ay.js} +1 -1
  85. package/site/dist/assets/{Loader-UAZqxsnw-Cy7hEE2f.js → Loader-UAZqxsnw-DJEVblm1.js} +1 -1
  86. package/site/dist/assets/{LoadingSkeleton-BMsgO5PV-CiEyS5PZ.js → LoadingSkeleton-BMsgO5PV-D2atjsP5.js} +1 -1
  87. package/site/dist/assets/{LockClosedIcon-BgY_5v_Z.js → LockClosedIcon-9EFzWK1C.js} +1 -1
  88. package/site/dist/assets/{LoginFailedScreen-CN0dJV6U-DhUMiJZJ.js → LoginFailedScreen-CN0dJV6U-By3Si77a.js} +1 -1
  89. package/site/dist/assets/{ManualTransferScreen-CHqcuqbs-tXiZDHmN.js → ManualTransferScreen-CHqcuqbs-BAHPY8rs.js} +1 -1
  90. package/site/dist/assets/{MfaAuthEnrollmentFlowScreen-Dj7gPTRC-CaW7xeCC.js → MfaAuthEnrollmentFlowScreen-Dj7gPTRC-CLjffFG1.js} +1 -1
  91. package/site/dist/assets/{MfaAuthVerifyFlowScreen-DbFpyWMy-CeRqvx8k.js → MfaAuthVerifyFlowScreen-DbFpyWMy-BmQg1Y61.js} +1 -1
  92. package/site/dist/assets/{MfaEnrollmentFlowScreen-DhLnGgnr-BkN1k4lh.js → MfaEnrollmentFlowScreen-DhLnGgnr-DmBtTtlw.js} +1 -1
  93. package/site/dist/assets/{MfaVerifyFlowScreen-C_XPjMRP-CXSqLVbE.js → MfaVerifyFlowScreen-C_XPjMRP-4a683Bmf.js} +1 -1
  94. package/site/dist/assets/{ModalFooter-BCuEK_nz-c-khvG4Y.js → ModalFooter-BCuEK_nz-C_71qsaz.js} +1 -1
  95. package/site/dist/assets/{MoonpayStatusScreen-CzTUtokc-BRFN2eXr.js → MoonpayStatusScreen-CzTUtokc-DEHHcEf8.js} +1 -1
  96. package/site/dist/assets/{OAuthStatusScreen-ufbOa-da-CeiGcSia.js → OAuthStatusScreen-ufbOa-da-BjAb_WsY.js} +1 -1
  97. package/site/dist/assets/{OpenLink-CUpJ1mOr-DfAvJRyK.js → OpenLink-CUpJ1mOr-BLWFsPOW.js} +1 -1
  98. package/site/dist/assets/{PasskeySelectSignupOrLogin-xh2ScC_l-CIf5I7wU.js → PasskeySelectSignupOrLogin-xh2ScC_l-2PJTJxX-.js} +1 -1
  99. package/site/dist/assets/{PasskeyStatusScreen-Bla8MaOk-CLoL7QC-.js → PasskeyStatusScreen-Bla8MaOk-DCEg761l.js} +1 -1
  100. package/site/dist/assets/{PasswordRecoveryScreen-awGXZkQk-B9F67IYV.js → PasswordRecoveryScreen-awGXZkQk-8nVjNc8k.js} +1 -1
  101. package/site/dist/assets/{PhoneIcon-CvIiPwYQ.js → PhoneIcon-CZ47md80.js} +1 -1
  102. package/site/dist/assets/{PinInput-DbZ0b1i1-CDXZBdQx.js → PinInput-DbZ0b1i1-BrTXu3Km.js} +1 -1
  103. package/site/dist/assets/{PrivyPluginContext-DA-yS5vO-CtQWBiV2.js → PrivyPluginContext-DA-yS5vO-CY60yubk.js} +1 -1
  104. package/site/dist/assets/{QrCode-DbnZwlkH-h6Bhoe5U.js → QrCode-DbnZwlkH-CcMrWV5D.js} +2 -2
  105. package/site/dist/assets/{RecoveryOAuthStatusScreen-CsgtTI2x-D-A5P3PX.js → RecoveryOAuthStatusScreen-CsgtTI2x-DgeDnHOK.js} +1 -1
  106. package/site/dist/assets/{RecoveryPasswordCreateScreen-Be-qJ-LU-C8lTSeSr.js → RecoveryPasswordCreateScreen-Be-qJ-LU-CvJJwLhK.js} +1 -1
  107. package/site/dist/assets/{RecoverySelectionScreen-D1iGtpmi-P5P3plkH.js → RecoverySelectionScreen-D1iGtpmi-CADtGtSV.js} +1 -1
  108. package/site/dist/assets/{SIWXUtil-TUCxa7aA.js → SIWXUtil-Cpiv91-M.js} +1 -1
  109. package/site/dist/assets/{Screen-D30meWsY-CCeVNuWs.js → Screen-D30meWsY-vEusJ7KX.js} +1 -1
  110. package/site/dist/assets/{ScreenHeader-CHmc4-Lu-DjyrH7IK.js → ScreenHeader-CHmc4-Lu-BvGTLg53.js} +1 -1
  111. package/site/dist/assets/{ScreenLayout-OwaQQcxH-CrQM6kvA.js → ScreenLayout-OwaQQcxH-cfOTmyl0.js} +1 -1
  112. package/site/dist/assets/{SelectSourceAsset-CWFog6gm-D7yTw87h.js → SelectSourceAsset-CWFog6gm-DxYklZYs.js} +1 -1
  113. package/site/dist/assets/{SetAutomaticRecoveryScreen-BO_OEqAZ-f0iDIGmw.js → SetAutomaticRecoveryScreen-BO_OEqAZ-oeqeo05x.js} +1 -1
  114. package/site/dist/assets/{SetWalletPasswordForm-DwCTVtAh-kq1zvA7d.js → SetWalletPasswordForm-DwCTVtAh-BxFee9UA.js} +1 -1
  115. package/site/dist/assets/{ShieldCheckIcon-o6RHYev1.js → ShieldCheckIcon-eFjsosCA.js} +1 -1
  116. package/site/dist/assets/{SignRequestScreen-BHKv32KR-DDpMYyJ1.js → SignRequestScreen-BHKv32KR-z8ixfIma.js} +1 -1
  117. package/site/dist/assets/{SolanaWalletConnector-C7Lqk-Wz-DPwhuzcI.js → SolanaWalletConnector-C7Lqk-Wz-Bc_lvdiF.js} +1 -1
  118. package/site/dist/assets/{StackedContainer-B2vaEl56-eQCM2cmv.js → StackedContainer-B2vaEl56-Do5dXB8-.js} +1 -1
  119. package/site/dist/assets/{StandardSignAndSendTransactionScreen-CfhIXVtd-BJ-onCjv.js → StandardSignAndSendTransactionScreen-CfhIXVtd-DudetZAc.js} +1 -1
  120. package/site/dist/assets/{Subtitle-CV-2yKE4-zxWw2m1Q.js → Subtitle-CV-2yKE4-DV0o1av3.js} +1 -1
  121. package/site/dist/assets/{TelegramAuthScreen-UL9zLfO8-NWlMgNRX.js → TelegramAuthScreen-UL9zLfO8-Bo3sONvf.js} +1 -1
  122. package/site/dist/assets/{Title-BnzYV3Is-B_JpTatT.js → Title-BnzYV3Is-C3qOPnO_.js} +1 -1
  123. package/site/dist/assets/{TodoList-DnyULl18-C8Eyy28X.js → TodoList-DnyULl18-BvxvubbF.js} +1 -1
  124. package/site/dist/assets/{TransactionDetails-e9nesl30-C4MpIHR-.js → TransactionDetails-e9nesl30-WWflkOIi.js} +1 -1
  125. package/site/dist/assets/{TransactionErrorView-BDBNqA_f-p1T9WVMx.js → TransactionErrorView-BDBNqA_f-CotYKcgf.js} +1 -1
  126. package/site/dist/assets/{TransferFromWalletScreen-Qvn1Yuno-88IQcRnY.js → TransferFromWalletScreen-Qvn1Yuno-sVFlWqa8.js} +1 -1
  127. package/site/dist/assets/{TransferOrBridgeLoadingScreen-Dl1I_iIz-1fDAIxAf.js → TransferOrBridgeLoadingScreen-Dl1I_iIz-CV2-mY19.js} +1 -1
  128. package/site/dist/assets/{TurnstileWrapper-B7sNddys-Jwy1tJtm.js → TurnstileWrapper-B7sNddys-oPbuMTQt.js} +1 -1
  129. package/site/dist/assets/{UpdateEmailScreen-DVOhPV0H-Jj2DQW8D.js → UpdateEmailScreen-DVOhPV0H-D_mjSpAy.js} +1 -1
  130. package/site/dist/assets/{UpdatePhoneScreen-CXRswTNZ-DwYIUBqi.js → UpdatePhoneScreen-CXRswTNZ-6RLG0ahv.js} +1 -1
  131. package/site/dist/assets/{UserLimitReachedScreen-5we2DHn8-D7m70C4b.js → UserLimitReachedScreen-5we2DHn8-CaVN0bti.js} +1 -1
  132. package/site/dist/assets/{Value-DTgR824E-BRuIGiec.js → Value-DTgR824E-Bp6WGZZm.js} +1 -1
  133. package/site/dist/assets/{WalletCards-DH1rqayz-Bgp9Fsgs.js → WalletCards-DH1rqayz-D3cOTb9x.js} +1 -1
  134. package/site/dist/assets/{WalletIcon-gKf0gTw6.js → WalletIcon-DOIZhb2l.js} +1 -1
  135. package/site/dist/assets/{WalletInfoCard-sq_2wgFg-DpNSAGte.js → WalletInfoCard-sq_2wgFg-bOqfl5MA.js} +1 -1
  136. package/site/dist/assets/{WalletInterstitialScreen-Sh7LfsAh-DG-RuO-F.js → WalletInterstitialScreen-Sh7LfsAh-DWaVkMCA.js} +1 -1
  137. package/site/dist/assets/{WalletLink-DK5LB5Ha-DHaL350n.js → WalletLink-DK5LB5Ha-DjUZvqs-.js} +1 -1
  138. package/site/dist/assets/WalletOverflowButton-bfCnp-9T-B6P7DQXA.js +1 -0
  139. package/site/dist/assets/{WarningBanner-ZZqCEtZK-2eU4Qo74.js → WarningBanner-ZZqCEtZK-Bc2YKZb7.js} +1 -1
  140. package/site/dist/assets/__vite-browser-external-NciY4Vu1.js +1 -0
  141. package/site/dist/assets/{_esm-BdeM6pxJ.js → _esm-BZP3cXTv.js} +1 -1
  142. package/site/dist/assets/_esm-ZmzBJpEs.js +6 -0
  143. package/site/dist/assets/{accounts-D96UKWkC.js → accounts-D4AXF17G.js} +1 -1
  144. package/site/dist/assets/accounts-IkdFx9nq.js +1 -0
  145. package/site/dist/assets/{baseSepolia-DX-qGsik.js → baseSepolia-Bn1j1Ysw.js} +1 -1
  146. package/site/dist/assets/{basic-oIwwSyu4.js → basic-Cz1YiCSk.js} +4 -4
  147. package/site/dist/assets/{ccip-BZvRTL6g.js → ccip-B1J3oTZx.js} +2 -2
  148. package/site/dist/assets/ccip-Bd7261zy.js +1 -0
  149. package/site/dist/assets/{ccip-65sIfSPR.js → ccip-D6EHKpjI.js} +1 -1
  150. package/site/dist/assets/{chain-DM3oH6Px.js → chain-scefkYIH.js} +3 -6
  151. package/site/dist/assets/check-DHnllI8N.js +1 -0
  152. package/site/dist/assets/{chevron-down-BSsbXkK-.js → chevron-down-1y-r4bGO.js} +1 -1
  153. package/site/dist/assets/{circle-alert-DWaeLZNj.js → circle-alert-OwxamXUX.js} +1 -1
  154. package/site/dist/assets/{circle-check-big-Chb1ivw9.js → circle-check-big-3sZGVC10.js} +1 -1
  155. package/site/dist/assets/{circle-x-AV9Cet0R.js → circle-x-DQjNUV9J.js} +1 -1
  156. package/site/dist/assets/client-B-BpRtwY.js +1 -0
  157. package/site/dist/assets/client-BfIR1FvH.js +9 -0
  158. package/site/dist/assets/coinbase-DCPC2L_R-YEuIn3jh.js +3 -0
  159. package/site/dist/assets/{copy-Ckr0AkL6.js → copy-DMOX_yn7.js} +1 -1
  160. package/site/dist/assets/core-GIEmxmAa.js +12 -0
  161. package/site/dist/assets/{createLucideIcon-IPW50ckY.js → createLucideIcon-BsERoFTA.js} +1 -1
  162. package/site/dist/assets/{defineChain-CiuCXUZW.js → defineChain-B-SQDLTG.js} +1 -1
  163. package/site/dist/assets/{dijkstra-Drfl93V4.js → dijkstra-CY95afk4.js} +1 -1
  164. package/site/dist/assets/dist-Cp6IXeJd.js +1 -0
  165. package/site/dist/assets/{dist-Cm7pNAtL.js → dist-CrNxmdZj.js} +1 -1
  166. package/site/dist/assets/{dist-DnGANz51.js → dist-DYGtf4F0.js} +4 -4
  167. package/site/dist/assets/embed.worker-Cnl4VGr3.js +1 -0
  168. package/site/dist/assets/{errors-BQ3N-RVt-BLqjTPNR.js → errors-BQ3N-RVt-CZPAWCgC.js} +1 -1
  169. package/site/dist/assets/{esm-B5cbIQaz.js → esm-Co94ENUV.js} +17 -17
  170. package/site/dist/assets/{esm-ByALO6mA.js → esm-bb8SANZh.js} +1 -1
  171. package/site/dist/assets/{ethers-zTjbodk5-wHhL_BQ1.js → ethers-zTjbodk5-Cs648CnD.js} +1 -1
  172. package/site/dist/assets/{eventemitter3-CL76jPsW.js → eventemitter3-Dzc_0Uq2.js} +1 -1
  173. package/site/dist/assets/{external-link-D-uehwM2.js → external-link-BBPG3rG7.js} +1 -1
  174. package/site/dist/assets/{farcaster-DPlSjvF5-BqTvDXBR.js → farcaster-DPlSjvF5-CzBCmgyL.js} +1 -1
  175. package/site/dist/assets/{features-DQ0UYy6K.js → features-CuiHbgEJ.js} +1 -1
  176. package/site/dist/assets/{fingerprint-pattern-D8ytA16Q.js → fingerprint-pattern-CjLtyIxB.js} +1 -1
  177. package/site/dist/assets/floating-ui.react-DmaCfayr.js +1 -0
  178. package/site/dist/assets/{floating-ui.react-dom-DKWOL9UG.js → floating-ui.react-dom-CaoMF8mP.js} +1 -1
  179. package/site/dist/assets/{get-entropy-details-for-user-dHRH5Gpi-Dukf7_kJ.js → get-entropy-details-for-user-dHRH5Gpi-BNiOFXbK.js} +1 -1
  180. package/site/dist/assets/{getErc20Balance-jXNpFf0N-Bb9WM31M.js → getErc20Balance-jXNpFf0N-q4bV8kQq.js} +1 -1
  181. package/site/dist/assets/{getErc20TokenInfo-BNTrzLMP-KPrdn04K.js → getErc20TokenInfo-BNTrzLMP-DcnTFrXN.js} +1 -1
  182. package/site/dist/assets/{guards-BIW-GiMJ-CHfXo8XI.js → guards-BIW-GiMJ-D3tWTQAR.js} +1 -1
  183. package/site/dist/assets/{hourglass-CPG1HZmf.js → hourglass-D_GfQdJr.js} +1 -1
  184. package/site/dist/assets/{id-UqEwL2BI-BkKm533U.js → id-UqEwL2BI-CTlvRMA5.js} +1 -1
  185. package/site/dist/assets/{index-BdEw5wyl-ChSJvPZk.js → index-BdEw5wyl-kLbhqLbv.js} +1 -1
  186. package/site/dist/assets/index-C2h3EneX.js +8 -0
  187. package/site/dist/assets/{index-CWARkn2w-Cezl_uBr.js → index-CWARkn2w-DxuckIFn.js} +1 -1
  188. package/site/dist/assets/{index-DvMddJcd-BatvgC-S.js → index-DvMddJcd-CNBb4VUn.js} +1 -1
  189. package/site/dist/assets/{index-YiCw0Y_x-CX5i3Z87.js → index-YiCw0Y_x-Czl0tWfF.js} +5 -6
  190. package/site/dist/assets/{index.es-BmqyoBEM.js → index.es-Crd0TyUS.js} +1 -1
  191. package/site/dist/assets/index.es-DQbup1WG.js +3 -0
  192. package/site/dist/assets/{isPaymentRequestAvailable-Bq1cemEn-By6r0dVB.js → isPaymentRequestAvailable-Bq1cemEn-Cjf3l05I.js} +1 -1
  193. package/site/dist/assets/{jsx-runtime-BbDfbRii.js → jsx-runtime-CndCZlyt.js} +1 -1
  194. package/site/dist/assets/{landmark-CH6LV6F0.js → landmark-BZPqMFEf.js} +1 -1
  195. package/site/dist/assets/lib-DGtzi2DK.js +1 -0
  196. package/site/dist/assets/{localBatchGatewayRequest-3kLrX_c7.js → localBatchGatewayRequest-B71J8sQ9.js} +7 -10
  197. package/site/dist/assets/{lock-DcskI4Bb.js → lock-DyN_c-ud.js} +1 -1
  198. package/site/dist/assets/{mail-Bs0r5yOi.js → mail-V_mcPb64.js} +1 -1
  199. package/site/dist/assets/{modal-context-CwmSeFcv-DruX9J1E.js → modal-context-CwmSeFcv-DPWNJrfK.js} +1 -1
  200. package/site/dist/assets/{ofetch.CWycOUEr-CHp-crOQ.js → ofetch.CWycOUEr-Duby3iHT.js} +1 -1
  201. package/site/dist/assets/parseEther-CHS0GNkM.js +1 -0
  202. package/site/dist/assets/{pkce-DXF0yKjP-ChQhE0st.js → pkce-DXF0yKjP-7_VY-d83.js} +1 -1
  203. package/site/dist/assets/preload-helper-CRzLMJPS.js +1 -0
  204. package/site/dist/assets/{privy-context-81KmsBw2-CjWGzyg7.js → privy-context-81KmsBw2-DiR6-Yq8.js} +1 -1
  205. package/site/dist/assets/{react-DrJ0MmMO.js → react-BfYA1q0G.js} +1 -1
  206. package/site/dist/assets/react-CK2HRI1t.js +1 -0
  207. package/site/dist/assets/{react-DQnMl2Xv.js → react-DxGeY8B8.js} +1 -1
  208. package/site/dist/assets/{react-dom-5dW7aKoP.js → react-dom-BI2Koe4o.js} +1 -1
  209. package/site/dist/assets/{reservoir-x-nGuZkT-BMX127i6.js → reservoir-x-nGuZkT-BguVFH3D.js} +1 -1
  210. package/site/dist/assets/roles-BDPDWrwo.js +1 -0
  211. package/site/dist/assets/rolldown-runtime-Bjp52BOI.js +1 -0
  212. package/site/dist/assets/secp256k1-BeYL8aZl.js +1 -0
  213. package/site/dist/assets/{secp256k1-_MleGpqL.js → secp256k1-Bh4MSkhz.js} +1 -1
  214. package/site/dist/assets/secp256k1-Ci4cqHl0.js +1 -0
  215. package/site/dist/assets/secp256k1-DsxXqbXv.js +1 -0
  216. package/site/dist/assets/secp256k1-N9RUmafO.js +1 -0
  217. package/site/dist/assets/{serializeAuthorizationList-CX8hGL56.js → serializeAuthorizationList-DGMik9Wx.js} +1 -1
  218. package/site/dist/assets/{serializeSignature-DfxkPnu-.js → serializeSignature-CWKpxoab.js} +1 -1
  219. package/site/dist/assets/sha2-C6s7zZmb.js +1 -0
  220. package/site/dist/assets/{shared-DRZUmnL5-xqAUARWo.js → shared-DRZUmnL5-BewE5wK8.js} +1 -1
  221. package/site/dist/assets/{shared-FM0rljBt--Avg6q2R.js → shared-FM0rljBt-CxLACri_.js} +1 -1
  222. package/site/dist/assets/shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-BkAKsRNi.js +1 -0
  223. package/site/dist/assets/{simulateTransaction-CfuOrae4-64lWYJAL.js → simulateTransaction-CfuOrae4-PjA_tGjX.js} +1 -1
  224. package/site/dist/assets/{smartphone-CcEZ-XAy.js → smartphone-3p8nFSTE.js} +1 -1
  225. package/site/dist/assets/{storage-Ufl800Ne-D0bZBw-H.js → storage-Ufl800Ne-1qCR2JMO.js} +7 -8
  226. package/site/dist/assets/{stringify-BlDm7tuc.js → stringify-DqUj9VzO.js} +2 -3
  227. package/site/dist/assets/stripe.esm-DEi2D291.js +2 -0
  228. package/site/dist/assets/{styles-BsotlekN-CXEB4Ud9.js → styles-BsotlekN-Aq27nZGc.js} +1 -1
  229. package/site/dist/assets/{styles-Cm9H63WO-Br4QtzUL.js → styles-Cm9H63WO-p_ic_dxE.js} +1 -1
  230. package/site/dist/assets/{styles-DVyDvTdj-BTABn2K8.js → styles-DVyDvTdj-CjsWqAld.js} +1 -1
  231. package/site/dist/assets/{styles-hslXy6xG-D-49b1rk.js → styles-hslXy6xG-D5QHIrJU.js} +1 -1
  232. package/site/dist/assets/{telegram-B-JqnkqZ-RBoY3PLx.js → telegram-B-JqnkqZ-Dqkm4rDn.js} +1 -1
  233. package/site/dist/assets/{to-ui-error-DWe-qwS3-Cx2bk1kZ.js → to-ui-error-DWe-qwS3-Bi1HUQI9.js} +1 -1
  234. package/site/dist/assets/toViemAccount-B5iDGq1b-CdFZwv07.js +2 -0
  235. package/site/dist/assets/transformers.web-BTyOEJ0C.js +40 -0
  236. package/site/dist/assets/transformers.web-CUZUFjAK.js +49 -0
  237. package/site/dist/assets/{triangle-alert-CWjYH75H.js → triangle-alert-BG3Qw-Hq.js} +1 -1
  238. package/site/dist/assets/{twitch-5IOe4sIQ-lDtgk0os.js → twitch-5IOe4sIQ-CaXHFlAu.js} +1 -1
  239. package/site/dist/assets/{use-headless-crypto-deposit-Yn-QRLB3-LUIVFBSd.js → use-headless-crypto-deposit-Yn-QRLB3-CQqeyhGY.js} +1 -1
  240. package/site/dist/assets/{use-unlink-wallet-BKK4_5Ur-CC2pq27z.js → use-unlink-wallet-BKK4_5Ur-C0xQN_Lp.js} +1 -1
  241. package/site/dist/assets/{useActiveWallet-B-yZYGc6-D7Ik-LxJ.js → useActiveWallet-B-yZYGc6-BkK6rFBm.js} +1 -1
  242. package/site/dist/assets/{useGetSolPrice-x7gfUIHJ-D1hmQfpA.js → useGetSolPrice-x7gfUIHJ-CLVXqv6I.js} +1 -1
  243. package/site/dist/assets/{useGetTokenPrice-CaoUkb79-ZnbuJ-vP.js → useGetTokenPrice-CaoUkb79-DAXXs3rs.js} +1 -1
  244. package/site/dist/assets/{useI18n-C-5n_noF-BcqC76yj.js → useI18n-C-5n_noF-CGpkgIVy.js} +1 -1
  245. package/site/dist/assets/{useWalletBalance-CZnP5f_f-Dw2GIJ4g.js → useWalletBalance-CZnP5f_f-Cfd64m4n.js} +1 -1
  246. package/site/dist/assets/{useWallets-X1ndvJ_U-DRjz7uYD.js → useWallets-X1ndvJ_U-CAYqg7Za.js} +1 -1
  247. package/site/dist/assets/{w3m-modal-BeVrBOIf.js → w3m-modal-B4H_uiPH.js} +2 -2
  248. package/site/dist/assets/{wallet-Bn85Sg2W.js → wallet-BNI12IYk.js} +1 -1
  249. package/site/dist/assets/wallet-CITSaPlB.js +2 -0
  250. package/site/dist/assets/{wallet-connect-BvJtUsDt-Y03hhqFN.js → wallet-connect-BvJtUsDt-CVlSNIXP.js} +1 -1
  251. package/site/dist/assets/{walletconnect-registry-xxG8XLCb-D1SSFvMp.js → walletconnect-registry-xxG8XLCb-BpzpBq5s.js} +1 -1
  252. package/site/dist/assets/walletconnect-v2-3frQFwbg-CzZ6oybX.js +12 -0
  253. package/site/dist/assets/{wui-ux-by-reown-D34ILNLS.js → wui-ux-by-reown-XyHdtV1O.js} +1 -1
  254. package/site/dist/assets/x-gjDrY2rk.js +1 -0
  255. package/site/dist/index.html +5 -5
  256. package/site/feed.js +16 -1
  257. package/site/no-model.js +4 -0
  258. package/site/worker.js +586 -59
  259. package/src/agent/agent-card.js +20 -11
  260. package/src/agent/mcp.js +190 -324
  261. package/src/agent/view-tools.js +46 -13
  262. package/src/agent/x402.js +340 -44
  263. package/src/core/embed.js +51 -52
  264. package/src/core/embed.worker.js +1 -1
  265. package/src/core/shard.js +7 -3
  266. package/src/discover/apps.js +41 -5
  267. package/src/discover/explore.js +50 -30
  268. package/src/market/reactions.js +2 -2
  269. package/src/publish/devnet.js +95 -0
  270. package/src/publish/init.js +74 -0
  271. package/src/publish/lint.js +2 -1
  272. package/src/publish/ship.js +559 -267
  273. package/src/publish/view-cli.js +14 -10
  274. package/src/publish/view.js +355 -218
  275. package/src/taste/taste-doc.js +3 -2
  276. package/src/taste/taste.js +2 -2
  277. package/src/taste/vault.js +3 -1
  278. package/template/README.md +49 -0
  279. package/template/app.json +27 -0
  280. package/template/eval/goals.md +7 -0
  281. package/template/eval/golden.jsonl +0 -0
  282. package/template/gitignore +3 -0
  283. package/template/package.json +13 -0
  284. package/template/wrangler.json +12 -0
  285. package/site/dist/assets/BridgeNetworkSelectionView-CFGjB2nO-CvsbQcFv.js +0 -68
  286. package/site/dist/assets/ConnectOrCreateScreen-CUUYUO07-crHzh-TL.js +0 -1
  287. package/site/dist/assets/ConnectWalletView-DqI-PTvX-CMQIad63.js +0 -74
  288. package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-wu3a3kw4.js +0 -1
  289. package/site/dist/assets/ErrorScreen-DipdTWzE-DcxVjMO4.js +0 -1
  290. package/site/dist/assets/FiatOnrampScreen-BAhYeiTI-BH_sU6EV.js +0 -491
  291. package/site/dist/assets/LandingScreen-CGWUoSUG-DK1EY-6v.js +0 -1
  292. package/site/dist/assets/LinkEmailScreen-dKo9frwc-C3v7glH0.js +0 -1
  293. package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-DYIl5Kr2.js +0 -1
  294. package/site/dist/assets/WalletOverflowButton-bfCnp-9T-CUyIJFzt.js +0 -1
  295. package/site/dist/assets/__vite-browser-external-CitKSmYk.js +0 -1
  296. package/site/dist/assets/_esm-B26FZg5Y.js +0 -7
  297. package/site/dist/assets/accounts-DiZ-0VmN.js +0 -1
  298. package/site/dist/assets/ccip-DA_zG341.js +0 -1
  299. package/site/dist/assets/check-BPgcwEPP.js +0 -1
  300. package/site/dist/assets/client-CZG0ndth.js +0 -2
  301. package/site/dist/assets/client-Dsa7_3V3.js +0 -9
  302. package/site/dist/assets/coinbase-DCPC2L_R-D3aIgpyd.js +0 -3
  303. package/site/dist/assets/core-snws5xwv.js +0 -12
  304. package/site/dist/assets/dist-Dl07uGq1.js +0 -1
  305. package/site/dist/assets/embed.worker-ugGhEqCV.js +0 -1
  306. package/site/dist/assets/floating-ui.react-xRkl9O3u.js +0 -1
  307. package/site/dist/assets/index-1HYFYA-W.js +0 -8
  308. package/site/dist/assets/index.es-C1v1or--.js +0 -3
  309. package/site/dist/assets/lib-BsS8z8Lj.js +0 -1
  310. package/site/dist/assets/parseEther-VjhVo3dd.js +0 -1
  311. package/site/dist/assets/preload-helper-uBIymjUX.js +0 -1
  312. package/site/dist/assets/react-DCXkXSrv.js +0 -1
  313. package/site/dist/assets/roles-32M1l9jI.js +0 -1
  314. package/site/dist/assets/rolldown-runtime-BcKkbAw3.js +0 -1
  315. package/site/dist/assets/secp256k1-C4nzcPo-.js +0 -1
  316. package/site/dist/assets/secp256k1-D92aGNnU.js +0 -1
  317. package/site/dist/assets/secp256k1-DmbwyFau.js +0 -1
  318. package/site/dist/assets/secp256k1-xl2og-wO.js +0 -1
  319. package/site/dist/assets/sha2-BU_QyRTx.js +0 -1
  320. package/site/dist/assets/shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-BK_FBkaE.js +0 -1
  321. package/site/dist/assets/stripe.esm-CZRDpc-N.js +0 -2
  322. package/site/dist/assets/toViemAccount-B5iDGq1b-Ba8L7zed.js +0 -2
  323. package/site/dist/assets/transformers.web-CVP3pJOS.js +0 -40
  324. package/site/dist/assets/transformers.web-D8W1u_I2.js +0 -49
  325. package/site/dist/assets/wallet-Bnzeiqed.js +0 -2
  326. package/site/dist/assets/walletconnect-v2-3frQFwbg-CrtLXofr.js +0 -12
  327. package/site/dist/assets/x-rlSp9U7W.js +0 -1
@@ -30,6 +30,7 @@
30
30
  // they like drama. Subtracting the corpus mean from both sides asks the only
31
31
  // question worth asking: of the ways this catalogue varies, which ones are you?
32
32
  import { values } from "../core/roles.js";
33
+ import { EMBED_MODEL, EMBED_DIM } from "../core/embed.js";
33
34
 
34
35
  /** Below this a term's "meaning" is a handful of rows, and on a small enough
35
36
  * handful it is one row wearing a word — which is both noise and, on a corpus
@@ -223,7 +224,7 @@ export function tasteDoc({ t = null, catalogues = [], instructions = "", now = n
223
224
  "it down is for: a taste you cannot read is a taste you cannot correct.", "",
224
225
  "## For an agent reading this", "",
225
226
  "- Rank candidates by cosine to `q`, minus 0.6 times the positive part of cosine to `no`.",
226
- "- Every corpus on this network embeds with `nomic-embed-text-v1.5` truncated to 256",
227
+ `- Every corpus on this network embeds with \`${EMBED_MODEL}\` truncated to ${EMBED_DIM}`,
227
228
  " dimensions, so `q` is comparable against a catalogue this reader has never opened.",
228
229
  "- Diversify the result (MMR, lambda 0.7). Six episodes of one series is not a recommendation.",
229
230
  "- Do not re-recommend anything under *What I named*.",
@@ -313,7 +314,7 @@ if (typeof process !== "undefined" && import.meta.url === `file://${process.argv
313
314
  if (!md.startsWith("# taste.md")) throw new Error("it is a document, and it says so first");
314
315
  if (md.indexOf("No trailers. Ever.") > md.indexOf("What I am drawn to")) throw new Error("what the person wrote comes before what the machine inferred");
315
316
  if (!md.includes("**silent**") || md.includes("**newsreel**")) throw new Error("the prose must follow the vectors");
316
- if (!md.includes("nomic-embed-text-v1.5")) throw new Error("an agent reading this must be told what space q lives in");
317
+ if (!md.includes(EMBED_MODEL)) throw new Error("an agent reading this must be told what space q lives in");
317
318
  for (const h of ["## Standing instructions", "## What I am drawn to", "## What I pass on", "## Where I am heading", "## What I named", "## For an agent reading this"]) {
318
319
  if (!md.includes(h)) throw new Error(`missing section: ${h}`);
319
320
  }
@@ -29,7 +29,7 @@
29
29
  // no — the kernel's pass centroid (where you are NOT going)
30
30
 
31
31
  import { emptyKernel, onLike, onPass, queryVector } from "@fangorn-network/markov";
32
- import { packVec, unpackVec } from "../core/embed.js";
32
+ import { SPACE, packVec, unpackVec } from "../core/embed.js";
33
33
  import { cosine, diversify, norm } from "../core/rank.js";
34
34
 
35
35
  const unit = (v) => { if (!v) return null; const n = norm(v); const o = new Float32Array(v.length); for (let i = 0; i < v.length; i++) o[i] = v[i] / n; return o; };
@@ -188,7 +188,7 @@ export function discover(rows, likes = [], dislikes = [], { limit = 20, seed = 1
188
188
  * rather than a profile held about them.
189
189
  */
190
190
  export const exportTaste = (t) => t && ({
191
- v: 1, model: "nomic-256", drift: t.drift, n: t.n,
191
+ v: 1, model: SPACE, drift: t.drift, n: t.n,
192
192
  q: packVec(Array.from(t.q)),
193
193
  mu: packVec(Array.from(t.mu)),
194
194
  // The heading, not just the position. `q` is `mu + drift·v`, so an export
@@ -35,6 +35,8 @@
35
35
  // somewhere to put the version, and there is no second reader to coordinate with
36
36
  // yet. Add a `keyEpoch` to the vertex when one exists.
37
37
 
38
+ import { SPACE } from "../core/embed.js";
39
+
38
40
  const ENC = new TextEncoder();
39
41
  const DEC = new TextDecoder();
40
42
 
@@ -94,7 +96,7 @@ export async function open(key, blob) {
94
96
  export const TASTE_ID = "self/taste";
95
97
  export const tasteVertex = (blob) => ({
96
98
  id: TASTE_ID, tag: "taste",
97
- payload: { kind: "taste", model: "nomic-256", enc: `vault-v${VAULT_VERSION}`, blob: JSON.stringify(blob) },
99
+ payload: { kind: "taste", model: SPACE, enc: `vault-v${VAULT_VERSION}`, blob: JSON.stringify(blob) },
98
100
  });
99
101
 
100
102
  /** Pull the sealed blob back out of whatever `fangorn read` handed over. */
@@ -0,0 +1,49 @@
1
+ # A Fangorn app
2
+
3
+ This repo holds the app's recipe, not its data: what a record is (`app.json`), what a good
4
+ answer looks like (`eval/`), and the Worker that serves it (`wrangler.json`). It can be
5
+ public. The data lives on chain and IPFS, committed by the app's members; the Worker
6
+ indexes it every 5 minutes, and serves the site, the view, `/mcp` and the agent card.
7
+
8
+ ## Deploy
9
+
10
+ [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/fangorn-network/westmarch/tree/main/template)
11
+
12
+ 1. Claim the app at [fangorn.network](https://fangorn.network).
13
+ 2. Press the button. Name the Worker after the app (`my-app`) and its R2 bucket
14
+ `my-app-view`. Cloudflare copies this repo into your GitHub, makes the bucket and
15
+ deploys; every push to `main` deploys again.
16
+ 3. Back at fangorn.network, give the app its Worker's URL. Your wallet registers the
17
+ app's agent and binds its card there.
18
+
19
+ An app name with a dot or an underscore can't be a Worker name: set `"app"` in
20
+ `app.json` to the name you claimed.
21
+
22
+ `npm run build` (`westmarch build`) is what Cloudflare runs: it builds the site and writes
23
+ the app's config into `wrangler.json`, without signing or deploying anything.
24
+
25
+ ## Make it yours
26
+
27
+ Edit `app.json`: `name`, `description`, and the type: rename `my-app.item.v1` and map your
28
+ fields in `role_map`. Push, and the Worker follows.
29
+
30
+ ## Publish data
31
+
32
+ Any member of the app commits records of its type, from anywhere:
33
+
34
+ ```sh
35
+ echo '{"records":[{"id":"first","type":"my-app.item.v1","payload":{"id":"first","title":"Hello","text":"The first item.","tags":["demo"]}}]}' > items.json
36
+ fangorn --app my-app repo init items
37
+ fangorn --app my-app commit items.json -m "first items"
38
+ fangorn --app my-app push
39
+ ```
40
+
41
+ The view picks it up within 5 minutes at `<url>/view`. A source that crawls something
42
+ on a schedule goes in `app.json` `sources`, and ships with `npx westmarch-ship app.json`;
43
+ see westmarch's docs.
44
+
45
+ ## Keep it good
46
+
47
+ Write `eval/goals.md` (who it serves) and `eval/golden.jsonl` (one check per line:
48
+ `{"id","q","expect","min","goal"}`), then grade the live view:
49
+ `npx westmarch-eval <url>/view`.
@@ -0,0 +1,27 @@
1
+ {
2
+ "app": "my-app",
3
+ "name": "my-app",
4
+ "description": "One sentence: what is in here, and who it is for.",
5
+ "network": "baseSepolia",
6
+ "site": {
7
+ "project": "my-app",
8
+ "examples": []
9
+ },
10
+ "tags": [],
11
+ "types": {
12
+ "my-app.item.v1": {
13
+ "description": "One item: what a record is, in the words a searcher would use.",
14
+ "role_map": {
15
+ "identity": "id",
16
+ "title": "title",
17
+ "tags": ["tags"],
18
+ "text": ["text"]
19
+ },
20
+ "presentation": {
21
+ "types": { "my-app.item.v1": { "singular": "item", "plural": "items" } },
22
+ "facets": ["tags"]
23
+ }
24
+ }
25
+ },
26
+ "sources": []
27
+ }
@@ -0,0 +1,7 @@
1
+ # Goals
2
+
3
+ One section per kind of person this app serves. Each check in golden.jsonl names one with `goal`.
4
+
5
+ ## <goal-id>: who finds what
6
+ - **They ask:** two or three real questions, in their words.
7
+ - **Failure looks like:** what a wrong or missing answer would be.
File without changes
@@ -0,0 +1,3 @@
1
+ .ship/*
2
+ !.ship/state.json
3
+ node_modules/
@@ -0,0 +1,13 @@
1
+ {
2
+ "private": true,
3
+ "type": "module",
4
+ "scripts": {
5
+ "build": "westmarch build",
6
+ "deploy": "wrangler deploy"
7
+ },
8
+ "dependencies": {
9
+ "@fangorn-network/westmarch": "2026.10.22-dev",
10
+ "@huggingface/transformers": "^4.3.1",
11
+ "wrangler": "^4.83.0"
12
+ }
13
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "my-app",
3
+ "main": "node_modules/@fangorn-network/westmarch/site/worker.js",
4
+ "compatibility_date": "2025-09-15",
5
+ "compatibility_flags": ["nodejs_compat"],
6
+ "assets": { "directory": ".ship/site", "binding": "ASSETS" },
7
+ "r2_buckets": [{ "binding": "VIEW", "bucket_name": "my-app-view" }],
8
+ "ai": { "binding": "AI" },
9
+ "triggers": { "crons": ["*/5 * * * *"] },
10
+ "alias": { "@huggingface/transformers": "./node_modules/@fangorn-network/westmarch/site/no-model.js" },
11
+ "vars": {}
12
+ }
@@ -1,68 +0,0 @@
1
- import{s as e}from"./rolldown-runtime-BcKkbAw3.js";import{N as t,O as n}from"./esm-B5cbIQaz.js";import{t as r}from"./jsx-runtime-BbDfbRii.js";import{t as i}from"./react-DrJ0MmMO.js";import{c as a}from"./Loader-UAZqxsnw-Cy7hEE2f.js";import{c as o,t as s}from"./ModalFooter-BCuEK_nz-c-khvG4Y.js";import{C as c,S as l,T as u,w as d}from"./storage-Ufl800Ne-D0bZBw-H.js";import{$t as f,An as p,Cn as m,Dn as h,En as g,Fn as _,Gt as v,In as y,Jt as b,Kt as x,Ln as S,Mn as C,Nn as w,On as T,Pn as E,Qt as D,Sn as O,Tn as k,Ut as ee,Wt as te,Xt as ne,Yt as re,Zt as ie,_n as ae,an as oe,bn as se,cn as A,dn as ce,en as le,fn as ue,gn as de,hn as j,in as fe,jn as M,kn as pe,ln as me,mn as he,nn as ge,on as _e,pn as N,qt as ve,rn as ye,sn as be,tn as xe,un as Se,vn as Ce,wn as P,xn as we,yn as Te}from"./index-YiCw0Y_x-CX5i3Z87.js";import{t as Ee}from"./react-dom-5dW7aKoP.js";import{a as De,i as Oe,r as ke,s as Ae,t as je}from"./floating-ui.react-dom-DKWOL9UG.js";import{l as Me,n as Ne,o as Pe,u as Fe}from"./floating-ui.react-xRkl9O3u.js";import{t as Ie}from"./ChevronDownIcon-CW-4MSpE.js";import{t as Le}from"./WalletIcon-gKf0gTw6.js";import{t as Re}from"./ErrorMessage-D8VaAP5m-CrZOnUyg.js";import{n as ze,u as Be}from"./Layouts-BMRfo5hw-CeCOyCLK.js";import{t as Ve}from"./FundWalletMethodHeader-BWNkokCT-BQdbJ5Bb.js";import{t as He}from"./getChainName-DjpPdUSc-DUyKDrnp.js";import{t as Ue}from"./getErc20Balance-jXNpFf0N-Bb9WM31M.js";import{i as We,n as Ge,t as F}from"./Value-DTgR824E-BRuIGiec.js";import{t as Ke}from"./Subtitle-CV-2yKE4-zxWw2m1Q.js";import{t as qe}from"./Title-BnzYV3Is-B_JpTatT.js";import{t as Je}from"./Chip-CZKIKt9K-CutJG010.js";import{n as Ye}from"./TransferOrBridgeLoadingScreen-Dl1I_iIz-1fDAIxAf.js";import{n as Xe,t as Ze}from"./shared-FM0rljBt--Avg6q2R.js";import{t as Qe}from"./formatErc20TokenAmount-BuPk9xcy-BVqOKQif.js";import{t as $e}from"./ethers-zTjbodk5-wHhL_BQ1.js";import{a as et,c as tt,l as nt,n as rt,t as it}from"./styles-Cm9H63WO-Br4QtzUL.js";function at(e,t={}){let{key:n=`custom`,methods:r,name:i=`Custom Provider`,retryDelay:a}=t;return({retryCount:o})=>d({key:n,methods:r,name:i,request:e.request.bind(e),retryCount:t.retryCount??o,retryDelay:a,type:`custom`})}var I=e=>st(e)?e.document:ct(e)?e:e?.ownerDocument??(typeof document<`u`?document:void 0),L=e=>I(e)?.defaultView??(typeof window<`u`?window:void 0);function ot(e){return typeof e==`object`&&!!e&&`nodeType`in e&&typeof e.nodeType==`number`}function st(e){return typeof e==`object`&&!!e&&`window`in e&&e.window===e}function ct(e){return ot(e)&&e.nodeType===9}function lt(e){return ot(e)&&e.nodeType===11&&`host`in e}var ut=!1;function dt(){return ut}function R(e,t){if(!dt())return t&&e?e.contains(t):!1;if(!e||!t)return!1;let n=t;for(;n!==null;){if(n===e)return!0;n=typeof n.assignedElements!=`function`&&n.assignedSlot?.parentNode?n.assignedSlot.parentNode:lt(n)?n.host:n.parentNode}return!1}var z=(e=document)=>{if(!dt())return e.activeElement;let t=e.activeElement;for(;t&&`shadowRoot`in t&&t.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t};function B(e){if(dt()&&e.target instanceof Element&&e.target.shadowRoot){if(`composedPath`in e)return e.composedPath()[0]??null;if(`composedPath`in e.nativeEvent)return e.nativeEvent.composedPath()[0]??null}return e.target}function ft(e){if(mt())e.focus({preventScroll:!0});else{let t=ht(e);e.focus(),gt(t)}}var pt=null;function mt(){if(pt==null){pt=!1;try{document.createElement(`div`).focus({get preventScroll(){return pt=!0,!0}})}catch{}}return pt}function ht(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return r instanceof HTMLElement&&n.push({element:r,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}),n}function gt(e){for(let{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}var V=e(i(),1),_t=typeof document<`u`?V.useLayoutEffect:()=>{};function vt(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function yt(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function bt(e){let t=(0,V.useRef)({isFocused:!1,observer:null});return _t(()=>{let e=t.current;return()=>{e.observer&&=(e.observer.disconnect(),null)}},[]),(0,V.useCallback)(n=>{let r=B(n);if(r instanceof HTMLButtonElement||r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement||r instanceof HTMLSelectElement){t.current.isFocused=!0;let n=r;n.addEventListener(`focusout`,r=>{if(t.current.isFocused=!1,n.disabled){let t=vt(r);e?.(t)}t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)},{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&n.disabled){t.current.observer?.disconnect();let e=n===z()?null:z();n.dispatchEvent(new FocusEvent(`blur`,{relatedTarget:e})),n.dispatchEvent(new FocusEvent(`focusout`,{bubbles:!0,relatedTarget:e}))}}),t.current.observer.observe(n,{attributes:!0,attributeFilter:[`disabled`]})}},[e])}function xt(e){if(typeof window>`u`||window.navigator==null)return!1;let t=window.navigator.userAgentData?.brands;return Array.isArray(t)&&t.some(t=>e.test(t.brand))||e.test(window.navigator.userAgent)}function St(e){return typeof window<`u`&&window.navigator!=null&&e.test(window.navigator.userAgentData?.platform||window.navigator.platform)}function H(e){let t=null;return()=>(t??=e(),t)}var Ct=H(function(){return St(/^Mac/i)}),wt=H(function(){return St(/^iPhone/i)}),Tt=H(function(){return St(/^iPad/i)||Ct()&&navigator.maxTouchPoints>1}),Et=H(function(){return wt()||Tt()}),Dt=H(function(){return xt(/AppleWebKit/i)&&(Et()||!Ot())}),Ot=H(function(){return xt(/Chrome|CriOS|CrMo/i)}),kt=H(function(){return xt(/Android/i)}),At=H(function(){return xt(/(Firefox|FxiOS)/i)});function jt(e){return e.pointerType===``&&e.isTrusted?!0:kt()&&e.pointerType?e.type===`click`&&e.buttons===1:e.detail===0&&!e.pointerType}function U(e,t,n=!0){let{metaKey:r,ctrlKey:i,altKey:a,shiftKey:o}=t;!Dt()&&At()&&window.event?.type?.startsWith(`key`)&&e.target===`_blank`&&(Ct()?r=!0:i=!0);let s=Dt()&&Ct()&&!Tt()?new KeyboardEvent(`keydown`,{keyIdentifier:`Enter`,metaKey:r,ctrlKey:i,altKey:a,shiftKey:o}):new MouseEvent(`click`,{metaKey:r,ctrlKey:i,altKey:a,shiftKey:o,detail:1,bubbles:!0,cancelable:!0});U.isOpening=n,ft(e),e.dispatchEvent(s),U.isOpening=!1}U.isOpening=!1;var W=null,Mt=new Set,G=new Map,K=!1,q=!1,Nt={Tab:!0,Escape:!0};function Pt(e,t){for(let n of Mt)n(e,t)}function Ft(e){return!(e.metaKey||!Ct()&&e.altKey||e.ctrlKey||e.key===`Control`||e.key===`Shift`||e.key===`Meta`)}function It(e){K=!0,!U.isOpening&&Ft(e)&&(W=`keyboard`,Pt(`keyboard`,e))}function J(e){W=`pointer`,`pointerType`in e&&e.pointerType,(e.type===`mousedown`||e.type===`pointerdown`)&&(K=!0,Pt(`pointer`,e))}function Lt(e){!U.isOpening&&jt(e)&&(K=!0,W=`virtual`)}function Rt(e){let t=B(e),n=L(t),r=I(t);if(t===n){q=!0;return}t!==r&&e.isTrusted&&(!K&&!q&&(W=`virtual`,Pt(`virtual`,e)),K=!1,q=!1)}function zt(){K=!1,q=!0}function Bt(e){if(typeof window>`u`||typeof document>`u`)return;let t=L(e),n=I(e);if(G.get(t))return;let r=t.HTMLElement.prototype.focus;Reflect.defineProperty(t.HTMLElement.prototype,"focus",{configurable:!0,writable:!0,value:function(){K=!0,r.apply(this,arguments)}}),n.addEventListener(`keydown`,It,!0),n.addEventListener(`keyup`,It,!0),n.addEventListener(`click`,Lt,!0),t.addEventListener(`focus`,Rt,!0),t.addEventListener(`blur`,zt,!1),typeof PointerEvent<`u`&&(n.addEventListener(`pointerdown`,J,!0),n.addEventListener(`pointermove`,J,!0),n.addEventListener(`pointerup`,J,!0)),t.addEventListener(`beforeunload`,()=>{Vt(e)},{once:!0}),G.set(t,{focus:r})}var Vt=(e,t)=>{let n=L(e),r=I(e);t&&r.removeEventListener(`DOMContentLoaded`,t),G.has(n)&&(Reflect.defineProperty(n.HTMLElement.prototype,"focus",{configurable:!0,writable:!0,value:G.get(n).focus}),r.removeEventListener(`keydown`,It,!0),r.removeEventListener(`keyup`,It,!0),r.removeEventListener(`click`,Lt,!0),n.removeEventListener(`focus`,Rt,!0),n.removeEventListener(`blur`,zt,!1),typeof PointerEvent<`u`&&(r.removeEventListener(`pointerdown`,J,!0),r.removeEventListener(`pointermove`,J,!0),r.removeEventListener(`pointerup`,J,!0)),G.delete(n))};function Ht(e){let t=I(e),n;return t.readyState===`loading`?(n=()=>{Bt(e)},t.addEventListener(`DOMContentLoaded`,n)):Bt(e),()=>Vt(e,n)}typeof document<`u`&&Ht();function Ut(){return W!==`pointer`}var Wt=new Set([`checkbox`,`radio`,`range`,`color`,`file`,`image`,`button`,`submit`,`reset`]);function Gt(e,t,n){let r=n?B(n):void 0,i=I(r),a=L(r),o=a===void 0?HTMLInputElement:a.HTMLInputElement,s=a===void 0?HTMLTextAreaElement:a.HTMLTextAreaElement,c=a===void 0?HTMLElement:a.HTMLElement,l=a===void 0?KeyboardEvent:a.KeyboardEvent,u=z(i);return e=e||u instanceof o&&!Wt.has(u.type)||u instanceof s||u instanceof c&&u.isContentEditable,!(e&&t===`keyboard`&&n instanceof l&&!Nt[n.key])}function Kt(e,t,n){Bt(),(0,V.useEffect)(()=>{if(n?.enabled===!1)return;let t=(t,r)=>{Gt(!!n?.isTextInput,t,r)&&e(Ut())};return Mt.add(t),()=>{Mt.delete(t)}},t)}function qt(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:i}=e,a=(0,V.useCallback)(e=>{if(B(e)===e.currentTarget)return r&&r(e),i&&i(!1),!0},[r,i]),o=bt(a),s=(0,V.useCallback)(e=>{let t=B(e),r=I(t),a=r?z(r):z();t===e.currentTarget&&t===a&&(n&&n(e),i&&i(!0),o(e))},[i,n,o]);return{focusProps:{onFocus:!t&&(n||i||r)?s:void 0,onBlur:!t&&(r||i)?a:void 0}}}function Jt(){let e=(0,V.useRef)(new Map),t=(0,V.useCallback)((t,n,r,i)=>{let a=i?.once?(...t)=>{e.current.delete(r),r(...t)}:r;e.current.set(r,{type:n,eventTarget:t,fn:a,options:i}),t.addEventListener(n,a,i)},[]),n=(0,V.useCallback)((t,n,r,i)=>{let a=e.current.get(r)?.fn||r;t.removeEventListener(n,a,i),e.current.delete(r)},[]),r=(0,V.useCallback)(()=>{e.current.forEach((e,t)=>{n(e.eventTarget,e.type,t,e.options)})},[n]);return(0,V.useEffect)(()=>r,[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}function Yt(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:i}=e,a=(0,V.useRef)({isFocusWithin:!1}),{addGlobalListener:o,removeAllGlobalListeners:s}=Jt(),c=(0,V.useCallback)(e=>{R(e.currentTarget,B(e))&&a.current.isFocusWithin&&!R(e.currentTarget,e.relatedTarget)&&(a.current.isFocusWithin=!1,s(),n&&n(e),i&&i(!1))},[n,i,a,s]),l=bt(c),u=(0,V.useCallback)(e=>{if(!R(e.currentTarget,B(e)))return;let t=B(e),n=I(t),s=z(n);if(!a.current.isFocusWithin&&s===t){r&&r(e),i&&i(!0),a.current.isFocusWithin=!0,l(e);let t=e.currentTarget;o(n,`focus`,e=>{let r=B(e);if(a.current.isFocusWithin&&!R(t,r)){let e=new n.defaultView.FocusEvent(`blur`,{relatedTarget:r});yt(e,t);let i=vt(e);c(i)}},{capture:!0})}},[r,i,l,o,c]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:u,onBlur:c}}}function Xt(e={}){let{autoFocus:t=!1,isTextInput:n,within:r}=e,i=(0,V.useRef)({isFocused:!1,isFocusVisible:t||Ut()}),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(()=>i.current.isFocused&&i.current.isFocusVisible),l=(0,V.useCallback)(()=>c(i.current.isFocused&&i.current.isFocusVisible),[]),u=(0,V.useCallback)(e=>{i.current.isFocused=e,i.current.isFocusVisible=Ut(),o(e),l()},[l]);Kt(e=>{i.current.isFocusVisible=e,l()},[n,a],{enabled:a,isTextInput:n});let{focusProps:d}=qt({isDisabled:r,onFocusChange:u}),{focusWithinProps:f}=Yt({isDisabled:!r,onFocusWithinChange:u});return{isFocused:a,isFocusVisible:s,focusProps:r?f:d}}var Zt=!1,Qt=0;function $t(){Zt=!0,setTimeout(()=>{Zt=!1},500)}function en(e){e.pointerType===`touch`&&$t()}function tn(){let e=I(null);if(e!==void 0)return Qt===0&&typeof PointerEvent<`u`&&e.addEventListener(`pointerup`,en),Qt++,()=>{Qt--,!(Qt>0)&&typeof PointerEvent<`u`&&e.removeEventListener(`pointerup`,en)}}function nn(e){let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,isDisabled:i}=e,[a,o]=(0,V.useState)(!1),s=(0,V.useRef)({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:``,target:null}).current;(0,V.useEffect)(tn,[]);let{addGlobalListener:c,removeAllGlobalListeners:l}=Jt(),{hoverProps:u,triggerHoverEnd:d}=(0,V.useMemo)(()=>{let e=(e,r)=>{if(s.pointerType=r,i||r===`touch`||s.isHovered||!R(e.currentTarget,B(e)))return;s.isHovered=!0;let l=e.currentTarget;s.target=l,c(I(B(e)),`pointerover`,e=>{s.isHovered&&s.target&&!R(s.target,B(e))&&a(e,e.pointerType)},{capture:!0}),t&&t({type:`hoverstart`,target:l,pointerType:r}),n&&n(!0),o(!0)},a=(e,t)=>{let i=s.target;s.pointerType=``,s.target=null,t!==`touch`&&s.isHovered&&i&&(s.isHovered=!1,l(),r&&r({type:`hoverend`,target:i,pointerType:t}),n&&n(!1),o(!1))},u={};return typeof PointerEvent<`u`&&(u.onPointerEnter=t=>{Zt&&t.pointerType===`mouse`||e(t,t.pointerType)},u.onPointerLeave=e=>{!i&&R(e.currentTarget,B(e))&&a(e,e.pointerType)}),{hoverProps:u,triggerHoverEnd:a}},[t,n,r,i,s,c,l]);return(0,V.useEffect)(()=>{i&&d({currentTarget:s.target},s.pointerType)},[i]),{hoverProps:u,isHovered:a}}var rn=e(Ee(),1);function an(e){let t=e.width/2,n=e.height/2;return{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function on(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function sn({disabled:e=!1}={}){let t=(0,V.useRef)(null),[n,r]=(0,V.useState)(!1),i=E(),a=C(()=>{t.current=null,r(!1),i.dispose()}),o=C(e=>{if(i.dispose(),t.current===null){t.current=e.currentTarget,r(!0);{let n=S(e.currentTarget);i.addEventListener(n,`pointerup`,a,!1),i.addEventListener(n,`pointermove`,e=>{if(t.current){let n=an(e);r(on(n,t.current.getBoundingClientRect()))}},!1),i.addEventListener(n,`pointercancel`,a,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:o,onPointerUp:a,onClick:a}}}var cn=(0,V.createContext)(void 0);function ln(){return(0,V.useContext)(cn)}function un(e){let t=e.parentElement,n=null;for(;t&&!Ce(t);)de(t)&&(n=t),t=t.parentElement;let r=t?.getAttribute(`disabled`)===``;return r&&dn(n)?!1:r}function dn(e){if(!e)return!1;let t=e.previousElementSibling;for(;t!==null;){if(de(t))return!1;t=t.previousElementSibling}return!0}var fn=(0,V.createContext)(null);fn.displayName=`LabelContext`;function pn(){let e=(0,V.useContext)(fn);if(e===null){let e=Error(`You used a <Label /> component, but it is not inside a relevant parent.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,pn),e}return e}function mn(e){let t=(0,V.useContext)(fn)?.value??void 0;return(e?.length??0)>0?[t,...e].filter(Boolean).join(` `):t}function hn({inherit:e=!1}={}){let t=mn(),[n,r]=(0,V.useState)([]),i=e?[t,...n].filter(Boolean):n;return[i.length>0?i.join(` `):void 0,(0,V.useMemo)(()=>function(e){let t=C(e=>(r(t=>[...t,e]),()=>r(t=>{let n=t.slice(),r=n.indexOf(e);return r!==-1&&n.splice(r,1),n}))),n=(0,V.useMemo)(()=>({register:t,slot:e.slot,name:e.name,props:e.props,value:e.value}),[t,e.slot,e.name,e.props,e.value]);return V.createElement(fn.Provider,{value:n},e.children)},[r])]}var gn=`label`;function _n(e,t){let n=(0,P.useId)(),r=pn(),i=ln(),a=p(),{id:o=`headlessui-label-${n}`,htmlFor:s=i??r.props?.htmlFor,passive:c=!1,...l}=e,u=j(t);w(()=>r.register(o),[o,r.register]);let d=C(e=>{let t=e.currentTarget;if(!(e.target!==e.currentTarget&&ae(e.target))&&(we(t)&&e.preventDefault(),r.props&&`onClick`in r.props&&typeof r.props.onClick==`function`&&r.props.onClick(e),we(t))){let e=document.getElementById(t.htmlFor);if(e){let t=e.getAttribute(`disabled`);if(t===`true`||t===``)return;let n=e.getAttribute(`aria-disabled`);if(n===`true`||n===``)return;(se(e)&&(e.type===`file`||e.type===`radio`||e.type===`checkbox`)||e.role===`radio`||e.role===`checkbox`||e.role===`switch`)&&e.click(),e.focus({preventScroll:!0})}}}),f=M({...r.slot,disabled:a||!1}),m={ref:u,...r.props,id:o,htmlFor:s,onClick:d};return c&&(`onClick`in m&&(delete m.htmlFor,delete m.onClick),`onClick`in l&&delete l.onClick),g()({ourProps:m,theirProps:l,slot:f,defaultTag:s?gn:`div`,name:r.name||`Label`})}var vn=T(_n);Object.assign(vn,{});function yn(e){if(e===null)return{width:0,height:0};let{width:t,height:n}=e.getBoundingClientRect();return{width:t,height:n}}function bn(e,t,n=!1){let[r,i]=(0,V.useState)(()=>yn(t));return w(()=>{if(!t||!e)return;let n=_();return n.requestAnimationFrame(function e(){n.requestAnimationFrame(e),i(e=>{let n=yn(t);return n.width===e.width&&n.height===e.height?e:n})}),()=>{n.dispose()}},[t,e]),n?{width:`${r.width}px`,height:`${r.height}px`}:r}var xn=(e=>(e[e.Left=0]=`Left`,e[e.Right=2]=`Right`,e))(xn||{});function Sn(e){let t=(0,V.useRef)(null);return{onPointerDown:C(n=>{t.current=n.pointerType,!un(n.currentTarget)&&n.pointerType===`mouse`&&n.button===xn.Left&&(n.preventDefault(),e(n))}),onClick:C(n=>{t.current!==`mouse`&&(un(n.currentTarget)||e(n))})}}var Cn=(e=>(e[e.Ignore=0]=`Ignore`,e[e.Select=1]=`Select`,e[e.Close=2]=`Close`,e))(Cn||{}),wn={Ignore:{kind:0},Select:e=>({kind:1,target:e}),Close:{kind:2}},Tn=200,En=5;function Dn(e,{trigger:t,action:n,close:r,select:i}){let a=(0,V.useRef)(null),o=(0,V.useRef)(null),s=(0,V.useRef)(null);f(e&&t!==null,`pointerdown`,e=>{m(e?.target)&&t!=null&&t.contains(e.target)&&(o.current=e.x,s.current=e.y,a.current=e.timeStamp)}),f(e&&t!==null,`pointerup`,e=>{let t=a.current;if(t===null||(a.current=null,!Te(e.target))||Math.abs(e.x-(o.current??e.x))<En&&Math.abs(e.y-(s.current??e.y))<En)return;let c=n(e);switch(c.kind){case 0:return;case 1:e.timeStamp-t>Tn&&(i(c.target),r());break;case 2:r()}},{capture:!0})}function On(e,t){return(0,V.useMemo)(()=>{if(e.type)return e.type;let n=e.as??`button`;if(typeof n==`string`&&n.toLowerCase()===`button`||t?.tagName===`BUTTON`&&!t.hasAttribute(`type`))return`button`},[e.type,e.as,t])}function kn(e){return[e.screenX,e.screenY]}function An(){let e=(0,V.useRef)([-1,-1]);return{wasMoved(t){let n=kn(t);return e.current[0]===n[0]&&e.current[1]===n[1]?!1:(e.current=n,!0)},update(t){e.current=kn(t)}}}function jn(e,{container:t,accept:n,walk:r}){let i=(0,V.useRef)(n),a=(0,V.useRef)(r);(0,V.useEffect)(()=>{i.current=n,a.current=r},[n,r]),w(()=>{if(!t||!e)return;let n=S(t);if(!n)return;let r=i.current,o=a.current,s=Object.assign(e=>r(e),{acceptNode:r}),c=n.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,s,!1);for(;c.nextNode();)o(c.currentNode)},[t,e,i,a])}var Y=(0,V.createContext)({styles:void 0,setReference:()=>{},setFloating:()=>{},getReferenceProps:()=>({}),getFloatingProps:()=>({}),slot:{}});Y.displayName=`FloatingContext`;var Mn=(0,V.createContext)(null);Mn.displayName=`PlacementContext`;function Nn(e){return(0,V.useMemo)(()=>e?typeof e==`string`?{to:e}:e:null,[e])}function Pn(){return(0,V.useContext)(Y).setReference}function Fn(){return(0,V.useContext)(Y).getReferenceProps}function In(){let{getFloatingProps:e,slot:t}=(0,V.useContext)(Y);return(0,V.useCallback)((...n)=>Object.assign({},e(...n),{"data-anchor":t.anchor}),[e,t])}function Ln(e=null){e===!1&&(e=null),typeof e==`string`&&(e={to:e});let t=(0,V.useContext)(Mn),n=(0,V.useMemo)(()=>e,[JSON.stringify(e,(e,t)=>t?.outerHTML??t)]);w(()=>{t?.(n??null)},[t,n]);let r=(0,V.useContext)(Y);return(0,V.useMemo)(()=>[r.setFloating,e?r.styles:{}],[r.setFloating,e,r.styles])}var Rn=4;function zn({children:e,enabled:t=!0}){let[n,r]=(0,V.useState)(null),[i,a]=(0,V.useState)(0),o=(0,V.useRef)(null),[s,c]=(0,V.useState)(null);Bn(s);let l=t&&n!==null&&s!==null,{to:u=`bottom`,gap:d=0,offset:f=0,padding:p=0,inner:m}=Vn(n,s),[h,g=`center`]=u.split(` `);w(()=>{l&&a(0)},[l]);let{refs:_,floatingStyles:v,context:y}=Pe({open:l,placement:h===`selection`?g===`center`?`bottom`:`bottom-${g}`:g===`center`?`${h}`:`${h}-${g}`,strategy:`absolute`,transform:!1,middleware:[ke({mainAxis:h===`selection`?0:d,crossAxis:f}),Oe({padding:p}),h!==`selection`&&je({padding:p}),h===`selection`&&m?Ne({...m,padding:p,overflowRef:o,offset:i,minItemsVisible:Rn,referenceOverflowThreshold:p,onFallbackChange(e){if(!e)return;let t=y.elements.floating;if(!t)return;let n=parseFloat(getComputedStyle(t).scrollPaddingBottom)||0,r=Math.min(Rn,t.childElementCount),i=0,o=0;for(let e of y.elements.floating?.childNodes??[])if(O(e)){let a=e.offsetTop,s=a+e.clientHeight+n,c=t.scrollTop,l=c+t.clientHeight;if(a>=c&&s<=l)r--;else{o=Math.max(0,Math.min(s,l)-Math.max(a,c)),i=e.clientHeight;break}}r>=1&&a(e=>{let t=i*r-o+n;return e>=t?e:t})}}):null,De({padding:p,apply({availableWidth:e,availableHeight:t,elements:n}){Object.assign(n.floating.style,{overflow:`auto`,maxWidth:`${e}px`,maxHeight:`min(var(--anchor-max-height, 100vh), ${t}px)`})}})].filter(Boolean),whileElementsMounted:Ae}),[b=h,x=g]=y.placement.split(`-`);h===`selection`&&(b=`selection`);let S=(0,V.useMemo)(()=>({anchor:[b,x].filter(Boolean).join(` `)}),[b,x]),T=Me(y,{overflowRef:o,onChange:a}),{getReferenceProps:E,getFloatingProps:D}=Fe([T]),k=C(e=>{c(e),_.setFloating(e)});return V.createElement(Mn.Provider,{value:r},V.createElement(Y.Provider,{value:{setFloating:k,setReference:_.setReference,styles:v,getReferenceProps:E,getFloatingProps:D,slot:S}},e))}function Bn(e){w(()=>{if(!e)return;let t=new MutationObserver(()=>{let t=window.getComputedStyle(e).maxHeight,n=parseFloat(t);if(isNaN(n))return;let r=parseInt(t);isNaN(r)||n!==r&&(e.style.maxHeight=`${Math.ceil(n)}px`)});return t.observe(e,{attributes:!0,attributeFilter:[`style`]}),()=>{t.disconnect()}},[e])}function Vn(e,t){let n=Hn(e?.gap??`var(--anchor-gap, 0)`,t),r=Hn(e?.offset??`var(--anchor-offset, 0)`,t),i=Hn(e?.padding??`var(--anchor-padding, 0)`,t);return{...e,gap:n,offset:r,padding:i}}function Hn(e,t,n=void 0){let r=E(),i=C((e,t)=>{if(e==null)return[n,null];if(typeof e==`number`)return[e,null];if(typeof e==`string`){if(!t)return[n,null];let i=Wn(e,t);return[i,n=>{let a=Un(e);{let o=a.map(e=>window.getComputedStyle(t).getPropertyValue(e));r.requestAnimationFrame(function s(){r.nextFrame(s);let c=!1;for(let[e,n]of a.entries()){let r=window.getComputedStyle(t).getPropertyValue(n);if(o[e]!==r){o[e]=r,c=!0;break}}if(!c)return;let l=Wn(e,t);i!==l&&(n(l),i=l)})}return r.dispose}]}return[n,null]}),a=(0,V.useMemo)(()=>i(e,t)[0],[e,t]),[o=a,s]=(0,V.useState)();return w(()=>{let[n,r]=i(e,t);if(s(n),r)return r(s)},[e,t]),o}function Un(e){let t=/var\((.*)\)/.exec(e);if(t){let e=t[1].indexOf(`,`);if(e===-1)return[t[1]];let n=t[1].slice(0,e).trim(),r=t[1].slice(e+1).trim();return r?[n,...Un(r)]:[n]}return[]}function Wn(e,t){let n=document.createElement(`div`);t.appendChild(n),n.style.setProperty(`margin-top`,`0px`,`important`),n.style.setProperty(`margin-top`,e,`important`);let r=parseFloat(window.getComputedStyle(n).marginTop)||0;return t.removeChild(n),r}function Gn(e){throw Error(`Unexpected object: `+e)}var X=(e=>(e[e.First=0]=`First`,e[e.Previous=1]=`Previous`,e[e.Next=2]=`Next`,e[e.Last=3]=`Last`,e[e.Specific=4]=`Specific`,e[e.Nothing=5]=`Nothing`,e))(X||{});function Kn(e,t){let n=t.resolveItems();if(n.length<=0)return null;let r=t.resolveActiveIndex(),i=r??-1;switch(e.focus){case 0:for(let e=0;e<n.length;++e)if(!t.resolveDisabled(n[e],e,n))return e;return r;case 1:i===-1&&(i=n.length);for(let e=i-1;e>=0;--e)if(!t.resolveDisabled(n[e],e,n))return e;return r;case 2:for(let e=i+1;e<n.length;++e)if(!t.resolveDisabled(n[e],e,n))return e;return r;case 3:for(let e=n.length-1;e>=0;--e)if(!t.resolveDisabled(n[e],e,n))return e;return r;case 4:for(let r=0;r<n.length;++r)if(t.resolveId(n[r],r,n)===e.id)return r;return r;case 5:return null;default:Gn(e)}}var qn={Idle:{kind:`Idle`},Tracked:e=>({kind:`Tracked`,position:e}),Moved:{kind:`Moved`}};function Jn(e){let t=e.getBoundingClientRect();return`${t.x},${t.y}`}function Yn(e,t,n){let r=_();if(t.kind===`Tracked`){let i=function(){a!==Jn(e)&&(r.dispose(),n())},{position:a}=t,o=new ResizeObserver(i);o.observe(e),r.add(()=>o.disconnect()),r.addEventListener(window,`scroll`,i,{passive:!0}),r.addEventListener(window,`resize`,i)}return()=>r.dispose()}var Xn=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function Zn(e){let t=e.innerText??``,n=e.cloneNode(!0);if(!O(n))return t;let r=!1;for(let e of n.querySelectorAll(`[hidden],[aria-hidden],[role="img"]`))e.remove(),r=!0;let i=r?n.innerText??``:t;return Xn.test(i)&&(i=i.replace(Xn,``)),i}function Qn(e){let t=e.getAttribute(`aria-label`);if(typeof t==`string`)return t.trim();let n=e.getAttribute(`aria-labelledby`);if(n){let e=n.split(` `).map(e=>{let t=document.getElementById(e);if(t){let e=t.getAttribute(`aria-label`);return typeof e==`string`?e.trim():Zn(t).trim()}return null}).filter(Boolean);if(e.length>0)return e.join(`, `)}return Zn(e).trim()}function $n(e){let t=(0,V.useRef)(``),n=(0,V.useRef)(``);return C(()=>{let r=e.current;if(!r)return``;let i=r.innerText;if(t.current===i)return n.current;let a=Qn(r).trim().toLowerCase();return t.current=i,n.current=a,a})}var er=Object.defineProperty,tr=(e,t,n)=>t in e?er(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,nr=(e,t,n)=>(tr(e,typeof t==`symbol`?t:t+``,n),n),Z=(e=>(e[e.Open=0]=`Open`,e[e.Closed=1]=`Closed`,e))(Z||{}),rr=(e=>(e[e.Pointer=0]=`Pointer`,e[e.Other=1]=`Other`,e))(rr||{}),Q=(e=>(e[e.OpenMenu=0]=`OpenMenu`,e[e.CloseMenu=1]=`CloseMenu`,e[e.GoToItem=2]=`GoToItem`,e[e.Search=3]=`Search`,e[e.ClearSearch=4]=`ClearSearch`,e[e.RegisterItems=5]=`RegisterItems`,e[e.UnregisterItems=6]=`UnregisterItems`,e[e.SetButtonElement=7]=`SetButtonElement`,e[e.SetItemsElement=8]=`SetItemsElement`,e[e.SortItems=9]=`SortItems`,e[e.MarkButtonAsMoved=10]=`MarkButtonAsMoved`,e))(Q||{});function ir(e,t=e=>e){let n=e.activeItemIndex===null?null:e.items[e.activeItemIndex],r=le(t(e.items.slice()),e=>e.dataRef.current.domRef.current),i=n?r.indexOf(n):null;return i===-1&&(i=null),{items:r,activeItemIndex:i}}var ar={1(e){if(e.menuState===1)return e;let t=e.buttonElement?qn.Tracked(Jn(e.buttonElement)):e.buttonPositionState;return{...e,activeItemIndex:null,pendingFocus:{focus:X.Nothing},menuState:1,buttonPositionState:t}},0(e,t){return e.menuState===0?e:{...e,__demoMode:!1,pendingFocus:t.focus,menuState:0,buttonPositionState:qn.Idle}},2:(e,t)=>{if(e.menuState===1)return e;let n={...e,searchQuery:``,activationTrigger:t.trigger??1,__demoMode:!1};if(t.focus===X.Nothing)return{...n,activeItemIndex:null};if(t.focus===X.Specific)return{...n,activeItemIndex:e.items.findIndex(e=>e.id===t.id)};if(t.focus===X.Previous){let r=e.activeItemIndex;if(r!==null){let i=e.items[r].dataRef.current.domRef,a=Kn(t,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});if(a!==null){let t=e.items[a].dataRef.current.domRef;if(i.current?.previousElementSibling===t.current||t.current?.previousElementSibling===null)return{...n,activeItemIndex:a}}}}else if(t.focus===X.Next){let r=e.activeItemIndex;if(r!==null){let i=e.items[r].dataRef.current.domRef,a=Kn(t,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});if(a!==null){let t=e.items[a].dataRef.current.domRef;if(i.current?.nextElementSibling===t.current||t.current?.nextElementSibling===null)return{...n,activeItemIndex:a}}}}let r=ir(e),i=Kn(t,{resolveItems:()=>r.items,resolveActiveIndex:()=>r.activeItemIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});return{...n,...r,activeItemIndex:i}},3:(e,t)=>{let n=+(e.searchQuery===``),r=e.searchQuery+t.value.toLowerCase(),i=(e.activeItemIndex===null?e.items:e.items.slice(e.activeItemIndex+n).concat(e.items.slice(0,e.activeItemIndex+n))).find(e=>e.dataRef.current.textValue?.startsWith(r)&&!e.dataRef.current.disabled),a=i?e.items.indexOf(i):-1;return a===-1||a===e.activeItemIndex?{...e,searchQuery:r}:{...e,searchQuery:r,activeItemIndex:a,activationTrigger:1}},4(e){return e.searchQuery===``?e:{...e,searchQuery:``,searchActiveItemIndex:null}},5:(e,t)=>{let n=e.items.concat(t.items.map(e=>e)),r=e.activeItemIndex;return e.pendingFocus.focus!==X.Nothing&&(r=Kn(e.pendingFocus,{resolveItems:()=>n,resolveActiveIndex:()=>e.activeItemIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled})),{...e,items:n,activeItemIndex:r,pendingFocus:{focus:X.Nothing},pendingShouldSort:!0}},6:(e,t)=>{let n=e.items,r=[],i=new Set(t.items);for(let[e,t]of n.entries())if(i.has(t.id)&&(r.push(e),i.delete(t.id),i.size===0))break;if(r.length>0){n=n.slice();for(let e of r.reverse())n.splice(e,1)}return{...e,items:n,activationTrigger:1}},7:(e,t)=>e.buttonElement===t.element?e:{...e,buttonElement:t.element},8:(e,t)=>e.itemsElement===t.element?e:{...e,itemsElement:t.element},9:e=>e.pendingShouldSort?{...e,...ir(e),pendingShouldSort:!1}:e,10(e){return e.buttonPositionState.kind===`Tracked`?{...e,buttonPositionState:qn.Moved}:e}},or=class e extends ce{constructor(e){super(e),nr(this,`actions`,{registerItem:ue(()=>{let e=[],t=new Set;return[(n,r)=>{t.has(r)||(t.add(r),e.push({id:n,dataRef:r}))},()=>(t.clear(),this.send({type:5,items:e.splice(0)}))]}),unregisterItem:ue(()=>{let e=[];return[t=>e.push(t),()=>this.send({type:6,items:e.splice(0)})]})}),nr(this,`selectors`,{activeDescendantId(e){var t;let n=e.activeItemIndex,r=e.items;return n===null||(t=r[n])==null?void 0:t.id},isActive(e,t){let n=e.activeItemIndex,r=e.items;return n!==null&&r[n]?.id===t},shouldScrollIntoView(e,t){return e.__demoMode||e.menuState!==0||e.activationTrigger===0?!1:this.isActive(e,t)},didButtonMove(e){return e.buttonPositionState.kind===`Moved`}}),this.on(5,()=>{this.disposables.requestAnimationFrame(()=>{this.send({type:9})})});{let e=this.state.id,t=Se.get(null);this.disposables.add(t.on(me.Push,n=>{!t.selectors.isTop(n,e)&&this.state.menuState===0&&this.send({type:1})})),this.on(0,()=>t.actions.push(e)),this.on(1,()=>t.actions.pop(e))}this.disposables.group(e=>{this.on(1,t=>{t.buttonElement&&(e.dispose(),e.add(Yn(t.buttonElement,t.buttonPositionState,()=>{this.send({type:10})})))})})}static new({id:t,__demoMode:n=!1}){return new e({id:t,__demoMode:n,menuState:+!n,buttonElement:null,itemsElement:null,items:[],searchQuery:``,activeItemIndex:null,activationTrigger:1,pendingShouldSort:!1,pendingFocus:{focus:X.Nothing},buttonPositionState:qn.Idle})}reduce(e,t){return pe(t.type,ar,e,t)}},sr=(0,V.createContext)(null);function cr(e){let t=(0,V.useContext)(sr);if(t===null){let t=Error(`<${e} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,lr),t}return t}function lr({id:e,__demoMode:t=!1}){let n=(0,V.useMemo)(()=>or.new({id:e,__demoMode:t}),[]);return te(()=>n.dispose()),n}var ur=V.Fragment;function dr(e,t){let n=(0,P.useId)(),{__demoMode:r=!1,...i}=e,a=lr({id:n,__demoMode:r}),[o,s,c]=A(a,e=>[e.menuState,e.itemsElement,e.buttonElement]),l=j(t),u=Se.get(null),d=A(u,(0,V.useCallback)(e=>u.selectors.isTop(e,n),[u,n]));D(d,[c,s],(e,t)=>{var n;a.send({type:Q.CloseMenu}),xe(t,ge.Loose)||(e.preventDefault(),(n=a.state.buttonElement)==null||n.focus())});let f=C(()=>{a.send({type:Q.CloseMenu})}),p=M({open:o===Z.Open,close:f}),m={ref:l},h=g();return V.createElement(zn,null,V.createElement(sr.Provider,{value:a},V.createElement(v,{value:pe(o,{[Z.Open]:x.Open,[Z.Closed]:x.Closed})},h({ourProps:m,theirProps:i,slot:p,defaultTag:ur,name:`Menu`}))))}var fr=`button`;function pr(e,t){let n=cr(`Menu.Button`),r=(0,P.useId)(),{id:i=`headlessui-menu-button-${r}`,disabled:a=!1,autoFocus:o=!1,...s}=e,c=(0,V.useRef)(null),l=Fn(),u=j(t,c,Pn(),C(e=>n.send({type:Q.SetButtonElement,element:e}))),d=C(e=>{switch(e.key){case N.Space:case N.Enter:case N.ArrowDown:e.preventDefault(),e.stopPropagation(),n.send({type:Q.OpenMenu,focus:{focus:X.First}});break;case N.ArrowUp:e.preventDefault(),e.stopPropagation(),n.send({type:Q.OpenMenu,focus:{focus:X.Last}})}}),f=C(e=>{switch(e.key){case N.Space:e.preventDefault()}}),[p,m,_]=A(n,e=>[e.menuState,e.buttonElement,e.itemsElement]);Dn(p===Z.Open,{trigger:m,action:(0,V.useCallback)(e=>{if(m!=null&&m.contains(e.target))return wn.Ignore;let t=e.target.closest(`[role="menuitem"]:not([data-disabled])`);return O(t)?wn.Select(t):_!=null&&_.contains(e.target)?wn.Ignore:wn.Close},[m,_]),close:(0,V.useCallback)(()=>n.send({type:Q.CloseMenu}),[]),select:(0,V.useCallback)(e=>e.click(),[])});let v=Sn(e=>{var t;a||(p===Z.Open?((0,rn.flushSync)(()=>n.send({type:Q.CloseMenu})),(t=c.current)==null||t.focus({preventScroll:!0})):(e.preventDefault(),n.send({type:Q.OpenMenu,focus:{focus:X.Nothing},trigger:rr.Pointer})))}),{isFocusVisible:y,focusProps:b}=Xt({autoFocus:o}),{isHovered:x,hoverProps:S}=nn({isDisabled:a}),{pressed:w,pressProps:T}=sn({disabled:a}),E=M({open:p===Z.Open,active:w||p===Z.Open,disabled:a,hover:x,focus:y,autofocus:o}),D=h(l(),{ref:u,id:i,type:On(e,c.current),"aria-haspopup":`menu`,"aria-controls":_?.id,"aria-expanded":p===Z.Open,disabled:a||void 0,autoFocus:o,onKeyDown:d,onKeyUp:f},v,b,S,T);return g()({ourProps:D,theirProps:s,slot:E,defaultTag:fr,name:`Menu.Button`})}var mr=`div`,hr=k.RenderStrategy|k.Static;function gr(e,t){let n=(0,P.useId)(),{id:r=`headlessui-menu-items-${n}`,anchor:i,portal:a=!1,modal:o=!0,transition:s=!1,...c}=e,l=Nn(i),u=cr(`Menu.Items`),[d,f]=Ln(l),p=In(),[m,_]=(0,V.useState)(null),v=j(t,l?d:null,C(e=>u.send({type:Q.SetItemsElement,element:e})),_),[S,w]=A(u,e=>[e.menuState,e.buttonElement]),T=ie(w),D=ie(m);l&&(a=!0);let O=ve(),[k,te]=b(s,m,O===null?S===Z.Open:(O&x.Open)===x.Open);_e(k,w,()=>{u.send({type:Q.CloseMenu})});let ae=A(u,e=>e.__demoMode),se=!ae&&o&&S===Z.Open;ne(se,D);let ce=!ae&&o&&S===Z.Open;be(ce,{allowed:(0,V.useCallback)(()=>[w,m],[w,m])});let le=!A(u,u.selectors.didButtonMove)&&k;(0,V.useEffect)(()=>{let e=m;e&&S===Z.Open&&(y(e)||e.focus({preventScroll:!0}))},[S,m]),jn(S===Z.Open,{container:m,accept(e){return e.getAttribute(`role`)===`menuitem`?NodeFilter.FILTER_REJECT:e.hasAttribute(`role`)?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(e){e.setAttribute(`role`,`none`)}});let ue=E(),de=C(e=>{var t,n;switch(ue.dispose(),e.key){case N.Space:if(u.state.searchQuery!==``)return e.preventDefault(),e.stopPropagation(),u.send({type:Q.Search,value:e.key});case N.Enter:if(e.preventDefault(),e.stopPropagation(),u.state.activeItemIndex!==null){let{dataRef:e}=u.state.items[u.state.activeItemIndex];(t=e.current?.domRef.current)==null||t.click()}u.send({type:Q.CloseMenu}),ye(u.state.buttonElement);break;case N.ArrowDown:return e.preventDefault(),e.stopPropagation(),u.send({type:Q.GoToItem,focus:X.Next});case N.ArrowUp:return e.preventDefault(),e.stopPropagation(),u.send({type:Q.GoToItem,focus:X.Previous});case N.Home:case N.PageUp:return e.preventDefault(),e.stopPropagation(),u.send({type:Q.GoToItem,focus:X.First});case N.End:case N.PageDown:return e.preventDefault(),e.stopPropagation(),u.send({type:Q.GoToItem,focus:X.Last});case N.Escape:e.preventDefault(),e.stopPropagation(),(0,rn.flushSync)(()=>u.send({type:Q.CloseMenu})),(n=u.state.buttonElement)==null||n.focus({preventScroll:!0});break;case N.Tab:e.preventDefault(),e.stopPropagation(),(0,rn.flushSync)(()=>u.send({type:Q.CloseMenu})),fe(u.state.buttonElement,e.shiftKey?oe.Previous:oe.Next);break;default:e.key.length===1&&(u.send({type:Q.Search,value:e.key}),ue.setTimeout(()=>u.send({type:Q.ClearSearch}),350))}}),pe=C(e=>{switch(e.key){case N.Space:e.preventDefault()}}),me=M({open:S===Z.Open}),he=h(l?p():{},{"aria-activedescendant":A(u,u.selectors.activeDescendantId),"aria-labelledby":A(u,e=>e.buttonElement?.id),id:r,onKeyDown:de,onKeyUp:pe,role:`menu`,tabIndex:S===Z.Open?0:void 0,ref:v,style:{...c.style,...f,"--button-width":bn(k,w,!0).width},...re(te)}),ge=g();return V.createElement(ee,{enabled:a?e.static||k:!1,ownerDocument:T},ge({ourProps:he,theirProps:c,slot:me,defaultTag:mr,features:hr,visible:le,name:`Menu.Items`}))}var _r=V.Fragment;function vr(e,t){let n=(0,P.useId)(),{id:r=`headlessui-menu-item-${n}`,disabled:i=!1,...a}=e,o=cr(`Menu.Item`),s=A(o,e=>o.selectors.isActive(e,r)),c=(0,V.useRef)(null),l=j(t,c),u=A(o,e=>o.selectors.shouldScrollIntoView(e,r));w(()=>{if(u)return _().requestAnimationFrame(()=>{var e,t;(t=(e=c.current)?.scrollIntoView)==null||t.call(e,{block:`nearest`})})},[u,c]);let d=$n(c),f=(0,V.useRef)({disabled:i,domRef:c,get textValue(){return d()}});w(()=>{f.current.disabled=i},[f,i]),w(()=>(o.actions.registerItem(r,f),()=>o.actions.unregisterItem(r)),[f,r]);let p=C(()=>{o.send({type:Q.CloseMenu})}),m=C(e=>{if(i)return e.preventDefault();o.send({type:Q.CloseMenu}),ye(o.state.buttonElement)}),h=C(()=>{if(i)return o.send({type:Q.GoToItem,focus:X.Nothing});o.send({type:Q.GoToItem,focus:X.Specific,id:r})}),v=An(),y=C(e=>v.update(e)),b=C(e=>{v.wasMoved(e)&&(i||s||o.send({type:Q.GoToItem,focus:X.Specific,id:r,trigger:rr.Pointer}))}),x=C(e=>{v.wasMoved(e)&&(i||s&&o.state.activationTrigger===rr.Pointer&&o.send({type:Q.GoToItem,focus:X.Nothing}))}),[S,T]=hn(),[E,D]=he(),O=M({active:s,focus:s,disabled:i,close:p}),k={id:r,ref:l,role:`menuitem`,tabIndex:i===!0?void 0:-1,"aria-disabled":i===!0||void 0,"aria-labelledby":S,"aria-describedby":E,disabled:void 0,onClick:m,onFocus:h,onPointerEnter:y,onMouseEnter:y,onPointerMove:b,onMouseMove:b,onPointerLeave:x,onMouseLeave:x},ee=g();return V.createElement(T,null,V.createElement(D,null,ee({ourProps:k,theirProps:a,slot:O,defaultTag:_r,name:`Menu.Item`})))}var yr=`div`;function br(e,t){let[n,r]=hn(),i=e,a={ref:t,"aria-labelledby":n,role:`group`},o=g();return V.createElement(r,null,o({ourProps:a,theirProps:i,slot:{},defaultTag:yr,name:`Menu.Section`}))}var xr=`header`;function Sr(e,t){let n=(0,P.useId)(),{id:r=`headlessui-menu-heading-${n}`,...i}=e,a=pn();w(()=>a.register(r),[r,a.register]);let o={id:r,ref:t,role:`presentation`,...a.props};return g()({ourProps:o,theirProps:i,slot:{},defaultTag:xr,name:`Menu.Heading`})}var Cr=`div`;function wr(e,t){let n=e,r={ref:t,role:`separator`};return g()({ourProps:r,theirProps:n,slot:{},defaultTag:Cr,name:`Menu.Separator`})}var Tr=T(dr),Er=T(pr),Dr=T(gr),Or=T(vr),kr=T(br),Ar=T(Sr),jr=T(wr),Mr=Object.assign(Tr,{Button:Er,Items:Dr,Item:Or,Section:kr,Heading:Ar,Separator:jr}),$=r(),Nr=({chains:e,appId:n,address:r,rpcConfig:i})=>Promise.all(e.map((async e=>{let a=await u({chain:e,transport:c(l(e,i,n))}).getBalance({address:r}).catch((()=>0n)),o=null,s=t[e.id];if(s){let{balance:t}=await Ue({address:r,chain:e,rpcConfig:i,appId:n,erc20Address:s});o=t}return{balance:a,erc20Balance:o,erc20Address:s,chain:e}}))),Pr=({balance:e,className:t,chain:n})=>(0,$.jsx)(Ze,{className:t,$state:void 0,children:(0,$.jsx)(Fr,{balance:e,chain:n})}),Fr=({balance:e,chain:t})=>(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(Ir,{children:[(0,$.jsx)(Rr,{chainId:typeof t==`object`?t.id:`solana`}),(0,$.jsx)(Ge,{children:typeof t==`object`?t.name:He(t)})]}),(0,$.jsxs)(Je,{isLoading:!1,isPulsing:!1,color:`gray`,children:[(0,$.jsx)(Lr,{children:(0,$.jsx)(Le,{})}),e]})]}),Ir=a.div`
2
- display: flex;
3
- align-items: center;
4
- `,Lr=a.div`
5
- height: 0.75rem;
6
- width: 0.75rem;
7
- margin-right: 0.2rem;
8
- `,Rr=a(Ye)`
9
- height: 1.25rem;
10
- width: 1.25rem;
11
- display: inline-block;
12
- margin-right: 0.5rem;
13
- border-radius: 4px;
14
- `,zr=({options:e,onSelect:t,selected:n,className:r})=>(0,$.jsxs)(Mr,{as:Br,children:[(0,$.jsxs)(Er,{as:Wr,children:[(0,$.jsx)(Fr,{balance:n.balance,chain:n.chain}),(0,$.jsx)(Ur,{height:16})]}),(0,$.jsx)(Dr,{as:Vr,className:r,children:e.map(((e,n)=>(0,$.jsx)(Or,{as:Hr,onClick:()=>t(n),children:(0,$.jsx)(Fr,{balance:e.balance,chain:e.chain})},n)))})]}),Br=a.div`
15
- width: 100%;
16
- position: relative;
17
- `,Vr=a.div`
18
- width: 100%;
19
- margin-top: 0.5rem;
20
- position: absolute;
21
- background-color: var(--privy-color-background);
22
- border-radius: var(--privy-border-radius-md);
23
- overflow: hidden auto;
24
- box-shadow: var(--privy-shadow-popover);
25
- max-height: 11.75rem;
26
-
27
- && {
28
- border: solid 1px var(--privy-color-foreground-4);
29
- }
30
-
31
- z-index: 1;
32
- `,Hr=a.button`
33
- width: 100%;
34
- display: flex;
35
- justify-content: space-between;
36
-
37
- && {
38
- padding: 1rem;
39
- }
40
-
41
- :not(:last-child) {
42
- border-bottom: solid 1px var(--privy-color-foreground-4);
43
- }
44
-
45
- :hover {
46
- background: var(--privy-color-background-2);
47
- }
48
- `,Ur=a(Ie)`
49
- height: 1rem;
50
- margin-left: 0.5rem;
51
- `,Wr=a.button`
52
- ${Xe}
53
-
54
- /* Push the chip all the way to the right */
55
- span {
56
- margin-left: auto;
57
- }
58
-
59
- ${Ur} {
60
- transition: rotate 100ms ease-in;
61
- }
62
-
63
- &[aria-expanded='true'] {
64
- ${Ur} {
65
- rotate: -180deg;
66
- }
67
- }
68
- `,Gr=({displayName:e,errorMessage:t,configuredFundingChain:r,formattedBalance:i,fundingAmount:a,fundingCurrency:c,fundingAmountInUsd:l,options:u,selectedOption:d,isPreparing:f,isSubmitting:p,addressToFund:m,fundingWalletAddress:h,onSubmit:g,onSelect:_,onAmountChange:v})=>{let y=(0,V.useRef)(null);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ve,{}),(0,$.jsx)(ze,{}),(0,$.jsx)(qe,{children:`Transfer from another network`}),(0,$.jsxs)(Ke,{children:[`You need more funds on the`,` `,typeof r==`object`?r.name:He(r),` `,`network. Bridge from another blockchain network.`]}),(0,$.jsxs)(it,{style:{marginTop:`2rem`},children:[(0,$.jsxs)(tt,{onClick:()=>y.current?.focus(),children:[(0,$.jsx)(nt,{ref:y,value:a,onChange:e=>{let t=e.target.value;if(/^[0-9.]*$/.test(t)&&t.split(`.`).length-1<=1){let e=/\.$/.test(t)?`.`:``,n=Number(t.replace(/\.$/,``)||`0`);if(Number.isNaN(n))return void v(`0`);v(n.toString()+e)}}}),(0,$.jsx)(rt,{children:c})]}),l&&(0,$.jsx)(et,{children:l})]}),(0,$.jsxs)(We,{style:{marginTop:`1.5rem`},children:[(0,$.jsx)(F,{children:`From`}),(0,$.jsx)(F,{children:n(h)})]}),(0,$.jsx)(zr,{selected:{chain:d.chain,balance:d.isErc20Quote?Qe({amount:d.erc20Balance??0n,decimals:6})+` USDC`:$e(d.balance,d.chain.nativeCurrency.symbol,3,!0)},options:u.map((({chain:e,balance:t,isErc20Quote:n,erc20Balance:r})=>({chain:e,balance:n?Qe({amount:r??0n,decimals:6})+` USDC`:$e(t,e.nativeCurrency.symbol,3,!0)}))),onSelect:_}),(0,$.jsxs)(We,{style:{marginTop:`1.5rem`},children:[(0,$.jsx)(F,{children:`To`}),(0,$.jsx)(F,{children:n(m)})]}),(0,$.jsx)(Pr,{chain:r,balance:i}),(0,$.jsx)(Re,{style:{marginTop:`1rem`},children:t}),(0,$.jsxs)(o,{style:{marginTop:`1rem`},loading:p||f,disabled:f||p,onClick:g,children:[`Confirm with `,e]}),(0,$.jsx)(Be,{}),(0,$.jsx)(s,{})]})};export{Nr as n,at as r,Gr as t};
@@ -1 +0,0 @@
1
- import{D as e}from"./privy-context-81KmsBw2-CjWGzyg7.js";import{t}from"./jsx-runtime-BbDfbRii.js";import{n,t as r}from"./CustomLandingScreenView-Cm_MBSyX-CBOrbNLo.js";var i=t(),a={component:()=>{let t=e();return t.loginMethodsAndOrder&&t.loginMethodsAndOrder.primary.length>0?(0,i.jsx)(r,{connectOnly:!0}):(0,i.jsx)(n,{connectOnly:!0})}};export{a as ConnectOrCreateScreen,a as default};
@@ -1,74 +0,0 @@
1
- import{s as e}from"./rolldown-runtime-BcKkbAw3.js";import{$ as t,D as n,r}from"./privy-context-81KmsBw2-CjWGzyg7.js";import{t as i}from"./jsx-runtime-BbDfbRii.js";import{t as a}from"./react-DrJ0MmMO.js";import{c as o}from"./Loader-UAZqxsnw-Cy7hEE2f.js";import{l as s,r as c}from"./ModalFooter-BCuEK_nz-c-khvG4Y.js";import{t as l}from"./Screen-D30meWsY-CCeVNuWs.js";import{i as u,n as d,t as f}from"./styles-DVyDvTdj-BTABn2K8.js";import{c as p,s as m}from"./errors-BQ3N-RVt-BLqjTPNR.js";import{t as h}from"./lib-BsS8z8Lj.js";import{a as g,d as _,i as v,r as y,s as ee,u as te}from"./guards-BIW-GiMJ-CHfXo8XI.js";import{t as b}from"./logger-CsXm3oIv-B0UYpNFI.js";import{_ as ne,f as re,g as x}from"./useActiveWallet-B-yZYGc6-D7Ik-LxJ.js";import{t as S}from"./react-dom-5dW7aKoP.js";import{n as ie}from"./CopyableText-CQapvaMr-DMIdpDaU.js";import{t as C}from"./Link-BdDilT2T-BEDEdHuS.js";import{t as w}from"./QrCode-DbnZwlkH-h6Bhoe5U.js";import{n as ae}from"./EmailInputForm-Cqo1mda8-B2NG3K5V.js";import{t as oe}from"./useI18n-C-5n_noF-BcqC76yj.js";import{t as T}from"./WalletCards-DH1rqayz-Bgp9Fsgs.js";import{t as E}from"./wallet-connect-BvJtUsDt-Y03hhqFN.js";var D=i(),O=e(a(),1),k=e(S(),1);function A(e){return typeof e==`object`?e.key:e}function j(e,t){let n=e.length;return new Proxy(e,{get(e,r,i){if(typeof r==`string`){let i=r.charCodeAt(0);if(i>=48&&i<=57){let i=+r;if(Number.isInteger(i)&&i>=0&&i<n){let n=e[i];if(typeof n!=`object`){let r=t[i*2];n=e[i]={index:i,key:n,start:r,size:t[i*2+1],end:r+t[i*2+1],lane:0}}return n}}if(r===`length`)return n}return Reflect.get(e,r,i)}})}function M(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function N(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var P=(e,t)=>Math.abs(e-t)<1.01,F=(e,t,n)=>{let r;return Object.assign(function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)},{cancel:()=>{e.clearTimeout(r)}})},I,L=()=>{if(I!==void 0)return I;if(typeof navigator>`u`)return I=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return I=!0;let e=navigator.maxTouchPoints;return I=navigator.platform===`MacIntel`&&e!==void 0&&e>0},se=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},R=e=>e,z=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},B=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(se(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(se(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},V={passive:!0},ce=typeof window>`u`||`onscrollend`in window,H=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&ce,o=0,s=a?null:F(i,()=>t(n(r),!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,V),a&&r.addEventListener(`scrollend`,u,V),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u),s?.cancel()}},le=(e,t)=>H(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),ue=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},de=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})};function U(e,t,n,r){if(t===0)return!1;let i=r(0),a=new Set,o=0;for(;o<e;){let e=n(o);if(e===i)break;a.add(e),o++}let s=e-o;if(s===0||s>=t)return!1;for(let e=0;e<s;e++)if(r(e)!==n(o+e))return!1;for(let e=s;e<t;e++)if(a.has(r(e)))return!1;return!0}var W=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this._clampedAdjustment=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.isIndexInRange(n)&&this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:R,rangeExtractor:z,onChange:()=>{},measureElement:ue,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=this._singleLaneMeasurements?.items??s,l=e=>A(c[e]),u=e>0?l(0):null,d=e>0?l(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==u||t.getItemKey(o-1)!==d)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>0&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==d)&&(o>e||U(e,o,l,t.getItemKey))&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:a,getItemKey:c}=this.options,l=0;for(;l<a&&c(l)!==e;)l++;if(l<a){let e=n[l];if(e){let n=Math.max(0,e.start+t);!i&&n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=M(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.isScrolling=!1,this.scrollDirection=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._clampedAdjustment=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.targetWindow=this.scrollElement&&`ownerDocument`in this.scrollElement?this.scrollElement.ownerDocument.defaultView:this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this._clampedAdjustment!==null&&Math.abs(e-this._clampedAdjustment.maxAtWrite)>=1.5&&(this._clampedAdjustment=null),this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,L()&&this.targetWindow!=null&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,V),e.addEventListener(`touchend`,n,V),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(L()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this.scrollState?.behavior===`smooth`&&!P(this.getScrollOffset()-i,this.scrollState.lastTargetOffset)||this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}this._retryClampedAdjustment()},this._retryClampedAdjustment=()=>{if(this._clampedAdjustment===null||!this.scrollElement||!this.options.enabled)return;let{target:e,maxAtWrite:t}=this._clampedAdjustment,n=this.getMaxScrollOffset();n>t+.5&&(this._clampedAdjustment=e>n+.5?{target:e,maxAtWrite:n}:null,this._scrollToOffset(e,{adjustments:void 0,behavior:void 0}))},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;if(this._iosDeferredAdjustment<0&&e>=t-1){this._iosDeferredAdjustment=0;return}let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=M(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.isIndexInRange=e=>e>=0&&e<this.options.count,this.getMeasurements=M(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let l=this.itemSizeCache;if(!i)return this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._singleLaneMeasurements?.flat;if(!a||a.length<i){let e=new Float64Array(i);a&&u>0&&e.set(a.subarray(0,u*2)),a=e}let o=u===0?Array(e):this._singleLaneMeasurements.items.slice(),c;if(u===0)c=t+n;else{let e=u-1;c=a[e*2]+a[e*2+1]+s}for(let t=u;t<e;t++){let e=r(t);o[t]=e;let n=l.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=c,a[t*2+1]=i,c+=i+s}this._singleLaneMeasurements={flat:a,items:o};let d=j(o,a);return this.measurementsCache=d,d}let d=this.measurementsCache.slice(0,u),f=Array(a).fill(void 0),p=new Float64Array(a),m=0;for(let e=0;e<u;e++){let t=d[e];t&&(f[t.lane]===void 0&&m++,f[t.lane]=e,p[t.lane]=t.end)}for(let i=u;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),u,h,g=o===`estimate`||l.has(e);if(c!==void 0&&this.options.lanes>1){u=c;let e=f[u],r=e===void 0?void 0:d[e];h=r?r.end+s:t+n}else if(m===a){let e=0,t=p[0],n=f[0];for(let r=1;r<a;r++){let i=p[r];(i<t||i===t&&f[r]<n)&&(e=r,t=i,n=f[r])}u=e,h=t+s,g&&this.laneAssignments.set(i,u)}else u=i%this.options.lanes,h=t+n,g&&this.laneAssignments.set(i,u);let _=l.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=h+v;d[i]={index:i,start:h,size:v,end:y,key:e,lane:u},f[u]===void 0&&m++,f[u]=i,p[u]=y}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=M(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=K(e,t,n,r,r===1&&this._singleLaneMeasurements!==null?this._singleLaneMeasurements.flat:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=M(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e);if(!this.isIndexInRange(t))return;let n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(!this.isIndexInRange(e))return;let n,r,i,a=this._singleLaneMeasurements?.flat;if(this.options.lanes===1&&a!=null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=this.itemSizeCache.get(i)??n,s=t-o;if(s!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,c=a?this.getTotalSize():0,l=this.getScrollOffset()+this.scrollAdjustments,u=this.itemSizeCache.has(i)?r+o<=l&&this.scrollDirection!==`backward`:r<l,d=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?u:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},s,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++;let f=!1;a?f=this.applyScrollAdjustment(this.getTotalSize()-c):d&&(f=this.applyScrollAdjustment(s)),this.notify(f),this._retryClampedAdjustment()}},this.getVirtualItems=M(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._singleLaneMeasurements?.flat,r=this.options.lanes===1&&n!=null;return N(t[G(0,t.length-1,r?e=>n[e*2]:e=>N(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`){if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t]}if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0;let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0,e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._singleLaneMeasurements?.flat;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){if(e===0)return!1;if(L()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded))return this._iosDeferredAdjustment+=e,!1;{let n=this.getScrollOffset()+this.scrollAdjustments+e,r=this.scrollElement,i=r!==null&&(`scrollHeight`in r||`document`in r)?this.getMaxScrollOffset():null;return this._clampedAdjustment=i!==null&&n>i+.5?{target:n,maxAtWrite:i}:null,this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0}}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&P(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},G=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function fe(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function K(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=fe(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=G(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var pe=typeof document<`u`?O.useLayoutEffect:O.useEffect;function me({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=O.useReducer(e=>e+1,0)[1],a=O.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=O.useRef(!1),s=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}},c=e=>{let t=a.current;if(!t.enabled||!t.container)return;s(e);let n=!!e.options.horizontal,r=t.mode===`transform`,i=n?`left`:`top`,o=e.options.scrollMargin,c=e.getVirtualItems();for(let a of c){let s=a.start-o,c=e.elementsCache.get(a.key);c&&t.lastPositions.get(c)!==s&&(t.lastPositions.set(c,s),r?c.style.transform=n?`translate3d(${s}px, 0, 0)`:`translate3d(0, ${s}px, 0)`:c.style[i]=`${s}px`)}},l={...r,onChange:(t,n)=>{var s;let l=a.current,u=!0;if(l.enabled){c(t);let e=t.range,n=l.prevRange;u=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,u&&(l.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}u&&(e&&n&&!o.current?(0,k.flushSync)(i):i()),(s=r.onChange)==null||s.call(r,t,n)}},[u]=O.useState(()=>{let e=new W(l),t=e.measureElement;return e.measureElement=e=>{o.current=!0;try{t(e)}finally{o.current=!1}},Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return u.setOptions(l),pe(()=>u._didMount(),[]),pe(()=>(s(u),u._willUpdate())),pe(()=>{c(u)}),u}function he(e){return me({observeElementRect:B,observeElementOffset:le,scrollToFn:de,...e})}function ge({title:e,titleId:t,...n},r){return O.createElement(`svg`,Object.assign({xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,strokeWidth:1.5,stroke:`currentColor`,"aria-hidden":`true`,"data-slot":`icon`,ref:r,"aria-labelledby":t},n),e?O.createElement(`title`,{id:t},e):null,O.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z`}))}var _e=O.forwardRef(ge),q=e(h(),1),J={phantom:{mobile:{native:`phantom://`,universal:`https://phantom.app/ul/`}},solflare:{mobile:{native:void 0,universal:`https://solflare.com/ul/v1/`}},metamask:{image_url:{sm:y,md:y}},"okx-wallet":{mobile:{native:`okex://main`,universal:`okex://main`}},"okx-wallet-1":{mobile:{native:`okxwallet://main`,universal:`okxwallet://main`}}},Y=class e{static normalize(e){return e.replace(/[-_]wallet$/,``).replace(/[-_]extension$/,``).toLowerCase()}isEth(e){return e.chains.some((e=>e.includes(`eip155:`)))}isSol(e){return e.chains.some((e=>e.includes(`solana:`)))}inAllowList(t,n){if(!this.normalizedAllowList||this.normalizedAllowList.length===0||n===`listing`&&this.includeWalletConnect)return!0;let r=e.normalize(t);return this.normalizedAllowList.some((t=>r===e.normalize(t)))}inDenyList(t,n){return n===`listing`&&t===`rabby`||e.normalize(t)===`agw`}chainMatches(e){return this.chainFilter===`ethereum-only`?e===`ethereum`:this.chainFilter!==`solana-only`||e===`solana`}getAllowListKey(t,n,r,i){let a=e.normalize(t);for(let t of this.normalizedAllowList||[])if(a===e.normalize(t))return t;if(n===`connector`){if((r===`injected`||r===`solana_adapter`)&&i===`ethereum`&&this.detectedEth)return`detected_ethereum_wallets`;if((r===`injected`||r===`solana_adapter`)&&i===`solana`&&this.detectedSol)return`detected_solana_wallets`}if(n===`listing`&&this.includeWalletConnect)return`wallet_connect`}connectorOk(e){return!!(e.connectorType!==`null`&&e.walletBranding.id!==`walletconnect_solana`&&this.chainMatches(e.chainType)&&(this.inAllowList(e.walletClientType,`connector`)||(e.connectorType===`injected`||e.connectorType===`solana_adapter`)&&(e.chainType===`ethereum`&&this.detectedEth||e.chainType===`solana`&&this.detectedSol)))}listingOk(e){if(e.slug.includes(`coinbase`))return!1;if(this.chainFilter===`ethereum-only`){if(!this.isEth(e))return!1}else if(this.chainFilter===`solana-only`&&!this.isSol(e))return!1;return!(!this.inAllowList(e.slug,`listing`)||this.inDenyList(e.slug,`listing`))}getWallets(t,n){let r=new Map,i=e=>{let t=r.get(e.id);if(t){t.chainType!==e.chainType&&(t.chainType=`multi`);let n=new Set(t.chains);e.chains.forEach((e=>n.add(e))),t.chains=Array.from(n),!t.icon&&e.icon&&(t.icon=e.icon),!t.url&&e.url&&(t.url=e.url),!t.listing&&e.listing&&(t.listing=e.listing),!t.allowListKey&&e.allowListKey&&(t.allowListKey=e.allowListKey)}else r.set(e.id,e)};t.filter((e=>this.connectorOk(e))).forEach((t=>{let n=e.normalize(t.walletClientType);i({id:n,label:t.walletBranding?.name??n,source:`connector`,connector:t,chainType:t.chainType,icon:t.walletBranding?.icon,url:void 0,chains:[t.chainType===`ethereum`?`eip155`:`solana`],allowListKey:this.getAllowListKey(t.walletClientType,`connector`,t.connectorType,t.chainType)})}));let a=t.find((e=>e.connectorType===`wallet_connect_v2`)),o=t.find((e=>e.walletBranding.id===`walletconnect_solana`));n.filter((e=>this.listingOk(e))).forEach((n=>{let r=[...n.chains].filter((e=>e.includes(`eip155:`)||e.includes(`solana:`)));if(t.some((t=>e.normalize(t.walletClientType)===e.normalize(n.slug)&&t.chainType===`ethereum`&&t.connectorType!==`null`))||a||n.mobile.native||n.mobile.universal||v[n.slug]?.chainTypes.includes(`ethereum`)||(r=r.filter((e=>!e.includes(`eip155:`)))),t.some((t=>e.normalize(t.walletClientType)===e.normalize(n.slug)&&t.chainType===`solana`&&t.connectorType!==`null`))||o||n.mobile.native||n.mobile.universal||v[n.slug]?.chainTypes.includes(`solana`)||(r=r.filter((e=>!e.includes(`solana:`)))),!r.length)return;let s=e.normalize(n.slug),c=J[n.slug]?.image_url?.sm||n.image_url?.sm;r.some((e=>e.includes(`eip155:`)))&&i({id:s,label:n.name||s,source:`listing`,listing:n,chainType:`ethereum`,icon:c,url:n.homepage,chains:r,allowListKey:this.getAllowListKey(n.slug,`listing`)}),r.some((e=>e.includes(`solana:`)))&&i({id:s,label:n.name||s,source:`listing`,listing:n,chainType:`solana`,icon:c,url:n.homepage,chains:r,allowListKey:this.getAllowListKey(n.slug,`listing`)})})),this.includeWalletConnectQr&&a&&i({id:`wallet_connect_qr`,label:`WalletConnect`,source:`connector`,connector:a,chainType:`ethereum`,icon:`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfoDAIVODUC+w+GAAAGsUlEQVRYw6WXbYwWVxXHf+fOLAtCXYS2QJdIaClipGCTknXXNqBQMVHbfmhItH4Aral+IAEaG03UxJgYKQJGTUxtDWjaxDSNtcZqIGDwpRuW1oYiVqpdpZSlpC3qysu+PHPP3w/3mXnmeXZbPzjJZO7cefn/z/mfe865xlscq3dGDIguGiHLaMQVLja4s87FShcLo5jtApdddnHexUmHIy475JmdUkPRAQMu7gzT4ljnxJpdk0QPmMFkyAKN2OfOFpc2uuh1J3MZDrjAvXmVEQUuoosRxw642FcEG7IoDxiFxNiu8NYE+vcUYIFYRKKs113bXWx2Z34CoQZsVHOiCZ7mopdzdsFhv8NexEgRDHMxUSNREbh1bwNZwBsFblmfu/a4a6AEENYO5i3AOoEWeEUCF4MOOxBDMQAOk99OJALA2u80sBCwWGBZWG/yRwMaCAbBIAsQTJT3gea1OWfNeaPzvjoHEI85rA8ObtB1v7cIdJkIHgkh9AXpocy0LJjIKvB2wPpZB0v3wkrw5jdNEjeYeMhFX3BAyfn2ke9NUrgB9LrrcZcGJFCld4fWNddXbvbWfWzGR6xJFZsBGh0cBh3bBIxIEGTQ3W0h4NuDaSAzyAxCmGq11Vzf5uaa1aG8p+WFtrEYQGwvjICJkAEqvC+YNmcmMlMNvEaCdrcbyUvQAWDTjVuESHObM6cPGWHmzDwLaEtmzG9Z3qF1zUpXmuuZBb1z4bqeNC6f0WE1NtUTwHzEloiy3BvFisy0sYoLlQtT6XW15md2Qf9SY+2Ngfdca/TMSm/9ewz+/Boc/It45h/i4kSTsKw90SQJsPTvjSZbkWemDW7qTRZ0JEYJWSKxZJ7xmf6M224MzMzbX1s8F1YugjtvMg6eErt/4/z1jUrz1rXUKxnZC2zIg2mdBTK1mFUOKC1fOt/48kdzVixIz86Nij+eEacvpJWyZJ5xy7th8VzjjpuMJfMCW58QL73ekXPVlhsyE+vyzFiplJyauEIyrGIquruMq7qTxk+dcB495rzyTzFepCUWLIFv/kBg081Gd55WUk1IDGFTS89K++TDYxddzKnWcbluHd450xgdh7EGrOo1rr868PMTzqWJRGZ2d8oB/xpL33Xnxl2rjeNn4blXRXduzJ4B5y+28kWscAwXl+yeR654FFZPHoUb710YuPeDOUdPO48di1xptKpeEeHqOcYXNwQKGd88EDk3mqxtxPSfGRlsXRtYt8z4ytPOH/7eqpg1Aso7fYKgK4NPrMpYvsC4/poMA34yVJIQC3sCD9yecdsNyaV5yPj6ryJnR1PAvSNP4J+/1cgDfLbfePaMGGtM7Qdyl12WmKOmXgKKAp54vmBRTxfLrjE+tSYjBPjRM5FrrzIeuD2jf2lLzw8vN4JlfPVp581LsO1DgXv7jSzAiXPw/d+JiYLpjsu26Yfjf5O0rF5WoxsNT9G/bX0XKxakmPjlSee6HlizJJXSX7/oRDc+vjKR+f2wODcKd78/gR8/C9uedF44myJxmhh4OY/ipMQyqaWxmjn95TfEroMFOzbkvG+RceeqViPx1Aln1yEnOow1AnffHCpJAJ5/Vex4UvzptZRdY/O/1dJIS/NkcNmR6MTYah6qzseA4TfFtw4UvHBW1bc/O+7sPhwZHYf/jMODh5yfPudVbXj2TAJ/8XxrOZagNamj4Ei2/GNfuyRxh8t6BG2l15up+MIVODEiFr8rcPS0+O6RBF6mrrEGHHtFzOo2Lo7Dl37hvPQ6mNV6R9JYKgnYWcE37K5HlE2OT/5A0udaPUBHH+BQOMzuNsYLuDyZflTW+fTcmJFDHhJhaZqewMuewXDxcDR9IYyPN6Jj+6K4MF2vV8qBtZJScqVRNi6lpGONVJis5mpKi1WbgwsY+zIsBpcR8mzIZfuTRVZrtdu9odrptR/Xx5XONXJqBmCN0P6YMUQq9WJiwt0Je102WHdbpxSqydMObBWYdwDWLVcqcIMYe3NPjg0Ht84od0Ajju1w2XCr9e6QoqM9V23ZtnmI6cfAMMb9AY0YEHdb6oobEh4y3H3Ize6LsmGvN5IdUnhttdQ9UVrfLk/ljWEZ9wXsqAdQk1EA+O22GcgdZTke/bAs3OPY4HSdcB20HhvVtTMu0jmI8ekAhz2IICj2hKpNqI60NcuIRUHEej1quzubXa2tmZhenrfZmv3YYQ9ipDAIgvHptmblccuDjdRcmjFpWbDi/9ycZjZkRbk5jYztai/AUwiUx+qdEQB/m+25i9lxyvbcjrg45Lmd0uT/3p7/Fw6ODf+WO019AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI0LTEyLTAyVDIxOjU2OjQ4KzAwOjAwMVpslgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNC0xMi0wMlQyMTo1Njo0OCswMDowMEAH1CoAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjQtMTItMDJUMjE6NTY6NTMrMDA6MDDZv6GRAAAAAElFTkSuQmCC`,url:void 0,chains:[`eip155`],allowListKey:`wallet_connect_qr`}),this.includeWalletConnectQrSolana&&o&&i({id:`wallet_connect_qr_solana`,label:`WalletConnect`,source:`connector`,connector:o,chainType:`solana`,icon:`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfoDAIVODUC+w+GAAAGsUlEQVRYw6WXbYwWVxXHf+fOLAtCXYS2QJdIaClipGCTknXXNqBQMVHbfmhItH4Aral+IAEaG03UxJgYKQJGTUxtDWjaxDSNtcZqIGDwpRuW1oYiVqpdpZSlpC3qysu+PHPP3w/3mXnmeXZbPzjJZO7cefn/z/mfe865xlscq3dGDIguGiHLaMQVLja4s87FShcLo5jtApdddnHexUmHIy475JmdUkPRAQMu7gzT4ljnxJpdk0QPmMFkyAKN2OfOFpc2uuh1J3MZDrjAvXmVEQUuoosRxw642FcEG7IoDxiFxNiu8NYE+vcUYIFYRKKs113bXWx2Z34CoQZsVHOiCZ7mopdzdsFhv8NexEgRDHMxUSNREbh1bwNZwBsFblmfu/a4a6AEENYO5i3AOoEWeEUCF4MOOxBDMQAOk99OJALA2u80sBCwWGBZWG/yRwMaCAbBIAsQTJT3gea1OWfNeaPzvjoHEI85rA8ObtB1v7cIdJkIHgkh9AXpocy0LJjIKvB2wPpZB0v3wkrw5jdNEjeYeMhFX3BAyfn2ke9NUrgB9LrrcZcGJFCld4fWNddXbvbWfWzGR6xJFZsBGh0cBh3bBIxIEGTQ3W0h4NuDaSAzyAxCmGq11Vzf5uaa1aG8p+WFtrEYQGwvjICJkAEqvC+YNmcmMlMNvEaCdrcbyUvQAWDTjVuESHObM6cPGWHmzDwLaEtmzG9Z3qF1zUpXmuuZBb1z4bqeNC6f0WE1NtUTwHzEloiy3BvFisy0sYoLlQtT6XW15md2Qf9SY+2Ngfdca/TMSm/9ewz+/Boc/It45h/i4kSTsKw90SQJsPTvjSZbkWemDW7qTRZ0JEYJWSKxZJ7xmf6M224MzMzbX1s8F1YugjtvMg6eErt/4/z1jUrz1rXUKxnZC2zIg2mdBTK1mFUOKC1fOt/48kdzVixIz86Nij+eEacvpJWyZJ5xy7th8VzjjpuMJfMCW58QL73ekXPVlhsyE+vyzFiplJyauEIyrGIquruMq7qTxk+dcB495rzyTzFepCUWLIFv/kBg081Gd55WUk1IDGFTS89K++TDYxddzKnWcbluHd450xgdh7EGrOo1rr868PMTzqWJRGZ2d8oB/xpL33Xnxl2rjeNn4blXRXduzJ4B5y+28kWscAwXl+yeR654FFZPHoUb710YuPeDOUdPO48di1xptKpeEeHqOcYXNwQKGd88EDk3mqxtxPSfGRlsXRtYt8z4ytPOH/7eqpg1Aso7fYKgK4NPrMpYvsC4/poMA34yVJIQC3sCD9yecdsNyaV5yPj6ryJnR1PAvSNP4J+/1cgDfLbfePaMGGtM7Qdyl12WmKOmXgKKAp54vmBRTxfLrjE+tSYjBPjRM5FrrzIeuD2jf2lLzw8vN4JlfPVp581LsO1DgXv7jSzAiXPw/d+JiYLpjsu26Yfjf5O0rF5WoxsNT9G/bX0XKxakmPjlSee6HlizJJXSX7/oRDc+vjKR+f2wODcKd78/gR8/C9uedF44myJxmhh4OY/ipMQyqaWxmjn95TfEroMFOzbkvG+RceeqViPx1Aln1yEnOow1AnffHCpJAJ5/Vex4UvzptZRdY/O/1dJIS/NkcNmR6MTYah6qzseA4TfFtw4UvHBW1bc/O+7sPhwZHYf/jMODh5yfPudVbXj2TAJ/8XxrOZagNamj4Ei2/GNfuyRxh8t6BG2l15up+MIVODEiFr8rcPS0+O6RBF6mrrEGHHtFzOo2Lo7Dl37hvPQ6mNV6R9JYKgnYWcE37K5HlE2OT/5A0udaPUBHH+BQOMzuNsYLuDyZflTW+fTcmJFDHhJhaZqewMuewXDxcDR9IYyPN6Jj+6K4MF2vV8qBtZJScqVRNi6lpGONVJis5mpKi1WbgwsY+zIsBpcR8mzIZfuTRVZrtdu9odrptR/Xx5XONXJqBmCN0P6YMUQq9WJiwt0Je102WHdbpxSqydMObBWYdwDWLVcqcIMYe3NPjg0Ht84od0Ajju1w2XCr9e6QoqM9V23ZtnmI6cfAMMb9AY0YEHdb6oobEh4y3H3Ize6LsmGvN5IdUnhttdQ9UVrfLk/ljWEZ9wXsqAdQk1EA+O22GcgdZTke/bAs3OPY4HSdcB20HhvVtTMu0jmI8ekAhz2IICj2hKpNqI60NcuIRUHEej1quzubXa2tmZhenrfZmv3YYQ9ipDAIgvHptmblccuDjdRcmjFpWbDi/9ycZjZkRbk5jYztai/AUwiUx+qdEQB/m+25i9lxyvbcjrg45Lmd0uT/3p7/Fw6ODf+WO019AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI0LTEyLTAyVDIxOjU2OjQ4KzAwOjAwMVpslgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNC0xMi0wMlQyMTo1Njo0OCswMDowMEAH1CoAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjQtMTItMDJUMjE6NTY6NTMrMDA6MDDZv6GRAAAAAElFTkSuQmCC`,url:void 0,chains:[`solana`],allowListKey:`wallet_connect_qr_solana`});let s=Array.from(r.values());s.forEach((e=>{let t=J[e.listing?.slug||e.id];t?.image_url?.sm&&(e.icon=t.image_url.sm)}));let c=new Map;return this.normalizedAllowList?.forEach(((t,n)=>{c.set(e.normalize(t),n)})),{wallets:s.slice().sort(((t,n)=>{if(t.allowListKey&&n.allowListKey){let r=this.normalizedAllowList?.findIndex((n=>e.normalize(n)===e.normalize(t.allowListKey)))??-1,i=this.normalizedAllowList?.findIndex((t=>e.normalize(t)===e.normalize(n.allowListKey)))??-1;if(r!==i&&r>=0&&i>=0)return r-i}if(t.allowListKey&&!n.allowListKey)return-1;if(!t.allowListKey&&n.allowListKey)return 1;let r=e.normalize(t.id),i=e.normalize(n.id);r===`binance-defi`?r=`binance`:r===`universalprofiles`?r=`universal_profile`:r===`cryptocom-defi`?r=`cryptocom`:r===`bitkeep`&&(r=`bitget_wallet`),i===`binance-defi`?i=`binance`:i===`universalprofiles`?i=`universal_profile`:i===`cryptocom-defi`?i=`cryptocom`:i===`bitkeep`&&(i=`bitget_wallet`);let a=c.has(r),o=c.has(i);return a&&o?c.get(r)-c.get(i):a?-1:o?1:t.source===`connector`&&n.source===`listing`?-1:t.source===`listing`&&n.source===`connector`?1:t.label.toLowerCase().localeCompare(n.label.toLowerCase())})),walletCount:s.length}}constructor(e,t){if(this.chainFilter=e,t&&t.length>0){if(this.normalizedAllowList=t.map(String),this.normalizedAllowList.includes(`binance`)){let e=this.normalizedAllowList.indexOf(`binance`);this.normalizedAllowList.splice(e+1,0,`binance-defi-wallet`)}if(this.normalizedAllowList.includes(`bitget_wallet`)){let e=this.normalizedAllowList.indexOf(`bitget_wallet`);this.normalizedAllowList.splice(e+1,0,`bitkeep`)}}this.detectedEth=this.normalizedAllowList?.includes(`detected_ethereum_wallets`)??!1,this.detectedSol=this.normalizedAllowList?.includes(`detected_solana_wallets`)??!1,this.includeWalletConnect=this.normalizedAllowList?.includes(`wallet_connect`)??!1,this.includeWalletConnectQr=this.normalizedAllowList?.includes(`wallet_connect_qr`)??!1,this.includeWalletConnectQrSolana=this.normalizedAllowList?.includes(`wallet_connect_qr_solana`)??!1}},ve=e=>(0,D.jsxs)(`svg`,{viewBox:`0 0 32 32`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,D.jsx)(`path`,{d:`m0 0h32v32h-32z`,fill:`#5469d4`}),(0,D.jsx)(`path`,{d:`m15.997 5.333-.143.486v14.106l.143.143 6.548-3.87z`,fill:`#c2ccf4`}),(0,D.jsx)(`path`,{d:`m15.996 5.333-6.548 10.865 6.548 3.87z`,fill:`#fff`}),(0,D.jsx)(`path`,{d:`m15.997 21.306-.08.098v5.025l.08.236 6.552-9.227z`,fill:`#c2ccf4`}),(0,D.jsx)(`path`,{d:`m15.996 26.665v-5.36l-6.548-3.867z`,fill:`#fff`}),(0,D.jsx)(`path`,{d:`m15.995 20.07 6.548-3.87-6.548-2.976v6.847z`,fill:`#8698e8`}),(0,D.jsx)(`path`,{d:`m9.448 16.2 6.548 3.87v-6.846z`,fill:`#c2ccf4`})]}),ye=e=>(0,D.jsxs)(`svg`,{viewBox:`0 0 32 32`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,D.jsxs)(`linearGradient`,{id:`a`,gradientUnits:`userSpaceOnUse`,x1:`7.233`,x2:`24.766`,y1:`24.766`,y2:`7.234`,children:[(0,D.jsx)(`stop`,{offset:`0`,stopColor:`#9945ff`}),(0,D.jsx)(`stop`,{offset:`.2`,stopColor:`#7962e7`}),(0,D.jsx)(`stop`,{offset:`1`,stopColor:`#00d18c`})]}),(0,D.jsx)(`path`,{d:`m0 0h32v32h-32z`,fill:`#10111a`}),(0,D.jsx)(`path`,{clipRule:`evenodd`,d:`m9.873 20.41a.645.645 0 0 1 .476-.21l14.662.012a.323.323 0 0 1 .238.54l-3.123 3.438a.643.643 0 0 1 -.475.21l-14.662-.012a.323.323 0 0 1 -.238-.54zm15.376-2.862a.322.322 0 0 1 -.238.54l-14.662.012a.642.642 0 0 1 -.476-.21l-3.122-3.44a.323.323 0 0 1 .238-.54l14.662-.012a.644.644 0 0 1 .475.21zm-15.376-9.738a.644.644 0 0 1 .476-.21l14.662.012a.322.322 0 0 1 .238.54l-3.123 3.438a.643.643 0 0 1 -.475.21l-14.662-.012a.323.323 0 0 1 -.238-.54z`,fill:`url(#a)`,fillRule:`evenodd`})]});function be({enabled:e=!0,walletList:r,walletChainType:i}){let a=n(),{connectors:o}=t(),{listings:s,loading:c}=g(e),l=i??a.appearance.walletChainType,u=r??a.appearance?.walletList,d=(0,O.useMemo)((()=>new Y(l,u)),[l,u]),{wallets:f,walletCount:p}=(0,O.useMemo)((()=>d.getWallets(o,s)),[d,o,s]),[m,h]=(0,O.useState)(``),_=(0,O.useMemo)((()=>m?f.filter((e=>e.label.toLowerCase().includes(m.toLowerCase()))):f),[m,f]),[v,y]=(0,O.useState)();return{selected:v,setSelected:y,search:m,setSearch:h,loadingListings:c,wallets:_,walletCount:p}}var X=e=>!e||typeof e!=`string`&&e.connectorType===`null`,xe=({index:e,style:t,data:n,recent:r})=>{let i=n.wallets[e],{walletChainType:a,handleWalletClick:o}=n,{t:s}=oe(),c={...t,boxSizing:`border-box`};return i?(0,D.jsxs)(Z,{style:c,onClick:()=>o(i),children:[i.icon&&(i.connector&&!X(i.connector)?(0,D.jsx)(f,{children:typeof i.icon==`string`?(0,D.jsx)(d,{src:i.icon}):(0,D.jsx)(i.icon,{style:{width:`32px`,height:`32px`}})}):typeof i.icon==`string`?(0,D.jsx)(d,{src:i.icon}):(0,D.jsx)(i.icon,{style:{width:`32px`,height:`32px`}})),(0,D.jsx)($,{children:i.label}),r?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(u,{children:s(`connectWallet.lastUsed`)}),(0,D.jsx)(Q,{children:(0,D.jsxs)(D.Fragment,{children:[a===`ethereum-only`&&(0,D.jsx)(ve,{}),a===`solana-only`&&(0,D.jsx)(ye,{})]})})]}):(0,D.jsx)(Q,{children:a!==`ethereum-only`&&a!==`solana-only`&&(0,D.jsxs)(D.Fragment,{children:[i.chains?.some((e=>e.startsWith(`eip155`)))&&(0,D.jsx)(ve,{}),i.chains?.some((e=>e.startsWith(`solana`)))&&(0,D.jsx)(ye,{})]})})]}):null},Se=({className:e,customDescription:i,connectOnly:a,preSelectedWalletId:o,hideHeader:u,...f})=>{let h=n(),{t:g}=oe(),{connectors:y}=t(),S=f.walletChainType||h.appearance.walletChainType,ie=f.walletList||h.appearance?.walletList,{onBack:k,onClose:A,app:j}=f,{selected:M,setSelected:N,qrUrl:P,setQrUrl:F,connecting:I,uiState:L,errorCode:se,wallets:R,walletCount:z,handleConnect:B,handleBack:V,showSearchBar:ce,isInitialConnectView:H,title:le,search:ue,setSearch:de}=function({onConnect:e,onBack:i,onClose:a,onConnectError:o,walletList:s,walletChainType:c,app:l}){let u=n(),{connectors:d}=t(),{t:f}=oe(),{wallets:m,walletCount:h,search:g,setSearch:v,selected:y,setSelected:ee}=be({enabled:te(s??[]),walletList:s,walletChainType:c}),[x,S]=(0,O.useState)(),[ie,C]=(0,O.useState)(),[w,ae]=(0,O.useState)(),[T,E]=(0,O.useState)(),D=!y&&!w&&!T,k=D&&(h>6||g.length>0),A=d.find((e=>e.connectorType===`wallet_connect_v2`)),j=(0,O.useCallback)((async(t,n)=>{if(!t)return;let i=n?.name??`Wallet`;if(T?.connector!==t||x!==`loading`){if(S(`loading`),typeof t==`string`)return b.debug(`Connecting wallet via deeplink`,{wallet:i,url:t.length>80?`${t.slice(0,80)}...`:t}),E({connector:t,name:i,icon:n?.icon,id:n?.id,url:n?.url}),void window.open(t,`_blank`);b.debug(`Connecting wallet via connector`,{wallet:i,connectorType:t.connectorType}),E({connector:t,name:n?.name??t.walletBranding.name??`Wallet`,icon:n?.icon??t.walletBranding.icon,id:n?.id,url:n?.url});try{let n=await t.connect({showPrompt:!0});if(!n)return b.warn(`Wallet connection returned null`,{wallet:i,connectorType:t.connectorType}),S(`error`),C(void 0),void o?.(new p(`Unable to connect wallet`));b.debug(`Wallet connection successful`,{wallet:i,connectorType:t.connectorType}),_(n)&&await re(n,u),S(`success`),C(void 0),ne({address:n.address,client:n.walletClientType,appId:u.id}),setTimeout((()=>{e({connector:t,wallet:n})}),r)}catch(e){if(e?.message?.includes(`already pending for origin`)||e?.message?.includes(`wallet_requestPermissions`))return void b.debug(`Connection request already pending, maintaining loading state`,{wallet:i});let n=e instanceof Error?e.message:String(e?.message||`Unknown error`);b.error(`Wallet connection failed`,e,{wallet:i,connectorType:t.connectorType,errorCode:e?.privyErrorCode}),S(`error`),C(e?.privyErrorCode),o?.(e instanceof Error?e:new p(n||`Unable to connect wallet`))}}else b.debug(`Duplicate connection attempt prevented`,{wallet:i})}),[u.id,e,T,x]),M=(0,O.useCallback)((()=>w?(S(void 0),C(void 0),E(void 0),void ae(void 0)):T?(S(void 0),C(void 0),void E(void 0)):y?(S(void 0),C(void 0),E(void 0),void ee(void 0)):x===`error`||x===`loading`?(S(void 0),C(void 0),void E(void 0)):void i?.()),[w,T,y,x,i]);return{selected:y,setSelected:ee,qrUrl:w,setQrUrl:ae,connecting:T,uiState:x,errorCode:ie,search:g,setSearch:v,wallets:m,walletCount:h,wc:A,isInitialConnectView:D,showSearchBar:k,title:(0,O.useMemo)((()=>T?.connector===A&&w&&q.isMobile&&T?.name?f(`connectWallet.goToWallet`,{walletName:T.name}):T?.connector===A&&w&&T?.name?f(`connectWallet.scanToConnect`,{walletName:T.name}):w&&T?.name?f(q.isMobile?`connectWallet.goToWallet`:`connectWallet.scanToConnect`,{walletName:T.name}):typeof T?.connector==`string`?f(`connectWallet.openOrInstall`,{walletName:T.name}):y&&!T?f(`connectWallet.selectNetwork`):T?null:f(`connectWallet.selectYourWallet`)),[T,w,y,A,f]),handleConnect:j,handleBack:M,onClose:a,onConnect:e,app:l}}({...f,walletList:ie,walletChainType:S}),U=y.find((e=>e.connectorType===`wallet_connect_v2`)),W=y.find((e=>e.walletBranding.id===`walletconnect_solana`)),G=(0,O.useRef)(null),fe=he({count:R.length,getScrollElement:()=>G.current,estimateSize:()=>56,overscan:6,gap:5}),K=(0,O.useCallback)((async e=>{let t=S!==`solana-only`&&e.chains?.some((e=>e.startsWith(`eip155`))),n=S!==`ethereum-only`&&e.chains?.some((e=>e.startsWith(`solana`))),r=(()=>{let t=e.id;return v[t]||v[`${t}_wallet`]})(),i=t=>{let n=Y.normalize(e.id);return y.find((e=>Y.normalize(e.walletClientType)===n&&e.chainType===t&&e.connectorType!==`wallet_connect_v2`&&e.connectorType!==`null`))},o=t?i(`ethereum`):void 0,s=n?i(`solana`):void 0;if(r&&ee({isMobile:q.isMobile,walletConfig:r})&&!o&&!s)return b.debug(`Using install flow for wallets that do not support WalletConnect.`,{wallet:e.id}),void await B(r.installLink,{name:e.label,icon:e.icon,id:e.id,url:e.url});let c=async()=>{if(!U||!e.listing)return!1;let t=J[e.listing.slug]?{...e.listing,...J[e.listing.slug]}:e.listing;return U.setWalletEntry(t,F),await U.resetConnection(e.id),await B(U,{name:e.label,icon:e.icon,id:e.id,url:e.url}),!0},l=async()=>!!W&&!!e.listing&&(await W.disconnect(),W.wallet.setWalletEntry(e.listing,F),await new Promise((e=>setTimeout(e,100))),await B(W,{name:e.label,icon:e.icon,id:e.id,url:e.url}),!0),u=async t=>{let n=(e=>{if(r)return r.getMobileRedirect({isSolana:e,connectOnly:!!a,useUniversalLink:!1})})(t);return!!n&&(await B(n,{name:e.label,icon:e.icon,id:e.id,url:e.url}),!0)};if(t&&n)N(e);else{if(t&&!n){if(o&&!X(o))return b.debug(`Attempting injected EVM connection`,{wallet:e.id,connectorType:o.connectorType}),void await B(o,{name:e.label,icon:e.icon,id:e.id,url:e.url});if(q.isMobile&&r){if(await u(!1)||await c())return}else if(await c()||await u(!1))return}if(n&&!t){if(s&&!X(s))return b.debug(`Attempting injected Solana connection`,{wallet:e.id,connectorType:s.connectorType}),void await B(s,{name:e.label,icon:e.icon,id:e.id,url:e.url});if(q.isMobile){if(await u(!0)||await l())return}else if(await l()||await u(!0))return}if(!X(e.connector)){if(b.debug(`Using fallback direct connector`,{wallet:e.id,connectorType:e.connector?.connectorType}),U&&e.connector?.connectorType===`wallet_connect_v2`){if(await U.resetConnection(e.id),e.id!==`wallet_connect_qr`&&e.listing){let t=J[e.listing.slug]?{...e.listing,...J[e.listing.slug]}:e.listing;U.setWalletEntry(t,F)}else U.setWalletEntry({id:`wallet_connect_qr`,name:`WalletConnect`,rdns:``,slug:`wallet-connect`,homepage:``,chains:[`eip155`],mobile:{native:``,universal:void 0}},F)}W&&e.connector?.walletBranding.id===`walletconnect_solana`&&(await W.disconnect(),e.id!==`wallet_connect_qr_solana`&&e.listing?W.wallet.setWalletEntry(e.listing,F):W.wallet.setWalletEntry({id:`wallet_connect_solana_qr`,name:`WalletConnect`,rdns:``,slug:`wallet-connect-solana`,homepage:``,chains:[`solana`],mobile:{native:``,universal:void 0}},F),await new Promise((e=>setTimeout(e,100)))),await B(e.connector,{name:e.label,icon:e.icon,id:e.id,url:e.url});return}e.url?await B(e.url,{name:e.label,icon:e.icon,id:e.id,url:e.url}):b.warn(`No available connection method for wallet`,{wallet:e.id})}}),[U,W,B,N,F,S,a,y]);return(0,O.useEffect)((()=>{if(!o)return;let e=R.find((({id:e})=>e===o));e&&K(e).catch(console.error)}),[o]),(0,D.jsxs)(l,{className:e,children:[(0,D.jsx)(l.Header,{icon:u&&H?void 0:I&&!P||P&&q.isMobile&&I?.icon?I.icon:I?void 0:T,iconVariant:I&&!P||P&&q.isMobile?`loading`:void 0,iconLoadingStatus:I&&!P||P&&q.isMobile?{success:L===`success`,fail:L===`error`}:void 0,title:u&&H?void 0:I&&!P?g(`connectWallet.waitingForWallet`,{walletName:I.name}):P&&q.isMobile?g(`connectWallet.waitingForWallet`,{walletName:I?.name??`connection`}):le,subtitle:u&&H?void 0:I&&!P&&typeof I.connector==`string`?g(`connectWallet.installAndConnect`,{walletName:I.name}):I&&!P&&typeof I.connector!=`string`?L===`error`?se===m.NO_SOLANA_ACCOUNTS?`The connected wallet has no Solana accounts. Please add a Solana account in ${I.name} and try again.`:g(`connectWallet.tryConnectingAgain`):g(I.connector.connectorType===`coinbase_wallet`?`coinbaseWallet.connectingSubtitle`:`connectionStatus.connectOneWallet`):H?i??(j?g(`connectWallet.connectToAccount`,{appName:j.name}):null):null,showBack:!!k||!H,showClose:!0,onBack:k||V,onClose:A}),(0,D.jsxs)(l.Body,{ref:G,$colorScheme:h.appearance.palette.colorScheme,style:{marginBottom:P?`0.5rem`:void 0},children:[ce&&(0,D.jsx)(Ce,{children:(0,D.jsxs)(ae,{style:{background:`transparent`},children:[(0,D.jsx)(x,{children:(0,D.jsx)(_e,{})}),(0,D.jsx)(`input`,{className:`login-method-button`,type:`text`,placeholder:g(`connectWallet.searchPlaceholder`,{count:String(z)}),onChange:e=>de(e.target.value),value:ue})]})}),P&&q.isMobile&&L===`loading`&&(0,D.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,gap:`1rem`},children:[(0,D.jsx)(s,{variant:`primary`,onClick:()=>window.open(P.universal??P.native,`_blank`),style:{width:`100%`},children:g(`connectWallet.openInApp`)}),(0,D.jsx)(Ee,{value:P.universal??P.native,iconOnly:!0,children:`Copy link`})]}),P&&!q.isMobile&&L===`loading`&&(0,D.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,gap:`1rem`},children:(0,D.jsx)(Ee,{value:P.universal??P.native,iconOnly:!0,children:g(`connectWallet.copyLink`)})}),P&&!q.isMobile&&(0,D.jsx)(w,{size:280,url:P.universal??P.native,squareLogoElement:I?.icon?typeof I.icon==`string`?e=>(0,D.jsx)(`svg`,{...e,children:(0,D.jsx)(`image`,{href:I.icon,height:e.height,width:e.width})}):I.icon:E}),P&&!q.isMobile&&I?.url&&(I.id===`binance`||I.id===`binanceus`||I.id===`binance-defi`||I.id===`robinhood`)&&(0,D.jsxs)(De,{children:[(0,D.jsxs)(`span`,{children:[`Don't have `,I.name,`? `]}),(0,D.jsx)(C,{href:I.url,target:`_blank`,size:`sm`,children:`Download here`})]}),(0,D.jsxs)(we,{children:[I&&!P&&typeof I.connector==`string`&&(0,D.jsxs)(Z,{onClick:()=>window.open(I.connector,`_blank`),children:[I.icon&&(typeof I.icon==`string`?(0,D.jsx)(d,{src:I.icon}):(0,D.jsx)(I.icon,{})),(0,D.jsx)($,{children:I.name})]}),M?.chains.some((e=>e.startsWith(`eip155`)))&&!I&&(0,D.jsxs)(Z,{onClick:()=>K({...M,chains:M.chains.filter((e=>e.startsWith(`eip155`)))}),children:[M.icon&&(typeof M.icon==`string`?(0,D.jsx)(d,{src:M.icon}):(0,D.jsx)(M.icon,{})),(0,D.jsx)($,{children:M.label}),(0,D.jsx)(Q,{children:(0,D.jsx)(ve,{})})]}),M?.chains.some((e=>e.startsWith(`solana`)))&&!I&&(0,D.jsxs)(Z,{onClick:()=>K({...M,chains:M.chains.filter((e=>e.startsWith(`solana`)))}),children:[M.icon&&(typeof M.icon==`string`?(0,D.jsx)(d,{src:M.icon}):(0,D.jsx)(M.icon,{})),(0,D.jsx)($,{children:M.label}),(0,D.jsx)(Q,{children:(0,D.jsx)(ye,{})})]}),H&&(0,D.jsxs)(D.Fragment,{children:[!(z>0)&&(0,D.jsx)(Te,{children:g(`connectWallet.noWalletsFound`)}),z>0&&!P&&(0,D.jsx)(`div`,{style:{maxHeight:56*Math.min(R.length,5)+5,width:`100%`},children:(0,D.jsx)(`div`,{style:{height:`${fe.getTotalSize()}px`,width:`100%`,position:`relative`},children:fe.getVirtualItems().map((e=>(0,D.jsx)(xe,{index:e.index,style:{position:`absolute`,top:0,left:0,height:`${e.size}px`,transform:`translateY(${e.start}px)`},data:{wallets:R,walletChainType:S,handleWalletClick:K}},e.key)))})})]})]})]}),(0,D.jsxs)(l.Footer,{children:[I&&!P&&typeof I.connector!=`string`&&L===`error`&&(0,D.jsx)(l.Actions,{children:(0,D.jsx)(s,{style:{width:`100%`,alignItems:`center`},variant:`error`,onClick:()=>B(I.connector,{name:I.name,icon:I.icon,id:I.id,url:I.url}),children:g(`connectWallet.retry`)})}),!!(j&&j.legal.privacyPolicyUrl&&j.legal.termsAndConditionsUrl)&&(0,D.jsx)(c,{app:j,alwaysShowImplicitConsent:!0}),(0,D.jsx)(l.Watermark,{})]})]})},Ce=o.div`
2
- position: sticky;
3
- /* Offset by negative margin to account for focus outline */
4
- margin-top: -3px;
5
- padding-top: 3px;
6
- top: -3px;
7
- z-index: 1;
8
- background: var(--privy-color-background);
9
- padding-bottom: calc(var(--screen-space) / 2);
10
- `,we=o.div`
11
- display: flex;
12
- flex-direction: column;
13
- gap: ${5}px;
14
- `,Z=o.button`
15
- && {
16
- gap: 0.5rem;
17
- align-items: center;
18
- display: flex;
19
- position: relative;
20
- text-align: left;
21
- font-weight: 500;
22
- transition: background 200ms ease-in;
23
- width: calc(100% - 4px);
24
- border-radius: var(--privy-border-radius-md);
25
- padding: 0.75em;
26
- border: 1px solid var(--privy-color-foreground-4);
27
- justify-content: space-between;
28
- }
29
-
30
- &:hover {
31
- background: var(--privy-color-background-2);
32
- }
33
- `,Q=o.span`
34
- display: flex;
35
- align-items: center;
36
- justify-content: end;
37
- position: relative;
38
-
39
- & > svg {
40
- border-radius: var(--privy-border-radius-full);
41
- stroke-width: 2.5;
42
- width: 100%;
43
- max-height: 1rem;
44
- max-width: 1rem;
45
- flex-shrink: 0;
46
- }
47
-
48
- & > svg:not(:last-child) {
49
- border-radius: var(--privy-border-radius-full);
50
- margin-right: -0.375rem;
51
- }
52
- `,Te=o.div`
53
- height: 60px;
54
- display: flex;
55
- align-items: center;
56
- justify-content: center;
57
- text-align: center;
58
- `,$=o.span`
59
- text-overflow: ellipsis;
60
- white-space: nowrap;
61
- color: var(--privy-color-foreground);
62
- font-weight: 400;
63
- flex: 1;
64
- `,Ee=o(ie)`
65
- && {
66
- margin: 0.5rem auto 0;
67
- }
68
- `,De=o.div`
69
- text-align: center;
70
- margin-top: 1rem;
71
- font-size: 0.875rem;
72
- font-weight: 400;
73
- color: var(--privy-color-foreground-3);
74
- `;export{Se as i,xe as n,be as r,Y as t};
@@ -1 +0,0 @@
1
- import{n as e,r as t,t as n}from"./ConnectionStatusScreen-fUfROm9m-BeWLchcf.js";export{n as ConnectionStatusScreen,n as default,e as ConnectionStatusView,t as getErrorDetails};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./ErrorScreen-DipdTWzE-c8g8En21.js";export{t as ErrorScreen,t as default,e as ErrorScreenView};