From 645993db01368232bc648d8ffa7aab365aa58052 Mon Sep 17 00:00:00 2001 From: Till JS Date: Thu, 23 Apr 2026 21:32:13 +0200 Subject: [PATCH] feat(webapp): register wardrobe in workbench app-registry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Kleiderschrank module shipped end-to-end (M1–M5 + M4.1) but was never surfaced on the workbench homepage — it was reachable only via direct /wardrobe URLs. This adds the tile so users can add it to a scene and open it from the launcher like every other module. - apps.ts: registerApp({ id: 'wardrobe', name: 'Kleiderschrank', color: #e11d48, icon: CoatHanger }) — list view loads $lib/modules/wardrobe/ListView.svelte (tab switcher Kleidung / Outfits). Detail routes stay SvelteKit-based (/wardrobe/garment/[id], /wardrobe/outfit/[id], /wardrobe/compose/[[outfitId]]) so the workbench only needs the root list slot. - categories.ts: wardrobe → 'creative' (next to picture, library, playground, quiz). Color matches the shared-branding entry in mana-apps.ts. Icon is the phosphor CoatHanger (there is no bare "Hanger" in phosphor-svelte). Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/mana/apps/web/src/lib/app-registry/apps.ts | 14 ++++++++++++++ .../apps/web/src/lib/app-registry/categories.ts | 1 + 2 files changed, 15 insertions(+) diff --git a/apps/mana/apps/web/src/lib/app-registry/apps.ts b/apps/mana/apps/web/src/lib/app-registry/apps.ts index 0250488eb..f1e687683 100644 --- a/apps/mana/apps/web/src/lib/app-registry/apps.ts +++ b/apps/mana/apps/web/src/lib/app-registry/apps.ts @@ -78,6 +78,7 @@ import { Flask, Exam, Globe, + CoatHanger, } from '@mana/shared-icons'; // ── Apps with entity capabilities ─────────────────────────── @@ -1292,6 +1293,19 @@ registerApp({ }, }); +registerApp({ + id: 'wardrobe', + name: 'Kleiderschrank', + color: '#e11d48', + icon: CoatHanger, + views: { + // Detail routes (/wardrobe/garment/[id], /wardrobe/outfit/[id], + // /wardrobe/compose/[[outfitId]]) live as SvelteKit routes; the + // workbench only needs the list view for the tab-switcher root. + list: { load: () => import('$lib/modules/wardrobe/ListView.svelte') }, + }, +}); + registerApp({ id: 'library', name: 'Bibliothek', diff --git a/apps/mana/apps/web/src/lib/app-registry/categories.ts b/apps/mana/apps/web/src/lib/app-registry/categories.ts index 4c052d245..08f04dbfc 100644 --- a/apps/mana/apps/web/src/lib/app-registry/categories.ts +++ b/apps/mana/apps/web/src/lib/app-registry/categories.ts @@ -110,6 +110,7 @@ export const APP_CATEGORY_MAP: Record = { library: 'creative', playground: 'creative', quiz: 'creative', + wardrobe: 'creative', // System — settings, admin, meta settings: 'system',