style: refine layout and improve visual design

This commit is contained in:
hart_s3 2026-08-07 15:47:04 +02:00
parent f1654889b5
commit 6bd21bc55b
2 changed files with 38 additions and 66 deletions

View File

@ -3040,6 +3040,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::ATTACHDOCUMENTS::T2250917004"] = "Some fi
-- Drag and drop files into the marked area or click here to attach documents: -- Drag and drop files into the marked area or click here to attach documents:
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::ATTACHDOCUMENTS::T230755331"] = "Drag and drop files into the marked area or click here to attach documents:" UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::ATTACHDOCUMENTS::T230755331"] = "Drag and drop files into the marked area or click here to attach documents:"
-- The file '{0}' could not be checked for prompt injection and was not attached.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::ATTACHDOCUMENTS::T2404630365"] = "The file '{0}' could not be checked for prompt injection and was not attached."
-- The media transcription was canceled. -- The media transcription was canceled.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::ATTACHDOCUMENTS::T241403726"] = "The media transcription was canceled." UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::ATTACHDOCUMENTS::T241403726"] = "The media transcription was canceled."
@ -5575,27 +5578,15 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINGGUIDELINEDIALOG::T4250996615"] = "P
-- Chat attachment -- Chat attachment
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T1071345316"] = "Chat attachment" UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T1071345316"] = "Chat attachment"
-- The file '{0}' could not be checked for prompt injection and was not attached.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::ATTACHDOCUMENTS::T2404630365"] = "The file '{0}' could not be checked for prompt injection and was not attached."
-- Security warning
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T1862129203"] = "Security warning"
-- AI Studio has reliably detected and blocked the suspicious content. Your applications and data remain protected. Please review the content you uploaded.
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T3661810823"] = "AI Studio has reliably detected and blocked the suspicious content. Your applications and data remain protected. Please review the content you uploaded."
-- Security active
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T4212328947"] = "Security active"
-- Security notice
UI_TEXT_CONTENT["AISTUDIO::LAYOUT::MAINLAYOUT::T4004397997"] = "Security notice"
-- Content source -- Content source
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T1129278507"] = "Content source" UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T1129278507"] = "Content source"
-- Attempt to override instructions -- Attempt to override instructions
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T161976090"] = "Attempt to override instructions" UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T161976090"] = "Attempt to override instructions"
-- Security warning
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T1862129203"] = "Security warning"
-- Attempt to expose protected data -- Attempt to expose protected data
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T2050274293"] = "Attempt to expose protected data" UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T2050274293"] = "Attempt to expose protected data"
@ -5605,9 +5596,6 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T2260642992"] =
-- Attempt to change the AI's role -- Attempt to change the AI's role
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T2340508370"] = "Attempt to change the AI's role" UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T2340508370"] = "Attempt to change the AI's role"
-- AI Studio blocked this content before it reached a model or agent.
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T2378027194"] = "AI Studio blocked this content before it reached a model or agent."
-- Hidden instructions using markup -- Hidden instructions using markup
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T2526538070"] = "Hidden instructions using markup" UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T2526538070"] = "Hidden instructions using markup"
@ -5632,6 +5620,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T3448155331"] =
-- Attempt to manipulate an agent -- Attempt to manipulate an agent
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T355252317"] = "Attempt to manipulate an agent" UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T355252317"] = "Attempt to manipulate an agent"
-- AI Studio has reliably detected and blocked the suspicious content. Your applications and data remain protected. Please review the content you uploaded.
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T3661810823"] = "AI Studio has reliably detected and blocked the suspicious content. Your applications and data remain protected. Please review the content you uploaded."
-- File content -- File content
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T3788064862"] = "File content" UI_TEXT_CONTENT["AISTUDIO::DIALOGS::PROMPTINJECTIONALERTDIALOG::T3788064862"] = "File content"
@ -7354,6 +7345,9 @@ UI_TEXT_CONTENT["AISTUDIO::LAYOUT::MAINLAYOUT::T2979224202"] = "Writer"
-- Show details -- Show details
UI_TEXT_CONTENT["AISTUDIO::LAYOUT::MAINLAYOUT::T3692372066"] = "Show details" UI_TEXT_CONTENT["AISTUDIO::LAYOUT::MAINLAYOUT::T3692372066"] = "Show details"
-- Security notice
UI_TEXT_CONTENT["AISTUDIO::LAYOUT::MAINLAYOUT::T4004397997"] = "Security notice"
-- Information -- Information
UI_TEXT_CONTENT["AISTUDIO::LAYOUT::MAINLAYOUT::T4256323669"] = "Information" UI_TEXT_CONTENT["AISTUDIO::LAYOUT::MAINLAYOUT::T4256323669"] = "Information"

View File

@ -7,55 +7,33 @@
@if (Result is not null) @if (Result is not null)
{ {
<MudPaper Class="pa-6 mb-4" Elevation="0" Style="background:#fff5f5;border:1px solid #f5d0d0;"> <MudPaper Class="pa-6 mb-4" Elevation="0" Style="background:#fff3e0; border:1px solid #ffcc80;">
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="3"> <MudStack Row="true" AlignItems="AlignItems.Center" Spacing="3">
<MudAvatar Size="Size.Large" <MudAvatar Size="Size.Large"
Color="Color.Error" Color="Color.Warning"
Variant="Variant.Filled"> Variant="Variant.Filled">
<MudIcon Icon="@Icons.Material.Filled.GppMaybe"/> <MudIcon Icon="@Icons.Material.Filled.GppMaybe"/>
</MudAvatar> </MudAvatar>
<MudStack Spacing="0"> <MudStack Spacing="0">
<MudText Typo="Typo.h5"> <MudJustifiedText Typo="Typo.h5">
@T("Security warning") @T("Security warning")
</MudText> </MudJustifiedText>
<MudText Typo="Typo.body2" <MudJustifiedText Typo="Typo.body2">
Color="Color.Error"> @T("AI Studio has reliably detected and blocked the suspicious content. Your applications and data remain protected. Please review the content you uploaded.")
@T("AI Studio blocked this content before it reached a model or agent.") </MudJustifiedText>
</MudText>
</MudStack> </MudStack>
</MudStack> </MudStack>
<MudAlert Severity="Severity.Info" Variant="Variant.Outlined" Class="mt-4"> <MudAlert Severity="Severity.Warning" Variant="Variant.Outlined" Class="mt-4" Style="border:1px solid #ffcc80;">
<Content> <Content>
<MudText Typo="Typo.body2"> <MudJustifiedText Typo="Typo.body2" Color="Color.Dark">
@T("Typical attacks on AI systems (e.g. prompt injection) hide instructions within untrusted content to trick an AI model into ignoring its intended rules or performing unintended actions.") @T("Typical attacks on AI systems (e.g. prompt injection) hide instructions within untrusted content to trick an AI model into ignoring its intended rules or performing unintended actions.")
</MudText> </MudJustifiedText>
</Content> </Content>
</MudAlert> </MudAlert>
</MudPaper> </MudPaper>
<MudPaper Class="pa-6 mb-4" Elevation="0" Style="background:#f0fff0;border:1px solid #90ee90;">
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="3">
<MudAvatar Size="Size.Large"
Color="Color.Success"
Variant="Variant.Filled">
<MudIcon Icon="@Icons.Material.Filled.Check"/>
</MudAvatar>
<MudStack Spacing="0">
<MudText Typo="Typo.h5">
@T("Security active")
</MudText>
<MudText Typo="Typo.body2"
Color="Color.Success">
@T("AI Studio has reliably detected and blocked the suspicious content. Your applications and data remain protected. Please review the content you uploaded.")
</MudText>
</MudStack>
</MudStack>
</MudPaper>
<MudDivider /> <MudDivider />
<MudStack Row="true" Justify="Justify.Center" Class="my-2"> <MudStack Row="true" Justify="Justify.Center" Class="my-2">
@ -77,13 +55,13 @@
<MudStack> <MudStack>
<MudIcon Icon="@Icons.Material.Filled.Source" /> <MudIcon Icon="@Icons.Material.Filled.Source" />
<MudText Typo="Typo.subtitle2"> <MudJustifiedText Typo="Typo.subtitle2">
@T("Source type") @T("Source type")
</MudText> </MudJustifiedText>
<MudText Typo="Typo.body2"> <MudJustifiedText Typo="Typo.body2">
@this.GetSourceKindLabel(Result.Source.Kind) @this.GetSourceKindLabel(Result.Source.Kind)
</MudText> </MudJustifiedText>
</MudStack> </MudStack>
</MudItem> </MudItem>
@ -91,14 +69,14 @@
<MudStack> <MudStack>
<MudIcon Icon="@Icons.Material.Outlined.Description"/> <MudIcon Icon="@Icons.Material.Outlined.Description"/>
<MudText Typo="Typo.subtitle2"> <MudJustifiedText Typo="Typo.subtitle2">
@T("Content source") @T("Content source")
</MudText> </MudJustifiedText>
<MudText Typo="Typo.body2" <MudJustifiedText Typo="Typo.body2"
Style="word-break:break-all;"> Style="word-break:break-all;">
@Result.Source.Label @Result.Source.Label
</MudText> </MudJustifiedText>
</MudStack> </MudStack>
</MudItem> </MudItem>
@ -106,22 +84,22 @@
<MudStack> <MudStack>
<MudIcon Icon="@Icons.Material.Outlined.WarningAmber"/> <MudIcon Icon="@Icons.Material.Outlined.WarningAmber"/>
<MudText Typo="Typo.subtitle2"> <MudJustifiedText Typo="Typo.subtitle2">
@T("Detected content") @T("Detected content")
</MudText> </MudJustifiedText>
@foreach (var finding in Result.Findings) @foreach (var finding in Result.Findings)
{ {
<MudStack Spacing="0"> <MudStack Spacing="0">
<MudText Typo="Typo.body2"> <MudJustifiedText Typo="Typo.body2">
<b> <b>
@($"{this.GetFindingCategoryLabel(finding.Category)}") @($"{this.GetFindingCategoryLabel(finding.Category)}")
</b> </b>
</MudText> </MudJustifiedText>
<MudText Typo="Typo.body2" Class="ml-4 mt-1"> <MudJustifiedText Typo="Typo.body2" Class="ml-4 mt-1">
@finding.Snippet @finding.Snippet
</MudText> </MudJustifiedText>
</MudStack> </MudStack>
} }
</MudStack> </MudStack>
@ -132,9 +110,9 @@
<MudPaper Class="pa-4 mt-2" <MudPaper Class="pa-4 mt-2"
Style="background:#fafafa;"> Style="background:#fafafa;">
<MudText Typo="Typo.body2" Class="mb-3"> <MudJustifiedText Typo="Typo.body2" Class="mb-3">
@T("Prompt injection is a method used to manipulate AI systems such as chatbots. An attacker places misleading instructions in content so that the AI treats them as legitimate. This can cause the AI to ignore safeguards, expose private information, or generate harmful content.") @T("Prompt injection is a method used to manipulate AI systems such as chatbots. An attacker places misleading instructions in content so that the AI treats them as legitimate. This can cause the AI to ignore safeguards, expose private information, or generate harmful content.")
</MudText> </MudJustifiedText>
<MudLink Href="@PromptInjectionGuardService.WIKI_URL" <MudLink Href="@PromptInjectionGuardService.WIKI_URL"
Target="_blank"> Target="_blank">