viveworker 0.6.3 → 0.6.4

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/web/app.css CHANGED
@@ -643,6 +643,22 @@ code {
643
643
  color: rgba(190, 160, 255, 0.92);
644
644
  }
645
645
 
646
+ .settings-compose-badge--read {
647
+ background: rgba(91, 203, 255, 0.16);
648
+ color: rgba(162, 230, 255, 0.95);
649
+ }
650
+
651
+ .settings-compose-badge--write {
652
+ background: rgba(112, 229, 164, 0.16);
653
+ color: rgba(176, 244, 207, 0.94);
654
+ }
655
+
656
+ .settings-compose-badge--lane {
657
+ background: rgba(255, 255, 255, 0.05);
658
+ color: rgba(220, 232, 240, 0.9);
659
+ box-shadow: inset 0 0 0 1px rgba(156, 181, 197, 0.12);
660
+ }
661
+
646
662
  .settings-compose-entry {
647
663
  display: flex;
648
664
  flex-direction: column;
@@ -689,6 +705,18 @@ code {
689
705
  box-shadow: inset 0 0 0 1px rgba(121, 196, 255, 0.14);
690
706
  }
691
707
 
708
+ .settings-icon-entry__icon--read {
709
+ color: rgba(91, 203, 255, 0.92);
710
+ background: rgba(91, 203, 255, 0.11);
711
+ box-shadow: inset 0 0 0 1px rgba(91, 203, 255, 0.14);
712
+ }
713
+
714
+ .settings-icon-entry__icon--write {
715
+ color: rgba(112, 229, 164, 0.92);
716
+ background: rgba(112, 229, 164, 0.11);
717
+ box-shadow: inset 0 0 0 1px rgba(112, 229, 164, 0.16);
718
+ }
719
+
692
720
  .settings-icon-entry__icon svg,
693
721
  .settings-share-file-entry__icon svg {
694
722
  width: 0.95rem;
@@ -722,6 +750,77 @@ code {
722
750
  margin-left: auto;
723
751
  }
724
752
 
753
+ .settings-icon-entry__title-row .settings-compose-badge + .settings-compose-badge,
754
+ .settings-share-file-entry__title-row .settings-compose-badge + .settings-compose-badge {
755
+ margin-left: 0;
756
+ }
757
+
758
+ .settings-autopilot-entry {
759
+ width: 100%;
760
+ border: 0;
761
+ background: transparent;
762
+ color: inherit;
763
+ text-align: left;
764
+ cursor: pointer;
765
+ -webkit-tap-highlight-color: transparent;
766
+ }
767
+
768
+ .settings-autopilot-entry:active {
769
+ background: rgba(255, 255, 255, 0.035);
770
+ }
771
+
772
+ .settings-autopilot-entry__meta,
773
+ .settings-autopilot-entry__thread {
774
+ color: rgba(231, 243, 250, 0.62);
775
+ font-size: 0.79rem;
776
+ line-height: 1.4;
777
+ }
778
+
779
+ .settings-autopilot-entry__thread {
780
+ color: rgba(231, 243, 250, 0.48);
781
+ }
782
+
783
+ .settings-suggestion-card {
784
+ display: grid;
785
+ gap: 0.72rem;
786
+ padding: 0.95rem 1rem;
787
+ border-radius: 18px;
788
+ background: rgba(255, 255, 255, 0.035);
789
+ border: 1px solid rgba(156, 181, 197, 0.1);
790
+ }
791
+
792
+ .settings-suggestion-card__header {
793
+ display: grid;
794
+ grid-template-columns: minmax(0, 1fr) auto;
795
+ gap: 0.7rem;
796
+ align-items: start;
797
+ }
798
+
799
+ .settings-suggestion-card__title,
800
+ .settings-suggestion-card__body {
801
+ margin: 0;
802
+ }
803
+
804
+ .settings-suggestion-card__title {
805
+ font-size: 0.95rem;
806
+ line-height: 1.35;
807
+ color: var(--text);
808
+ }
809
+
810
+ .settings-suggestion-card__body {
811
+ color: var(--muted);
812
+ font-size: 0.84rem;
813
+ line-height: 1.5;
814
+ }
815
+
816
+ .settings-suggestion-card__action {
817
+ min-height: 2.2rem;
818
+ padding: 0.55rem 0.85rem;
819
+ border-radius: 14px;
820
+ font-size: 0.84rem;
821
+ white-space: nowrap;
822
+ }
823
+
725
824
  .settings-compose-entry + .settings-compose-entry {
726
825
  border-top: 1px solid rgba(255, 255, 255, 0.06);
727
826
  }
@@ -1542,6 +1641,54 @@ code {
1542
1641
  flex: 0 0 auto;
1543
1642
  }
1544
1643
 
1644
+ /* Skeleton shimmer for the Code tab while /api/inbox/diff is in flight.
1645
+ Reuses the detail-loading-pulse keyframes so we don't duplicate the
1646
+ animation. Cards are non-interactive (no cursor change, hidden from
1647
+ assistive tech via aria-hidden on the card). */
1648
+ .diff-entry--skeleton {
1649
+ cursor: default;
1650
+ gap: 0.6rem;
1651
+ pointer-events: none;
1652
+ }
1653
+
1654
+ .diff-skeleton-line,
1655
+ .diff-skeleton-chip {
1656
+ display: block;
1657
+ height: 0.78rem;
1658
+ border-radius: 999px;
1659
+ background:
1660
+ linear-gradient(90deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08)),
1661
+ rgba(255, 255, 255, 0.08);
1662
+ background-size: 200% 100%;
1663
+ animation: detail-loading-pulse 1.25s ease-in-out infinite;
1664
+ }
1665
+
1666
+ .diff-skeleton-line--thread {
1667
+ width: 42%;
1668
+ height: 0.7rem;
1669
+ }
1670
+
1671
+ .diff-skeleton-line--time {
1672
+ width: 3.6rem;
1673
+ height: 0.7rem;
1674
+ justify-self: end;
1675
+ }
1676
+
1677
+ .diff-skeleton-line--title {
1678
+ width: 78%;
1679
+ height: 0.96rem;
1680
+ }
1681
+
1682
+ .diff-skeleton-chip {
1683
+ width: 5.2rem;
1684
+ height: 1.1rem;
1685
+ border-radius: 10px;
1686
+ }
1687
+
1688
+ .diff-skeleton-chip--narrow {
1689
+ width: 3.4rem;
1690
+ }
1691
+
1545
1692
  .timeline-entry__meta {
1546
1693
  display: grid;
1547
1694
  grid-template-columns: minmax(0, 1fr) auto;
@@ -2043,6 +2190,14 @@ code {
2043
2190
  rgba(21, 28, 33, 0.92);
2044
2191
  }
2045
2192
 
2193
+ .detail-card--autopilot {
2194
+ margin-top: 0.24rem;
2195
+ gap: 0.32rem;
2196
+ background:
2197
+ linear-gradient(180deg, rgba(101, 207, 159, 0.10), rgba(255, 255, 255, 0.02)),
2198
+ rgba(14, 24, 27, 0.92);
2199
+ }
2200
+
2046
2201
  .detail-card--images {
2047
2202
  margin-top: 0.24rem;
2048
2203
  gap: 0;
@@ -2542,6 +2697,13 @@ code {
2542
2697
  line-height: 1.4;
2543
2698
  }
2544
2699
 
2700
+ .detail-autopilot-copy {
2701
+ margin: 0;
2702
+ color: rgba(243, 251, 255, 0.88);
2703
+ font-size: 0.92rem;
2704
+ line-height: 1.5;
2705
+ }
2706
+
2545
2707
  .detail-body--context {
2546
2708
  color: rgba(243, 251, 255, 0.88);
2547
2709
  }
@@ -2912,9 +3074,9 @@ code {
2912
3074
 
2913
3075
  .reply-mode-switch {
2914
3076
  display: grid;
2915
- grid-template-columns: auto auto minmax(0, 1fr);
3077
+ grid-template-columns: auto minmax(0, 1fr);
2916
3078
  gap: 0.78rem;
2917
- align-items: center;
3079
+ align-items: start;
2918
3080
  padding: 0.82rem 0.92rem;
2919
3081
  border: 1px solid rgba(156, 181, 197, 0.1);
2920
3082
  border-radius: 18px;
@@ -2938,6 +3100,7 @@ code {
2938
3100
  display: flex;
2939
3101
  align-items: center;
2940
3102
  transition: background 160ms ease, border-color 160ms ease;
3103
+ margin-top: 0.14rem;
2941
3104
  }
2942
3105
 
2943
3106
  .reply-mode-switch__thumb {
@@ -2962,13 +3125,13 @@ code {
2962
3125
  .reply-mode-switch__copy {
2963
3126
  min-width: 0;
2964
3127
  display: grid;
2965
- gap: 0.16rem;
3128
+ gap: 0.22rem;
2966
3129
  }
2967
3130
 
2968
3131
  .reply-mode-switch__title {
2969
- display: flex;
2970
- align-items: center;
2971
- justify-content: space-between;
3132
+ display: grid;
3133
+ grid-template-columns: minmax(0, 1fr) auto;
3134
+ align-items: start;
2972
3135
  gap: 0.65rem;
2973
3136
  font-size: 0.94rem;
2974
3137
  font-weight: 700;
@@ -2976,10 +3139,13 @@ code {
2976
3139
  }
2977
3140
 
2978
3141
  .reply-mode-switch__state {
3142
+ display: inline-flex;
3143
+ align-items: center;
2979
3144
  color: rgba(121, 196, 255, 0.92);
2980
3145
  font-size: 0.78rem;
2981
3146
  letter-spacing: 0.04em;
2982
3147
  text-transform: uppercase;
3148
+ white-space: nowrap;
2983
3149
  }
2984
3150
 
2985
3151
  .reply-mode-switch__hint {
@@ -3007,6 +3173,56 @@ code {
3007
3173
  grid-row: 1;
3008
3174
  }
3009
3175
 
3176
+ .settings-list--toggle-group {
3177
+ display: grid;
3178
+ gap: 0;
3179
+ }
3180
+
3181
+ .settings-list--toggle-group .reply-mode-switch--grouped {
3182
+ border: 0;
3183
+ border-radius: 0;
3184
+ background: transparent;
3185
+ padding: 0.95rem 1rem;
3186
+ }
3187
+
3188
+ .settings-list--toggle-group .reply-mode-switch--grouped + .reply-mode-switch--grouped {
3189
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
3190
+ }
3191
+
3192
+ .settings-list--toggle-group .reply-mode-switch--grouped + .settings-toggle-subhead,
3193
+ .settings-list--toggle-group .settings-toggle-subcopy + .reply-mode-switch--grouped {
3194
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
3195
+ }
3196
+
3197
+ .settings-toggle-subhead {
3198
+ display: grid;
3199
+ grid-template-columns: minmax(0, 1fr) auto;
3200
+ align-items: end;
3201
+ gap: 0.6rem;
3202
+ padding: 0.95rem 1rem 0.32rem;
3203
+ }
3204
+
3205
+ .settings-toggle-subhead__title {
3206
+ font-size: 0.9rem;
3207
+ font-weight: 700;
3208
+ line-height: 1.25;
3209
+ color: var(--text);
3210
+ }
3211
+
3212
+ .settings-toggle-subhead__state {
3213
+ color: rgba(121, 196, 255, 0.92);
3214
+ font-size: 0.78rem;
3215
+ letter-spacing: 0.04em;
3216
+ text-transform: uppercase;
3217
+ white-space: nowrap;
3218
+ }
3219
+
3220
+ .settings-toggle-subcopy {
3221
+ padding: 0 1rem 0.78rem;
3222
+ font-size: 0.83rem;
3223
+ line-height: 1.45;
3224
+ }
3225
+
3010
3226
  .reply-mode-switch__input:checked ~ .reply-mode-switch--settings__toggle .reply-mode-switch__track {
3011
3227
  background: rgba(67, 160, 255, 0.28);
3012
3228
  border-color: rgba(121, 196, 255, 0.34);
@@ -3834,8 +4050,11 @@ button:disabled {
3834
4050
  }
3835
4051
  }
3836
4052
 
3837
- /* Action button busy/loading state */
3838
- button[data-action-url].is-loading {
4053
+ /* Async button busy/loading state. Applies to any button marked
4054
+ .is-loading / aria-busy (approval actions, push notification toggle,
4055
+ etc.) so the tap gets immediate visual feedback while the async
4056
+ work (Web Push subscribe, server POST, …) is in flight. */
4057
+ button.is-loading {
3839
4058
  display: inline-flex;
3840
4059
  align-items: center;
3841
4060
  justify-content: center;
@@ -3843,7 +4062,7 @@ button[data-action-url].is-loading {
3843
4062
  cursor: wait;
3844
4063
  opacity: 0.9;
3845
4064
  }
3846
- button[data-action-url][aria-busy="true"]:not(.is-loading) {
4065
+ button[aria-busy="true"]:not(.is-loading) {
3847
4066
  opacity: 0.5;
3848
4067
  cursor: not-allowed;
3849
4068
  }