Skip to content

Commit dd8d326

Browse files
chore(release): 1.1.0
# [1.1.0](v1.0.1...v1.1.0) (2022-09-02) ### Features * add a useCSS hook ([#13](#13)) ([5fd1ed9](5fd1ed9))
1 parent 5fd1ed9 commit dd8d326

File tree

3 files changed

+106
-18
lines changed

3 files changed

+106
-18
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# [1.1.0](https://github.com/dash-ui/react/compare/v1.0.1...v1.1.0) (2022-09-02)
2+
3+
### Features
4+
5+
- add a useCSS hook ([#13](https://github.com/dash-ui/react/issues/13)) ([5fd1ed9](https://github.com/dash-ui/react/commit/5fd1ed9790ad1828fda2bc963814713563b5f950))
6+
17
## [1.0.1](https://github.com/dash-ui/react/compare/v1.0.0...v1.0.1) (2022-08-18)
28

39
### Bug Fixes

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@dash-ui/react",
3-
"version": "1.0.1",
3+
"version": "1.1.0",
44
"description": "React components and hooks for dash-ui",
55
"license": "MIT",
66
"author": "Jared Lunde <[email protected]> (https://jaredLunde.com)",

types/index.d.ts

Lines changed: 99 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
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";
210
import * 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

Comments
 (0)