@tenphi/tasty 0.0.0-snapshot.bbd10c7 → 0.0.0-snapshot.bbfcd75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +196 -140
- package/dist/babel-Zs1Q03qt.d.ts +83 -0
- package/dist/chunks/async-storage-CG5HnUT5.js +20 -0
- package/dist/chunks/async-storage-CG5HnUT5.js.map +1 -0
- package/dist/chunks/build-config-CUQVwdWF.js +42 -0
- package/dist/chunks/build-config-CUQVwdWF.js.map +1 -0
- package/dist/chunks/collector-B0LTHw6Z.js +208 -0
- package/dist/chunks/collector-B0LTHw6Z.js.map +1 -0
- package/dist/chunks/config-engine-C3pF9EK9.js +267 -0
- package/dist/chunks/config-engine-C3pF9EK9.js.map +1 -0
- package/dist/chunks/css-definitions-D_it4XZH.js +875 -0
- package/dist/chunks/css-definitions-D_it4XZH.js.map +1 -0
- package/dist/chunks/css-resources-BN8apgxt.js +142 -0
- package/dist/chunks/css-resources-BN8apgxt.js.map +1 -0
- package/dist/{debug.js → chunks/debug-C9LeNVoJ.js} +187 -139
- package/dist/chunks/debug-C9LeNVoJ.js.map +1 -0
- package/dist/chunks/dsl-C5yuAn41.js +1373 -0
- package/dist/chunks/dsl-C5yuAn41.js.map +1 -0
- package/dist/chunks/hydration-TRcz5vnk.js +41 -0
- package/dist/chunks/hydration-TRcz5vnk.js.map +1 -0
- package/dist/chunks/react-runtime-O-OUrKLH.js +557 -0
- package/dist/chunks/react-runtime-O-OUrKLH.js.map +1 -0
- package/dist/chunks/runtime-engine-DvnE2g-E.js +2437 -0
- package/dist/chunks/runtime-engine-DvnE2g-E.js.map +1 -0
- package/dist/chunks/runtime-state-BTDqSYBk.js +127 -0
- package/dist/chunks/runtime-state-BTDqSYBk.js.map +1 -0
- package/dist/{utils/merge-styles.js → chunks/shared-utils-DWA4LjIa.js} +55 -55
- package/dist/chunks/shared-utils-DWA4LjIa.js.map +1 -0
- package/dist/chunks/style-engine-C1ECBZxR.js +5131 -0
- package/dist/chunks/style-engine-C1ECBZxR.js.map +1 -0
- package/dist/{zero/extractor.js → chunks/zero-engine-B6EnYcXY.js} +89 -82
- package/dist/chunks/zero-engine-B6EnYcXY.js.map +1 -0
- package/dist/collector-hl5KNH7k.d.ts +165 -0
- package/dist/config-DWL1ZYue.d.ts +1358 -0
- package/dist/core/index.d.ts +5 -34
- package/dist/core/index.js +9 -27
- package/dist/index-D9N9GV24.d.ts +1947 -0
- package/dist/index.d.ts +5 -51
- package/dist/index.js +11 -36
- package/dist/{utils/merge-styles.d.ts → merge-styles-C_oMoJVd.d.ts} +3 -3
- package/dist/ssr/astro-client.js +6 -0
- package/dist/ssr/astro-client.js.map +1 -0
- package/dist/ssr/astro-middleware-extract-static.d.ts +11 -0
- package/dist/ssr/astro-middleware-extract-static.js +9 -0
- package/dist/ssr/astro-middleware-extract-static.js.map +1 -0
- package/dist/ssr/astro-middleware-extract.d.ts +11 -0
- package/dist/ssr/astro-middleware-extract.js +9 -0
- package/dist/ssr/astro-middleware-extract.js.map +1 -0
- package/dist/ssr/astro-middleware-static.d.ts +18 -0
- package/dist/ssr/astro-middleware-static.js +7 -0
- package/dist/ssr/astro-middleware-static.js.map +1 -0
- package/dist/ssr/astro-middleware.d.ts +19 -0
- package/dist/ssr/astro-middleware.js +7 -0
- package/dist/ssr/astro-middleware.js.map +1 -0
- package/dist/ssr/astro.d.ts +117 -11
- package/dist/ssr/astro.js +204 -48
- package/dist/ssr/astro.js.map +1 -1
- package/dist/ssr/index.d.ts +37 -4
- package/dist/ssr/index.js +6 -6
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/next-config.d.ts +66 -0
- package/dist/ssr/next-config.js +124 -0
- package/dist/ssr/next-config.js.map +1 -0
- package/dist/ssr/next.d.ts +14 -5
- package/dist/ssr/next.js +31 -46
- package/dist/ssr/next.js.map +1 -1
- package/dist/static/index.d.ts +91 -5
- package/dist/static/index.js +31 -3
- package/dist/static/index.js.map +1 -0
- package/dist/static/inject.js.map +1 -1
- package/dist/types-jKZNpias.d.ts +1616 -0
- package/dist/zero/babel.d.ts +2 -182
- package/dist/zero/babel.js +82 -113
- package/dist/zero/babel.js.map +1 -1
- package/dist/zero/index.d.ts +81 -3
- package/dist/zero/index.js +2 -3
- package/dist/zero/next.d.ts +1 -1
- package/dist/zero/next.js +0 -31
- package/dist/zero/next.js.map +1 -1
- package/docs/README.md +20 -12
- package/docs/adoption.md +59 -32
- package/docs/ai-agents.md +229 -0
- package/docs/comparison.md +76 -48
- package/docs/configuration.md +566 -69
- package/docs/debug.md +37 -23
- package/docs/design-system.md +63 -32
- package/docs/dsl.md +527 -179
- package/docs/getting-started.md +62 -41
- package/docs/injector.md +157 -51
- package/docs/methodology.md +69 -37
- package/docs/migration-v3.md +285 -0
- package/docs/pipeline.md +744 -0
- package/docs/plugins.md +353 -0
- package/docs/{runtime.md → react-api.md} +176 -67
- package/docs/runtime-benchmarks.md +377 -0
- package/docs/ssr.md +350 -94
- package/docs/styles.md +108 -27
- package/docs/tasty-static.md +149 -87
- package/package.json +121 -23
- package/tasty.config.ts +6 -0
- package/dist/_virtual/_rolldown/runtime.js +0 -7
- package/dist/chunks/cacheKey.js +0 -77
- package/dist/chunks/cacheKey.js.map +0 -1
- package/dist/chunks/definitions.d.ts +0 -37
- package/dist/chunks/definitions.js +0 -258
- package/dist/chunks/definitions.js.map +0 -1
- package/dist/chunks/index.d.ts +0 -1
- package/dist/chunks/renderChunk.d.ts +0 -1
- package/dist/chunks/renderChunk.js +0 -59
- package/dist/chunks/renderChunk.js.map +0 -1
- package/dist/compute-styles.d.ts +0 -31
- package/dist/compute-styles.js +0 -356
- package/dist/compute-styles.js.map +0 -1
- package/dist/config.d.ts +0 -372
- package/dist/config.js +0 -507
- package/dist/config.js.map +0 -1
- package/dist/counter-style/index.js +0 -51
- package/dist/counter-style/index.js.map +0 -1
- package/dist/debug.d.ts +0 -89
- package/dist/debug.js.map +0 -1
- package/dist/font-face/index.js +0 -63
- package/dist/font-face/index.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -7
- package/dist/hooks/useCounterStyle.d.ts +0 -50
- package/dist/hooks/useCounterStyle.js +0 -45
- package/dist/hooks/useCounterStyle.js.map +0 -1
- package/dist/hooks/useFontFace.d.ts +0 -43
- package/dist/hooks/useFontFace.js +0 -69
- package/dist/hooks/useFontFace.js.map +0 -1
- package/dist/hooks/useGlobalStyles.d.ts +0 -30
- package/dist/hooks/useGlobalStyles.js +0 -77
- package/dist/hooks/useGlobalStyles.js.map +0 -1
- package/dist/hooks/useKeyframes.d.ts +0 -56
- package/dist/hooks/useKeyframes.js +0 -63
- package/dist/hooks/useKeyframes.js.map +0 -1
- package/dist/hooks/useProperty.d.ts +0 -79
- package/dist/hooks/useProperty.js +0 -108
- package/dist/hooks/useProperty.js.map +0 -1
- package/dist/hooks/useRawCSS.d.ts +0 -53
- package/dist/hooks/useRawCSS.js +0 -34
- package/dist/hooks/useRawCSS.js.map +0 -1
- package/dist/hooks/useStyles.d.ts +0 -40
- package/dist/hooks/useStyles.js +0 -29
- package/dist/hooks/useStyles.js.map +0 -1
- package/dist/injector/index.d.ts +0 -166
- package/dist/injector/index.js +0 -166
- package/dist/injector/index.js.map +0 -1
- package/dist/injector/injector.d.ts +0 -166
- package/dist/injector/injector.js +0 -464
- package/dist/injector/injector.js.map +0 -1
- package/dist/injector/sheet-manager.d.ts +0 -136
- package/dist/injector/sheet-manager.js +0 -733
- package/dist/injector/sheet-manager.js.map +0 -1
- package/dist/injector/types.d.ts +0 -204
- package/dist/keyframes/index.js +0 -206
- package/dist/keyframes/index.js.map +0 -1
- package/dist/parser/classify.js +0 -319
- package/dist/parser/classify.js.map +0 -1
- package/dist/parser/const.js +0 -60
- package/dist/parser/const.js.map +0 -1
- package/dist/parser/lru.js +0 -109
- package/dist/parser/lru.js.map +0 -1
- package/dist/parser/parser.d.ts +0 -25
- package/dist/parser/parser.js +0 -115
- package/dist/parser/parser.js.map +0 -1
- package/dist/parser/tokenizer.js +0 -69
- package/dist/parser/tokenizer.js.map +0 -1
- package/dist/parser/types.d.ts +0 -51
- package/dist/parser/types.js +0 -46
- package/dist/parser/types.js.map +0 -1
- package/dist/pipeline/conditions.d.ts +0 -134
- package/dist/pipeline/conditions.js +0 -406
- package/dist/pipeline/conditions.js.map +0 -1
- package/dist/pipeline/exclusive.js +0 -230
- package/dist/pipeline/exclusive.js.map +0 -1
- package/dist/pipeline/index.d.ts +0 -55
- package/dist/pipeline/index.js +0 -708
- package/dist/pipeline/index.js.map +0 -1
- package/dist/pipeline/materialize.js +0 -1103
- package/dist/pipeline/materialize.js.map +0 -1
- package/dist/pipeline/parseStateKey.d.ts +0 -15
- package/dist/pipeline/parseStateKey.js +0 -446
- package/dist/pipeline/parseStateKey.js.map +0 -1
- package/dist/pipeline/simplify.js +0 -515
- package/dist/pipeline/simplify.js.map +0 -1
- package/dist/pipeline/warnings.js +0 -18
- package/dist/pipeline/warnings.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -2
- package/dist/plugins/okhsl-plugin.d.ts +0 -35
- package/dist/plugins/okhsl-plugin.js +0 -97
- package/dist/plugins/okhsl-plugin.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -76
- package/dist/properties/index.js +0 -222
- package/dist/properties/index.js.map +0 -1
- package/dist/properties/property-type-resolver.d.ts +0 -24
- package/dist/properties/property-type-resolver.js +0 -90
- package/dist/properties/property-type-resolver.js.map +0 -1
- package/dist/ssr/async-storage.d.ts +0 -17
- package/dist/ssr/async-storage.js +0 -34
- package/dist/ssr/async-storage.js.map +0 -1
- package/dist/ssr/collect-auto-properties.js +0 -39
- package/dist/ssr/collect-auto-properties.js.map +0 -1
- package/dist/ssr/collector.d.ts +0 -102
- package/dist/ssr/collector.js +0 -219
- package/dist/ssr/collector.js.map +0 -1
- package/dist/ssr/format-global-rules.js +0 -22
- package/dist/ssr/format-global-rules.js.map +0 -1
- package/dist/ssr/format-keyframes.js +0 -69
- package/dist/ssr/format-keyframes.js.map +0 -1
- package/dist/ssr/format-property.js +0 -49
- package/dist/ssr/format-property.js.map +0 -1
- package/dist/ssr/format-rules.js +0 -73
- package/dist/ssr/format-rules.js.map +0 -1
- package/dist/ssr/hydrate.d.ts +0 -22
- package/dist/ssr/hydrate.js +0 -49
- package/dist/ssr/hydrate.js.map +0 -1
- package/dist/ssr/ssr-collector-ref.js +0 -12
- package/dist/ssr/ssr-collector-ref.js.map +0 -1
- package/dist/states/index.d.ts +0 -49
- package/dist/states/index.js +0 -170
- package/dist/states/index.js.map +0 -1
- package/dist/static/tastyStatic.d.ts +0 -46
- package/dist/static/tastyStatic.js +0 -30
- package/dist/static/tastyStatic.js.map +0 -1
- package/dist/static/types.d.ts +0 -49
- package/dist/static/types.js +0 -24
- package/dist/static/types.js.map +0 -1
- package/dist/styles/border.d.ts +0 -25
- package/dist/styles/border.js +0 -120
- package/dist/styles/border.js.map +0 -1
- package/dist/styles/color.d.ts +0 -14
- package/dist/styles/color.js +0 -26
- package/dist/styles/color.js.map +0 -1
- package/dist/styles/const.js +0 -17
- package/dist/styles/const.js.map +0 -1
- package/dist/styles/createStyle.js +0 -79
- package/dist/styles/createStyle.js.map +0 -1
- package/dist/styles/dimension.js +0 -109
- package/dist/styles/dimension.js.map +0 -1
- package/dist/styles/directional.js +0 -133
- package/dist/styles/directional.js.map +0 -1
- package/dist/styles/display.d.ts +0 -30
- package/dist/styles/display.js +0 -73
- package/dist/styles/display.js.map +0 -1
- package/dist/styles/fade.d.ts +0 -15
- package/dist/styles/fade.js +0 -62
- package/dist/styles/fade.js.map +0 -1
- package/dist/styles/fill.d.ts +0 -42
- package/dist/styles/fill.js +0 -51
- package/dist/styles/fill.js.map +0 -1
- package/dist/styles/flow.d.ts +0 -16
- package/dist/styles/flow.js +0 -12
- package/dist/styles/flow.js.map +0 -1
- package/dist/styles/gap.d.ts +0 -31
- package/dist/styles/gap.js +0 -38
- package/dist/styles/gap.js.map +0 -1
- package/dist/styles/height.d.ts +0 -17
- package/dist/styles/height.js +0 -19
- package/dist/styles/height.js.map +0 -1
- package/dist/styles/index.d.ts +0 -1
- package/dist/styles/index.js +0 -8
- package/dist/styles/index.js.map +0 -1
- package/dist/styles/inset.d.ts +0 -24
- package/dist/styles/inset.js +0 -34
- package/dist/styles/inset.js.map +0 -1
- package/dist/styles/list.d.ts +0 -16
- package/dist/styles/list.js +0 -100
- package/dist/styles/list.js.map +0 -1
- package/dist/styles/margin.d.ts +0 -24
- package/dist/styles/margin.js +0 -32
- package/dist/styles/margin.js.map +0 -1
- package/dist/styles/outline.d.ts +0 -29
- package/dist/styles/outline.js +0 -55
- package/dist/styles/outline.js.map +0 -1
- package/dist/styles/padding.d.ts +0 -24
- package/dist/styles/padding.js +0 -32
- package/dist/styles/padding.js.map +0 -1
- package/dist/styles/placement.d.ts +0 -37
- package/dist/styles/placement.js +0 -74
- package/dist/styles/placement.js.map +0 -1
- package/dist/styles/predefined.d.ts +0 -71
- package/dist/styles/predefined.js +0 -237
- package/dist/styles/predefined.js.map +0 -1
- package/dist/styles/preset.d.ts +0 -52
- package/dist/styles/preset.js +0 -127
- package/dist/styles/preset.js.map +0 -1
- package/dist/styles/radius.d.ts +0 -12
- package/dist/styles/radius.js +0 -83
- package/dist/styles/radius.js.map +0 -1
- package/dist/styles/scrollMargin.d.ts +0 -24
- package/dist/styles/scrollMargin.js +0 -32
- package/dist/styles/scrollMargin.js.map +0 -1
- package/dist/styles/scrollbar.d.ts +0 -25
- package/dist/styles/scrollbar.js +0 -51
- package/dist/styles/scrollbar.js.map +0 -1
- package/dist/styles/shadow.d.ts +0 -14
- package/dist/styles/shadow.js +0 -25
- package/dist/styles/shadow.js.map +0 -1
- package/dist/styles/shared.js +0 -17
- package/dist/styles/shared.js.map +0 -1
- package/dist/styles/transition.d.ts +0 -14
- package/dist/styles/transition.js +0 -159
- package/dist/styles/transition.js.map +0 -1
- package/dist/styles/types.d.ts +0 -564
- package/dist/styles/width.d.ts +0 -17
- package/dist/styles/width.js +0 -19
- package/dist/styles/width.js.map +0 -1
- package/dist/tasty.d.ts +0 -134
- package/dist/tasty.js +0 -240
- package/dist/tasty.js.map +0 -1
- package/dist/types.d.ts +0 -184
- package/dist/utils/cache-wrapper.js +0 -21
- package/dist/utils/cache-wrapper.js.map +0 -1
- package/dist/utils/case-converter.js +0 -8
- package/dist/utils/case-converter.js.map +0 -1
- package/dist/utils/color-math.d.ts +0 -46
- package/dist/utils/color-math.js +0 -749
- package/dist/utils/color-math.js.map +0 -1
- package/dist/utils/color-space.d.ts +0 -5
- package/dist/utils/color-space.js +0 -228
- package/dist/utils/color-space.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -5
- package/dist/utils/colors.js +0 -10
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/css-types.d.ts +0 -7
- package/dist/utils/dotize.d.ts +0 -26
- package/dist/utils/dotize.js +0 -122
- package/dist/utils/dotize.js.map +0 -1
- package/dist/utils/filter-base-props.d.ts +0 -15
- package/dist/utils/filter-base-props.js +0 -45
- package/dist/utils/filter-base-props.js.map +0 -1
- package/dist/utils/get-display-name.d.ts +0 -7
- package/dist/utils/get-display-name.js +0 -10
- package/dist/utils/get-display-name.js.map +0 -1
- package/dist/utils/has-keys.js +0 -13
- package/dist/utils/has-keys.js.map +0 -1
- package/dist/utils/is-dev-env.js +0 -19
- package/dist/utils/is-dev-env.js.map +0 -1
- package/dist/utils/is-valid-element-type.js +0 -15
- package/dist/utils/is-valid-element-type.js.map +0 -1
- package/dist/utils/merge-styles.js.map +0 -1
- package/dist/utils/mod-attrs.d.ts +0 -6
- package/dist/utils/mod-attrs.js +0 -20
- package/dist/utils/mod-attrs.js.map +0 -1
- package/dist/utils/process-tokens.d.ts +0 -17
- package/dist/utils/process-tokens.js +0 -83
- package/dist/utils/process-tokens.js.map +0 -1
- package/dist/utils/resolve-recipes.d.ts +0 -17
- package/dist/utils/resolve-recipes.js +0 -146
- package/dist/utils/resolve-recipes.js.map +0 -1
- package/dist/utils/selector-transform.js +0 -32
- package/dist/utils/selector-transform.js.map +0 -1
- package/dist/utils/string.js +0 -8
- package/dist/utils/string.js.map +0 -1
- package/dist/utils/styles.d.ts +0 -99
- package/dist/utils/styles.js +0 -220
- package/dist/utils/styles.js.map +0 -1
- package/dist/utils/typography.d.ts +0 -47
- package/dist/utils/typography.js +0 -51
- package/dist/utils/typography.js.map +0 -1
- package/dist/utils/warnings.d.ts +0 -16
- package/dist/utils/warnings.js +0 -16
- package/dist/utils/warnings.js.map +0 -1
- package/dist/zero/css-writer.d.ts +0 -45
- package/dist/zero/css-writer.js +0 -73
- package/dist/zero/css-writer.js.map +0 -1
- package/dist/zero/extractor.d.ts +0 -24
- package/dist/zero/extractor.js.map +0 -1
- package/docs/PIPELINE.md +0 -519
- /package/dist/{chunks/cacheKey.d.ts → ssr/astro-client.d.ts} +0 -0
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { KeyframesSteps } from "../injector/types.js";
|
|
2
|
-
|
|
3
|
-
//#region src/hooks/useKeyframes.d.ts
|
|
4
|
-
interface UseKeyframesOptions {
|
|
5
|
-
name?: string;
|
|
6
|
-
root?: Document | ShadowRoot;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Hook to inject CSS @keyframes and return the generated animation name.
|
|
10
|
-
* Handles keyframes injection with proper cleanup on unmount or dependency changes.
|
|
11
|
-
*
|
|
12
|
-
* @example Basic usage - steps object is the dependency
|
|
13
|
-
* ```tsx
|
|
14
|
-
* function MyComponent() {
|
|
15
|
-
* const bounce = useKeyframes({
|
|
16
|
-
* '0%': { transform: 'scale(1)' },
|
|
17
|
-
* '50%': { transform: 'scale(1.1)' },
|
|
18
|
-
* '100%': { transform: 'scale(1)' },
|
|
19
|
-
* });
|
|
20
|
-
*
|
|
21
|
-
* return <div style={{ animation: `${bounce} 1s infinite` }}>Bouncing</div>;
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @example With custom name
|
|
26
|
-
* ```tsx
|
|
27
|
-
* function MyComponent() {
|
|
28
|
-
* const fadeIn = useKeyframes(
|
|
29
|
-
* { from: { opacity: 0 }, to: { opacity: 1 } },
|
|
30
|
-
* { name: 'fadeIn' }
|
|
31
|
-
* );
|
|
32
|
-
*
|
|
33
|
-
* return <div style={{ animation: `${fadeIn} 0.3s ease-out` }}>Fading in</div>;
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* @example Factory function with dependencies
|
|
38
|
-
* ```tsx
|
|
39
|
-
* function MyComponent({ scale }: { scale: number }) {
|
|
40
|
-
* const pulse = useKeyframes(
|
|
41
|
-
* () => ({
|
|
42
|
-
* '0%': { transform: 'scale(1)' },
|
|
43
|
-
* '100%': { transform: `scale(${scale})` },
|
|
44
|
-
* }),
|
|
45
|
-
* [scale]
|
|
46
|
-
* );
|
|
47
|
-
*
|
|
48
|
-
* return <div style={{ animation: `${pulse} 1s infinite` }}>Pulsing</div>;
|
|
49
|
-
* }
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
declare function useKeyframes(steps: KeyframesSteps, options?: UseKeyframesOptions): string;
|
|
53
|
-
declare function useKeyframes(factory: () => KeyframesSteps, deps: readonly unknown[], options?: UseKeyframesOptions): string;
|
|
54
|
-
//#endregion
|
|
55
|
-
export { useKeyframes };
|
|
56
|
-
//# sourceMappingURL=useKeyframes.d.ts.map
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { keyframes } from "../injector/index.js";
|
|
2
|
-
import { formatKeyframesCSS } from "../ssr/format-keyframes.js";
|
|
3
|
-
import { getRegisteredSSRCollector } from "../ssr/ssr-collector-ref.js";
|
|
4
|
-
import { useInsertionEffect, useMemo, useRef } from "react";
|
|
5
|
-
//#region src/hooks/useKeyframes.ts
|
|
6
|
-
function useKeyframes(stepsOrFactory, depsOrOptions, options) {
|
|
7
|
-
const ssrCollector = getRegisteredSSRCollector();
|
|
8
|
-
const isFactory = typeof stepsOrFactory === "function";
|
|
9
|
-
const deps = isFactory && Array.isArray(depsOrOptions) ? depsOrOptions : void 0;
|
|
10
|
-
const opts = isFactory ? options : depsOrOptions;
|
|
11
|
-
const stepsData = useMemo(() => {
|
|
12
|
-
const steps = isFactory ? stepsOrFactory() : stepsOrFactory;
|
|
13
|
-
if (!steps || Object.keys(steps).length === 0) return null;
|
|
14
|
-
return steps;
|
|
15
|
-
}, isFactory ? deps ?? [] : [stepsOrFactory]);
|
|
16
|
-
const renderResultRef = useRef(null);
|
|
17
|
-
const effectResultRef = useRef(null);
|
|
18
|
-
const name = useMemo(() => {
|
|
19
|
-
if (!stepsData) return "";
|
|
20
|
-
if (ssrCollector) {
|
|
21
|
-
const actualName = ssrCollector.allocateKeyframeName(opts?.name);
|
|
22
|
-
const css = formatKeyframesCSS(actualName, stepsData);
|
|
23
|
-
ssrCollector.collectKeyframes(actualName, css);
|
|
24
|
-
return actualName;
|
|
25
|
-
}
|
|
26
|
-
renderResultRef.current?.dispose();
|
|
27
|
-
renderResultRef.current = null;
|
|
28
|
-
const result = keyframes(stepsData, {
|
|
29
|
-
name: opts?.name,
|
|
30
|
-
root: opts?.root
|
|
31
|
-
});
|
|
32
|
-
renderResultRef.current = result;
|
|
33
|
-
return result.toString();
|
|
34
|
-
}, [
|
|
35
|
-
stepsData,
|
|
36
|
-
opts?.name,
|
|
37
|
-
opts?.root,
|
|
38
|
-
ssrCollector
|
|
39
|
-
]);
|
|
40
|
-
useInsertionEffect(() => {
|
|
41
|
-
effectResultRef.current?.dispose();
|
|
42
|
-
effectResultRef.current = null;
|
|
43
|
-
if (stepsData) effectResultRef.current = keyframes(stepsData, {
|
|
44
|
-
name: opts?.name,
|
|
45
|
-
root: opts?.root
|
|
46
|
-
});
|
|
47
|
-
return () => {
|
|
48
|
-
effectResultRef.current?.dispose();
|
|
49
|
-
effectResultRef.current = null;
|
|
50
|
-
renderResultRef.current?.dispose();
|
|
51
|
-
renderResultRef.current = null;
|
|
52
|
-
};
|
|
53
|
-
}, [
|
|
54
|
-
stepsData,
|
|
55
|
-
opts?.name,
|
|
56
|
-
opts?.root
|
|
57
|
-
]);
|
|
58
|
-
return name;
|
|
59
|
-
}
|
|
60
|
-
//#endregion
|
|
61
|
-
export { useKeyframes };
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=useKeyframes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyframes.js","names":[],"sources":["../../src/hooks/useKeyframes.ts"],"sourcesContent":["import { useInsertionEffect, useMemo, useRef } from 'react';\n\nimport { keyframes } from '../injector';\nimport type { KeyframesResult, KeyframesSteps } from '../injector/types';\nimport { formatKeyframesCSS } from '../ssr/format-keyframes';\nimport { getRegisteredSSRCollector } from '../ssr/ssr-collector-ref';\n\ninterface UseKeyframesOptions {\n name?: string;\n root?: Document | ShadowRoot;\n}\n\n/**\n * Hook to inject CSS @keyframes and return the generated animation name.\n * Handles keyframes injection with proper cleanup on unmount or dependency changes.\n *\n * @example Basic usage - steps object is the dependency\n * ```tsx\n * function MyComponent() {\n * const bounce = useKeyframes({\n * '0%': { transform: 'scale(1)' },\n * '50%': { transform: 'scale(1.1)' },\n * '100%': { transform: 'scale(1)' },\n * });\n *\n * return <div style={{ animation: `${bounce} 1s infinite` }}>Bouncing</div>;\n * }\n * ```\n *\n * @example With custom name\n * ```tsx\n * function MyComponent() {\n * const fadeIn = useKeyframes(\n * { from: { opacity: 0 }, to: { opacity: 1 } },\n * { name: 'fadeIn' }\n * );\n *\n * return <div style={{ animation: `${fadeIn} 0.3s ease-out` }}>Fading in</div>;\n * }\n * ```\n *\n * @example Factory function with dependencies\n * ```tsx\n * function MyComponent({ scale }: { scale: number }) {\n * const pulse = useKeyframes(\n * () => ({\n * '0%': { transform: 'scale(1)' },\n * '100%': { transform: `scale(${scale})` },\n * }),\n * [scale]\n * );\n *\n * return <div style={{ animation: `${pulse} 1s infinite` }}>Pulsing</div>;\n * }\n * ```\n */\n\n// Overload 1: Static steps object\nexport function useKeyframes(\n steps: KeyframesSteps,\n options?: UseKeyframesOptions,\n): string;\n\n// Overload 2: Factory function with dependencies\nexport function useKeyframes(\n factory: () => KeyframesSteps,\n deps: readonly unknown[],\n options?: UseKeyframesOptions,\n): string;\n\n// Implementation\nexport function useKeyframes(\n stepsOrFactory: KeyframesSteps | (() => KeyframesSteps),\n depsOrOptions?: readonly unknown[] | UseKeyframesOptions,\n options?: UseKeyframesOptions,\n): string {\n const ssrCollector = getRegisteredSSRCollector();\n\n // Detect which overload is being used\n const isFactory = typeof stepsOrFactory === 'function';\n\n // Parse arguments based on overload\n const deps =\n isFactory && Array.isArray(depsOrOptions) ? depsOrOptions : undefined;\n const opts = isFactory\n ? options\n : (depsOrOptions as UseKeyframesOptions | undefined);\n\n // Memoize the keyframes steps to get a stable reference\n const stepsData = useMemo(\n () => {\n const steps = isFactory\n ? (stepsOrFactory as () => KeyframesSteps)()\n : (stepsOrFactory as KeyframesSteps);\n\n if (!steps || Object.keys(steps).length === 0) {\n return null;\n }\n\n return steps;\n },\n\n isFactory ? (deps ?? []) : [stepsOrFactory],\n );\n\n // Store keyframes results for cleanup (client only)\n const renderResultRef = useRef<KeyframesResult | null>(null);\n const effectResultRef = useRef<KeyframesResult | null>(null);\n\n const name = useMemo(() => {\n if (!stepsData) {\n return '';\n }\n\n // SSR path: format and collect, return name without DOM injection\n if (ssrCollector) {\n const actualName = ssrCollector.allocateKeyframeName(opts?.name);\n const css = formatKeyframesCSS(actualName, stepsData);\n ssrCollector.collectKeyframes(actualName, css);\n return actualName;\n }\n\n // Client path: inject keyframes synchronously for immediate name availability\n renderResultRef.current?.dispose();\n renderResultRef.current = null;\n\n const result = keyframes(stepsData, {\n name: opts?.name,\n root: opts?.root,\n });\n\n renderResultRef.current = result;\n\n return result.toString();\n }, [stepsData, opts?.name, opts?.root, ssrCollector]);\n\n // Client path: handle Strict Mode double-invocation and cleanup\n useInsertionEffect(() => {\n effectResultRef.current?.dispose();\n effectResultRef.current = null;\n\n if (stepsData) {\n const result = keyframes(stepsData, {\n name: opts?.name,\n root: opts?.root,\n });\n effectResultRef.current = result;\n }\n\n return () => {\n effectResultRef.current?.dispose();\n effectResultRef.current = null;\n renderResultRef.current?.dispose();\n renderResultRef.current = null;\n };\n }, [stepsData, opts?.name, opts?.root]);\n\n return name;\n}\n"],"mappings":";;;;;AAuEA,SAAgB,aACd,gBACA,eACA,SACQ;CACR,MAAM,eAAe,2BAA2B;CAGhD,MAAM,YAAY,OAAO,mBAAmB;CAG5C,MAAM,OACJ,aAAa,MAAM,QAAQ,cAAc,GAAG,gBAAgB,KAAA;CAC9D,MAAM,OAAO,YACT,UACC;CAGL,MAAM,YAAY,cACV;EACJ,MAAM,QAAQ,YACT,gBAAyC,GACzC;AAEL,MAAI,CAAC,SAAS,OAAO,KAAK,MAAM,CAAC,WAAW,EAC1C,QAAO;AAGT,SAAO;IAGT,YAAa,QAAQ,EAAE,GAAI,CAAC,eAAe,CAC5C;CAGD,MAAM,kBAAkB,OAA+B,KAAK;CAC5D,MAAM,kBAAkB,OAA+B,KAAK;CAE5D,MAAM,OAAO,cAAc;AACzB,MAAI,CAAC,UACH,QAAO;AAIT,MAAI,cAAc;GAChB,MAAM,aAAa,aAAa,qBAAqB,MAAM,KAAK;GAChE,MAAM,MAAM,mBAAmB,YAAY,UAAU;AACrD,gBAAa,iBAAiB,YAAY,IAAI;AAC9C,UAAO;;AAIT,kBAAgB,SAAS,SAAS;AAClC,kBAAgB,UAAU;EAE1B,MAAM,SAAS,UAAU,WAAW;GAClC,MAAM,MAAM;GACZ,MAAM,MAAM;GACb,CAAC;AAEF,kBAAgB,UAAU;AAE1B,SAAO,OAAO,UAAU;IACvB;EAAC;EAAW,MAAM;EAAM,MAAM;EAAM;EAAa,CAAC;AAGrD,0BAAyB;AACvB,kBAAgB,SAAS,SAAS;AAClC,kBAAgB,UAAU;AAE1B,MAAI,UAKF,iBAAgB,UAJD,UAAU,WAAW;GAClC,MAAM,MAAM;GACZ,MAAM,MAAM;GACb,CAAC;AAIJ,eAAa;AACX,mBAAgB,SAAS,SAAS;AAClC,mBAAgB,UAAU;AAC1B,mBAAgB,SAAS,SAAS;AAClC,mBAAgB,UAAU;;IAE3B;EAAC;EAAW,MAAM;EAAM,MAAM;EAAK,CAAC;AAEvC,QAAO"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
//#region src/hooks/useProperty.d.ts
|
|
2
|
-
interface UsePropertyOptions {
|
|
3
|
-
/**
|
|
4
|
-
* CSS syntax string for the property (e.g., '<color>', '<length>', '<angle>').
|
|
5
|
-
* For color tokens (#name), this is auto-set to '<color>' and cannot be overridden.
|
|
6
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/@property/syntax
|
|
7
|
-
*/
|
|
8
|
-
syntax?: string;
|
|
9
|
-
/**
|
|
10
|
-
* Whether the property inherits from parent elements
|
|
11
|
-
* @default true
|
|
12
|
-
*/
|
|
13
|
-
inherits?: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* Initial value for the property.
|
|
16
|
-
* For color tokens (#name), this defaults to 'transparent' if not specified.
|
|
17
|
-
*/
|
|
18
|
-
initialValue?: string | number;
|
|
19
|
-
/**
|
|
20
|
-
* Shadow root or document to inject into
|
|
21
|
-
*/
|
|
22
|
-
root?: Document | ShadowRoot;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Hook to register a CSS @property custom property.
|
|
26
|
-
* This enables advanced features like animating custom properties.
|
|
27
|
-
*
|
|
28
|
-
* Note: @property rules are global and persistent once defined.
|
|
29
|
-
* The hook ensures the property is only registered once per root.
|
|
30
|
-
*
|
|
31
|
-
* Accepts tasty token syntax for the property name:
|
|
32
|
-
* - `$name` → defines `--name`
|
|
33
|
-
* - `#name` → defines `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')
|
|
34
|
-
* - `--name` → defines `--name` (legacy format)
|
|
35
|
-
*
|
|
36
|
-
* @param name - The property token ($name, #name) or CSS property name (--name)
|
|
37
|
-
* @param options - Property configuration
|
|
38
|
-
*
|
|
39
|
-
* @example Basic property with token syntax
|
|
40
|
-
* ```tsx
|
|
41
|
-
* function Spinner() {
|
|
42
|
-
* useProperty('$rotation', {
|
|
43
|
-
* syntax: '<angle>',
|
|
44
|
-
* inherits: false,
|
|
45
|
-
* initialValue: '0deg',
|
|
46
|
-
* });
|
|
47
|
-
*
|
|
48
|
-
* return <div className="spinner" />;
|
|
49
|
-
* }
|
|
50
|
-
* ```
|
|
51
|
-
*
|
|
52
|
-
* @example Color property with token syntax (auto-sets syntax)
|
|
53
|
-
* ```tsx
|
|
54
|
-
* function MyComponent() {
|
|
55
|
-
* useProperty('#theme', {
|
|
56
|
-
* initialValue: 'red', // syntax: '<color>' is auto-set
|
|
57
|
-
* });
|
|
58
|
-
*
|
|
59
|
-
* // Now --theme-color can be animated with CSS transitions
|
|
60
|
-
* return <div style={{ '--theme-color': 'blue' } as React.CSSProperties}>Colored</div>;
|
|
61
|
-
* }
|
|
62
|
-
* ```
|
|
63
|
-
*
|
|
64
|
-
* @example Legacy format (still supported)
|
|
65
|
-
* ```tsx
|
|
66
|
-
* function ResizableBox() {
|
|
67
|
-
* useProperty('--box-size', {
|
|
68
|
-
* syntax: '<length>',
|
|
69
|
-
* initialValue: '100px',
|
|
70
|
-
* });
|
|
71
|
-
*
|
|
72
|
-
* return <div style={{ width: 'var(--box-size)' }} />;
|
|
73
|
-
* }
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
|
-
declare function useProperty(name: string, options?: UsePropertyOptions): void;
|
|
77
|
-
//#endregion
|
|
78
|
-
export { UsePropertyOptions, useProperty };
|
|
79
|
-
//# sourceMappingURL=useProperty.d.ts.map
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { getGlobalInjector } from "../config.js";
|
|
2
|
-
import { formatPropertyCSS } from "../ssr/format-property.js";
|
|
3
|
-
import { getRegisteredSSRCollector } from "../ssr/ssr-collector-ref.js";
|
|
4
|
-
import { useInsertionEffect, useMemo } from "react";
|
|
5
|
-
//#region src/hooks/useProperty.ts
|
|
6
|
-
/**
|
|
7
|
-
* Hook to register a CSS @property custom property.
|
|
8
|
-
* This enables advanced features like animating custom properties.
|
|
9
|
-
*
|
|
10
|
-
* Note: @property rules are global and persistent once defined.
|
|
11
|
-
* The hook ensures the property is only registered once per root.
|
|
12
|
-
*
|
|
13
|
-
* Accepts tasty token syntax for the property name:
|
|
14
|
-
* - `$name` → defines `--name`
|
|
15
|
-
* - `#name` → defines `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')
|
|
16
|
-
* - `--name` → defines `--name` (legacy format)
|
|
17
|
-
*
|
|
18
|
-
* @param name - The property token ($name, #name) or CSS property name (--name)
|
|
19
|
-
* @param options - Property configuration
|
|
20
|
-
*
|
|
21
|
-
* @example Basic property with token syntax
|
|
22
|
-
* ```tsx
|
|
23
|
-
* function Spinner() {
|
|
24
|
-
* useProperty('$rotation', {
|
|
25
|
-
* syntax: '<angle>',
|
|
26
|
-
* inherits: false,
|
|
27
|
-
* initialValue: '0deg',
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* return <div className="spinner" />;
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* @example Color property with token syntax (auto-sets syntax)
|
|
35
|
-
* ```tsx
|
|
36
|
-
* function MyComponent() {
|
|
37
|
-
* useProperty('#theme', {
|
|
38
|
-
* initialValue: 'red', // syntax: '<color>' is auto-set
|
|
39
|
-
* });
|
|
40
|
-
*
|
|
41
|
-
* // Now --theme-color can be animated with CSS transitions
|
|
42
|
-
* return <div style={{ '--theme-color': 'blue' } as React.CSSProperties}>Colored</div>;
|
|
43
|
-
* }
|
|
44
|
-
* ```
|
|
45
|
-
*
|
|
46
|
-
* @example Legacy format (still supported)
|
|
47
|
-
* ```tsx
|
|
48
|
-
* function ResizableBox() {
|
|
49
|
-
* useProperty('--box-size', {
|
|
50
|
-
* syntax: '<length>',
|
|
51
|
-
* initialValue: '100px',
|
|
52
|
-
* });
|
|
53
|
-
*
|
|
54
|
-
* return <div style={{ width: 'var(--box-size)' }} />;
|
|
55
|
-
* }
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
function useProperty(name, options) {
|
|
59
|
-
const ssrCollector = getRegisteredSSRCollector();
|
|
60
|
-
const optionsKey = useMemo(() => {
|
|
61
|
-
if (!options) return "";
|
|
62
|
-
return JSON.stringify({
|
|
63
|
-
syntax: options.syntax,
|
|
64
|
-
inherits: options.inherits,
|
|
65
|
-
initialValue: options.initialValue
|
|
66
|
-
});
|
|
67
|
-
}, [
|
|
68
|
-
options?.syntax,
|
|
69
|
-
options?.inherits,
|
|
70
|
-
options?.initialValue
|
|
71
|
-
]);
|
|
72
|
-
useMemo(() => {
|
|
73
|
-
if (!ssrCollector || !name) return;
|
|
74
|
-
ssrCollector.collectInternals();
|
|
75
|
-
const css = formatPropertyCSS(name, {
|
|
76
|
-
syntax: options?.syntax,
|
|
77
|
-
inherits: options?.inherits,
|
|
78
|
-
initialValue: options?.initialValue
|
|
79
|
-
});
|
|
80
|
-
if (css) ssrCollector.collectProperty(name, css);
|
|
81
|
-
}, [
|
|
82
|
-
ssrCollector,
|
|
83
|
-
name,
|
|
84
|
-
optionsKey
|
|
85
|
-
]);
|
|
86
|
-
useInsertionEffect(() => {
|
|
87
|
-
if (!name) {
|
|
88
|
-
console.warn(`[Tasty] useProperty: property name is required`);
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
const injector = getGlobalInjector();
|
|
92
|
-
if (injector.isPropertyDefined(name, { root: options?.root })) return;
|
|
93
|
-
injector.property(name, {
|
|
94
|
-
syntax: options?.syntax,
|
|
95
|
-
inherits: options?.inherits,
|
|
96
|
-
initialValue: options?.initialValue,
|
|
97
|
-
root: options?.root
|
|
98
|
-
});
|
|
99
|
-
}, [
|
|
100
|
-
name,
|
|
101
|
-
optionsKey,
|
|
102
|
-
options?.root
|
|
103
|
-
]);
|
|
104
|
-
}
|
|
105
|
-
//#endregion
|
|
106
|
-
export { useProperty };
|
|
107
|
-
|
|
108
|
-
//# sourceMappingURL=useProperty.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useProperty.js","names":[],"sources":["../../src/hooks/useProperty.ts"],"sourcesContent":["import { useInsertionEffect, useMemo } from 'react';\n\nimport { getGlobalInjector } from '../config';\nimport { formatPropertyCSS } from '../ssr/format-property';\nimport { getRegisteredSSRCollector } from '../ssr/ssr-collector-ref';\n\nexport interface UsePropertyOptions {\n /**\n * CSS syntax string for the property (e.g., '<color>', '<length>', '<angle>').\n * For color tokens (#name), this is auto-set to '<color>' and cannot be overridden.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@property/syntax\n */\n syntax?: string;\n /**\n * Whether the property inherits from parent elements\n * @default true\n */\n inherits?: boolean;\n /**\n * Initial value for the property.\n * For color tokens (#name), this defaults to 'transparent' if not specified.\n */\n initialValue?: string | number;\n /**\n * Shadow root or document to inject into\n */\n root?: Document | ShadowRoot;\n}\n\n/**\n * Hook to register a CSS @property custom property.\n * This enables advanced features like animating custom properties.\n *\n * Note: @property rules are global and persistent once defined.\n * The hook ensures the property is only registered once per root.\n *\n * Accepts tasty token syntax for the property name:\n * - `$name` → defines `--name`\n * - `#name` → defines `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')\n * - `--name` → defines `--name` (legacy format)\n *\n * @param name - The property token ($name, #name) or CSS property name (--name)\n * @param options - Property configuration\n *\n * @example Basic property with token syntax\n * ```tsx\n * function Spinner() {\n * useProperty('$rotation', {\n * syntax: '<angle>',\n * inherits: false,\n * initialValue: '0deg',\n * });\n *\n * return <div className=\"spinner\" />;\n * }\n * ```\n *\n * @example Color property with token syntax (auto-sets syntax)\n * ```tsx\n * function MyComponent() {\n * useProperty('#theme', {\n * initialValue: 'red', // syntax: '<color>' is auto-set\n * });\n *\n * // Now --theme-color can be animated with CSS transitions\n * return <div style={{ '--theme-color': 'blue' } as React.CSSProperties}>Colored</div>;\n * }\n * ```\n *\n * @example Legacy format (still supported)\n * ```tsx\n * function ResizableBox() {\n * useProperty('--box-size', {\n * syntax: '<length>',\n * initialValue: '100px',\n * });\n *\n * return <div style={{ width: 'var(--box-size)' }} />;\n * }\n * ```\n */\nexport function useProperty(name: string, options?: UsePropertyOptions): void {\n const ssrCollector = getRegisteredSSRCollector();\n\n // Memoize the options to create a stable dependency\n const optionsKey = useMemo(() => {\n if (!options) return '';\n return JSON.stringify({\n syntax: options.syntax,\n inherits: options.inherits,\n initialValue: options.initialValue,\n });\n }, [options?.syntax, options?.inherits, options?.initialValue]);\n\n // SSR path: collect @property CSS during render\n useMemo(() => {\n if (!ssrCollector || !name) return;\n\n ssrCollector.collectInternals();\n\n const css = formatPropertyCSS(name, {\n syntax: options?.syntax,\n inherits: options?.inherits,\n initialValue: options?.initialValue,\n });\n if (css) {\n ssrCollector.collectProperty(name, css);\n }\n }, [ssrCollector, name, optionsKey]);\n\n // Client path: inject via DOM\n useInsertionEffect(() => {\n if (!name) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Tasty] useProperty: property name is required`);\n }\n return;\n }\n\n const injector = getGlobalInjector();\n\n if (injector.isPropertyDefined(name, { root: options?.root })) {\n return;\n }\n\n injector.property(name, {\n syntax: options?.syntax,\n inherits: options?.inherits,\n initialValue: options?.initialValue,\n root: options?.root,\n });\n }, [name, optionsKey, options?.root]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiFA,SAAgB,YAAY,MAAc,SAAoC;CAC5E,MAAM,eAAe,2BAA2B;CAGhD,MAAM,aAAa,cAAc;AAC/B,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,KAAK,UAAU;GACpB,QAAQ,QAAQ;GAChB,UAAU,QAAQ;GAClB,cAAc,QAAQ;GACvB,CAAC;IACD;EAAC,SAAS;EAAQ,SAAS;EAAU,SAAS;EAAa,CAAC;AAG/D,eAAc;AACZ,MAAI,CAAC,gBAAgB,CAAC,KAAM;AAE5B,eAAa,kBAAkB;EAE/B,MAAM,MAAM,kBAAkB,MAAM;GAClC,QAAQ,SAAS;GACjB,UAAU,SAAS;GACnB,cAAc,SAAS;GACxB,CAAC;AACF,MAAI,IACF,cAAa,gBAAgB,MAAM,IAAI;IAExC;EAAC;EAAc;EAAM;EAAW,CAAC;AAGpC,0BAAyB;AACvB,MAAI,CAAC,MAAM;AAEP,WAAQ,KAAK,iDAAiD;AAEhE;;EAGF,MAAM,WAAW,mBAAmB;AAEpC,MAAI,SAAS,kBAAkB,MAAM,EAAE,MAAM,SAAS,MAAM,CAAC,CAC3D;AAGF,WAAS,SAAS,MAAM;GACtB,QAAQ,SAAS;GACjB,UAAU,SAAS;GACnB,cAAc,SAAS;GACvB,MAAM,SAAS;GAChB,CAAC;IACD;EAAC;EAAM;EAAY,SAAS;EAAK,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
//#region src/hooks/useRawCSS.d.ts
|
|
2
|
-
interface UseRawCSSOptions {
|
|
3
|
-
root?: Document | ShadowRoot;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Hook to inject raw CSS text directly without parsing.
|
|
7
|
-
* This is a low-overhead alternative for injecting global CSS that doesn't need tasty processing.
|
|
8
|
-
*
|
|
9
|
-
* The CSS is inserted into a separate style element (data-tasty-raw) to avoid conflicts
|
|
10
|
-
* with tasty's chunked style sheets.
|
|
11
|
-
*
|
|
12
|
-
* @example Static CSS string
|
|
13
|
-
* ```tsx
|
|
14
|
-
* function GlobalStyles() {
|
|
15
|
-
* useRawCSS(`
|
|
16
|
-
* body {
|
|
17
|
-
* margin: 0;
|
|
18
|
-
* padding: 0;
|
|
19
|
-
* font-family: sans-serif;
|
|
20
|
-
* }
|
|
21
|
-
* `);
|
|
22
|
-
*
|
|
23
|
-
* return null;
|
|
24
|
-
* }
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* @example Factory function with dependencies (like useMemo)
|
|
28
|
-
* ```tsx
|
|
29
|
-
* function ThemeStyles({ theme }: { theme: 'light' | 'dark' }) {
|
|
30
|
-
* useRawCSS(() => `
|
|
31
|
-
* :root {
|
|
32
|
-
* --bg-color: ${theme === 'dark' ? '#1a1a1a' : '#ffffff'};
|
|
33
|
-
* --text-color: ${theme === 'dark' ? '#ffffff' : '#1a1a1a'};
|
|
34
|
-
* }
|
|
35
|
-
* `, [theme]);
|
|
36
|
-
*
|
|
37
|
-
* return null;
|
|
38
|
-
* }
|
|
39
|
-
* ```
|
|
40
|
-
*
|
|
41
|
-
* @example With options
|
|
42
|
-
* ```tsx
|
|
43
|
-
* function ShadowStyles({ shadowRoot }) {
|
|
44
|
-
* useRawCSS(() => `.scoped { color: red; }`, [], { root: shadowRoot });
|
|
45
|
-
* return null;
|
|
46
|
-
* }
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
declare function useRawCSS(css: string, options?: UseRawCSSOptions): void;
|
|
50
|
-
declare function useRawCSS(factory: () => string, deps: readonly unknown[], options?: UseRawCSSOptions): void;
|
|
51
|
-
//#endregion
|
|
52
|
-
export { useRawCSS };
|
|
53
|
-
//# sourceMappingURL=useRawCSS.d.ts.map
|
package/dist/hooks/useRawCSS.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { injectRawCSS } from "../injector/index.js";
|
|
2
|
-
import { getRegisteredSSRCollector } from "../ssr/ssr-collector-ref.js";
|
|
3
|
-
import { useInsertionEffect, useMemo, useRef } from "react";
|
|
4
|
-
//#region src/hooks/useRawCSS.ts
|
|
5
|
-
function useRawCSS(cssOrFactory, depsOrOptions, options) {
|
|
6
|
-
const ssrCollector = getRegisteredSSRCollector();
|
|
7
|
-
const isFactory = typeof cssOrFactory === "function";
|
|
8
|
-
const deps = isFactory && Array.isArray(depsOrOptions) ? depsOrOptions : void 0;
|
|
9
|
-
const opts = isFactory ? options : depsOrOptions;
|
|
10
|
-
const css = useMemo(() => isFactory ? cssOrFactory() : cssOrFactory, isFactory ? deps ?? [] : [cssOrFactory]);
|
|
11
|
-
useMemo(() => {
|
|
12
|
-
if (!ssrCollector || !css.trim()) return;
|
|
13
|
-
const key = `raw:${css.length}:${css.slice(0, 64)}`;
|
|
14
|
-
ssrCollector.collectRawCSS(key, css);
|
|
15
|
-
}, [ssrCollector, css]);
|
|
16
|
-
const disposeRef = useRef(null);
|
|
17
|
-
useInsertionEffect(() => {
|
|
18
|
-
disposeRef.current?.();
|
|
19
|
-
if (!css.trim()) {
|
|
20
|
-
disposeRef.current = null;
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const { dispose } = injectRawCSS(css, opts);
|
|
24
|
-
disposeRef.current = dispose;
|
|
25
|
-
return () => {
|
|
26
|
-
disposeRef.current?.();
|
|
27
|
-
disposeRef.current = null;
|
|
28
|
-
};
|
|
29
|
-
}, [css, opts?.root]);
|
|
30
|
-
}
|
|
31
|
-
//#endregion
|
|
32
|
-
export { useRawCSS };
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=useRawCSS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRawCSS.js","names":[],"sources":["../../src/hooks/useRawCSS.ts"],"sourcesContent":["import { useInsertionEffect, useMemo, useRef } from 'react';\n\nimport { injectRawCSS } from '../injector';\nimport { getRegisteredSSRCollector } from '../ssr/ssr-collector-ref';\n\ninterface UseRawCSSOptions {\n root?: Document | ShadowRoot;\n}\n\n/**\n * Hook to inject raw CSS text directly without parsing.\n * This is a low-overhead alternative for injecting global CSS that doesn't need tasty processing.\n *\n * The CSS is inserted into a separate style element (data-tasty-raw) to avoid conflicts\n * with tasty's chunked style sheets.\n *\n * @example Static CSS string\n * ```tsx\n * function GlobalStyles() {\n * useRawCSS(`\n * body {\n * margin: 0;\n * padding: 0;\n * font-family: sans-serif;\n * }\n * `);\n *\n * return null;\n * }\n * ```\n *\n * @example Factory function with dependencies (like useMemo)\n * ```tsx\n * function ThemeStyles({ theme }: { theme: 'light' | 'dark' }) {\n * useRawCSS(() => `\n * :root {\n * --bg-color: ${theme === 'dark' ? '#1a1a1a' : '#ffffff'};\n * --text-color: ${theme === 'dark' ? '#ffffff' : '#1a1a1a'};\n * }\n * `, [theme]);\n *\n * return null;\n * }\n * ```\n *\n * @example With options\n * ```tsx\n * function ShadowStyles({ shadowRoot }) {\n * useRawCSS(() => `.scoped { color: red; }`, [], { root: shadowRoot });\n * return null;\n * }\n * ```\n */\n\n// Overload 1: Static CSS string\nexport function useRawCSS(css: string, options?: UseRawCSSOptions): void;\n\n// Overload 2: Factory function with dependencies\nexport function useRawCSS(\n factory: () => string,\n deps: readonly unknown[],\n options?: UseRawCSSOptions,\n): void;\n\n// Implementation\nexport function useRawCSS(\n cssOrFactory: string | (() => string),\n depsOrOptions?: readonly unknown[] | UseRawCSSOptions,\n options?: UseRawCSSOptions,\n): void {\n const ssrCollector = getRegisteredSSRCollector();\n\n // Detect which overload is being used\n const isFactory = typeof cssOrFactory === 'function';\n\n // Parse arguments based on overload\n const deps =\n isFactory && Array.isArray(depsOrOptions) ? depsOrOptions : undefined;\n const opts = isFactory\n ? options\n : (depsOrOptions as UseRawCSSOptions | undefined);\n\n // Memoize CSS - for factory functions, use provided deps; for strings, use the string itself\n const css = useMemo(\n () =>\n isFactory ? (cssOrFactory as () => string)() : (cssOrFactory as string),\n\n isFactory ? (deps ?? []) : [cssOrFactory],\n );\n\n // SSR path: collect raw CSS during render\n useMemo(() => {\n if (!ssrCollector || !css.trim()) return;\n\n const key = `raw:${css.length}:${css.slice(0, 64)}`;\n ssrCollector.collectRawCSS(key, css);\n }, [ssrCollector, css]);\n\n const disposeRef = useRef<(() => void) | null>(null);\n\n // Client path: inject via DOM\n useInsertionEffect(() => {\n disposeRef.current?.();\n\n if (!css.trim()) {\n disposeRef.current = null;\n return;\n }\n\n const { dispose } = injectRawCSS(css, opts);\n disposeRef.current = dispose;\n\n return () => {\n disposeRef.current?.();\n disposeRef.current = null;\n };\n }, [css, opts?.root]);\n}\n"],"mappings":";;;;AAiEA,SAAgB,UACd,cACA,eACA,SACM;CACN,MAAM,eAAe,2BAA2B;CAGhD,MAAM,YAAY,OAAO,iBAAiB;CAG1C,MAAM,OACJ,aAAa,MAAM,QAAQ,cAAc,GAAG,gBAAgB,KAAA;CAC9D,MAAM,OAAO,YACT,UACC;CAGL,MAAM,MAAM,cAER,YAAa,cAA+B,GAAI,cAElD,YAAa,QAAQ,EAAE,GAAI,CAAC,aAAa,CAC1C;AAGD,eAAc;AACZ,MAAI,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAE;EAElC,MAAM,MAAM,OAAO,IAAI,OAAO,GAAG,IAAI,MAAM,GAAG,GAAG;AACjD,eAAa,cAAc,KAAK,IAAI;IACnC,CAAC,cAAc,IAAI,CAAC;CAEvB,MAAM,aAAa,OAA4B,KAAK;AAGpD,0BAAyB;AACvB,aAAW,WAAW;AAEtB,MAAI,CAAC,IAAI,MAAM,EAAE;AACf,cAAW,UAAU;AACrB;;EAGF,MAAM,EAAE,YAAY,aAAa,KAAK,KAAK;AAC3C,aAAW,UAAU;AAErB,eAAa;AACX,cAAW,WAAW;AACtB,cAAW,UAAU;;IAEtB,CAAC,KAAK,MAAM,KAAK,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Styles } from "../styles/types.js";
|
|
2
|
-
|
|
3
|
-
//#region src/hooks/useStyles.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* Tasty styles object to generate CSS classes for.
|
|
6
|
-
* Can be undefined or empty object for no styles.
|
|
7
|
-
*/
|
|
8
|
-
type UseStylesOptions = Styles | undefined;
|
|
9
|
-
interface UseStylesResult {
|
|
10
|
-
/**
|
|
11
|
-
* Generated className(s) to apply to the element.
|
|
12
|
-
* Can be empty string if no styles are provided.
|
|
13
|
-
* With chunking enabled, may contain multiple space-separated class names.
|
|
14
|
-
*/
|
|
15
|
-
className: string;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Generate CSS classes from Tasty styles.
|
|
19
|
-
* Thin re-export of `computeStyles()` kept for backward compatibility.
|
|
20
|
-
*
|
|
21
|
-
* Unlike a React hook, this is a plain function and can be called
|
|
22
|
-
* from both client components and React Server Components.
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```tsx
|
|
26
|
-
* function MyComponent() {
|
|
27
|
-
* const { className } = useStyles({
|
|
28
|
-
* padding: '2x',
|
|
29
|
-
* fill: '#purple',
|
|
30
|
-
* radius: '1r',
|
|
31
|
-
* });
|
|
32
|
-
*
|
|
33
|
-
* return <div className={className}>Styled content</div>;
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
declare function useStyles(styles: UseStylesOptions): UseStylesResult;
|
|
38
|
-
//#endregion
|
|
39
|
-
export { UseStylesOptions, UseStylesResult, useStyles };
|
|
40
|
-
//# sourceMappingURL=useStyles.d.ts.map
|
package/dist/hooks/useStyles.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { computeStyles } from "../compute-styles.js";
|
|
2
|
-
//#region src/hooks/useStyles.ts
|
|
3
|
-
/**
|
|
4
|
-
* Generate CSS classes from Tasty styles.
|
|
5
|
-
* Thin re-export of `computeStyles()` kept for backward compatibility.
|
|
6
|
-
*
|
|
7
|
-
* Unlike a React hook, this is a plain function and can be called
|
|
8
|
-
* from both client components and React Server Components.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```tsx
|
|
12
|
-
* function MyComponent() {
|
|
13
|
-
* const { className } = useStyles({
|
|
14
|
-
* padding: '2x',
|
|
15
|
-
* fill: '#purple',
|
|
16
|
-
* radius: '1r',
|
|
17
|
-
* });
|
|
18
|
-
*
|
|
19
|
-
* return <div className={className}>Styled content</div>;
|
|
20
|
-
* }
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
function useStyles(styles) {
|
|
24
|
-
return computeStyles(styles);
|
|
25
|
-
}
|
|
26
|
-
//#endregion
|
|
27
|
-
export { useStyles };
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=useStyles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useStyles.js","names":[],"sources":["../../src/hooks/useStyles.ts"],"sourcesContent":["import { computeStyles } from '../compute-styles';\nimport type { Styles } from '../styles/types';\n\n/**\n * Tasty styles object to generate CSS classes for.\n * Can be undefined or empty object for no styles.\n */\nexport type UseStylesOptions = Styles | undefined;\n\nexport interface UseStylesResult {\n /**\n * Generated className(s) to apply to the element.\n * Can be empty string if no styles are provided.\n * With chunking enabled, may contain multiple space-separated class names.\n */\n className: string;\n}\n\n/**\n * Generate CSS classes from Tasty styles.\n * Thin re-export of `computeStyles()` kept for backward compatibility.\n *\n * Unlike a React hook, this is a plain function and can be called\n * from both client components and React Server Components.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { className } = useStyles({\n * padding: '2x',\n * fill: '#purple',\n * radius: '1r',\n * });\n *\n * return <div className={className}>Styled content</div>;\n * }\n * ```\n */\nexport function useStyles(styles: UseStylesOptions): UseStylesResult {\n return computeStyles(styles);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsCA,SAAgB,UAAU,QAA2C;AACnE,QAAO,cAAc,OAAO"}
|
package/dist/injector/index.d.ts
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { CacheMetrics, CounterStyleDescriptors, DisposeFunction, FontFaceDescriptors, FontFaceInput, GlobalInjectResult, InjectResult, KeyframesCacheEntry, KeyframesInfo, KeyframesResult, KeyframesSteps, PropertyDefinition, RawCSSResult, RootRegistry, RuleInfo, SheetInfo, StyleInjectorConfig, StyleRule } from "./types.js";
|
|
2
|
-
import { StyleResult } from "../pipeline/index.js";
|
|
3
|
-
import { SheetManager } from "./sheet-manager.js";
|
|
4
|
-
import { StyleInjector } from "./injector.js";
|
|
5
|
-
|
|
6
|
-
//#region src/injector/index.d.ts
|
|
7
|
-
/**
|
|
8
|
-
* Inject styles and return className with dispose function
|
|
9
|
-
*/
|
|
10
|
-
declare function inject(rules: StyleResult[], options?: {
|
|
11
|
-
root?: Document | ShadowRoot;
|
|
12
|
-
cacheKey?: string;
|
|
13
|
-
}): InjectResult;
|
|
14
|
-
/**
|
|
15
|
-
* Inject global rules that should not reserve tasty class names
|
|
16
|
-
*/
|
|
17
|
-
declare function injectGlobal(rules: StyleResult[], options?: {
|
|
18
|
-
root?: Document | ShadowRoot;
|
|
19
|
-
}): GlobalInjectResult;
|
|
20
|
-
/**
|
|
21
|
-
* Inject raw CSS text directly without parsing
|
|
22
|
-
* This is a low-overhead method for injecting raw CSS that doesn't need tasty processing.
|
|
23
|
-
* The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```tsx
|
|
27
|
-
* // Inject raw CSS
|
|
28
|
-
* const { dispose } = injectRawCSS(`
|
|
29
|
-
* body { margin: 0; padding: 0; }
|
|
30
|
-
* .my-class { color: red; }
|
|
31
|
-
* `);
|
|
32
|
-
*
|
|
33
|
-
* // Later, remove the injected CSS
|
|
34
|
-
* dispose();
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
declare function injectRawCSS(css: string, options?: {
|
|
38
|
-
root?: Document | ShadowRoot;
|
|
39
|
-
}): {
|
|
40
|
-
dispose: () => void;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Get raw CSS text for SSR
|
|
44
|
-
*/
|
|
45
|
-
declare function getRawCSSText(options?: {
|
|
46
|
-
root?: Document | ShadowRoot;
|
|
47
|
-
}): string;
|
|
48
|
-
/**
|
|
49
|
-
* Inject keyframes and return object with toString() and dispose()
|
|
50
|
-
*/
|
|
51
|
-
declare function keyframes(steps: KeyframesSteps, nameOrOptions?: string | {
|
|
52
|
-
root?: Document | ShadowRoot;
|
|
53
|
-
name?: string;
|
|
54
|
-
}): KeyframesResult;
|
|
55
|
-
interface PropertyOptions {
|
|
56
|
-
/**
|
|
57
|
-
* CSS syntax string for the property (e.g., '<color>', '<length>', '<angle>')
|
|
58
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/@property/syntax
|
|
59
|
-
*/
|
|
60
|
-
syntax?: string;
|
|
61
|
-
/**
|
|
62
|
-
* Whether the property inherits from parent elements
|
|
63
|
-
* @default true
|
|
64
|
-
*/
|
|
65
|
-
inherits?: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Initial value for the property
|
|
68
|
-
*/
|
|
69
|
-
initialValue?: string | number;
|
|
70
|
-
/**
|
|
71
|
-
* Shadow root or document to inject into
|
|
72
|
-
*/
|
|
73
|
-
root?: Document | ShadowRoot;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Define a CSS @property custom property.
|
|
77
|
-
* This enables advanced features like animating custom properties.
|
|
78
|
-
*
|
|
79
|
-
* Note: @property rules are global and persistent once defined.
|
|
80
|
-
* Re-registering the same property name is a no-op.
|
|
81
|
-
*
|
|
82
|
-
* @param name - The custom property name (must start with --)
|
|
83
|
-
* @param options - Property configuration
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```ts
|
|
87
|
-
* // Define a color property that can be animated
|
|
88
|
-
* property('--my-color', {
|
|
89
|
-
* syntax: '<color>',
|
|
90
|
-
* initialValue: 'red',
|
|
91
|
-
* });
|
|
92
|
-
*
|
|
93
|
-
* // Define an angle property
|
|
94
|
-
* property('--rotation', {
|
|
95
|
-
* syntax: '<angle>',
|
|
96
|
-
* inherits: false,
|
|
97
|
-
* initialValue: '0deg',
|
|
98
|
-
* });
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
declare function property(name: string, options?: PropertyOptions): void;
|
|
102
|
-
/**
|
|
103
|
-
* Check if a CSS @property has already been defined
|
|
104
|
-
*
|
|
105
|
-
* @param name - The custom property name to check
|
|
106
|
-
* @param options - Options including root
|
|
107
|
-
*/
|
|
108
|
-
declare function isPropertyDefined(name: string, options?: {
|
|
109
|
-
root?: Document | ShadowRoot;
|
|
110
|
-
}): boolean;
|
|
111
|
-
/**
|
|
112
|
-
* Inject a CSS @font-face rule.
|
|
113
|
-
*
|
|
114
|
-
* Permanent and global — no dispose or ref-counting.
|
|
115
|
-
* Deduplicates by content hash (family + descriptors).
|
|
116
|
-
*/
|
|
117
|
-
declare function fontFace(family: string, descriptors: FontFaceDescriptors, options?: {
|
|
118
|
-
root?: Document | ShadowRoot;
|
|
119
|
-
}): void;
|
|
120
|
-
/**
|
|
121
|
-
* Inject a CSS @counter-style rule.
|
|
122
|
-
*
|
|
123
|
-
* Permanent and global — no dispose or ref-counting.
|
|
124
|
-
* Deduplicates by name (first definition wins).
|
|
125
|
-
*/
|
|
126
|
-
declare function counterStyle(name: string, descriptors: CounterStyleDescriptors, options?: {
|
|
127
|
-
root?: Document | ShadowRoot;
|
|
128
|
-
}): void;
|
|
129
|
-
/**
|
|
130
|
-
* Get CSS text from all sheets (for SSR)
|
|
131
|
-
*/
|
|
132
|
-
declare function getCssText(options?: {
|
|
133
|
-
root?: Document | ShadowRoot;
|
|
134
|
-
}): string;
|
|
135
|
-
/**
|
|
136
|
-
* Collect only CSS used by a rendered subtree (like jest-styled-components).
|
|
137
|
-
* Pass the container returned by render(...).
|
|
138
|
-
*/
|
|
139
|
-
declare function getCssTextForNode(node: ParentNode | Element | DocumentFragment, options?: {
|
|
140
|
-
root?: Document | ShadowRoot;
|
|
141
|
-
}): string;
|
|
142
|
-
/**
|
|
143
|
-
* Force cleanup of unused rules
|
|
144
|
-
*/
|
|
145
|
-
declare function cleanup(root?: Document | ShadowRoot): void;
|
|
146
|
-
/**
|
|
147
|
-
* Check if we're currently running in a test environment
|
|
148
|
-
*/
|
|
149
|
-
declare function getIsTestEnvironment(): boolean;
|
|
150
|
-
/**
|
|
151
|
-
* Get the global injector instance for debugging
|
|
152
|
-
*/
|
|
153
|
-
declare const injector: {
|
|
154
|
-
readonly instance: StyleInjector;
|
|
155
|
-
};
|
|
156
|
-
/**
|
|
157
|
-
* Destroy all resources and clean up
|
|
158
|
-
*/
|
|
159
|
-
declare function destroy(root?: Document | ShadowRoot): void;
|
|
160
|
-
/**
|
|
161
|
-
* Create a new isolated injector instance
|
|
162
|
-
*/
|
|
163
|
-
declare function createInjector(config?: Partial<StyleInjectorConfig>): StyleInjector;
|
|
164
|
-
//#endregion
|
|
165
|
-
export { PropertyOptions, cleanup, counterStyle, createInjector, destroy, fontFace, getCssText, getCssTextForNode, getIsTestEnvironment, getRawCSSText, inject, injectGlobal, injectRawCSS, injector, isPropertyDefined, keyframes, property };
|
|
166
|
-
//# sourceMappingURL=index.d.ts.map
|