lynx-console 0.2.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -22
- package/dist/index.cjs +87 -98
- package/dist/index.css +45 -243
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +87 -98
- package/dist/index.mjs.map +1 -1
- package/dist/setup.cjs +7 -3
- package/dist/setup.mjs +9 -5
- package/dist/setup.mjs.map +1 -1
- package/package.json +7 -8
- package/src/components/BottomSheet.css +2 -13
- package/src/components/BottomSheet.tsx +1 -1
- package/src/components/ConsolePanel.css +0 -84
- package/src/components/ConsolePanel.tsx +3 -2
- package/src/components/FloatingButton.css +1 -8
- package/src/components/FloatingButton.tsx +29 -35
- package/src/components/LogPanel.tsx +108 -48
- package/src/components/NetworkDetailSection.tsx +24 -12
- package/src/components/NetworkPanel.css +0 -53
- package/src/components/NetworkPanel.tsx +78 -34
- package/src/components/PerformancePanel.css +0 -64
- package/src/components/PerformancePanel.tsx +120 -48
- package/src/components/Tabs.css +1 -21
- package/src/components/Tabs.tsx +2 -2
- package/src/index.tsx +11 -2
- package/src/setup/_setupMainThreadConsole.ts +17 -4
- package/src/styles/ThemeContext.ts +1 -1
- package/src/styles/theme.ts +0 -14
- package/src/styles/tokens.css +40 -0
- package/src/components/FadeList.tsx +0 -31
- package/src/styles/getDimensionValue.ts +0 -7
- package/src/styles/tokens.json +0 -80
package/dist/index.cjs
CHANGED
|
@@ -166,7 +166,7 @@ function BottomSheet({ children, title, footer, onClose, isOpen, shouldClose = f
|
|
|
166
166
|
<view className="bs-handle" style={{ backgroundColor: colors.palette.gray400 }} />
|
|
167
167
|
</view>
|
|
168
168
|
<view className="bs-header">
|
|
169
|
-
{title && <text className="bs-title" style={{
|
|
169
|
+
{title && <text className="bs-title t7" style={{
|
|
170
170
|
fontWeight: fontWeight.bold,
|
|
171
171
|
color: colors.fg.neutral
|
|
172
172
|
}}>
|
|
@@ -270,16 +270,6 @@ const usePerformance = () => {
|
|
|
270
270
|
};
|
|
271
271
|
};
|
|
272
272
|
|
|
273
|
-
//#endregion
|
|
274
|
-
//#region src/components/FadeList.tsx
|
|
275
|
-
const FadeList = ({ className, listRef: externalListRef, children, ...listProps }) => {
|
|
276
|
-
const internalListRef = (0, _lynx_js_react.useRef)(null);
|
|
277
|
-
const listRef = externalListRef ?? internalListRef;
|
|
278
|
-
return <list ref={listRef} scroll-orientation="vertical" className={className} {...listProps}>
|
|
279
|
-
{children}
|
|
280
|
-
</list>;
|
|
281
|
-
};
|
|
282
|
-
|
|
283
273
|
//#endregion
|
|
284
274
|
//#region src/components/LogPanel.tsx
|
|
285
275
|
const LOG_LEVELS = [
|
|
@@ -410,7 +400,6 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
410
400
|
params: { value: "" }
|
|
411
401
|
}).exec();
|
|
412
402
|
runCode(trimmed);
|
|
413
|
-
setTimeout(() => scrollToBottom(false), 100);
|
|
414
403
|
};
|
|
415
404
|
const renderArg = (arg, parentKey, level) => {
|
|
416
405
|
const key = parentKey;
|
|
@@ -431,7 +420,7 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
431
420
|
const MAX_LENGTH = 80;
|
|
432
421
|
const shouldTruncate = arg.length > MAX_LENGTH;
|
|
433
422
|
const strColor = getStringColor(colors, level);
|
|
434
|
-
if (!shouldTruncate) return <text className={"cp-argString"} style={{
|
|
423
|
+
if (!shouldTruncate) return <text className={"cp-argString t3"} style={{
|
|
435
424
|
color: strColor,
|
|
436
425
|
fontWeight: fontWeight.regular
|
|
437
426
|
}}>
|
|
@@ -439,13 +428,13 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
439
428
|
</text>;
|
|
440
429
|
return <view className={"cp-argObject"}>
|
|
441
430
|
<view className={"cp-argObjectHeader"} bindtap={() => toggleArg(key)}>
|
|
442
|
-
<text className={"cp-toggleIndicator"} style={{
|
|
431
|
+
<text className={"cp-toggleIndicator t2"} style={{
|
|
443
432
|
color: colors.fg.neutralSubtle,
|
|
444
433
|
fontWeight: fontWeight.regular
|
|
445
434
|
}}>
|
|
446
435
|
{isExpanded ? "▼" : "▶"}
|
|
447
436
|
</text>
|
|
448
|
-
<text className={"cp-argString"} style={{
|
|
437
|
+
<text className={"cp-argString t3"} style={{
|
|
449
438
|
color: strColor,
|
|
450
439
|
fontWeight: fontWeight.regular
|
|
451
440
|
}}>
|
|
@@ -454,7 +443,7 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
454
443
|
</view>
|
|
455
444
|
</view>;
|
|
456
445
|
}
|
|
457
|
-
if (typeof arg === "number" || typeof arg === "boolean") return <text className={"cp-argPrimitive"} style={{
|
|
446
|
+
if (typeof arg === "number" || typeof arg === "boolean") return <text className={"cp-argPrimitive t3"} style={{
|
|
458
447
|
color: getPrimitiveColor(colors, level),
|
|
459
448
|
fontWeight: fontWeight.regular
|
|
460
449
|
}}>
|
|
@@ -475,13 +464,13 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
475
464
|
else jsonString = (0, javascript_stringify.stringify)(arg, null, 2, { references: true }) ?? String(arg);
|
|
476
465
|
return <view className={"cp-argObject"}>
|
|
477
466
|
<view className={"cp-argObjectHeader"} bindtap={() => toggleArg(key)}>
|
|
478
|
-
<text className={"cp-toggleIndicator"} style={{
|
|
467
|
+
<text className={"cp-toggleIndicator t2"} style={{
|
|
479
468
|
color: colors.fg.neutralSubtle,
|
|
480
469
|
fontWeight: fontWeight.regular
|
|
481
470
|
}}>
|
|
482
471
|
{isExpanded ? "▼" : "▶"}
|
|
483
472
|
</text>
|
|
484
|
-
<text className={"cp-argObjectPreview"} style={{
|
|
473
|
+
<text className={"cp-argObjectPreview t3"} style={{
|
|
485
474
|
fontWeight: fontWeight.medium,
|
|
486
475
|
color: colors.fg.neutral
|
|
487
476
|
}}>
|
|
@@ -489,7 +478,7 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
489
478
|
</text>
|
|
490
479
|
</view>
|
|
491
480
|
{isExpanded && <view className={"cp-argObjectContent"}>
|
|
492
|
-
<text className={"cp-argObjectJson"} style={{
|
|
481
|
+
<text className={"cp-argObjectJson t3"} style={{
|
|
493
482
|
fontWeight: fontWeight.regular,
|
|
494
483
|
color: colors.fg.neutral
|
|
495
484
|
}}>
|
|
@@ -498,7 +487,7 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
498
487
|
</view>}
|
|
499
488
|
</view>;
|
|
500
489
|
}
|
|
501
|
-
return <text className={"cp-argPrimitive"} style={{
|
|
490
|
+
return <text className={"cp-argPrimitive t3"} style={{
|
|
502
491
|
color: getPrimitiveColor(colors, level),
|
|
503
492
|
fontWeight: fontWeight.regular
|
|
504
493
|
}}>
|
|
@@ -511,11 +500,11 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
511
500
|
<view className={"cp-logHeader"}>
|
|
512
501
|
<view className={"cp-filterWrapper"}>
|
|
513
502
|
<view className={"cp-filterButton"} style={{ backgroundColor: colors.bg.neutralWeak }} catchtap={() => setFilterOpen((v) => !v)}>
|
|
514
|
-
<text className={"cp-filterButtonText"} style={{
|
|
503
|
+
<text className={"cp-filterButtonText t3"} style={{
|
|
515
504
|
fontWeight: fontWeight.medium,
|
|
516
505
|
color: colors.fg.neutralMuted
|
|
517
506
|
}}>
|
|
518
|
-
Filter
|
|
507
|
+
Filter ▼
|
|
519
508
|
</text>
|
|
520
509
|
</view>
|
|
521
510
|
{filterOpen && <view className={"cp-filterDropdown"} style={{
|
|
@@ -523,13 +512,13 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
523
512
|
borderColor: colors.stroke.neutralSubtle
|
|
524
513
|
}} catchtap={() => {}}>
|
|
525
514
|
{LOG_LEVELS.map((level) => <view key={level} className={"cp-filterOption"} bindtap={() => toggleLevel(level)}>
|
|
526
|
-
<text className={"cp-filterCheckbox"} style={{
|
|
515
|
+
<text className={"cp-filterCheckbox t3"} style={{
|
|
527
516
|
fontWeight: fontWeight.medium,
|
|
528
517
|
color: getLevelColor(colors, level)
|
|
529
518
|
}}>
|
|
530
519
|
{enabledLevels.has(level) ? "✅" : "⬜"}
|
|
531
520
|
</text>
|
|
532
|
-
<text className={"cp-filterLabel"} style={{
|
|
521
|
+
<text className={"cp-filterLabel t3"} style={{
|
|
533
522
|
fontWeight: fontWeight.medium,
|
|
534
523
|
color: getLevelColor(colors, level)
|
|
535
524
|
}}>
|
|
@@ -539,13 +528,13 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
539
528
|
</view>}
|
|
540
529
|
</view>
|
|
541
530
|
<view className={"cp-searchWrapper"} style={{ borderBottomColor: colors.stroke.neutralSubtle }}>
|
|
542
|
-
<text className={"cp-searchPrompt"} style={{
|
|
531
|
+
<text className={"cp-searchPrompt t6"} style={{
|
|
543
532
|
fontWeight: fontWeight.medium,
|
|
544
533
|
color: colors.fg.placeholder
|
|
545
534
|
}}>
|
|
546
535
|
{"›"}
|
|
547
536
|
</text>
|
|
548
|
-
<input ref={searchInputRef} className={"cp-searchInput"} style={{
|
|
537
|
+
<input ref={searchInputRef} className={"cp-searchInput t3"} style={{
|
|
549
538
|
fontWeight: fontWeight.regular,
|
|
550
539
|
color: colors.fg.neutral,
|
|
551
540
|
caretColor: colors.palette.green600
|
|
@@ -557,7 +546,7 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
557
546
|
params: { value: "" }
|
|
558
547
|
}).exec();
|
|
559
548
|
}}>
|
|
560
|
-
<text className={"cp-searchClearText"} style={{
|
|
549
|
+
<text className={"cp-searchClearText t3"} style={{
|
|
561
550
|
fontWeight: fontWeight.medium,
|
|
562
551
|
color: colors.fg.placeholder
|
|
563
552
|
}}>
|
|
@@ -571,7 +560,7 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
571
560
|
gap: 8
|
|
572
561
|
}}>
|
|
573
562
|
<view className={"cp-clearButton"} style={{ backgroundColor: colors.bg.neutralWeak }} bindtap={clearLogs}>
|
|
574
|
-
<text className={"cp-clearButtonText"} style={{
|
|
563
|
+
<text className={"cp-clearButtonText t3"} style={{
|
|
575
564
|
fontWeight: fontWeight.medium,
|
|
576
565
|
color: colors.fg.neutralMuted
|
|
577
566
|
}}>
|
|
@@ -580,10 +569,10 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
580
569
|
</view>
|
|
581
570
|
</view>
|
|
582
571
|
</view>
|
|
583
|
-
<
|
|
572
|
+
<list ref={listRef} scroll-orientation="vertical" className={"cp-logList"} preload-buffer-count={10} initial-scroll-index={Math.max(0, filteredLogs.length - 1)}>
|
|
584
573
|
{filteredLogs.length === 0 ? <list-item item-key="empty-state">
|
|
585
574
|
<view className={"cp-placeholder"}>
|
|
586
|
-
<text className={"cp-placeholderText"} style={{
|
|
575
|
+
<text className={"cp-placeholderText t4"} style={{
|
|
587
576
|
fontWeight: fontWeight.regular,
|
|
588
577
|
color: colors.fg.disabled
|
|
589
578
|
}}>
|
|
@@ -597,13 +586,13 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
597
586
|
borderBottomColor: colors.stroke.neutralWeak
|
|
598
587
|
}}>
|
|
599
588
|
<view className={"cp-logItemHeader"}>
|
|
600
|
-
<text className={"cp-logLevel"} style={{
|
|
589
|
+
<text className={"cp-logLevel t2"} style={{
|
|
601
590
|
fontWeight: fontWeight.bold,
|
|
602
591
|
color: getLevelColor(colors, log.level)
|
|
603
592
|
}}>
|
|
604
593
|
{log.level.toUpperCase()}
|
|
605
594
|
</text>
|
|
606
|
-
<text className={"cp-logTime"} style={{
|
|
595
|
+
<text className={"cp-logTime t2"} style={{
|
|
607
596
|
fontWeight: fontWeight.regular,
|
|
608
597
|
color: colors.fg.neutralSubtle
|
|
609
598
|
}}>
|
|
@@ -618,21 +607,21 @@ const LogPanel = ({ logs, clearLogs }) => {
|
|
|
618
607
|
</view>
|
|
619
608
|
</list-item>;
|
|
620
609
|
})}
|
|
621
|
-
</
|
|
610
|
+
</list>
|
|
622
611
|
<view className={"cp-replInputRow"}>
|
|
623
|
-
<text className={"cp-replPrompt"} style={{
|
|
612
|
+
<text className={"cp-replPrompt t10"} style={{
|
|
624
613
|
fontWeight: fontWeight.medium,
|
|
625
614
|
color: colors.fg.placeholder
|
|
626
615
|
}}>
|
|
627
616
|
{"›"}
|
|
628
617
|
</text>
|
|
629
|
-
<input ref={inputRef} className={"cp-replInput"} style={{
|
|
618
|
+
<input ref={inputRef} className={"cp-replInput t5"} style={{
|
|
630
619
|
fontWeight: fontWeight.regular,
|
|
631
620
|
color: colors.fg.neutral,
|
|
632
621
|
caretColor: colors.palette.green600
|
|
633
622
|
}} placeholder="enter code..." bindinput={(e) => setCode(e.detail.value)} bindconfirm={handleRun} />
|
|
634
623
|
<view className={"cp-replRunButton"} style={{ backgroundColor: colors.palette.green100 }} bindtap={handleRun}>
|
|
635
|
-
<text className={"cp-replRunButtonText"} style={{
|
|
624
|
+
<text className={"cp-replRunButtonText t3"} style={{
|
|
636
625
|
fontWeight: fontWeight.medium,
|
|
637
626
|
color: colors.palette.green600
|
|
638
627
|
}}>
|
|
@@ -650,7 +639,7 @@ const NetworkDetailSection = ({ headers = {}, body = "", error = "" }) => {
|
|
|
650
639
|
return <>
|
|
651
640
|
{}
|
|
652
641
|
<view className={"np-detailSection"}>
|
|
653
|
-
<text className={"np-detailSectionTitle"} style={{
|
|
642
|
+
<text className={"np-detailSectionTitle t3"} style={{
|
|
654
643
|
fontWeight: fontWeight.bold,
|
|
655
644
|
color: colors.fg.neutral
|
|
656
645
|
}}>
|
|
@@ -658,20 +647,20 @@ const NetworkDetailSection = ({ headers = {}, body = "", error = "" }) => {
|
|
|
658
647
|
</text>
|
|
659
648
|
{headers && Object.keys(headers).length > 0 ? <view className={"np-table"}>
|
|
660
649
|
{Object.entries(headers).map(([key, value]) => <view key={key} className={"np-tableRow"} style={{ backgroundColor: colors.bg.neutralWeak }}>
|
|
661
|
-
<text className={"np-tableKey"} style={{
|
|
650
|
+
<text className={"np-tableKey t3"} style={{
|
|
662
651
|
fontWeight: fontWeight.bold,
|
|
663
652
|
color: colors.fg.neutralSubtle
|
|
664
653
|
}}>
|
|
665
654
|
{key}
|
|
666
655
|
</text>
|
|
667
|
-
<text className={"np-tableValue"} style={{
|
|
656
|
+
<text className={"np-tableValue t3"} style={{
|
|
668
657
|
fontWeight: fontWeight.regular,
|
|
669
658
|
color: colors.fg.neutral
|
|
670
659
|
}}>
|
|
671
660
|
{value}
|
|
672
661
|
</text>
|
|
673
662
|
</view>)}
|
|
674
|
-
</view> : <text className={"np-emptyText"} style={{
|
|
663
|
+
</view> : <text className={"np-emptyText t3"} style={{
|
|
675
664
|
fontWeight: fontWeight.regular,
|
|
676
665
|
color: colors.fg.disabled
|
|
677
666
|
}}>
|
|
@@ -681,27 +670,27 @@ const NetworkDetailSection = ({ headers = {}, body = "", error = "" }) => {
|
|
|
681
670
|
|
|
682
671
|
{}
|
|
683
672
|
<view className={"np-detailSection"}>
|
|
684
|
-
<text className={"np-detailSectionTitle"} style={{
|
|
673
|
+
<text className={"np-detailSectionTitle t3"} style={{
|
|
685
674
|
fontWeight: fontWeight.bold,
|
|
686
675
|
color: colors.fg.neutral
|
|
687
676
|
}}>
|
|
688
677
|
Body
|
|
689
678
|
</text>
|
|
690
|
-
{error && <text className={"np-errorText"} style={{
|
|
679
|
+
{error && <text className={"np-errorText t3"} style={{
|
|
691
680
|
fontWeight: fontWeight.regular,
|
|
692
681
|
color: colors.palette.red600,
|
|
693
682
|
backgroundColor: colors.palette.red100
|
|
694
683
|
}}>
|
|
695
684
|
{error}
|
|
696
685
|
</text>}
|
|
697
|
-
{body && <text className={"np-bodyText"} style={{
|
|
686
|
+
{body && <text className={"np-bodyText t3"} style={{
|
|
698
687
|
fontWeight: fontWeight.regular,
|
|
699
688
|
color: colors.fg.neutral,
|
|
700
689
|
backgroundColor: colors.bg.neutralWeak
|
|
701
690
|
}}>
|
|
702
691
|
{body}
|
|
703
692
|
</text>}
|
|
704
|
-
{!error && !body && <text className={"np-emptyText"} style={{
|
|
693
|
+
{!error && !body && <text className={"np-emptyText t3"} style={{
|
|
705
694
|
fontWeight: fontWeight.regular,
|
|
706
695
|
color: colors.fg.disabled
|
|
707
696
|
}}>
|
|
@@ -805,14 +794,14 @@ const NetworkPanel = ({ networks, clearNetworks }) => {
|
|
|
805
794
|
};
|
|
806
795
|
return <view className={"np-container"}>
|
|
807
796
|
<view className={"np-header"}>
|
|
808
|
-
<text className={"np-count"} style={{
|
|
797
|
+
<text className={"np-count t3"} style={{
|
|
809
798
|
fontWeight: fontWeight.regular,
|
|
810
799
|
color: colors.fg.neutralSubtle
|
|
811
800
|
}}>
|
|
812
801
|
Total: {networks.length} requests
|
|
813
802
|
</text>
|
|
814
803
|
<view className={"np-clearButton"} style={{ backgroundColor: colors.bg.neutralWeak }} bindtap={clearNetworks}>
|
|
815
|
-
<text className={"np-clearButtonText"} style={{
|
|
804
|
+
<text className={"np-clearButtonText t3"} style={{
|
|
816
805
|
fontWeight: fontWeight.medium,
|
|
817
806
|
color: colors.fg.neutralMuted
|
|
818
807
|
}}>
|
|
@@ -822,44 +811,44 @@ const NetworkPanel = ({ networks, clearNetworks }) => {
|
|
|
822
811
|
</view>
|
|
823
812
|
|
|
824
813
|
{networks.length === 0 ? <view className={"np-placeholder"}>
|
|
825
|
-
<text className={"np-placeholderText"} style={{
|
|
814
|
+
<text className={"np-placeholderText t4"} style={{
|
|
826
815
|
fontWeight: fontWeight.regular,
|
|
827
816
|
color: colors.fg.disabled
|
|
828
817
|
}}>
|
|
829
818
|
No network requests yet
|
|
830
819
|
</text>
|
|
831
|
-
</view> : <
|
|
820
|
+
</view> : <list scroll-orientation="vertical" className={"np-list"}>
|
|
832
821
|
{networks.map((network) => <list-item key={network.id} item-key={network.id}>
|
|
833
822
|
<view className={"np-item"} style={{
|
|
834
823
|
backgroundColor: getItemBg(colors, network.status),
|
|
835
824
|
borderBottomColor: colors.stroke.neutralWeak
|
|
836
825
|
}}>
|
|
837
826
|
<view className={"np-itemHeader"} bindtap={() => setSelectedId(selectedId === network.id ? null : network.id)}>
|
|
838
|
-
<text className={"np-method"} style={{
|
|
827
|
+
<text className={"np-method t2"} style={{
|
|
839
828
|
fontWeight: fontWeight.bold,
|
|
840
829
|
...getMethodColors(colors, network.method)
|
|
841
830
|
}}>
|
|
842
831
|
{network.method}
|
|
843
832
|
</text>
|
|
844
|
-
{network.statusCode && <text className={"np-statusCode"} style={{
|
|
833
|
+
{network.statusCode && <text className={"np-statusCode t2"} style={{
|
|
845
834
|
fontWeight: fontWeight.bold,
|
|
846
835
|
color: getStatusCodeColor(colors, getStatusCodeVariant(network.status, network.statusCode))
|
|
847
836
|
}}>
|
|
848
837
|
{network.statusCode}
|
|
849
838
|
</text>}
|
|
850
|
-
{network.status === "pending" && <text className={"np-statusCode"} style={{
|
|
839
|
+
{network.status === "pending" && <text className={"np-statusCode t2"} style={{
|
|
851
840
|
fontWeight: fontWeight.bold,
|
|
852
841
|
color: colors.fg.neutralSubtle
|
|
853
842
|
}}>
|
|
854
843
|
Pending...
|
|
855
844
|
</text>}
|
|
856
|
-
<text className={"np-time"} style={{
|
|
845
|
+
<text className={"np-time t2"} style={{
|
|
857
846
|
fontWeight: fontWeight.regular,
|
|
858
847
|
color: colors.fg.neutralSubtle
|
|
859
848
|
}}>
|
|
860
849
|
{formatDuration(network.duration)}
|
|
861
850
|
</text>
|
|
862
|
-
<text className={"np-time"} style={{
|
|
851
|
+
<text className={"np-time t2"} style={{
|
|
863
852
|
fontWeight: fontWeight.regular,
|
|
864
853
|
color: colors.fg.neutralSubtle
|
|
865
854
|
}}>
|
|
@@ -867,7 +856,7 @@ const NetworkPanel = ({ networks, clearNetworks }) => {
|
|
|
867
856
|
</text>
|
|
868
857
|
</view>
|
|
869
858
|
|
|
870
|
-
<text className={"np-path"} style={{
|
|
859
|
+
<text className={"np-path t3"} style={{
|
|
871
860
|
fontWeight: fontWeight.regular,
|
|
872
861
|
color: colors.fg.neutral
|
|
873
862
|
}} bindtap={() => setSelectedId(selectedId === network.id ? null : network.id)}>
|
|
@@ -878,7 +867,7 @@ const NetworkPanel = ({ networks, clearNetworks }) => {
|
|
|
878
867
|
{}
|
|
879
868
|
<view className={"np-tabs"}>
|
|
880
869
|
<view className={"np-tab"} style={{ backgroundColor: activeTab === "general" ? colors.bg.neutralWeak : void 0 }} bindtap={() => setActiveTab("general")}>
|
|
881
|
-
<text className={"np-tabText"} style={{
|
|
870
|
+
<text className={"np-tabText t4"} style={{
|
|
882
871
|
fontWeight: fontWeight.medium,
|
|
883
872
|
color: activeTab === "general" ? colors.fg.neutral : colors.fg.neutralSubtle
|
|
884
873
|
}}>
|
|
@@ -886,7 +875,7 @@ const NetworkPanel = ({ networks, clearNetworks }) => {
|
|
|
886
875
|
</text>
|
|
887
876
|
</view>
|
|
888
877
|
<view className={"np-tab"} style={{ backgroundColor: activeTab === "request" ? colors.bg.neutralWeak : void 0 }} bindtap={() => setActiveTab("request")}>
|
|
889
|
-
<text className={"np-tabText"} style={{
|
|
878
|
+
<text className={"np-tabText t4"} style={{
|
|
890
879
|
fontWeight: fontWeight.medium,
|
|
891
880
|
color: activeTab === "request" ? colors.fg.neutral : colors.fg.neutralSubtle
|
|
892
881
|
}}>
|
|
@@ -894,7 +883,7 @@ const NetworkPanel = ({ networks, clearNetworks }) => {
|
|
|
894
883
|
</text>
|
|
895
884
|
</view>
|
|
896
885
|
<view className={"np-tab"} style={{ backgroundColor: activeTab === "response" ? colors.bg.neutralWeak : void 0 }} bindtap={() => setActiveTab("response")}>
|
|
897
|
-
<text className={"np-tabText"} style={{
|
|
886
|
+
<text className={"np-tabText t4"} style={{
|
|
898
887
|
fontWeight: fontWeight.medium,
|
|
899
888
|
color: activeTab === "response" ? colors.fg.neutral : colors.fg.neutralSubtle
|
|
900
889
|
}}>
|
|
@@ -907,13 +896,13 @@ const NetworkPanel = ({ networks, clearNetworks }) => {
|
|
|
907
896
|
<view className={"np-tabContent"}>
|
|
908
897
|
{activeTab === "general" && <view className={"np-table"}>
|
|
909
898
|
{getGeneralInfo(network).map((item) => <view key={item.key} className={"np-tableRow"} style={{ backgroundColor: colors.bg.neutralWeak }}>
|
|
910
|
-
<text className={"np-tableKey"} style={{
|
|
899
|
+
<text className={"np-tableKey t3"} style={{
|
|
911
900
|
fontWeight: fontWeight.bold,
|
|
912
901
|
color: colors.fg.neutralSubtle
|
|
913
902
|
}}>
|
|
914
903
|
{item.key}
|
|
915
904
|
</text>
|
|
916
|
-
<text className={"np-tableValue"} style={{
|
|
905
|
+
<text className={"np-tableValue t3"} style={{
|
|
917
906
|
fontWeight: fontWeight.regular,
|
|
918
907
|
color: colors.fg.neutral
|
|
919
908
|
}}>
|
|
@@ -929,7 +918,7 @@ const NetworkPanel = ({ networks, clearNetworks }) => {
|
|
|
929
918
|
</view>}
|
|
930
919
|
</view>
|
|
931
920
|
</list-item>)}
|
|
932
|
-
</
|
|
921
|
+
</list>}
|
|
933
922
|
</view>;
|
|
934
923
|
};
|
|
935
924
|
|
|
@@ -989,14 +978,14 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
989
978
|
const [selectedId, setSelectedId] = (0, _lynx_js_react.useState)(null);
|
|
990
979
|
if (performances.length === 0) return <view className={"pp-container"}>
|
|
991
980
|
<view className={"pp-header"} style={{ borderBottomColor: colors.stroke.neutralSubtle }}>
|
|
992
|
-
<text className={"pp-count"} style={{
|
|
981
|
+
<text className={"pp-count t3"} style={{
|
|
993
982
|
fontWeight: fontWeight.regular,
|
|
994
983
|
color: colors.fg.neutralSubtle
|
|
995
984
|
}}>
|
|
996
985
|
0 entries
|
|
997
986
|
</text>
|
|
998
987
|
<view bindtap={clearPerformances} className={"pp-clearButton"} style={{ backgroundColor: colors.bg.neutralWeak }}>
|
|
999
|
-
<text className={"pp-clearButtonText"} style={{
|
|
988
|
+
<text className={"pp-clearButtonText t3"} style={{
|
|
1000
989
|
fontWeight: fontWeight.medium,
|
|
1001
990
|
color: colors.fg.neutralMuted
|
|
1002
991
|
}}>
|
|
@@ -1005,7 +994,7 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1005
994
|
</view>
|
|
1006
995
|
</view>
|
|
1007
996
|
<view className={"pp-placeholder"}>
|
|
1008
|
-
<text className={"pp-placeholderText"} style={{
|
|
997
|
+
<text className={"pp-placeholderText t4"} style={{
|
|
1009
998
|
fontWeight: fontWeight.regular,
|
|
1010
999
|
color: colors.fg.disabled
|
|
1011
1000
|
}}>
|
|
@@ -1015,14 +1004,14 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1015
1004
|
</view>;
|
|
1016
1005
|
return <view className={"pp-container"}>
|
|
1017
1006
|
<view className={"pp-header"} style={{ borderBottomColor: colors.stroke.neutralSubtle }}>
|
|
1018
|
-
<text className={"pp-count"} style={{
|
|
1007
|
+
<text className={"pp-count t3"} style={{
|
|
1019
1008
|
fontWeight: fontWeight.regular,
|
|
1020
1009
|
color: colors.fg.neutralSubtle
|
|
1021
1010
|
}}>
|
|
1022
1011
|
{performances.length} entries
|
|
1023
1012
|
</text>
|
|
1024
1013
|
<view bindtap={clearPerformances} className={"pp-clearButton"} style={{ backgroundColor: colors.bg.neutralWeak }}>
|
|
1025
|
-
<text className={"pp-clearButtonText"} style={{
|
|
1014
|
+
<text className={"pp-clearButtonText t3"} style={{
|
|
1026
1015
|
fontWeight: fontWeight.medium,
|
|
1027
1016
|
color: colors.fg.neutralMuted
|
|
1028
1017
|
}}>
|
|
@@ -1031,7 +1020,7 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1031
1020
|
</view>
|
|
1032
1021
|
</view>
|
|
1033
1022
|
|
|
1034
|
-
<
|
|
1023
|
+
<list scroll-orientation="vertical" className={"pp-list"}>
|
|
1035
1024
|
{performances.map((perf) => {
|
|
1036
1025
|
const isMetricFcp = isMetricFcpEntry(perf);
|
|
1037
1026
|
const fcpMetrics = extractFcpMetrics(perf);
|
|
@@ -1040,19 +1029,19 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1040
1029
|
return <list-item key={perf.id} item-key={perf.id}>
|
|
1041
1030
|
<view className={"pp-item"} style={{ borderBottomColor: colors.stroke.neutralWeak }}>
|
|
1042
1031
|
<view className={"pp-itemHeader"} bindtap={() => setSelectedId(selectedId === perf.id ? null : perf.id)}>
|
|
1043
|
-
<text className={"pp-entryType"} style={{
|
|
1032
|
+
<text className={"pp-entryType t2"} style={{
|
|
1044
1033
|
fontWeight: fontWeight.bold,
|
|
1045
1034
|
...getEntryTypeColors(colors, perf.entryType)
|
|
1046
1035
|
}}>
|
|
1047
1036
|
{perf.entryType}
|
|
1048
1037
|
</text>
|
|
1049
|
-
<text className={"pp-entryName"} style={{
|
|
1038
|
+
<text className={"pp-entryName t2"} style={{
|
|
1050
1039
|
fontWeight: fontWeight.medium,
|
|
1051
1040
|
color: colors.fg.neutral
|
|
1052
1041
|
}}>
|
|
1053
1042
|
{perf.name}
|
|
1054
1043
|
</text>
|
|
1055
|
-
<text className={"pp-timestamp"} style={{
|
|
1044
|
+
<text className={"pp-timestamp t2"} style={{
|
|
1056
1045
|
fontWeight: fontWeight.regular,
|
|
1057
1046
|
color: colors.fg.neutralSubtle
|
|
1058
1047
|
}}>
|
|
@@ -1061,7 +1050,7 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1061
1050
|
</view>
|
|
1062
1051
|
|
|
1063
1052
|
<view bindtap={() => setSelectedId(selectedId === perf.id ? null : perf.id)}>
|
|
1064
|
-
{isMetricFcp && primaryFcp && <text className={"pp-fcpHighlight"} style={{
|
|
1053
|
+
{isMetricFcp && primaryFcp && <text className={"pp-fcpHighlight t3"} style={{
|
|
1065
1054
|
fontWeight: fontWeight.bold,
|
|
1066
1055
|
color: colors.palette.blue600,
|
|
1067
1056
|
backgroundColor: colors.palette.blue100
|
|
@@ -1074,20 +1063,20 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1074
1063
|
{isMetricFcp && fcpMetrics && <view className={"pp-fcpSection"}>
|
|
1075
1064
|
{totalFcp !== void 0 && <view className={"pp-fcpMetric"} style={{ backgroundColor: colors.bg.layerDefault }}>
|
|
1076
1065
|
<view className={"pp-fcpMetricHeader"}>
|
|
1077
|
-
<text className={"pp-fcpMetricName"} style={{
|
|
1066
|
+
<text className={"pp-fcpMetricName t2"} style={{
|
|
1078
1067
|
fontWeight: fontWeight.bold,
|
|
1079
1068
|
color: colors.fg.neutral
|
|
1080
1069
|
}}>
|
|
1081
1070
|
전체 FCP
|
|
1082
1071
|
</text>
|
|
1083
|
-
<text className={"pp-fcpMetricValue"} style={{
|
|
1072
|
+
<text className={"pp-fcpMetricValue t1"} style={{
|
|
1084
1073
|
fontWeight: fontWeight.bold,
|
|
1085
1074
|
color: colors.palette.blue600
|
|
1086
1075
|
}}>
|
|
1087
1076
|
{formatDuration(totalFcp.duration)}
|
|
1088
1077
|
</text>
|
|
1089
1078
|
</view>
|
|
1090
|
-
<text className={"pp-fcpMetricDescription"} style={{
|
|
1079
|
+
<text className={"pp-fcpMetricDescription t3"} style={{
|
|
1091
1080
|
fontWeight: fontWeight.regular,
|
|
1092
1081
|
color: colors.fg.neutralSubtle
|
|
1093
1082
|
}}>
|
|
@@ -1098,20 +1087,20 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1098
1087
|
|
|
1099
1088
|
{lynxFcp !== void 0 && <view className={"pp-fcpMetric"} style={{ backgroundColor: colors.bg.layerDefault }}>
|
|
1100
1089
|
<view className={"pp-fcpMetricHeader"}>
|
|
1101
|
-
<text className={"pp-fcpMetricName"} style={{
|
|
1090
|
+
<text className={"pp-fcpMetricName t2"} style={{
|
|
1102
1091
|
fontWeight: fontWeight.bold,
|
|
1103
1092
|
color: colors.fg.neutral
|
|
1104
1093
|
}}>
|
|
1105
1094
|
LynxFCP
|
|
1106
1095
|
</text>
|
|
1107
|
-
<text className={"pp-fcpMetricValue"} style={{
|
|
1096
|
+
<text className={"pp-fcpMetricValue t1"} style={{
|
|
1108
1097
|
fontWeight: fontWeight.bold,
|
|
1109
1098
|
color: colors.palette.blue600
|
|
1110
1099
|
}}>
|
|
1111
1100
|
{formatDuration(lynxFcp.duration)}
|
|
1112
1101
|
</text>
|
|
1113
1102
|
</view>
|
|
1114
|
-
<text className={"pp-fcpMetricDescription"} style={{
|
|
1103
|
+
<text className={"pp-fcpMetricDescription t3"} style={{
|
|
1115
1104
|
fontWeight: fontWeight.regular,
|
|
1116
1105
|
color: colors.fg.neutralSubtle
|
|
1117
1106
|
}}>
|
|
@@ -1121,20 +1110,20 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1121
1110
|
|
|
1122
1111
|
{fcp !== void 0 && <view className={"pp-fcpMetric"} style={{ backgroundColor: colors.bg.layerDefault }}>
|
|
1123
1112
|
<view className={"pp-fcpMetricHeader"}>
|
|
1124
|
-
<text className={"pp-fcpMetricName"} style={{
|
|
1113
|
+
<text className={"pp-fcpMetricName t2"} style={{
|
|
1125
1114
|
fontWeight: fontWeight.bold,
|
|
1126
1115
|
color: colors.fg.neutral
|
|
1127
1116
|
}}>
|
|
1128
1117
|
렌더링 FCP
|
|
1129
1118
|
</text>
|
|
1130
|
-
<text className={"pp-fcpMetricValue"} style={{
|
|
1119
|
+
<text className={"pp-fcpMetricValue t1"} style={{
|
|
1131
1120
|
fontWeight: fontWeight.bold,
|
|
1132
1121
|
color: colors.palette.blue600
|
|
1133
1122
|
}}>
|
|
1134
1123
|
{formatDuration(fcp.duration)}
|
|
1135
1124
|
</text>
|
|
1136
1125
|
</view>
|
|
1137
|
-
<text className={"pp-fcpMetricDescription"} style={{
|
|
1126
|
+
<text className={"pp-fcpMetricDescription t3"} style={{
|
|
1138
1127
|
fontWeight: fontWeight.regular,
|
|
1139
1128
|
color: colors.fg.neutralSubtle
|
|
1140
1129
|
}}>
|
|
@@ -1144,13 +1133,13 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1144
1133
|
</view>}
|
|
1145
1134
|
|
|
1146
1135
|
{!!perf.rawEntry && <view className={"pp-rawEntrySection"} style={{ backgroundColor: colors.bg.neutralWeak }}>
|
|
1147
|
-
<text className={"pp-detailTitle"} style={{
|
|
1136
|
+
<text className={"pp-detailTitle t3"} style={{
|
|
1148
1137
|
fontWeight: fontWeight.bold,
|
|
1149
1138
|
color: colors.fg.neutral
|
|
1150
1139
|
}}>
|
|
1151
1140
|
Raw Entry
|
|
1152
1141
|
</text>
|
|
1153
|
-
<text className={"pp-rawEntry"} style={{
|
|
1142
|
+
<text className={"pp-rawEntry t3"} style={{
|
|
1154
1143
|
fontWeight: fontWeight.regular,
|
|
1155
1144
|
color: colors.fg.neutralSubtle
|
|
1156
1145
|
}}>
|
|
@@ -1161,7 +1150,7 @@ const PerformancePanel = ({ performances, clearPerformances }) => {
|
|
|
1161
1150
|
</view>
|
|
1162
1151
|
</list-item>;
|
|
1163
1152
|
})}
|
|
1164
|
-
</
|
|
1153
|
+
</list>
|
|
1165
1154
|
</view>;
|
|
1166
1155
|
};
|
|
1167
1156
|
|
|
@@ -1185,7 +1174,7 @@ function Tabs(props) {
|
|
|
1185
1174
|
}
|
|
1186
1175
|
}).exec();
|
|
1187
1176
|
}}>
|
|
1188
|
-
<text className={`tabs-triggerButtonText${tabSize ? `
|
|
1177
|
+
<text className={`tabs-triggerButtonText${tabSize ? ` ${tabSize}` : ""}`} style={{
|
|
1189
1178
|
fontWeight: fontWeight.bold,
|
|
1190
1179
|
color: i === activeIndex ? colors.fg.neutral : colors.fg.neutralSubtle
|
|
1191
1180
|
}}>
|
|
@@ -1352,24 +1341,22 @@ const FloatingButton = ({ bindtap, children }) => {
|
|
|
1352
1341
|
}
|
|
1353
1342
|
};
|
|
1354
1343
|
const isDragging = phase === "dragging";
|
|
1355
|
-
return
|
|
1356
|
-
<view className={"fb-wrapper"} consume-slide-event={[[-180, 180]]} style={{
|
|
1344
|
+
return <view className={"fb-wrapper"} consume-slide-event={[[-180, 180]]} style={{
|
|
1357
1345
|
right: `${right}px`,
|
|
1358
1346
|
bottom: `${bottom}px`,
|
|
1359
1347
|
transform: isDragging ? "scale(1.05)" : "scale(1)",
|
|
1360
1348
|
transition: `transform ${duration.d4} cubic-bezier(0.4, 0, 0.2, 1)`
|
|
1361
1349
|
}} {...handlers}>
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
</view>
|
|
1366
|
-
<view className={"fb-reloadButton"} style={{ backgroundColor: colors.palette.green600 }} catchtouchstart={() => clearTimer()} bindtap={handleReload}>
|
|
1367
|
-
<text className={"fb-reloadIcon"} style={{ color: colors.palette.staticWhite }}>
|
|
1368
|
-
{"↻"}
|
|
1369
|
-
</text>
|
|
1370
|
-
</view>
|
|
1350
|
+
<view className={"fb-button"} style={{ backgroundColor: colors.palette.green600 }}>
|
|
1351
|
+
{children}
|
|
1352
|
+
<view className={"fb-shineOverlay"} style={SHINE_STYLES[phase]} />
|
|
1371
1353
|
</view>
|
|
1372
|
-
|
|
1354
|
+
<view className={"fb-reloadButton"} style={{ backgroundColor: colors.palette.green600 }} catchtouchstart={() => clearTimer()} bindtap={handleReload}>
|
|
1355
|
+
<text className={"fb-reloadIcon"} style={{ color: colors.palette.staticWhite }}>
|
|
1356
|
+
{"↻"}
|
|
1357
|
+
</text>
|
|
1358
|
+
</view>
|
|
1359
|
+
</view>;
|
|
1373
1360
|
};
|
|
1374
1361
|
|
|
1375
1362
|
//#endregion
|
|
@@ -1413,11 +1400,13 @@ const LynxConsole = (0, _lynx_js_react.forwardRef)(({ theme = "light", safeAreaI
|
|
|
1413
1400
|
color: colors.fg.neutral
|
|
1414
1401
|
}}>
|
|
1415
1402
|
<FloatingButton bindtap={handleOpenBottomSheet}>
|
|
1416
|
-
<text className="fb-title" style={{
|
|
1403
|
+
<text className="fb-title t4" style={{
|
|
1417
1404
|
fontWeight: "400",
|
|
1418
1405
|
color: colors.palette.staticWhite
|
|
1419
|
-
}}>
|
|
1420
|
-
|
|
1406
|
+
}}>
|
|
1407
|
+
LynxConsole
|
|
1408
|
+
</text>
|
|
1409
|
+
<text className="fb-subtitle t3" style={{
|
|
1421
1410
|
fontWeight: "400",
|
|
1422
1411
|
color: colors.palette.staticWhite
|
|
1423
1412
|
}}>
|