@seams/wallet 0.17.0 → 0.19.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 (341) hide show
  1. package/README.md +4 -5
  2. package/dist/.build-inputs.sha256 +1 -1
  3. package/dist/esm/SeamsWeb/index.js +1 -1
  4. package/dist/esm/SeamsWeb/walletIframe/client/inboundMessages.js +1 -1
  5. package/dist/esm/SeamsWeb/walletIframe/client/router.js +10 -4
  6. package/dist/esm/SeamsWeb/walletIframe/coordinator.js +23 -1
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +5 -4
  8. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +121 -246
  9. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +37 -1
  10. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +4 -2
  11. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +117 -0
  12. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.js +60 -0
  13. package/dist/esm/SeamsWeb/walletIframe/shared/facadeBoundary.js +2 -0
  14. package/dist/esm/core/browser/walletIframe/events.js +6 -0
  15. package/dist/esm/core/config/configBuilder.js +2 -0
  16. package/dist/esm/core/signingEngine/uiConfirm/ui/appearance.js +27 -0
  17. package/dist/esm/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +155 -0
  18. package/dist/esm/core/signingEngine/uiConfirm/ui/export-viewer-host.js +209 -0
  19. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +7 -4
  20. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +10 -6
  21. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +9 -6
  22. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +9 -6
  23. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +7 -4
  24. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +4 -1
  25. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +4 -1
  26. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +5 -4
  27. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +319 -0
  28. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +10 -7
  29. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +9 -5
  30. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +28 -22
  31. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +2 -1
  32. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +51 -26
  33. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +42 -27
  34. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +25 -18
  35. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +8 -5
  36. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/WalletLocale.js +24 -0
  37. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +6 -4
  38. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +92 -0
  39. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +4 -2
  40. package/dist/esm/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +12 -0
  41. package/dist/esm/core/ui/locale.js +10 -0
  42. package/dist/esm/core/ui/messages.js +698 -0
  43. package/dist/esm/index.js +3 -2
  44. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +7 -3
  45. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +7 -4
  46. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +4 -3
  47. package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +5 -2
  48. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +31 -27
  49. package/dist/esm/react/components/AccountMenuButton/AccountMenuScreen.js +6 -3
  50. package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +6 -3
  51. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -4
  52. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +33 -27
  53. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +5 -2
  54. package/dist/esm/react/components/AccountMenuButton/ExportKeysScreen.js +5 -3
  55. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.css +20 -0
  56. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +4 -3
  57. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +9 -3
  58. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +50 -41
  59. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  60. package/dist/esm/react/components/AccountMenuButton/MenuItem.js +3 -2
  61. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +8 -4
  62. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeAcknowledgement.js +3 -2
  63. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeActions.js +4 -3
  64. package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +2 -1
  65. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +11 -10
  66. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +1 -0
  67. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +8 -4
  68. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +22 -15
  69. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +20 -16
  70. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +15 -0
  71. package/dist/esm/react/components/AccountMenuButton/index.js +18 -15
  72. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +30 -26
  73. package/dist/esm/react/components/QRCodeScanner.js +28 -23
  74. package/dist/esm/react/components/ShowQRCode.js +39 -31
  75. package/dist/esm/react/components/theme/ThemeProvider.js +3 -0
  76. package/dist/esm/react/context/WalletLocale.js +15 -0
  77. package/dist/esm/react/context/index.js +8 -3
  78. package/dist/esm/react/styles/styles.css +36 -0
  79. package/dist/esm/sdk/ConfirmationDrawer-DCw0m-Iv.js +1 -0
  80. package/dist/{public/sdk/NonceCoordinator-DuDKN-B8.js → esm/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
  81. package/dist/{public/sdk/accountLifecycle-D61FIpFS.js → esm/sdk/accountLifecycle-fLNUdjct.js} +1 -1
  82. package/dist/{public/sdk/activeWalletSession-Ba6X4CUN.js → esm/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
  83. package/dist/esm/sdk/adapters-BNmcyf9K.js +2 -0
  84. package/dist/esm/sdk/appearance-token-vars-DxBm_cKA.js +2 -0
  85. package/dist/esm/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
  86. package/dist/esm/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
  87. package/dist/{public/sdk/clientSessionPersistenceState-BHRUSWMt.js → esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
  88. package/dist/esm/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
  89. package/dist/esm/sdk/configBuilder-BMNShuOu.js +1 -0
  90. package/dist/esm/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
  91. package/dist/esm/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
  92. package/dist/esm/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
  93. package/dist/{public/sdk/ecdsaCapabilityManifest-DzA996y9.js → esm/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
  94. package/dist/{public/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
  95. package/dist/{public/sdk/ecdsaDerivationExport-DyugdheE.js → esm/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
  96. package/dist/esm/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
  97. package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
  98. package/dist/esm/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-DsdzagKK.js} +1 -1
  99. package/dist/{public/sdk/exportKeypairOperation-SJPysnE1.js → esm/sdk/exportKeypairOperation-BwW_E4Lt.js} +1 -1
  100. package/dist/esm/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
  101. package/dist/esm/sdk/{host-GPb_mSAQ.js → host-DMR4KDy9.js} +1 -1
  102. package/dist/esm/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
  103. package/dist/esm/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
  104. package/dist/esm/sdk/localOnly-DO191vDh.js +1 -0
  105. package/dist/esm/sdk/mountExportPrivateKeySurface-DQzFzhNu.js +1 -0
  106. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +2 -0
  107. package/dist/{public/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
  108. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
  109. package/dist/esm/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
  110. package/dist/esm/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
  111. package/dist/{public/sdk/passkey-custody-CBSal3E9.js → esm/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
  112. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-DOeIn_Qj.js} +1 -1
  113. package/dist/{public/sdk/presignaturePool-CQNt13kE.js → esm/sdk/presignaturePool-BHoxnbOA.js} +1 -1
  114. package/dist/esm/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
  115. package/dist/esm/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
  116. package/dist/esm/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
  117. package/dist/esm/sdk/{registration-49OGU_GZ.js → registration-DknFwoqn.js} +1 -1
  118. package/dist/esm/sdk/{registration-C7tywPXF.js → registration-sQndIWRF.js} +1 -1
  119. package/dist/esm/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
  120. package/dist/esm/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
  121. package/dist/{public/sdk/registrationIntent-PqmcTEE3.js → esm/sdk/registrationIntent-D4YDjf2U.js} +1 -1
  122. package/dist/esm/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
  123. package/dist/{public/sdk/routerAbNormalSigning-xxATTIh5.js → esm/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
  124. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  125. package/dist/esm/sdk/runtime-auth-BxG-J-BB.js +1 -0
  126. package/dist/esm/sdk/runtime-device-link-Dn_5hPCq.js +1 -0
  127. package/dist/esm/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js +1 -0
  128. package/dist/esm/sdk/runtime-email-otp-CPqTCH8Q.js +1 -0
  129. package/dist/esm/sdk/runtime-export-Brz53_oi.js +1 -0
  130. package/dist/esm/sdk/runtime-near-Da_xFUXx.js +1 -0
  131. package/dist/esm/sdk/runtime-preferences-riUZGaTs.js +1 -0
  132. package/dist/esm/sdk/runtime-recovery-CTj4nDAM.js +1 -0
  133. package/dist/esm/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-D8T9LQ7-.js} +1 -1
  134. package/dist/esm/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
  135. package/dist/esm/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
  136. package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
  137. package/dist/esm/sdk/shared-hx7KVyeq.js +6 -0
  138. package/dist/esm/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
  139. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
  140. package/dist/esm/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
  141. package/dist/{public/sdk/signNear-Dno7NsP_.js → esm/sdk/signNear-B000QxBd.js} +1 -1
  142. package/dist/{public/sdk/signingFlow-DtugI_2z.js → esm/sdk/signingFlow-gl85GOW4.js} +1 -1
  143. package/dist/esm/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
  144. package/dist/esm/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
  145. package/dist/{public/sdk/thresholdEcdsa-murTq-xz.js → esm/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
  146. package/dist/{public/sdk/transactionState-XbZm9Zon.js → esm/sdk/transactionState-lB2qpkOm.js} +1 -1
  147. package/dist/esm/sdk/tx-confirm-ui.js +1799 -432
  148. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  149. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  150. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  151. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  152. package/dist/esm/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
  153. package/dist/esm/sdk/wallet-ui.css +1 -1
  154. package/dist/{public/sdk/walletAuthMethodRecord-Bv68Vq-g.js → esm/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
  155. package/dist/{public/sdk/walletAuthority-v5wvv3IB.js → esm/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
  156. package/dist/{public/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
  157. package/dist/esm/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
  158. package/dist/{public/sdk/walletOwnershipGeneration-pMmmJ6XA.js → esm/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
  159. package/dist/esm/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
  160. package/dist/esm/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
  161. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
  162. package/dist/{public/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
  163. package/dist/{public/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
  164. package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
  165. package/dist/{public/sdk/webauthnP256-XgYu-Y6E.js → esm/sdk/webauthnP256-_ajaNl90.js} +1 -1
  166. package/dist/esm/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
  167. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  168. package/dist/public/headers.manifest.json +1 -1
  169. package/dist/public/sdk/ConfirmationDrawer-DCw0m-Iv.js +1 -0
  170. package/dist/{esm/sdk/NonceCoordinator-DuDKN-B8.js → public/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
  171. package/dist/{esm/sdk/accountLifecycle-D61FIpFS.js → public/sdk/accountLifecycle-fLNUdjct.js} +1 -1
  172. package/dist/{esm/sdk/activeWalletSession-Ba6X4CUN.js → public/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
  173. package/dist/public/sdk/adapters-BNmcyf9K.js +2 -0
  174. package/dist/public/sdk/appearance-token-vars-DxBm_cKA.js +2 -0
  175. package/dist/public/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
  176. package/dist/public/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
  177. package/dist/{esm/sdk/clientSessionPersistenceState-BHRUSWMt.js → public/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
  178. package/dist/public/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
  179. package/dist/public/sdk/configBuilder-BMNShuOu.js +1 -0
  180. package/dist/public/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
  181. package/dist/public/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
  182. package/dist/public/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
  183. package/dist/{esm/sdk/ecdsaCapabilityManifest-DzA996y9.js → public/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
  184. package/dist/{esm/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
  185. package/dist/{esm/sdk/ecdsaDerivationExport-DyugdheE.js → public/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
  186. package/dist/public/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
  187. package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
  188. package/dist/public/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-DsdzagKK.js} +1 -1
  189. package/dist/{esm/sdk/exportKeypairOperation-SJPysnE1.js → public/sdk/exportKeypairOperation-BwW_E4Lt.js} +1 -1
  190. package/dist/public/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
  191. package/dist/public/sdk/{host-GPb_mSAQ.js → host-DMR4KDy9.js} +1 -1
  192. package/dist/public/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
  193. package/dist/public/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
  194. package/dist/public/sdk/localOnly-DO191vDh.js +1 -0
  195. package/dist/public/sdk/mountExportPrivateKeySurface-DQzFzhNu.js +1 -0
  196. package/dist/public/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +2 -0
  197. package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
  198. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
  199. package/dist/public/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
  200. package/dist/public/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
  201. package/dist/{esm/sdk/passkey-custody-CBSal3E9.js → public/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
  202. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-DOeIn_Qj.js} +1 -1
  203. package/dist/{esm/sdk/presignaturePool-CQNt13kE.js → public/sdk/presignaturePool-BHoxnbOA.js} +1 -1
  204. package/dist/public/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
  205. package/dist/public/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
  206. package/dist/public/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
  207. package/dist/public/sdk/{registration-49OGU_GZ.js → registration-DknFwoqn.js} +1 -1
  208. package/dist/public/sdk/{registration-C7tywPXF.js → registration-sQndIWRF.js} +1 -1
  209. package/dist/public/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
  210. package/dist/public/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
  211. package/dist/{esm/sdk/registrationIntent-PqmcTEE3.js → public/sdk/registrationIntent-D4YDjf2U.js} +1 -1
  212. package/dist/public/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
  213. package/dist/{esm/sdk/routerAbNormalSigning-xxATTIh5.js → public/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
  214. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  215. package/dist/public/sdk/runtime-auth-BxG-J-BB.js +1 -0
  216. package/dist/public/sdk/runtime-device-link-Dn_5hPCq.js +1 -0
  217. package/dist/public/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js +1 -0
  218. package/dist/public/sdk/runtime-email-otp-CPqTCH8Q.js +1 -0
  219. package/dist/public/sdk/runtime-export-Brz53_oi.js +1 -0
  220. package/dist/public/sdk/runtime-near-Da_xFUXx.js +1 -0
  221. package/dist/public/sdk/runtime-preferences-riUZGaTs.js +1 -0
  222. package/dist/public/sdk/runtime-recovery-CTj4nDAM.js +1 -0
  223. package/dist/public/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-D8T9LQ7-.js} +1 -1
  224. package/dist/public/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
  225. package/dist/public/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
  226. package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
  227. package/dist/public/sdk/shared-hx7KVyeq.js +6 -0
  228. package/dist/public/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
  229. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
  230. package/dist/public/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
  231. package/dist/{esm/sdk/signNear-Dno7NsP_.js → public/sdk/signNear-B000QxBd.js} +1 -1
  232. package/dist/{esm/sdk/signingFlow-DtugI_2z.js → public/sdk/signingFlow-gl85GOW4.js} +1 -1
  233. package/dist/public/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
  234. package/dist/public/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
  235. package/dist/{esm/sdk/thresholdEcdsa-murTq-xz.js → public/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
  236. package/dist/{esm/sdk/transactionState-XbZm9Zon.js → public/sdk/transactionState-lB2qpkOm.js} +1 -1
  237. package/dist/public/sdk/tx-confirm-ui.js +1799 -432
  238. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  239. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  240. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  241. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  242. package/dist/public/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
  243. package/dist/public/sdk/wallet-ui.css +1 -1
  244. package/dist/{esm/sdk/walletAuthMethodRecord-Bv68Vq-g.js → public/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
  245. package/dist/{esm/sdk/walletAuthority-v5wvv3IB.js → public/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
  246. package/dist/{esm/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
  247. package/dist/public/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
  248. package/dist/{esm/sdk/walletOwnershipGeneration-pMmmJ6XA.js → public/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
  249. package/dist/public/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
  250. package/dist/public/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
  251. package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
  252. package/dist/{esm/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
  253. package/dist/{esm/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → public/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
  254. package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
  255. package/dist/{esm/sdk/webauthnP256-XgYu-Y6E.js → public/sdk/webauthnP256-_ajaNl90.js} +1 -1
  256. package/dist/public/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
  257. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  258. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  259. package/dist/public/wallet-assets.manifest.json +192 -192
  260. package/dist/public/wallet-service/index.html +4 -4
  261. package/dist/types/wallet/src/SeamsWeb/walletIframe/coordinator.d.ts +2 -1
  262. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +20 -3
  263. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +3 -0
  264. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +0 -1
  265. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +5 -6
  266. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +2 -0
  267. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +35 -0
  268. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.d.ts +17 -0
  269. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +3 -1
  270. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.d.ts +0 -1
  271. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.d.ts +3 -1
  272. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +3 -1
  273. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.d.ts +0 -1
  274. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.d.ts +0 -1
  275. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.d.ts +0 -1
  276. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +1 -1
  277. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.d.ts +3 -1
  278. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.d.ts +0 -1
  279. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +3 -1
  280. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.d.ts +0 -1
  281. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.d.ts +0 -1
  282. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.d.ts +3 -1
  283. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +3 -1
  284. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionTree.d.ts +0 -1
  285. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/WalletLocale.d.ts +18 -0
  286. package/dist/types/wallet/src/core/types/seams.d.ts +3 -0
  287. package/dist/types/wallet/src/core/ui/locale.d.ts +5 -0
  288. package/dist/types/wallet/src/core/ui/messages.d.ts +8 -0
  289. package/dist/types/wallet/src/index.d.ts +3 -1
  290. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +1 -0
  291. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletRegionSection.d.ts +3 -0
  292. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +4 -1
  293. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.d.ts +2 -1
  294. package/dist/types/wallet/src/react/context/WalletLocale.d.ts +16 -0
  295. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  296. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  297. package/package.json +1 -1
  298. package/dist/esm/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
  299. package/dist/esm/sdk/adapters-CTlDBRJy.js +0 -2
  300. package/dist/esm/sdk/configBuilder-BMawmNpz.js +0 -1
  301. package/dist/esm/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
  302. package/dist/esm/sdk/localOnly-CPmpw381.js +0 -1
  303. package/dist/esm/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
  304. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
  305. package/dist/esm/sdk/runtime-auth-CpjGW90U.js +0 -1
  306. package/dist/esm/sdk/runtime-device-link-CKgfGi7D.js +0 -1
  307. package/dist/esm/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
  308. package/dist/esm/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
  309. package/dist/esm/sdk/runtime-export-B92wQD25.js +0 -1
  310. package/dist/esm/sdk/runtime-near-CUuKg38M.js +0 -1
  311. package/dist/esm/sdk/runtime-preferences-EdL3G_MO.js +0 -1
  312. package/dist/esm/sdk/runtime-recovery-uyw8sywI.js +0 -1
  313. package/dist/esm/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
  314. package/dist/esm/sdk/shared-ha31XIdc.js +0 -6
  315. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
  316. package/dist/esm/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
  317. package/dist/public/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
  318. package/dist/public/sdk/adapters-CTlDBRJy.js +0 -2
  319. package/dist/public/sdk/configBuilder-BMawmNpz.js +0 -1
  320. package/dist/public/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
  321. package/dist/public/sdk/localOnly-CPmpw381.js +0 -1
  322. package/dist/public/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
  323. package/dist/public/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
  324. package/dist/public/sdk/runtime-auth-CpjGW90U.js +0 -1
  325. package/dist/public/sdk/runtime-device-link-CKgfGi7D.js +0 -1
  326. package/dist/public/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
  327. package/dist/public/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
  328. package/dist/public/sdk/runtime-export-B92wQD25.js +0 -1
  329. package/dist/public/sdk/runtime-near-CUuKg38M.js +0 -1
  330. package/dist/public/sdk/runtime-preferences-EdL3G_MO.js +0 -1
  331. package/dist/public/sdk/runtime-recovery-uyw8sywI.js +0 -1
  332. package/dist/public/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
  333. package/dist/public/sdk/shared-ha31XIdc.js +0 -6
  334. package/dist/public/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
  335. package/dist/public/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
  336. /package/dist/esm/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
  337. /package/dist/esm/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
  338. /package/dist/esm/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
  339. /package/dist/public/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
  340. /package/dist/public/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
  341. /package/dist/public/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
@@ -1,5 +1,7 @@
1
1
  import { base64UrlEncode } from "../../../shared-ts/src/utils/base64.js";
2
2
  import { parseWalletMoveId } from "../../../SeamsWeb/publicApi/placement.js";
3
+ import { walletText } from "../../../core/ui/messages.js";
4
+ import { WalletLocaleContext, WalletText } from "../../context/WalletLocale.js";
3
5
  import { Component } from "react";
4
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
7
  //#region src/react/components/AccountMenuButton/WalletRegionSection.tsx
@@ -30,7 +32,7 @@ function matchesRegion(value, region) {
30
32
  function renderRegion(region) {
31
33
  return /* @__PURE__ */ jsx("option", {
32
34
  value: region.value,
33
- children: region.label
35
+ children: /* @__PURE__ */ jsx(WalletText, { copy: region.label })
34
36
  }, region.value);
35
37
  }
36
38
  function progressText(status) {
@@ -73,6 +75,7 @@ function assertNever(value) {
73
75
  throw new Error(`Unexpected wallet region state: ${String(value)}`);
74
76
  }
75
77
  var WalletRegionSection = class extends Component {
78
+ static contextType = WalletLocaleContext;
76
79
  state = { view: { kind: "loading" } };
77
80
  mounted = false;
78
81
  requestRevision = 0;
@@ -234,40 +237,44 @@ var WalletRegionSection = class extends Component {
234
237
  render() {
235
238
  const state = this.state.view;
236
239
  return /* @__PURE__ */ jsxs("section", {
237
- "aria-label": "Wallet region",
240
+ "aria-label": walletText(this.context, "Wallet region"),
238
241
  children: [/* @__PURE__ */ jsx("p", {
239
242
  role: "status",
240
- children: statusText(state)
243
+ children: /* @__PURE__ */ jsx(WalletText, { copy: statusText(state) })
241
244
  }), this.renderContent(state)]
242
245
  });
243
246
  }
244
247
  renderContent(state) {
245
248
  switch (state.kind) {
246
249
  case "loading":
247
- case "submitting": return /* @__PURE__ */ jsx("p", { children: "You can lock this wallet. An accepted move continues on the server." });
250
+ case "submitting": return /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { message: "You can lock this wallet. An accepted move continues on the server." }) });
248
251
  case "unavailable": return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("p", {
249
252
  role: "alert",
250
- children: state.message
253
+ children: /* @__PURE__ */ jsx(WalletText, { copy: state.message })
251
254
  }), /* @__PURE__ */ jsx("button", {
252
255
  type: "button",
253
256
  className: "seams-settings-action",
254
257
  onClick: this.load,
255
- children: "Check again"
258
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Check again" })
256
259
  })] });
257
260
  case "uncertain": return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("p", {
258
261
  role: "alert",
259
- children: state.message
262
+ children: /* @__PURE__ */ jsx(WalletText, { copy: state.message })
260
263
  }), /* @__PURE__ */ jsx("button", {
261
264
  type: "button",
262
265
  className: "seams-settings-action",
263
266
  onClick: this.retry,
264
- children: "Retry same move"
267
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Retry same move" })
265
268
  })] });
266
- case "progress": return /* @__PURE__ */ jsx("p", { children: state.status.state === "completed" || state.status.move.progress.availability === "active" ? "Your wallet is active in the new region. Another move must wait until cleanup completes." : "Signing and wallet changes are paused. Closing or locking this wallet does not cancel the move." });
269
+ case "progress": return /* @__PURE__ */ jsx("p", { children: state.status.state === "completed" || state.status.move.progress.availability === "active" ? /* @__PURE__ */ jsx(WalletText, { message: "Your wallet is active in the new region. Another move must wait until cleanup completes." }) : /* @__PURE__ */ jsx(WalletText, { message: "Signing and wallet changes are paused. Closing or locking this wallet does not cancel the move." }) });
267
270
  case "ready": return /* @__PURE__ */ jsxs(Fragment, { children: [
268
- /* @__PURE__ */ jsxs("p", { children: ["Current region: ", /* @__PURE__ */ jsx("strong", { children: regionName(state.placement.region) })] }),
271
+ /* @__PURE__ */ jsxs("p", { children: [
272
+ /* @__PURE__ */ jsx(WalletText, { message: "Current region:" }),
273
+ " ",
274
+ /* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: regionName(state.placement.region) }) })
275
+ ] }),
269
276
  /* @__PURE__ */ jsxs("label", { children: [
270
- "Destination region",
277
+ /* @__PURE__ */ jsx(WalletText, { message: "Destination region" }),
271
278
  " ",
272
279
  /* @__PURE__ */ jsx("select", {
273
280
  value: state.selected,
@@ -275,11 +282,11 @@ var WalletRegionSection = class extends Component {
275
282
  children: REGIONS.map(renderRegion)
276
283
  })
277
284
  ] }),
278
- /* @__PURE__ */ jsx("p", { children: "Moving your wallet ends signing sessions on all devices. After the move, unlock your wallet again to sign." }),
285
+ /* @__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." }) }),
279
286
  state.placement.nextMoveAtMs > Date.now() ? /* @__PURE__ */ jsxs("p", { children: [
280
- "Another move is available after",
287
+ /* @__PURE__ */ jsx(WalletText, { message: "Another move is available after" }),
281
288
  " ",
282
- new Date(state.placement.nextMoveAtMs).toLocaleString(),
289
+ new Date(state.placement.nextMoveAtMs).toLocaleString(this.context),
283
290
  "."
284
291
  ] }) : null,
285
292
  /* @__PURE__ */ jsx("button", {
@@ -287,7 +294,7 @@ var WalletRegionSection = class extends Component {
287
294
  className: "seams-settings-action",
288
295
  disabled: state.selected === state.placement.region || state.placement.nextMoveAtMs > Date.now(),
289
296
  onClick: this.submit,
290
- children: "Move wallet"
297
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Move wallet" })
291
298
  })
292
299
  ] });
293
300
  default: return assertNever(state);
@@ -1,5 +1,7 @@
1
+ import { walletDisplayText, walletText } from "../../../core/ui/messages.js";
1
2
  import { blinkMenuItem } from "../../../utils/menuItemBlink.js";
2
3
  import { SEAMS_STANDARD_WORDMARK_PATH } from "../../../core/signingEngine/uiConfirm/ui/seamsWordmarkPaths.js";
4
+ import { WalletLocaleContext, WalletText, useWalletLocale } from "../../context/WalletLocale.js";
3
5
  import { useSeams } from "../../context/index.js";
4
6
  import { useTheme } from "../theme/ThemeProvider.js";
5
7
  import { ScanIcon } from "./icons/ScanIcon.js";
@@ -69,6 +71,7 @@ const SETTINGS_ITEMS = [
69
71
  }
70
72
  ];
71
73
  function WalletSettingsHeader() {
74
+ const locale = useWalletLocale();
72
75
  const { theme } = useTheme();
73
76
  const { seams } = useSeams();
74
77
  const nextTheme = theme === "dark" ? "light" : "dark";
@@ -86,11 +89,11 @@ function WalletSettingsHeader() {
86
89
  fillRule: "evenodd"
87
90
  })
88
91
  }),
89
- /* @__PURE__ */ jsx("span", { children: "Wallet" }),
92
+ /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { message: "Wallet" }) }),
90
93
  /* @__PURE__ */ jsxs("button", {
91
94
  className: "seams-settings-theme-toggle",
92
95
  type: "button",
93
- "aria-label": `Switch to ${nextTheme} mode`,
96
+ "aria-label": walletDisplayText(locale, `Switch to ${nextTheme} mode`),
94
97
  onClick: seams.config.setTheme.bind(null, nextTheme),
95
98
  children: [theme === "dark" ? /* @__PURE__ */ jsx(SunIcon, {
96
99
  size: 20,
@@ -98,12 +101,13 @@ function WalletSettingsHeader() {
98
101
  }) : /* @__PURE__ */ jsx(MoonIcon, {
99
102
  size: 20,
100
103
  animate: false
101
- }), /* @__PURE__ */ jsx("span", { children: theme === "dark" ? "Light mode" : "Dark mode" })]
104
+ }), /* @__PURE__ */ jsx("span", { children: theme === "dark" ? /* @__PURE__ */ jsx(WalletText, { message: "Light mode" }) : /* @__PURE__ */ jsx(WalletText, { message: "Dark mode" }) })]
102
105
  })
103
106
  ]
104
107
  });
105
108
  }
106
109
  var WalletSettingsLayout = class extends Component {
110
+ static contextType = WalletLocaleContext;
107
111
  state = {
108
112
  regionReady: true,
109
113
  selected: "authentication-methods",
@@ -161,7 +165,7 @@ var WalletSettingsLayout = class extends Component {
161
165
  className: "seams-settings-nav-icon",
162
166
  "aria-hidden": "true",
163
167
  children: item.icon
164
- }), /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx("strong", { children: item.label }), /* @__PURE__ */ jsx("small", { children: item.description })] })]
168
+ }), /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: item.label }) }), /* @__PURE__ */ jsx("small", { children: /* @__PURE__ */ jsx(WalletText, { copy: item.description }) })] })]
165
169
  }, item.id);
166
170
  render() {
167
171
  const selectedId = this.state.regionReady ? this.state.selected : "wallet-region";
@@ -177,7 +181,7 @@ var WalletSettingsLayout = class extends Component {
177
181
  children: [
178
182
  /* @__PURE__ */ jsxs("div", {
179
183
  className: "seams-settings-identity",
180
- children: [/* @__PURE__ */ jsx(TouchIcon, {}), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("strong", { children: this.props.walletId }), /* @__PURE__ */ jsx("small", { children: "Unlocked on this device" })] })]
184
+ children: [/* @__PURE__ */ jsx(TouchIcon, {}), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("strong", { children: this.props.walletId }), /* @__PURE__ */ jsx("small", { children: /* @__PURE__ */ jsx(WalletText, { message: "Unlocked on this device" }) })] })]
181
185
  }),
182
186
  /* @__PURE__ */ jsx("button", {
183
187
  className: "seams-settings-mobile-toggle",
@@ -185,20 +189,20 @@ var WalletSettingsLayout = class extends Component {
185
189
  onClick: this.toggleMobileMenu,
186
190
  "aria-expanded": this.state.mobileMenuOpen,
187
191
  "aria-controls": "seams-settings-navigation",
188
- children: "All settings"
192
+ children: /* @__PURE__ */ jsx(WalletText, { message: "All settings" })
189
193
  }),
190
194
  /* @__PURE__ */ jsxs("nav", {
191
195
  id: "seams-settings-navigation",
192
196
  className: "seams-settings-navigation",
193
197
  "data-expanded": this.state.mobileMenuOpen,
194
- "aria-label": "Wallet settings",
198
+ "aria-label": walletText(this.context, "Wallet settings"),
195
199
  children: [SETTINGS_ITEMS.map(this.renderItem), /* @__PURE__ */ jsx("div", {
196
200
  className: "seams-settings-lock",
197
201
  children: /* @__PURE__ */ jsxs("button", {
198
202
  type: "button",
199
203
  onClick: this.lock,
200
204
  disabled: this.state.lock.kind === "locking",
201
- children: [/* @__PURE__ */ jsx(LockIcon, {}), /* @__PURE__ */ jsx("strong", { children: this.state.lock.kind === "locking" ? "Locking…" : "Lock wallet" })]
205
+ children: [/* @__PURE__ */ jsx(LockIcon, {}), /* @__PURE__ */ jsx("strong", { children: this.state.lock.kind === "locking" ? /* @__PURE__ */ jsx(WalletText, { message: "Locking…" }) : /* @__PURE__ */ jsx(WalletText, { message: "Lock wallet" }) })]
202
206
  })
203
207
  })]
204
208
  })
@@ -208,24 +212,24 @@ var WalletSettingsLayout = class extends Component {
208
212
  children: [
209
213
  /* @__PURE__ */ jsx("p", {
210
214
  className: "seams-settings-breadcrumb",
211
- children: "Wallet settings"
215
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Wallet settings" })
212
216
  }),
213
217
  /* @__PURE__ */ jsx("h1", {
214
218
  ref: this.heading,
215
219
  tabIndex: -1,
216
- children: selected.label
220
+ children: /* @__PURE__ */ jsx(WalletText, { copy: selected.label })
217
221
  }),
218
222
  /* @__PURE__ */ jsx("p", {
219
223
  className: "seams-settings-description",
220
- children: selected.description
224
+ children: /* @__PURE__ */ jsx(WalletText, { copy: selected.description })
221
225
  }),
222
226
  this.props.error ? /* @__PURE__ */ jsx("p", {
223
227
  role: "alert",
224
- children: this.props.error
228
+ children: /* @__PURE__ */ jsx(WalletText, { copy: this.props.error })
225
229
  }) : null,
226
230
  this.state.lock.kind === "failed" ? /* @__PURE__ */ jsx("p", {
227
231
  role: "alert",
228
- children: this.state.lock.message
232
+ children: /* @__PURE__ */ jsx(WalletText, { copy: this.state.lock.message })
229
233
  }) : null,
230
234
  /* @__PURE__ */ jsx("div", {
231
235
  className: "seams-settings-content",
@@ -234,16 +238,16 @@ var WalletSettingsLayout = class extends Component {
234
238
  walletId: this.props.walletId,
235
239
  placement: this.props.placement,
236
240
  onAvailability: this.regionAvailability
237
- }, this.props.walletId) : /* @__PURE__ */ jsx("p", { children: "This setting is unavailable for the current wallet or device." })
241
+ }, this.props.walletId) : /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { message: "This setting is unavailable for the current wallet or device." }) })
238
242
  }),
239
243
  selected.id !== "wallet-region" ? /* @__PURE__ */ jsx("div", {
240
244
  className: "seams-settings-content",
241
245
  children: available && !available.disabled ? this.props.sections[selected.id] : /* @__PURE__ */ jsx("p", {
242
246
  role: "status",
243
- children: "This setting is unavailable for the current wallet or device."
247
+ children: /* @__PURE__ */ jsx(WalletText, { message: "This setting is unavailable for the current wallet or device." })
244
248
  })
245
249
  }, selected.id) : null,
246
- /* @__PURE__ */ jsx("footer", { children: "Your wallet. Your control." })
250
+ /* @__PURE__ */ jsx("footer", { children: /* @__PURE__ */ jsx(WalletText, { message: "Your wallet. Your control." }) })
247
251
  ]
248
252
  })]
249
253
  })]
@@ -16,6 +16,14 @@
16
16
  .seams-profile-button-morphable.open {
17
17
  width: 420px;
18
18
  overflow: hidden;
19
+ /* The panel replaces the Settings button; a short fade keeps that from
20
+ reading as a cut. */
21
+ animation: seams-account-panel-in 100ms ease-out both;
22
+ }
23
+ @keyframes seams-account-panel-in {
24
+ from {
25
+ opacity: 0;
26
+ }
19
27
  }
20
28
  .seams-account-resize {
21
29
  overflow: hidden;
@@ -354,6 +362,9 @@
354
362
  overflow: hidden;
355
363
  }
356
364
  .seams-account-screen .qr-scanner-video {
365
+ /* The base video is a fixed 400px; the menu's box is narrower, which cut the
366
+ camera off on the right and moved it from under the scan frame. */
367
+ width: 100%;
357
368
  height: 208px;
358
369
  object-fit: cover;
359
370
  }
@@ -410,6 +421,10 @@
410
421
  .seams-account-method-list-item {
411
422
  list-style: none;
412
423
  }
424
+ /* Separators go between rows only; the footer rule closes the screen. */
425
+ .seams-account-method-list-item:last-child > .seams-account-method-button {
426
+ border-bottom: 0;
427
+ }
413
428
  .seams-account-screen ul {
414
429
  padding-left: 0;
415
430
  }
@@ -2,6 +2,8 @@ import { parseVerifiedEmailAddress } from "../../../shared-ts/src/utils/domainId
2
2
  import { requirePrimaryChainByFamily, resolvePrimaryExplorerUrl } from "../../../core/config/chains.js";
3
3
  import { thresholdEcdsaChainTargetFromConfig, toWalletId } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
4
4
  import { WALLET_AUTH_METHODS } from "../../../shared-ts/src/utils/signerDomain.js";
5
+ import { walletText } from "../../../core/ui/messages.js";
6
+ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
5
7
  import { accountMenuCapabilitiesForLoginState } from "../../context/reactLoginStateBuilders.js";
6
8
  import { useSeams } from "../../context/index.js";
7
9
  import { Theme, useTheme } from "../theme/ThemeProvider.js";
@@ -115,6 +117,7 @@ async function resolveNearAccountIdForExport(input) {
115
117
  * ```
116
118
  */
117
119
  const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp, nearExplorerBaseUrl = "https://nearblocks.io", username: usernameProp, hideUsername = false, onLock, onExportKeyError, onExportKeyEvent, deviceLinkingScannerParams, toggleColors, style, className, isMenuOpen, onMenuOpenChange, highlightedMenuItem }) => {
120
+ const locale = useWalletLocale();
118
121
  const { accountInputState, loginState, seams, lock } = useSeams();
119
122
  const recovery = useMemo(() => seams.recovery, [seams]);
120
123
  const accountName = usernameProp || nearAccountIdProp?.split(".")?.[0] || loginState.nearAccountId?.split(".")?.[0] || "User";
@@ -416,7 +419,7 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
416
419
  const screens = {
417
420
  overview: null,
418
421
  "transaction-settings": /* @__PURE__ */ jsx(AccountMenuScreen, {
419
- title: "Transaction settings",
422
+ title: walletText(locale, "Transaction settings"),
420
423
  onBack: backToMenu,
421
424
  children: currentConfirmConfig ? /* @__PURE__ */ jsx(TransactionSettingsSection, {
422
425
  currentConfirmConfig,
@@ -427,15 +430,15 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
427
430
  theme
428
431
  }) : /* @__PURE__ */ jsx("p", {
429
432
  role: "status",
430
- children: "Loading transaction settings…"
433
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Loading transaction settings…" })
431
434
  })
432
435
  }),
433
436
  accounts: /* @__PURE__ */ jsxs(AccountMenuScreen, {
434
- title: "Accounts",
437
+ title: walletText(locale, "Accounts"),
435
438
  onBack: backToMenu,
436
439
  children: [/* @__PURE__ */ jsx("p", {
437
440
  className: "seams-account-description",
438
- children: "Your addresses across networks."
441
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Your addresses across networks." })
439
442
  }), /* @__PURE__ */ jsx(AccountsSection, { rows: accountsRows })]
440
443
  }),
441
444
  "export-keys": /* @__PURE__ */ jsx(ExportKeysScreen, {
@@ -446,23 +449,23 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
446
449
  onSelectChain: startExportKeyFlow
447
450
  }),
448
451
  "recovery-codes": /* @__PURE__ */ jsxs(AccountMenuScreen, {
449
- title: "Recovery codes",
452
+ title: walletText(locale, "Recovery codes"),
450
453
  onBack: backToMenu,
451
454
  children: [
452
455
  /* @__PURE__ */ jsx("p", {
453
456
  className: "seams-account-description",
454
- children: "Keep a recovery code somewhere safe. Use it to restore access to your wallet."
457
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Keep a recovery code somewhere safe. Use it to restore access to your wallet." })
455
458
  }),
456
459
  /* @__PURE__ */ jsx("div", {
457
460
  className: "seams-account-inset",
458
- children: "Only you should have this code. Anyone with it can start recovering your wallet."
461
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Only you should have this code. Anyone with it can start recovering your wallet." })
459
462
  }),
460
463
  /* @__PURE__ */ jsx("button", {
461
464
  type: "button",
462
465
  className: "seams-account-action primary",
463
466
  disabled: recoveryCodesOpen,
464
467
  onClick: startRecoveryCodesFlow,
465
- children: recoveryCodesOpen ? "Opening recovery codes…" : "View recovery codes"
468
+ children: recoveryCodesOpen ? /* @__PURE__ */ jsx(WalletText, { message: "Opening recovery codes…" }) : /* @__PURE__ */ jsx(WalletText, { message: "View recovery codes" })
466
469
  })
467
470
  ]
468
471
  }),
@@ -511,7 +514,7 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
511
514
  className: "seams-settings-action",
512
515
  disabled: recoveryCodesOpen,
513
516
  onClick: startRecoveryCodesFlow,
514
- children: recoveryCodesOpen ? "Opening recovery codes…" : "View recovery codes"
517
+ children: recoveryCodesOpen ? /* @__PURE__ */ jsx(WalletText, { message: "Opening recovery codes…" }) : /* @__PURE__ */ jsx(WalletText, { message: "View recovery codes" })
515
518
  }),
516
519
  "authentication-methods": /* @__PURE__ */ jsx(AuthenticationMethodsModal, {
517
520
  walletId,
@@ -523,7 +526,7 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
523
526
  type: "button",
524
527
  className: "seams-settings-action",
525
528
  onClick: setShowQRScanner.bind(null, true),
526
- children: "Scan QR code"
529
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Scan QR code" })
527
530
  }),
528
531
  "linked-devices": /* @__PURE__ */ jsx(LinkedDevicesModal, {
529
532
  walletId,
@@ -540,7 +543,7 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
540
543
  theme
541
544
  }) : /* @__PURE__ */ jsx("p", {
542
545
  role: "status",
543
- children: "Loading transaction settings…"
546
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Loading transaction settings…" })
544
547
  })
545
548
  }
546
549
  }), /* @__PURE__ */ jsx(QRCodeScanner, {
@@ -577,7 +580,7 @@ const AccountMenuButtonInner = ({ presentation, nearAccountId: nearAccountIdProp
577
580
  children: screen === "overview" ? null : /* @__PURE__ */ jsxs(Fragment, { children: [screens[screen], settingsError ? /* @__PURE__ */ jsx("p", {
578
581
  className: "seams-account-error",
579
582
  role: "alert",
580
- children: settingsError
583
+ children: /* @__PURE__ */ jsx(WalletText, { copy: settingsError })
581
584
  }) : null] })
582
585
  });
583
586
  };
@@ -606,11 +609,11 @@ function WalletSettingsPage(props) {
606
609
  children: [/* @__PURE__ */ jsx(WalletSettingsHeader, {}), /* @__PURE__ */ jsxs("main", {
607
610
  className: "seams-settings-sign-in",
608
611
  children: [
609
- /* @__PURE__ */ jsx("h1", { children: "Wallet settings" }),
610
- /* @__PURE__ */ jsx("p", { children: "Unlock your wallet to manage your accounts, security, and devices." }),
612
+ /* @__PURE__ */ jsx("h1", { children: /* @__PURE__ */ jsx(WalletText, { message: "Wallet settings" }) }),
613
+ /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { message: "Unlock your wallet to manage your accounts, security, and devices." }) }),
611
614
  error ? /* @__PURE__ */ jsx("p", {
612
615
  role: "alert",
613
- children: error
616
+ children: /* @__PURE__ */ jsx(WalletText, { copy: error })
614
617
  }) : null,
615
618
  /* @__PURE__ */ jsx(HostedSeamsAuthMenu, {
616
619
  externalAuthBroker: props.externalAuthBroker,
@@ -1,3 +1,4 @@
1
+ import { WalletLocaleContext, WalletText } from "../../context/WalletLocale.js";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  //#region src/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.tsx
3
4
  const shellStyle = {
@@ -20,32 +21,35 @@ const rowStyle = {
20
21
  opacity: .08
21
22
  };
22
23
  /** Inert artwork for loading and previews; contains no auth controls or wallet logic. */
23
- function SeamsAuthMenuMock({ initialMode = "login" }) {
24
- return /* @__PURE__ */ jsxs("span", {
25
- "data-seams-auth-menu-mock": "true",
26
- "aria-hidden": "true",
27
- style: shellStyle,
28
- children: [
29
- /* @__PURE__ */ jsx("strong", {
30
- style: { fontSize: 24 },
31
- children: initialMode === "register" ? "Create a wallet" : "Unlock wallet"
32
- }),
33
- /* @__PURE__ */ jsx("span", { style: {
34
- ...rowStyle,
35
- height: 12,
36
- width: "65%"
37
- } }),
38
- /* @__PURE__ */ jsx("span", { style: rowStyle }),
39
- /* @__PURE__ */ jsx("span", { style: rowStyle }),
40
- /* @__PURE__ */ jsx("span", { style: {
41
- ...rowStyle,
42
- height: 12,
43
- width: "30%",
44
- justifySelf: "center"
45
- } }),
46
- /* @__PURE__ */ jsx("span", { style: rowStyle }),
47
- /* @__PURE__ */ jsx("span", { style: rowStyle })
48
- ]
24
+ function SeamsAuthMenuMock({ initialMode = "login", locale = "en" }) {
25
+ return /* @__PURE__ */ jsx(WalletLocaleContext.Provider, {
26
+ value: locale,
27
+ children: /* @__PURE__ */ jsxs("span", {
28
+ "data-seams-auth-menu-mock": "true",
29
+ "aria-hidden": "true",
30
+ style: shellStyle,
31
+ children: [
32
+ /* @__PURE__ */ jsx("strong", {
33
+ style: { fontSize: 24 },
34
+ children: initialMode === "register" ? /* @__PURE__ */ jsx(WalletText, { message: "Create a wallet" }) : /* @__PURE__ */ jsx(WalletText, { message: "Unlock wallet" })
35
+ }),
36
+ /* @__PURE__ */ jsx("span", { style: {
37
+ ...rowStyle,
38
+ height: 12,
39
+ width: "65%"
40
+ } }),
41
+ /* @__PURE__ */ jsx("span", { style: rowStyle }),
42
+ /* @__PURE__ */ jsx("span", { style: rowStyle }),
43
+ /* @__PURE__ */ jsx("span", { style: {
44
+ ...rowStyle,
45
+ height: 12,
46
+ width: "30%",
47
+ justifySelf: "center"
48
+ } }),
49
+ /* @__PURE__ */ jsx("span", { style: rowStyle }),
50
+ /* @__PURE__ */ jsx("span", { style: rowStyle })
51
+ ]
52
+ })
49
53
  });
50
54
  }
51
55
  //#endregion