@planningcenter/topbar 12.4.0-qa-965.0 → 12.4.0-qa-959.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.
package/dist/topbar.css CHANGED
@@ -504,24 +504,55 @@ Caused by products overriding .topbar-wrap’s z-index.
504
504
  max-height: calc(100% - var(--topbar-height) - var(--t-spacing-3));
505
505
  }
506
506
 
507
- /* Placeholder until design lands: just enough to tell which product is selected. */
508
- .tab-dz8ki[aria-selected="true"] {
509
- background-color: var(--t-fill-color-interaction);
510
- color: var(--t-text-color-inverted);
511
- font-weight: var(--t-font-weight-semibold);
507
+ .searchButton-fYa5- {
508
+ display: inline-flex;
509
+ align-items: center;
510
+ justify-content: center;
511
+ flex-shrink: 0;
512
+ width: var(--topbar-nav-link-height);
513
+ height: var(--topbar-nav-link-height);
514
+ padding: 0;
515
+ margin-right: var(--t-spacing-half);
516
+ background-color: var(--topbar-nav-link-background-color-active);
517
+ color: var(--topbar-nav-link-font-color);
518
+ border: var(--t-border-width) solid var(--topbar-nav-link-border-color-active);
519
+ border-radius: var(--topbar-nav-link-border-radius);
520
+ cursor: pointer;
521
+ transition: var(--topbar-nav-link-transition);
512
522
  }
513
523
 
514
- /* Placeholder until design lands: just enough to see which result is highlighted. */
515
- .result-Thq2C {
516
- display: block;
524
+ /*
525
+ * At phone widths, where the small topbar shows, it sits bare in the header,
526
+ * the same target as the avatar's.
527
+ */
528
+ @media (max-width: 599px) {
529
+ .searchButton-fYa5- {
530
+ width: var(--t-container-size-xl);
531
+ height: var(--t-container-size-xl);
532
+ margin-right: 0;
533
+ background-color: transparent;
534
+ color: var(--t-text-color-headline);
535
+ border: 0;
536
+ border-radius: 0;
537
+ }
517
538
  }
518
539
 
519
- .result-Thq2C[aria-selected="true"] {
520
- background-color: var(--t-fill-color-interaction);
521
- color: var(--t-text-color-inverted);
540
+ .modal-NR3TO {
541
+ height: 640px;
542
+ max-height: calc(100vh - var(--t-spacing-3) * 2);
543
+ /* Keeps the results panel's background inside the rounded corners. */
544
+ overflow: hidden;
545
+ border: var(--t-border-width) solid var(--t-border-color);
546
+ }
547
+
548
+ /* Fits mobile Safari's visible viewport, between its toolbars. */
549
+ @supports (height: 100dvh) {
550
+ .modal-NR3TO {
551
+ max-height: calc(100dvh - var(--t-spacing-3) * 2);
552
+ }
522
553
  }
523
554
 
524
- .visuallyHidden-S9VG5 {
555
+ .visuallyHidden-C28ju {
525
556
  position: absolute;
526
557
  width: 1px;
527
558
  height: 1px;
@@ -530,6 +561,596 @@ Caused by products overriding .topbar-wrap’s z-index.
530
561
  white-space: nowrap;
531
562
  }
532
563
 
564
+ /* Scrolls the results under the product picker, tabs or dropdown. */
565
+ @property --scroll-shadow-offset {
566
+ syntax: "<length>";
567
+ inherits: false;
568
+ initial-value: 0px;
569
+ }
570
+
571
+ @keyframes scroll-shadow-slide-RlHcf {
572
+ to {
573
+ --scroll-shadow-offset: 12px;
574
+ }
575
+ }
576
+
577
+ .panel-HlF7S {
578
+ --scroll-shadow-cover: var(--t-surface-color-card);
579
+ --scroll-shadow: color-mix(
580
+ in srgb,
581
+ var(--t-fill-color-transparency-dark-static-010) 55%,
582
+ transparent
583
+ );
584
+
585
+ flex: 1;
586
+ min-height: 0;
587
+ padding: var(--product-search-padding, var(--t-spacing-3))
588
+ var(
589
+ --product-search-results-inset,
590
+ var(--product-search-padding, var(--t-spacing-3))
591
+ );
592
+ /* Lets results lay out by the panel's width rather than the viewport's. */
593
+ container-type: inline-size;
594
+ scroll-padding-block: var(--product-search-padding, var(--t-spacing-3));
595
+ overflow-y: auto;
596
+ overscroll-behavior: contain;
597
+ background:
598
+ linear-gradient(transparent, var(--scroll-shadow-cover) 28px) bottom /
599
+ 100% 48px no-repeat local,
600
+ radial-gradient(
601
+ farthest-side at 50% 100%,
602
+ var(--scroll-shadow),
603
+ transparent
604
+ )
605
+ left 0 bottom calc(var(--scroll-shadow-offset) * -1) / 100% 12px
606
+ no-repeat scroll;
607
+ animation: scroll-shadow-slide-RlHcf linear both;
608
+ animation-range: calc(100% - 48px) 100%;
609
+ animation-timeline: scroll(self);
610
+ }
611
+
612
+ /*
613
+ * Phone widths, where the small topbar shows (DisplaySwitch's default "xs"
614
+ * and "sm" breakpoints). The modal fills the screen rather than floating at a
615
+ * desktop height, with tighter padding inside. The search field, product
616
+ * select and results panel read the padding from --product-search-padding.
617
+ * Result rows and headings pad themselves by --product-search-row-inset,
618
+ * narrower here so the highlight sits closer to the content, and the panel's
619
+ * sides take that off to line their images and text up with the search icon.
620
+ */
621
+ @media (max-width: 599px) {
622
+ .modal-NR3TO {
623
+ --product-search-padding: var(--t-spacing-2);
624
+ --product-search-row-inset: var(--t-spacing-1);
625
+ --product-search-results-inset: calc(
626
+ var(--product-search-padding) - var(--product-search-row-inset)
627
+ );
628
+
629
+ height: calc(100vh - var(--t-spacing-3) * 2);
630
+ padding-block-start: var(--product-search-padding);
631
+ }
632
+
633
+ @supports (height: 100dvh) {
634
+ .modal-NR3TO {
635
+ height: calc(100dvh - var(--t-spacing-3) * 2);
636
+ }
637
+ }
638
+
639
+ /* Section headings pad themselves, so they start just under the select. */
640
+ .panel-HlF7S {
641
+ padding-block-start: 0;
642
+ }
643
+
644
+ /*
645
+ * Tapestry only takes a class for the dialog, so its overlay and frame are
646
+ * reached through it. Top and bottom margins narrow to 8px; the sides keep
647
+ * 16px of backdrop to tap. The frame fills the dynamic viewport, which
648
+ * follows Safari's toolbars as they show and hide. The dialog stretches to
649
+ * fill the frame.
650
+ *
651
+ * Mobile Safari draws the keyboard over the page without shrinking 100dvh,
652
+ * so while it's open the frame sizes to the visible viewport instead. A
653
+ * bottom margin the keyboard's height keeps the overlay's centering above
654
+ * it.
655
+ */
656
+ @supports selector(:has(*)) {
657
+ .tds-modal-overlay:has(.modal-NR3TO) {
658
+ --tds-modal-min-margin-block: var(--t-spacing-1);
659
+ }
660
+
661
+ .tds-modal-frame:has(> .modal-NR3TO) {
662
+ --tds-modal-edge-margin-inline: var(--t-spacing-2);
663
+
664
+ height: calc(100vh - var(--t-spacing-1) * 2);
665
+ height: calc(
666
+ var(--visual-viewport-height, 100dvh) - var(--t-spacing-1) * 2
667
+ );
668
+ margin-block-end: calc(100dvh - var(--visual-viewport-height, 100dvh));
669
+ }
670
+
671
+ .modal-NR3TO {
672
+ height: auto;
673
+ max-height: none;
674
+ }
675
+ }
676
+ }
677
+
678
+ .container-YDdM1 {
679
+ display: flex;
680
+ flex-shrink: 0;
681
+ flex-wrap: wrap;
682
+ gap: var(--t-spacing-1);
683
+ padding: var(--t-spacing-1) var(--t-spacing-1-half);
684
+ margin: 0;
685
+ list-style: none;
686
+ border-top: var(--t-border-width) solid var(--t-border-color);
687
+ }
688
+
689
+ .hint-017Rd {
690
+ display: flex;
691
+ flex-shrink: 0;
692
+ align-items: center;
693
+ gap: var(--t-spacing-half);
694
+ padding: var(--t-spacing-half) var(--t-spacing-1);
695
+ border-radius: var(--t-border-radius-lg);
696
+ color: var(--t-text-color-placeholder);
697
+ font-size: var(--t-font-size-sm);
698
+ }
699
+
700
+ .keycap-ENJM2 {
701
+ --keycap-size: 24px;
702
+ --keycap-padding: 4px;
703
+
704
+ display: inline-flex;
705
+ align-items: center;
706
+ justify-content: center;
707
+ width: var(--keycap-size);
708
+ height: var(--keycap-size);
709
+ padding: var(--keycap-padding);
710
+ margin-block: var(--t-spacing-fourth);
711
+ background-color: var(--t-fill-color-neutral-070);
712
+ color: var(--t-text-color-placeholder);
713
+ font-family: inherit;
714
+ font-size: calc(var(--keycap-size) - var(--keycap-padding) * 2);
715
+ font-weight: var(--t-font-weight-semibold);
716
+ border-radius: var(--t-border-radius-md);
717
+ }
718
+
719
+ .keycap-ENJM2 svg {
720
+ flex-shrink: 0;
721
+ width: 1.4em;
722
+ width: 2cap;
723
+ height: 1.4em;
724
+ height: 2cap;
725
+ stroke-width: 2;
726
+ }
727
+
728
+ .labels-GHPqL {
729
+ display: grid;
730
+ overflow: clip;
731
+ }
732
+
733
+ .labels-GHPqL > * {
734
+ grid-area: 1 / 1;
735
+ }
736
+
737
+ @property --copied {
738
+ syntax: "<percentage>";
739
+ inherits: true;
740
+ initial-value: 0%;
741
+ }
742
+
743
+ .copied-DUFa1 {
744
+ position: relative;
745
+ background-color: color-mix(
746
+ in srgb,
747
+ var(--t-fill-color-status-success-ghost) calc(var(--copied) * 0.3),
748
+ transparent
749
+ );
750
+ animation:
751
+ copied-enter-k4P4y var(--copied-enter) var(--t-ease-out) forwards,
752
+ copied-exit-oCDAu var(--copied-exit) var(--t-ease-out)
753
+ calc(var(--copied-enter) + var(--copied-active)) forwards;
754
+ }
755
+
756
+ .copied-DUFa1 .keycap-ENJM2 {
757
+ animation: copied-keypress-znahZ 350ms cubic-bezier(0.34, 1.56, 0.64, 1);
758
+ }
759
+
760
+ .copied-DUFa1 .labels-GHPqL > :first-child {
761
+ translate: 0 calc(var(--copied) * -1);
762
+ }
763
+
764
+ .copied-DUFa1 .labels-GHPqL > :last-child {
765
+ translate: 0 calc(100% - var(--copied));
766
+ }
767
+
768
+ .copied-DUFa1::after {
769
+ content: "";
770
+ position: absolute;
771
+ inset: 0;
772
+ border-radius: inherit;
773
+ pointer-events: none;
774
+ border: 2px solid var(--t-border-color-status-success);
775
+ opacity: var(--copied);
776
+ }
777
+
778
+ @keyframes copied-enter-k4P4y {
779
+ to { --copied: 100% }
780
+ }
781
+
782
+ @keyframes copied-exit-oCDAu {
783
+ from { --copied: 100% }
784
+ to { --copied: 0% }
785
+ }
786
+
787
+ @keyframes copied-keypress-znahZ {
788
+ 20%,
789
+ 26% {
790
+ translate: 0 1px;
791
+ scale: 0.88;
792
+ }
793
+ }
794
+
795
+ @media (prefers-reduced-motion: reduce) {
796
+ .copied-DUFa1 {
797
+ --copied: 100%;
798
+ animation: none;
799
+ }
800
+
801
+ .copied-DUFa1 .keycap-ENJM2 {
802
+ animation: none;
803
+ }
804
+ }
805
+
806
+ .icon-XKLvN {
807
+ position: relative;
808
+ display: block;
809
+ flex-shrink: 0;
810
+ }
811
+
812
+ .icon-XKLvN::before {
813
+ content: "";
814
+ position: absolute;
815
+ inset: 12.5%;
816
+ background-color: hsl(0, 0%, 100%);
817
+ border-radius: 20%;
818
+ }
819
+
820
+ .squircle-JCHr6 {
821
+ position: absolute;
822
+ inset: 0;
823
+ mask-size: 100%;
824
+ }
825
+
826
+ .picker-iuzzj {
827
+ flex-shrink: 0;
828
+ padding: 0 var(--product-search-padding, var(--t-spacing-3)) var(--t-spacing-1);
829
+ }
830
+
831
+ .option--7LXg {
832
+ display: inline-flex;
833
+ align-items: center;
834
+ gap: var(--t-spacing-1);
835
+ }
836
+
837
+ .tablist-7ASvc {
838
+ display: flex;
839
+ flex-shrink: 0;
840
+ gap: var(--t-spacing-half);
841
+ padding-inline: var(--t-spacing-2);
842
+ padding-top: var(--t-spacing-2);
843
+ border-bottom: var(--t-border-width) solid var(--t-border-color);
844
+ }
845
+
846
+ .tab-dz8ki {
847
+ position: relative;
848
+ display: inline-flex;
849
+ align-items: center;
850
+ justify-content: center;
851
+ gap: var(--t-spacing-1);
852
+ min-width: 48px;
853
+ height: 40px;
854
+ padding: 0 var(--t-spacing-2);
855
+ margin-bottom: calc(var(--t-border-width) * -1);
856
+ background-color: var(--t-fill-color-neutral-070);
857
+ color: var(--t-text-color-secondary);
858
+ font-size: var(--t-font-size-md);
859
+ border: var(--t-border-width) solid transparent;
860
+ border-bottom-color: var(--t-border-color);
861
+ border-radius: var(--t-border-radius-md) var(--t-border-radius-md) 0 0;
862
+ cursor: pointer;
863
+ }
864
+
865
+ .tab-dz8ki:hover {
866
+ background-color: var(--t-fill-color-neutral-060);
867
+ }
868
+
869
+ .tab-dz8ki:focus-visible {
870
+ z-index: 1;
871
+ outline: none;
872
+ }
873
+
874
+ .tab-dz8ki:focus-visible::after {
875
+ content: "";
876
+ position: absolute;
877
+ /* Measured from inside the tab's border, so step out past it too. */
878
+ inset: calc((var(--t-focus-ring-offset) + var(--t-border-width)) * -1);
879
+ border-radius: calc(var(--t-border-radius-md) + var(--t-focus-ring-offset));
880
+ box-shadow: 0 0 0 var(--t-focus-ring-width) var(--t-focus-ring-color);
881
+ pointer-events: none;
882
+ }
883
+
884
+ .tab-dz8ki[aria-selected="true"] {
885
+ background-color: var(--t-surface-color-card);
886
+ border-color: var(--t-border-color);
887
+ border-bottom-color: var(--t-surface-color-card);
888
+ cursor: default;
889
+ }
890
+
891
+ .blank_state-wMOWN {
892
+ padding-block: var(--t-spacing-5);
893
+ text-align: center;
894
+ }
895
+ .blank_state-wMOWN h2 {
896
+ color: var(--t-text-color-headline);
897
+ font-size: var(--t-font-size-xl);
898
+ font-weight: var(--t-font-weight-semibold);
899
+ margin: 0;
900
+ }
901
+ .blank_state-wMOWN p {
902
+ color: var(--t-text-color-secondary);
903
+ font-size: var(--t-font-size-md);
904
+ margin: 0;
905
+ }
906
+
907
+ .image-uy0Fd {
908
+ color: var(--t-fill-color-status-info-ghost);
909
+ }
910
+ .image-uy0Fd svg {
911
+ width: 90vw;
912
+ height: auto;
913
+ }
914
+ @media screen and (min-width: 600px) {
915
+ .image-uy0Fd svg {
916
+ width: 18vw;
917
+ }
918
+ }
919
+ .result-Thq2C {
920
+ display: flex;
921
+ align-items: center;
922
+ gap: 12px;
923
+ min-height: 56px;
924
+ padding: var(--t-spacing-1) var(--product-search-row-inset, 12px);
925
+ color: var(--t-text-color);
926
+ text-decoration: none;
927
+ border-radius: var(--t-border-radius-lg);
928
+ /* Taps get the highlight below instead of the browser's grey flash. */
929
+ -webkit-tap-highlight-color: transparent;
930
+ }
931
+
932
+ .result-Thq2C:hover,
933
+ .result-Thq2C:focus,
934
+ .result-Thq2C:active,
935
+ .result-Thq2C:visited {
936
+ color: var(--t-text-color);
937
+ text-decoration: none;
938
+ }
939
+
940
+ .result-Thq2C[aria-selected="true"],
941
+ .result-Thq2C:active {
942
+ background-color: var(--t-fill-color-button-interaction-ghost-hover);
943
+ }
944
+
945
+ .title-KYUEn {
946
+ flex-shrink: 0;
947
+ max-width: 60%;
948
+ overflow: hidden;
949
+ font-size: var(--t-font-size-lg);
950
+ text-overflow: ellipsis;
951
+ white-space: nowrap;
952
+ }
953
+
954
+ .subtitle-R2haq {
955
+ min-width: 0;
956
+ overflow: hidden;
957
+ color: var(--t-text-color-secondary);
958
+ font-size: var(--t-font-size-sm);
959
+ text-overflow: ellipsis;
960
+ white-space: nowrap;
961
+ }
962
+
963
+ .image-KVDor {
964
+ --result-image-size: 32px;
965
+
966
+ position: relative;
967
+ flex-shrink: 0;
968
+ width: var(--result-image-size);
969
+ height: var(--result-image-size);
970
+ }
971
+
972
+ .avatar-6Gh62,
973
+ .photo-FZR3Q {
974
+ display: block;
975
+ width: 100%;
976
+ height: 100%;
977
+ object-fit: cover;
978
+ }
979
+
980
+ .avatar-6Gh62 {
981
+ border-radius: 50%;
982
+ }
983
+
984
+ .photo-FZR3Q {
985
+ border-radius: var(--t-border-radius-md);
986
+ }
987
+
988
+ .badge-trUKt {
989
+ position: absolute;
990
+ right: -4px;
991
+ bottom: -4px;
992
+ filter: drop-shadow(0 1px 1px var(--t-fill-color-transparency-dark-static-010));
993
+ }
994
+
995
+ /*
996
+ * Too narrow for the title and meta to share a line, as on a phone, so they
997
+ * stack beside a smaller image.
998
+ */
999
+ @container (max-width: 480px) {
1000
+ .result-Thq2C {
1001
+ display: grid;
1002
+ grid-template-columns: auto minmax(0, 1fr);
1003
+ align-content: center;
1004
+ gap: 0 12px;
1005
+ }
1006
+
1007
+ .image-KVDor {
1008
+ --result-image-size: 28px;
1009
+
1010
+ grid-row: span 2;
1011
+ align-self: center;
1012
+ }
1013
+
1014
+ .title-KYUEn {
1015
+ max-width: none;
1016
+ }
1017
+ }
1018
+
1019
+ .message-1-PP- {
1020
+ margin: 0;
1021
+ padding-block: var(--t-spacing-5);
1022
+ color: var(--t-text-color-secondary);
1023
+ text-align: center;
1024
+ }
1025
+
1026
+ .heading-LioUF {
1027
+ padding: var(--t-spacing-1) var(--product-search-row-inset, 12px);
1028
+ color: var(--t-text-color-secondary);
1029
+ font-size: var(--t-font-size-sm);
1030
+ }
1031
+
1032
+ .heading-LioUF:not(:first-child) {
1033
+ margin-top: var(--t-spacing-2);
1034
+ }
1035
+
1036
+ /*
1037
+ * The field is a box of its own, so keyboard focus can ring it like an input.
1038
+ * Padding all around gives the ring room, and the row's margins take the
1039
+ * same amount off the modal's spacing, so the icon and text stay where they
1040
+ * were.
1041
+ */
1042
+ .row-5P7UQ {
1043
+ --header-inset: var(--t-spacing-1);
1044
+
1045
+ display: flex;
1046
+ flex-shrink: 0;
1047
+ align-items: center;
1048
+ gap: var(--t-spacing-1);
1049
+ margin: calc(var(--header-inset) * -1)
1050
+ calc(
1051
+ var(--product-search-padding, var(--t-spacing-3)) - var(--header-inset)
1052
+ )
1053
+ calc(var(--t-spacing-1-half) - var(--header-inset));
1054
+ }
1055
+
1056
+ .header-sXEyG {
1057
+ display: flex;
1058
+ flex: 1;
1059
+ align-items: center;
1060
+ gap: var(--t-spacing-1);
1061
+ min-width: 0;
1062
+ padding: var(--header-inset);
1063
+ border-radius: var(--t-border-radius-lg);
1064
+ outline: var(--t-focus-ring-width) solid transparent;
1065
+ cursor: text;
1066
+ transition: outline-color var(--t-duration-200) var(--t-ease-in-out);
1067
+ }
1068
+
1069
+ /* Only from the keyboard, since a click or tap already shows where it is. */
1070
+ .header-sXEyG:has([data-focus-visible]) {
1071
+ outline-color: var(--t-focus-ring-color);
1072
+ }
1073
+
1074
+ /* A 48px tap target around the 32px button, like the small topbar's. */
1075
+ .closeButton-rPJJV {
1076
+ position: relative;
1077
+ flex-shrink: 0;
1078
+ }
1079
+
1080
+ .closeButton-rPJJV::before {
1081
+ position: absolute;
1082
+ inset: calc((var(--t-container-size-xl) - var(--t-container-size-md)) / -2);
1083
+ content: "";
1084
+ }
1085
+
1086
+ .input-YQkTC {
1087
+ flex: 1;
1088
+ min-width: 0;
1089
+ padding: 0;
1090
+ background: none;
1091
+ color: var(--t-text-color);
1092
+ font: inherit;
1093
+ font-size: var(--t-font-size-xl);
1094
+ border: 0;
1095
+ outline: none;
1096
+ }
1097
+
1098
+ .input-YQkTC::placeholder {
1099
+ color: var(--t-text-color-placeholder);
1100
+ }
1101
+
1102
+ .input-YQkTC::-webkit-search-cancel-button {
1103
+ appearance: none;
1104
+ }
1105
+
1106
+ .clearButton-9Yh9w {
1107
+ --clear-button-size: 20px;
1108
+
1109
+ display: inline-flex;
1110
+ align-items: center;
1111
+ justify-content: center;
1112
+ flex-shrink: 0;
1113
+ width: var(--clear-button-size);
1114
+ height: var(--clear-button-size);
1115
+ padding: 0;
1116
+ background: var(--t-fill-color-neutral-030);
1117
+ color: #fff;
1118
+ border: 0;
1119
+ border-radius: var(--t-border-radius-round);
1120
+ cursor: pointer;
1121
+ transition: var(--topbar-slight-transition-background);
1122
+ }
1123
+
1124
+ .clearButton-9Yh9w:hover {
1125
+ background-color: var(--t-fill-color-neutral-040);
1126
+ }
1127
+
1128
+ .clearButton-9Yh9w svg {
1129
+ height: calc(var(--clear-button-size) * 0.65);
1130
+ width: calc(var(--clear-button-size) * 0.65);
1131
+ }
1132
+
1133
+ .spinner-b5tlz {
1134
+ --spinner-size: 54px;
1135
+ --spinner-track-width: 6px;
1136
+ --spinner-track-color: var(--t-border-color-dim);
1137
+ --spinner-color: var(--t-border-color-status-info);
1138
+
1139
+ display: inline-block;
1140
+ box-sizing: border-box;
1141
+ width: var(--spinner-size);
1142
+ height: var(--spinner-size);
1143
+ border: var(--spinner-track-width) solid var(--spinner-track-color);
1144
+ border-bottom-color: var(--spinner-color);
1145
+ border-radius: 50%;
1146
+ animation: rotation-q2xiP .75s linear infinite;
1147
+ }
1148
+
1149
+ @keyframes rotation-q2xiP {
1150
+ to {
1151
+ transform: rotate(1turn);
1152
+ }
1153
+ }
533
1154
  .route--8BWe {
534
1155
  font-size: var(--topbar-nav-link-font-size);
535
1156
  font-family: inherit;
@@ -576,6 +1197,9 @@ Caused by products overriding .topbar-wrap’s z-index.
576
1197
  }
577
1198
 
578
1199
  .trigger-wrap-Jd-KR {
1200
+ /* Lets the trigger shrink, truncating the org name, when the nav runs out
1201
+ of room */
1202
+ min-width: 0;
579
1203
  margin-left: var(--t-spacing-1);
580
1204
  position: relative;
581
1205
  white-space: nowrap;
@@ -591,6 +1215,7 @@ Caused by products overriding .topbar-wrap’s z-index.
591
1215
  border: var(--t-border-width) solid var(--topbar-nav-link-border-color-active);
592
1216
  border-radius: var(--topbar-nav-link-border-radius);
593
1217
  min-width: var(--t-container-size-md);
1218
+ max-width: 100%;
594
1219
  transition: var(--topbar-nav-link-transition);
595
1220
  display: flex;
596
1221
  align-items: center;
@@ -601,6 +1226,7 @@ Caused by products overriding .topbar-wrap’s z-index.
601
1226
  }
602
1227
 
603
1228
  .trigger-WgRT5 svg {
1229
+ flex-shrink: 0;
604
1230
  transition: transform var(--topbar-slight-transition);
605
1231
  /* Negative margin ensures button is a circle when orgname isn’t visible */
606
1232
  margin-left: calc(var(--t-spacing-1) * -1);
@@ -915,13 +1541,35 @@ Caused by products overriding .topbar-wrap’s z-index.
915
1541
  background-color: var(--t-fill-color-button-interaction-outline-active);
916
1542
  }
917
1543
 
1544
+ /*
1545
+ * Spaces the header's buttons on the right. Each is the same touch target;
1546
+ * the padding keeps the avatar, and the title's width, where they were
1547
+ * before search joined it.
1548
+ */
1549
+ .actions-INQ7- {
1550
+ display: flex;
1551
+ flex-shrink: 0;
1552
+ align-items: center;
1553
+ padding-inline: var(--t-spacing-1-half) var(--t-spacing-1);
1554
+ }
1555
+
918
1556
  .profile-button-a2WO2 {
1557
+ display: flex;
1558
+ align-items: center;
1559
+ justify-content: center;
1560
+ width: var(--t-container-size-xl);
1561
+ height: var(--t-container-size-xl);
1562
+ padding: 0;
919
1563
  background-color: transparent;
920
1564
  border-width: 0;
921
- padding: var(--t-spacing-2);
922
1565
  appearance: none;
923
1566
  }
924
1567
 
1568
+ /* Centers the avatar in its target, without its own leading margin. */
1569
+ .profile-button-a2WO2 > div {
1570
+ margin-left: 0;
1571
+ }
1572
+
925
1573
  .debug-pco-resource-sLteM {
926
1574
  display: flex;
927
1575
  flex-direction: column;