@grifhinz/logics-manager 2.8.1 → 2.9.1
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 +1 -1
- package/VERSION +1 -1
- package/clients/shared-web/media/vendor/xterm/PROVENANCE.md +31 -0
- package/clients/shared-web/media/vendor/xterm/xterm-addon-fit.js +2 -0
- package/clients/shared-web/media/vendor/xterm/xterm-addon-web-links.js +2 -0
- package/clients/shared-web/media/vendor/xterm/xterm.css +209 -0
- package/clients/shared-web/media/vendor/xterm/xterm.js +2 -0
- package/clients/viewer/browser-host.js +893 -12
- package/clients/viewer/index.html +14 -0
- package/clients/viewer/viewer.css +642 -25
- package/logics_manager/viewer.py +1119 -8
- package/package.json +1 -1
- package/pyproject.toml +4 -1
|
@@ -283,7 +283,9 @@
|
|
|
283
283
|
z-index: 60;
|
|
284
284
|
display: grid;
|
|
285
285
|
gap: 12px;
|
|
286
|
-
|
|
286
|
+
width: max-content;
|
|
287
|
+
min-width: 260px;
|
|
288
|
+
max-width: min(360px, calc(100vw - 24px));
|
|
287
289
|
padding: 10px;
|
|
288
290
|
border: 1px solid var(--vscode-panel-border, #333333);
|
|
289
291
|
border-radius: 6px;
|
|
@@ -834,7 +836,7 @@
|
|
|
834
836
|
display: grid;
|
|
835
837
|
grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
|
|
836
838
|
gap: 12px;
|
|
837
|
-
|
|
839
|
+
align-items: start;
|
|
838
840
|
}
|
|
839
841
|
|
|
840
842
|
.viewer-workspace__tree,
|
|
@@ -845,68 +847,175 @@
|
|
|
845
847
|
background: var(--vscode-editorWidget-background, #202020);
|
|
846
848
|
}
|
|
847
849
|
|
|
848
|
-
.viewer-workspace__tree {
|
|
849
|
-
overflow: auto;
|
|
850
|
-
}
|
|
851
|
-
|
|
852
850
|
.viewer-workspace__preview {
|
|
853
851
|
display: grid;
|
|
854
852
|
align-content: start;
|
|
855
853
|
gap: 10px;
|
|
856
854
|
padding: 12px;
|
|
857
|
-
overflow: auto;
|
|
858
855
|
}
|
|
859
856
|
|
|
860
857
|
.viewer-workspace__tree-header {
|
|
861
|
-
|
|
862
|
-
top: 0;
|
|
863
|
-
z-index: 1;
|
|
864
|
-
padding: 8px;
|
|
858
|
+
padding: 6px 8px;
|
|
865
859
|
border-bottom: 1px solid var(--vscode-panel-border, #333333);
|
|
866
860
|
background: var(--vscode-editorWidget-background, #202020);
|
|
867
861
|
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
868
862
|
font-size: 11px;
|
|
869
|
-
font-weight: 700;
|
|
870
863
|
overflow-wrap: anywhere;
|
|
871
864
|
}
|
|
872
865
|
|
|
866
|
+
.viewer-workspace__breadcrumb {
|
|
867
|
+
display: flex;
|
|
868
|
+
flex-wrap: wrap;
|
|
869
|
+
align-items: center;
|
|
870
|
+
gap: 2px;
|
|
871
|
+
min-width: 0;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
.viewer-workspace__crumb {
|
|
875
|
+
border: 0;
|
|
876
|
+
background: transparent;
|
|
877
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
878
|
+
font: inherit;
|
|
879
|
+
font-size: 11px;
|
|
880
|
+
padding: 2px 4px;
|
|
881
|
+
border-radius: 3px;
|
|
882
|
+
cursor: pointer;
|
|
883
|
+
max-width: 14ch;
|
|
884
|
+
overflow: hidden;
|
|
885
|
+
text-overflow: ellipsis;
|
|
886
|
+
white-space: nowrap;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
.viewer-workspace__crumb:hover {
|
|
890
|
+
color: var(--vscode-foreground, #d4d4d4);
|
|
891
|
+
background: var(--vscode-list-hoverBackground, rgb(255 255 255 / 6%));
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
.viewer-workspace__crumb:focus-visible {
|
|
895
|
+
outline: 1px solid var(--vscode-focusBorder, #007fd4);
|
|
896
|
+
outline-offset: 0;
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
.viewer-workspace__crumb.is-current {
|
|
900
|
+
color: var(--vscode-foreground, #d4d4d4);
|
|
901
|
+
font-weight: 600;
|
|
902
|
+
cursor: default;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
.viewer-workspace__crumb-sep {
|
|
906
|
+
color: var(--vscode-descriptionForeground, #888888);
|
|
907
|
+
font-size: 11px;
|
|
908
|
+
user-select: none;
|
|
909
|
+
}
|
|
910
|
+
|
|
873
911
|
.viewer-workspace__tree-list {
|
|
874
912
|
display: grid;
|
|
875
913
|
gap: 1px;
|
|
876
|
-
padding:
|
|
914
|
+
padding: 4px;
|
|
877
915
|
}
|
|
878
916
|
|
|
879
917
|
.viewer-workspace__item {
|
|
880
918
|
width: 100%;
|
|
881
919
|
min-width: 0;
|
|
882
920
|
display: grid;
|
|
883
|
-
grid-template-columns:
|
|
884
|
-
gap:
|
|
921
|
+
grid-template-columns: 16px minmax(0, 1fr);
|
|
922
|
+
gap: 6px;
|
|
885
923
|
align-items: center;
|
|
886
924
|
border: 0;
|
|
887
925
|
border-radius: 4px;
|
|
888
|
-
padding:
|
|
926
|
+
padding: 4px 6px;
|
|
889
927
|
background: transparent;
|
|
890
928
|
color: var(--vscode-foreground, #d4d4d4);
|
|
891
929
|
font: inherit;
|
|
892
930
|
font-size: 12px;
|
|
931
|
+
line-height: 1.4;
|
|
893
932
|
text-align: left;
|
|
894
933
|
cursor: pointer;
|
|
895
934
|
}
|
|
896
935
|
|
|
897
|
-
.viewer-workspace__item:hover
|
|
936
|
+
.viewer-workspace__item:hover {
|
|
937
|
+
background: var(--vscode-list-hoverBackground, rgb(255 255 255 / 6%));
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
.viewer-workspace__item:focus-visible {
|
|
941
|
+
outline: 1px solid var(--vscode-focusBorder, #007fd4);
|
|
942
|
+
outline-offset: -1px;
|
|
943
|
+
background: var(--vscode-list-focusBackground, rgb(255 255 255 / 4%));
|
|
944
|
+
}
|
|
945
|
+
|
|
898
946
|
.viewer-workspace__item.is-selected {
|
|
899
|
-
background: var(--vscode-list-
|
|
947
|
+
background: var(--vscode-list-activeSelectionBackground, #094771);
|
|
948
|
+
color: var(--vscode-list-activeSelectionForeground, #ffffff);
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
.viewer-workspace__item.is-selected .viewer-workspace__item-icon {
|
|
952
|
+
color: inherit;
|
|
900
953
|
}
|
|
901
954
|
|
|
902
955
|
.viewer-workspace__item.is-muted {
|
|
903
|
-
color: var(--vscode-descriptionForeground, #
|
|
956
|
+
color: var(--vscode-descriptionForeground, #888888);
|
|
904
957
|
cursor: default;
|
|
905
958
|
}
|
|
906
959
|
|
|
960
|
+
.viewer-workspace__item--up {
|
|
961
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
962
|
+
font-style: italic;
|
|
963
|
+
}
|
|
964
|
+
|
|
907
965
|
.viewer-workspace__item-icon {
|
|
966
|
+
color: var(--vscode-symbolIcon-folderForeground, #c5c5c5);
|
|
967
|
+
display: inline-flex;
|
|
968
|
+
align-items: center;
|
|
969
|
+
justify-content: center;
|
|
970
|
+
width: 16px;
|
|
971
|
+
height: 16px;
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
.viewer-workspace__item--file .viewer-workspace__item-icon {
|
|
975
|
+
color: var(--vscode-symbolIcon-fileForeground, #9cdcfe);
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
.viewer-workspace__item.is-muted .viewer-workspace__item-icon {
|
|
979
|
+
color: var(--vscode-descriptionForeground, #666666);
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
.viewer-workspace__item-icon svg {
|
|
983
|
+
width: 14px;
|
|
984
|
+
height: 14px;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
.viewer-workspace__placeholder {
|
|
988
|
+
display: flex;
|
|
989
|
+
align-items: center;
|
|
990
|
+
gap: 8px;
|
|
991
|
+
padding: 10px 12px;
|
|
908
992
|
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
909
|
-
|
|
993
|
+
font-size: 12px;
|
|
994
|
+
border: 1px dashed var(--vscode-panel-border, #333333);
|
|
995
|
+
border-radius: 4px;
|
|
996
|
+
margin: 6px;
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
.viewer-workspace__placeholder--warn {
|
|
1000
|
+
border-color: var(--vscode-editorWarning-foreground, #cca700);
|
|
1001
|
+
color: var(--vscode-editorWarning-foreground, #cca700);
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
.viewer-workspace__placeholder--unavailable {
|
|
1005
|
+
border-color: var(--vscode-editorError-foreground, #f48771);
|
|
1006
|
+
color: var(--vscode-editorError-foreground, #f48771);
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
.viewer-workspace__placeholder-icon {
|
|
1010
|
+
display: inline-flex;
|
|
1011
|
+
width: 16px;
|
|
1012
|
+
height: 16px;
|
|
1013
|
+
align-items: center;
|
|
1014
|
+
justify-content: center;
|
|
1015
|
+
font-weight: 700;
|
|
1016
|
+
border-radius: 50%;
|
|
1017
|
+
background: rgb(255 255 255 / 6%);
|
|
1018
|
+
font-size: 11px;
|
|
910
1019
|
}
|
|
911
1020
|
|
|
912
1021
|
.viewer-workspace__item-name {
|
|
@@ -943,8 +1052,6 @@
|
|
|
943
1052
|
}
|
|
944
1053
|
|
|
945
1054
|
.viewer-workspace__code {
|
|
946
|
-
max-height: min(70vh, 760px);
|
|
947
|
-
overflow: auto;
|
|
948
1055
|
margin: 0;
|
|
949
1056
|
padding: 12px;
|
|
950
1057
|
border: 1px solid var(--vscode-panel-border, #333333);
|
|
@@ -957,6 +1064,345 @@
|
|
|
957
1064
|
overflow-wrap: anywhere;
|
|
958
1065
|
}
|
|
959
1066
|
|
|
1067
|
+
.viewer-workshop {
|
|
1068
|
+
display: grid;
|
|
1069
|
+
gap: 10px;
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
.viewer-workshop__panel {
|
|
1073
|
+
border: 1px solid var(--vscode-panel-border, #333333);
|
|
1074
|
+
border-radius: 6px;
|
|
1075
|
+
background: var(--vscode-editorWidget-background, #202020);
|
|
1076
|
+
padding: 8px;
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
.viewer-workshop__panel--terminals {
|
|
1080
|
+
display: flex;
|
|
1081
|
+
align-items: center;
|
|
1082
|
+
justify-content: center;
|
|
1083
|
+
padding: 16px;
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
.viewer-workshop__panel--terminals .viewer-workspace__placeholder {
|
|
1087
|
+
margin: 0;
|
|
1088
|
+
max-width: 480px;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
.viewer-workshop__panel--terminals-active {
|
|
1092
|
+
display: grid;
|
|
1093
|
+
grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
|
|
1094
|
+
gap: 8px;
|
|
1095
|
+
padding: 0;
|
|
1096
|
+
background: var(--vscode-editorWidget-background, #202020);
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
.viewer-workshop__terminal-list {
|
|
1100
|
+
border-right: 1px solid var(--vscode-panel-border, #333333);
|
|
1101
|
+
padding: 6px;
|
|
1102
|
+
display: flex;
|
|
1103
|
+
flex-direction: column;
|
|
1104
|
+
gap: 6px;
|
|
1105
|
+
min-height: 360px;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
.viewer-workshop__terminal-list-header {
|
|
1109
|
+
display: flex;
|
|
1110
|
+
align-items: center;
|
|
1111
|
+
justify-content: space-between;
|
|
1112
|
+
gap: 4px;
|
|
1113
|
+
font-size: 11px;
|
|
1114
|
+
font-weight: 700;
|
|
1115
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
1116
|
+
text-transform: uppercase;
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
.viewer-workshop__terminal-new {
|
|
1120
|
+
font-size: 11px;
|
|
1121
|
+
padding: 2px 8px;
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
.viewer-workshop__terminal-actions {
|
|
1125
|
+
display: flex;
|
|
1126
|
+
gap: 4px;
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
.viewer-workshop__terminal-rows {
|
|
1130
|
+
display: flex;
|
|
1131
|
+
flex-direction: column;
|
|
1132
|
+
gap: 2px;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
.viewer-workshop__terminal-row {
|
|
1136
|
+
display: grid;
|
|
1137
|
+
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
1138
|
+
gap: 6px;
|
|
1139
|
+
align-items: center;
|
|
1140
|
+
border: 0;
|
|
1141
|
+
background: transparent;
|
|
1142
|
+
color: var(--vscode-foreground, #d4d4d4);
|
|
1143
|
+
font: inherit;
|
|
1144
|
+
font-size: 12px;
|
|
1145
|
+
text-align: left;
|
|
1146
|
+
padding: 4px 6px;
|
|
1147
|
+
border-radius: 4px;
|
|
1148
|
+
cursor: pointer;
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
.viewer-workshop__terminal-row:hover {
|
|
1152
|
+
background: var(--vscode-list-hoverBackground, rgb(255 255 255 / 6%));
|
|
1153
|
+
}
|
|
1154
|
+
|
|
1155
|
+
.viewer-workshop__terminal-row.is-active {
|
|
1156
|
+
background: var(--vscode-list-activeSelectionBackground, #094771);
|
|
1157
|
+
color: var(--vscode-list-activeSelectionForeground, #ffffff);
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
.viewer-workshop__terminal-row-label {
|
|
1161
|
+
overflow: hidden;
|
|
1162
|
+
text-overflow: ellipsis;
|
|
1163
|
+
white-space: nowrap;
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
.viewer-workshop__terminal-row-close {
|
|
1167
|
+
display: inline-flex;
|
|
1168
|
+
width: 18px;
|
|
1169
|
+
height: 18px;
|
|
1170
|
+
align-items: center;
|
|
1171
|
+
justify-content: center;
|
|
1172
|
+
border-radius: 3px;
|
|
1173
|
+
color: inherit;
|
|
1174
|
+
font-size: 14px;
|
|
1175
|
+
line-height: 1;
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
.viewer-workshop__terminal-row-close:hover {
|
|
1179
|
+
background: var(--vscode-list-errorBackground, rgb(244 135 113 / 25%));
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
.viewer-workshop__terminal-row-close.is-closing {
|
|
1183
|
+
opacity: 0.85;
|
|
1184
|
+
pointer-events: none;
|
|
1185
|
+
cursor: progress;
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
.viewer-workshop__terminal-row.is-closing {
|
|
1189
|
+
opacity: 0.6;
|
|
1190
|
+
pointer-events: none;
|
|
1191
|
+
cursor: progress;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.viewer-workshop__spinner {
|
|
1195
|
+
display: inline-block;
|
|
1196
|
+
width: 12px;
|
|
1197
|
+
height: 12px;
|
|
1198
|
+
border: 1.5px solid currentColor;
|
|
1199
|
+
border-right-color: transparent;
|
|
1200
|
+
border-radius: 50%;
|
|
1201
|
+
animation: viewer-workshop-spin 0.7s linear infinite;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
@keyframes viewer-workshop-spin {
|
|
1205
|
+
to { transform: rotate(360deg); }
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
.viewer-workshop__terminal-stage {
|
|
1209
|
+
padding: 6px;
|
|
1210
|
+
min-width: 0;
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
.viewer-workshop__terminal-host {
|
|
1214
|
+
width: 100%;
|
|
1215
|
+
height: 480px;
|
|
1216
|
+
background: #0a0a0a;
|
|
1217
|
+
border-radius: 4px;
|
|
1218
|
+
padding: 6px;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
.viewer-workshop__terminal-host .xterm {
|
|
1222
|
+
height: 100%;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
.viewer-workshop__group {
|
|
1226
|
+
margin-bottom: 12px;
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
.viewer-workshop__group-title {
|
|
1230
|
+
font-size: 11px;
|
|
1231
|
+
text-transform: uppercase;
|
|
1232
|
+
letter-spacing: 0.04em;
|
|
1233
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
1234
|
+
margin: 0 0 4px;
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
.viewer-workshop__commands {
|
|
1238
|
+
list-style: none;
|
|
1239
|
+
padding: 0;
|
|
1240
|
+
margin: 0;
|
|
1241
|
+
display: grid;
|
|
1242
|
+
gap: 6px;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
.viewer-workshop__command {
|
|
1246
|
+
border: 1px solid var(--vscode-panel-border, #333333);
|
|
1247
|
+
border-radius: 4px;
|
|
1248
|
+
background: var(--vscode-textCodeBlock-background, #161616);
|
|
1249
|
+
padding: 6px 8px;
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
.viewer-workshop__command-header {
|
|
1253
|
+
display: flex;
|
|
1254
|
+
align-items: center;
|
|
1255
|
+
justify-content: space-between;
|
|
1256
|
+
gap: 8px;
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
.viewer-workshop__command-name {
|
|
1260
|
+
display: flex;
|
|
1261
|
+
flex-direction: column;
|
|
1262
|
+
min-width: 0;
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
.viewer-workshop__command-name strong {
|
|
1266
|
+
font-size: 12px;
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
.viewer-workshop__command-source {
|
|
1270
|
+
font-size: 10px;
|
|
1271
|
+
color: var(--vscode-descriptionForeground, #888888);
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
.viewer-workshop__command-actions {
|
|
1275
|
+
display: flex;
|
|
1276
|
+
align-items: center;
|
|
1277
|
+
gap: 6px;
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
.viewer-workshop__command-meta {
|
|
1281
|
+
margin: 4px 0;
|
|
1282
|
+
font-size: 11px;
|
|
1283
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
1284
|
+
overflow-wrap: anywhere;
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
.viewer-workshop__command-meta code {
|
|
1288
|
+
font-family: var(--vscode-editor-font-family, monospace);
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
.viewer-workshop__state {
|
|
1292
|
+
font-size: 10px;
|
|
1293
|
+
text-transform: uppercase;
|
|
1294
|
+
letter-spacing: 0.04em;
|
|
1295
|
+
padding: 2px 6px;
|
|
1296
|
+
border-radius: 10px;
|
|
1297
|
+
background: rgb(255 255 255 / 6%);
|
|
1298
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
.viewer-workshop__state--running,
|
|
1302
|
+
.viewer-workshop__state--starting {
|
|
1303
|
+
background: var(--vscode-debugIcon-startForeground, #387a14);
|
|
1304
|
+
color: #ffffff;
|
|
1305
|
+
}
|
|
1306
|
+
|
|
1307
|
+
.viewer-workshop__state--failed,
|
|
1308
|
+
.viewer-workshop__state--error {
|
|
1309
|
+
background: var(--vscode-editorError-foreground, #f48771);
|
|
1310
|
+
color: #1e1e1e;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
.viewer-workshop__state--finished {
|
|
1314
|
+
background: var(--vscode-charts-green, #4caf50);
|
|
1315
|
+
color: #1e1e1e;
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
.viewer-workshop__state--stopped {
|
|
1319
|
+
background: var(--vscode-charts-orange, #cca700);
|
|
1320
|
+
color: #1e1e1e;
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
.viewer-workshop__exit {
|
|
1324
|
+
font-size: 10px;
|
|
1325
|
+
font-family: var(--vscode-editor-font-family, monospace);
|
|
1326
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
.viewer-workshop__exit--fail {
|
|
1330
|
+
color: var(--vscode-editorError-foreground, #f48771);
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1333
|
+
.viewer-workshop__log {
|
|
1334
|
+
margin: 6px 0 0;
|
|
1335
|
+
padding: 6px 8px;
|
|
1336
|
+
max-height: 200px;
|
|
1337
|
+
overflow: auto;
|
|
1338
|
+
font-size: 11px;
|
|
1339
|
+
line-height: 1.4;
|
|
1340
|
+
background: var(--vscode-terminal-background, #0a0a0a);
|
|
1341
|
+
color: var(--vscode-terminal-foreground, #d4d4d4);
|
|
1342
|
+
border-radius: 3px;
|
|
1343
|
+
white-space: pre-wrap;
|
|
1344
|
+
overflow-wrap: anywhere;
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
.viewer-workshop__log:empty {
|
|
1348
|
+
display: none;
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1351
|
+
.viewer-lan-banner {
|
|
1352
|
+
display: flex;
|
|
1353
|
+
align-items: center;
|
|
1354
|
+
gap: 10px;
|
|
1355
|
+
padding: 8px 14px;
|
|
1356
|
+
background: var(--vscode-statusBarItem-warningBackground, #b08600);
|
|
1357
|
+
color: var(--vscode-statusBarItem-warningForeground, #1e1e1e);
|
|
1358
|
+
font-size: 12px;
|
|
1359
|
+
font-weight: 600;
|
|
1360
|
+
border-bottom: 1px solid rgb(0 0 0 / 30%);
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
.viewer-lan-banner[hidden] {
|
|
1364
|
+
display: none !important;
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
.viewer-lan-banner__icon {
|
|
1368
|
+
display: inline-flex;
|
|
1369
|
+
width: 18px;
|
|
1370
|
+
height: 18px;
|
|
1371
|
+
align-items: center;
|
|
1372
|
+
justify-content: center;
|
|
1373
|
+
border-radius: 50%;
|
|
1374
|
+
background: rgb(0 0 0 / 30%);
|
|
1375
|
+
color: #ffd33d;
|
|
1376
|
+
font-weight: 700;
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
.viewer-lan-banner__copy {
|
|
1380
|
+
flex: 0 1 auto;
|
|
1381
|
+
min-width: 0;
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
.viewer-lan-banner__copy-short {
|
|
1385
|
+
display: none;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
.viewer-lan-banner__url {
|
|
1389
|
+
font-family: var(--vscode-editor-font-family, monospace);
|
|
1390
|
+
font-weight: 500;
|
|
1391
|
+
font-size: 11px;
|
|
1392
|
+
background: rgb(0 0 0 / 25%);
|
|
1393
|
+
color: #ffffff;
|
|
1394
|
+
padding: 2px 8px;
|
|
1395
|
+
border-radius: 3px;
|
|
1396
|
+
overflow: hidden;
|
|
1397
|
+
text-overflow: ellipsis;
|
|
1398
|
+
white-space: nowrap;
|
|
1399
|
+
max-width: 40%;
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
.viewer-lan-banner__copy-button {
|
|
1403
|
+
margin-left: auto;
|
|
1404
|
+
}
|
|
1405
|
+
|
|
960
1406
|
.viewer-workspace__image {
|
|
961
1407
|
max-width: 100%;
|
|
962
1408
|
max-height: min(70vh, 760px);
|
|
@@ -2200,9 +2646,10 @@
|
|
|
2200
2646
|
}
|
|
2201
2647
|
|
|
2202
2648
|
.viewer-refresh-menu__panel {
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
min-width:
|
|
2649
|
+
right: 0;
|
|
2650
|
+
left: auto;
|
|
2651
|
+
min-width: 260px;
|
|
2652
|
+
max-width: calc(100vw - 16px);
|
|
2206
2653
|
}
|
|
2207
2654
|
|
|
2208
2655
|
.viewer-document {
|
|
@@ -2232,3 +2679,173 @@
|
|
|
2232
2679
|
grid-template-columns: 1fr;
|
|
2233
2680
|
}
|
|
2234
2681
|
}
|
|
2682
|
+
|
|
2683
|
+
/* ---------------------------------------------------------------------------
|
|
2684
|
+
* Responsive viewer conventions (req_246 / task_221).
|
|
2685
|
+
*
|
|
2686
|
+
* Desktop: default rules above.
|
|
2687
|
+
* Tablet (=600): collapse multi-column grids and soften min-width floors so
|
|
2688
|
+
* any iPad-portrait or split-screen layout still works.
|
|
2689
|
+
* Phone (=420): shrink chrome (topbar, toolbar, banner, filter panel) and
|
|
2690
|
+
* let monospace blocks (diffs, code preview) wrap without
|
|
2691
|
+
* triggering a viewport-level horizontal scroll.
|
|
2692
|
+
*
|
|
2693
|
+
* Items 2-4 add their rules in clearly-labelled @media blocks below; new
|
|
2694
|
+
* responsive tweaks should land in the matching block instead of creating
|
|
2695
|
+
* one-off breakpoints (the historical 560/700/860/980 queries above stay so
|
|
2696
|
+
* existing layouts do not regress).
|
|
2697
|
+
* --------------------------------------------------------------------------- */
|
|
2698
|
+
|
|
2699
|
+
/* req_246 item_426 — Git screen fixes at small breakpoints. */
|
|
2700
|
+
@media (max-width: 600px) {
|
|
2701
|
+
.viewer-git__workspace,
|
|
2702
|
+
.viewer-git__workspace.has-diff-detail {
|
|
2703
|
+
grid-template-columns: 1fr;
|
|
2704
|
+
}
|
|
2705
|
+
}
|
|
2706
|
+
|
|
2707
|
+
/* req_246 item_428 — Phone (=420px) chrome adjustments. Compress the
|
|
2708
|
+
* topbar (wrap actions to a second row, shrink padding), let the filter
|
|
2709
|
+
* panel stack, give the floating document inset more screen, tighten the
|
|
2710
|
+
* update + LAN banners, and shrink the buttons enough to fit a 360px
|
|
2711
|
+
* viewport without breaking primary affordances.
|
|
2712
|
+
*/
|
|
2713
|
+
@media (max-width: 420px) {
|
|
2714
|
+
.viewer-topbar {
|
|
2715
|
+
flex-wrap: wrap;
|
|
2716
|
+
gap: 8px;
|
|
2717
|
+
padding: 8px 10px;
|
|
2718
|
+
}
|
|
2719
|
+
|
|
2720
|
+
.viewer-topbar__actions {
|
|
2721
|
+
flex-wrap: wrap;
|
|
2722
|
+
gap: 4px;
|
|
2723
|
+
width: 100%;
|
|
2724
|
+
justify-content: flex-start;
|
|
2725
|
+
}
|
|
2726
|
+
|
|
2727
|
+
.viewer-topbar__actions button {
|
|
2728
|
+
padding: 4px 8px;
|
|
2729
|
+
font-size: 11px;
|
|
2730
|
+
}
|
|
2731
|
+
|
|
2732
|
+
.viewer-topbar__identity {
|
|
2733
|
+
flex-wrap: wrap;
|
|
2734
|
+
}
|
|
2735
|
+
|
|
2736
|
+
.viewer-topbar__meta {
|
|
2737
|
+
width: 100%;
|
|
2738
|
+
font-size: 11px;
|
|
2739
|
+
}
|
|
2740
|
+
|
|
2741
|
+
.viewer-filter-panel {
|
|
2742
|
+
gap: 8px;
|
|
2743
|
+
}
|
|
2744
|
+
|
|
2745
|
+
.viewer-document {
|
|
2746
|
+
inset: 56px 6px 6px;
|
|
2747
|
+
border-radius: 6px;
|
|
2748
|
+
}
|
|
2749
|
+
|
|
2750
|
+
.viewer-update {
|
|
2751
|
+
flex-wrap: wrap;
|
|
2752
|
+
padding: 6px 10px;
|
|
2753
|
+
font-size: 11px;
|
|
2754
|
+
}
|
|
2755
|
+
}
|
|
2756
|
+
|
|
2757
|
+
/* LAN banner: compact form on every non-desktop viewport. The full message
|
|
2758
|
+
* + URL chip + Copy button row needs at least a desktop-width line to read
|
|
2759
|
+
* cleanly; below that we drop the URL chip (the Copy button covers it) and
|
|
2760
|
+
* switch to a short message variant. */
|
|
2761
|
+
@media (max-width: 720px) {
|
|
2762
|
+
.viewer-lan-banner {
|
|
2763
|
+
flex-wrap: wrap;
|
|
2764
|
+
align-items: center;
|
|
2765
|
+
gap: 6px;
|
|
2766
|
+
padding: 4px 8px;
|
|
2767
|
+
font-size: 10px;
|
|
2768
|
+
font-weight: 600;
|
|
2769
|
+
line-height: 1.25;
|
|
2770
|
+
}
|
|
2771
|
+
|
|
2772
|
+
.viewer-lan-banner__icon {
|
|
2773
|
+
width: 14px;
|
|
2774
|
+
height: 14px;
|
|
2775
|
+
font-size: 10px;
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2778
|
+
.viewer-lan-banner__copy {
|
|
2779
|
+
flex: 1 1 0;
|
|
2780
|
+
min-width: 0;
|
|
2781
|
+
}
|
|
2782
|
+
|
|
2783
|
+
.viewer-lan-banner__url {
|
|
2784
|
+
display: none !important;
|
|
2785
|
+
}
|
|
2786
|
+
|
|
2787
|
+
.viewer-lan-banner__copy-long {
|
|
2788
|
+
display: none;
|
|
2789
|
+
}
|
|
2790
|
+
|
|
2791
|
+
.viewer-lan-banner__copy-short {
|
|
2792
|
+
display: inline;
|
|
2793
|
+
}
|
|
2794
|
+
|
|
2795
|
+
.viewer-lan-banner__copy-button {
|
|
2796
|
+
margin-left: auto;
|
|
2797
|
+
padding: 2px 8px;
|
|
2798
|
+
font-size: 10px;
|
|
2799
|
+
line-height: 1.2;
|
|
2800
|
+
}
|
|
2801
|
+
}
|
|
2802
|
+
|
|
2803
|
+
/* req_246 item_427 — Tablet (=600px) grid collapses for board, CDX, CI,
|
|
2804
|
+
* Workspace, and insights screens. Also soften the hard min-width floors so
|
|
2805
|
+
* an iPad-portrait or split-screen layout no longer triggers a horizontal
|
|
2806
|
+
* scroll on the body.
|
|
2807
|
+
*/
|
|
2808
|
+
@media (max-width: 600px) {
|
|
2809
|
+
.viewer-filter-panel {
|
|
2810
|
+
grid-template-columns: 1fr;
|
|
2811
|
+
}
|
|
2812
|
+
|
|
2813
|
+
.viewer-cdx__workspace,
|
|
2814
|
+
.viewer-cdx__workspace--missions,
|
|
2815
|
+
.viewer-ci__workspace,
|
|
2816
|
+
.viewer-workspace {
|
|
2817
|
+
grid-template-columns: 1fr;
|
|
2818
|
+
}
|
|
2819
|
+
|
|
2820
|
+
.viewer-git__summary,
|
|
2821
|
+
.viewer-cdx__summary,
|
|
2822
|
+
.viewer-ci__summary,
|
|
2823
|
+
.viewer-insights__summary,
|
|
2824
|
+
.viewer-health__summary {
|
|
2825
|
+
grid-template-columns: 1fr;
|
|
2826
|
+
}
|
|
2827
|
+
}
|
|
2828
|
+
|
|
2829
|
+
|
|
2830
|
+
@media (max-width: 420px) {
|
|
2831
|
+
.viewer-git__files li {
|
|
2832
|
+
flex-wrap: wrap;
|
|
2833
|
+
row-gap: 4px;
|
|
2834
|
+
}
|
|
2835
|
+
|
|
2836
|
+
.viewer-git-badges,
|
|
2837
|
+
.viewer-git-badge {
|
|
2838
|
+
flex-wrap: wrap;
|
|
2839
|
+
}
|
|
2840
|
+
|
|
2841
|
+
.viewer-git__diff pre {
|
|
2842
|
+
white-space: pre-wrap;
|
|
2843
|
+
overflow-wrap: anywhere;
|
|
2844
|
+
font-size: 11px;
|
|
2845
|
+
}
|
|
2846
|
+
|
|
2847
|
+
.viewer-git__diff-meta {
|
|
2848
|
+
flex-wrap: wrap;
|
|
2849
|
+
gap: 4px;
|
|
2850
|
+
}
|
|
2851
|
+
}
|