@stn-uiux/pub-ui 0.1.81 → 0.1.84

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 (112) hide show
  1. package/dist/{chunk-6FEWLKVE.js → chunk-2TRZNWCA.js} +32 -2
  2. package/dist/chunk-2TRZNWCA.js.map +1 -0
  3. package/dist/{chunk-AJLP3Y53.js → chunk-2VSSPMZ3.js} +2 -2
  4. package/dist/{chunk-AJLP3Y53.js.map → chunk-2VSSPMZ3.js.map} +1 -1
  5. package/dist/{chunk-AOS3IX4T.js → chunk-65B7YUTE.js} +2 -1
  6. package/dist/{chunk-AOS3IX4T.js.map → chunk-65B7YUTE.js.map} +1 -1
  7. package/dist/chunk-APXT43OG.js +232 -0
  8. package/dist/chunk-APXT43OG.js.map +1 -0
  9. package/dist/chunk-C5WP6UQO.js +107 -0
  10. package/dist/chunk-C5WP6UQO.js.map +1 -0
  11. package/dist/chunk-ERZPIKPF.js +1 -0
  12. package/dist/chunk-FLKGJJD5.js +45 -0
  13. package/dist/chunk-FLKGJJD5.js.map +1 -0
  14. package/dist/{chunk-N46UQH6L.js → chunk-K6TWXWIO.js} +11 -2
  15. package/dist/chunk-K6TWXWIO.js.map +1 -0
  16. package/dist/chunk-N4PVFFKV.js +38 -0
  17. package/dist/chunk-N4PVFFKV.js.map +1 -0
  18. package/dist/chunk-NYZMUDVK.js +12 -0
  19. package/dist/chunk-NYZMUDVK.js.map +1 -0
  20. package/dist/chunk-P22H2BFQ.js +9 -0
  21. package/dist/chunk-P22H2BFQ.js.map +1 -0
  22. package/dist/chunk-QJN2Z6RG.js +160 -0
  23. package/dist/chunk-QJN2Z6RG.js.map +1 -0
  24. package/dist/chunk-W7K3FSAX.js +24 -0
  25. package/dist/chunk-W7K3FSAX.js.map +1 -0
  26. package/dist/cli.js +17 -17
  27. package/dist/components.d.ts +1 -1
  28. package/dist/components.js +1 -1
  29. package/dist/data/index.d.ts +8 -3
  30. package/dist/data/index.js +148 -94
  31. package/dist/data/stnCard.d.ts +1 -1
  32. package/dist/data/stnCard.js +1 -1
  33. package/dist/data/stnChart.d.ts +35 -1
  34. package/dist/data/stnChart.js +7 -3
  35. package/dist/data/stnDatePicker.d.ts +41 -10
  36. package/dist/data/stnDatePicker.js +9 -3
  37. package/dist/data/stnEmptyState.d.ts +35 -0
  38. package/dist/data/stnEmptyState.js +19 -0
  39. package/dist/data/stnEmptyState.js.map +1 -0
  40. package/dist/data/stnPackageVersion.d.ts +2 -2
  41. package/dist/data/stnPackageVersion.js +1 -1
  42. package/dist/data/stnPopover.d.ts +18 -0
  43. package/dist/data/stnPopover.js +9 -0
  44. package/dist/data/stnPopover.js.map +1 -0
  45. package/dist/data/stnSplitView.d.ts +16 -0
  46. package/dist/data/stnSplitView.js +11 -0
  47. package/dist/data/stnSplitView.js.map +1 -0
  48. package/dist/data/stnStepCards.d.ts +32 -0
  49. package/dist/data/stnStepCards.js +7 -0
  50. package/dist/data/stnStepCards.js.map +1 -0
  51. package/dist/data/stnStepper.d.ts +78 -0
  52. package/dist/data/stnStepper.js +7 -0
  53. package/dist/data/stnStepper.js.map +1 -0
  54. package/dist/data/stnTree.d.ts +3 -0
  55. package/dist/data/stnTree.js +1 -1
  56. package/dist/data/stnTypography.d.ts +17 -1
  57. package/dist/data/stnTypography.js +7 -1
  58. package/dist/index.d.ts +8 -3
  59. package/dist/index.js +149 -95
  60. package/package.json +1 -1
  61. package/styles/@assets/images/empty-state/forbidden.png +0 -0
  62. package/styles/@assets/images/empty-state/load-failed.png +0 -0
  63. package/styles/@assets/images/empty-state/maintenance.png +0 -0
  64. package/styles/@assets/images/empty-state/network.png +0 -0
  65. package/styles/@assets/images/empty-state/no-data.png +0 -0
  66. package/styles/@assets/images/empty-state/not-found.png +0 -0
  67. package/styles/@assets/images/empty-state/search-empty.png +0 -0
  68. package/styles/@assets/images/empty-state/server-error.png +0 -0
  69. package/styles/@assets/images/empty-state/timeout.png +0 -0
  70. package/styles/@assets/images/empty-state/unauthorized.png +0 -0
  71. package/styles/components/stn-bar-chart.css +394 -0
  72. package/styles/components/stn-card.css +49 -13
  73. package/styles/components/stn-chart-common.css +243 -0
  74. package/styles/components/stn-chart.css +20 -0
  75. package/styles/components/stn-checkbox.css +1 -1
  76. package/styles/components/stn-combo-chart.css +279 -0
  77. package/styles/components/stn-date-picker.css +251 -44
  78. package/styles/components/stn-drawer.css +2 -2
  79. package/styles/components/stn-empty-state.css +238 -0
  80. package/styles/components/stn-line-chart.css +125 -0
  81. package/styles/components/stn-pie-chart.css +112 -0
  82. package/styles/components/stn-popover.css +52 -0
  83. package/styles/components/stn-radio.css +1 -1
  84. package/styles/components/stn-slider.css +1 -1
  85. package/styles/components/stn-stepper.css +570 -0
  86. package/styles/components/stn-switch.css +1 -1
  87. package/styles/components/stn-table.css +30 -0
  88. package/styles/components/stn-tooltip.css +1 -1
  89. package/styles/components/stn-widget.css +3 -116
  90. package/styles/layouts/stn-container.css +8 -0
  91. package/styles/layouts/stn-layer0-bg.css +18 -17
  92. package/styles/patterns/stn-split-view.css +130 -0
  93. package/styles/patterns/stn-step-cards.css +60 -0
  94. package/styles/patterns/stn-tree.css +9 -0
  95. package/styles/patterns/stn-widget-patterns.css +294 -0
  96. package/styles/style-pub.css +7 -0
  97. package/styles/tokens/stn-colors-semantic.css +194 -0
  98. package/styles/tokens/stn-size-semantic.css +84 -0
  99. package/styles/tokens/stn-size.css +1 -0
  100. package/styles/tokens/stn-spacing-semantic.css +55 -0
  101. package/styles/tokens/stn-typography-semantic.css +3 -0
  102. package/styles/tokens/stn-typography.css +16 -0
  103. package/dist/chunk-6FEWLKVE.js.map +0 -1
  104. package/dist/chunk-DGZVOSEM.js +0 -7
  105. package/dist/chunk-DGZVOSEM.js.map +0 -1
  106. package/dist/chunk-N46UQH6L.js.map +0 -1
  107. package/dist/chunk-PSVPO4FH.js +0 -9
  108. package/dist/chunk-PSVPO4FH.js.map +0 -1
  109. package/dist/chunk-WKQLAHIG.js +0 -1
  110. package/dist/chunk-YBNEQ5LB.js +0 -75
  111. package/dist/chunk-YBNEQ5LB.js.map +0 -1
  112. /package/dist/{chunk-WKQLAHIG.js.map → chunk-ERZPIKPF.js.map} +0 -0
@@ -0,0 +1,394 @@
1
+ @charset "utf-8";
2
+
3
+ /**
4
+ * STN Design System — Bar Chart Component (.stn-chart-bar)
5
+ * Vertical and Horizontal bar charts with multi-series support.
6
+ * 100% strictly tokenized via STN semantic design tokens (--stn-chart-*).
7
+ */
8
+
9
+ /* ==========================================================================
10
+ 1. Vertical Bar Chart Layout & Elements
11
+ ========================================================================== */
12
+ .stn-chart-bar {
13
+ display: flex;
14
+ flex-direction: column;
15
+ width: 100%;
16
+ height: 100%;
17
+ position: relative;
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ .stn-chart-bar__body {
22
+ position: relative;
23
+ flex: 1 0 0;
24
+ width: 100%;
25
+ min-height: var(--stn-chart-body-min-height);
26
+ box-sizing: border-box;
27
+ }
28
+
29
+ /* Y-Axis Grid Lines Container */
30
+ .stn-chart-bar__grid {
31
+ position: absolute;
32
+ inset: var(--stn-chart-grid-inset-top) 0 var(--stn-chart-grid-inset-bottom) 0;
33
+ display: flex;
34
+ flex-direction: column;
35
+ justify-content: space-between;
36
+ pointer-events: none;
37
+ }
38
+
39
+ .stn-chart-bar__grid-row {
40
+ display: flex;
41
+ align-items: center;
42
+ gap: var(--stn-chart-grid-row-gap);
43
+ height: 0;
44
+ }
45
+
46
+ .stn-chart-bar__axis-label {
47
+ font-family: var(--stn-font-body);
48
+ font-size: var(--stn-font-size-10);
49
+ line-height: var(--stn-line-height-tight);
50
+ color: var(--stn-chart-axis-text);
51
+ width: var(--stn-chart-axis-y-width);
52
+ text-align: right;
53
+ flex-shrink: 0;
54
+ user-select: none;
55
+ }
56
+
57
+ .stn-chart-bar__grid-line {
58
+ flex: 1;
59
+ border-bottom: var(--stn-chart-border-width) dashed var(--stn-chart-grid-line);
60
+ }
61
+
62
+ .stn-chart-bar__grid-line--zero {
63
+ border-bottom: var(--stn-chart-border-width) solid var(--stn-chart-zero-line);
64
+ }
65
+
66
+ /* Columns Container */
67
+ .stn-chart-bar__columns {
68
+ position: absolute;
69
+ inset: var(--stn-chart-grid-inset-top) var(--stn-chart-col-padding-x) var(--stn-chart-grid-inset-bottom) var(--stn-chart-axis-y-offset);
70
+ display: flex;
71
+ align-items: flex-end;
72
+ justify-content: space-around;
73
+ z-index: 1;
74
+ }
75
+
76
+ /* Individual Column */
77
+ .stn-chart-bar__col {
78
+ min-width: var(--stn-chart-col-min-width);
79
+ width: auto;
80
+ max-width: var(--stn-chart-col-max-width);
81
+ height: 100%;
82
+ display: flex;
83
+ justify-content: center;
84
+ align-items: flex-end;
85
+ position: relative;
86
+ cursor: pointer;
87
+ background: transparent;
88
+ border: none;
89
+ padding: 0 var(--stn-chart-col-padding-x);
90
+ }
91
+
92
+ /* Highlight Box (on hover or active) */
93
+ .stn-chart-bar__highlight {
94
+ display: none;
95
+ position: absolute;
96
+ bottom: 0;
97
+ left: calc(-1 * var(--stn-chart-col-padding-x));
98
+ right: calc(-1 * var(--stn-chart-col-padding-x));
99
+ height: 100%;
100
+ background: var(--stn-chart-highlight-bg);
101
+ border: var(--stn-chart-border-width) solid var(--stn-chart-highlight-border);
102
+ border-bottom: none;
103
+ border-radius: var(--stn-radius-8) var(--stn-radius-8) 0 0;
104
+ z-index: 1;
105
+ pointer-events: none;
106
+ }
107
+
108
+ .stn-chart-bar__col:hover .stn-chart-bar__highlight,
109
+ .stn-chart-bar__col.is-active .stn-chart-bar__highlight {
110
+ display: block;
111
+ }
112
+
113
+ /* Bars Wrap inside Column */
114
+ .stn-chart-bar__bars-wrap {
115
+ display: flex;
116
+ align-items: flex-end;
117
+ justify-content: center;
118
+ gap: var(--stn-chart-col-bars-gap);
119
+ width: 100%;
120
+ height: 100%;
121
+ z-index: 1;
122
+ }
123
+
124
+ /* Bar Item */
125
+ .stn-chart-bar__item {
126
+ width: var(--stn-chart-bar-width, var(--stn-chart-bar-width-md));
127
+ min-width: var(--stn-chart-bar-min-width);
128
+ border-radius: var(--stn-radius-2) var(--stn-radius-2) 0 0;
129
+ transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);
130
+ }
131
+
132
+ /* Bar Chart Size Modifiers (sm / md / lg) */
133
+ .stn-chart-bar--sm {
134
+ --stn-chart-bar-width: var(--stn-chart-bar-width-sm);
135
+ }
136
+
137
+ .stn-chart-bar--md {
138
+ --stn-chart-bar-width: var(--stn-chart-bar-width-md);
139
+ }
140
+
141
+ .stn-chart-bar--lg {
142
+ --stn-chart-bar-width: var(--stn-chart-bar-width-lg);
143
+ }
144
+
145
+ .stn-chart-bar__col--compact .stn-chart-bar__item {
146
+ width: var(--stn-chart-bar-width-sm);
147
+ }
148
+
149
+ /* X-Axis Rotated Label (-36deg) */
150
+ .stn-chart-bar__label {
151
+ font-family: var(--stn-font-body);
152
+ font-size: var(--stn-font-size-10);
153
+ font-weight: var(--stn-font-weight-regular);
154
+ color: var(--stn-chart-bar-label);
155
+ transform: rotate(-36deg);
156
+ transform-origin: 100% 0;
157
+ white-space: nowrap;
158
+ position: absolute;
159
+ top: calc(100% + var(--stn-chart-label-offset-top));
160
+ right: 50%;
161
+ text-align: right;
162
+ z-index: 2;
163
+ pointer-events: none;
164
+ }
165
+
166
+ .stn-chart-bar__col.is-active .stn-chart-bar__label,
167
+ .stn-chart-bar__col:hover .stn-chart-bar__label {
168
+ font-weight: var(--stn-font-weight-semibold);
169
+ color: var(--stn-text-primary);
170
+ }
171
+
172
+ /* ==========================================================================
173
+ 2. Horizontal Bar Chart (.stn-chart-bar--horizontal)
174
+ ========================================================================== */
175
+ .stn-chart-bar--horizontal {
176
+ display: flex;
177
+ flex-direction: column;
178
+ width: 100%;
179
+ height: 100%;
180
+ box-sizing: border-box;
181
+ }
182
+
183
+ .stn-chart-bar--horizontal .stn-chart-bar__body {
184
+ position: relative;
185
+ flex: 1 1 0%;
186
+ width: 100%;
187
+ min-height: var(--stn-chart-body-min-height);
188
+ display: flex;
189
+ flex-direction: column;
190
+ box-sizing: border-box;
191
+ }
192
+
193
+ /* Vertical Grid Lines for Horizontal Bar Scale */
194
+ .stn-chart-bar__grid-v {
195
+ position: absolute;
196
+ inset: var(--stn-chart-grid-inset-top) var(--stn-chart-line-axis-y-bottom) var(--stn-chart-grid-inset-bottom-horizontal) calc(var(--stn-chart-row-label-width) + var(--stn-chart-label-offset-top));
197
+ display: flex;
198
+ justify-content: space-between;
199
+ pointer-events: none;
200
+ z-index: 0;
201
+ }
202
+
203
+ .stn-chart-bar--no-y-axis.stn-chart-bar--horizontal .stn-chart-bar__grid-v,
204
+ .hide-y-axis.stn-chart-bar--horizontal .stn-chart-bar__grid-v,
205
+ .stn-chart-bar--horizontal.stn-chart-bar--no-y-axis .stn-chart-bar__grid-v {
206
+ left: var(--stn-chart-line-axis-y-bottom);
207
+ }
208
+
209
+ .stn-chart-bar--no-x-axis.stn-chart-bar--horizontal .stn-chart-bar__grid-v,
210
+ .hide-x-axis.stn-chart-bar--horizontal .stn-chart-bar__grid-v,
211
+ .stn-chart-bar--horizontal.stn-chart-bar--no-x-axis .stn-chart-bar__grid-v {
212
+ bottom: var(--stn-chart-grid-inset-bottom-compact);
213
+ }
214
+
215
+ .stn-chart-bar__grid-v-col {
216
+ display: flex;
217
+ flex-direction: column;
218
+ align-items: center;
219
+ height: 100%;
220
+ width: 0;
221
+ position: relative;
222
+ }
223
+
224
+ .stn-chart-bar__grid-v-line {
225
+ flex: 1;
226
+ border-left: var(--stn-chart-border-width) dashed var(--stn-chart-grid-line);
227
+ }
228
+
229
+ .stn-chart-bar__grid-v-line--zero {
230
+ border-left: var(--stn-chart-border-width) solid var(--stn-chart-zero-line);
231
+ }
232
+
233
+ .stn-chart-bar__grid-v-label {
234
+ position: absolute;
235
+ top: calc(100% + var(--stn-chart-label-offset-top));
236
+ transform: translateX(-50%);
237
+ font-family: var(--stn-font-body);
238
+ font-size: var(--stn-font-size-10);
239
+ color: var(--stn-chart-axis-text);
240
+ line-height: var(--stn-line-height-tight);
241
+ white-space: nowrap;
242
+ }
243
+
244
+ .stn-chart-bar--no-x-axis.stn-chart-bar--horizontal .stn-chart-bar__grid-v-label,
245
+ .hide-x-axis.stn-chart-bar--horizontal .stn-chart-bar__grid-v-label,
246
+ .stn-chart-bar--horizontal.stn-chart-bar--no-x-axis .stn-chart-bar__grid-v-label {
247
+ display: none;
248
+ }
249
+
250
+ /* Bottom Numeric Scale for Horizontal Bar */
251
+ .stn-chart-bar__axis-scale-x {
252
+ position: absolute;
253
+ left: calc(var(--stn-chart-row-label-width) + var(--stn-chart-label-offset-top));
254
+ right: var(--stn-chart-line-axis-y-bottom);
255
+ bottom: var(--stn-chart-label-offset-top);
256
+ display: flex;
257
+ justify-content: space-between;
258
+ pointer-events: none;
259
+ font-family: var(--stn-font-body);
260
+ font-size: var(--stn-font-size-10);
261
+ color: var(--stn-chart-axis-text);
262
+ line-height: var(--stn-line-height-tight);
263
+ }
264
+
265
+ .stn-chart-bar--no-y-axis.stn-chart-bar--horizontal .stn-chart-bar__axis-scale-x,
266
+ .hide-y-axis.stn-chart-bar--horizontal .stn-chart-bar__axis-scale-x,
267
+ .stn-chart-bar--horizontal.stn-chart-bar--no-y-axis .stn-chart-bar__axis-scale-x {
268
+ left: var(--stn-chart-line-axis-y-bottom);
269
+ }
270
+
271
+ .stn-chart-bar--no-x-axis.stn-chart-bar--horizontal .stn-chart-bar__axis-scale-x,
272
+ .hide-x-axis.stn-chart-bar--horizontal .stn-chart-bar__axis-scale-x,
273
+ .stn-chart-bar--horizontal.stn-chart-bar--no-x-axis .stn-chart-bar__axis-scale-x {
274
+ display: none;
275
+ }
276
+
277
+ /* Rows Container for Horizontal Bars */
278
+ .stn-chart-bar__rows {
279
+ position: absolute;
280
+ inset: var(--stn-chart-grid-inset-top) var(--stn-chart-grid-inset-top) var(--stn-chart-grid-inset-bottom-horizontal) 0;
281
+ display: flex;
282
+ flex-direction: column;
283
+ justify-content: space-around;
284
+ gap: var(--stn-chart-col-bars-gap);
285
+ z-index: 1;
286
+ }
287
+
288
+ .stn-chart-bar--no-x-axis.stn-chart-bar--horizontal .stn-chart-bar__rows,
289
+ .hide-x-axis.stn-chart-bar--horizontal .stn-chart-bar__rows,
290
+ .stn-chart-bar--horizontal.stn-chart-bar--no-x-axis .stn-chart-bar__rows {
291
+ bottom: var(--stn-chart-grid-inset-bottom-compact);
292
+ }
293
+
294
+ /* Individual Row */
295
+ .stn-chart-bar__row {
296
+ display: flex;
297
+ align-items: center;
298
+ width: 100%;
299
+ min-height: var(--stn-chart-row-min-height);
300
+ background: transparent;
301
+ border: none;
302
+ padding: var(--stn-chart-row-padding-y) var(--stn-chart-row-padding-x);
303
+ cursor: pointer;
304
+ position: relative;
305
+ border-radius: var(--stn-radius-4);
306
+ box-sizing: border-box;
307
+ text-align: left;
308
+ transition: background-color 0.15s ease;
309
+ }
310
+
311
+ .stn-chart-bar__row:hover,
312
+ .stn-chart-bar__row.is-active {
313
+ background-color: var(--stn-chart-highlight-bg);
314
+ }
315
+
316
+ .stn-chart-bar__row--compact {
317
+ min-height: var(--stn-chart-row-min-height-compact);
318
+ padding: var(--stn-chart-row-padding-compact-y) var(--stn-chart-row-padding-x);
319
+ }
320
+
321
+ .stn-chart-bar__row-label {
322
+ width: var(--stn-chart-row-label-width);
323
+ flex-shrink: 0;
324
+ font-family: var(--stn-font-body);
325
+ font-size: var(--stn-font-size-11);
326
+ font-weight: var(--stn-font-weight-regular);
327
+ color: var(--stn-chart-bar-label);
328
+ text-align: right;
329
+ padding-right: var(--stn-chart-row-label-padding-right);
330
+ box-sizing: border-box;
331
+ white-space: nowrap;
332
+ overflow: hidden;
333
+ text-overflow: ellipsis;
334
+ }
335
+
336
+ .stn-chart-bar--no-y-axis.stn-chart-bar--horizontal .stn-chart-bar__row-label,
337
+ .hide-y-axis.stn-chart-bar--horizontal .stn-chart-bar__row-label,
338
+ .stn-chart-bar--horizontal.stn-chart-bar--no-y-axis .stn-chart-bar__row-label {
339
+ display: none;
340
+ }
341
+
342
+ .stn-chart-bar__row:hover .stn-chart-bar__row-label,
343
+ .stn-chart-bar__row.is-active .stn-chart-bar__row-label {
344
+ font-weight: var(--stn-font-weight-semibold);
345
+ color: var(--stn-text-primary);
346
+ }
347
+
348
+ /* Row Track & Bars */
349
+ .stn-chart-bar__row-track {
350
+ flex: 1;
351
+ display: flex;
352
+ flex-direction: column;
353
+ justify-content: center;
354
+ gap: var(--stn-chart-row-track-gap);
355
+ height: 100%;
356
+ position: relative;
357
+ min-width: 0;
358
+ }
359
+
360
+ .stn-chart-bar__row-val {
361
+ margin-left: var(--stn-chart-row-val-margin-left);
362
+ font-family: var(--stn-font-body);
363
+ font-size: var(--stn-font-size-10);
364
+ font-weight: var(--stn-font-weight-medium);
365
+ color: var(--stn-text-secondary);
366
+ font-variant-numeric: tabular-nums;
367
+ white-space: nowrap;
368
+ }
369
+
370
+ .stn-chart-bar--horizontal .stn-chart-bar__item {
371
+ width: 0%;
372
+ height: var(--stn-chart-bar-width, var(--stn-chart-bar-width-md));
373
+ min-height: var(--stn-chart-bar-min-width);
374
+ border-radius: 0 var(--stn-radius-2) var(--stn-radius-2) 0;
375
+ transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
376
+ }
377
+
378
+ /* ==========================================================================
379
+ 3. Axis Show/Hide Modifiers (Class Based)
380
+ ========================================================================== */
381
+ .stn-chart-bar--no-x-axis .stn-chart-bar__label,
382
+ .hide-x-axis .stn-chart-bar__label {
383
+ display: none;
384
+ }
385
+
386
+ .stn-chart-bar--no-y-axis .stn-chart-bar__grid,
387
+ .hide-y-axis .stn-chart-bar__grid {
388
+ display: none;
389
+ }
390
+
391
+ .stn-chart-bar--no-y-axis .stn-chart-bar__columns,
392
+ .hide-y-axis .stn-chart-bar__columns {
393
+ inset: var(--stn-chart-grid-inset-top) var(--stn-chart-col-padding-x) var(--stn-chart-grid-inset-bottom) var(--stn-chart-grid-row-gap);
394
+ }
@@ -18,12 +18,12 @@
18
18
  /* Variants */
19
19
  .stn-card.flat {
20
20
  background-color: var(--stn-card-bg-flat);
21
- border: 1px solid transparent;
21
+ border: var(--stn-size-1, 1px) solid transparent;
22
22
  }
23
23
 
24
24
  .stn-card.outlined {
25
25
  background-color: transparent;
26
- border: 1px solid var(--stn-card-border-color);
26
+ border: var(--stn-size-1, 1px) solid var(--stn-card-border-color);
27
27
  }
28
28
 
29
29
  .stn-card.elevated {
@@ -33,23 +33,23 @@
33
33
 
34
34
  /* Severity Tint Surfaces (critical · major · minor · warning) */
35
35
  .stn-card.severity-critical {
36
- background-color: var(--stn-severity-critical-bg);
37
- border: 1px solid var(--stn-severity-critical-border);
36
+ background-color: var(--stn-card-severity-critical-bg);
37
+ border: var(--stn-size-1, 1px) solid var(--stn-severity-critical-border);
38
38
  }
39
39
 
40
40
  .stn-card.severity-major {
41
- background-color: var(--stn-severity-major-bg);
42
- border: 1px solid var(--stn-severity-major-border);
41
+ background-color: var(--stn-card-severity-major-bg);
42
+ border: var(--stn-size-1, 1px) solid var(--stn-severity-major-border);
43
43
  }
44
44
 
45
45
  .stn-card.severity-minor {
46
- background-color: var(--stn-severity-minor-bg);
47
- border: 1px solid var(--stn-severity-minor-border);
46
+ background-color: var(--stn-card-severity-minor-bg);
47
+ border: var(--stn-size-1, 1px) solid var(--stn-severity-minor-border);
48
48
  }
49
49
 
50
50
  .stn-card.severity-warning {
51
- background-color: var(--stn-severity-warning-bg);
52
- border: 1px solid var(--stn-severity-warning-border);
51
+ background-color: var(--stn-card-severity-warning-bg);
52
+ border: var(--stn-size-1, 1px) solid var(--stn-severity-warning-border);
53
53
  }
54
54
 
55
55
  /* Radius */
@@ -85,6 +85,31 @@
85
85
  flex-direction: column;
86
86
  }
87
87
 
88
+ /*
89
+ * Flush recipe — edge-to-edge body (Split View / store locator)
90
+ * Card padding="none" + Body flush
91
+ * Header/Footer keep horizontal inset; body margin gap removed so Side|Stage touch the divider.
92
+ */
93
+ .stn-card.pad-none > .stn-card__header {
94
+ padding-left: var(--stn-space-16, 16px);
95
+ padding-right: var(--stn-space-16, 16px);
96
+ margin-bottom: 0;
97
+ }
98
+
99
+ .stn-card.pad-none > .stn-card__footer {
100
+ padding-left: var(--stn-space-16, 16px);
101
+ padding-right: var(--stn-space-16, 16px);
102
+ padding-bottom: var(--stn-space-16, 16px);
103
+ margin-top: 0;
104
+ }
105
+
106
+ .stn-card__body.is-flush {
107
+ flex: 1 1 0%;
108
+ min-height: 0;
109
+ display: flex;
110
+ flex-direction: column;
111
+ }
112
+
88
113
  /* Interactive (Hover / Click) */
89
114
  .stn-card.interactive,
90
115
  .stn-card[role='button'] {
@@ -102,9 +127,20 @@
102
127
  align-items: center;
103
128
  justify-content: space-between;
104
129
  gap: var(--stn-space-12, 12px);
105
- padding-bottom: var(--stn-space-12, 12px);
106
- border-bottom: 1px solid var(--stn-card-border-color);
130
+ box-sizing: border-box;
131
+ /*
132
+ * 토큰: --stn-card-header-min-height
133
+ * height 고정으로 멀티 패널 디바이더 정렬.
134
+ * 세로 여백은 height 안 padding이 아니라 margin-bottom(본문 간격)으로만 —
135
+ * height + padding-bottom만 있으면(예전) content가 위로 붙고 아래만 비어 보임.
136
+ */
137
+ height: var(--stn-card-header-min-height, var(--stn-size-40, 40px));
138
+ min-height: var(--stn-card-header-min-height, var(--stn-size-40, 40px));
139
+ padding-top: 0;
140
+ padding-bottom: 0;
141
+ border-bottom: var(--stn-size-1, 1px) solid var(--stn-card-border-color);
107
142
  margin-bottom: var(--stn-space-12, 12px);
143
+ overflow: hidden;
108
144
  }
109
145
 
110
146
  .stn-card__header-title {
@@ -140,6 +176,6 @@
140
176
  justify-content: flex-end;
141
177
  gap: var(--stn-space-8, 8px);
142
178
  padding-top: var(--stn-space-12, 12px);
143
- border-top: 1px solid var(--stn-card-border-color);
179
+ border-top: var(--stn-size-1, 1px) solid var(--stn-card-border-color);
144
180
  margin-top: var(--stn-space-12, 12px);
145
181
  }