import type { TemplateResult } from 'lit'; import { DiamondIcon, EllipseIcon, RoundedRectangleIcon, ScribbledDiamondIcon, ScribbledEllipseIcon, ScribbledRoundedRectangleIcon, ScribbledSquareIcon, ScribbledTriangleIcon, SquareIcon, TriangleIcon, } from '../../../../../_common/icons/index.js'; import type { ShapeTool } from '../../../../../_common/utils/index.js'; import { ShapeType } from '../../../../../surface-block/index.js'; const { Rect, Ellipse, Triangle, Diamond } = ShapeType; type Config = { name: ShapeTool['shapeType']; generalIcon: TemplateResult<1>; scribbledIcon: TemplateResult<1>; tooltip: string; disabled: boolean; }; export const ShapeComponentConfig: Config[] = [ { name: Rect, generalIcon: SquareIcon, scribbledIcon: ScribbledSquareIcon, tooltip: 'Square', disabled: false, }, { name: Ellipse, generalIcon: EllipseIcon, scribbledIcon: ScribbledEllipseIcon, tooltip: 'Ellipse', disabled: false, }, { name: Diamond, generalIcon: DiamondIcon, scribbledIcon: ScribbledDiamondIcon, tooltip: 'Diamond', disabled: false, }, { name: Triangle, generalIcon: TriangleIcon, scribbledIcon: ScribbledTriangleIcon, tooltip: 'Triangle', disabled: false, }, { name: 'roundedRect', generalIcon: RoundedRectangleIcon, scribbledIcon: ScribbledRoundedRectangleIcon, tooltip: 'Rounded rectangle', disabled: false, }, ] as const; export const ShapeComponentConfigMap = ShapeComponentConfig.reduce( (acc, config) => { acc[config.name] = config; return acc; }, {} as Record ); export const SHAPE_SUBMENU_WIDTH = 464; export const SHAPE_COLOR_PREFIX = '--affine-palette-shape-'; export const LINE_COLOR_PREFIX = '--affine-palette-line-';