@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,243 @@
1
+ @charset "utf-8";
2
+
3
+ /**
4
+ * STN Design System — Chart Common Foundations
5
+ * Global chart variables, interactive hover tooltips, and shared legend components.
6
+ * 100% strictly tokenized via STN semantic design tokens (--stn-chart-*).
7
+ */
8
+
9
+ :root {
10
+ --stn-chart-bar-width: var(--stn-chart-bar-width-md);
11
+ --stn-chart-combo-bar-width: var(--stn-chart-combo-bar-width-md);
12
+ }
13
+
14
+ /* ==========================================================================
15
+ 1. Shared Legend Pill (.stn-chart-legend-pill)
16
+ ========================================================================== */
17
+ .stn-chart-legend-pill {
18
+ display: inline-flex;
19
+ padding: var(--stn-chart-legend-padding-y) var(--stn-chart-legend-padding-x);
20
+ align-items: center;
21
+ gap: var(--stn-chart-legend-gap);
22
+ border-radius: var(--stn-radius-circle);
23
+ border: var(--stn-chart-border-width) solid var(--stn-chart-legend-pill-border);
24
+ background: var(--stn-chart-legend-pill-bg);
25
+ margin: var(--stn-chart-legend-margin-top) auto 0;
26
+ }
27
+
28
+ .stn-chart-legend-pill__item {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: var(--stn-chart-legend-item-gap);
32
+ }
33
+
34
+ .stn-chart-legend-pill__bar {
35
+ width: var(--stn-chart-legend-bar-width);
36
+ height: var(--stn-chart-legend-bar-height);
37
+ border-radius: var(--stn-radius-4);
38
+ }
39
+
40
+ .stn-chart-legend-pill__label {
41
+ font-family: var(--stn-font-body);
42
+ font-size: var(--stn-font-size-12);
43
+ font-weight: var(--stn-font-weight-regular);
44
+ color: var(--stn-chart-legend-text);
45
+ white-space: nowrap;
46
+ }
47
+
48
+ /* ==========================================================================
49
+ 2. Interactive Hover Tooltip (.stn-chart-tooltip)
50
+ ========================================================================== */
51
+ .stn-chart-tooltip {
52
+ position: absolute;
53
+ z-index: 30;
54
+ pointer-events: none;
55
+ display: flex;
56
+ flex-direction: column;
57
+ gap: var(--stn-chart-tooltip-gap);
58
+ padding: var(--stn-chart-tooltip-padding-y) var(--stn-chart-tooltip-padding-x);
59
+ background: var(--stn-chart-tooltip-bg);
60
+ border: var(--stn-chart-border-width) solid var(--stn-chart-tooltip-border);
61
+ border-radius: var(--stn-radius-6);
62
+ box-shadow: var(--stn-shadow-3);
63
+ font-family: var(--stn-font-body);
64
+ font-size: var(--stn-font-size-11);
65
+ line-height: var(--stn-line-height-reading-3);
66
+ color: var(--stn-text-primary);
67
+ white-space: nowrap;
68
+ transform: translate(-50%, -100%);
69
+ margin-top: calc(-1 * var(--stn-chart-tooltip-offset-y));
70
+ transition: opacity 0.15s ease, transform 0.15s ease;
71
+ }
72
+
73
+ [data-mode='light'] .stn-chart-tooltip {
74
+ box-shadow: var(--stn-shadow-2);
75
+ }
76
+
77
+ .stn-chart-tooltip__header {
78
+ font-size: var(--stn-font-size-10);
79
+ font-weight: var(--stn-font-weight-semibold);
80
+ color: var(--stn-chart-tooltip-header-color);
81
+ border-bottom: var(--stn-chart-border-width) solid var(--stn-chart-tooltip-divider);
82
+ padding-bottom: var(--stn-chart-tooltip-gap);
83
+ margin-bottom: var(--stn-chart-col-padding-x);
84
+ }
85
+
86
+ .stn-chart-tooltip__row {
87
+ display: flex;
88
+ align-items: center;
89
+ gap: var(--stn-chart-tooltip-row-gap);
90
+ justify-content: space-between;
91
+ }
92
+
93
+ .stn-chart-tooltip__group {
94
+ display: flex;
95
+ align-items: center;
96
+ gap: var(--stn-chart-tooltip-group-gap);
97
+ }
98
+
99
+ .stn-chart-tooltip__dot {
100
+ width: var(--stn-chart-tooltip-dot-size);
101
+ height: var(--stn-chart-tooltip-dot-size);
102
+ border-radius: var(--stn-radius-circle);
103
+ flex-shrink: 0;
104
+ }
105
+
106
+ .stn-chart-tooltip__bar-mark {
107
+ width: var(--stn-chart-tooltip-bar-width);
108
+ height: var(--stn-chart-tooltip-bar-height);
109
+ border-radius: var(--stn-radius-2);
110
+ flex-shrink: 0;
111
+ }
112
+
113
+ .stn-chart-tooltip__label {
114
+ font-family: var(--stn-font-body);
115
+ font-size: var(--stn-font-size-10);
116
+ color: var(--stn-chart-bar-label);
117
+ font-weight: var(--stn-font-weight-regular);
118
+ }
119
+
120
+ .stn-chart-tooltip__value {
121
+ font-family: var(--stn-font-body);
122
+ font-size: var(--stn-font-size-11);
123
+ font-weight: var(--stn-font-weight-semibold);
124
+ color: var(--stn-text-primary);
125
+ margin-left: var(--stn-chart-tooltip-val-margin-left);
126
+ font-variant-numeric: tabular-nums;
127
+ }
128
+
129
+ /* Tooltip Disable Modifiers */
130
+ .stn-chart--no-tooltip .stn-chart-tooltip,
131
+ .hide-tooltip .stn-chart-tooltip {
132
+ display: none;
133
+ }
134
+
135
+ /* Tooltip Smart Boundary Alignment */
136
+ .stn-chart-tooltip--flip-x {
137
+ transform: translate(-100%, -100%);
138
+ }
139
+
140
+ .stn-chart-tooltip--align-left {
141
+ transform: translate(0%, -100%);
142
+ }
143
+
144
+ /* ==========================================================================
145
+ 3. Chart State Overlays: Empty State & Loading Skeleton
146
+ ========================================================================== */
147
+ .stn-chart-empty {
148
+ display: flex;
149
+ flex-direction: column;
150
+ align-items: center;
151
+ justify-content: center;
152
+ width: 100%;
153
+ height: 100%;
154
+ min-height: var(--stn-size-120);
155
+ gap: var(--stn-space-8);
156
+ color: var(--stn-text-muted);
157
+ font-family: var(--stn-font-body);
158
+ font-size: var(--stn-font-size-12);
159
+ text-align: center;
160
+ pointer-events: none;
161
+ user-select: none;
162
+ }
163
+
164
+ .stn-chart-empty__icon {
165
+ width: var(--stn-size-24);
166
+ height: var(--stn-size-24);
167
+ opacity: 0.45;
168
+ }
169
+
170
+ .stn-chart-skeleton {
171
+ width: 100%;
172
+ height: 100%;
173
+ min-height: var(--stn-size-120);
174
+ display: flex;
175
+ flex-direction: column;
176
+ justify-content: flex-end;
177
+ gap: var(--stn-space-8);
178
+ padding: var(--stn-space-12);
179
+ box-sizing: border-box;
180
+ }
181
+
182
+ .stn-chart-skeleton__bars {
183
+ display: flex;
184
+ align-items: flex-end;
185
+ justify-content: space-between;
186
+ width: 100%;
187
+ height: 70%;
188
+ gap: var(--stn-space-8);
189
+ }
190
+
191
+ .stn-chart-skeleton__bar {
192
+ flex: 1;
193
+ border-radius: var(--stn-radius-2) var(--stn-radius-2) 0 0;
194
+ background: var(--stn-elevation-surface-2);
195
+ animation: stn-chart-skeleton-pulse 1.5s ease-in-out infinite;
196
+ }
197
+
198
+ .stn-chart-skeleton__axis {
199
+ height: var(--stn-size-1);
200
+ background: var(--stn-border);
201
+ width: 100%;
202
+ }
203
+
204
+ @keyframes stn-chart-skeleton-pulse {
205
+ 0%, 100% {
206
+ opacity: 0.35;
207
+ }
208
+ 50% {
209
+ opacity: 0.75;
210
+ }
211
+ }
212
+
213
+ /* ==========================================================================
214
+ 4. Chart Status / Severity Semantic Modifier Utilities
215
+ ========================================================================== */
216
+ .stn-chart-status--critical {
217
+ --stn-chart-item-color: var(--stn-chart-status-critical);
218
+ }
219
+
220
+ .stn-chart-status--major {
221
+ --stn-chart-item-color: var(--stn-chart-status-major);
222
+ }
223
+
224
+ .stn-chart-status--minor {
225
+ --stn-chart-item-color: var(--stn-chart-status-minor);
226
+ }
227
+
228
+ .stn-chart-status--warning {
229
+ --stn-chart-item-color: var(--stn-chart-status-warning);
230
+ }
231
+
232
+ .stn-chart-status--success {
233
+ --stn-chart-item-color: var(--stn-chart-status-success);
234
+ }
235
+
236
+ .stn-chart-status--info {
237
+ --stn-chart-item-color: var(--stn-chart-status-info);
238
+ }
239
+
240
+ .stn-chart-status--neutral {
241
+ --stn-chart-item-color: var(--stn-chart-status-neutral);
242
+ }
243
+
@@ -0,0 +1,20 @@
1
+ @charset "utf-8";
2
+
3
+ /**
4
+ * STN Design System — Chart Components (Master Entry)
5
+ * Pure CSS & SVG charts without external library dependencies.
6
+ * 100% strictly tokenized via STN semantic design tokens (--stn-chart-*).
7
+ *
8
+ * Modular architecture:
9
+ * - stn-chart-common.css : Variables, tooltips, shared legend
10
+ * - stn-bar-chart.css : Vertical and horizontal bar charts
11
+ * - stn-line-chart.css : Line and area charts with dots
12
+ * - stn-pie-chart.css : Donut, gauge, and pie charts
13
+ * - stn-combo-chart.css : Bar + line composite charts
14
+ */
15
+
16
+ @import './stn-chart-common.css';
17
+ @import './stn-bar-chart.css';
18
+ @import './stn-line-chart.css';
19
+ @import './stn-pie-chart.css';
20
+ @import './stn-combo-chart.css';
@@ -136,7 +136,7 @@
136
136
  .stn-checkbox.lg {
137
137
  --stn-checkbox-size: var(--stn-checkbox-size-lg, 22px);
138
138
  --stn-checkbox-radius: var(--stn-radius-4, 4px);
139
- font-size: var(--stn-text-body-size, 15px);
139
+ font-size: var(--stn-text-body-medium-large-size);
140
140
  }
141
141
 
142
142
  /* Colors / Semantic Tones (단일 클래스 - 체크마크/대시 색상) */
@@ -0,0 +1,279 @@
1
+ @charset "utf-8";
2
+
3
+ /**
4
+ * STN Design System — Combo Chart Component (.stn-chart-combo)
5
+ * Mixed Bar + Line composite chart with dual Y-axes.
6
+ * 100% strictly tokenized via STN semantic design tokens (--stn-chart-*).
7
+ */
8
+
9
+ .stn-chart-combo {
10
+ display: flex;
11
+ flex-direction: column;
12
+ width: 100%;
13
+ height: 100%;
14
+ position: relative;
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ .stn-chart-combo__body {
19
+ position: relative;
20
+ flex: 1 1 0%;
21
+ width: 100%;
22
+ min-height: var(--stn-chart-body-min-height);
23
+ display: flex;
24
+ box-sizing: border-box;
25
+ }
26
+
27
+ /* Y-Axes (Left and Right) */
28
+ .stn-chart-combo__axis-y-left,
29
+ .stn-chart-combo__axis-y-right {
30
+ position: absolute;
31
+ top: var(--stn-chart-grid-inset-top);
32
+ bottom: var(--stn-chart-grid-inset-bottom-combo);
33
+ width: var(--stn-chart-combo-axis-y-width);
34
+ display: flex;
35
+ flex-direction: column;
36
+ justify-content: space-between;
37
+ pointer-events: none;
38
+ z-index: 3;
39
+ font-family: var(--stn-font-body);
40
+ font-size: var(--stn-font-size-10);
41
+ color: var(--stn-chart-axis-text);
42
+ line-height: var(--stn-line-height-tight);
43
+ }
44
+
45
+ .stn-chart-combo__axis-y-left {
46
+ left: 0;
47
+ text-align: right;
48
+ padding-right: var(--stn-chart-combo-axis-y-padding);
49
+ }
50
+
51
+ .stn-chart-combo__axis-y-right {
52
+ right: 0;
53
+ text-align: left;
54
+ padding-left: var(--stn-chart-combo-axis-y-padding);
55
+ }
56
+
57
+ .stn-chart-combo--no-left-y-axis .stn-chart-combo__axis-y-left,
58
+ .hide-left-y-axis .stn-chart-combo__axis-y-left {
59
+ display: none;
60
+ }
61
+
62
+ .stn-chart-combo--no-right-y-axis .stn-chart-combo__axis-y-right,
63
+ .hide-right-y-axis .stn-chart-combo__axis-y-right {
64
+ display: none;
65
+ }
66
+
67
+ /* Background Grid Lines */
68
+ .stn-chart-combo__grid {
69
+ position: absolute;
70
+ inset: var(--stn-chart-grid-inset-top) var(--stn-chart-combo-grid-offset-x) var(--stn-chart-grid-inset-bottom-combo) var(--stn-chart-combo-grid-offset-x);
71
+ display: flex;
72
+ flex-direction: column;
73
+ justify-content: space-between;
74
+ pointer-events: none;
75
+ z-index: 0;
76
+ }
77
+
78
+ .stn-chart-combo--no-left-y-axis .stn-chart-combo__grid {
79
+ left: var(--stn-chart-grid-row-gap);
80
+ }
81
+
82
+ .stn-chart-combo--no-right-y-axis .stn-chart-combo__grid {
83
+ right: var(--stn-chart-grid-row-gap);
84
+ }
85
+
86
+ .stn-chart-combo__grid-row {
87
+ display: flex;
88
+ align-items: center;
89
+ height: 0;
90
+ width: 100%;
91
+ }
92
+
93
+ .stn-chart-combo__grid-line {
94
+ flex: 1;
95
+ border-bottom: var(--stn-chart-border-width) dashed var(--stn-chart-grid-line);
96
+ }
97
+
98
+ .stn-chart-combo__grid-line--zero {
99
+ border-bottom: var(--stn-chart-border-width) solid var(--stn-chart-zero-line);
100
+ }
101
+
102
+ /* Content Area (Columns + SVG Lines Overlay) */
103
+ .stn-chart-combo__content {
104
+ position: absolute;
105
+ inset: var(--stn-chart-grid-inset-top) var(--stn-chart-combo-grid-offset-x) var(--stn-chart-grid-inset-bottom-combo) var(--stn-chart-combo-grid-offset-x);
106
+ display: flex;
107
+ z-index: 1;
108
+ }
109
+
110
+ .stn-chart-combo--no-left-y-axis .stn-chart-combo__content {
111
+ left: var(--stn-chart-grid-row-gap);
112
+ }
113
+
114
+ .stn-chart-combo--no-right-y-axis .stn-chart-combo__content {
115
+ right: var(--stn-chart-grid-row-gap);
116
+ }
117
+
118
+ /* Columns List (Bars) */
119
+ .stn-chart-combo__columns {
120
+ width: 100%;
121
+ height: 100%;
122
+ display: flex;
123
+ align-items: flex-end;
124
+ position: relative;
125
+ z-index: 1;
126
+ }
127
+
128
+ .stn-chart-combo__col {
129
+ flex: 1;
130
+ height: 100%;
131
+ display: flex;
132
+ flex-direction: column;
133
+ align-items: center;
134
+ justify-content: flex-end;
135
+ position: relative;
136
+ background: transparent;
137
+ border: none;
138
+ padding: 0 var(--stn-chart-combo-col-padding-x);
139
+ cursor: pointer;
140
+ box-sizing: border-box;
141
+ }
142
+
143
+ .stn-chart-combo__highlight {
144
+ display: none;
145
+ position: absolute;
146
+ inset: 0;
147
+ background: var(--stn-chart-highlight-bg);
148
+ border: var(--stn-chart-border-width) solid var(--stn-chart-highlight-border);
149
+ border-bottom: none;
150
+ border-radius: var(--stn-radius-8) var(--stn-radius-8) 0 0;
151
+ pointer-events: none;
152
+ z-index: 0;
153
+ }
154
+
155
+ .stn-chart-combo__col:hover .stn-chart-combo__highlight,
156
+ .stn-chart-combo__col.is-active .stn-chart-combo__highlight {
157
+ display: block;
158
+ }
159
+
160
+ /* Bars Group inside Column */
161
+ .stn-chart-combo__bars-wrap {
162
+ display: flex;
163
+ align-items: flex-end;
164
+ justify-content: center;
165
+ gap: var(--stn-chart-col-bars-gap);
166
+ width: 100%;
167
+ height: 100%;
168
+ position: relative;
169
+ z-index: 1;
170
+ }
171
+
172
+ .stn-chart-combo__bar {
173
+ width: var(--stn-chart-combo-bar-width, var(--stn-chart-combo-bar-width-md));
174
+ min-width: var(--stn-chart-combo-bar-min-width);
175
+ border-radius: var(--stn-radius-4) var(--stn-radius-4) 0 0;
176
+ transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);
177
+ }
178
+
179
+ /* Size Modifiers: sm, md, lg */
180
+ .stn-chart-combo--sm {
181
+ --stn-chart-combo-bar-width: var(--stn-chart-combo-bar-width-sm);
182
+ }
183
+
184
+ .stn-chart-combo--md {
185
+ --stn-chart-combo-bar-width: var(--stn-chart-combo-bar-width-md);
186
+ }
187
+
188
+ .stn-chart-combo--lg {
189
+ --stn-chart-combo-bar-width: var(--stn-chart-combo-bar-width-lg);
190
+ }
191
+
192
+ /* SVG Line & Area Overlay */
193
+ .stn-chart-combo__svg-overlay {
194
+ position: absolute;
195
+ inset: 0;
196
+ width: 100%;
197
+ height: 100%;
198
+ pointer-events: none;
199
+ overflow: hidden;
200
+ z-index: 2;
201
+ }
202
+
203
+ .stn-chart-combo__path {
204
+ fill: none;
205
+ stroke-linecap: round;
206
+ stroke-linejoin: round;
207
+ vector-effect: non-scaling-stroke;
208
+ transition: stroke 0.2s ease;
209
+ }
210
+
211
+ /* Base Combo Path (md) */
212
+ .stn-chart-combo .stn-chart-combo__path,
213
+ .stn-chart-combo--md .stn-chart-combo__path {
214
+ stroke-width: var(--stn-chart-line-stroke-md);
215
+ }
216
+
217
+ .stn-chart-combo--sm .stn-chart-combo__path {
218
+ stroke-width: var(--stn-chart-line-stroke-sm);
219
+ }
220
+
221
+ .stn-chart-combo--lg .stn-chart-combo__path {
222
+ stroke-width: var(--stn-chart-line-stroke-lg);
223
+ }
224
+
225
+ /* X-Axis Labels */
226
+ .stn-chart-combo__axis-x {
227
+ display: flex;
228
+ position: absolute;
229
+ left: var(--stn-chart-combo-grid-offset-x);
230
+ right: var(--stn-chart-combo-grid-offset-x);
231
+ bottom: var(--stn-chart-label-offset-top);
232
+ pointer-events: none;
233
+ z-index: 3;
234
+ }
235
+
236
+ .stn-chart-combo--no-left-y-axis .stn-chart-combo__axis-x {
237
+ left: var(--stn-chart-grid-row-gap);
238
+ }
239
+
240
+ .stn-chart-combo--no-right-y-axis .stn-chart-combo__axis-x {
241
+ right: var(--stn-chart-grid-row-gap);
242
+ }
243
+
244
+ .stn-chart-combo__axis-x-item {
245
+ flex: 1;
246
+ text-align: center;
247
+ font-family: var(--stn-font-body);
248
+ font-size: var(--stn-font-size-10);
249
+ color: var(--stn-chart-axis-text);
250
+ line-height: var(--stn-line-height-tight);
251
+ white-space: nowrap;
252
+ overflow: hidden;
253
+ text-overflow: ellipsis;
254
+ padding: 0 var(--stn-chart-col-padding-x);
255
+ }
256
+
257
+ .stn-chart-combo--no-x-axis .stn-chart-combo__axis-x,
258
+ .hide-x-axis .stn-chart-combo__axis-x {
259
+ display: none;
260
+ }
261
+
262
+ /* Legend Line Marker */
263
+ .stn-chart-legend-pill__line-marker {
264
+ width: var(--stn-chart-legend-line-marker-width);
265
+ height: var(--stn-chart-legend-line-marker-height);
266
+ border-radius: var(--stn-radius-2);
267
+ position: relative;
268
+ display: inline-block;
269
+ }
270
+
271
+ .stn-chart-legend-pill__line-dot {
272
+ width: var(--stn-chart-legend-line-dot-size);
273
+ height: var(--stn-chart-legend-line-dot-size);
274
+ border-radius: var(--stn-radius-circle);
275
+ position: absolute;
276
+ left: 50%;
277
+ top: 50%;
278
+ transform: translate(-50%, -50%);
279
+ }