repo-wrapped 0.0.7 → 0.0.9
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/.github/agents/complete.agent.md +257 -0
- package/.github/agents/feature-scaffold.agent.md +248 -0
- package/.github/agents/jsdoc.agent.md +243 -0
- package/.github/agents/plan.agent.md +202 -0
- package/.github/agents/spec-writer.agent.md +169 -0
- package/.github/agents/test-writer.agent.md +169 -0
- package/.stylelintrc.json +27 -0
- package/README.md +94 -94
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +446 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +446 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov.info +7039 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/dist/commands/generate.js +56 -56
- package/dist/config/defaults.js +158 -0
- package/dist/config/index.js +10 -0
- package/dist/features/achievements/data/achievements.json +284 -0
- package/dist/features/achievements/engine.js +140 -0
- package/dist/features/achievements/evaluators.js +246 -0
- package/dist/features/achievements/helpers.js +58 -0
- package/dist/features/achievements/index.js +57 -0
- package/dist/features/achievements/loader.js +88 -0
- package/dist/features/achievements/template.js +155 -0
- package/dist/features/achievements/types.js +7 -0
- package/dist/features/commit-quality/analyzer.js +378 -0
- package/dist/features/commit-quality/analyzer.test.js +484 -0
- package/dist/features/commit-quality/index.js +28 -0
- package/dist/features/commit-quality/template.js +114 -0
- package/dist/features/commit-quality/types.js +2 -0
- package/dist/features/comparison/analyzer.js +222 -0
- package/dist/features/comparison/index.js +28 -0
- package/dist/features/comparison/template.js +119 -0
- package/dist/features/comparison/types.js +2 -0
- package/dist/features/contribution-graph/index.js +9 -0
- package/dist/features/contribution-graph/template.js +89 -0
- package/dist/features/events/index.js +31 -0
- package/dist/features/events/parser.js +253 -0
- package/dist/features/events/template.js +113 -0
- package/dist/features/events/types.js +2 -0
- package/dist/features/executive-summary/generator.js +275 -0
- package/dist/features/executive-summary/index.js +27 -0
- package/dist/features/executive-summary/template.js +80 -0
- package/dist/features/executive-summary/types.js +2 -0
- package/dist/features/gaps/analyzer.js +298 -0
- package/dist/features/gaps/analyzer.test.js +517 -0
- package/dist/features/gaps/index.js +27 -0
- package/dist/features/gaps/template.js +190 -0
- package/dist/features/gaps/types.js +2 -0
- package/dist/features/impact/analyzer.js +248 -0
- package/dist/features/impact/index.js +26 -0
- package/dist/features/impact/template.js +118 -0
- package/dist/features/impact/types.js +2 -0
- package/dist/features/index.js +40 -0
- package/dist/features/knowledge/analyzer.js +385 -0
- package/dist/features/knowledge/index.js +26 -0
- package/dist/features/knowledge/template.js +239 -0
- package/dist/features/knowledge/types.js +2 -0
- package/dist/features/streaks/calculator.js +184 -0
- package/dist/features/streaks/calculator.test.js +366 -0
- package/dist/features/streaks/index.js +36 -0
- package/dist/features/streaks/template.js +41 -0
- package/dist/features/streaks/types.js +9 -0
- package/dist/features/team/analyzer.js +316 -0
- package/dist/features/team/index.js +30 -0
- package/dist/features/team/template.js +146 -0
- package/dist/features/team/types.js +2 -0
- package/dist/features/time-patterns/analyzer.js +319 -0
- package/dist/features/time-patterns/analyzer.test.js +278 -0
- package/dist/features/time-patterns/index.js +37 -0
- package/dist/features/time-patterns/template.js +109 -0
- package/dist/features/time-patterns/types.js +9 -0
- package/dist/features/velocity/analyzer.js +257 -0
- package/dist/features/velocity/analyzer.test.js +383 -0
- package/dist/features/velocity/index.js +27 -0
- package/dist/features/velocity/template.js +189 -0
- package/dist/features/velocity/types.js +2 -0
- package/dist/generators/html/scripts/knowledge.js +17 -0
- package/dist/generators/html/styles/base.css +8 -3
- package/dist/generators/html/styles/components.css +121 -1
- package/dist/generators/html/styles/knowledge.css +21 -0
- package/dist/generators/html/styles/leaddev.css +108 -48
- package/dist/generators/html/styles/strategic-insights.css +1337 -0
- package/dist/generators/html/templates/commitQualitySection.js +28 -2
- package/dist/generators/html/templates/executiveSummarySection.js +0 -4
- package/dist/generators/html/templates/impactSection.js +8 -6
- package/dist/generators/html/templates/knowledgeSection.js +16 -2
- package/dist/generators/html/templates/velocitySection.js +2 -2
- package/dist/generators/html/types.js +7 -0
- package/dist/generators/html/utils/analysisRunner.js +93 -0
- package/dist/generators/html/utils/cardBuilder.js +47 -0
- package/dist/generators/html/utils/contextBuilder.js +54 -0
- package/dist/generators/html/utils/htmlDocumentBuilder.js +396 -0
- package/dist/generators/html/utils/kpiBuilder.js +76 -0
- package/dist/generators/html/utils/sectionWrapper.js +71 -0
- package/dist/generators/html/utils/styleLoader.js +2 -2
- package/dist/html/analysisRunner.js +93 -0
- package/dist/html/htmlDocumentBuilder.js +396 -0
- package/dist/html/index.js +29 -0
- package/dist/html/shared/colorUtils.js +61 -0
- package/dist/html/shared/commitMapBuilder.js +23 -0
- package/dist/html/shared/components/cardBuilder.js +47 -0
- package/dist/html/shared/components/index.js +18 -0
- package/dist/html/shared/components/kpiBuilder.js +76 -0
- package/dist/html/shared/components/sectionWrapper.js +71 -0
- package/dist/html/shared/contextBuilder.js +54 -0
- package/dist/html/shared/dateRangeCalculator.js +56 -0
- package/dist/html/shared/developerStatsCalculator.js +28 -0
- package/dist/html/shared/index.js +39 -0
- package/dist/html/shared/scriptLoader.js +15 -0
- package/dist/html/shared/scripts/export.js +125 -0
- package/dist/html/shared/scripts/knowledge.js +137 -0
- package/dist/html/shared/scripts/modal.js +68 -0
- package/dist/html/shared/scripts/navigation.js +156 -0
- package/dist/html/shared/scripts/tabs.js +18 -0
- package/dist/html/shared/scripts/tooltip.js +21 -0
- package/dist/html/shared/styleLoader.js +18 -0
- package/dist/html/shared/styles/achievements.css +387 -0
- package/dist/html/shared/styles/base.css +822 -0
- package/dist/html/shared/styles/components.css +1511 -0
- package/dist/html/shared/styles/knowledge.css +242 -0
- package/dist/html/shared/styles/strategic-insights.css +1337 -0
- package/dist/html/shared/weekGrouper.js +27 -0
- package/dist/html/types.js +7 -0
- package/dist/index.js +39 -39
- package/dist/test/helpers/commitFactory.js +166 -0
- package/dist/test/helpers/dateUtils.js +101 -0
- package/dist/test/helpers/index.js +29 -0
- package/dist/test/setup.js +17 -0
- package/dist/test/smoke.test.js +94 -0
- package/dist/types/achievements.js +7 -0
- package/dist/types/analysis.js +7 -0
- package/dist/types/core.js +7 -0
- package/dist/types/index.js +38 -0
- package/dist/types/options.js +7 -0
- package/dist/types/shared.js +7 -0
- package/dist/types/strategic.js +7 -0
- package/dist/types/summary.js +7 -0
- package/dist/utils/achievementDefinitions.js +22 -22
- package/dist/utils/analyzerContextBuilder.js +124 -0
- package/dist/utils/commitQualityAnalyzer.js +13 -2
- package/dist/utils/emptyResults.js +95 -0
- package/dist/utils/fileHotspotAnalyzer.js +4 -12
- package/dist/utils/gapAnalyzer.js +26 -28
- package/dist/utils/gitParser.test.js +363 -0
- package/dist/utils/htmlGenerator.js +62 -466
- package/dist/utils/impactAnalyzer.js +20 -19
- package/dist/utils/knowledgeDistributionAnalyzer.js +32 -27
- package/dist/utils/matrixGenerator.js +13 -13
- package/dist/utils/rangeComparisonAnalyzer.js +2 -2
- package/dist/utils/streakCalculator.js +77 -27
- package/dist/utils/teamAnalyzer.js +20 -1
- package/dist/utils/timePatternAnalyzer.js +18 -3
- package/dist/utils/velocityAnalyzer.js +23 -18
- package/dist/utils/wrappedGenerator.js +8 -8
- package/package.json +74 -64
- package/vitest.config.ts +46 -0
- package/SPECS.md +0 -490
- package/dist/cli.js +0 -24
- package/dist/commands/index.js +0 -24
- package/test-team.txt +0 -2
|
@@ -223,6 +223,49 @@
|
|
|
223
223
|
color: var(--text-link);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
+
/* === Reusable Stat Card Base === */
|
|
227
|
+
.stat-card-base {
|
|
228
|
+
display: flex;
|
|
229
|
+
flex-direction: column;
|
|
230
|
+
align-items: center;
|
|
231
|
+
justify-content: center;
|
|
232
|
+
text-align: center;
|
|
233
|
+
gap: var(--spacing-sm);
|
|
234
|
+
padding: var(--spacing-md);
|
|
235
|
+
background: var(--bg-primary);
|
|
236
|
+
border: 1px solid var(--border-default);
|
|
237
|
+
border-radius: var(--radius-md);
|
|
238
|
+
transition: border-color var(--transition-fast);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.stat-card-base:hover {
|
|
242
|
+
border-color: var(--border-emphasis);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.stat-card-base .stat-icon {
|
|
246
|
+
font-size: 32px;
|
|
247
|
+
line-height: 1;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.stat-card-base .stat-label {
|
|
251
|
+
font-size: var(--font-size-sm);
|
|
252
|
+
color: var(--text-secondary);
|
|
253
|
+
text-transform: uppercase;
|
|
254
|
+
letter-spacing: 0.5px;
|
|
255
|
+
font-weight: var(--font-weight-medium);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.stat-card-base .stat-value {
|
|
259
|
+
font-size: 24px;
|
|
260
|
+
font-weight: var(--font-weight-semibold);
|
|
261
|
+
color: var(--text-primary);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.stat-card-base .stat-detail {
|
|
265
|
+
font-size: var(--font-size-sm);
|
|
266
|
+
color: var(--text-secondary);
|
|
267
|
+
}
|
|
268
|
+
|
|
226
269
|
/* === Streak Section === */
|
|
227
270
|
.streak-section {
|
|
228
271
|
margin-top: var(--spacing-xl);
|
|
@@ -624,7 +667,51 @@
|
|
|
624
667
|
font-weight: var(--font-weight-semibold);
|
|
625
668
|
background: var(--border-subtle);
|
|
626
669
|
padding: var(--spacing-xs) var(--spacing-sm);
|
|
627
|
-
border-radius:
|
|
670
|
+
border-radius: var(--radius-xl);
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
/* Subject Quality Breakdown */
|
|
674
|
+
.subject-quality-breakdown {
|
|
675
|
+
margin: var(--spacing-lg) 0;
|
|
676
|
+
padding: var(--spacing-md);
|
|
677
|
+
background: var(--bg-primary);
|
|
678
|
+
border: 1px solid var(--border-default);
|
|
679
|
+
border-radius: var(--radius-md);
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
.subject-quality-breakdown h3 {
|
|
683
|
+
margin-top: 0;
|
|
684
|
+
margin-bottom: var(--spacing-md);
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
.subject-metrics-grid {
|
|
688
|
+
display: grid;
|
|
689
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
690
|
+
gap: var(--spacing-md);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.subject-metric {
|
|
694
|
+
display: flex;
|
|
695
|
+
flex-direction: column;
|
|
696
|
+
gap: var(--spacing-xs);
|
|
697
|
+
padding: var(--spacing-sm);
|
|
698
|
+
background: var(--bg-secondary);
|
|
699
|
+
border-radius: var(--radius-sm);
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
.subject-metric .metric-icon {
|
|
703
|
+
font-size: var(--font-size-lg);
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
.subject-metric .metric-name {
|
|
707
|
+
font-size: var(--font-size-sm);
|
|
708
|
+
font-weight: var(--font-weight-medium);
|
|
709
|
+
color: var(--text-primary);
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
.subject-metric .metric-detail {
|
|
713
|
+
font-size: var(--font-size-xs);
|
|
714
|
+
color: var(--text-muted);
|
|
628
715
|
}
|
|
629
716
|
|
|
630
717
|
.types-grid {
|
|
@@ -1062,6 +1149,12 @@
|
|
|
1062
1149
|
color: var(--text-primary);
|
|
1063
1150
|
}
|
|
1064
1151
|
|
|
1152
|
+
.impact-content {
|
|
1153
|
+
display: flex;
|
|
1154
|
+
flex-direction: column;
|
|
1155
|
+
gap: 8px;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1065
1158
|
.impact-overview {
|
|
1066
1159
|
display: flex;
|
|
1067
1160
|
gap: var(--spacing-xl);
|
|
@@ -1124,12 +1217,18 @@
|
|
|
1124
1217
|
.impact-breakdown {
|
|
1125
1218
|
flex: 1;
|
|
1126
1219
|
min-width: 250px;
|
|
1220
|
+
margin-top: 0;
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1223
|
+
.impact-breakdown h3 {
|
|
1224
|
+
margin-top: 0;
|
|
1127
1225
|
}
|
|
1128
1226
|
|
|
1129
1227
|
.breakdown-items {
|
|
1130
1228
|
display: flex;
|
|
1131
1229
|
flex-direction: column;
|
|
1132
1230
|
gap: var(--spacing-md);
|
|
1231
|
+
margin-top: var(--spacing-sm);
|
|
1133
1232
|
}
|
|
1134
1233
|
|
|
1135
1234
|
.breakdown-item {
|
|
@@ -1147,6 +1246,19 @@
|
|
|
1147
1246
|
.breakdown-label { color: var(--text-secondary); }
|
|
1148
1247
|
.breakdown-value { color: var(--text-primary); font-weight: var(--font-weight-medium); }
|
|
1149
1248
|
|
|
1249
|
+
.info-tooltip {
|
|
1250
|
+
color: var(--text-muted);
|
|
1251
|
+
cursor: help;
|
|
1252
|
+
font-size: 0.85em;
|
|
1253
|
+
margin-left: 4px;
|
|
1254
|
+
opacity: 0.6;
|
|
1255
|
+
transition: opacity 0.2s;
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1258
|
+
.info-tooltip:hover {
|
|
1259
|
+
opacity: 1;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1150
1262
|
.breakdown-bar {
|
|
1151
1263
|
height: 8px;
|
|
1152
1264
|
background: var(--border-subtle);
|
|
@@ -1225,6 +1337,14 @@
|
|
|
1225
1337
|
color: var(--accent-blue);
|
|
1226
1338
|
}
|
|
1227
1339
|
|
|
1340
|
+
.impact-files {
|
|
1341
|
+
margin-top: var(--spacing-lg);
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1344
|
+
.impact-files h3 {
|
|
1345
|
+
margin-bottom: var(--spacing-sm);
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1228
1348
|
.insights-list,
|
|
1229
1349
|
.recommendations {
|
|
1230
1350
|
margin-top: var(--spacing-lg);
|
|
@@ -214,6 +214,27 @@
|
|
|
214
214
|
text-align: center;
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
+
.more-files-btn {
|
|
218
|
+
display: block;
|
|
219
|
+
width: 100%;
|
|
220
|
+
padding: var(--spacing-sm) var(--spacing-md);
|
|
221
|
+
margin-top: var(--spacing-sm);
|
|
222
|
+
background: var(--bg-tertiary);
|
|
223
|
+
border: 1px solid var(--border-default);
|
|
224
|
+
border-radius: var(--radius-sm);
|
|
225
|
+
color: var(--text-secondary);
|
|
226
|
+
font-size: var(--font-size-sm);
|
|
227
|
+
cursor: pointer;
|
|
228
|
+
transition: all 0.2s ease;
|
|
229
|
+
text-align: center;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.more-files-btn:hover {
|
|
233
|
+
background: var(--bg-secondary);
|
|
234
|
+
color: var(--text-primary);
|
|
235
|
+
border-color: var(--border-emphasis);
|
|
236
|
+
}
|
|
237
|
+
|
|
217
238
|
/* Risk Badge Enhancement for Files */
|
|
218
239
|
.file-table .risk-badge {
|
|
219
240
|
font-size: var(--font-size-xs);
|
|
@@ -2,62 +2,81 @@
|
|
|
2
2
|
|
|
3
3
|
/* ===== Velocity Section ===== */
|
|
4
4
|
.velocity-section {
|
|
5
|
-
margin-bottom:
|
|
5
|
+
margin-bottom: var(--spacing-xl);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.velocity-stats {
|
|
9
9
|
display: grid;
|
|
10
10
|
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
11
|
-
gap:
|
|
12
|
-
margin-bottom:
|
|
11
|
+
gap: var(--spacing-md);
|
|
12
|
+
margin-bottom: var(--spacing-lg);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.velocity-stat-card {
|
|
16
|
-
background: var(--card-bg);
|
|
17
|
-
border-radius: 12px;
|
|
18
|
-
padding: 1rem;
|
|
19
16
|
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
20
18
|
align-items: center;
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
justify-content: center;
|
|
20
|
+
text-align: center;
|
|
21
|
+
gap: var(--spacing-sm);
|
|
22
|
+
padding: var(--spacing-md);
|
|
23
|
+
background: var(--bg-primary);
|
|
24
|
+
border: 1px solid var(--border-default);
|
|
25
|
+
border-radius: var(--radius-md);
|
|
26
|
+
transition: border-color var(--transition-fast);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.velocity-stat-card:hover {
|
|
30
|
+
border-color: var(--border-emphasis);
|
|
23
31
|
}
|
|
24
32
|
|
|
25
33
|
.velocity-stat-card .stat-icon {
|
|
26
|
-
font-size:
|
|
34
|
+
font-size: 32px;
|
|
35
|
+
line-height: 1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.velocity-stat-card .stat-info {
|
|
39
|
+
display: flex;
|
|
40
|
+
flex-direction: column;
|
|
41
|
+
align-items: center;
|
|
27
42
|
}
|
|
28
43
|
|
|
29
44
|
.velocity-stat-card .stat-label {
|
|
30
|
-
font-size:
|
|
31
|
-
color: var(--text-
|
|
45
|
+
font-size: var(--font-size-sm);
|
|
46
|
+
color: var(--text-secondary);
|
|
32
47
|
text-transform: uppercase;
|
|
33
48
|
letter-spacing: 0.5px;
|
|
49
|
+
font-weight: var(--font-weight-medium);
|
|
50
|
+
margin-bottom: var(--spacing-xs);
|
|
34
51
|
}
|
|
35
52
|
|
|
36
53
|
.velocity-stat-card .stat-value {
|
|
37
|
-
font-size:
|
|
38
|
-
font-weight:
|
|
54
|
+
font-size: 24px;
|
|
55
|
+
font-weight: var(--font-weight-semibold);
|
|
56
|
+
color: var(--text-primary);
|
|
57
|
+
margin-bottom: var(--spacing-xs);
|
|
39
58
|
}
|
|
40
59
|
|
|
41
60
|
.velocity-stat-card .stat-value.positive { color: #69db7c; }
|
|
42
61
|
.velocity-stat-card .stat-value.negative { color: #ff6b6b; }
|
|
43
|
-
.velocity-stat-card .stat-value.neutral { color: var(--text-
|
|
62
|
+
.velocity-stat-card .stat-value.neutral { color: var(--text-secondary); }
|
|
44
63
|
|
|
45
64
|
.velocity-stat-card .stat-detail {
|
|
46
|
-
font-size:
|
|
47
|
-
color: var(--text-
|
|
65
|
+
font-size: var(--font-size-sm);
|
|
66
|
+
color: var(--text-secondary);
|
|
48
67
|
}
|
|
49
68
|
|
|
50
69
|
.velocity-chart-container {
|
|
51
|
-
background: var(--
|
|
52
|
-
border-radius:
|
|
53
|
-
padding:
|
|
54
|
-
border: 1px solid var(--border-
|
|
55
|
-
margin-bottom:
|
|
70
|
+
background: var(--bg-primary);
|
|
71
|
+
border-radius: var(--radius-md);
|
|
72
|
+
padding: var(--spacing-lg);
|
|
73
|
+
border: 1px solid var(--border-default);
|
|
74
|
+
margin-bottom: var(--spacing-lg);
|
|
56
75
|
}
|
|
57
76
|
|
|
58
77
|
.velocity-chart-container h3 {
|
|
59
78
|
margin-top: 0;
|
|
60
|
-
margin-bottom:
|
|
79
|
+
margin-bottom: var(--spacing-md);
|
|
61
80
|
}
|
|
62
81
|
|
|
63
82
|
.velocity-chart {
|
|
@@ -77,8 +96,9 @@
|
|
|
77
96
|
}
|
|
78
97
|
|
|
79
98
|
.velocity-chart .legend-label {
|
|
80
|
-
fill: var(--text-
|
|
81
|
-
font-size:
|
|
99
|
+
fill: var(--text-primary);
|
|
100
|
+
font-size: 12px;
|
|
101
|
+
font-weight: 500;
|
|
82
102
|
}
|
|
83
103
|
|
|
84
104
|
.velocity-chart .anomaly-marker {
|
|
@@ -158,47 +178,87 @@
|
|
|
158
178
|
|
|
159
179
|
/* ===== Gap Section ===== */
|
|
160
180
|
.gap-section {
|
|
161
|
-
margin-bottom:
|
|
181
|
+
margin-bottom: var(--spacing-xl);
|
|
162
182
|
}
|
|
163
183
|
|
|
164
184
|
.gap-stats {
|
|
165
185
|
display: grid;
|
|
166
186
|
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
|
167
|
-
gap:
|
|
168
|
-
margin-bottom:
|
|
187
|
+
gap: var(--spacing-md);
|
|
188
|
+
margin-bottom: var(--spacing-lg);
|
|
169
189
|
}
|
|
170
190
|
|
|
171
191
|
.gap-stat-card {
|
|
172
|
-
background: var(--card-bg);
|
|
173
|
-
border-radius: 12px;
|
|
174
|
-
padding: 1rem;
|
|
175
192
|
display: flex;
|
|
193
|
+
flex-direction: column;
|
|
176
194
|
align-items: center;
|
|
177
|
-
|
|
178
|
-
|
|
195
|
+
justify-content: center;
|
|
196
|
+
text-align: center;
|
|
197
|
+
gap: var(--spacing-sm);
|
|
198
|
+
padding: var(--spacing-md);
|
|
199
|
+
background: var(--bg-primary);
|
|
200
|
+
border: 1px solid var(--border-default);
|
|
201
|
+
border-radius: var(--radius-md);
|
|
202
|
+
transition: border-color var(--transition-fast);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.gap-stat-card:hover {
|
|
206
|
+
border-color: var(--border-emphasis);
|
|
179
207
|
}
|
|
180
208
|
|
|
181
209
|
.gap-stat-card.risk-card {
|
|
182
210
|
border-left: 4px solid var(--risk-color);
|
|
183
211
|
}
|
|
184
212
|
|
|
213
|
+
.gap-stat-card .stat-icon {
|
|
214
|
+
font-size: 32px;
|
|
215
|
+
line-height: 1;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.gap-stat-card .stat-info {
|
|
219
|
+
display: flex;
|
|
220
|
+
flex-direction: column;
|
|
221
|
+
align-items: center;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.gap-stat-card .stat-label {
|
|
225
|
+
font-size: var(--font-size-sm);
|
|
226
|
+
color: var(--text-secondary);
|
|
227
|
+
text-transform: uppercase;
|
|
228
|
+
letter-spacing: 0.5px;
|
|
229
|
+
font-weight: var(--font-weight-medium);
|
|
230
|
+
margin-bottom: var(--spacing-xs);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.gap-stat-card .stat-value {
|
|
234
|
+
font-size: 24px;
|
|
235
|
+
font-weight: var(--font-weight-semibold);
|
|
236
|
+
color: var(--text-primary);
|
|
237
|
+
margin-bottom: var(--spacing-xs);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.gap-stat-card .stat-detail {
|
|
241
|
+
font-size: var(--font-size-sm);
|
|
242
|
+
color: var(--text-secondary);
|
|
243
|
+
}
|
|
244
|
+
|
|
185
245
|
.gap-stat-card .stat-value.risk-low { color: #69db7c; }
|
|
186
246
|
.gap-stat-card .stat-value.risk-medium { color: #ffd43b; }
|
|
187
247
|
.gap-stat-card .stat-value.risk-high { color: #ff922b; }
|
|
188
248
|
.gap-stat-card .stat-value.risk-critical { color: #ff6b6b; }
|
|
189
249
|
|
|
190
250
|
.risk-factors {
|
|
191
|
-
background: var(--
|
|
192
|
-
border-radius:
|
|
193
|
-
padding:
|
|
194
|
-
border: 1px solid var(--border-
|
|
195
|
-
margin-bottom:
|
|
251
|
+
background: var(--bg-primary);
|
|
252
|
+
border-radius: var(--radius-md);
|
|
253
|
+
padding: var(--spacing-md) var(--spacing-lg);
|
|
254
|
+
border: 1px solid var(--border-default);
|
|
255
|
+
margin-bottom: var(--spacing-lg);
|
|
196
256
|
}
|
|
197
257
|
|
|
198
258
|
.risk-factors h4 {
|
|
199
|
-
margin: 0 0
|
|
200
|
-
font-size:
|
|
201
|
-
color: var(--text-
|
|
259
|
+
margin: 0 0 var(--spacing-sm) 0;
|
|
260
|
+
font-size: var(--font-size-sm);
|
|
261
|
+
color: var(--text-secondary);
|
|
202
262
|
}
|
|
203
263
|
|
|
204
264
|
.risk-factors ul {
|
|
@@ -207,16 +267,16 @@
|
|
|
207
267
|
}
|
|
208
268
|
|
|
209
269
|
.risk-factors li {
|
|
210
|
-
margin-bottom:
|
|
211
|
-
font-size:
|
|
270
|
+
margin-bottom: var(--spacing-xs);
|
|
271
|
+
font-size: var(--font-size-sm);
|
|
212
272
|
}
|
|
213
273
|
|
|
214
274
|
.gap-timeline-container {
|
|
215
|
-
background: var(--
|
|
216
|
-
border-radius:
|
|
217
|
-
padding:
|
|
218
|
-
border: 1px solid var(--border-
|
|
219
|
-
margin-bottom:
|
|
275
|
+
background: var(--bg-primary);
|
|
276
|
+
border-radius: var(--radius-md);
|
|
277
|
+
padding: var(--spacing-lg);
|
|
278
|
+
border: 1px solid var(--border-default);
|
|
279
|
+
margin-bottom: var(--spacing-lg);
|
|
220
280
|
}
|
|
221
281
|
|
|
222
282
|
.gap-timeline-container h3 {
|
|
@@ -1027,7 +1087,7 @@
|
|
|
1027
1087
|
|
|
1028
1088
|
.insights-list {
|
|
1029
1089
|
list-style: none;
|
|
1030
|
-
padding:
|
|
1090
|
+
padding: var(--spacing-md);
|
|
1031
1091
|
margin: 0;
|
|
1032
1092
|
}
|
|
1033
1093
|
|