fix(korrespondenz): dark theme, compact strip labels, year divider size, chevron alignment

- Add compact prop to PersonTypeahead: 7px uppercase label, 30px h input (matches spec FL/FI)
- Replace all hardcoded hex in 6 korrespondenz components with theme tokens (bg-surface,
  bg-muted, bg-canvas, border-line, text-ink, text-primary, text-accent, etc.)
- Fix year divider: text-[15px] font-black (spec: 15px/900)
- Fix log row chevron: items-center instead of items-start for vertical centering
- Fix recent-persons persistence: move persistRecentPerson to post-navigation $effect so
  senderName is resolved from server before stored in localStorage
- Add metadataComplete field to makeDoc() fixture to satisfy updated Document type
- Restore opacity-0 on swap button when only one person is set (matches spec + test)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-03-30 14:33:23 +02:00
parent 0387e9f428
commit 5fd7e41492
8 changed files with 80 additions and 73 deletions

View File

@@ -11,6 +11,7 @@ interface Props {
initialName?: string;
suggestedName?: string;
placeholder?: string;
compact?: boolean;
restrictToCorrespondentsOf?: string;
onchange?: (value: string) => void;
onfocused?: () => void;
@@ -23,6 +24,7 @@ let {
initialName = '',
suggestedName = '',
placeholder,
compact = false,
restrictToCorrespondentsOf,
onchange,
onfocused
@@ -125,7 +127,13 @@ function clickOutside(node: HTMLElement) {
</script>
<div class="relative" use:clickOutside>
<label for={name} class="block text-sm font-medium text-ink-2">{label}</label>
<label
for={name}
class={compact
? 'block text-[7px] font-extrabold tracking-[0.5px] text-ink-3 uppercase'
: 'block text-sm font-medium text-ink-2'}
>{label}</label
>
<input type="hidden" name={name} bind:value={value} />
@@ -137,7 +145,9 @@ function clickOutside(node: HTMLElement) {
oninput={handleInput}
onfocus={handleFocus}
placeholder={placeholder ?? m.comp_typeahead_placeholder()}
class="mt-1 block w-full rounded-md border border-line p-2 shadow-sm focus:border-accent focus:ring-accent"
class={compact
? 'block h-[30px] w-full rounded-[3px] border-[1.5px] border-line bg-surface px-[7px] text-[9px] text-ink placeholder:text-ink-3 focus:border-primary focus:outline-none'
: 'mt-1 block w-full rounded-md border border-line bg-surface p-2 text-ink shadow-sm placeholder:text-ink-3 focus:border-accent focus:ring-accent'}
/>
{#if showDropdown && (results.length > 0 || loading)}