-
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
-
3b2d905041
fix(transcription): reload annotations after drawing block on PDF
Marcel
2026-04-05 20:49:01 +02:00
-
7036f18b25
test(annotations): add tests for dimColor and crosshair cursor
Marcel
2026-04-05 20:47:21 +02:00
-
99e2e6e5c1
feat(transcription): enable drawing turquoise rectangles on PDF to create blocks
Marcel
2026-04-05 20:44:45 +02:00
-
aaffee2804
test(frontend): add Vitest specs for DocumentMetadataDrawer and TranscriptionBlock
Marcel
2026-04-05 20:38:53 +02:00
-
18c6bca2dd
refactor(transcription): split reorderBlocks for command-query separation
Marcel
2026-04-05 20:32:44 +02:00
-
d13f6f69d5
fix(migration): add CHECK constraint on text length (defense in depth)
Marcel
2026-04-05 20:29:41 +02:00
-
052f70e871
fix(transcription): use navigator.sendBeacon for beforeunload save
Marcel
2026-04-05 20:28:37 +02:00
-
a3fbcf346b
fix(ui): semantic turquoise tokens, badge styling, saved fade animation
Marcel
2026-04-05 20:26:41 +02:00
-
b21778b3d1
refactor(types): extract TranscriptionBlockData to shared types
Marcel
2026-04-05 20:22:35 +02:00
-
51c799e20e
test(transcription): add TranscriptionServiceTest with 13 unit tests
Marcel
2026-04-05 11:46:16 +02:00
-
6463a32dfc
fix: address PR review feedback — security, architecture, dead code
Marcel
2026-04-05 11:43:35 +02:00
-
1efd3d8e23
feat(transcription): add frontend transcription editing UI (#176)
Marcel
2026-04-05 11:34:01 +02:00
-
5211e0b9f7
feat(topbar): add expandable metadata drawer with Details toggle (#175)
Marcel
2026-04-05 11:22:38 +02:00
-
234f83c40b
feat(i18n): add translation keys for metadata drawer and transcription
Marcel
2026-04-05 11:16:22 +02:00
-
a46b1a2e84
feat(transcription): add backend entities, service, and controller
Marcel
2026-04-05 11:13:13 +02:00
-
5231476c27
feat(transcription): add Flyway migrations for transcription blocks
Marcel
2026-04-05 11:12:08 +02:00
-
46d64f50a5
docs(specs): add final specs for transcription feature
Marcel
2026-04-05 09:27:22 +02:00
-
1a57ec2036
feat(topbar): add divider between sender/receiver block and action buttons
Marcel
2026-04-02 11:52:38 +02:00
-
e362bc4977
feat(topbar): remove DocumentStatusChip — status dot has no value for users
Marcel
2026-04-02 11:41:03 +02:00
-
01ba0d4121
feat(topbar): make PersonChip a link to the person detail page
Marcel
2026-04-02 11:40:18 +02:00
-
2e6366faf7
feat(topbar): add topbar_overflow_suffix i18n key and use it in overflow pill button
Marcel
2026-04-02 11:39:34 +02:00
-
9dd35999e0
fix(topbar): fix overflow pill popup clipped and hidden behind pdf viewer
Marcel
2026-04-02 11:36:41 +02:00
-
e94f43264c
fix(topbar): add overflow-hidden to flex row so long titles truncate instead of pushing kebab off-screen
Marcel
2026-04-01 10:23:32 +02:00
-
da7f94de84
feat(topbar): hide sender→receiver chip row below md to make room for buttons
Marcel
2026-04-01 10:22:05 +02:00
-
3f0b686963
feat(topbar): always show annotate-stop button — primary action, not hidden in kebab
Marcel
2026-04-01 10:16:38 +02:00
-
1e9ef63191
refactor(topbar): extract annotate/download actions as Svelte snippets, render in desktop + kebab
Marcel
2026-04-01 10:15:31 +02:00
-
51348ad26a
feat(topbar): add mobile kebab menu for annotate/download actions hidden below md
Marcel
2026-04-01 10:11:50 +02:00
-
dba1e2a8eb
fix(topbar): use Long-Arrow-Right icon for sender→receiver separator
Marcel
2026-04-01 10:05:03 +02:00
-
654b1283c1
fix(topbar): replace → text char with degruyter arrow icon for reliable centering
Marcel
2026-04-01 09:59:43 +02:00
-
c5b98af69b
fix(topbar): center arrow glyph vertically with inline-flex items-center
Marcel
2026-04-01 09:46:37 +02:00
-
03e2382c8a
feat(topbar): increase arrow to 30px and fix vertical alignment with leading-none
Marcel
2026-04-01 09:37:28 +02:00
-
528e1e05ea
feat(topbar): increase sender→receiver arrow size for visibility
Marcel
2026-04-01 09:35:30 +02:00
-
c64abccf63
feat(i18n): add doc_panel_annotate_hint message key in de/en/es, use in AnnotateHintStrip
Marcel
2026-04-01 09:30:21 +02:00
-
47960b5028
feat(topbar): scale action button text and icons to match surrounding text size
Marcel
2026-04-01 09:23:31 +02:00
-
7f2940f0f2
feat(topbar): increase all font sizes and bar height by another 25%
Marcel
2026-04-01 09:12:27 +02:00
-
37d728b006
feat(topbar): increase all font sizes and bar height by 25% for legibility
Marcel
2026-04-01 09:09:59 +02:00
-
965087b787
Revert "feat(topbar): double all font sizes and increase bar height for legibility"
Marcel
2026-04-01 09:04:24 +02:00
-
1d2e6d7b86
feat(topbar): double all font sizes and increase bar height for legibility
Marcel
2026-04-01 08:52:23 +02:00
-
0c40e10743
fix(topbar): add role=group to OverflowPillButton outer div — a11y warning
Marcel
2026-03-31 23:17:11 +02:00
-
358131ca34
feat(ui): replace DocumentTopBar with responsive orchestrator (issue #173)
Marcel
2026-03-31 23:11:11 +02:00
-
c7af33b998
feat(ui): add OverflowPillButton — tooltip, Escape focus return, use:clickOutside
Marcel
2026-03-31 23:08:53 +02:00
-
eafb566170
feat(ui): add PersonChipRow — sender→receivers chips, 2nd receiver hidden md:contents
Marcel
2026-03-31 23:00:32 +02:00
-
624eb9e5d6
feat(ui): add OverflowPillDisplay — non-interactive aria-hidden +N span
Marcel
2026-03-31 22:58:47 +02:00
-
7bd995a045
feat(ui): add AnnotateHintStrip — 18px hint strip, hidden md:flex, annotateMode gated
Marcel
2026-03-31 22:46:32 +02:00
-
20dbe04d45
feat(ui): add DocumentStatusChip — dot-only status indicator, hidden md:block
Marcel
2026-03-31 22:43:15 +02:00
-
c9211b3061
feat(ui): add PersonChip component — avatar initials, abbreviated prop
Marcel
2026-03-31 22:42:01 +02:00
-
27254fb0ac
feat(utils): add personFormat utility module with 6 pure functions (TDD)
Marcel
2026-03-31 22:39:44 +02:00
-
b5a68e69e2
refactor(actions): extract clickOutside to shared module, replace 5 inline copies
Marcel
2026-03-31 22:34:54 +02:00
-
b1e959412f
feat(frontend): add xs breakpoint (375px) to Tailwind @theme
Marcel
2026-03-31 22:02:46 +02:00
-
19035fbeab
fix(dashboard): move right column first in DOM for mobile-first upload zone
Marcel
2026-03-31 20:42:37 +02:00
-
79faee554a
fix(dashboard): reduce incomplete docs widget from 5 to 3 items to prevent scroll
Marcel
2026-03-31 20:40:02 +02:00
-
5adef7bec5
refactor(dashboard): delete DashboardMentions component — notifications page exists
Marcel
2026-03-31 20:29:03 +02:00
-
595c2eb987
test(e2e): Classic Split — right column absent for read-only user, present for admin
Marcel
2026-03-31 20:27:39 +02:00
-
518019f099
chore(e2e): gitignore Playwright auth state — regenerate in CI via auth.setup.ts
Marcel
2026-03-31 20:26:01 +02:00
-
38b8804b17
style(dashboard): bump stats footnote from text-xs to text-sm for legibility
Marcel
2026-03-31 20:24:47 +02:00
-
81ed1ce3ed
test(admin): replace setTimeout timing hack with vi.waitFor in layout specs
Marcel
2026-03-31 20:23:05 +02:00
-
92e7aa127c
feat(dashboard): Classic Split — 2-col layout, remove DashboardMentions widget
Marcel
2026-03-31 19:36:36 +02:00
-
f618364632
feat(dashboard): add stats footnote and min-h touch target to DashboardRecentDocuments
Marcel
2026-03-31 19:29:00 +02:00
-
20923d04b6
feat(dashboard): replace notifications fetch with stats in server load
Marcel
2026-03-31 19:23:31 +02:00
-
6d61297182
fix(tests): fix 27 failing frontend unit tests
Marcel
2026-03-31 17:28:35 +02:00
-
fb636e4152
fix(e2e): replace fragile .last() selector with data-testid on password form submit
Marcel
2026-03-31 17:13:09 +02:00
-
527d174e9c
fix(focus-rings): remove broken [&_input]:focus selectors and fix error state focus-visible
Marcel
2026-03-31 16:42:11 +02:00
-
f1bf32ee05
feat(focus-rings): CommentThread selection highlight → dotted outline
Marcel
2026-03-31 15:27:48 +02:00
-
a5cc8fd16e
feat(focus-rings): update interactive widgets to ring-focus-ring
Marcel
2026-03-31 15:25:02 +02:00
-
1541afd470
feat(focus-rings): update all form inputs and document components to ring-focus-ring
Marcel
2026-03-31 15:22:11 +02:00
-
d0deb26065
feat(focus-rings): update auth and search inputs to ring-focus-ring
Marcel
2026-03-31 15:18:42 +02:00
-
f04e4ffa8b
feat(focus-rings): update header/nav components to ring-focus-ring
Marcel
2026-03-31 15:15:06 +02:00
-
17889df220
feat(focus-rings): add --c-focus-ring token to CSS design system
Marcel
2026-03-31 15:12:00 +02:00
-
fe1121de65
test(focus-rings): add failing Playwright tests for --c-focus-ring token and element ring colors
Marcel
2026-03-31 15:08:36 +02:00
-
2004a80055
fix(a11y): UserMenu avatar bg-white/text-brand-navy — WCAG AA contrast
Marcel
2026-03-31 14:07:55 +02:00
-
f70b5ae6bd
fix(dark-mode): address PR #168 review blockers
Marcel
2026-03-31 13:30:00 +02:00
-
12b8324245
chore: merge main into feat/issue-166 — resolve blue header conflicts
Marcel
2026-03-31 12:24:20 +02:00
-
-
a9b648454e
fix(dark-mode): use bg-header on layout header; set --c-header to brand-navy
Marcel
2026-03-31 11:53:14 +02:00
-
938a4b07bf
test(dark-mode): add failing test for --c-header token on header element
Marcel
2026-03-31 11:39:37 +02:00
-
7e43bd43a4
feat(dark-mode): replace neutral tokens with navy-tinted palette + fix WCAG AA
Marcel
2026-03-31 11:37:30 +02:00
-
56926efd03
test(a11y): add dark mode axe + color-scheme tests for issue #166
Marcel
2026-03-31 11:22:35 +02:00
-
a6ee444f3b
docs(specs): add focus rings design spec for issue #167
Marcel
2026-03-31 10:33:50 +02:00
-
2dd73cf594
test(LanguageSwitcher): add Vitest unit tests for inverted prop
Marcel
2026-03-31 09:43:29 +02:00
-
53038dea68
fix(header): address PR review blockers
Marcel
2026-03-31 09:37:24 +02:00
-
281934529e
fix(header): consistent icon styling, focus rings, and responsive breakpoints
Marcel
2026-03-30 22:54:04 +02:00
-
c905f136d2
test(header): add Playwright tests for brand-navy header
Marcel
2026-03-30 22:03:38 +02:00
-
36bf591afe
feat(forgot-password): add AuthHeader for consistent auth page branding
Marcel
2026-03-30 22:02:29 +02:00
-
550a9704ad
feat(login): replace floating lang switcher with AuthHeader
Marcel
2026-03-30 22:01:40 +02:00
-
55e681c209
feat(AuthHeader): slim brand-navy header for auth pages
Marcel
2026-03-30 22:01:02 +02:00
-
e65ddc655e
feat(UserMenu): brand-mint avatar, white guest icon, focus rings
Marcel
2026-03-30 22:00:22 +02:00
-
14b1cc7539
feat(AppNav): brand-navy header styles for logo and nav links
Marcel
2026-03-30 21:59:38 +02:00
-
adc1f343b2
feat(layout): apply brand-navy header with accent strip
Marcel
2026-03-30 21:57:39 +02:00
-
3dfaf69fb1
feat(LanguageSwitcher): add inverted prop for dark-header context
Marcel
2026-03-30 21:57:01 +02:00
-
fd2a7a8e96
refactor(layout): remove --c-nav-active CSS token
Marcel
2026-03-30 21:55:48 +02:00
-
-
ebeb0cf865
chore: merge origin/main into feat/issue-162-korrespondenz-redesign
feat/issue-162-korrespondenz-redesign
Marcel
2026-03-30 21:34:00 +02:00
-
-
46eb908ff4
fix(DateInput): fire onchange when field is cleared
Marcel
2026-03-30 21:22:43 +02:00
-
616d6ba01c
fix(korrespondenz): use semantic tokens in SinglePersonHintBar for dark mode
Marcel
2026-03-30 20:00:20 +02:00
-
154f859efc
feat(korrespondenz): address PR #164 review – blockers and suggestions
Marcel
2026-03-30 19:57:48 +02:00
-
591316aa22
feat(admin): add READ_ALL and ANNOTATE_ALL to groups permission matrix
Marcel
2026-03-30 10:12:48 +02:00
-
89f2106d8b
feat(admin): mass import card on system tab with live status polling
Marcel
2026-03-30 09:42:44 +02:00
-
33c29fbff3
feat(admin): entity flyout for tablet icon strip (Phase 9 complete)
Marcel
2026-03-30 09:06:03 +02:00
-
757d0493a0
feat(admin): responsive entity nav and collapsible list panels (Phase 9)
Marcel
2026-03-30 07:19:41 +02:00
-
50e637a9f2
feat(admin): phase 8 — unsaved-changes guard on all detail panels
Marcel
2026-03-30 01:58:10 +02:00