@seams/wallet 0.10.2 → 0.11.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 (173) hide show
  1. package/README.md +3 -3
  2. package/THIRD_PARTY_NOTICES.md +33 -1812
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +100 -0
  5. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +127 -71
  6. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +558 -0
  7. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +82 -0
  8. package/dist/esm/core/types/sdkSentEvents.js +9 -0
  9. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +189 -0
  10. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +137 -0
  11. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +39 -0
  12. package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +39 -13
  13. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +247 -0
  14. package/dist/esm/react/components/AccountMenuButton/AccountMenuScreen.js +41 -0
  15. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +79 -0
  16. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +168 -174
  17. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +19 -0
  18. package/dist/esm/react/components/AccountMenuButton/ExportKeysScreen.js +30 -0
  19. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +148 -87
  20. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +26 -5
  21. package/dist/esm/react/components/AccountMenuButton/MenuItem.js +28 -13
  22. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.css +73 -69
  23. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +56 -68
  24. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeAcknowledgement.js +27 -0
  25. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeActions.js +53 -0
  26. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +3 -1
  27. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +2 -8
  28. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +1 -1
  29. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +6 -3
  30. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +4 -4
  31. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +443 -12
  32. package/dist/esm/react/components/AccountMenuButton/hooks/useProfileState.js +1 -1
  33. package/dist/esm/react/components/AccountMenuButton/icons/LayersIcon.js +8 -0
  34. package/dist/esm/react/components/AccountMenuButton/icons/LockKeyholeIcon.js +22 -0
  35. package/dist/esm/react/components/AccountMenuButton/icons/PlusIcon.js +8 -0
  36. package/dist/esm/react/components/AccountMenuButton/icons/SunIcon.js +2 -2
  37. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.css +0 -8
  38. package/dist/esm/react/components/AccountMenuButton/index.js +135 -115
  39. package/dist/esm/react/components/QRCodeScanner.js +64 -40
  40. package/dist/esm/react/components/QRCodeScannerCamera.js +16 -0
  41. package/dist/esm/react/components/ShowQRCode.js +2 -2
  42. package/dist/esm/react/externalEvm.js +2 -2
  43. package/dist/esm/react/index.js +2 -1
  44. package/dist/esm/react/styles/styles.css +520 -91
  45. package/dist/esm/react/transactionReview/TransactionReviewHost.js +3 -3
  46. package/dist/esm/sdk/{adapters-DYPu0nK9.js → adapters-CGvNLOfZ.js} +1 -1
  47. package/dist/{public/sdk/display-DjoWrSgE.js → esm/sdk/display-DTbGoX4e.js} +1 -1
  48. package/dist/{public/sdk/exportKeypairOperation-DYCzCbqL.js → esm/sdk/exportKeypairOperation-BHXMSA3v.js} +1 -1
  49. package/dist/{public/sdk/host-D5b19B_h.js → esm/sdk/host-Bqmmy8Ts.js} +1 -1
  50. package/dist/esm/sdk/{localOnly-KvZeKkH5.js → localOnly-CUVRoMy2.js} +1 -1
  51. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-BA2ttbTM.js → mountRecoveryCodeBackupSurface-D1G-iCPI.js} +2 -2
  52. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-BkIrbd6Q.js → pendingWalletRecoveryCodeBackup-CMCOUuA-.js} +1 -1
  53. package/dist/esm/sdk/{recovery-entrypoint-DoXswV9I.js → recovery-entrypoint-QxTiyx-o.js} +1 -1
  54. package/dist/esm/sdk/{registration-BFHEYmgh.js → registration-Drtkzrlc.js} +1 -1
  55. package/dist/esm/sdk/registration-eyzHqLHi.js +1 -0
  56. package/dist/esm/sdk/{requireStepUpAuth-C67sluoC.js → requireStepUpAuth-FqZSU021.js} +1 -1
  57. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  58. package/dist/esm/sdk/runtime-auth-CbveTM2_.js +1 -0
  59. package/dist/esm/sdk/{runtime-device-link-pf-a_-3u.js → runtime-device-link-CHsqrEQ9.js} +1 -1
  60. package/dist/esm/sdk/{runtime-ecdsa-tempo-Ddnuti6f.js → runtime-ecdsa-tempo-MgmnU9g-.js} +1 -1
  61. package/dist/esm/sdk/{runtime-email-otp-BAG8ZC1J.js → runtime-email-otp-Cj96n102.js} +1 -1
  62. package/dist/esm/sdk/{runtime-export-DxL99xfn.js → runtime-export-mcwZRxKk.js} +1 -1
  63. package/dist/esm/sdk/{runtime-near-BrWP4IxC.js → runtime-near-BMdTtu7D.js} +1 -1
  64. package/dist/esm/sdk/{runtime-preferences-BjVdHYL0.js → runtime-preferences-CBlhE8bX.js} +1 -1
  65. package/dist/esm/sdk/{runtime-recovery-codes-Dn-NccpU.js → runtime-recovery-codes-B1gixZsp.js} +1 -1
  66. package/dist/esm/sdk/{runtime-recovery-BNd_GX5q.js → runtime-recovery-mJp3MLeG.js} +1 -1
  67. package/dist/esm/sdk/sdkSentEvents-Dl8fOL50.js +1 -0
  68. package/dist/esm/sdk/shared-8Qe7Nxgg.js +6 -0
  69. package/dist/{public/sdk/signEvmFamily-DjD3tn8e.js → esm/sdk/signEvmFamily-M0trbeZe.js} +1 -1
  70. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CwRFbaLM.js → signEvmFamilyWithUiConfirmForTempo-Bo25SwuV.js} +1 -1
  71. package/dist/esm/sdk/{signEvmWithUiConfirm-BHG0dwVG.js → signEvmWithUiConfirm-CFcqJRj3.js} +1 -1
  72. package/dist/{public/sdk/signNear-D0tlQXb9.js → esm/sdk/signNear-DGUQZ44s.js} +1 -1
  73. package/dist/esm/sdk/{signingFlow-Mym5j6aw.js → signingFlow-DZvV4AgG.js} +1 -1
  74. package/dist/esm/sdk/{transaction-activity-Cb2JyYKv.js → transaction-activity-xfeHKJoq.js} +1 -1
  75. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  76. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  77. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  78. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  79. package/dist/esm/sdk/wallet-ui.css +1 -1
  80. package/dist/{public/sdk/walletCustodyEcdsaContinuity-B8aO2NFb.js → esm/sdk/walletCustodyEcdsaContinuity-_IKoCUBO.js} +1 -1
  81. package/dist/{public/sdk/walletRecoveryCommit-C3EgMjo-.js → esm/sdk/walletRecoveryCommit-DDPa1rAJ.js} +1 -1
  82. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  83. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  84. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  85. package/dist/public/headers.manifest.json +1 -1
  86. package/dist/public/sdk/{adapters-DYPu0nK9.js → adapters-CGvNLOfZ.js} +1 -1
  87. package/dist/{esm/sdk/display-DjoWrSgE.js → public/sdk/display-DTbGoX4e.js} +1 -1
  88. package/dist/{esm/sdk/exportKeypairOperation-DYCzCbqL.js → public/sdk/exportKeypairOperation-BHXMSA3v.js} +1 -1
  89. package/dist/{esm/sdk/host-D5b19B_h.js → public/sdk/host-Bqmmy8Ts.js} +1 -1
  90. package/dist/public/sdk/{localOnly-KvZeKkH5.js → localOnly-CUVRoMy2.js} +1 -1
  91. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-BA2ttbTM.js → mountRecoveryCodeBackupSurface-D1G-iCPI.js} +2 -2
  92. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-BkIrbd6Q.js → pendingWalletRecoveryCodeBackup-CMCOUuA-.js} +1 -1
  93. package/dist/public/sdk/{recovery-entrypoint-DoXswV9I.js → recovery-entrypoint-QxTiyx-o.js} +1 -1
  94. package/dist/public/sdk/{registration-BFHEYmgh.js → registration-Drtkzrlc.js} +1 -1
  95. package/dist/public/sdk/registration-eyzHqLHi.js +1 -0
  96. package/dist/public/sdk/{requireStepUpAuth-C67sluoC.js → requireStepUpAuth-FqZSU021.js} +1 -1
  97. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  98. package/dist/public/sdk/runtime-auth-CbveTM2_.js +1 -0
  99. package/dist/public/sdk/{runtime-device-link-pf-a_-3u.js → runtime-device-link-CHsqrEQ9.js} +1 -1
  100. package/dist/public/sdk/{runtime-ecdsa-tempo-Ddnuti6f.js → runtime-ecdsa-tempo-MgmnU9g-.js} +1 -1
  101. package/dist/public/sdk/{runtime-email-otp-BAG8ZC1J.js → runtime-email-otp-Cj96n102.js} +1 -1
  102. package/dist/public/sdk/{runtime-export-DxL99xfn.js → runtime-export-mcwZRxKk.js} +1 -1
  103. package/dist/public/sdk/{runtime-near-BrWP4IxC.js → runtime-near-BMdTtu7D.js} +1 -1
  104. package/dist/public/sdk/{runtime-preferences-BjVdHYL0.js → runtime-preferences-CBlhE8bX.js} +1 -1
  105. package/dist/public/sdk/{runtime-recovery-codes-Dn-NccpU.js → runtime-recovery-codes-B1gixZsp.js} +1 -1
  106. package/dist/public/sdk/{runtime-recovery-BNd_GX5q.js → runtime-recovery-mJp3MLeG.js} +1 -1
  107. package/dist/public/sdk/sdkSentEvents-Dl8fOL50.js +1 -0
  108. package/dist/public/sdk/shared-8Qe7Nxgg.js +6 -0
  109. package/dist/{esm/sdk/signEvmFamily-DjD3tn8e.js → public/sdk/signEvmFamily-M0trbeZe.js} +1 -1
  110. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CwRFbaLM.js → signEvmFamilyWithUiConfirmForTempo-Bo25SwuV.js} +1 -1
  111. package/dist/public/sdk/{signEvmWithUiConfirm-BHG0dwVG.js → signEvmWithUiConfirm-CFcqJRj3.js} +1 -1
  112. package/dist/{esm/sdk/signNear-D0tlQXb9.js → public/sdk/signNear-DGUQZ44s.js} +1 -1
  113. package/dist/public/sdk/{signingFlow-Mym5j6aw.js → signingFlow-DZvV4AgG.js} +1 -1
  114. package/dist/public/sdk/{transaction-activity-Cb2JyYKv.js → transaction-activity-xfeHKJoq.js} +1 -1
  115. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  116. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  117. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  118. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  119. package/dist/public/sdk/wallet-ui.css +1 -1
  120. package/dist/{esm/sdk/walletCustodyEcdsaContinuity-B8aO2NFb.js → public/sdk/walletCustodyEcdsaContinuity-_IKoCUBO.js} +1 -1
  121. package/dist/{esm/sdk/walletRecoveryCommit-C3EgMjo-.js → public/sdk/walletRecoveryCommit-DDPa1rAJ.js} +1 -1
  122. package/dist/public/sdk/workers/email_otp_runtime_bg.wasm +0 -0
  123. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  124. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  125. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  126. package/dist/public/sdk/workers/shamir3pass_runtime_bg.wasm +0 -0
  127. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  128. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  129. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  130. package/dist/public/wallet-assets.manifest.json +62 -62
  131. package/dist/public/wallet-service/index.html +4 -4
  132. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +4 -0
  133. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +4 -2
  134. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +4 -0
  135. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +17 -0
  136. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +17 -0
  137. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuDeviceDetails.d.ts +13 -0
  138. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuDialog.d.ts +1 -1
  139. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuMockScreens.d.ts +43 -0
  140. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuScreen.d.ts +9 -0
  141. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodRow.d.ts +14 -0
  142. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +1 -1
  143. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsView.d.ts +8 -0
  144. package/dist/types/wallet/src/react/components/AccountMenuButton/ExportKeysScreen.d.ts +7 -0
  145. package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +1 -1
  146. package/dist/types/wallet/src/react/components/AccountMenuButton/ProfileDropdown.d.ts +2 -14
  147. package/dist/types/wallet/src/react/components/AccountMenuButton/RecoveryCodeAcknowledgement.d.ts +5 -0
  148. package/dist/types/wallet/src/react/components/AccountMenuButton/RecoveryCodeActions.d.ts +5 -0
  149. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LayersIcon.d.ts +2 -0
  150. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockKeyholeIcon.d.ts +2 -0
  151. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/PlusIcon.d.ts +2 -0
  152. package/dist/types/wallet/src/react/components/AccountMenuButton/index.d.ts +2 -0
  153. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +1 -14
  154. package/dist/types/wallet/src/react/components/QRCodeScanner.d.ts +1 -0
  155. package/dist/types/wallet/src/react/components/QRCodeScannerCamera.d.ts +5 -0
  156. package/dist/types/wallet/src/react/index.d.ts +2 -1
  157. package/dist/workers/email_otp_runtime_bg.wasm +0 -0
  158. package/dist/workers/evm_crypto_bg.wasm +0 -0
  159. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  160. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  161. package/dist/workers/shamir3pass_runtime_bg.wasm +0 -0
  162. package/dist/workers/tempo_signer_bg.wasm +0 -0
  163. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  164. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  165. package/package.json +1 -1
  166. package/dist/esm/sdk/registration-Cx_f58rb.js +0 -1
  167. package/dist/esm/sdk/runtime-auth-CKUleRYA.js +0 -1
  168. package/dist/esm/sdk/sdkSentEvents-DiQ3YVlj.js +0 -1
  169. package/dist/esm/sdk/shared-CSfgTVcf.js +0 -6
  170. package/dist/public/sdk/registration-Cx_f58rb.js +0 -1
  171. package/dist/public/sdk/runtime-auth-CKUleRYA.js +0 -1
  172. package/dist/public/sdk/sdkSentEvents-DiQ3YVlj.js +0 -1
  173. package/dist/public/sdk/shared-CSfgTVcf.js +0 -6
@@ -297,93 +297,93 @@
297
297
  }
298
298
  }
299
299
 
300
- /* ProfileDropdown component-specific styles */
301
-
302
- /* Dropdown (grid height animation with data-state) */
303
- .seams-profile-dropdown-morphed {
304
- position: static;
305
- box-sizing: border-box;
306
- margin-top: 0;
307
- opacity: 0;
308
- visibility: hidden;
309
- display: grid;
310
- grid-template-rows: 0fr;
311
- grid-template-columns: 1fr;
312
- transition:
313
- opacity 120ms linear,
314
- grid-template-rows 140ms cubic-bezier(0.16, 1, 0.3, 1);
300
+ .seams-account-menu-group {
301
+ margin-top: 16px;
302
+ }
303
+ .seams-account-menu-group + .seams-account-menu-group {
315
304
  border-top: 1px solid var(--seams-colors-borderPrimary);
305
+ padding-top: 12px;
306
+ margin-top: 10px;
316
307
  }
317
-
318
- .seams-profile-dropdown-morphed[data-state='open'] {
319
- opacity: 1;
320
- visibility: visible;
321
- grid-template-rows: 1fr;
322
- grid-template-columns: 1fr;
323
- pointer-events: auto;
324
- --stagger-base: 40ms;
308
+ .seams-account-menu-group h3 {
309
+ font-size: 10px;
310
+ font-weight: 600;
311
+ letter-spacing: 1px;
312
+ text-transform: uppercase;
313
+ color: var(--seams-colors-textSecondary);
314
+ margin: 0 0 4px;
325
315
  }
326
-
327
- .seams-profile-dropdown-morphed[data-state='closed'] {
328
- pointer-events: none;
329
- border-top-width: 0;
330
- grid-template-rows: 0fr;
331
- height: 0;
332
- min-height: 0;
333
- width: 0;
334
- min-width: 0;
335
- max-width: 0;
336
- overflow: hidden;
337
- margin: 0;
338
- padding: 0;
316
+ .seams-profile-dropdown-menu {
317
+ --seams-expander-surface: var(--seams-colors-surface2);
339
318
  }
340
-
341
- .seams-profile-dropdown-morphed.hidden {
319
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item {
320
+ min-height: 40px;
321
+ padding: 6px 0;
322
+ gap: 10px;
323
+ border: 0;
324
+ border-radius: 0;
325
+ background: transparent;
326
+ font: inherit;
327
+ color: inherit;
328
+ width: 100%;
329
+ text-align: left;
330
+ display: flex;
331
+ align-items: center;
332
+ cursor: pointer;
333
+ }
334
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item:disabled {
335
+ color: var(--seams-colors-textSecondary);
336
+ opacity: 0.6;
337
+ cursor: default;
338
+ }
339
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item-icon {
340
+ width: 22px;
341
+ height: 22px;
342
+ color: var(--seams-colors-textSecondary);
343
+ flex-shrink: 0;
344
+ }
345
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item-icon svg {
346
+ width: 20px;
347
+ height: 20px;
348
+ }
349
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item-label {
350
+ font-size: 14px;
351
+ font-weight: 400;
352
+ }
353
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item-description {
342
354
  display: none;
343
355
  }
344
-
345
- /* Inner clip and container */
346
- .seams-profile-dropdown-menu {
347
- overflow: hidden;
348
- min-height: 0;
349
- min-width: 0;
350
- /* Expanded sections sit on a slightly deeper surface than the menu itself.
351
- Derived from the theme's own surface tones so it tracks light/dark. */
352
- --seams-expander-surface: color-mix(
353
- in srgb,
354
- var(--seams-colors-surface2) 45%,
355
- var(--seams-colors-surface)
356
- );
356
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item-content {
357
+ flex: 1;
357
358
  }
358
-
359
- /* Global theme pulse when toggling theme */
360
- @keyframes seams-theme-pulse {
361
- 0% {
362
- filter: none;
363
- }
364
- 50% {
365
- filter: brightness(1.05) saturate(1.06);
366
- }
367
- 100% {
368
- filter: none;
369
- }
359
+ .seams-account-menu-chevron {
360
+ color: var(--seams-colors-textSecondary);
361
+ flex-shrink: 0;
370
362
  }
371
- body[data-seams-theme-pulse='1'] .seams-profile-dropdown-menu {
372
- animation: seams-theme-pulse 220ms ease;
363
+ .seams-profile-dropdown-menu .seams-lock-menu-item {
364
+ border: 1px solid var(--seams-colors-borderPrimary);
365
+ border-radius: 11px;
366
+ justify-content: center;
367
+ margin-top: 12px;
368
+ }
369
+ .seams-lock-menu-item .seams-dropdown-menu-item-content {
370
+ flex: 0 1 auto;
371
+ }
372
+ @media (hover: hover) {
373
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item:not(:disabled):hover {
374
+ color: var(--seams-colors-textSecondary);
375
+ background: transparent;
376
+ }
373
377
  }
374
378
 
375
- /* Lock menu item specific styling */
376
- .seams-lock-menu-item {
377
- border-top: 1px solid var(--seams-colors-borderPrimary);
378
- border-radius: 0px 0px 2rem 2rem;
379
+ @media (pointer: coarse) {
380
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item {
381
+ min-height: 44px;
382
+ }
379
383
  }
380
384
 
381
385
  /* TouchIcon specific styles and animations */
382
386
 
383
- .seams-fingerprint-icon {
384
- transition: transform 400ms ease;
385
- }
386
-
387
387
  .seams-fingerprint-icon path {
388
388
  /* Normalize path length so dash animations are simple */
389
389
  stroke: currentColor;
@@ -421,10 +421,6 @@ body[data-seams-theme-pulse='1'] .seams-profile-dropdown-menu {
421
421
  }
422
422
  }
423
423
 
424
- .seams-fingerprint-icon:hover {
425
- transform: rotate(180deg) scale(1.2);
426
- }
427
-
428
424
  /* Expander (TransactionSettingsSection) */
429
425
  .seams-dropdown-tx-settings-root {
430
426
  background-color: var(--seams-expander-surface, var(--seams-colors-surface));
@@ -471,12 +467,14 @@ body[data-seams-theme-pulse='1'] .seams-profile-dropdown-menu {
471
467
  }
472
468
 
473
469
  .seams-account-seg {
470
+ box-sizing: border-box;
471
+ min-width: 0;
474
472
  position: relative;
475
473
  min-height: 54px;
476
474
  overflow: hidden;
477
475
  padding: 5px;
478
476
  border: none;
479
- background: var(--seams-colors-surface2);
477
+ background: color-mix(in srgb, var(--seams-colors-textPrimary) 6%, var(--seams-colors-surface2));
480
478
  border-radius: var(--seams-border-radius-xl);
481
479
  }
482
480
 
@@ -671,7 +669,7 @@ body[data-seams-theme-pulse='1'] .seams-profile-dropdown-menu {
671
669
  width: 40px;
672
670
  height: 40px;
673
671
  margin-right: 4px;
674
- background: var(--seams-colors-surface);
672
+ background: var(--seams-colors-surface2);
675
673
  border-radius: 50%;
676
674
  display: flex;
677
675
  align-items: center;
@@ -711,28 +709,459 @@ body[data-seams-theme-pulse='1'] .seams-profile-dropdown-menu {
711
709
  color: var(--seams-colors-textMuted);
712
710
  }
713
711
 
714
- * {
715
- box-sizing: border-box;
716
- }
717
-
718
712
  .seams-profile-button-morphable {
713
+ box-sizing: border-box;
719
714
  position: relative;
720
- background-color: var(--seams-colors-colorBackground);
715
+ background: var(--seams-colors-colorBackground);
721
716
  border: 1px solid var(--seams-colors-borderPrimary);
722
- border-radius: 2rem;
723
- box-shadow: var(--seams-shadows-sm);
717
+ border-radius: 27px;
718
+ box-shadow:
719
+ 0 2px 3px rgb(0 0 0 / 0.02),
720
+ 0 16px 36px rgb(0 0 0 / 0.06);
724
721
  font-size: 14px;
725
- font-weight: 500;
722
+ font-weight: 400;
726
723
  color: var(--seams-colors-textPrimary);
724
+ width: fit-content;
725
+ max-width: 100%;
726
+ }
727
+ .seams-profile-button-morphable.open {
728
+ width: 420px;
729
+ overflow: hidden;
730
+ }
731
+ .seams-account-resize {
732
+ overflow: hidden;
733
+ }
734
+ .seams-account-panel-content {
735
+ width: 100%;
736
+ display: flow-root;
737
+ }
738
+ .seams-account-origin {
739
+ display: flex;
740
+ align-items: center;
741
+ gap: 9px;
742
+ padding: 16px 20px 0;
743
+ font-size: 13px;
744
+ color: var(--seams-colors-textSecondary);
745
+ }
746
+ .seams-account-origin > span {
747
+ overflow: hidden;
748
+ text-overflow: ellipsis;
749
+ white-space: nowrap;
750
+ }
751
+ .seams-account-origin > button {
752
+ margin-left: auto;
753
+ background: none;
754
+ border: 0;
755
+ color: inherit;
756
+ width: 24px;
757
+ height: 24px;
758
+ padding: 0;
759
+ display: grid;
760
+ place-items: center;
727
761
  cursor: pointer;
762
+ }
763
+ .seams-account-main {
764
+ padding: 16px 20px;
765
+ }
766
+ .seams-account-heading h2 {
767
+ font: inherit;
768
+ font-size: 24px;
769
+ font-weight: 600;
770
+ letter-spacing: -0.8px;
771
+ line-height: 1.15;
772
+ margin: 0;
773
+ color: var(--seams-colors-textPrimary);
774
+ }
775
+ .seams-account-heading {
776
+ display: flex;
777
+ align-items: center;
778
+ gap: 10px;
779
+ margin-bottom: 10px;
780
+ }
781
+ .seams-account-heading h2:focus {
728
782
  outline: none;
783
+ }
784
+ .seams-account-back {
785
+ width: 24px;
786
+ height: 30px;
787
+ padding: 0;
788
+ margin-left: -3px;
789
+ display: grid;
790
+ place-items: center;
791
+ border: 0;
792
+ background: none;
793
+ color: inherit;
794
+ cursor: pointer;
795
+ flex-shrink: 0;
796
+ }
797
+ .seams-account-identity {
798
+ display: flex;
799
+ align-items: center;
800
+ gap: 12px;
801
+ padding: 10px;
802
+ margin-top: 0;
803
+ border-radius: 12px;
804
+ background: var(--seams-colors-surface2);
805
+ }
806
+ .seams-account-avatar {
807
+ display: grid;
808
+ place-items: center;
809
+ width: 36px;
810
+ height: 36px;
811
+ border-radius: 10px;
812
+ background: color-mix(
813
+ in srgb,
814
+ var(--seams-colors-textSecondary) 10%,
815
+ var(--seams-colors-surface2)
816
+ );
817
+ color: var(--seams-colors-textSecondary);
818
+ flex-shrink: 0;
819
+ }
820
+ .seams-account-identity > div {
821
+ min-width: 0;
822
+ overflow-wrap: anywhere;
823
+ }
824
+ .seams-account-identity strong {
825
+ font-size: 15px;
826
+ font-weight: 500;
827
+ }
828
+ .seams-account-identity small {
829
+ display: block;
830
+ color: var(--seams-colors-textSecondary);
831
+ margin-top: 4px;
832
+ }
833
+ .seams-account-footer {
834
+ border-top: 1px solid var(--seams-colors-borderPrimary);
835
+ display: flex;
836
+ justify-content: center;
837
+ align-items: center;
838
+ gap: 8px;
839
+ height: 44px;
840
+ color: var(--seams-colors-textSecondary);
841
+ font-size: 12px;
842
+ }
843
+ .seams-account-wordmark {
844
+ width: 70px;
845
+ height: 18px;
846
+ color: var(--seams-colors-textPrimary);
847
+ }
848
+ .seams-account-description {
849
+ font-size: 14px;
850
+ line-height: 1.5;
851
+ color: var(--seams-colors-textSecondary);
852
+ margin: 0 0 16px;
853
+ }
854
+ .seams-account-action {
855
+ display: flex;
856
+ width: 100%;
857
+ align-items: center;
858
+ justify-content: center;
859
+ gap: 9px;
860
+ min-height: 40px;
861
+ padding: 8px 12px;
862
+ border: 1px solid var(--seams-colors-borderPrimary);
863
+ border-radius: 11px;
864
+ font: inherit;
865
+ font-weight: 500;
866
+ background: var(--seams-colors-colorBackground);
867
+ color: inherit;
868
+ cursor: pointer;
869
+ margin-top: 14px;
870
+ }
871
+ .seams-account-action.primary {
872
+ background: var(--seams-colors-textPrimary);
873
+ color: var(--seams-colors-colorBackground);
874
+ border-color: transparent;
875
+ }
876
+ .seams-account-action:disabled {
877
+ opacity: 0.5;
878
+ cursor: default;
879
+ }
880
+ .seams-account-note {
881
+ color: var(--seams-colors-textSecondary);
882
+ font-size: 12px;
883
+ line-height: 1.5;
884
+ margin: 10px 0 0;
885
+ }
886
+ .seams-account-inset {
887
+ padding: 10px 12px;
888
+ background: var(--seams-colors-surface2);
889
+ border-radius: 12px;
890
+ font-size: 13px;
891
+ line-height: 1.5;
892
+ }
893
+ .seams-account-detail-row {
894
+ display: flex;
895
+ justify-content: space-between;
896
+ gap: 12px;
897
+ padding: 6px 0;
898
+ }
899
+ .seams-account-detail-row dt {
900
+ color: var(--seams-colors-textSecondary);
901
+ }
902
+ .seams-account-detail-row dd {
903
+ margin: 0;
904
+ text-align: right;
905
+ overflow-wrap: anywhere;
906
+ }
907
+ .seams-account-device-hero {
908
+ text-align: center;
909
+ padding: 8px 0 12px;
910
+ }
911
+ .seams-account-device-hero .seams-account-avatar {
912
+ width: 44px;
913
+ height: 44px;
914
+ border-radius: 12px;
915
+ margin: 0 auto 8px;
916
+ }
917
+ .seams-account-device-hero h3 {
918
+ font-size: 24px;
919
+ font-weight: 500;
920
+ letter-spacing: -0.6px;
921
+ margin: 0 0 6px;
922
+ }
923
+ .seams-account-device-hero p {
924
+ color: var(--seams-colors-textSecondary);
925
+ font-size: 13px;
926
+ margin: 0;
927
+ }
928
+ .seams-account-method-button {
929
+ display: flex;
930
+ width: 100%;
931
+ align-items: center;
932
+ gap: 12px;
933
+ text-align: left;
934
+ padding: 12px 0;
935
+ border: 0;
936
+ border-bottom: 1px solid var(--seams-colors-borderPrimary);
937
+ background: none;
938
+ color: inherit;
939
+ cursor: pointer;
940
+ font: inherit;
941
+ }
942
+ .seams-account-method-button > div {
943
+ flex: 1;
944
+ }
945
+ .seams-account-method-button strong {
946
+ font-size: 15px;
947
+ font-weight: 500;
948
+ }
949
+ .seams-account-method-button small {
950
+ display: block;
951
+ margin-top: 4px;
952
+ color: var(--seams-colors-textSecondary);
953
+ font-size: 12px;
954
+ }
955
+ .seams-account-method-button > svg {
956
+ width: 16px;
957
+ height: 16px;
958
+ color: var(--seams-colors-textSecondary);
959
+ }
960
+ .seams-account-screen .seams-dropdown-accounts-root,
961
+ .seams-account-screen .seams-dropdown-export-keys-root {
962
+ border: 0;
963
+ border-radius: 12px;
964
+ }
965
+ .seams-account-screen .seams-linked-devices-modal-body {
966
+ max-height: none;
729
967
  overflow: visible;
730
- width: fit-content;
731
- transition: none;
968
+ }
969
+ .seams-account-screen .seams-linked-devices-modal-list {
970
+ margin: 0;
971
+ }
972
+ .seams-account-screen .seams-linked-devices-modal-item {
973
+ background: transparent;
974
+ }
975
+ .seams-account-screen .seams-linked-devices-modal-item-icon {
976
+ background: var(--seams-colors-surface2);
977
+ border-radius: 10px;
978
+ }
979
+ .seams-account-screen .qr-scanner-modal[data-presentation='embedded'] {
980
+ position: static;
981
+ inset: auto;
982
+ width: 100%;
983
+ padding: 0;
984
+ background: transparent;
985
+ backdrop-filter: none;
986
+ min-height: 0;
987
+ display: block;
988
+ animation: none;
989
+ }
990
+ .seams-account-screen .qr-scanner-modal[data-presentation='embedded'] .qr-scanner-panel {
991
+ width: 100%;
992
+ max-width: 100%;
993
+ max-height: none;
994
+ padding: 0;
995
+ background: transparent;
996
+ border: 0;
997
+ box-shadow: none;
998
+ border-radius: 0;
999
+ }
1000
+ .seams-account-screen .qr-scanner-modal[data-presentation='embedded'] .qr-scanner-close {
1001
+ display: none;
1002
+ }
1003
+ .seams-account-screen .qr-scanner-camera-container {
1004
+ width: 100%;
1005
+ height: 208px;
1006
+ aspect-ratio: auto;
1007
+ border-radius: 15px;
1008
+ overflow: hidden;
1009
+ }
1010
+ .seams-account-screen .qr-scanner-video {
1011
+ height: 208px;
1012
+ object-fit: cover;
1013
+ }
1014
+ .seams-account-screen .qr-scanner-instructions {
1015
+ color: var(--seams-colors-textSecondary);
1016
+ font-size: 12px;
1017
+ padding: 12px 0 0;
1018
+ text-align: center;
1019
+ }
1020
+ .seams-account-screen .qr-scanner-overlay {
1021
+ animation: none;
1022
+ }
1023
+ .seams-account-recovery-codes {
1024
+ list-style: none;
1025
+ display: grid;
1026
+ gap: 8px;
1027
+ padding: 0;
1028
+ margin: 14px 0;
1029
+ }
1030
+ .seams-account-recovery-codes li {
1031
+ display: flex;
1032
+ align-items: center;
1033
+ gap: 12px;
1034
+ padding: 10px 12px;
1035
+ border: 1px solid var(--seams-colors-borderPrimary);
1036
+ border-radius: 8px;
1037
+ }
1038
+ .seams-account-recovery-codes li > span {
1039
+ color: var(--seams-colors-textSecondary);
1040
+ font-size: 11px;
1041
+ font-variant-numeric: tabular-nums;
1042
+ }
1043
+ .seams-account-recovery-codes code {
1044
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
1045
+ font-size: 14px;
1046
+ font-variant-numeric: tabular-nums;
1047
+ white-space: nowrap;
1048
+ }
1049
+ @media (prefers-reduced-motion: no-preference) {
1050
+ .seams-account-resize {
1051
+ transition: height 240ms cubic-bezier(0.23, 1, 0.32, 1);
1052
+ }
1053
+ }
1054
+ @media (max-width: 480px) {
1055
+ .seams-account-main {
1056
+ padding-right: 20px;
1057
+ padding-left: 20px;
1058
+ }
1059
+ .seams-account-origin {
1060
+ padding-right: 20px;
1061
+ padding-left: 20px;
1062
+ }
1063
+ }
1064
+ .seams-account-method-list-item {
1065
+ list-style: none;
1066
+ }
1067
+ .seams-account-screen ul {
1068
+ padding-left: 0;
1069
+ }
1070
+ .seams-account-error {
1071
+ color: var(--seams-colors-error, #ae3344);
1072
+ font-size: 13px;
1073
+ margin: 16px 0 0;
1074
+ }
1075
+ .seams-account-screen {
1076
+ --seams-expander-surface: var(--seams-colors-surface2);
1077
+ opacity: 1;
1078
+ transition: opacity 140ms ease;
1079
+ }
1080
+ @starting-style {
1081
+ .seams-account-screen {
1082
+ opacity: 0;
1083
+ }
1084
+ }
1085
+ .seams-profile-button-morphable {
1086
+ font-family: var(--seams-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
1087
+ }
1088
+ .seams-account-screen [data-detail='true'] > .seams-linked-devices-modal-item-icon,
1089
+ .seams-account-screen [data-detail='true'] .seams-linked-devices-modal-item-main,
1090
+ .seams-account-screen [data-detail='true'] .seams-linked-devices-modal-item-detail {
1091
+ display: none;
1092
+ }
1093
+ .seams-profile-dropdown-menu .seams-dropdown-menu-item {
1094
+ transform: none;
1095
+ }
1096
+ .seams-account-identity:focus {
1097
+ outline: none;
1098
+ }
1099
+ .seams-account-screen .seams-dropdown-tx-settings-root {
1100
+ --seams-expander-surface: var(--seams-colors-colorBackground);
1101
+ border: 0;
1102
+ border-radius: 12px;
1103
+ overflow: hidden;
1104
+ margin-top: 14px;
732
1105
  }
733
1106
 
734
- .seams-profile-button-morphable:hover {
735
- border-color: var(--seams-colors-borderHover);
1107
+ .seams-account-method-tiles {
1108
+ list-style: none;
1109
+ padding: 0;
1110
+ margin: 16px 0 0;
1111
+ display: grid;
1112
+ gap: 8px;
1113
+ }
1114
+ .seams-account-method-tiles .seams-linked-devices-modal-item {
1115
+ border: 1px solid var(--seams-colors-borderPrimary);
1116
+ border-radius: 12px;
1117
+ padding: 10px;
1118
+ }
1119
+
1120
+ .seams-account-screen .seams-dropdown-toggle-tx-settings-content {
1121
+ padding: 8px 0;
1122
+ }
1123
+ @media (pointer: coarse) {
1124
+ .seams-account-action {
1125
+ min-height: 44px;
1126
+ }
1127
+ }
1128
+
1129
+ .seams-recovery-code-actions {
1130
+ display: grid;
1131
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1132
+ gap: 8px;
1133
+ }
1134
+ .seams-recovery-code-actions .seams-account-action {
1135
+ margin-top: 0;
1136
+ }
1137
+ .seams-recovery-code-action-status {
1138
+ margin: 6px 0 0;
1139
+ font-size: 12px;
1140
+ color: var(--seams-colors-textSecondary);
1141
+ }
1142
+
1143
+ .seams-recovery-code-action-status:empty {
1144
+ margin: 0;
1145
+ }
1146
+
1147
+ .seams-account-recovery-acknowledgement {
1148
+ display: flex;
1149
+ align-items: center;
1150
+ gap: 10px;
1151
+ margin-top: 16px;
1152
+ padding-top: 14px;
1153
+ padding-inline-start: 0.5rem;
1154
+ border-top: 1px solid var(--seams-colors-borderPrimary);
1155
+ font-size: 12px;
1156
+ line-height: 1.45;
1157
+ cursor: pointer;
1158
+ }
1159
+ .seams-account-recovery-acknowledgement input {
1160
+ width: 16px;
1161
+ height: 16px;
1162
+ margin: 0;
1163
+ flex-shrink: 0;
1164
+ accent-color: var(--seams-colors-textPrimary);
736
1165
  }
737
1166
 
738
1167
  .seams-settings-page {
@@ -2,7 +2,7 @@ import { useSeams } from "../context/index.js";
2
2
  import { TransactionReviewError } from "../../SeamsWeb/walletIframe/shared/transactionReview.js";
3
3
  import { ReviewHostController, ReviewOwner } from "./controller.js";
4
4
  import { Component, Suspense, createContext, useContext, useEffect, useLayoutEffect, useMemo, useRef, useSyncExternalStore } from "react";
5
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { createPortal } from "react-dom";
7
7
  //#region src/react/transactionReview/TransactionReviewHost.tsx
8
8
  const ReviewContext = createContext(null);
@@ -69,7 +69,7 @@ function RenderReview({ call }) {
69
69
  }
70
70
  function ReviewLoading({ call }) {
71
71
  useEffect(scheduleReviewLoadingTimeout.bind(null, call), [call]);
72
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("p", {
72
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("p", {
73
73
  role: "status",
74
74
  children: "Loading review…"
75
75
  }), /* @__PURE__ */ jsx("button", {
@@ -79,7 +79,7 @@ function ReviewLoading({ call }) {
79
79
  })] });
80
80
  }
81
81
  function ReviewFailure({ call }) {
82
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("p", {
82
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("p", {
83
83
  role: "alert",
84
84
  children: "The application review could not be displayed."
85
85
  }), /* @__PURE__ */ jsx("button", {