import { Eraser, PaintBrush } from "@phosphor-icons/react"; import { commandIds } from "@commands/ids"; import type { AppStore } from "@editor/store"; import type { MaskViewMode } from "@editor/state"; import type { BrushSettings, ToolId } from "@editor/tools"; import { BottomControlColorPicker } from "./ColorPicker"; import { BottomControlDivider } from "./Divider"; import { BottomControlSelectMenu, type BottomControlSelectOption } from "./SelectMenu"; import { BottomControlSlider } from "./Slider"; import { bottomControlFieldClass, bottomControlIconSlotClass, bottomControlLabelClass, bottomControlMenuClass } from "./styles"; export type BrushControlsProps = { tool: Extract; settings: BrushSettings; editingMask?: boolean; maskKind?: "layerMask" | "inpaintRegion"; maskViewMode?: MaskViewMode; dispatch: AppStore["dispatch"]; }; const maskViewModeOptions = [ { value: "composite", label: "Image" }, { value: "blackWhite", label: "B/W" }, { value: "alpha", label: "Alpha" }, { value: "overlay", label: "Overlay" }, ] satisfies readonly BottomControlSelectOption[]; export function BrushControls({ tool, settings, editingMask = false, maskKind = "layerMask", maskViewMode = "composite", dispatch }: BrushControlsProps) { const inpaintRegion = editingMask && maskKind === "inpaintRegion"; return (
{tool === "eraser" ? : } {editingMask ? ( <> ) : null} {tool === "brush" && !editingMask ? ( ) : null} {editingMask ? ( <> ) : null}
); } function maskModeButtonClass(active: boolean) { return `rounded-md px-3 py-1.5 text-xs font-medium transition ${active ? "bg-sky-300 text-slate-950" : "bg-white/[0.06] text-white/70 hover:bg-white/10"}`; }