@seams/wallet 0.21.0 → 0.22.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 (92) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +107 -43
  3. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +1 -1
  4. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-receipt.js +36 -6
  5. package/dist/esm/core/ui/messages.js +9 -14
  6. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +23 -9
  7. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +376 -84
  8. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +87 -167
  9. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +11 -9
  10. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +76 -74
  11. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +23 -22
  12. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +1 -5
  13. package/dist/esm/react/components/AccountMenuButton/icons/MapPinIcon.js +12 -0
  14. package/dist/esm/react/components/AccountMenuButton/index.js +2 -1
  15. package/dist/esm/react/styles/styles.css +452 -162
  16. package/dist/{public/sdk/ConfirmationDrawer-B7RCp58z.js → esm/sdk/ConfirmationDrawer-Ck33ZmU-.js} +1 -1
  17. package/dist/esm/sdk/adapters-CgJpSAxH.js +2 -0
  18. package/dist/esm/sdk/appearance-token-vars-BA3KQyEE.js +2 -0
  19. package/dist/esm/sdk/{export-viewer-host-CVdpEuY6.js → export-viewer-host-C9n-62Pi.js} +1 -1
  20. package/dist/esm/sdk/{exportKeypairOperation-gVCqLrDl.js → exportKeypairOperation-Du9HKB8f.js} +1 -1
  21. package/dist/esm/sdk/{host-Bz7mRJPZ.js → host-DoftJdVQ.js} +1 -1
  22. package/dist/esm/sdk/{localOnly-TXaYAZj-.js → localOnly-CvFSZFUy.js} +1 -1
  23. package/dist/esm/sdk/{mountExportPrivateKeySurface-DUnKOBQr.js → mountExportPrivateKeySurface-DdJHWwqY.js} +1 -1
  24. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-MGTl6FhG.js → mountRecoveryCodeBackupSurface-D3QFgMGE.js} +1 -1
  25. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-DWeemdJv.js → esm/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js} +1 -1
  26. package/dist/esm/sdk/{registration-DVX_lnP7.js → registration-CIxJvbTo.js} +1 -1
  27. package/dist/esm/sdk/{registration-DeCUrUR9.js → registration-CeOmKyCG.js} +1 -1
  28. package/dist/esm/sdk/{runtime-auth-BAGyfscG.js → runtime-auth-C0V-5znH.js} +1 -1
  29. package/dist/{public/sdk/runtime-device-link-DKkMLVor.js → esm/sdk/runtime-device-link-B1jpHQSF.js} +1 -1
  30. package/dist/{public/sdk/runtime-ecdsa-tempo-0TAVH1xg.js → esm/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js} +1 -1
  31. package/dist/esm/sdk/{runtime-email-otp-DoHa8Hif.js → runtime-email-otp-DXuxFOjL.js} +1 -1
  32. package/dist/esm/sdk/{runtime-export-CAt17IFH.js → runtime-export-Ba12ChDI.js} +1 -1
  33. package/dist/esm/sdk/{runtime-near-BQX9Jk9Z.js → runtime-near-DRrdWzmr.js} +1 -1
  34. package/dist/esm/sdk/{runtime-preferences-BuKTIpv6.js → runtime-preferences-BWyhRaBA.js} +1 -1
  35. package/dist/esm/sdk/{runtime-recovery-DyxJKKNw.js → runtime-recovery-DlJlaZlf.js} +1 -1
  36. package/dist/esm/sdk/{runtime-recovery-codes-CWmt0FDB.js → runtime-recovery-codes-CuqYWqK7.js} +1 -1
  37. package/dist/esm/sdk/{shared-BVps1f3F.js → shared-B95wnpoD.js} +1 -1
  38. package/dist/esm/sdk/transaction-activity-CpDMkSPm.js +1 -0
  39. package/dist/esm/sdk/tx-confirm-ui.js +186 -71
  40. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  41. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  42. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  43. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  44. package/dist/esm/sdk/wallet-ui.css +1 -1
  45. package/dist/{public/sdk/walletRecoveryAdminProof-CIoLawfC.js → esm/sdk/walletRecoveryAdminProof-CtH8_lph.js} +1 -1
  46. package/dist/public/headers.manifest.json +1 -1
  47. package/dist/{esm/sdk/ConfirmationDrawer-B7RCp58z.js → public/sdk/ConfirmationDrawer-Ck33ZmU-.js} +1 -1
  48. package/dist/public/sdk/adapters-CgJpSAxH.js +2 -0
  49. package/dist/public/sdk/appearance-token-vars-BA3KQyEE.js +2 -0
  50. package/dist/public/sdk/{export-viewer-host-CVdpEuY6.js → export-viewer-host-C9n-62Pi.js} +1 -1
  51. package/dist/public/sdk/{exportKeypairOperation-gVCqLrDl.js → exportKeypairOperation-Du9HKB8f.js} +1 -1
  52. package/dist/public/sdk/{host-Bz7mRJPZ.js → host-DoftJdVQ.js} +1 -1
  53. package/dist/public/sdk/{localOnly-TXaYAZj-.js → localOnly-CvFSZFUy.js} +1 -1
  54. package/dist/public/sdk/{mountExportPrivateKeySurface-DUnKOBQr.js → mountExportPrivateKeySurface-DdJHWwqY.js} +1 -1
  55. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-MGTl6FhG.js → mountRecoveryCodeBackupSurface-D3QFgMGE.js} +1 -1
  56. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-DWeemdJv.js → public/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js} +1 -1
  57. package/dist/public/sdk/{registration-DVX_lnP7.js → registration-CIxJvbTo.js} +1 -1
  58. package/dist/public/sdk/{registration-DeCUrUR9.js → registration-CeOmKyCG.js} +1 -1
  59. package/dist/public/sdk/{runtime-auth-BAGyfscG.js → runtime-auth-C0V-5znH.js} +1 -1
  60. package/dist/{esm/sdk/runtime-device-link-DKkMLVor.js → public/sdk/runtime-device-link-B1jpHQSF.js} +1 -1
  61. package/dist/{esm/sdk/runtime-ecdsa-tempo-0TAVH1xg.js → public/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js} +1 -1
  62. package/dist/public/sdk/{runtime-email-otp-DoHa8Hif.js → runtime-email-otp-DXuxFOjL.js} +1 -1
  63. package/dist/public/sdk/{runtime-export-CAt17IFH.js → runtime-export-Ba12ChDI.js} +1 -1
  64. package/dist/public/sdk/{runtime-near-BQX9Jk9Z.js → runtime-near-DRrdWzmr.js} +1 -1
  65. package/dist/public/sdk/{runtime-preferences-BuKTIpv6.js → runtime-preferences-BWyhRaBA.js} +1 -1
  66. package/dist/public/sdk/{runtime-recovery-DyxJKKNw.js → runtime-recovery-DlJlaZlf.js} +1 -1
  67. package/dist/public/sdk/{runtime-recovery-codes-CWmt0FDB.js → runtime-recovery-codes-CuqYWqK7.js} +1 -1
  68. package/dist/public/sdk/{shared-BVps1f3F.js → shared-B95wnpoD.js} +1 -1
  69. package/dist/public/sdk/transaction-activity-CpDMkSPm.js +1 -0
  70. package/dist/public/sdk/tx-confirm-ui.js +186 -71
  71. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  72. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  73. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  74. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  75. package/dist/public/sdk/wallet-ui.css +1 -1
  76. package/dist/{esm/sdk/walletRecoveryAdminProof-CIoLawfC.js → public/sdk/walletRecoveryAdminProof-CtH8_lph.js} +1 -1
  77. package/dist/public/wallet-assets.manifest.json +50 -50
  78. package/dist/public/wallet-service/index.html +4 -4
  79. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/controller.d.ts +2 -0
  80. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-activity.d.ts +2 -2
  81. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-receipt.d.ts +25 -6
  82. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  83. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MapPinIcon.d.ts +2 -0
  84. package/package.json +1 -1
  85. package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +0 -77
  86. package/dist/esm/sdk/adapters-La60hveX.js +0 -2
  87. package/dist/esm/sdk/appearance-token-vars-Bu6YUWmf.js +0 -2
  88. package/dist/esm/sdk/transaction-activity-D5f-Yn9t.js +0 -1
  89. package/dist/public/sdk/adapters-La60hveX.js +0 -2
  90. package/dist/public/sdk/appearance-token-vars-Bu6YUWmf.js +0 -2
  91. package/dist/public/sdk/transaction-activity-D5f-Yn9t.js +0 -1
  92. package/dist/types/wallet/src/react/components/AccountMenuButton/SegmentedControl.d.ts +0 -25
@@ -519,114 +519,406 @@
519
519
  }
520
520
  }
521
521
 
522
- /* Expander (TransactionSettingsSection) */
523
- .seams-dropdown-tx-settings-root {
524
- background-color: var(--seams-expander-surface, var(--seams-colors-surface));
525
- transform-origin: top;
522
+ /* Transaction settings: a review switch, then the review layout as cards
523
+ with a small drawing. The settings page and the account menu share these
524
+ rules; the menu adds a compact variant. */
525
+ .seams-transaction-page {
526
526
  display: grid;
527
- grid-template-rows: 0fr;
528
- transition: grid-template-rows 200ms cubic-bezier(0.22, 1, 0.36, 1);
527
+ gap: 40px;
529
528
  }
530
-
531
- .seams-dropdown-tx-settings-root.is-expanded {
529
+ .seams-transaction-group {
530
+ min-width: 0;
531
+ margin: 0;
532
+ padding: 0;
533
+ border: 0;
534
+ }
535
+ .seams-transaction-review + .seams-transaction-group {
536
+ padding-top: 40px;
532
537
  border-top: 1px solid var(--seams-colors-borderPrimary);
533
- /* border-bottom: 1px solid var(--seams-colors-borderPrimary); */
534
- background-color: var(--seams-expander-surface, var(--seams-colors-surface));
535
- grid-template-rows: 1fr;
536
538
  }
537
-
538
- .seams-dropdown-toggle-tx-settings {
539
- overflow: hidden;
540
- min-height: 0;
541
- min-width: 0;
539
+ .seams-transaction-group legend {
540
+ /* A floated legend leaves the fieldset border, so the divider above a
541
+ group runs above its title, not through it. */
542
+ float: inline-start;
543
+ width: 100%;
544
+ padding: 0;
545
+ font-size: 18px;
546
+ font-weight: 600;
542
547
  }
543
-
544
- .seams-dropdown-toggle-tx-settings-content {
548
+ .seams-transaction-group legend + * {
549
+ clear: both;
550
+ }
551
+ .seams-transaction-group > p {
552
+ margin: 6px 0 20px;
553
+ color: var(--seams-colors-textSecondary);
554
+ font-size: 14px;
555
+ line-height: 1.5;
556
+ }
557
+ .seams-transaction-choices {
558
+ display: grid;
559
+ grid-template-columns: repeat(3, minmax(0, 1fr));
560
+ gap: 16px;
561
+ }
562
+ .seams-transaction-choice {
545
563
  display: flex;
546
564
  flex-direction: column;
547
- align-items: flex-start;
548
- justify-content: space-between;
549
- padding: 16px;
565
+ gap: 14px;
566
+ padding: 12px 12px 16px;
567
+ border: 1px solid var(--seams-colors-borderPrimary);
568
+ border-radius: 16px;
569
+ background: var(--seams-colors-colorBackground);
570
+ color: var(--seams-colors-textPrimary);
571
+ font: inherit;
572
+ text-align: start;
573
+ cursor: pointer;
550
574
  transition:
551
- opacity 100ms ease,
552
- transform 200ms cubic-bezier(0.22, 1, 0.36, 1);
553
- opacity: 0;
554
- transform: translateY(4px);
575
+ border-color 120ms ease,
576
+ background-color 120ms ease;
555
577
  }
556
-
557
- .seams-dropdown-tx-settings-root.is-expanded .seams-dropdown-toggle-tx-settings-content {
558
- opacity: 1;
559
- transform: translateY(0);
578
+ .seams-transaction-choice-text {
579
+ display: grid;
580
+ gap: 6px;
581
+ padding-inline: 4px;
560
582
  }
561
-
562
- .seams-confirmation-options {
563
- font-size: 12px;
564
- margin-bottom: 6px;
583
+ .seams-transaction-choice-head {
584
+ display: flex;
585
+ align-items: center;
586
+ justify-content: space-between;
587
+ gap: 12px;
565
588
  }
566
-
567
- .seams-account-seg {
589
+ .seams-transaction-choice strong {
590
+ font-size: 15px;
591
+ font-weight: 600;
592
+ }
593
+ .seams-transaction-choice-description {
594
+ color: var(--seams-colors-textSecondary);
595
+ font-size: 13px;
596
+ line-height: 1.5;
597
+ }
598
+ .seams-transaction-choice-indicator {
599
+ flex-shrink: 0;
600
+ width: 18px;
601
+ height: 18px;
568
602
  box-sizing: border-box;
569
- min-width: 0;
570
- position: relative;
571
- min-height: 54px;
572
- overflow: hidden;
573
- padding: 5px;
574
- border: none;
575
- background: color-mix(in srgb, var(--seams-colors-textPrimary) 6%, var(--seams-colors-surface2));
576
- border-radius: var(--seams-border-radius-xl);
603
+ border: 1.5px solid var(--seams-colors-borderPrimary);
604
+ border-radius: 50%;
577
605
  }
578
-
579
- .seams-account-seg-active {
580
- position: absolute;
581
- top: 5px;
582
- bottom: 5px;
583
- left: 5px;
584
- width: calc((100% - 10px) / var(--seams-account-seg-count));
585
- border-radius: inherit;
586
- background: var(--seams-account-seg-active-bg);
587
- transform: translateX(calc(var(--seams-account-seg-active-index) * 100%));
588
- transition:
589
- transform 220ms ease,
590
- opacity 150ms ease;
591
- pointer-events: none;
606
+ .seams-transaction-choice[aria-pressed='true'] {
607
+ border-color: var(--seams-colors-primary);
608
+ box-shadow: inset 0 0 0 1px var(--seams-colors-primary);
609
+ }
610
+ .seams-transaction-choice[aria-pressed='true'] .seams-transaction-choice-indicator {
611
+ border: 5px solid var(--seams-colors-primary);
612
+ }
613
+ .seams-transaction-choice:hover:not(:disabled):not([aria-pressed='true']) {
614
+ background: var(--seams-colors-surface);
615
+ }
616
+ .seams-transaction-choice:focus-visible {
617
+ outline: 2px solid var(--seams-colors-primary);
618
+ outline-offset: 4px;
619
+ }
620
+ .seams-transaction-choice:disabled {
621
+ opacity: 0.5;
622
+ cursor: not-allowed;
592
623
  }
593
624
 
594
- .seams-account-seg-grid {
595
- position: relative;
596
- z-index: 1;
625
+ /* The switch row uses the card grid, so its edge lines up with the cards. */
626
+ .seams-transaction-review {
597
627
  display: grid;
598
- grid-template-columns: repeat(var(--seams-account-seg-count), minmax(0, 1fr));
599
- gap: 4px;
600
- height: 100%;
628
+ grid-template-columns: repeat(3, minmax(0, 1fr));
629
+ gap: 10px 16px;
601
630
  }
602
-
603
- .seams-account-seg-btn {
604
- min-width: 0;
605
- min-height: 44px;
606
- padding: 0 14px;
607
- border: 0;
608
- border-radius: 1rem;
609
- background: transparent;
610
- color: color-mix(in srgb, var(--seams-colors-textSecondary), var(--seams-colors-textPrimary) 45%);
611
- cursor: pointer;
631
+ .seams-transaction-review > * {
632
+ grid-column: span 2;
633
+ }
634
+ .seams-transaction-review > p {
635
+ margin: 0;
636
+ padding-inline: 4px;
637
+ color: var(--seams-colors-textSecondary);
638
+ font-size: 13px;
639
+ line-height: 1.5;
640
+ }
641
+ .seams-transaction-review-row {
642
+ display: flex;
643
+ align-items: center;
644
+ justify-content: space-between;
645
+ gap: 20px;
646
+ padding: 20px;
647
+ border: 1px solid var(--seams-colors-borderPrimary);
648
+ border-radius: 16px;
649
+ background: var(--seams-colors-colorBackground);
650
+ }
651
+ .seams-transaction-review-text {
612
652
  display: grid;
613
- place-items: center;
614
- font-size: clamp(13px, 3.6vw, 15px);
653
+ gap: 6px;
654
+ }
655
+ .seams-transaction-review-text strong {
656
+ font-size: 16px;
615
657
  font-weight: 600;
616
- text-align: center;
617
- touch-action: manipulation;
618
- transition: color 160ms ease;
619
- white-space: normal;
620
- -webkit-tap-highlight-color: transparent;
658
+ }
659
+ .seams-transaction-review-text > span {
660
+ color: var(--seams-colors-textSecondary);
661
+ font-size: 14px;
662
+ line-height: 1.5;
663
+ }
664
+ .seams-transaction-switch {
665
+ position: relative;
666
+ flex-shrink: 0;
667
+ width: 44px;
668
+ height: 26px;
669
+ padding: 0;
670
+ border: 0;
671
+ border-radius: 13px;
672
+ background: var(--seams-colors-borderPrimary);
673
+ cursor: pointer;
674
+ transition: background-color 150ms ease;
675
+ }
676
+ .seams-transaction-switch > span {
677
+ position: absolute;
678
+ inset-block-start: 3px;
679
+ inset-inline-start: 3px;
680
+ width: 20px;
681
+ height: 20px;
682
+ border-radius: 50%;
683
+ background: var(--seams-colors-colorBackground);
684
+ box-shadow: 0 1px 3px rgb(0 0 0 / 0.25);
685
+ transition: transform 150ms ease;
686
+ }
687
+ .seams-transaction-switch[aria-checked='true'] {
688
+ background: var(--seams-colors-primary);
689
+ }
690
+ .seams-transaction-switch[aria-checked='true'] > span {
691
+ transform: translateX(18px);
692
+ }
693
+ [dir='rtl'] .seams-transaction-switch[aria-checked='true'] > span {
694
+ transform: translateX(-18px);
695
+ }
696
+ .seams-transaction-switch:focus-visible {
697
+ outline: 2px solid var(--seams-colors-primary);
698
+ outline-offset: 3px;
699
+ }
700
+ .seams-transaction-switch:disabled {
701
+ opacity: 0.5;
702
+ cursor: not-allowed;
703
+ }
704
+ @media (prefers-reduced-motion: reduce) {
705
+ .seams-transaction-switch,
706
+ .seams-transaction-switch > span {
707
+ transition: none;
708
+ }
621
709
  }
622
710
 
623
- .seams-account-seg-btn.is-active {
711
+ /* The preview draws a page with the review surface on top of it. */
712
+ .seams-transaction-preview {
713
+ position: relative;
714
+ display: block;
715
+ aspect-ratio: 16 / 9;
716
+ overflow: hidden;
717
+ border-radius: 10px;
718
+ background: var(--seams-colors-surface);
719
+ color: var(--seams-colors-textSecondary);
720
+ }
721
+ .seams-transaction-choice[aria-pressed='true'] .seams-transaction-preview {
624
722
  color: var(--seams-colors-textPrimary);
625
723
  }
724
+ .seams-tp-page {
725
+ position: absolute;
726
+ inset: 14% 12%;
727
+ display: grid;
728
+ align-content: start;
729
+ gap: 8%;
730
+ }
731
+ .seams-tp-page i,
732
+ .seams-tp-panel i {
733
+ display: block;
734
+ height: 6px;
735
+ border-radius: 3px;
736
+ background: currentColor;
737
+ opacity: 0.18;
738
+ }
739
+ .seams-tp-page i:nth-child(1) {
740
+ width: 38%;
741
+ height: 8px;
742
+ opacity: 0.28;
743
+ }
744
+ .seams-tp-page i:nth-child(3) {
745
+ width: 72%;
746
+ }
747
+ .seams-tp-scrim {
748
+ position: absolute;
749
+ inset: 0;
750
+ background: rgb(0 0 0 / 0.1);
751
+ }
752
+ .seams-tp-panel {
753
+ position: absolute;
754
+ display: flex;
755
+ flex-direction: column;
756
+ gap: 6px;
757
+ padding: 10px;
758
+ border: 1px solid var(--seams-colors-borderPrimary);
759
+ border-radius: 8px;
760
+ background: var(--seams-colors-colorBackground);
761
+ box-shadow: 0 6px 16px rgb(0 0 0 / 0.08);
762
+ }
763
+ .seams-tp-panel i:nth-child(1) {
764
+ width: 60%;
765
+ opacity: 0.32;
766
+ }
767
+ .seams-tp-panel b {
768
+ display: block;
769
+ align-self: flex-end;
770
+ width: 48%;
771
+ height: 10px;
772
+ margin-top: auto;
773
+ border-radius: 4px;
774
+ background: var(--seams-colors-primary);
775
+ }
776
+ [data-preview='modal'] .seams-tp-panel {
777
+ inset: 18% 26%;
778
+ }
779
+ [data-preview='drawer'] .seams-tp-panel {
780
+ inset-block: 0;
781
+ inset-inline: auto 0;
782
+ width: 40%;
783
+ padding-top: 14px;
784
+ border-block: 0;
785
+ border-inline-end: 0;
786
+ border-radius: 0;
787
+ }
626
788
 
627
- .seams-account-seg-btn:focus-visible {
628
- box-shadow: 0 0 0 2px color-mix(in srgb, var(--seams-colors-focus), transparent 60%);
629
- outline: none;
789
+ @media (max-width: 600px) {
790
+ [data-presentation='page'] .seams-transaction-review > * {
791
+ grid-column: 1 / -1;
792
+ }
793
+ [data-presentation='page'] .seams-transaction-review-row {
794
+ padding: 16px;
795
+ }
796
+ [data-presentation='page'] .seams-transaction-choices {
797
+ grid-template-columns: minmax(0, 1fr);
798
+ gap: 12px;
799
+ }
800
+ [data-presentation='page'] .seams-transaction-choice {
801
+ flex-direction: row;
802
+ align-items: center;
803
+ gap: 14px;
804
+ padding: 10px 14px 10px 10px;
805
+ }
806
+ [data-presentation='page'] .seams-transaction-preview {
807
+ flex-shrink: 0;
808
+ width: 104px;
809
+ }
810
+ [data-presentation='page'] .seams-transaction-choice-text {
811
+ flex: 1;
812
+ min-width: 0;
813
+ padding-inline: 0;
814
+ }
815
+ [data-presentation='page'] .seams-tp-panel {
816
+ gap: 4px;
817
+ padding: 6px;
818
+ border-radius: 5px;
819
+ }
820
+ [data-presentation='page'] .seams-tp-page i,
821
+ [data-presentation='page'] .seams-tp-panel i {
822
+ height: 4px;
823
+ }
824
+ [data-presentation='page'] .seams-tp-page i:nth-child(1) {
825
+ height: 5px;
826
+ }
827
+ [data-presentation='page'] .seams-tp-panel b {
828
+ height: 6px;
829
+ border-radius: 2px;
830
+ }
831
+ }
832
+
833
+ /* The account menu is about 300px wide: three small cards per row, labels
834
+ only, and smaller drawings. */
835
+ .seams-transaction-page[data-presentation='menu'] {
836
+ gap: 16px;
837
+ padding-bottom: 4px;
838
+ }
839
+ [data-presentation='menu'] .seams-transaction-review + .seams-transaction-group {
840
+ padding-top: 16px;
841
+ }
842
+ [data-presentation='menu'] .seams-transaction-group legend {
843
+ font-size: 14px;
844
+ }
845
+ [data-presentation='menu'] .seams-transaction-group > p {
846
+ margin: 2px 0 10px;
847
+ font-size: 12px;
848
+ line-height: 1.4;
849
+ }
850
+ [data-presentation='menu'] .seams-transaction-choices {
851
+ gap: 8px;
852
+ }
853
+ [data-presentation='menu'] .seams-transaction-choice {
854
+ gap: 8px;
855
+ padding: 5px 5px 8px;
856
+ border-radius: 12px;
857
+ }
858
+ [data-presentation='menu'] .seams-transaction-choice-text {
859
+ padding-inline: 3px;
860
+ }
861
+ [data-presentation='menu'] .seams-transaction-choice {
862
+ position: relative;
863
+ }
864
+ [data-presentation='menu'] .seams-transaction-choice strong {
865
+ font-size: 12px;
866
+ font-weight: 500;
867
+ line-height: 1.3;
868
+ }
869
+ /* The dot sits on the drawing's corner, so a long label gets the full width. */
870
+ [data-presentation='menu'] .seams-transaction-choice-indicator {
871
+ position: absolute;
872
+ inset-block-start: 10px;
873
+ inset-inline-end: 10px;
874
+ width: 14px;
875
+ height: 14px;
876
+ background: var(--seams-colors-colorBackground);
877
+ }
878
+ [data-presentation='menu'] .seams-transaction-choice[aria-pressed='true'] .seams-transaction-choice-indicator {
879
+ border-width: 4px;
880
+ }
881
+ [data-presentation='menu'] .seams-transaction-preview {
882
+ border-radius: 8px;
883
+ }
884
+ [data-presentation='menu'] .seams-tp-panel {
885
+ gap: 3px;
886
+ padding: 5px;
887
+ border-radius: 4px;
888
+ }
889
+ [data-presentation='menu'] .seams-tp-page i,
890
+ [data-presentation='menu'] .seams-tp-panel i {
891
+ height: 3px;
892
+ border-radius: 2px;
893
+ }
894
+ [data-presentation='menu'] .seams-tp-page i:nth-child(1) {
895
+ height: 4px;
896
+ }
897
+ [data-presentation='menu'] .seams-tp-panel b {
898
+ height: 5px;
899
+ border-radius: 2px;
900
+ }
901
+ [data-presentation='menu'] [data-preview='drawer'] .seams-tp-panel {
902
+ padding-top: 7px;
903
+ }
904
+ [data-presentation='menu'] .seams-transaction-review > * {
905
+ grid-column: 1 / -1;
906
+ }
907
+ [data-presentation='menu'] .seams-transaction-review {
908
+ gap: 8px;
909
+ }
910
+ [data-presentation='menu'] .seams-transaction-review-row {
911
+ gap: 14px;
912
+ padding: 14px;
913
+ border-radius: 12px;
914
+ }
915
+ [data-presentation='menu'] .seams-transaction-review-text strong {
916
+ font-size: 14px;
917
+ }
918
+ [data-presentation='menu'] .seams-transaction-review-text > span,
919
+ [data-presentation='menu'] .seams-transaction-review > p {
920
+ font-size: 12px;
921
+ line-height: 1.4;
630
922
  }
631
923
 
632
924
  /* UserAccountButton Component Styles */
@@ -1267,11 +1559,7 @@
1267
1559
  .seams-account-identity:focus {
1268
1560
  outline: none;
1269
1561
  }
1270
- .seams-account-screen .seams-dropdown-tx-settings-root {
1271
- --seams-expander-surface: var(--seams-colors-colorBackground);
1272
- border: 0;
1273
- border-radius: 12px;
1274
- overflow: hidden;
1562
+ .seams-account-screen .seams-transaction-page {
1275
1563
  margin-top: 14px;
1276
1564
  }
1277
1565
 
@@ -1543,8 +1831,7 @@
1543
1831
  padding: 24px;
1544
1832
  }
1545
1833
  .seams-settings-content .seams-dropdown-accounts-root,
1546
- .seams-settings-content .seams-dropdown-export-keys-root,
1547
- .seams-settings-content .seams-dropdown-tx-settings-root {
1834
+ .seams-settings-content .seams-dropdown-export-keys-root {
1548
1835
  margin: 0;
1549
1836
  border: 1px solid var(--seams-colors-borderPrimary);
1550
1837
  border-radius: 16px;
@@ -1712,91 +1999,94 @@
1712
1999
  }
1713
2000
  }
1714
2001
 
1715
- .seams-transaction-page {
2002
+ .seams-region-field {
1716
2003
  display: grid;
1717
- gap: 36px;
1718
- }
1719
- .seams-transaction-group {
1720
- min-width: 0;
1721
- margin: 0;
1722
- padding: 0;
1723
- border: 0;
1724
- }
1725
- .seams-transaction-group legend {
1726
- padding: 0;
1727
- font-size: 20px;
1728
- font-weight: 600;
1729
- }
1730
- .seams-transaction-group > p {
1731
- margin: 8px 0 20px;
1732
- color: var(--seams-colors-textSecondary);
2004
+ gap: 8px;
2005
+ max-width: 360px;
2006
+ margin: 24px 0 16px;
1733
2007
  font-size: 14px;
1734
- line-height: 1.5;
2008
+ font-weight: 500;
1735
2009
  }
1736
- .seams-transaction-choices {
1737
- display: grid;
1738
- grid-template-columns: repeat(3, minmax(0, 1fr));
1739
- gap: 16px;
2010
+ /* The wrapper draws the chevron, so the closed control looks the same in
2011
+ every browser. */
2012
+ .seams-region-select {
2013
+ position: relative;
2014
+ display: block;
1740
2015
  }
1741
- .seams-transaction-choices--two {
1742
- grid-template-columns: repeat(2, minmax(0, 1fr));
2016
+ .seams-region-select::after {
2017
+ content: '';
2018
+ position: absolute;
2019
+ inset-block-start: 50%;
2020
+ inset-inline-end: 18px;
2021
+ width: 7px;
2022
+ height: 7px;
2023
+ border-inline-end: 1.5px solid var(--seams-colors-textSecondary);
2024
+ border-block-end: 1.5px solid var(--seams-colors-textSecondary);
2025
+ transform: translateY(-70%) rotate(45deg);
2026
+ pointer-events: none;
1743
2027
  }
1744
- .seams-transaction-choice {
1745
- display: flex;
1746
- flex-direction: column;
1747
- align-items: flex-start;
1748
- gap: 12px;
1749
- min-height: 188px;
1750
- padding: 24px;
2028
+ .seams-region-select select {
2029
+ appearance: none;
2030
+ width: 100%;
2031
+ min-height: 48px;
2032
+ padding-block: 12px;
2033
+ padding-inline: 14px 44px;
1751
2034
  border: 1px solid var(--seams-colors-borderPrimary);
1752
- border-radius: 16px;
2035
+ border-radius: 12px;
1753
2036
  background: var(--seams-colors-colorBackground);
1754
2037
  color: var(--seams-colors-textPrimary);
1755
2038
  font: inherit;
1756
- text-align: start;
2039
+ font-weight: 400;
1757
2040
  cursor: pointer;
1758
2041
  }
1759
- .seams-transaction-choice strong {
1760
- font-size: 16px;
1761
- }
1762
- .seams-transaction-choice > span:last-child {
1763
- color: var(--seams-colors-textSecondary);
1764
- font-size: 14px;
1765
- line-height: 1.5;
1766
- }
1767
- .seams-transaction-choice-indicator {
1768
- width: 20px;
1769
- height: 20px;
1770
- box-sizing: border-box;
1771
- border: 1px solid var(--seams-colors-borderPrimary);
1772
- border-radius: 50%;
1773
- }
1774
- .seams-transaction-choice[aria-pressed='true'] {
1775
- border-color: var(--seams-colors-primary);
1776
- box-shadow: inset 0 0 0 1px var(--seams-colors-primary);
1777
- background: var(--seams-colors-surface2);
1778
- }
1779
- .seams-transaction-choice[aria-pressed='true'] .seams-transaction-choice-indicator {
1780
- border: 6px solid var(--seams-colors-primary);
1781
- }
1782
- .seams-transaction-choice:hover:not(:disabled) {
1783
- background: var(--seams-colors-surface2);
1784
- }
1785
- .seams-transaction-choice:focus-visible {
1786
- outline: 2px solid var(--seams-colors-primary);
1787
- outline-offset: 4px;
2042
+ .seams-region-select select:hover {
2043
+ background: var(--seams-colors-surface);
1788
2044
  }
1789
- .seams-transaction-choice:disabled {
1790
- opacity: 0.55;
1791
- cursor: not-allowed;
2045
+ .seams-region-select select:focus-visible {
2046
+ outline: 2px solid var(--seams-colors-textPrimary);
2047
+ outline-offset: 2px;
1792
2048
  }
1793
- @media (max-width: 600px) {
1794
- .seams-transaction-choices {
1795
- grid-template-columns: minmax(0, 1fr);
2049
+ /* Browsers with customizable select also style the open list. Others keep
2050
+ the native list. */
2051
+ @supports (appearance: base-select) {
2052
+ .seams-region-select select,
2053
+ .seams-region-select ::picker(select) {
2054
+ appearance: base-select;
1796
2055
  }
1797
- .seams-transaction-choice {
1798
- min-height: 0;
1799
- padding: 20px;
2056
+ .seams-region-select select::picker-icon {
2057
+ display: none;
2058
+ }
2059
+ .seams-region-select ::picker(select) {
2060
+ margin-block: 6px;
2061
+ padding: 6px;
2062
+ border: 1px solid var(--seams-colors-borderPrimary);
2063
+ border-radius: 12px;
2064
+ background: var(--seams-colors-colorBackground);
2065
+ color: var(--seams-colors-textPrimary);
2066
+ box-shadow: 0 12px 32px rgb(0 0 0 / 0.14);
2067
+ }
2068
+ .seams-region-select option {
2069
+ display: flex;
2070
+ align-items: center;
2071
+ gap: 10px;
2072
+ min-height: 40px;
2073
+ padding: 8px 10px;
2074
+ border-radius: 8px;
2075
+ font: inherit;
2076
+ cursor: pointer;
2077
+ }
2078
+ .seams-region-select option:hover,
2079
+ .seams-region-select option:focus-visible {
2080
+ outline: none;
2081
+ background: var(--seams-colors-surface2);
2082
+ }
2083
+ .seams-region-select option:checked {
2084
+ font-weight: 500;
2085
+ }
2086
+ .seams-region-select option::checkmark {
2087
+ order: 1;
2088
+ margin-inline-start: auto;
2089
+ color: var(--seams-colors-textSecondary);
1800
2090
  }
1801
2091
  }
1802
2092