solidstats 2.0.0 → 3.0.0.beta.1

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.
Files changed (138) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -63
  3. data/README.md +27 -33
  4. data/Rakefile +3 -3
  5. data/app/assets/stylesheets/solidstats/application.css +1 -6
  6. data/app/assets/stylesheets/solidstats/dashboard.css +48 -0
  7. data/app/controllers/solidstats/dashboard_controller.rb +81 -62
  8. data/app/controllers/solidstats/logs_controller.rb +72 -0
  9. data/app/controllers/solidstats/performance_controller.rb +25 -0
  10. data/app/controllers/solidstats/productivity_controller.rb +39 -0
  11. data/app/controllers/solidstats/quality_controller.rb +152 -0
  12. data/app/controllers/solidstats/securities_controller.rb +30 -0
  13. data/app/helpers/solidstats/application_helper.rb +124 -11
  14. data/app/helpers/solidstats/performance_helper.rb +87 -0
  15. data/app/helpers/solidstats/productivity_helper.rb +38 -0
  16. data/app/services/solidstats/bundler_audit_service.rb +206 -0
  17. data/app/services/solidstats/coverage_compass_service.rb +335 -0
  18. data/app/services/solidstats/load_lens_service.rb +454 -0
  19. data/app/services/solidstats/log_size_monitor_service.rb +207 -76
  20. data/app/services/solidstats/my_todo_service.rb +242 -0
  21. data/app/services/solidstats/style_patrol_service.rb +319 -0
  22. data/app/views/layouts/solidstats/application.html.erb +8 -2
  23. data/app/views/layouts/solidstats/dashboard.html.erb +84 -0
  24. data/app/views/solidstats/dashboard/dashboard.html.erb +39 -0
  25. data/app/views/solidstats/logs/logs_size.html.erb +409 -0
  26. data/app/views/solidstats/performance/load_lens.html.erb +158 -0
  27. data/app/views/solidstats/productivity/_todo_list.html.erb +49 -0
  28. data/app/views/solidstats/productivity/my_todos.html.erb +84 -0
  29. data/app/views/solidstats/quality/coverage_compass.html.erb +420 -0
  30. data/app/views/solidstats/quality/style_patrol.html.erb +463 -0
  31. data/app/views/solidstats/securities/bundler_audit.html.erb +345 -0
  32. data/app/views/solidstats/shared/_dashboard_card.html.erb +160 -0
  33. data/app/views/solidstats/shared/_quick_actions.html.erb +26 -0
  34. data/config/routes.rb +32 -7
  35. data/lib/generators/solidstats/install/install_generator.rb +28 -2
  36. data/lib/generators/solidstats/install/templates/README +7 -0
  37. data/lib/solidstats/engine.rb +9 -114
  38. data/lib/solidstats/version.rb +1 -1
  39. data/lib/solidstats.rb +2 -299
  40. data/lib/tasks/solidstats_install.rake +2 -122
  41. data/lib/tasks/solidstats_performance.rake +84 -0
  42. metadata +32 -103
  43. data/app/assets/javascripts/solidstats/application.js +0 -257
  44. data/app/assets/javascripts/solidstats/dashboard.js +0 -225
  45. data/app/assets/javascripts/solidstats/gem_metadata.js +0 -554
  46. data/app/assets/stylesheets/solidstats/components/action_button.css +0 -99
  47. data/app/assets/stylesheets/solidstats/components/dashboard.css +0 -151
  48. data/app/assets/stylesheets/solidstats/components/dashboard_header.css +0 -93
  49. data/app/assets/stylesheets/solidstats/components/dashboard_layout.css +0 -97
  50. data/app/assets/stylesheets/solidstats/components/gem_metadata.css +0 -1403
  51. data/app/assets/stylesheets/solidstats/components/navigation.css +0 -80
  52. data/app/assets/stylesheets/solidstats/components/quick_navigation.css +0 -54
  53. data/app/assets/stylesheets/solidstats/components/security.css +0 -332
  54. data/app/assets/stylesheets/solidstats/components/status_badge.css +0 -58
  55. data/app/assets/stylesheets/solidstats/components/summary_card.css +0 -66
  56. data/app/assets/stylesheets/solidstats/components/tab_navigation.css +0 -95
  57. data/app/components/solidstats/base_component.rb +0 -88
  58. data/app/components/solidstats/code_quality/code_quality_section_component.html.erb +0 -0
  59. data/app/components/solidstats/code_quality/code_quality_section_component.rb +0 -0
  60. data/app/components/solidstats/code_quality/section_component.html.erb +0 -45
  61. data/app/components/solidstats/code_quality/section_component.rb +0 -34
  62. data/app/components/solidstats/dashboard_header_component.html.erb +0 -39
  63. data/app/components/solidstats/dashboard_header_component.rb +0 -33
  64. data/app/components/solidstats/previews/action_button_component_preview/button_vs_link.html.erb +0 -6
  65. data/app/components/solidstats/previews/action_button_component_preview/sizes.html.erb +0 -6
  66. data/app/components/solidstats/previews/action_button_component_preview/variants.html.erb +0 -6
  67. data/app/components/solidstats/previews/action_button_component_preview/with_icons.html.erb +0 -6
  68. data/app/components/solidstats/previews/action_button_component_preview.rb +0 -64
  69. data/app/components/solidstats/previews/navigation_component_preview.rb +0 -74
  70. data/app/components/solidstats/previews/stats_overview_component_preview.rb +0 -100
  71. data/app/components/solidstats/previews/status_badge_component_preview/sizes.html.erb +0 -6
  72. data/app/components/solidstats/previews/status_badge_component_preview/statuses.html.erb +0 -6
  73. data/app/components/solidstats/previews/status_badge_component_preview/with_icons.html.erb +0 -6
  74. data/app/components/solidstats/previews/status_badge_component_preview.rb +0 -49
  75. data/app/components/solidstats/previews/summary_card_component_preview/clickable.html.erb +0 -9
  76. data/app/components/solidstats/previews/summary_card_component_preview/dashboard_layout.html.erb +0 -9
  77. data/app/components/solidstats/previews/summary_card_component_preview/statuses.html.erb +0 -6
  78. data/app/components/solidstats/previews/summary_card_component_preview/value_formats.html.erb +0 -6
  79. data/app/components/solidstats/previews/summary_card_component_preview.rb +0 -67
  80. data/app/components/solidstats/quick_navigation_component.html.erb +0 -8
  81. data/app/components/solidstats/quick_navigation_component.rb +0 -21
  82. data/app/components/solidstats/security/gem_impact_analysis_component.html.erb +0 -44
  83. data/app/components/solidstats/security/gem_impact_analysis_component.rb +0 -45
  84. data/app/components/solidstats/security/overview_component.html.erb +0 -21
  85. data/app/components/solidstats/security/overview_component.rb +0 -104
  86. data/app/components/solidstats/security/section_component.html.erb +0 -26
  87. data/app/components/solidstats/security/section_component.rb +0 -52
  88. data/app/components/solidstats/security/timeline_component.html.erb +0 -39
  89. data/app/components/solidstats/security/timeline_component.rb +0 -43
  90. data/app/components/solidstats/tasks_section_component.html.erb +0 -17
  91. data/app/components/solidstats/tasks_section_component.rb +0 -22
  92. data/app/components/solidstats/ui/action_button_component.html.erb +0 -6
  93. data/app/components/solidstats/ui/action_button_component.rb +0 -71
  94. data/app/components/solidstats/ui/dashboard_layout_component.html.erb +0 -19
  95. data/app/components/solidstats/ui/dashboard_layout_component.rb +0 -85
  96. data/app/components/solidstats/ui/navigation_component.html.erb +0 -34
  97. data/app/components/solidstats/ui/navigation_component.rb +0 -72
  98. data/app/components/solidstats/ui/stats_overview_component.html.erb +0 -14
  99. data/app/components/solidstats/ui/stats_overview_component.rb +0 -78
  100. data/app/components/solidstats/ui/status_badge_component.html.erb +0 -6
  101. data/app/components/solidstats/ui/status_badge_component.rb +0 -42
  102. data/app/components/solidstats/ui/summary_card_component.html.erb +0 -12
  103. data/app/components/solidstats/ui/summary_card_component.rb +0 -63
  104. data/app/components/solidstats/ui/tab_navigation_component.html.erb +0 -22
  105. data/app/components/solidstats/ui/tab_navigation_component.rb +0 -79
  106. data/app/controllers/solidstats/gem_metadata_controller.rb +0 -12
  107. data/app/services/solidstats/audit_service.rb +0 -56
  108. data/app/services/solidstats/data_collector_service.rb +0 -83
  109. data/app/services/solidstats/gem_metadata/fetcher_service.rb +0 -136
  110. data/app/services/solidstats/todo_service.rb +0 -114
  111. data/app/views/solidstats/dashboard/_log_monitor.html.erb +0 -759
  112. data/app/views/solidstats/dashboard/_todos.html.erb +0 -151
  113. data/app/views/solidstats/dashboard/audit/_additional_styles.css +0 -22
  114. data/app/views/solidstats/dashboard/audit/_audit_badge.html.erb +0 -5
  115. data/app/views/solidstats/dashboard/audit/_audit_details.html.erb +0 -495
  116. data/app/views/solidstats/dashboard/audit/_audit_summary.html.erb +0 -26
  117. data/app/views/solidstats/dashboard/audit/_no_vulnerabilities.html.erb +0 -3
  118. data/app/views/solidstats/dashboard/audit/_security_audit.html.erb +0 -14
  119. data/app/views/solidstats/dashboard/audit/_vulnerabilities_table.html.erb +0 -1120
  120. data/app/views/solidstats/dashboard/audit/_vulnerability_details.html.erb +0 -63
  121. data/app/views/solidstats/dashboard/index.html.erb +0 -81
  122. data/app/views/solidstats/gem_metadata/_panel.html.erb +0 -419
  123. data/lib/generators/solidstats/feature/feature_generator.rb +0 -170
  124. data/lib/generators/solidstats/feature/templates/component.html.erb +0 -84
  125. data/lib/generators/solidstats/feature/templates/component.rb.erb +0 -103
  126. data/lib/generators/solidstats/feature/templates/component.scss +0 -243
  127. data/lib/generators/solidstats/feature/templates/component_test.rb.erb +0 -183
  128. data/lib/generators/solidstats/feature/templates/controller.rb.erb +0 -44
  129. data/lib/generators/solidstats/feature/templates/controller_test.rb.erb +0 -111
  130. data/lib/generators/solidstats/feature/templates/detail_view.html.erb +0 -755
  131. data/lib/generators/solidstats/feature/templates/preview.rb.erb +0 -107
  132. data/lib/generators/solidstats/feature/templates/service.rb.erb +0 -132
  133. data/lib/generators/solidstats/feature/templates/service_test.rb.erb +0 -109
  134. data/lib/generators/solidstats/install_generator.rb +0 -109
  135. data/lib/generators/solidstats/templates/initializer.rb +0 -112
  136. data/lib/solidstats/asset_compatibility.rb +0 -238
  137. data/lib/solidstats/asset_manifest.rb +0 -205
  138. data/lib/tasks/solidstats_tasks.rake +0 -4
@@ -1,80 +0,0 @@
1
- /* NavigationComponent Styles */
2
- .dashboard-nav {
3
- display: flex;
4
- align-items: center;
5
- justify-content: space-between;
6
- gap: 2rem;
7
- }
8
-
9
- .dashboard-nav ul {
10
- display: flex;
11
- list-style: none;
12
- margin: 0;
13
- padding: 0;
14
- gap: 1rem;
15
- }
16
-
17
- .dashboard-nav li {
18
- margin: 0;
19
- }
20
-
21
- .nav-item {
22
- display: inline-flex;
23
- align-items: center;
24
- padding: 0.5rem 1rem;
25
- color: #6b7280;
26
- text-decoration: none;
27
- border-radius: 0.375rem;
28
- font-weight: 500;
29
- transition: all 0.15s ease-in-out;
30
- }
31
-
32
- .nav-item:hover {
33
- color: #374151;
34
- background-color: #f3f4f6;
35
- text-decoration: none;
36
- }
37
-
38
- .nav-item.active {
39
- color: #3b82f6;
40
- background-color: #eff6ff;
41
- border: 1px solid #bfdbfe;
42
- }
43
-
44
- .dashboard-actions {
45
- display: flex;
46
- gap: 0.5rem;
47
- }
48
-
49
- .action-button {
50
- display: inline-flex;
51
- align-items: center;
52
- gap: 0.5rem;
53
- padding: 0.5rem 1rem;
54
- background-color: #3b82f6;
55
- color: #ffffff;
56
- text-decoration: none;
57
- border: none;
58
- border-radius: 0.375rem;
59
- font-size: 0.875rem;
60
- font-weight: 500;
61
- cursor: pointer;
62
- transition: all 0.15s ease-in-out;
63
- }
64
-
65
- .action-button:hover:not(:disabled) {
66
- background-color: #2563eb;
67
- text-decoration: none;
68
- color: #ffffff;
69
- }
70
-
71
- .action-button--disabled,
72
- .action-button:disabled {
73
- background-color: #9ca3af;
74
- cursor: not-allowed;
75
- opacity: 0.6;
76
- }
77
-
78
- .action-icon {
79
- font-size: 1em;
80
- }
@@ -1,54 +0,0 @@
1
- /* Quick Navigation Styles */
2
- .quick-nav {
3
- position: fixed;
4
- bottom: 2rem;
5
- right: 2rem;
6
- z-index: 1000;
7
- }
8
-
9
- .quick-nav-toggle {
10
- width: 50px;
11
- height: 50px;
12
- border-radius: 50%;
13
- background-color: #007bff;
14
- color: white;
15
- border: none;
16
- cursor: pointer;
17
- font-size: 1.2rem;
18
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
19
- transition: all 0.3s ease;
20
- }
21
-
22
- .quick-nav-toggle:hover {
23
- background-color: #0056b3;
24
- transform: translateY(-2px);
25
- }
26
-
27
- .quick-nav-menu {
28
- position: absolute;
29
- bottom: 60px;
30
- right: 0;
31
- background: white;
32
- border-radius: 8px;
33
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
34
- padding: 0.5rem 0;
35
- min-width: 160px;
36
- display: none;
37
- }
38
-
39
- .quick-nav:hover .quick-nav-menu {
40
- display: block;
41
- }
42
-
43
- .quick-nav-item {
44
- display: block;
45
- padding: 0.75rem 1rem;
46
- text-decoration: none;
47
- color: #333;
48
- transition: background-color 0.2s;
49
- }
50
-
51
- .quick-nav-item:hover {
52
- background-color: #f8f9fa;
53
- color: #007bff;
54
- }
@@ -1,332 +0,0 @@
1
- /* Security Section Styles */
2
- .security-overview {
3
- margin-bottom: 2rem;
4
- }
5
-
6
- .security-score-container {
7
- display: flex;
8
- gap: 2rem;
9
- align-items: center;
10
- margin-bottom: 2rem;
11
- }
12
-
13
- .security-score {
14
- display: flex;
15
- flex-direction: column;
16
- align-items: center;
17
- justify-content: center;
18
- width: 120px;
19
- height: 120px;
20
- border-radius: 50%;
21
- color: white;
22
- font-weight: bold;
23
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
24
- }
25
-
26
- .score-excellent {
27
- background: linear-gradient(135deg, #27ae60, #2ecc71);
28
- }
29
-
30
- .score-warning {
31
- background: linear-gradient(135deg, #f39c12, #e67e22);
32
- }
33
-
34
- .score-critical {
35
- background: linear-gradient(135deg, #e74c3c, #c0392b);
36
- }
37
-
38
- .score-value {
39
- font-size: 2rem;
40
- line-height: 1;
41
- }
42
-
43
- .score-label {
44
- font-size: 0.8rem;
45
- text-align: center;
46
- line-height: 1.2;
47
- margin-top: 0.25rem;
48
- }
49
-
50
- .security-metrics {
51
- display: flex;
52
- gap: 1rem;
53
- flex: 1;
54
- }
55
-
56
- .metric-item {
57
- flex: 1;
58
- display: flex;
59
- align-items: center;
60
- gap: 1rem;
61
- padding: 1rem;
62
- background-color: #f9fafb;
63
- border-radius: 8px;
64
- transition: transform 0.2s;
65
- }
66
-
67
- .metric-item:hover {
68
- transform: translateY(-2px);
69
- }
70
-
71
- .metric-critical {
72
- border-left: 4px solid #e74c3c;
73
- }
74
-
75
- .metric-warning {
76
- border-left: 4px solid #f39c12;
77
- }
78
-
79
- .metric-icon {
80
- font-size: 1.8rem;
81
- opacity: 0.8;
82
- }
83
-
84
- .metric-data {
85
- flex-grow: 1;
86
- }
87
-
88
- .metric-value {
89
- font-size: 1.8rem;
90
- font-weight: 700;
91
- line-height: 1;
92
- }
93
-
94
- .metric-label {
95
- font-size: 0.85rem;
96
- color: #666;
97
- margin-top: 0.25rem;
98
- }
99
-
100
- /* Gem Impact Analysis */
101
- .gem-impact-analysis {
102
- padding: 1rem 0;
103
- }
104
-
105
- .gems-container {
106
- display: grid;
107
- grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
108
- gap: 1rem;
109
- margin-top: 1.5rem;
110
- }
111
-
112
- .gem-card {
113
- background-color: #fff;
114
- border-radius: 8px;
115
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
116
- overflow: hidden;
117
- transition: transform 0.2s;
118
- }
119
-
120
- .gem-card:hover {
121
- transform: translateY(-2px);
122
- }
123
-
124
- .gem-card.severity-critical {
125
- border-top: 4px solid #e74c3c;
126
- }
127
-
128
- .gem-card.severity-high {
129
- border-top: 4px solid #fd7e14;
130
- }
131
-
132
- .gem-card.severity-medium {
133
- border-top: 4px solid #f39c12;
134
- }
135
-
136
- .gem-card.severity-low {
137
- border-top: 4px solid #27ae60;
138
- }
139
-
140
- .gem-header {
141
- padding: 1rem;
142
- display: flex;
143
- justify-content: space-between;
144
- align-items: center;
145
- border-bottom: 1px solid #eeeeee;
146
- }
147
-
148
- .gem-name {
149
- font-weight: 600;
150
- font-size: 1.1rem;
151
- }
152
-
153
- .gem-severity {
154
- padding: 0.25rem 0.75rem;
155
- border-radius: 12px;
156
- font-size: 0.8rem;
157
- font-weight: 600;
158
- text-transform: uppercase;
159
- color: white;
160
- }
161
-
162
- .gem-severity.critical {
163
- background-color: #e74c3c;
164
- }
165
-
166
- .gem-severity.high {
167
- background-color: #fd7e14;
168
- }
169
-
170
- .gem-severity.medium {
171
- background-color: #f39c12;
172
- }
173
-
174
- .gem-severity.low {
175
- background-color: #27ae60;
176
- }
177
-
178
- .gem-details {
179
- padding: 1rem;
180
- }
181
-
182
- .gem-versions {
183
- display: flex;
184
- justify-content: space-between;
185
- margin-bottom: 0.75rem;
186
- }
187
-
188
- .version-label {
189
- font-size: 0.8rem;
190
- color: #666;
191
- }
192
-
193
- .version-value {
194
- font-weight: 600;
195
- margin-left: 0.5rem;
196
- }
197
-
198
- .gem-vulnerabilities-count {
199
- font-size: 0.9rem;
200
- color: #e74c3c;
201
- font-weight: 500;
202
- }
203
-
204
- .gem-actions {
205
- padding: 1rem;
206
- border-top: 1px solid #eeeeee;
207
- background-color: #f8f9fa;
208
- }
209
-
210
- /* Security Timeline */
211
- .security-timeline-container {
212
- padding: 1rem 0;
213
- }
214
-
215
- .timeline-chart-placeholder {
216
- background-color: #fff;
217
- border: 1px solid #dee2e6;
218
- border-radius: 8px;
219
- padding: 1.5rem;
220
- margin-bottom: 1.5rem;
221
- }
222
-
223
- .chart-header {
224
- display: flex;
225
- justify-content: space-between;
226
- align-items: center;
227
- margin-bottom: 1.5rem;
228
- }
229
-
230
- .chart-title {
231
- font-size: 1.2rem;
232
- font-weight: 600;
233
- }
234
-
235
- .chart-legend {
236
- display: flex;
237
- gap: 1rem;
238
- }
239
-
240
- .legend-item {
241
- display: flex;
242
- align-items: center;
243
- gap: 0.5rem;
244
- }
245
-
246
- .legend-color {
247
- width: 12px;
248
- height: 12px;
249
- border-radius: 50%;
250
- }
251
-
252
- .legend-label {
253
- font-size: 0.9rem;
254
- color: #666;
255
- }
256
-
257
- .chart-timeline {
258
- position: relative;
259
- height: 60px;
260
- background: linear-gradient(to right, #e9ecef 0%, #e9ecef 100%);
261
- border-radius: 4px;
262
- }
263
-
264
- .timeline-point {
265
- position: absolute;
266
- display: flex;
267
- flex-direction: column;
268
- align-items: center;
269
- transform: translateX(-50%);
270
- }
271
-
272
- .timeline-marker {
273
- width: 12px;
274
- height: 12px;
275
- border-radius: 50%;
276
- margin-bottom: 0.5rem;
277
- border: 2px solid white;
278
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
279
- }
280
-
281
- .timeline-marker.critical {
282
- background-color: #dc3545;
283
- }
284
-
285
- .timeline-marker.medium {
286
- background-color: #ffc107;
287
- }
288
-
289
- .timeline-marker.low {
290
- background-color: #28a745;
291
- }
292
-
293
- .timeline-date {
294
- font-size: 0.8rem;
295
- color: #666;
296
- white-space: nowrap;
297
- }
298
-
299
- .timeline-insights {
300
- margin-top: 1.5rem;
301
- }
302
-
303
- .insight-card {
304
- background-color: #f8f9fa;
305
- border-radius: 8px;
306
- padding: 1rem;
307
- }
308
-
309
- .insight-header {
310
- font-weight: 600;
311
- margin-bottom: 1rem;
312
- color: #495057;
313
- }
314
-
315
- .insight-item {
316
- margin-bottom: 0.75rem;
317
- }
318
-
319
- .insight-item:last-child {
320
- margin-bottom: 0;
321
- }
322
-
323
- .insight-title {
324
- font-weight: 500;
325
- margin-bottom: 0.25rem;
326
- color: #343a40;
327
- }
328
-
329
- .insight-description {
330
- font-size: 0.9rem;
331
- color: #6c757d;
332
- }
@@ -1,58 +0,0 @@
1
- /* StatusBadgeComponent Styles */
2
- .status-badge {
3
- display: inline-flex;
4
- align-items: center;
5
- gap: 0.25rem;
6
- padding: 0.25rem 0.5rem;
7
- border-radius: 0.375rem;
8
- font-size: 0.75rem;
9
- font-weight: 500;
10
- line-height: 1;
11
- white-space: nowrap;
12
- }
13
-
14
- .status-badge--small {
15
- padding: 0.125rem 0.375rem;
16
- font-size: 0.6875rem;
17
- }
18
-
19
- .status-badge--large {
20
- padding: 0.375rem 0.75rem;
21
- font-size: 0.875rem;
22
- }
23
-
24
- .status-badge--ok {
25
- background-color: #dcfce7;
26
- color: #166534;
27
- border: 1px solid #bbf7d0;
28
- }
29
-
30
- .status-badge--warning {
31
- background-color: #fef3c7;
32
- color: #92400e;
33
- border: 1px solid #fde68a;
34
- }
35
-
36
- .status-badge--error {
37
- background-color: #fee2e2;
38
- color: #991b1b;
39
- border: 1px solid #fecaca;
40
- }
41
-
42
- .status-badge--info {
43
- background-color: #dbeafe;
44
- color: #1e40af;
45
- border: 1px solid #bfdbfe;
46
- }
47
-
48
- .status-badge--critical {
49
- background-color: #fdf2f8;
50
- color: #9d174d;
51
- border: 1px solid #fbcfe8;
52
- }
53
-
54
- .status-badge__icon {
55
- display: inline-flex;
56
- align-items: center;
57
- font-size: 0.875em;
58
- }
@@ -1,66 +0,0 @@
1
- /* SummaryCardComponent Styles */
2
- .summary-card {
3
- background-color: #ffffff;
4
- border: 1px solid #e5e7eb;
5
- border-radius: 0.5rem;
6
- padding: 1.5rem;
7
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
8
- transition: all 0.15s ease-in-out;
9
- display: flex;
10
- align-items: center;
11
- gap: 1rem;
12
- cursor: pointer;
13
- }
14
-
15
- .summary-card:hover {
16
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
17
- transform: translateY(-1px);
18
- }
19
-
20
- .summary-card.ok {
21
- border-left: 4px solid #10b981;
22
- }
23
-
24
- .summary-card.warning {
25
- border-left: 4px solid #f59e0b;
26
- }
27
-
28
- .summary-card.error {
29
- border-left: 4px solid #ef4444;
30
- }
31
-
32
- .summary-card.info {
33
- border-left: 4px solid #3b82f6;
34
- }
35
-
36
- .summary-card.critical {
37
- border-left: 4px solid #ec4899;
38
- }
39
-
40
- .card-icon {
41
- display: inline-flex;
42
- align-items: center;
43
- font-size: 1.5rem;
44
- color: #6b7280;
45
- flex-shrink: 0;
46
- }
47
-
48
- .card-content {
49
- display: flex;
50
- flex-direction: column;
51
- gap: 0.25rem;
52
- flex-grow: 1;
53
- }
54
-
55
- .card-value {
56
- font-size: 1.875rem;
57
- font-weight: 700;
58
- color: #111827;
59
- line-height: 1;
60
- }
61
-
62
- .card-label {
63
- font-size: 0.875rem;
64
- font-weight: 500;
65
- color: #6b7280;
66
- }
@@ -1,95 +0,0 @@
1
- /* TabNavigationComponent Styles */
2
- .tab-navigation {
3
- margin-bottom: 1.5rem;
4
- }
5
-
6
- .tab-list {
7
- display: flex;
8
- list-style: none;
9
- margin: 0;
10
- padding: 0;
11
- border-bottom: 2px solid #e5e7eb;
12
- }
13
-
14
- .tab-list-item {
15
- margin: 0;
16
- }
17
-
18
- .tab-item {
19
- display: inline-flex;
20
- align-items: center;
21
- gap: 0.5rem;
22
- padding: 0.75rem 1rem;
23
- color: #6b7280;
24
- text-decoration: none;
25
- border-bottom: 2px solid transparent;
26
- font-weight: 500;
27
- position: relative;
28
- transition: all 0.15s ease-in-out;
29
- }
30
-
31
- .tab-item:hover:not(.disabled) {
32
- color: #374151;
33
- border-bottom-color: #d1d5db;
34
- text-decoration: none;
35
- }
36
-
37
- .tab-item.active {
38
- color: #3b82f6;
39
- border-bottom-color: #3b82f6;
40
- }
41
-
42
- .tab-item.disabled {
43
- color: #9ca3af;
44
- cursor: not-allowed;
45
- opacity: 0.6;
46
- }
47
-
48
- .tab-count {
49
- display: inline-flex;
50
- align-items: center;
51
- justify-content: center;
52
- min-width: 1.25rem;
53
- height: 1.25rem;
54
- padding: 0 0.25rem;
55
- background-color: #e5e7eb;
56
- color: #374151;
57
- font-size: 0.75rem;
58
- font-weight: 600;
59
- border-radius: 0.625rem;
60
- line-height: 1;
61
- }
62
-
63
- .tab-count.has-items {
64
- background-color: #3b82f6;
65
- color: #ffffff;
66
- }
67
-
68
- .tab-count.empty {
69
- background-color: #f3f4f6;
70
- color: #9ca3af;
71
- }
72
-
73
- .tab-status {
74
- display: inline-block;
75
- width: 0.5rem;
76
- height: 0.5rem;
77
- border-radius: 50%;
78
- margin-left: 0.25rem;
79
- }
80
-
81
- .tab-status--ok {
82
- background-color: #10b981;
83
- }
84
-
85
- .tab-status--warning {
86
- background-color: #f59e0b;
87
- }
88
-
89
- .tab-status--error {
90
- background-color: #ef4444;
91
- }
92
-
93
- .tab-status--info {
94
- background-color: #3b82f6;
95
- }