From d7f3b93996a464bbbd7fe54609cccc9a1c3bbe7a Mon Sep 17 00:00:00 2001 From: Till JS Date: Sat, 9 May 2026 18:27:24 +0200 Subject: [PATCH] feat(deps): migrate Header from @mana/shared-ui@0.1.x to shared-ui-2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @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) --- CLAUDE.md | 9 + apps/web/package.json | 5 +- apps/web/src/app.css | 14 +- apps/web/src/lib/components/Header.svelte | 4 +- pnpm-lock.yaml | 217 +--------------------- 5 files changed, 27 insertions(+), 222 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index ebdf22c..6c1e9de 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -102,6 +102,15 @@ Cards zieht alle Shared-Pakete aus Verdaccio (`pkg.mana.how`): - `@mana/shared-icons`, `@mana/shared-i18n`, `@mana/shared-theme`, `@mana/shared-tailwind` — UI-Building-Blocks (kein Code-Duplikat aus mana-monorepo) +- `@mana/themes` (`^0.1.0`) — `forest`-Variant aus 12-Token-System + (siehe `mana/docs/THEMING.md`); aktiviert via `data-theme="forest"` + in `app.html` + `@import` in `app.css` +- `@mana/shared-ui-2` (`^0.1.0` seit 2026-05-09) — Greenfield- + Komponenten mit strikter 12-Token-Disziplin. Cards konsumiert + heute `PillTabGroup` (im Header für Routen-Nav + DE/EN-Switcher). + Alte `@mana/shared-ui@0.1.x` aus den deps entfernt; Cards-Eigen- + Komponenten (Modals, Marketplace-Cards etc.) bleiben bis weiterer + Refactor-Sprint app-lokal. Alle als reguläre `dependencies`. Versions-Disziplin ist Klasse-A (siehe `mana/docs/SHARED_PACKAGES.md`). diff --git a/apps/web/package.json b/apps/web/package.json index 2d5a55a..813e524 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -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", diff --git a/apps/web/src/app.css b/apps/web/src/app.css index 9b1bc5a..099eced 100644 --- a/apps/web/src/app.css +++ b/apps/web/src/app.css @@ -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); diff --git a/apps/web/src/lib/components/Header.svelte b/apps/web/src/lib/components/Header.svelte index c54c0e5..8055d43 100644 --- a/apps/web/src/lib/components/Header.svelte +++ b/apps/web/src/lib/components/Header.svelte @@ -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))" /> @@ -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} =12'} - - d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - - d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} - - d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - - d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} - - d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} - - d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} - - d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - - d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - - d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 - - d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - - date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -1601,15 +1513,6 @@ packages: resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} - phosphor-svelte@3.1.0: - resolution: {integrity: sha512-nldtxx+XCgNREvrb7O5xgDsefytXpSkPTx8Rnu3f2qQCUZLDV1rLxYSd2Jcwckuo9lZB1qKMqGR17P4UDC0PrA==} - peerDependencies: - svelte: ^5.0.0 || ^5.0.0-next.96 - vite: '>=5' - peerDependenciesMeta: - vite: - optional: true - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -2192,49 +2095,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@mana/shared-branding@1.0.0(svelte@5.55.5)': - dependencies: - '@mana/shared-types': 0.1.0 - svelte: 5.55.5 - - '@mana/shared-icons@1.0.0(svelte@5.55.5)(vite@5.4.21(@types/node@22.19.18)(lightningcss@1.32.0))': - dependencies: - phosphor-svelte: 3.1.0(svelte@5.55.5)(vite@5.4.21(@types/node@22.19.18)(lightningcss@1.32.0)) - svelte: 5.55.5 - transitivePeerDependencies: - - vite - '@mana/shared-share-protocol@0.1.0': dependencies: zod: 3.25.76 - '@mana/shared-theme@0.1.0(svelte@5.55.5)': + '@mana/shared-ui-2@0.1.0(svelte@5.55.5)': dependencies: svelte: 5.55.5 - '@mana/shared-types@0.1.0': - dependencies: - zod: 3.25.76 - - '@mana/shared-ui@0.1.1(svelte@5.55.5)(vite@5.4.21(@types/node@22.19.18)(lightningcss@1.32.0))': - dependencies: - '@mana/shared-branding': 1.0.0(svelte@5.55.5) - '@mana/shared-icons': 1.0.0(svelte@5.55.5)(vite@5.4.21(@types/node@22.19.18)(lightningcss@1.32.0)) - '@mana/shared-theme': 0.1.0(svelte@5.55.5) - '@mana/shared-types': 0.1.0 - '@types/d3-force': 3.0.10 - '@types/d3-selection': 3.0.11 - '@types/d3-transition': 3.0.9 - '@types/d3-zoom': 3.0.8 - d3-force: 3.0.0 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - d3-zoom: 3.0.0 - date-fns: 4.1.0 - svelte: 5.55.5 - transitivePeerDependencies: - - vite - '@mana/themes@0.1.0': {} '@nodable/entities@2.1.0': {} @@ -2502,25 +2370,6 @@ snapshots: '@types/cookie@0.6.0': {} - '@types/d3-color@3.1.3': {} - - '@types/d3-force@3.0.10': {} - - '@types/d3-interpolate@3.0.4': - dependencies: - '@types/d3-color': 3.1.3 - - '@types/d3-selection@3.0.11': {} - - '@types/d3-transition@3.0.9': - dependencies: - '@types/d3-selection': 3.0.11 - - '@types/d3-zoom@3.0.8': - dependencies: - '@types/d3-interpolate': 3.0.4 - '@types/d3-selection': 3.0.11 - '@types/dompurify@3.2.0': dependencies: dompurify: 3.4.2 @@ -2668,52 +2517,6 @@ snapshots: core-util-is@1.0.3: {} - d3-color@3.1.0: {} - - d3-dispatch@3.0.1: {} - - d3-drag@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-selection: 3.0.0 - - d3-ease@3.0.1: {} - - d3-force@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-quadtree: 3.0.1 - d3-timer: 3.0.1 - - d3-interpolate@3.0.1: - dependencies: - d3-color: 3.1.0 - - d3-quadtree@3.0.1: {} - - d3-selection@3.0.0: {} - - d3-timer@3.0.1: {} - - d3-transition@3.0.1(d3-selection@3.0.0): - dependencies: - d3-color: 3.1.0 - d3-dispatch: 3.0.1 - d3-ease: 3.0.1 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-timer: 3.0.1 - - d3-zoom@3.0.0: - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - - date-fns@4.1.0: {} - debug@4.4.3: dependencies: ms: 2.1.3 @@ -3058,14 +2861,6 @@ snapshots: pathval@2.0.1: {} - phosphor-svelte@3.1.0(svelte@5.55.5)(vite@5.4.21(@types/node@22.19.18)(lightningcss@1.32.0)): - dependencies: - estree-walker: 3.0.3 - magic-string: 0.30.21 - svelte: 5.55.5 - optionalDependencies: - vite: 5.4.21(@types/node@22.19.18)(lightningcss@1.32.0) - picocolors@1.1.1: {} picomatch@4.0.4: {}