@stn-uiux/pub-ui 0.1.85 → 0.1.87

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 (58) hide show
  1. package/dist/{chunk-BYGKJSDN.js → chunk-6HRKKRTT.js} +18 -3
  2. package/dist/chunk-6HRKKRTT.js.map +1 -0
  3. package/dist/{chunk-YN774RCQ.js → chunk-6TQ4O7BK.js} +2 -2
  4. package/dist/chunk-7OZGRHFD.js +15 -0
  5. package/dist/chunk-7OZGRHFD.js.map +1 -0
  6. package/dist/{chunk-W7K3FSAX.js → chunk-F5WWHWEU.js} +9 -1
  7. package/dist/chunk-F5WWHWEU.js.map +1 -0
  8. package/dist/chunk-I2Y7E4TU.js +15 -0
  9. package/dist/chunk-I2Y7E4TU.js.map +1 -0
  10. package/dist/chunk-PXTPAYC3.js +1 -0
  11. package/dist/{chunk-SOEBXG3T.js → chunk-U66BCO23.js} +2 -2
  12. package/dist/chunk-ZGYPJEU3.js +9 -0
  13. package/dist/chunk-ZGYPJEU3.js.map +1 -0
  14. package/dist/cli.js +7 -7
  15. package/dist/data/index.d.ts +3 -1
  16. package/dist/data/index.js +61 -47
  17. package/dist/data/stnColorPalette.js +2 -2
  18. package/dist/data/stnFeedbackColors.d.ts +7 -0
  19. package/dist/data/stnFeedbackColors.js +1 -1
  20. package/dist/data/stnList.d.ts +19 -0
  21. package/dist/data/stnList.js +9 -0
  22. package/dist/data/stnList.js.map +1 -0
  23. package/dist/data/stnMenu.d.ts +22 -0
  24. package/dist/data/stnMenu.js +9 -0
  25. package/dist/data/stnMenu.js.map +1 -0
  26. package/dist/data/stnPackageVersion.d.ts +2 -2
  27. package/dist/data/stnPackageVersion.js +1 -1
  28. package/dist/data/stnSplitView.d.ts +3 -1
  29. package/dist/data/stnSplitView.js +3 -1
  30. package/dist/data/stnToast.js +2 -2
  31. package/dist/index.d.ts +3 -1
  32. package/dist/index.js +61 -47
  33. package/package.json +1 -1
  34. package/styles/components/stn-badge.css +17 -0
  35. package/styles/components/stn-breadcrumb.css +9 -0
  36. package/styles/components/stn-card.css +32 -0
  37. package/styles/components/stn-drawer.css +7 -0
  38. package/styles/components/stn-list.css +430 -0
  39. package/styles/components/stn-menu.css +467 -0
  40. package/styles/components/stn-popup.css +32 -0
  41. package/styles/components/stn-topology.css +93 -1
  42. package/styles/foundations/stn-typography.css +1 -0
  43. package/styles/layouts/stn-container.css +49 -5
  44. package/styles/layouts/stn-layer1-content.css +4 -1
  45. package/styles/patterns/stn-floating-toolbar.css +39 -0
  46. package/styles/patterns/stn-split-view.css +68 -0
  47. package/styles/style-pub.css +2 -0
  48. package/styles/tokens/stn-colors-semantic.css +36 -4
  49. package/styles/tokens/stn-size-semantic.css +22 -4
  50. package/styles/tokens/stn-size.css +1 -0
  51. package/dist/chunk-5QPBSOJ6.js +0 -9
  52. package/dist/chunk-5QPBSOJ6.js.map +0 -1
  53. package/dist/chunk-BYGKJSDN.js.map +0 -1
  54. package/dist/chunk-ERZPIKPF.js +0 -1
  55. package/dist/chunk-W7K3FSAX.js.map +0 -1
  56. /package/dist/{chunk-YN774RCQ.js.map → chunk-6TQ4O7BK.js.map} +0 -0
  57. /package/dist/{chunk-ERZPIKPF.js.map → chunk-PXTPAYC3.js.map} +0 -0
  58. /package/dist/{chunk-SOEBXG3T.js.map → chunk-U66BCO23.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -70,7 +70,9 @@ export { STN_DIVIDER_INTRO, STN_DIVIDER_ORIENTATIONS, STN_DIVIDER_TEXT_ALIGNS, S
70
70
  export { STN_STEP_STATUS_SPEC, StnStepItem, StnStepStatus, StnStepperLineThickness, StnStepperOrientation, StnStepperPosition, StnStepperSize } from './data/stnStepper.js';
71
71
  export { STN_POPOVER_INTRO, STN_POPOVER_USAGE, StnPopoverHorizontalOrigin, StnPopoverOrigin, StnPopoverPosition, StnPopoverReference, StnPopoverVerticalOrigin } from './data/stnPopover.js';
72
72
  export { STN_STEP_CARDS_INTRO, StnStepCardItem } from './data/stnStepCards.js';
73
- export { STN_SPLIT_VIEW_INTRO, STN_SPLIT_VIEW_OVERLAY_PLACEMENTS, STN_SPLIT_VIEW_SIDE_WIDTHS, StnSplitViewOverlayPlacement, StnSplitViewSideWidth } from './data/stnSplitView.js';
73
+ export { STN_SPLIT_VIEW_INTRO, STN_SPLIT_VIEW_OVERLAY_PLACEMENTS, STN_SPLIT_VIEW_PADDINGS, STN_SPLIT_VIEW_SIDE_WIDTHS, StnSplitViewOverlayPlacement, StnSplitViewPadding, StnSplitViewSideWidth } from './data/stnSplitView.js';
74
+ export { STN_LIST_INTRO, STN_LIST_SIZES, StnListPadding, StnListSize, StnListSizeSpec, StnListVariant, StnListWidth } from './data/stnList.js';
75
+ export { STN_MENU_INTRO, STN_MENU_SIZES, StnMenuElevation, StnMenuItemRole, StnMenuPadding, StnMenuSize, StnMenuSizeSpec, StnMenuWidth } from './data/stnMenu.js';
74
76
  export { STN_UI_CATALOG, STN_UI_COMPONENTS, STN_UI_FOUNDATIONS, StnUiComponentId, StnUiEntry, StnUiFoundationId } from './components.js';
75
77
  export { SYSTEM_ICON_DATA_URLS } from './data/stnSystemIconsData.generated.js';
76
78
  import 'react';
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  STN_UI_COMPONENTS,
4
4
  STN_UI_FOUNDATIONS
5
5
  } from "./chunk-K6TWXWIO.js";
6
- import "./chunk-ERZPIKPF.js";
6
+ import "./chunk-PXTPAYC3.js";
7
7
  import {
8
8
  STN_TOGGLE_BUTTON_PLAYGROUND_DEFAULT,
9
9
  STN_TOGGLE_BUTTON_PLAYGROUND_INTRO,
@@ -34,6 +34,12 @@ import {
34
34
  typographyPrimitivesToJson,
35
35
  typographySemanticsToJson
36
36
  } from "./chunk-2TRZNWCA.js";
37
+ import {
38
+ STN_STEP_CARDS_INTRO
39
+ } from "./chunk-NYZMUDVK.js";
40
+ import {
41
+ STN_STEP_STATUS_SPEC
42
+ } from "./chunk-N4PVFFKV.js";
37
43
  import "./chunk-7ONB2WVN.js";
38
44
  import {
39
45
  STN_TEXT_AREA_HTML,
@@ -45,6 +51,15 @@ import {
45
51
  import {
46
52
  STN_TEXT_COLOR_ROWS
47
53
  } from "./chunk-4HUY6TN4.js";
54
+ import {
55
+ STN_SIZE_INTRO,
56
+ STN_SIZE_ROWS,
57
+ sizeTokensToJson
58
+ } from "./chunk-YI22T66L.js";
59
+ import {
60
+ STN_SIZE_SEMANTIC_INTRO,
61
+ STN_SIZE_SEMANTIC_ROWS
62
+ } from "./chunk-2FHXIAM3.js";
48
63
  import {
49
64
  STN_SLIDER_HTML,
50
65
  STN_SLIDER_INTRO,
@@ -67,17 +82,16 @@ import {
67
82
  import {
68
83
  STN_SPLIT_VIEW_INTRO,
69
84
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
85
+ STN_SPLIT_VIEW_PADDINGS,
70
86
  STN_SPLIT_VIEW_SIDE_WIDTHS
71
- } from "./chunk-W7K3FSAX.js";
87
+ } from "./chunk-F5WWHWEU.js";
72
88
  import {
73
89
  STN_STATUS_DEMO_STEPS
74
90
  } from "./chunk-R6NCTORS.js";
75
91
  import {
76
- STN_STEP_CARDS_INTRO
77
- } from "./chunk-NYZMUDVK.js";
78
- import {
79
- STN_STEP_STATUS_SPEC
80
- } from "./chunk-N4PVFFKV.js";
92
+ STN_RADIUS_USECASE_INTRO,
93
+ STN_RADIUS_USECASE_ROWS
94
+ } from "./chunk-666SNAJT.js";
81
95
  import {
82
96
  STN_SECTION_SIDE_FIGMA,
83
97
  STN_SECTION_SIDE_INTRO,
@@ -97,14 +111,17 @@ import {
97
111
  STN_SIDE_NAV_SUB_ICON
98
112
  } from "./chunk-QIX7SYPC.js";
99
113
  import {
100
- STN_SIZE_INTRO,
101
- STN_SIZE_ROWS,
102
- sizeTokensToJson
103
- } from "./chunk-YI22T66L.js";
114
+ STN_PAGE_ENTER_MOTION_INTRO,
115
+ STN_PAGE_ENTER_MOTION_ROWS,
116
+ STN_PAGE_ENTER_MOTION_USAGE,
117
+ STN_PAGE_ENTER_MOTION_USAGE_HTML
118
+ } from "./chunk-R65PNEWS.js";
104
119
  import {
105
- STN_SIZE_SEMANTIC_INTRO,
106
- STN_SIZE_SEMANTIC_ROWS
107
- } from "./chunk-2FHXIAM3.js";
120
+ STN_PAGINATION_EXAMPLE,
121
+ STN_PAGINATION_FIGMA,
122
+ STN_PAGINATION_INTRO,
123
+ STN_PAGINATION_REACT
124
+ } from "./chunk-PE4ZB5QC.js";
108
125
  import {
109
126
  STN_POPOVER_INTRO,
110
127
  STN_POPOVER_USAGE
@@ -141,9 +158,9 @@ import {
141
158
  radiusSemanticToJson
142
159
  } from "./chunk-I7S5YLB3.js";
143
160
  import {
144
- STN_RADIUS_USECASE_INTRO,
145
- STN_RADIUS_USECASE_ROWS
146
- } from "./chunk-666SNAJT.js";
161
+ STN_LIST_INTRO,
162
+ STN_LIST_SIZES
163
+ } from "./chunk-I2Y7E4TU.js";
147
164
  import {
148
165
  STN_LIST_TABLE_FIGMA,
149
166
  STN_LIST_TABLE_FOOTER_MAX_ACTIONS,
@@ -160,6 +177,10 @@ import {
160
177
  import {
161
178
  STN_MAP_DASHBOARD_OPTION_ROWS
162
179
  } from "./chunk-3DAZMM4T.js";
180
+ import {
181
+ STN_MENU_INTRO,
182
+ STN_MENU_SIZES
183
+ } from "./chunk-7OZGRHFD.js";
163
184
  import {
164
185
  STN_MOTION_CONSTRAINT_ROWS,
165
186
  STN_MOTION_DELAY_ROWS,
@@ -174,19 +195,7 @@ import {
174
195
  import {
175
196
  STN_UI_VERSION,
176
197
  STN_UI_VERSION_LABEL
177
- } from "./chunk-5QPBSOJ6.js";
178
- import {
179
- STN_PAGE_ENTER_MOTION_INTRO,
180
- STN_PAGE_ENTER_MOTION_ROWS,
181
- STN_PAGE_ENTER_MOTION_USAGE,
182
- STN_PAGE_ENTER_MOTION_USAGE_HTML
183
- } from "./chunk-R65PNEWS.js";
184
- import {
185
- STN_PAGINATION_EXAMPLE,
186
- STN_PAGINATION_FIGMA,
187
- STN_PAGINATION_INTRO,
188
- STN_PAGINATION_REACT
189
- } from "./chunk-PE4ZB5QC.js";
198
+ } from "./chunk-ZGYPJEU3.js";
190
199
  import {
191
200
  STN_HEADER_TITLE_DEMO,
192
201
  STN_HEADER_TITLE_FIGMA,
@@ -323,7 +332,7 @@ import {
323
332
  hexToRgbString,
324
333
  paletteToJsonRecord,
325
334
  semanticPaletteToJsonRecord
326
- } from "./chunk-YN774RCQ.js";
335
+ } from "./chunk-6TQ4O7BK.js";
327
336
  import {
328
337
  STN_THEME_SEMANTIC_DARK_ROWS,
329
338
  STN_THEME_SEMANTIC_LIGHT_ROWS
@@ -333,6 +342,14 @@ import {
333
342
  STN_GRADE_SEMANTIC_ROWS,
334
343
  STN_GRADE_SOURCE
335
344
  } from "./chunk-E26XJXQY.js";
345
+ import {
346
+ STN_TEXT_FIELD_FIGMA,
347
+ STN_TEXT_FIELD_HTML,
348
+ STN_TEXT_FIELD_INTRO,
349
+ STN_TEXT_FIELD_SIZE_ROWS,
350
+ STN_TEXT_FIELD_STATES,
351
+ STN_TEXT_FIELD_USAGE
352
+ } from "./chunk-YJLOIDKY.js";
336
353
  import {
337
354
  STN_TOAST_DEMO_MSG,
338
355
  STN_TOAST_ICON_SLUG,
@@ -342,7 +359,7 @@ import {
342
359
  STN_TOAST_SETUP,
343
360
  STN_TOAST_TOKEN_ROWS,
344
361
  STN_TOAST_USAGE_HTML
345
- } from "./chunk-SOEBXG3T.js";
362
+ } from "./chunk-U66BCO23.js";
346
363
  import {
347
364
  STN_TREE_DEMO,
348
365
  STN_TREE_FIGMA,
@@ -404,13 +421,12 @@ import {
404
421
  STN_TABLE_TH_LABEL_FIGMA
405
422
  } from "./chunk-IOBNIUK3.js";
406
423
  import {
407
- STN_TEXT_FIELD_FIGMA,
408
- STN_TEXT_FIELD_HTML,
409
- STN_TEXT_FIELD_INTRO,
410
- STN_TEXT_FIELD_SIZE_ROWS,
411
- STN_TEXT_FIELD_STATES,
412
- STN_TEXT_FIELD_USAGE
413
- } from "./chunk-YJLOIDKY.js";
424
+ STN_SCROLL_FIGMA,
425
+ STN_SCROLL_INTRO,
426
+ STN_SCROLL_SPEC,
427
+ STN_SCROLL_USAGE,
428
+ STN_SCROLL_USAGE_HTML
429
+ } from "./chunk-CHJATVOT.js";
414
430
  import {
415
431
  STN_SEARCH_REQUIREMENT_DEMO_FIELDS,
416
432
  STN_SEARCH_REQUIREMENT_FIGMA,
@@ -441,13 +457,6 @@ import {
441
457
  STN_POPUP_USAGE_HTML,
442
458
  resolveStnPopupSizeFromWidth
443
459
  } from "./chunk-G4SOYIHZ.js";
444
- import {
445
- STN_SCROLL_FIGMA,
446
- STN_SCROLL_INTRO,
447
- STN_SCROLL_SPEC,
448
- STN_SCROLL_USAGE,
449
- STN_SCROLL_USAGE_HTML
450
- } from "./chunk-CHJATVOT.js";
451
460
  import {
452
461
  STN_LOADING_SKELETON_COLORS,
453
462
  STN_LOADING_SKELETON_INTRO,
@@ -530,7 +539,7 @@ import {
530
539
  STN_FEEDBACK_BY_KIND,
531
540
  STN_FEEDBACK_SEMANTIC_ROWS,
532
541
  STN_FEEDBACK_SOURCE
533
- } from "./chunk-BYGKJSDN.js";
542
+ } from "./chunk-6HRKKRTT.js";
534
543
  import {
535
544
  STN_DATE_PICKER_INTRO,
536
545
  STN_DATE_PICKER_KO_NAME,
@@ -775,6 +784,8 @@ export {
775
784
  STN_LAYOUT_SLOT_USAGE,
776
785
  STN_LAYOUT_WHEN_TO_USE,
777
786
  STN_LINE_HEIGHT_ROWS,
787
+ STN_LIST_INTRO,
788
+ STN_LIST_SIZES,
778
789
  STN_LIST_TABLE_FIGMA,
779
790
  STN_LIST_TABLE_FOOTER_MAX_ACTIONS,
780
791
  STN_LIST_TABLE_OPTION_ROWS,
@@ -790,6 +801,8 @@ export {
790
801
  STN_LOGIN_INTRO,
791
802
  STN_LOGIN_USAGE,
792
803
  STN_MAP_DASHBOARD_OPTION_ROWS,
804
+ STN_MENU_INTRO,
805
+ STN_MENU_SIZES,
793
806
  STN_MOTION_CONSTRAINT_ROWS,
794
807
  STN_MOTION_DELAY_ROWS,
795
808
  STN_MOTION_DISTANCE_ROWS,
@@ -897,6 +910,7 @@ export {
897
910
  STN_SPACING_USECASE_ROWS,
898
911
  STN_SPLIT_VIEW_INTRO,
899
912
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
913
+ STN_SPLIT_VIEW_PADDINGS,
900
914
  STN_SPLIT_VIEW_SIDE_WIDTHS,
901
915
  STN_STATIC,
902
916
  STN_STATUS_DEMO_STEPS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stn-uiux/pub-ui",
3
- "version": "0.1.85",
3
+ "version": "0.1.87",
4
4
  "description": "STN Pub design system — tokens, specs, and CSS for product HTML / React apps",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -97,6 +97,23 @@
97
97
  transform-origin: 0% 100%;
98
98
  }
99
99
 
100
+ /* Center Horizontal Positions (노드 상단/하단 정중앙 배치) */
101
+ .stn-badge.top-center,
102
+ .stn-badge--top-center {
103
+ top: 0;
104
+ left: 50%;
105
+ transform: translate(-50%, -65%);
106
+ transform-origin: 50% 100%;
107
+ }
108
+
109
+ .stn-badge.bottom-center,
110
+ .stn-badge--bottom-center {
111
+ bottom: 0;
112
+ left: 50%;
113
+ transform: translate(-50%, 65%);
114
+ transform-origin: 50% 0%;
115
+ }
116
+
100
117
  /* Dot variant */
101
118
  .stn-badge.dot,
102
119
  .stn-badge--dot {
@@ -200,6 +200,15 @@ a.stn-breadcrumb__segment:hover .stn-breadcrumb__label {
200
200
  mask-size: contain;
201
201
  }
202
202
 
203
+ /* Reverse Modifier — 역방향 브레드크럼 (구분자 화살표 < 반전 및 현재 항목 강조) */
204
+ .stn-breadcrumb.reverse .separator > span {
205
+ transform: rotate(180deg);
206
+ }
207
+
208
+ .stn-breadcrumb.reverse .stn-breadcrumb__item--current .stn-breadcrumb__label {
209
+ font-weight: var(--stn-font-weight-bold, 700);
210
+ }
211
+
203
212
  .stn-breadcrumb .collapsed {
204
213
  min-width: var(--stn-breadcrumb-icon-size);
205
214
  padding: 0 var(--stn-space-4, 4px);
@@ -116,6 +116,38 @@
116
116
  cursor: pointer;
117
117
  }
118
118
 
119
+ /* Hover effects by variant (STN Semantic Token 준수) */
120
+ :is(.stn-card.interactive, .stn-card[role='button']).flat:not([class*='severity-']):hover {
121
+ background-color: var(--stn-card-bg-flat-hover);
122
+ }
123
+
124
+ :is(.stn-card.interactive, .stn-card[role='button']).outlined:not([class*='severity-']):hover {
125
+ border-color: var(--stn-card-border-hover);
126
+ background-color: color-mix(in srgb, var(--stn-card-bg-flat) 40%, transparent);
127
+ }
128
+
129
+ :is(.stn-card.interactive, .stn-card[role='button']).elevated:hover {
130
+ box-shadow: var(--stn-card-shadow-hover);
131
+ transform: translateY(-2px);
132
+ }
133
+
134
+ /* Hover effects for Severity Surfaces (심각도 고유 틴트 유지) */
135
+ :is(.stn-card.interactive, .stn-card[role='button']).severity-critical:hover {
136
+ background-color: color-mix(in srgb, var(--stn-card-severity-critical-bg) 85%, var(--stn-feedback-error) 15%);
137
+ }
138
+
139
+ :is(.stn-card.interactive, .stn-card[role='button']).severity-major:hover {
140
+ background-color: color-mix(in srgb, var(--stn-card-severity-major-bg) 85%, var(--stn-grade-major) 15%);
141
+ }
142
+
143
+ :is(.stn-card.interactive, .stn-card[role='button']).severity-minor:hover {
144
+ background-color: color-mix(in srgb, var(--stn-card-severity-minor-bg) 85%, var(--stn-grade-minor) 15%);
145
+ }
146
+
147
+ :is(.stn-card.interactive, .stn-card[role='button']).severity-warning:hover {
148
+ background-color: color-mix(in srgb, var(--stn-card-severity-warning-bg) 85%, var(--stn-grade-warning) 15%);
149
+ }
150
+
119
151
  .stn-card.interactive:active,
120
152
  .stn-card[role='button']:active {
121
153
  transform: translateY(1px);
@@ -124,6 +124,7 @@
124
124
  .stn-drawer--md { --stn-drawer-active-width: var(--stn-drawer-width-md, 480px); --stn-drawer-active-height: var(--stn-drawer-height-md, 480px); }
125
125
  .stn-drawer--lg { --stn-drawer-active-width: var(--stn-drawer-width-lg, 640px); --stn-drawer-active-height: var(--stn-drawer-height-lg, 640px); }
126
126
  .stn-drawer--xl { --stn-drawer-active-width: var(--stn-drawer-width-xl, 800px); --stn-drawer-active-height: var(--stn-drawer-height-xl, 800px); }
127
+ .stn-drawer--full { --stn-drawer-active-width: var(--stn-drawer-width-full, min(96vw, 1920px)); --stn-drawer-active-height: var(--stn-drawer-height-full, min(96vh, 1080px)); }
127
128
 
128
129
  /* ── 6. Header, Body, Footer Subcomponents ── */
129
130
  .stn-drawer__head {
@@ -177,6 +178,12 @@
177
178
  .stn-drawer__body.gap-lg { gap: var(--stn-drawer-gap-lg); }
178
179
  .stn-drawer__body.gap-xl { gap: var(--stn-drawer-gap-xl); }
179
180
 
181
+ /* Drawer Body Surface Tone (.stn-drawer__body--subtle, .stn-drawer--subtle) */
182
+ .stn-drawer--subtle,
183
+ .stn-drawer__body--subtle {
184
+ background-color: var(--stn-drawer-bg-subtle, var(--stn-surface-subtle));
185
+ }
186
+
180
187
  .stn-drawer__footer {
181
188
  display: flex;
182
189
  align-items: center;