@seams/wallet 0.20.0 → 0.22.0

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 (409) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/SeamsWeb.js +2 -2
  3. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +25 -5
  4. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -2
  5. package/dist/esm/SeamsWeb/walletIframe/client/router.js +5 -2
  6. package/dist/esm/core/rpcClients/evm/EvmClient.js +11 -9
  7. package/dist/esm/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +1 -1
  8. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +20 -9
  9. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +107 -43
  10. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +1 -1
  11. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-receipt.js +36 -6
  12. package/dist/esm/core/ui/messages.js +9 -14
  13. package/dist/esm/plugins/SeamsWeb/walletIframe/sanitization.js +18 -0
  14. package/dist/esm/plugins/plugin-utils.js +5 -2
  15. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +3 -9
  16. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +2 -2
  17. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +23 -9
  18. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +376 -84
  19. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +87 -167
  20. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +11 -9
  21. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +76 -74
  22. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +23 -22
  23. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +1 -5
  24. package/dist/esm/react/components/AccountMenuButton/icons/MapPinIcon.js +12 -0
  25. package/dist/esm/react/components/AccountMenuButton/index.js +13 -2
  26. package/dist/esm/react/styles/styles.css +452 -162
  27. package/dist/esm/sdk/{ConfirmationDrawer-DCw0m-Iv.js → ConfirmationDrawer-Ck33ZmU-.js} +1 -1
  28. package/dist/esm/sdk/{NonceCoordinator-Dq-FZpBz.js → NonceCoordinator-Do23iTzQ.js} +1 -1
  29. package/dist/esm/sdk/accountLifecycle-CXTlwnAS.js +1 -0
  30. package/dist/esm/sdk/activeWalletSession-BtEHhe99.js +1 -0
  31. package/dist/esm/sdk/adapters-CgJpSAxH.js +2 -0
  32. package/dist/esm/sdk/appearance-token-vars-BA3KQyEE.js +2 -0
  33. package/dist/esm/sdk/challengeDelivery-C88JNwKf.js +1 -0
  34. package/dist/esm/sdk/clientSessionPersistenceState-DFGHXoKK.js +1 -0
  35. package/dist/esm/sdk/collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js +1 -0
  36. package/dist/esm/sdk/{commitQueue-BW7BpYyA.js → commitQueue-BQPOhyGl.js} +1 -1
  37. package/dist/esm/sdk/{display-WtILOPQR.js → display-Dtugjeya.js} +1 -1
  38. package/dist/esm/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +1 -0
  39. package/dist/{public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js → esm/sdk/ecdsaDerivationClientWasm-D1HzwUgV.js} +1 -1
  40. package/dist/esm/sdk/ecdsaDerivationExport-DrFESeRP.js +1 -0
  41. package/dist/esm/sdk/ecdsaWalletRecords-BmhuJF1y.js +1 -0
  42. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +1 -0
  43. package/dist/esm/sdk/{enrichDisplayModelWithAbi-DSj4NAlY.js → enrichDisplayModelWithAbi-D0o0IL7_.js} +1 -1
  44. package/dist/esm/sdk/{evmCryptoWasm-DeobzyP-.js → evmCryptoWasm-S2gL5ht4.js} +1 -1
  45. package/dist/esm/sdk/{export-viewer-host-DsdzagKK.js → export-viewer-host-C9n-62Pi.js} +1 -1
  46. package/dist/esm/sdk/exportKeypairOperation-Du9HKB8f.js +1 -0
  47. package/dist/esm/sdk/host-DoftJdVQ.js +1 -0
  48. package/dist/esm/sdk/keyMaterialEnvelope-B3v6HLtz.js +1 -0
  49. package/dist/esm/sdk/{lanes-BzU7cv2T.js → lanes-l274pbT5.js} +1 -1
  50. package/dist/esm/sdk/localOnly-CvFSZFUy.js +1 -0
  51. package/dist/esm/sdk/{mountExportPrivateKeySurface-DQzFzhNu.js → mountExportPrivateKeySurface-DdJHWwqY.js} +1 -1
  52. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js +2 -0
  53. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +1 -0
  54. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +1 -0
  55. package/dist/esm/sdk/{nonceLaneKeys-BzMBVxMU.js → nonceLaneKeys-CR2XEvnk.js} +1 -1
  56. package/dist/esm/sdk/{normalization-Ct9-AY13.js → normalization-Ctkj80dW.js} +1 -1
  57. package/dist/esm/sdk/{operationFingerprint-C4VX-0NI.js → operationFingerprint-DRPONhBD.js} +1 -1
  58. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +1 -0
  59. package/dist/esm/sdk/presignaturePool-DNiA3sgr.js +1 -0
  60. package/dist/esm/sdk/{singletons-CAsc9LvA.js → presignatures-DGLNs29C.js} +1 -1
  61. package/dist/esm/sdk/recovery-entrypoint-CNVjXz6A.js +1 -0
  62. package/dist/esm/sdk/recoveryAuthorization-BplZWc-N.js +1 -0
  63. package/dist/esm/sdk/{registration-DknFwoqn.js → registration-CIxJvbTo.js} +1 -1
  64. package/dist/esm/sdk/registration-CeOmKyCG.js +1 -0
  65. package/dist/esm/sdk/registrationAccounts-BfO6Ztye.js +1 -0
  66. package/dist/esm/sdk/registrationIntent-DW_kKWlx.js +1 -0
  67. package/dist/esm/sdk/{registrationSignerPlan-BHkqlian.js → registrationSignerPlan-B66FjqIp.js} +1 -1
  68. package/dist/esm/sdk/{requireStepUpAuth-CnSCFSOZ.js → requireStepUpAuth-DsNLml1i.js} +1 -1
  69. package/dist/esm/sdk/routerAbNormalSigning-DSAfCcND.js +1 -0
  70. package/dist/esm/sdk/runtime-auth-C0V-5znH.js +1 -0
  71. package/dist/{public/sdk/runtime-device-link-Dn_5hPCq.js → esm/sdk/runtime-device-link-B1jpHQSF.js} +1 -1
  72. package/dist/{public/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js → esm/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js} +1 -1
  73. package/dist/esm/sdk/runtime-email-otp-DXuxFOjL.js +1 -0
  74. package/dist/esm/sdk/{runtime-export-Brz53_oi.js → runtime-export-Ba12ChDI.js} +1 -1
  75. package/dist/{public/sdk/runtime-near-Da_xFUXx.js → esm/sdk/runtime-near-DRrdWzmr.js} +1 -1
  76. package/dist/esm/sdk/runtime-preferences-BWyhRaBA.js +1 -0
  77. package/dist/esm/sdk/runtime-recovery-DlJlaZlf.js +1 -0
  78. package/dist/esm/sdk/runtime-recovery-codes-CuqYWqK7.js +1 -0
  79. package/dist/esm/sdk/secp256k1-CYu8ENjP.js +1 -0
  80. package/dist/esm/sdk/sessionObservationRevision-abErAhd6.js +1 -0
  81. package/dist/esm/sdk/shared-B95wnpoD.js +6 -0
  82. package/dist/esm/sdk/signEvmFamily-C4XMiSue.js +1 -0
  83. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js} +1 -1
  84. package/dist/esm/sdk/{signEvmWithUiConfirm-D6nmJr_L.js → signEvmWithUiConfirm-lZyPfrGe.js} +1 -1
  85. package/dist/esm/sdk/signNear-B_UcqMRf.js +1 -0
  86. package/dist/esm/sdk/{signatureUses-B_nN17i7.js → signatureUses-CY4U-X6V.js} +1 -1
  87. package/dist/esm/sdk/{registrationIds-B1OpqRAt.js → signerSlot-CpyIfl3J.js} +1 -1
  88. package/dist/esm/sdk/signingFlow-Co_QtuHK.js +2 -0
  89. package/dist/esm/sdk/signingQueue-Cj9sCJLj.js +1 -0
  90. package/dist/esm/sdk/thresholdEcdsa-LvkD6z8-.js +1 -0
  91. package/dist/esm/sdk/{trace-CsRMlSh1.js → trace-CWTzEALZ.js} +1 -1
  92. package/dist/esm/sdk/transaction-activity-CpDMkSPm.js +1 -0
  93. package/dist/{public/sdk/transactionState-lB2qpkOm.js → esm/sdk/transactionState-BaFSiA9t.js} +1 -1
  94. package/dist/esm/sdk/tx-confirm-ui.js +186 -71
  95. package/dist/esm/sdk/{types-CQTWmtqu.js → types-BrEW276O.js} +1 -1
  96. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  97. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  98. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  99. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  100. package/dist/esm/sdk/wallet-recovery-BEui57xM.js +1 -0
  101. package/dist/esm/sdk/wallet-ui.css +1 -1
  102. package/dist/esm/sdk/{walletAuthMethodRecord-CWdqdY_s.js → walletAuthMethodRecord-Cv_MYpxt.js} +1 -1
  103. package/dist/esm/sdk/walletCapabilityBindings-CKOK39sP.js +1 -0
  104. package/dist/esm/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +1 -0
  105. package/dist/esm/sdk/walletCustodyOperation-BO_tSfGY.js +1 -0
  106. package/dist/esm/sdk/walletDbName-BVZhb4xF.js +1 -0
  107. package/dist/esm/sdk/walletOwnershipGeneration-CQzaodhB.js +1 -0
  108. package/dist/esm/sdk/walletRecoveryAdminProof-CtH8_lph.js +1 -0
  109. package/dist/esm/sdk/walletRecoveryCommit-B_e4k5Pa.js +1 -0
  110. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +1 -0
  111. package/dist/esm/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +1 -0
  112. package/dist/esm/sdk/walletSessionAuthorizationStore-DYRMCkiT.js +1 -0
  113. package/dist/esm/sdk/warmSessionHydration-CY9ofEGr.js +1 -0
  114. package/dist/{public/sdk/webauthnP256-_ajaNl90.js → esm/sdk/webauthnP256-unqBoZCk.js} +1 -1
  115. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +2 -3
  116. package/dist/esm/shared-ts/src/utils/evmRpcResults.js +5 -3
  117. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +2 -1
  118. package/dist/public/headers.manifest.json +1 -1
  119. package/dist/public/sdk/{ConfirmationDrawer-DCw0m-Iv.js → ConfirmationDrawer-Ck33ZmU-.js} +1 -1
  120. package/dist/public/sdk/{NonceCoordinator-Dq-FZpBz.js → NonceCoordinator-Do23iTzQ.js} +1 -1
  121. package/dist/public/sdk/accountLifecycle-CXTlwnAS.js +1 -0
  122. package/dist/public/sdk/activeWalletSession-BtEHhe99.js +1 -0
  123. package/dist/public/sdk/adapters-CgJpSAxH.js +2 -0
  124. package/dist/public/sdk/appearance-token-vars-BA3KQyEE.js +2 -0
  125. package/dist/public/sdk/challengeDelivery-C88JNwKf.js +1 -0
  126. package/dist/public/sdk/clientSessionPersistenceState-DFGHXoKK.js +1 -0
  127. package/dist/public/sdk/collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js +1 -0
  128. package/dist/public/sdk/{commitQueue-BW7BpYyA.js → commitQueue-BQPOhyGl.js} +1 -1
  129. package/dist/public/sdk/{display-WtILOPQR.js → display-Dtugjeya.js} +1 -1
  130. package/dist/public/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +1 -0
  131. package/dist/{esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js → public/sdk/ecdsaDerivationClientWasm-D1HzwUgV.js} +1 -1
  132. package/dist/public/sdk/ecdsaDerivationExport-DrFESeRP.js +1 -0
  133. package/dist/public/sdk/ecdsaWalletRecords-BmhuJF1y.js +1 -0
  134. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +1 -0
  135. package/dist/public/sdk/{enrichDisplayModelWithAbi-DSj4NAlY.js → enrichDisplayModelWithAbi-D0o0IL7_.js} +1 -1
  136. package/dist/public/sdk/{evmCryptoWasm-DeobzyP-.js → evmCryptoWasm-S2gL5ht4.js} +1 -1
  137. package/dist/public/sdk/{export-viewer-host-DsdzagKK.js → export-viewer-host-C9n-62Pi.js} +1 -1
  138. package/dist/public/sdk/exportKeypairOperation-Du9HKB8f.js +1 -0
  139. package/dist/public/sdk/host-DoftJdVQ.js +1 -0
  140. package/dist/public/sdk/keyMaterialEnvelope-B3v6HLtz.js +1 -0
  141. package/dist/public/sdk/{lanes-BzU7cv2T.js → lanes-l274pbT5.js} +1 -1
  142. package/dist/public/sdk/localOnly-CvFSZFUy.js +1 -0
  143. package/dist/public/sdk/{mountExportPrivateKeySurface-DQzFzhNu.js → mountExportPrivateKeySurface-DdJHWwqY.js} +1 -1
  144. package/dist/public/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js +2 -0
  145. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +1 -0
  146. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +1 -0
  147. package/dist/public/sdk/{nonceLaneKeys-BzMBVxMU.js → nonceLaneKeys-CR2XEvnk.js} +1 -1
  148. package/dist/public/sdk/{normalization-Ct9-AY13.js → normalization-Ctkj80dW.js} +1 -1
  149. package/dist/public/sdk/{operationFingerprint-C4VX-0NI.js → operationFingerprint-DRPONhBD.js} +1 -1
  150. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +1 -0
  151. package/dist/public/sdk/presignaturePool-DNiA3sgr.js +1 -0
  152. package/dist/public/sdk/{singletons-CAsc9LvA.js → presignatures-DGLNs29C.js} +1 -1
  153. package/dist/public/sdk/recovery-entrypoint-CNVjXz6A.js +1 -0
  154. package/dist/public/sdk/recoveryAuthorization-BplZWc-N.js +1 -0
  155. package/dist/public/sdk/{registration-DknFwoqn.js → registration-CIxJvbTo.js} +1 -1
  156. package/dist/public/sdk/registration-CeOmKyCG.js +1 -0
  157. package/dist/public/sdk/registrationAccounts-BfO6Ztye.js +1 -0
  158. package/dist/public/sdk/registrationIntent-DW_kKWlx.js +1 -0
  159. package/dist/public/sdk/{registrationSignerPlan-BHkqlian.js → registrationSignerPlan-B66FjqIp.js} +1 -1
  160. package/dist/public/sdk/{requireStepUpAuth-CnSCFSOZ.js → requireStepUpAuth-DsNLml1i.js} +1 -1
  161. package/dist/public/sdk/routerAbNormalSigning-DSAfCcND.js +1 -0
  162. package/dist/public/sdk/runtime-auth-C0V-5znH.js +1 -0
  163. package/dist/{esm/sdk/runtime-device-link-Dn_5hPCq.js → public/sdk/runtime-device-link-B1jpHQSF.js} +1 -1
  164. package/dist/{esm/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js → public/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js} +1 -1
  165. package/dist/public/sdk/runtime-email-otp-DXuxFOjL.js +1 -0
  166. package/dist/public/sdk/{runtime-export-Brz53_oi.js → runtime-export-Ba12ChDI.js} +1 -1
  167. package/dist/{esm/sdk/runtime-near-Da_xFUXx.js → public/sdk/runtime-near-DRrdWzmr.js} +1 -1
  168. package/dist/public/sdk/runtime-preferences-BWyhRaBA.js +1 -0
  169. package/dist/public/sdk/runtime-recovery-DlJlaZlf.js +1 -0
  170. package/dist/public/sdk/runtime-recovery-codes-CuqYWqK7.js +1 -0
  171. package/dist/public/sdk/secp256k1-CYu8ENjP.js +1 -0
  172. package/dist/public/sdk/sessionObservationRevision-abErAhd6.js +1 -0
  173. package/dist/public/sdk/shared-B95wnpoD.js +6 -0
  174. package/dist/public/sdk/signEvmFamily-C4XMiSue.js +1 -0
  175. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js} +1 -1
  176. package/dist/public/sdk/{signEvmWithUiConfirm-D6nmJr_L.js → signEvmWithUiConfirm-lZyPfrGe.js} +1 -1
  177. package/dist/public/sdk/signNear-B_UcqMRf.js +1 -0
  178. package/dist/public/sdk/{signatureUses-B_nN17i7.js → signatureUses-CY4U-X6V.js} +1 -1
  179. package/dist/public/sdk/{registrationIds-B1OpqRAt.js → signerSlot-CpyIfl3J.js} +1 -1
  180. package/dist/public/sdk/signingFlow-Co_QtuHK.js +2 -0
  181. package/dist/public/sdk/signingQueue-Cj9sCJLj.js +1 -0
  182. package/dist/public/sdk/thresholdEcdsa-LvkD6z8-.js +1 -0
  183. package/dist/public/sdk/{trace-CsRMlSh1.js → trace-CWTzEALZ.js} +1 -1
  184. package/dist/public/sdk/transaction-activity-CpDMkSPm.js +1 -0
  185. package/dist/{esm/sdk/transactionState-lB2qpkOm.js → public/sdk/transactionState-BaFSiA9t.js} +1 -1
  186. package/dist/public/sdk/tx-confirm-ui.js +186 -71
  187. package/dist/public/sdk/{types-CQTWmtqu.js → types-BrEW276O.js} +1 -1
  188. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  189. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  190. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  191. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  192. package/dist/public/sdk/wallet-recovery-BEui57xM.js +1 -0
  193. package/dist/public/sdk/wallet-ui.css +1 -1
  194. package/dist/public/sdk/{walletAuthMethodRecord-CWdqdY_s.js → walletAuthMethodRecord-Cv_MYpxt.js} +1 -1
  195. package/dist/public/sdk/walletCapabilityBindings-CKOK39sP.js +1 -0
  196. package/dist/public/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +1 -0
  197. package/dist/public/sdk/walletCustodyOperation-BO_tSfGY.js +1 -0
  198. package/dist/public/sdk/walletDbName-BVZhb4xF.js +1 -0
  199. package/dist/public/sdk/walletOwnershipGeneration-CQzaodhB.js +1 -0
  200. package/dist/public/sdk/walletRecoveryAdminProof-CtH8_lph.js +1 -0
  201. package/dist/public/sdk/walletRecoveryCommit-B_e4k5Pa.js +1 -0
  202. package/dist/public/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +1 -0
  203. package/dist/public/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +1 -0
  204. package/dist/public/sdk/walletSessionAuthorizationStore-DYRMCkiT.js +1 -0
  205. package/dist/public/sdk/warmSessionHydration-CY9ofEGr.js +1 -0
  206. package/dist/{esm/sdk/webauthnP256-_ajaNl90.js → public/sdk/webauthnP256-unqBoZCk.js} +1 -1
  207. package/dist/public/sdk/workers/email-otp.worker.js +6 -1
  208. package/dist/public/wallet-assets.manifest.json +253 -276
  209. package/dist/public/wallet-service/index.html +4 -4
  210. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +1 -1
  211. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -7
  212. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +5 -0
  213. package/dist/types/shared-ts/src/utils/evmRpcResults.d.ts +3 -3
  214. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +1 -1
  215. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryAdminProof.d.ts +46 -0
  216. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.d.ts +4 -1
  217. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryRotation.d.ts +11 -7
  218. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +9 -1
  219. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -3
  220. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +6 -4
  221. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +2 -2
  222. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -6
  223. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +1 -0
  224. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/controller.d.ts +2 -0
  225. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestWalletMove.d.ts +1 -1
  226. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -1
  227. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/recoveryAuthorization.d.ts +6 -0
  228. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +14 -3
  229. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryRotate.d.ts +8 -0
  230. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +1 -0
  231. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-activity.d.ts +2 -2
  232. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-receipt.d.ts +25 -6
  233. package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRecoveryRotation.d.ts +22 -3
  234. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +1 -0
  235. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +1 -0
  236. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +8 -2
  237. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  238. package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -1
  239. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MapPinIcon.d.ts +2 -0
  240. package/dist/workers/email-otp.worker.js +6 -1
  241. package/package.json +1 -1
  242. package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +0 -77
  243. package/dist/esm/sdk/accountLifecycle-fLNUdjct.js +0 -1
  244. package/dist/esm/sdk/activeWalletSession-BpbnpU9s.js +0 -1
  245. package/dist/esm/sdk/adapters-BNmcyf9K.js +0 -2
  246. package/dist/esm/sdk/appearance-token-vars-DxBm_cKA.js +0 -2
  247. package/dist/esm/sdk/challengeDelivery-CG2J5Qxs.js +0 -1
  248. package/dist/esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js +0 -1
  249. package/dist/esm/sdk/digestEncoding-aC4dSf_x.js +0 -1
  250. package/dist/esm/sdk/ecdsaCapabilityManifest-DRc423SV.js +0 -1
  251. package/dist/esm/sdk/ecdsaDerivationExport-DX89rq_u.js +0 -1
  252. package/dist/esm/sdk/ecdsaWalletRecords-CxxUt3fS.js +0 -1
  253. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js +0 -1
  254. package/dist/esm/sdk/exportKeypairOperation-BwW_E4Lt.js +0 -1
  255. package/dist/esm/sdk/host-DMR4KDy9.js +0 -1
  256. package/dist/esm/sdk/localOnly-DO191vDh.js +0 -1
  257. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +0 -2
  258. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +0 -1
  259. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js +0 -1
  260. package/dist/esm/sdk/passkey-custody-Ba-NQ_4C.js +0 -1
  261. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-DOeIn_Qj.js +0 -1
  262. package/dist/esm/sdk/presignaturePool-BHoxnbOA.js +0 -1
  263. package/dist/esm/sdk/presignatures-K-yuzOE0.js +0 -1
  264. package/dist/esm/sdk/primitives-CTmDwMNc.js +0 -1
  265. package/dist/esm/sdk/recovery-entrypoint-DWghFZrZ.js +0 -1
  266. package/dist/esm/sdk/registration-sQndIWRF.js +0 -1
  267. package/dist/esm/sdk/registrationAccounts-CD1u1ZqZ.js +0 -1
  268. package/dist/esm/sdk/registrationIntent-D4YDjf2U.js +0 -1
  269. package/dist/esm/sdk/routerAbNormalSigning-BV1t27aB.js +0 -1
  270. package/dist/esm/sdk/runtime-auth-BxG-J-BB.js +0 -1
  271. package/dist/esm/sdk/runtime-email-otp-CPqTCH8Q.js +0 -1
  272. package/dist/esm/sdk/runtime-preferences-riUZGaTs.js +0 -1
  273. package/dist/esm/sdk/runtime-recovery-CTj4nDAM.js +0 -1
  274. package/dist/esm/sdk/runtime-recovery-codes-D8T9LQ7-.js +0 -1
  275. package/dist/esm/sdk/secp256k1-wOOHtPcK.js +0 -1
  276. package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +0 -1
  277. package/dist/esm/sdk/shared-hx7KVyeq.js +0 -6
  278. package/dist/esm/sdk/signEvmFamily-DT34Vtpa.js +0 -1
  279. package/dist/esm/sdk/signNear-B000QxBd.js +0 -1
  280. package/dist/esm/sdk/signerSlot-FJAGOhmg.js +0 -1
  281. package/dist/esm/sdk/signingFlow-gl85GOW4.js +0 -2
  282. package/dist/esm/sdk/signingQueue-gW7wmOuL.js +0 -1
  283. package/dist/esm/sdk/thresholdEcdsa-Ci7yz395.js +0 -1
  284. package/dist/esm/sdk/transaction-activity-C0nCSW6c.js +0 -1
  285. package/dist/esm/sdk/wallet-recovery-DFaS3geI.js +0 -1
  286. package/dist/esm/sdk/walletAuthority-BY3kyKQ-.js +0 -1
  287. package/dist/esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +0 -1
  288. package/dist/esm/sdk/walletDbName-BxWApBQF.js +0 -1
  289. package/dist/esm/sdk/walletOwnershipGeneration-DSGfjuV2.js +0 -1
  290. package/dist/esm/sdk/walletRecoveryCommit-DQA_wveK.js +0 -1
  291. package/dist/esm/sdk/walletRecoveryRotate-zvQThn37.js +0 -1
  292. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +0 -1
  293. package/dist/esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +0 -1
  294. package/dist/esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js +0 -1
  295. package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +0 -1
  296. package/dist/public/sdk/accountLifecycle-fLNUdjct.js +0 -1
  297. package/dist/public/sdk/activeWalletSession-BpbnpU9s.js +0 -1
  298. package/dist/public/sdk/adapters-BNmcyf9K.js +0 -2
  299. package/dist/public/sdk/appearance-token-vars-DxBm_cKA.js +0 -2
  300. package/dist/public/sdk/challengeDelivery-CG2J5Qxs.js +0 -1
  301. package/dist/public/sdk/clientSessionPersistenceState-BgO4P6CZ.js +0 -1
  302. package/dist/public/sdk/digestEncoding-aC4dSf_x.js +0 -1
  303. package/dist/public/sdk/ecdsaCapabilityManifest-DRc423SV.js +0 -1
  304. package/dist/public/sdk/ecdsaDerivationExport-DX89rq_u.js +0 -1
  305. package/dist/public/sdk/ecdsaWalletRecords-CxxUt3fS.js +0 -1
  306. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js +0 -1
  307. package/dist/public/sdk/exportKeypairOperation-BwW_E4Lt.js +0 -1
  308. package/dist/public/sdk/host-DMR4KDy9.js +0 -1
  309. package/dist/public/sdk/localOnly-DO191vDh.js +0 -1
  310. package/dist/public/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +0 -2
  311. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +0 -1
  312. package/dist/public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js +0 -1
  313. package/dist/public/sdk/passkey-custody-Ba-NQ_4C.js +0 -1
  314. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-DOeIn_Qj.js +0 -1
  315. package/dist/public/sdk/presignaturePool-BHoxnbOA.js +0 -1
  316. package/dist/public/sdk/presignatures-K-yuzOE0.js +0 -1
  317. package/dist/public/sdk/primitives-CTmDwMNc.js +0 -1
  318. package/dist/public/sdk/recovery-entrypoint-DWghFZrZ.js +0 -1
  319. package/dist/public/sdk/registration-sQndIWRF.js +0 -1
  320. package/dist/public/sdk/registrationAccounts-CD1u1ZqZ.js +0 -1
  321. package/dist/public/sdk/registrationIntent-D4YDjf2U.js +0 -1
  322. package/dist/public/sdk/routerAbNormalSigning-BV1t27aB.js +0 -1
  323. package/dist/public/sdk/runtime-auth-BxG-J-BB.js +0 -1
  324. package/dist/public/sdk/runtime-email-otp-CPqTCH8Q.js +0 -1
  325. package/dist/public/sdk/runtime-preferences-riUZGaTs.js +0 -1
  326. package/dist/public/sdk/runtime-recovery-CTj4nDAM.js +0 -1
  327. package/dist/public/sdk/runtime-recovery-codes-D8T9LQ7-.js +0 -1
  328. package/dist/public/sdk/secp256k1-wOOHtPcK.js +0 -1
  329. package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +0 -1
  330. package/dist/public/sdk/shared-hx7KVyeq.js +0 -6
  331. package/dist/public/sdk/signEvmFamily-DT34Vtpa.js +0 -1
  332. package/dist/public/sdk/signNear-B000QxBd.js +0 -1
  333. package/dist/public/sdk/signerSlot-FJAGOhmg.js +0 -1
  334. package/dist/public/sdk/signingFlow-gl85GOW4.js +0 -2
  335. package/dist/public/sdk/signingQueue-gW7wmOuL.js +0 -1
  336. package/dist/public/sdk/thresholdEcdsa-Ci7yz395.js +0 -1
  337. package/dist/public/sdk/transaction-activity-C0nCSW6c.js +0 -1
  338. package/dist/public/sdk/wallet-recovery-DFaS3geI.js +0 -1
  339. package/dist/public/sdk/walletAuthority-BY3kyKQ-.js +0 -1
  340. package/dist/public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +0 -1
  341. package/dist/public/sdk/walletDbName-BxWApBQF.js +0 -1
  342. package/dist/public/sdk/walletOwnershipGeneration-DSGfjuV2.js +0 -1
  343. package/dist/public/sdk/walletRecoveryCommit-DQA_wveK.js +0 -1
  344. package/dist/public/sdk/walletRecoveryRotate-zvQThn37.js +0 -1
  345. package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +0 -1
  346. package/dist/public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +0 -1
  347. package/dist/public/sdk/walletSessionAuthorizationStore-DnUMtkev.js +0 -1
  348. package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +0 -1
  349. package/dist/types/wallet/src/react/components/AccountMenuButton/SegmentedControl.d.ts +0 -25
  350. /package/dist/esm/sdk/{accountIds-Cpvlkvbe.js → accountIds-BzZs7YoX.js} +0 -0
  351. /package/dist/esm/sdk/{appearance-4DmzKUWf.js → appearance-ZGVLwA4N.js} +0 -0
  352. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-BB_sU4uA.js} +0 -0
  353. /package/dist/esm/sdk/{authorizationAdmission-Dd23mTx7.js → authorizationAdmission-D7nx2n4d.js} +0 -0
  354. /package/dist/esm/sdk/{browser-n3IVr7qu.js → browser-DkCRXFkk.js} +0 -0
  355. /package/dist/esm/sdk/{bytes-DZRW2UDg.js → bytes-Cv07P0Pu.js} +0 -0
  356. /package/dist/esm/sdk/{canonicalPrimitives-BMP5yILS.js → canonicalPrimitives-D_1HyEuJ.js} +0 -0
  357. /package/dist/esm/sdk/{canonicalSignerErrorCode-Cz48v4oy.js → canonicalSignerErrorCode-CqHi6ji6.js} +0 -0
  358. /package/dist/esm/sdk/{capabilityKinds-D0Yrp9uf.js → capabilityKinds-CqHVzVsJ.js} +0 -0
  359. /package/dist/esm/sdk/{ecdsaChainTarget-DkOrgv4y.js → ecdsaChainTarget-svSlzhze.js} +0 -0
  360. /package/dist/esm/sdk/{errors-ADOZT8oV.js → errors-CI1xdN0d.js} +0 -0
  361. /package/dist/esm/sdk/{executeWorkerOperation-DKCRRq5E.js → executeWorkerOperation-S6glYwAs.js} +0 -0
  362. /package/dist/esm/sdk/{helpers-DS0bksx9.js → helpers-BXezXx19.js} +0 -0
  363. /package/dist/esm/sdk/{intentDigest-Rh5Mg8X7.js → intentDigest--FZ63NBy.js} +0 -0
  364. /package/dist/esm/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-B5zMY6lE.js} +0 -0
  365. /package/dist/esm/sdk/{keccak-mS0Mejjx.js → keccak-CaPOCznk.js} +0 -0
  366. /package/dist/esm/sdk/{normalization-C6fQN6mW.js → normalization-CpLZcL2f.js} +0 -0
  367. /package/dist/esm/sdk/{prfCache-BAFh1skJ.js → prfCache-D25ZCg5n.js} +0 -0
  368. /package/dist/esm/sdk/{profileAccountProjection-BNVJLOt2.js → profileAccountProjection-C1z9sKHa.js} +0 -0
  369. /package/dist/esm/sdk/{promptText-CnyrLxgj.js → promptText-D2f5Rg0h.js} +0 -0
  370. /package/dist/esm/sdk/{registrationAuthMethodInput-B23_HRil.js → registrationAuthMethodInput-DKz6Mgg4.js} +0 -0
  371. /package/dist/esm/sdk/{sdkSentEvents-DujYAPEM.js → sdkSentEvents-BzMVO1AR.js} +0 -0
  372. /package/dist/esm/sdk/{signer-worker-DlK58rEA.js → signer-worker-Bh_5foqX.js} +0 -0
  373. /package/dist/esm/sdk/{signerDomain-BFqRQ0Jl.js → signerDomain-YEHkugWX.js} +0 -0
  374. /package/dist/esm/sdk/{surface-measurement-reporter-BJhfiPw6.js → surface-measurement-reporter-F-fVB7d3.js} +0 -0
  375. /package/dist/esm/sdk/{types-Buoe6179.js → types-BNUuaUtl.js} +0 -0
  376. /package/dist/esm/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-DJ0KOBHg.js} +0 -0
  377. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-DuU6w0FP.js → walletSessionAuthorizationProjection-UdGeS6x3.js} +0 -0
  378. /package/dist/esm/sdk/{walletSessionFailure-C6TAQTZn.js → walletSessionFailure-Ct412mDZ.js} +0 -0
  379. /package/dist/esm/sdk/{webauthnPromptCoordinator-9bVeHcTZ.js → webauthnPromptCoordinator-CBkTiMP0.js} +0 -0
  380. /package/dist/public/sdk/{accountIds-Cpvlkvbe.js → accountIds-BzZs7YoX.js} +0 -0
  381. /package/dist/public/sdk/{appearance-4DmzKUWf.js → appearance-ZGVLwA4N.js} +0 -0
  382. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-BB_sU4uA.js} +0 -0
  383. /package/dist/public/sdk/{authorizationAdmission-Dd23mTx7.js → authorizationAdmission-D7nx2n4d.js} +0 -0
  384. /package/dist/public/sdk/{browser-n3IVr7qu.js → browser-DkCRXFkk.js} +0 -0
  385. /package/dist/public/sdk/{bytes-DZRW2UDg.js → bytes-Cv07P0Pu.js} +0 -0
  386. /package/dist/public/sdk/{canonicalPrimitives-BMP5yILS.js → canonicalPrimitives-D_1HyEuJ.js} +0 -0
  387. /package/dist/public/sdk/{canonicalSignerErrorCode-Cz48v4oy.js → canonicalSignerErrorCode-CqHi6ji6.js} +0 -0
  388. /package/dist/public/sdk/{capabilityKinds-D0Yrp9uf.js → capabilityKinds-CqHVzVsJ.js} +0 -0
  389. /package/dist/public/sdk/{ecdsaChainTarget-DkOrgv4y.js → ecdsaChainTarget-svSlzhze.js} +0 -0
  390. /package/dist/public/sdk/{errors-ADOZT8oV.js → errors-CI1xdN0d.js} +0 -0
  391. /package/dist/public/sdk/{executeWorkerOperation-DKCRRq5E.js → executeWorkerOperation-S6glYwAs.js} +0 -0
  392. /package/dist/public/sdk/{helpers-DS0bksx9.js → helpers-BXezXx19.js} +0 -0
  393. /package/dist/public/sdk/{intentDigest-Rh5Mg8X7.js → intentDigest--FZ63NBy.js} +0 -0
  394. /package/dist/public/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-B5zMY6lE.js} +0 -0
  395. /package/dist/public/sdk/{keccak-mS0Mejjx.js → keccak-CaPOCznk.js} +0 -0
  396. /package/dist/public/sdk/{normalization-C6fQN6mW.js → normalization-CpLZcL2f.js} +0 -0
  397. /package/dist/public/sdk/{prfCache-BAFh1skJ.js → prfCache-D25ZCg5n.js} +0 -0
  398. /package/dist/public/sdk/{profileAccountProjection-BNVJLOt2.js → profileAccountProjection-C1z9sKHa.js} +0 -0
  399. /package/dist/public/sdk/{promptText-CnyrLxgj.js → promptText-D2f5Rg0h.js} +0 -0
  400. /package/dist/public/sdk/{registrationAuthMethodInput-B23_HRil.js → registrationAuthMethodInput-DKz6Mgg4.js} +0 -0
  401. /package/dist/public/sdk/{sdkSentEvents-DujYAPEM.js → sdkSentEvents-BzMVO1AR.js} +0 -0
  402. /package/dist/public/sdk/{signer-worker-DlK58rEA.js → signer-worker-Bh_5foqX.js} +0 -0
  403. /package/dist/public/sdk/{signerDomain-BFqRQ0Jl.js → signerDomain-YEHkugWX.js} +0 -0
  404. /package/dist/public/sdk/{surface-measurement-reporter-BJhfiPw6.js → surface-measurement-reporter-F-fVB7d3.js} +0 -0
  405. /package/dist/public/sdk/{types-Buoe6179.js → types-BNUuaUtl.js} +0 -0
  406. /package/dist/public/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-DJ0KOBHg.js} +0 -0
  407. /package/dist/public/sdk/{walletSessionAuthorizationProjection-DuU6w0FP.js → walletSessionAuthorizationProjection-UdGeS6x3.js} +0 -0
  408. /package/dist/public/sdk/{walletSessionFailure-C6TAQTZn.js → walletSessionFailure-Ct412mDZ.js} +0 -0
  409. /package/dist/public/sdk/{webauthnPromptCoordinator-9bVeHcTZ.js → webauthnPromptCoordinator-CBkTiMP0.js} +0 -0
@@ -1,9 +1,7 @@
1
1
  import { WalletText } from "../../context/WalletLocale.js";
2
- import SegmentedControl from "./SegmentedControl.js";
3
2
  import React from "react";
4
3
  import { jsx, jsxs } from "react/jsx-runtime";
5
4
  //#region src/react/components/AccountMenuButton/TransactionSettingsSection.tsx
6
- const TRANSACTION_SETTINGS_ACTIVE_BACKGROUND = "var(--seams-colors-buttonBackground, var(--seams-colors-primary))";
7
5
  const TransactionSettingsSection = ({ currentConfirmConfig, onSetUiMode, onToggleSkipClick, onSetDelay, className, style, isOpen = true, presentation = "menu" }) => {
8
6
  React.useEffect(() => {
9
7
  if (!isOpen) return;
@@ -16,14 +14,49 @@ const TransactionSettingsSection = ({ currentConfirmConfig, onSetUiMode, onToggl
16
14
  isOpen,
17
15
  onSetDelay
18
16
  ]);
17
+ const reviewLabelId = React.useId();
19
18
  const handleClick = (e) => {
20
19
  e.stopPropagation();
21
20
  };
22
- const disableRequireClick = currentConfirmConfig?.uiMode === "none";
23
21
  const disableAll = !isOpen;
24
- if (presentation === "page") return /* @__PURE__ */ jsxs("div", {
25
- className: "seams-transaction-page",
26
- children: [/* @__PURE__ */ jsxs("fieldset", {
22
+ const compact = presentation === "menu";
23
+ const uiMode = currentConfirmConfig.uiMode ?? "modal";
24
+ const reviewOn = uiMode !== "none" && currentConfirmConfig.behavior !== "skipClick";
25
+ const toggleReview = () => {
26
+ if (reviewOn) {
27
+ setBehavior(currentConfirmConfig, onSetDelay, onToggleSkipClick, "skipClick");
28
+ return;
29
+ }
30
+ if (uiMode === "none") onSetUiMode?.("modal");
31
+ setBehavior(currentConfirmConfig, onSetDelay, onToggleSkipClick, "requireClick");
32
+ };
33
+ return /* @__PURE__ */ jsxs("div", {
34
+ className: `seams-transaction-page${className ? ` ${className}` : ""}`,
35
+ "data-presentation": presentation,
36
+ style,
37
+ onClick: compact ? handleClick : void 0,
38
+ children: [/* @__PURE__ */ jsxs("div", {
39
+ className: "seams-transaction-review",
40
+ children: [/* @__PURE__ */ jsxs("div", {
41
+ className: "seams-transaction-review-row",
42
+ children: [/* @__PURE__ */ jsxs("span", {
43
+ className: "seams-transaction-review-text",
44
+ children: [/* @__PURE__ */ jsx("strong", {
45
+ id: reviewLabelId,
46
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Review before signing" })
47
+ }), /* @__PURE__ */ jsx("span", { children: reviewOn ? /* @__PURE__ */ jsx(WalletText, { message: "Show the transaction details, then click Continue to sign." }) : /* @__PURE__ */ jsx(WalletText, { message: "Passkey authentication starts as soon as the details appear." }) })]
48
+ }), /* @__PURE__ */ jsx("button", {
49
+ type: "button",
50
+ role: "switch",
51
+ className: "seams-transaction-switch",
52
+ "aria-checked": reviewOn,
53
+ "aria-labelledby": reviewLabelId,
54
+ disabled: disableAll,
55
+ onClick: toggleReview,
56
+ children: /* @__PURE__ */ jsx("span", { "aria-hidden": "true" })
57
+ })]
58
+ }), /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { message: "On phones, in Safari and for Email OTP sign-in, the wallet always waits for Continue." }) })]
59
+ }), /* @__PURE__ */ jsxs("fieldset", {
27
60
  className: "seams-transaction-group",
28
61
  disabled: disableAll,
29
62
  children: [
@@ -31,185 +64,72 @@ const TransactionSettingsSection = ({ currentConfirmConfig, onSetUiMode, onToggl
31
64
  /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { message: "Choose where transaction details appear before signing." }) }),
32
65
  /* @__PURE__ */ jsx("div", {
33
66
  className: "seams-transaction-choices",
34
- children: UI_CHOICES.map(renderUiChoice.bind(null, currentConfirmConfig.uiMode ?? "modal", onSetUiMode))
35
- })
36
- ]
37
- }), /* @__PURE__ */ jsxs("fieldset", {
38
- className: "seams-transaction-group",
39
- disabled: disableAll || disableRequireClick,
40
- children: [
41
- /* @__PURE__ */ jsx("legend", { children: /* @__PURE__ */ jsx(WalletText, { message: "Confirmation step" }) }),
42
- /* @__PURE__ */ jsx("p", { children: disableRequireClick ? /* @__PURE__ */ jsx(WalletText, { message: "Choose Modal or Drawer to configure the confirmation step." }) : /* @__PURE__ */ jsx(WalletText, { message: "Choose whether to click Continue before authentication starts." }) }),
43
- /* @__PURE__ */ jsx("div", {
44
- className: "seams-transaction-choices seams-transaction-choices--two",
45
- children: BEHAVIOR_CHOICES.map(renderBehaviorChoice.bind(null, currentConfirmConfig, onSetDelay, onToggleSkipClick))
67
+ children: UI_CHOICES.map(renderUiChoice.bind(null, compact, uiMode, onSetUiMode))
46
68
  })
47
69
  ]
48
70
  })]
49
71
  });
50
- return /* @__PURE__ */ jsx("div", {
51
- className: `seams-dropdown-tx-settings-root ${isOpen ? "is-expanded" : ""} ${className || ""}`,
52
- style,
53
- onClick: handleClick,
54
- children: /* @__PURE__ */ jsx("div", {
55
- className: "seams-dropdown-toggle-tx-settings",
56
- children: /* @__PURE__ */ jsx("div", {
57
- className: "seams-dropdown-toggle-tx-settings-content",
58
- "aria-hidden": !isOpen,
59
- style: { pointerEvents: isOpen ? "auto" : "none" },
60
- children: /* @__PURE__ */ jsxs("div", {
61
- style: {
62
- width: "100%",
63
- display: "flex",
64
- flexDirection: "column",
65
- gap: 8
66
- },
67
- children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("div", {
68
- className: "seams-confirmation-options",
69
- children: /* @__PURE__ */ jsx(WalletText, { message: "Confirmer UI" })
70
- }), /* @__PURE__ */ jsx("div", {
71
- style: { width: "100%" },
72
- children: /* @__PURE__ */ jsx(SegmentedControl, {
73
- items: [
74
- {
75
- value: "none",
76
- label: "none",
77
- disabled: disableAll
78
- },
79
- {
80
- value: "modal",
81
- label: "modal",
82
- disabled: disableAll
83
- },
84
- {
85
- value: "drawer",
86
- label: "drawer",
87
- disabled: disableAll
88
- }
89
- ],
90
- value: currentConfirmConfig?.uiMode ?? "modal",
91
- onValueChange: (v) => onSetUiMode?.(v),
92
- activeBg: TRANSACTION_SETTINGS_ACTIVE_BACKGROUND,
93
- height: 40,
94
- buttonFontSize: 12,
95
- containerStyle: { width: "100%" },
96
- buttonStyle: {
97
- display: "grid",
98
- placeItems: "center",
99
- lineHeight: 1,
100
- padding: "0 10px"
101
- },
102
- activeButtonStyle: { color: "var(--seams-colors-textButton)" }
103
- })
104
- })] }), /* @__PURE__ */ jsxs("div", {
105
- style: {
106
- opacity: disableRequireClick ? .6 : 1,
107
- pointerEvents: disableRequireClick ? "none" : "auto"
108
- },
109
- children: [/* @__PURE__ */ jsx("div", {
110
- className: "seams-confirmation-options",
111
- children: /* @__PURE__ */ jsx(WalletText, { message: "Confirmation Options" })
112
- }), /* @__PURE__ */ jsx("div", {
113
- style: { width: "100%" },
114
- children: /* @__PURE__ */ jsx(SegmentedControl, {
115
- items: [{
116
- value: "skipClick",
117
- label: "skip click",
118
- disabled: disableAll || disableRequireClick
119
- }, {
120
- value: "requireClick",
121
- label: "require click",
122
- disabled: disableAll || disableRequireClick
123
- }],
124
- value: currentConfirmConfig?.behavior === "skipClick" ? "skipClick" : "requireClick",
125
- onValueChange: (v) => {
126
- const wantsSkipClick = v === "skipClick";
127
- const isSkipClick = currentConfirmConfig?.behavior === "skipClick";
128
- if (wantsSkipClick && (currentConfirmConfig?.autoProceedDelay ?? 0) !== 0) onSetDelay(0);
129
- if (wantsSkipClick !== isSkipClick) onToggleSkipClick?.();
130
- },
131
- activeBg: TRANSACTION_SETTINGS_ACTIVE_BACKGROUND,
132
- height: 40,
133
- buttonFontSize: 12,
134
- containerStyle: { width: "100%" },
135
- buttonStyle: {
136
- display: "grid",
137
- placeItems: "center",
138
- lineHeight: 1,
139
- padding: "0 10px"
140
- },
141
- activeButtonStyle: { color: "var(--seams-colors-textButton)" }
142
- })
143
- })]
144
- })]
145
- })
146
- })
147
- })
148
- });
149
72
  };
150
- const UI_CHOICES = [
151
- {
152
- value: "none",
153
- label: "No review",
154
- description: "Start authentication without showing a review panel."
155
- },
156
- {
157
- value: "modal",
158
- label: "Modal",
159
- description: "Review the transaction in a centered dialog."
160
- },
161
- {
162
- value: "drawer",
163
- label: "Drawer",
164
- description: "Review the transaction in a slide-out panel."
165
- }
166
- ];
167
- const BEHAVIOR_CHOICES = [{
168
- value: "skipClick",
169
- label: "Start automatically",
170
- description: "Begin authentication as soon as the review opens."
73
+ const UI_CHOICES = [{
74
+ value: "modal",
75
+ label: "Modal",
76
+ description: "Review the transaction in a centered dialog."
171
77
  }, {
172
- value: "requireClick",
173
- label: "Click to continue",
174
- description: "Review the details, then click Continue to start authentication."
78
+ value: "drawer",
79
+ label: "Drawer",
80
+ description: "Review the transaction in a slide-out panel."
175
81
  }];
176
- function renderUiChoice(selected, onSelect, choice) {
82
+ function ChoicePreview({ kind }) {
83
+ return /* @__PURE__ */ jsxs("span", {
84
+ className: "seams-transaction-preview",
85
+ "data-preview": kind,
86
+ "aria-hidden": "true",
87
+ children: [
88
+ /* @__PURE__ */ jsxs("span", {
89
+ className: "seams-tp-page",
90
+ children: [
91
+ /* @__PURE__ */ jsx("i", {}),
92
+ /* @__PURE__ */ jsx("i", {}),
93
+ /* @__PURE__ */ jsx("i", {})
94
+ ]
95
+ }),
96
+ /* @__PURE__ */ jsx("span", { className: "seams-tp-scrim" }),
97
+ /* @__PURE__ */ jsxs("span", {
98
+ className: "seams-tp-panel",
99
+ children: [
100
+ /* @__PURE__ */ jsx("i", {}),
101
+ /* @__PURE__ */ jsx("i", {}),
102
+ /* @__PURE__ */ jsx("b", {})
103
+ ]
104
+ })
105
+ ]
106
+ });
107
+ }
108
+ function renderUiChoice(compact, selected, onSelect, choice) {
177
109
  return /* @__PURE__ */ jsxs("button", {
178
110
  type: "button",
179
111
  className: "seams-transaction-choice",
180
112
  "aria-pressed": selected === choice.value,
181
113
  onClick: onSelect?.bind(null, choice.value),
182
- children: [
183
- /* @__PURE__ */ jsx("span", {
184
- className: "seams-transaction-choice-indicator",
185
- "aria-hidden": "true"
186
- }),
187
- /* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: choice.label }) }),
188
- /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { copy: choice.description }) })
189
- ]
114
+ children: [/* @__PURE__ */ jsx(ChoicePreview, { kind: choice.value }), /* @__PURE__ */ jsxs("span", {
115
+ className: "seams-transaction-choice-text",
116
+ children: [/* @__PURE__ */ jsxs("span", {
117
+ className: "seams-transaction-choice-head",
118
+ children: [/* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: choice.label }) }), /* @__PURE__ */ jsx("span", {
119
+ className: "seams-transaction-choice-indicator",
120
+ "aria-hidden": "true"
121
+ })]
122
+ }), compact ? null : /* @__PURE__ */ jsx("span", {
123
+ className: "seams-transaction-choice-description",
124
+ children: /* @__PURE__ */ jsx(WalletText, { copy: choice.description })
125
+ })]
126
+ })]
190
127
  }, choice.value);
191
128
  }
192
129
  function setBehavior(config, setDelay, toggle, value) {
193
130
  if (value === "skipClick" && (config.autoProceedDelay ?? 0) !== 0) setDelay(0);
194
131
  if (value === "skipClick" !== (config.behavior === "skipClick")) toggle();
195
132
  }
196
- function renderBehaviorChoice(config, setDelay, toggle, choice) {
197
- const selected = config.behavior === "skipClick" ? "skipClick" : "requireClick";
198
- return /* @__PURE__ */ jsxs("button", {
199
- type: "button",
200
- className: "seams-transaction-choice",
201
- "aria-pressed": selected === choice.value,
202
- onClick: setBehavior.bind(null, config, setDelay, toggle, choice.value),
203
- children: [
204
- /* @__PURE__ */ jsx("span", {
205
- className: "seams-transaction-choice-indicator",
206
- "aria-hidden": "true"
207
- }),
208
- /* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: choice.label }) }),
209
- /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { copy: choice.description }) })
210
- ]
211
- }, choice.value);
212
- }
213
133
  //#endregion
214
134
  export { TransactionSettingsSection };
215
135
 
@@ -273,15 +273,17 @@ var WalletRegionSection = class extends Component {
273
273
  " ",
274
274
  /* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: regionName(state.placement.region) }) })
275
275
  ] }),
276
- /* @__PURE__ */ jsxs("label", { children: [
277
- /* @__PURE__ */ jsx(WalletText, { message: "Destination region" }),
278
- " ",
279
- /* @__PURE__ */ jsx("select", {
280
- value: state.selected,
281
- onChange: this.select,
282
- children: REGIONS.map(renderRegion)
283
- })
284
- ] }),
276
+ /* @__PURE__ */ jsxs("label", {
277
+ className: "seams-region-field",
278
+ children: [/* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { message: "Destination region" }) }), /* @__PURE__ */ jsx("span", {
279
+ className: "seams-region-select",
280
+ children: /* @__PURE__ */ jsx("select", {
281
+ value: state.selected,
282
+ onChange: this.select,
283
+ children: REGIONS.map(renderRegion)
284
+ })
285
+ })]
286
+ }),
285
287
  /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { message: "Moving your wallet ends signing sessions on all devices. After the move, unlock your wallet again to sign." }) }),
286
288
  state.placement.nextMoveAtMs > Date.now() ? /* @__PURE__ */ jsxs("p", { children: [
287
289
  /* @__PURE__ */ jsx(WalletText, { message: "Another move is available after" }),
@@ -206,8 +206,7 @@
206
206
  padding: 24px;
207
207
  }
208
208
  .seams-settings-content .seams-dropdown-accounts-root,
209
- .seams-settings-content .seams-dropdown-export-keys-root,
210
- .seams-settings-content .seams-dropdown-tx-settings-root {
209
+ .seams-settings-content .seams-dropdown-export-keys-root {
211
210
  margin: 0;
212
211
  border: 1px solid var(--seams-colors-borderPrimary);
213
212
  border-radius: 16px;
@@ -375,90 +374,93 @@
375
374
  }
376
375
  }
377
376
 
378
- .seams-transaction-page {
377
+ .seams-region-field {
379
378
  display: grid;
380
- gap: 36px;
381
- }
382
- .seams-transaction-group {
383
- min-width: 0;
384
- margin: 0;
385
- padding: 0;
386
- border: 0;
387
- }
388
- .seams-transaction-group legend {
389
- padding: 0;
390
- font-size: 20px;
391
- font-weight: 600;
392
- }
393
- .seams-transaction-group > p {
394
- margin: 8px 0 20px;
395
- color: var(--seams-colors-textSecondary);
379
+ gap: 8px;
380
+ max-width: 360px;
381
+ margin: 24px 0 16px;
396
382
  font-size: 14px;
397
- line-height: 1.5;
398
- }
399
- .seams-transaction-choices {
400
- display: grid;
401
- grid-template-columns: repeat(3, minmax(0, 1fr));
402
- gap: 16px;
383
+ font-weight: 500;
403
384
  }
404
- .seams-transaction-choices--two {
405
- grid-template-columns: repeat(2, minmax(0, 1fr));
385
+ /* The wrapper draws the chevron, so the closed control looks the same in
386
+ every browser. */
387
+ .seams-region-select {
388
+ position: relative;
389
+ display: block;
406
390
  }
407
- .seams-transaction-choice {
408
- display: flex;
409
- flex-direction: column;
410
- align-items: flex-start;
411
- gap: 12px;
412
- min-height: 188px;
413
- padding: 24px;
391
+ .seams-region-select::after {
392
+ content: '';
393
+ position: absolute;
394
+ inset-block-start: 50%;
395
+ inset-inline-end: 18px;
396
+ width: 7px;
397
+ height: 7px;
398
+ border-inline-end: 1.5px solid var(--seams-colors-textSecondary);
399
+ border-block-end: 1.5px solid var(--seams-colors-textSecondary);
400
+ transform: translateY(-70%) rotate(45deg);
401
+ pointer-events: none;
402
+ }
403
+ .seams-region-select select {
404
+ appearance: none;
405
+ width: 100%;
406
+ min-height: 48px;
407
+ padding-block: 12px;
408
+ padding-inline: 14px 44px;
414
409
  border: 1px solid var(--seams-colors-borderPrimary);
415
- border-radius: 16px;
410
+ border-radius: 12px;
416
411
  background: var(--seams-colors-colorBackground);
417
412
  color: var(--seams-colors-textPrimary);
418
413
  font: inherit;
419
- text-align: start;
414
+ font-weight: 400;
420
415
  cursor: pointer;
421
416
  }
422
- .seams-transaction-choice strong {
423
- font-size: 16px;
424
- }
425
- .seams-transaction-choice > span:last-child {
426
- color: var(--seams-colors-textSecondary);
427
- font-size: 14px;
428
- line-height: 1.5;
429
- }
430
- .seams-transaction-choice-indicator {
431
- width: 20px;
432
- height: 20px;
433
- box-sizing: border-box;
434
- border: 1px solid var(--seams-colors-borderPrimary);
435
- border-radius: 50%;
436
- }
437
- .seams-transaction-choice[aria-pressed='true'] {
438
- border-color: var(--seams-colors-primary);
439
- box-shadow: inset 0 0 0 1px var(--seams-colors-primary);
440
- background: var(--seams-colors-surface2);
441
- }
442
- .seams-transaction-choice[aria-pressed='true'] .seams-transaction-choice-indicator {
443
- border: 6px solid var(--seams-colors-primary);
444
- }
445
- .seams-transaction-choice:hover:not(:disabled) {
446
- background: var(--seams-colors-surface2);
447
- }
448
- .seams-transaction-choice:focus-visible {
449
- outline: 2px solid var(--seams-colors-primary);
450
- outline-offset: 4px;
417
+ .seams-region-select select:hover {
418
+ background: var(--seams-colors-surface);
451
419
  }
452
- .seams-transaction-choice:disabled {
453
- opacity: 0.55;
454
- cursor: not-allowed;
420
+ .seams-region-select select:focus-visible {
421
+ outline: 2px solid var(--seams-colors-textPrimary);
422
+ outline-offset: 2px;
455
423
  }
456
- @media (max-width: 600px) {
457
- .seams-transaction-choices {
458
- grid-template-columns: minmax(0, 1fr);
424
+ /* Browsers with customizable select also style the open list. Others keep
425
+ the native list. */
426
+ @supports (appearance: base-select) {
427
+ .seams-region-select select,
428
+ .seams-region-select ::picker(select) {
429
+ appearance: base-select;
459
430
  }
460
- .seams-transaction-choice {
461
- min-height: 0;
462
- padding: 20px;
431
+ .seams-region-select select::picker-icon {
432
+ display: none;
433
+ }
434
+ .seams-region-select ::picker(select) {
435
+ margin-block: 6px;
436
+ padding: 6px;
437
+ border: 1px solid var(--seams-colors-borderPrimary);
438
+ border-radius: 12px;
439
+ background: var(--seams-colors-colorBackground);
440
+ color: var(--seams-colors-textPrimary);
441
+ box-shadow: 0 12px 32px rgb(0 0 0 / 0.14);
442
+ }
443
+ .seams-region-select option {
444
+ display: flex;
445
+ align-items: center;
446
+ gap: 10px;
447
+ min-height: 40px;
448
+ padding: 8px 10px;
449
+ border-radius: 8px;
450
+ font: inherit;
451
+ cursor: pointer;
452
+ }
453
+ .seams-region-select option:hover,
454
+ .seams-region-select option:focus-visible {
455
+ outline: none;
456
+ background: var(--seams-colors-surface2);
457
+ }
458
+ .seams-region-select option:checked {
459
+ font-weight: 500;
460
+ }
461
+ .seams-region-select option::checkmark {
462
+ order: 1;
463
+ margin-inline-start: auto;
464
+ color: var(--seams-colors-textSecondary);
463
465
  }
464
466
  }
@@ -8,6 +8,7 @@ import { ScanIcon } from "./icons/ScanIcon.js";
8
8
  import { KeyIcon } from "./icons/KeyIcon.js";
9
9
  import { LinkIcon } from "./icons/LinkIcon.js";
10
10
  import { GlobeIcon } from "./icons/GlobeIcon.js";
11
+ import { MapPinIcon } from "./icons/MapPinIcon.js";
11
12
  import { SlidersIcon } from "./icons/SlidersIcon.js";
12
13
  import { RecoveryCodesIcon } from "./icons/RecoveryCodesIcon.js";
13
14
  import TouchIcon from "./icons/TouchIcon.js";
@@ -21,12 +22,6 @@ import { jsx, jsxs } from "react/jsx-runtime";
21
22
  import "./WalletSettingsLayout.css";
22
23
  //#region src/react/components/AccountMenuButton/WalletSettingsLayout.tsx
23
24
  const SETTINGS_ITEMS = [
24
- {
25
- id: PROFILE_MENU_ITEM_IDS.WALLET_REGION,
26
- label: "Wallet region",
27
- description: "Choose where your wallet runs",
28
- icon: /* @__PURE__ */ jsx(GlobeIcon, {})
29
- },
30
25
  {
31
26
  id: PROFILE_MENU_ITEM_IDS.ACCOUNTS,
32
27
  label: "Accounts",
@@ -34,10 +29,16 @@ const SETTINGS_ITEMS = [
34
29
  icon: /* @__PURE__ */ jsx(GlobeIcon, {})
35
30
  },
36
31
  {
37
- id: PROFILE_MENU_ITEM_IDS.EXPORT_KEYS,
38
- label: "Export keys",
39
- description: "Export wallet signing keys",
40
- icon: /* @__PURE__ */ jsx(KeyIcon, {})
32
+ id: PROFILE_MENU_ITEM_IDS.TRANSACTION_SETTINGS,
33
+ label: "Transaction settings",
34
+ description: "Customize confirmation behavior",
35
+ icon: /* @__PURE__ */ jsx(SlidersIcon, {})
36
+ },
37
+ {
38
+ id: PROFILE_MENU_ITEM_IDS.AUTHENTICATION_METHODS,
39
+ label: "Authentication methods",
40
+ description: "Choose how you unlock this device",
41
+ icon: /* @__PURE__ */ jsx(TouchIcon, {})
41
42
  },
42
43
  {
43
44
  id: PROFILE_MENU_ITEM_IDS.RECOVERY_CODES,
@@ -46,10 +47,10 @@ const SETTINGS_ITEMS = [
46
47
  icon: /* @__PURE__ */ jsx(RecoveryCodesIcon, {})
47
48
  },
48
49
  {
49
- id: PROFILE_MENU_ITEM_IDS.AUTHENTICATION_METHODS,
50
- label: "Authentication methods",
51
- description: "Choose how you unlock this device",
52
- icon: /* @__PURE__ */ jsx(TouchIcon, {})
50
+ id: PROFILE_MENU_ITEM_IDS.LINKED_DEVICES,
51
+ label: "Linked devices",
52
+ description: "See devices using this wallet",
53
+ icon: /* @__PURE__ */ jsx(LinkIcon, {})
53
54
  },
54
55
  {
55
56
  id: PROFILE_MENU_ITEM_IDS.SCAN_LINK_DEVICE,
@@ -58,16 +59,16 @@ const SETTINGS_ITEMS = [
58
59
  icon: /* @__PURE__ */ jsx(ScanIcon, {})
59
60
  },
60
61
  {
61
- id: PROFILE_MENU_ITEM_IDS.LINKED_DEVICES,
62
- label: "Linked devices",
63
- description: "See devices using this wallet",
64
- icon: /* @__PURE__ */ jsx(LinkIcon, {})
62
+ id: PROFILE_MENU_ITEM_IDS.WALLET_REGION,
63
+ label: "Wallet region",
64
+ description: "Choose where your wallet runs",
65
+ icon: /* @__PURE__ */ jsx(MapPinIcon, {})
65
66
  },
66
67
  {
67
- id: PROFILE_MENU_ITEM_IDS.TRANSACTION_SETTINGS,
68
- label: "Transaction settings",
69
- description: "Customize confirmation behavior",
70
- icon: /* @__PURE__ */ jsx(SlidersIcon, {})
68
+ id: PROFILE_MENU_ITEM_IDS.EXPORT_KEYS,
69
+ label: "Export keys",
70
+ description: "Export wallet signing keys",
71
+ icon: /* @__PURE__ */ jsx(KeyIcon, {})
71
72
  }
72
73
  ];
73
74
  function WalletSettingsHeader() {
@@ -457,11 +457,7 @@
457
457
  .seams-account-identity:focus {
458
458
  outline: none;
459
459
  }
460
- .seams-account-screen .seams-dropdown-tx-settings-root {
461
- --seams-expander-surface: var(--seams-colors-colorBackground);
462
- border: 0;
463
- border-radius: 12px;
464
- overflow: hidden;
460
+ .seams-account-screen .seams-transaction-page {
465
461
  margin-top: 14px;
466
462
  }
467
463
 
@@ -0,0 +1,12 @@
1
+ import { lucideIcon } from "./lucideIcon.js";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/react/components/AccountMenuButton/icons/MapPinIcon.tsx
4
+ const MapPinIcon = lucideIcon("map-pin", /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("path", { d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" }), /* @__PURE__ */ jsx("circle", {
5
+ cx: "12",
6
+ cy: "10",
7
+ r: "3"
8
+ })] }));
9
+ //#endregion
10
+ export { MapPinIcon };
11
+
12
+ //# sourceMappingURL=MapPinIcon.js.map
@@ -11,6 +11,7 @@ import { ScanIcon } from "./icons/ScanIcon.js";
11
11
  import { KeyIcon } from "./icons/KeyIcon.js";
12
12
  import { LinkIcon } from "./icons/LinkIcon.js";
13
13
  import { GlobeIcon } from "./icons/GlobeIcon.js";
14
+ import { MapPinIcon } from "./icons/MapPinIcon.js";
14
15
  import { SlidersIcon } from "./icons/SlidersIcon.js";
15
16
  import { RecoveryCodesIcon } from "./icons/RecoveryCodesIcon.js";
16
17
  import SpinnerIcon from "./icons/SpinnerIcon.js";
@@ -243,13 +244,22 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
243
244
  ]);
244
245
  const startRecoveryCodesFlow = useCallback(async () => {
245
246
  if (recoveryCodesOpen || !walletId) return;
247
+ if (!loginState.isLoggedIn || loginState.currentAuthMethod.kind !== "selected") {
248
+ setSettingsError("Unlock this wallet to confirm its recovery-code backup.");
249
+ return;
250
+ }
251
+ const authorization = loginState.currentAuthMethod.binding.kind === "passkey" ? { kind: "passkey" } : { kind: "email_otp" };
246
252
  setRecoveryCodesOpen(true);
247
253
  setSettingsError(null);
248
254
  try {
249
- const result = await recovery.confirmBackup({ walletId });
255
+ const result = await recovery.confirmBackup({
256
+ walletId,
257
+ authorization
258
+ });
250
259
  switch (result.kind) {
251
260
  case "acknowledged": return;
252
261
  case "no_recovery_set":
262
+ case "conflict":
253
263
  case "unauthorized":
254
264
  case "transport_failed":
255
265
  setSettingsError(result.message);
@@ -265,6 +275,7 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
265
275
  setRecoveryCodesOpen(false);
266
276
  }
267
277
  }, [
278
+ loginState,
268
279
  recovery,
269
280
  recoveryCodesOpen,
270
281
  walletId
@@ -360,7 +371,7 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
360
371
  }
361
372
  if (presentation === "page") items.push({
362
373
  id: PROFILE_MENU_ITEM_IDS.WALLET_REGION,
363
- icon: /* @__PURE__ */ jsx(GlobeIcon, {}),
374
+ icon: /* @__PURE__ */ jsx(MapPinIcon, {}),
364
375
  label: "Wallet region",
365
376
  description: "Choose where your wallet runs",
366
377
  disabled: accountMenuCapabilities.kind !== "owner"