"use client"; import { useState } from "react"; import { ChevronDown, ChevronRight } from "lucide-react"; import { COMPONENTS, COMPONENT_CATEGORIES, type ComponentMeta } from "@/lib/componentMeta"; import { ComponentIcon } from "@/components/canvas/ComponentIcon"; import { hxFamily } from "@/lib/hxFamily"; export default function ComponentPalette() { const [collapsed, setCollapsed] = useState>({ Advanced: true, Generic: true, }); const toggle = (cat: string) => setCollapsed((c) => ({ ...c, [cat]: !c[cat] })); const onDragStart = (e: React.DragEvent, type: string) => { e.dataTransfer.setData("application/entropyk-type", type); e.dataTransfer.effectAllowed = "move"; }; return ( ); } function PaletteItem({ meta, index, onDragStart, }: { meta: ComponentMeta; index: number; onDragStart: (e: React.DragEvent, type: string) => void; }) { const family = hxFamily(meta.type); const color = family?.accent ?? meta.color; return (
onDragStart(e, meta.type)} className="palette-item group mx-1.5 flex cursor-grab items-center gap-2.5 rounded-[2px] px-2 py-1.5 hover:bg-[var(--chrome-2)] active:cursor-grabbing" style={{ ["--i" as string]: index }} title={meta.help ?? meta.description} > {meta.label} {family && ( {family.badge} · {family.label} )}
); }