refactor: consolidate app logos into shared-branding package (Tier 4)

- Add pre-configured logo components to @manacore/shared-branding:
  - MemoroLogo, ManaCoreLogo, ManaDeckLogo, StorytellerLogo
- Update all apps to import logos from shared-branding
- Remove redundant local logo wrapper components from each app

This reduces code duplication by centralizing app logos while
maintaining the same API for consumers.

🤖 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-25 00:06:21 +01:00
parent 9449fff6f7
commit 294d1fc5c5
18 changed files with 112 additions and 121 deletions

View file

@ -3,15 +3,24 @@
*
* This package provides:
* - App logos (AppLogo, AppLogoWithName)
* - Pre-configured app logos (MemoroLogo, ManaCoreLogo, etc.)
* - Mana icon (ManaIcon)
* - Branding configuration (colors, names, taglines)
*/
// Components
// Generic Components
export { default as AppLogo } from './AppLogo.svelte';
export { default as AppLogoWithName } from './AppLogoWithName.svelte';
export { default as ManaIcon } from './ManaIcon.svelte';
// Pre-configured App Logos
export {
MemoroLogo,
ManaCoreLogo,
ManaDeckLogo,
StorytellerLogo
} from './logos';
// Configuration
export { APP_BRANDING, getAppBranding, getAllAppBrandings } from './config';

View file

@ -0,0 +1,13 @@
<script lang="ts">
import AppLogo from '../AppLogo.svelte';
interface Props {
size?: number;
color?: string;
class?: string;
}
let { size = 55, color, class: className = '' }: Props = $props();
</script>
<AppLogo app="manacore" {size} {color} class={className} />

View file

@ -0,0 +1,13 @@
<script lang="ts">
import AppLogo from '../AppLogo.svelte';
interface Props {
size?: number;
color?: string;
class?: string;
}
let { size = 55, color, class: className = '' }: Props = $props();
</script>
<AppLogo app="manadeck" {size} {color} class={className} />

View file

@ -0,0 +1,13 @@
<script lang="ts">
import AppLogo from '../AppLogo.svelte';
interface Props {
size?: number;
color?: string;
class?: string;
}
let { size = 55, color, class: className = '' }: Props = $props();
</script>
<AppLogo app="memoro" {size} {color} class={className} />

View file

@ -0,0 +1,13 @@
<script lang="ts">
import AppLogo from '../AppLogo.svelte';
interface Props {
size?: number;
color?: string;
class?: string;
}
let { size = 55, color, class: className = '' }: Props = $props();
</script>
<AppLogo app="maerchenzauber" {size} {color} class={className} />

View file

@ -0,0 +1,8 @@
/**
* Pre-configured app logo components
* These provide convenient shortcuts for each app's logo
*/
export { default as MemoroLogo } from './MemoroLogo.svelte';
export { default as ManaCoreLogo } from './ManaCoreLogo.svelte';
export { default as ManaDeckLogo } from './ManaDeckLogo.svelte';
export { default as StorytellerLogo } from './StorytellerLogo.svelte';