@tenphi/tasty 0.0.0-snapshot.c8bdaeb → 0.0.0-snapshot.cae4fee
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 +314 -159
- package/dist/async-storage-B7_o6FKt.js +44 -0
- package/dist/async-storage-B7_o6FKt.js.map +1 -0
- package/dist/collector-C-keQH9m.js +243 -0
- package/dist/collector-C-keQH9m.js.map +1 -0
- package/dist/collector-osfWTeRd.d.ts +108 -0
- package/dist/config-BBiyxMCe.js +10559 -0
- package/dist/config-BBiyxMCe.js.map +1 -0
- package/dist/config-BoZDUHW5.d.ts +945 -0
- package/dist/context-CkSg-kDT.js +24 -0
- package/dist/context-CkSg-kDT.js.map +1 -0
- package/dist/core/index.d.ts +5 -33
- package/dist/core/index.js +6 -26
- package/dist/core-BO4319td.js +1598 -0
- package/dist/core-BO4319td.js.map +1 -0
- package/dist/css-writer-BWvwQzz0.js +351 -0
- package/dist/css-writer-BWvwQzz0.js.map +1 -0
- package/dist/format-global-rules-Dbc_1tc3.js +22 -0
- package/dist/format-global-rules-Dbc_1tc3.js.map +1 -0
- package/dist/format-rules-BSjeH4Z7.js +143 -0
- package/dist/format-rules-BSjeH4Z7.js.map +1 -0
- package/dist/hydrate-CcvrP4qJ.js +45 -0
- package/dist/hydrate-CcvrP4qJ.js.map +1 -0
- package/dist/index-B_k47mc_.d.ts +1655 -0
- package/dist/index-tcHuMPFt.d.ts +1286 -0
- package/dist/index.d.ts +5 -48
- package/dist/index.js +731 -32
- package/dist/index.js.map +1 -0
- package/dist/keyframes-BUQhdOSJ.js +588 -0
- package/dist/keyframes-BUQhdOSJ.js.map +1 -0
- package/dist/{utils/merge-styles.d.ts → merge-styles-BMWcH6MF.d.ts} +3 -3
- package/dist/{utils/merge-styles.js → merge-styles-Cd2vBl9b.js} +4 -6
- package/dist/merge-styles-Cd2vBl9b.js.map +1 -0
- package/dist/{utils/resolve-recipes.js → resolve-recipes-C1nrvnYh.js} +5 -8
- package/dist/resolve-recipes-C1nrvnYh.js.map +1 -0
- package/dist/ssr/astro-client.d.ts +1 -0
- package/dist/ssr/astro-client.js +19 -0
- package/dist/ssr/astro-client.js.map +1 -0
- package/dist/ssr/astro-middleware.d.ts +15 -0
- package/dist/ssr/astro-middleware.js +19 -0
- package/dist/ssr/astro-middleware.js.map +1 -0
- package/dist/ssr/astro.d.ts +97 -0
- package/dist/ssr/astro.js +149 -0
- package/dist/ssr/astro.js.map +1 -0
- package/dist/ssr/index.d.ts +44 -0
- package/dist/ssr/index.js +10 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/ssr/next.d.ts +46 -0
- package/dist/ssr/next.js +75 -0
- package/dist/ssr/next.js.map +1 -0
- package/dist/static/index.d.ts +91 -5
- package/dist/static/index.js +49 -4
- package/dist/static/index.js.map +1 -0
- package/dist/static/inject.d.ts +5 -0
- package/dist/static/inject.js +17 -0
- package/dist/static/inject.js.map +1 -0
- package/dist/zero/babel.d.ts +57 -84
- package/dist/zero/babel.js +232 -40
- package/dist/zero/babel.js.map +1 -1
- package/dist/zero/index.d.ts +67 -3
- package/dist/zero/index.js +2 -4
- package/dist/zero/next.d.ts +56 -30
- package/dist/zero/next.js +105 -40
- package/dist/zero/next.js.map +1 -1
- package/docs/README.md +31 -0
- package/docs/adoption.md +298 -0
- package/docs/comparison.md +419 -0
- package/docs/configuration.md +438 -0
- package/docs/debug.md +320 -0
- package/docs/design-system.md +436 -0
- package/docs/dsl.md +690 -0
- package/docs/getting-started.md +217 -0
- package/docs/injector.md +544 -0
- package/docs/methodology.md +642 -0
- package/docs/pipeline.md +699 -0
- package/docs/react-api.md +581 -0
- package/docs/ssr.md +444 -0
- package/docs/styles.md +598 -0
- package/docs/tasty-static.md +547 -0
- package/package.json +70 -37
- package/tasty.config.ts +1 -0
- package/dist/_virtual/_rolldown/runtime.js +0 -8
- package/dist/chunks/cacheKey.js +0 -70
- package/dist/chunks/cacheKey.js.map +0 -1
- package/dist/chunks/definitions.d.ts +0 -37
- package/dist/chunks/definitions.js +0 -260
- package/dist/chunks/definitions.js.map +0 -1
- package/dist/chunks/renderChunk.js +0 -61
- package/dist/chunks/renderChunk.js.map +0 -1
- package/dist/config.d.ts +0 -280
- package/dist/config.js +0 -403
- package/dist/config.js.map +0 -1
- package/dist/debug.d.ts +0 -204
- package/dist/debug.js +0 -733
- package/dist/debug.js.map +0 -1
- package/dist/hooks/useGlobalStyles.d.ts +0 -27
- package/dist/hooks/useGlobalStyles.js +0 -56
- package/dist/hooks/useGlobalStyles.js.map +0 -1
- package/dist/hooks/useKeyframes.d.ts +0 -56
- package/dist/hooks/useKeyframes.js +0 -54
- package/dist/hooks/useKeyframes.js.map +0 -1
- package/dist/hooks/useProperty.d.ts +0 -79
- package/dist/hooks/useProperty.js +0 -91
- package/dist/hooks/useProperty.js.map +0 -1
- package/dist/hooks/useRawCSS.d.ts +0 -53
- package/dist/hooks/useRawCSS.js +0 -28
- package/dist/hooks/useRawCSS.js.map +0 -1
- package/dist/hooks/useStyles.d.ts +0 -40
- package/dist/hooks/useStyles.js +0 -169
- package/dist/hooks/useStyles.js.map +0 -1
- package/dist/injector/index.d.ts +0 -157
- package/dist/injector/index.js +0 -154
- package/dist/injector/index.js.map +0 -1
- package/dist/injector/injector.d.ts +0 -139
- package/dist/injector/injector.js +0 -404
- package/dist/injector/injector.js.map +0 -1
- package/dist/injector/sheet-manager.d.ts +0 -127
- package/dist/injector/sheet-manager.js +0 -714
- package/dist/injector/sheet-manager.js.map +0 -1
- package/dist/injector/types.d.ts +0 -135
- 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 -33
- 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 -116
- 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 -231
- package/dist/pipeline/exclusive.js.map +0 -1
- package/dist/pipeline/index.d.ts +0 -53
- package/dist/pipeline/index.js +0 -660
- package/dist/pipeline/index.js.map +0 -1
- package/dist/pipeline/materialize.js +0 -844
- package/dist/pipeline/materialize.js.map +0 -1
- package/dist/pipeline/parseStateKey.d.ts +0 -15
- package/dist/pipeline/parseStateKey.js +0 -438
- package/dist/pipeline/parseStateKey.js.map +0 -1
- package/dist/pipeline/simplify.js +0 -516
- 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/okhsl-plugin.d.ts +0 -35
- package/dist/plugins/okhsl-plugin.js +0 -371
- package/dist/plugins/okhsl-plugin.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -69
- package/dist/properties/index.js +0 -158
- package/dist/properties/index.js.map +0 -1
- package/dist/states/index.d.ts +0 -49
- package/dist/states/index.js +0 -416
- package/dist/states/index.js.map +0 -1
- package/dist/static/tastyStatic.d.ts +0 -46
- package/dist/static/tastyStatic.js +0 -31
- 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/align.d.ts +0 -15
- package/dist/styles/align.js +0 -14
- package/dist/styles/align.js.map +0 -1
- package/dist/styles/border.d.ts +0 -25
- package/dist/styles/border.js +0 -114
- package/dist/styles/border.js.map +0 -1
- package/dist/styles/color.d.ts +0 -14
- package/dist/styles/color.js +0 -23
- package/dist/styles/color.js.map +0 -1
- package/dist/styles/createStyle.js +0 -77
- package/dist/styles/createStyle.js.map +0 -1
- package/dist/styles/dimension.js +0 -97
- package/dist/styles/dimension.js.map +0 -1
- package/dist/styles/display.d.ts +0 -37
- package/dist/styles/display.js +0 -67
- package/dist/styles/display.js.map +0 -1
- package/dist/styles/fade.d.ts +0 -15
- package/dist/styles/fade.js +0 -58
- 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 -37
- package/dist/styles/gap.js.map +0 -1
- package/dist/styles/height.d.ts +0 -17
- package/dist/styles/height.js +0 -20
- package/dist/styles/height.js.map +0 -1
- package/dist/styles/index.d.ts +0 -2
- package/dist/styles/index.js +0 -9
- package/dist/styles/index.js.map +0 -1
- package/dist/styles/inset.d.ts +0 -52
- package/dist/styles/inset.js +0 -150
- package/dist/styles/inset.js.map +0 -1
- package/dist/styles/justify.d.ts +0 -15
- package/dist/styles/justify.js +0 -14
- package/dist/styles/justify.js.map +0 -1
- package/dist/styles/list.d.ts +0 -16
- package/dist/styles/list.js +0 -98
- package/dist/styles/list.js.map +0 -1
- package/dist/styles/margin.d.ts +0 -24
- package/dist/styles/margin.js +0 -104
- package/dist/styles/margin.js.map +0 -1
- package/dist/styles/outline.d.ts +0 -29
- package/dist/styles/outline.js +0 -65
- package/dist/styles/outline.js.map +0 -1
- package/dist/styles/padding.d.ts +0 -24
- package/dist/styles/padding.js +0 -104
- package/dist/styles/padding.js.map +0 -1
- package/dist/styles/predefined.d.ts +0 -73
- package/dist/styles/predefined.js +0 -241
- package/dist/styles/predefined.js.map +0 -1
- package/dist/styles/preset.d.ts +0 -47
- package/dist/styles/preset.js +0 -126
- package/dist/styles/preset.js.map +0 -1
- package/dist/styles/radius.d.ts +0 -14
- package/dist/styles/radius.js +0 -51
- package/dist/styles/radius.js.map +0 -1
- package/dist/styles/scrollbar.d.ts +0 -21
- package/dist/styles/scrollbar.js +0 -112
- package/dist/styles/scrollbar.js.map +0 -1
- package/dist/styles/shadow.d.ts +0 -14
- package/dist/styles/shadow.js +0 -24
- package/dist/styles/shadow.js.map +0 -1
- package/dist/styles/styledScrollbar.d.ts +0 -47
- package/dist/styles/styledScrollbar.js +0 -38
- package/dist/styles/styledScrollbar.js.map +0 -1
- package/dist/styles/transition.d.ts +0 -14
- package/dist/styles/transition.js +0 -158
- package/dist/styles/transition.js.map +0 -1
- package/dist/styles/types.d.ts +0 -498
- package/dist/styles/width.d.ts +0 -17
- package/dist/styles/width.js +0 -20
- package/dist/styles/width.js.map +0 -1
- package/dist/tasty.d.ts +0 -982
- package/dist/tasty.js +0 -206
- package/dist/tasty.js.map +0 -1
- package/dist/tokens/typography.d.ts +0 -19
- package/dist/tokens/typography.js +0 -237
- package/dist/tokens/typography.js.map +0 -1
- package/dist/types.d.ts +0 -184
- package/dist/utils/cache-wrapper.js +0 -26
- 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/colors.d.ts +0 -5
- package/dist/utils/colors.js +0 -9
- 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/hsl-to-rgb.js +0 -38
- package/dist/utils/hsl-to-rgb.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 -8
- package/dist/utils/mod-attrs.js +0 -21
- package/dist/utils/mod-attrs.js.map +0 -1
- package/dist/utils/okhsl-to-rgb.js +0 -296
- package/dist/utils/okhsl-to-rgb.js.map +0 -1
- package/dist/utils/process-tokens.d.ts +0 -31
- package/dist/utils/process-tokens.js +0 -171
- package/dist/utils/process-tokens.js.map +0 -1
- package/dist/utils/resolve-recipes.d.ts +0 -17
- package/dist/utils/resolve-recipes.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 -178
- package/dist/utils/styles.js +0 -590
- package/dist/utils/styles.js.map +0 -1
- package/dist/utils/typography.d.ts +0 -36
- package/dist/utils/typography.js +0 -53
- 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 -74
- package/dist/zero/css-writer.js.map +0 -1
- package/dist/zero/extractor.d.ts +0 -24
- package/dist/zero/extractor.js +0 -150
- package/dist/zero/extractor.js.map +0 -1
package/dist/static/index.d.ts
CHANGED
|
@@ -1,5 +1,91 @@
|
|
|
1
|
-
import { Styles } from "../
|
|
2
|
-
import { mergeStyles } from "../
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { b as Styles } from "../index-tcHuMPFt.js";
|
|
2
|
+
import { t as mergeStyles } from "../merge-styles-BMWcH6MF.js";
|
|
3
|
+
|
|
4
|
+
//#region src/static/types.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Static style definition returned by tastyStatic().
|
|
7
|
+
*
|
|
8
|
+
* Supports both explicit className access and implicit string coercion via toString().
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const button = tastyStatic({ fill: '#blue' });
|
|
13
|
+
*
|
|
14
|
+
* // Both work in JSX:
|
|
15
|
+
* <div className={button} /> // Uses toString()
|
|
16
|
+
* <div className={button.className} /> // Explicit
|
|
17
|
+
*
|
|
18
|
+
* // Extension:
|
|
19
|
+
* const primary = tastyStatic(button, { fill: '#purple' });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
interface StaticStyle {
|
|
23
|
+
/**
|
|
24
|
+
* Generated className(s) for use in JSX.
|
|
25
|
+
* May contain multiple space-separated class names due to chunking.
|
|
26
|
+
*/
|
|
27
|
+
className: string;
|
|
28
|
+
/**
|
|
29
|
+
* The original (or merged) styles object.
|
|
30
|
+
* Available for extension via tastyStatic(base, overrides).
|
|
31
|
+
*/
|
|
32
|
+
styles: Styles;
|
|
33
|
+
/**
|
|
34
|
+
* Returns className for implicit string coercion.
|
|
35
|
+
* Enables `<div className={button} />` syntax.
|
|
36
|
+
*/
|
|
37
|
+
toString(): string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create a StaticStyle object.
|
|
41
|
+
* Used internally by the Babel plugin to generate output.
|
|
42
|
+
*/
|
|
43
|
+
declare function createStaticStyle(className: string, styles: Styles): StaticStyle;
|
|
44
|
+
/**
|
|
45
|
+
* Type guard to check if a value is a StaticStyle object.
|
|
46
|
+
*/
|
|
47
|
+
declare function isStaticStyle(value: unknown): value is StaticStyle;
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/static/tastyStatic.d.ts
|
|
50
|
+
/**
|
|
51
|
+
* Generate styles and return a StaticStyle object.
|
|
52
|
+
* The object has `className`, `styles`, and `toString()`.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const button = tastyStatic({
|
|
57
|
+
* fill: '#blue',
|
|
58
|
+
* padding: '2x',
|
|
59
|
+
* });
|
|
60
|
+
* // After build: { className: 'ts3f2a1b', styles: {...}, toString() }
|
|
61
|
+
*
|
|
62
|
+
* <div className={button} /> // Works via toString()
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
declare function tastyStatic(styles: Styles): StaticStyle;
|
|
66
|
+
/**
|
|
67
|
+
* Extend an existing StaticStyle with additional styles.
|
|
68
|
+
* Uses mergeStyles() internally for proper nested selector handling.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const button = tastyStatic({ fill: '#blue' });
|
|
73
|
+
* const primary = tastyStatic(button, { fill: '#purple' });
|
|
74
|
+
* // After build: { className: 'ts8c4d2e', styles: {...merged...}, toString() }
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
declare function tastyStatic(base: StaticStyle, styles: Styles): StaticStyle;
|
|
78
|
+
/**
|
|
79
|
+
* Generate styles for a specific CSS selector.
|
|
80
|
+
* The call is completely removed after build transformation.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* tastyStatic('.heading', { preset: 'h1', color: '#primary' });
|
|
85
|
+
* // After build: (removed)
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
declare function tastyStatic(selector: string, styles: Styles): void;
|
|
89
|
+
//#endregion
|
|
90
|
+
export { type StaticStyle, type Styles, createStaticStyle, isStaticStyle, mergeStyles, tastyStatic };
|
|
91
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/static/index.js
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
|
-
import { mergeStyles } from "../
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { t as mergeStyles } from "../merge-styles-Cd2vBl9b.js";
|
|
2
|
+
//#region src/static/types.ts
|
|
3
|
+
/**
|
|
4
|
+
* Create a StaticStyle object.
|
|
5
|
+
* Used internally by the Babel plugin to generate output.
|
|
6
|
+
*/
|
|
7
|
+
function createStaticStyle(className, styles) {
|
|
8
|
+
return {
|
|
9
|
+
className,
|
|
10
|
+
styles,
|
|
11
|
+
toString() {
|
|
12
|
+
return this.className;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Type guard to check if a value is a StaticStyle object.
|
|
18
|
+
*/
|
|
19
|
+
function isStaticStyle(value) {
|
|
20
|
+
return typeof value === "object" && value !== null && "className" in value && "styles" in value && "toString" in value && typeof value.className === "string" && typeof value.styles === "object";
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/static/tastyStatic.ts
|
|
24
|
+
/**
|
|
25
|
+
* Build-time only function for zero-runtime static site generation.
|
|
26
|
+
*
|
|
27
|
+
* This function is transformed by the Babel plugin:
|
|
28
|
+
* - `tastyStatic(styles)` → StaticStyle object with className
|
|
29
|
+
* - `tastyStatic(base, styles)` → StaticStyle object with merged styles
|
|
30
|
+
* - `tastyStatic(selector, styles)` → removed entirely
|
|
31
|
+
*
|
|
32
|
+
* At runtime (during development/build), this function returns a placeholder.
|
|
33
|
+
* In production, all calls are replaced/removed by the build plugin.
|
|
34
|
+
*/
|
|
35
|
+
function tastyStatic(stylesOrBaseOrSelector, styles) {
|
|
36
|
+
if (typeof stylesOrBaseOrSelector === "string") {
|
|
37
|
+
console.warn(`[tasty] tastyStatic('${stylesOrBaseOrSelector}', styles) was called at runtime. This indicates the Babel plugin is not configured. Add @tenphi/tasty/babel-plugin to your Babel config.`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (isStaticStyle(stylesOrBaseOrSelector)) {
|
|
41
|
+
console.warn("[tasty] tastyStatic(base, styles) was called at runtime. This indicates the Babel plugin is not configured. Add @tenphi/tasty/babel-plugin to your Babel config.");
|
|
42
|
+
return createStaticStyle("__TASTY_STATIC_NOT_TRANSFORMED__", mergeStyles(stylesOrBaseOrSelector.styles, styles || {}));
|
|
43
|
+
}
|
|
44
|
+
console.warn("[tasty] tastyStatic(styles) was called at runtime. This indicates the Babel plugin is not configured. Add @tenphi/tasty/babel-plugin to your Babel config.");
|
|
45
|
+
return createStaticStyle("__TASTY_STATIC_NOT_TRANSFORMED__", stylesOrBaseOrSelector);
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { createStaticStyle, isStaticStyle, mergeStyles, tastyStatic };
|
|
4
49
|
|
|
5
|
-
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/static/types.ts","../../src/static/tastyStatic.ts"],"sourcesContent":["import type { Styles } from '../styles/types';\n\n/**\n * Static style definition returned by tastyStatic().\n *\n * Supports both explicit className access and implicit string coercion via toString().\n *\n * @example\n * ```typescript\n * const button = tastyStatic({ fill: '#blue' });\n *\n * // Both work in JSX:\n * <div className={button} /> // Uses toString()\n * <div className={button.className} /> // Explicit\n *\n * // Extension:\n * const primary = tastyStatic(button, { fill: '#purple' });\n * ```\n */\nexport interface StaticStyle {\n /**\n * Generated className(s) for use in JSX.\n * May contain multiple space-separated class names due to chunking.\n */\n className: string;\n\n /**\n * The original (or merged) styles object.\n * Available for extension via tastyStatic(base, overrides).\n */\n styles: Styles;\n\n /**\n * Returns className for implicit string coercion.\n * Enables `<div className={button} />` syntax.\n */\n toString(): string;\n}\n\n/**\n * Create a StaticStyle object.\n * Used internally by the Babel plugin to generate output.\n */\nexport function createStaticStyle(\n className: string,\n styles: Styles,\n): StaticStyle {\n return {\n className,\n styles,\n toString() {\n return this.className;\n },\n };\n}\n\n/**\n * Type guard to check if a value is a StaticStyle object.\n */\nexport function isStaticStyle(value: unknown): value is StaticStyle {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'className' in value &&\n 'styles' in value &&\n 'toString' in value &&\n typeof (value as StaticStyle).className === 'string' &&\n typeof (value as StaticStyle).styles === 'object'\n );\n}\n","import type { Styles } from '../styles/types';\nimport { mergeStyles } from '../utils/merge-styles';\n\nimport type { StaticStyle } from './types';\nimport { createStaticStyle, isStaticStyle } from './types';\n\n/**\n * Generate styles and return a StaticStyle object.\n * The object has `className`, `styles`, and `toString()`.\n *\n * @example\n * ```typescript\n * const button = tastyStatic({\n * fill: '#blue',\n * padding: '2x',\n * });\n * // After build: { className: 'ts3f2a1b', styles: {...}, toString() }\n *\n * <div className={button} /> // Works via toString()\n * ```\n */\nexport function tastyStatic(styles: Styles): StaticStyle;\n\n/**\n * Extend an existing StaticStyle with additional styles.\n * Uses mergeStyles() internally for proper nested selector handling.\n *\n * @example\n * ```typescript\n * const button = tastyStatic({ fill: '#blue' });\n * const primary = tastyStatic(button, { fill: '#purple' });\n * // After build: { className: 'ts8c4d2e', styles: {...merged...}, toString() }\n * ```\n */\nexport function tastyStatic(base: StaticStyle, styles: Styles): StaticStyle;\n\n/**\n * Generate styles for a specific CSS selector.\n * The call is completely removed after build transformation.\n *\n * @example\n * ```typescript\n * tastyStatic('.heading', { preset: 'h1', color: '#primary' });\n * // After build: (removed)\n * ```\n */\nexport function tastyStatic(selector: string, styles: Styles): void;\n\n/**\n * Build-time only function for zero-runtime static site generation.\n *\n * This function is transformed by the Babel plugin:\n * - `tastyStatic(styles)` → StaticStyle object with className\n * - `tastyStatic(base, styles)` → StaticStyle object with merged styles\n * - `tastyStatic(selector, styles)` → removed entirely\n *\n * At runtime (during development/build), this function returns a placeholder.\n * In production, all calls are replaced/removed by the build plugin.\n */\nexport function tastyStatic(\n stylesOrBaseOrSelector: Styles | StaticStyle | string,\n styles?: Styles,\n): StaticStyle | void {\n // This code only executes if the Babel plugin hasn't processed the file yet.\n // In a properly configured build, this function is never called at runtime.\n\n if (typeof stylesOrBaseOrSelector === 'string') {\n // Selector mode: tastyStatic(selector, styles)\n // The plugin will remove this call entirely\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `[tasty] tastyStatic('${stylesOrBaseOrSelector}', styles) was called at runtime. ` +\n 'This indicates the Babel plugin is not configured. ' +\n 'Add @tenphi/tasty/babel-plugin to your Babel config.',\n );\n }\n return; // void\n }\n\n if (isStaticStyle(stylesOrBaseOrSelector)) {\n // Extension mode: tastyStatic(base, styles)\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n '[tasty] tastyStatic(base, styles) was called at runtime. ' +\n 'This indicates the Babel plugin is not configured. ' +\n 'Add @tenphi/tasty/babel-plugin to your Babel config.',\n );\n }\n // Merge styles for dev mode preview (won't have real classNames)\n const mergedStyles = mergeStyles(\n stylesOrBaseOrSelector.styles,\n styles || {},\n );\n return createStaticStyle('__TASTY_STATIC_NOT_TRANSFORMED__', mergedStyles);\n }\n\n // Styles mode: tastyStatic(styles)\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n '[tasty] tastyStatic(styles) was called at runtime. ' +\n 'This indicates the Babel plugin is not configured. ' +\n 'Add @tenphi/tasty/babel-plugin to your Babel config.',\n );\n }\n\n // Return placeholder - styles won't be applied without the plugin\n return createStaticStyle(\n '__TASTY_STATIC_NOT_TRANSFORMED__',\n stylesOrBaseOrSelector,\n );\n}\n"],"mappings":";;;;;;AA2CA,SAAgB,kBACd,WACA,QACa;CACb,OAAO;EACL;EACA;EACA,WAAW;GACT,OAAO,KAAK;;EAEf;;;;;AAMH,SAAgB,cAAc,OAAsC;CAClE,OACE,OAAO,UAAU,YACjB,UAAU,QACV,eAAe,SACf,YAAY,SACZ,cAAc,SACd,OAAQ,MAAsB,cAAc,YAC5C,OAAQ,MAAsB,WAAW;;;;;;;;;;;;;;;ACR7C,SAAgB,YACd,wBACA,QACoB;CAIpB,IAAI,OAAO,2BAA2B,UAAU;EAI5C,QAAQ,KACN,wBAAwB,uBAAuB,2IAGhD;EAEH;;CAGF,IAAI,cAAc,uBAAuB,EAAE;EAGvC,QAAQ,KACN,mKAGD;EAOH,OAAO,kBAAkB,oCAJJ,YACnB,uBAAuB,QACvB,UAAU,EAAE,CAE2D,CAAC;;CAK1E,QAAQ,KACN,6JAGD;CAIH,OAAO,kBACL,oCACA,uBACD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/static/inject.ts
|
|
2
|
+
const _ids = /* @__PURE__ */ new Set();
|
|
3
|
+
function injectCSS(id, css) {
|
|
4
|
+
if (_ids.has(id) || typeof document === "undefined") return;
|
|
5
|
+
_ids.add(id);
|
|
6
|
+
let el = document.head.querySelector("style[data-tasty-static]");
|
|
7
|
+
if (!el) {
|
|
8
|
+
el = document.createElement("style");
|
|
9
|
+
el.setAttribute("data-tasty-static", "");
|
|
10
|
+
document.head.appendChild(el);
|
|
11
|
+
}
|
|
12
|
+
el.appendChild(document.createTextNode(css + "\n"));
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { injectCSS };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.js","names":[],"sources":["../../src/static/inject.ts"],"sourcesContent":["const _ids = new Set<string>();\n\nexport function injectCSS(id: string, css: string): void {\n if (_ids.has(id) || typeof document === 'undefined') return;\n _ids.add(id);\n let el = document.head.querySelector(\n 'style[data-tasty-static]',\n ) as HTMLStyleElement | null;\n if (!el) {\n el = document.createElement('style');\n el.setAttribute('data-tasty-static', '');\n document.head.appendChild(el);\n }\n el.appendChild(document.createTextNode(css + '\\n'));\n}\n"],"mappings":";AAAA,MAAM,uBAAO,IAAI,KAAa;AAE9B,SAAgB,UAAU,IAAY,KAAmB;CACvD,IAAI,KAAK,IAAI,GAAG,IAAI,OAAO,aAAa,aAAa;CACrD,KAAK,IAAI,GAAG;CACZ,IAAI,KAAK,SAAS,KAAK,cACrB,2BACD;CACD,IAAI,CAAC,IAAI;EACP,KAAK,SAAS,cAAc,QAAQ;EACpC,GAAG,aAAa,qBAAqB,GAAG;EACxC,SAAS,KAAK,YAAY,GAAG;;CAE/B,GAAG,YAAY,SAAS,eAAe,MAAM,KAAK,CAAC"}
|
package/dist/zero/babel.d.ts
CHANGED
|
@@ -1,108 +1,81 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { StyleHandlerDefinition } from "../utils/styles.js";
|
|
4
|
-
import { RecipeStyles } from "../styles/types.js";
|
|
5
|
-
import { TastyPlugin } from "../plugins/types.js";
|
|
6
|
-
import * as _babel_core0 from "@babel/core";
|
|
1
|
+
import { t as TastyConfig } from "../config-BoZDUHW5.js";
|
|
2
|
+
import * as _$_babel_core0 from "@babel/core";
|
|
7
3
|
import { PluginPass } from "@babel/core";
|
|
8
4
|
|
|
9
5
|
//#region src/zero/babel.d.ts
|
|
10
6
|
/**
|
|
11
7
|
* Build-time configuration for zero-runtime mode.
|
|
12
|
-
* Subset of TastyConfig
|
|
8
|
+
* Subset of TastyConfig excluding runtime-only DOM options
|
|
9
|
+
* (`nonce`, `maxRulesPerSheet`, `forceTextInjection`, `gc`)
|
|
10
|
+
* and overriding `devMode` default to `false`.
|
|
13
11
|
*/
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Global predefined states for advanced state mapping.
|
|
17
|
-
* Example: { '@mobile': '@media(w < 768px)', '@dark': '@root(theme=dark)' }
|
|
18
|
-
*/
|
|
19
|
-
states?: Record<string, string>;
|
|
12
|
+
type TastyZeroConfig = Omit<TastyConfig, 'nonce' | 'maxRulesPerSheet' | 'forceTextInjection' | 'gc' | 'devMode'> & {
|
|
20
13
|
/**
|
|
21
14
|
* Enable development mode features: source comments in generated CSS.
|
|
22
|
-
*
|
|
15
|
+
* @default false
|
|
23
16
|
*/
|
|
24
17
|
devMode?: boolean;
|
|
18
|
+
};
|
|
19
|
+
interface TastyZeroBabelOptions {
|
|
20
|
+
/** Output path for generated CSS (default: 'tasty.css') */
|
|
21
|
+
output?: string;
|
|
25
22
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Custom units for the style parser (merged with built-in units).
|
|
32
|
-
* Units transform numeric values like `2x` → `calc(2 * var(--gap))`.
|
|
33
|
-
* @example { em: 'em', vw: 'vw', custom: (n) => `${n * 10}px` }
|
|
34
|
-
*/
|
|
35
|
-
units?: Record<string, string | UnitHandler>;
|
|
36
|
-
/**
|
|
37
|
-
* Custom functions for the style parser (merged with existing).
|
|
38
|
-
* Functions process parsed style groups and return CSS values.
|
|
39
|
-
* @example { myFunc: (groups) => groups.map(g => g.output).join(' ') }
|
|
23
|
+
* Tasty configuration for build-time processing.
|
|
24
|
+
* Can be a static object or a factory function that returns fresh config.
|
|
25
|
+
* A factory is called on each plugin invocation, enabling hot reload
|
|
26
|
+
* of config values that depend on external files (e.g. theme tokens).
|
|
40
27
|
*/
|
|
41
|
-
|
|
28
|
+
config?: TastyZeroConfig | (() => TastyZeroConfig);
|
|
42
29
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* ```ts
|
|
47
|
-
* import { okhslPlugin } from '@tenphi/tasty';
|
|
30
|
+
* Absolute path to a TypeScript/JavaScript module that default-exports
|
|
31
|
+
* a `TastyZeroConfig` object. The module is loaded via jiti on each
|
|
32
|
+
* plugin invocation, enabling hot reload when the file changes.
|
|
48
33
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* };
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
plugins?: TastyPlugin[];
|
|
60
|
-
/**
|
|
61
|
-
* Global keyframes definitions for static extraction.
|
|
62
|
-
* Keys are animation names, values are keyframes step definitions.
|
|
63
|
-
* @example { fadeIn: { from: { opacity: 0 }, to: { opacity: 1 } } }
|
|
34
|
+
* This option is JSON-serializable and is the primary way Turbopack
|
|
35
|
+
* passes config to the Babel plugin (since Turbopack loader options
|
|
36
|
+
* must be plain primitives/objects/arrays).
|
|
37
|
+
*
|
|
38
|
+
* When both `config` and `configFile` are set, `config` takes precedence.
|
|
39
|
+
*
|
|
40
|
+
* @example '/absolute/path/to/tasty-zero.config.ts'
|
|
64
41
|
*/
|
|
65
|
-
|
|
42
|
+
configFile?: string;
|
|
66
43
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* elevation: ({ elevation }) => ({
|
|
74
|
-
* 'box-shadow': `0 ${elevation}px ${elevation * 2}px rgba(0,0,0,0.1)`,
|
|
75
|
-
* }),
|
|
76
|
-
* }
|
|
77
|
-
* ```
|
|
44
|
+
* Absolute file paths whose content affects the generated CSS.
|
|
45
|
+
* When any of these files change, babel-loader invalidates its cache
|
|
46
|
+
* and re-runs the plugin with fresh config values.
|
|
47
|
+
*
|
|
48
|
+
* Typically includes theme files that define Glaze palettes or token values.
|
|
49
|
+
* Paths must be absolute (resolved by the Next.js wrapper).
|
|
78
50
|
*/
|
|
79
|
-
|
|
51
|
+
configDeps?: string[];
|
|
80
52
|
/**
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
53
|
+
* Automatically replace `@tenphi/tasty/static` imports with an import
|
|
54
|
+
* of the generated CSS file. This eliminates the need for users to
|
|
55
|
+
* manually import the CSS in their app entry point.
|
|
56
|
+
*
|
|
57
|
+
* @default true
|
|
84
58
|
*/
|
|
85
|
-
|
|
59
|
+
injectImport?: boolean;
|
|
86
60
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
61
|
+
* Output mode for extracted CSS.
|
|
62
|
+
*
|
|
63
|
+
* - `'file'` (default): CSS is written to a single output file and
|
|
64
|
+
* the `@tenphi/tasty/static` import is rewritten to import that file.
|
|
65
|
+
* - `'inject'`: CSS is embedded inline in the JS output and injected
|
|
66
|
+
* at runtime via a tiny injector from `@tenphi/tasty/static/inject`.
|
|
67
|
+
* No CSS file is written. Each `tastyStatic` call becomes
|
|
68
|
+
* self-contained. Best for reusable components and extensions.
|
|
69
|
+
*
|
|
70
|
+
* When `mode` is `'inject'`, `output` and `injectImport` are ignored.
|
|
71
|
+
*
|
|
72
|
+
* @default 'file'
|
|
96
73
|
*/
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
interface TastyZeroBabelOptions {
|
|
100
|
-
/** Output path for generated CSS (default: 'tasty.css') */
|
|
101
|
-
output?: string;
|
|
102
|
-
/** Tasty configuration for build-time processing */
|
|
103
|
-
config?: TastyZeroConfig;
|
|
74
|
+
mode?: 'file' | 'inject';
|
|
104
75
|
}
|
|
105
|
-
|
|
76
|
+
/** Clear the shared CSSWriter cache. Exposed for testing. */
|
|
77
|
+
declare function clearWriterCache(): void;
|
|
78
|
+
declare const _default: (api: object, options: TastyZeroBabelOptions | null | undefined, dirname: string) => _$_babel_core0.PluginObj<PluginPass>;
|
|
106
79
|
//#endregion
|
|
107
|
-
export { TastyZeroBabelOptions, TastyZeroConfig, _default as default };
|
|
80
|
+
export { TastyZeroBabelOptions, TastyZeroConfig, clearWriterCache, _default as default };
|
|
108
81
|
//# sourceMappingURL=babel.d.ts.map
|