@unocss/preset-mini 66.5.10 → 66.5.11

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.
Files changed (44) hide show
  1. package/dist/chunk-gol_9zmq.mjs +36 -0
  2. package/dist/colors-CdGFctaC.d.mts +1377 -0
  3. package/dist/colors-Cxq9P2g9.mjs +362 -0
  4. package/dist/colors.d.mts +2 -354
  5. package/dist/colors.mjs +2 -360
  6. package/dist/index-RNt7vgvR.d.mts +69 -0
  7. package/dist/index.d.mts +5 -76
  8. package/dist/index.mjs +67 -70
  9. package/dist/rules-CuP-xMI2.mjs +1683 -0
  10. package/dist/rules.d.mts +70 -48
  11. package/dist/rules.mjs +4 -5
  12. package/dist/theme-B_nKnyti.d.mts +1084 -0
  13. package/dist/theme-DeYMqZAV.mjs +347 -0
  14. package/dist/theme.d.mts +3 -338
  15. package/dist/theme.mjs +5 -6
  16. package/dist/utils-BIIzJZek.d.mts +234 -0
  17. package/dist/utils-DLpYZ57Q.mjs +638 -0
  18. package/dist/utils.d.mts +2 -77
  19. package/dist/utils.mjs +5 -3
  20. package/dist/variants.d.mts +35 -24
  21. package/dist/variants.mjs +661 -4
  22. package/package.json +7 -8
  23. package/colors.d.ts +0 -1
  24. package/dist/colors.d.ts +0 -354
  25. package/dist/index.d.ts +0 -76
  26. package/dist/rules.d.ts +0 -130
  27. package/dist/shared/preset-mini.BSnAbT9I.d.mts +0 -748
  28. package/dist/shared/preset-mini.B_2UJsV2.mjs +0 -693
  29. package/dist/shared/preset-mini.BjJC-NnU.d.mts +0 -79
  30. package/dist/shared/preset-mini.BjJC-NnU.d.ts +0 -79
  31. package/dist/shared/preset-mini.CRliz1QB.d.ts +0 -76
  32. package/dist/shared/preset-mini.CVEK1uAa.mjs +0 -355
  33. package/dist/shared/preset-mini.CoOfBKs_.d.ts +0 -748
  34. package/dist/shared/preset-mini.DBTjVFxS.mjs +0 -580
  35. package/dist/shared/preset-mini.QLusboLD.mjs +0 -1064
  36. package/dist/shared/preset-mini.kmtdc_h1.mjs +0 -324
  37. package/dist/shared/preset-mini.oF7XTPi1.d.mts +0 -76
  38. package/dist/theme.d.ts +0 -338
  39. package/dist/utils.d.ts +0 -77
  40. package/dist/variants.d.ts +0 -52
  41. package/rules.d.ts +0 -1
  42. package/theme.d.ts +0 -1
  43. package/utils.d.ts +0 -1
  44. package/variants.d.ts +0 -1
package/dist/variants.mjs CHANGED
@@ -1,4 +1,661 @@
1
- export { v as variantAria, b as variantBreakpoints, c as variantChildren, f as variantColorsMediaOrClass, d as variantCombinators, e as variantContainerQuery, o as variantCssLayer, m as variantCustomMedia, g as variantDataAttribute, k as variantImportant, p as variantInternalLayer, j as variantLanguageDirections, t as variantNegative, y as variantPartClasses, l as variantPrint, w as variantPseudoClassFunctions, u as variantPseudoClassesAndElements, q as variantScope, n as variantSelector, z as variantStartingStyle, A as variantSupports, a as variantTaggedAriaAttributes, h as variantTaggedDataAttributes, x as variantTaggedPseudoClasses, s as variantTheme, r as variantVariables, i as variants } from './shared/preset-mini.B_2UJsV2.mjs';
2
- import '@unocss/core';
3
- import '@unocss/rule-utils';
4
- import './shared/preset-mini.DBTjVFxS.mjs';
1
+ import { b as cssMathFnRE, f as resolveBreakpoints, g as h, n as _utils_exports, r as CONTROL_MINI_NO_NEGATIVE, t as utils_exports, x as cssVarFnRE } from "./utils-DLpYZ57Q.mjs";
2
+ import { escapeRegExp, escapeSelector, toArray } from "@unocss/core";
3
+ import { createPartClasses, createPseudoClassFunctions, createPseudoClassesAndElements, createTaggedPseudoClasses, getStringComponent } from "@unocss/rule-utils";
4
+
5
+ //#region src/_variants/aria.ts
6
+ const variantAria = {
7
+ name: "aria",
8
+ match(matcher, ctx) {
9
+ const variant = (0, utils_exports.variantGetParameter)("aria-", matcher, ctx.generator.config.separators);
10
+ if (variant) {
11
+ const [match, rest] = variant;
12
+ const aria = h.bracket(match) ?? ctx.theme.aria?.[match] ?? "";
13
+ if (aria) return {
14
+ matcher: rest,
15
+ selector: (s) => `${s}[aria-${aria}]`
16
+ };
17
+ }
18
+ },
19
+ multiPass: true
20
+ };
21
+ function taggedAria(tagName, combinator, options = {}) {
22
+ return {
23
+ name: `${tagName}-aria`,
24
+ match(matcher, ctx) {
25
+ const variant = (0, utils_exports.variantGetParameter)(`${tagName}-aria-`, matcher, ctx.generator.config.separators);
26
+ if (variant) {
27
+ const [match, rest, label] = variant;
28
+ const ariaAttribute = h.bracket(match) ?? ctx.theme.aria?.[match] ?? "";
29
+ if (ariaAttribute) {
30
+ const attributify = !!options?.attributifyPseudo;
31
+ let firstPrefix = options?.prefix ?? "";
32
+ firstPrefix = (Array.isArray(firstPrefix) ? firstPrefix : [firstPrefix]).filter(Boolean)[0] ?? "";
33
+ const parent = `${attributify ? `[${firstPrefix}${tagName}=""]` : `.${firstPrefix}${tagName}`}`;
34
+ const escapedLabel = escapeSelector(label ? `/${label}` : "");
35
+ return {
36
+ matcher: rest,
37
+ handle: (input, next) => {
38
+ const regexp = /* @__PURE__ */ new RegExp(`${escapeRegExp(parent)}${escapeRegExp(escapedLabel)}(?:\\[.+?\\])+`);
39
+ const match$1 = input.prefix.match(regexp);
40
+ let nextPrefix;
41
+ if (match$1) {
42
+ const insertIndex = (match$1.index ?? 0) + parent.length + escapedLabel.length;
43
+ nextPrefix = [
44
+ input.prefix.slice(0, insertIndex),
45
+ `[aria-${ariaAttribute}]`,
46
+ input.prefix.slice(insertIndex)
47
+ ].join("");
48
+ } else {
49
+ const prefixGroupIndex = Math.max(input.prefix.indexOf(parent), 0);
50
+ nextPrefix = [
51
+ input.prefix.slice(0, prefixGroupIndex),
52
+ parent,
53
+ escapedLabel,
54
+ `[aria-${ariaAttribute}]`,
55
+ combinator,
56
+ input.prefix.slice(prefixGroupIndex)
57
+ ].join("");
58
+ }
59
+ return next({
60
+ ...input,
61
+ prefix: nextPrefix
62
+ });
63
+ }
64
+ };
65
+ }
66
+ }
67
+ },
68
+ multiPass: true
69
+ };
70
+ }
71
+ function taggedHasAria() {
72
+ return {
73
+ name: "has-aria",
74
+ match(matcher, ctx) {
75
+ const variant = (0, utils_exports.variantGetParameter)("has-aria-", matcher, ctx.generator.config.separators);
76
+ if (variant) {
77
+ const [match, rest] = variant;
78
+ const ariaAttribute = h.bracket(match) ?? ctx.theme.aria?.[match] ?? "";
79
+ if (ariaAttribute) return {
80
+ matcher: rest,
81
+ handle: (input, next) => next({
82
+ ...input,
83
+ pseudo: `${input.pseudo}:has([aria-${ariaAttribute}])`
84
+ })
85
+ };
86
+ }
87
+ },
88
+ multiPass: true
89
+ };
90
+ }
91
+ function variantTaggedAriaAttributes(options = {}) {
92
+ return [
93
+ taggedAria("group", " ", options),
94
+ taggedAria("peer", "~", options),
95
+ taggedAria("parent", ">", options),
96
+ taggedAria("previous", "+", options),
97
+ taggedHasAria()
98
+ ];
99
+ }
100
+
101
+ //#endregion
102
+ //#region src/_variants/breakpoints.ts
103
+ const sizePseudo = /(max|min)-\[([^\]]*)\]:/;
104
+ function variantBreakpoints() {
105
+ const regexCache = {};
106
+ return {
107
+ name: "breakpoints",
108
+ match(matcher, context) {
109
+ if (sizePseudo.test(matcher)) {
110
+ const match = matcher.match(sizePseudo);
111
+ return {
112
+ matcher: matcher.replace(match[0], ""),
113
+ handle: (input, next) => next({
114
+ ...input,
115
+ parent: `${input.parent ? `${input.parent} $$ ` : ""}@media (${match[1]}-width: ${match[2]})`
116
+ })
117
+ };
118
+ }
119
+ const variantEntries = (resolveBreakpoints(context) ?? []).map(({ point, size }, idx) => [
120
+ point,
121
+ size,
122
+ idx
123
+ ]);
124
+ for (const [point, size, idx] of variantEntries) {
125
+ if (!regexCache[point]) regexCache[point] = /* @__PURE__ */ new RegExp(`^((?:([al]t-|[<~]|max-))?${point}(?:${context.generator.config.separators.join("|")}))`);
126
+ const match = matcher.match(regexCache[point]);
127
+ if (!match) continue;
128
+ const [, pre] = match;
129
+ const m = matcher.slice(pre.length);
130
+ if (m === "container") continue;
131
+ const isLtPrefix = pre.startsWith("lt-") || pre.startsWith("<") || pre.startsWith("max-");
132
+ const isAtPrefix = pre.startsWith("at-") || pre.startsWith("~");
133
+ let order = 3e3;
134
+ if (isLtPrefix) {
135
+ order -= idx + 1;
136
+ return {
137
+ matcher: m,
138
+ handle: (input, next) => next({
139
+ ...input,
140
+ parent: `${input.parent ? `${input.parent} $$ ` : ""}@media (max-width: ${(0, utils_exports.calcMaxWidthBySize)(size)})`,
141
+ parentOrder: order
142
+ })
143
+ };
144
+ }
145
+ order += idx + 1;
146
+ if (isAtPrefix && idx < variantEntries.length - 1) return {
147
+ matcher: m,
148
+ handle: (input, next) => next({
149
+ ...input,
150
+ parent: `${input.parent ? `${input.parent} $$ ` : ""}@media (min-width: ${size}) and (max-width: ${(0, utils_exports.calcMaxWidthBySize)(variantEntries[idx + 1][1])})`,
151
+ parentOrder: order
152
+ })
153
+ };
154
+ return {
155
+ matcher: m,
156
+ handle: (input, next) => next({
157
+ ...input,
158
+ parent: `${input.parent ? `${input.parent} $$ ` : ""}@media (min-width: ${size})`,
159
+ parentOrder: order
160
+ })
161
+ };
162
+ }
163
+ },
164
+ multiPass: true,
165
+ autocomplete: "(at-|lt-|max-|)$breakpoints:"
166
+ };
167
+ }
168
+
169
+ //#endregion
170
+ //#region src/_variants/children.ts
171
+ const variantChildren = [(0, utils_exports.variantMatcher)("*", (input) => ({ selector: `${input.selector} > *` }), { order: -1 })];
172
+
173
+ //#endregion
174
+ //#region src/_variants/combinators.ts
175
+ function scopeMatcher(name, combinator) {
176
+ return {
177
+ name: `combinator:${name}`,
178
+ match(matcher, ctx) {
179
+ if (!matcher.startsWith(name)) return;
180
+ const separators = ctx.generator.config.separators;
181
+ let body = (0, utils_exports.variantGetBracket)(`${name}-`, matcher, separators);
182
+ if (!body) {
183
+ for (const separator of separators) if (matcher.startsWith(`${name}${separator}`)) {
184
+ body = ["", matcher.slice(name.length + separator.length)];
185
+ break;
186
+ }
187
+ if (!body) return;
188
+ }
189
+ let bracketValue = h.bracket(body[0]) ?? "";
190
+ if (bracketValue === "") bracketValue = "*";
191
+ return {
192
+ matcher: body[1],
193
+ selector: (s) => `${s}${combinator}${bracketValue}`
194
+ };
195
+ },
196
+ multiPass: true
197
+ };
198
+ }
199
+ const variantCombinators = [
200
+ scopeMatcher("all", " "),
201
+ scopeMatcher("children", ">"),
202
+ scopeMatcher("next", "+"),
203
+ scopeMatcher("sibling", "+"),
204
+ scopeMatcher("siblings", "~")
205
+ ];
206
+
207
+ //#endregion
208
+ //#region src/_variants/container.ts
209
+ const variantContainerQuery = {
210
+ name: "@",
211
+ match(matcher, ctx) {
212
+ if (matcher.startsWith("@container")) return;
213
+ const variant = (0, utils_exports.variantGetParameter)("@", matcher, ctx.generator.config.separators);
214
+ if (variant) {
215
+ const [match, rest, label] = variant;
216
+ const unbracket = h.bracket(match);
217
+ let container;
218
+ if (unbracket) container = h.numberWithUnit(unbracket);
219
+ else container = ctx.theme.containers?.[match] ?? "";
220
+ if (container) {
221
+ let order = 1e3 + Object.keys(ctx.theme.containers ?? {}).indexOf(match);
222
+ if (label) order += 1e3;
223
+ return {
224
+ matcher: rest,
225
+ handle: (input, next) => next({
226
+ ...input,
227
+ parent: `${input.parent ? `${input.parent} $$ ` : ""}@container${label ? ` ${label} ` : " "}(min-width: ${container})`,
228
+ parentOrder: order
229
+ })
230
+ };
231
+ }
232
+ }
233
+ },
234
+ multiPass: true
235
+ };
236
+
237
+ //#endregion
238
+ //#region src/_variants/dark.ts
239
+ function variantColorsMediaOrClass(options = {}) {
240
+ if (options?.dark === "class" || typeof options.dark === "object") {
241
+ const { dark = ".dark", light = ".light" } = typeof options.dark === "string" ? {} : options.dark;
242
+ return [(0, utils_exports.variantMatcher)("dark", toArray(dark).map((dark$1) => (input) => ({ prefix: `${dark$1} $$ ${input.prefix}` }))), (0, utils_exports.variantMatcher)("light", toArray(light).map((light$1) => (input) => ({ prefix: `${light$1} $$ ${input.prefix}` })))];
243
+ }
244
+ return [(0, utils_exports.variantParentMatcher)("dark", "@media (prefers-color-scheme: dark)"), (0, utils_exports.variantParentMatcher)("light", "@media (prefers-color-scheme: light)")];
245
+ }
246
+
247
+ //#endregion
248
+ //#region src/_variants/data.ts
249
+ const variantDataAttribute = {
250
+ name: "data",
251
+ match(matcher, ctx) {
252
+ const variant = (0, utils_exports.variantGetParameter)("data-", matcher, ctx.generator.config.separators);
253
+ if (variant) {
254
+ const [match, rest] = variant;
255
+ const dataAttribute = h.bracket(match) ?? ctx.theme.data?.[match] ?? "";
256
+ if (dataAttribute) return {
257
+ matcher: rest,
258
+ selector: (s) => `${s}[data-${dataAttribute}]`
259
+ };
260
+ }
261
+ },
262
+ multiPass: true
263
+ };
264
+ function taggedData(tagName, combinator, options = {}) {
265
+ return {
266
+ name: `${tagName}-data`,
267
+ match(matcher, ctx) {
268
+ const variant = (0, utils_exports.variantGetParameter)(`${tagName}-data-`, matcher, ctx.generator.config.separators);
269
+ if (variant) {
270
+ const [match, rest, label] = variant;
271
+ const dataAttribute = h.bracket(match) ?? ctx.theme.data?.[match] ?? "";
272
+ if (dataAttribute) {
273
+ const attributify = !!options?.attributifyPseudo;
274
+ let firstPrefix = options?.prefix ?? "";
275
+ firstPrefix = (Array.isArray(firstPrefix) ? firstPrefix : [firstPrefix]).filter(Boolean)[0] ?? "";
276
+ const parent = `${attributify ? `[${firstPrefix}${tagName}=""]` : `.${firstPrefix}${tagName}`}`;
277
+ const escapedLabel = escapeSelector(label ? `/${label}` : "");
278
+ return {
279
+ matcher: rest,
280
+ handle: (input, next) => {
281
+ const regexp = /* @__PURE__ */ new RegExp(`${escapeRegExp(parent)}${escapeRegExp(escapedLabel)}(?:\\[.+?\\])+`);
282
+ const match$1 = input.prefix.match(regexp);
283
+ let nextPrefix;
284
+ if (match$1) {
285
+ const insertIndex = (match$1.index ?? 0) + parent.length + escapedLabel.length;
286
+ nextPrefix = [
287
+ input.prefix.slice(0, insertIndex),
288
+ `[data-${dataAttribute}]`,
289
+ input.prefix.slice(insertIndex)
290
+ ].join("");
291
+ } else {
292
+ const prefixGroupIndex = Math.max(input.prefix.indexOf(parent), 0);
293
+ nextPrefix = [
294
+ input.prefix.slice(0, prefixGroupIndex),
295
+ parent,
296
+ escapedLabel,
297
+ `[data-${dataAttribute}]`,
298
+ combinator,
299
+ input.prefix.slice(prefixGroupIndex)
300
+ ].join("");
301
+ }
302
+ return next({
303
+ ...input,
304
+ prefix: nextPrefix
305
+ });
306
+ }
307
+ };
308
+ }
309
+ }
310
+ },
311
+ multiPass: true
312
+ };
313
+ }
314
+ function taggedHasData() {
315
+ return {
316
+ name: "has-data",
317
+ match(matcher, ctx) {
318
+ const variant = (0, utils_exports.variantGetParameter)("has-data-", matcher, ctx.generator.config.separators);
319
+ if (variant) {
320
+ const [match, rest] = variant;
321
+ const dataAttribute = h.bracket(match) ?? ctx.theme.data?.[match] ?? "";
322
+ if (dataAttribute) return {
323
+ matcher: rest,
324
+ handle: (input, next) => next({
325
+ ...input,
326
+ pseudo: `${input.pseudo}:has([data-${dataAttribute}])`
327
+ })
328
+ };
329
+ }
330
+ },
331
+ multiPass: true
332
+ };
333
+ }
334
+ function variantTaggedDataAttributes(options = {}) {
335
+ return [
336
+ taggedData("group", " ", options),
337
+ taggedData("peer", "~", options),
338
+ taggedData("parent", ">", options),
339
+ taggedData("previous", "+", options),
340
+ taggedHasData()
341
+ ];
342
+ }
343
+
344
+ //#endregion
345
+ //#region src/_variants/directions.ts
346
+ const variantLanguageDirections = [(0, utils_exports.variantMatcher)("rtl", (input) => ({ prefix: `[dir="rtl"] $$ ${input.prefix}` })), (0, utils_exports.variantMatcher)("ltr", (input) => ({ prefix: `[dir="ltr"] $$ ${input.prefix}` }))];
347
+
348
+ //#endregion
349
+ //#region src/_variants/important.ts
350
+ function variantImportant() {
351
+ let re;
352
+ return {
353
+ name: "important",
354
+ match(matcher, ctx) {
355
+ if (!re) re = /* @__PURE__ */ new RegExp(`^(important(?:${ctx.generator.config.separators.join("|")})|!)`);
356
+ let base;
357
+ const match = matcher.match(re);
358
+ if (match) base = matcher.slice(match[0].length);
359
+ else if (matcher.endsWith("!")) base = matcher.slice(0, -1);
360
+ if (base) return {
361
+ matcher: base,
362
+ body: (body) => {
363
+ body.forEach((v) => {
364
+ if (v[1] != null) v[1] += " !important";
365
+ });
366
+ return body;
367
+ }
368
+ };
369
+ }
370
+ };
371
+ }
372
+
373
+ //#endregion
374
+ //#region src/_variants/media.ts
375
+ const variantPrint = (0, utils_exports.variantParentMatcher)("print", "@media print");
376
+ const variantCustomMedia = {
377
+ name: "media",
378
+ match(matcher, ctx) {
379
+ const variant = (0, utils_exports.variantGetParameter)("media-", matcher, ctx.generator.config.separators);
380
+ if (variant) {
381
+ const [match, rest] = variant;
382
+ let media = h.bracket(match) ?? "";
383
+ if (media === "") media = ctx.theme.media?.[match] ?? "";
384
+ if (media) return {
385
+ matcher: rest,
386
+ handle: (input, next) => next({
387
+ ...input,
388
+ parent: `${input.parent ? `${input.parent} $$ ` : ""}@media ${media}`
389
+ })
390
+ };
391
+ }
392
+ },
393
+ multiPass: true
394
+ };
395
+
396
+ //#endregion
397
+ //#region src/_variants/misc.ts
398
+ const variantSelector = {
399
+ name: "selector",
400
+ match(matcher, ctx) {
401
+ const variant = (0, utils_exports.variantGetBracket)("selector-", matcher, ctx.generator.config.separators);
402
+ if (variant) {
403
+ const [match, rest] = variant;
404
+ const selector = h.bracket(match);
405
+ if (selector) return {
406
+ matcher: rest,
407
+ selector: () => selector
408
+ };
409
+ }
410
+ }
411
+ };
412
+ const variantCssLayer = {
413
+ name: "layer",
414
+ match(matcher, ctx) {
415
+ const variant = (0, utils_exports.variantGetParameter)("layer-", matcher, ctx.generator.config.separators);
416
+ if (variant) {
417
+ const [match, rest] = variant;
418
+ const layer = h.bracket(match) ?? match;
419
+ if (layer) return {
420
+ matcher: rest,
421
+ handle: (input, next) => next({
422
+ ...input,
423
+ parent: `${input.parent ? `${input.parent} $$ ` : ""}@layer ${layer}`
424
+ })
425
+ };
426
+ }
427
+ }
428
+ };
429
+ const variantInternalLayer = {
430
+ name: "uno-layer",
431
+ match(matcher, ctx) {
432
+ const variant = (0, utils_exports.variantGetParameter)("uno-layer-", matcher, ctx.generator.config.separators);
433
+ if (variant) {
434
+ const [match, rest] = variant;
435
+ const layer = h.bracket(match) ?? match;
436
+ if (layer) return {
437
+ matcher: rest,
438
+ layer
439
+ };
440
+ }
441
+ }
442
+ };
443
+ const variantScope = {
444
+ name: "scope",
445
+ match(matcher, ctx) {
446
+ const variant = (0, utils_exports.variantGetBracket)("scope-", matcher, ctx.generator.config.separators);
447
+ if (variant) {
448
+ const [match, rest] = variant;
449
+ const scope = h.bracket(match);
450
+ if (scope) return {
451
+ matcher: rest,
452
+ selector: (s) => `${scope} $$ ${s}`
453
+ };
454
+ }
455
+ }
456
+ };
457
+ const variantVariables = {
458
+ name: "variables",
459
+ match(matcher, ctx) {
460
+ if (!matcher.startsWith("[")) return;
461
+ const [match, rest] = (0, utils_exports.getBracket)(matcher, "[", "]") ?? [];
462
+ if (!(match && rest)) return;
463
+ let newMatcher;
464
+ for (const separator of ctx.generator.config.separators) if (rest.startsWith(separator)) {
465
+ newMatcher = rest.slice(separator.length);
466
+ break;
467
+ }
468
+ if (newMatcher == null) return;
469
+ const variant = h.bracket(match) ?? "";
470
+ const useParent = variant.startsWith("@");
471
+ if (!(useParent || variant.includes("&"))) return;
472
+ return {
473
+ matcher: newMatcher,
474
+ handle(input, next) {
475
+ const updates = useParent ? { parent: `${input.parent ? `${input.parent} $$ ` : ""}${variant}` } : { selector: variant.replace(/&/g, input.selector) };
476
+ return next({
477
+ ...input,
478
+ ...updates
479
+ });
480
+ }
481
+ };
482
+ },
483
+ multiPass: true
484
+ };
485
+ const variantTheme = {
486
+ name: "theme-variables",
487
+ match(matcher, ctx) {
488
+ if (!(0, utils_exports.hasThemeFn)(matcher)) return;
489
+ return {
490
+ matcher,
491
+ handle(input, next) {
492
+ return next({
493
+ ...input,
494
+ entries: JSON.parse((0, utils_exports.transformThemeFn)(JSON.stringify(input.entries), ctx.theme))
495
+ });
496
+ }
497
+ };
498
+ }
499
+ };
500
+
501
+ //#endregion
502
+ //#region src/_variants/negative.ts
503
+ const anchoredNumberRE = /^-?[0-9.]+(?:[a-z]+|%)?$/;
504
+ const numberRE = /-?[0-9.]+(?:[a-z]+|%)?/;
505
+ const ignoreProps = [/\b(opacity|color|flex|backdrop-filter|^filter|transform)\b/];
506
+ function negateMathFunction(value) {
507
+ const match = value.match(cssMathFnRE) || value.match(cssVarFnRE);
508
+ if (match) {
509
+ const [fnBody, rest] = getStringComponent(`(${match[2]})${match[3]}`, "(", ")", " ") ?? [];
510
+ if (fnBody) return `calc(${match[1]}${fnBody} * -1)${rest ? ` ${rest}` : ""}`;
511
+ }
512
+ }
513
+ const negateFunctionBodyRE = /\b(hue-rotate)\s*(\(.*)/;
514
+ function negateFunctionBody(value) {
515
+ const match = value.match(negateFunctionBodyRE);
516
+ if (match) {
517
+ const [fnBody, rest] = getStringComponent(match[2], "(", ")", " ") ?? [];
518
+ if (fnBody) {
519
+ const body = anchoredNumberRE.test(fnBody.slice(1, -1)) ? fnBody.replace(numberRE, (i) => i.startsWith("-") ? i.slice(1) : `-${i}`) : `(calc(${fnBody} * -1))`;
520
+ return `${match[1]}${body}${rest ? ` ${rest}` : ""}`;
521
+ }
522
+ }
523
+ }
524
+ const variantNegative = {
525
+ name: "negative",
526
+ match(matcher) {
527
+ if (!matcher.startsWith("-")) return;
528
+ return {
529
+ matcher: matcher.slice(1),
530
+ body: (body) => {
531
+ if (body.find((v) => v[0] === CONTROL_MINI_NO_NEGATIVE)) return;
532
+ let changed = false;
533
+ body.forEach((v) => {
534
+ const value = v[1]?.toString();
535
+ if (!value || value === "0") return;
536
+ if (ignoreProps.some((i) => i.test(v[0]))) return;
537
+ const negatedFn = negateMathFunction(value);
538
+ if (negatedFn) {
539
+ v[1] = negatedFn;
540
+ changed = true;
541
+ return;
542
+ }
543
+ const negatedBody = negateFunctionBody(value);
544
+ if (negatedBody) {
545
+ v[1] = negatedBody;
546
+ changed = true;
547
+ return;
548
+ }
549
+ if (anchoredNumberRE.test(value)) {
550
+ v[1] = value.replace(numberRE, (i) => i.startsWith("-") ? i.slice(1) : `-${i}`);
551
+ changed = true;
552
+ }
553
+ });
554
+ if (changed) return body;
555
+ return [];
556
+ }
557
+ };
558
+ }
559
+ };
560
+
561
+ //#endregion
562
+ //#region src/_variants/pseudo.ts
563
+ function variantPseudoClassesAndElements() {
564
+ return createPseudoClassesAndElements({
565
+ getBracket: _utils_exports.getBracket,
566
+ h,
567
+ variantGetBracket: _utils_exports.variantGetBracket
568
+ });
569
+ }
570
+ function variantPseudoClassFunctions() {
571
+ return createPseudoClassFunctions({
572
+ getBracket: _utils_exports.getBracket,
573
+ h,
574
+ variantGetBracket: _utils_exports.variantGetBracket
575
+ });
576
+ }
577
+ function variantTaggedPseudoClasses(options = {}) {
578
+ return createTaggedPseudoClasses(options, {
579
+ getBracket: _utils_exports.getBracket,
580
+ h,
581
+ variantGetBracket: _utils_exports.variantGetBracket
582
+ });
583
+ }
584
+ const variantPartClasses = createPartClasses();
585
+
586
+ //#endregion
587
+ //#region src/_variants/startingstyle.ts
588
+ const variantStartingStyle = {
589
+ name: "starting",
590
+ match(matcher) {
591
+ if (!matcher.startsWith("starting:")) return;
592
+ return {
593
+ matcher: matcher.slice(9),
594
+ handle: (input, next) => next({
595
+ ...input,
596
+ parent: `@starting-style`
597
+ })
598
+ };
599
+ }
600
+ };
601
+
602
+ //#endregion
603
+ //#region src/_variants/supports.ts
604
+ const variantSupports = {
605
+ name: "supports",
606
+ match(matcher, ctx) {
607
+ const variant = (0, utils_exports.variantGetParameter)("supports-", matcher, ctx.generator.config.separators);
608
+ if (variant) {
609
+ const [match, rest] = variant;
610
+ let supports = h.bracket(match) ?? "";
611
+ if (supports === "") supports = ctx.theme.supports?.[match] ?? "";
612
+ if (supports) {
613
+ if (!(supports.startsWith("(") && supports.endsWith(")"))) supports = `(${supports})`;
614
+ return {
615
+ matcher: rest,
616
+ handle: (input, next) => next({
617
+ ...input,
618
+ parent: `${input.parent ? `${input.parent} $$ ` : ""}@supports ${supports}`
619
+ })
620
+ };
621
+ }
622
+ }
623
+ },
624
+ multiPass: true
625
+ };
626
+
627
+ //#endregion
628
+ //#region src/_variants/default.ts
629
+ function variants(options) {
630
+ return [
631
+ variantAria,
632
+ variantDataAttribute,
633
+ variantCssLayer,
634
+ variantSelector,
635
+ variantInternalLayer,
636
+ variantNegative,
637
+ variantStartingStyle,
638
+ variantImportant(),
639
+ variantSupports,
640
+ variantPrint,
641
+ variantCustomMedia,
642
+ variantBreakpoints(),
643
+ ...variantCombinators,
644
+ ...variantPseudoClassesAndElements(),
645
+ variantPseudoClassFunctions(),
646
+ ...variantTaggedPseudoClasses(options),
647
+ variantPartClasses,
648
+ ...variantColorsMediaOrClass(options),
649
+ ...variantLanguageDirections,
650
+ variantScope,
651
+ ...variantChildren,
652
+ variantContainerQuery,
653
+ variantVariables,
654
+ ...variantTaggedDataAttributes(options),
655
+ ...variantTaggedAriaAttributes(options),
656
+ variantTheme
657
+ ];
658
+ }
659
+
660
+ //#endregion
661
+ export { variantAria, variantBreakpoints, variantChildren, variantColorsMediaOrClass, variantCombinators, variantContainerQuery, variantCssLayer, variantCustomMedia, variantDataAttribute, variantImportant, variantInternalLayer, variantLanguageDirections, variantNegative, variantPartClasses, variantPrint, variantPseudoClassFunctions, variantPseudoClassesAndElements, variantScope, variantSelector, variantStartingStyle, variantSupports, variantTaggedAriaAttributes, variantTaggedDataAttributes, variantTaggedPseudoClasses, variantTheme, variantVariables, variants };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@unocss/preset-mini",
3
3
  "type": "module",
4
- "version": "66.5.10",
4
+ "version": "66.5.11",
5
5
  "description": "The minimal preset for UnoCSS",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -49,20 +49,19 @@
49
49
  },
50
50
  "main": "dist/index.mjs",
51
51
  "module": "dist/index.mjs",
52
- "types": "dist/index.d.ts",
52
+ "types": "dist/index.d.mts",
53
53
  "files": [
54
54
  "*.css",
55
55
  "*.d.ts",
56
56
  "dist"
57
57
  ],
58
58
  "dependencies": {
59
- "@unocss/core": "66.5.10",
60
- "@unocss/extractor-arbitrary-variants": "66.5.10",
61
- "@unocss/rule-utils": "66.5.10"
59
+ "@unocss/core": "66.5.11",
60
+ "@unocss/rule-utils": "66.5.11",
61
+ "@unocss/extractor-arbitrary-variants": "66.5.11"
62
62
  },
63
63
  "scripts": {
64
- "build": "unbuild",
65
- "stub": "unbuild --stub",
66
- "test:attw": "attw --pack --config-path ../../.attw-esm-only.json"
64
+ "build": "tsdown",
65
+ "dev": "tsdown --watch"
67
66
  }
68
67
  }
package/colors.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './dist/colors'