@seams/wallet 0.7.1 → 0.7.3

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 (509) hide show
  1. package/THIRD_PARTY_NOTICES.md +1 -105
  2. package/dist/.build-inputs.sha256 +1 -1
  3. package/dist/esm/SeamsWeb/SeamsWeb.js +10 -1
  4. package/dist/esm/SeamsWeb/operations/auth/login.js +16 -6
  5. package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
  6. package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +2 -3
  7. package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
  8. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
  9. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -5
  10. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
  11. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +4 -7
  12. package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +2 -8
  13. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
  14. package/dist/esm/SeamsWeb/publicApi/auth.js +2 -1
  15. package/dist/esm/SeamsWeb/publicApi/tempo.js +6 -0
  16. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +24 -15
  17. package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
  18. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +88 -222
  19. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
  20. package/dist/esm/build-paths.js +0 -2
  21. package/dist/esm/components/AccountMenuButton/MenuItem.css +17 -0
  22. package/dist/esm/components/AccountMenuButton/UserAccountButton.css +0 -5
  23. package/dist/esm/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
  24. package/dist/esm/components/QRCodeScanner.css +0 -15
  25. package/dist/esm/components/ShowQRCode.css +0 -14
  26. package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +5 -10
  27. package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
  28. package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +10 -13
  29. package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +69 -121
  30. package/dist/esm/core/signingEngine/assembly/ports/recovery.js +1 -1
  31. package/dist/esm/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
  32. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
  33. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
  34. package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
  35. package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
  36. package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -4
  37. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
  38. package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
  39. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
  40. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
  41. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +6 -4
  42. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
  43. package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
  44. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +2 -2
  45. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -0
  46. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
  47. package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
  48. package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
  49. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +3 -8
  50. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
  51. package/dist/esm/core/signingEngine/session/identity/selectLane.js +7 -21
  52. package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -7
  53. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +3 -15
  54. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
  55. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +1 -4
  56. package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -8
  57. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
  58. package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
  59. package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +20 -6
  60. package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
  61. package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
  62. package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
  63. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +3 -2
  64. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +18 -16
  65. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
  66. package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
  67. package/dist/esm/core/signingEngine/workerManager/workerTransport.js +1 -5
  68. package/dist/esm/react/SeamsWeb/SeamsWeb.js +10 -1
  69. package/dist/esm/react/SeamsWeb/operations/auth/login.js +16 -6
  70. package/dist/esm/react/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
  71. package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +2 -3
  72. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
  73. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
  74. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -5
  75. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
  76. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +4 -7
  77. package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +2 -8
  78. package/dist/esm/react/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
  79. package/dist/esm/react/SeamsWeb/publicApi/auth.js +2 -1
  80. package/dist/esm/react/SeamsWeb/publicApi/tempo.js +6 -0
  81. package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +24 -15
  82. package/dist/esm/react/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
  83. package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
  84. package/dist/esm/react/build-paths.js +0 -2
  85. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +2 -2
  86. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +1 -1
  87. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +4 -4
  88. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  89. package/dist/esm/react/components/AccountMenuButton/MenuItem.css +17 -0
  90. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +0 -5
  91. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +7 -7
  92. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
  93. package/dist/esm/react/components/AccountMenuButton/icons/GlobeIcon.js +12 -27
  94. package/dist/esm/react/components/AccountMenuButton/icons/KeyIcon.js +12 -27
  95. package/dist/esm/react/components/AccountMenuButton/icons/LaptopIcon.js +4 -19
  96. package/dist/esm/react/components/AccountMenuButton/icons/LinkIcon.js +4 -19
  97. package/dist/esm/react/components/AccountMenuButton/icons/LockIcon.js +11 -26
  98. package/dist/esm/react/components/AccountMenuButton/icons/MailIcon.js +10 -25
  99. package/dist/esm/react/components/AccountMenuButton/icons/RecoveryCodesIcon.js +16 -31
  100. package/dist/esm/react/components/AccountMenuButton/icons/ScanIcon.js +9 -24
  101. package/dist/esm/react/components/AccountMenuButton/icons/SlidersIcon.js +14 -29
  102. package/dist/esm/react/components/AccountMenuButton/icons/SmartphoneIcon.js +11 -26
  103. package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +27 -0
  104. package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +7 -17
  105. package/dist/esm/react/components/AccountMenuButton/index.js +6 -6
  106. package/dist/esm/react/components/QRCodeScanner.css +0 -15
  107. package/dist/esm/react/components/ShowQRCode.css +0 -14
  108. package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -2
  109. package/dist/esm/react/context/useWalletIframeLifecycle.js +0 -14
  110. package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +5 -10
  111. package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
  112. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +4 -4
  113. package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +1 -1
  114. package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
  115. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
  116. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
  117. package/dist/esm/react/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
  118. package/dist/esm/react/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
  119. package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -4
  120. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
  121. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
  122. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
  123. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
  124. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +6 -4
  125. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
  126. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
  127. package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +2 -2
  128. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -0
  129. package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
  130. package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
  131. package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
  132. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +3 -8
  133. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
  134. package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +7 -21
  135. package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -7
  136. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +3 -15
  137. package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
  138. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +1 -4
  139. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -8
  140. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
  141. package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
  142. package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +20 -6
  143. package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
  144. package/dist/esm/react/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
  145. package/dist/esm/react/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
  146. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +3 -2
  147. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +18 -16
  148. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
  149. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
  150. package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +1 -5
  151. package/dist/esm/react/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
  152. package/dist/esm/react/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  153. package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
  154. package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
  155. package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
  156. package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +5 -8
  157. package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +5 -1
  158. package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +3 -7
  159. package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +12 -16
  160. package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +4 -1
  161. package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
  162. package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  163. package/dist/esm/react/shared-ts/src/utils/exactKeys.js +17 -0
  164. package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +2 -8
  165. package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +2 -5
  166. package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
  167. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
  168. package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  169. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
  170. package/dist/esm/react/styles/styles.css +17 -86
  171. package/dist/esm/react/utils/menuItemBlink.js +24 -0
  172. package/dist/esm/sdk/{accountLifecycle-BAGG_rbk.js → accountLifecycle-zthG08aC.js} +1 -1
  173. package/dist/esm/sdk/{adapters-B4JeK1nJ.js → adapters-Dli9XAZp.js} +20 -48
  174. package/dist/{public/sdk/canonicalSignerErrorCode-CRoJMVpp.js → esm/sdk/canonicalSignerErrorCode-BBIk365e.js} +1 -15
  175. package/dist/esm/sdk/{challengeDelivery-Dd0586fo.js → challengeDelivery-DZtopOAG.js} +1 -1
  176. package/dist/{public/sdk/configHelpers-vAQCzUD0.js → esm/sdk/configHelpers-D1EqxVxg.js} +1 -1
  177. package/dist/{public/sdk/defaultConfigs-B3c16M_8.js → esm/sdk/defaultConfigs-D_33pPT9.js} +3 -3
  178. package/dist/esm/sdk/{display-KdIL0ff7.js → display-P4nQF-yc.js} +1 -1
  179. package/dist/esm/sdk/{ecdsaCapabilityManifest-kzO_fW09.js → ecdsaCapabilityManifest-DuMs0VtU.js} +6 -18
  180. package/dist/{public/sdk/ecdsaPresignLifecycle-BFOTNYCK.js → esm/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js} +2 -2
  181. package/dist/esm/sdk/{ecdsaWalletRecords-Cz4m6bIz.js → ecdsaWalletRecords-D42rtA9z.js} +2 -2
  182. package/dist/{public/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js → esm/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js} +20 -34
  183. package/dist/esm/sdk/{exactSessionState-CiD5fBEs.js → exactSessionState-LWDUXydN.js} +10 -30
  184. package/dist/esm/sdk/{exactSigningLaneIdentity-DQeqPMST.js → exactSigningLaneIdentity-m6uTXV_A.js} +1 -1
  185. package/dist/esm/sdk/{export-viewer-host-ZqA2Yz3H.js → export-viewer-host-rWMSQQMP.js} +1 -1
  186. package/dist/{public/sdk/host-BWBbCAMu.js → esm/sdk/host-CnV8nAUe.js} +3 -3
  187. package/dist/{public/sdk/keyMaterialBrands-CX41hur6.js → esm/sdk/keyMaterialBrands-CogGAAZn.js} +1 -1
  188. package/dist/{public/sdk/localOnly-Bg8UuLZ5.js → esm/sdk/localOnly-DTpa2jD5.js} +2 -2
  189. package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-DPb0s3hQ.js → nearEd25519YaoMaterialActivation-B5GecIvq.js} +38 -28
  190. package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-BeD-SmbK.js → nearEd25519YaoSigningPreparation-CdOT5RuC.js} +3 -3
  191. package/dist/esm/sdk/{passkey-custody-Bk1jAknm.js → passkey-custody-UUHbC0pk.js} +1 -1
  192. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-DLzBb3WQ.js → pendingWalletRecoveryCodeBackup-BWluQMbt.js} +1 -1
  193. package/dist/esm/sdk/{recovery-entrypoint-DW2tGyMs.js → recovery-entrypoint-C3fydnRC.js} +10 -10
  194. package/dist/esm/sdk/{registration-BZDzDv91.js → registration-Ct_7LdGf.js} +30 -42
  195. package/dist/esm/sdk/{registration-BzVHODuD.js → registration-DHERU8R_.js} +1 -1
  196. package/dist/esm/sdk/{registrationAccounts-CKku_Sgy.js → registrationAccounts-DmWPzf3T.js} +2 -2
  197. package/dist/esm/sdk/{registrationIntent-D0PxwEY4.js → registrationIntent-4zwk16zQ.js} +3 -9
  198. package/dist/esm/sdk/{registrationPreparationPreload-CIAuRlxI.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
  199. package/dist/esm/sdk/{registrationSignerPlan-CAikVZZQ.js → registrationSignerPlan-DhV8VAob.js} +2 -5
  200. package/dist/{public/sdk/router-C5lF_J_u.js → esm/sdk/router-B4ZWFy9E.js} +7 -7
  201. package/dist/{public/sdk/routerAbNormalSigning-fhvpDtmY.js → esm/sdk/routerAbNormalSigning-CVFEOZ2m.js} +1 -1
  202. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  203. package/dist/esm/sdk/{runtime-auth-DFTqwj3u.js → runtime-auth-DdfynDKt.js} +126 -273
  204. package/dist/esm/sdk/{runtime-device-link-C1Oub8Lw.js → runtime-device-link-HJ2ptFux.js} +12 -12
  205. package/dist/esm/sdk/{runtime-ecdsa-tempo-rkWwolw1.js → runtime-ecdsa-tempo-BGLsTAWR.js} +13 -13
  206. package/dist/{public/sdk/runtime-email-otp-vuUG5LYl.js → esm/sdk/runtime-email-otp-CpX88VZJ.js} +12 -12
  207. package/dist/{public/sdk/runtime-export-FZWj0HxJ.js → esm/sdk/runtime-export-DIVY473L.js} +13 -13
  208. package/dist/esm/sdk/{runtime-near-B9cjurVD.js → runtime-near-CxtQi4b2.js} +12 -12
  209. package/dist/esm/sdk/{runtime-preferences-Dq0bfyS5.js → runtime-preferences-vnJc5Svg.js} +12 -12
  210. package/dist/esm/sdk/{runtime-recovery-codes-bTm3fLV4.js → runtime-recovery-codes-BSCLVHQj.js} +6 -6
  211. package/dist/{public/sdk/runtime-recovery-C-vfFKF3.js → esm/sdk/runtime-recovery-i08vCJST.js} +12 -12
  212. package/dist/esm/sdk/{runtimeContext-iLXnxVlZ.js → runtimeContext-D3TBExQ6.js} +346 -305
  213. package/dist/esm/sdk/{runtimeLoader-hod6T2-m.js → runtimeLoader-DQVEFVaW.js} +11 -11
  214. package/dist/{public/sdk/secp256k1-el9aE4Sv.js → esm/sdk/secp256k1-D-I6Gh4D.js} +36 -25
  215. package/dist/esm/sdk/{sessionPolicy-CHiilOAB.js → sessionPolicy-DO-MkL65.js} +8 -1
  216. package/dist/{public/sdk/signEvmFamily-e4IWWsZs.js → esm/sdk/signEvmFamily-C3C97Th-.js} +43 -102
  217. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +2 -2
  218. package/dist/{public/sdk/signEvmWithUiConfirm-C61TCBnh.js → esm/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +1 -1
  219. package/dist/esm/sdk/{signNear-Bblwn2kT.js → signNear-Bmb2fj_a.js} +19 -55
  220. package/dist/{public/sdk/signerLoader-D7Aey0FD.js → esm/sdk/signerLoader-B7orgq5Z.js} +3 -3
  221. package/dist/{public/sdk/signingFlow-rZfPegH9.js → esm/sdk/signingFlow-SZ8t_lxv.js} +9 -10
  222. package/dist/esm/sdk/{trace-rHe0wz7q.js → trace-DKLQZvec.js} +0 -1
  223. package/dist/esm/sdk/{transactionState-DP9O8F6f.js → transactionState-CJ4U8pcl.js} +50 -41
  224. package/dist/esm/sdk/tx-confirm-ui.js +11 -46
  225. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  226. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  227. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  228. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  229. package/dist/{public/sdk/wallet-recovery-Bz9qKgaL.js → esm/sdk/wallet-recovery-BX61-79p.js} +3 -6
  230. package/dist/esm/sdk/wallet-ui.css +41 -301
  231. package/dist/{public/sdk/walletAuthority-BQBxgUBn.js → esm/sdk/walletAuthority-DD9T25F6.js} +1 -5
  232. package/dist/esm/sdk/{walletCustodyEcdsaContinuity-Hn4ORIbf.js → walletCustodyEcdsaContinuity-CF4bv9OI.js} +166 -296
  233. package/dist/esm/sdk/{walletRecoveryCommit-sjGNTHUj.js → walletRecoveryCommit-AI1AtIRP.js} +81 -139
  234. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
  235. package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  236. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
  237. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
  238. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
  239. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -8
  240. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -1
  241. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +3 -7
  242. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +12 -16
  243. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +4 -1
  244. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
  245. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  246. package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
  247. package/dist/esm/shared-ts/src/utils/registrationIntent.js +2 -8
  248. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +2 -5
  249. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
  250. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
  251. package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  252. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
  253. package/dist/esm/utils/menuItemBlink.js +24 -0
  254. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +1 -1
  255. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  256. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  257. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  258. package/dist/public/headers.manifest.json +1 -1
  259. package/dist/public/sdk/{accountLifecycle-BAGG_rbk.js → accountLifecycle-zthG08aC.js} +1 -1
  260. package/dist/public/sdk/{adapters-B4JeK1nJ.js → adapters-Dli9XAZp.js} +20 -48
  261. package/dist/{esm/sdk/canonicalSignerErrorCode-CRoJMVpp.js → public/sdk/canonicalSignerErrorCode-BBIk365e.js} +1 -15
  262. package/dist/public/sdk/{challengeDelivery-Dd0586fo.js → challengeDelivery-DZtopOAG.js} +1 -1
  263. package/dist/{esm/sdk/configHelpers-vAQCzUD0.js → public/sdk/configHelpers-D1EqxVxg.js} +1 -1
  264. package/dist/{esm/sdk/defaultConfigs-B3c16M_8.js → public/sdk/defaultConfigs-D_33pPT9.js} +3 -3
  265. package/dist/public/sdk/{display-KdIL0ff7.js → display-P4nQF-yc.js} +1 -1
  266. package/dist/public/sdk/{ecdsaCapabilityManifest-kzO_fW09.js → ecdsaCapabilityManifest-DuMs0VtU.js} +6 -18
  267. package/dist/{esm/sdk/ecdsaPresignLifecycle-BFOTNYCK.js → public/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js} +2 -2
  268. package/dist/public/sdk/{ecdsaWalletRecords-Cz4m6bIz.js → ecdsaWalletRecords-D42rtA9z.js} +2 -2
  269. package/dist/{esm/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js → public/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js} +20 -34
  270. package/dist/public/sdk/{exactSessionState-CiD5fBEs.js → exactSessionState-LWDUXydN.js} +10 -30
  271. package/dist/public/sdk/{exactSigningLaneIdentity-DQeqPMST.js → exactSigningLaneIdentity-m6uTXV_A.js} +1 -1
  272. package/dist/public/sdk/{export-viewer-host-ZqA2Yz3H.js → export-viewer-host-rWMSQQMP.js} +1 -1
  273. package/dist/{esm/sdk/host-BWBbCAMu.js → public/sdk/host-CnV8nAUe.js} +3 -3
  274. package/dist/{esm/sdk/keyMaterialBrands-CX41hur6.js → public/sdk/keyMaterialBrands-CogGAAZn.js} +1 -1
  275. package/dist/{esm/sdk/localOnly-Bg8UuLZ5.js → public/sdk/localOnly-DTpa2jD5.js} +2 -2
  276. package/dist/public/sdk/{nearEd25519YaoMaterialActivation-DPb0s3hQ.js → nearEd25519YaoMaterialActivation-B5GecIvq.js} +38 -28
  277. package/dist/public/sdk/{nearEd25519YaoSigningPreparation-BeD-SmbK.js → nearEd25519YaoSigningPreparation-CdOT5RuC.js} +3 -3
  278. package/dist/public/sdk/{passkey-custody-Bk1jAknm.js → passkey-custody-UUHbC0pk.js} +1 -1
  279. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-DLzBb3WQ.js → pendingWalletRecoveryCodeBackup-BWluQMbt.js} +1 -1
  280. package/dist/public/sdk/{recovery-entrypoint-DW2tGyMs.js → recovery-entrypoint-C3fydnRC.js} +10 -10
  281. package/dist/public/sdk/{registration-BZDzDv91.js → registration-Ct_7LdGf.js} +30 -42
  282. package/dist/public/sdk/{registration-BzVHODuD.js → registration-DHERU8R_.js} +1 -1
  283. package/dist/public/sdk/{registrationAccounts-CKku_Sgy.js → registrationAccounts-DmWPzf3T.js} +2 -2
  284. package/dist/public/sdk/{registrationIntent-D0PxwEY4.js → registrationIntent-4zwk16zQ.js} +3 -9
  285. package/dist/public/sdk/{registrationPreparationPreload-CIAuRlxI.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
  286. package/dist/public/sdk/{registrationSignerPlan-CAikVZZQ.js → registrationSignerPlan-DhV8VAob.js} +2 -5
  287. package/dist/{esm/sdk/router-C5lF_J_u.js → public/sdk/router-B4ZWFy9E.js} +7 -7
  288. package/dist/{esm/sdk/routerAbNormalSigning-fhvpDtmY.js → public/sdk/routerAbNormalSigning-CVFEOZ2m.js} +1 -1
  289. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  290. package/dist/public/sdk/{runtime-auth-DFTqwj3u.js → runtime-auth-DdfynDKt.js} +126 -273
  291. package/dist/public/sdk/{runtime-device-link-C1Oub8Lw.js → runtime-device-link-HJ2ptFux.js} +12 -12
  292. package/dist/public/sdk/{runtime-ecdsa-tempo-rkWwolw1.js → runtime-ecdsa-tempo-BGLsTAWR.js} +13 -13
  293. package/dist/{esm/sdk/runtime-email-otp-vuUG5LYl.js → public/sdk/runtime-email-otp-CpX88VZJ.js} +12 -12
  294. package/dist/{esm/sdk/runtime-export-FZWj0HxJ.js → public/sdk/runtime-export-DIVY473L.js} +13 -13
  295. package/dist/public/sdk/{runtime-near-B9cjurVD.js → runtime-near-CxtQi4b2.js} +12 -12
  296. package/dist/public/sdk/{runtime-preferences-Dq0bfyS5.js → runtime-preferences-vnJc5Svg.js} +12 -12
  297. package/dist/public/sdk/{runtime-recovery-codes-bTm3fLV4.js → runtime-recovery-codes-BSCLVHQj.js} +6 -6
  298. package/dist/{esm/sdk/runtime-recovery-C-vfFKF3.js → public/sdk/runtime-recovery-i08vCJST.js} +12 -12
  299. package/dist/public/sdk/{runtimeContext-iLXnxVlZ.js → runtimeContext-D3TBExQ6.js} +346 -305
  300. package/dist/public/sdk/{runtimeLoader-hod6T2-m.js → runtimeLoader-DQVEFVaW.js} +11 -11
  301. package/dist/{esm/sdk/secp256k1-el9aE4Sv.js → public/sdk/secp256k1-D-I6Gh4D.js} +36 -25
  302. package/dist/public/sdk/{sessionPolicy-CHiilOAB.js → sessionPolicy-DO-MkL65.js} +8 -1
  303. package/dist/{esm/sdk/signEvmFamily-e4IWWsZs.js → public/sdk/signEvmFamily-C3C97Th-.js} +43 -102
  304. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +2 -2
  305. package/dist/{esm/sdk/signEvmWithUiConfirm-C61TCBnh.js → public/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +1 -1
  306. package/dist/public/sdk/{signNear-Bblwn2kT.js → signNear-Bmb2fj_a.js} +19 -55
  307. package/dist/{esm/sdk/signerLoader-D7Aey0FD.js → public/sdk/signerLoader-B7orgq5Z.js} +3 -3
  308. package/dist/{esm/sdk/signingFlow-rZfPegH9.js → public/sdk/signingFlow-SZ8t_lxv.js} +9 -10
  309. package/dist/public/sdk/{trace-rHe0wz7q.js → trace-DKLQZvec.js} +0 -1
  310. package/dist/public/sdk/{transactionState-DP9O8F6f.js → transactionState-CJ4U8pcl.js} +50 -41
  311. package/dist/public/sdk/tx-confirm-ui.js +11 -46
  312. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  313. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  314. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  315. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  316. package/dist/{esm/sdk/wallet-recovery-Bz9qKgaL.js → public/sdk/wallet-recovery-BX61-79p.js} +3 -6
  317. package/dist/public/sdk/wallet-ui.css +41 -301
  318. package/dist/{esm/sdk/walletAuthority-BQBxgUBn.js → public/sdk/walletAuthority-DD9T25F6.js} +1 -5
  319. package/dist/public/sdk/{walletCustodyEcdsaContinuity-Hn4ORIbf.js → walletCustodyEcdsaContinuity-CF4bv9OI.js} +166 -296
  320. package/dist/public/sdk/{walletRecoveryCommit-sjGNTHUj.js → walletRecoveryCommit-AI1AtIRP.js} +81 -139
  321. package/dist/public/sdk/workers/device-linking-key.worker.js +106 -105
  322. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +15 -24
  323. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +58 -73
  324. package/dist/public/sdk/workers/email-otp.worker.js +13 -16
  325. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  326. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  327. package/dist/public/sdk/workers/near_signer.wasm +0 -0
  328. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  329. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  330. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  331. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  332. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +7 -7
  333. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  334. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  335. package/dist/public/wallet-assets.manifest.json +112 -112
  336. package/dist/public/wallet-service/index.html +4 -4
  337. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -1
  338. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +9 -2
  339. package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
  340. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -4
  341. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +5 -63
  342. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +2 -0
  343. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +5 -12
  344. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -0
  345. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -1
  346. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +1 -10
  347. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +3 -5
  348. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
  349. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
  350. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +6 -0
  351. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +1 -0
  352. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +2 -11
  353. package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
  354. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +2 -0
  355. package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
  356. package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
  357. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -4
  358. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +1 -0
  359. package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +3 -8
  360. package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +7 -19
  361. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +3 -1
  362. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +1 -0
  363. package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +3 -4
  364. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
  365. package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
  366. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -11
  367. package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
  368. package/dist/types/shared-ts/src/utils/variant.d.ts +18 -0
  369. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +3 -6
  370. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +4 -2
  371. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
  372. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
  373. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
  374. package/dist/types/wallet/build-paths.d.ts +1 -2
  375. package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +2 -0
  376. package/dist/types/wallet/src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.d.ts +11 -0
  377. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +2 -1
  378. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +3 -17
  379. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/walletActivation.d.ts +3 -4
  380. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.d.ts +2 -10
  381. package/dist/types/wallet/src/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.d.ts +1 -1
  382. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +7 -16
  383. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.d.ts +2 -1
  384. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +1 -2
  385. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -15
  386. package/dist/types/wallet/src/core/accountData/near/keyMaterial.d.ts +3 -5
  387. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +2 -8
  388. package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +3 -4
  389. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.d.ts +7 -12
  390. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +3 -6
  391. package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +9 -38
  392. package/dist/types/wallet/src/core/platform/http.d.ts +3 -5
  393. package/dist/types/wallet/src/core/platform/ports.d.ts +3 -7
  394. package/dist/types/wallet/src/core/rpcClients/near/NearRpcError.d.ts +1 -2
  395. package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +2 -11
  396. package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +2 -8
  397. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryPrepare.d.ts +2 -14
  398. package/dist/types/wallet/src/core/signingEngine/chains/near/payloads.d.ts +2 -10
  399. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaDerivationExport.d.ts +3 -4
  400. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportFlow.d.ts +4 -8
  401. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportFlow.d.ts +7 -6
  402. package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +1 -10
  403. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +1 -1
  404. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.d.ts +3 -4
  405. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/nonceResolution.d.ts +3 -4
  406. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +5 -8
  407. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.d.ts +1 -0
  408. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +10 -5
  409. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +3 -10
  410. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.d.ts +3 -5
  411. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +3 -7
  412. package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +3 -4
  413. package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +3 -5
  414. package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +3 -5
  415. package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +3 -5
  416. package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +2 -2
  417. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +5 -22
  418. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.d.ts +3 -14
  419. package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +1 -1
  420. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +37 -14
  421. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaPublication.d.ts +3 -5
  422. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +2 -6
  423. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/walletUnlock.d.ts +6 -15
  424. package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +3 -5
  425. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +3 -4
  426. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionReader.d.ts +3 -6
  427. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +5 -8
  428. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +3 -5
  429. package/dist/types/wallet/src/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.d.ts +5 -10
  430. package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +3 -6
  431. package/dist/types/wallet/src/core/signingEngine/session/material/capabilityPreparationResult.d.ts +3 -22
  432. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityHydration.d.ts +3 -4
  433. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +3 -4
  434. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +5 -0
  435. package/dist/types/wallet/src/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.d.ts +5 -10
  436. package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +3 -8
  437. package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +3 -5
  438. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +3 -4
  439. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +3 -4
  440. package/dist/types/wallet/src/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.d.ts +7 -25
  441. package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/sealedRecovery.types.d.ts +3 -4
  442. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +3 -16
  443. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.d.ts +6 -26
  444. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +3 -4
  445. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmTypes.d.ts +11 -36
  446. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +5 -8
  447. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +3 -5
  448. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +3 -8
  449. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +7 -22
  450. package/dist/types/wallet/src/core/signingEngine/threshold/commitQueueShared.d.ts +10 -10
  451. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.d.ts +1 -1
  452. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +3 -4
  453. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/signingQueue.d.ts +1 -7
  454. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +1 -6
  455. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/walletSession.d.ts +6 -36
  456. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +3 -4
  457. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +5 -9
  458. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +5 -16
  459. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +3 -0
  460. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +2 -11
  461. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +0 -2
  462. package/dist/types/wallet/src/core/types/linkDevice.d.ts +3 -18
  463. package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +5 -18
  464. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +4 -21
  465. package/dist/types/wallet/src/core/types/seams.d.ts +17 -71
  466. package/dist/types/wallet/src/externalEvm/types.d.ts +5 -12
  467. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -4
  468. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -4
  469. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -4
  470. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -4
  471. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -4
  472. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -4
  473. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -4
  474. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -4
  475. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -4
  476. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -4
  477. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +5 -0
  478. package/dist/types/wallet/src/react/hooks/useAccountInput.d.ts +1 -22
  479. package/dist/types/wallet/src/react/transactionReview/controller.d.ts +3 -10
  480. package/dist/types/wallet/src/utils/menuItemBlink.d.ts +9 -0
  481. package/dist/workers/device-linking-key.worker.js +106 -105
  482. package/dist/workers/ecdsa-derivation-client.worker.js +15 -24
  483. package/dist/workers/ecdsa-presign-client.worker.js +58 -73
  484. package/dist/workers/email-otp.worker.js +13 -16
  485. package/dist/workers/evm_crypto.wasm +0 -0
  486. package/dist/workers/evm_crypto_bg.wasm +0 -0
  487. package/dist/workers/near_signer.wasm +0 -0
  488. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  489. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  490. package/dist/workers/tempo_signer.wasm +0 -0
  491. package/dist/workers/tempo_signer_bg.wasm +0 -0
  492. package/dist/workers/wallet-custody-ceremony.worker.js +7 -7
  493. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  494. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  495. package/package.json +1 -1
  496. package/dist/esm/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  497. package/dist/esm/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
  498. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  499. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  500. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  501. package/dist/esm/react/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  502. package/dist/esm/react/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
  503. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  504. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  505. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  506. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -43
  507. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.d.ts +0 -5
  508. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.d.ts +0 -5
  509. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.d.ts +0 -5
@@ -49,11 +49,12 @@ import { fullWalletLoginRequired, invalidWalletSigningMaterial, isWalletSigningS
49
49
  import { buildBlockedMpcCapabilityHydrationPlan, buildRehydrateMaterialActivationHydrationPlan, buildUseLiveRuntimeHydrationPlan } from "../../core/signingEngine/session/material/mpcCapabilityHydration.js";
50
50
  import { nearEd25519YaoMaterialActivationFromMetadata, nearEd25519YaoRuntimeRef, resolveNearEd25519YaoCapabilityHydrationV1 } from "../../core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js";
51
51
  import { buildThresholdEd25519WebAuthnPrfSecretSource } from "../../core/signingEngine/threshold/ed25519/walletSession.js";
52
- import { resolveThresholdEd25519CommitQueueKey, withThresholdEd25519CommitQueue } from "../../core/signingEngine/threshold/ed25519/commitQueue.js";
52
+ import { clearThresholdCommitQueue, resolveThresholdCommitQueueKey } from "../../core/signingEngine/threshold/commitQueueShared.js";
53
+ import { withThresholdEd25519CommitQueue } from "../../core/signingEngine/threshold/ed25519/commitQueue.js";
53
54
  import { buildAuthorizationRequiredNearEd25519YaoSigningPreparation, buildAuthorizedNearEd25519YaoSigningPreparation, classifyNearEd25519WalletSessionAuthorization, nearEd25519SessionMatchesMaterialActivation } from "../../core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js";
55
+ import { ed25519DurableMaterialLocator } from "../../core/signingEngine/session/sealedRecovery/materialActivationKey.js";
54
56
  import { isConcreteAvailableSigningLane } from "../../core/signingEngine/session/availability/availableSigningLanes.js";
55
57
  import { signNear } from "../../core/signingEngine/flows/signNear/signNear.js";
56
- import { ed25519DurableMaterialLocator } from "../../core/signingEngine/session/sealedRecovery/materialActivationKey.js";
57
58
  import { buildRouterAbEd25519SigningWalletSession } from "../../core/signingEngine/session/routerAbSigningWalletSession.js";
58
59
  import { listExactSealedSessionsForWallet, readExactEd25519SealedSession } from "../../core/signingEngine/session/persistence/sealedSessionStore.js";
59
60
  import { ed25519SealedRuntimeAuthorityRef, parseExactEd25519SealedSessionRuntime, resolveExactEd25519SealedSessionRuntimeForLane, resolveExactEd25519SealedSessionRuntimeForWalletSubject } from "../../core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js";
@@ -69,7 +70,7 @@ import { persistVerifiedEmailOtpAuthorityAfterUnlock, walletAuthAuthorityRefForV
69
70
  import { isRetryableSealedRefreshCapabilityFetchError } from "../../core/signingEngine/session/warmCapabilities/sealedRefreshParity.js";
70
71
  import { buildExactEcdsaPasskeyOwnerLaneScope, buildExactLinkedEmailOtpOwnerLaneScope, buildExactPasskeyOwnerLaneScope, resolveExactOwnerLaneScope, resolveExactWalletAuthAuthority } from "../../core/signingEngine/session/identity/ownerLaneScope.js";
71
72
  import { buildFreshEmailOtpRoutePlan } from "../../core/signingEngine/session/emailOtp/routePlan.js";
72
- import { clearThresholdEcdsaSigningQueue, withThresholdEcdsaSigningQueue } from "../../core/signingEngine/threshold/ecdsa/signingQueue.js";
73
+ import { withThresholdEcdsaSigningQueue } from "../../core/signingEngine/threshold/ecdsa/signingQueue.js";
73
74
  import { reconcileTempoNonceLane, reportTempoBroadcastAccepted, reportTempoBroadcastRejected, reportTempoDroppedOrReplaced, reportTempoFinalized, signEvmFamily } from "../../core/signingEngine/flows/signEvmFamily/signEvmFamily.js";
74
75
  import { UserConfirmationType } from "../../core/signingEngine/stepUpConfirmation/userConfirmationType.js";
75
76
  import { exportKeypairWithUI, resolveExactKeyExportLane } from "../../core/signingEngine/flows/recovery/public.js";
@@ -1844,18 +1845,15 @@ var BrowserSigningSurface = class {
1844
1845
  const rehydrationKey = nearEd25519CapabilityRehydrationKey(subject);
1845
1846
  const existingRehydration = this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey);
1846
1847
  if (existingRehydration) {
1847
- const reboundSubject = await existingRehydration;
1848
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
1848
+ const rebound = await existingRehydration;
1849
+ const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(rebound.subject);
1849
1850
  if (rehydrated) return rehydrated;
1850
1851
  throw new Error("[SigningEngine][near] joined rehydration did not publish an active lane");
1851
1852
  }
1852
1853
  const rehydration = this.rehydrateNearEd25519YaoCapabilityForSigning(subject);
1853
1854
  this.nearEd25519CapabilityRehydrationBySubject.set(rehydrationKey, rehydration);
1854
1855
  try {
1855
- const reboundSubject = await rehydration;
1856
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
1857
- if (rehydrated) return rehydrated;
1858
- throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
1856
+ return (await rehydration).material;
1859
1857
  } finally {
1860
1858
  if (this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey) === rehydration) this.nearEd25519CapabilityRehydrationBySubject.delete(rehydrationKey);
1861
1859
  }
@@ -3181,7 +3179,14 @@ var BrowserSigningSurface = class {
3181
3179
  passkeyPrfFirstB64u: warmSessionClaim.prfFirstB64u
3182
3180
  } : { kind: "unavailable" }
3183
3181
  });
3184
- if (liveHydration.kind === "live") return subject;
3182
+ if (liveHydration.kind === "live") {
3183
+ const material = await this.resolveActiveNearEd25519YaoSigningLane(subject);
3184
+ if (!material) throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
3185
+ return {
3186
+ subject,
3187
+ material
3188
+ };
3189
+ }
3185
3190
  if (liveHydration.kind === "rehydrated") {
3186
3191
  if (!warmSessionClaim.ok) {
3187
3192
  liveHydration.activeClient.dispose();
@@ -3214,8 +3219,12 @@ var BrowserSigningSurface = class {
3214
3219
  subject,
3215
3220
  walletSessionState
3216
3221
  });
3217
- if (!await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject)) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
3218
- return reboundSubject;
3222
+ const published = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
3223
+ if (!published) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
3224
+ return {
3225
+ subject: reboundSubject,
3226
+ material: published
3227
+ };
3219
3228
  } catch (error) {
3220
3229
  liveHydration.activeClient.dispose();
3221
3230
  throw error;
@@ -3362,7 +3371,7 @@ var BrowserSigningSurface = class {
3362
3371
  async withExactEd25519MaterialOwner(args) {
3363
3372
  return await withThresholdEd25519CommitQueue({
3364
3373
  queueByKey: this.thresholdEd25519CommitQueueByKey,
3365
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.materialActivation }),
3374
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.materialActivation }),
3366
3375
  nearAccountId: args.nearAccountId,
3367
3376
  enabled: true,
3368
3377
  task: args.task
@@ -3661,7 +3670,7 @@ var BrowserSigningSurface = class {
3661
3670
  if (args.credentialExpectation.kind === "expect_exact_operation_credential" && (args.credentialExpectation.operationCredential.walletSessionId !== exactAuthorization.operationCredential.walletSessionId || args.credentialExpectation.operationCredential.token !== exactAuthorization.operationCredential.token)) throw new Error("[SigningEngine][near] expected Email OTP operation credential changed");
3662
3671
  return await withThresholdEd25519CommitQueue({
3663
3672
  queueByKey: this.thresholdEd25519CommitQueueByKey,
3664
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.metadata.materialActivation }),
3673
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.metadata.materialActivation }),
3665
3674
  nearAccountId: toAccountId(args.bootstrap.session.nearAccountId),
3666
3675
  enabled: args.commitQueue === "acquire",
3667
3676
  task: async () => {
@@ -3881,7 +3890,7 @@ var BrowserSigningSurface = class {
3881
3890
  this.ed25519YaoPageLifecycleOwner.dispose();
3882
3891
  }
3883
3892
  clearThresholdEcdsaSigningQueue() {
3884
- clearThresholdEcdsaSigningQueue(this.thresholdEcdsaSigningQueueByKey);
3893
+ clearThresholdCommitQueue(this.thresholdEcdsaSigningQueueByKey);
3885
3894
  }
3886
3895
  async clearLinkedEcdsaHolderMaterials() {
3887
3896
  await clearLinkedDeviceEcdsaHolderMaterialsWasm({ workerCtx: this.signerWorkerManager.getContext() });
@@ -0,0 +1,29 @@
1
+ import { WalletSessionStatusReadScope } from "../../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
2
+ import { walletSessionRefFromSession } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
3
+ //#region src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.ts
4
+ async function scheduleRestoredSessionPresignaturePrefills(args) {
5
+ switch (args.state.kind) {
6
+ case "active_session": break;
7
+ case "wallet_unlocked_without_signing_session":
8
+ if (args.state.reason !== "exhausted") return;
9
+ break;
10
+ case "wallet_locked":
11
+ case "wallet_authenticated_identity_unresolvable":
12
+ case "expired_session": return;
13
+ default:
14
+ args.state;
15
+ return;
16
+ }
17
+ const walletSession = walletSessionRefFromSession({ walletId: args.state.walletId });
18
+ const statusReads = new WalletSessionStatusReadScope();
19
+ const prefills = [];
20
+ for (const chainTarget of args.chainTargets) prefills.push(args.prefill({
21
+ walletSession,
22
+ chainTarget
23
+ }, statusReads));
24
+ await Promise.all(prefills);
25
+ }
26
+ //#endregion
27
+ export { scheduleRestoredSessionPresignaturePrefills };
28
+
29
+ //# sourceMappingURL=restoredSessionPresignaturePrefill.js.map
@@ -1,5 +1,6 @@
1
1
  import { isLinkedDeviceTargetEmailAddressV1 } from "../../../../../core/types/linkDevice.js";
2
2
  import { isAuthMenuActionReady, isAuthMenuGoogleActionReady, isAuthMenuLoadingStatus, isAuthMenuReady, resolveAuthMenuLoginAccount } from "../../auth-menu/domain.js";
3
+ import { blinkMenuItem } from "../../../../../utils/menuItemBlink.js";
3
4
  import { Component, Fragment } from "preact";
4
5
  import { Fragment as Fragment$1, jsx, jsxs } from "preact/jsx-runtime";
5
6
  //#region src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.tsx
@@ -46,54 +47,33 @@ function passkeyButtonLabel(mode) {
46
47
  function googleButtonLabel(mode) {
47
48
  return mode === "register" ? "Sign up with Google" : "Sign in with Google";
48
49
  }
49
- function fingerprintIcon() {
50
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("svg", {
51
- width: "22",
52
- height: "22",
50
+ function strokeIcon(size, strokeWidth, ...shapes) {
51
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("svg", {
52
+ width: size,
53
+ height: size,
53
54
  viewBox: "0 0 24 24",
54
55
  fill: "none",
55
56
  stroke: "currentColor",
56
- "stroke-width": "1.5",
57
+ "stroke-width": strokeWidth,
57
58
  "stroke-linecap": "round",
58
59
  "stroke-linejoin": "round",
59
60
  "aria-hidden": "true",
60
- children: [
61
- /* @__PURE__ */ jsx("path", { d: "M6.405 19.048c.184-.443.353-.894.507-1.351" }),
62
- /* @__PURE__ */ jsx("path", { d: "M14.343 20.693c.266-.751.502-1.516.707-2.294.186-.706.346-1.422.478-2.147" }),
63
- /* @__PURE__ */ jsx("path", { d: "M19.448 17.058c.364-1.964.555-3.989.555-6.058 0-4.418-3.582-8-8-8-1.255 0-2.443.289-3.501.805" }),
64
- /* @__PURE__ */ jsx("path", { d: "M3.523 15.025c.314-1.29.48-2.638.48-4.025 0-1.74.556-3.351 1.499-4.664" }),
65
- /* @__PURE__ */ jsx("path", { d: "M12.003 11c0 2.76-.447 5.416-1.273 7.899-.213.639-.451 1.266-.712 1.881" }),
66
- /* @__PURE__ */ jsx("path", { d: "M7.712 14.5c.191-1.138.291-2.308.291-3.5 0-2.209 1.791-4 4-4s4 1.791 4 4c0 .617-.02 1.229-.058 1.836" })
67
- ]
61
+ children: shapes
68
62
  }) });
69
63
  }
64
+ function fingerprintIcon() {
65
+ return strokeIcon("22", "1.5", /* @__PURE__ */ jsx("path", { d: "M6.405 19.048c.184-.443.353-.894.507-1.351" }), /* @__PURE__ */ jsx("path", { d: "M14.343 20.693c.266-.751.502-1.516.707-2.294.186-.706.346-1.422.478-2.147" }), /* @__PURE__ */ jsx("path", { d: "M19.448 17.058c.364-1.964.555-3.989.555-6.058 0-4.418-3.582-8-8-8-1.255 0-2.443.289-3.501.805" }), /* @__PURE__ */ jsx("path", { d: "M3.523 15.025c.314-1.29.48-2.638.48-4.025 0-1.74.556-3.351 1.499-4.664" }), /* @__PURE__ */ jsx("path", { d: "M12.003 11c0 2.76-.447 5.416-1.273 7.899-.213.639-.451 1.266-.712 1.881" }), /* @__PURE__ */ jsx("path", { d: "M7.712 14.5c.191-1.138.291-2.308.291-3.5 0-2.209 1.791-4 4-4s4 1.791 4 4c0 .617-.02 1.229-.058 1.836" }));
66
+ }
70
67
  function googleIcon() {
71
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("svg", {
72
- width: "22",
73
- height: "22",
74
- viewBox: "0 0 24 24",
75
- fill: "none",
76
- stroke: "currentColor",
77
- "stroke-width": "2",
78
- "stroke-linecap": "round",
79
- "stroke-linejoin": "round",
80
- "aria-hidden": "true",
81
- children: [
82
- /* @__PURE__ */ jsx("path", { d: "M10.88 21.94 15.46 14" }),
83
- /* @__PURE__ */ jsx("path", { d: "M21.17 8H12" }),
84
- /* @__PURE__ */ jsx("path", { d: "M3.95 6.06 8.54 14" }),
85
- /* @__PURE__ */ jsx("circle", {
86
- cx: "12",
87
- cy: "12",
88
- r: "10"
89
- }),
90
- /* @__PURE__ */ jsx("circle", {
91
- cx: "12",
92
- cy: "12",
93
- r: "4"
94
- })
95
- ]
96
- }) });
68
+ return strokeIcon("22", "2", /* @__PURE__ */ jsx("path", { d: "M10.88 21.94 15.46 14" }), /* @__PURE__ */ jsx("path", { d: "M21.17 8H12" }), /* @__PURE__ */ jsx("path", { d: "M3.95 6.06 8.54 14" }), /* @__PURE__ */ jsx("circle", {
69
+ cx: "12",
70
+ cy: "12",
71
+ r: "10"
72
+ }), /* @__PURE__ */ jsx("circle", {
73
+ cx: "12",
74
+ cy: "12",
75
+ r: "4"
76
+ }));
97
77
  }
98
78
  function arrowIcon() {
99
79
  return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("div", {
@@ -127,91 +107,39 @@ function accountDropdownIcon() {
127
107
  }) });
128
108
  }
129
109
  function backIcon() {
130
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("svg", {
131
- width: "18",
132
- height: "18",
133
- viewBox: "0 0 24 24",
134
- fill: "none",
135
- stroke: "currentColor",
136
- "stroke-width": "2.25",
137
- "stroke-linecap": "round",
138
- "stroke-linejoin": "round",
139
- "aria-hidden": "true",
140
- children: /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" })
141
- }) });
110
+ return strokeIcon("18", "2.25", /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" }));
142
111
  }
143
112
  function linkDeviceIcon() {
144
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("svg", {
145
- width: "18",
146
- height: "18",
147
- viewBox: "0 0 24 24",
148
- fill: "none",
149
- stroke: "currentColor",
150
- "stroke-width": "2",
151
- "stroke-linecap": "round",
152
- "stroke-linejoin": "round",
153
- "aria-hidden": "true",
154
- children: [
155
- /* @__PURE__ */ jsx("rect", {
156
- width: "5",
157
- height: "5",
158
- x: "3",
159
- y: "3",
160
- rx: "1"
161
- }),
162
- /* @__PURE__ */ jsx("rect", {
163
- width: "5",
164
- height: "5",
165
- x: "16",
166
- y: "3",
167
- rx: "1"
168
- }),
169
- /* @__PURE__ */ jsx("rect", {
170
- width: "5",
171
- height: "5",
172
- x: "3",
173
- y: "16",
174
- rx: "1"
175
- }),
176
- /* @__PURE__ */ jsx("path", { d: "M21 16h-3a2 2 0 0 0-2 2v3" }),
177
- /* @__PURE__ */ jsx("path", { d: "M21 21v.01" }),
178
- /* @__PURE__ */ jsx("path", { d: "M12 7v3a2 2 0 0 1-2 2H7" }),
179
- /* @__PURE__ */ jsx("path", { d: "M3 12h.01" }),
180
- /* @__PURE__ */ jsx("path", { d: "M12 3h.01" }),
181
- /* @__PURE__ */ jsx("path", { d: "M12 16v.01" }),
182
- /* @__PURE__ */ jsx("path", { d: "M16 12h1" }),
183
- /* @__PURE__ */ jsx("path", { d: "M21 12v.01" }),
184
- /* @__PURE__ */ jsx("path", { d: "M12 21v-1" })
185
- ]
186
- }) });
113
+ return strokeIcon("18", "2", /* @__PURE__ */ jsx("rect", {
114
+ width: "5",
115
+ height: "5",
116
+ x: "3",
117
+ y: "3",
118
+ rx: "1"
119
+ }), /* @__PURE__ */ jsx("rect", {
120
+ width: "5",
121
+ height: "5",
122
+ x: "16",
123
+ y: "3",
124
+ rx: "1"
125
+ }), /* @__PURE__ */ jsx("rect", {
126
+ width: "5",
127
+ height: "5",
128
+ x: "3",
129
+ y: "16",
130
+ rx: "1"
131
+ }), /* @__PURE__ */ jsx("path", { d: "M21 16h-3a2 2 0 0 0-2 2v3" }), /* @__PURE__ */ jsx("path", { d: "M21 21v.01" }), /* @__PURE__ */ jsx("path", { d: "M12 7v3a2 2 0 0 1-2 2H7" }), /* @__PURE__ */ jsx("path", { d: "M3 12h.01" }), /* @__PURE__ */ jsx("path", { d: "M12 3h.01" }), /* @__PURE__ */ jsx("path", { d: "M12 16v.01" }), /* @__PURE__ */ jsx("path", { d: "M16 12h1" }), /* @__PURE__ */ jsx("path", { d: "M21 12v.01" }), /* @__PURE__ */ jsx("path", { d: "M12 21v-1" }));
187
132
  }
188
133
  function recoveryIcon() {
189
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("svg", {
190
- width: "18",
191
- height: "18",
192
- viewBox: "0 0 24 24",
193
- fill: "none",
194
- stroke: "currentColor",
195
- "stroke-width": "2",
196
- "stroke-linecap": "round",
197
- "stroke-linejoin": "round",
198
- "aria-hidden": "true",
199
- children: [
200
- /* @__PURE__ */ jsx("path", { d: "M20 11v6" }),
201
- /* @__PURE__ */ jsx("path", { d: "M20 13h2" }),
202
- /* @__PURE__ */ jsx("path", { d: "M3 21v-2a4 4 0 0 1 4-4h6a4 4 0 0 1 2.072.578" }),
203
- /* @__PURE__ */ jsx("circle", {
204
- cx: "10",
205
- cy: "7",
206
- r: "4"
207
- }),
208
- /* @__PURE__ */ jsx("circle", {
209
- cx: "20",
210
- cy: "19",
211
- r: "2"
212
- })
213
- ]
214
- }) });
134
+ return strokeIcon("18", "2", /* @__PURE__ */ jsx("path", { d: "M20 11v6" }), /* @__PURE__ */ jsx("path", { d: "M20 13h2" }), /* @__PURE__ */ jsx("path", { d: "M3 21v-2a4 4 0 0 1 4-4h6a4 4 0 0 1 2.072.578" }), /* @__PURE__ */ jsx("circle", {
135
+ cx: "10",
136
+ cy: "7",
137
+ r: "4"
138
+ }), /* @__PURE__ */ jsx("circle", {
139
+ cx: "20",
140
+ cy: "19",
141
+ r: "2"
142
+ }));
215
143
  }
216
144
  const LINK_DEVICE_DOT_COUNT = 12;
217
145
  function linkDeviceDotRing(phase, glyph) {
@@ -238,24 +166,13 @@ function linkDeviceDotRing(phase, glyph) {
238
166
  }) });
239
167
  }
240
168
  function mailIcon() {
241
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("svg", {
242
- width: "21",
243
- height: "21",
244
- viewBox: "0 0 24 24",
245
- fill: "none",
246
- stroke: "currentColor",
247
- "stroke-width": "1.75",
248
- "stroke-linecap": "round",
249
- "stroke-linejoin": "round",
250
- "aria-hidden": "true",
251
- children: [/* @__PURE__ */ jsx("rect", {
252
- x: "2.75",
253
- y: "5",
254
- width: "18.5",
255
- height: "14",
256
- rx: "2.75"
257
- }), /* @__PURE__ */ jsx("path", { d: "m3.75 7.75 6.94 4.86a2.25 2.25 0 0 0 2.62 0l6.94-4.86" })]
258
- }) });
169
+ return strokeIcon("21", "1.75", /* @__PURE__ */ jsx("rect", {
170
+ x: "2.75",
171
+ y: "5",
172
+ width: "18.5",
173
+ height: "14",
174
+ rx: "2.75"
175
+ }), /* @__PURE__ */ jsx("path", { d: "m3.75 7.75 6.94 4.86a2.25 2.25 0 0 0 2.62 0l6.94-4.86" }));
259
176
  }
260
177
  function linkDeviceEmailOtpPresentation(activation) {
261
178
  switch (activation.kind) {
@@ -318,23 +235,7 @@ function linkDeviceEmailOtpPresentation(activation) {
318
235
  }
319
236
  }
320
237
  function linkFailedIcon() {
321
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("svg", {
322
- width: "22",
323
- height: "22",
324
- viewBox: "0 0 24 24",
325
- fill: "none",
326
- stroke: "currentColor",
327
- "stroke-width": "1.75",
328
- "stroke-linecap": "round",
329
- "stroke-linejoin": "round",
330
- "aria-hidden": "true",
331
- children: [
332
- /* @__PURE__ */ jsx("path", { d: "M9 17H7A5 5 0 0 1 7 7h2" }),
333
- /* @__PURE__ */ jsx("path", { d: "M15 7h2a5 5 0 0 1 3.54 8.54" }),
334
- /* @__PURE__ */ jsx("path", { d: "m2 2 20 20" }),
335
- /* @__PURE__ */ jsx("path", { d: "M8 12h3" })
336
- ]
337
- }) });
238
+ return strokeIcon("22", "1.75", /* @__PURE__ */ jsx("path", { d: "M9 17H7A5 5 0 0 1 7 7h2" }), /* @__PURE__ */ jsx("path", { d: "M15 7h2a5 5 0 0 1 3.54 8.54" }), /* @__PURE__ */ jsx("path", { d: "m2 2 20 20" }), /* @__PURE__ */ jsx("path", { d: "M8 12h3" }));
338
239
  }
339
240
  function rerollIcon() {
340
241
  return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("svg", {
@@ -460,19 +361,24 @@ var AuthMenuSurface = class extends Component {
460
361
  });
461
362
  };
462
363
  this.onLoginAccountSelect = (event) => {
463
- if (!(event.currentTarget instanceof HTMLButtonElement)) return;
464
- const walletId = event.currentTarget.dataset.walletId;
465
- const authMethod = event.currentTarget.dataset.authMethod;
364
+ const option = event.currentTarget;
365
+ if (!(option instanceof HTMLButtonElement)) return;
366
+ const walletId = option.dataset.walletId;
367
+ const authMethod = option.dataset.authMethod;
466
368
  const viewModel = this.viewModel;
467
369
  if (!walletId || viewModel.kind !== "passkey" || viewModel.mode !== "login") return;
468
370
  const selected = viewModel.accountOptions.find((account) => account.walletId === walletId && account.authMethod === authMethod);
469
371
  if (!selected) return;
470
- this.accountMenuOpen = false;
372
+ const blink = blinkMenuItem(option);
373
+ if (!blink) return;
471
374
  this.emitIntent({
472
375
  kind: "login_account_selected",
473
376
  walletId: selected.walletId,
474
377
  authMethod: selected.authMethod
475
378
  });
379
+ blink.then(() => {
380
+ this.accountMenuOpen = false;
381
+ });
476
382
  };
477
383
  this.onAccountMenuToggle = () => {
478
384
  this.accountMenuOpen = !this.accountMenuOpen;
@@ -1152,8 +1058,18 @@ var AuthMenuSurface = class extends Component {
1152
1058
  if (linkDevice.kind === "passkey_required" || linkDevice.kind === "creating_passkey") return this.renderLinkDevicePasskeyConfirmation(linkDevice);
1153
1059
  if (linkDevice.kind === "email_otp_required") return this.renderLinkDeviceEmailOtp(linkDevice);
1154
1060
  if (linkDevice.kind === "activating") return this.renderLinkedDeviceActivation(linkDevice);
1155
- if (linkDevice.kind === "expired") return this.renderLinkDeviceExpired(linkDevice);
1156
- if (linkDevice.kind === "cancelled") return this.renderLinkDeviceCancelled(linkDevice);
1061
+ if (linkDevice.kind === "expired") return this.renderLinkDeviceFailurePanel({
1062
+ dismiss: "expired",
1063
+ title: "Linking expired",
1064
+ detail: linkDevice.message,
1065
+ action: "Try again"
1066
+ });
1067
+ if (linkDevice.kind === "cancelled") return this.renderLinkDeviceFailurePanel({
1068
+ dismiss: "cancelled",
1069
+ title: "Linking cancelled",
1070
+ detail: linkDevice.message,
1071
+ action: "Return to sign in"
1072
+ });
1157
1073
  if (linkDevice.kind === "error" || linkDevice.kind === "activation_error") return this.renderLinkDeviceFailure(linkDevice);
1158
1074
  const ready = linkDevice.kind === "ready";
1159
1075
  return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("div", {
@@ -1394,35 +1310,14 @@ var AuthMenuSurface = class extends Component {
1394
1310
  }
1395
1311
  renderLinkDeviceFailure(linkDevice) {
1396
1312
  const activationFailed = linkDevice.kind === "activation_error";
1397
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", {
1398
- class: "seams-link-device-confirmation seams-link-device-failure",
1399
- children: [
1400
- /* @__PURE__ */ jsx("div", {
1401
- class: "seams-link-device-failure-icon",
1402
- children: linkFailedIcon()
1403
- }),
1404
- /* @__PURE__ */ jsx("h2", {
1405
- class: "qr-title",
1406
- id: AUTH_MENU_TITLE_ID,
1407
- children: activationFailed ? "Device linked" : "Couldn't link device"
1408
- }),
1409
- /* @__PURE__ */ jsx("p", {
1410
- class: "seams-link-device-failure-detail",
1411
- role: "alert",
1412
- children: activationFailed ? /* @__PURE__ */ jsxs(Fragment$1, { children: ["Unable to open the wallet. Return to sign in and try again. ", linkDevice.message] }) : linkDevice.message
1413
- }),
1414
- /* @__PURE__ */ jsx("button", {
1415
- class: "seams-link-device-btn",
1416
- type: "button",
1417
- "data-auth-menu-primary": true,
1418
- "data-link-device-error-dismiss": true,
1419
- onClick: this.onBackClick,
1420
- children: "Return to sign in"
1421
- })
1422
- ]
1423
- }) });
1313
+ return this.renderLinkDeviceFailurePanel({
1314
+ dismiss: "error",
1315
+ title: activationFailed ? "Device linked" : "Couldn't link device",
1316
+ detail: activationFailed ? /* @__PURE__ */ jsxs(Fragment$1, { children: ["Unable to open the wallet. Return to sign in and try again. ", linkDevice.message] }) : linkDevice.message,
1317
+ action: "Return to sign in"
1318
+ });
1424
1319
  }
1425
- renderLinkDeviceExpired(linkDevice) {
1320
+ renderLinkDeviceFailurePanel(panel) {
1426
1321
  return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", {
1427
1322
  class: "seams-link-device-confirmation seams-link-device-failure",
1428
1323
  children: [
@@ -1433,49 +1328,20 @@ var AuthMenuSurface = class extends Component {
1433
1328
  /* @__PURE__ */ jsx("h2", {
1434
1329
  class: "qr-title",
1435
1330
  id: AUTH_MENU_TITLE_ID,
1436
- children: "Linking expired"
1331
+ children: panel.title
1437
1332
  }),
1438
1333
  /* @__PURE__ */ jsx("p", {
1439
1334
  class: "seams-link-device-failure-detail",
1440
1335
  role: "alert",
1441
- children: linkDevice.message
1442
- }),
1443
- /* @__PURE__ */ jsx("button", {
1444
- class: "seams-link-device-btn",
1445
- type: "button",
1446
- "data-auth-menu-primary": true,
1447
- "data-link-device-expired-dismiss": true,
1448
- onClick: this.onBackClick,
1449
- children: "Try again"
1450
- })
1451
- ]
1452
- }) });
1453
- }
1454
- renderLinkDeviceCancelled(linkDevice) {
1455
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", {
1456
- class: "seams-link-device-confirmation seams-link-device-failure",
1457
- children: [
1458
- /* @__PURE__ */ jsx("div", {
1459
- class: "seams-link-device-failure-icon",
1460
- children: linkFailedIcon()
1461
- }),
1462
- /* @__PURE__ */ jsx("h2", {
1463
- class: "qr-title",
1464
- id: AUTH_MENU_TITLE_ID,
1465
- children: "Linking cancelled"
1466
- }),
1467
- /* @__PURE__ */ jsx("p", {
1468
- class: "seams-link-device-failure-detail",
1469
- role: "alert",
1470
- children: linkDevice.message
1336
+ children: panel.detail
1471
1337
  }),
1472
1338
  /* @__PURE__ */ jsx("button", {
1473
1339
  class: "seams-link-device-btn",
1474
1340
  type: "button",
1475
1341
  "data-auth-menu-primary": true,
1476
- "data-link-device-cancelled-dismiss": true,
1342
+ [`data-link-device-${panel.dismiss}-dismiss`]: true,
1477
1343
  onClick: this.onBackClick,
1478
- children: "Return to sign in"
1344
+ children: panel.action
1479
1345
  })
1480
1346
  ]
1481
1347
  }) });
@@ -453,35 +453,15 @@ function parseNonceDiagnosticLane(value) {
453
453
  }
454
454
  function parseRequiredNonceStateCounts(value) {
455
455
  const record = requireRecordCopy(value, "nonce state counts");
456
- return {
457
- [NonceLeaseState.Reserved]: requireNonceStateCount(record, NonceLeaseState.Reserved),
458
- [NonceLeaseState.Released]: requireNonceStateCount(record, NonceLeaseState.Released),
459
- [NonceLeaseState.Expired]: requireNonceStateCount(record, NonceLeaseState.Expired),
460
- [NonceLeaseState.Signed]: requireNonceStateCount(record, NonceLeaseState.Signed),
461
- [NonceLeaseState.SignedLeaseExpired]: requireNonceStateCount(record, NonceLeaseState.SignedLeaseExpired),
462
- [NonceLeaseState.BroadcastAccepted]: requireNonceStateCount(record, NonceLeaseState.BroadcastAccepted),
463
- [NonceLeaseState.BroadcastRejected]: requireNonceStateCount(record, NonceLeaseState.BroadcastRejected),
464
- [NonceLeaseState.Finalized]: requireNonceStateCount(record, NonceLeaseState.Finalized),
465
- [NonceLeaseState.Dropped]: requireNonceStateCount(record, NonceLeaseState.Dropped),
466
- [NonceLeaseState.Replaced]: requireNonceStateCount(record, NonceLeaseState.Replaced),
467
- [NonceLeaseState.Reconciled]: requireNonceStateCount(record, NonceLeaseState.Reconciled)
468
- };
456
+ const counts = {};
457
+ for (const state of Object.values(NonceLeaseState)) counts[state] = requireNonceStateCount(record, state);
458
+ return counts;
469
459
  }
470
460
  function parsePartialNonceStateCounts(value) {
471
461
  const record = requireRecordCopy(value, "nonce state counts");
472
- return {
473
- ...record[NonceLeaseState.Reserved] === void 0 ? {} : { [NonceLeaseState.Reserved]: requireNonceStateCount(record, NonceLeaseState.Reserved) },
474
- ...record[NonceLeaseState.Released] === void 0 ? {} : { [NonceLeaseState.Released]: requireNonceStateCount(record, NonceLeaseState.Released) },
475
- ...record[NonceLeaseState.Expired] === void 0 ? {} : { [NonceLeaseState.Expired]: requireNonceStateCount(record, NonceLeaseState.Expired) },
476
- ...record[NonceLeaseState.Signed] === void 0 ? {} : { [NonceLeaseState.Signed]: requireNonceStateCount(record, NonceLeaseState.Signed) },
477
- ...record[NonceLeaseState.SignedLeaseExpired] === void 0 ? {} : { [NonceLeaseState.SignedLeaseExpired]: requireNonceStateCount(record, NonceLeaseState.SignedLeaseExpired) },
478
- ...record[NonceLeaseState.BroadcastAccepted] === void 0 ? {} : { [NonceLeaseState.BroadcastAccepted]: requireNonceStateCount(record, NonceLeaseState.BroadcastAccepted) },
479
- ...record[NonceLeaseState.BroadcastRejected] === void 0 ? {} : { [NonceLeaseState.BroadcastRejected]: requireNonceStateCount(record, NonceLeaseState.BroadcastRejected) },
480
- ...record[NonceLeaseState.Finalized] === void 0 ? {} : { [NonceLeaseState.Finalized]: requireNonceStateCount(record, NonceLeaseState.Finalized) },
481
- ...record[NonceLeaseState.Dropped] === void 0 ? {} : { [NonceLeaseState.Dropped]: requireNonceStateCount(record, NonceLeaseState.Dropped) },
482
- ...record[NonceLeaseState.Replaced] === void 0 ? {} : { [NonceLeaseState.Replaced]: requireNonceStateCount(record, NonceLeaseState.Replaced) },
483
- ...record[NonceLeaseState.Reconciled] === void 0 ? {} : { [NonceLeaseState.Reconciled]: requireNonceStateCount(record, NonceLeaseState.Reconciled) }
484
- };
462
+ const counts = {};
463
+ for (const state of Object.values(NonceLeaseState)) if (record[state] !== void 0) counts[state] = requireNonceStateCount(record, state);
464
+ return counts;
485
465
  }
486
466
  function requireNonceStateCount(record, state) {
487
467
  return requireNonNegativeSafeInteger(record[state], `nonce state ${state}`);
@@ -14,7 +14,6 @@ const BUILD_PATHS = {
14
14
  WASM_SIGNER: "../../wasm/near_signer",
15
15
  ED25519_YAO_CLIENT: "../../crates/router-ab-ed25519-yao-client",
16
16
  WASM_ECDSA_CLIENT: "../../wasm/router_ab_ecdsa_client",
17
- WASM_ECDSA_SIGNING_WORKER: "../../wasm/router_ab_ecdsa_signing_worker",
18
17
  WASM_EVM_CRYPTO: "../../wasm/evm_crypto",
19
18
  WASM_TEMPO_SIGNER: "../../wasm/tempo_signer",
20
19
  WASM_SHAMIR3PASS_RUNTIME: "../../wasm/shamir3pass_runtime",
@@ -30,7 +29,6 @@ const BUILD_PATHS = {
30
29
  "../../crates/router-ab-ed25519-yao-client",
31
30
  "../../wasm/near_signer",
32
31
  "../../wasm/router_ab_ecdsa_client",
33
- "../../wasm/router_ab_ecdsa_signing_worker",
34
32
  "../../wasm/evm_crypto",
35
33
  "../../wasm/tempo_signer",
36
34
  "../../wasm/shamir3pass_runtime",
@@ -133,6 +133,23 @@
133
133
  background: color-mix(in srgb, var(--seams-colors-focus), transparent 65%);
134
134
  }
135
135
 
136
+ /* A chosen item blinks once, highlight off then on, before its menu closes
137
+ (blinkMenuItem). No transition, so each phase lands on its own frame. */
138
+ .seams-dropdown-menu-item[data-blink] {
139
+ transition: none;
140
+ }
141
+
142
+ .seams-dropdown-menu-item[data-blink='off'],
143
+ .seams-dropdown-menu-item[data-blink='off']:hover {
144
+ background: transparent;
145
+ box-shadow: none;
146
+ }
147
+
148
+ .seams-dropdown-menu-item[data-blink='on'],
149
+ .seams-dropdown-menu-item[data-blink='on']:hover {
150
+ background: var(--seams-colors-hover);
151
+ }
152
+
136
153
  /* Menu item animation states (within ProfileDropdown) */
137
154
 
138
155
  .seams-profile-dropdown-morphed[data-state='closed'] .seams-dropdown-menu-item {
@@ -26,11 +26,6 @@
26
26
  transition: color 0.1s ease;
27
27
  }
28
28
 
29
- .seams-user-account-button-trigger:hover .seams-profile-button-icon,
30
- .seams-user-account-button-trigger:hover .seams-profile-button-username {
31
- color: inherit;
32
- }
33
-
34
29
  .seams-user-account-button-trigger:hover svg {
35
30
  color: inherit;
36
31
  }