@stn-uiux/pub-ui 0.1.79 → 0.1.81

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 (47) hide show
  1. package/dist/{chunk-LEAQPPMM.js → chunk-JFTEZMSS.js} +2 -2
  2. package/dist/{chunk-YRZXP3U5.js → chunk-ONXZQ5LE.js} +2 -2
  3. package/dist/chunk-PSVPO4FH.js +9 -0
  4. package/dist/chunk-PSVPO4FH.js.map +1 -0
  5. package/dist/{chunk-J5UYMTVQ.js → chunk-QIX7SYPC.js} +2 -2
  6. package/dist/{chunk-SQJPE6HH.js → chunk-R6NCTORS.js} +1 -1
  7. package/dist/chunk-R6NCTORS.js.map +1 -0
  8. package/dist/{chunk-AR7NYVE5.js → chunk-SAKMHUIL.js} +9 -1
  9. package/dist/{chunk-AR7NYVE5.js.map → chunk-SAKMHUIL.js.map} +1 -1
  10. package/dist/{chunk-AHS3E6AS.js → chunk-U5K73762.js} +11 -3
  11. package/dist/{chunk-AHS3E6AS.js.map → chunk-U5K73762.js.map} +1 -1
  12. package/dist/cli.js +3 -3
  13. package/dist/data/index.js +7 -7
  14. package/dist/data/stnBreadcrumb.js +3 -3
  15. package/dist/data/stnHeader.js +3 -3
  16. package/dist/data/stnPackageVersion.d.ts +2 -2
  17. package/dist/data/stnPackageVersion.js +1 -1
  18. package/dist/data/stnSideNavItem.js +3 -3
  19. package/dist/data/stnStatus.d.ts +1 -1
  20. package/dist/data/stnStatus.js +1 -1
  21. package/dist/data/stnSystemIcons.js +2 -2
  22. package/dist/data/stnSystemIconsData.generated.js +1 -1
  23. package/dist/index.js +7 -7
  24. package/package.json +1 -1
  25. package/styles/@assets/svg/system/line/topology-ai.svg +21 -0
  26. package/styles/@assets/svg/system/line/topology-chart.svg +5 -0
  27. package/styles/@assets/svg/system/line/topology-cluster.svg +5 -0
  28. package/styles/@assets/svg/system/line/topology-cube.svg +3 -0
  29. package/styles/@assets/svg/system/line/topology-firewall.svg +6 -0
  30. package/styles/@assets/svg/system/line/topology-layers.svg +5 -0
  31. package/styles/@assets/svg/system/line/topology-server.svg +14 -0
  32. package/styles/@assets/svg/system/line/topology-wifi.svg +5 -0
  33. package/styles/components/stn-drawer.css +17 -1
  34. package/styles/components/stn-segmented.css +32 -0
  35. package/styles/components/stn-status.css +53 -0
  36. package/styles/components/stn-topology.css +336 -24
  37. package/styles/components/stn-widget.css +4 -7
  38. package/styles/tokens/stn-colors-semantic.css +28 -10
  39. package/styles/tokens/stn-radius-semantic.css +4 -0
  40. package/styles/tokens/stn-size-semantic.css +10 -1
  41. package/styles/tokens/stn-spacing-semantic.css +13 -0
  42. package/dist/chunk-SGILJA4O.js +0 -9
  43. package/dist/chunk-SGILJA4O.js.map +0 -1
  44. package/dist/chunk-SQJPE6HH.js.map +0 -1
  45. /package/dist/{chunk-LEAQPPMM.js.map → chunk-JFTEZMSS.js.map} +0 -0
  46. /package/dist/{chunk-YRZXP3U5.js.map → chunk-ONXZQ5LE.js.map} +0 -0
  47. /package/dist/{chunk-J5UYMTVQ.js.map → chunk-QIX7SYPC.js.map} +0 -0
@@ -2,6 +2,7 @@
2
2
 
3
3
  /**
4
4
  * Topology — ring / graph canvas + node marks
5
+ * STN 표준 시멘틱 토큰 기반 스타일링
5
6
  */
6
7
 
7
8
  .stn-topology-ring,
@@ -13,9 +14,9 @@
13
14
  justify-content: center;
14
15
  width: 100%;
15
16
  height: 100%;
16
- min-height: 260px;
17
+ min-height: var(--stn-topology-container-min-height);
17
18
  overflow: hidden;
18
- border-radius: var(--stn-radius-8, 8px);
19
+ border-radius: var(--stn-radius-topology-container);
19
20
  }
20
21
 
21
22
  .stn-topology-ring__svg,
@@ -28,7 +29,7 @@
28
29
  .stn-topology-ring--loading,
29
30
  .stn-topology-graph--loading {
30
31
  color: var(--stn-topology-fg);
31
- font-size: 13px;
32
+ font-size: var(--stn-text-body-small-size);
32
33
  }
33
34
 
34
35
  .stn-topology-ring__loading-label,
@@ -38,37 +39,348 @@
38
39
 
39
40
  .stn-topology-graph__mode {
40
41
  position: absolute;
41
- top: 12px;
42
- right: 12px;
42
+ top: var(--stn-topology-mode-offset);
43
+ right: var(--stn-topology-mode-offset);
43
44
  z-index: 10;
44
45
  }
45
46
 
46
- .stn-topology-graph__minimap {
47
- position: absolute;
48
- right: 10px;
49
- bottom: 10px;
47
+ .stn-topology-node {
48
+ outline: none;
49
+ }
50
+
51
+ .stn-topology-node-preview {
52
+ display: inline-flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ overflow: visible;
56
+ }
57
+
58
+ /* ==========================================================================
59
+ Topology Node Mark (.stn-topology-node-mark)
60
+ 세로형 스택: 원형/다이아/사각 아이콘 + 타이틀 + 상태 인디케이터
61
+ ========================================================================== */
62
+
63
+ .stn-topology-node-mark {
64
+ display: inline-flex;
65
+ flex-direction: column;
66
+ align-items: center;
67
+ user-select: none;
68
+ cursor: pointer;
69
+ padding: var(--stn-topology-node-padding-y) var(--stn-topology-node-padding-x);
70
+ }
71
+
72
+ /* Icon Circle */
73
+ .stn-topology-node__circle {
74
+ display: inline-flex;
75
+ align-items: center;
76
+ justify-content: center;
77
+ border-radius: var(--stn-radius-circle);
50
78
  box-sizing: border-box;
51
- width: 84px;
52
- height: 62px;
53
- padding: 4px;
54
- pointer-events: none;
55
- border: 1px solid var(--stn-topology-chip-border);
56
- border-radius: 6px;
57
- background: var(--stn-topology-chip-bg);
79
+ background: var(--stn-opacity-white-5);
80
+ border: var(--stn-topology-node-border-width) solid transparent;
81
+ box-shadow: none;
82
+ animation: none;
83
+ position: relative;
84
+ flex-shrink: 0;
85
+ transition: all 0.2s ease;
86
+ color: var(--stn-static-white);
58
87
  }
59
88
 
60
- .stn-topology-graph__minimap-head {
61
- display: flex;
62
- justify-content: space-between;
63
- color: var(--stn-topology-fg);
64
- font-size: 9px;
89
+ /* 4대 표준 크기 규격 (xs · sm · md · lg) */
90
+ .stn-topology-node-mark.xs .stn-topology-node__circle {
91
+ width: var(--stn-topology-node-size-xs);
92
+ height: var(--stn-topology-node-size-xs);
93
+ }
94
+ .stn-topology-node-mark.sm .stn-topology-node__circle {
95
+ width: var(--stn-topology-node-size-sm);
96
+ height: var(--stn-topology-node-size-sm);
97
+ }
98
+ .stn-topology-node-mark.md .stn-topology-node__circle {
99
+ width: var(--stn-topology-node-size-md);
100
+ height: var(--stn-topology-node-size-md);
101
+ }
102
+ .stn-topology-node-mark.lg .stn-topology-node__circle {
103
+ width: var(--stn-topology-node-size-lg);
104
+ height: var(--stn-topology-node-size-lg);
65
105
  }
66
106
 
67
- .stn-topology-node {
107
+ /* Shapes: circle · square · diamond (3대 표준 도형) */
108
+ .stn-topology-node-mark.shape-circle .stn-topology-node__circle {
109
+ border-radius: var(--stn-radius-circle);
110
+ }
111
+
112
+ .stn-topology-node-mark.shape-square .stn-topology-node__circle {
113
+ border-radius: var(--stn-radius-topology-node-square);
114
+ }
115
+
116
+ .stn-topology-node-mark.shape-diamond .stn-topology-node__circle {
117
+ border-radius: var(--stn-radius-topology-node-diamond);
118
+ transform: rotate(45deg) scale(0.85);
119
+ }
120
+ .stn-topology-node-mark.shape-diamond .stn-topology-node__circle > * {
121
+ transform: rotate(-45deg);
122
+ }
123
+
124
+ /* Selected Node Highlight — 정밀 솔리드 링 + 소프트 앰비언트 글로우 */
125
+ .stn-topology-node-mark.selected .stn-topology-node__circle {
68
126
  outline: none;
127
+ box-shadow:
128
+ 0 0 0 3px var(--stn-topology-node-selected-gap),
129
+ 0 0 0 4.5px var(--stn-topology-node-selected-border),
130
+ 0 0 14px var(--stn-topology-node-selected-glow);
131
+ transform: scale(1.06);
132
+ }
133
+ .stn-topology-node-mark.shape-diamond.selected .stn-topology-node__circle {
134
+ transform: rotate(45deg) scale(0.92);
69
135
  }
70
136
 
71
- .stn-topology-node-preview {
72
- display: block;
137
+ /* Severity / Status Themes on Circle (통일된 단일 룰) */
138
+ .stn-topology-node-mark.normal .stn-topology-node__circle {
139
+ background: var(--stn-opacity-white-5);
140
+ border: var(--stn-topology-node-border-width) solid transparent;
141
+ box-shadow: none;
142
+ animation: none;
143
+ color: var(--stn-static-white);
144
+ }
145
+ .stn-topology-node-mark.normal:hover .stn-topology-node__circle {
146
+ background: var(--stn-opacity-white-10);
147
+ }
148
+
149
+ .stn-topology-node-mark.warning .stn-topology-node__circle {
150
+ border: var(--stn-topology-node-border-width) solid var(--stn-grade-warning);
151
+ background: transparent;
152
+ box-shadow: none;
153
+ animation: none;
154
+ color: var(--stn-static-white);
155
+ }
156
+
157
+ .stn-topology-node-mark.minor .stn-topology-node__circle {
158
+ border: var(--stn-topology-node-border-width) solid var(--stn-grade-minor);
159
+ background: transparent;
160
+ box-shadow:
161
+ 0 0 4px 0 var(--stn-opacity-white-15) inset,
162
+ 0 0 4px 0 color-mix(in srgb, var(--stn-grade-minor) 24%, transparent) inset,
163
+ 0 0 16px 0 color-mix(in srgb, var(--stn-grade-minor) 50%, transparent);
164
+ backdrop-filter: blur(3px);
165
+ -webkit-backdrop-filter: blur(3px);
166
+ animation: shadowPulseMinor 1.8s ease-in-out infinite;
167
+ color: var(--stn-static-white);
168
+ }
169
+
170
+ .stn-topology-node-mark.major .stn-topology-node__circle {
171
+ border: var(--stn-topology-node-border-width) solid var(--stn-grade-major);
172
+ background: transparent;
173
+ backdrop-filter: blur(3px);
174
+ -webkit-backdrop-filter: blur(3px);
175
+ animation: shadowPulseWarning 1.5s ease-in-out infinite;
176
+ color: var(--stn-static-white);
177
+ }
178
+
179
+ .stn-topology-node-mark.critical .stn-topology-node__circle {
180
+ border: var(--stn-topology-node-border-width) solid var(--stn-grade-critical);
181
+ background: transparent;
182
+ backdrop-filter: blur(3px);
183
+ -webkit-backdrop-filter: blur(3px);
184
+ animation: shadowPulseDanger 1.2s ease-in-out infinite;
185
+ color: var(--stn-static-white);
186
+ }
187
+
188
+ /* Pulsing shadow keyframes */
189
+ @keyframes shadowPulseMinor {
190
+ 0%, 100% {
191
+ box-shadow:
192
+ 0 0 4px 0 var(--stn-opacity-white-15) inset,
193
+ 0 0 4px 0 color-mix(in srgb, var(--stn-grade-minor) 30%, transparent) inset,
194
+ 0 0 18px 0 color-mix(in srgb, var(--stn-grade-minor) 70%, transparent);
195
+ }
196
+ 50% {
197
+ box-shadow:
198
+ 0 0 2px 0 var(--stn-opacity-white-5) inset,
199
+ 0 0 2px 0 color-mix(in srgb, var(--stn-grade-minor) 8%, transparent) inset,
200
+ 0 0 4px 0 color-mix(in srgb, var(--stn-grade-minor) 15%, transparent);
201
+ }
202
+ }
203
+
204
+ @keyframes shadowPulseWarning {
205
+ 0%, 100% {
206
+ box-shadow:
207
+ 0 0 4px 0 var(--stn-opacity-white-15) inset,
208
+ 0 0 4px 0 color-mix(in srgb, var(--stn-grade-major) 30%, transparent) inset,
209
+ 0 0 18px 0 color-mix(in srgb, var(--stn-grade-major) 70%, transparent);
210
+ }
211
+ 50% {
212
+ box-shadow:
213
+ 0 0 2px 0 var(--stn-opacity-white-5) inset,
214
+ 0 0 2px 0 color-mix(in srgb, var(--stn-grade-major) 8%, transparent) inset,
215
+ 0 0 4px 0 color-mix(in srgb, var(--stn-grade-major) 15%, transparent);
216
+ }
217
+ }
218
+
219
+ @keyframes shadowPulseDanger {
220
+ 0%, 100% {
221
+ box-shadow:
222
+ 0 0 4px 0 var(--stn-opacity-white-15) inset,
223
+ 0 0 4px 0 color-mix(in srgb, var(--stn-grade-critical) 30%, transparent) inset,
224
+ 0 0 20px 0 color-mix(in srgb, var(--stn-grade-critical) 85%, transparent);
225
+ }
226
+ 50% {
227
+ box-shadow:
228
+ 0 0 2px 0 var(--stn-opacity-white-5) inset,
229
+ 0 0 2px 0 color-mix(in srgb, var(--stn-grade-critical) 8%, transparent) inset,
230
+ 0 0 4px 0 color-mix(in srgb, var(--stn-grade-critical) 15%, transparent);
231
+ }
232
+ }
233
+
234
+ /* Continuous Rotating 2-Arc Gradient Ring Orbit */
235
+ @keyframes spinCenterRing {
236
+ 0% { transform: rotate(0deg); }
237
+ 100% { transform: rotate(360deg); }
238
+ }
239
+
240
+ .topo-hub-spin-arc {
241
+ transform-origin: 250px 250px;
242
+ animation: spinCenterRing 14s linear infinite;
243
+ }
244
+
245
+ /* Node Title — 타이포그래피(font-size, font-weight, color 등)는 StnText로 위임하고 순수 배치 간격만 유지 */
246
+ .stn-topology-node__title {
247
+ margin-top: var(--stn-topology-node-title-margin-top);
248
+ text-align: center;
249
+ }
250
+
251
+ /* Status Indicator Layout Below Node — 순수 배치 간격만 유지 */
252
+ .stn-topology-node__status,
253
+ .stn-topology-node__status-text {
254
+ margin-top: var(--stn-topology-node-status-margin-top);
255
+ white-space: nowrap;
256
+ }
257
+
258
+ /* Center Hub */
259
+ .stn-topology-ring__core-hub {
260
+ position: absolute;
261
+ left: 50%;
262
+ top: 50%;
263
+ transform: translate(-50%, -50%);
264
+ display: flex;
265
+ flex-direction: column;
266
+ align-items: center;
267
+ justify-content: center;
268
+ gap: var(--stn-topology-core-hub-gap);
269
+ z-index: 10;
270
+ width: 100%;
271
+ height: 100%;
272
+ border-radius: var(--stn-radius-circle);
273
+ cursor: pointer;
274
+ user-select: none;
275
+ }
276
+ .stn-topology-ring__core-title {
277
+ margin-top: var(--stn-topology-core-title-margin-top);
278
+ text-align: center;
279
+ }
280
+ .stn-topology-ring__core-status {
281
+ margin-top: var(--stn-topology-core-status-margin-top);
282
+ white-space: nowrap;
283
+ }
284
+
285
+ /* SVG foreignObject container — 브라우저 기본 overflow:hidden 클리핑 방지 */
286
+ .stn-topology-node-fo {
73
287
  overflow: visible;
74
288
  }
289
+
290
+ /* ==========================================================================
291
+ Topology Graph 3D Spatial Engine & Interactive Controls
292
+ STN 시멘틱 토큰 100% 준수
293
+ ========================================================================== */
294
+
295
+ /* 2D / 3D Mode Switcher with StnSegmented (Top Center) — STN 표준 세그먼트 컴포넌트 연동 */
296
+ .stn-topology-mode-toggle-wrap {
297
+ position: absolute;
298
+ top: var(--stn-topology-mode-offset);
299
+ left: 50%;
300
+ transform: translateX(-50%);
301
+ display: flex;
302
+ align-items: center;
303
+ justify-content: center;
304
+ z-index: 10;
305
+ box-shadow: var(--stn-topology-mode-shadow);
306
+ border-radius: var(--stn-radius-segmented);
307
+ }
308
+
309
+ /* Floating Minimap (Bottom Right) */
310
+ .stn-topology-minimap-box {
311
+ position: absolute;
312
+ bottom: var(--stn-topology-minimap-offset);
313
+ right: var(--stn-topology-minimap-offset);
314
+ width: var(--stn-topology-minimap-width);
315
+ border-radius: var(--stn-radius-topology-minimap);
316
+ border: var(--stn-topology-minimap-border-width) solid var(--stn-border-subtle);
317
+ background: var(--stn-topology-minimap-bg);
318
+ padding: var(--stn-topology-minimap-padding-y) var(--stn-topology-minimap-padding-x);
319
+ display: flex;
320
+ flex-direction: column;
321
+ backdrop-filter: blur(6px);
322
+ -webkit-backdrop-filter: blur(6px);
323
+ z-index: 10;
324
+ transition: all 0.2s ease;
325
+ }
326
+
327
+ .stn-topology-minimap-head {
328
+ display: flex;
329
+ justify-content: space-between;
330
+ align-items: center;
331
+ }
332
+
333
+ .stn-topology-minimap-title {
334
+ font-family: var(--stn-font-body);
335
+ font-size: var(--stn-text-caption-size);
336
+ font-weight: var(--stn-font-weight-semibold);
337
+ color: var(--stn-text-muted);
338
+ }
339
+
340
+ .stn-topology-minimap-btn {
341
+ background: transparent;
342
+ border: none;
343
+ color: var(--stn-text-muted);
344
+ font-size: var(--stn-text-caption-size);
345
+ cursor: pointer;
346
+ padding: 0 var(--stn-topology-minimap-btn-padding-x);
347
+ line-height: 1;
348
+ }
349
+
350
+ .stn-topology-minimap-btn:hover {
351
+ color: var(--stn-text-primary);
352
+ }
353
+
354
+ .stn-topology-minimap-content {
355
+ width: 100%;
356
+ height: var(--stn-topology-minimap-content-height);
357
+ display: flex;
358
+ align-items: center;
359
+ justify-content: center;
360
+ overflow: hidden;
361
+ margin-top: var(--stn-topology-minimap-content-margin-top);
362
+ }
363
+
364
+ /* 3D Pulse Rings for Critical Nodes */
365
+ @keyframes stnTopologyPulseRing {
366
+ 0% {
367
+ r: 8px;
368
+ opacity: 0.9;
369
+ stroke-width: 1.5px;
370
+ }
371
+ 100% {
372
+ r: 26px;
373
+ opacity: 0;
374
+ stroke-width: 0.5px;
375
+ }
376
+ }
377
+
378
+ .stn-topology-pulse-ring-1 {
379
+ animation: stnTopologyPulseRing 2s infinite ease-out;
380
+ }
381
+
382
+ .stn-topology-pulse-ring-2 {
383
+ animation: stnTopologyPulseRing 2s infinite ease-out 0.8s;
384
+ }
385
+
386
+
@@ -9,7 +9,7 @@
9
9
  --stn-widget-title-font-size: var(--stn-text-title-small-size, var(--stn-font-size-16, 16px));
10
10
  --stn-widget-title-font-weight: var(--stn-font-weight-semibold, 600);
11
11
  --stn-widget-title-color: var(--stn-text-primary);
12
- --stn-widget-title-line-height: var(--stn-line-height-1, 1);
12
+ --stn-widget-title-line-height: var(--stn-line-height-tight, 1.2);
13
13
  --stn-widget-footer-color: var(--stn-text-secondary);
14
14
  }
15
15
 
@@ -158,7 +158,7 @@
158
158
  border-top: var(--stn-widget-border-width, var(--stn-size-1, 1px)) solid var(--stn-widget-border-color);
159
159
  margin-top: auto;
160
160
  flex-shrink: 0;
161
- font-size: var(--stn-text-caption-small-size, 12px);
161
+ font-size: var(--stn-text-caption-size);
162
162
  color: var(--stn-widget-footer-color);
163
163
  }
164
164
 
@@ -261,7 +261,7 @@
261
261
  font-size: var(--stn-widget-title-font-size);
262
262
  font-weight: var(--stn-widget-title-font-weight);
263
263
  color: var(--stn-widget-title-color);
264
- line-height: var(--stn-line-height-1, 1);
264
+ line-height: var(--stn-widget-title-line-height);
265
265
  white-space: nowrap;
266
266
  overflow: hidden;
267
267
  text-overflow: ellipsis;
@@ -606,7 +606,6 @@
606
606
  /* --- 1. CRITICAL --- */
607
607
  .stn-widget.critical,
608
608
  .stn-widget.is-critical {
609
- border: var(--stn-widget-border-width, var(--stn-size-1, 1px)) solid var(--stn-widget-critical-border);
610
609
  border-left: var(--stn-widget-severity-border-width, 4px) solid var(--stn-widget-critical-accent);
611
610
  background: var(--stn-widget-critical-bg);
612
611
  box-shadow: var(--stn-widget-critical-glow);
@@ -620,7 +619,6 @@
620
619
 
621
620
  /* --- 2. MAJOR --- */
622
621
  .stn-widget.major {
623
- border: var(--stn-widget-border-width, var(--stn-size-1, 1px)) solid var(--stn-widget-major-border);
624
622
  border-left: var(--stn-widget-severity-border-width, 4px) solid var(--stn-widget-major-accent);
625
623
  background: var(--stn-widget-major-bg);
626
624
  box-shadow: var(--stn-widget-major-glow);
@@ -633,7 +631,6 @@
633
631
 
634
632
  /* --- 3. MINOR --- */
635
633
  .stn-widget.minor {
636
- border: var(--stn-widget-border-width, var(--stn-size-1, 1px)) solid var(--stn-widget-minor-border);
637
634
  border-left: var(--stn-widget-severity-border-width, 4px) solid var(--stn-widget-minor-accent);
638
635
  background: var(--stn-widget-minor-bg);
639
636
  box-shadow: var(--stn-widget-minor-glow);
@@ -648,7 +645,7 @@
648
645
  StnWidgetBody Surface & Layout Utilities
649
646
  ========================================================================== */
650
647
  .stn-widget__body--surface-canvas {
651
- background-color: var(--doc-canvas-bg, var(--stn-surface-canvas, var(--stn-elevation-surface-canvas)));
648
+ background-color: var(--stn-elevation-surface-0);
652
649
  }
653
650
 
654
651
  .stn-widget__body--surface-transparent {
@@ -316,13 +316,13 @@
316
316
  --stn-toast-bg: var(--stn-gray-850);
317
317
  --stn-toast-color: var(--stn-static-white);
318
318
  --stn-toast-border: var(--stn-gray-650);
319
- --stn-severity-critical-bg: color-mix(in srgb, var(--stn-red-400) 18%, transparent);
319
+ --stn-severity-critical-bg: color-mix(in srgb, var(--stn-red-400) 10%, transparent);
320
320
  --stn-severity-critical-border: var(--stn-red-350);
321
- --stn-severity-major-bg: color-mix(in srgb, var(--stn-orange-400) 18%, transparent);
321
+ --stn-severity-major-bg: color-mix(in srgb, var(--stn-orange-400) 10%, transparent);
322
322
  --stn-severity-major-border: var(--stn-orange-350);
323
- --stn-severity-minor-bg: color-mix(in srgb, var(--stn-yellow-350) 15%, transparent);
323
+ --stn-severity-minor-bg: color-mix(in srgb, var(--stn-yellow-350) 10%, transparent);
324
324
  --stn-severity-minor-border: var(--stn-yellow-350);
325
- --stn-severity-warning-bg: color-mix(in srgb, var(--stn-teal-400) 18%, transparent);
325
+ --stn-severity-warning-bg: color-mix(in srgb, var(--stn-teal-400) 10%, transparent);
326
326
  --stn-severity-warning-border: var(--stn-teal-350);
327
327
  --stn-text-tertiary: var(--stn-gray-400);
328
328
  --stn-text-muted: var(--stn-gray-500);
@@ -486,15 +486,24 @@
486
486
  --stn-topology-fg: var(--stn-gray-400);
487
487
  --stn-topology-chip-border: var(--stn-opacity-white-15);
488
488
  --stn-topology-chip-bg: var(--stn-opacity-black-70);
489
+ --stn-topology-orbit-start: var(--stn-blue-300);
490
+ --stn-topology-orbit-mid: var(--stn-blue-400);
491
+ --stn-topology-orbit-end: var(--stn-purple-300);
492
+ --stn-topology-link-line: var(--stn-opacity-white-45);
493
+ --stn-topology-node-selected-border: var(--stn-blue-300);
494
+ --stn-topology-node-selected-gap: var(--stn-gray-950);
495
+ --stn-topology-node-selected-glow: color-mix(in srgb, var(--stn-blue-300) 50%, transparent);
496
+ --stn-topology-minimap-bg: color-mix(in srgb, var(--stn-elevation-surface-widget) 75%, transparent);
497
+ --stn-topology-mode-shadow: 0 4px 16px color-mix(in srgb, var(--stn-static-black) 40%, transparent);
489
498
  --stn-widget-critical-accent: var(--stn-red-550);
490
- --stn-widget-critical-bg: color-mix(in srgb, var(--stn-red-550) 10%, transparent);
491
- --stn-widget-critical-glow: 0 0 4px 0 color-mix(in srgb, var(--stn-static-white) 16%, transparent) inset, 0 0 32px 0 color-mix(in srgb, var(--stn-red-550) 24%, transparent) inset;
499
+ --stn-widget-critical-bg: color-mix(in srgb, var(--stn-red-550) 6%, transparent);
500
+ --stn-widget-critical-glow: 0 0 16px 0 color-mix(in srgb, var(--stn-red-550) 32%, transparent) inset, 0 0 32px 0 color-mix(in srgb, var(--stn-red-550) 16%, transparent) inset;
492
501
  --stn-widget-major-accent: var(--stn-orange-550);
493
- --stn-widget-major-bg: color-mix(in srgb, var(--stn-orange-550) 10%, transparent);
494
- --stn-widget-major-glow: 0 0 4px 0 color-mix(in srgb, var(--stn-static-white) 16%, transparent) inset, 0 0 32px 0 color-mix(in srgb, var(--stn-orange-550) 24%, transparent) inset;
502
+ --stn-widget-major-bg: color-mix(in srgb, var(--stn-orange-550) 6%, transparent);
503
+ --stn-widget-major-glow: 0 0 16px 0 color-mix(in srgb, var(--stn-orange-550) 32%, transparent) inset, 0 0 32px 0 color-mix(in srgb, var(--stn-orange-550) 16%, transparent) inset;
495
504
  --stn-widget-minor-accent: var(--stn-yellow-550);
496
- --stn-widget-minor-bg: color-mix(in srgb, var(--stn-yellow-550) 10%, transparent);
497
- --stn-widget-minor-glow: 0 0 4px 0 color-mix(in srgb, var(--stn-static-white) 16%, transparent) inset, 0 0 32px 0 color-mix(in srgb, var(--stn-yellow-550) 24%, transparent) inset;
505
+ --stn-widget-minor-bg: color-mix(in srgb, var(--stn-yellow-550) 6%, transparent);
506
+ --stn-widget-minor-glow: 0 0 16px 0 color-mix(in srgb, var(--stn-yellow-550) 32%, transparent) inset, 0 0 32px 0 color-mix(in srgb, var(--stn-yellow-550) 16%, transparent) inset;
498
507
  --stn-widget-slot-border: var(--stn-gray-700);
499
508
  --stn-widget-slot-bg: color-mix(in srgb, var(--stn-static-white) 2%, transparent);
500
509
  --stn-widget-drag-bg: linear-gradient(-78deg, color-mix(in srgb, var(--stn-gray-950) 50%, transparent), color-mix(in srgb, var(--stn-gray-900) 50%, transparent), var(--stn-opacity-black-50));
@@ -1098,6 +1107,15 @@
1098
1107
  --stn-topology-fg: var(--stn-gray-500);
1099
1108
  --stn-topology-chip-border: var(--stn-gray-200);
1100
1109
  --stn-topology-chip-bg: var(--stn-opacity-white-80);
1110
+ --stn-topology-orbit-start: var(--stn-blue-400);
1111
+ --stn-topology-orbit-mid: var(--stn-blue-500);
1112
+ --stn-topology-orbit-end: var(--stn-purple-400);
1113
+ --stn-topology-link-line: var(--stn-opacity-black-25);
1114
+ --stn-topology-node-selected-border: var(--stn-blue-400);
1115
+ --stn-topology-node-selected-gap: var(--stn-static-white);
1116
+ --stn-topology-node-selected-glow: color-mix(in srgb, var(--stn-blue-400) 40%, transparent);
1117
+ --stn-topology-minimap-bg: color-mix(in srgb, var(--stn-elevation-surface-widget) 75%, transparent);
1118
+ --stn-topology-mode-shadow: 0 4px 16px color-mix(in srgb, var(--stn-static-black) 12%, transparent);
1101
1119
  --stn-widget-critical-accent: var(--stn-red-500);
1102
1120
  --stn-widget-critical-bg: color-mix(in srgb, var(--stn-red-50) 65%, var(--stn-static-white));
1103
1121
  --stn-widget-critical-glow: 0 0 16px 0 color-mix(in srgb, var(--stn-red-400) 22%, transparent) inset, 0 2px 8px 0 color-mix(in srgb, var(--stn-red-400) 12%, transparent);
@@ -79,4 +79,8 @@
79
79
  --stn-radius-tree-row-full: var(--stn-radius-circle);
80
80
  --stn-radius-tree-toggle-focus: var(--stn-radius-2);
81
81
  --stn-radius-tree-visibility-btn: var(--stn-radius-2);
82
+ --stn-radius-topology-container: var(--stn-radius-8);
83
+ --stn-radius-topology-node-square: var(--stn-radius-8);
84
+ --stn-radius-topology-node-diamond: var(--stn-radius-4);
85
+ --stn-radius-topology-minimap: var(--stn-radius-8);
82
86
  }
@@ -226,7 +226,7 @@
226
226
  --stn-severity-badge-icon-size-md: var(--stn-size-14);
227
227
  --stn-severity-badge-icon-size-lg: var(--stn-size-16);
228
228
  --stn-widget-mobile-min-height: var(--stn-size-160);
229
- --stn-widget-severity-border-width: var(--stn-size-4);
229
+ --stn-widget-severity-border-width: var(--stn-size-2);
230
230
  --stn-header-breadcrumb-mobile-max-width: var(--stn-size-140);
231
231
  --stn-widget-translucent-blur: var(--stn-size-8);
232
232
  --stn-dropdown-translucent-blur: var(--stn-size-8);
@@ -270,4 +270,13 @@
270
270
  --stn-breadcrumb-sep-size-lg: var(--stn-size-14);
271
271
  --stn-event-banner-btn-height: var(--stn-size-28);
272
272
  --stn-event-banner-icon-size: var(--stn-size-24);
273
+ --stn-topology-node-size-xs: var(--stn-size-24);
274
+ --stn-topology-node-size-sm: var(--stn-size-32);
275
+ --stn-topology-node-size-md: var(--stn-size-40);
276
+ --stn-topology-node-size-lg: var(--stn-size-48);
277
+ --stn-topology-container-min-height: var(--stn-size-260);
278
+ --stn-topology-node-border-width: var(--stn-size-1);
279
+ --stn-topology-minimap-border-width: var(--stn-size-1);
280
+ --stn-topology-minimap-width: var(--stn-size-140);
281
+ --stn-topology-minimap-content-height: var(--stn-size-96);
273
282
  }
@@ -284,4 +284,17 @@
284
284
  --stn-event-banner-actions-gap: var(--stn-space-8);
285
285
  --stn-event-banner-btn-padding-inline: var(--stn-space-14);
286
286
  --stn-event-banner-btn-padding-block: var(--stn-space-4);
287
+ --stn-topology-mode-offset: var(--stn-space-12);
288
+ --stn-topology-node-padding-y: var(--stn-space-2);
289
+ --stn-topology-node-padding-x: var(--stn-space-4);
290
+ --stn-topology-node-title-margin-top: var(--stn-space-4);
291
+ --stn-topology-node-status-margin-top: var(--stn-space-2);
292
+ --stn-topology-core-hub-gap: var(--stn-space-2);
293
+ --stn-topology-core-title-margin-top: var(--stn-space-2);
294
+ --stn-topology-core-status-margin-top: var(--stn-space-2);
295
+ --stn-topology-minimap-offset: var(--stn-space-14);
296
+ --stn-topology-minimap-padding-y: var(--stn-space-8);
297
+ --stn-topology-minimap-padding-x: var(--stn-space-10);
298
+ --stn-topology-minimap-btn-padding-x: var(--stn-space-4);
299
+ --stn-topology-minimap-content-margin-top: var(--stn-space-4);
287
300
  }
@@ -1,9 +0,0 @@
1
- // src/data/stnPackageVersion.ts
2
- var STN_UI_VERSION = "0.1.79";
3
- var STN_UI_VERSION_LABEL = "v0.1.79";
4
-
5
- export {
6
- STN_UI_VERSION,
7
- STN_UI_VERSION_LABEL
8
- };
9
- //# sourceMappingURL=chunk-SGILJA4O.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.79'\nexport const STN_UI_VERSION_LABEL = 'v0.1.79'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnStatus.ts"],"sourcesContent":["export type StnStatusDotState =\n | 'up'\n | 'down'\n | 'critical'\n | 'major'\n | 'minor'\n | 'warning'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'error'\n | 'info'\n | 'neutral'\n | string\n\nexport type StnStatusFlowStepColor =\n | 'primary'\n | 'secondary'\n | 'success'\n | 'error'\n | 'info'\n | 'neutral'\n | 'critical'\n | 'major'\n | 'minor'\n | 'warning'\n | string\n\nexport type StnStatusFlowStep = {\n key: string\n label: string\n color?: StnStatusFlowStepColor\n icon?: string\n}\n\nexport const STN_STATUS_DEMO_STEPS: StnStatusFlowStep[] = [\n { key: 'occur', label: '장애발생', color: 'critical', icon: 'line/alert-octagon' },\n { key: 'ack', label: '인지', color: 'warning', icon: 'line/bell' },\n { key: 'notify', label: '통보', color: 'primary', icon: 'line/volume-2' },\n { key: 'resolve', label: '해소', color: 'success', icon: 'line/check-circle-2' },\n]\n"],"mappings":";AAmCO,IAAM,wBAA6C;AAAA,EACxD,EAAE,KAAK,SAAS,OAAO,4BAAQ,OAAO,YAAY,MAAM,qBAAqB;AAAA,EAC7E,EAAE,KAAK,OAAO,OAAO,gBAAM,OAAO,WAAW,MAAM,YAAY;AAAA,EAC/D,EAAE,KAAK,UAAU,OAAO,gBAAM,OAAO,WAAW,MAAM,gBAAgB;AAAA,EACtE,EAAE,KAAK,WAAW,OAAO,gBAAM,OAAO,WAAW,MAAM,sBAAsB;AAC/E;","names":[]}