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