Skip to content

feat(ui): add Curriculum course layout component#149

Open
bntvllnt wants to merge 5 commits intofeat/storybookfrom
feat/issue-20-feat-component-curriculum-course-layout
Open

feat(ui): add Curriculum course layout component#149
bntvllnt wants to merge 5 commits intofeat/storybookfrom
feat/issue-20-feat-component-curriculum-course-layout

Conversation

@bntvllnt
Copy link
Copy Markdown
Collaborator

Summary

  • add a new Curriculum component family for structured course and syllabus layouts
  • ship collapsible modules, lesson status/difficulty/duration badges, prerequisite hints, and auto-calculated module progress
  • add Storybook, unit coverage, and Playwright component snapshots for the new educational layout

Validation

  • pnpm -F @vllnt/ui exec eslint src/components/index.ts src/components/curriculum/index.ts src/components/curriculum/curriculum.tsx src/components/curriculum/curriculum.test.tsx --max-warnings 0 --no-warn-ignored
  • pnpm -F @vllnt/ui exec vitest run src/components/curriculum/curriculum.test.tsx
  • pnpm -F @vllnt/ui exec tsx scripts/verify-stories.ts
  • pnpm -F @vllnt/ui exec playwright test -c playwright-ct.config.ts src/components/curriculum/curriculum.visual.tsx --update-snapshots
  • pnpm -F @vllnt/ui build

Closes #20

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 25, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
storybook Ready Ready Preview, Comment Apr 25, 2026 8:30am
ui.vllnt.ai Ready Ready Preview, Comment Apr 25, 2026 8:30am

Request Review

@bntvllnt
Copy link
Copy Markdown
Collaborator Author

bntvllnt commented Apr 25, 2026

Auto-fix status — 2026-04-25

Current status: ready for final human review. Draft removed after fixing the SSR/first-paint progress blocker.

What I changed in this pass

  • pushed 7691afdfix(ui): compute curriculum progress during render
  • replaced hydration-time lesson registration with render-time structural progress summarization so module counts/progress are correct on SSR and first paint
  • added a server-render regression test to lock the first-render progress behavior

Blockers

  • none

Validation summary

  • pnpm -F @vllnt/ui exec eslint src/components/curriculum/curriculum.tsx src/components/curriculum/curriculum.test.tsx --max-warnings 0
  • pnpm -F @vllnt/ui exec vitest run src/components/curriculum/curriculum.test.tsx
  • pnpm -F @vllnt/ui exec tsx scripts/verify-stories.ts
  • pnpm -F @vllnt/ui exec playwright test -c playwright-ct.config.ts src/components/curriculum/curriculum.visual.tsx
  • pnpm -F @vllnt/ui exec tsc --noEmit --project tsconfig.build.json
  • pnpm -F @vllnt/ui build
  • pnpm -F @vllnt/ui test:once
  • ⚠️ pnpm -F @vllnt/ui test:visual is not currently authoritative from this review worktree because Playwright generated many missing baseline snapshots outside the curriculum scope; the targeted curriculum visual test above passed.

Claude review result

  • No blocking findings on the live diff vs feat/storybook.
  • Non-blocking warns only: dead CurriculumLesson.id prop, redundant hidden + aria-hidden, non-semantic div aria-label, fixed h2 heading level, and a mostly-dead useMemo(children) optimization.

Codex review result

  • Unavailable in this run: OPENAI_API_KEY is unset, so Codex CLI review was intentionally skipped.

Action for bntvllnt

  • Final human review + merge decision only. The SSR progress blocker is fixed and this PR is ready for manual review.

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.

1 participant