feat(dashboard): improve student course sidebar navigation (#814)

* docs(prototypes): add course sidebar navigation HTML prototypes

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* docs(prototypes): add downloadable zip for course sidebar mockups

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* feat(dashboard): improve student course sidebar navigation

Collapse all sections except the active one for students, show section
completion as counts (e.g. 3/4), and replace the footer progress card with
prev/next controls plus a thin progress bar.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* fix(dashboard): address PR review and remove sidebar prototypes

Remove HTML prototype files from the PR. Match content IDs as exact path
segments for active-item resolution, and use content-neutral prev/next labels.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* fix(dashboard): keep ClassroomIO brand untranslated in powered-by footer

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* fix(dashboard): restore progress summary in course sidebar footer

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* fix(dashboard): move progress bar below summary in sidebar footer

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* feat(course): add mobile student bottom nav with outline sheet

Implement prototype 3 mobile navigation for course learners: a fixed
bottom bar with progress ring, prev/next controls, and a sheet showing
the progress card plus collapsible course outline with scroll-to-active.

Extends public-course UI primitives (ring bottom nav, collapsible
sidebar sections, mobile sheet progress slot) and wires them into the
authenticated course layout for isCourseLearnerView on lesson/exercise
routes. Hides duplicate header prev/next and progress popover on mobile.

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

* fix(course): address review feedback and exclude prototypes

- Add .coderabbit.yaml and .greptile/config.json to skip prototypes/**
- Document prototypes/ as out-of-scope in AGENTS.md and Greptile rules
- Render locked mobile outline rows without href navigation targets
- Replace nested IconButton in collapsible section trigger with chevron icon
- Reset public-course sidebar section collapse on every mobile sheet reopen

Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>

---------
This commit is contained in:
Rotimi Best
2026-08-19 11:52:58 +01:00
committed by GitHub
co-authored by Rotimi Best
parent bf3a7e7057
commit 55ae6dd4fe
38 changed files with 1157 additions and 193 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"ignorePatterns": "prototypes/**\n**/*.lock\n**/dist/**\n**/node_modules/**"
}
+4
View File
@@ -2,6 +2,10 @@
Repo-specific conventions for code review. See https://www.greptile.com/docs/code-review/custom-standards.
## Out of scope for review
The `prototypes/` directory contains standalone HTML/CSS design mocks and exploration artifacts. They are **not** part of the shipped application and should not receive production code review feedback (navigation semantics, a11y, idempotency, etc.). Skip these paths entirely.
## One-time admin/ops scripts (`packages/db/src/scripts/**`)
These are manual, operator-invoked, run-once maintenance scripts (backfills, notifications, migrations). They are **not** part of the request/runtime path.