ScriptTypeSelect: option list, placeholder disabled, value initialisation, disabled prop propagation. SinglePersonHintBar: hasDateFilter false vs true branches, sortDir DESC vs ASC label switch, year-range with only fromDate fallback. UserGroupsSection: per-group checkbox rendering, label visibility, selectedGroupIds preselection, empty groups list, default empty selection. 15 tests across three small primitives. Refs #496. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
user (frontend)
UI for account management: profile editing, password change, and permission group management in the admin panel.
What this domain owns
Components: UserProfileSection.svelte, UserPasswordSection.svelte, UserGroupsSection.svelte.
What this domain does NOT own
Personrecords — historical family members are entirely separate from login accounts. A user editing their profile is anAppUser; the historical persons in documents arePersonentities. They are never linked.- User list or admin creation UI — those live in the
/adminroute, which assembles views from multiple domains.
Key components
| Component | Used in | Notes |
|---|---|---|
UserProfileSection.svelte |
/settings or profile page |
Display name, email editing |
UserPasswordSection.svelte |
/settings |
Password change form |
UserGroupsSection.svelte |
/admin |
Per-user permission group assignment |
Cross-domain imports
shared/primitives/— generic UI primitives only
Backend counterpart
backend/src/main/java/org/raddatz/familienarchiv/user/README.md