@stn-uiux/pub-ui 0.1.82 → 0.1.85
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.
- package/dist/{chunk-6FEWLKVE.js → chunk-2TRZNWCA.js} +32 -2
- package/dist/chunk-2TRZNWCA.js.map +1 -0
- package/dist/{chunk-AJLP3Y53.js → chunk-2VSSPMZ3.js} +2 -2
- package/dist/{chunk-AJLP3Y53.js.map → chunk-2VSSPMZ3.js.map} +1 -1
- package/dist/chunk-5QPBSOJ6.js +9 -0
- package/dist/chunk-5QPBSOJ6.js.map +1 -0
- package/dist/{chunk-AOS3IX4T.js → chunk-65B7YUTE.js} +2 -1
- package/dist/{chunk-AOS3IX4T.js.map → chunk-65B7YUTE.js.map} +1 -1
- package/dist/chunk-APXT43OG.js +232 -0
- package/dist/chunk-APXT43OG.js.map +1 -0
- package/dist/chunk-ERZPIKPF.js +1 -0
- package/dist/chunk-FLKGJJD5.js +45 -0
- package/dist/chunk-FLKGJJD5.js.map +1 -0
- package/dist/{chunk-N46UQH6L.js → chunk-K6TWXWIO.js} +11 -2
- package/dist/chunk-K6TWXWIO.js.map +1 -0
- package/dist/chunk-N4PVFFKV.js +38 -0
- package/dist/chunk-N4PVFFKV.js.map +1 -0
- package/dist/chunk-NYZMUDVK.js +12 -0
- package/dist/chunk-NYZMUDVK.js.map +1 -0
- package/dist/chunk-QJN2Z6RG.js +160 -0
- package/dist/chunk-QJN2Z6RG.js.map +1 -0
- package/dist/chunk-W7K3FSAX.js +24 -0
- package/dist/chunk-W7K3FSAX.js.map +1 -0
- package/dist/cli.js +17 -17
- package/dist/components.d.ts +1 -1
- package/dist/components.js +1 -1
- package/dist/data/index.d.ts +7 -2
- package/dist/data/index.js +142 -92
- package/dist/data/stnCard.d.ts +1 -1
- package/dist/data/stnCard.js +1 -1
- package/dist/data/stnDatePicker.d.ts +41 -10
- package/dist/data/stnDatePicker.js +9 -3
- package/dist/data/stnEmptyState.d.ts +35 -0
- package/dist/data/stnEmptyState.js +19 -0
- package/dist/data/stnEmptyState.js.map +1 -0
- package/dist/data/stnPackageVersion.d.ts +2 -2
- package/dist/data/stnPackageVersion.js +1 -1
- package/dist/data/stnPopover.d.ts +18 -0
- package/dist/data/stnPopover.js +9 -0
- package/dist/data/stnPopover.js.map +1 -0
- package/dist/data/stnSplitView.d.ts +16 -0
- package/dist/data/stnSplitView.js +11 -0
- package/dist/data/stnSplitView.js.map +1 -0
- package/dist/data/stnStepCards.d.ts +32 -0
- package/dist/data/stnStepCards.js +7 -0
- package/dist/data/stnStepCards.js.map +1 -0
- package/dist/data/stnStepper.d.ts +78 -0
- package/dist/data/stnStepper.js +7 -0
- package/dist/data/stnStepper.js.map +1 -0
- package/dist/data/stnTree.d.ts +3 -0
- package/dist/data/stnTree.js +1 -1
- package/dist/data/stnTypography.d.ts +17 -1
- package/dist/data/stnTypography.js +7 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +143 -93
- package/package.json +1 -1
- package/styles/@assets/images/empty-state/forbidden.png +0 -0
- package/styles/@assets/images/empty-state/load-failed.png +0 -0
- package/styles/@assets/images/empty-state/maintenance.png +0 -0
- package/styles/@assets/images/empty-state/network.png +0 -0
- package/styles/@assets/images/empty-state/no-data.png +0 -0
- package/styles/@assets/images/empty-state/not-found.png +0 -0
- package/styles/@assets/images/empty-state/search-empty.png +0 -0
- package/styles/@assets/images/empty-state/server-error.png +0 -0
- package/styles/@assets/images/empty-state/timeout.png +0 -0
- package/styles/@assets/images/empty-state/unauthorized.png +0 -0
- package/styles/components/stn-card.css +49 -13
- package/styles/components/stn-checkbox.css +1 -1
- package/styles/components/stn-date-picker.css +252 -45
- package/styles/components/stn-date-range-field.css +2 -2
- package/styles/components/stn-drawer.css +2 -2
- package/styles/components/stn-dropdown.css +2 -2
- package/styles/components/stn-empty-state.css +238 -0
- package/styles/components/stn-popover.css +52 -0
- package/styles/components/stn-radio.css +1 -1
- package/styles/components/stn-slider.css +1 -1
- package/styles/components/stn-stepper.css +570 -0
- package/styles/components/stn-switch.css +1 -1
- package/styles/components/stn-table.css +39 -1
- package/styles/components/stn-text-field.css +5 -1
- package/styles/components/stn-tooltip.css +1 -1
- package/styles/layouts/stn-container.css +8 -0
- package/styles/layouts/stn-layer0-bg.css +18 -17
- package/styles/patterns/stn-login-card.css +6 -0
- package/styles/patterns/stn-split-view.css +130 -0
- package/styles/patterns/stn-step-cards.css +60 -0
- package/styles/patterns/stn-tree.css +9 -0
- package/styles/style-pub.css +5 -0
- package/styles/tokens/stn-colors-semantic.css +54 -0
- package/styles/tokens/stn-elevation.css +1 -0
- package/styles/tokens/stn-size-semantic.css +37 -0
- package/styles/tokens/stn-size.css +1 -0
- package/styles/tokens/stn-spacing-semantic.css +11 -0
- package/styles/tokens/stn-typography-semantic.css +7 -1
- package/styles/tokens/stn-typography.css +16 -0
- package/dist/chunk-6FEWLKVE.js.map +0 -1
- package/dist/chunk-N46UQH6L.js.map +0 -1
- package/dist/chunk-THTVXGTK.js +0 -9
- package/dist/chunk-THTVXGTK.js.map +0 -1
- package/dist/chunk-WKQLAHIG.js +0 -1
- package/dist/chunk-YBNEQ5LB.js +0 -75
- package/dist/chunk-YBNEQ5LB.js.map +0 -1
- /package/dist/{chunk-WKQLAHIG.js.map → chunk-ERZPIKPF.js.map} +0 -0
|
@@ -9,7 +9,9 @@ function row(group, name, value, note) {
|
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
var STN_FONT_SIZE_ROWS = [
|
|
12
|
-
row("font-size", "base", "16px", "\uC2A4\uCF00\uC77C \uB8E8\uD2B8 \xB7
|
|
12
|
+
row("font-size", "base", "16px", "\uC2A4\uCF00\uC77C \uB8E8\uD2B8 \xB7 xl(1440)+ \uAE30\uBCF8\uAC12 \xB7 \uBC18\uC751\uD615 \uAD6C\uAC04\uC5D0\uC11C base-lg / base-md\uB85C \uC7AC\uC9C0\uC815"),
|
|
13
|
+
row("font-size", "base-lg", "15px", "\uBC18\uC751\uD615 \xB7 lg \uAD6C\uAC04(1280\u20131439px) \uB8E8\uD2B8"),
|
|
14
|
+
row("font-size", "base-md", "14px", "\uBC18\uC751\uD615 \xB7 1279px \uC774\uD558 \uB8E8\uD2B8 (\uD558\uD55C)"),
|
|
13
15
|
row("font-size", "60", "calc(base \xD7 60/16)"),
|
|
14
16
|
row("font-size", "45", "calc(base \xD7 45/16)", "Pub \uB300\uC2DC\uBCF4\uB4DC"),
|
|
15
17
|
row("font-size", "42", "calc(base \xD7 42/16)", "DS \uB79C\uB529"),
|
|
@@ -68,6 +70,31 @@ var STN_TYPOGRAPHY_PRIMITIVE_GROUPS = [
|
|
|
68
70
|
{ id: "font-weight", label: "font-weight", rows: STN_FONT_WEIGHT_ROWS },
|
|
69
71
|
{ id: "line-height", label: "line-height", rows: STN_LINE_HEIGHT_ROWS }
|
|
70
72
|
];
|
|
73
|
+
var STN_FONT_SCALE_STEPS = [
|
|
74
|
+
{ bp: "xl", range: "1440px \uC774\uC0C1 (\uAE30\uBCF8)", media: "\u2014", cssVar: "--stn-font-size-base", basePx: 16 },
|
|
75
|
+
{ bp: "lg", range: "1280 \u2013 1439px", media: "(max-width: 1439px)", cssVar: "--stn-font-size-base-lg", basePx: 15 },
|
|
76
|
+
{ bp: "md", range: "1279px \uC774\uD558 (\uD558\uD55C)", media: "(max-width: 1279px)", cssVar: "--stn-font-size-base-md", basePx: 14 }
|
|
77
|
+
];
|
|
78
|
+
function scaleFontPx(designPx, basePx) {
|
|
79
|
+
return Math.round(designPx * basePx / 16 * 100) / 100;
|
|
80
|
+
}
|
|
81
|
+
var STN_FONT_SCALE_USAGE = `/* 1) \uAE30\uBCF8 \u2014 \uD328\uD0A4\uC9C0 CSS\uB9CC \uBD88\uB7EC\uC624\uBA74 \uC790\uB3D9 \uC801\uC6A9 (\uCD94\uAC00 \uCF54\uB4DC \uC5C6\uC74C) */
|
|
82
|
+
@import '@stn-uiux/pub-ui/styles.css';
|
|
83
|
+
|
|
84
|
+
/* 2) \uB2E8\uACC4 \uAC12 \uC870\uC815 \u2014 \uD328\uD0A4\uC9C0 CSS \uB2E4\uC74C\uC5D0 \uC120\uC5B8 */
|
|
85
|
+
:root {
|
|
86
|
+
--stn-font-size-base-lg: 15.5px;
|
|
87
|
+
--stn-font-size-base-md: 14.5px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* 3) \uBC18\uC751\uD615 \uCD95\uC18C \uB044\uAE30 \u2014 \uBAA8\uB4E0 \uD3ED\uC5D0\uC11C 16px \uACE0\uC815 */
|
|
91
|
+
:root {
|
|
92
|
+
--stn-font-size-base-lg: 16px;
|
|
93
|
+
--stn-font-size-base-md: 16px;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* \uCEF4\uD3EC\uB10C\uD2B8 CSS\uB294 \uD56D\uC0C1 \uD1A0\uD070\uB9CC \uCC38\uC870 \u2014 px \uC9C1\uC811 \uC9C0\uC815 \uC2DC \uC2A4\uCF00\uC77C\uC5D0\uC11C \uBE60\uC9D0 */
|
|
97
|
+
.my-widget__title { font-size: var(--stn-text-title-medium-size); }`;
|
|
71
98
|
var STN_TYPOGRAPHY_SEMANTIC_ROWS = [
|
|
72
99
|
{
|
|
73
100
|
token: "pub.font.display",
|
|
@@ -223,8 +250,11 @@ export {
|
|
|
223
250
|
STN_LINE_HEIGHT_ROWS,
|
|
224
251
|
STN_FONT_FAMILY_ROWS,
|
|
225
252
|
STN_TYPOGRAPHY_PRIMITIVE_GROUPS,
|
|
253
|
+
STN_FONT_SCALE_STEPS,
|
|
254
|
+
scaleFontPx,
|
|
255
|
+
STN_FONT_SCALE_USAGE,
|
|
226
256
|
STN_TYPOGRAPHY_SEMANTIC_ROWS,
|
|
227
257
|
typographyPrimitivesToJson,
|
|
228
258
|
typographySemanticsToJson
|
|
229
259
|
};
|
|
230
|
-
//# sourceMappingURL=chunk-
|
|
260
|
+
//# sourceMappingURL=chunk-2TRZNWCA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/data/stnTypography.ts"],"sourcesContent":["/**\n * Foundations Typography — primitives + semantic (KT-style roles, Pub px)\n * Pub 런타임: font-family.pretendard = font.css Pretendard (CDN)\n */\n\nexport type StnTypographyPrimitiveRow = {\n token: string\n cssVar: `--${string}`\n value: string\n note?: string\n}\n\nexport type StnTypographySemanticRow = {\n token: string\n cssVar: `--${string}`\n resolvesTo: string\n sampleClass?: string\n usage: string\n}\n\nfunction row(\n group: string,\n name: string,\n value: string,\n note?: string,\n): StnTypographyPrimitiveRow {\n const slug = name.replace(/\\./g, '-')\n return {\n token: `pub.${group}.${name}`,\n cssVar: `--stn-${group}-${slug}` as `--${string}`,\n value,\n note,\n }\n}\n\n/** Figma primitive — font-size (values scale from --stn-font-size-base) */\nexport const STN_FONT_SIZE_ROWS: StnTypographyPrimitiveRow[] = [\n row('font-size', 'base', '16px', '스케일 루트 · xl(1440)+ 기본값 · 반응형 구간에서 base-lg / base-md로 재지정'),\n row('font-size', 'base-lg', '15px', '반응형 · lg 구간(1280–1439px) 루트'),\n row('font-size', 'base-md', '14px', '반응형 · 1279px 이하 루트 (하한)'),\n row('font-size', '60', 'calc(base × 60/16)'),\n row('font-size', '45', 'calc(base × 45/16)', 'Pub 대시보드'),\n row('font-size', '42', 'calc(base × 42/16)', 'DS 랜딩'),\n row('font-size', '40', 'calc(base × 40/16)'),\n row('font-size', '36', 'calc(base × 36/16)'),\n row('font-size', '32', 'calc(base × 32/16)'),\n row('font-size', '30', 'calc(base × 30/16)', 'Pub 대시보드'),\n row('font-size', '28', 'calc(base × 28/16)', 'Pub · DS 마케팅'),\n row('font-size', '26', 'calc(base × 26/16)', 'Pub 대시보드'),\n row('font-size', '25', 'calc(base × 25/16)', 'Pub 대시보드'),\n row('font-size', '24', 'calc(base × 24/16)'),\n row('font-size', '22', 'calc(base × 22/16)'),\n row('font-size', '21', 'calc(base × 21/16)', 'Pub 대시보드'),\n row('font-size', '20', 'calc(base × 20/16)'),\n row('font-size', '19', 'calc(base × 19/16)', 'Pub 대시보드 보조'),\n row('font-size', '18', 'calc(base × 18/16)'),\n row('font-size', '17', 'calc(base × 17/16)'),\n row('font-size', '16', 'var(--stn-font-size-base)'),\n row('font-size', '15', 'calc(base × 15/16)'),\n row('font-size', '14', 'calc(base × 14/16)'),\n row('font-size', '13', 'calc(base × 13/16)'),\n row('font-size', '12', 'calc(base × 12/16)'),\n row('font-size', '11', 'calc(base × 11/16)', 'GNB 알림센터 등급 태그'),\n row('font-size', '10', 'calc(base × 10/16)'),\n row('font-size', '9', 'calc(base × 9/16)', '문서 미니 라벨'),\n row('font-size', '8', 'calc(base × 8/16)', '문서 미니 라벨'),\n]\n\nexport const STN_FONT_WEIGHT_ROWS: StnTypographyPrimitiveRow[] = [\n row('font-weight', 'bold', '700', 'Pretendard Bold'),\n row('font-weight', 'semibold', '600', 'Pretendard SemiBold'),\n row('font-weight', 'medium', '500', 'Pretendard Medium'),\n row('font-weight', 'regular', '400', 'Pretendard Regular'),\n]\n\nexport const STN_LINE_HEIGHT_ROWS: StnTypographyPrimitiveRow[] = [\n row('line-height', 'default', '148%', '→ 1.48'),\n row('line-height', 'reading-1', '170%', '→ 1.7'),\n row('line-height', 'reading-2', '158%', '→ 1.58'),\n row('line-height', 'reading-3', '130%', '→ 1.3'),\n row('line-height', 'none', '0', '아이콘·히든'),\n row('line-height', 'tight', '1', '한 줄 라벨'),\n row('line-height', 'compact', '1.12', 'Pub 버튼'),\n row('line-height', 'snug', '1.25', 'DS 문서'),\n row('line-height', 'dense', '0.9', 'Pub 태그'),\n]\n\nexport const STN_FONT_FAMILY_ROWS: StnTypographyPrimitiveRow[] = [\n {\n token: 'pub.font-family.pretendard',\n cssVar: '--stn-font-family-pretendard',\n value: 'Pretendard',\n note: 'font.css · CDN Pretendard (jsDelivr v1.3.9)',\n },\n]\n\nexport const STN_TYPOGRAPHY_PRIMITIVE_GROUPS = [\n { id: 'font-family', label: 'font-family', rows: STN_FONT_FAMILY_ROWS },\n { id: 'font-size', label: 'font-size', rows: STN_FONT_SIZE_ROWS },\n { id: 'font-weight', label: 'font-weight', rows: STN_FONT_WEIGHT_ROWS },\n { id: 'line-height', label: 'line-height', rows: STN_LINE_HEIGHT_ROWS },\n] as const\n\n/**\n * Responsive font scale — viewport 구간별 --stn-font-size-base 재지정.\n * SSOT: tokens/typography/primitive.json (media blocks) → stn-typography.css\n * 모든 --stn-font-size-* / --stn-text-*-size 가 base 비율(calc)이므로 base 하나로 일괄 스케일.\n */\nexport type StnFontScaleStepRow = {\n bp: 'xl' | 'lg' | 'md'\n range: string\n media: string\n cssVar: `--${string}`\n basePx: number\n}\n\nexport const STN_FONT_SCALE_STEPS: readonly StnFontScaleStepRow[] = [\n { bp: 'xl', range: '1440px 이상 (기본)', media: '—', cssVar: '--stn-font-size-base', basePx: 16 },\n { bp: 'lg', range: '1280 – 1439px', media: '(max-width: 1439px)', cssVar: '--stn-font-size-base-lg', basePx: 15 },\n { bp: 'md', range: '1279px 이하 (하한)', media: '(max-width: 1279px)', cssVar: '--stn-font-size-base-md', basePx: 14 },\n] as const\n\n/** base 대비 실제 px (예: scalePx(14, 15) → 13.13) */\nexport function scaleFontPx(designPx: number, basePx: number): number {\n return Math.round(((designPx * basePx) / 16) * 100) / 100\n}\n\nexport const STN_FONT_SCALE_USAGE = `/* 1) 기본 — 패키지 CSS만 불러오면 자동 적용 (추가 코드 없음) */\n@import '@stn-uiux/pub-ui/styles.css';\n\n/* 2) 단계 값 조정 — 패키지 CSS 다음에 선언 */\n:root {\n --stn-font-size-base-lg: 15.5px;\n --stn-font-size-base-md: 14.5px;\n}\n\n/* 3) 반응형 축소 끄기 — 모든 폭에서 16px 고정 */\n:root {\n --stn-font-size-base-lg: 16px;\n --stn-font-size-base-md: 16px;\n}\n\n/* 컴포넌트 CSS는 항상 토큰만 참조 — px 직접 지정 시 스케일에서 빠짐 */\n.my-widget__title { font-size: var(--stn-text-title-medium-size); }`\n\n/** Canonical semantic text roles (KT taxonomy · Pub px). Use CSS vars in component styles. */\nexport const STN_TYPOGRAPHY_SEMANTIC_ROWS: StnTypographySemanticRow[] = [\n {\n token: 'pub.font.display',\n cssVar: '--stn-font-display',\n resolvesTo: 'var(--stn-font-family-pretendard)',\n usage: '디스플레이 역할 패밀리',\n },\n {\n token: 'pub.font.body',\n cssVar: '--stn-font-body',\n resolvesTo: 'var(--stn-font-family-pretendard)',\n usage: '본문·UI 역할 패밀리 · body reset',\n },\n {\n token: 'pub.text.display.xlarge',\n cssVar: '--stn-text-display-xlarge-*',\n resolvesTo: '{font-size.60} / bold / 1.3',\n usage: '최상위 헤드라인 (PC)',\n },\n {\n token: 'pub.text.display.large',\n cssVar: '--stn-text-display-large-*',\n resolvesTo: '{font-size.40} / bold / 1.3',\n sampleClass: 'stn-typo-display-xl',\n usage: '메인 타이틀 · 히어로',\n },\n {\n token: 'pub.text.display.medium',\n cssVar: '--stn-text-display-medium-*',\n resolvesTo: '{font-size.36} / bold / 1.48',\n usage: '강조형 헤드라인',\n },\n {\n token: 'pub.text.heading.large',\n cssVar: '--stn-text-heading-large-*',\n resolvesTo: '{font-size.32} / bold / 1.48',\n sampleClass: 'stn-typo-display-lg',\n usage: '페이지 상위 제목',\n },\n {\n token: 'pub.text.heading.medium',\n cssVar: '--stn-text-heading-medium-*',\n resolvesTo: '{font-size.24} / bold / 1.48',\n sampleClass: 'stn-typo-display-md',\n usage: '하위 제목 · 위젯·카드 헤드라인',\n },\n {\n token: 'pub.text.heading.small',\n cssVar: '--stn-text-heading-small-*',\n resolvesTo: '{font-size.22} / bold / 1.48',\n usage: '소제목 · 그룹 제목',\n },\n {\n token: 'pub.text.title.large',\n cssVar: '--stn-text-title-large-*',\n resolvesTo: '{font-size.20} / bold / 1.48',\n usage: '콘텐츠 타이틀',\n },\n {\n token: 'pub.text.title.medium',\n cssVar: '--stn-text-title-medium-*',\n resolvesTo: '{font-size.18} / bold / 1.48',\n sampleClass: 'stn-typo-title-lg',\n usage: '모달·패널 타이틀 · 알림센터 헤더',\n },\n {\n token: 'pub.text.title.small',\n cssVar: '--stn-text-title-small-*',\n resolvesTo: '{font-size.16} / medium / 1.48',\n usage: '서브 타이틀 · 앱 헤더',\n },\n {\n token: 'pub.text.body.large',\n cssVar: '--stn-text-body-large-*',\n resolvesTo: '{font-size.16} / regular / 1.48',\n usage: '본문 (PC 권장)',\n },\n {\n token: 'pub.text.body.medium',\n cssVar: '--stn-text-body-medium-*',\n resolvesTo: '{font-size.14} / regular / 1.48',\n sampleClass: 'stn-typo-body-md',\n usage: 'Pub reset 기본 본문 · 테이블·폼',\n },\n {\n token: 'pub.text.body.small',\n cssVar: '--stn-text-body-small-*',\n resolvesTo: '{font-size.13} / regular / 1.48',\n usage: '본문 소형 · 테이블·목록 다수',\n },\n {\n token: 'pub.text.label.large',\n cssVar: '--stn-text-label-large-*',\n resolvesTo: '{font-size.17} / medium / 1.48',\n usage: '버튼 라벨 (PC)',\n },\n {\n token: 'pub.text.label.medium',\n cssVar: '--stn-text-label-medium-*',\n resolvesTo: '{font-size.15} / medium / 1.48',\n usage: '버튼 · 입력 폼 라벨',\n },\n {\n token: 'pub.text.label.small',\n cssVar: '--stn-text-label-small-*',\n resolvesTo: '{font-size.13} / medium / 1.48',\n usage: '입력 레이블 · GNB 2Depth',\n },\n {\n token: 'pub.text.label.xsmall',\n cssVar: '--stn-text-label-xsmall-*',\n resolvesTo: '{font-size.10} / medium / 1',\n usage: '바텀 아이콘 레이블',\n },\n {\n token: 'pub.text.caption.large',\n cssVar: '--stn-text-caption-large-*',\n resolvesTo: '{font-size.14} / regular / 1.3',\n usage: '캡션 대형 · 로그인 카드 서브캡션',\n },\n {\n token: 'pub.text.caption.medium',\n cssVar: '--stn-text-caption-medium-*',\n resolvesTo: '{font-size.12} / regular / 1.3',\n sampleClass: 'stn-typo-body-sm',\n usage: '캡션 · 툴팁 · 알림센터 목록',\n },\n]\n\nexport function typographyPrimitivesToJson(): Record<string, string> {\n const out: Record<string, string> = {}\n for (const g of STN_TYPOGRAPHY_PRIMITIVE_GROUPS) {\n for (const r of g.rows) {\n out[r.token] = r.value\n }\n }\n return out\n}\n\nexport function typographySemanticsToJson(): Record<\n string,\n { css: string; resolvesTo: string; usage: string }\n> {\n const out: Record<string, { css: string; resolvesTo: string; usage: string }> = {}\n for (const r of STN_TYPOGRAPHY_SEMANTIC_ROWS) {\n out[r.token] = {\n css: r.cssVar,\n resolvesTo: r.resolvesTo,\n usage: r.usage,\n }\n }\n return out\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ var STN_CARD_VARIANTS = ["flat", "outlined", "elevated"];
|
|
|
3
3
|
var STN_CARD_RADII = ["sm", "md", "lg", "none"];
|
|
4
4
|
var STN_CARD_PADDINGS = ["none", "sm", "md", "lg"];
|
|
5
5
|
var STN_CARD_SEVERITIES = ["critical", "major", "minor", "warning"];
|
|
6
|
-
var STN_CARD_INTRO =
|
|
6
|
+
var STN_CARD_INTRO = '\uCF58\uD150\uCE20\uB97C \uC2DC\uAC01\uC801\uC73C\uB85C \uADF8\uB8F9\uD654\uD558\uACE0 \uACC4\uCE35\uC744 \uBD80\uC5EC\uD558\uB294 \uD45C\uC900 \uC11C\uD53C\uC2A4(Surface) \uCEE8\uD14C\uC774\uB108 \uCEF4\uD3EC\uB10C\uD2B8\uC785\uB2C8\uB2E4. \uD50C\uB7AB, \uC544\uC6C3\uB77C\uC778, \uC5D8\uB9AC\uBCA0\uC774\uD2F0\uB4DC \uBCC0\uD615\uACFC \uB77C\uC6B4\uB4DC \uBC0F \uD328\uB529 \uADDC\uACA9\uC744 \uC81C\uACF5\uD558\uBA70, \uB2E8\uB3C5 \uD2C0\uB85C\uC11C \uD639\uC740 \uD5E4\uB354/\uBCF8\uBB38/\uD478\uD130 \uD569\uC131 \uAD6C\uC870\uB85C \uC720\uC5F0\uD558\uAC8C \uD65C\uC6A9\uB429\uB2C8\uB2E4. \uB9F5\xB7\uD0D0\uC0C9 Split\uC740 padding="none" + Body flush + Patterns Split View \uB808\uC2DC\uD53C\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.';
|
|
7
7
|
|
|
8
8
|
export {
|
|
9
9
|
STN_CARD_VARIANTS,
|
|
@@ -12,4 +12,4 @@ export {
|
|
|
12
12
|
STN_CARD_SEVERITIES,
|
|
13
13
|
STN_CARD_INTRO
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=chunk-
|
|
15
|
+
//# sourceMappingURL=chunk-2VSSPMZ3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/stnCard.ts"],"sourcesContent":["export type StnCardVariant = 'flat' | 'outlined' | 'elevated'\nexport type StnCardRadius = 'sm' | 'md' | 'lg' | 'none'\nexport type StnCardPadding = 'none' | 'sm' | 'md' | 'lg'\nexport type StnCardSeverity = 'critical' | 'major' | 'minor' | 'warning'\n\nexport const STN_CARD_VARIANTS: readonly StnCardVariant[] = ['flat', 'outlined', 'elevated'] as const\nexport const STN_CARD_RADII: readonly StnCardRadius[] = ['sm', 'md', 'lg', 'none'] as const\nexport const STN_CARD_PADDINGS: readonly StnCardPadding[] = ['none', 'sm', 'md', 'lg'] as const\nexport const STN_CARD_SEVERITIES: readonly StnCardSeverity[] = ['critical', 'major', 'minor', 'warning'] as const\n\nexport const STN_CARD_INTRO =\n '콘텐츠를 시각적으로 그룹화하고 계층을 부여하는 표준 서피스(Surface) 컨테이너 컴포넌트입니다. 플랫, 아웃라인, 엘리베이티드 변형과 라운드 및 패딩 규격을 제공하며, 단독 틀로서 혹은 헤더/본문/푸터 합성 구조로 유연하게 활용됩니다.'\n"],"mappings":";AAKO,IAAM,oBAA+C,CAAC,QAAQ,YAAY,UAAU;AACpF,IAAM,iBAA2C,CAAC,MAAM,MAAM,MAAM,MAAM;AAC1E,IAAM,oBAA+C,CAAC,QAAQ,MAAM,MAAM,IAAI;AAC9E,IAAM,sBAAkD,CAAC,YAAY,SAAS,SAAS,SAAS;AAEhG,IAAM,iBACX;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/data/stnCard.ts"],"sourcesContent":["export type StnCardVariant = 'flat' | 'outlined' | 'elevated'\nexport type StnCardRadius = 'sm' | 'md' | 'lg' | 'none'\nexport type StnCardPadding = 'none' | 'sm' | 'md' | 'lg'\nexport type StnCardSeverity = 'critical' | 'major' | 'minor' | 'warning'\n\nexport const STN_CARD_VARIANTS: readonly StnCardVariant[] = ['flat', 'outlined', 'elevated'] as const\nexport const STN_CARD_RADII: readonly StnCardRadius[] = ['sm', 'md', 'lg', 'none'] as const\nexport const STN_CARD_PADDINGS: readonly StnCardPadding[] = ['none', 'sm', 'md', 'lg'] as const\nexport const STN_CARD_SEVERITIES: readonly StnCardSeverity[] = ['critical', 'major', 'minor', 'warning'] as const\n\nexport const STN_CARD_INTRO =\n '콘텐츠를 시각적으로 그룹화하고 계층을 부여하는 표준 서피스(Surface) 컨테이너 컴포넌트입니다. 플랫, 아웃라인, 엘리베이티드 변형과 라운드 및 패딩 규격을 제공하며, 단독 틀로서 혹은 헤더/본문/푸터 합성 구조로 유연하게 활용됩니다. 맵·탐색 Split은 padding=\"none\" + Body flush + Patterns Split View 레시피를 사용합니다.'\n"],"mappings":";AAKO,IAAM,oBAA+C,CAAC,QAAQ,YAAY,UAAU;AACpF,IAAM,iBAA2C,CAAC,MAAM,MAAM,MAAM,MAAM;AAC1E,IAAM,oBAA+C,CAAC,QAAQ,MAAM,MAAM,IAAI;AAC9E,IAAM,sBAAkD,CAAC,YAAY,SAAS,SAAS,SAAS;AAEhG,IAAM,iBACX;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.85'\nexport const STN_UI_VERSION_LABEL = 'v0.1.85'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}
|
|
@@ -112,6 +112,7 @@ var STN_TREE_PARTS = [
|
|
|
112
112
|
{ part: ".stn-tree__row", role: "\uD589 24px \xB7 role=treeitem \xB7 data-depth" },
|
|
113
113
|
{ part: ".stn-tree__cell--guide", role: "vertical_line \xB7 tree_connector(_midium)" },
|
|
114
114
|
{ part: ".stn-tree__toggle", role: "\uD3BC\uCE68/\uC811\uD798 chevron (arrow-left 12)" },
|
|
115
|
+
{ part: ".stn-tree__cell--checkbox", role: "\uC544\uC774\uCF58 \uC88C\uCE21 \uC120\uD0DD \uCCB4\uD06C\uBC15\uC2A4 \uC140 (`StnCheckbox`)" },
|
|
115
116
|
{ part: ".stn-tree__icon--root / --folder / --server", role: "\uB178\uB4DC \uC885\uB958\uBCC4 16px \uC544\uC774\uCF58" },
|
|
116
117
|
{ part: ".stn-tree__row.is-selected", role: "\uC120\uD0DD \uBC30\uACBD `--stn-tree-selected`" },
|
|
117
118
|
{ part: ".stn-tree__row.is-hover / :hover", role: "\uD638\uBC84 \uBC30\uACBD" },
|
|
@@ -132,4 +133,4 @@ export {
|
|
|
132
133
|
describeTreePatternReact,
|
|
133
134
|
STN_TREE_PARTS
|
|
134
135
|
};
|
|
135
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-65B7YUTE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/stnTree.ts"],"sourcesContent":["/**\n * Folder structure tree — Infomap Figma node 40000042:210359 · section-side 40000040:102539\n */\n\nexport type StnTreeDemoNode = {\n id: string\n label: string\n kind?: 'root' | 'folder' | 'server'\n children?: StnTreeDemoNode[]\n}\n\nexport const STN_TREE_FIGMA = '40000042:210359'\n\n/** section-side shell — light / dark */\nexport const STN_TREE_SECTION_SIDE_FIGMA = {\n light: '40000042:187762',\n dark: '40000040:102539',\n} as const\n\nexport const STN_TREE_INTRO =\n 'LNB 사이드바 및 팝업 내부에서 계층형 폴더/파일 구조를 탐색하는 트리 내비게이션 패턴입니다. 폴더/파일 노드 선택 및 뎁스별 접기·펼치기 기능을 지원합니다.'\n\n/** Figma 40000040:102539 section-side tree content */\nexport const STN_TREE_DEMO: StnTreeDemoNode[] = [\n {\n id: 'root',\n label: 'Root',\n kind: 'root',\n children: [\n {\n id: 'group-a',\n label: '그룹 서버',\n kind: 'folder',\n children: [\n {\n id: 'equip',\n label: '장비',\n kind: 'folder',\n children: [\n { id: 'srv-1', label: 'grid-pro-01', kind: 'server' },\n { id: 'srv-2', label: 'grid-pro-02', kind: 'server' },\n { id: 'srv-3', label: 'grid-pro-03', kind: 'server' },\n { id: 'srv-4', label: 'grid-premium-01', kind: 'server' },\n { id: 'srv-5', label: 'grid-premium-02', kind: 'server' },\n ],\n },\n ],\n },\n {\n id: 'group-b',\n label: '그룹 서버 (백업)',\n kind: 'folder',\n children: [\n { id: 'srv-b1', label: 'auth-server-01', kind: 'server' },\n { id: 'srv-b2', label: 'auth-server-02', kind: 'server' },\n { id: 'srv-b3', label: 'db-cluster-01', kind: 'server' },\n { id: 'srv-b4', label: 'db-cluster-02', kind: 'server' },\n { id: 'srv-b5', label: 'cache-redis-01', kind: 'server' },\n ],\n },\n ],\n },\n]\n\nexport const STN_TREE_REACT_EXAMPLE = `import { StnSectionSide, StnTree } from '@stn-uiux/pub-ui-react'\n\n<StnSectionSide fill>\n <StnTree\n heading=\"FOLDER STRUCTURE\"\n nodes={[\n {\n id: 'root',\n label: 'Root',\n kind: 'root',\n children: [\n { id: 'group', label: '그룹 서버', kind: 'folder', children: [\n { id: 'srv-1', label: 'grid-pro', kind: 'server' },\n ]},\n ],\n },\n ]}\n defaultExpandedIds={['root', 'group']}\n defaultSelectedId=\"srv-1\"\n onSelect={(id) => console.log(id)}\n />\n</StnSectionSide>`\n\nexport const STN_TREE_USAGE_HTML = `<!-- StnSectionSide + StnTree · stn-section-side.css · stn-tree.css -->\n<aside class=\"stn-section-side stn-section-side--fill\">\n <div class=\"stn-scroll stn-section-side__body vertical\">\n <div class=\"stn-tree\">\n <p class=\"stn-tree__heading\">FOLDER STRUCTURE</p>\n <div class=\"stn-tree__rows\" role=\"tree\">\n <div class=\"stn-tree__row stn-tree__row--root\" data-depth=\"0\" role=\"treeitem\">\n <span class=\"stn-tree__label\">Root</span>\n </div>\n </div>\n </div>\n </div>\n</aside>`\n\nexport type StnTreePatternPlaygroundConfig = {\n heading: string\n showHeading: boolean\n}\n\nexport const STN_TREE_PATTERN_PLAYGROUND_DEFAULT: StnTreePatternPlaygroundConfig = {\n heading: 'FOLDER STRUCTURE',\n showHeading: true,\n}\n\nexport const STN_TREE_PATTERN_PLAYGROUND_PROPERTIES: {\n name: string\n values: string\n note?: string\n}[] = [\n { name: 'heading', values: 'string', note: 'StnTree heading · 빈 문자열이면 숨김' },\n { name: 'showHeading', values: 'true | false', note: '섹션 제목 표시' },\n { name: 'fill', values: 'true', note: 'StnSectionSide — list view LNB 열 높이 채움 (고정)' },\n { name: 'nodes', values: 'StnTreeItem[]', note: '데모 — STN_TREE_DEMO' },\n { name: 'defaultExpandedIds', values: 'string[]', note: '초기 펼침 노드 id' },\n { name: 'selectedId', values: 'string | null', note: '선택 행 · onSelect' },\n]\n\nexport function describeTreePatternReact(config: StnTreePatternPlaygroundConfig): string {\n const headingProp = config.showHeading\n ? `\\n heading=${JSON.stringify(config.heading)}`\n : '\\n heading=\"\"'\n return `import { StnSectionSide, StnTree } from '@stn-uiux/pub-ui-react'\n\n<StnSectionSide fill>\n <StnTree${headingProp}\n nodes={STN_TREE_DEMO}\n defaultExpandedIds={['root', 'group-a', 'equip', 'group-b']}\n selectedId={selectedId}\n onSelect={setSelectedId}\n />\n</StnSectionSide>`\n}\n\nexport const STN_TREE_PARTS = [\n { part: '.stn-tree', role: '트리 래퍼 (`StnTree`)' },\n { part: '.stn-tree__heading', role: '섹션 제목 · 13 bold gray-450' },\n { part: '.stn-tree__row', role: '행 24px · role=treeitem · data-depth' },\n { part: '.stn-tree__cell--guide', role: 'vertical_line · tree_connector(_midium)' },\n { part: '.stn-tree__toggle', role: '펼침/접힘 chevron (arrow-left 12)' },\n { part: '.stn-tree__icon--root / --folder / --server', role: '노드 종류별 16px 아이콘' },\n { part: '.stn-tree__row.is-selected', role: '선택 배경 `--stn-tree-selected`' },\n { part: '.stn-tree__row.is-hover / :hover', role: '호버 배경' },\n { part: '.stn-tree__row.is-pressed / :active', role: '프레스 배경' },\n { part: '.stn-section-side', role: '사이드 패널 셸 — Patterns Tree 조립' },\n { part: '.stn-scroll', role: 'Pub 스크롤 — Patterns Tree 조립' },\n] as const\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/data/stnTree.ts"],"sourcesContent":["/**\n * Folder structure tree — Infomap Figma node 40000042:210359 · section-side 40000040:102539\n */\n\nexport type StnTreeDemoNode = {\n id: string\n label: string\n kind?: 'root' | 'folder' | 'server'\n children?: StnTreeDemoNode[]\n}\n\nexport const STN_TREE_FIGMA = '40000042:210359'\n\n/** section-side shell — light / dark */\nexport const STN_TREE_SECTION_SIDE_FIGMA = {\n light: '40000042:187762',\n dark: '40000040:102539',\n} as const\n\nexport const STN_TREE_INTRO =\n 'LNB 사이드바 및 팝업 내부에서 계층형 폴더/파일 구조를 탐색하는 트리 내비게이션 패턴입니다. 폴더/파일 노드 선택 및 뎁스별 접기·펼치기 기능을 지원합니다.'\n\n/** Figma 40000040:102539 section-side tree content */\nexport const STN_TREE_DEMO: StnTreeDemoNode[] = [\n {\n id: 'root',\n label: 'Root',\n kind: 'root',\n children: [\n {\n id: 'group-a',\n label: '그룹 서버',\n kind: 'folder',\n children: [\n {\n id: 'equip',\n label: '장비',\n kind: 'folder',\n children: [\n { id: 'srv-1', label: 'grid-pro-01', kind: 'server' },\n { id: 'srv-2', label: 'grid-pro-02', kind: 'server' },\n { id: 'srv-3', label: 'grid-pro-03', kind: 'server' },\n { id: 'srv-4', label: 'grid-premium-01', kind: 'server' },\n { id: 'srv-5', label: 'grid-premium-02', kind: 'server' },\n ],\n },\n ],\n },\n {\n id: 'group-b',\n label: '그룹 서버 (백업)',\n kind: 'folder',\n children: [\n { id: 'srv-b1', label: 'auth-server-01', kind: 'server' },\n { id: 'srv-b2', label: 'auth-server-02', kind: 'server' },\n { id: 'srv-b3', label: 'db-cluster-01', kind: 'server' },\n { id: 'srv-b4', label: 'db-cluster-02', kind: 'server' },\n { id: 'srv-b5', label: 'cache-redis-01', kind: 'server' },\n ],\n },\n ],\n },\n]\n\nexport const STN_TREE_REACT_EXAMPLE = `import { StnSectionSide, StnTree } from '@stn-uiux/pub-ui-react'\n\n<StnSectionSide fill>\n <StnTree\n heading=\"FOLDER STRUCTURE\"\n nodes={[\n {\n id: 'root',\n label: 'Root',\n kind: 'root',\n children: [\n { id: 'group', label: '그룹 서버', kind: 'folder', children: [\n { id: 'srv-1', label: 'grid-pro', kind: 'server' },\n ]},\n ],\n },\n ]}\n defaultExpandedIds={['root', 'group']}\n defaultSelectedId=\"srv-1\"\n onSelect={(id) => console.log(id)}\n />\n</StnSectionSide>`\n\nexport const STN_TREE_USAGE_HTML = `<!-- StnSectionSide + StnTree · stn-section-side.css · stn-tree.css -->\n<aside class=\"stn-section-side stn-section-side--fill\">\n <div class=\"stn-scroll stn-section-side__body vertical\">\n <div class=\"stn-tree\">\n <p class=\"stn-tree__heading\">FOLDER STRUCTURE</p>\n <div class=\"stn-tree__rows\" role=\"tree\">\n <div class=\"stn-tree__row stn-tree__row--root\" data-depth=\"0\" role=\"treeitem\">\n <span class=\"stn-tree__label\">Root</span>\n </div>\n </div>\n </div>\n </div>\n</aside>`\n\nexport type StnTreePatternPlaygroundConfig = {\n heading: string\n showHeading: boolean\n}\n\nexport const STN_TREE_PATTERN_PLAYGROUND_DEFAULT: StnTreePatternPlaygroundConfig = {\n heading: 'FOLDER STRUCTURE',\n showHeading: true,\n}\n\nexport const STN_TREE_PATTERN_PLAYGROUND_PROPERTIES: {\n name: string\n values: string\n note?: string\n}[] = [\n { name: 'heading', values: 'string', note: 'StnTree heading · 빈 문자열이면 숨김' },\n { name: 'showHeading', values: 'true | false', note: '섹션 제목 표시' },\n { name: 'fill', values: 'true', note: 'StnSectionSide — list view LNB 열 높이 채움 (고정)' },\n { name: 'nodes', values: 'StnTreeItem[]', note: '데모 — STN_TREE_DEMO' },\n { name: 'defaultExpandedIds', values: 'string[]', note: '초기 펼침 노드 id' },\n { name: 'selectedId', values: 'string | null', note: '선택 행 · onSelect' },\n]\n\nexport function describeTreePatternReact(config: StnTreePatternPlaygroundConfig): string {\n const headingProp = config.showHeading\n ? `\\n heading=${JSON.stringify(config.heading)}`\n : '\\n heading=\"\"'\n return `import { StnSectionSide, StnTree } from '@stn-uiux/pub-ui-react'\n\n<StnSectionSide fill>\n <StnTree${headingProp}\n nodes={STN_TREE_DEMO}\n defaultExpandedIds={['root', 'group-a', 'equip', 'group-b']}\n selectedId={selectedId}\n onSelect={setSelectedId}\n />\n</StnSectionSide>`\n}\n\nexport const STN_TREE_PARTS = [\n { part: '.stn-tree', role: '트리 래퍼 (`StnTree`)' },\n { part: '.stn-tree__heading', role: '섹션 제목 · 13 bold gray-450' },\n { part: '.stn-tree__row', role: '행 24px · role=treeitem · data-depth' },\n { part: '.stn-tree__cell--guide', role: 'vertical_line · tree_connector(_midium)' },\n { part: '.stn-tree__toggle', role: '펼침/접힘 chevron (arrow-left 12)' },\n { part: '.stn-tree__cell--checkbox', role: '아이콘 좌측 선택 체크박스 셀 (`StnCheckbox`)' },\n { part: '.stn-tree__icon--root / --folder / --server', role: '노드 종류별 16px 아이콘' },\n { part: '.stn-tree__row.is-selected', role: '선택 배경 `--stn-tree-selected`' },\n { part: '.stn-tree__row.is-hover / :hover', role: '호버 배경' },\n { part: '.stn-tree__row.is-pressed / :active', role: '프레스 배경' },\n { part: '.stn-section-side', role: '사이드 패널 셸 — Patterns Tree 조립' },\n { part: '.stn-scroll', role: 'Pub 스크롤 — Patterns Tree 조립' },\n] as const\n"],"mappings":"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","names":[]}
|