@stn-uiux/pub-ui 0.1.80 → 0.1.82

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.
@@ -0,0 +1,294 @@
1
+ @charset "utf-8";
2
+
3
+ /**
4
+ * STN Design System — Widget Content Patterns
5
+ * Reusable data visualization and status blocks designed to live inside StnWidget (or any container):
6
+ * 1. Status Pattern: Status List & Status Item with Grade Dots (.stn-status-*)
7
+ * 2. Metric Pattern: Stat Group & Stat Card (.stn-stat-*)
8
+ * 3. Ranking Pattern: Grade Row List & Grade Row (.stn-grade-row*)
9
+ *
10
+ * 100% Unified Single Canonical Class Names.
11
+ */
12
+
13
+ /* ==========================================================================
14
+ 1. Status Pattern (Status List & Item)
15
+ Canonical BEM: .stn-status-item*
16
+ Legacy Aliases: .stn-widget__status-* (100% Backward Compatibility)
17
+ ========================================================================== */
18
+ .stn-status-list,
19
+ .stn-widget__status-list {
20
+ display: flex;
21
+ flex-direction: column;
22
+ gap: var(--stn-widget-status-list-gap);
23
+ width: 100%;
24
+ padding: 0;
25
+ margin: 0;
26
+ list-style: none;
27
+ }
28
+
29
+ .stn-status-item,
30
+ .stn-widget__status-item {
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: space-between;
34
+ padding: var(--stn-widget-status-item-padding);
35
+ border-radius: var(--stn-widget-status-item-radius);
36
+ background: var(--stn-widget-footer-well-bg);
37
+ border: var(--stn-widget-border-width, var(--stn-size-1)) solid var(--stn-widget-footer-well-border);
38
+ transition: background-color 0.15s ease, border-color 0.15s ease;
39
+ }
40
+
41
+ .stn-widget.appearance-dashboard .stn-status-item,
42
+ .stn-widget.appearance-dashboard .stn-widget__status-item {
43
+ background: var(--stn-widget-on-dark-surface);
44
+ border-color: transparent;
45
+ }
46
+
47
+ .stn-status-item:hover,
48
+ .stn-widget__status-item:hover {
49
+ background-color: color-mix(in srgb, var(--stn-primary) 6%, transparent);
50
+ border-color: color-mix(in srgb, var(--stn-primary) 20%, transparent);
51
+ }
52
+
53
+ .stn-status-item__label,
54
+ .stn-status-label,
55
+ .stn-widget__status-label {
56
+ display: inline-flex;
57
+ align-items: center;
58
+ gap: var(--stn-widget-status-label-gap);
59
+ font-size: var(--stn-text-body-small-size);
60
+ color: var(--stn-text-secondary);
61
+ }
62
+
63
+ .stn-widget.appearance-dashboard .stn-status-item__label,
64
+ .stn-widget.appearance-dashboard .stn-status-label,
65
+ .stn-widget.appearance-dashboard .stn-widget__status-label {
66
+ color: var(--stn-widget-on-dark-label);
67
+ }
68
+
69
+ .stn-status-item__dot,
70
+ .stn-widget__status-dot {
71
+ width: var(--stn-widget-dot-size, var(--stn-size-8));
72
+ height: var(--stn-widget-dot-size, var(--stn-size-8));
73
+ border-radius: var(--stn-radius-circle, 50%);
74
+ flex-shrink: 0;
75
+ }
76
+
77
+ .stn-status-item__dot--critical,
78
+ .stn-widget__status-dot--critical { background: var(--stn-widget-dot-critical); }
79
+ .stn-status-item__dot--major,
80
+ .stn-widget__status-dot--major { background: var(--stn-widget-dot-major); }
81
+ .stn-status-item__dot--minor,
82
+ .stn-widget__status-dot--minor { background: var(--stn-widget-dot-minor); }
83
+ .stn-status-item__dot--info,
84
+ .stn-widget__status-dot--info { background: var(--stn-widget-dot-info); }
85
+ .stn-status-item__dot--normal,
86
+ .stn-widget__status-dot--normal { background: var(--stn-widget-dot-normal); }
87
+
88
+ .stn-status-item__val,
89
+ .stn-status-val,
90
+ .stn-widget__status-val {
91
+ font-size: var(--stn-text-label-medium-size);
92
+ font-weight: var(--stn-font-weight-bold, 700);
93
+ color: var(--stn-widget-status-value);
94
+ }
95
+
96
+ .stn-widget.appearance-dashboard .stn-status-item__val,
97
+ .stn-widget.appearance-dashboard .stn-status-val,
98
+ .stn-widget.appearance-dashboard .stn-widget__status-val {
99
+ color: var(--stn-static-white);
100
+ }
101
+
102
+ /* ==========================================================================
103
+ 2. Metric Pattern (Stat Group & Stat Card)
104
+ Canonical BEM: .stn-stat-*
105
+ Legacy Aliases: .stn-widget__stat-* (100% Backward Compatibility)
106
+ ========================================================================== */
107
+ .stn-stat-group,
108
+ .stn-widget__stat-group {
109
+ display: grid;
110
+ grid-template-columns: repeat(auto-fit, minmax(var(--stn-widget-stat-min-width, var(--stn-size-110)), 1fr));
111
+ gap: var(--stn-widget-stat-group-gap);
112
+ width: 100%;
113
+ }
114
+
115
+ .stn-stat-card,
116
+ .stn-widget__stat-card {
117
+ display: flex;
118
+ flex-direction: column;
119
+ gap: var(--stn-widget-stat-card-gap);
120
+ padding: var(--stn-widget-stat-card-padding);
121
+ border-radius: var(--stn-widget-stat-card-radius);
122
+ background: var(--stn-widget-footer-well-bg);
123
+ border: var(--stn-widget-border-width, var(--stn-size-1)) solid var(--stn-border-subtle);
124
+ transition: transform 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
125
+ }
126
+
127
+ .stn-widget.appearance-dashboard .stn-stat-card,
128
+ .stn-widget.appearance-dashboard .stn-widget__stat-card {
129
+ background: var(--stn-widget-on-dark-surface);
130
+ border-color: var(--stn-widget-on-dark-stat-border);
131
+ }
132
+
133
+ .stn-stat-card:hover,
134
+ .stn-widget__stat-card:hover {
135
+ transform: translateY(calc(-1 * var(--stn-size-2)));
136
+ border-color: var(--stn-widget-stat-hover-border);
137
+ background-color: color-mix(in srgb, var(--stn-primary) 8%, transparent);
138
+ }
139
+
140
+ .stn-stat-card__label,
141
+ .stn-stat-label,
142
+ .stn-widget__stat-label {
143
+ font-size: var(--stn-text-caption-medium-size);
144
+ color: var(--stn-text-secondary);
145
+ }
146
+
147
+ .stn-widget.appearance-dashboard .stn-stat-card__label,
148
+ .stn-widget.appearance-dashboard .stn-stat-label,
149
+ .stn-widget.appearance-dashboard .stn-widget__stat-label {
150
+ color: var(--stn-widget-on-dark-stat-label);
151
+ }
152
+
153
+ .stn-stat-card__count,
154
+ .stn-stat-count,
155
+ .stn-widget__stat-count {
156
+ font-size: var(--stn-text-title-large-size);
157
+ font-weight: var(--stn-font-weight-bold, 700);
158
+ color: var(--stn-widget-status-value);
159
+ }
160
+
161
+ .stn-widget.appearance-dashboard .stn-stat-card__count,
162
+ .stn-widget.appearance-dashboard .stn-stat-count,
163
+ .stn-widget.appearance-dashboard .stn-widget__stat-count {
164
+ color: var(--stn-static-white);
165
+ }
166
+
167
+ /* ==========================================================================
168
+ 3. Ranking Pattern (Grade Row List & Grade Row — 장애 등급별 진행바 현황)
169
+ Canonical BEM: .stn-grade-row*
170
+ Legacy Aliases: .stn-widget__grade-row* (100% Backward Compatibility)
171
+ ========================================================================== */
172
+ .stn-grade-row-list,
173
+ .stn-widget__grade-row-list {
174
+ display: flex;
175
+ flex-direction: column;
176
+ gap: var(--stn-widget-grade-row-list-gap);
177
+ width: 100%;
178
+ }
179
+
180
+ .stn-grade-row-list--grid,
181
+ .stn-widget__grade-row-list--grid {
182
+ display: grid;
183
+ grid-template-columns: repeat(auto-fit, minmax(var(--stn-widget-grade-row-grid-item-min-width), 1fr));
184
+ gap: var(--stn-widget-grade-row-grid-gap-y) var(--stn-widget-grade-row-grid-gap-x);
185
+ }
186
+
187
+ .stn-grade-row,
188
+ .stn-widget__grade-row {
189
+ display: flex;
190
+ align-items: center;
191
+ justify-content: space-between;
192
+ gap: var(--stn-widget-grade-row-gap);
193
+ width: 100%;
194
+ padding: var(--stn-widget-grade-row-padding-y) 0;
195
+ }
196
+
197
+ .stn-grade-row__left,
198
+ .stn-widget__grade-row-left {
199
+ display: flex;
200
+ align-items: center;
201
+ gap: var(--stn-widget-grade-row-gap);
202
+ flex: 1;
203
+ min-width: 0;
204
+ }
205
+
206
+ .stn-grade-row__label,
207
+ .stn-widget__grade-row-label {
208
+ display: inline-flex;
209
+ align-items: center;
210
+ gap: var(--stn-widget-grade-row-label-gap);
211
+ font-family: var(--stn-font-body);
212
+ font-size: var(--stn-font-size-13);
213
+ font-weight: var(--stn-font-weight-medium);
214
+ color: var(--stn-text-primary);
215
+ min-width: var(--stn-widget-grade-row-label-min-width);
216
+ flex-shrink: 0;
217
+ }
218
+
219
+ .stn-grade-row__icon,
220
+ .stn-widget__grade-row-icon {
221
+ width: var(--stn-widget-grade-row-icon-size);
222
+ height: var(--stn-widget-grade-row-icon-size);
223
+ flex-shrink: 0;
224
+ }
225
+
226
+ .stn-grade-row__track,
227
+ .stn-widget__grade-row-track {
228
+ flex: 1;
229
+ height: var(--stn-widget-grade-row-track-height);
230
+ background: var(--stn-widget-grade-row-track-bg);
231
+ border-radius: var(--stn-radius-2);
232
+ overflow: hidden;
233
+ min-width: var(--stn-widget-grade-row-track-min-width);
234
+ }
235
+
236
+ .stn-grade-row__fill,
237
+ .stn-widget__grade-row-fill {
238
+ display: block;
239
+ height: 100%;
240
+ border-radius: var(--stn-radius-2);
241
+ transition: width 0.3s ease;
242
+ }
243
+
244
+ .stn-grade-row--critical .stn-grade-row__fill,
245
+ .stn-widget__grade-row--critical .stn-widget__grade-row-fill {
246
+ background-color: var(--stn-grade-critical);
247
+ }
248
+
249
+ .stn-grade-row--major .stn-grade-row__fill,
250
+ .stn-widget__grade-row--major .stn-widget__grade-row-fill {
251
+ background-color: var(--stn-grade-major);
252
+ }
253
+
254
+ .stn-grade-row--minor .stn-grade-row__fill,
255
+ .stn-widget__grade-row--minor .stn-widget__grade-row-fill {
256
+ background-color: var(--stn-grade-minor);
257
+ }
258
+
259
+ .stn-grade-row--default .stn-grade-row__fill,
260
+ .stn-grade-row--warning .stn-grade-row__fill,
261
+ .stn-widget__grade-row--default .stn-widget__grade-row-fill,
262
+ .stn-widget__grade-row--warning .stn-widget__grade-row-fill {
263
+ background-color: var(--stn-grade-warning);
264
+ }
265
+
266
+ .stn-grade-row__right,
267
+ .stn-widget__grade-row-right {
268
+ display: flex;
269
+ align-items: center;
270
+ gap: var(--stn-widget-grade-row-right-gap);
271
+ flex-shrink: 0;
272
+ }
273
+
274
+ .stn-grade-row__value,
275
+ .stn-widget__grade-row-value {
276
+ font-family: var(--stn-font-body);
277
+ font-size: var(--stn-font-size-13);
278
+ font-weight: var(--stn-font-weight-bold);
279
+ color: var(--stn-text-primary);
280
+ font-variant-numeric: tabular-nums;
281
+ min-width: var(--stn-widget-grade-row-val-min-width);
282
+ text-align: right;
283
+ }
284
+
285
+ .stn-grade-row__percent,
286
+ .stn-widget__grade-row-percent {
287
+ font-family: var(--stn-font-body);
288
+ font-size: var(--stn-font-size-12);
289
+ font-weight: var(--stn-font-weight-regular);
290
+ color: var(--stn-text-secondary);
291
+ font-variant-numeric: tabular-nums;
292
+ min-width: var(--stn-widget-grade-row-pct-min-width);
293
+ text-align: right;
294
+ }
@@ -71,6 +71,7 @@
71
71
  @import './components/stn-icon.css';
72
72
  @import './components/stn-card.css';
73
73
  @import './components/stn-topology.css';
74
+ @import './components/stn-chart.css';
74
75
  @import './components/stn-status.css';
75
76
  @import './components/stn-tabs.css';
76
77
  @import './components/stn-divider.css';
@@ -83,3 +84,4 @@
83
84
  @import './patterns/stn-login-card.css';
84
85
  @import './patterns/stn-login-text-field.css';
85
86
  @import './patterns/stn-floating-toolbar.css';
87
+ @import './patterns/stn-widget-patterns.css';
@@ -624,6 +624,76 @@
624
624
  --stn-status-flow-connector-opacity: 0.6;
625
625
  --stn-status-dot-bordered-border: var(--stn-border-strong);
626
626
  --stn-status-dot-bordered-bg: var(--stn-gray-800);
627
+ --stn-chart-grid-line: var(--stn-opacity-white-10);
628
+ --stn-chart-zero-line: var(--stn-opacity-white-20);
629
+ --stn-chart-axis-text: var(--stn-gray-400);
630
+ --stn-chart-bar-label: var(--stn-gray-300);
631
+ --stn-chart-highlight-bg: var(--stn-opacity-white-5);
632
+ --stn-chart-highlight-border: var(--stn-gray-500);
633
+ --stn-chart-legend-pill-bg: var(--stn-opacity-white-5);
634
+ --stn-chart-legend-pill-border: var(--stn-gray-750);
635
+ --stn-chart-legend-text: var(--stn-gray-150);
636
+ --stn-chart-color-1: var(--stn-blue-400);
637
+ --stn-chart-color-2: var(--stn-purple-300);
638
+ --stn-chart-color-3: var(--stn-green-300);
639
+ --stn-chart-color-4: var(--stn-cobalt-350);
640
+ --stn-chart-color-5: var(--stn-cyan-250);
641
+ --stn-chart-color-6: var(--stn-purple-150);
642
+ --stn-chart-color-7: var(--stn-green-150);
643
+ --stn-chart-color-8: var(--stn-cobalt-500);
644
+ --stn-chart-color-9: var(--stn-purple-450);
645
+ --stn-chart-color-10: var(--stn-blue-200);
646
+ --stn-chart-status-critical: var(--stn-grade-critical);
647
+ --stn-chart-status-major: var(--stn-grade-major);
648
+ --stn-chart-status-minor: var(--stn-grade-minor);
649
+ --stn-chart-status-warning: var(--stn-grade-warning);
650
+ --stn-chart-status-success: var(--stn-grade-normal);
651
+ --stn-chart-status-info: var(--stn-feedback-info);
652
+ --stn-chart-status-neutral: var(--stn-grade-neutral);
653
+ --stn-chart-critical: var(--stn-chart-status-critical);
654
+ --stn-chart-major: var(--stn-chart-status-major);
655
+ --stn-chart-minor: var(--stn-chart-status-minor);
656
+ --stn-chart-warning: var(--stn-chart-status-warning);
657
+ --stn-chart-success: var(--stn-chart-status-success);
658
+ --stn-chart-info: var(--stn-chart-status-info);
659
+ --stn-chart-neutral: var(--stn-chart-status-neutral);
660
+ --stn-chart-gauge-center-bg: var(--stn-gray-950);
661
+ --stn-chart-gauge-center-text: var(--stn-text-primary);
662
+ --stn-chart-gauge-track: var(--stn-opacity-white-5);
663
+ --stn-chart-tooltip-bg: var(--stn-gray-900);
664
+ --stn-chart-tooltip-border: var(--stn-gray-700);
665
+ --stn-chart-tooltip-header-color: var(--stn-gray-400);
666
+ --stn-chart-tooltip-divider: var(--stn-opacity-white-15);
667
+ --stn-chart-bar-1: var(--stn-chart-color-1);
668
+ --stn-chart-bar-2: var(--stn-chart-color-2);
669
+ --stn-chart-bar-3: var(--stn-chart-color-3);
670
+ --stn-chart-bar-4: var(--stn-chart-color-4);
671
+ --stn-chart-bar-5: var(--stn-chart-color-5);
672
+ --stn-chart-bar-6: var(--stn-chart-color-6);
673
+ --stn-chart-bar-primary: var(--stn-chart-color-1);
674
+ --stn-chart-bar-sub: var(--stn-chart-color-2);
675
+ --stn-chart-bar-sub2: var(--stn-chart-color-3);
676
+ --stn-chart-line-1: var(--stn-chart-color-1);
677
+ --stn-chart-line-2: var(--stn-chart-color-2);
678
+ --stn-chart-line-3: var(--stn-chart-color-3);
679
+ --stn-chart-line-4: var(--stn-chart-color-4);
680
+ --stn-chart-line-5: var(--stn-chart-color-5);
681
+ --stn-chart-line-6: var(--stn-chart-color-6);
682
+ --stn-chart-line-stroke: var(--stn-chart-color-1);
683
+ --stn-chart-line-area-from: var(--stn-chart-color-1);
684
+ --stn-chart-line-area-to: var(--stn-opacity-white-0);
685
+ --stn-chart-line-dot-bg: var(--stn-elevation-surface-0);
686
+ --stn-chart-gauge-seg-1: var(--stn-chart-color-1);
687
+ --stn-chart-gauge-seg-2: var(--stn-chart-color-2);
688
+ --stn-chart-gauge-seg-3: var(--stn-chart-color-3);
689
+ --stn-chart-gauge-seg-4: var(--stn-chart-color-4);
690
+ --stn-chart-gauge-seg-5: var(--stn-chart-color-5);
691
+ --stn-chart-gauge-seg-6: var(--stn-chart-color-6);
692
+ --stn-chart-gauge-seg-7: var(--stn-chart-color-7);
693
+ --stn-chart-gauge-seg-8: var(--stn-chart-color-8);
694
+ --stn-chart-gauge-seg-9: var(--stn-chart-color-9);
695
+ --stn-chart-gauge-seg-10: var(--stn-chart-color-10);
696
+ --stn-widget-grade-row-track-bg: var(--stn-gray-750);
627
697
  }
628
698
 
629
699
  [data-mode='light'] {
@@ -1245,6 +1315,76 @@
1245
1315
  --stn-status-flow-connector-opacity: 0.7;
1246
1316
  --stn-status-dot-bordered-border: var(--stn-border-subtle);
1247
1317
  --stn-status-dot-bordered-bg: var(--stn-elevation-surface-2);
1318
+ --stn-chart-grid-line: var(--stn-opacity-black-10);
1319
+ --stn-chart-zero-line: var(--stn-gray-200);
1320
+ --stn-chart-axis-text: var(--stn-gray-500);
1321
+ --stn-chart-bar-label: var(--stn-gray-650);
1322
+ --stn-chart-highlight-bg: var(--stn-gray-50);
1323
+ --stn-chart-highlight-border: var(--stn-gray-200);
1324
+ --stn-chart-legend-pill-bg: var(--stn-gray-50);
1325
+ --stn-chart-legend-pill-border: var(--stn-gray-100);
1326
+ --stn-chart-legend-text: var(--stn-gray-650);
1327
+ --stn-chart-color-1: var(--stn-blue-500);
1328
+ --stn-chart-color-2: var(--stn-purple-500);
1329
+ --stn-chart-color-3: var(--stn-green-500);
1330
+ --stn-chart-color-4: var(--stn-cobalt-500);
1331
+ --stn-chart-color-5: var(--stn-cyan-450);
1332
+ --stn-chart-color-6: var(--stn-purple-350);
1333
+ --stn-chart-color-7: var(--stn-green-350);
1334
+ --stn-chart-color-8: var(--stn-cobalt-650);
1335
+ --stn-chart-color-9: var(--stn-purple-650);
1336
+ --stn-chart-color-10: var(--stn-blue-350);
1337
+ --stn-chart-status-critical: var(--stn-grade-critical);
1338
+ --stn-chart-status-major: var(--stn-grade-major);
1339
+ --stn-chart-status-minor: var(--stn-grade-minor);
1340
+ --stn-chart-status-warning: var(--stn-grade-warning);
1341
+ --stn-chart-status-success: var(--stn-grade-normal);
1342
+ --stn-chart-status-info: var(--stn-feedback-info);
1343
+ --stn-chart-status-neutral: var(--stn-grade-neutral);
1344
+ --stn-chart-critical: var(--stn-chart-status-critical);
1345
+ --stn-chart-major: var(--stn-chart-status-major);
1346
+ --stn-chart-minor: var(--stn-chart-status-minor);
1347
+ --stn-chart-warning: var(--stn-chart-status-warning);
1348
+ --stn-chart-success: var(--stn-chart-status-success);
1349
+ --stn-chart-info: var(--stn-chart-status-info);
1350
+ --stn-chart-neutral: var(--stn-chart-status-neutral);
1351
+ --stn-chart-gauge-center-bg: var(--stn-static-white);
1352
+ --stn-chart-gauge-center-text: var(--stn-text-primary);
1353
+ --stn-chart-gauge-track: var(--stn-opacity-black-5);
1354
+ --stn-chart-tooltip-bg: var(--stn-static-white);
1355
+ --stn-chart-tooltip-border: var(--stn-gray-200);
1356
+ --stn-chart-tooltip-header-color: var(--stn-gray-500);
1357
+ --stn-chart-tooltip-divider: var(--stn-opacity-black-10);
1358
+ --stn-chart-bar-1: var(--stn-chart-color-1);
1359
+ --stn-chart-bar-2: var(--stn-chart-color-2);
1360
+ --stn-chart-bar-3: var(--stn-chart-color-3);
1361
+ --stn-chart-bar-4: var(--stn-chart-color-4);
1362
+ --stn-chart-bar-5: var(--stn-chart-color-5);
1363
+ --stn-chart-bar-6: var(--stn-chart-color-6);
1364
+ --stn-chart-bar-primary: var(--stn-chart-color-1);
1365
+ --stn-chart-bar-sub: var(--stn-chart-color-2);
1366
+ --stn-chart-bar-sub2: var(--stn-chart-color-3);
1367
+ --stn-chart-line-1: var(--stn-chart-color-1);
1368
+ --stn-chart-line-2: var(--stn-chart-color-2);
1369
+ --stn-chart-line-3: var(--stn-chart-color-3);
1370
+ --stn-chart-line-4: var(--stn-chart-color-4);
1371
+ --stn-chart-line-5: var(--stn-chart-color-5);
1372
+ --stn-chart-line-6: var(--stn-chart-color-6);
1373
+ --stn-chart-line-stroke: var(--stn-chart-color-1);
1374
+ --stn-chart-line-area-from: var(--stn-chart-color-1);
1375
+ --stn-chart-line-area-to: var(--stn-opacity-black-0);
1376
+ --stn-chart-line-dot-bg: var(--stn-elevation-surface-0);
1377
+ --stn-chart-gauge-seg-1: var(--stn-chart-color-1);
1378
+ --stn-chart-gauge-seg-2: var(--stn-chart-color-2);
1379
+ --stn-chart-gauge-seg-3: var(--stn-chart-color-3);
1380
+ --stn-chart-gauge-seg-4: var(--stn-chart-color-4);
1381
+ --stn-chart-gauge-seg-5: var(--stn-chart-color-5);
1382
+ --stn-chart-gauge-seg-6: var(--stn-chart-color-6);
1383
+ --stn-chart-gauge-seg-7: var(--stn-chart-color-7);
1384
+ --stn-chart-gauge-seg-8: var(--stn-chart-color-8);
1385
+ --stn-chart-gauge-seg-9: var(--stn-chart-color-9);
1386
+ --stn-chart-gauge-seg-10: var(--stn-chart-color-10);
1387
+ --stn-widget-grade-row-track-bg: var(--stn-gray-200);
1248
1388
  }
1249
1389
 
1250
1390
  [data-theme='blue'][data-mode='dark'] {
@@ -279,4 +279,51 @@
279
279
  --stn-topology-minimap-border-width: var(--stn-size-1);
280
280
  --stn-topology-minimap-width: var(--stn-size-140);
281
281
  --stn-topology-minimap-content-height: var(--stn-size-96);
282
+ --stn-chart-bar-width-sm: var(--stn-size-4);
283
+ --stn-chart-bar-width-md: var(--stn-size-6);
284
+ --stn-chart-bar-width-lg: var(--stn-size-10);
285
+ --stn-chart-combo-bar-width-sm: var(--stn-size-12);
286
+ --stn-chart-combo-bar-width-md: var(--stn-size-18);
287
+ --stn-chart-combo-bar-width-lg: var(--stn-size-26);
288
+ --stn-chart-gauge-stroke-sm: var(--stn-size-2);
289
+ --stn-chart-gauge-stroke-md: var(--stn-size-4);
290
+ --stn-chart-gauge-stroke-lg: var(--stn-size-8);
291
+ --stn-chart-line-stroke-sm: var(--stn-size-1);
292
+ --stn-chart-line-stroke-md: var(--stn-size-2);
293
+ --stn-chart-line-stroke-lg: var(--stn-size-4);
294
+ --stn-chart-body-min-height: var(--stn-size-160);
295
+ --stn-chart-line-body-min-height: var(--stn-size-120);
296
+ --stn-chart-axis-y-width: var(--stn-size-40);
297
+ --stn-chart-axis-y-offset: var(--stn-size-44);
298
+ --stn-chart-col-min-width: var(--stn-size-20);
299
+ --stn-chart-col-max-width: var(--stn-size-48);
300
+ --stn-chart-bar-min-width: var(--stn-size-2);
301
+ --stn-chart-row-label-width: var(--stn-size-72);
302
+ --stn-chart-row-min-height: var(--stn-size-20);
303
+ --stn-chart-row-min-height-compact: var(--stn-size-16);
304
+ --stn-chart-gauge-size-default: var(--stn-size-90);
305
+ --stn-chart-gauge-size-max: var(--stn-size-110);
306
+ --stn-chart-gauge-size-min: var(--stn-size-68);
307
+ --stn-chart-gauge-legend-max-width: var(--stn-size-280);
308
+ --stn-chart-gauge-legend-dot-size: var(--stn-size-6);
309
+ --stn-chart-line-axis-y-width: var(--stn-size-36);
310
+ --stn-chart-combo-axis-y-width: var(--stn-size-36);
311
+ --stn-chart-combo-grid-offset-x: var(--stn-size-40);
312
+ --stn-chart-combo-bar-min-width: var(--stn-size-6);
313
+ --stn-chart-legend-bar-width: var(--stn-size-20);
314
+ --stn-chart-legend-bar-height: var(--stn-size-8);
315
+ --stn-chart-legend-line-marker-width: var(--stn-size-16);
316
+ --stn-chart-legend-line-marker-height: var(--stn-size-2);
317
+ --stn-chart-legend-line-dot-size: var(--stn-size-6);
318
+ --stn-chart-tooltip-dot-size: var(--stn-size-6);
319
+ --stn-chart-tooltip-bar-width: var(--stn-size-8);
320
+ --stn-chart-tooltip-bar-height: var(--stn-size-8);
321
+ --stn-chart-border-width: var(--stn-size-1);
322
+ --stn-widget-grade-row-icon-size: var(--stn-size-18);
323
+ --stn-widget-grade-row-track-height: var(--stn-size-4);
324
+ --stn-widget-grade-row-track-min-width: var(--stn-size-60);
325
+ --stn-widget-grade-row-label-min-width: var(--stn-size-80);
326
+ --stn-widget-grade-row-val-min-width: var(--stn-size-28);
327
+ --stn-widget-grade-row-pct-min-width: var(--stn-size-42);
328
+ --stn-widget-grade-row-grid-item-min-width: var(--stn-size-200);
282
329
  }
@@ -297,4 +297,48 @@
297
297
  --stn-topology-minimap-padding-x: var(--stn-space-10);
298
298
  --stn-topology-minimap-btn-padding-x: var(--stn-space-4);
299
299
  --stn-topology-minimap-content-margin-top: var(--stn-space-4);
300
+ --stn-chart-grid-inset-top: var(--stn-space-10);
301
+ --stn-chart-grid-inset-bottom: var(--stn-space-44);
302
+ --stn-chart-grid-inset-bottom-horizontal: var(--stn-space-24);
303
+ --stn-chart-grid-inset-bottom-combo: var(--stn-space-24);
304
+ --stn-chart-grid-inset-bottom-compact: var(--stn-space-6);
305
+ --stn-chart-grid-row-gap: var(--stn-space-8);
306
+ --stn-chart-col-padding-x: var(--stn-space-2);
307
+ --stn-chart-col-bars-gap: var(--stn-space-2);
308
+ --stn-chart-label-offset-top: var(--stn-space-4);
309
+ --stn-chart-row-padding-y: var(--stn-space-2);
310
+ --stn-chart-row-padding-x: var(--stn-space-4);
311
+ --stn-chart-row-padding-compact-y: var(--stn-space-1);
312
+ --stn-chart-row-label-padding-right: var(--stn-space-8);
313
+ --stn-chart-row-track-gap: var(--stn-space-2);
314
+ --stn-chart-row-val-margin-left: var(--stn-space-8);
315
+ --stn-chart-legend-padding-x: var(--stn-space-12);
316
+ --stn-chart-legend-padding-y: var(--stn-space-8);
317
+ --stn-chart-legend-margin-top: var(--stn-space-8);
318
+ --stn-chart-legend-gap: var(--stn-space-16);
319
+ --stn-chart-legend-item-gap: var(--stn-space-6);
320
+ --stn-chart-gauge-legend-gap-x: var(--stn-space-12);
321
+ --stn-chart-gauge-legend-gap-y: var(--stn-space-6);
322
+ --stn-chart-gauge-legend-item-gap: var(--stn-space-4);
323
+ --stn-chart-gauge-legend-margin-top: var(--stn-space-8);
324
+ --stn-chart-line-axis-y-bottom: var(--stn-space-14);
325
+ --stn-chart-line-axis-x-padding-left: calc(var(--stn-size-36) + var(--stn-space-2));
326
+ --stn-chart-line-axis-x-padding-right: var(--stn-space-5);
327
+ --stn-chart-line-axis-x-margin-top: var(--stn-space-4);
328
+ --stn-chart-tooltip-padding-x: var(--stn-space-10);
329
+ --stn-chart-tooltip-padding-y: var(--stn-space-6);
330
+ --stn-chart-tooltip-gap: var(--stn-space-4);
331
+ --stn-chart-tooltip-offset-y: var(--stn-space-10);
332
+ --stn-chart-tooltip-row-gap: var(--stn-space-6);
333
+ --stn-chart-tooltip-group-gap: var(--stn-space-4);
334
+ --stn-chart-tooltip-val-margin-left: var(--stn-space-8);
335
+ --stn-chart-combo-axis-y-padding: var(--stn-space-6);
336
+ --stn-chart-combo-col-padding-x: var(--stn-space-4);
337
+ --stn-widget-grade-row-list-gap: var(--stn-space-12);
338
+ --stn-widget-grade-row-grid-gap-y: var(--stn-space-14);
339
+ --stn-widget-grade-row-grid-gap-x: var(--stn-space-24);
340
+ --stn-widget-grade-row-gap: var(--stn-space-12);
341
+ --stn-widget-grade-row-padding-y: var(--stn-space-4);
342
+ --stn-widget-grade-row-label-gap: var(--stn-space-6);
343
+ --stn-widget-grade-row-right-gap: var(--stn-space-8);
300
344
  }
@@ -1,7 +0,0 @@
1
- // src/data/stnChart.ts
2
- var STN_CHART_INTRO = "\uC704\uC82F \uC178(`StnWidget`) \uC548\uC5D0 \uB123\uB294 \uCC28\uD2B8\xB7\uB9C9\uB300\xB7\uD604\uD669 \uBCF8\uBB38\uC785\uB2C8\uB2E4. Patterns \u2192 Widget\uC740 \uC178 + Chart \uC870\uD569\uC73C\uB85C \uC2E4\uC81C \uB300\uC2DC\uBCF4\uB4DC \uC704\uC82F\uC744 \uBCF4\uC5EC \uC90D\uB2C8\uB2E4.";
3
-
4
- export {
5
- STN_CHART_INTRO
6
- };
7
- //# sourceMappingURL=chunk-DGZVOSEM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnChart.ts"],"sourcesContent":["/** Components → Chart — 대시보드 본문 차트·현황 블록 */\nexport const STN_CHART_INTRO =\n '위젯 셸(`StnWidget`) 안에 넣는 차트·막대·현황 본문입니다. Patterns → Widget은 셸 + Chart 조합으로 실제 대시보드 위젯을 보여 줍니다.'\n"],"mappings":";AACO,IAAM,kBACX;","names":[]}
@@ -1,9 +0,0 @@
1
- // src/data/stnPackageVersion.ts
2
- var STN_UI_VERSION = "0.1.80";
3
- var STN_UI_VERSION_LABEL = "v0.1.80";
4
-
5
- export {
6
- STN_UI_VERSION,
7
- STN_UI_VERSION_LABEL
8
- };
9
- //# sourceMappingURL=chunk-PSVPO4FH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.80'\nexport const STN_UI_VERSION_LABEL = 'v0.1.80'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}