Commit Graph

  • 22fe9600a1 feat(migration): V21 add person_name_aliases table with pg_trgm indexes Marcel 2026-04-07 13:02:51 +02:00
  • b5ec4ebc0c refactor(ui): rename shadowed m parameter to newMode Marcel 2026-04-07 11:58:54 +02:00
  • 10fdaf7d00 refactor(ui): use CSS variable for turquoise in flash animations Marcel 2026-04-07 11:58:04 +02:00
  • e01ef56c48 fix(i18n): use getLocale() for date formatting in panel header Marcel 2026-04-07 11:56:23 +02:00
  • b01a9ef406 refactor(ui): use bg-turquoise/10 token for paragraph hover Marcel 2026-04-07 11:54:57 +02:00
  • e31b73303e fix(ui): bump paragraph hover opacity from 6% to 10% Marcel 2026-04-07 11:53:17 +02:00
  • 9d9d19ceb5 fix(a11y): increase segmented toggle height on mobile to 36px Marcel 2026-04-07 11:51:56 +02:00
  • 0a5c82cd0e fix(a11y): increase panel close button touch target to 44px Marcel 2026-04-07 11:50:32 +02:00
  • 1b063d4e4b test(ui): add tests for 0 blocks and lastEditedAt on PanelHeader Marcel 2026-04-07 11:46:53 +02:00
  • b312878b3f test(ui): add annotation-flash class tests for AnnotationLayer Marcel 2026-04-07 11:45:23 +02:00
  • 90120ca8e8 test(ui): add flash-highlight class tests for TranscriptionReadView Marcel 2026-04-07 11:44:01 +02:00
  • 4d5b8b4ead feat(ui): add collapsible PDF strip and abbreviated labels on mobile Marcel 2026-04-07 11:30:36 +02:00
  • 10cecb01f5 feat(a11y): respect prefers-reduced-motion for scroll-sync Marcel 2026-04-07 11:27:01 +02:00
  • 81b14e5026 feat(ui): add bidirectional scroll-sync with flash animations Marcel 2026-04-07 11:25:23 +02:00
  • e089192d7a feat(ui): wire panelMode state with read/edit view switching Marcel 2026-04-07 11:21:15 +02:00
  • 306eef2e95 feat(ui): add TranscriptionReadView for flowing prose display Marcel 2026-04-07 11:14:53 +02:00
  • 7d98081390 feat(ui): add TranscriptionPanelHeader with mode toggle and status Marcel 2026-04-07 11:10:39 +02:00
  • d070ae2612 feat(annotation): add dimmed prop to AnnotationLayer Marcel 2026-04-07 11:07:23 +02:00
  • 3279342ea7 feat(util): add splitByMarkers for [unleserlich] and [...] text splitting Marcel 2026-04-07 11:00:23 +02:00
  • f38c384268 feat(types): add updatedAt to TranscriptionBlockData Marcel 2026-04-07 10:58:34 +02:00
  • a94df4b225 feat(i18n): add read mode translation keys for de/en/es Marcel 2026-04-07 10:57:47 +02:00
  • 53b318f7ad fix(ui): add py-8 to results state matching document search page Marcel 2026-04-07 08:52:44 +02:00
  • 001e875f31 fix(ui): use De Gruyter long arrows for swap button and timeline entries Marcel 2026-04-07 08:50:58 +02:00
  • 06709e7458 fix(ui): remove disabled look from receiver typeahead when empty Marcel 2026-04-07 08:46:36 +02:00
  • 7fed057e59 fix(ui): prevent hero flicker when clearing sender input Marcel 2026-04-06 22:56:44 +02:00
  • a3edf9d7b4 fix(ui): date input placeholders show format TT.MM.JJJJ instead of label Marcel 2026-04-06 22:47:28 +02:00
  • 708d02a1f7 fix(ui): unify date inputs — use DateInput component on both pages Marcel 2026-04-06 22:46:29 +02:00
  • 2e943b7f91 fix(ui): De Gruyter long arrows on both sort buttons, rotate swap icon 90° Marcel 2026-04-06 22:43:45 +02:00
  • b4a9e678c6 fix(ui): use De Gruyter long arrow icons for sort direction Marcel 2026-04-06 22:37:50 +02:00
  • fe51936d17 fix(ui): use sort arrows ↑↓ instead of chevrons on sort button Marcel 2026-04-06 22:36:05 +02:00
  • c8b4bce003 feat(ui): collapsible date filter with sort + filter toggle on person row Marcel 2026-04-06 22:34:14 +02:00
  • c4715f1637 fix(ui): unify Briefwechsel search bar with document search card style Marcel 2026-04-06 22:20:32 +02:00
  • 93be64878e fix(ui): guard selectPerson against empty id Marcel 2026-04-06 20:30:30 +02:00
  • e2af9f924b fix(i18n): replace hardcoded "oder" with conv_hero_divider message key Marcel 2026-04-06 20:29:31 +02:00
  • 822a2fac3a fix(ui): add inner padding to strip components Marcel 2026-04-06 19:53:03 +02:00
  • fbf5e9f178 refactor(ui): remove CorrespondenzEmptyState, replaced by CorrespondenzHero Marcel 2026-04-06 19:50:07 +02:00
  • d5e3de5fe6 fix(ui): constrain results state to max-w-7xl like other overview pages Marcel 2026-04-06 19:49:30 +02:00
  • 7b2324ecfb fix(ui): unify strip padding and bump person bar inputs to h-12 Marcel 2026-04-06 19:46:36 +02:00
  • f39d9e6f30 feat(ui): two render states — hero vs results — with unified padding Marcel 2026-04-06 19:43:54 +02:00
  • e9acd44acb feat(ui): add CorrespondenzHero with discovery headline and large typeahead Marcel 2026-04-06 19:37:58 +02:00
  • efac704d59 feat(i18n): rename Korrespondenz → Briefwechsel in all languages Marcel 2026-04-06 19:23:47 +02:00
  • a9228d156f refactor(ui): rename route /korrespondenz → /briefwechsel Marcel 2026-04-06 19:22:22 +02:00
  • a863f8baad docs(search): explain void sort/dir ESLint workaround in SearchFilterBar Marcel 2026-04-06 16:50:52 +02:00
  • 1f86e6e238 fix(a11y): bump result count text to text-base (16px) for senior readability Marcel 2026-04-06 16:50:00 +02:00
  • c82bd61ad4 feat(a11y): fix SortDropdown accessibility — label, aria-label i18n, chevron Marcel 2026-04-06 16:49:06 +02:00
  • 56f7282a9d test(search): add empty-receivers edge case for RECEIVER sort Marcel 2026-04-06 16:45:01 +02:00
  • 110024245d docs(search): document in-memory sort tradeoff and total=size() limitation Marcel 2026-04-06 16:41:17 +02:00
  • 972048d57d fix(search): treat null sender.lastName as empty in sort key Marcel 2026-04-06 16:39:30 +02:00
  • 1c1ab0c72a feat(search): reject invalid dir parameter with 400 Marcel 2026-04-06 16:34:38 +02:00
  • 6ac3f6b176 refactor(search): remove dead SENDER case from resolveSort switch Marcel 2026-04-06 16:31:39 +02:00
  • 12023513b2 refactor(search): move DocumentSort from model/ to dto/ Marcel 2026-04-06 16:29:35 +02:00
  • 79250fb705 fix(ui): fix SortDropdown height alignment — appearance-none + items-stretch Marcel 2026-04-06 15:57:35 +02:00
  • fc3496abb6 fix(ui): align SortDropdown styling with SearchFilterBar button style Marcel 2026-04-06 15:55:55 +02:00
  • 0e13fd194b feat(search): show spinner in search input while navigation is in-flight Marcel 2026-04-06 15:52:37 +02:00
  • 023b6ddb49 fix(search): tagQ alone now triggers search mode; selecting chip clears tagQ Marcel 2026-04-06 15:46:54 +02:00
  • bc397048b7 fix(search): use in-memory sort for SENDER to include documents with null sender Marcel 2026-04-06 14:15:03 +02:00
  • 07dbe152e2 feat(search): show result count and term-aware empty state in DocumentList Marcel 2026-04-06 14:03:16 +02:00
  • 78fdb01ec1 feat(search): wire sort/dir/tagQ state into page.svelte and URL params Marcel 2026-04-06 13:58:53 +02:00
  • 769937e03d feat(search): read sort/dir/tagQ from URL and unwrap DocumentSearchResult envelope Marcel 2026-04-06 13:53:54 +02:00
  • 4fe10e1316 feat(search): add sort/dir/tagQ props to SearchFilterBar with SortDropdown Marcel 2026-04-06 13:50:45 +02:00
  • eeb78c98ec feat(search): add onTextInput callback to TagInput for live tag filter Marcel 2026-04-06 13:42:08 +02:00
  • aeed6e0dac feat(search): add SortDropdown component with direction toggle Marcel 2026-04-06 13:39:26 +02:00
  • 3f8f3cd938 feat(i18n): add sort, result count, and empty-state translation keys Marcel 2026-04-06 13:35:46 +02:00
  • 2c0748d60e feat(utils): add debounce utility with full test coverage Marcel 2026-04-06 13:23:14 +02:00
  • d1ad4d834c chore: regenerate API types with search envelope and new sort/tagQ params Marcel 2026-04-06 13:21:41 +02:00
  • 879435c8d9 feat(search): wrap search response in { documents, total } envelope Marcel 2026-04-06 13:17:08 +02:00
  • c2b5008c66 feat(search): add sort param (DATE/TITLE/SENDER/RECEIVER/UPLOAD_DATE) and tagQ filter Marcel 2026-04-06 13:13:06 +02:00
  • beca2d463a feat(search): extend hasText to match sender/receiver/tag names, add hasTagPartial Marcel 2026-04-06 13:07:39 +02:00
  • e6f12e6d90 docs(design): add sort integration specs for issue #180 Marcel 2026-04-06 12:09:00 +02:00
  • 8e48e67cb8 fix(a11y): increase contrast Marcel 2026-04-06 11:24:57 +02:00
  • c18ad25514 remove e2e from pipeline. takes too long Marcel 2026-04-06 11:22:08 +02:00
  • e89d8a4ca9 test: increase coverage Marcel 2026-04-06 11:20:57 +02:00
  • f359c19e4c fix: bump comment text to text-base + reload annotations on block delete Marcel 2026-04-05 23:40:23 +02:00
  • ef11cbee4e feat(transcription): clicking annotation focuses corresponding block Marcel 2026-04-05 23:36:06 +02:00
  • 676d3cb6a7 fix(pdf): prevent scroll-sync effect from hijacking page navigation Marcel 2026-04-05 23:27:52 +02:00
  • d389dc2023 feat(annotations): dim non-active annotations when a block is focused Marcel 2026-04-05 23:26:02 +02:00
  • b4212f5e86 feat(transcription): mobile stacked layout + cross-page scroll-sync Marcel 2026-04-05 23:13:27 +02:00
  • c22f2e41b1 fix(transcription): replace broken HTML5 drag with pointer-based drag Marcel 2026-04-05 23:07:42 +02:00
  • 7d2d615e0c feat(transcription): add drag-and-drop + arrow button reordering Marcel 2026-04-05 23:00:52 +02:00
  • 4a88b3ba82 feat(transcription): add dashed next-block CTA below block list Marcel 2026-04-05 22:52:15 +02:00
  • 6dc81ef2e3 fix(ui): match delete icon size + add cursor-pointer to interactive elements Marcel 2026-04-05 22:46:41 +02:00
  • cef1810700 fix(comments): stop Escape propagation in edit mode Marcel 2026-04-05 22:43:37 +02:00
  • 351f31b183 feat(comments): inline edit on click + trash icon for own comments Marcel 2026-04-05 22:42:24 +02:00
  • e6432846a1 fix(topbar): use brand navy for transcribe button, not turquoise Marcel 2026-04-05 22:35:57 +02:00
  • a66bec1971 fix(comments): increase text size for readability Marcel 2026-04-05 22:33:42 +02:00
  • 82d5a34f76 fix(comments): use semantic tokens for comment box dark mode Marcel 2026-04-05 22:32:01 +02:00
  • 3d086bd1fb fix(transcription): auto-capture quote on text selection, smart comment button Marcel 2026-04-05 22:30:13 +02:00
  • e384c87eef refactor(comments): streamline input — Enter to send, no buttons Marcel 2026-04-05 22:25:46 +02:00
  • f09b605752 refactor(comments): flat compact comment thread matching spec design Marcel 2026-04-05 22:18:24 +02:00
  • 193bd73af1 fix(i18n): translate comment timestamps and edited label Marcel 2026-04-05 22:09:26 +02:00
  • cab017a2ce fix(comments): show either created or edited timestamp, not both Marcel 2026-04-05 22:04:51 +02:00
  • be4f1ed73b fix(transcription): always show comment list, compose box on demand Marcel 2026-04-05 22:02:15 +02:00
  • 6475ebcc60 fix(transcription): auto-expand comment thread when block has comments Marcel 2026-04-05 21:50:37 +02:00
  • d8830b5a8e fix(transcription): use local state for textarea to prevent flicker on save Marcel 2026-04-05 21:47:00 +02:00
  • 569a13e1b1 feat(transcription): show block numbers on PDF annotation overlays Marcel 2026-04-05 21:39:11 +02:00
  • 7ad852dd52 fix(comments): remove empty state hint from CommentThread Marcel 2026-04-05 21:34:22 +02:00
  • 03d76863cb fix: clicking annotation enters transcribe mode and scrolls to block Marcel 2026-04-05 21:18:43 +02:00
  • f3c29ffe58 refactor: remove legacy annotate mode — transcription replaces it Marcel 2026-04-05 21:17:27 +02:00
  • 8c26876345 feat(transcription): add block-level comment threads with quote support Marcel 2026-04-05 21:05:39 +02:00
  • da43cadb0a feat(comments): add block-level comment endpoints with TDD Marcel 2026-04-05 21:01:02 +02:00