@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
package/dist/esm/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { parseWalletMoveId } from "./SeamsWeb/publicApi/placement.js";
2
+ import { normalizeWalletLocale } from "./core/ui/locale.js";
2
3
  import { PASSKEY_MANAGER_DEFAULT_CONFIGS, buildConfigsFromEnv } from "./core/config/defaultConfigs.js";
3
4
  import { configuredThresholdEcdsaChainTargets, nearAccountRefFromAccountId, thresholdEcdsaChainTargetFromChainFamily, thresholdEcdsaChainTargetFromConfig, thresholdEcdsaChainTargetFromConfiguredRequest, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetKey, thresholdEcdsaChainTargetsEqual, toWalletId, walletIdFromWalletProfile, walletSessionRefFromSession } from "./core/signingEngine/interfaces/ecdsaChainTarget.js";
4
5
  import { BrowserCapabilityUnavailableError } from "./SeamsWeb/publicApi/capabilitySelection.js";
@@ -14,4 +15,4 @@ import { ActionType } from "./shared-ts/src/near/actions.js";
14
15
  import { AmountError, parseEther, parseNear, parseUnits, yoctoNear } from "./core/types/amounts.js";
15
16
  import { addKey, createAccount, deleteAccount, deleteKey, deployContract, functionCall, stake, transfer } from "./core/types/actionBuilders.js";
16
17
  import { logWalletEvents } from "./core/types/eventLogging.js";
17
- export { AccountSyncEventPhase, ActionType, AmountError, BrowserCapabilityUnavailableError, DEFAULT_WAIT_STATUS, DEVICE_LINKING_CONFIG, ExternalEvmController, KeyExportEventPhase, LinkDeviceEventPhase, PASSKEY_MANAGER_DEFAULT_CONFIGS, RegistrationEventPhase, SIGNER_WORKER_MANAGER_CONFIG, SeamsWeb, SigningEventPhase, UnlockEventPhase, WALLET_FLOW_EVENT_MESSAGES, WALLET_FLOW_EVENT_STEPS, WALLET_FLOW_EVENT_VERSION, addKey, buildConfigsFromEnv, buildHostedAuthMenuOpenRequest, configuredThresholdEcdsaChainTargets, createAccount, createAccountSyncFlowEvent, createKeyExportFlowEvent, createLinkDeviceFlowEvent, createRegistrationFlowEvent, createSigningFlowEvent, createUnlockFlowEvent, createWalletFlowEvent, defineSeamsConfig, deleteAccount, deleteKey, deployContract, functionCall, hostedAuthMenuExternalAuthRequestIdFromBoundary, hostedAuthMenuSessionIdFromBoundary, isWalletFlowEvent, logWalletEvents, nearAccountRefFromAccountId, parseEther, parseNear, parseUnits, parseWalletMoveId, seamsTestnetConfig, stake, thresholdEcdsaChainTargetFromChainFamily, thresholdEcdsaChainTargetFromConfig, thresholdEcdsaChainTargetFromConfiguredRequest, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetKey, thresholdEcdsaChainTargetsEqual, toAccountId, toWalletId, transfer, walletIdFromWalletProfile, walletSessionRefFromSession, yoctoNear };
18
+ export { AccountSyncEventPhase, ActionType, AmountError, BrowserCapabilityUnavailableError, DEFAULT_WAIT_STATUS, DEVICE_LINKING_CONFIG, ExternalEvmController, KeyExportEventPhase, LinkDeviceEventPhase, PASSKEY_MANAGER_DEFAULT_CONFIGS, RegistrationEventPhase, SIGNER_WORKER_MANAGER_CONFIG, SeamsWeb, SigningEventPhase, UnlockEventPhase, WALLET_FLOW_EVENT_MESSAGES, WALLET_FLOW_EVENT_STEPS, WALLET_FLOW_EVENT_VERSION, addKey, buildConfigsFromEnv, buildHostedAuthMenuOpenRequest, configuredThresholdEcdsaChainTargets, createAccount, createAccountSyncFlowEvent, createKeyExportFlowEvent, createLinkDeviceFlowEvent, createRegistrationFlowEvent, createSigningFlowEvent, createUnlockFlowEvent, createWalletFlowEvent, defineSeamsConfig, deleteAccount, deleteKey, deployContract, functionCall, hostedAuthMenuExternalAuthRequestIdFromBoundary, hostedAuthMenuSessionIdFromBoundary, isWalletFlowEvent, logWalletEvents, nearAccountRefFromAccountId, normalizeWalletLocale, parseEther, parseNear, parseUnits, parseWalletMoveId, seamsTestnetConfig, stake, thresholdEcdsaChainTargetFromChainFamily, thresholdEcdsaChainTargetFromConfig, thresholdEcdsaChainTargetFromConfiguredRequest, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetKey, thresholdEcdsaChainTargetsEqual, toAccountId, toWalletId, transfer, walletIdFromWalletProfile, walletSessionRefFromSession, yoctoNear };
@@ -1,3 +1,4 @@
1
+ import { WalletLocaleContext } from "../../context/WalletLocale.js";
1
2
  import { Theme } from "../theme/ThemeProvider.js";
2
3
  import { ScanIcon } from "./icons/ScanIcon.js";
3
4
  import { KeyIcon } from "./icons/KeyIcon.js";
@@ -178,9 +179,12 @@ function AccountMenuPreview({ username = "Alex Chen", walletId = "alex.near", th
178
179
  * This component never opens a camera, signs, exports keys or accesses storage.
179
180
  */
180
181
  function AccountMenuButtonMock(props) {
181
- return /* @__PURE__ */ jsx(Theme, {
182
- theme: props.theme ?? "light",
183
- children: /* @__PURE__ */ jsx(AccountMenuPreview, { ...props })
182
+ return /* @__PURE__ */ jsx(WalletLocaleContext.Provider, {
183
+ value: props.locale ?? "en",
184
+ children: /* @__PURE__ */ jsx(Theme, {
185
+ theme: props.theme ?? "light",
186
+ children: /* @__PURE__ */ jsx(AccountMenuPreview, { ...props })
187
+ })
184
188
  });
185
189
  }
186
190
  //#endregion
@@ -1,4 +1,6 @@
1
+ import { walletText } from "../../../core/ui/messages.js";
1
2
  import { SEAMS_STANDARD_WORDMARK_PATH } from "../../../core/signingEngine/uiConfirm/ui/seamsWordmarkPaths.js";
3
+ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
2
4
  import TouchIcon from "./icons/TouchIcon.js";
3
5
  import { UserAccountButton } from "./UserAccountButton.js";
4
6
  import { ProfileDropdown } from "./ProfileDropdown.js";
@@ -37,6 +39,7 @@ function restoreOverviewFocus(buttonRef, previousScreen, hasScreen) {
37
39
  }
38
40
  /** One shell for live account screens and the provider-free preview. */
39
41
  function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, className, style, children }) {
42
+ const locale = useWalletLocale();
40
43
  const contentRef = useRef(null);
41
44
  const hasScreen = children !== null && children !== void 0;
42
45
  const previousScreen = useRef(hasScreen);
@@ -68,7 +71,7 @@ function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, clas
68
71
  /* @__PURE__ */ jsx("span", { children: typeof window === "undefined" ? "" : window.location.host }),
69
72
  /* @__PURE__ */ jsx("button", {
70
73
  type: "button",
71
- "aria-label": "Close wallet settings",
74
+ "aria-label": walletText(locale, "Close wallet settings"),
72
75
  onClick: dropdown.onClose,
73
76
  children: /* @__PURE__ */ jsx("svg", {
74
77
  width: "18",
@@ -89,7 +92,7 @@ function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, clas
89
92
  className: "seams-account-identity",
90
93
  tabIndex: -1,
91
94
  role: "group",
92
- "aria-label": "Wallet account",
95
+ "aria-label": walletText(locale, "Wallet account"),
93
96
  children: [/* @__PURE__ */ jsx("span", {
94
97
  className: "seams-account-avatar",
95
98
  children: /* @__PURE__ */ jsx(TouchIcon, {
@@ -112,7 +115,7 @@ function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, clas
112
115
  strokeWidth: "1.5",
113
116
  children: [/* @__PURE__ */ jsx("path", { d: "m12 3 8 3v6c0 5-8 9-8 9s-8-4-8-9V6z" }), /* @__PURE__ */ jsx("path", { d: "m8 12 3 3 5-6" })]
114
117
  }),
115
- /* @__PURE__ */ jsx("span", { children: "Secured by" }),
118
+ /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { message: "Secured by" }) }),
116
119
  /* @__PURE__ */ jsx("svg", {
117
120
  className: "seams-account-wordmark",
118
121
  viewBox: "0 0 1428 285",
@@ -1,3 +1,4 @@
1
+ import { WalletText } from "../../context/WalletLocale.js";
1
2
  import TouchIcon from "./icons/TouchIcon.js";
2
3
  import "react";
3
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -16,8 +17,8 @@ function AccountMenuDeviceDetails({ title, description, details, children, icon
16
17
  strokeWidth: 1.5
17
18
  })
18
19
  }),
19
- /* @__PURE__ */ jsx("h3", { children: title }),
20
- /* @__PURE__ */ jsx("p", { children: description })
20
+ /* @__PURE__ */ jsx("h3", { children: /* @__PURE__ */ jsx(WalletText, { copy: title }) }),
21
+ /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { copy: description }) })
21
22
  ]
22
23
  }),
23
24
  /* @__PURE__ */ jsx("dl", {
@@ -30,7 +31,7 @@ function AccountMenuDeviceDetails({ title, description, details, children, icon
30
31
  function renderDetail(detail) {
31
32
  return /* @__PURE__ */ jsxs("div", {
32
33
  className: "seams-account-detail-row",
33
- children: [/* @__PURE__ */ jsx("dt", { children: detail.label }), /* @__PURE__ */ jsx("dd", { children: detail.value })]
34
+ children: [/* @__PURE__ */ jsx("dt", { children: /* @__PURE__ */ jsx(WalletText, { copy: detail.label }) }), /* @__PURE__ */ jsx("dd", { children: /* @__PURE__ */ jsx(WalletText, { copy: detail.value }) })]
34
35
  }, detail.label);
35
36
  }
36
37
  //#endregion
@@ -1,13 +1,16 @@
1
+ import { walletDisplayText } from "../../../core/ui/messages.js";
2
+ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
1
3
  import { Theme, useTheme } from "../theme/ThemeProvider.js";
2
4
  import { AccountMenuScreen } from "./AccountMenuScreen.js";
3
5
  import React from "react";
4
6
  import { jsx, jsxs } from "react/jsx-runtime";
5
7
  //#region src/react/components/AccountMenuButton/AccountMenuDialog.tsx
6
8
  const AccountMenuDialogFrame = ({ presentation, onClose, dialogRef, contentClassName, titleId, title, children }) => {
9
+ const locale = useWalletLocale();
7
10
  const { theme, tokens } = useTheme();
8
11
  const scopedTokens = React.useMemo(() => theme === "dark" ? { dark: tokens } : { light: tokens }, [theme, tokens]);
9
12
  if (presentation === "embedded") return /* @__PURE__ */ jsx(AccountMenuScreen, {
10
- title,
13
+ title: walletDisplayText(locale, title),
11
14
  onBack: onClose,
12
15
  className: contentClassName,
13
16
  children
@@ -30,7 +33,7 @@ const AccountMenuDialogFrame = ({ presentation, onClose, dialogRef, contentClass
30
33
  children: [/* @__PURE__ */ jsx("h2", {
31
34
  id: titleId,
32
35
  className: "seams-linked-devices-modal-title",
33
- children: title
36
+ children: /* @__PURE__ */ jsx(WalletText, { copy: title })
34
37
  }), children]
35
38
  })
36
39
  })
@@ -1,3 +1,5 @@
1
+ import { walletDisplayText, walletText } from "../../../core/ui/messages.js";
2
+ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
1
3
  import { AccountMenuScreen } from "./AccountMenuScreen.js";
2
4
  import { QRCodeScannerCamera } from "../QRCodeScannerCamera.js";
3
5
  import { AccountMenuDeviceDetails } from "./AccountMenuDeviceDetails.js";
@@ -55,16 +57,17 @@ function deviceRow(setScreen, parent, device) {
55
57
  }, device.id);
56
58
  }
57
59
  function MethodTiles({ methods }) {
60
+ const locale = useWalletLocale();
58
61
  return /* @__PURE__ */ jsxs("ul", {
59
62
  className: "seams-account-method-tiles",
60
- "aria-label": "Authentication methods",
63
+ "aria-label": walletText(locale, "Authentication methods"),
61
64
  children: [methods !== "email_otp" ? /* @__PURE__ */ jsx(AuthenticationMethodRow, {
62
65
  kind: "passkey",
63
- title: "Passkey",
64
- description: "Touch ID · This device"
66
+ title: walletText(locale, "Passkey"),
67
+ description: walletText(locale, "Touch ID · This device")
65
68
  }) : null, methods !== "passkey" ? /* @__PURE__ */ jsx(AuthenticationMethodRow, {
66
69
  kind: "email_otp",
67
- title: "Email OTP",
70
+ title: walletText(locale, "Email OTP"),
68
71
  description: "alex@example.com"
69
72
  }) : null]
70
73
  });
@@ -94,11 +97,12 @@ function assertNever(value) {
94
97
  throw new Error(`Unknown account preview screen: ${String(value)}`);
95
98
  }
96
99
  function AccountMenuMockScreens({ screen, setScreen, accounts, transactionSettings, walletId }) {
100
+ const locale = useWalletLocale();
97
101
  const back = setScreen.bind(null, { kind: "overview" });
98
102
  switch (screen.kind) {
99
103
  case "overview": return null;
100
104
  case "transactions": return /* @__PURE__ */ jsx(AccountMenuScreen, {
101
- title: "Transaction settings",
105
+ title: walletText(locale, "Transaction settings"),
102
106
  onBack: back,
103
107
  children: transactionSettings
104
108
  });
@@ -110,39 +114,39 @@ function AccountMenuMockScreens({ screen, setScreen, accounts, transactionSettin
110
114
  onSelectChain: selectExportKey.bind(null, setScreen)
111
115
  });
112
116
  case "export-key": return /* @__PURE__ */ jsxs(AccountMenuScreen, {
113
- title: screen.chain === "near" ? "Export NEAR key" : "Export EVM keys",
117
+ title: walletDisplayText(locale, screen.chain === "near" ? "Export NEAR key" : "Export EVM keys"),
114
118
  onBack: setScreen.bind(null, { kind: "export-keys" }),
115
119
  children: [/* @__PURE__ */ jsx("p", {
116
120
  className: "seams-account-description",
117
- children: "Your wallet requires authentication before revealing this signing key."
121
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Your wallet requires authentication before revealing this signing key." })
118
122
  }), /* @__PURE__ */ jsxs("dl", {
119
123
  className: "seams-account-inset",
120
124
  children: [
121
125
  /* @__PURE__ */ jsxs("div", {
122
126
  className: "seams-account-detail-row",
123
- children: [/* @__PURE__ */ jsx("dt", { children: "Wallet" }), /* @__PURE__ */ jsx("dd", { children: walletId })]
127
+ children: [/* @__PURE__ */ jsx("dt", { children: /* @__PURE__ */ jsx(WalletText, { message: "Wallet" }) }), /* @__PURE__ */ jsx("dd", { children: walletId })]
124
128
  }),
125
129
  /* @__PURE__ */ jsxs("div", {
126
130
  className: "seams-account-detail-row",
127
- children: [/* @__PURE__ */ jsx("dt", { children: "Key type" }), /* @__PURE__ */ jsx("dd", { children: screen.chain === "near" ? "Ed25519" : "ECDSA" })]
131
+ children: [/* @__PURE__ */ jsx("dt", { children: /* @__PURE__ */ jsx(WalletText, { message: "Key type" }) }), /* @__PURE__ */ jsx("dd", { children: screen.chain === "near" ? "Ed25519" : "ECDSA" })]
128
132
  }),
129
133
  /* @__PURE__ */ jsxs("div", {
130
134
  className: "seams-account-detail-row",
131
- children: [/* @__PURE__ */ jsx("dt", { children: "Protection" }), /* @__PURE__ */ jsx("dd", { children: "Authentication required" })]
135
+ children: [/* @__PURE__ */ jsx("dt", { children: /* @__PURE__ */ jsx(WalletText, { message: "Protection" }) }), /* @__PURE__ */ jsx("dd", { children: /* @__PURE__ */ jsx(WalletText, { message: "Authentication required" }) })]
132
136
  })
133
137
  ]
134
138
  })]
135
139
  });
136
140
  case "accounts": return /* @__PURE__ */ jsxs(AccountMenuScreen, {
137
- title: "Accounts",
141
+ title: walletText(locale, "Accounts"),
138
142
  onBack: back,
139
143
  children: [/* @__PURE__ */ jsx("p", {
140
144
  className: "seams-account-description",
141
- children: "Your addresses across networks."
145
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Your addresses across networks." })
142
146
  }), /* @__PURE__ */ jsx(AccountsSection, { rows: accounts })]
143
147
  });
144
148
  case "methods": return /* @__PURE__ */ jsx(AccountMenuScreen, {
145
- title: "Authentication methods",
149
+ title: walletText(locale, "Authentication methods"),
146
150
  onBack: back,
147
151
  children: /* @__PURE__ */ jsx(AuthenticationMethodsView, {
148
152
  walletLabel: walletId,
@@ -151,32 +155,32 @@ function AccountMenuMockScreens({ screen, setScreen, accounts, transactionSettin
151
155
  })
152
156
  });
153
157
  case "linked": return /* @__PURE__ */ jsxs(AccountMenuScreen, {
154
- title: "Linked devices",
158
+ title: walletText(locale, "Linked devices"),
155
159
  onBack: back,
156
160
  children: [
157
161
  /* @__PURE__ */ jsx("p", {
158
162
  className: "seams-account-description",
159
- children: "Manage how your devices unlock your wallet."
163
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Manage how your devices unlock your wallet." })
160
164
  }),
161
165
  /* @__PURE__ */ jsx("ul", { children: devices.map(deviceRow.bind(null, setScreen, screen.kind)) }),
162
166
  /* @__PURE__ */ jsx("button", {
163
167
  type: "button",
164
168
  className: "seams-account-action primary",
165
169
  onClick: setScreen.bind(null, { kind: "scanner" }),
166
- children: "Link a device"
170
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Link a device" })
167
171
  })
168
172
  ]
169
173
  });
170
174
  case "device": return /* @__PURE__ */ jsx(AccountMenuScreen, {
171
- title: "Device details",
175
+ title: walletText(locale, "Device details"),
172
176
  onBack: setScreen.bind(null, { kind: screen.parent }),
173
177
  children: /* @__PURE__ */ jsx(AccountMenuDeviceDetails, {
174
178
  icon: screen.device.methods === "email_otp" ? /* @__PURE__ */ jsx(MailIcon, {
175
179
  size: 30,
176
180
  strokeWidth: 1.5
177
181
  }) : void 0,
178
- title: screen.device.name,
179
- description: methodLabel(screen.device.methods),
182
+ title: walletDisplayText(locale, screen.device.name),
183
+ description: walletDisplayText(locale, methodLabel(screen.device.methods)),
180
184
  details: [{
181
185
  label: "Status",
182
186
  value: "Active"
@@ -188,12 +192,12 @@ function AccountMenuMockScreens({ screen, setScreen, accounts, transactionSettin
188
192
  })
189
193
  });
190
194
  case "scanner": return /* @__PURE__ */ jsxs(AccountMenuScreen, {
191
- title: "Link a device",
195
+ title: walletText(locale, "Link a device"),
192
196
  onBack: back,
193
197
  children: [
194
198
  /* @__PURE__ */ jsx("p", {
195
199
  className: "seams-account-description",
196
- children: "Open your wallet on the other device, then scan its pairing code."
200
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Open your wallet on the other device, then scan its pairing code." })
197
201
  }),
198
202
  /* @__PURE__ */ jsx(QRCodeScannerCamera, { children: /* @__PURE__ */ jsx("div", {
199
203
  className: "qr-scanner-video is-ready",
@@ -202,12 +206,12 @@ function AccountMenuMockScreens({ screen, setScreen, accounts, transactionSettin
202
206
  }) }),
203
207
  /* @__PURE__ */ jsx("p", {
204
208
  className: "seams-account-note",
205
- children: "Position the QR code inside the frame."
209
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Position the QR code inside the frame." })
206
210
  })
207
211
  ]
208
212
  });
209
213
  case "recovery": return /* @__PURE__ */ jsxs(AccountMenuScreen, {
210
- title: screen.revealed ? "Your recovery codes" : "Recovery codes",
214
+ title: walletDisplayText(locale, screen.revealed ? "Your recovery codes" : "Recovery codes"),
211
215
  onBack: screen.revealed ? setScreen.bind(null, {
212
216
  kind: "recovery",
213
217
  revealed: false
@@ -215,17 +219,17 @@ function AccountMenuMockScreens({ screen, setScreen, accounts, transactionSettin
215
219
  children: [
216
220
  /* @__PURE__ */ jsx("p", {
217
221
  className: "seams-account-description",
218
- children: screen.revealed ? "Save these codes in your password manager or another secure place." : "Keep your recovery codes somewhere safe. Use a code to restore access to your wallet."
222
+ children: screen.revealed ? /* @__PURE__ */ jsx(WalletText, { message: "Save these codes in your password manager or another secure place." }) : /* @__PURE__ */ jsx(WalletText, { message: "Keep your recovery codes somewhere safe. Use a code to restore access to your wallet." })
219
223
  }),
220
224
  screen.revealed ? /* @__PURE__ */ jsx("ol", {
221
225
  className: "seams-account-recovery-codes",
222
- "aria-label": "Recovery codes",
226
+ "aria-label": walletText(locale, "Recovery codes"),
223
227
  children: recoveryCodes.map(recoveryCodeRow)
224
228
  }) : null,
225
229
  screen.revealed ? /* @__PURE__ */ jsx(RecoveryCodeActions, { codes: recoveryCodes }) : null,
226
230
  !screen.revealed ? /* @__PURE__ */ jsx("div", {
227
231
  className: "seams-account-inset",
228
- children: "Keep these codes private. Anyone with a code can start recovering your wallet."
232
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Keep these codes private. Anyone with a code can start recovering your wallet." })
229
233
  }) : null,
230
234
  screen.revealed ? /* @__PURE__ */ jsx(RecoveryCodeAcknowledgement, { onDone: back }) : /* @__PURE__ */ jsx("button", {
231
235
  type: "button",
@@ -234,7 +238,7 @@ function AccountMenuMockScreens({ screen, setScreen, accounts, transactionSettin
234
238
  kind: "recovery",
235
239
  revealed: true
236
240
  }),
237
- children: "Reveal with passkey"
241
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Reveal with passkey" })
238
242
  })
239
243
  ]
240
244
  });
@@ -1,3 +1,5 @@
1
+ import { walletDisplayText, walletText } from "../../../core/ui/messages.js";
2
+ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
1
3
  import { useLayoutEffect, useRef } from "react";
2
4
  import { jsx, jsxs } from "react/jsx-runtime";
3
5
  //#region src/react/components/AccountMenuButton/AccountMenuScreen.tsx
@@ -6,17 +8,18 @@ function focusHeading(heading) {
6
8
  }
7
9
  /** One navigation level inside the account panel. Focus follows the screen title. */
8
10
  function AccountMenuScreen({ title, onBack, children, className }) {
11
+ const locale = useWalletLocale();
9
12
  const heading = useRef(null);
10
13
  useLayoutEffect(focusHeading.bind(null, heading), [title]);
11
14
  return /* @__PURE__ */ jsxs("section", {
12
15
  className: `seams-account-screen ${className ?? ""}`,
13
- "aria-label": title,
16
+ "aria-label": walletDisplayText(locale, title),
14
17
  children: [/* @__PURE__ */ jsxs("div", {
15
18
  className: "seams-account-heading",
16
19
  children: [/* @__PURE__ */ jsx("button", {
17
20
  type: "button",
18
21
  className: "seams-account-back",
19
- "aria-label": "Back",
22
+ "aria-label": walletText(locale, "Back"),
20
23
  onClick: onBack,
21
24
  children: /* @__PURE__ */ jsx("svg", {
22
25
  width: "18",
@@ -30,7 +33,7 @@ function AccountMenuScreen({ title, onBack, children, className }) {
30
33
  }), /* @__PURE__ */ jsx("h2", {
31
34
  ref: heading,
32
35
  tabIndex: -1,
33
- children: title
36
+ children: /* @__PURE__ */ jsx(WalletText, { copy: title })
34
37
  })]
35
38
  }), children]
36
39
  }, title);
@@ -1,3 +1,5 @@
1
+ import { walletDisplayText } from "../../../core/ui/messages.js";
2
+ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
1
3
  import "react";
2
4
  import { jsx, jsxs } from "react/jsx-runtime";
3
5
  import "./AccountsSection.css";
@@ -10,6 +12,7 @@ function shortenAddress(address) {
10
12
  /** Expandable panel under the Accounts menu item: one row per configured
11
13
  * chain, each linking to the user's account page on that chain's explorer. */
12
14
  const AccountsSection = ({ rows, isOpen = true, presentation = "menu", className, style }) => {
15
+ const locale = useWalletLocale();
13
16
  const handleClick = (e) => {
14
17
  e.stopPropagation();
15
18
  };
@@ -30,11 +33,11 @@ const AccountsSection = ({ rows, isOpen = true, presentation = "menu", className
30
33
  target: "_blank",
31
34
  rel: "noopener noreferrer",
32
35
  tabIndex: isOpen ? 0 : -1,
33
- title: row.address,
36
+ title: walletDisplayText(locale, row.address),
34
37
  children: [
35
38
  /* @__PURE__ */ jsx("span", {
36
39
  className: "seams-accounts-row-chain",
37
- children: row.label
40
+ children: /* @__PURE__ */ jsx(WalletText, { copy: row.label })
38
41
  }),
39
42
  /* @__PURE__ */ jsx("span", {
40
43
  className: "seams-accounts-row-address",
@@ -42,7 +45,7 @@ const AccountsSection = ({ rows, isOpen = true, presentation = "menu", className
42
45
  }),
43
46
  presentation === "page" ? /* @__PURE__ */ jsx("span", {
44
47
  className: "seams-accounts-explorer-label",
45
- children: "View on explorer"
48
+ children: /* @__PURE__ */ jsx(WalletText, { message: "View on explorer" })
46
49
  }) : null,
47
50
  /* @__PURE__ */ jsxs("svg", {
48
51
  className: "seams-accounts-row-arrow",
@@ -1,3 +1,4 @@
1
+ import { WalletText } from "../../context/WalletLocale.js";
1
2
  import TouchIcon from "./icons/TouchIcon.js";
2
3
  import { HoverArrowIcon } from "./icons/HoverArrowIcon.js";
3
4
  import { MailIcon } from "./icons/MailIcon.js";
@@ -23,7 +24,7 @@ function AuthenticationMethodRow({ kind, title, description, icon, action, onSel
23
24
  strokeWidth: 1.5
24
25
  }))
25
26
  }),
26
- /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("strong", { children: title }), /* @__PURE__ */ jsx("small", { children: description })] }),
27
+ /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: title }) }), /* @__PURE__ */ jsx("small", { children: /* @__PURE__ */ jsx(WalletText, { copy: description }) })] }),
27
28
  /* @__PURE__ */ jsx(HoverArrowIcon, {})
28
29
  ]
29
30
  })
@@ -50,15 +51,15 @@ function AuthenticationMethodRow({ kind, title, description, icon, action, onSel
50
51
  className: "seams-linked-devices-modal-item-main",
51
52
  children: [/* @__PURE__ */ jsx("span", {
52
53
  className: "seams-linked-devices-modal-item-name",
53
- children: title
54
+ children: /* @__PURE__ */ jsx(WalletText, { copy: title })
54
55
  }), /* @__PURE__ */ jsx("span", {
55
56
  className: "seams-linked-devices-modal-standing tone-active",
56
- children: "Active"
57
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Active" })
57
58
  })]
58
59
  }),
59
60
  /* @__PURE__ */ jsx("div", {
60
61
  className: "seams-linked-devices-modal-item-detail",
61
- children: description
62
+ children: /* @__PURE__ */ jsx(WalletText, { copy: description })
62
63
  }),
63
64
  children
64
65
  ]
@@ -1,3 +1,5 @@
1
+ import { walletDisplayText, walletText } from "../../../core/ui/messages.js";
2
+ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
1
3
  import { useSeams } from "../../context/index.js";
2
4
  import { AccountMenuDialogFrame } from "./AccountMenuDialog.js";
3
5
  import { AuthenticationMethodRow } from "./AuthenticationMethodRow.js";
@@ -113,6 +115,7 @@ function inventoryStatus(state) {
113
115
  }
114
116
  }
115
117
  const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation }) => {
118
+ const locale = useWalletLocale();
116
119
  const { seams, loginState, refreshSession } = useSeams();
117
120
  const [loadState, setLoadState] = React.useState({ kind: "idle" });
118
121
  const [actionState, setActionState] = React.useState({ kind: "idle" });
@@ -298,7 +301,7 @@ const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation })
298
301
  dialogRef,
299
302
  contentClassName: "seams-auth-methods-modal-content",
300
303
  titleId: "seams-auth-methods-modal-title",
301
- title: "Authentication methods",
304
+ title: walletText(locale, "Authentication methods"),
302
305
  children: /* @__PURE__ */ jsx(AuthenticationMethodsView, {
303
306
  walletLabel: walletId ?? "Wallet",
304
307
  status: inventoryStatus(loadState),
@@ -309,21 +312,25 @@ const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation })
309
312
  loadState.kind === "idle" ? /* @__PURE__ */ jsx("div", {
310
313
  className: "seams-linked-devices-modal-placeholder",
311
314
  role: "status",
312
- children: "Checking authentication methods…"
315
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Checking authentication methods…" })
313
316
  }) : null,
314
317
  loadState.kind === "error" ? /* @__PURE__ */ jsxs("div", {
315
318
  className: "seams-linked-devices-modal-placeholder",
316
319
  role: "alert",
317
- children: [/* @__PURE__ */ jsxs("span", { children: ["Unable to load authentication methods: ", loadState.message] }), /* @__PURE__ */ jsx("button", {
320
+ children: [/* @__PURE__ */ jsxs("span", { children: [
321
+ /* @__PURE__ */ jsx(WalletText, { message: "Unable to load authentication methods:" }),
322
+ " ",
323
+ /* @__PURE__ */ jsx(WalletText, { copy: loadState.message })
324
+ ] }), /* @__PURE__ */ jsx("button", {
318
325
  type: "button",
319
326
  className: "seams-linked-devices-modal-secondary",
320
327
  onClick: () => void loadInventory(),
321
- children: "Try again"
328
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Try again" })
322
329
  })]
323
330
  }) : null,
324
331
  inventory ? /* @__PURE__ */ jsx("section", {
325
332
  className: "seams-account-menu-section",
326
- "aria-label": "Active authentication methods",
333
+ "aria-label": walletText(locale, "Active authentication methods"),
327
334
  children: /* @__PURE__ */ jsx("ul", {
328
335
  className: "seams-account-method-tiles",
329
336
  children: methods.map((method) => {
@@ -331,42 +338,41 @@ const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation })
331
338
  const revoking = actionState.kind === "revoking" && actionState.method.walletAuthMethodId === method.walletAuthMethodId;
332
339
  return /* @__PURE__ */ jsx(AuthenticationMethodRow, {
333
340
  kind: method.kind,
334
- title: methodTitle(method),
335
- description: methodDescription(method),
341
+ title: walletDisplayText(locale, methodTitle(method)),
342
+ description: walletDisplayText(locale, methodDescription(method)),
336
343
  action: !confirming && canManageMethods && methods.length > 1 ? /* @__PURE__ */ jsx("button", {
337
344
  type: "button",
338
345
  className: "seams-linked-devices-modal-secondary seams-linked-devices-modal-remove",
339
346
  disabled: actionInProgress,
340
- "aria-label": `Remove ${methodTitle(method)}`,
347
+ "aria-label": walletDisplayText(locale, `Remove ${methodTitle(method)}`),
341
348
  onClick: () => setActionState({
342
349
  kind: "confirming_revoke",
343
350
  method
344
351
  }),
345
- children: revoking ? "Removing…" : "Remove"
352
+ children: revoking ? /* @__PURE__ */ jsx(WalletText, { message: "Removing…" }) : /* @__PURE__ */ jsx(WalletText, { message: "Remove" })
346
353
  }) : null,
347
354
  children: confirming ? /* @__PURE__ */ jsxs("div", {
348
355
  className: "seams-linked-devices-modal-confirm",
349
- children: [/* @__PURE__ */ jsxs("span", { children: [
350
- "Remove ",
351
- methodTitle(method),
352
- " from this device? You will need the other active method to unlock it."
353
- ] }), /* @__PURE__ */ jsxs("div", {
356
+ children: [/* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, {
357
+ message: "Remove {value0} from this device? You will need the other active method to unlock it.",
358
+ values: { value0: walletDisplayText(locale, methodTitle(method)) }
359
+ }) }), /* @__PURE__ */ jsxs("div", {
354
360
  className: "seams-linked-devices-modal-confirm-actions",
355
361
  children: [/* @__PURE__ */ jsx("button", {
356
362
  type: "button",
357
363
  className: "seams-linked-devices-modal-secondary",
358
364
  onClick: () => setActionState({ kind: "idle" }),
359
- children: "Keep it"
365
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Keep it" })
360
366
  }), /* @__PURE__ */ jsx("button", {
361
367
  type: "button",
362
368
  className: "seams-linked-devices-modal-danger",
363
369
  onClick: () => void revokeMethod(),
364
- children: "Remove method"
370
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Remove method" })
365
371
  })]
366
372
  })]
367
373
  }) : methods.length > 1 ? null : /* @__PURE__ */ jsx("span", {
368
374
  className: "seams-linked-devices-modal-item-detail",
369
- children: "Add another method before removing this one."
375
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Add another method before removing this one." })
370
376
  })
371
377
  }, method.walletAuthMethodId);
372
378
  })
@@ -379,7 +385,7 @@ const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation })
379
385
  /* @__PURE__ */ jsx("h3", {
380
386
  id: "seams-auth-methods-add",
381
387
  className: "seams-account-menu-section-label",
382
- children: "Add a method"
388
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Add a method" })
383
389
  }),
384
390
  !hasPasskey ? /* @__PURE__ */ jsxs("div", {
385
391
  className: "seams-linked-devices-modal-add-method",
@@ -391,10 +397,10 @@ const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation })
391
397
  children: [/* @__PURE__ */ jsx(PlusIcon, {
392
398
  size: 18,
393
399
  strokeWidth: 1.75
394
- }), actionState.kind === "adding" && actionState.method === "passkey" ? "Adding…" : "Add passkey"]
400
+ }), actionState.kind === "adding" && actionState.method === "passkey" ? /* @__PURE__ */ jsx(WalletText, { message: "Adding…" }) : /* @__PURE__ */ jsx(WalletText, { message: "Add passkey" })]
395
401
  }), /* @__PURE__ */ jsx("p", {
396
402
  className: "seams-linked-devices-modal-security-note",
397
- children: "Use a passkey from this device to unlock the wallet."
403
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Use a passkey from this device to unlock the wallet." })
398
404
  })]
399
405
  }) : null,
400
406
  !hasEmailOtp ? /* @__PURE__ */ jsx("div", {
@@ -408,7 +414,7 @@ const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation })
408
414
  children: [
409
415
  /* @__PURE__ */ jsx("label", {
410
416
  htmlFor: emailInputId,
411
- children: "Email address"
417
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Email address" })
412
418
  }),
413
419
  /* @__PURE__ */ jsx("input", {
414
420
  id: emailInputId,
@@ -427,7 +433,7 @@ const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation })
427
433
  type: "submit",
428
434
  className: "seams-linked-devices-modal-secondary",
429
435
  disabled: actionInProgress || !canManageMethods,
430
- children: actionState.kind === "adding" && actionState.method === "email_otp" ? "Adding…" : "Add Email OTP"
436
+ children: actionState.kind === "adding" && actionState.method === "email_otp" ? /* @__PURE__ */ jsx(WalletText, { message: "Adding…" }) : /* @__PURE__ */ jsx(WalletText, { message: "Add Email OTP" })
431
437
  })
432
438
  ]
433
439
  })
@@ -437,30 +443,30 @@ const AuthenticationMethodsModal = ({ walletId, isOpen, onClose, presentation })
437
443
  loadState.kind === "loaded" && inventory?.kind === "local_selection" ? /* @__PURE__ */ jsxs("section", {
438
444
  className: "seams-linked-devices-modal-add-method",
439
445
  children: [
440
- /* @__PURE__ */ jsx("h3", { children: "Unlock to manage methods" }),
446
+ /* @__PURE__ */ jsx("h3", { children: /* @__PURE__ */ jsx(WalletText, { message: "Unlock to manage methods" }) }),
441
447
  /* @__PURE__ */ jsx("p", {
442
448
  className: "seams-linked-devices-modal-security-note",
443
- children: "Confirm your current authentication method to add or remove methods."
449
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Confirm your current authentication method to add or remove methods." })
444
450
  }),
445
451
  /* @__PURE__ */ jsx("button", {
446
452
  type: "button",
447
453
  className: "seams-linked-devices-modal-secondary seams-account-menu-wide-button",
448
454
  disabled: actionInProgress,
449
455
  onClick: () => void unlockOwnerSession(),
450
- children: actionState.kind === "unlocking" ? "Unlocking…" : "Unlock wallet"
456
+ children: actionState.kind === "unlocking" ? /* @__PURE__ */ jsx(WalletText, { message: "Unlocking…" }) : /* @__PURE__ */ jsx(WalletText, { message: "Unlock wallet" })
451
457
  })
452
458
  ]
453
459
  }) : null,
454
460
  actionState.kind === "error" ? /* @__PURE__ */ jsx("div", {
455
461
  className: "seams-linked-devices-modal-error",
456
462
  role: "alert",
457
- children: actionState.message
463
+ children: /* @__PURE__ */ jsx(WalletText, { copy: actionState.message })
458
464
  }) : null,
459
465
  /* @__PURE__ */ jsx("div", {
460
466
  className: "seams-linked-devices-modal-live",
461
467
  role: "status",
462
468
  "aria-live": "polite",
463
- children: announcement
469
+ children: /* @__PURE__ */ jsx(WalletText, { copy: announcement })
464
470
  })
465
471
  ]
466
472
  })
@@ -1,12 +1,15 @@
1
+ import { walletDisplayText, walletText } from "../../../core/ui/messages.js";
2
+ import { useWalletLocale } from "../../context/WalletLocale.js";
1
3
  import { AccountMenuDeviceDetails } from "./AccountMenuDeviceDetails.js";
2
4
  import "react";
3
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
6
  //#region src/react/components/AccountMenuButton/AuthenticationMethodsView.tsx
5
7
  /** Shared presentation; callers own enrollment data and authenticated actions. */
6
8
  function AuthenticationMethodsView({ walletLabel, status, children }) {
9
+ const locale = useWalletLocale();
7
10
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(AccountMenuDeviceDetails, {
8
- title: walletLabel,
9
- description: "This wallet",
11
+ title: walletDisplayText(locale, walletLabel),
12
+ description: walletText(locale, "This wallet"),
10
13
  details: [{
11
14
  label: "Status",
12
15
  value: status