esp32tool 1.2.0 → 1.3.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/apple-touch-icon.png +0 -0
- package/css/dark.css +41 -0
- package/css/light.css +41 -0
- package/css/style.css +1067 -67
- package/dist/console.d.ts +15 -0
- package/dist/console.js +237 -0
- package/dist/const.d.ts +99 -0
- package/dist/const.js +129 -8
- package/dist/esp_loader.d.ts +119 -3
- package/dist/esp_loader.js +797 -48
- package/dist/util/console-color.d.ts +19 -0
- package/dist/util/console-color.js +272 -0
- package/dist/util/line-break-transformer.d.ts +5 -0
- package/dist/util/line-break-transformer.js +17 -0
- package/dist/web/index.js +1 -1
- package/icons/icon-128.png +0 -0
- package/icons/icon-144.png +0 -0
- package/icons/icon-152.png +0 -0
- package/icons/icon-192.png +0 -0
- package/icons/icon-384.png +0 -0
- package/icons/icon-512.png +0 -0
- package/icons/icon-72.png +0 -0
- package/icons/icon-96.png +0 -0
- package/index.html +62 -22
- package/js/console.js +269 -0
- package/js/modules/esptool.js +1 -1
- package/js/script.js +678 -16
- package/js/util/console-color.js +282 -0
- package/js/util/line-break-transformer.js +19 -0
- package/package.cli.json +1 -1
- package/package.json +11 -10
- package/screenshots/desktop.png +0 -0
- package/screenshots/mobile.png +0 -0
- package/src/console.ts +278 -0
- package/src/const.ts +165 -8
- package/src/esp_loader.ts +971 -50
- package/src/util/console-color.ts +290 -0
- package/src/util/line-break-transformer.ts +20 -0
- package/sw.js +1 -1
- package/update-sw-version.cjs +24 -0
package/css/style.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
.header {
|
|
6
6
|
box-sizing: border-box;
|
|
7
7
|
font-size: 16px;
|
|
8
|
-
height: 85px;
|
|
8
|
+
min-height: 85px;
|
|
9
9
|
padding: 15px 70px;
|
|
10
10
|
position: fixed;
|
|
11
11
|
width: 100%;
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
margin: 0;
|
|
14
14
|
border-bottom: 5px solid #00a7e9;
|
|
15
15
|
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
16
17
|
justify-content: flex-start;
|
|
17
|
-
align-items:
|
|
18
|
+
align-items: flex-start;
|
|
18
19
|
top: 0;
|
|
19
|
-
|
|
20
|
+
/* Auto-hide feature disabled - header stays visible at all times */
|
|
21
|
+
/* transition: transform 0.3s ease-in-out; */
|
|
20
22
|
overflow-x: auto;
|
|
21
23
|
overflow-y: hidden;
|
|
22
24
|
-webkit-overflow-scrolling: touch;
|
|
23
25
|
}
|
|
24
26
|
|
|
25
|
-
.header-hidden
|
|
26
|
-
transform: translateY(-100%);
|
|
27
|
-
}
|
|
27
|
+
/* .header-hidden class removed - auto-hide feature disabled */
|
|
28
28
|
|
|
29
29
|
.header-content {
|
|
30
30
|
display: flex;
|
|
@@ -32,6 +32,11 @@
|
|
|
32
32
|
gap: 10px;
|
|
33
33
|
flex-wrap: nowrap;
|
|
34
34
|
white-space: nowrap;
|
|
35
|
+
width: 100%;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.header-content.advanced-row {
|
|
39
|
+
margin-top: 10px;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
.header-content > label {
|
|
@@ -91,6 +96,44 @@ body {
|
|
|
91
96
|
margin: 0;
|
|
92
97
|
}
|
|
93
98
|
|
|
99
|
+
/* Mobile-specific optimizations */
|
|
100
|
+
body.mobile-device {
|
|
101
|
+
-webkit-tap-highlight-color: rgba(0, 167, 233, 0.3);
|
|
102
|
+
-webkit-touch-callout: none;
|
|
103
|
+
-webkit-user-select: none;
|
|
104
|
+
user-select: none;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
body.mobile-device input,
|
|
108
|
+
body.mobile-device textarea,
|
|
109
|
+
body.mobile-device select {
|
|
110
|
+
-webkit-user-select: text;
|
|
111
|
+
user-select: text;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Re-enable text selection for log/file viewers and code blocks */
|
|
115
|
+
body.mobile-device #log,
|
|
116
|
+
body.mobile-device .log-viewer,
|
|
117
|
+
body.mobile-device .file-viewer,
|
|
118
|
+
body.mobile-device .file-viewer-body,
|
|
119
|
+
body.mobile-device .code-block,
|
|
120
|
+
body.mobile-device pre,
|
|
121
|
+
body.mobile-device code,
|
|
122
|
+
body.mobile-device .console-container {
|
|
123
|
+
-webkit-user-select: text;
|
|
124
|
+
user-select: text;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* Disable hover effects on mobile - reset all hover properties */
|
|
128
|
+
body.no-hover *:hover {
|
|
129
|
+
background-color: inherit !important;
|
|
130
|
+
color: inherit !important;
|
|
131
|
+
border-color: inherit !important;
|
|
132
|
+
opacity: inherit !important;
|
|
133
|
+
transform: none !important;
|
|
134
|
+
box-shadow: inherit !important;
|
|
135
|
+
}
|
|
136
|
+
|
|
94
137
|
p {
|
|
95
138
|
margin: 0;
|
|
96
139
|
}
|
|
@@ -126,14 +169,47 @@ div.clear {
|
|
|
126
169
|
transition: padding-top 0.3s ease-in-out;
|
|
127
170
|
}
|
|
128
171
|
|
|
129
|
-
.main.
|
|
130
|
-
padding-top:
|
|
172
|
+
.main.advanced-active {
|
|
173
|
+
padding-top: 140px;
|
|
131
174
|
}
|
|
132
175
|
|
|
176
|
+
/* .main.no-header-padding removed - auto-hide feature disabled */
|
|
177
|
+
|
|
133
178
|
.hidden {
|
|
134
179
|
display: none;
|
|
135
180
|
}
|
|
136
181
|
|
|
182
|
+
/* Console Container */
|
|
183
|
+
.console-container {
|
|
184
|
+
height: 500px;
|
|
185
|
+
overflow: hidden;
|
|
186
|
+
transition: height 0.3s ease-in-out, visibility 0.3s ease-in-out;
|
|
187
|
+
margin: 0;
|
|
188
|
+
padding: 0;
|
|
189
|
+
visibility: visible;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.console-container.hidden {
|
|
193
|
+
height: 0;
|
|
194
|
+
visibility: hidden;
|
|
195
|
+
max-height: 0;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* Mobile console optimization */
|
|
199
|
+
@media (max-width: 768px) {
|
|
200
|
+
.console-container {
|
|
201
|
+
height: 350px;
|
|
202
|
+
font-size: 13px;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
@media (max-width: 480px) {
|
|
207
|
+
.console-container {
|
|
208
|
+
height: 300px;
|
|
209
|
+
font-size: 12px;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
137
213
|
.notSupported {
|
|
138
214
|
padding: 1em;
|
|
139
215
|
margin-top: 1em;
|
|
@@ -609,12 +685,14 @@ div.clear {
|
|
|
609
685
|
|
|
610
686
|
/* LittleFS Manager Styles */
|
|
611
687
|
.littlefs-manager {
|
|
612
|
-
width: 900px;
|
|
688
|
+
max-width: 900px;
|
|
689
|
+
width: 100%;
|
|
613
690
|
margin: 30px auto;
|
|
614
691
|
padding: 25px;
|
|
615
692
|
border: 2px solid #71ae1e;
|
|
616
693
|
border-radius: 10px;
|
|
617
694
|
background-color: rgba(113, 174, 30, 0.05);
|
|
695
|
+
box-sizing: border-box;
|
|
618
696
|
}
|
|
619
697
|
|
|
620
698
|
.littlefs-manager h3 {
|
|
@@ -730,9 +808,11 @@ div.clear {
|
|
|
730
808
|
|
|
731
809
|
.littlefs-file-upload input[type="file"] {
|
|
732
810
|
flex: 1;
|
|
733
|
-
padding:
|
|
811
|
+
padding: 8px;
|
|
734
812
|
border: 2px solid #ccc;
|
|
735
813
|
border-radius: 8px;
|
|
814
|
+
font-size: 14px;
|
|
815
|
+
min-height: 38px;
|
|
736
816
|
}
|
|
737
817
|
|
|
738
818
|
.littlefs-file-upload button {
|
|
@@ -1053,66 +1133,311 @@ div.clear {
|
|
|
1053
1133
|
|
|
1054
1134
|
/* Mobile Optimizations */
|
|
1055
1135
|
@media (max-width: 768px) {
|
|
1136
|
+
/* Larger touch targets and better readability */
|
|
1137
|
+
body {
|
|
1138
|
+
font-size: 13px;
|
|
1139
|
+
-webkit-text-size-adjust: 100%;
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1056
1142
|
.header {
|
|
1057
1143
|
height: auto;
|
|
1058
|
-
min-height:
|
|
1059
|
-
padding:
|
|
1144
|
+
min-height: auto;
|
|
1145
|
+
padding: 6px 8px;
|
|
1146
|
+
border-bottom: 2px solid #00a7e9;
|
|
1060
1147
|
}
|
|
1061
1148
|
|
|
1062
1149
|
.header-content {
|
|
1063
|
-
gap:
|
|
1150
|
+
gap: 5px;
|
|
1064
1151
|
width: 100%;
|
|
1065
|
-
|
|
1066
|
-
-
|
|
1067
|
-
|
|
1152
|
+
display: flex;
|
|
1153
|
+
flex-wrap: wrap;
|
|
1154
|
+
align-items: center;
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
/* Row 1: Connect, Baud + Select */
|
|
1158
|
+
.header-content > button#butConnect {
|
|
1159
|
+
order: 1;
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
.header-content > label[for="baudRate"] {
|
|
1163
|
+
order: 2;
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
.header-content > select#baudRate {
|
|
1167
|
+
order: 3;
|
|
1168
|
+
flex: 1;
|
|
1169
|
+
min-width: 120px;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
/* Zeile 2: Show Log, Show Log Switch, Clear, Dark Label, Dark Switch */
|
|
1173
|
+
.header-content > label[for="showlog"] {
|
|
1174
|
+
order: 10;
|
|
1175
|
+
flex-basis: 100%;
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
.header-content > label[for="showlog"] + .onoffswitch {
|
|
1179
|
+
order: 11;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
.header-content > .log-controls {
|
|
1183
|
+
order: 12;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
.header-content > label[for="darkmode"] {
|
|
1187
|
+
order: 13;
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
.header-content > label[for="darkmode"] + .onoffswitch {
|
|
1191
|
+
order: 14;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
/* Zeile 3: Advanced Label + Switch + Autoscroll (eigene Zeile) */
|
|
1195
|
+
.header-content > label[for="advanced"] {
|
|
1196
|
+
order: 20;
|
|
1197
|
+
flex-basis: 100%;
|
|
1198
|
+
width: auto;
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
.header-content > label[for="advanced"] + .onoffswitch {
|
|
1202
|
+
order: 21;
|
|
1203
|
+
}
|
|
1204
|
+
|
|
1205
|
+
/* Autoscroll direkt nach Advanced Switch in derselben Zeile */
|
|
1206
|
+
.header-content > label[for="autoscroll"] {
|
|
1207
|
+
order: 22;
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
.header-content > label[for="autoscroll"] + .onoffswitch {
|
|
1211
|
+
order: 23;
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
/* Advanced Row - separate container for advanced options */
|
|
1215
|
+
.header-content.advanced-row {
|
|
1216
|
+
margin-top: 6px;
|
|
1217
|
+
display: flex;
|
|
1218
|
+
flex-wrap: wrap;
|
|
1219
|
+
gap: 5px;
|
|
1220
|
+
align-items: center;
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1223
|
+
/* Zeile 4 (Advanced): Console + Debug in einer Zeile */
|
|
1224
|
+
.header-content.advanced-row > label[for="console"] {
|
|
1225
|
+
order: 1;
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1228
|
+
.header-content.advanced-row > label[for="console"] + .onoffswitch {
|
|
1229
|
+
order: 2;
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
.header-content.advanced-row > label[for="debugmode"] {
|
|
1233
|
+
order: 3;
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
.header-content.advanced-row > label[for="debugmode"] + .onoffswitch {
|
|
1237
|
+
order: 4;
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
/* Zeile 5 (Advanced): Chunk + Select (volle Breite) */
|
|
1241
|
+
.header-content.advanced-row > label[for="chunkSize"] {
|
|
1242
|
+
order: 10;
|
|
1243
|
+
flex-basis: 100%;
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1246
|
+
.header-content.advanced-row > select#chunkSize {
|
|
1247
|
+
order: 11;
|
|
1248
|
+
flex: 1;
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
/* Zeile 6 (Advanced): Block + Select (volle Breite) */
|
|
1252
|
+
.header-content.advanced-row > label[for="blockSize"] {
|
|
1253
|
+
order: 20;
|
|
1254
|
+
flex-basis: 100%;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
.header-content.advanced-row > select#blockSize {
|
|
1258
|
+
order: 21;
|
|
1259
|
+
flex: 1;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
/* Zeile 7 (Advanced): MaxInFlight + Select (volle Breite) */
|
|
1263
|
+
.header-content.advanced-row > label[for="maxInFlight"] {
|
|
1264
|
+
order: 30;
|
|
1265
|
+
flex-basis: 100%;
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1268
|
+
.header-content.advanced-row > select#maxInFlight {
|
|
1269
|
+
order: 31;
|
|
1270
|
+
flex: 1;
|
|
1068
1271
|
}
|
|
1069
1272
|
|
|
1070
1273
|
.header-content > label {
|
|
1071
|
-
font-size:
|
|
1072
|
-
|
|
1274
|
+
font-size: 11px;
|
|
1275
|
+
font-weight: 600;
|
|
1276
|
+
margin-left: 0;
|
|
1073
1277
|
white-space: nowrap;
|
|
1278
|
+
min-width: auto;
|
|
1074
1279
|
}
|
|
1075
1280
|
|
|
1281
|
+
/* Compact buttons for mobile */
|
|
1282
|
+
.header button {
|
|
1283
|
+
height: 32px;
|
|
1284
|
+
min-width: 32px;
|
|
1285
|
+
font-size: 13px;
|
|
1286
|
+
padding: 0 10px;
|
|
1287
|
+
border-width: 2px;
|
|
1288
|
+
touch-action: manipulation;
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
.header select {
|
|
1292
|
+
height: 32px;
|
|
1293
|
+
font-size: 13px;
|
|
1294
|
+
min-width: 90px;
|
|
1295
|
+
max-width: 160px;
|
|
1296
|
+
padding: 4px;
|
|
1297
|
+
border: 2px solid #ccc;
|
|
1298
|
+
border-radius: 4px;
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
/* Compact on/off switches */
|
|
1076
1302
|
.onoffswitch {
|
|
1077
|
-
width:
|
|
1303
|
+
width: 44px;
|
|
1304
|
+
height: 22px;
|
|
1305
|
+
margin: 0 3px;
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
.onoffswitch-label {
|
|
1309
|
+
border-radius: 11px;
|
|
1310
|
+
border-width: 2px;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
.onoffswitch-inner:before,
|
|
1314
|
+
.onoffswitch-inner:after {
|
|
1315
|
+
height: 22px;
|
|
1316
|
+
line-height: 22px;
|
|
1317
|
+
font-size: 10px;
|
|
1318
|
+
font-weight: 700;
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
.onoffswitch-switch {
|
|
1322
|
+
width: 16px;
|
|
1323
|
+
height: 16px;
|
|
1324
|
+
margin: 1px;
|
|
1325
|
+
border-radius: 8px;
|
|
1078
1326
|
}
|
|
1079
1327
|
|
|
1080
|
-
.
|
|
1081
|
-
|
|
1328
|
+
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
|
|
1329
|
+
right: 1px;
|
|
1082
1330
|
}
|
|
1083
1331
|
|
|
1332
|
+
/* Adjust main content padding - now handled dynamically by JavaScript */
|
|
1333
|
+
/* Removed fixed padding-top values */
|
|
1334
|
+
|
|
1335
|
+
/* Compact commands section */
|
|
1084
1336
|
#commands {
|
|
1085
1337
|
min-width: unset;
|
|
1086
|
-
padding: 0
|
|
1338
|
+
padding: 0 4px;
|
|
1087
1339
|
}
|
|
1088
1340
|
|
|
1341
|
+
/* Card layout for file uploads on mobile - 2-COLUMN GRID wie Partition Table */
|
|
1089
1342
|
#commands .upload {
|
|
1090
1343
|
max-width: 100%;
|
|
1091
|
-
padding
|
|
1344
|
+
padding: 5px;
|
|
1345
|
+
margin: 3px 0;
|
|
1346
|
+
border: 1px solid #ccc;
|
|
1347
|
+
border-radius: 3px;
|
|
1348
|
+
background-color: rgba(0, 0, 0, 0.02);
|
|
1349
|
+
display: flex;
|
|
1092
1350
|
flex-wrap: wrap;
|
|
1093
|
-
gap:
|
|
1351
|
+
gap: 4px;
|
|
1352
|
+
align-items: center;
|
|
1094
1353
|
}
|
|
1095
1354
|
|
|
1096
|
-
#commands .upload label {
|
|
1097
|
-
|
|
1355
|
+
#commands .upload label:first-child {
|
|
1356
|
+
display: flex;
|
|
1357
|
+
align-items: center;
|
|
1358
|
+
gap: 4px;
|
|
1359
|
+
font-size: 8px;
|
|
1360
|
+
font-weight: 600;
|
|
1361
|
+
text-transform: uppercase;
|
|
1362
|
+
color: #666;
|
|
1363
|
+
white-space: nowrap;
|
|
1364
|
+
flex-shrink: 0;
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
#commands .upload .offset {
|
|
1368
|
+
width: 70px;
|
|
1369
|
+
height: 26px;
|
|
1370
|
+
font-size: 11px;
|
|
1371
|
+
padding: 2px 4px;
|
|
1372
|
+
border: 1px solid #ccc;
|
|
1373
|
+
border-radius: 3px;
|
|
1374
|
+
box-sizing: border-box;
|
|
1098
1375
|
}
|
|
1099
1376
|
|
|
1100
1377
|
#commands .upload .firmware {
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1378
|
+
flex: 1;
|
|
1379
|
+
min-width: 140px;
|
|
1380
|
+
height: 26px;
|
|
1381
|
+
margin: 0;
|
|
1382
|
+
display: flex;
|
|
1104
1383
|
justify-content: center;
|
|
1384
|
+
align-items: center;
|
|
1385
|
+
font-size: 10px;
|
|
1386
|
+
font-weight: 600;
|
|
1387
|
+
padding: 0 8px;
|
|
1388
|
+
overflow: hidden;
|
|
1389
|
+
text-overflow: ellipsis;
|
|
1390
|
+
white-space: nowrap;
|
|
1391
|
+
box-sizing: border-box;
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
#commands .upload .firmware input[type="file"] {
|
|
1395
|
+
display: none;
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
#commands .upload .firmware svg {
|
|
1399
|
+
width: 11px;
|
|
1400
|
+
height: 11px;
|
|
1401
|
+
flex-shrink: 0;
|
|
1402
|
+
margin-right: 3px;
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
#commands .upload .firmware span {
|
|
1406
|
+
overflow: hidden;
|
|
1407
|
+
text-overflow: ellipsis;
|
|
1408
|
+
white-space: nowrap;
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1411
|
+
#commands .upload .progress-bar {
|
|
1412
|
+
width: 100%;
|
|
1413
|
+
margin: 0;
|
|
1414
|
+
height: 18px;
|
|
1105
1415
|
}
|
|
1106
1416
|
|
|
1417
|
+
/* Action buttons as cards */
|
|
1107
1418
|
#commands .buttons {
|
|
1108
1419
|
width: 100%;
|
|
1109
|
-
|
|
1420
|
+
display: grid;
|
|
1421
|
+
grid-template-columns: 1fr 1fr;
|
|
1422
|
+
gap: 4px;
|
|
1423
|
+
margin-top: 4px;
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
#commands .buttons button {
|
|
1427
|
+
width: 100%;
|
|
1428
|
+
min-width: unset;
|
|
1429
|
+
height: 34px;
|
|
1430
|
+
font-size: 13px;
|
|
1431
|
+
font-weight: 700;
|
|
1432
|
+
border-radius: 3px;
|
|
1110
1433
|
}
|
|
1111
1434
|
|
|
1112
1435
|
#commands .partition-table,
|
|
1113
1436
|
#commands .read-flash {
|
|
1114
1437
|
width: 100%;
|
|
1115
1438
|
padding: 15px 0;
|
|
1439
|
+
overflow-x: auto;
|
|
1440
|
+
-webkit-overflow-scrolling: touch;
|
|
1116
1441
|
}
|
|
1117
1442
|
|
|
1118
1443
|
#commands .partition-table .progress-bar,
|
|
@@ -1120,73 +1445,455 @@ div.clear {
|
|
|
1120
1445
|
width: 100%;
|
|
1121
1446
|
}
|
|
1122
1447
|
|
|
1448
|
+
/* Partition table scrollable on mobile */
|
|
1449
|
+
.partition-table-display {
|
|
1450
|
+
min-width: 500px;
|
|
1451
|
+
font-size: 12px;
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
.partition-table-display th,
|
|
1455
|
+
.partition-table-display td {
|
|
1456
|
+
padding: 6px 8px;
|
|
1457
|
+
white-space: nowrap;
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
.partition-download-btn {
|
|
1461
|
+
padding: 4px 10px;
|
|
1462
|
+
font-size: 12px;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
/* Card layout for partition table on mobile */
|
|
1466
|
+
.partition-table-display {
|
|
1467
|
+
display: block;
|
|
1468
|
+
min-width: 100%;
|
|
1469
|
+
border: none;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
.partition-table-display thead {
|
|
1473
|
+
display: none;
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1476
|
+
.partition-table-display tbody {
|
|
1477
|
+
display: block;
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
.partition-table-display tr {
|
|
1481
|
+
display: grid;
|
|
1482
|
+
grid-template-columns: 1fr 1fr;
|
|
1483
|
+
gap: 4px;
|
|
1484
|
+
margin-bottom: 4px;
|
|
1485
|
+
padding: 5px;
|
|
1486
|
+
border: 1px solid #ccc;
|
|
1487
|
+
border-radius: 3px;
|
|
1488
|
+
background-color: rgba(0, 0, 0, 0.02);
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1491
|
+
.partition-table-display td {
|
|
1492
|
+
display: flex;
|
|
1493
|
+
flex-direction: column;
|
|
1494
|
+
padding: 2px 0;
|
|
1495
|
+
border: none;
|
|
1496
|
+
white-space: normal;
|
|
1497
|
+
font-size: 11px;
|
|
1498
|
+
}
|
|
1499
|
+
|
|
1500
|
+
.partition-table-display td::before {
|
|
1501
|
+
content: attr(data-label);
|
|
1502
|
+
font-weight: 600;
|
|
1503
|
+
font-size: 8px;
|
|
1504
|
+
text-transform: uppercase;
|
|
1505
|
+
color: #666;
|
|
1506
|
+
margin-bottom: 1px;
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
/* Name spans full width */
|
|
1510
|
+
.partition-table-display td:nth-child(1) {
|
|
1511
|
+
grid-column: 1 / -1;
|
|
1512
|
+
font-size: 12px;
|
|
1513
|
+
font-weight: 700;
|
|
1514
|
+
padding-bottom: 4px;
|
|
1515
|
+
border-bottom: 1px solid #ddd;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
/* Action buttons span full width */
|
|
1519
|
+
.partition-table-display td:nth-child(6) {
|
|
1520
|
+
grid-column: 1 / -1;
|
|
1521
|
+
flex-direction: row;
|
|
1522
|
+
gap: 4px;
|
|
1523
|
+
padding-top: 4px;
|
|
1524
|
+
}
|
|
1525
|
+
|
|
1526
|
+
.partition-table-display td:nth-child(6)::before {
|
|
1527
|
+
display: none;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
.partition-download-btn,
|
|
1531
|
+
.littlefs-fs-button {
|
|
1532
|
+
flex: 1;
|
|
1533
|
+
padding: 5px 8px;
|
|
1534
|
+
font-size: 11px;
|
|
1535
|
+
white-space: nowrap;
|
|
1536
|
+
}
|
|
1537
|
+
|
|
1538
|
+
/* Read Flash as 2-column grid card wie Partition Table */
|
|
1539
|
+
#commands .read-flash {
|
|
1540
|
+
margin: 3px 0;
|
|
1541
|
+
padding: 5px;
|
|
1542
|
+
border: 1px solid #ccc;
|
|
1543
|
+
border-radius: 3px;
|
|
1544
|
+
background-color: rgba(0, 0, 0, 0.02);
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1123
1547
|
#commands .read-flash-inputs {
|
|
1124
|
-
|
|
1548
|
+
display: grid;
|
|
1549
|
+
grid-template-columns: 1fr 1fr;
|
|
1550
|
+
gap: 4px;
|
|
1125
1551
|
width: 100%;
|
|
1126
1552
|
}
|
|
1127
1553
|
|
|
1554
|
+
#commands .read-flash label {
|
|
1555
|
+
font-size: 8px;
|
|
1556
|
+
font-weight: 600;
|
|
1557
|
+
text-transform: uppercase;
|
|
1558
|
+
color: #666;
|
|
1559
|
+
display: flex;
|
|
1560
|
+
flex-direction: column;
|
|
1561
|
+
gap: 2px;
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1128
1564
|
#commands .read-flash input {
|
|
1129
|
-
width:
|
|
1565
|
+
width: 100%;
|
|
1566
|
+
height: 26px;
|
|
1567
|
+
font-size: 11px;
|
|
1568
|
+
padding: 2px 4px;
|
|
1569
|
+
border: 1px solid #ccc;
|
|
1570
|
+
border-radius: 3px;
|
|
1571
|
+
}
|
|
1572
|
+
|
|
1573
|
+
#commands .read-flash button {
|
|
1574
|
+
grid-column: 1 / -1;
|
|
1575
|
+
height: 34px;
|
|
1576
|
+
font-size: 13px;
|
|
1577
|
+
font-weight: 600;
|
|
1578
|
+
padding: 0 12px;
|
|
1579
|
+
width: 100%;
|
|
1580
|
+
margin-top: 4px;
|
|
1130
1581
|
}
|
|
1131
1582
|
|
|
1583
|
+
#commands .read-flash .progress-bar {
|
|
1584
|
+
grid-column: 1 / -1;
|
|
1585
|
+
height: 18px;
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
#commands .partition-table button {
|
|
1589
|
+
height: 34px;
|
|
1590
|
+
font-size: 13px;
|
|
1591
|
+
font-weight: 600;
|
|
1592
|
+
padding: 0 12px;
|
|
1593
|
+
width: 100%;
|
|
1594
|
+
max-width: 100%;
|
|
1595
|
+
margin-top: 4px;
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1598
|
+
#commands .partition-table .progress-bar {
|
|
1599
|
+
height: 18px;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
/* Partition table section as card */
|
|
1603
|
+
#commands .partition-table {
|
|
1604
|
+
width: 100%;
|
|
1605
|
+
padding: 4px;
|
|
1606
|
+
margin: 3px 0;
|
|
1607
|
+
border: 1px solid #ccc;
|
|
1608
|
+
border-radius: 3px;
|
|
1609
|
+
background-color: rgba(0, 0, 0, 0.02);
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
/* Larger, more readable log */
|
|
1132
1613
|
#log {
|
|
1133
|
-
padding:
|
|
1134
|
-
border:
|
|
1135
|
-
font-size:
|
|
1614
|
+
padding: 10px;
|
|
1615
|
+
border: 6px solid #000;
|
|
1616
|
+
font-size: 13px;
|
|
1617
|
+
line-height: 1.5;
|
|
1136
1618
|
}
|
|
1137
1619
|
|
|
1138
1620
|
.footer {
|
|
1139
|
-
padding: 10px
|
|
1621
|
+
padding: 10px;
|
|
1622
|
+
font-size: 12px;
|
|
1140
1623
|
}
|
|
1141
1624
|
|
|
1625
|
+
/* Better filesystem manager on mobile - 2-COLUMN GRID */
|
|
1142
1626
|
.littlefs-manager {
|
|
1143
1627
|
width: 100%;
|
|
1144
|
-
|
|
1145
|
-
|
|
1628
|
+
max-width: 100%;
|
|
1629
|
+
margin: 3px 0;
|
|
1630
|
+
padding: 5px;
|
|
1631
|
+
border-radius: 3px;
|
|
1632
|
+
border-width: 1px;
|
|
1633
|
+
box-sizing: border-box;
|
|
1634
|
+
overflow: hidden;
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
.littlefs-manager h3 {
|
|
1638
|
+
font-size: 14px;
|
|
1639
|
+
margin: 0 0 6px 0;
|
|
1640
|
+
overflow: hidden;
|
|
1641
|
+
text-overflow: ellipsis;
|
|
1642
|
+
white-space: nowrap;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
/* Info section as 2-column grid */
|
|
1646
|
+
.littlefs-info {
|
|
1647
|
+
padding: 5px;
|
|
1648
|
+
margin-bottom: 4px;
|
|
1649
|
+
border-radius: 3px;
|
|
1650
|
+
display: grid;
|
|
1651
|
+
grid-template-columns: 1fr 1fr;
|
|
1652
|
+
gap: 4px;
|
|
1653
|
+
overflow: hidden;
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
.littlefs-partition-info {
|
|
1657
|
+
grid-column: 1 / -1;
|
|
1658
|
+
font-size: 10px;
|
|
1659
|
+
margin-bottom: 4px;
|
|
1660
|
+
padding-bottom: 4px;
|
|
1661
|
+
border-bottom: 1px solid #ddd;
|
|
1662
|
+
overflow: hidden;
|
|
1663
|
+
text-overflow: ellipsis;
|
|
1664
|
+
white-space: nowrap;
|
|
1665
|
+
}
|
|
1666
|
+
|
|
1667
|
+
.littlefs-size {
|
|
1668
|
+
display: inline;
|
|
1669
|
+
margin-left: 4px;
|
|
1670
|
+
font-size: 9px;
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
.littlefs-usage {
|
|
1674
|
+
grid-column: 1 / -1;
|
|
1675
|
+
overflow: hidden;
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
.usage-bar {
|
|
1679
|
+
height: 14px;
|
|
1680
|
+
margin-bottom: 4px;
|
|
1681
|
+
width: 100%;
|
|
1682
|
+
overflow: hidden;
|
|
1683
|
+
}
|
|
1684
|
+
|
|
1685
|
+
.usage-text {
|
|
1686
|
+
font-size: 9px;
|
|
1687
|
+
display: grid;
|
|
1688
|
+
grid-template-columns: 1fr auto;
|
|
1689
|
+
gap: 4px;
|
|
1690
|
+
align-items: center;
|
|
1691
|
+
overflow: hidden;
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
.usage-text > span:first-child {
|
|
1695
|
+
overflow: hidden;
|
|
1696
|
+
text-overflow: ellipsis;
|
|
1697
|
+
white-space: nowrap;
|
|
1146
1698
|
}
|
|
1147
1699
|
|
|
1700
|
+
.disk-version {
|
|
1701
|
+
font-size: 9px;
|
|
1702
|
+
padding: 1px 4px;
|
|
1703
|
+
flex-shrink: 0;
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1706
|
+
/* Controls as 2x2 grid */
|
|
1148
1707
|
.littlefs-controls {
|
|
1149
|
-
|
|
1708
|
+
display: grid;
|
|
1709
|
+
grid-template-columns: 1fr 1fr;
|
|
1710
|
+
gap: 4px;
|
|
1711
|
+
margin-bottom: 4px;
|
|
1150
1712
|
}
|
|
1151
1713
|
|
|
1152
1714
|
.littlefs-controls button {
|
|
1153
1715
|
width: 100%;
|
|
1716
|
+
height: 30px;
|
|
1717
|
+
font-size: 11px;
|
|
1718
|
+
padding: 0 6px;
|
|
1719
|
+
}
|
|
1720
|
+
|
|
1721
|
+
/* Breadcrumb as card */
|
|
1722
|
+
.littlefs-breadcrumb {
|
|
1723
|
+
padding: 4px;
|
|
1724
|
+
margin-bottom: 4px;
|
|
1725
|
+
gap: 4px;
|
|
1726
|
+
border-radius: 3px;
|
|
1727
|
+
display: flex;
|
|
1728
|
+
align-items: center;
|
|
1154
1729
|
}
|
|
1155
1730
|
|
|
1731
|
+
.littlefs-breadcrumb button {
|
|
1732
|
+
height: 26px;
|
|
1733
|
+
font-size: 11px;
|
|
1734
|
+
padding: 0 8px;
|
|
1735
|
+
flex-shrink: 0;
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
.littlefs-breadcrumb span {
|
|
1739
|
+
font-size: 10px;
|
|
1740
|
+
flex: 1;
|
|
1741
|
+
overflow: hidden;
|
|
1742
|
+
text-overflow: ellipsis;
|
|
1743
|
+
white-space: nowrap;
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1746
|
+
/* File upload as 2-column grid */
|
|
1156
1747
|
.littlefs-file-upload {
|
|
1157
|
-
|
|
1748
|
+
display: grid;
|
|
1749
|
+
grid-template-columns: 1fr 1fr;
|
|
1750
|
+
gap: 4px;
|
|
1751
|
+
margin-bottom: 4px;
|
|
1752
|
+
padding: 5px;
|
|
1753
|
+
border: 1px solid #ccc;
|
|
1754
|
+
border-radius: 3px;
|
|
1755
|
+
background-color: rgba(0, 0, 0, 0.02);
|
|
1756
|
+
box-sizing: border-box;
|
|
1757
|
+
width: 100%;
|
|
1758
|
+
overflow: hidden;
|
|
1759
|
+
}
|
|
1760
|
+
|
|
1761
|
+
.littlefs-file-upload input[type="file"] {
|
|
1762
|
+
grid-column: 1 / -1;
|
|
1763
|
+
width: 100%;
|
|
1764
|
+
height: 36px;
|
|
1765
|
+
font-size: 13px;
|
|
1766
|
+
box-sizing: border-box;
|
|
1767
|
+
overflow: hidden;
|
|
1768
|
+
text-overflow: ellipsis;
|
|
1769
|
+
white-space: nowrap;
|
|
1770
|
+
padding: 8px;
|
|
1771
|
+
border: 2px solid #ccc;
|
|
1158
1772
|
}
|
|
1159
1773
|
|
|
1160
|
-
.littlefs-file-upload input[type="file"],
|
|
1161
1774
|
.littlefs-file-upload button {
|
|
1162
1775
|
width: 100%;
|
|
1776
|
+
height: 34px;
|
|
1777
|
+
font-size: 13px;
|
|
1778
|
+
box-sizing: border-box;
|
|
1779
|
+
overflow: hidden;
|
|
1780
|
+
text-overflow: ellipsis;
|
|
1781
|
+
white-space: nowrap;
|
|
1782
|
+
}
|
|
1783
|
+
|
|
1784
|
+
/* File table as 2-column grid cards */
|
|
1785
|
+
.littlefs-files {
|
|
1786
|
+
max-height: 250px;
|
|
1787
|
+
border: none;
|
|
1788
|
+
overflow-x: hidden;
|
|
1789
|
+
overflow-y: auto;
|
|
1163
1790
|
}
|
|
1164
1791
|
|
|
1165
1792
|
.file-table {
|
|
1166
|
-
|
|
1793
|
+
display: block;
|
|
1794
|
+
width: 100%;
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1797
|
+
.file-table thead {
|
|
1798
|
+
display: none;
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
.file-table tbody {
|
|
1802
|
+
display: block;
|
|
1803
|
+
width: 100%;
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
.file-table tr {
|
|
1807
|
+
display: grid;
|
|
1808
|
+
grid-template-columns: 1fr 1fr;
|
|
1809
|
+
gap: 4px;
|
|
1810
|
+
margin-bottom: 4px;
|
|
1811
|
+
padding: 5px;
|
|
1812
|
+
border: 1px solid #ccc;
|
|
1813
|
+
border-radius: 3px;
|
|
1814
|
+
background-color: rgba(0, 0, 0, 0.02);
|
|
1815
|
+
box-sizing: border-box;
|
|
1816
|
+
width: 100%;
|
|
1167
1817
|
}
|
|
1168
1818
|
|
|
1169
|
-
.file-table th,
|
|
1170
1819
|
.file-table td {
|
|
1171
|
-
|
|
1820
|
+
display: flex;
|
|
1821
|
+
flex-direction: column;
|
|
1822
|
+
padding: 2px 0;
|
|
1823
|
+
border: none;
|
|
1824
|
+
font-size: 10px;
|
|
1825
|
+
overflow: hidden;
|
|
1826
|
+
min-width: 0;
|
|
1827
|
+
}
|
|
1828
|
+
|
|
1829
|
+
.file-table td::before {
|
|
1830
|
+
content: attr(data-label);
|
|
1831
|
+
font-weight: 600;
|
|
1832
|
+
font-size: 8px;
|
|
1833
|
+
text-transform: uppercase;
|
|
1834
|
+
color: #666;
|
|
1835
|
+
margin-bottom: 1px;
|
|
1836
|
+
flex-shrink: 0;
|
|
1837
|
+
}
|
|
1838
|
+
|
|
1839
|
+
.file-table td > * {
|
|
1840
|
+
overflow: hidden;
|
|
1841
|
+
text-overflow: ellipsis;
|
|
1842
|
+
white-space: nowrap;
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
.file-table td:first-child {
|
|
1846
|
+
grid-column: 1 / -1;
|
|
1847
|
+
font-size: 12px;
|
|
1848
|
+
font-weight: 700;
|
|
1849
|
+
padding-bottom: 4px;
|
|
1850
|
+
border-bottom: 1px solid #ddd;
|
|
1851
|
+
margin-bottom: 3px;
|
|
1852
|
+
}
|
|
1853
|
+
|
|
1854
|
+
.file-table td:first-child::before {
|
|
1855
|
+
display: none;
|
|
1856
|
+
}
|
|
1857
|
+
|
|
1858
|
+
.file-table td:last-child {
|
|
1859
|
+
grid-column: 1 / -1;
|
|
1860
|
+
overflow: visible;
|
|
1172
1861
|
}
|
|
1173
1862
|
|
|
1174
1863
|
.file-actions {
|
|
1175
|
-
|
|
1864
|
+
display: flex;
|
|
1865
|
+
flex-direction: row;
|
|
1866
|
+
gap: 3px;
|
|
1867
|
+
margin-top: 4px;
|
|
1868
|
+
overflow: visible;
|
|
1176
1869
|
}
|
|
1177
1870
|
|
|
1178
1871
|
.file-actions button {
|
|
1179
|
-
|
|
1872
|
+
flex: 1;
|
|
1873
|
+
height: 28px;
|
|
1874
|
+
font-size: 10px;
|
|
1875
|
+
padding: 0 5px;
|
|
1876
|
+
min-width: 0;
|
|
1877
|
+
overflow: hidden;
|
|
1878
|
+
text-overflow: ellipsis;
|
|
1879
|
+
white-space: nowrap;
|
|
1180
1880
|
}
|
|
1181
1881
|
|
|
1882
|
+
/* Better modals on mobile */
|
|
1182
1883
|
.modal-content {
|
|
1183
|
-
padding:
|
|
1184
|
-
max-width:
|
|
1884
|
+
padding: 16px;
|
|
1885
|
+
max-width: 94%;
|
|
1886
|
+
}
|
|
1887
|
+
|
|
1888
|
+
.modal-button {
|
|
1889
|
+
height: 40px;
|
|
1890
|
+
font-size: 16px;
|
|
1891
|
+
padding: 0 20px;
|
|
1185
1892
|
}
|
|
1186
1893
|
|
|
1187
1894
|
.file-viewer-content {
|
|
1188
|
-
width:
|
|
1189
|
-
max-height:
|
|
1895
|
+
width: 96vw;
|
|
1896
|
+
max-height: 96vh;
|
|
1190
1897
|
}
|
|
1191
1898
|
|
|
1192
1899
|
.file-viewer-header,
|
|
@@ -1194,66 +1901,359 @@ div.clear {
|
|
|
1194
1901
|
.file-viewer-tabs,
|
|
1195
1902
|
.file-viewer-body,
|
|
1196
1903
|
.file-viewer-footer {
|
|
1197
|
-
padding-left:
|
|
1198
|
-
padding-right:
|
|
1904
|
+
padding-left: 12px;
|
|
1905
|
+
padding-right: 12px;
|
|
1199
1906
|
}
|
|
1200
1907
|
|
|
1201
1908
|
.file-viewer-body pre {
|
|
1202
|
-
font-size:
|
|
1909
|
+
font-size: 10px;
|
|
1203
1910
|
}
|
|
1204
1911
|
|
|
1205
1912
|
.hex-bytes {
|
|
1206
|
-
min-width:
|
|
1913
|
+
min-width: 220px;
|
|
1207
1914
|
}
|
|
1208
1915
|
}
|
|
1209
1916
|
|
|
1210
1917
|
@media (max-width: 480px) {
|
|
1918
|
+
/* Extra small screens - Galaxy S8 and similar */
|
|
1919
|
+
body {
|
|
1920
|
+
font-size: 12px;
|
|
1921
|
+
}
|
|
1922
|
+
|
|
1211
1923
|
.header {
|
|
1212
|
-
padding:
|
|
1924
|
+
padding: 6px;
|
|
1213
1925
|
}
|
|
1214
1926
|
|
|
1215
1927
|
.header-content {
|
|
1216
|
-
gap:
|
|
1928
|
+
gap: 5px;
|
|
1217
1929
|
}
|
|
1218
1930
|
|
|
1219
1931
|
.header-content > label {
|
|
1220
|
-
|
|
1932
|
+
font-size: 11px;
|
|
1933
|
+
min-width: auto;
|
|
1221
1934
|
}
|
|
1222
1935
|
|
|
1223
1936
|
.header-content select {
|
|
1224
|
-
min-width:
|
|
1937
|
+
min-width: 85px;
|
|
1938
|
+
max-width: 140px;
|
|
1225
1939
|
height: 30px;
|
|
1226
|
-
font-size:
|
|
1940
|
+
font-size: 12px;
|
|
1941
|
+
padding: 3px;
|
|
1942
|
+
}
|
|
1943
|
+
|
|
1944
|
+
.header button {
|
|
1945
|
+
height: 30px;
|
|
1946
|
+
font-size: 12px;
|
|
1947
|
+
padding: 0 8px;
|
|
1948
|
+
min-width: 30px;
|
|
1227
1949
|
}
|
|
1228
1950
|
|
|
1229
1951
|
.onoffswitch {
|
|
1230
|
-
width:
|
|
1231
|
-
|
|
1232
|
-
margin
|
|
1952
|
+
width: 40px;
|
|
1953
|
+
height: 20px;
|
|
1954
|
+
margin: 0 2px;
|
|
1955
|
+
}
|
|
1956
|
+
|
|
1957
|
+
.onoffswitch-label {
|
|
1958
|
+
border-radius: 10px;
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
.onoffswitch-inner:before,
|
|
1962
|
+
.onoffswitch-inner:after {
|
|
1963
|
+
height: 20px;
|
|
1964
|
+
line-height: 20px;
|
|
1965
|
+
font-size: 9px;
|
|
1966
|
+
}
|
|
1967
|
+
|
|
1968
|
+
.onoffswitch-switch {
|
|
1969
|
+
width: 14px;
|
|
1970
|
+
height: 14px;
|
|
1971
|
+
margin: 1px;
|
|
1972
|
+
border-radius: 7px;
|
|
1973
|
+
}
|
|
1974
|
+
|
|
1975
|
+
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
|
|
1976
|
+
right: 1px;
|
|
1233
1977
|
}
|
|
1234
1978
|
|
|
1235
1979
|
.log-controls {
|
|
1236
|
-
padding-left:
|
|
1980
|
+
padding-left: 0;
|
|
1237
1981
|
}
|
|
1238
1982
|
|
|
1239
1983
|
.small-btn {
|
|
1240
1984
|
padding: 4px 8px;
|
|
1241
|
-
font-size:
|
|
1985
|
+
font-size: 12px;
|
|
1986
|
+
height: 30px;
|
|
1242
1987
|
}
|
|
1243
1988
|
|
|
1989
|
+
/* Main padding now handled dynamically by JavaScript */
|
|
1990
|
+
/* Removed fixed padding-top values */
|
|
1991
|
+
|
|
1244
1992
|
#commands {
|
|
1993
|
+
padding: 0 4px;
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1996
|
+
/* Smaller upload cards for Galaxy S8 */
|
|
1997
|
+
#commands .upload {
|
|
1998
|
+
padding: 3px;
|
|
1999
|
+
margin: 2px 0;
|
|
2000
|
+
gap: 2px;
|
|
2001
|
+
}
|
|
2002
|
+
|
|
2003
|
+
#commands .upload .offset {
|
|
2004
|
+
width: 55px;
|
|
2005
|
+
height: 24px;
|
|
2006
|
+
font-size: 10px;
|
|
2007
|
+
}
|
|
2008
|
+
|
|
2009
|
+
#commands .upload .firmware {
|
|
2010
|
+
height: 28px;
|
|
2011
|
+
font-size: 9px;
|
|
1245
2012
|
padding: 0 10px;
|
|
2013
|
+
max-width: 180px;
|
|
2014
|
+
}
|
|
2015
|
+
|
|
2016
|
+
#commands .upload .firmware svg {
|
|
2017
|
+
width: 10px;
|
|
2018
|
+
height: 10px;
|
|
2019
|
+
margin-right: 2px;
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
/* Smaller action buttons */
|
|
2023
|
+
#commands .buttons {
|
|
2024
|
+
gap: 3px;
|
|
2025
|
+
margin-top: 3px;
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
#commands .buttons button {
|
|
2029
|
+
height: 32px;
|
|
2030
|
+
font-size: 12px;
|
|
2031
|
+
}
|
|
2032
|
+
|
|
2033
|
+
/* Smaller partition table card */
|
|
2034
|
+
#commands .partition-table {
|
|
2035
|
+
padding: 3px;
|
|
2036
|
+
margin: 2px 0;
|
|
2037
|
+
}
|
|
2038
|
+
|
|
2039
|
+
#commands .partition-table button {
|
|
2040
|
+
height: 32px;
|
|
2041
|
+
font-size: 12px;
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2044
|
+
/* Smaller read flash card */
|
|
2045
|
+
#commands .read-flash {
|
|
2046
|
+
padding: 3px;
|
|
2047
|
+
margin: 2px 0;
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2050
|
+
#commands .read-flash input {
|
|
2051
|
+
height: 24px;
|
|
2052
|
+
font-size: 10px;
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
#commands .read-flash button {
|
|
2056
|
+
height: 32px;
|
|
2057
|
+
font-size: 12px;
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
.partition-table-display tr {
|
|
2061
|
+
padding: 4px;
|
|
2062
|
+
margin-bottom: 3px;
|
|
2063
|
+
gap: 3px;
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
.partition-table-display td {
|
|
2067
|
+
font-size: 10px;
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
.partition-table-display td::before {
|
|
2071
|
+
font-size: 7px;
|
|
2072
|
+
}
|
|
2073
|
+
|
|
2074
|
+
.partition-table-display td:nth-child(1) {
|
|
2075
|
+
font-size: 11px;
|
|
2076
|
+
padding-bottom: 3px;
|
|
2077
|
+
}
|
|
2078
|
+
|
|
2079
|
+
.partition-download-btn,
|
|
2080
|
+
.littlefs-fs-button {
|
|
2081
|
+
padding: 4px 6px;
|
|
2082
|
+
font-size: 10px;
|
|
2083
|
+
}
|
|
2084
|
+
|
|
2085
|
+
/* Filesystem manager for Galaxy S8 */
|
|
2086
|
+
.littlefs-manager h3 {
|
|
2087
|
+
font-size: 13px;
|
|
2088
|
+
margin-bottom: 4px;
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
.littlefs-info {
|
|
2092
|
+
padding: 3px;
|
|
2093
|
+
margin-bottom: 3px;
|
|
2094
|
+
}
|
|
2095
|
+
|
|
2096
|
+
.littlefs-partition-info {
|
|
2097
|
+
font-size: 9px;
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
.usage-bar {
|
|
2101
|
+
height: 12px;
|
|
2102
|
+
}
|
|
2103
|
+
|
|
2104
|
+
.usage-text {
|
|
2105
|
+
font-size: 8px;
|
|
2106
|
+
}
|
|
2107
|
+
|
|
2108
|
+
.disk-version {
|
|
2109
|
+
font-size: 8px;
|
|
2110
|
+
padding: 1px 3px;
|
|
2111
|
+
}
|
|
2112
|
+
|
|
2113
|
+
.littlefs-controls {
|
|
2114
|
+
gap: 3px;
|
|
2115
|
+
margin-bottom: 3px;
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
.littlefs-breadcrumb {
|
|
2119
|
+
padding: 3px;
|
|
2120
|
+
margin-bottom: 3px;
|
|
2121
|
+
}
|
|
2122
|
+
|
|
2123
|
+
.littlefs-breadcrumb button {
|
|
2124
|
+
height: 24px;
|
|
2125
|
+
font-size: 10px;
|
|
2126
|
+
padding: 0 6px;
|
|
2127
|
+
}
|
|
2128
|
+
|
|
2129
|
+
.littlefs-breadcrumb span {
|
|
2130
|
+
font-size: 9px;
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2133
|
+
.littlefs-file-upload {
|
|
2134
|
+
padding: 3px;
|
|
2135
|
+
margin-bottom: 3px;
|
|
2136
|
+
gap: 3px;
|
|
2137
|
+
}
|
|
2138
|
+
|
|
2139
|
+
.littlefs-file-upload input[type="file"] {
|
|
2140
|
+
height: 32px;
|
|
2141
|
+
font-size: 12px;
|
|
2142
|
+
padding: 6px;
|
|
2143
|
+
}
|
|
2144
|
+
|
|
2145
|
+
.littlefs-files {
|
|
2146
|
+
max-height: 200px;
|
|
2147
|
+
}
|
|
2148
|
+
|
|
2149
|
+
.file-table tr {
|
|
2150
|
+
padding: 3px;
|
|
2151
|
+
margin-bottom: 3px;
|
|
2152
|
+
}
|
|
2153
|
+
|
|
2154
|
+
.file-table td {
|
|
2155
|
+
padding: 1px 0;
|
|
2156
|
+
font-size: 9px;
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2159
|
+
.file-table td::before {
|
|
2160
|
+
font-size: 7px;
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2163
|
+
.file-table td:first-child {
|
|
2164
|
+
font-size: 11px;
|
|
2165
|
+
padding-bottom: 3px;
|
|
2166
|
+
}
|
|
2167
|
+
|
|
2168
|
+
.file-actions {
|
|
2169
|
+
gap: 2px;
|
|
2170
|
+
margin-top: 3px;
|
|
1246
2171
|
}
|
|
1247
2172
|
|
|
1248
2173
|
#log {
|
|
1249
|
-
padding:
|
|
2174
|
+
padding: 8px;
|
|
2175
|
+
border: 4px solid #000;
|
|
1250
2176
|
font-size: 12px;
|
|
2177
|
+
line-height: 1.4;
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
.footer {
|
|
2181
|
+
padding: 8px;
|
|
2182
|
+
font-size: 11px;
|
|
1251
2183
|
}
|
|
1252
2184
|
|
|
1253
2185
|
button,
|
|
1254
2186
|
.firmware {
|
|
2187
|
+
font-size: 13px;
|
|
2188
|
+
padding-left: 10px;
|
|
2189
|
+
padding-right: 10px;
|
|
2190
|
+
}
|
|
2191
|
+
|
|
2192
|
+
/* Console optimization for small screens */
|
|
2193
|
+
.console-container {
|
|
2194
|
+
height: 300px;
|
|
2195
|
+
font-size: 12px;
|
|
2196
|
+
}
|
|
2197
|
+
|
|
2198
|
+
/* Filesystem manager for small screens */
|
|
2199
|
+
.littlefs-manager {
|
|
2200
|
+
padding: 8px;
|
|
2201
|
+
margin: 8px auto;
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
.littlefs-controls button,
|
|
2205
|
+
.littlefs-file-upload button {
|
|
2206
|
+
height: 36px;
|
|
1255
2207
|
font-size: 14px;
|
|
1256
|
-
|
|
1257
|
-
|
|
2208
|
+
}
|
|
2209
|
+
|
|
2210
|
+
.file-table {
|
|
2211
|
+
font-size: 12px;
|
|
2212
|
+
}
|
|
2213
|
+
|
|
2214
|
+
.file-table th,
|
|
2215
|
+
.file-table td {
|
|
2216
|
+
padding: 6px 4px;
|
|
2217
|
+
}
|
|
2218
|
+
|
|
2219
|
+
.file-actions button {
|
|
2220
|
+
height: 32px;
|
|
2221
|
+
font-size: 13px;
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
/* Modals for small screens */
|
|
2225
|
+
.modal-content {
|
|
2226
|
+
padding: 12px;
|
|
2227
|
+
max-width: 96%;
|
|
2228
|
+
}
|
|
2229
|
+
|
|
2230
|
+
.modal-button {
|
|
2231
|
+
height: 36px;
|
|
2232
|
+
font-size: 15px;
|
|
2233
|
+
padding: 0 16px;
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2236
|
+
.file-viewer-header,
|
|
2237
|
+
.file-viewer-info,
|
|
2238
|
+
.file-viewer-tabs,
|
|
2239
|
+
.file-viewer-body,
|
|
2240
|
+
.file-viewer-footer {
|
|
2241
|
+
padding-left: 10px;
|
|
2242
|
+
padding-right: 10px;
|
|
2243
|
+
}
|
|
2244
|
+
|
|
2245
|
+
.file-viewer-body pre {
|
|
2246
|
+
font-size: 9px;
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
/* Prevent text selection on interactive elements */
|
|
2250
|
+
button,
|
|
2251
|
+
.onoffswitch-label,
|
|
2252
|
+
.firmware {
|
|
2253
|
+
-webkit-user-select: none;
|
|
2254
|
+
-moz-user-select: none;
|
|
2255
|
+
-ms-user-select: none;
|
|
2256
|
+
user-select: none;
|
|
2257
|
+
-webkit-tap-highlight-color: transparent;
|
|
1258
2258
|
}
|
|
1259
2259
|
}
|