reviw 1.4.1 → 1.5.0
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 +319 -858
- package/dist/ui/ui.js +230 -848
- package/package.json +1 -1
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$1978, join as join$1952, resolve as resolve$1997, extname as extname$1985, basename as basename$1995 } from "node:path";
|
|
3
|
+
import { spawnSync as spawnSync$2074, execSync as execSync$2041, spawn as spawn$2069 } from "node:child_process";
|
|
4
|
+
import { createHash as createHash$2023 } from "node:crypto";
|
|
5
|
+
import { createServer as createServer$2002 } from "node:http";
|
|
6
|
+
import { statSync as statSync$2092, unwatchFile as unwatchFile$2028, readdirSync as readdirSync$2054, existsSync as existsSync$1961, rmSync as rmSync$2063, mkdtempSync as mkdtempSync$2044, appendFileSync as appendFileSync$1959, createReadStream as createReadStream$2096, writeFileSync as writeFileSync$1956, unlinkSync as unlinkSync$1963, readFileSync as readFileSync$1966, watchFile as watchFile$2130, mkdirSync as mkdirSync$1971 } from "node:fs";
|
|
7
|
+
import { tmpdir as tmpdir$1949, homedir as homedir$1968 } 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,127 +310,127 @@ 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
|
|
313
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558 = ":";
|
|
314
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559 = "#";
|
|
315
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560 = "'";
|
|
316
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561 = "\"";
|
|
317
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562 = "\n";
|
|
318
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563 = "[";
|
|
319
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564 = "]";
|
|
320
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565 = "{";
|
|
321
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566 = "}";
|
|
322
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567 = ",";
|
|
323
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568 = "&";
|
|
324
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569 = "*";
|
|
325
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570 = "!";
|
|
326
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571 = "|";
|
|
327
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572 = ">";
|
|
328
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573 = "%";
|
|
329
|
+
const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS574 = "@";
|
|
330
|
+
const _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS649 = "\n";
|
|
331
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS672 = "- ";
|
|
332
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673 = " -";
|
|
333
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674 = " ";
|
|
334
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675 = " ";
|
|
335
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677 = "- ";
|
|
336
|
+
const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678 = " ";
|
|
337
|
+
const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS682 = "- ";
|
|
338
|
+
const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683 = " ";
|
|
339
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS702 = "<details";
|
|
340
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS703 = "<div";
|
|
341
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS704 = "<section";
|
|
342
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS705 = "<article";
|
|
343
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS706 = "<aside";
|
|
344
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS707 = "<nav";
|
|
345
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS708 = "<header";
|
|
346
|
+
const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS709 = "<footer";
|
|
347
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS711 = "#";
|
|
348
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS712 = "```";
|
|
349
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS713 = ">";
|
|
350
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS714 = "- ";
|
|
351
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS715 = "* ";
|
|
352
|
+
const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS716 = "<";
|
|
353
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717 = "graph ";
|
|
354
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718 = "flowchart ";
|
|
355
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719 = "sequenceDiagram";
|
|
356
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720 = "classDiagram";
|
|
357
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS721 = "stateDiagram";
|
|
358
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS722 = "erDiagram";
|
|
359
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS723 = "journey";
|
|
360
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS724 = "gantt";
|
|
361
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS725 = "pie";
|
|
362
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS726 = "gitGraph";
|
|
363
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS727 = "mindmap";
|
|
364
|
+
const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS728 = "timeline";
|
|
365
|
+
const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS729 = "|";
|
|
366
|
+
const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730 = "-";
|
|
367
|
+
const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752 = "|";
|
|
372
368
|
const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753 = "|";
|
|
373
369
|
const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754 = "|";
|
|
374
|
-
const
|
|
375
|
-
const
|
|
376
|
-
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS756 = ".
|
|
377
|
-
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS757 = ".
|
|
378
|
-
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS758 = ".
|
|
379
|
-
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759 = ".
|
|
380
|
-
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760 = ".
|
|
381
|
-
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761 = ".
|
|
382
|
-
const
|
|
383
|
-
const
|
|
384
|
-
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS781 = "
|
|
385
|
-
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS782 = "
|
|
386
|
-
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS783 = "
|
|
387
|
-
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784 = "
|
|
388
|
-
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785 = "
|
|
389
|
-
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786 = "
|
|
390
|
-
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787 = "
|
|
391
|
-
const
|
|
392
|
-
const
|
|
393
|
-
const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790 = "
|
|
394
|
-
const
|
|
395
|
-
const
|
|
396
|
-
const
|
|
397
|
-
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811 = "
|
|
398
|
-
const
|
|
399
|
-
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814 = "
|
|
400
|
-
const
|
|
401
|
-
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819 = "
|
|
402
|
-
const
|
|
403
|
-
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822 = "
|
|
404
|
-
const
|
|
405
|
-
const
|
|
406
|
-
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830 = "
|
|
407
|
-
const
|
|
408
|
-
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836 = "
|
|
409
|
-
const
|
|
410
|
-
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833 = "[
|
|
411
|
-
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834 = "[
|
|
412
|
-
const
|
|
413
|
-
const
|
|
414
|
-
const
|
|
415
|
-
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS978 = "
|
|
416
|
-
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979 = "
|
|
417
|
-
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980 = "
|
|
418
|
-
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981 = "
|
|
419
|
-
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982 = "
|
|
420
|
-
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983 = " ";
|
|
421
|
-
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984 = "
|
|
422
|
-
const
|
|
423
|
-
const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987 = "
|
|
424
|
-
const
|
|
425
|
-
const
|
|
426
|
-
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS992 = "
|
|
427
|
-
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993 = "
|
|
428
|
-
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS994 = "
|
|
429
|
-
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS995 = "
|
|
430
|
-
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS996 = "
|
|
431
|
-
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997 = "
|
|
432
|
-
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998 = "
|
|
433
|
-
const
|
|
434
|
-
const
|
|
435
|
-
const
|
|
436
|
-
const
|
|
437
|
-
const
|
|
438
|
-
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f665 = 1;
|
|
370
|
+
const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS751 = "|";
|
|
371
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS755 = ".mp4";
|
|
372
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS756 = ".webm";
|
|
373
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS757 = ".mov";
|
|
374
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS758 = ".avi";
|
|
375
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759 = ".mkv";
|
|
376
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760 = ".m4v";
|
|
377
|
+
const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761 = ".ogv";
|
|
378
|
+
const _M0FP36kazuph5reviw4core14render__inlineN7_2abindS767 = "javascript:";
|
|
379
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS780 = "expression(";
|
|
380
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS781 = "url(";
|
|
381
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS782 = "-moz-binding";
|
|
382
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS783 = "behavior:";
|
|
383
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784 = "behaviour:";
|
|
384
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785 = "javascript:";
|
|
385
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786 = "vbscript:";
|
|
386
|
+
const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787 = "@import";
|
|
387
|
+
const _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS788 = "on";
|
|
388
|
+
const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS789 = "javascript:";
|
|
389
|
+
const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790 = "data:text/html";
|
|
390
|
+
const _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS806 = ">";
|
|
391
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808 = "<";
|
|
392
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810 = "<summary>";
|
|
393
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811 = "</details>";
|
|
394
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813 = "</details>";
|
|
395
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814 = "<details";
|
|
396
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818 = "#";
|
|
397
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819 = "```";
|
|
398
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821 = "```";
|
|
399
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822 = ">";
|
|
400
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824 = ">";
|
|
401
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS829 = "- ";
|
|
402
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830 = "* ";
|
|
403
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835 = "- ";
|
|
404
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836 = "* ";
|
|
405
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS832 = "[ ] ";
|
|
406
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833 = "[x] ";
|
|
407
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834 = "[X] ";
|
|
408
|
+
const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS847 = "|";
|
|
409
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS975 = "@@ ";
|
|
410
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS977 = "@@ ";
|
|
411
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS978 = "diff ";
|
|
412
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979 = "--- ";
|
|
413
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980 = "+";
|
|
414
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981 = "-";
|
|
415
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982 = " ";
|
|
416
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983 = "diff ";
|
|
417
|
+
const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984 = "--- ";
|
|
418
|
+
const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS986 = "a/";
|
|
419
|
+
const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987 = "b/";
|
|
420
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS989 = "diff --git ";
|
|
421
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS991 = "new file mode";
|
|
422
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS992 = "deleted file mode";
|
|
423
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993 = "Binary files";
|
|
424
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS994 = "index ";
|
|
425
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS995 = "--- ";
|
|
426
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS996 = "+++ ";
|
|
427
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997 = "--- ";
|
|
428
|
+
const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998 = "+++ ";
|
|
429
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f572 = 0;
|
|
430
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f573 = 1;
|
|
431
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f574 = 2;
|
|
432
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f576 = 0;
|
|
433
|
+
const _M0FP36kazuph5reviw4core27from__string_2econstr_2f577 = 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";
|
|
@@ -454,8 +449,8 @@ const _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS571 = "t
|
|
|
454
449
|
const _M0FP017____moonbit__mainN7_2abindS590 = "-";
|
|
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) {
|
|
@@ -1894,91 +1415,6 @@ function _M0IPC16string6StringPB4Hash13hash__combine(self, hasher) {
|
|
|
1894
1415
|
function _M0MPC16double6Double10to__string(self) {
|
|
1895
1416
|
return _M0FPB15ryu__to__string(self);
|
|
1896
1417
|
}
|
|
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
1418
|
function _M0MPC15array5Array28unsafe__truncate__to__lengthGsE(self, new_len) {
|
|
1983
1419
|
_M0MPB7JSArray11set__length(self, new_len);
|
|
1984
1420
|
}
|
|
@@ -2000,7 +1436,7 @@ function _M0MPC15array5Array6removeGRP36kazuph5reviw6server7JsValueE(self, index
|
|
|
2000
1436
|
_M0MPB7JSArray6splice(self, index, 1);
|
|
2001
1437
|
return value;
|
|
2002
1438
|
} 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)}`, "
|
|
1439
|
+
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
1440
|
}
|
|
2005
1441
|
}
|
|
2006
1442
|
function _M0MPC15array5Array6removeGsE(self, index) {
|
|
@@ -2010,12 +1446,48 @@ function _M0MPC15array5Array6removeGsE(self, index) {
|
|
|
2010
1446
|
_M0MPB7JSArray6splice(self, index, 1);
|
|
2011
1447
|
return value;
|
|
2012
1448
|
} 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)}`, "
|
|
1449
|
+
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
1450
|
}
|
|
2015
1451
|
}
|
|
2016
1452
|
function _M0MPC15array5Array4copyGsE(self) {
|
|
2017
1453
|
return _M0MPB7JSArray4copy(self);
|
|
2018
1454
|
}
|
|
1455
|
+
function _M0MPC15array5Array2atGsE(self, index) {
|
|
1456
|
+
const len = self.length;
|
|
1457
|
+
if (index >= 0 && index < len) {
|
|
1458
|
+
$bound_check(self, index);
|
|
1459
|
+
return self[index];
|
|
1460
|
+
} else {
|
|
1461
|
+
return $panic();
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
function _M0MPC15array5Array2atGcE(self, index) {
|
|
1465
|
+
const len = self.length;
|
|
1466
|
+
if (index >= 0 && index < len) {
|
|
1467
|
+
$bound_check(self, index);
|
|
1468
|
+
return self[index];
|
|
1469
|
+
} else {
|
|
1470
|
+
return $panic();
|
|
1471
|
+
}
|
|
1472
|
+
}
|
|
1473
|
+
function _M0MPC15array5Array2atGRPB5ArrayGsEE(self, index) {
|
|
1474
|
+
const len = self.length;
|
|
1475
|
+
if (index >= 0 && index < len) {
|
|
1476
|
+
$bound_check(self, index);
|
|
1477
|
+
return self[index];
|
|
1478
|
+
} else {
|
|
1479
|
+
return $panic();
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1482
|
+
function _M0MPC15array5Array2atGdE(self, index) {
|
|
1483
|
+
const len = self.length;
|
|
1484
|
+
if (index >= 0 && index < len) {
|
|
1485
|
+
$bound_check(self, index);
|
|
1486
|
+
return self[index];
|
|
1487
|
+
} else {
|
|
1488
|
+
return $panic();
|
|
1489
|
+
}
|
|
1490
|
+
}
|
|
2019
1491
|
function _M0MPC15array5Array5clearGsE(self) {
|
|
2020
1492
|
_M0MPC15array5Array28unsafe__truncate__to__lengthGsE(self, 0);
|
|
2021
1493
|
}
|
|
@@ -2025,38 +1497,38 @@ function _M0MPC13ref3Ref3newGsE(x) {
|
|
|
2025
1497
|
function _M0MPC13ref3Ref3newGiE(x) {
|
|
2026
1498
|
return new _M0TPC13ref3RefGiE(x);
|
|
2027
1499
|
}
|
|
2028
|
-
function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(
|
|
2029
|
-
switch (
|
|
1500
|
+
function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_440, _x_441) {
|
|
1501
|
+
switch (_x_440) {
|
|
2030
1502
|
case 0: {
|
|
2031
|
-
if (
|
|
1503
|
+
if (_x_441 === 0) {
|
|
2032
1504
|
return true;
|
|
2033
1505
|
} else {
|
|
2034
1506
|
return false;
|
|
2035
1507
|
}
|
|
2036
1508
|
}
|
|
2037
1509
|
case 1: {
|
|
2038
|
-
if (
|
|
1510
|
+
if (_x_441 === 1) {
|
|
2039
1511
|
return true;
|
|
2040
1512
|
} else {
|
|
2041
1513
|
return false;
|
|
2042
1514
|
}
|
|
2043
1515
|
}
|
|
2044
1516
|
case 2: {
|
|
2045
|
-
if (
|
|
1517
|
+
if (_x_441 === 2) {
|
|
2046
1518
|
return true;
|
|
2047
1519
|
} else {
|
|
2048
1520
|
return false;
|
|
2049
1521
|
}
|
|
2050
1522
|
}
|
|
2051
1523
|
case 3: {
|
|
2052
|
-
if (
|
|
1524
|
+
if (_x_441 === 3) {
|
|
2053
1525
|
return true;
|
|
2054
1526
|
} else {
|
|
2055
1527
|
return false;
|
|
2056
1528
|
}
|
|
2057
1529
|
}
|
|
2058
1530
|
default: {
|
|
2059
|
-
if (
|
|
1531
|
+
if (_x_441 === 4) {
|
|
2060
1532
|
return true;
|
|
2061
1533
|
} else {
|
|
2062
1534
|
return false;
|
|
@@ -2065,7 +1537,7 @@ function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_441, _x_442) {
|
|
|
2065
1537
|
}
|
|
2066
1538
|
}
|
|
2067
1539
|
function _M0FP36kazuph5reviw4core20yaml__escape__string(s) {
|
|
2068
|
-
const needs_quote = _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559.length)) || (_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)) ||
|
|
1540
|
+
const needs_quote = _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559.length)) || (_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)))))))))))))))));
|
|
2069
1541
|
if (needs_quote) {
|
|
2070
1542
|
const buf = _M0MPB13StringBuilder11new_2einner(0);
|
|
2071
1543
|
_M0IPB13StringBuilderPB6Logger11write__char(buf, 39);
|
|
@@ -2382,7 +1854,7 @@ function _M0FP36kazuph5reviw4core16parse__int__safe(s) {
|
|
|
2382
1854
|
}
|
|
2383
1855
|
function _M0FP36kazuph5reviw4core16split__to__lines(input) {
|
|
2384
1856
|
const result = [];
|
|
2385
|
-
const _it = _M0MPC16string6String5split(input, new _M0TPC16string10StringView(
|
|
1857
|
+
const _it = _M0MPC16string6String5split(input, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16split__to__linesN7_2abindS649, 0, _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS649.length));
|
|
2386
1858
|
while (true) {
|
|
2387
1859
|
const _bind = _M0MPB4Iter4nextGRPC16string10StringViewE(_it);
|
|
2388
1860
|
if (_bind === undefined) {
|
|
@@ -2436,13 +1908,13 @@ function _M0MP36kazuph5reviw4core8FileMode15from__extension(ext) {
|
|
|
2436
1908
|
function _M0MP36kazuph5reviw4core12ReviewAction12from__string(s) {
|
|
2437
1909
|
switch (s) {
|
|
2438
1910
|
case "handoff": {
|
|
2439
|
-
return
|
|
1911
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f572;
|
|
2440
1912
|
}
|
|
2441
1913
|
case "final_approve": {
|
|
2442
|
-
return
|
|
1914
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f573;
|
|
2443
1915
|
}
|
|
2444
1916
|
case "final_request_changes": {
|
|
2445
|
-
return
|
|
1917
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f574;
|
|
2446
1918
|
}
|
|
2447
1919
|
default: {
|
|
2448
1920
|
return undefined;
|
|
@@ -2452,10 +1924,10 @@ function _M0MP36kazuph5reviw4core12ReviewAction12from__string(s) {
|
|
|
2452
1924
|
function _M0MP36kazuph5reviw4core14ReviewDecision12from__string(s) {
|
|
2453
1925
|
switch (s) {
|
|
2454
1926
|
case "approve": {
|
|
2455
|
-
return
|
|
1927
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f576;
|
|
2456
1928
|
}
|
|
2457
1929
|
case "request_changes": {
|
|
2458
|
-
return
|
|
1930
|
+
return _M0FP36kazuph5reviw4core27from__string_2econstr_2f577;
|
|
2459
1931
|
}
|
|
2460
1932
|
default: {
|
|
2461
1933
|
return undefined;
|
|
@@ -2557,10 +2029,10 @@ function _M0FP36kazuph5reviw4core23parse__single__question(lines, start, end) {
|
|
|
2557
2029
|
if (i < end) {
|
|
2558
2030
|
const line = _M0MPC15array5Array2atGsE(lines, i);
|
|
2559
2031
|
const trimmed = _M0FP36kazuph5reviw4core4trim(line);
|
|
2560
|
-
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(
|
|
2032
|
+
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS672, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS672.length)) && _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673.length))) {
|
|
2561
2033
|
break;
|
|
2562
2034
|
}
|
|
2563
|
-
if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
2035
|
+
if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674.length)) && !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675.length))) {
|
|
2564
2036
|
break;
|
|
2565
2037
|
}
|
|
2566
2038
|
const content_colon = _M0FP36kazuph5reviw4core15index__of__char(trimmed, 58);
|
|
@@ -2585,7 +2057,7 @@ function _M0FP36kazuph5reviw4core23parse__single__question(lines, start, end) {
|
|
|
2585
2057
|
if (i < end) {
|
|
2586
2058
|
const opt_line = _M0MPC15array5Array2atGsE(lines, i);
|
|
2587
2059
|
const opt_trimmed = _M0FP36kazuph5reviw4core4trim(opt_line);
|
|
2588
|
-
if (_M0MPC16string6String11has__prefix(opt_trimmed, new _M0TPC16string10StringView(
|
|
2060
|
+
if (_M0MPC16string6String11has__prefix(opt_trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677.length)) && _M0MPC16string6String11has__prefix(opt_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678.length))) {
|
|
2589
2061
|
_M0MPC15array5Array4pushGsE(options, _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(opt_trimmed, 2)));
|
|
2590
2062
|
i = i + 1 | 0;
|
|
2591
2063
|
} else {
|
|
@@ -2625,12 +2097,12 @@ function _M0FP36kazuph5reviw4core23parse__reviw__questions(lines, start, end) {
|
|
|
2625
2097
|
if (i < end) {
|
|
2626
2098
|
const item_line = _M0MPC15array5Array2atGsE(lines, i);
|
|
2627
2099
|
const trimmed = _M0FP36kazuph5reviw4core4trim(item_line);
|
|
2628
|
-
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(
|
|
2100
|
+
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS682, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS682.length))) {
|
|
2629
2101
|
const q = _M0FP36kazuph5reviw4core23parse__single__question(lines, i, end);
|
|
2630
2102
|
_M0MPC15array5Array4pushGsE(questions, q._0);
|
|
2631
2103
|
i = q._1;
|
|
2632
2104
|
} else {
|
|
2633
|
-
if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(item_line, new _M0TPC16string10StringView(
|
|
2105
|
+
if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(item_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683.length))) {
|
|
2634
2106
|
break;
|
|
2635
2107
|
} else {
|
|
2636
2108
|
i = i + 1 | 0;
|
|
@@ -2780,7 +2252,7 @@ function _M0FP36kazuph5reviw4core20is__horizontal__rule(line) {
|
|
|
2780
2252
|
}
|
|
2781
2253
|
function _M0FP36kazuph5reviw4core22is__html__block__start(line) {
|
|
2782
2254
|
const t = _M0FP36kazuph5reviw4core4trim(line);
|
|
2783
|
-
return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(
|
|
2255
|
+
return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS702, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS702.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS703, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS703.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS704, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS704.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS705, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS705.length)) || (_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))))))));
|
|
2784
2256
|
}
|
|
2785
2257
|
function _M0FP36kazuph5reviw4core23is__ordered__list__item(line) {
|
|
2786
2258
|
const chars = _M0MPC16string6String9to__array(line);
|
|
@@ -2799,15 +2271,15 @@ function _M0FP36kazuph5reviw4core23is__ordered__list__item(line) {
|
|
|
2799
2271
|
return i < (chars.length - 1 | 0) && (_M0MPC15array5Array2atGcE(chars, i) === 46 && _M0MPC15array5Array2atGcE(chars, i + 1 | 0) === 32);
|
|
2800
2272
|
}
|
|
2801
2273
|
function _M0FP36kazuph5reviw4core16is__block__start(line) {
|
|
2802
|
-
return _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
2274
|
+
return _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS711, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS711.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS712, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS712.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS713, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS713.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS714, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS714.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS715, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS715.length)) || (_M0FP36kazuph5reviw4core23is__ordered__list__item(line) || (_M0FP36kazuph5reviw4core20is__horizontal__rule(line) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS716, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS716.length)) && _M0FP36kazuph5reviw4core22is__html__block__start(line)))))));
|
|
2803
2275
|
}
|
|
2804
2276
|
function _M0FP36kazuph5reviw4core20is__mermaid__content(text) {
|
|
2805
2277
|
const t = _M0FP36kazuph5reviw4core4trim(text);
|
|
2806
|
-
return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720.length)) || (_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)) ||
|
|
2278
|
+
return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720.length)) || (_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))))))))))));
|
|
2807
2279
|
}
|
|
2808
2280
|
function _M0FP36kazuph5reviw4core20is__table__separator(line) {
|
|
2809
2281
|
const t = _M0FP36kazuph5reviw4core4trim(line);
|
|
2810
|
-
if (!_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(
|
|
2282
|
+
if (!_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS729, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS729.length)) || !_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730.length))) {
|
|
2811
2283
|
return false;
|
|
2812
2284
|
}
|
|
2813
2285
|
const chars = _M0MPC16string6String9to__array(t);
|
|
@@ -2862,8 +2334,8 @@ function _M0FP36kazuph5reviw4core18make__heading__key(text, counter) {
|
|
|
2862
2334
|
function _M0FP36kazuph5reviw4core17parse__table__row(line) {
|
|
2863
2335
|
const result = [];
|
|
2864
2336
|
const t = _M0FP36kazuph5reviw4core4trim(line);
|
|
2865
|
-
const inner = _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(
|
|
2866
|
-
const _it = _M0MPC16string6String5split(inner, new _M0TPC16string10StringView(
|
|
2337
|
+
const inner = _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752.length)) && _M0MPC16string6String11has__suffix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(t, 1, t.length - 1 | 0) : _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754.length)) ? _M0FP36kazuph5reviw4core11safe__slice(t, 1) : t;
|
|
2338
|
+
const _it = _M0MPC16string6String5split(inner, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS751, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS751.length));
|
|
2867
2339
|
while (true) {
|
|
2868
2340
|
const _bind = _M0MPB4Iter4nextGRPC16string10StringViewE(_it);
|
|
2869
2341
|
if (_bind === undefined) {
|
|
@@ -2879,7 +2351,7 @@ function _M0FP36kazuph5reviw4core17parse__table__row(line) {
|
|
|
2879
2351
|
}
|
|
2880
2352
|
function _M0FP36kazuph5reviw4core14is__video__url(url) {
|
|
2881
2353
|
const lower = _M0MPC16string6String9to__lower(url);
|
|
2882
|
-
return _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(
|
|
2354
|
+
return _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS755, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS755.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS756, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS756.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS757, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS757.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS758, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS758.length)) || (_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)))))));
|
|
2883
2355
|
}
|
|
2884
2356
|
function _M0FP36kazuph5reviw4core14render__inline(text) {
|
|
2885
2357
|
const chars = _M0MPC16string6String9to__array(text);
|
|
@@ -2978,7 +2450,7 @@ function _M0FP36kazuph5reviw4core14render__inline(text) {
|
|
|
2978
2450
|
const link_text = _M0FP36kazuph5reviw4core18safe__slice__range(text, text_start, text_end);
|
|
2979
2451
|
const link_url = _M0FP36kazuph5reviw4core18safe__slice__range(text, url_start, url_end);
|
|
2980
2452
|
const lower_url = _M0MPC16string6String9to__lower(link_url);
|
|
2981
|
-
if (_M0MPC16string6String11has__prefix(lower_url, new _M0TPC16string10StringView(
|
|
2453
|
+
if (_M0MPC16string6String11has__prefix(lower_url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14render__inlineN7_2abindS767, 0, _M0FP36kazuph5reviw4core14render__inlineN7_2abindS767.length))) {
|
|
2982
2454
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(link_text));
|
|
2983
2455
|
} else {
|
|
2984
2456
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<a href=\"");
|
|
@@ -3175,18 +2647,18 @@ function _M0FP36kazuph5reviw4core17is__allowed__attr(name) {
|
|
|
3175
2647
|
}
|
|
3176
2648
|
function _M0FP36kazuph5reviw4core18is__dangerous__css(value) {
|
|
3177
2649
|
const lower = _M0MPC16string6String9to__lower(value);
|
|
3178
|
-
return _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(
|
|
2650
|
+
return _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS780, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS780.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS781, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS781.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS782, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS782.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS783, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS783.length)) || (_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))))))));
|
|
3179
2651
|
}
|
|
3180
2652
|
function _M0FP36kazuph5reviw4core24is__event__handler__attr(name) {
|
|
3181
|
-
return _M0MPC16string6String11has__prefix(name, new _M0TPC16string10StringView(
|
|
2653
|
+
return _M0MPC16string6String11has__prefix(name, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS788, 0, _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS788.length));
|
|
3182
2654
|
}
|
|
3183
2655
|
function _M0FP36kazuph5reviw4core13is__safe__url(url) {
|
|
3184
2656
|
const lower = _M0MPC16string6String9to__lower(url);
|
|
3185
2657
|
const trimmed = _M0FP36kazuph5reviw4core4trim(lower);
|
|
3186
|
-
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(
|
|
2658
|
+
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS789, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS789.length))) {
|
|
3187
2659
|
return false;
|
|
3188
2660
|
}
|
|
3189
|
-
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(
|
|
2661
|
+
if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790.length))) {
|
|
3190
2662
|
return false;
|
|
3191
2663
|
}
|
|
3192
2664
|
return true;
|
|
@@ -3525,7 +2997,7 @@ function _M0FP36kazuph5reviw4core14sanitize__html(input) {
|
|
|
3525
2997
|
if (!_M0FP36kazuph5reviw4core16is__allowed__tag(tag_name) && tag_name.length > 0) {
|
|
3526
2998
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<");
|
|
3527
2999
|
const tag_content = _M0FP36kazuph5reviw4core18safe__slice__range(input, tag_start + 1 | 0, tag_end);
|
|
3528
|
-
const trimmed_content = _M0MPC16string6String11has__suffix(tag_content, new _M0TPC16string10StringView(
|
|
3000
|
+
const trimmed_content = _M0MPC16string6String11has__suffix(tag_content, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS806, 0, _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS806.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(tag_content, 0, tag_content.length - 1 | 0) : tag_content;
|
|
3529
3001
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(trimmed_content));
|
|
3530
3002
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, ">");
|
|
3531
3003
|
i = tag_end;
|
|
@@ -3569,7 +3041,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3569
3041
|
i = i + 1 | 0;
|
|
3570
3042
|
continue;
|
|
3571
3043
|
}
|
|
3572
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3044
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808.length)) && _M0FP36kazuph5reviw4core22is__html__block__start(line)) {
|
|
3573
3045
|
const tag_name = _M0FP36kazuph5reviw4core24extract__html__tag__name(line);
|
|
3574
3046
|
if (tag_name === "details") {
|
|
3575
3047
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<details>\n");
|
|
@@ -3577,13 +3049,13 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3577
3049
|
while (true) {
|
|
3578
3050
|
if (i < len) {
|
|
3579
3051
|
const current = _M0FP36kazuph5reviw4core4trim(_M0MPC15array5Array2atGsE(lines, i));
|
|
3580
|
-
if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(
|
|
3052
|
+
if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810.length))) {
|
|
3581
3053
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14sanitize__html(_M0MPC15array5Array2atGsE(lines, i)));
|
|
3582
3054
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "\n");
|
|
3583
3055
|
i = i + 1 | 0;
|
|
3584
3056
|
break;
|
|
3585
3057
|
} else {
|
|
3586
|
-
if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(
|
|
3058
|
+
if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811.length))) {
|
|
3587
3059
|
break;
|
|
3588
3060
|
}
|
|
3589
3061
|
}
|
|
@@ -3598,14 +3070,14 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3598
3070
|
while (true) {
|
|
3599
3071
|
if (i < len && depth > 0) {
|
|
3600
3072
|
const current = _M0MPC15array5Array2atGsE(lines, i);
|
|
3601
|
-
if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(
|
|
3073
|
+
if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813.length))) {
|
|
3602
3074
|
depth = depth - 1 | 0;
|
|
3603
3075
|
if (depth === 0) {
|
|
3604
3076
|
i = i + 1 | 0;
|
|
3605
3077
|
break;
|
|
3606
3078
|
}
|
|
3607
3079
|
}
|
|
3608
|
-
if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(
|
|
3080
|
+
if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814.length))) {
|
|
3609
3081
|
depth = depth + 1 | 0;
|
|
3610
3082
|
}
|
|
3611
3083
|
_M0MPC15array5Array4pushGsE(inner_lines, current);
|
|
@@ -3650,7 +3122,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3650
3122
|
}
|
|
3651
3123
|
continue;
|
|
3652
3124
|
}
|
|
3653
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3125
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818.length))) {
|
|
3654
3126
|
const level = _M0FP36kazuph5reviw4core21count__heading__level(line);
|
|
3655
3127
|
if (level >= 1 && level <= 6) {
|
|
3656
3128
|
const content = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(line, level + 1 | 0));
|
|
@@ -3676,14 +3148,14 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3676
3148
|
i = i + 1 | 0;
|
|
3677
3149
|
continue;
|
|
3678
3150
|
}
|
|
3679
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3151
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819.length))) {
|
|
3680
3152
|
const lang = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(line, 3));
|
|
3681
3153
|
const code_block_start_line = i + 1 | 0;
|
|
3682
3154
|
i = i + 1 | 0;
|
|
3683
3155
|
const code_buf = _M0MPB13StringBuilder11new_2einner(0);
|
|
3684
3156
|
let code_first = true;
|
|
3685
3157
|
while (true) {
|
|
3686
|
-
if (i < len && !_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
3158
|
+
if (i < len && !_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821.length))) {
|
|
3687
3159
|
if (!code_first) {
|
|
3688
3160
|
_M0IPB13StringBuilderPB6Logger13write__string(code_buf, "\n");
|
|
3689
3161
|
}
|
|
@@ -3725,10 +3197,10 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3725
3197
|
}
|
|
3726
3198
|
continue;
|
|
3727
3199
|
}
|
|
3728
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3200
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822.length))) {
|
|
3729
3201
|
const quote_lines = [];
|
|
3730
3202
|
while (true) {
|
|
3731
|
-
if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
3203
|
+
if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824.length))) {
|
|
3732
3204
|
const content = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 1));
|
|
3733
3205
|
_M0MPC15array5Array4pushGsE(quote_lines, content);
|
|
3734
3206
|
i = i + 1 | 0;
|
|
@@ -3756,16 +3228,16 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3756
3228
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</blockquote>\n");
|
|
3757
3229
|
continue;
|
|
3758
3230
|
}
|
|
3759
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
3231
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS829, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS829.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830.length))) {
|
|
3760
3232
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<ul>\n");
|
|
3761
3233
|
while (true) {
|
|
3762
|
-
if (i < len && (_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
3234
|
+
if (i < len && (_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835.length)) || _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836.length)))) {
|
|
3763
3235
|
const item_text = _M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 2);
|
|
3764
|
-
if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(
|
|
3236
|
+
if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS832, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS832.length))) {
|
|
3765
3237
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<li class=\"task-list-item\"><input type=\"checkbox\" disabled /> ");
|
|
3766
3238
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14render__inline(_M0FP36kazuph5reviw4core11safe__slice(item_text, 4)));
|
|
3767
3239
|
} else {
|
|
3768
|
-
if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(
|
|
3240
|
+
if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833.length)) || _M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834.length))) {
|
|
3769
3241
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<li class=\"task-list-item\"><input type=\"checkbox\" checked disabled /> ");
|
|
3770
3242
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14render__inline(_M0FP36kazuph5reviw4core11safe__slice(item_text, 4)));
|
|
3771
3243
|
} else {
|
|
@@ -3822,7 +3294,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
|
|
|
3822
3294
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</tr>\n</thead>\n<tbody>\n");
|
|
3823
3295
|
i = i + 2 | 0;
|
|
3824
3296
|
while (true) {
|
|
3825
|
-
if (i < len && _M0MPC16string6String8contains(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
3297
|
+
if (i < len && _M0MPC16string6String8contains(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS847, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS847.length))) {
|
|
3826
3298
|
const cells = _M0FP36kazuph5reviw4core17parse__table__row(_M0MPC15array5Array2atGsE(lines, i));
|
|
3827
3299
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<tr>\n");
|
|
3828
3300
|
const _bind$2 = cells.length;
|
|
@@ -4086,7 +3558,7 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
|
|
|
4086
3558
|
_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
3559
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<script src=\"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js\"></script>");
|
|
4088
3560
|
_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}");
|
|
3561
|
+
_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
3562
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</style></head><body>");
|
|
4091
3563
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<header><div class=\"meta\">");
|
|
4092
3564
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<h1>");
|
|
@@ -4122,11 +3594,12 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
|
|
|
4122
3594
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"badge\">Click to comment / ESC to cancel</span>");
|
|
4123
3595
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"pill\" id=\"pill-comments\" title=\"Toggle comment panel\">Comments <strong id=\"comment-count\">0</strong></button>");
|
|
4124
3596
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div><div class=\"actions\">");
|
|
3597
|
+
_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
3598
|
_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
3599
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"view-toggle\" id=\"view-toggle\" title=\"Hide source panel\">📝</button>");
|
|
4127
3600
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"history-toggle\" id=\"history-toggle\" title=\"Review History\">☰</button>");
|
|
4128
3601
|
_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>");
|
|
3602
|
+
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<button id=\"send-and-exit\" class=\"submit-exit-btn\">Submit & Exit</button>");
|
|
4130
3603
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div></header>");
|
|
4131
3604
|
}
|
|
4132
3605
|
function _M0FP36kazuph5reviw4core23build__questions__modal(buf, questions) {
|
|
@@ -4405,14 +3878,6 @@ function _M0FP36kazuph5reviw4core21build__script__footer(buf, port, mode, filena
|
|
|
4405
3878
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core18escape__js__string(filename));
|
|
4406
3879
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "\";</script></body></html>");
|
|
4407
3880
|
}
|
|
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
3881
|
function _M0FP36kazuph5reviw4core20build__submit__modal(buf) {
|
|
4417
3882
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"modal-overlay\" id=\"submit-modal\">");
|
|
4418
3883
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"modal-dialog\">");
|
|
@@ -4602,7 +4067,6 @@ function _M0FP36kazuph5reviw4core29build__markdown__html_2einner(md, filename, p
|
|
|
4602
4067
|
_M0FP36kazuph5reviw4core20build__comment__card(buf);
|
|
4603
4068
|
_M0FP36kazuph5reviw4core27build__comment__list__aside(buf);
|
|
4604
4069
|
_M0FP36kazuph5reviw4core20build__submit__modal(buf);
|
|
4605
|
-
_M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
|
|
4606
4070
|
_M0FP36kazuph5reviw4core22build__recovery__modal(buf);
|
|
4607
4071
|
_M0FP36kazuph5reviw4core26build__mermaid__fullscreen(buf);
|
|
4608
4072
|
_M0FP36kazuph5reviw4core24build__image__fullscreen(buf);
|
|
@@ -4748,7 +4212,6 @@ function _M0FP36kazuph5reviw4core16build__csv__html(data, filename, port) {
|
|
|
4748
4212
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</tbody></table></div>");
|
|
4749
4213
|
_M0FP36kazuph5reviw4core20build__comment__card(buf);
|
|
4750
4214
|
_M0FP36kazuph5reviw4core20build__submit__modal(buf);
|
|
4751
|
-
_M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
|
|
4752
4215
|
_M0FP36kazuph5reviw4core21build__history__panel(buf);
|
|
4753
4216
|
_M0FP36kazuph5reviw4core22build__recovery__modal(buf);
|
|
4754
4217
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "<script>const DATA = ");
|
|
@@ -4885,7 +4348,6 @@ function _M0FP36kazuph5reviw4core17build__diff__html(data, filename, port) {
|
|
|
4885
4348
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div>");
|
|
4886
4349
|
_M0FP36kazuph5reviw4core20build__comment__card(buf);
|
|
4887
4350
|
_M0FP36kazuph5reviw4core20build__submit__modal(buf);
|
|
4888
|
-
_M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
|
|
4889
4351
|
_M0FP36kazuph5reviw4core21build__history__panel(buf);
|
|
4890
4352
|
_M0FP36kazuph5reviw4core22build__recovery__modal(buf);
|
|
4891
4353
|
_M0FP36kazuph5reviw4core21build__script__footer(buf, port, "diff", filename);
|
|
@@ -4918,7 +4380,6 @@ function _M0FP36kazuph5reviw4core17build__text__html(lines, filename, port) {
|
|
|
4918
4380
|
_M0IPB13StringBuilderPB6Logger13write__string(buf, "</div>");
|
|
4919
4381
|
_M0FP36kazuph5reviw4core20build__comment__card(buf);
|
|
4920
4382
|
_M0FP36kazuph5reviw4core20build__submit__modal(buf);
|
|
4921
|
-
_M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
|
|
4922
4383
|
_M0FP36kazuph5reviw4core21build__history__panel(buf);
|
|
4923
4384
|
_M0FP36kazuph5reviw4core22build__recovery__modal(buf);
|
|
4924
4385
|
_M0FP36kazuph5reviw4core21build__script__footer(buf, port, "text", filename);
|
|
@@ -5003,23 +4464,23 @@ function _M0FP36kazuph5reviw4core14collect__hunks(lines, start, len) {
|
|
|
5003
4464
|
while (true) {
|
|
5004
4465
|
if (i < len) {
|
|
5005
4466
|
const line = _M0MPC15array5Array2atGsE(lines, i);
|
|
5006
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
4467
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS975, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS975.length))) {
|
|
5007
4468
|
const header = _M0FP36kazuph5reviw4core19parse__hunk__header(line);
|
|
5008
4469
|
const hunk_lines = [];
|
|
5009
4470
|
i = i + 1 | 0;
|
|
5010
4471
|
while (true) {
|
|
5011
4472
|
if (i < len) {
|
|
5012
4473
|
const l = _M0MPC15array5Array2atGsE(lines, i);
|
|
5013
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4474
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS977, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS977.length)) || (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS978, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS978.length)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979.length)))) {
|
|
5014
4475
|
break;
|
|
5015
4476
|
}
|
|
5016
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4477
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980.length))) {
|
|
5017
4478
|
_M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(1, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
|
|
5018
4479
|
} else {
|
|
5019
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4480
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981.length))) {
|
|
5020
4481
|
_M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(2, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
|
|
5021
4482
|
} else {
|
|
5022
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4483
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982.length))) {
|
|
5023
4484
|
_M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(0, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
|
|
5024
4485
|
} else {
|
|
5025
4486
|
_M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(0, l));
|
|
@@ -5034,7 +4495,7 @@ function _M0FP36kazuph5reviw4core14collect__hunks(lines, start, len) {
|
|
|
5034
4495
|
}
|
|
5035
4496
|
_M0MPC15array5Array4pushGsE(hunks, new _M0TP36kazuph5reviw4core8DiffHunk(header._0, header._1, header._2, header._3, header._4, hunk_lines));
|
|
5036
4497
|
} else {
|
|
5037
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
4498
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984.length))) {
|
|
5038
4499
|
break;
|
|
5039
4500
|
} else {
|
|
5040
4501
|
i = i + 1 | 0;
|
|
@@ -5074,7 +4535,7 @@ function _M0FP36kazuph5reviw4core19extract__git__paths(line) {
|
|
|
5074
4535
|
}
|
|
5075
4536
|
}
|
|
5076
4537
|
function _M0FP36kazuph5reviw4core19strip__diff__prefix(path) {
|
|
5077
|
-
return _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(
|
|
4538
|
+
return _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS986, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS986.length)) || _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987.length)) ? _M0FP36kazuph5reviw4core11safe__slice(path, 2) : path;
|
|
5078
4539
|
}
|
|
5079
4540
|
function _M0FP36kazuph5reviw4core11parse__diff(input) {
|
|
5080
4541
|
const files = [];
|
|
@@ -5084,7 +4545,7 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
|
|
|
5084
4545
|
while (true) {
|
|
5085
4546
|
if (i < len) {
|
|
5086
4547
|
const line = _M0MPC15array5Array2atGsE(lines, i);
|
|
5087
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
4548
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS989, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS989.length))) {
|
|
5088
4549
|
const paths = _M0FP36kazuph5reviw4core19extract__git__paths(line);
|
|
5089
4550
|
let is_new = false;
|
|
5090
4551
|
let is_deleted = false;
|
|
@@ -5093,19 +4554,19 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
|
|
|
5093
4554
|
while (true) {
|
|
5094
4555
|
if (i < len) {
|
|
5095
4556
|
const l = _M0MPC15array5Array2atGsE(lines, i);
|
|
5096
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4557
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS991, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS991.length))) {
|
|
5097
4558
|
is_new = true;
|
|
5098
4559
|
i = i + 1 | 0;
|
|
5099
4560
|
} else {
|
|
5100
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4561
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS992, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS992.length))) {
|
|
5101
4562
|
is_deleted = true;
|
|
5102
4563
|
i = i + 1 | 0;
|
|
5103
4564
|
} else {
|
|
5104
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4565
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS993, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993.length))) {
|
|
5105
4566
|
is_binary = true;
|
|
5106
4567
|
i = i + 1 | 0;
|
|
5107
4568
|
} else {
|
|
5108
|
-
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(
|
|
4569
|
+
if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS994, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS994.length)) || (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS995, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS995.length)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS996, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS996.length)))) {
|
|
5109
4570
|
i = i + 1 | 0;
|
|
5110
4571
|
} else {
|
|
5111
4572
|
break;
|
|
@@ -5122,11 +4583,11 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
|
|
|
5122
4583
|
i = result._1;
|
|
5123
4584
|
_M0MPC15array5Array4pushGsE(files, new _M0TP36kazuph5reviw4core8DiffFile(paths._0, paths._1, is_new, is_deleted, is_binary, result._0));
|
|
5124
4585
|
} else {
|
|
5125
|
-
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(
|
|
4586
|
+
if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS997, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997.length))) {
|
|
5126
4587
|
const old_path = _M0FP36kazuph5reviw4core19strip__diff__prefix(_M0FP36kazuph5reviw4core11safe__slice(line, 4));
|
|
5127
4588
|
let new_path = "";
|
|
5128
4589
|
i = i + 1 | 0;
|
|
5129
|
-
if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(
|
|
4590
|
+
if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS998, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998.length))) {
|
|
5130
4591
|
new_path = _M0FP36kazuph5reviw4core19strip__diff__prefix(_M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 4));
|
|
5131
4592
|
i = i + 1 | 0;
|
|
5132
4593
|
}
|
|
@@ -5247,13 +4708,13 @@ function _M0FP36kazuph5reviw4core21csv__data__from__flat(flat) {
|
|
|
5247
4708
|
}
|
|
5248
4709
|
}
|
|
5249
4710
|
function _M0FP36kazuph5reviw6server10os__tmpdir() {
|
|
5250
|
-
return tmpdir$
|
|
4711
|
+
return tmpdir$1949();
|
|
5251
4712
|
}
|
|
5252
4713
|
function _M0FP36kazuph5reviw6server10path__join(_tmp, _tmp$2) {
|
|
5253
|
-
return join$
|
|
4714
|
+
return join$1952(_tmp, _tmp$2);
|
|
5254
4715
|
}
|
|
5255
4716
|
function _M0FP36kazuph5reviw6server17write__file__sync(_tmp, _tmp$2) {
|
|
5256
|
-
return writeFileSync$
|
|
4717
|
+
return writeFileSync$1956(_tmp, _tmp$2);
|
|
5257
4718
|
}
|
|
5258
4719
|
function _M0FP36kazuph5reviw6server19write__file__secure(path, data) {
|
|
5259
4720
|
_M0FP36kazuph5reviw6server15try__call__void(() => {
|
|
@@ -5268,7 +4729,7 @@ function _M0FP36kazuph5reviw6server15init__live__log() {
|
|
|
5268
4729
|
_M0FP36kazuph5reviw6server14console__error(`[REVIW_LIVE] ${path}`);
|
|
5269
4730
|
}
|
|
5270
4731
|
function _M0FP36kazuph5reviw6server22fs__append__file__sync(_tmp, _tmp$2) {
|
|
5271
|
-
return appendFileSync$
|
|
4732
|
+
return appendFileSync$1959(_tmp, _tmp$2);
|
|
5272
4733
|
}
|
|
5273
4734
|
function _M0FP36kazuph5reviw6server17append__live__log(json_line) {
|
|
5274
4735
|
if (_M0FP36kazuph5reviw6server15live__log__path.val.length > 0) {
|
|
@@ -5281,10 +4742,10 @@ function _M0FP36kazuph5reviw6server17append__live__log(json_line) {
|
|
|
5281
4742
|
}
|
|
5282
4743
|
}
|
|
5283
4744
|
function _M0FP36kazuph5reviw6server12exists__sync(_tmp) {
|
|
5284
|
-
return existsSync$
|
|
4745
|
+
return existsSync$1961(_tmp);
|
|
5285
4746
|
}
|
|
5286
4747
|
function _M0FP36kazuph5reviw6server12unlink__sync(_tmp) {
|
|
5287
|
-
return unlinkSync$
|
|
4748
|
+
return unlinkSync$1963(_tmp);
|
|
5288
4749
|
}
|
|
5289
4750
|
function _M0FP36kazuph5reviw6server18cleanup__live__log() {
|
|
5290
4751
|
if (_M0FP36kazuph5reviw6server15live__log__path.val.length > 0 && _M0FP36kazuph5reviw6server12exists__sync(_M0FP36kazuph5reviw6server15live__log__path.val)) {
|
|
@@ -5297,7 +4758,7 @@ function _M0FP36kazuph5reviw6server18cleanup__live__log() {
|
|
|
5297
4758
|
}
|
|
5298
4759
|
}
|
|
5299
4760
|
function _M0FP36kazuph5reviw6server16read__file__sync(_tmp, _tmp$2) {
|
|
5300
|
-
return readFileSync$
|
|
4761
|
+
return readFileSync$1966(_tmp, _tmp$2);
|
|
5301
4762
|
}
|
|
5302
4763
|
function _M0FP36kazuph5reviw6server12load__ui__js() {
|
|
5303
4764
|
if (_M0FP36kazuph5reviw6server13ui__js__cache.val.length > 0) {
|
|
@@ -5315,7 +4776,7 @@ function _M0FP36kazuph5reviw6server12load__ui__js() {
|
|
|
5315
4776
|
}
|
|
5316
4777
|
}
|
|
5317
4778
|
function _M0FP36kazuph5reviw6server11os__homedir() {
|
|
5318
|
-
return homedir$
|
|
4779
|
+
return homedir$1968();
|
|
5319
4780
|
}
|
|
5320
4781
|
function _M0FP36kazuph5reviw6server9lock__dir() {
|
|
5321
4782
|
const override_dir = _M0FP36kazuph5reviw6server13get__env__var("REVIW_LOCK_DIR");
|
|
@@ -5326,7 +4787,7 @@ function _M0FP36kazuph5reviw6server10lock__path(port) {
|
|
|
5326
4787
|
return _M0FP36kazuph5reviw6server10path__join(dir, `${_M0IP016_24default__implPB4Show10to__stringGiE(port)}.lock`);
|
|
5327
4788
|
}
|
|
5328
4789
|
function _M0FP36kazuph5reviw6server11mkdir__sync(_tmp, _tmp$2) {
|
|
5329
|
-
return mkdirSync$
|
|
4790
|
+
return mkdirSync$1971(_tmp, _tmp$2);
|
|
5330
4791
|
}
|
|
5331
4792
|
function _M0FP36kazuph5reviw6server17ensure__lock__dir() {
|
|
5332
4793
|
const dir = _M0FP36kazuph5reviw6server9lock__dir();
|
|
@@ -5395,7 +4856,7 @@ function _M0FP36kazuph5reviw6server21find__available__port(base) {
|
|
|
5395
4856
|
return base;
|
|
5396
4857
|
}
|
|
5397
4858
|
function _M0FP36kazuph5reviw6server13path__dirname(_tmp) {
|
|
5398
|
-
return dirname$
|
|
4859
|
+
return dirname$1978(_tmp);
|
|
5399
4860
|
}
|
|
5400
4861
|
function _M0FP36kazuph5reviw6server21get__package__version() {
|
|
5401
4862
|
let dir = _M0FP36kazuph5reviw6server16get__script__dir();
|
|
@@ -5447,7 +4908,7 @@ function _M0FP36kazuph5reviw6server17read__stdin__sync() {
|
|
|
5447
4908
|
return _M0FP36kazuph5reviw6server16read__file__sync("/dev/stdin", "utf-8");
|
|
5448
4909
|
}
|
|
5449
4910
|
function _M0FP36kazuph5reviw6server13path__extname(_tmp) {
|
|
5450
|
-
return extname$
|
|
4911
|
+
return extname$1985(_tmp);
|
|
5451
4912
|
}
|
|
5452
4913
|
function _M0FP36kazuph5reviw6server12detect__mode(file_path) {
|
|
5453
4914
|
const ext = _M0FP36kazuph5reviw6server13path__extname(file_path);
|
|
@@ -5549,7 +5010,7 @@ function _M0FP36kazuph5reviw6server16detect__encoding(buf) {
|
|
|
5549
5010
|
return "utf-8";
|
|
5550
5011
|
}
|
|
5551
5012
|
function _M0FP36kazuph5reviw6server18read__file__buffer(_tmp) {
|
|
5552
|
-
return readFileSync$
|
|
5013
|
+
return readFileSync$1966(_tmp);
|
|
5553
5014
|
}
|
|
5554
5015
|
function _M0FP36kazuph5reviw6server12decode__file(path, override_enc) {
|
|
5555
5016
|
const buf = _M0FP36kazuph5reviw6server18read__file__buffer(path);
|
|
@@ -5591,13 +5052,13 @@ function _M0FP36kazuph5reviw6server22load__and__build__html(ctx) {
|
|
|
5591
5052
|
return _M0FP36kazuph5reviw4core16build__csv__html(data, ctx.filename, ctx.port);
|
|
5592
5053
|
}
|
|
5593
5054
|
function _M0FP36kazuph5reviw6server14path__basename(_tmp) {
|
|
5594
|
-
return basename$
|
|
5055
|
+
return basename$1995(_tmp);
|
|
5595
5056
|
}
|
|
5596
5057
|
function _M0FP36kazuph5reviw6server13path__resolve(_tmp) {
|
|
5597
|
-
return resolve$
|
|
5058
|
+
return resolve$1997(_tmp);
|
|
5598
5059
|
}
|
|
5599
5060
|
function _M0FP36kazuph5reviw6server25http__create__server__raw(_tmp) {
|
|
5600
|
-
return createServer$
|
|
5061
|
+
return createServer$2002(_tmp);
|
|
5601
5062
|
}
|
|
5602
5063
|
function _M0FP36kazuph5reviw6server14create__server(handler) {
|
|
5603
5064
|
return _M0FP36kazuph5reviw6server25http__create__server__raw(handler);
|
|
@@ -5736,7 +5197,7 @@ function _M0FP36kazuph5reviw6server22cancel__pending__close(ctx) {
|
|
|
5736
5197
|
}
|
|
5737
5198
|
}
|
|
5738
5199
|
function _M0FP36kazuph5reviw6server22write__file__sync__buf(_tmp, _tmp$2) {
|
|
5739
|
-
return writeFileSync$
|
|
5200
|
+
return writeFileSync$1956(_tmp, _tmp$2);
|
|
5740
5201
|
}
|
|
5741
5202
|
function _M0FP36kazuph5reviw6server16base64__to__file(data, dir, index) {
|
|
5742
5203
|
const ext = _M0FP36kazuph5reviw6server20extract__base64__ext(data);
|
|
@@ -5770,7 +5231,7 @@ function _M0FP36kazuph5reviw6server20ensure__history__dir() {
|
|
|
5770
5231
|
}
|
|
5771
5232
|
}
|
|
5772
5233
|
function _M0FP36kazuph5reviw6server20crypto__create__hash(_tmp) {
|
|
5773
|
-
return createHash$
|
|
5234
|
+
return createHash$2023(_tmp);
|
|
5774
5235
|
}
|
|
5775
5236
|
function _M0FP36kazuph5reviw6server14crypto__sha256(s) {
|
|
5776
5237
|
return _M0FP36kazuph5reviw6server27hash__update__digest__hex16(_M0FP36kazuph5reviw6server20crypto__create__hash("sha256"), s);
|
|
@@ -5824,7 +5285,7 @@ function _M0FP36kazuph5reviw6server13save__history(file_path, entry_json) {
|
|
|
5824
5285
|
_M0FP36kazuph5reviw6server11chmod__sync(hp, 384);
|
|
5825
5286
|
}
|
|
5826
5287
|
function _M0FP36kazuph5reviw6server13unwatch__file(_tmp) {
|
|
5827
|
-
return unwatchFile$
|
|
5288
|
+
return unwatchFile$2028(_tmp);
|
|
5828
5289
|
}
|
|
5829
5290
|
function _M0FP36kazuph5reviw6server14handle__submit(ctx, body) {
|
|
5830
5291
|
if (ctx.finished) {
|
|
@@ -6038,7 +5499,7 @@ function _M0FP36kazuph5reviw6server21handle__session__open(ctx, body) {
|
|
|
6038
5499
|
_M0MPB3Map3setGssE(ctx.active_tab_instances, tab_id, instance_id);
|
|
6039
5500
|
}
|
|
6040
5501
|
function _M0FP36kazuph5reviw6server17child__exec__sync(_tmp, _tmp$2) {
|
|
6041
|
-
return execSync$
|
|
5502
|
+
return execSync$2041(_tmp, _tmp$2);
|
|
6042
5503
|
}
|
|
6043
5504
|
function _M0FP36kazuph5reviw6server15command__exists(cmd) {
|
|
6044
5505
|
return _M0FP36kazuph5reviw6server15try__call__bool(() => {
|
|
@@ -6047,7 +5508,7 @@ function _M0FP36kazuph5reviw6server15command__exists(cmd) {
|
|
|
6047
5508
|
});
|
|
6048
5509
|
}
|
|
6049
5510
|
function _M0FP36kazuph5reviw6server17fs__mkdtemp__sync(_tmp) {
|
|
6050
|
-
return mkdtempSync$
|
|
5511
|
+
return mkdtempSync$2044(_tmp);
|
|
6051
5512
|
}
|
|
6052
5513
|
function _M0FP36kazuph5reviw6server15make__temp__dir() {
|
|
6053
5514
|
return _M0FP36kazuph5reviw6server17fs__mkdtemp__sync(`${_M0FP36kazuph5reviw6server10os__tmpdir()}/reviw-`);
|
|
@@ -6056,13 +5517,13 @@ function _M0FP36kazuph5reviw6server18read__file__base64(path) {
|
|
|
6056
5517
|
return _M0FP36kazuph5reviw6server17try__call__string(() => _M0FP36kazuph5reviw6server15buf__to__base64(_M0FP36kazuph5reviw6server18read__file__buffer(path)), "");
|
|
6057
5518
|
}
|
|
6058
5519
|
function _M0FP36kazuph5reviw6server22fs__readdir__sync__raw(_tmp) {
|
|
6059
|
-
return readdirSync$
|
|
5520
|
+
return readdirSync$2054(_tmp);
|
|
6060
5521
|
}
|
|
6061
5522
|
function _M0FP36kazuph5reviw6server13readdir__sync(path) {
|
|
6062
5523
|
return _M0FP36kazuph5reviw6server24try__call__array__string(() => _M0FP36kazuph5reviw6server22fs__readdir__sync__raw(path));
|
|
6063
5524
|
}
|
|
6064
5525
|
function _M0FP36kazuph5reviw6server12fs__rm__sync(_tmp, _tmp$2) {
|
|
6065
|
-
return rmSync$
|
|
5526
|
+
return rmSync$2063(_tmp, _tmp$2);
|
|
6066
5527
|
}
|
|
6067
5528
|
function _M0FP36kazuph5reviw6server18rm__dir__recursive(path) {
|
|
6068
5529
|
_M0FP36kazuph5reviw6server15try__call__void(() => {
|
|
@@ -6070,13 +5531,13 @@ function _M0FP36kazuph5reviw6server18rm__dir__recursive(path) {
|
|
|
6070
5531
|
});
|
|
6071
5532
|
}
|
|
6072
5533
|
function _M0FP36kazuph5reviw6server12child__spawn(_tmp, _tmp$2, _tmp$3) {
|
|
6073
|
-
return spawn$
|
|
5534
|
+
return spawn$2069(_tmp, _tmp$2, _tmp$3);
|
|
6074
5535
|
}
|
|
6075
5536
|
function _M0FP36kazuph5reviw6server12spawn__async(cmd, args_json) {
|
|
6076
5537
|
return _M0FP36kazuph5reviw6server12child__spawn(cmd, _M0FP36kazuph5reviw6server15js__parse__json(args_json), _M0FP36kazuph5reviw6server21js__spawn__opts__pipe());
|
|
6077
5538
|
}
|
|
6078
5539
|
function _M0FP36kazuph5reviw6server18child__spawn__sync(_tmp, _tmp$2, _tmp$3) {
|
|
6079
|
-
return spawnSync$
|
|
5540
|
+
return spawnSync$2074(_tmp, _tmp$2, _tmp$3);
|
|
6080
5541
|
}
|
|
6081
5542
|
function _M0FP36kazuph5reviw6server19spawn__sync__stdout(cmd, args_json) {
|
|
6082
5543
|
return _M0FP36kazuph5reviw6server17try__call__string(() => _M0FP36kazuph5reviw6server15js__obj__stdout(_M0FP36kazuph5reviw6server18child__spawn__sync(cmd, _M0FP36kazuph5reviw6server15js__parse__json(args_json), _M0FP36kazuph5reviw6server27js__spawn__opts__utf8__pipe())), "");
|
|
@@ -6290,13 +5751,13 @@ function _M0FP36kazuph5reviw6server9index__of(s, target) {
|
|
|
6290
5751
|
return -1;
|
|
6291
5752
|
}
|
|
6292
5753
|
function _M0FP36kazuph5reviw6server14fs__stat__sync(_tmp) {
|
|
6293
|
-
return statSync$
|
|
5754
|
+
return statSync$2092(_tmp);
|
|
6294
5755
|
}
|
|
6295
5756
|
function _M0FP36kazuph5reviw6server14is__file__sync(path) {
|
|
6296
5757
|
return _M0FP36kazuph5reviw6server18js__stat__is__file(_M0FP36kazuph5reviw6server14fs__stat__sync(path));
|
|
6297
5758
|
}
|
|
6298
5759
|
function _M0FP36kazuph5reviw6server30fs__create__read__stream__opts(_tmp, _tmp$2) {
|
|
6299
|
-
return createReadStream$
|
|
5760
|
+
return createReadStream$2096(_tmp, _tmp$2);
|
|
6300
5761
|
}
|
|
6301
5762
|
function _M0FP36kazuph5reviw6server17pipe__file__range(file_path, res, content_type, range_header) {
|
|
6302
5763
|
const stat = _M0FP36kazuph5reviw6server14fs__stat__sync(file_path);
|
|
@@ -6311,7 +5772,7 @@ function _M0FP36kazuph5reviw6server17pipe__file__range(file_path, res, content_t
|
|
|
6311
5772
|
_M0FP36kazuph5reviw6server8js__pipe(stream, res);
|
|
6312
5773
|
}
|
|
6313
5774
|
function _M0FP36kazuph5reviw6server24fs__create__read__stream(_tmp) {
|
|
6314
|
-
return createReadStream$
|
|
5775
|
+
return createReadStream$2096(_tmp);
|
|
6315
5776
|
}
|
|
6316
5777
|
function _M0FP36kazuph5reviw6server24pipe__file__to__response(file_path, res, content_type) {
|
|
6317
5778
|
const stat = _M0FP36kazuph5reviw6server14fs__stat__sync(file_path);
|
|
@@ -6605,7 +6066,7 @@ function _M0FP36kazuph5reviw6server19start__http__server(ctx, no_open) {
|
|
|
6605
6066
|
_M0FP36kazuph5reviw6server11try__listen(ctx, ctx.port, 0, no_open);
|
|
6606
6067
|
}
|
|
6607
6068
|
function _M0FP36kazuph5reviw6server11watch__file(_tmp, _tmp$2) {
|
|
6608
|
-
return watchFile$
|
|
6069
|
+
return watchFile$2130(_tmp, _tmp$2);
|
|
6609
6070
|
}
|
|
6610
6071
|
function _M0FP36kazuph5reviw6server19start__file__server(file_path, port, no_open) {
|
|
6611
6072
|
const resolved = _M0FP36kazuph5reviw6server13path__resolve(file_path);
|