@stn-uiux/pub-ui 0.1.66 → 0.1.67

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.
@@ -116,7 +116,8 @@ var STN_LAYER0_BACKGROUND_USAGE_HTML = `<!-- L0 background \u2014 color / image
116
116
  var STN_LAYER0_MAP_LIGHT_OVERLAY = 0.2;
117
117
  var STN_LAYER0_BACKGROUND_PLAYGROUND_PRESETS = [
118
118
  { id: "dashboard", label: "dashboard", asset: "\uB300\uC2DC\uBCF4\uB4DC \uBC30\uACBD (dashboard-light / dark)", variant: "dashboard" },
119
- { id: "color", label: "color", asset: "\uB2E8\uC0C9 \uD14C\uB9C8 \uBC30\uACBD (color gradient)", variant: "none" },
119
+ { id: "color", label: "color", asset: "\uB2E8\uC0C9 \uD14C\uB9C8 \uBC30\uACBD (solid default)", variant: "none" },
120
+ { id: "gradient", label: "gradient", asset: "\uACF5\uC2DD \uC570\uBE44\uC5B8\uD2B8 \uADF8\uB77C\uB370\uC774\uC158 (\uC6CC\uC2DC/\uC2EC\uB3C4)", variant: "gradient" },
120
121
  { id: "map", label: "map", asset: "GIS \uC9C0\uB3C4 \uBC30\uACBD (map-light)", variant: "map-light" },
121
122
  { id: "topology", label: "topology", asset: "\uD1A0\uD3F4\uB85C\uC9C0 \uBC30\uACBD (showroom-b)", variant: "showroom-b" },
122
123
  { id: "none", label: "none", asset: "L0 \uBC30\uACBD \uC5C6\uC74C (\uC678\uBD80 \uCE94\uBC84\uC2A4 \uC804\uC6A9)", variant: "none" }
@@ -131,4 +132,4 @@ export {
131
132
  STN_LAYER0_MAP_LIGHT_OVERLAY,
132
133
  STN_LAYER0_BACKGROUND_PLAYGROUND_PRESETS
133
134
  };
134
- //# sourceMappingURL=chunk-QAPQ4DB2.js.map
135
+ //# sourceMappingURL=chunk-HJCUNRB3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnLayer0Background.ts"],"sourcesContent":["/**\n * Infomap Layer 0 background pattern\n * Light: 41267 · 186876 · 186860 · 202895\n * Dark: 80488 · 35369 · 84014 · 91183\n * @see StnLayer0Background · layouts/stn-layer0-bg.css\n */\n\nexport const STN_LAYER0_BACKGROUND_FIGMA = {\n none: '40000040:41267',\n noneDark: '40000040:80488',\n showroomA: '40000042:186876',\n showroomADark: '40002117:35369',\n showroomB: '40000042:186860',\n showroomBDark: '40000040:84014',\n mapLight: '40000042:202895',\n mapDark: '40000040:91183',\n login: '40004209:78293',\n loginDark: '40004209:78293',\n dashboard: '40004209:78300',\n dashboardDark: '40004209:78300',\n} as const\n\nexport type StnLayer0BackgroundKind = 'color' | 'gradient' | 'image'\n\n/** Figma 예제 프리셋 — color 1종 · gradient 1종 · image 5종 (light/dark 자동 전환) */\nexport type StnLayer0BackgroundPreset = 'none' | 'gradient' | 'showroom-a' | 'showroom-b' | 'map-light' | 'login' | 'dashboard'\n\n/** Doc site · Pub HTML 기준 경로 — 앱에서는 동일 경로 또는 자산 URL로 교체 */\nexport {\n STN_LAYER0_BACKGROUND_ASSET_PATHS,\n STN_LAYER0_BACKGROUND_DEMO_IMAGES,\n} from './stnLayer0BackgroundAssets'\n\nexport const STN_LAYER0_BACKGROUND_INTRO =\n '페이지 최하단 레벨(Level 0)에 위치하는 시스템 바닥면 배경 패턴입니다. 단색 컬러 및 맵·토폴로지 캔버스 배경 이미지를 `StnLayer0BackgroundPreset`으로 손쉽게 적용할 수 있습니다.'\n\nexport const STN_LAYER0_BACKGROUND_VARIANT_ROWS = [\n {\n preset: 'none',\n kind: 'color',\n figma: STN_LAYER0_BACKGROUND_FIGMA.none,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.noneDark,\n note: 'Light gradient · Dark elevation surface-0 (gray-950)',\n },\n {\n preset: 'dashboard',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.dashboard,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.dashboardDark,\n note: 'Dashboard · light/dark pair',\n },\n {\n preset: 'showroom-a',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.showroomA,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.showroomADark,\n note: 'Showroom A · dark logo stage',\n },\n {\n preset: 'showroom-b',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.showroomB,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.showroomBDark,\n note: 'Showroom B · dark + radial vignette',\n },\n {\n preset: 'map-light',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.mapLight,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.mapDark,\n note: 'Map light(+20% white) · Map dark',\n },\n {\n preset: 'login',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.login,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.loginDark,\n note: 'Login · light/dark pair',\n },\n] as const satisfies ReadonlyArray<{\n preset: StnLayer0BackgroundPreset\n kind: StnLayer0BackgroundKind\n figma: string\n figmaDark: string\n note: string\n}>\n\nexport const STN_LAYER0_BACKGROUND_USAGE = `import {\n StnLayer,\n StnLayer0Background,\n StnLayer0BackgroundPreset,\n DashboardPageScaffold,\n} from '@stn-uiux/pub-ui-react'\n\n/** Map / Topology — wrapClassName만 (맵 배경은 elevation CSS) */\n<DashboardPageScaffold\n shell=\"layer\"\n wrapClassName=\"stn-page--map-bg\"\n gnb={…}\n header={…}\n/>\n\n/** 일반 페이지 — L0 color (default = elevation-surface-0) */\n<StnLayer.Background>\n <StnLayer0Background color=\"default\" />\n <StnLayer.Content>{/* 본문 */}</StnLayer.Content>\n</StnLayer.Background>\n\n/** Figma image 프리셋 — showroom · map · login */\n<StnLayer.Background>\n <StnLayer0BackgroundPreset variant=\"map-light\" />\n <StnLayer.Content>{/* 본문 */}</StnLayer.Content>\n</StnLayer.Background>\n\n<StnLayer.Background>\n <StnLayer0BackgroundPreset variant=\"login\" />\n <StnLayer.Content>{/* 본문 */}</StnLayer.Content>\n</StnLayer.Background>\n\n/** 직접 조합 — light/dark 이미지 */\n<StnLayer.Background>\n <StnLayer0Background\n kind=\"image\"\n src=\"/assets/bg-light.png\"\n srcDark=\"/assets/bg-dark.png\"\n />\n <StnLayer.Content>…</StnLayer.Content>\n</StnLayer.Background>`\n\nexport const STN_LAYER0_BACKGROUND_USAGE_HTML = `<!-- L0 background — color / image -->\n<div class=\"stn-elev-0 stn-layer0-bg\">\n <!-- color -->\n <div class=\"stn-layer0-bg color default\" aria-hidden=\"true\"></div>\n\n <!-- 또는 image -->\n <div\n class=\"stn-layer0-bg image\"\n style=\"--stn-layer0-bg-image: url('/assets/bg-light.png')\"\n aria-hidden=\"true\"\n ></div>\n\n <main class=\"stn-elev-1\"><!-- L1 content --></main>\n</div>`\n\nexport const STN_LAYER0_MAP_LIGHT_OVERLAY = 0.2\n\n/** Patterns → Background playground 프리셋 (UI 라벨 · 내부 variant) */\nexport type StnLayer0BackgroundPlaygroundPresetId =\n | 'dashboard'\n | 'color'\n | 'gradient'\n | 'map'\n | 'topology'\n | 'none'\n\nexport const STN_LAYER0_BACKGROUND_PLAYGROUND_PRESETS: {\n id: StnLayer0BackgroundPlaygroundPresetId\n label: string\n asset: string\n variant?: StnLayer0BackgroundPreset\n}[] = [\n { id: 'dashboard', label: 'dashboard', asset: '대시보드 배경 (dashboard-light / dark)', variant: 'dashboard' },\n { id: 'color', label: 'color', asset: '단색 테마 배경 (solid default)', variant: 'none' },\n { id: 'gradient', label: 'gradient', asset: '공식 앰비언트 그라데이션 (워시/심도)', variant: 'gradient' },\n { id: 'map', label: 'map', asset: 'GIS 지도 배경 (map-light)', variant: 'map-light' },\n { id: 'topology', label: 'topology', asset: '토폴로지 배경 (showroom-b)', variant: 'showroom-b' },\n { id: 'none', label: 'none', asset: 'L0 배경 없음 (외부 캔버스 전용)', variant: 'none' },\n]\n"],"mappings":";AAOO,IAAM,8BAA8B;AAAA,EACzC,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW;AAAA,EACX,eAAe;AAAA,EACf,WAAW;AAAA,EACX,eAAe;AAAA,EACf,UAAU;AAAA,EACV,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,eAAe;AACjB;AAaO,IAAM,8BACX;AAEK,IAAM,qCAAqC;AAAA,EAChD;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AACF;AAQO,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0CpC,IAAM,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAezC,IAAM,+BAA+B;AAWrC,IAAM,2CAKP;AAAA,EACJ,EAAE,IAAI,aAAa,OAAO,aAAa,OAAO,kEAAoC,SAAS,YAAY;AAAA,EACvG,EAAE,IAAI,SAAS,OAAO,SAAS,OAAO,0DAA4B,SAAS,OAAO;AAAA,EAClF,EAAE,IAAI,YAAY,OAAO,YAAY,OAAO,oGAAyB,SAAS,WAAW;AAAA,EACzF,EAAE,IAAI,OAAO,OAAO,OAAO,OAAO,6CAAyB,SAAS,YAAY;AAAA,EAChF,EAAE,IAAI,YAAY,OAAO,YAAY,OAAO,sDAAwB,SAAS,aAAa;AAAA,EAC1F,EAAE,IAAI,QAAQ,OAAO,QAAQ,OAAO,+EAAwB,SAAS,OAAO;AAC9E;","names":[]}
@@ -0,0 +1,9 @@
1
+ // src/data/stnPackageVersion.ts
2
+ var STN_UI_VERSION = "0.1.67";
3
+ var STN_UI_VERSION_LABEL = "v0.1.67";
4
+
5
+ export {
6
+ STN_UI_VERSION,
7
+ STN_UI_VERSION_LABEL
8
+ };
9
+ //# sourceMappingURL=chunk-OGCKPHGD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.67'\nexport const STN_UI_VERSION_LABEL = 'v0.1.67'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}
@@ -401,18 +401,6 @@ var STN_SEMANTIC_DS_ALIAS_LIGHT = [
401
401
  cssVar: "--stn-elevation-surface-2",
402
402
  hex: "#ffffff",
403
403
  primitiveToken: "pub.static.white"
404
- },
405
- {
406
- token: "pub.light.ds.elev.3",
407
- cssVar: "--stn-elevation-surface-3",
408
- hex: "#ffffff",
409
- primitiveToken: "pub.static.white"
410
- },
411
- {
412
- token: "pub.light.ds.elev.4",
413
- cssVar: "--stn-elevation-surface-4",
414
- hex: "#ffffff",
415
- primitiveToken: "pub.static.white"
416
404
  }
417
405
  ];
418
406
  var STN_SEMANTIC_LIGHT_ROWS = [
@@ -458,4 +446,4 @@ export {
458
446
  STN_SEMANTIC_LIGHT_ROWS,
459
447
  STN_SEMANTIC_DARK_ROWS
460
448
  };
461
- //# sourceMappingURL=chunk-6NHITPET.js.map
449
+ //# sourceMappingURL=chunk-YN774RCQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/stnColorPalette.ts"],"sourcesContent":["/**\n * Foundations Color · Tokens ??�� primitive ?�레??\n * `hex` ?�드??#RRGGBB ?�는 rgba() ??`packages/stn-pub-ui/css/stn-pub-colors.css` ?� ?�기?�합?�다.\n */\nimport { STN_FEEDBACK_SEMANTIC_ROWS } from './stnFeedbackColors'\nimport { STN_GRADE_SEMANTIC_ROWS } from './stnGradeColors'\nimport {\n STN_THEME_SEMANTIC_DARK_ROWS,\n STN_THEME_SEMANTIC_LIGHT_ROWS,\n} from './stnThemeSemantic.generated'\n\nexport type StnPaletteRow = {\n /** 문서?????�기 (?? pub.gray.100) */\n token: string\n /** ?�제 CSS 변??*/\n cssVar: `--${string}`\n hex: string\n}\n\n/** ?�맨???�큰 ???�시(pub.gray.* ????매핑 */\nexport type StnSemanticTokenRow = {\n token: string\n cssVar: `--${string}`\n hex: string\n primitiveToken: string\n}\n\nfunction pubRow(family: string, step: string, value: string): StnPaletteRow {\n const parts = [...family.split('.'), step]\n return {\n token: `pub.${parts.join('.')}`,\n cssVar: `--stn-${parts.join('-')}`,\n hex: value,\n }\n}\n\nfunction hexScale(family: string, steps: Record<string, string>): StnPaletteRow[] {\n return Object.entries(steps).map(([step, hex]) => pubRow(family, step, hex.toLowerCase()))\n}\n\nconst OPACITY_PERCENT_STEPS = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95] as const\n\nfunction opacityBlackValue(percent: number): string {\n const a = (percent / 100).toFixed(4)\n return `rgba(0, 0, 0, ${a})`\n}\n\nfunction opacityWhiteValue(percent: number): string {\n const a = (percent / 100).toFixed(4)\n return `rgba(255, 255, 255, ${a})`\n}\n\nfunction opacityScale(kind: 'black' | 'white'): StnPaletteRow[] {\n const family = `opacity.${kind}`\n return OPACITY_PERCENT_STEPS.map((p) =>\n pubRow(family, String(p), kind === 'black' ? opacityBlackValue(p) : opacityWhiteValue(p)),\n )\n}\n\nexport const STN_STATIC: StnPaletteRow[] = [\n { token: 'pub.static.white', cssVar: '--stn-static-white', hex: '#ffffff' },\n { token: 'pub.static.black', cssVar: '--stn-static-black', hex: '#000000' },\n]\n\nexport const STN_GRAY_SCALE: StnPaletteRow[] = hexScale('gray', {\n '25': '#f7f9fb',\n '50': '#f2f5f8',\n '75': '#edf1f5',\n '100': '#e6ebf0',\n '150': '#d8dee6',\n '200': '#c8d0d9',\n '250': '#b8c1cc',\n '300': '#a8b2be',\n '350': '#98a3af',\n '400': '#87929e',\n '450': '#77818d',\n '500': '#66707b',\n '550': '#59626d',\n '600': '#4c545e',\n '650': '#40474f',\n '700': '#353b42',\n '750': '#2a2f35',\n '800': '#21252a',\n '850': '#191d21',\n '900': '#121518',\n '950': '#0b0e11',\n})\n\nexport const STN_RED_SCALE: StnPaletteRow[] = hexScale('red', {\n '25': '#fff6f7',\n '50': '#ffedee',\n '75': '#ffe0e3',\n '100': '#ffd0d5',\n '150': '#ffb1b9',\n '200': '#ff8f9a',\n '250': '#fa6f7d',\n '300': '#f14d5f',\n '350': '#e6374c',\n '400': '#d61f3a',\n '450': '#c71a32',\n '500': '#bf1d33',\n '550': '#b6172c',\n '600': '#931222',\n '650': '#82101e',\n '700': '#710e1a',\n '750': '#600c16',\n '800': '#500a12',\n})\n\n/** Secondary ??Cyan */\nexport const STN_CYAN_SCALE: StnPaletteRow[] = hexScale('cyan', {\n '25': '#f2fdff',\n '50': '#e6fbff',\n '75': '#d0f7ff',\n '100': '#b3f0fc',\n '150': '#80e6f7',\n '200': '#4fd9f2',\n '250': '#26cdeb',\n '300': '#06b6d4',\n '350': '#00a9c7',\n '400': '#0891b2',\n '450': '#0a839f',\n '500': '#0b7285',\n '550': '#0c6372',\n '600': '#0d5560',\n '650': '#0d474f',\n '700': '#0d3a3f',\n '750': '#0b2d31',\n '800': '#081f22',\n})\n\nexport const STN_TEAL_SCALE: StnPaletteRow[] = hexScale('teal', {\n '25': '#f2fdfc',\n '50': '#e6fbf8',\n '75': '#d1f7f1',\n '100': '#b3f0e6',\n '150': '#80e3d0',\n '200': '#4fd4b8',\n '250': '#26c7a8',\n '300': '#14b8a6',\n '350': '#0fa899',\n '400': '#0d9488',\n '450': '#0c857a',\n '500': '#0f766e',\n '550': '#10675f',\n '600': '#115850',\n '650': '#114a43',\n '700': '#103c36',\n '750': '#0d302b',\n '800': '#0a2420',\n})\n\n/** Primary ??Blue */\nexport const STN_BLUE_SCALE: StnPaletteRow[] = hexScale('blue', {\n '25': '#f2fcff',\n '50': '#e6f9ff',\n '75': '#d6f4ff',\n '100': '#c2eeff',\n '150': '#a3e3ff',\n '200': '#7fd5ff',\n '250': '#5bc7fa',\n '300': '#46bdf7',\n '350': '#28b2f2',\n '400': '#00aeef',\n '450': '#009cda',\n '500': '#0089c2',\n '550': '#0077a8',\n '600': '#00638d',\n '650': '#005174',\n '700': '#003f5c',\n '750': '#002f46',\n '800': '#001f30',\n})\n\n/** Infomap cobalt (primary gradient end) */\nexport const STN_COBALT_SCALE: StnPaletteRow[] = hexScale('cobalt', {\n '25': '#f2f6ff',\n '50': '#e6eeff',\n '75': '#d9e5ff',\n '100': '#c2d4ff',\n '150': '#a8c0ff',\n '200': '#8aa9ff',\n '250': '#6d91ff',\n '300': '#4e76f5',\n '350': '#2a58e6',\n '400': '#003bd2',\n '450': '#0035c2',\n '500': '#002fb0',\n '550': '#00299c',\n '600': '#002387',\n '650': '#001d72',\n '700': '#00175c',\n '750': '#001247',\n '800': '#000d33',\n})\n\nexport const STN_GREEN_SCALE: StnPaletteRow[] = hexScale('green', {\n '25': '#f6fef8',\n '50': '#ecfdf3',\n '75': '#ddf8e7',\n '100': '#c8f0d3',\n '150': '#a8e0b5',\n '200': '#84d39a',\n '250': '#5dc07a',\n '300': '#3ab76a',\n '350': '#2cb15c',\n '400': '#1fa550',\n '450': '#168e45',\n '500': '#0f7a37',\n '550': '#0d692f',\n '600': '#0a5927',\n '650': '#084a20',\n '700': '#073c1a',\n '750': '#052f14',\n '800': '#04240f',\n})\n\nexport const STN_YELLOW_SCALE: StnPaletteRow[] = hexScale('yellow', {\n '25': '#fffdf5',\n '50': '#fffdf0',\n '75': '#fff8d6',\n '100': '#fff4c2',\n '150': '#ffefaa',\n '200': '#ffe98f',\n '250': '#ffe372',\n '300': '#ffdc53',\n '350': '#ffd633',\n '400': '#ffcf1a',\n '450': '#f5c500',\n '500': '#e8b800',\n '550': '#d9a900',\n '600': '#c79800',\n '650': '#b58700',\n '700': '#9e7600',\n '750': '#856300',\n '800': '#6b4f00',\n})\n\nexport const STN_PURPLE_SCALE: StnPaletteRow[] = hexScale('purple', {\n '25': '#faf7ff',\n '50': '#f4f0ff',\n '75': '#ece4ff',\n '100': '#dfd2fa',\n '150': '#ccbbf2',\n '200': '#b59fe8',\n '250': '#9e84d9',\n '300': '#8a6cc8',\n '350': '#785ab5',\n '400': '#684aa1',\n '450': '#593d8d',\n '500': '#4d347a',\n '550': '#462f70',\n '600': '#402b66',\n '650': '#3b275d',\n '700': '#342250',\n '750': '#271a40',\n '800': '#190f2b',\n})\n\nexport const STN_ORANGE_SCALE: StnPaletteRow[] = hexScale('orange', {\n '25': '#fff9f3',\n '50': '#fff3e8',\n '75': '#ffe9d1',\n '100': '#ffd8b0',\n '150': '#ffc27f',\n '200': '#ffad57',\n '250': '#ff922b',\n '300': '#f97316',\n '350': '#f76707',\n '400': '#ea580c',\n '450': '#d9480f',\n '500': '#c2410c',\n '550': '#a9380a',\n '600': '#8f3008',\n '650': '#742706',\n '700': '#5f1f05',\n '750': '#4a1804',\n '800': '#361102',\n})\n\nexport const STN_OPACITY_BLACK_SCALE: StnPaletteRow[] = opacityScale('black')\nexport const STN_OPACITY_WHITE_SCALE: StnPaletteRow[] = opacityScale('white')\n\n/** Semantic ??brand primary (Infomap Blue · Pub `--point-color`) */\nexport const STN_SEMANTIC_PRIMARY_DARK: StnSemanticTokenRow = {\n token: 'pub.primary',\n cssVar: '--stn-primary',\n hex: '#00aeef',\n primitiveToken: 'pub.blue.400',\n}\n\nexport const STN_SEMANTIC_PRIMARY_LIGHT: StnSemanticTokenRow = {\n token: 'pub.primary',\n cssVar: '--stn-primary',\n hex: '#00aeef',\n primitiveToken: 'pub.blue.400',\n}\n\n/** Tokens ??· Primitive ???�체 */\nexport const STN_ALL_PALETTE_ROWS: StnPaletteRow[] = [\n ...STN_STATIC,\n ...STN_GRAY_SCALE,\n ...STN_RED_SCALE,\n ...STN_ORANGE_SCALE,\n ...STN_CYAN_SCALE,\n ...STN_TEAL_SCALE,\n ...STN_BLUE_SCALE,\n ...STN_COBALT_SCALE,\n ...STN_GREEN_SCALE,\n ...STN_YELLOW_SCALE,\n ...STN_PURPLE_SCALE,\n ...STN_OPACITY_BLACK_SCALE,\n ...STN_OPACITY_WHITE_SCALE,\n]\n\n/** Color Ratio 가?�드 ???�면 면적 비율 (flex ??10 ??60% · 20% · 10% · 10%) */\nexport type StnColorRatioSegment = {\n id: string\n flex: number\n topLabel: string\n bottomLabel: string\n graySteps?: readonly string[]\n hex?: string\n /** 브랜??그라?�이??미리보기 (dash-title · nav-active ?? */\n gradient?: string\n}\n\nfunction pubPrimitiveHex(family: string, step: string): string {\n const token = `pub.${family}.${step}`\n const row = [\n ...STN_STATIC,\n ...STN_GRAY_SCALE,\n ...STN_RED_SCALE,\n ...STN_ORANGE_SCALE,\n ...STN_PURPLE_SCALE,\n ...STN_TEAL_SCALE,\n ...STN_CYAN_SCALE,\n ...STN_BLUE_SCALE,\n ...STN_COBALT_SCALE,\n ].find((r) => r.token === token)\n return row?.hex ?? '#000000'\n}\n\n/** Dark ??gray elevation + white CTA + blue primary */\nexport const STN_COLOR_RATIO_SEGMENTS_DARK: StnColorRatioSegment[] = [\n {\n id: 'gray',\n flex: 6,\n topLabel: 'Gray Scale',\n bottomLabel: 'Surface · Elevation',\n graySteps: [\n pubPrimitiveHex('gray', '900'),\n pubPrimitiveHex('gray', '800'),\n pubPrimitiveHex('gray', '700'),\n pubPrimitiveHex('gray', '600'),\n pubPrimitiveHex('gray', '500'),\n pubPrimitiveHex('gray', '450'),\n ],\n },\n {\n id: 'white',\n flex: 2,\n topLabel: 'Static White',\n bottomLabel: 'CTA Button',\n hex: pubPrimitiveHex('static', 'white'),\n },\n {\n id: 'blue',\n flex: 2,\n topLabel: 'Blue Primary',\n bottomLabel: 'Point · Links',\n hex: pubPrimitiveHex('blue', '400'),\n },\n]\n\n/** Light ??gray background + black CTA + blue primary (Infomap) */\nexport const STN_COLOR_RATIO_SEGMENTS_LIGHT: StnColorRatioSegment[] = [\n {\n id: 'gray',\n flex: 6,\n topLabel: 'Gray Scale',\n bottomLabel: 'Background',\n graySteps: [\n pubPrimitiveHex('gray', '25'),\n pubPrimitiveHex('gray', '50'),\n pubPrimitiveHex('gray', '100'),\n pubPrimitiveHex('gray', '200'),\n pubPrimitiveHex('gray', '400'),\n pubPrimitiveHex('gray', '600'),\n ],\n },\n {\n id: 'black',\n flex: 2,\n topLabel: 'Static Black',\n bottomLabel: 'CTA Button',\n hex: pubPrimitiveHex('static', 'black'),\n },\n {\n id: 'blue',\n flex: 2,\n topLabel: 'Blue Primary',\n bottomLabel: 'Point · Links',\n hex: pubPrimitiveHex('blue', '400'),\n },\n]\n\n/** @deprecated {@link STN_COLOR_RATIO_SEGMENTS_LIGHT} 사용 */\nexport const STN_COLOR_RATIO_SEGMENTS = STN_COLOR_RATIO_SEGMENTS_LIGHT\n\nexport function hexToRgbString(value: string): string {\n const v = value.trim()\n if (v.startsWith('rgba(') || v.startsWith('rgb(')) return v\n const h = v.replace('#', '')\n if (h.length !== 6) return v\n const n = parseInt(h, 16)\n const r = (n >> 16) & 255\n const g = (n >> 8) & 255\n const b = n & 255\n return `rgb(${r}, ${g}, ${b})`\n}\n\nexport function paletteToJsonRecord(rows: StnPaletteRow[]): Record<string, string> {\n const o: Record<string, string> = {}\n for (const row of rows) {\n o[row.token] = row.hex\n }\n return o\n}\n\nexport type SemanticJsonEntry = {\n primitive: string\n hex: string\n pubVar?: string\n}\n\nexport function semanticPaletteToJsonRecord(\n rows: Array<StnSemanticTokenRow & { pubVar?: string }>,\n): Record<string, SemanticJsonEntry> {\n const o: Record<string, SemanticJsonEntry> = {}\n for (const row of rows) {\n const entry: SemanticJsonEntry = { primitive: row.primitiveToken, hex: row.hex }\n if (row.pubVar) entry.pubVar = row.pubVar\n o[row.token] = entry\n }\n return o\n}\n\n/** DS 문서??축약 alias (--stn-dm-* · Gray Scale 문서?� ?�동) */\nexport const STN_SEMANTIC_DS_ALIAS_DARK: StnSemanticTokenRow[] = [\n { token: 'pub.dark.ds.fill', cssVar: '--stn-dm-fill', hex: '#e6ebf0', primitiveToken: 'pub.gray.100' },\n { token: 'pub.dark.ds.subtext', cssVar: '--stn-dm-subtext', hex: '#c8d0d9', primitiveToken: 'pub.gray.200' },\n { token: 'pub.dark.ds.border', cssVar: '--stn-dm-border', hex: '#77818d', primitiveToken: 'pub.gray.450' },\n { token: 'pub.dark.ds.surface', cssVar: '--stn-dm-surface', hex: '#21252a', primitiveToken: 'pub.gray.800' },\n { token: 'pub.dark.ds.icon.default', cssVar: '--ico-default', hex: '#e6ebf0', primitiveToken: 'pub.gray.100' },\n { token: 'pub.dark.ds.icon.muted', cssVar: '--ico-muted', hex: 'rgba(255,255,255,0.55)', primitiveToken: 'pub.static.white · 55%' },\n { token: 'pub.dark.ds.icon.side', cssVar: '--side-font', hex: 'rgba(255,255,255,0.70)', primitiveToken: 'pub.static.white · 70%' },\n { token: 'pub.dark.ds.icon.inline', cssVar: '--icon-font', hex: 'rgba(255,255,255,0.80)', primitiveToken: 'pub.static.white · 80%' },\n]\n\n/** Light · elevation L0?�L4 �?UI ?�맨??(--stn-lm-* · pub.gray.*) */\nexport const STN_SEMANTIC_DS_ALIAS_LIGHT: StnSemanticTokenRow[] = [\n { token: 'pub.light.ds.fill', cssVar: '--stn-lm-fill', hex: '#f7f9fb', primitiveToken: 'pub.gray.25' },\n { token: 'pub.light.ds.surface', cssVar: '--stn-lm-surface', hex: '#ffffff', primitiveToken: 'pub.static.white' },\n { token: 'pub.light.ds.border', cssVar: '--stn-lm-border', hex: '#c8d0d9', primitiveToken: 'pub.gray.200' },\n { token: 'pub.light.ds.subtext', cssVar: '--stn-lm-subtext', hex: '#66707b', primitiveToken: 'pub.gray.500' },\n {\n token: 'pub.light.ds.elev.0',\n cssVar: '--stn-elevation-surface-0',\n hex: '#ffffff',\n primitiveToken: 'pub.static.white',\n },\n {\n token: 'pub.light.ds.elev.2',\n cssVar: '--stn-elevation-surface-2',\n hex: '#ffffff',\n primitiveToken: 'pub.static.white',\n },\n {\n token: 'pub.light.ds.elev.3',\n cssVar: '--stn-elevation-surface-3',\n hex: '#ffffff',\n primitiveToken: 'pub.static.white',\n },\n {\n token: 'pub.light.ds.elev.4',\n cssVar: '--stn-elevation-surface-4',\n hex: '#ffffff',\n primitiveToken: 'pub.static.white',\n },\n]\n\n/** ?�이???�마 ?�맨????brand + 01 PC_HTML_Revision theme.css 근사 매핑 */\nexport const STN_SEMANTIC_LIGHT_ROWS: StnSemanticTokenRow[] = [\n STN_SEMANTIC_PRIMARY_LIGHT,\n ...STN_FEEDBACK_SEMANTIC_ROWS,\n ...STN_GRADE_SEMANTIC_ROWS,\n ...STN_SEMANTIC_DS_ALIAS_LIGHT,\n ...STN_THEME_SEMANTIC_LIGHT_ROWS,\n]\n\n/** ?�크 ?�마 ?�맨??*/\nexport const STN_SEMANTIC_DARK_ROWS: StnSemanticTokenRow[] = [\n STN_SEMANTIC_PRIMARY_DARK,\n ...STN_FEEDBACK_SEMANTIC_ROWS,\n ...STN_GRADE_SEMANTIC_ROWS,\n ...STN_SEMANTIC_DS_ALIAS_DARK,\n ...STN_THEME_SEMANTIC_DARK_ROWS,\n]\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/data/stnColorPalette.ts"],"sourcesContent":["/**\n * Foundations Color · Tokens ??�� primitive ?�레??\n * `hex` ?�드??#RRGGBB ?�는 rgba() ??`packages/stn-pub-ui/css/stn-pub-colors.css` ?� ?�기?�합?�다.\n */\nimport { STN_FEEDBACK_SEMANTIC_ROWS } from './stnFeedbackColors'\nimport { STN_GRADE_SEMANTIC_ROWS } from './stnGradeColors'\nimport {\n STN_THEME_SEMANTIC_DARK_ROWS,\n STN_THEME_SEMANTIC_LIGHT_ROWS,\n} from './stnThemeSemantic.generated'\n\nexport type StnPaletteRow = {\n /** 문서?????�기 (?? pub.gray.100) */\n token: string\n /** ?�제 CSS 변??*/\n cssVar: `--${string}`\n hex: string\n}\n\n/** ?�맨???�큰 ???�시(pub.gray.* ????매핑 */\nexport type StnSemanticTokenRow = {\n token: string\n cssVar: `--${string}`\n hex: string\n primitiveToken: string\n}\n\nfunction pubRow(family: string, step: string, value: string): StnPaletteRow {\n const parts = [...family.split('.'), step]\n return {\n token: `pub.${parts.join('.')}`,\n cssVar: `--stn-${parts.join('-')}`,\n hex: value,\n }\n}\n\nfunction hexScale(family: string, steps: Record<string, string>): StnPaletteRow[] {\n return Object.entries(steps).map(([step, hex]) => pubRow(family, step, hex.toLowerCase()))\n}\n\nconst OPACITY_PERCENT_STEPS = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95] as const\n\nfunction opacityBlackValue(percent: number): string {\n const a = (percent / 100).toFixed(4)\n return `rgba(0, 0, 0, ${a})`\n}\n\nfunction opacityWhiteValue(percent: number): string {\n const a = (percent / 100).toFixed(4)\n return `rgba(255, 255, 255, ${a})`\n}\n\nfunction opacityScale(kind: 'black' | 'white'): StnPaletteRow[] {\n const family = `opacity.${kind}`\n return OPACITY_PERCENT_STEPS.map((p) =>\n pubRow(family, String(p), kind === 'black' ? opacityBlackValue(p) : opacityWhiteValue(p)),\n )\n}\n\nexport const STN_STATIC: StnPaletteRow[] = [\n { token: 'pub.static.white', cssVar: '--stn-static-white', hex: '#ffffff' },\n { token: 'pub.static.black', cssVar: '--stn-static-black', hex: '#000000' },\n]\n\nexport const STN_GRAY_SCALE: StnPaletteRow[] = hexScale('gray', {\n '25': '#f7f9fb',\n '50': '#f2f5f8',\n '75': '#edf1f5',\n '100': '#e6ebf0',\n '150': '#d8dee6',\n '200': '#c8d0d9',\n '250': '#b8c1cc',\n '300': '#a8b2be',\n '350': '#98a3af',\n '400': '#87929e',\n '450': '#77818d',\n '500': '#66707b',\n '550': '#59626d',\n '600': '#4c545e',\n '650': '#40474f',\n '700': '#353b42',\n '750': '#2a2f35',\n '800': '#21252a',\n '850': '#191d21',\n '900': '#121518',\n '950': '#0b0e11',\n})\n\nexport const STN_RED_SCALE: StnPaletteRow[] = hexScale('red', {\n '25': '#fff6f7',\n '50': '#ffedee',\n '75': '#ffe0e3',\n '100': '#ffd0d5',\n '150': '#ffb1b9',\n '200': '#ff8f9a',\n '250': '#fa6f7d',\n '300': '#f14d5f',\n '350': '#e6374c',\n '400': '#d61f3a',\n '450': '#c71a32',\n '500': '#bf1d33',\n '550': '#b6172c',\n '600': '#931222',\n '650': '#82101e',\n '700': '#710e1a',\n '750': '#600c16',\n '800': '#500a12',\n})\n\n/** Secondary ??Cyan */\nexport const STN_CYAN_SCALE: StnPaletteRow[] = hexScale('cyan', {\n '25': '#f2fdff',\n '50': '#e6fbff',\n '75': '#d0f7ff',\n '100': '#b3f0fc',\n '150': '#80e6f7',\n '200': '#4fd9f2',\n '250': '#26cdeb',\n '300': '#06b6d4',\n '350': '#00a9c7',\n '400': '#0891b2',\n '450': '#0a839f',\n '500': '#0b7285',\n '550': '#0c6372',\n '600': '#0d5560',\n '650': '#0d474f',\n '700': '#0d3a3f',\n '750': '#0b2d31',\n '800': '#081f22',\n})\n\nexport const STN_TEAL_SCALE: StnPaletteRow[] = hexScale('teal', {\n '25': '#f2fdfc',\n '50': '#e6fbf8',\n '75': '#d1f7f1',\n '100': '#b3f0e6',\n '150': '#80e3d0',\n '200': '#4fd4b8',\n '250': '#26c7a8',\n '300': '#14b8a6',\n '350': '#0fa899',\n '400': '#0d9488',\n '450': '#0c857a',\n '500': '#0f766e',\n '550': '#10675f',\n '600': '#115850',\n '650': '#114a43',\n '700': '#103c36',\n '750': '#0d302b',\n '800': '#0a2420',\n})\n\n/** Primary ??Blue */\nexport const STN_BLUE_SCALE: StnPaletteRow[] = hexScale('blue', {\n '25': '#f2fcff',\n '50': '#e6f9ff',\n '75': '#d6f4ff',\n '100': '#c2eeff',\n '150': '#a3e3ff',\n '200': '#7fd5ff',\n '250': '#5bc7fa',\n '300': '#46bdf7',\n '350': '#28b2f2',\n '400': '#00aeef',\n '450': '#009cda',\n '500': '#0089c2',\n '550': '#0077a8',\n '600': '#00638d',\n '650': '#005174',\n '700': '#003f5c',\n '750': '#002f46',\n '800': '#001f30',\n})\n\n/** Infomap cobalt (primary gradient end) */\nexport const STN_COBALT_SCALE: StnPaletteRow[] = hexScale('cobalt', {\n '25': '#f2f6ff',\n '50': '#e6eeff',\n '75': '#d9e5ff',\n '100': '#c2d4ff',\n '150': '#a8c0ff',\n '200': '#8aa9ff',\n '250': '#6d91ff',\n '300': '#4e76f5',\n '350': '#2a58e6',\n '400': '#003bd2',\n '450': '#0035c2',\n '500': '#002fb0',\n '550': '#00299c',\n '600': '#002387',\n '650': '#001d72',\n '700': '#00175c',\n '750': '#001247',\n '800': '#000d33',\n})\n\nexport const STN_GREEN_SCALE: StnPaletteRow[] = hexScale('green', {\n '25': '#f6fef8',\n '50': '#ecfdf3',\n '75': '#ddf8e7',\n '100': '#c8f0d3',\n '150': '#a8e0b5',\n '200': '#84d39a',\n '250': '#5dc07a',\n '300': '#3ab76a',\n '350': '#2cb15c',\n '400': '#1fa550',\n '450': '#168e45',\n '500': '#0f7a37',\n '550': '#0d692f',\n '600': '#0a5927',\n '650': '#084a20',\n '700': '#073c1a',\n '750': '#052f14',\n '800': '#04240f',\n})\n\nexport const STN_YELLOW_SCALE: StnPaletteRow[] = hexScale('yellow', {\n '25': '#fffdf5',\n '50': '#fffdf0',\n '75': '#fff8d6',\n '100': '#fff4c2',\n '150': '#ffefaa',\n '200': '#ffe98f',\n '250': '#ffe372',\n '300': '#ffdc53',\n '350': '#ffd633',\n '400': '#ffcf1a',\n '450': '#f5c500',\n '500': '#e8b800',\n '550': '#d9a900',\n '600': '#c79800',\n '650': '#b58700',\n '700': '#9e7600',\n '750': '#856300',\n '800': '#6b4f00',\n})\n\nexport const STN_PURPLE_SCALE: StnPaletteRow[] = hexScale('purple', {\n '25': '#faf7ff',\n '50': '#f4f0ff',\n '75': '#ece4ff',\n '100': '#dfd2fa',\n '150': '#ccbbf2',\n '200': '#b59fe8',\n '250': '#9e84d9',\n '300': '#8a6cc8',\n '350': '#785ab5',\n '400': '#684aa1',\n '450': '#593d8d',\n '500': '#4d347a',\n '550': '#462f70',\n '600': '#402b66',\n '650': '#3b275d',\n '700': '#342250',\n '750': '#271a40',\n '800': '#190f2b',\n})\n\nexport const STN_ORANGE_SCALE: StnPaletteRow[] = hexScale('orange', {\n '25': '#fff9f3',\n '50': '#fff3e8',\n '75': '#ffe9d1',\n '100': '#ffd8b0',\n '150': '#ffc27f',\n '200': '#ffad57',\n '250': '#ff922b',\n '300': '#f97316',\n '350': '#f76707',\n '400': '#ea580c',\n '450': '#d9480f',\n '500': '#c2410c',\n '550': '#a9380a',\n '600': '#8f3008',\n '650': '#742706',\n '700': '#5f1f05',\n '750': '#4a1804',\n '800': '#361102',\n})\n\nexport const STN_OPACITY_BLACK_SCALE: StnPaletteRow[] = opacityScale('black')\nexport const STN_OPACITY_WHITE_SCALE: StnPaletteRow[] = opacityScale('white')\n\n/** Semantic ??brand primary (Infomap Blue · Pub `--point-color`) */\nexport const STN_SEMANTIC_PRIMARY_DARK: StnSemanticTokenRow = {\n token: 'pub.primary',\n cssVar: '--stn-primary',\n hex: '#00aeef',\n primitiveToken: 'pub.blue.400',\n}\n\nexport const STN_SEMANTIC_PRIMARY_LIGHT: StnSemanticTokenRow = {\n token: 'pub.primary',\n cssVar: '--stn-primary',\n hex: '#00aeef',\n primitiveToken: 'pub.blue.400',\n}\n\n/** Tokens ??· Primitive ???�체 */\nexport const STN_ALL_PALETTE_ROWS: StnPaletteRow[] = [\n ...STN_STATIC,\n ...STN_GRAY_SCALE,\n ...STN_RED_SCALE,\n ...STN_ORANGE_SCALE,\n ...STN_CYAN_SCALE,\n ...STN_TEAL_SCALE,\n ...STN_BLUE_SCALE,\n ...STN_COBALT_SCALE,\n ...STN_GREEN_SCALE,\n ...STN_YELLOW_SCALE,\n ...STN_PURPLE_SCALE,\n ...STN_OPACITY_BLACK_SCALE,\n ...STN_OPACITY_WHITE_SCALE,\n]\n\n/** Color Ratio 가?�드 ???�면 면적 비율 (flex ??10 ??60% · 20% · 10% · 10%) */\nexport type StnColorRatioSegment = {\n id: string\n flex: number\n topLabel: string\n bottomLabel: string\n graySteps?: readonly string[]\n hex?: string\n /** 브랜??그라?�이??미리보기 (dash-title · nav-active ?? */\n gradient?: string\n}\n\nfunction pubPrimitiveHex(family: string, step: string): string {\n const token = `pub.${family}.${step}`\n const row = [\n ...STN_STATIC,\n ...STN_GRAY_SCALE,\n ...STN_RED_SCALE,\n ...STN_ORANGE_SCALE,\n ...STN_PURPLE_SCALE,\n ...STN_TEAL_SCALE,\n ...STN_CYAN_SCALE,\n ...STN_BLUE_SCALE,\n ...STN_COBALT_SCALE,\n ].find((r) => r.token === token)\n return row?.hex ?? '#000000'\n}\n\n/** Dark ??gray elevation + white CTA + blue primary */\nexport const STN_COLOR_RATIO_SEGMENTS_DARK: StnColorRatioSegment[] = [\n {\n id: 'gray',\n flex: 6,\n topLabel: 'Gray Scale',\n bottomLabel: 'Surface · Elevation',\n graySteps: [\n pubPrimitiveHex('gray', '900'),\n pubPrimitiveHex('gray', '800'),\n pubPrimitiveHex('gray', '700'),\n pubPrimitiveHex('gray', '600'),\n pubPrimitiveHex('gray', '500'),\n pubPrimitiveHex('gray', '450'),\n ],\n },\n {\n id: 'white',\n flex: 2,\n topLabel: 'Static White',\n bottomLabel: 'CTA Button',\n hex: pubPrimitiveHex('static', 'white'),\n },\n {\n id: 'blue',\n flex: 2,\n topLabel: 'Blue Primary',\n bottomLabel: 'Point · Links',\n hex: pubPrimitiveHex('blue', '400'),\n },\n]\n\n/** Light ??gray background + black CTA + blue primary (Infomap) */\nexport const STN_COLOR_RATIO_SEGMENTS_LIGHT: StnColorRatioSegment[] = [\n {\n id: 'gray',\n flex: 6,\n topLabel: 'Gray Scale',\n bottomLabel: 'Background',\n graySteps: [\n pubPrimitiveHex('gray', '25'),\n pubPrimitiveHex('gray', '50'),\n pubPrimitiveHex('gray', '100'),\n pubPrimitiveHex('gray', '200'),\n pubPrimitiveHex('gray', '400'),\n pubPrimitiveHex('gray', '600'),\n ],\n },\n {\n id: 'black',\n flex: 2,\n topLabel: 'Static Black',\n bottomLabel: 'CTA Button',\n hex: pubPrimitiveHex('static', 'black'),\n },\n {\n id: 'blue',\n flex: 2,\n topLabel: 'Blue Primary',\n bottomLabel: 'Point · Links',\n hex: pubPrimitiveHex('blue', '400'),\n },\n]\n\n/** @deprecated {@link STN_COLOR_RATIO_SEGMENTS_LIGHT} 사용 */\nexport const STN_COLOR_RATIO_SEGMENTS = STN_COLOR_RATIO_SEGMENTS_LIGHT\n\nexport function hexToRgbString(value: string): string {\n const v = value.trim()\n if (v.startsWith('rgba(') || v.startsWith('rgb(')) return v\n const h = v.replace('#', '')\n if (h.length !== 6) return v\n const n = parseInt(h, 16)\n const r = (n >> 16) & 255\n const g = (n >> 8) & 255\n const b = n & 255\n return `rgb(${r}, ${g}, ${b})`\n}\n\nexport function paletteToJsonRecord(rows: StnPaletteRow[]): Record<string, string> {\n const o: Record<string, string> = {}\n for (const row of rows) {\n o[row.token] = row.hex\n }\n return o\n}\n\nexport type SemanticJsonEntry = {\n primitive: string\n hex: string\n pubVar?: string\n}\n\nexport function semanticPaletteToJsonRecord(\n rows: Array<StnSemanticTokenRow & { pubVar?: string }>,\n): Record<string, SemanticJsonEntry> {\n const o: Record<string, SemanticJsonEntry> = {}\n for (const row of rows) {\n const entry: SemanticJsonEntry = { primitive: row.primitiveToken, hex: row.hex }\n if (row.pubVar) entry.pubVar = row.pubVar\n o[row.token] = entry\n }\n return o\n}\n\n/** DS 문서??축약 alias (--stn-dm-* · Gray Scale 문서?� ?�동) */\nexport const STN_SEMANTIC_DS_ALIAS_DARK: StnSemanticTokenRow[] = [\n { token: 'pub.dark.ds.fill', cssVar: '--stn-dm-fill', hex: '#e6ebf0', primitiveToken: 'pub.gray.100' },\n { token: 'pub.dark.ds.subtext', cssVar: '--stn-dm-subtext', hex: '#c8d0d9', primitiveToken: 'pub.gray.200' },\n { token: 'pub.dark.ds.border', cssVar: '--stn-dm-border', hex: '#77818d', primitiveToken: 'pub.gray.450' },\n { token: 'pub.dark.ds.surface', cssVar: '--stn-dm-surface', hex: '#21252a', primitiveToken: 'pub.gray.800' },\n { token: 'pub.dark.ds.icon.default', cssVar: '--ico-default', hex: '#e6ebf0', primitiveToken: 'pub.gray.100' },\n { token: 'pub.dark.ds.icon.muted', cssVar: '--ico-muted', hex: 'rgba(255,255,255,0.55)', primitiveToken: 'pub.static.white · 55%' },\n { token: 'pub.dark.ds.icon.side', cssVar: '--side-font', hex: 'rgba(255,255,255,0.70)', primitiveToken: 'pub.static.white · 70%' },\n { token: 'pub.dark.ds.icon.inline', cssVar: '--icon-font', hex: 'rgba(255,255,255,0.80)', primitiveToken: 'pub.static.white · 80%' },\n]\n\n/** Light · elevation L0?�L4 �?UI ?�맨??(--stn-lm-* · pub.gray.*) */\nexport const STN_SEMANTIC_DS_ALIAS_LIGHT: StnSemanticTokenRow[] = [\n { token: 'pub.light.ds.fill', cssVar: '--stn-lm-fill', hex: '#f7f9fb', primitiveToken: 'pub.gray.25' },\n { token: 'pub.light.ds.surface', cssVar: '--stn-lm-surface', hex: '#ffffff', primitiveToken: 'pub.static.white' },\n { token: 'pub.light.ds.border', cssVar: '--stn-lm-border', hex: '#c8d0d9', primitiveToken: 'pub.gray.200' },\n { token: 'pub.light.ds.subtext', cssVar: '--stn-lm-subtext', hex: '#66707b', primitiveToken: 'pub.gray.500' },\n {\n token: 'pub.light.ds.elev.0',\n cssVar: '--stn-elevation-surface-0',\n hex: '#ffffff',\n primitiveToken: 'pub.static.white',\n },\n {\n token: 'pub.light.ds.elev.2',\n cssVar: '--stn-elevation-surface-2',\n hex: '#ffffff',\n primitiveToken: 'pub.static.white',\n },\n]\n\n/** ?�이???�마 ?�맨????brand + 01 PC_HTML_Revision theme.css 근사 매핑 */\nexport const STN_SEMANTIC_LIGHT_ROWS: StnSemanticTokenRow[] = [\n STN_SEMANTIC_PRIMARY_LIGHT,\n ...STN_FEEDBACK_SEMANTIC_ROWS,\n ...STN_GRADE_SEMANTIC_ROWS,\n ...STN_SEMANTIC_DS_ALIAS_LIGHT,\n ...STN_THEME_SEMANTIC_LIGHT_ROWS,\n]\n\n/** ?�크 ?�마 ?�맨??*/\nexport const STN_SEMANTIC_DARK_ROWS: StnSemanticTokenRow[] = [\n STN_SEMANTIC_PRIMARY_DARK,\n ...STN_FEEDBACK_SEMANTIC_ROWS,\n ...STN_GRADE_SEMANTIC_ROWS,\n ...STN_SEMANTIC_DS_ALIAS_DARK,\n ...STN_THEME_SEMANTIC_DARK_ROWS,\n]\n"],"mappings":";;;;;;;;;;;;AA2BA,SAAS,OAAO,QAAgB,MAAc,OAA8B;AAC1E,QAAM,QAAQ,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,IAAI;AACzC,SAAO;AAAA,IACL,OAAO,OAAO,MAAM,KAAK,GAAG,CAAC;AAAA,IAC7B,QAAQ,SAAS,MAAM,KAAK,GAAG,CAAC;AAAA,IAChC,KAAK;AAAA,EACP;AACF;AAEA,SAAS,SAAS,QAAgB,OAAgD;AAChF,SAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,OAAO,QAAQ,MAAM,IAAI,YAAY,CAAC,CAAC;AAC3F;AAEA,IAAM,wBAAwB,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAE3G,SAAS,kBAAkB,SAAyB;AAClD,QAAM,KAAK,UAAU,KAAK,QAAQ,CAAC;AACnC,SAAO,iBAAiB,CAAC;AAC3B;AAEA,SAAS,kBAAkB,SAAyB;AAClD,QAAM,KAAK,UAAU,KAAK,QAAQ,CAAC;AACnC,SAAO,uBAAuB,CAAC;AACjC;AAEA,SAAS,aAAa,MAA0C;AAC9D,QAAM,SAAS,WAAW,IAAI;AAC9B,SAAO,sBAAsB;AAAA,IAAI,CAAC,MAChC,OAAO,QAAQ,OAAO,CAAC,GAAG,SAAS,UAAU,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,CAAC;AAAA,EAC1F;AACF;AAEO,IAAM,aAA8B;AAAA,EACzC,EAAE,OAAO,oBAAoB,QAAQ,sBAAsB,KAAK,UAAU;AAAA,EAC1E,EAAE,OAAO,oBAAoB,QAAQ,sBAAsB,KAAK,UAAU;AAC5E;AAEO,IAAM,iBAAkC,SAAS,QAAQ;AAAA,EAC9D,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAEM,IAAM,gBAAiC,SAAS,OAAO;AAAA,EAC5D,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAGM,IAAM,iBAAkC,SAAS,QAAQ;AAAA,EAC9D,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAEM,IAAM,iBAAkC,SAAS,QAAQ;AAAA,EAC9D,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAGM,IAAM,iBAAkC,SAAS,QAAQ;AAAA,EAC9D,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAGM,IAAM,mBAAoC,SAAS,UAAU;AAAA,EAClE,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAEM,IAAM,kBAAmC,SAAS,SAAS;AAAA,EAChE,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAEM,IAAM,mBAAoC,SAAS,UAAU;AAAA,EAClE,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAEM,IAAM,mBAAoC,SAAS,UAAU;AAAA,EAClE,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAEM,IAAM,mBAAoC,SAAS,UAAU;AAAA,EAClE,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAEM,IAAM,0BAA2C,aAAa,OAAO;AACrE,IAAM,0BAA2C,aAAa,OAAO;AAGrE,IAAM,4BAAiD;AAAA,EAC5D,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,gBAAgB;AAClB;AAEO,IAAM,6BAAkD;AAAA,EAC7D,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,gBAAgB;AAClB;AAGO,IAAM,uBAAwC;AAAA,EACnD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAcA,SAAS,gBAAgB,QAAgB,MAAsB;AAC7D,QAAM,QAAQ,OAAO,MAAM,IAAI,IAAI;AACnC,QAAM,MAAM;AAAA,IACV,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,KAAK;AAC/B,SAAO,KAAK,OAAO;AACrB;AAGO,IAAM,gCAAwD;AAAA,EACnE;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,MACT,gBAAgB,QAAQ,KAAK;AAAA,MAC7B,gBAAgB,QAAQ,KAAK;AAAA,MAC7B,gBAAgB,QAAQ,KAAK;AAAA,MAC7B,gBAAgB,QAAQ,KAAK;AAAA,MAC7B,gBAAgB,QAAQ,KAAK;AAAA,MAC7B,gBAAgB,QAAQ,KAAK;AAAA,IAC/B;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,KAAK,gBAAgB,UAAU,OAAO;AAAA,EACxC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,KAAK,gBAAgB,QAAQ,KAAK;AAAA,EACpC;AACF;AAGO,IAAM,iCAAyD;AAAA,EACpE;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,MACT,gBAAgB,QAAQ,IAAI;AAAA,MAC5B,gBAAgB,QAAQ,IAAI;AAAA,MAC5B,gBAAgB,QAAQ,KAAK;AAAA,MAC7B,gBAAgB,QAAQ,KAAK;AAAA,MAC7B,gBAAgB,QAAQ,KAAK;AAAA,MAC7B,gBAAgB,QAAQ,KAAK;AAAA,IAC/B;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,KAAK,gBAAgB,UAAU,OAAO;AAAA,EACxC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,KAAK,gBAAgB,QAAQ,KAAK;AAAA,EACpC;AACF;AAGO,IAAM,2BAA2B;AAEjC,SAAS,eAAe,OAAuB;AACpD,QAAM,IAAI,MAAM,KAAK;AACrB,MAAI,EAAE,WAAW,OAAO,KAAK,EAAE,WAAW,MAAM,EAAG,QAAO;AAC1D,QAAM,IAAI,EAAE,QAAQ,KAAK,EAAE;AAC3B,MAAI,EAAE,WAAW,EAAG,QAAO;AAC3B,QAAM,IAAI,SAAS,GAAG,EAAE;AACxB,QAAM,IAAK,KAAK,KAAM;AACtB,QAAM,IAAK,KAAK,IAAK;AACrB,QAAM,IAAI,IAAI;AACd,SAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7B;AAEO,SAAS,oBAAoB,MAA+C;AACjF,QAAM,IAA4B,CAAC;AACnC,aAAW,OAAO,MAAM;AACtB,MAAE,IAAI,KAAK,IAAI,IAAI;AAAA,EACrB;AACA,SAAO;AACT;AAQO,SAAS,4BACd,MACmC;AACnC,QAAM,IAAuC,CAAC;AAC9C,aAAW,OAAO,MAAM;AACtB,UAAM,QAA2B,EAAE,WAAW,IAAI,gBAAgB,KAAK,IAAI,IAAI;AAC/E,QAAI,IAAI,OAAQ,OAAM,SAAS,IAAI;AACnC,MAAE,IAAI,KAAK,IAAI;AAAA,EACjB;AACA,SAAO;AACT;AAGO,IAAM,6BAAoD;AAAA,EAC/D,EAAE,OAAO,oBAAoB,QAAQ,iBAAiB,KAAK,WAAW,gBAAgB,eAAe;AAAA,EACrG,EAAE,OAAO,uBAAuB,QAAQ,oBAAoB,KAAK,WAAW,gBAAgB,eAAe;AAAA,EAC3G,EAAE,OAAO,sBAAsB,QAAQ,mBAAmB,KAAK,WAAW,gBAAgB,eAAe;AAAA,EACzG,EAAE,OAAO,uBAAuB,QAAQ,oBAAoB,KAAK,WAAW,gBAAgB,eAAe;AAAA,EAC3G,EAAE,OAAO,4BAA4B,QAAQ,iBAAiB,KAAK,WAAW,gBAAgB,eAAe;AAAA,EAC7G,EAAE,OAAO,0BAA0B,QAAQ,eAAe,KAAK,0BAA0B,gBAAgB,4BAAyB;AAAA,EAClI,EAAE,OAAO,yBAAyB,QAAQ,eAAe,KAAK,0BAA0B,gBAAgB,4BAAyB;AAAA,EACjI,EAAE,OAAO,2BAA2B,QAAQ,eAAe,KAAK,0BAA0B,gBAAgB,4BAAyB;AACrI;AAGO,IAAM,8BAAqD;AAAA,EAChE,EAAE,OAAO,qBAAqB,QAAQ,iBAAiB,KAAK,WAAW,gBAAgB,cAAc;AAAA,EACrG,EAAE,OAAO,wBAAwB,QAAQ,oBAAoB,KAAK,WAAW,gBAAgB,mBAAmB;AAAA,EAChH,EAAE,OAAO,uBAAuB,QAAQ,mBAAmB,KAAK,WAAW,gBAAgB,eAAe;AAAA,EAC1G,EAAE,OAAO,wBAAwB,QAAQ,oBAAoB,KAAK,WAAW,gBAAgB,eAAe;AAAA,EAC5G;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,gBAAgB;AAAA,EAClB;AACF;AAGO,IAAM,0BAAiD;AAAA,EAC5D;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAGO,IAAM,yBAAgD;AAAA,EAC3D;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;","names":[]}
package/dist/cli.js CHANGED
@@ -32,7 +32,7 @@ import {
32
32
  } from "./chunk-EQ6LUBD6.js";
33
33
  import {
34
34
  STN_LAYER0_BACKGROUND_USAGE
35
- } from "./chunk-QAPQ4DB2.js";
35
+ } from "./chunk-HJCUNRB3.js";
36
36
  import "./chunk-XBFXX3D6.js";
37
37
  import {
38
38
  STN_LAYOUT_LIST_VIEW_USAGE
@@ -135,7 +135,7 @@ import {
135
135
  import {
136
136
  STN_UI_VERSION,
137
137
  STN_UI_VERSION_LABEL
138
- } from "../chunk-XPARWRVD.js";
138
+ } from "../chunk-OGCKPHGD.js";
139
139
  import {
140
140
  STN_PAGE_ENTER_MOTION_INTRO,
141
141
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -280,7 +280,7 @@ import {
280
280
  hexToRgbString,
281
281
  paletteToJsonRecord,
282
282
  semanticPaletteToJsonRecord
283
- } from "../chunk-6NHITPET.js";
283
+ } from "../chunk-YN774RCQ.js";
284
284
  import {
285
285
  STN_THEME_SEMANTIC_DARK_ROWS,
286
286
  STN_THEME_SEMANTIC_LIGHT_ROWS
@@ -422,7 +422,7 @@ import {
422
422
  STN_LAYER0_BACKGROUND_USAGE_HTML,
423
423
  STN_LAYER0_BACKGROUND_VARIANT_ROWS,
424
424
  STN_LAYER0_MAP_LIGHT_OVERLAY
425
- } from "../chunk-QAPQ4DB2.js";
425
+ } from "../chunk-HJCUNRB3.js";
426
426
  import {
427
427
  STN_CDN_ASSET_BASE,
428
428
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
@@ -25,7 +25,7 @@ import {
25
25
  hexToRgbString,
26
26
  paletteToJsonRecord,
27
27
  semanticPaletteToJsonRecord
28
- } from "../chunk-6NHITPET.js";
28
+ } from "../chunk-YN774RCQ.js";
29
29
  import "../chunk-YYA5KCXU.js";
30
30
  import "../chunk-E26XJXQY.js";
31
31
  import "../chunk-BYGKJSDN.js";
@@ -20,9 +20,9 @@ declare const STN_LAYER0_BACKGROUND_FIGMA: {
20
20
  readonly dashboard: "40004209:78300";
21
21
  readonly dashboardDark: "40004209:78300";
22
22
  };
23
- type StnLayer0BackgroundKind = 'color' | 'image';
24
- /** Figma 예제 프리셋 — color 1종 · image 5종 (light/dark 자동 전환) */
25
- type StnLayer0BackgroundPreset = 'none' | 'showroom-a' | 'showroom-b' | 'map-light' | 'login' | 'dashboard';
23
+ type StnLayer0BackgroundKind = 'color' | 'gradient' | 'image';
24
+ /** Figma 예제 프리셋 — color 1종 · gradient 1종 · image 5종 (light/dark 자동 전환) */
25
+ type StnLayer0BackgroundPreset = 'none' | 'gradient' | 'showroom-a' | 'showroom-b' | 'map-light' | 'login' | 'dashboard';
26
26
 
27
27
  declare const STN_LAYER0_BACKGROUND_INTRO = "\uD398\uC774\uC9C0 \uCD5C\uD558\uB2E8 \uB808\uBCA8(Level 0)\uC5D0 \uC704\uCE58\uD558\uB294 \uC2DC\uC2A4\uD15C \uBC14\uB2E5\uBA74 \uBC30\uACBD \uD328\uD134\uC785\uB2C8\uB2E4. \uB2E8\uC0C9 \uCEEC\uB7EC \uBC0F \uB9F5\u00B7\uD1A0\uD3F4\uB85C\uC9C0 \uCE94\uBC84\uC2A4 \uBC30\uACBD \uC774\uBBF8\uC9C0\uB97C `StnLayer0BackgroundPreset`\uC73C\uB85C \uC190\uC27D\uAC8C \uC801\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.";
28
28
  declare const STN_LAYER0_BACKGROUND_VARIANT_ROWS: readonly [{
@@ -66,7 +66,7 @@ declare const STN_LAYER0_BACKGROUND_USAGE = "import {\n StnLayer,\n StnLayer0B
66
66
  declare const STN_LAYER0_BACKGROUND_USAGE_HTML = "<!-- L0 background \u2014 color / image -->\n<div class=\"stn-elev-0 stn-layer0-bg\">\n <!-- color -->\n <div class=\"stn-layer0-bg color default\" aria-hidden=\"true\"></div>\n\n <!-- \uB610\uB294 image -->\n <div\n class=\"stn-layer0-bg image\"\n style=\"--stn-layer0-bg-image: url('/assets/bg-light.png')\"\n aria-hidden=\"true\"\n ></div>\n\n <main class=\"stn-elev-1\"><!-- L1 content --></main>\n</div>";
67
67
  declare const STN_LAYER0_MAP_LIGHT_OVERLAY = 0.2;
68
68
  /** Patterns → Background playground 프리셋 (UI 라벨 · 내부 variant) */
69
- type StnLayer0BackgroundPlaygroundPresetId = 'dashboard' | 'color' | 'map' | 'topology' | 'none';
69
+ type StnLayer0BackgroundPlaygroundPresetId = 'dashboard' | 'color' | 'gradient' | 'map' | 'topology' | 'none';
70
70
  declare const STN_LAYER0_BACKGROUND_PLAYGROUND_PRESETS: {
71
71
  id: StnLayer0BackgroundPlaygroundPresetId;
72
72
  label: string;
@@ -6,7 +6,7 @@ import {
6
6
  STN_LAYER0_BACKGROUND_USAGE_HTML,
7
7
  STN_LAYER0_BACKGROUND_VARIANT_ROWS,
8
8
  STN_LAYER0_MAP_LIGHT_OVERLAY
9
- } from "../chunk-QAPQ4DB2.js";
9
+ } from "../chunk-HJCUNRB3.js";
10
10
  import {
11
11
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
12
12
  STN_LAYER0_BACKGROUND_DEMO_IMAGES
@@ -1,5 +1,5 @@
1
1
  /** Package version constants */
2
- declare const STN_UI_VERSION = "0.1.58";
3
- declare const STN_UI_VERSION_LABEL = "v0.1.58";
2
+ declare const STN_UI_VERSION = "0.1.67";
3
+ declare const STN_UI_VERSION_LABEL = "v0.1.67";
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-XPARWRVD.js";
4
+ } from "../chunk-OGCKPHGD.js";
5
5
  export {
6
6
  STN_UI_VERSION,
7
7
  STN_UI_VERSION_LABEL
package/dist/index.js CHANGED
@@ -140,7 +140,7 @@ import {
140
140
  import {
141
141
  STN_UI_VERSION,
142
142
  STN_UI_VERSION_LABEL
143
- } from "./chunk-XPARWRVD.js";
143
+ } from "./chunk-OGCKPHGD.js";
144
144
  import {
145
145
  STN_PAGE_ENTER_MOTION_INTRO,
146
146
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -285,7 +285,7 @@ import {
285
285
  hexToRgbString,
286
286
  paletteToJsonRecord,
287
287
  semanticPaletteToJsonRecord
288
- } from "./chunk-6NHITPET.js";
288
+ } from "./chunk-YN774RCQ.js";
289
289
  import {
290
290
  STN_THEME_SEMANTIC_DARK_ROWS,
291
291
  STN_THEME_SEMANTIC_LIGHT_ROWS
@@ -427,7 +427,7 @@ import {
427
427
  STN_LAYER0_BACKGROUND_USAGE_HTML,
428
428
  STN_LAYER0_BACKGROUND_VARIANT_ROWS,
429
429
  STN_LAYER0_MAP_LIGHT_OVERLAY
430
- } from "./chunk-QAPQ4DB2.js";
430
+ } from "./chunk-HJCUNRB3.js";
431
431
  import {
432
432
  STN_CDN_ASSET_BASE,
433
433
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stn-uiux/pub-ui",
3
- "version": "0.1.66",
3
+ "version": "0.1.67",
4
4
  "description": "STN Pub design system — tokens, specs, and CSS for product HTML / React apps",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -5,16 +5,6 @@
5
5
  * modifier는 `.stn-layer0-bg.color` / `.stn-layer0-bg.image`로만 매칭
6
6
  */
7
7
 
8
- :root {
9
- --stn-layer0-bg-gradient:
10
- linear-gradient(
11
- 224.38deg,
12
- color-mix(in srgb, var(--stn-layer0-wash) 50%, transparent) 0%,
13
- color-mix(in srgb, var(--stn-static-white) 50%, transparent) 67.15%
14
- ),
15
- linear-gradient(90deg, var(--stn-static-white) 0%, var(--stn-static-white) 100%);
16
- }
17
-
18
8
  .stn-layer0-bg {
19
9
  position: absolute;
20
10
  inset: 0;
@@ -25,28 +15,29 @@
25
15
  pointer-events: none;
26
16
  }
27
17
 
28
- /* Color preset — named look은 `.default` (추가 look은 여기에 붙입니다) */
18
+ /* 1. Color preset — named look은 `.default` (다크/라이트 모두 순수 단색 바닥면) */
29
19
  .stn-layer0-bg.color,
30
20
  .stn-layer0-bg.color.default {
31
21
  background-color: var(--stn-elevation-surface-0);
32
22
  background-image: none;
23
+ }
24
+
25
+ /* 2. Gradient preset — 공식 앰비언트 그라데이션 바닥면 (다크/라이트 자동 전환) */
26
+ .stn-layer0-bg.gradient {
27
+ background-color: var(--stn-elevation-surface-0);
28
+ background-image: var(--stn-gradient-l0-background);
33
29
  background-size: cover;
34
30
  background-position: center;
35
31
  background-repeat: no-repeat;
36
32
  }
37
33
 
38
- [data-theme='light'] .stn-layer0-bg.color {
39
- background-color: var(--stn-elevation-surface-0, var(--stn-static-white));
40
- background-image: var(--stn-layer0-bg-gradient);
41
- }
42
-
43
34
  /* Image preset */
44
35
  .stn-layer0-bg.image {
45
36
  background-color: var(--stn-elevation-surface-0);
46
37
  }
47
38
 
48
39
  [data-theme='light'] .stn-layer0-bg.image {
49
- background-color: var(--stn-elevation-surface-0, var(--stn-static-white));
40
+ background-color: var(--stn-elevation-surface-0);
50
41
  }
51
42
 
52
43
  .stn-layer0-bg__media {
@@ -51,8 +51,6 @@
51
51
  --stn-elevation-surface-1: var(--stn-opacity-black-0);
52
52
  --stn-elevation-surface-2: var(--stn-gray-800);
53
53
  --stn-elevation-surface-widget: var(--stn-gray-850);
54
- --stn-elevation-surface-3: var(--stn-gray-700);
55
- --stn-elevation-surface-4: var(--stn-opacity-black-0);
56
54
  --stn-dim-bg: color-mix(in srgb, var(--stn-gray-950) 50%, transparent);
57
55
  --stn-dim-blur: 4px;
58
56
  --stn-input-bg: var(--stn-gray-900);
@@ -645,8 +643,6 @@
645
643
  --stn-elevation-surface-1: var(--stn-opacity-black-0);
646
644
  --stn-elevation-surface-2: var(--stn-static-white);
647
645
  --stn-elevation-surface-widget: var(--stn-static-white);
648
- --stn-elevation-surface-3: var(--stn-static-white);
649
- --stn-elevation-surface-4: var(--stn-opacity-black-0);
650
646
  --stn-dim-bg: color-mix(in srgb, var(--stn-gray-900) 20%, transparent);
651
647
  --stn-dim-blur: 2px;
652
648
  --stn-input-bg: var(--stn-static-white);
@@ -8,6 +8,7 @@
8
8
 
9
9
  :root,
10
10
  [data-theme='dark'] {
11
+ --stn-gradient-l0-background: linear-gradient(135deg, var(--stn-gray-850) 0%, var(--stn-gray-950) 100%);
11
12
  --stn-gradient-main: linear-gradient(135deg, var(--stn-blue-300) 0%, var(--stn-purple-250) 100%);
12
13
  --stn-gradient-primary: linear-gradient(135deg, var(--stn-blue-500) 0%, var(--stn-blue-350) 100%);
13
14
  --stn-gradient-secondary: linear-gradient(135deg, var(--stn-purple-500) 0%, var(--stn-purple-300) 100%);
@@ -26,6 +27,7 @@
26
27
  }
27
28
 
28
29
  [data-theme='light'] {
30
+ --stn-gradient-l0-background: linear-gradient(224.38deg, color-mix(in srgb, var(--stn-layer0-wash) 50%, transparent) 0%, color-mix(in srgb, var(--stn-elevation-surface-0) 50%, transparent) 67.15%), linear-gradient(90deg, var(--stn-elevation-surface-0) 0%, var(--stn-elevation-surface-0) 100%);
29
31
  --stn-gradient-main: linear-gradient(135deg, var(--stn-blue-400) 0%, var(--stn-purple-400) 100%);
30
32
  --stn-gradient-primary: linear-gradient(135deg, var(--stn-blue-600) 0%, var(--stn-blue-400) 100%);
31
33
  --stn-gradient-secondary: linear-gradient(135deg, var(--stn-purple-600) 0%, var(--stn-purple-400) 100%);
@@ -130,13 +130,13 @@ strong {
130
130
 
131
131
  body {
132
132
  margin: 0;
133
- color: var(--stn-text-primary, var(--font, rgba(255, 255, 255, 0.85)));
133
+ color: var(--stn-text-primary);
134
134
  font-size: var(--stn-text-body-md-size);
135
135
  font-family: var(--stn-font-body);
136
136
  font-weight: var(--stn-text-body-md-weight);
137
137
  line-height: var(--stn-text-body-md-line-height);
138
138
  font-variant: tabular-nums;
139
- background-color: var(--stn-bg, #000);
139
+ background-color: var(--stn-elevation-surface-0);
140
140
  font-feature-settings: "tnum";
141
141
  }
142
142
 
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnLayer0Background.ts"],"sourcesContent":["/**\n * Infomap Layer 0 background pattern\n * Light: 41267 · 186876 · 186860 · 202895\n * Dark: 80488 · 35369 · 84014 · 91183\n * @see StnLayer0Background · layouts/stn-layer0-bg.css\n */\n\nexport const STN_LAYER0_BACKGROUND_FIGMA = {\n none: '40000040:41267',\n noneDark: '40000040:80488',\n showroomA: '40000042:186876',\n showroomADark: '40002117:35369',\n showroomB: '40000042:186860',\n showroomBDark: '40000040:84014',\n mapLight: '40000042:202895',\n mapDark: '40000040:91183',\n login: '40004209:78293',\n loginDark: '40004209:78293',\n dashboard: '40004209:78300',\n dashboardDark: '40004209:78300',\n} as const\n\nexport type StnLayer0BackgroundKind = 'color' | 'image'\n\n/** Figma 예제 프리셋 — color 1종 · image 5종 (light/dark 자동 전환) */\nexport type StnLayer0BackgroundPreset = 'none' | 'showroom-a' | 'showroom-b' | 'map-light' | 'login' | 'dashboard'\n\n/** Doc site · Pub HTML 기준 경로 — 앱에서는 동일 경로 또는 자산 URL로 교체 */\nexport {\n STN_LAYER0_BACKGROUND_ASSET_PATHS,\n STN_LAYER0_BACKGROUND_DEMO_IMAGES,\n} from './stnLayer0BackgroundAssets'\n\nexport const STN_LAYER0_BACKGROUND_INTRO =\n '페이지 최하단 레벨(Level 0)에 위치하는 시스템 바닥면 배경 패턴입니다. 단색 컬러 및 맵·토폴로지 캔버스 배경 이미지를 `StnLayer0BackgroundPreset`으로 손쉽게 적용할 수 있습니다.'\n\nexport const STN_LAYER0_BACKGROUND_VARIANT_ROWS = [\n {\n preset: 'none',\n kind: 'color',\n figma: STN_LAYER0_BACKGROUND_FIGMA.none,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.noneDark,\n note: 'Light gradient · Dark elevation surface-0 (gray-950)',\n },\n {\n preset: 'dashboard',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.dashboard,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.dashboardDark,\n note: 'Dashboard · light/dark pair',\n },\n {\n preset: 'showroom-a',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.showroomA,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.showroomADark,\n note: 'Showroom A · dark logo stage',\n },\n {\n preset: 'showroom-b',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.showroomB,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.showroomBDark,\n note: 'Showroom B · dark + radial vignette',\n },\n {\n preset: 'map-light',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.mapLight,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.mapDark,\n note: 'Map light(+20% white) · Map dark',\n },\n {\n preset: 'login',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.login,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.loginDark,\n note: 'Login · light/dark pair',\n },\n] as const satisfies ReadonlyArray<{\n preset: StnLayer0BackgroundPreset\n kind: StnLayer0BackgroundKind\n figma: string\n figmaDark: string\n note: string\n}>\n\nexport const STN_LAYER0_BACKGROUND_USAGE = `import {\n StnLayer,\n StnLayer0Background,\n StnLayer0BackgroundPreset,\n DashboardPageScaffold,\n} from '@stn-uiux/pub-ui-react'\n\n/** Map / Topology — wrapClassName만 (맵 배경은 elevation CSS) */\n<DashboardPageScaffold\n shell=\"layer\"\n wrapClassName=\"stn-page--map-bg\"\n gnb={…}\n header={…}\n/>\n\n/** 일반 페이지 — L0 color (default = elevation-surface-0) */\n<StnLayer.Background>\n <StnLayer0Background color=\"default\" />\n <StnLayer.Content>{/* 본문 */}</StnLayer.Content>\n</StnLayer.Background>\n\n/** Figma image 프리셋 — showroom · map · login */\n<StnLayer.Background>\n <StnLayer0BackgroundPreset variant=\"map-light\" />\n <StnLayer.Content>{/* 본문 */}</StnLayer.Content>\n</StnLayer.Background>\n\n<StnLayer.Background>\n <StnLayer0BackgroundPreset variant=\"login\" />\n <StnLayer.Content>{/* 본문 */}</StnLayer.Content>\n</StnLayer.Background>\n\n/** 직접 조합 — light/dark 이미지 */\n<StnLayer.Background>\n <StnLayer0Background\n kind=\"image\"\n src=\"/assets/bg-light.png\"\n srcDark=\"/assets/bg-dark.png\"\n />\n <StnLayer.Content>…</StnLayer.Content>\n</StnLayer.Background>`\n\nexport const STN_LAYER0_BACKGROUND_USAGE_HTML = `<!-- L0 background — color / image -->\n<div class=\"stn-elev-0 stn-layer0-bg\">\n <!-- color -->\n <div class=\"stn-layer0-bg color default\" aria-hidden=\"true\"></div>\n\n <!-- 또는 image -->\n <div\n class=\"stn-layer0-bg image\"\n style=\"--stn-layer0-bg-image: url('/assets/bg-light.png')\"\n aria-hidden=\"true\"\n ></div>\n\n <main class=\"stn-elev-1\"><!-- L1 content --></main>\n</div>`\n\nexport const STN_LAYER0_MAP_LIGHT_OVERLAY = 0.2\n\n/** Patterns → Background playground 프리셋 (UI 라벨 · 내부 variant) */\nexport type StnLayer0BackgroundPlaygroundPresetId =\n | 'dashboard'\n | 'color'\n | 'map'\n | 'topology'\n | 'none'\n\nexport const STN_LAYER0_BACKGROUND_PLAYGROUND_PRESETS: {\n id: StnLayer0BackgroundPlaygroundPresetId\n label: string\n asset: string\n variant?: StnLayer0BackgroundPreset\n}[] = [\n { id: 'dashboard', label: 'dashboard', asset: '대시보드 배경 (dashboard-light / dark)', variant: 'dashboard' },\n { id: 'color', label: 'color', asset: '단색 테마 배경 (color gradient)', variant: 'none' },\n { id: 'map', label: 'map', asset: 'GIS 지도 배경 (map-light)', variant: 'map-light' },\n { id: 'topology', label: 'topology', asset: '토폴로지 배경 (showroom-b)', variant: 'showroom-b' },\n { id: 'none', label: 'none', asset: 'L0 배경 없음 (외부 캔버스 전용)', variant: 'none' },\n]\n"],"mappings":";AAOO,IAAM,8BAA8B;AAAA,EACzC,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW;AAAA,EACX,eAAe;AAAA,EACf,WAAW;AAAA,EACX,eAAe;AAAA,EACf,UAAU;AAAA,EACV,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,eAAe;AACjB;AAaO,IAAM,8BACX;AAEK,IAAM,qCAAqC;AAAA,EAChD;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO,4BAA4B;AAAA,IACnC,WAAW,4BAA4B;AAAA,IACvC,MAAM;AAAA,EACR;AACF;AAQO,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0CpC,IAAM,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAezC,IAAM,+BAA+B;AAUrC,IAAM,2CAKP;AAAA,EACJ,EAAE,IAAI,aAAa,OAAO,aAAa,OAAO,kEAAoC,SAAS,YAAY;AAAA,EACvG,EAAE,IAAI,SAAS,OAAO,SAAS,OAAO,2DAA6B,SAAS,OAAO;AAAA,EACnF,EAAE,IAAI,OAAO,OAAO,OAAO,OAAO,6CAAyB,SAAS,YAAY;AAAA,EAChF,EAAE,IAAI,YAAY,OAAO,YAAY,OAAO,sDAAwB,SAAS,aAAa;AAAA,EAC1F,EAAE,IAAI,QAAQ,OAAO,QAAQ,OAAO,+EAAwB,SAAS,OAAO;AAC9E;","names":[]}
@@ -1,9 +0,0 @@
1
- // src/data/stnPackageVersion.ts
2
- var STN_UI_VERSION = "0.1.58";
3
- var STN_UI_VERSION_LABEL = "v0.1.58";
4
-
5
- export {
6
- STN_UI_VERSION,
7
- STN_UI_VERSION_LABEL
8
- };
9
- //# sourceMappingURL=chunk-XPARWRVD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.58'\nexport const STN_UI_VERSION_LABEL = 'v0.1.58'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}