feat(deps): migrate Header from @mana/shared-ui@0.1.x to shared-ui-2
Some checks are pending
CI / validate (push) Waiting to run

@mana/shared-ui-2@0.1.0 wurde heute publiziert. Cards' einziger
shared-ui-Konsument war PillTabGroup im Header (Routen-Nav +
DE/EN-Switcher). Drop-in-Migration:

- apps/web/package.json: @mana/shared-ui + @mana/shared-icons raus
  (letzteres war nur shared-ui-Transitive, in Cards-Code nirgends
  direkt importiert), @mana/shared-ui-2 ^0.1.0 rein.
- Header.svelte: Import wechselt von @mana/shared-ui auf
  @mana/shared-ui-2. primaryColor-Prop entfernt — shared-ui-2
  PillTabGroup nutzt --color-primary direkt aus dem 12-Token-Set.

Bridge-Aliase in app.css bleiben — Cards' Eigen-Komponenten
(Header-Logo, Modals, Marketplace, Routen) nutzen historisch
--color-card, --color-popover, --color-accent etc. Diese Tokens
existieren im 12-Token-Mana-Set NICHT, aber die Aliase mappen sie
weiter aufs 12er-Set. Aliase-Kommentar präzisiert: nicht mehr für
shared-ui@0.1.x (raus), sondern für Cards-eigenen Code, bis Cards
in eigenem Refactor-Sprint auf das 12er-Vokabular umzieht.

Type-check-Pipeline schrumpft drastisch: von 3994 Files (mit
shared-ui@0.1.x's 176 Quellfiles + transitive) auf 439 Files (nur
Cards + shared-ui-2's kleinerer Surface). Build sauber, weniger
JS im Output-Bundle.

Cards ist damit die erste Vereins-App, die operativ auf
shared-ui-2 läuft — End-to-End-Beweis dass das System trägt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-05-09 18:27:24 +02:00
parent e4cf124cb7
commit d7f3b93996
5 changed files with 27 additions and 222 deletions

View file

@ -16,13 +16,12 @@
},
"dependencies": {
"@cards/domain": "workspace:*",
"@mana/shared-icons": "^1.0.0",
"@mana/shared-ui": "^0.1.1",
"dompurify": "^3.4.2",
"jszip": "^3.10.1",
"marked": "^18.0.3",
"sql.js": "^1.14.1",
"@mana/themes": "^0.1.0"
"@mana/themes": "^0.1.0",
"@mana/shared-ui-2": "^0.1.0"
},
"devDependencies": {
"@sveltejs/adapter-node": "^5.2.0",

View file

@ -18,11 +18,15 @@
*/
@theme {
/* ===== Bridge-Aliase für shared-ui@0.1.x =====
* shared-ui@0.1.x erwartet ein 30-Token-Vokabular aus dem alten
* managarten-System. Damit Komponenten wie PillTabGroup nicht
* silent-fallback brechen, mappen wir die fehlenden Tokens auf
* unser 12er-Set. Mit shared-ui@2.0 entfällt diese Sektion.
/* ===== Bridge-Aliase für Cards' Eigen-Komponenten =====
* Cards' eigener Code (Header, Modals, Routen, Marketplace)
* nutzt historisch --color-card, --color-popover, --color-accent
* etc. Tokens die im 12er-Mana-Set NICHT existieren. Diese
* Aliase mappen sie auf das 12er-Set, damit Cards' eigene UI
* weiter rendert. Wird nur noch entfernbar wenn Cards' eigener
* Code komplett auf das 12er-Vokabular umgezogen ist
* (eigener Refactor-Sprint). shared-ui-2-Komponenten brauchen
* diese Aliase NICHT.
*/
--color-card: var(--color-surface);
--color-card-foreground: var(--color-foreground);

View file

@ -3,7 +3,7 @@
import { goto } from '$app/navigation';
import { devUser } from '$lib/auth/dev-stub.svelte.ts';
import { i18n, t } from '$lib/i18n/index.svelte.ts';
import { PillTabGroup } from '@mana/shared-ui';
import { PillTabGroup } from '@mana/shared-ui-2';
const langOptions = [
{ id: 'de', label: 'DE', title: 'Deutsch' },
@ -61,7 +61,6 @@
options={navOptions}
value={activeNav}
onChange={navTo}
primaryColor="hsl(var(--color-primary))"
/>
</nav>
@ -71,7 +70,6 @@
value={i18n.current}
onChange={(id: string) => i18n.set(id as 'de' | 'en')}
sectionLabel={t('common.language_switcher')}
primaryColor="hsl(var(--color-primary))"
/>
{#if devUser.id}
<a