// Usage in IconComponent (src/builder/components/media/icon.ts) import { html } from "lit"; import { msg } from "@lit/localize"; import type { BuilderComponent } from "../../types/BuilderComponent"; import "../../assets/shoelaceImports"; const DEFAULT_ICON = "gear"; const DEFAULT_COLOR = "#0f172a"; export const IconComponent: BuilderComponent = { type: "icon", label: () => msg("Icon"), group: "media", defaultData: { name: DEFAULT_ICON, size: "32px", color: DEFAULT_COLOR, }, render(data) { const name = data?.name || DEFAULT_ICON; const size = data?.size || "32px"; const color = data?.color || DEFAULT_COLOR; return html`
`; }, settings: ({ data, setData }) => { const name = data?.name ?? DEFAULT_ICON; const size = data?.size ?? "32px"; const color = data?.color ?? DEFAULT_COLOR; return html`

${msg("Icon")}

setData({ name: e.detail.name, color: e.detail.color })} >
setData({ size: String(e.target.value ?? "") })} >
setData({ color: String(e.target.value ?? "") })} >
`; }, };