forked from cssinjs/jss
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.d.ts
More file actions
119 lines (102 loc) · 2.88 KB
/
index.d.ts
File metadata and controls
119 lines (102 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import {ComponentType, ReactNode, Context, RefObject} from 'react'
import {
CreateGenerateId,
GenerateId,
Jss,
SheetsRegistry,
Styles,
StyleSheetFactoryOptions,
CreateGenerateIdOptions,
Classes
} from 'jss'
import {createTheming, useTheme, withTheme, ThemeProvider, Theming} from 'theming'
declare const jss: Jss
declare const createGenerateId: CreateGenerateId
declare const JssProvider: ComponentType<{
jss?: Jss
registry?: SheetsRegistry
generateId?: GenerateId
classNamePrefix?: string
disableStylesGeneration?: boolean
children: ReactNode
id?: CreateGenerateIdOptions
}>
interface Managers {
[key: number]: StyleSheet
}
declare const JssContext: Context<{
jss?: Jss
registry?: SheetsRegistry
managers?: Managers
sheetOptions: StyleSheetFactoryOptions
disableStylesGeneration: boolean
}>
type ClassesForStyles<
S extends Styles<any, any, any> | ((theme: any) => Styles<any, any, undefined>)
> = Classes<S extends (theme: any) => Styles<any, any, undefined> ? keyof ReturnType<S> : keyof S>
interface WithStylesProps<
S extends Styles<any, any, any> | ((theme: any) => Styles<any, any, undefined>)
> {
classes: ClassesForStyles<S>
}
/**
* @deprecated Please use `WithStylesProps` instead
*/
type WithStyles<
S extends Styles<any, any, any> | ((theme: any) => Styles<any, any, undefined>)
> = WithStylesProps<S>
declare global {
namespace Jss {
/** You can use the global `Jss.Theme` interface to define a project-wide default theme. */
export interface Theme {}
}
}
export type DefaultTheme = Jss.Theme
interface BaseOptions<Theme = DefaultTheme> extends StyleSheetFactoryOptions {
index?: number
theming?: Theming<Theme>
}
interface WithStylesOptions extends BaseOptions {
injectTheme?: boolean
jss?: Jss
}
interface CreateUseStylesOptions<Theme = DefaultTheme> extends BaseOptions<Theme> {
name?: string
}
declare function createUseStyles<C extends string = string, Props = unknown, Theme = DefaultTheme>(
styles: Styles<C, Props, Theme> | ((theme: Theme) => Styles<C, Props, undefined>),
options?: CreateUseStylesOptions<Theme>
): (data?: Props & {theme?: Theme}) => Classes<C>
type GetProps<C> = C extends ComponentType<infer P> ? P : never
declare function withStyles<ClassNames extends string | number | symbol, Props, Theme>(
styles:
| Styles<ClassNames, Props, Theme>
| ((theme: Theme) => Styles<ClassNames, Props, undefined>),
options?: WithStylesOptions
): <C>(
comp: C
) => ComponentType<
JSX.LibraryManagedAttributes<
C,
Omit<GetProps<C>, 'classes'> & {
classes?: Partial<ClassesForStyles<typeof styles>>
innerRef?: RefObject<any> | ((instance: any) => void)
}
>
>
export {
SheetsRegistry,
jss,
createGenerateId,
JssProvider,
WithStylesProps,
ThemeProvider,
withTheme,
createTheming,
Theming,
useTheme,
JssContext,
createUseStyles,
Styles
}
export default withStyles