Repository URL to install this package:
Version:
1.2.13 ▾
|
import { ComponentType, Component, Attributes, ComponentState } from 'react';
type ThemeArg = any;
export declare type FalseyValue = undefined | null | false;
export declare type Interpolation<P> = FlattenInterpolation<P> | ReadonlyArray<FlattenInterpolation<P> | ReadonlyArray<FlattenInterpolation<P>>>;
export declare type FlattenInterpolation<P> = InterpolationValue | InterpolationFunction<P>;
export declare type InterpolationValue = string | number | Styles | FalseyValue | DefaultStyledEh;
export declare type SimpleInterpolation = InterpolationValue | ReadonlyArray<InterpolationValue | ReadonlyArray<InterpolationValue>>;
export interface Styles {
[ruleOrSelector: string]: string | number | Styles;
}
export interface InterpolationFunction<P> {
(props: P): Interpolation<P>;
}
export interface ThemedCssFunction<T> {
(strings: TemplateStringsArray, ...interpolations: SimpleInterpolation[]): InterpolationValue[];
<P>(strings: TemplateStringsArray, ...interpolations: Interpolation<ThemedStyledProps<P, T>>[]): FlattenInterpolation<ThemedStyledProps<P, T>>[];
}
type Diff<T extends string, U extends string> = ({
[P in T]: P;
} & {
[P in U]: never;
} & {
[x: string]: never;
})[T];
type Omit<T, K extends keyof T> = Pick<T, Diff<keyof T, K>>;
type WithOptionalTheme<P extends {
theme?: T;
}, T> = Omit<P, 'theme'> & {
theme?: T;
};
type Attrs<P, A extends Partial<P>, T> = {
[K in keyof A]: ((props: ThemedStyledProps<P, T>) => A[K]) | A[K];
};
export interface ThemedStyledFunction<P, T, O = P> {
(strings: TemplateStringsArray, ...interpolations: Interpolation<ThemedStyledProps<P, T>>[]): BaseStylEh<P, T, O>;
<U>(strings: TemplateStringsArray, ...interpolations: Interpolation<ThemedStyledProps<P & U, T>>[]): BaseStylEh<P & U, T, O & U>;
attrs<U, A extends Partial<P & U> = {}>(attrs: Attrs<P & U, A, T>): ThemedStyledFunction<P & A & U, T, O & U>;
}
export interface ThemeProps<T> {
theme?: T;
}
export declare type ThemedStyledProps<P, T> = P & ThemeProps<T>;
export declare type StyledProps<P> = ThemedStyledProps<P, any>;
export declare type StyledFunction<P> = ThemedStyledFunction<P, any>;
export declare type ThemedOuterStyledProps<P, T> = P & {
theme?: T;
innerRef?: (instance: any) => void;
};
export declare type OuterStyledProps<P> = ThemedOuterStyledProps<P, any>;
export declare type StylesOrClassName = string | string[] | TemplateStringsArray;
export interface DefaultProps extends Attributes {
}
export interface DefaultState extends ComponentState {
}
export interface BaseStylEh<Props, State = any, O = Props> extends Component<Props, State> {
new (props: Props, context?: any): Component<Props, State>;
(styles?: StylesOrClassName): BaseStylEh<Props, State>;
(strings: TemplateStringsArray, ...interpolations: Interpolation<ThemedStyledProps<Props, State>>[]): BaseStylEh<Props, State>;
<P>(strings: TemplateStringsArray, ...interpolations: Interpolation<ThemedStyledProps<P | Props, State>>[]): BaseStylEh<P>;
<P, TTag extends keyof JSX.IntrinsicElements>(tag: TTag): ThemedStyledFunction<P, BaseStylEh<Props, State>, P & JSX.IntrinsicElements[TTag]>;
<P, M>(component: BaseStylEh<P, Props, M>): ThemedStyledFunction<P, BaseStylEh<Props, State>, M>;
<P extends {
[prop: string]: any;
theme?: BaseStylEh<Props, State>;
}>(component: ComponentType<P>): ThemedStyledFunction<P, BaseStylEh<Props, State>, WithOptionalTheme<P, BaseStylEh<Props, State>>>;
attrs(props: Props): StyledEh<Props, State>;
className(className?: string): StyledEh<Props, State>;
qa(dataQa?: string): StyledEh<Props, State>;
extend: StyledEh<Props, State>;
withComponent: (component: StyledEh<Props, State>) => StyledEh<Props, State>;
withTheme<StyledClass extends {
theme?: ThemeArg;
}>(component: StyledClass): BaseStylEh<Props, State>;
css(css: TemplateStringsArray, ...interpolations: SimpleInterpolation[]): InterpolationValue;
keyframes(strings: TemplateStringsArray, ...interpolations: SimpleInterpolation[]): string;
injectGlobal(strings: TemplateStringsArray, ...interpolations: SimpleInterpolation[]): void;
p: StyledEh<Props, State>;
ul: StyledEh<Props, State>;
ol: StyledEh<Props, State>;
li: StyledEh<Props, State>;
aside: StyledEh<Props, State>;
figure: StyledEh<Props, State>;
figcaption: StyledEh<Props, State>;
img: StyledEh<Props, State>;
picture: StyledEh<Props, State>;
main: StyledEh<Props, State>;
article: StyledEh<Props, State>;
section: StyledEh<Props, State>;
nav: StyledEh<Props, State>;
footer: StyledEh<Props, State>;
form: StyledEh<Props, State>;
textarea: StyledEh<Props, State>;
input: StyledEh<Props, State>;
label: StyledEh<Props, State>;
legend: StyledEh<Props, State>;
fieldset: StyledEh<Props, State>;
button: StyledEh<Props, State>;
select: StyledEh<Props, State>;
span: StyledEh<Props, State>;
div: StyledEh<Props, State>;
header: StyledEh<Props, State>;
h1: StyledEh<Props, State>;
h2: StyledEh<Props, State>;
h3: StyledEh<Props, State>;
h4: StyledEh<Props, State>;
h5: StyledEh<Props, State>;
h6: StyledEh<Props, State>;
p(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
ul(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
ol(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
li(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
aside(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
figure(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
figcaption(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
img(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
picture(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
main(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
article(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
section(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
nav(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
footer(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
form(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
textarea(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
input(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
label(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
legend(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
fieldset(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
button(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
select(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
span(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
div(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
header(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
h1(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
h2(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
h3(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
h4(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
h5(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
h6(cssOrClass: StylesOrClassName): StyledEh<Props, State>;
}
export declare type StyledEh<P, S = any> = BaseStylEh<P, S>;
export declare type DefaultStyledEh<P = any, S = any> = BaseStylEh<P, S>;
export declare type Styleh<P, S = any> = BaseStylEh<P, S>;
export declare type WithComponent<Props = any, State = any> = (component: StyledEh<Props, State> | ComponentType<Props>) => StyledEh<Props, State>;
export declare type TagName = '' | 'textarea' | 'ul' | 'ol' | 'li' | 'aside' | 'figure' | 'figcaption' | 'img' | 'picture' | 'main' | 'application' | 'article' | 'section' | 'address' | 'abbr' | 'acronym' | 'summary' | 'nav' | 'menu' | 'footer' | 'header' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'form' | 'input' | 'label' | 'legend' | 'fieldset' | 'list' | 'button' | 'select' | 'progress' | 'meter' | 'link' | 'script' | 'meta' | 'title' | 'style' | 'time' | 'video' | 'media' | 'audio' | 'span' | 'div' | 'p' | 'small';
export declare type styled = StyledEh<any>;
export default StyledEh;
declare global {
var styled: StyledEh<any>;
}