diff --git a/app/MindWork AI Studio/Components/Blocks/ExpansionPanel.razor b/app/MindWork AI Studio/Components/Blocks/ExpansionPanel.razor
new file mode 100644
index 00000000..548de0f4
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Blocks/ExpansionPanel.razor
@@ -0,0 +1,11 @@
+
+
+
+
+ @this.HeaderText
+
+
+
+ @this.ChildContent
+
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Blocks/ExpansionPanel.razor.cs b/app/MindWork AI Studio/Components/Blocks/ExpansionPanel.razor.cs
new file mode 100644
index 00000000..e1a54e01
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Blocks/ExpansionPanel.razor.cs
@@ -0,0 +1,24 @@
+using Microsoft.AspNetCore.Components;
+
+namespace AIStudio.Components.Blocks;
+
+public partial class ExpansionPanel : ComponentBase
+{
+ [Parameter]
+ public string HeaderIcon { get; set; } = Icons.Material.Filled.BugReport;
+
+ [Parameter]
+ public Size IconSize { get; set; } = Size.Medium;
+
+ [Parameter]
+ public Color IconColor { get; set; } = Color.Primary;
+
+ [Parameter]
+ public string HeaderText { get; set; } = "n/a";
+
+ [Parameter]
+ public RenderFragment? ChildContent { get; set; }
+
+ [Parameter]
+ public bool IsExpanded { get; set; }
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Blocks/InnerScrolling.razor b/app/MindWork AI Studio/Components/Blocks/InnerScrolling.razor
new file mode 100644
index 00000000..fbd9f58f
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Blocks/InnerScrolling.razor
@@ -0,0 +1,7 @@
+
+
+ @this.ChildContent
+
+
+ @this.FooterContent
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Blocks/InnerScrolling.razor.cs b/app/MindWork AI Studio/Components/Blocks/InnerScrolling.razor.cs
new file mode 100644
index 00000000..f9d7ed7c
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Blocks/InnerScrolling.razor.cs
@@ -0,0 +1,25 @@
+using Microsoft.AspNetCore.Components;
+
+namespace AIStudio.Components.Blocks;
+
+public partial class InnerScrolling : ComponentBase
+{
+ ///
+ /// Set the height of anything above the scrolling content; usually a header.
+ /// What we do is calc(100vh - THIS). Means, you can use multiple measures like
+ /// 230px - 3em. Default is 3em.
+ ///
+ [Parameter]
+ public string HeaderHeight { get; set; } = "3em";
+
+ [Parameter]
+ public RenderFragment? ChildContent { get; set; }
+
+ ///
+ /// Optional footer content, shown after the scrolling area.
+ ///
+ [Parameter]
+ public RenderFragment? FooterContent { get; set; }
+
+ private string Height => $"height: calc(100vh - {this.HeaderHeight});";
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Blocks/Motivation.razor b/app/MindWork AI Studio/Components/Blocks/Motivation.razor
new file mode 100644
index 00000000..5b938978
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Blocks/Motivation.razor
@@ -0,0 +1,31 @@
+
+ Hello, my name is Thorsten Sommer, and I am the initial creator of MindWork AI Studio. The motivation behind developing this app stems from several crucial needs and observations I made over time.
+
+
+
+ Personal Needs and Limitations of Web Services
+
+
+
+ Relying on web services like ChatGPT was not a sustainable solution for me. I needed an AI that could also access files directly on my device, a functionality web services inherently lack due to security and privacy constraints. Although I could have scripted something in Python to meet my needs, this approach was too cumbersome for daily use. More importantly, I wanted to develop a solution that anyone could use without needing any programming knowledge.
+
+
+
+ Limitations of Existing Solutions
+
+
+
+ While exploring available solutions, I found a desktop application called Anything LLM. Unfortunately, it fell short of meeting my specific requirements and lacked the user interface design I envisioned. For macOS, there were several apps similar to what I had in mind, but they were all commercial solutions shrouded in uncertainty. The developers' identities and the origins of these apps were unclear, raising significant security concerns. Reports from users about stolen API keys and unwanted charges only amplified my reservations.
+
+
+
+ Cross-Platform and Modern Development
+
+
+
+ Given that my employer's workplace uses both Windows and Linux, I wanted a cross-platform solution that would work seamlessly across all major operating systems, including macOS. Additionally, I wanted to demonstrate that it is possible to create modern, efficient, cross-platform applications without resorting to Electron bloatware. The combination of .NET and Rust with Tauri proved to be an excellent technology stack for building such robust applications.
+
+
+
+ Through MindWork AI Studio, I aim to provide a secure, flexible, and user-friendly tool that caters to a wider audience without compromising on functionality or design. This app is the culmination of my desire to meet personal requirements, address existing gaps in the market, and showcase innovative development practices.
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Blocks/Motivation.razor.cs b/app/MindWork AI Studio/Components/Blocks/Motivation.razor.cs
new file mode 100644
index 00000000..5a16e13a
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Blocks/Motivation.razor.cs
@@ -0,0 +1,7 @@
+using Microsoft.AspNetCore.Components;
+
+namespace AIStudio.Components.Blocks;
+
+public partial class Motivation : ComponentBase
+{
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Blocks/Vision.razor b/app/MindWork AI Studio/Components/Blocks/Vision.razor
new file mode 100644
index 00000000..25d0d2fd
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Blocks/Vision.razor
@@ -0,0 +1,10 @@
+
+ Curious about the vision for MindWork AI Studio and what the future holds? We're here to address just that. Remember, this is a free, open-source project, meaning we can't guarantee when or if this vision will be fully realized. Our aim is to share our vision with you to help you decide whether this app is right for you.
+
+
+ So, where are we headed, and how could the app evolve in the coming months and years? The following list outlines our ideas, though not in order of priority:
+
+
+
+ We hope this vision excites you as much as it excites us. Together, let's build a powerful and flexible AI toolkit to support all your creative, professional, and everyday needs with MindWork AI Studio.
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Blocks/Vision.razor.cs b/app/MindWork AI Studio/Components/Blocks/Vision.razor.cs
new file mode 100644
index 00000000..233e4b08
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Blocks/Vision.razor.cs
@@ -0,0 +1,16 @@
+using Microsoft.AspNetCore.Components;
+
+namespace AIStudio.Components.Blocks;
+
+public partial class Vision : ComponentBase
+{
+ private static readonly TextItem[] ITEMS_VISION =
+ [
+ new TextItem("Meet your needs", "Whatever your job or task is, MindWork AI Studio aims to meet your needs: whether you're a project manager, scientist, artist, author, software developer, or game developer."),
+ new TextItem("One stop shop", "The app will strive to fulfill all your AI needs: text-generation AI (LLM), image-generation AI, audio-generation AI (text-to-speech, potentially even text-to-music), and audio input (transcription, dictation). When there's a provider and an API available, we'll try to integrate it."),
+ new TextItem("Local file system", "When you wish, we aim to integrate your local system. Local documents could be incorporated using Retrieval-Augmented Generation (RAG), and we could directly save AI-generated content to your file system."),
+ new TextItem("Local AI systems", "Want to use AI systems locally and offline? We aim to make that possible too."),
+ new TextItem("Your AI systems", "Prefer to run your AI systems with providers like replicate.com? We plan to support that!"),
+ new TextItem("Assistants", "We aim to integrate specialized user interfaces as assistants. For example, a UI specifically for writing emails, or one designed for translating and correcting text, and more."),
+ ];
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/About.razor b/app/MindWork AI Studio/Components/Pages/About.razor
index 135eb22b..f96e772d 100644
--- a/app/MindWork AI Studio/Components/Pages/About.razor
+++ b/app/MindWork AI Studio/Components/Pages/About.razor
@@ -3,64 +3,47 @@
About MindWork AI Studio
-
-
-
-
-
-
-
- Versions
-
-
-
-
- The following list shows the versions of the MindWork AI Studio, the used compilers, build time, etc.:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Used Open Source Projects
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- License: FSL-1.1-MIT
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+ The following list shows the versions of the MindWork AI Studio, the used compilers, build time, etc.:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Chat.razor b/app/MindWork AI Studio/Components/Pages/Chat.razor
index 1feff68a..ae9138da 100644
--- a/app/MindWork AI Studio/Components/Pages/Chat.razor
+++ b/app/MindWork AI Studio/Components/Pages/Chat.razor
@@ -10,8 +10,8 @@
}
-
-
+
+
@if (this.chatThread is not null)
{
foreach (var block in this.chatThread.Blocks.OrderBy(n => n.Time))
@@ -19,9 +19,10 @@
}
}
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Home.razor b/app/MindWork AI Studio/Components/Pages/Home.razor
index d19c615d..b44f1b20 100644
--- a/app/MindWork AI Studio/Components/Pages/Home.razor
+++ b/app/MindWork AI Studio/Components/Pages/Home.razor
@@ -4,69 +4,34 @@
Let's get started
-
-
-
+
+
-
-
-
-
- Introduction
-
-
-
-
- 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!
+
+
-
-
-
-
- Our vision
-
-
-
-
- Curious about the vision for MindWork AI Studio and what the future holds? We're here to address just that. Remember, this is a free, open-source project, meaning we can't guarantee when or if this vision will be fully realized. Our aim is to share our vision with you to help you decide whether this app is right for you.
-
-
- So, where are we headed, and how could the app evolve in the coming months and years? The following list outlines our ideas, though not in order of priority:
-
-
-
- We hope this vision excites you as much as it excites us. Together, let's build a powerful and flexible AI toolkit to support all your creative, professional, and everyday needs with MindWork AI Studio.
-
-
-
+
+
+
+
+
+
+
-
-
-
-
- Quick Start Guide
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Home.razor.cs b/app/MindWork AI Studio/Components/Pages/Home.razor.cs
index dc0a08d6..34b5931e 100644
--- a/app/MindWork AI Studio/Components/Pages/Home.razor.cs
+++ b/app/MindWork AI Studio/Components/Pages/Home.razor.cs
@@ -17,16 +17,6 @@ public partial class Home : ComponentBase
new TextItem("No bloatware", "The app requires minimal storage for installation and operates with low memory usage. Additionally, it has a minimal impact on system resources, which is beneficial for battery life."),
];
- private static readonly TextItem[] ITEMS_VISION =
- [
- new TextItem("Meet your needs", "Whatever your job or task is, MindWork AI Studio aims to meet your needs: whether you're a project manager, scientist, artist, author, software developer, or game developer."),
- new TextItem("One stop shop", "The app will strive to fulfill all your AI needs: text-generation AI (LLM), image-generation AI, audio-generation AI (text-to-speech, potentially even text-to-music), and audio input (transcription, dictation). When there's a provider and an API available, we'll try to integrate it."),
- new TextItem("Local file system", "When you wish, we aim to integrate your local system. Local documents could be incorporated using Retrieval-Augmented Generation (RAG), and we could directly save AI-generated content to your file system."),
- new TextItem("Local AI systems", "Want to use AI systems locally and offline? We aim to make that possible too."),
- new TextItem("Your AI systems", "Prefer to run your AI systems with providers like replicate.com? We plan to support that!"),
- new TextItem("Assistants", "We aim to integrate specialized user interfaces as assistants. For example, a UI specifically for writing emails, or one designed for translating and correcting text, and more."),
- ];
-
private const string QUICK_START_GUIDE =
"""
Ready to dive in and get started with MindWork AI Studio? This quick start guide will help you set up everything you need to start using the app.
diff --git a/app/MindWork AI Studio/Components/Pages/Settings.razor b/app/MindWork AI Studio/Components/Pages/Settings.razor
index 66a2739f..667f4d49 100644
--- a/app/MindWork AI Studio/Components/Pages/Settings.razor
+++ b/app/MindWork AI Studio/Components/Pages/Settings.razor
@@ -2,57 +2,55 @@
Settings
-
-
-
- Configured Providers
-
-
-
-
-
-
-
-
-
- #
- Instance Name
- Provider
- Model
- Actions
-
-
- @context.Num
- @context.InstanceName
- @context.UsedProvider
- @context.Model
-
-
- Edit
-
-
- Delete
-
-
-
-
+
+
+ Configured Providers
+
+
+
+
+
+
+
+
+
+ #
+ Instance Name
+ Provider
+ Model
+ Actions
+
+
+ @context.Num
+ @context.InstanceName
+ @context.UsedProvider
+ @context.Model
+
+
+ Edit
+
+
+ Delete
+
+
+
+
- @if(this.SettingsManager.ConfigurationData.Providers.Count == 0)
- {
- No providers configured yet.
- }
+ @if(this.SettingsManager.ConfigurationData.Providers.Count == 0)
+ {
+ No providers configured yet.
+ }
-
- Add Provider
-
+
+ Add Provider
+
- Options
-
-
-
-
-
-
\ No newline at end of file
+ Options
+
+
+
+
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Supporters.razor b/app/MindWork AI Studio/Components/Pages/Supporters.razor
index f3cef077..1ecc606a 100644
--- a/app/MindWork AI Studio/Components/Pages/Supporters.razor
+++ b/app/MindWork AI Studio/Components/Pages/Supporters.razor
@@ -2,49 +2,47 @@
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
-
-
-
- Become a contributor
-
-
-
-
-
-
-
-
- Business Contributors
-
-
-
- Become a contributor
-
-
-
-
+
+
+ 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
+
-
\ No newline at end of file
+
+
+
+
+
+
+ Individual Contributors
+
+
+
+ Become a contributor
+
+
+
+
+
+
+
+
+ Business Contributors
+
+
+
+ Become a contributor
+
+
+
+
+
+
\ No newline at end of file