freezmo/components
Martin Dvorak 8557b04621 Navigation restructure: five-tab bottom bar, no phone drawer
Drawer removed (phones only; desktop rail untouched)
- MobileSidebar, sidebarOpen/useSidebarOpen, MenuIcon and the drawer's
  back-gesture layer are gone; the shared nav content now serves only
  the desktop rail (dead mobile branches deleted). No drawer-specific
  CSS existed; the three drawer strings (header.openMenu,
  sidebar.closeMenu, common.menu) and library.importAria are removed.
- The header drops the hamburger: logo + name on the left, the single
  theme chip on the right.

Five-tab bottom bar
- Library / Progress / New deck (prominent centre +) / Exam / Settings,
  in that order; Progress and Exam reuse the existing /stats and /exam
  screens, Settings keeps opening the dialog. Sliding pill, icon bounce,
  press feedback, re-tap-to-top and safe-area padding kept; every item
  is >=44px (72px wide at 360px).
- New short tab.* keys (EN + CS) so all five labels stay on one line at
  360px — 'Zkouškový režim' became 'Zkouška'. No ellipsis anywhere.
- The bar is mounted once in AppHeader so library, progress, exam and
  share get it; the wizards keep their own bottom action bar and the
  tab bar steps aside there, exactly as before.

Re-homed drawer destinations
- Smart Review card loses the Exam link (it is a tab now); Review due
  and Mistakes stay.
- New deck screen (and /homework) get a Study deck / Make my homework
  segmented switch; the library's homework empty-state button stays.
- The phone import icon becomes a ... button opening a sheet with
  Import JSON and New folder (back-gesture and Escape close it); folder
  chips still appear only once at least one folder exists, and folder
  creation stays in the New deck options step.

Verified: mobile suite 134 checks (no hamburger/drawer, tab order and
44px targets, label matrix at 360/390 x EN/CS x dark/light x reduced
motion, per-tab routing, deep links, Back from every tab, the ... sheet
with folder creation) plus regression 74/74, wizard 83/83, declutter
116/116, animation 8/8, native 35/35, i18n 25/25, phase1 38/38, phase2
43/43, phase3 20/20, freeze-loading 6/6. Key parity 740/740. Lint +
build clean. SW freezmo-v28.
2026-10-10 16:53:55 +00:00
..
activities Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
exam Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
homework Phase 3: Check my work, follow-ups and turn-into-deck 2026-10-10 14:36:04 +00:00
ApiKeyGate.tsx Add an English/Czech interface language switch 2026-10-08 13:56:32 +00:00
AppHeader.tsx Navigation restructure: five-tab bottom bar, no phone drawer 2026-10-10 16:53:55 +00:00
DataSection.tsx Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
DeckCard.tsx Native-feel pass: PWA integration, system back, offline, haptics, undo 2026-10-10 12:16:03 +00:00
FolderBar.tsx Mobile UI pass: sheet swipe, ice-scene layering, contrast, touch targets 2026-10-08 17:37:51 +00:00
HomeworkCard.tsx Phase 3: Check my work, follow-ups and turn-into-deck 2026-10-10 14:36:04 +00:00
IceBackdrop.tsx Frosted ice glass restyle 2026-10-08 10:11:55 +00:00
icons.tsx Navigation restructure: five-tab bottom bar, no phone drawer 2026-10-10 16:53:55 +00:00
InstallSheet.tsx Native-feel pass: PWA integration, system back, offline, haptics, undo 2026-10-10 12:16:03 +00:00
LearningSection.tsx Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
LibraryScreen.tsx Navigation restructure: five-tab bottom bar, no phone drawer 2026-10-10 16:53:55 +00:00
ModelErrorActions.tsx Phase 1: backup, encrypted sync and monthly-usage handling 2026-10-10 13:43:42 +00:00
OfflineBanner.tsx Native-feel pass: PWA integration, system back, offline, haptics, undo 2026-10-10 12:16:03 +00:00
ResultsScreen.tsx Animation pass: one shared motion language for phones 2026-10-10 11:01:29 +00:00
ReviewClient.tsx Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
RouteTransition.tsx Animation pass: one shared motion language for phones 2026-10-10 11:01:29 +00:00
SegmentedPill.tsx Animation pass: one shared motion language for phones 2026-10-10 11:01:29 +00:00
ServiceWorkerRegistrar.tsx Freezmo: self-hosted notes-to-activities study app 2026-10-06 20:56:55 +00:00
SessionFeed.tsx Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
SettingsDialog.tsx Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
ShareChooser.tsx Phase 1: backup, encrypted sync and monthly-usage handling 2026-10-10 13:43:42 +00:00
Sidebar.tsx Navigation restructure: five-tab bottom bar, no phone drawer 2026-10-10 16:53:55 +00:00
StatsScreen.tsx Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
StudyFeed.tsx Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
SyncSection.tsx Phase 1: backup, encrypted sync and monthly-usage handling 2026-10-10 13:43:42 +00:00
TabBar.tsx Navigation restructure: five-tab bottom bar, no phone drawer 2026-10-10 16:53:55 +00:00
ThemeToggle.tsx Phase 1: backup, encrypted sync and monthly-usage handling 2026-10-10 13:43:42 +00:00
Toaster.tsx Native-feel pass: PWA integration, system back, offline, haptics, undo 2026-10-10 12:16:03 +00:00
ui.tsx Animation pass: one shared motion language for phones 2026-10-10 11:01:29 +00:00
UploadScreen.tsx Navigation restructure: five-tab bottom bar, no phone drawer 2026-10-10 16:53:55 +00:00
WizardActionBar.tsx Wizard polish: step headlines, gated Next, real summary, portal action bar 2026-10-10 11:35:45 +00:00
WizardModeSwitch.tsx Navigation restructure: five-tab bottom bar, no phone drawer 2026-10-10 16:53:55 +00:00