@stn-uiux/pub-ui 0.1.57 → 0.1.59

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 (130) 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-7ASY5YJ6.js → chunk-36BAGMYT.js} +3 -3
  6. package/dist/chunk-36BAGMYT.js.map +1 -0
  7. package/dist/{chunk-THCCTVUM.js → chunk-5F63CMM7.js} +11 -1
  8. package/dist/chunk-5F63CMM7.js.map +1 -0
  9. package/dist/{chunk-Q3W7QA7N.js → chunk-75GHU6VI.js} +24 -43
  10. package/dist/chunk-75GHU6VI.js.map +1 -0
  11. package/dist/chunk-A5KLX6NX.js +1 -0
  12. package/dist/{chunk-4C7ABT2K.js → chunk-AE4CKAEK.js} +3 -3
  13. package/dist/chunk-AE4CKAEK.js.map +1 -0
  14. package/dist/{chunk-UPXSNRIJ.js → chunk-AOS3IX4T.js} +2 -2
  15. package/dist/chunk-AOS3IX4T.js.map +1 -0
  16. package/dist/{chunk-XNGYRPZI.js → chunk-CHJATVOT.js} +4 -4
  17. package/dist/{chunk-XNGYRPZI.js.map → chunk-CHJATVOT.js.map} +1 -1
  18. package/dist/{chunk-XZ3JOUX2.js → chunk-EQTZA7I2.js} +2 -14
  19. package/dist/chunk-EQTZA7I2.js.map +1 -0
  20. package/dist/{chunk-P5V6SFR7.js → chunk-H4ZJQ5YW.js} +2 -2
  21. package/dist/{chunk-GR76L7M7.js → chunk-JPILTFLI.js} +5 -5
  22. package/dist/chunk-JPILTFLI.js.map +1 -0
  23. package/dist/{chunk-WRGBYWRV.js → chunk-LKVTW54X.js} +1 -1
  24. package/dist/chunk-LKVTW54X.js.map +1 -0
  25. package/dist/{chunk-OMCBVK57.js → chunk-SKZOEF3H.js} +2 -2
  26. package/dist/chunk-SQJPE6HH.js +12 -0
  27. package/dist/chunk-SQJPE6HH.js.map +1 -0
  28. package/dist/{chunk-V7HD6SBG.js → chunk-XEG4WDUD.js} +7 -18
  29. package/dist/chunk-XEG4WDUD.js.map +1 -0
  30. package/dist/chunk-XPARWRVD.js +9 -0
  31. package/dist/chunk-XPARWRVD.js.map +1 -0
  32. package/dist/{chunk-S4YA4H2S.js → chunk-YBNEQ5LB.js} +2 -2
  33. package/dist/cli.js +15 -15
  34. package/dist/data/index.d.ts +2 -1
  35. package/dist/data/index.js +31 -27
  36. package/dist/data/stnAlertCenter.d.ts +4 -3
  37. package/dist/data/stnAlertCenter.js +1 -1
  38. package/dist/data/stnBreadcrumb.js +3 -3
  39. package/dist/data/stnDatePicker.js +2 -2
  40. package/dist/data/stnDateRangeField.d.ts +1 -1
  41. package/dist/data/stnDateRangeField.js +1 -1
  42. package/dist/data/stnDropdown.d.ts +1 -1
  43. package/dist/data/stnDropdown.js +1 -1
  44. package/dist/data/stnHeader.d.ts +2 -2
  45. package/dist/data/stnHeader.js +3 -3
  46. package/dist/data/stnLayout.d.ts +1 -1
  47. package/dist/data/stnLayout.js +1 -1
  48. package/dist/data/stnPackageVersion.d.ts +2 -2
  49. package/dist/data/stnPackageVersion.js +1 -1
  50. package/dist/data/stnPopup.d.ts +19 -41
  51. package/dist/data/stnPopup.js +1 -1
  52. package/dist/data/stnScroll.d.ts +1 -1
  53. package/dist/data/stnScroll.js +1 -1
  54. package/dist/data/stnSearchRequirement.d.ts +4 -4
  55. package/dist/data/stnSearchRequirement.js +1 -1
  56. package/dist/data/stnSideNavItem.js +3 -3
  57. package/dist/data/stnSizeSemantic.js +1 -1
  58. package/dist/data/stnStatus.d.ts +11 -0
  59. package/dist/data/stnStatus.js +7 -0
  60. package/dist/data/stnStatus.js.map +1 -0
  61. package/dist/data/stnSystemIcons.d.ts +1 -1
  62. package/dist/data/stnSystemIcons.js +2 -2
  63. package/dist/data/stnSystemIconsData.generated.js +1 -1
  64. package/dist/data/stnTree.d.ts +1 -1
  65. package/dist/data/stnTree.js +1 -1
  66. package/dist/index.d.ts +2 -1
  67. package/dist/index.js +31 -27
  68. package/package.json +1 -1
  69. package/styles/@assets/svg/system/line/eye-off.svg +5 -0
  70. package/styles/components/stn-btn.css +10 -1
  71. package/styles/components/stn-date-picker.css +13 -5
  72. package/styles/components/stn-date-range-field.css +153 -16
  73. package/styles/components/stn-dropdown.css +161 -42
  74. package/styles/components/stn-label-prefix.css +356 -0
  75. package/styles/components/stn-pagination.css +113 -5
  76. package/styles/components/stn-popup.css +78 -132
  77. package/styles/components/stn-scroll.css +51 -66
  78. package/styles/components/stn-search-requirement.css +27 -20
  79. package/styles/components/stn-segmented.css +3 -1
  80. package/styles/components/stn-status.css +853 -0
  81. package/styles/components/stn-table.css +32 -5
  82. package/styles/components/stn-text-field.css +396 -374
  83. package/styles/components/stn-toast.css +17 -0
  84. package/styles/components/stn-toggle-button.css +37 -0
  85. package/styles/layouts/stn-container.css +9 -0
  86. package/styles/layouts/stn-layer1-content.css +105 -0
  87. package/styles/patterns/stn-alert-center.css +114 -4
  88. package/styles/patterns/stn-header.css +7 -145
  89. package/styles/patterns/stn-section-side.css +64 -0
  90. package/styles/patterns/stn-tree.css +193 -2
  91. package/styles/style-pub.css +2 -1
  92. package/styles/tokens/stn-breakpoint.css +12 -0
  93. package/styles/tokens/stn-colors-semantic.css +13 -7
  94. package/styles/tokens/stn-radius-semantic.css +4 -3
  95. package/styles/tokens/stn-size-semantic.css +19 -6
  96. package/styles/tokens/stn-size.css +2 -0
  97. package/styles/tokens/stn-spacing-semantic.css +12 -0
  98. package/styles/tokens/stn-typography.css +1 -0
  99. package/dist/chunk-4C7ABT2K.js.map +0 -1
  100. package/dist/chunk-7ASY5YJ6.js.map +0 -1
  101. package/dist/chunk-GR76L7M7.js.map +0 -1
  102. package/dist/chunk-LHV26PEP.js +0 -1
  103. package/dist/chunk-Q3W7QA7N.js.map +0 -1
  104. package/dist/chunk-QT4HHVZH.js +0 -9
  105. package/dist/chunk-QT4HHVZH.js.map +0 -1
  106. package/dist/chunk-THCCTVUM.js.map +0 -1
  107. package/dist/chunk-UPXSNRIJ.js.map +0 -1
  108. package/dist/chunk-V7HD6SBG.js.map +0 -1
  109. package/dist/chunk-WRGBYWRV.js.map +0 -1
  110. package/dist/chunk-XZ3JOUX2.js.map +0 -1
  111. package/dist/chunk-ZI6EF4XD.js +0 -209
  112. package/dist/chunk-ZI6EF4XD.js.map +0 -1
  113. package/styles/@assets/svg/system/3d/print.png +0 -0
  114. package/styles/@assets/svg/system/3d/print_1.png +0 -0
  115. package/styles/@assets/svg/system/3d/server1.png +0 -0
  116. package/styles/@assets/svg/system/3d/server1_1.png +0 -0
  117. package/styles/@assets/svg/system/3d/server2.png +0 -0
  118. package/styles/@assets/svg/system/3d/server2_1.png +0 -0
  119. package/styles/@assets/svg/system/3d/signal.png +0 -0
  120. package/styles/@assets/svg/system/3d/signal_1.png +0 -0
  121. package/styles/@assets/svg/system/3d/wifi.png +0 -0
  122. package/styles/@assets/svg/system/3d/wifi_1.png +0 -0
  123. package/styles/@assets/svg/system/ai_agent.png +0 -0
  124. package/styles/@assets/svg/system/line/input.svg +0 -3
  125. package/styles/@assets/svg/system/line/radio.svg +0 -3
  126. package/styles/components/stn-severity-badge.css +0 -227
  127. /package/dist/{chunk-LHV26PEP.js.map → chunk-A5KLX6NX.js.map} +0 -0
  128. /package/dist/{chunk-P5V6SFR7.js.map → chunk-H4ZJQ5YW.js.map} +0 -0
  129. /package/dist/{chunk-OMCBVK57.js.map → chunk-SKZOEF3H.js.map} +0 -0
  130. /package/dist/{chunk-S4YA4H2S.js.map → chunk-YBNEQ5LB.js.map} +0 -0
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  STN_UI_COMPONENTS,
4
4
  STN_UI_FOUNDATIONS
5
5
  } from "./chunk-N46UQH6L.js";
6
- import "./chunk-LHV26PEP.js";
6
+ import "./chunk-A5KLX6NX.js";
7
7
  import {
8
8
  STN_TOGGLE_BUTTON_PLAYGROUND_DEFAULT,
9
9
  STN_TOGGLE_BUTTON_PLAYGROUND_INTRO,
@@ -34,6 +34,9 @@ import {
34
34
  STN_SPACING_USECASE_INTRO,
35
35
  STN_SPACING_USECASE_ROWS
36
36
  } from "./chunk-AFDRRCY6.js";
37
+ import {
38
+ STN_STATUS_DEMO_STEPS
39
+ } from "./chunk-SQJPE6HH.js";
37
40
  import {
38
41
  STN_TEXT_COLOR_ROWS
39
42
  } from "./chunk-4HUY6TN4.js";
@@ -42,7 +45,7 @@ import {
42
45
  STN_SIDE_NAV_ITEM_INTRO,
43
46
  STN_SIDE_NAV_ITEM_STATES,
44
47
  STN_SIDE_NAV_SUB_ICON
45
- } from "./chunk-P5V6SFR7.js";
48
+ } from "./chunk-H4ZJQ5YW.js";
46
49
  import {
47
50
  STN_SIZE_INTRO,
48
51
  STN_SIZE_ROWS,
@@ -51,7 +54,7 @@ import {
51
54
  import {
52
55
  STN_SIZE_SEMANTIC_INTRO,
53
56
  STN_SIZE_SEMANTIC_ROWS
54
- } from "./chunk-L7DYM4V7.js";
57
+ } from "./chunk-2FHXIAM3.js";
55
58
  import {
56
59
  STN_SLIDER_HTML,
57
60
  STN_SLIDER_INTRO,
@@ -130,7 +133,7 @@ import {
130
133
  import {
131
134
  STN_UI_VERSION,
132
135
  STN_UI_VERSION_LABEL
133
- } from "./chunk-QT4HHVZH.js";
136
+ } from "./chunk-XPARWRVD.js";
134
137
  import {
135
138
  STN_PAGE_ENTER_MOTION_INTRO,
136
139
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -285,6 +288,16 @@ import {
285
288
  STN_GRADE_SEMANTIC_ROWS,
286
289
  STN_GRADE_SOURCE
287
290
  } from "./chunk-E26XJXQY.js";
291
+ import {
292
+ STN_TOAST_DEMO_MSG,
293
+ STN_TOAST_ICON_SLUG,
294
+ STN_TOAST_INTRO,
295
+ STN_TOAST_KINDS,
296
+ STN_TOAST_REACT_USAGE,
297
+ STN_TOAST_SETUP,
298
+ STN_TOAST_TOKEN_ROWS,
299
+ STN_TOAST_USAGE_HTML
300
+ } from "./chunk-SOEBXG3T.js";
288
301
  import {
289
302
  STN_TREE_DEMO,
290
303
  STN_TREE_FIGMA,
@@ -296,7 +309,7 @@ import {
296
309
  STN_TREE_SECTION_SIDE_FIGMA,
297
310
  STN_TREE_USAGE_HTML,
298
311
  describeTreePatternReact
299
- } from "./chunk-UPXSNRIJ.js";
312
+ } from "./chunk-AOS3IX4T.js";
300
313
  import {
301
314
  STN_ALERT_CENTER_DASHBOARD_USAGE,
302
315
  STN_ALERT_CENTER_DASHBOARD_WIDGETS,
@@ -353,16 +366,6 @@ import {
353
366
  STN_TEXT_FIELD_STATES,
354
367
  STN_TEXT_FIELD_USAGE
355
368
  } from "./chunk-NB4NJQYE.js";
356
- import {
357
- STN_TOAST_DEMO_MSG,
358
- STN_TOAST_ICON_SLUG,
359
- STN_TOAST_INTRO,
360
- STN_TOAST_KINDS,
361
- STN_TOAST_REACT_USAGE,
362
- STN_TOAST_SETUP,
363
- STN_TOAST_TOKEN_ROWS,
364
- STN_TOAST_USAGE_HTML
365
- } from "./chunk-SOEBXG3T.js";
366
369
  import {
367
370
  STN_SIDE_NAVIGATION_INTRO,
368
371
  STN_SIDE_NAVIGATION_USAGE,
@@ -374,7 +377,7 @@ import {
374
377
  STN_SCROLL_SPEC,
375
378
  STN_SCROLL_USAGE,
376
379
  STN_SCROLL_USAGE_HTML
377
- } from "./chunk-XNGYRPZI.js";
380
+ } from "./chunk-CHJATVOT.js";
378
381
  import {
379
382
  STN_SEARCH_REQUIREMENT_DEMO_FIELDS,
380
383
  STN_SEARCH_REQUIREMENT_FIGMA,
@@ -384,7 +387,7 @@ import {
384
387
  STN_SEARCH_REQUIREMENT_SPEC,
385
388
  STN_SEARCH_REQUIREMENT_USAGE,
386
389
  STN_SEARCH_REQUIREMENT_USAGE_HTML
387
- } from "./chunk-4C7ABT2K.js";
390
+ } from "./chunk-AE4CKAEK.js";
388
391
  import {
389
392
  STN_POPUP_INTRO,
390
393
  STN_POPUP_INVENTORY_ROWS,
@@ -399,7 +402,7 @@ import {
399
402
  STN_POPUP_USAGE,
400
403
  STN_POPUP_USAGE_HTML,
401
404
  resolveStnPopupSizeFromWidth
402
- } from "./chunk-Q3W7QA7N.js";
405
+ } from "./chunk-75GHU6VI.js";
403
406
  import {
404
407
  STN_ELEVATION_Z_INDEX,
405
408
  STN_LAYER_DIM_MODAL_HTML,
@@ -452,7 +455,7 @@ import {
452
455
  applyLnbSideToModifiers,
453
456
  pubContentAreaClasses,
454
457
  pubLayoutRegionClass
455
- } from "./chunk-7ASY5YJ6.js";
458
+ } from "./chunk-36BAGMYT.js";
456
459
  import {
457
460
  STN_LOADING_SKELETON_COLORS,
458
461
  STN_LOADING_SKELETON_INTRO,
@@ -469,7 +472,7 @@ import {
469
472
  STN_DROPDOWN_MENU_USAGE,
470
473
  STN_DROPDOWN_SIZE_ROWS,
471
474
  STN_DROPDOWN_USAGE
472
- } from "./chunk-WRGBYWRV.js";
475
+ } from "./chunk-LKVTW54X.js";
473
476
  import {
474
477
  STN_HEADER_INTRO,
475
478
  STN_HEADER_PAGE_TITLE_DEMO,
@@ -478,7 +481,7 @@ import {
478
481
  STN_HEADER_USAGE_HTML,
479
482
  STN_HEADER_VARIANT_ROWS,
480
483
  STN_SYSTEM_CHIP_DEMO
481
- } from "./chunk-GR76L7M7.js";
484
+ } from "./chunk-JPILTFLI.js";
482
485
  import {
483
486
  STN_FEEDBACK_BY_KIND,
484
487
  STN_FEEDBACK_SEMANTIC_ROWS,
@@ -494,7 +497,7 @@ import {
494
497
  STN_DATE_PICKER_USAGE,
495
498
  STN_DATE_PICKER_USAGE_HTML,
496
499
  STN_DATE_PICKER_WEEKDAYS
497
- } from "./chunk-S4YA4H2S.js";
500
+ } from "./chunk-YBNEQ5LB.js";
498
501
  import {
499
502
  STN_DATE_RANGE_FIELD_DEMO,
500
503
  STN_DATE_RANGE_FIELD_FIGMA,
@@ -505,7 +508,7 @@ import {
505
508
  STN_DATE_RANGE_FIELD_USAGE,
506
509
  formatStnDateRangeFieldValue,
507
510
  parseStnDateRangeFieldValue
508
- } from "./chunk-THCCTVUM.js";
511
+ } from "./chunk-5F63CMM7.js";
509
512
  import {
510
513
  STN_ALERT_CENTER_DEMO_ALERTS,
511
514
  STN_ALERT_CENTER_DEMO_DEPLOY,
@@ -517,7 +520,7 @@ import {
517
520
  STN_ALERT_CENTER_USAGE,
518
521
  STN_ALERT_CENTER_USAGE_HTML,
519
522
  STN_GNB_ALERT_INTEGRATION_USAGE
520
- } from "./chunk-ZI6EF4XD.js";
523
+ } from "./chunk-2WKT7X65.js";
521
524
  import {
522
525
  STN_INFOMAP_LOGO
523
526
  } from "./chunk-4BPDBOR3.js";
@@ -528,17 +531,17 @@ import {
528
531
  STN_BREADCRUMB_ICON_SRC,
529
532
  STN_BREADCRUMB_INTRO,
530
533
  STN_BREADCRUMB_PARTS
531
- } from "./chunk-OMCBVK57.js";
534
+ } from "./chunk-SKZOEF3H.js";
532
535
  import {
533
536
  STN_SYSTEM_ICON_INTRO,
534
537
  STN_SYSTEM_ICON_ROWS,
535
538
  resolveSystemIconSrcFromName,
536
539
  systemIconPublicPath,
537
540
  systemIconSrc
538
- } from "./chunk-V7HD6SBG.js";
541
+ } from "./chunk-XEG4WDUD.js";
539
542
  import {
540
543
  SYSTEM_ICON_DATA_URLS
541
- } from "./chunk-XZ3JOUX2.js";
544
+ } from "./chunk-EQTZA7I2.js";
542
545
  import {
543
546
  STN_BREAKPOINT_INTRO,
544
547
  STN_BREAKPOINT_MEDIA,
@@ -828,6 +831,7 @@ export {
828
831
  STN_SPACING_USECASE_INTRO,
829
832
  STN_SPACING_USECASE_ROWS,
830
833
  STN_STATIC,
834
+ STN_STATUS_DEMO_STEPS,
831
835
  STN_SYSTEM_CHIP_DEMO,
832
836
  STN_SYSTEM_ICON_INTRO,
833
837
  STN_SYSTEM_ICON_ROWS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stn-uiux/pub-ui",
3
- "version": "0.1.57",
3
+ "version": "0.1.59",
4
4
  "description": "STN Pub design system — tokens, specs, and CSS for product HTML / React apps",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M10 12C10 12.5304 10.2107 13.0391 10.5858 13.4142C10.9609 13.7893 11.4696 14 12 14C12.5304 14 13.0391 13.7893 13.4142 13.4142C13.7893 13.0391 14 12.5304 14 12C14 11.4696 13.7893 10.9609 13.4142 10.5858C13.0391 10.2107 12.5304 10 12 10C11.4696 10 10.9609 10.2107 10.5858 10.5858C10.2107 10.9609 10 11.4696 10 12Z" stroke="#40474F" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M21 12C18.6 16 15.6 18 12 18C8.4 18 5.4 16 3 12C5.4 8 8.4 6 12 6C15.6 6 18.6 8 21 12Z" stroke="#40474F" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M3 3L21 21" stroke="#40474F" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -120,7 +120,7 @@
120
120
  --stn-btn-font-weight: var(--stn-btn-font-weight-xl);
121
121
  }
122
122
 
123
- /* LG (44px) */
123
+ /* LG (40px) — 8px 그리드 표준 통일 스케일 */
124
124
  .stn-btn.lg {
125
125
  --stn-btn-height: var(--stn-btn-height-lg);
126
126
  --stn-btn-min-width: var(--stn-btn-min-width-lg);
@@ -185,6 +185,15 @@
185
185
  min-width: 0;
186
186
  }
187
187
 
188
+ /* Width Presets (.w80 ~ .w200) — min-width 기반 */
189
+ .stn-btn.w80 { min-width: var(--stn-size-80, 80px); }
190
+ .stn-btn.w100 { min-width: var(--stn-size-100, 100px); }
191
+ .stn-btn.w120 { min-width: var(--stn-size-120, 120px); }
192
+ .stn-btn.w140 { min-width: var(--stn-size-140, 140px); }
193
+ .stn-btn.w160 { min-width: var(--stn-size-160, 160px); }
194
+ .stn-btn.w180 { min-width: var(--stn-size-180, 180px); }
195
+ .stn-btn.w200 { min-width: var(--stn-size-200, 200px); }
196
+
188
197
  /* —— Shapes (Radius) —— */
189
198
  .stn-btn.square {
190
199
  border-radius: var(--stn-radius-btn-square);
@@ -198,21 +198,29 @@
198
198
  display: flex;
199
199
  flex: 1;
200
200
  min-width: 0;
201
+ width: 100%;
201
202
  height: calc(var(--stn-size-28) * 6);
202
203
  max-height: calc(var(--stn-size-28) * 6);
203
204
  overflow: hidden;
204
205
  }
205
206
 
206
- .stn-date-picker-time__scroll {
207
- flex: 1;
208
- height: calc(var(--stn-size-28) * 6);
207
+ /* StnScroll이 variant="arrows"일 때 생성하는 wrapper(.stn-scroll-shell)도 1/3씩 균등 확장 */
208
+ .stn-date-picker-time__columns > .stn-scroll-shell {
209
+ flex: 1 1 0%;
210
+ min-width: 0;
211
+ height: 100%;
209
212
  border-left: var(--stn-size-1) solid var(--calendar-border);
210
213
  }
211
214
 
212
- .stn-date-picker-time__scroll:first-child {
215
+ .stn-date-picker-time__columns > .stn-scroll-shell:first-child {
213
216
  border-left: none;
214
217
  }
215
218
 
219
+ .stn-date-picker-time__scroll {
220
+ width: 100%;
221
+ height: calc(var(--stn-size-28) * 6);
222
+ }
223
+
216
224
  .stn-date-picker-time__column {
217
225
  margin: var(--stn-space-0);
218
226
  padding: var(--stn-space-0);
@@ -223,7 +231,7 @@
223
231
  display: block;
224
232
  width: 100%;
225
233
  margin: var(--stn-space-0);
226
- padding: var(--stn-space-4) var(--stn-space-0);
234
+ padding: var(--stn-space-4) var(--stn-space-4); /* 좌우 패딩 추가 — 숫자 가독성 개선 */
227
235
  border: none;
228
236
  background: transparent;
229
237
  font-size: var(--stn-text-body-small-size);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * StnDateRangeField — Infomap datetime range trigger (Figma 40000042:186907)
3
- * S 24px · M 32px · L 40px — TextField / Dropdown과 동일 스케일
3
+ * sm 24px · md 32px · lg 40px · xl 56px — 8px 그리드 표준 스케일 (TextField / Dropdown과 동일)
4
4
  */
5
5
 
6
6
  :root {
@@ -35,6 +35,22 @@ button.stn-date-range-field:focus-visible {
35
35
  border: var(--stn-input-focus);
36
36
  }
37
37
 
38
+ /* Variant: transparent (테두리·배경 없음 — StnLabelPrefix 등 래퍼 내부 조합용) */
39
+ button.stn-date-range-field.transparent {
40
+ border: none;
41
+ background-color: transparent;
42
+ }
43
+
44
+ button.stn-date-range-field.transparent:focus-visible {
45
+ border: none;
46
+ outline: none;
47
+ }
48
+
49
+ button.stn-date-range-field.transparent[aria-invalid='true'],
50
+ button.stn-date-range-field.transparent.stn-date-range-field--invalid {
51
+ border-bottom: var(--stn-size-1) solid var(--stn-feedback-error);
52
+ }
53
+
38
54
  button.stn-date-range-field[aria-invalid='true'],
39
55
  button.stn-date-range-field.stn-date-range-field--invalid {
40
56
  border-color: var(--stn-feedback-error);
@@ -50,15 +66,19 @@ button.stn-date-range-field.w100p {
50
66
  align-items: center;
51
67
  min-width: 0;
52
68
  max-width: 100%;
69
+ overflow: hidden;
53
70
  }
54
71
 
55
72
  .stn-date-range-field__text {
56
73
  display: inline-flex;
57
74
  align-items: center;
58
75
  min-width: 0;
76
+ max-width: 100%;
59
77
  white-space: nowrap;
60
78
  font-weight: var(--stn-font-weight-medium);
61
79
  color: var(--stn-input-fg);
80
+ overflow: hidden;
81
+ text-overflow: ellipsis;
62
82
  }
63
83
 
64
84
  .stn-date-range-field__value {
@@ -88,10 +108,10 @@ button.stn-date-range-field.w100p {
88
108
  color: var(--stn-input-placeholder);
89
109
  }
90
110
 
91
- /* S — 24px */
111
+ /* sm — 24px */
92
112
  button.stn-date-range-field.sm {
93
- min-width: var(--stn-size-280);
94
- height: var(--stn-size-24);
113
+ min-width: min(100%, var(--stn-date-range-field-min-width-sm));
114
+ height: var(--stn-date-range-field-height-sm);
95
115
  padding: var(--stn-space-0) var(--stn-space-10);
96
116
  border-radius: var(--stn-radius-input-sm);
97
117
  font-size: var(--stn-text-body-small-size);
@@ -108,14 +128,14 @@ button.stn-date-range-field.sm .stn-date-range-field__text {
108
128
  }
109
129
 
110
130
  button.stn-date-range-field.sm .stn-date-range-field__icon {
111
- width: var(--stn-size-14);
112
- height: var(--stn-size-14);
131
+ width: var(--stn-date-range-field-icon-size-sm);
132
+ height: var(--stn-date-range-field-icon-size-sm);
113
133
  }
114
134
 
115
- /* M — 32px (Figma) */
135
+ /* md — 32px (Figma 기본값) */
116
136
  button.stn-date-range-field.md {
117
- min-width: calc(var(--stn-size-320) + var(--stn-size-20));
118
- height: var(--stn-size-32);
137
+ min-width: min(100%, var(--stn-date-range-field-min-width-md));
138
+ height: var(--stn-date-range-field-height-md);
119
139
  padding: var(--stn-space-0) var(--stn-space-12);
120
140
  border-radius: var(--stn-radius-input-md);
121
141
  font-size: var(--stn-text-body-small-size);
@@ -132,14 +152,14 @@ button.stn-date-range-field.md .stn-date-range-field__text {
132
152
  }
133
153
 
134
154
  button.stn-date-range-field.md .stn-date-range-field__icon {
135
- width: var(--stn-size-16);
136
- height: var(--stn-size-16);
155
+ width: var(--stn-date-range-field-icon-size-md);
156
+ height: var(--stn-date-range-field-icon-size-md);
137
157
  }
138
158
 
139
- /* L — 40px */
159
+ /* lg — 40px */
140
160
  button.stn-date-range-field.lg {
141
- min-width: var(--stn-size-360);
142
- height: var(--stn-size-40);
161
+ min-width: min(100%, var(--stn-date-range-field-min-width-lg));
162
+ height: var(--stn-date-range-field-height-lg);
143
163
  padding: var(--stn-space-0) var(--stn-space-12);
144
164
  border-radius: var(--stn-radius-input-lg);
145
165
  font-size: var(--stn-text-body-medium-size);
@@ -156,6 +176,123 @@ button.stn-date-range-field.lg .stn-date-range-field__text {
156
176
  }
157
177
 
158
178
  button.stn-date-range-field.lg .stn-date-range-field__icon {
159
- width: var(--stn-size-16);
160
- height: var(--stn-size-16);
179
+ width: var(--stn-date-range-field-icon-size-lg);
180
+ height: var(--stn-date-range-field-icon-size-lg);
181
+ }
182
+
183
+ /* xl — 56px */
184
+ button.stn-date-range-field.xl {
185
+ min-width: min(100%, var(--stn-date-range-field-min-width-xl));
186
+ height: var(--stn-date-range-field-height-xl);
187
+ padding: var(--stn-space-0) var(--stn-space-16);
188
+ border-radius: var(--stn-radius-input-lg);
189
+ font-size: var(--stn-text-body-medium-size);
190
+ line-height: var(--stn-line-height-px-54);
191
+ }
192
+
193
+ button.stn-date-range-field.xl .stn-date-range-field__inner {
194
+ gap: var(--stn-space-10);
195
+ }
196
+
197
+ button.stn-date-range-field.xl .stn-date-range-field__text {
198
+ gap: var(--stn-space-12);
199
+ font-size: var(--stn-text-body-medium-size);
200
+ }
201
+
202
+ button.stn-date-range-field.xl .stn-date-range-field__icon {
203
+ width: var(--stn-date-range-field-icon-size-xl);
204
+ height: var(--stn-date-range-field-icon-size-xl);
205
+ }
206
+
207
+ /* ==========================================================================
208
+ Width Presets & Label Wrap Layout
209
+ ========================================================================== */
210
+ :is(.stn-date-range-field, .stn-date-range-field-wrap):is(.full, .stn-date-range-field--full, .w100p) {
211
+ width: 100%;
212
+ }
213
+
214
+ .stn-date-range-field-wrap {
215
+ box-sizing: border-box;
216
+ display: inline-flex;
217
+ flex-direction: column;
218
+ align-items: stretch;
219
+ flex-shrink: 0;
220
+ max-width: 100%;
221
+ vertical-align: top;
222
+ }
223
+
224
+ .stn-date-range-field-wrap button.stn-date-range-field {
225
+ width: 100%;
226
+ min-width: 0;
227
+ max-width: 100%;
228
+ }
229
+
230
+ .stn-date-range-field-wrap__body {
231
+ display: inline-flex;
232
+ flex-direction: column;
233
+ flex: 1 1 auto;
234
+ min-width: 0;
235
+ }
236
+
237
+ .stn-date-range-field-wrap--row {
238
+ flex-direction: row;
239
+ align-items: center;
240
+ gap: var(--stn-space-8);
241
+ }
242
+
243
+ .stn-date-range-field-wrap--row .stn-date-range-field-wrap__body {
244
+ width: auto;
245
+ flex: 1 1 auto;
246
+ }
247
+
248
+ .stn-date-range-field-wrap--col {
249
+ flex-direction: column;
250
+ gap: var(--stn-space-6);
251
+ }
252
+
253
+ .stn-date-range-field-wrap--col .stn-date-range-field-wrap__body {
254
+ width: 100%;
255
+ }
256
+
257
+ .stn-date-range-field__label {
258
+ box-sizing: border-box;
259
+ display: inline-flex;
260
+ align-items: center;
261
+ gap: var(--stn-space-4);
262
+ font-family: var(--stn-font-body, inherit);
263
+ font-size: var(--stn-text-body-small-size);
264
+ font-weight: var(--stn-font-weight-medium);
265
+ color: var(--stn-text-primary);
266
+ line-height: 1;
267
+ white-space: nowrap;
268
+ user-select: none;
269
+ cursor: pointer;
270
+ flex-shrink: 0;
271
+ }
272
+
273
+ .stn-date-range-field__label-icon {
274
+ display: inline-flex;
275
+ align-items: center;
276
+ justify-content: center;
277
+ color: var(--stn-text-secondary);
278
+ }
279
+
280
+ .stn-date-range-field__required {
281
+ color: var(--stn-feedback-error);
282
+ font-weight: var(--stn-font-weight-bold);
283
+ line-height: 1;
284
+ margin-inline-start: var(--stn-space-2);
285
+ }
286
+
287
+ .stn-date-range-field__helper {
288
+ font-size: var(--stn-text-body-small-size);
289
+ line-height: var(--stn-line-height-tight);
290
+ color: var(--stn-text-secondary);
291
+ word-break: break-word;
292
+ white-space: nowrap;
293
+ margin-top: var(--stn-space-4);
294
+ }
295
+
296
+ .stn-date-range-field__helper--error {
297
+ color: var(--stn-feedback-error);
161
298
  }