# person (frontend) UI for historical family members: typeahead selection, chip display, hover cards, genealogy graph, relationship management. ## What this domain owns Components: `PersonTypeahead.svelte`, `PersonMultiSelect.svelte`, `PersonChip.svelte`, `PersonChipRow.svelte`, `PersonHoverCard.svelte`, `PersonTypeBadge.svelte`, `PersonTypeSelector.svelte`. Utilities: `personFormat.ts` (full-name formatting), `personLifeDates.ts` (birth/death display), `person-validation.ts` (form validation), `personHoverCard.ts` (hover-card controller). Sub-folders: `genealogy/` (Stammbaum view components), `relationship/` (relationship graph components). ## What this domain does NOT own - Document content — displayed in `document/` - AppUser accounts — managed in `user/` ## Key components | Component | Used in | Notes | | -------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------- | | `PersonTypeahead.svelte` | document edit, geschichte, search filters | Single-person selector with debounced typeahead. Exported for use by other domains. | | `PersonMultiSelect.svelte` | document edit (receivers) | Chip-based multi-person selector | | `PersonChip.svelte` | document rows, conversation view | Compact display chip with link and hover card | | `PersonHoverCard.svelte` | person chips | Floating card with person summary on hover | ## Cross-domain imports - `shared/primitives/` — generic UI primitives - `shared/hooks/useTypeahead.svelte.ts` — typeahead keyboard/focus logic ## Accessibility notes - `PersonChip` focus ring: `focus-visible:ring-2 focus-visible:ring-brand-navy` - `PersonTypeahead` dropdown navigable via keyboard (↑↓ Enter Escape) ## Backend counterpart `backend/src/main/java/org/raddatz/familienarchiv/person/README.md`