@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.
- package/README.md +4 -5
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +5 -4
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +89 -241
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +4 -2
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +116 -0
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.js +60 -0
- package/dist/esm/SeamsWeb/walletIframe/shared/facadeBoundary.js +2 -0
- package/dist/esm/core/config/configBuilder.js +2 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +7 -4
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +10 -6
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +9 -6
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +9 -6
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +7 -4
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +4 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +4 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +5 -4
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +10 -7
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +9 -5
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +28 -22
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +2 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +51 -26
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +42 -27
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +25 -18
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +8 -5
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/WalletLocale.js +24 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +6 -4
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +4 -2
- package/dist/esm/core/ui/locale.js +10 -0
- package/dist/esm/core/ui/messages.js +694 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +7 -3
- package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +6 -3
- package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +4 -3
- package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +5 -2
- package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +31 -27
- package/dist/esm/react/components/AccountMenuButton/AccountMenuScreen.js +6 -3
- package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +6 -3
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -4
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +33 -27
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +5 -2
- package/dist/esm/react/components/AccountMenuButton/ExportKeysScreen.js +5 -3
- package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +4 -3
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +50 -41
- package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
- package/dist/esm/react/components/AccountMenuButton/MenuItem.js +3 -2
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +8 -4
- package/dist/esm/react/components/AccountMenuButton/RecoveryCodeAcknowledgement.js +3 -2
- package/dist/esm/react/components/AccountMenuButton/RecoveryCodeActions.js +4 -3
- package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +2 -1
- package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +11 -10
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +8 -4
- package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +22 -15
- package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +20 -16
- package/dist/esm/react/components/AccountMenuButton/index.js +18 -15
- package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +30 -26
- package/dist/esm/react/components/QRCodeScanner.js +28 -23
- package/dist/esm/react/components/ShowQRCode.js +39 -31
- package/dist/esm/react/components/theme/ThemeProvider.js +3 -0
- package/dist/esm/react/context/WalletLocale.js +15 -0
- package/dist/esm/react/context/index.js +8 -3
- package/dist/esm/sdk/ConfirmationDrawer-mu3iThxX.js +1 -0
- package/dist/{public/sdk/NonceCoordinator-DuDKN-B8.js → esm/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
- package/dist/{public/sdk/accountLifecycle-D61FIpFS.js → esm/sdk/accountLifecycle-fLNUdjct.js} +1 -1
- package/dist/{public/sdk/activeWalletSession-Ba6X4CUN.js → esm/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
- package/dist/esm/sdk/adapters-u7LVXthY.js +2 -0
- package/dist/esm/sdk/appearance-token-vars-CzBVbO39.js +2 -0
- package/dist/esm/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
- package/dist/esm/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
- package/dist/{public/sdk/clientSessionPersistenceState-BHRUSWMt.js → esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
- package/dist/esm/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
- package/dist/esm/sdk/configBuilder-BMNShuOu.js +1 -0
- package/dist/esm/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
- package/dist/esm/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
- package/dist/esm/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
- package/dist/{public/sdk/ecdsaCapabilityManifest-DzA996y9.js → esm/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
- package/dist/{public/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
- package/dist/{public/sdk/ecdsaDerivationExport-DyugdheE.js → esm/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
- package/dist/esm/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
- package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
- package/dist/esm/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-ivf9LlBo.js} +1 -1
- package/dist/{public/sdk/exportKeypairOperation-SJPysnE1.js → esm/sdk/exportKeypairOperation-Gw7L5Htj.js} +1 -1
- package/dist/esm/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
- package/dist/esm/sdk/{host-GPb_mSAQ.js → host-B-2QXolt.js} +1 -1
- package/dist/esm/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
- package/dist/esm/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
- package/dist/esm/sdk/localOnly-BKpUHtHa.js +1 -0
- package/dist/esm/sdk/mountExportPrivateKeySurface-C8pUK6PQ.js +1 -0
- package/dist/esm/sdk/mountRecoveryCodeBackupSurface-DUudF89t.js +2 -0
- package/dist/{public/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
- package/dist/{public/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
- package/dist/esm/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
- package/dist/esm/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
- package/dist/{public/sdk/passkey-custody-CBSal3E9.js → esm/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
- package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-7tBjuSe7.js} +1 -1
- package/dist/{public/sdk/presignaturePool-CQNt13kE.js → esm/sdk/presignaturePool-BHoxnbOA.js} +1 -1
- package/dist/esm/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
- package/dist/esm/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
- package/dist/esm/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
- package/dist/esm/sdk/{registration-49OGU_GZ.js → registration-CWpOVwhj.js} +1 -1
- package/dist/esm/sdk/{registration-C7tywPXF.js → registration-D2OEgY7O.js} +1 -1
- package/dist/esm/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
- package/dist/esm/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
- package/dist/{public/sdk/registrationIntent-PqmcTEE3.js → esm/sdk/registrationIntent-D4YDjf2U.js} +1 -1
- package/dist/esm/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
- package/dist/{public/sdk/routerAbNormalSigning-xxATTIh5.js → esm/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
- package/dist/esm/sdk/runtime-auth-jtyQAuxZ.js +1 -0
- package/dist/esm/sdk/runtime-device-link-vhRhB-wS.js +1 -0
- package/dist/esm/sdk/runtime-ecdsa-tempo-BXWgFVBa.js +1 -0
- package/dist/esm/sdk/runtime-email-otp-BlAaSKtk.js +1 -0
- package/dist/esm/sdk/runtime-export-B4FuHhcH.js +1 -0
- package/dist/esm/sdk/runtime-near-BnWOpEpA.js +1 -0
- package/dist/esm/sdk/runtime-preferences-COm-LTiu.js +1 -0
- package/dist/esm/sdk/runtime-recovery-BJTo5Idi.js +1 -0
- package/dist/esm/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-CEOjdUHV.js} +1 -1
- package/dist/esm/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
- package/dist/esm/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
- package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
- package/dist/esm/sdk/shared-BKPGtAps.js +6 -0
- package/dist/esm/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
- package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
- package/dist/esm/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
- package/dist/{public/sdk/signNear-Dno7NsP_.js → esm/sdk/signNear-B000QxBd.js} +1 -1
- package/dist/{public/sdk/signingFlow-DtugI_2z.js → esm/sdk/signingFlow-gl85GOW4.js} +1 -1
- package/dist/esm/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
- package/dist/esm/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
- package/dist/{public/sdk/thresholdEcdsa-murTq-xz.js → esm/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
- package/dist/{public/sdk/transactionState-XbZm9Zon.js → esm/sdk/transactionState-lB2qpkOm.js} +1 -1
- package/dist/esm/sdk/tx-confirm-ui.js +1795 -432
- package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/esm/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
- package/dist/{public/sdk/walletAuthMethodRecord-Bv68Vq-g.js → esm/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
- package/dist/{public/sdk/walletAuthority-v5wvv3IB.js → esm/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
- package/dist/{public/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
- package/dist/esm/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
- package/dist/{public/sdk/walletOwnershipGeneration-pMmmJ6XA.js → esm/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
- package/dist/esm/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
- package/dist/esm/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
- package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
- package/dist/{public/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
- package/dist/{public/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
- package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
- package/dist/{public/sdk/webauthnP256-XgYu-Y6E.js → esm/sdk/webauthnP256-_ajaNl90.js} +1 -1
- package/dist/esm/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
- package/dist/public/headers.manifest.json +1 -1
- package/dist/public/sdk/ConfirmationDrawer-mu3iThxX.js +1 -0
- package/dist/{esm/sdk/NonceCoordinator-DuDKN-B8.js → public/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
- package/dist/{esm/sdk/accountLifecycle-D61FIpFS.js → public/sdk/accountLifecycle-fLNUdjct.js} +1 -1
- package/dist/{esm/sdk/activeWalletSession-Ba6X4CUN.js → public/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
- package/dist/public/sdk/adapters-u7LVXthY.js +2 -0
- package/dist/public/sdk/appearance-token-vars-CzBVbO39.js +2 -0
- package/dist/public/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
- package/dist/public/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
- package/dist/{esm/sdk/clientSessionPersistenceState-BHRUSWMt.js → public/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
- package/dist/public/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
- package/dist/public/sdk/configBuilder-BMNShuOu.js +1 -0
- package/dist/public/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
- package/dist/public/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
- package/dist/public/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
- package/dist/{esm/sdk/ecdsaCapabilityManifest-DzA996y9.js → public/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
- package/dist/{esm/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
- package/dist/{esm/sdk/ecdsaDerivationExport-DyugdheE.js → public/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
- package/dist/public/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
- package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
- package/dist/public/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-ivf9LlBo.js} +1 -1
- package/dist/{esm/sdk/exportKeypairOperation-SJPysnE1.js → public/sdk/exportKeypairOperation-Gw7L5Htj.js} +1 -1
- package/dist/public/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
- package/dist/public/sdk/{host-GPb_mSAQ.js → host-B-2QXolt.js} +1 -1
- package/dist/public/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
- package/dist/public/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
- package/dist/public/sdk/localOnly-BKpUHtHa.js +1 -0
- package/dist/public/sdk/mountExportPrivateKeySurface-C8pUK6PQ.js +1 -0
- package/dist/public/sdk/mountRecoveryCodeBackupSurface-DUudF89t.js +2 -0
- package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
- package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
- package/dist/public/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
- package/dist/public/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
- package/dist/{esm/sdk/passkey-custody-CBSal3E9.js → public/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
- package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-7tBjuSe7.js} +1 -1
- package/dist/{esm/sdk/presignaturePool-CQNt13kE.js → public/sdk/presignaturePool-BHoxnbOA.js} +1 -1
- package/dist/public/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
- package/dist/public/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
- package/dist/public/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
- package/dist/public/sdk/{registration-49OGU_GZ.js → registration-CWpOVwhj.js} +1 -1
- package/dist/public/sdk/{registration-C7tywPXF.js → registration-D2OEgY7O.js} +1 -1
- package/dist/public/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
- package/dist/public/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
- package/dist/{esm/sdk/registrationIntent-PqmcTEE3.js → public/sdk/registrationIntent-D4YDjf2U.js} +1 -1
- package/dist/public/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
- package/dist/{esm/sdk/routerAbNormalSigning-xxATTIh5.js → public/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
- package/dist/public/sdk/runtime-auth-jtyQAuxZ.js +1 -0
- package/dist/public/sdk/runtime-device-link-vhRhB-wS.js +1 -0
- package/dist/public/sdk/runtime-ecdsa-tempo-BXWgFVBa.js +1 -0
- package/dist/public/sdk/runtime-email-otp-BlAaSKtk.js +1 -0
- package/dist/public/sdk/runtime-export-B4FuHhcH.js +1 -0
- package/dist/public/sdk/runtime-near-BnWOpEpA.js +1 -0
- package/dist/public/sdk/runtime-preferences-COm-LTiu.js +1 -0
- package/dist/public/sdk/runtime-recovery-BJTo5Idi.js +1 -0
- package/dist/public/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-CEOjdUHV.js} +1 -1
- package/dist/public/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
- package/dist/public/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
- package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
- package/dist/public/sdk/shared-BKPGtAps.js +6 -0
- package/dist/public/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
- package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
- package/dist/public/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
- package/dist/{esm/sdk/signNear-Dno7NsP_.js → public/sdk/signNear-B000QxBd.js} +1 -1
- package/dist/{esm/sdk/signingFlow-DtugI_2z.js → public/sdk/signingFlow-gl85GOW4.js} +1 -1
- package/dist/public/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
- package/dist/public/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
- package/dist/{esm/sdk/thresholdEcdsa-murTq-xz.js → public/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
- package/dist/{esm/sdk/transactionState-XbZm9Zon.js → public/sdk/transactionState-lB2qpkOm.js} +1 -1
- package/dist/public/sdk/tx-confirm-ui.js +1795 -432
- package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/public/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
- package/dist/{esm/sdk/walletAuthMethodRecord-Bv68Vq-g.js → public/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
- package/dist/{esm/sdk/walletAuthority-v5wvv3IB.js → public/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
- package/dist/{esm/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
- package/dist/public/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
- package/dist/{esm/sdk/walletOwnershipGeneration-pMmmJ6XA.js → public/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
- package/dist/public/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
- package/dist/public/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
- package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
- package/dist/{esm/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
- package/dist/{esm/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → public/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
- package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
- package/dist/{esm/sdk/webauthnP256-XgYu-Y6E.js → public/sdk/webauthnP256-_ajaNl90.js} +1 -1
- package/dist/public/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
- package/dist/public/wallet-assets.manifest.json +192 -192
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +0 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +4 -6
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +35 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.d.ts +17 -0
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionTree.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/WalletLocale.d.ts +18 -0
- package/dist/types/wallet/src/core/types/seams.d.ts +3 -0
- package/dist/types/wallet/src/core/ui/locale.d.ts +5 -0
- package/dist/types/wallet/src/core/ui/messages.d.ts +8 -0
- package/dist/types/wallet/src/index.d.ts +3 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +1 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/WalletRegionSection.d.ts +3 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +4 -1
- package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.d.ts +2 -1
- package/dist/types/wallet/src/react/context/WalletLocale.d.ts +16 -0
- package/package.json +1 -1
- package/dist/esm/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
- package/dist/esm/sdk/adapters-CTlDBRJy.js +0 -2
- package/dist/esm/sdk/configBuilder-BMawmNpz.js +0 -1
- package/dist/esm/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
- package/dist/esm/sdk/localOnly-CPmpw381.js +0 -1
- package/dist/esm/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
- package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
- package/dist/esm/sdk/runtime-auth-CpjGW90U.js +0 -1
- package/dist/esm/sdk/runtime-device-link-CKgfGi7D.js +0 -1
- package/dist/esm/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
- package/dist/esm/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
- package/dist/esm/sdk/runtime-export-B92wQD25.js +0 -1
- package/dist/esm/sdk/runtime-near-CUuKg38M.js +0 -1
- package/dist/esm/sdk/runtime-preferences-EdL3G_MO.js +0 -1
- package/dist/esm/sdk/runtime-recovery-uyw8sywI.js +0 -1
- package/dist/esm/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
- package/dist/esm/sdk/shared-ha31XIdc.js +0 -6
- package/dist/esm/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
- package/dist/esm/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
- package/dist/public/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
- package/dist/public/sdk/adapters-CTlDBRJy.js +0 -2
- package/dist/public/sdk/configBuilder-BMawmNpz.js +0 -1
- package/dist/public/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
- package/dist/public/sdk/localOnly-CPmpw381.js +0 -1
- package/dist/public/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
- package/dist/public/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
- package/dist/public/sdk/runtime-auth-CpjGW90U.js +0 -1
- package/dist/public/sdk/runtime-device-link-CKgfGi7D.js +0 -1
- package/dist/public/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
- package/dist/public/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
- package/dist/public/sdk/runtime-export-B92wQD25.js +0 -1
- package/dist/public/sdk/runtime-near-CUuKg38M.js +0 -1
- package/dist/public/sdk/runtime-preferences-EdL3G_MO.js +0 -1
- package/dist/public/sdk/runtime-recovery-uyw8sywI.js +0 -1
- package/dist/public/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
- package/dist/public/sdk/shared-ha31XIdc.js +0 -6
- package/dist/public/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
- package/dist/public/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
- /package/dist/esm/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
- /package/dist/esm/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
- /package/dist/esm/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
- /package/dist/public/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
- /package/dist/public/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
- /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(
|
|
182
|
-
|
|
183
|
-
children: /* @__PURE__ */ jsx(
|
|
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: [
|
|
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__ */
|
|
350
|
-
"Remove ",
|
|
351
|
-
methodTitle(method)
|
|
352
|
-
|
|
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
|