feat(theme): migrate theme emojis to Phosphor icons and integrate theme system into Zitare

- Replace emoji with Phosphor icon components in ThemeCard
- Add icon property to ThemeVariantDefinition type
- Add theme icon SVG paths to PillDropdown (sparkle, leaf, hexagon, waves)
- Update all app layouts to use icon instead of emoji for theme variants
- Integrate shared-theme system into Zitare web app
- Migrate Zitare from Tailwind v3 to v4
- Add themes page to Zitare
- Update Zitare settings page with icon-based theme display
- Add missing shared-icons dependency to Presi and Zitare

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Till-JS 2025-11-29 09:24:32 +01:00
parent b9608bd5d2
commit f436fbb99d
18 changed files with 300 additions and 328 deletions

View file

@ -27,23 +27,23 @@
// Theme variants
...theme.variants.map((variant) => ({
id: variant,
label: `${THEME_DEFINITIONS[variant].emoji} ${THEME_DEFINITIONS[variant].label}`,
label: THEME_DEFINITIONS[variant].label,
icon: THEME_DEFINITIONS[variant].icon,
onClick: () => theme.setVariant(variant),
active: theme.variant === variant,
})),
// Separator and link to full themes page
{
id: 'all-themes',
label: '🎨 Alle Themes',
label: 'Alle Themes',
icon: 'palette',
onClick: () => goto('/themes'),
active: false,
},
]);
// Current theme variant label
let currentThemeVariantLabel = $derived(
`${THEME_DEFINITIONS[theme.variant].emoji} ${THEME_DEFINITIONS[theme.variant].label}`
);
let currentThemeVariantLabel = $derived(THEME_DEFINITIONS[theme.variant].label);
// Navigation items for Chat
const navItems: PillNavItem[] = [