bayan-api / tests /audit_final_report.md
youssefreda9's picture
Fix 30 NLP edge cases in Grammar, Spelling, and Punctuation (Phase 10 results and Extension UI improvements)
be32617
|
Raw
History Blame Contribute Delete
5.45 kB

Bayan Extension Parity Audit — Final Report

Changes Made

1. sidepanel.js — P0 Syntax Error + Missing Handlers

File: extension/sidepanel/sidepanel.js

  • Fixed orphaned function body at line 759: Added missing function addApplyPageButton(anchorBtn, getText, source) { declaration
  • Then removed the dead function entirely — it was an abandoned programmatic approach; the actual buttons exist in sidepanel.html
  • Added missing btnApplySummary click handler — button was referenced and unhidden on success but never had an event listener
  • Added missing btnApplyQuran click handler — same issue

2. popup.css — Design System Realignment

File: extension/popup.css

Remapped all --bayan-* tokens from hardcoded indigo/harsh-red values to website tokens.css references:

Token Before After
--bayan-primary #6366f1 (indigo) var(--color-primary, #6BA3E0) (blue)
--bayan-primary-dark #4f46e5 #5A8FCA
--bayan-primary-glow rgba(99,102,241,0.25) var(--focus-ring)
--bayan-spelling #ef4444 var(--highlight-spelling-border, #E88A8A)
--bayan-grammar #f59e0b var(--highlight-grammar-border, #E4B35A)
--bayan-success #22c55e var(--color-success, #6BC98A)
--bayan-warning #f59e0b var(--color-warning, #E4B35A)
--bayan-error #ef4444 var(--color-error, #E88A8A)
--bayan-text-muted #6b6b80 var(--color-text-muted, #8A939F)
--bayan-font-arabic 'Noto Sans Arabic', 'Segoe UI' var(--font-family-primary, 'Cairo', 'Tajawal')

Fixed hardcoded rgba() values in error highlights, badges, and button shadows to match website palette.

Added --color-surface-hover alias (maps to --color-surface-elevated).

3. popup.html — Added tokens.css + Cairo Font

File: extension/popup.html

  • Added <link rel="stylesheet" href="shared/css/tokens.css"> before popup.css — enables proper theme token resolution and dark/light switching
  • Added Google Fonts preconnect + Cairo font import

4. sidepanel.html — Added tokens.css + Cairo Font

File: extension/sidepanel/sidepanel.html

  • Same additions as popup.html — now both extension views load the shared design tokens

5. content-inline.css — Full Color Palette Alignment

File: extension/content-inline.css

Bulk-replaced all divergent colors across the entire file (~50 occurrences):

Before After Count
#ef4444 #E88A8A All spelling error colors
#f59e0b #E4B35A All grammar error colors
#6366f1 #6BA3E0 All primary/accent colors
#4f46e5 #5A8FCA All primary-dark variants
#22c55e #6BC98A All success colors
#818cf8 #8BB8E8 Primary-light variant
rgba(239,68,68,*) rgba(232,138,138,*) Spelling rgba
rgba(245,158,11,*) rgba(228,179,90,*) Grammar rgba
rgba(99,102,241,*) rgba(107,163,224,*) Primary rgba
#1a1a24 #1A1D26 Surface color
#22222e #242833 Elevated surface
#f0f0f5 #ECEEF2 Text color
#6b6b80 #8A939F Muted text
#9898ad #B4BBC6 Secondary text

Added Cairo as first-choice font in tooltip/modal font stacks.

6. popup.js — Dead Code Cleanup

File: extension/popup.js

  • Removed unused btnApplySummary, btnApplyDialect, btnApplyQuran declarations (elements don't exist in popup.html)
  • Removed dead btnApplyDialect click handler that referenced undefined writeBackToPage and sourceSelectionText
  • Removed dead btnApplySummary.classList.remove('is-hidden') and btnApplyDialect.classList.remove('is-hidden') calls

Files Modified

File Changes
extension/sidepanel/sidepanel.js Fixed syntax error, added missing handlers, removed dead function
extension/popup.css Full design token realignment to website palette
extension/popup.html Added tokens.css + Cairo font loading
extension/sidepanel/sidepanel.html Added tokens.css + Cairo font loading
extension/content-inline.css Replaced ~50 hardcoded color values with website-matching palette
extension/popup.js Removed dead code referencing non-existent elements/functions

Files NOT Modified (by design)

File Reason
src/js/renderer.js Per user constraint — do not touch
src/js/selection.js Per user constraint — do not touch
src/css/tokens.css Source of truth — no changes needed
extension/sidepanel/sidepanel.css Already properly aligned with website tokens
extension/background.js Clean, no issues found
extension/manifest.json Clean, properly configured
extension/shared/* Identical to website files — no changes needed

Remaining Considerations

  1. ext-init.js (both copies) — Dead untracked files referencing non-existent elements. Not loaded by any HTML or manifest entry. Can be deleted at will.
  2. popup.js / sidepanel.js duplication — ~60% shared logic. A future refactor could extract shared functions into a module, but this is a P3 concern that doesn't affect functionality.
  3. Content script Cairo font — Added as first-choice but depends on host page having it loaded. Degrades gracefully to system fonts.