From 51e8ab8c425c1e8867d8288f7e9e707cef63c8d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Fri, 6 Nov 2026 10:56:04 +0900 Subject: [PATCH 1/2] feat(foundation): add company colors story Add Foundation > Company Colors as a separate Storybook menu placed right after Color. It shows the 7 affiliates and 14 colors from the existing companyColorPresets (main first, then secondary) with the Color chip styles and the Default emphasis reused for the main color. Theme tokens, public API and the existing Color story are unchanged. - Foundation sort order: Color, Company Colors, Typography, Layout - Company chip width rule scoped to the company rows - Document the menu in brand-color-steps.md - Add the new story to the Story Inventory records --- .storybook/preview.tsx | 2 +- .storybook/qa/STORY-INVENTORY.md | 14 ++++++++---- .storybook/qa/story-inventory.json | 26 +++++++++++++++++---- docs/guidelines/brand-color-steps.md | 2 ++ src/foundation/company-colors.stories.tsx | 28 +++++++++++++++++++++++ src/foundation/foundation.css | 3 +++ 6 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 src/foundation/company-colors.stories.tsx diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx index 06589d9..7c4abd9 100644 --- a/.storybook/preview.tsx +++ b/.storybook/preview.tsx @@ -25,7 +25,7 @@ const preview: Preview = { includeNames: true, order: [ "Foundation", - ["Color", "Typography", "Layout"], + ["Color", "Company Colors", "Typography", "Layout"], "Components", [ "Form", diff --git a/.storybook/qa/STORY-INVENTORY.md b/.storybook/qa/STORY-INVENTORY.md index 1643bfd..79b062e 100644 --- a/.storybook/qa/STORY-INVENTORY.md +++ b/.storybook/qa/STORY-INVENTORY.md @@ -6,16 +6,16 @@ This is a classification record. No Story IDs, exports or titles are renamed. HI ## Summary -- PRIMARY: 65 +- PRIMARY: 66 - VERIFICATION: 212 - UTILITY: 15 - LEGACY / DUPLICATE: 0 -- KEEP: 65 +- KEEP: 66 - HIDE: 227 - MERGE_CANDIDATE: 31 - DELETE_CANDIDATE: 0 -- Story files: 63 -- Stories: 292 +- Story files: 64 +- Stories: 293 - Hierarchy: Foundation → Components → Patterns → Center Graphic → Theme ## Full inventory @@ -504,6 +504,12 @@ Source: `src/foundation/color.stories.tsx`; meta.tags: [] - All — Color; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +### Foundation/Company Colors + +Source: `src/foundation/company-colors.stories.tsx`; meta.tags: [] + +- All — Company Colors; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. + ### Foundation/Layout Source: `src/foundation/layout.stories.tsx`; meta.tags: [] diff --git a/.storybook/qa/story-inventory.json b/.storybook/qa/story-inventory.json index abc1cf3..766de04 100644 --- a/.storybook/qa/story-inventory.json +++ b/.storybook/qa/story-inventory.json @@ -1,15 +1,15 @@ { "summary": { - "storyFiles": 63, - "stories": 292, + "storyFiles": 64, + "stories": 293, "categories": { - "PRIMARY": 65, + "PRIMARY": 66, "VERIFICATION": 212, "UTILITY": 15, "LEGACY / DUPLICATE": 0 }, "decisions": { - "KEEP": 65, + "KEEP": 66, "HIDE": 227, "MERGE_CANDIDATE": 31, "DELETE_CANDIDATE": 0 @@ -3631,6 +3631,24 @@ } ] }, + { + "file": "src/foundation/company-colors.stories.tsx", + "title": "Foundation/Company Colors", + "metaTags": [], + "stories": [ + { + "id": "foundation-company-colors--all", + "exportName": "All", + "name": "Company Colors", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + } + ] + }, { "file": "src/foundation/layout.stories.tsx", "title": "Foundation/Layout", diff --git a/docs/guidelines/brand-color-steps.md b/docs/guidelines/brand-color-steps.md index 08201fb..73ead27 100644 --- a/docs/guidelines/brand-color-steps.md +++ b/docs/guidelines/brand-color-steps.md @@ -36,3 +36,5 @@ Orange Dark 1·2의 원본 Needs Review 상태와 [이전 검수 보고서](../r 페이지 소개는 `한맥 브랜드 컬러`로 표시한다. 그룹 설명의 단계 순서 나열 문구는 제공하지 않으며, 개별 컬러칩의 단계명과 HEX는 유지한다. [Color 대표 Story](../../src/foundation/color.stories.tsx)는 한맥그린·한맥브라운·한맥오렌지 3개 그룹에 각 8개, 총 24개 컬러칩만 표시한다. Green 8/8·Brown 8/8·Orange 8/8 확정이며 단계명·현재 HEX와 Default 기본색 강조를 유지한다. 2026-10-11 최종 표시 요청에 따라 Brown Deep, Orange Light·Mid·Dark·Deep의 별도 표시, Accent·Semantic·Gradients 섹션과 개발용 Token·CSS Variable·Runtime Key 설명은 제거한다. Legacy Button 색상과 Accent·Semantic·Gradient의 실제 Key·값·소비처는 보존한다. 기존 Component mapping을 새 값에 연결하지 않으며 public Key·Property·type·Default·API·schemaVersion 1과 서비스 partial JSON 호환성을 유지한다. [Runtime Theme](runtime-theme.md)의 geometry/상태 권한과 Designer의 기존 17개 상위 역할 입력 UI는 확대하지 않는다. 한맥오렌지의 미확정 브랜드 단계는 없다. [표시 정리 검증 기록](../reports/foundation-color-display-cleanup-2026-10-11.md). + +[Company Colors Story](../../src/foundation/company-colors.stories.tsx)는 Foundation > Color와 별도 메뉴(Color 바로 아래)이며 7개 계열사·14개 컬러를 회사별로 표시한다. 데이터는 OrgChart의 기존 `companyColorPresets`를 그대로 읽고(메인 → 서브 순서, 메인은 Default 강조 재사용) HEX를 중복 정의하지 않는다. Theme 토큰·`themes/*.json`·공개 계약은 변경하지 않으며 Foundation > Color의 3그룹 24칩은 그대로다. diff --git a/src/foundation/company-colors.stories.tsx b/src/foundation/company-colors.stories.tsx new file mode 100644 index 0000000..b094b8f --- /dev/null +++ b/src/foundation/company-colors.stories.tsx @@ -0,0 +1,28 @@ +import type { Meta, StoryObj } from "@storybook/react-vite" +import { companyColorPresets } from "@hm-design/org-chart" +import { ReferencePage, ReferenceSection } from "./reference" + +// Company colors come from the existing OrgChart presets; HEX values are never duplicated here. +// The chip markup and classes are shared with Foundation/Color (foundation.css). +const companies = Object.values(companyColorPresets) + +function CompanyColorChip({ label, hex, main }: { label: string; hex: string; main: boolean }) { + return
+
+

{label}

{hex.toUpperCase()}

+
+} + +function CompanyColorsPage() { + return + {companies.map(company => +
+ + {company.secondary.map((hex, index) => )} +
+
)} +
+} +const meta = { title: "Foundation/Company Colors", parameters: { layout: "fullscreen" } } satisfies Meta +export default meta +export const All: StoryObj = { name: "Company Colors", render: () => } diff --git a/src/foundation/foundation.css b/src/foundation/foundation.css index f263cc4..33205e0 100644 --- a/src/foundation/foundation.css +++ b/src/foundation/foundation.css @@ -38,3 +38,6 @@ /* New common background stop IDs stay on one line at the supported widths. */ .hm-foundation .hm-color-gradient-stops .hm-brand-color-chip[data-gradient-stop-token] { flex-basis: 220px; } .hm-foundation .hm-color-foreground-sample { padding: 16px; background: var(--hm-sem-bg-surface); } + +/* Company Colors: keep each chip close to the Color row width so 1-3 chips per company do not stretch across the page. */ +.hm-foundation .hm-brand-color-row[data-company-id] .hm-brand-color-chip { flex: 0 1 140px; } From 811a17dcc4c5a5b68629e5c08109d3e68e1980aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84?= Date: Fri, 6 Nov 2026 10:56:16 +0900 Subject: [PATCH 2/2] docs(storybook): sync story inventory Regenerate the Story Inventory with .storybook/qa/generate-inventory.mjs. The records were last generated on 2026-10-11 and missed the OrgChart (8 files, 27 stories) and SW (10 files, 50 stories) stories added since, plus two new stories (Tabs DefaultApi, Filter Bar DraftApplied) and two reclassified ones. The inventory now matches the actual 82 story files and 372 stories. Only the two generated files change; the generator and stories are untouched. --- .storybook/qa/STORY-INVENTORY.md | 189 ++++- .storybook/qa/story-inventory.json | 1248 +++++++++++++++++++++++++++- 2 files changed, 1412 insertions(+), 25 deletions(-) diff --git a/.storybook/qa/STORY-INVENTORY.md b/.storybook/qa/STORY-INVENTORY.md index 79b062e..c3ff92f 100644 --- a/.storybook/qa/STORY-INVENTORY.md +++ b/.storybook/qa/STORY-INVENTORY.md @@ -6,16 +6,16 @@ This is a classification record. No Story IDs, exports or titles are renamed. HI ## Summary -- PRIMARY: 66 -- VERIFICATION: 212 -- UTILITY: 15 +- PRIMARY: 82 +- VERIFICATION: 252 +- UTILITY: 38 - LEGACY / DUPLICATE: 0 -- KEEP: 66 -- HIDE: 227 -- MERGE_CANDIDATE: 31 +- KEEP: 82 +- HIDE: 290 +- MERGE_CANDIDATE: 33 - DELETE_CANDIDATE: 0 -- Story files: 64 -- Stories: 293 +- Story files: 82 +- Stories: 372 - Hierarchy: Foundation → Components → Patterns → Center Graphic → Theme ## Full inventory @@ -43,7 +43,7 @@ Source: `src/center/center-information.stories.tsx`; meta.tags: [] Source: `src/center/center-overview.stories.tsx`; meta.tags: [] -- Overview — Overview; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- Overview — Overview; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. ### Center Graphic/Spatial @@ -325,7 +325,7 @@ Source: `src/components/progress.stories.tsx`; meta.tags: [] Source: `src/components/publisher-regression.stories.tsx`; meta.tags: ["verification"] -- ConsumersRegression — Consumers Regression; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- ConsumersRegression — Consumers Regression; tags: ["verification","play-fn"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. ### Components/Form/Radio Group @@ -445,6 +445,7 @@ Source: `src/components/table.stories.tsx`; meta.tags: [] Source: `src/components/tabs.stories.tsx`; meta.tags: [] - All — Tabs; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- DefaultApi — Default API; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. - Secondary — Secondary; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. - SelectedFirst — Selected First; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. - SelectedLast — Selected Last; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. @@ -522,6 +523,73 @@ Source: `src/foundation/typography.stories.tsx`; meta.tags: [] - All — Typography; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +### OrgChart/Components/Cards + +Source: `src/org-chart/org-chart-cards.stories.tsx`; meta.tags: ["internal"] + +- BusinessManagement — Business Management; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- BusinessPlanning — Business Planning; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- TalentGrowth — Talent Growth; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- IntegratedSystem — Integrated System; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- DesignPlanning — Design Planning; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- SolutionSales — Solution Sales; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- TopLeader — 최상위 리더; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- OrganizationLeader — 조직장; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- Employee — 일반 직원; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### OrgChart/Department Colors + +Source: `src/org-chart/org-chart-department-colors.stories.tsx`; meta.tags: [] + +- DepartmentColors — Department Colors; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. + +### OrgChart/Expanded OrgChart + +Source: `src/org-chart/org-chart-expanded.stories.tsx`; meta.tags: [] + +- ExpandedOrgChart — Expanded OrgChart; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. + +### OrgChart/Full Composition + +Source: `src/org-chart/org-chart-full-composition.stories.tsx`; meta.tags: [] + +- FullComposition — Full Composition; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. + +### OrgChart/Verification/Overview + +Source: `src/org-chart/org-chart-overview-internal.stories.tsx`; meta.tags: ["internal"] + +- Logo — Logo; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- PositionSummary — Position Summary; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- AffiliationSummary — Affiliation Summary; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### OrgChart/Overview + +Source: `src/org-chart/org-chart-p1.stories.tsx`; meta.tags: [] + +- LogoPersonnelSummary — Overview; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. + +### OrgChart/Components/Summaries + +Source: `src/org-chart/org-chart-summary.stories.tsx`; meta.tags: ["internal"] + +- PositionSummary — Position Summary; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- AffiliationSummary — Affiliation Summary; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- StatusSummary — Status Summary; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### OrgChart/Content + +Source: `src/org-chart/org-chart.stories.tsx`; meta.tags: ["internal"] + +- BasicOrganization — Basic Organization; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- OrganizationHierarchy — Organization Hierarchy; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- EmployeeCards — Employee Cards; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- OrganizationSummary — Organization Summary; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- JSONDataUpdate — JSON Data Update; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- LoadingEmptyError — Loading / Empty / Error; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- ResponsiveContainer — Responsive Container; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- MultipleInstances — Multiple Instances; tags: ["internal"]; UTILITY; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + ### Patterns/Layout/Dashboard Source: `src/patterns/dashboard-layout.stories.tsx`; meta.tags: [] @@ -549,6 +617,7 @@ Source: `src/patterns/data-table.stories.tsx`; meta.tags: [] Source: `src/patterns/filter-bar.stories.tsx`; meta.tags: [] - All — Filter Bar; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- DraftApplied — Draft / Applied; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. ### Patterns/Layout/GNB @@ -611,6 +680,106 @@ Source: `src/patterns/page-header.stories.tsx`; meta.tags: [] - All — Page Header; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +### SW/Footer + +Source: `src/sw/sw-footer.stories.tsx`; meta.tags: [] + +- FullFooter — SW Footer; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- ToolGroups — 도구 그룹별 표시; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- FigmaVariants — Figma 디자인별 Variant (35 노드); tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- CustomContent — 도구 및 메뉴 변경 예제; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- Responsive — Responsive More; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- Parts — 개별 부품 (조합용); tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### SW/Header + +Source: `src/sw/sw-header-dropdown.stories.tsx`; meta.tags: [] + +- ComposedControls — Dropdown; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### SW/Header + +Source: `src/sw/sw-header-home-menu.stories.tsx`; meta.tags: [] + +- HomeMenu — Home Menu; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- HomeMenuCaptureDefault — Home Menu · 비교 캔버스 · Default; tags: ["!autodocs","verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- HomeMenuHeaderComposition — Home Menu · Header 조합 · 로고 클릭; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- HomeMenuDynamicData — Home Menu · Props · 데이터 변경; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- HomeMenuStandalone — Home Menu · 단독 사용 · 조합형; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- HomeMenuPropertyBarCheck — Home Menu · 속성Bar 비교 (26:10492); tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- HomeMenuCapturePropertyBar — Home Menu · 비교 캔버스 · 속성Bar; tags: ["!autodocs","verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- HomeMenuIntegration — Home Menu · 통합 · Popup · Escape; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- HomeMenuCaptureResponsive — Home Menu · 비교 캔버스 · 반응형; tags: ["!autodocs","verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### SW/Header + +Source: `src/sw/sw-header-open.stories.tsx`; meta.tags: [] + +- DocumentOpen — Document Open; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- HiddenSubControls — Hidden Sub Controls; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### SW/Header + +Source: `src/sw/sw-header.stories.tsx`; meta.tags: [] + +- DetailButtons — Detail Buttons (Shared States); tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- Overview — SW Header; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- InteractiveStates — Interactive States; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- WindowMoveMotion — Window Move Motion; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- LogoSlot — Logo; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- DocumentDropdown — Document Dropdown; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- ResponsiveMore — Responsive More; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- KGuide — K Guide; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### SW/Popup + +Source: `src/sw/sw-popup.stories.tsx`; meta.tags: [] + +- CustomContent — Custom Content; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- MultiplePopups — Multiple Popups; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### SW/Step Header + +Source: `src/sw/sw-process-header.stories.tsx`; meta.tags: [] + +- ProcessHeader — Step Header; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- Responsive — Responsive More; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- SplitOpen — 화면 분할; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- MultiStep — Multi Step; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- FixedWidths — Fixed Widths; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- ProcessBar — Process Bar; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- MultiStepManyGroups — Multi Step · Many Groups; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- MultiStepManySteps — Multi Step · Many Steps; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- States — States; tags: ["verification"]; VERIFICATION; HIDE; MERGE_CANDIDATE. Representative board may cover the same specimen; keep direct QA until behavioral equivalence is reviewed. +- ThemeOverride — Theme Override; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### SW/Popup + +Source: `src/sw/sw-property-panel.stories.tsx`; meta.tags: [] + +- PropertyPanelCompare — Property Panel; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. + +### SW/Theme + +Source: `src/sw/sw-theme.stories.tsx`; meta.tags: [] + +- ThemeInheritance — Theme Inheritance; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + +### SW/Viewer + +Source: `src/sw/sw-viewer.stories.tsx`; meta.tags: [] + +- ViewerHeader — Viewer Header; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- MenuGroups — Menu Groups; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- States — Item States; tags: ["verification"]; VERIFICATION; HIDE; MERGE_CANDIDATE. Representative board may cover the same specimen; keep direct QA until behavioral equivalence is reviewed. +- Dropdowns — Header + Dropdown; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- SettingsPanel — Settings Popup; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- ContentVariants — Settings Popup; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- VariableSize — Variable Size Popups; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. +- Logo — Logo; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- Responsive — Responsive More; tags: []; PRIMARY; KEEP. Representative story or distinct reference page. +- CompareWithSWHeader — SWHeader vs Viewer Header; tags: ["verification"]; VERIFICATION; HIDE. Keep direct URL and tag-filter access; excluded from default sidebar. + ### Theme/Designer Playground Source: `src/theme/designer-theme.stories.tsx`; meta.tags: ["internal"] diff --git a/.storybook/qa/story-inventory.json b/.storybook/qa/story-inventory.json index 766de04..7fe872f 100644 --- a/.storybook/qa/story-inventory.json +++ b/.storybook/qa/story-inventory.json @@ -1,17 +1,17 @@ { "summary": { - "storyFiles": 64, - "stories": 293, + "storyFiles": 82, + "stories": 372, "categories": { - "PRIMARY": 66, - "VERIFICATION": 212, - "UTILITY": 15, + "PRIMARY": 82, + "VERIFICATION": 252, + "UTILITY": 38, "LEGACY / DUPLICATE": 0 }, "decisions": { - "KEEP": 66, - "HIDE": 227, - "MERGE_CANDIDATE": 31, + "KEEP": 82, + "HIDE": 290, + "MERGE_CANDIDATE": 33, "DELETE_CANDIDATE": 0 }, "hierarchy": [ @@ -149,12 +149,16 @@ "id": "center-graphic-overview--overview", "exportName": "Overview", "name": "Overview", - "storyTags": [], - "effectiveTags": [], - "category": "PRIMARY", - "decision": "KEEP", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", "candidate": null, - "reason": "Representative story or distinct reference page." + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." } ] }, @@ -2169,9 +2173,12 @@ "id": "verification-publisher-regression--consumers-regression", "exportName": "ConsumersRegression", "name": "Consumers Regression", - "storyTags": [], + "storyTags": [ + "play-fn" + ], "effectiveTags": [ - "verification" + "verification", + "play-fn" ], "category": "VERIFICATION", "decision": "HIDE", @@ -3109,6 +3116,21 @@ "candidate": null, "reason": "Representative story or distinct reference page." }, + { + "id": "components-navigation-tabs--default-api", + "exportName": "DefaultApi", + "name": "Default API", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, { "id": "components-navigation-tabs--secondary", "exportName": "Secondary", @@ -3685,6 +3707,413 @@ } ] }, + { + "file": "src/org-chart/org-chart-cards.stories.tsx", + "title": "OrgChart/Components/Cards", + "metaTags": [ + "internal" + ], + "stories": [ + { + "id": "orgchart-components-cards--business-management", + "exportName": "BusinessManagement", + "name": "Business Management", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-cards--business-planning", + "exportName": "BusinessPlanning", + "name": "Business Planning", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-cards--talent-growth", + "exportName": "TalentGrowth", + "name": "Talent Growth", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-cards--integrated-system", + "exportName": "IntegratedSystem", + "name": "Integrated System", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-cards--design-planning", + "exportName": "DesignPlanning", + "name": "Design Planning", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-cards--solution-sales", + "exportName": "SolutionSales", + "name": "Solution Sales", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-cards--top-leader", + "exportName": "TopLeader", + "name": "최상위 리더", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-cards--organization-leader", + "exportName": "OrganizationLeader", + "name": "조직장", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-cards--employee", + "exportName": "Employee", + "name": "일반 직원", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/org-chart/org-chart-department-colors.stories.tsx", + "title": "OrgChart/Department Colors", + "metaTags": [], + "stories": [ + { + "id": "orgchart--department-colors", + "exportName": "DepartmentColors", + "name": "Department Colors", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + } + ] + }, + { + "file": "src/org-chart/org-chart-expanded.stories.tsx", + "title": "OrgChart/Expanded OrgChart", + "metaTags": [], + "stories": [ + { + "id": "orgchart--expanded-org-chart", + "exportName": "ExpandedOrgChart", + "name": "Expanded OrgChart", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + } + ] + }, + { + "file": "src/org-chart/org-chart-full-composition.stories.tsx", + "title": "OrgChart/Full Composition", + "metaTags": [], + "stories": [ + { + "id": "orgchart--full-composition", + "exportName": "FullComposition", + "name": "Full Composition", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + } + ] + }, + { + "file": "src/org-chart/org-chart-overview-internal.stories.tsx", + "title": "OrgChart/Verification/Overview", + "metaTags": [ + "internal" + ], + "stories": [ + { + "id": "orgchart--logo", + "exportName": "Logo", + "name": "Logo", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart--position-summary", + "exportName": "PositionSummary", + "name": "Position Summary", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart--affiliation-summary", + "exportName": "AffiliationSummary", + "name": "Affiliation Summary", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/org-chart/org-chart-p1.stories.tsx", + "title": "OrgChart/Overview", + "metaTags": [], + "stories": [ + { + "id": "orgchart--logo-personnel-summary", + "exportName": "LogoPersonnelSummary", + "name": "Overview", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + } + ] + }, + { + "file": "src/org-chart/org-chart-summary.stories.tsx", + "title": "OrgChart/Components/Summaries", + "metaTags": [ + "internal" + ], + "stories": [ + { + "id": "orgchart-components-summaries--position-summary", + "exportName": "PositionSummary", + "name": "Position Summary", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-summaries--affiliation-summary", + "exportName": "AffiliationSummary", + "name": "Affiliation Summary", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-components-summaries--status-summary", + "exportName": "StatusSummary", + "name": "Status Summary", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/org-chart/org-chart.stories.tsx", + "title": "OrgChart/Content", + "metaTags": [ + "internal" + ], + "stories": [ + { + "id": "orgchart-content--basic-organization", + "exportName": "BasicOrganization", + "name": "Basic Organization", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-content--organization-hierarchy", + "exportName": "OrganizationHierarchy", + "name": "Organization Hierarchy", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-content--employee-cards", + "exportName": "EmployeeCards", + "name": "Employee Cards", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-content--organization-summary", + "exportName": "OrganizationSummary", + "name": "Organization Summary", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-content--json-data-update", + "exportName": "JSONDataUpdate", + "name": "JSON Data Update", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-content--loading-empty-error", + "exportName": "LoadingEmptyError", + "name": "Loading / Empty / Error", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-content--responsive-container", + "exportName": "ResponsiveContainer", + "name": "Responsive Container", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "orgchart-content--multiple-instances", + "exportName": "MultipleInstances", + "name": "Multiple Instances", + "storyTags": [], + "effectiveTags": [ + "internal" + ], + "category": "UTILITY", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, { "file": "src/patterns/dashboard-layout.stories.tsx", "title": "Patterns/Layout/Dashboard", @@ -3886,6 +4315,21 @@ "decision": "KEEP", "candidate": null, "reason": "Representative story or distinct reference page." + }, + { + "id": "patterns-data-filter-bar--draft-applied", + "exportName": "DraftApplied", + "name": "Draft / Applied", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." } ] }, @@ -4516,6 +4960,780 @@ } ] }, + { + "file": "src/sw/sw-footer.stories.tsx", + "title": "SW/Footer", + "metaTags": [], + "stories": [ + { + "id": "sw-footer--full-footer", + "exportName": "FullFooter", + "name": "SW Footer", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-footer--tool-groups", + "exportName": "ToolGroups", + "name": "도구 그룹별 표시", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-footer--figma-variants", + "exportName": "FigmaVariants", + "name": "Figma 디자인별 Variant (35 노드)", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-footer--custom-content", + "exportName": "CustomContent", + "name": "도구 및 메뉴 변경 예제", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-footer--responsive", + "exportName": "Responsive", + "name": "Responsive More", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-footer--parts", + "exportName": "Parts", + "name": "개별 부품 (조합용)", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/sw/sw-header-dropdown.stories.tsx", + "title": "SW/Header", + "metaTags": [], + "stories": [ + { + "id": "sw-header--composed-controls", + "exportName": "ComposedControls", + "name": "Dropdown", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/sw/sw-header-home-menu.stories.tsx", + "title": "SW/Header", + "metaTags": [], + "stories": [ + { + "id": "sw-header--home-menu", + "exportName": "HomeMenu", + "name": "Home Menu", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-header--home-menu-capture-default", + "exportName": "HomeMenuCaptureDefault", + "name": "Home Menu · 비교 캔버스 · Default", + "storyTags": [ + "!autodocs", + "verification" + ], + "effectiveTags": [ + "!autodocs", + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--home-menu-header-composition", + "exportName": "HomeMenuHeaderComposition", + "name": "Home Menu · Header 조합 · 로고 클릭", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--home-menu-dynamic-data", + "exportName": "HomeMenuDynamicData", + "name": "Home Menu · Props · 데이터 변경", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--home-menu-standalone", + "exportName": "HomeMenuStandalone", + "name": "Home Menu · 단독 사용 · 조합형", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--home-menu-property-bar-check", + "exportName": "HomeMenuPropertyBarCheck", + "name": "Home Menu · 속성Bar 비교 (26:10492)", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--home-menu-capture-property-bar", + "exportName": "HomeMenuCapturePropertyBar", + "name": "Home Menu · 비교 캔버스 · 속성Bar", + "storyTags": [ + "!autodocs", + "verification" + ], + "effectiveTags": [ + "!autodocs", + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--home-menu-integration", + "exportName": "HomeMenuIntegration", + "name": "Home Menu · 통합 · Popup · Escape", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--home-menu-capture-responsive", + "exportName": "HomeMenuCaptureResponsive", + "name": "Home Menu · 비교 캔버스 · 반응형", + "storyTags": [ + "!autodocs", + "verification" + ], + "effectiveTags": [ + "!autodocs", + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/sw/sw-header-open.stories.tsx", + "title": "SW/Header", + "metaTags": [], + "stories": [ + { + "id": "sw-header--document-open", + "exportName": "DocumentOpen", + "name": "Document Open", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--hidden-sub-controls", + "exportName": "HiddenSubControls", + "name": "Hidden Sub Controls", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/sw/sw-header.stories.tsx", + "title": "SW/Header", + "metaTags": [], + "stories": [ + { + "id": "sw-header--detail-buttons", + "exportName": "DetailButtons", + "name": "Detail Buttons (Shared States)", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--overview", + "exportName": "Overview", + "name": "SW Header", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-header--interactive-states", + "exportName": "InteractiveStates", + "name": "Interactive States", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--window-move-motion", + "exportName": "WindowMoveMotion", + "name": "Window Move Motion", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--logo-slot", + "exportName": "LogoSlot", + "name": "Logo", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-header--document-dropdown", + "exportName": "DocumentDropdown", + "name": "Document Dropdown", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-header--responsive-more", + "exportName": "ResponsiveMore", + "name": "Responsive More", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-header--k-guide", + "exportName": "KGuide", + "name": "K Guide", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/sw/sw-popup.stories.tsx", + "title": "SW/Popup", + "metaTags": [], + "stories": [ + { + "id": "sw-popup--custom-content", + "exportName": "CustomContent", + "name": "Custom Content", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-popup--multiple-popups", + "exportName": "MultiplePopups", + "name": "Multiple Popups", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/sw/sw-process-header.stories.tsx", + "title": "SW/Step Header", + "metaTags": [], + "stories": [ + { + "id": "sw-step-header--process-header", + "exportName": "ProcessHeader", + "name": "Step Header", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-step-header--responsive", + "exportName": "Responsive", + "name": "Responsive More", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-step-header--split-open", + "exportName": "SplitOpen", + "name": "화면 분할", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-step-header--multi-step", + "exportName": "MultiStep", + "name": "Multi Step", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-step-header--fixed-widths", + "exportName": "FixedWidths", + "name": "Fixed Widths", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-step-header--process-bar", + "exportName": "ProcessBar", + "name": "Process Bar", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-step-header--multi-step-many-groups", + "exportName": "MultiStepManyGroups", + "name": "Multi Step · Many Groups", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-step-header--multi-step-many-steps", + "exportName": "MultiStepManySteps", + "name": "Multi Step · Many Steps", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-step-header--states", + "exportName": "States", + "name": "States", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": "MERGE_CANDIDATE", + "reason": "Representative board may cover the same specimen; keep direct QA until behavioral equivalence is reviewed." + }, + { + "id": "sw-step-header--theme-override", + "exportName": "ThemeOverride", + "name": "Theme Override", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/sw/sw-property-panel.stories.tsx", + "title": "SW/Popup", + "metaTags": [], + "stories": [ + { + "id": "sw-header--property-panel-compare", + "exportName": "PropertyPanelCompare", + "name": "Property Panel", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + } + ] + }, + { + "file": "src/sw/sw-theme.stories.tsx", + "title": "SW/Theme", + "metaTags": [], + "stories": [ + { + "id": "sw-theme--theme-inheritance", + "exportName": "ThemeInheritance", + "name": "Theme Inheritance", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, + { + "file": "src/sw/sw-viewer.stories.tsx", + "title": "SW/Viewer", + "metaTags": [], + "stories": [ + { + "id": "sw-viewer--viewer-header", + "exportName": "ViewerHeader", + "name": "Viewer Header", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-viewer--menu-groups", + "exportName": "MenuGroups", + "name": "Menu Groups", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-viewer--states", + "exportName": "States", + "name": "Item States", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": "MERGE_CANDIDATE", + "reason": "Representative board may cover the same specimen; keep direct QA until behavioral equivalence is reviewed." + }, + { + "id": "sw-viewer--dropdowns", + "exportName": "Dropdowns", + "name": "Header + Dropdown", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-viewer--settings-panel", + "exportName": "SettingsPanel", + "name": "Settings Popup", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-viewer--content-variants", + "exportName": "ContentVariants", + "name": "Settings Popup", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-viewer--variable-size", + "exportName": "VariableSize", + "name": "Variable Size Popups", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + }, + { + "id": "sw-viewer--logo", + "exportName": "Logo", + "name": "Logo", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-viewer--responsive", + "exportName": "Responsive", + "name": "Responsive More", + "storyTags": [], + "effectiveTags": [], + "category": "PRIMARY", + "decision": "KEEP", + "candidate": null, + "reason": "Representative story or distinct reference page." + }, + { + "id": "sw-viewer--compare-with-sw-header", + "exportName": "CompareWithSWHeader", + "name": "SWHeader vs Viewer Header", + "storyTags": [ + "verification" + ], + "effectiveTags": [ + "verification" + ], + "category": "VERIFICATION", + "decision": "HIDE", + "candidate": null, + "reason": "Keep direct URL and tag-filter access; excluded from default sidebar." + } + ] + }, { "file": "src/theme/designer-theme.stories.tsx", "title": "Theme/Designer Playground",