Skip to content

feat(docs): per-chart reference pages + auto prop tables + CI deploy (#128)#144

Merged
Ben Severn (benzsevern) merged 1 commit into
mainfrom
feat/128-docs-site-phase-2
Jun 5, 2026
Merged

feat(docs): per-chart reference pages + auto prop tables + CI deploy (#128)#144
Ben Severn (benzsevern) merged 1 commit into
mainfrom
feat/128-docs-site-phase-2

Conversation

@benzsevern

Copy link
Copy Markdown
Collaborator

What

Phase 2 of the docs site, building on the phase-1 Starlight scaffold (#135). Delivers the per-chart reference pages, auto-generated prop tables, galleries, and the CI build + Pages deploy from the issue.

Highlights

  • Reference pages for every chart (9) and diagram (8) + AutoChart, each with runnable examples and a prop table.
  • Auto-generated prop tables (the user-chosen approach): docs-site/scripts/gen-props.mjs runs react-docgen-typescript over src/components at build time, keeps our own props (inherited BaseChartProps included, React DOM attrs filtered), and emits src/generated/props.json that a new <PropTable> Astro component renders. Zero drift from the real TS types. gen:props runs ahead of every dev/build; the generated JSON is gitignored.
  • Index + galleries: every component linked from the landing page via LinkCard grids; new brand gallery alongside the existing vibe gallery.
  • CI: new docs job builds the site on every PR. deploy-pages.yml now assembles a combined artifact — playground at the site root, docs under /docs — so both ship together.

Drive-by fix (surfaced, not silent)

The root .gitignore had a bare gallery rule (for the generated repo-root render dir) that also matched docs-site/.../gallery/ — so phase 1's gallery/vibes.md was silently never committed, and the Vibes sidebar link would 404 on the live site. Anchored the rule to /gallery (+ /nl-examples) and committed the rescued vibes.md next to the new brands.md.

Verify

  • npm run docs:build clean — 28 pages.
  • Every <PropTable component="X"> resolves (the component throws on a missing entry, so the build is the guard).
  • Full internal-link sweep over the built site: 0 broken targets.
  • Library + mcp CI gates untouched; new docs job added to ci.yml.

Acceptance check (#128)

  • docs:dev / docs:build scripts (build now also runs prop generation)
  • ✅ CI builds docs on PRs; deploys on main alongside the playground
  • ✅ All chart components linked from the docs index
  • ✅ Per-chart pages with auto-generated prop tables off TS types
  • ✅ Vibe gallery (rescued) + brand gallery

Closes #128

🤖 Generated with Claude Code

…128)

Phase 2 of the docs site. Builds on the phase-1 Starlight scaffold (#135).

Reference pages: every chart (9) and diagram (8) plus AutoChart now has a
page with runnable examples and a prop table. The tables are
AUTO-GENERATED from the library's TypeScript types — a build-time script
(docs-site/scripts/gen-props.mjs) runs react-docgen-typescript over
src/components, keeps our own props (BaseChartProps inherited, React DOM
attrs dropped), and writes src/generated/props.json that the new
<PropTable> Astro component renders. So the tables can't drift from the
real props. gen:props is wired ahead of every dev/build.

Also: a brand gallery page, every component linked from the index via
LinkCard grids, a CI `docs` job that builds the site on PRs, and a
combined Pages deploy that puts the playground at the site root and the
docs under /docs.

Drive-by fix: the root .gitignore had a bare `gallery` rule (for the
generated repo-root render dir) that also matched
docs-site/.../gallery/, so phase 1's gallery/vibes.md was silently never
committed — the Vibes sidebar link would 404 on the live site. Anchored
the rule to `/gallery` (+ `/nl-examples`) and committed the rescued
vibes.md alongside the new brands.md.

Verified: `npm run docs:build` clean (28 pages); every <PropTable>
resolves (build throws otherwise); full internal-link sweep shows 0
broken targets.

Closes #128

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@benzsevern Ben Severn (benzsevern) merged commit 0e0b903 into main Jun 5, 2026
6 checks passed
@benzsevern Ben Severn (benzsevern) deleted the feat/128-docs-site-phase-2 branch June 5, 2026 07:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs site: per-chart prop tables + live examples (beyond playground + API.md)

1 participant