@kitn.ai/ui
Version:
Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. Authored in SolidJS.
22 lines (21 loc) • 1.1 kB
TypeScript
import { JSX } from 'solid-js';
import { CardEvent } from '../primitives/card-contract';
import { EmbedCardData } from '../primitives/embed-providers';
export interface EmbedProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, 'onError'> {
/** The card id correlating every emitted event. */
cardId: string;
/** The embed payload (data-down). */
data: EmbedCardData;
/** Emit a contract CardEvent up (host routes it). */
onEmit?: (event: CardEvent) => void;
}
/**
* `Embed` — a privacy-first lazy media facade. Initial render is a poster + a play
* button: NO provider iframe, NO provider JS, NO cookies until the user opts in.
* On play it swaps in the provider `<iframe>` (youtube-nocookie / vimeo dnt /
* allowlisted generic). A persistent "Open on {provider}" affordance routes the
* contract `open` verb so a blocked embed is never a dead end. The only verbs it
* emits are lifecycle `ready`, `open`, and failure `error`.
*/
export declare function Embed(props: EmbedProps): JSX.Element;
export type { EmbedCardData } from '../primitives/embed-providers';