@stn-uiux/pub-ui 0.1.68 → 0.1.70

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 (40) hide show
  1. package/dist/chunk-7ONB2WVN.js +1 -0
  2. package/dist/{chunk-HJCUNRB3.js → chunk-FSSMH6VS.js} +17 -1
  3. package/dist/chunk-FSSMH6VS.js.map +1 -0
  4. package/dist/{chunk-LKVTW54X.js → chunk-IZRGNUH6.js} +1 -1
  5. package/dist/chunk-IZRGNUH6.js.map +1 -0
  6. package/dist/{chunk-XBFXX3D6.js → chunk-NGUMR3D6.js} +15 -3
  7. package/dist/chunk-NGUMR3D6.js.map +1 -0
  8. package/dist/chunk-O77GW7PM.js +1 -0
  9. package/dist/chunk-O77GW7PM.js.map +1 -0
  10. package/dist/cli.js +6 -6
  11. package/dist/data/index.d.ts +2 -0
  12. package/dist/data/index.js +13 -12
  13. package/dist/data/stnDropdown.d.ts +1 -1
  14. package/dist/data/stnDropdown.js +1 -1
  15. package/dist/data/stnLayer0Background.d.ts +15 -3
  16. package/dist/data/stnLayer0Background.js +2 -2
  17. package/dist/data/stnLayer0BackgroundAssets.d.ts +12 -0
  18. package/dist/data/stnLayer0BackgroundAssets.js +1 -1
  19. package/dist/data/stnTabs.d.ts +26 -0
  20. package/dist/data/stnTabs.js +2 -0
  21. package/dist/data/stnTabs.js.map +1 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.js +13 -12
  24. package/package.json +1 -1
  25. package/styles/components/stn-card.css +44 -0
  26. package/styles/components/stn-chip.css +10 -34
  27. package/styles/components/stn-dropdown.css +20 -0
  28. package/styles/components/stn-status.css +26 -26
  29. package/styles/components/stn-tabs.css +412 -0
  30. package/styles/components/stn-widget.css +32 -0
  31. package/styles/layouts/stn-layer1-content.css +2 -2
  32. package/styles/style-pub.css +1 -0
  33. package/styles/tokens/stn-colors-semantic.css +16 -6
  34. package/styles/tokens/stn-size-semantic.css +1 -0
  35. package/styles/tokens/stn-spacing-semantic.css +4 -0
  36. package/dist/chunk-AVICAV6Z.js +0 -1
  37. package/dist/chunk-HJCUNRB3.js.map +0 -1
  38. package/dist/chunk-LKVTW54X.js.map +0 -1
  39. package/dist/chunk-XBFXX3D6.js.map +0 -1
  40. /package/dist/{chunk-AVICAV6Z.js.map → chunk-7ONB2WVN.js.map} +0 -0
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-7ONB2WVN.js.map
@@ -29,6 +29,20 @@ var STN_LAYER0_BACKGROUND_VARIANT_ROWS = [
29
29
  figmaDark: STN_LAYER0_BACKGROUND_FIGMA.dashboardDark,
30
30
  note: "Dashboard \xB7 light/dark pair"
31
31
  },
32
+ {
33
+ preset: "infomap",
34
+ kind: "image",
35
+ figma: STN_LAYER0_BACKGROUND_FIGMA.dashboard,
36
+ figmaDark: STN_LAYER0_BACKGROUND_FIGMA.dashboardDark,
37
+ note: "Infomap 3D Graphic \xB7 light/dark pair"
38
+ },
39
+ {
40
+ preset: "infomap-none",
41
+ kind: "image",
42
+ figma: STN_LAYER0_BACKGROUND_FIGMA.dashboard,
43
+ figmaDark: STN_LAYER0_BACKGROUND_FIGMA.dashboardDark,
44
+ note: "Infomap 3D Graphic (None/\uD14D\uC2A4\uD2B8 \uC5C6\uC74C) \xB7 light/dark pair"
45
+ },
32
46
  {
33
47
  preset: "showroom-a",
34
48
  kind: "image",
@@ -116,6 +130,8 @@ var STN_LAYER0_BACKGROUND_USAGE_HTML = `<!-- L0 background \u2014 color / image
116
130
  var STN_LAYER0_MAP_LIGHT_OVERLAY = 0.2;
117
131
  var STN_LAYER0_BACKGROUND_PLAYGROUND_PRESETS = [
118
132
  { id: "dashboard", label: "dashboard", asset: "\uB300\uC2DC\uBCF4\uB4DC \uBC30\uACBD (dashboard-light / dark)", variant: "dashboard" },
133
+ { id: "infomap", label: "infomap", asset: "\uC778\uD3EC\uB9F5 3D \uBC30\uACBD (infomap-light / dark)", variant: "infomap" },
134
+ { id: "infomap-none", label: "infomap-none", asset: "\uC778\uD3EC\uB9F5 3D (None/\uD14D\uC2A4\uD2B8 \uC5C6\uC74C)", variant: "infomap-none" },
119
135
  { id: "color", label: "color", asset: "\uB2E8\uC0C9 \uD14C\uB9C8 \uBC30\uACBD (solid default)", variant: "none" },
120
136
  { id: "gradient", label: "gradient", asset: "\uACF5\uC2DD \uC570\uBE44\uC5B8\uD2B8 \uADF8\uB77C\uB370\uC774\uC158 (\uC6CC\uC2DC/\uC2EC\uB3C4)", variant: "gradient" },
121
137
  { id: "map", label: "map", asset: "GIS \uC9C0\uB3C4 \uBC30\uACBD (map-light)", variant: "map-light" },
@@ -132,4 +148,4 @@ export {
132
148
  STN_LAYER0_MAP_LIGHT_OVERLAY,
133
149
  STN_LAYER0_BACKGROUND_PLAYGROUND_PRESETS
134
150
  };
135
- //# sourceMappingURL=chunk-HJCUNRB3.js.map
151
+ //# sourceMappingURL=chunk-FSSMH6VS.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 7종 (light/dark 자동 전환) */\nexport type StnLayer0BackgroundPreset = 'none' | 'gradient' | 'showroom-a' | 'showroom-b' | 'map-light' | 'login' | 'dashboard' | 'infomap' | 'infomap-none'\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: 'infomap',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.dashboard,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.dashboardDark,\n note: 'Infomap 3D Graphic · light/dark pair',\n },\n {\n preset: 'infomap-none',\n kind: 'image',\n figma: STN_LAYER0_BACKGROUND_FIGMA.dashboard,\n figmaDark: STN_LAYER0_BACKGROUND_FIGMA.dashboardDark,\n note: 'Infomap 3D Graphic (None/텍스트 없음) · 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 | 'infomap'\n | 'infomap-none'\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: 'infomap', label: 'infomap', asset: '인포맵 3D 배경 (infomap-light / dark)', variant: 'infomap' },\n { id: 'infomap-none', label: 'infomap-none', asset: '인포맵 3D (None/텍스트 없음)', variant: 'infomap-none' },\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;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;AAarC,IAAM,2CAKP;AAAA,EACJ,EAAE,IAAI,aAAa,OAAO,aAAa,OAAO,kEAAoC,SAAS,YAAY;AAAA,EACvG,EAAE,IAAI,WAAW,OAAO,WAAW,OAAO,6DAAoC,SAAS,UAAU;AAAA,EACjG,EAAE,IAAI,gBAAgB,OAAO,gBAAgB,OAAO,gEAAwB,SAAS,eAAe;AAAA,EACpG,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":[]}
@@ -174,4 +174,4 @@ export {
174
174
  STN_DROPDOWN_MENU_INTRO,
175
175
  STN_DROPDOWN_MENU_USAGE
176
176
  };
177
- //# sourceMappingURL=chunk-LKVTW54X.js.map
177
+ //# sourceMappingURL=chunk-IZRGNUH6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnDropdown.ts"],"sourcesContent":["/**\n * StnDropdown — native `<select>` · custom menu (`div.selected` + `ul.select_option`)\n * @see common.css · content.css (cctv-header, simple_board_area, ip_mpls)\n */\n\nexport type StnDropdownMode = 'native' | 'menu'\n\nexport type StnDropdownSize = 'sm' | 'md' | 'lg' | 'xl'\n\nexport type StnDropdownVariant = 'outline' | 'standard' | 'filled' | 'transparent' | 'translucent'\nexport type StnDropdownHelperTextPosition = 'top' | 'bottom' | 'left' | 'right'\nexport type StnDropdownDirection = 'down' | 'up'\n\n/** native: select에 class 직접 · wrapper: div.stn-dropdown > select.selected */\nexport type StnDropdownNativeLayout = 'inline' | 'wrapper'\n\nexport type StnDropdownModifier =\n | 'pageSize'\n | 'serverFilter'\n | 'networkArea'\n | 'fullWidth'\n\nexport type StnDropdownOption = {\n value: string\n label: string\n disabled?: boolean\n}\n\n/** StnDropdown menu sm/md/lg/xl — height only · width는 `width`/`fullWidth` */\nexport const STN_DROPDOWN_SIZE_ROWS: readonly {\n size: StnDropdownSize\n height: string\n radius: string\n fontSize: string\n pubClass: string\n typicalWidth: string\n usedIn: string\n}[] = [\n {\n size: 'sm',\n height: '24px',\n radius: '4px (radius-4)',\n fontSize: '13px',\n pubClass: 'stn-dropdown sm',\n typicalWidth: 'width 프리셋 · 기본 180px · fullWidth=100%',\n usedIn: '폼·테이블 셀 · 좁은 검색',\n },\n {\n size: 'md',\n height: '32px',\n radius: '4px (radius-4)',\n fontSize: '13px',\n pubClass: 'stn-dropdown md',\n typicalWidth: 'width 프리셋 · 기본 180px · fullWidth=100%',\n usedIn: '검색영역 · interface_list',\n },\n {\n size: 'lg',\n height: '40px',\n radius: '6px (radius-6)',\n fontSize: '14px',\n pubClass: 'stn-dropdown lg',\n typicalWidth: 'width 프리셋 · 기본 180px · fullWidth=100%',\n usedIn: '강조 검색 · 넓은 라벨 열',\n },\n {\n size: 'xl',\n height: '52px',\n radius: '8px (radius-8)',\n fontSize: '15px',\n pubClass: 'stn-dropdown xl',\n typicalWidth: 'width 프리셋 · 기본 180px · fullWidth=100%',\n usedIn: 'CCTV 헤더 검색 · 대형 대시보드 메뉴 (기존 prominent 통합)',\n },\n] as const\n\nexport const STN_DROPDOWN_INTRO =\n 'Infomap **input** 크롬 + `.stn-dropdown` 계약입니다. **Light** (`40000042:186901`) — white · gray-200 · gray-600. **Dark** (modal `40000040:75056`) — TextField와 동일 `--stn-input-*`. Chevron: Figma `40000040:101798` `icon/line/arrow-right` 12px (`/@assets/svg/system/line/arrow-right.svg` · rotate 90°). React 표준 **`StnDropdown` menu** — sm/md/lg(24·32·40px) · width 프리셋/fullWidth.'\n\nexport const STN_DROPDOWN_INVENTORY: readonly {\n id: string\n mode: StnDropdownMode\n size: StnDropdownSize\n pubClass: string\n height: string\n typicalWidth: string\n usedIn: string\n exampleHtml: string\n}[] = [\n {\n id: 'native-search-md',\n mode: 'native',\n size: 'md',\n pubClass: 'stn-dropdown stn-dropdown--size-md',\n height: '32px',\n typicalWidth: '130px (.search_area) · 기본 180px',\n usedIn: '검색영역 — interface_list, device_detail',\n exampleHtml: 'ip_mpls/interface_list.html',\n },\n {\n id: 'native-form-sm',\n mode: 'native',\n size: 'sm',\n pubClass: 'stn-dropdown stn-dropdown--size-sm',\n height: '24px',\n typicalWidth: '100% (.w100p) · 60–100px 인라인',\n usedIn: '등록/상세 폼, IP-MPLS 테이블 셀',\n exampleHtml: 'ip_mpls/interface_regist.html',\n },\n {\n id: 'native-wrapper',\n mode: 'native',\n size: 'md',\n pubClass: 'stn-dropdown > select.selected',\n height: '32px',\n typicalWidth: '130px',\n usedIn: '처리상태 등 — wrapper 안에 select',\n exampleHtml: 'dev_version/device_detail.html',\n },\n {\n id: 'native-search-field',\n mode: 'native',\n size: 'md',\n pubClass: 'stn-dropdown > select.selected.select_search',\n height: '32px',\n typicalWidth: 'auto',\n usedIn: '검색분야 선택 + 텍스트 input 조합',\n exampleHtml: 'dev_version/access_log.html',\n },\n {\n id: 'menu-cctv-prominent',\n mode: 'menu',\n size: 'md',\n pubClass: 'stn-dropdown stn-dropdown--prominent · .selected · .select_option',\n height: '52px (prominent)',\n typicalWidth: '110px (cctv-header) · 200px (simple_board)',\n usedIn: 'CCTV 헤더 검색 — React `StnDropdownMenu`',\n exampleHtml: 'koscom/honeycomb.html',\n },\n {\n id: 'menu-board-prominent',\n mode: 'menu',\n size: 'md',\n pubClass: 'simple_board_area .search_area .stn-dropdown.stn-dropdown--prominent',\n height: '52px (prominent)',\n typicalWidth: '200px',\n usedIn: '간편 게시판 검색 — `StnDropdownMenu`',\n exampleHtml: 'basic/simple_dashboard.html',\n },\n {\n id: 'native-page-size',\n mode: 'native',\n size: 'md',\n pubClass: 'stn-dropdown stn-table__page-size',\n height: '32px',\n typicalWidth: 'min 72px',\n usedIn: '테이블 footer 페이지 크기',\n exampleHtml: 'dev_version/device_detail.html',\n },\n {\n id: 'native-server-filter',\n mode: 'native',\n size: 'md',\n pubClass: 'stn-dropdown server_filter',\n height: '32px',\n typicalWidth: 'default',\n usedIn: '프로세스 팝업 검색',\n exampleHtml: 'dev_version/process (pop)',\n },\n {\n id: 'native-network-area',\n mode: 'native',\n size: 'md',\n pubClass: 'stn-dropdown network_area_box',\n height: '32px',\n typicalWidth: 'default',\n usedIn: '토폴로지·망영역 선택',\n exampleHtml: 'config topology screens',\n },\n] as const\n\nexport const STN_DROPDOWN_HTML_COUNTS = {\n nativeSelectBoxFiles: 56,\n customMenuFiles: 12,\n smallTysFiles: 17,\n wrapperSelectFiles: 13,\n} as const\n\nexport const STN_DROPDOWN_USAGE = `import { StnDropdown } from '@stn-uiux/pub-ui-react'\n\n// size = 높이 · width = 별도 (80·100·140·180·200 · fullWidth)\n<StnDropdown size=\"sm\" width={100} options={gradeOptions} value={grade} onChange={setGrade} />\n<StnDropdown size=\"md\" width={180} options={shutdownOptions} value={shutdown} onChange={setShutdown} />\n<StnDropdown size=\"lg\" fullWidth options={statusOptions} value={status} onChange={setStatus} />`\n\nexport const STN_DROPDOWN_HTML = `<!-- StnDropdown · 커스텀 드롭다운 -->\n<div class=\"stn-dropdown md\">\n <div class=\"selected\">선택값</div>\n <ul class=\"select_option\">\n <li>옵션 1</li>\n </ul>\n</div>`\n\nexport const STN_DROPDOWN_MENU_INTRO =\n '검색줄·대시보드용 **두꺼운 커스텀 메뉴**(52px, radius 8px). Pub `cctv-header` / `simple_board_area`와 동일 계열입니다. React는 `StnDropdownMenu`(`stn-dropdown--prominent`)를 쓰고, 일반 드롭다운 sm/md/lg는 `StnDropdown`입니다.'\n\nexport const STN_DROPDOWN_MENU_USAGE = `import { StnDropdownMenu } from '@stn-uiux/pub-ui-react'\n\n<StnDropdownMenu\n width={110}\n options={[\n { value: 'all', label: '전체' },\n { value: 'group', label: '그룹명' },\n { value: 'device', label: '장비명' },\n ]}\n value={field}\n onChange={setField}\n aria-label=\"검색 필드\"\n/>`\n"],"mappings":"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","names":[]}
@@ -14,7 +14,13 @@ var STN_LAYER0_BACKGROUND_DEMO_IMAGES = {
14
14
  mapDark: `${STN_CDN_ASSET_BASE}/map-dark.png`,
15
15
  login: `${STN_CDN_ASSET_BASE}/login-light.png`,
16
16
  loginLight: `${STN_CDN_ASSET_BASE}/login-light.png`,
17
- loginDark: `${STN_CDN_ASSET_BASE}/login-dark.png`
17
+ loginDark: `${STN_CDN_ASSET_BASE}/login-dark.png`,
18
+ infomap: `${STN_CDN_ASSET_BASE}/infomap-light.png`,
19
+ infomapLight: `${STN_CDN_ASSET_BASE}/infomap-light.png`,
20
+ infomapDark: `${STN_CDN_ASSET_BASE}/infomap-dark.png`,
21
+ infomapNone: `${STN_CDN_ASSET_BASE}/infomap-light-none.png`,
22
+ infomapNoneLight: `${STN_CDN_ASSET_BASE}/infomap-light-none.png`,
23
+ infomapNoneDark: `${STN_CDN_ASSET_BASE}/infomap-dark-none.png`
18
24
  };
19
25
  var STN_LAYER0_BACKGROUND_ASSET_PATHS = {
20
26
  dashboard: "@assets/images/layer0/dashboard-light.png",
@@ -30,7 +36,13 @@ var STN_LAYER0_BACKGROUND_ASSET_PATHS = {
30
36
  mapDark: "@assets/images/layer0/map-dark.png",
31
37
  login: "@assets/images/layer0/login-light.png",
32
38
  loginLight: "@assets/images/layer0/login-light.png",
33
- loginDark: "@assets/images/layer0/login-dark.png"
39
+ loginDark: "@assets/images/layer0/login-dark.png",
40
+ infomap: "@assets/images/layer0/infomap-light.png",
41
+ infomapLight: "@assets/images/layer0/infomap-light.png",
42
+ infomapDark: "@assets/images/layer0/infomap-dark.png",
43
+ infomapNone: "@assets/images/layer0/infomap-light-none.png",
44
+ infomapNoneLight: "@assets/images/layer0/infomap-light-none.png",
45
+ infomapNoneDark: "@assets/images/layer0/infomap-dark-none.png"
34
46
  };
35
47
 
36
48
  export {
@@ -38,4 +50,4 @@ export {
38
50
  STN_LAYER0_BACKGROUND_DEMO_IMAGES,
39
51
  STN_LAYER0_BACKGROUND_ASSET_PATHS
40
52
  };
41
- //# sourceMappingURL=chunk-XBFXX3D6.js.map
53
+ //# sourceMappingURL=chunk-NGUMR3D6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnLayer0BackgroundAssets.ts"],"sourcesContent":["/**\n * L0 preset images — Hosted on STN Official Vercel CDN for zero-setup & instant loading.\n */\nexport const STN_CDN_ASSET_BASE = 'https://stn-design.vercel.app/images/layer0'\n\nexport const STN_LAYER0_BACKGROUND_DEMO_IMAGES = {\n dashboard: `${STN_CDN_ASSET_BASE}/dashboard-light.png`,\n dashboardLight: `${STN_CDN_ASSET_BASE}/dashboard-light.png`,\n dashboardDark: `${STN_CDN_ASSET_BASE}/dashboard-dark.png`,\n showroomA: `${STN_CDN_ASSET_BASE}/showroom-a-light.png`,\n showroomALight: `${STN_CDN_ASSET_BASE}/showroom-a-light.png`,\n showroomADark: `${STN_CDN_ASSET_BASE}/showroom-a-dark.png`,\n showroomB: `${STN_CDN_ASSET_BASE}/showroom-b-light.png`,\n showroomBLight: `${STN_CDN_ASSET_BASE}/showroom-b-light.png`,\n showroomBDark: `${STN_CDN_ASSET_BASE}/showroom-b-dark.png`,\n mapLight: `${STN_CDN_ASSET_BASE}/map-light.png`,\n mapDark: `${STN_CDN_ASSET_BASE}/map-dark.png`,\n login: `${STN_CDN_ASSET_BASE}/login-light.png`,\n loginLight: `${STN_CDN_ASSET_BASE}/login-light.png`,\n loginDark: `${STN_CDN_ASSET_BASE}/login-dark.png`,\n infomap: `${STN_CDN_ASSET_BASE}/infomap-light.png`,\n infomapLight: `${STN_CDN_ASSET_BASE}/infomap-light.png`,\n infomapDark: `${STN_CDN_ASSET_BASE}/infomap-dark.png`,\n infomapNone: `${STN_CDN_ASSET_BASE}/infomap-light-none.png`,\n infomapNoneLight: `${STN_CDN_ASSET_BASE}/infomap-light-none.png`,\n infomapNoneDark: `${STN_CDN_ASSET_BASE}/infomap-dark-none.png`,\n} as const\n\n/** Pub CSS @assets 경로 — HTML·vanilla 소비자용 */\nexport const STN_LAYER0_BACKGROUND_ASSET_PATHS = {\n dashboard: '@assets/images/layer0/dashboard-light.png',\n dashboardLight: '@assets/images/layer0/dashboard-light.png',\n dashboardDark: '@assets/images/layer0/dashboard-dark.png',\n showroomA: '@assets/images/layer0/showroom-a-light.png',\n showroomALight: '@assets/images/layer0/showroom-a-light.png',\n showroomADark: '@assets/images/layer0/showroom-a-dark.png',\n showroomB: '@assets/images/layer0/showroom-b-light.png',\n showroomBLight: '@assets/images/layer0/showroom-b-light.png',\n showroomBDark: '@assets/images/layer0/showroom-b-dark.png',\n mapLight: '@assets/images/layer0/map-light.png',\n mapDark: '@assets/images/layer0/map-dark.png',\n login: '@assets/images/layer0/login-light.png',\n loginLight: '@assets/images/layer0/login-light.png',\n loginDark: '@assets/images/layer0/login-dark.png',\n infomap: '@assets/images/layer0/infomap-light.png',\n infomapLight: '@assets/images/layer0/infomap-light.png',\n infomapDark: '@assets/images/layer0/infomap-dark.png',\n infomapNone: '@assets/images/layer0/infomap-light-none.png',\n infomapNoneLight: '@assets/images/layer0/infomap-light-none.png',\n infomapNoneDark: '@assets/images/layer0/infomap-dark-none.png',\n} as const\n"],"mappings":";AAGO,IAAM,qBAAqB;AAE3B,IAAM,oCAAoC;AAAA,EAC/C,WAAW,GAAG,kBAAkB;AAAA,EAChC,gBAAgB,GAAG,kBAAkB;AAAA,EACrC,eAAe,GAAG,kBAAkB;AAAA,EACpC,WAAW,GAAG,kBAAkB;AAAA,EAChC,gBAAgB,GAAG,kBAAkB;AAAA,EACrC,eAAe,GAAG,kBAAkB;AAAA,EACpC,WAAW,GAAG,kBAAkB;AAAA,EAChC,gBAAgB,GAAG,kBAAkB;AAAA,EACrC,eAAe,GAAG,kBAAkB;AAAA,EACpC,UAAU,GAAG,kBAAkB;AAAA,EAC/B,SAAS,GAAG,kBAAkB;AAAA,EAC9B,OAAO,GAAG,kBAAkB;AAAA,EAC5B,YAAY,GAAG,kBAAkB;AAAA,EACjC,WAAW,GAAG,kBAAkB;AAAA,EAChC,SAAS,GAAG,kBAAkB;AAAA,EAC9B,cAAc,GAAG,kBAAkB;AAAA,EACnC,aAAa,GAAG,kBAAkB;AAAA,EAClC,aAAa,GAAG,kBAAkB;AAAA,EAClC,kBAAkB,GAAG,kBAAkB;AAAA,EACvC,iBAAiB,GAAG,kBAAkB;AACxC;AAGO,IAAM,oCAAoC;AAAA,EAC/C,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,UAAU;AAAA,EACV,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,SAAS;AAAA,EACT,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AACnB;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-O77GW7PM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/cli.js CHANGED
@@ -1,3 +1,6 @@
1
+ import {
2
+ STN_TEXT_FIELD_USAGE
3
+ } from "./chunk-NB4NJQYE.js";
1
4
  import {
2
5
  STN_TOAST_REACT_USAGE
3
6
  } from "./chunk-SOEBXG3T.js";
@@ -11,9 +14,6 @@ import {
11
14
  import {
12
15
  STN_TABLE_REACT_EXAMPLE
13
16
  } from "./chunk-IOBNIUK3.js";
14
- import {
15
- STN_TEXT_FIELD_USAGE
16
- } from "./chunk-NB4NJQYE.js";
17
17
  import {
18
18
  STN_SIDE_NAVIGATION_USAGE,
19
19
  STN_SIDE_NAV_ITEM_USAGE
@@ -32,8 +32,8 @@ import {
32
32
  } from "./chunk-EQ6LUBD6.js";
33
33
  import {
34
34
  STN_LAYER0_BACKGROUND_USAGE
35
- } from "./chunk-HJCUNRB3.js";
36
- import "./chunk-XBFXX3D6.js";
35
+ } from "./chunk-FSSMH6VS.js";
36
+ import "./chunk-NGUMR3D6.js";
37
37
  import {
38
38
  STN_LAYOUT_LIST_VIEW_USAGE
39
39
  } from "./chunk-2ZYBBVBT.js";
@@ -42,7 +42,7 @@ import {
42
42
  } from "./chunk-5BGXBJXN.js";
43
43
  import {
44
44
  STN_DROPDOWN_USAGE
45
- } from "./chunk-LKVTW54X.js";
45
+ } from "./chunk-IZRGNUH6.js";
46
46
  import {
47
47
  STN_HEADER_USAGE
48
48
  } from "./chunk-ESH5VDHX.js";
@@ -64,4 +64,6 @@ export { STN_FONT_FAMILY_ROWS, STN_FONT_SIZE_ROWS, STN_FONT_WEIGHT_ROWS, STN_LIN
64
64
  export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_VARIANTS, StnCardPadding, StnCardRadius, StnCardVariant } from './stnCard.js';
65
65
  export { STN_ALERT_CENTER_DASHBOARD_USAGE, STN_ALERT_CENTER_DASHBOARD_WIDGETS, STN_WIDGET_APPEARANCE_ROWS, STN_WIDGET_CHART_SLOT_HTML, STN_WIDGET_CHART_SLOT_REACT, STN_WIDGET_DISABILITY_STATUS_DEMO, STN_WIDGET_FIGMA, STN_WIDGET_FIGMA_DARK, STN_WIDGET_FIGMA_DARK_URL, STN_WIDGET_FIGMA_SHELL_HTML, STN_WIDGET_FIGMA_SHELL_REACT, STN_WIDGET_FIGMA_URL, STN_WIDGET_GRADE_ROW_DEMO, STN_WIDGET_HEADER_HTML, STN_WIDGET_HEADER_REACT, STN_WIDGET_INTRO, STN_WIDGET_KINDS, STN_WIDGET_SHELL_ROWS, STN_WIDGET_TOP5_BARS_DEMO, STN_WIDGET_TRAFFIC_BARS_DEMO, STN_WIDGET_USAGE, STN_WIDGET_USAGE_HTML, StnWidgetAppearance, StnWidgetAppearanceLegacy, StnWidgetAppearanceShell, StnWidgetAssetId, StnWidgetBackgroundMode, StnWidgetContentFamily, StnWidgetGradeRowGrade, StnWidgetKind, StnWidgetKindBodySlot, StnWidgetKindPreview, StnWidgetShell, buildStnWidgetKindUsage, getStnWidgetKind, isStnWidgetKindSlug, normalizeStnWidgetAppearance, resolveStnWidgetBackground, resolveStnWidgetKindAppearance, resolveStnWidgetKindBodySlot, stnWidgetSampleUrl } from './stnWidget.js';
66
66
  export { STN_STATUS_DEMO_STEPS, StnStatusDotState, StnStatusFlowStep, StnStatusFlowStepColor } from './stnStatus.js';
67
+ export { StnTabIconPosition, StnTabIconSize, StnTabItem, StnTabPanelPadding, StnTabScrollButtons, StnTabsSize, StnTabsVariant } from './stnTabs.js';
67
68
  export { SYSTEM_ICON_DATA_URLS } from './stnSystemIconsData.generated.js';
69
+ import 'react';
@@ -1,4 +1,4 @@
1
- import "../chunk-AVICAV6Z.js";
1
+ import "../chunk-O77GW7PM.js";
2
2
  import {
3
3
  STN_TOGGLE_BUTTON_PLAYGROUND_DEFAULT,
4
4
  STN_TOGGLE_BUTTON_PLAYGROUND_INTRO,
@@ -32,6 +32,7 @@ import {
32
32
  import {
33
33
  STN_STATUS_DEMO_STEPS
34
34
  } from "../chunk-SQJPE6HH.js";
35
+ import "../chunk-7ONB2WVN.js";
35
36
  import {
36
37
  STN_TEXT_AREA_HTML,
37
38
  STN_TEXT_AREA_INTRO,
@@ -290,6 +291,14 @@ import {
290
291
  STN_GRADE_SEMANTIC_ROWS,
291
292
  STN_GRADE_SOURCE
292
293
  } from "../chunk-E26XJXQY.js";
294
+ import {
295
+ STN_TEXT_FIELD_FIGMA,
296
+ STN_TEXT_FIELD_HTML,
297
+ STN_TEXT_FIELD_INTRO,
298
+ STN_TEXT_FIELD_SIZE_ROWS,
299
+ STN_TEXT_FIELD_STATES,
300
+ STN_TEXT_FIELD_USAGE
301
+ } from "../chunk-NB4NJQYE.js";
293
302
  import {
294
303
  STN_TOAST_DEMO_MSG,
295
304
  STN_TOAST_ICON_SLUG,
@@ -360,14 +369,6 @@ import {
360
369
  STN_TABLE_TH_CHECK_FIGMA,
361
370
  STN_TABLE_TH_LABEL_FIGMA
362
371
  } from "../chunk-IOBNIUK3.js";
363
- import {
364
- STN_TEXT_FIELD_FIGMA,
365
- STN_TEXT_FIELD_HTML,
366
- STN_TEXT_FIELD_INTRO,
367
- STN_TEXT_FIELD_SIZE_ROWS,
368
- STN_TEXT_FIELD_STATES,
369
- STN_TEXT_FIELD_USAGE
370
- } from "../chunk-NB4NJQYE.js";
371
372
  import {
372
373
  STN_SIDE_NAVIGATION_INTRO,
373
374
  STN_SIDE_NAVIGATION_USAGE,
@@ -422,12 +423,12 @@ import {
422
423
  STN_LAYER0_BACKGROUND_USAGE_HTML,
423
424
  STN_LAYER0_BACKGROUND_VARIANT_ROWS,
424
425
  STN_LAYER0_MAP_LIGHT_OVERLAY
425
- } from "../chunk-HJCUNRB3.js";
426
+ } from "../chunk-FSSMH6VS.js";
426
427
  import {
427
428
  STN_CDN_ASSET_BASE,
428
429
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
429
430
  STN_LAYER0_BACKGROUND_DEMO_IMAGES
430
- } from "../chunk-XBFXX3D6.js";
431
+ } from "../chunk-NGUMR3D6.js";
431
432
  import {
432
433
  STN_ALERT_CENTER_PAGE_SCAFFOLD_USAGE,
433
434
  STN_LAYER_SHELL_USAGE,
@@ -474,7 +475,7 @@ import {
474
475
  STN_DROPDOWN_MENU_USAGE,
475
476
  STN_DROPDOWN_SIZE_ROWS,
476
477
  STN_DROPDOWN_USAGE
477
- } from "../chunk-LKVTW54X.js";
478
+ } from "../chunk-IZRGNUH6.js";
478
479
  import {
479
480
  STN_HEADER_INTRO,
480
481
  STN_HEADER_PAGE_TITLE_DEMO,
@@ -4,7 +4,7 @@
4
4
  */
5
5
  type StnDropdownMode = 'native' | 'menu';
6
6
  type StnDropdownSize = 'sm' | 'md' | 'lg' | 'xl';
7
- type StnDropdownVariant = 'outline' | 'standard' | 'filled' | 'transparent';
7
+ type StnDropdownVariant = 'outline' | 'standard' | 'filled' | 'transparent' | 'translucent';
8
8
  type StnDropdownHelperTextPosition = 'top' | 'bottom' | 'left' | 'right';
9
9
  type StnDropdownDirection = 'down' | 'up';
10
10
  /** native: select에 class 직접 · wrapper: div.stn-dropdown > select.selected */
@@ -7,7 +7,7 @@ import {
7
7
  STN_DROPDOWN_MENU_USAGE,
8
8
  STN_DROPDOWN_SIZE_ROWS,
9
9
  STN_DROPDOWN_USAGE
10
- } from "../chunk-LKVTW54X.js";
10
+ } from "../chunk-IZRGNUH6.js";
11
11
  export {
12
12
  STN_DROPDOWN_HTML,
13
13
  STN_DROPDOWN_HTML_COUNTS,
@@ -21,8 +21,8 @@ declare const STN_LAYER0_BACKGROUND_FIGMA: {
21
21
  readonly dashboardDark: "40004209:78300";
22
22
  };
23
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';
24
+ /** Figma 예제 프리셋 — color 1종 · gradient 1종 · image 7종 (light/dark 자동 전환) */
25
+ type StnLayer0BackgroundPreset = 'none' | 'gradient' | 'showroom-a' | 'showroom-b' | 'map-light' | 'login' | 'dashboard' | 'infomap' | 'infomap-none';
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 [{
@@ -37,6 +37,18 @@ declare const STN_LAYER0_BACKGROUND_VARIANT_ROWS: readonly [{
37
37
  readonly figma: "40004209:78300";
38
38
  readonly figmaDark: "40004209:78300";
39
39
  readonly note: "Dashboard · light/dark pair";
40
+ }, {
41
+ readonly preset: "infomap";
42
+ readonly kind: "image";
43
+ readonly figma: "40004209:78300";
44
+ readonly figmaDark: "40004209:78300";
45
+ readonly note: "Infomap 3D Graphic · light/dark pair";
46
+ }, {
47
+ readonly preset: "infomap-none";
48
+ readonly kind: "image";
49
+ readonly figma: "40004209:78300";
50
+ readonly figmaDark: "40004209:78300";
51
+ readonly note: "Infomap 3D Graphic (None/텍스트 없음) · light/dark pair";
40
52
  }, {
41
53
  readonly preset: "showroom-a";
42
54
  readonly kind: "image";
@@ -66,7 +78,7 @@ declare const STN_LAYER0_BACKGROUND_USAGE = "import {\n StnLayer,\n StnLayer0B
66
78
  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
79
  declare const STN_LAYER0_MAP_LIGHT_OVERLAY = 0.2;
68
80
  /** Patterns → Background playground 프리셋 (UI 라벨 · 내부 variant) */
69
- type StnLayer0BackgroundPlaygroundPresetId = 'dashboard' | 'color' | 'gradient' | 'map' | 'topology' | 'none';
81
+ type StnLayer0BackgroundPlaygroundPresetId = 'dashboard' | 'infomap' | 'infomap-none' | 'color' | 'gradient' | 'map' | 'topology' | 'none';
70
82
  declare const STN_LAYER0_BACKGROUND_PLAYGROUND_PRESETS: {
71
83
  id: StnLayer0BackgroundPlaygroundPresetId;
72
84
  label: string;
@@ -6,11 +6,11 @@ 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-HJCUNRB3.js";
9
+ } from "../chunk-FSSMH6VS.js";
10
10
  import {
11
11
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
12
12
  STN_LAYER0_BACKGROUND_DEMO_IMAGES
13
- } from "../chunk-XBFXX3D6.js";
13
+ } from "../chunk-NGUMR3D6.js";
14
14
  export {
15
15
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
16
16
  STN_LAYER0_BACKGROUND_DEMO_IMAGES,
@@ -17,6 +17,12 @@ declare const STN_LAYER0_BACKGROUND_DEMO_IMAGES: {
17
17
  readonly login: "https://stn-design.vercel.app/images/layer0/login-light.png";
18
18
  readonly loginLight: "https://stn-design.vercel.app/images/layer0/login-light.png";
19
19
  readonly loginDark: "https://stn-design.vercel.app/images/layer0/login-dark.png";
20
+ readonly infomap: "https://stn-design.vercel.app/images/layer0/infomap-light.png";
21
+ readonly infomapLight: "https://stn-design.vercel.app/images/layer0/infomap-light.png";
22
+ readonly infomapDark: "https://stn-design.vercel.app/images/layer0/infomap-dark.png";
23
+ readonly infomapNone: "https://stn-design.vercel.app/images/layer0/infomap-light-none.png";
24
+ readonly infomapNoneLight: "https://stn-design.vercel.app/images/layer0/infomap-light-none.png";
25
+ readonly infomapNoneDark: "https://stn-design.vercel.app/images/layer0/infomap-dark-none.png";
20
26
  };
21
27
  /** Pub CSS @assets 경로 — HTML·vanilla 소비자용 */
22
28
  declare const STN_LAYER0_BACKGROUND_ASSET_PATHS: {
@@ -34,6 +40,12 @@ declare const STN_LAYER0_BACKGROUND_ASSET_PATHS: {
34
40
  readonly login: "@assets/images/layer0/login-light.png";
35
41
  readonly loginLight: "@assets/images/layer0/login-light.png";
36
42
  readonly loginDark: "@assets/images/layer0/login-dark.png";
43
+ readonly infomap: "@assets/images/layer0/infomap-light.png";
44
+ readonly infomapLight: "@assets/images/layer0/infomap-light.png";
45
+ readonly infomapDark: "@assets/images/layer0/infomap-dark.png";
46
+ readonly infomapNone: "@assets/images/layer0/infomap-light-none.png";
47
+ readonly infomapNoneLight: "@assets/images/layer0/infomap-light-none.png";
48
+ readonly infomapNoneDark: "@assets/images/layer0/infomap-dark-none.png";
37
49
  };
38
50
 
39
51
  export { STN_CDN_ASSET_BASE, STN_LAYER0_BACKGROUND_ASSET_PATHS, STN_LAYER0_BACKGROUND_DEMO_IMAGES };
@@ -2,7 +2,7 @@ import {
2
2
  STN_CDN_ASSET_BASE,
3
3
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
4
4
  STN_LAYER0_BACKGROUND_DEMO_IMAGES
5
- } from "../chunk-XBFXX3D6.js";
5
+ } from "../chunk-NGUMR3D6.js";
6
6
  export {
7
7
  STN_CDN_ASSET_BASE,
8
8
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ /**
4
+ * STN Tabs Data and Type Definitions
5
+ */
6
+
7
+ type StnTabsSize = 'sm' | 'md' | 'lg';
8
+ type StnTabsVariant = 'line';
9
+ type StnTabScrollButtons = 'auto' | boolean;
10
+ type StnTabIconPosition = 'start' | 'end' | 'top' | 'bottom';
11
+ type StnTabIconSize = number | 'sm' | 'md' | 'lg';
12
+ interface StnTabItem {
13
+ value: string | number;
14
+ label?: ReactNode;
15
+ icon?: ReactNode;
16
+ iconPosition?: StnTabIconPosition;
17
+ iconSize?: StnTabIconSize;
18
+ badge?: ReactNode;
19
+ count?: number | string;
20
+ disabled?: boolean;
21
+ wrapped?: boolean;
22
+ tooltip?: ReactNode;
23
+ }
24
+ type StnTabPanelPadding = 'none' | 'sm' | 'md' | 'lg';
25
+
26
+ export type { StnTabIconPosition, StnTabIconSize, StnTabItem, StnTabPanelPadding, StnTabScrollButtons, StnTabsSize, StnTabsVariant };
@@ -0,0 +1,2 @@
1
+ import "../chunk-7ONB2WVN.js";
2
+ //# sourceMappingURL=stnTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.d.ts CHANGED
@@ -64,5 +64,7 @@ export { STN_FONT_FAMILY_ROWS, STN_FONT_SIZE_ROWS, STN_FONT_WEIGHT_ROWS, STN_LIN
64
64
  export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_VARIANTS, StnCardPadding, StnCardRadius, StnCardVariant } from './data/stnCard.js';
65
65
  export { STN_ALERT_CENTER_DASHBOARD_USAGE, STN_ALERT_CENTER_DASHBOARD_WIDGETS, STN_WIDGET_APPEARANCE_ROWS, STN_WIDGET_CHART_SLOT_HTML, STN_WIDGET_CHART_SLOT_REACT, STN_WIDGET_DISABILITY_STATUS_DEMO, STN_WIDGET_FIGMA, STN_WIDGET_FIGMA_DARK, STN_WIDGET_FIGMA_DARK_URL, STN_WIDGET_FIGMA_SHELL_HTML, STN_WIDGET_FIGMA_SHELL_REACT, STN_WIDGET_FIGMA_URL, STN_WIDGET_GRADE_ROW_DEMO, STN_WIDGET_HEADER_HTML, STN_WIDGET_HEADER_REACT, STN_WIDGET_INTRO, STN_WIDGET_KINDS, STN_WIDGET_SHELL_ROWS, STN_WIDGET_TOP5_BARS_DEMO, STN_WIDGET_TRAFFIC_BARS_DEMO, STN_WIDGET_USAGE, STN_WIDGET_USAGE_HTML, StnWidgetAppearance, StnWidgetAppearanceLegacy, StnWidgetAppearanceShell, StnWidgetAssetId, StnWidgetBackgroundMode, StnWidgetContentFamily, StnWidgetGradeRowGrade, StnWidgetKind, StnWidgetKindBodySlot, StnWidgetKindPreview, StnWidgetShell, buildStnWidgetKindUsage, getStnWidgetKind, isStnWidgetKindSlug, normalizeStnWidgetAppearance, resolveStnWidgetBackground, resolveStnWidgetKindAppearance, resolveStnWidgetKindBodySlot, stnWidgetSampleUrl } from './data/stnWidget.js';
66
66
  export { STN_STATUS_DEMO_STEPS, StnStatusDotState, StnStatusFlowStep, StnStatusFlowStepColor } from './data/stnStatus.js';
67
+ export { StnTabIconPosition, StnTabIconSize, StnTabItem, StnTabPanelPadding, StnTabScrollButtons, StnTabsSize, StnTabsVariant } from './data/stnTabs.js';
67
68
  export { STN_UI_CATALOG, STN_UI_COMPONENTS, STN_UI_FOUNDATIONS, StnUiComponentId, StnUiEntry, StnUiFoundationId } from './components.js';
68
69
  export { SYSTEM_ICON_DATA_URLS } from './data/stnSystemIconsData.generated.js';
70
+ import 'react';
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  STN_UI_COMPONENTS,
4
4
  STN_UI_FOUNDATIONS
5
5
  } from "./chunk-N46UQH6L.js";
6
- import "./chunk-AVICAV6Z.js";
6
+ import "./chunk-O77GW7PM.js";
7
7
  import {
8
8
  STN_TOGGLE_BUTTON_PLAYGROUND_DEFAULT,
9
9
  STN_TOGGLE_BUTTON_PLAYGROUND_INTRO,
@@ -37,6 +37,7 @@ import {
37
37
  import {
38
38
  STN_STATUS_DEMO_STEPS
39
39
  } from "./chunk-SQJPE6HH.js";
40
+ import "./chunk-7ONB2WVN.js";
40
41
  import {
41
42
  STN_TEXT_AREA_HTML,
42
43
  STN_TEXT_AREA_INTRO,
@@ -295,6 +296,14 @@ import {
295
296
  STN_GRADE_SEMANTIC_ROWS,
296
297
  STN_GRADE_SOURCE
297
298
  } from "./chunk-E26XJXQY.js";
299
+ import {
300
+ STN_TEXT_FIELD_FIGMA,
301
+ STN_TEXT_FIELD_HTML,
302
+ STN_TEXT_FIELD_INTRO,
303
+ STN_TEXT_FIELD_SIZE_ROWS,
304
+ STN_TEXT_FIELD_STATES,
305
+ STN_TEXT_FIELD_USAGE
306
+ } from "./chunk-NB4NJQYE.js";
298
307
  import {
299
308
  STN_TOAST_DEMO_MSG,
300
309
  STN_TOAST_ICON_SLUG,
@@ -365,14 +374,6 @@ import {
365
374
  STN_TABLE_TH_CHECK_FIGMA,
366
375
  STN_TABLE_TH_LABEL_FIGMA
367
376
  } from "./chunk-IOBNIUK3.js";
368
- import {
369
- STN_TEXT_FIELD_FIGMA,
370
- STN_TEXT_FIELD_HTML,
371
- STN_TEXT_FIELD_INTRO,
372
- STN_TEXT_FIELD_SIZE_ROWS,
373
- STN_TEXT_FIELD_STATES,
374
- STN_TEXT_FIELD_USAGE
375
- } from "./chunk-NB4NJQYE.js";
376
377
  import {
377
378
  STN_SIDE_NAVIGATION_INTRO,
378
379
  STN_SIDE_NAVIGATION_USAGE,
@@ -427,12 +428,12 @@ import {
427
428
  STN_LAYER0_BACKGROUND_USAGE_HTML,
428
429
  STN_LAYER0_BACKGROUND_VARIANT_ROWS,
429
430
  STN_LAYER0_MAP_LIGHT_OVERLAY
430
- } from "./chunk-HJCUNRB3.js";
431
+ } from "./chunk-FSSMH6VS.js";
431
432
  import {
432
433
  STN_CDN_ASSET_BASE,
433
434
  STN_LAYER0_BACKGROUND_ASSET_PATHS,
434
435
  STN_LAYER0_BACKGROUND_DEMO_IMAGES
435
- } from "./chunk-XBFXX3D6.js";
436
+ } from "./chunk-NGUMR3D6.js";
436
437
  import {
437
438
  STN_ALERT_CENTER_PAGE_SCAFFOLD_USAGE,
438
439
  STN_LAYER_SHELL_USAGE,
@@ -479,7 +480,7 @@ import {
479
480
  STN_DROPDOWN_MENU_USAGE,
480
481
  STN_DROPDOWN_SIZE_ROWS,
481
482
  STN_DROPDOWN_USAGE
482
- } from "./chunk-LKVTW54X.js";
483
+ } from "./chunk-IZRGNUH6.js";
483
484
  import {
484
485
  STN_HEADER_INTRO,
485
486
  STN_HEADER_PAGE_TITLE_DEMO,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stn-uiux/pub-ui",
3
- "version": "0.1.68",
3
+ "version": "0.1.70",
4
4
  "description": "STN Pub design system — tokens, specs, and CSS for product HTML / React apps",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -69,6 +69,27 @@
69
69
  .stn-card.pad-md { padding: var(--stn-card-pad-md); }
70
70
  .stn-card.pad-lg { padding: var(--stn-card-pad-lg); }
71
71
 
72
+ /* Layout modifiers */
73
+ .stn-card.is-full-width,
74
+ .stn-card.full-width {
75
+ width: 100%;
76
+ }
77
+
78
+ .stn-card.is-full-height,
79
+ .stn-card.full-height {
80
+ height: 100%;
81
+ display: flex;
82
+ flex-direction: column;
83
+ }
84
+
85
+ .stn-card.is-full-height > .stn-card__body,
86
+ .stn-card.full-height > .stn-card__body {
87
+ flex: 1 1 0%;
88
+ min-height: 0;
89
+ display: flex;
90
+ flex-direction: column;
91
+ }
92
+
72
93
  /* Interactive (Hover / Click) */
73
94
  .stn-card.interactive,
74
95
  .stn-card[role='button'] {
@@ -91,6 +112,29 @@
91
112
  margin-bottom: var(--stn-space-12, 12px);
92
113
  }
93
114
 
115
+ .stn-card__header-title {
116
+ margin: 0;
117
+ min-width: 0;
118
+ font-size: var(--stn-text-title-small-size, var(--stn-font-size-16, 16px));
119
+ font-weight: var(--stn-font-weight-semibold, 600);
120
+ color: var(--stn-text-primary);
121
+ line-height: var(--stn-line-height-1, 1.2);
122
+ white-space: nowrap;
123
+ overflow: hidden;
124
+ text-overflow: ellipsis;
125
+ }
126
+
127
+ /* Card title size modifiers */
128
+ .stn-card__header-title.sm { font-size: var(--stn-font-size-14, 14px); }
129
+ .stn-card__header-title.md { font-size: var(--stn-font-size-16, 16px); }
130
+ .stn-card__header-title.lg { font-size: var(--stn-font-size-18, 18px); }
131
+
132
+ /* Card title weight modifiers */
133
+ .stn-card__header-title.regular { font-weight: var(--stn-font-weight-regular, 400); }
134
+ .stn-card__header-title.medium { font-weight: var(--stn-font-weight-medium, 500); }
135
+ .stn-card__header-title.semibold { font-weight: var(--stn-font-weight-semibold, 600); }
136
+ .stn-card__header-title.bold { font-weight: var(--stn-font-weight-bold, 700); }
137
+
94
138
  .stn-card__body {
95
139
  display: block;
96
140
  }
@@ -19,6 +19,7 @@
19
19
  * - Border accents: `accent-mint`, `accent-sky`, `accent-violet`, `accent-orange`, `accent-yellow`, `accent-gray`
20
20
  */
21
21
 
22
+
22
23
  .stn-chip-wrap {
23
24
  display: inline-flex;
24
25
  align-items: center;
@@ -203,47 +204,28 @@
203
204
  --stn-chip-color: var(--stn-grade-warning);
204
205
  }
205
206
 
206
- /* —— 4. Variants: Filled vs Outline / Border vs Contained 50% Opacity —— */
207
+ /* —— 4. Variants: Filled vs Soft vs Outline —— */
207
208
  /* Filled (Default / Contained) */
208
209
  .stn-chip.filled,
209
- .stn-chip.contained,
210
- .stn-chip:not(.outline):not(.border):not(.contained-50):not(.filled-50):not(.bg-50):not(.bg-opacity-50):not(.soft):not(.subtle):not(.tinted) {
210
+ .stn-chip:not(.outline):not(.soft) {
211
211
  --stn-chip-bg: var(--stn-chip-color);
212
212
  --stn-chip-border: transparent;
213
213
  --stn-chip-fg: var(--stn-text-re-primary);
214
214
  }
215
215
 
216
- /* Contained / Soft / Subtle (연한 배경 + 해당 색상 텍스트) */
217
- .stn-chip.subtle,
218
- .stn-chip.soft,
219
- .stn-chip.tinted,
220
- .stn-chip.contained-50,
221
- .stn-chip.filled-50,
222
- .stn-chip.bg-50,
223
- .stn-chip.bg-opacity-50,
224
- .stn-chip--bg-50 {
216
+ /* Soft (은은한 틴트 배경 + 해당 색상 텍스트 단일 통일) */
217
+ .stn-chip.soft {
225
218
  --stn-chip-bg: color-mix(in srgb, var(--stn-chip-color) 14%, transparent);
226
219
  --stn-chip-border: transparent;
227
220
  --stn-chip-fg: var(--stn-chip-color);
228
221
  }
229
222
 
230
- [data-theme='dark'] .stn-chip.subtle,
231
- [data-theme='dark'] .stn-chip.soft,
232
- [data-theme='dark'] .stn-chip.tinted,
233
- [data-theme='dark'] .stn-chip.contained-50,
234
- [data-theme='dark'] .stn-chip.filled-50,
235
- [data-theme='dark'] .stn-chip.bg-50,
236
- [data-theme='dark'] .stn-chip.bg-opacity-50,
237
- [data-theme='dark'] .stn-chip--bg-50 {
223
+ [data-theme='dark'] .stn-chip.soft {
238
224
  --stn-chip-bg: color-mix(in srgb, var(--stn-chip-color) 22%, transparent);
239
- --stn-chip-border: transparent;
240
- --stn-chip-fg: var(--stn-chip-color);
241
225
  }
242
226
 
243
- /* Outline / Border */
244
- .stn-chip.outline,
245
- .stn-chip.outlined,
246
- .stn-chip.border {
227
+ /* Outline (외곽선 테두리 단일 통일) */
228
+ .stn-chip.outline {
247
229
  --stn-chip-bg: transparent;
248
230
  --stn-chip-border: var(--stn-chip-color);
249
231
  --stn-chip-fg: var(--stn-chip-color);
@@ -330,18 +312,12 @@
330
312
  filter: brightness(1.08);
331
313
  }
332
314
 
333
- .stn-chip.clickable.outline:hover,
334
- .stn-chip.clickable.border:hover {
315
+ .stn-chip.clickable.outline:hover {
335
316
  background-color: color-mix(in srgb, var(--stn-chip-color) 12%, transparent);
336
317
  filter: none;
337
318
  }
338
319
 
339
- .stn-chip.clickable.contained-50:hover,
340
- .stn-chip.clickable.filled-50:hover,
341
- .stn-chip.clickable.bg-50:hover,
342
- .stn-chip.clickable.bg-opacity-50:hover,
343
- .stn-chip.clickable.soft:hover,
344
- .stn-chip.clickable.stn-chip--bg-50:hover {
320
+ .stn-chip.clickable.soft:hover {
345
321
  background-color: color-mix(in srgb, var(--stn-chip-color) 65%, transparent);
346
322
  filter: none;
347
323
  }