@kitn.ai/chat
Version:
Framework-agnostic, Shadow-DOM web components for building AI chat interfaces — works in React, Vue, Angular, Svelte, or plain HTML. Authored in SolidJS.
28 lines (25 loc) • 1.12 kB
TypeScript
// src/elements/resizable.d.ts
// Hand-authored ambient types for <kc-resizable>'s maximize capability. The
// generated element-types.d.ts emits prop/event interfaces only (not methods),
// so the imperative host API + the cross-element protocol events live here.
// NOT regenerated by `npm run build`.
import type { KcMaximizeIntentDetail, KcMaximizeStateDetail } from './resizable';
declare global {
interface KcResizableElement extends HTMLElement {
/** Which item index is maximized (null = none). Setting it maximizes that
* item (or restores when set to null) — the declarative source of truth. */
maximizedIndex: number | null;
/** Imperatively maximize the item at `index` (thin wrapper over maximizedIndex). */
maximize(index: number): void;
/** Imperatively restore from the maximized layout. */
restore(): void;
}
interface HTMLElementTagNameMap {
'kc-resizable': KcResizableElement;
}
interface HTMLElementEventMap {
'kc-maximize-intent': CustomEvent<KcMaximizeIntentDetail>;
'kc-maximize-state': CustomEvent<KcMaximizeStateDetail>;
}
}
export {};