-
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