@1agh/maude 0.15.0 → 0.16.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/README.md +1 -3
- package/package.json +8 -8
- package/plugins/design/dev-server/api.ts +186 -3
- package/plugins/design/dev-server/canvas-shell.tsx +79 -5
- package/plugins/design/dev-server/client/app.jsx +53 -142
- package/plugins/design/dev-server/client/comments-overlay.css +381 -0
- package/plugins/design/dev-server/client/styles/3-shell.css +1 -10
- package/plugins/design/dev-server/client/styles/4-components.css +5 -161
- package/plugins/design/dev-server/client/styles.css +5 -160
- package/plugins/design/dev-server/comments-overlay.tsx +1156 -0
- package/plugins/design/dev-server/dist/client.bundle.js +44 -211
- package/plugins/design/dev-server/dist/styles.css +1 -218
- package/plugins/design/dev-server/http.ts +29 -0
- package/plugins/design/dev-server/input-router.tsx +21 -0
- package/plugins/design/dev-server/test/canvas-meta-api.test.ts +0 -10
- package/plugins/design/dev-server/test/comments-api.test.ts +229 -0
|
@@ -758,8 +758,7 @@
|
|
|
758
758
|
flex: 1;
|
|
759
759
|
min-width: 0;
|
|
760
760
|
}
|
|
761
|
-
.sb-clear-sel
|
|
762
|
-
.sb-add-comment {
|
|
761
|
+
.sb-clear-sel {
|
|
763
762
|
background: transparent;
|
|
764
763
|
color: var(--u-fg-2);
|
|
765
764
|
border: 1px solid var(--u-border);
|
|
@@ -772,19 +771,11 @@
|
|
|
772
771
|
text-transform: uppercase;
|
|
773
772
|
cursor: pointer;
|
|
774
773
|
}
|
|
775
|
-
.sb-add-comment {
|
|
776
|
-
color: var(--u-accent);
|
|
777
|
-
border-color: var(--u-accent);
|
|
778
|
-
}
|
|
779
774
|
.sb-clear-sel:hover {
|
|
780
775
|
color: var(--u-fg-0);
|
|
781
776
|
background: var(--u-bg-2);
|
|
782
777
|
border-color: var(--u-border-strong);
|
|
783
778
|
}
|
|
784
|
-
.sb-add-comment:hover {
|
|
785
|
-
background: var(--u-accent);
|
|
786
|
-
color: var(--u-accent-fg);
|
|
787
|
-
}
|
|
788
779
|
.sb-unread .sb-count {
|
|
789
780
|
font-family: var(--u-font-mono);
|
|
790
781
|
font-size: 10px;
|
|
@@ -447,179 +447,23 @@
|
|
|
447
447
|
flex-wrap: wrap;
|
|
448
448
|
}
|
|
449
449
|
/* Composer — stacked vertically so the textarea has real estate */
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
background: var(--u-bg-2);
|
|
456
|
-
border: 1px solid var(--u-accent-line);
|
|
457
|
-
border-radius: var(--u-r-md);
|
|
458
|
-
margin: 4px 0;
|
|
459
|
-
}
|
|
460
|
-
.composer-head {
|
|
461
|
-
display: flex;
|
|
462
|
-
align-items: baseline;
|
|
463
|
-
gap: var(--u-s-2);
|
|
464
|
-
font-size: 11px;
|
|
465
|
-
color: var(--u-fg-3);
|
|
466
|
-
}
|
|
467
|
-
.composer-selector {
|
|
468
|
-
font-family: var(--u-font-mono);
|
|
469
|
-
font-size: 11px;
|
|
470
|
-
color: var(--u-fg-1);
|
|
471
|
-
background: var(--u-bg-1);
|
|
472
|
-
padding: 2px 8px;
|
|
473
|
-
border-radius: var(--u-r-sm);
|
|
474
|
-
border: 1px solid var(--u-border);
|
|
475
|
-
overflow: hidden;
|
|
476
|
-
text-overflow: ellipsis;
|
|
477
|
-
white-space: nowrap;
|
|
478
|
-
flex: 1;
|
|
479
|
-
min-width: 0;
|
|
480
|
-
}
|
|
481
|
-
.comment-bar textarea.composer-textarea {
|
|
482
|
-
width: 100%;
|
|
483
|
-
background: var(--u-bg-1);
|
|
484
|
-
border: 1px solid var(--u-border);
|
|
485
|
-
border-radius: var(--u-r-sm);
|
|
486
|
-
color: var(--u-fg-0);
|
|
487
|
-
font-family: inherit;
|
|
488
|
-
font-size: 13px;
|
|
489
|
-
line-height: 1.5;
|
|
490
|
-
padding: var(--u-s-3);
|
|
491
|
-
resize: vertical;
|
|
492
|
-
min-height: 100px;
|
|
493
|
-
outline: none;
|
|
494
|
-
}
|
|
495
|
-
.comment-bar textarea.composer-textarea:focus { border-color: var(--u-accent-line); }
|
|
496
|
-
.comment-bar textarea.composer-textarea::placeholder { color: var(--u-fg-3); }
|
|
497
|
-
.composer-actions {
|
|
498
|
-
display: flex;
|
|
499
|
-
justify-content: flex-end;
|
|
500
|
-
gap: 6px;
|
|
501
|
-
}
|
|
450
|
+
/* Phase 6 — the shell-side composer / focused-row / pin-strip surfaces moved
|
|
451
|
+
* into the canvas iframe (see plugins/design/dev-server/comments-overlay.tsx
|
|
452
|
+
* + .css). Only the residual BottomBar open-count label survives. The legacy
|
|
453
|
+
* `.composer*` / `.cb-pin-chip` / `.cb-row.focused` / `.cb-text` / `.cb-target`
|
|
454
|
+
* / `.cb-pinno` / `.cb-more` rules were removed in the same change. */
|
|
502
455
|
|
|
503
|
-
.cb-row.composer {
|
|
504
|
-
align-items: stretch;
|
|
505
|
-
flex-wrap: nowrap;
|
|
506
|
-
}
|
|
507
456
|
.cb-label {
|
|
508
457
|
color: var(--u-fg-3);
|
|
509
458
|
font-size: 11px;
|
|
510
459
|
flex: none;
|
|
511
460
|
align-self: center;
|
|
512
461
|
}
|
|
513
|
-
.cb-label code {
|
|
514
|
-
font-family: var(--u-font-mono);
|
|
515
|
-
font-size: 10px;
|
|
516
|
-
background: var(--u-bg-2);
|
|
517
|
-
padding: 1px 4px;
|
|
518
|
-
border-radius: var(--u-r-xs);
|
|
519
|
-
color: var(--u-fg-1);
|
|
520
|
-
}
|
|
521
|
-
.comment-bar textarea {
|
|
522
|
-
flex: 1;
|
|
523
|
-
background: var(--u-bg-2);
|
|
524
|
-
border: 1px solid var(--u-border);
|
|
525
|
-
border-radius: var(--u-r-sm);
|
|
526
|
-
color: var(--u-fg-0);
|
|
527
|
-
font-family: inherit;
|
|
528
|
-
font-size: 12px;
|
|
529
|
-
padding: var(--u-s-2);
|
|
530
|
-
resize: vertical;
|
|
531
|
-
min-height: 40px;
|
|
532
|
-
outline: none;
|
|
533
|
-
}
|
|
534
|
-
.comment-bar textarea:focus { border-color: var(--u-accent-line); }
|
|
535
|
-
.cb-actions {
|
|
536
|
-
display: flex;
|
|
537
|
-
gap: 4px;
|
|
538
|
-
align-self: flex-end;
|
|
539
|
-
}
|
|
540
|
-
.cb-primary, .cb-secondary {
|
|
541
|
-
border: 1px solid var(--u-border);
|
|
542
|
-
background: var(--u-bg-2);
|
|
543
|
-
color: var(--u-fg-1);
|
|
544
|
-
border-radius: var(--u-r-sm);
|
|
545
|
-
padding: 4px var(--u-s-3);
|
|
546
|
-
font-family: var(--u-font-mono);
|
|
547
|
-
font-size: 11px;
|
|
548
|
-
cursor: pointer;
|
|
549
|
-
}
|
|
550
|
-
.cb-primary {
|
|
551
|
-
background: var(--u-accent);
|
|
552
|
-
color: var(--u-bg-0);
|
|
553
|
-
border-color: var(--u-accent);
|
|
554
|
-
font-weight: 600;
|
|
555
|
-
}
|
|
556
|
-
.cb-primary:hover { background: var(--u-accent-strong); border-color: var(--u-accent-strong); }
|
|
557
|
-
.cb-primary:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
558
|
-
.cb-secondary:hover { background: var(--u-bg-3); color: var(--u-fg-0); }
|
|
559
|
-
|
|
560
|
-
.cb-row.focused {
|
|
561
|
-
background: var(--u-bg-2);
|
|
562
|
-
border-radius: var(--u-r-sm);
|
|
563
|
-
padding: 4px var(--u-s-2);
|
|
564
|
-
}
|
|
565
|
-
.cb-pinno {
|
|
566
|
-
font-family: var(--u-font-mono);
|
|
567
|
-
font-size: 11px;
|
|
568
|
-
background: var(--u-accent);
|
|
569
|
-
color: var(--u-accent-fg);
|
|
570
|
-
border-radius: var(--u-r-sm);
|
|
571
|
-
padding: 1px 6px;
|
|
572
|
-
font-weight: 700;
|
|
573
|
-
flex: none;
|
|
574
|
-
letter-spacing: var(--tracking-sku);
|
|
575
|
-
}
|
|
576
|
-
.cb-text {
|
|
577
|
-
flex: 1;
|
|
578
|
-
color: var(--u-fg-0);
|
|
579
|
-
overflow: hidden;
|
|
580
|
-
text-overflow: ellipsis;
|
|
581
|
-
white-space: nowrap;
|
|
582
|
-
font-size: 12px;
|
|
583
|
-
}
|
|
584
|
-
.cb-target code {
|
|
585
|
-
font-family: var(--u-font-mono);
|
|
586
|
-
font-size: 10px;
|
|
587
|
-
background: var(--u-bg-3);
|
|
588
|
-
padding: 1px 6px;
|
|
589
|
-
border-radius: var(--u-r-xs);
|
|
590
|
-
color: var(--u-fg-2);
|
|
591
|
-
max-width: 240px;
|
|
592
|
-
overflow: hidden;
|
|
593
|
-
text-overflow: ellipsis;
|
|
594
|
-
white-space: nowrap;
|
|
595
|
-
display: inline-block;
|
|
596
|
-
}
|
|
597
462
|
|
|
598
463
|
.cb-row.strip {
|
|
599
464
|
font-size: 11px;
|
|
600
465
|
color: var(--u-fg-3);
|
|
601
466
|
}
|
|
602
|
-
.cb-pin-strip {
|
|
603
|
-
display: flex;
|
|
604
|
-
gap: 4px;
|
|
605
|
-
flex: 1;
|
|
606
|
-
flex-wrap: wrap;
|
|
607
|
-
}
|
|
608
|
-
.cb-pin-chip {
|
|
609
|
-
font-family: var(--u-font-mono);
|
|
610
|
-
font-size: 10px;
|
|
611
|
-
background: var(--u-accent);
|
|
612
|
-
color: var(--u-accent-fg);
|
|
613
|
-
border: 0;
|
|
614
|
-
border-radius: var(--u-r-sm);
|
|
615
|
-
padding: 2px 7px;
|
|
616
|
-
font-weight: 600;
|
|
617
|
-
cursor: pointer;
|
|
618
|
-
transition: transform 100ms;
|
|
619
|
-
letter-spacing: var(--tracking-sku);
|
|
620
|
-
}
|
|
621
|
-
.cb-pin-chip:hover { transform: scale(1.1); }
|
|
622
|
-
.cb-more { font-family: var(--u-font-mono); font-size: 10px; color: var(--u-fg-3); align-self: center; }
|
|
623
467
|
|
|
624
468
|
/* ----- Right sidebar — Comments panel (CV-10) ----- */
|
|
625
469
|
.rsidebar {
|
|
@@ -972,178 +972,23 @@ button { font: inherit; }
|
|
|
972
972
|
gap: var(--u-s-2);
|
|
973
973
|
flex-wrap: wrap;
|
|
974
974
|
}
|
|
975
|
-
/*
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
padding: var(--u-s-3);
|
|
981
|
-
background: var(--u-bg-2);
|
|
982
|
-
border: 1px solid var(--u-accent-line);
|
|
983
|
-
border-radius: var(--u-r-md);
|
|
984
|
-
margin: 4px 0;
|
|
985
|
-
}
|
|
986
|
-
.composer-head {
|
|
987
|
-
display: flex;
|
|
988
|
-
align-items: baseline;
|
|
989
|
-
gap: var(--u-s-2);
|
|
990
|
-
font-size: 11px;
|
|
991
|
-
color: var(--u-fg-3);
|
|
992
|
-
}
|
|
993
|
-
.composer-selector {
|
|
994
|
-
font-family: var(--u-font-mono);
|
|
995
|
-
font-size: 11px;
|
|
996
|
-
color: var(--u-fg-1);
|
|
997
|
-
background: var(--u-bg-1);
|
|
998
|
-
padding: 2px 8px;
|
|
999
|
-
border-radius: var(--u-r-sm);
|
|
1000
|
-
border: 1px solid var(--u-border);
|
|
1001
|
-
overflow: hidden;
|
|
1002
|
-
text-overflow: ellipsis;
|
|
1003
|
-
white-space: nowrap;
|
|
1004
|
-
flex: 1;
|
|
1005
|
-
min-width: 0;
|
|
1006
|
-
}
|
|
1007
|
-
.comment-bar textarea.composer-textarea {
|
|
1008
|
-
width: 100%;
|
|
1009
|
-
background: var(--u-bg-1);
|
|
1010
|
-
border: 1px solid var(--u-border);
|
|
1011
|
-
border-radius: var(--u-r-sm);
|
|
1012
|
-
color: var(--u-fg-0);
|
|
1013
|
-
font-family: inherit;
|
|
1014
|
-
font-size: 13px;
|
|
1015
|
-
line-height: 1.5;
|
|
1016
|
-
padding: var(--u-s-3);
|
|
1017
|
-
resize: vertical;
|
|
1018
|
-
min-height: 100px;
|
|
1019
|
-
outline: none;
|
|
1020
|
-
}
|
|
1021
|
-
.comment-bar textarea.composer-textarea:focus { border-color: var(--u-accent-line); }
|
|
1022
|
-
.comment-bar textarea.composer-textarea::placeholder { color: var(--u-fg-3); }
|
|
1023
|
-
.composer-actions {
|
|
1024
|
-
display: flex;
|
|
1025
|
-
justify-content: flex-end;
|
|
1026
|
-
gap: 6px;
|
|
1027
|
-
}
|
|
975
|
+
/* Phase 6 — the shell-side composer / focused-row / pin-strip surfaces are
|
|
976
|
+
* gone; pins + composer + thread popover live inside the canvas iframe
|
|
977
|
+
* (plugins/design/dev-server/comments-overlay.{tsx,css}). The remaining
|
|
978
|
+
* `.comment-bar` and `.cb-row.strip` rules below render the residual
|
|
979
|
+
* open-count summary the shell still surfaces in the BottomBar. */
|
|
1028
980
|
|
|
1029
|
-
.cb-row.composer {
|
|
1030
|
-
align-items: stretch;
|
|
1031
|
-
flex-wrap: nowrap;
|
|
1032
|
-
}
|
|
1033
981
|
.cb-label {
|
|
1034
982
|
color: var(--u-fg-3);
|
|
1035
983
|
font-size: 11px;
|
|
1036
984
|
flex: none;
|
|
1037
985
|
align-self: center;
|
|
1038
986
|
}
|
|
1039
|
-
.cb-label code {
|
|
1040
|
-
font-family: var(--u-font-mono);
|
|
1041
|
-
font-size: 10px;
|
|
1042
|
-
background: var(--u-bg-2);
|
|
1043
|
-
padding: 1px 4px;
|
|
1044
|
-
border-radius: var(--u-r-xs);
|
|
1045
|
-
color: var(--u-fg-1);
|
|
1046
|
-
}
|
|
1047
|
-
.comment-bar textarea {
|
|
1048
|
-
flex: 1;
|
|
1049
|
-
background: var(--u-bg-2);
|
|
1050
|
-
border: 1px solid var(--u-border);
|
|
1051
|
-
border-radius: var(--u-r-sm);
|
|
1052
|
-
color: var(--u-fg-0);
|
|
1053
|
-
font-family: inherit;
|
|
1054
|
-
font-size: 12px;
|
|
1055
|
-
padding: var(--u-s-2);
|
|
1056
|
-
resize: vertical;
|
|
1057
|
-
min-height: 40px;
|
|
1058
|
-
outline: none;
|
|
1059
|
-
}
|
|
1060
|
-
.comment-bar textarea:focus { border-color: var(--u-accent-line); }
|
|
1061
|
-
.cb-actions {
|
|
1062
|
-
display: flex;
|
|
1063
|
-
gap: 4px;
|
|
1064
|
-
align-self: flex-end;
|
|
1065
|
-
}
|
|
1066
|
-
.cb-primary, .cb-secondary {
|
|
1067
|
-
border: 1px solid var(--u-border);
|
|
1068
|
-
background: var(--u-bg-2);
|
|
1069
|
-
color: var(--u-fg-1);
|
|
1070
|
-
border-radius: var(--u-r-sm);
|
|
1071
|
-
padding: 4px var(--u-s-3);
|
|
1072
|
-
font-family: var(--u-font-mono);
|
|
1073
|
-
font-size: 11px;
|
|
1074
|
-
cursor: pointer;
|
|
1075
|
-
}
|
|
1076
|
-
.cb-primary {
|
|
1077
|
-
background: var(--u-accent);
|
|
1078
|
-
color: var(--u-bg-0);
|
|
1079
|
-
border-color: var(--u-accent);
|
|
1080
|
-
font-weight: 600;
|
|
1081
|
-
}
|
|
1082
|
-
.cb-primary:hover { background: var(--u-accent-strong); border-color: var(--u-accent-strong); }
|
|
1083
|
-
.cb-primary:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
1084
|
-
.cb-secondary:hover { background: var(--u-bg-3); color: var(--u-fg-0); }
|
|
1085
|
-
|
|
1086
|
-
.cb-row.focused {
|
|
1087
|
-
background: var(--u-bg-2);
|
|
1088
|
-
border-radius: var(--u-r-sm);
|
|
1089
|
-
padding: 4px var(--u-s-2);
|
|
1090
|
-
}
|
|
1091
|
-
.cb-pinno {
|
|
1092
|
-
font-family: var(--u-font-mono);
|
|
1093
|
-
font-size: 11px;
|
|
1094
|
-
background: #facc15;
|
|
1095
|
-
color: #1c1917;
|
|
1096
|
-
border-radius: var(--u-r-pill);
|
|
1097
|
-
padding: 1px 6px;
|
|
1098
|
-
font-weight: 700;
|
|
1099
|
-
flex: none;
|
|
1100
|
-
}
|
|
1101
|
-
.cb-text {
|
|
1102
|
-
flex: 1;
|
|
1103
|
-
color: var(--u-fg-0);
|
|
1104
|
-
overflow: hidden;
|
|
1105
|
-
text-overflow: ellipsis;
|
|
1106
|
-
white-space: nowrap;
|
|
1107
|
-
font-size: 12px;
|
|
1108
|
-
}
|
|
1109
|
-
.cb-target code {
|
|
1110
|
-
font-family: var(--u-font-mono);
|
|
1111
|
-
font-size: 10px;
|
|
1112
|
-
background: var(--u-bg-3);
|
|
1113
|
-
padding: 1px 6px;
|
|
1114
|
-
border-radius: var(--u-r-xs);
|
|
1115
|
-
color: var(--u-fg-2);
|
|
1116
|
-
max-width: 240px;
|
|
1117
|
-
overflow: hidden;
|
|
1118
|
-
text-overflow: ellipsis;
|
|
1119
|
-
white-space: nowrap;
|
|
1120
|
-
display: inline-block;
|
|
1121
|
-
}
|
|
1122
987
|
|
|
1123
988
|
.cb-row.strip {
|
|
1124
989
|
font-size: 11px;
|
|
1125
990
|
color: var(--u-fg-3);
|
|
1126
991
|
}
|
|
1127
|
-
.cb-pin-strip {
|
|
1128
|
-
display: flex;
|
|
1129
|
-
gap: 4px;
|
|
1130
|
-
flex: 1;
|
|
1131
|
-
flex-wrap: wrap;
|
|
1132
|
-
}
|
|
1133
|
-
.cb-pin-chip {
|
|
1134
|
-
font-family: var(--u-font-mono);
|
|
1135
|
-
font-size: 10px;
|
|
1136
|
-
background: #facc15;
|
|
1137
|
-
color: #1c1917;
|
|
1138
|
-
border: 0;
|
|
1139
|
-
border-radius: var(--u-r-pill);
|
|
1140
|
-
padding: 2px 7px;
|
|
1141
|
-
font-weight: 600;
|
|
1142
|
-
cursor: pointer;
|
|
1143
|
-
transition: transform 100ms;
|
|
1144
|
-
}
|
|
1145
|
-
.cb-pin-chip:hover { transform: scale(1.1); }
|
|
1146
|
-
.cb-more { font-family: var(--u-font-mono); font-size: 10px; color: var(--u-fg-3); align-self: center; }
|
|
1147
992
|
|
|
1148
993
|
/* ----- Right sidebar — Comments panel ----- */
|
|
1149
994
|
.rsidebar {
|