@stn-uiux/pub-ui 0.1.57 → 0.1.58

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 (79) hide show
  1. package/dist/{chunk-L7DYM4V7.js → chunk-2FHXIAM3.js} +10 -28
  2. package/dist/{chunk-L7DYM4V7.js.map → chunk-2FHXIAM3.js.map} +1 -1
  3. package/dist/chunk-2WKT7X65.js +407 -0
  4. package/dist/chunk-2WKT7X65.js.map +1 -0
  5. package/dist/{chunk-THCCTVUM.js → chunk-5F63CMM7.js} +11 -1
  6. package/dist/chunk-5F63CMM7.js.map +1 -0
  7. package/dist/{chunk-Q3W7QA7N.js → chunk-75GHU6VI.js} +24 -43
  8. package/dist/chunk-75GHU6VI.js.map +1 -0
  9. package/dist/{chunk-4C7ABT2K.js → chunk-AE4CKAEK.js} +3 -3
  10. package/dist/chunk-AE4CKAEK.js.map +1 -0
  11. package/dist/{chunk-P5V6SFR7.js → chunk-EDXSK54U.js} +2 -2
  12. package/dist/{chunk-GR76L7M7.js → chunk-EQVFEZEQ.js} +2 -2
  13. package/dist/{chunk-OMCBVK57.js → chunk-J46EPVSY.js} +2 -2
  14. package/dist/{chunk-WRGBYWRV.js → chunk-LKVTW54X.js} +1 -1
  15. package/dist/chunk-LKVTW54X.js.map +1 -0
  16. package/dist/{chunk-V7HD6SBG.js → chunk-PVF77NHZ.js} +5 -3
  17. package/dist/{chunk-V7HD6SBG.js.map → chunk-PVF77NHZ.js.map} +1 -1
  18. package/dist/{chunk-XZ3JOUX2.js → chunk-TDLGKV4C.js} +2 -1
  19. package/dist/{chunk-XZ3JOUX2.js.map → chunk-TDLGKV4C.js.map} +1 -1
  20. package/dist/chunk-XPARWRVD.js +9 -0
  21. package/dist/chunk-XPARWRVD.js.map +1 -0
  22. package/dist/{chunk-S4YA4H2S.js → chunk-YBNEQ5LB.js} +2 -2
  23. package/dist/cli.js +9 -9
  24. package/dist/data/index.d.ts +1 -1
  25. package/dist/data/index.js +13 -13
  26. package/dist/data/stnAlertCenter.d.ts +4 -3
  27. package/dist/data/stnAlertCenter.js +1 -1
  28. package/dist/data/stnBreadcrumb.js +3 -3
  29. package/dist/data/stnDatePicker.js +2 -2
  30. package/dist/data/stnDateRangeField.d.ts +1 -1
  31. package/dist/data/stnDateRangeField.js +1 -1
  32. package/dist/data/stnDropdown.d.ts +1 -1
  33. package/dist/data/stnDropdown.js +1 -1
  34. package/dist/data/stnHeader.js +3 -3
  35. package/dist/data/stnPackageVersion.d.ts +2 -2
  36. package/dist/data/stnPackageVersion.js +1 -1
  37. package/dist/data/stnPopup.d.ts +19 -41
  38. package/dist/data/stnPopup.js +1 -1
  39. package/dist/data/stnSearchRequirement.d.ts +4 -4
  40. package/dist/data/stnSearchRequirement.js +1 -1
  41. package/dist/data/stnSideNavItem.js +3 -3
  42. package/dist/data/stnSizeSemantic.js +1 -1
  43. package/dist/data/stnSystemIcons.js +2 -2
  44. package/dist/data/stnSystemIconsData.generated.js +1 -1
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +13 -13
  47. package/package.json +1 -1
  48. package/styles/@assets/svg/system/line/eye-off.svg +5 -0
  49. package/styles/components/stn-btn.css +1 -1
  50. package/styles/components/stn-date-picker.css +13 -5
  51. package/styles/components/stn-date-range-field.css +153 -16
  52. package/styles/components/stn-dropdown.css +150 -38
  53. package/styles/components/stn-label-prefix.css +319 -0
  54. package/styles/components/stn-popup.css +78 -132
  55. package/styles/components/stn-search-requirement.css +27 -20
  56. package/styles/components/stn-text-field.css +401 -374
  57. package/styles/components/stn-toast.css +17 -0
  58. package/styles/components/stn-toggle-button.css +37 -0
  59. package/styles/patterns/stn-alert-center.css +85 -0
  60. package/styles/patterns/stn-tree.css +157 -0
  61. package/styles/style-pub.css +1 -0
  62. package/styles/tokens/stn-colors-semantic.css +7 -1
  63. package/styles/tokens/stn-radius-semantic.css +3 -2
  64. package/styles/tokens/stn-size-semantic.css +19 -6
  65. package/styles/tokens/stn-size.css +2 -0
  66. package/styles/tokens/stn-spacing-semantic.css +12 -0
  67. package/styles/tokens/stn-typography.css +1 -0
  68. package/dist/chunk-4C7ABT2K.js.map +0 -1
  69. package/dist/chunk-Q3W7QA7N.js.map +0 -1
  70. package/dist/chunk-QT4HHVZH.js +0 -9
  71. package/dist/chunk-QT4HHVZH.js.map +0 -1
  72. package/dist/chunk-THCCTVUM.js.map +0 -1
  73. package/dist/chunk-WRGBYWRV.js.map +0 -1
  74. package/dist/chunk-ZI6EF4XD.js +0 -209
  75. package/dist/chunk-ZI6EF4XD.js.map +0 -1
  76. /package/dist/{chunk-P5V6SFR7.js.map → chunk-EDXSK54U.js.map} +0 -0
  77. /package/dist/{chunk-GR76L7M7.js.map → chunk-EQVFEZEQ.js.map} +0 -0
  78. /package/dist/{chunk-OMCBVK57.js.map → chunk-J46EPVSY.js.map} +0 -0
  79. /package/dist/{chunk-S4YA4H2S.js.map → chunk-YBNEQ5LB.js.map} +0 -0
@@ -40,9 +40,9 @@
40
40
  flex-direction: column;
41
41
  overflow: hidden;
42
42
  box-sizing: border-box;
43
- background-color: var(--stn-pop-surface, var(--box-bg));
44
- border: 1px solid var(--stn-pop-border, var(--border));
45
- border-radius: var(--stn-radius-pop-wrap, var(--stn-radius-10));
43
+ background-color: var(--stn-pop-surface);
44
+ border: 1px solid var(--stn-pop-border);
45
+ border-radius: var(--stn-radius-pop-wrap, var(--stn-radius-8));
46
46
  box-shadow: var(--stn-pop-shadow);
47
47
  }
48
48
 
@@ -52,31 +52,52 @@
52
52
  display: flex;
53
53
  flex-direction: column;
54
54
  justify-content: center;
55
- min-height: var(--stn-pop-header-height);
56
- height: var(--stn-pop-header-height);
57
- padding: 8px 44px 8px 16px;
55
+ min-height: var(--stn-pop-header-height, var(--stn-size-56));
56
+ height: auto;
57
+ padding: 12px 48px 12px 20px;
58
58
  margin: 0;
59
- border-bottom: none;
59
+ border-bottom: 1px solid var(--stn-pop-divider);
60
+ }
61
+
62
+ .stn-pop__head-row {
63
+ display: flex;
64
+ align-items: center;
65
+ gap: var(--stn-space-8, 8px);
66
+ flex-wrap: wrap;
60
67
  }
61
68
 
62
69
  .stn-pop__head h4 {
63
70
  margin: 0;
64
- color: var(--stn-pop-title, var(--font));
71
+ color: var(--stn-pop-title);
65
72
  font-family: var(--stn-font-body);
66
73
  font-size: var(--stn-text-title-medium-size);
67
- line-height: 1;
74
+ line-height: var(--stn-line-height-tight, 1.25);
68
75
  font-weight: var(--stn-font-weight-semibold);
69
76
  letter-spacing: 0;
70
77
  }
71
78
 
79
+ .stn-pop__subtitle {
80
+ margin: 4px 0 0 0;
81
+ font-family: var(--stn-font-body);
82
+ font-size: var(--stn-text-body-small-size);
83
+ color: var(--stn-text-subtle);
84
+ line-height: var(--stn-line-height-normal, 1.5);
85
+ }
86
+
72
87
  /* Body */
73
88
  .stn-pop__body {
74
89
  flex: 1 1 auto;
75
90
  min-height: 0;
76
- padding: 0 8px;
91
+ padding: var(--stn-space-20, 20px);
77
92
  overflow: auto;
78
93
  -webkit-overflow-scrolling: touch;
79
94
  background: transparent;
95
+ color: var(--stn-text-primary);
96
+ box-sizing: border-box;
97
+ }
98
+
99
+ .stn-pop__body--no-padding {
100
+ padding: 0;
80
101
  }
81
102
 
82
103
  /* 본문 레이아웃 — 배경은 .stn-pop__panel 만 (내부 투명) */
@@ -88,11 +109,11 @@
88
109
  box-shadow: none !important;
89
110
  }
90
111
 
91
- /* Close button — Icon Button xsmall (16) · top 10 · right 8 */
112
+ /* Close button — centered vertically in 56px header (top 14, right 16) */
92
113
  .stn-pop__close {
93
114
  position: absolute;
94
- top: 10px;
95
- right: 8px;
115
+ top: 14px;
116
+ right: 16px;
96
117
  box-sizing: border-box;
97
118
  width: var(--stn-pop-close-size) !important;
98
119
  height: var(--stn-pop-close-size) !important;
@@ -100,11 +121,11 @@
100
121
  min-height: var(--stn-pop-close-size);
101
122
  padding: 0;
102
123
  border: none;
103
- border-radius: var(--stn-radius-4, 4px);
124
+ border-radius: var(--stn-radius-sm);
104
125
  background-color: transparent;
105
126
  background-image: none;
106
127
  opacity: 1;
107
- color: var(--stn-pop-title, var(--colunm-font));
128
+ color: var(--stn-pop-title);
108
129
  transition: background-color 0.15s ease, color 0.15s ease;
109
130
  }
110
131
 
@@ -120,7 +141,7 @@
120
141
  background-image: none;
121
142
  -webkit-mask: none;
122
143
  mask: none;
123
- color: var(--stn-pop-title, var(--colunm-font));
144
+ color: var(--stn-pop-title);
124
145
  }
125
146
 
126
147
  .stn-pop__close:not(.icon, .stn-btn--icon):not(.stn-icon-btn--with-glyph)::before {
@@ -178,28 +199,17 @@
178
199
  --stn-pop-active-width: var(--stn-pop-width-xl);
179
200
  }
180
201
 
181
- .stn-pop--xxl {
182
- --stn-pop-active-width: var(--stn-pop-width-xxl);
183
- }
184
-
185
- .stn-pop--2xl {
186
- --stn-pop-active-width: var(--stn-pop-width-2xl);
187
- }
188
-
189
202
  .stn-pop--xs .stn-pop__cont,
190
203
  .stn-pop--sm .stn-pop__cont,
191
204
  .stn-pop--md .stn-pop__cont,
192
205
  .stn-pop--lg .stn-pop__cont,
193
206
  .stn-pop--xl .stn-pop__cont,
194
- .stn-pop--xxl .stn-pop__cont,
195
- .stn-pop--2xl .stn-pop__cont,
196
- .stn-pop:not(.stn-pop--full):not(.stn-pop--full-bleed) .stn-pop__cont {
207
+ .stn-pop:not(.stn-pop--full) .stn-pop__cont {
197
208
  width: min(var(--stn-pop-active-width), 100%, calc(100vw - var(--stn-pop-gutter) * 2));
198
209
  }
199
210
 
200
- /* Full bleed — 좌우 gutter만 남기고 가로 전체 */
201
- .stn-pop--full .stn-pop__cont,
202
- .stn-pop--full-bleed .stn-pop__cont {
211
+ /* Full — 좌우 gutter만 남기고 가로 전체 */
212
+ .stn-pop--full .stn-pop__cont {
203
213
  width: calc(100vw - var(--stn-pop-gutter) * 2);
204
214
  max-width: none;
205
215
  }
@@ -303,127 +313,63 @@
303
313
  pointer-events: auto;
304
314
  }
305
315
 
306
- /* Footer — 64px · center · gap 8 */
316
+ /* Footer — 56px · gap 8 · border-top */
307
317
  .stn-pop__actions {
308
318
  display: flex;
309
319
  flex-wrap: wrap;
310
320
  align-items: center;
311
- justify-content: center;
312
- gap: 8px;
321
+ justify-content: flex-end;
322
+ gap: var(--stn-space-8, 8px);
313
323
  box-sizing: border-box;
314
- min-height: var(--stn-pop-footer-height);
324
+ min-height: var(--stn-pop-footer-height, var(--stn-size-56));
315
325
  margin-top: 0;
316
- padding: 8px;
317
- border-top: none;
318
- }
319
-
320
- /* —— Map node dialog (dashboard floating panel, not fullscreen dim) —— */
321
- .stn-pop.node_dialog {
322
- display: block !important;
323
- position: absolute !important;
324
- top: 50% !important;
325
- left: 50% !important;
326
- right: auto !important;
327
- bottom: auto !important;
328
- transform: translate(-50%, -50%) !important;
329
- width: auto;
330
- height: auto;
331
- margin: 0;
332
- padding: 0;
333
- background: transparent !important;
334
- -webkit-backdrop-filter: none !important;
335
- backdrop-filter: none !important;
336
- overflow: visible;
337
- z-index: var(--stn-elevation-z-2, 200);
338
- pointer-events: none;
339
- }
340
-
341
- .stn-pop.node_dialog .stn-pop__panel,
342
- .stn-pop.node_dialog .stn-pop__close,
343
- .stn-pop.node_dialog .stn-pop__actions,
344
- .stn-pop.node_dialog .stn-pop__actions button {
345
- pointer-events: auto;
346
- }
347
-
348
- .stn-pop.node_dialog .stn-pop__cont {
349
- width: 260px;
350
- margin: 0;
351
- max-height: none;
326
+ padding: 12px 20px;
327
+ border-top: 1px solid var(--stn-pop-divider);
328
+ background-color: var(--stn-pop-surface);
352
329
  }
353
330
 
354
- /* 맵 노드 패널 — glass 면은 stn-pub-elevation-apply(맵 스코프) */
355
- .stn-pop.node_dialog .stn-pop__panel {
356
- padding: 16px 16px 12px;
357
- color: var(--font);
358
- border-radius: var(--stn-radius-pop-wrap, 10px);
359
- border: none;
360
- box-shadow: none;
361
- overflow: visible;
362
- }
363
-
364
- .stn-pop.node_dialog .stn-pop__head {
365
- min-height: 0;
366
- height: auto;
367
- padding: 0 44px 12px 0;
368
- margin: 0;
369
- border-bottom: 1px solid var(--stn-pop-divider);
370
- }
371
-
372
- .stn-pop.node_dialog .stn-pop__head h4 {
373
- margin: 0;
374
- font-size: var(--stn-text-title-medium-size);
375
- font-weight: var(--stn-font-weight-semibold);
376
- line-height: var(--stn-line-height-tight);
377
- color: var(--font);
378
- letter-spacing: -0.02em;
331
+ .stn-pop__actions--right {
332
+ justify-content: flex-end;
379
333
  }
380
334
 
381
- .stn-pop.node_dialog .stn-pop__body {
382
- padding: 12px 0 0;
335
+ .stn-pop__actions--center {
336
+ justify-content: center;
383
337
  }
384
338
 
385
- .stn-pop.node_dialog .stn-pop__close {
386
- top: 12px;
387
- right: 12px;
339
+ .stn-pop__actions--between {
340
+ justify-content: space-between;
388
341
  }
389
342
 
390
- .stn-pop.node_dialog .stn-pop__actions {
391
- min-height: 0;
392
- margin-top: 16px;
393
- padding: 12px 0 0;
394
- border-top: 1px solid var(--stn-pop-border, var(--border));
395
- justify-content: center;
343
+ /* —— Master-Detail Split Layout (.stn-pop-split) —— */
344
+ .stn-pop-split {
345
+ display: flex;
346
+ gap: var(--stn-space-20, 20px);
347
+ min-height: 400px;
348
+ height: 100%;
349
+ box-sizing: border-box;
396
350
  }
397
351
 
398
- /* 노드 목록 등급 태그 */
399
- .stn-pop.node_dialog .equip-search-table .tag {
400
- width: 28px;
401
- height: 16px;
402
- display: inline-flex;
403
- align-items: center;
404
- justify-content: center;
352
+ .stn-pop-split__aside {
353
+ width: var(--stn-pop-split-aside-width, 280px);
354
+ min-width: var(--stn-pop-split-aside-width, 280px);
355
+ max-width: 320px;
405
356
  flex-shrink: 0;
406
- font-family: var(--stn-font-body);
407
- font-size: var(--stn-text-gnb-alert-tag-size);
408
- font-weight: var(--stn-text-gnb-alert-tag-weight);
409
- border-radius: 4px;
410
- color: var(--stn-static-white);
411
- text-align: center;
412
- line-height: 1;
413
- }
414
-
415
- .stn-pop.node_dialog .equip-search-table .tag.critic {
416
- background: var(--stn-grade-critical);
357
+ border-right: 1px solid var(--stn-pop-divider);
358
+ padding-right: var(--stn-space-16, 16px);
359
+ display: flex;
360
+ flex-direction: column;
361
+ overflow-y: auto;
362
+ box-sizing: border-box;
417
363
  }
418
364
 
419
- .stn-pop.node_dialog .equip-search-table .tag.major {
420
- background: var(--stn-grade-major);
365
+ .stn-pop-split__main {
366
+ flex: 1 1 0;
367
+ min-width: 0;
368
+ display: flex;
369
+ flex-direction: column;
370
+ gap: var(--stn-space-16, 16px);
371
+ overflow-y: auto;
372
+ box-sizing: border-box;
421
373
  }
422
374
 
423
- .stn-pop.node_dialog .equip-search-table .tag.minor {
424
- background: var(--stn-grade-minor);
425
- }
426
375
 
427
- .stn-pop.node_dialog .equip-search-table .tag.warning {
428
- background: var(--stn-grade-warning);
429
- }
@@ -11,37 +11,43 @@
11
11
  display: flex;
12
12
  flex-wrap: wrap;
13
13
  align-items: center;
14
- gap: 20px 16px;
14
+ row-gap: var(--stn-search-requirement-gap-row);
15
+ column-gap: var(--stn-search-requirement-gap-col);
15
16
  box-sizing: border-box;
16
17
  width: 100%;
17
- padding: 8px 16px;
18
- border: 1px solid var(--stn-search-requirement-border);
19
- border-radius: var(--stn-radius-8, 8px);
20
- background: var(--stn-search-requirement-bg, transparent);
21
- box-shadow: var(--stn-search-requirement-shadow, var(--stn-shadow-1));
18
+ padding: var(--stn-search-requirement-padding);
19
+ border: var(--stn-search-requirement-border-width) solid var(--stn-search-requirement-border);
20
+ border-radius: var(--stn-search-requirement-radius);
21
+ background: var(--stn-search-requirement-bg);
22
+ box-shadow: var(--stn-search-requirement-shadow);
22
23
  }
23
24
 
24
25
  .stn-search-requirement__fields {
25
26
  display: flex;
26
27
  flex-wrap: wrap;
27
28
  align-items: center;
28
- gap: 16px;
29
+ gap: var(--stn-search-requirement-fields-gap);
29
30
  min-width: 0;
31
+ max-width: 100%;
32
+ }
33
+
34
+ .stn-search-requirement__fields > * {
35
+ max-width: 100%;
30
36
  }
31
37
 
32
38
  .stn-search-requirement__field {
33
39
  display: inline-flex;
34
40
  align-items: center;
35
- gap: 8px;
41
+ gap: var(--stn-search-requirement-field-gap);
36
42
  min-width: 0;
37
43
  }
38
44
 
39
45
  .stn-search-requirement__label {
40
46
  flex-shrink: 0;
41
- margin: 0;
47
+ margin: var(--stn-space-0);
42
48
  font-size: var(--stn-text-body-medium-size);
43
- font-weight: var(--stn-font-weight-semibold, 600);
44
- line-height: 1;
49
+ font-weight: var(--stn-font-weight-semibold);
50
+ line-height: var(--stn-line-height-none, 1);
45
51
  color: var(--stn-search-requirement-label);
46
52
  white-space: nowrap;
47
53
  }
@@ -50,22 +56,23 @@
50
56
  min-width: 0;
51
57
  }
52
58
 
53
- /* Compact variant (8px 12px) */
54
- .stn-search-requirement--compact {
55
- padding: 6px 12px;
56
- gap: 12px 12px;
59
+ /* Compact variant (.compact / .stn-search-requirement--compact) */
60
+ .stn-search-requirement:is(.compact, .stn-search-requirement--compact) {
61
+ padding: var(--stn-search-requirement-compact-padding);
62
+ gap: var(--stn-search-requirement-compact-gap);
57
63
  }
58
64
 
59
- .stn-search-requirement--compact .stn-search-requirement__fields {
60
- gap: 12px;
65
+ .stn-search-requirement:is(.compact, .stn-search-requirement--compact) .stn-search-requirement__fields {
66
+ gap: var(--stn-search-requirement-compact-gap);
61
67
  }
62
68
 
63
69
  /* Vertical Divider between Field Groups */
64
70
  .stn-search-requirement__divider {
65
71
  display: inline-block;
66
- width: 1px;
67
- height: 18px;
68
- margin: 0 4px;
72
+ width: var(--stn-search-requirement-divider-width);
73
+ height: var(--stn-search-requirement-divider-height);
74
+ margin-inline: var(--stn-search-requirement-divider-margin-x);
75
+ margin-block: var(--stn-space-0);
69
76
  background-color: var(--stn-border-subtle);
70
77
  flex-shrink: 0;
71
78
  align-self: center;