mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-23 17:06:41 +02:00
|
Some checks are pending
CD Mac Mini / Detect Changes (push) Waiting to run
CD Mac Mini / Deploy (push) Blocked by required conditions
CI / Detect Changes (push) Waiting to run
CI / Validate (push) Waiting to run
CI / Build mana-search (push) Blocked by required conditions
CI / Build mana-sync (push) Blocked by required conditions
CI / Build mana-api-gateway (push) Blocked by required conditions
CI / Build mana-crawler (push) Blocked by required conditions
Docker Validate / Validate Dockerfiles (push) Waiting to run
Docker Validate / Build calendar-web (push) Blocked by required conditions
Docker Validate / Build quotes-web (push) Blocked by required conditions
Docker Validate / Build todo-backend (push) Blocked by required conditions
Docker Validate / Build todo-web (push) Blocked by required conditions
Docker Validate / Build mana-auth (push) Blocked by required conditions
Docker Validate / Build mana-media (push) Blocked by required conditions
Docker Validate / Build mana-sync (push) Blocked by required conditions
Mirror to Forgejo / Push to Forgejo (push) Waiting to run
Zitare ist als Standalone-App live (zitare.mana.how) und im Wesentlichen
feature-complete für das Public-Korpus + Curator-Workflow. Keine Daten
im managarten/quotes-Modul vorhanden (Till bestätigt), kein
Migrations-Aufwand.
Lücken in zitare (Favoriten/Lists/Custom-private-Quotes) bewusst
nicht jetzt geschlossen — DB-Schema in zitare für User-Collections
ist da (collections.curatorId + visibility='private'), API/UI
können später nachgezogen werden wenn gebraucht.
Entfernt:
- apps/mana/apps/web/src/routes/(app)/quotes/ (6 Routes inkl.
category, lists, favorites, categories)
- apps/mana/apps/web/src/lib/modules/quotes/ (6 Stores, Queries,
Collections, Tools, Types, SpiralCanvas-Component)
- apps/mana/apps/web/src/lib/i18n/locales/quotes/ (DE/EN/ES/FR/IT)
- apps/mana/apps/web/src/lib/search/providers/quotes.ts
- apps/mana/apps/web/src/lib/components/dashboard/widgets/QuoteWidget.svelte
- apps/mana/apps/web/src/lib/modules/core/widgets/QuoteOfTheDayWidget.svelte
- apps/quotes/ (komplettes Top-Level inkl. @quotes/content Workspace-
Package mit 87 Zitaten in 13 Kategorien)
Aktualisiert (Quotes-Refs raus):
- module-registry.ts (quotesModuleConfig)
- module-registry.test.ts (quotes-Tabellen + sync-name-Mappings)
- cross-app-queries.ts (useRandomFavorite + LocalFavorite-Import)
- search/providers/index.ts (registerLazy 'quotes')
- app-registry/apps.ts (registerApp 'quotes' + Quotes-Icon-Import)
- packages/shared-branding/src/mana-apps.ts (quotes-Eintrag)
- hooks.server.ts (Allowlist)
- types/dashboard.ts (WidgetType 'quotes-quote' + 'quotes')
- types/dashboard.test.ts
- stores/dashboard.svelte.ts (Widget-Default-Liste)
- splitscreen/registry.ts
- components/dashboard/widget-registry.ts
- modules/core/widgets/{WidgetGrid.svelte,index.ts}
- modules/spiral/collect.ts (Quotes/Music/Cards-Snapshots raus —
collect dient den Spiral-DB-Engagement-Snapshot, alle 3 Apps
sind dekommissioniert)
- crypto/plaintext-allowlist.ts (quotesFavorites/Lists/ListTags +
customQuotes raus; bei der Gelegenheit auch music-Reste:
mukkeProjects/playlistSongs/songTags)
- apps/mana/apps/web/package.json ('@quotes/content' Workspace-Dep)
- package.json (6 Quotes-Scripts: quotes:dev, dev:quotes:*,
deploy:landing:quotes, cf:projects:create-Eintrag, dev:quotes:local)
NICHT angefasst (mit Absicht):
- data/database.ts db.version(1).stores — Schema-Snapshot ist frozen
(gleiche Konvention wie für cards/music). Tabellen quotesFavorites,
quotesLists, quotesListTags, customQuotes bleiben im IndexedDB-
Schema, werden aber nicht mehr beschrieben.
- packages/spiral-db — bleibt, wird vom verbleibenden modules/spiral
noch konsumiert (Mana-Activity-Spiral).
- packages/shared-branding/src/app-icons.ts APP_ICONS.quotes (für
Native-PNG-Generator, harmlos).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| src | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
@mana/shared-branding
Shared branding components and configuration for the Mana ecosystem.
Features
- AppLogo: SVG logo component for any Mana app
- AppLogoWithName: Logo with app name combination
- ManaIcon: Universal Mana drop icon for credits display
- Branding Config: Centralized colors, names, and taglines
Installation
pnpm add @mana/shared-branding
Usage
AppLogo
Display an app's logo:
<script lang="ts">
import { AppLogo } from '@mana/shared-branding';
</script>
<AppLogo app="memoro" size={32} />
<AppLogo app="mana" size={32} />
<AppLogo app="cards" size={32} />
<AppLogo app="maerchenzauber" size={32} />
AppLogoWithName
Display logo with app name (perfect for headers):
<script lang="ts">
import { AppLogoWithName } from '@mana/shared-branding';
</script>
<AppLogoWithName app="memoro" size={28} />
<AppLogoWithName app="mana" showName={false} />
ManaIcon
Universal Mana drop icon:
<script lang="ts">
import { ManaIcon } from '@mana/shared-branding';
</script>
<ManaIcon size={24} color="#4287f5" />
Branding Configuration
Access branding config programmatically:
import { getAppBranding, APP_BRANDING } from '@mana/shared-branding';
const memoro = getAppBranding('memoro');
console.log(memoro.name); // "Memoro"
console.log(memoro.tagline); // "AI Voice Memos"
console.log(memoro.primaryColor); // "#f8d62b"
App Branding
| App | Name | Primary Color | Tagline |
|---|---|---|---|
memoro |
Memoro | #f8d62b (Gold) | AI Voice Memos |
mana |
Mana | #6366f1 (Indigo) | Central Hub |
cards |
Cards | #8b5cf6 (Purple) | AI Flashcards |
maerchenzauber |
Märchenzauber | #ec4899 (Pink) | AI Story Creator |
Props
AppLogo
| Prop | Type | Default | Description |
|---|---|---|---|
app |
AppId |
required | App identifier |
size |
number |
32 |
Size in pixels |
color |
string |
App primary color | Override color |
class |
string |
'' |
Additional CSS classes |
AppLogoWithName
| Prop | Type | Default | Description |
|---|---|---|---|
app |
AppId |
required | App identifier |
size |
number |
28 |
Logo size in pixels |
color |
string |
App primary color | Override color |
showName |
boolean |
true |
Show app name |
nameFontSize |
string |
'1.25rem' |
Name font size |
gap |
string |
'0.5rem' |
Gap between logo and name |
class |
string |
'' |
Additional CSS classes |
ManaIcon
| Prop | Type | Default | Description |
|---|---|---|---|
size |
number |
24 |
Size in pixels |
color |
string |
'#4287f5' |
Icon color |
class |
string |
'' |
Additional CSS classes |
Types
type AppId = 'memoro' | 'mana' | 'cards' | 'maerchenzauber';
interface AppBranding {
id: AppId;
name: string;
tagline: string;
primaryColor: string;
secondaryColor?: string;
logoPath: string;
logoViewBox?: string;
logoStroke?: boolean;
logoStrokeWidth?: number;
}