UNPKG

preact-custom-element

Version:
51 lines (47 loc) 1.07 kB
import { AnyComponent } from 'preact'; type Options = | { shadow: false; } | { shadow: true; mode?: 'open' | 'closed'; adoptedStyleSheets?: CSSStyleSheet[]; serializable?: boolean; }; /** * Register a preact component as web-component. * * @example * ```jsx * // use custom web-component class * class PreactWebComponent extends Component { * static tagName = 'my-web-component'; * render() { * return <p>Hello world!</p> * } * } * * register(PreactComponent); * * // use a preact component * function PreactComponent({ prop }) { * return <p>Hello {prop}!</p> * } * * register(PreactComponent, 'my-component'); * register(PreactComponent, 'my-component', ['prop']); * register(PreactComponent, 'my-component', ['prop'], { * shadow: true, * mode: 'closed' * }); * const klass = register(PreactComponent, 'my-component'); * ``` */ declare function register<P = {}, S = {}>( Component: AnyComponent<P, S>, tagName?: string, propNames?: (keyof P)[], options?: Options ): HTMLElement; export = register;