tech-debt-visualizer 0.2.8 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/reports/assets/report.css +107 -22
- package/dist/reports/html.js +18 -14
- package/package.json +1 -1
|
@@ -106,30 +106,97 @@ body.dashboard-page {
|
|
|
106
106
|
flex-shrink: 0;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
gap: 0.2rem;
|
|
113
|
-
padding: 0.35rem 0.65rem;
|
|
109
|
+
/* ——— Score block in header: really pop ——— */
|
|
110
|
+
.dashboard-score-block {
|
|
111
|
+
padding: 0.5rem 0.9rem;
|
|
114
112
|
border-radius: var(--radius);
|
|
113
|
+
font-weight: 700;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.dashboard-score-main {
|
|
117
|
+
display: flex;
|
|
118
|
+
align-items: baseline;
|
|
119
|
+
gap: 0.3rem;
|
|
120
|
+
flex-wrap: wrap;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.dashboard-score-value {
|
|
124
|
+
font-size: 1.75rem;
|
|
125
|
+
line-height: 1;
|
|
126
|
+
letter-spacing: -0.03em;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.dashboard-score-of {
|
|
130
|
+
font-size: 1rem;
|
|
115
131
|
font-weight: 600;
|
|
132
|
+
opacity: 0.9;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.dashboard-score-label {
|
|
136
|
+
font-size: 0.95rem;
|
|
137
|
+
font-weight: 800;
|
|
138
|
+
text-transform: uppercase;
|
|
139
|
+
letter-spacing: 0.06em;
|
|
140
|
+
margin-left: 0.25rem;
|
|
116
141
|
}
|
|
117
142
|
|
|
118
|
-
.dashboard-score-
|
|
119
|
-
|
|
120
|
-
|
|
143
|
+
.dashboard-score-desc {
|
|
144
|
+
margin: 0.35rem 0 0;
|
|
145
|
+
font-size: 13px;
|
|
146
|
+
line-height: 1.35;
|
|
147
|
+
font-weight: 600;
|
|
148
|
+
opacity: 0.95;
|
|
149
|
+
max-width: 320px;
|
|
150
|
+
}
|
|
121
151
|
|
|
122
|
-
.dashboard-score.tier-1 {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
152
|
+
.dashboard-score-block.tier-1 {
|
|
153
|
+
background: rgba(229, 57, 53, 0.25);
|
|
154
|
+
color: #ff8a80;
|
|
155
|
+
box-shadow: 0 0 0 1px rgba(229, 57, 53, 0.3);
|
|
156
|
+
}
|
|
157
|
+
.dashboard-score-block.tier-2 {
|
|
158
|
+
background: rgba(245, 124, 0, 0.25);
|
|
159
|
+
color: #ffb74d;
|
|
160
|
+
box-shadow: 0 0 0 1px rgba(245, 124, 0, 0.3);
|
|
161
|
+
}
|
|
162
|
+
.dashboard-score-block.tier-3 {
|
|
163
|
+
background: rgba(249, 168, 37, 0.25);
|
|
164
|
+
color: #ffd54f;
|
|
165
|
+
box-shadow: 0 0 0 1px rgba(249, 168, 37, 0.3);
|
|
166
|
+
}
|
|
167
|
+
.dashboard-score-block.tier-4 {
|
|
168
|
+
background: rgba(41, 182, 246, 0.25);
|
|
169
|
+
color: #82b1ff;
|
|
170
|
+
box-shadow: 0 0 0 1px rgba(41, 182, 246, 0.3);
|
|
171
|
+
}
|
|
172
|
+
.dashboard-score-block.tier-5 {
|
|
173
|
+
background: rgba(67, 160, 71, 0.25);
|
|
174
|
+
color: #81c784;
|
|
175
|
+
box-shadow: 0 0 0 1px rgba(67, 160, 71, 0.3);
|
|
176
|
+
}
|
|
127
177
|
|
|
128
178
|
.dashboard-date {
|
|
129
179
|
font-size: 12px;
|
|
130
180
|
color: var(--text-muted);
|
|
131
181
|
}
|
|
132
182
|
|
|
183
|
+
/* ——— AI prompts button in header (between score and date) ——— */
|
|
184
|
+
.btn-ai-prompts-header {
|
|
185
|
+
font-size: 12px;
|
|
186
|
+
font-weight: 600;
|
|
187
|
+
padding: 0.4rem 0.75rem;
|
|
188
|
+
background: var(--surface);
|
|
189
|
+
color: var(--link);
|
|
190
|
+
border: 1px solid var(--border);
|
|
191
|
+
border-radius: var(--radius);
|
|
192
|
+
cursor: pointer;
|
|
193
|
+
white-space: nowrap;
|
|
194
|
+
}
|
|
195
|
+
.btn-ai-prompts-header:hover {
|
|
196
|
+
background: rgba(87, 148, 242, 0.1);
|
|
197
|
+
border-color: var(--link);
|
|
198
|
+
}
|
|
199
|
+
|
|
133
200
|
/* ——— Main content: 2×2 grid, fills viewport, scroll inside cells ——— */
|
|
134
201
|
.dashboard-main {
|
|
135
202
|
flex: 1;
|
|
@@ -196,7 +263,7 @@ body.dashboard-page {
|
|
|
196
263
|
.dashboard-main { padding: 0.5rem 0.75rem; }
|
|
197
264
|
}
|
|
198
265
|
|
|
199
|
-
/* ——— Footer
|
|
266
|
+
/* ——— Footer (hidden when empty; button moved to header) ——— */
|
|
200
267
|
.dashboard-footer {
|
|
201
268
|
flex-shrink: 0;
|
|
202
269
|
padding: 0.6rem 0 0;
|
|
@@ -205,6 +272,12 @@ body.dashboard-page {
|
|
|
205
272
|
display: flex;
|
|
206
273
|
align-items: center;
|
|
207
274
|
}
|
|
275
|
+
.dashboard-footer:empty {
|
|
276
|
+
display: none;
|
|
277
|
+
padding: 0;
|
|
278
|
+
margin: 0;
|
|
279
|
+
border: none;
|
|
280
|
+
}
|
|
208
281
|
|
|
209
282
|
.btn-ai-prompts {
|
|
210
283
|
font: inherit;
|
|
@@ -445,19 +518,32 @@ body.dashboard-page {
|
|
|
445
518
|
.priority-inline { grid-template-columns: 1fr; }
|
|
446
519
|
}
|
|
447
520
|
|
|
448
|
-
/* ——— Heatmap panel
|
|
521
|
+
/* ——— Heatmap panel ——— */
|
|
449
522
|
.panel-heatmap .panel-header-heatmap {
|
|
450
523
|
display: flex;
|
|
524
|
+
flex-direction: column;
|
|
525
|
+
gap: 0.35rem;
|
|
526
|
+
border-left: 2px solid var(--tier-3);
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
.panel-heatmap .panel-title { margin-right: 0.5rem; }
|
|
530
|
+
|
|
531
|
+
.panel-heatmap-row {
|
|
532
|
+
display: flex;
|
|
533
|
+
align-items: center;
|
|
534
|
+
gap: 1rem;
|
|
451
535
|
flex-wrap: wrap;
|
|
452
|
-
align-items: baseline;
|
|
453
|
-
gap: 0.75rem 1.25rem;
|
|
454
536
|
}
|
|
455
537
|
|
|
456
|
-
.panel-heatmap .panel-
|
|
457
|
-
|
|
538
|
+
.panel-heatmap-row .panel-desc {
|
|
539
|
+
margin: 0;
|
|
540
|
+
flex: 0 1 auto;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
.panel-heatmap-row .legend-inline {
|
|
544
|
+
margin: 0;
|
|
545
|
+
margin-left: auto;
|
|
458
546
|
}
|
|
459
|
-
.panel-heatmap .panel-title { margin-right: 0.5rem; }
|
|
460
|
-
.panel-heatmap .panel-desc { margin: 0.15rem 0 0; flex-basis: 100%; }
|
|
461
547
|
|
|
462
548
|
.panel-list .panel-header {
|
|
463
549
|
border-left: 2px solid var(--link);
|
|
@@ -465,7 +551,6 @@ body.dashboard-page {
|
|
|
465
551
|
|
|
466
552
|
.legend-inline {
|
|
467
553
|
margin: 0;
|
|
468
|
-
margin-left: auto;
|
|
469
554
|
}
|
|
470
555
|
|
|
471
556
|
.panel-body-heatmap {
|
package/dist/reports/html.js
CHANGED
|
@@ -92,11 +92,15 @@ function buildHtml(run, title, darkMode, css, script) {
|
|
|
92
92
|
<span class="dashboard-meta">${escapeHtml(run.repoPath)}</span>
|
|
93
93
|
</div>
|
|
94
94
|
<div class="dashboard-header-right">
|
|
95
|
-
<div class="dashboard-score tier-${cleanliness.tier}" aria-label="Score ${cleanliness.tier} of 5">
|
|
96
|
-
<
|
|
97
|
-
|
|
98
|
-
|
|
95
|
+
<div class="dashboard-score-block tier-${cleanliness.tier}" aria-label="Score ${cleanliness.tier} of 5">
|
|
96
|
+
<div class="dashboard-score-main">
|
|
97
|
+
<span class="dashboard-score-value">${cleanliness.tier}</span>
|
|
98
|
+
<span class="dashboard-score-of">of 5</span>
|
|
99
|
+
<span class="dashboard-score-label">${escapeHtml(cleanliness.label)}</span>
|
|
100
|
+
</div>
|
|
101
|
+
<p class="dashboard-score-desc">${escapeHtml(cleanliness.description)}</p>
|
|
99
102
|
</div>
|
|
103
|
+
<button type="button" class="btn-ai-prompts btn-ai-prompts-header" id="btnAiPrompts">AI cleanup prompts</button>
|
|
100
104
|
<span class="dashboard-date">${run.completedAt ?? run.startedAt}</span>
|
|
101
105
|
</div>
|
|
102
106
|
</header>
|
|
@@ -124,13 +128,15 @@ function buildHtml(run, title, darkMode, css, script) {
|
|
|
124
128
|
<div class="panel panel-heatmap">
|
|
125
129
|
<div class="panel-header panel-header-heatmap">
|
|
126
130
|
<h2 class="panel-title">Files by debt</h2>
|
|
127
|
-
<
|
|
128
|
-
|
|
129
|
-
<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
<div class="panel-heatmap-row">
|
|
132
|
+
<p class="panel-desc">Size = complexity + churn. Color = severity. Click for details.</p>
|
|
133
|
+
<div class="legend legend-inline">
|
|
134
|
+
<span><span class="swatch swatch-crit"></span> Critical</span>
|
|
135
|
+
<span><span class="swatch swatch-high"></span> High</span>
|
|
136
|
+
<span><span class="swatch swatch-med"></span> Medium</span>
|
|
137
|
+
<span><span class="swatch swatch-low"></span> Low</span>
|
|
138
|
+
<span><span class="swatch swatch-none"></span> None</span>
|
|
139
|
+
</div>
|
|
134
140
|
</div>
|
|
135
141
|
</div>
|
|
136
142
|
<div class="panel-body panel-body-heatmap">
|
|
@@ -179,9 +185,7 @@ function buildHtml(run, title, darkMode, css, script) {
|
|
|
179
185
|
</div>
|
|
180
186
|
</div>
|
|
181
187
|
|
|
182
|
-
<div class="dashboard-footer">
|
|
183
|
-
<button type="button" class="btn-ai-prompts" id="btnAiPrompts">AI cleanup prompts</button>
|
|
184
|
-
</div>
|
|
188
|
+
<div class="dashboard-footer"></div>
|
|
185
189
|
</main>
|
|
186
190
|
|
|
187
191
|
<div id="aiPromptsOverlay" class="overlay" aria-hidden="true">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tech-debt-visualizer",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10",
|
|
4
4
|
"description": "Language-agnostic CLI that analyzes repos and generates interactive technical debt visualizations with AI-powered insights",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|