reviw 1.4.1 → 1.5.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/dist/server/server.js +375 -898
- package/dist/ui/ui.js +474 -1085
- package/package.json +3 -3
package/dist/server/server.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { dirname as dirname$
|
|
3
|
-
import { spawnSync as spawnSync$
|
|
4
|
-
import { createHash as createHash$
|
|
5
|
-
import { createServer as createServer$
|
|
6
|
-
import { statSync as statSync$
|
|
7
|
-
import { tmpdir as tmpdir$
|
|
2
|
+
import { dirname as dirname$1974, join as join$1948, resolve as resolve$1993, extname as extname$1981, basename as basename$1991 } from "node:path";
|
|
3
|
+
import { spawnSync as spawnSync$2072, execSync as execSync$2039, spawn as spawn$2067 } from "node:child_process";
|
|
4
|
+
import { createHash as createHash$2019 } from "node:crypto";
|
|
5
|
+
import { createServer as createServer$1998 } from "node:http";
|
|
6
|
+
import { statSync as statSync$2090, unwatchFile as unwatchFile$2024, readdirSync as readdirSync$2052, existsSync as existsSync$1957, rmSync as rmSync$2061, mkdtempSync as mkdtempSync$2042, appendFileSync as appendFileSync$1955, createReadStream as createReadStream$2094, writeFileSync as writeFileSync$1952, unlinkSync as unlinkSync$1959, readFileSync as readFileSync$1962, watchFile as watchFile$2128, mkdirSync as mkdirSync$1967 } from "node:fs";
|
|
7
|
+
import { tmpdir as tmpdir$1945, homedir as homedir$1964 } from "node:os";
|
|
8
8
|
class $PanicError extends Error {}
|
|
9
9
|
function $panic() {
|
|
10
10
|
throw new $PanicError();
|
|
@@ -12,22 +12,6 @@ function $panic() {
|
|
|
12
12
|
function _M0TPB13StringBuilder(param0) {
|
|
13
13
|
this.val = param0;
|
|
14
14
|
}
|
|
15
|
-
function $bound_check(arr, index) {
|
|
16
|
-
if (index < 0 || index >= arr.length) throw new Error("Index out of bounds");
|
|
17
|
-
}
|
|
18
|
-
function _M0TPC16string10StringView(param0, param1, param2) {
|
|
19
|
-
this.str = param0;
|
|
20
|
-
this.start = param1;
|
|
21
|
-
this.end = param2;
|
|
22
|
-
}
|
|
23
|
-
function _M0TPB13SourceLocRepr(param0, param1, param2, param3, param4, param5) {
|
|
24
|
-
this.pkg = param0;
|
|
25
|
-
this.filename = param1;
|
|
26
|
-
this.start_line = param2;
|
|
27
|
-
this.start_column = param3;
|
|
28
|
-
this.end_line = param4;
|
|
29
|
-
this.end_column = param5;
|
|
30
|
-
}
|
|
31
15
|
function $compare_int(a, b) {
|
|
32
16
|
return (a >= b) - (a <= b);
|
|
33
17
|
}
|
|
@@ -43,10 +27,18 @@ const _M0FPB12random__seed = () => {
|
|
|
43
27
|
function _M0TPB6Hasher(param0) {
|
|
44
28
|
this.acc = param0;
|
|
45
29
|
}
|
|
30
|
+
function _M0TPC16string10StringView(param0, param1, param2) {
|
|
31
|
+
this.str = param0;
|
|
32
|
+
this.start = param1;
|
|
33
|
+
this.end = param2;
|
|
34
|
+
}
|
|
46
35
|
const _M0FPB19int__to__string__js = (x, radix) => {
|
|
47
36
|
return x.toString(radix);
|
|
48
37
|
};
|
|
49
|
-
function
|
|
38
|
+
function $bound_check(arr, index) {
|
|
39
|
+
if (index < 0 || index >= arr.length) throw new Error("Index out of bounds");
|
|
40
|
+
}
|
|
41
|
+
function _M0TPB8MutLocalGiE(param0) {
|
|
50
42
|
this.val = param0;
|
|
51
43
|
}
|
|
52
44
|
function $make_array_len_and_init(a, b) {
|
|
@@ -55,7 +47,7 @@ function $make_array_len_and_init(a, b) {
|
|
|
55
47
|
return arr;
|
|
56
48
|
}
|
|
57
49
|
const _M0MPB7JSArray4push = (arr, val) => { arr.push(val); };
|
|
58
|
-
function
|
|
50
|
+
function _M0TPB8MutLocalGORPC16string10StringViewE(param0) {
|
|
59
51
|
this.val = param0;
|
|
60
52
|
}
|
|
61
53
|
function _M0TPB3MapGssE(param0, param1, param2, param3, param4, param5, param6) {
|
|
@@ -90,6 +82,9 @@ _M0DTPC16option6OptionGRPB5ArrayGsEE4Some.prototype.$tag = 1;
|
|
|
90
82
|
function _M0TPC13ref3RefGsE(param0) {
|
|
91
83
|
this.val = param0;
|
|
92
84
|
}
|
|
85
|
+
function _M0TPC13ref3RefGiE(param0) {
|
|
86
|
+
this.val = param0;
|
|
87
|
+
}
|
|
93
88
|
function _M0TP36kazuph5reviw4core13ReviwQuestion(param0, param1, param2, param3, param4) {
|
|
94
89
|
this.id = param0;
|
|
95
90
|
this.question = param1;
|
|
@@ -315,147 +310,147 @@ function _M0TP36kazuph5reviw6server13ServerContext(param0, param1, param2, param
|
|
|
315
310
|
this.finished = param9;
|
|
316
311
|
}
|
|
317
312
|
const _M0FP092moonbitlang_2fcore_2fbuiltin_2fStringBuilder_24as_24_40moonbitlang_2fcore_2fbuiltin_2eLogger = { method_0: _M0IPB13StringBuilderPB6Logger13write__string, method_1: _M0IP016_24default__implPB6Logger16write__substringGRPB13StringBuilderE, method_2: _M0IPB13StringBuilderPB6Logger11write__view, method_3: _M0IPB13StringBuilderPB6Logger11write__char };
|
|
318
|
-
const
|
|
319
|
-
const
|
|
320
|
-
const
|
|
321
|
-
const
|
|
322
|
-
const
|
|
323
|
-
const
|
|
324
|
-
const
|
|
325
|
-
const
|
|
326
|
-
const
|
|
327
|
-
const
|
|
328
|
-
const
|
|
329
|
-
const
|
|
330
|
-
const
|
|
331
|
-
const
|
|
332
|
-
const
|
|
333
|
-
const
|
|
334
|
-
const
|
|
335
|
-
const
|
|
336
|
-
const
|
|
337
|
-
const
|
|
338
|
-
const
|
|
339
|
-
const
|
|
340
|
-
const
|
|
341
|
-
const
|
|
342
|
-
const
|
|
343
|
-
const
|
|
344
|
-
const
|
|
345
|
-
const
|
|
346
|
-
const
|
|
347
|
-
const
|
|
348
|
-
const
|
|
349
|
-
const
|
|
350
|
-
const
|
|
351
|
-
const
|
|
352
|
-
const
|
|
353
|
-
const
|
|
354
|
-
const
|
|
355
|
-
const
|
|
356
|
-
const
|
|
357
|
-
const
|
|
358
|
-
const
|
|
359
|
-
const
|
|
360
|
-
const
|
|
361
|
-
const
|
|
362
|
-
const
|
|
363
|
-
const
|
|
364
|
-
const
|
|
365
|
-
const
|
|
366
|
-
const
|
|
367
|
-
const
|
|
368
|
-
const
|
|
369
|
-
const
|
|
370
|
-
const
|
|
371
|
-
const
|
|
372
|
-
const
|
|
373
|
-
const
|
|
313
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560 = ":";
|
|
314
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561 = "#";
|
|
315
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562 = "'";
|
|
316
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563 = "\"";
|
|
317
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564 = "\n";
|
|
318
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565 = "[";
|
|
319
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566 = "]";
|
|
320
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567 = "{";
|
|
321
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568 = "}";
|
|
322
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569 = ",";
|
|
323
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570 = "&";
|
|
324
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571 = "*";
|
|
325
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572 = "!";
|
|
326
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573 = "|";
|
|
327
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS574 = ">";
|
|
328
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS575 = "%";
|
|
329
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS576 = "@";
|
|
330
|
+
const _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS651 = "\n";
|
|
331
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS676 = "- ";
|
|
332
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677 = " -";
|
|
333
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678 = " ";
|
|
334
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS679 = " ";
|
|
335
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS681 = "- ";
|
|
336
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS682 = " ";
|
|
337
|
+
const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS686 = "- ";
|
|
338
|
+
const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS687 = " ";
|
|
339
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS706 = "<details";
|
|
340
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS707 = "<div";
|
|
341
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS708 = "<section";
|
|
342
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS709 = "<article";
|
|
343
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS710 = "<aside";
|
|
344
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS711 = "<nav";
|
|
345
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS712 = "<header";
|
|
346
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS713 = "<footer";
|
|
347
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS715 = "#";
|
|
348
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS716 = "```";
|
|
349
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS717 = ">";
|
|
350
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS718 = "- ";
|
|
351
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS719 = "* ";
|
|
352
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS720 = "<";
|
|
353
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS721 = "graph ";
|
|
354
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS722 = "flowchart ";
|
|
355
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS723 = "sequenceDiagram";
|
|
356
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS724 = "classDiagram";
|
|
357
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS725 = "stateDiagram";
|
|
358
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS726 = "erDiagram";
|
|
359
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS727 = "journey";
|
|
360
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS728 = "gantt";
|
|
361
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS729 = "pie";
|
|
362
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS730 = "gitGraph";
|
|
363
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS731 = "mindmap";
|
|
364
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS732 = "timeline";
|
|
365
|
+
const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS733 = "|";
|
|
366
|
+
const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS734 = "-";
|
|
367
|
+
const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS756 = "|";
|
|
368
|
+
const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS757 = "|";
|
|
369
|
+
const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS758 = "|";
|
|
374
370
|
const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS755 = "|";
|
|
375
|
-
const
|
|
376
|
-
const
|
|
377
|
-
const
|
|
378
|
-
const
|
|
379
|
-
const
|
|
380
|
-
const
|
|
381
|
-
const
|
|
382
|
-
const
|
|
383
|
-
const
|
|
384
|
-
const
|
|
385
|
-
const
|
|
386
|
-
const
|
|
387
|
-
const
|
|
388
|
-
const
|
|
389
|
-
const
|
|
390
|
-
const
|
|
391
|
-
const
|
|
392
|
-
const
|
|
393
|
-
const
|
|
394
|
-
const
|
|
395
|
-
const
|
|
396
|
-
const
|
|
397
|
-
const
|
|
398
|
-
const
|
|
399
|
-
const
|
|
400
|
-
const
|
|
401
|
-
const
|
|
402
|
-
const
|
|
403
|
-
const
|
|
404
|
-
const
|
|
405
|
-
const
|
|
406
|
-
const
|
|
407
|
-
const
|
|
408
|
-
const
|
|
409
|
-
const
|
|
410
|
-
const
|
|
411
|
-
const
|
|
412
|
-
const
|
|
413
|
-
const
|
|
414
|
-
const
|
|
415
|
-
const
|
|
416
|
-
const
|
|
417
|
-
const
|
|
418
|
-
const
|
|
419
|
-
const
|
|
420
|
-
const
|
|
421
|
-
const
|
|
422
|
-
const
|
|
423
|
-
const
|
|
424
|
-
const
|
|
425
|
-
const
|
|
426
|
-
const
|
|
427
|
-
const
|
|
428
|
-
const
|
|
429
|
-
const
|
|
430
|
-
const
|
|
431
|
-
const
|
|
432
|
-
const
|
|
433
|
-
const
|
|
434
|
-
const
|
|
435
|
-
const
|
|
436
|
-
const
|
|
437
|
-
const
|
|
438
|
-
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f665 = 1;
|
|
371
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759 = ".mp4";
|
|
372
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760 = ".webm";
|
|
373
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761 = ".mov";
|
|
374
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS762 = ".avi";
|
|
375
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS763 = ".mkv";
|
|
376
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS764 = ".m4v";
|
|
377
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS765 = ".ogv";
|
|
378
|
+
const _M0FP36kazuph5reviw4core14render__inlineN7_2abindS771 = "javascript:";
|
|
379
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784 = "expression(";
|
|
380
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785 = "url(";
|
|
381
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786 = "-moz-binding";
|
|
382
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787 = "behavior:";
|
|
383
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS788 = "behaviour:";
|
|
384
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS789 = "javascript:";
|
|
385
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS790 = "vbscript:";
|
|
386
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS791 = "@import";
|
|
387
|
+
const _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS792 = "on";
|
|
388
|
+
const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS793 = "javascript:";
|
|
389
|
+
const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS794 = "data:text/html";
|
|
390
|
+
const _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS810 = ">";
|
|
391
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS812 = "<";
|
|
392
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814 = "<summary>";
|
|
393
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS815 = "</details>";
|
|
394
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS817 = "</details>";
|
|
395
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818 = "<details";
|
|
396
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822 = "#";
|
|
397
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823 = "```";
|
|
398
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825 = "```";
|
|
399
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS826 = ">";
|
|
400
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS828 = ">";
|
|
401
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833 = "- ";
|
|
402
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834 = "* ";
|
|
403
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS839 = "- ";
|
|
404
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS840 = "* ";
|
|
405
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836 = "[ ] ";
|
|
406
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS837 = "[x] ";
|
|
407
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS838 = "[X] ";
|
|
408
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS851 = "|";
|
|
409
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979 = "@@ ";
|
|
410
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981 = "@@ ";
|
|
411
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982 = "diff ";
|
|
412
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983 = "--- ";
|
|
413
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984 = "+";
|
|
414
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS985 = "-";
|
|
415
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS986 = " ";
|
|
416
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS987 = "diff ";
|
|
417
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS988 = "--- ";
|
|
418
|
+
const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS990 = "a/";
|
|
419
|
+
const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS991 = "b/";
|
|
420
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993 = "diff --git ";
|
|
421
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS995 = "new file mode";
|
|
422
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS996 = "deleted file mode";
|
|
423
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997 = "Binary files";
|
|
424
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998 = "index ";
|
|
425
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS999 = "--- ";
|
|
426
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS1000 = "+++ ";
|
|
427
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS1001 = "--- ";
|
|
428
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS1002 = "+++ ";
|
|
429
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f569 = 0;
|
|
430
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f570 = 1;
|
|
431
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f571 = 2;
|
|
432
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f573 = 0;
|
|
433
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f574 = 1;
|
|
439
434
|
const _M0FP36kazuph5reviw6server15active__servers = [];
|
|
440
435
|
const _M0FP36kazuph5reviw6server12all__results = [];
|
|
441
436
|
const _M0FP36kazuph5reviw6server12print__usageN5usageS419 = "Usage: reviw <file...> [options]\n\nOptions:\n --port <n> Base port (default: 4989)\n --host <addr> Bind address (default: 127.0.0.1, use 0.0.0.0 for remote)\n --no-open Don't open browser\n -e, --encoding <enc> Force encoding (e.g. shift-jis, euc-jp)\n -h, --help Show help\n -v, --version Show version\n\nSupported formats: CSV, TSV, Markdown, Diff, Plain text\nPipe stdin for diff: git diff | reviw";
|
|
442
437
|
const _M0FP36kazuph5reviw6server12detect__modeN7_2abindS462 = ".";
|
|
443
|
-
const
|
|
444
|
-
const
|
|
445
|
-
const
|
|
446
|
-
const
|
|
447
|
-
const
|
|
448
|
-
const
|
|
449
|
-
const
|
|
450
|
-
const
|
|
451
|
-
const
|
|
452
|
-
const
|
|
453
|
-
const
|
|
454
|
-
const
|
|
438
|
+
const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530 = "..";
|
|
439
|
+
const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS534 = "scene_";
|
|
440
|
+
const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS535 = ".jpg";
|
|
441
|
+
const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS570 = "/";
|
|
442
|
+
const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS568 = "..";
|
|
443
|
+
const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS569 = "video/";
|
|
444
|
+
const _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS572 = "/";
|
|
445
|
+
const _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS571 = "..";
|
|
446
|
+
const _M0FP36kazuph5reviw6server15handle__requestN7_2abindS573 = "/video-timeline?";
|
|
447
|
+
const _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS574 = "true";
|
|
448
|
+
const _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS575 = "true";
|
|
449
|
+
const _M0FP017____moonbit__mainN7_2abindS594 = "-";
|
|
455
450
|
const _M0FP36kazuph5reviw6server15expected__count = _M0MPC13ref3Ref3newGiE(0);
|
|
456
451
|
const _M0FP36kazuph5reviw6server18encoding__override = _M0MPC13ref3Ref3newGsE("");
|
|
457
|
-
const
|
|
458
|
-
const
|
|
452
|
+
const _M0FPB33brute__force__find_2econstr_2f153 = 0;
|
|
453
|
+
const _M0FPB43boyer__moore__horspool__find_2econstr_2f139 = 0;
|
|
459
454
|
const _M0FP36kazuph5reviw6server10bind__host = _M0MPC13ref3Ref3newGsE("127.0.0.1");
|
|
460
455
|
const _M0FP36kazuph5reviw6server13ui__js__cache = _M0MPC13ref3Ref3newGsE("");
|
|
461
456
|
const _M0FPB4seed = _M0FPB12random__seed();
|
|
@@ -497,447 +492,6 @@ function _M0MPC16uint166UInt1623is__trailing__surrogate(self) {
|
|
|
497
492
|
function _M0FPB32code__point__of__surrogate__pair(leading, trailing) {
|
|
498
493
|
return (((Math.imul(leading - 55296 | 0, 1024) | 0) + trailing | 0) - 56320 | 0) + 65536 | 0;
|
|
499
494
|
}
|
|
500
|
-
function _M0MPC15array5Array2atGsE(self, index) {
|
|
501
|
-
const len = self.length;
|
|
502
|
-
if (index >= 0 && index < len) {
|
|
503
|
-
$bound_check(self, index);
|
|
504
|
-
return self[index];
|
|
505
|
-
} else {
|
|
506
|
-
return $panic();
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
function _M0MPC15array5Array2atGcE(self, index) {
|
|
510
|
-
const len = self.length;
|
|
511
|
-
if (index >= 0 && index < len) {
|
|
512
|
-
$bound_check(self, index);
|
|
513
|
-
return self[index];
|
|
514
|
-
} else {
|
|
515
|
-
return $panic();
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
function _M0MPC15array5Array2atGRPB5ArrayGsEE(self, index) {
|
|
519
|
-
const len = self.length;
|
|
520
|
-
if (index >= 0 && index < len) {
|
|
521
|
-
$bound_check(self, index);
|
|
522
|
-
return self[index];
|
|
523
|
-
} else {
|
|
524
|
-
return $panic();
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
function _M0MPC15array5Array2atGdE(self, index) {
|
|
528
|
-
const len = self.length;
|
|
529
|
-
if (index >= 0 && index < len) {
|
|
530
|
-
$bound_check(self, index);
|
|
531
|
-
return self[index];
|
|
532
|
-
} else {
|
|
533
|
-
return $panic();
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
function _M0MPB13SourceLocRepr5parse(repr) {
|
|
537
|
-
const _bind = new _M0TPC16string10StringView(repr, 0, repr.length);
|
|
538
|
-
const _data = _bind.str;
|
|
539
|
-
const _start = _bind.start;
|
|
540
|
-
const _end = _start + (_bind.end - _bind.start | 0) | 0;
|
|
541
|
-
let _cursor = _start;
|
|
542
|
-
let accept_state = -1;
|
|
543
|
-
let match_end = -1;
|
|
544
|
-
let match_tag_saver_0 = -1;
|
|
545
|
-
let match_tag_saver_1 = -1;
|
|
546
|
-
let match_tag_saver_2 = -1;
|
|
547
|
-
let match_tag_saver_3 = -1;
|
|
548
|
-
let match_tag_saver_4 = -1;
|
|
549
|
-
let tag_0 = -1;
|
|
550
|
-
let tag_1 = -1;
|
|
551
|
-
let tag_1_1 = -1;
|
|
552
|
-
let tag_1_2 = -1;
|
|
553
|
-
let tag_3 = -1;
|
|
554
|
-
let tag_2 = -1;
|
|
555
|
-
let tag_2_1 = -1;
|
|
556
|
-
let tag_4 = -1;
|
|
557
|
-
_L: {
|
|
558
|
-
if (_cursor < _end) {
|
|
559
|
-
const _p = _cursor;
|
|
560
|
-
if (_data.charCodeAt(_p) === 64) {
|
|
561
|
-
_cursor = _cursor + 1 | 0;
|
|
562
|
-
_L$2: while (true) {
|
|
563
|
-
tag_0 = _cursor;
|
|
564
|
-
if (_cursor < _end) {
|
|
565
|
-
const _p$2 = _cursor;
|
|
566
|
-
const next_char = _data.charCodeAt(_p$2);
|
|
567
|
-
_cursor = _cursor + 1 | 0;
|
|
568
|
-
if (next_char === 58) {
|
|
569
|
-
if (_cursor < _end) {
|
|
570
|
-
_cursor = _cursor + 1 | 0;
|
|
571
|
-
let _tmp = 0;
|
|
572
|
-
_L$3: while (true) {
|
|
573
|
-
const dispatch_15 = _tmp;
|
|
574
|
-
_L$4: {
|
|
575
|
-
_L$5: {
|
|
576
|
-
switch (dispatch_15) {
|
|
577
|
-
case 3: {
|
|
578
|
-
tag_1_2 = tag_1_1;
|
|
579
|
-
tag_1_1 = tag_1;
|
|
580
|
-
tag_1 = _cursor;
|
|
581
|
-
if (_cursor < _end) {
|
|
582
|
-
_L$6: {
|
|
583
|
-
const _p$3 = _cursor;
|
|
584
|
-
const next_char$2 = _data.charCodeAt(_p$3);
|
|
585
|
-
_cursor = _cursor + 1 | 0;
|
|
586
|
-
if (next_char$2 < 58) {
|
|
587
|
-
if (next_char$2 < 48) {
|
|
588
|
-
break _L$6;
|
|
589
|
-
} else {
|
|
590
|
-
tag_1 = _cursor;
|
|
591
|
-
tag_2_1 = tag_2;
|
|
592
|
-
tag_2 = _cursor;
|
|
593
|
-
tag_3 = _cursor;
|
|
594
|
-
if (_cursor < _end) {
|
|
595
|
-
_L$7: {
|
|
596
|
-
const _p$4 = _cursor;
|
|
597
|
-
const next_char$3 = _data.charCodeAt(_p$4);
|
|
598
|
-
_cursor = _cursor + 1 | 0;
|
|
599
|
-
if (next_char$3 < 48) {
|
|
600
|
-
if (next_char$3 === 45) {
|
|
601
|
-
break _L$4;
|
|
602
|
-
} else {
|
|
603
|
-
break _L$7;
|
|
604
|
-
}
|
|
605
|
-
} else {
|
|
606
|
-
if (next_char$3 > 57) {
|
|
607
|
-
if (next_char$3 < 59) {
|
|
608
|
-
_tmp = 3;
|
|
609
|
-
continue _L$3;
|
|
610
|
-
} else {
|
|
611
|
-
break _L$7;
|
|
612
|
-
}
|
|
613
|
-
} else {
|
|
614
|
-
_tmp = 6;
|
|
615
|
-
continue _L$3;
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
_tmp = 0;
|
|
620
|
-
continue _L$3;
|
|
621
|
-
} else {
|
|
622
|
-
break _L;
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
} else {
|
|
626
|
-
if (next_char$2 > 58) {
|
|
627
|
-
break _L$6;
|
|
628
|
-
} else {
|
|
629
|
-
_tmp = 1;
|
|
630
|
-
continue _L$3;
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
_tmp = 0;
|
|
635
|
-
continue _L$3;
|
|
636
|
-
} else {
|
|
637
|
-
break _L;
|
|
638
|
-
}
|
|
639
|
-
}
|
|
640
|
-
case 2: {
|
|
641
|
-
tag_1 = _cursor;
|
|
642
|
-
tag_2 = _cursor;
|
|
643
|
-
if (_cursor < _end) {
|
|
644
|
-
_L$6: {
|
|
645
|
-
const _p$3 = _cursor;
|
|
646
|
-
const next_char$2 = _data.charCodeAt(_p$3);
|
|
647
|
-
_cursor = _cursor + 1 | 0;
|
|
648
|
-
if (next_char$2 < 58) {
|
|
649
|
-
if (next_char$2 < 48) {
|
|
650
|
-
break _L$6;
|
|
651
|
-
} else {
|
|
652
|
-
_tmp = 2;
|
|
653
|
-
continue _L$3;
|
|
654
|
-
}
|
|
655
|
-
} else {
|
|
656
|
-
if (next_char$2 > 58) {
|
|
657
|
-
break _L$6;
|
|
658
|
-
} else {
|
|
659
|
-
_tmp = 3;
|
|
660
|
-
continue _L$3;
|
|
661
|
-
}
|
|
662
|
-
}
|
|
663
|
-
}
|
|
664
|
-
_tmp = 0;
|
|
665
|
-
continue _L$3;
|
|
666
|
-
} else {
|
|
667
|
-
break _L;
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
case 0: {
|
|
671
|
-
tag_1 = _cursor;
|
|
672
|
-
if (_cursor < _end) {
|
|
673
|
-
const _p$3 = _cursor;
|
|
674
|
-
const next_char$2 = _data.charCodeAt(_p$3);
|
|
675
|
-
_cursor = _cursor + 1 | 0;
|
|
676
|
-
if (next_char$2 === 58) {
|
|
677
|
-
_tmp = 1;
|
|
678
|
-
continue _L$3;
|
|
679
|
-
} else {
|
|
680
|
-
_tmp = 0;
|
|
681
|
-
continue _L$3;
|
|
682
|
-
}
|
|
683
|
-
} else {
|
|
684
|
-
break _L;
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
case 4: {
|
|
688
|
-
tag_1 = _cursor;
|
|
689
|
-
tag_4 = _cursor;
|
|
690
|
-
if (_cursor < _end) {
|
|
691
|
-
_L$6: {
|
|
692
|
-
const _p$3 = _cursor;
|
|
693
|
-
const next_char$2 = _data.charCodeAt(_p$3);
|
|
694
|
-
_cursor = _cursor + 1 | 0;
|
|
695
|
-
if (next_char$2 < 58) {
|
|
696
|
-
if (next_char$2 < 48) {
|
|
697
|
-
break _L$6;
|
|
698
|
-
} else {
|
|
699
|
-
_tmp = 4;
|
|
700
|
-
continue _L$3;
|
|
701
|
-
}
|
|
702
|
-
} else {
|
|
703
|
-
if (next_char$2 > 58) {
|
|
704
|
-
break _L$6;
|
|
705
|
-
} else {
|
|
706
|
-
tag_1_2 = tag_1_1;
|
|
707
|
-
tag_1_1 = tag_1;
|
|
708
|
-
tag_1 = _cursor;
|
|
709
|
-
if (_cursor < _end) {
|
|
710
|
-
_L$7: {
|
|
711
|
-
const _p$4 = _cursor;
|
|
712
|
-
const next_char$3 = _data.charCodeAt(_p$4);
|
|
713
|
-
_cursor = _cursor + 1 | 0;
|
|
714
|
-
if (next_char$3 < 58) {
|
|
715
|
-
if (next_char$3 < 48) {
|
|
716
|
-
break _L$7;
|
|
717
|
-
} else {
|
|
718
|
-
tag_1 = _cursor;
|
|
719
|
-
tag_2_1 = tag_2;
|
|
720
|
-
tag_2 = _cursor;
|
|
721
|
-
if (_cursor < _end) {
|
|
722
|
-
_L$8: {
|
|
723
|
-
const _p$5 = _cursor;
|
|
724
|
-
const next_char$4 = _data.charCodeAt(_p$5);
|
|
725
|
-
_cursor = _cursor + 1 | 0;
|
|
726
|
-
if (next_char$4 < 58) {
|
|
727
|
-
if (next_char$4 < 48) {
|
|
728
|
-
break _L$8;
|
|
729
|
-
} else {
|
|
730
|
-
_tmp = 5;
|
|
731
|
-
continue _L$3;
|
|
732
|
-
}
|
|
733
|
-
} else {
|
|
734
|
-
if (next_char$4 > 58) {
|
|
735
|
-
break _L$8;
|
|
736
|
-
} else {
|
|
737
|
-
_tmp = 3;
|
|
738
|
-
continue _L$3;
|
|
739
|
-
}
|
|
740
|
-
}
|
|
741
|
-
}
|
|
742
|
-
_tmp = 0;
|
|
743
|
-
continue _L$3;
|
|
744
|
-
} else {
|
|
745
|
-
break _L$5;
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
} else {
|
|
749
|
-
if (next_char$3 > 58) {
|
|
750
|
-
break _L$7;
|
|
751
|
-
} else {
|
|
752
|
-
_tmp = 1;
|
|
753
|
-
continue _L$3;
|
|
754
|
-
}
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
_tmp = 0;
|
|
758
|
-
continue _L$3;
|
|
759
|
-
} else {
|
|
760
|
-
break _L;
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
_tmp = 0;
|
|
766
|
-
continue _L$3;
|
|
767
|
-
} else {
|
|
768
|
-
break _L;
|
|
769
|
-
}
|
|
770
|
-
}
|
|
771
|
-
case 5: {
|
|
772
|
-
tag_1 = _cursor;
|
|
773
|
-
tag_2 = _cursor;
|
|
774
|
-
if (_cursor < _end) {
|
|
775
|
-
_L$6: {
|
|
776
|
-
const _p$3 = _cursor;
|
|
777
|
-
const next_char$2 = _data.charCodeAt(_p$3);
|
|
778
|
-
_cursor = _cursor + 1 | 0;
|
|
779
|
-
if (next_char$2 < 58) {
|
|
780
|
-
if (next_char$2 < 48) {
|
|
781
|
-
break _L$6;
|
|
782
|
-
} else {
|
|
783
|
-
_tmp = 5;
|
|
784
|
-
continue _L$3;
|
|
785
|
-
}
|
|
786
|
-
} else {
|
|
787
|
-
if (next_char$2 > 58) {
|
|
788
|
-
break _L$6;
|
|
789
|
-
} else {
|
|
790
|
-
_tmp = 3;
|
|
791
|
-
continue _L$3;
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
_tmp = 0;
|
|
796
|
-
continue _L$3;
|
|
797
|
-
} else {
|
|
798
|
-
break _L$5;
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
case 6: {
|
|
802
|
-
tag_1 = _cursor;
|
|
803
|
-
tag_2 = _cursor;
|
|
804
|
-
tag_3 = _cursor;
|
|
805
|
-
if (_cursor < _end) {
|
|
806
|
-
_L$6: {
|
|
807
|
-
const _p$3 = _cursor;
|
|
808
|
-
const next_char$2 = _data.charCodeAt(_p$3);
|
|
809
|
-
_cursor = _cursor + 1 | 0;
|
|
810
|
-
if (next_char$2 < 48) {
|
|
811
|
-
if (next_char$2 === 45) {
|
|
812
|
-
break _L$4;
|
|
813
|
-
} else {
|
|
814
|
-
break _L$6;
|
|
815
|
-
}
|
|
816
|
-
} else {
|
|
817
|
-
if (next_char$2 > 57) {
|
|
818
|
-
if (next_char$2 < 59) {
|
|
819
|
-
_tmp = 3;
|
|
820
|
-
continue _L$3;
|
|
821
|
-
} else {
|
|
822
|
-
break _L$6;
|
|
823
|
-
}
|
|
824
|
-
} else {
|
|
825
|
-
_tmp = 6;
|
|
826
|
-
continue _L$3;
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
_tmp = 0;
|
|
831
|
-
continue _L$3;
|
|
832
|
-
} else {
|
|
833
|
-
break _L;
|
|
834
|
-
}
|
|
835
|
-
}
|
|
836
|
-
case 1: {
|
|
837
|
-
tag_1_1 = tag_1;
|
|
838
|
-
tag_1 = _cursor;
|
|
839
|
-
if (_cursor < _end) {
|
|
840
|
-
_L$6: {
|
|
841
|
-
const _p$3 = _cursor;
|
|
842
|
-
const next_char$2 = _data.charCodeAt(_p$3);
|
|
843
|
-
_cursor = _cursor + 1 | 0;
|
|
844
|
-
if (next_char$2 < 58) {
|
|
845
|
-
if (next_char$2 < 48) {
|
|
846
|
-
break _L$6;
|
|
847
|
-
} else {
|
|
848
|
-
_tmp = 2;
|
|
849
|
-
continue _L$3;
|
|
850
|
-
}
|
|
851
|
-
} else {
|
|
852
|
-
if (next_char$2 > 58) {
|
|
853
|
-
break _L$6;
|
|
854
|
-
} else {
|
|
855
|
-
_tmp = 1;
|
|
856
|
-
continue _L$3;
|
|
857
|
-
}
|
|
858
|
-
}
|
|
859
|
-
}
|
|
860
|
-
_tmp = 0;
|
|
861
|
-
continue _L$3;
|
|
862
|
-
} else {
|
|
863
|
-
break _L;
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
default: {
|
|
867
|
-
break _L;
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
tag_1 = tag_1_2;
|
|
872
|
-
tag_2 = tag_2_1;
|
|
873
|
-
match_tag_saver_0 = tag_0;
|
|
874
|
-
match_tag_saver_1 = tag_1;
|
|
875
|
-
match_tag_saver_2 = tag_2;
|
|
876
|
-
match_tag_saver_3 = tag_3;
|
|
877
|
-
match_tag_saver_4 = tag_4;
|
|
878
|
-
accept_state = 0;
|
|
879
|
-
match_end = _cursor;
|
|
880
|
-
break _L;
|
|
881
|
-
}
|
|
882
|
-
tag_1_1 = tag_1_2;
|
|
883
|
-
tag_1 = _cursor;
|
|
884
|
-
tag_2 = tag_2_1;
|
|
885
|
-
if (_cursor < _end) {
|
|
886
|
-
_L$5: {
|
|
887
|
-
const _p$3 = _cursor;
|
|
888
|
-
const next_char$2 = _data.charCodeAt(_p$3);
|
|
889
|
-
_cursor = _cursor + 1 | 0;
|
|
890
|
-
if (next_char$2 < 58) {
|
|
891
|
-
if (next_char$2 < 48) {
|
|
892
|
-
break _L$5;
|
|
893
|
-
} else {
|
|
894
|
-
_tmp = 4;
|
|
895
|
-
continue;
|
|
896
|
-
}
|
|
897
|
-
} else {
|
|
898
|
-
if (next_char$2 > 58) {
|
|
899
|
-
break _L$5;
|
|
900
|
-
} else {
|
|
901
|
-
_tmp = 1;
|
|
902
|
-
continue;
|
|
903
|
-
}
|
|
904
|
-
}
|
|
905
|
-
}
|
|
906
|
-
_tmp = 0;
|
|
907
|
-
continue;
|
|
908
|
-
} else {
|
|
909
|
-
break _L;
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
} else {
|
|
913
|
-
break _L;
|
|
914
|
-
}
|
|
915
|
-
} else {
|
|
916
|
-
continue;
|
|
917
|
-
}
|
|
918
|
-
} else {
|
|
919
|
-
break _L;
|
|
920
|
-
}
|
|
921
|
-
}
|
|
922
|
-
} else {
|
|
923
|
-
break _L;
|
|
924
|
-
}
|
|
925
|
-
} else {
|
|
926
|
-
break _L;
|
|
927
|
-
}
|
|
928
|
-
}
|
|
929
|
-
if (accept_state === 0) {
|
|
930
|
-
const start_line = _M0MPC16string6String4view(_data, match_tag_saver_1 + 1 | 0, match_tag_saver_2);
|
|
931
|
-
const start_column = _M0MPC16string6String4view(_data, match_tag_saver_2 + 1 | 0, match_tag_saver_3);
|
|
932
|
-
const pkg = _M0MPC16string6String4view(_data, _start + 1 | 0, match_tag_saver_0);
|
|
933
|
-
const filename = _M0MPC16string6String4view(_data, match_tag_saver_0 + 1 | 0, match_tag_saver_1);
|
|
934
|
-
const end_line = _M0MPC16string6String4view(_data, match_tag_saver_3 + 1 | 0, match_tag_saver_4);
|
|
935
|
-
const end_column = _M0MPC16string6String4view(_data, match_tag_saver_4 + 1 | 0, match_end);
|
|
936
|
-
return new _M0TPB13SourceLocRepr(pkg, filename, start_line, start_column, end_line, end_column);
|
|
937
|
-
} else {
|
|
938
|
-
return $panic();
|
|
939
|
-
}
|
|
940
|
-
}
|
|
941
495
|
function _M0IPB13StringBuilderPB6Logger13write__string(self, str) {
|
|
942
496
|
self.val = `${self.val}${str}`;
|
|
943
497
|
}
|
|
@@ -1019,7 +573,8 @@ function _M0IP016_24default__implPB4Show10to__stringGiE(self) {
|
|
|
1019
573
|
}
|
|
1020
574
|
function _M0IP016_24default__implPB4Show10to__stringGRPB9SourceLocE(self) {
|
|
1021
575
|
const logger = _M0MPB13StringBuilder11new_2einner(0);
|
|
1022
|
-
|
|
576
|
+
const _p = { self: logger, method_table: _M0FP092moonbitlang_2fcore_2fbuiltin_2fStringBuilder_24as_24_40moonbitlang_2fcore_2fbuiltin_2eLogger };
|
|
577
|
+
_p.method_table.method_0(_p.self, self);
|
|
1023
578
|
return logger.val;
|
|
1024
579
|
}
|
|
1025
580
|
function _M0MPB4Iter4nextGcE(self) {
|
|
@@ -1041,7 +596,7 @@ function _M0MPC16string10StringView12view_2einner(self, start_offset, end_offset
|
|
|
1041
596
|
const _Some = end_offset;
|
|
1042
597
|
end_offset$2 = _Some;
|
|
1043
598
|
}
|
|
1044
|
-
return start_offset >= 0 && (start_offset <= end_offset$2 && end_offset$2 <= (self.end - self.start | 0)) ? new _M0TPC16string10StringView(self.str, self.start + start_offset | 0, self.start + end_offset$2 | 0) : _M0FPB5abortGRPC16string10StringViewE("Invalid index for View", "
|
|
599
|
+
return start_offset >= 0 && (start_offset <= end_offset$2 && end_offset$2 <= (self.end - self.start | 0)) ? new _M0TPC16string10StringView(self.str, self.start + start_offset | 0, self.start + end_offset$2 | 0) : _M0FPB5abortGRPC16string10StringViewE("Invalid index for View", "builtin/stringview.mbt:113:5-113:36@moonbitlang/core");
|
|
1045
600
|
}
|
|
1046
601
|
function _M0IPC16string10StringViewPB4Show10to__string(self) {
|
|
1047
602
|
return self.str.substring(self.start, self.end);
|
|
@@ -1049,7 +604,7 @@ function _M0IPC16string10StringViewPB4Show10to__string(self) {
|
|
|
1049
604
|
function _M0MPC16string10StringView4iter(self) {
|
|
1050
605
|
const start = self.start;
|
|
1051
606
|
const end = self.end;
|
|
1052
|
-
const index = new
|
|
607
|
+
const index = new _M0TPB8MutLocalGiE(start);
|
|
1053
608
|
const _p = () => {
|
|
1054
609
|
if (index.val < end) {
|
|
1055
610
|
const c1 = self.str.charCodeAt(index.val);
|
|
@@ -1074,8 +629,8 @@ function _M0MPB5Iter23newGicE(f) {
|
|
|
1074
629
|
function _M0MPC16string10StringView5iter2(self) {
|
|
1075
630
|
const start = self.start;
|
|
1076
631
|
const end = self.end;
|
|
1077
|
-
const index = new
|
|
1078
|
-
const char_index = new
|
|
632
|
+
const index = new _M0TPB8MutLocalGiE(start);
|
|
633
|
+
const char_index = new _M0TPB8MutLocalGiE(0);
|
|
1079
634
|
return _M0MPB5Iter23newGicE(() => {
|
|
1080
635
|
if (index.val < end) {
|
|
1081
636
|
const c1 = self.str.charCodeAt(index.val);
|
|
@@ -1105,17 +660,7 @@ function _M0MPC16string6String12view_2einner(self, start_offset, end_offset) {
|
|
|
1105
660
|
const _Some = end_offset;
|
|
1106
661
|
end_offset$2 = _Some;
|
|
1107
662
|
}
|
|
1108
|
-
return start_offset >= 0 && (start_offset <= end_offset$2 && end_offset$2 <= self.length) ? new _M0TPC16string10StringView(self, start_offset, end_offset$2) : _M0FPB5abortGRPC16string10StringViewE("Invalid index for View", "
|
|
1109
|
-
}
|
|
1110
|
-
function _M0MPC16string6String4view(self, start_offset$46$opt, end_offset) {
|
|
1111
|
-
let start_offset;
|
|
1112
|
-
if (start_offset$46$opt === undefined) {
|
|
1113
|
-
start_offset = 0;
|
|
1114
|
-
} else {
|
|
1115
|
-
const _Some = start_offset$46$opt;
|
|
1116
|
-
start_offset = _Some;
|
|
1117
|
-
}
|
|
1118
|
-
return _M0MPC16string6String12view_2einner(self, start_offset, end_offset);
|
|
663
|
+
return start_offset >= 0 && (start_offset <= end_offset$2 && end_offset$2 <= self.length) ? new _M0TPC16string10StringView(self, start_offset, end_offset$2) : _M0FPB5abortGRPC16string10StringViewE("Invalid index for View", "builtin/stringview.mbt:398:5-398:36@moonbitlang/core");
|
|
1119
664
|
}
|
|
1120
665
|
function _M0IPB13StringBuilderPB6Logger11write__view(self, str) {
|
|
1121
666
|
self.val = `${self.val}${_M0IPC16string10StringViewPB4Show10to__string(str)}`;
|
|
@@ -1178,7 +723,7 @@ function _M0FPB28boyer__moore__horspool__find(haystack, needle) {
|
|
|
1178
723
|
return undefined;
|
|
1179
724
|
}
|
|
1180
725
|
} else {
|
|
1181
|
-
return
|
|
726
|
+
return _M0FPB43boyer__moore__horspool__find_2econstr_2f139;
|
|
1182
727
|
}
|
|
1183
728
|
}
|
|
1184
729
|
function _M0FPB18brute__force__find(haystack, needle) {
|
|
@@ -1189,44 +734,32 @@ function _M0FPB18brute__force__find(haystack, needle) {
|
|
|
1189
734
|
const _p = 0;
|
|
1190
735
|
const needle_first = needle.str.charCodeAt(needle.start + _p | 0);
|
|
1191
736
|
const forward_len = haystack_len - needle_len | 0;
|
|
1192
|
-
let
|
|
737
|
+
let _tmp = 0;
|
|
1193
738
|
while (true) {
|
|
739
|
+
const i = _tmp;
|
|
1194
740
|
if (i <= forward_len) {
|
|
741
|
+
const _p$2 = haystack.str.charCodeAt(haystack.start + i | 0);
|
|
742
|
+
if (_p$2 !== needle_first) {
|
|
743
|
+
_tmp = i + 1 | 0;
|
|
744
|
+
continue;
|
|
745
|
+
}
|
|
746
|
+
let _tmp$2 = 1;
|
|
1195
747
|
while (true) {
|
|
1196
|
-
|
|
1197
|
-
if (
|
|
1198
|
-
const _p$
|
|
1199
|
-
const _p$
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
i = i + 1 | 0;
|
|
748
|
+
const j = _tmp$2;
|
|
749
|
+
if (j < needle_len) {
|
|
750
|
+
const _p$3 = i + j | 0;
|
|
751
|
+
const _p$4 = haystack.str.charCodeAt(haystack.start + _p$3 | 0);
|
|
752
|
+
const _p$5 = needle.str.charCodeAt(needle.start + j | 0);
|
|
753
|
+
if (_p$4 !== _p$5) {
|
|
754
|
+
break;
|
|
755
|
+
}
|
|
756
|
+
_tmp$2 = j + 1 | 0;
|
|
1206
757
|
continue;
|
|
1207
758
|
} else {
|
|
1208
|
-
|
|
1209
|
-
}
|
|
1210
|
-
}
|
|
1211
|
-
if (i <= forward_len) {
|
|
1212
|
-
let _tmp = 1;
|
|
1213
|
-
while (true) {
|
|
1214
|
-
const j = _tmp;
|
|
1215
|
-
if (j < needle_len) {
|
|
1216
|
-
const _p$2 = i + j | 0;
|
|
1217
|
-
const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
|
|
1218
|
-
const _p$4 = needle.str.charCodeAt(needle.start + j | 0);
|
|
1219
|
-
if (_p$3 !== _p$4) {
|
|
1220
|
-
break;
|
|
1221
|
-
}
|
|
1222
|
-
_tmp = j + 1 | 0;
|
|
1223
|
-
continue;
|
|
1224
|
-
} else {
|
|
1225
|
-
return i;
|
|
1226
|
-
}
|
|
759
|
+
return i;
|
|
1227
760
|
}
|
|
1228
|
-
i = i + 1 | 0;
|
|
1229
761
|
}
|
|
762
|
+
_tmp = i + 1 | 0;
|
|
1230
763
|
continue;
|
|
1231
764
|
} else {
|
|
1232
765
|
break;
|
|
@@ -1237,7 +770,7 @@ function _M0FPB18brute__force__find(haystack, needle) {
|
|
|
1237
770
|
return undefined;
|
|
1238
771
|
}
|
|
1239
772
|
} else {
|
|
1240
|
-
return
|
|
773
|
+
return _M0FPB33brute__force__find_2econstr_2f153;
|
|
1241
774
|
}
|
|
1242
775
|
}
|
|
1243
776
|
function _M0MPC16string10StringView4find(self, str) {
|
|
@@ -1327,44 +860,32 @@ function _M0FPB23brute__force__rev__find(haystack, needle) {
|
|
|
1327
860
|
if (haystack_len >= needle_len) {
|
|
1328
861
|
const _p = 0;
|
|
1329
862
|
const needle_first = needle.str.charCodeAt(needle.start + _p | 0);
|
|
1330
|
-
let
|
|
863
|
+
let _tmp = haystack_len - needle_len | 0;
|
|
1331
864
|
while (true) {
|
|
865
|
+
const i = _tmp;
|
|
1332
866
|
if (i >= 0) {
|
|
867
|
+
const _p$2 = haystack.str.charCodeAt(haystack.start + i | 0);
|
|
868
|
+
if (_p$2 !== needle_first) {
|
|
869
|
+
_tmp = i - 1 | 0;
|
|
870
|
+
continue;
|
|
871
|
+
}
|
|
872
|
+
let _tmp$2 = 1;
|
|
1333
873
|
while (true) {
|
|
1334
|
-
|
|
1335
|
-
if (
|
|
1336
|
-
const _p$
|
|
1337
|
-
const _p$
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
i = i - 1 | 0;
|
|
874
|
+
const j = _tmp$2;
|
|
875
|
+
if (j < needle_len) {
|
|
876
|
+
const _p$3 = i + j | 0;
|
|
877
|
+
const _p$4 = haystack.str.charCodeAt(haystack.start + _p$3 | 0);
|
|
878
|
+
const _p$5 = needle.str.charCodeAt(needle.start + j | 0);
|
|
879
|
+
if (_p$4 !== _p$5) {
|
|
880
|
+
break;
|
|
881
|
+
}
|
|
882
|
+
_tmp$2 = j + 1 | 0;
|
|
1344
883
|
continue;
|
|
1345
884
|
} else {
|
|
1346
|
-
|
|
1347
|
-
}
|
|
1348
|
-
}
|
|
1349
|
-
if (i >= 0) {
|
|
1350
|
-
let _tmp = 1;
|
|
1351
|
-
while (true) {
|
|
1352
|
-
const j = _tmp;
|
|
1353
|
-
if (j < needle_len) {
|
|
1354
|
-
const _p$2 = i + j | 0;
|
|
1355
|
-
const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
|
|
1356
|
-
const _p$4 = needle.str.charCodeAt(needle.start + j | 0);
|
|
1357
|
-
if (_p$3 !== _p$4) {
|
|
1358
|
-
break;
|
|
1359
|
-
}
|
|
1360
|
-
_tmp = j + 1 | 0;
|
|
1361
|
-
continue;
|
|
1362
|
-
} else {
|
|
1363
|
-
return i;
|
|
1364
|
-
}
|
|
885
|
+
return i;
|
|
1365
886
|
}
|
|
1366
|
-
i = i - 1 | 0;
|
|
1367
887
|
}
|
|
888
|
+
_tmp = i - 1 | 0;
|
|
1368
889
|
continue;
|
|
1369
890
|
} else {
|
|
1370
891
|
break;
|
|
@@ -1428,7 +949,7 @@ function _M0MPC16string6String8contains(self, str) {
|
|
|
1428
949
|
}
|
|
1429
950
|
function _M0MPC16string6String4iter(self) {
|
|
1430
951
|
const len = self.length;
|
|
1431
|
-
const index = new
|
|
952
|
+
const index = new _M0TPB8MutLocalGiE(0);
|
|
1432
953
|
const _p = () => {
|
|
1433
954
|
if (index.val < len) {
|
|
1434
955
|
const c1 = self.charCodeAt(index.val);
|
|
@@ -1468,7 +989,7 @@ function _M0MPC16string10StringView5split(self, sep) {
|
|
|
1468
989
|
if (sep_len === 0) {
|
|
1469
990
|
return _M0MPB4Iter3mapGcRPC16string10StringViewE(_M0MPC16string10StringView4iter(self), (c) => _M0MPC16string6String12view_2einner(_M0IPC14char4CharPB4Show10to__string(c), 0, undefined));
|
|
1470
991
|
}
|
|
1471
|
-
const remaining = new
|
|
992
|
+
const remaining = new _M0TPB8MutLocalGORPC16string10StringViewE(self);
|
|
1472
993
|
const _p = () => {
|
|
1473
994
|
const _bind = remaining.val;
|
|
1474
995
|
if (_bind === undefined) {
|
|
@@ -1525,17 +1046,6 @@ function _M0MPC16string6String9to__lower(self) {
|
|
|
1525
1046
|
return buf.val;
|
|
1526
1047
|
}
|
|
1527
1048
|
}
|
|
1528
|
-
function _M0MPC16string6String17substring_2einner(self, start, end) {
|
|
1529
|
-
const len = self.length;
|
|
1530
|
-
let end$2;
|
|
1531
|
-
if (end === undefined) {
|
|
1532
|
-
end$2 = len;
|
|
1533
|
-
} else {
|
|
1534
|
-
const _Some = end;
|
|
1535
|
-
end$2 = _Some;
|
|
1536
|
-
}
|
|
1537
|
-
return start >= 0 && (start <= end$2 && end$2 <= len) ? self.substring(start, end$2) : $panic();
|
|
1538
|
-
}
|
|
1539
1049
|
function _M0MPC16string6String9to__array(self) {
|
|
1540
1050
|
const _p = _M0MPC16string6String4iter(self);
|
|
1541
1051
|
const _p$2 = _M0MPC15array5Array11new_2einnerGcE(self.length);
|
|
@@ -1894,91 +1404,6 @@ function _M0IPC16string6StringPB4Hash13hash__combine(self, hasher) {
|
|
|
1894
1404
|
function _M0MPC16double6Double10to__string(self) {
|
|
1895
1405
|
return _M0FPB15ryu__to__string(self);
|
|
1896
1406
|
}
|
|
1897
|
-
function _M0IPB13SourceLocReprPB4Show6output(self, logger) {
|
|
1898
|
-
const pkg = self.pkg;
|
|
1899
|
-
const _data = pkg.str;
|
|
1900
|
-
const _start = pkg.start;
|
|
1901
|
-
const _end = _start + (pkg.end - pkg.start | 0) | 0;
|
|
1902
|
-
let _cursor = _start;
|
|
1903
|
-
let accept_state = -1;
|
|
1904
|
-
let match_end = -1;
|
|
1905
|
-
let match_tag_saver_0 = -1;
|
|
1906
|
-
let tag_0 = -1;
|
|
1907
|
-
let _bind;
|
|
1908
|
-
_L: {
|
|
1909
|
-
_L$2: {
|
|
1910
|
-
_L$3: while (true) {
|
|
1911
|
-
if (_cursor < _end) {
|
|
1912
|
-
const _p = _cursor;
|
|
1913
|
-
const next_char = _data.charCodeAt(_p);
|
|
1914
|
-
_cursor = _cursor + 1 | 0;
|
|
1915
|
-
if (next_char === 47) {
|
|
1916
|
-
_L$4: while (true) {
|
|
1917
|
-
tag_0 = _cursor;
|
|
1918
|
-
if (_cursor < _end) {
|
|
1919
|
-
const _p$2 = _cursor;
|
|
1920
|
-
const next_char$2 = _data.charCodeAt(_p$2);
|
|
1921
|
-
_cursor = _cursor + 1 | 0;
|
|
1922
|
-
if (next_char$2 === 47) {
|
|
1923
|
-
while (true) {
|
|
1924
|
-
if (_cursor < _end) {
|
|
1925
|
-
_cursor = _cursor + 1 | 0;
|
|
1926
|
-
continue;
|
|
1927
|
-
} else {
|
|
1928
|
-
match_tag_saver_0 = tag_0;
|
|
1929
|
-
accept_state = 0;
|
|
1930
|
-
match_end = _cursor;
|
|
1931
|
-
break _L$2;
|
|
1932
|
-
}
|
|
1933
|
-
}
|
|
1934
|
-
} else {
|
|
1935
|
-
continue;
|
|
1936
|
-
}
|
|
1937
|
-
} else {
|
|
1938
|
-
break _L$2;
|
|
1939
|
-
}
|
|
1940
|
-
}
|
|
1941
|
-
} else {
|
|
1942
|
-
continue;
|
|
1943
|
-
}
|
|
1944
|
-
} else {
|
|
1945
|
-
break _L$2;
|
|
1946
|
-
}
|
|
1947
|
-
}
|
|
1948
|
-
break _L;
|
|
1949
|
-
}
|
|
1950
|
-
if (accept_state === 0) {
|
|
1951
|
-
const package_name = _M0MPC16string6String4view(_data, match_tag_saver_0 + 1 | 0, match_end);
|
|
1952
|
-
const module_name = _M0MPC16string6String4view(_data, _start, match_tag_saver_0);
|
|
1953
|
-
_bind = { _0: module_name, _1: package_name };
|
|
1954
|
-
} else {
|
|
1955
|
-
_bind = { _0: pkg, _1: undefined };
|
|
1956
|
-
}
|
|
1957
|
-
}
|
|
1958
|
-
const _module_name = _bind._0;
|
|
1959
|
-
const _package_name = _bind._1;
|
|
1960
|
-
if (_package_name === undefined) {
|
|
1961
|
-
} else {
|
|
1962
|
-
const _Some = _package_name;
|
|
1963
|
-
const _pkg_name = _Some;
|
|
1964
|
-
logger.method_table.method_2(logger.self, _pkg_name);
|
|
1965
|
-
logger.method_table.method_3(logger.self, 47);
|
|
1966
|
-
}
|
|
1967
|
-
logger.method_table.method_2(logger.self, self.filename);
|
|
1968
|
-
logger.method_table.method_3(logger.self, 58);
|
|
1969
|
-
logger.method_table.method_2(logger.self, self.start_line);
|
|
1970
|
-
logger.method_table.method_3(logger.self, 58);
|
|
1971
|
-
logger.method_table.method_2(logger.self, self.start_column);
|
|
1972
|
-
logger.method_table.method_3(logger.self, 45);
|
|
1973
|
-
logger.method_table.method_2(logger.self, self.end_line);
|
|
1974
|
-
logger.method_table.method_3(logger.self, 58);
|
|
1975
|
-
logger.method_table.method_2(logger.self, self.end_column);
|
|
1976
|
-
logger.method_table.method_3(logger.self, 64);
|
|
1977
|
-
logger.method_table.method_2(logger.self, _module_name);
|
|
1978
|
-
}
|
|
1979
|
-
function _M0IPB9SourceLocPB4Show6output(self, logger) {
|
|
1980
|
-
_M0IPB13SourceLocReprPB4Show6output(_M0MPB13SourceLocRepr5parse(self), logger);
|
|
1981
|
-
}
|
|
1982
1407
|
function _M0MPC15array5Array28unsafe__truncate__to__lengthGsE(self, new_len) {
|
|
1983
1408
|
_M0MPB7JSArray11set__length(self, new_len);
|
|
1984
1409
|
}
|
|
@@ -2000,7 +1425,7 @@ function _M0MPC15array5Array6removeGRP36kazuph5reviw6server7JsValueE(self, index
|
|
|
2000
1425
|
_M0MPB7JSArray6splice(self, index, 1);
|
|
2001
1426
|
return value;
|
|
2002
1427
|
} else {
|
|
2003
|
-
return _M0FPB5abortGRP36kazuph5reviw6server7JsValueE(`index out of bounds: the len is from 0 to ${_M0IP016_24default__implPB4Show10to__stringGiE(self.length)} but the index is ${_M0IP016_24default__implPB4Show10to__stringGiE(index)}`, "
|
|
1428
|
+
return _M0FPB5abortGRP36kazuph5reviw6server7JsValueE(`index out of bounds: the len is from 0 to ${_M0IP016_24default__implPB4Show10to__stringGiE(self.length)} but the index is ${_M0IP016_24default__implPB4Show10to__stringGiE(index)}`, "builtin/arraycore_js.mbt:251:5-253:6@moonbitlang/core");
|
|
2004
1429
|
}
|
|
2005
1430
|
}
|
|
2006
1431
|
function _M0MPC15array5Array6removeGsE(self, index) {
|
|
@@ -2010,12 +1435,48 @@ function _M0MPC15array5Array6removeGsE(self, index) {
|
|
|
2010
1435
|
_M0MPB7JSArray6splice(self, index, 1);
|
|
2011
1436
|
return value;
|
|
2012
1437
|
} else {
|
|
2013
|
-
return _M0FPB5abortGRPC16string10StringViewE(`index out of bounds: the len is from 0 to ${_M0IP016_24default__implPB4Show10to__stringGiE(self.length)} but the index is ${_M0IP016_24default__implPB4Show10to__stringGiE(index)}`, "
|
|
1438
|
+
return _M0FPB5abortGRPC16string10StringViewE(`index out of bounds: the len is from 0 to ${_M0IP016_24default__implPB4Show10to__stringGiE(self.length)} but the index is ${_M0IP016_24default__implPB4Show10to__stringGiE(index)}`, "builtin/arraycore_js.mbt:251:5-253:6@moonbitlang/core");
|
|
2014
1439
|
}
|
|
2015
1440
|
}
|
|
2016
1441
|
function _M0MPC15array5Array4copyGsE(self) {
|
|
2017
1442
|
return _M0MPB7JSArray4copy(self);
|
|
2018
1443
|
}
|
|
1444
|
+
function _M0MPC15array5Array2atGsE(self, index) {
|
|
1445
|
+
const len = self.length;
|
|
1446
|
+
if (index >= 0 && index < len) {
|
|
1447
|
+
$bound_check(self, index);
|
|
1448
|
+
return self[index];
|
|
1449
|
+
} else {
|
|
1450
|
+
return $panic();
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
function _M0MPC15array5Array2atGcE(self, index) {
|
|
1454
|
+
const len = self.length;
|
|
1455
|
+
if (index >= 0 && index < len) {
|
|
1456
|
+
$bound_check(self, index);
|
|
1457
|
+
return self[index];
|
|
1458
|
+
} else {
|
|
1459
|
+
return $panic();
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
function _M0MPC15array5Array2atGRPB5ArrayGsEE(self, index) {
|
|
1463
|
+
const len = self.length;
|
|
1464
|
+
if (index >= 0 && index < len) {
|
|
1465
|
+
$bound_check(self, index);
|
|
1466
|
+
return self[index];
|
|
1467
|
+
} else {
|
|
1468
|
+
return $panic();
|
|
1469
|
+
}
|
|
1470
|
+
}
|
|
1471
|
+
function _M0MPC15array5Array2atGdE(self, index) {
|
|
1472
|
+
const len = self.length;
|
|
1473
|
+
if (index >= 0 && index < len) {
|
|
1474
|
+
$bound_check(self, index);
|
|
1475
|
+
return self[index];
|
|
1476
|
+
} else {
|
|
1477
|
+
return $panic();
|
|
1478
|
+
}
|
|
1479
|
+
}
|
|
2019
1480
|
function _M0MPC15array5Array5clearGsE(self) {
|
|
2020
1481
|
_M0MPC15array5Array28unsafe__truncate__to__lengthGsE(self, 0);
|
|
2021
1482
|
}
|
|
@@ -2025,38 +1486,38 @@ function _M0MPC13ref3Ref3newGsE(x) {
|
|
|
2025
1486
|
function _M0MPC13ref3Ref3newGiE(x) {
|
|
2026
1487
|
return new _M0TPC13ref3RefGiE(x);
|
|
2027
1488
|
}
|
|
2028
|
-
function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(
|
|
2029
|
-
switch (
|
|
1489
|
+
function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_442, _x_443) {
|
|
1490
|
+
switch (_x_442) {
|
|
2030
1491
|
case 0: {
|
|
2031
|
-
if (
|
|
1492
|
+
if (_x_443 === 0) {
|
|
2032
1493
|
return true;
|
|
2033
1494
|
} else {
|
|
2034
1495
|
return false;
|
|
2035
1496
|
}
|
|
2036
1497
|
}
|
|
2037
1498
|
case 1: {
|
|
2038
|
-
if (
|
|
1499
|
+
if (_x_443 === 1) {
|
|
2039
1500
|
return true;
|
|
2040
1501
|
} else {
|
|
2041
1502
|
return false;
|
|
2042
1503
|
}
|
|
2043
1504
|
}
|
|
2044
1505
|
case 2: {
|
|
2045
|
-
if (
|
|
1506
|
+
if (_x_443 === 2) {
|
|
2046
1507
|
return true;
|
|
2047
1508
|
} else {
|
|
2048
1509
|
return false;
|
|
2049
1510
|
}
|
|
2050
1511
|
}
|
|
2051
1512
|
case 3: {
|
|
2052
|
-
if (
|
|
1513
|
+
if (_x_443 === 3) {
|
|
2053
1514
|
return true;
|
|
2054
1515
|
} else {
|
|
2055
1516
|
return false;
|
|
2056
1517
|
}
|
|
2057
1518
|
}
|
|
2058
1519
|
default: {
|
|
2059
|
-
if (
|
|
1520
|
+
if (_x_443 === 4) {
|
|
2060
1521
|
return true;
|
|
2061
1522
|
} else {
|
|
2062
1523
|
return false;
|
|
@@ -2065,7 +1526,7 @@ function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_441, _x_442) {
|
|
|
2065
1526
|
}
|
|
2066
1527
|
}
|
|
2067
1528
|
function _M0FP36kazuph5reviw4core20yaml__escape__string(s) {
|
|
2068
|
-
const needs_quote = _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(
|
|
1529
|
+
const needs_quote = _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS574, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS574.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS575, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS575.length)) || _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS576, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS576.length)))))))))))))))));
|
|
2069
1530
|
if (needs_quote) {
|
|
2070
1531
|
const buf = _M0MPB13StringBuilder11new_2einner(0);
|
|
2071
1532
|
_M0IPB13StringBuilderPB6Logger11write__char(buf, 39);
|
|
@@ -2382,7 +1843,7 @@ function _M0FP36kazuph5reviw4core16parse__int__safe(s) {
|
|
|
2382
1843
|
}
|
|
2383
1844
|
function _M0FP36kazuph5reviw4core16split__to__lines(input) {
|
|
2384
1845
|
const result = [];
|
|
2385
|
-
const _it = _M0MPC16string6String5split(input, new _M0TPC16string10StringView(
|
|
1846
|
+
const _it = _M0MPC16string6String5split(input, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16split__to__linesN7_2abindS651, 0, _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS651.length));
|
|
2386
1847
|
while (true) {
|
|
2387
1848
|
const _bind = _M0MPB4Iter4nextGRPC16string10StringViewE(_it);
|
|
2388
1849
|
if (_bind === undefined) {
|
|
@@ -2396,6 +1857,18 @@ function _M0FP36kazuph5reviw4core16split__to__lines(input) {
|
|
|
2396
1857
|
}
|
|
2397
1858
|
return result;
|
|
2398
1859
|
}
|
|
1860
|
+
function _M0FP36kazuph5reviw4core15is__path__under(base, child) {
|
|
1861
|
+
if (child === base) {
|
|
1862
|
+
return true;
|
|
1863
|
+
}
|
|
1864
|
+
const _bind = `${base}/`;
|
|
1865
|
+
if (_M0MPC16string6String11has__prefix(child, new _M0TPC16string10StringView(_bind, 0, _bind.length))) {
|
|
1866
|
+
return true;
|
|
1867
|
+
} else {
|
|
1868
|
+
const _bind$2 = `${base}\\`;
|
|
1869
|
+
return _M0MPC16string6String11has__prefix(child, new _M0TPC16string10StringView(_bind$2, 0, _bind$2.length));
|
|
1870
|
+
}
|
|
1871
|
+
}
|
|
2399
1872
|
function _M0MP36kazuph5reviw4core8FileMode15from__extension(ext) {
|
|
2400
1873
|
_L: {
|
|
2401
1874
|
_L$2: {
|
|
@@ -2436,13 +1909,13 @@ function _M0MP36kazuph5reviw4core8FileMode15from__extension(ext) {
|
|
|
2436
1909
|
function _M0MP36kazuph5reviw4core12ReviewAction12from__string(s) {
|
|
2437
1910
|
switch (s) {
|
|
2438
1911
|
case "handoff": {
|
|
2439
|
-
return
|
|
1912
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f569;
|
|
2440
1913
|
}
|
|
2441
1914
|
case "final_approve": {
|
|
2442
|
-
return
|
|
1915
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f570;
|
|
2443
1916
|
}
|
|
2444
1917
|
case "final_request_changes": {
|
|
2445
|
-
return
|
|
1918
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f571;
|
|
2446
1919
|
}
|
|
2447
1920
|
default: {
|
|
2448
1921
|
return undefined;
|
|
@@ -2452,10 +1925,10 @@ function _M0MP36kazuph5reviw4core12ReviewAction12from__string(s) {
|
|
|
2452
1925
|
function _M0MP36kazuph5reviw4core14ReviewDecision12from__string(s) {
|
|
2453
1926
|
switch (s) {
|
|
2454
1927
|
case "approve": {
|
|
2455
|
-
return
|
|
1928
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f573;
|
|
2456
1929
|
}
|
|
2457
1930
|
case "request_changes": {
|
|
2458
|
-
return
|
|
1931
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f574;
|
|
2459
1932
|
}
|
|
2460
1933
|
default: {
|
|
2461
1934
|
return undefined;
|
|
@@ -2557,10 +2030,10 @@ function _M0FP36kazuph5reviw4core23parse__single__question(lines, start, end) {
|
|
|
2557
2030
|
if (i < end) {
|
|
2558
2031
|
const line = _M0MPC15array5Array2atGsE(lines, i);
|
|
2559
2032
|
const trimmed = _M0FP36kazuph5reviw4core4trim(line);
|
|
2560
|
-
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(
|
|
2033
|
+
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS676, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS676.length)) && _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677.length))) {
|
|
2561
2034
|
break;
|
|
2562
2035
|
}
|
|
2563
|
-
if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
2036
|
+
if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678.length)) && !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS679, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS679.length))) {
|
|
2564
2037
|
break;
|
|
2565
2038
|
}
|
|
2566
2039
|
const content_colon = _M0FP36kazuph5reviw4core15index__of__char(trimmed, 58);
|
|
@@ -2585,7 +2058,7 @@ function _M0FP36kazuph5reviw4core23parse__single__question(lines, start, end) {
|
|
|
2585
2058
|
if (i < end) {
|
|
2586
2059
|
const opt_line = _M0MPC15array5Array2atGsE(lines, i);
|
|
2587
2060
|
const opt_trimmed = _M0FP36kazuph5reviw4core4trim(opt_line);
|
|
2588
|
-
if (_M0MPC16string6String11has__prefix(opt_trimmed, new _M0TPC16string10StringView(
|
|
2061
|
+
if (_M0MPC16string6String11has__prefix(opt_trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS681, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS681.length)) && _M0MPC16string6String11has__prefix(opt_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS682, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS682.length))) {
|
|
2589
2062
|
_M0MPC15array5Array4pushGsE(options, _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(opt_trimmed, 2)));
|
|
2590
2063
|
i = i + 1 | 0;
|
|
2591
2064
|
} else {
|
|
@@ -2625,12 +2098,12 @@ function _M0FP36kazuph5reviw4core23parse__reviw__questions(lines, start, end) {
|
|
|
2625
2098
|
if (i < end) {
|
|
2626
2099
|
const item_line = _M0MPC15array5Array2atGsE(lines, i);
|
|
2627
2100
|
const trimmed = _M0FP36kazuph5reviw4core4trim(item_line);
|
|
2628
|
-
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(
|
|
2101
|
+
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS686, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS686.length))) {
|
|
2629
2102
|
const q = _M0FP36kazuph5reviw4core23parse__single__question(lines, i, end);
|
|
2630
2103
|
_M0MPC15array5Array4pushGsE(questions, q._0);
|
|
2631
2104
|
i = q._1;
|
|
2632
2105
|
} else {
|
|
2633
|
-
if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(item_line, new _M0TPC16string10StringView(
|
|
2106
|
+
if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(item_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS687, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS687.length))) {
|
|
2634
2107
|
break;
|
|
2635
2108
|
} else {
|
|
2636
2109
|
i = i + 1 | 0;
|
|
@@ -2780,7 +2253,7 @@ function _M0FP36kazuph5reviw4core20is__horizontal__rule(line) {
|
|
|
2780
2253
|
}
|
|
2781
2254
|
function _M0FP36kazuph5reviw4core22is__html__block__start(line) {
|
|
2782
2255
|
const t = _M0FP36kazuph5reviw4core4trim(line);
|
|
2783
|
-
return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(
|
|
2256
|
+
return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS706, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS706.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS707, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS707.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS708, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS708.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS709, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS709.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS710, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS710.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS711, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS711.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS712, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS712.length)) || _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS713, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS713.length))))))));
|
|
2784
2257
|
}
|
|
2785
2258
|
function _M0FP36kazuph5reviw4core23is__ordered__list__item(line) {
|
|
2786
2259
|
const chars = _M0MPC16string6String9to__array(line);
|
|
@@ -2799,15 +2272,15 @@ function _M0FP36kazuph5reviw4core23is__ordered__list__item(line) {
|
|
|
2799
2272
|
return i < (chars.length - 1 | 0) && (_M0MPC15array5Array2atGcE(chars, i) === 46 && _M0MPC15array5Array2atGcE(chars, i + 1 | 0) === 32);
|
|
2800
2273
|
}
|
|
2801
2274
|
function _M0FP36kazuph5reviw4core16is__block__start(line) {
|
|
2802
|
-
return _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
2275
|
+
return _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS715, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS715.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS716, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS716.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS717, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS717.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS718, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS718.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS719, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS719.length)) || (_M0FP36kazuph5reviw4core23is__ordered__list__item(line) || (_M0FP36kazuph5reviw4core20is__horizontal__rule(line) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS720, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS720.length)) && _M0FP36kazuph5reviw4core22is__html__block__start(line)))))));
|
|
2803
2276
|
}
|
|
2804
2277
|
function _M0FP36kazuph5reviw4core20is__mermaid__content(text) {
|
|
2805
2278
|
const t = _M0FP36kazuph5reviw4core4trim(text);
|
|
2806
|
-
return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(
|
|
2279
|
+
return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS721, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS721.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS722, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS722.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS723, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS723.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS724, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS724.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS725, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS725.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS726, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS726.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS727, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS727.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS728, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS728.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS729, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS729.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS730, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS730.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS731, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS731.length)) || _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS732, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS732.length))))))))))));
|
|
2807
2280
|
}
|
|
2808
2281
|
function _M0FP36kazuph5reviw4core20is__table__separator(line) {
|
|
2809
2282
|
const t = _M0FP36kazuph5reviw4core4trim(line);
|
|
2810
|
-
if (!_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(
|
|
2283
|
+
if (!_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS733, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS733.length)) || !_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS734, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS734.length))) {
|
|
2811
2284
|
return false;
|
|
2812
2285
|
}
|
|
2813
2286
|
const chars = _M0MPC16string6String9to__array(t);
|
|
@@ -2862,8 +2335,8 @@ function _M0FP36kazuph5reviw4core18make__heading__key(text, counter) {
|
|
|
2862
2335
|
function _M0FP36kazuph5reviw4core17parse__table__row(line) {
|
|
2863
2336
|
const result = [];
|
|
2864
2337
|
const t = _M0FP36kazuph5reviw4core4trim(line);
|
|
2865
|
-
const inner = _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(
|
|
2866
|
-
const _it = _M0MPC16string6String5split(inner, new _M0TPC16string10StringView(
|
|
2338
|
+
const inner = _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS756, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS756.length)) && _M0MPC16string6String11has__suffix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS757, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS757.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(t, 1, t.length - 1 | 0) : _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS758, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS758.length)) ? _M0FP36kazuph5reviw4core11safe__slice(t, 1) : t;
|
|
2339
|
+
const _it = _M0MPC16string6String5split(inner, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS755, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS755.length));
|
|
2867
2340
|
while (true) {
|
|
2868
2341
|
const _bind = _M0MPB4Iter4nextGRPC16string10StringViewE(_it);
|
|
2869
2342
|
if (_bind === undefined) {
|
|
@@ -2879,7 +2352,7 @@ function _M0FP36kazuph5reviw4core17parse__table__row(line) {
|
|
|
2879
2352
|
}
|
|
2880
2353
|
function _M0FP36kazuph5reviw4core14is__video__url(url) {
|
|
2881
2354
|
const lower = _M0MPC16string6String9to__lower(url);
|
|
2882
|
-
return _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(
|
|
2355
|
+
return _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS762, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS762.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS763, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS763.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS764, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS764.length)) || _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS765, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS765.length)))))));
|
|
2883
2356
|
}
|
|
2884
2357
|
function _M0FP36kazuph5reviw4core14render__inline(text) {
|
|
2885
2358
|
const chars = _M0MPC16string6String9to__array(text);
|
|
@@ -2978,7 +2451,7 @@ function _M0FP36kazuph5reviw4core14render__inline(text) {
|
|
|
2978
2451
|
const link_text = _M0FP36kazuph5reviw4core18safe__slice__range(text, text_start, text_end);
|
|
2979
2452
|
const link_url = _M0FP36kazuph5reviw4core18safe__slice__range(text, url_start, url_end);
|
|
2980
2453
|
const lower_url = _M0MPC16string6String9to__lower(link_url);
|
|
2981
|
-
if (_M0MPC16string6String11has__prefix(lower_url, new _M0TPC16string10StringView(
|
|
2454
|
+
if (_M0MPC16string6String11has__prefix(lower_url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14render__inlineN7_2abindS771, 0, _M0FP36kazuph5reviw4core14render__inlineN7_2abindS771.length))) {
|
|
2982
2455
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(link_text));
|
|
2983
2456
|
} else {
|
|
2984
2457
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<a href=\"");
|
|
@@ -3175,18 +2648,18 @@ function _M0FP36kazuph5reviw4core17is__allowed__attr(name) {
|
|
|
3175
2648
|
}
|
|
3176
2649
|
function _M0FP36kazuph5reviw4core18is__dangerous__css(value) {
|
|
3177
2650
|
const lower = _M0MPC16string6String9to__lower(value);
|
|
3178
|
-
return _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(
|
|
2651
|
+
return _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS788, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS788.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS789, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS789.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS790, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS790.length)) || _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS791, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS791.length))))))));
|
|
3179
2652
|
}
|
|
3180
2653
|
function _M0FP36kazuph5reviw4core24is__event__handler__attr(name) {
|
|
3181
|
-
return _M0MPC16string6String11has__prefix(name, new _M0TPC16string10StringView(
|
|
2654
|
+
return _M0MPC16string6String11has__prefix(name, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS792, 0, _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS792.length));
|
|
3182
2655
|
}
|
|
3183
2656
|
function _M0FP36kazuph5reviw4core13is__safe__url(url) {
|
|
3184
2657
|
const lower = _M0MPC16string6String9to__lower(url);
|
|
3185
2658
|
const trimmed = _M0FP36kazuph5reviw4core4trim(lower);
|
|
3186
|
-
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(
|
|
2659
|
+
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS793, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS793.length))) {
|
|
3187
2660
|
return false;
|
|
3188
2661
|
}
|
|
3189
|
-
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(
|
|
2662
|
+
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS794, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS794.length))) {
|
|
3190
2663
|
return false;
|
|
3191
2664
|
}
|
|
3192
2665
|
return true;
|
|
@@ -3525,7 +2998,7 @@ function _M0FP36kazuph5reviw4core14sanitize__html(input) {
|
|
|
3525
2998
|
if (!_M0FP36kazuph5reviw4core16is__allowed__tag(tag_name) && tag_name.length > 0) {
|
|
3526
2999
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<");
|
|
3527
3000
|
const tag_content = _M0FP36kazuph5reviw4core18safe__slice__range(input, tag_start + 1 | 0, tag_end);
|
|
3528
|
-
const trimmed_content = _M0MPC16string6String11has__suffix(tag_content, new _M0TPC16string10StringView(
|
|
3001
|
+
const trimmed_content = _M0MPC16string6String11has__suffix(tag_content, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS810, 0, _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS810.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(tag_content, 0, tag_content.length - 1 | 0) : tag_content;
|
|
3529
3002
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(trimmed_content));
|
|
3530
3003
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, ">");
|
|
3531
3004
|
i = tag_end;
|
|
@@ -3569,7 +3042,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3569
3042
|
i = i + 1 | 0;
|
|
3570
3043
|
continue;
|
|
3571
3044
|
}
|
|
3572
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3045
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS812, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS812.length)) && _M0FP36kazuph5reviw4core22is__html__block__start(line)) {
|
|
3573
3046
|
const tag_name = _M0FP36kazuph5reviw4core24extract__html__tag__name(line);
|
|
3574
3047
|
if (tag_name === "details") {
|
|
3575
3048
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<details>\n");
|
|
@@ -3577,13 +3050,13 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3577
3050
|
while (true) {
|
|
3578
3051
|
if (i < len) {
|
|
3579
3052
|
const current = _M0FP36kazuph5reviw4core4trim(_M0MPC15array5Array2atGsE(lines, i));
|
|
3580
|
-
if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(
|
|
3053
|
+
if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814.length))) {
|
|
3581
3054
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14sanitize__html(_M0MPC15array5Array2atGsE(lines, i)));
|
|
3582
3055
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "\n");
|
|
3583
3056
|
i = i + 1 | 0;
|
|
3584
3057
|
break;
|
|
3585
3058
|
} else {
|
|
3586
|
-
if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(
|
|
3059
|
+
if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS815, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS815.length))) {
|
|
3587
3060
|
break;
|
|
3588
3061
|
}
|
|
3589
3062
|
}
|
|
@@ -3598,14 +3071,14 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3598
3071
|
while (true) {
|
|
3599
3072
|
if (i < len && depth > 0) {
|
|
3600
3073
|
const current = _M0MPC15array5Array2atGsE(lines, i);
|
|
3601
|
-
if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(
|
|
3074
|
+
if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS817, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS817.length))) {
|
|
3602
3075
|
depth = depth - 1 | 0;
|
|
3603
3076
|
if (depth === 0) {
|
|
3604
3077
|
i = i + 1 | 0;
|
|
3605
3078
|
break;
|
|
3606
3079
|
}
|
|
3607
3080
|
}
|
|
3608
|
-
if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(
|
|
3081
|
+
if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818.length))) {
|
|
3609
3082
|
depth = depth + 1 | 0;
|
|
3610
3083
|
}
|
|
3611
3084
|
_M0MPC15array5Array4pushGsE(inner_lines, current);
|
|
@@ -3650,7 +3123,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3650
3123
|
}
|
|
3651
3124
|
continue;
|
|
3652
3125
|
}
|
|
3653
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3126
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822.length))) {
|
|
3654
3127
|
const level = _M0FP36kazuph5reviw4core21count__heading__level(line);
|
|
3655
3128
|
if (level >= 1 && level <= 6) {
|
|
3656
3129
|
const content = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(line, level + 1 | 0));
|
|
@@ -3676,14 +3149,14 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3676
3149
|
i = i + 1 | 0;
|
|
3677
3150
|
continue;
|
|
3678
3151
|
}
|
|
3679
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3152
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823.length))) {
|
|
3680
3153
|
const lang = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(line, 3));
|
|
3681
3154
|
const code_block_start_line = i + 1 | 0;
|
|
3682
3155
|
i = i + 1 | 0;
|
|
3683
3156
|
const code_buf = _M0MPB13StringBuilder11new_2einner(0);
|
|
3684
3157
|
let code_first = true;
|
|
3685
3158
|
while (true) {
|
|
3686
|
-
if (i < len && !_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
3159
|
+
if (i < len && !_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825.length))) {
|
|
3687
3160
|
if (!code_first) {
|
|
3688
3161
|
_M0IPB13StringBuilderPB6Logger13write__string(code_buf, "\n");
|
|
3689
3162
|
}
|
|
@@ -3725,10 +3198,10 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3725
3198
|
}
|
|
3726
3199
|
continue;
|
|
3727
3200
|
}
|
|
3728
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3201
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS826, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS826.length))) {
|
|
3729
3202
|
const quote_lines = [];
|
|
3730
3203
|
while (true) {
|
|
3731
|
-
if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
3204
|
+
if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS828, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS828.length))) {
|
|
3732
3205
|
const content = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 1));
|
|
3733
3206
|
_M0MPC15array5Array4pushGsE(quote_lines, content);
|
|
3734
3207
|
i = i + 1 | 0;
|
|
@@ -3756,16 +3229,16 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3756
3229
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</blockquote>\n");
|
|
3757
3230
|
continue;
|
|
3758
3231
|
}
|
|
3759
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3232
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834.length))) {
|
|
3760
3233
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<ul>\n");
|
|
3761
3234
|
while (true) {
|
|
3762
|
-
if (i < len && (_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
3235
|
+
if (i < len && (_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS839, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS839.length)) || _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS840, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS840.length)))) {
|
|
3763
3236
|
const item_text = _M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 2);
|
|
3764
|
-
if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(
|
|
3237
|
+
if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836.length))) {
|
|
3765
3238
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<li class=\"task-list-item\"><input type=\"checkbox\" disabled /> ");
|
|
3766
3239
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14render__inline(_M0FP36kazuph5reviw4core11safe__slice(item_text, 4)));
|
|
3767
3240
|
} else {
|
|
3768
|
-
if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(
|
|
3241
|
+
if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS837, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS837.length)) || _M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS838, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS838.length))) {
|
|
3769
3242
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<li class=\"task-list-item\"><input type=\"checkbox\" checked disabled /> ");
|
|
3770
3243
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14render__inline(_M0FP36kazuph5reviw4core11safe__slice(item_text, 4)));
|
|
3771
3244
|
} else {
|
|
@@ -3822,7 +3295,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3822
3295
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</tr>\n</thead>\n<tbody>\n");
|
|
3823
3296
|
i = i + 2 | 0;
|
|
3824
3297
|
while (true) {
|
|
3825
|
-
if (i < len && _M0MPC16string6String8contains(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
3298
|
+
if (i < len && _M0MPC16string6String8contains(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS851, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS851.length))) {
|
|
3826
3299
|
const cells = _M0FP36kazuph5reviw4core17parse__table__row(_M0MPC15array5Array2atGsE(lines, i));
|
|
3827
3300
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<tr>\n");
|
|
3828
3301
|
const _bind$2 = cells.length;
|
|
@@ -4086,7 +3559,7 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
|
|
|
4086
3559
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/styles/github.min.css\" id=\"hljs-theme-light\">");
|
|
4087
3560
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<script src=\"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js\"></script>");
|
|
4088
3561
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<style>");
|
|
4089
|
-
_M0IPB13StringBuilderPB6Logger13write__string(buf, "/* Dark theme (default) */\n:root {\n color-scheme: dark;\n --bg: #0f172a;\n --bg-gradient: radial-gradient(circle at 20% 20%, #1e293b 0%, #0b1224 35%, #0b1224 60%, #0f172a 100%);\n --panel: #111827;\n --panel-alpha: rgba(15, 23, 42, 0.9);\n --panel-solid: #0b1224;\n --card-bg: rgba(11, 18, 36, 0.95);\n --input-bg: rgba(15, 23, 42, 0.6);\n --border: #1f2937;\n --accent: #60a5fa;\n --accent-2: #f472b6;\n --text: #e5e7eb;\n --text-inverse: #0b1224;\n --muted: #94a3b8;\n --comment: #0f766e;\n --badge: #22c55e;\n --table-bg: rgba(15, 23, 42, 0.7);\n --row-even: rgba(30, 41, 59, 0.4);\n --row-odd: rgba(15, 23, 42, 0.2);\n --selected-bg: rgba(96,165,250,0.15);\n --hover-bg: rgba(96,165,250,0.08);\n --shadow-color: rgba(0,0,0,0.35);\n --code-bg: #1e293b;\n --error: #dc3545;\n}\n/* Light theme */\n[data-theme=\"light\"] {\n color-scheme: light;\n --bg: #f8fafc;\n --bg-gradient: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);\n --panel: #ffffff;\n --panel-alpha: rgba(255, 255, 255, 0.95);\n --panel-solid: #ffffff;\n --card-bg: rgba(255, 255, 255, 0.98);\n --input-bg: #f1f5f9;\n --border: #e2e8f0;\n --accent: #3b82f6;\n --accent-2: #ec4899;\n --text: #1e293b;\n --text-inverse: #ffffff;\n --muted: #64748b;\n --comment: #14b8a6;\n --badge: #22c55e;\n --table-bg: #ffffff;\n --row-even: #f8fafc;\n --row-odd: #ffffff;\n --selected-bg: rgba(59,130,246,0.12);\n --hover-bg: rgba(59,130,246,0.06);\n --shadow-color: rgba(0,0,0,0.1);\n --code-bg: #f1f5f9;\n --error: #dc3545;\n}\n* { box-sizing: border-box; }\nbody {\n margin: 0;\n font-family: \"Inter\", \"Hiragino Sans\", system-ui, -apple-system, sans-serif;\n background: var(--bg-gradient);\n color: var(--text);\n min-height: 100vh;\n transition: background 200ms ease, color 200ms ease;\n}\nheader {\n position: sticky;\n top: 0;\n z-index: 5;\n padding: 12px 16px;\n background: var(--panel-alpha);\n backdrop-filter: blur(8px);\n border-bottom: 1px solid var(--border);\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: space-between;\n transition: background 200ms ease, border-color 200ms ease;\n}\nheader .meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }\nheader .actions { display: flex; gap: 8px; align-items: center; }\nheader h1 { display: flex; flex-direction: column; margin: 0; line-height: 1.3; }\nheader h1 .title-path { font-size: 11px; font-weight: 400; color: var(--muted); }\nheader h1 .title-file { font-size: 16px; font-weight: 700; }\nheader .badge {\n background: var(--selected-bg);\n color: var(--text);\n padding: 6px 10px;\n border-radius: 8px;\n font-size: 12px;\n border: 1px solid var(--border);\n}\nheader button {\n background: linear-gradient(135deg, #38bdf8, #6366f1);\n color: var(--text-inverse);\n border: none;\n border-radius: 10px;\n padding: 10px 14px;\n font-weight: 700;\n cursor: pointer;\n box-shadow: 0 10px 30px var(--shadow-color);\n transition: transform 120ms ease, box-shadow 120ms ease;\n}\nheader button:hover { transform: translateY(-1px); box-shadow: 0 16px 36px var(--shadow-color); }\nheader button:active { transform: translateY(0); }\n/* Theme toggle button */\n.theme-toggle {\n background: var(--selected-bg);\n color: var(--text);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 8px 10px;\n font-size: 16px;\n cursor: pointer;\n transition: background 120ms ease, transform 120ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 38px;\n height: 38px;\n}\n.theme-toggle:hover { background: var(--hover-bg); transform: scale(1.05); }\n\n.wrap { padding: 12px 16px 12px; }\n.toolbar {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n margin: 10px 0 12px;\n color: var(--muted);\n font-size: 13px;\n}\n.toolbar button {\n background: rgba(96,165,250,0.12);\n color: var(--text);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 8px 10px;\n font-size: 13px;\n cursor: pointer;\n}\n.toolbar button:hover { background: rgba(96,165,250,0.2); }\n\n.table-box {\n background: var(--table-bg);\n border: 1px solid var(--border);\n border-radius: 12px;\n overflow: auto;\n max-height: calc(100vh - 110px);\n box-shadow: 0 20px 50px var(--shadow-color);\n transition: background 200ms ease, border-color 200ms ease;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n min-width: 540px;\n table-layout: fixed;\n}\nthead th {\n position: sticky;\n top: 0;\n z-index: 3;\n background: var(--panel-solid) !important;\n color: var(--muted);\n font-size: 12px;\n text-align: center;\n padding: 0;\n border-bottom: 1px solid var(--border);\n border-right: 1px solid var(--border);\n white-space: nowrap;\n transition: background 200ms ease;\n}\nthead th:not(.selected) {\n background: var(--panel-solid) !important;\n}\nthead th:first-child,\ntbody th {\n width: 28px;\n min-width: 28px;\n max-width: 28px;\n}\nthead th .th-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 8px 6px;\n position: relative;\n height: 100%;\n}\nthead th.filtered .th-inner {\n background: linear-gradient(135deg, rgba(96,165,250,0.18), rgba(34,197,94,0.18));\n color: #e5e7eb;\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 rgba(255,255,255,0.05);\n}\nthead th.filtered .th-inner::after {\n content: 'FILTER';\n font-size: 10px;\n color: #c7d2fe;\n background: rgba(99,102,241,0.24);\n border: 1px solid rgba(99,102,241,0.45);\n padding: 1px 6px;\n border-radius: 999px;\n position: absolute;\n bottom: 4px;\n right: 6px;\n}\n.resizer {\n position: absolute;\n right: 2px;\n top: 0;\n width: 6px;\n height: 100%;\n cursor: col-resize;\n user-select: none;\n touch-action: none;\n opacity: 0.6;\n}\n.resizer::after {\n content: '';\n position: absolute;\n top: 10%;\n bottom: 10%;\n left: 2px;\n width: 2px;\n background: rgba(96,165,250,0.6);\n border-radius: 2px;\n opacity: 0;\n transition: opacity 120ms ease;\n}\nthead th:hover .resizer::after { opacity: 1; }\n\n.freeze {\n position: sticky !important;\n background: var(--panel-solid);\n z-index: 4;\n}\n.freeze-row {\n position: sticky !important;\n background: var(--panel-solid);\n}\n.freeze-row.freeze {\n z-index: 6;\n}\nth.freeze-row {\n z-index: 6;\n}\ntbody th {\n position: sticky;\n left: 0;\n z-index: 2;\n background: var(--panel-solid);\n color: var(--muted);\n text-align: right;\n padding: 8px 10px;\n font-size: 12px;\n border-right: 1px solid var(--border);\n border-bottom: 1px solid var(--border);\n transition: background 200ms ease;\n}\ntd {\n padding: 10px 10px;\n border-bottom: 1px solid var(--border);\n border-right: 1px solid var(--border);\n background: var(--row-odd);\n color: var(--text);\n font-size: 13px;\n line-height: 1.45;\n cursor: pointer;\n transition: background 120ms ease, box-shadow 120ms ease;\n position: relative;\n white-space: pre-wrap;\n word-break: break-word;\n max-width: 320px;\n}\ntr:nth-child(even) td:not(.selected):not(.has-comment) { background: var(--row-even); }\ntd:hover:not(.selected) { background: var(--hover-bg); box-shadow: inset 0 0 0 1px rgba(96,165,250,0.25); }\ntd.has-comment { background: rgba(34,197,94,0.12); box-shadow: inset 0 0 0 1px rgba(34,197,94,0.35); }\ntd.selected, tbody th.selected { background: rgba(99,102,241,0.22) !important; box-shadow: inset 0 0 0 1px rgba(99,102,241,0.45); }\n.preview-highlight { background: rgba(167,139,250,0.18) !important; box-shadow: inset 0 0 0 2px rgba(139,92,246,0.35); border-radius: 4px; transition: background 150ms ease, box-shadow 150ms ease; padding-left: 8px; margin-left: -8px; }\nthead th.selected { background: #c7d2fe !important; box-shadow: inset 0 0 0 1px rgba(99,102,241,0.45); }\n[data-theme=\"dark\"] thead th.selected { background: #3730a3 !important; }\nbody.dragging { user-select: none; cursor: crosshair; }\nbody.dragging td, body.dragging tbody th { cursor: crosshair; }\ntbody th { cursor: pointer; }\ntd .dot {\n position: absolute;\n right: 6px;\n top: 6px;\n width: 8px;\n height: 8px;\n border-radius: 99px;\n background: var(--badge);\n box-shadow: 0 0 0 4px rgba(34,197,94,0.15);\n}\n.floating {\n position: fixed;\n z-index: 10;\n background: var(--panel-solid);\n border: 1px solid var(--border);\n border-radius: 12px;\n padding: 12px;\n width: min(420px, calc(100vw - 32px));\n box-shadow: 0 20px 40px var(--shadow-color);\n display: none;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.card-close-x {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 28px;\n height: 28px;\n padding: 0;\n background: transparent;\n border: none;\n color: var(--muted);\n font-size: 20px;\n line-height: 1;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n transition: background 120ms ease, color 120ms ease;\n}\n.card-close-x:hover { background: var(--border); color: var(--text);\n}\n.floating header {\n position: static;\n background: transparent;\n backdrop-filter: none;\n border: none;\n padding: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.floating h2 { font-size: 14px; margin: 0; color: var(--text); }\n.floating button {\n margin-left: 8px;\n background: var(--accent);\n color: var(--text-inverse);\n border: 1px solid var(--accent);\n padding: 6px 10px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition: background 120ms ease, opacity 120ms ease;\n}\n.floating button.icon-only {\n width: 32px;\n height: 32px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n line-height: 1;\n}\n.floating button:hover { opacity: 0.85; }\n.copy-btn-float {\n position: absolute;\n top: 4px;\n right: 4px;\n z-index: 2;\n background: var(--panel-solid) !important;\n border: 1px solid var(--border) !important;\n color: var(--muted) !important;\n opacity: 0.7;\n}\n.copy-btn-float:hover { opacity: 1 !important; }\n.card-actions-split {\n display: flex;\n justify-content: space-between !important;\n align-items: center;\n margin-top: 8px;\n}\n.danger-text {\n background: transparent !important;\n border: none !important;\n color: #ef4444 !important;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n padding: 4px 8px;\n}\n.danger-text:hover { color: #dc2626 !important; text-decoration: underline; }\n.floating textarea {\n width: 100%;\n min-height: 70px;\n resize: vertical;\n border-radius: 8px;\n border: 1px solid var(--border);\n background: var(--input-bg);\n color: var(--text);\n padding: 10px;\n font-size: 13px;\n line-height: 1.4;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.floating textarea:focus {\n outline: none;\n border-color: var(--accent);\n}\n.floating .actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 10px;\n}\n.floating .actions button.primary {\n background: linear-gradient(135deg, #22c55e, #16a34a);\n color: var(--text-inverse);\n border: none;\n font-weight: 700;\n box-shadow: 0 10px 30px rgba(22,163,74,0.35);\n}\n.comment-list {\n position: fixed;\n right: 14px;\n bottom: 14px;\n width: 320px;\n max-height: 60vh;\n overflow: auto;\n border: 1px solid var(--border);\n border-radius: 12px;\n background: var(--card-bg);\n box-shadow: 0 18px 40px var(--shadow-color);\n padding: 12px;\n backdrop-filter: blur(6px);\n transition: opacity 120ms ease, transform 120ms ease, background 200ms ease;\n}\n.comment-list h3 { margin: 0 0 8px 0; font-size: 13px; color: var(--muted); }\n.comment-list ol {\n margin: 0;\n padding-left: 18px;\n color: var(--text);\n font-size: 13px;\n line-height: 1.45;\n}\n.comment-list li { margin-bottom: 6px; }\n.comment-list .hint { color: var(--muted); font-size: 12px; }\n.pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 999px; background: var(--selected-bg); border: 1px solid var(--border); font-size: 12px; color: var(--text); cursor: pointer; transition: background 150ms ease, border-color 150ms ease; }\n.pill:hover { background: var(--hover-bg); border-color: var(--accent); }\n.pill strong { color: var(--text); font-weight: 700; }\n.comment-list.collapsed {\n opacity: 0;\n pointer-events: none;\n transform: translateY(8px) scale(0.98);\n}\n.md-preview {\n background: var(--input-bg);\n border: 1px solid var(--border);\n border-radius: 12px;\n padding: 14px;\n margin-bottom: 12px;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.md-layout {\n display: flex;\n gap: 16px;\n align-items: stretch;\n margin-top: 8px;\n height: calc(100vh - 80px);\n}\n.md-left {\n flex: 1;\n min-width: 200px;\n overflow-y: auto;\n overflow-x: auto;\n overscroll-behavior: contain;\n}\n.md-left .md-preview {\n max-height: none;\n}\n.md-right {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n overflow-x: auto;\n overscroll-behavior: contain;\n}\n.md-right .table-box {\n max-width: none;\n min-width: 0;\n max-height: none;\n overflow: visible;\n}\n/* Ensure thead is opaque in md-right to prevent content showing through */\n.md-right thead th {\n background: var(--panel-solid) !important;\n}\n.md-right thead th.selected {\n background: #c7d2fe !important;\n}\n[data-theme=\"dark\"] .md-right thead th {\n background: var(--panel-solid) !important;\n}\n[data-theme=\"dark\"] .md-right thead th.selected {\n background: #3730a3 !important;\n}\n\n/* === Media Sidebar === */\n.media-sidebar {\n display: flex;\n flex-shrink: 0;\n height: calc(100vh - 80px);\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n z-index: 10;\n max-width: 60%;\n}\n.media-sidebar.hidden {\n display: none;\n}\n.media-sidebar-thumbs {\n width: 96px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n gap: 8px;\n background: var(--panel);\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar {\n width: 4px;\n}\n.media-sidebar-thumbs::-webkit-scrollbar-track {\n background: transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar-thumb {\n background: var(--border);\n border-radius: 4px;\n}\n.media-sidebar-thumb {\n width: 80px;\n height: 60px;\n border-radius: 6px;\n border: 2px solid var(--border);\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n background: var(--bg);\n transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n}\n.media-sidebar-thumb:hover {\n border-color: var(--accent);\n transform: scale(1.05);\n box-shadow: 0 2px 8px var(--shadow-color);\n}\n.media-sidebar-thumb.active {\n border-color: var(--accent);\n box-shadow: 0 0 0 2px var(--accent), 0 2px 8px var(--shadow-color);\n}\n.media-sidebar-thumb img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n.media-sidebar-thumb svg {\n width: 100%;\n height: 100%;\n display: block;\n}\n.media-sidebar-thumb-video {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #000;\n}\n.media-sidebar-thumb-video video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.media-sidebar-thumb-video::after {\n content: '';\n position: absolute;\n width: 24px;\n height: 24px;\n background: rgba(255,255,255,0.85);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.media-sidebar-thumb-video::before {\n content: '';\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 9px;\n border-color: transparent transparent transparent #000;\n margin-left: 2px;\n}\n.media-sidebar-thumb-mermaid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 2px;\n background: var(--panel);\n overflow: hidden;\n}\n.media-sidebar-thumb-mermaid svg {\n width: 100% !important;\n height: 100% !important;\n max-width: 100%;\n max-height: 100%;\n display: block;\n}\n.media-sidebar-thumb-index {\n position: absolute;\n top: 2px;\n left: 2px;\n background: rgba(0,0,0,0.6);\n color: #fff;\n font-size: 9px;\n font-weight: 600;\n padding: 1px 4px;\n border-radius: 3px;\n line-height: 1.2;\n pointer-events: none;\n z-index: 1;\n}\n.media-sidebar-viewer {\n width: 0;\n overflow: hidden;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: var(--bg);\n position: relative;\n}\n.media-sidebar-viewer.open {\n width: 45vw;\n max-width: calc(100vw - 400px);\n overflow: hidden;\n padding: 0;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n}\n.media-sidebar-viewer-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: 0;\n}\n.media-sidebar-viewer-content img {\n max-width: none;\n max-height: none;\n border-radius: 0;\n}\n.media-sidebar-viewer-content video {\n max-width: 100%;\n max-height: 100vh;\n border-radius: 8px;\n background: #000;\n}\n.media-sidebar-viewer-content .viewer-mermaid-wrap {\n width: 100%;\n overflow: auto;\n display: flex;\n justify-content: center;\n background: var(--panel);\n border-radius: 8px;\n padding: 16px;\n}\n.media-sidebar-viewer-content .viewer-mermaid-wrap svg {\n width: 100% !important;\n height: auto !important;\n max-height: calc(100vh - 200px);\n}\n\n/* === Sidebar Rich Viewer: Mermaid zoom/pan/minimap === */\n.sidebar-mermaid-controls {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 8px;\n margin-bottom: 8px;\n width: 100%;\n box-sizing: border-box;\n}\n.sidebar-mermaid-controls button {\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 5px;\n padding: 4px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 13px;\n line-height: 1;\n transition: background 0.15s ease;\n}\n.sidebar-mermaid-controls button:hover { background: var(--hover-bg); }\n.sidebar-mermaid-controls .sidebar-zoom-info {\n font-size: 11px;\n color: var(--muted);\n min-width: 40px;\n text-align: center;\n user-select: none;\n}\n.sidebar-mermaid-viewport {\n width: 100%;\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n background: var(--panel);\n border-radius: 8px;\n border: 1px solid var(--border);\n}\n.sidebar-mermaid-viewport:active { cursor: grabbing; }\n.sidebar-mermaid-wrapper {\n position: absolute;\n transform-origin: 0 0;\n}\n.sidebar-mermaid-wrapper svg {\n display: block;\n}\n.sidebar-minimap {\n position: absolute;\n top: 12px;\n right: 8px;\n bottom: auto;\n left: auto;\n width: 140px;\n height: 100px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 6px;\n overflow: hidden;\n box-shadow: 0 2px 8px rgba(0,0,0,0.12);\n z-index: 3;\n}\n.sidebar-minimap-content {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px;\n}\n.sidebar-minimap-content svg {\n max-width: 100%;\n max-height: 100%;\n opacity: 0.6;\n}\n.sidebar-minimap-viewport {\n position: absolute;\n border: 2px solid var(--accent);\n background: rgba(102, 126, 234, 0.2);\n pointer-events: none;\n border-radius: 2px;\n}\n\n/* === Sidebar Rich Viewer: Image zoom/pan === */\n.sidebar-image-viewport {\n width: 100%;\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.sidebar-image-viewport.panning { cursor: grabbing; }\n.sidebar-image-viewport img {\n transform-origin: 0 0;\n max-width: none !important;\n max-height: none !important;\n border-radius: 0 !important;\n user-select: none;\n -webkit-user-drag: none;\n}\n.sidebar-zoom-indicator {\n position: absolute;\n bottom: 10px;\n left: 50%;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.65);\n color: #fff;\n font-size: 11px;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 12px;\n pointer-events: none;\n z-index: 3;\n backdrop-filter: blur(4px);\n transition: opacity 0.3s ease;\n user-select: none;\n}\n.sidebar-zoom-indicator.hidden { opacity: 0; }\n.sidebar-image-hint {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n color: var(--muted);\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.4s ease;\n text-align: center;\n z-index: 2;\n}\n\n/* === Sidebar Rich Viewer: Video container (timeline uses shared .video-timeline classes) === */\n.sidebar-video-container {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n.sidebar-video-container video {\n width: 100%;\n border-radius: 8px 8px 0 0;\n background: #000;\n max-height: calc(100vh - 260px);\n}\n\n.media-sidebar-viewer-label {\n margin-top: 12px;\n font-size: 12px;\n color: var(--muted);\n text-align: center;\n word-break: break-all;\n}\n.media-sidebar-viewer-close {\n position: absolute;\n top: 8px;\n left: 8px;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n z-index: 2;\n transition: background 0.15s ease;\n}\n.media-sidebar-viewer-close:hover {\n background: var(--hover-bg);\n}\n.sidebar-viewer-settings-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n background: rgba(0,0,0,0.5);\n border: none;\n border-radius: 8px;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n font-size: 16px;\n z-index: 5;\n transition: background 120ms ease;\n}\n.sidebar-viewer-settings-btn:hover {\n background: rgba(0,0,0,0.8);\n}\n.sidebar-viewer-settings-btn + .video-settings-panel {\n position: absolute;\n top: 44px;\n right: 8px;\n}\n\n.media-sidebar-toggle {\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 6px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n transition: background 0.15s ease, border-color 0.15s ease;\n display: none;\n}\n.media-sidebar-toggle.has-media {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n.media-sidebar-toggle:hover {\n background: var(--hover-bg);\n border-color: var(--accent);\n}\n.media-sidebar-toggle .toggle-count {\n font-size: 10px;\n font-weight: 700;\n background: var(--accent);\n color: var(--text-inverse);\n padding: 1px 5px;\n border-radius: 8px;\n line-height: 1.4;\n}\n.view-toggle {\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 6px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n.view-toggle:hover { background: rgba(96,165,250,0.2); }\n.view-toggle.active { background: var(--accent); color: #fff; }\n@media (max-width: 1200px) {\n .media-sidebar-viewer.open {\n width: 40vw;\n max-width: calc(100vw - 350px);\n }\n}\n@media (max-width: 900px) {\n .media-sidebar-thumbs {\n width: 72px;\n }\n .media-sidebar-thumb {\n width: 56px;\n height: 42px;\n }\n .media-sidebar-viewer.open {\n width: 35vw;\n max-width: calc(100vw - 300px);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .media-sidebar,\n .media-sidebar-viewer,\n .media-sidebar-thumb {\n transition: none !important;\n }\n}\n\n.md-preview h1, .md-preview h2, .md-preview h3, .md-preview h4 {\n margin: 0.4em 0 0.2em;\n}\n/* Heading toggle feature */\n.md-preview .md-heading-toggle {\n margin: 0;\n}\n.md-preview .heading-toggle-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 0.6em;\n transition: transform 150ms ease;\n color: var(--muted);\n flex-shrink: 0;\n cursor: pointer;\n padding: 4px 8px;\n margin: -4px 0 -4px -8px;\n border-radius: 4px;\n}\n.md-preview .heading-toggle-icon:hover {\n background: var(--hover-bg);\n color: var(--accent);\n}\n.md-preview .md-heading-toggle.collapsed .heading-toggle-icon {\n transform: rotate(-90deg);\n}\n.md-preview details.heading-toggle {\n margin: 0.2em 0;\n}\n.md-preview details.heading-toggle > summary {\n list-style: none;\n cursor: default;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.md-preview details.heading-toggle > summary::-webkit-details-marker {\n display: none;\n}\n.md-preview details.heading-toggle > summary > .md-heading-toggle {\n flex: 1;\n}\n.md-preview details.heading-toggle:not([open]) > .toggle-content {\n display: none;\n}\n.md-preview .heading-section-content {\n /* Content wrapper for collapsible sections */\n}\n.md-preview .heading-section-content.hidden {\n display: none;\n}\n.md-preview p { margin: 0.3em 0; line-height: 1.5; }\n.md-preview img { max-width: 100%; height: auto; border-radius: 8px; }\n.md-preview video.video-preview { max-width: 100%; height: auto; border-radius: 8px; background: #000; }\n.md-preview table video.video-preview {\n display: block;\n width: 100%;\n height: auto;\n}\n.md-preview code { background: rgba(255,255,255,0.08); padding: 2px 4px; border-radius: 4px; }\n.md-preview pre {\n background: var(--code-bg);\n padding: 12px 16px;\n border-radius: 8px;\n overflow: auto;\n border: 1px solid var(--border);\n}\n.md-preview pre code {\n background: none;\n padding: 0;\n font-size: 13px;\n line-height: 1.5;\n}\n.md-preview pre code.hljs {\n background: transparent;\n padding: 0;\n}\n/* YAML Frontmatter table */\n.frontmatter-table {\n margin-bottom: 20px;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--border);\n background: var(--panel);\n}\n.frontmatter-table table {\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n}\n.frontmatter-table thead th {\n background: linear-gradient(135deg, rgba(147, 51, 234, 0.15), rgba(96, 165, 250, 0.15));\n color: var(--text);\n font-size: 12px;\n font-weight: 600;\n padding: 10px 16px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n}\n.frontmatter-table tbody th {\n background: rgba(147, 51, 234, 0.08);\n color: #c084fc;\n font-weight: 500;\n font-size: 12px;\n padding: 8px 10px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n vertical-align: top;\n}\n.frontmatter-table tbody td {\n padding: 8px 14px;\n font-size: 13px;\n border-bottom: 1px solid var(--border);\n word-break: break-word;\n}\n.frontmatter-table tbody tr:last-child th,\n.frontmatter-table tbody tr:last-child td {\n border-bottom: none;\n}\n.frontmatter-table .fm-tag {\n display: inline-block;\n background: rgba(96, 165, 250, 0.15);\n color: var(--accent);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n margin-right: 4px;\n margin-bottom: 4px;\n}\n.frontmatter-table pre {\n margin: 0;\n background: var(--code-bg);\n padding: 8px;\n border-radius: 4px;\n font-size: 11px;\n}\n/* Reviw questions preview cards */\n.reviw-questions-preview {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.reviw-q-card {\n background: var(--code-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 10px 12px;\n}\n.reviw-q-card.resolved {\n border-left: 3px solid #22c55e;\n}\n.reviw-q-card.pending {\n border-left: 3px solid #f59e0b;\n}\n.reviw-q-header {\n font-size: 12px;\n color: var(--text-dim);\n margin-bottom: 4px;\n}\n.reviw-q-header strong {\n color: var(--accent);\n}\n.reviw-q-question {\n font-size: 13px;\n color: var(--text);\n margin-bottom: 6px;\n}\n.reviw-q-options {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 6px;\n}\n.reviw-q-answer {\n font-size: 12px;\n color: #22c55e;\n background: rgba(34, 197, 94, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n}\n[data-theme=\"light\"] .frontmatter-table tbody th {\n color: #7c3aed;\n}\n/* Table scroll container and indicator */\n.table-scroll-container {\n position: relative;\n margin: 16px 0;\n}\n.table-scroll-wrapper {\n overflow-x: auto;\n border-radius: 8px;\n}\n.scroll-hint {\n text-align: right;\n font-size: 12px;\n color: var(--accent);\n padding: 4px 8px;\n margin-bottom: 4px;\n opacity: 0;\n visibility: hidden;\n transition: opacity 200ms ease;\n}\n.table-scroll-container.can-scroll .scroll-hint {\n opacity: 0.8;\n visibility: visible;\n}\n.table-scroll-container.scrolled-end .scroll-hint {\n opacity: 0;\n visibility: hidden;\n}\n/* Markdown tables in preview */\n.md-preview table:not(.frontmatter-table table) {\n min-width: 100%;\n width: max-content;\n border-collapse: collapse;\n border: 1px solid var(--border);\n border-radius: 8px;\n}\n.md-preview table:not(.frontmatter-table table) th,\n.md-preview table:not(.frontmatter-table table) td {\n padding: 10px 16px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n vertical-align: top;\n word-break: break-word;\n overflow-wrap: anywhere;\n width: auto;\n}\n/* Force equal column widths when colgroup is not specified */\n.md-preview table:not(.frontmatter-table table) colgroup ~ * th,\n.md-preview table:not(.frontmatter-table table) colgroup ~ * td {\n width: auto;\n}\n.md-preview table:not(.frontmatter-table table) td:has(video),\n.md-preview table:not(.frontmatter-table table) td:has(img) {\n padding: 4px;\n line-height: 0;\n}\n.md-preview table:not(.frontmatter-table table) td video,\n.md-preview table:not(.frontmatter-table table) td img {\n width: 100%;\n max-width: 100%;\n height: auto;\n}\n.md-preview table:not(.frontmatter-table table) th {\n background: var(--panel);\n font-weight: 600;\n font-size: 13px;\n}\n.md-preview table:not(.frontmatter-table table) td {\n font-size: 13px;\n}\n.md-preview table:not(.frontmatter-table table) tr:last-child td {\n border-bottom: none;\n}\n.md-preview table:not(.frontmatter-table table) tr:hover td {\n background: var(--hover-bg);\n}\n/* Source table (右ペイン) */\n.table-box table {\n table-layout: fixed;\n width: 100%;\n}\n.table-box th,\n.table-box td {\n word-break: break-word;\n min-width: 140px;\n}\n.table-box th:first-child,\n.table-box td:first-child {\n min-width: 320px;\n max-width: 480px;\n}\n/* Image fullscreen overlay */\n.image-fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg);\n z-index: 1001;\n display: none;\n flex-direction: column;\n}\n.image-fullscreen-overlay.visible {\n display: flex;\n}\n.image-fs-content {\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n touch-action: none;\n}\n.image-fs-content:active { cursor: grabbing; }\n.image-fs-content .image-fs-wrapper {\n position: absolute;\n transform-origin: 0 0;\n}\n.image-fs-content .image-fs-wrapper img {\n display: block;\n}\n/* Video fullscreen overlay */\n.video-fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.95);\n z-index: 1001;\n display: none;\n justify-content: center;\n align-items: center;\n}\n.video-fullscreen-overlay.visible {\n display: flex;\n}\n.video-close-btn {\n position: absolute;\n top: 14px;\n right: 14px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.55);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 50%;\n cursor: pointer;\n color: #fff;\n font-size: 18px;\n z-index: 10;\n backdrop-filter: blur(4px);\n transition: background 120ms ease, transform 120ms ease;\n}\n.video-close-btn:hover {\n background: rgba(0, 0, 0, 0.75);\n transform: scale(1.04);\n}\n.video-container {\n width: 90vw;\n height: 90vh;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.video-container video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);\n}\n/* Video Timeline - shared base styles (used by both fullscreen and sidebar) */\n.video-timeline {\n background: rgba(0, 0, 0, 0.85);\n display: flex;\n overflow-x: auto;\n backdrop-filter: blur(8px);\n height: 80px;\n padding: 8px;\n gap: 4px;\n}\n.video-timeline::-webkit-scrollbar {\n height: 6px;\n}\n.video-timeline::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 3px;\n}\n.video-timeline::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n border-radius: 3px;\n}\n.video-timeline::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.5);\n}\n/* Fullscreen-specific video timeline positioning */\n.video-container .video-timeline {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n}\n/* Sidebar-specific video timeline sizing */\n.sidebar-video-container .video-timeline {\n width: 100%;\n height: 72px;\n padding: 6px;\n gap: 3px;\n border-radius: 0 0 8px 8px;\n background: rgba(0, 0, 0, 0.88);\n}\n.sidebar-video-container .video-timeline::-webkit-scrollbar { height: 5px; }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.08); }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.25); }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.4); }\n.timeline-thumb {\n height: 64px;\n cursor: pointer;\n border: 2px solid transparent;\n border-radius: 4px;\n flex-shrink: 0;\n transition: border-color 0.2s, transform 0.15s;\n opacity: 0.85;\n}\n.sidebar-video-container .timeline-thumb {\n height: 52px;\n opacity: 0.8;\n}\n.timeline-thumb:hover {\n border-color: rgba(59, 130, 246, 0.5);\n opacity: 1;\n transform: scale(1.05);\n}\n.timeline-thumb.active {\n border-color: #3b82f6;\n opacity: 1;\n box-shadow: 0 0 12px rgba(59, 130, 246, 0.5);\n}\n.sidebar-video-container .timeline-thumb.active {\n box-shadow: 0 0 8px rgba(59, 130, 246, 0.4);\n}\n.timeline-loading {\n color: rgba(255, 255, 255, 0.6);\n font-size: 12px;\n padding: 8px 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.sidebar-video-container .timeline-loading {\n font-size: 11px;\n padding: 6px 10px;\n gap: 6px;\n color: rgba(255, 255, 255, 0.5);\n}\n.timeline-loading::before {\n content: '';\n width: 14px;\n height: 14px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top-color: #3b82f6;\n border-radius: 50%;\n animation: timeline-spin 0.8s linear infinite;\n}\n.sidebar-video-container .timeline-loading::before {\n width: 12px;\n height: 12px;\n border-width: 2px;\n border-color: rgba(255, 255, 255, 0.25);\n border-top-color: #3b82f6;\n}\n@keyframes timeline-spin {\n to { transform: rotate(360deg); }\n}\n.timeline-time {\n position: absolute;\n bottom: 2px;\n right: 4px;\n font-size: 9px;\n color: #fff;\n background: rgba(0, 0, 0, 0.7);\n padding: 1px 4px;\n border-radius: 2px;\n pointer-events: none;\n}\n.sidebar-video-container .timeline-time {\n font-size: 8px;\n right: 3px;\n padding: 1px 3px;\n}\n.timeline-thumb-wrapper {\n position: relative;\n flex-shrink: 0;\n}\n/* Video threshold settings panel */\n.video-settings-btn {\n position: absolute;\n top: 14px;\n right: 64px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.55);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 50%;\n cursor: pointer;\n color: #fff;\n font-size: 18px;\n z-index: 10;\n backdrop-filter: blur(4px);\n transition: background 120ms ease, transform 120ms ease;\n}\n.video-settings-btn:hover {\n background: rgba(0, 0, 0, 0.75);\n transform: scale(1.04);\n}\n.video-settings-panel {\n position: absolute;\n top: 60px;\n right: 14px;\n background: rgba(0, 0, 0, 0.9);\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 12px;\n padding: 16px;\n z-index: 15;\n min-width: 280px;\n display: none;\n backdrop-filter: blur(8px);\n}\n.video-settings-panel.visible {\n display: block;\n}\n.video-settings-panel h4 {\n margin: 0 0 8px;\n color: #fff;\n font-size: 14px;\n font-weight: 500;\n}\n.video-settings-desc {\n margin: 0 0 12px;\n color: rgba(255, 255, 255, 0.6);\n font-size: 11px;\n line-height: 1.4;\n}\n.video-settings-buttons {\n display: flex;\n gap: 6px;\n margin-bottom: 12px;\n}\n.video-settings-buttons button {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 6px;\n background: rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.8);\n font-size: 11px;\n cursor: pointer;\n transition: all 120ms ease;\n}\n.video-settings-buttons button:hover {\n background: rgba(255, 255, 255, 0.2);\n border-color: rgba(255, 255, 255, 0.3);\n}\n.video-settings-buttons button.selected {\n background: #3b82f6;\n border-color: #3b82f6;\n color: #fff;\n}\n.video-settings-actions {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n}\n.video-settings-actions button {\n flex: 1;\n padding: 8px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n cursor: pointer;\n transition: background 120ms ease;\n}\n.video-settings-actions .reset-btn {\n background: rgba(255, 255, 255, 0.15);\n color: #fff;\n}\n.video-settings-actions .reset-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n/* Video Shortcuts Help */\n.video-shortcuts-help {\n opacity: 0.85;\n transition: opacity 0.2s;\n}\n.video-shortcuts-help:hover {\n opacity: 1;\n}\n.video-shortcuts-help .shortcuts-title {\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 10px;\n color: rgba(255, 255, 255, 0.7);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.video-shortcuts-help .shortcuts-title::before {\n content: '\\u2328';\n font-size: 14px;\n}\n.video-shortcuts-help .shortcut-item {\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 4px;\n flex-wrap: wrap;\n}\n.video-shortcuts-help .shortcut-item:last-child {\n margin-bottom: 0;\n}\n.video-shortcuts-help kbd {\n display: inline-block;\n background: rgba(255, 255, 255, 0.15);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 4px;\n padding: 2px 6px;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 10px;\n font-weight: 500;\n min-width: 18px;\n text-align: center;\n margin-right: 2px;\n}\n/* Reviw Questions Modal */\n.reviw-questions-overlay {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.8);\n z-index: 1100;\n justify-content: center;\n align-items: center;\n}\n.reviw-questions-overlay.visible {\n display: flex;\n}\n.reviw-questions-modal {\n background: var(--card-bg);\n border: 1px solid var(--border);\n border-radius: 16px;\n width: 90%;\n max-width: 600px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n box-shadow: 0 25px 80px rgba(0, 0, 0, 0.5);\n}\n.reviw-questions-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid var(--border);\n}\n.reviw-questions-header h2 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--text);\n}\n.reviw-questions-header h2 span {\n font-size: 14px;\n color: var(--text-dim);\n font-weight: 400;\n}\n.reviw-questions-close {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: var(--text-dim);\n font-size: 18px;\n cursor: pointer;\n border-radius: 8px;\n transition: all 150ms ease;\n}\n.reviw-questions-close:hover {\n background: var(--border);\n color: var(--text);\n}\n.reviw-questions-body {\n flex: 1;\n overflow-y: auto;\n padding: 16px 20px;\n}\n.reviw-questions-footer {\n padding: 12px 20px;\n border-top: 1px solid var(--border);\n display: flex;\n justify-content: flex-end;\n}\n.reviw-questions-later {\n padding: 8px 16px;\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text-dim);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n transition: all 150ms ease;\n}\n.reviw-questions-later:hover {\n background: var(--border);\n color: var(--text);\n}\n/* Question Item */\n.reviw-question-item {\n margin-bottom: 20px;\n padding-bottom: 20px;\n border-bottom: 1px solid var(--border);\n}\n.reviw-question-item:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n border-bottom: none;\n}\n.reviw-question-text {\n font-size: 14px;\n color: var(--text);\n margin-bottom: 12px;\n line-height: 1.5;\n}\n.reviw-question-options {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n}\n.reviw-question-option {\n padding: 8px 14px;\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n transition: all 150ms ease;\n}\n.reviw-question-option:hover {\n border-color: var(--accent);\n background: rgba(96, 165, 250, 0.1);\n}\n.reviw-question-option.selected {\n border-color: var(--accent);\n background: var(--accent);\n color: var(--text-inverse);\n}\n.reviw-question-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid var(--border);\n background: var(--input-bg);\n color: var(--text);\n border-radius: 8px;\n font-size: 13px;\n resize: vertical;\n min-height: 60px;\n}\n.reviw-question-input:focus {\n outline: none;\n border-color: var(--accent);\n}\n.reviw-question-input::placeholder {\n color: var(--text-dim);\n}\n.reviw-check-mark {\n color: #22c55e;\n font-weight: bold;\n}\n.reviw-question-item.answered {\n border-color: #22c55e;\n background: rgba(34, 197, 94, 0.05);\n}\n.reviw-question-submit {\n margin-top: 10px;\n padding: 8px 16px;\n border: none;\n background: var(--accent);\n color: var(--text-inverse);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 150ms ease;\n}\n.reviw-question-submit:hover {\n filter: brightness(1.1);\n}\n.reviw-question-submit:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n/* Resolved Section */\n.reviw-resolved-section {\n margin-top: 16px;\n border-top: 1px solid var(--border);\n padding-top: 12px;\n}\n.reviw-resolved-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n color: var(--text-dim);\n font-size: 13px;\n cursor: pointer;\n padding: 4px 0;\n}\n.reviw-resolved-toggle:hover {\n color: var(--text);\n}\n.reviw-resolved-toggle .arrow {\n transition: transform 150ms ease;\n}\n.reviw-resolved-toggle.open .arrow {\n transform: rotate(90deg);\n}\n.reviw-resolved-list {\n display: none;\n margin-top: 12px;\n}\n.reviw-resolved-list.visible {\n display: block;\n}\n.reviw-resolved-item {\n padding: 10px 12px;\n background: var(--input-bg);\n border-radius: 8px;\n margin-bottom: 8px;\n opacity: 0.7;\n}\n.reviw-resolved-item:last-child {\n margin-bottom: 0;\n}\n.reviw-resolved-q {\n font-size: 12px;\n color: var(--text-dim);\n margin-bottom: 4px;\n}\n.reviw-resolved-a {\n font-size: 13px;\n color: var(--text);\n}\n/* Notice Bar */\n.reviw-questions-bar {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: var(--accent);\n color: var(--text-inverse);\n padding: 8px 16px;\n font-size: 13px;\n z-index: 1050;\n justify-content: center;\n align-items: center;\n gap: 12px;\n}\n.reviw-questions-bar.visible {\n display: flex;\n}\n.reviw-questions-bar button {\n padding: 4px 12px;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background: rgba(255, 255, 255, 0.1);\n color: var(--text-inverse);\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n transition: all 150ms ease;\n}\n.reviw-questions-bar button:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n/* Adjust layout when bar is visible */\nbody.has-questions-bar header {\n top: 36px;\n}\nbody.has-questions-bar .toolbar,\nbody.has-questions-bar .table-wrap {\n margin-top: 36px;\n}\n/* Copy notification toast */\n.copy-toast {\n position: fixed;\n bottom: 60px;\n left: 50%;\n transform: translateX(-50%) translateY(20px);\n background: var(--accent);\n color: var(--text-inverse);\n padding: 8px 16px;\n border-radius: 8px;\n font-size: 13px;\n opacity: 0;\n pointer-events: none;\n transition: opacity 200ms ease, transform 200ms ease;\n z-index: 1000;\n}\n.copy-toast.visible {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n}\n@media (max-width: 960px) {\n .md-layout { flex-direction: column; }\n .md-left { max-width: 100%; flex: 1 1 0; min-height: 0; }\n .md-right { display: none; }\n .media-sidebar { display: none; }\n .media-sidebar-toggle { display: none !important; }\n}\n.md-layout.preview-only .md-right { display: none; }\n.md-layout.preview-only .md-left { flex: 1 1 0; min-height: 0; max-width: 100%; }\n.filter-menu {\n position: absolute;\n background: var(--panel-solid);\n border: 1px solid var(--border);\n border-radius: 10px;\n box-shadow: 0 14px 30px var(--shadow-color);\n padding: 8px;\n display: none;\n z-index: 12;\n width: 180px;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.filter-menu button {\n width: 100%;\n display: block;\n margin: 4px 0;\n padding: 8px 10px;\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n color: var(--text);\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n}\n.filter-menu button:hover { background: var(--hover-bg); }\n.modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.6);\n display: none;\n align-items: center;\n justify-content: center;\n z-index: 100;\n}\n.modal-overlay.visible { display: flex; }\n/* Submit modal: top-right position, no blocking overlay */\n#submit-modal {\n background: transparent;\n pointer-events: none;\n align-items: flex-start;\n justify-content: flex-end;\n}\n#submit-modal.visible { display: flex; }\n#submit-modal .modal-dialog {\n pointer-events: auto;\n margin: 60px 20px 20px 20px; /* top margin avoids header button overlap */\n}\n.modal-dialog {\n background: var(--panel-solid);\n border: 1px solid var(--border);\n border-radius: 14px;\n padding: 20px;\n width: 90%;\n max-width: 480px;\n box-shadow: 0 20px 40px var(--shadow-color);\n transition: background 200ms ease, border-color 200ms ease;\n}\n.modal-dialog h3 { margin: 0 0 12px; font-size: 18px; color: var(--accent); }\n.modal-summary { color: var(--muted); font-size: 13px; margin-bottom: 12px; }\n.modal-dialog label { display: block; font-size: 13px; margin-bottom: 6px; color: var(--muted); }\n.modal-dialog textarea {\n width: 100%;\n min-height: 100px;\n background: var(--input-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n color: var(--text);\n padding: 10px;\n font-size: 14px;\n resize: vertical;\n box-sizing: border-box;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.modal-dialog textarea:focus { outline: none; border-color: var(--accent); }\n.modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; }\n.modal-actions button {\n padding: 8px 16px;\n border-radius: 8px;\n border: 1px solid var(--border);\n background: var(--selected-bg);\n color: var(--text);\n cursor: pointer;\n font-size: 14px;\n}\n.modal-actions button:hover { background: var(--hover-bg); }\n.modal-actions button.primary { background: var(--accent); color: var(--text-inverse); border-color: var(--accent); }\n.image-attach-area { margin: 12px 0; }\n.image-attach-area label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }\n.image-attach-area.image-attach-small { margin: 8px 0; }\n.image-attach-area.image-attach-small label { font-size: 11px; }\n.image-preview-list { display: flex; flex-wrap: wrap; gap: 8px; min-height: 24px; }\n.image-preview-item { position: relative; }\n.image-preview-item img { max-width: 80px; max-height: 60px; border-radius: 4px; border: 1px solid var(--border); object-fit: cover; }\n.image-preview-item .remove-image { position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 50%; background: var(--error, #ef4444); color: #fff; border: none; cursor: pointer; font-size: 12px; line-height: 1; display: flex; align-items: center; justify-content: center; }\n.image-preview-item .remove-image:hover { background: #dc2626; }\n.modal-actions button.primary:hover { background: #7dd3fc; }\n.modal-actions-decision { justify-content: space-between; align-items: center; }\n.kbd-hint { display: inline-block; font-size: 10px; padding: 1px 5px; border-radius: 3px; background: rgba(255,255,255,0.15); margin-left: 6px; font-family: system-ui; opacity: 0.8; }\n[data-theme=\"light\"] .kbd-hint { background: rgba(0,0,0,0.08); }\n.decision-btn { padding: 8px 16px; border-radius: 8px; border: 1px solid var(--border); cursor: pointer; font-size: 14px; font-weight: 600; transition: all 0.15s ease; }\n.decision-approve { background: #166534; color: #bbf7d0; border-color: #22c55e; }\n.decision-approve:hover { background: #15803d; }\n.decision-request-changes { background: #92400e; color: #fef3c7; border-color: #f59e0b; }\n.decision-request-changes:hover { background: #a16207; }\n[data-theme=\"light\"] .decision-approve { background: #dcfce7; color: #166534; border-color: #22c55e; }\n[data-theme=\"light\"] .decision-approve:hover { background: #bbf7d0; }\n[data-theme=\"light\"] .decision-request-changes { background: #fef9c3; color: #92400e; border-color: #f59e0b; }\n[data-theme=\"light\"] .decision-request-changes:hover { background: #fef3c7; }\n.comment-sent-badge { display: inline-block; font-size: 10px; padding: 1px 6px; border-radius: 4px; margin-left: 6px; vertical-align: middle; }\n.comment-sent-badge.sent { background: #166534; color: #bbf7d0; }\n.comment-sent-badge.failed { background: #7f1d1d; color: #fecaca; }\n[data-theme=\"light\"] .comment-sent-badge.sent { background: #dcfce7; color: #166534; }\n[data-theme=\"light\"] .comment-sent-badge.failed { background: #fee2e2; color: #991b1b; }\n\n/* Send to AI fixed bottom bar */\n.send-to-ai-bar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 10; background: var(--panel-solid); border-top: 1px solid var(--border); padding: 8px 16px; }\n.send-to-ai-inner { display: flex; align-items: center; gap: 10px; max-width: 1200px; margin: 0 auto; }\n.sse-status { font-size: 12px; flex-shrink: 0; }\n.send-to-ai-input { flex: 1; min-width: 120px; height: 34px; padding: 0 10px; border-radius: 0; border: none; border-bottom: 1px solid var(--border); background: transparent; color: var(--text); font-size: 13px; outline: none; box-sizing: border-box; }\n.send-to-ai-input:focus { border-bottom-color: var(--accent); }\n.send-to-ai-btn.sent { background: #16a34a; pointer-events: none; }\n.send-to-ai-btn.sent:hover { background: #16a34a; }\n.send-to-ai-btn:disabled { opacity: 0.4; cursor: not-allowed; }\n#send-and-exit:disabled { opacity: 0.4; cursor: not-allowed; }\n.send-to-ai-btn { height: 34px; padding: 0 20px; border-radius: 6px; border: none; background: #2563eb; color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; transition: background 0.15s ease; flex-shrink: 0; box-sizing: border-box; }\n.send-to-ai-btn:hover { background: #1d4ed8; }\n.send-to-ai-btn:active { background: #1e40af; }\n[data-theme=\"light\"] .send-to-ai-btn { background: #3b82f6; }\n[data-theme=\"light\"] .send-to-ai-btn:hover { background: #2563eb; }\n/* Ensure content is not hidden behind the fixed Send to AI bar */\nbody { padding-bottom: 72px; }\n.md-left, .md-right, .text-view, .diff-view, .table-box { padding-bottom: 72px !important; }\n\n.modal-checkboxes { margin: 12px 0; }\n.modal-checkboxes label {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n color: var(--text);\n margin-bottom: 8px;\n cursor: pointer;\n}\n.modal-checkboxes input[type=\"checkbox\"] {\n margin-top: 2px;\n accent-color: var(--accent);\n}\n\nbody.dragging { user-select: none; cursor: crosshair; }\nbody.dragging .diff-line { cursor: crosshair; }\n@media (max-width: 840px) {\n header { flex-direction: column; align-items: flex-start; }\n .comment-list { width: calc(100% - 24px); right: 12px; }\n}\n/* Mermaid diagram styles */\n.mermaid-container {\n position: relative;\n margin: 16px 0;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 16px;\n overflow: hidden;\n}\n.mermaid-container .mermaid {\n display: flex;\n justify-content: center;\n}\n.mermaid-container .mermaid svg {\n max-width: 100%;\n height: auto;\n cursor: pointer;\n pointer-events: auto;\n}\n.mermaid-error-banner {\n background: #fff3f3;\n color: #c33;\n border: 1px solid #e88;\n border-radius: 4px;\n padding: 6px 10px;\n margin-bottom: 8px;\n font-size: 12px;\n font-weight: 500;\n}\n[data-theme=\"dark\"] .mermaid-error-banner {\n background: #3a1a1a;\n color: #f88;\n border-color: #744;\n}\n.mermaid-fullscreen-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 12px;\n z-index: 2;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.mermaid-fullscreen-btn:hover { background: var(--hover-bg); }\n/* Fullscreen overlay */\n.fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg);\n z-index: 1000;\n display: none;\n flex-direction: column;\n}\n.fullscreen-overlay.visible { display: flex; }\n.fullscreen-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 20px;\n background: var(--panel-alpha);\n border-bottom: 1px solid var(--border);\n}\n.fullscreen-header h3 { margin: 0; font-size: 14px; }\n.fullscreen-controls { display: flex; gap: 8px; align-items: center; }\n.fullscreen-controls button {\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 12px;\n cursor: pointer;\n color: var(--text);\n font-size: 13px;\n}\n.fullscreen-controls button:hover { background: var(--hover-bg); }\n.fullscreen-controls .zoom-info { font-size: 12px; color: var(--muted); min-width: 50px; text-align: center; }\n.fullscreen-content {\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n touch-action: none;\n}\n.fullscreen-content:active { cursor: grabbing; }\n.fullscreen-content .mermaid-wrapper {\n position: absolute;\n transform-origin: 0 0;\n padding: 40px;\n}\n.fullscreen-content .mermaid svg {\n display: block;\n}\n/* Minimap */\n.minimap {\n position: absolute;\n top: 70px;\n right: 20px;\n width: 200px;\n height: 150px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n}\n.minimap-content {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n}\n.minimap-content svg {\n max-width: 100%;\n max-height: 100%;\n opacity: 0.6;\n}\n.minimap-viewport {\n position: absolute;\n border: 2px solid var(--accent);\n background: rgba(102, 126, 234, 0.2);\n pointer-events: none;\n border-radius: 2px;\n}\n/* Error toast */\n.mermaid-error-toast {\n position: fixed;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--error);\n color: white;\n padding: 12px 24px;\n border-radius: 8px;\n font-size: 13px;\n max-width: 80%;\n z-index: 2000;\n display: none;\n box-shadow: 0 4px 12px rgba(0,0,0,0.3);\n white-space: pre-wrap;\n font-family: monospace;\n}\n.mermaid-error-toast.visible { display: block; }\n\n/* History Panel - Push layout */\nbody { transition: margin-right 0.25s ease; }\nbody.history-open { margin-right: 320px; }\nbody.history-open header { right: 320px; }\nheader { transition: right 0.25s ease; right: 0; }\n\n.history-toggle {\n background: var(--selected-bg);\n color: var(--text);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 8px;\n font-size: 14px;\n cursor: pointer;\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.history-toggle:hover { background: var(--border); }\n.history-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 320px;\n height: 100vh;\n background: var(--panel-solid);\n border-left: 1px solid var(--border);\n z-index: 90;\n transform: translateX(100%);\n transition: transform 0.25s ease;\n display: flex;\n flex-direction: column;\n}\n.history-panel.open { transform: translateX(0); }\n.history-panel-header {\n padding: 16px;\n border-bottom: 1px solid var(--border);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.history-panel-header h3 { margin: 0; font-size: 14px; font-weight: 600; }\n.history-panel-close {\n background: transparent;\n border: none;\n color: var(--muted);\n cursor: pointer;\n font-size: 18px;\n padding: 4px;\n}\n.history-panel-close:hover { color: var(--text); }\n.history-panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n}\n.history-empty {\n color: var(--muted);\n font-size: 13px;\n text-align: center;\n padding: 40px 20px;\n}\n.history-date-group { margin-bottom: 16px; }\n.history-date {\n font-size: 11px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 8px;\n text-transform: uppercase;\n}\n.history-item {\n background: var(--bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n margin-bottom: 8px;\n overflow: hidden;\n}\n.history-item-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 10px;\n background: var(--selected-bg);\n cursor: pointer;\n}\n.history-item-header:hover { background: var(--hover-bg); }\n.history-item-file {\n font-size: 12px;\n font-weight: 600;\n color: var(--text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 180px;\n}\n.history-item-time { font-size: 10px; color: var(--muted); }\n.history-item-body {\n display: none;\n padding: 10px;\n font-size: 12px;\n border-top: 1px solid var(--border);\n}\n.history-item.expanded .history-item-body { display: block; }\n.history-summary {\n color: var(--text);\n margin-bottom: 8px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--border);\n}\n.history-summary-label {\n font-size: 10px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 4px;\n}\n.history-summary-text { white-space: pre-wrap; line-height: 1.4; }\n.history-comments-label {\n font-size: 10px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 6px;\n}\n.history-comment {\n padding: 6px 0;\n border-bottom: 1px solid var(--border);\n}\n.history-comment:last-child { border-bottom: none; }\n.history-comment-line {\n font-size: 10px;\n color: var(--accent);\n font-weight: 600;\n margin-bottom: 2px;\n}\n.history-comment-quote {\n background: rgba(0, 0, 0, 0.3);\n border-left: 2px solid var(--accent);\n padding: 4px 8px;\n margin: 4px 0;\n font-family: 'SF Mono', Monaco, Consolas, monospace;\n font-size: 11px;\n color: var(--muted);\n white-space: pre-wrap;\n word-break: break-all;\n max-height: 80px;\n overflow-y: auto;\n}\n.history-comment-text {\n color: var(--text);\n line-height: 1.4;\n white-space: pre-wrap;\n}\n.history-badge {\n display: inline-block;\n background: var(--accent);\n color: var(--text-inverse);\n font-size: 10px;\n padding: 2px 6px;\n border-radius: 10px;\n margin-left: 6px;\n}\n/* Table scroll container */\n.table-container {\n overflow-x: auto;\n margin: 16px 0;\n border-radius: 8px;\n border: 1px solid var(--border);\n}\n.table-container table {\n margin: 0;\n border: none;\n border-radius: 0;\n}\n.table-container::-webkit-scrollbar {\n height: 6px;\n}\n.table-container::-webkit-scrollbar-track {\n background: var(--bg);\n border-radius: 3px;\n}\n.table-container::-webkit-scrollbar-thumb {\n background: var(--border);\n border-radius: 3px;\n}\n.table-container::-webkit-scrollbar-thumb:hover {\n background: var(--muted);\n}\n/* Media sidebar */\n.media-sidebar {\n display: flex;\n flex-shrink: 0;\n height: calc(100vh - 80px);\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n z-index: 10;\n max-width: 60%;\n}\n.media-sidebar.hidden { display: none; }\n.media-sidebar-thumbs {\n width: 96px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n gap: 8px;\n background: var(--panel);\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar { width: 4px; }\n.media-sidebar-thumbs::-webkit-scrollbar-track { background: transparent; }\n.media-sidebar-thumbs::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }\n.media-sidebar-thumb {\n width: 80px;\n height: 60px;\n border-radius: 6px;\n border: 2px solid var(--border);\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n background: var(--bg);\n transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n}\n.media-sidebar-thumb:hover { border-color: var(--accent); transform: scale(1.05); box-shadow: 0 2px 8px var(--shadow-color); }\n.media-sidebar-thumb.active { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent), 0 2px 8px var(--shadow-color); }\n.media-sidebar-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.media-sidebar-thumb svg { width: 100%; height: 100%; display: block; }\n.media-sidebar-thumb-video {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #000;\n}\n.media-sidebar-thumb-video video { width: 100%; height: 100%; object-fit: cover; }\n.media-sidebar-thumb-video::after {\n content: '';\n position: absolute;\n width: 24px;\n height: 24px;\n background: rgba(255,255,255,0.85);\n border-radius: 50%;\n}\n.media-sidebar-thumb-video::before {\n content: '';\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 9px;\n border-color: transparent transparent transparent #000;\n margin-left: 2px;\n}\n.media-sidebar-thumb-mermaid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 2px;\n background: var(--panel);\n overflow: hidden;\n}\n.media-sidebar-thumb-mermaid svg { width: 100% !important; height: 100% !important; max-width: 100%; max-height: 100%; display: block; }\n.media-sidebar-thumb-index {\n position: absolute;\n top: 2px;\n left: 2px;\n background: rgba(0,0,0,0.6);\n color: #fff;\n font-size: 9px;\n font-weight: 600;\n padding: 1px 4px;\n border-radius: 3px;\n line-height: 1.2;\n pointer-events: none;\n z-index: 1;\n}\n.media-sidebar-viewer {\n width: 0;\n overflow: hidden;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: var(--bg);\n position: relative;\n}\n.media-sidebar-viewer.open {\n width: 45vw;\n max-width: calc(100vw - 400px);\n overflow: hidden;\n padding: 0;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n}\n.media-sidebar-viewer-close {\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 10;\n background: rgba(0,0,0,0.5);\n border: none;\n color: #fff;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n cursor: pointer;\n font-size: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.media-sidebar-viewer-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: 0;\n}\n.media-sidebar-viewer-content img { max-width: none; max-height: none; border-radius: 0; }\n.media-sidebar-viewer-content video { max-width: 100%; max-height: 100vh; border-radius: 0; background: #000; }\n.media-sidebar-viewer-label {\n margin-top: 8px;\n font-size: 12px;\n color: var(--muted);\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n.sidebar-zoom-indicator {\n position: absolute;\n bottom: 12px;\n right: 12px;\n background: rgba(0,0,0,0.7);\n color: #fff;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n pointer-events: none;\n transition: opacity 0.3s ease;\n}\n.sidebar-zoom-indicator.hidden { opacity: 0; }\n.sidebar-maximize-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 36px;\n height: 36px;\n padding: 0;\n background: rgba(0,0,0,0.6);\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 5;\n transition: background 120ms ease;\n}\n.sidebar-maximize-btn:hover { background: rgba(0,0,0,0.8); }\n.sidebar-mermaid-viewport { overflow: hidden; position: relative; cursor: grab; }\n.sidebar-mermaid-wrapper { position: absolute; left: 0; top: 0; transform-origin: 0 0; }\n.sidebar-video-container { width: 100%; }\n.sidebar-video-container video { width: 100%; max-height: calc(100vh - 200px); border-radius: 8px; background: #000; }\n/* Video timeline */\n.video-timeline {\n display: flex;\n gap: 8px;\n padding: 8px;\n overflow-x: auto;\n background: var(--panel);\n border-radius: 8px;\n margin-top: 8px;\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.timeline-loading { color: var(--muted); font-size: 12px; padding: 8px; }\n.timeline-thumb-wrapper {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n cursor: pointer;\n}\n.timeline-thumb {\n width: 80px;\n height: 60px;\n object-fit: cover;\n border-radius: 4px;\n border: 2px solid transparent;\n transition: border-color 0.2s ease;\n}\n.timeline-thumb.active { border-color: var(--accent); }\n.timeline-thumb:hover { border-color: var(--accent); opacity: 0.8; }\n.timeline-time { font-size: 10px; color: var(--muted); }\n/* Fullscreen overlay */\n.fullscreen-overlay {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.9);\n z-index: 1000;\n flex-direction: column;\n}\n.fullscreen-overlay.visible { display: flex; }\n.fullscreen-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: rgba(0,0,0,0.8);\n border-bottom: 1px solid rgba(255,255,255,0.1);\n}\n.fullscreen-header h3 { margin: 0; color: #fff; font-size: 14px; }\n.fullscreen-controls { display: flex; gap: 6px; align-items: center; }\n.fullscreen-controls button {\n background: rgba(255,255,255,0.1);\n border: 1px solid rgba(255,255,255,0.2);\n color: #fff;\n padding: 6px 12px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n}\n.fullscreen-controls button:hover { background: rgba(255,255,255,0.2); }\n.fullscreen-controls .zoom-info { color: #fff; font-size: 12px; min-width: 40px; text-align: center; }\n@media (max-width: 960px) {\n .media-sidebar { display: none !important; }\n .media-sidebar-toggle { display: none !important; }\n}\n.video-overlay-wrapper {\n position: relative;\n display: inline-block;\n}\n.video-fs-overlay-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 36px;\n height: 36px;\n padding: 0;\n background: rgba(0,0,0,0.6);\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 5;\n transition: background 120ms ease;\n}\n.video-fs-overlay-btn:hover { background: rgba(0,0,0,0.8); }\n@media (max-width: 600px) {\n .minimap { display: none !important; }\n .fullscreen-header { padding: 8px 12px; }\n .fullscreen-controls { gap: 4px; }\n .fullscreen-controls button { padding: 6px 8px; font-size: 11px; }\n .fullscreen-controls .zoom-info { font-size: 11px; min-width: 32px; }\n .history-panel { width: 100vw; }\n body.history-open header { right: 0; }\n}");
|
|
3562
|
+
_M0IPB13StringBuilderPB6Logger13write__string(buf, "/* Dark theme (default) — warm-modern with copper accent */\n:root {\n color-scheme: dark;\n --bg: #14110f;\n --bg-gradient: radial-gradient(120% 80% at 15% 0%, #26201b 0%, #1a1612 40%, #14110f 80%);\n --panel: #1c1815;\n --panel-alpha: rgba(20, 17, 15, 0.82);\n --panel-solid: #1a1612;\n --card-bg: rgba(28, 24, 21, 0.96);\n --input-bg: rgba(32, 27, 23, 0.75);\n --border: #2e2822;\n --border-strong: #3a322b;\n --accent: #d7a67a;\n --accent-strong: #e7b98b;\n --accent-2: #a8765a;\n --accent-soft: rgba(215, 166, 122, 0.14);\n --text: #f1ebe1;\n --text-inverse: #1a1612;\n --muted: #9f9488;\n --comment: #b78a5a;\n --badge: #6bbf86;\n --table-bg: rgba(28, 24, 21, 0.72);\n --row-even: rgba(46, 40, 34, 0.5);\n --row-odd: rgba(28, 24, 21, 0.25);\n --selected-bg: rgba(215, 166, 122, 0.16);\n --hover-bg: rgba(215, 166, 122, 0.08);\n --shadow-color: rgba(0,0,0,0.45);\n --shadow-soft: 0 10px 30px rgba(0,0,0,0.35);\n --shadow-card: 0 20px 40px rgba(0,0,0,0.4);\n --code-bg: #23201c;\n --error: #e06862;\n --success: #6bbf86;\n --warning: #e8b574;\n --radius-sm: 8px;\n --radius-md: 12px;\n --radius-lg: 16px;\n --radius-pill: 999px;\n --font-display: \"Inter\", \"Hiragino Kaku Gothic ProN\", \"Hiragino Sans\", system-ui, -apple-system, sans-serif;\n}\n/* Light theme — warm beige / tan palette (no blue) */\n[data-theme=\"light\"] {\n color-scheme: light;\n --bg: #f6efe1;\n --bg-gradient: linear-gradient(180deg, #fbf6ea 0%, #efe6d3 100%);\n --panel: #fffaf0;\n --panel-alpha: rgba(255, 250, 240, 0.92);\n --panel-solid: #fffaf0;\n --card-bg: rgba(255, 252, 244, 0.98);\n --input-bg: #f4ead7;\n --border: #e4d6bc;\n --border-strong: #d1bf9e;\n --accent: #a8785a;\n --accent-strong: #8c5f43;\n --accent-2: #c89a70;\n --accent-soft: rgba(168, 120, 90, 0.12);\n --text: #3b2d20;\n --text-inverse: #fffaf0;\n --muted: #87735b;\n --comment: #a8785a;\n --badge: #4d9d63;\n --table-bg: #fffaf0;\n --row-even: #f6ecd8;\n --row-odd: #fffaf0;\n --selected-bg: rgba(168, 120, 90, 0.12);\n --hover-bg: rgba(168, 120, 90, 0.06);\n --shadow-color: rgba(60, 40, 20, 0.08);\n --shadow-soft: 0 6px 18px rgba(60, 40, 20, 0.08);\n --shadow-card: 0 18px 36px rgba(60, 40, 20, 0.12);\n --code-bg: #f4ead7;\n --error: #c9564f;\n --success: #4d9d63;\n --warning: #c58a40;\n}\n* { box-sizing: border-box; }\n:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }\nbody {\n margin: 0;\n font-family: var(--font-display, \"Inter\", \"Hiragino Kaku Gothic ProN\", \"Hiragino Sans\", system-ui, -apple-system, sans-serif);\n background: var(--bg-gradient);\n color: var(--text);\n min-height: 100vh;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.005em;\n transition: background 240ms ease, color 240ms ease;\n}\nheader {\n position: sticky;\n top: 0;\n z-index: 5;\n padding: 14px 20px;\n background: var(--panel-alpha);\n backdrop-filter: saturate(140%) blur(18px);\n -webkit-backdrop-filter: saturate(140%) blur(18px);\n border-bottom: 1px solid var(--border);\n display: flex;\n gap: 14px;\n align-items: center;\n justify-content: space-between;\n transition: background 240ms ease, border-color 240ms ease;\n}\nheader .meta { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }\nheader .actions { display: flex; gap: 6px; align-items: center; }\nheader h1 { display: flex; flex-direction: column; margin: 0; line-height: 1.3; }\nheader h1 .title-path { font-size: 11px; font-weight: 500; color: var(--muted); letter-spacing: 0.02em; }\nheader h1 .title-file { font-size: 16px; font-weight: 700; letter-spacing: -0.01em; }\nheader .badge {\n background: var(--accent-soft);\n color: var(--accent-strong);\n padding: 5px 12px;\n border-radius: var(--radius-pill);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.02em;\n border: 1px solid transparent;\n}\n/* Default header icon buttons (ghost) */\nheader button {\n background: transparent;\n color: var(--text);\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n padding: 0 12px;\n height: 34px;\n min-width: 34px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n box-shadow: none;\n transition: background 160ms ease, border-color 160ms ease, transform 120ms ease, color 160ms ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\nheader button:hover { background: var(--hover-bg); border-color: var(--border); transform: none; box-shadow: none; }\nheader button:active { transform: translateY(0); background: var(--selected-bg); }\n/* Primary submit button */\nheader button.submit-exit-btn {\n background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);\n color: var(--text-inverse);\n border: none;\n padding: 0 18px;\n font-weight: 700;\n letter-spacing: 0.01em;\n box-shadow: var(--shadow-soft);\n}\nheader button.submit-exit-btn:hover {\n background: linear-gradient(135deg, var(--accent-strong) 0%, var(--accent) 100%);\n border: none;\n transform: translateY(-1px);\n box-shadow: var(--shadow-card);\n}\nheader button.submit-exit-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n}\n/* Theme toggle button */\n.theme-toggle {\n background: transparent;\n color: var(--muted);\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n font-size: 15px;\n cursor: pointer;\n transition: background 160ms ease, transform 160ms ease, color 160ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 34px;\n height: 34px;\n}\n.theme-toggle:hover { background: var(--hover-bg); color: var(--text); transform: rotate(-12deg); }\n/* SSE status dot (header) */\n.sse-dot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n margin-right: 2px;\n border-radius: 50%;\n position: relative;\n cursor: default;\n flex-shrink: 0;\n}\n.sse-dot::before {\n content: \"\";\n display: block;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--muted);\n box-shadow: 0 0 0 0 currentColor;\n transition: background 200ms ease;\n}\n.sse-dot-connected::before { background: var(--success); box-shadow: 0 0 8px rgba(107, 191, 134, 0.45); }\n.sse-dot-reconnecting::before { background: var(--error); animation: sseBlink 1.1s ease-in-out infinite; }\n.sse-dot-sending::before { background: var(--warning); animation: sseBlink 0.9s ease-in-out infinite; }\n.sse-dot-label { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }\n@keyframes sseBlink { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }\n\n.wrap { padding: 12px 16px 12px; }\n.toolbar {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n margin: 10px 0 12px;\n color: var(--muted);\n font-size: 13px;\n}\n.toolbar button {\n background: var(--accent-soft);\n color: var(--text);\n border: 1px solid var(--border);\n border-radius: var(--radius-sm);\n padding: 8px 12px;\n font-size: 13px;\n cursor: pointer;\n transition: background 160ms ease, border-color 160ms ease;\n}\n.toolbar button:hover { background: var(--hover-bg); border-color: var(--border-strong); }\n\n.table-box {\n background: var(--table-bg);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n overflow: auto;\n max-height: calc(100vh - 110px);\n box-shadow: var(--shadow-soft);\n transition: background 240ms ease, border-color 240ms ease;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n min-width: 540px;\n table-layout: fixed;\n}\n.table-box thead th,\n.md-right thead th,\n#csv-table thead th {\n position: sticky;\n top: 0;\n z-index: 3;\n background: var(--panel-solid) !important;\n color: var(--muted);\n font-size: 12px;\n text-align: center;\n padding: 0;\n border-bottom: 1px solid var(--border);\n border-right: 1px solid var(--border);\n white-space: nowrap;\n transition: background 200ms ease;\n}\n.table-box thead th:not(.selected),\n.md-right thead th:not(.selected),\n#csv-table thead th:not(.selected) {\n background: var(--panel-solid) !important;\n}\n.md-right thead th:first-child,\n.md-right tbody th {\n width: 28px;\n min-width: 28px;\n max-width: 28px;\n}\nthead th .th-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 8px 6px;\n position: relative;\n height: 100%;\n}\nthead th.filtered .th-inner {\n background: var(--accent-soft);\n color: var(--accent-strong);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 rgba(255,255,255,0.04);\n}\nthead th.filtered .th-inner::after {\n content: 'FILTER';\n font-size: 10px;\n color: var(--accent-strong);\n background: var(--accent-soft);\n border: 1px solid var(--border-strong);\n padding: 1px 6px;\n border-radius: var(--radius-pill);\n position: absolute;\n bottom: 4px;\n right: 6px;\n}\n.resizer {\n position: absolute;\n right: 2px;\n top: 0;\n width: 6px;\n height: 100%;\n cursor: col-resize;\n user-select: none;\n touch-action: none;\n opacity: 0.6;\n}\n.resizer::after {\n content: '';\n position: absolute;\n top: 10%;\n bottom: 10%;\n left: 2px;\n width: 2px;\n background: var(--accent);\n border-radius: 2px;\n opacity: 0;\n transition: opacity 120ms ease;\n}\nthead th:hover .resizer::after { opacity: 1; }\n\n.freeze {\n position: sticky !important;\n background: var(--panel-solid);\n z-index: 4;\n}\n.freeze-row {\n position: sticky !important;\n background: var(--panel-solid);\n}\n.freeze-row.freeze {\n z-index: 6;\n}\nth.freeze-row {\n z-index: 6;\n}\ntbody th {\n position: sticky;\n left: 0;\n z-index: 2;\n background: var(--panel-solid);\n color: var(--muted);\n text-align: right;\n padding: 8px 10px;\n font-size: 12px;\n border-right: 1px solid var(--border);\n border-bottom: 1px solid var(--border);\n transition: background 200ms ease;\n}\ntd {\n padding: 10px 10px;\n border-bottom: 1px solid var(--border);\n border-right: 1px solid var(--border);\n background: var(--row-odd);\n color: var(--text);\n font-size: 13px;\n line-height: 1.45;\n cursor: pointer;\n transition: background 120ms ease, box-shadow 120ms ease;\n position: relative;\n white-space: pre-wrap;\n word-break: break-word;\n max-width: 320px;\n}\ntr:nth-child(even) td:not(.selected):not(.has-comment) { background: var(--row-even); }\ntd:hover:not(.selected) { background: var(--hover-bg); box-shadow: inset 0 0 0 1px var(--accent-soft); }\ntd.has-comment { background: rgba(77, 157, 99, 0.12); box-shadow: inset 0 0 0 1px rgba(77, 157, 99, 0.32); }\n[data-theme=\"dark\"] td.has-comment { background: rgba(107, 191, 134, 0.14); box-shadow: inset 0 0 0 1px rgba(107, 191, 134, 0.32); }\ntd.selected, tbody th.selected { background: var(--selected-bg) !important; box-shadow: inset 0 0 0 1px var(--accent) !important; }\n.preview-highlight { background: var(--selected-bg) !important; box-shadow: inset 0 0 0 2px var(--accent); border-radius: 4px; transition: background 150ms ease, box-shadow 150ms ease; padding-left: 8px; margin-left: -8px; }\nthead th.selected { background: var(--accent-soft) !important; color: var(--accent-strong); box-shadow: inset 0 0 0 1px var(--accent); }\n[data-theme=\"dark\"] thead th.selected { background: var(--accent-soft) !important; color: var(--accent-strong); }\nbody.dragging { user-select: none; cursor: crosshair; }\nbody.dragging td, body.dragging tbody th { cursor: crosshair; }\ntbody th { cursor: pointer; }\ntd .dot {\n position: absolute;\n right: 6px;\n top: 6px;\n width: 8px;\n height: 8px;\n border-radius: 99px;\n background: var(--badge);\n box-shadow: 0 0 0 4px rgba(77, 157, 99, 0.18);\n}\n.floating {\n position: fixed;\n z-index: 10;\n background: var(--card-bg);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 16px;\n width: min(440px, calc(100vw - 32px));\n box-shadow: var(--shadow-card);\n backdrop-filter: blur(24px);\n -webkit-backdrop-filter: blur(24px);\n display: none;\n transition: background 240ms ease, border-color 240ms ease;\n}\n.card-close-x {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 28px;\n height: 28px;\n padding: 0;\n background: transparent;\n border: none;\n color: var(--muted);\n font-size: 20px;\n line-height: 1;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n transition: background 120ms ease, color 120ms ease;\n}\n.card-close-x:hover { background: var(--border); color: var(--text);\n}\n.floating header {\n position: static;\n background: transparent;\n backdrop-filter: none;\n border: none;\n padding: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.floating h2 { font-size: 14px; font-weight: 600; margin: 0; color: var(--text); letter-spacing: -0.005em; }\n.floating button {\n margin-left: 8px;\n background: var(--accent);\n color: var(--text-inverse);\n border: 1px solid var(--accent);\n padding: 7px 12px;\n border-radius: var(--radius-sm);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition: background 160ms ease, opacity 160ms ease, transform 120ms ease;\n}\n.floating button.icon-only {\n width: 32px;\n height: 32px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n line-height: 1;\n}\n.floating button:hover { opacity: 0.85; }\n.copy-btn-float {\n position: absolute;\n top: 4px;\n right: 4px;\n z-index: 2;\n background: var(--panel-solid) !important;\n border: 1px solid var(--border) !important;\n color: var(--muted) !important;\n opacity: 0.7;\n}\n.copy-btn-float:hover { opacity: 1 !important; }\n.card-actions-split {\n display: flex;\n justify-content: space-between !important;\n align-items: center;\n margin-top: 8px;\n}\n.danger-text {\n background: transparent !important;\n border: none !important;\n color: #ef4444 !important;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n padding: 4px 8px;\n}\n.danger-text:hover { color: #dc2626 !important; text-decoration: underline; }\n.floating textarea {\n width: 100%;\n min-height: 70px;\n resize: vertical;\n border-radius: 8px;\n border: 1px solid var(--border);\n background: var(--input-bg);\n color: var(--text);\n padding: 10px;\n font-size: 13px;\n line-height: 1.4;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.floating textarea:focus {\n outline: none;\n border-color: var(--accent);\n}\n.floating .actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 10px;\n}\n.floating .actions button.primary {\n background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);\n color: var(--text-inverse);\n border: none;\n padding: 8px 18px;\n font-weight: 700;\n letter-spacing: 0.01em;\n box-shadow: var(--shadow-soft);\n}\n.floating .actions button.primary:hover {\n background: linear-gradient(135deg, var(--accent-strong) 0%, var(--accent) 100%);\n box-shadow: var(--shadow-card);\n}\n.comment-list {\n position: fixed;\n right: 14px;\n bottom: 14px;\n width: 320px;\n max-height: 60vh;\n overflow: auto;\n border: 1px solid var(--border);\n border-radius: 12px;\n background: var(--card-bg);\n box-shadow: 0 18px 40px var(--shadow-color);\n padding: 12px;\n backdrop-filter: blur(6px);\n transition: opacity 120ms ease, transform 120ms ease, background 200ms ease;\n}\n.comment-list h3 { margin: 0 0 8px 0; font-size: 13px; color: var(--muted); }\n.comment-list ol {\n margin: 0;\n padding-left: 18px;\n color: var(--text);\n font-size: 13px;\n line-height: 1.45;\n}\n.comment-list li { margin-bottom: 6px; }\n.comment-list .hint { color: var(--muted); font-size: 12px; }\n.pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--radius-pill); background: var(--accent-soft); border: 1px solid transparent; font-size: 12px; font-weight: 500; color: var(--accent-strong); cursor: pointer; transition: background 160ms ease, border-color 160ms ease, transform 120ms ease; }\n.pill:hover { background: var(--hover-bg); border-color: var(--border-strong); transform: translateY(-1px); }\n.pill strong { color: var(--accent-strong); font-weight: 700; }\n.comment-list.collapsed {\n opacity: 0;\n pointer-events: none;\n transform: translateY(8px) scale(0.98);\n}\n.md-preview {\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 20px 24px;\n margin-bottom: 12px;\n box-shadow: var(--shadow-soft);\n line-height: 1.65;\n transition: background 240ms ease, border-color 240ms ease;\n}\n.md-layout {\n display: flex;\n gap: 16px;\n align-items: stretch;\n margin-top: 8px;\n height: calc(100vh - 80px);\n}\n.md-left {\n flex: 1;\n min-width: 200px;\n overflow-y: auto;\n overflow-x: auto;\n overscroll-behavior: contain;\n}\n.md-left .md-preview {\n max-height: none;\n}\n.md-right {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n overflow-x: auto;\n overscroll-behavior: contain;\n}\n.md-right .table-box {\n max-width: none;\n min-width: 0;\n max-height: none;\n overflow: visible;\n}\n/* Ensure thead is opaque in md-right to prevent content showing through */\n.md-right thead th {\n background: var(--panel-solid) !important;\n}\n.md-right thead th.selected {\n background: var(--accent-soft) !important;\n color: var(--accent-strong);\n}\n[data-theme=\"dark\"] .md-right thead th {\n background: var(--panel-solid) !important;\n}\n[data-theme=\"dark\"] .md-right thead th.selected {\n background: var(--accent-soft) !important;\n color: var(--accent-strong);\n}\n\n/* === Media Sidebar === */\n.media-sidebar {\n display: flex;\n flex-shrink: 0;\n height: calc(100vh - 80px);\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n z-index: 10;\n max-width: 60%;\n}\n.media-sidebar.hidden {\n display: none;\n}\n.media-sidebar-thumbs {\n width: 96px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n gap: 8px;\n background: var(--panel);\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar {\n width: 4px;\n}\n.media-sidebar-thumbs::-webkit-scrollbar-track {\n background: transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar-thumb {\n background: var(--border);\n border-radius: 4px;\n}\n.media-sidebar-thumb {\n width: 80px;\n height: 60px;\n border-radius: 6px;\n border: 2px solid var(--border);\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n background: var(--bg);\n transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n}\n.media-sidebar-thumb:hover {\n border-color: var(--accent);\n transform: scale(1.05);\n box-shadow: 0 2px 8px var(--shadow-color);\n}\n.media-sidebar-thumb.active {\n border-color: var(--accent);\n box-shadow: 0 0 0 2px var(--accent), 0 2px 8px var(--shadow-color);\n}\n.media-sidebar-thumb img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n.media-sidebar-thumb svg {\n width: 100%;\n height: 100%;\n display: block;\n}\n.media-sidebar-thumb-video {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #000;\n}\n.media-sidebar-thumb-video video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.media-sidebar-thumb-video::after {\n content: '';\n position: absolute;\n width: 24px;\n height: 24px;\n background: rgba(255,255,255,0.85);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.media-sidebar-thumb-video::before {\n content: '';\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 9px;\n border-color: transparent transparent transparent #000;\n margin-left: 2px;\n}\n.media-sidebar-thumb-mermaid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 2px;\n background: var(--panel);\n overflow: hidden;\n}\n.media-sidebar-thumb-mermaid svg {\n width: 100% !important;\n height: 100% !important;\n max-width: 100%;\n max-height: 100%;\n display: block;\n}\n.media-sidebar-thumb-index {\n position: absolute;\n top: 2px;\n left: 2px;\n background: rgba(0,0,0,0.6);\n color: #fff;\n font-size: 9px;\n font-weight: 600;\n padding: 1px 4px;\n border-radius: 3px;\n line-height: 1.2;\n pointer-events: none;\n z-index: 1;\n}\n.media-sidebar-viewer {\n width: 0;\n overflow: hidden;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: var(--bg);\n position: relative;\n}\n.media-sidebar-viewer.open {\n width: 45vw;\n max-width: calc(100vw - 400px);\n overflow: hidden;\n padding: 0;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n}\n.media-sidebar-viewer-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: 0;\n}\n.media-sidebar-viewer-content img {\n max-width: none;\n max-height: none;\n border-radius: 0;\n}\n.media-sidebar-viewer-content video {\n max-width: 100%;\n max-height: 100vh;\n border-radius: 8px;\n background: #000;\n}\n.media-sidebar-viewer-content .viewer-mermaid-wrap {\n width: 100%;\n overflow: auto;\n display: flex;\n justify-content: center;\n background: var(--panel);\n border-radius: 8px;\n padding: 16px;\n}\n.media-sidebar-viewer-content .viewer-mermaid-wrap svg {\n width: 100% !important;\n height: auto !important;\n max-height: calc(100vh - 200px);\n}\n\n/* === Sidebar Rich Viewer: Mermaid zoom/pan/minimap === */\n.sidebar-mermaid-controls {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 8px;\n margin-bottom: 8px;\n width: 100%;\n box-sizing: border-box;\n}\n.sidebar-mermaid-controls button {\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 5px;\n padding: 4px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 13px;\n line-height: 1;\n transition: background 0.15s ease;\n}\n.sidebar-mermaid-controls button:hover { background: var(--hover-bg); }\n.sidebar-mermaid-controls .sidebar-zoom-info {\n font-size: 11px;\n color: var(--muted);\n min-width: 40px;\n text-align: center;\n user-select: none;\n}\n.sidebar-mermaid-viewport {\n width: 100%;\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n background: var(--panel);\n border-radius: 8px;\n border: 1px solid var(--border);\n}\n.sidebar-mermaid-viewport:active { cursor: grabbing; }\n.sidebar-mermaid-wrapper {\n position: absolute;\n transform-origin: 0 0;\n}\n.sidebar-mermaid-wrapper svg {\n display: block;\n}\n.sidebar-minimap {\n position: absolute;\n top: 12px;\n right: 8px;\n bottom: auto;\n left: auto;\n width: 140px;\n height: 100px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 6px;\n overflow: hidden;\n box-shadow: 0 2px 8px rgba(0,0,0,0.12);\n z-index: 3;\n}\n.sidebar-minimap-content {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px;\n}\n.sidebar-minimap-content svg {\n max-width: 100%;\n max-height: 100%;\n opacity: 0.6;\n}\n.sidebar-minimap-viewport {\n position: absolute;\n border: 2px solid var(--accent);\n background: rgba(102, 126, 234, 0.2);\n pointer-events: none;\n border-radius: 2px;\n}\n\n/* === Sidebar Rich Viewer: Image zoom/pan === */\n.sidebar-image-viewport {\n width: 100%;\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.sidebar-image-viewport.panning { cursor: grabbing; }\n.sidebar-image-viewport img {\n transform-origin: 0 0;\n max-width: none !important;\n max-height: none !important;\n border-radius: 0 !important;\n user-select: none;\n -webkit-user-drag: none;\n}\n.sidebar-zoom-indicator {\n position: absolute;\n bottom: 10px;\n left: 50%;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.65);\n color: #fff;\n font-size: 11px;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 12px;\n pointer-events: none;\n z-index: 3;\n backdrop-filter: blur(4px);\n transition: opacity 0.3s ease;\n user-select: none;\n}\n.sidebar-zoom-indicator.hidden { opacity: 0; }\n.sidebar-image-hint {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n color: var(--muted);\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.4s ease;\n text-align: center;\n z-index: 2;\n}\n\n/* === Sidebar Rich Viewer: Video container (timeline uses shared .video-timeline classes) === */\n.sidebar-video-container {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n.sidebar-video-container video {\n width: 100%;\n border-radius: 8px 8px 0 0;\n background: #000;\n max-height: calc(100vh - 260px);\n}\n\n.media-sidebar-viewer-label {\n margin-top: 12px;\n font-size: 12px;\n color: var(--muted);\n text-align: center;\n word-break: break-all;\n}\n.media-sidebar-viewer-close {\n position: absolute;\n top: 8px;\n left: 8px;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n z-index: 2;\n transition: background 0.15s ease;\n}\n.media-sidebar-viewer-close:hover {\n background: var(--hover-bg);\n}\n.sidebar-viewer-settings-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n background: rgba(0,0,0,0.5);\n border: none;\n border-radius: 8px;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n font-size: 16px;\n z-index: 5;\n transition: background 120ms ease;\n}\n.sidebar-viewer-settings-btn:hover {\n background: rgba(0,0,0,0.8);\n}\n.sidebar-viewer-settings-btn + .video-settings-panel {\n position: absolute;\n top: 44px;\n right: 8px;\n}\n\n.media-sidebar-toggle {\n background: transparent;\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n padding: 0 10px;\n height: 34px;\n min-width: 34px;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n transition: background 160ms ease, border-color 160ms ease;\n display: none;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n.media-sidebar-toggle.has-media {\n display: inline-flex;\n}\n.media-sidebar-toggle:hover {\n background: var(--hover-bg);\n border-color: var(--border);\n}\n.media-sidebar-toggle .toggle-count {\n font-size: 10px;\n font-weight: 700;\n background: var(--accent);\n color: var(--text-inverse);\n padding: 1px 6px;\n border-radius: var(--radius-pill);\n line-height: 1.4;\n}\n.view-toggle {\n background: transparent;\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n padding: 0 10px;\n height: 34px;\n min-width: 34px;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n transition: background 160ms ease, border-color 160ms ease, color 160ms ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.view-toggle:hover { background: var(--hover-bg); border-color: var(--border); }\n.view-toggle.active { background: var(--accent-soft); color: var(--accent-strong); border-color: transparent; }\n@media (max-width: 1200px) {\n .media-sidebar-viewer.open {\n width: 40vw;\n max-width: calc(100vw - 350px);\n }\n}\n@media (max-width: 900px) {\n .media-sidebar-thumbs {\n width: 72px;\n }\n .media-sidebar-thumb {\n width: 56px;\n height: 42px;\n }\n .media-sidebar-viewer.open {\n width: 35vw;\n max-width: calc(100vw - 300px);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .media-sidebar,\n .media-sidebar-viewer,\n .media-sidebar-thumb {\n transition: none !important;\n }\n}\n\n.md-preview h1, .md-preview h2, .md-preview h3, .md-preview h4 {\n margin: 0.4em 0 0.2em;\n}\n/* Heading toggle feature */\n.md-preview .md-heading-toggle {\n margin: 0;\n}\n.md-preview .heading-toggle-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 0.6em;\n transition: transform 150ms ease;\n color: var(--muted);\n flex-shrink: 0;\n cursor: pointer;\n padding: 4px 8px;\n margin: -4px 0 -4px -8px;\n border-radius: 4px;\n}\n.md-preview .heading-toggle-icon:hover {\n background: var(--hover-bg);\n color: var(--accent);\n}\n.md-preview .md-heading-toggle.collapsed .heading-toggle-icon {\n transform: rotate(-90deg);\n}\n.md-preview details.heading-toggle {\n margin: 0.2em 0;\n}\n.md-preview details.heading-toggle > summary {\n list-style: none;\n cursor: default;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.md-preview details.heading-toggle > summary::-webkit-details-marker {\n display: none;\n}\n.md-preview details.heading-toggle > summary > .md-heading-toggle {\n flex: 1;\n}\n.md-preview details.heading-toggle:not([open]) > .toggle-content {\n display: none;\n}\n.md-preview .heading-section-content {\n /* Content wrapper for collapsible sections */\n}\n.md-preview .heading-section-content.hidden {\n display: none;\n}\n.md-preview p { margin: 0.3em 0; line-height: 1.5; }\n.md-preview img { max-width: 100%; height: auto; border-radius: 8px; }\n.md-preview video.video-preview { max-width: 100%; height: auto; border-radius: 8px; background: #000; }\n.md-preview table video.video-preview {\n display: block;\n width: 100%;\n height: auto;\n}\n.md-preview code { background: rgba(255,255,255,0.08); padding: 2px 4px; border-radius: 4px; }\n.md-preview pre {\n background: var(--code-bg);\n padding: 12px 16px;\n border-radius: 8px;\n overflow: auto;\n border: 1px solid var(--border);\n}\n.md-preview pre code {\n background: none;\n padding: 0;\n font-size: 13px;\n line-height: 1.5;\n}\n.md-preview pre code.hljs {\n background: transparent;\n padding: 0;\n}\n/* YAML Frontmatter table */\n.frontmatter-table {\n margin-bottom: 20px;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--border);\n background: var(--panel);\n}\n.frontmatter-table table {\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n}\n.frontmatter-table thead th {\n background: linear-gradient(135deg, rgba(147, 51, 234, 0.15), rgba(96, 165, 250, 0.15));\n color: var(--text);\n font-size: 12px;\n font-weight: 600;\n padding: 10px 16px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n}\n.frontmatter-table tbody th {\n background: rgba(147, 51, 234, 0.08);\n color: #c084fc;\n font-weight: 500;\n font-size: 12px;\n padding: 8px 10px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n vertical-align: top;\n}\n.frontmatter-table tbody td {\n padding: 8px 14px;\n font-size: 13px;\n border-bottom: 1px solid var(--border);\n word-break: break-word;\n}\n.frontmatter-table tbody tr:last-child th,\n.frontmatter-table tbody tr:last-child td {\n border-bottom: none;\n}\n.frontmatter-table .fm-tag {\n display: inline-block;\n background: rgba(96, 165, 250, 0.15);\n color: var(--accent);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n margin-right: 4px;\n margin-bottom: 4px;\n}\n.frontmatter-table pre {\n margin: 0;\n background: var(--code-bg);\n padding: 8px;\n border-radius: 4px;\n font-size: 11px;\n}\n/* Reviw questions preview cards */\n.reviw-questions-preview {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.reviw-q-card {\n background: var(--code-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 10px 12px;\n}\n.reviw-q-card.resolved {\n border-left: 3px solid #22c55e;\n}\n.reviw-q-card.pending {\n border-left: 3px solid #f59e0b;\n}\n.reviw-q-header {\n font-size: 12px;\n color: var(--text-dim);\n margin-bottom: 4px;\n}\n.reviw-q-header strong {\n color: var(--accent);\n}\n.reviw-q-question {\n font-size: 13px;\n color: var(--text);\n margin-bottom: 6px;\n}\n.reviw-q-options {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 6px;\n}\n.reviw-q-answer {\n font-size: 12px;\n color: #22c55e;\n background: rgba(34, 197, 94, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n}\n[data-theme=\"light\"] .frontmatter-table tbody th {\n color: #7c3aed;\n}\n/* Table scroll container and indicator */\n.table-scroll-container {\n position: relative;\n margin: 16px 0;\n}\n.table-scroll-wrapper {\n overflow-x: auto;\n border-radius: 8px;\n}\n.scroll-hint {\n text-align: right;\n font-size: 12px;\n color: var(--accent);\n padding: 4px 8px;\n margin-bottom: 4px;\n opacity: 0;\n visibility: hidden;\n transition: opacity 200ms ease;\n}\n.table-scroll-container.can-scroll .scroll-hint {\n opacity: 0.8;\n visibility: visible;\n}\n.table-scroll-container.scrolled-end .scroll-hint {\n opacity: 0;\n visibility: hidden;\n}\n/* Markdown tables in preview — blends with md-preview panel */\n.md-preview table:not(.frontmatter-table table) {\n min-width: 100%;\n width: max-content;\n border-collapse: collapse;\n border: none;\n background: transparent;\n margin: 12px 0 16px;\n}\n.md-preview table:not(.frontmatter-table table) th,\n.md-preview table:not(.frontmatter-table table) td {\n padding: 10px 16px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n vertical-align: top;\n word-break: break-word;\n overflow-wrap: anywhere;\n width: auto;\n}\n/* Force equal column widths when colgroup is not specified */\n.md-preview table:not(.frontmatter-table table) colgroup ~ * th,\n.md-preview table:not(.frontmatter-table table) colgroup ~ * td {\n width: auto;\n}\n.md-preview table:not(.frontmatter-table table) td:has(video),\n.md-preview table:not(.frontmatter-table table) td:has(img) {\n padding: 4px;\n line-height: 0;\n}\n.md-preview table:not(.frontmatter-table table) td video,\n.md-preview table:not(.frontmatter-table table) td img {\n width: 100%;\n max-width: 100%;\n height: auto;\n}\n.md-preview table:not(.frontmatter-table table) thead th {\n background: transparent;\n color: var(--accent-strong);\n font-weight: 700;\n font-size: 11px;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n border-bottom: 2px solid var(--accent);\n padding-top: 8px;\n padding-bottom: 10px;\n}\n.md-preview table:not(.frontmatter-table table) tbody td {\n font-size: 13px;\n color: var(--text);\n}\n.md-preview table:not(.frontmatter-table table) tr:last-child td {\n border-bottom: none;\n}\n.md-preview table:not(.frontmatter-table table) tbody tr:hover td {\n background: var(--hover-bg);\n}\n/* Source table (右ペイン) */\n.table-box table {\n table-layout: fixed;\n width: 100%;\n}\n.table-box th,\n.table-box td {\n word-break: break-word;\n min-width: 140px;\n}\n.table-box th:first-child,\n.table-box td:first-child {\n min-width: 320px;\n max-width: 480px;\n}\n/* Image fullscreen overlay */\n.image-fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg);\n z-index: 1001;\n display: none;\n flex-direction: column;\n}\n.image-fullscreen-overlay.visible {\n display: flex;\n}\n.image-fs-content {\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n touch-action: none;\n}\n.image-fs-content:active { cursor: grabbing; }\n.image-fs-content .image-fs-wrapper {\n position: absolute;\n transform-origin: 0 0;\n}\n.image-fs-content .image-fs-wrapper img {\n display: block;\n}\n/* Video fullscreen overlay */\n.video-fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.95);\n z-index: 1001;\n display: none;\n justify-content: center;\n align-items: center;\n}\n.video-fullscreen-overlay.visible {\n display: flex;\n}\n.video-close-btn {\n position: absolute;\n top: 14px;\n right: 14px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.55);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 50%;\n cursor: pointer;\n color: #fff;\n font-size: 18px;\n z-index: 10;\n backdrop-filter: blur(4px);\n transition: background 120ms ease, transform 120ms ease;\n}\n.video-close-btn:hover {\n background: rgba(0, 0, 0, 0.75);\n transform: scale(1.04);\n}\n.video-container {\n width: 90vw;\n height: 90vh;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.video-container video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);\n}\n/* Video Timeline - shared base styles (used by both fullscreen and sidebar) */\n.video-timeline {\n background: rgba(0, 0, 0, 0.85);\n display: flex;\n overflow-x: auto;\n backdrop-filter: blur(8px);\n height: 80px;\n padding: 8px;\n gap: 4px;\n}\n.video-timeline::-webkit-scrollbar {\n height: 6px;\n}\n.video-timeline::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 3px;\n}\n.video-timeline::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n border-radius: 3px;\n}\n.video-timeline::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.5);\n}\n/* Fullscreen-specific video timeline positioning */\n.video-container .video-timeline {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n}\n/* Sidebar-specific video timeline sizing */\n.sidebar-video-container .video-timeline {\n width: 100%;\n height: 72px;\n padding: 6px;\n gap: 3px;\n border-radius: 0 0 8px 8px;\n background: rgba(0, 0, 0, 0.88);\n}\n.sidebar-video-container .video-timeline::-webkit-scrollbar { height: 5px; }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.08); }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.25); }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.4); }\n.timeline-thumb {\n height: 64px;\n cursor: pointer;\n border: 2px solid transparent;\n border-radius: 4px;\n flex-shrink: 0;\n transition: border-color 0.2s, transform 0.15s;\n opacity: 0.85;\n}\n.sidebar-video-container .timeline-thumb {\n height: 52px;\n opacity: 0.8;\n}\n.timeline-thumb:hover {\n border-color: rgba(59, 130, 246, 0.5);\n opacity: 1;\n transform: scale(1.05);\n}\n.timeline-thumb.active {\n border-color: #3b82f6;\n opacity: 1;\n box-shadow: 0 0 12px rgba(59, 130, 246, 0.5);\n}\n.sidebar-video-container .timeline-thumb.active {\n box-shadow: 0 0 8px rgba(59, 130, 246, 0.4);\n}\n.timeline-loading {\n color: rgba(255, 255, 255, 0.6);\n font-size: 12px;\n padding: 8px 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.sidebar-video-container .timeline-loading {\n font-size: 11px;\n padding: 6px 10px;\n gap: 6px;\n color: rgba(255, 255, 255, 0.5);\n}\n.timeline-loading::before {\n content: '';\n width: 14px;\n height: 14px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top-color: #3b82f6;\n border-radius: 50%;\n animation: timeline-spin 0.8s linear infinite;\n}\n.sidebar-video-container .timeline-loading::before {\n width: 12px;\n height: 12px;\n border-width: 2px;\n border-color: rgba(255, 255, 255, 0.25);\n border-top-color: #3b82f6;\n}\n@keyframes timeline-spin {\n to { transform: rotate(360deg); }\n}\n.timeline-time {\n position: absolute;\n bottom: 2px;\n right: 4px;\n font-size: 9px;\n color: #fff;\n background: rgba(0, 0, 0, 0.7);\n padding: 1px 4px;\n border-radius: 2px;\n pointer-events: none;\n}\n.sidebar-video-container .timeline-time {\n font-size: 8px;\n right: 3px;\n padding: 1px 3px;\n}\n.timeline-thumb-wrapper {\n position: relative;\n flex-shrink: 0;\n}\n/* Video threshold settings panel */\n.video-settings-btn {\n position: absolute;\n top: 14px;\n right: 64px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.55);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 50%;\n cursor: pointer;\n color: #fff;\n font-size: 18px;\n z-index: 10;\n backdrop-filter: blur(4px);\n transition: background 120ms ease, transform 120ms ease;\n}\n.video-settings-btn:hover {\n background: rgba(0, 0, 0, 0.75);\n transform: scale(1.04);\n}\n.video-settings-panel {\n position: absolute;\n top: 60px;\n right: 14px;\n background: rgba(0, 0, 0, 0.9);\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 12px;\n padding: 16px;\n z-index: 15;\n min-width: 280px;\n display: none;\n backdrop-filter: blur(8px);\n}\n.video-settings-panel.visible {\n display: block;\n}\n.video-settings-panel h4 {\n margin: 0 0 8px;\n color: #fff;\n font-size: 14px;\n font-weight: 500;\n}\n.video-settings-desc {\n margin: 0 0 12px;\n color: rgba(255, 255, 255, 0.6);\n font-size: 11px;\n line-height: 1.4;\n}\n.video-settings-buttons {\n display: flex;\n gap: 6px;\n margin-bottom: 12px;\n}\n.video-settings-buttons button {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 6px;\n background: rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.8);\n font-size: 11px;\n cursor: pointer;\n transition: all 120ms ease;\n}\n.video-settings-buttons button:hover {\n background: rgba(255, 255, 255, 0.2);\n border-color: rgba(255, 255, 255, 0.3);\n}\n.video-settings-buttons button.selected {\n background: #3b82f6;\n border-color: #3b82f6;\n color: #fff;\n}\n.video-settings-actions {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n}\n.video-settings-actions button {\n flex: 1;\n padding: 8px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n cursor: pointer;\n transition: background 120ms ease;\n}\n.video-settings-actions .reset-btn {\n background: rgba(255, 255, 255, 0.15);\n color: #fff;\n}\n.video-settings-actions .reset-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n/* Video Shortcuts Help */\n.video-shortcuts-help {\n opacity: 0.85;\n transition: opacity 0.2s;\n}\n.video-shortcuts-help:hover {\n opacity: 1;\n}\n.video-shortcuts-help .shortcuts-title {\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 10px;\n color: rgba(255, 255, 255, 0.7);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.video-shortcuts-help .shortcuts-title::before {\n content: '\\u2328';\n font-size: 14px;\n}\n.video-shortcuts-help .shortcut-item {\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 4px;\n flex-wrap: wrap;\n}\n.video-shortcuts-help .shortcut-item:last-child {\n margin-bottom: 0;\n}\n.video-shortcuts-help kbd {\n display: inline-block;\n background: rgba(255, 255, 255, 0.15);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 4px;\n padding: 2px 6px;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 10px;\n font-weight: 500;\n min-width: 18px;\n text-align: center;\n margin-right: 2px;\n}\n/* Reviw Questions Modal */\n.reviw-questions-overlay {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.8);\n z-index: 1100;\n justify-content: center;\n align-items: center;\n}\n.reviw-questions-overlay.visible {\n display: flex;\n}\n.reviw-questions-modal {\n background: var(--card-bg);\n border: 1px solid var(--border);\n border-radius: 16px;\n width: 90%;\n max-width: 600px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n box-shadow: 0 25px 80px rgba(0, 0, 0, 0.5);\n}\n.reviw-questions-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid var(--border);\n}\n.reviw-questions-header h2 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--text);\n}\n.reviw-questions-header h2 span {\n font-size: 14px;\n color: var(--text-dim);\n font-weight: 400;\n}\n.reviw-questions-close {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: var(--text-dim);\n font-size: 18px;\n cursor: pointer;\n border-radius: 8px;\n transition: all 150ms ease;\n}\n.reviw-questions-close:hover {\n background: var(--border);\n color: var(--text);\n}\n.reviw-questions-body {\n flex: 1;\n overflow-y: auto;\n padding: 16px 20px;\n}\n.reviw-questions-footer {\n padding: 12px 20px;\n border-top: 1px solid var(--border);\n display: flex;\n justify-content: flex-end;\n}\n.reviw-questions-later {\n padding: 8px 16px;\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text-dim);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n transition: all 150ms ease;\n}\n.reviw-questions-later:hover {\n background: var(--border);\n color: var(--text);\n}\n/* Question Item */\n.reviw-question-item {\n margin-bottom: 20px;\n padding-bottom: 20px;\n border-bottom: 1px solid var(--border);\n}\n.reviw-question-item:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n border-bottom: none;\n}\n.reviw-question-text {\n font-size: 14px;\n color: var(--text);\n margin-bottom: 12px;\n line-height: 1.5;\n}\n.reviw-question-options {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n}\n.reviw-question-option {\n padding: 8px 14px;\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n transition: all 150ms ease;\n}\n.reviw-question-option:hover {\n border-color: var(--accent);\n background: rgba(96, 165, 250, 0.1);\n}\n.reviw-question-option.selected {\n border-color: var(--accent);\n background: var(--accent);\n color: var(--text-inverse);\n}\n.reviw-question-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid var(--border);\n background: var(--input-bg);\n color: var(--text);\n border-radius: 8px;\n font-size: 13px;\n resize: vertical;\n min-height: 60px;\n}\n.reviw-question-input:focus {\n outline: none;\n border-color: var(--accent);\n}\n.reviw-question-input::placeholder {\n color: var(--text-dim);\n}\n.reviw-check-mark {\n color: #22c55e;\n font-weight: bold;\n}\n.reviw-question-item.answered {\n border-color: #22c55e;\n background: rgba(34, 197, 94, 0.05);\n}\n.reviw-question-submit {\n margin-top: 10px;\n padding: 8px 16px;\n border: none;\n background: var(--accent);\n color: var(--text-inverse);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 150ms ease;\n}\n.reviw-question-submit:hover {\n filter: brightness(1.1);\n}\n.reviw-question-submit:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n/* Resolved Section */\n.reviw-resolved-section {\n margin-top: 16px;\n border-top: 1px solid var(--border);\n padding-top: 12px;\n}\n.reviw-resolved-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n color: var(--text-dim);\n font-size: 13px;\n cursor: pointer;\n padding: 4px 0;\n}\n.reviw-resolved-toggle:hover {\n color: var(--text);\n}\n.reviw-resolved-toggle .arrow {\n transition: transform 150ms ease;\n}\n.reviw-resolved-toggle.open .arrow {\n transform: rotate(90deg);\n}\n.reviw-resolved-list {\n display: none;\n margin-top: 12px;\n}\n.reviw-resolved-list.visible {\n display: block;\n}\n.reviw-resolved-item {\n padding: 10px 12px;\n background: var(--input-bg);\n border-radius: 8px;\n margin-bottom: 8px;\n opacity: 0.7;\n}\n.reviw-resolved-item:last-child {\n margin-bottom: 0;\n}\n.reviw-resolved-q {\n font-size: 12px;\n color: var(--text-dim);\n margin-bottom: 4px;\n}\n.reviw-resolved-a {\n font-size: 13px;\n color: var(--text);\n}\n/* Notice Bar */\n.reviw-questions-bar {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: var(--accent);\n color: var(--text-inverse);\n padding: 8px 16px;\n font-size: 13px;\n z-index: 1050;\n justify-content: center;\n align-items: center;\n gap: 12px;\n}\n.reviw-questions-bar.visible {\n display: flex;\n}\n.reviw-questions-bar button {\n padding: 4px 12px;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background: rgba(255, 255, 255, 0.1);\n color: var(--text-inverse);\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n transition: all 150ms ease;\n}\n.reviw-questions-bar button:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n/* Adjust layout when bar is visible */\nbody.has-questions-bar header {\n top: 36px;\n}\nbody.has-questions-bar .toolbar,\nbody.has-questions-bar .table-wrap {\n margin-top: 36px;\n}\n/* Copy notification toast */\n.copy-toast {\n position: fixed;\n bottom: 60px;\n left: 50%;\n transform: translateX(-50%) translateY(20px);\n background: var(--accent);\n color: var(--text-inverse);\n padding: 8px 16px;\n border-radius: 8px;\n font-size: 13px;\n opacity: 0;\n pointer-events: none;\n transition: opacity 200ms ease, transform 200ms ease;\n z-index: 1000;\n}\n.copy-toast.visible {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n}\n@media (max-width: 960px) {\n .md-layout { flex-direction: column; }\n .md-left { max-width: 100%; flex: 1 1 0; min-height: 0; }\n .md-right { display: none; }\n .media-sidebar { display: none; }\n .media-sidebar-toggle { display: none !important; }\n}\n.md-layout.preview-only .md-right { display: none; }\n.md-layout.preview-only .md-left { flex: 1 1 0; min-height: 0; max-width: 100%; }\n.filter-menu {\n position: absolute;\n background: var(--panel-solid);\n border: 1px solid var(--border);\n border-radius: 10px;\n box-shadow: 0 14px 30px var(--shadow-color);\n padding: 8px;\n display: none;\n z-index: 12;\n width: 180px;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.filter-menu button {\n width: 100%;\n display: block;\n margin: 4px 0;\n padding: 8px 10px;\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n color: var(--text);\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n}\n.filter-menu button:hover { background: var(--hover-bg); }\n.modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.6);\n display: none;\n align-items: center;\n justify-content: center;\n z-index: 100;\n}\n.modal-overlay.visible { display: flex; }\n/* Submit modal: top-right position, no blocking overlay */\n#submit-modal {\n background: transparent;\n pointer-events: none;\n align-items: flex-start;\n justify-content: flex-end;\n}\n#submit-modal.visible { display: flex; }\n#submit-modal .modal-dialog {\n pointer-events: auto;\n margin: 60px 20px 20px 20px; /* top margin avoids header button overlap */\n}\n.modal-dialog {\n background: var(--card-bg);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 24px;\n width: 90%;\n max-width: 480px;\n box-shadow: var(--shadow-card);\n backdrop-filter: blur(24px);\n -webkit-backdrop-filter: blur(24px);\n transition: background 240ms ease, border-color 240ms ease;\n}\n.modal-dialog h3 { margin: 0 0 14px; font-size: 18px; font-weight: 700; color: var(--text); letter-spacing: -0.01em; }\n.modal-summary { color: var(--muted); font-size: 13px; margin-bottom: 14px; line-height: 1.5; }\n.modal-dialog label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 8px; color: var(--muted); letter-spacing: 0.02em; text-transform: uppercase; }\n.modal-dialog textarea {\n width: 100%;\n min-height: 100px;\n background: var(--input-bg);\n border: 1px solid var(--border);\n border-radius: var(--radius-sm);\n color: var(--text);\n padding: 12px 14px;\n font-size: 14px;\n font-family: inherit;\n line-height: 1.5;\n resize: vertical;\n box-sizing: border-box;\n transition: background 200ms ease, border-color 200ms ease, box-shadow 200ms ease;\n}\n.modal-dialog textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }\n.modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; }\n.modal-actions button {\n padding: 9px 16px;\n border-radius: var(--radius-sm);\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text);\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n transition: background 160ms ease, border-color 160ms ease, transform 120ms ease;\n}\n.modal-actions button:hover { background: var(--hover-bg); border-color: var(--border-strong); }\n.modal-actions button.primary { background: var(--accent); color: var(--text-inverse); border-color: var(--accent); }\n.image-attach-area { margin: 12px 0; }\n.image-attach-area label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }\n.image-attach-area.image-attach-small { margin: 8px 0; }\n.image-attach-area.image-attach-small label { font-size: 11px; }\n.image-preview-list { display: flex; flex-wrap: wrap; gap: 8px; min-height: 24px; }\n.image-preview-item { position: relative; }\n.image-preview-item img { max-width: 80px; max-height: 60px; border-radius: 4px; border: 1px solid var(--border); object-fit: cover; }\n.image-preview-item .remove-image { position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 50%; background: var(--error, #ef4444); color: #fff; border: none; cursor: pointer; font-size: 12px; line-height: 1; display: flex; align-items: center; justify-content: center; }\n.image-preview-item .remove-image:hover { background: #dc2626; }\n.modal-actions button.primary:hover { background: #7dd3fc; }\n.modal-actions-decision { justify-content: space-between; align-items: center; }\n.kbd-hint { display: inline-block; font-size: 10px; padding: 1px 5px; border-radius: 3px; background: rgba(255,255,255,0.15); margin-left: 6px; font-family: system-ui; opacity: 0.8; }\n[data-theme=\"light\"] .kbd-hint { background: rgba(0,0,0,0.08); }\n.decision-btn { padding: 9px 16px; border-radius: var(--radius-sm); border: 1px solid var(--border); cursor: pointer; font-size: 13px; font-weight: 700; letter-spacing: 0.01em; transition: background 160ms ease, border-color 160ms ease, transform 120ms ease, box-shadow 160ms ease; }\n.decision-btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-soft); }\n.decision-approve { background: rgba(107, 191, 134, 0.14); color: var(--success); border-color: rgba(107, 191, 134, 0.42); }\n.decision-approve:hover { background: rgba(107, 191, 134, 0.22); border-color: var(--success); }\n.decision-request-changes { background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%); color: var(--text-inverse); border-color: transparent; }\n.decision-request-changes:hover { background: linear-gradient(135deg, var(--accent-strong) 0%, var(--accent) 100%); }\n[data-theme=\"light\"] .decision-approve { background: rgba(77, 157, 99, 0.14); color: var(--success); border-color: rgba(77, 157, 99, 0.38); }\n[data-theme=\"light\"] .decision-approve:hover { background: rgba(77, 157, 99, 0.22); }\n.comment-sent-badge { display: inline-block; font-size: 10px; padding: 1px 6px; border-radius: 4px; margin-left: 6px; vertical-align: middle; }\n.comment-sent-badge.sent { background: #166534; color: #bbf7d0; }\n.comment-sent-badge.failed { background: #7f1d1d; color: #fecaca; }\n[data-theme=\"light\"] .comment-sent-badge.sent { background: #dcfce7; color: #166534; }\n[data-theme=\"light\"] .comment-sent-badge.failed { background: #fee2e2; color: #991b1b; }\n\n/* Submit & Exit disabled state */\n#send-and-exit:disabled { opacity: 0.4; cursor: not-allowed; }\n\n.modal-checkboxes { margin: 12px 0; }\n.modal-checkboxes label {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n color: var(--text);\n margin-bottom: 8px;\n cursor: pointer;\n}\n.modal-checkboxes input[type=\"checkbox\"] {\n margin-top: 2px;\n accent-color: var(--accent);\n}\n\nbody.dragging { user-select: none; cursor: crosshair; }\nbody.dragging .diff-line { cursor: crosshair; }\n\n/* === Diff viewer === */\n.diff-view {\n margin: 20px;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 0;\n box-shadow: var(--shadow-soft);\n overflow: hidden;\n font-family: \"JetBrains Mono\", \"SF Mono\", \"Menlo\", \"Consolas\", ui-monospace, monospace;\n font-size: 13px;\n line-height: 1.55;\n}\n.diff-file-header {\n padding: 12px 20px;\n background: var(--accent-soft);\n color: var(--accent-strong);\n font-weight: 700;\n font-size: 13px;\n border-bottom: 1px solid var(--border);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.diff-file-header:not(:first-child) { border-top: 1px solid var(--border); }\n.diff-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n padding: 2px 8px;\n border-radius: var(--radius-pill);\n background: var(--accent);\n color: var(--text-inverse);\n}\n.diff-label.new { background: rgba(77, 157, 99, 0.18); color: var(--success); }\n.diff-label.deleted { background: rgba(201, 86, 79, 0.18); color: var(--error); }\n.diff-label.binary { background: var(--accent-soft); color: var(--muted); }\n.diff-hunk-header {\n padding: 6px 20px;\n background: var(--input-bg);\n color: var(--muted);\n font-size: 12px;\n border-bottom: 1px solid var(--border);\n}\n.diff-line {\n display: flex;\n padding: 0 20px;\n white-space: pre;\n min-height: 20px;\n border-left: 3px solid transparent;\n transition: background 120ms ease;\n}\n.diff-line:hover { background: var(--hover-bg); }\n.diff-line.addition {\n background: rgba(77, 157, 99, 0.10);\n border-left-color: var(--success);\n color: var(--text);\n}\n.diff-line.deletion {\n background: rgba(201, 86, 79, 0.10);\n border-left-color: var(--error);\n color: var(--text);\n}\n[data-theme=\"dark\"] .diff-line.addition { background: rgba(107, 191, 134, 0.10); }\n[data-theme=\"dark\"] .diff-line.deletion { background: rgba(224, 104, 98, 0.12); }\n.diff-line .line-num {\n display: inline-block;\n width: 44px;\n min-width: 44px;\n text-align: right;\n padding-right: 10px;\n color: var(--muted);\n font-size: 11px;\n user-select: none;\n}\n.diff-line .line-content {\n flex: 1;\n padding-left: 4px;\n}\n.diff-line.addition .line-content::before { content: \"+ \"; color: var(--success); font-weight: 700; }\n.diff-line.deletion .line-content::before { content: \"- \"; color: var(--error); font-weight: 700; }\n.diff-line:not(.addition):not(.deletion) .line-content::before { content: \" \"; }\n.diff-line.has-comment { outline: 2px dashed var(--accent); outline-offset: -2px; }\n\n/* === Plain text viewer === */\n.text-view {\n margin: 20px;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 16px 0;\n box-shadow: var(--shadow-soft);\n font-family: \"JetBrains Mono\", \"SF Mono\", \"Menlo\", \"Consolas\", ui-monospace, monospace;\n font-size: 13px;\n line-height: 1.65;\n}\n.text-line {\n display: flex;\n padding: 0 20px;\n white-space: pre-wrap;\n word-break: break-word;\n transition: background 120ms ease;\n cursor: text;\n}\n.text-line:hover { background: var(--hover-bg); }\n.text-line.has-comment { background: var(--selected-bg); border-left: 3px solid var(--accent); padding-left: 17px; }\n.text-line .line-num {\n display: inline-block;\n width: 44px;\n min-width: 44px;\n text-align: right;\n padding-right: 14px;\n color: var(--muted);\n font-size: 11px;\n user-select: none;\n}\n.text-line .line-content { flex: 1; color: var(--text); }\n\n@media (max-width: 840px) {\n header { flex-direction: column; align-items: flex-start; }\n .comment-list { width: calc(100% - 24px); right: 12px; }\n}\n/* Mermaid diagram styles */\n.mermaid-container {\n position: relative;\n margin: 16px 0;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 16px;\n overflow: hidden;\n}\n.mermaid-container .mermaid {\n display: flex;\n justify-content: center;\n}\n.mermaid-container .mermaid svg {\n max-width: 100%;\n height: auto;\n cursor: pointer;\n pointer-events: auto;\n}\n.mermaid-error-banner {\n background: #fff3f3;\n color: #c33;\n border: 1px solid #e88;\n border-radius: 4px;\n padding: 6px 10px;\n margin-bottom: 8px;\n font-size: 12px;\n font-weight: 500;\n}\n[data-theme=\"dark\"] .mermaid-error-banner {\n background: #3a1a1a;\n color: #f88;\n border-color: #744;\n}\n.mermaid-fullscreen-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 12px;\n z-index: 2;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.mermaid-fullscreen-btn:hover { background: var(--hover-bg); }\n/* Fullscreen overlay */\n.fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg);\n z-index: 1000;\n display: none;\n flex-direction: column;\n}\n.fullscreen-overlay.visible { display: flex; }\n.fullscreen-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 20px;\n background: var(--panel-alpha);\n border-bottom: 1px solid var(--border);\n}\n.fullscreen-header h3 { margin: 0; font-size: 14px; }\n.fullscreen-controls { display: flex; gap: 8px; align-items: center; }\n.fullscreen-controls button {\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 12px;\n cursor: pointer;\n color: var(--text);\n font-size: 13px;\n}\n.fullscreen-controls button:hover { background: var(--hover-bg); }\n.fullscreen-controls .zoom-info { font-size: 12px; color: var(--muted); min-width: 50px; text-align: center; }\n.fullscreen-content {\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n touch-action: none;\n}\n.fullscreen-content:active { cursor: grabbing; }\n.fullscreen-content .mermaid-wrapper {\n position: absolute;\n transform-origin: 0 0;\n padding: 40px;\n}\n.fullscreen-content .mermaid svg {\n display: block;\n}\n/* Minimap */\n.minimap {\n position: absolute;\n top: 70px;\n right: 20px;\n width: 200px;\n height: 150px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n}\n.minimap-content {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n}\n.minimap-content svg {\n max-width: 100%;\n max-height: 100%;\n opacity: 0.6;\n}\n.minimap-viewport {\n position: absolute;\n border: 2px solid var(--accent);\n background: rgba(102, 126, 234, 0.2);\n pointer-events: none;\n border-radius: 2px;\n}\n/* Error toast */\n.mermaid-error-toast {\n position: fixed;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--error);\n color: white;\n padding: 12px 24px;\n border-radius: 8px;\n font-size: 13px;\n max-width: 80%;\n z-index: 2000;\n display: none;\n box-shadow: 0 4px 12px rgba(0,0,0,0.3);\n white-space: pre-wrap;\n font-family: monospace;\n}\n.mermaid-error-toast.visible { display: block; }\n\n/* History Panel - Push layout */\nbody { transition: margin-right 0.28s cubic-bezier(0.2, 0.8, 0.2, 1); }\nbody.history-open { margin-right: 340px; }\nbody.history-open header { right: 340px; }\nheader { transition: right 0.28s cubic-bezier(0.2, 0.8, 0.2, 1); right: 0; }\n\n.history-toggle {\n background: transparent;\n color: var(--text);\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n padding: 0;\n font-size: 14px;\n cursor: pointer;\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 160ms ease, border-color 160ms ease;\n}\n.history-toggle:hover { background: var(--hover-bg); border-color: var(--border); }\n.history-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 340px;\n height: 100vh;\n background: var(--panel-alpha);\n border-left: 1px solid var(--border);\n backdrop-filter: saturate(140%) blur(24px);\n -webkit-backdrop-filter: saturate(140%) blur(24px);\n box-shadow: -20px 0 40px rgba(0, 0, 0, 0.08);\n z-index: 90;\n transform: translateX(100%);\n transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1);\n display: flex;\n flex-direction: column;\n}\n.history-panel.open { transform: translateX(0); }\n.history-panel-header {\n padding: 16px;\n border-bottom: 1px solid var(--border);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.history-panel-header h3 { margin: 0; font-size: 14px; font-weight: 600; }\n.history-panel-close {\n background: transparent;\n border: none;\n color: var(--muted);\n cursor: pointer;\n font-size: 18px;\n padding: 4px;\n}\n.history-panel-close:hover { color: var(--text); }\n.history-panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n}\n.history-empty {\n color: var(--muted);\n font-size: 13px;\n text-align: center;\n padding: 40px 20px;\n}\n.history-date-group { margin-bottom: 16px; }\n.history-date {\n font-size: 11px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 8px;\n text-transform: uppercase;\n}\n.history-item {\n background: var(--bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n margin-bottom: 8px;\n overflow: hidden;\n}\n.history-item-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 10px;\n background: var(--selected-bg);\n cursor: pointer;\n}\n.history-item-header:hover { background: var(--hover-bg); }\n.history-item-file {\n font-size: 12px;\n font-weight: 600;\n color: var(--text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 180px;\n}\n.history-item-time { font-size: 10px; color: var(--muted); }\n.history-item-body {\n display: none;\n padding: 10px;\n font-size: 12px;\n border-top: 1px solid var(--border);\n}\n.history-item.expanded .history-item-body { display: block; }\n.history-summary {\n color: var(--text);\n margin-bottom: 8px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--border);\n}\n.history-summary-label {\n font-size: 10px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 4px;\n}\n.history-summary-text { white-space: pre-wrap; line-height: 1.4; }\n.history-comments-label {\n font-size: 10px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 6px;\n}\n.history-comment {\n padding: 6px 0;\n border-bottom: 1px solid var(--border);\n}\n.history-comment:last-child { border-bottom: none; }\n.history-comment-line {\n font-size: 10px;\n color: var(--accent);\n font-weight: 600;\n margin-bottom: 2px;\n}\n.history-comment-quote {\n background: rgba(0, 0, 0, 0.3);\n border-left: 2px solid var(--accent);\n padding: 4px 8px;\n margin: 4px 0;\n font-family: 'SF Mono', Monaco, Consolas, monospace;\n font-size: 11px;\n color: var(--muted);\n white-space: pre-wrap;\n word-break: break-all;\n max-height: 80px;\n overflow-y: auto;\n}\n.history-comment-text {\n color: var(--text);\n line-height: 1.4;\n white-space: pre-wrap;\n}\n.history-badge {\n display: inline-block;\n background: var(--accent);\n color: var(--text-inverse);\n font-size: 10px;\n padding: 2px 6px;\n border-radius: 10px;\n margin-left: 6px;\n}\n/* Table scroll container */\n.table-container {\n overflow-x: auto;\n margin: 16px 0;\n border-radius: 8px;\n border: 1px solid var(--border);\n}\n.table-container table {\n margin: 0;\n border: none;\n border-radius: 0;\n}\n.table-container::-webkit-scrollbar {\n height: 6px;\n}\n.table-container::-webkit-scrollbar-track {\n background: var(--bg);\n border-radius: 3px;\n}\n.table-container::-webkit-scrollbar-thumb {\n background: var(--border);\n border-radius: 3px;\n}\n.table-container::-webkit-scrollbar-thumb:hover {\n background: var(--muted);\n}\n/* Media sidebar */\n.media-sidebar {\n display: flex;\n flex-shrink: 0;\n height: calc(100vh - 80px);\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n z-index: 10;\n max-width: 60%;\n}\n.media-sidebar.hidden { display: none; }\n.media-sidebar-thumbs {\n width: 96px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n gap: 8px;\n background: var(--panel);\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar { width: 4px; }\n.media-sidebar-thumbs::-webkit-scrollbar-track { background: transparent; }\n.media-sidebar-thumbs::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }\n.media-sidebar-thumb {\n width: 80px;\n height: 60px;\n border-radius: 6px;\n border: 2px solid var(--border);\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n background: var(--bg);\n transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n}\n.media-sidebar-thumb:hover { border-color: var(--accent); transform: scale(1.05); box-shadow: 0 2px 8px var(--shadow-color); }\n.media-sidebar-thumb.active { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent), 0 2px 8px var(--shadow-color); }\n.media-sidebar-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.media-sidebar-thumb svg { width: 100%; height: 100%; display: block; }\n.media-sidebar-thumb-video {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #000;\n}\n.media-sidebar-thumb-video video { width: 100%; height: 100%; object-fit: cover; }\n.media-sidebar-thumb-video::after {\n content: '';\n position: absolute;\n width: 24px;\n height: 24px;\n background: rgba(255,255,255,0.85);\n border-radius: 50%;\n}\n.media-sidebar-thumb-video::before {\n content: '';\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 9px;\n border-color: transparent transparent transparent #000;\n margin-left: 2px;\n}\n.media-sidebar-thumb-mermaid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 2px;\n background: var(--panel);\n overflow: hidden;\n}\n.media-sidebar-thumb-mermaid svg { width: 100% !important; height: 100% !important; max-width: 100%; max-height: 100%; display: block; }\n.media-sidebar-thumb-index {\n position: absolute;\n top: 2px;\n left: 2px;\n background: rgba(0,0,0,0.6);\n color: #fff;\n font-size: 9px;\n font-weight: 600;\n padding: 1px 4px;\n border-radius: 3px;\n line-height: 1.2;\n pointer-events: none;\n z-index: 1;\n}\n.media-sidebar-viewer {\n width: 0;\n overflow: hidden;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: var(--bg);\n position: relative;\n}\n.media-sidebar-viewer.open {\n width: 45vw;\n max-width: calc(100vw - 400px);\n overflow: hidden;\n padding: 0;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n}\n.media-sidebar-viewer-close {\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 10;\n background: rgba(0,0,0,0.5);\n border: none;\n color: #fff;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n cursor: pointer;\n font-size: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.media-sidebar-viewer-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: 0;\n}\n.media-sidebar-viewer-content img { max-width: none; max-height: none; border-radius: 0; }\n.media-sidebar-viewer-content video { max-width: 100%; max-height: 100vh; border-radius: 0; background: #000; }\n.media-sidebar-viewer-label {\n margin-top: 8px;\n font-size: 12px;\n color: var(--muted);\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n.sidebar-zoom-indicator {\n position: absolute;\n bottom: 12px;\n right: 12px;\n background: rgba(0,0,0,0.7);\n color: #fff;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n pointer-events: none;\n transition: opacity 0.3s ease;\n}\n.sidebar-zoom-indicator.hidden { opacity: 0; }\n.sidebar-maximize-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 36px;\n height: 36px;\n padding: 0;\n background: rgba(0,0,0,0.6);\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 5;\n transition: background 120ms ease;\n}\n.sidebar-maximize-btn:hover { background: rgba(0,0,0,0.8); }\n.sidebar-mermaid-viewport { overflow: hidden; position: relative; cursor: grab; }\n.sidebar-mermaid-wrapper { position: absolute; left: 0; top: 0; transform-origin: 0 0; }\n.sidebar-video-container { width: 100%; }\n.sidebar-video-container video { width: 100%; max-height: calc(100vh - 200px); border-radius: 8px; background: #000; }\n/* Video timeline */\n.video-timeline {\n display: flex;\n gap: 8px;\n padding: 8px;\n overflow-x: auto;\n background: var(--panel);\n border-radius: 8px;\n margin-top: 8px;\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.timeline-loading { color: var(--muted); font-size: 12px; padding: 8px; }\n.timeline-thumb-wrapper {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n cursor: pointer;\n}\n.timeline-thumb {\n width: 80px;\n height: 60px;\n object-fit: cover;\n border-radius: 4px;\n border: 2px solid transparent;\n transition: border-color 0.2s ease;\n}\n.timeline-thumb.active { border-color: var(--accent); }\n.timeline-thumb:hover { border-color: var(--accent); opacity: 0.8; }\n.timeline-time { font-size: 10px; color: var(--muted); }\n/* Fullscreen overlay */\n.fullscreen-overlay {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.9);\n z-index: 1000;\n flex-direction: column;\n}\n.fullscreen-overlay.visible { display: flex; }\n.fullscreen-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: rgba(0,0,0,0.8);\n border-bottom: 1px solid rgba(255,255,255,0.1);\n}\n.fullscreen-header h3 { margin: 0; color: #fff; font-size: 14px; }\n.fullscreen-controls { display: flex; gap: 6px; align-items: center; }\n.fullscreen-controls button {\n background: rgba(255,255,255,0.1);\n border: 1px solid rgba(255,255,255,0.2);\n color: #fff;\n padding: 6px 12px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n}\n.fullscreen-controls button:hover { background: rgba(255,255,255,0.2); }\n.fullscreen-controls .zoom-info { color: #fff; font-size: 12px; min-width: 40px; text-align: center; }\n@media (max-width: 960px) {\n .media-sidebar { display: none !important; }\n .media-sidebar-toggle { display: none !important; }\n}\n.video-overlay-wrapper {\n position: relative;\n display: inline-block;\n}\n.video-fs-overlay-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 36px;\n height: 36px;\n padding: 0;\n background: rgba(0,0,0,0.6);\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 5;\n transition: background 120ms ease;\n}\n.video-fs-overlay-btn:hover { background: rgba(0,0,0,0.8); }\n@media (max-width: 600px) {\n .minimap { display: none !important; }\n .fullscreen-header { padding: 8px 12px; }\n .fullscreen-controls { gap: 4px; }\n .fullscreen-controls button { padding: 6px 8px; font-size: 11px; }\n .fullscreen-controls .zoom-info { font-size: 11px; min-width: 32px; }\n .history-panel { width: 100vw; }\n body.history-open header { right: 0; }\n}");
|
|
4090
3563
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</style></head><body>");
|
|
4091
3564
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<header><div class=\"meta\">");
|
|
4092
3565
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<h1>");
|
|
@@ -4110,7 +3583,7 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
|
|
|
4110
3583
|
}
|
|
4111
3584
|
const dir_end = last_slash;
|
|
4112
3585
|
if (dir_end >= 0) {
|
|
4113
|
-
const dir_path =
|
|
3586
|
+
const dir_path = _M0IPC16string10StringViewPB4Show10to__string(_M0MPC16string6String11sub_2einner(file_path, 0, dir_end + 1 | 0));
|
|
4114
3587
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"title-path\">");
|
|
4115
3588
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(dir_path));
|
|
4116
3589
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</span>");
|
|
@@ -4122,11 +3595,12 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
|
|
|
4122
3595
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"badge\">Click to comment / ESC to cancel</span>");
|
|
4123
3596
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"pill\" id=\"pill-comments\" title=\"Toggle comment panel\">Comments <strong id=\"comment-count\">0</strong></button>");
|
|
4124
3597
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div><div class=\"actions\">");
|
|
3598
|
+
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"sse-dot sse-dot-connected\" id=\"sse-status\" role=\"status\" aria-live=\"polite\" title=\"Connected\"><span class=\"sse-dot-label\">Connected</span></span>");
|
|
4125
3599
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"media-sidebar-toggle\" id=\"media-sidebar-toggle\" title=\"Media Gallery\" aria-label=\"Toggle media gallery\">🖼<span class=\"toggle-count\" id=\"media-toggle-count\"></span></button>");
|
|
4126
3600
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"view-toggle\" id=\"view-toggle\" title=\"Hide source panel\">📝</button>");
|
|
4127
3601
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"history-toggle\" id=\"history-toggle\" title=\"Review History\">☰</button>");
|
|
4128
3602
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"theme-toggle\" id=\"theme-toggle\" title=\"Toggle theme\"><span id=\"theme-icon\">🌙</span></button>");
|
|
4129
|
-
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button id=\"send-and-exit\">Submit & Exit</button>");
|
|
3603
|
+
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button id=\"send-and-exit\" class=\"submit-exit-btn\">Submit & Exit</button>");
|
|
4130
3604
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div></header>");
|
|
4131
3605
|
}
|
|
4132
3606
|
function _M0FP36kazuph5reviw4core23build__questions__modal(buf, questions) {
|
|
@@ -4405,14 +3879,6 @@ function _M0FP36kazuph5reviw4core21build__script__footer(buf, port, mode, filena
|
|
|
4405
3879
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core18escape__js__string(filename));
|
|
4406
3880
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "\";</script></body></html>");
|
|
4407
3881
|
}
|
|
4408
|
-
function _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf) {
|
|
4409
|
-
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"send-to-ai-bar\" id=\"send-to-ai-bar\">");
|
|
4410
|
-
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"send-to-ai-inner\">");
|
|
4411
|
-
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"sse-status\" id=\"sse-status\">🟢 Connected</span>");
|
|
4412
|
-
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<input type=\"text\" class=\"send-to-ai-input\" id=\"send-to-ai-summary\" placeholder=\"Comment to AI (optional)\" />");
|
|
4413
|
-
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"send-to-ai-btn\" id=\"send-to-ai-btn\">📤 Send to AI</button>");
|
|
4414
|
-
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div></div>");
|
|
4415
|
-
}
|
|
4416
3882
|
function _M0FP36kazuph5reviw4core20build__submit__modal(buf) {
|
|
4417
3883
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"modal-overlay\" id=\"submit-modal\">");
|
|
4418
3884
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"modal-dialog\">");
|
|
@@ -4602,7 +4068,6 @@ function _M0FP36kazuph5reviw4core29build__markdown__html_2einner(md, filename, p
|
|
|
4602
4068
|
_M0FP36kazuph5reviw4core20build__comment__card(buf);
|
|
4603
4069
|
_M0FP36kazuph5reviw4core27build__comment__list__aside(buf);
|
|
4604
4070
|
_M0FP36kazuph5reviw4core20build__submit__modal(buf);
|
|
4605
|
-
_M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
|
|
4606
4071
|
_M0FP36kazuph5reviw4core22build__recovery__modal(buf);
|
|
4607
4072
|
_M0FP36kazuph5reviw4core26build__mermaid__fullscreen(buf);
|
|
4608
4073
|
_M0FP36kazuph5reviw4core24build__image__fullscreen(buf);
|
|
@@ -4748,7 +4213,6 @@ function _M0FP36kazuph5reviw4core16build__csv__html(data, filename, port) {
|
|
|
4748
4213
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</tbody></table></div>");
|
|
4749
4214
|
_M0FP36kazuph5reviw4core20build__comment__card(buf);
|
|
4750
4215
|
_M0FP36kazuph5reviw4core20build__submit__modal(buf);
|
|
4751
|
-
_M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
|
|
4752
4216
|
_M0FP36kazuph5reviw4core21build__history__panel(buf);
|
|
4753
4217
|
_M0FP36kazuph5reviw4core22build__recovery__modal(buf);
|
|
4754
4218
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<script>const DATA = ");
|
|
@@ -4885,7 +4349,6 @@ function _M0FP36kazuph5reviw4core17build__diff__html(data, filename, port) {
|
|
|
4885
4349
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div>");
|
|
4886
4350
|
_M0FP36kazuph5reviw4core20build__comment__card(buf);
|
|
4887
4351
|
_M0FP36kazuph5reviw4core20build__submit__modal(buf);
|
|
4888
|
-
_M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
|
|
4889
4352
|
_M0FP36kazuph5reviw4core21build__history__panel(buf);
|
|
4890
4353
|
_M0FP36kazuph5reviw4core22build__recovery__modal(buf);
|
|
4891
4354
|
_M0FP36kazuph5reviw4core21build__script__footer(buf, port, "diff", filename);
|
|
@@ -4918,7 +4381,6 @@ function _M0FP36kazuph5reviw4core17build__text__html(lines, filename, port) {
|
|
|
4918
4381
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div>");
|
|
4919
4382
|
_M0FP36kazuph5reviw4core20build__comment__card(buf);
|
|
4920
4383
|
_M0FP36kazuph5reviw4core20build__submit__modal(buf);
|
|
4921
|
-
_M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
|
|
4922
4384
|
_M0FP36kazuph5reviw4core21build__history__panel(buf);
|
|
4923
4385
|
_M0FP36kazuph5reviw4core22build__recovery__modal(buf);
|
|
4924
4386
|
_M0FP36kazuph5reviw4core21build__script__footer(buf, port, "text", filename);
|
|
@@ -5003,23 +4465,23 @@ function _M0FP36kazuph5reviw4core14collect__hunks(lines, start, len) {
|
|
|
5003
4465
|
while (true) {
|
|
5004
4466
|
if (i < len) {
|
|
5005
4467
|
const line = _M0MPC15array5Array2atGsE(lines, i);
|
|
5006
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
4468
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979.length))) {
|
|
5007
4469
|
const header = _M0FP36kazuph5reviw4core19parse__hunk__header(line);
|
|
5008
4470
|
const hunk_lines = [];
|
|
5009
4471
|
i = i + 1 | 0;
|
|
5010
4472
|
while (true) {
|
|
5011
4473
|
if (i < len) {
|
|
5012
4474
|
const l = _M0MPC15array5Array2atGsE(lines, i);
|
|
5013
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4475
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981.length)) || (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982.length)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983.length)))) {
|
|
5014
4476
|
break;
|
|
5015
4477
|
}
|
|
5016
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4478
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984.length))) {
|
|
5017
4479
|
_M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(1, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
|
|
5018
4480
|
} else {
|
|
5019
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4481
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS985, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS985.length))) {
|
|
5020
4482
|
_M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(2, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
|
|
5021
4483
|
} else {
|
|
5022
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4484
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS986, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS986.length))) {
|
|
5023
4485
|
_M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(0, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
|
|
5024
4486
|
} else {
|
|
5025
4487
|
_M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(0, l));
|
|
@@ -5034,7 +4496,7 @@ function _M0FP36kazuph5reviw4core14collect__hunks(lines, start, len) {
|
|
|
5034
4496
|
}
|
|
5035
4497
|
_M0MPC15array5Array4pushGsE(hunks, new _M0TP36kazuph5reviw4core8DiffHunk(header._0, header._1, header._2, header._3, header._4, hunk_lines));
|
|
5036
4498
|
} else {
|
|
5037
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
4499
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS987, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS987.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS988, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS988.length))) {
|
|
5038
4500
|
break;
|
|
5039
4501
|
} else {
|
|
5040
4502
|
i = i + 1 | 0;
|
|
@@ -5074,7 +4536,7 @@ function _M0FP36kazuph5reviw4core19extract__git__paths(line) {
|
|
|
5074
4536
|
}
|
|
5075
4537
|
}
|
|
5076
4538
|
function _M0FP36kazuph5reviw4core19strip__diff__prefix(path) {
|
|
5077
|
-
return _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(
|
|
4539
|
+
return _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS990, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS990.length)) || _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS991, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS991.length)) ? _M0FP36kazuph5reviw4core11safe__slice(path, 2) : path;
|
|
5078
4540
|
}
|
|
5079
4541
|
function _M0FP36kazuph5reviw4core11parse__diff(input) {
|
|
5080
4542
|
const files = [];
|
|
@@ -5084,7 +4546,7 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
|
|
|
5084
4546
|
while (true) {
|
|
5085
4547
|
if (i < len) {
|
|
5086
4548
|
const line = _M0MPC15array5Array2atGsE(lines, i);
|
|
5087
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
4549
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS993, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993.length))) {
|
|
5088
4550
|
const paths = _M0FP36kazuph5reviw4core19extract__git__paths(line);
|
|
5089
4551
|
let is_new = false;
|
|
5090
4552
|
let is_deleted = false;
|
|
@@ -5093,19 +4555,19 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
|
|
|
5093
4555
|
while (true) {
|
|
5094
4556
|
if (i < len) {
|
|
5095
4557
|
const l = _M0MPC15array5Array2atGsE(lines, i);
|
|
5096
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4558
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS995, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS995.length))) {
|
|
5097
4559
|
is_new = true;
|
|
5098
4560
|
i = i + 1 | 0;
|
|
5099
4561
|
} else {
|
|
5100
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4562
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS996, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS996.length))) {
|
|
5101
4563
|
is_deleted = true;
|
|
5102
4564
|
i = i + 1 | 0;
|
|
5103
4565
|
} else {
|
|
5104
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4566
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS997, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997.length))) {
|
|
5105
4567
|
is_binary = true;
|
|
5106
4568
|
i = i + 1 | 0;
|
|
5107
4569
|
} else {
|
|
5108
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4570
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS998, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998.length)) || (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS999, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS999.length)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS1000, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS1000.length)))) {
|
|
5109
4571
|
i = i + 1 | 0;
|
|
5110
4572
|
} else {
|
|
5111
4573
|
break;
|
|
@@ -5122,11 +4584,11 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
|
|
|
5122
4584
|
i = result._1;
|
|
5123
4585
|
_M0MPC15array5Array4pushGsE(files, new _M0TP36kazuph5reviw4core8DiffFile(paths._0, paths._1, is_new, is_deleted, is_binary, result._0));
|
|
5124
4586
|
} else {
|
|
5125
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
4587
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS1001, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS1001.length))) {
|
|
5126
4588
|
const old_path = _M0FP36kazuph5reviw4core19strip__diff__prefix(_M0FP36kazuph5reviw4core11safe__slice(line, 4));
|
|
5127
4589
|
let new_path = "";
|
|
5128
4590
|
i = i + 1 | 0;
|
|
5129
|
-
if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
4591
|
+
if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS1002, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS1002.length))) {
|
|
5130
4592
|
new_path = _M0FP36kazuph5reviw4core19strip__diff__prefix(_M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 4));
|
|
5131
4593
|
i = i + 1 | 0;
|
|
5132
4594
|
}
|
|
@@ -5247,13 +4709,13 @@ function _M0FP36kazuph5reviw4core21csv__data__from__flat(flat) {
|
|
|
5247
4709
|
}
|
|
5248
4710
|
}
|
|
5249
4711
|
function _M0FP36kazuph5reviw6server10os__tmpdir() {
|
|
5250
|
-
return tmpdir$
|
|
4712
|
+
return tmpdir$1945();
|
|
5251
4713
|
}
|
|
5252
4714
|
function _M0FP36kazuph5reviw6server10path__join(_tmp, _tmp$2) {
|
|
5253
|
-
return join$
|
|
4715
|
+
return join$1948(_tmp, _tmp$2);
|
|
5254
4716
|
}
|
|
5255
4717
|
function _M0FP36kazuph5reviw6server17write__file__sync(_tmp, _tmp$2) {
|
|
5256
|
-
return writeFileSync$
|
|
4718
|
+
return writeFileSync$1952(_tmp, _tmp$2);
|
|
5257
4719
|
}
|
|
5258
4720
|
function _M0FP36kazuph5reviw6server19write__file__secure(path, data) {
|
|
5259
4721
|
_M0FP36kazuph5reviw6server15try__call__void(() => {
|
|
@@ -5268,7 +4730,7 @@ function _M0FP36kazuph5reviw6server15init__live__log() {
|
|
|
5268
4730
|
_M0FP36kazuph5reviw6server14console__error(`[REVIW_LIVE] ${path}`);
|
|
5269
4731
|
}
|
|
5270
4732
|
function _M0FP36kazuph5reviw6server22fs__append__file__sync(_tmp, _tmp$2) {
|
|
5271
|
-
return appendFileSync$
|
|
4733
|
+
return appendFileSync$1955(_tmp, _tmp$2);
|
|
5272
4734
|
}
|
|
5273
4735
|
function _M0FP36kazuph5reviw6server17append__live__log(json_line) {
|
|
5274
4736
|
if (_M0FP36kazuph5reviw6server15live__log__path.val.length > 0) {
|
|
@@ -5281,10 +4743,10 @@ function _M0FP36kazuph5reviw6server17append__live__log(json_line) {
|
|
|
5281
4743
|
}
|
|
5282
4744
|
}
|
|
5283
4745
|
function _M0FP36kazuph5reviw6server12exists__sync(_tmp) {
|
|
5284
|
-
return existsSync$
|
|
4746
|
+
return existsSync$1957(_tmp);
|
|
5285
4747
|
}
|
|
5286
4748
|
function _M0FP36kazuph5reviw6server12unlink__sync(_tmp) {
|
|
5287
|
-
return unlinkSync$
|
|
4749
|
+
return unlinkSync$1959(_tmp);
|
|
5288
4750
|
}
|
|
5289
4751
|
function _M0FP36kazuph5reviw6server18cleanup__live__log() {
|
|
5290
4752
|
if (_M0FP36kazuph5reviw6server15live__log__path.val.length > 0 && _M0FP36kazuph5reviw6server12exists__sync(_M0FP36kazuph5reviw6server15live__log__path.val)) {
|
|
@@ -5297,7 +4759,7 @@ function _M0FP36kazuph5reviw6server18cleanup__live__log() {
|
|
|
5297
4759
|
}
|
|
5298
4760
|
}
|
|
5299
4761
|
function _M0FP36kazuph5reviw6server16read__file__sync(_tmp, _tmp$2) {
|
|
5300
|
-
return readFileSync$
|
|
4762
|
+
return readFileSync$1962(_tmp, _tmp$2);
|
|
5301
4763
|
}
|
|
5302
4764
|
function _M0FP36kazuph5reviw6server12load__ui__js() {
|
|
5303
4765
|
if (_M0FP36kazuph5reviw6server13ui__js__cache.val.length > 0) {
|
|
@@ -5315,7 +4777,7 @@ function _M0FP36kazuph5reviw6server12load__ui__js() {
|
|
|
5315
4777
|
}
|
|
5316
4778
|
}
|
|
5317
4779
|
function _M0FP36kazuph5reviw6server11os__homedir() {
|
|
5318
|
-
return homedir$
|
|
4780
|
+
return homedir$1964();
|
|
5319
4781
|
}
|
|
5320
4782
|
function _M0FP36kazuph5reviw6server9lock__dir() {
|
|
5321
4783
|
const override_dir = _M0FP36kazuph5reviw6server13get__env__var("REVIW_LOCK_DIR");
|
|
@@ -5326,7 +4788,7 @@ function _M0FP36kazuph5reviw6server10lock__path(port) {
|
|
|
5326
4788
|
return _M0FP36kazuph5reviw6server10path__join(dir, `${_M0IP016_24default__implPB4Show10to__stringGiE(port)}.lock`);
|
|
5327
4789
|
}
|
|
5328
4790
|
function _M0FP36kazuph5reviw6server11mkdir__sync(_tmp, _tmp$2) {
|
|
5329
|
-
return mkdirSync$
|
|
4791
|
+
return mkdirSync$1967(_tmp, _tmp$2);
|
|
5330
4792
|
}
|
|
5331
4793
|
function _M0FP36kazuph5reviw6server17ensure__lock__dir() {
|
|
5332
4794
|
const dir = _M0FP36kazuph5reviw6server9lock__dir();
|
|
@@ -5395,7 +4857,7 @@ function _M0FP36kazuph5reviw6server21find__available__port(base) {
|
|
|
5395
4857
|
return base;
|
|
5396
4858
|
}
|
|
5397
4859
|
function _M0FP36kazuph5reviw6server13path__dirname(_tmp) {
|
|
5398
|
-
return dirname$
|
|
4860
|
+
return dirname$1974(_tmp);
|
|
5399
4861
|
}
|
|
5400
4862
|
function _M0FP36kazuph5reviw6server21get__package__version() {
|
|
5401
4863
|
let dir = _M0FP36kazuph5reviw6server16get__script__dir();
|
|
@@ -5447,7 +4909,7 @@ function _M0FP36kazuph5reviw6server17read__stdin__sync() {
|
|
|
5447
4909
|
return _M0FP36kazuph5reviw6server16read__file__sync("/dev/stdin", "utf-8");
|
|
5448
4910
|
}
|
|
5449
4911
|
function _M0FP36kazuph5reviw6server13path__extname(_tmp) {
|
|
5450
|
-
return extname$
|
|
4912
|
+
return extname$1981(_tmp);
|
|
5451
4913
|
}
|
|
5452
4914
|
function _M0FP36kazuph5reviw6server12detect__mode(file_path) {
|
|
5453
4915
|
const ext = _M0FP36kazuph5reviw6server13path__extname(file_path);
|
|
@@ -5549,7 +5011,7 @@ function _M0FP36kazuph5reviw6server16detect__encoding(buf) {
|
|
|
5549
5011
|
return "utf-8";
|
|
5550
5012
|
}
|
|
5551
5013
|
function _M0FP36kazuph5reviw6server18read__file__buffer(_tmp) {
|
|
5552
|
-
return readFileSync$
|
|
5014
|
+
return readFileSync$1962(_tmp);
|
|
5553
5015
|
}
|
|
5554
5016
|
function _M0FP36kazuph5reviw6server12decode__file(path, override_enc) {
|
|
5555
5017
|
const buf = _M0FP36kazuph5reviw6server18read__file__buffer(path);
|
|
@@ -5591,13 +5053,13 @@ function _M0FP36kazuph5reviw6server22load__and__build__html(ctx) {
|
|
|
5591
5053
|
return _M0FP36kazuph5reviw4core16build__csv__html(data, ctx.filename, ctx.port);
|
|
5592
5054
|
}
|
|
5593
5055
|
function _M0FP36kazuph5reviw6server14path__basename(_tmp) {
|
|
5594
|
-
return basename$
|
|
5056
|
+
return basename$1991(_tmp);
|
|
5595
5057
|
}
|
|
5596
5058
|
function _M0FP36kazuph5reviw6server13path__resolve(_tmp) {
|
|
5597
|
-
return resolve$
|
|
5059
|
+
return resolve$1993(_tmp);
|
|
5598
5060
|
}
|
|
5599
5061
|
function _M0FP36kazuph5reviw6server25http__create__server__raw(_tmp) {
|
|
5600
|
-
return createServer$
|
|
5062
|
+
return createServer$1998(_tmp);
|
|
5601
5063
|
}
|
|
5602
5064
|
function _M0FP36kazuph5reviw6server14create__server(handler) {
|
|
5603
5065
|
return _M0FP36kazuph5reviw6server25http__create__server__raw(handler);
|
|
@@ -5736,7 +5198,7 @@ function _M0FP36kazuph5reviw6server22cancel__pending__close(ctx) {
|
|
|
5736
5198
|
}
|
|
5737
5199
|
}
|
|
5738
5200
|
function _M0FP36kazuph5reviw6server22write__file__sync__buf(_tmp, _tmp$2) {
|
|
5739
|
-
return writeFileSync$
|
|
5201
|
+
return writeFileSync$1952(_tmp, _tmp$2);
|
|
5740
5202
|
}
|
|
5741
5203
|
function _M0FP36kazuph5reviw6server16base64__to__file(data, dir, index) {
|
|
5742
5204
|
const ext = _M0FP36kazuph5reviw6server20extract__base64__ext(data);
|
|
@@ -5770,7 +5232,7 @@ function _M0FP36kazuph5reviw6server20ensure__history__dir() {
|
|
|
5770
5232
|
}
|
|
5771
5233
|
}
|
|
5772
5234
|
function _M0FP36kazuph5reviw6server20crypto__create__hash(_tmp) {
|
|
5773
|
-
return createHash$
|
|
5235
|
+
return createHash$2019(_tmp);
|
|
5774
5236
|
}
|
|
5775
5237
|
function _M0FP36kazuph5reviw6server14crypto__sha256(s) {
|
|
5776
5238
|
return _M0FP36kazuph5reviw6server27hash__update__digest__hex16(_M0FP36kazuph5reviw6server20crypto__create__hash("sha256"), s);
|
|
@@ -5824,7 +5286,7 @@ function _M0FP36kazuph5reviw6server13save__history(file_path, entry_json) {
|
|
|
5824
5286
|
_M0FP36kazuph5reviw6server11chmod__sync(hp, 384);
|
|
5825
5287
|
}
|
|
5826
5288
|
function _M0FP36kazuph5reviw6server13unwatch__file(_tmp) {
|
|
5827
|
-
return unwatchFile$
|
|
5289
|
+
return unwatchFile$2024(_tmp);
|
|
5828
5290
|
}
|
|
5829
5291
|
function _M0FP36kazuph5reviw6server14handle__submit(ctx, body) {
|
|
5830
5292
|
if (ctx.finished) {
|
|
@@ -5874,7 +5336,22 @@ function _M0FP36kazuph5reviw6server14handle__submit(ctx, body) {
|
|
|
5874
5336
|
const action = _M0MP36kazuph5reviw4core12ReviewAction12from__string(action_str);
|
|
5875
5337
|
const result = new _M0TP36kazuph5reviw4core12ReviewResult(ctx.filename, ctx.mode, comments, summary, answers, mermaid_errors, decision, action);
|
|
5876
5338
|
_M0MPC15array5Array4pushGsE(_M0FP36kazuph5reviw6server12all__results, result);
|
|
5877
|
-
|
|
5339
|
+
_L: {
|
|
5340
|
+
_L$2: {
|
|
5341
|
+
if (comments.length > 0) {
|
|
5342
|
+
break _L$2;
|
|
5343
|
+
} else {
|
|
5344
|
+
if (summary.length > 0) {
|
|
5345
|
+
break _L$2;
|
|
5346
|
+
} else {
|
|
5347
|
+
if (decision === undefined) {
|
|
5348
|
+
} else {
|
|
5349
|
+
break _L$2;
|
|
5350
|
+
}
|
|
5351
|
+
}
|
|
5352
|
+
}
|
|
5353
|
+
break _L;
|
|
5354
|
+
}
|
|
5878
5355
|
const entry_buf = _M0MPB13StringBuilder11new_2einner(0);
|
|
5879
5356
|
_M0IPB13StringBuilderPB6Logger13write__string(entry_buf, "{\"timestamp\":\"");
|
|
5880
5357
|
_M0IPB13StringBuilderPB6Logger13write__string(entry_buf, _M0FP36kazuph5reviw6server8iso__now());
|
|
@@ -6038,7 +5515,7 @@ function _M0FP36kazuph5reviw6server21handle__session__open(ctx, body) {
|
|
|
6038
5515
|
_M0MPB3Map3setGssE(ctx.active_tab_instances, tab_id, instance_id);
|
|
6039
5516
|
}
|
|
6040
5517
|
function _M0FP36kazuph5reviw6server17child__exec__sync(_tmp, _tmp$2) {
|
|
6041
|
-
return execSync$
|
|
5518
|
+
return execSync$2039(_tmp, _tmp$2);
|
|
6042
5519
|
}
|
|
6043
5520
|
function _M0FP36kazuph5reviw6server15command__exists(cmd) {
|
|
6044
5521
|
return _M0FP36kazuph5reviw6server15try__call__bool(() => {
|
|
@@ -6047,7 +5524,7 @@ function _M0FP36kazuph5reviw6server15command__exists(cmd) {
|
|
|
6047
5524
|
});
|
|
6048
5525
|
}
|
|
6049
5526
|
function _M0FP36kazuph5reviw6server17fs__mkdtemp__sync(_tmp) {
|
|
6050
|
-
return mkdtempSync$
|
|
5527
|
+
return mkdtempSync$2042(_tmp);
|
|
6051
5528
|
}
|
|
6052
5529
|
function _M0FP36kazuph5reviw6server15make__temp__dir() {
|
|
6053
5530
|
return _M0FP36kazuph5reviw6server17fs__mkdtemp__sync(`${_M0FP36kazuph5reviw6server10os__tmpdir()}/reviw-`);
|
|
@@ -6056,13 +5533,13 @@ function _M0FP36kazuph5reviw6server18read__file__base64(path) {
|
|
|
6056
5533
|
return _M0FP36kazuph5reviw6server17try__call__string(() => _M0FP36kazuph5reviw6server15buf__to__base64(_M0FP36kazuph5reviw6server18read__file__buffer(path)), "");
|
|
6057
5534
|
}
|
|
6058
5535
|
function _M0FP36kazuph5reviw6server22fs__readdir__sync__raw(_tmp) {
|
|
6059
|
-
return readdirSync$
|
|
5536
|
+
return readdirSync$2052(_tmp);
|
|
6060
5537
|
}
|
|
6061
5538
|
function _M0FP36kazuph5reviw6server13readdir__sync(path) {
|
|
6062
5539
|
return _M0FP36kazuph5reviw6server24try__call__array__string(() => _M0FP36kazuph5reviw6server22fs__readdir__sync__raw(path));
|
|
6063
5540
|
}
|
|
6064
5541
|
function _M0FP36kazuph5reviw6server12fs__rm__sync(_tmp, _tmp$2) {
|
|
6065
|
-
return rmSync$
|
|
5542
|
+
return rmSync$2061(_tmp, _tmp$2);
|
|
6066
5543
|
}
|
|
6067
5544
|
function _M0FP36kazuph5reviw6server18rm__dir__recursive(path) {
|
|
6068
5545
|
_M0FP36kazuph5reviw6server15try__call__void(() => {
|
|
@@ -6070,13 +5547,13 @@ function _M0FP36kazuph5reviw6server18rm__dir__recursive(path) {
|
|
|
6070
5547
|
});
|
|
6071
5548
|
}
|
|
6072
5549
|
function _M0FP36kazuph5reviw6server12child__spawn(_tmp, _tmp$2, _tmp$3) {
|
|
6073
|
-
return spawn$
|
|
5550
|
+
return spawn$2067(_tmp, _tmp$2, _tmp$3);
|
|
6074
5551
|
}
|
|
6075
5552
|
function _M0FP36kazuph5reviw6server12spawn__async(cmd, args_json) {
|
|
6076
5553
|
return _M0FP36kazuph5reviw6server12child__spawn(cmd, _M0FP36kazuph5reviw6server15js__parse__json(args_json), _M0FP36kazuph5reviw6server21js__spawn__opts__pipe());
|
|
6077
5554
|
}
|
|
6078
5555
|
function _M0FP36kazuph5reviw6server18child__spawn__sync(_tmp, _tmp$2, _tmp$3) {
|
|
6079
|
-
return spawnSync$
|
|
5556
|
+
return spawnSync$2072(_tmp, _tmp$2, _tmp$3);
|
|
6080
5557
|
}
|
|
6081
5558
|
function _M0FP36kazuph5reviw6server19spawn__sync__stdout(cmd, args_json) {
|
|
6082
5559
|
return _M0FP36kazuph5reviw6server17try__call__string(() => _M0FP36kazuph5reviw6server15js__obj__stdout(_M0FP36kazuph5reviw6server18child__spawn__sync(cmd, _M0FP36kazuph5reviw6server15js__parse__json(args_json), _M0FP36kazuph5reviw6server27js__spawn__opts__utf8__pipe())), "");
|
|
@@ -6084,7 +5561,7 @@ function _M0FP36kazuph5reviw6server19spawn__sync__stdout(cmd, args_json) {
|
|
|
6084
5561
|
function _M0FP36kazuph5reviw6server23handle__video__timeline(ctx, url, res) {
|
|
6085
5562
|
const video_path = _M0FP36kazuph5reviw6server19parse__query__param(url, "path");
|
|
6086
5563
|
const scene_str = _M0FP36kazuph5reviw6server19parse__query__param(url, "scene");
|
|
6087
|
-
if (_M0MPC16string6String8contains(video_path, new _M0TPC16string10StringView(
|
|
5564
|
+
if (_M0MPC16string6String8contains(video_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530.length))) {
|
|
6088
5565
|
_M0FP36kazuph5reviw6server16res__write__head(res, 400, "text/plain");
|
|
6089
5566
|
_M0FP36kazuph5reviw6server8res__end(res, "Invalid path");
|
|
6090
5567
|
return undefined;
|
|
@@ -6092,7 +5569,7 @@ function _M0FP36kazuph5reviw6server23handle__video__timeline(ctx, url, res) {
|
|
|
6092
5569
|
const base_dir = _M0FP36kazuph5reviw6server13path__dirname(ctx.file_path);
|
|
6093
5570
|
const resolved_video = _M0FP36kazuph5reviw6server13path__resolve(_M0FP36kazuph5reviw6server10path__join(base_dir, video_path));
|
|
6094
5571
|
const resolved_base = _M0FP36kazuph5reviw6server13path__resolve(base_dir);
|
|
6095
|
-
if (!
|
|
5572
|
+
if (!_M0FP36kazuph5reviw4core15is__path__under(resolved_base, resolved_video)) {
|
|
6096
5573
|
_M0FP36kazuph5reviw6server16res__write__head(res, 403, "text/plain");
|
|
6097
5574
|
_M0FP36kazuph5reviw6server8res__end(res, "Forbidden");
|
|
6098
5575
|
return undefined;
|
|
@@ -6129,7 +5606,7 @@ function _M0FP36kazuph5reviw6server23handle__video__timeline(ctx, url, res) {
|
|
|
6129
5606
|
const _ = _tmp;
|
|
6130
5607
|
if (_ < _bind) {
|
|
6131
5608
|
const file = files[_];
|
|
6132
|
-
if (_M0MPC16string6String11has__prefix(file, new _M0TPC16string10StringView(
|
|
5609
|
+
if (_M0MPC16string6String11has__prefix(file, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS534, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS534.length)) && _M0MPC16string6String11has__suffix(file, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS535, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS535.length))) {
|
|
6133
5610
|
_M0MPC15array5Array4pushGsE(scene_files, file);
|
|
6134
5611
|
}
|
|
6135
5612
|
_tmp = _ + 1 | 0;
|
|
@@ -6290,13 +5767,13 @@ function _M0FP36kazuph5reviw6server9index__of(s, target) {
|
|
|
6290
5767
|
return -1;
|
|
6291
5768
|
}
|
|
6292
5769
|
function _M0FP36kazuph5reviw6server14fs__stat__sync(_tmp) {
|
|
6293
|
-
return statSync$
|
|
5770
|
+
return statSync$2090(_tmp);
|
|
6294
5771
|
}
|
|
6295
5772
|
function _M0FP36kazuph5reviw6server14is__file__sync(path) {
|
|
6296
5773
|
return _M0FP36kazuph5reviw6server18js__stat__is__file(_M0FP36kazuph5reviw6server14fs__stat__sync(path));
|
|
6297
5774
|
}
|
|
6298
5775
|
function _M0FP36kazuph5reviw6server30fs__create__read__stream__opts(_tmp, _tmp$2) {
|
|
6299
|
-
return createReadStream$
|
|
5776
|
+
return createReadStream$2094(_tmp, _tmp$2);
|
|
6300
5777
|
}
|
|
6301
5778
|
function _M0FP36kazuph5reviw6server17pipe__file__range(file_path, res, content_type, range_header) {
|
|
6302
5779
|
const stat = _M0FP36kazuph5reviw6server14fs__stat__sync(file_path);
|
|
@@ -6311,7 +5788,7 @@ function _M0FP36kazuph5reviw6server17pipe__file__range(file_path, res, content_t
|
|
|
6311
5788
|
_M0FP36kazuph5reviw6server8js__pipe(stream, res);
|
|
6312
5789
|
}
|
|
6313
5790
|
function _M0FP36kazuph5reviw6server24fs__create__read__stream(_tmp) {
|
|
6314
|
-
return createReadStream$
|
|
5791
|
+
return createReadStream$2094(_tmp);
|
|
6315
5792
|
}
|
|
6316
5793
|
function _M0FP36kazuph5reviw6server24pipe__file__to__response(file_path, res, content_type) {
|
|
6317
5794
|
const stat = _M0FP36kazuph5reviw6server14fs__stat__sync(file_path);
|
|
@@ -6324,8 +5801,8 @@ function _M0FP36kazuph5reviw6server24pipe__file__to__response(file_path, res, co
|
|
|
6324
5801
|
function _M0FP36kazuph5reviw6server19serve__static__file(ctx, url, req, res) {
|
|
6325
5802
|
const qmark = _M0FP36kazuph5reviw6server9index__of(url, 63);
|
|
6326
5803
|
const url_path = qmark >= 0 ? _M0FP36kazuph5reviw4core18safe__slice__range(url, 0, qmark) : url;
|
|
6327
|
-
const relative_path = _M0MPC16string6String11has__prefix(url_path, new _M0TPC16string10StringView(
|
|
6328
|
-
if (_M0MPC16string6String8contains(relative_path, new _M0TPC16string10StringView(
|
|
5804
|
+
const relative_path = _M0MPC16string6String11has__prefix(url_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS570, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS570.length)) ? _M0FP36kazuph5reviw4core11safe__slice(url_path, 1) : url_path;
|
|
5805
|
+
if (_M0MPC16string6String8contains(relative_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS568, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS568.length))) {
|
|
6329
5806
|
_M0FP36kazuph5reviw6server16res__write__head(res, 403, "text/plain");
|
|
6330
5807
|
_M0FP36kazuph5reviw6server8res__end(res, "Forbidden");
|
|
6331
5808
|
return undefined;
|
|
@@ -6334,7 +5811,7 @@ function _M0FP36kazuph5reviw6server19serve__static__file(ctx, url, req, res) {
|
|
|
6334
5811
|
const static_path = _M0FP36kazuph5reviw6server10path__join(base_dir, relative_path);
|
|
6335
5812
|
const resolved_static = _M0FP36kazuph5reviw6server13path__resolve(static_path);
|
|
6336
5813
|
const resolved_base = _M0FP36kazuph5reviw6server13path__resolve(base_dir);
|
|
6337
|
-
if (!
|
|
5814
|
+
if (!_M0FP36kazuph5reviw4core15is__path__under(resolved_base, resolved_static)) {
|
|
6338
5815
|
_M0FP36kazuph5reviw6server16res__write__head(res, 403, "text/plain");
|
|
6339
5816
|
_M0FP36kazuph5reviw6server8res__end(res, "Forbidden");
|
|
6340
5817
|
return undefined;
|
|
@@ -6342,7 +5819,7 @@ function _M0FP36kazuph5reviw6server19serve__static__file(ctx, url, req, res) {
|
|
|
6342
5819
|
if (_M0FP36kazuph5reviw6server12exists__sync(resolved_static) && _M0FP36kazuph5reviw6server14is__file__sync(resolved_static)) {
|
|
6343
5820
|
const ext = _M0MPC16string6String9to__lower(_M0FP36kazuph5reviw6server13path__extname(resolved_static));
|
|
6344
5821
|
const content_type = _M0FP36kazuph5reviw6server15get__mime__type(ext);
|
|
6345
|
-
const is_video = _M0MPC16string6String11has__prefix(content_type, new _M0TPC16string10StringView(
|
|
5822
|
+
const is_video = _M0MPC16string6String11has__prefix(content_type, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS569, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS569.length));
|
|
6346
5823
|
const range = _M0FP36kazuph5reviw6server18req__range__header(req);
|
|
6347
5824
|
if (is_video && range.length > 0) {
|
|
6348
5825
|
_M0FP36kazuph5reviw6server17pipe__file__range(resolved_static, res, content_type, range);
|
|
@@ -6360,8 +5837,8 @@ function _M0FP36kazuph5reviw6server19serve__static__file(ctx, url, req, res) {
|
|
|
6360
5837
|
function _M0FP36kazuph5reviw6server25serve__static__file__head(ctx, url, res) {
|
|
6361
5838
|
const qmark = _M0FP36kazuph5reviw6server9index__of(url, 63);
|
|
6362
5839
|
const url_path = qmark >= 0 ? _M0FP36kazuph5reviw4core18safe__slice__range(url, 0, qmark) : url;
|
|
6363
|
-
const relative_path = _M0MPC16string6String11has__prefix(url_path, new _M0TPC16string10StringView(
|
|
6364
|
-
if (_M0MPC16string6String8contains(relative_path, new _M0TPC16string10StringView(
|
|
5840
|
+
const relative_path = _M0MPC16string6String11has__prefix(url_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS572, 0, _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS572.length)) ? _M0FP36kazuph5reviw4core11safe__slice(url_path, 1) : url_path;
|
|
5841
|
+
if (_M0MPC16string6String8contains(relative_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS571, 0, _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS571.length))) {
|
|
6365
5842
|
_M0FP36kazuph5reviw6server16res__write__head(res, 403, "text/plain");
|
|
6366
5843
|
_M0FP36kazuph5reviw6server8res__end(res, "");
|
|
6367
5844
|
return undefined;
|
|
@@ -6370,7 +5847,7 @@ function _M0FP36kazuph5reviw6server25serve__static__file__head(ctx, url, res) {
|
|
|
6370
5847
|
const static_path = _M0FP36kazuph5reviw6server10path__join(base_dir, relative_path);
|
|
6371
5848
|
const resolved_static = _M0FP36kazuph5reviw6server13path__resolve(static_path);
|
|
6372
5849
|
const resolved_base = _M0FP36kazuph5reviw6server13path__resolve(base_dir);
|
|
6373
|
-
if (!
|
|
5850
|
+
if (!_M0FP36kazuph5reviw4core15is__path__under(resolved_base, resolved_static)) {
|
|
6374
5851
|
_M0FP36kazuph5reviw6server16res__write__head(res, 403, "text/plain");
|
|
6375
5852
|
_M0FP36kazuph5reviw6server8res__end(res, "");
|
|
6376
5853
|
return undefined;
|
|
@@ -6423,7 +5900,7 @@ function _M0FP36kazuph5reviw6server15handle__request(ctx, req, res) {
|
|
|
6423
5900
|
_M0FP36kazuph5reviw6server8res__end(res, history_json);
|
|
6424
5901
|
return;
|
|
6425
5902
|
} else {
|
|
6426
|
-
if (http_method === "GET" && _M0MPC16string6String11has__prefix(url, new _M0TPC16string10StringView(
|
|
5903
|
+
if (http_method === "GET" && _M0MPC16string6String11has__prefix(url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server15handle__requestN7_2abindS573, 0, _M0FP36kazuph5reviw6server15handle__requestN7_2abindS573.length))) {
|
|
6427
5904
|
_M0FP36kazuph5reviw6server23handle__video__timeline(ctx, url, res);
|
|
6428
5905
|
return;
|
|
6429
5906
|
} else {
|
|
@@ -6521,13 +5998,13 @@ function _M0FP36kazuph5reviw6server28try__activate__existing__tab(url) {
|
|
|
6521
5998
|
}
|
|
6522
5999
|
const chrome_script = `set found to false\ntell application \"System Events\"\n if exists process \"Google Chrome\" then\n tell application \"Google Chrome\"\n set targetUrl to \"${url}\"\n repeat with w in windows\n set tabIndex to 1\n repeat with t in tabs of w\n if URL of t starts with targetUrl then\n set active tab index of w to tabIndex\n set index of w to 1\n activate\n set found to true\n exit repeat\n end if\n set tabIndex to tabIndex + 1\n end repeat\n if found then exit repeat\n end repeat\n end tell\n end if\nend tell\nfound`;
|
|
6523
6000
|
const chrome_result = _M0FP36kazuph5reviw6server19spawn__sync__result("osascript", `[\"-e\", ${_M0FP36kazuph5reviw6server19json__encode__value(chrome_script)}]`);
|
|
6524
|
-
if (_M0MPC16string6String8contains(chrome_result, new _M0TPC16string10StringView(
|
|
6001
|
+
if (_M0MPC16string6String8contains(chrome_result, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS574, 0, _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS574.length))) {
|
|
6525
6002
|
_M0FP36kazuph5reviw6server12console__log(`Activated existing Chrome tab: ${url}`);
|
|
6526
6003
|
return true;
|
|
6527
6004
|
}
|
|
6528
6005
|
const safari_script = `set found to false\ntell application \"System Events\"\n if exists process \"Safari\" then\n tell application \"Safari\"\n set targetUrl to \"${url}\"\n repeat with w in windows\n repeat with t in tabs of w\n if URL of t starts with targetUrl then\n set current tab of w to t\n set index of w to 1\n activate\n set found to true\n exit repeat\n end if\n end repeat\n if found then exit repeat\n end repeat\n end tell\n end if\nend tell\nfound`;
|
|
6529
6006
|
const safari_result = _M0FP36kazuph5reviw6server19spawn__sync__result("osascript", `[\"-e\", ${_M0FP36kazuph5reviw6server19json__encode__value(safari_script)}]`);
|
|
6530
|
-
if (_M0MPC16string6String8contains(safari_result, new _M0TPC16string10StringView(
|
|
6007
|
+
if (_M0MPC16string6String8contains(safari_result, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS575, 0, _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS575.length))) {
|
|
6531
6008
|
_M0FP36kazuph5reviw6server12console__log(`Activated existing Safari tab: ${url}`);
|
|
6532
6009
|
return true;
|
|
6533
6010
|
}
|
|
@@ -6605,7 +6082,7 @@ function _M0FP36kazuph5reviw6server19start__http__server(ctx, no_open) {
|
|
|
6605
6082
|
_M0FP36kazuph5reviw6server11try__listen(ctx, ctx.port, 0, no_open);
|
|
6606
6083
|
}
|
|
6607
6084
|
function _M0FP36kazuph5reviw6server11watch__file(_tmp, _tmp$2) {
|
|
6608
|
-
return watchFile$
|
|
6085
|
+
return watchFile$2128(_tmp, _tmp$2);
|
|
6609
6086
|
}
|
|
6610
6087
|
function _M0FP36kazuph5reviw6server19start__file__server(file_path, port, no_open) {
|
|
6611
6088
|
const resolved = _M0FP36kazuph5reviw6server13path__resolve(file_path);
|
|
@@ -6703,7 +6180,7 @@ function _M0FP36kazuph5reviw6server20start__stdin__server(content, port, no_open
|
|
|
6703
6180
|
_M0FP36kazuph5reviw6server18encoding__override.val = _M0MPC15array5Array2atGsE(args, i);
|
|
6704
6181
|
}
|
|
6705
6182
|
} else {
|
|
6706
|
-
if (!_M0MPC16string6String11has__prefix(arg, new _M0TPC16string10StringView(
|
|
6183
|
+
if (!_M0MPC16string6String11has__prefix(arg, new _M0TPC16string10StringView(_M0FP017____moonbit__mainN7_2abindS594, 0, _M0FP017____moonbit__mainN7_2abindS594.length))) {
|
|
6707
6184
|
_M0MPC15array5Array4pushGsE(files, arg);
|
|
6708
6185
|
}
|
|
6709
6186
|
}
|