1
- import type { DashThemes , DashTokens , Falsy , StyleCallback , StyleObject , Styles } from "@dash-ui/styles" ;
1
+ import type {
2
+ DashThemes ,
3
+ DashTokens ,
4
+ Falsy ,
5
+ StyleCallback ,
6
+ StyleObject ,
7
+ Styles ,
8
+ StyleValue ,
9
+ } from "@dash-ui/styles" ;
2
10
import * as React from "react" ;
3
11
/**
4
12
* A component for creating an inline `<style>` tag that is unmounted when
@@ -8,19 +16,25 @@ import * as React from "react";
8
16
* @param root0.css
9
17
* @param root0.styles
10
18
*/
11
- export declare function Inline < Tokens extends DashTokens , Themes extends DashThemes > ( { styles, css : input , } : InlineProps < Tokens , Themes > ) : JSX . Element | null ;
12
- export interface InlineProps < Tokens extends DashTokens , Themes extends DashThemes > {
13
- /**
14
- * A Dash `styles` instance
15
- */
16
- styles : Styles < Tokens , Themes > ;
17
- /**
18
- * The CSS you want to inline in the DOM.
19
- *
20
- * @example
21
- * const Component => <Inline css={({color}) => `html { color: ${color.text}; }` }/>
22
- */
23
- css : string | StyleCallback < Tokens , Themes > | StyleObject ;
19
+ export declare function Inline <
20
+ Tokens extends DashTokens ,
21
+ Themes extends DashThemes
22
+ > ( { styles, css : input } : InlineProps < Tokens , Themes > ) : JSX . Element | null ;
23
+ export interface InlineProps <
24
+ Tokens extends DashTokens ,
25
+ Themes extends DashThemes
26
+ > {
27
+ /**
28
+ * A Dash `styles` instance
29
+ */
30
+ styles : Styles < Tokens , Themes > ;
31
+ /**
32
+ * The CSS you want to inline in the DOM.
33
+ *
34
+ * @example
35
+ * const Component => <Inline css={({color}) => `html { color: ${color.text}; }` }/>
36
+ */
37
+ css : string | StyleCallback < Tokens , Themes > | StyleObject ;
24
38
}
25
39
/**
26
40
* A hook for inserting transient global styles into the DOM. These styles
@@ -43,7 +57,21 @@ export interface InlineProps<Tokens extends DashTokens, Themes extends DashTheme
43
57
* )
44
58
* }
45
59
*/
46
- export declare function useGlobal < Tokens extends DashTokens , Themes extends DashThemes > ( styles : Styles < Tokens , Themes > , value : string | StyleCallback < Tokens , Themes > | StyleObject | null | 0 | undefined | false , deps ?: React . DependencyList ) : void ;
60
+ export declare function useGlobal <
61
+ Tokens extends DashTokens ,
62
+ Themes extends DashThemes
63
+ > (
64
+ styles : Styles < Tokens , Themes > ,
65
+ value :
66
+ | string
67
+ | StyleCallback < Tokens , Themes >
68
+ | StyleObject
69
+ | null
70
+ | 0
71
+ | undefined
72
+ | false ,
73
+ deps ?: React . DependencyList
74
+ ) : void ;
47
75
/**
48
76
* A hook for inserting transient CSS tokens into the DOM. These tokens
49
77
* will be injected when the hook mounts and flushed when the hook unmounts.
@@ -62,7 +90,14 @@ export declare function useGlobal<Tokens extends DashTokens, Themes extends Dash
62
90
* )
63
91
* }
64
92
*/
65
- export declare function useTokens < Tokens extends DashTokens , Themes extends DashThemes > ( styles : Styles < Tokens , Themes > , value : Parameters < Styles < Tokens , Themes > [ "insertTokens" ] > [ 0 ] | Falsy , deps ?: React . DependencyList ) : void ;
93
+ export declare function useTokens <
94
+ Tokens extends DashTokens ,
95
+ Themes extends DashThemes
96
+ > (
97
+ styles : Styles < Tokens , Themes > ,
98
+ value : Parameters < Styles < Tokens , Themes > [ "insertTokens" ] > [ 0 ] | Falsy ,
99
+ deps ?: React . DependencyList
100
+ ) : void ;
66
101
/**
67
102
* A hook for inserting transient CSS theme tokens into the DOM. These tokens
68
103
* will be injected when the hook mounts and flushed when the hook unmounts.
@@ -83,4 +118,51 @@ export declare function useTokens<Tokens extends DashTokens, Themes extends Dash
83
118
* )
84
119
* }
85
120
*/
86
- export declare function useThemes < Tokens extends DashTokens , Themes extends DashThemes > ( styles : Styles < Tokens , Themes > , value : Parameters < Styles < Tokens , Themes > [ "insertThemes" ] > [ 0 ] | Falsy , deps ?: React . DependencyList ) : void ;
121
+ export declare function useThemes <
122
+ Tokens extends DashTokens ,
123
+ Themes extends DashThemes
124
+ > (
125
+ styles : Styles < Tokens , Themes > ,
126
+ value : Parameters < Styles < Tokens , Themes > [ "insertThemes" ] > [ 0 ] | Falsy ,
127
+ deps ?: React . DependencyList
128
+ ) : void ;
129
+ /**
130
+ * A hook for performantly and reliably inserting CSS into the DOM in React 18 using the
131
+ * `useInsertionEffect` hook.
132
+ *
133
+ * @param styles - A Dash `styles` instance
134
+ * @param classNames - A map of class names to CSS generators
135
+ * @see https://github.com/reactwg/react-18/discussions/110
136
+ * @example
137
+ * ```tsx
138
+ * const classes = useCSS(styles, {
139
+ * root: styles.one({ display: 'flex' })
140
+ * })
141
+ *
142
+ * return <div className={classes.root}/>
143
+ * ```
144
+ */
145
+ export declare function useCSS <
146
+ ClassNames extends string ,
147
+ Tokens extends DashTokens ,
148
+ Themes extends DashThemes
149
+ > (
150
+ styles : Styles < Tokens , Themes > ,
151
+ classNames : ClassNamesStyleMap < ClassNames , Tokens , Themes >
152
+ ) : UseCSSResult < ClassNames > ;
153
+ export declare type ClassNamesStyleMap <
154
+ ClassNames extends string ,
155
+ Tokens extends DashTokens ,
156
+ Themes extends DashThemes
157
+ > = Record <
158
+ ClassNames ,
159
+ | {
160
+ ( ) : string ;
161
+ css ( ) : string ;
162
+ }
163
+ | StyleValue < Tokens , Themes >
164
+ > ;
165
+ export declare type UseCSSResult < ClassNames extends string > = Record <
166
+ ClassNames ,
167
+ string
168
+ > ;
0 commit comments