From 8afd952c94dfbf51c1e3fa925fde5a3d66112961 Mon Sep 17 00:00:00 2001 From: alpha Date: Mon, 10 Aug 2026 13:30:36 -0500 Subject: [PATCH 1/2] feat(ui): add shadcn accordion component Needed for collapsible sections in the documentation dialog (#94). --- src/renderer/components/ui/accordion.tsx | 62 ++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/renderer/components/ui/accordion.tsx diff --git a/src/renderer/components/ui/accordion.tsx b/src/renderer/components/ui/accordion.tsx new file mode 100644 index 0000000..9f25bca --- /dev/null +++ b/src/renderer/components/ui/accordion.tsx @@ -0,0 +1,62 @@ +import { ChevronDownIcon } from 'lucide-react'; +import { Accordion as AccordionPrimitive } from 'radix-ui'; +import * as React from 'react'; + +import { cn } from '@/lib/utils'; + +function Accordion({ ...props }: React.ComponentProps) { + return ; +} + +function AccordionItem({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AccordionTrigger({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + svg]:rotate-180', + className + )} + {...props} + > + {children} + + + + ); +} + +function AccordionContent({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + +
{children}
+
+ ); +} + +export { Accordion, AccordionContent, AccordionItem, AccordionTrigger }; From f46908f2928877836af9828b8a88cb74a025cf7b Mon Sep 17 00:00:00 2001 From: alpha Date: Mon, 10 Aug 2026 13:32:18 -0500 Subject: [PATCH 2/2] feat(documentation-dialog): collapsible sections for docs content Replaces always-expanded "Lost the window?" and "Hotkeys" blocks with an accordion so the dialog reads cleaner and scans faster. Hotkeys stays open by default since it's the most-referenced section. Closes #94 --- .../custom/documentation-dialog.tsx | 95 +++++++++++-------- 1 file changed, 57 insertions(+), 38 deletions(-) diff --git a/src/renderer/components/custom/documentation-dialog.tsx b/src/renderer/components/custom/documentation-dialog.tsx index 98dd5bb..1f2e73c 100644 --- a/src/renderer/components/custom/documentation-dialog.tsx +++ b/src/renderer/components/custom/documentation-dialog.tsx @@ -1,5 +1,11 @@ import React, { useEffect, useState } from 'react'; +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from '@/components/ui/accordion'; import { Button } from '@/components/ui/button'; import { Dialog, @@ -62,45 +68,58 @@ export default function DocumentationDialog({ open, onOpenChange }: Documentatio -
-

Lost the window?

-

- In stealth mode {APP_NAME} leaves the taskbar and the macOS Dock so it is not visible - when you share your screen, which also means a minimized window has no button to click. - Just launch {APP_NAME} again: it does not start a second copy, it brings this window - back. Outside stealth mode the usual taskbar button and Dock icon are there. -

+
+ + + + Lost the window? + + +

+ In stealth mode {APP_NAME} leaves the taskbar and the macOS Dock so it is not + visible when you share your screen, which also means a minimized window has no + button to click. Just launch {APP_NAME} again: it does not start a second copy, it + brings this window back. Outside stealth mode the usual taskbar button and Dock + icon are there. +

+
+
-

Hotkeys

- {HOTKEY_GROUPS.map((group) => ( -
-

{group.label}

-
- {group.keys.map((hk) => { - const info = HOTKEYS[hk]; - return ( - -
-
- {info.combo} -
-
-
{info.description}
-
- ); - })} -
-
- ))} + + Hotkeys + + {HOTKEY_GROUPS.map((group) => ( +
+

{group.label}

+
+ {group.keys.map((hk) => { + const info = HOTKEYS[hk]; + return ( + +
+
+ {info.combo} +
+
+
{info.description}
+
+ ); + })} +
+
+ ))} +
+
+