@seams/wallet 0.6.0 → 0.6.2

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 (150) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/SeamsWeb.js +1 -0
  3. package/dist/esm/SeamsWeb/operations/registration/registration.js +162 -33
  4. package/dist/esm/SeamsWeb/operations/registration/registrationTiming.js +33 -2
  5. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +3 -0
  6. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +63 -10
  7. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +45 -3
  8. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +19 -0
  9. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +25 -6
  10. package/dist/esm/core/signingEngine/nonce/nearNonceLane.js +0 -29
  11. package/dist/esm/core/signingEngine/session/operationState/trace.js +10 -1
  12. package/dist/esm/core/signingEngine/session/passkey/prfCache.js +24 -4
  13. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +5 -3
  14. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +40 -3
  15. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +31 -35
  16. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +64 -10
  17. package/dist/esm/core/signingEngine/walletCustody/ceremonyDriver.js +1 -1
  18. package/dist/esm/react/SeamsWeb/SeamsWeb.js +1 -0
  19. package/dist/esm/react/SeamsWeb/operations/registration/registration.js +162 -33
  20. package/dist/esm/react/SeamsWeb/operations/registration/registrationTiming.js +33 -2
  21. package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +3 -0
  22. package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +63 -10
  23. package/dist/esm/react/core/rpcClients/relayer/walletRegistration.js +45 -3
  24. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +19 -0
  25. package/dist/esm/react/core/signingEngine/flows/signNear/signTransactions.js +25 -6
  26. package/dist/esm/react/core/signingEngine/nonce/nearNonceLane.js +0 -29
  27. package/dist/esm/react/core/signingEngine/session/operationState/trace.js +10 -1
  28. package/dist/esm/react/core/signingEngine/session/passkey/prfCache.js +24 -4
  29. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +5 -3
  30. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +40 -3
  31. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +31 -35
  32. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +64 -10
  33. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyDriver.js +1 -1
  34. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +13 -1
  35. package/dist/esm/sdk/{NonceCoordinator-C7QltTDC.js → NonceCoordinator-C7mqpJiU.js} +0 -29
  36. package/dist/esm/sdk/{adapters-Dgy69gf0.js → adapters-m94YFj70.js} +96 -46
  37. package/dist/{public/sdk/defaultConfigs-DJCLCrg9.js → esm/sdk/defaultConfigs-CyNOW4Sy.js} +1 -1
  38. package/dist/{public/sdk/display-Cw90-qmF.js → esm/sdk/display-DHdC2yXU.js} +1 -1
  39. package/dist/{public/sdk/ecdsaCapabilityManifest-DA_fklIs.js → esm/sdk/ecdsaCapabilityManifest-C8itxV9S.js} +1 -1
  40. package/dist/esm/sdk/{ecdsaPresignLifecycle-D_KCktCj.js → ecdsaPresignLifecycle-CnSnzoRJ.js} +13 -1
  41. package/dist/{public/sdk/ed25519SeedMaterial-0VmS6K9P.js → esm/sdk/ed25519SeedMaterial-Cghz8-XB.js} +2 -2
  42. package/dist/esm/sdk/{exactSessionState-C2aAv_ED.js → exactSessionState-Bt0HforB.js} +64 -11
  43. package/dist/esm/sdk/{export-viewer-host-NhjFdpm-.js → export-viewer-host-CbqG8ZQV.js} +1 -1
  44. package/dist/esm/sdk/{host-DACTruOj.js → host-BPC1zSVg.js} +2 -2
  45. package/dist/esm/sdk/{localOnly-DTNq69fJ.js → localOnly-CbLYTVbo.js} +2 -2
  46. package/dist/{public/sdk/nearEd25519YaoMaterialActivation-4AuGG2DG.js → esm/sdk/nearEd25519YaoMaterialActivation-Cz5UJQ_7.js} +46 -4
  47. package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-jiGcQylO.js → nearEd25519YaoSigningPreparation-DX6xG-IW.js} +1 -1
  48. package/dist/esm/sdk/{prfCache-Dwwauj4v.js → prfCache-CgAr-VEU.js} +24 -4
  49. package/dist/{public/sdk/recovery-entrypoint-CFTX6PFZ.js → esm/sdk/recovery-entrypoint-D39R1avB.js} +3 -3
  50. package/dist/{public/sdk/registration-CuP1WmQu.js → esm/sdk/registration-DtDICj-o.js} +1 -1
  51. package/dist/esm/sdk/{registration-D8nYJKec.js → registration-PIBMSsQR.js} +247 -40
  52. package/dist/esm/sdk/{registrationPreparationPreload-DDe0sbZi.js → registrationPreparationPreload-BZfAC_ba.js} +2 -2
  53. package/dist/{public/sdk/router-DeX_cJ2f.js → esm/sdk/router-CeFS9SgT.js} +3 -3
  54. package/dist/{public/sdk/routerAbNormalSigning-BGpRKRAj.js → esm/sdk/routerAbNormalSigning-DktZKnf1.js} +1 -1
  55. package/dist/{public/sdk/runtime-auth-Ch00YcH5.js → esm/sdk/runtime-auth-D_lUQQlc.js} +8 -8
  56. package/dist/esm/sdk/{runtime-device-link-CEhVZYAw.js → runtime-device-link-CEph1iM0.js} +4 -4
  57. package/dist/{public/sdk/runtime-ecdsa-tempo-B-qMRrmx.js → esm/sdk/runtime-ecdsa-tempo-tUWnafRo.js} +5 -5
  58. package/dist/esm/sdk/{runtime-email-otp-giyMPib8.js → runtime-email-otp-1wIPTDim.js} +4 -4
  59. package/dist/esm/sdk/{runtime-export-CV-6G1Oy.js → runtime-export-Du2d4_Vu.js} +4 -4
  60. package/dist/{public/sdk/runtime-near-DoDcS88O.js → esm/sdk/runtime-near-CGoWxu7u.js} +4 -4
  61. package/dist/{public/sdk/runtime-preferences-Canyenle.js → esm/sdk/runtime-preferences-JwJK_xP3.js} +4 -4
  62. package/dist/esm/sdk/{runtime-recovery-lWyILD1g.js → runtime-recovery-BEqBdpyo.js} +4 -4
  63. package/dist/esm/sdk/{runtimeContext-BdTaYxJD.js → runtimeContext-CTt9ON27.js} +83 -40
  64. package/dist/{public/sdk/runtimeLoader-Dxn8UA8B.js → esm/sdk/runtimeLoader-ZXsvx9zX.js} +9 -9
  65. package/dist/{public/sdk/secp256k1-CQFsI3qQ.js → esm/sdk/secp256k1-CWDid9WH.js} +4 -4
  66. package/dist/{public/sdk/signEvmFamily-CZLET02E.js → esm/sdk/signEvmFamily-pbMepepQ.js} +10 -10
  67. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-DHTBHHgE.js → signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js} +2 -2
  68. package/dist/{public/sdk/signEvmWithUiConfirm-CSxTBQUW.js → esm/sdk/signEvmWithUiConfirm-nk-r3Rff.js} +1 -1
  69. package/dist/esm/sdk/{signNear-BeUWiWm_.js → signNear-DVD9-IO5.js} +50 -13
  70. package/dist/{public/sdk/signatureUses-C1o1pDql.js → esm/sdk/signatureUses-BY1IY7uz.js} +1 -1
  71. package/dist/{public/sdk/signerLoader-C_w8vuhm.js → esm/sdk/signerLoader-D_w-SfR9.js} +3 -3
  72. package/dist/{public/sdk/trace-DWnDLSuV.js → esm/sdk/trace-08ayoiNp.js} +10 -1
  73. package/dist/{public/sdk/transactionState-Dd13hMoY.js → esm/sdk/transactionState-Bpm4GamO.js} +2 -2
  74. package/dist/esm/sdk/tx-confirm-ui.js +134 -93
  75. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  76. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  77. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  78. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  79. package/dist/esm/sdk/wallet-ui.css +92 -32
  80. package/dist/esm/sdk/{walletRecoveryCommit-DNvzgeIX.js → walletRecoveryCommit-G6w6N5RV.js} +3 -3
  81. package/dist/esm/sdk/{warmSessionHydration-CCKeEIIy.js → warmSessionHydration-DDNYdTCz.js} +1 -1
  82. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +13 -1
  83. package/dist/public/headers.manifest.json +1 -1
  84. package/dist/public/sdk/{NonceCoordinator-C7QltTDC.js → NonceCoordinator-C7mqpJiU.js} +0 -29
  85. package/dist/public/sdk/{adapters-Dgy69gf0.js → adapters-m94YFj70.js} +96 -46
  86. package/dist/{esm/sdk/defaultConfigs-DJCLCrg9.js → public/sdk/defaultConfigs-CyNOW4Sy.js} +1 -1
  87. package/dist/{esm/sdk/display-Cw90-qmF.js → public/sdk/display-DHdC2yXU.js} +1 -1
  88. package/dist/{esm/sdk/ecdsaCapabilityManifest-DA_fklIs.js → public/sdk/ecdsaCapabilityManifest-C8itxV9S.js} +1 -1
  89. package/dist/public/sdk/{ecdsaPresignLifecycle-D_KCktCj.js → ecdsaPresignLifecycle-CnSnzoRJ.js} +13 -1
  90. package/dist/{esm/sdk/ed25519SeedMaterial-0VmS6K9P.js → public/sdk/ed25519SeedMaterial-Cghz8-XB.js} +2 -2
  91. package/dist/public/sdk/{exactSessionState-C2aAv_ED.js → exactSessionState-Bt0HforB.js} +64 -11
  92. package/dist/public/sdk/{export-viewer-host-NhjFdpm-.js → export-viewer-host-CbqG8ZQV.js} +1 -1
  93. package/dist/public/sdk/{host-DACTruOj.js → host-BPC1zSVg.js} +2 -2
  94. package/dist/public/sdk/{localOnly-DTNq69fJ.js → localOnly-CbLYTVbo.js} +2 -2
  95. package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-4AuGG2DG.js → public/sdk/nearEd25519YaoMaterialActivation-Cz5UJQ_7.js} +46 -4
  96. package/dist/public/sdk/{nearEd25519YaoSigningPreparation-jiGcQylO.js → nearEd25519YaoSigningPreparation-DX6xG-IW.js} +1 -1
  97. package/dist/public/sdk/{prfCache-Dwwauj4v.js → prfCache-CgAr-VEU.js} +24 -4
  98. package/dist/{esm/sdk/recovery-entrypoint-CFTX6PFZ.js → public/sdk/recovery-entrypoint-D39R1avB.js} +3 -3
  99. package/dist/{esm/sdk/registration-CuP1WmQu.js → public/sdk/registration-DtDICj-o.js} +1 -1
  100. package/dist/public/sdk/{registration-D8nYJKec.js → registration-PIBMSsQR.js} +247 -40
  101. package/dist/public/sdk/{registrationPreparationPreload-DDe0sbZi.js → registrationPreparationPreload-BZfAC_ba.js} +2 -2
  102. package/dist/{esm/sdk/router-DeX_cJ2f.js → public/sdk/router-CeFS9SgT.js} +3 -3
  103. package/dist/{esm/sdk/routerAbNormalSigning-BGpRKRAj.js → public/sdk/routerAbNormalSigning-DktZKnf1.js} +1 -1
  104. package/dist/{esm/sdk/runtime-auth-Ch00YcH5.js → public/sdk/runtime-auth-D_lUQQlc.js} +8 -8
  105. package/dist/public/sdk/{runtime-device-link-CEhVZYAw.js → runtime-device-link-CEph1iM0.js} +4 -4
  106. package/dist/{esm/sdk/runtime-ecdsa-tempo-B-qMRrmx.js → public/sdk/runtime-ecdsa-tempo-tUWnafRo.js} +5 -5
  107. package/dist/public/sdk/{runtime-email-otp-giyMPib8.js → runtime-email-otp-1wIPTDim.js} +4 -4
  108. package/dist/public/sdk/{runtime-export-CV-6G1Oy.js → runtime-export-Du2d4_Vu.js} +4 -4
  109. package/dist/{esm/sdk/runtime-near-DoDcS88O.js → public/sdk/runtime-near-CGoWxu7u.js} +4 -4
  110. package/dist/{esm/sdk/runtime-preferences-Canyenle.js → public/sdk/runtime-preferences-JwJK_xP3.js} +4 -4
  111. package/dist/public/sdk/{runtime-recovery-lWyILD1g.js → runtime-recovery-BEqBdpyo.js} +4 -4
  112. package/dist/public/sdk/{runtimeContext-BdTaYxJD.js → runtimeContext-CTt9ON27.js} +83 -40
  113. package/dist/{esm/sdk/runtimeLoader-Dxn8UA8B.js → public/sdk/runtimeLoader-ZXsvx9zX.js} +9 -9
  114. package/dist/{esm/sdk/secp256k1-CQFsI3qQ.js → public/sdk/secp256k1-CWDid9WH.js} +4 -4
  115. package/dist/{esm/sdk/signEvmFamily-CZLET02E.js → public/sdk/signEvmFamily-pbMepepQ.js} +10 -10
  116. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-DHTBHHgE.js → signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js} +2 -2
  117. package/dist/{esm/sdk/signEvmWithUiConfirm-CSxTBQUW.js → public/sdk/signEvmWithUiConfirm-nk-r3Rff.js} +1 -1
  118. package/dist/public/sdk/{signNear-BeUWiWm_.js → signNear-DVD9-IO5.js} +50 -13
  119. package/dist/{esm/sdk/signatureUses-C1o1pDql.js → public/sdk/signatureUses-BY1IY7uz.js} +1 -1
  120. package/dist/{esm/sdk/signerLoader-C_w8vuhm.js → public/sdk/signerLoader-D_w-SfR9.js} +3 -3
  121. package/dist/{esm/sdk/trace-DWnDLSuV.js → public/sdk/trace-08ayoiNp.js} +10 -1
  122. package/dist/{esm/sdk/transactionState-Dd13hMoY.js → public/sdk/transactionState-Bpm4GamO.js} +2 -2
  123. package/dist/public/sdk/tx-confirm-ui.js +134 -93
  124. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  125. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  126. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  127. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  128. package/dist/public/sdk/wallet-ui.css +92 -32
  129. package/dist/public/sdk/{walletRecoveryCommit-DNvzgeIX.js → walletRecoveryCommit-G6w6N5RV.js} +3 -3
  130. package/dist/public/sdk/{warmSessionHydration-CCKeEIIy.js → warmSessionHydration-DDNYdTCz.js} +1 -1
  131. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +92 -8
  132. package/dist/public/wallet-assets.manifest.json +86 -86
  133. package/dist/public/wallet-service/index.html +4 -4
  134. package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +15 -1
  135. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +11 -1
  136. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +6 -0
  137. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +8 -2
  138. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +49 -10
  139. package/dist/types/wallet/src/core/signingEngine/nonce/nearNonceLane.d.ts +2 -1
  140. package/dist/types/wallet/src/core/signingEngine/session/operationState/trace.d.ts +2 -0
  141. package/dist/types/wallet/src/core/signingEngine/session/passkey/prfCache.d.ts +7 -9
  142. package/dist/types/wallet/src/core/signingEngine/session/passkey/warmSessionHydration.d.ts +7 -8
  143. package/dist/types/wallet/src/core/signingEngine/session/passkey/warmSessionMaterialWriter.d.ts +9 -9
  144. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/public.d.ts +7 -8
  145. package/dist/types/wallet/src/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.d.ts +3 -0
  146. package/dist/types/wallet/src/core/signingEngine/uiConfirm/uiConfirm.types.d.ts +6 -0
  147. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/shamir3pass/clientSealPreparation.d.ts +2 -0
  148. package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +15 -1
  149. package/dist/workers/passkey-mpc-session.worker.js +92 -8
  150. package/package.json +1 -1
@@ -722,22 +722,6 @@ var NearImplicitAccountFundingRequiredError = class extends Error {
722
722
  });
723
723
  }
724
724
  };
725
- async function readImplicitNearAccountFundingState(input) {
726
- try {
727
- await input.nearClient.viewAccount(input.subject.nearAccountId);
728
- return { kind: "funded" };
729
- } catch (error) {
730
- if (!isMissingNearAccessKeyError(errorMessage(error))) throw error;
731
- }
732
- return {
733
- kind: "needs_funding",
734
- error: new NearImplicitAccountFundingRequiredError({
735
- walletId: input.subject.walletId,
736
- nearAccountId: input.subject.nearAccountId,
737
- nearPublicKeyStr: input.subject.publicKey
738
- })
739
- };
740
- }
741
725
  var NearAccountLookupFailedError = class extends Error {
742
726
  constructor(args) {
743
727
  super(args.message || `NEAR account ${args.nearAccountId} access key lookup failed.`);
@@ -771,16 +755,11 @@ async function fetchNearFreshDataForState(input) {
771
755
  let txBlockHash = previousTransactionContext?.txBlockHash;
772
756
  const fetchAccessKey = isNonceStale || !accessKeyInfo;
773
757
  const fetchBlock = isBlockStale || !txBlockHeight || !txBlockHash;
774
- const fetchImplicitAccountFunding = isImplicitNearAccountId(capturedSubject.nearAccountId) && (input.force || fetchAccessKey || !readyContext);
775
758
  let maybeAccessKey = accessKeyInfo ?? null;
776
759
  let maybeBlock = null;
777
760
  let accessKeyError = null;
778
761
  let blockError = null;
779
762
  const tasks = [];
780
- const implicitFundingPromise = fetchImplicitAccountFunding ? readImplicitNearAccountFundingState({
781
- nearClient: input.nearClient,
782
- subject: capturedSubject
783
- }) : null;
784
763
  if (fetchAccessKey) tasks.push((async () => {
785
764
  try {
786
765
  maybeAccessKey = await input.nearClient.viewAccessKey(capturedSubject.nearAccountId, capturedSubject.publicKey);
@@ -814,14 +793,6 @@ async function fetchNearFreshDataForState(input) {
814
793
  }
815
794
  })());
816
795
  if (tasks.length > 0) await Promise.all(tasks);
817
- const implicitFunding = implicitFundingPromise ? await implicitFundingPromise : null;
818
- if (implicitFunding?.kind === "needs_funding") {
819
- setNearImplicitUnfunded({
820
- state,
821
- subject: capturedSubject
822
- });
823
- throw implicitFunding.error;
824
- }
825
796
  if (accessKeyError) {
826
797
  if (accessKeyError instanceof NearImplicitAccountFundingRequiredError) setNearImplicitUnfunded({
827
798
  state,
@@ -10,7 +10,7 @@ import { a as toActionArgsWasm, i as isActionArgsWasm, r as fromTransactionInput
10
10
  import { i as orderActionForDigest, r as computeUiIntentDigestFromTxs } from "./intentDigest-A1MbbJPu.js";
11
11
  import { t as createWalletIframeSurfaceMeasurementReporter } from "./surface-measurement-reporter-D7BNehf4.js";
12
12
  import { r as appearanceTokenCssRule } from "./csp-stylesheet-DLj_a6t_.js";
13
- import { n as buildNearNonceLane } from "./NonceCoordinator-C7QltTDC.js";
13
+ import { n as buildNearNonceLane } from "./NonceCoordinator-C7mqpJiU.js";
14
14
  import { n as SigningAuthPlanKind, s as signingAuthModeFromSigningAuthPlan, t as formatEmailOtpSentText } from "./promptText-BEgOkGxB.js";
15
15
  import { a as retainTransactionActivity } from "./transaction-activity-DKgIGpKG.js";
16
16
  import { a as R, i as M, n as confirmationDocumentStyles, o as S, r as C, t as u } from "./jsxRuntime.module-FAP0NE9p.js";
@@ -3476,12 +3476,16 @@ var TransactionReceipt = class extends C {
3476
3476
  if (receipt.view === "toast") return /* @__PURE__ */ u("div", {
3477
3477
  class: "seams-transaction-toast",
3478
3478
  "data-completed-stages": completedStages,
3479
+ "data-stage": receipt.state.kind,
3479
3480
  "data-pending": pending,
3480
3481
  children: [
3481
3482
  /* @__PURE__ */ u("div", {
3482
3483
  class: "seams-toast-progress",
3483
3484
  "aria-hidden": "true",
3484
- children: /* @__PURE__ */ u("span", {})
3485
+ children: /* @__PURE__ */ u("span", {
3486
+ class: "seams-toast-progress-fill",
3487
+ children: pending && /* @__PURE__ */ u("span", { class: "seams-toast-progress-active" })
3488
+ })
3485
3489
  }),
3486
3490
  /* @__PURE__ */ u("span", {
3487
3491
  class: "seams-receipt-symbol",
@@ -3508,17 +3512,12 @@ var TransactionReceipt = class extends C {
3508
3512
  children: [
3509
3513
  /* @__PURE__ */ u("div", {
3510
3514
  class: "seams-review-toolbar",
3511
- children: [/* @__PURE__ */ u("span", { children: "Transaction receipt" }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("button", {
3515
+ children: [/* @__PURE__ */ u("span", { children: "Transaction receipt" }), /* @__PURE__ */ u("button", {
3512
3516
  type: "button",
3513
3517
  "aria-label": "Minimize transaction",
3514
3518
  onClick: this.minimize,
3515
3519
  children: /* @__PURE__ */ u(ReviewIcon, { kind: "minimize" })
3516
- }), /* @__PURE__ */ u("button", {
3517
- type: "button",
3518
- "aria-label": receiptIsPending(receipt.state) ? "Minimize transaction" : "Close receipt",
3519
- onClick: this.close,
3520
- children: /* @__PURE__ */ u(ReviewIcon, { kind: "close" })
3521
- })] })]
3520
+ })]
3522
3521
  }),
3523
3522
  /* @__PURE__ */ u("div", {
3524
3523
  class: "seams-receipt-heading",
@@ -3578,33 +3577,30 @@ var TransactionReceipt = class extends C {
3578
3577
  })
3579
3578
  ]
3580
3579
  }),
3581
- /* @__PURE__ */ u("div", {
3582
- class: "seams-receipt-box",
3583
- children: /* @__PURE__ */ u(ReviewDisclosure, {
3584
- label: "Receipt details",
3585
- children: /* @__PURE__ */ u("dl", {
3586
- class: "seams-review-fields",
3587
- children: [
3588
- data.model?.signerAccount && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("dt", { children: "From" }), /* @__PURE__ */ u("dd", {
3589
- class: "seams-review-recipient",
3590
- children: /* @__PURE__ */ u(CopyReviewValue, {
3591
- value: data.model.signerAccount,
3592
- address: true,
3593
- label: `Copy signer address ${data.model.signerAccount}`
3594
- })
3595
- })] }),
3596
- recipient && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("dt", { children: "To" }), /* @__PURE__ */ u("dd", {
3597
- class: "seams-review-recipient",
3598
- children: /* @__PURE__ */ u(CopyReviewValue, {
3599
- value: recipient,
3600
- address: true,
3601
- label: `Copy recipient address ${recipient}`
3602
- })
3603
- })] }),
3604
- receipt.state.hash && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("dt", { children: "Transaction" }), /* @__PURE__ */ u("dd", { children: [/* @__PURE__ */ u(ReviewAddress, { value: receipt.state.hash }), /* @__PURE__ */ u(CopyReviewValue, { value: receipt.state.hash })] })] }),
3605
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("dt", { children: "Status" }), /* @__PURE__ */ u("dd", { children: heading })] })
3606
- ]
3607
- })
3580
+ /* @__PURE__ */ u(ReviewDisclosure, {
3581
+ label: "Receipt details",
3582
+ children: /* @__PURE__ */ u("dl", {
3583
+ class: "seams-review-fields",
3584
+ children: [
3585
+ data.model?.signerAccount && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("dt", { children: "From" }), /* @__PURE__ */ u("dd", {
3586
+ class: "seams-review-recipient",
3587
+ children: /* @__PURE__ */ u(CopyReviewValue, {
3588
+ value: data.model.signerAccount,
3589
+ address: true,
3590
+ label: `Copy signer address ${data.model.signerAccount}`
3591
+ })
3592
+ })] }),
3593
+ recipient && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("dt", { children: "To" }), /* @__PURE__ */ u("dd", {
3594
+ class: "seams-review-recipient",
3595
+ children: /* @__PURE__ */ u(CopyReviewValue, {
3596
+ value: recipient,
3597
+ address: true,
3598
+ label: `Copy recipient address ${recipient}`
3599
+ })
3600
+ })] }),
3601
+ receipt.state.hash && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("dt", { children: "Transaction" }), /* @__PURE__ */ u("dd", { children: [/* @__PURE__ */ u(ReviewAddress, { value: receipt.state.hash }), /* @__PURE__ */ u(CopyReviewValue, { value: receipt.state.hash })] })] }),
3602
+ /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("dt", { children: "Status" }), /* @__PURE__ */ u("dd", { children: heading })] })
3603
+ ]
3608
3604
  })
3609
3605
  }),
3610
3606
  /* @__PURE__ */ u("button", {
@@ -3664,6 +3660,27 @@ function ReceiptStep(props) {
3664
3660
  //#endregion
3665
3661
  //#region src/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.tsx
3666
3662
  /** @jsxImportSource preact */
3663
+ const RECEIPT_MORPH_DURATION_MS = 360;
3664
+ const RECEIPT_MORPH_EASING = "cubic-bezier(0.22, 1, 0.36, 1)";
3665
+ const RECEIPT_ANCHORS = [
3666
+ ".seams-receipt-symbol",
3667
+ "[role=\"status\"]",
3668
+ ".seams-review-amount"
3669
+ ];
3670
+ function captureReceiptAnchors(surface) {
3671
+ const anchors = [];
3672
+ for (const selector of RECEIPT_ANCHORS) {
3673
+ const element = surface.querySelector(selector);
3674
+ if (!element) continue;
3675
+ anchors.push({
3676
+ selector,
3677
+ text: element.textContent,
3678
+ bounds: element.getBoundingClientRect(),
3679
+ fontSize: getComputedStyle(element).fontSize
3680
+ });
3681
+ }
3682
+ return anchors;
3683
+ }
3667
3684
  let nextSurfaceId = 0;
3668
3685
  var MountedConfirmationSurface = class {
3669
3686
  constructor(input) {
@@ -3675,6 +3692,7 @@ var MountedConfirmationSurface = class {
3675
3692
  this.receiptMotion = [];
3676
3693
  this.receiptShell?.remove();
3677
3694
  this.receiptShell = null;
3695
+ this.element.removeAttribute("data-receipt-morphing");
3678
3696
  };
3679
3697
  this.dispose = () => {
3680
3698
  if (this.state.kind === "disposed") return;
@@ -3753,6 +3771,7 @@ var MountedConfirmationSurface = class {
3753
3771
  const viewChanged = this.receipt?.view !== model.view;
3754
3772
  const previousShell = this.receiptShell ?? this.element.querySelector(".modal-container-root");
3755
3773
  const previousBounds = previousShell?.getBoundingClientRect();
3774
+ const anchors = viewChanged ? captureReceiptAnchors(this.element) : [];
3756
3775
  const previousRadius = previousShell ? getComputedStyle(previousShell).borderRadius : "26px";
3757
3776
  if (viewChanged) this.clearReceiptMotion();
3758
3777
  this.receipt = model;
@@ -3768,6 +3787,7 @@ var MountedConfirmationSurface = class {
3768
3787
  shell.setAttribute("aria-hidden", "true");
3769
3788
  this.element.appendChild(shell);
3770
3789
  this.receiptShell = shell;
3790
+ this.element.setAttribute("data-receipt-morphing", "");
3771
3791
  const morph = shell.animate([{
3772
3792
  left: `${previousBounds.left}px`,
3773
3793
  top: `${previousBounds.top}px`,
@@ -3781,18 +3801,48 @@ var MountedConfirmationSurface = class {
3781
3801
  height: `${bounds.height}px`,
3782
3802
  borderRadius: getComputedStyle(target).borderRadius
3783
3803
  }], {
3784
- duration: 360,
3785
- easing: "cubic-bezier(0.22, 1, 0.36, 1)",
3804
+ duration: RECEIPT_MORPH_DURATION_MS,
3805
+ easing: RECEIPT_MORPH_EASING,
3786
3806
  fill: "both"
3787
3807
  });
3788
- const reveal = target.animate([{ opacity: 0 }, { opacity: 1 }], {
3789
- duration: 140,
3790
- delay: 220,
3791
- fill: "backwards",
3792
- easing: "ease-out"
3793
- });
3794
- this.receiptMotion = [morph, reveal];
3795
- reveal.onfinish = this.clearReceiptMotion;
3808
+ this.receiptMotion = [morph];
3809
+ const shared = /* @__PURE__ */ new Set();
3810
+ for (const anchor of anchors) {
3811
+ const element = target.querySelector(anchor.selector);
3812
+ if (!element || element.textContent !== anchor.text) continue;
3813
+ const destination = element.getBoundingClientRect();
3814
+ shared.add(element);
3815
+ const scale = parseFloat(anchor.fontSize) / parseFloat(getComputedStyle(element).fontSize);
3816
+ this.receiptMotion.push(element.animate([{
3817
+ transform: `translate(${anchor.bounds.left - destination.left}px, ${anchor.bounds.top - destination.top}px) scale(${scale})`,
3818
+ transformOrigin: "top left"
3819
+ }, {
3820
+ transform: "translate(0, 0) scale(1)",
3821
+ transformOrigin: "top left"
3822
+ }], {
3823
+ duration: RECEIPT_MORPH_DURATION_MS,
3824
+ easing: RECEIPT_MORPH_EASING
3825
+ }));
3826
+ }
3827
+ const details = target.querySelectorAll(".seams-transaction-receipt > :not(.seams-receipt-heading), .seams-receipt-heading > .seams-receipt-symbol, .seams-receipt-heading h2, .seams-receipt-heading p, .seams-transaction-toast > :not(.seams-transaction-toast-text, .seams-toast-progress), .seams-transaction-toast-text > *");
3828
+ let order = 0;
3829
+ for (const detail of details) {
3830
+ if (shared.has(detail)) continue;
3831
+ this.receiptMotion.push(detail.animate([{
3832
+ opacity: 0,
3833
+ transform: "translateY(8px)"
3834
+ }, {
3835
+ opacity: 1,
3836
+ transform: "translateY(0)"
3837
+ }], {
3838
+ duration: 120,
3839
+ delay: model.view === "toast" ? 240 : 180 + Math.min(order, 4) * 15,
3840
+ fill: "backwards",
3841
+ easing: "ease-out"
3842
+ }));
3843
+ order += 1;
3844
+ }
3845
+ morph.onfinish = this.clearReceiptMotion;
3796
3846
  }
3797
3847
  }
3798
3848
  remove() {
@@ -1,6 +1,6 @@
1
1
  import { c as normalizeTrimmedString } from "./normalize-BephcEIF.js";
2
2
  import { n as DEFAULT_THRESHOLD_SESSION_TTL_MS } from "./sessionPolicy-B4FsPuk2.js";
3
- import { n as UserVerificationPolicy } from "./ecdsaPresignLifecycle-D_KCktCj.js";
3
+ import { n as UserVerificationPolicy } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
4
4
  import { a as SIGNING_SESSION_SEAL_ALG, o as SIGNING_SESSION_SEAL_GROUP_ID } from "./signingSessionSeal-CdtgXHSL.js";
5
5
  import { a as resolveIntegerInRange, i as resolveChains, n as resolveAppearanceTheme, o as resolveThemePalette, r as resolveBoolean, t as copyEcdsaSignerProvisioningDefaults } from "./configHelpers-DB73zYvO.js";
6
6
  //#region src/core/browser/walletIframe/hostVariant.ts
@@ -1,5 +1,5 @@
1
1
  import { i as normalizeHexData } from "./bytes-CwytAKz8.js";
2
- import { g as selectorFromHexData, h as resolveFunctionDisplayName, m as formatCalldataForDisplay, p as formatCompactGas } from "./signatureUses-C1o1pDql.js";
2
+ import { g as selectorFromHexData, h as resolveFunctionDisplayName, m as formatCalldataForDisplay, p as formatCompactGas } from "./signatureUses-BY1IY7uz.js";
3
3
  //#region src/core/signingEngine/chains/tempo/display.ts
4
4
  function toSafeJson(value) {
5
5
  try {
@@ -3,7 +3,7 @@ import { i as base64UrlEncode, r as base64UrlDecode } from "./base64-Clm8C-e9.js
3
3
  import { P as isoTimestampFromUnixMs } from "./registrationIntent-DwAIMQYh.js";
4
4
  import { a as thresholdEcdsaChainTargetFromRequest, c as toWalletId, o as thresholdEcdsaChainTargetKey, s as thresholdEcdsaChainTargetsEqual } from "./ecdsaChainTarget-BOTPGIU_.js";
5
5
  import { a as deriveSigningRootId, o as normalizeRuntimePolicyScope } from "./participants-Bcnsa_ip.js";
6
- import { Cn as sameRouterAbMpcMaterialActivationRef, Sn as routerAbMpcMaterialActivationRefToWire, ft as parseRouterAbEcdsaRegistrationActivationReceiptV1, it as parseRouterAbEcdsaDerivationPublicCapabilityV1, xn as routerAbMpcMaterialActivationRefFromWire } from "./ecdsaPresignLifecycle-D_KCktCj.js";
6
+ import { Cn as routerAbMpcMaterialActivationRefToWire, Sn as routerAbMpcMaterialActivationRefFromWire, ft as parseRouterAbEcdsaRegistrationActivationReceiptV1, it as parseRouterAbEcdsaDerivationPublicCapabilityV1, wn as sameRouterAbMpcMaterialActivationRef } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
7
7
  import { pt as parseEcdsaLifecycleId, st as parseEcdsaActivationDigest, x as toRpId } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
8
8
  import { a as toEcdsaDerivationThresholdKeyId, i as toEcdsaDerivationSigningRootVersion, o as toEmailOtpAuthSubjectId, r as toEcdsaDerivationSigningRootId } from "./challengeDelivery-BjLKoou3.js";
9
9
  //#region src/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.ts
@@ -623,6 +623,18 @@ function sameRouterAbEd25519YaoActivationBindingV1(left, right) {
623
623
  function sameRouterAbEd25519YaoByteSequence(left, right) {
624
624
  return left.length === right.length && left.every((value, index) => value === right[index]);
625
625
  }
626
+ function sameRouterAbEd25519YaoParticipantPairV1(left, right) {
627
+ return left[0] === right[0] && left[1] === right[1];
628
+ }
629
+ function sameRouterAbEd25519YaoLifecycleScopeV1(left, right) {
630
+ return left.lifecycle_id === right.lifecycle_id && left.root_share_epoch === right.root_share_epoch && left.account_id === right.account_id && left.threshold_session_id === right.threshold_session_id && left.signer_set_id === right.signer_set_id && left.signing_worker_id === right.signing_worker_id && sameRouterAbMpcMaterialActivationRef(left.material_activation, right.material_activation);
631
+ }
632
+ function sameRouterAbEd25519YaoApplicationBindingFactsV1(left, right) {
633
+ return left.wallet_id === right.wallet_id && left.near_ed25519_signing_key_id === right.near_ed25519_signing_key_id && left.signing_root_id === right.signing_root_id && left.key_creation_signer_slot === right.key_creation_signer_slot;
634
+ }
635
+ function sameRouterAbEd25519YaoRegistrationAdmissionRequestV1(left, right) {
636
+ return sameRouterAbEd25519YaoLifecycleScopeV1(left.scope, right.scope) && sameRouterAbEd25519YaoApplicationBindingFactsV1(left.application_binding, right.application_binding) && sameRouterAbEd25519YaoParticipantPairV1(left.participant_ids, right.participant_ids);
637
+ }
626
638
  const REGISTRATION_WORK_KIND = "registration_prepare";
627
639
  const REGISTRATION_PRIMITIVE_REQUEST_KIND = "registration";
628
640
  const RECOVERY_WORK_KIND = "recovery";
@@ -5496,4 +5508,4 @@ function cloneAuthenticatorOptions(options) {
5496
5508
  //#region src/core/signingEngine/workerManager/ecdsaPresignLifecycle.ts
5497
5509
  const MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS = 2160 * 60 * 6e4;
5498
5510
  //#endregion
5499
- export { parseRouterAbEcdsaCredentialFreeSessionActivationResponseV1 as $, deriveRouterAbEd25519YaoApplicationBindingDigestV1 as $t, parseLinkedDeviceRevokeResultV1 as A, buildLinkedDeviceEd25519ExportRootTransferBindingV1 as An, buildEmailOtpWalletAuthAuthority as At, parseCommittedAuthorityPackagesV1 as B, parseWalletAuthAuthorityRef as Bt, parseLinkedDeviceEmailOtpVerificationGrantV1 as C, sameRouterAbMpcMaterialActivationRef as Cn, sameRouterAbEcdsaDerivationNormalSigningScopeV1 as Ct, parseLinkedDeviceOwnerAuthorizationRequestV1 as D, parseLinkedDeviceWalletSessionCredentialDeliveryV1 as Dn, sameRouterAbEcdsaRegistrationActivationReceiptV1 as Dt, parseLinkedDeviceListResultV1 as E, parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1 as En, sameRouterAbEcdsaDerivationPublicIdentityV1 as Et, parseLocalAuthorityActivationFinalAckV1 as F, isEmailOtpWalletAuthAuthority as Ft, ROUTER_AB_ECDSA_DERIVATION_EXPORT_PATH as G, ROUTER_AB_ED25519_YAO_EXPORT_EXECUTE_PATH_V1 as Gt, parseLinkedDeviceEd25519SourcePreservingReservationV1 as H, walletAuthAuthorityRef as Ht, parseLocalAuthorityInstallationReceiptV1 as I, isPasskeyWalletAuthAuthority as It, ROUTER_AB_ECDSA_DERIVATION_PRESIGNATURE_POOL_FILL_STEP_PATH as J, ROUTER_AB_ED25519_YAO_RECOVERY_CHALLENGE_ID_HEADER_V1 as Jt, ROUTER_AB_ECDSA_DERIVATION_OPERATION_STEP_UP_PATH as K, ROUTER_AB_ED25519_YAO_RECOVERY_ACTIVATE_PATH_V1 as Kt, parseQrLinkedDeviceSessionPayloadV5 as L, parseEmailOtpWalletAuthAuthority as Lt, parseLinkedDeviceTargetCredentialRegistrationResultV1 as M, parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u as Mn, emailOtpWalletAuthAuthorityEmailHashHex as Mt, parseLinkedDeviceTargetPreparationRequestV1 as N, parseLinkedDeviceEd25519ExportRootRecipientV1 as Nn, emailOtpWalletAuthAuthorityProvider as Nt, parseLinkedDeviceOwnerAuthorizationSourceV1 as O, parseWalletAddAuthMethodRegistrationOptions as On, sameRouterAbEcdsaVerifiedClientActivationFactsV1 as Ot, parseLinkedDeviceTargetPreparationV1 as P, serializeLinkedDeviceEd25519ExportRootTransferBindingV1 as Pn, emailOtpWalletAuthAuthorityProviderUserId as Pt, computeRouterAbEcdsaOperationStepUpChallengeB64u as Q, ROUTER_AB_ED25519_YAO_WARM_RECOVERY_BOOTSTRAP_PATH_V1 as Qt, parseWalletSessionOperationCredentialV1 as R, parsePasskeyWalletAuthAuthority as Rt, parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1 as S, routerAbMpcMaterialActivationRefToWire as Sn, routerAbEcdsaRerandomizationClientCommitmentV1 as St, parseLinkedDeviceListRequestV1 as T, assertLinkedDeviceWalletSessionCredentialDeliveryIntegrityV1 as Tn, sameRouterAbEcdsaDerivationPublicCapabilityV1 as Tt, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1 as U, ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1 as Ut, parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1 as V, walletAuthAuthoritiesMatch as Vt, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1 as W, ROUTER_AB_ED25519_YAO_EXPORT_ADMISSION_PATH_V1 as Wt, buildRouterAbEcdsaDerivationEvmDigestSigningFinalizeRequestV1 as X, ROUTER_AB_ED25519_YAO_REGISTRATION_ADMISSION_PATH_V1 as Xt, ROUTER_AB_ECDSA_DERIVATION_SESSION_ACTIVATION_PATH as Y, ROUTER_AB_ED25519_YAO_RECOVERY_EXECUTE_PATH_V1 as Yt, buildRouterAbEcdsaDerivationEvmDigestSigningRequestV1 as Z, ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1 as Zt, parseLinkedDeviceEmailOtpBaseFactorResolutionResultV1 as _, sameRouterAbEd25519YaoActivationBindingV1 as _n, requireRouterAbEcdsaDerivationNormalSigningStateV1 as _t, buildLinkedDeviceSessionCancelClaimedRequestV1 as a, parseRouterAbEd25519YaoExportResultV1 as an, parseRouterAbEcdsaExplicitExportForwardedResponseV1 as at, parseLinkedDeviceEmailOtpChallengeStartRequestV1 as b, parseRouterAbNormalSigningAuthorization as bn, routerAbEcdsaDerivationEvmDigestSigningRequestDigestV1 as bt, buildLinkedDeviceTargetCredentialRegistrationV1 as c, parseRouterAbEd25519YaoRecoveryActivationExecuteRequestV1 as cn, parseRouterAbEcdsaOperationStepUpPreparationV1 as ct, parseActiveWalletSessionV1 as d, parseRouterAbEd25519YaoRecoveryAdmissionRequestV1 as dn, parseRouterAbEcdsaPostRegistrationSessionActivationResponseV1 as dt, parseRouterAbEd25519YaoActivationPublicReceiptV1 as en, parseRouterAbEcdsaDerivationEvmDigestSigningPrepareResponseForRequestV1 as et, parseLinkDevicePublicKeyB64u as f, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1 as fn, parseRouterAbEcdsaRegistrationActivationReceiptV1 as ft, parseLinkedDeviceApprovalResultV1 as g, parseRouterAbEd25519YaoWarmRecoveryBootstrapRequestV1 as gn, parseRouterAbEcdsaVerifiedClientActivationFactsV1 as gt, parseLinkedDeviceApprovalDeliveryV1 as h, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 as hn, parseRouterAbEcdsaStrictForwardedRegistrationResponseV1 as ht, buildLinkedDeviceApprovalV1 as i, parseRouterAbEd25519YaoExportExecuteRequestV1 as in, parseRouterAbEcdsaDerivationPublicCapabilityV1 as it, parseLinkedDeviceSessionClaimV1 as j, parseLinkedDeviceEd25519ExportRootPackageV1 as jn, buildPasskeyWalletAuthAuthority as jt, parseLinkedDeviceRevokeRequestV1 as k, LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1 as kn, sameRouterAbServerIdentityV1 as kt, buildQrLinkedDeviceSessionPayloadV5 as l, parseRouterAbEd25519YaoRecoveryActivationReceiptV1 as ln, parseRouterAbEcdsaPostRegistrationSessionActivationPolicyV1 as lt, parseLinkSessionTransportEventV1 as m, parseRouterAbEd25519YaoRegistrationActivationResultV1 as mn, parseRouterAbEcdsaRegistrationRequestFactsV1 as mt, UserVerificationPolicy as n, parseRouterAbEd25519YaoCeremonyBindingV1 as nn, parseRouterAbEcdsaDerivationNormalSigningScopeV1 as nt, buildLinkedDeviceSessionCancelUnclaimedRequestV1 as o, parseRouterAbEd25519YaoParticipantIdsV1 as on, parseRouterAbEcdsaOperationStepUpAuthorizationRequestV1 as ot, parseLinkSessionProjectionV1 as p, parseRouterAbEd25519YaoRegistrationActivationExecuteRequestV1 as pn, parseRouterAbEcdsaRegistrationPublicActivationReceiptV1 as pt, ROUTER_AB_ECDSA_DERIVATION_PRESIGNATURE_POOL_FILL_INIT_PATH as q, ROUTER_AB_ED25519_YAO_RECOVERY_ADMISSION_PATH_V1 as qt, cloneAuthenticatorOptions as r, parseRouterAbEd25519YaoExportAdmissionReceiptV1 as rn, parseRouterAbEcdsaDerivationNormalSigningStateV1 as rt, buildLinkedDeviceSessionClaimRequestV1 as s, parseRouterAbEd25519YaoRecoveryActivationAdmissionReceiptV1 as sn, parseRouterAbEcdsaOperationStepUpAuthorizationResponseV1 as st, MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS as t, parseRouterAbEd25519YaoApplicationBindingFactsV1 as tn, parseRouterAbEcdsaDerivationEvmDigestSigningResponseForCoreRequestV1 as tt, parseActivateInstalledAuthorityResultV1 as u, parseRouterAbEd25519YaoRecoveryActivationResultV1 as un, parseRouterAbEcdsaPostRegistrationSessionActivationRequestV1 as ut, parseLinkedDeviceEmailOtpChallengeResendRequestV1 as v, canonicalRouterAbMpcMaterialActivationRefBytes as vn, routerAbEcdsaDerivationActiveStateId as vt, parseLinkedDeviceEmailOtpVerificationResultV1 as w, parseWebAuthnAuthenticatorDeviceInfo as wn, sameRouterAbEcdsaDerivationNormalSigningStateV1 as wt, parseLinkedDeviceEmailOtpChallengeVerifyRequestV1 as x, routerAbMpcMaterialActivationRefFromWire as xn, routerAbEcdsaDerivationNormalSigningScopeCanonicalBytesV1 as xt, parseLinkedDeviceEmailOtpChallengeResultV1 as y, parseRouterAbMpcMaterialActivationRef as yn, routerAbEcdsaDerivationEvmDigestSigningFinalizeCoreRequestDigestV1 as yt, serializeQrLinkedDeviceSessionPayloadV5 as z, parseWalletAuthAuthority as zt };
5511
+ export { parseRouterAbEcdsaCredentialFreeSessionActivationResponseV1 as $, deriveRouterAbEd25519YaoApplicationBindingDigestV1 as $t, parseLinkedDeviceRevokeResultV1 as A, LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1 as An, buildEmailOtpWalletAuthAuthority as At, parseCommittedAuthorityPackagesV1 as B, parseWalletAuthAuthorityRef as Bt, parseLinkedDeviceEmailOtpVerificationGrantV1 as C, routerAbMpcMaterialActivationRefToWire as Cn, sameRouterAbEcdsaDerivationNormalSigningScopeV1 as Ct, parseLinkedDeviceOwnerAuthorizationRequestV1 as D, parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1 as Dn, sameRouterAbEcdsaRegistrationActivationReceiptV1 as Dt, parseLinkedDeviceListResultV1 as E, assertLinkedDeviceWalletSessionCredentialDeliveryIntegrityV1 as En, sameRouterAbEcdsaDerivationPublicIdentityV1 as Et, parseLocalAuthorityActivationFinalAckV1 as F, serializeLinkedDeviceEd25519ExportRootTransferBindingV1 as Fn, isEmailOtpWalletAuthAuthority as Ft, ROUTER_AB_ECDSA_DERIVATION_EXPORT_PATH as G, ROUTER_AB_ED25519_YAO_EXPORT_EXECUTE_PATH_V1 as Gt, parseLinkedDeviceEd25519SourcePreservingReservationV1 as H, walletAuthAuthorityRef as Ht, parseLocalAuthorityInstallationReceiptV1 as I, isPasskeyWalletAuthAuthority as It, ROUTER_AB_ECDSA_DERIVATION_PRESIGNATURE_POOL_FILL_STEP_PATH as J, ROUTER_AB_ED25519_YAO_RECOVERY_CHALLENGE_ID_HEADER_V1 as Jt, ROUTER_AB_ECDSA_DERIVATION_OPERATION_STEP_UP_PATH as K, ROUTER_AB_ED25519_YAO_RECOVERY_ACTIVATE_PATH_V1 as Kt, parseQrLinkedDeviceSessionPayloadV5 as L, parseEmailOtpWalletAuthAuthority as Lt, parseLinkedDeviceTargetCredentialRegistrationResultV1 as M, parseLinkedDeviceEd25519ExportRootPackageV1 as Mn, emailOtpWalletAuthAuthorityEmailHashHex as Mt, parseLinkedDeviceTargetPreparationRequestV1 as N, parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u as Nn, emailOtpWalletAuthAuthorityProvider as Nt, parseLinkedDeviceOwnerAuthorizationSourceV1 as O, parseLinkedDeviceWalletSessionCredentialDeliveryV1 as On, sameRouterAbEcdsaVerifiedClientActivationFactsV1 as Ot, parseLinkedDeviceTargetPreparationV1 as P, parseLinkedDeviceEd25519ExportRootRecipientV1 as Pn, emailOtpWalletAuthAuthorityProviderUserId as Pt, computeRouterAbEcdsaOperationStepUpChallengeB64u as Q, ROUTER_AB_ED25519_YAO_WARM_RECOVERY_BOOTSTRAP_PATH_V1 as Qt, parseWalletSessionOperationCredentialV1 as R, parsePasskeyWalletAuthAuthority as Rt, parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1 as S, routerAbMpcMaterialActivationRefFromWire as Sn, routerAbEcdsaRerandomizationClientCommitmentV1 as St, parseLinkedDeviceListRequestV1 as T, parseWebAuthnAuthenticatorDeviceInfo as Tn, sameRouterAbEcdsaDerivationPublicCapabilityV1 as Tt, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1 as U, ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1 as Ut, parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1 as V, walletAuthAuthoritiesMatch as Vt, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1 as W, ROUTER_AB_ED25519_YAO_EXPORT_ADMISSION_PATH_V1 as Wt, buildRouterAbEcdsaDerivationEvmDigestSigningFinalizeRequestV1 as X, ROUTER_AB_ED25519_YAO_REGISTRATION_ADMISSION_PATH_V1 as Xt, ROUTER_AB_ECDSA_DERIVATION_SESSION_ACTIVATION_PATH as Y, ROUTER_AB_ED25519_YAO_RECOVERY_EXECUTE_PATH_V1 as Yt, buildRouterAbEcdsaDerivationEvmDigestSigningRequestV1 as Z, ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1 as Zt, parseLinkedDeviceEmailOtpBaseFactorResolutionResultV1 as _, sameRouterAbEd25519YaoActivationBindingV1 as _n, requireRouterAbEcdsaDerivationNormalSigningStateV1 as _t, buildLinkedDeviceSessionCancelClaimedRequestV1 as a, parseRouterAbEd25519YaoExportResultV1 as an, parseRouterAbEcdsaExplicitExportForwardedResponseV1 as at, parseLinkedDeviceEmailOtpChallengeStartRequestV1 as b, parseRouterAbMpcMaterialActivationRef as bn, routerAbEcdsaDerivationEvmDigestSigningRequestDigestV1 as bt, buildLinkedDeviceTargetCredentialRegistrationV1 as c, parseRouterAbEd25519YaoRecoveryActivationExecuteRequestV1 as cn, parseRouterAbEcdsaOperationStepUpPreparationV1 as ct, parseActiveWalletSessionV1 as d, parseRouterAbEd25519YaoRecoveryAdmissionRequestV1 as dn, parseRouterAbEcdsaPostRegistrationSessionActivationResponseV1 as dt, parseRouterAbEd25519YaoActivationPublicReceiptV1 as en, parseRouterAbEcdsaDerivationEvmDigestSigningPrepareResponseForRequestV1 as et, parseLinkDevicePublicKeyB64u as f, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1 as fn, parseRouterAbEcdsaRegistrationActivationReceiptV1 as ft, parseLinkedDeviceApprovalResultV1 as g, parseRouterAbEd25519YaoWarmRecoveryBootstrapRequestV1 as gn, parseRouterAbEcdsaVerifiedClientActivationFactsV1 as gt, parseLinkedDeviceApprovalDeliveryV1 as h, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 as hn, parseRouterAbEcdsaStrictForwardedRegistrationResponseV1 as ht, buildLinkedDeviceApprovalV1 as i, parseRouterAbEd25519YaoExportExecuteRequestV1 as in, parseRouterAbEcdsaDerivationPublicCapabilityV1 as it, parseLinkedDeviceSessionClaimV1 as j, buildLinkedDeviceEd25519ExportRootTransferBindingV1 as jn, buildPasskeyWalletAuthAuthority as jt, parseLinkedDeviceRevokeRequestV1 as k, parseWalletAddAuthMethodRegistrationOptions as kn, sameRouterAbServerIdentityV1 as kt, buildQrLinkedDeviceSessionPayloadV5 as l, parseRouterAbEd25519YaoRecoveryActivationReceiptV1 as ln, parseRouterAbEcdsaPostRegistrationSessionActivationPolicyV1 as lt, parseLinkSessionTransportEventV1 as m, parseRouterAbEd25519YaoRegistrationActivationResultV1 as mn, parseRouterAbEcdsaRegistrationRequestFactsV1 as mt, UserVerificationPolicy as n, parseRouterAbEd25519YaoCeremonyBindingV1 as nn, parseRouterAbEcdsaDerivationNormalSigningScopeV1 as nt, buildLinkedDeviceSessionCancelUnclaimedRequestV1 as o, parseRouterAbEd25519YaoParticipantIdsV1 as on, parseRouterAbEcdsaOperationStepUpAuthorizationRequestV1 as ot, parseLinkSessionProjectionV1 as p, parseRouterAbEd25519YaoRegistrationActivationExecuteRequestV1 as pn, parseRouterAbEcdsaRegistrationPublicActivationReceiptV1 as pt, ROUTER_AB_ECDSA_DERIVATION_PRESIGNATURE_POOL_FILL_INIT_PATH as q, ROUTER_AB_ED25519_YAO_RECOVERY_ADMISSION_PATH_V1 as qt, cloneAuthenticatorOptions as r, parseRouterAbEd25519YaoExportAdmissionReceiptV1 as rn, parseRouterAbEcdsaDerivationNormalSigningStateV1 as rt, buildLinkedDeviceSessionClaimRequestV1 as s, parseRouterAbEd25519YaoRecoveryActivationAdmissionReceiptV1 as sn, parseRouterAbEcdsaOperationStepUpAuthorizationResponseV1 as st, MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS as t, parseRouterAbEd25519YaoApplicationBindingFactsV1 as tn, parseRouterAbEcdsaDerivationEvmDigestSigningResponseForCoreRequestV1 as tt, parseActivateInstalledAuthorityResultV1 as u, parseRouterAbEd25519YaoRecoveryActivationResultV1 as un, parseRouterAbEcdsaPostRegistrationSessionActivationRequestV1 as ut, parseLinkedDeviceEmailOtpChallengeResendRequestV1 as v, sameRouterAbEd25519YaoRegistrationAdmissionRequestV1 as vn, routerAbEcdsaDerivationActiveStateId as vt, parseLinkedDeviceEmailOtpVerificationResultV1 as w, sameRouterAbMpcMaterialActivationRef as wn, sameRouterAbEcdsaDerivationNormalSigningStateV1 as wt, parseLinkedDeviceEmailOtpChallengeVerifyRequestV1 as x, parseRouterAbNormalSigningAuthorization as xn, routerAbEcdsaDerivationNormalSigningScopeCanonicalBytesV1 as xt, parseLinkedDeviceEmailOtpChallengeResultV1 as y, canonicalRouterAbMpcMaterialActivationRefBytes as yn, routerAbEcdsaDerivationEvmDigestSigningFinalizeCoreRequestDigestV1 as yt, serializeQrLinkedDeviceSessionPayloadV5 as z, parseWalletAuthAuthority as zt };
@@ -11,14 +11,14 @@ import { d as parseEd25519PublicKeyB64u, o as normalizeRuntimePolicyScope } from
11
11
  import { B as buildNearProfileId, L as buildEnvelopeAAD, M as WALLET_CUSTODY_ED25519_MATERIAL_KEY_KIND, N as assertWalletCustodyEd25519MaterialBindingV1, P as buildWalletCustodyEd25519MaterialRecordV1, R as normalizePayloadEnvelope, z as sanitizePayload } from "./accountLifecycle-Ddavc_FC.js";
12
12
  import { t as toAccountId } from "./accountIds-Ck4GAQfm.js";
13
13
  import { D as sameDelegatedWalletAuthorityV1, f as encodeWalletSignerActivationSetV1, h as isActiveRecoveredWalletAuthorityV1, m as isActiveEcdsaWalletAuthorityV1, o as normalizeThresholdRuntimePolicyScope, p as extendEcdsaWalletAuthorityWithEd25519, v as parseWalletAuthorityV1, x as walletAuthorityDigestsMatchV1 } from "./sessionPolicy-B4FsPuk2.js";
14
- import { Bt as parseWalletAuthAuthorityRef, Dt as sameRouterAbEcdsaRegistrationActivationReceiptV1, Ft as isEmailOtpWalletAuthAuthority, I as parseLocalAuthorityInstallationReceiptV1, It as isPasskeyWalletAuthAuthority, Lt as parseEmailOtpWalletAuthAuthority, R as parseWalletSessionOperationCredentialV1, Sn as routerAbMpcMaterialActivationRefToWire, Tt as sameRouterAbEcdsaDerivationPublicCapabilityV1, V as parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1, Vt as walletAuthAuthoritiesMatch, _n as sameRouterAbEd25519YaoActivationBindingV1, _t as requireRouterAbEcdsaDerivationNormalSigningStateV1, en as parseRouterAbEd25519YaoActivationPublicReceiptV1, fn as parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, ft as parseRouterAbEcdsaRegistrationActivationReceiptV1, gt as parseRouterAbEcdsaVerifiedClientActivationFactsV1, hn as parseRouterAbEd25519YaoRegistrationAdmissionRequestV1, it as parseRouterAbEcdsaDerivationPublicCapabilityV1, nn as parseRouterAbEd25519YaoCeremonyBindingV1, on as parseRouterAbEd25519YaoParticipantIdsV1, pn as parseRouterAbEd25519YaoRegistrationActivationExecuteRequestV1, tn as parseRouterAbEd25519YaoApplicationBindingFactsV1, vn as canonicalRouterAbMpcMaterialActivationRefBytes, wt as sameRouterAbEcdsaDerivationNormalSigningStateV1, xn as routerAbMpcMaterialActivationRefFromWire, xt as routerAbEcdsaDerivationNormalSigningScopeCanonicalBytesV1, zt as parseWalletAuthAuthority } from "./ecdsaPresignLifecycle-D_KCktCj.js";
14
+ import { Bt as parseWalletAuthAuthorityRef, Cn as routerAbMpcMaterialActivationRefToWire, Dt as sameRouterAbEcdsaRegistrationActivationReceiptV1, Ft as isEmailOtpWalletAuthAuthority, I as parseLocalAuthorityInstallationReceiptV1, It as isPasskeyWalletAuthAuthority, Lt as parseEmailOtpWalletAuthAuthority, R as parseWalletSessionOperationCredentialV1, Sn as routerAbMpcMaterialActivationRefFromWire, Tt as sameRouterAbEcdsaDerivationPublicCapabilityV1, V as parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1, Vt as walletAuthAuthoritiesMatch, _n as sameRouterAbEd25519YaoActivationBindingV1, _t as requireRouterAbEcdsaDerivationNormalSigningStateV1, en as parseRouterAbEd25519YaoActivationPublicReceiptV1, fn as parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, ft as parseRouterAbEcdsaRegistrationActivationReceiptV1, gt as parseRouterAbEcdsaVerifiedClientActivationFactsV1, hn as parseRouterAbEd25519YaoRegistrationAdmissionRequestV1, it as parseRouterAbEcdsaDerivationPublicCapabilityV1, nn as parseRouterAbEd25519YaoCeremonyBindingV1, on as parseRouterAbEd25519YaoParticipantIdsV1, pn as parseRouterAbEd25519YaoRegistrationActivationExecuteRequestV1, tn as parseRouterAbEd25519YaoApplicationBindingFactsV1, wt as sameRouterAbEcdsaDerivationNormalSigningStateV1, xt as routerAbEcdsaDerivationNormalSigningScopeCanonicalBytesV1, yn as canonicalRouterAbMpcMaterialActivationRefBytes, zt as parseWalletAuthAuthority } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
15
15
  import { d as parseMpcWalletSigningQuotaId, h as parseWalletSessionId, l as parseDeviceId, m as parseWalletSessionAuthorizationId } from "./capabilityKinds-jwCEaqBU.js";
16
16
  import { _t as parseEvmFamilyEcdsaSignerId, b as toParticipantId, bt as parseSdkEcdsaDerivationSigningRootId, ct as parseEcdsaCapabilityManifestId, dt as parseEcdsaCiphertextDigest, ft as parseEcdsaIv12B64u, gt as parseEcdsaServerGeneration, ht as parseEcdsaPendingCiphertextDigest, l as buildVerifiedEcdsaPublicFacts, lt as parseEcdsaCapabilityManifestRevision, mt as parseEcdsaMaterialSealingKeyId, ot as parseCanonicalEcdsaServerActivationRequest, ut as parseEcdsaCiphertextB64u, x as toRpId, xt as parseSdkEcdsaDerivationSigningRootVersion, y as toEvmFamilyEcdsaKeyHandle } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
17
17
  import { d as parsePasskeyCustodyEnvelopeRecord, p as sameWalletCustodyEnvelopeOwnership } from "./passkey-custody-BaHyYMhj.js";
18
18
  import { a as parseEcdsaRelayerKeyId, d as parseEcdsaThresholdKeyId, i as parseEcdsaKeyHandle, l as parseEcdsaRoleLocalPersistedMaterialRef, n as parseEcdsaClientVerifyingPublicKey33B64u, o as parseEcdsaRoleLocalBindingDigest, s as parseEcdsaRoleLocalDurableMaterialRef } from "./keyMaterialBrands-BbjCfzXv.js";
19
19
  import { v as parseNearProvisioningState } from "./sdkSentEvents-5Pi-hjHB.js";
20
20
  import { t as parseSignerSlot } from "./signerSlot-DbNAs-kc.js";
21
- import { S as buildEcdsaRoleLocalPublicFacts, _ as buildServerCommittedEcdsaActivationJournal, a as buildEcdsaManifestIdentity, c as buildEncryptedEcdsaPendingCandidate, d as buildNoCurrentEcdsaManifestExpectation, f as buildNoCurrentEcdsaServerGenerationExpectation, g as buildReplacedEcdsaCapabilityManifest, h as buildPreparedEvmFamilySigner, i as buildEcdsaCapabilityScope, l as buildExactEcdsaManifestExpectation, m as buildPreparedEcdsaActivationJournal, n as buildDurableEcdsaMaterialBinding, o as buildEcdsaRoleLocalMaterialBinding, p as buildPreparedEcdsaActivationCandidate, r as buildEcdsaActivationBinding, s as buildEcdsaServerActivationCommit, t as buildActiveEcdsaCapabilityManifest, u as buildExactEcdsaServerGenerationExpectation, v as buildValidatedEncryptedEcdsaReadyMaterial } from "./ecdsaCapabilityManifest-DA_fklIs.js";
21
+ import { S as buildEcdsaRoleLocalPublicFacts, _ as buildServerCommittedEcdsaActivationJournal, a as buildEcdsaManifestIdentity, c as buildEncryptedEcdsaPendingCandidate, d as buildNoCurrentEcdsaManifestExpectation, f as buildNoCurrentEcdsaServerGenerationExpectation, g as buildReplacedEcdsaCapabilityManifest, h as buildPreparedEvmFamilySigner, i as buildEcdsaCapabilityScope, l as buildExactEcdsaManifestExpectation, m as buildPreparedEcdsaActivationJournal, n as buildDurableEcdsaMaterialBinding, o as buildEcdsaRoleLocalMaterialBinding, p as buildPreparedEcdsaActivationCandidate, r as buildEcdsaActivationBinding, s as buildEcdsaServerActivationCommit, t as buildActiveEcdsaCapabilityManifest, u as buildExactEcdsaServerGenerationExpectation, v as buildValidatedEncryptedEcdsaReadyMaterial } from "./ecdsaCapabilityManifest-C8itxV9S.js";
22
22
  import { i as parseEcdsaClientPresignPoolIdentity, n as ecdsaClientPresignPoolKey, r as equalEcdsaClientPresignPoolIdentity } from "./ecdsaPresignPoolIdentity-Yopr4jvS.js";
23
23
  import { _ as NonceCoordinatorDegradationReason, b as NonceDurableLeaseState, u as nonceLaneKey, v as NonceCoordinatorFallback } from "./nonceLaneKeys-B_RcSS6M.js";
24
24
  import { i as buildNearAccountRefs, n as resolveProfileAccountContextFromCandidates } from "./profileAccountProjection-C9rVhbeJ.js";
@@ -5,7 +5,7 @@ import { y as parseNearEd25519SigningKeyId } from "./registrationIntent-DwAIMQYh
5
5
  import { a as thresholdEcdsaChainTargetFromRequest } from "./ecdsaChainTarget-BOTPGIU_.js";
6
6
  import { o as isWalletAuthMethod } from "./signerDomain-DDLiwuYS.js";
7
7
  import { t as toAccountId } from "./accountIds-Ck4GAQfm.js";
8
- import { Bt as parseWalletAuthAuthorityRef } from "./ecdsaPresignLifecycle-D_KCktCj.js";
8
+ import { Bt as parseWalletAuthAuthorityRef } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
9
9
  import { h as parseWalletSessionId, m as parseWalletSessionAuthorizationId } from "./capabilityKinds-jwCEaqBU.js";
10
10
  import { at as walletAuthMethodBindingFromRaw } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
11
11
  import { d as parseEcdsaThresholdKeyId } from "./keyMaterialBrands-BbjCfzXv.js";
@@ -1186,6 +1186,7 @@ function clearTransactionReviewAppearance(slot) {
1186
1186
  //#endregion
1187
1187
  //#region src/SeamsWeb/walletIframe/client/overlay/overlay-controller.ts
1188
1188
  const SURFACE_RESIZE_DURATION_MS = 180;
1189
+ const REVIEW_HANDOFF_DURATION_MS = 320;
1189
1190
  function finiteSurfaceRect(rect) {
1190
1191
  if (!Number.isFinite(rect.top) || !Number.isFinite(rect.left) || !Number.isFinite(rect.width) || !Number.isFinite(rect.height) || rect.width <= 0 || rect.height <= 0) return null;
1191
1192
  return {
@@ -1392,6 +1393,11 @@ var OverlayController = class {
1392
1393
  }
1393
1394
  applyVisible(mode) {
1394
1395
  const { dialog, iframe } = this.ensureDialog();
1396
+ const iframeSize = {
1397
+ widthCssPx: iframe.clientWidth,
1398
+ heightCssPx: iframe.clientHeight
1399
+ };
1400
+ let requestResizeDestination = null;
1395
1401
  const identityChanged = !sameIdentity(this.mode, mode);
1396
1402
  const handoffFromReview = !identityChanged && this.mode.kind === "compact_transaction_review" && mode.kind === "compact_request_modal";
1397
1403
  const returnToReview = !identityChanged && this.mode.kind === "compact_request_modal" && mode.kind === "compact_transaction_review";
@@ -1427,8 +1433,8 @@ var OverlayController = class {
1427
1433
  setDialogGeometry(dialog, mode.geometry, authMenu ? this.authMenuVisualScale : 1);
1428
1434
  this.lastAppliedGeometry = mode.geometry;
1429
1435
  this.lastAppliedAuthMenuVisualScale = authMenu ? this.authMenuVisualScale : 1;
1430
- const requestResizeDestination = requestResizeOrigin ? finiteSurfaceRect(dialog.getBoundingClientRect()) : null;
1431
- if (requestResizeOrigin && requestResizeDestination) this.startSurfaceResize(requestResizeOrigin, requestResizeDestination);
1436
+ requestResizeDestination = requestResizeOrigin ? finiteSurfaceRect(dialog.getBoundingClientRect()) : null;
1437
+ if (requestResizeOrigin && requestResizeDestination) this.startSurfaceResize(requestResizeOrigin, requestResizeDestination, handoffFromReview || returnToReview ? REVIEW_HANDOFF_DURATION_MS : SURFACE_RESIZE_DURATION_MS);
1432
1438
  if (requestResizeOrigin) releaseDialogIframe(dialog);
1433
1439
  }
1434
1440
  const reviewing = mode.kind === "compact_transaction_review";
@@ -1437,6 +1443,10 @@ var OverlayController = class {
1437
1443
  if (handoffFromReview) this.startReviewHandoff("wallet");
1438
1444
  if (returnToReview) this.startReviewHandoff("review");
1439
1445
  const handingOff = this.reviewHandoff.kind === "animating";
1446
+ if (handingOff && requestResizeDestination) pinDialogIframe(dialog, reviewing ? iframeSize : {
1447
+ widthCssPx: requestResizeDestination.width,
1448
+ heightCssPx: requestResizeDestination.height
1449
+ });
1440
1450
  iframe.inert = reviewing || handingOff;
1441
1451
  iframe.classList.toggle("seams-review-wallet-inactive", reviewing);
1442
1452
  iframe.setAttribute("aria-hidden", String(reviewing || handingOff));
@@ -1466,22 +1476,63 @@ var OverlayController = class {
1466
1476
  this.cancelReviewHandoff();
1467
1477
  if (!this.iframe || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
1468
1478
  const options = {
1469
- duration: SURFACE_RESIZE_DURATION_MS,
1470
- easing: "linear",
1479
+ duration: REVIEW_HANDOFF_DURATION_MS,
1480
+ easing: "cubic-bezier(0.22, 1, 0.36, 1)",
1471
1481
  fill: "both"
1472
1482
  };
1473
1483
  const review = this.getTransactionReviewSlot().firstElementChild;
1474
1484
  if (!review) return;
1475
1485
  const outgoingElement = destination === "wallet" ? review : this.iframe;
1476
1486
  const incomingElement = destination === "wallet" ? this.iframe : review;
1477
- const outgoing = outgoingElement.animate([{ opacity: 1 }, { opacity: 0 }], options);
1478
- const incoming = incomingElement.animate([{ opacity: 0 }, { opacity: 1 }], options);
1487
+ const direction = destination === "wallet" ? 1 : -1;
1488
+ const outgoing = outgoingElement.animate([
1489
+ {
1490
+ opacity: 1,
1491
+ transform: "translateY(0)"
1492
+ },
1493
+ {
1494
+ opacity: 0,
1495
+ transform: `translateY(${-8 * direction}px)`,
1496
+ offset: .55
1497
+ },
1498
+ {
1499
+ opacity: 0,
1500
+ transform: `translateY(${-8 * direction}px)`
1501
+ }
1502
+ ], options);
1503
+ const incoming = incomingElement.animate([{
1504
+ opacity: 0,
1505
+ transform: `translateY(${12 * direction}px)`
1506
+ }, {
1507
+ opacity: 1,
1508
+ transform: "translateY(0)"
1509
+ }], options);
1510
+ const sections = [];
1511
+ let order = 0;
1512
+ for (const section of review.children) {
1513
+ const entering = destination === "review";
1514
+ const delay = Math.min(order, 3) * 25;
1515
+ sections.push(section.animate([{
1516
+ opacity: entering ? 0 : 1,
1517
+ transform: entering ? "translateY(8px)" : "translateY(0)"
1518
+ }, {
1519
+ opacity: entering ? 1 : 0,
1520
+ transform: entering ? "translateY(0)" : "translateY(-6px)"
1521
+ }], {
1522
+ duration: entering ? 220 : 140,
1523
+ delay,
1524
+ easing: "ease-out",
1525
+ fill: "both"
1526
+ }));
1527
+ order += 1;
1528
+ }
1479
1529
  this.reviewHandoff = {
1480
1530
  kind: "animating",
1481
1531
  destination,
1482
1532
  outgoing,
1483
1533
  incoming,
1484
- timer: setTimeout(this.finishReviewHandoff.bind(this), SURFACE_RESIZE_DURATION_MS),
1534
+ sections,
1535
+ timer: setTimeout(this.finishReviewHandoff.bind(this), REVIEW_HANDOFF_DURATION_MS),
1485
1536
  onReady: null
1486
1537
  };
1487
1538
  incoming.addEventListener("finish", this.handleReviewHandoffFinished, { once: true });
@@ -1511,22 +1562,24 @@ var OverlayController = class {
1511
1562
  clearTimeout(this.reviewHandoff.timer);
1512
1563
  this.reviewHandoff.outgoing.cancel();
1513
1564
  this.reviewHandoff.incoming.cancel();
1565
+ for (const animation of this.reviewHandoff.sections) animation.cancel();
1566
+ if (this.dialog) releaseDialogIframe(this.dialog);
1514
1567
  this.reviewHandoff = { kind: "idle" };
1515
1568
  }
1516
1569
  scheduleMeasuredReveal() {
1517
1570
  this.cancelPendingReveal();
1518
1571
  this.pendingRevealFrame = window.requestAnimationFrame(this.revealMeasuredSurface);
1519
1572
  }
1520
- startSurfaceResize(origin, destination) {
1573
+ startSurfaceResize(origin, destination, duration) {
1521
1574
  const dialog = this.dialog;
1522
1575
  if (!dialog || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
1523
1576
  this.cancelSurfaceResize();
1524
1577
  const animation = dialog.animate(surfaceResizeKeyframes(origin, destination), {
1525
- duration: SURFACE_RESIZE_DURATION_MS,
1578
+ duration,
1526
1579
  easing: "cubic-bezier(0.2, 0.7, 0.2, 1)"
1527
1580
  });
1528
1581
  this.surfaceResizeAnimation = animation;
1529
- this.surfaceResizeTimer = setTimeout(this.cancelSurfaceResize.bind(this), SURFACE_RESIZE_DURATION_MS);
1582
+ this.surfaceResizeTimer = setTimeout(this.cancelSurfaceResize.bind(this), duration);
1530
1583
  animation.addEventListener("finish", this.handleSurfaceResizeFinished, { once: true });
1531
1584
  }
1532
1585
  cancelPendingReveal() {
@@ -1,4 +1,4 @@
1
- import { O as resolveUiAppearance, k as sameSurfaceMeasurementBinding } from "./adapters-Dgy69gf0.js";
1
+ import { O as resolveUiAppearance, k as sameSurfaceMeasurementBinding } from "./adapters-m94YFj70.js";
2
2
  import { t as createWalletIframeSurfaceMeasurementReporter } from "./surface-measurement-reporter-D7BNehf4.js";
3
3
  //#region src/core/signingEngine/uiConfirm/ui/export-viewer-host.ts
4
4
  let mountedHost = null;
@@ -6,7 +6,7 @@ import { t as walletIframeRequestIdFromBoundary } from "./walletIframeIdentity-U
6
6
  import { o as isObject, s as isPlainObject } from "./validation-BphUDXs7.js";
7
7
  import { _ as parseHostedAuthMenuExternalAuthResolution, n as WALLET_IFRAME_PROTOCOL_VERSION_MISMATCH, p as parseHostedAuthMenuCancelPayload, r as WALLET_PROTOCOL_VERSION, v as parseHostedAuthMenuOpenRequest } from "./messages-B3UbNZYc.js";
8
8
  import { t as errorMessage } from "./errors-93h9uAW9.js";
9
- import { n as preloadWalletHostRecoveryCodeSurface, t as loadWalletHostRuntime } from "./runtimeLoader-Dxn8UA8B.js";
9
+ import { n as preloadWalletHostRecoveryCodeSurface, t as loadWalletHostRuntime } from "./runtimeLoader-ZXsvx9zX.js";
10
10
  //#region src/SeamsWeb/walletIframe/host/bootstrap.ts
11
11
  /**
12
12
  * Bootstrap tasks for the wallet iframe host.
@@ -387,7 +387,7 @@ function initWalletIFrame(options = {}) {
387
387
  ...state.walletConfigs || {},
388
388
  ...route.request.payload
389
389
  };
390
- if (CONFIRM_UI_SURFACES.some(({ selector }) => document.querySelector(selector))) (await import("./runtimeContext-BdTaYxJD.js")).syncActiveWalletHostRuntimeConfig(state);
390
+ if (CONFIRM_UI_SURFACES.some(({ selector }) => document.querySelector(selector))) (await import("./runtimeContext-CTt9ON27.js")).syncActiveWalletHostRuntimeConfig(state);
391
391
  post({
392
392
  type: "PONG",
393
393
  requestId
@@ -7,8 +7,8 @@ import "./participants-Bcnsa_ip.js";
7
7
  import "./capabilityKinds-jwCEaqBU.js";
8
8
  import "./evmFamilyEcdsaIdentity-_kuKSW35.js";
9
9
  import "./actions-DsBQcjBn.js";
10
- import { N as silentConfirmationConfig, O as resolveUiAppearance, f as ERROR_MESSAGES, j as UserConfirmationType, l as collectAuthenticationCredentialForExactNearChallengeB64u, m as isUserCancelledUserConfirm, n as createConfirmTxFlowAdapters, o as __isWalletIframeHostMode, t as createConfirmSession, u as collectAuthenticationCredentialForExactWalletChallengeB64u, x as getIntentDigest } from "./adapters-Dgy69gf0.js";
11
- import { n as removeExportViewerHostIfPresent, r as upsertExportViewerHost } from "./export-viewer-host-NhjFdpm-.js";
10
+ import { N as silentConfirmationConfig, O as resolveUiAppearance, f as ERROR_MESSAGES, j as UserConfirmationType, l as collectAuthenticationCredentialForExactNearChallengeB64u, m as isUserCancelledUserConfirm, n as createConfirmTxFlowAdapters, o as __isWalletIframeHostMode, t as createConfirmSession, u as collectAuthenticationCredentialForExactWalletChallengeB64u, x as getIntentDigest } from "./adapters-m94YFj70.js";
11
+ import { n as removeExportViewerHostIfPresent, r as upsertExportViewerHost } from "./export-viewer-host-CbqG8ZQV.js";
12
12
  import "./jsxRuntime.module-FAP0NE9p.js";
13
13
  //#region src/core/signingEngine/uiConfirm/handlers/flows/localOnly.ts
14
14
  function createRandomChallengeB64u() {