mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:01:09 +02:00
chore: complete ManaCore → Mana rename (docs, go modules, plists, images)
Final cleanup of references missed in previous rename commits: - Dockerfiles: PUBLIC_MANA_CORE_AUTH_URL → PUBLIC_MANA_AUTH_URL - Go modules: github.com/manacore/* → github.com/mana/* (7 go.mod files) - launchd plists: com.manacore.* → com.mana.* (14 files renamed + content) - Image assets: *_Manacore_AI_Credits* → *_Mana_AI_Credits* (11 files) - .env.example files: ManaCore brand strings → Mana - .prettierignore: stale apps/manacore/* paths → apps/mana/* - Markdown docs (CLAUDE.md, /docs/*): mana-core-auth → mana-auth, etc. Excluded from rename: .claude/, devlog/, manascore/ (historical content), client testimonials, blueprints, npm package refs (@mana-core/*). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6f4667c2a3
commit
22a73943e1
307 changed files with 2408 additions and 4537 deletions
|
|
@ -1,12 +1,12 @@
|
|||
# Central Command Bar
|
||||
|
||||
Die zentrale Command Bar bietet eine einheitliche Schnellsuche und Navigation über alle Manacore-Apps hinweg. Sie wird mit `Cmd/Ctrl+K` aktiviert und bietet Suche, Quick Actions und Tastatur-Navigation.
|
||||
Die zentrale Command Bar bietet eine einheitliche Schnellsuche und Navigation über alle Mana-Apps hinweg. Sie wird mit `Cmd/Ctrl+K` aktiviert und bietet Suche, Quick Actions und Tastatur-Navigation.
|
||||
|
||||
## Architektur
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ @manacore/shared-ui │
|
||||
│ @mana/shared-ui │
|
||||
│ ┌─────────────────────────────────────────────────────┐ │
|
||||
│ │ CommandBar.svelte │ │
|
||||
│ │ - Suche mit Debounce (150ms) │ │
|
||||
|
|
@ -30,7 +30,7 @@ Die zentrale Command Bar bietet eine einheitliche Schnellsuche und Navigation ü
|
|||
|
||||
| Package | Beschreibung |
|
||||
|---------|--------------|
|
||||
| `@manacore/shared-ui` | CommandBar Svelte-Komponente + TypeScript-Typen |
|
||||
| `@mana/shared-ui` | CommandBar Svelte-Komponente + TypeScript-Typen |
|
||||
|
||||
## Keyboard Shortcut
|
||||
|
||||
|
|
@ -111,8 +111,8 @@ interface Props {
|
|||
```svelte
|
||||
<script lang="ts">
|
||||
import { goto } from '$app/navigation';
|
||||
import { CommandBar } from '@manacore/shared-ui';
|
||||
import type { CommandBarItem, QuickAction } from '@manacore/shared-ui';
|
||||
import { CommandBar } from '@mana/shared-ui';
|
||||
import type { CommandBarItem, QuickAction } from '@mana/shared-ui';
|
||||
|
||||
let commandBarOpen = $state(false);
|
||||
|
||||
|
|
@ -324,7 +324,7 @@ Typischerweise wird die CommandBar im App-Layout integriert:
|
|||
```svelte
|
||||
<!-- src/routes/(app)/+layout.svelte -->
|
||||
<script lang="ts">
|
||||
import { CommandBar } from '@manacore/shared-ui';
|
||||
import { CommandBar } from '@mana/shared-ui';
|
||||
|
||||
let commandBarOpen = $state(false);
|
||||
|
||||
|
|
@ -358,7 +358,7 @@ Typischerweise wird die CommandBar im App-Layout integriert:
|
|||
|
||||
## Dateien
|
||||
|
||||
### @manacore/shared-ui
|
||||
### @mana/shared-ui
|
||||
|
||||
| Datei | Beschreibung |
|
||||
|-------|--------------|
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Central Help System
|
||||
|
||||
Das zentrale Help-System bietet eine einheitliche Hilfeseite für alle Manacore-Apps. Es unterstützt mehrsprachige Inhalte, Volltextsuche, und die Kombination von zentralen und app-spezifischen Inhalten.
|
||||
Das zentrale Help-System bietet eine einheitliche Hilfeseite für alle Mana-Apps. Es unterstützt mehrsprachige Inhalte, Volltextsuche, und die Kombination von zentralen und app-spezifischen Inhalten.
|
||||
|
||||
## Architektur
|
||||
|
||||
|
|
@ -32,10 +32,10 @@ Das zentrale Help-System bietet eine einheitliche Hilfeseite für alle Manacore-
|
|||
|
||||
| Package | Beschreibung |
|
||||
|---------|--------------|
|
||||
| `@manacore/shared-help-types` | TypeScript-Typen und Zod-Schemas |
|
||||
| `@manacore/shared-help-content` | Content-Loader, Parser, Merger, Suche |
|
||||
| `@manacore/shared-help-ui` | Svelte 5 UI-Komponenten |
|
||||
| `@manacore/shared-help-mobile` | React Native Komponenten |
|
||||
| `@mana/shared-help-types` | TypeScript-Typen und Zod-Schemas |
|
||||
| `@mana/shared-help-content` | Content-Loader, Parser, Merger, Suche |
|
||||
| `@mana/shared-help-ui` | Svelte 5 UI-Komponenten |
|
||||
| `@mana/shared-help-mobile` | React Native Komponenten |
|
||||
|
||||
## Content-Typen
|
||||
|
||||
|
|
@ -178,7 +178,7 @@ interface HelpContent {
|
|||
Der Merger kombiniert zentrale und app-spezifische Inhalte:
|
||||
|
||||
```typescript
|
||||
import { mergeContent, createEmptyContent } from '@manacore/shared-help-content';
|
||||
import { mergeContent, createEmptyContent } from '@mana/shared-help-content';
|
||||
|
||||
// Zentrale Inhalte (für alle Apps)
|
||||
const centralContent: HelpContent = {
|
||||
|
|
@ -220,7 +220,7 @@ Inhalte werden automatisch gefiltert nach:
|
|||
### Such-Index erstellen
|
||||
|
||||
```typescript
|
||||
import { buildSearchIndex, search, createSearcher } from '@manacore/shared-help-content';
|
||||
import { buildSearchIndex, search, createSearcher } from '@mana/shared-help-content';
|
||||
|
||||
// Index erstellen
|
||||
const index = buildSearchIndex(content, {
|
||||
|
|
@ -261,7 +261,7 @@ Vollständige Hilfeseite mit allen Sektionen:
|
|||
|
||||
```svelte
|
||||
<script>
|
||||
import { HelpPage } from '@manacore/shared-help-ui';
|
||||
import { HelpPage } from '@mana/shared-help-ui';
|
||||
import { helpContent, translations } from '$lib/help';
|
||||
</script>
|
||||
|
||||
|
|
@ -296,7 +296,7 @@ Vollständige Hilfeseite mit allen Sektionen:
|
|||
ChangelogSection,
|
||||
ContactSection,
|
||||
HelpSearch,
|
||||
} from '@manacore/shared-help-ui';
|
||||
} from '@mana/shared-help-ui';
|
||||
</script>
|
||||
|
||||
<!-- FAQ mit Kategorien -->
|
||||
|
|
@ -457,7 +457,7 @@ const translations: HelpPageTranslations = {
|
|||
|
||||
## Dateien
|
||||
|
||||
### @manacore/shared-help-types
|
||||
### @mana/shared-help-types
|
||||
|
||||
| Datei | Beschreibung |
|
||||
|-------|--------------|
|
||||
|
|
@ -465,7 +465,7 @@ const translations: HelpPageTranslations = {
|
|||
| `src/schemas.ts` | Zod-Validierungsschemas |
|
||||
| `src/search.ts` | Such-bezogene Typen |
|
||||
|
||||
### @manacore/shared-help-content
|
||||
### @mana/shared-help-content
|
||||
|
||||
| Datei | Beschreibung |
|
||||
|-------|--------------|
|
||||
|
|
@ -474,7 +474,7 @@ const translations: HelpPageTranslations = {
|
|||
| `src/merger.ts` | Content-Merger (zentral + app-spezifisch) |
|
||||
| `src/search.ts` | Volltextsuche mit Fuse.js |
|
||||
|
||||
### @manacore/shared-help-ui
|
||||
### @mana/shared-help-ui
|
||||
|
||||
| Datei | Beschreibung |
|
||||
|-------|--------------|
|
||||
|
|
@ -497,9 +497,9 @@ const translations: HelpPageTranslations = {
|
|||
```json
|
||||
{
|
||||
"dependencies": {
|
||||
"@manacore/shared-help-types": "workspace:*",
|
||||
"@manacore/shared-help-content": "workspace:*",
|
||||
"@manacore/shared-help-ui": "workspace:*"
|
||||
"@mana/shared-help-types": "workspace:*",
|
||||
"@mana/shared-help-content": "workspace:*",
|
||||
"@mana/shared-help-ui": "workspace:*"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
@ -508,7 +508,7 @@ const translations: HelpPageTranslations = {
|
|||
|
||||
```typescript
|
||||
// src/lib/help/content.ts
|
||||
import type { HelpContent } from '@manacore/shared-help-types';
|
||||
import type { HelpContent } from '@mana/shared-help-types';
|
||||
|
||||
export const appHelpContent: Partial<HelpContent> = {
|
||||
faq: [
|
||||
|
|
@ -543,8 +543,8 @@ export const appHelpContent: Partial<HelpContent> = {
|
|||
```svelte
|
||||
<!-- src/routes/(app)/help/+page.svelte -->
|
||||
<script lang="ts">
|
||||
import { HelpPage } from '@manacore/shared-help-ui';
|
||||
import { mergeContent } from '@manacore/shared-help-content';
|
||||
import { HelpPage } from '@mana/shared-help-ui';
|
||||
import { mergeContent } from '@mana/shared-help-content';
|
||||
import { centralContent } from '$lib/help/central';
|
||||
import { appHelpContent } from '$lib/help/content';
|
||||
import { translations } from '$lib/help/translations';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Central Services
|
||||
|
||||
Dieses Verzeichnis dokumentiert zentrale Services, die von allen Manacore-Apps gemeinsam genutzt werden. Diese Services laufen in `mana-core-auth` und bieten einheitliche APIs.
|
||||
Dieses Verzeichnis dokumentiert zentrale Services, die von allen Mana-Apps gemeinsam genutzt werden. Diese Services laufen in `mana-auth` und bieten einheitliche APIs.
|
||||
|
||||
## Übersicht
|
||||
|
||||
|
|
@ -16,7 +16,7 @@ Dieses Verzeichnis dokumentiert zentrale Services, die von allen Manacore-Apps g
|
|||
|
||||
### Zentralisierung
|
||||
|
||||
Bestimmte Daten und Funktionen werden zentral in `mana-core-auth` verwaltet:
|
||||
Bestimmte Daten und Funktionen werden zentral in `mana-auth` verwaltet:
|
||||
|
||||
- **User-bezogen:** Jeder Service speichert Daten pro User (`userId`)
|
||||
- **App-übergreifend:** Daten sind in allen Apps verfügbar
|
||||
|
|
@ -24,10 +24,10 @@ Bestimmte Daten und Funktionen werden zentral in `mana-core-auth` verwaltet:
|
|||
|
||||
### Soft References
|
||||
|
||||
Da die Apps ihre eigenen Datenbanken haben, können keine Foreign Keys zu mana-core-auth erstellt werden:
|
||||
Da die Apps ihre eigenen Datenbanken haben, können keine Foreign Keys zu mana-auth erstellt werden:
|
||||
|
||||
```
|
||||
Todo-DB mana-core-auth-DB
|
||||
Todo-DB mana-auth-DB
|
||||
┌─────────────────┐ ┌─────────────────┐
|
||||
│ task_to_tags │ │ tags │
|
||||
│ │ │ │
|
||||
|
|
@ -44,7 +44,7 @@ Für jeden zentralen Service gibt es ein entsprechendes Client-Package:
|
|||
|
||||
| Service | Package |
|
||||
|---------|---------|
|
||||
| Tags | `@manacore/shared-tags` |
|
||||
| Tags | `@mana/shared-tags` |
|
||||
|
||||
Diese Packages enthalten:
|
||||
- TypeScript Types
|
||||
|
|
@ -66,7 +66,7 @@ pnpm dev:auth
|
|||
### Datenbank-Schema pushen
|
||||
|
||||
```bash
|
||||
cd services/mana-core-auth
|
||||
cd services/mana-auth
|
||||
pnpm db:push
|
||||
```
|
||||
|
||||
|
|
@ -74,19 +74,19 @@ pnpm db:push
|
|||
|
||||
| Package | Beschreibung |
|
||||
|---------|--------------|
|
||||
| `@manacore/shared-tags` | Tags Client für zentrale Tags API |
|
||||
| `@manacore/shared-theme` | Theme Store, A11y Store, User Settings |
|
||||
| `@manacore/shared-theme-ui` | Svelte UI-Komponenten für Theming |
|
||||
| `@manacore/shared-help-types` | TypeScript-Typen für Help-Inhalte |
|
||||
| `@manacore/shared-help-content` | Content-Loader, Parser, Merger, Suche |
|
||||
| `@manacore/shared-help-ui` | Svelte UI-Komponenten für Hilfeseite |
|
||||
| `@manacore/shared-help-mobile` | React Native Komponenten für Hilfe |
|
||||
| `@manacore/shared-splitscreen` | Split-Screen Container, Store, Komponenten |
|
||||
| `@mana/shared-tags` | Tags Client für zentrale Tags API |
|
||||
| `@mana/shared-theme` | Theme Store, A11y Store, User Settings |
|
||||
| `@mana/shared-theme-ui` | Svelte UI-Komponenten für Theming |
|
||||
| `@mana/shared-help-types` | TypeScript-Typen für Help-Inhalte |
|
||||
| `@mana/shared-help-content` | Content-Loader, Parser, Merger, Suche |
|
||||
| `@mana/shared-help-ui` | Svelte UI-Komponenten für Hilfeseite |
|
||||
| `@mana/shared-help-mobile` | React Native Komponenten für Hilfe |
|
||||
| `@mana/shared-splitscreen` | Split-Screen Container, Store, Komponenten |
|
||||
|
||||
## Hinzufügen neuer zentraler Services
|
||||
|
||||
1. **Schema erstellen:** `services/mana-core-auth/src/db/schema/<name>.schema.ts`
|
||||
2. **Module erstellen:** `services/mana-core-auth/src/<name>/`
|
||||
1. **Schema erstellen:** `services/mana-auth/src/db/schema/<name>.schema.ts`
|
||||
2. **Module erstellen:** `services/mana-auth/src/<name>/`
|
||||
3. **In app.module.ts registrieren**
|
||||
4. **Shared Package erstellen:** `packages/shared-<name>/`
|
||||
5. **Dokumentation schreiben:** `docs/central-services/<NAME>.md`
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Das Split-Screen Feature ermöglicht es, zwei Mana-Apps nebeneinander in einem B
|
|||
|
||||
| Aspekt | Details |
|
||||
|--------|---------|
|
||||
| **Package** | `@manacore/shared-splitscreen` |
|
||||
| **Package** | `@mana/shared-splitscreen` |
|
||||
| **Integrierte Apps** | Calendar, Todo, Contacts |
|
||||
| **Aktivierung** | Split-Button in App-Dropdown oder Ctrl/Cmd+Klick |
|
||||
| **Persistenz** | URL-Parameter + localStorage |
|
||||
|
|
@ -69,7 +69,7 @@ Haupt-Container mit CSS Grid Layout.
|
|||
|
||||
```svelte
|
||||
<script>
|
||||
import { SplitPaneContainer, setSplitPanelContext, DEFAULT_APPS } from '@manacore/shared-splitscreen';
|
||||
import { SplitPaneContainer, setSplitPanelContext, DEFAULT_APPS } from '@mana/shared-splitscreen';
|
||||
|
||||
// Context initialisieren
|
||||
const splitPanel = setSplitPanelContext('calendar', DEFAULT_APPS);
|
||||
|
|
@ -135,7 +135,7 @@ Overlay mit Swap- und Close-Buttons.
|
|||
### Initialisierung
|
||||
|
||||
```typescript
|
||||
import { setSplitPanelContext, DEFAULT_APPS } from '@manacore/shared-splitscreen';
|
||||
import { setSplitPanelContext, DEFAULT_APPS } from '@mana/shared-splitscreen';
|
||||
|
||||
// Im Layout-Component (z.B. +layout.svelte)
|
||||
const splitPanel = setSplitPanelContext('calendar', DEFAULT_APPS);
|
||||
|
|
@ -170,7 +170,7 @@ interface SplitPanelStore {
|
|||
### Context-Zugriff
|
||||
|
||||
```typescript
|
||||
import { getSplitPanelContext } from '@manacore/shared-splitscreen';
|
||||
import { getSplitPanelContext } from '@mana/shared-splitscreen';
|
||||
|
||||
// In Child-Components
|
||||
const splitPanel = getSplitPanelContext();
|
||||
|
|
@ -201,7 +201,7 @@ https://calendar.app/?panel=todo&split=60
|
|||
### localStorage
|
||||
|
||||
```typescript
|
||||
// Key: manacore-splitscreen-{appId}
|
||||
// Key: mana-splitscreen-{appId}
|
||||
{
|
||||
"version": 1,
|
||||
"state": {
|
||||
|
|
@ -225,7 +225,7 @@ https://calendar.app/?panel=todo&split=60
|
|||
// package.json
|
||||
{
|
||||
"dependencies": {
|
||||
"@manacore/shared-splitscreen": "workspace:*"
|
||||
"@mana/shared-splitscreen": "workspace:*"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
@ -236,12 +236,12 @@ https://calendar.app/?panel=todo&split=60
|
|||
<!-- +layout.svelte -->
|
||||
<script lang="ts">
|
||||
import { onMount } from 'svelte';
|
||||
import { PillNavigation } from '@manacore/shared-ui';
|
||||
import { PillNavigation } from '@mana/shared-ui';
|
||||
import {
|
||||
SplitPaneContainer,
|
||||
setSplitPanelContext,
|
||||
DEFAULT_APPS,
|
||||
} from '@manacore/shared-splitscreen';
|
||||
} from '@mana/shared-splitscreen';
|
||||
|
||||
// Split-Panel Store initialisieren
|
||||
const splitPanel = setSplitPanelContext('calendar', DEFAULT_APPS);
|
||||
|
|
@ -369,7 +369,7 @@ http://localhost:5179/?panel=contacts&split=70
|
|||
### localStorage löschen
|
||||
|
||||
```javascript
|
||||
localStorage.removeItem('manacore-splitscreen-calendar');
|
||||
localStorage.removeItem('manacore-splitscreen-todo');
|
||||
localStorage.removeItem('manacore-splitscreen-contacts');
|
||||
localStorage.removeItem('mana-splitscreen-calendar');
|
||||
localStorage.removeItem('mana-splitscreen-todo');
|
||||
localStorage.removeItem('mana-splitscreen-contacts');
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
# Central Tags API
|
||||
|
||||
Das zentrale Tags-System ermöglicht einheitliche Tags/Labels über alle Manacore-Apps hinweg. Ein Tag, der in Todo erstellt wird, ist automatisch auch in Calendar und Contacts verfügbar.
|
||||
Das zentrale Tags-System ermöglicht einheitliche Tags/Labels über alle Mana-Apps hinweg. Ein Tag, der in Todo erstellt wird, ist automatisch auch in Calendar und Contacts verfügbar.
|
||||
|
||||
## Architektur
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ mana-core-auth │
|
||||
│ mana-auth │
|
||||
│ ┌─────────────────────────────────────────────────────┐ │
|
||||
│ │ tags Tabelle (zentral) │ │
|
||||
│ │ - id, userId, name, color, icon, createdAt │ │
|
||||
|
|
@ -69,10 +69,10 @@ Beim Aufruf von `POST /tags/defaults` werden folgende Standard-Tags erstellt:
|
|||
|
||||
### Shared Package
|
||||
|
||||
Das `@manacore/shared-tags` Package stellt einen Client bereit:
|
||||
Das `@mana/shared-tags` Package stellt einen Client bereit:
|
||||
|
||||
```typescript
|
||||
import { createTagsClient } from '@manacore/shared-tags';
|
||||
import { createTagsClient } from '@mana/shared-tags';
|
||||
|
||||
const tagsClient = createTagsClient({
|
||||
authUrl: 'http://localhost:3001',
|
||||
|
|
@ -107,7 +107,7 @@ Die Apps nutzen den Client in ihren Stores:
|
|||
|
||||
**Todo (labels.svelte.ts):**
|
||||
```typescript
|
||||
import { createTagsClient, type Tag } from '@manacore/shared-tags';
|
||||
import { createTagsClient, type Tag } from '@mana/shared-tags';
|
||||
|
||||
// Label = Tag (Alias für Abwärtskompatibilität)
|
||||
export type Label = Tag;
|
||||
|
|
@ -141,7 +141,7 @@ Jede App behält ihre eigene Junction-Table für die Zuordnung:
|
|||
```sql
|
||||
CREATE TABLE task_to_tags (
|
||||
task_id UUID REFERENCES tasks(id) ON DELETE CASCADE,
|
||||
tag_id UUID NOT NULL, -- Soft reference zu mana-core-auth.tags
|
||||
tag_id UUID NOT NULL, -- Soft reference zu mana-auth.tags
|
||||
PRIMARY KEY (task_id, tag_id)
|
||||
);
|
||||
```
|
||||
|
|
@ -150,7 +150,7 @@ CREATE TABLE task_to_tags (
|
|||
```sql
|
||||
CREATE TABLE event_to_tags (
|
||||
event_id UUID REFERENCES events(id) ON DELETE CASCADE,
|
||||
tag_id UUID NOT NULL, -- Soft reference zu mana-core-auth.tags
|
||||
tag_id UUID NOT NULL, -- Soft reference zu mana-auth.tags
|
||||
PRIMARY KEY (event_id, tag_id)
|
||||
);
|
||||
```
|
||||
|
|
@ -159,7 +159,7 @@ CREATE TABLE event_to_tags (
|
|||
```sql
|
||||
CREATE TABLE contact_to_tags (
|
||||
contact_id UUID REFERENCES contacts(id) ON DELETE CASCADE,
|
||||
tag_id UUID NOT NULL, -- Soft reference zu mana-core-auth.tags
|
||||
tag_id UUID NOT NULL, -- Soft reference zu mana-auth.tags
|
||||
PRIMARY KEY (contact_id, tag_id)
|
||||
);
|
||||
```
|
||||
|
|
@ -203,7 +203,7 @@ curl -X POST http://localhost:3001/api/v1/tags/defaults \
|
|||
|
||||
## Dateien
|
||||
|
||||
### Backend (mana-core-auth)
|
||||
### Backend (mana-auth)
|
||||
|
||||
| Datei | Beschreibung |
|
||||
|-------|--------------|
|
||||
|
|
@ -235,7 +235,7 @@ curl -X POST http://localhost:3001/api/v1/tags/defaults \
|
|||
Wenn eine App vorher eigene Tags hatte:
|
||||
|
||||
1. **Daten exportieren:** Bestehende Tags aus der lokalen Tabelle exportieren
|
||||
2. **Tags erstellen:** Per API in mana-core-auth erstellen
|
||||
2. **Tags erstellen:** Per API in mana-auth erstellen
|
||||
3. **IDs mappen:** Alte Tag-IDs auf neue IDs mappen
|
||||
4. **Junction Tables aktualisieren:** Tag-IDs in Junction-Tables ersetzen
|
||||
5. **Lokale Tabelle löschen:** Alte Tags-Tabelle entfernen
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
# Central Theming System
|
||||
|
||||
Das zentrale Theming-System ermöglicht einheitliches Aussehen und Benutzereinstellungen über alle Manacore-Apps hinweg. Es besteht aus mehreren Schichten: Theme-Varianten, Light/Dark-Modus und Accessibility-Einstellungen.
|
||||
Das zentrale Theming-System ermöglicht einheitliches Aussehen und Benutzereinstellungen über alle Mana-Apps hinweg. Es besteht aus mehreren Schichten: Theme-Varianten, Light/Dark-Modus und Accessibility-Einstellungen.
|
||||
|
||||
## Architektur
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ mana-core-auth │
|
||||
│ mana-auth │
|
||||
│ ┌─────────────────────────────────────────────────────┐ │
|
||||
│ │ user_settings (JSON-Feld) │ │
|
||||
│ │ - theme: { mode, colorScheme, pinnedThemes } │ │
|
||||
|
|
@ -30,8 +30,8 @@ Das zentrale Theming-System ermöglicht einheitliches Aussehen und Benutzereinst
|
|||
|
||||
| Package | Beschreibung |
|
||||
|---------|--------------|
|
||||
| `@manacore/shared-theme` | Theme Store, Types, Utilities, Konstanten |
|
||||
| `@manacore/shared-theme-ui` | Svelte UI-Komponenten (ThemeSelector, ThemePage, etc.) |
|
||||
| `@mana/shared-theme` | Theme Store, Types, Utilities, Konstanten |
|
||||
| `@mana/shared-theme-ui` | Svelte UI-Komponenten (ThemeSelector, ThemePage, etc.) |
|
||||
|
||||
## Theme-Varianten
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ background-color: hsl(var(--color-primary));
|
|||
### Theme Store
|
||||
|
||||
```typescript
|
||||
import { createThemeStore } from '@manacore/shared-theme';
|
||||
import { createThemeStore } from '@mana/shared-theme';
|
||||
|
||||
// Store erstellen
|
||||
export const theme = createThemeStore({
|
||||
|
|
@ -152,7 +152,7 @@ export const theme = createThemeStore({
|
|||
### User Settings Store (Server-Sync)
|
||||
|
||||
```typescript
|
||||
import { createUserSettingsStore } from '@manacore/shared-theme';
|
||||
import { createUserSettingsStore } from '@mana/shared-theme';
|
||||
|
||||
export const userSettings = createUserSettingsStore({
|
||||
appId: 'calendar',
|
||||
|
|
@ -186,7 +186,7 @@ await userSettings.updateAppOverride({
|
|||
### A11y Store
|
||||
|
||||
```typescript
|
||||
import { createA11yStore } from '@manacore/shared-theme';
|
||||
import { createA11yStore } from '@mana/shared-theme';
|
||||
|
||||
export const a11y = createA11yStore({ appId: 'calendar' });
|
||||
|
||||
|
|
@ -226,7 +226,7 @@ Vollständige Themes-Seite mit allen Optionen:
|
|||
|
||||
```svelte
|
||||
<script>
|
||||
import { ThemePage } from '@manacore/shared-theme-ui';
|
||||
import { ThemePage } from '@mana/shared-theme-ui';
|
||||
import { theme, a11y } from '$lib/stores';
|
||||
</script>
|
||||
|
||||
|
|
@ -247,7 +247,7 @@ Dropdown zur Theme-Auswahl:
|
|||
|
||||
```svelte
|
||||
<script>
|
||||
import { ThemeSelector } from '@manacore/shared-theme-ui';
|
||||
import { ThemeSelector } from '@mana/shared-theme-ui';
|
||||
import { theme } from '$lib/stores';
|
||||
</script>
|
||||
|
||||
|
|
@ -260,7 +260,7 @@ Umschalter für Light/Dark/System:
|
|||
|
||||
```svelte
|
||||
<script>
|
||||
import { ThemeModeSelector } from '@manacore/shared-theme-ui';
|
||||
import { ThemeModeSelector } from '@mana/shared-theme-ui';
|
||||
import { theme } from '$lib/stores';
|
||||
</script>
|
||||
|
||||
|
|
@ -273,7 +273,7 @@ Einfacher Dark/Light Toggle:
|
|||
|
||||
```svelte
|
||||
<script>
|
||||
import { ThemeToggle } from '@manacore/shared-theme-ui';
|
||||
import { ThemeToggle } from '@mana/shared-theme-ui';
|
||||
import { theme } from '$lib/stores';
|
||||
</script>
|
||||
|
||||
|
|
@ -286,7 +286,7 @@ Vollständige Accessibility-Einstellungen:
|
|||
|
||||
```svelte
|
||||
<script>
|
||||
import { A11ySettings } from '@manacore/shared-theme-ui';
|
||||
import { A11ySettings } from '@mana/shared-theme-ui';
|
||||
import { a11y } from '$lib/stores';
|
||||
</script>
|
||||
|
||||
|
|
@ -344,7 +344,7 @@ theme: {
|
|||
|
||||
## Dateien
|
||||
|
||||
### @manacore/shared-theme
|
||||
### @mana/shared-theme
|
||||
|
||||
| Datei | Beschreibung |
|
||||
|-------|--------------|
|
||||
|
|
@ -358,7 +358,7 @@ theme: {
|
|||
| `src/utils.ts` | Theme Utilities |
|
||||
| `src/app-routes.ts` | Start-Page Konfiguration |
|
||||
|
||||
### @manacore/shared-theme-ui
|
||||
### @mana/shared-theme-ui
|
||||
|
||||
| Datei | Beschreibung |
|
||||
|-------|--------------|
|
||||
|
|
@ -377,8 +377,8 @@ theme: {
|
|||
```json
|
||||
{
|
||||
"dependencies": {
|
||||
"@manacore/shared-theme": "workspace:*",
|
||||
"@manacore/shared-theme-ui": "workspace:*"
|
||||
"@mana/shared-theme": "workspace:*",
|
||||
"@mana/shared-theme-ui": "workspace:*"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
@ -387,7 +387,7 @@ theme: {
|
|||
|
||||
```typescript
|
||||
// src/lib/stores/theme.ts
|
||||
import { createThemeStore, createA11yStore } from '@manacore/shared-theme';
|
||||
import { createThemeStore, createA11yStore } from '@mana/shared-theme';
|
||||
|
||||
export const theme = createThemeStore({
|
||||
appId: 'myapp',
|
||||
|
|
@ -425,7 +425,7 @@ export const a11y = createA11yStore({
|
|||
```svelte
|
||||
<!-- src/routes/(app)/themes/+page.svelte -->
|
||||
<script>
|
||||
import { ThemePage } from '@manacore/shared-theme-ui';
|
||||
import { ThemePage } from '@mana/shared-theme-ui';
|
||||
import { theme, a11y } from '$lib/stores/theme';
|
||||
</script>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue