@teaui/preact
Version:
Preact renderer for TeaUI
56 lines (55 loc) • 2.68 kB
TypeScript
import type { ComponentChildren } from 'preact';
import { Screen, type ScreenOptions, ViewProps, Window as WrWindow } from '@teaui/core';
import type { CheckboxProps, CollapsibleTextProps, ConsoleProps, DigitsProps, HeaderProps, InputProps, ProgressProps, SeparatorProps, SliderProps, SpaceProps, SpinnerProps, ToggleGroupProps, BoxProps, ButtonProps, CollapsibleProps, ScrollableProps, StackProps, StyleProps, TextProps, AccordionProps, AccordionSectionProps, DrawerProps, HotKeyProps, KeyboardProps, MouseProps, TabsProps, TabsSectionProps } from './components.js';
declare module 'preact' {
namespace JSX {
interface IntrinsicElements {
'tui-br': {};
'tui-checkbox': CheckboxProps;
'tui-collapsible-text': CollapsibleTextProps;
'tui-console': ConsoleProps;
'tui-digits': DigitsProps;
'tui-hotkey': HotKeyProps;
'tui-keyboard': KeyboardProps;
'tui-mouse': MouseProps;
'tui-h1': HeaderProps;
'tui-h2': HeaderProps;
'tui-h3': HeaderProps;
'tui-h4': HeaderProps;
'tui-h5': HeaderProps;
'tui-h6': HeaderProps;
'tui-input': InputProps;
'tui-progress': ProgressProps;
'tui-separator': SeparatorProps;
'tui-slider': SliderProps;
'tui-space': SpaceProps;
'tui-spinner': SpinnerProps;
'tui-toggle-group': ToggleGroupProps;
'tui-tree': ViewProps;
'tui-box': BoxProps;
'tui-button': ButtonProps;
'tui-collapsible': CollapsibleProps;
'tui-scrollable': ScrollableProps;
'tui-stack': StackProps;
'tui-style': StyleProps;
'tui-text': TextProps;
'tui-accordion': AccordionProps;
'tui-accordion-section': AccordionSectionProps;
'tui-drawer': DrawerProps;
'tui-tabs': TabsProps;
'tui-tabs-section': TabsSectionProps;
}
}
}
type ViewFactory = (props: any) => any;
/**
* Register a custom element type for the Preact reconciler.
* External packages (e.g. @teaui/subprocess) can call this to add new JSX elements.
*
* @example
* registerElement('tui-subprocess', (props) => new SubprocessView(props))
*/
export declare function registerElement(type: string, factory: ViewFactory): void;
export declare function render(screen: Screen, window: WrWindow, component: ComponentChildren): () => void;
export declare function run(component: ComponentChildren, options?: Partial<ScreenOptions>): Promise<[Screen, WrWindow, ComponentChildren, () => void]>;
export {};