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/README.md +23 -0
- package/package.json +1 -1
- package/scripts/viveworker-bridge.mjs +1853 -121
- package/web/app.css +228 -9
- package/web/app.js +878 -26
- package/web/i18n.js +114 -0
- package/web/sw.js +33 -15
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
|
|
3077
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
2916
3078
|
gap: 0.78rem;
|
|
2917
|
-
align-items:
|
|
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.
|
|
3128
|
+
gap: 0.22rem;
|
|
2966
3129
|
}
|
|
2967
3130
|
|
|
2968
3131
|
.reply-mode-switch__title {
|
|
2969
|
-
display:
|
|
2970
|
-
|
|
2971
|
-
|
|
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
|
-
/*
|
|
3838
|
-
|
|
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[
|
|
4065
|
+
button[aria-busy="true"]:not(.is-loading) {
|
|
3847
4066
|
opacity: 0.5;
|
|
3848
4067
|
cursor: not-allowed;
|
|
3849
4068
|
}
|