@unocss/core 0.20.1 → 0.21.1
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/index.cjs +37 -21
- package/dist/index.d.ts +15 -14
- package/dist/index.mjs +37 -22
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -93,6 +93,32 @@ function mergeDeep(original, patch) {
|
|
|
93
93
|
}
|
|
94
94
|
return output;
|
|
95
95
|
}
|
|
96
|
+
function clone(val) {
|
|
97
|
+
let k, out, tmp;
|
|
98
|
+
if (Array.isArray(val)) {
|
|
99
|
+
out = Array(k = val.length);
|
|
100
|
+
while (k--)
|
|
101
|
+
out[k] = (tmp = val[k]) && typeof tmp === "object" ? clone(tmp) : tmp;
|
|
102
|
+
return out;
|
|
103
|
+
}
|
|
104
|
+
if (Object.prototype.toString.call(val) === "[object Object]") {
|
|
105
|
+
out = {};
|
|
106
|
+
for (k in val) {
|
|
107
|
+
if (k === "__proto__") {
|
|
108
|
+
Object.defineProperty(out, k, {
|
|
109
|
+
value: clone(val[k]),
|
|
110
|
+
configurable: true,
|
|
111
|
+
enumerable: true,
|
|
112
|
+
writable: true
|
|
113
|
+
});
|
|
114
|
+
} else {
|
|
115
|
+
out[k] = (tmp = val[k]) && typeof tmp === "object" ? clone(tmp) : tmp;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return out;
|
|
119
|
+
}
|
|
120
|
+
return val;
|
|
121
|
+
}
|
|
96
122
|
function isStaticRule(rule) {
|
|
97
123
|
return typeof rule[0] === "string";
|
|
98
124
|
}
|
|
@@ -249,7 +275,6 @@ function createValueHandler(handlers) {
|
|
|
249
275
|
if (res != null)
|
|
250
276
|
return res;
|
|
251
277
|
}
|
|
252
|
-
return void 0;
|
|
253
278
|
};
|
|
254
279
|
function addProcessor(that, name) {
|
|
255
280
|
if (!that.__options) {
|
|
@@ -333,11 +358,11 @@ function resolveConfig(userConfig = {}, defaults = {}) {
|
|
|
333
358
|
delete rules[i];
|
|
334
359
|
}
|
|
335
360
|
});
|
|
336
|
-
const theme = [
|
|
361
|
+
const theme = clone([
|
|
337
362
|
...sortedPresets.map((p) => p.theme || {}),
|
|
338
363
|
config.theme || {}
|
|
339
|
-
].reduce((a, p) => mergeDeep(a, p), {});
|
|
340
|
-
|
|
364
|
+
].reduce((a, p) => mergeDeep(a, p), {}));
|
|
365
|
+
mergePresets("extendTheme").forEach((extendTheme) => extendTheme(theme));
|
|
341
366
|
return {
|
|
342
367
|
mergeSelectors: true,
|
|
343
368
|
warn: true,
|
|
@@ -358,12 +383,11 @@ function resolveConfig(userConfig = {}, defaults = {}) {
|
|
|
358
383
|
preflights: mergePresets("preflights"),
|
|
359
384
|
variants: mergePresets("variants").map(normalizeVariant),
|
|
360
385
|
shortcuts: resolveShortcuts(mergePresets("shortcuts")),
|
|
361
|
-
extractors
|
|
362
|
-
options
|
|
386
|
+
extractors
|
|
363
387
|
};
|
|
364
388
|
}
|
|
365
389
|
|
|
366
|
-
const version = "0.
|
|
390
|
+
const version = "0.21.1";
|
|
367
391
|
|
|
368
392
|
class UnoGenerator {
|
|
369
393
|
constructor(userConfig = {}, defaults = {}) {
|
|
@@ -392,8 +416,7 @@ class UnoGenerator {
|
|
|
392
416
|
return code;
|
|
393
417
|
},
|
|
394
418
|
code,
|
|
395
|
-
id
|
|
396
|
-
options: this.config.options
|
|
419
|
+
id
|
|
397
420
|
};
|
|
398
421
|
for (const extractor of this.config.extractors) {
|
|
399
422
|
const result = await extractor.extract(context);
|
|
@@ -454,8 +477,7 @@ class UnoGenerator {
|
|
|
454
477
|
theme: this.config.theme,
|
|
455
478
|
generator: this,
|
|
456
479
|
variantHandlers: applied[2],
|
|
457
|
-
constructCSS: (...args) => this.constructCustomCSS(context, ...args)
|
|
458
|
-
options: this.config.options
|
|
480
|
+
constructCSS: (...args) => this.constructCustomCSS(context, ...args)
|
|
459
481
|
};
|
|
460
482
|
const expanded = this.expandShortcut(applied[1], context);
|
|
461
483
|
if (expanded) {
|
|
@@ -480,13 +502,7 @@ class UnoGenerator {
|
|
|
480
502
|
const getLayer = (layer) => {
|
|
481
503
|
if (layerCache[layer])
|
|
482
504
|
return layerCache[layer];
|
|
483
|
-
let css = Array.from(sheet).sort((a, b) => {
|
|
484
|
-
const parentOrderA = this.parentOrders.get(a[0]);
|
|
485
|
-
const parentOrderB = this.parentOrders.get(b[0]);
|
|
486
|
-
if (parentOrderA !== void 0 && parentOrderB !== void 0)
|
|
487
|
-
return parentOrderA - parentOrderB;
|
|
488
|
-
return a[0]?.localeCompare(b[0] || "");
|
|
489
|
-
}).map(([parent, items]) => {
|
|
505
|
+
let css = Array.from(sheet).sort((a, b) => (this.parentOrders.get(a[0]) ?? 0) - (this.parentOrders.get(b[0]) ?? 0) || a[0]?.localeCompare(b[0] || "") || 0).map(([parent, items]) => {
|
|
490
506
|
const size = items.length;
|
|
491
507
|
const sorted = items.filter((i) => (i[4]?.layer || "default") === layer).sort((a, b) => a[0] - b[0] || a[1]?.localeCompare(b[1] || "") || 0).map((a) => [a[1] ? applyScope(a[1], scope) : a[1], a[2]]);
|
|
492
508
|
if (!sorted.length)
|
|
@@ -496,7 +512,7 @@ class UnoGenerator {
|
|
|
496
512
|
for (let i = idx + 1; i < size; i++) {
|
|
497
513
|
const current = sorted[i];
|
|
498
514
|
if (current && current[0] && current[1] === body) {
|
|
499
|
-
current[0] = `${current[0]},${selector}`;
|
|
515
|
+
current[0] = `${current[0]},${nl}${selector}`;
|
|
500
516
|
return null;
|
|
501
517
|
}
|
|
502
518
|
}
|
|
@@ -534,8 +550,7 @@ class UnoGenerator {
|
|
|
534
550
|
const context = {
|
|
535
551
|
rawSelector: raw,
|
|
536
552
|
theme: this.config.theme,
|
|
537
|
-
generator: this
|
|
538
|
-
options: this.config.options
|
|
553
|
+
generator: this
|
|
539
554
|
};
|
|
540
555
|
while (true) {
|
|
541
556
|
applied = false;
|
|
@@ -707,6 +722,7 @@ exports.TwoKeyMap = TwoKeyMap;
|
|
|
707
722
|
exports.UnoGenerator = UnoGenerator;
|
|
708
723
|
exports.attributifyRE = attributifyRE;
|
|
709
724
|
exports.clearIdenticalEntries = clearIdenticalEntries;
|
|
725
|
+
exports.clone = clone;
|
|
710
726
|
exports.createGenerator = createGenerator;
|
|
711
727
|
exports.createValueHandler = createValueHandler;
|
|
712
728
|
exports.e = e;
|
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ declare function createGenerator(config?: UserConfig, defaults?: UserConfigDefau
|
|
|
23
23
|
declare const hasScopePlaceholder: (css: string) => RegExpMatchArray | null;
|
|
24
24
|
|
|
25
25
|
declare type Awaitable<T> = T | Promise<T>;
|
|
26
|
+
declare type Arrayable<T> = T | T[];
|
|
26
27
|
declare type ArgumentType<T> = T extends ((...args: infer A) => any) ? A : never;
|
|
27
28
|
declare type Shift<T> = T extends [_: any, ...args: infer A] ? A : never;
|
|
28
29
|
declare type RestArgs<T> = Shift<ArgumentType<T>>;
|
|
@@ -51,13 +52,17 @@ declare type ParsedColorValue = {
|
|
|
51
52
|
*/
|
|
52
53
|
name: string;
|
|
53
54
|
/**
|
|
54
|
-
* Color scale
|
|
55
|
+
* Color scale, preferrably 000 - 999.
|
|
55
56
|
*/
|
|
56
57
|
no: string;
|
|
57
58
|
/**
|
|
58
59
|
* {@link RGBAColorValue}
|
|
59
60
|
*/
|
|
60
61
|
rgba?: RGBAColorValue;
|
|
62
|
+
/**
|
|
63
|
+
* Parsed rgba's alpha value.
|
|
64
|
+
*/
|
|
65
|
+
alpha?: number | string;
|
|
61
66
|
};
|
|
62
67
|
declare type PresetOptions = Record<string, any>;
|
|
63
68
|
interface RuleContext<Theme extends {} = {}> {
|
|
@@ -87,10 +92,6 @@ interface RuleContext<Theme extends {} = {}> {
|
|
|
87
92
|
* Variants and selector escaping will be handled automatically.
|
|
88
93
|
*/
|
|
89
94
|
constructCSS: (body: CSSEntries | CSSObject, overrideSelector?: string) => string;
|
|
90
|
-
/**
|
|
91
|
-
* User-provided options from preset.
|
|
92
|
-
*/
|
|
93
|
-
readonly options: PresetOptions;
|
|
94
95
|
}
|
|
95
96
|
interface VariantContext<Theme extends {} = {}> {
|
|
96
97
|
/**
|
|
@@ -105,16 +106,11 @@ interface VariantContext<Theme extends {} = {}> {
|
|
|
105
106
|
* The theme object
|
|
106
107
|
*/
|
|
107
108
|
theme: Theme;
|
|
108
|
-
/**
|
|
109
|
-
* User-provided options from preset.
|
|
110
|
-
*/
|
|
111
|
-
readonly options: PresetOptions;
|
|
112
109
|
}
|
|
113
110
|
interface ExtractorContext {
|
|
114
111
|
readonly original: string;
|
|
115
112
|
code: string;
|
|
116
113
|
id?: string;
|
|
117
|
-
readonly options: PresetOptions;
|
|
118
114
|
}
|
|
119
115
|
interface Extractor {
|
|
120
116
|
name: string;
|
|
@@ -188,6 +184,7 @@ declare type VariantObject<Theme extends {} = {}> = {
|
|
|
188
184
|
declare type Variant<Theme extends {} = {}> = VariantFunction<Theme> | VariantObject<Theme>;
|
|
189
185
|
declare type Preprocessor = (matcher: string) => string | undefined;
|
|
190
186
|
declare type Postprocessor = (util: UtilObject) => void;
|
|
187
|
+
declare type ThemeExtender<T> = (theme: T) => void;
|
|
191
188
|
interface ConfigBase<Theme extends {} = {}> {
|
|
192
189
|
/**
|
|
193
190
|
* Rules to generate CSS utilities
|
|
@@ -236,11 +233,15 @@ interface ConfigBase<Theme extends {} = {}> {
|
|
|
236
233
|
/**
|
|
237
234
|
* Preprocess the incoming utilities, return falsy value to exclude
|
|
238
235
|
*/
|
|
239
|
-
preprocess?: Preprocessor
|
|
236
|
+
preprocess?: Arrayable<Preprocessor>;
|
|
240
237
|
/**
|
|
241
238
|
* Process the generate utils object
|
|
242
239
|
*/
|
|
243
|
-
postprocess?: Postprocessor
|
|
240
|
+
postprocess?: Arrayable<Postprocessor>;
|
|
241
|
+
/**
|
|
242
|
+
* Custom functions to extend the theme object
|
|
243
|
+
*/
|
|
244
|
+
extendTheme?: Arrayable<ThemeExtender<Theme>>;
|
|
244
245
|
}
|
|
245
246
|
interface Preset<Theme extends {} = {}> extends ConfigBase<Theme> {
|
|
246
247
|
name: string;
|
|
@@ -321,7 +322,6 @@ interface ResolvedConfig extends Omit<RequiredByKey<UserConfig, 'mergeSelectors'
|
|
|
321
322
|
rulesSize: number;
|
|
322
323
|
rulesDynamic: (DynamicRule | undefined)[];
|
|
323
324
|
rulesStaticMap: Record<string, [number, CSSObject | CSSEntries, RuleMeta | undefined] | undefined>;
|
|
324
|
-
options: PresetOptions;
|
|
325
325
|
}
|
|
326
326
|
interface GenerateResult {
|
|
327
327
|
css: string;
|
|
@@ -398,6 +398,7 @@ declare function clearIdenticalEntries(entry: CSSEntries): CSSEntries;
|
|
|
398
398
|
declare function entriesToCss(arr?: CSSEntries): string;
|
|
399
399
|
declare function isObject(item: any): item is Record<string, any>;
|
|
400
400
|
declare function mergeDeep<T>(original: T, patch: DeepPartial<T>): T;
|
|
401
|
+
declare function clone<T>(val: T): T;
|
|
401
402
|
declare function isStaticRule(rule: Rule): rule is StaticRule;
|
|
402
403
|
declare function isStaticShortcut(sc: Shortcut): sc is StaticShortcut;
|
|
403
404
|
|
|
@@ -451,4 +452,4 @@ declare const extractorSplit: Extractor;
|
|
|
451
452
|
|
|
452
453
|
declare const extractorSvelte: Extractor;
|
|
453
454
|
|
|
454
|
-
export { ArgumentType, Awaitable, BetterMap, BlocklistRule, CSSEntries, CSSObject, CSSValues, ConfigBase, DeepPartial, DynamicMatcher, DynamicRule, DynamicShortcut, DynamicShortcutMatcher, Extractor, ExtractorContext, FilterPattern, FlatObjectTuple, GenerateOptions, GenerateResult, GeneratorOptions, ParsedColorValue, ParsedUtil, PartialByKeys, PluginOptions, Postprocessor, Preflight, Preprocessor, Preset, PresetOptions, RGBAColorValue, RawUtil, RequiredByKey, ResolvedConfig, RestArgs, Rule, RuleContext, RuleMeta, Shift, Shortcut, StaticRule, StaticShortcut, StaticShortcutMap, StringifiedUtil, TwoKeyMap, UnoGenerator, UserConfig, UserConfigDefaults, UserOnlyOptions, UserShortcuts, UtilObject, ValueHandler, ValueHandlerCallback, Variant, VariantContext, VariantFunction, VariantHandler, VariantMatchedResult, VariantObject, attributifyRE, clearIdenticalEntries, createGenerator, createValueHandler, e, entriesToCss, escapeRegExp, escapeSelector, expandVariantGroup, extractorSplit, extractorSvelte, hasScopePlaceholder, hex2rgba, isAttributifySelector, isObject, isRawUtil, isStaticRule, isStaticShortcut, isValidSelector, mergeDeep, mergeSet, normalizeCSSEntries, normalizeCSSValues, normalizeVariant, notNull, regexClassGroup, toArray, uniq, validateFilterRE, warnOnce, withLayer };
|
|
455
|
+
export { ArgumentType, Arrayable, Awaitable, BetterMap, BlocklistRule, CSSEntries, CSSObject, CSSValues, ConfigBase, DeepPartial, DynamicMatcher, DynamicRule, DynamicShortcut, DynamicShortcutMatcher, Extractor, ExtractorContext, FilterPattern, FlatObjectTuple, GenerateOptions, GenerateResult, GeneratorOptions, ParsedColorValue, ParsedUtil, PartialByKeys, PluginOptions, Postprocessor, Preflight, Preprocessor, Preset, PresetOptions, RGBAColorValue, RawUtil, RequiredByKey, ResolvedConfig, RestArgs, Rule, RuleContext, RuleMeta, Shift, Shortcut, StaticRule, StaticShortcut, StaticShortcutMap, StringifiedUtil, ThemeExtender, TwoKeyMap, UnoGenerator, UserConfig, UserConfigDefaults, UserOnlyOptions, UserShortcuts, UtilObject, ValueHandler, ValueHandlerCallback, Variant, VariantContext, VariantFunction, VariantHandler, VariantMatchedResult, VariantObject, attributifyRE, clearIdenticalEntries, clone, createGenerator, createValueHandler, e, entriesToCss, escapeRegExp, escapeSelector, expandVariantGroup, extractorSplit, extractorSvelte, hasScopePlaceholder, hex2rgba, isAttributifySelector, isObject, isRawUtil, isStaticRule, isStaticShortcut, isValidSelector, mergeDeep, mergeSet, normalizeCSSEntries, normalizeCSSValues, normalizeVariant, notNull, regexClassGroup, toArray, uniq, validateFilterRE, warnOnce, withLayer };
|
package/dist/index.mjs
CHANGED
|
@@ -89,6 +89,32 @@ function mergeDeep(original, patch) {
|
|
|
89
89
|
}
|
|
90
90
|
return output;
|
|
91
91
|
}
|
|
92
|
+
function clone(val) {
|
|
93
|
+
let k, out, tmp;
|
|
94
|
+
if (Array.isArray(val)) {
|
|
95
|
+
out = Array(k = val.length);
|
|
96
|
+
while (k--)
|
|
97
|
+
out[k] = (tmp = val[k]) && typeof tmp === "object" ? clone(tmp) : tmp;
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
if (Object.prototype.toString.call(val) === "[object Object]") {
|
|
101
|
+
out = {};
|
|
102
|
+
for (k in val) {
|
|
103
|
+
if (k === "__proto__") {
|
|
104
|
+
Object.defineProperty(out, k, {
|
|
105
|
+
value: clone(val[k]),
|
|
106
|
+
configurable: true,
|
|
107
|
+
enumerable: true,
|
|
108
|
+
writable: true
|
|
109
|
+
});
|
|
110
|
+
} else {
|
|
111
|
+
out[k] = (tmp = val[k]) && typeof tmp === "object" ? clone(tmp) : tmp;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return out;
|
|
115
|
+
}
|
|
116
|
+
return val;
|
|
117
|
+
}
|
|
92
118
|
function isStaticRule(rule) {
|
|
93
119
|
return typeof rule[0] === "string";
|
|
94
120
|
}
|
|
@@ -245,7 +271,6 @@ function createValueHandler(handlers) {
|
|
|
245
271
|
if (res != null)
|
|
246
272
|
return res;
|
|
247
273
|
}
|
|
248
|
-
return void 0;
|
|
249
274
|
};
|
|
250
275
|
function addProcessor(that, name) {
|
|
251
276
|
if (!that.__options) {
|
|
@@ -329,11 +354,11 @@ function resolveConfig(userConfig = {}, defaults = {}) {
|
|
|
329
354
|
delete rules[i];
|
|
330
355
|
}
|
|
331
356
|
});
|
|
332
|
-
const theme = [
|
|
357
|
+
const theme = clone([
|
|
333
358
|
...sortedPresets.map((p) => p.theme || {}),
|
|
334
359
|
config.theme || {}
|
|
335
|
-
].reduce((a, p) => mergeDeep(a, p), {});
|
|
336
|
-
|
|
360
|
+
].reduce((a, p) => mergeDeep(a, p), {}));
|
|
361
|
+
mergePresets("extendTheme").forEach((extendTheme) => extendTheme(theme));
|
|
337
362
|
return {
|
|
338
363
|
mergeSelectors: true,
|
|
339
364
|
warn: true,
|
|
@@ -354,12 +379,11 @@ function resolveConfig(userConfig = {}, defaults = {}) {
|
|
|
354
379
|
preflights: mergePresets("preflights"),
|
|
355
380
|
variants: mergePresets("variants").map(normalizeVariant),
|
|
356
381
|
shortcuts: resolveShortcuts(mergePresets("shortcuts")),
|
|
357
|
-
extractors
|
|
358
|
-
options
|
|
382
|
+
extractors
|
|
359
383
|
};
|
|
360
384
|
}
|
|
361
385
|
|
|
362
|
-
const version = "0.
|
|
386
|
+
const version = "0.21.1";
|
|
363
387
|
|
|
364
388
|
class UnoGenerator {
|
|
365
389
|
constructor(userConfig = {}, defaults = {}) {
|
|
@@ -388,8 +412,7 @@ class UnoGenerator {
|
|
|
388
412
|
return code;
|
|
389
413
|
},
|
|
390
414
|
code,
|
|
391
|
-
id
|
|
392
|
-
options: this.config.options
|
|
415
|
+
id
|
|
393
416
|
};
|
|
394
417
|
for (const extractor of this.config.extractors) {
|
|
395
418
|
const result = await extractor.extract(context);
|
|
@@ -450,8 +473,7 @@ class UnoGenerator {
|
|
|
450
473
|
theme: this.config.theme,
|
|
451
474
|
generator: this,
|
|
452
475
|
variantHandlers: applied[2],
|
|
453
|
-
constructCSS: (...args) => this.constructCustomCSS(context, ...args)
|
|
454
|
-
options: this.config.options
|
|
476
|
+
constructCSS: (...args) => this.constructCustomCSS(context, ...args)
|
|
455
477
|
};
|
|
456
478
|
const expanded = this.expandShortcut(applied[1], context);
|
|
457
479
|
if (expanded) {
|
|
@@ -476,13 +498,7 @@ class UnoGenerator {
|
|
|
476
498
|
const getLayer = (layer) => {
|
|
477
499
|
if (layerCache[layer])
|
|
478
500
|
return layerCache[layer];
|
|
479
|
-
let css = Array.from(sheet).sort((a, b) => {
|
|
480
|
-
const parentOrderA = this.parentOrders.get(a[0]);
|
|
481
|
-
const parentOrderB = this.parentOrders.get(b[0]);
|
|
482
|
-
if (parentOrderA !== void 0 && parentOrderB !== void 0)
|
|
483
|
-
return parentOrderA - parentOrderB;
|
|
484
|
-
return a[0]?.localeCompare(b[0] || "");
|
|
485
|
-
}).map(([parent, items]) => {
|
|
501
|
+
let css = Array.from(sheet).sort((a, b) => (this.parentOrders.get(a[0]) ?? 0) - (this.parentOrders.get(b[0]) ?? 0) || a[0]?.localeCompare(b[0] || "") || 0).map(([parent, items]) => {
|
|
486
502
|
const size = items.length;
|
|
487
503
|
const sorted = items.filter((i) => (i[4]?.layer || "default") === layer).sort((a, b) => a[0] - b[0] || a[1]?.localeCompare(b[1] || "") || 0).map((a) => [a[1] ? applyScope(a[1], scope) : a[1], a[2]]);
|
|
488
504
|
if (!sorted.length)
|
|
@@ -492,7 +508,7 @@ class UnoGenerator {
|
|
|
492
508
|
for (let i = idx + 1; i < size; i++) {
|
|
493
509
|
const current = sorted[i];
|
|
494
510
|
if (current && current[0] && current[1] === body) {
|
|
495
|
-
current[0] = `${current[0]},${selector}`;
|
|
511
|
+
current[0] = `${current[0]},${nl}${selector}`;
|
|
496
512
|
return null;
|
|
497
513
|
}
|
|
498
514
|
}
|
|
@@ -530,8 +546,7 @@ class UnoGenerator {
|
|
|
530
546
|
const context = {
|
|
531
547
|
rawSelector: raw,
|
|
532
548
|
theme: this.config.theme,
|
|
533
|
-
generator: this
|
|
534
|
-
options: this.config.options
|
|
549
|
+
generator: this
|
|
535
550
|
};
|
|
536
551
|
while (true) {
|
|
537
552
|
applied = false;
|
|
@@ -698,4 +713,4 @@ function toEscapedSelector(raw) {
|
|
|
698
713
|
return `.${e(raw)}`;
|
|
699
714
|
}
|
|
700
715
|
|
|
701
|
-
export { BetterMap, TwoKeyMap, UnoGenerator, attributifyRE, clearIdenticalEntries, createGenerator, createValueHandler, e, entriesToCss, escapeRegExp, escapeSelector, expandVariantGroup, extractorSplit, extractorSvelte, hasScopePlaceholder, hex2rgba, isAttributifySelector, isObject, isRawUtil, isStaticRule, isStaticShortcut, isValidSelector, mergeDeep, mergeSet, normalizeCSSEntries, normalizeCSSValues, normalizeVariant, notNull, regexClassGroup, toArray, uniq, validateFilterRE, warnOnce, withLayer };
|
|
716
|
+
export { BetterMap, TwoKeyMap, UnoGenerator, attributifyRE, clearIdenticalEntries, clone, createGenerator, createValueHandler, e, entriesToCss, escapeRegExp, escapeSelector, expandVariantGroup, extractorSplit, extractorSvelte, hasScopePlaceholder, hex2rgba, isAttributifySelector, isObject, isRawUtil, isStaticRule, isStaticShortcut, isValidSelector, mergeDeep, mergeSet, normalizeCSSEntries, normalizeCSSValues, normalizeVariant, notNull, regexClassGroup, toArray, uniq, validateFilterRE, warnOnce, withLayer };
|