@unocss/preset-mini 0.57.6 → 0.58.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.
@@ -3,7 +3,7 @@ import { PresetMiniOptions } from './index.cjs';
3
3
  import { T as Theme } from './shared/preset-mini.7XoWRZIl.cjs';
4
4
  import './shared/preset-mini.5-XKlNyK.cjs';
5
5
  import './colors.cjs';
6
- import './shared/preset-mini.Jpc0QYPj.cjs';
6
+ import './shared/preset-mini.WoiFygE2.cjs';
7
7
 
8
8
  declare const variantAria: VariantObject;
9
9
 
@@ -17,7 +17,7 @@ declare const variantContainerQuery: VariantObject;
17
17
  declare function variantColorsMediaOrClass(options?: PresetMiniOptions): Variant[];
18
18
 
19
19
  declare const variantDataAttribute: VariantObject;
20
- declare const variantGroupDataAttribute: Variant;
20
+ declare const variantTaggedDataAttributes: Variant[];
21
21
 
22
22
  declare function variants(options: PresetMiniOptions): Variant<Theme>[];
23
23
 
@@ -43,4 +43,4 @@ declare const variantPartClasses: VariantObject;
43
43
 
44
44
  declare const variantSupports: VariantObject;
45
45
 
46
- export { calcMaxWidthBySize, variantAria, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantGroupDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantSupports, variantTaggedPseudoClasses, variantVariables, variants };
46
+ export { calcMaxWidthBySize, variantAria, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantSupports, variantTaggedDataAttributes, variantTaggedPseudoClasses, variantVariables, variants };
@@ -3,7 +3,7 @@ import { PresetMiniOptions } from './index.mjs';
3
3
  import { T as Theme } from './shared/preset-mini.7XoWRZIl.mjs';
4
4
  import './shared/preset-mini.4DxDu2I8.mjs';
5
5
  import './colors.mjs';
6
- import './shared/preset-mini.XmVozI6N.mjs';
6
+ import './shared/preset-mini.WMGBnRDa.mjs';
7
7
 
8
8
  declare const variantAria: VariantObject;
9
9
 
@@ -17,7 +17,7 @@ declare const variantContainerQuery: VariantObject;
17
17
  declare function variantColorsMediaOrClass(options?: PresetMiniOptions): Variant[];
18
18
 
19
19
  declare const variantDataAttribute: VariantObject;
20
- declare const variantGroupDataAttribute: Variant;
20
+ declare const variantTaggedDataAttributes: Variant[];
21
21
 
22
22
  declare function variants(options: PresetMiniOptions): Variant<Theme>[];
23
23
 
@@ -43,4 +43,4 @@ declare const variantPartClasses: VariantObject;
43
43
 
44
44
  declare const variantSupports: VariantObject;
45
45
 
46
- export { calcMaxWidthBySize, variantAria, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantGroupDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantSupports, variantTaggedPseudoClasses, variantVariables, variants };
46
+ export { calcMaxWidthBySize, variantAria, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantSupports, variantTaggedDataAttributes, variantTaggedPseudoClasses, variantVariables, variants };
@@ -3,7 +3,7 @@ import { PresetMiniOptions } from './index.js';
3
3
  import { T as Theme } from './shared/preset-mini.7XoWRZIl.js';
4
4
  import './shared/preset-mini.5daNC9yh.js';
5
5
  import './colors.js';
6
- import './shared/preset-mini.QW22c5Df.js';
6
+ import './shared/preset-mini.zVYE2D2j.js';
7
7
 
8
8
  declare const variantAria: VariantObject;
9
9
 
@@ -17,7 +17,7 @@ declare const variantContainerQuery: VariantObject;
17
17
  declare function variantColorsMediaOrClass(options?: PresetMiniOptions): Variant[];
18
18
 
19
19
  declare const variantDataAttribute: VariantObject;
20
- declare const variantGroupDataAttribute: Variant;
20
+ declare const variantTaggedDataAttributes: Variant[];
21
21
 
22
22
  declare function variants(options: PresetMiniOptions): Variant<Theme>[];
23
23
 
@@ -43,4 +43,4 @@ declare const variantPartClasses: VariantObject;
43
43
 
44
44
  declare const variantSupports: VariantObject;
45
45
 
46
- export { calcMaxWidthBySize, variantAria, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantGroupDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantSupports, variantTaggedPseudoClasses, variantVariables, variants };
46
+ export { calcMaxWidthBySize, variantAria, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantSupports, variantTaggedDataAttributes, variantTaggedPseudoClasses, variantVariables, variants };
package/dist/variants.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { variantGetParameter, variantGetBracket, variantMatcher, variantParentMatcher, getBracket, getStringComponent } from '@unocss/rule-utils';
2
- import { h, r as resolveBreakpoints, C as CONTROL_MINI_NO_NEGATIVE } from './shared/preset-mini.Stl9mkMB.mjs';
2
+ import { h, resolveBreakpoints, CONTROL_MINI_NO_NEGATIVE, cssMathFnRE } from './utils.mjs';
3
3
  import { warnOnce, escapeRegExp, escapeSelector } from '@unocss/core';
4
4
 
5
5
  const variantAria = {
@@ -183,21 +183,29 @@ const variantDataAttribute = {
183
183
  }
184
184
  }
185
185
  };
186
- const variantGroupDataAttribute = {
187
- name: "group-data",
188
- match(matcher, ctx) {
189
- const variant = variantGetParameter("group-data-", matcher, ctx.generator.config.separators);
190
- if (variant) {
191
- const [match, rest] = variant;
192
- const dataAttribute = h.bracket(match) ?? ctx.theme.data?.[match] ?? "";
193
- if (dataAttribute) {
194
- return {
195
- matcher: `group-[[data-${dataAttribute}]]:${rest}`
196
- };
186
+ function taggedData(tagName) {
187
+ return {
188
+ name: `${tagName}-data`,
189
+ match(matcher, ctx) {
190
+ const variant = variantGetParameter(`${tagName}-data-`, matcher, ctx.generator.config.separators);
191
+ if (variant) {
192
+ const [match, rest] = variant;
193
+ const dataAttribute = h.bracket(match) ?? ctx.theme.data?.[match] ?? "";
194
+ if (dataAttribute) {
195
+ return {
196
+ matcher: `${tagName}-[[data-${dataAttribute}]]:${rest}`
197
+ };
198
+ }
197
199
  }
198
200
  }
199
- }
200
- };
201
+ };
202
+ }
203
+ const variantTaggedDataAttributes = [
204
+ taggedData("group"),
205
+ taggedData("peer"),
206
+ taggedData("parent"),
207
+ taggedData("previous")
208
+ ];
201
209
 
202
210
  const variantLanguageDirections = [
203
211
  variantMatcher("rtl", (input) => ({ prefix: `[dir="rtl"] $$ ${input.prefix}` })),
@@ -310,18 +318,30 @@ const variantVariables = {
310
318
  multiPass: true
311
319
  };
312
320
 
313
- const numberRE = /[0-9.]+(?:[a-z]+|%)?/;
321
+ const anchoredNumberRE = /^-?[0-9.]+(?:[a-z]+|%)?$/;
322
+ const numberRE = /-?[0-9.]+(?:[a-z]+|%)?/;
314
323
  const ignoreProps = [
315
- /opacity|color|flex/
324
+ /\b(opacity|color|flex|backdrop-filter|^filter|transform)\b/
316
325
  ];
317
- function negateFunctions(value) {
318
- const match = value.match(/^(calc|clamp|max|min)\s*(\(.*)/);
326
+ function negateMathFunction(value) {
327
+ const match = value.match(cssMathFnRE);
319
328
  if (match) {
320
- const [fnBody, rest] = getStringComponent(match[2], "(", ")", " ") ?? [];
329
+ const [fnBody, rest] = getStringComponent(`(${match[2]})${match[3]}`, "(", ")", " ") ?? [];
321
330
  if (fnBody)
322
331
  return `calc(${match[1]}${fnBody} * -1)${rest ? ` ${rest}` : ""}`;
323
332
  }
324
333
  }
334
+ const negateFunctionBodyRE = /\b(hue-rotate)\s*(\(.*)/;
335
+ function negateFunctionBody(value) {
336
+ const match = value.match(negateFunctionBodyRE);
337
+ if (match) {
338
+ const [fnBody, rest] = getStringComponent(match[2], "(", ")", " ") ?? [];
339
+ if (fnBody) {
340
+ const body = anchoredNumberRE.test(fnBody.slice(1, -1)) ? fnBody.replace(numberRE, (i) => i.startsWith("-") ? i.slice(1) : `-${i}`) : `(calc(${fnBody} * -1))`;
341
+ return `${match[1]}${body}${rest ? ` ${rest}` : ""}`;
342
+ }
343
+ }
344
+ }
325
345
  const variantNegative = {
326
346
  name: "negative",
327
347
  match(matcher) {
@@ -337,14 +357,22 @@ const variantNegative = {
337
357
  const value = v[1]?.toString();
338
358
  if (!value || value === "0")
339
359
  return;
340
- if (ignoreProps.some((i) => v[0].match(i)))
360
+ if (ignoreProps.some((i) => i.test(v[0])))
341
361
  return;
342
- const negated = negateFunctions(value);
343
- if (negated) {
344
- v[1] = negated;
362
+ const negatedFn = negateMathFunction(value);
363
+ if (negatedFn) {
364
+ v[1] = negatedFn;
345
365
  changed = true;
346
- } else if (numberRE.test(value)) {
347
- v[1] = value.replace(numberRE, (i) => `-${i}`);
366
+ return;
367
+ }
368
+ const negatedBody = negateFunctionBody(value);
369
+ if (negatedBody) {
370
+ v[1] = negatedBody;
371
+ changed = true;
372
+ return;
373
+ }
374
+ if (anchoredNumberRE.test(value)) {
375
+ v[1] = value.replace(numberRE, (i) => i.startsWith("-") ? i.slice(1) : `-${i}`);
348
376
  changed = true;
349
377
  }
350
378
  });
@@ -664,11 +692,14 @@ function variantPseudoClassFunctions() {
664
692
  }
665
693
  function variantTaggedPseudoClasses(options = {}) {
666
694
  const attributify = !!options?.attributifyPseudo;
695
+ let firstPrefix = options?.prefix ?? "";
696
+ firstPrefix = (Array.isArray(firstPrefix) ? firstPrefix : [firstPrefix]).filter(Boolean)[0] ?? "";
697
+ const tagWithPrefix = (tag, combinator) => taggedPseudoClassMatcher(tag, attributify ? `[${firstPrefix}${tag}=""]` : `.${firstPrefix}${tag}`, combinator);
667
698
  return [
668
- taggedPseudoClassMatcher("group", attributify ? '[group=""]' : ".group", " "),
669
- taggedPseudoClassMatcher("peer", attributify ? '[peer=""]' : ".peer", "~"),
670
- taggedPseudoClassMatcher("parent", attributify ? '[parent=""]' : ".parent", ">"),
671
- taggedPseudoClassMatcher("previous", attributify ? '[previous=""]' : ".previous", "+")
699
+ tagWithPrefix("group", " "),
700
+ tagWithPrefix("peer", "~"),
701
+ tagWithPrefix("parent", ">"),
702
+ tagWithPrefix("previous", "+")
672
703
  ];
673
704
  }
674
705
  const PartClassesRE = /(part-\[(.+)]:)(.+)/;
@@ -709,8 +740,8 @@ function variants(options) {
709
740
  variantScope,
710
741
  variantContainerQuery,
711
742
  variantVariables,
712
- variantGroupDataAttribute
743
+ ...variantTaggedDataAttributes
713
744
  ];
714
745
  }
715
746
 
716
- export { calcMaxWidthBySize, variantAria, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantGroupDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantSupports, variantTaggedPseudoClasses, variantVariables, variants };
747
+ export { calcMaxWidthBySize, variantAria, variantBreakpoints, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantSupports, variantTaggedDataAttributes, variantTaggedPseudoClasses, variantVariables, variants };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unocss/preset-mini",
3
- "version": "0.57.6",
3
+ "version": "0.58.0",
4
4
  "description": "The minimal preset for UnoCSS",
5
5
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",
@@ -61,9 +61,9 @@
61
61
  "dist"
62
62
  ],
63
63
  "dependencies": {
64
- "@unocss/core": "0.57.6",
65
- "@unocss/extractor-arbitrary-variants": "0.57.6",
66
- "@unocss/rule-utils": "0.57.6"
64
+ "@unocss/core": "0.58.0",
65
+ "@unocss/extractor-arbitrary-variants": "0.58.0",
66
+ "@unocss/rule-utils": "0.58.0"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "unbuild",