From 6ee1ef73c38607b228ebc3ff675b8626843f4d6f Mon Sep 17 00:00:00 2001
From: Marcel
Date: Wed, 8 Apr 2026 13:09:16 +0200
Subject: [PATCH] feat(ui): add PersonTypeBadge to person list and detail pages
Show colored badge for non-PERSON types per design spec:
- INSTITUTION: blue with building icon
- GROUP: purple with people icon
- UNKNOWN: amber with question mark icon
- PERSON: no badge (unmarked default)
Badge appears on person cards in list and on detail page.
Co-Authored-By: Claude Sonnet 4.6
---
.../src/lib/components/PersonTypeBadge.svelte | 50 +++++++++++++++++++
frontend/src/routes/persons/+page.svelte | 5 ++
.../src/routes/persons/[id]/PersonCard.svelte | 8 +++
3 files changed, 63 insertions(+)
create mode 100644 frontend/src/lib/components/PersonTypeBadge.svelte
diff --git a/frontend/src/lib/components/PersonTypeBadge.svelte b/frontend/src/lib/components/PersonTypeBadge.svelte
new file mode 100644
index 00000000..2bfd1a39
--- /dev/null
+++ b/frontend/src/lib/components/PersonTypeBadge.svelte
@@ -0,0 +1,50 @@
+
+
+{#if personType === 'INSTITUTION'}
+
+
+ {m.person_type_INSTITUTION()}
+
+{:else if personType === 'GROUP'}
+
+
+ {m.person_type_GROUP()}
+
+{:else if personType === 'UNKNOWN'}
+
+
+ {m.person_type_UNKNOWN()}
+
+{/if}
diff --git a/frontend/src/routes/persons/+page.svelte b/frontend/src/routes/persons/+page.svelte
index 9487c82f..9ba5380d 100644
--- a/frontend/src/routes/persons/+page.svelte
+++ b/frontend/src/routes/persons/+page.svelte
@@ -3,6 +3,7 @@ import { goto } from '$app/navigation';
import { untrack } from 'svelte';
import { m } from '$lib/paraglide/messages.js';
import { formatLifeDateRange } from '$lib/utils/personLifeDates';
+import PersonTypeBadge from '$lib/components/PersonTypeBadge.svelte';
import PersonsStatsBar from './PersonsStatsBar.svelte';
import PersonsEmptyState from './PersonsEmptyState.svelte';
@@ -107,6 +108,10 @@ function handleSearch() {
{person.displayName}
+ {#if person.personType && person.personType !== 'PERSON'}
+
+ {/if}
+
{#if person.alias}
„{person.alias}"
diff --git a/frontend/src/routes/persons/[id]/PersonCard.svelte b/frontend/src/routes/persons/[id]/PersonCard.svelte
index 639d58ad..10094d87 100644
--- a/frontend/src/routes/persons/[id]/PersonCard.svelte
+++ b/frontend/src/routes/persons/[id]/PersonCard.svelte
@@ -1,6 +1,7 @@