feat: add command palette functionality and shortcuts

- Implemented command palette with keyboard shortcut (⌘K) for opening.
- Added commands for opening, closing, setting query, and selecting items in the command palette.
- Created tests for command palette commands and input handling.
- Enhanced layer actions with functions for adding, grouping, and deleting layers.
- Updated UI components to integrate command palette and shortcuts.
This commit is contained in:
syntaxbullet
2026-07-05 17:15:20 +02:00
parent 5eaf37ba28
commit c3a75cf0d6
17 changed files with 1073 additions and 154 deletions

View File

@@ -31,6 +31,11 @@ import type {
GenerationSelectCandidatePayload,
GenerationSetCompareModePayload,
} from "./generation";
import type {
CommandPaletteOpenPayload,
CommandPaletteSetQueryPayload,
CommandPaletteSetSelectedIndexPayload,
} from "./palette";
import type { SelectionAddLayerPayload, SelectionSetPayload } from "./selection";
import type { ToolEnterMaskEditPayload, ToolSetActivePayload, ToolSetBrushPreviewPayload, ToolSetBrushSettingsPayload, ToolSetBrushStrokePreviewPayload, ToolSetChromaKeySettingsPayload, ToolSetGenerateSettingsPayload, ToolSetMagicWandSettingsPayload, ToolSetMaskViewModePayload } from "./tool";
import type { TransformBeginPayload, TransformSetBoundsPayload, TransformUpdatePayload } from "./transform";
@@ -99,6 +104,10 @@ export type CommandPayloads = {
[commandIds.viewportFitArtboard]: ViewportFitArtboardPayload | undefined;
[commandIds.historyUndo]: void;
[commandIds.historyRedo]: void;
[commandIds.commandPaletteOpen]: CommandPaletteOpenPayload;
[commandIds.commandPaletteClose]: void;
[commandIds.commandPaletteSetQuery]: CommandPaletteSetQueryPayload;
[commandIds.commandPaletteSetSelectedIndex]: CommandPaletteSetSelectedIndexPayload;
};
export type CommandId = keyof CommandPayloads;