import { Eye, Layers } from "../../icons/SystemIcons"; import type { DomEditSelection } from "./domEditingTypes"; function FlatEmptyState() { return (
Nothing selected
Click any element on the canvas to edit it, or drag to select several.
Record a gesture R Describe a change to the agent ⌘K
); } function elementKindGlyph(element: DomEditSelection): { glyph: string; className: string } { if (element.tagName === "video" || element.tagName === "audio" || element.tagName === "img") { return { glyph: "◆", className: "bg-panel-media/10 text-panel-media" }; } if (element.textFields?.length > 0) { return { glyph: "T", className: "bg-panel-accent/10 text-panel-accent" }; } return { glyph: "▦", className: "bg-panel-container/10 text-panel-container" }; } function FlatMultiSelectState({ multiSelectCount, multiSelectedElements = [], onGroupSelection, onHideAllSelected, onClearSelection, }: { multiSelectCount: number; multiSelectedElements?: DomEditSelection[]; onGroupSelection?: () => void; onHideAllSelected?: () => void; onClearSelection?: () => void; }) { return (
{multiSelectCount} elements selected
shift-click to add or remove
{multiSelectedElements.map((element) => { const { glyph, className } = elementKindGlyph(element); return ( {glyph} {element.label} {element.id ? `#${element.id}` : element.selector} ); })}
Select a single element to edit its properties
); } export function PropertyPanelEmptyState({ multiSelectCount, flat, multiSelectedElements, onGroupSelection, onHideAllSelected, onClearSelection, }: { multiSelectCount: number; flat?: boolean; multiSelectedElements?: DomEditSelection[]; onGroupSelection?: () => void; onHideAllSelected?: () => void; onClearSelection?: () => void; }) { if (flat) { return multiSelectCount > 1 ? ( ) : ( ); } return (
{multiSelectCount > 1 ? ( <>

{multiSelectCount} elements selected

Select a single element to edit its properties. Click an element in the preview or use the timeline layer panel.

) : ( <>

Select an element in the preview.

The inspector is tuned for element edits with safer geometry controls, color picking, and cleaner grouped layer controls.

)}
); }