@stn-uiux/pub-ui 0.1.84 → 0.1.86

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-2PIUQUBN.js +9 -0
  2. package/dist/chunk-2PIUQUBN.js.map +1 -0
  3. package/dist/{chunk-BYGKJSDN.js → chunk-6HRKKRTT.js} +18 -3
  4. package/dist/chunk-6HRKKRTT.js.map +1 -0
  5. package/dist/{chunk-YN774RCQ.js → chunk-6TQ4O7BK.js} +2 -2
  6. package/dist/{chunk-W7K3FSAX.js → chunk-F5WWHWEU.js} +9 -1
  7. package/dist/chunk-F5WWHWEU.js.map +1 -0
  8. package/dist/{chunk-SOEBXG3T.js → chunk-U66BCO23.js} +2 -2
  9. package/dist/cli.js +2 -2
  10. package/dist/data/index.d.ts +1 -1
  11. package/dist/data/index.js +7 -5
  12. package/dist/data/stnColorPalette.js +2 -2
  13. package/dist/data/stnFeedbackColors.d.ts +7 -0
  14. package/dist/data/stnFeedbackColors.js +1 -1
  15. package/dist/data/stnPackageVersion.d.ts +2 -2
  16. package/dist/data/stnPackageVersion.js +1 -1
  17. package/dist/data/stnSplitView.d.ts +3 -1
  18. package/dist/data/stnSplitView.js +3 -1
  19. package/dist/data/stnToast.js +2 -2
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.js +7 -5
  22. package/package.json +1 -1
  23. package/styles/components/stn-badge.css +31 -0
  24. package/styles/components/stn-breadcrumb.css +9 -0
  25. package/styles/components/stn-card.css +32 -0
  26. package/styles/components/stn-date-picker.css +1 -1
  27. package/styles/components/stn-date-range-field.css +2 -2
  28. package/styles/components/stn-drawer.css +1 -0
  29. package/styles/components/stn-dropdown.css +2 -2
  30. package/styles/components/stn-popover.css +1 -1
  31. package/styles/components/stn-popup.css +32 -0
  32. package/styles/components/stn-table.css +9 -1
  33. package/styles/components/stn-text-field.css +5 -1
  34. package/styles/components/stn-topology.css +97 -1
  35. package/styles/foundations/stn-typography.css +1 -0
  36. package/styles/patterns/stn-login-card.css +6 -0
  37. package/styles/patterns/stn-split-view.css +68 -0
  38. package/styles/tokens/stn-colors-semantic.css +10 -2
  39. package/styles/tokens/stn-elevation.css +1 -0
  40. package/styles/tokens/stn-size-semantic.css +6 -0
  41. package/styles/tokens/stn-typography-semantic.css +4 -1
  42. package/dist/chunk-BYGKJSDN.js.map +0 -1
  43. package/dist/chunk-P22H2BFQ.js +0 -9
  44. package/dist/chunk-P22H2BFQ.js.map +0 -1
  45. package/dist/chunk-W7K3FSAX.js.map +0 -1
  46. /package/dist/{chunk-YN774RCQ.js.map → chunk-6TQ4O7BK.js.map} +0 -0
  47. /package/dist/{chunk-SOEBXG3T.js.map → chunk-U66BCO23.js.map} +0 -0
@@ -0,0 +1,9 @@
1
+ // src/data/stnPackageVersion.ts
2
+ var STN_UI_VERSION = "0.1.86";
3
+ var STN_UI_VERSION_LABEL = "v0.1.86";
4
+
5
+ export {
6
+ STN_UI_VERSION,
7
+ STN_UI_VERSION_LABEL
8
+ };
9
+ //# sourceMappingURL=chunk-2PIUQUBN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.86'\nexport const STN_UI_VERSION_LABEL = 'v0.1.86'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}
@@ -3,7 +3,8 @@ var FEEDBACK_PRIMITIVE_HEX = {
3
3
  "pub.blue.400": "#00aeef",
4
4
  "pub.green.400": "#1fa550",
5
5
  "pub.yellow.300": "#ffdc53",
6
- "pub.red.400": "#d61f3a"
6
+ "pub.red.400": "#d61f3a",
7
+ "pub.purple.400": "#8b5cf6"
7
8
  };
8
9
  var STN_FEEDBACK_SOURCE = {
9
10
  info: {
@@ -33,6 +34,13 @@ var STN_FEEDBACK_SOURCE = {
33
34
  descKo: "\uAE34\uAE09, \uC624\uB958",
34
35
  toastVar: "--stn-feedback-error",
35
36
  toastifyVar: "--stn-feedback-error"
37
+ },
38
+ discovery: {
39
+ hex: "#8b5cf6",
40
+ label: "DISCOVERY",
41
+ descKo: "\uC2E0\uADDC, \uBC1C\uACAC, \uD2B9\uBCC4 \uC548\uB0B4",
42
+ toastVar: "--stn-feedback-discovery",
43
+ toastifyVar: "--stn-feedback-discovery"
36
44
  }
37
45
  };
38
46
  var STN_FEEDBACK_SEMANTIC_ROWS = [
@@ -59,13 +67,20 @@ var STN_FEEDBACK_SEMANTIC_ROWS = [
59
67
  cssVar: "--stn-feedback-error",
60
68
  hex: FEEDBACK_PRIMITIVE_HEX["pub.red.400"],
61
69
  primitiveToken: "pub.red.400"
70
+ },
71
+ {
72
+ token: "pub.feedback.discovery",
73
+ cssVar: "--stn-feedback-discovery",
74
+ hex: FEEDBACK_PRIMITIVE_HEX["pub.purple.400"],
75
+ primitiveToken: "pub.purple.400"
62
76
  }
63
77
  ];
64
78
  var STN_FEEDBACK_BY_KIND = {
65
79
  info: STN_FEEDBACK_SEMANTIC_ROWS[0],
66
80
  success: STN_FEEDBACK_SEMANTIC_ROWS[1],
67
81
  warn: STN_FEEDBACK_SEMANTIC_ROWS[2],
68
- error: STN_FEEDBACK_SEMANTIC_ROWS[3]
82
+ error: STN_FEEDBACK_SEMANTIC_ROWS[3],
83
+ discovery: STN_FEEDBACK_SEMANTIC_ROWS[4]
69
84
  };
70
85
 
71
86
  export {
@@ -73,4 +88,4 @@ export {
73
88
  STN_FEEDBACK_SEMANTIC_ROWS,
74
89
  STN_FEEDBACK_BY_KIND
75
90
  };
76
- //# sourceMappingURL=chunk-BYGKJSDN.js.map
91
+ //# sourceMappingURL=chunk-6HRKKRTT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnFeedbackColors.ts"],"sourcesContent":["import type { StnSemanticTokenRow } from './stnColorPalette'\n\n/** stnPubColorPalette.ts 와 동기 — 순환 import 방지를 위해 리터럴 사용 */\nconst FEEDBACK_PRIMITIVE_HEX = {\n 'pub.blue.400': '#00aeef',\n 'pub.green.400': '#1fa550',\n 'pub.yellow.300': '#ffdc53',\n 'pub.red.400': '#d61f3a',\n 'pub.purple.400': '#8b5cf6',\n} as const\n\n/** 01 PC_HTML_Revision · pub/pub.css `--toastify-color-*` (아이콘·progress bar; toastTheme light/dark) */\nexport const STN_FEEDBACK_SOURCE = {\n info: {\n hex: '#3498db',\n label: 'INFO',\n descKo: '안내, 정보',\n toastVar: '--stn-feedback-info',\n toastifyVar: '--stn-feedback-info',\n },\n success: {\n hex: '#07bc0c',\n label: 'SUCCESS',\n descKo: '완료, 성공',\n toastVar: '--stn-feedback-success',\n toastifyVar: '--stn-feedback-success',\n },\n warn: {\n hex: '#f1c40f',\n label: 'WARN',\n descKo: '주의, 경고',\n toastVar: '--stn-feedback-warning',\n toastifyVar: '--stn-feedback-warning',\n },\n error: {\n hex: '#e74c3c',\n label: 'ERROR',\n descKo: '긴급, 오류',\n toastVar: '--stn-feedback-error',\n toastifyVar: '--stn-feedback-error',\n },\n discovery: {\n hex: '#8b5cf6',\n label: 'DISCOVERY',\n descKo: '신규, 발견, 특별 안내',\n toastVar: '--stn-feedback-discovery',\n toastifyVar: '--stn-feedback-discovery',\n },\n} as const\n\nexport type StnFeedbackKind = keyof typeof STN_FEEDBACK_SOURCE\n\n/** Pub toastify 유형색 → DS primitive (`--stn-feedback-*` · `--toastify-color-*`) */\nexport const STN_FEEDBACK_SEMANTIC_ROWS: StnSemanticTokenRow[] = [\n {\n token: 'pub.feedback.info',\n cssVar: '--stn-feedback-info',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.blue.400'],\n primitiveToken: 'pub.blue.400',\n },\n {\n token: 'pub.feedback.success',\n cssVar: '--stn-feedback-success',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.green.400'],\n primitiveToken: 'pub.green.400',\n },\n {\n token: 'pub.feedback.warning',\n cssVar: '--stn-feedback-warning',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.yellow.300'],\n primitiveToken: 'pub.yellow.300',\n },\n {\n token: 'pub.feedback.error',\n cssVar: '--stn-feedback-error',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.red.400'],\n primitiveToken: 'pub.red.400',\n },\n {\n token: 'pub.feedback.discovery',\n cssVar: '--stn-feedback-discovery',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.purple.400'],\n primitiveToken: 'pub.purple.400',\n },\n]\n\nexport const STN_FEEDBACK_BY_KIND: Record<StnFeedbackKind, StnSemanticTokenRow> = {\n info: STN_FEEDBACK_SEMANTIC_ROWS[0]!,\n success: STN_FEEDBACK_SEMANTIC_ROWS[1]!,\n warn: STN_FEEDBACK_SEMANTIC_ROWS[2]!,\n error: STN_FEEDBACK_SEMANTIC_ROWS[3]!,\n discovery: STN_FEEDBACK_SEMANTIC_ROWS[4]!,\n}\n"],"mappings":";AAGA,IAAM,yBAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,kBAAkB;AACpB;AAGO,IAAM,sBAAsB;AAAA,EACjC,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AACF;AAKO,IAAM,6BAAoD;AAAA,EAC/D;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,cAAc;AAAA,IAC1C,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,eAAe;AAAA,IAC3C,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,gBAAgB;AAAA,IAC5C,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,aAAa;AAAA,IACzC,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,gBAAgB;AAAA,IAC5C,gBAAgB;AAAA,EAClB;AACF;AAEO,IAAM,uBAAqE;AAAA,EAChF,MAAM,2BAA2B,CAAC;AAAA,EAClC,SAAS,2BAA2B,CAAC;AAAA,EACrC,MAAM,2BAA2B,CAAC;AAAA,EAClC,OAAO,2BAA2B,CAAC;AAAA,EACnC,WAAW,2BAA2B,CAAC;AACzC;","names":[]}
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-E26XJXQY.js";
8
8
  import {
9
9
  STN_FEEDBACK_SEMANTIC_ROWS
10
- } from "./chunk-BYGKJSDN.js";
10
+ } from "./chunk-6HRKKRTT.js";
11
11
 
12
12
  // src/data/stnColorPalette.ts
13
13
  function pubRow(family, step, value) {
@@ -446,4 +446,4 @@ export {
446
446
  STN_SEMANTIC_LIGHT_ROWS,
447
447
  STN_SEMANTIC_DARK_ROWS
448
448
  };
449
- //# sourceMappingURL=chunk-YN774RCQ.js.map
449
+ //# sourceMappingURL=chunk-6TQ4O7BK.js.map
@@ -1,4 +1,11 @@
1
1
  // src/data/stnSplitView.ts
2
+ var STN_SPLIT_VIEW_PADDINGS = [
3
+ "none",
4
+ "xs",
5
+ "sm",
6
+ "md",
7
+ "lg"
8
+ ];
2
9
  var STN_SPLIT_VIEW_SIDE_WIDTHS = ["sm", "md", "lg"];
3
10
  var STN_SPLIT_VIEW_OVERLAY_PLACEMENTS = [
4
11
  "top-left",
@@ -17,8 +24,9 @@ var STN_SPLIT_VIEW_INTRO = {
17
24
  };
18
25
 
19
26
  export {
27
+ STN_SPLIT_VIEW_PADDINGS,
20
28
  STN_SPLIT_VIEW_SIDE_WIDTHS,
21
29
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
22
30
  STN_SPLIT_VIEW_INTRO
23
31
  };
24
- //# sourceMappingURL=chunk-W7K3FSAX.js.map
32
+ //# sourceMappingURL=chunk-F5WWHWEU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnSplitView.ts"],"sourcesContent":["/**\n * STN Split View Pattern — Side + Stage shell (SSOT types)\n * Store locator / 망구성도 / 캔버스 탐색: 중첩 Card 없이 좌 패널 + 우 스테이지.\n */\n\nexport type StnSplitViewSideWidth = 'sm' | 'md' | 'lg'\n\nexport type StnSplitViewPadding = 'none' | 'xs' | 'sm' | 'md' | 'lg'\n\nexport const STN_SPLIT_VIEW_PADDINGS: readonly StnSplitViewPadding[] = [\n 'none',\n 'xs',\n 'sm',\n 'md',\n 'lg',\n] as const\n\nexport type StnSplitViewOverlayPlacement =\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n | 'center-left'\n | 'center-right'\n\nexport const STN_SPLIT_VIEW_SIDE_WIDTHS: readonly StnSplitViewSideWidth[] = ['sm', 'md', 'lg'] as const\n\nexport const STN_SPLIT_VIEW_OVERLAY_PLACEMENTS: readonly StnSplitViewOverlayPlacement[] = [\n 'top-left',\n 'top-right',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n 'center-left',\n 'center-right',\n] as const\n\nexport const STN_SPLIT_VIEW_INTRO = {\n name: 'Split View',\n slug: 'split-view',\n kind: 'pattern' as const,\n description:\n '카드(또는 패널) 본문을 좌 Side · 우 Stage로 나누는 레이아웃 셸입니다. Stage는 position:relative 캔버스 호스트이며 StnFloatingToolbar·Overlay를 올립니다. 맵·토폴로지·스토어 로케이터 등에 공통으로 씁니다.',\n}\n"],"mappings":";AASO,IAAM,0BAA0D;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAWO,IAAM,6BAA+D,CAAC,MAAM,MAAM,IAAI;AAEtF,IAAM,oCAA6E;AAAA,EACxF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,uBAAuB;AAAA,EAClC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aACE;AACJ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  STN_FEEDBACK_BY_KIND,
3
3
  STN_FEEDBACK_SOURCE
4
- } from "./chunk-BYGKJSDN.js";
4
+ } from "./chunk-6HRKKRTT.js";
5
5
 
6
6
  // src/data/stnToast.ts
7
7
  var STN_TOAST_INTRO = "STN Design System \uD1A0\uC2A4\uD2B8 \uC54C\uB9BC \uCE74\uB4DC\uC785\uB2C8\uB2E4. \uC720\uD615 \uC544\uC774\uCF58\uC740 STN Iconography(`StnToastIcon`), \uB2EB\uAE30\uB294 `StnButton` icon-only, progress\uB294 `StnProgressBar`(toastSlot)\uC785\uB2C8\uB2E4. \uB9C8\uD06C\uC5C5\xB7\uCEF4\uD3EC\uB10C\uD2B8 \uC870\uB9BD\uC73C\uB85C \uD45C\uD604\uD558\uBA70, \uBCC4\uB3C4 Provider \uC5C6\uC774 \uC815\uC801 \uCE74\uB4DC\uB85C \uBB38\uC11C\uD654\uD569\uB2C8\uB2E4.";
@@ -74,4 +74,4 @@ export {
74
74
  STN_TOAST_SETUP,
75
75
  STN_TOAST_USAGE_HTML
76
76
  };
77
- //# sourceMappingURL=chunk-SOEBXG3T.js.map
77
+ //# sourceMappingURL=chunk-U66BCO23.js.map
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  STN_TOAST_REACT_USAGE
3
- } from "./chunk-SOEBXG3T.js";
3
+ } from "./chunk-U66BCO23.js";
4
4
  import {
5
5
  STN_TREE_REACT_EXAMPLE
6
6
  } from "./chunk-65B7YUTE.js";
@@ -46,7 +46,7 @@ import {
46
46
  import {
47
47
  STN_DROPDOWN_USAGE
48
48
  } from "./chunk-IZRGNUH6.js";
49
- import "./chunk-BYGKJSDN.js";
49
+ import "./chunk-6HRKKRTT.js";
50
50
  import {
51
51
  STN_DATE_PICKER_USAGE
52
52
  } from "./chunk-QJN2Z6RG.js";
@@ -70,6 +70,6 @@ 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 './stnStepper.js';
71
71
  export { STN_POPOVER_INTRO, STN_POPOVER_USAGE, StnPopoverHorizontalOrigin, StnPopoverOrigin, StnPopoverPosition, StnPopoverReference, StnPopoverVerticalOrigin } from './stnPopover.js';
72
72
  export { STN_STEP_CARDS_INTRO, StnStepCardItem } from './stnStepCards.js';
73
- export { STN_SPLIT_VIEW_INTRO, STN_SPLIT_VIEW_OVERLAY_PLACEMENTS, STN_SPLIT_VIEW_SIDE_WIDTHS, StnSplitViewOverlayPlacement, StnSplitViewSideWidth } from './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 './stnSplitView.js';
74
74
  export { SYSTEM_ICON_DATA_URLS } from './stnSystemIconsData.generated.js';
75
75
  import 'react';
@@ -62,8 +62,9 @@ import {
62
62
  import {
63
63
  STN_SPLIT_VIEW_INTRO,
64
64
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
65
+ STN_SPLIT_VIEW_PADDINGS,
65
66
  STN_SPLIT_VIEW_SIDE_WIDTHS
66
- } from "../chunk-W7K3FSAX.js";
67
+ } from "../chunk-F5WWHWEU.js";
67
68
  import {
68
69
  STN_STATUS_DEMO_STEPS
69
70
  } from "../chunk-R6NCTORS.js";
@@ -169,7 +170,7 @@ import {
169
170
  import {
170
171
  STN_UI_VERSION,
171
172
  STN_UI_VERSION_LABEL
172
- } from "../chunk-P22H2BFQ.js";
173
+ } from "../chunk-2PIUQUBN.js";
173
174
  import {
174
175
  STN_PAGE_ENTER_MOTION_INTRO,
175
176
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -318,7 +319,7 @@ import {
318
319
  hexToRgbString,
319
320
  paletteToJsonRecord,
320
321
  semanticPaletteToJsonRecord
321
- } from "../chunk-YN774RCQ.js";
322
+ } from "../chunk-6TQ4O7BK.js";
322
323
  import {
323
324
  STN_THEME_SEMANTIC_DARK_ROWS,
324
325
  STN_THEME_SEMANTIC_LIGHT_ROWS
@@ -337,7 +338,7 @@ import {
337
338
  STN_TOAST_SETUP,
338
339
  STN_TOAST_TOKEN_ROWS,
339
340
  STN_TOAST_USAGE_HTML
340
- } from "../chunk-SOEBXG3T.js";
341
+ } from "../chunk-U66BCO23.js";
341
342
  import {
342
343
  STN_TREE_DEMO,
343
344
  STN_TREE_FIGMA,
@@ -525,7 +526,7 @@ import {
525
526
  STN_FEEDBACK_BY_KIND,
526
527
  STN_FEEDBACK_SEMANTIC_ROWS,
527
528
  STN_FEEDBACK_SOURCE
528
- } from "../chunk-BYGKJSDN.js";
529
+ } from "../chunk-6HRKKRTT.js";
529
530
  import {
530
531
  STN_DATE_PICKER_INTRO,
531
532
  STN_DATE_PICKER_KO_NAME,
@@ -892,6 +893,7 @@ export {
892
893
  STN_SPACING_USECASE_ROWS,
893
894
  STN_SPLIT_VIEW_INTRO,
894
895
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
896
+ STN_SPLIT_VIEW_PADDINGS,
895
897
  STN_SPLIT_VIEW_SIDE_WIDTHS,
896
898
  STN_STATIC,
897
899
  STN_STATUS_DEMO_STEPS,
@@ -25,10 +25,10 @@ import {
25
25
  hexToRgbString,
26
26
  paletteToJsonRecord,
27
27
  semanticPaletteToJsonRecord
28
- } from "../chunk-YN774RCQ.js";
28
+ } from "../chunk-6TQ4O7BK.js";
29
29
  import "../chunk-YYA5KCXU.js";
30
30
  import "../chunk-E26XJXQY.js";
31
- import "../chunk-BYGKJSDN.js";
31
+ import "../chunk-6HRKKRTT.js";
32
32
  export {
33
33
  STN_ALL_PALETTE_ROWS,
34
34
  STN_BLUE_SCALE,
@@ -30,6 +30,13 @@ declare const STN_FEEDBACK_SOURCE: {
30
30
  readonly toastVar: "--stn-feedback-error";
31
31
  readonly toastifyVar: "--stn-feedback-error";
32
32
  };
33
+ readonly discovery: {
34
+ readonly hex: "#8b5cf6";
35
+ readonly label: "DISCOVERY";
36
+ readonly descKo: "신규, 발견, 특별 안내";
37
+ readonly toastVar: "--stn-feedback-discovery";
38
+ readonly toastifyVar: "--stn-feedback-discovery";
39
+ };
33
40
  };
34
41
  type StnFeedbackKind = keyof typeof STN_FEEDBACK_SOURCE;
35
42
  /** Pub toastify 유형색 → DS primitive (`--stn-feedback-*` · `--toastify-color-*`) */
@@ -2,7 +2,7 @@ import {
2
2
  STN_FEEDBACK_BY_KIND,
3
3
  STN_FEEDBACK_SEMANTIC_ROWS,
4
4
  STN_FEEDBACK_SOURCE
5
- } from "../chunk-BYGKJSDN.js";
5
+ } from "../chunk-6HRKKRTT.js";
6
6
  export {
7
7
  STN_FEEDBACK_BY_KIND,
8
8
  STN_FEEDBACK_SEMANTIC_ROWS,
@@ -1,5 +1,5 @@
1
1
  /** Package version constants */
2
- declare const STN_UI_VERSION = "0.1.84";
3
- declare const STN_UI_VERSION_LABEL = "v0.1.84";
2
+ declare const STN_UI_VERSION = "0.1.86";
3
+ declare const STN_UI_VERSION_LABEL = "v0.1.86";
4
4
 
5
5
  export { STN_UI_VERSION, STN_UI_VERSION_LABEL };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  STN_UI_VERSION,
3
3
  STN_UI_VERSION_LABEL
4
- } from "../chunk-P22H2BFQ.js";
4
+ } from "../chunk-2PIUQUBN.js";
5
5
  export {
6
6
  STN_UI_VERSION,
7
7
  STN_UI_VERSION_LABEL
@@ -3,6 +3,8 @@
3
3
  * Store locator / 망구성도 / 캔버스 탐색: 중첩 Card 없이 좌 패널 + 우 스테이지.
4
4
  */
5
5
  type StnSplitViewSideWidth = 'sm' | 'md' | 'lg';
6
+ type StnSplitViewPadding = 'none' | 'xs' | 'sm' | 'md' | 'lg';
7
+ declare const STN_SPLIT_VIEW_PADDINGS: readonly StnSplitViewPadding[];
6
8
  type StnSplitViewOverlayPlacement = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'center-left' | 'center-right';
7
9
  declare const STN_SPLIT_VIEW_SIDE_WIDTHS: readonly StnSplitViewSideWidth[];
8
10
  declare const STN_SPLIT_VIEW_OVERLAY_PLACEMENTS: readonly StnSplitViewOverlayPlacement[];
@@ -13,4 +15,4 @@ declare const STN_SPLIT_VIEW_INTRO: {
13
15
  description: string;
14
16
  };
15
17
 
16
- export { STN_SPLIT_VIEW_INTRO, STN_SPLIT_VIEW_OVERLAY_PLACEMENTS, STN_SPLIT_VIEW_SIDE_WIDTHS, type StnSplitViewOverlayPlacement, type StnSplitViewSideWidth };
18
+ export { STN_SPLIT_VIEW_INTRO, STN_SPLIT_VIEW_OVERLAY_PLACEMENTS, STN_SPLIT_VIEW_PADDINGS, STN_SPLIT_VIEW_SIDE_WIDTHS, type StnSplitViewOverlayPlacement, type StnSplitViewPadding, type StnSplitViewSideWidth };
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  STN_SPLIT_VIEW_INTRO,
3
3
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
4
+ STN_SPLIT_VIEW_PADDINGS,
4
5
  STN_SPLIT_VIEW_SIDE_WIDTHS
5
- } from "../chunk-W7K3FSAX.js";
6
+ } from "../chunk-F5WWHWEU.js";
6
7
  export {
7
8
  STN_SPLIT_VIEW_INTRO,
8
9
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
10
+ STN_SPLIT_VIEW_PADDINGS,
9
11
  STN_SPLIT_VIEW_SIDE_WIDTHS
10
12
  };
11
13
  //# sourceMappingURL=stnSplitView.js.map
@@ -7,8 +7,8 @@ import {
7
7
  STN_TOAST_SETUP,
8
8
  STN_TOAST_TOKEN_ROWS,
9
9
  STN_TOAST_USAGE_HTML
10
- } from "../chunk-SOEBXG3T.js";
11
- import "../chunk-BYGKJSDN.js";
10
+ } from "../chunk-U66BCO23.js";
11
+ import "../chunk-6HRKKRTT.js";
12
12
  export {
13
13
  STN_TOAST_DEMO_MSG,
14
14
  STN_TOAST_ICON_SLUG,
package/dist/index.d.ts CHANGED
@@ -70,7 +70,7 @@ 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
74
  export { STN_UI_CATALOG, STN_UI_COMPONENTS, STN_UI_FOUNDATIONS, StnUiComponentId, StnUiEntry, StnUiFoundationId } from './components.js';
75
75
  export { SYSTEM_ICON_DATA_URLS } from './data/stnSystemIconsData.generated.js';
76
76
  import 'react';
package/dist/index.js CHANGED
@@ -67,8 +67,9 @@ import {
67
67
  import {
68
68
  STN_SPLIT_VIEW_INTRO,
69
69
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
70
+ STN_SPLIT_VIEW_PADDINGS,
70
71
  STN_SPLIT_VIEW_SIDE_WIDTHS
71
- } from "./chunk-W7K3FSAX.js";
72
+ } from "./chunk-F5WWHWEU.js";
72
73
  import {
73
74
  STN_STATUS_DEMO_STEPS
74
75
  } from "./chunk-R6NCTORS.js";
@@ -174,7 +175,7 @@ import {
174
175
  import {
175
176
  STN_UI_VERSION,
176
177
  STN_UI_VERSION_LABEL
177
- } from "./chunk-P22H2BFQ.js";
178
+ } from "./chunk-2PIUQUBN.js";
178
179
  import {
179
180
  STN_PAGE_ENTER_MOTION_INTRO,
180
181
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -323,7 +324,7 @@ import {
323
324
  hexToRgbString,
324
325
  paletteToJsonRecord,
325
326
  semanticPaletteToJsonRecord
326
- } from "./chunk-YN774RCQ.js";
327
+ } from "./chunk-6TQ4O7BK.js";
327
328
  import {
328
329
  STN_THEME_SEMANTIC_DARK_ROWS,
329
330
  STN_THEME_SEMANTIC_LIGHT_ROWS
@@ -342,7 +343,7 @@ import {
342
343
  STN_TOAST_SETUP,
343
344
  STN_TOAST_TOKEN_ROWS,
344
345
  STN_TOAST_USAGE_HTML
345
- } from "./chunk-SOEBXG3T.js";
346
+ } from "./chunk-U66BCO23.js";
346
347
  import {
347
348
  STN_TREE_DEMO,
348
349
  STN_TREE_FIGMA,
@@ -530,7 +531,7 @@ import {
530
531
  STN_FEEDBACK_BY_KIND,
531
532
  STN_FEEDBACK_SEMANTIC_ROWS,
532
533
  STN_FEEDBACK_SOURCE
533
- } from "./chunk-BYGKJSDN.js";
534
+ } from "./chunk-6HRKKRTT.js";
534
535
  import {
535
536
  STN_DATE_PICKER_INTRO,
536
537
  STN_DATE_PICKER_KO_NAME,
@@ -897,6 +898,7 @@ export {
897
898
  STN_SPACING_USECASE_ROWS,
898
899
  STN_SPLIT_VIEW_INTRO,
899
900
  STN_SPLIT_VIEW_OVERLAY_PLACEMENTS,
901
+ STN_SPLIT_VIEW_PADDINGS,
900
902
  STN_SPLIT_VIEW_SIDE_WIDTHS,
901
903
  STN_STATIC,
902
904
  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.84",
3
+ "version": "0.1.86",
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 {
@@ -295,3 +312,17 @@
295
312
  background-color: var(--stn-badge-solid-neutral);
296
313
  color: var(--stn-badge-solid-neutral-fg);
297
314
  }
315
+
316
+ /* Inverted / Mono (다크: 흰색 배경 + 검은색 텍스트, 라이트: 검은색 배경 + 흰색 텍스트) */
317
+ .stn-badge.inverted,
318
+ .stn-badge--color-inverted {
319
+ color: var(--stn-topology-badge-bg, var(--stn-neutral-90));
320
+ background: var(--stn-opacity-white-10);
321
+ }
322
+ .stn-badge.solid.inverted,
323
+ .stn-badge--solid.stn-badge--color-inverted {
324
+ background-color: var(--stn-topology-badge-bg, var(--stn-neutral-90));
325
+ color: var(--stn-topology-badge-text, var(--stn-static-white));
326
+ border-color: var(--stn-topology-badge-border, var(--stn-elevation-surface-0));
327
+ box-shadow: 0 0 8px color-mix(in srgb, var(--stn-topology-badge-bg, var(--stn-neutral-90)) 25%, transparent);
328
+ }
@@ -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);
@@ -33,7 +33,7 @@
33
33
  --stn-date-picker-weekday-size: var(--stn-text-caption-medium-size);
34
34
 
35
35
  position: fixed;
36
- z-index: var(--stn-elevation-z-dropdown);
36
+ z-index: var(--stn-elevation-z-popover);
37
37
  box-sizing: border-box;
38
38
  border: var(--stn-size-1) solid var(--calendar-border);
39
39
  border-radius: var(--stn-radius-8);
@@ -263,7 +263,7 @@ button.stn-date-range-field.xl .stn-date-range-field__icon {
263
263
  font-size: var(--stn-text-body-small-size);
264
264
  font-weight: var(--stn-font-weight-medium);
265
265
  color: var(--stn-text-primary);
266
- line-height: 1;
266
+ line-height: var(--stn-date-range-field-label-line-height, var(--stn-input-label-line-height, var(--stn-line-height-default)));
267
267
  white-space: nowrap;
268
268
  user-select: none;
269
269
  cursor: pointer;
@@ -280,7 +280,7 @@ button.stn-date-range-field.xl .stn-date-range-field__icon {
280
280
  .stn-date-range-field__required {
281
281
  color: var(--stn-feedback-error);
282
282
  font-weight: var(--stn-font-weight-bold);
283
- line-height: 1;
283
+ line-height: var(--stn-line-height-tight);
284
284
  margin-inline-start: var(--stn-space-2);
285
285
  }
286
286
 
@@ -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(80vw, 1600px)); --stn-drawer-active-height: var(--stn-drawer-height-full, min(80vh, 900px)); }
127
128
 
128
129
  /* ── 6. Header, Body, Footer Subcomponents ── */
129
130
  .stn-drawer__head {
@@ -387,7 +387,7 @@
387
387
  font-size: var(--stn-text-body-small-size, 12px);
388
388
  font-weight: var(--stn-font-weight-medium, 500);
389
389
  color: var(--stn-text-primary);
390
- line-height: 1;
390
+ line-height: var(--stn-dropdown-label-line-height, var(--stn-input-label-line-height, var(--stn-line-height-default)));
391
391
  white-space: nowrap;
392
392
  user-select: none;
393
393
  cursor: pointer;
@@ -404,7 +404,7 @@
404
404
  .stn-dropdown__required {
405
405
  color: var(--stn-feedback-error);
406
406
  font-weight: var(--stn-font-weight-bold);
407
- line-height: 1;
407
+ line-height: var(--stn-line-height-tight);
408
408
  margin-inline-start: var(--stn-space-2, 2px);
409
409
  }
410
410
 
@@ -9,7 +9,7 @@
9
9
  .stn-popover {
10
10
  position: fixed;
11
11
  inset: 0;
12
- z-index: var(--stn-elevation-z-dropdown, 150);
12
+ z-index: var(--stn-elevation-z-popover, 250);
13
13
  pointer-events: none;
14
14
  }
15
15
 
@@ -270,6 +270,10 @@
270
270
  background-color: var(--stn-pop-surface);
271
271
  }
272
272
 
273
+ .stn-pop__actions--left {
274
+ justify-content: flex-start;
275
+ }
276
+
273
277
  .stn-pop__actions--right {
274
278
  justify-content: flex-end;
275
279
  }
@@ -282,6 +286,13 @@
282
286
  justify-content: space-between;
283
287
  }
284
288
 
289
+ /* Actions Group — between 정렬 등에서 버튼들을 시멘틱 간격으로 묶는 표준 래퍼 */
290
+ .stn-pop__actions-group {
291
+ display: flex;
292
+ align-items: center;
293
+ gap: var(--stn-pop-actions-gap);
294
+ }
295
+
285
296
  /* —— Master-Detail Split Layout (.stn-pop-split) —— */
286
297
  .stn-pop-split {
287
298
  display: flex;
@@ -313,3 +324,24 @@
313
324
  overflow-y: auto;
314
325
  box-sizing: border-box;
315
326
  }
327
+
328
+ /* 1. 반반 분할 (50:50 대칭 비교형 — .half, .equal) */
329
+ :is(.stn-pop-split.half, .stn-pop-split--half, .stn-pop-split.equal, .stn-pop-split--equal) > .stn-pop-split__aside {
330
+ flex: 1 1 0;
331
+ width: 50%;
332
+ min-width: 0;
333
+ max-width: none;
334
+ }
335
+
336
+ /* 2. 역방향 분할 (7:3 좌측 넓음 1fr · 우측 좁음 280px 속성창 — .reverse) */
337
+ :is(.stn-pop-split.reverse, .stn-pop-split--reverse) {
338
+ flex-direction: row-reverse;
339
+ }
340
+
341
+ :is(.stn-pop-split.reverse, .stn-pop-split--reverse) > .stn-pop-split__aside,
342
+ .stn-pop-split > .stn-pop-split__main + .stn-pop-split__aside {
343
+ border-right: none;
344
+ border-left: var(--stn-pop-border-width) solid var(--stn-pop-divider);
345
+ padding-right: 0;
346
+ padding-left: var(--stn-pop-split-aside-padding-right);
347
+ }
@@ -538,7 +538,10 @@ td.stn-table__col-check .stn-checkbox {
538
538
  .stn-table__thead th:active:has(.stn-table__sort),
539
539
  .stn-table__thead th:has(.stn-table__sort:active),
540
540
  .stn-table__thead th.is-pressed {
541
- background: var(--stn-table-th-pressed-bg, var(--stn-table-th-group-bg)) !important;
541
+ background:
542
+ linear-gradient(var(--stn-table-th-pressed-bg, var(--stn-table-th-group-bg)),
543
+ var(--stn-table-th-pressed-bg, var(--stn-table-th-group-bg))),
544
+ var(--stn-table-th-bg) !important;
542
545
  }
543
546
 
544
547
  /* Row Clickable Cursor */
@@ -824,6 +827,11 @@ th[colspan].stn-table__thead tr:not(:last-child) th::before {
824
827
  justify-content: center;
825
828
  }
826
829
 
830
+ .stn-table__grid thead tr > th:last-child .stn-table__resizer,
831
+ .stn-table__grid thead tr > th:nth-last-child(2):has(+ th[aria-hidden]:last-child) .stn-table__resizer {
832
+ right: 0;
833
+ }
834
+
827
835
  .stn-table__resizer::after {
828
836
  content: '';
829
837
  display: block;
@@ -32,6 +32,10 @@
32
32
  -webkit-appearance: none;
33
33
  }
34
34
 
35
+ .stn-text-field[list] {
36
+ line-height: normal;
37
+ }
38
+
35
39
  .stn-text-field::placeholder {
36
40
  color: var(--stn-input-placeholder);
37
41
  font-weight: var(--stn-font-weight-medium);
@@ -344,7 +348,7 @@
344
348
  font-size: var(--stn-text-field-label-size, var(--stn-text-field-font-size, var(--stn-text-body-small-size)));
345
349
  font-weight: var(--stn-text-field-label-weight, var(--stn-font-weight-medium));
346
350
  color: var(--stn-text-primary);
347
- line-height: var(--stn-text-field-label-line-height, var(--stn-line-height-default));
351
+ line-height: var(--stn-text-field-label-line-height, var(--stn-input-label-line-height, var(--stn-line-height-default)));
348
352
  white-space: nowrap;
349
353
  user-select: none;
350
354
  cursor: pointer;
@@ -5,6 +5,37 @@
5
5
  * STN 표준 시멘틱 토큰 기반 스타일링
6
6
  */
7
7
 
8
+ /* ==========================================================================
9
+ Topology Tokens (현재 노드 하이라이트 링 & 시작/종료 노드 뱃지 토큰)
10
+ - STN 4대 표준 규격: 원시 Hex/RGB 절대 금지, 순수 --stn-* 시멘틱 토큰으로만 구성
11
+ - 다크 모드(기본): 흰색 반투명 테두리 링, 흰색 뱃지 배경, 검은색 뱃지 텍스트
12
+ - 라이트 모드: Gray 반투명 테두리 링, 검은색 뱃지 배경, 흰색 뱃지 텍스트
13
+ ========================================================================== */
14
+ :root,
15
+ [data-mode='dark'],
16
+ [data-theme='dark'] {
17
+ --stn-topology-node-current-bg: color-mix(in srgb, var(--stn-static-white) 22%, transparent);
18
+ --stn-topology-node-current-ring: color-mix(in srgb, var(--stn-static-white) 40%, transparent);
19
+ --stn-topology-node-current-ambient: color-mix(in srgb, var(--stn-static-white) 15%, transparent);
20
+ --stn-topology-node-current-glow: color-mix(in srgb, var(--stn-static-white) 20%, transparent);
21
+ --stn-topology-node-point: var(--stn-primary);
22
+ --stn-topology-badge-bg: var(--stn-static-white);
23
+ --stn-topology-badge-text: var(--stn-gray-900);
24
+ --stn-topology-badge-border: color-mix(in srgb, var(--stn-gray-900) 20%, transparent);
25
+ }
26
+
27
+ [data-mode='light'],
28
+ [data-theme='light'] {
29
+ --stn-topology-node-current-bg: color-mix(in srgb, var(--stn-gray-900) 15%, transparent);
30
+ --stn-topology-node-current-ring: color-mix(in srgb, var(--stn-gray-900) 30%, transparent);
31
+ --stn-topology-node-current-ambient: color-mix(in srgb, var(--stn-gray-900) 12%, transparent);
32
+ --stn-topology-node-current-glow: color-mix(in srgb, var(--stn-gray-700) 15%, transparent);
33
+ --stn-topology-node-point: var(--stn-primary);
34
+ --stn-topology-badge-bg: var(--stn-gray-900);
35
+ --stn-topology-badge-text: var(--stn-static-white);
36
+ --stn-topology-badge-border: color-mix(in srgb, var(--stn-static-white) 20%, transparent);
37
+ }
38
+
8
39
  .stn-topology-ring,
9
40
  .stn-topology-graph {
10
41
  box-sizing: border-box;
@@ -86,7 +117,7 @@
86
117
  color: var(--stn-static-white);
87
118
  }
88
119
 
89
- /* 4대 표준 크기 규격 (xs · sm · md · lg) */
120
+ /* 5대 표준 크기 규격 (xs · sm · md · lg · xl) */
90
121
  .stn-topology-node-mark.xs .stn-topology-node__circle {
91
122
  width: var(--stn-topology-node-size-xs);
92
123
  height: var(--stn-topology-node-size-xs);
@@ -103,6 +134,10 @@
103
134
  width: var(--stn-topology-node-size-lg);
104
135
  height: var(--stn-topology-node-size-lg);
105
136
  }
137
+ .stn-topology-node-mark.xl .stn-topology-node__circle {
138
+ width: var(--stn-topology-node-size-xl);
139
+ height: var(--stn-topology-node-size-xl);
140
+ }
106
141
 
107
142
  /* Shapes: circle · square · diamond (3대 표준 도형) */
108
143
  .stn-topology-node-mark.shape-circle .stn-topology-node__circle {
@@ -134,6 +169,67 @@
134
169
  transform: rotate(45deg) scale(0.92);
135
170
  }
136
171
 
172
+ /* ==========================================================================
173
+ Current Node Highlight (현재 선택 노드 — 다크: 흰색 반투명, 라이트: gray 반투명)
174
+ ========================================================================== */
175
+ :root {
176
+ --stn-topology-node-current-ring: color-mix(in srgb, var(--stn-neutral-90, #1f242f) 28%, transparent);
177
+ --stn-topology-node-current-glow: color-mix(in srgb, var(--stn-neutral-90, #1f242f) 12%, transparent);
178
+ }
179
+
180
+ [data-theme="dark"],
181
+ .theme-dark {
182
+ --stn-topology-node-current-ring: color-mix(in srgb, var(--stn-static-white, #ffffff) 45%, transparent);
183
+ --stn-topology-node-current-glow: color-mix(in srgb, var(--stn-static-white, #ffffff) 20%, transparent);
184
+ }
185
+
186
+ /* 2D 마크용 현재 노드 스타일 */
187
+ :is(.stn-topology-node-mark.is-current, .stn-topology-node-mark.current) .stn-topology-node__circle {
188
+ outline: none;
189
+ box-shadow:
190
+ 0 0 0 3px var(--stn-topology-node-selected-gap, var(--stn-elevation-surface-0)),
191
+ 0 0 0 5.5px var(--stn-topology-node-current-ring),
192
+ 0 0 16px var(--stn-topology-node-current-glow);
193
+ transform: scale(1.06);
194
+ }
195
+
196
+ :is(.stn-topology-node-mark.shape-diamond.is-current, .stn-topology-node-mark.shape-diamond.current) .stn-topology-node__circle {
197
+ transform: rotate(45deg) scale(0.92);
198
+ }
199
+
200
+ /* 3D SVG 노드용 선택/현재 하이라이트 배경 플레이트 (border 대신 background 채움 — 다크: 흰색, 라이트: 검은색) */
201
+ .stn-topology-node__current-ring {
202
+ pointer-events: none;
203
+ transition: opacity 0.2s ease, transform 0.2s ease;
204
+ }
205
+ .stn-topology-node__current-ring :is(circle, rect, polygon) {
206
+ fill: var(--stn-topology-node-current-bg);
207
+ stroke: none;
208
+ }
209
+
210
+ /* ==========================================================================
211
+ Topology Start/End Node Badge Tokens (시작 & 종료 노드 뱃지 — 다크: 흰색, 라이트: 검은색)
212
+ ========================================================================== */
213
+ :root {
214
+ --stn-topology-badge-bg: var(--stn-neutral-90, #1f242f);
215
+ --stn-topology-badge-text: var(--stn-static-white, #ffffff);
216
+ --stn-topology-badge-border: var(--stn-elevation-surface-0);
217
+ }
218
+
219
+ [data-theme="dark"],
220
+ .theme-dark {
221
+ --stn-topology-badge-bg: var(--stn-static-white, #ffffff);
222
+ --stn-topology-badge-text: var(--stn-neutral-90, #1f242f);
223
+ --stn-topology-badge-border: var(--stn-elevation-surface-0);
224
+ }
225
+
226
+ .stn-topology-node__badge rect {
227
+ transition: fill 0.2s ease, stroke 0.2s ease;
228
+ }
229
+ .stn-topology-node__badge text {
230
+ transition: fill 0.2s ease;
231
+ }
232
+
137
233
  /* Severity / Status Themes on Circle (통일된 단일 룰) */
138
234
  .stn-topology-node-mark.normal .stn-topology-node__circle {
139
235
  background: var(--stn-opacity-white-5);
@@ -148,6 +148,7 @@
148
148
  .stn-text-color-success { color: var(--stn-feedback-success); }
149
149
  .stn-text-color-error { color: var(--stn-feedback-error); }
150
150
  .stn-text-color-info { color: var(--stn-feedback-info); }
151
+ .stn-text-color-discovery { color: var(--stn-feedback-discovery); }
151
152
  .stn-text-color-critical { color: var(--stn-grade-critical); }
152
153
  .stn-text-color-major { color: var(--stn-grade-major); }
153
154
  .stn-text-color-minor { color: var(--stn-grade-minor); }
@@ -65,6 +65,12 @@
65
65
  z-index: 0;
66
66
  }
67
67
 
68
+ @media (prefers-reduced-motion: reduce) {
69
+ .stn-login-card-glow-wrapper::before {
70
+ animation: none;
71
+ }
72
+ }
73
+
68
74
  @keyframes stnLoginCardBorderRotate {
69
75
  0% { transform: rotate(0deg); }
70
76
  100% { transform: rotate(360deg); }
@@ -82,6 +82,74 @@
82
82
  overflow: hidden;
83
83
  }
84
84
 
85
+ /* ── Stage Padding Presets (none · xs · sm · md · lg) ── */
86
+ .stn-split-view__stage--pad-none {
87
+ padding: 0;
88
+ }
89
+
90
+ .stn-split-view__stage--pad-xs {
91
+ padding: var(--stn-space-8);
92
+ }
93
+
94
+ .stn-split-view__stage--pad-sm {
95
+ padding: var(--stn-space-12);
96
+ }
97
+
98
+ .stn-split-view__stage--pad-md {
99
+ padding: var(--stn-space-16);
100
+ }
101
+
102
+ .stn-split-view__stage--pad-lg {
103
+ padding: var(--stn-space-24);
104
+ }
105
+
106
+ /* ── Side Body Padding Presets (none · xs · sm · md · lg) ── */
107
+ .stn-split-view__side--pad-none .stn-split-view__side-body,
108
+ .stn-split-view__side--pad-none .stn-split-view__side-body.stn-scroll {
109
+ padding: 0;
110
+ }
111
+
112
+ .stn-split-view__side--pad-xs .stn-split-view__side-body,
113
+ .stn-split-view__side--pad-xs .stn-split-view__side-body.stn-scroll {
114
+ padding: var(--stn-space-8);
115
+ }
116
+
117
+ .stn-split-view__side--pad-sm .stn-split-view__side-body,
118
+ .stn-split-view__side--pad-sm .stn-split-view__side-body.stn-scroll {
119
+ padding: var(--stn-space-12);
120
+ }
121
+
122
+ .stn-split-view__side--pad-md .stn-split-view__side-body,
123
+ .stn-split-view__side--pad-md .stn-split-view__side-body.stn-scroll {
124
+ padding: var(--stn-space-16);
125
+ }
126
+
127
+ .stn-split-view__side--pad-lg .stn-split-view__side-body,
128
+ .stn-split-view__side--pad-lg .stn-split-view__side-body.stn-scroll {
129
+ padding: var(--stn-space-24);
130
+ }
131
+
132
+ /* ── SplitView Root Padding Presets (none · xs · sm · md · lg) ── */
133
+ .stn-split-view--pad-none {
134
+ padding: 0;
135
+ }
136
+
137
+ .stn-split-view--pad-xs {
138
+ padding: var(--stn-space-8);
139
+ }
140
+
141
+ .stn-split-view--pad-sm {
142
+ padding: var(--stn-space-12);
143
+ }
144
+
145
+ .stn-split-view--pad-md {
146
+ padding: var(--stn-space-16);
147
+ }
148
+
149
+ .stn-split-view--pad-lg {
150
+ padding: var(--stn-space-24);
151
+ }
152
+
85
153
  /* Non-toolbar floating slots (legend, filters, callouts) */
86
154
  .stn-split-view__overlay {
87
155
  box-sizing: border-box;
@@ -34,6 +34,7 @@
34
34
  --stn-feedback-info: var(--stn-blue-400);
35
35
  --stn-feedback-warning: var(--stn-yellow-300);
36
36
  --stn-feedback-error: var(--stn-red-400);
37
+ --stn-feedback-discovery: var(--stn-purple-400);
37
38
  --stn-text-primary: var(--stn-gray-100);
38
39
  --stn-text-secondary: var(--stn-gray-200);
39
40
  --stn-text-re-primary: var(--stn-gray-850);
@@ -44,7 +45,7 @@
44
45
  --stn-grade-minor-count: var(--stn-yellow-400);
45
46
  --stn-grade-warning: var(--stn-teal-400);
46
47
  --stn-grade-normal: var(--stn-green-400);
47
- --stn-grade-neutral: var(--stn-gray-500);
48
+ --stn-grade-neutral: var(--stn-gray-450);
48
49
  --stn-icon-fg: var(--stn-gray-200);
49
50
  --stn-icon-fg-muted: var(--stn-gray-400);
50
51
  --stn-elevation-surface-0: var(--stn-gray-950);
@@ -156,13 +157,16 @@
156
157
  --stn-pagination-font-size: var(--stn-font-size-13);
157
158
  --stn-pagination-font-weight: var(--stn-font-weight-regular, 400);
158
159
  --stn-card-bg-flat: var(--stn-gray-850);
160
+ --stn-card-bg-flat-hover: var(--stn-gray-800);
159
161
  --stn-card-bg-elevated: var(--stn-gray-800);
160
162
  --stn-card-border-color: var(--stn-gray-700);
163
+ --stn-card-border-hover: var(--stn-gray-600);
161
164
  --stn-card-severity-critical-bg: color-mix(in srgb, var(--stn-red-400) 5%, transparent);
162
165
  --stn-card-severity-major-bg: color-mix(in srgb, var(--stn-orange-400) 5%, transparent);
163
166
  --stn-card-severity-minor-bg: color-mix(in srgb, var(--stn-yellow-350) 5%, transparent);
164
167
  --stn-card-severity-warning-bg: color-mix(in srgb, var(--stn-teal-400) 5%, transparent);
165
- --stn-card-shadow: none;
168
+ --stn-card-shadow: var(--stn-shadow-2, 0 4px 14px rgba(0, 0, 0, 0.45));
169
+ --stn-card-shadow-hover: var(--stn-shadow-3, 0 8px 24px rgba(0, 0, 0, 0.55));
166
170
  --stn-search-requirement-bg: transparent;
167
171
  --stn-search-requirement-border: var(--stn-gray-750);
168
172
  --stn-search-requirement-export-bg: var(--stn-gray-800);
@@ -750,6 +754,7 @@
750
754
  --stn-feedback-info: var(--stn-blue-500);
751
755
  --stn-feedback-warning: var(--stn-yellow-400);
752
756
  --stn-feedback-error: var(--stn-red-500);
757
+ --stn-feedback-discovery: var(--stn-purple-500);
753
758
  --stn-text-primary: var(--stn-gray-900);
754
759
  --stn-text-secondary: var(--stn-gray-500);
755
760
  --stn-text-re-primary: var(--stn-static-white);
@@ -872,13 +877,16 @@
872
877
  --stn-pagination-font-size: var(--stn-font-size-14);
873
878
  --stn-pagination-font-weight: var(--stn-font-weight-medium, 500);
874
879
  --stn-card-bg-flat: var(--stn-gray-50);
880
+ --stn-card-bg-flat-hover: var(--stn-gray-100);
875
881
  --stn-card-bg-elevated: var(--stn-static-white);
876
882
  --stn-card-border-color: var(--stn-border-subtle);
883
+ --stn-card-border-hover: var(--stn-gray-300);
877
884
  --stn-card-severity-critical-bg: var(--stn-red-50);
878
885
  --stn-card-severity-major-bg: var(--stn-orange-50);
879
886
  --stn-card-severity-minor-bg: var(--stn-yellow-50);
880
887
  --stn-card-severity-warning-bg: var(--stn-teal-50);
881
888
  --stn-card-shadow: var(--stn-shadow-2, 0 4px 14px rgba(0, 0, 0, 0.07));
889
+ --stn-card-shadow-hover: var(--stn-shadow-3, 0 8px 24px rgba(0, 0, 0, 0.12));
882
890
  --stn-search-requirement-bg: transparent;
883
891
  --stn-search-requirement-border: var(--stn-gray-75);
884
892
  --stn-search-requirement-export-bg: var(--stn-gray-50);
@@ -13,5 +13,6 @@
13
13
  --stn-elevation-z-dropdown: 150;
14
14
  --stn-elevation-z-drawer: 180;
15
15
  --stn-elevation-z-2: 200;
16
+ --stn-elevation-z-popover: 250;
16
17
  --stn-elevation-z-toast: 300;
17
18
  }
@@ -279,6 +279,12 @@
279
279
  --stn-topology-node-size-sm: var(--stn-size-32);
280
280
  --stn-topology-node-size-md: var(--stn-size-40);
281
281
  --stn-topology-node-size-lg: var(--stn-size-48);
282
+ --stn-topology-node-size-xl: var(--stn-size-56);
283
+ --stn-topology-node-radius-xs: var(--stn-size-12);
284
+ --stn-topology-node-radius-sm: var(--stn-size-16);
285
+ --stn-topology-node-radius-md: var(--stn-size-20);
286
+ --stn-topology-node-radius-lg: var(--stn-size-24);
287
+ --stn-topology-node-radius-xl: var(--stn-size-28);
282
288
  --stn-topology-container-min-height: var(--stn-size-260);
283
289
  --stn-topology-node-border-width: var(--stn-size-1);
284
290
  --stn-topology-minimap-border-width: var(--stn-size-1);
@@ -71,9 +71,12 @@
71
71
  --stn-text-caption-small-weight: var(--stn-font-weight-regular);
72
72
  --stn-text-caption-small-line-height: var(--stn-line-height-reading-3);
73
73
  --stn-text-caption-size: var(--stn-text-caption-medium-size);
74
+ --stn-input-label-line-height: var(--stn-line-height-default);
74
75
  --stn-text-field-label-size: var(--stn-text-body-small-size);
75
76
  --stn-text-field-label-weight: var(--stn-font-weight-medium);
76
- --stn-text-field-label-line-height: var(--stn-line-height-default);
77
+ --stn-text-field-label-line-height: var(--stn-input-label-line-height);
78
+ --stn-dropdown-label-line-height: var(--stn-input-label-line-height);
79
+ --stn-date-range-field-label-line-height: var(--stn-input-label-line-height);
77
80
  --stn-text-field-helper-size: var(--stn-text-caption-medium-size);
78
81
  --stn-text-field-helper-weight: var(--stn-font-weight-regular);
79
82
  --stn-text-field-helper-line-height: var(--stn-text-caption-medium-line-height);
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnFeedbackColors.ts"],"sourcesContent":["import type { StnSemanticTokenRow } from './stnColorPalette'\n\n/** stnPubColorPalette.ts 와 동기 — 순환 import 방지를 위해 리터럴 사용 */\nconst FEEDBACK_PRIMITIVE_HEX = {\n 'pub.blue.400': '#00aeef',\n 'pub.green.400': '#1fa550',\n 'pub.yellow.300': '#ffdc53',\n 'pub.red.400': '#d61f3a',\n} as const\n\n/** 01 PC_HTML_Revision · pub/pub.css `--toastify-color-*` (아이콘·progress bar; toastTheme light/dark) */\nexport const STN_FEEDBACK_SOURCE = {\n info: {\n hex: '#3498db',\n label: 'INFO',\n descKo: '안내, 정보',\n toastVar: '--stn-feedback-info',\n toastifyVar: '--stn-feedback-info',\n },\n success: {\n hex: '#07bc0c',\n label: 'SUCCESS',\n descKo: '완료, 성공',\n toastVar: '--stn-feedback-success',\n toastifyVar: '--stn-feedback-success',\n },\n warn: {\n hex: '#f1c40f',\n label: 'WARN',\n descKo: '주의, 경고',\n toastVar: '--stn-feedback-warning',\n toastifyVar: '--stn-feedback-warning',\n },\n error: {\n hex: '#e74c3c',\n label: 'ERROR',\n descKo: '긴급, 오류',\n toastVar: '--stn-feedback-error',\n toastifyVar: '--stn-feedback-error',\n },\n} as const\n\nexport type StnFeedbackKind = keyof typeof STN_FEEDBACK_SOURCE\n\n/** Pub toastify 유형색 → DS primitive (`--stn-feedback-*` · `--toastify-color-*`) */\nexport const STN_FEEDBACK_SEMANTIC_ROWS: StnSemanticTokenRow[] = [\n {\n token: 'pub.feedback.info',\n cssVar: '--stn-feedback-info',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.blue.400'],\n primitiveToken: 'pub.blue.400',\n },\n {\n token: 'pub.feedback.success',\n cssVar: '--stn-feedback-success',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.green.400'],\n primitiveToken: 'pub.green.400',\n },\n {\n token: 'pub.feedback.warning',\n cssVar: '--stn-feedback-warning',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.yellow.300'],\n primitiveToken: 'pub.yellow.300',\n },\n {\n token: 'pub.feedback.error',\n cssVar: '--stn-feedback-error',\n hex: FEEDBACK_PRIMITIVE_HEX['pub.red.400'],\n primitiveToken: 'pub.red.400',\n },\n]\n\nexport const STN_FEEDBACK_BY_KIND: Record<StnFeedbackKind, StnSemanticTokenRow> = {\n info: STN_FEEDBACK_SEMANTIC_ROWS[0]!,\n success: STN_FEEDBACK_SEMANTIC_ROWS[1]!,\n warn: STN_FEEDBACK_SEMANTIC_ROWS[2]!,\n error: STN_FEEDBACK_SEMANTIC_ROWS[3]!,\n}\n"],"mappings":";AAGA,IAAM,yBAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,eAAe;AACjB;AAGO,IAAM,sBAAsB;AAAA,EACjC,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EACA,OAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,aAAa;AAAA,EACf;AACF;AAKO,IAAM,6BAAoD;AAAA,EAC/D;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,cAAc;AAAA,IAC1C,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,eAAe;AAAA,IAC3C,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,gBAAgB;AAAA,IAC5C,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK,uBAAuB,aAAa;AAAA,IACzC,gBAAgB;AAAA,EAClB;AACF;AAEO,IAAM,uBAAqE;AAAA,EAChF,MAAM,2BAA2B,CAAC;AAAA,EAClC,SAAS,2BAA2B,CAAC;AAAA,EACrC,MAAM,2BAA2B,CAAC;AAAA,EAClC,OAAO,2BAA2B,CAAC;AACrC;","names":[]}
@@ -1,9 +0,0 @@
1
- // src/data/stnPackageVersion.ts
2
- var STN_UI_VERSION = "0.1.84";
3
- var STN_UI_VERSION_LABEL = "v0.1.84";
4
-
5
- export {
6
- STN_UI_VERSION,
7
- STN_UI_VERSION_LABEL
8
- };
9
- //# sourceMappingURL=chunk-P22H2BFQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.84'\nexport const STN_UI_VERSION_LABEL = 'v0.1.84'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnSplitView.ts"],"sourcesContent":["/**\n * STN Split View Pattern — Side + Stage shell (SSOT types)\n * Store locator / 망구성도 / 캔버스 탐색: 중첩 Card 없이 좌 패널 + 우 스테이지.\n */\n\nexport type StnSplitViewSideWidth = 'sm' | 'md' | 'lg'\n\nexport type StnSplitViewOverlayPlacement =\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n | 'center-left'\n | 'center-right'\n\nexport const STN_SPLIT_VIEW_SIDE_WIDTHS: readonly StnSplitViewSideWidth[] = ['sm', 'md', 'lg'] as const\n\nexport const STN_SPLIT_VIEW_OVERLAY_PLACEMENTS: readonly StnSplitViewOverlayPlacement[] = [\n 'top-left',\n 'top-right',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n 'center-left',\n 'center-right',\n] as const\n\nexport const STN_SPLIT_VIEW_INTRO = {\n name: 'Split View',\n slug: 'split-view',\n kind: 'pattern' as const,\n description:\n '카드(또는 패널) 본문을 좌 Side · 우 Stage로 나누는 레이아웃 셸입니다. Stage는 position:relative 캔버스 호스트이며 StnFloatingToolbar·Overlay를 올립니다. 맵·토폴로지·스토어 로케이터 등에 공통으로 씁니다.',\n}\n"],"mappings":";AAgBO,IAAM,6BAA+D,CAAC,MAAM,MAAM,IAAI;AAEtF,IAAM,oCAA6E;AAAA,EACxF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,uBAAuB;AAAA,EAClC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aACE;AACJ;","names":[]}