@tangle-network/brand 1.20.0 → 1.21.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/CHANGELOG.md +6 -0
- package/bin/drift-baseline.json +203 -110
- package/bin/tangle-drift.mjs +76 -4
- package/package.json +1 -1
- package/src/styles/globals.css +10 -0
- package/src/styles/legacy-light.css +6 -1
- package/src/styles/named-themes.css +1 -0
- package/src/styles/theme.css +1 -0
- package/src/styles/tokens.css +11 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.21.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 02b2d30: One shell header height and one transcript type scale. Brand adds `--shell-header-height` (56px, utility `h-shell-header`) and `--shell-inset-gutter` so every shell header row shares one bottom divider, and `--transcript-font-size` / `--transcript-line-height` with the `tangle-transcript-text` rule. UI's `AgentTimeline`, `UserMessage` and `ChatMessage` set the person's and the agent's message text with the same `TRANSCRIPT_TEXT` treatment (exported), so they differ only by alignment and surface; an agent message no longer renders at a different leading from the person's. `tangle-drift` gates two new metrics: `header_height_literal` (a header row given its own height) and `transcript_type_override` (product CSS restyling transcript text).
|
|
8
|
+
|
|
3
9
|
## 1.20.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
package/bin/drift-baseline.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"src"
|
|
6
6
|
],
|
|
7
7
|
"branch": "master",
|
|
8
|
-
"head": "
|
|
8
|
+
"head": "88cf5074ea42",
|
|
9
9
|
"tsx_files": 33,
|
|
10
10
|
"css_files": 5,
|
|
11
11
|
"versions": {
|
|
@@ -89,7 +89,13 @@
|
|
|
89
89
|
"src/pages/terms-of-service.astro": 1,
|
|
90
90
|
"src/pages/what-is-tangle.astro": 1
|
|
91
91
|
},
|
|
92
|
-
"shell_override": {}
|
|
92
|
+
"shell_override": {},
|
|
93
|
+
"header_height_literal": {
|
|
94
|
+
"src/components/RunStory.astro": 1,
|
|
95
|
+
"src/components/quickstart-code.css": 2,
|
|
96
|
+
"src/pages/index.astro": 1
|
|
97
|
+
},
|
|
98
|
+
"transcript_type_override": {}
|
|
93
99
|
},
|
|
94
100
|
"raw_palette": 0,
|
|
95
101
|
"hex": 29,
|
|
@@ -102,6 +108,8 @@
|
|
|
102
108
|
"control_override": 0,
|
|
103
109
|
"page_heading": 16,
|
|
104
110
|
"shell_override": 0,
|
|
111
|
+
"header_height_literal": 4,
|
|
112
|
+
"transcript_type_override": 0,
|
|
105
113
|
"palette_top": [],
|
|
106
114
|
"local_primitives": {}
|
|
107
115
|
},
|
|
@@ -207,7 +215,9 @@
|
|
|
207
215
|
},
|
|
208
216
|
"shell_override": {
|
|
209
217
|
"products/sandbox/web/src/pages/dashboard/sandbox-session/AgentWorkspace.tsx": 6
|
|
210
|
-
}
|
|
218
|
+
},
|
|
219
|
+
"header_height_literal": {},
|
|
220
|
+
"transcript_type_override": {}
|
|
211
221
|
},
|
|
212
222
|
"raw_palette": 0,
|
|
213
223
|
"hex": 21,
|
|
@@ -221,7 +231,9 @@
|
|
|
221
231
|
"page_heading": 11,
|
|
222
232
|
"shell_override": 6,
|
|
223
233
|
"palette_top": [],
|
|
224
|
-
"local_primitives": {}
|
|
234
|
+
"local_primitives": {},
|
|
235
|
+
"header_height_literal": 0,
|
|
236
|
+
"transcript_type_override": 0
|
|
225
237
|
},
|
|
226
238
|
"platform": {
|
|
227
239
|
"repo": "tangle-network/agent-dev-container",
|
|
@@ -454,7 +466,12 @@
|
|
|
454
466
|
},
|
|
455
467
|
"shell_override": {
|
|
456
468
|
"products/platform/web/src/client/components/Icons.tsx": 1
|
|
457
|
-
}
|
|
469
|
+
},
|
|
470
|
+
"header_height_literal": {
|
|
471
|
+
"products/platform/web/src/client/components/NavigationFrame.tsx": 1,
|
|
472
|
+
"products/platform/web/src/client/vault.css": 1
|
|
473
|
+
},
|
|
474
|
+
"transcript_type_override": {}
|
|
458
475
|
},
|
|
459
476
|
"raw_palette": 0,
|
|
460
477
|
"hex": 24,
|
|
@@ -475,7 +492,9 @@
|
|
|
475
492
|
"native_control": 444,
|
|
476
493
|
"control_override": 0,
|
|
477
494
|
"page_heading": 37,
|
|
478
|
-
"shell_override": 1
|
|
495
|
+
"shell_override": 1,
|
|
496
|
+
"header_height_literal": 2,
|
|
497
|
+
"transcript_type_override": 0
|
|
479
498
|
},
|
|
480
499
|
"intelligence": {
|
|
481
500
|
"repo": "tangle-network/agent-dev-container",
|
|
@@ -483,7 +502,7 @@
|
|
|
483
502
|
"products/intelligence/web"
|
|
484
503
|
],
|
|
485
504
|
"branch": "develop",
|
|
486
|
-
"head": "
|
|
505
|
+
"head": "abe2f910be0c",
|
|
487
506
|
"tsx_files": 83,
|
|
488
507
|
"css_files": 1,
|
|
489
508
|
"versions": {
|
|
@@ -511,7 +530,7 @@
|
|
|
511
530
|
"hex": {},
|
|
512
531
|
"arbitrary_color": {},
|
|
513
532
|
"css_var_defs": {
|
|
514
|
-
"products/intelligence/web/src/globals.css":
|
|
533
|
+
"products/intelligence/web/src/globals.css": 5
|
|
515
534
|
},
|
|
516
535
|
"local_primitive_count": {},
|
|
517
536
|
"font_size_literal": {
|
|
@@ -562,12 +581,14 @@
|
|
|
562
581
|
"products/intelligence/web/src/pages/TraceDetail.tsx": 1,
|
|
563
582
|
"products/intelligence/web/src/pages/spine/runs.tsx": 1
|
|
564
583
|
},
|
|
565
|
-
"shell_override": {}
|
|
584
|
+
"shell_override": {},
|
|
585
|
+
"header_height_literal": {},
|
|
586
|
+
"transcript_type_override": {}
|
|
566
587
|
},
|
|
567
588
|
"raw_palette": 0,
|
|
568
589
|
"hex": 0,
|
|
569
590
|
"arbitrary_color": 0,
|
|
570
|
-
"css_var_defs":
|
|
591
|
+
"css_var_defs": 5,
|
|
571
592
|
"local_primitive_count": 0,
|
|
572
593
|
"font_size_literal": 14,
|
|
573
594
|
"size_literal": 3,
|
|
@@ -575,6 +596,8 @@
|
|
|
575
596
|
"control_override": 0,
|
|
576
597
|
"page_heading": 7,
|
|
577
598
|
"shell_override": 0,
|
|
599
|
+
"header_height_literal": 0,
|
|
600
|
+
"transcript_type_override": 0,
|
|
578
601
|
"palette_top": [],
|
|
579
602
|
"local_primitives": {}
|
|
580
603
|
},
|
|
@@ -584,28 +607,28 @@
|
|
|
584
607
|
""
|
|
585
608
|
],
|
|
586
609
|
"branch": "master",
|
|
587
|
-
"head": "
|
|
588
|
-
"tsx_files":
|
|
610
|
+
"head": "9c6b7a92901d",
|
|
611
|
+
"tsx_files": 134,
|
|
589
612
|
"css_files": 3,
|
|
590
613
|
"versions": {
|
|
591
614
|
"agent-app": [
|
|
592
|
-
"0.60.
|
|
615
|
+
"0.60.54"
|
|
593
616
|
],
|
|
594
617
|
"brand": [
|
|
595
|
-
"1.
|
|
618
|
+
"1.20.0"
|
|
596
619
|
],
|
|
597
620
|
"sandbox-ui": [
|
|
598
|
-
"0.
|
|
621
|
+
"0.132.1"
|
|
599
622
|
],
|
|
600
623
|
"ui": [
|
|
601
|
-
"11.
|
|
624
|
+
"11.31.2"
|
|
602
625
|
]
|
|
603
626
|
},
|
|
604
627
|
"importing_files": {
|
|
605
628
|
"brand": 3,
|
|
606
|
-
"ui":
|
|
607
|
-
"sandbox-ui":
|
|
608
|
-
"agent-app":
|
|
629
|
+
"ui": 9,
|
|
630
|
+
"sandbox-ui": 113,
|
|
631
|
+
"agent-app": 232
|
|
609
632
|
},
|
|
610
633
|
"by_file": {
|
|
611
634
|
"raw_palette": {},
|
|
@@ -642,9 +665,15 @@
|
|
|
642
665
|
},
|
|
643
666
|
"shell_override": {
|
|
644
667
|
"src/components/vault-chat-rail.tsx": 2,
|
|
645
|
-
"src/components/workspace-chat-surface.tsx": 1,
|
|
646
668
|
"src/routes/app.workspace.vault.tsx": 2
|
|
647
|
-
}
|
|
669
|
+
},
|
|
670
|
+
"header_height_literal": {
|
|
671
|
+
"src/components/publishing/publish-header.tsx": 1,
|
|
672
|
+
"src/components/vault-chat-rail.tsx": 1,
|
|
673
|
+
"src/routes/app.workspace.designs.$documentId.tsx": 1,
|
|
674
|
+
"src/routes/app.workspace.sequences.$sequenceId.tsx": 1
|
|
675
|
+
},
|
|
676
|
+
"transcript_type_override": {}
|
|
648
677
|
},
|
|
649
678
|
"raw_palette": 0,
|
|
650
679
|
"hex": 0,
|
|
@@ -656,7 +685,9 @@
|
|
|
656
685
|
"native_control": 0,
|
|
657
686
|
"control_override": 4,
|
|
658
687
|
"page_heading": 18,
|
|
659
|
-
"shell_override":
|
|
688
|
+
"shell_override": 4,
|
|
689
|
+
"header_height_literal": 4,
|
|
690
|
+
"transcript_type_override": 0,
|
|
660
691
|
"palette_top": [],
|
|
661
692
|
"local_primitives": {}
|
|
662
693
|
},
|
|
@@ -666,40 +697,40 @@
|
|
|
666
697
|
"apps/web"
|
|
667
698
|
],
|
|
668
699
|
"branch": "main",
|
|
669
|
-
"head": "
|
|
670
|
-
"tsx_files":
|
|
700
|
+
"head": "54448faf7404",
|
|
701
|
+
"tsx_files": 58,
|
|
671
702
|
"css_files": 1,
|
|
672
703
|
"versions": {
|
|
673
704
|
"agent-app": [
|
|
674
|
-
"0.
|
|
705
|
+
"0.60.19"
|
|
675
706
|
],
|
|
676
707
|
"brand": [
|
|
677
|
-
"1.
|
|
708
|
+
"1.20.0"
|
|
678
709
|
],
|
|
679
710
|
"override:agent-app": [
|
|
680
|
-
"0.
|
|
711
|
+
"0.60.19"
|
|
681
712
|
],
|
|
682
713
|
"override:brand": [
|
|
683
|
-
"1.
|
|
714
|
+
"1.20.0"
|
|
684
715
|
],
|
|
685
716
|
"override:sandbox-ui": [
|
|
686
|
-
"0.
|
|
717
|
+
"0.132.1"
|
|
687
718
|
],
|
|
688
719
|
"override:ui": [
|
|
689
|
-
"11.
|
|
720
|
+
"11.31.2"
|
|
690
721
|
],
|
|
691
722
|
"sandbox-ui": [
|
|
692
|
-
"0.
|
|
723
|
+
"0.132.1"
|
|
693
724
|
],
|
|
694
725
|
"ui": [
|
|
695
|
-
"11.
|
|
726
|
+
"11.31.2"
|
|
696
727
|
]
|
|
697
728
|
},
|
|
698
729
|
"importing_files": {
|
|
699
730
|
"brand": 1,
|
|
700
|
-
"ui":
|
|
731
|
+
"ui": 3,
|
|
701
732
|
"sandbox-ui": 38,
|
|
702
|
-
"agent-app":
|
|
733
|
+
"agent-app": 105
|
|
703
734
|
},
|
|
704
735
|
"by_file": {
|
|
705
736
|
"raw_palette": {},
|
|
@@ -721,7 +752,12 @@
|
|
|
721
752
|
"apps/web/src/routes/app.$sessionId.tsx": 1,
|
|
722
753
|
"apps/web/src/routes/app.billing.tsx": 2
|
|
723
754
|
},
|
|
724
|
-
"shell_override": {}
|
|
755
|
+
"shell_override": {},
|
|
756
|
+
"header_height_literal": {
|
|
757
|
+
"apps/web/src/components/legal-page.tsx": 1,
|
|
758
|
+
"apps/web/src/routes/app.$sessionId.tsx": 1
|
|
759
|
+
},
|
|
760
|
+
"transcript_type_override": {}
|
|
725
761
|
},
|
|
726
762
|
"raw_palette": 0,
|
|
727
763
|
"hex": 0,
|
|
@@ -734,6 +770,8 @@
|
|
|
734
770
|
"control_override": 3,
|
|
735
771
|
"page_heading": 6,
|
|
736
772
|
"shell_override": 0,
|
|
773
|
+
"header_height_literal": 2,
|
|
774
|
+
"transcript_type_override": 0,
|
|
737
775
|
"palette_top": [],
|
|
738
776
|
"local_primitives": {}
|
|
739
777
|
},
|
|
@@ -743,28 +781,28 @@
|
|
|
743
781
|
""
|
|
744
782
|
],
|
|
745
783
|
"branch": "main",
|
|
746
|
-
"head": "
|
|
784
|
+
"head": "075784fc5bc6",
|
|
747
785
|
"tsx_files": 63,
|
|
748
786
|
"css_files": 1,
|
|
749
787
|
"versions": {
|
|
750
788
|
"agent-app": [
|
|
751
|
-
"0.
|
|
789
|
+
"0.60.33"
|
|
752
790
|
],
|
|
753
791
|
"brand": [
|
|
754
|
-
"1.
|
|
792
|
+
"1.20.0"
|
|
755
793
|
],
|
|
756
794
|
"sandbox-ui": [
|
|
757
|
-
"0.
|
|
795
|
+
"0.132.1"
|
|
758
796
|
],
|
|
759
797
|
"ui": [
|
|
760
|
-
"11.
|
|
798
|
+
"11.31.2"
|
|
761
799
|
]
|
|
762
800
|
},
|
|
763
801
|
"importing_files": {
|
|
764
802
|
"brand": 2,
|
|
765
803
|
"ui": 33,
|
|
766
804
|
"sandbox-ui": 25,
|
|
767
|
-
"agent-app":
|
|
805
|
+
"agent-app": 125
|
|
768
806
|
},
|
|
769
807
|
"by_file": {
|
|
770
808
|
"raw_palette": {},
|
|
@@ -787,7 +825,9 @@
|
|
|
787
825
|
"src/routes/app.workspace.contracts.redline.tsx": 1,
|
|
788
826
|
"src/routes/app.workspace.templates.tsx": 1
|
|
789
827
|
},
|
|
790
|
-
"shell_override": {}
|
|
828
|
+
"shell_override": {},
|
|
829
|
+
"header_height_literal": {},
|
|
830
|
+
"transcript_type_override": {}
|
|
791
831
|
},
|
|
792
832
|
"raw_palette": 0,
|
|
793
833
|
"hex": 0,
|
|
@@ -800,6 +840,8 @@
|
|
|
800
840
|
"control_override": 0,
|
|
801
841
|
"page_heading": 6,
|
|
802
842
|
"shell_override": 0,
|
|
843
|
+
"header_height_literal": 0,
|
|
844
|
+
"transcript_type_override": 0,
|
|
803
845
|
"palette_top": [],
|
|
804
846
|
"local_primitives": {}
|
|
805
847
|
},
|
|
@@ -809,18 +851,18 @@
|
|
|
809
851
|
""
|
|
810
852
|
],
|
|
811
853
|
"branch": "main",
|
|
812
|
-
"head": "
|
|
854
|
+
"head": "5ce0764e4f58",
|
|
813
855
|
"tsx_files": 38,
|
|
814
856
|
"css_files": 1,
|
|
815
857
|
"versions": {
|
|
816
858
|
"agent-app": [
|
|
817
|
-
"0.
|
|
859
|
+
"0.60.16"
|
|
818
860
|
],
|
|
819
861
|
"brand": [
|
|
820
862
|
"1.19.4"
|
|
821
863
|
],
|
|
822
864
|
"sandbox-ui": [
|
|
823
|
-
"0.
|
|
865
|
+
"0.132.1"
|
|
824
866
|
],
|
|
825
867
|
"ui": [
|
|
826
868
|
"11.30.2"
|
|
@@ -830,7 +872,7 @@
|
|
|
830
872
|
"brand": 1,
|
|
831
873
|
"ui": 1,
|
|
832
874
|
"sandbox-ui": 27,
|
|
833
|
-
"agent-app":
|
|
875
|
+
"agent-app": 66
|
|
834
876
|
},
|
|
835
877
|
"by_file": {
|
|
836
878
|
"raw_palette": {
|
|
@@ -877,7 +919,9 @@
|
|
|
877
919
|
"src/routes/_index.tsx": 1,
|
|
878
920
|
"src/routes/app.workspace.chat.$threadId.tsx": 1
|
|
879
921
|
},
|
|
880
|
-
"shell_override": {}
|
|
922
|
+
"shell_override": {},
|
|
923
|
+
"header_height_literal": {},
|
|
924
|
+
"transcript_type_override": {}
|
|
881
925
|
},
|
|
882
926
|
"raw_palette": 72,
|
|
883
927
|
"hex": 148,
|
|
@@ -890,6 +934,8 @@
|
|
|
890
934
|
"control_override": 0,
|
|
891
935
|
"page_heading": 3,
|
|
892
936
|
"shell_override": 0,
|
|
937
|
+
"header_height_literal": 0,
|
|
938
|
+
"transcript_type_override": 0,
|
|
893
939
|
"palette_top": [
|
|
894
940
|
[
|
|
895
941
|
"text-amber-600",
|
|
@@ -924,28 +970,28 @@
|
|
|
924
970
|
""
|
|
925
971
|
],
|
|
926
972
|
"branch": "master",
|
|
927
|
-
"head": "
|
|
928
|
-
"tsx_files":
|
|
973
|
+
"head": "f0e2134d4499",
|
|
974
|
+
"tsx_files": 52,
|
|
929
975
|
"css_files": 1,
|
|
930
976
|
"versions": {
|
|
931
977
|
"agent-app": [
|
|
932
|
-
"0.
|
|
978
|
+
"0.60.33"
|
|
933
979
|
],
|
|
934
980
|
"brand": [
|
|
935
|
-
"1.
|
|
981
|
+
"1.20.0"
|
|
936
982
|
],
|
|
937
983
|
"sandbox-ui": [
|
|
938
|
-
"0.
|
|
984
|
+
"0.132.1"
|
|
939
985
|
],
|
|
940
986
|
"ui": [
|
|
941
|
-
"11.
|
|
987
|
+
"11.31.2"
|
|
942
988
|
]
|
|
943
989
|
},
|
|
944
990
|
"importing_files": {
|
|
945
991
|
"brand": 1,
|
|
946
992
|
"ui": 2,
|
|
947
993
|
"sandbox-ui": 36,
|
|
948
|
-
"agent-app":
|
|
994
|
+
"agent-app": 131
|
|
949
995
|
},
|
|
950
996
|
"by_file": {
|
|
951
997
|
"raw_palette": {},
|
|
@@ -969,7 +1015,12 @@
|
|
|
969
1015
|
"src/routes/app.workspace.tsx": 1,
|
|
970
1016
|
"src/routes/invite.$token.tsx": 1
|
|
971
1017
|
},
|
|
972
|
-
"shell_override": {}
|
|
1018
|
+
"shell_override": {},
|
|
1019
|
+
"header_height_literal": {
|
|
1020
|
+
"src/routes/app.workspace.designs.$documentId.tsx": 1,
|
|
1021
|
+
"src/routes/app.workspace.sequences.$sequenceId.tsx": 1
|
|
1022
|
+
},
|
|
1023
|
+
"transcript_type_override": {}
|
|
973
1024
|
},
|
|
974
1025
|
"raw_palette": 0,
|
|
975
1026
|
"hex": 0,
|
|
@@ -982,6 +1033,8 @@
|
|
|
982
1033
|
"control_override": 0,
|
|
983
1034
|
"page_heading": 4,
|
|
984
1035
|
"shell_override": 0,
|
|
1036
|
+
"header_height_literal": 2,
|
|
1037
|
+
"transcript_type_override": 0,
|
|
985
1038
|
"palette_top": [],
|
|
986
1039
|
"local_primitives": {}
|
|
987
1040
|
},
|
|
@@ -991,38 +1044,37 @@
|
|
|
991
1044
|
"apps/web"
|
|
992
1045
|
],
|
|
993
1046
|
"branch": "main",
|
|
994
|
-
"head": "
|
|
995
|
-
"tsx_files":
|
|
1047
|
+
"head": "ee37d9941628",
|
|
1048
|
+
"tsx_files": 18,
|
|
996
1049
|
"css_files": 8,
|
|
997
1050
|
"versions": {
|
|
998
1051
|
"agent-app": [
|
|
999
|
-
"0.
|
|
1000
|
-
"0.58.15"
|
|
1052
|
+
"0.60.19"
|
|
1001
1053
|
],
|
|
1002
1054
|
"brand": [
|
|
1003
|
-
"1.
|
|
1055
|
+
"1.20.0"
|
|
1004
1056
|
],
|
|
1005
1057
|
"override:brand": [
|
|
1006
|
-
"1.
|
|
1058
|
+
"1.20.0"
|
|
1007
1059
|
],
|
|
1008
1060
|
"override:sandbox-ui": [
|
|
1009
|
-
"0.
|
|
1061
|
+
"0.132.1"
|
|
1010
1062
|
],
|
|
1011
1063
|
"override:ui": [
|
|
1012
|
-
"11.
|
|
1064
|
+
"11.31.2"
|
|
1013
1065
|
],
|
|
1014
1066
|
"sandbox-ui": [
|
|
1015
|
-
"0.
|
|
1067
|
+
"0.132.1"
|
|
1016
1068
|
],
|
|
1017
1069
|
"ui": [
|
|
1018
|
-
"11.
|
|
1070
|
+
"11.31.2"
|
|
1019
1071
|
]
|
|
1020
1072
|
},
|
|
1021
1073
|
"importing_files": {
|
|
1022
1074
|
"brand": 1,
|
|
1023
1075
|
"ui": 8,
|
|
1024
1076
|
"sandbox-ui": 6,
|
|
1025
|
-
"agent-app":
|
|
1077
|
+
"agent-app": 7
|
|
1026
1078
|
},
|
|
1027
1079
|
"by_file": {
|
|
1028
1080
|
"raw_palette": {},
|
|
@@ -1062,10 +1114,17 @@
|
|
|
1062
1114
|
},
|
|
1063
1115
|
"control_override": {},
|
|
1064
1116
|
"page_heading": {
|
|
1065
|
-
"apps/web/src/ApiKeysPanel.tsx": 1,
|
|
1066
1117
|
"apps/web/src/assembly/AssemblyBooklet.tsx": 1
|
|
1067
1118
|
},
|
|
1068
|
-
"shell_override": {}
|
|
1119
|
+
"shell_override": {},
|
|
1120
|
+
"header_height_literal": {
|
|
1121
|
+
"apps/web/src/styles.css": 1,
|
|
1122
|
+
"apps/web/src/styles/canvas-nodes.css": 1,
|
|
1123
|
+
"apps/web/src/styles/provenance.css": 1
|
|
1124
|
+
},
|
|
1125
|
+
"transcript_type_override": {
|
|
1126
|
+
"apps/web/src/styles.css": 1
|
|
1127
|
+
}
|
|
1069
1128
|
},
|
|
1070
1129
|
"raw_palette": 0,
|
|
1071
1130
|
"hex": 0,
|
|
@@ -1076,8 +1135,10 @@
|
|
|
1076
1135
|
"size_literal": 0,
|
|
1077
1136
|
"native_control": 52,
|
|
1078
1137
|
"control_override": 0,
|
|
1079
|
-
"page_heading":
|
|
1138
|
+
"page_heading": 1,
|
|
1080
1139
|
"shell_override": 0,
|
|
1140
|
+
"header_height_literal": 3,
|
|
1141
|
+
"transcript_type_override": 1,
|
|
1081
1142
|
"palette_top": [],
|
|
1082
1143
|
"local_primitives": {}
|
|
1083
1144
|
},
|
|
@@ -1087,28 +1148,28 @@
|
|
|
1087
1148
|
""
|
|
1088
1149
|
],
|
|
1089
1150
|
"branch": "main",
|
|
1090
|
-
"head": "
|
|
1151
|
+
"head": "d9f4270af41c",
|
|
1091
1152
|
"tsx_files": 29,
|
|
1092
1153
|
"css_files": 14,
|
|
1093
1154
|
"versions": {
|
|
1094
1155
|
"agent-app": [
|
|
1095
|
-
"0.
|
|
1156
|
+
"0.60.23"
|
|
1096
1157
|
],
|
|
1097
1158
|
"brand": [
|
|
1098
|
-
"1.
|
|
1159
|
+
"1.20.0"
|
|
1099
1160
|
],
|
|
1100
1161
|
"sandbox-ui": [
|
|
1101
|
-
"0.
|
|
1162
|
+
"0.132.1"
|
|
1102
1163
|
],
|
|
1103
1164
|
"ui": [
|
|
1104
|
-
"11.
|
|
1165
|
+
"11.31.2"
|
|
1105
1166
|
]
|
|
1106
1167
|
},
|
|
1107
1168
|
"importing_files": {
|
|
1108
1169
|
"brand": 0,
|
|
1109
1170
|
"ui": 3,
|
|
1110
1171
|
"sandbox-ui": 26,
|
|
1111
|
-
"agent-app":
|
|
1172
|
+
"agent-app": 54
|
|
1112
1173
|
},
|
|
1113
1174
|
"by_file": {
|
|
1114
1175
|
"raw_palette": {},
|
|
@@ -1134,7 +1195,15 @@
|
|
|
1134
1195
|
"src/web/WorkspaceAppsView.tsx": 3,
|
|
1135
1196
|
"src/web/WorkspaceFilesView.tsx": 1
|
|
1136
1197
|
},
|
|
1137
|
-
"shell_override": {}
|
|
1198
|
+
"shell_override": {},
|
|
1199
|
+
"header_height_literal": {
|
|
1200
|
+
"src/ui/operator-dashboard.css": 2,
|
|
1201
|
+
"src/web/workspace-files-view.css": 1,
|
|
1202
|
+
"src/web/workspace.css": 5
|
|
1203
|
+
},
|
|
1204
|
+
"transcript_type_override": {
|
|
1205
|
+
"src/web/workspace.css": 1
|
|
1206
|
+
}
|
|
1138
1207
|
},
|
|
1139
1208
|
"raw_palette": 0,
|
|
1140
1209
|
"hex": 0,
|
|
@@ -1147,6 +1216,8 @@
|
|
|
1147
1216
|
"control_override": 0,
|
|
1148
1217
|
"page_heading": 12,
|
|
1149
1218
|
"shell_override": 0,
|
|
1219
|
+
"header_height_literal": 8,
|
|
1220
|
+
"transcript_type_override": 1,
|
|
1150
1221
|
"palette_top": [],
|
|
1151
1222
|
"local_primitives": {}
|
|
1152
1223
|
},
|
|
@@ -1232,7 +1303,9 @@
|
|
|
1232
1303
|
},
|
|
1233
1304
|
"shell_override": {
|
|
1234
1305
|
"packages/website/src/components/RedteamDashboardLayout.tsx": 4
|
|
1235
|
-
}
|
|
1306
|
+
},
|
|
1307
|
+
"header_height_literal": {},
|
|
1308
|
+
"transcript_type_override": {}
|
|
1236
1309
|
},
|
|
1237
1310
|
"raw_palette": 0,
|
|
1238
1311
|
"hex": 0,
|
|
@@ -1245,6 +1318,8 @@
|
|
|
1245
1318
|
"control_override": 12,
|
|
1246
1319
|
"page_heading": 10,
|
|
1247
1320
|
"shell_override": 4,
|
|
1321
|
+
"header_height_literal": 0,
|
|
1322
|
+
"transcript_type_override": 0,
|
|
1248
1323
|
"palette_top": [],
|
|
1249
1324
|
"local_primitives": {}
|
|
1250
1325
|
},
|
|
@@ -1325,7 +1400,9 @@
|
|
|
1325
1400
|
},
|
|
1326
1401
|
"shell_override": {
|
|
1327
1402
|
"src/components/layout/app-layout.tsx": 4
|
|
1328
|
-
}
|
|
1403
|
+
},
|
|
1404
|
+
"header_height_literal": {},
|
|
1405
|
+
"transcript_type_override": {}
|
|
1329
1406
|
},
|
|
1330
1407
|
"raw_palette": 0,
|
|
1331
1408
|
"hex": 0,
|
|
@@ -1338,6 +1415,8 @@
|
|
|
1338
1415
|
"control_override": 10,
|
|
1339
1416
|
"page_heading": 1,
|
|
1340
1417
|
"shell_override": 4,
|
|
1418
|
+
"header_height_literal": 0,
|
|
1419
|
+
"transcript_type_override": 0,
|
|
1341
1420
|
"palette_top": [],
|
|
1342
1421
|
"local_primitives": {}
|
|
1343
1422
|
},
|
|
@@ -1347,40 +1426,40 @@
|
|
|
1347
1426
|
""
|
|
1348
1427
|
],
|
|
1349
1428
|
"branch": "main",
|
|
1350
|
-
"head": "
|
|
1429
|
+
"head": "97f77723ac9f",
|
|
1351
1430
|
"tsx_files": 110,
|
|
1352
1431
|
"css_files": 2,
|
|
1353
1432
|
"versions": {
|
|
1354
1433
|
"agent-app": [
|
|
1355
|
-
"0.
|
|
1434
|
+
"0.60.23"
|
|
1356
1435
|
],
|
|
1357
1436
|
"brand": [
|
|
1358
|
-
"1.
|
|
1437
|
+
"1.20.0"
|
|
1359
1438
|
],
|
|
1360
1439
|
"override:agent-app": [
|
|
1361
|
-
"0.
|
|
1440
|
+
"0.60.23"
|
|
1362
1441
|
],
|
|
1363
1442
|
"override:brand": [
|
|
1364
|
-
"1.
|
|
1443
|
+
"1.20.0"
|
|
1365
1444
|
],
|
|
1366
1445
|
"override:sandbox-ui": [
|
|
1367
|
-
"0.
|
|
1446
|
+
"0.132.1"
|
|
1368
1447
|
],
|
|
1369
1448
|
"override:ui": [
|
|
1370
|
-
"11.
|
|
1449
|
+
"11.31.2"
|
|
1371
1450
|
],
|
|
1372
1451
|
"sandbox-ui": [
|
|
1373
|
-
"0.
|
|
1452
|
+
"0.132.1"
|
|
1374
1453
|
],
|
|
1375
1454
|
"ui": [
|
|
1376
|
-
"11.
|
|
1455
|
+
"11.31.2"
|
|
1377
1456
|
]
|
|
1378
1457
|
},
|
|
1379
1458
|
"importing_files": {
|
|
1380
1459
|
"brand": 2,
|
|
1381
1460
|
"ui": 3,
|
|
1382
|
-
"sandbox-ui":
|
|
1383
|
-
"agent-app":
|
|
1461
|
+
"sandbox-ui": 77,
|
|
1462
|
+
"agent-app": 67
|
|
1384
1463
|
},
|
|
1385
1464
|
"by_file": {
|
|
1386
1465
|
"raw_palette": {},
|
|
@@ -1416,7 +1495,11 @@
|
|
|
1416
1495
|
"src/routes/login.tsx": 1,
|
|
1417
1496
|
"src/routes/pay.$token.tsx": 1
|
|
1418
1497
|
},
|
|
1419
|
-
"shell_override": {}
|
|
1498
|
+
"shell_override": {},
|
|
1499
|
+
"header_height_literal": {
|
|
1500
|
+
"src/styles/listing.css": 1
|
|
1501
|
+
},
|
|
1502
|
+
"transcript_type_override": {}
|
|
1420
1503
|
},
|
|
1421
1504
|
"raw_palette": 0,
|
|
1422
1505
|
"hex": 0,
|
|
@@ -1429,6 +1512,8 @@
|
|
|
1429
1512
|
"control_override": 1,
|
|
1430
1513
|
"page_heading": 12,
|
|
1431
1514
|
"shell_override": 0,
|
|
1515
|
+
"header_height_literal": 1,
|
|
1516
|
+
"transcript_type_override": 0,
|
|
1432
1517
|
"palette_top": [],
|
|
1433
1518
|
"local_primitives": {}
|
|
1434
1519
|
},
|
|
@@ -1438,7 +1523,7 @@
|
|
|
1438
1523
|
"apps/web"
|
|
1439
1524
|
],
|
|
1440
1525
|
"branch": "develop",
|
|
1441
|
-
"head": "
|
|
1526
|
+
"head": "978ff883f4f5",
|
|
1442
1527
|
"tsx_files": 356,
|
|
1443
1528
|
"css_files": 9,
|
|
1444
1529
|
"versions": {
|
|
@@ -1703,7 +1788,11 @@
|
|
|
1703
1788
|
},
|
|
1704
1789
|
"shell_override": {
|
|
1705
1790
|
"apps/web/src/components/header/Header.tsx": 2
|
|
1706
|
-
}
|
|
1791
|
+
},
|
|
1792
|
+
"header_height_literal": {
|
|
1793
|
+
"apps/web/src/components/@settings/tabs/connections/NetlifyConnection.tsx": 1
|
|
1794
|
+
},
|
|
1795
|
+
"transcript_type_override": {}
|
|
1707
1796
|
},
|
|
1708
1797
|
"raw_palette": 0,
|
|
1709
1798
|
"hex": 0,
|
|
@@ -1716,6 +1805,8 @@
|
|
|
1716
1805
|
"control_override": 18,
|
|
1717
1806
|
"page_heading": 30,
|
|
1718
1807
|
"shell_override": 2,
|
|
1808
|
+
"header_height_literal": 1,
|
|
1809
|
+
"transcript_type_override": 0,
|
|
1719
1810
|
"palette_top": [],
|
|
1720
1811
|
"local_primitives": {}
|
|
1721
1812
|
},
|
|
@@ -1725,15 +1816,21 @@
|
|
|
1725
1816
|
"public"
|
|
1726
1817
|
],
|
|
1727
1818
|
"branch": "main",
|
|
1728
|
-
"head": "
|
|
1729
|
-
"tsx_files":
|
|
1730
|
-
"css_files":
|
|
1819
|
+
"head": "34483f7ae430",
|
|
1820
|
+
"tsx_files": 1,
|
|
1821
|
+
"css_files": 0,
|
|
1731
1822
|
"versions": {
|
|
1732
1823
|
"agent-app": [
|
|
1733
|
-
"0.
|
|
1824
|
+
"0.60.30"
|
|
1734
1825
|
],
|
|
1735
1826
|
"brand": [
|
|
1736
|
-
"1.
|
|
1827
|
+
"1.20.0"
|
|
1828
|
+
],
|
|
1829
|
+
"sandbox-ui": [
|
|
1830
|
+
"0.132.2"
|
|
1831
|
+
],
|
|
1832
|
+
"ui": [
|
|
1833
|
+
"11.31.3"
|
|
1737
1834
|
]
|
|
1738
1835
|
},
|
|
1739
1836
|
"importing_files": {
|
|
@@ -1746,34 +1843,30 @@
|
|
|
1746
1843
|
"raw_palette": {},
|
|
1747
1844
|
"hex": {},
|
|
1748
1845
|
"arbitrary_color": {},
|
|
1749
|
-
"css_var_defs": {
|
|
1750
|
-
"public/design-components.css": 8,
|
|
1751
|
-
"public/style.css": 1
|
|
1752
|
-
},
|
|
1846
|
+
"css_var_defs": {},
|
|
1753
1847
|
"local_primitive_count": {},
|
|
1754
|
-
"font_size_literal": {
|
|
1755
|
-
"public/design-components.css": 4,
|
|
1756
|
-
"public/invite.css": 4,
|
|
1757
|
-
"public/style.css": 386,
|
|
1758
|
-
"public/timeline.css": 33
|
|
1759
|
-
},
|
|
1848
|
+
"font_size_literal": {},
|
|
1760
1849
|
"size_literal": {},
|
|
1761
1850
|
"native_control": {},
|
|
1762
1851
|
"control_override": {},
|
|
1763
1852
|
"page_heading": {},
|
|
1764
|
-
"shell_override": {}
|
|
1853
|
+
"shell_override": {},
|
|
1854
|
+
"header_height_literal": {},
|
|
1855
|
+
"transcript_type_override": {}
|
|
1765
1856
|
},
|
|
1766
1857
|
"raw_palette": 0,
|
|
1767
1858
|
"hex": 0,
|
|
1768
1859
|
"arbitrary_color": 0,
|
|
1769
|
-
"css_var_defs":
|
|
1860
|
+
"css_var_defs": 0,
|
|
1770
1861
|
"local_primitive_count": 0,
|
|
1771
|
-
"font_size_literal":
|
|
1862
|
+
"font_size_literal": 0,
|
|
1772
1863
|
"size_literal": 0,
|
|
1773
1864
|
"native_control": 0,
|
|
1774
1865
|
"control_override": 0,
|
|
1775
1866
|
"page_heading": 0,
|
|
1776
1867
|
"shell_override": 0,
|
|
1868
|
+
"header_height_literal": 0,
|
|
1869
|
+
"transcript_type_override": 0,
|
|
1777
1870
|
"palette_top": [],
|
|
1778
1871
|
"local_primitives": {}
|
|
1779
1872
|
}
|
package/bin/tangle-drift.mjs
CHANGED
|
@@ -78,11 +78,52 @@ export const PATTERNS = {
|
|
|
78
78
|
// that moves the shell's controls or flattens its surface.
|
|
79
79
|
shell_override: String.raw`md3-surface-dim|\bPanel(?:Right|Left)(?:Open|Close)?\b|\b(?:collapsedControlsPlacement|centerHeaderVisibility)\b|\bsurface=["'{]+flat\b`,
|
|
80
80
|
};
|
|
81
|
+
|
|
82
|
+
// Header-like: an element named `header`, or a class/id ending in one of the words below. It must be
|
|
83
|
+
// the selector's last compound (pseudo-classes and attributes aside), so `.top-header .avatar`
|
|
84
|
+
// and `.top-header-avatar` size something inside a header, not the header row.
|
|
85
|
+
// A `-bar` row counts too (`.files-bar`), but not a progress, scroll, side or meter bar.
|
|
86
|
+
const HEADER_WORD = String.raw`(?:header|head|topbar|toolbar|titlebar|appbar|navbar|(?<![\w-]*(?:progress|scroll|side|meter|loading|track|fill|status)-?)bar)`;
|
|
87
|
+
const HEADER_COMPOUND = String.raw`(?:[\w#.:-]*[.#-]${HEADER_WORD}|(?<![\w.#-])header)(?![\w-])(?::{1,2}[\w-]+(?:\([^)]*\))?|\[[^\]]*\])*`;
|
|
88
|
+
const LITERAL_HEIGHT_UTILITY = String.raw`(?<![\w-])(?:h|min-h|max-h)-(?:[0-9]|\[(?!var\())`;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Metrics that span lines, so they read whole files rather than `git grep` lines. Each is a set
|
|
92
|
+
* of JavaScript patterns run over a file's text; `prefilter` selects candidate files with
|
|
93
|
+
* `git grep -l` and the same pathspecs, so the excluded paths match the line metrics.
|
|
94
|
+
*/
|
|
95
|
+
export const RULE_PATTERNS = {
|
|
96
|
+
// A header row given its own height. The shell owns one header height
|
|
97
|
+
// (`--shell-header-height`, `ShellHeader`); content fills the row and never sets it, so the
|
|
98
|
+
// main pane's divider lands on the sidebar's. Token references (`var(--shell-header-height)`)
|
|
99
|
+
// and non-length values (`auto`, `100%`) are not counted.
|
|
100
|
+
header_height_literal: {
|
|
101
|
+
prefilter: String.raw`height|\bh-`,
|
|
102
|
+
patterns: [
|
|
103
|
+
// CSS: `.x-header { min-height: 66px }`, `.page header { height: 4rem }`, across lines.
|
|
104
|
+
String.raw`(?<=^|[\s{},;>+~])${HEADER_COMPOUND}\s*(?:,[^{};]*)?\{[^{}]*?(?<![\w-])(?:min-|max-)?height\s*:\s*[0-9.]+(?:px|rem|em)\b`,
|
|
105
|
+
// JSX: `<header className="h-16">`, or any element whose class names a header row and a height.
|
|
106
|
+
String.raw`<header\b[^>]*?\bclassName=\{?["'\x60][^"'\x60]*?${LITERAL_HEIGHT_UTILITY}`,
|
|
107
|
+
String.raw`(?<!<header\b[^>]*)\bclassName=\{?["'\x60](?=[^"'\x60]*(?<![\w-])[\w-]*${HEADER_WORD}(?![\w-]))[^"'\x60]*?${LITERAL_HEIGHT_UTILITY}`,
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
// Product CSS restyling transcript text. Brand's `tangle-transcript-text` gives the person's and
|
|
111
|
+
// the agent's messages one family, size and leading; an app rule on `.tangle-prose` or a
|
|
112
|
+
// timeline step re-splits them (an agent message at 16px beside a 15px user message).
|
|
113
|
+
transcript_type_override: {
|
|
114
|
+
prefilter: String.raw`tangle-prose|tangle-transcript-text|data-timeline-step|transcript`,
|
|
115
|
+
patterns: [
|
|
116
|
+
String.raw`(?:tangle-prose|tangle-transcript-text|data-timeline-step|transcript)[^{};]*\{[^{}]*?(?<![\w-])(?:font-size|line-height|font-family|font)\s*:`,
|
|
117
|
+
String.raw`\bclassName=\{?["'\x60](?=[^"'\x60]*\btangle-(?:prose|transcript-text)\b)[^"'\x60]*?(?<![\w-])(?:text-(?:xs|sm|base|lg|xl|\[)|leading-|font-(?:sans|serif|mono))`,
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
|
|
81
122
|
const LOCAL_PRIM_NAME = new RegExp(String.raw`(?:function|const)\s+(${PRIMS})\b`);
|
|
82
123
|
const SHARED = ["@tangle-network/brand", "@tangle-network/ui", "@tangle-network/sandbox-ui", "@tangle-network/agent-app"];
|
|
83
124
|
|
|
84
125
|
/** The counts the gate ratchets. Everything else in a row is informational. */
|
|
85
|
-
export const GATED = Object.keys(PATTERNS);
|
|
126
|
+
export const GATED = [...Object.keys(PATTERNS), ...Object.keys(RULE_PATTERNS)];
|
|
86
127
|
|
|
87
128
|
function extensions(surface, metric) {
|
|
88
129
|
const extra = SURFACES[surface]?.extraExt ?? [];
|
|
@@ -98,6 +139,8 @@ function extensions(surface, metric) {
|
|
|
98
139
|
case "control_override": return ["*.tsx", "*.jsx"];
|
|
99
140
|
case "page_heading": return ["*.tsx", "*.jsx", "*.astro"];
|
|
100
141
|
case "shell_override": return ["*.tsx", "*.jsx", "*.css", ...extra];
|
|
142
|
+
case "header_height_literal": return ["*.tsx", "*.jsx", "*.astro", "*.css", "*.vue", "*.svelte"];
|
|
143
|
+
case "transcript_type_override": return ["*.tsx", "*.jsx", "*.css"];
|
|
101
144
|
case "imports": return ["*.tsx", "*.ts", "*.astro", "*.jsx"];
|
|
102
145
|
default: return SRC_EXT;
|
|
103
146
|
}
|
|
@@ -144,6 +187,30 @@ export function grepMatches(source, roots, pattern, exts) {
|
|
|
144
187
|
return rows;
|
|
145
188
|
}
|
|
146
189
|
|
|
190
|
+
/** Every match of a multi-line metric: [{ path, line, match }], `line` being where the match starts. */
|
|
191
|
+
export function ruleMatches(source, roots, metric, exts) {
|
|
192
|
+
const { prefilter, patterns } = RULE_PATTERNS[metric];
|
|
193
|
+
const args = ["grep", "-I", "-P", "-l", "--null", "-e", prefilter];
|
|
194
|
+
if (source.rev) args.push(source.rev);
|
|
195
|
+
else args.push("--untracked");
|
|
196
|
+
args.push("--", ...pathspecs(roots, exts), ...EXCLUDE);
|
|
197
|
+
const prefix = source.rev ? `${source.rev}:` : "";
|
|
198
|
+
const files = git(source.dir, args, { allowExit1: true }).split("\0").filter(Boolean)
|
|
199
|
+
.map((f) => (f.startsWith(prefix) ? f.slice(prefix.length) : f).trim()).filter(Boolean);
|
|
200
|
+
const rows = [];
|
|
201
|
+
for (const path of files) {
|
|
202
|
+
const text = readFile(source, path);
|
|
203
|
+
const found = new Map();
|
|
204
|
+
for (const pattern of patterns) {
|
|
205
|
+
for (const m of text.matchAll(new RegExp(pattern, "g"))) found.set(m.index, m[0]);
|
|
206
|
+
}
|
|
207
|
+
for (const [index, match] of [...found].sort(([a], [b]) => a - b)) {
|
|
208
|
+
rows.push({ path, line: text.slice(0, index).split("\n").length, match });
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return rows.sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : a.line - b.line));
|
|
212
|
+
}
|
|
213
|
+
|
|
147
214
|
/** Full text of matching lines in the named files, for failure reports. */
|
|
148
215
|
function grepLines(source, pattern, files) {
|
|
149
216
|
const args = ["grep", "-I", "-P", "-n", "--null", "-e", pattern];
|
|
@@ -224,7 +291,9 @@ export function measure(surface, source) {
|
|
|
224
291
|
}
|
|
225
292
|
row.by_file = {};
|
|
226
293
|
for (const metric of GATED) {
|
|
227
|
-
const hits =
|
|
294
|
+
const hits = RULE_PATTERNS[metric]
|
|
295
|
+
? ruleMatches(source, roots, metric, extensions(surface, metric))
|
|
296
|
+
: grepMatches(source, roots, PATTERNS[metric], extensions(surface, metric));
|
|
228
297
|
matches[metric] = hits;
|
|
229
298
|
row[metric] = hits.length;
|
|
230
299
|
row.by_file[metric] = sortedObject(countBy(hits.map((h) => h.path)));
|
|
@@ -442,7 +511,7 @@ export function main(argv = process.argv.slice(2), log = (s) => process.stdout.w
|
|
|
442
511
|
}
|
|
443
512
|
|
|
444
513
|
let failed = false;
|
|
445
|
-
for (const [surface, { row, source }] of Object.entries(measured)) {
|
|
514
|
+
for (const [surface, { row, source, matches }] of Object.entries(measured)) {
|
|
446
515
|
const base = baseline[surface];
|
|
447
516
|
log(describe(surface, row));
|
|
448
517
|
if (!base) {
|
|
@@ -462,7 +531,10 @@ export function main(argv = process.argv.slice(2), log = (s) => process.stdout.w
|
|
|
462
531
|
.sort((x, y) => y.now - x.now).slice(0, 10);
|
|
463
532
|
log(files.length ? " files above their baseline count:" : " no single file rose (moved or renamed?); largest files:");
|
|
464
533
|
for (const f of shown.slice(0, 10)) log(` ${f.path}: ${f.base} -> ${f.now}`);
|
|
465
|
-
const
|
|
534
|
+
const shownPaths = shown.slice(0, 10).map((f) => f.path);
|
|
535
|
+
const lines = RULE_PATTERNS[metric]
|
|
536
|
+
? matches[metric].filter((m) => shownPaths.includes(m.path)).map((m) => ({ path: m.path, line: m.line, text: m.match.replace(/\s+/g, " ") }))
|
|
537
|
+
: grepLines(source, PATTERNS[metric], shownPaths);
|
|
466
538
|
for (const l of lines.slice(0, opts.top)) log(` ${l.path}:${l.line}: ${l.text.slice(0, 160)}`);
|
|
467
539
|
if (lines.length > opts.top) log(` ... ${lines.length - opts.top} more lines`);
|
|
468
540
|
}
|
package/package.json
CHANGED
package/src/styles/globals.css
CHANGED
|
@@ -176,6 +176,16 @@
|
|
|
176
176
|
/* Long URLs, emails and identifiers wrap inside the column. */
|
|
177
177
|
overflow-wrap: break-word;
|
|
178
178
|
}
|
|
179
|
+
/* Transcript text: the one size and leading for every chat message body, the
|
|
180
|
+
* person's and the agent's alike, so the two differ only by alignment and
|
|
181
|
+
* surface. The doubled selector outranks .tangle-prose on an agent message;
|
|
182
|
+
* product CSS does not restyle either (tangle-drift transcript_type_override). */
|
|
183
|
+
.tangle-transcript-text,
|
|
184
|
+
.tangle-prose.tangle-transcript-text {
|
|
185
|
+
font-family: inherit;
|
|
186
|
+
font-size: var(--transcript-font-size);
|
|
187
|
+
line-height: var(--transcript-line-height);
|
|
188
|
+
}
|
|
179
189
|
.tangle-prose > * + * { margin-top: 0.85em; }
|
|
180
190
|
.tangle-prose h1, .tangle-prose h2, .tangle-prose h3, .tangle-prose h4 {
|
|
181
191
|
font-weight: 600;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* GENERATED by scripts/gen-compat.mjs. Do not edit.
|
|
2
2
|
* Source: tokens.css + named-themes.css
|
|
3
|
-
* SHA-256:
|
|
3
|
+
* SHA-256: e280d0675dc36f1bd1c79e163d7b50c18a5dd2cb3a58f3138cddc85b02514b6b
|
|
4
4
|
* Light-default compatibility; all explicit modes remain canonical.
|
|
5
5
|
*/
|
|
6
6
|
:where(:root),
|
|
@@ -297,6 +297,10 @@
|
|
|
297
297
|
--font-size-help: 0.75rem;
|
|
298
298
|
--panel-padding: 1rem;
|
|
299
299
|
--content-max-width: 80rem;
|
|
300
|
+
--shell-header-height: 3.5rem;
|
|
301
|
+
--shell-inset-gutter: 0.5rem;
|
|
302
|
+
--transcript-font-size: var(--font-size-base);
|
|
303
|
+
--transcript-line-height: var(--line-height-base);
|
|
300
304
|
--font-size-xs: 0.6875rem;
|
|
301
305
|
--font-size-sm: 0.75rem;
|
|
302
306
|
--font-size-base: 0.9375rem;
|
|
@@ -787,6 +791,7 @@
|
|
|
787
791
|
--spacing-control-sm: var(--control-height-sm);
|
|
788
792
|
--spacing-control-md: var(--control-height);
|
|
789
793
|
--spacing-control-lg: var(--control-height-lg);
|
|
794
|
+
--spacing-shell-header: var(--shell-header-height);
|
|
790
795
|
--color-scrim: var(--scrim);
|
|
791
796
|
--color-scrim-strong: var(--scrim-strong);
|
|
792
797
|
--color-on-media: var(--on-media);
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
--spacing-control-sm: var(--control-height-sm);
|
|
28
28
|
--spacing-control-md: var(--control-height);
|
|
29
29
|
--spacing-control-lg: var(--control-height-lg);
|
|
30
|
+
--spacing-shell-header: var(--shell-header-height);
|
|
30
31
|
--color-scrim: var(--scrim);
|
|
31
32
|
--color-scrim-strong: var(--scrim-strong);
|
|
32
33
|
--color-on-media: var(--on-media);
|
package/src/styles/theme.css
CHANGED
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
--spacing-control-sm: var(--control-height-sm);
|
|
78
78
|
--spacing-control-md: var(--control-height);
|
|
79
79
|
--spacing-control-lg: var(--control-height-lg);
|
|
80
|
+
--spacing-shell-header: var(--shell-header-height);
|
|
80
81
|
|
|
81
82
|
--color-scrim: var(--scrim);
|
|
82
83
|
--color-scrim-strong: var(--scrim-strong);
|
package/src/styles/tokens.css
CHANGED
|
@@ -455,6 +455,17 @@
|
|
|
455
455
|
--font-size-help: 0.75rem; /* 12px */
|
|
456
456
|
--panel-padding: 1rem;
|
|
457
457
|
--content-max-width: 80rem;
|
|
458
|
+
/* Shell: every header row in the app shell (sidebar rail, main pane, side
|
|
459
|
+
panels, drawers, the assistant) is this tall, so their bottom dividers
|
|
460
|
+
share one y. Header content fills the row; it never sets the height.
|
|
461
|
+
An inset pane sits one gutter plus its 1px border below the shell top, so
|
|
462
|
+
its header is shorter by exactly that amount (see ShellHeader). */
|
|
463
|
+
--shell-header-height: 3.5rem; /* 56px */
|
|
464
|
+
--shell-inset-gutter: 0.5rem; /* 8px */
|
|
465
|
+
/* Transcript: the person's and the agent's messages share one family, size
|
|
466
|
+
and leading; they differ only by alignment and surface. */
|
|
467
|
+
--transcript-font-size: var(--font-size-base);
|
|
468
|
+
--transcript-line-height: var(--line-height-base);
|
|
458
469
|
|
|
459
470
|
/* Typography scale — override per-app for custom type hierarchy.
|
|
460
471
|
Components reference these instead of hardcoded pixel values. */
|