@seams/wallet 0.26.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 (338) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/publicApi/near.js +22 -11
  3. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
  4. package/dist/esm/SeamsWeb/walletIframe/client/router.js +57 -38
  5. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +1 -0
  6. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +1 -1
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +28 -0
  8. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -0
  9. package/dist/esm/core/rpcClients/near/NearClient.js +7 -0
  10. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -0
  11. package/dist/esm/core/signingEngine/nearTransactionSubmission.js +89 -0
  12. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -2
  13. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +7 -1
  14. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +123 -14
  15. package/dist/esm/core/ui/messages.js +12 -0
  16. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +27 -3
  17. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +2 -2
  18. package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
  19. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.css +182 -0
  20. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.js +315 -0
  21. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +13 -4
  22. package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
  23. package/dist/esm/react/externalNear.js +2 -6
  24. package/dist/esm/react/index.js +2 -1
  25. package/dist/esm/react/styles/styles.css +210 -3
  26. package/dist/esm/react/styles.css +1 -0
  27. package/dist/esm/react/transactionReview/boundCalls.js +31 -26
  28. package/dist/esm/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
  29. package/dist/esm/sdk/{NonceCoordinator-CcD2FqXh.js → NonceCoordinator-3YhmDTS5.js} +1 -1
  30. package/dist/{public/sdk/SeamsWordmark-DqiC9-sd.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  31. package/dist/esm/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  32. package/dist/esm/sdk/{adapters-e7twFGov.js → adapters-d9yh1bdC.js} +1 -1
  33. package/dist/esm/sdk/appearance-token-vars-BJydfWT_.js +1 -0
  34. package/dist/{public/sdk/clientSessionPersistenceState-YvVHKRoe.js → esm/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  35. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  36. package/dist/esm/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  37. package/dist/esm/sdk/confirm-ui-nU6ymgiv.js +2 -0
  38. package/dist/esm/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  39. package/dist/esm/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-CfEiotVt.js} +1 -1
  40. package/dist/esm/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  41. package/dist/esm/sdk/{ecdsaCapabilityManifest-CXVq8Qzb.js → ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  42. package/dist/esm/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  43. package/dist/{public/sdk/ecdsaDerivationExport-CkmSe0ao.js → esm/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  44. package/dist/esm/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  45. package/dist/esm/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  46. package/dist/esm/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  47. package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
  48. package/dist/esm/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  49. package/dist/esm/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BtrKVXxu.js} +1 -1
  50. package/dist/esm/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CGE9ZU1m.js} +1 -1
  51. package/dist/esm/sdk/host-DayrOrgm.js +1 -0
  52. package/dist/{public/sdk/icons-DDRXJ2W1.js → esm/sdk/icons-BlMXolHv.js} +1 -1
  53. package/dist/esm/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  54. package/dist/esm/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  55. package/dist/esm/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  56. package/dist/esm/sdk/{localOnly-Jw9v9GU9.js → localOnly-BATWJj78.js} +1 -1
  57. package/dist/{public/sdk/mountExportPrivateKeySurface-B_052qyI.js → esm/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
  58. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
  59. package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  60. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  61. package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  62. package/dist/esm/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  63. package/dist/esm/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  64. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → esm/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
  65. package/dist/esm/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  66. package/dist/{public/sdk/recovery-entrypoint-9e3SXU3t.js → esm/sdk/recovery-entrypoint-DJbMDC_m.js} +1 -1
  67. package/dist/esm/sdk/{registration-C988Nwzn.js → registration-CNLUYN-p.js} +1 -1
  68. package/dist/esm/sdk/{registration-D4AijOa8.js → registration-HSwOHZOo.js} +1 -1
  69. package/dist/esm/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  70. package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
  71. package/dist/esm/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  72. package/dist/{public/sdk/requireStepUpAuth-DC9LSyRI.js → esm/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  73. package/dist/esm/sdk/{resealedEnvelopeResult-BKATJaqW.js → resealedEnvelopeResult-B1p5UkYg.js} +1 -1
  74. package/dist/{public/sdk/routerAbNormalSigning-Da-uxxle.js → esm/sdk/routerAbNormalSigning-D-UZmCBS.js} +1 -1
  75. package/dist/esm/sdk/runtime-auth-BCoj7_-G.js +1 -0
  76. package/dist/esm/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-DAsq5tGT.js} +1 -1
  77. package/dist/{public/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → esm/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js} +1 -1
  78. package/dist/{public/sdk/runtime-email-otp-CaxfpqKI.js → esm/sdk/runtime-email-otp-BxSKK9AG.js} +1 -1
  79. package/dist/esm/sdk/{runtime-export-Du5ugbzi.js → runtime-export-BWnQXMzT.js} +1 -1
  80. package/dist/esm/sdk/runtime-near-CuzPZrDS.js +1 -0
  81. package/dist/esm/sdk/runtime-preferences-B-nDWlm3.js +1 -0
  82. package/dist/esm/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
  83. package/dist/esm/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-DeUjQsxZ.js} +1 -1
  84. package/dist/esm/sdk/runtimeContext-5JcewRo3.js +6 -0
  85. package/dist/{public/sdk/secp256k1--vF2pJgR.js → esm/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  86. package/dist/esm/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
  87. package/dist/esm/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  88. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  89. package/dist/esm/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  90. package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
  91. package/dist/esm/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  92. package/dist/{public/sdk/signingFlow-C7fwkxPx.js → esm/sdk/signingFlow-BcetvUeS.js} +1 -1
  93. package/dist/{public/sdk/signingQueue-DvHGcaLc.js → esm/sdk/signingQueue-dMFOFOP5.js} +1 -1
  94. package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  95. package/dist/esm/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  96. package/dist/esm/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  97. package/dist/esm/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  98. package/dist/esm/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  99. package/dist/esm/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  100. package/dist/esm/sdk/tx-confirm-ui.js +173 -18
  101. package/dist/esm/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  102. package/dist/esm/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  103. package/dist/esm/sdk/voiceid-host.js +1 -1
  104. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  105. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  106. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  107. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  108. package/dist/{public/sdk/wallet-recovery-jyfGoejZ.js → esm/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  109. package/dist/esm/sdk/wallet-ui.css +1 -1
  110. package/dist/esm/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  111. package/dist/{public/sdk/walletAuthority-DGdC9Glh.js → esm/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  112. package/dist/esm/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  113. package/dist/esm/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  114. package/dist/{public/sdk/walletOwnershipGeneration-z9NXOk-b.js → esm/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  115. package/dist/{public/sdk/walletRecoveryAdminProof-hytB9fXI.js → esm/sdk/walletRecoveryAdminProof-CvSYbyg5.js} +1 -1
  116. package/dist/{public/sdk/walletRecoveryCommit-sr8-RYvn.js → esm/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  117. package/dist/esm/sdk/{walletSessionAuthorizationStore-BEJyERPZ.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  118. package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  119. package/dist/esm/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  120. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  121. package/dist/esm/shared-ts/src/utils/errors.js +50 -2
  122. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  123. package/dist/esm/voiceid-host.js +1 -1
  124. package/dist/public/headers.manifest.json +1 -1
  125. package/dist/public/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
  126. package/dist/public/sdk/{NonceCoordinator-CcD2FqXh.js → NonceCoordinator-3YhmDTS5.js} +1 -1
  127. package/dist/{esm/sdk/SeamsWordmark-DqiC9-sd.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  128. package/dist/public/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  129. package/dist/public/sdk/{adapters-e7twFGov.js → adapters-d9yh1bdC.js} +1 -1
  130. package/dist/public/sdk/appearance-token-vars-BJydfWT_.js +1 -0
  131. package/dist/{esm/sdk/clientSessionPersistenceState-YvVHKRoe.js → public/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  132. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  133. package/dist/public/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  134. package/dist/public/sdk/confirm-ui-nU6ymgiv.js +2 -0
  135. package/dist/public/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  136. package/dist/public/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-CfEiotVt.js} +1 -1
  137. package/dist/public/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  138. package/dist/public/sdk/{ecdsaCapabilityManifest-CXVq8Qzb.js → ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  139. package/dist/public/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  140. package/dist/{esm/sdk/ecdsaDerivationExport-CkmSe0ao.js → public/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  141. package/dist/public/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  142. package/dist/public/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  143. package/dist/public/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  144. package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
  145. package/dist/public/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  146. package/dist/public/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BtrKVXxu.js} +1 -1
  147. package/dist/public/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CGE9ZU1m.js} +1 -1
  148. package/dist/public/sdk/host-DayrOrgm.js +1 -0
  149. package/dist/{esm/sdk/icons-DDRXJ2W1.js → public/sdk/icons-BlMXolHv.js} +1 -1
  150. package/dist/public/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  151. package/dist/public/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  152. package/dist/public/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  153. package/dist/public/sdk/{localOnly-Jw9v9GU9.js → localOnly-BATWJj78.js} +1 -1
  154. package/dist/{esm/sdk/mountExportPrivateKeySurface-B_052qyI.js → public/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
  155. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
  156. package/dist/public/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  157. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  158. package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  159. package/dist/public/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  160. package/dist/public/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  161. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → public/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
  162. package/dist/public/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  163. package/dist/{esm/sdk/recovery-entrypoint-9e3SXU3t.js → public/sdk/recovery-entrypoint-DJbMDC_m.js} +1 -1
  164. package/dist/public/sdk/{registration-C988Nwzn.js → registration-CNLUYN-p.js} +1 -1
  165. package/dist/public/sdk/{registration-D4AijOa8.js → registration-HSwOHZOo.js} +1 -1
  166. package/dist/public/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  167. package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
  168. package/dist/public/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  169. package/dist/{esm/sdk/requireStepUpAuth-DC9LSyRI.js → public/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  170. package/dist/public/sdk/{resealedEnvelopeResult-BKATJaqW.js → resealedEnvelopeResult-B1p5UkYg.js} +1 -1
  171. package/dist/{esm/sdk/routerAbNormalSigning-Da-uxxle.js → public/sdk/routerAbNormalSigning-D-UZmCBS.js} +1 -1
  172. package/dist/public/sdk/runtime-auth-BCoj7_-G.js +1 -0
  173. package/dist/public/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-DAsq5tGT.js} +1 -1
  174. package/dist/{esm/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → public/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js} +1 -1
  175. package/dist/{esm/sdk/runtime-email-otp-CaxfpqKI.js → public/sdk/runtime-email-otp-BxSKK9AG.js} +1 -1
  176. package/dist/public/sdk/{runtime-export-Du5ugbzi.js → runtime-export-BWnQXMzT.js} +1 -1
  177. package/dist/public/sdk/runtime-near-CuzPZrDS.js +1 -0
  178. package/dist/public/sdk/runtime-preferences-B-nDWlm3.js +1 -0
  179. package/dist/public/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
  180. package/dist/public/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-DeUjQsxZ.js} +1 -1
  181. package/dist/public/sdk/runtimeContext-5JcewRo3.js +6 -0
  182. package/dist/{esm/sdk/secp256k1--vF2pJgR.js → public/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  183. package/dist/public/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
  184. package/dist/public/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  185. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  186. package/dist/public/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  187. package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
  188. package/dist/public/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  189. package/dist/{esm/sdk/signingFlow-C7fwkxPx.js → public/sdk/signingFlow-BcetvUeS.js} +1 -1
  190. package/dist/{esm/sdk/signingQueue-DvHGcaLc.js → public/sdk/signingQueue-dMFOFOP5.js} +1 -1
  191. package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  192. package/dist/public/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  193. package/dist/public/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  194. package/dist/public/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  195. package/dist/public/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  196. package/dist/public/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  197. package/dist/public/sdk/tx-confirm-ui.js +173 -18
  198. package/dist/public/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  199. package/dist/public/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  200. package/dist/public/sdk/voiceid-host.js +1 -1
  201. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  202. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  203. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  204. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  205. package/dist/{esm/sdk/wallet-recovery-jyfGoejZ.js → public/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  206. package/dist/public/sdk/wallet-ui.css +1 -1
  207. package/dist/public/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  208. package/dist/{esm/sdk/walletAuthority-DGdC9Glh.js → public/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  209. package/dist/public/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  210. package/dist/public/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  211. package/dist/{esm/sdk/walletOwnershipGeneration-z9NXOk-b.js → public/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  212. package/dist/{esm/sdk/walletRecoveryAdminProof-hytB9fXI.js → public/sdk/walletRecoveryAdminProof-CvSYbyg5.js} +1 -1
  213. package/dist/{esm/sdk/walletRecoveryCommit-sr8-RYvn.js → public/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  214. package/dist/public/sdk/{walletSessionAuthorizationStore-BEJyERPZ.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  215. package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  216. package/dist/public/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  217. package/dist/public/wallet-assets.manifest.json +270 -246
  218. package/dist/public/wallet-service/index.html +4 -4
  219. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +1 -0
  220. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +2 -0
  221. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
  222. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
  223. package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -0
  224. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +2 -0
  225. package/dist/types/wallet/src/core/types/linkDevice.d.ts +4 -5
  226. package/dist/types/wallet/src/core/types/seams.d.ts +15 -3
  227. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  228. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
  229. package/dist/types/wallet/src/react/components/ExternalNearWalletIcon.d.ts +5 -0
  230. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.d.ts +31 -0
  231. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +4 -0
  232. package/dist/types/wallet/src/react/components/externalWalletBrandImages.d.ts +3 -0
  233. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -0
  234. package/dist/types/wallet/src/react/index.d.ts +2 -0
  235. package/dist/types/wallet/src/voiceid-host.d.ts +1 -1
  236. package/package.json +1 -1
  237. package/dist/esm/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  238. package/dist/esm/sdk/confirm-ui-BpqwuMSl.js +0 -2
  239. package/dist/esm/sdk/errors-DLUmUo9m.js +0 -1
  240. package/dist/esm/sdk/host-aTcpYE27.js +0 -1
  241. package/dist/esm/sdk/registrationIntent-BVPp0k0k.js +0 -1
  242. package/dist/esm/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  243. package/dist/esm/sdk/runtime-near-fas7U0MC.js +0 -1
  244. package/dist/esm/sdk/runtime-preferences-7-f34-by.js +0 -1
  245. package/dist/esm/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  246. package/dist/esm/sdk/runtimeContext-DF8MdfXl.js +0 -6
  247. package/dist/esm/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  248. package/dist/esm/sdk/signNear-DMzOU4dX.js +0 -1
  249. package/dist/esm/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  250. package/dist/esm/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  251. package/dist/public/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  252. package/dist/public/sdk/confirm-ui-BpqwuMSl.js +0 -2
  253. package/dist/public/sdk/errors-DLUmUo9m.js +0 -1
  254. package/dist/public/sdk/host-aTcpYE27.js +0 -1
  255. package/dist/public/sdk/registrationIntent-BVPp0k0k.js +0 -1
  256. package/dist/public/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  257. package/dist/public/sdk/runtime-near-fas7U0MC.js +0 -1
  258. package/dist/public/sdk/runtime-preferences-7-f34-by.js +0 -1
  259. package/dist/public/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  260. package/dist/public/sdk/runtimeContext-DF8MdfXl.js +0 -6
  261. package/dist/public/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  262. package/dist/public/sdk/signNear-DMzOU4dX.js +0 -1
  263. package/dist/public/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  264. package/dist/public/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  265. /package/dist/esm/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  266. /package/dist/esm/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  267. /package/dist/esm/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  268. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  269. /package/dist/esm/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  270. /package/dist/esm/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  271. /package/dist/esm/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  272. /package/dist/esm/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  273. /package/dist/esm/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  274. /package/dist/esm/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  275. /package/dist/esm/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  276. /package/dist/esm/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  277. /package/dist/esm/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  278. /package/dist/esm/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  279. /package/dist/esm/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  280. /package/dist/esm/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  281. /package/dist/esm/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  282. /package/dist/esm/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  283. /package/dist/esm/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  284. /package/dist/esm/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  285. /package/dist/esm/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  286. /package/dist/esm/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  287. /package/dist/esm/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  288. /package/dist/esm/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  289. /package/dist/esm/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  290. /package/dist/esm/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  291. /package/dist/esm/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  292. /package/dist/esm/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  293. /package/dist/esm/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  294. /package/dist/esm/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  295. /package/dist/esm/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  296. /package/dist/esm/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  297. /package/dist/esm/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  298. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  299. /package/dist/esm/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  300. /package/dist/esm/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  301. /package/dist/esm/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
  302. /package/dist/public/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  303. /package/dist/public/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  304. /package/dist/public/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  305. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  306. /package/dist/public/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  307. /package/dist/public/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  308. /package/dist/public/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  309. /package/dist/public/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  310. /package/dist/public/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  311. /package/dist/public/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  312. /package/dist/public/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  313. /package/dist/public/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  314. /package/dist/public/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  315. /package/dist/public/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  316. /package/dist/public/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  317. /package/dist/public/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  318. /package/dist/public/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  319. /package/dist/public/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  320. /package/dist/public/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  321. /package/dist/public/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  322. /package/dist/public/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  323. /package/dist/public/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  324. /package/dist/public/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  325. /package/dist/public/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  326. /package/dist/public/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  327. /package/dist/public/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  328. /package/dist/public/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  329. /package/dist/public/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  330. /package/dist/public/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  331. /package/dist/public/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  332. /package/dist/public/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  333. /package/dist/public/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  334. /package/dist/public/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  335. /package/dist/public/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  336. /package/dist/public/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  337. /package/dist/public/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  338. /package/dist/public/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
@@ -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", "その他の方法"],
@@ -9,6 +9,12 @@
9
9
  color: var(--seams-colors-textSecondary);
10
10
  transition: color 140ms ease;
11
11
  }
12
+ [data-seams-root].seams-theme-provider .seams-hover-arrow--left {
13
+ transform: rotate(180deg);
14
+ }
15
+ [data-seams-root].seams-theme-provider .seams-hover-arrow--up-right {
16
+ transform: rotate(-45deg);
17
+ }
12
18
  [data-seams-root].seams-theme-provider .seams-hover-arrow-line {
13
19
  opacity: 0;
14
20
  filter: blur(2px);
@@ -22,20 +28,38 @@
22
28
  [data-seams-root].seams-theme-provider .seams-hover-arrow-tip {
23
29
  transition: transform 140ms cubic-bezier(0.215, 0.61, 0.355, 1);
24
30
  }
25
- [data-seams-root].seams-theme-provider :hover > .seams-hover-arrow,
26
31
  [data-seams-root].seams-theme-provider :focus-visible > .seams-hover-arrow {
27
32
  color: var(--seams-colors-textPrimary);
28
33
  }
29
- [data-seams-root].seams-theme-provider :hover > .seams-hover-arrow .seams-hover-arrow-line,
30
34
  [data-seams-root].seams-theme-provider :focus-visible > .seams-hover-arrow .seams-hover-arrow-line {
31
35
  opacity: 1;
32
36
  filter: blur(0);
33
37
  transform: scaleX(1);
34
38
  }
35
- [data-seams-root].seams-theme-provider :hover > .seams-hover-arrow .seams-hover-arrow-tip,
36
39
  [data-seams-root].seams-theme-provider :focus-visible > .seams-hover-arrow .seams-hover-arrow-tip {
37
40
  transform: translateX(3px);
38
41
  }
42
+ @media (hover: hover) and (pointer: fine) {
43
+ [data-seams-root].seams-theme-provider
44
+ :hover:not(:disabled):not([aria-disabled='true'])
45
+ > .seams-hover-arrow {
46
+ color: var(--seams-colors-textPrimary);
47
+ }
48
+ [data-seams-root].seams-theme-provider
49
+ :hover:not(:disabled):not([aria-disabled='true'])
50
+ > .seams-hover-arrow
51
+ .seams-hover-arrow-line {
52
+ opacity: 1;
53
+ filter: blur(0);
54
+ transform: scaleX(1);
55
+ }
56
+ [data-seams-root].seams-theme-provider
57
+ :hover:not(:disabled):not([aria-disabled='true'])
58
+ > .seams-hover-arrow
59
+ .seams-hover-arrow-tip {
60
+ transform: translateX(3px);
61
+ }
62
+ }
39
63
  @media (prefers-reduced-motion: reduce) {
40
64
  [data-seams-root].seams-theme-provider .seams-hover-arrow,
41
65
  [data-seams-root].seams-theme-provider .seams-hover-arrow-line,
@@ -5,7 +5,7 @@ import "./HoverArrowIcon.css";
5
5
  //#region src/react/components/AccountMenuButton/icons/HoverArrowIcon.tsx
6
6
  /** A chevron that grows a shaft on its parent's hover (">" to "->"). Place it
7
7
  * as a direct child of the row that triggers it (HoverArrowIcon.css). */
8
- function HoverArrowIcon({ size = 12 }) {
8
+ function HoverArrowIcon({ size = 12, direction = "right" }) {
9
9
  const style = {
10
10
  "--seams-icon-width": `${size}px`,
11
11
  "--seams-icon-height": `${size}px`,
@@ -13,7 +13,7 @@ function HoverArrowIcon({ size = 12 }) {
13
13
  };
14
14
  return /* @__PURE__ */ jsxs("svg", {
15
15
  "data-seams-root": "",
16
- className: "seams-icon seams-hover-arrow",
16
+ className: `seams-icon seams-hover-arrow seams-hover-arrow--${direction}`,
17
17
  width: size,
18
18
  height: size,
19
19
  style,
@@ -0,0 +1,32 @@
1
+ import { WalletIcon } from "./AccountMenuButton/icons/WalletIcon.js";
2
+ import { hotWalletIcon, meteorWalletIcon } from "./externalWalletBrandImages.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/react/components/ExternalNearWalletIcon.tsx
5
+ function ExternalNearWalletIcon({ wallet }) {
6
+ switch (wallet) {
7
+ case "meteor": return /* @__PURE__ */ jsx("img", {
8
+ src: meteorWalletIcon,
9
+ width: 32,
10
+ height: 32,
11
+ alt: ""
12
+ });
13
+ case "hot": return /* @__PURE__ */ jsx("img", {
14
+ src: hotWalletIcon,
15
+ width: 32,
16
+ height: 32,
17
+ alt: ""
18
+ });
19
+ case "intear": return /* @__PURE__ */ jsx(WalletIcon, {
20
+ width: 28,
21
+ height: 28
22
+ });
23
+ default: {
24
+ const exhaustive = wallet;
25
+ throw new Error(`Unknown external wallet icon: ${String(exhaustive)}`);
26
+ }
27
+ }
28
+ }
29
+ //#endregion
30
+ export { ExternalNearWalletIcon };
31
+
32
+ //# sourceMappingURL=ExternalNearWalletIcon.js.map
@@ -0,0 +1,182 @@
1
+ :where([data-seams-root]) .seams-wallet-connector {
2
+ box-sizing: border-box;
3
+ position: relative;
4
+ width: min(100%, 420px);
5
+ border-radius: var(--seams-shape-card, 16px);
6
+ background: var(--seams-colors-colorBackground);
7
+ box-shadow: var(--seams-shadows-md);
8
+ color: var(--seams-colors-textPrimary);
9
+ font-family: var(--seams-font-family, system-ui, sans-serif);
10
+ font-size: var(--seams-font-size-base, 1rem);
11
+ line-height: 1.5;
12
+ transition: height 200ms cubic-bezier(0.32, 0.72, 0, 1);
13
+ }
14
+
15
+ :where([data-seams-root]) .seams-wallet-connector[data-connector-view='auth'] {
16
+ background: transparent;
17
+ box-shadow: none;
18
+ }
19
+
20
+ :where([data-seams-root]) .seams-wallet-connector-content {
21
+ width: 100%;
22
+ min-width: 0;
23
+ border-radius: inherit;
24
+ }
25
+
26
+ :where([data-seams-root])
27
+ .seams-wallet-connector[data-connector-view='auth']
28
+ .seams-wallet-connector-content {
29
+ animation: seams-connector-enter 180ms cubic-bezier(0.22, 1, 0.36, 1);
30
+ }
31
+
32
+ :where([data-seams-root]) .seams-wallet-connector-choices {
33
+ box-sizing: border-box;
34
+ padding: calc(var(--seams-spacing-lg) + var(--seams-spacing-xs)) var(--seams-spacing-lg)
35
+ var(--seams-spacing-lg);
36
+ border: 1px solid var(--seams-colors-borderPrimary);
37
+ border-radius: inherit;
38
+ }
39
+
40
+ :where([data-seams-root]) .seams-wallet-connector h2 {
41
+ margin: 0 calc(var(--seams-spacing-lg) + var(--seams-spacing-xs))
42
+ calc(var(--seams-spacing-sm) + var(--seams-spacing-xs)) 0;
43
+ font-size: 1.375em;
44
+ line-height: 1.25;
45
+ font-weight: 500;
46
+ letter-spacing: -0.04em;
47
+ outline: none;
48
+ }
49
+
50
+ :where([data-seams-root]) .seams-wallet-connector p {
51
+ margin: 0 0 var(--seams-spacing-lg);
52
+ color: var(--seams-colors-textSecondary);
53
+ font-size: 0.8125em;
54
+ }
55
+
56
+ :where([data-seams-root]) .seams-wallet-connector-options {
57
+ display: grid;
58
+ gap: var(--seams-spacing-sm);
59
+ }
60
+
61
+ :where([data-seams-root]) .seams-wallet-connector-option {
62
+ display: flex;
63
+ align-items: center;
64
+ gap: var(--seams-spacing-md);
65
+ width: 100%;
66
+ min-width: 0;
67
+ min-height: calc(var(--seams-shape-controlHeight, 44px) + 2 * var(--seams-spacing-md));
68
+ padding: var(--seams-spacing-md);
69
+ box-sizing: border-box;
70
+ border: 1px solid var(--seams-colors-secondaryButtonBorder, var(--seams-colors-borderPrimary));
71
+ border-radius: var(--seams-shape-control, 10px);
72
+ background: var(--seams-colors-secondaryButtonBackground, var(--seams-colors-surface));
73
+ color: var(--seams-colors-secondaryButtonText, var(--seams-colors-textPrimary));
74
+ font: inherit;
75
+ text-align: start;
76
+ cursor: pointer;
77
+ transition:
78
+ background-color 160ms ease,
79
+ border-color 160ms ease;
80
+ }
81
+
82
+ :where([data-seams-root]) .seams-wallet-connector-option:disabled {
83
+ opacity: 0.55;
84
+ cursor: default;
85
+ }
86
+
87
+ :where([data-seams-root]) .seams-wallet-connector-icon {
88
+ display: grid;
89
+ place-items: center;
90
+ width: 34px;
91
+ flex: none;
92
+ }
93
+ :where([data-seams-root]) .seams-wallet-connector-icon img {
94
+ display: block;
95
+ object-fit: contain;
96
+ }
97
+
98
+ :where([data-seams-root]) .seams-wallet-connector-label {
99
+ display: grid;
100
+ gap: var(--seams-spacing-xs);
101
+ flex: 1;
102
+ min-width: 0;
103
+ overflow-wrap: anywhere;
104
+ }
105
+
106
+ :where([data-seams-root]) .seams-wallet-connector-label strong {
107
+ font-size: 0.8125em;
108
+ font-weight: 500;
109
+ }
110
+
111
+ :where([data-seams-root]) .seams-wallet-connector-label small {
112
+ font-size: 0.75em;
113
+ color: var(--seams-colors-textSecondary);
114
+ }
115
+
116
+ :where([data-seams-root]) .seams-wallet-connector-option > svg {
117
+ flex: none;
118
+ color: var(--seams-colors-textSecondary);
119
+ }
120
+
121
+ :where([data-seams-root]) .seams-wallet-connector-close,
122
+ :where([data-seams-root]) .seams-wallet-connector-back {
123
+ position: absolute;
124
+ z-index: calc(var(--seams-wallet-inline-dialog-z, 0) + 1);
125
+ inset: 12px 12px auto auto;
126
+ display: grid;
127
+ place-items: center;
128
+ width: 32px;
129
+ height: 32px;
130
+ padding: 0;
131
+ border: 0;
132
+ border-radius: 50%;
133
+ color: var(--seams-colors-textSecondary);
134
+ background: transparent;
135
+ cursor: pointer;
136
+ }
137
+
138
+ :where([data-seams-root]) .seams-wallet-connector-back:has(+ .seams-wallet-connector-close) {
139
+ right: 52px;
140
+ }
141
+
142
+ :where([data-seams-root]) .seams-wallet-connector button:focus-visible {
143
+ outline: 2px solid var(--seams-colors-focus, currentColor);
144
+ outline-offset: 3px;
145
+ }
146
+
147
+ :where([data-seams-root]) .seams-wallet-connector p[role] {
148
+ margin: var(--seams-spacing-md) 0 0;
149
+ }
150
+
151
+ :where([data-seams-root]) .seams-wallet-connector .seams-wallet-connector-error {
152
+ color: var(--seams-colors-error);
153
+ }
154
+
155
+ @media (hover: hover) and (pointer: fine) {
156
+ :where([data-seams-root]) .seams-wallet-connector-option:not(:disabled):hover {
157
+ background: var(--seams-colors-secondaryButtonHoverBackground, var(--seams-colors-hover));
158
+ border-color: var(--seams-colors-borderHover);
159
+ }
160
+ :where([data-seams-root]) .seams-wallet-connector-close:hover,
161
+ :where([data-seams-root]) .seams-wallet-connector-back:hover {
162
+ background: var(--seams-colors-hover);
163
+ }
164
+ }
165
+
166
+ @keyframes seams-connector-enter {
167
+ from {
168
+ opacity: 0;
169
+ }
170
+ to {
171
+ opacity: 1;
172
+ }
173
+ }
174
+
175
+ @media (prefers-reduced-motion: reduce) {
176
+ :where([data-seams-root]) .seams-wallet-connector {
177
+ transition: none;
178
+ }
179
+ :where([data-seams-root]) .seams-wallet-connector-content {
180
+ animation: none;
181
+ }
182
+ }