Updates the ShortcutsModal to dynamically display the correct physical keys for users with non-US keyboard layouts.
The `ShortcutItem` component now uses `navigator.keyboard.getLayoutMap()` to resolve `KeyboardEvent.code` values (e.g., "Slash") to the character they produce on the user's active keyboard layout (e.g., "-").
This ensures the displayed shortcuts match the keys the user needs to press. A fallback is included for older browsers that do not support this API.
### UPD_Styles: Add dark mode styles for select elements and options.
Actually some select "boxes" have css dark theme support, but other not.
This PR add CSS for dark theme selects.
### UPD_Styles: Add dark mode styles for select elements and options.
Actually some select "boxes" have css dark theme support, but other not.
This PR add CSS for dark theme selects.
Fixes a bug where the UI would freeze when processing citation sources with mixed distance metrics.
The `Citations.svelte` component was attempting to call `.push()` on an `undefined` `distances` array. This happened when the first document for a source had no distance value, but a subsequent document for the same source did.
This patch ensures the `distances` array is always initialized as an empty array `[]` instead of `undefined`, preventing the `TypeError` and resolving the UI freeze.
- Add src/lib/shortcuts.ts as the single source of truth for every shortcut
- Create HotkeyHint.svelte to show OS-aware key combos (⌘ on Mac, Ctrl elsewhere)
- Make sidebar “New Chat” and “Search” buttons display their shortcuts on hover
- Add user setting to toggle these sidebar hints
- Refactor ShortcutsModal into categorized (Global, Chat, Message, Input), data-driven sections
- Introduce ShortcutItem.svelte to render each row, dividers, and multi-line text
- Fix “Focus text area” action and include “Close modal” shortcut
- Wire everything through +layout.svelte and the shortcuts registry