@seams/wallet 0.24.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +1 -0
  3. package/dist/esm/SeamsWeb/publicApi/near.js +22 -11
  4. package/dist/esm/SeamsWeb/walletIframe/client/evmFamilyCommands.js +1 -0
  5. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
  6. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +73 -39
  7. package/dist/esm/SeamsWeb/walletIframe/client/router.js +61 -38
  8. package/dist/esm/SeamsWeb/walletIframe/host/auth-menu/domain.js +1 -0
  9. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +1 -0
  10. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +1 -1
  11. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +28 -0
  12. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -0
  13. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +8 -1
  14. package/dist/esm/core/rpcClients/near/NearClient.js +7 -0
  15. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +7 -0
  16. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -0
  17. package/dist/esm/core/signingEngine/nearTransactionSubmission.js +89 -0
  18. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -2
  19. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +7 -1
  20. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +123 -14
  21. package/dist/esm/core/ui/messages.js +12 -0
  22. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +5 -7
  23. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +21 -5
  24. package/dist/esm/react/components/AccountMenuButton/AccountMenuModal.js +66 -0
  25. package/dist/esm/react/components/AccountMenuButton/AccountsSection.css +18 -11
  26. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -11
  27. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.css +17 -15
  28. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +156 -106
  29. package/dist/esm/react/components/AccountMenuButton/MenuItem.css +37 -29
  30. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.css +53 -21
  31. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +124 -82
  32. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +45 -27
  33. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +115 -93
  34. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +179 -92
  35. package/dist/esm/react/components/AccountMenuButton/hooks/useProfileState.js +62 -49
  36. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +36 -12
  37. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +10 -2
  38. package/dist/esm/react/components/AccountMenuButton/icons/Icon.css +10 -0
  39. package/dist/esm/react/components/AccountMenuButton/icons/LogOutIcon2.js +15 -16
  40. package/dist/esm/react/components/AccountMenuButton/icons/SpinnerIcon.js +12 -18
  41. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.css +3 -3
  42. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.js +11 -5
  43. package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +20 -6
  44. package/dist/esm/react/components/AccountMenuButton/index.js +18 -42
  45. package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
  46. package/dist/esm/react/components/FingerprintIcon.js +13 -19
  47. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +13 -2
  48. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.css +182 -0
  49. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.js +315 -0
  50. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +20 -5
  51. package/dist/esm/react/components/QRCodeIcon.js +37 -43
  52. package/dist/esm/react/components/QRCodeScanner.css +65 -60
  53. package/dist/esm/react/components/ShowQRCode.css +145 -40
  54. package/dist/esm/react/components/ShowQRCode.js +27 -37
  55. package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
  56. package/dist/esm/react/components/theme/Theme.css +67 -0
  57. package/dist/esm/react/components/theme/ThemeProvider.js +6 -6
  58. package/dist/esm/react/externalEvm.js +11 -4
  59. package/dist/esm/react/externalNear.js +15 -10
  60. package/dist/esm/react/externalWalletPicker.css +117 -0
  61. package/dist/esm/react/index.js +3 -2
  62. package/dist/esm/react/styles/styles.css +2148 -550
  63. package/dist/esm/react/styles.css +7 -1
  64. package/dist/esm/react/transactionReview/TransactionReviewHost.js +3 -0
  65. package/dist/esm/react/transactionReview/boundCalls.js +31 -26
  66. package/dist/esm/sdk/{ConfirmationDrawer-CTaGM1AE.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
  67. package/dist/esm/sdk/NonceCoordinator-3YhmDTS5.js +1 -0
  68. package/dist/{public/sdk/SeamsWordmark-CFpsGoLw.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  69. package/dist/esm/sdk/accountLifecycle-6DHYWf0v.js +1 -0
  70. package/dist/esm/sdk/actions-DrtSTGus.js +1 -0
  71. package/dist/esm/sdk/activeWalletSession-BJ4B-nJo.js +1 -0
  72. package/dist/esm/sdk/adapters-d9yh1bdC.js +1 -0
  73. package/dist/esm/sdk/appearance-DL7c6bML.js +1 -0
  74. package/dist/esm/sdk/appearance-token-vars-BJydfWT_.js +1 -0
  75. package/dist/esm/sdk/canonicalPrimitives-Jd3i_Ngz.js +1 -0
  76. package/dist/esm/sdk/chains-B72I4PDH.js +1 -0
  77. package/dist/esm/sdk/challengeDelivery-Dj9HrjW9.js +1 -0
  78. package/dist/esm/sdk/clientSessionPersistenceState-BCkJAYSz.js +1 -0
  79. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  80. package/dist/esm/sdk/{commitQueue-Bs23Rs57.js → commitQueue-CYruPlkm.js} +1 -1
  81. package/dist/esm/sdk/configBuilder-CSwJrmcR.js +1 -0
  82. package/dist/esm/sdk/configuration-DBEc3bsj.js +1 -0
  83. package/dist/esm/sdk/confirm-ui-nU6ymgiv.js +2 -0
  84. package/dist/esm/sdk/confirmTypes-BvVtQs-M.js +1 -0
  85. package/dist/esm/sdk/device-linking-DiCNt3iA.js +1 -0
  86. package/dist/esm/sdk/deviceLinkApproval-CfEiotVt.js +2 -0
  87. package/dist/esm/sdk/digestEncoding-CqNXPZY9.js +1 -0
  88. package/dist/esm/sdk/{chains-gV2K9gA4.js → digests-BIaE0DMd.js} +1 -1
  89. package/dist/esm/sdk/{display-BXjW58UF.js → display-D0EPmU4w.js} +1 -1
  90. package/dist/esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js +1 -0
  91. package/dist/esm/sdk/{ecdsaChainTarget-DbLthshF.js → ecdsaChainTarget-Bm5X4k-V.js} +1 -1
  92. package/dist/esm/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js +1 -0
  93. package/dist/esm/sdk/ecdsaDerivationExport-DJKOzDbS.js +1 -0
  94. package/dist/esm/sdk/{ecdsaWalletRecords-BgcXXCZy.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  95. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js +1 -0
  96. package/dist/esm/sdk/{enrichDisplayModelWithAbi-CudPUW0T.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  97. package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
  98. package/dist/esm/sdk/{evmCryptoWasm-DacbCVNM.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  99. package/dist/esm/sdk/{export-viewer-host-DsWOvc0t.js → export-viewer-host-BtrKVXxu.js} +1 -1
  100. package/dist/esm/sdk/exportKeypairOperation-CGE9ZU1m.js +1 -0
  101. package/dist/esm/sdk/helpers-Dubwo5uK.js +1 -0
  102. package/dist/esm/sdk/host-DayrOrgm.js +1 -0
  103. package/dist/esm/sdk/icons-BlMXolHv.js +1 -0
  104. package/dist/esm/sdk/indexedDB-C4SDsyOG.js +1 -0
  105. package/dist/esm/sdk/intentDigest-HvRsBQ1z.js +1 -0
  106. package/dist/esm/sdk/keyMaterialEnvelope-Dm2ZEilb.js +1 -0
  107. package/dist/esm/sdk/{lanes-C7OvAK_L.js → lanes-BU-fGqY4.js} +1 -1
  108. package/dist/esm/sdk/localOnly-BATWJj78.js +1 -0
  109. package/dist/{public/sdk/mountExportPrivateKeySurface-CV1KrFWg.js → esm/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
  110. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-CVXU1zzl.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
  111. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +1 -0
  112. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +1 -0
  113. package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  114. package/dist/esm/sdk/{nonceLaneKeys-BS4fek17.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  115. package/dist/esm/sdk/{normalization-BN-2VWZf.js → normalization-Df9fZWJC.js} +1 -1
  116. package/dist/esm/sdk/operationFingerprint-Bas59T7L.js +1 -0
  117. package/dist/esm/sdk/participants-BXdREC5k.js +1 -0
  118. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js → esm/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
  119. package/dist/esm/sdk/presignaturePool-BbvqRWYw.js +1 -0
  120. package/dist/{public/sdk/presignatures-B9GrGx0L.js → esm/sdk/presignatures-BCeq56DG.js} +1 -1
  121. package/dist/esm/sdk/recovery-entrypoint-DJbMDC_m.js +1 -0
  122. package/dist/esm/sdk/recoveryAuthorization-CQsjb8Tm.js +1 -0
  123. package/dist/esm/sdk/registration-CNLUYN-p.js +1 -0
  124. package/dist/esm/sdk/registration-HSwOHZOo.js +1 -0
  125. package/dist/esm/sdk/{registrationAccounts-BHikxS5q.js → registrationAccounts-4r74gX1l.js} +1 -1
  126. package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
  127. package/dist/esm/sdk/registrationSignerPlan-DK2b3N_p.js +1 -0
  128. package/dist/esm/sdk/requireStepUpAuth-COqCGb1i.js +1 -0
  129. package/dist/esm/sdk/resealedEnvelopeResult-B1p5UkYg.js +1 -0
  130. package/dist/esm/sdk/routerAbNormalSigning-D-UZmCBS.js +1 -0
  131. package/dist/esm/sdk/runtime-auth-BCoj7_-G.js +1 -0
  132. package/dist/esm/sdk/runtime-device-link-DAsq5tGT.js +1 -0
  133. package/dist/esm/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js +1 -0
  134. package/dist/esm/sdk/runtime-email-otp-BxSKK9AG.js +1 -0
  135. package/dist/esm/sdk/runtime-export-BWnQXMzT.js +1 -0
  136. package/dist/esm/sdk/runtime-near-CuzPZrDS.js +1 -0
  137. package/dist/esm/sdk/runtime-preferences-B-nDWlm3.js +1 -0
  138. package/dist/esm/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
  139. package/dist/esm/sdk/runtime-recovery-codes-DeUjQsxZ.js +1 -0
  140. package/dist/esm/sdk/runtimeContext-5JcewRo3.js +6 -0
  141. package/dist/esm/sdk/secp256k1-CE7-q9Sn.js +1 -0
  142. package/dist/esm/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
  143. package/dist/esm/sdk/signEvmFamily-BY5jlZEG.js +1 -0
  144. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js → signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  145. package/dist/esm/sdk/{signEvmWithUiConfirm-BNkupz3z.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  146. package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
  147. package/dist/esm/sdk/{signatureUses-DrqCoN12.js → signatureUses-kSrUHSSH.js} +1 -1
  148. package/dist/esm/sdk/signerSlot-D2RZnb27.js +1 -0
  149. package/dist/esm/sdk/{signingFlow-BVvteILM.js → signingFlow-BcetvUeS.js} +2 -2
  150. package/dist/esm/sdk/signingQueue-dMFOFOP5.js +1 -0
  151. package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  152. package/dist/esm/sdk/thresholdEcdsa-CqR1fFA-.js +1 -0
  153. package/dist/esm/sdk/{trace-CGNqO1FV.js → trace--mRP2OQc.js} +1 -1
  154. package/dist/esm/sdk/{transaction-activity-DPq9RTh5.js → transaction-activity-DCzHGg3b.js} +1 -1
  155. package/dist/esm/sdk/transactionReview-CGIlI835.js +1 -0
  156. package/dist/esm/sdk/{transactionReviewAdmission--8tDis7M.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  157. package/dist/{public/sdk/transactionState-BS1VLT7B.js → esm/sdk/transactionState-29T9xfvL.js} +1 -1
  158. package/dist/esm/sdk/tx-confirm-ui.js +173 -18
  159. package/dist/esm/sdk/{types-DdzuHlAQ.js → types-f7dyj5N6.js} +1 -1
  160. package/dist/esm/sdk/unlockedEd25519ExportRootCapability-yzxQjIFd.js +1 -0
  161. package/dist/esm/sdk/voiceid-host.js +1 -1
  162. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  163. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  164. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  165. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  166. package/dist/esm/sdk/wallet-recovery-BZB2Vu3X.js +1 -0
  167. package/dist/esm/sdk/wallet-ui.css +1 -1
  168. package/dist/esm/sdk/walletAuthMethodRecord-DLBB5fez.js +1 -0
  169. package/dist/esm/sdk/walletAuthority-BTGAuOi8.js +1 -0
  170. package/dist/esm/sdk/walletCapabilityBindings-D5YYB7nN.js +1 -0
  171. package/dist/esm/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js +1 -0
  172. package/dist/esm/sdk/walletCustodyOperation-DimzAbCB.js +1 -0
  173. package/dist/esm/sdk/walletDbName-Ca0rCq5r.js +1 -0
  174. package/dist/esm/sdk/walletOwnershipGeneration-CgjCtPrV.js +1 -0
  175. package/dist/esm/sdk/walletRecoveryAdminProof-CvSYbyg5.js +1 -0
  176. package/dist/esm/sdk/walletRecoveryCommit-Cc2LAkCS.js +1 -0
  177. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEvGKQSg.js +1 -0
  178. package/dist/esm/sdk/{walletSessionAuthorizationProjection-BJgnZaBc.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +1 -1
  179. package/dist/esm/sdk/walletSessionAuthorizationStatus-DG7DPcgR.js +1 -0
  180. package/dist/esm/sdk/{walletSessionAuthorizationStore-zkxcMdSp.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  181. package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  182. package/dist/{public/sdk/webauthnP256-BvTL8nq4.js → esm/sdk/webauthnP256-BsQQPurm.js} +1 -1
  183. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  184. package/dist/esm/shared-ts/src/utils/errors.js +56 -3
  185. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  186. package/dist/esm/voiceid-host.js +1 -1
  187. package/dist/public/headers.manifest.json +1 -1
  188. package/dist/public/sdk/{ConfirmationDrawer-CTaGM1AE.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
  189. package/dist/public/sdk/NonceCoordinator-3YhmDTS5.js +1 -0
  190. package/dist/{esm/sdk/SeamsWordmark-CFpsGoLw.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  191. package/dist/public/sdk/accountLifecycle-6DHYWf0v.js +1 -0
  192. package/dist/public/sdk/actions-DrtSTGus.js +1 -0
  193. package/dist/public/sdk/activeWalletSession-BJ4B-nJo.js +1 -0
  194. package/dist/public/sdk/adapters-d9yh1bdC.js +1 -0
  195. package/dist/public/sdk/appearance-DL7c6bML.js +1 -0
  196. package/dist/public/sdk/appearance-token-vars-BJydfWT_.js +1 -0
  197. package/dist/public/sdk/canonicalPrimitives-Jd3i_Ngz.js +1 -0
  198. package/dist/public/sdk/chains-B72I4PDH.js +1 -0
  199. package/dist/public/sdk/challengeDelivery-Dj9HrjW9.js +1 -0
  200. package/dist/public/sdk/clientSessionPersistenceState-BCkJAYSz.js +1 -0
  201. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  202. package/dist/public/sdk/{commitQueue-Bs23Rs57.js → commitQueue-CYruPlkm.js} +1 -1
  203. package/dist/public/sdk/configBuilder-CSwJrmcR.js +1 -0
  204. package/dist/public/sdk/configuration-DBEc3bsj.js +1 -0
  205. package/dist/public/sdk/confirm-ui-nU6ymgiv.js +2 -0
  206. package/dist/public/sdk/confirmTypes-BvVtQs-M.js +1 -0
  207. package/dist/public/sdk/device-linking-DiCNt3iA.js +1 -0
  208. package/dist/public/sdk/deviceLinkApproval-CfEiotVt.js +2 -0
  209. package/dist/public/sdk/digestEncoding-CqNXPZY9.js +1 -0
  210. package/dist/public/sdk/{chains-gV2K9gA4.js → digests-BIaE0DMd.js} +1 -1
  211. package/dist/public/sdk/{display-BXjW58UF.js → display-D0EPmU4w.js} +1 -1
  212. package/dist/public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js +1 -0
  213. package/dist/public/sdk/{ecdsaChainTarget-DbLthshF.js → ecdsaChainTarget-Bm5X4k-V.js} +1 -1
  214. package/dist/public/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js +1 -0
  215. package/dist/public/sdk/ecdsaDerivationExport-DJKOzDbS.js +1 -0
  216. package/dist/public/sdk/{ecdsaWalletRecords-BgcXXCZy.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  217. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js +1 -0
  218. package/dist/public/sdk/{enrichDisplayModelWithAbi-CudPUW0T.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  219. package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
  220. package/dist/public/sdk/{evmCryptoWasm-DacbCVNM.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  221. package/dist/public/sdk/{export-viewer-host-DsWOvc0t.js → export-viewer-host-BtrKVXxu.js} +1 -1
  222. package/dist/public/sdk/exportKeypairOperation-CGE9ZU1m.js +1 -0
  223. package/dist/public/sdk/helpers-Dubwo5uK.js +1 -0
  224. package/dist/public/sdk/host-DayrOrgm.js +1 -0
  225. package/dist/public/sdk/icons-BlMXolHv.js +1 -0
  226. package/dist/public/sdk/indexedDB-C4SDsyOG.js +1 -0
  227. package/dist/public/sdk/intentDigest-HvRsBQ1z.js +1 -0
  228. package/dist/public/sdk/keyMaterialEnvelope-Dm2ZEilb.js +1 -0
  229. package/dist/public/sdk/{lanes-C7OvAK_L.js → lanes-BU-fGqY4.js} +1 -1
  230. package/dist/public/sdk/localOnly-BATWJj78.js +1 -0
  231. package/dist/{esm/sdk/mountExportPrivateKeySurface-CV1KrFWg.js → public/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
  232. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-CVXU1zzl.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
  233. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +1 -0
  234. package/dist/public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +1 -0
  235. package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  236. package/dist/public/sdk/{nonceLaneKeys-BS4fek17.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  237. package/dist/public/sdk/{normalization-BN-2VWZf.js → normalization-Df9fZWJC.js} +1 -1
  238. package/dist/public/sdk/operationFingerprint-Bas59T7L.js +1 -0
  239. package/dist/public/sdk/participants-BXdREC5k.js +1 -0
  240. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js → public/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
  241. package/dist/public/sdk/presignaturePool-BbvqRWYw.js +1 -0
  242. package/dist/{esm/sdk/presignatures-B9GrGx0L.js → public/sdk/presignatures-BCeq56DG.js} +1 -1
  243. package/dist/public/sdk/recovery-entrypoint-DJbMDC_m.js +1 -0
  244. package/dist/public/sdk/recoveryAuthorization-CQsjb8Tm.js +1 -0
  245. package/dist/public/sdk/registration-CNLUYN-p.js +1 -0
  246. package/dist/public/sdk/registration-HSwOHZOo.js +1 -0
  247. package/dist/public/sdk/{registrationAccounts-BHikxS5q.js → registrationAccounts-4r74gX1l.js} +1 -1
  248. package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
  249. package/dist/public/sdk/registrationSignerPlan-DK2b3N_p.js +1 -0
  250. package/dist/public/sdk/requireStepUpAuth-COqCGb1i.js +1 -0
  251. package/dist/public/sdk/resealedEnvelopeResult-B1p5UkYg.js +1 -0
  252. package/dist/public/sdk/routerAbNormalSigning-D-UZmCBS.js +1 -0
  253. package/dist/public/sdk/runtime-auth-BCoj7_-G.js +1 -0
  254. package/dist/public/sdk/runtime-device-link-DAsq5tGT.js +1 -0
  255. package/dist/public/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js +1 -0
  256. package/dist/public/sdk/runtime-email-otp-BxSKK9AG.js +1 -0
  257. package/dist/public/sdk/runtime-export-BWnQXMzT.js +1 -0
  258. package/dist/public/sdk/runtime-near-CuzPZrDS.js +1 -0
  259. package/dist/public/sdk/runtime-preferences-B-nDWlm3.js +1 -0
  260. package/dist/public/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
  261. package/dist/public/sdk/runtime-recovery-codes-DeUjQsxZ.js +1 -0
  262. package/dist/public/sdk/runtimeContext-5JcewRo3.js +6 -0
  263. package/dist/public/sdk/secp256k1-CE7-q9Sn.js +1 -0
  264. package/dist/public/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
  265. package/dist/public/sdk/signEvmFamily-BY5jlZEG.js +1 -0
  266. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js → signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  267. package/dist/public/sdk/{signEvmWithUiConfirm-BNkupz3z.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  268. package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
  269. package/dist/public/sdk/{signatureUses-DrqCoN12.js → signatureUses-kSrUHSSH.js} +1 -1
  270. package/dist/public/sdk/signerSlot-D2RZnb27.js +1 -0
  271. package/dist/public/sdk/{signingFlow-BVvteILM.js → signingFlow-BcetvUeS.js} +2 -2
  272. package/dist/public/sdk/signingQueue-dMFOFOP5.js +1 -0
  273. package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  274. package/dist/public/sdk/thresholdEcdsa-CqR1fFA-.js +1 -0
  275. package/dist/public/sdk/{trace-CGNqO1FV.js → trace--mRP2OQc.js} +1 -1
  276. package/dist/public/sdk/{transaction-activity-DPq9RTh5.js → transaction-activity-DCzHGg3b.js} +1 -1
  277. package/dist/public/sdk/transactionReview-CGIlI835.js +1 -0
  278. package/dist/public/sdk/{transactionReviewAdmission--8tDis7M.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  279. package/dist/{esm/sdk/transactionState-BS1VLT7B.js → public/sdk/transactionState-29T9xfvL.js} +1 -1
  280. package/dist/public/sdk/tx-confirm-ui.js +173 -18
  281. package/dist/public/sdk/{types-DdzuHlAQ.js → types-f7dyj5N6.js} +1 -1
  282. package/dist/public/sdk/unlockedEd25519ExportRootCapability-yzxQjIFd.js +1 -0
  283. package/dist/public/sdk/voiceid-host.js +1 -1
  284. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  285. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  286. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  287. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  288. package/dist/public/sdk/wallet-recovery-BZB2Vu3X.js +1 -0
  289. package/dist/public/sdk/wallet-ui.css +1 -1
  290. package/dist/public/sdk/walletAuthMethodRecord-DLBB5fez.js +1 -0
  291. package/dist/public/sdk/walletAuthority-BTGAuOi8.js +1 -0
  292. package/dist/public/sdk/walletCapabilityBindings-D5YYB7nN.js +1 -0
  293. package/dist/public/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js +1 -0
  294. package/dist/public/sdk/walletCustodyOperation-DimzAbCB.js +1 -0
  295. package/dist/public/sdk/walletDbName-Ca0rCq5r.js +1 -0
  296. package/dist/public/sdk/walletOwnershipGeneration-CgjCtPrV.js +1 -0
  297. package/dist/public/sdk/walletRecoveryAdminProof-CvSYbyg5.js +1 -0
  298. package/dist/public/sdk/walletRecoveryCommit-Cc2LAkCS.js +1 -0
  299. package/dist/public/sdk/walletRegistrationSetupPrewarm-CEvGKQSg.js +1 -0
  300. package/dist/public/sdk/{walletSessionAuthorizationProjection-BJgnZaBc.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +1 -1
  301. package/dist/public/sdk/walletSessionAuthorizationStatus-DG7DPcgR.js +1 -0
  302. package/dist/public/sdk/{walletSessionAuthorizationStore-zkxcMdSp.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  303. package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  304. package/dist/{esm/sdk/webauthnP256-BvTL8nq4.js → public/sdk/webauthnP256-BsQQPurm.js} +1 -1
  305. package/dist/public/wallet-assets.manifest.json +476 -260
  306. package/dist/public/wallet-service/index.html +4 -4
  307. package/dist/types/shared-ts/src/utils/errors.d.ts +1 -0
  308. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.d.ts +24 -0
  309. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +2 -0
  310. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +3 -0
  311. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -0
  312. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +1 -0
  313. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createDeviceDomain.d.ts +2 -1
  314. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/deviceLinkApproval.d.ts +27 -0
  315. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +1 -0
  316. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +4 -1
  317. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
  318. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +4 -0
  319. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/recoveredEd25519Authority.d.ts +8 -0
  320. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +1 -0
  321. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
  322. package/dist/types/wallet/src/core/rpcClients/relayer/walletSessionAuthorizationStatus.d.ts +2 -0
  323. package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -0
  324. package/dist/types/wallet/src/core/signingEngine/session/persistence/walletSessionAuthorizationProjection.d.ts +1 -0
  325. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +2 -0
  326. package/dist/types/wallet/src/core/types/linkDevice.d.ts +4 -5
  327. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +2 -0
  328. package/dist/types/wallet/src/core/types/seams.d.ts +15 -3
  329. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  330. package/dist/types/wallet/src/index.d.ts +1 -1
  331. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +11 -2
  332. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +2 -1
  333. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuModal.d.ts +9 -0
  334. package/dist/types/wallet/src/react/components/AccountMenuButton/hooks/useProfileState.d.ts +13 -5
  335. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
  336. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +1 -1
  337. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +19 -3
  338. package/dist/types/wallet/src/react/components/ExternalNearWalletIcon.d.ts +5 -0
  339. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.d.ts +31 -0
  340. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +4 -0
  341. package/dist/types/wallet/src/react/components/ShowQRCode.d.ts +1 -1
  342. package/dist/types/wallet/src/react/components/externalWalletBrandImages.d.ts +3 -0
  343. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -0
  344. package/dist/types/wallet/src/react/externalNear.d.ts +3 -23
  345. package/dist/types/wallet/src/react/index.d.ts +3 -1
  346. package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +7 -0
  347. package/dist/types/wallet/src/voiceid-host.d.ts +1 -1
  348. package/package.json +1 -1
  349. package/dist/esm/react/externalNear.css +0 -90
  350. package/dist/esm/sdk/NonceCoordinator-Bti1HQPo.js +0 -1
  351. package/dist/esm/sdk/accountLifecycle-B98g9zN9.js +0 -1
  352. package/dist/esm/sdk/actions-GYsSR2Q2.js +0 -1
  353. package/dist/esm/sdk/activeWalletSession-H9JBdHyQ.js +0 -1
  354. package/dist/esm/sdk/adapters-D5MZ5NG5.js +0 -2
  355. package/dist/esm/sdk/appearance-DVFno9Tv.js +0 -1
  356. package/dist/esm/sdk/appearance-token-vars-CgYTfCKg.js +0 -1
  357. package/dist/esm/sdk/canonicalPrimitives-B6YMrI3W.js +0 -1
  358. package/dist/esm/sdk/challengeDelivery-FW9gYyr0.js +0 -1
  359. package/dist/esm/sdk/clientSessionPersistenceState-BPYK9PYV.js +0 -1
  360. package/dist/esm/sdk/configBuilder-DrxXNUpV.js +0 -1
  361. package/dist/esm/sdk/configuration-CAqANpTI.js +0 -1
  362. package/dist/esm/sdk/ecdsaCapabilityManifest--FjbES8k.js +0 -1
  363. package/dist/esm/sdk/ecdsaDerivationClientWasm-7Rp4TmYE.js +0 -1
  364. package/dist/esm/sdk/ecdsaDerivationExport-dInN7N6e.js +0 -1
  365. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +0 -1
  366. package/dist/esm/sdk/errors-ADOZT8oV.js +0 -1
  367. package/dist/esm/sdk/exportKeypairOperation-BazJvSov.js +0 -1
  368. package/dist/esm/sdk/helpers-CXqXyyCU.js +0 -1
  369. package/dist/esm/sdk/host-C0Is56lU.js +0 -1
  370. package/dist/esm/sdk/icons-DyndJzSh.js +0 -1
  371. package/dist/esm/sdk/indexedDB-C1odKEC6.js +0 -1
  372. package/dist/esm/sdk/intentDigest-BMXki7yB.js +0 -1
  373. package/dist/esm/sdk/keyMaterialEnvelope-B-Q5KTJC.js +0 -1
  374. package/dist/esm/sdk/localOnly-BB3Rx3J6.js +0 -1
  375. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +0 -1
  376. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +0 -1
  377. package/dist/esm/sdk/operationFingerprint-Bn0lUYlm.js +0 -1
  378. package/dist/esm/sdk/presignaturePool-CultzkOG.js +0 -1
  379. package/dist/esm/sdk/recovery-entrypoint-QBvJBngm.js +0 -1
  380. package/dist/esm/sdk/recoveryAuthorization-DB-zxeHq.js +0 -1
  381. package/dist/esm/sdk/registration-CM5a7WYO.js +0 -1
  382. package/dist/esm/sdk/registration-Hv0xi7-L.js +0 -1
  383. package/dist/esm/sdk/registrationIntent-DTs2SR9E.js +0 -1
  384. package/dist/esm/sdk/registrationSignerPlan-CgbFVsAp.js +0 -1
  385. package/dist/esm/sdk/requireStepUpAuth-B7tC4MrA.js +0 -1
  386. package/dist/esm/sdk/resealedEnvelopeResult--iCVt_Bh.js +0 -1
  387. package/dist/esm/sdk/routerAbNormalSigning-Div3lZWV.js +0 -1
  388. package/dist/esm/sdk/runtime-auth-CVw1KoVD.js +0 -1
  389. package/dist/esm/sdk/runtime-device-link-Dp0YMZTQ.js +0 -1
  390. package/dist/esm/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +0 -1
  391. package/dist/esm/sdk/runtime-email-otp-gsr_FsQn.js +0 -1
  392. package/dist/esm/sdk/runtime-export-upMPrZ4V.js +0 -1
  393. package/dist/esm/sdk/runtime-near-B64Hn3nc.js +0 -1
  394. package/dist/esm/sdk/runtime-preferences-CULdHkbg.js +0 -1
  395. package/dist/esm/sdk/runtime-recovery-D2saBaJy.js +0 -1
  396. package/dist/esm/sdk/runtime-recovery-codes-Bvc0IXMJ.js +0 -1
  397. package/dist/esm/sdk/runtimeContext-CNFJjcns.js +0 -6
  398. package/dist/esm/sdk/secp256k1-BGVlx50C.js +0 -1
  399. package/dist/esm/sdk/sessionObservationRevision-84ZzJ-fC.js +0 -1
  400. package/dist/esm/sdk/signEvmFamily-PjwUc5MT.js +0 -1
  401. package/dist/esm/sdk/signNear-r8VCOoTh.js +0 -1
  402. package/dist/esm/sdk/signerSlot-D4ZOuK7e.js +0 -1
  403. package/dist/esm/sdk/signingQueue-BJzOrwDq.js +0 -1
  404. package/dist/esm/sdk/surface-measurement-reporter-NUm_54LH.js +0 -1
  405. package/dist/esm/sdk/thresholdEcdsa-tnY83qyG.js +0 -1
  406. package/dist/esm/sdk/transactionReview-DSGnpreN.js +0 -1
  407. package/dist/esm/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +0 -1
  408. package/dist/esm/sdk/wallet-recovery-BjIQdOha.js +0 -1
  409. package/dist/esm/sdk/walletAuthMethodRecord-yIqCeE-o.js +0 -1
  410. package/dist/esm/sdk/walletCapabilityBindings-CUPk3mVH.js +0 -1
  411. package/dist/esm/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +0 -1
  412. package/dist/esm/sdk/walletCustodyOperation-DzPcxEBS.js +0 -1
  413. package/dist/esm/sdk/walletDbName-DDJXrgA5.js +0 -1
  414. package/dist/esm/sdk/walletOwnershipGeneration-DI9ogcXF.js +0 -1
  415. package/dist/esm/sdk/walletRecoveryAdminProof-BJxmg3f7.js +0 -1
  416. package/dist/esm/sdk/walletRecoveryCommit-B7WsdR7y.js +0 -1
  417. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +0 -1
  418. package/dist/esm/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +0 -1
  419. package/dist/esm/sdk/warmSessionHydration-DqZyfi1h.js +0 -1
  420. package/dist/public/sdk/NonceCoordinator-Bti1HQPo.js +0 -1
  421. package/dist/public/sdk/accountLifecycle-B98g9zN9.js +0 -1
  422. package/dist/public/sdk/actions-GYsSR2Q2.js +0 -1
  423. package/dist/public/sdk/activeWalletSession-H9JBdHyQ.js +0 -1
  424. package/dist/public/sdk/adapters-D5MZ5NG5.js +0 -2
  425. package/dist/public/sdk/appearance-DVFno9Tv.js +0 -1
  426. package/dist/public/sdk/appearance-token-vars-CgYTfCKg.js +0 -1
  427. package/dist/public/sdk/canonicalPrimitives-B6YMrI3W.js +0 -1
  428. package/dist/public/sdk/challengeDelivery-FW9gYyr0.js +0 -1
  429. package/dist/public/sdk/clientSessionPersistenceState-BPYK9PYV.js +0 -1
  430. package/dist/public/sdk/configBuilder-DrxXNUpV.js +0 -1
  431. package/dist/public/sdk/configuration-CAqANpTI.js +0 -1
  432. package/dist/public/sdk/ecdsaCapabilityManifest--FjbES8k.js +0 -1
  433. package/dist/public/sdk/ecdsaDerivationClientWasm-7Rp4TmYE.js +0 -1
  434. package/dist/public/sdk/ecdsaDerivationExport-dInN7N6e.js +0 -1
  435. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +0 -1
  436. package/dist/public/sdk/errors-ADOZT8oV.js +0 -1
  437. package/dist/public/sdk/exportKeypairOperation-BazJvSov.js +0 -1
  438. package/dist/public/sdk/helpers-CXqXyyCU.js +0 -1
  439. package/dist/public/sdk/host-C0Is56lU.js +0 -1
  440. package/dist/public/sdk/icons-DyndJzSh.js +0 -1
  441. package/dist/public/sdk/indexedDB-C1odKEC6.js +0 -1
  442. package/dist/public/sdk/intentDigest-BMXki7yB.js +0 -1
  443. package/dist/public/sdk/keyMaterialEnvelope-B-Q5KTJC.js +0 -1
  444. package/dist/public/sdk/localOnly-BB3Rx3J6.js +0 -1
  445. package/dist/public/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +0 -1
  446. package/dist/public/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +0 -1
  447. package/dist/public/sdk/operationFingerprint-Bn0lUYlm.js +0 -1
  448. package/dist/public/sdk/presignaturePool-CultzkOG.js +0 -1
  449. package/dist/public/sdk/recovery-entrypoint-QBvJBngm.js +0 -1
  450. package/dist/public/sdk/recoveryAuthorization-DB-zxeHq.js +0 -1
  451. package/dist/public/sdk/registration-CM5a7WYO.js +0 -1
  452. package/dist/public/sdk/registration-Hv0xi7-L.js +0 -1
  453. package/dist/public/sdk/registrationIntent-DTs2SR9E.js +0 -1
  454. package/dist/public/sdk/registrationSignerPlan-CgbFVsAp.js +0 -1
  455. package/dist/public/sdk/requireStepUpAuth-B7tC4MrA.js +0 -1
  456. package/dist/public/sdk/resealedEnvelopeResult--iCVt_Bh.js +0 -1
  457. package/dist/public/sdk/routerAbNormalSigning-Div3lZWV.js +0 -1
  458. package/dist/public/sdk/runtime-auth-CVw1KoVD.js +0 -1
  459. package/dist/public/sdk/runtime-device-link-Dp0YMZTQ.js +0 -1
  460. package/dist/public/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +0 -1
  461. package/dist/public/sdk/runtime-email-otp-gsr_FsQn.js +0 -1
  462. package/dist/public/sdk/runtime-export-upMPrZ4V.js +0 -1
  463. package/dist/public/sdk/runtime-near-B64Hn3nc.js +0 -1
  464. package/dist/public/sdk/runtime-preferences-CULdHkbg.js +0 -1
  465. package/dist/public/sdk/runtime-recovery-D2saBaJy.js +0 -1
  466. package/dist/public/sdk/runtime-recovery-codes-Bvc0IXMJ.js +0 -1
  467. package/dist/public/sdk/runtimeContext-CNFJjcns.js +0 -6
  468. package/dist/public/sdk/secp256k1-BGVlx50C.js +0 -1
  469. package/dist/public/sdk/sessionObservationRevision-84ZzJ-fC.js +0 -1
  470. package/dist/public/sdk/signEvmFamily-PjwUc5MT.js +0 -1
  471. package/dist/public/sdk/signNear-r8VCOoTh.js +0 -1
  472. package/dist/public/sdk/signerSlot-D4ZOuK7e.js +0 -1
  473. package/dist/public/sdk/signingQueue-BJzOrwDq.js +0 -1
  474. package/dist/public/sdk/surface-measurement-reporter-NUm_54LH.js +0 -1
  475. package/dist/public/sdk/thresholdEcdsa-tnY83qyG.js +0 -1
  476. package/dist/public/sdk/transactionReview-DSGnpreN.js +0 -1
  477. package/dist/public/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +0 -1
  478. package/dist/public/sdk/wallet-recovery-BjIQdOha.js +0 -1
  479. package/dist/public/sdk/walletAuthMethodRecord-yIqCeE-o.js +0 -1
  480. package/dist/public/sdk/walletCapabilityBindings-CUPk3mVH.js +0 -1
  481. package/dist/public/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +0 -1
  482. package/dist/public/sdk/walletCustodyOperation-DzPcxEBS.js +0 -1
  483. package/dist/public/sdk/walletDbName-DDJXrgA5.js +0 -1
  484. package/dist/public/sdk/walletOwnershipGeneration-DI9ogcXF.js +0 -1
  485. package/dist/public/sdk/walletRecoveryAdminProof-BJxmg3f7.js +0 -1
  486. package/dist/public/sdk/walletRecoveryCommit-B7WsdR7y.js +0 -1
  487. package/dist/public/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +0 -1
  488. package/dist/public/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +0 -1
  489. package/dist/public/sdk/warmSessionHydration-DqZyfi1h.js +0 -1
  490. /package/dist/esm/sdk/{accountIds-D5NI31F2.js → accountIds-CW2BP-d9.js} +0 -0
  491. /package/dist/esm/sdk/{authenticatorOptions-EF_Rps52.js → authenticatorOptions-WCDKYRux.js} +0 -0
  492. /package/dist/esm/sdk/{authorizationAdmission-DbhNiY3X.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  493. /package/dist/esm/sdk/{browser-B2RI00tM.js → browser-CKS7Tq2r.js} +0 -0
  494. /package/dist/esm/sdk/{bytes-DVe42j_r.js → bytes-DXo6uALR.js} +0 -0
  495. /package/dist/esm/sdk/{canonicalSignerErrorCode-AwNMAn8S.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  496. /package/dist/esm/sdk/{capabilityKinds-BzrNeEyO.js → capabilityKinds-DVlGMspk.js} +0 -0
  497. /package/dist/esm/sdk/{configHelpers-BNqoU2cv.js → configHelpers-CXDY3bKC.js} +0 -0
  498. /package/dist/esm/sdk/{csp-stylesheet-DeuiM0Mo.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  499. /package/dist/esm/sdk/{events-1dzC4Ocx.js → events-D6l0_ugy.js} +0 -0
  500. /package/dist/esm/sdk/{executeWorkerOperation-B-9JuL55.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  501. /package/dist/esm/sdk/{jsonRpc-CHutSlC9.js → jsonRpc-BVDv1wfm.js} +0 -0
  502. /package/dist/esm/sdk/{keccak-C9kCkZem.js → keccak-mS0Mejjx.js} +0 -0
  503. /package/dist/esm/sdk/{normalization-DtruiNPw.js → normalization-B3i1-rPQ.js} +0 -0
  504. /package/dist/esm/sdk/{prfCache-8Wm3etlV.js → prfCache-DEHaUPSW.js} +0 -0
  505. /package/dist/esm/sdk/{profileAccountProjection-D01e10UY.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  506. /package/dist/esm/sdk/{promptText-Bz3YRl9D.js → promptText-bcKcsSka.js} +0 -0
  507. /package/dist/esm/sdk/{registrationAuthMethodInput-BvbWl0y_.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  508. /package/dist/esm/sdk/{sdkSentEvents-DUht3AOD.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  509. /package/dist/esm/sdk/{shared-DcHtE-D-.js → shared-CkHhXgFB.js} +0 -0
  510. /package/dist/esm/sdk/{signer-worker-DlK58rEA.js → signer-worker-BNodGJKY.js} +0 -0
  511. /package/dist/esm/sdk/{signerDomain-D-EUTlLK.js → signerDomain-BAsLT3XN.js} +0 -0
  512. /package/dist/esm/sdk/{signingSessionSeal-DqbjG8c8.js → signingSessionSeal-BFOBKj-J.js} +0 -0
  513. /package/dist/esm/sdk/{types-fJKfUgTi.js → types-C4OErbBf.js} +0 -0
  514. /package/dist/esm/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-CpgyEnKg.js} +0 -0
  515. /package/dist/esm/sdk/{walletSessionFailure-CLUIF3Eh.js → walletSessionFailure-CxsVtroW.js} +0 -0
  516. /package/dist/esm/sdk/{webauthnPromptCoordinator-CU9ag7vz.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
  517. /package/dist/public/sdk/{accountIds-D5NI31F2.js → accountIds-CW2BP-d9.js} +0 -0
  518. /package/dist/public/sdk/{authenticatorOptions-EF_Rps52.js → authenticatorOptions-WCDKYRux.js} +0 -0
  519. /package/dist/public/sdk/{authorizationAdmission-DbhNiY3X.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  520. /package/dist/public/sdk/{browser-B2RI00tM.js → browser-CKS7Tq2r.js} +0 -0
  521. /package/dist/public/sdk/{bytes-DVe42j_r.js → bytes-DXo6uALR.js} +0 -0
  522. /package/dist/public/sdk/{canonicalSignerErrorCode-AwNMAn8S.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  523. /package/dist/public/sdk/{capabilityKinds-BzrNeEyO.js → capabilityKinds-DVlGMspk.js} +0 -0
  524. /package/dist/public/sdk/{configHelpers-BNqoU2cv.js → configHelpers-CXDY3bKC.js} +0 -0
  525. /package/dist/public/sdk/{csp-stylesheet-DeuiM0Mo.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  526. /package/dist/public/sdk/{events-1dzC4Ocx.js → events-D6l0_ugy.js} +0 -0
  527. /package/dist/public/sdk/{executeWorkerOperation-B-9JuL55.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  528. /package/dist/public/sdk/{jsonRpc-CHutSlC9.js → jsonRpc-BVDv1wfm.js} +0 -0
  529. /package/dist/public/sdk/{keccak-C9kCkZem.js → keccak-mS0Mejjx.js} +0 -0
  530. /package/dist/public/sdk/{normalization-DtruiNPw.js → normalization-B3i1-rPQ.js} +0 -0
  531. /package/dist/public/sdk/{prfCache-8Wm3etlV.js → prfCache-DEHaUPSW.js} +0 -0
  532. /package/dist/public/sdk/{profileAccountProjection-D01e10UY.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  533. /package/dist/public/sdk/{promptText-Bz3YRl9D.js → promptText-bcKcsSka.js} +0 -0
  534. /package/dist/public/sdk/{registrationAuthMethodInput-BvbWl0y_.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  535. /package/dist/public/sdk/{sdkSentEvents-DUht3AOD.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  536. /package/dist/public/sdk/{shared-DcHtE-D-.js → shared-CkHhXgFB.js} +0 -0
  537. /package/dist/public/sdk/{signer-worker-DlK58rEA.js → signer-worker-BNodGJKY.js} +0 -0
  538. /package/dist/public/sdk/{signerDomain-D-EUTlLK.js → signerDomain-BAsLT3XN.js} +0 -0
  539. /package/dist/public/sdk/{signingSessionSeal-DqbjG8c8.js → signingSessionSeal-BFOBKj-J.js} +0 -0
  540. /package/dist/public/sdk/{types-fJKfUgTi.js → types-C4OErbBf.js} +0 -0
  541. /package/dist/public/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-CpgyEnKg.js} +0 -0
  542. /package/dist/public/sdk/{walletSessionFailure-CLUIF3Eh.js → walletSessionFailure-CxsVtroW.js} +0 -0
  543. /package/dist/public/sdk/{webauthnPromptCoordinator-CU9ag7vz.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
@@ -2651,6 +2651,13 @@ var SeamsWalletRepositories = class {
2651
2651
  ], "readwrite", this.replaceExactActiveWalletSessionFromStatusInTransaction.bind(this, input));
2652
2652
  }
2653
2653
  async replaceExactActiveWalletSessionFromStatusInTransaction(input, ctx) {
2654
+ const current = await readExactActiveWalletSessionForScopeInTransaction({
2655
+ ctx,
2656
+ walletId: input.active.walletId,
2657
+ authorityId: input.active.authorityId,
2658
+ authMethodId: input.active.authMethodId
2659
+ });
2660
+ if (current.kind !== "found" || current.operationCredential.token !== input.operationCredential.token || current.operationCredential.walletSessionId !== input.operationCredential.walletSessionId) return { kind: "superseded" };
2654
2661
  const authority = parseWalletAuthorityStorageRow(await ctx.store(SEAMS_WALLET_STORES.walletAuthorities).get(input.active.authorityId));
2655
2662
  const selection = parseWalletSelectionStorageRow(await ctx.store(SEAMS_WALLET_STORES.walletSelections).get(input.active.walletId));
2656
2663
  if (!authority || authority.record.state !== "active" || authority.record.walletId !== input.active.walletId || authority.record.authorityDigestB64u !== input.active.authorityDigestB64u || authority.record.revocationEpoch !== input.active.authorityRevocationEpoch || !selection || selection.record.lockState !== "unlocked" || selection.record.walletAuthMethodId !== input.active.authMethodId) return { kind: "superseded" };
@@ -4326,6 +4333,6 @@ var SeamsWalletRepositories = class {
4326
4333
  }
4327
4334
  };
4328
4335
  //#endregion
4329
- export { SeamsWalletRepositories, parseWalletAuthMethodV2StorageRow, parseWalletAuthorityStorageRow, parseWalletSelectionStorageRow };
4336
+ export { SeamsWalletRepositories, parseWalletAuthMethodV2StorageRow, parseWalletAuthorityStorageRow, parseWalletSelectionStorageRow, walletAuthorityStorageRow };
4330
4337
 
4331
4338
  //# sourceMappingURL=repositories.js.map
@@ -1,13 +1,20 @@
1
+ import { requireCanonicalString } from "../../../shared-ts/src/utils/validation.js";
1
2
  import { errorMessage } from "../../../shared-ts/src/utils/errors.js";
2
3
  import { NearJsonRpcClient, SignedTransaction as SignedTransaction$1 } from "../../../shared-ts/src/near/nearClient.js";
3
4
  import { NearRpcError } from "./NearRpcError.js";
4
5
  //#region src/core/rpcClients/near/NearClient.ts
5
6
  var SignedTransaction = class SignedTransaction extends SignedTransaction$1 {
7
+ transactionHash;
8
+ constructor(input) {
9
+ super(input);
10
+ this.transactionHash = input.transactionHash;
11
+ }
6
12
  static fromPlain(input) {
7
13
  return new SignedTransaction({
8
14
  transaction: input.transaction,
9
15
  signature: input.signature,
10
16
  borsh_bytes: input.borsh_bytes,
17
+ transactionHash: requireCanonicalString(input.transactionHash, "signed transaction hash"),
11
18
  ...input.nonceLease ? { nonceLease: input.nonceLease } : {},
12
19
  ...input.serverDispatch ? { serverDispatch: input.serverDispatch } : {}
13
20
  });
@@ -122,6 +122,13 @@ var WalletSessionStatusReadScope = class WalletSessionStatusReadScope {
122
122
  for (const key of [...sessions.keys()]) if (key.startsWith(credentialKey)) sessions.delete(key);
123
123
  }
124
124
  }
125
+ /** Recovery changes the authority projected by an existing session. */
126
+ invalidateCredential(token) {
127
+ const credentialKey = statusCredentialKey(token);
128
+ for (const reads of this.readsByFetch.values()) for (const key of reads.keys()) if (key.startsWith(credentialKey)) reads.delete(key);
129
+ this.suppliedStatus = { kind: "remote" };
130
+ WalletSessionStatusReadScope.forgetCredential(token);
131
+ }
125
132
  static observationForConfirmation(options, identity) {
126
133
  return observationsByFetch.get(options.fetchImpl ?? defaultStatusFetch)?.get(statusIdentityKey(options, identity)) ?? null;
127
134
  }
@@ -908,12 +908,15 @@ function toSignedTransactionResult(args) {
908
908
  const signedTx = signedTransactions[0];
909
909
  if (!signedTx || !signedTx.transaction || !signedTx.signature) throw new Error("Incomplete signed transaction data received");
910
910
  const nonceLease = args.nonceLeases?.[0];
911
+ const transactionHash = args.okResponse.payload.transactionHashes?.[0];
912
+ if (!transactionHash) throw new Error("Signed transaction is missing its hash");
911
913
  const serverDispatch = signedTx.serverDispatch;
912
914
  return {
913
915
  signedTransaction: new SignedTransaction({
914
916
  transaction: signedTx.transaction,
915
917
  signature: signedTx.signature,
916
918
  borsh_bytes: Array.from(signedTx.borshBytes || []),
919
+ transactionHash,
917
920
  ...nonceLease ? { nonceLease } : {},
918
921
  ...serverDispatch ? { serverDispatch } : {}
919
922
  }),
@@ -0,0 +1,89 @@
1
+ import { requireCanonicalString, requireNonEmptyString, requireRecord } from "../../shared-ts/src/utils/validation.js";
2
+ import { safeErrorMessage } from "../../shared-ts/src/utils/errors.js";
3
+ import { decodeNearFinalExecutionOutcome } from "../../shared-ts/src/utils/nearRpcResults.js";
4
+ //#region src/core/signingEngine/nearTransactionSubmission.ts
5
+ var NearTransactionRequest = class {
6
+ state = "not_dispatched";
7
+ constructor(transaction) {
8
+ this.transaction = transaction;
9
+ }
10
+ dispatched = () => {
11
+ this.state = "dispatched";
12
+ };
13
+ failed(error) {
14
+ if (this.state === "not_dispatched") return nearTransactionFailure(error, "not_submitted");
15
+ switch (this.transaction.kind) {
16
+ case "sign_and_send": return nearTransactionFailure(error, "submission_unknown");
17
+ case "send": return unresolvedNearTransaction(this.transaction.transactionId, error);
18
+ default: return assertNeverNearTransactionState(this.transaction);
19
+ }
20
+ }
21
+ };
22
+ function assertNeverNearTransactionState(value) {
23
+ throw new Error(`Unsupported NEAR transaction state: ${String(value)}`);
24
+ }
25
+ function parseNearTransactionResult(raw) {
26
+ const result = requireRecord(raw, "NEAR transaction result");
27
+ if (result.success === true) {
28
+ const transactionId = requireCanonicalString(result.transactionId, "transactionId");
29
+ const outcome = decodeNearFinalExecutionOutcome(result.result);
30
+ if (transactionId !== outcome.transaction.hash) throw new Error("NEAR transaction result contains different transaction hashes");
31
+ if (typeof outcome.status === "object" && "Failure" in outcome.status) return unresolvedNearTransaction(transactionId, /* @__PURE__ */ new Error("NEAR transaction execution failed"));
32
+ return {
33
+ success: true,
34
+ transactionId,
35
+ result: outcome
36
+ };
37
+ }
38
+ if (result.success !== false) throw new Error("Invalid NEAR transaction result");
39
+ const error = requireNonEmptyString(result.error, "NEAR transaction error");
40
+ switch (result.kind) {
41
+ case "not_submitted": return {
42
+ success: false,
43
+ kind: "not_submitted",
44
+ error
45
+ };
46
+ case "submission_unknown": return {
47
+ success: false,
48
+ kind: "submission_unknown",
49
+ error
50
+ };
51
+ case "unresolved": return {
52
+ success: false,
53
+ kind: "unresolved",
54
+ transactionId: requireCanonicalString(result.transactionId, "transactionId"),
55
+ error
56
+ };
57
+ default: throw new Error("Invalid NEAR transaction failure");
58
+ }
59
+ }
60
+ function nearTransactionFailure(error, fallback) {
61
+ return {
62
+ success: false,
63
+ kind: fallback,
64
+ error: safeErrorMessage(error) || "NEAR transaction failed"
65
+ };
66
+ }
67
+ function unresolvedNearTransaction(transactionId, error) {
68
+ return {
69
+ success: false,
70
+ kind: "unresolved",
71
+ transactionId,
72
+ error: safeErrorMessage(error)
73
+ };
74
+ }
75
+ /** Application hooks cannot replace a settled transaction outcome with their own error. */
76
+ async function notifyNearTransactionResult(options, result) {
77
+ const error = result.success ? void 0 : new Error(result.error);
78
+ if (error) try {
79
+ await options?.onError?.(error);
80
+ } catch {}
81
+ try {
82
+ if (result.success) await options?.afterCall?.(true, result);
83
+ else await options?.afterCall?.(false, void 0, error);
84
+ } catch {}
85
+ }
86
+ //#endregion
87
+ export { NearTransactionRequest, nearTransactionFailure, notifyNearTransactionResult, parseNearTransactionResult };
88
+
89
+ //# sourceMappingURL=nearTransactionSubmission.js.map
@@ -299,7 +299,7 @@ function attachConfirmSurfaceResizeChoreographer(element, options = {}) {
299
299
  current.moved = true;
300
300
  } else current.framesSinceChange += 1;
301
301
  const progress = clamp((viewportPx - current.originHostPx) / current.deltaCssPx, 0, 1);
302
- if (progress >= 1) {
302
+ if (viewportPx === Math.round(current.originHostPx + current.deltaCssPx)) {
303
303
  current.framesAtTarget += 1;
304
304
  if (current.sawIntermediate || current.framesAtTarget >= LANDING_CONFIRM_FRAMES) {
305
305
  settle();
@@ -310,7 +310,7 @@ function attachConfirmSurfaceResizeChoreographer(element, options = {}) {
310
310
  }
311
311
  if (current.framesAtTarget > 0) surfaceMotionDiagnostics.blipFrames += 1;
312
312
  current.framesAtTarget = 0;
313
- if (progress > 0) current.sawIntermediate = true;
313
+ if (progress > 0 && progress < 1) current.sawIntermediate = true;
314
314
  current.driver.setProgress(progress);
315
315
  const settledFrames = current.moved ? SETTLED_FRAMES_AFTER_MOTION : SETTLED_FRAMES_WITHOUT_MOTION;
316
316
  if (current.framesSinceChange >= settledFrames) {
@@ -69,8 +69,14 @@ var ReviewDisclosure = class extends Component {
69
69
  return;
70
70
  }
71
71
  details.open = true;
72
+ const scrollArea = details.parentElement?.closest(".seams-review-technical > div");
73
+ if (scrollArea && scrollArea.scrollHeight > scrollArea.clientHeight) {
74
+ details.open = opening;
75
+ details.removeAttribute("data-closing");
76
+ return;
77
+ }
72
78
  details.setAttribute("data-resizing", "");
73
- const target = opening ? body.scrollHeight : 0;
79
+ const target = opening ? body.getBoundingClientRect().height : 0;
74
80
  this.motion = {
75
81
  kind: "hosted",
76
82
  opening
@@ -1,6 +1,7 @@
1
1
  import { appearanceTokenCssRule } from "../appearance-token-vars.js";
2
2
  import { withWalletLocale } from "./WalletLocale.js";
3
3
  import { PadlockIcon } from "./PadlockIcon.js";
4
+ import { CONFIRM_SURFACE_HEIGHT_DRIVEN_VAR, announceSurfaceResize } from "../confirm-surface-resize.js";
4
5
  import { confirmationDocumentStyles } from "./confirmation-styles.js";
5
6
  import { ConfirmationContent } from "./ConfirmationContent.js";
6
7
  import { ConfirmationModal } from "./ConfirmationModal.js";
@@ -40,11 +41,40 @@ function captureReceiptAnchors(surface) {
40
41
  selector,
41
42
  text: element.textContent,
42
43
  bounds: element.getBoundingClientRect(),
43
- fontSize: getComputedStyle(element).fontSize
44
+ fontSize: getComputedStyle(element).fontSize,
45
+ textGeometry: element.matches("[role=\"status\"]") ? receiptTextGeometry(element) : null
44
46
  });
45
47
  }
46
48
  return anchors;
47
49
  }
50
+ function receiptTextGeometry(element) {
51
+ const range = element.ownerDocument.createRange();
52
+ range.selectNodeContents(element);
53
+ return {
54
+ bounds: range.getBoundingClientRect(),
55
+ lineCount: range.getClientRects().length
56
+ };
57
+ }
58
+ function receiptAnchorTransform(anchor, element) {
59
+ const destination = element.getBoundingClientRect();
60
+ const fontScale = parseFloat(anchor.fontSize) / parseFloat(getComputedStyle(element).fontSize);
61
+ let scaleX = fontScale;
62
+ let scaleY = fontScale;
63
+ let left = anchor.bounds.left - destination.left;
64
+ let top = anchor.bounds.top - destination.top;
65
+ if (anchor.textGeometry) {
66
+ const text = receiptTextGeometry(element);
67
+ const source = anchor.textGeometry.bounds;
68
+ const target = text.bounds;
69
+ if (anchor.textGeometry.lineCount === text.lineCount && target.width > 0 && target.height > 0) {
70
+ scaleX = source.width / target.width;
71
+ scaleY = source.height / target.height;
72
+ left = source.left - destination.left - (target.left - destination.left) * scaleX;
73
+ top = source.top - destination.top - (target.top - destination.top) * scaleY;
74
+ }
75
+ }
76
+ return `translate(${left}px, ${top}px) scale(${scaleX}, ${scaleY})`;
77
+ }
48
78
  /**
49
79
  * The progress segments a capture draws while it checks, as they look now, from
50
80
  * left to right whatever their drawing order. A line that has not split yet hands
@@ -87,7 +117,12 @@ var MountedConfirmationSurface = class {
87
117
  receiptShell = null;
88
118
  receiptGhost = null;
89
119
  receiptSegments = [];
120
+ receiptResize = null;
90
121
  clearReceiptMotion = () => {
122
+ this.element.querySelector(".seams-receipt-footer--hosted")?.classList.remove("seams-receipt-footer--hosted");
123
+ this.receiptResize?.element.classList.remove("seams-surface-height-driven");
124
+ this.receiptResize = null;
125
+ this.styles.deleteDynamicRule(`${this.element.id}-receipt-resize`);
91
126
  for (const animation of this.receiptMotion) animation.cancel();
92
127
  this.receiptMotion = [];
93
128
  this.receiptShell?.remove();
@@ -147,20 +182,20 @@ var MountedConfirmationSurface = class {
147
182
  }
148
183
  showReceipt(model) {
149
184
  if (this.state.kind !== "mounted" || this.state.model.content.kind !== "transaction") return;
150
- const viewChanged = this.receipt?.view !== model.view;
185
+ const shouldMorph = this.receipt?.view !== model.view || this.receiptMotion.length > 0;
151
186
  const previousShell = this.receiptShell ?? this.element.querySelector(".modal-container-root");
152
187
  const previousBounds = previousShell?.getBoundingClientRect();
153
- const anchors = viewChanged ? captureReceiptAnchors(this.element) : [];
154
- const leaving = viewChanged ? this.liveCapture() : null;
188
+ const anchors = shouldMorph ? captureReceiptAnchors(this.element) : [];
189
+ const leaving = shouldMorph ? this.liveCapture() : null;
155
190
  const previousRadius = previousShell ? getComputedStyle(previousShell).borderRadius : "26px";
156
- if (viewChanged) this.clearReceiptMotion();
191
+ if (shouldMorph) this.clearReceiptMotion();
157
192
  this.receipt = model;
158
193
  this.element.dataset.receiptView = model.view;
159
194
  this.element.dataset.seamsConfirmSurface = "wallet-iframe";
160
195
  this.element.dataset.seamsConfirmVariant = "modal";
161
196
  this.renderSurface();
162
197
  const target = this.element.querySelector(".modal-container-root");
163
- if (viewChanged && previousBounds && target && !window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
198
+ if (shouldMorph && previousBounds && target && !window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
164
199
  const bounds = target.getBoundingClientRect();
165
200
  const shell = this.element.ownerDocument.createElement("div");
166
201
  shell.className = "seams-receipt-morph-shell";
@@ -168,7 +203,7 @@ var MountedConfirmationSurface = class {
168
203
  this.element.appendChild(shell);
169
204
  this.receiptShell = shell;
170
205
  this.element.setAttribute("data-receipt-morphing", "");
171
- this.receiptMotion = [shell.animate([{
206
+ const morph = shell.animate([{
172
207
  left: `${previousBounds.left}px`,
173
208
  top: `${previousBounds.top}px`,
174
209
  width: `${previousBounds.width}px`,
@@ -184,17 +219,17 @@ var MountedConfirmationSurface = class {
184
219
  duration: RECEIPT_MORPH_DURATION_MS,
185
220
  easing: RECEIPT_MORPH_EASING,
186
221
  fill: "both"
187
- })];
222
+ });
223
+ this.receiptMotion = [morph];
224
+ const geometryAnimations = [morph];
188
225
  const handedOver = leaving ? this.handOverCapture(leaving, target) : false;
189
226
  const shared = /* @__PURE__ */ new Set();
190
227
  for (const anchor of anchors) {
191
228
  const element = target.querySelector(anchor.selector);
192
229
  if (!element || element.textContent !== anchor.text) continue;
193
- const destination = element.getBoundingClientRect();
194
230
  shared.add(element);
195
- const scale = parseFloat(anchor.fontSize) / parseFloat(getComputedStyle(element).fontSize);
196
- this.receiptMotion.push(element.animate([{
197
- transform: `translate(${anchor.bounds.left - destination.left}px, ${anchor.bounds.top - destination.top}px) scale(${scale})`,
231
+ const animation = element.animate([{
232
+ transform: receiptAnchorTransform(anchor, element),
198
233
  transformOrigin: "top left"
199
234
  }, {
200
235
  transform: "translate(0, 0) scale(1)",
@@ -202,14 +237,17 @@ var MountedConfirmationSurface = class {
202
237
  }], {
203
238
  duration: RECEIPT_MORPH_DURATION_MS,
204
239
  easing: RECEIPT_MORPH_EASING
205
- }));
240
+ });
241
+ this.receiptMotion.push(animation);
242
+ geometryAnimations.push(animation);
206
243
  }
207
244
  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 > *");
208
245
  let order = 0;
209
246
  for (const detail of details) {
210
247
  if (shared.has(detail)) continue;
211
248
  const toolbar = leaving !== null && detail.matches(".seams-review-toolbar");
212
- this.receiptMotion.push(detail.animate(toolbar ? [{ opacity: 0 }, { opacity: 1 }] : [{
249
+ const stationary = toolbar || detail.matches(".seams-receipt-footer");
250
+ this.receiptMotion.push(detail.animate(stationary ? [{ opacity: 0 }, { opacity: 1 }] : [{
213
251
  opacity: 0,
214
252
  transform: "translateY(8px)"
215
253
  }, {
@@ -228,12 +266,83 @@ var MountedConfirmationSurface = class {
228
266
  }));
229
267
  if (!toolbar) order += 1;
230
268
  }
269
+ this.resizeReceipt({
270
+ element: target,
271
+ animations: geometryAnimations,
272
+ fromHeight: previousBounds.height,
273
+ toHeight: bounds.height
274
+ });
231
275
  const motion = this.receiptMotion;
232
276
  Promise.all(motion.map((animation) => animation.finished)).then(() => {
233
277
  if (this.receiptMotion === motion) this.clearReceiptMotion();
234
278
  }, ignoreCancelledMotion);
235
279
  }
236
280
  }
281
+ resizeReceipt(resize) {
282
+ if (Math.abs(resize.toHeight - resize.fromHeight) < 1) return;
283
+ this.receiptResize = resize;
284
+ for (const animation of resize.animations) {
285
+ animation.pause();
286
+ animation.effect?.updateTiming({ easing: "linear" });
287
+ }
288
+ resize.element.classList.add("seams-surface-height-driven");
289
+ this.setReceiptHeight(resize, resize.fromHeight);
290
+ if (announceSurfaceResize(resize.element, {
291
+ reason: "receipt-transition",
292
+ fromCssPx: resize.fromHeight,
293
+ toCssPx: resize.toHeight,
294
+ setHeightCssPx: this.setReceiptHeight.bind(this, resize),
295
+ finish: this.finishReceiptResize.bind(this, resize)
296
+ })) {
297
+ this.fitReceiptToViewport(resize);
298
+ return;
299
+ }
300
+ this.receiptResize = null;
301
+ resize.element.classList.remove("seams-surface-height-driven");
302
+ this.styles.deleteDynamicRule(`${this.element.id}-receipt-resize`);
303
+ for (const animation of resize.animations) {
304
+ animation.effect?.updateTiming({ easing: RECEIPT_MORPH_EASING });
305
+ animation.play();
306
+ }
307
+ }
308
+ fitReceiptToViewport(resize) {
309
+ const footer = resize.element.querySelector(".seams-receipt-footer");
310
+ for (const animation of resize.animations) {
311
+ const effect = animation.effect;
312
+ if (!(effect instanceof KeyframeEffect)) continue;
313
+ if (effect.target === this.receiptShell) {
314
+ this.receiptShell?.classList.add("seams-receipt-morph-shell--hosted");
315
+ const frames = effect.getKeyframes();
316
+ for (const frame of frames) {
317
+ delete frame.height;
318
+ delete frame.width;
319
+ }
320
+ effect.setKeyframes(frames);
321
+ } else if (footer && effect.target === footer) {
322
+ const frames = effect.getKeyframes();
323
+ for (const frame of frames) delete frame.transform;
324
+ effect.setKeyframes(frames);
325
+ }
326
+ }
327
+ footer?.classList.add("seams-receipt-footer--hosted");
328
+ }
329
+ setReceiptHeight(resize, height) {
330
+ if (this.receiptResize !== resize) return;
331
+ this.styles.setDynamicDeclarations(`${this.element.id}-receipt-resize`, `#${resize.element.id}`, {
332
+ [CONFIRM_SURFACE_HEIGHT_DRIVEN_VAR]: `${height}px`,
333
+ "--seams-receipt-target-height": `${resize.toHeight}px`
334
+ });
335
+ const progress = (height - resize.fromHeight) / (resize.toHeight - resize.fromHeight);
336
+ for (const animation of resize.animations) animation.currentTime = Math.max(0, Math.min(1, progress)) * RECEIPT_MORPH_DURATION_MS;
337
+ }
338
+ finishReceiptResize(resize) {
339
+ if (this.receiptResize !== resize) return;
340
+ this.receiptResize = null;
341
+ resize.element.classList.remove("seams-surface-height-driven");
342
+ resize.element.querySelector(".seams-receipt-footer--hosted")?.classList.remove("seams-receipt-footer--hosted");
343
+ this.styles.deleteDynamicRule(`${this.element.id}-receipt-resize`);
344
+ for (const animation of resize.animations) animation.finish();
345
+ }
237
346
  /** The auth method capture still on screen, measured before the receipt replaces it. */
238
347
  liveCapture() {
239
348
  if (this.state.kind !== "mounted" || this.state.model.content.kind !== "transaction") return null;
@@ -37,6 +37,17 @@ const walletMessages = [
37
37
  ["Enter a recovery code to recover your wallet.", "リカバリーコードを入力してウォレットを復元してください。"],
38
38
  ["Create new passkey", "新しいパスキーを作成"],
39
39
  ["Continue with Google", "Google で続ける"],
40
+ ["Connect wallet", "ウォレットを接続"],
41
+ ["Back to wallet selection", "ウォレットの選択に戻る"],
42
+ ["Choose how you’d like to get started.", "開始方法を選択してください。"],
43
+ ["Create a Seams Wallet", "Seams ウォレットを作成"],
44
+ ["Get started with a passkey", "パスキーで開始"],
45
+ ["Use your existing wallet", "既存のウォレットを使用"],
46
+ ["Connect Meteor Wallet", "Meteor Wallet を接続"],
47
+ ["Connect HOT Wallet", "HOT Wallet を接続"],
48
+ ["Connect Intear Wallet", "Intear Wallet を接続"],
49
+ ["Mainnet only", "メインネットのみ"],
50
+ ["Complete the request in your wallet.", "ウォレットでリクエストを完了してください。"],
40
51
  ["Verify email code", "メールのコードを確認"],
41
52
  ["Unlock with Google", "Google でロック解除"],
42
53
  ["Unlock with new passkey", "新しいパスキーでロック解除"],
@@ -232,6 +243,7 @@ const walletMessages = [
232
243
  ["Create a wallet", "ウォレットを作成"],
233
244
  ["Create wallet with passkey", "パスキーでウォレットを作成"],
234
245
  ["Unlock with passkey", "パスキーでロック解除"],
246
+ ["Unlock with email code", "メールのコードでロック解除"],
235
247
  ["Saved wallets", "保存済みウォレット"],
236
248
  ["Generate another name", "別の名前を生成"],
237
249
  ["Other options", "その他の方法"],
@@ -8,7 +8,7 @@ import { SlidersIcon } from "./icons/SlidersIcon.js";
8
8
  import { RecoveryCodesIcon } from "./icons/RecoveryCodesIcon.js";
9
9
  import TouchIcon from "./icons/TouchIcon.js";
10
10
  import { AccountMenuButtonView } from "./AccountMenuButtonView.js";
11
- import { useProfileState } from "./hooks/useProfileState.js";
11
+ import { profileOpenControl, useProfileState } from "./hooks/useProfileState.js";
12
12
  import { TransactionSettingsSection } from "./TransactionSettingsSection.js";
13
13
  import { AccountMenuMockScreens } from "./AccountMenuMockScreens.js";
14
14
  import { useEffect, useState } from "react";
@@ -55,18 +55,15 @@ function openPreview(setStatus, toggle) {
55
55
  function resetPreviewNavigation(isOpen, setScreen) {
56
56
  if (!isOpen) setScreen({ kind: "overview" });
57
57
  }
58
- function AccountMenuPreview({ username = "Alex Chen", walletId = "alex.near", theme = "light", defaultOpen = true, className, style }) {
59
- const [open, setOpen] = useState(defaultOpen);
58
+ function AccountMenuPreview(props) {
59
+ const { username = "Alex Chen", walletId = "alex.near", theme = "light", defaultOpen = true, presentation = "dropdown", className, style } = props;
60
60
  const [status, setStatus] = useState("ready");
61
61
  const [screen, setScreen] = useState({ kind: "overview" });
62
62
  const [confirmation, setConfirmation] = useState({
63
63
  uiMode: "modal",
64
64
  behavior: "requireClick"
65
65
  });
66
- const { refs, isOpen, handleToggle, handleClose } = useProfileState({
67
- open,
68
- onOpenChange: setOpen
69
- });
66
+ const { refs, isOpen, handleToggle, handleClose } = useProfileState(presentation, profileOpenControl(props, defaultOpen));
70
67
  useEffect(resetPreviewNavigation.bind(null, isOpen, setScreen), [isOpen]);
71
68
  const menuItems = [
72
69
  {
@@ -137,6 +134,7 @@ function AccountMenuPreview({ username = "Alex Chen", walletId = "alex.near", th
137
134
  }
138
135
  ];
139
136
  return /* @__PURE__ */ jsx(AccountMenuButtonView, {
137
+ presentation,
140
138
  buttonRef: refs.buttonRef,
141
139
  dropdownRef: refs.dropdownRef,
142
140
  className,
@@ -4,6 +4,7 @@ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
4
4
  import TouchIcon from "./icons/TouchIcon.js";
5
5
  import { UserAccountButton } from "./UserAccountButton.js";
6
6
  import { ProfileDropdown } from "./ProfileDropdown.js";
7
+ import { AccountMenuModal } from "./AccountMenuModal.js";
7
8
  import { LockKeyholeIcon } from "./icons/LockKeyholeIcon.js";
8
9
  import { useLayoutEffect, useRef, useState } from "react";
9
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -24,11 +25,18 @@ function observePanel(contentRef, isOpen, setHeight) {
24
25
  observer.observe(content);
25
26
  return observer.disconnect.bind(observer);
26
27
  }
27
- function closeWithEscape(onClose, event) {
28
+ function closeWithEscape(presentation, onClose, event) {
28
29
  if (event.key !== "Escape" || event.defaultPrevented) return;
29
30
  event.preventDefault();
31
+ if (presentation === "modal") event.stopPropagation();
30
32
  onClose();
31
33
  }
34
+ function revealModalScreen(presentation, event) {
35
+ if (presentation !== "modal" || !(event.target instanceof HTMLElement)) return;
36
+ if (!event.target.matches(".seams-account-heading h2, .seams-account-identity")) return;
37
+ const dialog = event.currentTarget.closest("dialog.seams-account-modal");
38
+ if (dialog instanceof HTMLDialogElement) dialog.scrollTop = 0;
39
+ }
32
40
  function restoreTriggerFocus(buttonRef, previousOpen, isOpen) {
33
41
  if (previousOpen.current && !isOpen) buttonRef.current?.querySelector("[aria-expanded]")?.focus({ preventScroll: true });
34
42
  previousOpen.current = isOpen;
@@ -38,7 +46,7 @@ function restoreOverviewFocus(buttonRef, previousScreen, hasScreen) {
38
46
  previousScreen.current = hasScreen;
39
47
  }
40
48
  /** One shell for live account screens and the provider-free preview. */
41
- function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, className, style, children }) {
49
+ function AccountMenuButtonView({ presentation, buttonRef, dropdownRef, trigger, dropdown, className, style, children }) {
42
50
  const locale = useWalletLocale();
43
51
  const contentRef = useRef(null);
44
52
  const hasScreen = children !== null && children !== void 0;
@@ -47,8 +55,8 @@ function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, clas
47
55
  const previousOpen = useRef(trigger.isOpen);
48
56
  useLayoutEffect(restoreTriggerFocus.bind(null, buttonRef, previousOpen, trigger.isOpen), [buttonRef, trigger.isOpen]);
49
57
  const [height, setHeight] = useState(null);
50
- useLayoutEffect(observePanel.bind(null, contentRef, trigger.isOpen, setHeight), [trigger.isOpen]);
51
- return /* @__PURE__ */ jsx("div", {
58
+ useLayoutEffect(observePanel.bind(null, contentRef, trigger.isOpen, setHeight), [trigger.isOpen, presentation]);
59
+ const panel = /* @__PURE__ */ jsx("div", {
52
60
  ref: buttonRef,
53
61
  className: `seams-profile-button-morphable ${trigger.isOpen ? "open" : "closed"} ${className ?? ""}`,
54
62
  style: trigger.isOpen ? style : {
@@ -56,9 +64,10 @@ function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, clas
56
64
  width: "fit-content"
57
65
  },
58
66
  "data-state": trigger.isOpen ? "open" : "closed",
67
+ onFocusCapture: revealModalScreen.bind(null, presentation),
59
68
  children: trigger.isOpen ? /* @__PURE__ */ jsx("div", {
60
69
  className: "seams-account-resize",
61
- onKeyDown: closeWithEscape.bind(null, dropdown.onClose),
70
+ onKeyDown: closeWithEscape.bind(null, presentation, dropdown.onClose),
62
71
  style: { height: height ?? void 0 },
63
72
  children: /* @__PURE__ */ jsxs("div", {
64
73
  ref: contentRef,
@@ -71,6 +80,7 @@ function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, clas
71
80
  /* @__PURE__ */ jsx("span", { children: typeof window === "undefined" ? "" : window.location.host }),
72
81
  /* @__PURE__ */ jsx("button", {
73
82
  type: "button",
83
+ className: "seams-account-close",
74
84
  "aria-label": walletText(locale, "Close wallet settings"),
75
85
  onClick: dropdown.onClose,
76
86
  children: /* @__PURE__ */ jsx("svg", {
@@ -121,6 +131,12 @@ function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, clas
121
131
  })
122
132
  }) : /* @__PURE__ */ jsx(UserAccountButton, { ...trigger })
123
133
  });
134
+ if (presentation === "modal") return /* @__PURE__ */ jsx(AccountMenuModal, {
135
+ isOpen: trigger.isOpen,
136
+ onClose: dropdown.onClose,
137
+ children: panel
138
+ });
139
+ return panel;
124
140
  }
125
141
  //#endregion
126
142
  export { AccountMenuButtonView };
@@ -0,0 +1,66 @@
1
+ import { walletText } from "../../../core/ui/messages.js";
2
+ import { useWalletLocale } from "../../context/WalletLocale.js";
3
+ import { Theme, useTheme } from "../theme/ThemeProvider.js";
4
+ import { useLayoutEffect, useRef } from "react";
5
+ import { createPortal } from "react-dom";
6
+ import { jsx } from "react/jsx-runtime";
7
+ //#region src/react/components/AccountMenuButton/AccountMenuModal.tsx
8
+ function openDialog(ref) {
9
+ const dialog = ref.current;
10
+ if (!dialog) return;
11
+ dialog.showModal();
12
+ return dialog.close.bind(dialog);
13
+ }
14
+ function isBackdrop(event) {
15
+ if (event.target !== event.currentTarget) return false;
16
+ const bounds = event.currentTarget.getBoundingClientRect();
17
+ return event.clientX < bounds.left || event.clientX > bounds.right || event.clientY < bounds.top || event.clientY > bounds.bottom;
18
+ }
19
+ function rememberBackdrop(startedOutside, event) {
20
+ startedOutside.current = isBackdrop(event);
21
+ }
22
+ function closeBackdrop(startedOutside, onClose, event) {
23
+ const shouldClose = startedOutside.current && isBackdrop(event);
24
+ startedOutside.current = false;
25
+ if (!shouldClose) return;
26
+ event.stopPropagation();
27
+ onClose();
28
+ }
29
+ function cancelDialog(onClose, event) {
30
+ event.preventDefault();
31
+ event.stopPropagation();
32
+ onClose();
33
+ }
34
+ function SettingsDialog({ onClose, children }) {
35
+ const locale = useWalletLocale();
36
+ const ref = useRef(null);
37
+ const startedOutside = useRef(false);
38
+ useLayoutEffect(openDialog.bind(null, ref), []);
39
+ return /* @__PURE__ */ jsx("dialog", {
40
+ ref,
41
+ "data-seams-root": "",
42
+ className: "seams-account-modal",
43
+ "aria-label": walletText(locale, "Wallet settings"),
44
+ onCancel: cancelDialog.bind(null, onClose),
45
+ onPointerDown: rememberBackdrop.bind(null, startedOutside),
46
+ onClick: closeBackdrop.bind(null, startedOutside, onClose),
47
+ children
48
+ });
49
+ }
50
+ function AccountMenuModal({ isOpen, onClose, children }) {
51
+ const { theme, tokens } = useTheme();
52
+ if (!isOpen || typeof document === "undefined") return null;
53
+ return createPortal(/* @__PURE__ */ jsx(Theme, {
54
+ tag: "div",
55
+ theme,
56
+ tokens: { [theme]: tokens },
57
+ children: /* @__PURE__ */ jsx(SettingsDialog, {
58
+ onClose,
59
+ children
60
+ })
61
+ }), document.body);
62
+ }
63
+ //#endregion
64
+ export { AccountMenuModal };
65
+
66
+ //# sourceMappingURL=AccountMenuModal.js.map