@stn-uiux/pub-ui 0.1.59 → 0.1.60
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-36BAGMYT.js → chunk-2ZYBBVBT.js} +53 -28
- package/dist/chunk-2ZYBBVBT.js.map +1 -0
- package/dist/{chunk-JPILTFLI.js → chunk-3RYAWLME.js} +2 -2
- package/dist/{chunk-DNMZJS65.js → chunk-IOBNIUK3.js} +2 -2
- package/dist/{chunk-DNMZJS65.js.map → chunk-IOBNIUK3.js.map} +1 -1
- package/dist/{chunk-EQTZA7I2.js → chunk-NHYZ7AWK.js} +2 -1
- package/dist/{chunk-EQTZA7I2.js.map → chunk-NHYZ7AWK.js.map} +1 -1
- package/dist/{chunk-XEG4WDUD.js → chunk-Q4QXONXL.js} +2 -2
- package/dist/{chunk-SKZOEF3H.js → chunk-XQ7UUG7Y.js} +2 -2
- package/dist/{chunk-H4ZJQ5YW.js → chunk-YMWHZNBT.js} +2 -2
- package/dist/cli.js +5 -5
- package/dist/data/index.js +7 -7
- package/dist/data/stnBreadcrumb.js +3 -3
- package/dist/data/stnHeader.js +3 -3
- package/dist/data/stnLayout.d.ts +3 -3
- package/dist/data/stnLayout.js +1 -1
- package/dist/data/stnSideNavItem.js +3 -3
- package/dist/data/stnSystemIcons.js +2 -2
- package/dist/data/stnSystemIconsData.generated.js +1 -1
- package/dist/data/stnTable.d.ts +1 -1
- package/dist/data/stnTable.js +1 -1
- package/dist/index.js +7 -7
- package/package.json +1 -1
- package/styles/@assets/svg/system/line/chevron-left.svg +3 -0
- package/styles/components/stn-label-prefix.css +1 -0
- package/styles/components/stn-popup.css +1 -1
- package/styles/components/stn-status.css +3 -5
- package/styles/components/stn-table.css +77 -11
- package/styles/components/stn-widget.css +16 -8
- package/styles/layouts/stn-container.css +6 -11
- package/styles/layouts/stn-layer1-content.css +63 -86
- package/styles/patterns/stn-section-side.css +16 -30
- package/styles/patterns/stn-tree.css +96 -73
- package/styles/tokens/stn-colors-semantic.css +2 -2
- package/styles/tokens/stn-radius-semantic.css +11 -0
- package/styles/tokens/stn-size-semantic.css +31 -4
- package/styles/tokens/stn-size.css +2 -0
- package/styles/tokens/stn-spacing-semantic.css +7 -3
- package/styles/tokens/stn-typography-semantic.css +10 -0
- package/dist/chunk-36BAGMYT.js.map +0 -1
- /package/dist/{chunk-JPILTFLI.js.map → chunk-3RYAWLME.js.map} +0 -0
- /package/dist/{chunk-XEG4WDUD.js.map → chunk-Q4QXONXL.js.map} +0 -0
- /package/dist/{chunk-SKZOEF3H.js.map → chunk-XQ7UUG7Y.js.map} +0 -0
- /package/dist/{chunk-H4ZJQ5YW.js.map → chunk-YMWHZNBT.js.map} +0 -0
|
@@ -6,7 +6,7 @@ var STN_LAYOUT_PLAYGROUND_TABS = [
|
|
|
6
6
|
label: "\uB9AC\uC2A4\uD2B8\xB7\uC0C1\uC138",
|
|
7
7
|
screen: "interface_list.html \xB7 syslog_status.html",
|
|
8
8
|
shellProps: "contentModifiers={['has_lnb', 'has_sch']}",
|
|
9
|
-
assemble:
|
|
9
|
+
assemble: "StnLayerShell \u2014 gnb \xB7 header \xB7 container(LNB aside + content stack)"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
id: "dashboard",
|
|
@@ -23,7 +23,7 @@ var STN_LAYOUT_PLAYGROUND_TABS = [
|
|
|
23
23
|
assemble: "AlertCenterPageScaffold (\uB9F5 placeholder + \uC6B0\uCE21 4\uC704\uC82F)"
|
|
24
24
|
}
|
|
25
25
|
];
|
|
26
|
-
var STN_LAYOUT_LIST_VIEW_INTRO = "List view\uB294 \uBC30\uACBD \xB7 Side Navigation\xB7\uD398\uC774\uC9C0 \uD5E4\uB354 \xB7 \uD2B8\uB9AC LNB \xB7 \uAC80\uC0C9 \xB7 \uD45C\uB85C \uAD6C\uC131\uB429\uB2C8\uB2E4.
|
|
26
|
+
var STN_LAYOUT_LIST_VIEW_INTRO = "List view\uB294 \uBC30\uACBD \xB7 Side Navigation \xB7 \uD398\uC774\uC9C0 \uD5E4\uB354 \xB7 \uD2B8\uB9AC LNB \xB7 \uAC80\uC0C9 \xB7 \uD45C\uB85C \uAD6C\uC131\uB429\uB2C8\uB2E4. StnLayerShell \uC544\uB798 StnContainer + StnStack\uC73C\uB85C \uB808\uC774\uC544\uC6C3\uC744 \uD22C\uBA85\uD558\uAC8C \uC870\uB9BD\uD569\uB2C8\uB2E4. Playground\uC5D0\uC11C \uC635\uC158\uC744 \uACE0\uB978 \uB4A4 \uC0DD\uC131\uB41C React/HTML \uCF54\uB4DC\uB97C \uBCF5\uC0AC\uD558\uC138\uC694.";
|
|
27
27
|
var STN_LAYOUT_LIST_VIEW_BARE_USAGE = `import {
|
|
28
28
|
StnLayerShell,
|
|
29
29
|
StnListViewLayout,
|
|
@@ -62,9 +62,13 @@ var STN_LAYOUT_LIST_LAYER_TABS = [
|
|
|
62
62
|
{ id: "l2", label: "L2 Modal" }
|
|
63
63
|
];
|
|
64
64
|
var STN_LAYOUT_LIST_VIEW_USAGE = `import {
|
|
65
|
-
|
|
65
|
+
StnLayerShell,
|
|
66
|
+
StnContainer,
|
|
67
|
+
StnStack,
|
|
66
68
|
StnHeader,
|
|
67
69
|
StnSideNavigation,
|
|
70
|
+
StnSectionSide,
|
|
71
|
+
StnTree,
|
|
68
72
|
StnSearchRequirementBar,
|
|
69
73
|
StnTable,
|
|
70
74
|
StnPagination,
|
|
@@ -73,29 +77,50 @@ var STN_LAYOUT_LIST_VIEW_USAGE = `import {
|
|
|
73
77
|
|
|
74
78
|
export function InterfaceListPage() {
|
|
75
79
|
return (
|
|
76
|
-
<
|
|
77
|
-
shell="layer"
|
|
80
|
+
<StnLayerShell
|
|
78
81
|
lnbSide="left"
|
|
79
|
-
gnb={<StnSideNavigation />}
|
|
82
|
+
gnb={<StnSideNavigation collapsed />}
|
|
80
83
|
header={<StnHeader variant="page" />}
|
|
81
|
-
contentModifiers={['has_lnb', 'has_sch']}
|
|
82
|
-
search={
|
|
83
|
-
<StnSearchRequirementBar>{/* Fields \xB7 SearchButton */}</StnSearchRequirementBar>
|
|
84
|
-
}
|
|
85
84
|
>
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
<
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
85
|
+
{/* 2\uB2E8\uACC4: \uCD5C\uC0C1\uC704 \uBCF8\uBB38 \uCEE8\uD14C\uC774\uB108 */}
|
|
86
|
+
<StnContainer maxWidth={false}>
|
|
87
|
+
{/* 3\uB2E8\uACC4: \uD0DC\uBE14\uB9BF/\uBAA8\uBC14\uC77C(<1280px)=\uC138\uB85C \uC313\uAE30 / \uB370\uC2A4\uD06C\uD1B1(lg \u2265 1280px)=\uAC00\uB85C 2\uBD84\uD560 */}
|
|
88
|
+
<StnStack direction={{ xs: 'column', lg: 'row' }} spacing={2}>
|
|
89
|
+
{/* [LNB] \uBAA8\uBC14\uC77C: \uC0C1\uB2E8 full-width / \uB370\uC2A4\uD06C\uD1B1: 264px \uACE0\uC815 (StnSectionSide CSS) */}
|
|
90
|
+
<aside style={{ display: 'flex', flexDirection: 'column' }}>
|
|
91
|
+
<StnSectionSide fill fullWidth>
|
|
92
|
+
<StnTree size="md" nodes={treeNodes} />
|
|
93
|
+
</StnSectionSide>
|
|
94
|
+
</aside>
|
|
95
|
+
|
|
96
|
+
{/* [\uC6B0\uCE21 \uBCF8\uBB38] \uAC80\uC0C9\uBC14 + \uD45C \uB370\uC774\uD130 \uADF8\uB9AC\uB4DC \uC138\uB85C \uC2A4\uD0DD */}
|
|
97
|
+
<StnStack
|
|
98
|
+
direction="column"
|
|
99
|
+
spacing={2}
|
|
100
|
+
style={{ flex: 1, minWidth: 0, minHeight: 0 }}
|
|
101
|
+
>
|
|
102
|
+
<StnSearchRequirementBar>
|
|
103
|
+
{/* Fields \xB7 SearchButton \xB7 Export */}
|
|
104
|
+
</StnSearchRequirementBar>
|
|
105
|
+
|
|
106
|
+
<StnTable
|
|
107
|
+
fill
|
|
108
|
+
trackVisited
|
|
109
|
+
summary="\uCD1D 128\uAC1C (1 to 20)"
|
|
110
|
+
footerCenter={<StnPagination page={1} count={8} />}
|
|
111
|
+
footerRight={
|
|
112
|
+
<>
|
|
113
|
+
<StnButton size="md" variant="contained">\uB4F1\uB85D</StnButton>
|
|
114
|
+
<StnButton size="md" variant="ghost">\uC218\uC815</StnButton>
|
|
115
|
+
</>
|
|
116
|
+
}
|
|
117
|
+
>
|
|
118
|
+
<StnTable.Grid>{/* StnTable.Head + Body */}</StnTable.Grid>
|
|
119
|
+
</StnTable>
|
|
120
|
+
</StnStack>
|
|
121
|
+
</StnStack>
|
|
122
|
+
</StnContainer>
|
|
123
|
+
</StnLayerShell>
|
|
99
124
|
)
|
|
100
125
|
}`;
|
|
101
126
|
var STN_LAYOUT_MAP_DASHBOARD_INTRO = '\uB300\uC2DC\uBCF4\uB4DC\uB294 L0 \uBC30\uACBD \xB7 L1(header \uD06C\uB86C + content \uBCF8\uBB38 \uB2E8 \uD558\uB098) \xB7 L2 \uBAA8\uB2EC\uC785\uB2C8\uB2E4. \uBCF8\uBB38\uC740 `layer1` \uC2AC\uB86F\uC774 \uC544\uB2C8\uB77C `left`/`right`/`children`\uC73C\uB85C \uC870\uB9BD\uD569\uB2C8\uB2E4. `DashboardPageScaffold` (type="map" | "topology" | "widget-grid").';
|
|
@@ -148,9 +173,9 @@ var STN_LAYOUT_WHEN_TO_USE = [
|
|
|
148
173
|
export: "StnPageScaffold.*"
|
|
149
174
|
},
|
|
150
175
|
{
|
|
151
|
-
situation: "\uB300\uD45C HTML \uD55C \uC7A5\uC744 1\uB2E8\uACC4\uB85C (
|
|
176
|
+
situation: "\uB300\uD45C HTML \uD55C \uC7A5\uC744 1\uB2E8\uACC4\uB85C (alert_center, map)",
|
|
152
177
|
use: "\uD654\uBA74\uBCC4 \uB808\uC2DC\uD53C (\uB0B4\uBD80\uC5D0\uC11C Shell \uC774\uBBF8 \uD3EC\uD568)",
|
|
153
|
-
export: "
|
|
178
|
+
export: "DashboardPageScaffold \xB7 AlertCenterPageScaffold"
|
|
154
179
|
},
|
|
155
180
|
{
|
|
156
181
|
situation: "L3 \uD31D\uC5C5 \uBCF8\uBB38 \uC790\uB9AC\uB9CC \uD45C\uC2DC",
|
|
@@ -168,9 +193,9 @@ var STN_LAYOUT_SCREEN_RECIPES = [
|
|
|
168
193
|
id: "list",
|
|
169
194
|
label: "\uB9AC\uC2A4\uD2B8\xB7\uC0C1\uC138",
|
|
170
195
|
pubExamples: "interface_list.html \xB7 syslog_status.html",
|
|
171
|
-
reactRecipe: "
|
|
196
|
+
reactRecipe: "StnLayerShell + StnContainer + StnStack",
|
|
172
197
|
layoutTab: "list",
|
|
173
|
-
note: "L0 wrap \xB7 L1
|
|
198
|
+
note: "L0 wrap \xB7 L1 StnContainer + StnStack"
|
|
174
199
|
},
|
|
175
200
|
{
|
|
176
201
|
id: "dashboard-map",
|
|
@@ -459,4 +484,4 @@ export {
|
|
|
459
484
|
STN_LAYER_SHELL_USAGE,
|
|
460
485
|
STN_LAYOUT_SHELL_USAGE
|
|
461
486
|
};
|
|
462
|
-
//# sourceMappingURL=chunk-
|
|
487
|
+
//# sourceMappingURL=chunk-2ZYBBVBT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/data/stnLayout.ts"],"sourcesContent":["/**\n * Pub page layout — `.stn-wrap` · `.stn-container` · `.stn-content-area` · 대시보드 region\n * @see layout.css · StnLayerShell (@stn-uiux/pub-ui-react)\n */\n\nexport const STN_LAYOUT_INTRO = ''\n\n/** 라이브 예제 탭 — shell 종류 + 대표 화면 레시피 */\nexport const STN_LAYOUT_PLAYGROUND_TABS: readonly {\n id: 'list' | 'dashboard' | 'alert-center'\n label: string\n screen: string\n shellProps: string\n assemble: string\n}[] = [\n {\n id: 'list',\n label: '리스트·상세',\n screen: 'interface_list.html · syslog_status.html',\n shellProps: \"contentModifiers={['has_lnb', 'has_sch']}\",\n assemble: 'StnLayerShell — gnb · header · container(LNB aside + content stack)',\n },\n {\n id: 'dashboard',\n label: '맵·대시보드',\n screen: 'basic/map.html · dashboard_map …',\n shellProps: \"bodyWrapper='none'\",\n assemble: 'DashboardPageScaffold · MapPlaceholder + dashboard_right',\n },\n {\n id: 'alert-center',\n label: '알림센터',\n screen: 'basic/alert_center.html',\n shellProps: \"bodyWrapper='none' · network_topology_header · GNB 알림패널\",\n assemble: 'AlertCenterPageScaffold (맵 placeholder + 우측 4위젯)',\n },\n]\n\nexport const STN_LAYOUT_LIST_VIEW_INTRO =\n 'List view는 배경 · Side Navigation · 페이지 헤더 · 트리 LNB · 검색 · 표로 구성됩니다. StnLayerShell 아래 StnContainer + StnStack으로 레이아웃을 투명하게 조립합니다. Playground에서 옵션을 고른 뒤 생성된 React/HTML 코드를 복사하세요.'\n\n/** 라이브러리 내부 조립 참고 — 제품 화면은 `STN_LAYOUT_LIST_VIEW_USAGE` 참고 */\nexport const STN_LAYOUT_LIST_VIEW_BARE_USAGE = `import {\n StnLayerShell,\n StnListViewLayout,\n StnSideNavigation,\n StnHeader,\n StnSearchRequirementBar,\n StnSectionSide,\n StnTable,\n} from '@stn-uiux/pub-ui-react'\n\n/** StnLayerShell 안 — L1 listview 그리드만 (이중 L0/L2 없음) */\nexport function InterfaceListPage() {\n return (\n <StnLayerShell\n gnb={<StnSideNavigation collapsed />}\n header={<StnHeader variant=\"page\" />}\n contentModifiers={['has_lnb', 'has_sch']}\n lnbSide=\"left\"\n >\n <StnListViewLayout\n bare\n sidebar={<StnSectionSide>{/* StnTree */}</StnSectionSide>}\n search={\n <StnSearchRequirementBar>{/* Fields · SearchButton */}</StnSearchRequirementBar>\n }\n >\n <StnTable summary=\"목록\" />\n </StnListViewLayout>\n </StnLayerShell>\n )\n}`\n\n/** List view 문서 탭 */\nexport type StnLayoutListLayerTabId = 'live' | 'l0' | 'l1' | 'l2'\n\nexport const STN_LAYOUT_LIST_LAYER_TABS: {\n id: StnLayoutListLayerTabId\n label: string\n}[] = [\n { id: 'live', label: '전체' },\n { id: 'l0', label: 'L0 Background' },\n { id: 'l1', label: 'L1 Main UI' },\n { id: 'l2', label: 'L2 Modal' },\n]\n\nexport const STN_LAYOUT_LIST_VIEW_USAGE = `import {\n StnLayerShell,\n StnContainer,\n StnStack,\n StnHeader,\n StnSideNavigation,\n StnSectionSide,\n StnTree,\n StnSearchRequirementBar,\n StnTable,\n StnPagination,\n StnButton,\n} from '@stn-uiux/pub-ui-react'\n\nexport function InterfaceListPage() {\n return (\n <StnLayerShell\n lnbSide=\"left\"\n gnb={<StnSideNavigation collapsed />}\n header={<StnHeader variant=\"page\" />}\n >\n {/* 2단계: 최상위 본문 컨테이너 */}\n <StnContainer maxWidth={false}>\n {/* 3단계: 태블릿/모바일(<1280px)=세로 쌓기 / 데스크톱(lg ≥ 1280px)=가로 2분할 */}\n <StnStack direction={{ xs: 'column', lg: 'row' }} spacing={2}>\n {/* [LNB] 모바일: 상단 full-width / 데스크톱: 264px 고정 (StnSectionSide CSS) */}\n <aside style={{ display: 'flex', flexDirection: 'column' }}>\n <StnSectionSide fill fullWidth>\n <StnTree size=\"md\" nodes={treeNodes} />\n </StnSectionSide>\n </aside>\n\n {/* [우측 본문] 검색바 + 표 데이터 그리드 세로 스택 */}\n <StnStack\n direction=\"column\"\n spacing={2}\n style={{ flex: 1, minWidth: 0, minHeight: 0 }}\n >\n <StnSearchRequirementBar>\n {/* Fields · SearchButton · Export */}\n </StnSearchRequirementBar>\n\n <StnTable\n fill\n trackVisited\n summary=\"총 128개 (1 to 20)\"\n footerCenter={<StnPagination page={1} count={8} />}\n footerRight={\n <>\n <StnButton size=\"md\" variant=\"contained\">등록</StnButton>\n <StnButton size=\"md\" variant=\"ghost\">수정</StnButton>\n </>\n }\n >\n <StnTable.Grid>{/* StnTable.Head + Body */}</StnTable.Grid>\n </StnTable>\n </StnStack>\n </StnStack>\n </StnContainer>\n </StnLayerShell>\n )\n}`\n\nexport const STN_LAYOUT_MAP_DASHBOARD_INTRO =\n '대시보드는 L0 배경 · L1(header 크롬 + content 본문 단 하나) · L2 모달입니다. 본문은 `layer1` 슬롯이 아니라 `left`/`right`/`children`으로 조립합니다. `DashboardPageScaffold` (type=\"map\" | \"topology\" | \"widget-grid\").'\n\n/** Map / Dashboard 문서 탭 — List view와 동일 층 모델 */\nexport type StnLayoutMapLayerTabId = StnLayoutListLayerTabId\n\nexport const STN_LAYOUT_MAP_LAYER_TABS: {\n id: StnLayoutMapLayerTabId\n label: string\n}[] = [\n { id: 'live', label: '전체' },\n { id: 'l0', label: 'L0 Background' },\n { id: 'l1', label: 'L1 Main UI' },\n { id: 'l2', label: 'L2 Modal' },\n]\n\nexport const STN_LAYOUT_MAP_DASHBOARD_USAGE = `import { DashboardPageScaffold, StnLayer0Background, StnSideNavigation, StnHeader } from '@stn-uiux/pub-ui-react'\n\nexport function TopologyMapPage() {\n return (\n <DashboardPageScaffold\n type=\"map\"\n shell=\"layer\"\n gnbSide=\"left\"\n layer0={<StnLayer0Background variant=\"map-light\" />}\n gnb={<StnSideNavigation collapsed />}\n header={<StnHeader variant=\"dashboard\" />}\n />\n )\n}`\n\nexport const STN_LAYOUT_MAP_DASHBOARD_HEADER_USAGE = `import {\n DashboardPageScaffold,\n StnHeader,\n StnSideNavigation,\n} from '@stn-uiux/pub-ui-react'\n\nexport function TopologyMapPage() {\n return (\n <DashboardPageScaffold\n type=\"topology\"\n shell=\"layer\"\n gnb={<StnSideNavigation collapsed />}\n header={<StnHeader variant=\"widget\" />}\n mapMessage=\"토폴로지 맵\"\n />\n )\n}`\n\n/** 경우의 수 — 무엇을 쓸지 */\nexport const STN_LAYOUT_WHEN_TO_USE: readonly {\n situation: string\n use: string\n export: string\n}[] = [\n {\n situation: '표준 3단계 층위 기반 페이지 구성',\n use: 'StnLayerShell — L0 Background · L1 Main UI · L2 Modal',\n export: 'StnLayerShell · lnbSide left|right',\n },\n {\n situation: '구역 라벨만 빠르게 (lnb, search, 맵 빈칸)',\n use: 'Shell + StnPageScaffold.Region / MapPlaceholder',\n export: 'StnPageScaffold.*',\n },\n {\n situation: '대표 HTML 한 장을 1단계로 (alert_center, map)',\n use: '화면별 레시피 (내부에서 Shell 이미 포함)',\n export: 'DashboardPageScaffold · AlertCenterPageScaffold',\n },\n {\n situation: 'L3 팝업 본문 자리만 표시',\n use: 'StnLayer + StnPageScaffold.Layer',\n export: 'StnPageScaffold.Layer',\n },\n {\n situation: '위젯·테이블 본문이 API 로딩 중',\n use: 'Components — Loading skeleton (Layout 아님)',\n export: 'StnLoadingSkeleton',\n },\n]\n\nexport type StnLayoutScreenKind =\n | 'list'\n | 'dashboard-map'\n | 'alert-center'\n | 'converged-dashboard'\n | 'popup-overlay'\n | 'widget-board'\n | 'standard'\n\n/** @deprecated StnLayoutScreenKind */\nexport type StnPageScaffoldKind = StnLayoutScreenKind\n\nexport const STN_LAYOUT_SCREEN_RECIPES: readonly {\n id: StnLayoutScreenKind\n label: string\n pubExamples: string\n reactRecipe: string\n layoutTab: 'list' | 'dashboard'\n note: string\n}[] = [\n {\n id: 'list',\n label: '리스트·상세',\n pubExamples: 'interface_list.html · syslog_status.html',\n reactRecipe: 'StnLayerShell + StnContainer + StnStack',\n layoutTab: 'list',\n note: 'L0 wrap · L1 StnContainer + StnStack',\n },\n {\n id: 'dashboard-map',\n label: '맵·대시보드',\n pubExamples: 'basic/map.html · dashboard_map …',\n reactRecipe: 'DashboardPageScaffold',\n layoutTab: 'dashboard',\n note: 'map(z50) · dashboard_left / dashboard_right',\n },\n {\n id: 'alert-center',\n label: '알림센터',\n pubExamples: 'basic/alert_center.html',\n reactRecipe: 'AlertCenterPageScaffold',\n layoutTab: 'dashboard',\n note: 'GNB 알림 · 맵 placeholder · 우측 4위젯',\n },\n {\n id: 'converged-dashboard',\n label: '융합망 대시',\n pubExamples: 'converged/dashboard_map.html',\n reactRecipe: 'DashboardPageScaffold (converged_header)',\n layoutTab: 'dashboard',\n note: 'wrap-converged',\n },\n {\n id: 'popup-overlay',\n label: '팝·딤',\n pubExamples: 'regist_pop.html · widget_dim.html',\n reactRecipe: 'StnPageScaffold.Layer + StnPopup',\n layoutTab: 'list',\n note: 'L3/L4',\n },\n {\n id: 'widget-board',\n label: '위젯보드',\n pubExamples: 'widgetboard/widget*.html',\n reactRecipe: 'StnWidget shell=board',\n layoutTab: 'dashboard',\n note: 'board-item',\n },\n {\n id: 'standard',\n label: '일반 콘텐츠',\n pubExamples: 'CCTV · node tools …',\n reactRecipe: 'StnLayerShell + Region',\n layoutTab: 'list',\n note: 'head_area · stn-content-area',\n },\n]\n\n/** @deprecated STN_LAYOUT_SCREEN_RECIPES */\nexport const STN_PAGE_SCAFFOLD_KINDS = STN_LAYOUT_SCREEN_RECIPES\n\nexport const STN_LAYOUT_SLOT_USAGE = `import { StnPageScaffold, StnLayer, StnPopup } from '@stn-uiux/pub-ui-react'\n\n/** Shell children 안 — 구역 라벨 */\n<StnLayerShell gnb={<StnSideNavigation />} contentModifiers={['has_lnb', 'has_sch']} header={…}>\n <StnPageScaffold.Region label=\"lnb_box\" hint=\"LNB 트리\" />\n <StnPageScaffold.Region label=\"search_area\" />\n</StnLayerShell>\n\n/** 맵 빈 칸 */\n<StnPageScaffold.MapPlaceholder message=\"맵은 추후 연동\" />\n\n/** 맵 빈 본문 — L0만 보이는 캔버스 (위젯·placeholder 없음) */\n<DashboardPageScaffold bodyEmpty shell=\"layer\" gnb={gnb} layer0={layer0} />\n\n/** L3 팝업 슬롯 */\n<StnLayer level={3} surface=\"transparent\">\n <StnPageScaffold.Layer level={3} label=\"팝업 본문\">\n <StnPopup open>…</StnPopup>\n </StnPageScaffold.Layer>\n</StnLayer>`\n\nexport const STN_LAYOUT_ALERT_CENTER_USAGE = `import { AlertCenterPageScaffold } from '@stn-uiux/pub-ui-react'\n\n<AlertCenterPageScaffold mapMessage=\"맵은 추후 연동\" showFaultPanelPlaceholder />`\n\n/** @deprecated */\nexport const STN_PAGE_SCAFFOLD_COMPOUND_USAGE = STN_LAYOUT_SLOT_USAGE\n\n/** @deprecated */\nexport const STN_ALERT_CENTER_PAGE_SCAFFOLD_USAGE = STN_LAYOUT_ALERT_CENTER_USAGE\n\n/** @deprecated */\nexport const STN_PAGE_SCAFFOLD_INTRO = STN_LAYOUT_INTRO\n\nexport const STN_LAYOUT_RECIPES: readonly {\n id: 'list' | 'dashboard'\n label: string\n screen: string\n shellProps: string\n childrenHint: string\n}[] = [\n {\n id: 'list',\n label: '리스트·상세',\n screen: 'interface_list, syslog_status …',\n shellProps: 'contentModifiers={[\\'has_lnb\\', \\'has_sch\\']} · header=<StnLayoutHeader>',\n childrenHint: 'lnb_box · search_area · stn-table (+ StnTable, StnButton)',\n },\n {\n id: 'dashboard',\n label: '맵·대시보드',\n screen: 'basic/map.html, dashboard_map …',\n shellProps: 'bodyWrapper=\"none\" · chrome=\"network_topology_header\"',\n childrenHint: '.dashboard · .dashboard_left · StnLayoutRegion(region=\"map\")',\n },\n]\n\n/** Pub `.stn-content-area` modifier */\nexport type StnContentAreaModifier =\n | 'has_lnb'\n | 'has_lnb2'\n | 'has_lnb_right'\n | 'has_lnb_right2'\n | 'has_sch'\n | 'has_sch_row2'\n | 'flexible'\n\n/** LNB·트리 열 위치 — `has_lnb*` modifier 와 조합 */\nexport type StnLnbSide = 'left' | 'right'\n\n\n\n/** 대시보드·맵 화면 내 고정 슬롯 */\nexport type StnLayoutRegion =\n | 'top_right'\n | 'dashboard'\n | 'dashboard_left'\n | 'dashboard_right'\n | 'dashboard_body'\n | 'wrap_topology'\n | 'map'\n | 'dash_canvas'\n\nexport const STN_LAYOUT_PAGE_TREE = `.stn-wrap (legacy v1: #wrap)\n├── .stn-side-nav (absolute overlay · StnSideNavigation)\n└── .stn-layer-1 (L1 · 네비 제외 영역)\n ├── .stn-layer-1__header (Header)\n └── .stn-content-area / .stn-stack\n └── .stn-stack …` as const\n\nexport const STN_LAYOUT_LAYER_PAGE_TREE = `.stn-wrap (Root Shell · data-stn-layer-mode=\"v2\")\n├── StnLayer.Background (L0 · layer0-bg)\n├── .stn-side-nav / StnSideNavigation (absolute overlay · wrap 직속)\n├── [data-stn-layer-role=\"utility\"] (toast · audio)\n└── StnLayer.Content (.stn-layer-1) (L1 — 하나)\n ├── .stn-layer-1__header\n └── .stn-content-area / .stn-stack\n └── lnb_box | content_box | .stn-stack` as const\n\nexport const STN_LAYOUT_CONTENT_ROWS: {\n modifier: StnContentAreaModifier\n pubClass: string\n label: string\n note: string\n}[] = [\n {\n modifier: 'has_lnb',\n pubClass: '.stn-content-area.has_lnb',\n label: 'LNB 1열',\n note: 'padding-left: 268px · head_area 동기화',\n },\n {\n modifier: 'has_lnb2',\n pubClass: '.stn-content-area.has_lnb2',\n label: 'LNB 2열 (좌)',\n note: 'padding-left: 536px',\n },\n {\n modifier: 'has_lnb_right',\n pubClass: '.stn-content-area.has_lnb_right',\n label: 'LNB 1열 (우)',\n note: 'padding-right: 268px · lnb_box_right',\n },\n {\n modifier: 'has_lnb_right2',\n pubClass: '.stn-content-area.has_lnb_right2',\n label: 'LNB 2열 (우)',\n note: 'padding-right: 536px',\n },\n {\n modifier: 'has_sch',\n pubClass: '.stn-content-area.has_sch',\n label: '검색 영역',\n note: 'flex column · search_area + content_box',\n },\n {\n modifier: 'has_sch_row2',\n pubClass: '.stn-content-area.has_sch_row2',\n label: '검색 2줄',\n note: 'padding-top: 94px',\n },\n {\n modifier: 'flexible',\n pubClass: '.stn-content-area.flexible',\n label: '가변 높이 테이블',\n note: 'stn-table flex fill',\n },\n]\n\n\nexport const STN_LAYOUT_REGION_ROWS: {\n region: StnLayoutRegion\n pubClass: string\n label: string\n note: string\n}[] = [\n { region: 'top_right', pubClass: '.dash-top-right-widget', label: '우상단 위젯', note: '시스템 감시·테마·시계' },\n { region: 'dashboard', pubClass: '.dashboard', label: '대시보드 루트', note: '맵·위젯 본문' },\n { region: 'dashboard_left', pubClass: '.dashboard_left', label: '좌측 열', note: '토폴로지·맵' },\n { region: 'dashboard_right', pubClass: '.dashboard_right', label: '우측 열', note: '장애·위젯 패널' },\n { region: 'dashboard_body', pubClass: '.dashboard_body', label: '융합망 본문', note: 'converged 레이아웃' },\n { region: 'wrap_topology', pubClass: '.wrap_topology', label: '토폴로지 래퍼', note: 'stn-elev-map' },\n { region: 'map', pubClass: '.map', label: '맵 영역', note: '' },\n { region: 'dash_canvas', pubClass: '.stn-widget.shell-canvas', label: '캔버스', note: '토폴로지/맵 위젯 (variant=\"canvas\")' },\n]\n\nconst CONTENT_CLASS: Record<StnContentAreaModifier, string> = {\n has_lnb: 'has_lnb',\n has_lnb2: 'has_lnb2',\n has_lnb_right: 'has_lnb_right',\n has_lnb_right2: 'has_lnb_right2',\n has_sch: 'has_sch',\n has_sch_row2: 'has_sch_row2',\n flexible: 'flexible',\n}\n\nconst REGION_CLASS: Record<StnLayoutRegion, string> = {\n top_right: 'dash-top-right-widget',\n dashboard: 'dashboard',\n dashboard_left: 'dashboard_left',\n dashboard_right: 'dashboard_right',\n dashboard_body: 'dashboard_body',\n wrap_topology: 'wrap_topology',\n map: 'map',\n dash_canvas: 'stn-widget shell-canvas',\n}\n\nfunction normalizeList<T>(value?: T | T[]): T[] {\n if (value == null) return []\n return Array.isArray(value) ? value : [value]\n}\n\nexport function pubContentAreaClasses(\n modifiers?: StnContentAreaModifier | StnContentAreaModifier[],\n): string[] {\n return normalizeList(modifiers).map((m) => CONTENT_CLASS[m])\n}\n\nexport function pubLayoutRegionClass(region: StnLayoutRegion): string {\n return REGION_CLASS[region]\n}\n\n/** `lnbSide` — `has_lnb` / `has_lnb2` 를 좌·우 modifier 로 치환 */\nexport function applyLnbSideToModifiers(\n modifiers?: StnContentAreaModifier | StnContentAreaModifier[],\n lnbSide: StnLnbSide = 'left',\n): StnContentAreaModifier[] {\n const list = normalizeList(modifiers)\n if (lnbSide === 'left') return list\n return list.map((m) => {\n if (m === 'has_lnb') return 'has_lnb_right'\n if (m === 'has_lnb2') return 'has_lnb_right2'\n return m\n })\n}\n\nexport const STN_LAYER_SHELL_USAGE = `import { StnSideNavigation, StnLayerShell } from '@stn-uiux/pub-ui-react'\n\n/** StnLayer role 페이지 셸 — 컨테이너(.stn-container)를 StnLayer.Content 가 겸함 */\nexport function ListPage({ gnb, title, children }) {\n return (\n <StnLayerShell\n gnb={gnb}\n lnbSide=\"left\"\n contentModifiers={['has_lnb', 'has_sch']}\n header={\n <StnLayoutHeader>\n <h3 className=\"title\">{title}</h3>\n </StnLayoutHeader>\n }\n >\n <aside className=\"lnb_box\">…트리·LNB…</aside>\n <div className=\"content_box\">{children}</div>\n </StnLayerShell>\n )\n}\n\n/** 데이터 구조(트리)를 오른쪽에 */\n<StnLayerShell lnbSide=\"right\" contentModifiers={['has_lnb', 'has_sch']} …>\n <div className=\"content_box\">…</div>\n <aside className=\"lnb_box_right\">…</aside>\n</StnLayerShell>`\n\nexport const STN_LAYOUT_SHELL_USAGE = `import '@stn-uiux/pub-ui/styles.css'\n\nimport { StnSideNavigation, StnHeader, StnLayerShell, StnStack } from '@stn-uiux/pub-ui-react'\n\n/** interface_list 골격 */\nexport function InterfaceListPage({ gnb, title, children }) {\n return (\n <StnLayerShell\n gnb={gnb}\n header={\n <StnHeader variant=\"page\">\n <StnHeader.Left>\n <h3 className=\"title\">{title}</h3>\n </StnHeader.Left>\n </StnHeader>\n }\n >\n {children}\n </StnLayerShell>\n )\n}\n\n/** 대시보드 골격 */\nexport function MapDashboardPage({ gnb, header, children }) {\n return (\n <StnLayerShell gnb={gnb} header={header}>\n <StnStack direction=\"column\">\n {children}\n </StnStack>\n </StnLayerShell>\n )\n}`\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
systemIconSrc
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Q4QXONXL.js";
|
|
4
4
|
|
|
5
5
|
// src/data/stnHeader.ts
|
|
6
6
|
var STN_HEADER_INTRO = "\uD398\uC774\uC9C0 \uCD5C\uC0C1\uB2E8\uC5D0 \uBC30\uCE58\uB418\uC5B4 \uC2DC\uC2A4\uD15C \uC0C1\uD0DC, \uD0C0\uC774\uD2C0, \uC2E4\uC2DC\uAC04 \uC2DC\uACC4, \uD234\uBC14 \uC561\uC158, \uBE0C\uB808\uB4DC\uD06C\uB7FC\uC744 \uD45C\uCD9C\uD558\uB294 \uC0C1\uB2E8 \uD5E4\uB354 \uD328\uD134\uC785\uB2C8\uB2E4. \uC88C\uCE21(Left) \xB7 \uC911\uC559(Center) \xB7 \uC6B0\uCE21(Right) 3\uAC1C \uC2AC\uB86F\uC744 \uC720\uC5F0\uD558\uAC8C \uC870\uB9BD\uD558\uC5EC \uAD6C\uC131\uD560 \uC218 \uC788\uC73C\uBA70, Center \uC2AC\uB86F \uC720\uBB34\uC5D0 \uB530\uB77C \uBC18\uC751\uD615 \uADF8\uB9AC\uB4DC \uB808\uC774\uC544\uC6C3\uC774 \uC790\uB3D9\uC73C\uB85C \uCD5C\uC801\uD654\uB429\uB2C8\uB2E4. \uD3ED\uC774 \uC904\uBA74 Right\uB9CC \uBA3C\uC800 \uCD95\uC57D(\u22641280 \uD234\uBC14 \uC544\uC774\uCF58\uD654)\uB418\uACE0, Center StnHeaderTitle\uC740 md(32px)\uC5D0\uC11C sm(\u22641280), compact(\u2264720)\uC73C\uB85C \uC810\uC9C4 \uCD95\uC18C\uB429\uB2C8\uB2E4.";
|
|
@@ -102,4 +102,4 @@ export {
|
|
|
102
102
|
STN_HEADER_PAGE_TITLE_DEMO,
|
|
103
103
|
STN_HEADER_TOOLBAR_DEMO_ACTIONS
|
|
104
104
|
};
|
|
105
|
-
//# sourceMappingURL=chunk-
|
|
105
|
+
//# sourceMappingURL=chunk-3RYAWLME.js.map
|
|
@@ -140,7 +140,7 @@ var STN_TABLE_PARTS = [
|
|
|
140
140
|
{ part: "table.stn-table__grid", role: "\uB370\uC774\uD130 \uD14C\uC774\uBE14 (`StnTable.Grid`)" },
|
|
141
141
|
{
|
|
142
142
|
part: "thead / .stn-table__thead",
|
|
143
|
-
role: "\uD5E4\uB354 \xB7 Light gray-50 / Dark
|
|
143
|
+
role: "\uD5E4\uB354 \xB7 Light gray-50 / Dark gray-800 (`--stn-table-th-bg`) \xB7 th Light gray-700 / Dark gray-350 \xB7 \uB192\uC774 36 \xB7 radius Light 4 / Dark 8"
|
|
144
144
|
},
|
|
145
145
|
{
|
|
146
146
|
part: "tbody / .stn-table__tbody",
|
|
@@ -171,4 +171,4 @@ export {
|
|
|
171
171
|
STN_TABLE_REACT_EXAMPLE,
|
|
172
172
|
STN_TABLE_PARTS
|
|
173
173
|
};
|
|
174
|
-
//# sourceMappingURL=chunk-
|
|
174
|
+
//# sourceMappingURL=chunk-IOBNIUK3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/stnTable.ts"],"sourcesContent":["/**\n * Data table (stn-table) — Infomap Figma Data Table\n * Light thead/tbody: 40000042:209510 · Dark: 40000040:101810\n */\n\nexport const STN_TABLE_INTRO =\n '대량 데이터 및 시스템 목록을 정돈하여 표출하는 데이터 테이블 패턴입니다. 정렬, 체크박스 선택, Hover 효과 및 페이징 연동을 제공합니다.'\n\nexport const STN_TABLE_FIGMA = {\n light: '40000042:209510',\n dark: '40000040:101810',\n} as const\n\nexport const STN_TABLE_TH_LABEL_FIGMA = '40000042:209530'\n\nexport const STN_TABLE_TH_CHECK_FIGMA = '40000042:209512'\n\nexport const STN_TABLE_TH_CHECK =\n '체크박스만 있는 thead 셀 — `StnTable.ThCheck`(또는 `th.stn-table__col-check` + `StnCheckbox controlOnly`). 열 너비 60 · 18×18 checkbox · padding 5. tbody 행 선택은 `StnTable.TdCheck`.'\n\n/** th 체크박스 전용 — Figma 40000042:209512 */\nexport const STN_TABLE_TH_CHECK_EXAMPLE = `<th scope=\"col\" class=\"stn-table__col-check\">\n <span class=\"checkbox stn-checkbox stn-checkbox--control-only\">\n <input type=\"checkbox\" id=\"tbl-select-all\" />\n <label for=\"tbl-select-all\">전체 선택</label>\n </span>\n</th>`\n\nexport const STN_TABLE_TD_CHECK_EXAMPLE = `<td class=\"stn-table__col-check\">\n <span class=\"checkbox stn-checkbox stn-checkbox--control-only\">\n <input type=\"checkbox\" id=\"tbl-row-1\" />\n <label for=\"tbl-row-1\">행 선택</label>\n </span>\n</td>`\n\nexport const STN_TABLE_HEADER_COL =\n '일반 헤더는 `StnTable.Th`에 텍스트만 넣습니다. 정렬 열은 `StnTable.Sort`(`button.stn-table__sort`) — hover·활성 시 trailing `arrow-narrow-down`(12) · `aria-sort` · `is-active`/`is-asc`/`is-desc`. Figma node `40000042:209530`.'\n\nexport const STN_TABLE_SORT_BEHAVIOR =\n '정렬 헤더는 `StnTable.Sort`(또는 `button.stn-table__sort`) + `aria-sort`(none | ascending | descending). 활성·hover 시 `stn-table__th-label-icon` 표시, `is-asc`/`is-desc`로 방향 전환. Pub HTML은 `stnPubTableInit()`(common.js)로 클라이언트 정렬할 수 있습니다.'\n\n/** th 정렬 버튼 — Figma 40000042:209530 */\nexport const STN_TABLE_SORT_EXAMPLE = `<th scope=\"col\">\n <button type=\"button\" class=\"stn-table__sort is-active is-desc\" aria-sort=\"descending\">\n <span class=\"stn-table__th-label-text\">포트차단</span>\n <span class=\"stn-table__th-label-icon\" aria-hidden=\"true\"></span>\n </button>\n</th>`\n\n/** pub-ui only — React 없이 동일 Infomap thead/tbody */\nexport const STN_TABLE_EXAMPLE_HTML = `<div class=\"stn-table\">\n <div class=\"stn-table__scroll\">\n <table class=\"stn-table__grid\">\n <thead class=\"stn-table__thead\">\n <tr>\n <th scope=\"col\" class=\"stn-table__col-check\">\n <span class=\"checkbox stn-checkbox stn-checkbox--control-only\">\n <input type=\"checkbox\" id=\"tbl-select-all\" />\n <label for=\"tbl-select-all\">전체 선택</label>\n </span>\n </th>\n <th scope=\"col\">장비명</th>\n <th scope=\"col\">포트 ID</th>\n <th scope=\"col\">\n <button type=\"button\" class=\"stn-table__sort is-active is-desc\" aria-sort=\"descending\">\n <span class=\"stn-table__th-label-text\">트래픽</span>\n <span class=\"stn-table__th-label-icon\" aria-hidden=\"true\"></span>\n </button>\n </th>\n <th scope=\"col\">장애 상태</th>\n </tr>\n </thead>\n <tbody class=\"stn-table__tbody\">\n <tr class=\"is-hoverable\">\n <td class=\"stn-table__col-check\">\n <span class=\"checkbox stn-checkbox stn-checkbox--control-only\">\n <input type=\"checkbox\" id=\"tbl-row-1\" checked />\n <label for=\"tbl-row-1\">행 1 선택</label>\n </span>\n </td>\n <td>ROUTER-SEOUL-01</td>\n <td>GigabitEthernet0/0/1</td>\n <td>1.25 Gbps</td>\n <td><span class=\"stn-table__pill\">정상</span></td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"stn-table__footer\">\n <p class=\"stn-table__summary\">총 57개 (1 to 20)</p>\n <div class=\"stn-table__footer-center\">\n <!-- StnPagination 컴포넌트 마크업 영역 -->\n </div>\n </div>\n</div>`\n\nexport const STN_TABLE_EXAMPLE = STN_TABLE_EXAMPLE_HTML\n\nexport const STN_TABLE_REACT_EXAMPLE = `import { useState } from 'react'\nimport { StnTable, StnPagination } from '@stn-uiux/pub-ui-react'\n\nexport function MyDataTableExample() {\n const [selectedIds, setSelectedIds] = useState<string[]>(['row-1'])\n const [sortOrder, setSortOrder] = useState<'ascending' | 'descending'>('descending')\n\n return (\n <StnTable>\n <StnTable.Grid>\n <StnTable.Head>\n <StnTable.Row>\n <StnTable.ThCheck\n label=\"전체 선택\"\n checked={selectedIds.length === 3}\n onChange={(e) => setSelectedIds(e.target.checked ? ['row-1', 'row-2', 'row-3'] : [])}\n />\n <StnTable.Th>장비명</StnTable.Th>\n <StnTable.Th>포트 ID</StnTable.Th>\n <StnTable.Th>\n <StnTable.Sort\n label=\"트래픽\"\n sort={sortOrder}\n onClick={() => setSortOrder((prev) => (prev === 'ascending' ? 'descending' : 'ascending'))}\n />\n </StnTable.Th>\n <StnTable.Th>장애 상태</StnTable.Th>\n </StnTable.Row>\n </StnTable.Head>\n\n <StnTable.Body>\n <StnTable.Row hoverable>\n <StnTable.TdCheck\n label=\"행 1 선택\"\n checked={selectedIds.includes('row-1')}\n onChange={() =>\n setSelectedIds((prev) =>\n prev.includes('row-1') ? prev.filter((id) => id !== 'row-1') : [...prev, 'row-1']\n )\n }\n />\n <StnTable.Td>ROUTER-SEOUL-01</StnTable.Td>\n <StnTable.Td>GigabitEthernet0/0/1</StnTable.Td>\n <StnTable.Td>1.25 Gbps</StnTable.Td>\n <StnTable.Td>\n <span className=\"stn-table__pill\">정상</span>\n </StnTable.Td>\n </StnTable.Row>\n </StnTable.Body>\n </StnTable.Grid>\n\n <StnTable.Footer\n summary=\"총 57개 (1 to 20)\"\n center={\n <StnPagination currentPage={1} totalPages={5} onPageChange={() => {}} />\n }\n />\n </StnTable>\n )\n}`\n\nexport const STN_TABLE_PARTS = [\n { part: '.stn-table > table', role: 'pub-ui 최소 마크업 — Infomap thead/tbody' },\n { part: '.stn-table', role: '셸 (스크롤 · footer · fill)' },\n { part: '.stn-table__scroll', role: '가로·세로 스크롤 영역' },\n { part: 'table.stn-table__grid', role: '데이터 테이블 (`StnTable.Grid`)' },\n {\n part: 'thead / .stn-table__thead',\n role: '헤더 · Light gray-50 / Dark
|
|
1
|
+
{"version":3,"sources":["../src/data/stnTable.ts"],"sourcesContent":["/**\n * Data table (stn-table) — Infomap Figma Data Table\n * Light thead/tbody: 40000042:209510 · Dark: 40000040:101810\n */\n\nexport const STN_TABLE_INTRO =\n '대량 데이터 및 시스템 목록을 정돈하여 표출하는 데이터 테이블 패턴입니다. 정렬, 체크박스 선택, Hover 효과 및 페이징 연동을 제공합니다.'\n\nexport const STN_TABLE_FIGMA = {\n light: '40000042:209510',\n dark: '40000040:101810',\n} as const\n\nexport const STN_TABLE_TH_LABEL_FIGMA = '40000042:209530'\n\nexport const STN_TABLE_TH_CHECK_FIGMA = '40000042:209512'\n\nexport const STN_TABLE_TH_CHECK =\n '체크박스만 있는 thead 셀 — `StnTable.ThCheck`(또는 `th.stn-table__col-check` + `StnCheckbox controlOnly`). 열 너비 60 · 18×18 checkbox · padding 5. tbody 행 선택은 `StnTable.TdCheck`.'\n\n/** th 체크박스 전용 — Figma 40000042:209512 */\nexport const STN_TABLE_TH_CHECK_EXAMPLE = `<th scope=\"col\" class=\"stn-table__col-check\">\n <span class=\"checkbox stn-checkbox stn-checkbox--control-only\">\n <input type=\"checkbox\" id=\"tbl-select-all\" />\n <label for=\"tbl-select-all\">전체 선택</label>\n </span>\n</th>`\n\nexport const STN_TABLE_TD_CHECK_EXAMPLE = `<td class=\"stn-table__col-check\">\n <span class=\"checkbox stn-checkbox stn-checkbox--control-only\">\n <input type=\"checkbox\" id=\"tbl-row-1\" />\n <label for=\"tbl-row-1\">행 선택</label>\n </span>\n</td>`\n\nexport const STN_TABLE_HEADER_COL =\n '일반 헤더는 `StnTable.Th`에 텍스트만 넣습니다. 정렬 열은 `StnTable.Sort`(`button.stn-table__sort`) — hover·활성 시 trailing `arrow-narrow-down`(12) · `aria-sort` · `is-active`/`is-asc`/`is-desc`. Figma node `40000042:209530`.'\n\nexport const STN_TABLE_SORT_BEHAVIOR =\n '정렬 헤더는 `StnTable.Sort`(또는 `button.stn-table__sort`) + `aria-sort`(none | ascending | descending). 활성·hover 시 `stn-table__th-label-icon` 표시, `is-asc`/`is-desc`로 방향 전환. Pub HTML은 `stnPubTableInit()`(common.js)로 클라이언트 정렬할 수 있습니다.'\n\n/** th 정렬 버튼 — Figma 40000042:209530 */\nexport const STN_TABLE_SORT_EXAMPLE = `<th scope=\"col\">\n <button type=\"button\" class=\"stn-table__sort is-active is-desc\" aria-sort=\"descending\">\n <span class=\"stn-table__th-label-text\">포트차단</span>\n <span class=\"stn-table__th-label-icon\" aria-hidden=\"true\"></span>\n </button>\n</th>`\n\n/** pub-ui only — React 없이 동일 Infomap thead/tbody */\nexport const STN_TABLE_EXAMPLE_HTML = `<div class=\"stn-table\">\n <div class=\"stn-table__scroll\">\n <table class=\"stn-table__grid\">\n <thead class=\"stn-table__thead\">\n <tr>\n <th scope=\"col\" class=\"stn-table__col-check\">\n <span class=\"checkbox stn-checkbox stn-checkbox--control-only\">\n <input type=\"checkbox\" id=\"tbl-select-all\" />\n <label for=\"tbl-select-all\">전체 선택</label>\n </span>\n </th>\n <th scope=\"col\">장비명</th>\n <th scope=\"col\">포트 ID</th>\n <th scope=\"col\">\n <button type=\"button\" class=\"stn-table__sort is-active is-desc\" aria-sort=\"descending\">\n <span class=\"stn-table__th-label-text\">트래픽</span>\n <span class=\"stn-table__th-label-icon\" aria-hidden=\"true\"></span>\n </button>\n </th>\n <th scope=\"col\">장애 상태</th>\n </tr>\n </thead>\n <tbody class=\"stn-table__tbody\">\n <tr class=\"is-hoverable\">\n <td class=\"stn-table__col-check\">\n <span class=\"checkbox stn-checkbox stn-checkbox--control-only\">\n <input type=\"checkbox\" id=\"tbl-row-1\" checked />\n <label for=\"tbl-row-1\">행 1 선택</label>\n </span>\n </td>\n <td>ROUTER-SEOUL-01</td>\n <td>GigabitEthernet0/0/1</td>\n <td>1.25 Gbps</td>\n <td><span class=\"stn-table__pill\">정상</span></td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"stn-table__footer\">\n <p class=\"stn-table__summary\">총 57개 (1 to 20)</p>\n <div class=\"stn-table__footer-center\">\n <!-- StnPagination 컴포넌트 마크업 영역 -->\n </div>\n </div>\n</div>`\n\nexport const STN_TABLE_EXAMPLE = STN_TABLE_EXAMPLE_HTML\n\nexport const STN_TABLE_REACT_EXAMPLE = `import { useState } from 'react'\nimport { StnTable, StnPagination } from '@stn-uiux/pub-ui-react'\n\nexport function MyDataTableExample() {\n const [selectedIds, setSelectedIds] = useState<string[]>(['row-1'])\n const [sortOrder, setSortOrder] = useState<'ascending' | 'descending'>('descending')\n\n return (\n <StnTable>\n <StnTable.Grid>\n <StnTable.Head>\n <StnTable.Row>\n <StnTable.ThCheck\n label=\"전체 선택\"\n checked={selectedIds.length === 3}\n onChange={(e) => setSelectedIds(e.target.checked ? ['row-1', 'row-2', 'row-3'] : [])}\n />\n <StnTable.Th>장비명</StnTable.Th>\n <StnTable.Th>포트 ID</StnTable.Th>\n <StnTable.Th>\n <StnTable.Sort\n label=\"트래픽\"\n sort={sortOrder}\n onClick={() => setSortOrder((prev) => (prev === 'ascending' ? 'descending' : 'ascending'))}\n />\n </StnTable.Th>\n <StnTable.Th>장애 상태</StnTable.Th>\n </StnTable.Row>\n </StnTable.Head>\n\n <StnTable.Body>\n <StnTable.Row hoverable>\n <StnTable.TdCheck\n label=\"행 1 선택\"\n checked={selectedIds.includes('row-1')}\n onChange={() =>\n setSelectedIds((prev) =>\n prev.includes('row-1') ? prev.filter((id) => id !== 'row-1') : [...prev, 'row-1']\n )\n }\n />\n <StnTable.Td>ROUTER-SEOUL-01</StnTable.Td>\n <StnTable.Td>GigabitEthernet0/0/1</StnTable.Td>\n <StnTable.Td>1.25 Gbps</StnTable.Td>\n <StnTable.Td>\n <span className=\"stn-table__pill\">정상</span>\n </StnTable.Td>\n </StnTable.Row>\n </StnTable.Body>\n </StnTable.Grid>\n\n <StnTable.Footer\n summary=\"총 57개 (1 to 20)\"\n center={\n <StnPagination currentPage={1} totalPages={5} onPageChange={() => {}} />\n }\n />\n </StnTable>\n )\n}`\n\nexport const STN_TABLE_PARTS = [\n { part: '.stn-table > table', role: 'pub-ui 최소 마크업 — Infomap thead/tbody' },\n { part: '.stn-table', role: '셸 (스크롤 · footer · fill)' },\n { part: '.stn-table__scroll', role: '가로·세로 스크롤 영역' },\n { part: 'table.stn-table__grid', role: '데이터 테이블 (`StnTable.Grid`)' },\n {\n part: 'thead / .stn-table__thead',\n role: '헤더 · Light gray-50 / Dark gray-800 (`--stn-table-th-bg`) · th Light gray-700 / Dark gray-350 · 높이 36 · radius Light 4 / Dark 8',\n },\n {\n part: 'tbody / .stn-table__tbody',\n role: '본문 · 행 36 · border Light gray-100 / Dark gray-800 (`--stn-table-border`) · td Light gray-750 / Dark gray-50',\n },\n { part: '.stn-table__col-check', role: '체크박스 열 60px (`StnTable.ThCheck` / `TdCheck` · Figma 40000042:209512)' },\n { part: 'button.stn-table__sort', role: '정렬 헤더 (`StnTable.Sort` · aria-sort · hover / pressed `:active`·`.is-pressed` · Figma 40000042:209530)' },\n { part: 'tr.is-pressed / th.is-pressed', role: '프레스 면 고정 (`pressed` · 행은 clickable `:active`와 동일)' },\n { part: '.stn-table__th--align-* / .stn-table__td--align-*', role: '셀 정렬 variant (`align=\"left\" | \"center\" | \"right\"` · 기본 center)' },\n { part: '.stn-table__col--*', role: '열 너비는 Header `Th`만 (`width={120}` → `.stn-table__col--120` · `var(--stn-size-120)` · 미지정 열이 남은 폭 흡수 · Body Td에 두지 않음)' },\n { part: '.stn-table__pill / __pill--fault / __pill--detect / __badge', role: '셀 칩 · type(102014) · fault(102016·배경없음) · detect(102041) · badge' },\n { part: '.stn-table__footer', role: '요약 · 페이지 크기 · pagination' },\n] as const\n"],"mappings":";AAKO,IAAM,kBACX;AAEK,IAAM,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,MAAM;AACR;AAEO,IAAM,2BAA2B;AAEjC,IAAM,2BAA2B;AAEjC,IAAM,qBACX;AAGK,IAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAOnC,IAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAOnC,IAAM,uBACX;AAEK,IAAM,0BACX;AAGK,IAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ/B,IAAM,yBAAyB;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;AA8C/B,IAAM,oBAAoB;AAE1B,IAAM,0BAA0B;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;AA6DhC,IAAM,kBAAkB;AAAA,EAC7B,EAAE,MAAM,sBAAsB,MAAM,oEAAsC;AAAA,EAC1E,EAAE,MAAM,cAAc,MAAM,oDAA0B;AAAA,EACtD,EAAE,MAAM,sBAAsB,MAAM,+DAAe;AAAA,EACnD,EAAE,MAAM,yBAAyB,MAAM,0DAA4B;AAAA,EACnE;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA,EAAE,MAAM,yBAAyB,MAAM,mGAAuE;AAAA,EAC9G,EAAE,MAAM,0BAA0B,MAAM,wIAAwG;AAAA,EAChJ,EAAE,MAAM,iCAAiC,MAAM,8GAAoD;AAAA,EACnG,EAAE,MAAM,qDAAqD,MAAM,6FAAiE;AAAA,EACpI,EAAE,MAAM,sBAAsB,MAAM,0OAAwH;AAAA,EAC5J,EAAE,MAAM,+DAA+D,MAAM,gHAAmE;AAAA,EAChJ,EAAE,MAAM,sBAAsB,MAAM,oEAA2B;AACjE;","names":[]}
|
|
@@ -82,6 +82,7 @@ var SYSTEM_ICON_DATA_URLS = {
|
|
|
82
82
|
"line/check-circle": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iOSIgc3Ryb2tlPSIjNDA0NzRGIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik04IDEyLjVMMTAuOCAxNS4zTDE2IDkuNSIgc3Ryb2tlPSIjNDA0NzRGIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=",
|
|
83
83
|
"line/check": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUgMTJMMTAgMTdMMTkgOCIgc3Ryb2tlPSIjNDA0NzRGIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=",
|
|
84
84
|
"line/chevron-down": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuNCA4LjQ1TDEyIDE1LjU1TDE4LjYgOC40NSIgc3Ryb2tlPSIjNDU0RjVCIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=",
|
|
85
|
+
"line/chevron-left": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE1LjU1IDUuNEw4LjQ1IDEyTDE1LjU1IDE4LjYiIHN0cm9rZT0iIzQwNDc0RiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K",
|
|
85
86
|
"line/chevron-right": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguNDUgNS40TDE1LjU1IDEyTDguNDUgMTguNiIgc3Ryb2tlPSIjNDA0NzRGIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=",
|
|
86
87
|
"line/chevron-up": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuNCAxNS41NUwxMiA4LjQ1TDE4LjYgMTUuNTUiIHN0cm9rZT0iIzQ1NEY1QiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K",
|
|
87
88
|
"line/clipboard": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzM5XzM1NTgyKSI+CjxwYXRoIGQ9Ik05IDVIN0M2LjQ2OTU3IDUgNS45NjA4NiA1LjIxMDcxIDUuNTg1NzkgNS41ODU3OUM1LjIxMDcxIDUuOTYwODYgNSA2LjQ2OTU3IDUgN1YxOUM1IDE5LjUzMDQgNS4yMTA3MSAyMC4wMzkxIDUuNTg1NzkgMjAuNDE0MkM1Ljk2MDg2IDIwLjc4OTMgNi40Njk1NyAyMSA3IDIxSDE3QzE3LjUzMDQgMjEgMTguMDM5MSAyMC43ODkzIDE4LjQxNDIgMjAuNDE0MkMxOC43ODkzIDIwLjAzOTEgMTkgMTkuNTMwNCAxOSAxOVY3QzE5IDYuNDY5NTcgMTguNzg5MyA1Ljk2MDg2IDE4LjQxNDIgNS41ODU3OUMxOC4wMzkxIDUuMjEwNzEgMTcuNTMwNCA1IDE3IDVIMTUiIHN0cm9rZT0iIzQwNDc0RiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNOSA1QzkgNC40Njk1NyA5LjIxMDcxIDMuOTYwODYgOS41ODU3OSAzLjU4NTc5QzkuOTYwODYgMy4yMTA3MSAxMC40Njk2IDMgMTEgM0gxM0MxMy41MzA0IDMgMTQuMDM5MSAzLjIxMDcxIDE0LjQxNDIgMy41ODU3OUMxNC43ODkzIDMuOTYwODYgMTUgNC40Njk1NyAxNSA1QzE1IDUuNTMwNDMgMTQuNzg5MyA2LjAzOTE0IDE0LjQxNDIgNi40MTQyMUMxNC4wMzkxIDYuNzg5MjkgMTMuNTMwNCA3IDEzIDdIMTFDMTAuNDY5NiA3IDkuOTYwODYgNi43ODkyOSA5LjU4NTc5IDYuNDE0MjFDOS4yMTA3MSA2LjAzOTE0IDkgNS41MzA0MyA5IDVaIiBzdHJva2U9IiM0MDQ3NEYiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTkgMTdWMTMiIHN0cm9rZT0iIzQwNDc0RiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTIgMTdWMTYiIHN0cm9rZT0iIzQwNDc0RiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUgMTdWMTUiIHN0cm9rZT0iIzQwNDc0RiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTIgMTdWMTYiIHN0cm9rZT0iIzQwNDc0RiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzM5XzM1NTgyIj4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",
|
|
@@ -149,4 +150,4 @@ var SYSTEM_ICON_DATA_URLS = {
|
|
|
149
150
|
export {
|
|
150
151
|
SYSTEM_ICON_DATA_URLS
|
|
151
152
|
};
|
|
152
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-NHYZ7AWK.js.map
|