From 377f81d978ec129ffbf726ab22157b0b98d28151 Mon Sep 17 00:00:00 2001 From: Naomi Carrigan Date: Tue, 20 Jan 2026 20:04:03 -0800 Subject: [PATCH] feat: add about and help panels, donate button, and live setting update (#48) ### Explanation _No response_ ### Issue Closes #26 Closes #27 ### Attestations - [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/) - [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/). - [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/). ### Dependencies - [ ] I have pinned the dependencies to a specific patch version. ### Style - [ ] I have run the linter and resolved any errors. - [ ] My pull request uses an appropriate title, matching the conventional commit standards. - [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request. ### Tests - [ ] My contribution adds new code, and I have added tests to cover it. - [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes. - [ ] All new and existing tests pass locally with my changes. - [ ] Code coverage remains at or above the configured threshold. ### Documentation _No response_ ### Versioning _No response_ Reviewed-on: https://git.nhcarrigan.com/nhcarrigan/hikari-desktop/pulls/48 Co-authored-by: Naomi Carrigan Co-committed-by: Naomi Carrigan --- src/lib/components/AboutPanel.svelte | 151 ++++++++++++++++++++++++++ src/lib/components/HelpPanel.svelte | 155 +++++++++++++++++++++++++++ src/lib/components/StatusBar.svelte | 52 +++++++++ src/lib/notifications/soundPlayer.ts | 2 +- src/lib/stores/notifications.ts | 31 +++--- src/routes/+page.svelte | 5 + 6 files changed, 380 insertions(+), 16 deletions(-) create mode 100644 src/lib/components/AboutPanel.svelte create mode 100644 src/lib/components/HelpPanel.svelte diff --git a/src/lib/components/AboutPanel.svelte b/src/lib/components/AboutPanel.svelte new file mode 100644 index 0000000..4f240b6 --- /dev/null +++ b/src/lib/components/AboutPanel.svelte @@ -0,0 +1,151 @@ + + +
e.key === "Escape" && onClose()} +> +
e.stopPropagation()} + onkeydown={(e) => e.stopPropagation()} + role="dialog" + aria-labelledby="about-title" + tabindex="-1" + > +
+

About Hikari Desktop

+ +
+ +
+
+

What is Hikari Desktop?

+

+ Hikari Desktop is an AI-powered desktop assistant that brings Claude directly to your + desktop. Built with love using Tauri, Svelte, and Rust for a fast, native experience. +

+
+ +
+

Version

+

+ {appVersion || "Loading..."} +

+ +
+ +
+

Source Code

+ +
+ +
+

Support & Community

+

Found a bug or have a suggestion?

+ +
+ +
+

Built with 💕 by

+ +
+ +
+

License

+

+ This project is open source and available under our license terms. +

+ +
+ +
+

+ Copyright © {new Date().getFullYear()} Naomi Carrigan. All rights reserved. +

+
+
+
+
+ + diff --git a/src/lib/components/HelpPanel.svelte b/src/lib/components/HelpPanel.svelte new file mode 100644 index 0000000..412c646 --- /dev/null +++ b/src/lib/components/HelpPanel.svelte @@ -0,0 +1,155 @@ + + +
e.key === "Escape" && onClose()} +> +
e.stopPropagation()} + onkeydown={(e) => e.stopPropagation()} + role="dialog" + aria-labelledby="help-title" + tabindex="-1" + > +
+

How to Use Hikari Desktop

+ +
+ +
+ {#each sections as section (section.title)} +
+

{section.title}

+
    + {#each section.items as item (item)} +
  • + + {item} +
  • + {/each} +
+
+ {/each} + +
+

+ Need more help? Join our Discord community for support and updates! +

+
+
+
+
+ + diff --git a/src/lib/components/StatusBar.svelte b/src/lib/components/StatusBar.svelte index 5693a00..10c5d54 100644 --- a/src/lib/components/StatusBar.svelte +++ b/src/lib/components/StatusBar.svelte @@ -15,9 +15,12 @@ import type { ConnectionStatus } from "$lib/types/messages"; import { onMount } from "svelte"; import StatsDisplay from "./StatsDisplay.svelte"; + import AboutPanel from "./AboutPanel.svelte"; + import HelpPanel from "./HelpPanel.svelte"; import { achievementProgress } from "$lib/stores/achievements"; const DISCORD_URL = "https://chat.nhcarrigan.com"; + const DONATE_URL = "https://donate.nhcarrigan.com"; let connectionStatus: ConnectionStatus = $state("disconnected"); let workingDirectory = $state(""); @@ -26,6 +29,8 @@ let grantedToolsList: string[] = $state([]); let appVersion = $state(""); let showStats = $state(false); + let showAbout = $state(false); + let showHelp = $state(false); const progress = $derived($achievementProgress); let currentConfig: HikariConfig = $state({ model: null, @@ -241,6 +246,45 @@ /> + + +