@seams/wallet 0.17.0 → 0.18.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 (311) hide show
  1. package/README.md +4 -5
  2. package/dist/.build-inputs.sha256 +1 -1
  3. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +5 -4
  4. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +89 -241
  5. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +4 -2
  6. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +116 -0
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.js +60 -0
  8. package/dist/esm/SeamsWeb/walletIframe/shared/facadeBoundary.js +2 -0
  9. package/dist/esm/core/config/configBuilder.js +2 -0
  10. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +7 -4
  11. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +10 -6
  12. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +9 -6
  13. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +9 -6
  14. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +7 -4
  15. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +4 -1
  16. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +4 -1
  17. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +5 -4
  18. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +10 -7
  19. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +9 -5
  20. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +28 -22
  21. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +2 -1
  22. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +51 -26
  23. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +42 -27
  24. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +25 -18
  25. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +8 -5
  26. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/WalletLocale.js +24 -0
  27. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +6 -4
  28. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +4 -2
  29. package/dist/esm/core/ui/locale.js +10 -0
  30. package/dist/esm/core/ui/messages.js +694 -0
  31. package/dist/esm/index.js +2 -1
  32. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +7 -3
  33. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +6 -3
  34. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +4 -3
  35. package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +5 -2
  36. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +31 -27
  37. package/dist/esm/react/components/AccountMenuButton/AccountMenuScreen.js +6 -3
  38. package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +6 -3
  39. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -4
  40. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +33 -27
  41. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +5 -2
  42. package/dist/esm/react/components/AccountMenuButton/ExportKeysScreen.js +5 -3
  43. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +4 -3
  44. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +50 -41
  45. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  46. package/dist/esm/react/components/AccountMenuButton/MenuItem.js +3 -2
  47. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +8 -4
  48. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeAcknowledgement.js +3 -2
  49. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeActions.js +4 -3
  50. package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +2 -1
  51. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +11 -10
  52. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +8 -4
  53. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +22 -15
  54. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +20 -16
  55. package/dist/esm/react/components/AccountMenuButton/index.js +18 -15
  56. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +30 -26
  57. package/dist/esm/react/components/QRCodeScanner.js +28 -23
  58. package/dist/esm/react/components/ShowQRCode.js +39 -31
  59. package/dist/esm/react/components/theme/ThemeProvider.js +3 -0
  60. package/dist/esm/react/context/WalletLocale.js +15 -0
  61. package/dist/esm/react/context/index.js +8 -3
  62. package/dist/esm/sdk/ConfirmationDrawer-mu3iThxX.js +1 -0
  63. package/dist/{public/sdk/NonceCoordinator-DuDKN-B8.js → esm/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
  64. package/dist/{public/sdk/accountLifecycle-D61FIpFS.js → esm/sdk/accountLifecycle-fLNUdjct.js} +1 -1
  65. package/dist/{public/sdk/activeWalletSession-Ba6X4CUN.js → esm/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
  66. package/dist/esm/sdk/adapters-u7LVXthY.js +2 -0
  67. package/dist/esm/sdk/appearance-token-vars-CzBVbO39.js +2 -0
  68. package/dist/esm/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
  69. package/dist/esm/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
  70. package/dist/{public/sdk/clientSessionPersistenceState-BHRUSWMt.js → esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
  71. package/dist/esm/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
  72. package/dist/esm/sdk/configBuilder-BMNShuOu.js +1 -0
  73. package/dist/esm/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
  74. package/dist/esm/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
  75. package/dist/esm/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
  76. package/dist/{public/sdk/ecdsaCapabilityManifest-DzA996y9.js → esm/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
  77. package/dist/{public/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
  78. package/dist/{public/sdk/ecdsaDerivationExport-DyugdheE.js → esm/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
  79. package/dist/esm/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
  80. package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
  81. package/dist/esm/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-ivf9LlBo.js} +1 -1
  82. package/dist/{public/sdk/exportKeypairOperation-SJPysnE1.js → esm/sdk/exportKeypairOperation-Gw7L5Htj.js} +1 -1
  83. package/dist/esm/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
  84. package/dist/esm/sdk/{host-GPb_mSAQ.js → host-B-2QXolt.js} +1 -1
  85. package/dist/esm/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
  86. package/dist/esm/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
  87. package/dist/esm/sdk/localOnly-BKpUHtHa.js +1 -0
  88. package/dist/esm/sdk/mountExportPrivateKeySurface-C8pUK6PQ.js +1 -0
  89. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-DUudF89t.js +2 -0
  90. package/dist/{public/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
  91. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
  92. package/dist/esm/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
  93. package/dist/esm/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
  94. package/dist/{public/sdk/passkey-custody-CBSal3E9.js → esm/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
  95. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-7tBjuSe7.js} +1 -1
  96. package/dist/{public/sdk/presignaturePool-CQNt13kE.js → esm/sdk/presignaturePool-BHoxnbOA.js} +1 -1
  97. package/dist/esm/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
  98. package/dist/esm/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
  99. package/dist/esm/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
  100. package/dist/esm/sdk/{registration-49OGU_GZ.js → registration-CWpOVwhj.js} +1 -1
  101. package/dist/esm/sdk/{registration-C7tywPXF.js → registration-D2OEgY7O.js} +1 -1
  102. package/dist/esm/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
  103. package/dist/esm/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
  104. package/dist/{public/sdk/registrationIntent-PqmcTEE3.js → esm/sdk/registrationIntent-D4YDjf2U.js} +1 -1
  105. package/dist/esm/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
  106. package/dist/{public/sdk/routerAbNormalSigning-xxATTIh5.js → esm/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
  107. package/dist/esm/sdk/runtime-auth-jtyQAuxZ.js +1 -0
  108. package/dist/esm/sdk/runtime-device-link-vhRhB-wS.js +1 -0
  109. package/dist/esm/sdk/runtime-ecdsa-tempo-BXWgFVBa.js +1 -0
  110. package/dist/esm/sdk/runtime-email-otp-BlAaSKtk.js +1 -0
  111. package/dist/esm/sdk/runtime-export-B4FuHhcH.js +1 -0
  112. package/dist/esm/sdk/runtime-near-BnWOpEpA.js +1 -0
  113. package/dist/esm/sdk/runtime-preferences-COm-LTiu.js +1 -0
  114. package/dist/esm/sdk/runtime-recovery-BJTo5Idi.js +1 -0
  115. package/dist/esm/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-CEOjdUHV.js} +1 -1
  116. package/dist/esm/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
  117. package/dist/esm/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
  118. package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
  119. package/dist/esm/sdk/shared-BKPGtAps.js +6 -0
  120. package/dist/esm/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
  121. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
  122. package/dist/esm/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
  123. package/dist/{public/sdk/signNear-Dno7NsP_.js → esm/sdk/signNear-B000QxBd.js} +1 -1
  124. package/dist/{public/sdk/signingFlow-DtugI_2z.js → esm/sdk/signingFlow-gl85GOW4.js} +1 -1
  125. package/dist/esm/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
  126. package/dist/esm/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
  127. package/dist/{public/sdk/thresholdEcdsa-murTq-xz.js → esm/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
  128. package/dist/{public/sdk/transactionState-XbZm9Zon.js → esm/sdk/transactionState-lB2qpkOm.js} +1 -1
  129. package/dist/esm/sdk/tx-confirm-ui.js +1795 -432
  130. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  131. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  132. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  133. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  134. package/dist/esm/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
  135. package/dist/{public/sdk/walletAuthMethodRecord-Bv68Vq-g.js → esm/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
  136. package/dist/{public/sdk/walletAuthority-v5wvv3IB.js → esm/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
  137. package/dist/{public/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
  138. package/dist/esm/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
  139. package/dist/{public/sdk/walletOwnershipGeneration-pMmmJ6XA.js → esm/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
  140. package/dist/esm/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
  141. package/dist/esm/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
  142. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
  143. package/dist/{public/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
  144. package/dist/{public/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
  145. package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
  146. package/dist/{public/sdk/webauthnP256-XgYu-Y6E.js → esm/sdk/webauthnP256-_ajaNl90.js} +1 -1
  147. package/dist/esm/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
  148. package/dist/public/headers.manifest.json +1 -1
  149. package/dist/public/sdk/ConfirmationDrawer-mu3iThxX.js +1 -0
  150. package/dist/{esm/sdk/NonceCoordinator-DuDKN-B8.js → public/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
  151. package/dist/{esm/sdk/accountLifecycle-D61FIpFS.js → public/sdk/accountLifecycle-fLNUdjct.js} +1 -1
  152. package/dist/{esm/sdk/activeWalletSession-Ba6X4CUN.js → public/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
  153. package/dist/public/sdk/adapters-u7LVXthY.js +2 -0
  154. package/dist/public/sdk/appearance-token-vars-CzBVbO39.js +2 -0
  155. package/dist/public/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
  156. package/dist/public/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
  157. package/dist/{esm/sdk/clientSessionPersistenceState-BHRUSWMt.js → public/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
  158. package/dist/public/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
  159. package/dist/public/sdk/configBuilder-BMNShuOu.js +1 -0
  160. package/dist/public/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
  161. package/dist/public/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
  162. package/dist/public/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
  163. package/dist/{esm/sdk/ecdsaCapabilityManifest-DzA996y9.js → public/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
  164. package/dist/{esm/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
  165. package/dist/{esm/sdk/ecdsaDerivationExport-DyugdheE.js → public/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
  166. package/dist/public/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
  167. package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
  168. package/dist/public/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-ivf9LlBo.js} +1 -1
  169. package/dist/{esm/sdk/exportKeypairOperation-SJPysnE1.js → public/sdk/exportKeypairOperation-Gw7L5Htj.js} +1 -1
  170. package/dist/public/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
  171. package/dist/public/sdk/{host-GPb_mSAQ.js → host-B-2QXolt.js} +1 -1
  172. package/dist/public/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
  173. package/dist/public/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
  174. package/dist/public/sdk/localOnly-BKpUHtHa.js +1 -0
  175. package/dist/public/sdk/mountExportPrivateKeySurface-C8pUK6PQ.js +1 -0
  176. package/dist/public/sdk/mountRecoveryCodeBackupSurface-DUudF89t.js +2 -0
  177. package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
  178. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
  179. package/dist/public/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
  180. package/dist/public/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
  181. package/dist/{esm/sdk/passkey-custody-CBSal3E9.js → public/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
  182. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-7tBjuSe7.js} +1 -1
  183. package/dist/{esm/sdk/presignaturePool-CQNt13kE.js → public/sdk/presignaturePool-BHoxnbOA.js} +1 -1
  184. package/dist/public/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
  185. package/dist/public/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
  186. package/dist/public/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
  187. package/dist/public/sdk/{registration-49OGU_GZ.js → registration-CWpOVwhj.js} +1 -1
  188. package/dist/public/sdk/{registration-C7tywPXF.js → registration-D2OEgY7O.js} +1 -1
  189. package/dist/public/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
  190. package/dist/public/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
  191. package/dist/{esm/sdk/registrationIntent-PqmcTEE3.js → public/sdk/registrationIntent-D4YDjf2U.js} +1 -1
  192. package/dist/public/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
  193. package/dist/{esm/sdk/routerAbNormalSigning-xxATTIh5.js → public/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
  194. package/dist/public/sdk/runtime-auth-jtyQAuxZ.js +1 -0
  195. package/dist/public/sdk/runtime-device-link-vhRhB-wS.js +1 -0
  196. package/dist/public/sdk/runtime-ecdsa-tempo-BXWgFVBa.js +1 -0
  197. package/dist/public/sdk/runtime-email-otp-BlAaSKtk.js +1 -0
  198. package/dist/public/sdk/runtime-export-B4FuHhcH.js +1 -0
  199. package/dist/public/sdk/runtime-near-BnWOpEpA.js +1 -0
  200. package/dist/public/sdk/runtime-preferences-COm-LTiu.js +1 -0
  201. package/dist/public/sdk/runtime-recovery-BJTo5Idi.js +1 -0
  202. package/dist/public/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-CEOjdUHV.js} +1 -1
  203. package/dist/public/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
  204. package/dist/public/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
  205. package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
  206. package/dist/public/sdk/shared-BKPGtAps.js +6 -0
  207. package/dist/public/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
  208. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
  209. package/dist/public/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
  210. package/dist/{esm/sdk/signNear-Dno7NsP_.js → public/sdk/signNear-B000QxBd.js} +1 -1
  211. package/dist/{esm/sdk/signingFlow-DtugI_2z.js → public/sdk/signingFlow-gl85GOW4.js} +1 -1
  212. package/dist/public/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
  213. package/dist/public/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
  214. package/dist/{esm/sdk/thresholdEcdsa-murTq-xz.js → public/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
  215. package/dist/{esm/sdk/transactionState-XbZm9Zon.js → public/sdk/transactionState-lB2qpkOm.js} +1 -1
  216. package/dist/public/sdk/tx-confirm-ui.js +1795 -432
  217. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  218. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  219. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  220. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  221. package/dist/public/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
  222. package/dist/{esm/sdk/walletAuthMethodRecord-Bv68Vq-g.js → public/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
  223. package/dist/{esm/sdk/walletAuthority-v5wvv3IB.js → public/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
  224. package/dist/{esm/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
  225. package/dist/public/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
  226. package/dist/{esm/sdk/walletOwnershipGeneration-pMmmJ6XA.js → public/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
  227. package/dist/public/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
  228. package/dist/public/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
  229. package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
  230. package/dist/{esm/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
  231. package/dist/{esm/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → public/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
  232. package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
  233. package/dist/{esm/sdk/webauthnP256-XgYu-Y6E.js → public/sdk/webauthnP256-_ajaNl90.js} +1 -1
  234. package/dist/public/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
  235. package/dist/public/wallet-assets.manifest.json +192 -192
  236. package/dist/public/wallet-service/index.html +4 -4
  237. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +0 -1
  238. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +4 -6
  239. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +35 -0
  240. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.d.ts +17 -0
  241. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +3 -1
  242. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.d.ts +0 -1
  243. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.d.ts +3 -1
  244. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +3 -1
  245. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.d.ts +0 -1
  246. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.d.ts +0 -1
  247. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.d.ts +0 -1
  248. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +1 -1
  249. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.d.ts +3 -1
  250. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.d.ts +0 -1
  251. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +3 -1
  252. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.d.ts +0 -1
  253. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.d.ts +0 -1
  254. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.d.ts +3 -1
  255. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +3 -1
  256. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionTree.d.ts +0 -1
  257. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/WalletLocale.d.ts +18 -0
  258. package/dist/types/wallet/src/core/types/seams.d.ts +3 -0
  259. package/dist/types/wallet/src/core/ui/locale.d.ts +5 -0
  260. package/dist/types/wallet/src/core/ui/messages.d.ts +8 -0
  261. package/dist/types/wallet/src/index.d.ts +3 -1
  262. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +1 -0
  263. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletRegionSection.d.ts +3 -0
  264. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +4 -1
  265. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.d.ts +2 -1
  266. package/dist/types/wallet/src/react/context/WalletLocale.d.ts +16 -0
  267. package/package.json +1 -1
  268. package/dist/esm/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
  269. package/dist/esm/sdk/adapters-CTlDBRJy.js +0 -2
  270. package/dist/esm/sdk/configBuilder-BMawmNpz.js +0 -1
  271. package/dist/esm/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
  272. package/dist/esm/sdk/localOnly-CPmpw381.js +0 -1
  273. package/dist/esm/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
  274. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
  275. package/dist/esm/sdk/runtime-auth-CpjGW90U.js +0 -1
  276. package/dist/esm/sdk/runtime-device-link-CKgfGi7D.js +0 -1
  277. package/dist/esm/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
  278. package/dist/esm/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
  279. package/dist/esm/sdk/runtime-export-B92wQD25.js +0 -1
  280. package/dist/esm/sdk/runtime-near-CUuKg38M.js +0 -1
  281. package/dist/esm/sdk/runtime-preferences-EdL3G_MO.js +0 -1
  282. package/dist/esm/sdk/runtime-recovery-uyw8sywI.js +0 -1
  283. package/dist/esm/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
  284. package/dist/esm/sdk/shared-ha31XIdc.js +0 -6
  285. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
  286. package/dist/esm/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
  287. package/dist/public/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
  288. package/dist/public/sdk/adapters-CTlDBRJy.js +0 -2
  289. package/dist/public/sdk/configBuilder-BMawmNpz.js +0 -1
  290. package/dist/public/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
  291. package/dist/public/sdk/localOnly-CPmpw381.js +0 -1
  292. package/dist/public/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
  293. package/dist/public/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
  294. package/dist/public/sdk/runtime-auth-CpjGW90U.js +0 -1
  295. package/dist/public/sdk/runtime-device-link-CKgfGi7D.js +0 -1
  296. package/dist/public/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
  297. package/dist/public/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
  298. package/dist/public/sdk/runtime-export-B92wQD25.js +0 -1
  299. package/dist/public/sdk/runtime-near-CUuKg38M.js +0 -1
  300. package/dist/public/sdk/runtime-preferences-EdL3G_MO.js +0 -1
  301. package/dist/public/sdk/runtime-recovery-uyw8sywI.js +0 -1
  302. package/dist/public/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
  303. package/dist/public/sdk/shared-ha31XIdc.js +0 -6
  304. package/dist/public/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
  305. package/dist/public/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
  306. /package/dist/esm/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
  307. /package/dist/esm/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
  308. /package/dist/esm/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
  309. /package/dist/public/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
  310. /package/dist/public/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
  311. /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
  })]
@@ -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
@@ -1,5 +1,7 @@
1
1
  import { classifyLinkDeviceFlowEvent } from "../../core/types/sdkSentEvents.js";
2
2
  import { DeviceLinkingErrorCode } from "../../core/types/linkDevice.js";
3
+ import { walletText } from "../../core/ui/messages.js";
4
+ import { WalletText, useWalletLocale } from "../context/WalletLocale.js";
3
5
  import { useSeams } from "../context/index.js";
4
6
  import { Theme, useTheme } from "./theme/ThemeProvider.js";
5
7
  import { useDeviceLinking } from "../hooks/useDeviceLinking.js";
@@ -29,12 +31,13 @@ function restorableFocusElement() {
29
31
  return activeElement;
30
32
  }
31
33
  function ScannerFrame({ presentation, onClose, theme, tokens, children }) {
34
+ const locale = useWalletLocale();
32
35
  if (presentation === "embedded") return /* @__PURE__ */ jsxs(AccountMenuScreen, {
33
- title: "Link a device",
36
+ title: walletText(locale, "Link a device"),
34
37
  onBack: onClose,
35
38
  children: [/* @__PURE__ */ jsx("p", {
36
39
  className: "seams-account-description",
37
- children: "Open your wallet on the other device, then scan its pairing code."
40
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Open your wallet on the other device, then scan its pairing code." })
38
41
  }), children]
39
42
  });
40
43
  return /* @__PURE__ */ jsx(Theme, {
@@ -44,6 +47,7 @@ function ScannerFrame({ presentation, onClose, theme, tokens, children }) {
44
47
  });
45
48
  }
46
49
  const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = true, cameraId, className, style, showCamera = true, presentation = "modal" }) => {
50
+ const locale = useWalletLocale();
47
51
  const { theme, tokens } = useTheme();
48
52
  const { cancelLinking } = useSeams();
49
53
  const scopedTokens = React.useMemo(() => theme === "dark" ? { dark: tokens } : { light: tokens }, [theme, tokens]);
@@ -339,24 +343,24 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
339
343
  children: [
340
344
  /* @__PURE__ */ jsx("h2", {
341
345
  id: "qr-scanner-error-title",
342
- children: "Unable to scan a QR code"
346
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Unable to scan a QR code" })
343
347
  }),
344
348
  /* @__PURE__ */ jsx("p", {
345
349
  role: "alert",
346
- children: qrCamera.error
350
+ children: /* @__PURE__ */ jsx(WalletText, { copy: qrCamera.error })
347
351
  }),
348
352
  /* @__PURE__ */ jsx("button", {
349
353
  type: "button",
350
354
  onClick: qrCamera.startScanning,
351
355
  className: "qr-scanner-error-button",
352
- children: "Try Again"
356
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Try Again" })
353
357
  }),
354
358
  /* @__PURE__ */ jsx("button", {
355
359
  ref: closeButtonRef,
356
360
  type: "button",
357
361
  onClick: handleClose,
358
362
  className: "qr-scanner-error-button",
359
- children: "Close"
363
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Close" })
360
364
  })
361
365
  ]
362
366
  })
@@ -389,14 +393,14 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
389
393
  children: [
390
394
  /* @__PURE__ */ jsx("h2", {
391
395
  id: "qr-scanner-email-selection-title",
392
- children: "Choose an Email OTP method"
396
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Choose an Email OTP method" })
393
397
  }),
394
- /* @__PURE__ */ jsx("p", { children: "Select the masked address to authorize this linked device." }),
398
+ /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { message: "Select the masked address to authorize this linked device." }) }),
395
399
  emailOtpSelection.kind === "required" ? /* @__PURE__ */ jsxs("fieldset", {
396
400
  className: "qr-scanner-email-choice-list",
397
401
  children: [/* @__PURE__ */ jsx("legend", {
398
402
  className: "qr-scanner-email-choice-legend",
399
- children: "Available methods"
403
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Available methods" })
400
404
  }), emailOtpSelection.choices.map((choice) => {
401
405
  const choiceId = `qr-email-method-${String(choice.baseWalletAuthMethodId)}`;
402
406
  return /* @__PURE__ */ jsxs("label", {
@@ -415,7 +419,8 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
415
419
  }) : /* @__PURE__ */ jsxs("p", {
416
420
  role: "status",
417
421
  children: [
418
- "Authorizing ",
422
+ /* @__PURE__ */ jsx(WalletText, { message: "Authorizing" }),
423
+ " ",
419
424
  emailOtpSelection.choice.maskedEmailHint,
420
425
  "…"
421
426
  ]
@@ -425,13 +430,13 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
425
430
  className: "qr-scanner-email-continue",
426
431
  disabled: emailOtpSelection.selectedBaseWalletAuthMethodId === null,
427
432
  onClick: selectEmailOtpBaseFactor,
428
- children: "Continue"
433
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Continue" })
429
434
  })
430
435
  ]
431
436
  }), /* @__PURE__ */ jsx("button", {
432
437
  ref: closeButtonRef,
433
438
  type: "button",
434
- "aria-label": "Close scanner",
439
+ "aria-label": walletText(locale, "Close scanner"),
435
440
  onClick: handleClose,
436
441
  className: "qr-scanner-close",
437
442
  children: /* @__PURE__ */ jsx("span", {
@@ -467,7 +472,7 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
467
472
  children: [/* @__PURE__ */ jsx("h2", {
468
473
  id: "qr-scanner-title",
469
474
  className: "qr-scanner-visually-hidden",
470
- children: "Scan and link a device"
475
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Scan and link a device" })
471
476
  }), scannerState.kind === "expired" ? /* @__PURE__ */ jsxs("div", {
472
477
  className: "qr-scanner-progress",
473
478
  "aria-labelledby": "qr-scanner-progress-title",
@@ -476,12 +481,12 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
476
481
  id: "qr-scanner-progress-title",
477
482
  ref: progressTitleRef,
478
483
  tabIndex: -1,
479
- children: "Linking expired"
484
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Linking expired" })
480
485
  }),
481
486
  /* @__PURE__ */ jsx("p", {
482
487
  className: "qr-scanner-progress-message",
483
488
  role: "alert",
484
- children: "This linking request expired. Scan the QR code again to retry."
489
+ children: /* @__PURE__ */ jsx(WalletText, { message: "This linking request expired. Scan the QR code again to retry." })
485
490
  }),
486
491
  /* @__PURE__ */ jsxs("div", {
487
492
  className: "qr-scanner-progress-actions",
@@ -489,12 +494,12 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
489
494
  type: "button",
490
495
  className: "qr-scanner-progress-cancel",
491
496
  onClick: handleDismissExpiredLink,
492
- children: "Close"
497
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Close" })
493
498
  }), /* @__PURE__ */ jsx("button", {
494
499
  type: "button",
495
500
  className: "qr-scanner-progress-primary",
496
501
  onClick: handleRetryExpiredLink,
497
- children: "Try again"
502
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Try again" })
498
503
  })]
499
504
  })
500
505
  ]
@@ -506,7 +511,7 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
506
511
  id: "qr-scanner-progress-title",
507
512
  ref: progressTitleRef,
508
513
  tabIndex: -1,
509
- children: "Linking device"
514
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Linking device" })
510
515
  }),
511
516
  /* @__PURE__ */ jsxs("div", {
512
517
  className: "qr-scanner-progress-dots",
@@ -521,7 +526,7 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
521
526
  className: "qr-scanner-progress-message",
522
527
  role: "status",
523
528
  "aria-live": "polite",
524
- children: "Continue linking on your other device."
529
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Continue linking on your other device." })
525
530
  }),
526
531
  /* @__PURE__ */ jsx("div", {
527
532
  className: "qr-scanner-progress-actions",
@@ -529,7 +534,7 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
529
534
  type: "button",
530
535
  className: "qr-scanner-progress-cancel",
531
536
  onClick: handleCancelLinking,
532
- children: "Cancel linking"
537
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Cancel linking" })
533
538
  })
534
539
  })
535
540
  ]
@@ -551,9 +556,9 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
551
556
  })] }),
552
557
  /* @__PURE__ */ jsxs("div", {
553
558
  className: "qr-scanner-instructions",
554
- children: [/* @__PURE__ */ jsx("p", { children: "Position the QR code within the frame" }), qrCamera.isScanning && /* @__PURE__ */ jsx("p", {
559
+ children: [/* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { message: "Position the QR code within the frame" }) }), qrCamera.isScanning && /* @__PURE__ */ jsx("p", {
555
560
  className: "qr-scanner-sub-instruction qr-scanner-sub-instruction--small",
556
- children: "Scanning..."
561
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Scanning..." })
557
562
  })]
558
563
  }),
559
564
  qrCamera.cameras.length > 1 && /* @__PURE__ */ jsx("div", {
@@ -574,7 +579,7 @@ const QRCodeScanner = ({ onQRCodeScanned, onError, onClose, onEvent, isOpen = tr
574
579
  }), scannerState.kind === "scanning" && /* @__PURE__ */ jsx("button", {
575
580
  ref: closeButtonRef,
576
581
  type: "button",
577
- "aria-label": "Close scanner",
582
+ "aria-label": walletText(locale, "Close scanner"),
578
583
  onClick: (event) => {
579
584
  event.stopPropagation();
580
585
  stopPropagationNative(event);