PR #69: feat/lesson-nav-hexlet-style
UI-правки тренажёра по итогам созвона 14.07 · Задача №1 из 3 · Ориентир: Хекслет
Изменения
✓1. Убрать кнопку «Назад»
LessonSideNav теперь рендерит только кнопку «Далее». Логика навигации вперёд сохранена полностью.
Удалён вызов lessonFooterPrev и импорт из lesson-units.
На десктопе (aside-nav) и мобилке (footer-nav-mobile-only) — нет «Назад» нигде.
lesson/LessonSideNav.tsx
lesson/__tests__/LessonSideNav.test.tsx
✓2. Убрать переключатель Теория/Квиз/Практика
LessonStepper убран из LessonLayout в обоих местах (focus и non-focus режим).
Переходы Теория→Квиз→Практика→следующий урок продолжают работать через «Далее».
Мобильные вкладки «Условие/Код/Вывод» внутри практики не затронуты.
lesson/LessonLayout.tsx
✓3. Правый TOC-сайдбар теории с H2-якорями
На странице теории справа от колонки появляется sticky-оглавление по H2. Клик → smooth scroll к разделу.
Показывается только если H2 ≥ 2. На мобилке ≤860px скрыт (grid single-column).
H2 в markdown получают id через кастомный рендерер в markdownComponents.
Ширина 70ch и центрирование 52rem (PR #56, #68) не затронуты.
lib/theory-headings.ts (новый)
lesson/LessonTheoryToc.tsx (новый)
lesson/LessonTheoryStep.tsx
lesson/LessonTheoryContent.tsx
lib/markdown-components.tsx
styles/global.css
Проверки
✅pnpm test — 148/148 тестов зелёных
✅pnpm -r typecheck — 4 пакета (shared, web, runner, api) без ошибок
✅LessonSideNav.test.tsx обновлён: тесты «Назад» заменены на проверки отсутствия
✅Не затронуты: fix #56 (max-width:100% lesson-main-body), fix #68 (lesson-main-column центр)
✅Мобильные вкладки практики (Условие/Код/Вывод) не изменены
📸 Playwright-скрины ДО/ПОСЛЕ (desktop 1280/1440 + mobile 360/414) сохранены в /tmp/education-platform/screenshots/before-nav-*.png и after-nav-*.png.
Скрины зафиксированы до коммита из локальной сборки. Встроенные изображения не публикуются в git (gitignored).
→ PR #69 на GitHub