|
2 | 2 | import { ref, computed } from "vue"; |
3 | 3 | import FAIcon from "@/components/FAIcon.vue"; |
4 | 4 | import { IconDefinition, faCircle } from "@fortawesome/free-solid-svg-icons"; |
5 | | -import { CapabilityStatus, StatusIndicator, Capability } from "@/components/platformcapabilities/types"; |
6 | | -import WizardDialog, { type WizardPage } from "./WizardDialog.vue"; |
| 5 | +import { StatusIndicator, WizardPage } from "@/components/platformcapabilities/types"; |
| 6 | +import { Capability, CapabilityStatus } from "@/components/platformcapabilities/constants"; |
| 7 | +import WizardDialog from "./WizardDialog.vue"; |
7 | 8 |
|
8 | 9 | const props = defineProps<{ |
9 | 10 | status: CapabilityStatus; |
@@ -107,251 +108,5 @@ function handleButtonClick() { |
107 | 108 | </template> |
108 | 109 |
|
109 | 110 | <style scoped> |
110 | | -.capability-card { |
111 | | - background: var(--card-bg, #fff); |
112 | | - border: 1px solid var(--border-color, #e0e0e0); |
113 | | - border-radius: 8px; |
114 | | - padding: 20px; |
115 | | - margin-bottom: 16px; |
116 | | - transition: all 0.2s ease; |
117 | | - position: relative; |
118 | | - min-height: 150px; |
119 | | -} |
120 | | -
|
121 | | -.capability-available { |
122 | | - border-left: 4px solid var(--success-color, #28a745); |
123 | | -} |
124 | | -
|
125 | | -.capability-unavailable { |
126 | | - border-left: 4px solid var(--danger-color, #dc3545); |
127 | | -} |
128 | | -
|
129 | | -.capability-partially-unavailable { |
130 | | - border-left: 4px solid var(--warning-color, #ffc107); |
131 | | -} |
132 | | -
|
133 | | -.capability-loading { |
134 | | - border-left: 4px solid var(--border-color, #e0e0e0); |
135 | | -} |
136 | | -
|
137 | | -.capability-notconfigured { |
138 | | - background: linear-gradient(135deg, #f6f9fc 0%, #e9f2f9 100%); |
139 | | - border: 1px solid #c3ddf5; |
140 | | - border-left: 4px solid #007bff; |
141 | | -} |
142 | | -
|
143 | | -.text-info { |
144 | | - color: #007bff; |
145 | | -} |
146 | | -
|
147 | | -.text-warning { |
148 | | - color: var(--warning-color, #ffc107); |
149 | | -} |
150 | | -
|
151 | | -.loading-overlay { |
152 | | - position: absolute; |
153 | | - top: 0; |
154 | | - left: 0; |
155 | | - right: 0; |
156 | | - bottom: 0; |
157 | | - background: rgba(255, 255, 255, 0.9); |
158 | | - display: flex; |
159 | | - flex-direction: column; |
160 | | - align-items: center; |
161 | | - justify-content: center; |
162 | | - border-radius: 8px; |
163 | | - z-index: 10; |
164 | | -} |
165 | | -
|
166 | | -.loading-spinner { |
167 | | - width: 40px; |
168 | | - height: 40px; |
169 | | - border: 3px solid var(--border-color, #e0e0e0); |
170 | | - border-top-color: var(--primary-color, #007bff); |
171 | | - border-radius: 50%; |
172 | | - animation: spin 0.8s linear infinite; |
173 | | -} |
174 | | -
|
175 | | -@keyframes spin { |
176 | | - to { |
177 | | - transform: rotate(360deg); |
178 | | - } |
179 | | -} |
180 | | -
|
181 | | -.loading-text { |
182 | | - margin-top: 12px; |
183 | | - color: var(--text-secondary, #666); |
184 | | - font-size: 14px; |
185 | | -} |
186 | | -
|
187 | | -.capability-header { |
188 | | - display: flex; |
189 | | - align-items: flex-start; |
190 | | - gap: 16px; |
191 | | - margin-bottom: 12px; |
192 | | -} |
193 | | -
|
194 | | -.capability-icon { |
195 | | - font-size: 24px; |
196 | | - flex-shrink: 0; |
197 | | - margin-top: 2px; |
198 | | -} |
199 | | -
|
200 | | -.capability-info { |
201 | | - flex: 1; |
202 | | - min-width: 0; |
203 | | -} |
204 | | -
|
205 | | -.capability-title-row { |
206 | | - display: flex; |
207 | | - align-items: center; |
208 | | - gap: 12px; |
209 | | - margin-bottom: 4px; |
210 | | -} |
211 | | -
|
212 | | -.capability-title { |
213 | | - font-size: 18px; |
214 | | - font-weight: 600; |
215 | | - color: var(--text-primary, #333); |
216 | | -} |
217 | | -
|
218 | | -.status-indicators { |
219 | | - display: flex; |
220 | | - gap: 12px; |
221 | | - align-items: center; |
222 | | -} |
223 | | -
|
224 | | -.indicator-item { |
225 | | - display: flex; |
226 | | - align-items: center; |
227 | | - gap: 4px; |
228 | | - cursor: help; |
229 | | -} |
230 | | -
|
231 | | -.indicator-light { |
232 | | - font-size: 10px; |
233 | | -} |
234 | | -
|
235 | | -.light-success { |
236 | | - color: var(--success-color, #28a745); |
237 | | -} |
238 | | -
|
239 | | -.light-warning { |
240 | | - color: var(--warning-color, #ffc107); |
241 | | -} |
242 | | -
|
243 | | -.light-danger { |
244 | | - color: var(--danger-color, #dc3545); |
245 | | -} |
246 | | -
|
247 | | -.indicator-label { |
248 | | - font-size: 12px; |
249 | | - color: var(--text-secondary, #666); |
250 | | - white-space: nowrap; |
251 | | -} |
252 | | -
|
253 | | -.capability-subtitle { |
254 | | - font-size: 14px; |
255 | | - color: var(--text-secondary, #666); |
256 | | - line-height: 1.4; |
257 | | -} |
258 | | -
|
259 | | -.capability-status { |
260 | | - display: flex; |
261 | | - flex-direction: column; |
262 | | - align-items: flex-end; |
263 | | - gap: 4px; |
264 | | -} |
265 | | -
|
266 | | -.status-badge { |
267 | | - padding: 4px 12px; |
268 | | - border-radius: 12px; |
269 | | - font-size: 12px; |
270 | | - font-weight: 600; |
271 | | - text-transform: uppercase; |
272 | | - letter-spacing: 0.5px; |
273 | | -} |
274 | | -
|
275 | | -.status-available { |
276 | | - background-color: #d4edda; |
277 | | - color: #155724; |
278 | | -} |
279 | | -
|
280 | | -.status-unavailable { |
281 | | - background-color: #f8d7da; |
282 | | - color: #721c24; |
283 | | -} |
284 | | -
|
285 | | -.status-partially-unavailable { |
286 | | - background-color: #fff3cd; |
287 | | - color: #856404; |
288 | | -} |
289 | | -
|
290 | | -.capability-footer { |
291 | | - display: flex; |
292 | | - justify-content: space-between; |
293 | | - align-items: center; |
294 | | - gap: 16px; |
295 | | - margin-top: 12px; |
296 | | - padding-top: 12px; |
297 | | - border-top: 1px solid var(--border-color, #e0e0e0); |
298 | | -} |
299 | | -
|
300 | | -.capability-description { |
301 | | - flex: 1; |
302 | | - font-size: 13px; |
303 | | - color: var(--text-secondary, #666); |
304 | | - line-height: 1.5; |
305 | | - overflow: hidden; |
306 | | - text-overflow: ellipsis; |
307 | | - display: -webkit-box; |
308 | | - -webkit-line-clamp: 2; |
309 | | - line-clamp: 2; |
310 | | - -webkit-box-orient: vertical; |
311 | | -} |
312 | | -
|
313 | | -.learn-more-btn { |
314 | | - padding: 8px 16px; |
315 | | - border-radius: 4px; |
316 | | - text-decoration: none; |
317 | | - font-size: 14px; |
318 | | - font-weight: 500; |
319 | | - transition: all 0.2s ease; |
320 | | - white-space: nowrap; |
321 | | - border: 1px solid transparent; |
322 | | -} |
323 | | -
|
324 | | -.learn-more-btn.btn-primary { |
325 | | - background-color: var(--primary-color, #007bff); |
326 | | - color: white; |
327 | | - border-color: var(--primary-color, #007bff); |
328 | | -} |
329 | | -
|
330 | | -.learn-more-btn.btn-primary:hover { |
331 | | - background-color: var(--primary-hover-color, #0056b3); |
332 | | - border-color: var(--primary-hover-color, #0056b3); |
333 | | -} |
334 | | -
|
335 | | -/* Responsive adjustments */ |
336 | | -@media (max-width: 768px) { |
337 | | - .capability-header { |
338 | | - flex-direction: column; |
339 | | - } |
340 | | -
|
341 | | - .capability-status { |
342 | | - align-items: flex-start; |
343 | | - flex-direction: row; |
344 | | - gap: 8px; |
345 | | - } |
346 | | -
|
347 | | - .capability-footer { |
348 | | - flex-direction: column; |
349 | | - align-items: flex-start; |
350 | | - } |
351 | | -
|
352 | | - .learn-more-btn { |
353 | | - width: 100%; |
354 | | - text-align: center; |
355 | | - } |
356 | | -} |
| 111 | +@import "@/components/platformcapabilities/styles/capabilityCard.css"; |
357 | 112 | </style> |
0 commit comments