feat(feedback): heart-half als globales Feedback-Icon + inline-Form in der Workbench

Drei Probleme adressiert:

1. **Icon-Vereinheitlichung**: alle Feedback-Affordances tragen jetzt
   das phosphor `heart-half`-Icon (statt vorher Lightbulb/Mix). Geändert
   in PillNav-Usermenü, ModuleShell-Header (FeedbackHook), Phosphor-Icon-
   Map. Eine Stelle, ein Icon — Wiedererkennung steigt.

2. **Inline statt Modal in Workbench-Cards**: AppPage.svelte rendert
   das Feedback-Formular jetzt im selben Slot wie die Hilfe-Seite —
   Klick auf das Heart-Half-Icon togglet den Inline-Panel statt einen
   Modal-Backdrop über die ganze Workbench zu legen. Hilfe und Feedback
   sind mutually-exclusive (eines geht zu, sobald das andere aufgeht).

3. **Form-Body extrahiert**: FeedbackForm.svelte enthält jetzt das
   Formular ohne jegliches Chrome. FeedbackQuickModal nutzt es im Modal-
   Mode (Standalone-Routen, PillNav), AppPage im Inline-Mode. Eine
   Quelle, beide Surfaces bleiben in sync.

ModuleShell schluckt zusätzlich `onFeedback`/`feedbackOpen`-Props: wenn
gesetzt, ruft die FeedbackHook-Komponente onClick statt das eigene Modal
zu öffnen — der Host (AppPage) übernimmt das Rendering.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-28 15:36:52 +02:00
parent f39e72340c
commit 15ab24bda8
8 changed files with 441 additions and 341 deletions

View file

@ -50,9 +50,9 @@
Globe,
GridFour,
Heart,
HeartHalf,
House,
Key,
Lightbulb,
List,
MagnifyingGlass,
Microphone,
@ -136,7 +136,7 @@
scale: Scales,
robot: Robot,
key: Key,
lightbulb: Lightbulb,
'heart-half': HeartHalf,
shield: Shield,
gift: Gift,
'music-notes': MusicNotes,
@ -508,7 +508,7 @@
links.push({
id: 'feedback',
label: 'Idee teilen',
icon: 'lightbulb',
icon: 'heart-half',
onClick: onFeedback,
});
} else if (userEmail && feedbackHref) {
@ -559,7 +559,7 @@
out.push({
id: 'feedback',
label: 'Idee teilen',
icon: 'lightbulb',
icon: 'heart-half',
onClick: () => onFeedback(),
});
out.push({ id: 'feedback-divider', label: '', divider: true });

View file

@ -8,7 +8,7 @@
Gear,
Globe,
Heart,
Lightbulb,
HeartHalf,
Moon,
Palette,
Question,
@ -37,7 +37,7 @@
sun: Sun,
palette: Palette,
robot: Robot,
lightbulb: Lightbulb,
'heart-half': HeartHalf,
logout: SignOut,
};

View file

@ -23,9 +23,9 @@ import {
Globe,
GridFour,
Heart,
HeartHalf,
House,
Key,
Lightbulb,
List,
MagnifyingGlass,
Microphone,
@ -110,7 +110,7 @@ export const phosphorIcons: Record<string, any> = {
scale: Scales,
robot: Robot,
key: Key,
lightbulb: Lightbulb,
'heart-half': HeartHalf,
shield: Shield,
gift: Gift,
'music-notes': MusicNotes,