@seams/wallet 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/README.md +4 -5
  2. package/dist/.build-inputs.sha256 +1 -1
  3. package/dist/esm/SeamsWeb/index.js +1 -1
  4. package/dist/esm/SeamsWeb/walletIframe/client/inboundMessages.js +1 -1
  5. package/dist/esm/SeamsWeb/walletIframe/client/router.js +10 -4
  6. package/dist/esm/SeamsWeb/walletIframe/coordinator.js +23 -1
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +5 -4
  8. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +121 -246
  9. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +37 -1
  10. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +4 -2
  11. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +117 -0
  12. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.js +60 -0
  13. package/dist/esm/SeamsWeb/walletIframe/shared/facadeBoundary.js +2 -0
  14. package/dist/esm/core/browser/walletIframe/events.js +6 -0
  15. package/dist/esm/core/config/configBuilder.js +2 -0
  16. package/dist/esm/core/signingEngine/uiConfirm/ui/appearance.js +27 -0
  17. package/dist/esm/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +155 -0
  18. package/dist/esm/core/signingEngine/uiConfirm/ui/export-viewer-host.js +209 -0
  19. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +7 -4
  20. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +10 -6
  21. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +9 -6
  22. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +9 -6
  23. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +7 -4
  24. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +4 -1
  25. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +4 -1
  26. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +5 -4
  27. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +319 -0
  28. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +10 -7
  29. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +9 -5
  30. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +28 -22
  31. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +2 -1
  32. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +51 -26
  33. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +42 -27
  34. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +25 -18
  35. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +8 -5
  36. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/WalletLocale.js +24 -0
  37. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +6 -4
  38. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +92 -0
  39. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +4 -2
  40. package/dist/esm/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +12 -0
  41. package/dist/esm/core/ui/locale.js +10 -0
  42. package/dist/esm/core/ui/messages.js +698 -0
  43. package/dist/esm/index.js +3 -2
  44. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +7 -3
  45. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +7 -4
  46. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +4 -3
  47. package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +5 -2
  48. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +31 -27
  49. package/dist/esm/react/components/AccountMenuButton/AccountMenuScreen.js +6 -3
  50. package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +6 -3
  51. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -4
  52. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +33 -27
  53. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +5 -2
  54. package/dist/esm/react/components/AccountMenuButton/ExportKeysScreen.js +5 -3
  55. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.css +20 -0
  56. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +4 -3
  57. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +9 -3
  58. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +50 -41
  59. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  60. package/dist/esm/react/components/AccountMenuButton/MenuItem.js +3 -2
  61. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +8 -4
  62. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeAcknowledgement.js +3 -2
  63. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeActions.js +4 -3
  64. package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +2 -1
  65. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +11 -10
  66. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +1 -0
  67. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +8 -4
  68. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +22 -15
  69. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +20 -16
  70. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +15 -0
  71. package/dist/esm/react/components/AccountMenuButton/index.js +18 -15
  72. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +30 -26
  73. package/dist/esm/react/components/QRCodeScanner.js +28 -23
  74. package/dist/esm/react/components/ShowQRCode.js +39 -31
  75. package/dist/esm/react/components/theme/ThemeProvider.js +3 -0
  76. package/dist/esm/react/context/WalletLocale.js +15 -0
  77. package/dist/esm/react/context/index.js +8 -3
  78. package/dist/esm/react/styles/styles.css +36 -0
  79. package/dist/esm/sdk/ConfirmationDrawer-DCw0m-Iv.js +1 -0
  80. package/dist/{public/sdk/NonceCoordinator-DuDKN-B8.js → esm/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
  81. package/dist/{public/sdk/accountLifecycle-D61FIpFS.js → esm/sdk/accountLifecycle-fLNUdjct.js} +1 -1
  82. package/dist/{public/sdk/activeWalletSession-Ba6X4CUN.js → esm/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
  83. package/dist/esm/sdk/adapters-BNmcyf9K.js +2 -0
  84. package/dist/esm/sdk/appearance-token-vars-DxBm_cKA.js +2 -0
  85. package/dist/esm/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
  86. package/dist/esm/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
  87. package/dist/{public/sdk/clientSessionPersistenceState-BHRUSWMt.js → esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
  88. package/dist/esm/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
  89. package/dist/esm/sdk/configBuilder-BMNShuOu.js +1 -0
  90. package/dist/esm/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
  91. package/dist/esm/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
  92. package/dist/esm/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
  93. package/dist/{public/sdk/ecdsaCapabilityManifest-DzA996y9.js → esm/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
  94. package/dist/{public/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
  95. package/dist/{public/sdk/ecdsaDerivationExport-DyugdheE.js → esm/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
  96. package/dist/esm/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
  97. package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
  98. package/dist/esm/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-DsdzagKK.js} +1 -1
  99. package/dist/{public/sdk/exportKeypairOperation-SJPysnE1.js → esm/sdk/exportKeypairOperation-BwW_E4Lt.js} +1 -1
  100. package/dist/esm/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
  101. package/dist/esm/sdk/{host-GPb_mSAQ.js → host-DMR4KDy9.js} +1 -1
  102. package/dist/esm/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
  103. package/dist/esm/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
  104. package/dist/esm/sdk/localOnly-DO191vDh.js +1 -0
  105. package/dist/esm/sdk/mountExportPrivateKeySurface-DQzFzhNu.js +1 -0
  106. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +2 -0
  107. package/dist/{public/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
  108. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
  109. package/dist/esm/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
  110. package/dist/esm/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
  111. package/dist/{public/sdk/passkey-custody-CBSal3E9.js → esm/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
  112. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-DOeIn_Qj.js} +1 -1
  113. package/dist/{public/sdk/presignaturePool-CQNt13kE.js → esm/sdk/presignaturePool-BHoxnbOA.js} +1 -1
  114. package/dist/esm/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
  115. package/dist/esm/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
  116. package/dist/esm/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
  117. package/dist/esm/sdk/{registration-49OGU_GZ.js → registration-DknFwoqn.js} +1 -1
  118. package/dist/esm/sdk/{registration-C7tywPXF.js → registration-sQndIWRF.js} +1 -1
  119. package/dist/esm/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
  120. package/dist/esm/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
  121. package/dist/{public/sdk/registrationIntent-PqmcTEE3.js → esm/sdk/registrationIntent-D4YDjf2U.js} +1 -1
  122. package/dist/esm/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
  123. package/dist/{public/sdk/routerAbNormalSigning-xxATTIh5.js → esm/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
  124. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  125. package/dist/esm/sdk/runtime-auth-BxG-J-BB.js +1 -0
  126. package/dist/esm/sdk/runtime-device-link-Dn_5hPCq.js +1 -0
  127. package/dist/esm/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js +1 -0
  128. package/dist/esm/sdk/runtime-email-otp-CPqTCH8Q.js +1 -0
  129. package/dist/esm/sdk/runtime-export-Brz53_oi.js +1 -0
  130. package/dist/esm/sdk/runtime-near-Da_xFUXx.js +1 -0
  131. package/dist/esm/sdk/runtime-preferences-riUZGaTs.js +1 -0
  132. package/dist/esm/sdk/runtime-recovery-CTj4nDAM.js +1 -0
  133. package/dist/esm/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-D8T9LQ7-.js} +1 -1
  134. package/dist/esm/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
  135. package/dist/esm/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
  136. package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
  137. package/dist/esm/sdk/shared-hx7KVyeq.js +6 -0
  138. package/dist/esm/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
  139. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
  140. package/dist/esm/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
  141. package/dist/{public/sdk/signNear-Dno7NsP_.js → esm/sdk/signNear-B000QxBd.js} +1 -1
  142. package/dist/{public/sdk/signingFlow-DtugI_2z.js → esm/sdk/signingFlow-gl85GOW4.js} +1 -1
  143. package/dist/esm/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
  144. package/dist/esm/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
  145. package/dist/{public/sdk/thresholdEcdsa-murTq-xz.js → esm/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
  146. package/dist/{public/sdk/transactionState-XbZm9Zon.js → esm/sdk/transactionState-lB2qpkOm.js} +1 -1
  147. package/dist/esm/sdk/tx-confirm-ui.js +1799 -432
  148. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  149. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  150. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  151. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  152. package/dist/esm/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
  153. package/dist/esm/sdk/wallet-ui.css +1 -1
  154. package/dist/{public/sdk/walletAuthMethodRecord-Bv68Vq-g.js → esm/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
  155. package/dist/{public/sdk/walletAuthority-v5wvv3IB.js → esm/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
  156. package/dist/{public/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
  157. package/dist/esm/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
  158. package/dist/{public/sdk/walletOwnershipGeneration-pMmmJ6XA.js → esm/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
  159. package/dist/esm/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
  160. package/dist/esm/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
  161. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
  162. package/dist/{public/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
  163. package/dist/{public/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
  164. package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
  165. package/dist/{public/sdk/webauthnP256-XgYu-Y6E.js → esm/sdk/webauthnP256-_ajaNl90.js} +1 -1
  166. package/dist/esm/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
  167. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  168. package/dist/public/headers.manifest.json +1 -1
  169. package/dist/public/sdk/ConfirmationDrawer-DCw0m-Iv.js +1 -0
  170. package/dist/{esm/sdk/NonceCoordinator-DuDKN-B8.js → public/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
  171. package/dist/{esm/sdk/accountLifecycle-D61FIpFS.js → public/sdk/accountLifecycle-fLNUdjct.js} +1 -1
  172. package/dist/{esm/sdk/activeWalletSession-Ba6X4CUN.js → public/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
  173. package/dist/public/sdk/adapters-BNmcyf9K.js +2 -0
  174. package/dist/public/sdk/appearance-token-vars-DxBm_cKA.js +2 -0
  175. package/dist/public/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
  176. package/dist/public/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
  177. package/dist/{esm/sdk/clientSessionPersistenceState-BHRUSWMt.js → public/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
  178. package/dist/public/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
  179. package/dist/public/sdk/configBuilder-BMNShuOu.js +1 -0
  180. package/dist/public/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
  181. package/dist/public/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
  182. package/dist/public/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
  183. package/dist/{esm/sdk/ecdsaCapabilityManifest-DzA996y9.js → public/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
  184. package/dist/{esm/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
  185. package/dist/{esm/sdk/ecdsaDerivationExport-DyugdheE.js → public/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
  186. package/dist/public/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
  187. package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
  188. package/dist/public/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-DsdzagKK.js} +1 -1
  189. package/dist/{esm/sdk/exportKeypairOperation-SJPysnE1.js → public/sdk/exportKeypairOperation-BwW_E4Lt.js} +1 -1
  190. package/dist/public/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
  191. package/dist/public/sdk/{host-GPb_mSAQ.js → host-DMR4KDy9.js} +1 -1
  192. package/dist/public/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
  193. package/dist/public/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
  194. package/dist/public/sdk/localOnly-DO191vDh.js +1 -0
  195. package/dist/public/sdk/mountExportPrivateKeySurface-DQzFzhNu.js +1 -0
  196. package/dist/public/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +2 -0
  197. package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
  198. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
  199. package/dist/public/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
  200. package/dist/public/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
  201. package/dist/{esm/sdk/passkey-custody-CBSal3E9.js → public/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
  202. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-DOeIn_Qj.js} +1 -1
  203. package/dist/{esm/sdk/presignaturePool-CQNt13kE.js → public/sdk/presignaturePool-BHoxnbOA.js} +1 -1
  204. package/dist/public/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
  205. package/dist/public/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
  206. package/dist/public/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
  207. package/dist/public/sdk/{registration-49OGU_GZ.js → registration-DknFwoqn.js} +1 -1
  208. package/dist/public/sdk/{registration-C7tywPXF.js → registration-sQndIWRF.js} +1 -1
  209. package/dist/public/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
  210. package/dist/public/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
  211. package/dist/{esm/sdk/registrationIntent-PqmcTEE3.js → public/sdk/registrationIntent-D4YDjf2U.js} +1 -1
  212. package/dist/public/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
  213. package/dist/{esm/sdk/routerAbNormalSigning-xxATTIh5.js → public/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
  214. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  215. package/dist/public/sdk/runtime-auth-BxG-J-BB.js +1 -0
  216. package/dist/public/sdk/runtime-device-link-Dn_5hPCq.js +1 -0
  217. package/dist/public/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js +1 -0
  218. package/dist/public/sdk/runtime-email-otp-CPqTCH8Q.js +1 -0
  219. package/dist/public/sdk/runtime-export-Brz53_oi.js +1 -0
  220. package/dist/public/sdk/runtime-near-Da_xFUXx.js +1 -0
  221. package/dist/public/sdk/runtime-preferences-riUZGaTs.js +1 -0
  222. package/dist/public/sdk/runtime-recovery-CTj4nDAM.js +1 -0
  223. package/dist/public/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-D8T9LQ7-.js} +1 -1
  224. package/dist/public/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
  225. package/dist/public/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
  226. package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
  227. package/dist/public/sdk/shared-hx7KVyeq.js +6 -0
  228. package/dist/public/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
  229. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
  230. package/dist/public/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
  231. package/dist/{esm/sdk/signNear-Dno7NsP_.js → public/sdk/signNear-B000QxBd.js} +1 -1
  232. package/dist/{esm/sdk/signingFlow-DtugI_2z.js → public/sdk/signingFlow-gl85GOW4.js} +1 -1
  233. package/dist/public/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
  234. package/dist/public/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
  235. package/dist/{esm/sdk/thresholdEcdsa-murTq-xz.js → public/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
  236. package/dist/{esm/sdk/transactionState-XbZm9Zon.js → public/sdk/transactionState-lB2qpkOm.js} +1 -1
  237. package/dist/public/sdk/tx-confirm-ui.js +1799 -432
  238. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  239. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  240. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  241. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  242. package/dist/public/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
  243. package/dist/public/sdk/wallet-ui.css +1 -1
  244. package/dist/{esm/sdk/walletAuthMethodRecord-Bv68Vq-g.js → public/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
  245. package/dist/{esm/sdk/walletAuthority-v5wvv3IB.js → public/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
  246. package/dist/{esm/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
  247. package/dist/public/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
  248. package/dist/{esm/sdk/walletOwnershipGeneration-pMmmJ6XA.js → public/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
  249. package/dist/public/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
  250. package/dist/public/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
  251. package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
  252. package/dist/{esm/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
  253. package/dist/{esm/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → public/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
  254. package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
  255. package/dist/{esm/sdk/webauthnP256-XgYu-Y6E.js → public/sdk/webauthnP256-_ajaNl90.js} +1 -1
  256. package/dist/public/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
  257. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  258. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  259. package/dist/public/wallet-assets.manifest.json +192 -192
  260. package/dist/public/wallet-service/index.html +4 -4
  261. package/dist/types/wallet/src/SeamsWeb/walletIframe/coordinator.d.ts +2 -1
  262. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +20 -3
  263. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +3 -0
  264. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +0 -1
  265. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +5 -6
  266. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +2 -0
  267. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +35 -0
  268. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.d.ts +17 -0
  269. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +3 -1
  270. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.d.ts +0 -1
  271. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.d.ts +3 -1
  272. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +3 -1
  273. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.d.ts +0 -1
  274. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.d.ts +0 -1
  275. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.d.ts +0 -1
  276. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +1 -1
  277. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.d.ts +3 -1
  278. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.d.ts +0 -1
  279. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +3 -1
  280. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.d.ts +0 -1
  281. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.d.ts +0 -1
  282. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.d.ts +3 -1
  283. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +3 -1
  284. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionTree.d.ts +0 -1
  285. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/WalletLocale.d.ts +18 -0
  286. package/dist/types/wallet/src/core/types/seams.d.ts +3 -0
  287. package/dist/types/wallet/src/core/ui/locale.d.ts +5 -0
  288. package/dist/types/wallet/src/core/ui/messages.d.ts +8 -0
  289. package/dist/types/wallet/src/index.d.ts +3 -1
  290. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +1 -0
  291. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletRegionSection.d.ts +3 -0
  292. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +4 -1
  293. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.d.ts +2 -1
  294. package/dist/types/wallet/src/react/context/WalletLocale.d.ts +16 -0
  295. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  296. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  297. package/package.json +1 -1
  298. package/dist/esm/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
  299. package/dist/esm/sdk/adapters-CTlDBRJy.js +0 -2
  300. package/dist/esm/sdk/configBuilder-BMawmNpz.js +0 -1
  301. package/dist/esm/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
  302. package/dist/esm/sdk/localOnly-CPmpw381.js +0 -1
  303. package/dist/esm/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
  304. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
  305. package/dist/esm/sdk/runtime-auth-CpjGW90U.js +0 -1
  306. package/dist/esm/sdk/runtime-device-link-CKgfGi7D.js +0 -1
  307. package/dist/esm/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
  308. package/dist/esm/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
  309. package/dist/esm/sdk/runtime-export-B92wQD25.js +0 -1
  310. package/dist/esm/sdk/runtime-near-CUuKg38M.js +0 -1
  311. package/dist/esm/sdk/runtime-preferences-EdL3G_MO.js +0 -1
  312. package/dist/esm/sdk/runtime-recovery-uyw8sywI.js +0 -1
  313. package/dist/esm/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
  314. package/dist/esm/sdk/shared-ha31XIdc.js +0 -6
  315. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
  316. package/dist/esm/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
  317. package/dist/public/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
  318. package/dist/public/sdk/adapters-CTlDBRJy.js +0 -2
  319. package/dist/public/sdk/configBuilder-BMawmNpz.js +0 -1
  320. package/dist/public/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
  321. package/dist/public/sdk/localOnly-CPmpw381.js +0 -1
  322. package/dist/public/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
  323. package/dist/public/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
  324. package/dist/public/sdk/runtime-auth-CpjGW90U.js +0 -1
  325. package/dist/public/sdk/runtime-device-link-CKgfGi7D.js +0 -1
  326. package/dist/public/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
  327. package/dist/public/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
  328. package/dist/public/sdk/runtime-export-B92wQD25.js +0 -1
  329. package/dist/public/sdk/runtime-near-CUuKg38M.js +0 -1
  330. package/dist/public/sdk/runtime-preferences-EdL3G_MO.js +0 -1
  331. package/dist/public/sdk/runtime-recovery-uyw8sywI.js +0 -1
  332. package/dist/public/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
  333. package/dist/public/sdk/shared-ha31XIdc.js +0 -6
  334. package/dist/public/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
  335. package/dist/public/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
  336. /package/dist/esm/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
  337. /package/dist/esm/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
  338. /package/dist/esm/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
  339. /package/dist/public/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
  340. /package/dist/public/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
  341. /package/dist/public/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
@@ -1,3 +1,5 @@
1
+ import { walletDisplayText, walletText } from "../../../../ui/messages.js";
2
+ import { WalletLocaleContext, WalletText, useWalletLocale } from "./WalletLocale.js";
1
3
  import { SeamsWordmark } from "./SeamsWordmark.js";
2
4
  import { contractPrefix, transactionLabelTitle } from "./TransactionLabel.js";
3
5
  import { copySurfaceText } from "./clipboard.js";
@@ -46,10 +48,11 @@ function reviewRecipient(model) {
46
48
  }
47
49
  /** The whole value when it fits; otherwise the middle truncates and the last eight characters stay. */
48
50
  function ReviewMiddleTruncated({ value, class: className }) {
51
+ const locale = useWalletLocale();
49
52
  return /* @__PURE__ */ jsxs("bdi", {
50
53
  class: `seams-review-middle ${className}`,
51
54
  dir: "ltr",
52
- title: value,
55
+ title: walletDisplayText(locale, value),
53
56
  children: [/* @__PURE__ */ jsx("span", { children: value.slice(0, -8) }), /* @__PURE__ */ jsx("span", { children: value.slice(-8) })]
54
57
  });
55
58
  }
@@ -119,7 +122,7 @@ function WalletReceiptFooter() {
119
122
  children: [
120
123
  /* @__PURE__ */ jsx(ReviewIcon, { kind: "shield" }),
121
124
  " ",
122
- /* @__PURE__ */ jsx("span", { children: "Secured by" }),
125
+ /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { message: "Secured by" }) }),
123
126
  " ",
124
127
  /* @__PURE__ */ jsx(SeamsWordmark, {})
125
128
  ]
@@ -144,6 +147,7 @@ function reviewAmount(model) {
144
147
  };
145
148
  }
146
149
  var CopyReviewValue = class extends Component {
150
+ static contextType = WalletLocaleContext;
147
151
  state = { copied: false };
148
152
  lifetime = new AbortController();
149
153
  timer = null;
@@ -179,7 +183,7 @@ var CopyReviewValue = class extends Component {
179
183
  type: "button",
180
184
  class: `seams-review-copy${this.props.address ? " seams-review-copy-address" : ""}${this.state.copied ? " copied" : ""}`,
181
185
  onClick: this.copy,
182
- "aria-label": this.state.copied ? "Copied" : this.props.label ?? "Copy value",
186
+ "aria-label": walletDisplayText(this.context, this.state.copied ? "Copied" : this.props.label ?? "Copy value"),
183
187
  children: [this.props.address && /* @__PURE__ */ jsx("bdi", {
184
188
  class: "seams-review-full-address",
185
189
  dir: "ltr",
@@ -189,43 +193,45 @@ var CopyReviewValue = class extends Component {
189
193
  }
190
194
  };
191
195
  function ReviewDetailLabel({ node }) {
192
- if (node.action || node.transaction) return /* @__PURE__ */ jsx(Fragment$1, { children: transactionLabelTitle(node) });
196
+ const locale = useWalletLocale();
197
+ if (node.action || node.transaction) return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx(WalletText, { copy: transactionLabelTitle(node) }) });
193
198
  const contract = contractPrefix(node);
194
199
  if (contract && node.contractAddress) {
195
200
  const address = node.contractAddress;
196
201
  return /* @__PURE__ */ jsxs("span", {
197
202
  class: "seams-review-contract",
198
- children: [contract.trim(), /* @__PURE__ */ jsxs("span", {
203
+ children: [/* @__PURE__ */ jsx(WalletText, { copy: contract.trim() }), /* @__PURE__ */ jsxs("span", {
199
204
  class: "seams-review-contract-value",
200
205
  children: [/* @__PURE__ */ jsx(ReviewMiddleTruncated, {
201
206
  value: address,
202
207
  class: "seams-review-contract-address"
203
208
  }), /* @__PURE__ */ jsx(CopyReviewValue, {
204
209
  value: address,
205
- label: `Copy contract address ${address}`
210
+ label: walletDisplayText(locale, `Copy contract address ${address}`)
206
211
  })]
207
212
  })]
208
213
  });
209
214
  }
210
215
  if (node.fieldLabel) {
211
216
  const value = node.label.slice(node.fieldLabel.length);
212
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [node.fieldLabel, node.fieldLabel === "Method:" ? /* @__PURE__ */ jsx("span", {
217
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(WalletText, { copy: node.fieldLabel }), node.fieldLabel === "Method:" ? /* @__PURE__ */ jsx("span", {
213
218
  class: "seams-review-function",
214
219
  children: value
215
220
  }) : value] });
216
221
  }
217
222
  const call = /^(Call(?:ing)? )([^\s]+)(.*)$/.exec(node.label);
218
223
  if (call) return /* @__PURE__ */ jsxs(Fragment$1, { children: [
219
- call[1],
224
+ /* @__PURE__ */ jsx(WalletText, { copy: call[1] }),
220
225
  /* @__PURE__ */ jsx("span", {
221
226
  class: "seams-review-function",
222
227
  children: call[2]
223
228
  }),
224
229
  call[3]
225
230
  ] });
226
- return /* @__PURE__ */ jsx(Fragment$1, { children: node.label });
231
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx(WalletText, { copy: node.label }) });
227
232
  }
228
233
  function ReviewDetail({ node }) {
234
+ const locale = useWalletLocale();
229
235
  const content = node.contentVariants?.decoded ?? node.content;
230
236
  const block = Boolean(node.contentVariants || content?.includes("\n"));
231
237
  return /* @__PURE__ */ jsxs("div", {
@@ -240,7 +246,7 @@ function ReviewDetail({ node }) {
240
246
  ]
241
247
  }),
242
248
  node.contentVariants && /* @__PURE__ */ jsx(ReviewDisclosure, {
243
- label: "Raw data",
249
+ label: walletText(locale, "Raw data"),
244
250
  kind: "raw",
245
251
  children: /* @__PURE__ */ jsx("pre", { children: node.contentVariants.raw })
246
252
  }),
@@ -252,6 +258,7 @@ function ReviewDetail({ node }) {
252
258
  });
253
259
  }
254
260
  function TransactionReview({ data, details = true }) {
261
+ const locale = useWalletLocale();
255
262
  const model = data.model;
256
263
  const operation = model?.operations[0];
257
264
  const recipient = reviewRecipient(model);
@@ -262,21 +269,21 @@ function TransactionReview({ data, details = true }) {
262
269
  model?.warnings?.map((warning) => /* @__PURE__ */ jsx("div", {
263
270
  class: "seams-review-warning",
264
271
  role: "alert",
265
- children: warning.message
272
+ children: /* @__PURE__ */ jsx(WalletText, { copy: warning.message })
266
273
  }, warning.code)),
267
274
  /* @__PURE__ */ jsxs("dl", {
268
275
  class: "seams-review-fields",
269
276
  children: [
270
- recipient && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "To" }), /* @__PURE__ */ jsx("dd", {
277
+ recipient && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: /* @__PURE__ */ jsx(WalletText, { message: "To" }) }), /* @__PURE__ */ jsx("dd", {
271
278
  class: "seams-review-recipient",
272
279
  children: /* @__PURE__ */ jsx(CopyReviewValue, {
273
280
  value: recipient,
274
281
  address: true,
275
- label: `Copy recipient address ${recipient}`
282
+ label: walletDisplayText(locale, `Copy recipient address ${recipient}`)
276
283
  })
277
284
  })] }),
278
- model && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Network" }), /* @__PURE__ */ jsxs("dd", { children: [/* @__PURE__ */ jsx("span", { class: "seams-review-network-dot" }), reviewNetwork(model)] })] }),
279
- model?.totals?.estimatedFee && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Estimated network fee" }), /* @__PURE__ */ jsxs("dd", { children: [
285
+ model && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: /* @__PURE__ */ jsx(WalletText, { message: "Network" }) }), /* @__PURE__ */ jsxs("dd", { children: [/* @__PURE__ */ jsx("span", { class: "seams-review-network-dot" }), reviewNetwork(model)] })] }),
286
+ model?.totals?.estimatedFee && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: /* @__PURE__ */ jsx(WalletText, { message: "Estimated network fee" }) }), /* @__PURE__ */ jsxs("dd", { children: [
280
287
  model.totals.estimatedFee,
281
288
  " ",
282
289
  model.totals.feeSymbol
@@ -285,7 +292,7 @@ function TransactionReview({ data, details = true }) {
285
292
  }),
286
293
  details && data.tree && /* @__PURE__ */ jsx(ReviewDisclosure, {
287
294
  initiallyOpen: data.detailsInitiallyOpen,
288
- label: operation?.kind === "near.message" ? "Message details" : "Transaction details",
295
+ label: walletDisplayText(locale, operation?.kind === "near.message" ? "Message details" : "Transaction details"),
289
296
  children: /* @__PURE__ */ jsx(ReviewDetail, { node: data.tree })
290
297
  }),
291
298
  model?.signerAccount && /* @__PURE__ */ jsxs("div", {
@@ -294,10 +301,10 @@ function TransactionReview({ data, details = true }) {
294
301
  class: "seams-review-avatar",
295
302
  "aria-hidden": "true",
296
303
  children: "S"
297
- }), /* @__PURE__ */ jsxs("div", { children: ["Signing account", /* @__PURE__ */ jsx("small", { children: /* @__PURE__ */ jsx(CopyReviewValue, {
304
+ }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(WalletText, { message: "Signing account" }), /* @__PURE__ */ jsx("small", { children: /* @__PURE__ */ jsx(CopyReviewValue, {
298
305
  value: model.signerAccount,
299
306
  address: true,
300
- label: `Copy signing account address ${model.signerAccount}`
307
+ label: walletDisplayText(locale, `Copy signing account address ${model.signerAccount}`)
301
308
  }) })] })]
302
309
  })
303
310
  ]
@@ -1,3 +1,5 @@
1
+ import { walletDisplayText } from "../../../../ui/messages.js";
2
+ import { WalletLocaleContext, WalletText } from "./WalletLocale.js";
1
3
  import { announceClampedSurfaceResize } from "../confirm-surface-resize.js";
2
4
  import { TransactionLabel, transactionLabelTitle } from "./TransactionLabel.js";
3
5
  import { copySurfaceText } from "./clipboard.js";
@@ -55,6 +57,7 @@ function TransactionTree(props) {
55
57
  });
56
58
  }
57
59
  var TransactionNode = class extends Component {
60
+ static contextType = WalletLocaleContext;
58
61
  state = {
59
62
  mode: this.props.node.contentVariants?.defaultMode === "raw" ? "raw" : "decoded",
60
63
  copied: false
@@ -210,7 +213,7 @@ var TransactionNode = class extends Component {
210
213
  chevron && !node.hideChevron && /* @__PURE__ */ jsx(Chevron, {}),
211
214
  /* @__PURE__ */ jsx("span", {
212
215
  class: "label-text",
213
- title: transactionLabelTitle(node),
216
+ title: walletDisplayText(this.context, transactionLabelTitle(node)),
214
217
  children: /* @__PURE__ */ jsx(TransactionLabel, {
215
218
  node,
216
219
  explorers: this.props.explorers
@@ -221,7 +224,7 @@ var TransactionNode = class extends Component {
221
224
  class: "copy-badge",
222
225
  "data-copied": String(this.state.copied),
223
226
  onClick: this.copy,
224
- title: this.state.copied ? "Copied" : "Copy",
227
+ title: walletDisplayText(this.context, this.state.copied ? "Copied" : "Copy"),
225
228
  children: this.state.copied ? "copied" : "copy"
226
229
  })
227
230
  ]
@@ -258,10 +261,10 @@ var TransactionNode = class extends Component {
258
261
  children: [variants && /* @__PURE__ */ jsx("button", {
259
262
  type: "button",
260
263
  class: "file-content-mode-toggle",
261
- title: `Show ${toggleLabel}`,
262
- "aria-label": `Show ${toggleLabel}`,
264
+ title: walletDisplayText(this.context, `Show ${toggleLabel}`),
265
+ "aria-label": walletDisplayText(this.context, `Show ${toggleLabel}`),
263
266
  onClick: this.toggleMode,
264
- children: toggleLabel
267
+ children: /* @__PURE__ */ jsx(WalletText, { copy: toggleLabel })
265
268
  }), /* @__PURE__ */ jsx("div", {
266
269
  class: "file-content",
267
270
  children: content
@@ -0,0 +1,24 @@
1
+ import { walletDisplayText, walletText } from "../../../../ui/messages.js";
2
+ import { createContext } from "preact";
3
+ import { useContext } from "preact/hooks";
4
+ import { jsx } from "preact/jsx-runtime";
5
+ //#region src/core/signingEngine/uiConfirm/ui/preact/WalletLocale.tsx
6
+ /** @jsxImportSource preact */
7
+ const WalletLocaleContext = createContext("en");
8
+ function useWalletLocale() {
9
+ return useContext(WalletLocaleContext);
10
+ }
11
+ function withWalletLocale(locale, children) {
12
+ return /* @__PURE__ */ jsx(WalletLocaleContext.Provider, {
13
+ value: locale,
14
+ children
15
+ });
16
+ }
17
+ function WalletText(props) {
18
+ const locale = useWalletLocale();
19
+ return props.message === void 0 ? walletDisplayText(locale, props.copy) : walletText(locale, props.message, props.values);
20
+ }
21
+ //#endregion
22
+ export { WalletLocaleContext, WalletText, useWalletLocale, withWalletLocale };
23
+
24
+ //# sourceMappingURL=WalletLocale.js.map
@@ -1,4 +1,5 @@
1
1
  import { appearanceTokenCssRule } from "../appearance-token-vars.js";
2
+ import { withWalletLocale } from "./WalletLocale.js";
2
3
  import { PadlockIcon } from "./PadlockIcon.js";
3
4
  import { confirmationDocumentStyles } from "./confirmation-styles.js";
4
5
  import { ConfirmationContent } from "./ConfirmationContent.js";
@@ -79,6 +80,7 @@ var MountedConfirmationSurface = class {
79
80
  this.state.model = model;
80
81
  this.element.dataset.confirmationKind = model.content.kind;
81
82
  this.element.dataset.seamsConfirmReady = String(model.content.kind === "transaction" && model.content.transaction.decision.kind === "ready");
83
+ this.element.lang = model.appearance.locale ?? "en";
82
84
  this.element.dataset.theme = model.appearance.theme.mode;
83
85
  this.styles.setDynamicRule(this.element.id, appearanceTokenCssRule(this.element.id, model.appearance));
84
86
  this.renderSurface();
@@ -224,16 +226,16 @@ var MountedConfirmationSurface = class {
224
226
  });
225
227
  const label = source.kind === "registration" ? source.registration.heading : source.header.heading;
226
228
  if (this.receipt || this.presentation.variant === "modal") {
227
- render(/* @__PURE__ */ jsx(ConfirmationModal, {
229
+ render(withWalletLocale(state.model.appearance.locale ?? "en", /* @__PURE__ */ jsx(ConfirmationModal, {
228
230
  context: this.receipt ? "wallet-iframe" : this.presentation.context,
229
231
  label,
230
232
  onCancel: this.cancel,
231
233
  children: content
232
- }), this.element);
234
+ })), this.element);
233
235
  return;
234
236
  }
235
237
  const decision = source.kind === "registration" ? source.registration.decision : source.transaction.decision;
236
- render(/* @__PURE__ */ jsx(ConfirmationDrawer, {
238
+ render(withWalletLocale(state.model.appearance.locale ?? "en", /* @__PURE__ */ jsx(ConfirmationDrawer, {
237
239
  context: this.presentation.context,
238
240
  label,
239
241
  origin: source.kind === "transaction" && source.header.website.kind === "ready" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(PadlockIcon, {}), source.header.website.text] }) : void 0,
@@ -248,7 +250,7 @@ var MountedConfirmationSurface = class {
248
250
  },
249
251
  onCancel: this.cancel,
250
252
  children: content
251
- }), this.element);
253
+ })), this.element);
252
254
  }
253
255
  contentModel(source, closing) {
254
256
  switch (source.kind) {
@@ -0,0 +1,92 @@
1
+ import { appearanceTokenCssRule } from "../appearance-token-vars.js";
2
+ import { withWalletLocale } from "./WalletLocale.js";
3
+ import { confirmationDocumentStyles } from "./confirmation-styles.js";
4
+ import { ConfirmationModal } from "./ConfirmationModal.js";
5
+ import { ConfirmationDrawer } from "./ConfirmationDrawer.js";
6
+ import { WalletIframeDomEvents } from "../../../../browser/walletIframe/events.js";
7
+ import { ExportPrivateKeySurface } from "./ExportPrivateKeySurface.js";
8
+ import { render } from "preact";
9
+ import { jsx } from "preact/jsx-runtime";
10
+ //#region src/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.tsx
11
+ /** @jsxImportSource preact */
12
+ let nextExportId = 0;
13
+ var MountedExportSurface = class {
14
+ element;
15
+ styles;
16
+ context;
17
+ state;
18
+ constructor(input) {
19
+ this.styles = confirmationDocumentStyles(input.parent.ownerDocument);
20
+ this.context = input.context;
21
+ this.state = {
22
+ kind: "mounted",
23
+ onClosed: input.onClosed
24
+ };
25
+ this.element = input.parent.ownerDocument.createElement("div");
26
+ this.element.id = `seams-export-surface-${++nextExportId}`;
27
+ this.element.className = "seams-wallet-ui seams-export-surface";
28
+ this.element.dataset.seamsExportSurface = input.context;
29
+ this.element.addEventListener(WalletIframeDomEvents.TX_CONFIRMER_CANCEL, this.handleCancel);
30
+ input.parent.appendChild(this.element);
31
+ try {
32
+ this.update(input.model);
33
+ } catch (error) {
34
+ this.remove();
35
+ throw error;
36
+ }
37
+ }
38
+ update(model) {
39
+ if (this.state.kind === "disposed") return;
40
+ this.element.lang = model.appearance.locale ?? "en";
41
+ this.element.dataset.theme = model.appearance.theme.mode;
42
+ this.element.dataset.seamsExportVariant = model.variant;
43
+ this.styles.setDynamicRule(this.element.id, appearanceTokenCssRule(this.element.id, model.appearance));
44
+ if (model.variant === "modal") {
45
+ render(withWalletLocale(model.appearance.locale ?? "en", /* @__PURE__ */ jsx(ConfirmationModal, {
46
+ context: this.context,
47
+ label: "Exported Keys",
48
+ onCancel: this.dispose,
49
+ children: /* @__PURE__ */ jsx(ExportPrivateKeySurface, {
50
+ model: model.content,
51
+ onClose: this.dispose
52
+ })
53
+ })), this.element);
54
+ return;
55
+ }
56
+ render(withWalletLocale(model.appearance.locale ?? "en", /* @__PURE__ */ jsx(ConfirmationDrawer, {
57
+ context: this.context,
58
+ label: "Exported Keys",
59
+ dismissOnBackdrop: false,
60
+ styles: this.styles,
61
+ state: {
62
+ kind: "open",
63
+ interaction: "ready"
64
+ },
65
+ onCancel: this.dispose,
66
+ children: /* @__PURE__ */ jsx(ExportPrivateKeySurface, { model: model.content })
67
+ })), this.element);
68
+ }
69
+ dispose = () => {
70
+ if (this.state.kind === "disposed") return;
71
+ const onClosed = this.state.onClosed;
72
+ this.remove();
73
+ onClosed();
74
+ };
75
+ handleCancel = () => {
76
+ this.dispose();
77
+ };
78
+ remove() {
79
+ this.state = { kind: "disposed" };
80
+ this.element.removeEventListener(WalletIframeDomEvents.TX_CONFIRMER_CANCEL, this.handleCancel);
81
+ render(null, this.element);
82
+ this.styles.deleteDynamicRule(this.element.id);
83
+ this.element.remove();
84
+ }
85
+ };
86
+ function mountExportPrivateKeySurface(input) {
87
+ return new MountedExportSurface(input);
88
+ }
89
+ //#endregion
90
+ export { mountExportPrivateKeySurface };
91
+
92
+ //# sourceMappingURL=mountExportPrivateKeySurface.js.map
@@ -1,4 +1,5 @@
1
1
  import { appearanceTokenCssRule } from "../appearance-token-vars.js";
2
+ import { withWalletLocale } from "./WalletLocale.js";
2
3
  import { confirmationDocumentStyles } from "./confirmation-styles.js";
3
4
  import { RecoveryCodeBackupSurface } from "./RecoveryCodeBackupSurface.js";
4
5
  import { render } from "preact";
@@ -18,6 +19,7 @@ var MountedRecoveryCodeBackupSurface = class {
18
19
  this.element = this.document.createElement("div");
19
20
  this.element.id = `seams-recovery-surface-${++nextRecoverySurfaceId}`;
20
21
  this.element.className = "seams-wallet-ui seams-recovery-code-backup-host";
22
+ this.element.lang = input.appearance?.locale ?? "en";
21
23
  this.element.dataset.seamsRecoverySurface = input.surface;
22
24
  if (input.appearance) {
23
25
  this.element.dataset.theme = input.appearance.theme.mode;
@@ -59,11 +61,11 @@ var MountedRecoveryCodeBackupSurface = class {
59
61
  render(experience) {
60
62
  if (this.state === "disposed") return;
61
63
  this.element.dataset.seamsRecoveryEntry = experience.kind;
62
- render(/* @__PURE__ */ jsx(RecoveryCodeBackupSurface, {
64
+ render(withWalletLocale(this.input.appearance?.locale ?? "en", /* @__PURE__ */ jsx(RecoveryCodeBackupSurface, {
63
65
  experience,
64
66
  onClose: this.input.onClose,
65
67
  onStageChange: this.handleStageChange
66
- }), this.dialog);
68
+ })), this.dialog);
67
69
  }
68
70
  handleCancel = (event) => {
69
71
  event.preventDefault();
@@ -0,0 +1,12 @@
1
+ //#region src/core/signingEngine/uiConfirm/ui/surface-measurement-binding.ts
2
+ function sameSurfaceMeasurementBinding(left, right) {
3
+ if (!left || left.kind !== right.kind) return false;
4
+ switch (left.kind) {
5
+ case "disabled": return right.kind === "disabled";
6
+ case "wallet_iframe": return right.kind === "wallet_iframe" && left.requestId === right.requestId && left.postMeasurement === right.postMeasurement && left.hostSurfaceVariant === right.hostSurfaceVariant;
7
+ }
8
+ }
9
+ //#endregion
10
+ export { sameSurfaceMeasurementBinding };
11
+
12
+ //# sourceMappingURL=surface-measurement-binding.js.map
@@ -0,0 +1,10 @@
1
+ //#region src/core/ui/locale.ts
2
+ /** Normalize a language tag at a configuration or request boundary. */
3
+ function normalizeWalletLocale(value) {
4
+ if (typeof value !== "string") return "en";
5
+ return value.trim().toLowerCase().split(/[-_]/, 1)[0] === "ja" ? "ja" : "en";
6
+ }
7
+ //#endregion
8
+ export { normalizeWalletLocale };
9
+
10
+ //# sourceMappingURL=locale.js.map