diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor b/app/MindWork AI Studio/Assistants/AssistantBase.razor index 5387d8ee..2390a23d 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor @@ -1,131 +1,134 @@ @using AIStudio.Chat - - @(this.Title) - +
- - - - - @this.Description - + + @(this.Title) + - @if (this.Body is not null) - { - - @this.Body - - - - @this.SubmitText - - } - - + + + + + @this.Description + - @if (this.ShowDedicatedProgress && this.isProcessing) - { - - } - -
-
- -
-
- - @if (this.ShowResult && !this.ShowEntireChatThread && this.resultingContentBlock is not null) - { - - } - - @if(this.ShowResult && this.ShowEntireChatThread && this.chatThread is not null) - { - foreach (var block in this.chatThread.Blocks.OrderBy(n => n.Time)) - { - @if (!block.HideFromUser) + @if (this.Body is not null) { - + + @this.Body + + + + @this.SubmitText + } +
+ + + @if (this.ShowDedicatedProgress && this.isProcessing) + { + } - } - -
-
-
- - - @if (!this.FooterButtons.Any(x => x.Type is ButtonTypes.SEND_TO)) +
+
+ +
+
+ + @if (this.ShowResult && !this.ShowEntireChatThread && this.resultingContentBlock is not null) { - @if (this.ShowSendTo) + + } + + @if(this.ShowResult && this.ShowEntireChatThread && this.chatThread is not null) + { + foreach (var block in this.chatThread.Blocks.OrderBy(n => n.Time)) { - - @foreach (var assistant in Enum.GetValues().Where(n => n.AllowSendTo()).OrderBy(n => n.Name().Length)) - { - - @assistant.Name() - - } - + @if (!block.HideFromUser) + { + + } } } - - @foreach (var button in this.FooterButtons) - { - switch (button) + +
+
+
+ + + + @if (!this.FooterButtons.Any(x => x.Type is ButtonTypes.SEND_TO)) { - case ButtonData buttonData when !string.IsNullOrWhiteSpace(buttonData.Tooltip): - - - @buttonData.Text - - - break; - - case ButtonData buttonData: - - @buttonData.Text - - break; - - case SendToButton sendToButton: + @if (this.ShowSendTo) + { @foreach (var assistant in Enum.GetValues().Where(n => n.AllowSendTo()).OrderBy(n => n.Name().Length)) { - + @assistant.Name() } - break; + } } - } - - @if (this.ShowCopyResult) - { - - Copy result - - } - @if (this.ShowReset) - { - - Reset - - } + @foreach (var button in this.FooterButtons) + { + switch (button) + { + case ButtonData buttonData when !string.IsNullOrWhiteSpace(buttonData.Tooltip): + + + @buttonData.Text + + + break; - @if (this.SettingsManager.ConfigurationData.LLMProviders.ShowProviderConfidence) - { - - } + case ButtonData buttonData: + + @buttonData.Text + + break; - @if (this.AllowProfiles && this.ShowProfileSelection) - { - - } - - -
\ No newline at end of file + case SendToButton sendToButton: + + @foreach (var assistant in Enum.GetValues().Where(n => n.AllowSendTo()).OrderBy(n => n.Name().Length)) + { + + @assistant.Name() + + } + + break; + } + } + + @if (this.ShowCopyResult) + { + + Copy result + + } + + @if (this.ShowReset) + { + + Reset + + } + + @if (this.SettingsManager.ConfigurationData.LLMProviders.ShowProviderConfidence) + { + + } + + @if (this.AllowProfiles && this.ShowProfileSelection) + { + + } + + + +
\ No newline at end of file diff --git a/app/MindWork AI Studio/Components/ChatComponent.razor b/app/MindWork AI Studio/Components/ChatComponent.razor index 2b8ff2dc..7d9e2441 100644 --- a/app/MindWork AI Studio/Components/ChatComponent.razor +++ b/app/MindWork AI Studio/Components/ChatComponent.razor @@ -3,7 +3,7 @@ @inherits MSGComponentBase - + @if (this.ChatThread is not null) { diff --git a/app/MindWork AI Studio/Components/InnerScrolling.razor b/app/MindWork AI Studio/Components/InnerScrolling.razor index 5a2da661..7b506722 100644 --- a/app/MindWork AI Studio/Components/InnerScrolling.razor +++ b/app/MindWork AI Studio/Components/InnerScrolling.razor @@ -1,23 +1,23 @@ @inherits MSGComponentBase -
+
@if (this.HeaderContent is not null) {
@this.HeaderContent
} -
+
@this.ChildContent -
+
 
@if (this.FooterContent is not null) { - + @this.FooterContent } diff --git a/app/MindWork AI Studio/Components/InnerScrolling.razor.cs b/app/MindWork AI Studio/Components/InnerScrolling.razor.cs index 126317cd..e9ce0c76 100644 --- a/app/MindWork AI Studio/Components/InnerScrolling.razor.cs +++ b/app/MindWork AI Studio/Components/InnerScrolling.razor.cs @@ -9,14 +9,6 @@ public partial class InnerScrolling : MSGComponentBase [Parameter] public bool FillEntireHorizontalSpace { get; set; } - /// - /// Set the height of anything above the scrolling content; usually a header. - /// What we do is calc(100vh - HeaderHeight). Means, you can use multiple measures like - /// 230px - 3em. Default is 3em. - /// - [Parameter] - public string HeaderHeight { get; set; } = "3em"; - [Parameter] public RenderFragment? HeaderContent { get; set; } @@ -76,8 +68,6 @@ public partial class InnerScrolling : MSGComponentBase private string MinWidthStyle => string.IsNullOrWhiteSpace(this.MinWidth) ? string.Empty : $"min-width: {this.MinWidth};"; - private string Styles => this.FillEntireHorizontalSpace ? $"height: calc(100vh - {this.HeaderHeight} - {this.MainLayout.AdditionalHeight}); overflow-x: auto; min-width: 0; {this.MinWidthStyle}" : $"height: calc(100vh - {this.HeaderHeight} - {this.MainLayout.AdditionalHeight}); flex-shrink: 0; {this.MinWidthStyle}"; - private string Classes => this.FillEntireHorizontalSpace ? $"{this.Class} d-flex flex-column flex-grow-1" : $"{this.Class} d-flex flex-column"; public async Task ScrollToBottom() diff --git a/app/MindWork AI Studio/Pages/About.razor b/app/MindWork AI Studio/Pages/About.razor index 07f87804..60746420 100644 --- a/app/MindWork AI Studio/Pages/About.razor +++ b/app/MindWork AI Studio/Pages/About.razor @@ -1,64 +1,66 @@ @attribute [Route(Routes.ABOUT)] -About MindWork AI Studio +
+ About MindWork AI Studio - - - - - The following list shows the versions of the MindWork AI Studio, the used compilers, build time, etc.: - - - - - - - - - - - - Check for updates - - - - - - + + + + + The following list shows the versions of the MindWork AI Studio, the used compilers, build time, etc.: + + + + + + + + + + + + Check for updates + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Assistants.razor b/app/MindWork AI Studio/Pages/Assistants.razor index 212f8b5a..9cef736d 100644 --- a/app/MindWork AI Studio/Pages/Assistants.razor +++ b/app/MindWork AI Studio/Pages/Assistants.razor @@ -1,51 +1,53 @@ @using AIStudio.Settings.DataModel @attribute [Route(Routes.ASSISTANTS)] - - Assistants - +
+ + Assistants + - - - - General - - - - - - - - + + + + General + + + + + + + + - - Business - - - - - - - - - + + Business + + + + + + + + + - - Learning - - - - - - - Software Engineering - - - - @if (PreviewFeatures.PRE_RAG_2024.IsEnabled(this.SettingsManager)) - { - - } - - - \ No newline at end of file + + Learning + + + + + + + Software Engineering + + + + @if (PreviewFeatures.PRE_RAG_2024.IsEnabled(this.SettingsManager)) + { + + } + + + +
\ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Chat.razor b/app/MindWork AI Studio/Pages/Chat.razor index 2f56c2b5..72d6f801 100644 --- a/app/MindWork AI Studio/Pages/Chat.razor +++ b/app/MindWork AI Studio/Pages/Chat.razor @@ -2,109 +2,110 @@ @using AIStudio.Settings.DataModel @inherits MSGComponentBase - - @if (this.chatThread is not null && this.chatThread.WorkspaceId != Guid.Empty) - { - @($"Chat in Workspace \"{this.currentWorkspaceName}\"") - } - else - { - @("Temporary Chat") - } - +
+ + + @if (this.chatThread is not null && this.chatThread.WorkspaceId != Guid.Empty) + { + @($"Chat in Workspace \"{this.currentWorkspaceName}\"") + } + else + { + @("Temporary Chat") + } + - -@if (this.AreWorkspacesVisible) -{ - - - @if (this.AreWorkspacesHidden) - { - - - - - - } - @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES) - { - @if ((this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR && this.SettingsManager.ConfigurationData.Workspace.IsSidebarVisible) || this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.SIDEBAR_ALWAYS_VISIBLE) + + @if (this.AreWorkspacesVisible) + { + + + @if (this.AreWorkspacesHidden) { - @if (this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR && this.SettingsManager.ConfigurationData.Workspace.IsSidebarVisible) + + + + + + } + @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES) + { + @if ((this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR && this.SettingsManager.ConfigurationData.Workspace.IsSidebarVisible) || this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.SIDEBAR_ALWAYS_VISIBLE) { - - - - - - - - - - - } - else - { - - - - - + @if (this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR && this.SettingsManager.ConfigurationData.Workspace.IsSidebarVisible) + { + + + + + + + + + + + } + else + { + + + + + + } } } - } - - - + + + + + + } + else if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES && this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR) + { + + + + + + + - - - -} -else if(this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES && this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR) -{ - - - - - - - + WorkspaceName="name => this.currentWorkspaceName = name"/> + + } + else + { - -} -else -{ - -} + } -@if ( - this.SettingsManager.ConfigurationData.Workspace.StorageBehavior != WorkspaceStorageBehavior.DISABLE_WORKSPACES - && this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_OVERLAY) -{ - - - - - Your workspaces - - - - - - - - -} \ No newline at end of file + @if ( + this.SettingsManager.ConfigurationData.Workspace.StorageBehavior != WorkspaceStorageBehavior.DISABLE_WORKSPACES + && this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_OVERLAY) + { + + + + + Your workspaces + + + + + + + + + } +
\ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Home.razor b/app/MindWork AI Studio/Pages/Home.razor index a86b8372..0e1e1c91 100644 --- a/app/MindWork AI Studio/Pages/Home.razor +++ b/app/MindWork AI Studio/Pages/Home.razor @@ -1,40 +1,42 @@ @attribute [Route(Routes.HOME)] - -Let's get started +
+ + Let's get started - - + + - - - Welcome to MindWork AI Studio! - - - Thank you for considering MindWork AI Studio for your AI needs. This app is designed to help you harness - the power of Large Language Models (LLMs). Please note that this app doesn't come with an integrated - LLM. Instead, you will need to bring an API key from a suitable provider. - - - Here's what makes MindWork AI Studio stand out: - - - - We hope you enjoy using MindWork AI Studio to bring your AI projects to life! - - + + + Welcome to MindWork AI Studio! + + + Thank you for considering MindWork AI Studio for your AI needs. This app is designed to help you harness + the power of Large Language Models (LLMs). Please note that this app doesn't come with an integrated + LLM. Instead, you will need to bring an API key from a suitable provider. + + + Here's what makes MindWork AI Studio stand out: + + + + We hope you enjoy using MindWork AI Studio to bring your AI projects to life! + + - - - + + + - - - - - - - + + + + + + + - - \ No newline at end of file + + +
\ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Settings.razor b/app/MindWork AI Studio/Pages/Settings.razor index f09a180e..41c42983 100644 --- a/app/MindWork AI Studio/Pages/Settings.razor +++ b/app/MindWork AI Studio/Pages/Settings.razor @@ -1,31 +1,33 @@ @attribute [Route(Routes.SETTINGS)] @using AIStudio.Components.Settings -Settings +
+ Settings - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Supporters.razor b/app/MindWork AI Studio/Pages/Supporters.razor index 6793d6d9..784cbcb4 100644 --- a/app/MindWork AI Studio/Pages/Supporters.razor +++ b/app/MindWork AI Studio/Pages/Supporters.razor @@ -1,63 +1,65 @@ @attribute [Route(Routes.SUPPORTERS)] -Supporters +
+ Supporters - - -
- Our Titans - - In this section, we highlight the titan supporters of MindWork AI Studio. Titans are prestigious companies that provide significant support to our mission. - - - For companies, sponsoring MindWork AI Studio is not only a way to support innovation but also a valuable opportunity for public relations and marketing. Your company's name and logo will be featured prominently, showcasing your commitment to using cutting-edge AI tools and enhancing your reputation as an innovative enterprise. - - - Become our first Titan - -
- - - - - - - Individual Contributors - + + +
+ Our Titans + + In this section, we highlight the titan supporters of MindWork AI Studio. Titans are prestigious companies that provide significant support to our mission. + + + For companies, sponsoring MindWork AI Studio is not only a way to support innovation but also a valuable opportunity for public relations and marketing. Your company's name and logo will be featured prominently, showcasing your commitment to using cutting-edge AI tools and enhancing your reputation as an innovative enterprise. + + + Become our first Titan + +
+ + + + + + + Individual Contributors + - - Become a contributor - - - - The first 10 supporters who make a monthly contribution: - - - - - + + Become a contributor + + + + The first 10 supporters who make a monthly contribution: + + + + + - - The first 10 supporters who make a one-time contribution: - - - - - - + + The first 10 supporters who make a one-time contribution: + + + + +
+
- - - - - Business Contributors - + + + + + Business Contributors + - - Become a contributor - - - -
+ + Become a contributor + + + + -
\ No newline at end of file + +
\ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Writer.razor b/app/MindWork AI Studio/Pages/Writer.razor index bf65c3e7..6108647b 100644 --- a/app/MindWork AI Studio/Pages/Writer.razor +++ b/app/MindWork AI Studio/Pages/Writer.razor @@ -1,57 +1,59 @@ @attribute [Route(Routes.WRITER)] @inherits MSGComponentBase - - Writer - +
+ + Writer + - + - - - - + + + + - - - - @if (this.isStreaming) - { - - } - - - \ No newline at end of file + + + + @if (this.isStreaming) + { + + } + + + +
\ 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 a4133218..d1c6dae4 100644 --- a/app/MindWork AI Studio/packages.lock.json +++ b/app/MindWork AI Studio/packages.lock.json @@ -210,6 +210,6 @@ "type": "Project" } }, - "net8.0/osx-x64": {} + "net8.0/osx-arm64": {} } } \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/app.css b/app/MindWork AI Studio/wwwroot/app.css index 6257c7c7..59771848 100644 --- a/app/MindWork AI Studio/wwwroot/app.css +++ b/app/MindWork AI Studio/wwwroot/app.css @@ -75,3 +75,21 @@ .mud-navmenu .mud-tooltip-root { display: initial !important; } + +/* Context div for inner scrolling component */ +.inner-scrolling-context { + display: flex; + flex-direction: column; + height: 100vh; +} + +/* Fixed MudSplitter inside context div for inner scrolling component */ +.inner-scrolling-context > .mud-splitter { + flex-grow: 1; + overflow: hidden; +} + +/* Fixed the slider part of MudSplitter inside context div for inner scrolling component */ +.inner-scrolling-context > .mud-splitter > .mud-slider > .mud-slider-container { + padding-bottom: 12px; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/changelog/v0.9.27.md b/app/MindWork AI Studio/wwwroot/changelog/v0.9.27.md new file mode 100644 index 00000000..141ed9d3 --- /dev/null +++ b/app/MindWork AI Studio/wwwroot/changelog/v0.9.27.md @@ -0,0 +1,2 @@ +# v0.9.27, build 202 (2025-01-xx xx:xx UTC) +- Improved the inner content scrolling to use the entire space available. \ No newline at end of file