@robotaccomplice/architext 1.0.0 → 1.1.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.
@@ -467,6 +467,27 @@ input:focus {
467
467
  gap: 6px;
468
468
  }
469
469
 
470
+ .routing-style-control {
471
+ display: inline-flex;
472
+ overflow: hidden;
473
+ border: 1px solid var(--line);
474
+ }
475
+
476
+ .routing-style-control button {
477
+ border: 0;
478
+ border-right: 1px solid var(--line);
479
+ background: var(--panel);
480
+ }
481
+
482
+ .routing-style-control button:last-child {
483
+ border-right: 0;
484
+ }
485
+
486
+ .routing-style-control button.active {
487
+ background: var(--blue);
488
+ color: #fff;
489
+ }
490
+
470
491
  .diagram-controls button {
471
492
  min-height: 28px;
472
493
  padding: 4px 7px;
@@ -554,6 +575,58 @@ input:focus {
554
575
  min-height: 100%;
555
576
  }
556
577
 
578
+ .routing-loading-overlay,
579
+ .routing-planning-error {
580
+ position: absolute;
581
+ left: 50%;
582
+ top: 50%;
583
+ z-index: 20;
584
+ display: inline-flex;
585
+ align-items: center;
586
+ gap: 10px;
587
+ max-width: min(360px, calc(100% - 32px));
588
+ padding: 10px 12px;
589
+ color: var(--ink);
590
+ background: rgba(17, 19, 22, 0.92);
591
+ border: 1px solid rgba(0, 219, 233, 0.42);
592
+ border-radius: 8px;
593
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.24);
594
+ transform: translate(-50%, -50%);
595
+ font-size: 13px;
596
+ font-weight: 800;
597
+ pointer-events: none;
598
+ }
599
+
600
+ .routing-spinner {
601
+ width: 16px;
602
+ height: 16px;
603
+ flex: 0 0 auto;
604
+ border: 2px solid rgba(185, 202, 203, 0.32);
605
+ border-top-color: var(--blue);
606
+ border-radius: 50%;
607
+ animation: routing-spin 800ms linear infinite;
608
+ }
609
+
610
+ .routing-planning-error {
611
+ flex-direction: column;
612
+ align-items: flex-start;
613
+ min-width: min(360px, calc(100% - 32px));
614
+ border-color: rgba(255, 180, 171, 0.56);
615
+ color: var(--red);
616
+ pointer-events: auto;
617
+ }
618
+
619
+ .routing-planning-error span {
620
+ color: var(--ink);
621
+ font-weight: 500;
622
+ }
623
+
624
+ @keyframes routing-spin {
625
+ to {
626
+ transform: rotate(360deg);
627
+ }
628
+ }
629
+
557
630
  .flow-lines {
558
631
  position: absolute;
559
632
  inset: 0;
@@ -919,6 +992,7 @@ input:focus {
919
992
  border-color: var(--line-strong);
920
993
  border-left-width: 3px;
921
994
  background: var(--panel-2);
995
+ overflow: hidden;
922
996
  }
923
997
 
924
998
  .c4-node.selected {
@@ -927,9 +1001,13 @@ input:focus {
927
1001
  }
928
1002
 
929
1003
  .c4-node small {
1004
+ display: -webkit-box;
1005
+ overflow: hidden;
930
1006
  color: var(--muted);
931
1007
  font-size: 10px;
932
1008
  line-height: 1.25;
1009
+ -webkit-box-orient: vertical;
1010
+ -webkit-line-clamp: 3;
933
1011
  }
934
1012
 
935
1013
  .c4-relationship {
@@ -957,12 +1035,13 @@ input:focus {
957
1035
  left: 0;
958
1036
  bottom: 0;
959
1037
  display: flex;
1038
+ flex-wrap: wrap;
960
1039
  gap: 6px;
961
1040
  align-items: center;
962
1041
  padding: 6px 8px;
963
1042
  border-top: 1px solid var(--line);
964
1043
  background: rgba(12, 14, 17, 0.95);
965
- overflow: auto;
1044
+ overflow: visible;
966
1045
  }
967
1046
 
968
1047
  .edge-chip,
@@ -987,6 +1066,106 @@ input:focus {
987
1066
  border-color: var(--blue);
988
1067
  }
989
1068
 
1069
+ .routing-debug-panel {
1070
+ position: sticky;
1071
+ left: 0;
1072
+ bottom: 0;
1073
+ display: grid;
1074
+ gap: 8px;
1075
+ max-height: 220px;
1076
+ padding: 8px;
1077
+ border-top: 1px solid var(--line-strong);
1078
+ background: rgba(9, 11, 14, 0.97);
1079
+ overflow: auto;
1080
+ font-family: var(--font-mono);
1081
+ font-size: 11px;
1082
+ }
1083
+
1084
+ .routing-debug-geometry {
1085
+ pointer-events: none;
1086
+ }
1087
+
1088
+ .routing-debug-node {
1089
+ fill: none;
1090
+ stroke: rgba(250, 204, 21, 0.5);
1091
+ stroke-dasharray: 3 3;
1092
+ stroke-width: 1;
1093
+ }
1094
+
1095
+ .routing-debug-label {
1096
+ fill: rgba(34, 211, 238, 0.12);
1097
+ stroke: rgba(34, 211, 238, 0.8);
1098
+ stroke-width: 1;
1099
+ }
1100
+
1101
+ .routing-debug-point {
1102
+ fill: var(--orange);
1103
+ stroke: #111827;
1104
+ stroke-width: 1;
1105
+ }
1106
+
1107
+ .routing-debug-route.warned .routing-debug-point {
1108
+ fill: #f87171;
1109
+ }
1110
+
1111
+ .routing-debug-summary,
1112
+ .routing-debug-warnings,
1113
+ .routing-debug-routes {
1114
+ display: flex;
1115
+ flex-wrap: wrap;
1116
+ gap: 6px;
1117
+ align-items: center;
1118
+ }
1119
+
1120
+ .routing-debug-summary strong,
1121
+ .routing-debug-summary span,
1122
+ .routing-debug-warnings span,
1123
+ .routing-debug-routes details {
1124
+ border: 1px solid var(--line);
1125
+ padding: 3px 6px;
1126
+ background: rgba(18, 24, 28, 0.8);
1127
+ }
1128
+
1129
+ .routing-debug-summary strong {
1130
+ color: var(--cyan);
1131
+ }
1132
+
1133
+ .routing-debug-warnings span {
1134
+ color: var(--orange);
1135
+ }
1136
+
1137
+ .routing-debug-routes details {
1138
+ min-width: 190px;
1139
+ }
1140
+
1141
+ .routing-debug-routes summary {
1142
+ display: flex;
1143
+ justify-content: space-between;
1144
+ gap: 8px;
1145
+ cursor: pointer;
1146
+ }
1147
+
1148
+ .routing-debug-routes dl {
1149
+ display: grid;
1150
+ grid-template-columns: minmax(0, 1fr) auto;
1151
+ gap: 3px 8px;
1152
+ margin: 6px 0 0 0;
1153
+ }
1154
+
1155
+ .routing-debug-routes dt,
1156
+ .routing-debug-routes dd {
1157
+ margin: 0;
1158
+ }
1159
+
1160
+ .routing-debug-routes dt {
1161
+ color: var(--muted);
1162
+ }
1163
+
1164
+ .routing-debug-routes dd {
1165
+ color: var(--ink);
1166
+ text-align: right;
1167
+ }
1168
+
990
1169
  .steps {
991
1170
  border-top: 1px solid var(--line);
992
1171
  background: var(--surface);
@@ -3,7 +3,7 @@
3
3
  "target": "ES2022",
4
4
  "useDefineForClassFields": true,
5
5
  "lib": ["DOM", "DOM.Iterable", "ES2022"],
6
- "allowJs": false,
6
+ "allowJs": true,
7
7
  "skipLibCheck": true,
8
8
  "esModuleInterop": true,
9
9
  "allowSyntheticDefaultImports": true,
@@ -18,4 +18,3 @@
18
18
  },
19
19
  "include": ["src"]
20
20
  }
21
-
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robotaccomplice/architext",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Local JSON-backed architecture and dataflow viewer for engineering teams and LLM-maintained architecture maps.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -28,7 +28,8 @@
28
28
  "docs/architext/vite.config.ts",
29
29
  "tools",
30
30
  "LICENSE",
31
- "README.md"
31
+ "README.md",
32
+ "THIRD_PARTY_NOTICES.md"
32
33
  ],
33
34
  "scripts": {
34
35
  "architext": "node tools/architext-adopt.mjs serve .",
@@ -41,8 +42,12 @@
41
42
  "cli": "node tools/architext-adopt.mjs",
42
43
  "doctor": "node tools/architext-adopt.mjs doctor --target .",
43
44
  "prepack": "npm run build",
44
- "test": "node --test",
45
- "validate": "node docs/architext/tools/validate-architext.mjs"
45
+ "test": "node --test --test-skip-pattern Roboticus",
46
+ "test:all": "node --test",
47
+ "test:benchmark": "node --test test/roboticus-routing.test.mjs",
48
+ "validate": "node docs/architext/tools/validate-architext.mjs",
49
+ "verify": "npm test && npm run validate && npm run build",
50
+ "release:check": "npm run verify && npm pack --dry-run"
46
51
  },
47
52
  "publishConfig": {
48
53
  "access": "public"