posimai-boki/js
posimai 2255ec55c8 fix: address review findings — icons, a11y, quiz state, SW, scores
- C-1: move saveScore() out of resultScore getter into _onAllAnswered
       to prevent repeated localStorage writes on every reactive access
- C-2: $watch('search') → createIcons() so sidebar Lucide icons are
       re-converted after x-for re-render on search filter/clear
- T-8: replace x-show Lucide <i> chevrons with inline SVG in
       .concept-chevron-wrap; Alpine x-show was orphaned after
       createIcons() replaced <i> with <svg>, causing stale display
- H-1: remove quizState={} from stepGoBack() Step3 branch so going
       back no longer silently destroys quiz answers
- H-2: add role=button tabindex=0 and Enter/Space keydown handlers to
       sidebar-item divs for keyboard navigation
- M-3: move skipWaiting() inside Promise.all in install waitUntil
- M-4: return 503 Response in SW fetch catch when cache also unavailable
- M-6: call saveScore() in nextWeakDrillUnit() so weak-drill results
       persist to localStorage the same as regular quiz
- UI:  fix .unit-cat-badge vertical misalignment in flex badge-row
       (was display:inline-block margin-bottom:6px, now inline-flex)
- SW:  bump cache version to v19 to retire old worker

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 21:36:27 +09:00
..
data refactor: split curriculum data to js/data, Alpine app to js/app.js, sanitize HTML with DOMPurify 2026-04-19 15:40:09 +09:00
app.js fix: address review findings — icons, a11y, quiz state, SW, scores 2026-04-19 21:36:27 +09:00