feat: integrate latest HMDesign design system updates

This commit is contained in:
DESKTOP-KPCP6AL\ㅅㅎ committed 2026-10-11 11:09:03 +09:00
1 parent 99faec189e
commit 1c4e0bb9a1
209 files changed
+8845 -552

No files matched your search

+3 -3
View File
@@ -5,7 +5,7 @@ import { loadCsf } from 'storybook/internal/csf-tools'
// Run from the Track B root: node .storybook/qa/generate-inventory.mjs
// Only writes Storybook documentation; never renames or removes stories.
const root = process.cwd()
if (path.basename(root) !== 'HMDesignSystem-storybook') throw new Error('Run only from Track B')
if (!fs.existsSync(path.join(root, '.storybook/main.ts'))) throw new Error('Run from the HMDesign repository root')
const walk = dir => fs.readdirSync(dir, { withFileTypes: true }).flatMap(e => e.isDirectory() ? walk(path.join(dir, e.name)) : [path.join(dir, e.name)])
const files = walk(path.join(root, 'src')).filter(f => /\.stories\.tsx?$/.test(f)).sort()
const inventory = files.map(file => {
@@ -17,9 +17,9 @@ const inventory = files.map(file => {
const storyTags = story.tags ?? []
const effectiveTags = [...new Set([...metaTags, ...storyTags])]
const utility = /Playground|Compatibility/.test(exportName) || /Verification$/.test(exportName) || exportName === 'Verification'
const category = utility ? 'UTILITY' : effectiveTags.includes('verification') ? 'VERIFICATION' : 'PRIMARY'
const category = utility || effectiveTags.includes('internal') ? 'UTILITY' : effectiveTags.includes('verification') ? 'VERIFICATION' : 'PRIMARY'
const duplicateCandidate = effectiveTags.includes('verification') && /^(Default|Sizes|Roles|Variants|States|Basic|Selected|Disabled|Horizontal|Vertical)$/.test(exportName)
return { id: story.id, exportName, name: story.name, storyTags, effectiveTags, category, decision: effectiveTags.includes('verification') ? 'HIDE' : 'KEEP', candidate: duplicateCandidate ? 'MERGE_CANDIDATE' : null, reason: duplicateCandidate ? 'Representative board may cover the same specimen; keep direct QA until behavioral equivalence is reviewed.' : effectiveTags.includes('verification') ? 'Keep direct URL and tag-filter access; excluded from default sidebar.' : 'Representative story or distinct reference page.' }
return { id: story.id, exportName, name: story.name, storyTags, effectiveTags, category, decision: effectiveTags.some(tag => ['verification', 'internal'].includes(tag)) ? 'HIDE' : 'KEEP', candidate: duplicateCandidate ? 'MERGE_CANDIDATE' : null, reason: duplicateCandidate ? 'Representative board may cover the same specimen; keep direct QA until behavioral equivalence is reviewed.' : effectiveTags.some(tag => ['verification', 'internal'].includes(tag)) ? 'Keep direct URL and tag-filter access; excluded from default sidebar.' : 'Representative story or distinct reference page.' }
})
return { file: path.relative(root, file).replaceAll('\\', '/'), title, metaTags, stories }
})