@mochi-css/vanilla 3.0.0 → 4.0.0
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/dist/config/index.d.mts +78 -0
- package/dist/config/index.d.ts +78 -0
- package/dist/config/index.js +302 -0
- package/dist/config/index.mjs +284 -0
- package/dist/index.d.mts +15 -35
- package/dist/index.d.ts +15 -35
- package/dist/index.js +26 -1909
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1859
- package/dist/index.mjs.map +1 -1
- package/dist/src-CGK_rB-l.js +2011 -0
- package/dist/src-CJmAtVxm.mjs +1838 -0
- package/package.json +53 -10
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { a as GlobalCssObject, c as KeyframesObject, d as isMochiCSS, f as mergeMochiCss, l as MochiCSS, p as CSSObject } from "../src-CJmAtVxm.mjs";
|
|
2
|
+
import { createExtractorsPlugin } from "@mochi-css/plugins";
|
|
3
|
+
import { getErrorMessage } from "@mochi-css/builder";
|
|
4
|
+
import { styledIdPlugin } from "@mochi-css/config";
|
|
5
|
+
|
|
6
|
+
//#region src/config/VanillaCssGenerator.ts
|
|
7
|
+
const emptySpan = {
|
|
8
|
+
start: 0,
|
|
9
|
+
end: 0,
|
|
10
|
+
ctxt: 0
|
|
11
|
+
};
|
|
12
|
+
function strLit(value) {
|
|
13
|
+
return {
|
|
14
|
+
type: "StringLiteral",
|
|
15
|
+
span: emptySpan,
|
|
16
|
+
value,
|
|
17
|
+
raw: void 0
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function arrExpr(elements) {
|
|
21
|
+
return {
|
|
22
|
+
type: "ArrayExpression",
|
|
23
|
+
span: emptySpan,
|
|
24
|
+
elements: elements.map((e) => ({ expression: e }))
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function objExpr(properties) {
|
|
28
|
+
return {
|
|
29
|
+
type: "ObjectExpression",
|
|
30
|
+
span: emptySpan,
|
|
31
|
+
properties: properties.map(([key, value]) => ({
|
|
32
|
+
type: "KeyValueProperty",
|
|
33
|
+
key: strLit(key),
|
|
34
|
+
value
|
|
35
|
+
}))
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function mochiCssNode(instance) {
|
|
39
|
+
const classNamesNode = arrExpr(instance.classNames.map(strLit));
|
|
40
|
+
const variantClassNamesNode = objExpr(Object.entries(instance.variantClassNames).map(([varKey, opts]) => [varKey, objExpr(Object.entries(opts).map(([optKey, cls]) => [optKey, strLit(cls)]))]));
|
|
41
|
+
const defaultVariantsNode = objExpr(Object.entries(instance.defaultVariants).filter(([, v]) => v != null).map(([k, v]) => [k, strLit(String(v))]));
|
|
42
|
+
return {
|
|
43
|
+
type: "NewExpression",
|
|
44
|
+
span: emptySpan,
|
|
45
|
+
ctxt: 0,
|
|
46
|
+
callee: {
|
|
47
|
+
type: "Identifier",
|
|
48
|
+
span: emptySpan,
|
|
49
|
+
ctxt: 0,
|
|
50
|
+
value: "MochiCSS",
|
|
51
|
+
optional: false
|
|
52
|
+
},
|
|
53
|
+
arguments: [
|
|
54
|
+
{ expression: classNamesNode },
|
|
55
|
+
{ expression: variantClassNamesNode },
|
|
56
|
+
{ expression: defaultVariantsNode }
|
|
57
|
+
]
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
var VanillaCssGenerator = class {
|
|
61
|
+
collectedStyles = [];
|
|
62
|
+
generatedMochiCss = [];
|
|
63
|
+
constructor(onDiagnostic) {
|
|
64
|
+
this.onDiagnostic = onDiagnostic;
|
|
65
|
+
}
|
|
66
|
+
collectArgs(source, args) {
|
|
67
|
+
const validArgs = [];
|
|
68
|
+
let stableId;
|
|
69
|
+
for (const arg of args) {
|
|
70
|
+
if (typeof arg === "string") {
|
|
71
|
+
stableId = arg;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (arg == null || typeof arg !== "object") {
|
|
75
|
+
this.onDiagnostic?.({
|
|
76
|
+
code: "MOCHI_INVALID_STYLE_ARG",
|
|
77
|
+
message: `Expected style object, got ${arg === null ? "null" : typeof arg}`,
|
|
78
|
+
severity: "warning",
|
|
79
|
+
file: source
|
|
80
|
+
});
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (isMochiCSS(arg)) continue;
|
|
84
|
+
validArgs.push(arg);
|
|
85
|
+
}
|
|
86
|
+
if (validArgs.length > 0) this.collectedStyles.push({
|
|
87
|
+
source,
|
|
88
|
+
args: validArgs,
|
|
89
|
+
stableId
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async generateStyles() {
|
|
93
|
+
this.generatedMochiCss = [];
|
|
94
|
+
const filesCss = /* @__PURE__ */ new Map();
|
|
95
|
+
for (const { source, args, stableId } of this.collectedStyles) {
|
|
96
|
+
let css = filesCss.get(source);
|
|
97
|
+
if (!css) {
|
|
98
|
+
css = /* @__PURE__ */ new Set();
|
|
99
|
+
filesCss.set(source, css);
|
|
100
|
+
}
|
|
101
|
+
const mochiInstances = [];
|
|
102
|
+
for (const style of args) try {
|
|
103
|
+
const cssObj = new CSSObject(style, stableId);
|
|
104
|
+
css.add(cssObj.asCssString());
|
|
105
|
+
mochiInstances.push(MochiCSS.from(cssObj));
|
|
106
|
+
} catch (err) {
|
|
107
|
+
const message = getErrorMessage(err);
|
|
108
|
+
this.onDiagnostic?.({
|
|
109
|
+
code: "MOCHI_STYLE_GENERATION",
|
|
110
|
+
message: `Failed to generate CSS: ${message}`,
|
|
111
|
+
severity: "warning",
|
|
112
|
+
file: source
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
if (mochiInstances.length > 0) this.generatedMochiCss.push({
|
|
116
|
+
source,
|
|
117
|
+
instance: mergeMochiCss(mochiInstances)
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
const files = {};
|
|
121
|
+
for (const [source, css] of filesCss) files[source] = [...css.values()].sort().join("\n\n");
|
|
122
|
+
return { files };
|
|
123
|
+
}
|
|
124
|
+
getArgReplacements() {
|
|
125
|
+
return this.generatedMochiCss.map(({ source, instance }) => ({
|
|
126
|
+
source,
|
|
127
|
+
expression: mochiCssNode(instance)
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
//#endregion
|
|
133
|
+
//#region src/config/VanillaCssExtractor.ts
|
|
134
|
+
var VanillaCssExtractor = class {
|
|
135
|
+
importPath;
|
|
136
|
+
symbolName;
|
|
137
|
+
constructor(importPath, symbolName, extractor) {
|
|
138
|
+
this.extractor = extractor;
|
|
139
|
+
this.importPath = importPath;
|
|
140
|
+
this.symbolName = symbolName;
|
|
141
|
+
}
|
|
142
|
+
extractStaticArgs(call) {
|
|
143
|
+
return this.extractor(call);
|
|
144
|
+
}
|
|
145
|
+
startGeneration(onDiagnostic) {
|
|
146
|
+
return new VanillaCssGenerator(onDiagnostic);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const mochiCssFunctionExtractor = new VanillaCssExtractor("@mochi-css/vanilla", "css", (call) => call.arguments.map((a) => a.expression));
|
|
150
|
+
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region src/config/VanillaKeyframesGenerator.ts
|
|
153
|
+
var VanillaKeyframesGenerator = class {
|
|
154
|
+
collectedStyles = [];
|
|
155
|
+
constructor(onDiagnostic) {
|
|
156
|
+
this.onDiagnostic = onDiagnostic;
|
|
157
|
+
}
|
|
158
|
+
collectArgs(source, args) {
|
|
159
|
+
if (args.length === 0 || args[0] == null || typeof args[0] !== "object") {
|
|
160
|
+
this.onDiagnostic?.({
|
|
161
|
+
code: "MOCHI_INVALID_STYLE_ARG",
|
|
162
|
+
message: `Expected keyframe stops object, got ${args[0] === null ? "null" : typeof args[0]}`,
|
|
163
|
+
severity: "warning",
|
|
164
|
+
file: source
|
|
165
|
+
});
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
this.collectedStyles.push({
|
|
169
|
+
source,
|
|
170
|
+
stops: args[0]
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
async generateStyles() {
|
|
174
|
+
const filesCss = /* @__PURE__ */ new Map();
|
|
175
|
+
for (const { source, stops } of this.collectedStyles) {
|
|
176
|
+
let css = filesCss.get(source);
|
|
177
|
+
if (!css) {
|
|
178
|
+
css = /* @__PURE__ */ new Set();
|
|
179
|
+
filesCss.set(source, css);
|
|
180
|
+
}
|
|
181
|
+
try {
|
|
182
|
+
const obj = new KeyframesObject(stops);
|
|
183
|
+
css.add(obj.asCssString());
|
|
184
|
+
} catch (err) {
|
|
185
|
+
const message = getErrorMessage(err);
|
|
186
|
+
this.onDiagnostic?.({
|
|
187
|
+
code: "MOCHI_STYLE_GENERATION",
|
|
188
|
+
message: `Failed to generate keyframes CSS: ${message}`,
|
|
189
|
+
severity: "warning",
|
|
190
|
+
file: source
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const files = {};
|
|
195
|
+
for (const [source, css] of filesCss) files[source] = [...css.values()].sort().join("\n\n");
|
|
196
|
+
return { files };
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
//#endregion
|
|
201
|
+
//#region src/config/VanillaKeyframesExtractor.ts
|
|
202
|
+
var VanillaKeyframesExtractor = class {
|
|
203
|
+
importPath = "@mochi-css/vanilla";
|
|
204
|
+
symbolName = "keyframes";
|
|
205
|
+
extractStaticArgs(call) {
|
|
206
|
+
return call.arguments.slice(0, 1).map((a) => a.expression);
|
|
207
|
+
}
|
|
208
|
+
startGeneration(onDiagnostic) {
|
|
209
|
+
return new VanillaKeyframesGenerator(onDiagnostic);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
const mochiKeyframesFunctionExtractor = new VanillaKeyframesExtractor();
|
|
213
|
+
|
|
214
|
+
//#endregion
|
|
215
|
+
//#region src/config/VanillaGlobalCssGenerator.ts
|
|
216
|
+
var VanillaGlobalCssGenerator = class {
|
|
217
|
+
collectedStyles = [];
|
|
218
|
+
constructor(onDiagnostic) {
|
|
219
|
+
this.onDiagnostic = onDiagnostic;
|
|
220
|
+
}
|
|
221
|
+
collectArgs(source, args) {
|
|
222
|
+
if (args.length === 0 || args[0] == null || typeof args[0] !== "object") {
|
|
223
|
+
this.onDiagnostic?.({
|
|
224
|
+
code: "MOCHI_INVALID_STYLE_ARG",
|
|
225
|
+
message: `Expected global CSS styles object, got ${args[0] === null ? "null" : typeof args[0]}`,
|
|
226
|
+
severity: "warning",
|
|
227
|
+
file: source
|
|
228
|
+
});
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
this.collectedStyles.push({
|
|
232
|
+
source,
|
|
233
|
+
styles: args[0]
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
async generateStyles() {
|
|
237
|
+
const allCss = /* @__PURE__ */ new Set();
|
|
238
|
+
for (const { source, styles } of this.collectedStyles) try {
|
|
239
|
+
const obj = new GlobalCssObject(styles);
|
|
240
|
+
allCss.add(obj.asCssString());
|
|
241
|
+
} catch (err) {
|
|
242
|
+
const message = getErrorMessage(err);
|
|
243
|
+
this.onDiagnostic?.({
|
|
244
|
+
code: "MOCHI_STYLE_GENERATION",
|
|
245
|
+
message: `Failed to generate global CSS: ${message}`,
|
|
246
|
+
severity: "warning",
|
|
247
|
+
file: source
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
return { global: [...allCss].sort().join("\n\n") };
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
//#endregion
|
|
255
|
+
//#region src/config/VanillaGlobalCssExtractor.ts
|
|
256
|
+
var VanillaGlobalCssExtractor = class {
|
|
257
|
+
importPath = "@mochi-css/vanilla";
|
|
258
|
+
symbolName = "globalCss";
|
|
259
|
+
extractStaticArgs(call) {
|
|
260
|
+
return call.arguments.slice(0, 1).map((a) => a.expression);
|
|
261
|
+
}
|
|
262
|
+
startGeneration(onDiagnostic) {
|
|
263
|
+
return new VanillaGlobalCssGenerator(onDiagnostic);
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
const mochiGlobalCssFunctionExtractor = new VanillaGlobalCssExtractor();
|
|
267
|
+
|
|
268
|
+
//#endregion
|
|
269
|
+
//#region src/config/index.ts
|
|
270
|
+
const defaultVanillaExtractors = [
|
|
271
|
+
mochiCssFunctionExtractor,
|
|
272
|
+
mochiKeyframesFunctionExtractor,
|
|
273
|
+
mochiGlobalCssFunctionExtractor
|
|
274
|
+
];
|
|
275
|
+
function defineConfig(config) {
|
|
276
|
+
const { extractors = [],...rest } = config;
|
|
277
|
+
return {
|
|
278
|
+
...rest,
|
|
279
|
+
plugins: [createExtractorsPlugin([...defaultVanillaExtractors, ...extractors]), ...rest.plugins ?? []]
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
//#endregion
|
|
284
|
+
export { VanillaCssExtractor, VanillaCssGenerator, VanillaGlobalCssExtractor, VanillaGlobalCssGenerator, VanillaKeyframesExtractor, VanillaKeyframesGenerator, defineConfig, mochiCssFunctionExtractor, mochiGlobalCssFunctionExtractor, mochiKeyframesFunctionExtractor, styledIdPlugin };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ObsoleteProperties, Properties } from "csstype";
|
|
1
|
+
import { ObsoleteProperties, Properties, PropertiesHyphen } from "csstype";
|
|
2
|
+
import { numberToBase62, shortHash } from "@mochi-css/core";
|
|
2
3
|
|
|
3
4
|
//#region src/values/index.d.ts
|
|
4
5
|
type CssVar = `--${string}`;
|
|
@@ -274,7 +275,6 @@ declare const propertyUnits: {
|
|
|
274
275
|
readonly interestDelay: "ms";
|
|
275
276
|
readonly interestDelayEnd: "ms";
|
|
276
277
|
readonly interestDelayStart: "ms";
|
|
277
|
-
readonly itemFlow: "px";
|
|
278
278
|
readonly left: "px";
|
|
279
279
|
readonly letterSpacing: "px";
|
|
280
280
|
readonly lineHeight: "px";
|
|
@@ -414,12 +414,12 @@ declare const propertyUnits: {
|
|
|
414
414
|
readonly textSizeAdjust: "%";
|
|
415
415
|
readonly textUnderlineOffset: "px";
|
|
416
416
|
readonly timelineTrigger: "px";
|
|
417
|
-
readonly
|
|
418
|
-
readonly
|
|
419
|
-
readonly
|
|
420
|
-
readonly
|
|
421
|
-
readonly
|
|
422
|
-
readonly
|
|
417
|
+
readonly timelineTriggerActivationRange: "px";
|
|
418
|
+
readonly timelineTriggerActivationRangeEnd: "px";
|
|
419
|
+
readonly timelineTriggerActivationRangeStart: "px";
|
|
420
|
+
readonly timelineTriggerActiveRange: "px";
|
|
421
|
+
readonly timelineTriggerActiveRangeEnd: "px";
|
|
422
|
+
readonly timelineTriggerActiveRangeStart: "px";
|
|
423
423
|
readonly top: "px";
|
|
424
424
|
readonly transformOrigin: "px";
|
|
425
425
|
readonly transition: "ms";
|
|
@@ -650,7 +650,7 @@ declare class CSSObject<V extends AllVariants = DefaultVariants> {
|
|
|
650
650
|
}: MochiCSSProps<V>, className?: string);
|
|
651
651
|
/**
|
|
652
652
|
* Serializes the entire CSS object to a CSS string.
|
|
653
|
-
* Outputs main block first, then all variant blocks in sorted order.
|
|
653
|
+
* Outputs the main block first, then all variant blocks in sorted order.
|
|
654
654
|
* @returns Complete CSS string ready for injection into a stylesheet
|
|
655
655
|
*/
|
|
656
656
|
asCssString(): string;
|
|
@@ -737,7 +737,11 @@ declare class MochiKeyframes {
|
|
|
737
737
|
declare function keyframes(stops: KeyframeStops): MochiKeyframes;
|
|
738
738
|
//#endregion
|
|
739
739
|
//#region src/globalCssObject.d.ts
|
|
740
|
-
|
|
740
|
+
/** CSS properties accepting both camelCase and kebab-case names with permissive string values */
|
|
741
|
+
type GlobalCssProperties = { [K in keyof (Properties & PropertiesHyphen)]?: string | number } & Record<string, unknown>;
|
|
742
|
+
type GlobalCssStyles = {
|
|
743
|
+
[selector: string]: GlobalCssProperties | GlobalCssStyles;
|
|
744
|
+
};
|
|
741
745
|
/**
|
|
742
746
|
* CSS object model for global (non-scoped) styles.
|
|
743
747
|
* Accepts a map of CSS selectors to style objects and serializes them
|
|
@@ -811,28 +815,4 @@ interface SupportsHelper {
|
|
|
811
815
|
/** Helper for constructing `@supports` at-rule keys. */
|
|
812
816
|
declare const supports: SupportsHelper;
|
|
813
817
|
//#endregion
|
|
814
|
-
|
|
815
|
-
/**
|
|
816
|
-
* Hashing utilities for generating short, deterministic class names.
|
|
817
|
-
* Uses djb2 algorithm for fast string hashing.
|
|
818
|
-
* @module hash
|
|
819
|
-
*/
|
|
820
|
-
/**
|
|
821
|
-
* Converts a number to a base-62 string representation.
|
|
822
|
-
* @param num - The number to convert
|
|
823
|
-
* @param maxLength - Optional maximum length of the output string
|
|
824
|
-
* @returns Base-62 encoded string representation of the number
|
|
825
|
-
*/
|
|
826
|
-
declare function numberToBase62(num: number, maxLength?: number): string;
|
|
827
|
-
/**
|
|
828
|
-
* Generates a short hash string from input using the djb2 algorithm.
|
|
829
|
-
* Used to create unique, deterministic CSS class names from style content.
|
|
830
|
-
* @param input - The string to hash
|
|
831
|
-
* @param length - Maximum length of the hash output (default: 8)
|
|
832
|
-
* @returns A short, css-safe hash string
|
|
833
|
-
* @example
|
|
834
|
-
* shortHash("color: red;") // Returns something like "A1b2C3d4"
|
|
835
|
-
*/
|
|
836
|
-
declare function shortHash(input: string, length?: number): string;
|
|
837
|
-
//#endregion
|
|
838
|
-
export { AllVariants, type AtRuleKey, CSSObject, CompoundVariant, CssLike, CssLikeObject, CssObjectBlock, CssObjectSubBlock, CssVar, CssVarVal, DefaultVariants, GlobalCssObject, type GlobalCssStyles, type KeyframeStops, KeyframesObject, MergeCSSVariants, MochiCSS, MochiCSSProps, MochiKeyframes, MochiSelector, RefineVariants, type StyleProps, Token, VariantProps, camelToKebab, container, createToken, css, cssFromProps, globalCss, isAtRuleKey, isMochiCSS, kebabToCamel, keyframes, media, mergeMochiCss, numberToBase62, shortHash, supports };
|
|
818
|
+
export { AllVariants, type AtRuleKey, CSSObject, CompoundVariant, CssLike, CssLikeObject, CssObjectBlock, CssObjectSubBlock, CssVar, CssVarVal, DefaultVariants, GlobalCssObject, GlobalCssProperties, type GlobalCssStyles, type KeyframeStops, KeyframesObject, MergeCSSVariants, MochiCSS, MochiCSSProps, MochiKeyframes, MochiSelector, RefineVariantType, RefineVariants, type StyleProps, Token, VariantProps, camelToKebab, container, createToken, css, cssFromProps, globalCss, isAtRuleKey, isMochiCSS, kebabToCamel, keyframes, media, mergeMochiCss, numberToBase62, shortHash, supports };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ObsoleteProperties, Properties } from "csstype";
|
|
1
|
+
import { ObsoleteProperties, Properties, PropertiesHyphen } from "csstype";
|
|
2
|
+
import { numberToBase62, shortHash } from "@mochi-css/core";
|
|
2
3
|
|
|
3
4
|
//#region src/values/index.d.ts
|
|
4
5
|
type CssVar = `--${string}`;
|
|
@@ -274,7 +275,6 @@ declare const propertyUnits: {
|
|
|
274
275
|
readonly interestDelay: "ms";
|
|
275
276
|
readonly interestDelayEnd: "ms";
|
|
276
277
|
readonly interestDelayStart: "ms";
|
|
277
|
-
readonly itemFlow: "px";
|
|
278
278
|
readonly left: "px";
|
|
279
279
|
readonly letterSpacing: "px";
|
|
280
280
|
readonly lineHeight: "px";
|
|
@@ -414,12 +414,12 @@ declare const propertyUnits: {
|
|
|
414
414
|
readonly textSizeAdjust: "%";
|
|
415
415
|
readonly textUnderlineOffset: "px";
|
|
416
416
|
readonly timelineTrigger: "px";
|
|
417
|
-
readonly
|
|
418
|
-
readonly
|
|
419
|
-
readonly
|
|
420
|
-
readonly
|
|
421
|
-
readonly
|
|
422
|
-
readonly
|
|
417
|
+
readonly timelineTriggerActivationRange: "px";
|
|
418
|
+
readonly timelineTriggerActivationRangeEnd: "px";
|
|
419
|
+
readonly timelineTriggerActivationRangeStart: "px";
|
|
420
|
+
readonly timelineTriggerActiveRange: "px";
|
|
421
|
+
readonly timelineTriggerActiveRangeEnd: "px";
|
|
422
|
+
readonly timelineTriggerActiveRangeStart: "px";
|
|
423
423
|
readonly top: "px";
|
|
424
424
|
readonly transformOrigin: "px";
|
|
425
425
|
readonly transition: "ms";
|
|
@@ -650,7 +650,7 @@ declare class CSSObject<V extends AllVariants = DefaultVariants> {
|
|
|
650
650
|
}: MochiCSSProps<V>, className?: string);
|
|
651
651
|
/**
|
|
652
652
|
* Serializes the entire CSS object to a CSS string.
|
|
653
|
-
* Outputs main block first, then all variant blocks in sorted order.
|
|
653
|
+
* Outputs the main block first, then all variant blocks in sorted order.
|
|
654
654
|
* @returns Complete CSS string ready for injection into a stylesheet
|
|
655
655
|
*/
|
|
656
656
|
asCssString(): string;
|
|
@@ -737,7 +737,11 @@ declare class MochiKeyframes {
|
|
|
737
737
|
declare function keyframes(stops: KeyframeStops): MochiKeyframes;
|
|
738
738
|
//#endregion
|
|
739
739
|
//#region src/globalCssObject.d.ts
|
|
740
|
-
|
|
740
|
+
/** CSS properties accepting both camelCase and kebab-case names with permissive string values */
|
|
741
|
+
type GlobalCssProperties = { [K in keyof (Properties & PropertiesHyphen)]?: string | number } & Record<string, unknown>;
|
|
742
|
+
type GlobalCssStyles = {
|
|
743
|
+
[selector: string]: GlobalCssProperties | GlobalCssStyles;
|
|
744
|
+
};
|
|
741
745
|
/**
|
|
742
746
|
* CSS object model for global (non-scoped) styles.
|
|
743
747
|
* Accepts a map of CSS selectors to style objects and serializes them
|
|
@@ -811,29 +815,5 @@ interface SupportsHelper {
|
|
|
811
815
|
/** Helper for constructing `@supports` at-rule keys. */
|
|
812
816
|
declare const supports: SupportsHelper;
|
|
813
817
|
//#endregion
|
|
814
|
-
|
|
815
|
-
/**
|
|
816
|
-
* Hashing utilities for generating short, deterministic class names.
|
|
817
|
-
* Uses djb2 algorithm for fast string hashing.
|
|
818
|
-
* @module hash
|
|
819
|
-
*/
|
|
820
|
-
/**
|
|
821
|
-
* Converts a number to a base-62 string representation.
|
|
822
|
-
* @param num - The number to convert
|
|
823
|
-
* @param maxLength - Optional maximum length of the output string
|
|
824
|
-
* @returns Base-62 encoded string representation of the number
|
|
825
|
-
*/
|
|
826
|
-
declare function numberToBase62(num: number, maxLength?: number): string;
|
|
827
|
-
/**
|
|
828
|
-
* Generates a short hash string from input using the djb2 algorithm.
|
|
829
|
-
* Used to create unique, deterministic CSS class names from style content.
|
|
830
|
-
* @param input - The string to hash
|
|
831
|
-
* @param length - Maximum length of the hash output (default: 8)
|
|
832
|
-
* @returns A short, css-safe hash string
|
|
833
|
-
* @example
|
|
834
|
-
* shortHash("color: red;") // Returns something like "A1b2C3d4"
|
|
835
|
-
*/
|
|
836
|
-
declare function shortHash(input: string, length?: number): string;
|
|
837
|
-
//#endregion
|
|
838
|
-
export { AllVariants, type AtRuleKey, CSSObject, CompoundVariant, CssLike, CssLikeObject, CssObjectBlock, CssObjectSubBlock, CssVar, CssVarVal, DefaultVariants, GlobalCssObject, type GlobalCssStyles, type KeyframeStops, KeyframesObject, MergeCSSVariants, MochiCSS, MochiCSSProps, MochiKeyframes, MochiSelector, RefineVariants, type StyleProps, Token, VariantProps, camelToKebab, container, createToken, css, cssFromProps, globalCss, isAtRuleKey, isMochiCSS, kebabToCamel, keyframes, media, mergeMochiCss, numberToBase62, shortHash, supports };
|
|
818
|
+
export { AllVariants, type AtRuleKey, CSSObject, CompoundVariant, CssLike, CssLikeObject, CssObjectBlock, CssObjectSubBlock, CssVar, CssVarVal, DefaultVariants, GlobalCssObject, GlobalCssProperties, type GlobalCssStyles, type KeyframeStops, KeyframesObject, MergeCSSVariants, MochiCSS, MochiCSSProps, MochiKeyframes, MochiSelector, RefineVariantType, RefineVariants, type StyleProps, Token, VariantProps, camelToKebab, container, createToken, css, cssFromProps, globalCss, isAtRuleKey, isMochiCSS, kebabToCamel, keyframes, media, mergeMochiCss, numberToBase62, shortHash, supports };
|
|
839
819
|
//# sourceMappingURL=index.d.ts.map
|