--- // GuideSelector — one client:visible controller for the nine independent // selectors on /full-guide/. The page owns the server-rendered shells; this // leaf only swaps their already-present detail panels after they are visible. interface Localized { en: string; pt: string; } interface GuideSelectorData { phases: Record; workers: Record; trees: Record; routes: Record; providers: Record< string, { label: string; source: string; title: Localized; copy: Localized; tiers: [string, string, Localized][]; config: string; } >; efforts: Record; skillFiles: Record; skillWorkflow: Record< string, { number: string; title: Localized; question: Localized; action: Localized; output: Localized; proof: Localized; } >; commonSkills: Record< string, { number: string; kind: Localized; title: string; rule: Localized; use: Localized; example: Localized; caution: Localized; source: string; } >; labels: { context: Localized; owner: Localized; reasoningLoad: Localized; officialSource: Localized; skillFileHint: Localized; workflow: { question: Localized; action: Localized; artifact: Localized; proof: Localized }; commonSkill: { whenToUse: Localized; example: Localized; watchOut: Localized; source: Localized; }; }; } interface Props { /** The page root that contains the nine static selector shells. */ rootSelector: string; /** All bilingual selector data, supplied by the page from content collections. */ data: GuideSelectorData; } const { rootSelector, data } = Astro.props; ---