@page "/help"
@attribute [Authorize]
@inject ILocalizationService Loc
@inject NavigationManager Navigation

<PageTitle>@Loc["page.title.help"] - Author Buddy</PageTitle>

<div class="help-page">
    <h3>@Loc["page.title.help"]</h3>

    @if (Loc.CurrentLanguage == "en")
    {
        <section class="help-section">
            <h4 class="help-section-title">📋 Overview</h4>
            <p>AuthorBuddy is an AI-assisted writing environment for authors and requirements engineers. It connects to local LLMs (via Ollama or llama.cpp) to help you edit, analyze, and develop your texts.</p>
            <p>Key features at a glance: project management with templates, Markdown editor with versioning, AI writing assistant with multiple modes, spell checking, style analysis, fact-checking (RAG), and Wikipedia research.</p>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">📁 Managing Projects</h4>
            <p><strong>Creating a project:</strong> Click <em>File → New Project</em> in the sidebar. Choose between the <strong>Novel</strong> template (for fiction with drafts, facts, characters) or the <strong>Technical</strong> template (for requirements documents with specifications and use cases).</p>
            <p><strong>Opening a project:</strong> All your projects are listed under <em>Projects</em> in the sidebar. Click any project to open it in the editor.</p>
            <p><strong>Copying a project:</strong> Use the context menu on a project to create a full copy including all files and settings.</p>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">✍️ Editor</h4>
            <p>The editor is your main workspace for writing Markdown texts.</p>
            <ul>
                <li><strong>Autosave:</strong> Your text is saved automatically every 2 seconds.</li>
                <li><strong>Manual save:</strong> Press <kbd>Ctrl+S</kbd> or click <em>Save</em>.</li>
                <li><strong>Versions:</strong> Click <em>Version</em> to create a snapshot. Browse and restore old versions via the <em>Versions</em> button.</li>
                <li><strong>Diff view:</strong> Compare any two versions side by side.</li>
                <li><strong>Spell check:</strong> Click <em>Spell Check</em> to have the AI correct spelling and grammar.</li>
                <li><strong>Style check:</strong> Click <em>Style Check</em> to get AI feedback on your writing style.</li>
                <li><strong>RAG search:</strong> After indexing your project, search through your own texts via the <em>Facts (RAG)</em> button.</li>
                <li><strong>Wikipedia research:</strong> Search Wikipedia (German and English) directly from the editor. Save articles as facts.</li>
                <li><strong>File categories:</strong> Tag your <code>.md</code> files with 🏷 in the file tree. Categories include Character, Exposé, Fact, and Document. The Exposé is automatically used as context in the assistant.</li>
            </ul>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">🤖 AI Assistant</h4>
            <p>The assistant offers multiple specialized modes. Select a mode from the dropdown, enter your text, and click <em>Execute</em>.</p>

            <h5>Novel modes (always available):</h5>
            <ul>
                <li><strong>Editing:</strong> Style optimization — makes your text more vivid and engaging.</li>
                <li><strong>Advocatus Diaboli:</strong> Takes a radical opposing view to reveal weaknesses in your argument.</li>
                <li><strong>Hook Finder:</strong> Generates 5 captivating opening sentences.</li>
                <li><strong>ELI5:</strong> Simplifies complex passages.</li>
                <li><strong>Co-Author:</strong> Creative brainstorming for plot and character development.</li>
                <li><strong>RAG:</strong> Factual query against your project's indexed content.</li>
            </ul>

            <h5>Technical modes (only with Technical template):</h5>
            <ul>
                <li><strong>Requirements Spec:</strong> Create a requirements specification per IREB standards.</li>
                <li><strong>Functional Spec:</strong> Create a detailed functional specification.</li>
                <li><strong>Use Cases:</strong> Define use cases with actors, flows, and exceptions.</li>
                <li><strong>Stakeholder Analysis:</strong> Identify and analyze project stakeholders.</li>
                <li><strong>Glossary:</strong> Create a technical glossary.</li>
                <li><strong>Quality Requirements:</strong> Define quality requirements per ISO 25010.</li>
                <li><strong>Risk Analysis:</strong> Identify and assess project risks.</li>
            </ul>

            <p><strong>Temperature:</strong> The temperature slider controls the AI's creativity (0 = precise/factual, 1 = balanced, 2 = chaotic/experimental).</p>
            <p><strong>Custom prompts:</strong> Click <em>Edit Prompt</em> to modify the system prompt for the current session. <em>Reset</em> restores the default.</p>
            <p><strong>Send to editor:</strong> Click the button to transfer the assistant's output directly into the editor.</p>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">⚙️ Settings</h4>
            <p>In the settings page you can configure your personal preferences:</p>
            <ul>
                <li><strong>Appearance:</strong> Choose between Light, Dark, and Retro (Windows 95) themes.</li>
                <li><strong>Language:</strong> Switch between German and English.</li>
                <li><strong>Prompts:</strong> Customize the system prompts and temperatures for each assistant mode.</li>
            </ul>
            <p>When a project is loaded, settings apply to that project. Without a project, your personal default settings are used.</p>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">❓ FAQ</h4>
            <dl>
                <dt>How do I index my project for RAG search?</dt>
                <dd>Open the editor with your project, then click <em>Index Project</em>. This scans all <code>.md</code> files and creates embeddings for similarity search.</dd>

                <dt>Why can't I see the technical assistant modes?</dt>
                <dd>Technical modes (Requirements Spec, Use Cases, etc.) only appear when you have a project with the <strong>Technical</strong> template open.</dd>

                <dt>Why are some file categories disabled?</dt>
                <dd>Exposé and Document categories cannot be combined with other categories. Only one file per project can be the Exposé.</dd>

                <dt>How do I set up 2FA?</dt>
                <dd>Go to <em>Settings → Set up 2FA</em>, scan the QR code with an authenticator app, and enter a verification code.</dd>
            </dl>
        </section>
    }
    else
    {
        <section class="help-section">
            <h4 class="help-section-title">📋 Übersicht</h4>
            <p>AuthorBuddy ist eine KI-gestützte Schreibumgebung für Autoren und Requirements Engineers. Sie verbindet sich mit lokalen LLMs (via Ollama oder llama.cpp) und hilft dir, Texte zu bearbeiten, zu analysieren und weiterzuentwickeln.</p>
            <p>Die wichtigsten Funktionen auf einen Blick: Projektverwaltung mit Vorlagen, Markdown-Editor mit Versionierung, KI-Assistent mit mehreren Modi, Rechtschreibprüfung, Stilanalyse, Faktenabfrage (RAG) und Wikipedia-Recherche.</p>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">📁 Projekte verwalten</h4>
            <p><strong>Projekt anlegen:</strong> Klicke in der Seitenleiste auf <em>Datei → Neues Projekt</em>. Wähle zwischen der <strong>Roman</strong>-Vorlage (für Belletristik mit Drafts, Fakten, Charakteren) oder der <strong>Technischen</strong> Vorlage (für Anforderungsdokumente mit Lastenheft und Use Cases).</p>
            <p><strong>Projekt öffnen:</strong> Alle Projekte werden unter <em>Projekte</em> in der Seitenleiste aufgelistet. Klicke auf ein Projekt, um es im Editor zu öffnen.</p>
            <p><strong>Projekt kopieren:</strong> Nutze das Kontextmenü eines Projekts, um eine vollständige Kopie inkl. aller Dateien und Einstellungen zu erstellen.</p>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">✍️ Editor</h4>
            <p>Der Editor ist dein zentraler Arbeitsbereich zum Schreiben von Markdown-Texten.</p>
            <ul>
                <li><strong>Autosave:</strong> Dein Text wird automatisch alle 2 Sekunden gespeichert.</li>
                <li><strong>Manuell speichern:</strong> Drücke <kbd>Strg+S</kbd> oder klicke auf <em>Speichern</em>.</li>
                <li><strong>Versionierung:</strong> Klicke auf <em>Version</em>, um einen Snapshot zu erstellen. Alte Versionen kannst du über den <em>Versionen</em>-Button durchsuchen und wiederherstellen.</li>
                <li><strong>Diff-Ansicht:</strong> Vergleiche zwei Versionen nebeneinander.</li>
                <li><strong>Rechtschreibprüfung:</strong> Klicke auf <em>Rechtschreibung prüfen</em>, um Rechtschreib- und Grammatikfehler korrigieren zu lassen.</li>
                <li><strong>Stilanalyse:</strong> Klicke auf <em>Stil prüfen</em>, um KI-Feedback zu deinem Schreibstil zu erhalten.</li>
                <li><strong>RAG-Suche:</strong> Nach dem Indexieren deines Projekts kannst du über <em>Fakten suchen (RAG)</em> in deinen eigenen Texten suchen.</li>
                <li><strong>Wikipedia-Recherche:</strong> Suche direkt aus dem Editor auf Wikipedia (DE+EN). Speichere Artikel als Fakten.</li>
                <li><strong>Datei-Kategorien:</strong> Markiere deine <code>.md</code>-Dateien im Dateibaum mit 🏷. Kategorien: Charakter, Exposé, Fakt, Dokument. Das Exposé wird automatisch als Kontext im Assistenten verwendet.</li>
            </ul>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">🤖 KI-Assistent</h4>
            <p>Der Assistent bietet verschiedene spezialisierte Modi. Wähle einen Modus aus dem Dropdown, gib deinen Text ein und klicke auf <em>Ausführen</em>.</p>

            <h5>Roman-Modi (immer verfügbar):</h5>
            <ul>
                <li><strong>Lektorat:</strong> Stiloptimierung – macht den Text lebendiger und anschaulicher.</li>
                <li><strong>Advocatus Diaboli:</strong> Radikale Gegenposition, um Schwachstellen aufzuzeigen.</li>
                <li><strong>Hook-Finder:</strong> Generiert 5 fesselnde Einstiegssätze.</li>
                <li><strong>ELI5:</strong> Vereinfacht komplexe Passagen.</li>
                <li><strong>Co-Author:</strong> Kreatives Brainstorming für Handlung und Charaktere.</li>
                <li><strong>RAG:</strong> Faktenabfrage aus dem projekteigenen Index.</li>
            </ul>

            <h5>Technische Modi (nur bei technischer Vorlage):</h5>
            <ul>
                <li><strong>Lastenheft:</strong> Erstellung eines Lastenhefts nach IREB-Standard.</li>
                <li><strong>Pflichtenheft:</strong> Detailliertes Pflichtenheft mit technischer Umsetzung.</li>
                <li><strong>Use Cases:</strong> Definition von Anwendungsfällen mit Akteuren und Abläufen.</li>
                <li><strong>Stakeholder-Analyse:</strong> Identifikation und Analyse aller Projektbeteiligten.</li>
                <li><strong>Glossar:</strong> Erstellung eines Fachglossars.</li>
                <li><strong>Qualitätsanforderungen:</strong> Definition nach ISO 25010.</li>
                <li><strong>Risikoanalyse:</strong> Identifikation und Bewertung von Projektrisiken.</li>
            </ul>

            <p><strong>Temperatur:</strong> Der Temperatur-Regler beeinflusst die Kreativität der KI (0 = präzise/faktentreu, 1 = ausgewogen, 2 = chaotisch/experimentell).</p>
            <p><strong>Prompt bearbeiten:</strong> Klicke auf <em>Prompt bearbeiten</em>, um den System-Prompt für die aktuelle Session anzupassen. <em>Zurücksetzen</em> lädt den Standard-Prompt.</p>
            <p><strong>An Editor übermitteln:</strong> Der Button überträgt die Ausgabe des Assistenten direkt in den Editor.</p>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">⚙️ Einstellungen</h4>
            <p>In den Einstellungen kannst du deine persönlichen Präferenzen konfigurieren:</p>
            <ul>
                <li><strong>Design:</strong> Wähle zwischen Hell, Dunkel und Retro (Windows 95).</li>
                <li><strong>Sprache:</strong> Wechsle zwischen Deutsch und Englisch.</li>
                <li><strong>Prompts:</strong> Passe die System-Prompts und Temperaturen für jeden Assistenten-Modus an.</li>
            </ul>
            <p>Wenn ein Projekt geladen ist, gelten die Einstellungen für dieses Projekt. Ohne Projekt werden deine persönlichen Standard-Einstellungen verwendet.</p>
        </section>

        <section class="help-section">
            <h4 class="help-section-title">❓ FAQ</h4>
            <dl>
                <dt>Wie indexiere ich mein Projekt für die RAG-Suche?</dt>
                <dd>Öffne den Editor mit deinem Projekt und klicke auf <em>Projekt indexieren</em>. Dabei werden alle <code>.md</code>-Dateien gescannt und Embeddings für die Ähnlichkeitssuche erstellt.</dd>

                <dt>Warum sehe ich die technischen Assistenten-Modi nicht?</dt>
                <dd>Die technischen Modi (Lastenheft, Use Cases usw.) erscheinen nur, wenn du ein Projekt mit der <strong>Technischen</strong> Vorlage geöffnet hast.</dd>

                <dt>Warum sind manche Datei-Kategorien deaktiviert?</dt>
                <dd>Exposé und Dokument können nicht mit anderen Kategorien kombiniert werden. Pro Projekt kann nur eine Datei das Exposé sein.</dd>

                <dt>Wie richte ich 2FA ein?</dt>
                <dd>Gehe zu <em>Einstellungen → 2FA einrichten</em>, scanne den QR-Code mit einer Authenticator-App und gib einen Bestätigungscode ein.</dd>
            </dl>
        </section>
    }

    <button class="btn btn-secondary" @onclick='() => Navigation.NavigateTo("/")' style="margin-top:24px;">← @(Loc.CurrentLanguage == "en" ? "Back to Dashboard" : "Zurück zum Dashboard")</button>
</div>

<style>
    .help-page {
        max-width: 800px;
        margin: 0 auto;
        padding: 24px;
    }
    .help-section {
        margin-bottom: 28px;
    }
    .help-section-title {
        font-size: 16px;
        margin-bottom: 8px;
        padding-bottom: 4px;
        border-bottom: 1px solid var(--border-color);
    }
    .help-page p {
        margin: 6px 0;
        line-height: 1.6;
    }
    .help-page ul {
        margin: 6px 0;
        padding-left: 20px;
    }
    .help-page li {
        margin: 3px 0;
        line-height: 1.5;
    }
    .help-page dl dt {
        font-weight: bold;
        margin-top: 10px;
    }
    .help-page dl dd {
        margin-left: 0;
        margin-top: 2px;
        font-size: 13px;
    }
    .help-page kbd {
        padding: 1px 5px;
        border: 1px solid var(--border-color);
        border-radius: 3px;
        font-size: 12px;
        background: var(--menu-bg);
    }
    .help-page h5 {
        margin: 10px 0 4px;
        font-size: 13px;
    }
</style>
