@vertebr/react 0.4.0 → 0.5.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 (82) hide show
  1. package/dist/components/admin/AdminContent.d.ts +36 -0
  2. package/dist/components/admin/AdminContent.d.ts.map +1 -0
  3. package/dist/components/admin/AdminContent.js +107 -0
  4. package/dist/components/admin/AdminHeader.d.ts +13 -0
  5. package/dist/components/admin/AdminHeader.d.ts.map +1 -0
  6. package/dist/components/admin/AdminHeader.js +32 -0
  7. package/dist/components/admin/AdminSidebar.d.ts +25 -0
  8. package/dist/components/admin/AdminSidebar.d.ts.map +1 -0
  9. package/dist/components/admin/AdminSidebar.js +31 -0
  10. package/dist/components/admin/VertebrAdmin.d.ts +3 -18
  11. package/dist/components/admin/VertebrAdmin.d.ts.map +1 -1
  12. package/dist/components/admin/VertebrAdmin.js +130 -120
  13. package/dist/components/admin/sidebar.d.ts +3 -0
  14. package/dist/components/admin/sidebar.d.ts.map +1 -0
  15. package/dist/components/admin/sidebar.js +13 -0
  16. package/dist/components/admin/storage.d.ts +4 -0
  17. package/dist/components/admin/storage.d.ts.map +1 -0
  18. package/dist/components/admin/storage.js +24 -0
  19. package/dist/components/admin/types.d.ts +53 -0
  20. package/dist/components/admin/types.d.ts.map +1 -0
  21. package/dist/components/admin/types.js +1 -0
  22. package/dist/components/config/form/ConfigForm.d.ts +1 -1
  23. package/dist/components/config/form/ConfigForm.d.ts.map +1 -1
  24. package/dist/components/config/form/ConfigForm.js +5 -1
  25. package/dist/components/config/form/RecordConfigForm.d.ts +1 -0
  26. package/dist/components/config/form/RecordConfigForm.d.ts.map +1 -1
  27. package/dist/components/config/form/SettingsConfigForm.d.ts +2 -1
  28. package/dist/components/config/form/SettingsConfigForm.d.ts.map +1 -1
  29. package/dist/components/config/form/SettingsConfigForm.js +2 -2
  30. package/dist/components/config/form/helpers/fields.js +1 -1
  31. package/dist/components/config/form/types.d.ts +4 -0
  32. package/dist/components/config/form/types.d.ts.map +1 -1
  33. package/dist/components/emails/EmailRecipientSelect.d.ts +16 -0
  34. package/dist/components/emails/EmailRecipientSelect.d.ts.map +1 -0
  35. package/dist/components/emails/EmailRecipientSelect.js +10 -0
  36. package/dist/components/emails/EmailsActivityPanel.d.ts +11 -0
  37. package/dist/components/emails/EmailsActivityPanel.d.ts.map +1 -0
  38. package/dist/components/emails/EmailsActivityPanel.js +139 -0
  39. package/dist/components/emails/EmailsBoard.d.ts +47 -0
  40. package/dist/components/emails/EmailsBoard.d.ts.map +1 -0
  41. package/dist/components/emails/EmailsBoard.js +594 -0
  42. package/dist/components/emails/EmailsLibraryPanel.d.ts +25 -0
  43. package/dist/components/emails/EmailsLibraryPanel.d.ts.map +1 -0
  44. package/dist/components/emails/EmailsLibraryPanel.js +379 -0
  45. package/dist/components/emails/EmailsNavSelect.d.ts +18 -0
  46. package/dist/components/emails/EmailsNavSelect.d.ts.map +1 -0
  47. package/dist/components/emails/EmailsNavSelect.js +37 -0
  48. package/dist/components/emails/MultiCheckSelect.d.ts +18 -0
  49. package/dist/components/emails/MultiCheckSelect.d.ts.map +1 -0
  50. package/dist/components/emails/MultiCheckSelect.js +74 -0
  51. package/dist/components/metrics/MetricsBoard.d.ts +8 -2
  52. package/dist/components/metrics/MetricsBoard.d.ts.map +1 -1
  53. package/dist/components/metrics/MetricsBoard.js +55 -2
  54. package/dist/components/metrics/charts.d.ts +14 -0
  55. package/dist/components/metrics/charts.d.ts.map +1 -0
  56. package/dist/components/metrics/charts.js +212 -0
  57. package/dist/components/resources/ResourceActionModal.d.ts +14 -0
  58. package/dist/components/resources/ResourceActionModal.d.ts.map +1 -0
  59. package/dist/components/resources/ResourceActionModal.js +64 -0
  60. package/dist/components/resources/ResourceCell.d.ts.map +1 -1
  61. package/dist/components/resources/ResourceCell.js +25 -9
  62. package/dist/components/resources/ResourceMailModal.d.ts +12 -0
  63. package/dist/components/resources/ResourceMailModal.d.ts.map +1 -0
  64. package/dist/components/resources/ResourceMailModal.js +196 -0
  65. package/dist/components/resources/ResourceTable.d.ts +7 -3
  66. package/dist/components/resources/ResourceTable.d.ts.map +1 -1
  67. package/dist/components/resources/ResourceTable.js +204 -34
  68. package/dist/index.d.ts +7 -1
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +1 -0
  71. package/dist/lib/metricsRanges.d.ts +20 -0
  72. package/dist/lib/metricsRanges.d.ts.map +1 -0
  73. package/dist/lib/metricsRanges.js +14 -0
  74. package/dist/styles/cells.css +42 -0
  75. package/dist/styles/emails.css +632 -0
  76. package/dist/styles/index.css +3 -0
  77. package/dist/styles/mail.css +240 -0
  78. package/dist/styles/metrics.css +633 -0
  79. package/dist/styles/nav.css +103 -1
  80. package/dist/styles/panel.css +2 -68
  81. package/dist/styles/table.css +26 -3
  82. package/package.json +1 -1
@@ -0,0 +1,633 @@
1
+ .vertebr-metrics {
2
+ flex: 1 1 auto;
3
+ min-height: 0;
4
+ display: flex;
5
+ flex-direction: column;
6
+ }
7
+
8
+ .vertebr-metrics-window {
9
+ margin: 0.22rem 0 0;
10
+ font-size: 0.78rem;
11
+ color: var(--vb-text-muted);
12
+ }
13
+
14
+ .vertebr-metrics-body {
15
+ flex: 1 1 auto;
16
+ min-height: 0;
17
+ overflow: auto;
18
+ display: flex;
19
+ flex-direction: column;
20
+ gap: 1.5rem;
21
+ padding: 1.15rem 1.5rem 1.6rem;
22
+ }
23
+
24
+ .vertebr-metrics-block,
25
+ .vertebr-metrics-kpis,
26
+ .vertebr-metrics-table-wrap {
27
+ flex-shrink: 0;
28
+ }
29
+
30
+ .vertebr-metrics-kpis {
31
+ display: grid;
32
+ grid-template-columns: repeat(4, minmax(0, 1fr));
33
+ gap: 0.75rem;
34
+ }
35
+
36
+ .vertebr-kpi {
37
+ position: relative;
38
+ border: 1px solid var(--vb-border);
39
+ border-radius: 12px;
40
+ background:
41
+ linear-gradient(180deg, var(--vb-surface-tint) 0%, transparent 55%),
42
+ var(--vb-bg-elevated);
43
+ padding: 0.95rem 1rem 0.9rem;
44
+ min-height: 8rem;
45
+ display: flex;
46
+ flex-direction: column;
47
+ gap: 0.45rem;
48
+ overflow: hidden;
49
+ }
50
+
51
+ .vertebr-kpi::before {
52
+ content: "";
53
+ position: absolute;
54
+ inset: 0 auto 0 0;
55
+ width: 2px;
56
+ background: transparent;
57
+ }
58
+
59
+ .vertebr-kpi[data-tone="ok"]::before {
60
+ background: var(--vb-ok);
61
+ }
62
+
63
+ .vertebr-kpi[data-tone="warn"]::before {
64
+ background: var(--vb-accent);
65
+ }
66
+
67
+ .vertebr-kpi[data-selectable="true"] {
68
+ cursor: pointer;
69
+ }
70
+
71
+ .vertebr-kpi[data-active="true"] {
72
+ border-color: color-mix(in srgb, var(--vb-accent) 50%, var(--vb-border));
73
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--vb-accent) 25%, transparent);
74
+ }
75
+
76
+ .vertebr-kpi-top {
77
+ display: flex;
78
+ align-items: flex-start;
79
+ justify-content: space-between;
80
+ gap: 0.55rem;
81
+ }
82
+
83
+ .vertebr-kpi-value {
84
+ margin: 0;
85
+ font-size: 1.7rem;
86
+ font-weight: 600;
87
+ letter-spacing: -0.045em;
88
+ line-height: 1.05;
89
+ font-variant-numeric: tabular-nums;
90
+ }
91
+
92
+ .vertebr-kpi-foot {
93
+ display: flex;
94
+ flex-wrap: wrap;
95
+ align-items: center;
96
+ gap: 0.4rem 0.55rem;
97
+ margin-top: auto;
98
+ }
99
+
100
+ .vertebr-sparkline {
101
+ color: var(--vb-accent);
102
+ flex: none;
103
+ margin-top: 0.1rem;
104
+ }
105
+
106
+ .vertebr-sparkline[data-tone="ok"] {
107
+ color: var(--vb-ok);
108
+ }
109
+
110
+ .vertebr-sparkline[data-tone="danger"] {
111
+ color: var(--vb-danger);
112
+ }
113
+
114
+ .vertebr-metric-delta {
115
+ display: inline-flex;
116
+ align-items: center;
117
+ padding: 0.12rem 0.42rem;
118
+ border-radius: 999px;
119
+ font-size: 0.68rem;
120
+ font-weight: 600;
121
+ letter-spacing: 0.02em;
122
+ font-family: var(--vb-mono);
123
+ font-variant-numeric: tabular-nums;
124
+ background: var(--vb-surface-tint-strong);
125
+ color: var(--vb-text-subtle);
126
+ }
127
+
128
+ .vertebr-metric-delta[data-dir="up"] {
129
+ color: var(--vb-ok);
130
+ background: var(--vb-ok-soft);
131
+ }
132
+
133
+ .vertebr-metric-delta[data-dir="down"] {
134
+ color: var(--vb-danger);
135
+ background: var(--vb-danger-soft);
136
+ }
137
+
138
+ .vertebr-chart {
139
+ border: 1px solid var(--vb-border);
140
+ border-radius: 12px;
141
+ background:
142
+ linear-gradient(180deg, var(--vb-surface-tint) 0%, transparent 42%),
143
+ var(--vb-bg-elevated);
144
+ padding: 0.85rem 1rem 0.65rem;
145
+ min-height: 0;
146
+ display: flex;
147
+ flex-direction: column;
148
+ gap: 0.3rem;
149
+ }
150
+
151
+ .vertebr-chart-series.vertebr-select-trigger {
152
+ width: auto;
153
+ min-width: 10.5rem;
154
+ padding: 0.28rem 0.55rem;
155
+ font-size: 0.72rem;
156
+ font-family: var(--vb-mono);
157
+ letter-spacing: 0.08em;
158
+ text-transform: uppercase;
159
+ font-weight: 500;
160
+ }
161
+
162
+ .vertebr-chart-head {
163
+ display: flex;
164
+ align-items: center;
165
+ justify-content: space-between;
166
+ gap: 0.75rem;
167
+ padding: 0 0.1rem 0.55rem;
168
+ border-bottom: 1px solid color-mix(in srgb, var(--vb-border) 70%, transparent);
169
+ flex: 0 0 auto;
170
+ }
171
+
172
+ .vertebr-chart-head-start {
173
+ display: flex;
174
+ flex-wrap: wrap;
175
+ align-items: center;
176
+ gap: 0.55rem 1rem;
177
+ min-width: 0;
178
+ }
179
+
180
+ .vertebr-chart-head-end {
181
+ display: flex;
182
+ align-items: flex-start;
183
+ gap: 0.5rem;
184
+ }
185
+
186
+ .vertebr-chart-kicker {
187
+ margin: 0;
188
+ font-size: 0.72rem;
189
+ letter-spacing: 0.1em;
190
+ text-transform: uppercase;
191
+ font-family: var(--vb-mono);
192
+ font-weight: 500;
193
+ color: var(--vb-text-muted);
194
+ }
195
+
196
+ .vertebr-chart-caption {
197
+ margin: 0.18rem 0 0;
198
+ font-size: 0.72rem;
199
+ color: var(--vb-text-subtle);
200
+ }
201
+
202
+ .vertebr-chart-total {
203
+ margin: 0;
204
+ font-size: 1.2rem;
205
+ font-weight: 600;
206
+ letter-spacing: -0.04em;
207
+ font-variant-numeric: tabular-nums;
208
+ line-height: 1.1;
209
+ }
210
+
211
+ .vertebr-chart-plot {
212
+ position: relative;
213
+ min-height: 0;
214
+ }
215
+
216
+ .vertebr-chart-svg {
217
+ display: block;
218
+ width: 100%;
219
+ height: auto;
220
+ overflow: visible;
221
+ cursor: crosshair;
222
+ }
223
+
224
+ .vertebr-chart-grid {
225
+ stroke: color-mix(in srgb, var(--vb-border) 80%, transparent);
226
+ stroke-width: 1;
227
+ stroke-dasharray: 3 4;
228
+ }
229
+
230
+ .vertebr-chart-baseline {
231
+ stroke: var(--vb-border-strong);
232
+ stroke-width: 1;
233
+ }
234
+
235
+ .vertebr-chart-area {
236
+ fill-opacity: 1;
237
+ }
238
+
239
+ .vertebr-chart-line {
240
+ fill: none;
241
+ stroke: var(--vb-accent);
242
+ stroke-width: 2.1;
243
+ stroke-linejoin: round;
244
+ stroke-linecap: round;
245
+ }
246
+
247
+ .vertebr-chart-line-compare {
248
+ fill: none;
249
+ stroke: var(--vb-text-subtle);
250
+ stroke-width: 1.7;
251
+ stroke-dasharray: 4 5;
252
+ stroke-linejoin: round;
253
+ stroke-linecap: round;
254
+ stroke-opacity: 0.85;
255
+ }
256
+
257
+ .vertebr-chart-dot-compare {
258
+ fill: var(--vb-bg-elevated);
259
+ stroke: var(--vb-text-subtle);
260
+ stroke-width: 1.8;
261
+ pointer-events: none;
262
+ }
263
+
264
+ .vertebr-chart-legend {
265
+ display: flex;
266
+ flex-wrap: wrap;
267
+ gap: 0.65rem 0.9rem;
268
+ margin: 0;
269
+ font-size: 0.66rem;
270
+ font-family: var(--vb-mono);
271
+ letter-spacing: 0.04em;
272
+ color: var(--vb-text-subtle);
273
+ }
274
+
275
+ .vertebr-chart-legend span {
276
+ display: inline-flex;
277
+ align-items: center;
278
+ gap: 0.35rem;
279
+ }
280
+
281
+ .vertebr-chart-legend i {
282
+ display: inline-block;
283
+ width: 0.85rem;
284
+ height: 2px;
285
+ border-radius: 1px;
286
+ background: var(--vb-accent);
287
+ }
288
+
289
+ .vertebr-chart-legend i[data-series="previous"] {
290
+ background: repeating-linear-gradient(
291
+ 90deg,
292
+ var(--vb-text-subtle) 0,
293
+ var(--vb-text-subtle) 4px,
294
+ transparent 4px,
295
+ transparent 7px
296
+ );
297
+ }
298
+
299
+ .vertebr-chart-legend i[data-series="m0"],
300
+ .vertebr-chart-line-metric[data-series="m0"],
301
+ .vertebr-chart-dot-metric[data-series="m0"] {
302
+ --vb-chart-series: var(--vb-accent);
303
+ }
304
+
305
+ .vertebr-chart-legend i[data-series="m1"],
306
+ .vertebr-chart-line-metric[data-series="m1"],
307
+ .vertebr-chart-dot-metric[data-series="m1"] {
308
+ --vb-chart-series: color-mix(in srgb, var(--vb-ok) 72%, var(--vb-text) 28%);
309
+ }
310
+
311
+ .vertebr-chart-legend i[data-series="m2"],
312
+ .vertebr-chart-line-metric[data-series="m2"],
313
+ .vertebr-chart-dot-metric[data-series="m2"] {
314
+ --vb-chart-series: color-mix(in srgb, var(--vb-warn) 78%, var(--vb-text) 22%);
315
+ }
316
+
317
+ .vertebr-chart-legend i[data-series^="m"] {
318
+ background: var(--vb-chart-series, var(--vb-accent));
319
+ }
320
+
321
+ .vertebr-chart-line-metric {
322
+ fill: none;
323
+ stroke: var(--vb-chart-series, var(--vb-accent));
324
+ stroke-width: 2;
325
+ stroke-linejoin: round;
326
+ stroke-linecap: round;
327
+ }
328
+
329
+ .vertebr-chart-dot-metric {
330
+ fill: var(--vb-bg-elevated);
331
+ stroke: var(--vb-chart-series, var(--vb-accent));
332
+ stroke-width: 1.8;
333
+ pointer-events: none;
334
+ }
335
+
336
+ .vertebr-chart-mode {
337
+ display: inline-flex;
338
+ gap: 0.15rem;
339
+ padding: 0.12rem;
340
+ border: 1px solid color-mix(in srgb, var(--vb-border) 85%, transparent);
341
+ border-radius: 8px;
342
+ background: color-mix(in srgb, var(--vb-bg) 65%, transparent);
343
+ }
344
+
345
+ .vertebr-chart-mode-btn {
346
+ appearance: none;
347
+ margin: 0;
348
+ padding: 0.22rem 0.5rem;
349
+ border: 0;
350
+ border-radius: 6px;
351
+ background: transparent;
352
+ color: var(--vb-text-muted);
353
+ font: inherit;
354
+ font-size: 0.68rem;
355
+ font-family: var(--vb-mono);
356
+ letter-spacing: 0.04em;
357
+ text-transform: uppercase;
358
+ cursor: pointer;
359
+ }
360
+
361
+ .vertebr-chart-mode-btn:hover {
362
+ color: var(--vb-text);
363
+ }
364
+
365
+ .vertebr-chart-mode-btn[data-active="true"] {
366
+ background: var(--vb-bg-elevated);
367
+ color: var(--vb-text);
368
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--vb-border) 70%, transparent);
369
+ }
370
+
371
+ .vertebr-chart-metric-toggles {
372
+ display: flex;
373
+ flex-wrap: wrap;
374
+ gap: 0.35rem;
375
+ }
376
+
377
+ .vertebr-chart-metric-toggle {
378
+ appearance: none;
379
+ margin: 0;
380
+ padding: 0.2rem 0.48rem;
381
+ border: 1px solid color-mix(in srgb, var(--vb-border) 90%, transparent);
382
+ border-radius: 6px;
383
+ background: transparent;
384
+ color: var(--vb-text-muted);
385
+ font: inherit;
386
+ font-size: 0.68rem;
387
+ font-family: var(--vb-mono);
388
+ letter-spacing: 0.03em;
389
+ cursor: pointer;
390
+ }
391
+
392
+ .vertebr-chart-metric-toggle:hover:not(:disabled) {
393
+ color: var(--vb-text);
394
+ border-color: var(--vb-border-strong);
395
+ }
396
+
397
+ .vertebr-chart-metric-toggle[data-on="true"] {
398
+ color: var(--vb-text);
399
+ border-color: color-mix(in srgb, var(--vb-accent) 45%, var(--vb-border));
400
+ background: color-mix(in srgb, var(--vb-accent) 12%, transparent);
401
+ }
402
+
403
+ .vertebr-chart-metric-toggle:disabled {
404
+ opacity: 0.45;
405
+ cursor: not-allowed;
406
+ }
407
+
408
+ .vertebr-chart-tooltip-row {
409
+ font-size: 0.78rem;
410
+ font-weight: 600;
411
+ letter-spacing: -0.02em;
412
+ }
413
+
414
+ .vertebr-chart-tooltip-row[data-series="m0"] {
415
+ color: var(--vb-accent);
416
+ }
417
+
418
+ .vertebr-chart-tooltip-row[data-series="m1"] {
419
+ color: color-mix(in srgb, var(--vb-ok) 72%, var(--vb-text) 28%);
420
+ }
421
+
422
+ .vertebr-chart-tooltip-row[data-series="m2"] {
423
+ color: color-mix(in srgb, var(--vb-warn) 78%, var(--vb-text) 22%);
424
+ }
425
+
426
+ .vertebr-metrics-range.vertebr-select-trigger {
427
+ width: auto;
428
+ min-width: 9.5rem;
429
+ padding: 0.28rem 0.55rem;
430
+ font-size: 0.78rem;
431
+ }
432
+
433
+ .vertebr-chart-tooltip-compare {
434
+ color: var(--vb-text-muted) !important;
435
+ }
436
+
437
+ .vertebr-chart-crosshair {
438
+ stroke: color-mix(in srgb, var(--vb-accent) 55%, var(--vb-border));
439
+ stroke-width: 1;
440
+ stroke-dasharray: 2 3;
441
+ pointer-events: none;
442
+ }
443
+
444
+ .vertebr-chart-dot {
445
+ fill: var(--vb-bg-elevated);
446
+ stroke: var(--vb-accent);
447
+ stroke-width: 2;
448
+ pointer-events: none;
449
+ }
450
+
451
+ .vertebr-chart-axis {
452
+ fill: var(--vb-text-subtle);
453
+ font-size: 10px;
454
+ font-family: var(--vb-mono);
455
+ }
456
+
457
+ .vertebr-chart-tooltip {
458
+ position: absolute;
459
+ top: 0.3rem;
460
+ transform: translateX(-50%);
461
+ display: flex;
462
+ flex-direction: column;
463
+ gap: 0.08rem;
464
+ padding: 0.32rem 0.48rem;
465
+ border: 1px solid var(--vb-border);
466
+ border-radius: 7px;
467
+ background: var(--vb-bg-elevated);
468
+ box-shadow: var(--vb-shadow);
469
+ pointer-events: none;
470
+ white-space: nowrap;
471
+ z-index: 1;
472
+ }
473
+
474
+ .vertebr-chart-tooltip strong {
475
+ font-size: 0.82rem;
476
+ letter-spacing: -0.02em;
477
+ }
478
+
479
+ .vertebr-chart-tooltip span {
480
+ font-size: 0.66rem;
481
+ font-family: var(--vb-mono);
482
+ color: var(--vb-text-subtle);
483
+ }
484
+
485
+ .vertebr-chart[data-empty="true"] .vertebr-chart-line {
486
+ stroke-opacity: 0.45;
487
+ }
488
+
489
+ .vertebr-chart-empty {
490
+ margin: 1.5rem 0;
491
+ color: var(--vb-text-muted);
492
+ font-size: 0.85rem;
493
+ }
494
+
495
+ .vertebr-metrics-table-wrap {
496
+ border: 1px solid var(--vb-border);
497
+ border-radius: 12px;
498
+ background:
499
+ linear-gradient(180deg, var(--vb-surface-tint) 0%, transparent 28%),
500
+ var(--vb-bg-elevated);
501
+ overflow: hidden;
502
+ }
503
+
504
+ .vertebr-metrics-table-head {
505
+ appearance: none;
506
+ display: flex;
507
+ align-items: center;
508
+ justify-content: space-between;
509
+ gap: 0.75rem;
510
+ width: 100%;
511
+ padding: 0.8rem 1.05rem 0.65rem;
512
+ border: 0;
513
+ border-bottom: 1px solid color-mix(in srgb, var(--vb-border) 70%, transparent);
514
+ background: transparent;
515
+ color: inherit;
516
+ font: inherit;
517
+ text-align: left;
518
+ cursor: pointer;
519
+ }
520
+
521
+ .vertebr-metrics-table-head:hover {
522
+ background: var(--vb-surface-tint);
523
+ }
524
+
525
+ .vertebr-metrics-table-wrap[data-collapsed="true"] .vertebr-metrics-table-head {
526
+ border-bottom: none;
527
+ }
528
+
529
+ .vertebr-metrics-chevron {
530
+ width: 0.45rem;
531
+ height: 0.45rem;
532
+ border-right: 1.5px solid var(--vb-text-subtle);
533
+ border-bottom: 1.5px solid var(--vb-text-subtle);
534
+ transform: rotate(45deg);
535
+ transition: transform 120ms ease;
536
+ }
537
+
538
+ .vertebr-metrics-table-wrap[data-collapsed="true"] .vertebr-metrics-chevron {
539
+ transform: rotate(-45deg);
540
+ }
541
+
542
+ .vertebr-metrics-table {
543
+ width: 100%;
544
+ min-width: 100%;
545
+ }
546
+
547
+ .vertebr-metrics-table th,
548
+ .vertebr-metrics-table td {
549
+ padding: 0.78rem 1rem;
550
+ max-width: none;
551
+ }
552
+
553
+ .vertebr-metrics-table th:first-child,
554
+ .vertebr-metrics-table td:first-child {
555
+ padding-left: 1.05rem;
556
+ }
557
+
558
+ .vertebr-metrics-table th:last-child,
559
+ .vertebr-metrics-table td:last-child {
560
+ padding-right: 1.05rem;
561
+ }
562
+
563
+ .vertebr-metrics-table tbody tr[data-tone="ok"] td:first-child {
564
+ box-shadow: inset 2px 0 0 var(--vb-ok);
565
+ }
566
+
567
+ .vertebr-metrics-table tbody tr[data-tone="warn"] td:first-child {
568
+ box-shadow: inset 2px 0 0 var(--vb-accent);
569
+ }
570
+
571
+ .vertebr-metrics-table tbody tr[data-tone="danger"] td:first-child {
572
+ box-shadow: inset 2px 0 0 var(--vb-danger);
573
+ }
574
+
575
+ .vertebr-metrics-table-label {
576
+ display: block;
577
+ font-weight: 600;
578
+ }
579
+
580
+ .vertebr-metrics-table-section {
581
+ display: block;
582
+ margin-top: 0.18rem;
583
+ font-size: 0.66rem;
584
+ letter-spacing: 0.1em;
585
+ text-transform: uppercase;
586
+ font-family: var(--vb-mono);
587
+ color: var(--vb-text-subtle);
588
+ }
589
+
590
+ .vertebr-metrics-table-value {
591
+ font-weight: 600;
592
+ font-variant-numeric: tabular-nums;
593
+ letter-spacing: -0.02em;
594
+ }
595
+
596
+ .vertebr-metrics-table td.vertebr-metrics-table-notes {
597
+ white-space: normal;
598
+ max-width: 28rem;
599
+ color: var(--vb-text-muted);
600
+ }
601
+
602
+ .vertebr-metrics-table-empty {
603
+ color: var(--vb-text-subtle);
604
+ }
605
+
606
+ .vertebr-metric-label {
607
+ margin: 0;
608
+ font-size: 0.7rem;
609
+ letter-spacing: 0.1em;
610
+ text-transform: uppercase;
611
+ font-family: var(--vb-mono);
612
+ font-weight: 500;
613
+ color: var(--vb-text-muted);
614
+ }
615
+
616
+ .vertebr-metric-hint {
617
+ margin: 0;
618
+ font-size: 0.75rem;
619
+ color: var(--vb-text-subtle);
620
+ line-height: 1.35;
621
+ }
622
+
623
+ @media (max-width: 1100px) {
624
+ .vertebr-metrics-kpis {
625
+ grid-template-columns: repeat(2, minmax(0, 1fr));
626
+ }
627
+ }
628
+
629
+ @media (max-width: 640px) {
630
+ .vertebr-metrics-kpis {
631
+ grid-template-columns: 1fr;
632
+ }
633
+ }