solid-js
Version:
A declarative JavaScript library for building user interfaces.
39 lines (38 loc) • 1.57 kB
TypeScript
type MountableElement = Element | Document | ShadowRoot | DocumentFragment | Node;
interface Runtime {
effect<T>(fn: (prev?: T) => T, init?: T): any;
untrack<T>(fn: () => T): T;
insert(parent: MountableElement, accessor: any, marker?: Node | null, init?: any): any;
spread<T>(node: Element, accessor: (() => T) | T, isSVG?: Boolean, skipChildren?: Boolean): void;
createComponent(Comp: (props: any) => any, props: any): any;
addEventListener(node: Element, name: string, handler: () => void, delegate: boolean): void;
delegateEvents(eventNames: string[]): void;
classList(node: Element, value: {
[k: string]: boolean;
}, prev?: {
[k: string]: boolean;
}): void;
style(node: Element, value: {
[k: string]: string;
}, prev?: {
[k: string]: string;
}): void;
mergeProps(...sources: unknown[]): unknown;
dynamicProperty(props: any, key: string): any;
setAttribute(node: Element, name: string, value: any): void;
setAttributeNS(node: Element, namespace: string, name: string, value: any): void;
Aliases: Record<string, string>;
PropAliases: Record<string, string>;
Properties: Set<string>;
ChildProperties: Set<string>;
DelegatedEvents: Set<string>;
SVGElements: Set<string>;
SVGNamespace: Record<string, string>;
}
export type HTMLTag = {
(statics: TemplateStringsArray, ...args: unknown[]): Node | Node[];
};
export declare function createHTML(r: Runtime, { delegateEvents }?: {
delegateEvents?: boolean | undefined;
}): HTMLTag;
export {};