Preact
Integración con Preact
@cmd-kit/preact replica la API pública de React sobre Preact.
Instalación
npm install @cmd-kit/preact Uso básico
import { CommandPalette } from "@cmd-kit/preact";
const sections = [
{
id: "navigation",
title: "Navigation",
items: [{ id: "dashboard", title: "Dashboard", href: "/dashboard" }]
}
];
export function Example() {
return <CommandPalette sections={sections} title="Comandos del proyecto" />;
} Superficie de configuración
sections,itemsysourcemessagespara copy específico del productothemeen modo simple o dual ({ light, dark })classNamespara estilos por slotrendererspara overrides de renderizadorecentspara comandos recientesreducedMotionpara desactivar animaciones de hover/movimiento
Iconos y layout
<CommandPalette
sections={sections}
renderItem={(item, active) => (
<div className={active ? "palette-row is-active" : "palette-row"}>
<MyIcon name={item.id} />
<span>{item.title}</span>
</div>
)}
title="Comandos del proyecto"
/> Añadir un comando nuevo
Añade una opción nueva creando un nuevo ítem en tu sección. shortcut es opcional.
const sections = [
{
id: "navigation",
title: "Navigation",
items: [
{ id: "dashboard", title: "Dashboard", href: "/dashboard" },
{ id: "billing", title: "Billing", href: "/billing", shortcut: "mod+b" },
{ id: "support", title: "Support", href: "/support" }
]
}
]; Comandos recientes
recents es opcional y está desactivado por defecto. Actívalo con recents={true} o configúralo con recents={{ limit, sectionTitle }}. Desactívalo con recents={false}.
<CommandPalette
sections={sections}
recents={false}
title="Comandos del proyecto"
/> FAQ
¿La API de Preact es intencionalmente parecida a React?
Sí. El adaptador replica la API de React para compartir patrones y configuración.
¿Necesito alias de compatibilidad de React para usarlo?
No. Con @cmd-kit/preact trabajas directamente sobre Preact.
¿También tengo source asíncrono y recientes en Preact?
Sí. source y recents están soportados en el adaptador de Preact.
¿Cómo desactivo recientes en Preact?
Deja recents sin definir (apagado por defecto) o pásalo como recents={false}.
¿Cómo reemplazo la UI por defecto de cada fila?
Usa renderItem para controlar toda la fila o renderers para overrides puntuales.
¿Cuándo es mejor usar Core en vez del adaptador de Preact?
Cuando tu producto requiere una interacción o un render que sobrepasa los límites del componente empaquetado.