@soil/dom
Version:
Declaratively create type-safe HTML and SVG elements.
142 lines (141 loc) • 6.49 kB
TypeScript
import { HTMLElementChildrenMap } from './HTMLElementChildrenMap';
import { Props } from '../../../shared/types/Props';
declare type H = {
[T in keyof HTMLElementTagNameMap]: (props?: Props<HTMLElementTagNameMap[T]>, children?: HTMLElementChildrenMap[T]) => HTMLElementTagNameMap[T];
};
/**
* Helpers to facilitate the concise creation of any HTML element.
*
* NOTE The following functions silently depend on the `document` variable
* being globally available. Therefore, unit tests of components that use them
* must be run inside a browser, or must expose `document` globally, e.g.
* through PhantomJS or jsdom.
*
* TODO Missing: <rb>, <rtc>.
*/
export declare const h: H;
/**
* Nice-to-remember aliases for all HTML element interfaces.
*/
export declare namespace h {
type A = HTMLElementTagNameMap['a'];
type Abbr = HTMLElementTagNameMap['abbr'];
type Address = HTMLElementTagNameMap['address'];
type Applet = HTMLElementTagNameMap['applet'];
type Area = HTMLElementTagNameMap['area'];
type Article = HTMLElementTagNameMap['article'];
type Aside = HTMLElementTagNameMap['aside'];
type Audio = HTMLElementTagNameMap['audio'];
type B = HTMLElementTagNameMap['b'];
type Base = HTMLElementTagNameMap['base'];
type Basefont = HTMLElementTagNameMap['basefont'];
type Bdi = HTMLElementTagNameMap['bdi'];
type Bdo = HTMLElementTagNameMap['bdo'];
type Blockquote = HTMLElementTagNameMap['blockquote'];
type Body = HTMLElementTagNameMap['body'];
type Br = HTMLElementTagNameMap['br'];
type Button = HTMLElementTagNameMap['button'];
type Canvas = HTMLElementTagNameMap['canvas'];
type Caption = HTMLElementTagNameMap['caption'];
type Cite = HTMLElementTagNameMap['cite'];
type Code = HTMLElementTagNameMap['code'];
type Col = HTMLElementTagNameMap['col'];
type Colgroup = HTMLElementTagNameMap['colgroup'];
type Data = HTMLElementTagNameMap['data'];
type Datalist = HTMLElementTagNameMap['datalist'];
type Dd = HTMLElementTagNameMap['dd'];
type Del = HTMLElementTagNameMap['del'];
type Details = HTMLElementTagNameMap['details'];
type Dfn = HTMLElementTagNameMap['dfn'];
type Dialog = HTMLElementTagNameMap['dialog'];
type Dir = HTMLElementTagNameMap['dir'];
type Div = HTMLElementTagNameMap['div'];
type Dl = HTMLElementTagNameMap['dl'];
type Dt = HTMLElementTagNameMap['dt'];
type Em = HTMLElementTagNameMap['em'];
type Embed = HTMLElementTagNameMap['embed'];
type Fieldset = HTMLElementTagNameMap['fieldset'];
type Figcaption = HTMLElementTagNameMap['figcaption'];
type Figure = HTMLElementTagNameMap['figure'];
type Font = HTMLElementTagNameMap['font'];
type Footer = HTMLElementTagNameMap['footer'];
type Form = HTMLElementTagNameMap['form'];
type Frame = HTMLElementTagNameMap['frame'];
type Frameset = HTMLElementTagNameMap['frameset'];
type H1 = HTMLElementTagNameMap['h1'];
type H2 = HTMLElementTagNameMap['h2'];
type H3 = HTMLElementTagNameMap['h3'];
type H4 = HTMLElementTagNameMap['h4'];
type H5 = HTMLElementTagNameMap['h5'];
type H6 = HTMLElementTagNameMap['h6'];
type Head = HTMLElementTagNameMap['head'];
type Header = HTMLElementTagNameMap['header'];
type Hgroup = HTMLElementTagNameMap['hgroup'];
type Hr = HTMLElementTagNameMap['hr'];
type Html = HTMLElementTagNameMap['html'];
type I = HTMLElementTagNameMap['i'];
type Iframe = HTMLElementTagNameMap['iframe'];
type Img = HTMLElementTagNameMap['img'];
type Input = HTMLElementTagNameMap['input'];
type Ins = HTMLElementTagNameMap['ins'];
type Kbd = HTMLElementTagNameMap['kbd'];
type Label = HTMLElementTagNameMap['label'];
type Legend = HTMLElementTagNameMap['legend'];
type Li = HTMLElementTagNameMap['li'];
type Link = HTMLElementTagNameMap['link'];
type Main = HTMLElementTagNameMap['main'];
type Map = HTMLElementTagNameMap['map'];
type Mark = HTMLElementTagNameMap['mark'];
type Marquee = HTMLElementTagNameMap['marquee'];
type Menu = HTMLElementTagNameMap['menu'];
type Meta = HTMLElementTagNameMap['meta'];
type Meter = HTMLElementTagNameMap['meter'];
type Nav = HTMLElementTagNameMap['nav'];
type Noscript = HTMLElementTagNameMap['noscript'];
type Object = HTMLElementTagNameMap['object'];
type Ol = HTMLElementTagNameMap['ol'];
type Optgroup = HTMLElementTagNameMap['optgroup'];
type Option = HTMLElementTagNameMap['option'];
type Output = HTMLElementTagNameMap['output'];
type P = HTMLElementTagNameMap['p'];
type Param = HTMLElementTagNameMap['param'];
type Picture = HTMLElementTagNameMap['picture'];
type Pre = HTMLElementTagNameMap['pre'];
type Progress = HTMLElementTagNameMap['progress'];
type Q = HTMLElementTagNameMap['q'];
type Rp = HTMLElementTagNameMap['rp'];
type Rt = HTMLElementTagNameMap['rt'];
type Ruby = HTMLElementTagNameMap['ruby'];
type S = HTMLElementTagNameMap['s'];
type Samp = HTMLElementTagNameMap['samp'];
type Script = HTMLElementTagNameMap['script'];
type Section = HTMLElementTagNameMap['section'];
type Select = HTMLElementTagNameMap['select'];
type Slot = HTMLElementTagNameMap['slot'];
type Small = HTMLElementTagNameMap['small'];
type Source = HTMLElementTagNameMap['source'];
type Span = HTMLElementTagNameMap['span'];
type Strong = HTMLElementTagNameMap['strong'];
type Style = HTMLElementTagNameMap['style'];
type Sub = HTMLElementTagNameMap['sub'];
type Summary = HTMLElementTagNameMap['summary'];
type Sup = HTMLElementTagNameMap['sup'];
type Table = HTMLElementTagNameMap['table'];
type Tbody = HTMLElementTagNameMap['tbody'];
type Td = HTMLElementTagNameMap['td'];
type Template = HTMLElementTagNameMap['template'];
type Textarea = HTMLElementTagNameMap['textarea'];
type Tfoot = HTMLElementTagNameMap['tfoot'];
type Th = HTMLElementTagNameMap['th'];
type Thead = HTMLElementTagNameMap['thead'];
type Time = HTMLElementTagNameMap['time'];
type Title = HTMLElementTagNameMap['title'];
type Tr = HTMLElementTagNameMap['tr'];
type Track = HTMLElementTagNameMap['track'];
type U = HTMLElementTagNameMap['u'];
type Ul = HTMLElementTagNameMap['ul'];
type Var = HTMLElementTagNameMap['var'];
type Video = HTMLElementTagNameMap['video'];
type Wbr = HTMLElementTagNameMap['wbr'];
}
export {};