@kuma-ui/core
Version:
🐻 Kuma UI is a utility-first, zero-runtime CSS-in-JS library that offers an outstanding developer experience and optimized performance.
194 lines (191 loc) • 7.42 kB
TypeScript
import { ComponentType } from 'react';
type StyledComponentProps<T> = T extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[T] : T extends ComponentType<infer P> ? P : never;
type StyledComponent<T extends keyof JSX.IntrinsicElements> = React.FC<React.ComponentProps<T>>;
type StyleTemplate<T extends keyof JSX.IntrinsicElements> = (strings: TemplateStringsArray) => StyledComponent<T>;
type StyledFn = {
<T extends keyof JSX.IntrinsicElements>(name: T): StyleTemplate<T>;
<T extends keyof JSX.IntrinsicElements>(Component: StyledComponent<T>): StyleTemplate<T>;
};
/**
* Kuma UI's `styled` API allows you to create styled React components using tagged template literals. This makes it a familiar and comfortable choice for developers who have worked with libraries like styled-components or Emotion.
*/
declare const styled: StyledFn & {
a: StyleTemplate<"a">;
abbr: StyleTemplate<"abbr">;
address: StyleTemplate<"address">;
area: StyleTemplate<"area">;
article: StyleTemplate<"article">;
aside: StyleTemplate<"aside">;
audio: StyleTemplate<"audio">;
b: StyleTemplate<"b">;
base: StyleTemplate<"base">;
bdi: StyleTemplate<"bdi">;
bdo: StyleTemplate<"bdo">;
big: StyleTemplate<"big">;
blockquote: StyleTemplate<"blockquote">;
body: StyleTemplate<"body">;
br: StyleTemplate<"br">;
button: StyleTemplate<"button">;
canvas: StyleTemplate<"canvas">;
caption: StyleTemplate<"caption">;
center: StyleTemplate<"center">;
cite: StyleTemplate<"cite">;
code: StyleTemplate<"code">;
col: StyleTemplate<"col">;
colgroup: StyleTemplate<"colgroup">;
data: StyleTemplate<"data">;
datalist: StyleTemplate<"datalist">;
dd: StyleTemplate<"dd">;
del: StyleTemplate<"del">;
details: StyleTemplate<"details">;
dfn: StyleTemplate<"dfn">;
dialog: StyleTemplate<"dialog">;
div: StyleTemplate<"div">;
dl: StyleTemplate<"dl">;
dt: StyleTemplate<"dt">;
em: StyleTemplate<"em">;
embed: StyleTemplate<"embed">;
fieldset: StyleTemplate<"fieldset">;
figcaption: StyleTemplate<"figcaption">;
figure: StyleTemplate<"figure">;
footer: StyleTemplate<"footer">;
form: StyleTemplate<"form">;
h1: StyleTemplate<"h1">;
h2: StyleTemplate<"h2">;
h3: StyleTemplate<"h3">;
h4: StyleTemplate<"h4">;
h5: StyleTemplate<"h5">;
h6: StyleTemplate<"h6">;
head: StyleTemplate<"head">;
header: StyleTemplate<"header">;
hgroup: StyleTemplate<"hgroup">;
hr: StyleTemplate<"hr">;
html: StyleTemplate<"html">;
i: StyleTemplate<"i">;
iframe: StyleTemplate<"iframe">;
img: StyleTemplate<"img">;
input: StyleTemplate<"input">;
ins: StyleTemplate<"ins">;
kbd: StyleTemplate<"kbd">;
keygen: StyleTemplate<"keygen">;
label: StyleTemplate<"label">;
legend: StyleTemplate<"legend">;
li: StyleTemplate<"li">;
link: StyleTemplate<"link">;
main: StyleTemplate<"main">;
map: StyleTemplate<"map">;
mark: StyleTemplate<"mark">;
menu: StyleTemplate<"menu">;
menuitem: StyleTemplate<"menuitem">;
meta: StyleTemplate<"meta">;
meter: StyleTemplate<"meter">;
nav: StyleTemplate<"nav">;
noindex: StyleTemplate<"noindex">;
noscript: StyleTemplate<"noscript">;
object: StyleTemplate<"object">;
ol: StyleTemplate<"ol">;
optgroup: StyleTemplate<"optgroup">;
option: StyleTemplate<"option">;
output: StyleTemplate<"output">;
p: StyleTemplate<"p">;
param: StyleTemplate<"param">;
picture: StyleTemplate<"picture">;
pre: StyleTemplate<"pre">;
progress: StyleTemplate<"progress">;
q: StyleTemplate<"q">;
rp: StyleTemplate<"rp">;
rt: StyleTemplate<"rt">;
ruby: StyleTemplate<"ruby">;
s: StyleTemplate<"s">;
samp: StyleTemplate<"samp">;
search: StyleTemplate<"search">;
slot: StyleTemplate<"slot">;
script: StyleTemplate<"script">;
section: StyleTemplate<"section">;
select: StyleTemplate<"select">;
small: StyleTemplate<"small">;
source: StyleTemplate<"source">;
span: StyleTemplate<"span">;
strong: StyleTemplate<"strong">;
style: StyleTemplate<"style">;
sub: StyleTemplate<"sub">;
summary: StyleTemplate<"summary">;
sup: StyleTemplate<"sup">;
table: StyleTemplate<"table">;
template: StyleTemplate<"template">;
tbody: StyleTemplate<"tbody">;
td: StyleTemplate<"td">;
textarea: StyleTemplate<"textarea">;
tfoot: StyleTemplate<"tfoot">;
th: StyleTemplate<"th">;
thead: StyleTemplate<"thead">;
time: StyleTemplate<"time">;
title: StyleTemplate<"title">;
tr: StyleTemplate<"tr">;
track: StyleTemplate<"track">;
u: StyleTemplate<"u">;
ul: StyleTemplate<"ul">;
var: StyleTemplate<"var">;
video: StyleTemplate<"video">;
wbr: StyleTemplate<"wbr">;
webview: StyleTemplate<"webview">;
svg: StyleTemplate<"svg">;
animate: StyleTemplate<"animate">;
animateMotion: StyleTemplate<"animateMotion">;
animateTransform: StyleTemplate<"animateTransform">;
circle: StyleTemplate<"circle">;
clipPath: StyleTemplate<"clipPath">;
defs: StyleTemplate<"defs">;
desc: StyleTemplate<"desc">;
ellipse: StyleTemplate<"ellipse">;
feBlend: StyleTemplate<"feBlend">;
feColorMatrix: StyleTemplate<"feColorMatrix">;
feComponentTransfer: StyleTemplate<"feComponentTransfer">;
feComposite: StyleTemplate<"feComposite">;
feConvolveMatrix: StyleTemplate<"feConvolveMatrix">;
feDiffuseLighting: StyleTemplate<"feDiffuseLighting">;
feDisplacementMap: StyleTemplate<"feDisplacementMap">;
feDistantLight: StyleTemplate<"feDistantLight">;
feDropShadow: StyleTemplate<"feDropShadow">;
feFlood: StyleTemplate<"feFlood">;
feFuncA: StyleTemplate<"feFuncA">;
feFuncB: StyleTemplate<"feFuncB">;
feFuncG: StyleTemplate<"feFuncG">;
feFuncR: StyleTemplate<"feFuncR">;
feGaussianBlur: StyleTemplate<"feGaussianBlur">;
feImage: StyleTemplate<"feImage">;
feMerge: StyleTemplate<"feMerge">;
feMergeNode: StyleTemplate<"feMergeNode">;
feMorphology: StyleTemplate<"feMorphology">;
feOffset: StyleTemplate<"feOffset">;
fePointLight: StyleTemplate<"fePointLight">;
feSpecularLighting: StyleTemplate<"feSpecularLighting">;
feSpotLight: StyleTemplate<"feSpotLight">;
feTile: StyleTemplate<"feTile">;
feTurbulence: StyleTemplate<"feTurbulence">;
filter: StyleTemplate<"filter">;
foreignObject: StyleTemplate<"foreignObject">;
g: StyleTemplate<"g">;
image: StyleTemplate<"image">;
line: StyleTemplate<"line">;
linearGradient: StyleTemplate<"linearGradient">;
marker: StyleTemplate<"marker">;
mask: StyleTemplate<"mask">;
metadata: StyleTemplate<"metadata">;
mpath: StyleTemplate<"mpath">;
path: StyleTemplate<"path">;
pattern: StyleTemplate<"pattern">;
polygon: StyleTemplate<"polygon">;
polyline: StyleTemplate<"polyline">;
radialGradient: StyleTemplate<"radialGradient">;
rect: StyleTemplate<"rect">;
stop: StyleTemplate<"stop">;
switch: StyleTemplate<"switch">;
symbol: StyleTemplate<"symbol">;
text: StyleTemplate<"text">;
textPath: StyleTemplate<"textPath">;
tspan: StyleTemplate<"tspan">;
use: StyleTemplate<"use">;
view: StyleTemplate<"view">;
};
export { StyleTemplate, StyledComponent, StyledComponentProps, StyledFn, styled };