From 105f87cf64ae0cf87d0b16fd3122bfa0a7729992 Mon Sep 17 00:00:00 2001 From: Hikari Date: Sat, 7 Mar 2026 02:10:31 -0800 Subject: [PATCH] feat: replace help modal with full embedded docs (paginated with prev/next navigation) --- src/lib/components/HelpPanel.svelte | 213 +++++++++++------- src/lib/components/NavMenu.svelte | 13 ++ src/lib/components/docs/DocsChangelog.svelte | 48 ++++ src/lib/components/docs/DocsChatInput.svelte | 105 +++++++++ src/lib/components/docs/DocsFileEditor.svelte | 79 +++++++ .../components/docs/DocsGettingStarted.svelte | 61 +++++ src/lib/components/docs/DocsGitPanel.svelte | 61 +++++ .../docs/DocsKeyboardShortcuts.svelte | 130 +++++++++++ .../components/docs/DocsModelConfig.svelte | 72 ++++++ .../components/docs/DocsPanelsTools.svelte | 128 +++++++++++ .../docs/DocsSessionManagement.svelte | 80 +++++++ src/lib/components/docs/DocsTaskLoop.svelte | 102 +++++++++ .../docs/DocsThemeCustomisation.svelte | 85 +++++++ .../docs/DocsTroubleshooting.svelte | 125 ++++++++++ src/lib/components/docs/helpPages.test.ts | 99 ++++++++ src/lib/components/docs/helpPages.ts | 40 ++++ 16 files changed, 1360 insertions(+), 81 deletions(-) create mode 100644 src/lib/components/docs/DocsChangelog.svelte create mode 100644 src/lib/components/docs/DocsChatInput.svelte create mode 100644 src/lib/components/docs/DocsFileEditor.svelte create mode 100644 src/lib/components/docs/DocsGettingStarted.svelte create mode 100644 src/lib/components/docs/DocsGitPanel.svelte create mode 100644 src/lib/components/docs/DocsKeyboardShortcuts.svelte create mode 100644 src/lib/components/docs/DocsModelConfig.svelte create mode 100644 src/lib/components/docs/DocsPanelsTools.svelte create mode 100644 src/lib/components/docs/DocsSessionManagement.svelte create mode 100644 src/lib/components/docs/DocsTaskLoop.svelte create mode 100644 src/lib/components/docs/DocsThemeCustomisation.svelte create mode 100644 src/lib/components/docs/DocsTroubleshooting.svelte create mode 100644 src/lib/components/docs/helpPages.test.ts create mode 100644 src/lib/components/docs/helpPages.ts diff --git a/src/lib/components/HelpPanel.svelte b/src/lib/components/HelpPanel.svelte index 4e8a418..f1a461c 100644 --- a/src/lib/components/HelpPanel.svelte +++ b/src/lib/components/HelpPanel.svelte @@ -1,54 +1,69 @@ + + +
e.key === "Escape" && onClose()} > +
e.stopPropagation()} onkeydown={(e) => e.stopPropagation()} role="dialog" aria-labelledby="help-title" tabindex="-1" > -
-

- How to Use Hikari Desktop + +
+

+ Help & Documentation

-
- {#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! -

+ +
+
+ + +
+ + + + Page {currentPageIndex + 1} of {HELP_PAGES.length} + + + +
diff --git a/src/lib/components/NavMenu.svelte b/src/lib/components/NavMenu.svelte index c4fa55f..8403851 100644 --- a/src/lib/components/NavMenu.svelte +++ b/src/lib/components/NavMenu.svelte @@ -92,8 +92,21 @@ function handleInjectContext(content: string): void { injectTextStore.set(content); } + + function handleGlobalHelpShortcut(event: KeyboardEvent): void { + const target = event.target as HTMLElement; + const isInputFocused = target.tagName === "INPUT" || target.tagName === "TEXTAREA"; + if (isInputFocused) return; + + if (event.key === "?") { + event.preventDefault(); + showHelp = !showHelp; + } + } + +