@dataengineeringformachinelearning/viking-ui 1.0.1 → 3.0.0-alpha.2

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 (129) hide show
  1. package/README.md +180 -37
  2. package/dist/deml-components.css +1122 -0
  3. package/dist/design-tokens.css +688 -0
  4. package/dist/elements/button/viking-button.d.ts +14 -0
  5. package/dist/elements/card/viking-card.d.ts +8 -0
  6. package/dist/elements/core/dom.d.ts +4 -0
  7. package/dist/elements/core/styles.d.ts +2 -0
  8. package/dist/elements/modal/viking-modal.d.ts +15 -0
  9. package/dist/fonts/inter/InterVariable-Italic.woff2 +0 -0
  10. package/dist/fonts/inter/InterVariable.woff2 +0 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +4051 -0
  13. package/dist/lib/core/brand-icons.d.ts +29 -0
  14. package/dist/lib/core/icons.d.ts +132 -0
  15. package/dist/lib/core/integration-brand-icons.d.ts +18 -0
  16. package/dist/lib/core/lucide-paths.generated.d.ts +90 -0
  17. package/dist/lib/site-drakkar/site-drakkar.config.d.ts +50 -0
  18. package/dist/lib/site-drakkar/suite-search-items.d.ts +17 -0
  19. package/dist/viking-components.css +1837 -0
  20. package/dist/viking-tokens.json +318 -0
  21. package/dist/viking-ui-elements.js +1750 -0
  22. package/dist/viking-ui.css +1 -0
  23. package/dist/web/badge/viking-badge-wc.d.ts +28 -0
  24. package/dist/web/button/viking-button-wc.d.ts +28 -0
  25. package/dist/web/callout/viking-callout-wc.d.ts +27 -0
  26. package/dist/web/card/viking-card-wc.d.ts +29 -0
  27. package/dist/web/core/base.d.ts +12 -0
  28. package/dist/web/core/dom.d.ts +11 -0
  29. package/dist/web/core/icons-inline.d.ts +7 -0
  30. package/dist/web/core/styles.d.ts +12 -0
  31. package/dist/web/core/types.d.ts +10 -0
  32. package/dist/web/field/viking-field-wc.d.ts +32 -0
  33. package/dist/web/index.d.ts +15 -0
  34. package/dist/web/input/viking-input-wc.d.ts +32 -0
  35. package/dist/web/modal/viking-modal-wc.d.ts +50 -0
  36. package/dist/web/search-palette/viking-search-palette-wc.d.ts +64 -0
  37. package/dist/web/select/viking-select-wc.d.ts +48 -0
  38. package/dist/web/suite-header/viking-suite-header-wc.d.ts +36 -0
  39. package/dist/web/suite-search-palette/viking-suite-search-palette-wc.d.ts +39 -0
  40. package/dist/web/theme-toggle/viking-theme-toggle-wc.d.ts +19 -0
  41. package/dist/web/types.d.ts +40 -0
  42. package/dist/web-components/index.d.ts +1 -0
  43. package/dist/web-components.js +1750 -0
  44. package/dist/widget.js +1182 -0
  45. package/package.json +89 -30
  46. package/src/assets/fonts/inter/InterVariable-Italic.woff2 +0 -0
  47. package/src/assets/fonts/inter/InterVariable.woff2 +0 -0
  48. package/src/elements/button/viking-button.ts +201 -0
  49. package/src/elements/card/viking-card.ts +60 -0
  50. package/src/elements/core/dom.ts +33 -0
  51. package/src/elements/core/styles.ts +28 -0
  52. package/src/elements/modal/viking-modal.ts +154 -0
  53. package/src/index.ts +1 -0
  54. package/src/lib/core/brand-icons.ts +62 -0
  55. package/src/lib/core/icons.ts +206 -0
  56. package/src/lib/core/integration-brand-icons.ts +77 -0
  57. package/src/lib/core/lucide-paths.generated.ts +130 -0
  58. package/src/lib/site-drakkar/site-drakkar.config.ts +295 -0
  59. package/src/lib/site-drakkar/suite-search-items.ts +246 -0
  60. package/src/styles/_buttons.scss +301 -0
  61. package/src/styles/_component-primitives.scss +183 -0
  62. package/src/styles/_drakkar-buttons.scss +85 -0
  63. package/src/styles/_fonts.scss +22 -0
  64. package/src/styles/_forms.scss +66 -0
  65. package/src/styles/_input.scss +106 -0
  66. package/src/styles/_layout-enforcement.scss +166 -0
  67. package/src/styles/_layout-rhythm.scss +158 -0
  68. package/src/styles/_legacy-aliases.scss +212 -0
  69. package/src/styles/_series-colors.scss +24 -0
  70. package/src/styles/_static-primitives.scss +857 -0
  71. package/src/styles/_typography.scss +87 -0
  72. package/src/styles/_variables.scss +527 -0
  73. package/src/styles/components/a11y.scss +90 -0
  74. package/src/styles/components/badges.scss +102 -0
  75. package/src/styles/components/extracted-utilities.scss +459 -0
  76. package/src/styles/components/footer.scss +155 -0
  77. package/src/styles/components/icon-heading.scss +47 -0
  78. package/src/styles/components/icon-inline.scss +78 -0
  79. package/src/styles/components/layout.scss +59 -0
  80. package/src/styles/components/utilities.scss +131 -0
  81. package/src/styles/components/viking-inspired.scss +204 -0
  82. package/src/styles/components/whitepaper-cta.scss +130 -0
  83. package/src/styles/components-bundle.scss +9 -0
  84. package/src/styles/components.scss +175 -0
  85. package/src/styles/deml-components.scss +10 -0
  86. package/src/styles/index.scss +8 -0
  87. package/src/styles/layout-shell.scss +39 -11
  88. package/src/styles/page-shell.scss +663 -33
  89. package/src/styles/static-navbar.scss +862 -146
  90. package/src/styles/surfaces/backend.scss +142 -0
  91. package/src/styles/surfaces/docs-global.scss +73 -0
  92. package/src/styles/surfaces/docs-shell.scss +412 -0
  93. package/src/styles/surfaces/docs-showcase.scss +1051 -0
  94. package/src/styles/surfaces/marketing-cta.scss +62 -0
  95. package/src/styles/surfaces/marketing-docs-bento.scss +67 -0
  96. package/src/styles/surfaces/marketing-global.scss +748 -0
  97. package/src/styles/surfaces/marketing-landing.scss +1260 -0
  98. package/src/styles/surfaces/marketing-publication.scss +535 -0
  99. package/src/styles/surfaces/marketing-theme.scss +14 -0
  100. package/src/styles/surfaces/swagger-ui.scss +921 -0
  101. package/src/styles/tokens-export.scss +18 -0
  102. package/src/styles/tokens.scss +5 -0
  103. package/src/styles/viking-ui-bundle.scss +21 -2
  104. package/src/styles/viking-ui.scss +213 -51
  105. package/src/tokens/viking-tokens.json +318 -0
  106. package/src/web/badge/viking-badge-wc.ts +116 -0
  107. package/src/web/button/viking-button-wc.ts +165 -0
  108. package/src/web/callout/viking-callout-wc.ts +105 -0
  109. package/src/web/card/viking-card-wc.ts +66 -0
  110. package/src/web/core/base.ts +56 -0
  111. package/src/web/core/dom.ts +53 -0
  112. package/src/web/core/icons-inline.ts +44 -0
  113. package/src/web/core/styles.ts +1138 -0
  114. package/src/web/core/types.ts +19 -0
  115. package/src/web/field/viking-field-wc.ts +154 -0
  116. package/src/web/index.ts +73 -0
  117. package/src/web/input/viking-input-wc.ts +211 -0
  118. package/src/web/modal/viking-modal-wc.ts +187 -0
  119. package/src/web/search-palette/viking-search-palette-wc.ts +494 -0
  120. package/src/web/select/viking-select-wc.ts +218 -0
  121. package/src/web/suite-header/viking-suite-header-wc.ts +714 -0
  122. package/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +234 -0
  123. package/src/web/theme-toggle/viking-theme-toggle-wc.ts +139 -0
  124. package/src/web/types.ts +37 -0
  125. package/src/web-components/index.ts +1 -0
  126. package/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +0 -5949
  127. package/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +0 -1
  128. package/types/dataengineeringformachinelearning-viking-ui.d.ts +0 -1374
  129. package/viking.manifest.json +0 -189
@@ -0,0 +1,1122 @@
1
+ @charset "UTF-8";
2
+ /*! DEML Shared Components — canonical source: packages/viking-ui/src/styles/components/
3
+ * Static CSS: npm run build:viking-ui:package */
4
+ .sr-only,
5
+ .visually-hidden {
6
+ position: absolute !important;
7
+ width: 0 !important;
8
+ height: 0 !important;
9
+ padding: 0 !important;
10
+ margin: -1px !important;
11
+ overflow: hidden !important;
12
+ clip: rect(0, 0, 0, 0) !important;
13
+ white-space: nowrap !important;
14
+ border: 0 !important;
15
+ }
16
+
17
+ .skip-link {
18
+ position: absolute;
19
+ top: 0;
20
+ left: var(--space-2, 16px);
21
+ z-index: 10000;
22
+ padding: var(--space-1, 8px) var(--space-2, 16px);
23
+ border-radius: var(--border-radius-sm, 8px);
24
+ background-color: var(--black, var(--viking-black)) !important;
25
+ color: var(--white, var(--viking-white-pure)) !important;
26
+ text-decoration: none;
27
+ font-weight: 600;
28
+ font-size: max(16px, var(--base-font-size, 16px));
29
+ line-height: 1.4;
30
+ clip: rect(0 0 0 0);
31
+ clip-path: inset(50%);
32
+ width: 1px;
33
+ height: 1px;
34
+ overflow: hidden;
35
+ white-space: nowrap;
36
+ border: 0;
37
+ }
38
+
39
+ .skip-link:focus,
40
+ .skip-link:focus-visible {
41
+ clip: auto;
42
+ clip-path: none;
43
+ width: auto;
44
+ height: auto;
45
+ overflow: visible;
46
+ white-space: normal;
47
+ outline: var(--focus-ring-width, 3px) solid var(--focus-ring-color, var(--viking-accent));
48
+ outline-offset: var(--focus-ring-offset, 2px);
49
+ }
50
+
51
+ a:focus-visible,
52
+ button:focus-visible,
53
+ input:focus-visible,
54
+ textarea:focus-visible,
55
+ select:focus-visible,
56
+ [role=button]:focus-visible,
57
+ [role=tab]:focus-visible,
58
+ [tabindex]:not([tabindex="-1"]):focus-visible {
59
+ outline: var(--focus-ring-width) solid var(--focus-ring-color) !important;
60
+ outline-offset: var(--focus-ring-offset) !important;
61
+ }
62
+
63
+ .viking-input-shell input:focus,
64
+ .viking-input-shell input:focus-visible,
65
+ .viking-textarea-shell textarea:focus,
66
+ .viking-textarea-shell textarea:focus-visible {
67
+ outline: none !important;
68
+ }
69
+
70
+ @media (prefers-reduced-motion: reduce) {
71
+ *,
72
+ ::before,
73
+ ::after {
74
+ animation-duration: 0.01ms !important;
75
+ animation-iteration-count: 1 !important;
76
+ transition-duration: 0.01ms !important;
77
+ scroll-behavior: auto !important;
78
+ }
79
+ }
80
+ @media (forced-colors: active) {
81
+ a:focus-visible,
82
+ button:focus-visible,
83
+ input:focus-visible,
84
+ textarea:focus-visible,
85
+ select:focus-visible {
86
+ outline: 3px solid CanvasText !important;
87
+ }
88
+ }
89
+ .status-badge-premium {
90
+ display: inline-flex;
91
+ align-items: center;
92
+ gap: var(--space-1);
93
+ padding: var(--space-1) var(--space-2);
94
+ border-radius: var(--border-radius-xl);
95
+ font-weight: 600;
96
+ font-size: 1rem;
97
+ line-height: 1.2;
98
+ letter-spacing: 0.03em;
99
+ text-transform: capitalize;
100
+ border: 1px solid transparent;
101
+ white-space: nowrap;
102
+ text-decoration: none;
103
+ }
104
+ .status-badge-premium .status-dot,
105
+ .status-badge-premium .status-dot-greenblue {
106
+ width: var(--space-1);
107
+ height: var(--space-1);
108
+ border-radius: 50%;
109
+ flex-shrink: 0;
110
+ background-color: currentColor;
111
+ }
112
+ .status-badge-premium.operational, .status-badge-premium.resolved, .status-badge-premium.success, .status-badge-premium.low, .status-badge-premium.compliant {
113
+ background: color-mix(in srgb, var(--color-success) 8%, transparent);
114
+ color: var(--color-success);
115
+ border-color: color-mix(in srgb, var(--color-success) 15%, transparent);
116
+ }
117
+ .status-badge-premium.degraded, .status-badge-premium.warning, .status-badge-premium.medium, .status-badge-premium.investigating, .status-badge-premium.identified {
118
+ background: color-mix(in srgb, var(--color-warning) 8%, transparent);
119
+ color: var(--color-warning);
120
+ border-color: color-mix(in srgb, var(--color-warning) 15%, transparent);
121
+ }
122
+ .status-badge-premium.outage, .status-badge-premium.critical, .status-badge-premium.high, .status-badge-premium.error {
123
+ background: color-mix(in srgb, var(--color-error) 8%, transparent);
124
+ color: var(--color-error);
125
+ border-color: color-mix(in srgb, var(--color-error) 15%, transparent);
126
+ }
127
+ .status-badge-premium.info, .status-badge-premium.neutral {
128
+ background: color-mix(in srgb, var(--color-info) 10%, transparent);
129
+ color: var(--color-info);
130
+ border-color: color-mix(in srgb, var(--color-info) 15%, transparent);
131
+ }
132
+ .status-badge-premium.primary {
133
+ background: color-mix(in srgb, var(--color-primary) 12%, transparent);
134
+ color: var(--color-primary-container);
135
+ border-color: color-mix(in srgb, var(--color-primary) 20%, transparent);
136
+ }
137
+ html[data-theme=light] .status-badge-premium.primary {
138
+ color: var(--color-primary);
139
+ }
140
+ .status-badge-premium--compact {
141
+ padding: 8px 12px;
142
+ font-size: var(--ui-font-size, 14px);
143
+ }
144
+ .status-badge-premium.pro-verified {
145
+ background: color-mix(in srgb, var(--viking-gold-500) 14%, transparent);
146
+ color: var(--viking-gold-500);
147
+ border-color: color-mix(in srgb, var(--viking-gold-500) 28%, transparent);
148
+ text-transform: none;
149
+ letter-spacing: 0.02em;
150
+ }
151
+ .status-badge-premium.pro-verified mat-icon,
152
+ .status-badge-premium.pro-verified .material-icons,
153
+ .status-badge-premium.pro-verified viking-icon,
154
+ .status-badge-premium.pro-verified viking-app-icon {
155
+ font-size: var(--viking-icon-size-md, var(--base-font-size));
156
+ width: var(--viking-icon-size-md, var(--base-font-size));
157
+ height: var(--viking-icon-size-md, var(--base-font-size));
158
+ line-height: var(--viking-icon-size-md, var(--base-font-size));
159
+ flex-shrink: 0;
160
+ }
161
+ html[data-theme=light] .status-badge-premium.pro-verified {
162
+ color: var(--viking-crimson-500);
163
+ border-color: color-mix(in srgb, var(--viking-crimson-500) 28%, transparent);
164
+ background: color-mix(in srgb, var(--viking-crimson-500) 10%, transparent);
165
+ }
166
+
167
+ viking-app-icon,
168
+ viking-icon,
169
+ .material-icons,
170
+ .material-symbols-outlined {
171
+ display: inline-flex;
172
+ align-items: center;
173
+ justify-content: center;
174
+ flex-shrink: 0;
175
+ line-height: 1;
176
+ vertical-align: middle;
177
+ }
178
+
179
+ .nav-btn viking-app-icon,
180
+ .nav-btn viking-icon,
181
+ .nav-btn .material-icons,
182
+ .mobile-nav-btn viking-app-icon,
183
+ .mobile-nav-btn viking-icon,
184
+ .mobile-nav-btn .material-icons,
185
+ .auth-btn viking-app-icon,
186
+ .auth-btn viking-icon,
187
+ .auth-btn .material-icons,
188
+ .mobile-auth-btn viking-app-icon,
189
+ .mobile-auth-btn viking-icon,
190
+ .mobile-auth-btn .material-icons,
191
+ .back-link viking-app-icon,
192
+ .back-link viking-icon,
193
+ .back-link .material-icons,
194
+ .viking-btn viking-app-icon,
195
+ .viking-btn viking-icon,
196
+ .viking-btn .material-icons,
197
+ .sidebar-brand viking-app-icon,
198
+ .sidebar-brand viking-icon,
199
+ .sidebar-brand .material-icons,
200
+ .gauge-card-footer viking-app-icon,
201
+ .gauge-card-footer viking-icon,
202
+ .gauge-card-footer .material-icons,
203
+ .gauge-card-header viking-app-icon,
204
+ .gauge-card-header viking-icon,
205
+ .gauge-card-header .material-icons,
206
+ .section-title-premium viking-app-icon,
207
+ .section-title-premium viking-icon,
208
+ .section-title-premium .material-icons,
209
+ .panel-title-flex viking-app-icon,
210
+ .panel-title-flex viking-icon,
211
+ .panel-title-flex .material-icons,
212
+ .status-badge-premium viking-app-icon,
213
+ .status-badge-premium viking-icon,
214
+ .status-badge-premium .material-icons,
215
+ .feature-item viking-app-icon,
216
+ .feature-item viking-icon,
217
+ .feature-item .material-icons {
218
+ align-self: center;
219
+ }
220
+
221
+ .nav-btn viking-app-icon,
222
+ .nav-btn viking-icon,
223
+ .mobile-nav-btn viking-app-icon,
224
+ .auth-btn viking-app-icon,
225
+ .mobile-auth-btn viking-app-icon {
226
+ width: var(--viking-icon-size-md, var(--base-font-size));
227
+ height: var(--viking-icon-size-md, var(--base-font-size));
228
+ align-self: center;
229
+ }
230
+
231
+ .theme-toggle-btn viking-app-icon,
232
+ .theme-toggle-btn viking-icon,
233
+ .menu-toggle-btn viking-app-icon,
234
+ .menu-toggle-btn viking-icon {
235
+ display: inline-flex;
236
+ align-items: center;
237
+ justify-content: center;
238
+ width: 24px;
239
+ height: 24px;
240
+ line-height: 0;
241
+ }
242
+
243
+ .section-title-premium viking-app-icon {
244
+ color: var(--status-accent, var(--viking-accent));
245
+ width: 22px;
246
+ height: 22px;
247
+ }
248
+
249
+ .navbar-brand .material-icons.navbar-logo,
250
+ .navbar-brand deml-brand-logo .material-icons {
251
+ font-size: 28px;
252
+ width: 36px;
253
+ height: 36px;
254
+ line-height: 36px;
255
+ overflow: visible;
256
+ }
257
+
258
+ .sidebar-brand .material-icons.brand-icon,
259
+ .sidebar-brand deml-brand-logo .material-icons {
260
+ font-size: 24px;
261
+ width: 24px;
262
+ height: 24px;
263
+ line-height: 24px;
264
+ }
265
+
266
+ .viking-icon-heading {
267
+ display: flex;
268
+ align-items: center;
269
+ gap: var(--viking-space-2, 16px);
270
+ min-width: 0;
271
+ }
272
+
273
+ .viking-icon-heading__icon {
274
+ display: inline-flex;
275
+ align-items: center;
276
+ justify-content: center;
277
+ flex-shrink: 0;
278
+ width: var(--viking-icon-size-lg, 24px);
279
+ height: var(--viking-icon-size-lg, 24px);
280
+ line-height: 0;
281
+ color: var(--viking-accent);
282
+ }
283
+ .viking-icon-heading__icon svg,
284
+ .viking-icon-heading__icon viking-icon,
285
+ .viking-icon-heading__icon viking-app-icon {
286
+ display: block;
287
+ width: var(--viking-icon-size-lg, 24px);
288
+ height: var(--viking-icon-size-lg, 24px);
289
+ }
290
+
291
+ .viking-icon-heading__icon--brand {
292
+ color: inherit;
293
+ }
294
+
295
+ .viking-icon-heading__title {
296
+ margin: 0;
297
+ font-family: var(--viking-font-family);
298
+ font-size: var(--viking-font-size-lg, 20px);
299
+ font-weight: var(--viking-font-weight-bold, 700);
300
+ letter-spacing: var(--viking-letter-spacing-tight, -0.02em);
301
+ line-height: var(--viking-line-height-tight, 1.25);
302
+ color: var(--viking-text, var(--text-color));
303
+ text-transform: uppercase;
304
+ }
305
+
306
+ .viking-icon-heading--lg .viking-icon-heading__title {
307
+ font-size: var(--viking-font-size-xl, 24px);
308
+ }
309
+
310
+ .viking-page-stack {
311
+ display: flex;
312
+ flex-direction: column;
313
+ gap: var(--viking-page-stack-gap, var(--viking-space-4));
314
+ width: 100%;
315
+ box-sizing: border-box;
316
+ }
317
+
318
+ .badge-dot {
319
+ display: inline-block;
320
+ width: var(--viking-grid-unit, 4px);
321
+ height: var(--viking-grid-unit, 4px);
322
+ border-radius: 50%;
323
+ background-color: var(--viking-accent, var(--color-primary));
324
+ margin-right: var(--viking-space-1);
325
+ flex-shrink: 0;
326
+ }
327
+
328
+ .badge-dot--success {
329
+ background-color: var(--viking-success, var(--color-success));
330
+ }
331
+
332
+ .is-hidden {
333
+ display: none !important;
334
+ }
335
+
336
+ .is-visible-block {
337
+ display: block !important;
338
+ }
339
+
340
+ .is-visible-flex {
341
+ display: flex !important;
342
+ }
343
+
344
+ .progress-bar-fill {
345
+ width: var(--progress, 0%);
346
+ }
347
+
348
+ body,
349
+ p,
350
+ li,
351
+ input,
352
+ select,
353
+ textarea,
354
+ button,
355
+ label,
356
+ small,
357
+ td,
358
+ th,
359
+ .badge-text,
360
+ .criteria-desc,
361
+ .criteria-details,
362
+ .log-text,
363
+ .file-name {
364
+ font-size: max(16px, var(--base-font-size, 16px));
365
+ }
366
+
367
+ .u-items-center {
368
+ align-items: center;
369
+ }
370
+
371
+ .u-items-start {
372
+ align-items: flex-start;
373
+ }
374
+
375
+ .u-justify-between {
376
+ justify-content: space-between;
377
+ }
378
+
379
+ .u-text-center {
380
+ text-align: center;
381
+ }
382
+
383
+ .u-w-full {
384
+ width: 100%;
385
+ }
386
+
387
+ .u-overflow-y-auto {
388
+ overflow-y: auto;
389
+ }
390
+
391
+ .u-flex {
392
+ display: flex;
393
+ }
394
+
395
+ .u-flex-center {
396
+ display: flex;
397
+ align-items: center;
398
+ justify-content: center;
399
+ }
400
+
401
+ .u-flex-between {
402
+ display: flex;
403
+ justify-content: space-between;
404
+ align-items: center;
405
+ }
406
+
407
+ .u-flex-wrap {
408
+ flex-wrap: wrap;
409
+ }
410
+
411
+ .u-flex-col {
412
+ display: flex;
413
+ flex-direction: column;
414
+ }
415
+
416
+ .u-gap-half {
417
+ gap: var(--space-half);
418
+ }
419
+
420
+ .u-gap-1-5 {
421
+ gap: var(--space-1-5);
422
+ }
423
+
424
+ .u-gap-1 {
425
+ gap: var(--space-1);
426
+ }
427
+
428
+ .u-gap-2 {
429
+ gap: var(--space-2);
430
+ }
431
+
432
+ .u-gap-3 {
433
+ gap: var(--space-3);
434
+ }
435
+
436
+ .u-mt-2 {
437
+ margin-top: var(--space-2);
438
+ }
439
+
440
+ .u-mt-3 {
441
+ margin-top: var(--space-3);
442
+ }
443
+
444
+ .u-mt-4 {
445
+ margin-top: var(--space-4);
446
+ }
447
+
448
+ .u-mb-2 {
449
+ margin-bottom: var(--space-2);
450
+ }
451
+
452
+ .u-mb-3 {
453
+ margin-bottom: var(--space-3);
454
+ }
455
+
456
+ .u-mx-auto {
457
+ margin-left: auto;
458
+ margin-right: auto;
459
+ }
460
+
461
+ .u-max-w-500 {
462
+ max-width: 500px;
463
+ }
464
+
465
+ .u-text-muted {
466
+ color: var(--text-muted);
467
+ }
468
+
469
+ .u-text-primary {
470
+ color: var(--color-primary);
471
+ }
472
+
473
+ .u-text-primary-container {
474
+ color: var(--color-primary-container);
475
+ }
476
+
477
+ .u-skip-link-surface {
478
+ color: var(--white);
479
+ background-color: var(--black);
480
+ }
481
+
482
+ .u-word-break-all {
483
+ word-break: break-all;
484
+ }
485
+
486
+ .u-no-underline {
487
+ border-bottom: none;
488
+ text-decoration: none;
489
+ }
490
+
491
+ .u-icon-18 {
492
+ font-size: var(--base-font-size);
493
+ width: var(--base-font-size);
494
+ height: var(--base-font-size);
495
+ }
496
+
497
+ .u-style-e24d2c {
498
+ color: var(--white);
499
+ background-color: var(--black);
500
+ }
501
+
502
+ .u-style-328aaa {
503
+ margin: var(--space-2) var(--space-2) 0;
504
+ }
505
+
506
+ .u-style-ef4080 {
507
+ overflow-y: auto;
508
+ }
509
+
510
+ .u-style-be70d9,
511
+ .u-style-199b6f {
512
+ width: 100%;
513
+ }
514
+
515
+ .u-style-541ffc {
516
+ justify-content: center;
517
+ }
518
+
519
+ .u-style-9150aa {
520
+ justify-content: flex-start;
521
+ }
522
+
523
+ .u-style-ab0dc9,
524
+ .u-style-17e119 {
525
+ display: flex;
526
+ justify-content: center;
527
+ gap: var(--space-1);
528
+ font-size: 1rem;
529
+ color: var(--text-muted);
530
+ margin-bottom: var(--space-3);
531
+ }
532
+
533
+ .u-style-87f7f1 {
534
+ max-width: 500px;
535
+ margin-left: auto;
536
+ margin-right: auto;
537
+ }
538
+
539
+ .u-style-318da3,
540
+ .u-style-2b2c9a {
541
+ display: flex;
542
+ justify-content: space-between;
543
+ font-size: 1rem;
544
+ font-weight: 600;
545
+ color: var(--text-muted);
546
+ margin-bottom: var(--space-1);
547
+ }
548
+
549
+ .u-style-c3f737 {
550
+ color: var(--color-primary-container);
551
+ }
552
+
553
+ .u-style-f48aaf,
554
+ .u-style-cf687c {
555
+ width: 100%;
556
+ height: var(--space-1);
557
+ background-color: var(--hover-color);
558
+ border: 1px solid var(--border);
559
+ border-radius: var(--border-radius-sm);
560
+ overflow: hidden;
561
+ position: relative;
562
+ }
563
+
564
+ .u-style-43b1d2,
565
+ .u-style-f9a078 {
566
+ position: absolute;
567
+ left: 0;
568
+ top: 0;
569
+ bottom: 0;
570
+ width: var(--progress, 0%);
571
+ background-color: var(--color-primary);
572
+ transition: width 0.3s ease-out;
573
+ }
574
+
575
+ .u-style-a1eb91,
576
+ .u-style-9c7405 {
577
+ display: flex;
578
+ justify-content: center;
579
+ align-items: center;
580
+ padding: var(--space-5) 0;
581
+ animation: fade-in 0.8s ease-out;
582
+ }
583
+
584
+ .u-style-5e9329,
585
+ .u-style-54df94 {
586
+ width: 100%;
587
+ max-width: 460px;
588
+ aspect-ratio: 3/4.2;
589
+ background-color: var(--card-bg);
590
+ border: 1px solid var(--border);
591
+ border-radius: var(--space-1) var(--space-2) var(--space-2) var(--space-1);
592
+ box-shadow: var(--shadow-md);
593
+ position: relative;
594
+ overflow: hidden;
595
+ display: flex;
596
+ flex-direction: column;
597
+ align-items: center;
598
+ justify-content: center;
599
+ transition: transform 0.3s ease;
600
+ }
601
+
602
+ .u-style-5f0fbc,
603
+ .u-style-bdb450 {
604
+ position: absolute;
605
+ left: 0;
606
+ top: 0;
607
+ bottom: 0;
608
+ width: 28px;
609
+ background-color: color-mix(in srgb, var(--black) 50%, transparent);
610
+ z-index: 10;
611
+ border-right: 1px solid color-mix(in srgb, var(--black) 20%, transparent);
612
+ }
613
+
614
+ .u-style-604391,
615
+ .u-style-34ef33 {
616
+ position: absolute;
617
+ left: 28px;
618
+ top: 0;
619
+ bottom: 0;
620
+ width: 4px;
621
+ background-color: color-mix(in srgb, var(--black) 10%, transparent);
622
+ z-index: 9;
623
+ }
624
+
625
+ .u-style-81c40e,
626
+ .u-style-ec5da2 {
627
+ display: flex;
628
+ flex-direction: column;
629
+ align-items: center;
630
+ padding: var(--space-6) var(--space-4) var(--space-5) var(--space-6);
631
+ height: 100%;
632
+ width: 100%;
633
+ text-align: center;
634
+ background-color: var(--card-bg);
635
+ }
636
+
637
+ .u-style-ea280e,
638
+ .u-style-10c394 {
639
+ margin-bottom: auto;
640
+ letter-spacing: 0.15em;
641
+ font-size: 1rem;
642
+ font-weight: 700;
643
+ color: var(--text-muted);
644
+ text-transform: uppercase;
645
+ }
646
+
647
+ .u-style-b166d9,
648
+ .u-style-5c1531 {
649
+ font-size: 160px;
650
+ height: 160px;
651
+ width: 160px;
652
+ color: var(--color-primary);
653
+ filter: drop-shadow(0 var(--space-1) var(--space-2) color-mix(in srgb, var(--black) 20%, transparent));
654
+ margin: var(--space-4) 0;
655
+ }
656
+
657
+ .u-style-59eab0,
658
+ .u-style-c46697 {
659
+ font-size: 2.25rem;
660
+ font-weight: 800;
661
+ line-height: 1.15;
662
+ margin-bottom: var(--space-2);
663
+ letter-spacing: -0.02em;
664
+ }
665
+
666
+ .u-style-547d55,
667
+ .u-style-85912f {
668
+ font-size: 1rem;
669
+ color: var(--text-muted);
670
+ font-weight: 500;
671
+ font-style: italic;
672
+ }
673
+
674
+ .u-style-5440df,
675
+ .u-style-fe3035 {
676
+ margin-top: auto;
677
+ padding-top: var(--space-4);
678
+ border-top: 1px solid var(--border);
679
+ width: 100%;
680
+ display: flex;
681
+ justify-content: space-between;
682
+ align-items: center;
683
+ }
684
+
685
+ .u-style-018404 {
686
+ font-size: 1rem;
687
+ font-weight: 600;
688
+ color: var(--text-color);
689
+ }
690
+
691
+ .u-style-29066b,
692
+ .u-style-19122e {
693
+ font-size: 1rem;
694
+ font-weight: 700;
695
+ color: var(--color-primary);
696
+ letter-spacing: 0.1em;
697
+ }
698
+
699
+ .u-style-fef210 {
700
+ margin-top: var(--space-6);
701
+ }
702
+
703
+ .u-style-7bafc4 {
704
+ margin-bottom: var(--space-3);
705
+ max-width: 320px;
706
+ }
707
+
708
+ .u-style-324768 {
709
+ letter-spacing: -0.02em;
710
+ font-weight: bold;
711
+ }
712
+
713
+ .u-style-1e3398 {
714
+ margin-top: var(--space-2);
715
+ margin-bottom: var(--space-1);
716
+ display: flex;
717
+ gap: var(--space-1);
718
+ flex-wrap: wrap;
719
+ align-items: center;
720
+ }
721
+
722
+ .u-style-bd64a0 {
723
+ color: var(--text-muted);
724
+ font-size: 1rem;
725
+ font-weight: 600;
726
+ text-transform: uppercase;
727
+ letter-spacing: 0.05em;
728
+ margin-right: var(--space-1);
729
+ }
730
+
731
+ .u-style-c120b8 {
732
+ background: var(--color-surface);
733
+ border: 1px solid var(--border);
734
+ color: var(--text-color);
735
+ padding: 2px var(--space-2);
736
+ border-radius: var(--viking-radius-pill, 999px);
737
+ text-transform: capitalize;
738
+ font-size: 1rem;
739
+ font-weight: 500;
740
+ }
741
+
742
+ .u-style-019b32 {
743
+ position: relative;
744
+ }
745
+
746
+ .u-style-2aad06 {
747
+ height: 360px !important;
748
+ width: 100%;
749
+ display: block;
750
+ border-radius: var(--border-radius-md);
751
+ }
752
+
753
+ .u-style-c5a969 {
754
+ word-break: break-all;
755
+ }
756
+
757
+ .u-style-ab4518 {
758
+ border-color: var(--color-primary);
759
+ background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
760
+ }
761
+
762
+ .u-style-fa919b {
763
+ color: var(--color-primary);
764
+ }
765
+
766
+ .u-style-4d3ef5,
767
+ .u-style-58adc5 {
768
+ display: inline-flex;
769
+ align-items: center;
770
+ gap: var(--space-1);
771
+ background: var(--viking-surface);
772
+ border: 1px solid var(--border);
773
+ padding: var(--space-1) var(--space-2);
774
+ border-radius: var(--border-radius-pill);
775
+ margin-bottom: var(--space-3);
776
+ box-shadow: var(--shadow-sm);
777
+ }
778
+
779
+ .u-style-b94f9d,
780
+ .u-style-486a44 {
781
+ font-size: var(--base-font-size);
782
+ font-weight: 600;
783
+ letter-spacing: 0.05em;
784
+ color: var(--text-color);
785
+ text-transform: uppercase;
786
+ }
787
+
788
+ .u-style-7f7d6d {
789
+ color: var(--text-muted);
790
+ line-height: 1.6;
791
+ margin: 0;
792
+ font-size: 1.05rem;
793
+ }
794
+
795
+ .u-style-efd290 {
796
+ color: var(--text-muted);
797
+ line-height: 1.6;
798
+ margin: 0;
799
+ }
800
+
801
+ .u-style-5ab468 {
802
+ margin-top: auto;
803
+ }
804
+
805
+ .u-style-490bad,
806
+ .u-style-358aff {
807
+ color: var(--text-color);
808
+ line-height: 1.8;
809
+ margin: 0;
810
+ padding-left: var(--space-2);
811
+ display: flex;
812
+ flex-direction: column;
813
+ gap: var(--space-1);
814
+ }
815
+
816
+ .u-style-3010d8 {
817
+ color: var(--color-error);
818
+ }
819
+
820
+ .u-style-92147e,
821
+ .u-style-363cdb {
822
+ display: flex;
823
+ align-items: center;
824
+ justify-content: center;
825
+ gap: var(--space-1);
826
+ flex-wrap: wrap;
827
+ }
828
+
829
+ .u-style-fbce95 {
830
+ border-bottom: none;
831
+ }
832
+
833
+ .u-style-d37906 {
834
+ height: var(--space-2);
835
+ }
836
+
837
+ .u-style-59d8eb,
838
+ .u-style-315c1f {
839
+ font-size: var(--base-font-size);
840
+ width: var(--base-font-size);
841
+ height: var(--base-font-size);
842
+ }
843
+
844
+ .u-style-315c1f {
845
+ color: var(--text-muted);
846
+ }
847
+
848
+ .u-style-69556e,
849
+ .u-style-e3ae3d {
850
+ display: flex;
851
+ flex-direction: row;
852
+ align-items: center;
853
+ gap: var(--space-1);
854
+ justify-content: center;
855
+ flex-wrap: wrap;
856
+ }
857
+
858
+ .u-style-685a53 {
859
+ width: 100%;
860
+ padding: var(--space-1);
861
+ border-radius: var(--border-radius-sm);
862
+ background: var(--viking-surface);
863
+ color: var(--text-color);
864
+ border: 1px solid var(--border);
865
+ }
866
+
867
+ .u-style-8f2b4f {
868
+ vertical-align: middle;
869
+ margin-right: var(--space-1);
870
+ }
871
+
872
+ .u-style-224b51 {
873
+ display: none;
874
+ }
875
+
876
+ .u-style-315505 {
877
+ margin-bottom: var(--space-3);
878
+ display: flex;
879
+ flex-direction: column;
880
+ gap: var(--space-2);
881
+ border: 1px solid var(--color-primary);
882
+ background: color-mix(in srgb, var(--color-primary) 5%, transparent);
883
+ padding: var(--space-2);
884
+ border-radius: var(--border-radius-md);
885
+ }
886
+
887
+ .u-style-0f195f {
888
+ display: flex;
889
+ align-items: flex-start;
890
+ gap: var(--space-2);
891
+ }
892
+
893
+ .u-style-6784e6 {
894
+ color: var(--color-primary);
895
+ font-size: var(--space-3);
896
+ width: var(--space-3);
897
+ height: var(--space-3);
898
+ }
899
+
900
+ .u-style-04b067 {
901
+ color: var(--text-color);
902
+ }
903
+
904
+ .u-style-39bd7e {
905
+ color: var(--text-muted);
906
+ display: block;
907
+ margin-top: var(--space-1);
908
+ }
909
+
910
+ .u-style-197c13 {
911
+ border-top: 1px solid var(--border);
912
+ padding-top: var(--space-2);
913
+ }
914
+
915
+ .u-style-4d9a87 {
916
+ margin: 0 0 var(--space-2) 0;
917
+ color: var(--text-color);
918
+ font-size: 1.1rem;
919
+ font-weight: 600;
920
+ }
921
+
922
+ .u-style-bb5495 {
923
+ display: flex;
924
+ flex-direction: column;
925
+ gap: var(--space-2);
926
+ }
927
+
928
+ .u-style-eb2b00 {
929
+ display: flex;
930
+ gap: var(--space-2);
931
+ flex-wrap: wrap;
932
+ }
933
+
934
+ .u-style-a7e5d2 {
935
+ flex: 1;
936
+ min-width: 200px;
937
+ }
938
+
939
+ .u-style-a1ae42 {
940
+ align-self: flex-start;
941
+ }
942
+
943
+ .mode-tag,
944
+ .logs-title,
945
+ .section-tag,
946
+ .hud-subtitle,
947
+ .hud-select,
948
+ .stat-unit,
949
+ .chart-custom-title,
950
+ .chart-custom-trend {
951
+ font-size: max(16px, var(--base-font-size, 16px));
952
+ }
953
+
954
+ .viking-button-group {
955
+ display: inline-flex;
956
+ border-radius: var(--viking-radius, var(--border-radius-md, 8px));
957
+ overflow: hidden;
958
+ border: 1px solid var(--viking-border, var(--border));
959
+ }
960
+ .viking-button-group > .viking-btn,
961
+ .viking-button-group > button,
962
+ .viking-button-group > a {
963
+ border-radius: 0;
964
+ border-right: 1px solid var(--viking-border, var(--border));
965
+ margin: 0;
966
+ }
967
+ .viking-button-group > .viking-btn:last-child,
968
+ .viking-button-group > button:last-child,
969
+ .viking-button-group > a:last-child {
970
+ border-right: none;
971
+ }
972
+ .viking-button-group > .viking-btn:hover:not(:disabled),
973
+ .viking-button-group > button:hover:not(:disabled),
974
+ .viking-button-group > a:hover:not(:disabled) {
975
+ z-index: 1;
976
+ }
977
+
978
+ .viking-field {
979
+ display: block;
980
+ width: 100%;
981
+ }
982
+
983
+ .viking-field-label {
984
+ display: block;
985
+ font-size: max(16px, var(--base-font-size));
986
+ font-weight: 500;
987
+ color: var(--text-color);
988
+ margin-bottom: var(--space-1);
989
+ }
990
+
991
+ .viking-field-description {
992
+ display: block;
993
+ font-size: 1rem;
994
+ color: var(--text-muted);
995
+ margin-bottom: var(--space-1);
996
+ }
997
+
998
+ .viking-input-group {
999
+ display: flex;
1000
+ width: 100%;
1001
+ align-items: stretch;
1002
+ }
1003
+ .viking-input-group input,
1004
+ .viking-input-group select,
1005
+ .viking-input-group button,
1006
+ .viking-input-group .viking-btn {
1007
+ border-radius: 0;
1008
+ }
1009
+ .viking-input-group > :first-child {
1010
+ border-top-left-radius: var(--border-radius-md);
1011
+ border-bottom-left-radius: var(--border-radius-md);
1012
+ }
1013
+ .viking-input-group > :last-child {
1014
+ border-top-right-radius: var(--border-radius-md);
1015
+ border-bottom-right-radius: var(--border-radius-md);
1016
+ }
1017
+ .viking-input-group > * + * {
1018
+ margin-left: -1px;
1019
+ }
1020
+
1021
+ .viking-input-prefix,
1022
+ .viking-input-suffix {
1023
+ display: inline-flex;
1024
+ align-items: center;
1025
+ padding: 0 var(--space-2);
1026
+ background-color: var(--color-surface-variant);
1027
+ color: var(--text-muted);
1028
+ font-size: max(16px, var(--base-font-size));
1029
+ border: 1px solid var(--border);
1030
+ white-space: nowrap;
1031
+ user-select: none;
1032
+ }
1033
+
1034
+ .viking-input-affix-btn {
1035
+ display: inline-flex;
1036
+ align-items: center;
1037
+ justify-content: center;
1038
+ padding: 0 var(--space-2);
1039
+ background: transparent;
1040
+ color: var(--text-muted);
1041
+ border: 1px solid var(--border);
1042
+ cursor: pointer;
1043
+ transition: var(--transition-smooth);
1044
+ }
1045
+ .viking-input-affix-btn:hover:not(:disabled) {
1046
+ color: var(--text-color);
1047
+ background-color: color-mix(in srgb, var(--hover-color) 12%, transparent);
1048
+ }
1049
+
1050
+ .viking-input {
1051
+ width: 100%;
1052
+ background-color: var(--card-bg);
1053
+ color: var(--text-color);
1054
+ border: 1px solid var(--border);
1055
+ border-radius: var(--border-radius-md);
1056
+ padding: var(--space-1) var(--space-2);
1057
+ font-size: max(16px, var(--base-font-size));
1058
+ font-family: var(--viking-font-family);
1059
+ line-height: 1.4;
1060
+ min-height: 44px;
1061
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1062
+ }
1063
+ .viking-input::placeholder {
1064
+ color: var(--text-muted);
1065
+ opacity: 0.8;
1066
+ }
1067
+ .viking-input:hover {
1068
+ border-color: var(--color-primary-container);
1069
+ }
1070
+ .viking-input:focus, .viking-input:focus-visible {
1071
+ outline: none;
1072
+ border-color: var(--color-primary-container);
1073
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary-container) 35%, transparent);
1074
+ }
1075
+ .viking-input:disabled {
1076
+ opacity: 0.6;
1077
+ cursor: not-allowed;
1078
+ }
1079
+
1080
+ .viking-select-trigger {
1081
+ background-color: var(--card-bg);
1082
+ color: var(--text-color);
1083
+ border: 1px solid var(--border);
1084
+ border-radius: var(--border-radius-md);
1085
+ padding: var(--space-1) var(--space-2);
1086
+ font-size: max(16px, var(--base-font-size));
1087
+ min-height: 44px;
1088
+ display: flex;
1089
+ align-items: center;
1090
+ justify-content: space-between;
1091
+ cursor: pointer;
1092
+ }
1093
+ .viking-select-trigger:hover {
1094
+ border-color: var(--color-primary-container);
1095
+ }
1096
+ .viking-select-trigger:focus-visible {
1097
+ outline: var(--focus-ring-width) solid var(--focus-ring-color);
1098
+ outline-offset: var(--focus-ring-offset);
1099
+ }
1100
+
1101
+ .viking-select-dropdown {
1102
+ background-color: var(--card-bg);
1103
+ border: 1px solid var(--border);
1104
+ border-radius: var(--border-radius-md);
1105
+ box-shadow: var(--shadow-md);
1106
+ max-height: 15rem;
1107
+ overflow-y: auto;
1108
+ }
1109
+
1110
+ .viking-select-option {
1111
+ padding: var(--space-1) var(--space-2);
1112
+ color: var(--text-color);
1113
+ cursor: pointer;
1114
+ }
1115
+ .viking-select-option:hover {
1116
+ background-color: color-mix(in srgb, var(--hover-color) 18%, transparent);
1117
+ }
1118
+ .viking-select-option.selected, .viking-select-option[aria-selected=true] {
1119
+ background-color: var(--color-primary-container);
1120
+ color: var(--color-on-primary-container);
1121
+ font-weight: 600;
1122
+ }