@@ -15,7 +15,7 @@
-
+
diff --git a/app/MindWork AI Studio/Dialogs/AssistantPluginRevisionDialog.razor b/app/MindWork AI Studio/Dialogs/AssistantPluginRevisionDialog.razor
index 65ef5da1c..41290ebfe 100644
--- a/app/MindWork AI Studio/Dialogs/AssistantPluginRevisionDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/AssistantPluginRevisionDialog.razor
@@ -25,7 +25,7 @@
Placeholder="@T("Add a field for the target audience and make the final answer shorter.")"
Variant="Variant.Outlined"
Lines="5"
- AutoGrow="true"
+ Sizing="InputSizing.Auto"
MaxLines="12"
Immediate="true"
Disabled="@(this.isGenerating || this.isApplying)" />
diff --git a/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor b/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor
index 74734082e..c577262e5 100644
--- a/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor
@@ -50,7 +50,7 @@
Variant="Variant.Outlined"
Lines="6"
MaxLines="12"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
Class="mb-3"
UserAttributes="@SPELLCHECK_ATTRIBUTES"
HelperText="@T("Tell the AI your system prompt.")"
@@ -81,7 +81,7 @@
Variant="Variant.Outlined"
Lines="4"
MaxLines="12"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
Class="mb-3"
UserAttributes="@SPELLCHECK_ATTRIBUTES"
HelperText="@T("Tell the AI your predefined user input.")"
@@ -259,7 +259,7 @@
@switch(context.Content)
{
case ContentText textContent:
-
+
break;
case ContentImage { SourceType: ContentImageSource.URL or ContentImageSource.LOCAL_PATH } imageContent:
@@ -305,7 +305,7 @@
@switch(context.Content)
{
case ContentText textContent:
-
+
break;
default:
diff --git a/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor.cs b/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor.cs
index e64f47b6a..946406e19 100644
--- a/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor.cs
@@ -195,7 +195,7 @@ public partial class ChatTemplateDialog : MSGComponentBase
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
await base.OnAfterRenderAsync(firstRender);
}
@@ -403,7 +403,7 @@ public partial class ChatTemplateDialog : MSGComponentBase
}
}
- await this.form.Validate();
+ await this.form.ValidateAsync();
// When the data is not valid, we don't store it:
if (!this.dataIsValid)
diff --git a/app/MindWork AI Studio/Dialogs/ConfigurationSnippetImportDialog.razor b/app/MindWork AI Studio/Dialogs/ConfigurationSnippetImportDialog.razor
index 090ca7607..2a218e42c 100644
--- a/app/MindWork AI Studio/Dialogs/ConfigurationSnippetImportDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/ConfigurationSnippetImportDialog.razor
@@ -5,7 +5,7 @@
@T("Paste a configuration which was exported from AI Studio, for example by a colleague. AI Studio only reads its values and never runs the pasted text. You can review and change everything afterward.")
-
+
@if (!string.IsNullOrWhiteSpace(this.issue))
{
@this.issue
diff --git a/app/MindWork AI Studio/Dialogs/ConfigurationSnippetImportDialog.razor.cs b/app/MindWork AI Studio/Dialogs/ConfigurationSnippetImportDialog.razor.cs
index 1d423adb6..9e53be41c 100644
--- a/app/MindWork AI Studio/Dialogs/ConfigurationSnippetImportDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/ConfigurationSnippetImportDialog.razor.cs
@@ -28,10 +28,10 @@ public partial class ConfigurationSnippetImportDialog : MSGComponentBase
///
private ConfigurationSnippetImportResult? importWithHints;
- private void SnippetChanged(string text)
+ private void SnippetChanged(string? text)
{
// The issue and the hints belong to the snippet they were found in:
- this.snippet = text;
+ this.snippet = text ?? string.Empty;
this.issue = string.Empty;
this.importWithHints = null;
}
diff --git a/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs b/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs
index 1c507d4b6..6be4fee13 100644
--- a/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs
@@ -147,7 +147,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
{
this.dataSecret = string.Empty;
this.dataSecretStorageIssue = string.Format(T("Failed to load the auth. secret from the operating system. The message was: {0}. You might ignore this message and provide the secret again."), requestedSecret.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
}
}
@@ -172,7 +172,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
await base.OnAfterRenderAsync(firstRender);
}
@@ -249,7 +249,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
using var client = ERIClientFactory.Get(ERIVersion.V1, this.DataSource);
if(client is null)
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1);
this.dataIssues[^1] = T("Failed to connect to the ERI v1 server. The server is not supported.");
@@ -259,7 +259,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
var authSchemes = await client.GetAuthMethodsAsync(cts.Token);
if (!authSchemes.Successful)
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1);
this.dataIssues[^1] = authSchemes.Message;
@@ -271,7 +271,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
var loginResult = await client.AuthenticateAsync(this.RustService, this.dataSecret, cts.Token);
if (!loginResult.Successful)
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1);
this.dataIssues[^1] = loginResult.Message;
@@ -281,7 +281,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
var securityRequirementsRequest = await client.GetSecurityRequirementsAsync(cts.Token);
if (!securityRequirementsRequest.Successful)
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1);
this.dataIssues[^1] = securityRequirementsRequest.Message;
@@ -293,7 +293,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
var retrievalInfoRequest = await client.GetRetrievalInfoAsync(cts.Token);
if (!retrievalInfoRequest.Successful)
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1);
this.dataIssues[^1] = retrievalInfoRequest.Message;
@@ -324,7 +324,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
}
catch (Exception e)
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
Array.Resize(ref this.dataIssues, this.dataIssues.Length + 1);
this.dataIssues[^1] = string.Format(T("Failed to connect to the ERI v1 server. The message was: {0}"), e.Message);
@@ -370,7 +370,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
private async Task Store()
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
var testConnectionValidation = this.dataSourceValidation.ValidateTestedConnection();
if(testConnectionValidation is not null)
@@ -394,7 +394,7 @@ public partial class DataSourceERI_V1Dialog : MSGComponentBase, ISecretId
if (!storeResponse.Success)
{
this.dataSecretStorageIssue = string.Format(T("Failed to store the auth. secret in the operating system. The message was: {0}. Please try again."), storeResponse.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
return;
}
diff --git a/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor b/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor
index 638b31887..d296eac82 100644
--- a/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor
@@ -86,7 +86,7 @@
Variant="Variant.Outlined"
Margin="Margin.Dense"
Lines="1"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
MaxLines="@FilePatternSelection.MAX_FIELD_LINES"
Class="pattern-text-field"
/>
diff --git a/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor.cs b/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor.cs
index 647d38e01..a4e7b1701 100644
--- a/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor.cs
@@ -133,7 +133,7 @@ public partial class DataSourceLocalDirectoryDialog : MSGComponentBase
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
// A check asked for in code waits until the fields hold their new values, cf. ToggleExpertSettings:
if (this.revalidateAfterRender)
@@ -267,7 +267,7 @@ public partial class DataSourceLocalDirectoryDialog : MSGComponentBase
private async Task Store()
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
// When the data is not valid, we don't store it:
if (!this.dataIsValid)
diff --git a/app/MindWork AI Studio/Dialogs/DataSourceLocalFileDialog.razor.cs b/app/MindWork AI Studio/Dialogs/DataSourceLocalFileDialog.razor.cs
index 10c5b958d..626fcdcbe 100644
--- a/app/MindWork AI Studio/Dialogs/DataSourceLocalFileDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/DataSourceLocalFileDialog.razor.cs
@@ -124,7 +124,7 @@ public partial class DataSourceLocalFileDialog : MSGComponentBase
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
// A check asked for in code waits until the fields hold their new values, cf. ToggleExpertSettings:
if (this.revalidateAfterRender)
@@ -251,7 +251,7 @@ public partial class DataSourceLocalFileDialog : MSGComponentBase
private async Task Store()
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
// When the data is not valid, we don't store it:
if (!this.dataIsValid)
diff --git a/app/MindWork AI Studio/Dialogs/DataSourceMailboxDialog.razor.cs b/app/MindWork AI Studio/Dialogs/DataSourceMailboxDialog.razor.cs
index 06383a5d1..aa060f2a5 100644
--- a/app/MindWork AI Studio/Dialogs/DataSourceMailboxDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/DataSourceMailboxDialog.razor.cs
@@ -207,7 +207,7 @@ public partial class DataSourceMailboxDialog : MSGComponentBase
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if (!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
// A check asked for in code waits until the fields hold their new values, cf. ToggleExpertSettings:
if (this.revalidateAfterRender)
@@ -469,7 +469,7 @@ public partial class DataSourceMailboxDialog : MSGComponentBase
this.SelectProvider(GetProviderKey(this.organizationProviders[0]));
}
- private void SelectProvider(string providerKey)
+ private void SelectProvider(string? providerKey)
{
this.selectedOrganizationProvider = this.organizationProviders.FirstOrDefault(candidate => GetProviderKey(candidate) == providerKey);
this.selectedTemplate = MailboxProviderTemplates.ALL.FirstOrDefault(candidate => GetProviderKey(candidate) == providerKey);
@@ -538,7 +538,7 @@ public partial class DataSourceMailboxDialog : MSGComponentBase
}
await this.RecordSignInOutcomeAsync(settings, this.testFailure, serverAnswer);
- await this.form.Validate();
+ await this.form.ValidateAsync();
}
private async Task
CreateFolder(string parentFullName, string name)
@@ -618,7 +618,7 @@ public partial class DataSourceMailboxDialog : MSGComponentBase
if (this.IsAddingNotAllowed)
return;
- await this.form.Validate();
+ await this.form.ValidateAsync();
if (this.RequiresConnectionTest && this.dataSourceValidation.ValidateTestedConnection() is { } testIssue)
{
@@ -654,7 +654,7 @@ public partial class DataSourceMailboxDialog : MSGComponentBase
if (!storeResponse.Success)
{
this.dataSecretStorageIssue = string.Format(T("Failed to store the password in the operating system. The message was: {0}. Please try again."), storeResponse.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
return;
}
}
diff --git a/app/MindWork AI Studio/Dialogs/DirectChatLauncherSettingsDialog.razor b/app/MindWork AI Studio/Dialogs/DirectChatLauncherSettingsDialog.razor
index 602028d4e..c6991b766 100644
--- a/app/MindWork AI Studio/Dialogs/DirectChatLauncherSettingsDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/DirectChatLauncherSettingsDialog.razor
@@ -26,7 +26,7 @@
-
+
dataSourceIds = [];
+ private IReadOnlyCollection dataSourceIds = [];
private HashSet toolIds = [];
private string issue = string.Empty;
private bool canEdit;
@@ -170,7 +170,7 @@ public partial class DirectChatLauncherSettingsDialog : MSGComponentBase
if (!this.CanSave || this.assistantPlugin is null || this.availablePlugin is null || this.form is null)
return;
- await this.form.Validate();
+ await this.form.ValidateAsync();
if (!this.form.IsValid)
return;
diff --git a/app/MindWork AI Studio/Dialogs/EmbeddingMethodDialog.razor b/app/MindWork AI Studio/Dialogs/EmbeddingMethodDialog.razor
index 44e697cf6..60118e391 100644
--- a/app/MindWork AI Studio/Dialogs/EmbeddingMethodDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/EmbeddingMethodDialog.razor
@@ -48,7 +48,7 @@
Label="@T("Embedding Description")"
HelperText="@T("A short description of the embedding method.")"
Lines="3"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
MaxLines="6"
Immediate="@true"
Variant="Variant.Outlined"
@@ -67,7 +67,7 @@
Label="@T("Used when")"
HelperText="@T("When is this embedding used? When you define multiple embeddings, it is helpful to know when to use which one.")"
Lines="3"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
MaxLines="6"
Immediate="@true"
Variant="Variant.Outlined"
diff --git a/app/MindWork AI Studio/Dialogs/EmbeddingMethodDialog.razor.cs b/app/MindWork AI Studio/Dialogs/EmbeddingMethodDialog.razor.cs
index 5c9986560..38cfd05e3 100644
--- a/app/MindWork AI Studio/Dialogs/EmbeddingMethodDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/EmbeddingMethodDialog.razor.cs
@@ -77,7 +77,7 @@ public partial class EmbeddingMethodDialog : MSGComponentBase
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
await base.OnAfterRenderAsync(firstRender);
}
@@ -127,7 +127,7 @@ public partial class EmbeddingMethodDialog : MSGComponentBase
private async Task Store()
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
// When the data is not valid, we don't store it:
if (!this.dataIsValid)
diff --git a/app/MindWork AI Studio/Dialogs/EmbeddingProviderDialog.razor.cs b/app/MindWork AI Studio/Dialogs/EmbeddingProviderDialog.razor.cs
index f883231db..11b3c70e6 100644
--- a/app/MindWork AI Studio/Dialogs/EmbeddingProviderDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/EmbeddingProviderDialog.razor.cs
@@ -251,7 +251,7 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
if (this.DataLLMProvider is not LLMProviders.SELF_HOSTED && !this.IsEnterpriseConfiguration)
{
this.dataAPIKeyStorageIssue = string.Format(T("Failed to load the API key from the operating system. The message was: {0}. You might ignore this message and provide the API key again."), requestedSecret.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
}
}
@@ -272,7 +272,7 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
await base.OnAfterRenderAsync(firstRender);
}
@@ -298,7 +298,7 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
this.dataStoreWasAttempted = true;
await this.dataTokenizerValidationTask;
- await this.form.Validate();
+ await this.form.ValidateAsync();
this.dataAPIKeyStorageIssue = string.Empty;
// Manually validate the model selection (needed when no models are loaded
@@ -343,7 +343,7 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
if (!response.Success)
{
this.dataCustomTokenizerValidationIssue = string.IsNullOrWhiteSpace(response.Message) ? string.Empty : response.Message;
- await this.form.Validate();
+ await this.form.ValidateAsync();
return;
}
this.dataFilePath = response.StoredPath;
@@ -358,7 +358,7 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
if (!storeResponse.Success)
{
this.dataAPIKeyStorageIssue = string.Format(T("Failed to store the API key in the operating system. The message was: {0}. Please try again."), storeResponse.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
return;
}
@@ -372,7 +372,7 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
if (!deleteResponse.Success)
{
this.dataAPIKeyStorageIssue = string.Format(T("Failed to remove the API key from the operating system. The message was: {0}. Please try again."), deleteResponse.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
return;
}
@@ -406,7 +406,7 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
if (!string.IsNullOrWhiteSpace(this.dataAPIKeyStorageIssue))
{
this.dataAPIKeyStorageIssue = string.Empty;
- await this.form.Validate();
+ await this.form.ValidateAsync();
}
}
@@ -457,8 +457,9 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
await this.MessageBus.SendWarning(new(Icons.Material.Filled.Warning, T("Please drop a tokenizer file in the JSON format.")));
}
- private async Task OnDataFilePathChanged(string filePath)
+ private async Task OnDataFilePathChanged(string? changedFilePath)
{
+ var filePath = changedFilePath ?? string.Empty;
this.dataFilePath = filePath;
var validationRevision = ++this.dataTokenizerValidationRevision;
this.dataTokenizerValidationTask = this.ValidateCustomTokenizer(filePath, validationRevision);
@@ -477,9 +478,9 @@ public partial class EmbeddingProviderDialog : MSGComponentBase, ISecretId
this.dataTokenizerFingerprint = tokenizerFingerprint;
if (this.dataStoreWasAttempted)
- await this.form.Validate();
+ await this.form.ValidateAsync();
else
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
}
private async Task ValidateCustomTokenizer(string filePath, int validationRevision)
diff --git a/app/MindWork AI Studio/Dialogs/EmbeddingResultDialog.razor b/app/MindWork AI Studio/Dialogs/EmbeddingResultDialog.razor
index 8e1408ef3..5094a72fb 100644
--- a/app/MindWork AI Studio/Dialogs/EmbeddingResultDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/EmbeddingResultDialog.razor
@@ -7,7 +7,7 @@
Text="@this.ResultText"
Variant="Variant.Outlined"
Lines="10"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
MaxLines="25"
ReadOnly="true"
Label="@this.ResultLabelText"
diff --git a/app/MindWork AI Studio/Dialogs/ProfileDialog.razor b/app/MindWork AI Studio/Dialogs/ProfileDialog.razor
index b72d31350..6b9144466 100644
--- a/app/MindWork AI Studio/Dialogs/ProfileDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/ProfileDialog.razor
@@ -41,7 +41,7 @@
Label="@T("What should the AI know about you?")"
Variant="Variant.Outlined"
Lines="6"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
MaxLines="12"
UserAttributes="@SPELLCHECK_ATTRIBUTES"
HelperText="@T("Tell the AI something about yourself. What is your profession? How experienced are you in this profession? Which technologies do you like?")"
@@ -59,7 +59,7 @@
Label="@T("What should the AI do for you?")"
Variant="Variant.Outlined"
Lines="6"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
MaxLines="12"
Class="mt-10"
UserAttributes="@SPELLCHECK_ATTRIBUTES"
diff --git a/app/MindWork AI Studio/Dialogs/ProfileDialog.razor.cs b/app/MindWork AI Studio/Dialogs/ProfileDialog.razor.cs
index ba2dfff88..adde39a23 100644
--- a/app/MindWork AI Studio/Dialogs/ProfileDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/ProfileDialog.razor.cs
@@ -102,7 +102,7 @@ public partial class ProfileDialog : MSGComponentBase
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
await base.OnAfterRenderAsync(firstRender);
}
@@ -114,7 +114,7 @@ public partial class ProfileDialog : MSGComponentBase
if (this.IsReadOnly)
return;
- await this.form.Validate();
+ await this.form.ValidateAsync();
// When the data is not valid, we don't store it:
if (!this.dataIsValid)
diff --git a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor
index 05705cf73..f69288f6d 100644
--- a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor
@@ -311,7 +311,7 @@
@string.Format(T("The current model uses the {0}."), this.GetCurrentModelApiLabel())
-
+
@if (this.ShowTokenizerSettings)
{
diff --git a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor.cs b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor.cs
index 83410fd78..9849c9f3b 100644
--- a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor.cs
@@ -300,7 +300,7 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
if (this.DataLLMProvider is not LLMProviders.SELF_HOSTED && !this.IsEnterpriseConfiguration)
{
this.dataAPIKeyStorageIssue = string.Format(T("Failed to load the API key from the operating system. The message was: {0}. You might ignore this message and provide the API key again."), requestedSecret.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
}
}
@@ -321,7 +321,7 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
await base.OnAfterRenderAsync(firstRender);
}
@@ -347,7 +347,7 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
this.dataStoreWasAttempted = true;
await this.dataTokenizerValidationTask;
- await this.form.Validate();
+ await this.form.ValidateAsync();
if (!string.IsNullOrWhiteSpace(this.dataAPIKeyStorageIssue))
this.dataAPIKeyStorageIssue = string.Empty;
@@ -376,7 +376,7 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
if (!string.IsNullOrWhiteSpace(this.dataFilePath))
{
this.dataCustomTokenizerValidationIssue = tokenizerResponse.Message;
- await this.form.Validate();
+ await this.form.ValidateAsync();
return;
}
@@ -395,7 +395,7 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
if (!storeResponse.Success)
{
this.dataAPIKeyStorageIssue = string.Format(T("Failed to store the API key in the operating system. The message was: {0}. Please try again."), storeResponse.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
return;
}
@@ -409,7 +409,7 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
if (!deleteResponse.Success)
{
this.dataAPIKeyStorageIssue = string.Format(T("Failed to remove the API key from the operating system. The message was: {0}. Please try again."), deleteResponse.Issue);
- await this.form.Validate();
+ await this.form.ValidateAsync();
return;
}
@@ -435,7 +435,7 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
if (!string.IsNullOrWhiteSpace(this.dataAPIKeyStorageIssue))
{
this.dataAPIKeyStorageIssue = string.Empty;
- await this.form.Validate();
+ await this.form.ValidateAsync();
}
}
@@ -486,8 +486,9 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
await this.MessageBus.SendWarning(new(Icons.Material.Filled.Warning, T("Please drop a tokenizer file in the JSON format.")));
}
- private async Task OnDataFilePathChanged(string filePath)
+ private async Task OnDataFilePathChanged(string? changedFilePath)
{
+ var filePath = changedFilePath ?? string.Empty;
this.dataFilePath = filePath;
var validationRevision = ++this.dataTokenizerValidationRevision;
this.dataTokenizerValidationTask = this.ValidateCustomTokenizer(filePath, validationRevision);
@@ -497,9 +498,9 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
return;
if (this.dataStoreWasAttempted)
- await this.form.Validate();
+ await this.form.ValidateAsync();
else
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
}
private async Task ValidateCustomTokenizer(string filePath, int validationRevision)
diff --git a/app/MindWork AI Studio/Dialogs/RetrievalProcessDialog.razor b/app/MindWork AI Studio/Dialogs/RetrievalProcessDialog.razor
index 72590f209..154b888d0 100644
--- a/app/MindWork AI Studio/Dialogs/RetrievalProcessDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/RetrievalProcessDialog.razor
@@ -38,7 +38,7 @@
Label="@T("Retrieval Process Description")"
HelperText="@T("A short description of the retrieval process.")"
Lines="3"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
MaxLines="6"
Immediate="@true"
Variant="Variant.Outlined"
@@ -132,7 +132,7 @@
Label="@T("Parameter Description")"
HelperText="@T("A short description of the parameter. What data type is it? What is it used for? What are the possible values?")"
Lines="3"
- AutoGrow="@true"
+ Sizing="InputSizing.Auto"
MaxLines="6"
Immediate="@true"
Variant="Variant.Outlined"
diff --git a/app/MindWork AI Studio/Dialogs/RetrievalProcessDialog.razor.cs b/app/MindWork AI Studio/Dialogs/RetrievalProcessDialog.razor.cs
index 7aa33760f..5fbd71daa 100644
--- a/app/MindWork AI Studio/Dialogs/RetrievalProcessDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/RetrievalProcessDialog.razor.cs
@@ -91,7 +91,7 @@ public partial class RetrievalProcessDialog : MSGComponentBase
// Reset the validation when not editing and on the first render.
// We don't want to show validation errors when the user opens the dialog.
if(!this.IsEditing && firstRender)
- this.form.ResetValidation();
+ await this.form.ResetValidationAsync();
await base.OnAfterRenderAsync(firstRender);
}
@@ -187,7 +187,7 @@ public partial class RetrievalProcessDialog : MSGComponentBase
private async Task Store()
{
- await this.form.Validate();
+ await this.form.ValidateAsync();
foreach (var parameter in this.retrievalParameters)
{
if (this.ValidateParameter(parameter) is { } issue)
diff --git a/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogChatTemplate.razor.cs b/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogChatTemplate.razor.cs
index 6e5b7d22a..da8d53dd5 100644
--- a/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogChatTemplate.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogChatTemplate.razor.cs
@@ -217,7 +217,7 @@ public partial class SettingsDialogChatTemplate : SettingsDialogBase
{
if (!chatTemplate.TryExportAsConfigurationSection(out var luaCode, out var issue))
{
- await this.DialogService.ShowMessageBox(
+ await this.DialogService.ShowMessageBoxAsync(
T("Export Chat Template"),
issue,
T("Close"));
@@ -232,7 +232,7 @@ public partial class SettingsDialogChatTemplate : SettingsDialogBase
{
if (!chatTemplate.TryExportAsConfigurationSectionWithPackagedAttachments(pluginDirectory, out var luaCode, out var issue))
{
- await this.DialogService.ShowMessageBox(
+ await this.DialogService.ShowMessageBoxAsync(
T("Export Chat Template"),
issue,
T("Close"));
diff --git a/app/MindWork AI Studio/Dialogs/ShortcutDialog.razor b/app/MindWork AI Studio/Dialogs/ShortcutDialog.razor
index eb90ed791..50f714fbb 100644
--- a/app/MindWork AI Studio/Dialogs/ShortcutDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/ShortcutDialog.razor
@@ -17,7 +17,6 @@
Adornment="Adornment.Start"
AdornmentIcon="@Icons.Material.Filled.Keyboard"
Immediate="@true"
- TextUpdateSuppression="false"
OnKeyDown="@this.HandleKeyDown"
OnBlur="@this.HandleBlur"
UserAttributes="@USER_INPUT_ATTRIBUTES"
diff --git a/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor b/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor
index 31f23f17c..116874310 100644
--- a/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor
+++ b/app/MindWork AI Studio/Dialogs/SingleInputDialog.razor
@@ -8,7 +8,7 @@
-
+
@T("Cancel")
@if (this.showCreateWorkspaceForm)
diff --git a/app/MindWork AI Studio/Dialogs/WorkspaceSelectionDialog.razor.cs b/app/MindWork AI Studio/Dialogs/WorkspaceSelectionDialog.razor.cs
index afb8d83bb..1d0a5b8da 100644
--- a/app/MindWork AI Studio/Dialogs/WorkspaceSelectionDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/WorkspaceSelectionDialog.razor.cs
@@ -120,7 +120,7 @@ public partial class WorkspaceSelectionDialog : MSGComponentBase
this.createWorkspaceError = null;
this.createWorkspaceErrorName = null;
- await this.createWorkspaceForm.Validate();
+ await this.createWorkspaceForm.ValidateAsync();
if (!this.createWorkspaceForm.IsValid)
return;
@@ -132,14 +132,16 @@ public partial class WorkspaceSelectionDialog : MSGComponentBase
{
this.createWorkspaceError = T("There is already a workspace with this name. Please choose a different name.");
this.createWorkspaceErrorName = WorkspaceBehaviour.NormalizeWorkspaceName(this.newWorkspaceName);
- await this.createWorkspaceForm.Validate();
+ await this.createWorkspaceForm.ValidateAsync();
return;
}
this.workspaces.Add(new(result.Workspace.WorkspaceId, result.Workspace.Name));
this.selectedWorkspace = result.Workspace.WorkspaceId;
this.newWorkspaceName = string.Empty;
- this.createWorkspaceForm?.ResetValidation();
+ if (this.createWorkspaceForm is not null)
+ await this.createWorkspaceForm.ResetValidationAsync();
+
this.showCreateWorkspaceForm = false;
await this.SendMessage(Event.WORKSPACE_CREATED, result.Workspace.WorkspaceId);
}
@@ -149,7 +151,7 @@ public partial class WorkspaceSelectionDialog : MSGComponentBase
}
}
- private void Cancel()
+ private async Task CancelAsync()
{
if (!this.showCreateWorkspaceForm)
{
@@ -160,7 +162,9 @@ public partial class WorkspaceSelectionDialog : MSGComponentBase
this.createWorkspaceError = null;
this.createWorkspaceErrorName = null;
this.newWorkspaceName = string.Empty;
- this.createWorkspaceForm?.ResetValidation();
+ if (this.createWorkspaceForm is not null)
+ await this.createWorkspaceForm.ResetValidationAsync();
+
this.showCreateWorkspaceForm = false;
this.shouldFocusNewWorkspaceName = false;
}
@@ -168,9 +172,9 @@ public partial class WorkspaceSelectionDialog : MSGComponentBase
[JSInvokable]
public async Task HandleEscapeKeyAsync()
{
- await this.InvokeAsync(() =>
+ await this.InvokeAsync(async () =>
{
- this.Cancel();
+ await this.CancelAsync();
this.StateHasChanged();
});
}
diff --git a/app/MindWork AI Studio/Layout/MainLayout.razor b/app/MindWork AI Studio/Layout/MainLayout.razor
index 737ae6a6b..fb750a8bc 100644
--- a/app/MindWork AI Studio/Layout/MainLayout.razor
+++ b/app/MindWork AI Studio/Layout/MainLayout.razor
@@ -102,4 +102,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Layout/MainLayout.razor.cs b/app/MindWork AI Studio/Layout/MainLayout.razor.cs
index 7e2334fd0..dd1a3b8da 100644
--- a/app/MindWork AI Studio/Layout/MainLayout.razor.cs
+++ b/app/MindWork AI Studio/Layout/MainLayout.razor.cs
@@ -217,6 +217,9 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan
config.HideTransitionDuration = 600;
config.Action = T("Check for updates");
config.ActionVariant = Variant.Filled;
+
+ // MudBlazor keeps a snackbar with an action until the user closes it; this one disappears after its time:
+ config.RequireInteraction = false;
config.OnClick = async _ =>
{
await this.MessageBus.SendMessage(this, Event.USER_SEARCH_FOR_UPDATE);
@@ -268,6 +271,9 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan
};
config.Action = T("Show details");
config.ActionVariant = Variant.Filled;
+
+ // MudBlazor keeps a snackbar with an action until the user closes it; this one disappears after its time:
+ config.RequireInteraction = false;
});
}
diff --git a/app/MindWork AI Studio/MindWork AI Studio.csproj b/app/MindWork AI Studio/MindWork AI Studio.csproj
index 388c080ac..37820f3c6 100644
--- a/app/MindWork AI Studio/MindWork AI Studio.csproj
+++ b/app/MindWork AI Studio/MindWork AI Studio.csproj
@@ -56,7 +56,8 @@
-
+
+
@@ -66,15 +67,15 @@
-
+
-
-
+
+
diff --git a/app/MindWork AI Studio/Pages/Plugins.razor.cs b/app/MindWork AI Studio/Pages/Plugins.razor.cs
index a7bea9a7b..ab397bcdf 100644
--- a/app/MindWork AI Studio/Pages/Plugins.razor.cs
+++ b/app/MindWork AI Studio/Pages/Plugins.razor.cs
@@ -123,7 +123,7 @@ public partial class Plugins : MSGComponentBase
{
var blockedAudit = securityState.Audit;
if (blockedAudit is not null)
- await this.DialogService.ShowMessageBox(this.T("Assistant Audit"), $"{blockedAudit.Level.GetName()}: {blockedAudit.Summary}", this.T("Close"));
+ await this.DialogService.ShowMessageBoxAsync(this.T("Assistant Audit"), $"{blockedAudit.Level.GetName()}: {blockedAudit.Summary}", this.T("Close"));
return;
}
diff --git a/app/MindWork AI Studio/Program.cs b/app/MindWork AI Studio/Program.cs
index 56472a3a8..6c4f5ee9f 100644
--- a/app/MindWork AI Studio/Program.cs
+++ b/app/MindWork AI Studio/Program.cs
@@ -164,6 +164,10 @@ internal sealed class Program
config.SnackbarConfiguration.HideTransitionDuration = 500;
config.SnackbarConfiguration.ShowTransitionDuration = 500;
config.SnackbarConfiguration.SnackbarVariant = Variant.Outlined;
+
+ // Since MudBlazor 9, a click outside an open menu or select also reaches the page behind
+ // it. We keep both modal, so that such a click only closes them:
+ config.PopoverOptions.ModalOverlay = true;
});
builder.Services.AddMemoryCache(); // Needed for the Markdown library
diff --git a/app/MindWork AI Studio/Tools/DataSourceRepair.cs b/app/MindWork AI Studio/Tools/DataSourceRepair.cs
index b2b07fb7c..377c2c1c9 100644
--- a/app/MindWork AI Studio/Tools/DataSourceRepair.cs
+++ b/app/MindWork AI Studio/Tools/DataSourceRepair.cs
@@ -29,7 +29,7 @@ public static class DataSourceRepair
// A repair discards the index, which waits for the end of a pause:
if (embeddingService.IsIndexingPaused)
{
- await dialogService.ShowMessageBox(TB("Repair Data Source"), TB("AI Studio is backing up or restoring the indexes of your data sources right now. Please try again once that is done."), TB("Close"));
+ await dialogService.ShowMessageBoxAsync(TB("Repair Data Source"), TB("AI Studio is backing up or restoring the indexes of your data sources right now. Please try again once that is done."), TB("Close"));
return false;
}
diff --git a/app/MindWork AI Studio/Tools/Validation/DependentFieldValidation.cs b/app/MindWork AI Studio/Tools/Validation/DependentFieldValidation.cs
index d9488c536..b6197b008 100644
--- a/app/MindWork AI Studio/Tools/Validation/DependentFieldValidation.cs
+++ b/app/MindWork AI Studio/Tools/Validation/DependentFieldValidation.cs
@@ -37,7 +37,7 @@ public static class DependentFieldValidation
continue;
if (field.Touched || field.HasErrors)
- await field.Validate();
+ await field.ValidateAsync();
}
}
}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/packages.lock.json b/app/MindWork AI Studio/packages.lock.json
index 387f39f59..74eed438f 100644
--- a/app/MindWork AI Studio/packages.lock.json
+++ b/app/MindWork AI Studio/packages.lock.json
@@ -4,14 +4,11 @@
"net9.0": {
"CodeBeam.MudBlazor.Extensions": {
"type": "Direct",
- "requested": "[8.3.0, )",
- "resolved": "8.3.0",
- "contentHash": "kp42Wmz4UroTbrpb5Ak8U/VYbdxg+35W8gg4Q4SOQMV1GgSWRHfoDf0gXVEEW9Lsx3/wZgzxvGwcs3brhQbZQg==",
+ "requested": "[9.2.0, )",
+ "resolved": "9.2.0",
+ "contentHash": "oA6TtFHh8uSA9Rk06aC9Bv9mvDiCfz5jI2QVYY2oogt5dZr2sHLHFdx3Z2shvn1i0gsTC35OjruKJJpWXPBcHA==",
"dependencies": {
- "BuildBundlerMinifier": "3.2.449",
- "Microsoft.AspNetCore.Components": "9.0.11",
- "Microsoft.AspNetCore.Components.Web": "9.0.11",
- "MudBlazor": "8.0.0"
+ "MudBlazor": "9.0.0"
}
},
"DocumentFormat.OpenXml": {
@@ -91,9 +88,9 @@
},
"MudBlazor": {
"type": "Direct",
- "requested": "[8.15.0, )",
- "resolved": "8.15.0",
- "contentHash": "iOJEnQ6tYGQPfPJaUazyC8H6pcczgaMX7vhUzrJPpB0WqEXNozwMfSzoOe2/JZmVWJcUfYZgKBeBU2Z27XY7Sw==",
+ "requested": "[9.12.0, )",
+ "resolved": "9.12.0",
+ "contentHash": "T6PQUCJe60UTSy3u1F8R2nuC06Cox6WEhon5GA2/AZNVI1WstlPSJZdGPyp6pHFpWdjPpla65piLpyJsbW+1rA==",
"dependencies": {
"Microsoft.AspNetCore.Components": "9.0.1",
"Microsoft.AspNetCore.Components.Web": "9.0.1",
@@ -102,12 +99,12 @@
},
"MudBlazor.Markdown": {
"type": "Direct",
- "requested": "[8.11.0, )",
- "resolved": "8.11.0",
- "contentHash": "R36jtzjltldsSB5qbTuEHeHiZgSLJlcPoVp9vMByig0E96Y4uf2MY9lEBjbBSr/B9Lqt9qt6EzTCb9Wd2AN56Q==",
+ "requested": "[9.0.0, )",
+ "resolved": "9.0.0",
+ "contentHash": "zu+K7epXvygGOV5HarFPGpzup3irQetUZcfUKY52iJ90CF5DPtFrNaBsYklCAGR8r2Z9YU0DuDMtlWnzySeSCw==",
"dependencies": {
- "Markdig": "0.41.3",
- "MudBlazor": "8.11.0"
+ "Markdig": "0.45.0",
+ "MudBlazor": "9.0.0"
}
},
"ReverseMarkdown": {
@@ -144,11 +141,6 @@
"resolved": "2.7.0",
"contentHash": "U+12df8UEWHgBi04YVf/Lgi2dy3SItlIYvHjjEVa/BngCQIzDCDRBk50DDByCfDvSbe5pRNFr3b7UrVK2kMcLw=="
},
- "BuildBundlerMinifier": {
- "type": "Transitive",
- "resolved": "3.2.449",
- "contentHash": "uA9sYDy4VepL3xwzBTLcP2LyuVYMt0ZIT3gaSiXvGoX15Ob+rOP+hGydhevlSVd+rFo+Y+VQFEHDuWU8HBW+XA=="
- },
"DocumentFormat.OpenXml.Framework": {
"type": "Transitive",
"resolved": "3.5.1",
@@ -169,57 +161,57 @@
},
"Markdig": {
"type": "Transitive",
- "resolved": "0.41.3",
- "contentHash": "i3vSTyGpBGWbJB04aJ3cPJs0T3BV2e1nduW3EUHK/i+xUupYbym75iZPss/XjqhS5JlBErwQYnx7ofK3Zcsozg=="
+ "resolved": "0.45.0",
+ "contentHash": "ObNLcA1b+0lpNNoEg256g9faMeJZi35wZW0AnKJ4nGPJe+5qkwnV26kUvQTHuanFnSX9SdvPzOO41BVJ6XarAg=="
},
"Microsoft.AspNetCore.Authorization": {
"type": "Transitive",
- "resolved": "9.0.11",
- "contentHash": "VtzQJnpvemh+n4jjMJR+XWiupCWu+Em822orJIFF9jXRfrJET1fBTo6yWqNFnQQKqtvQ3E4Vrjq0N/bHdZR25w==",
+ "resolved": "9.0.1",
+ "contentHash": "WgLlLBlMczb2+QLNG6sM95OUZ0EBztz60k/N75tjIgpyu0SdpIfYytAmX/7JJAjRTZF0c/CrWaQV+SH9FuGsrA==",
"dependencies": {
- "Microsoft.AspNetCore.Metadata": "9.0.11",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.11",
- "Microsoft.Extensions.Options": "9.0.11"
+ "Microsoft.AspNetCore.Metadata": "9.0.1",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
+ "Microsoft.Extensions.Options": "9.0.1"
}
},
"Microsoft.AspNetCore.Components": {
"type": "Transitive",
- "resolved": "9.0.11",
- "contentHash": "HIMOsBnuhcTNWBnCyugRHVgrh4iYfIM2Hl+8+8SQ6wrEIk+I2fUKa8USwV8XaMvZsjyJD7fPHaldAPoR9BNAVA==",
+ "resolved": "9.0.1",
+ "contentHash": "6pwfbQKNtvPkbF4tCGiAKGyt6BVpu58xAXz7u2YXcUKTNmNxrymbG1mEyMc0EPzVdnquDDqTyfXM3mC1EJycxQ==",
"dependencies": {
- "Microsoft.AspNetCore.Authorization": "9.0.11",
- "Microsoft.AspNetCore.Components.Analyzers": "9.0.11"
+ "Microsoft.AspNetCore.Authorization": "9.0.1",
+ "Microsoft.AspNetCore.Components.Analyzers": "9.0.1"
}
},
"Microsoft.AspNetCore.Components.Analyzers": {
"type": "Transitive",
- "resolved": "9.0.11",
- "contentHash": "7345cqEUev15rfdBeoBmYtUFrdHyYP/FVUbva3Q66eFTT0UuaykqWPtHmnv8R8GJZ9xntMxKhmqhySZTnth7sQ=="
+ "resolved": "9.0.1",
+ "contentHash": "I8Rs4LXT5UQxM5Nin2+Oj8aSY2heszSZ3EyTLgt3mxmfiRPrVO7D8NNSsf1voI2Gb0qFJceof/J5c9E+nfNuHw=="
},
"Microsoft.AspNetCore.Components.Forms": {
"type": "Transitive",
- "resolved": "9.0.11",
- "contentHash": "emoJb7TUrOy27stNXcXv+WsyItn0Qhe4gMcZHtfIfcnErRjN2YOotCAKWezBeKvYWqaV28qsDpjxvjjcANxZGw==",
+ "resolved": "9.0.1",
+ "contentHash": "KyULVU32bLz74LWDwPEwNUEllTehzWJuM7YAsz80rMKEzvR0K8cRjRzO0fnN/nfydMeLRRlbI0xj8wnEAymLVw==",
"dependencies": {
- "Microsoft.AspNetCore.Components": "9.0.11"
+ "Microsoft.AspNetCore.Components": "9.0.1"
}
},
"Microsoft.AspNetCore.Components.Web": {
"type": "Transitive",
- "resolved": "9.0.11",
- "contentHash": "wU9oVKqHfP4euIpRiRHLVkmhjFXctOvRDHOMUdBRnUErUua+fE6KsIRuBvUKla6tIql9sS58wbETZnjZpnX0lw==",
+ "resolved": "9.0.1",
+ "contentHash": "LI0vjYEd9MaDZPDQxPCn4gGYDkEC5U9rp1nWZo7rPozJxgTG2zU3WERujxTi2LeAC2ZzdXlOVCrUyPQ55LZV2A==",
"dependencies": {
- "Microsoft.AspNetCore.Components": "9.0.11",
- "Microsoft.AspNetCore.Components.Forms": "9.0.11",
- "Microsoft.Extensions.DependencyInjection": "9.0.11",
- "Microsoft.Extensions.Primitives": "9.0.11",
- "Microsoft.JSInterop": "9.0.11"
+ "Microsoft.AspNetCore.Components": "9.0.1",
+ "Microsoft.AspNetCore.Components.Forms": "9.0.1",
+ "Microsoft.Extensions.DependencyInjection": "9.0.1",
+ "Microsoft.Extensions.Primitives": "9.0.1",
+ "Microsoft.JSInterop": "9.0.1"
}
},
"Microsoft.AspNetCore.Metadata": {
"type": "Transitive",
- "resolved": "9.0.11",
- "contentHash": "O0HzG5utNH6ihO632k0nHFZa8iNDmGphdgWWqeDSdN/T9n0ZOXlA5+q77DxY3nHTjNfA0KMfpykIhEI+Wmzosg=="
+ "resolved": "9.0.1",
+ "contentHash": "EZnHifamF7IFEIyjAKMtJM3I/94OIe72i3P09v5oL0twmsmfQwal6Ni3m8lbB5mge3jWFhMozeW+rUdRSqnXRQ=="
},
"Microsoft.Bcl.Cryptography": {
"type": "Transitive",
@@ -377,8 +369,8 @@
},
"Microsoft.JSInterop": {
"type": "Transitive",
- "resolved": "9.0.11",
- "contentHash": "5w/W57cXjt8Ugp5COQCsv1R/wt7KzZXjbTqK4AFvgsxqmv1DFJ6OzagzJmwgp6unczFuff6t8wNi+URePV6PYQ=="
+ "resolved": "9.0.1",
+ "contentHash": "/xBwIfb0YoC2Muv6EsHjxpqZw2aKv94+i0g0FWZvqvGv3DeAy+8wipAuECVvKYEs2EIclRD41bjajHLoD6mTtw=="
},
"MimeKit": {
"type": "Transitive",
diff --git a/app/MindWork AI Studio/wwwroot/app.js b/app/MindWork AI Studio/wwwroot/app.js
index 951a25866..ef4364fc9 100644
--- a/app/MindWork AI Studio/wwwroot/app.js
+++ b/app/MindWork AI Studio/wwwroot/app.js
@@ -293,7 +293,7 @@ window.localShortcut = {
}
// What floats above the page without ever being a drop target. Two of these take part in hit testing as
-// MudBlazor 8.15 stands: an open .mud-popover -- a closed one already declines pointer events through
+// MudBlazor 9.12 stands: an open .mud-popover -- a closed one already declines pointer events through
// .mud-popover:not(.mud-popover-open) -- and .mud-snackbar, which asks for them explicitly with
// pointer-events: auto even though its container declines them, and snackbars appear constantly in this
// app. Without this list, a drag would be answered by whatever happens to float on screen rather than by
@@ -306,12 +306,12 @@ const skippedDropOverlays = '.mud-popover, .mud-tooltip, .mud-snackbar, #mud-sna
// The drop zones of the app, addressed by the cursor position of a native drag and drop event.
//
-// The arbitration between overlapping zones is left to the browser, and it can be: MudBlazor 8.15 gives
+// The arbitration between overlapping zones is left to the browser, and it can be: MudBlazor 9.12 gives
// neither .mud-dialog-container nor .mud-overlay a pointer-events: none. Both fill the viewport while a
// dialog is open, so a point beside the dialog box hits the container, and nothing there is a drop zone. A
// drop, therefore, cannot reach through an open dialog into the page behind it -- the very thing the app
// used to enforce by counting layers in C#. That single CSS property carries this whole design, so it
-// belongs on the checklist for every MudBlazor major version, starting with the move to 9.
+// belongs on the checklist for every MudBlazor major version.
window.dropZones = {
// Names the drop zone at the given viewport position, or null when there is none.
@@ -338,81 +338,4 @@ window.dropZones = {
list: function () {
return Array.from(document.querySelectorAll('[data-drop-zone-id]'), zone => zone.getAttribute('data-drop-zone-id'))
}
-}
-
-// Keeps an open popover inside the window while its content grows or shrinks.
-//
-// MudBlazor 8.15 places an open popover when it opens, when the window is resized or scrolled, and when the
-// component of the popover renders again. It never measures the popover afterward, though. Content which
-// unfolds later, such as the unavailable tools of the tool selection or a panel of the data source selection,
-// lets the popover grow out of the window until something unrelated places it again. So we place an open
-// popover again whenever its size changes, at most once per frame, which keeps it at its anchor during the
-// whole animation. Placing a popover may change its size once, when MudBlazor limits its height to the
-// window, but placing it again at the same spot changes nothing, so this settles right away.
-//
-// This relies on window.mudpopoverHelper.placePopoverByNode, which is internal to MudBlazor. It exists in
-// 8.15 and 9.2; without it, this does nothing. Check it with every new MudBlazor version.
-const popoverResize = (function () {
- const resizedPopovers = new Set()
- let isPlacementPending = false
-
- const placeResizedPopovers = function () {
- isPlacementPending = false
- for (const popover of resizedPopovers) {
- if (popover.isConnected && popover.classList.contains('mud-popover-open'))
- window.mudpopoverHelper?.placePopoverByNode?.(popover)
- }
-
- resizedPopovers.clear()
- }
-
- const resizeObserver = new ResizeObserver(function (entries) {
- for (const entry of entries)
- resizedPopovers.add(entry.target)
-
- if (isPlacementPending)
- return
-
- isPlacementPending = true
- requestAnimationFrame(placeResizedPopovers)
- })
-
- // MudBlazor renders the content of every popover as a direct child of the provider:
- const observePopover = function (node) {
- if (node instanceof Element && node.classList.contains('mud-popover'))
- resizeObserver.observe(node)
- }
-
- const forgetPopover = function (node) {
- if (node instanceof Element)
- resizeObserver.unobserve(node)
- }
-
- const observeProvider = function () {
- const provider = document.querySelector('.mud-popover-provider')
- if (!provider)
- return false
-
- provider.childNodes.forEach(observePopover)
- new MutationObserver(function (mutations) {
- for (const mutation of mutations) {
- mutation.addedNodes.forEach(observePopover)
- mutation.removedNodes.forEach(forgetPopover)
- }
- }).observe(provider, { childList: true })
-
- return true
- }
-
- return { observeProvider: observeProvider }
-})()
-
-// The provider appears only once Blazor has rendered the app, so we wait for it, and only for it:
-if (!popoverResize.observeProvider()) {
- const providerObserver = new MutationObserver(function () {
- if (popoverResize.observeProvider())
- providerObserver.disconnect()
- })
-
- providerObserver.observe(document.body, { childList: true, subtree: true })
}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/wwwroot/changelog/v26.11.1.md b/app/MindWork AI Studio/wwwroot/changelog/v26.11.1.md
index 4121ccc40..125687c01 100644
--- a/app/MindWork AI Studio/wwwroot/changelog/v26.11.1.md
+++ b/app/MindWork AI Studio/wwwroot/changelog/v26.11.1.md
@@ -3,4 +3,5 @@
- Changed the size of AI Studio on laptop screens: it now appears in the same size on every laptop, whatever the scaling of your operating system. If you prefer the previous size, choose "System scaling" for the interface size in the app settings. Contributed by Paul Koudelka.
- Fixed AI Studio becoming unusable when an update failed after its download. The app now restarts with the version you have installed, so you can simply try the update again.
- Upgraded several libraries to improve security.
-- Upgraded Tauri to v2.12.5.
\ No newline at end of file
+- Upgraded Tauri to v2.12.5.
+- Upgraded MudBlazor to v9.12.0.
\ No newline at end of file
diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css
index 3369be87c..12832f063 100755
--- a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css
+++ b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css
@@ -1 +1 @@
-.mud-combobox{margin:0;padding:0;position:relative;list-style:none;}.mud-combobox.mud-combobox-padding{padding-top:8px;padding-bottom:8px;}.mud-combobox-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;min-height:48px;}.mud-combobox-item.mud-combobox-item-comfort{padding-top:4px;padding-bottom:4px;min-height:40px;}.mud-combobox-item.mud-combobox-item-slim{padding-top:2px;padding-bottom:2px;min-height:32px;}.mud-combobox-item.mud-combobox-item-superslim{padding-top:0;padding-bottom:0;min-height:24px;}.mud-combobox-item.mud-combobox-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-combobox-item.mud-combobox-item-disabled .mud-combobox-item-icon{color:var(--mud-palette-action-disabled) !important;}.mud-combobox-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-combobox-item-clickable:hover{background-color:var(--mud-palette-action-default-hover);}.mud-combobox-item-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-combobox-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-combobox-item-icon{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-combobox-item-multiselect{max-height:32px;}.mud-combobox-item-multiselect.mud-combobox-item-multiselect-checkbox{padding-inline-end:16px;}.mud-combobox-subheader{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-combobox-subheader-secondary-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-subheader-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-combobox-subheader-sticky{top:-8px;z-index:1;position:sticky;}.mud-combobox-subheader-sticky.mud-combobox-subheader-sticky-dense{top:0;}.mud-combobox-item-hilight{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-hilight{background-color:var(--mud-palette-lines-default) !important;}.mud-combobox-item-bordered{border-left:4px solid var(--mud-palette-lines-default);padding-inline-start:12px;}.mud-combobox-item-bordered-primary{border-left:4px solid var(--mud-palette-primary);padding-inline-start:12px;}.mud-combobox-item-bordered-secondary{border-left:4px solid var(--mud-palette-secondary);padding-inline-start:12px;}.mud-combobox-item-bordered-tertiary{border-left:4px solid var(--mud-palette-tertiary);padding-inline-start:12px;}.mud-combobox-item-bordered-info{border-left:4px solid var(--mud-palette-info);padding-inline-start:12px;}.mud-combobox-item-bordered-success{border-left:4px solid var(--mud-palette-success);padding-inline-start:12px;}.mud-combobox-item-bordered-warning{border-left:4px solid var(--mud-palette-warning);padding-inline-start:12px;}.mud-combobox-item-bordered-error{border-left:4px solid var(--mud-palette-error);padding-inline-start:12px;}.mud-combobox-item-bordered-dark{border-left:4px solid var(--mud-palette-dark);padding-inline-start:12px;}.mud-combobox-item-nested-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-avatar{min-width:56px;flex-shrink:0;}.mud-combobox-highlighter{background-color:transparent;font-weight:bold;text-decoration:underline;}.mud-gallery-selected-toolbox{left:0;right:0;height:56px;width:100%;background-color:rgba(0,0,0,.6);}.mud-gallery-selected-toolbox.gallery-toolbox-top{top:0;}.mud-gallery-selected-toolbox.gallery-toolbox-bottom{bottom:0;}.mud-page{display:grid;box-sizing:border-box;width:100%;}.mud-page.mud-page-height-full{min-height:100vh;}.mud-page.mud-page-height-full-without-appbar{min-height:calc(100vh - var(--mud-appbar-height));}.mud-page.mud-page-column-2{grid-template-columns:repeat(2,50%);}.mud-page.mud-page-column-3{grid-template-columns:repeat(3,33.33333%);}.mud-page.mud-page-column-4{grid-template-columns:repeat(4,25%);}.mud-page.mud-page-column-5{grid-template-columns:repeat(5,20%);}.mud-page.mud-page-column-6{grid-template-columns:repeat(6,16.66667%);}.mud-page.mud-page-column-7{grid-template-columns:repeat(7,14.28571%);}.mud-page.mud-page-column-8{grid-template-columns:repeat(8,12.5%);}.mud-page.mud-page-column-9{grid-template-columns:repeat(9,11.11111%);}.mud-page.mud-page-column-10{grid-template-columns:repeat(10,10%);}.mud-page.mud-page-column-11{grid-template-columns:repeat(11,9.09091%);}.mud-page.mud-page-column-12{grid-template-columns:repeat(12,8.33333%);}.mud-page.mud-page-row-2{grid-template-rows:repeat(2,50%);}.mud-page.mud-page-row-3{grid-template-rows:repeat(3,33.33333%);}.mud-page.mud-page-row-4{grid-template-rows:repeat(4,25%);}.mud-page.mud-page-row-5{grid-template-rows:repeat(5,20%);}.mud-page.mud-page-row-6{grid-template-rows:repeat(6,16.66667%);}.mud-page.mud-page-row-7{grid-template-rows:repeat(7,14.28571%);}.mud-page.mud-page-row-8{grid-template-rows:repeat(8,12.5%);}.mud-page.mud-page-row-9{grid-template-rows:repeat(9,11.11111%);}.mud-page.mud-page-row-10{grid-template-rows:repeat(10,10%);}.mud-page.mud-page-row-11{grid-template-rows:repeat(11,9.09091%);}.mud-page.mud-page-row-12{grid-template-rows:repeat(12,8.33333%);}.mud-section{display:inline-grid;overflow:auto;}.mud-section.mud-section-col-start-1{grid-column-start:1;}.mud-section.mud-section-col-start-2{grid-column-start:2;}.mud-section.mud-section-col-start-3{grid-column-start:3;}.mud-section.mud-section-col-start-4{grid-column-start:4;}.mud-section.mud-section-col-start-5{grid-column-start:5;}.mud-section.mud-section-col-start-6{grid-column-start:6;}.mud-section.mud-section-col-start-7{grid-column-start:7;}.mud-section.mud-section-col-start-8{grid-column-start:8;}.mud-section.mud-section-col-start-9{grid-column-start:9;}.mud-section.mud-section-col-start-10{grid-column-start:10;}.mud-section.mud-section-col-start-11{grid-column-start:11;}.mud-section.mud-section-col-start-12{grid-column-start:12;}.mud-section.mud-section-col-end-1{grid-column-end:1;}.mud-section.mud-section-col-end-2{grid-column-end:2;}.mud-section.mud-section-col-end-3{grid-column-end:3;}.mud-section.mud-section-col-end-4{grid-column-end:4;}.mud-section.mud-section-col-end-5{grid-column-end:5;}.mud-section.mud-section-col-end-6{grid-column-end:6;}.mud-section.mud-section-col-end-7{grid-column-end:7;}.mud-section.mud-section-col-end-8{grid-column-end:8;}.mud-section.mud-section-col-end-9{grid-column-end:9;}.mud-section.mud-section-col-end-10{grid-column-end:10;}.mud-section.mud-section-col-end-11{grid-column-end:11;}.mud-section.mud-section-col-end-12{grid-column-end:12;}.mud-section.mud-section-col-end-13{grid-column-end:13;}.mud-section.mud-section-row-start-1{grid-row-start:1;}.mud-section.mud-section-row-start-2{grid-row-start:2;}.mud-section.mud-section-row-start-3{grid-row-start:3;}.mud-section.mud-section-row-start-4{grid-row-start:4;}.mud-section.mud-section-row-start-5{grid-row-start:5;}.mud-section.mud-section-row-start-6{grid-row-start:6;}.mud-section.mud-section-row-start-7{grid-row-start:7;}.mud-section.mud-section-row-start-8{grid-row-start:8;}.mud-section.mud-section-row-start-9{grid-row-start:9;}.mud-section.mud-section-row-start-10{grid-row-start:10;}.mud-section.mud-section-row-start-11{grid-row-start:11;}.mud-section.mud-section-row-start-12{grid-row-start:12;}.mud-section.mud-section-row-end-1{grid-row-end:1;}.mud-section.mud-section-row-end-2{grid-row-end:2;}.mud-section.mud-section-row-end-3{grid-row-end:3;}.mud-section.mud-section-row-end-4{grid-row-end:4;}.mud-section.mud-section-row-end-5{grid-row-end:5;}.mud-section.mud-section-row-end-6{grid-row-end:6;}.mud-section.mud-section-row-end-7{grid-row-end:7;}.mud-section.mud-section-row-end-8{grid-row-end:8;}.mud-section.mud-section-row-end-9{grid-row-end:9;}.mud-section.mud-section-row-end-10{grid-row-end:10;}.mud-section.mud-section-row-end-11{grid-row-end:11;}.mud-section.mud-section-row-end-12{grid-row-end:12;}.mud-section.mud-section-row-end-13{grid-row-end:13;}.mud-popup{z-index:2000;overflow:auto;background-color:var(--mud-palette-background);min-height:var(--mud-appbar-height);}.mud-popup.mud-popup-center{height:300px;left:50%;top:50%;transform:translate(-50%,-50%);width:320px;aspect-ratio:1/1;}.mud-range-container{align-items:center;margin:20px 0;}.mud-range-container input::-webkit-slider-thumb{pointer-events:all;position:relative;z-index:1;}.mud-range-container input::-moz-range-thumb{pointer-events:all;position:relative;z-index:10;}.mud-range-container input::-moz-range-track{position:relative;z-index:-1;}.mud-range-container input:last-of-type::-moz-range-track{-moz-appearance:none;}.mud-range-container .mud-slider-input:last-of-type{position:absolute;pointer-events:none;top:0;}.mud-range-container input[type=range]::-webkit-slider-thumb{pointer-events:all;}.mud-range-display{text-align:center;}.mud-signature-pad-container{touch-action:none;}.mud-splitter{display:grid;position:relative;width:100%;}.mud-splitter-content{overflow:auto;}.mud-splitter-thumb ::-webkit-slider-runnable-track{visibility:hidden !important;height:100% !important;}.mud-splitter-thumb ::-moz-range-track{visibility:hidden !important;height:100% !important;}.mud-splitter-track{position:absolute;top:50%;transform:translateY(-50%);height:100%;}.mud-splitter-track.mud-slider{visibility:hidden !important;}.mud-splitter-track.mud-slider .mud-slider-container{height:100% !important;}.mud-splitter-track.mud-slider .mud-slider-input{top:50%;}.mud-splitter-thumb ::-webkit-slider-thumb{visibility:visible !important;appearance:none !important;-webkit-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-webkit-slider-thumb{cursor:default !important;}.mud-splitter-thumb ::-moz-range-thumb{visibility:visible !important;appearance:none !important;-moz-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-moz-range-thumb{cursor:default !important;}.mud-stepper-header-extended{min-height:62px;border-radius:var(--mud-default-borderradius);}.mud-stepper-header-extended.mud-stepper-header-non-linear-extended:hover{background-color:var(--mud-palette-action-default-hover);}.mud-stepper-badge-extended{z-index:21;}.mud-stepper-avatar-extended{z-index:20;}.mud-stepper-avatar-bg-extended{background-color:var(--mud-palette-background);}.mud-stepper-sub-inner-header-extended{grid-column-start:1;grid-column-end:-1;flex-direction:row;grid-row:1;list-style:none;display:flex;}.mud-stepper-sub-inner-header-vertical-extended{grid-row-start:1;grid-row-end:-1;flex-direction:column;grid-column:1;list-style:none;display:flex;}.mud-stepper-text-mobile-extended{grid-row:1;margin-top:22px;}.mud-stepper-text-mobile-vertical-extended{grid-column:1;margin-inline-start:22px;}.mud-stepper-step-1.horizontal{width:calc(100%/1);}.mud-stepper-step-1.vertical{height:calc(100%/1);}.mud-stepper-step-2.horizontal{width:calc(100%/2);}.mud-stepper-step-2.vertical{height:calc(100%/2);}.mud-stepper-step-3.horizontal{width:calc(100%/3);}.mud-stepper-step-3.vertical{height:calc(100%/3);}.mud-stepper-step-4.horizontal{width:calc(100%/4);}.mud-stepper-step-4.vertical{height:calc(100%/4);}.mud-stepper-step-5.horizontal{width:calc(100%/5);}.mud-stepper-step-5.vertical{height:calc(100%/5);}.mud-stepper-step-6.horizontal{width:calc(100%/6);}.mud-stepper-step-6.vertical{height:calc(100%/6);}.mud-stepper-step-7.horizontal{width:calc(100%/7);}.mud-stepper-step-7.vertical{height:calc(100%/7);}.mud-stepper-step-8.horizontal{width:calc(100%/8);}.mud-stepper-step-8.vertical{height:calc(100%/8);}.mud-stepper-step-9.horizontal{width:calc(100%/9);}.mud-stepper-step-9.vertical{height:calc(100%/9);}.mud-stepper-step-10.horizontal{width:calc(100%/10);}.mud-stepper-step-10.vertical{height:calc(100%/10);}.mud-stepper-step-11.horizontal{width:calc(100%/11);}.mud-stepper-step-11.vertical{height:calc(100%/11);}.mud-stepper-step-12.horizontal{width:calc(100%/12);}.mud-stepper-step-12.vertical{height:calc(100%/12);}.mud-stepper-grid-1.horizontal{display:grid;grid-template-columns:repeat(2,1fr);}.mud-stepper-grid-1.vertical{display:grid;grid-template-rows:repeat(2,1fr);}.mud-stepper-grid-2.horizontal{display:grid;grid-template-columns:repeat(4,1fr);}.mud-stepper-grid-2.vertical{display:grid;grid-template-rows:repeat(4,1fr);}.mud-stepper-grid-3.horizontal{display:grid;grid-template-columns:repeat(6,1fr);}.mud-stepper-grid-3.vertical{display:grid;grid-template-rows:repeat(6,1fr);}.mud-stepper-grid-4.horizontal{display:grid;grid-template-columns:repeat(8,1fr);}.mud-stepper-grid-4.vertical{display:grid;grid-template-rows:repeat(8,1fr);}.mud-stepper-grid-5.horizontal{display:grid;grid-template-columns:repeat(10,1fr);}.mud-stepper-grid-5.vertical{display:grid;grid-template-rows:repeat(10,1fr);}.mud-stepper-grid-6.horizontal{display:grid;grid-template-columns:repeat(12,1fr);}.mud-stepper-grid-6.vertical{display:grid;grid-template-rows:repeat(12,1fr);}.mud-stepper-grid-7.horizontal{display:grid;grid-template-columns:repeat(14,1fr);}.mud-stepper-grid-7.vertical{display:grid;grid-template-rows:repeat(14,1fr);}.mud-stepper-grid-8.horizontal{display:grid;grid-template-columns:repeat(16,1fr);}.mud-stepper-grid-8.vertical{display:grid;grid-template-rows:repeat(16,1fr);}.mud-stepper-grid-9.horizontal{display:grid;grid-template-columns:repeat(18,1fr);}.mud-stepper-grid-9.vertical{display:grid;grid-template-rows:repeat(18,1fr);}.mud-stepper-grid-10.horizontal{display:grid;grid-template-columns:repeat(20,1fr);}.mud-stepper-grid-10.vertical{display:grid;grid-template-rows:repeat(20,1fr);}.mud-stepper-grid-11.horizontal{display:grid;grid-template-columns:repeat(22,1fr);}.mud-stepper-grid-11.vertical{display:grid;grid-template-rows:repeat(22,1fr);}.mud-stepper-grid-12.horizontal{display:grid;grid-template-columns:repeat(24,1fr);}.mud-stepper-grid-12.vertical{display:grid;grid-template-rows:repeat(24,1fr);}.mud-stepper-grid-13.horizontal{display:grid;grid-template-columns:repeat(26,1fr);}.mud-stepper-grid-13.vertical{display:grid;grid-template-rows:repeat(26,1fr);}.mud-stepper-grid-14.horizontal{display:grid;grid-template-columns:repeat(28,1fr);}.mud-stepper-grid-14.vertical{display:grid;grid-template-rows:repeat(28,1fr);}.mud-stepper-grid-15.horizontal{display:grid;grid-template-columns:repeat(30,1fr);}.mud-stepper-grid-15.vertical{display:grid;grid-template-rows:repeat(30,1fr);}.mud-stepper-grid-16.horizontal{display:grid;grid-template-columns:repeat(32,1fr);}.mud-stepper-grid-16.vertical{display:grid;grid-template-rows:repeat(32,1fr);}.mud-stepper-grid-17.horizontal{display:grid;grid-template-columns:repeat(34,1fr);}.mud-stepper-grid-17.vertical{display:grid;grid-template-rows:repeat(34,1fr);}.mud-stepper-grid-18.horizontal{display:grid;grid-template-columns:repeat(36,1fr);}.mud-stepper-grid-18.vertical{display:grid;grid-template-rows:repeat(36,1fr);}.mud-stepper-grid-19.horizontal{display:grid;grid-template-columns:repeat(38,1fr);}.mud-stepper-grid-19.vertical{display:grid;grid-template-rows:repeat(38,1fr);}.mud-stepper-grid-20.horizontal{display:grid;grid-template-columns:repeat(40,1fr);}.mud-stepper-grid-20.vertical{display:grid;grid-template-rows:repeat(40,1fr);}.mud-stepper-grid-21.horizontal{display:grid;grid-template-columns:repeat(42,1fr);}.mud-stepper-grid-21.vertical{display:grid;grid-template-rows:repeat(42,1fr);}.mud-stepper-grid-22.horizontal{display:grid;grid-template-columns:repeat(44,1fr);}.mud-stepper-grid-22.vertical{display:grid;grid-template-rows:repeat(44,1fr);}.mud-stepper-grid-23.horizontal{display:grid;grid-template-columns:repeat(46,1fr);}.mud-stepper-grid-23.vertical{display:grid;grid-template-rows:repeat(46,1fr);}.mud-stepper-grid-24.horizontal{display:grid;grid-template-columns:repeat(48,1fr);}.mud-stepper-grid-24.vertical{display:grid;grid-template-rows:repeat(48,1fr);}.steps-1.horizontal{grid-column-start:2;grid-column-end:2;grid-row:1/-1;}.steps-1.vertical{grid-row-start:2;grid-row-end:2;grid-column:1/-1;}.steps-2.horizontal{grid-column-start:2;grid-column-end:4;grid-row:1/-1;}.steps-2.vertical{grid-row-start:2;grid-row-end:4;grid-column:1/-1;}.steps-3.horizontal{grid-column-start:2;grid-column-end:6;grid-row:1/-1;}.steps-3.vertical{grid-row-start:2;grid-row-end:6;grid-column:1/-1;}.steps-4.horizontal{grid-column-start:2;grid-column-end:8;grid-row:1/-1;}.steps-4.vertical{grid-row-start:2;grid-row-end:8;grid-column:1/-1;}.steps-5.horizontal{grid-column-start:2;grid-column-end:10;grid-row:1/-1;}.steps-5.vertical{grid-row-start:2;grid-row-end:10;grid-column:1/-1;}.steps-6.horizontal{grid-column-start:2;grid-column-end:12;grid-row:1/-1;}.steps-6.vertical{grid-row-start:2;grid-row-end:12;grid-column:1/-1;}.steps-7.horizontal{grid-column-start:2;grid-column-end:14;grid-row:1/-1;}.steps-7.vertical{grid-row-start:2;grid-row-end:14;grid-column:1/-1;}.steps-8.horizontal{grid-column-start:2;grid-column-end:16;grid-row:1/-1;}.steps-8.vertical{grid-row-start:2;grid-row-end:16;grid-column:1/-1;}.steps-9.horizontal{grid-column-start:2;grid-column-end:18;grid-row:1/-1;}.steps-9.vertical{grid-row-start:2;grid-row-end:18;grid-column:1/-1;}.steps-10.horizontal{grid-column-start:2;grid-column-end:20;grid-row:1/-1;}.steps-10.vertical{grid-row-start:2;grid-row-end:20;grid-column:1/-1;}.steps-11.horizontal{grid-column-start:2;grid-column-end:22;grid-row:1/-1;}.steps-11.vertical{grid-row-start:2;grid-row-end:22;grid-column:1/-1;}.steps-12.horizontal{grid-column-start:2;grid-column-end:24;grid-row:1/-1;}.steps-12.vertical{grid-row-start:2;grid-row-end:24;grid-column:1/-1;}.mud-stepper-progress-extended.horizontal.header-size-small{top:22px;height:2px;}.mud-stepper-progress-extended.horizontal.header-size-medium{top:30px;height:3px;}.mud-stepper-progress-extended.horizontal.header-size-large{top:38px;height:4px;}.mud-stepper-progress-extended.vertical.header-size-small{left:22px;}.mud-stepper-progress-extended.vertical.header-size-medium{left:30px;}.mud-stepper-progress-extended.vertical.header-size-large{left:38px;}.mobile.horizontal .mud-stepper-progress-extended{margin-inline-start:40px;}.mud-stepper-progress-extended{display:inline-grid;z-index:10;}.mud-stepper-progress-extended.vertical{transform:rotateX(180deg);}.mud-switch-m3{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;margin-top:4px;margin-bottom:4px;-webkit-tap-highlight-color:transparent;}.mud-switch-m3.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;}.mud-switch-m3.mud-readonly,.mud-switch-m3 .mud-readonly:hover{cursor:default;background-color:transparent !important;}.mud-switch-span-m3{width:52px;height:32px;display:inline-flex;z-index:0;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle;}.mud-switch-span-m3.mud-switch-child-content-m3{margin-inline-end:12px;}.mud-switch-span-m3 .mud-switch-track-m3{width:52px;height:32px;z-index:-1;transition:opacity 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;border-radius:30px;background-color:var(--mud-palette-background);border:2px solid;}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-default-m3{border-color:var(--mud-palette-text-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-primary-m3{border-color:var(--mud-palette-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-secondary-m3{border-color:var(--mud-palette-secondary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-tertiary-m3{border-color:var(--mud-palette-tertiary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-info-m3{border-color:var(--mud-palette-info);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-success-m3{border-color:var(--mud-palette-success);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-warning-m3{border-color:var(--mud-palette-warning);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-error-m3{border-color:var(--mud-palette-error);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-dark-m3{border-color:var(--mud-palette-dark);}.mud-switch-base-m3{padding-top:4px;padding-bottom:4px;padding-inline-start:8px;top:0;left:0;bottom:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(.4,0,.2,1) 0ms,transform 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 250ms cubic-bezier(.4,0,.2,1) 0ms,box-shadow 250ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-switch-base-m3.mud-switch-base-dense-m3{padding-inline-start:4px;}.mud-switch-base-m3.mud-checked{transform:translateX(20px);padding:4px;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3{opacity:1;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-default{background-color:var(--mud-palette-text-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-primary{background-color:var(--mud-palette-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-secondary{background-color:var(--mud-palette-secondary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-tertiary{background-color:var(--mud-palette-tertiary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-info{background-color:var(--mud-palette-info);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-success{background-color:var(--mud-palette-success);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-warning{background-color:var(--mud-palette-warning);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-error{background-color:var(--mud-palette-error);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-dark{background-color:var(--mud-palette-dark);}.mud-switch-base-m3.mud-checked .mud-switch-thumb-m3{width:24px;height:24px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;background-color:var(--mud-palette-background);}.mud-switch-base-m3:hover{background-color:var(--mud-palette-action-default-hover);}.mud-switch-base-m3.mud-switch-disabled{color:var(--mud-palette-gray-default) !important;}.mud-switch-base-m3.mud-switch-disabled+.mud-switch-track-m3{opacity:.12 !important;}.mud-switch-base-m3.mud-switch-disabled:hover,.mud-switch-base-m3.mud-switch-disabled:focus-visible{cursor:default;background-color:transparent !important;}.mud-switch-button-m3{display:flex;align-items:inherit;justify-content:inherit;}.mud-switch-button-m3 .mud-switch-input-m3{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute;}.mud-switch-button-m3 .mud-switch-thumb-m3{width:16px;height:16px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-default-m3{background-color:var(--mud-palette-text-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-primary-m3{background-color:var(--mud-palette-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-secondary-m3{background-color:var(--mud-palette-secondary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-tertiary-m3{background-color:var(--mud-palette-tertiary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-info-m3{background-color:var(--mud-palette-info);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-success-m3{background-color:var(--mud-palette-success);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-warning-m3{background-color:var(--mud-palette-warning);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-error-m3{background-color:var(--mud-palette-error);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-dark-m3{background-color:var(--mud-palette-dark);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-off-icon-m3{width:24px;height:24px;}.mud-wheel{overflow:hidden;min-width:0;flex-grow:1;user-select:none;-webkit-user-select:none;}.mud-wheel-item{width:100%;display:flex;align-content:center;justify-content:center;color:var(--mud-palette-text-secondary);border-radius:var(--mud-default-borderradius);}.mud-wheel-item.mud-wheel-item:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover);}.mud-wheel-item.wheel-item-closest{color:var(--mud-palette-text);}.mud-wheel-item.wheel-item-empty{min-height:32px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty-dense{min-height:24px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty:hover{background-color:unset;}.mud-wheel-item.mud-disabled{color:var(--mud-palette-text-disabled);}.middle-item{transform:scale(1.2);}.middle-item.mud-disabled{color:var(--mud-palette-text-disabled);}.mud-wheel-border{min-height:2px !important;}.mud-wheel-border.mud-wheel-border-default{background-color:var(--mud-palette-text-primary);}.mud-wheel-border.mud-wheel-border-primary{background-color:var(--mud-palette-primary);}.mud-wheel-border.wheel-border-gradient-primary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-primary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-secondary{background-color:var(--mud-palette-secondary);}.mud-wheel-border.wheel-border-gradient-secondary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-secondary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-tertiary{background-color:var(--mud-palette-tertiary);}.mud-wheel-border.wheel-border-gradient-tertiary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-tertiary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-info{background-color:var(--mud-palette-info);}.mud-wheel-border.wheel-border-gradient-info{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-info),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-success{background-color:var(--mud-palette-success);}.mud-wheel-border.wheel-border-gradient-success{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-success),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-warning{background-color:var(--mud-palette-warning);}.mud-wheel-border.wheel-border-gradient-warning{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-warning),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-error{background-color:var(--mud-palette-error);}.mud-wheel-border.wheel-border-gradient-error{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-error),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-dark{background-color:var(--mud-palette-dark);}.mud-wheel-border.wheel-border-gradient-dark{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-dark),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.wheel-border-gradient-default{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-text-primary),rgba(255,0,0,0));background-color:unset;}.mud-typographym3-display-large{font-family:var(--mud-typographym3-display-large-font);line-height:var(--mud-typographym3-display-large-line-height);font-size:var(--mud-typographym3-display-large-size);letter-spacing:var(--mud-typographym3-display-large-tracking);font-weight:var(--mud-typographym3-display-large-weight);}.mud-typographym3-display-medium{font-family:var(--mud-typographym3-display-medium-font);line-height:var(--mud-typographym3-display-medium-line-height);font-size:var(--mud-typographym3-display-medium-size);letter-spacing:var(--mud-typographym3-display-medium-tracking);font-weight:var(--mud-typographym3-display-medium-weight);}.mud-typographym3-display-small{font-family:var(--mud-typographym3-display-small-font);line-height:var(--mud-typographym3-display-small-line-height);font-size:var(--mud-typographym3-display-small-size);letter-spacing:var(--mud-typographym3-display-small-tracking);font-weight:var(--mud-typographym3-display-small-weight);}.mud-typographym3-headline-large{font-family:var(--mud-typographym3-headline-large-font);line-height:var(--mud-typographym3-headline-large-line-height);font-size:var(--mud-typographym3-headline-large-size);letter-spacing:var(--mud-typographym3-headline-large-tracking);font-weight:var(--mud-typographym3-headline-large-weight);}.mud-typographym3-headline-medium{font-family:var(--mud-typographym3-headline-medium-font);line-height:var(--mud-typographym3-headline-medium-line-height);font-size:var(--mud-typographym3-headline-medium-size);letter-spacing:var(--mud-typographym3-headline-medium-tracking);font-weight:var(--mud-typographym3-headline-medium-weight);}.mud-typographym3-headline-small{font-family:var(--mud-typographym3-headline-small-font);line-height:var(--mud-typographym3-headline-small-line-height);font-size:var(--mud-typographym3-headline-small-size);letter-spacing:var(--mud-typographym3-headline-small-tracking);font-weight:var(--mud-typographym3-headline-small-weight);}.mud-typographym3-title-large{font-family:var(--mud-typographym3-title-large-font);line-height:var(--mud-typographym3-title-large-line-height);font-size:var(--mud-typographym3-title-large-size);letter-spacing:var(--mud-typographym3-title-large-tracking);font-weight:var(--mud-typographym3-title-large-weight);}.mud-typographym3-title-medium{font-family:var(--mud-typographym3-title-medium-font);line-height:var(--mud-typographym3-title-medium-line-height);font-size:var(--mud-typographym3-title-medium-size);letter-spacing:var(--mud-typographym3-title-medium-tracking);font-weight:var(--mud-typographym3-title-medium-weight);}.mud-typographym3-title-small{font-family:var(--mud-typographym3-title-small-font);line-height:var(--mud-typographym3-title-small-line-height);font-size:var(--mud-typographym3-title-small-size);letter-spacing:var(--mud-typographym3-title-small-tracking);font-weight:var(--mud-typographym3-title-small-weight);}.mud-typographym3-body-large{font-family:var(--mud-typographym3-body-large-font);line-height:var(--mud-typographym3-body-large-line-height);font-size:var(--mud-typographym3-body-large-size);letter-spacing:var(--mud-typographym3-body-large-tracking);font-weight:var(--mud-typographym3-body-large-weight);}.mud-typographym3-body-medium{font-family:var(--mud-typographym3-body-medium-font);line-height:var(--mud-typographym3-body-medium-line-height);font-size:var(--mud-typographym3-body-medium-size);letter-spacing:var(--mud-typographym3-body-medium-tracking);font-weight:var(--mud-typographym3-body-medium-weight);}.mud-typographym3-body-small{font-family:var(--mud-typographym3-body-small-font);line-height:var(--mud-typographym3-body-small-line-height);font-size:var(--mud-typographym3-body-small-size);letter-spacing:var(--mud-typographym3-body-small-tracking);font-weight:var(--mud-typographym3-body-small-weight);}.mud-typographym3-label-large{font-family:var(--mud-typographym3-label-large-font);line-height:var(--mud-typographym3-label-large-line-height);font-size:var(--mud-typographym3-label-large-size);letter-spacing:var(--mud-typographym3-label-large-tracking);font-weight:var(--mud-typographym3-label-large-weight);}.mud-typographym3-label-medium{font-family:var(--mud-typographym3-label-medium-font);line-height:var(--mud-typographym3-label-medium-line-height);font-size:var(--mud-typographym3-label-medium-size);letter-spacing:var(--mud-typographym3-label-medium-tracking);font-weight:var(--mud-typographym3-label-medium-weight);}.mud-typographym3-label-small{font-family:var(--mud-typographym3-label-small-font);line-height:var(--mud-typographym3-label-small-line-height);font-size:var(--mud-typographym3-label-small-size);letter-spacing:var(--mud-typographym3-label-small-tracking);font-weight:var(--mud-typographym3-label-small-weight);}.mud-typography-display-inline{display:inline;}.mud-transfer-list-common{height:fill-available;height:-webkit-fill-available;}.mud-transfer-list-container{display:flex;flex-direction:column;flex:1 1 0%;}.mud-list-extended{margin:0;padding:0;position:relative;list-style:none;}.mud-list-extended.mud-list-padding-extended{padding-top:8px;padding-bottom:8px;}.mud-list-item-extended{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;}.mud-list-item-extended.mud-list-item-dense-extended{padding-top:4px;padding-bottom:4px;}.mud-list-item-extended.mud-list-item-disabled-extended{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-list-item-extended.mud-list-item-disabled-extended .mud-list-item-icon-extended{color:var(--mud-palette-action-disabled) !important;}.mud-list-item-clickable-extended{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-list-item-clickable-extended:hover:not(.mud-list-item-functional){background-color:var(--mud-palette-action-default-hover);}.mud-list-item-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-item-text-extended{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-list-item-text-inset-extended{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-list-item-icon-extended{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-list-item-multiselect-extended{max-height:32px;}.mud-list-item-multiselect-extended.mud-list-item-multiselect-checkbox-extended{padding-inline-end:16px;}.mud-list-subheader-extended{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-list-subheader-secondary-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-subheader-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-subheader-inset-extended{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-list-subheader-sticky-extended{top:-8px;z-index:1;position:sticky;}.mud-list-subheader-sticky-extended.mud-list-subheader-sticky-dense-extended{top:0;}.mud-list-item-hilight-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-hilight-selected{background-color:var(--mud-palette-lines-default) !important;}.mud-list-item-nested-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-avatar-extended{min-width:56px;flex-shrink:0;}.mud-nested-list-extended>.mud-list-item-extended{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset;}.mud-select-extended{display:flex;flex-grow:1;flex-basis:0;min-width:0;position:relative;height:fit-content;}.mud-select-extended.mud-autocomplete{display:block;}.mud-select-extended.mud-autocomplete .mud-select-input-extended{cursor:text;}.mud-select-extended.mud-autocomplete .mud-input-adornment-extended{cursor:pointer;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended input{padding-right:3.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended .mud-icon-button{display:none !important;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular--with-adornment{padding-right:3rem;}.mud-select-extended.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px;}.mud-select-extended .mud-select-input-extended{cursor:pointer;}.mud-select-extended .mud-select-input-extended .mud-select-extended-nowrap{white-space:nowrap;}.mud-select-extended .mud-select-input-extended .mud-input-slot{overflow:hidden;text-overflow:ellipsis;}.mud-select-extended .mud-select-input-extended .mud-input-adornment-end{margin-left:0;}.mud-select-extended .mud-select-input-extended:disabled{cursor:default;}.mud-select-extended .mud-disabled .mud-select-input{cursor:default;}.mud-select-extended>.mud-form-helpertext{margin-top:-21px;}.mud-select-all-extended{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px;}.mud-select-input-chip-extended{display:flex;flex-wrap:wrap;max-width:100%;row-gap:4px;}.mud-select-input-chip-extended.mud-select-extended-nowrap{flex-wrap:nowrap;overflow-x:hidden;}.mud-select-input-chip-extended .mud-chip{flex:0 0 auto;white-space:nowrap;}.mud-placeholder-extended{line-height:unset;}.mud-input-adornment-start-extended:not(.mud-input-text-extended){margin-inline-start:12px;}.mud-input-adornment-start-extended.mud-input-filled-extended{margin-top:16px;}.mud-input-adornment-end-extended:not(.mud-input-text-extended){margin-inline-end:12px;}.mud-no-start-adornment .mud-input-adornment-start-extended{margin-inline-start:0 !important;}
\ No newline at end of file
+.mud-combobox{margin:0;padding:0;position:relative;list-style:none}.mud-combobox.mud-combobox-padding{padding-top:8px;padding-bottom:8px}.mud-combobox-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;min-height:48px}.mud-combobox-item.mud-combobox-item-comfort{padding-top:4px;padding-bottom:4px;min-height:40px}.mud-combobox-item.mud-combobox-item-slim{padding-top:2px;padding-bottom:2px;min-height:32px}.mud-combobox-item.mud-combobox-item-superslim{padding-top:0;padding-bottom:0;min-height:24px}.mud-combobox-item.mud-combobox-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important}.mud-combobox-item.mud-combobox-item-disabled .mud-combobox-item-icon{color:var(--mud-palette-action-disabled) !important}.mud-combobox-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:rgba(0,0,0,0);-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-combobox-item-clickable:hover{background-color:var(--mud-palette-action-default-hover)}.mud-combobox-item-gutters{padding-left:16px;padding-right:16px}.mud-combobox-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px}.mud-combobox-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset}.mud-combobox-item-icon{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px}.mud-combobox-item-multiselect{max-height:32px}.mud-combobox-item-multiselect.mud-combobox-item-multiselect-checkbox{padding-inline-end:16px}.mud-combobox-subheader{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px}.mud-combobox-subheader-secondary-background{background-color:var(--mud-palette-background-gray)}.mud-combobox-subheader-gutters{padding-left:16px;padding-right:16px}.mud-combobox-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset}.mud-combobox-subheader-sticky{top:-8px;z-index:1;position:sticky}.mud-combobox-subheader-sticky.mud-combobox-subheader-sticky-dense{top:0}.mud-combobox-item-hilight{background-color:var(--mud-palette-background-gray)}.mud-combobox-item-hilight{background-color:var(--mud-palette-lines-default) !important}.mud-combobox-item-bordered{border-left:4px solid var(--mud-palette-lines-default);padding-inline-start:12px}.mud-combobox-item-bordered-primary{border-left:4px solid var(--mud-palette-primary);padding-inline-start:12px}.mud-combobox-item-bordered-secondary{border-left:4px solid var(--mud-palette-secondary);padding-inline-start:12px}.mud-combobox-item-bordered-tertiary{border-left:4px solid var(--mud-palette-tertiary);padding-inline-start:12px}.mud-combobox-item-bordered-info{border-left:4px solid var(--mud-palette-info);padding-inline-start:12px}.mud-combobox-item-bordered-success{border-left:4px solid var(--mud-palette-success);padding-inline-start:12px}.mud-combobox-item-bordered-warning{border-left:4px solid var(--mud-palette-warning);padding-inline-start:12px}.mud-combobox-item-bordered-error{border-left:4px solid var(--mud-palette-error);padding-inline-start:12px}.mud-combobox-item-bordered-dark{border-left:4px solid var(--mud-palette-dark);padding-inline-start:12px}.mud-combobox-item-nested-background{background-color:var(--mud-palette-background-gray)}.mud-combobox-item-avatar{min-width:56px;flex-shrink:0}.mud-combobox-highlighter{background-color:rgba(0,0,0,0);font-weight:bold;text-decoration:underline}.mud-gallery-selected-toolbox{left:0;right:0;height:56px;width:100%;background-color:rgba(0,0,0,.6)}.mud-gallery-selected-toolbox.gallery-toolbox-top{top:0}.mud-gallery-selected-toolbox.gallery-toolbox-bottom{bottom:0}.mud-page{display:grid;box-sizing:border-box;width:100%}.mud-page.mud-page-height-full{min-height:100vh}.mud-page.mud-page-height-full-without-appbar{min-height:calc(100vh - var(--mud-appbar-height))}.mud-page.mud-page-column-2{grid-template-columns:repeat(2, 50%)}.mud-page.mud-page-column-3{grid-template-columns:repeat(3, 33.333333%)}.mud-page.mud-page-column-4{grid-template-columns:repeat(4, 25%)}.mud-page.mud-page-column-5{grid-template-columns:repeat(5, 20%)}.mud-page.mud-page-column-6{grid-template-columns:repeat(6, 16.666666%)}.mud-page.mud-page-column-7{grid-template-columns:repeat(7, 14.285714%)}.mud-page.mud-page-column-8{grid-template-columns:repeat(8, 12.5%)}.mud-page.mud-page-column-9{grid-template-columns:repeat(9, 11.111111%)}.mud-page.mud-page-column-10{grid-template-columns:repeat(10, 10%)}.mud-page.mud-page-column-11{grid-template-columns:repeat(11, 9.090909%)}.mud-page.mud-page-column-12{grid-template-columns:repeat(12, 8.333333%)}.mud-page.mud-page-row-2{grid-template-rows:repeat(2, 50%)}.mud-page.mud-page-row-3{grid-template-rows:repeat(3, 33.333333%)}.mud-page.mud-page-row-4{grid-template-rows:repeat(4, 25%)}.mud-page.mud-page-row-5{grid-template-rows:repeat(5, 20%)}.mud-page.mud-page-row-6{grid-template-rows:repeat(6, 16.666666%)}.mud-page.mud-page-row-7{grid-template-rows:repeat(7, 14.285714%)}.mud-page.mud-page-row-8{grid-template-rows:repeat(8, 12.5%)}.mud-page.mud-page-row-9{grid-template-rows:repeat(9, 11.111111%)}.mud-page.mud-page-row-10{grid-template-rows:repeat(10, 10%)}.mud-page.mud-page-row-11{grid-template-rows:repeat(11, 9.090909%)}.mud-page.mud-page-row-12{grid-template-rows:repeat(12, 8.333333%)}.mud-section{display:inline-grid;overflow:auto}.mud-section.mud-section-col-start-1{grid-column-start:1}.mud-section.mud-section-col-start-2{grid-column-start:2}.mud-section.mud-section-col-start-3{grid-column-start:3}.mud-section.mud-section-col-start-4{grid-column-start:4}.mud-section.mud-section-col-start-5{grid-column-start:5}.mud-section.mud-section-col-start-6{grid-column-start:6}.mud-section.mud-section-col-start-7{grid-column-start:7}.mud-section.mud-section-col-start-8{grid-column-start:8}.mud-section.mud-section-col-start-9{grid-column-start:9}.mud-section.mud-section-col-start-10{grid-column-start:10}.mud-section.mud-section-col-start-11{grid-column-start:11}.mud-section.mud-section-col-start-12{grid-column-start:12}.mud-section.mud-section-col-end-1{grid-column-end:1}.mud-section.mud-section-col-end-2{grid-column-end:2}.mud-section.mud-section-col-end-3{grid-column-end:3}.mud-section.mud-section-col-end-4{grid-column-end:4}.mud-section.mud-section-col-end-5{grid-column-end:5}.mud-section.mud-section-col-end-6{grid-column-end:6}.mud-section.mud-section-col-end-7{grid-column-end:7}.mud-section.mud-section-col-end-8{grid-column-end:8}.mud-section.mud-section-col-end-9{grid-column-end:9}.mud-section.mud-section-col-end-10{grid-column-end:10}.mud-section.mud-section-col-end-11{grid-column-end:11}.mud-section.mud-section-col-end-12{grid-column-end:12}.mud-section.mud-section-col-end-13{grid-column-end:13}.mud-section.mud-section-row-start-1{grid-row-start:1}.mud-section.mud-section-row-start-2{grid-row-start:2}.mud-section.mud-section-row-start-3{grid-row-start:3}.mud-section.mud-section-row-start-4{grid-row-start:4}.mud-section.mud-section-row-start-5{grid-row-start:5}.mud-section.mud-section-row-start-6{grid-row-start:6}.mud-section.mud-section-row-start-7{grid-row-start:7}.mud-section.mud-section-row-start-8{grid-row-start:8}.mud-section.mud-section-row-start-9{grid-row-start:9}.mud-section.mud-section-row-start-10{grid-row-start:10}.mud-section.mud-section-row-start-11{grid-row-start:11}.mud-section.mud-section-row-start-12{grid-row-start:12}.mud-section.mud-section-row-end-1{grid-row-end:1}.mud-section.mud-section-row-end-2{grid-row-end:2}.mud-section.mud-section-row-end-3{grid-row-end:3}.mud-section.mud-section-row-end-4{grid-row-end:4}.mud-section.mud-section-row-end-5{grid-row-end:5}.mud-section.mud-section-row-end-6{grid-row-end:6}.mud-section.mud-section-row-end-7{grid-row-end:7}.mud-section.mud-section-row-end-8{grid-row-end:8}.mud-section.mud-section-row-end-9{grid-row-end:9}.mud-section.mud-section-row-end-10{grid-row-end:10}.mud-section.mud-section-row-end-11{grid-row-end:11}.mud-section.mud-section-row-end-12{grid-row-end:12}.mud-section.mud-section-row-end-13{grid-row-end:13}.mud-popup{z-index:2000;overflow:auto;background-color:var(--mud-palette-background);min-height:var(--mud-appbar-height)}.mud-popup.mud-popup-center{height:300px;left:50%;top:50%;transform:translate(-50%, -50%);width:320px;aspect-ratio:1/1}.mud-range-container{align-items:center;margin:20px 0}.mud-range-container input::-webkit-slider-thumb{pointer-events:all;position:relative;z-index:1}.mud-range-container input::-moz-range-thumb{pointer-events:all;position:relative;z-index:10}.mud-range-container input::-moz-range-track{position:relative;z-index:-1}.mud-range-container input:last-of-type::-moz-range-track{-moz-appearance:none}.mud-range-container .mud-slider-input:last-of-type{position:absolute;pointer-events:none;top:0}.mud-range-container input[type=range]::-webkit-slider-thumb{pointer-events:all}.mud-range-display{text-align:center}.mud-signature-pad-container{touch-action:none}.mud-splitter{display:grid;position:relative;width:100%}.mud-splitter-content{overflow:auto}.mud-splitter-thumb ::-webkit-slider-runnable-track{visibility:hidden !important;height:100% !important}.mud-splitter-thumb ::-moz-range-track{visibility:hidden !important;height:100% !important}.mud-splitter-track{position:absolute;top:50%;transform:translateY(-50%);height:100%}.mud-splitter-track.mud-slider{visibility:hidden !important}.mud-splitter-track.mud-slider .mud-slider-container{height:100% !important}.mud-splitter-track.mud-slider .mud-slider-input{top:50%}.mud-splitter-thumb ::-webkit-slider-thumb{visibility:visible !important;appearance:none !important;-webkit-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important}.mud-splitter-thumb-disabled ::-webkit-slider-thumb{cursor:default !important}.mud-splitter-thumb ::-moz-range-thumb{visibility:visible !important;appearance:none !important;-moz-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important}.mud-splitter-thumb-disabled ::-moz-range-thumb{cursor:default !important}.mud-stepper-header-extended{min-height:62px;border-radius:var(--mud-default-borderradius)}.mud-stepper-header-extended.mud-stepper-header-non-linear-extended:hover{background-color:var(--mud-palette-action-default-hover)}.mud-stepper-badge-extended{z-index:21}.mud-stepper-avatar-extended{z-index:20}.mud-stepper-avatar-bg-extended{background-color:var(--mud-palette-background)}.mud-stepper-sub-inner-header-extended{grid-column-start:1;grid-column-end:-1;flex-direction:row;grid-row:1;list-style:none;display:flex}.mud-stepper-sub-inner-header-vertical-extended{grid-row-start:1;grid-row-end:-1;flex-direction:column;grid-column:1;list-style:none;display:flex}.mud-stepper-text-mobile-extended{grid-row:1;margin-top:22px}.mud-stepper-text-mobile-vertical-extended{grid-column:1;margin-inline-start:22px}.mud-stepper-step-1.horizontal{width:calc(100%/1)}.mud-stepper-step-1.vertical{height:calc(100%/1)}.mud-stepper-step-2.horizontal{width:calc(100%/2)}.mud-stepper-step-2.vertical{height:calc(100%/2)}.mud-stepper-step-3.horizontal{width:calc(100%/3)}.mud-stepper-step-3.vertical{height:calc(100%/3)}.mud-stepper-step-4.horizontal{width:calc(100%/4)}.mud-stepper-step-4.vertical{height:calc(100%/4)}.mud-stepper-step-5.horizontal{width:calc(100%/5)}.mud-stepper-step-5.vertical{height:calc(100%/5)}.mud-stepper-step-6.horizontal{width:calc(100%/6)}.mud-stepper-step-6.vertical{height:calc(100%/6)}.mud-stepper-step-7.horizontal{width:calc(100%/7)}.mud-stepper-step-7.vertical{height:calc(100%/7)}.mud-stepper-step-8.horizontal{width:calc(100%/8)}.mud-stepper-step-8.vertical{height:calc(100%/8)}.mud-stepper-step-9.horizontal{width:calc(100%/9)}.mud-stepper-step-9.vertical{height:calc(100%/9)}.mud-stepper-step-10.horizontal{width:calc(100%/10)}.mud-stepper-step-10.vertical{height:calc(100%/10)}.mud-stepper-step-11.horizontal{width:calc(100%/11)}.mud-stepper-step-11.vertical{height:calc(100%/11)}.mud-stepper-step-12.horizontal{width:calc(100%/12)}.mud-stepper-step-12.vertical{height:calc(100%/12)}.mud-stepper-grid-1.horizontal{display:grid;grid-template-columns:repeat(2, 1fr)}.mud-stepper-grid-1.vertical{display:grid;grid-template-rows:repeat(2, 1fr)}.mud-stepper-grid-2.horizontal{display:grid;grid-template-columns:repeat(4, 1fr)}.mud-stepper-grid-2.vertical{display:grid;grid-template-rows:repeat(4, 1fr)}.mud-stepper-grid-3.horizontal{display:grid;grid-template-columns:repeat(6, 1fr)}.mud-stepper-grid-3.vertical{display:grid;grid-template-rows:repeat(6, 1fr)}.mud-stepper-grid-4.horizontal{display:grid;grid-template-columns:repeat(8, 1fr)}.mud-stepper-grid-4.vertical{display:grid;grid-template-rows:repeat(8, 1fr)}.mud-stepper-grid-5.horizontal{display:grid;grid-template-columns:repeat(10, 1fr)}.mud-stepper-grid-5.vertical{display:grid;grid-template-rows:repeat(10, 1fr)}.mud-stepper-grid-6.horizontal{display:grid;grid-template-columns:repeat(12, 1fr)}.mud-stepper-grid-6.vertical{display:grid;grid-template-rows:repeat(12, 1fr)}.mud-stepper-grid-7.horizontal{display:grid;grid-template-columns:repeat(14, 1fr)}.mud-stepper-grid-7.vertical{display:grid;grid-template-rows:repeat(14, 1fr)}.mud-stepper-grid-8.horizontal{display:grid;grid-template-columns:repeat(16, 1fr)}.mud-stepper-grid-8.vertical{display:grid;grid-template-rows:repeat(16, 1fr)}.mud-stepper-grid-9.horizontal{display:grid;grid-template-columns:repeat(18, 1fr)}.mud-stepper-grid-9.vertical{display:grid;grid-template-rows:repeat(18, 1fr)}.mud-stepper-grid-10.horizontal{display:grid;grid-template-columns:repeat(20, 1fr)}.mud-stepper-grid-10.vertical{display:grid;grid-template-rows:repeat(20, 1fr)}.mud-stepper-grid-11.horizontal{display:grid;grid-template-columns:repeat(22, 1fr)}.mud-stepper-grid-11.vertical{display:grid;grid-template-rows:repeat(22, 1fr)}.mud-stepper-grid-12.horizontal{display:grid;grid-template-columns:repeat(24, 1fr)}.mud-stepper-grid-12.vertical{display:grid;grid-template-rows:repeat(24, 1fr)}.mud-stepper-grid-13.horizontal{display:grid;grid-template-columns:repeat(26, 1fr)}.mud-stepper-grid-13.vertical{display:grid;grid-template-rows:repeat(26, 1fr)}.mud-stepper-grid-14.horizontal{display:grid;grid-template-columns:repeat(28, 1fr)}.mud-stepper-grid-14.vertical{display:grid;grid-template-rows:repeat(28, 1fr)}.mud-stepper-grid-15.horizontal{display:grid;grid-template-columns:repeat(30, 1fr)}.mud-stepper-grid-15.vertical{display:grid;grid-template-rows:repeat(30, 1fr)}.mud-stepper-grid-16.horizontal{display:grid;grid-template-columns:repeat(32, 1fr)}.mud-stepper-grid-16.vertical{display:grid;grid-template-rows:repeat(32, 1fr)}.mud-stepper-grid-17.horizontal{display:grid;grid-template-columns:repeat(34, 1fr)}.mud-stepper-grid-17.vertical{display:grid;grid-template-rows:repeat(34, 1fr)}.mud-stepper-grid-18.horizontal{display:grid;grid-template-columns:repeat(36, 1fr)}.mud-stepper-grid-18.vertical{display:grid;grid-template-rows:repeat(36, 1fr)}.mud-stepper-grid-19.horizontal{display:grid;grid-template-columns:repeat(38, 1fr)}.mud-stepper-grid-19.vertical{display:grid;grid-template-rows:repeat(38, 1fr)}.mud-stepper-grid-20.horizontal{display:grid;grid-template-columns:repeat(40, 1fr)}.mud-stepper-grid-20.vertical{display:grid;grid-template-rows:repeat(40, 1fr)}.mud-stepper-grid-21.horizontal{display:grid;grid-template-columns:repeat(42, 1fr)}.mud-stepper-grid-21.vertical{display:grid;grid-template-rows:repeat(42, 1fr)}.mud-stepper-grid-22.horizontal{display:grid;grid-template-columns:repeat(44, 1fr)}.mud-stepper-grid-22.vertical{display:grid;grid-template-rows:repeat(44, 1fr)}.mud-stepper-grid-23.horizontal{display:grid;grid-template-columns:repeat(46, 1fr)}.mud-stepper-grid-23.vertical{display:grid;grid-template-rows:repeat(46, 1fr)}.mud-stepper-grid-24.horizontal{display:grid;grid-template-columns:repeat(48, 1fr)}.mud-stepper-grid-24.vertical{display:grid;grid-template-rows:repeat(48, 1fr)}.steps-1.horizontal{grid-column-start:2;grid-column-end:2;grid-row:1/-1}.steps-1.vertical{grid-row-start:2;grid-row-end:2;grid-column:1/-1}.steps-2.horizontal{grid-column-start:2;grid-column-end:4;grid-row:1/-1}.steps-2.vertical{grid-row-start:2;grid-row-end:4;grid-column:1/-1}.steps-3.horizontal{grid-column-start:2;grid-column-end:6;grid-row:1/-1}.steps-3.vertical{grid-row-start:2;grid-row-end:6;grid-column:1/-1}.steps-4.horizontal{grid-column-start:2;grid-column-end:8;grid-row:1/-1}.steps-4.vertical{grid-row-start:2;grid-row-end:8;grid-column:1/-1}.steps-5.horizontal{grid-column-start:2;grid-column-end:10;grid-row:1/-1}.steps-5.vertical{grid-row-start:2;grid-row-end:10;grid-column:1/-1}.steps-6.horizontal{grid-column-start:2;grid-column-end:12;grid-row:1/-1}.steps-6.vertical{grid-row-start:2;grid-row-end:12;grid-column:1/-1}.steps-7.horizontal{grid-column-start:2;grid-column-end:14;grid-row:1/-1}.steps-7.vertical{grid-row-start:2;grid-row-end:14;grid-column:1/-1}.steps-8.horizontal{grid-column-start:2;grid-column-end:16;grid-row:1/-1}.steps-8.vertical{grid-row-start:2;grid-row-end:16;grid-column:1/-1}.steps-9.horizontal{grid-column-start:2;grid-column-end:18;grid-row:1/-1}.steps-9.vertical{grid-row-start:2;grid-row-end:18;grid-column:1/-1}.steps-10.horizontal{grid-column-start:2;grid-column-end:20;grid-row:1/-1}.steps-10.vertical{grid-row-start:2;grid-row-end:20;grid-column:1/-1}.steps-11.horizontal{grid-column-start:2;grid-column-end:22;grid-row:1/-1}.steps-11.vertical{grid-row-start:2;grid-row-end:22;grid-column:1/-1}.steps-12.horizontal{grid-column-start:2;grid-column-end:24;grid-row:1/-1}.steps-12.vertical{grid-row-start:2;grid-row-end:24;grid-column:1/-1}.mud-stepper-progress-extended.horizontal.header-size-small{top:22px;height:2px}.mud-stepper-progress-extended.horizontal.header-size-medium{top:30px;height:3px}.mud-stepper-progress-extended.horizontal.header-size-large{top:38px;height:4px}.mud-stepper-progress-extended.vertical.header-size-small{left:22px}.mud-stepper-progress-extended.vertical.header-size-medium{left:30px}.mud-stepper-progress-extended.vertical.header-size-large{left:38px}.mobile.horizontal .mud-stepper-progress-extended{margin-inline-start:40px}.mud-stepper-progress-extended{display:inline-grid;z-index:10}.mud-stepper-progress-extended.vertical{transform:rotateX(180deg)}.mud-switch-m3{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;margin-top:4px;margin-bottom:4px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mud-switch-m3.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default}.mud-switch-m3.mud-readonly,.mud-switch-m3 .mud-readonly:hover{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-switch-span-m3{width:52px;height:32px;display:inline-flex;z-index:0;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle}.mud-switch-span-m3.mud-switch-child-content-m3{margin-inline-end:12px}.mud-switch-span-m3 .mud-switch-track-m3{width:52px;height:32px;z-index:-1;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border-radius:30px;background-color:var(--mud-palette-background);border:2px solid}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-default-m3{border-color:var(--mud-palette-text-primary)}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-primary-m3{border-color:var(--mud-palette-primary)}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-secondary-m3{border-color:var(--mud-palette-secondary)}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-tertiary-m3{border-color:var(--mud-palette-tertiary)}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-info-m3{border-color:var(--mud-palette-info)}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-success-m3{border-color:var(--mud-palette-success)}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-warning-m3{border-color:var(--mud-palette-warning)}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-error-m3{border-color:var(--mud-palette-error)}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-dark-m3{border-color:var(--mud-palette-dark)}.mud-switch-base-m3{padding-top:4px;padding-bottom:4px;padding-inline-start:8px;top:0;left:0;bottom:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-switch-base-m3.mud-switch-base-dense-m3{padding-inline-start:4px}.mud-switch-base-m3.mud-checked{transform:translateX(20px);padding:4px}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3{opacity:1}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-default{background-color:var(--mud-palette-text-primary)}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-primary{background-color:var(--mud-palette-primary)}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-secondary{background-color:var(--mud-palette-secondary)}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-tertiary{background-color:var(--mud-palette-tertiary)}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-info{background-color:var(--mud-palette-info)}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-success{background-color:var(--mud-palette-success)}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-warning{background-color:var(--mud-palette-warning)}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-error{background-color:var(--mud-palette-error)}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-dark{background-color:var(--mud-palette-dark)}.mud-switch-base-m3.mud-checked .mud-switch-thumb-m3{width:24px;height:24px;box-shadow:0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12);border-radius:50%;background-color:var(--mud-palette-background)}.mud-switch-base-m3:hover{background-color:var(--mud-palette-action-default-hover)}.mud-switch-base-m3.mud-switch-disabled{color:var(--mud-palette-gray-default) !important}.mud-switch-base-m3.mud-switch-disabled+.mud-switch-track-m3{opacity:.12 !important}.mud-switch-base-m3.mud-switch-disabled:hover,.mud-switch-base-m3.mud-switch-disabled:focus-visible{cursor:default;background-color:rgba(0,0,0,0) !important}.mud-switch-button-m3{display:flex;align-items:inherit;justify-content:inherit}.mud-switch-button-m3 .mud-switch-input-m3{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute}.mud-switch-button-m3 .mud-switch-thumb-m3{width:16px;height:16px;box-shadow:0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12);border-radius:50%}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-default-m3{background-color:var(--mud-palette-text-primary)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-primary-m3{background-color:var(--mud-palette-primary)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-secondary-m3{background-color:var(--mud-palette-secondary)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-tertiary-m3{background-color:var(--mud-palette-tertiary)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-info-m3{background-color:var(--mud-palette-info)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-success-m3{background-color:var(--mud-palette-success)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-warning-m3{background-color:var(--mud-palette-warning)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-error-m3{background-color:var(--mud-palette-error)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-dark-m3{background-color:var(--mud-palette-dark)}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-off-icon-m3{width:24px;height:24px}.mud-wheel{overflow:hidden;min-width:0;flex-grow:1;user-select:none;-webkit-user-select:none}.mud-wheel-item{width:100%;display:flex;align-content:center;justify-content:center;color:var(--mud-palette-text-secondary);border-radius:var(--mud-default-borderradius)}.mud-wheel-item.mud-wheel-item:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover)}.mud-wheel-item.wheel-item-closest{color:var(--mud-palette-text)}.mud-wheel-item.wheel-item-empty{min-height:32px !important}.mud-wheel-item.wheel-item-empty.wheel-item-empty-dense{min-height:24px !important}.mud-wheel-item.wheel-item-empty.wheel-item-empty:hover{background-color:unset}.mud-wheel-item.mud-disabled{color:var(--mud-palette-text-disabled)}.middle-item{transform:scale(1.2)}.middle-item.mud-disabled{color:var(--mud-palette-text-disabled)}.mud-wheel-border{min-height:2px !important}.mud-wheel-border.mud-wheel-border-default{background-color:var(--mud-palette-text-primary)}.mud-wheel-border.mud-wheel-border-primary{background-color:var(--mud-palette-primary)}.mud-wheel-border.wheel-border-gradient-primary{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-primary), rgba(255, 0, 0, 0));background-color:unset}.mud-wheel-border.mud-wheel-border-secondary{background-color:var(--mud-palette-secondary)}.mud-wheel-border.wheel-border-gradient-secondary{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-secondary), rgba(255, 0, 0, 0));background-color:unset}.mud-wheel-border.mud-wheel-border-tertiary{background-color:var(--mud-palette-tertiary)}.mud-wheel-border.wheel-border-gradient-tertiary{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-tertiary), rgba(255, 0, 0, 0));background-color:unset}.mud-wheel-border.mud-wheel-border-info{background-color:var(--mud-palette-info)}.mud-wheel-border.wheel-border-gradient-info{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-info), rgba(255, 0, 0, 0));background-color:unset}.mud-wheel-border.mud-wheel-border-success{background-color:var(--mud-palette-success)}.mud-wheel-border.wheel-border-gradient-success{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-success), rgba(255, 0, 0, 0));background-color:unset}.mud-wheel-border.mud-wheel-border-warning{background-color:var(--mud-palette-warning)}.mud-wheel-border.wheel-border-gradient-warning{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-warning), rgba(255, 0, 0, 0));background-color:unset}.mud-wheel-border.mud-wheel-border-error{background-color:var(--mud-palette-error)}.mud-wheel-border.wheel-border-gradient-error{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-error), rgba(255, 0, 0, 0));background-color:unset}.mud-wheel-border.mud-wheel-border-dark{background-color:var(--mud-palette-dark)}.mud-wheel-border.wheel-border-gradient-dark{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-dark), rgba(255, 0, 0, 0));background-color:unset}.mud-wheel-border.wheel-border-gradient-default{background-image:linear-gradient(to right, rgba(255, 0, 0, 0), var(--mud-palette-text-primary), rgba(255, 0, 0, 0));background-color:unset}.mud-typographym3-display-large{font-family:var(--mud-typographym3-display-large-font);line-height:var(--mud-typographym3-display-large-line-height);font-size:var(--mud-typographym3-display-large-size);letter-spacing:var(--mud-typographym3-display-large-tracking);font-weight:var(--mud-typographym3-display-large-weight)}.mud-typographym3-display-medium{font-family:var(--mud-typographym3-display-medium-font);line-height:var(--mud-typographym3-display-medium-line-height);font-size:var(--mud-typographym3-display-medium-size);letter-spacing:var(--mud-typographym3-display-medium-tracking);font-weight:var(--mud-typographym3-display-medium-weight)}.mud-typographym3-display-small{font-family:var(--mud-typographym3-display-small-font);line-height:var(--mud-typographym3-display-small-line-height);font-size:var(--mud-typographym3-display-small-size);letter-spacing:var(--mud-typographym3-display-small-tracking);font-weight:var(--mud-typographym3-display-small-weight)}.mud-typographym3-headline-large{font-family:var(--mud-typographym3-headline-large-font);line-height:var(--mud-typographym3-headline-large-line-height);font-size:var(--mud-typographym3-headline-large-size);letter-spacing:var(--mud-typographym3-headline-large-tracking);font-weight:var(--mud-typographym3-headline-large-weight)}.mud-typographym3-headline-medium{font-family:var(--mud-typographym3-headline-medium-font);line-height:var(--mud-typographym3-headline-medium-line-height);font-size:var(--mud-typographym3-headline-medium-size);letter-spacing:var(--mud-typographym3-headline-medium-tracking);font-weight:var(--mud-typographym3-headline-medium-weight)}.mud-typographym3-headline-small{font-family:var(--mud-typographym3-headline-small-font);line-height:var(--mud-typographym3-headline-small-line-height);font-size:var(--mud-typographym3-headline-small-size);letter-spacing:var(--mud-typographym3-headline-small-tracking);font-weight:var(--mud-typographym3-headline-small-weight)}.mud-typographym3-title-large{font-family:var(--mud-typographym3-title-large-font);line-height:var(--mud-typographym3-title-large-line-height);font-size:var(--mud-typographym3-title-large-size);letter-spacing:var(--mud-typographym3-title-large-tracking);font-weight:var(--mud-typographym3-title-large-weight)}.mud-typographym3-title-medium{font-family:var(--mud-typographym3-title-medium-font);line-height:var(--mud-typographym3-title-medium-line-height);font-size:var(--mud-typographym3-title-medium-size);letter-spacing:var(--mud-typographym3-title-medium-tracking);font-weight:var(--mud-typographym3-title-medium-weight)}.mud-typographym3-title-small{font-family:var(--mud-typographym3-title-small-font);line-height:var(--mud-typographym3-title-small-line-height);font-size:var(--mud-typographym3-title-small-size);letter-spacing:var(--mud-typographym3-title-small-tracking);font-weight:var(--mud-typographym3-title-small-weight)}.mud-typographym3-body-large{font-family:var(--mud-typographym3-body-large-font);line-height:var(--mud-typographym3-body-large-line-height);font-size:var(--mud-typographym3-body-large-size);letter-spacing:var(--mud-typographym3-body-large-tracking);font-weight:var(--mud-typographym3-body-large-weight)}.mud-typographym3-body-medium{font-family:var(--mud-typographym3-body-medium-font);line-height:var(--mud-typographym3-body-medium-line-height);font-size:var(--mud-typographym3-body-medium-size);letter-spacing:var(--mud-typographym3-body-medium-tracking);font-weight:var(--mud-typographym3-body-medium-weight)}.mud-typographym3-body-small{font-family:var(--mud-typographym3-body-small-font);line-height:var(--mud-typographym3-body-small-line-height);font-size:var(--mud-typographym3-body-small-size);letter-spacing:var(--mud-typographym3-body-small-tracking);font-weight:var(--mud-typographym3-body-small-weight)}.mud-typographym3-label-large{font-family:var(--mud-typographym3-label-large-font);line-height:var(--mud-typographym3-label-large-line-height);font-size:var(--mud-typographym3-label-large-size);letter-spacing:var(--mud-typographym3-label-large-tracking);font-weight:var(--mud-typographym3-label-large-weight)}.mud-typographym3-label-medium{font-family:var(--mud-typographym3-label-medium-font);line-height:var(--mud-typographym3-label-medium-line-height);font-size:var(--mud-typographym3-label-medium-size);letter-spacing:var(--mud-typographym3-label-medium-tracking);font-weight:var(--mud-typographym3-label-medium-weight)}.mud-typographym3-label-small{font-family:var(--mud-typographym3-label-small-font);line-height:var(--mud-typographym3-label-small-line-height);font-size:var(--mud-typographym3-label-small-size);letter-spacing:var(--mud-typographym3-label-small-tracking);font-weight:var(--mud-typographym3-label-small-weight)}.mud-typography-display-inline{display:inline}.mud-transfer-list-common{height:fill-available;height:-webkit-fill-available}.mud-transfer-list-container{display:flex;flex-direction:column;flex:1 1 0%}.justify-text-center input{text-align:center}.mud-code input{padding:12px 0px !important}.mud-date-time-mode-selected{background:rgba(0,0,0,.25) !important;color:var(--mud-palette-primary-contrast-text)}.mud-date-time-toggle{color:inherit !important;border-color:inherit !important}.mud-date-time-toggle-item{color:inherit !important;border-color:inherit !important}.mud-list-extended{margin:0;padding:0;position:relative;list-style:none}.mud-list-extended.mud-list-padding-extended{padding-top:8px;padding-bottom:8px}.mud-list-item-extended{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none}.mud-list-item-extended.mud-list-item-dense-extended{padding-top:4px;padding-bottom:4px}.mud-list-item-extended.mud-list-item-disabled-extended{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important}.mud-list-item-extended.mud-list-item-disabled-extended .mud-list-item-icon-extended{color:var(--mud-palette-action-disabled) !important}.mud-list-item-clickable-extended{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:rgba(0,0,0,0);-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.mud-list-item-clickable-extended:hover:not(.mud-list-item-functional){background-color:var(--mud-palette-action-default-hover)}.mud-list-item-gutters-extended{padding-left:16px;padding-right:16px}.mud-list-item-text-extended{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px}.mud-list-item-text-inset-extended{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset}.mud-list-item-icon-extended{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px}.mud-list-item-multiselect-extended{max-height:32px}.mud-list-item-multiselect-extended.mud-list-item-multiselect-checkbox-extended{padding-inline-end:16px}.mud-list-subheader-extended{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px}.mud-list-subheader-secondary-background-extended{background-color:var(--mud-palette-background-gray)}.mud-list-subheader-gutters-extended{padding-left:16px;padding-right:16px}.mud-list-subheader-inset-extended{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset}.mud-list-subheader-sticky-extended{top:-8px;z-index:1;position:sticky}.mud-list-subheader-sticky-extended.mud-list-subheader-sticky-dense-extended{top:0}.mud-list-item-hilight-extended{background-color:var(--mud-palette-background-gray)}.mud-list-item-hilight-selected{background-color:var(--mud-palette-lines-default) !important}.mud-list-item-nested-background-extended{background-color:var(--mud-palette-background-gray)}.mud-list-item-avatar-extended{min-width:56px;flex-shrink:0}.mud-nested-list-extended>.mud-list-item-extended{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset}.mud-select-extended{display:flex;flex-grow:1;flex-basis:0;min-width:0;position:relative;height:fit-content}.mud-select-extended.mud-autocomplete{display:block}.mud-select-extended.mud-autocomplete .mud-select-input-extended{cursor:text}.mud-select-extended.mud-autocomplete .mud-input-adornment-extended{cursor:pointer}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended input{padding-right:3.5rem !important}.mud-select-extended.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended .mud-icon-button{display:none !important}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular--with-adornment{padding-right:3rem}.mud-select-extended.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px}.mud-select-extended .mud-select-input-extended{cursor:pointer}.mud-select-extended .mud-select-input-extended .mud-select-extended-nowrap{white-space:nowrap}.mud-select-extended .mud-select-input-extended .mud-input-slot{overflow:hidden;text-overflow:ellipsis}.mud-select-extended .mud-select-input-extended .mud-input-adornment-end{margin-left:0}.mud-select-extended .mud-select-input-extended:disabled{cursor:default}.mud-select-extended .mud-disabled .mud-select-input{cursor:default}.mud-select-extended>.mud-form-helpertext{margin-top:-21px}.mud-select-all-extended{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px}.mud-select-input-chip-extended{display:flex;flex-wrap:wrap;max-width:100%;row-gap:4px}.mud-select-input-chip-extended.mud-select-extended-nowrap{flex-wrap:nowrap;overflow-x:hidden}.mud-select-input-chip-extended .mud-chip{flex:0 0 auto;white-space:nowrap}.mud-placeholder-extended{line-height:unset}.mud-input-adornment-start-extended:not(.mud-input-text-extended){margin-inline-start:12px}.mud-input-adornment-start-extended.mud-input-filled-extended{margin-top:16px}.mud-input-adornment-end-extended:not(.mud-input-text-extended){margin-inline-end:12px}.mud-no-start-adornment .mud-input-adornment-start-extended{margin-inline-start:0 !important}
diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.br b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.br
deleted file mode 100644
index 987a132f4..000000000
Binary files a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.br and /dev/null differ
diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.gz b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.gz
deleted file mode 100644
index 034944624..000000000
Binary files a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.css.gz and /dev/null differ
diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js
index f22891535..06365c14f 100755
--- a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js
+++ b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js
@@ -1 +1 @@
-function auto_size(n){n.style.height="5px";n.style.height=n.scrollHeight+4+"px"}function getcss(n,t){const i=document.querySelector(n);return i.style.getPropertyValue(t)}function setcss(n,t,i){const r=document.querySelectorAll(n);for(let n=0;n{const i=document.querySelector(t);return i?(i.appendChild(n),"ok"):"not found"},removeFromDOM:n=>{n&&n.__internalId!==null&&n.remove()}};class MudSignaturePadManager{constructor(){this.pads=[]}addPad(n,t,i){const r=new MudSignaturePad(n,t,i);r.init();this.pads.push(r)}togglePadEraser(n){const t=this.getPad(n);t&&t.toggleEraser()}disposePad(n){const t=this.getPad(n);t&&t.dispose()}clearPad(n){const t=this.getPad(n);t&&t.clear(!0)}downloadPadImage(n){const t=this.getPad(n);t&&t.download()}getBase64(n){const t=this.getPad(n);if(t)return t.getBase64()}updatePadOptions(n,t){const i=this.getPad(n);i&&i.setOptions(t)}updatePadImage(n,t){const i=this.getPad(n);i&&(t.startsWith("data:image/png;base64,")||(t=`data:image/png;base64,${t}`),i.updateImage(t))}setCanvasSize(n){const t=this.getPad(n);t&&t.updateCanvasSize()}getPad(n){return this.pads.find(t=>t.canvas.id===n.id)||null}}class MudSignaturePad{constructor(n,t,i){this.canvas=t;this.options=i;this.isMouseDown=!1;this.isErasing=!1;this.memCanvas=document.createElement("canvas");this.points=[];this.dotnetRef=n;this.onPointerDown=this.handlePointerDown.bind(this);this.onPointerMove=this.handlePointerMove.bind(this);this.onPointerUp=this.handlePointerUp.bind(this);this.onPointerLeave=this.stopDrawing.bind(this)}get ctx(){return this.canvas.getContext("2d")}get memCtx(){return this.memCanvas.getContext("2d")}init(){this.setCanvasSize();this.setOptions(this.options);this.canvas.addEventListener("pointerdown",this.onPointerDown,{passive:!1});this.canvas.addEventListener("pointermove",this.onPointerMove,{passive:!1});this.canvas.addEventListener("pointerup",this.onPointerUp,{passive:!1});this.canvas.addEventListener("pointerleave",this.onPointerLeave);this.canvas.style.touchAction="none";this.setPencilCursor()}dispose(){this.canvas.removeEventListener("pointerdown",this.onPointerDown);this.canvas.removeEventListener("pointermove",this.onPointerMove);this.canvas.removeEventListener("pointerup",this.onPointerUp);this.canvas.removeEventListener("pointerleave",this.onPointerLeave)}setCanvasSize(){const t=this.canvas.parentElement;if(t){const n=t.getBoundingClientRect();this.canvas.width=n.width;this.canvas.height=n.height;this.memCanvas.width=n.width;this.memCanvas.height=n.height}}updateCanvasSize(){const t=this.canvas.parentElement;if(t){const i=t.getBoundingClientRect(),r=i.width,u=i.height,n=document.createElement("canvas");n.width=this.canvas.width;n.height=this.canvas.height;const f=n.getContext("2d");f.drawImage(this.canvas,0,0);this.canvas.width=r;this.canvas.height=u;this.memCanvas.width=r;this.memCanvas.height=u;this.ctx.drawImage(n,0,0);this.memCtx.drawImage(n,0,0)}}getBase64(){return this.canvas.toDataURL()}updateImage(n){this.clear(!0);const t=new Image;t.onload=()=>{this.ctx.drawImage(t,0,0),this.memCtx.drawImage(t,0,0)};t.src=n}download(){const n=document.createElement("a");n.download="signature.png";n.href=this.getBase64();n.click();n.remove()}clear(n){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);n&&this.memCtx.clearRect(0,0,this.canvas.width,this.canvas.height)}setOptions(n){this.options=n;const t=t=>{t.lineWidth=n.lineWidth,t.lineJoin=n.lineJoin,t.lineCap=n.lineCap,t.strokeStyle=n.strokeStyle};t(this.ctx);t(this.memCtx)}toggleEraser(){this.isErasing=!this.isErasing;this.isErasing?this.setEraserCursor():this.setPencilCursor()}setPencilCursor(){this.canvas.style.cursor="url('_content/CodeBeam.MudBlazor.Extensions/pencil.cur'), auto"}setEraserCursor(){this.canvas.style.cursor="url('_content/CodeBeam.MudBlazor.Extensions/eraser.cur'), auto"}handlePointerDown(n){n.preventDefault();this.isMouseDown=!0;const{offsetX:t,offsetY:i}=n;this.points=[{x:t,y:i}]}handlePointerMove(n){if(this.isMouseDown){n.preventDefault();const{offsetX:t,offsetY:i}=n;this.isErasing?this.ctx.clearRect(t-10,i-10,23,23):(this.clear(),this.ctx.drawImage(this.memCanvas,0,0),this.points.push({x:t,y:i}),this.drawPoints(this.ctx,this.points))}}handlePointerUp(n){n.preventDefault();this.stopDrawing()}stopDrawing(){this.isMouseDown&&(this.isMouseDown=!1,this.memCtx.clearRect(0,0,this.memCanvas.width,this.memCanvas.height),this.memCtx.drawImage(this.canvas,0,0),this.points=[])}drawPoints(n,t){if(!(t.length<2)){if(t.length<6){const i=t[0];n.beginPath();n.lineWidth=this.options.lineWidth;n.strokeStyle=this.options.strokeStyle;n.arc(i.x,i.y,n.lineWidth/2,0,Math.PI*2,!0);n.fill();n.closePath();this.pushUpdateToBlazorComponent();return}n.beginPath();n.moveTo(t[0].x,t[0].y);for(let i=1;i{const i=document.querySelector(t);return i?(i.appendChild(n),"ok"):"not found"},removeFromDOM:n=>{n&&n.__internalId!==null&&n.remove()}};class MudSignaturePadManager{constructor(){this.pads=[]}addPad(n,t,i){const r=new MudSignaturePad(n,t,i);r.init();this.pads.push(r)}togglePadEraser(n){const t=this.getPad(n);t&&t.toggleEraser()}disposePad(n){const t=this.getPad(n);t&&t.dispose()}clearPad(n){const t=this.getPad(n);t&&t.clear(!0)}downloadPadImage(n){const t=this.getPad(n);t&&t.download()}getBase64(n){const t=this.getPad(n);if(t)return t.getBase64()}updatePadOptions(n,t){const i=this.getPad(n);i&&i.setOptions(t)}updatePadImage(n,t){const i=this.getPad(n);i&&(t.startsWith("data:image/png;base64,")||(t=`data:image/png;base64,${t}`),i.updateImage(t))}setCanvasSize(n){const t=this.getPad(n);t&&t.updateCanvasSize()}getPad(n){return this.pads.find(t=>t.canvas.id===n.id)||null}}class MudSignaturePad{constructor(n,t,i){this.canvas=t;this.options=i;this.isMouseDown=!1;this.isErasing=!1;this.memCanvas=document.createElement("canvas");this.points=[];this.dotnetRef=n;this.onPointerDown=this.handlePointerDown.bind(this);this.onPointerMove=this.handlePointerMove.bind(this);this.onPointerUp=this.handlePointerUp.bind(this);this.onPointerLeave=this.stopDrawing.bind(this)}get ctx(){return this.canvas.getContext("2d")}get memCtx(){return this.memCanvas.getContext("2d")}init(){this.setCanvasSize();this.setOptions(this.options);this.canvas.addEventListener("pointerdown",this.onPointerDown,{passive:!1});this.canvas.addEventListener("pointermove",this.onPointerMove,{passive:!1});this.canvas.addEventListener("pointerup",this.onPointerUp,{passive:!1});this.canvas.addEventListener("pointerleave",this.onPointerLeave);this.canvas.style.touchAction="none";this.setPencilCursor()}dispose(){this.canvas.removeEventListener("pointerdown",this.onPointerDown);this.canvas.removeEventListener("pointermove",this.onPointerMove);this.canvas.removeEventListener("pointerup",this.onPointerUp);this.canvas.removeEventListener("pointerleave",this.onPointerLeave)}setCanvasSize(){const t=this.canvas.parentElement;if(t){const n=t.getBoundingClientRect();this.canvas.width=n.width;this.canvas.height=n.height;this.memCanvas.width=n.width;this.memCanvas.height=n.height}}updateCanvasSize(){const t=this.canvas.parentElement;if(t){const i=t.getBoundingClientRect(),r=i.width,u=i.height,n=document.createElement("canvas");n.width=this.canvas.width;n.height=this.canvas.height;const f=n.getContext("2d");f.drawImage(this.canvas,0,0);this.canvas.width=r;this.canvas.height=u;this.memCanvas.width=r;this.memCanvas.height=u;this.ctx.drawImage(n,0,0);this.memCtx.drawImage(n,0,0)}}getBase64(){return this.canvas.toDataURL()}updateImage(n){this.clear(!0);const t=new Image;t.onload=()=>{this.ctx.drawImage(t,0,0),this.memCtx.drawImage(t,0,0)};t.src=n}download(){const n=document.createElement("a");n.download="signature.png";n.href=this.getBase64();n.click();n.remove()}clear(n){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);n&&this.memCtx.clearRect(0,0,this.canvas.width,this.canvas.height)}setOptions(n){this.options=n;const t=t=>{t.lineWidth=n.lineWidth,t.lineJoin=n.lineJoin,t.lineCap=n.lineCap,t.strokeStyle=n.strokeStyle};t(this.ctx);t(this.memCtx)}toggleEraser(){this.isErasing=!this.isErasing;this.isErasing?this.setEraserCursor():this.setPencilCursor()}setPencilCursor(){this.canvas.style.cursor="url('_content/CodeBeam.MudBlazor.Extensions/pencil.cur'), auto"}setEraserCursor(){this.canvas.style.cursor="url('_content/CodeBeam.MudBlazor.Extensions/eraser.cur'), auto"}handlePointerDown(n){n.preventDefault();this.isMouseDown=!0;const{offsetX:t,offsetY:i}=n;this.points=[{x:t,y:i}]}handlePointerMove(n){if(this.isMouseDown){n.preventDefault();const{offsetX:t,offsetY:i}=n;this.isErasing?this.ctx.clearRect(t-10,i-10,23,23):(this.clear(),this.ctx.drawImage(this.memCanvas,0,0),this.points.push({x:t,y:i}),this.drawPoints(this.ctx,this.points))}}handlePointerUp(n){n.preventDefault();this.stopDrawing()}stopDrawing(){this.isMouseDown&&(this.isMouseDown=!1,this.memCtx.clearRect(0,0,this.memCanvas.width,this.memCanvas.height),this.memCtx.drawImage(this.canvas,0,0),this.points=[])}drawPoints(n,t){if(!(t.length<2)){if(t.length<6){const i=t[0];n.beginPath();n.lineWidth=this.options.lineWidth;n.strokeStyle=this.options.strokeStyle;n.arc(i.x,i.y,n.lineWidth/2,0,Math.PI*2,!0);n.fill();n.closePath();this.pushUpdateToBlazorComponent();return}n.beginPath();n.moveTo(t[0].x,t[0].y);for(let i=1;i{n&&n.addEventListener("beforeinput",n=>{t.invokeMethodAsync("OnBeforeInput",{data:n.data,inputType:n.inputType,isComposing:n.isComposing}).then(t=>{t===!0&&n.preventDefault()})})}}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js.br b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js.br
deleted file mode 100644
index 0c391c178..000000000
Binary files a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js.br and /dev/null differ
diff --git a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js.gz b/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js.gz
deleted file mode 100644
index 17cb330c7..000000000
Binary files a/app/MindWork AI Studio/wwwroot/system/CodeBeam.MudBlazor.Extensions/MudExtensions.min.js.gz and /dev/null differ
diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.js.br b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.js.br
deleted file mode 100644
index f6543780a..000000000
Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.js.br and /dev/null differ
diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.js.gz b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.js.gz
deleted file mode 100644
index 34ef187a7..000000000
Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.js.gz and /dev/null differ
diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css
index 7879b7a64..d8fab4ccf 100755
--- a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css
+++ b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css
@@ -1 +1 @@
-.mud-markdown-body code:not(.hljs){background:var(--mud-palette-action-disabled-background);color:var(--mud-palette-text-primary)!important;padding:2.5px 7.5px;border-radius:5px}pre code.hljs{display:block!important;overflow-x:auto;padding:1em;width:100%}.mud-markdown-body .mud-markdown-code-highlight{position:relative!important}.mud-markdown-body .mud-markdown-code-highlight:hover>.mud-markdown-code-highlight-copybtn{display:block!important}.mud-markdown-code-highlight-copybtn{position:absolute;display:none;top:0;right:0}.mud-markdown-code-highlight-sticky pre code.hljs{padding-top:0!important}.mud-markdown-body .mud-markdown-code-highlight-sticky .mud-markdown-code-highlight-copybtn-sticky{position:sticky;overflow:hidden;z-index:calc(var(--mud-zindex-appbar) - 2);top:calc(var(--mud-appbar-height) + 16px);float:right}.mud-markdown-body blockquote{border-left:.25em solid var(--mud-palette-text-disabled);color:var(--mud-palette-text-secondary);background-color:var(--mud-palette-table-hover);padding:.25em 1em;margin:.5em 0 1.25em}.mud-markdown-body blockquote p{margin-bottom:0!important}.mud-markdown-body table{margin:1.25em 0}.mud-markdown-body table p{margin-bottom:0!important}.mud-markdown-body .mud-link:hover{cursor:pointer!important}.mud-markdown-body ul{list-style-type:disc}.mud-markdown-body ol,.mud-markdown-body ul{padding-left:2em;margin-bottom:1.25em!important}.mud-markdown-body ul ul{list-style-type:circle;margin-bottom:0!important}.mud-markdown-body ul ul ul{list-style-type:square;margin-bottom:0!important}.mud-markdown-body li{display:list-item!important;text-align:-webkit-match-parent}.mud-markdown-body h1,.mud-markdown-body h2{border-bottom:1px solid var(--mud-palette-text-disabled);padding-bottom:.125em;margin-bottom:.4em}.mud-markdown-body h1,.mud-markdown-body h2,.mud-markdown-body h3,.mud-markdown-body h4,.mud-markdown-body h5,.mud-markdown-body h6{scroll-margin-top:5rem;margin-top:.25em;word-wrap:break-word;margin-bottom:.3em!important}.mud-markdown-body .mud-divider{margin:.5em 0;height:.25em}.mud-markdown-body p{margin-bottom:1.25em!important}.mud-markdown-body .mud-expand-panel p,.mud-markdown-body li p{margin-bottom:0!important}.mud-markdown-body p .mud-markdown-error{white-space:pre}.mud-markdown-body img{max-width:100%}.mud-markdown-toc{position:relative}.mud-markdown-toc-drawer{position:sticky;overflow:hidden;z-index:calc(var(--mud-zindex-appbar) - 2);top:calc(var(--mud-appbar-height) + 16px);float:right}.mud-markdown-toc-drawer-content{width:var(--mud-drawer-width-right);opacity:0;visibility:collapse;transition:opacity .3s ease,visibility .3s ease}.mud-markdown-toc-drawer-content.open{opacity:1;visibility:visible}.mud-markdown-toc-content{margin-right:0;transition:margin-left .3s ease}.mud-markdown-toc-content.open{margin-right:calc(var(--mud-drawer-width-right) + 16px)}.mud-markdown-toc-btn-toggle{position:absolute;right:0;z-index:calc(var(--mud-zindex-appbar) - 1)}.mud-markdown-toc-nav-menu .mud-nav-link{padding:4px 16px!important}.mud-markdown-toc-nav-menu .mud-nav-link-h2 .mud-nav-link-text{margin-left:20px!important}.mud-markdown-toc-nav-menu .mud-nav-link-h3 .mud-nav-link-text{margin-left:28px!important}.mud-markdown-toc-nav-menu .mud-nav-item{border-left:4px solid var(--mud-palette-text-disabled)}.mud-markdown-toc-nav-menu .mud-nav-item.active{border-left-color:var(--mud-palette-primary)!important;color:var(--mud-palette-primary)!important}
\ No newline at end of file
+.mud-markdown-body code:not(.hljs){background:var(--mud-palette-action-disabled-background);color:var(--mud-palette-text-primary)!important;padding:2.5px 7.5px;border-radius:5px}pre code.hljs{display:block!important;overflow-x:auto;padding:1em;width:100%}.mud-markdown-body .mud-markdown-code-highlight{position:relative!important}.mud-markdown-body .mud-markdown-code-highlight:hover>.mud-markdown-code-highlight-copybtn{display:block!important}.mud-markdown-code-highlight-copybtn{position:absolute;display:none;top:0;right:0}.mud-markdown-code-highlight-sticky pre code.hljs{padding-top:0!important}.mud-markdown-body .mud-markdown-code-highlight-sticky .mud-markdown-code-highlight-copybtn-sticky{position:sticky;overflow:hidden;z-index:calc(var(--mud-zindex-appbar) - 2);top:calc(var(--mud-appbar-height) + 16px);float:right}.mud-markdown-body blockquote{border-left:.25em solid var(--mud-palette-text-disabled);color:var(--mud-palette-text-secondary);background-color:var(--mud-palette-table-hover);padding:.25em 1em;margin:.5em 0 1.25em}.mud-markdown-body blockquote p{margin-bottom:0!important}.mud-markdown-body .mud-table{margin:0 0 1.25em 0}.mud-markdown-body table p{margin-bottom:0!important}.mud-markdown-body .mud-link:hover{cursor:pointer!important}.mud-markdown-body ul{list-style-type:disc}.mud-markdown-body ol,.mud-markdown-body ul{padding-left:2em;margin-bottom:1.25em!important}.mud-markdown-body ul ul{list-style-type:circle;margin-bottom:0!important}.mud-markdown-body ul ul ul{list-style-type:square;margin-bottom:0!important}.mud-markdown-body li{display:list-item!important;text-align:-webkit-match-parent}.mud-markdown-body h1,.mud-markdown-body h2{border-bottom:1px solid var(--mud-palette-text-disabled);padding-bottom:.125em;margin-bottom:.4em}.mud-markdown-body h1,.mud-markdown-body h2,.mud-markdown-body h3,.mud-markdown-body h4,.mud-markdown-body h5,.mud-markdown-body h6{scroll-margin-top:5rem;margin-top:.25em;word-wrap:break-word;margin-bottom:.3em!important}.mud-markdown-body .mud-divider{margin:.5em 0;height:.25em}.mud-markdown-body p{margin-bottom:1.25em!important}.mud-markdown-body .mud-expand-panel p,.mud-markdown-body li p{margin-bottom:0!important}.mud-markdown-body p .mud-markdown-error{white-space:pre}.mud-markdown-body img{max-width:100%}.mud-markdown-toc{position:relative}.mud-markdown-toc-drawer{position:sticky;overflow:hidden;z-index:calc(var(--mud-zindex-appbar) - 2);top:calc(var(--mud-appbar-height) + 16px);float:right}.mud-markdown-toc-drawer-content{width:var(--mud-drawer-width-right);opacity:0;visibility:collapse;transition:opacity .3s ease,visibility .3s ease}.mud-markdown-toc-drawer-content.open{opacity:1;visibility:visible}.mud-markdown-toc-content{margin-right:0;transition:margin-left .3s ease}.mud-markdown-toc-content.open{margin-right:calc(var(--mud-drawer-width-right) + 16px)}.mud-markdown-toc-btn-toggle{position:absolute;right:0;z-index:calc(var(--mud-zindex-appbar) - 1)}.mud-markdown-toc-nav-menu .mud-nav-link{padding:4px 16px!important}.mud-markdown-toc-nav-menu .mud-nav-link-h2 .mud-nav-link-text{margin-left:20px!important}.mud-markdown-toc-nav-menu .mud-nav-link-h3 .mud-nav-link-text{margin-left:28px!important}.mud-markdown-toc-nav-menu .mud-nav-item{border-left:4px solid var(--mud-palette-text-disabled)}.mud-markdown-toc-nav-menu .mud-nav-item.active{border-left-color:var(--mud-palette-primary)!important;color:var(--mud-palette-primary)!important}.mud-markdown-body .mud-expand-panel-header{padding:16px 12px!important}.mud-markdown-body .mud-expand-panel-content{padding:0 12px 16px 12px!important}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.br b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.br
deleted file mode 100644
index 1f4cd78ee..000000000
Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.br and /dev/null differ
diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.gz b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.gz
deleted file mode 100644
index 63b7dd5c8..000000000
Binary files a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.css.gz and /dev/null differ
diff --git a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.js b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.js
index 4b7c5b2dc..4794cf8db 100755
--- a/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.js
+++ b/app/MindWork AI Studio/wwwroot/system/MudBlazor.Markdown/MudBlazor.Markdown.min.js
@@ -1 +1 @@
-(()=>{var e={2224:e=>{e.exports=function(e){var t="built_in",a={},n={begin:"}",className:t,endsParent:!0},r={begin:"{",end:"}",contains:[e.QUOTE_STRING_MODE,"self"]},i=e.COMMENT("@\\*","\\*@",{relevance:10}),o={begin:"@[A-Za-z0-9\\._:-]+",returnBegin:!0,end:"(\\r|\\n|<|\\s|\"|')",subLanguage:"csharp",contains:[{begin:"@",className:t},{begin:"\\[",end:"\\]",skip:!0},{begin:"\\(",end:"\\)",skip:!0}],returnEnd:!0},s={begin:"[@]{0,1}",returnBegin:!0,end:"",returnEnd:!0,subLanguage:"cshtml-razor",contains:[{begin:"[@]{0,1}",className:t},{begin:"",className:t,endsParent:!0}]},l={begin:"@\\(",end:"\\)",returnBegin:!0,returnEnd:!0,subLanguage:"csharp",contains:[{begin:"@\\(",className:t},{begin:"\\(",end:"\\)",subLanguage:"csharp",contains:[e.QUOTE_STRING_MODE,"self",s]},s,{begin:"\\)",className:t,endsParent:!0}]},c=function(e,t){var a={endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",begin:"[A-Za-z0-9\\._:-]+",relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",variants:[{begin:/"/,end:/"/,contains:t},{begin:/'/,end:/'/,contains:t},{begin:/[^\s"'=<>`]+/}]}]}]};return[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"