/** * Design System registry — canonical inventory for docs routes. * Superset of `catalog-entries.ts`; drives `/design-system` skeleton pages. */ export type DesignSystemTier = | "token" | "component" | "pattern" | "template" | "example" | "rule" | "skill" | "agent" /** * Components share one public catalog kind, while this subtype distinguishes * leaf controls from reusable multi-component surfaces. Complexity alone does * not make an implementation a pattern. */ export type DesignSystemComponentType = "primitive" | "composition" export type DesignSystemDocStatus = /** Working preview on design-system or catalog page */ | "live" /** Registry + skeleton doc route only */ | "skeleton" /** Covered by legacy catalog split-pane only */ | "catalog" /** Listed for inventory; no doc surface yet */ | "planned" export interface DesignSystemRegistryEntry { /** URL segment — `/{product}/design-system/:slug` */ slug: string name: string tier: DesignSystemTier /** Applies to component rows only. Defaults to `primitive`. */ componentType?: DesignSystemComponentType /** Sidebar group within the tier (e.g. Forms, Overlays). */ group: string description: string /** Importable module path. Guidance entries may omit this. */ importPath?: string /** Repo path for maintainers. */ sourcePath?: string /** Legacy catalog row id when linked. */ catalogId?: string /** Live dogfood route under Design OS, e.g. `/columns`. */ routeSuffix?: string /** * Full path for a live example that is not mounted under a product root, e.g. * `/login`. Prefixing a shell-global route with the product base would point * at a page that does not exist. */ routeAbsolute?: string status: DesignSystemDocStatus /** When set, doc route redirects to parent slug; hidden from sidebar nav. */ parentSlug?: string keywords?: string } export const DESIGN_SYSTEM_TIER_LABEL: Record = { token: "Design tokens", component: "Components", pattern: "Patterns", template: "Templates", example: "Live examples", rule: "Cursor rules", skill: "Agent skills", agent: "Agent guides", } export const DESIGN_SYSTEM_COMPONENT_TYPE_LABEL: Record = { primitive: "Primitive", composition: "Composition", }