@seams/wallet 0.22.0 → 0.24.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 (624) hide show
  1. package/README.md +19 -2
  2. package/THIRD_PARTY_NOTICES.md +186 -6
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +1 -0
  5. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +3 -0
  6. package/dist/esm/SeamsWeb/walletIframe/client/authMenuAnchor.js +44 -0
  7. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +4 -6
  8. package/dist/esm/SeamsWeb/walletIframe/client/registrationCommands.js +12 -0
  9. package/dist/esm/SeamsWeb/walletIframe/client/router.js +67 -31
  10. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +4 -0
  11. package/dist/esm/SeamsWeb/walletIframe/client/surface/geometry.js +2 -2
  12. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.js +2 -2
  13. package/dist/esm/SeamsWeb/walletIframe/host/auth-menu/domain.js +22 -3
  14. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +6 -2
  15. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +1 -3
  16. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +81 -19
  17. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +1 -4
  18. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +7 -11
  19. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +86 -0
  20. package/dist/esm/SeamsWeb/walletIframe/shared/configuration.js +23 -1
  21. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +1 -0
  22. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +7 -1
  23. package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +20 -1
  24. package/dist/esm/core/authMethods/availability.js +28 -0
  25. package/dist/esm/core/authMethods/availabilityTypes.js +29 -0
  26. package/dist/esm/core/authMethods/plugins.js +17 -0
  27. package/dist/esm/core/config/configBuilder.js +2 -0
  28. package/dist/esm/core/config/defaultConfigs.js +1 -0
  29. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +41 -2
  30. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +3 -0
  31. package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +1 -1
  32. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +1 -1
  33. package/dist/esm/core/signingEngine/flows/signEvmFamily/authPlanning.js +2 -1
  34. package/dist/esm/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +29 -12
  35. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +1 -0
  36. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +2 -1
  37. package/dist/esm/core/signingEngine/flows/signNear/requireNearStepUpAuth.js +1 -0
  38. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +1 -1
  39. package/dist/esm/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +5 -0
  40. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +16 -12
  41. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +2 -3
  42. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +16 -1
  43. package/dist/esm/core/signingEngine/session/identity/signingLaneAuthBinding.js +6 -0
  44. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +3 -0
  45. package/dist/esm/core/signingEngine/session/operationState/lanes.js +21 -4
  46. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +94 -0
  47. package/dist/esm/core/signingEngine/stepUpConfirmation/methodSelection.js +1 -0
  48. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +19 -2
  49. package/dist/esm/core/signingEngine/uiConfirm/ui/confirmation-model.js +3 -1
  50. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +6 -0
  51. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +59 -23
  52. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +13 -0
  53. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +48 -16
  54. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +146 -9
  55. package/dist/esm/core/signingEngine/walletCustody/ceremonyStepRunner.js +8 -0
  56. package/dist/esm/core/signingEngine/walletCustody/resealedEnvelopeResult.js +24 -0
  57. package/dist/esm/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +74 -0
  58. package/dist/esm/core/signingEngine/workerManager/workerDeferred.js +25 -0
  59. package/dist/esm/core/ui/messages.js +15 -4
  60. package/dist/esm/externalNear/actions.js +26 -0
  61. package/dist/esm/externalNear/boundary.js +53 -0
  62. package/dist/esm/externalNear/controller.js +223 -0
  63. package/dist/esm/externalNear/hot.js +41 -0
  64. package/dist/esm/externalNear/index.js +3 -0
  65. package/dist/esm/externalNear/intear.js +110 -0
  66. package/dist/esm/externalNear/intearPopup.js +83 -0
  67. package/dist/esm/externalNear/message.js +60 -0
  68. package/dist/esm/externalNear/meteor.js +133 -0
  69. package/dist/esm/externalNear/meteorRequest.js +117 -0
  70. package/dist/esm/externalNear/types.js +17 -0
  71. package/dist/esm/externalNear/wallets.js +33 -0
  72. package/dist/esm/node_modules/borsh/lib/esm/buffer.js +67 -0
  73. package/dist/esm/node_modules/borsh/lib/esm/deserialize.js +94 -0
  74. package/dist/esm/node_modules/borsh/lib/esm/index.js +13 -0
  75. package/dist/esm/node_modules/borsh/lib/esm/serialize.js +127 -0
  76. package/dist/esm/node_modules/borsh/lib/esm/types.js +19 -0
  77. package/dist/esm/node_modules/borsh/lib/esm/utils.js +104 -0
  78. package/dist/esm/plugins/plugin-utils.js +2 -5
  79. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +10 -22
  80. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +2 -2
  81. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +7 -4
  82. package/dist/esm/react/components/AccountMenuButton/AddEvmAccount.js +124 -0
  83. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +41 -23
  84. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +220 -164
  85. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +7 -5
  86. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +142 -36
  87. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +11 -2
  88. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +12 -10
  89. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +1 -1
  90. package/dist/esm/react/components/AccountMenuButton/VoiceIdAvailabilityControl.js +186 -0
  91. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +10 -8
  92. package/dist/esm/react/components/AccountMenuButton/icons/ChevronRightIcon.js +8 -0
  93. package/dist/esm/react/components/AccountMenuButton/icons/WalletIcon.js +8 -0
  94. package/dist/esm/react/components/AccountMenuButton/index.js +35 -13
  95. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +8 -4
  96. package/dist/esm/react/context/useLoginStateRefresher.js +10 -2
  97. package/dist/esm/react/externalNear.css +90 -0
  98. package/dist/esm/react/externalNear.js +104 -0
  99. package/dist/esm/react/index.js +2 -4
  100. package/dist/esm/react/styles/styles.css +22 -332
  101. package/dist/esm/react/styles.css +0 -1
  102. package/dist/esm/sdk/ConfirmationDrawer-CTaGM1AE.js +1 -0
  103. package/dist/esm/sdk/{NonceCoordinator-Do23iTzQ.js → NonceCoordinator-Bti1HQPo.js} +1 -1
  104. package/dist/esm/sdk/SeamsWordmark-CFpsGoLw.js +1 -0
  105. package/dist/esm/sdk/{accountLifecycle-CXTlwnAS.js → accountLifecycle-B98g9zN9.js} +1 -1
  106. package/dist/esm/sdk/actions-GYsSR2Q2.js +1 -0
  107. package/dist/esm/sdk/activeWalletSession-H9JBdHyQ.js +1 -0
  108. package/dist/esm/sdk/adapters-D5MZ5NG5.js +2 -0
  109. package/dist/esm/sdk/appearance-token-vars-CgYTfCKg.js +1 -0
  110. package/dist/esm/sdk/{canonicalPrimitives-D_1HyEuJ.js → canonicalPrimitives-B6YMrI3W.js} +1 -1
  111. package/dist/esm/sdk/{capabilityKinds-CqHVzVsJ.js → capabilityKinds-BzrNeEyO.js} +1 -1
  112. package/dist/esm/sdk/{chains-CPmd4s9f.js → chains-gV2K9gA4.js} +1 -1
  113. package/dist/esm/sdk/{challengeDelivery-C88JNwKf.js → challengeDelivery-FW9gYyr0.js} +1 -1
  114. package/dist/esm/sdk/clientSessionPersistenceState-BPYK9PYV.js +1 -0
  115. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js → collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js} +1 -1
  116. package/dist/esm/sdk/{commitQueue-BQPOhyGl.js → commitQueue-Bs23Rs57.js} +1 -1
  117. package/dist/esm/sdk/configBuilder-DrxXNUpV.js +1 -0
  118. package/dist/esm/sdk/{configHelpers-D50F_Txb.js → configHelpers-BNqoU2cv.js} +1 -1
  119. package/dist/esm/sdk/configuration-CAqANpTI.js +1 -0
  120. package/dist/esm/sdk/csp-stylesheet-DeuiM0Mo.js +2 -0
  121. package/dist/esm/sdk/{display-Dtugjeya.js → display-BXjW58UF.js} +1 -1
  122. package/dist/esm/sdk/domainIds-t1lp25yU.js +1 -0
  123. package/dist/esm/sdk/ecdsaCapabilityManifest--FjbES8k.js +1 -0
  124. package/dist/esm/sdk/{ecdsaChainTarget-svSlzhze.js → ecdsaChainTarget-DbLthshF.js} +1 -1
  125. package/dist/esm/sdk/{ecdsaDerivationClientWasm-D1HzwUgV.js → ecdsaDerivationClientWasm-7Rp4TmYE.js} +1 -1
  126. package/dist/esm/sdk/ecdsaDerivationExport-dInN7N6e.js +1 -0
  127. package/dist/esm/sdk/{ecdsaWalletRecords-BmhuJF1y.js → ecdsaWalletRecords-BgcXXCZy.js} +1 -1
  128. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +1 -0
  129. package/dist/esm/sdk/{enrichDisplayModelWithAbi-D0o0IL7_.js → enrichDisplayModelWithAbi-CudPUW0T.js} +1 -1
  130. package/dist/esm/sdk/{evmCryptoWasm-S2gL5ht4.js → evmCryptoWasm-DacbCVNM.js} +1 -1
  131. package/dist/esm/sdk/{export-viewer-host-C9n-62Pi.js → export-viewer-host-DsWOvc0t.js} +1 -1
  132. package/dist/esm/sdk/exportKeypairOperation-BazJvSov.js +1 -0
  133. package/dist/{public/sdk/helpers-BXezXx19.js → esm/sdk/helpers-CXqXyyCU.js} +1 -1
  134. package/dist/esm/sdk/host-C0Is56lU.js +1 -0
  135. package/dist/esm/sdk/icons-DyndJzSh.js +1 -0
  136. package/dist/esm/sdk/indexedDB-C1odKEC6.js +1 -0
  137. package/dist/esm/sdk/intentDigest-BMXki7yB.js +1 -0
  138. package/dist/esm/sdk/{keyMaterialEnvelope-B3v6HLtz.js → keyMaterialEnvelope-B-Q5KTJC.js} +1 -1
  139. package/dist/esm/sdk/lanes-C7OvAK_L.js +1 -0
  140. package/dist/esm/sdk/localOnly-BB3Rx3J6.js +1 -0
  141. package/dist/esm/sdk/mountExportPrivateKeySurface-CV1KrFWg.js +1 -0
  142. package/dist/{public/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js → esm/sdk/mountRecoveryCodeBackupSurface-CVXU1zzl.js} +2 -2
  143. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +1 -0
  144. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +1 -0
  145. package/dist/esm/sdk/{nonceLaneKeys-CR2XEvnk.js → nonceLaneKeys-BS4fek17.js} +1 -1
  146. package/dist/esm/sdk/{normalization-Ctkj80dW.js → normalization-BN-2VWZf.js} +1 -1
  147. package/dist/esm/sdk/{operationFingerprint-DRPONhBD.js → operationFingerprint-Bn0lUYlm.js} +1 -1
  148. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js +1 -0
  149. package/dist/esm/sdk/presignaturePool-CultzkOG.js +1 -0
  150. package/dist/esm/sdk/{presignatures-DGLNs29C.js → presignatures-B9GrGx0L.js} +1 -1
  151. package/dist/esm/sdk/recovery-entrypoint-QBvJBngm.js +1 -0
  152. package/dist/esm/sdk/{recoveryAuthorization-BplZWc-N.js → recoveryAuthorization-DB-zxeHq.js} +1 -1
  153. package/dist/esm/sdk/registration-CM5a7WYO.js +1 -0
  154. package/dist/esm/sdk/registration-Hv0xi7-L.js +1 -0
  155. package/dist/esm/sdk/{registrationAccounts-BfO6Ztye.js → registrationAccounts-BHikxS5q.js} +1 -1
  156. package/dist/esm/sdk/{registrationAuthMethodInput-DKz6Mgg4.js → registrationAuthMethodInput-BvbWl0y_.js} +1 -1
  157. package/dist/esm/sdk/registrationIntent-DTs2SR9E.js +1 -0
  158. package/dist/esm/sdk/{registrationSignerPlan-B66FjqIp.js → registrationSignerPlan-CgbFVsAp.js} +1 -1
  159. package/dist/{public/sdk/requireStepUpAuth-DsNLml1i.js → esm/sdk/requireStepUpAuth-B7tC4MrA.js} +1 -1
  160. package/dist/esm/sdk/resealedEnvelopeResult--iCVt_Bh.js +1 -0
  161. package/dist/esm/sdk/routerAbNormalSigning-Div3lZWV.js +1 -0
  162. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  163. package/dist/esm/sdk/runtime-auth-CVw1KoVD.js +1 -0
  164. package/dist/esm/sdk/runtime-device-link-Dp0YMZTQ.js +1 -0
  165. package/dist/esm/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +1 -0
  166. package/dist/esm/sdk/runtime-email-otp-gsr_FsQn.js +1 -0
  167. package/dist/esm/sdk/runtime-export-upMPrZ4V.js +1 -0
  168. package/dist/esm/sdk/runtime-near-B64Hn3nc.js +1 -0
  169. package/dist/esm/sdk/runtime-preferences-CULdHkbg.js +1 -0
  170. package/dist/esm/sdk/runtime-recovery-D2saBaJy.js +1 -0
  171. package/dist/esm/sdk/runtime-recovery-codes-Bvc0IXMJ.js +1 -0
  172. package/dist/esm/sdk/runtimeContext-CNFJjcns.js +6 -0
  173. package/dist/{public/sdk/sdkSentEvents-BzMVO1AR.js → esm/sdk/sdkSentEvents-DUht3AOD.js} +1 -1
  174. package/dist/esm/sdk/{secp256k1-CYu8ENjP.js → secp256k1-BGVlx50C.js} +1 -1
  175. package/dist/esm/sdk/sessionObservationRevision-84ZzJ-fC.js +1 -0
  176. package/dist/esm/sdk/shared-DcHtE-D-.js +1 -0
  177. package/dist/esm/sdk/signEvmFamily-PjwUc5MT.js +1 -0
  178. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js → signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js} +1 -1
  179. package/dist/esm/sdk/{signEvmWithUiConfirm-lZyPfrGe.js → signEvmWithUiConfirm-BNkupz3z.js} +1 -1
  180. package/dist/esm/sdk/signNear-r8VCOoTh.js +1 -0
  181. package/dist/esm/sdk/{signatureUses-CY4U-X6V.js → signatureUses-DrqCoN12.js} +1 -1
  182. package/dist/esm/sdk/signerDomain-D-EUTlLK.js +1 -0
  183. package/dist/esm/sdk/{signerSlot-CpyIfl3J.js → signerSlot-D4ZOuK7e.js} +1 -1
  184. package/dist/{public/sdk/signingFlow-Co_QtuHK.js → esm/sdk/signingFlow-BVvteILM.js} +1 -1
  185. package/dist/esm/sdk/{signingQueue-Cj9sCJLj.js → signingQueue-BJzOrwDq.js} +1 -1
  186. package/dist/esm/sdk/surface-measurement-reporter-NUm_54LH.js +1 -0
  187. package/dist/{public/sdk/thresholdEcdsa-LvkD6z8-.js → esm/sdk/thresholdEcdsa-tnY83qyG.js} +1 -1
  188. package/dist/esm/sdk/{trace-CWTzEALZ.js → trace-CGNqO1FV.js} +1 -1
  189. package/dist/esm/sdk/{transaction-activity-CpDMkSPm.js → transaction-activity-DPq9RTh5.js} +1 -1
  190. package/dist/esm/sdk/transactionReview-DSGnpreN.js +1 -0
  191. package/dist/esm/sdk/transactionReviewAdmission--8tDis7M.js +1 -0
  192. package/dist/{public/sdk/transactionState-BaFSiA9t.js → esm/sdk/transactionState-BS1VLT7B.js} +1 -1
  193. package/dist/esm/sdk/tx-confirm-ui.js +418 -109
  194. package/dist/esm/sdk/types-DdzuHlAQ.js +1 -0
  195. package/dist/esm/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +1 -0
  196. package/dist/esm/sdk/voiceid-host.js +1 -0
  197. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  198. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  199. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  200. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  201. package/dist/esm/sdk/wallet-recovery-BjIQdOha.js +1 -0
  202. package/dist/esm/sdk/wallet-ui.css +1 -1
  203. package/dist/esm/sdk/walletAuthMethodRecord-yIqCeE-o.js +1 -0
  204. package/dist/esm/sdk/walletCapabilityBindings-CUPk3mVH.js +1 -0
  205. package/dist/esm/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +1 -0
  206. package/dist/esm/sdk/walletCustodyOperation-DzPcxEBS.js +1 -0
  207. package/dist/esm/sdk/walletDbName-DDJXrgA5.js +1 -0
  208. package/dist/esm/sdk/walletOwnershipGeneration-DI9ogcXF.js +1 -0
  209. package/dist/esm/sdk/walletRecoveryAdminProof-BJxmg3f7.js +1 -0
  210. package/dist/esm/sdk/walletRecoveryCommit-B7WsdR7y.js +1 -0
  211. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +1 -0
  212. package/dist/esm/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +1 -0
  213. package/dist/{public/sdk/walletSessionAuthorizationStore-DYRMCkiT.js → esm/sdk/walletSessionAuthorizationStore-zkxcMdSp.js} +1 -1
  214. package/dist/esm/sdk/warmSessionHydration-DqZyfi1h.js +1 -0
  215. package/dist/esm/sdk/{webauthnP256-unqBoZCk.js → webauthnP256-BvTL8nq4.js} +1 -1
  216. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +4 -1
  217. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +11 -2
  218. package/dist/esm/shared-ts/src/authorization/voiceIdDeviceAssertion.js +110 -0
  219. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +1 -0
  220. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +1 -0
  221. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +17 -9
  222. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +62 -3
  223. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +1 -1
  224. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +5 -2
  225. package/dist/esm/shared-ts/src/utils/domainIds.js +14 -1
  226. package/dist/esm/shared-ts/src/utils/signerDomain.js +4 -2
  227. package/dist/esm/shared-ts/src/utils/validation.js +4 -1
  228. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +46 -2
  229. package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +116 -6
  230. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +39 -1
  231. package/dist/esm/voiceid-host.js +47 -0
  232. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  233. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  234. package/dist/public/headers.manifest.json +1 -1
  235. package/dist/public/sdk/ConfirmationDrawer-CTaGM1AE.js +1 -0
  236. package/dist/public/sdk/{NonceCoordinator-Do23iTzQ.js → NonceCoordinator-Bti1HQPo.js} +1 -1
  237. package/dist/public/sdk/SeamsWordmark-CFpsGoLw.js +1 -0
  238. package/dist/public/sdk/{accountLifecycle-CXTlwnAS.js → accountLifecycle-B98g9zN9.js} +1 -1
  239. package/dist/public/sdk/actions-GYsSR2Q2.js +1 -0
  240. package/dist/public/sdk/activeWalletSession-H9JBdHyQ.js +1 -0
  241. package/dist/public/sdk/adapters-D5MZ5NG5.js +2 -0
  242. package/dist/public/sdk/appearance-token-vars-CgYTfCKg.js +1 -0
  243. package/dist/public/sdk/{canonicalPrimitives-D_1HyEuJ.js → canonicalPrimitives-B6YMrI3W.js} +1 -1
  244. package/dist/public/sdk/{capabilityKinds-CqHVzVsJ.js → capabilityKinds-BzrNeEyO.js} +1 -1
  245. package/dist/public/sdk/{chains-CPmd4s9f.js → chains-gV2K9gA4.js} +1 -1
  246. package/dist/public/sdk/{challengeDelivery-C88JNwKf.js → challengeDelivery-FW9gYyr0.js} +1 -1
  247. package/dist/public/sdk/clientSessionPersistenceState-BPYK9PYV.js +1 -0
  248. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js → collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js} +1 -1
  249. package/dist/public/sdk/{commitQueue-BQPOhyGl.js → commitQueue-Bs23Rs57.js} +1 -1
  250. package/dist/public/sdk/configBuilder-DrxXNUpV.js +1 -0
  251. package/dist/public/sdk/{configHelpers-D50F_Txb.js → configHelpers-BNqoU2cv.js} +1 -1
  252. package/dist/public/sdk/configuration-CAqANpTI.js +1 -0
  253. package/dist/public/sdk/csp-stylesheet-DeuiM0Mo.js +2 -0
  254. package/dist/public/sdk/{display-Dtugjeya.js → display-BXjW58UF.js} +1 -1
  255. package/dist/public/sdk/domainIds-t1lp25yU.js +1 -0
  256. package/dist/public/sdk/ecdsaCapabilityManifest--FjbES8k.js +1 -0
  257. package/dist/public/sdk/{ecdsaChainTarget-svSlzhze.js → ecdsaChainTarget-DbLthshF.js} +1 -1
  258. package/dist/public/sdk/{ecdsaDerivationClientWasm-D1HzwUgV.js → ecdsaDerivationClientWasm-7Rp4TmYE.js} +1 -1
  259. package/dist/public/sdk/ecdsaDerivationExport-dInN7N6e.js +1 -0
  260. package/dist/public/sdk/{ecdsaWalletRecords-BmhuJF1y.js → ecdsaWalletRecords-BgcXXCZy.js} +1 -1
  261. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +1 -0
  262. package/dist/public/sdk/{enrichDisplayModelWithAbi-D0o0IL7_.js → enrichDisplayModelWithAbi-CudPUW0T.js} +1 -1
  263. package/dist/public/sdk/{evmCryptoWasm-S2gL5ht4.js → evmCryptoWasm-DacbCVNM.js} +1 -1
  264. package/dist/public/sdk/{export-viewer-host-C9n-62Pi.js → export-viewer-host-DsWOvc0t.js} +1 -1
  265. package/dist/public/sdk/exportKeypairOperation-BazJvSov.js +1 -0
  266. package/dist/{esm/sdk/helpers-BXezXx19.js → public/sdk/helpers-CXqXyyCU.js} +1 -1
  267. package/dist/public/sdk/host-C0Is56lU.js +1 -0
  268. package/dist/public/sdk/icons-DyndJzSh.js +1 -0
  269. package/dist/public/sdk/indexedDB-C1odKEC6.js +1 -0
  270. package/dist/public/sdk/intentDigest-BMXki7yB.js +1 -0
  271. package/dist/public/sdk/{keyMaterialEnvelope-B3v6HLtz.js → keyMaterialEnvelope-B-Q5KTJC.js} +1 -1
  272. package/dist/public/sdk/lanes-C7OvAK_L.js +1 -0
  273. package/dist/public/sdk/localOnly-BB3Rx3J6.js +1 -0
  274. package/dist/public/sdk/mountExportPrivateKeySurface-CV1KrFWg.js +1 -0
  275. package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js → public/sdk/mountRecoveryCodeBackupSurface-CVXU1zzl.js} +2 -2
  276. package/dist/public/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +1 -0
  277. package/dist/public/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +1 -0
  278. package/dist/public/sdk/{nonceLaneKeys-CR2XEvnk.js → nonceLaneKeys-BS4fek17.js} +1 -1
  279. package/dist/public/sdk/{normalization-Ctkj80dW.js → normalization-BN-2VWZf.js} +1 -1
  280. package/dist/public/sdk/{operationFingerprint-DRPONhBD.js → operationFingerprint-Bn0lUYlm.js} +1 -1
  281. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js +1 -0
  282. package/dist/public/sdk/presignaturePool-CultzkOG.js +1 -0
  283. package/dist/public/sdk/{presignatures-DGLNs29C.js → presignatures-B9GrGx0L.js} +1 -1
  284. package/dist/public/sdk/recovery-entrypoint-QBvJBngm.js +1 -0
  285. package/dist/public/sdk/{recoveryAuthorization-BplZWc-N.js → recoveryAuthorization-DB-zxeHq.js} +1 -1
  286. package/dist/public/sdk/registration-CM5a7WYO.js +1 -0
  287. package/dist/public/sdk/registration-Hv0xi7-L.js +1 -0
  288. package/dist/public/sdk/{registrationAccounts-BfO6Ztye.js → registrationAccounts-BHikxS5q.js} +1 -1
  289. package/dist/public/sdk/{registrationAuthMethodInput-DKz6Mgg4.js → registrationAuthMethodInput-BvbWl0y_.js} +1 -1
  290. package/dist/public/sdk/registrationIntent-DTs2SR9E.js +1 -0
  291. package/dist/public/sdk/{registrationSignerPlan-B66FjqIp.js → registrationSignerPlan-CgbFVsAp.js} +1 -1
  292. package/dist/{esm/sdk/requireStepUpAuth-DsNLml1i.js → public/sdk/requireStepUpAuth-B7tC4MrA.js} +1 -1
  293. package/dist/public/sdk/resealedEnvelopeResult--iCVt_Bh.js +1 -0
  294. package/dist/public/sdk/routerAbNormalSigning-Div3lZWV.js +1 -0
  295. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  296. package/dist/public/sdk/runtime-auth-CVw1KoVD.js +1 -0
  297. package/dist/public/sdk/runtime-device-link-Dp0YMZTQ.js +1 -0
  298. package/dist/public/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +1 -0
  299. package/dist/public/sdk/runtime-email-otp-gsr_FsQn.js +1 -0
  300. package/dist/public/sdk/runtime-export-upMPrZ4V.js +1 -0
  301. package/dist/public/sdk/runtime-near-B64Hn3nc.js +1 -0
  302. package/dist/public/sdk/runtime-preferences-CULdHkbg.js +1 -0
  303. package/dist/public/sdk/runtime-recovery-D2saBaJy.js +1 -0
  304. package/dist/public/sdk/runtime-recovery-codes-Bvc0IXMJ.js +1 -0
  305. package/dist/public/sdk/runtimeContext-CNFJjcns.js +6 -0
  306. package/dist/{esm/sdk/sdkSentEvents-BzMVO1AR.js → public/sdk/sdkSentEvents-DUht3AOD.js} +1 -1
  307. package/dist/public/sdk/{secp256k1-CYu8ENjP.js → secp256k1-BGVlx50C.js} +1 -1
  308. package/dist/public/sdk/sessionObservationRevision-84ZzJ-fC.js +1 -0
  309. package/dist/public/sdk/shared-DcHtE-D-.js +1 -0
  310. package/dist/public/sdk/signEvmFamily-PjwUc5MT.js +1 -0
  311. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js → signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js} +1 -1
  312. package/dist/public/sdk/{signEvmWithUiConfirm-lZyPfrGe.js → signEvmWithUiConfirm-BNkupz3z.js} +1 -1
  313. package/dist/public/sdk/signNear-r8VCOoTh.js +1 -0
  314. package/dist/public/sdk/{signatureUses-CY4U-X6V.js → signatureUses-DrqCoN12.js} +1 -1
  315. package/dist/public/sdk/signerDomain-D-EUTlLK.js +1 -0
  316. package/dist/public/sdk/{signerSlot-CpyIfl3J.js → signerSlot-D4ZOuK7e.js} +1 -1
  317. package/dist/{esm/sdk/signingFlow-Co_QtuHK.js → public/sdk/signingFlow-BVvteILM.js} +1 -1
  318. package/dist/public/sdk/{signingQueue-Cj9sCJLj.js → signingQueue-BJzOrwDq.js} +1 -1
  319. package/dist/public/sdk/surface-measurement-reporter-NUm_54LH.js +1 -0
  320. package/dist/{esm/sdk/thresholdEcdsa-LvkD6z8-.js → public/sdk/thresholdEcdsa-tnY83qyG.js} +1 -1
  321. package/dist/public/sdk/{trace-CWTzEALZ.js → trace-CGNqO1FV.js} +1 -1
  322. package/dist/public/sdk/{transaction-activity-CpDMkSPm.js → transaction-activity-DPq9RTh5.js} +1 -1
  323. package/dist/public/sdk/transactionReview-DSGnpreN.js +1 -0
  324. package/dist/public/sdk/transactionReviewAdmission--8tDis7M.js +1 -0
  325. package/dist/{esm/sdk/transactionState-BaFSiA9t.js → public/sdk/transactionState-BS1VLT7B.js} +1 -1
  326. package/dist/public/sdk/tx-confirm-ui.js +418 -109
  327. package/dist/public/sdk/types-DdzuHlAQ.js +1 -0
  328. package/dist/public/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +1 -0
  329. package/dist/public/sdk/voiceid-host.js +1 -0
  330. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  331. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  332. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  333. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  334. package/dist/public/sdk/wallet-recovery-BjIQdOha.js +1 -0
  335. package/dist/public/sdk/wallet-ui.css +1 -1
  336. package/dist/public/sdk/walletAuthMethodRecord-yIqCeE-o.js +1 -0
  337. package/dist/public/sdk/walletCapabilityBindings-CUPk3mVH.js +1 -0
  338. package/dist/public/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +1 -0
  339. package/dist/public/sdk/walletCustodyOperation-DzPcxEBS.js +1 -0
  340. package/dist/public/sdk/walletDbName-DDJXrgA5.js +1 -0
  341. package/dist/public/sdk/walletOwnershipGeneration-DI9ogcXF.js +1 -0
  342. package/dist/public/sdk/walletRecoveryAdminProof-BJxmg3f7.js +1 -0
  343. package/dist/public/sdk/walletRecoveryCommit-B7WsdR7y.js +1 -0
  344. package/dist/public/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +1 -0
  345. package/dist/public/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +1 -0
  346. package/dist/{esm/sdk/walletSessionAuthorizationStore-DYRMCkiT.js → public/sdk/walletSessionAuthorizationStore-zkxcMdSp.js} +1 -1
  347. package/dist/public/sdk/warmSessionHydration-DqZyfi1h.js +1 -0
  348. package/dist/public/sdk/{webauthnP256-unqBoZCk.js → webauthnP256-BvTL8nq4.js} +1 -1
  349. package/dist/public/sdk/workers/device-linking-key.worker.js +93 -5
  350. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +67 -65
  351. package/dist/public/sdk/workers/email-otp.worker.js +93 -4
  352. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +21 -2
  353. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  354. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +20 -2
  355. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  356. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  357. package/dist/public/wallet-assets.manifest.json +503 -240
  358. package/dist/public/wallet-service/index.html +4 -4
  359. package/dist/types/shared-ts/src/authorization/voiceIdDeviceAssertion.d.ts +32 -0
  360. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -1
  361. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +8 -0
  362. package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +4 -4
  363. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +29 -0
  364. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +1 -0
  365. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +2 -2
  366. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +2 -1
  367. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +10 -2
  368. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +2 -2
  369. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +9 -0
  370. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +3 -3
  371. package/dist/types/shared-ts/src/utils/domainIds.d.ts +4 -5
  372. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +0 -1
  373. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -0
  374. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +32 -2
  375. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +15 -1
  376. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +20 -0
  377. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.d.ts +2 -2
  378. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  379. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +1 -1
  380. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +22 -0
  381. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -0
  382. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +2 -0
  383. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/authMenuAnchor.d.ts +17 -0
  384. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -0
  385. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/geometry.d.ts +0 -1
  386. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +2 -1
  387. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +9 -0
  388. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +15 -0
  389. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createRegistrationCommands.d.ts +2 -1
  390. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +7 -2
  391. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +2 -2
  392. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeContext.d.ts +3 -0
  393. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +4 -0
  394. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +0 -1
  395. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +2 -2
  396. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/walletMutationGuard.d.ts +2 -0
  397. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +15 -4
  398. package/dist/types/wallet/src/core/authMethods/availability.d.ts +13 -0
  399. package/dist/types/wallet/src/core/authMethods/availabilityTypes.d.ts +13 -0
  400. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +82 -0
  401. package/dist/types/wallet/src/core/authMethods/hostRegistry.d.ts +5 -0
  402. package/dist/types/wallet/src/core/authMethods/installSession.d.ts +15 -0
  403. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +7 -0
  404. package/dist/types/wallet/src/core/authMethods/prepareEcdsaSession.d.ts +6 -0
  405. package/dist/types/wallet/src/core/authMethods/prepareNearSession.d.ts +18 -0
  406. package/dist/types/wallet/src/core/authMethods/sessionIdentity.d.ts +53 -0
  407. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +11 -1
  408. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +53 -2
  409. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -0
  410. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +1 -1
  411. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportMaterial.d.ts +6 -3
  412. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/ecdsaSelection.d.ts +8 -2
  413. package/dist/types/wallet/src/core/signingEngine/session/availability/availableSigningLanes.d.ts +10 -10
  414. package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +1 -1
  415. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +3 -1
  416. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +16 -4
  417. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +13 -4
  418. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +15 -6
  419. package/dist/types/wallet/src/core/signingEngine/session/operationState/lanes.d.ts +11 -4
  420. package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +3 -3
  421. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.d.ts +6 -0
  422. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodSelection.d.ts +1 -1
  423. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +1 -1
  424. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +6 -0
  425. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +11 -1
  426. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirm-ui-types.d.ts +2 -0
  427. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirmation-model.d.ts +1 -1
  428. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +1 -0
  429. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +4 -0
  430. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +1 -1
  431. package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +2 -2
  432. package/dist/types/wallet/src/core/signingEngine/walletCustody/resealedEnvelopeResult.d.ts +10 -0
  433. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +1 -1
  434. package/dist/types/wallet/src/core/types/seams.d.ts +4 -0
  435. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  436. package/dist/types/wallet/src/externalNear/actions.d.ts +20 -0
  437. package/dist/types/wallet/src/externalNear/boundary.d.ts +7 -0
  438. package/dist/types/wallet/src/externalNear/controller.d.ts +24 -0
  439. package/dist/types/wallet/src/externalNear/hot.d.ts +14 -0
  440. package/dist/types/wallet/src/externalNear/index.d.ts +4 -0
  441. package/dist/types/wallet/src/externalNear/intear.d.ts +13 -0
  442. package/dist/types/wallet/src/externalNear/intearPopup.d.ts +25 -0
  443. package/dist/types/wallet/src/externalNear/message.d.ts +14 -0
  444. package/dist/types/wallet/src/externalNear/meteor.d.ts +19 -0
  445. package/dist/types/wallet/src/externalNear/meteorRequest.d.ts +29 -0
  446. package/dist/types/wallet/src/externalNear/types.d.ts +87 -0
  447. package/dist/types/wallet/src/externalNear/wallets.d.ts +4 -0
  448. package/dist/types/wallet/src/index.d.ts +1 -0
  449. package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -1
  450. package/dist/types/wallet/src/react/components/AccountMenuButton/AddEvmAccount.d.ts +29 -0
  451. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodRow.d.ts +8 -3
  452. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsView.d.ts +1 -2
  453. package/dist/types/wallet/src/react/components/AccountMenuButton/VoiceIdAvailabilityControl.d.ts +19 -0
  454. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ChevronRightIcon.d.ts +2 -0
  455. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/WalletIcon.d.ts +2 -0
  456. package/dist/types/wallet/src/react/externalNear.d.ts +26 -0
  457. package/dist/types/wallet/src/react/index.d.ts +1 -4
  458. package/dist/types/wallet/src/voiceid-host.d.ts +52 -0
  459. package/dist/workers/device-linking-key.worker.js +93 -5
  460. package/dist/workers/ecdsa-derivation-client.worker.js +67 -65
  461. package/dist/workers/email-otp.worker.js +93 -4
  462. package/dist/workers/passkey-mpc-export.worker.js +21 -2
  463. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  464. package/dist/workers/wallet-custody-ceremony.worker.js +20 -2
  465. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  466. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  467. package/package.json +25 -3
  468. package/dist/esm/plugins/SeamsWeb/walletIframe/sanitization.js +0 -18
  469. package/dist/esm/react/components/AccountMenuButton/icons/PlusIcon.js +0 -8
  470. package/dist/esm/react/components/VoiceAssistantCard.css +0 -313
  471. package/dist/esm/react/components/VoiceAssistantCard.js +0 -150
  472. package/dist/esm/sdk/ConfirmationDrawer-Ck33ZmU-.js +0 -1
  473. package/dist/esm/sdk/activeWalletSession-BtEHhe99.js +0 -1
  474. package/dist/esm/sdk/adapters-CgJpSAxH.js +0 -2
  475. package/dist/esm/sdk/appearance-token-vars-BA3KQyEE.js +0 -2
  476. package/dist/esm/sdk/clientSessionPersistenceState-DFGHXoKK.js +0 -1
  477. package/dist/esm/sdk/configBuilder-BMNShuOu.js +0 -1
  478. package/dist/esm/sdk/domainIds-C3fUa33Q.js +0 -1
  479. package/dist/esm/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +0 -1
  480. package/dist/esm/sdk/ecdsaDerivationExport-DrFESeRP.js +0 -1
  481. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +0 -1
  482. package/dist/esm/sdk/exportKeypairOperation-Du9HKB8f.js +0 -1
  483. package/dist/esm/sdk/host-DoftJdVQ.js +0 -1
  484. package/dist/esm/sdk/intentDigest--FZ63NBy.js +0 -1
  485. package/dist/esm/sdk/lanes-l274pbT5.js +0 -1
  486. package/dist/esm/sdk/localOnly-CvFSZFUy.js +0 -1
  487. package/dist/esm/sdk/mountExportPrivateKeySurface-DdJHWwqY.js +0 -1
  488. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +0 -1
  489. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +0 -1
  490. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +0 -1
  491. package/dist/esm/sdk/presignaturePool-DNiA3sgr.js +0 -1
  492. package/dist/esm/sdk/recovery-entrypoint-CNVjXz6A.js +0 -1
  493. package/dist/esm/sdk/registration-CIxJvbTo.js +0 -1
  494. package/dist/esm/sdk/registration-CeOmKyCG.js +0 -1
  495. package/dist/esm/sdk/registrationIntent-DW_kKWlx.js +0 -1
  496. package/dist/esm/sdk/routerAbNormalSigning-DSAfCcND.js +0 -1
  497. package/dist/esm/sdk/runtime-auth-C0V-5znH.js +0 -1
  498. package/dist/esm/sdk/runtime-device-link-B1jpHQSF.js +0 -1
  499. package/dist/esm/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js +0 -1
  500. package/dist/esm/sdk/runtime-email-otp-DXuxFOjL.js +0 -1
  501. package/dist/esm/sdk/runtime-export-Ba12ChDI.js +0 -1
  502. package/dist/esm/sdk/runtime-near-DRrdWzmr.js +0 -1
  503. package/dist/esm/sdk/runtime-preferences-BWyhRaBA.js +0 -1
  504. package/dist/esm/sdk/runtime-recovery-DlJlaZlf.js +0 -1
  505. package/dist/esm/sdk/runtime-recovery-codes-CuqYWqK7.js +0 -1
  506. package/dist/esm/sdk/sessionObservationRevision-abErAhd6.js +0 -1
  507. package/dist/esm/sdk/shared-B95wnpoD.js +0 -6
  508. package/dist/esm/sdk/signEvmFamily-C4XMiSue.js +0 -1
  509. package/dist/esm/sdk/signNear-B_UcqMRf.js +0 -1
  510. package/dist/esm/sdk/signerDomain-YEHkugWX.js +0 -1
  511. package/dist/esm/sdk/surface-measurement-reporter-F-fVB7d3.js +0 -1
  512. package/dist/esm/sdk/transactionReviewAdmission-CNNho8IG.js +0 -1
  513. package/dist/esm/sdk/types-BrEW276O.js +0 -1
  514. package/dist/esm/sdk/wallet-recovery-BEui57xM.js +0 -1
  515. package/dist/esm/sdk/walletAuthMethodRecord-Cv_MYpxt.js +0 -1
  516. package/dist/esm/sdk/walletCapabilityBindings-CKOK39sP.js +0 -1
  517. package/dist/esm/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +0 -1
  518. package/dist/esm/sdk/walletCustodyOperation-BO_tSfGY.js +0 -1
  519. package/dist/esm/sdk/walletDbName-BVZhb4xF.js +0 -1
  520. package/dist/esm/sdk/walletOwnershipGeneration-CQzaodhB.js +0 -1
  521. package/dist/esm/sdk/walletRecoveryAdminProof-CtH8_lph.js +0 -1
  522. package/dist/esm/sdk/walletRecoveryCommit-B_e4k5Pa.js +0 -1
  523. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +0 -1
  524. package/dist/esm/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +0 -1
  525. package/dist/esm/sdk/warmSessionHydration-CY9ofEGr.js +0 -1
  526. package/dist/public/sdk/ConfirmationDrawer-Ck33ZmU-.js +0 -1
  527. package/dist/public/sdk/activeWalletSession-BtEHhe99.js +0 -1
  528. package/dist/public/sdk/adapters-CgJpSAxH.js +0 -2
  529. package/dist/public/sdk/appearance-token-vars-BA3KQyEE.js +0 -2
  530. package/dist/public/sdk/clientSessionPersistenceState-DFGHXoKK.js +0 -1
  531. package/dist/public/sdk/configBuilder-BMNShuOu.js +0 -1
  532. package/dist/public/sdk/domainIds-C3fUa33Q.js +0 -1
  533. package/dist/public/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +0 -1
  534. package/dist/public/sdk/ecdsaDerivationExport-DrFESeRP.js +0 -1
  535. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +0 -1
  536. package/dist/public/sdk/exportKeypairOperation-Du9HKB8f.js +0 -1
  537. package/dist/public/sdk/host-DoftJdVQ.js +0 -1
  538. package/dist/public/sdk/intentDigest--FZ63NBy.js +0 -1
  539. package/dist/public/sdk/lanes-l274pbT5.js +0 -1
  540. package/dist/public/sdk/localOnly-CvFSZFUy.js +0 -1
  541. package/dist/public/sdk/mountExportPrivateKeySurface-DdJHWwqY.js +0 -1
  542. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +0 -1
  543. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +0 -1
  544. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +0 -1
  545. package/dist/public/sdk/presignaturePool-DNiA3sgr.js +0 -1
  546. package/dist/public/sdk/recovery-entrypoint-CNVjXz6A.js +0 -1
  547. package/dist/public/sdk/registration-CIxJvbTo.js +0 -1
  548. package/dist/public/sdk/registration-CeOmKyCG.js +0 -1
  549. package/dist/public/sdk/registrationIntent-DW_kKWlx.js +0 -1
  550. package/dist/public/sdk/routerAbNormalSigning-DSAfCcND.js +0 -1
  551. package/dist/public/sdk/runtime-auth-C0V-5znH.js +0 -1
  552. package/dist/public/sdk/runtime-device-link-B1jpHQSF.js +0 -1
  553. package/dist/public/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js +0 -1
  554. package/dist/public/sdk/runtime-email-otp-DXuxFOjL.js +0 -1
  555. package/dist/public/sdk/runtime-export-Ba12ChDI.js +0 -1
  556. package/dist/public/sdk/runtime-near-DRrdWzmr.js +0 -1
  557. package/dist/public/sdk/runtime-preferences-BWyhRaBA.js +0 -1
  558. package/dist/public/sdk/runtime-recovery-DlJlaZlf.js +0 -1
  559. package/dist/public/sdk/runtime-recovery-codes-CuqYWqK7.js +0 -1
  560. package/dist/public/sdk/sessionObservationRevision-abErAhd6.js +0 -1
  561. package/dist/public/sdk/shared-B95wnpoD.js +0 -6
  562. package/dist/public/sdk/signEvmFamily-C4XMiSue.js +0 -1
  563. package/dist/public/sdk/signNear-B_UcqMRf.js +0 -1
  564. package/dist/public/sdk/signerDomain-YEHkugWX.js +0 -1
  565. package/dist/public/sdk/surface-measurement-reporter-F-fVB7d3.js +0 -1
  566. package/dist/public/sdk/transactionReviewAdmission-CNNho8IG.js +0 -1
  567. package/dist/public/sdk/types-BrEW276O.js +0 -1
  568. package/dist/public/sdk/wallet-recovery-BEui57xM.js +0 -1
  569. package/dist/public/sdk/walletAuthMethodRecord-Cv_MYpxt.js +0 -1
  570. package/dist/public/sdk/walletCapabilityBindings-CKOK39sP.js +0 -1
  571. package/dist/public/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +0 -1
  572. package/dist/public/sdk/walletCustodyOperation-BO_tSfGY.js +0 -1
  573. package/dist/public/sdk/walletDbName-BVZhb4xF.js +0 -1
  574. package/dist/public/sdk/walletOwnershipGeneration-CQzaodhB.js +0 -1
  575. package/dist/public/sdk/walletRecoveryAdminProof-CtH8_lph.js +0 -1
  576. package/dist/public/sdk/walletRecoveryCommit-B_e4k5Pa.js +0 -1
  577. package/dist/public/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +0 -1
  578. package/dist/public/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +0 -1
  579. package/dist/public/sdk/warmSessionHydration-CY9ofEGr.js +0 -1
  580. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/PlusIcon.d.ts +0 -2
  581. package/dist/types/wallet/src/react/components/VoiceAssistantCard.d.ts +0 -37
  582. package/dist/types/wallet/src/react/components/VoiceAssistantCard.typecheck.d.ts +0 -2
  583. /package/dist/esm/sdk/{accountIds-BzZs7YoX.js → accountIds-D5NI31F2.js} +0 -0
  584. /package/dist/esm/sdk/{appearance-ZGVLwA4N.js → appearance-DVFno9Tv.js} +0 -0
  585. /package/dist/esm/sdk/{authenticatorOptions-BB_sU4uA.js → authenticatorOptions-EF_Rps52.js} +0 -0
  586. /package/dist/esm/sdk/{authorizationAdmission-D7nx2n4d.js → authorizationAdmission-DbhNiY3X.js} +0 -0
  587. /package/dist/esm/sdk/{browser-DkCRXFkk.js → browser-B2RI00tM.js} +0 -0
  588. /package/dist/esm/sdk/{bytes-Cv07P0Pu.js → bytes-DVe42j_r.js} +0 -0
  589. /package/dist/esm/sdk/{canonicalSignerErrorCode-CqHi6ji6.js → canonicalSignerErrorCode-AwNMAn8S.js} +0 -0
  590. /package/dist/esm/sdk/{errors-CI1xdN0d.js → errors-ADOZT8oV.js} +0 -0
  591. /package/dist/esm/sdk/{executeWorkerOperation-S6glYwAs.js → executeWorkerOperation-B-9JuL55.js} +0 -0
  592. /package/dist/esm/sdk/{jsonRpc-B5zMY6lE.js → jsonRpc-CHutSlC9.js} +0 -0
  593. /package/dist/esm/sdk/{keccak-CaPOCznk.js → keccak-C9kCkZem.js} +0 -0
  594. /package/dist/esm/sdk/{normalization-CpLZcL2f.js → normalization-DtruiNPw.js} +0 -0
  595. /package/dist/esm/sdk/{prfCache-D25ZCg5n.js → prfCache-8Wm3etlV.js} +0 -0
  596. /package/dist/esm/sdk/{profileAccountProjection-C1z9sKHa.js → profileAccountProjection-D01e10UY.js} +0 -0
  597. /package/dist/esm/sdk/{promptText-D2f5Rg0h.js → promptText-Bz3YRl9D.js} +0 -0
  598. /package/dist/esm/sdk/{signer-worker-Bh_5foqX.js → signer-worker-DlK58rEA.js} +0 -0
  599. /package/dist/esm/sdk/{types-BNUuaUtl.js → types-fJKfUgTi.js} +0 -0
  600. /package/dist/esm/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  601. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-UdGeS6x3.js → walletSessionAuthorizationProjection-BJgnZaBc.js} +0 -0
  602. /package/dist/esm/sdk/{walletSessionFailure-Ct412mDZ.js → walletSessionFailure-CLUIF3Eh.js} +0 -0
  603. /package/dist/esm/sdk/{webauthnPromptCoordinator-CBkTiMP0.js → webauthnPromptCoordinator-CU9ag7vz.js} +0 -0
  604. /package/dist/public/sdk/{accountIds-BzZs7YoX.js → accountIds-D5NI31F2.js} +0 -0
  605. /package/dist/public/sdk/{appearance-ZGVLwA4N.js → appearance-DVFno9Tv.js} +0 -0
  606. /package/dist/public/sdk/{authenticatorOptions-BB_sU4uA.js → authenticatorOptions-EF_Rps52.js} +0 -0
  607. /package/dist/public/sdk/{authorizationAdmission-D7nx2n4d.js → authorizationAdmission-DbhNiY3X.js} +0 -0
  608. /package/dist/public/sdk/{browser-DkCRXFkk.js → browser-B2RI00tM.js} +0 -0
  609. /package/dist/public/sdk/{bytes-Cv07P0Pu.js → bytes-DVe42j_r.js} +0 -0
  610. /package/dist/public/sdk/{canonicalSignerErrorCode-CqHi6ji6.js → canonicalSignerErrorCode-AwNMAn8S.js} +0 -0
  611. /package/dist/public/sdk/{errors-CI1xdN0d.js → errors-ADOZT8oV.js} +0 -0
  612. /package/dist/public/sdk/{executeWorkerOperation-S6glYwAs.js → executeWorkerOperation-B-9JuL55.js} +0 -0
  613. /package/dist/public/sdk/{jsonRpc-B5zMY6lE.js → jsonRpc-CHutSlC9.js} +0 -0
  614. /package/dist/public/sdk/{keccak-CaPOCznk.js → keccak-C9kCkZem.js} +0 -0
  615. /package/dist/public/sdk/{normalization-CpLZcL2f.js → normalization-DtruiNPw.js} +0 -0
  616. /package/dist/public/sdk/{prfCache-D25ZCg5n.js → prfCache-8Wm3etlV.js} +0 -0
  617. /package/dist/public/sdk/{profileAccountProjection-C1z9sKHa.js → profileAccountProjection-D01e10UY.js} +0 -0
  618. /package/dist/public/sdk/{promptText-D2f5Rg0h.js → promptText-Bz3YRl9D.js} +0 -0
  619. /package/dist/public/sdk/{signer-worker-Bh_5foqX.js → signer-worker-DlK58rEA.js} +0 -0
  620. /package/dist/public/sdk/{types-BNUuaUtl.js → types-fJKfUgTi.js} +0 -0
  621. /package/dist/public/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  622. /package/dist/public/sdk/{walletSessionAuthorizationProjection-UdGeS6x3.js → walletSessionAuthorizationProjection-BJgnZaBc.js} +0 -0
  623. /package/dist/public/sdk/{walletSessionFailure-Ct412mDZ.js → walletSessionFailure-CLUIF3Eh.js} +0 -0
  624. /package/dist/public/sdk/{webauthnPromptCoordinator-CBkTiMP0.js → webauthnPromptCoordinator-CU9ag7vz.js} +0 -0
@@ -0,0 +1,94 @@
1
+ import { requireRecord, requireTrimmedString } from "../../../../shared-ts/src/utils/validation.js";
2
+ import { parseThresholdEd25519SessionId } from "../../../../shared-ts/src/utils/domainIds.js";
3
+ import { normalizeRuntimePolicyScope } from "../../../../shared-ts/src/threshold/signingRootScope.js";
4
+ import { routerAbMpcMaterialActivationRefFromWire } from "../../../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
5
+ import { parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 } from "../../../../shared-ts/src/utils/routerAbEd25519Yao.js";
6
+ import { toAccountId } from "../../../types/accountIds.js";
7
+ //#region src/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.ts
8
+ function requirePositiveInteger(value, label) {
9
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1) throw new Error(`${label} must be a positive integer`);
10
+ return value;
11
+ }
12
+ function requireThresholdEd25519SessionId(value, label) {
13
+ const parsed = parseThresholdEd25519SessionId(value);
14
+ if (!parsed.ok) throw new Error(`${label} is invalid`);
15
+ return parsed.value;
16
+ }
17
+ function requireBytes32(value, label) {
18
+ if (!Array.isArray(value) || value.length !== 32) throw new Error(`${label} must contain exactly 32 bytes`);
19
+ const bytes = [];
20
+ for (const byte of value) {
21
+ if (typeof byte !== "number" || !Number.isInteger(byte) || byte < 0 || byte > 255) throw new Error(`${label} must contain exactly 32 bytes`);
22
+ bytes.push(byte);
23
+ }
24
+ return Object.freeze(bytes);
25
+ }
26
+ function requireBytes(value, label) {
27
+ if (!Array.isArray(value) || value.length === 0) throw new Error(`${label} must contain bytes`);
28
+ return value.map((byte) => {
29
+ if (typeof byte !== "number" || !Number.isInteger(byte) || byte < 0 || byte > 255) throw new Error(`${label} must contain bytes`);
30
+ return byte;
31
+ });
32
+ }
33
+ function requireParticipantIds(value) {
34
+ if (!Array.isArray(value) || value.length !== 2 || !Number.isSafeInteger(value[0]) || !Number.isSafeInteger(value[1]) || value[0] < 1 || value[1] < 1 || value[0] === value[1]) throw new Error("participantIds must contain two distinct positive integers");
35
+ return [Number(value[0]), Number(value[1])];
36
+ }
37
+ function parseRegistrationContinuity(value) {
38
+ const record = requireRecord(value, "capability.registrationContinuity");
39
+ if (record.kind === "recovery") return {
40
+ kind: "recovery",
41
+ activationTranscript: requireBytes(record.activationTranscript, "capability.registrationContinuity.activationTranscript")
42
+ };
43
+ if (record.kind !== "registration") throw new Error("capability.registrationContinuity kind is invalid");
44
+ const admissionRequest = parseRouterAbEd25519YaoRegistrationAdmissionRequestV1(record.admissionRequest);
45
+ const admissionReceipt = parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1(record.admissionReceipt);
46
+ if (!admissionRequest.ok) throw new Error(`capability registration continuity transcript is invalid: ${admissionRequest.message}`);
47
+ if (!admissionReceipt.ok) throw new Error(`capability registration continuity transcript is invalid: ${admissionReceipt.message}`);
48
+ return {
49
+ kind: "registration",
50
+ admissionRequest: admissionRequest.value,
51
+ admissionReceipt: admissionReceipt.value,
52
+ activationTranscript: requireBytes(record.activationTranscript, "capability.registrationContinuity.activationTranscript")
53
+ };
54
+ }
55
+ function parseEd25519YaoRecoveryCapabilityV1(raw) {
56
+ const record = requireRecord(raw, "capability");
57
+ if (record.kind !== "router_ab_ed25519_yao_active_capability_v1") throw new Error("Yao recovery capability kind is invalid");
58
+ const application = requireRecord(record.applicationBinding, "capability.applicationBinding");
59
+ const lifecycle = requireRecord(record.lifecycle, "capability.lifecycle");
60
+ let materialActivation;
61
+ try {
62
+ materialActivation = routerAbMpcMaterialActivationRefFromWire(record.materialActivation);
63
+ } catch (error) {
64
+ throw new Error(`capability.materialActivation is invalid: ${error instanceof Error ? error.message : String(error)}`);
65
+ }
66
+ return {
67
+ materialActivation,
68
+ activeCapabilityBinding: requireBytes32(record.activeCapabilityBinding, "capability.activeCapabilityBinding"),
69
+ registeredPublicKey: requireBytes32(record.registeredPublicKey, "capability.registeredPublicKey"),
70
+ nearAccountId: toAccountId(requireTrimmedString(record.nearAccountId, "capability.nearAccountId")),
71
+ applicationBinding: {
72
+ wallet_id: requireTrimmedString(application.wallet_id, "applicationBinding.wallet_id"),
73
+ near_ed25519_signing_key_id: requireTrimmedString(application.near_ed25519_signing_key_id, "applicationBinding.near_ed25519_signing_key_id"),
74
+ signing_root_id: requireTrimmedString(application.signing_root_id, "applicationBinding.signing_root_id"),
75
+ key_creation_signer_slot: requirePositiveInteger(application.key_creation_signer_slot, "applicationBinding.key_creation_signer_slot")
76
+ },
77
+ participantIds: requireParticipantIds(record.participantIds),
78
+ runtimePolicyScope: normalizeRuntimePolicyScope(requireRecord(record.runtimePolicyScope, "capability.runtimePolicyScope")),
79
+ lifecycle: {
80
+ lifecycleId: requireTrimmedString(lifecycle.lifecycleId, "lifecycle.lifecycleId"),
81
+ rootShareEpoch: requireTrimmedString(lifecycle.rootShareEpoch, "lifecycle.rootShareEpoch"),
82
+ accountId: requireTrimmedString(lifecycle.accountId, "lifecycle.accountId"),
83
+ thresholdSessionId: requireThresholdEd25519SessionId(requireTrimmedString(lifecycle.thresholdSessionId, "lifecycle.thresholdSessionId"), "lifecycle.thresholdSessionId"),
84
+ signerSetId: requireTrimmedString(lifecycle.signerSetId, "lifecycle.signerSetId"),
85
+ signingWorkerId: requireTrimmedString(lifecycle.signingWorkerId, "lifecycle.signingWorkerId")
86
+ },
87
+ stateEpoch: requirePositiveInteger(record.stateEpoch, "capability.stateEpoch"),
88
+ registrationContinuity: parseRegistrationContinuity(record.registrationContinuity)
89
+ };
90
+ }
91
+ //#endregion
92
+ export { parseEd25519YaoRecoveryCapabilityV1 };
93
+
94
+ //# sourceMappingURL=ed25519YaoRecoveryCapability.js.map
@@ -11,6 +11,7 @@ var StepUpMethodSelectionError = class extends Error {
11
11
  };
12
12
  function methodFromPolicy(selectedLane, policy) {
13
13
  if (policy.kind === "reuse_warm_session") return "warm_session";
14
+ if (selectedLane.authMethod === "voiceid") throw new Error("Unlock with VoiceID again before signing.");
14
15
  if (policy.kind === "force_method") return policy.method;
15
16
  return selectedLane.authMethod;
16
17
  }
@@ -63,6 +63,8 @@ const HUG_TOLERANCE_CSS_PX = 1;
63
63
  const ANNOUNCE_SAFETY_MS = 1500;
64
64
  /** Height changes below this are not worth a motion, and round to nothing. */
65
65
  const MIN_ANNOUNCED_DELTA_CSS_PX = 1;
66
+ /** How long a surface that no host resizes takes to ease to its new height. */
67
+ const OWN_RESIZE_MS = 200;
66
68
  /**
67
69
  * Offer a height change to the surrounding surface before making it.
68
70
  *
@@ -146,7 +148,7 @@ function createSurfaceHeightReflow(args) {
146
148
  element.classList.remove(CONFIRM_SURFACE_HEIGHT_DRIVEN_CLASS);
147
149
  const toCssPx = element.getBoundingClientRect().height;
148
150
  element.classList.add(CONFIRM_SURFACE_HEIGHT_DRIVEN_CLASS);
149
- if (!announceClampedSurfaceResize({
151
+ if (announceClampedSurfaceResize({
150
152
  ...args.reason ? { reason: args.reason } : {},
151
153
  element,
152
154
  fromCssPx,
@@ -155,13 +157,28 @@ function createSurfaceHeightReflow(args) {
155
157
  onSettled: () => {
156
158
  clampedElement = null;
157
159
  }
158
- })) release();
160
+ })) return;
161
+ release();
162
+ easeOwnHeight(element, fromCssPx, toCssPx);
159
163
  });
160
164
  },
161
165
  dispose: release
162
166
  };
163
167
  }
164
168
  /**
169
+ * With no host to ease the box, the element eases its own height, on the auth
170
+ * menu's resize duration and settle curve, so a change of content never snaps
171
+ * the card. Reduced motion keeps the snap.
172
+ */
173
+ function easeOwnHeight(element, fromCssPx, toCssPx) {
174
+ if (Math.abs(toCssPx - fromCssPx) < MIN_ANNOUNCED_DELTA_CSS_PX) return;
175
+ if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
176
+ element.animate([{ height: `${fromCssPx}px` }, { height: `${toCssPx}px` }], {
177
+ duration: OWN_RESIZE_MS,
178
+ easing: "cubic-bezier(0.32, 0.72, 0, 1)"
179
+ });
180
+ }
181
+ /**
165
182
  * Clamp an element at its pre-change height, announce the change, and release
166
183
  * the clamp when the motion lands. This is the call every height change in a
167
184
  * confirmation goes through, because the clamp has to be in place *before* the
@@ -69,6 +69,7 @@ function normalizeConfirmationModel(input) {
69
69
  appearance: input.appearance,
70
70
  content: {
71
71
  kind: "transaction",
72
+ capture: source.authMethodCapture ?? null,
72
73
  review: {
73
74
  model: source.model ?? null,
74
75
  tree: input.tree
@@ -97,7 +98,8 @@ function normalizeConfirmationModel(input) {
97
98
  cancelText,
98
99
  errorMessage,
99
100
  onCancel: input.callbacks.cancel,
100
- onBack: source.onBack
101
+ onBack: source.onBack,
102
+ authMethodApprovalMessage: source.authMethodApprovalMessage
101
103
  }
102
104
  }
103
105
  }
@@ -104,6 +104,12 @@ var ConfirmContent = class extends Component {
104
104
  onCopy: this.props.onCopy
105
105
  })
106
106
  }),
107
+ this.props.authMethodApprovalMessage && /* @__PURE__ */ jsx("p", {
108
+ class: "seams-voiceid-instructions",
109
+ "data-seams-voice-id": "required",
110
+ role: "status",
111
+ children: this.props.authMethodApprovalMessage
112
+ }),
107
113
  /* @__PURE__ */ jsxs("div", {
108
114
  class: "actions",
109
115
  children: [!this.props.cancelInHeader && /* @__PURE__ */ jsx("button", {
@@ -65,35 +65,25 @@ var ConfirmationContent = class extends Component {
65
65
  kind: "form",
66
66
  formId: this.otpFormId
67
67
  } : model.transaction.decision;
68
+ if (model.capture) return /* @__PURE__ */ jsx("div", {
69
+ ref: this.root,
70
+ class: contentClass,
71
+ children: /* @__PURE__ */ jsxs("div", {
72
+ class: "seams-review-content seams-review-content--capture",
73
+ children: [
74
+ this.props.variant !== "drawer" && this.renderToolbar(model, decision),
75
+ /* @__PURE__ */ jsx(AuthMethodCapture, { element: model.capture }),
76
+ /* @__PURE__ */ jsx(WalletReceiptFooter, {})
77
+ ]
78
+ })
79
+ });
68
80
  return /* @__PURE__ */ jsx("div", {
69
81
  ref: this.root,
70
82
  class: contentClass,
71
83
  children: /* @__PURE__ */ jsxs("div", {
72
84
  class: "seams-review-content",
73
85
  children: [
74
- this.props.variant !== "drawer" && /* @__PURE__ */ jsxs("div", {
75
- class: "seams-review-toolbar",
76
- children: [/* @__PURE__ */ jsxs("div", {
77
- class: "seams-review-origin",
78
- children: [
79
- model.transaction.onBack && /* @__PURE__ */ jsx("button", {
80
- type: "button",
81
- "aria-label": walletText(this.context, "Back to review"),
82
- title: walletText(this.context, "Back to review"),
83
- disabled: decision.kind === "preparing",
84
- onClick: model.transaction.onBack,
85
- children: /* @__PURE__ */ jsx(ReviewIcon, { kind: "back" })
86
- }),
87
- /* @__PURE__ */ jsx(PadlockIcon, {}),
88
- model.header.website.kind === "ready" ? model.header.website.text : /* @__PURE__ */ jsx(LoadingStatus, { label: walletText(this.context, "Loading website") })
89
- ]
90
- }), /* @__PURE__ */ jsx("button", {
91
- type: "button",
92
- "aria-label": walletDisplayText(this.context, model.transaction.cancelText),
93
- onClick: model.transaction.onCancel,
94
- children: /* @__PURE__ */ jsx(ReviewIcon, { kind: "close" })
95
- })]
96
- }),
86
+ this.props.variant !== "drawer" && this.renderToolbar(model, decision),
97
87
  model.review.model && /* @__PURE__ */ jsx("div", {
98
88
  class: "seams-review-eyebrow",
99
89
  children: model.review.model.operations.length === 1 ? /* @__PURE__ */ jsx(WalletText, { copy: model.review.model.operations[0].label.replace(/\s+using\s+[\d,.]+\s+gas$/i, "") }) : /* @__PURE__ */ jsx(WalletText, { message: "Transaction" })
@@ -126,11 +116,57 @@ var ConfirmationContent = class extends Component {
126
116
  })
127
117
  });
128
118
  }
119
+ /** The origin the request came from, with the review's back and close controls. */
120
+ renderToolbar(model, decision) {
121
+ return /* @__PURE__ */ jsxs("div", {
122
+ class: "seams-review-toolbar",
123
+ children: [/* @__PURE__ */ jsxs("div", {
124
+ class: "seams-review-origin",
125
+ children: [
126
+ model.transaction.onBack && /* @__PURE__ */ jsx("button", {
127
+ type: "button",
128
+ "aria-label": walletText(this.context, "Back to review"),
129
+ title: walletText(this.context, "Back to review"),
130
+ disabled: decision.kind === "preparing",
131
+ onClick: model.transaction.onBack,
132
+ children: /* @__PURE__ */ jsx(ReviewIcon, { kind: "back" })
133
+ }),
134
+ /* @__PURE__ */ jsx(PadlockIcon, {}),
135
+ model.header.website.kind === "ready" ? model.header.website.text : /* @__PURE__ */ jsx(LoadingStatus, { label: walletText(this.context, "Loading website") })
136
+ ]
137
+ }), /* @__PURE__ */ jsx("button", {
138
+ type: "button",
139
+ "aria-label": walletDisplayText(this.context, model.transaction.cancelText),
140
+ onClick: model.transaction.onCancel,
141
+ children: /* @__PURE__ */ jsx(ReviewIcon, { kind: "close" })
142
+ })]
143
+ });
144
+ }
129
145
  };
130
146
  function ignoreCopyFailure() {}
131
147
  function assertNever(value) {
132
148
  throw new Error(`Unexpected confirmation content: ${String(value)}`);
133
149
  }
150
+ /** The lazy auth plugin owns its contents; the Wallet retains the modal and cancellation. */
151
+ var AuthMethodCapture = class extends Component {
152
+ container = createRef();
153
+ componentDidMount() {
154
+ this.container.current?.append(this.props.element);
155
+ this.props.element.querySelector("button")?.focus();
156
+ }
157
+ componentDidUpdate(previous) {
158
+ if (previous.element !== this.props.element) this.container.current?.replaceChildren(this.props.element);
159
+ }
160
+ componentWillUnmount() {
161
+ this.props.element.remove();
162
+ }
163
+ render() {
164
+ return /* @__PURE__ */ jsx("div", {
165
+ ref: this.container,
166
+ class: "seams-auth-method-capture"
167
+ });
168
+ }
169
+ };
134
170
  //#endregion
135
171
  export { ConfirmationContent };
136
172
 
@@ -33,11 +33,24 @@ var ReviewDisclosure = class extends Component {
33
33
  confirmationDocumentStyles(details.ownerDocument).setDynamicDeclarations(this.id, `#${this.id}`, { "--seams-review-disclosure-height": `${height}px` });
34
34
  };
35
35
  finish = () => {
36
+ const local = this.motion?.kind === "local";
36
37
  if (this.root.current && this.motion) {
37
38
  this.root.current.open = this.motion.opening;
38
39
  this.root.current.removeAttribute("data-closing");
39
40
  }
40
41
  this.clearMotion();
42
+ if (local) {
43
+ const surface = this.root.current?.closest(".seams-confirmation-surface");
44
+ const focused = surface?.ownerDocument.activeElement;
45
+ if (focused instanceof HTMLElement && focused.tabIndex >= 0 && surface?.contains(focused)) {
46
+ const bounds = focused.getBoundingClientRect();
47
+ const viewportHeight = focused.ownerDocument.documentElement.clientHeight;
48
+ if (bounds.top < 0 || bounds.bottom > viewportHeight) focused.scrollIntoView({
49
+ block: "center",
50
+ inline: "nearest"
51
+ });
52
+ }
53
+ }
41
54
  };
42
55
  toggle = (event) => {
43
56
  const details = this.root.current;
@@ -16,7 +16,6 @@ function ReviewIcon({ kind }) {
16
16
  minimize: "M5 12h14",
17
17
  check: "m5 12 4 4L19 6",
18
18
  arrow: "M7 17 17 7M7 7h10v10",
19
- shield: "M12 3 4.5 6v5.5c0 4.2 2.7 7.4 7.5 9.5 4.8-2.1 7.5-5.3 7.5-9.5V6L12 3Z M8.5 11.5l2.5 2.5 4.5-5",
20
19
  copy: "M8 8h12v12H8ZM4 16V4h12",
21
20
  loader: "M12 3a9 9 0 1 1-9 9",
22
21
  alert: "M12 8v5m0 3v.1M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0",
@@ -35,6 +34,8 @@ function ReviewIcon({ kind }) {
35
34
  }
36
35
  function reviewNetwork(model) {
37
36
  if (!model) return "Wallet transaction";
37
+ if (model.chain === "evm" && model.chainId === 5042) return "Arc";
38
+ if (model.chain === "evm" && model.chainId === 5042002) return "Arc Testnet";
38
39
  if (model.chain === "evm" && model.chainId === 8453) return "Base";
39
40
  if (model.chain === "evm" && model.chainId === 84532) return "Base Sepolia";
40
41
  if (model.chain === "evm" && model.chainId === 1) return "Ethereum";
@@ -57,6 +58,27 @@ function ReviewMiddleTruncated({ value, class: className }) {
57
58
  });
58
59
  }
59
60
  function TokenIcon({ symbol }) {
61
+ if (symbol === "NEAR") return /* @__PURE__ */ jsxs("svg", {
62
+ class: "seams-review-token",
63
+ viewBox: "0 0 48 48",
64
+ "aria-hidden": "true",
65
+ children: [/* @__PURE__ */ jsx("circle", {
66
+ cx: "24",
67
+ cy: "24",
68
+ r: "24",
69
+ fill: "#000"
70
+ }), /* @__PURE__ */ jsx("svg", {
71
+ x: "9",
72
+ y: "9",
73
+ width: "30",
74
+ height: "30",
75
+ viewBox: "108 108 351 351",
76
+ children: /* @__PURE__ */ jsx("path", {
77
+ d: "m421.61,108c-13,0-25.07,6.74-31.88,17.82l-73.37,108.93c-2.39,3.59-1.42,8.43,2.17,10.82,2.91,1.94,6.76,1.7,9.41-.58l72.22-62.64c1.2-1.08,3.05-.97,4.13.23.49.55.75,1.26.75,1.99v196.12c0,1.62-1.31,2.92-2.93,2.92-.87,0-1.69-.38-2.24-1.05L181.56,121.24c-7.11-8.39-17.55-13.23-28.54-13.24h-7.63c-20.65,0-37.39,16.74-37.39,37.39v276.22c0,20.65,16.74,37.39,37.39,37.39,13,0,25.07-6.74,31.88-17.82l73.37-108.93c2.39-3.59,1.42-8.43-2.17-10.82-2.91-1.94-6.76-1.7-9.41.58l-72.22,62.64c-1.2,1.08-3.05.97-4.13-.23-.49-.55-.75-1.26-.74-1.99v-196.17c0-1.62,1.31-2.92,2.93-2.92.86,0,1.69.38,2.24,1.05l218.28,261.37c7.11,8.39,17.55,13.23,28.54,13.24h7.63c20.65.01,37.4-16.72,37.42-37.37V145.39c0-20.65-16.74-37.39-37.39-37.39Z",
78
+ fill: "#fff"
79
+ })
80
+ })]
81
+ });
60
82
  if (symbol === "ETH") return /* @__PURE__ */ jsxs("svg", {
61
83
  class: "seams-review-token",
62
84
  viewBox: "0 0 42 42",
@@ -84,19 +106,27 @@ function TokenIcon({ symbol }) {
84
106
  });
85
107
  if (symbol === "USDC") return /* @__PURE__ */ jsxs("svg", {
86
108
  class: "seams-review-token",
87
- viewBox: "0 0 42 42",
109
+ viewBox: "0 0 96 96",
110
+ fill: "none",
88
111
  "aria-hidden": "true",
89
- children: [/* @__PURE__ */ jsx("circle", {
90
- cx: "21",
91
- cy: "21",
92
- r: "21",
93
- fill: "#2775ca"
94
- }), /* @__PURE__ */ jsx("path", {
95
- d: "M17 8a14 14 0 0 0 0 26M25 8a14 14 0 0 1 0 26M26 15c-1-4-10-4-10 1 0 5 10 3 10 8 0 5-9 5-11 1M21 10v4m0 14v4",
96
- fill: "none",
97
- stroke: "white",
98
- "stroke-width": "2"
99
- })]
112
+ children: [
113
+ /* @__PURE__ */ jsx("path", {
114
+ d: "M48 95C73.9574 95 95 73.9574 95 48C95 22.0426 73.9574 1 48 1C22.0426 1 1 22.0426 1 48C1 73.9574 22.0426 95 48 95Z",
115
+ fill: "#0B53BF"
116
+ }),
117
+ /* @__PURE__ */ jsx("path", {
118
+ d: "M56.4609 13.7778V19.8291C68.5341 23.4716 77.3759 34.6928 77.3759 47.9997C77.3759 61.3066 68.5341 72.5278 56.4609 76.1703V82.2216C71.8534 78.4616 83.2509 64.5672 83.2509 47.9997C83.2509 31.4322 71.8534 17.5378 56.4609 13.7778Z",
119
+ fill: "white"
120
+ }),
121
+ /* @__PURE__ */ jsx("path", {
122
+ d: "M18.625 47.9997C18.625 34.6928 27.4669 23.4716 39.54 19.8291V13.7778C24.1475 17.5378 12.75 31.4322 12.75 47.9997C12.75 64.5672 24.1475 78.4616 39.54 82.2216V76.1703C27.4669 72.5572 18.625 61.3066 18.625 47.9997Z",
123
+ fill: "white"
124
+ }),
125
+ /* @__PURE__ */ jsx("path", {
126
+ d: "M60.6319 54.5506C60.6319 42.5362 41.8025 47.4713 41.8025 40.8325C41.8025 38.4531 43.7119 36.9256 47.3544 36.9256C51.7019 36.9256 53.2 39.0406 53.67 41.89H59.6625C59.1279 36.5426 56.0588 33.1662 50.9382 32.1604V27.4375H45.0632V31.9918C39.4534 32.7062 35.9275 35.973 35.9275 40.8325C35.9275 52.9056 54.7863 48.3819 54.7863 54.9031C54.7863 57.3706 52.4069 59.0156 48.3825 59.0156C43.1244 59.0156 41.3913 56.695 40.745 53.4931H34.8994C35.2781 59.3502 38.8897 63.0159 45.0632 63.9307V68.5625H50.9382V63.9923C56.9633 63.2139 60.6319 59.7089 60.6319 54.5506Z",
127
+ fill: "white"
128
+ })
129
+ ]
100
130
  });
101
131
  return /* @__PURE__ */ jsx("span", {
102
132
  class: "seams-review-token seams-review-token-fallback",
@@ -109,7 +139,7 @@ function ReviewAmount({ model, compact = false }) {
109
139
  if (!amount) return null;
110
140
  return /* @__PURE__ */ jsxs("div", {
111
141
  class: `seams-review-amount${compact ? " seams-review-amount--compact" : ""}`,
112
- children: [!compact && /* @__PURE__ */ jsx(TokenIcon, { symbol: amount.symbol }), /* @__PURE__ */ jsxs("div", { children: [
142
+ children: [/* @__PURE__ */ jsx(TokenIcon, { symbol: amount.symbol }), /* @__PURE__ */ jsxs("div", { children: [
113
143
  /* @__PURE__ */ jsx("span", { children: amount.value }),
114
144
  " ",
115
145
  /* @__PURE__ */ jsx("small", { children: amount.symbol })
@@ -120,8 +150,6 @@ function WalletReceiptFooter() {
120
150
  return /* @__PURE__ */ jsxs("div", {
121
151
  class: "seams-receipt-footer",
122
152
  children: [
123
- /* @__PURE__ */ jsx(ReviewIcon, { kind: "shield" }),
124
- " ",
125
153
  /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { message: "Secured by" }) }),
126
154
  " ",
127
155
  /* @__PURE__ */ jsx(SeamsWordmark, {})
@@ -141,6 +169,10 @@ function reviewAmount(model) {
141
169
  value: decimalUnits(total.nativeValue, 24),
142
170
  symbol: "NEAR"
143
171
  };
172
+ if (model?.chain === "evm" && (model.chainId === 5042 || model.chainId === 5042002) && total.nativeSymbol === "wei") return {
173
+ value: decimalUnits(total.nativeValue, 18),
174
+ symbol: "USDC"
175
+ };
144
176
  return {
145
177
  value: total.nativeValue,
146
178
  symbol: total.nativeSymbol ?? ""
@@ -12,12 +12,24 @@ import { render } from "preact";
12
12
  import { Fragment as Fragment$1, jsx, jsxs } from "preact/jsx-runtime";
13
13
  //#region src/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.tsx
14
14
  /** @jsxImportSource preact */
15
- const RECEIPT_MORPH_DURATION_MS = 360;
15
+ const RECEIPT_MORPH_DURATION_MS = 640;
16
+ /** A replaced auth method capture's copy fades first, where it is. */
17
+ const CAPTURE_FADE_MS = 160;
18
+ /** Then its progress segments travel, evenly, into the receipt's tracks. */
19
+ const SEGMENT_DELAY_MS = 120;
20
+ const SEGMENT_TRAVEL_MS = 800;
21
+ const SEGMENT_EASING = "cubic-bezier(0.65, 0, 0.35, 1)";
22
+ /** The receipt's details follow the fade top to bottom; the steps settle as the segments land. */
23
+ const HANDED_DETAIL_DELAY_MS = 200;
24
+ const HANDED_DETAIL_STAGGER_MS = 40;
25
+ const HANDED_DETAIL_FADE_MS = 360;
26
+ const HANDED_STEPS_DELAY_MS = SEGMENT_DELAY_MS + SEGMENT_TRAVEL_MS - HANDED_DETAIL_FADE_MS;
16
27
  const RECEIPT_MORPH_EASING = "cubic-bezier(0.22, 1, 0.36, 1)";
17
28
  const RECEIPT_ANCHORS = [
18
29
  ".seams-receipt-symbol",
19
30
  "[role=\"status\"]",
20
- ".seams-review-amount"
31
+ ".seams-review-amount",
32
+ ".seams-receipt-footer"
21
33
  ];
22
34
  function captureReceiptAnchors(surface) {
23
35
  const anchors = [];
@@ -33,6 +45,37 @@ function captureReceiptAnchors(surface) {
33
45
  }
34
46
  return anchors;
35
47
  }
48
+ /**
49
+ * The progress segments a capture draws while it checks, as they look now, from
50
+ * left to right whatever their drawing order. A line that has not split yet hands
51
+ * over its thirds.
52
+ */
53
+ function progressSegments(capture) {
54
+ const line = capture.querySelector("[data-seams-progress-line]");
55
+ if (!line) return [];
56
+ const color = getComputedStyle(line).color;
57
+ const drawn = Array.from(line.querySelectorAll("[data-seams-progress-segment]"));
58
+ if (drawn.length === 3 && drawn.every(isPainted)) return drawn.map((segment) => ({
59
+ bounds: segment.getBoundingClientRect(),
60
+ opacity: segment.getAttribute("opacity") ?? "1",
61
+ color
62
+ })).sort((a, b) => a.bounds.left - b.bounds.left);
63
+ const box = line.getBoundingClientRect();
64
+ const width = box.width / 3;
65
+ return [
66
+ 0,
67
+ 1,
68
+ 2
69
+ ].map((index) => ({
70
+ bounds: new DOMRect(box.left + index * width, box.top + box.height / 2, width, 0),
71
+ opacity: "0.55",
72
+ color
73
+ }));
74
+ }
75
+ function ignoreCancelledMotion() {}
76
+ function isPainted(segment) {
77
+ return segment.getAttribute("opacity") !== "0";
78
+ }
36
79
  let nextSurfaceId = 0;
37
80
  var MountedConfirmationSurface = class {
38
81
  element;
@@ -42,11 +85,18 @@ var MountedConfirmationSurface = class {
42
85
  receipt = null;
43
86
  receiptMotion = [];
44
87
  receiptShell = null;
88
+ receiptGhost = null;
89
+ receiptSegments = [];
45
90
  clearReceiptMotion = () => {
46
91
  for (const animation of this.receiptMotion) animation.cancel();
47
92
  this.receiptMotion = [];
48
93
  this.receiptShell?.remove();
49
94
  this.receiptShell = null;
95
+ this.receiptGhost?.remove();
96
+ this.receiptGhost = null;
97
+ for (const segment of this.receiptSegments) segment.remove();
98
+ this.receiptSegments = [];
99
+ this.element.removeAttribute("data-receipt-segments");
50
100
  this.element.removeAttribute("data-receipt-morphing");
51
101
  };
52
102
  constructor(input) {
@@ -101,6 +151,7 @@ var MountedConfirmationSurface = class {
101
151
  const previousShell = this.receiptShell ?? this.element.querySelector(".modal-container-root");
102
152
  const previousBounds = previousShell?.getBoundingClientRect();
103
153
  const anchors = viewChanged ? captureReceiptAnchors(this.element) : [];
154
+ const leaving = viewChanged ? this.liveCapture() : null;
104
155
  const previousRadius = previousShell ? getComputedStyle(previousShell).borderRadius : "26px";
105
156
  if (viewChanged) this.clearReceiptMotion();
106
157
  this.receipt = model;
@@ -117,7 +168,7 @@ var MountedConfirmationSurface = class {
117
168
  this.element.appendChild(shell);
118
169
  this.receiptShell = shell;
119
170
  this.element.setAttribute("data-receipt-morphing", "");
120
- const morph = shell.animate([{
171
+ this.receiptMotion = [shell.animate([{
121
172
  left: `${previousBounds.left}px`,
122
173
  top: `${previousBounds.top}px`,
123
174
  width: `${previousBounds.width}px`,
@@ -133,8 +184,8 @@ var MountedConfirmationSurface = class {
133
184
  duration: RECEIPT_MORPH_DURATION_MS,
134
185
  easing: RECEIPT_MORPH_EASING,
135
186
  fill: "both"
136
- });
137
- this.receiptMotion = [morph];
187
+ })];
188
+ const handedOver = leaving ? this.handOverCapture(leaving, target) : false;
138
189
  const shared = /* @__PURE__ */ new Set();
139
190
  for (const anchor of anchors) {
140
191
  const element = target.querySelector(anchor.selector);
@@ -157,22 +208,107 @@ var MountedConfirmationSurface = class {
157
208
  let order = 0;
158
209
  for (const detail of details) {
159
210
  if (shared.has(detail)) continue;
160
- this.receiptMotion.push(detail.animate([{
211
+ const toolbar = leaving !== null && detail.matches(".seams-review-toolbar");
212
+ this.receiptMotion.push(detail.animate(toolbar ? [{ opacity: 0 }, { opacity: 1 }] : [{
161
213
  opacity: 0,
162
214
  transform: "translateY(8px)"
163
215
  }, {
164
216
  opacity: 1,
165
217
  transform: "translateY(0)"
166
- }], {
218
+ }], leaving ? {
219
+ duration: HANDED_DETAIL_FADE_MS,
220
+ delay: toolbar ? 0 : handedOver && detail.matches(".seams-receipt-steps") ? HANDED_STEPS_DELAY_MS : HANDED_DETAIL_DELAY_MS + Math.min(order, 6) * HANDED_DETAIL_STAGGER_MS,
221
+ fill: "backwards",
222
+ easing: "cubic-bezier(0.2, 0, 0, 1)"
223
+ } : {
167
224
  duration: 120,
168
225
  delay: model.view === "toast" ? 240 : 180 + Math.min(order, 4) * 15,
169
226
  fill: "backwards",
170
227
  easing: "ease-out"
171
228
  }));
172
- order += 1;
229
+ if (!toolbar) order += 1;
173
230
  }
174
- morph.onfinish = this.clearReceiptMotion;
231
+ const motion = this.receiptMotion;
232
+ Promise.all(motion.map((animation) => animation.finished)).then(() => {
233
+ if (this.receiptMotion === motion) this.clearReceiptMotion();
234
+ }, ignoreCancelledMotion);
235
+ }
236
+ }
237
+ /** The auth method capture still on screen, measured before the receipt replaces it. */
238
+ liveCapture() {
239
+ if (this.state.kind !== "mounted" || this.state.model.content.kind !== "transaction") return null;
240
+ const element = this.state.model.content.capture;
241
+ if (!element?.isConnected) return null;
242
+ return {
243
+ element,
244
+ bounds: element.getBoundingClientRect(),
245
+ segments: progressSegments(element)
246
+ };
247
+ }
248
+ /**
249
+ * The capture's copy fades out where it was. When it drew progress segments,
250
+ * they travel on and become the receipt's tracks. Returns whether they did.
251
+ */
252
+ handOverCapture(leaving, target) {
253
+ const ghost = this.element.ownerDocument.createElement("div");
254
+ ghost.className = "seams-receipt-capture-ghost";
255
+ ghost.setAttribute("aria-hidden", "true");
256
+ ghost.append(leaving.element);
257
+ this.element.appendChild(ghost);
258
+ this.receiptGhost = ghost;
259
+ const place = {
260
+ left: `${leaving.bounds.left}px`,
261
+ top: `${leaving.bounds.top}px`,
262
+ width: `${leaving.bounds.width}px`,
263
+ height: `${leaving.bounds.height}px`
264
+ };
265
+ this.receiptMotion.push(ghost.animate([{
266
+ ...place,
267
+ opacity: 1
268
+ }, {
269
+ ...place,
270
+ opacity: 0
271
+ }], {
272
+ duration: CAPTURE_FADE_MS,
273
+ easing: "ease-out",
274
+ fill: "both"
275
+ }));
276
+ const tracks = target.querySelectorAll(".seams-receipt-track");
277
+ if (leaving.segments.length === 0 || tracks.length !== leaving.segments.length) return false;
278
+ this.element.setAttribute("data-receipt-segments", "");
279
+ for (const [index, track] of tracks.entries()) {
280
+ const from = leaving.segments[index];
281
+ const to = track.getBoundingClientRect();
282
+ const complete = track.closest(".seams-receipt-step")?.dataset.state === "complete";
283
+ const segment = this.element.ownerDocument.createElement("div");
284
+ segment.className = "seams-receipt-segment";
285
+ segment.setAttribute("aria-hidden", "true");
286
+ this.element.appendChild(segment);
287
+ this.receiptSegments.push(segment);
288
+ this.receiptMotion.push(segment.animate([{
289
+ left: `${from.bounds.left}px`,
290
+ top: `${from.bounds.top + from.bounds.height / 2 - .5}px`,
291
+ width: `${from.bounds.width}px`,
292
+ height: "1px",
293
+ borderRadius: "1px",
294
+ opacity: from.opacity,
295
+ backgroundColor: from.color
296
+ }, {
297
+ left: `${to.left}px`,
298
+ top: `${to.top}px`,
299
+ width: `${to.width}px`,
300
+ height: `${to.height}px`,
301
+ borderRadius: getComputedStyle(track).borderRadius,
302
+ opacity: 1,
303
+ backgroundColor: getComputedStyle(track, complete ? "::after" : null).backgroundColor
304
+ }], {
305
+ duration: SEGMENT_TRAVEL_MS,
306
+ delay: SEGMENT_DELAY_MS,
307
+ easing: SEGMENT_EASING,
308
+ fill: "both"
309
+ }));
175
310
  }
311
+ return true;
176
312
  }
177
313
  dispose = () => {
178
314
  if (this.state.kind === "disposed") return;
@@ -267,6 +403,7 @@ var MountedConfirmationSurface = class {
267
403
  };
268
404
  case "transaction": return {
269
405
  kind: "transaction",
406
+ capture: source.capture,
270
407
  header: source.header,
271
408
  body: source.body,
272
409
  review: source.review,
@@ -0,0 +1,8 @@
1
+ //#region src/core/signingEngine/walletCustody/ceremonyStepRunner.ts
2
+ function requestWalletCustodyCeremonyOperation(workerContext, operation) {
3
+ return workerContext.requestWorkerOperation(operation);
4
+ }
5
+ //#endregion
6
+ export { requestWalletCustodyCeremonyOperation };
7
+
8
+ //# sourceMappingURL=ceremonyStepRunner.js.map