diff --git a/src/components/islands/GuideSelector.astro b/src/components/islands/GuideSelector.astro new file mode 100644 index 0000000..42e4528 --- /dev/null +++ b/src/components/islands/GuideSelector.astro @@ -0,0 +1,283 @@ +--- +// 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; +--- + + + + + + +