@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.
41 lines (40 loc) • 1.46 kB
TypeScript
import { JSX, Accessor } from 'solid-js';
import { Placement } from '@floating-ui/dom';
/** Imperative open controller, handed to a parent (e.g. the kai-hover-card facade)
* via `controllerRef` so it can drive/observe open state. */
export interface HoverCardController {
open: Accessor<boolean>;
setOpen: (v: boolean) => void;
}
export interface HoverCardRootProps {
children: JSX.Element;
openDelay?: number;
closeDelay?: number;
/** Initial open state (uncontrolled seed). */
defaultOpen?: boolean;
/** When true, hover/focus never opens the card. */
disabled?: boolean;
/** Receive the open controller (open accessor + setOpen) once mounted. */
controllerRef?: (api: HoverCardController) => void;
}
export declare function HoverCardRoot(props: HoverCardRootProps): JSX.Element;
export interface HoverCardTriggerProps {
children: JSX.Element;
class?: string;
}
export declare function HoverCardTrigger(props: HoverCardTriggerProps): JSX.Element;
export interface HoverCardContentProps {
children: JSX.Element;
class?: string;
placement?: Placement;
}
export declare function HoverCardContent(props: HoverCardContentProps): JSX.Element;
export interface HoverCardProps {
trigger: JSX.Element;
children: JSX.Element;
class?: string;
openDelay?: number;
closeDelay?: number;
placement?: Placement;
}
export declare function HoverCard(props: HoverCardProps): JSX.Element;