From f0233b8d319299e3172b1c3171ce2c76ecb98a3d Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 25 Mar 2026 09:19:06 +0100 Subject: [PATCH] feat(storage, chat, picture): add shared help pages Add help pages to the remaining high-maturity production apps: - Storage (84/100): FAQ (upload, sharing, versioning, trash, privacy), features (cloud storage, sharing, versioning, search), shortcuts - Chat (82/100): FAQ (AI models, spaces, templates, comparison, privacy), features (multi-model, spaces, comparison, templates), shortcuts - Picture (81/100): FAQ (generation, credits, moodboards, explore, privacy), features (AI generation, gallery, moodboards, explore), shortcuts All 6 production web apps now have standardized help pages using the shared help system. Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/chat/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 166 ++++++++++++++++ .../src/routes/(protected)/help/+page.svelte | 157 +++++++++++++++ apps/picture/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 184 ++++++++++++++++++ .../apps/web/src/routes/app/help/+page.svelte | 157 +++++++++++++++ apps/storage/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 160 +++++++++++++++ .../apps/web/src/routes/help/+page.svelte | 157 +++++++++++++++ pnpm-lock.yaml | 22 +++ 10 files changed, 1009 insertions(+) create mode 100644 apps/chat/apps/web/src/lib/content/help/index.ts create mode 100644 apps/chat/apps/web/src/routes/(protected)/help/+page.svelte create mode 100644 apps/picture/apps/web/src/lib/content/help/index.ts create mode 100644 apps/picture/apps/web/src/routes/app/help/+page.svelte create mode 100644 apps/storage/apps/web/src/lib/content/help/index.ts create mode 100644 apps/storage/apps/web/src/routes/help/+page.svelte diff --git a/apps/chat/apps/web/package.json b/apps/chat/apps/web/package.json index c04145ad2..e7a518df7 100644 --- a/apps/chat/apps/web/package.json +++ b/apps/chat/apps/web/package.json @@ -42,6 +42,8 @@ "@manacore/shared-feedback-service": "workspace:*", "@manacore/shared-feedback-ui": "workspace:*", "@manacore/shared-i18n": "workspace:*", + "@manacore/shared-help-types": "workspace:*", + "@manacore/shared-help-ui": "workspace:*", "@manacore/shared-icons": "workspace:*", "@manacore/shared-profile-ui": "workspace:*", "@manacore/shared-stores": "workspace:*", diff --git a/apps/chat/apps/web/src/lib/content/help/index.ts b/apps/chat/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..3e48e2952 --- /dev/null +++ b/apps/chat/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,166 @@ +/** + * Help content for Chat app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getChatHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-models', + question: isDE + ? 'Welche KI-Modelle stehen zur Verfügung?' + : 'Which AI models are available?', + answer: isDE + ? '

Es gibt zwei Kategorien von Modellen:

Lokale Modelle sind ideal für alltägliche Aufgaben. Cloud-Modelle bieten höhere Qualität für komplexe Anfragen.

' + : '

There are two categories of models:

Local models are ideal for everyday tasks. Cloud models offer higher quality for complex requests.

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['modelle', 'ki', 'lokal', 'cloud'] : ['models', 'ai', 'local', 'cloud'], + }, + { + id: 'faq-spaces', + question: isDE ? 'Was sind Spaces?' : 'What are Spaces?', + answer: isDE + ? '

Spaces sind Bereiche, um deine Chats thematisch zu organisieren:

' + : '

Spaces are areas to organize your chats by topic:

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: isDE ? ['spaces', 'organisation', 'bereiche'] : ['spaces', 'organize', 'areas'], + }, + { + id: 'faq-templates', + question: isDE ? 'Wie nutze ich Templates?' : 'How do I use templates?', + answer: isDE + ? '

Templates sind vordefinierte Prompt-Vorlagen:

' + : '

Templates are predefined prompt presets:

', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: isDE ? ['templates', 'vorlagen', 'prompts'] : ['templates', 'presets', 'prompts'], + }, + { + id: 'faq-compare', + question: isDE ? 'Was ist der Modellvergleich?' : 'What is model comparison?', + answer: isDE + ? '

Mit dem Modellvergleich kannst du denselben Prompt an mehrere Modelle gleichzeitig senden und die Antworten nebeneinander vergleichen. So findest du das beste Modell für deine Aufgabe.

' + : '

Model comparison lets you send the same prompt to multiple models simultaneously and compare responses side by side. This helps you find the best model for your task.

', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: isDE ? ['vergleich', 'modelle', 'test'] : ['compare', 'models', 'test'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Chats geschützt?' : 'How are my chats protected?', + answer: isDE + ? '

Deine Unterhaltungen sind sicher:

' + : '

Your conversations are secure:

', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['datenschutz', 'sicherheit', 'dsgvo'] : ['privacy', 'security', 'gdpr'], + }, + ], + features: [ + { + id: 'feature-models', + title: isDE ? 'Mehrere KI-Modelle' : 'Multiple AI Models', + description: isDE + ? 'Lokale und Cloud-Modelle für jede Aufgabe' + : 'Local and cloud models for every task', + icon: '🤖', + category: 'core', + highlights: isDE + ? ['7+ lokale Modelle (kostenlos)', 'Cloud-Modelle (Claude, GPT)', 'Vision-Modelle'] + : ['7+ local models (free)', 'Cloud models (Claude, GPT)', 'Vision models'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-spaces', + title: 'Spaces', + description: isDE + ? 'Organisiere Chats nach Themen und Projekten' + : 'Organize chats by topics and projects', + icon: '📂', + category: 'core', + highlights: isDE + ? ['Thematische Gruppierung', 'Schneller Kontextwechsel', 'Eigene Unterhaltungen'] + : ['Topic grouping', 'Quick context switch', 'Separate conversations'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-compare', + title: isDE ? 'Modellvergleich' : 'Model Comparison', + description: isDE + ? 'Vergleiche Antworten mehrerer Modelle nebeneinander' + : 'Compare responses from multiple models side by side', + icon: '⚖️', + category: 'advanced', + highlights: isDE + ? ['Parallele Anfragen', 'Qualitätsvergleich', 'Beste Modellwahl'] + : ['Parallel requests', 'Quality comparison', 'Best model selection'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-templates', + title: 'Templates', + description: isDE + ? 'Optimierte Prompts für wiederkehrende Aufgaben' + : 'Optimized prompts for recurring tasks', + icon: '📋', + category: 'core', + highlights: isDE + ? ['Prompt-Vorlagen', 'Ein-Klick-Start', 'Verschiedene Kategorien'] + : ['Prompt presets', 'One-click start', 'Various categories'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + shortcuts: [ + { + id: 'shortcuts-nav', + category: 'navigation', + title: 'Navigation', + language: isDE ? 'de' : 'en', + order: 1, + shortcuts: [ + { shortcut: 'Cmd/Ctrl + 1', action: 'Chat' }, + { shortcut: 'Cmd/Ctrl + 2', action: isDE ? 'Vergleich' : 'Compare' }, + { shortcut: 'Cmd/Ctrl + 3', action: 'Templates' }, + { shortcut: 'Cmd/Ctrl + 4', action: 'Spaces' }, + { shortcut: 'Cmd/Ctrl + 5', action: isDE ? 'Dokumente' : 'Documents' }, + { shortcut: 'Cmd/Ctrl + 6', action: isDE ? 'Archiv' : 'Archive' }, + ], + }, + ], + gettingStarted: [], + changelog: [], + contact: { + id: 'contact-support', + title: isDE ? 'Support kontaktieren' : 'Contact Support', + content: isDE + ? '

Unser Support-Team hilft dir bei allen Fragen rund um Chat.

' + : '

Our support team is here to help you with any chat-related questions.

', + language: isDE ? 'de' : 'en', + order: 1, + supportEmail: 'support@mana.how', + documentationUrl: 'https://mana.how/docs', + responseTime: isDE ? 'Normalerweise innerhalb von 24 Stunden' : 'Usually within 24 hours', + }, + }; +} diff --git a/apps/chat/apps/web/src/routes/(protected)/help/+page.svelte b/apps/chat/apps/web/src/routes/(protected)/help/+page.svelte new file mode 100644 index 000000000..4685558ae --- /dev/null +++ b/apps/chat/apps/web/src/routes/(protected)/help/+page.svelte @@ -0,0 +1,157 @@ + + + + {translations.title} | Chat + + + goto('/chat')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/picture/apps/web/package.json b/apps/picture/apps/web/package.json index 738162e55..529a012e7 100644 --- a/apps/picture/apps/web/package.json +++ b/apps/picture/apps/web/package.json @@ -25,6 +25,8 @@ "@manacore/shared-feedback-service": "workspace:*", "@manacore/shared-feedback-ui": "workspace:*", "@manacore/shared-i18n": "workspace:*", + "@manacore/shared-help-types": "workspace:*", + "@manacore/shared-help-ui": "workspace:*", "@manacore/shared-icons": "workspace:*", "@manacore/shared-profile-ui": "workspace:*", "@manacore/shared-subscription-types": "workspace:*", diff --git a/apps/picture/apps/web/src/lib/content/help/index.ts b/apps/picture/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..eba973558 --- /dev/null +++ b/apps/picture/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,184 @@ +/** + * Help content for Picture app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getPictureHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-generate', + question: isDE ? 'Wie generiere ich ein Bild?' : 'How do I generate an image?', + answer: isDE + ? '

So erstellst du ein KI-Bild:

  1. Gehe zu Generieren (Taste N)
  2. Wähle ein Modell aus
  3. Beschreibe dein gewünschtes Bild im Prompt-Feld
  4. Klicke auf Generieren

Tipp: Je detaillierter dein Prompt, desto besser das Ergebnis.

' + : '

To create an AI image:

  1. Go to Generate (key N)
  2. Select a model
  3. Describe your desired image in the prompt field
  4. Click Generate

Tip: The more detailed your prompt, the better the result.

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE + ? ['generieren', 'bild', 'erstellen', 'prompt'] + : ['generate', 'image', 'create', 'prompt'], + }, + { + id: 'faq-credits', + question: isDE ? 'Wie funktioniert das Credit-System?' : 'How does the credit system work?', + answer: isDE + ? '

Picture nutzt ein Freemium-Modell:

  • 3 kostenlose Generierungen für neue Nutzer
  • Danach werden 10 Credits pro Generierung berechnet
  • Credits können über die Einstellungen erworben werden
  • Dein verbleibendes Kontingent wird in der App angezeigt
' + : '

Picture uses a freemium model:

  • 3 free generations for new users
  • After that, 10 credits per generation are charged
  • Credits can be purchased via settings
  • Your remaining balance is displayed in the app
', + category: 'billing', + order: 2, + language: isDE ? 'de' : 'en', + tags: isDE ? ['credits', 'kosten', 'freemium'] : ['credits', 'cost', 'freemium'], + }, + { + id: 'faq-boards', + question: isDE ? 'Was sind Moodboards?' : 'What are Moodboards?', + answer: isDE + ? '

Moodboards sind Sammlungen, um deine Bilder zu organisieren:

  • Erstelle Boards für verschiedene Projekte oder Stile
  • Füge Bilder per Drag & Drop zu Boards hinzu
  • Teile Boards mit anderen

Gehe zu Boards (Taste M) um loszulegen.

' + : '

Moodboards are collections to organize your images:

  • Create boards for different projects or styles
  • Add images to boards via drag & drop
  • Share boards with others

Go to Boards (key M) to get started.

', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['moodboard', 'sammlung', 'organisieren'] + : ['moodboard', 'collection', 'organize'], + }, + { + id: 'faq-explore', + question: isDE ? 'Was ist der Explore-Bereich?' : 'What is the Explore section?', + answer: isDE + ? '

Im Explore-Bereich kannst du Bilder anderer Nutzer entdecken, dich inspirieren lassen und Prompts als Vorlage verwenden.

' + : '

In the Explore section you can discover images from other users, get inspired, and use prompts as templates.

', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['explore', 'entdecken', 'inspiration'] + : ['explore', 'discover', 'inspiration'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Bilder geschützt?' : 'How are my images protected?', + answer: isDE + ? '

Deine Bilder sind sicher:

  • Privat: Generierte Bilder sind standardmäßig nur für dich sichtbar
  • Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) verschlüsselt
  • DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
  • Löschung: Du kannst Bilder jederzeit dauerhaft löschen
' + : '

Your images are secure:

  • Private: Generated images are only visible to you by default
  • Encryption: All data is encrypted in transit (TLS)
  • GDPR Compliant: We follow EU data protection regulations
  • Deletion: You can permanently delete images at any time
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['datenschutz', 'sicherheit', 'dsgvo'] : ['privacy', 'security', 'gdpr'], + }, + ], + features: [ + { + id: 'feature-generate', + title: isDE ? 'KI-Bildgenerierung' : 'AI Image Generation', + description: isDE + ? 'Erstelle Bilder mit modernsten KI-Modellen' + : 'Create images with state-of-the-art AI models', + icon: '🎨', + category: 'core', + highlights: isDE + ? ['Replicate AI-Modelle', 'Prompt-basiert', '3 kostenlose Generierungen'] + : ['Replicate AI models', 'Prompt-based', '3 free generations'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-gallery', + title: isDE ? 'Galerie' : 'Gallery', + description: isDE + ? 'Verwalte und organisiere deine generierten Bilder' + : 'Manage and organize your generated images', + icon: '🖼️', + category: 'core', + highlights: isDE + ? ['Raster- & Listenansicht', 'Tags & Favoriten', 'Archiv'] + : ['Grid & list view', 'Tags & favorites', 'Archive'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-boards', + title: 'Moodboards', + description: isDE + ? 'Sammle und organisiere Bilder in thematischen Boards' + : 'Collect and organize images in themed boards', + icon: '📌', + category: 'core', + highlights: isDE + ? ['Drag & Drop', 'Boards teilen', 'Thematisch sortieren'] + : ['Drag & drop', 'Share boards', 'Sort by theme'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-explore', + title: 'Explore', + description: isDE + ? 'Entdecke Bilder und Prompts der Community' + : 'Discover images and prompts from the community', + icon: '🔍', + category: 'core', + highlights: isDE + ? ['Community-Feed', 'Prompt-Vorlagen', 'Inspiration'] + : ['Community feed', 'Prompt templates', 'Inspiration'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + shortcuts: [ + { + id: 'shortcuts-nav', + category: 'navigation', + title: 'Navigation', + language: isDE ? 'de' : 'en', + order: 1, + shortcuts: [ + { shortcut: 'G', action: isDE ? 'Galerie' : 'Gallery' }, + { shortcut: 'M', action: 'Moodboards' }, + { shortcut: 'E', action: 'Explore' }, + { shortcut: 'N', action: isDE ? 'Generieren' : 'Generate' }, + { shortcut: 'U', action: 'Upload' }, + { shortcut: 'A', action: isDE ? 'Archiv' : 'Archive' }, + ], + }, + { + id: 'shortcuts-view', + category: 'general', + title: isDE ? 'Ansicht' : 'View', + language: isDE ? 'de' : 'en', + order: 2, + shortcuts: [ + { shortcut: '1', action: isDE ? 'Listen-Ansicht' : 'List view' }, + { shortcut: '2', action: isDE ? 'Raster 3×3' : 'Grid 3×3' }, + { shortcut: '3', action: isDE ? 'Raster 5×5' : 'Grid 5×5' }, + { shortcut: 'Tab', action: isDE ? 'UI ein-/ausblenden' : 'Toggle UI' }, + { shortcut: '?', action: isDE ? 'Tastenkürzel anzeigen' : 'Show shortcuts' }, + ], + }, + ], + gettingStarted: [], + changelog: [], + contact: { + id: 'contact-support', + title: isDE ? 'Support kontaktieren' : 'Contact Support', + content: isDE + ? '

Unser Support-Team hilft dir bei allen Fragen rund um Picture.

' + : '

Our support team is here to help you with any picture-related questions.

', + language: isDE ? 'de' : 'en', + order: 1, + supportEmail: 'support@mana.how', + documentationUrl: 'https://mana.how/docs', + responseTime: isDE ? 'Normalerweise innerhalb von 24 Stunden' : 'Usually within 24 hours', + }, + }; +} diff --git a/apps/picture/apps/web/src/routes/app/help/+page.svelte b/apps/picture/apps/web/src/routes/app/help/+page.svelte new file mode 100644 index 000000000..1302d0e6f --- /dev/null +++ b/apps/picture/apps/web/src/routes/app/help/+page.svelte @@ -0,0 +1,157 @@ + + + + {translations.title} | Picture + + + goto('/app/gallery')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/storage/apps/web/package.json b/apps/storage/apps/web/package.json index 579a03673..56b7e110f 100644 --- a/apps/storage/apps/web/package.json +++ b/apps/storage/apps/web/package.json @@ -46,6 +46,8 @@ "@manacore/shared-feedback-service": "workspace:*", "@manacore/shared-feedback-ui": "workspace:*", "@manacore/shared-i18n": "workspace:*", + "@manacore/shared-help-types": "workspace:*", + "@manacore/shared-help-ui": "workspace:*", "@manacore/shared-icons": "workspace:*", "@manacore/shared-profile-ui": "workspace:*", "@manacore/shared-stores": "workspace:*", diff --git a/apps/storage/apps/web/src/lib/content/help/index.ts b/apps/storage/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..162d8fa5f --- /dev/null +++ b/apps/storage/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,160 @@ +/** + * Help content for Storage app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getStorageHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-upload', + question: isDE ? 'Wie lade ich Dateien hoch?' : 'How do I upload files?', + answer: isDE + ? '

Du kannst Dateien auf verschiedene Arten hochladen:

  • Drag & Drop: Ziehe Dateien direkt in den Browser
  • Upload-Button: Klicke auf das Upload-Symbol in der Toolbar
  • Es können bis zu 10 Dateien gleichzeitig hochgeladen werden (max. 100 MB pro Datei)
' + : '

You can upload files in several ways:

  • Drag & drop: Drag files directly into the browser
  • Upload button: Click the upload icon in the toolbar
  • Up to 10 files can be uploaded simultaneously (max 100 MB per file)
', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: isDE ? ['hochladen', 'upload', 'dateien'] : ['upload', 'files', 'drag-drop'], + }, + { + id: 'faq-share', + question: isDE ? 'Wie teile ich Dateien mit anderen?' : 'How do I share files?', + answer: isDE + ? '

Um eine Datei oder einen Ordner zu teilen:

  • Rechtsklick auf die Datei und wähle Teilen
  • Ein Share-Link wird erstellt, den du kopieren kannst
  • Optional: Setze ein Passwort, ein Ablaufdatum oder ein Download-Limit
  • Geteilte Links können jederzeit widerrufen werden
' + : '

To share a file or folder:

  • Right-click the file and select Share
  • A share link will be created that you can copy
  • Optional: Set a password, expiration date, or download limit
  • Shared links can be revoked at any time
', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: isDE ? ['teilen', 'link', 'freigabe'] : ['share', 'link', 'access'], + }, + { + id: 'faq-versions', + question: isDE ? 'Wie funktioniert die Versionierung?' : 'How does versioning work?', + answer: isDE + ? '

Jede Datei unterstützt automatische Versionierung:

  • Lade eine neue Version hoch, um die Datei zu aktualisieren
  • Alle vorherigen Versionen bleiben erhalten
  • Du kannst jederzeit ältere Versionen herunterladen
  • Jede Version zeigt Größe, Datum und optionalen Kommentar
' + : '

Every file supports automatic versioning:

  • Upload a new version to update the file
  • All previous versions are preserved
  • You can download older versions at any time
  • Each version shows size, date, and optional comment
', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: isDE ? ['version', 'historie', 'aktualisieren'] : ['version', 'history', 'update'], + }, + { + id: 'faq-trash', + question: isDE ? 'Wie funktioniert der Papierkorb?' : 'How does the trash work?', + answer: isDE + ? '

Gelöschte Dateien landen zunächst im Papierkorb:

  • Im Papierkorb können Dateien wiederhergestellt werden
  • Einzelne Dateien oder der gesamte Papierkorb können endgültig gelöscht werden
  • Endgültig gelöschte Dateien können nicht wiederhergestellt werden
' + : '

Deleted files are moved to the trash first:

  • Files in trash can be restored
  • Individual files or the entire trash can be permanently deleted
  • Permanently deleted files cannot be recovered
', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: isDE ? ['papierkorb', 'löschen', 'wiederherstellen'] : ['trash', 'delete', 'restore'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Dateien geschützt?' : 'How are my files protected?', + answer: isDE + ? '

Deine Dateien sind sicher:

  • Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) verschlüsselt
  • Privat: Nur du hast Zugriff auf deine Dateien
  • DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
  • Share-Kontrolle: Du bestimmst, wer Zugriff hat (Passwort, Ablauf, Limit)
' + : '

Your files are secure:

  • Encryption: All data is encrypted in transit (TLS)
  • Private: Only you have access to your files
  • GDPR Compliant: We follow EU data protection regulations
  • Share control: You decide who has access (password, expiry, limits)
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['datenschutz', 'sicherheit', 'dsgvo'] : ['privacy', 'security', 'gdpr'], + }, + ], + features: [ + { + id: 'feature-storage', + title: isDE ? 'Cloud-Speicher' : 'Cloud Storage', + description: isDE + ? 'Sichere Dateiablage mit Ordnerstruktur' + : 'Secure file storage with folder structure', + icon: '☁️', + category: 'core', + highlights: isDE + ? ['Drag & Drop Upload', 'Ordner-Hierarchie', 'Datei-Tags'] + : ['Drag & drop upload', 'Folder hierarchy', 'File tags'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-sharing', + title: isDE ? 'Dateien teilen' : 'File Sharing', + description: isDE ? 'Teile Dateien sicher per Link' : 'Share files securely via link', + icon: '🔗', + category: 'core', + highlights: isDE + ? ['Passwortschutz', 'Ablaufdatum', 'Download-Limit'] + : ['Password protection', 'Expiration date', 'Download limit'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-versioning', + title: isDE ? 'Versionierung' : 'Versioning', + description: isDE + ? 'Automatische Versionskontrolle für alle Dateien' + : 'Automatic version control for all files', + icon: '📝', + category: 'advanced', + highlights: isDE + ? ['Versions-Historie', 'Kommentare', 'Ältere Versionen laden'] + : ['Version history', 'Comments', 'Download older versions'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-search', + title: isDE ? 'Suche' : 'Search', + description: isDE + ? 'Finde Dateien und Ordner blitzschnell' + : 'Find files and folders instantly', + icon: '🔍', + category: 'core', + highlights: isDE + ? ['Volltextsuche', 'Tag-Filter', 'Favoriten'] + : ['Full-text search', 'Tag filters', 'Favorites'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + shortcuts: [ + { + id: 'shortcuts-nav', + category: 'navigation', + title: 'Navigation', + language: isDE ? 'de' : 'en', + order: 1, + shortcuts: [ + { shortcut: 'Cmd/Ctrl + K', action: isDE ? 'Suche öffnen' : 'Open search' }, + { shortcut: 'Cmd/Ctrl + 1', action: isDE ? 'Dateien' : 'Files' }, + { shortcut: 'Cmd/Ctrl + 2', action: isDE ? 'Geteilt' : 'Shared' }, + { shortcut: 'Cmd/Ctrl + 3', action: isDE ? 'Favoriten' : 'Favorites' }, + { shortcut: 'Cmd/Ctrl + 4', action: isDE ? 'Papierkorb' : 'Trash' }, + ], + }, + ], + gettingStarted: [], + changelog: [], + contact: { + id: 'contact-support', + title: isDE ? 'Support kontaktieren' : 'Contact Support', + content: isDE + ? '

Unser Support-Team hilft dir bei allen Fragen rund um Storage.

' + : '

Our support team is here to help you with any storage-related questions.

', + language: isDE ? 'de' : 'en', + order: 1, + supportEmail: 'support@mana.how', + documentationUrl: 'https://mana.how/docs', + responseTime: isDE ? 'Normalerweise innerhalb von 24 Stunden' : 'Usually within 24 hours', + }, + }; +} diff --git a/apps/storage/apps/web/src/routes/help/+page.svelte b/apps/storage/apps/web/src/routes/help/+page.svelte new file mode 100644 index 000000000..03cf75d04 --- /dev/null +++ b/apps/storage/apps/web/src/routes/help/+page.svelte @@ -0,0 +1,157 @@ + + + + {translations.title} | Storage + + + goto('/files')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b3be822a..b0aefc8e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -752,6 +752,12 @@ importers: '@manacore/shared-feedback-ui': specifier: workspace:* version: link:../../../../packages/shared-feedback-ui + '@manacore/shared-help-types': + specifier: workspace:* + version: link:../../../../packages/shared-help-types + '@manacore/shared-help-ui': + specifier: workspace:* + version: link:../../../../packages/shared-help-ui '@manacore/shared-i18n': specifier: workspace:* version: link:../../../../packages/shared-i18n @@ -4236,6 +4242,12 @@ importers: '@manacore/shared-feedback-ui': specifier: workspace:* version: link:../../../../packages/shared-feedback-ui + '@manacore/shared-help-types': + specifier: workspace:* + version: link:../../../../packages/shared-help-types + '@manacore/shared-help-ui': + specifier: workspace:* + version: link:../../../../packages/shared-help-ui '@manacore/shared-i18n': specifier: workspace:* version: link:../../../../packages/shared-i18n @@ -5477,6 +5489,12 @@ importers: '@manacore/shared-feedback-ui': specifier: workspace:* version: link:../../../../packages/shared-feedback-ui + '@manacore/shared-help-types': + specifier: workspace:* + version: link:../../../../packages/shared-help-types + '@manacore/shared-help-ui': + specifier: workspace:* + version: link:../../../../packages/shared-help-ui '@manacore/shared-i18n': specifier: workspace:* version: link:../../../../packages/shared-i18n @@ -6967,6 +6985,10 @@ importers: version: 5.9.3 packages/shared-nestjs-auth: + dependencies: + jose: + specifier: ^5.0.0 + version: 5.10.0 devDependencies: '@nestjs/common': specifier: ^10.0.0