@using AIStudio.Dialogs.Settings
@using AIStudio.Settings.DataModel
@attribute [Route(Routes.ASSISTANTS)]
@inherits MSGComponentBase

<div class="inner-scrolling-context">
    <MudText Typo="Typo.h3" Class="mb-2 mr-3">
        @T("Assistants")
    </MudText>

    <InnerScrolling>

        @if (this.SettingsManager.IsAnyCategoryAssistantVisible("General",
            (Components.TEXT_SUMMARIZER_ASSISTANT, PreviewFeatures.NONE),
            (Components.TRANSLATION_ASSISTANT, PreviewFeatures.NONE),
            (Components.GRAMMAR_SPELLING_ASSISTANT, PreviewFeatures.NONE),
            (Components.REWRITE_ASSISTANT, PreviewFeatures.NONE),
            (Components.SYNONYMS_ASSISTANT, PreviewFeatures.NONE)
            ))
        {
            <MudText Typo="Typo.h4" Class="mb-2 mr-3">
                @T("General")
            </MudText>
            <MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3">
                <AssistantBlock TSettings="SettingsDialogTextSummarizer" Component="Components.TEXT_SUMMARIZER_ASSISTANT" Name="@T("Text Summarizer")" Description="@T("Use an LLM to summarize a given text.")" Icon="@Icons.Material.Filled.TextSnippet" Link="@Routes.ASSISTANT_SUMMARIZER"/>
                <AssistantBlock TSettings="SettingsDialogTranslation" Component="Components.TRANSLATION_ASSISTANT" Name="@T("Translation")" Description="@T("Translate text into another language.")" Icon="@Icons.Material.Filled.Translate" Link="@Routes.ASSISTANT_TRANSLATION"/>
                <AssistantBlock TSettings="SettingsDialogGrammarSpelling" Component="Components.GRAMMAR_SPELLING_ASSISTANT" Name="@T("Grammar & Spelling")" Description="@T("Check grammar and spelling of a given text.")" Icon="@Icons.Material.Filled.Edit" Link="@Routes.ASSISTANT_GRAMMAR_SPELLING"/>
                <AssistantBlock TSettings="SettingsDialogRewrite" Component="Components.REWRITE_ASSISTANT" Name="@T("Rewrite & Improve")" Description="@T("Rewrite and improve a given text for a chosen style.")" Icon="@Icons.Material.Filled.Edit" Link="@Routes.ASSISTANT_REWRITE"/>
                <AssistantBlock TSettings="SettingsDialogSynonyms" Component="Components.SYNONYMS_ASSISTANT" Name="@T("Synonyms")" Description="@T("Find synonyms for a given word or phrase.")" Icon="@Icons.Material.Filled.Spellcheck" Link="@Routes.ASSISTANT_SYNONYMS"/>
            </MudStack>
        }

        @if (this.SettingsManager.IsAnyCategoryAssistantVisible("Business",
            (Components.EMAIL_ASSISTANT, PreviewFeatures.NONE),
            (Components.DOCUMENT_ANALYSIS_ASSISTANT, PreviewFeatures.PRE_DOCUMENT_ANALYSIS_2025),
            (Components.MY_TASKS_ASSISTANT, PreviewFeatures.NONE),
            (Components.AGENDA_ASSISTANT, PreviewFeatures.NONE),
            (Components.JOB_POSTING_ASSISTANT, PreviewFeatures.NONE),
            (Components.LEGAL_CHECK_ASSISTANT, PreviewFeatures.NONE),
            (Components.ICON_FINDER_ASSISTANT, PreviewFeatures.NONE)
            ))
        {
            <MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6">
                @T("Business")
            </MudText>
            <MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3">
                <AssistantBlock TSettings="SettingsDialogWritingEMails" Component="Components.EMAIL_ASSISTANT" Name="@T("E-Mail")" Description="@T("Generate an e-mail for a given context.")" Icon="@Icons.Material.Filled.Email" Link="@Routes.ASSISTANT_EMAIL"/>
                <AssistantBlock TSettings="SettingsDialogDocumentAnalysis" Component="Components.DOCUMENT_ANALYSIS_ASSISTANT" RequiredPreviewFeature="PreviewFeatures.PRE_DOCUMENT_ANALYSIS_2025" Name="@T("Document Analysis")" Description="@T("Analyze a document regarding defined rules and extract key information.")" Icon="@Icons.Material.Filled.DocumentScanner" Link="@Routes.ASSISTANT_DOCUMENT_ANALYSIS"/>
                <AssistantBlock TSettings="SettingsDialogMyTasks" Component="Components.MY_TASKS_ASSISTANT" Name="@T("My Tasks")" Description="@T("Analyze a text or an email for tasks you need to complete.")" Icon="@Icons.Material.Filled.Task" Link="@Routes.ASSISTANT_MY_TASKS"/>
                <AssistantBlock TSettings="SettingsDialogAgenda" Component="Components.AGENDA_ASSISTANT" Name="@T("Agenda Planner")" Description="@T("Generate an agenda for a given meeting, seminar, etc.")" Icon="@Icons.Material.Filled.CalendarToday" Link="@Routes.ASSISTANT_AGENDA"/>
                <AssistantBlock TSettings="SettingsDialogJobPostings" Component="Components.JOB_POSTING_ASSISTANT" Name="@T("Job Posting")" Description="@T("Generate a job posting for a given job description.")" Icon="@Icons.Material.Filled.Work" Link="@Routes.ASSISTANT_JOB_POSTING"/>
                <AssistantBlock TSettings="SettingsDialogLegalCheck" Component="Components.LEGAL_CHECK_ASSISTANT" Name="@T("Legal Check")" Description="@T("Ask a question about a legal document.")" Icon="@Icons.Material.Filled.Gavel" Link="@Routes.ASSISTANT_LEGAL_CHECK"/>
                <AssistantBlock TSettings="SettingsDialogIconFinder" Component="Components.ICON_FINDER_ASSISTANT" Name="@T("Icon Finder")" Description="@T("Use an LLM to find an icon for a given context.")" Icon="@Icons.Material.Filled.FindInPage" Link="@Routes.ASSISTANT_ICON_FINDER"/>
            </MudStack>
        }

        @if (this.SettingsManager.IsAnyCategoryAssistantVisible("Learning",
            (Components.BIAS_DAY_ASSISTANT, PreviewFeatures.NONE)
            ))
        {
            <MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6">
                @T("Learning")
            </MudText>
            <MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3">
                <AssistantBlock TSettings="SettingsDialogAssistantBias" Component="Components.BIAS_DAY_ASSISTANT" Name="@T("Bias of the Day")" Description="@T("Learn about one cognitive bias every day.")" Icon="@Icons.Material.Filled.Psychology" Link="@Routes.ASSISTANT_BIAS"/>
            </MudStack>
        }

        @if (this.SettingsManager.IsAnyCategoryAssistantVisible("Software Engineering",
            (Components.CODING_ASSISTANT, PreviewFeatures.NONE),
            (Components.ERI_ASSISTANT, PreviewFeatures.PRE_RAG_2024)
            ))
        {
            <MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6">
                @T("Software Engineering")
            </MudText>
            <MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3">
                <AssistantBlock TSettings="SettingsDialogCoding" Component="Components.CODING_ASSISTANT" Name="@T("Coding")" Description="@T("Get coding and debugging support from an LLM.")" Icon="@Icons.Material.Filled.Code" Link="@Routes.ASSISTANT_CODING"/>
                <AssistantBlock TSettings="SettingsDialogERIServer" Component="Components.ERI_ASSISTANT" RequiredPreviewFeature="PreviewFeatures.PRE_RAG_2024" Name="@T("ERI Server")" Description="@T("Generate an ERI server to integrate business systems.")" Icon="@Icons.Material.Filled.PrivateConnectivity" Link="@Routes.ASSISTANT_ERI"/>
            </MudStack>
        }

        @if (this.SettingsManager.IsAnyCategoryAssistantVisible("AI Studio Development",
            (Components.I18N_ASSISTANT, PreviewFeatures.NONE)
            ))
        {
            <MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6">
                @T("AI Studio Development")
            </MudText>
            <MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3">
                <AssistantBlock TSettings="SettingsDialogI18N" Component="Components.I18N_ASSISTANT" Name="@T("Localization")" Description="@T("Translate AI Studio text content into other languages")" Icon="@Icons.Material.Filled.Translate" Link="@Routes.ASSISTANT_AI_STUDIO_I18N"/>
            </MudStack>
        }

    </InnerScrolling>
</div>
