feat: add inpaint region functionality and related tools

- Enhanced cursor behavior for new tools: semantic select, mask lasso, and mask rectangle.
- Updated mask edit state to include mask asset ID and kind.
- Implemented inpaint region commands for adding, applying, and removing inpaint regions.
- Introduced new operations for lasso and semantic selection tools.
- Created UI components for candidate review and inpaint region management.
- Added tests for inpaint region commands to ensure functionality.
- Updated various components to support new inpaint features and improve user experience.
This commit is contained in:
syntaxbullet
2026-07-11 16:41:22 +02:00
parent f4e13b80e7
commit ff762b8f17
78 changed files with 1632 additions and 301 deletions

View File

@@ -23,6 +23,7 @@ export function pointerInputEventFromPointerEvent(event: PointerEvent): PointerI
pointerType: normalizePointerType(event.pointerType),
position: { x: event.offsetX, y: event.offsetY },
buttons: event.buttons,
pressure: event.pointerType === "pen" ? event.pressure : 1,
altKey: event.altKey,
ctrlKey: event.ctrlKey,
metaKey: event.metaKey,

View File

@@ -5,6 +5,7 @@ export type PointerInputEvent = {
pointerType: "mouse" | "pen" | "touch";
position: Vec2D;
buttons: number;
pressure?: number;
altKey: boolean;
ctrlKey: boolean;
metaKey: boolean;

View File

@@ -16,7 +16,7 @@ import type { PointerInputEvent } from "./pointer";
type TransformHandle = "body" | "nw" | "n" | "ne" | "e" | "se" | "s" | "sw" | "w";
type InputToolId = "select" | "brush" | "eraser" | "magicWand" | "pan";
type InputToolId = "select" | "brush" | "eraser" | "magicWand" | "semanticSelect" | "maskLasso" | "maskRectangle" | "pan";
type InputInteractionMode =
| { type: "tool"; tool: InputToolId }