feat: integrate latest HMDesign design system updates
This commit is contained in:
1 parent
99faec189e
commit
1c4e0bb9a1
209 files changed
+8845
-552
No files matched your search
@@ -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 }
|
||||
})
|
||||
|
||||
Reference in new issue
Block a user