Files
image-studio/input/dom.ts
syntaxbullet ff762b8f17 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.
2026-07-11 16:41:22 +02:00

44 lines
1.3 KiB
TypeScript

import type { KeybindEvent } from "./keyboard";
import type { PointerInputEvent, WheelInputEvent } from "./pointer";
export function keybindEventFromKeyboardEvent(event: KeyboardEvent): KeybindEvent {
return {
key: event.key,
code: event.code,
altKey: event.altKey,
ctrlKey: event.ctrlKey,
metaKey: event.metaKey,
shiftKey: event.shiftKey,
};
}
function normalizePointerType(pointerType: string): PointerInputEvent["pointerType"] {
if (pointerType === "pen" || pointerType === "touch") return pointerType;
return "mouse";
}
export function pointerInputEventFromPointerEvent(event: PointerEvent): PointerInputEvent {
return {
pointerId: event.pointerId,
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,
shiftKey: event.shiftKey,
};
}
export function wheelInputEventFromWheelEvent(event: WheelEvent): WheelInputEvent {
return {
position: { x: event.offsetX, y: event.offsetY },
delta: { x: event.deltaX, y: event.deltaY },
altKey: event.altKey,
ctrlKey: event.ctrlKey,
metaKey: event.metaKey,
shiftKey: event.shiftKey,
};
}