Files

42 lines
1.1 KiB
TypeScript
Raw Permalink Normal View History

export type ShapeType =
| 'rectangle'
| 'ellipse'
| 'line'
| 'arrow'
| 'polygon'
| 'star'
| 'triangle';
export interface ShapeSettings {
type: ShapeType;
fill: boolean;
fillColor: string;
stroke: boolean;
strokeColor: string;
strokeWidth: number;
cornerRadius: number; // For rounded rectangles
sides: number; // For polygons and stars
innerRadius: number; // For stars (0-1, percentage of outer radius)
arrowHeadSize: number; // For arrows
arrowHeadAngle: number; // For arrows (degrees)
}
export interface ShapeState {
settings: ShapeSettings;
}
export interface ShapeStore extends ShapeState {
setShapeType: (type: ShapeType) => void;
setFill: (fill: boolean) => void;
setFillColor: (color: string) => void;
setStroke: (stroke: boolean) => void;
setStrokeColor: (color: string) => void;
setStrokeWidth: (width: number) => void;
setCornerRadius: (radius: number) => void;
setSides: (sides: number) => void;
setInnerRadius: (radius: number) => void;
setArrowHeadSize: (size: number) => void;
setArrowHeadAngle: (angle: number) => void;
updateSettings: (settings: Partial<ShapeSettings>) => void;
}