import type { CanvasState } from "@dada/shared-contracts"; import { effectiveFontSize, P0A_FONT_OPTIONS, type TextStylePatch, type TextTemplateDefinition } from "./text-assets.js"; type CanvasElement = CanvasState["elements"][number]; function scalar(element: CanvasElement, key: string, fallback: T): T { const value = element.style_parameters?.[key]; return typeof value === typeof fallback ? value as T : fallback; } function NumberAndRange(props: { label: string; max: number; min: number; onChange: (value: number) => void; step: number; value: number }) { return ; } export function TextInspector(props: { draft: CanvasElement; onCancel: () => void; onComplete: () => void; onContent: (content: string) => void; onFont: (fontId: string | null) => void; onFontSize: (value: number) => void; onStyle: (patch: TextStylePatch) => void; onTemplate: (templateId: string) => void; templates: readonly TextTemplateDefinition[]; }) { const style = props.draft.style_parameters ?? {}; const backgroundOpacity = Math.round(scalar(props.draft, "background_opacity", 1) * 100); const strokeEnabled = scalar(props.draft, "stroke_enabled", false); const backgroundEnabled = scalar(props.draft, "background_enabled", false); return