bayan-api / src /js

Commit History

  1. Audit fixes: narrow FIX-35 suffixes, raise FIX-37 threshold, remove duplicate sort⁠

    417db6e
  2. FIX-32b: Add missing reverse sort in applyAllSuggestions⁠

    1502667
  3. FIX-33/34/35: Fix infinite loop — grammar corruption + spelling conflict⁠

    03cd504
  4. FIX-32: Fix word duplication bug in website frontend⁠

    f1671d1

  1. feat: Complete ALL plan items — gradient tokens, nav scroll glow, focus rings, dropdown keyboard nav, color reset, network delay indicator

    7dcbabe
  2. fix: Correct toast types (warning/error) + analyze API error toast + cleanup

    b201fcd
  3. feat: Custom confirm dialog for doc delete + improved empty state component

    2cee1f0
  4. feat: Apply All button shows count + empty states already functional

    edade2f
  5. fix: add undo support for autocomplete suggestions

    85a2596
  6. fix: unified undo/redo - toolbar+keyboard use same stack, works with typing+formatting+Quran apply

    cc7b377
  7. fix: Ctrl+Z/Y undo/redo works with Arabic keyboard (e.code instead of e.key)

    bb8d753
  8. fix: placeholder no longer shows over quran-applied text

    6285a1c
  9. fix: quran text excluded from analysis models + styled ref + score preserved

    6453bf2
  10. feat: apply includes surah ref + quran-applied span protects from analysis models

    5bb4bf0
  11. fix: tooltip shows original→correction format instead of confusing label

    1052ad6
  12. UI: nav logo, bayyinah hover, quran icon, hero autocomplete shadow, clean tooltip, fix punctuation dup + hamza كان

    20a34f1
  13. Full UI/UX modernization: fix hero examples, pricing beta, Apply All cursor/format fix, design polish

    90d59e9

  1. feat: P1-P3 all 8 items - ta marbuta fix, UI feedback, caching, rate limiting, unit tests

    918deb4
  2. revert: remove auto re-analyze after apply - causes grammar/punctuation cycle⁠

    8fe9501
  3. fix: prevent analyze loop - skip redundant API calls when text unchanged

    5a4cea7
  4. fix: instant re-analyze after apply (direct analyzeText call, no debounce)

    bd81b49
  5. feat: P1-P3 improvements + auto re-analyze after apply⁠

    a2f1290
  6. fix(autocomplete): only trigger after space - no partial words

    5353bc3
  7. feat(autocomplete): threshold=0.05 + max 3 suggestions⁠

    bf57d15
  8. fix(autocomplete): 3 user-reported issues - last word only, dropdown position, cursor after accept

    a6aeadf
  9. fix(autocomplete): fix dropdown not showing - 3 critical bugs fixed

    2bb09e9
  10. feat(NLP-4): AutoComplete integration — hybrid bigram + GPT-2⁠

    d27ee08
  11. fix: QA sweep — 6 issues resolved (sidebar chips, corrected field, input sanitization, punc cap, docs, tests)⁠

    10ec354
  12. fix: Tooltip shows no correction buttons for grammar/punctuation — empty array is truthy in JS

    1afad28
  13. fix: Grammar retry on rate-limit + cursor position after correction⁠

    a52b4fe
  14. feat: Pipeline Hardening v3.3 — stage ownership, punctuation safety, UUID migration⁠

    a1c20fd

  1. feat: Complete UI/UX audit — all 20 fixes implemented Critical: - #1 Text duplication on consecutive apply (re-index spans) ✅ - #2 Apply All button (remove confirm() dialog, direct apply) ✅ - #3 Backend suggestion categorization (noted, minor) ✅ UX Fixes: - #4 Toolbar RTL verified correct ✅ - #5 Punctuation highlight: blinking insertion marker instead of bg ✅ - #6 Document title truncation with ellipsis ✅ - #7 Sidebar scrollable (score circle visible) ✅ - #8 Empty editor placeholder RTL alignment ✅ Design: - #9 Hero CTA button contrast (border 0.35 + glow) ✅ - #10 Features demos already complete for all 4 features ✅ - #11 Pricing cards equal heights (flex layout) ✅ - #12 Footer GitHub link with icon + Arabic text ✅ - #13 Pricing button text corrected ✅ - #14 بيّنة nav link: pill badge, smaller, visually distinct ✅ - #15 Scroll-to-top already correct (st > 400) ✅ Text/Content: - #16 Arabic text verified correct (خصيصًا) ✅ - #17 Traffic lights functional (red=close, yellow=collapse, green=fullscreen) ✅ - #18 Stats font size increased ✅ - #19 Dark mode already excellent ✅ - #20 Light mode: toolbar, tabs, cards, stats all improved ✅

    23b1721
  2. fix: UI/UX audit fixes (10 items addressed) Critical: - Fix text duplication on consecutive suggestion apply (re-index spans) - Suggestion list now updates after apply (counters + cards refresh) UX Fixes: - Sidebar scrollable (score circle always accessible) - Suggestions max-height reduced: 420→320px - Stat items: larger font + better contrast in dark mode Text: - Pricing: 'الترقية للاحترافي' → 'الترقية للخطة الاحترافية' Undo/Redo: - formatUndo/Redo now use custom stack (unified) - Formatting commands save undo state before applying - Typing tracked via debounced pushUndoStateDebounced

    9eaed94
  3. fix: New document starts empty instead of inheriting old content Previously createDocument() used getEditorText() to save current content into the new doc. Now it creates with empty string and calls loadDocumentText('') to clear the editor.

    37fc5f3
  4. fix: Strip HTML formatting on paste into editor - Added paste event handler that converts clipboard to plain text - Prevents rich text styling (colors, opacity, fonts) from being carried over - Preserves paragraph structure with line breaks - Fixes ghost formatting when pasting from chat or web pages

    df46576
  5. fix: Re-index suggestion spans after dismiss (keep as-is) - After filtering dismissed suggestion from array, span data-suggestion-id indices became stale - Adjacent error words became unclickable because findSuggestionById used wrong index - Now re-indexes all remaining spans to match updated array positions

    383cd0a
  6. feat: Summary UI improvements + PDF fix - Swap short/long labels on summary length slider (RTL: long left, short right) - Remove 'تلخيص النص كاملاً' checkbox and button - Replace single export button with dropdown (TXT/DOCX/PDF) in summary - Hide format toolbar when on summary tab, show on writing tab - Fix PDF export freeze: use foreignObjectRendering:false + lower scale - Add loading toast during PDF export - Add summary DOCX and PDF export functions

    010e380
  7. fix: Undo/Redo inside editor only + auto-focus after corrections - Moved listener back to editor element (capture:true) as user requested - Added editor.focus() after applySuggestionAtOffsets (line 432) - Added editor.focus() after applyAlternativeCorrection (line 474) - Added editor.focus() after dismissSuggestion (line 518) - After any correction/dismiss, editor auto-focuses so Ctrl+Z works immediately

    31e6b78
  8. fix: Undo/Redo now works after spelling corrections - Moved keydown listener from editor to document with capture:true - Uses stopImmediatePropagation to prevent browser native undo - Auto-focuses editor after undo/redo - Works even when tooltip click steals focus from editor

    0940035
  9. fix: Use capture phase on editor for Ctrl+Z/Y to intercept before browser native undo - Listener now on editor element with capture:true instead of document - Added stopPropagation to prevent browser native undo from also firing - Ensures corrections/dismissals can be properly undone

    50ae2d7
  10. feat: Add custom Undo/Redo for corrections and dismissals - Ctrl+Z undoes correction/dismiss (restores previous editor state) - Ctrl+Y or Ctrl+Shift+Z redoes - pushUndoState() called before every applyCorrection, applyAlternative, dismissSuggestion, applyAll - 50-level undo stack - Only intercepts when custom stack has entries (falls through to browser native otherwise)

    0f88e4f
  11. UI: Remove logo icon from header + replace guest avatar with profile silhouette SVG - Header now shows just 'بيان' text (no ب icon) - Guest avatar shows person silhouette instead of 'ض' letter - Both HTML default and JS auth-ui.js updated

    aaf360a
  12. fix: Cancel on create document prompt now actually cancels

    2ba8ffb
  13. fix: Document search was using wrong selector '.doc-item' instead of '.doc-list-item'

    ddea1ca
  14. fix: Use Arabic numerals for word goal percentage

    d1caf7b
  15. audit-v5: Complete ALL remaining green items - #8: Nav logo uses favicon.svg + clickable to home - #9: CTA button arrow indicator - #12: Word count goal (localStorage bayan_word_goal) - #13: Export summary as .txt file - #14: Character limit warning (already existed) - #15: Auto-save indicator in toolbar - #16: 404 page with Arabic numerals - #17: Loading skeleton animation for suggestions

    1bc4049
  16. audit-v4: 10 fixes and improvements - FIX: Footer replaced with multi-column layout (Product + Resources) - FIX: cta_primary config now matches button text - FIX: Enterprise 'contact sales' button navigates to editor - FIX: Mock editor 'الكتابه' now has spelling-error class (3 errors) - FIX: Status bar updated to '٣ إملائي' - FIX: Scroll-to-top fallback to window.scrollY - FIX: Remove @view-transition experimental CSS - FIX: Remove injected Cloudflare challenge script - ADD: Toast on applyCorrection + applyAllSuggestions - ADD: confirm() on applyAllSuggestions - ADD: Smart empty state (no text vs no errors) - ADD: Toggle switch HTML for summary checkbox

    5f053cc
  17. audit-v2: Major UI overhaul — 12 improvements - HERO: Fix broken stats HTML, real Arabic errors in mock editor - HERO: Floating card shows actual correction (الصحيحه→الصحيحة) - HERO: Status bar matches shown errors (2 spelling, 1 grammar, 2 punctuation) - CSS: Custom gradient range slider (replaces browser default) - CSS: Toast notification system with animations - CSS: Scroll-to-top button with fade-in on scroll - JS: Toast notifications for copy actions - JS: Scroll-to-top button logic - PRICING: 'إضافة المتصفح'→'تصدير PDF و Word' (real feature) - EDITOR: copyText uses toast instead of button text change

    7db066a
  18. audit: Fix 15+ issues across entire website - BUGS: Fix copySummary event.target crash, viewbox→viewBox SVGs - HERO: Replace fake stats (10M/99%/50K) with real features (3 types/instant/free) - HERO: 'شاهد العرض التوضيحي'→'استكشف الميزات' with onclick - HERO: Fix mock editor hardcoded light colors→CSS variables - HERO: animate-pulse→animate-fade-in on floating card - PRICING: All 3 buttons now have onclick (go to editor) - FOOTER: Replace dead #links with working page navigation - EDITOR: Confirm dialog before clearing content - CODE: Remove empty style tag and old comments

    bb9cb5f
  19. remove: List buttons + indent + all related CSS/JS - Remove bullet list and ordered list buttons from toolbar - Remove formatList() function from format.js - Remove blockquote/ul/ol/li CSS from components.css - Keep clear format button

    3d687b8