glamorous
Version:
React component styling solved
338 lines (329 loc) • 11.1 kB
TypeScript
import {
KeyGlamorousComponentFactory,
GlamorousOptions,
CSSProperties,
SVGProperties,
PropsAreCssOverridesGlamorousOptions,
KeyGlamorousComponentFactoryCssOverides,
} from './glamorous'
export interface DOMTagGlamorousComponentFactory<
Key extends keyof HTMLDomTags
> {
<ExternalProps, Context = object, DefaultProps extends object = object>(
component: Key,
options?: Partial<GlamorousOptions<ExternalProps, Context, DefaultProps>>,
): KeyGlamorousComponentFactory<
React.HTMLProps<HTMLDomTags[Key]>,
CSSProperties,
ExternalProps,
DefaultProps
>
<ExternalProps, Context = object, DefaultProps extends object = object>(
component: Key,
options?: PropsAreCssOverridesGlamorousOptions<
ExternalProps,
Context,
DefaultProps
>,
): KeyGlamorousComponentFactoryCssOverides<
React.HTMLProps<HTMLDomTags[Key]>,
CSSProperties,
ExternalProps,
DefaultProps
>
}
export interface SVGTagGlamorousComponentFactory<Key extends keyof SVGDomTags> {
<ExternalProps, Context = object, DefaultProps extends object = object>(
component: Key,
options?: Partial<GlamorousOptions<ExternalProps, Context, DefaultProps>>,
): KeyGlamorousComponentFactory<
React.SVGAttributes<SVGDomTags[Key]>,
SVGProperties,
ExternalProps,
DefaultProps
>
<ExternalProps, Context = object, DefaultProps extends object = object>(
component: Key,
options?: PropsAreCssOverridesGlamorousOptions<
ExternalProps,
Context,
DefaultProps
>,
): KeyGlamorousComponentFactoryCssOverides<
React.SVGAttributes<SVGDomTags[Key]>,
SVGProperties,
ExternalProps,
DefaultProps
>
}
export interface DOMTagComponentFactory
extends DOMTagGlamorousComponentFactory<'a'>,
DOMTagGlamorousComponentFactory<'a'>,
DOMTagGlamorousComponentFactory<'abbr'>,
DOMTagGlamorousComponentFactory<'address'>,
DOMTagGlamorousComponentFactory<'area'>,
DOMTagGlamorousComponentFactory<'article'>,
DOMTagGlamorousComponentFactory<'aside'>,
DOMTagGlamorousComponentFactory<'audio'>,
DOMTagGlamorousComponentFactory<'b'>,
DOMTagGlamorousComponentFactory<'base'>,
DOMTagGlamorousComponentFactory<'bdi'>,
DOMTagGlamorousComponentFactory<'bdo'>,
DOMTagGlamorousComponentFactory<'big'>,
DOMTagGlamorousComponentFactory<'blockquote'>,
DOMTagGlamorousComponentFactory<'body'>,
DOMTagGlamorousComponentFactory<'br'>,
DOMTagGlamorousComponentFactory<'button'>,
DOMTagGlamorousComponentFactory<'canvas'>,
DOMTagGlamorousComponentFactory<'caption'>,
DOMTagGlamorousComponentFactory<'cite'>,
DOMTagGlamorousComponentFactory<'code'>,
DOMTagGlamorousComponentFactory<'col'>,
DOMTagGlamorousComponentFactory<'colgroup'>,
DOMTagGlamorousComponentFactory<'data'>,
DOMTagGlamorousComponentFactory<'datalist'>,
DOMTagGlamorousComponentFactory<'dd'>,
DOMTagGlamorousComponentFactory<'del'>,
DOMTagGlamorousComponentFactory<'details'>,
DOMTagGlamorousComponentFactory<'dfn'>,
DOMTagGlamorousComponentFactory<'dialog'>,
DOMTagGlamorousComponentFactory<'div'>,
DOMTagGlamorousComponentFactory<'dl'>,
DOMTagGlamorousComponentFactory<'dt'>,
DOMTagGlamorousComponentFactory<'em'>,
DOMTagGlamorousComponentFactory<'embed'>,
DOMTagGlamorousComponentFactory<'fieldset'>,
DOMTagGlamorousComponentFactory<'figcaption'>,
DOMTagGlamorousComponentFactory<'figure'>,
DOMTagGlamorousComponentFactory<'footer'>,
DOMTagGlamorousComponentFactory<'form'>,
DOMTagGlamorousComponentFactory<'h1'>,
DOMTagGlamorousComponentFactory<'h2'>,
DOMTagGlamorousComponentFactory<'h3'>,
DOMTagGlamorousComponentFactory<'h4'>,
DOMTagGlamorousComponentFactory<'h5'>,
DOMTagGlamorousComponentFactory<'h6'>,
DOMTagGlamorousComponentFactory<'head'>,
DOMTagGlamorousComponentFactory<'header'>,
DOMTagGlamorousComponentFactory<'hgroup'>,
DOMTagGlamorousComponentFactory<'hr'>,
DOMTagGlamorousComponentFactory<'html'>,
DOMTagGlamorousComponentFactory<'i'>,
DOMTagGlamorousComponentFactory<'iframe'>,
DOMTagGlamorousComponentFactory<'img'>,
DOMTagGlamorousComponentFactory<'input'>,
DOMTagGlamorousComponentFactory<'ins'>,
DOMTagGlamorousComponentFactory<'kbd'>,
DOMTagGlamorousComponentFactory<'keygen'>,
DOMTagGlamorousComponentFactory<'label'>,
DOMTagGlamorousComponentFactory<'legend'>,
DOMTagGlamorousComponentFactory<'li'>,
DOMTagGlamorousComponentFactory<'link'>,
DOMTagGlamorousComponentFactory<'main'>,
DOMTagGlamorousComponentFactory<'map'>,
DOMTagGlamorousComponentFactory<'mark'>,
DOMTagGlamorousComponentFactory<'menu'>,
DOMTagGlamorousComponentFactory<'menuitem'>,
DOMTagGlamorousComponentFactory<'meta'>,
DOMTagGlamorousComponentFactory<'meter'>,
DOMTagGlamorousComponentFactory<'nav'>,
DOMTagGlamorousComponentFactory<'noscript'>,
DOMTagGlamorousComponentFactory<'object'>,
DOMTagGlamorousComponentFactory<'ol'>,
DOMTagGlamorousComponentFactory<'optgroup'>,
DOMTagGlamorousComponentFactory<'option'>,
DOMTagGlamorousComponentFactory<'output'>,
DOMTagGlamorousComponentFactory<'p'>,
DOMTagGlamorousComponentFactory<'param'>,
DOMTagGlamorousComponentFactory<'picture'>,
DOMTagGlamorousComponentFactory<'pre'>,
DOMTagGlamorousComponentFactory<'progress'>,
DOMTagGlamorousComponentFactory<'q'>,
DOMTagGlamorousComponentFactory<'rp'>,
DOMTagGlamorousComponentFactory<'rt'>,
DOMTagGlamorousComponentFactory<'ruby'>,
DOMTagGlamorousComponentFactory<'s'>,
DOMTagGlamorousComponentFactory<'samp'>,
DOMTagGlamorousComponentFactory<'script'>,
DOMTagGlamorousComponentFactory<'section'>,
DOMTagGlamorousComponentFactory<'select'>,
DOMTagGlamorousComponentFactory<'small'>,
DOMTagGlamorousComponentFactory<'source'>,
DOMTagGlamorousComponentFactory<'span'>,
DOMTagGlamorousComponentFactory<'strong'>,
DOMTagGlamorousComponentFactory<'style'>,
DOMTagGlamorousComponentFactory<'sub'>,
DOMTagGlamorousComponentFactory<'summary'>,
DOMTagGlamorousComponentFactory<'sup'>,
DOMTagGlamorousComponentFactory<'table'>,
DOMTagGlamorousComponentFactory<'tbody'>,
DOMTagGlamorousComponentFactory<'td'>,
DOMTagGlamorousComponentFactory<'textarea'>,
DOMTagGlamorousComponentFactory<'tfoot'>,
DOMTagGlamorousComponentFactory<'th'>,
DOMTagGlamorousComponentFactory<'thead'>,
DOMTagGlamorousComponentFactory<'time'>,
DOMTagGlamorousComponentFactory<'title'>,
DOMTagGlamorousComponentFactory<'tr'>,
DOMTagGlamorousComponentFactory<'track'>,
DOMTagGlamorousComponentFactory<'u'>,
DOMTagGlamorousComponentFactory<'ul'>,
DOMTagGlamorousComponentFactory<'var'>,
DOMTagGlamorousComponentFactory<'video'>,
DOMTagGlamorousComponentFactory<'wbr'> {}
export interface SVGTagComponentFactory
extends SVGTagGlamorousComponentFactory<'circle'>,
SVGTagGlamorousComponentFactory<'clipPath'>,
SVGTagGlamorousComponentFactory<'defs'>,
SVGTagGlamorousComponentFactory<'ellipse'>,
SVGTagGlamorousComponentFactory<'g'>,
SVGTagGlamorousComponentFactory<'image'>,
SVGTagGlamorousComponentFactory<'line'>,
SVGTagGlamorousComponentFactory<'linearGradient'>,
SVGTagGlamorousComponentFactory<'mask'>,
SVGTagGlamorousComponentFactory<'path'>,
SVGTagGlamorousComponentFactory<'pattern'>,
SVGTagGlamorousComponentFactory<'polygon'>,
SVGTagGlamorousComponentFactory<'polyline'>,
SVGTagGlamorousComponentFactory<'radialGradient'>,
SVGTagGlamorousComponentFactory<'rect'>,
SVGTagGlamorousComponentFactory<'stop'>,
SVGTagGlamorousComponentFactory<'svg'>,
SVGTagGlamorousComponentFactory<'text'>,
SVGTagGlamorousComponentFactory<'tspan'> {}
export interface HTMLDomTags {
a: HTMLAnchorElement
abbr: HTMLElement
address: HTMLElement
area: HTMLAreaElement
article: HTMLElement
aside: HTMLElement
audio: HTMLAudioElement
b: HTMLElement
base: HTMLBaseElement
bdi: HTMLElement
bdo: HTMLElement
big: HTMLElement
blockquote: HTMLElement
body: HTMLBodyElement
br: HTMLBRElement
button: HTMLButtonElement
canvas: HTMLCanvasElement
caption: HTMLElement
cite: HTMLElement
code: HTMLElement
col: HTMLTableColElement
colgroup: HTMLTableColElement
data: HTMLElement
datalist: HTMLDataListElement
dd: HTMLElement
del: HTMLElement
details: HTMLElement
dfn: HTMLElement
dialog: HTMLElement
div: HTMLDivElement
dl: HTMLDListElement
dt: HTMLElement
em: HTMLElement
embed: HTMLEmbedElement
fieldset: HTMLFieldSetElement
figcaption: HTMLElement
figure: HTMLElement
footer: HTMLElement
form: HTMLFormElement
h1: HTMLHeadingElement
h2: HTMLHeadingElement
h3: HTMLHeadingElement
h4: HTMLHeadingElement
h5: HTMLHeadingElement
h6: HTMLHeadingElement
head: HTMLHeadElement
header: HTMLElement
hgroup: HTMLElement
hr: HTMLHRElement
html: HTMLHtmlElement
i: HTMLElement
iframe: HTMLIFrameElement
img: HTMLImageElement
input: HTMLInputElement
ins: HTMLModElement
kbd: HTMLElement
keygen: HTMLElement
label: HTMLLabelElement
legend: HTMLLegendElement
li: HTMLLIElement
link: HTMLLinkElement
main: HTMLElement
map: HTMLMapElement
mark: HTMLElement
menu: HTMLElement
menuitem: HTMLElement
meta: HTMLMetaElement
meter: HTMLElement
nav: HTMLElement
noscript: HTMLElement
object: HTMLObjectElement
ol: HTMLOListElement
optgroup: HTMLOptGroupElement
option: HTMLOptionElement
output: HTMLElement
p: HTMLParagraphElement
param: HTMLParamElement
picture: HTMLElement
pre: HTMLPreElement
progress: HTMLProgressElement
q: HTMLQuoteElement
rp: HTMLElement
rt: HTMLElement
ruby: HTMLElement
s: HTMLElement
samp: HTMLElement
script: HTMLElement
section: HTMLElement
select: HTMLSelectElement
small: HTMLElement
source: HTMLSourceElement
span: HTMLSpanElement
strong: HTMLElement
style: HTMLStyleElement
sub: HTMLElement
summary: HTMLElement
sup: HTMLElement
table: HTMLTableElement
tbody: HTMLTableSectionElement
td: HTMLTableDataCellElement
textarea: HTMLTextAreaElement
tfoot: HTMLTableSectionElement
th: HTMLTableHeaderCellElement
thead: HTMLTableSectionElement
time: HTMLElement
title: HTMLTitleElement
tr: HTMLTableRowElement
track: HTMLTrackElement
u: HTMLElement
ul: HTMLUListElement
var: HTMLElement
video: HTMLVideoElement
wbr: HTMLElement
}
export interface SVGDomTags {
circle: SVGCircleElement
clipPath: SVGClipPathElement
defs: SVGDefsElement
ellipse: SVGEllipseElement
g: SVGGElement
image: SVGImageElement
line: SVGLineElement
linearGradient: SVGLinearGradientElement
mask: SVGMaskElement
path: SVGPathElement
pattern: SVGPatternElement
polygon: SVGPolygonElement
polyline: SVGPolylineElement
radialGradient: SVGRadialGradientElement
rect: SVGRectElement
stop: SVGStopElement
svg: SVGSVGElement
text: SVGTextElement
tspan: SVGTSpanElement
}