Repository navigation
Show homograph numbers on headwords in FW Lite - #2881
Conversation
Diff counterparts of the editor's entry, sense and example primitives, plus a row-based diff for objects without an editor layout (parts of speech, semantic domains, publications, complex form types, morph types, writing systems, custom views). Nothing renders them yet; the activity detail view adopts them next. Every field of every previewed model is listed in diff-fields.ts, typed against the generated models, so a new backend field fails svelte-check until it gets a row or is skipped on purpose. Entry fields the editor doesn't show (morph type, homograph number) are diffed when they change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- A multi-string change in a writing system the view hides now shows instead of looking unchanged. - Part of speech diffs by id, so a snapshot with an id but no object still shows the right value. - Multi-selects drop duplicate ids (they crashed the keyed each) and sort labels numerically, so semantic domain 2.1 comes before 10.1. - Guard missing example translations and string-serialized ws types. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A custom view with no writing-system list shows every writing system, so diffing it as an empty list hid a switch between "all" and "none". A reorder-only picture change now marks the pictures that moved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A custom view's field order and an entry's complex form types keep their selection order, so a reorder-only change looked unchanged. Pictures and multi-selects now share one helper for finding what moved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eme form entityConfig is now typed against the generated models: a new entry, sense or example field fails svelte-check until it gets an editor field or is listed as not having one. That replaces the diff's near-empty "extra rows" tables, which guarded the same thing one step removed. Morph type, which has no editor field yet, shows in the entry diff right under the lexeme form when it changed, where FLEx has it. Homograph number is left out: FW Lite doesn't display it anywhere yet. A test checks every snapshot-able model has a diff or an explicit opt-out. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Like hidden writing systems, a field the current view hides (e.g. literal meaning in FW Lite) now shows when the change touched it, so an activity that only edited such a field doesn't render an empty diff. Empty values count as missing and rich text compares as plain text. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AM78WFRziqVfs4zYnscP7E
A renamed but still selected publication, complex form type or semantic domain no longer reveals a hidden field that would show nothing changed. Selections compare by id, pictures by image and caption, and translations by id and text. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AM78WFRziqVfs4zYnscP7E
DiffMultiString gave each row its own label column so the label stayed beside the value below the lg breakpoint, which left inputs misaligned between rows. Use the editor's row classes instead: the shared subgrid column from lg up, stacked below it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AM78WFRziqVfs4zYnscP7E
Render an entry's homograph number (N > 0) as a FLEx-style subscript after its headword via a shared HomographNumber component: entry list and search rows, dictionary preview, entry editor title, task review list, the entry picker's selection preview and the activity preview. Plain-text contexts (editor title tooltip, delete prompt, duplicate-check preview names) use Unicode subscript digits. Headword strings used for logic are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AM78WBzrZB97vduoZFtHSr
|
No actionable comments were generated in the recent review.
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AM78WBzrZB97vduoZFtHSr
Tailwind's preflight makes <sub> 75% of the headword, which reads too big next to a headword and doesn't match the Unicode subscript digits used in the tooltip and delete prompt. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AM78WDx5fPgE4eBYSP1Ngb
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AM78WBzrZB97vduoZFtHSr
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AM78WBzrZB97vduoZFtHSr # Conflicts: # frontend/viewer/src/lib/components/dictionary/HomographNumber.svelte # frontend/viewer/src/lib/entry-editor/diff-view/inline-diff.test.ts # frontend/viewer/src/lib/entry-editor/diff-view/inline-diff.ts
[Claude, autonomous]
FLEx shows an entry's homograph number as a subscript after its headword (bank₁, bank₂; 0 shows nothing). The viewer never displayed
IEntry.homographNumber. This addsHomographNumber.svelteand uses it in the entry list and search rows, the entry editor title and dictionary preview, the entry picker's selection preview and the task review list, plus Unicode subscript digits in the delete prompt and the duplicate-check names.IComplexFormComponentonly carries headword strings, so that needs a model field or a backend-baked subscript (follow-up).tests/ui/homograph-numbers.test.tscovers the list rows, the editor title and tooltip, and the dictionary preview.Screenshots
Generated by Claude Code