YearBand.svelte.spec.ts queries '.justify-center .rounded-full' to assert
the pill is present. Replacing justify-center with items-center broke that
selector; adding both preserves the test contract while keeping flex-col
for the note below the pill.
Refs #844
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
zeitstrahl-note.spec.ts seeds PERSONAL and HISTORICAL events with
descriptions via API and asserts the note appears in DOM (REQ-001, REQ-004).
RTM rows REQ-001–REQ-008 for #844 all marked Done.
Closes#844
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
EventPill (PERSONAL curated events) and WorldBand (HISTORICAL events) now
render the curator note immediately below the title line. Derived events
and letters carry null description so EventNote renders nothing.
Refs #844
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Handles XSS escaping, whitespace-pre-line, 3-line clamp via inline style,
and a toggle button that is only shown when content actually overflows.
Refs #844
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds timeline_note_show_more / _show_less Paraglide keys (de/en/es) for
the expand/collapse affordance on long event notes. Regenerates api.ts
to include description?: string on TimelineEntryDTO.
Refs #844
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Surfaces the existing TimelineEvent.description through the list DTO so
curated event notes reach the read view. Null for letters and derived
entries; populated from ev.getDescription() in mapEvent() only.
Refs #844
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>