style(storybook): localize 조직도 and 노선도 menus, Department Colors 3 columns

- OrgChart -> 조직도 and sub menus (개요, 부서별 색상, 전체 구성, 확장 조직도); Story IDs kept
- 노선도 menu/page titles in Korean (제목, 정보, 노선·공간, 시설물)
- Department Colors cards 3 columns (2 under 960px)
This commit is contained in:
shkim4 committed 2026-11-09 18:26:11 +09:00
1 parent 031f88033d
commit 0f1574f80f
14 files changed
+52 -42

No files matched your search

+10 -8
View File
@@ -16,7 +16,7 @@ import { withRepresentation } from "./center-shared"
// Owners: ui-viz docs/visualization/facility.md and facility-assets.md (128 approved SVG references, shipped unchanged).
// The display scale (Q2b) is HOLD and Facility has no Selected / Hover state.
const meta = {
title: "노선도/Facility",
title: "노선도/시설물",
id: "center-graphic-facility",
component: TunnelFacility,
parameters: { layout: "padded" },
@@ -31,23 +31,25 @@ const page = (name: string, Demo: ComponentType): Story => ({
render: () => (
<StoryPage>
<StoryPageHeader title={name} />
<StorySection title="Overview">
<StorySection title="개요">
{withRepresentation(() => <Demo />)}
</StorySection>
</StoryPage>
),
})
export const Tunnel: Story = page("터널", TunnelReferenceDemo)
export const Bridge: Story = page("교량", BridgeReferenceDemo)
export const Intersection: Story = page("교차로", IntersectionReferenceDemo)
export const Junction: Story = page("분기점", JunctionReferenceDemo)
export const Interchange: Story = page("나들목", InterchangeReferenceDemo)
export const Roadside: Story = page("휴게소 · 졸음쉼터", RoadsideReferenceDemo)
// `name` is repeated as a literal because Storybook's static indexer cannot read it through page(); it drives the sidebar label.
export const Tunnel: Story = { ...page("터널", TunnelReferenceDemo), name: "터널" }
export const Bridge: Story = { ...page("교량", BridgeReferenceDemo), name: "교량" }
export const Intersection: Story = { ...page("교차로", IntersectionReferenceDemo), name: "교차로" }
export const Junction: Story = { ...page("분기점", JunctionReferenceDemo), name: "분기점" }
export const Interchange: Story = { ...page("나들목", InterchangeReferenceDemo), name: "나들목" }
export const Roadside: Story = { ...page("휴게소 · 졸음쉼터", RoadsideReferenceDemo), name: "휴게소 · 졸음쉼터" }
// Linked facilities are a standalone section heading followed by item cards.
// Keep the reference data/artwork and road-class grouping owned by the package.
export const Linked: Story = {
...page("연계 시설물", LinkedFacilityReferenceDemo),
name: "연계 시설물",
render: () => (
<StoryPage className="sb-center-linked-page">
<StoryPageHeader title="연계 시설물" />
+4 -4
View File
@@ -6,7 +6,7 @@ import { withRepresentation } from "./center-shared"
// Owner: ui-viz docs/patterns/center-information-presentation.md and center-information-{box,table,emphasis}.md.
// Single-line ellipsis is resolved; multi-line overflow, exact placement and the presentation scale (Q3) are not.
const meta = {
title: "노선도/Information",
title: "노선도/정보",
id: "center-graphic-information",
parameters: { layout: "fullscreen", controls: { disable: true } },
} satisfies Meta
@@ -15,11 +15,11 @@ type Story = StoryObj<typeof meta>
// Common Story page. The CENTER representation wraps only the specimen, so the page title is never scaled with the graphic.
export const Information: Story = {
name: "Information",
name: "정보",
render: () => (
<StoryPage>
<StoryPageHeader title="Information" />
<StorySection title="Overview">
<StoryPageHeader title="정보" />
<StorySection title="개요">
{withRepresentation(() => (
<div className="sb-center-information">
<CenterInformationDisplayReferenceDemo />
+4 -4
View File
@@ -7,7 +7,7 @@ import { withRepresentation } from "./center-shared"
// Owners: ui-viz docs/visualization/route.md, spatial-map.md, spatial-section.md, composition.md.
// Route layer order Shadow -> Outline -> Primary Stroke is CONFIRMED; the whole-map layer order is Candidate and line join is TBD.
const meta = {
title: "노선도/Spatial",
title: "노선도/노선·공간",
id: "center-graphic-spatial",
component: RouteLine,
parameters: { layout: "fullscreen", controls: { disable: true } },
@@ -17,11 +17,11 @@ type Story = StoryObj<typeof meta>
// Common Story page. The CENTER representation wraps only the specimen, so the page title is never scaled with the graphic.
export const Spatial: Story = {
name: "Spatial",
name: "노선·공간",
render: () => (
<StoryPage className="sb-center-spatial-page">
<StoryPageHeader title="Spatial" />
<StorySection title="Overview">
<StoryPageHeader title="노선·공간" />
<StorySection title="개요">
{withRepresentation(() => <CenterSpatialInformationReferenceDemo />)}
</StorySection>
</StoryPage>
+4 -4
View File
@@ -6,7 +6,7 @@ import { withRepresentation } from "./center-shared"
// Owner: ui-viz docs/components/center-title.md. Title Resolution B numeric output is TBD; the per-Type palette is SCOPED_DESIGN_APPROVAL.
const meta = {
title: "노선도/Title",
title: "노선도/제목",
id: "center-graphic-title",
component: CenterTitle,
parameters: { layout: "padded" },
@@ -17,12 +17,12 @@ type Story = StoryObj<typeof meta>
// Representative Story: the four title types. Named after the area so Storybook shows it as a single sidebar item.
// Common Story page. The CENTER representation wraps only the specimen, so the page title is never scaled with the graphic.
export const Compositions: Story = {
name: "Title",
name: "제목",
parameters: { layout: "fullscreen", controls: { disable: true } },
render: () => (
<StoryPage>
<StoryPageHeader title="Title" />
<StorySection title="Overview">
<StoryPageHeader title="제목" />
<StorySection title="개요">
{withRepresentation(() => <CenterTitleReferenceDemo />)}
</StorySection>
</StoryPage>