UNPKG

@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.

34 lines (33 loc) 1.41 kB
import { JSX, Accessor } from 'solid-js'; /** Imperative open controller, handed to a parent (the kai-reasoning facade) via * `controllerRef` so it can drive/observe open state — mirrors * CollapsibleController/HoverCardController. */ export interface ReasoningController { open: Accessor<boolean>; setOpen: (v: boolean) => void; } export interface ReasoningProps { children: JSX.Element; class?: string; open?: boolean; /** Initial open state (uncontrolled seed). */ defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; isStreaming?: boolean; /** Gate the trigger — programmatic control via the controller still works. */ disabled?: boolean; /** Receive the open controller (open accessor + setOpen) once mounted. */ controllerRef?: (api: ReasoningController) => void; } declare function Reasoning(props: ReasoningProps): JSX.Element; export interface ReasoningTriggerProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> { children: JSX.Element; } declare function ReasoningTrigger(props: ReasoningTriggerProps): JSX.Element; export interface ReasoningContentProps extends JSX.HTMLAttributes<HTMLDivElement> { children: JSX.Element; markdown?: boolean; contentClass?: string; } declare function ReasoningContent(props: ReasoningContentProps): JSX.Element; export { Reasoning, ReasoningTrigger, ReasoningContent };