Improve accessibility, keyboard nav & styles 8 months ago
Authored
mweinbach 2/19/2026, 12:15:12 AM Add ARIA labels and keyboard handlers across the UI (inputs, buttons, workspace rows, titlebar controls, sidebar toggle). Convert interactive rows to buttons (skills, provider rows) for semantics, add focus management and focus-visible styles, a modal focus trap with restore focus, and keyboard resizing for the sidebar resizer (with ARIA attributes). Style tweaks: muted color adjustments, increased hit targets (send/sidebar buttons), resizer visuals, reduced-motion support and a few layout refinements. Also bump provider SDK versions in package.json and bun.lock (ai, @ai-sdk/openai, @ai-sdk/gateway) to match updated deps. Parent1ed0cbb
96 files changed
.agents/skills/ai-sdk/SKILL.md +78 −0 .agents/skills/ai-sdk/references/ai-gateway.md +66 −0 .agents/skills/ai-sdk/references/common-errors.md +443 −0 .agents/skills/ai-sdk/references/devtools.md +52 −0 .agents/skills/ai-sdk/references/type-safe-agents.md +204 −0 .agents/skills/electron-architect/SKILL.md +414 −0 .agents/skills/electron-architect/scripts/scaffold-project.sh +399 −0 .agents/skills/react-doctor/SKILL.md
+41
−0
.agents/skills/vercel-composition-patterns/AGENTS.md +946 −0
.agents/skills/vercel-composition-patterns/SKILL.md +89 −0
.agents/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 −0
.agents/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 −0
.agents/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 −0
.agents/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 −0
.agents/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 −0
.agents/skills/vercel-composition-patterns/rules/state-context-interface.md +191 −0
.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 −0
.agents/skills/vercel-composition-patterns/rules/state-lift-state.md +125 −0
.agents/skills/vercel-react-best-practices/AGENTS.md +2934 −0
.agents/skills/vercel-react-best-practices/SKILL.md +136 −0
.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 −0
.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 −0
.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 −0
.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +38 −0
.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +80 −0
.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +51 −0
.agents/skills/vercel-react-best-practices/rules/async-parallel.md +28 −0
.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 −0
.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 −0
.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 −0
.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 −0
.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 −0
.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +50 −0
.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 −0
.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 −0
.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 −0
.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 −0
.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 −0
.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 −0
.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 −0
.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 −0
.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 −0
.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 −0
.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 −0
.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 −0
.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 −0
.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 −0
.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 −0
.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 −0
.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 −0
.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 −0
.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 −0
.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 −0
.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 −0
.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 −0
.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 −0
.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 −0
.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 −0
.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 −0
.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 −0
.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 −0
.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 −0
.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 −0
.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 −0
.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 −0
.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 −0
.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 −0
.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 −0
.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 −0
.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 −0
.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 −0
.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 −0
.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 −0
.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 −0
.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 −0
.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 −0
.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 −0
apps/desktop/electron/ipc.ts +97 −6
apps/desktop/electron/main.ts +5 −0
apps/desktop/electron/preload.ts +142 −18
apps/desktop/electron/services/persistence.ts +156 −10
apps/desktop/src/styles.css +97 −9
apps/desktop/src/ui/ChatView.tsx +87 −60
apps/desktop/src/ui/PromptModal.tsx +106 −8
apps/desktop/src/ui/Sidebar.tsx +10 −0
apps/desktop/src/ui/SkillsView.tsx +5 −3
apps/desktop/src/ui/TitleBar.tsx +21 −3
apps/desktop/src/ui/layout/AppTopBar.tsx +4 −1
apps/desktop/src/ui/layout/PrimaryContent.tsx +41 −17
apps/desktop/src/ui/layout/SidebarResizer.tsx +28 −0
apps/desktop/src/ui/settings/SettingsShell.tsx +47 −30
apps/desktop/src/ui/settings/pages/ProvidersPage.tsx +8 −3
apps/desktop/src/ui/settings/pages/WorkspacesPage.tsx +6 −0
apps/desktop/test/persistence-state-sanitization.test.ts +134 −0
bun.lock +6 −5
package.json +2 −2