@stn-uiux/pub-ui 0.1.73 → 0.1.76

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 (55) hide show
  1. package/dist/{chunk-KLIYAEJA.js → chunk-2LRCGTKQ.js} +7 -17
  2. package/dist/chunk-2LRCGTKQ.js.map +1 -0
  3. package/dist/chunk-3CYSR7V4.js +149 -0
  4. package/dist/chunk-3CYSR7V4.js.map +1 -0
  5. package/dist/{chunk-WN7FYFIO.js → chunk-AJLP3Y53.js} +3 -1
  6. package/dist/chunk-AJLP3Y53.js.map +1 -0
  7. package/dist/chunk-RY53LLWK.js +9 -0
  8. package/dist/chunk-RY53LLWK.js.map +1 -0
  9. package/dist/{chunk-NB4NJQYE.js → chunk-YJLOIDKY.js} +24 -24
  10. package/dist/chunk-YJLOIDKY.js.map +1 -0
  11. package/dist/cli.js +1 -1
  12. package/dist/data/index.d.ts +1 -1
  13. package/dist/data/index.js +7 -5
  14. package/dist/data/stnCard.d.ts +3 -1
  15. package/dist/data/stnCard.js +3 -1
  16. package/dist/data/stnChip.d.ts +2 -3
  17. package/dist/data/stnChip.js +1 -1
  18. package/dist/data/stnLogin.d.ts +2 -2
  19. package/dist/data/stnLogin.js +2 -1
  20. package/dist/data/stnPackageVersion.d.ts +2 -2
  21. package/dist/data/stnPackageVersion.js +1 -1
  22. package/dist/data/stnTextField.d.ts +2 -2
  23. package/dist/data/stnTextField.js +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.js +7 -5
  26. package/package.json +1 -1
  27. package/styles/components/stn-breadcrumb.css +37 -34
  28. package/styles/components/stn-card.css +24 -3
  29. package/styles/components/stn-date-picker.css +1 -1
  30. package/styles/components/stn-drawer.css +182 -0
  31. package/styles/components/stn-event-banner.css +18 -18
  32. package/styles/components/stn-pagination.css +9 -8
  33. package/styles/components/stn-progress-bar.css +5 -5
  34. package/styles/components/stn-side-nav.css +55 -31
  35. package/styles/components/stn-status.css +22 -22
  36. package/styles/components/stn-table.css +42 -0
  37. package/styles/components/stn-tabs.css +3 -3
  38. package/styles/components/stn-tooltip.css +1 -1
  39. package/styles/components/stn-widget.css +3 -3
  40. package/styles/patterns/stn-alert-center.css +6 -6
  41. package/styles/patterns/stn-header.css +7 -7
  42. package/styles/style-pub.css +1 -0
  43. package/styles/tokens/stn-breakpoint.css +0 -12
  44. package/styles/tokens/stn-colors-semantic.css +15 -13
  45. package/styles/tokens/stn-elevation.css +5 -1
  46. package/styles/tokens/stn-radius-semantic.css +1 -1
  47. package/styles/tokens/stn-size-semantic.css +8 -0
  48. package/styles/tokens/stn-spacing-semantic.css +25 -0
  49. package/dist/chunk-AWJXDCX2.js +0 -151
  50. package/dist/chunk-AWJXDCX2.js.map +0 -1
  51. package/dist/chunk-KLIYAEJA.js.map +0 -1
  52. package/dist/chunk-NB4NJQYE.js.map +0 -1
  53. package/dist/chunk-Q363EBGR.js +0 -9
  54. package/dist/chunk-Q363EBGR.js.map +0 -1
  55. package/dist/chunk-WN7FYFIO.js.map +0 -1
@@ -4,22 +4,12 @@ import {
4
4
 
5
5
  // src/data/stnChip.ts
6
6
  var STN_CHIP_BORDER_ACCENTS = [
7
- { accent: "mint", descKo: "\uBBFC\uD2B8", cssBorder: "var(--stn-teal-300)", cssText: "var(--stn-teal-300)" },
8
- { accent: "sky", descKo: "\uC2A4\uCE74\uC774", cssBorder: "var(--stn-blue-300)", cssText: "var(--stn-blue-300)" },
9
- { accent: "violet", descKo: "\uBC14\uC774\uC62C\uB81B", cssBorder: "var(--stn-purple-300)", cssText: "var(--stn-purple-300)" },
10
- {
11
- accent: "orange",
12
- descKo: "\uC624\uB80C\uC9C0",
13
- cssBorder: "var(--stn-yellow-300)",
14
- cssText: "var(--stn-yellow-300)"
15
- },
16
- {
17
- accent: "yellow",
18
- descKo: "\uC610\uB85C",
19
- cssBorder: "var(--stn-yellow-300)",
20
- cssText: "var(--stn-yellow-300)"
21
- },
22
- { accent: "gray", descKo: "\uADF8\uB808\uC774", cssBorder: "var(--stn-gray-350)", cssText: "var(--stn-gray-350)" }
7
+ { accent: "mint", descKo: "\uBBFC\uD2B8", className: "stn-chip--accent-mint" },
8
+ { accent: "sky", descKo: "\uC2A4\uCE74\uC774", className: "stn-chip--accent-sky" },
9
+ { accent: "violet", descKo: "\uBC14\uC774\uC62C\uB81B", className: "stn-chip--accent-violet" },
10
+ { accent: "orange", descKo: "\uC624\uB80C\uC9C0", className: "stn-chip--accent-orange" },
11
+ { accent: "yellow", descKo: "\uC610\uB85C", className: "stn-chip--accent-yellow" },
12
+ { accent: "gray", descKo: "\uADF8\uB808\uC774", className: "stn-chip--accent-gray" }
23
13
  ];
24
14
  var STN_CHIP_GRADE_LEGACY_CLASS = {
25
15
  critical: "critic",
@@ -76,4 +66,4 @@ export {
76
66
  STN_CHIP_USAGE_ROWS,
77
67
  STN_CHIP_GRADE_ROWS
78
68
  };
79
- //# sourceMappingURL=chunk-KLIYAEJA.js.map
69
+ //# sourceMappingURL=chunk-2LRCGTKQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnChip.ts"],"sourcesContent":["import { STN_GRADE_SOURCE, type StnGradeKind } from './stnGradeColors'\n\nexport { STN_GRADE_SOURCE }\n\n/** 등급 칩 — 알림센터 `.tag` · equip-search `.tag` · `error_tag` 와 동일 토큰 */\nexport type StnChipGrade = StnGradeKind\n\n/** 테두리 액센트 칩 스케일 */\nexport type StnChipBorderAccent = 'mint' | 'sky' | 'violet' | 'orange' | 'yellow' | 'gray'\n\nexport const STN_CHIP_BORDER_ACCENTS: readonly {\n accent: StnChipBorderAccent\n descKo: string\n className: string\n}[] = [\n { accent: 'mint', descKo: '민트', className: 'stn-chip--accent-mint' },\n { accent: 'sky', descKo: '스카이', className: 'stn-chip--accent-sky' },\n { accent: 'violet', descKo: '바이올렛', className: 'stn-chip--accent-violet' },\n { accent: 'orange', descKo: '오렌지', className: 'stn-chip--accent-orange' },\n { accent: 'yellow', descKo: '옐로', className: 'stn-chip--accent-yellow' },\n { accent: 'gray', descKo: '그레이', className: 'stn-chip--accent-gray' },\n] as const\n\n/** Pub HTML 레거시 modifier (`critic` = critical) */\nexport type StnChipLegacyGradeClass = 'critic' | 'major' | 'minor' | 'warning'\n\nexport const STN_CHIP_GRADE_LEGACY_CLASS: Record<StnChipGrade, StnChipLegacyGradeClass> = {\n critical: 'critic',\n major: 'major',\n minor: 'minor',\n warning: 'warning',\n}\n\nexport const STN_CHIP_INTRO =\n '짧은 상태·등급·속성 라벨용 뱃지입니다. `variant=\"filled\"`는 등급 배경색(알림센터 `.tag`), `variant=\"border\"`는 테이블 `border_chip`처럼 테두리만 있는 뱃지입니다. filled·border 모두 `--stn-badge-*` 토큰(11px·16px 높이·4px radius)으로 맞춥니다. 가로 너비는 글자 길이에 따라 늘어나며 `sideLabel`로 옆 설명을 붙일 수 있습니다.'\n\n/** Badge shell metrics — `stn-badge.css` */\nexport const STN_CHIP_METRICS = [\n { token: '--stn-badge-font-size', value: '11px (gnb alert tag)' },\n { token: '--stn-badge-height', value: '16px' },\n { token: '--stn-badge-radius', value: '4px (--stn-radius-4)' },\n { token: '--stn-badge-padding-x', value: '6px (세로 0 — grid 중앙 정렬)' },\n { token: '--stn-badge-line-height', value: '16px (= height)' },\n] as const\n\nexport type StnChipUsageRow = {\n context: string\n pubMarkup: string\n note?: string\n}\n\nexport const STN_CHIP_USAGE_ROWS: StnChipUsageRow[] = [\n {\n context: 'GNB 알림센터',\n pubMarkup: '<span class=\"stn-badge stn-badge--filled tag critic\">CR</span>',\n note: '`.stn-gnb` 알림 목록 — `tag` 유지 시 레이아웃 호환',\n },\n {\n context: '노드 다이얼로그 · equip-search col1',\n pubMarkup: '<span class=\"stn-badge stn-badge--filled tag major\">MJ</span>',\n note: '`.layer_pop.node_dialog .equip-search-table`',\n },\n {\n context: '검색 필터 · error_tag',\n pubMarkup:\n '<span class=\"stn-badge stn-badge--filled stn-badge--critical error_tag grade-critical tag critic\">CR</span>',\n note: '등급 filled + 레거시 `error_tag`',\n },\n {\n context: '테이블 border chip',\n pubMarkup:\n '<span class=\"border_chip orange stn-badge stn-badge--border\"><span class=\"label\">ETH</span><span class=\"value\">100G</span></span>',\n note: '`.value` = 칩 옆 글자 (`sideLabel`)',\n },\n]\n\nexport const STN_CHIP_GRADE_ROWS = (Object.keys(STN_GRADE_SOURCE) as StnChipGrade[]).map(\n (grade) => ({\n grade,\n label: STN_GRADE_SOURCE[grade].label,\n descKo: STN_GRADE_SOURCE[grade].descKo,\n cssVar: STN_GRADE_SOURCE[grade].pubVar,\n legacyClass: STN_CHIP_GRADE_LEGACY_CLASS[grade],\n canonicalClass: `stn-badge--${grade}`,\n }),\n)\n"],"mappings":";;;;;AAUO,IAAM,0BAIP;AAAA,EACJ,EAAE,QAAQ,QAAQ,QAAQ,gBAAM,WAAW,wBAAwB;AAAA,EACnE,EAAE,QAAQ,OAAO,QAAQ,sBAAO,WAAW,uBAAuB;AAAA,EAClE,EAAE,QAAQ,UAAU,QAAQ,4BAAQ,WAAW,0BAA0B;AAAA,EACzE,EAAE,QAAQ,UAAU,QAAQ,sBAAO,WAAW,0BAA0B;AAAA,EACxE,EAAE,QAAQ,UAAU,QAAQ,gBAAM,WAAW,0BAA0B;AAAA,EACvE,EAAE,QAAQ,QAAQ,QAAQ,sBAAO,WAAW,wBAAwB;AACtE;AAKO,IAAM,8BAA6E;AAAA,EACxF,UAAU;AAAA,EACV,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AACX;AAEO,IAAM,iBACX;AAGK,IAAM,mBAAmB;AAAA,EAC9B,EAAE,OAAO,yBAAyB,OAAO,uBAAuB;AAAA,EAChE,EAAE,OAAO,sBAAsB,OAAO,OAAO;AAAA,EAC7C,EAAE,OAAO,sBAAsB,OAAO,uBAAuB;AAAA,EAC7D,EAAE,OAAO,yBAAyB,OAAO,6DAA0B;AAAA,EACnE,EAAE,OAAO,2BAA2B,OAAO,kBAAkB;AAC/D;AAQO,IAAM,sBAAyC;AAAA,EACpD;AAAA,IACE,SAAS;AAAA,IACT,WAAW;AAAA,IACX,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,WAAW;AAAA,IACX,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,WACE;AAAA,IACF,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,WACE;AAAA,IACF,MAAM;AAAA,EACR;AACF;AAEO,IAAM,sBAAuB,OAAO,KAAK,gBAAgB,EAAqB;AAAA,EACnF,CAAC,WAAW;AAAA,IACV;AAAA,IACA,OAAO,iBAAiB,KAAK,EAAE;AAAA,IAC/B,QAAQ,iBAAiB,KAAK,EAAE;AAAA,IAChC,QAAQ,iBAAiB,KAAK,EAAE;AAAA,IAChC,aAAa,4BAA4B,KAAK;AAAA,IAC9C,gBAAgB,cAAc,KAAK;AAAA,EACrC;AACF;","names":[]}
@@ -0,0 +1,149 @@
1
+ import {
2
+ STN_LAYER0_BACKGROUND_DEMO_IMAGES
3
+ } from "./chunk-NGUMR3D6.js";
4
+
5
+ // src/data/stnLogin.ts
6
+ var STN_LOGIN_FIGMA = "40004209:78293";
7
+ var STN_LOGIN_ASSETS = {
8
+ backgroundLight: STN_LAYER0_BACKGROUND_DEMO_IMAGES.loginLight,
9
+ backgroundDark: STN_LAYER0_BACKGROUND_DEMO_IMAGES.loginDark
10
+ };
11
+ var STN_LOGIN_INTRO = "\uB85C\uADF8\uC778 \uD398\uC774\uC9C0\uB294 LoginPageScaffold(\uD398\uC774\uC9C0) + StnLayer0BackgroundPreset(\uBC14\uB2E5) + StnLoginCard(\uCE74\uB4DC)\uC785\uB2C8\uB2E4. \uBC30\uACBD\xB7\uB85C\uACE0\uB294 \uAC01 \uCEF4\uD3EC\uB10C\uD2B8\uC758 variant\uB97C \uBC14\uAFD4 \uC7A1\uC2B5\uB2C8\uB2E4. onLogin\uB9CC \uB118\uAE30\uBA74 \uAE30\uBCF8 \uC870\uB9BD(login \uBC30\uACBD \xB7 \uAC00\uB85C XL \uB85C\uACE0)\uC774 \uB4E4\uC5B4\uAC11\uB2C8\uB2E4.";
12
+ var STN_LOGIN_USAGE = `import { useState, type FormEvent } from 'react'
13
+ import {
14
+ LoginPageScaffold,
15
+ StnLayer0BackgroundPreset,
16
+ StnLoginCard,
17
+ StnLoginBrandStack,
18
+ StnLoginFormStack,
19
+ StnLoginFormFields,
20
+ StnLoginFormLinks,
21
+ StnLoginTextField,
22
+ StnLogo,
23
+ StnSegmented,
24
+ StnButton,
25
+ } from '@stn-uiux/pub-ui-react'
26
+
27
+ function LoginPage() {
28
+ const [mode, setMode] = useState<'normal' | 'social'>('normal')
29
+ const [userId, setUserId] = useState('')
30
+ const [password, setPassword] = useState('')
31
+
32
+ function handleSubmit(e: FormEvent) {
33
+ e.preventDefault()
34
+ // \uB85C\uADF8\uC778 API \uD638\uCD9C
35
+ }
36
+
37
+ return (
38
+ <LoginPageScaffold
39
+ layer0={<StnLayer0BackgroundPreset variant="login" />}
40
+ cardGlow={true}
41
+ >
42
+ <StnLoginCard
43
+ glow={true}
44
+ brand={
45
+ <StnLoginBrandStack>
46
+ <StnLogo variant="vertical" size="xl" />
47
+ <p className="stn-login-card__caption">Server Resource Monitoring</p>
48
+ </StnLoginBrandStack>
49
+ }
50
+ >
51
+ <StnLoginFormStack onSubmit={handleSubmit}>
52
+ <StnSegmented
53
+ aria-label="\uB85C\uADF8\uC778 \uBC29\uC2DD"
54
+ value={mode}
55
+ onChange={(v) => setMode(v as 'normal' | 'social')}
56
+ options={[
57
+ { value: 'normal', label: '\uC77C\uBC18 \uB85C\uADF8\uC778' },
58
+ { value: 'social', label: '\uC18C\uC15C \uB85C\uADF8\uC778' },
59
+ ]}
60
+ />
61
+ {mode === 'normal' && (
62
+ <StnLoginFormFields>
63
+ <StnLoginTextField
64
+ icon="line/user"
65
+ name="username"
66
+ autoComplete="username"
67
+ placeholder="\uC544\uC774\uB514"
68
+ value={userId}
69
+ onChange={(e) => setUserId(e.target.value)}
70
+ aria-label="\uC544\uC774\uB514"
71
+ />
72
+ <StnLoginTextField
73
+ icon="line/lock"
74
+ type="password"
75
+ name="password"
76
+ autoComplete="current-password"
77
+ placeholder="\uBE44\uBC00\uBC88\uD638"
78
+ value={password}
79
+ onChange={(e) => setPassword(e.target.value)}
80
+ aria-label="\uBE44\uBC00\uBC88\uD638"
81
+ />
82
+ </StnLoginFormFields>
83
+ )}
84
+ <StnButton type="submit" size="xl" fullWidth>
85
+ \uB85C\uADF8\uC778
86
+ </StnButton>
87
+ <StnLoginFormLinks>
88
+ <a href="#signup">\uD68C\uC6D0\uAC00\uC785</a>
89
+ <a href="#recover">\uC544\uC774\uB514 / \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30</a>
90
+ </StnLoginFormLinks>
91
+ </StnLoginFormStack>
92
+ </StnLoginCard>
93
+ </LoginPageScaffold>
94
+ )
95
+ }`;
96
+ var STN_LOGIN_HTML = `<div class="stn-wrap stn-page--login" data-stn-layer-mode="v2">
97
+ <div class="stn-layer0-bg image" aria-hidden="true"><!-- L0 login --></div>
98
+ <main class="stn-elev-1" data-stn-layer-role="content">
99
+ <div class="stn-login">
100
+ <div class="stn-login-card">
101
+ <div class="stn-login-card__brand">
102
+ <div class="stn-login-brand-stack">
103
+ <span class="stn-logo horizontal xl">
104
+ <img class="stn-logo__img light" src="/@assets/svg/brand/infomap-logo-full.png" alt="InfoMap SRM" />
105
+ <img class="stn-logo__img dark" src="/@assets/svg/brand/infomap-logo-full-dark.png" alt="" />
106
+ </span>
107
+ <p class="stn-login-card__caption">Server Resource Monitoring</p>
108
+ </div>
109
+ </div>
110
+ <div class="stn-login-card__form">
111
+ <form class="stn-login-form-stack">
112
+ <div class="stn-segmented" role="radiogroup" aria-label="\uB85C\uADF8\uC778 \uBC29\uC2DD">
113
+ <button type="button" class="stn-segmented__item active" role="radio" aria-checked="true">\uC77C\uBC18 \uB85C\uADF8\uC778</button>
114
+ <button type="button" class="stn-segmented__item" role="radio" aria-checked="false">\uC18C\uC15C \uB85C\uADF8\uC778</button>
115
+ </div>
116
+ <div class="stn-login-form-fields">
117
+ <div class="stn-login-text-field">
118
+ <span class="stn-icon-box md stn-login-text-field__icon-box" aria-hidden>
119
+ <span class="stn-icon stn-icon--masked" style="background-color: currentColor; width: 16px; height: 16px;"></span>
120
+ </span>
121
+ <input type="text" class="stn-login-text-field__control" placeholder="\uC544\uC774\uB514" autocomplete="username" />
122
+ </div>
123
+ <div class="stn-login-text-field">
124
+ <span class="stn-icon-box md stn-login-text-field__icon-box" aria-hidden>
125
+ <span class="stn-icon stn-icon--masked" style="background-color: currentColor; width: 16px; height: 16px;"></span>
126
+ </span>
127
+ <input type="password" class="stn-login-text-field__control" placeholder="\uBE44\uBC00\uBC88\uD638" autocomplete="current-password" />
128
+ </div>
129
+ </div>
130
+ <button type="submit" class="stn-btn contained xl full">\uB85C\uADF8\uC778</button>
131
+ <nav class="stn-login-form-links" aria-label="\uACC4\uC815 \uAD00\uB9AC \uB9C1\uD06C">
132
+ <a href="#signup">\uD68C\uC6D0\uAC00\uC785</a>
133
+ <a href="#recover">\uC544\uC774\uB514 / \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30</a>
134
+ </nav>
135
+ </form>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </main>
140
+ </div>`;
141
+
142
+ export {
143
+ STN_LOGIN_FIGMA,
144
+ STN_LOGIN_ASSETS,
145
+ STN_LOGIN_INTRO,
146
+ STN_LOGIN_USAGE,
147
+ STN_LOGIN_HTML
148
+ };
149
+ //# sourceMappingURL=chunk-3CYSR7V4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnLogin.ts"],"sourcesContent":["/**\n * Pub login screen — Figma 40004209:78293\n * L0 image + L1 centered card · no L2 GNB\n */\n\nimport { STN_LAYER0_BACKGROUND_DEMO_IMAGES } from './stnLayer0BackgroundAssets'\n\nexport const STN_LOGIN_FIGMA = '40004209:78293'\n\nexport const STN_LOGIN_ASSETS = {\n backgroundLight: STN_LAYER0_BACKGROUND_DEMO_IMAGES.loginLight,\n backgroundDark: STN_LAYER0_BACKGROUND_DEMO_IMAGES.loginDark,\n} as const\n\nexport const STN_LOGIN_INTRO =\n '로그인 페이지는 LoginPageScaffold(페이지) + StnLayer0BackgroundPreset(바닥) + StnLoginCard(카드)입니다. 배경·로고는 각 컴포넌트의 variant를 바꿔 잡습니다. onLogin만 넘기면 기본 조립(login 배경 · 가로 XL 로고)이 들어갑니다.'\n\nexport const STN_LOGIN_USAGE = `import { useState, type FormEvent } from 'react'\nimport {\n LoginPageScaffold,\n StnLayer0BackgroundPreset,\n StnLoginCard,\n StnLoginBrandStack,\n StnLoginFormStack,\n StnLoginFormFields,\n StnLoginFormLinks,\n StnLoginTextField,\n StnLogo,\n StnSegmented,\n StnButton,\n} from '@stn-uiux/pub-ui-react'\n\nfunction LoginPage() {\n const [mode, setMode] = useState<'normal' | 'social'>('normal')\n const [userId, setUserId] = useState('')\n const [password, setPassword] = useState('')\n\n function handleSubmit(e: FormEvent) {\n e.preventDefault()\n // 로그인 API 호출\n }\n\n return (\n <LoginPageScaffold\n layer0={<StnLayer0BackgroundPreset variant=\"login\" />}\n cardGlow={true}\n >\n <StnLoginCard\n glow={true}\n brand={\n <StnLoginBrandStack>\n <StnLogo variant=\"vertical\" size=\"xl\" />\n <p className=\"stn-login-card__caption\">Server Resource Monitoring</p>\n </StnLoginBrandStack>\n }\n >\n <StnLoginFormStack onSubmit={handleSubmit}>\n <StnSegmented\n aria-label=\"로그인 방식\"\n value={mode}\n onChange={(v) => setMode(v as 'normal' | 'social')}\n options={[\n { value: 'normal', label: '일반 로그인' },\n { value: 'social', label: '소셜 로그인' },\n ]}\n />\n {mode === 'normal' && (\n <StnLoginFormFields>\n <StnLoginTextField\n icon=\"line/user\"\n name=\"username\"\n autoComplete=\"username\"\n placeholder=\"아이디\"\n value={userId}\n onChange={(e) => setUserId(e.target.value)}\n aria-label=\"아이디\"\n />\n <StnLoginTextField\n icon=\"line/lock\"\n type=\"password\"\n name=\"password\"\n autoComplete=\"current-password\"\n placeholder=\"비밀번호\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n aria-label=\"비밀번호\"\n />\n </StnLoginFormFields>\n )}\n <StnButton type=\"submit\" size=\"xl\" fullWidth>\n 로그인\n </StnButton>\n <StnLoginFormLinks>\n <a href=\"#signup\">회원가입</a>\n <a href=\"#recover\">아이디 / 비밀번호 찾기</a>\n </StnLoginFormLinks>\n </StnLoginFormStack>\n </StnLoginCard>\n </LoginPageScaffold>\n )\n}`\n\nexport const STN_LOGIN_HTML = `<div class=\"stn-wrap stn-page--login\" data-stn-layer-mode=\"v2\">\n <div class=\"stn-layer0-bg image\" aria-hidden=\"true\"><!-- L0 login --></div>\n <main class=\"stn-elev-1\" data-stn-layer-role=\"content\">\n <div class=\"stn-login\">\n <div class=\"stn-login-card\">\n <div class=\"stn-login-card__brand\">\n <div class=\"stn-login-brand-stack\">\n <span class=\"stn-logo horizontal xl\">\n <img class=\"stn-logo__img light\" src=\"/@assets/svg/brand/infomap-logo-full.png\" alt=\"InfoMap SRM\" />\n <img class=\"stn-logo__img dark\" src=\"/@assets/svg/brand/infomap-logo-full-dark.png\" alt=\"\" />\n </span>\n <p class=\"stn-login-card__caption\">Server Resource Monitoring</p>\n </div>\n </div>\n <div class=\"stn-login-card__form\">\n <form class=\"stn-login-form-stack\">\n <div class=\"stn-segmented\" role=\"radiogroup\" aria-label=\"로그인 방식\">\n <button type=\"button\" class=\"stn-segmented__item active\" role=\"radio\" aria-checked=\"true\">일반 로그인</button>\n <button type=\"button\" class=\"stn-segmented__item\" role=\"radio\" aria-checked=\"false\">소셜 로그인</button>\n </div>\n <div class=\"stn-login-form-fields\">\n <div class=\"stn-login-text-field\">\n <span class=\"stn-icon-box md stn-login-text-field__icon-box\" aria-hidden>\n <span class=\"stn-icon stn-icon--masked\" style=\"background-color: currentColor; width: 16px; height: 16px;\"></span>\n </span>\n <input type=\"text\" class=\"stn-login-text-field__control\" placeholder=\"아이디\" autocomplete=\"username\" />\n </div>\n <div class=\"stn-login-text-field\">\n <span class=\"stn-icon-box md stn-login-text-field__icon-box\" aria-hidden>\n <span class=\"stn-icon stn-icon--masked\" style=\"background-color: currentColor; width: 16px; height: 16px;\"></span>\n </span>\n <input type=\"password\" class=\"stn-login-text-field__control\" placeholder=\"비밀번호\" autocomplete=\"current-password\" />\n </div>\n </div>\n <button type=\"submit\" class=\"stn-btn contained xl full\">로그인</button>\n <nav class=\"stn-login-form-links\" aria-label=\"계정 관리 링크\">\n <a href=\"#signup\">회원가입</a>\n <a href=\"#recover\">아이디 / 비밀번호 찾기</a>\n </nav>\n </form>\n </div>\n </div>\n </div>\n </main>\n</div>`\n"],"mappings":";;;;;AAOO,IAAM,kBAAkB;AAExB,IAAM,mBAAmB;AAAA,EAC9B,iBAAiB,kCAAkC;AAAA,EACnD,gBAAgB,kCAAkC;AACpD;AAEO,IAAM,kBACX;AAEK,IAAM,kBAAkB;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;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;AAAA;AAAA;AAAA;AAqFxB,IAAM,iBAAiB;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;AAAA;AAAA;AAAA;AAAA;","names":[]}
@@ -2,12 +2,14 @@
2
2
  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
+ var STN_CARD_SEVERITIES = ["critical", "major", "minor", "warning"];
5
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.";
6
7
 
7
8
  export {
8
9
  STN_CARD_VARIANTS,
9
10
  STN_CARD_RADII,
10
11
  STN_CARD_PADDINGS,
12
+ STN_CARD_SEVERITIES,
11
13
  STN_CARD_INTRO
12
14
  };
13
- //# sourceMappingURL=chunk-WN7FYFIO.js.map
15
+ //# sourceMappingURL=chunk-AJLP3Y53.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,9 @@
1
+ // src/data/stnPackageVersion.ts
2
+ var STN_UI_VERSION = "0.1.76";
3
+ var STN_UI_VERSION_LABEL = "v0.1.76";
4
+
5
+ export {
6
+ STN_UI_VERSION,
7
+ STN_UI_VERSION_LABEL
8
+ };
9
+ //# sourceMappingURL=chunk-RY53LLWK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnPackageVersion.ts"],"sourcesContent":["/** Package version constants */\nexport const STN_UI_VERSION = '0.1.76'\nexport const STN_UI_VERSION_LABEL = 'v0.1.76'\n"],"mappings":";AACO,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}
@@ -3,41 +3,41 @@ var STN_TEXT_FIELD_FIGMA = "40000042:186898";
3
3
  var STN_TEXT_FIELD_INTRO = "Infomap \uAC80\uC0C9\xB7\uD544\uD130\uC6A9 **\uD14D\uC2A4\uD2B8 \uC785\uB825**\uC785\uB2C8\uB2E4. **outlined**(\uBC15\uC2A4, \uAE30\uBCF8) \xB7 **filled**(\uBA74) \xB7 **standard**(\uD558\uB2E8 \uB77C\uC778). Light filled = gray-50. Dark filled = gray-750. helperText\uB294 \uD558\uB2E8 \uC67C\uCABD \uCEA1\uC158. React `StnTextField` \xB7 Pub `.stn-text-field`.";
4
4
  var STN_TEXT_FIELD_SIZE_ROWS = [
5
5
  {
6
- size: "S",
7
- height: "24px",
8
- radius: "4px (radius-4)",
9
- fontSize: "13px",
10
- paddingX: "10px",
11
- typicalWidth: "width \uD504\uB9AC\uC14B \xB7 \uAE30\uBCF8 140px \xB7 fullWidth=100%",
6
+ size: "sm",
7
+ height: "24px (var(--stn-size-sm))",
8
+ radius: "var(--stn-radius-sm, 4px)",
9
+ fontSize: "var(--stn-text-body-small-size, 13px)",
10
+ paddingX: "var(--stn-space-2, 8px)",
11
+ typicalWidth: "width \uD504\uB9AC\uC14B (w80~w200) \xB7 fullWidth=100%",
12
12
  pubClass: "stn-text-field sm",
13
13
  usedIn: "\uD14C\uC774\uBE14 \uC140 \xB7 \uC881\uC740 \uAC80\uC0C9"
14
14
  },
15
15
  {
16
- size: "M",
17
- height: "32px",
18
- radius: "4px (radius-4)",
19
- fontSize: "13px",
20
- paddingX: "10px",
21
- typicalWidth: "width \uD504\uB9AC\uC14B \xB7 \uAE30\uBCF8 140px \xB7 fullWidth=100%",
16
+ size: "md",
17
+ height: "32px (var(--stn-size-md))",
18
+ radius: "var(--stn-radius-sm, 4px)",
19
+ fontSize: "var(--stn-text-body-small-size, 13px)",
20
+ paddingX: "var(--stn-space-3, 12px)",
21
+ typicalWidth: "width \uD504\uB9AC\uC14B (w80~w200) \xB7 fullWidth=100%",
22
22
  pubClass: "stn-text-field md",
23
23
  usedIn: "\uAC80\uC0C9\uC601\uC5ED \xB7 \uD544\uD130 \uAC12"
24
24
  },
25
25
  {
26
- size: "L",
27
- height: "40px",
28
- radius: "6px (radius-6)",
29
- fontSize: "14px",
30
- paddingX: "12px",
31
- typicalWidth: "width \uD504\uB9AC\uC14B \xB7 \uAE30\uBCF8 140px \xB7 fullWidth=100%",
26
+ size: "lg",
27
+ height: "40px (var(--stn-size-lg))",
28
+ radius: "var(--stn-radius-md, 6px)",
29
+ fontSize: "var(--stn-text-body-medium-size, 14px)",
30
+ paddingX: "var(--stn-space-4, 16px)",
31
+ typicalWidth: "width \uD504\uB9AC\uC14B (w80~w200) \xB7 fullWidth=100%",
32
32
  pubClass: "stn-text-field lg",
33
33
  usedIn: "\uAC15\uC870 \uAC80\uC0C9 \xB7 \uB113\uC740 \uB77C\uBCA8 \uC5F4"
34
34
  },
35
35
  {
36
- size: "XL",
37
- height: "56px",
38
- radius: "16px (radius-16)",
39
- fontSize: "14px",
40
- paddingX: "16px",
36
+ size: "xl",
37
+ height: "56px (var(--stn-size-xl))",
38
+ radius: "var(--stn-radius-lg, 16px)",
39
+ fontSize: "var(--stn-text-body-medium-size, 14px)",
40
+ paddingX: "var(--stn-space-5, 20px)",
41
41
  typicalWidth: "fullWidth=100%",
42
42
  pubClass: "stn-text-field xl",
43
43
  usedIn: "\uB113\uC740 \uAC80\uC0C9 \xB7 \uAC15\uC870 \uC785\uB825"
@@ -70,4 +70,4 @@ export {
70
70
  STN_TEXT_FIELD_USAGE,
71
71
  STN_TEXT_FIELD_HTML
72
72
  };
73
- //# sourceMappingURL=chunk-NB4NJQYE.js.map
73
+ //# sourceMappingURL=chunk-YJLOIDKY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/stnTextField.ts"],"sourcesContent":["/**\n * Pub text input — Infomap `input` (Figma 40000042:186898)\n * @see common.css form inputs · StnTextField\n */\n\n/** sm (24px) · md (32px) · lg (40px) · xl (56px) */\nexport type StnTextFieldSize = 'sm' | 'md' | 'lg' | 'xl'\n\nexport const STN_TEXT_FIELD_FIGMA = '40000042:186898'\n\nexport const STN_TEXT_FIELD_INTRO =\n \"Infomap 검색·필터용 **텍스트 입력**입니다. **outlined**(박스, 기본) · **filled**(면) · **standard**(하단 라인). Light filled = gray-50. Dark filled = gray-750. helperText는 하단 왼쪽 캡션. React `StnTextField` · Pub `.stn-text-field`.\"\n\nexport const STN_TEXT_FIELD_SIZE_ROWS: readonly {\n size: StnTextFieldSize\n height: string\n radius: string\n fontSize: string\n paddingX: string\n typicalWidth: string\n pubClass: string\n usedIn: string\n}[] = [\n {\n size: 'sm',\n height: '24px (var(--stn-size-sm))',\n radius: 'var(--stn-radius-sm, 4px)',\n fontSize: 'var(--stn-text-body-small-size, 13px)',\n paddingX: 'var(--stn-space-2, 8px)',\n typicalWidth: 'width 프리셋 (w80~w200) · fullWidth=100%',\n pubClass: 'stn-text-field sm',\n usedIn: '테이블 셀 · 좁은 검색',\n },\n {\n size: 'md',\n height: '32px (var(--stn-size-md))',\n radius: 'var(--stn-radius-sm, 4px)',\n fontSize: 'var(--stn-text-body-small-size, 13px)',\n paddingX: 'var(--stn-space-3, 12px)',\n typicalWidth: 'width 프리셋 (w80~w200) · fullWidth=100%',\n pubClass: 'stn-text-field md',\n usedIn: '검색영역 · 필터 값',\n },\n {\n size: 'lg',\n height: '40px (var(--stn-size-lg))',\n radius: 'var(--stn-radius-md, 6px)',\n fontSize: 'var(--stn-text-body-medium-size, 14px)',\n paddingX: 'var(--stn-space-4, 16px)',\n typicalWidth: 'width 프리셋 (w80~w200) · fullWidth=100%',\n pubClass: 'stn-text-field lg',\n usedIn: '강조 검색 · 넓은 라벨 열',\n },\n {\n size: 'xl',\n height: '56px (var(--stn-size-xl))',\n radius: 'var(--stn-radius-lg, 16px)',\n fontSize: 'var(--stn-text-body-medium-size, 14px)',\n paddingX: 'var(--stn-space-5, 20px)',\n typicalWidth: 'fullWidth=100%',\n pubClass: 'stn-text-field xl',\n usedIn: '넓은 검색 · 강조 입력',\n },\n] as const\n\nexport const STN_TEXT_FIELD_STATES = [\n { id: 'default', label: 'Default', note: 'border `--stn-input-border` · bg `--stn-input-bg`' },\n { id: 'focus', label: 'Focus', note: 'border `--stn-input-focus` (2px)' },\n { id: 'placeholder', label: 'Placeholder', note: 'color `--stn-input-placeholder`' },\n { id: 'disabled', label: 'Disabled', note: 'opacity 0.55 · not-allowed' },\n { id: 'invalid', label: 'Invalid', note: 'border `--stn-feedback-error` · `aria-invalid` 또는 `invalid` prop' },\n] as const\n\nexport const STN_TEXT_FIELD_USAGE = \"import { StnTextField } from '@stn-uiux/pub-ui-react'\\n\\n<StnTextField variant=\\\"outlined\\\" placeholder=\\\"검색\\\" />\\n<StnTextField variant=\\\"filled\\\" placeholder=\\\"입력\\\" />\\n<StnTextField variant=\\\"standard\\\" placeholder=\\\"입력\\\" helperText=\\\"도움말\\\" />\"\n\nexport const STN_TEXT_FIELD_HTML = `<input\n type=\"text\"\n class=\"stn-text-field md\"\n value=\"전체\"\n aria-label=\"필터\"\n/>`\n"],"mappings":";AAQO,IAAM,uBAAuB;AAE7B,IAAM,uBACX;AAEK,IAAM,2BASP;AAAA,EACJ;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AACF;AAEO,IAAM,wBAAwB;AAAA,EACnC,EAAE,IAAI,WAAW,OAAO,WAAW,MAAM,uDAAoD;AAAA,EAC7F,EAAE,IAAI,SAAS,OAAO,SAAS,MAAM,mCAAmC;AAAA,EACxE,EAAE,IAAI,eAAe,OAAO,eAAe,MAAM,kCAAkC;AAAA,EACnF,EAAE,IAAI,YAAY,OAAO,YAAY,MAAM,gCAA6B;AAAA,EACxE,EAAE,IAAI,WAAW,OAAO,WAAW,MAAM,gFAAmE;AAC9G;AAEO,IAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAE7B,IAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  STN_TEXT_FIELD_USAGE
3
- } from "./chunk-NB4NJQYE.js";
3
+ } from "./chunk-YJLOIDKY.js";
4
4
  import {
5
5
  STN_TOAST_REACT_USAGE
6
6
  } from "./chunk-SOEBXG3T.js";
@@ -61,7 +61,7 @@ export { STN_TOGGLE_BUTTON_PLAYGROUND_DEFAULT, STN_TOGGLE_BUTTON_PLAYGROUND_INTR
61
61
  export { STN_TREE_DEMO, STN_TREE_FIGMA, STN_TREE_INTRO, STN_TREE_PARTS, STN_TREE_PATTERN_PLAYGROUND_DEFAULT, STN_TREE_PATTERN_PLAYGROUND_PROPERTIES, STN_TREE_REACT_EXAMPLE, STN_TREE_SECTION_SIDE_FIGMA, STN_TREE_USAGE_HTML, StnTreeDemoNode, StnTreePatternPlaygroundConfig, describeTreePatternReact } from './stnTree.js';
62
62
  export { STN_TYPE_SCALE_INTRO, STN_TYPE_SCALE_ROWS, StnTypeScaleCategory, StnTypeScaleRow, resolveTypeScaleName, typeScalePill } from './stnTypeScale.js';
63
63
  export { STN_FONT_FAMILY_ROWS, STN_FONT_SIZE_ROWS, STN_FONT_WEIGHT_ROWS, STN_LINE_HEIGHT_ROWS, STN_TYPOGRAPHY_PRIMITIVE_GROUPS, STN_TYPOGRAPHY_SEMANTIC_ROWS, StnTypographyPrimitiveRow, StnTypographySemanticRow, typographyPrimitivesToJson, typographySemanticsToJson } from './stnTypography.js';
64
- export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_VARIANTS, StnCardPadding, StnCardRadius, StnCardVariant } from './stnCard.js';
64
+ export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_SEVERITIES, STN_CARD_VARIANTS, StnCardPadding, StnCardRadius, StnCardSeverity, 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
67
  export { StnTabIconPosition, StnTabIconSize, StnTabItem, StnTabPanelPadding, StnTabScrollButtons, StnTabsSize, StnTabsVariant } from './stnTabs.js';
@@ -118,7 +118,7 @@ import {
118
118
  STN_LOGIN_HTML,
119
119
  STN_LOGIN_INTRO,
120
120
  STN_LOGIN_USAGE
121
- } from "../chunk-AWJXDCX2.js";
121
+ } from "../chunk-3CYSR7V4.js";
122
122
  import {
123
123
  STN_MAP_DASHBOARD_OPTION_ROWS
124
124
  } from "../chunk-3DAZMM4T.js";
@@ -136,7 +136,7 @@ import {
136
136
  import {
137
137
  STN_UI_VERSION,
138
138
  STN_UI_VERSION_LABEL
139
- } from "../chunk-Q363EBGR.js";
139
+ } from "../chunk-RY53LLWK.js";
140
140
  import {
141
141
  STN_PAGE_ENTER_MOTION_INTRO,
142
142
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -229,8 +229,9 @@ import {
229
229
  STN_CARD_INTRO,
230
230
  STN_CARD_PADDINGS,
231
231
  STN_CARD_RADII,
232
+ STN_CARD_SEVERITIES,
232
233
  STN_CARD_VARIANTS
233
- } from "../chunk-WN7FYFIO.js";
234
+ } from "../chunk-AJLP3Y53.js";
234
235
  import {
235
236
  STN_CHART_INTRO
236
237
  } from "../chunk-DGZVOSEM.js";
@@ -253,7 +254,7 @@ import {
253
254
  STN_CHIP_INTRO,
254
255
  STN_CHIP_METRICS,
255
256
  STN_CHIP_USAGE_ROWS
256
- } from "../chunk-KLIYAEJA.js";
257
+ } from "../chunk-2LRCGTKQ.js";
257
258
  import {
258
259
  STN_ALL_PALETTE_ROWS,
259
260
  STN_BLUE_SCALE,
@@ -298,7 +299,7 @@ import {
298
299
  STN_TEXT_FIELD_SIZE_ROWS,
299
300
  STN_TEXT_FIELD_STATES,
300
301
  STN_TEXT_FIELD_USAGE
301
- } from "../chunk-NB4NJQYE.js";
302
+ } from "../chunk-YJLOIDKY.js";
302
303
  import {
303
304
  STN_TOAST_DEMO_MSG,
304
305
  STN_TOAST_ICON_SLUG,
@@ -585,6 +586,7 @@ export {
585
586
  STN_CARD_INTRO,
586
587
  STN_CARD_PADDINGS,
587
588
  STN_CARD_RADII,
589
+ STN_CARD_SEVERITIES,
588
590
  STN_CARD_VARIANTS,
589
591
  STN_CDN_ASSET_BASE,
590
592
  STN_CHART_INTRO,
@@ -1,9 +1,11 @@
1
1
  type StnCardVariant = 'flat' | 'outlined' | 'elevated';
2
2
  type StnCardRadius = 'sm' | 'md' | 'lg' | 'none';
3
3
  type StnCardPadding = 'none' | 'sm' | 'md' | 'lg';
4
+ type StnCardSeverity = 'critical' | 'major' | 'minor' | 'warning';
4
5
  declare const STN_CARD_VARIANTS: readonly StnCardVariant[];
5
6
  declare const STN_CARD_RADII: readonly StnCardRadius[];
6
7
  declare const STN_CARD_PADDINGS: readonly StnCardPadding[];
8
+ declare const STN_CARD_SEVERITIES: readonly StnCardSeverity[];
7
9
  declare const 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.";
8
10
 
9
- export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_VARIANTS, type StnCardPadding, type StnCardRadius, type StnCardVariant };
11
+ export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_SEVERITIES, STN_CARD_VARIANTS, type StnCardPadding, type StnCardRadius, type StnCardSeverity, type StnCardVariant };
@@ -2,12 +2,14 @@ import {
2
2
  STN_CARD_INTRO,
3
3
  STN_CARD_PADDINGS,
4
4
  STN_CARD_RADII,
5
+ STN_CARD_SEVERITIES,
5
6
  STN_CARD_VARIANTS
6
- } from "../chunk-WN7FYFIO.js";
7
+ } from "../chunk-AJLP3Y53.js";
7
8
  export {
8
9
  STN_CARD_INTRO,
9
10
  STN_CARD_PADDINGS,
10
11
  STN_CARD_RADII,
12
+ STN_CARD_SEVERITIES,
11
13
  STN_CARD_VARIANTS
12
14
  };
13
15
  //# sourceMappingURL=stnCard.js.map
@@ -4,13 +4,12 @@ import './stnColorPalette.js';
4
4
 
5
5
  /** 등급 칩 — 알림센터 `.tag` · equip-search `.tag` · `error_tag` 와 동일 토큰 */
6
6
  type StnChipGrade = StnGradeKind;
7
- /** 테이블 `border_chip` accent (등급과 별도) */
7
+ /** 테두리 액센트 칩 스케일 */
8
8
  type StnChipBorderAccent = 'mint' | 'sky' | 'violet' | 'orange' | 'yellow' | 'gray';
9
9
  declare const STN_CHIP_BORDER_ACCENTS: readonly {
10
10
  accent: StnChipBorderAccent;
11
11
  descKo: string;
12
- cssBorder: string;
13
- cssText: string;
12
+ className: string;
14
13
  }[];
15
14
  /** Pub HTML 레거시 modifier (`critic` = critical) */
16
15
  type StnChipLegacyGradeClass = 'critic' | 'major' | 'minor' | 'warning';
@@ -5,7 +5,7 @@ import {
5
5
  STN_CHIP_INTRO,
6
6
  STN_CHIP_METRICS,
7
7
  STN_CHIP_USAGE_ROWS
8
- } from "../chunk-KLIYAEJA.js";
8
+ } from "../chunk-2LRCGTKQ.js";
9
9
  import {
10
10
  STN_GRADE_SOURCE
11
11
  } from "../chunk-E26XJXQY.js";
@@ -4,8 +4,8 @@
4
4
  */
5
5
  declare const STN_LOGIN_FIGMA = "40004209:78293";
6
6
  declare const STN_LOGIN_ASSETS: {
7
- readonly backgroundLight: string;
8
- readonly backgroundDark: string;
7
+ readonly backgroundLight: "https://stn-design.vercel.app/images/layer0/login-light.png";
8
+ readonly backgroundDark: "https://stn-design.vercel.app/images/layer0/login-dark.png";
9
9
  };
10
10
  declare const STN_LOGIN_INTRO = "\uB85C\uADF8\uC778 \uD398\uC774\uC9C0\uB294 LoginPageScaffold(\uD398\uC774\uC9C0) + StnLayer0BackgroundPreset(\uBC14\uB2E5) + StnLoginCard(\uCE74\uB4DC)\uC785\uB2C8\uB2E4. \uBC30\uACBD\u00B7\uB85C\uACE0\uB294 \uAC01 \uCEF4\uD3EC\uB10C\uD2B8\uC758 variant\uB97C \uBC14\uAFD4 \uC7A1\uC2B5\uB2C8\uB2E4. onLogin\uB9CC \uB118\uAE30\uBA74 \uAE30\uBCF8 \uC870\uB9BD(login \uBC30\uACBD \u00B7 \uAC00\uB85C XL \uB85C\uACE0)\uC774 \uB4E4\uC5B4\uAC11\uB2C8\uB2E4.";
11
11
  declare const STN_LOGIN_USAGE = "import { useState, type FormEvent } from 'react'\nimport {\n LoginPageScaffold,\n StnLayer0BackgroundPreset,\n StnLoginCard,\n StnLoginBrandStack,\n StnLoginFormStack,\n StnLoginFormFields,\n StnLoginFormLinks,\n StnLoginTextField,\n StnLogo,\n StnSegmented,\n StnButton,\n} from '@stn-uiux/pub-ui-react'\n\nfunction LoginPage() {\n const [mode, setMode] = useState<'normal' | 'social'>('normal')\n const [userId, setUserId] = useState('')\n const [password, setPassword] = useState('')\n\n function handleSubmit(e: FormEvent) {\n e.preventDefault()\n // \uB85C\uADF8\uC778 API \uD638\uCD9C\n }\n\n return (\n <LoginPageScaffold\n layer0={<StnLayer0BackgroundPreset variant=\"login\" />}\n cardGlow={true}\n >\n <StnLoginCard\n glow={true}\n brand={\n <StnLoginBrandStack>\n <StnLogo variant=\"vertical\" size=\"xl\" />\n <p className=\"stn-login-card__caption\">Server Resource Monitoring</p>\n </StnLoginBrandStack>\n }\n >\n <StnLoginFormStack onSubmit={handleSubmit}>\n <StnSegmented\n aria-label=\"\uB85C\uADF8\uC778 \uBC29\uC2DD\"\n value={mode}\n onChange={(v) => setMode(v as 'normal' | 'social')}\n options={[\n { value: 'normal', label: '\uC77C\uBC18 \uB85C\uADF8\uC778' },\n { value: 'social', label: '\uC18C\uC15C \uB85C\uADF8\uC778' },\n ]}\n />\n {mode === 'normal' && (\n <StnLoginFormFields>\n <StnLoginTextField\n icon=\"line/user\"\n name=\"username\"\n autoComplete=\"username\"\n placeholder=\"\uC544\uC774\uB514\"\n value={userId}\n onChange={(e) => setUserId(e.target.value)}\n aria-label=\"\uC544\uC774\uB514\"\n />\n <StnLoginTextField\n icon=\"line/lock\"\n type=\"password\"\n name=\"password\"\n autoComplete=\"current-password\"\n placeholder=\"\uBE44\uBC00\uBC88\uD638\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n aria-label=\"\uBE44\uBC00\uBC88\uD638\"\n />\n </StnLoginFormFields>\n )}\n <StnButton type=\"submit\" size=\"xl\" fullWidth>\n \uB85C\uADF8\uC778\n </StnButton>\n <StnLoginFormLinks>\n <a href=\"#signup\">\uD68C\uC6D0\uAC00\uC785</a>\n <a href=\"#recover\">\uC544\uC774\uB514 / \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30</a>\n </StnLoginFormLinks>\n </StnLoginFormStack>\n </StnLoginCard>\n </LoginPageScaffold>\n )\n}";
@@ -4,7 +4,8 @@ import {
4
4
  STN_LOGIN_HTML,
5
5
  STN_LOGIN_INTRO,
6
6
  STN_LOGIN_USAGE
7
- } from "../chunk-AWJXDCX2.js";
7
+ } from "../chunk-3CYSR7V4.js";
8
+ import "../chunk-NGUMR3D6.js";
8
9
  export {
9
10
  STN_LOGIN_ASSETS,
10
11
  STN_LOGIN_FIGMA,
@@ -1,5 +1,5 @@
1
1
  /** Package version constants */
2
- declare const STN_UI_VERSION = "0.1.73";
3
- declare const STN_UI_VERSION_LABEL = "v0.1.73";
2
+ declare const STN_UI_VERSION = "0.1.76";
3
+ declare const STN_UI_VERSION_LABEL = "v0.1.76";
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-Q363EBGR.js";
4
+ } from "../chunk-RY53LLWK.js";
5
5
  export {
6
6
  STN_UI_VERSION,
7
7
  STN_UI_VERSION_LABEL
@@ -2,8 +2,8 @@
2
2
  * Pub text input — Infomap `input` (Figma 40000042:186898)
3
3
  * @see common.css form inputs · StnTextField
4
4
  */
5
- /** S 24px · M 32px · L 40px · XL 56px */
6
- type StnTextFieldSize = 'S' | 'M' | 'L' | 'XL';
5
+ /** sm (24px) · md (32px) · lg (40px) · xl (56px) */
6
+ type StnTextFieldSize = 'sm' | 'md' | 'lg' | 'xl';
7
7
  declare const STN_TEXT_FIELD_FIGMA = "40000042:186898";
8
8
  declare const STN_TEXT_FIELD_INTRO = "Infomap \uAC80\uC0C9\u00B7\uD544\uD130\uC6A9 **\uD14D\uC2A4\uD2B8 \uC785\uB825**\uC785\uB2C8\uB2E4. **outlined**(\uBC15\uC2A4, \uAE30\uBCF8) \u00B7 **filled**(\uBA74) \u00B7 **standard**(\uD558\uB2E8 \uB77C\uC778). Light filled = gray-50. Dark filled = gray-750. helperText\uB294 \uD558\uB2E8 \uC67C\uCABD \uCEA1\uC158. React `StnTextField` \u00B7 Pub `.stn-text-field`.";
9
9
  declare const STN_TEXT_FIELD_SIZE_ROWS: readonly {
@@ -5,7 +5,7 @@ import {
5
5
  STN_TEXT_FIELD_SIZE_ROWS,
6
6
  STN_TEXT_FIELD_STATES,
7
7
  STN_TEXT_FIELD_USAGE
8
- } from "../chunk-NB4NJQYE.js";
8
+ } from "../chunk-YJLOIDKY.js";
9
9
  export {
10
10
  STN_TEXT_FIELD_FIGMA,
11
11
  STN_TEXT_FIELD_HTML,
package/dist/index.d.ts CHANGED
@@ -61,7 +61,7 @@ export { STN_TOGGLE_BUTTON_PLAYGROUND_DEFAULT, STN_TOGGLE_BUTTON_PLAYGROUND_INTR
61
61
  export { STN_TREE_DEMO, STN_TREE_FIGMA, STN_TREE_INTRO, STN_TREE_PARTS, STN_TREE_PATTERN_PLAYGROUND_DEFAULT, STN_TREE_PATTERN_PLAYGROUND_PROPERTIES, STN_TREE_REACT_EXAMPLE, STN_TREE_SECTION_SIDE_FIGMA, STN_TREE_USAGE_HTML, StnTreeDemoNode, StnTreePatternPlaygroundConfig, describeTreePatternReact } from './data/stnTree.js';
62
62
  export { STN_TYPE_SCALE_INTRO, STN_TYPE_SCALE_ROWS, StnTypeScaleCategory, StnTypeScaleRow, resolveTypeScaleName, typeScalePill } from './data/stnTypeScale.js';
63
63
  export { STN_FONT_FAMILY_ROWS, STN_FONT_SIZE_ROWS, STN_FONT_WEIGHT_ROWS, STN_LINE_HEIGHT_ROWS, STN_TYPOGRAPHY_PRIMITIVE_GROUPS, STN_TYPOGRAPHY_SEMANTIC_ROWS, StnTypographyPrimitiveRow, StnTypographySemanticRow, typographyPrimitivesToJson, typographySemanticsToJson } from './data/stnTypography.js';
64
- export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_VARIANTS, StnCardPadding, StnCardRadius, StnCardVariant } from './data/stnCard.js';
64
+ export { STN_CARD_INTRO, STN_CARD_PADDINGS, STN_CARD_RADII, STN_CARD_SEVERITIES, STN_CARD_VARIANTS, StnCardPadding, StnCardRadius, StnCardSeverity, 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
67
  export { StnTabIconPosition, StnTabIconSize, StnTabItem, StnTabPanelPadding, StnTabScrollButtons, StnTabsSize, StnTabsVariant } from './data/stnTabs.js';
package/dist/index.js CHANGED
@@ -123,7 +123,7 @@ import {
123
123
  STN_LOGIN_HTML,
124
124
  STN_LOGIN_INTRO,
125
125
  STN_LOGIN_USAGE
126
- } from "./chunk-AWJXDCX2.js";
126
+ } from "./chunk-3CYSR7V4.js";
127
127
  import {
128
128
  STN_MAP_DASHBOARD_OPTION_ROWS
129
129
  } from "./chunk-3DAZMM4T.js";
@@ -141,7 +141,7 @@ import {
141
141
  import {
142
142
  STN_UI_VERSION,
143
143
  STN_UI_VERSION_LABEL
144
- } from "./chunk-Q363EBGR.js";
144
+ } from "./chunk-RY53LLWK.js";
145
145
  import {
146
146
  STN_PAGE_ENTER_MOTION_INTRO,
147
147
  STN_PAGE_ENTER_MOTION_ROWS,
@@ -234,8 +234,9 @@ import {
234
234
  STN_CARD_INTRO,
235
235
  STN_CARD_PADDINGS,
236
236
  STN_CARD_RADII,
237
+ STN_CARD_SEVERITIES,
237
238
  STN_CARD_VARIANTS
238
- } from "./chunk-WN7FYFIO.js";
239
+ } from "./chunk-AJLP3Y53.js";
239
240
  import {
240
241
  STN_CHART_INTRO
241
242
  } from "./chunk-DGZVOSEM.js";
@@ -258,7 +259,7 @@ import {
258
259
  STN_CHIP_INTRO,
259
260
  STN_CHIP_METRICS,
260
261
  STN_CHIP_USAGE_ROWS
261
- } from "./chunk-KLIYAEJA.js";
262
+ } from "./chunk-2LRCGTKQ.js";
262
263
  import {
263
264
  STN_ALL_PALETTE_ROWS,
264
265
  STN_BLUE_SCALE,
@@ -303,7 +304,7 @@ import {
303
304
  STN_TEXT_FIELD_SIZE_ROWS,
304
305
  STN_TEXT_FIELD_STATES,
305
306
  STN_TEXT_FIELD_USAGE
306
- } from "./chunk-NB4NJQYE.js";
307
+ } from "./chunk-YJLOIDKY.js";
307
308
  import {
308
309
  STN_TOAST_DEMO_MSG,
309
310
  STN_TOAST_ICON_SLUG,
@@ -590,6 +591,7 @@ export {
590
591
  STN_CARD_INTRO,
591
592
  STN_CARD_PADDINGS,
592
593
  STN_CARD_RADII,
594
+ STN_CARD_SEVERITIES,
593
595
  STN_CARD_VARIANTS,
594
596
  STN_CDN_ASSET_BASE,
595
597
  STN_CHART_INTRO,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stn-uiux/pub-ui",
3
- "version": "0.1.73",
3
+ "version": "0.1.76",
4
4
  "description": "STN Pub design system — tokens, specs, and CSS for product HTML / React apps",
5
5
  "type": "module",
6
6
  "sideEffects": [