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" ;
210import * as React from "react" ;
311/**
412 * A component for creating an inline `<style>` tag that is unmounted when
@@ -8,19 +16,25 @@ import * as React from "react";
816 * @param root0.css
917 * @param root0.styles
1018 */
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 ;
2438}
2539/**
2640 * 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
4357 * )
4458 * }
4559 */
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 ;
4775/**
4876 * A hook for inserting transient CSS tokens into the DOM. These tokens
4977 * 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
6290 * )
6391 * }
6492 */
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 ;
66101/**
67102 * A hook for inserting transient CSS theme tokens into the DOM. These tokens
68103 * 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
83118 * )
84119 * }
85120 */
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