@unocss/preset-wind4 66.1.4 → 66.2.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.d.mts CHANGED
@@ -3,7 +3,7 @@ import { Postprocessor, Preflight, Variant, PresetOptions, Arrayable, CSSEntry,
3
3
  import { T as Theme } from './shared/preset-wind4.CeNzqhCV.mjs';
4
4
  export { r as rules } from './shared/preset-wind4.O8irdiHr.mjs';
5
5
  export { shortcuts } from './shortcuts.mjs';
6
- export { t as theme } from './shared/preset-wind4.Hki3f6hz.mjs';
6
+ export { t as theme } from './shared/preset-wind4.VVeg6taI.mjs';
7
7
 
8
8
  declare function postprocessors(options: PresetWind4Options): Postprocessor[];
9
9
 
@@ -43,8 +43,6 @@ interface PreflightsTheme {
43
43
  mode?: boolean | 'on-demand';
44
44
  /**
45
45
  * Process the theme keys.
46
- *
47
- * @default undefined
48
46
  */
49
47
  process?: Arrayable<(entry: CSSEntry, ctx: PreflightContext<Theme>) => void>;
50
48
  }
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { Postprocessor, Preflight, Variant, PresetOptions, Arrayable, CSSEntry,
3
3
  import { T as Theme } from './shared/preset-wind4.CeNzqhCV.js';
4
4
  export { r as rules } from './shared/preset-wind4.oLaz9HAb.js';
5
5
  export { shortcuts } from './shortcuts.js';
6
- export { t as theme } from './shared/preset-wind4.Hki3f6hz.js';
6
+ export { t as theme } from './shared/preset-wind4.VVeg6taI.js';
7
7
 
8
8
  declare function postprocessors(options: PresetWind4Options): Postprocessor[];
9
9
 
@@ -43,8 +43,6 @@ interface PreflightsTheme {
43
43
  mode?: boolean | 'on-demand';
44
44
  /**
45
45
  * Process the theme keys.
46
- *
47
- * @default undefined
48
46
  */
49
47
  process?: Arrayable<(entry: CSSEntry, ctx: PreflightContext<Theme>) => void>;
50
48
  }
package/dist/index.mjs CHANGED
@@ -1,14 +1,14 @@
1
- import { toArray, definePreset } from '@unocss/core';
1
+ import { uniq, toArray, definePreset } from '@unocss/core';
2
2
  import { extractorArbitraryVariants } from '@unocss/extractor-arbitrary-variants';
3
- import { k as themeTracking, K as compressCSS, t as trackedTheme, w as getThemeByKey, g as globalKeywords, P as PRESET_NAME } from './shared/preset-wind4.DyLY6yb-.mjs';
3
+ import { k as themeTracking, K as compressCSS, w as getThemeByKey, m as detectThemeValue, t as trackedTheme, g as globalKeywords, P as PRESET_NAME } from './shared/preset-wind4.CyHpIC99.mjs';
4
4
  import { alphaPlaceholdersRE } from '@unocss/rule-utils';
5
5
  import { postprocessors } from './postprocess.mjs';
6
- import { k as variants } from './shared/preset-wind4.wYrEcFuT.mjs';
6
+ import { k as variants } from './shared/preset-wind4.DhxVnGgJ.mjs';
7
7
  import { theme as theme$1 } from './theme.mjs';
8
- import { s as shortcuts } from './shared/preset-wind4.DBfj437j.mjs';
9
- import { r as rules } from './shared/preset-wind4.xQf3nzcZ.mjs';
8
+ import { s as shortcuts } from './shared/preset-wind4.BA7wPzCb.mjs';
9
+ import { r as rules } from './shared/preset-wind4.DqLC7Uzl.mjs';
10
10
  import './colors.mjs';
11
- import './shared/preset-wind4.DpwQS2PT.mjs';
11
+ import './shared/preset-wind4.CsstzKnM.mjs';
12
12
 
13
13
  const resetCSS = `
14
14
  /*
@@ -454,16 +454,30 @@ function theme(options) {
454
454
  layer: "theme",
455
455
  getCSS(ctx) {
456
456
  const { theme: theme2, generator } = ctx;
457
- const preflightsTheme = options.preflights.theme;
458
- if (preflightsTheme.mode === false) {
457
+ const safelist = uniq(generator.config.safelist.flatMap((s) => typeof s === "function" ? s(ctx) : s));
458
+ const { mode, process } = options.preflights.theme;
459
+ if (mode === false) {
459
460
  return void 0;
460
461
  }
462
+ if (safelist.length > 0) {
463
+ for (const s of safelist) {
464
+ const [key, ...prop] = s.trim().split(":");
465
+ if (key in theme2 && prop.length <= 1) {
466
+ const props = prop.length === 0 ? ["DEFAULT"] : prop[0].split("-");
467
+ const v = getThemeByKey(theme2, key, props);
468
+ if (typeof v === "string") {
469
+ themeTracking(key, props);
470
+ detectThemeValue(v, theme2);
471
+ }
472
+ }
473
+ }
474
+ }
461
475
  let deps;
462
476
  const generateCSS = (deps2) => {
463
- if (preflightsTheme.process) {
477
+ if (process) {
464
478
  for (const utility of deps2) {
465
- for (const process of toArray(preflightsTheme.process)) {
466
- process(utility, ctx);
479
+ for (const p of toArray(process)) {
480
+ p(utility, ctx);
467
481
  }
468
482
  }
469
483
  }
@@ -477,13 +491,13 @@ function theme(options) {
477
491
  ${depCSS}
478
492
  }`, generator.config.envMode === "dev");
479
493
  };
480
- if (preflightsTheme.mode === "on-demand") {
494
+ if (mode === "on-demand") {
481
495
  if (trackedTheme.size === 0)
482
496
  return void 0;
483
497
  deps = Array.from(trackedTheme).map((k) => {
484
498
  const [key, prop] = k.split(":");
485
499
  const v = getThemeByKey(theme2, key, prop.split("-"));
486
- if (v) {
500
+ if (typeof v === "string") {
487
501
  return [`--${key}${`${key === "spacing" && prop === "DEFAULT" ? "" : `-${prop}`}`}`, v];
488
502
  }
489
503
  return void 0;
@@ -4,7 +4,7 @@ import { Postprocessor } from '@unocss/core';
4
4
  import './shared/preset-wind4.CeNzqhCV.mjs';
5
5
  import './shared/preset-wind4.O8irdiHr.mjs';
6
6
  import './shortcuts.mjs';
7
- import './shared/preset-wind4.Hki3f6hz.mjs';
7
+ import './shared/preset-wind4.VVeg6taI.mjs';
8
8
 
9
9
  declare function important({ important: option }: PresetWind4Options): Postprocessor[];
10
10
 
@@ -4,7 +4,7 @@ import { Postprocessor } from '@unocss/core';
4
4
  import './shared/preset-wind4.CeNzqhCV.js';
5
5
  import './shared/preset-wind4.oLaz9HAb.js';
6
6
  import './shortcuts.js';
7
- import './shared/preset-wind4.Hki3f6hz.js';
7
+ import './shared/preset-wind4.VVeg6taI.js';
8
8
 
9
9
  declare function important({ important: option }: PresetWind4Options): Postprocessor[];
10
10
 
package/dist/rules.mjs CHANGED
@@ -1,5 +1,5 @@
1
- export { d as accents, am as accessibility, H as alignments, a as animations, c as appearance, _ as appearances, U as aspectRatio, aj as backgroundBlendModes, b as backgroundStyles, m as bgColors, g as borderStyles, h as borders, S as boxShadows, N as boxSizing, a7 as breaks, e as carets, n as colorScheme, p as columns, a0 as contains, a5 as contentVisibility, a6 as contents, aC as cssProperty, aB as cssVariables, $ as cursors, Z as displays, u as divides, al as dynamicViewportHeight, an as fieldSizing, x as filters, y as flex, J as flexGridJustifiesAlignments, L as floats, ac as fontSmoothings, ab as fontStyles, az as fontVariantNumeric, au as fonts, z as gaps, A as grids, j as handlerBorderStyle, ad as hyphens, i as imageRenderings, K as insets, ah as isolations, F as justifies, C as lineClamps, l as listStyle, W as margins, ak as mixBlendModes, Y as notLastChildSelector, ai as objectPositions, k as opacity, G as orders, o as outline, B as overflows, f as overscrolls, V as paddings, D as placeholders, I as placements, a1 as pointerEvents, E as positions, O as questionMark, a2 as resizes, P as rings, r as rules, ag as screenReadersAccess, s as scrollBehaviors, Q as scrolls, R as shadowProperties, T as sizes, X as spaces, aA as splitShorthand, ao as svgUtilities, av as tabSizes, ap as tables, t as textAligns, q as textDecorations, aw as textIndents, a9 as textOverflows, ay as textShadows, ax as textStrokes, aa as textTransforms, a8 as textWraps, aq as touchActions, ar as transformBase, as as transforms, at as transitions, a3 as userSelects, v as verticalAligns, aD as viewTransition, a4 as whitespaces, w as willChange, ae as writingModes, af as writingOrientations, M as zIndexes } from './shared/preset-wind4.xQf3nzcZ.mjs';
2
- export { a as container, c as containerParent, b as containerShortcuts } from './shared/preset-wind4.DpwQS2PT.mjs';
3
- import './shared/preset-wind4.DyLY6yb-.mjs';
1
+ export { d as accents, am as accessibility, H as alignments, a as animations, c as appearance, _ as appearances, U as aspectRatio, aj as backgroundBlendModes, b as backgroundStyles, m as bgColors, g as borderStyles, h as borders, S as boxShadows, N as boxSizing, a7 as breaks, e as carets, n as colorScheme, p as columns, a0 as contains, a5 as contentVisibility, a6 as contents, aC as cssProperty, aB as cssVariables, $ as cursors, Z as displays, u as divides, al as dynamicViewportHeight, an as fieldSizing, x as filters, y as flex, J as flexGridJustifiesAlignments, L as floats, ac as fontSmoothings, ab as fontStyles, az as fontVariantNumeric, au as fonts, z as gaps, A as grids, j as handlerBorderStyle, ad as hyphens, i as imageRenderings, K as insets, ah as isolations, F as justifies, C as lineClamps, l as listStyle, W as margins, ak as mixBlendModes, Y as notLastChildSelector, ai as objectPositions, k as opacity, G as orders, o as outline, B as overflows, f as overscrolls, V as paddings, D as placeholders, I as placements, a1 as pointerEvents, E as positions, O as questionMark, a2 as resizes, P as rings, r as rules, ag as screenReadersAccess, s as scrollBehaviors, Q as scrolls, R as shadowProperties, T as sizes, X as spaces, aA as splitShorthand, ao as svgUtilities, av as tabSizes, ap as tables, t as textAligns, q as textDecorations, aw as textIndents, a9 as textOverflows, ay as textShadows, ax as textStrokes, aa as textTransforms, a8 as textWraps, aq as touchActions, ar as transformBase, as as transforms, at as transitions, a3 as userSelects, v as verticalAligns, aD as viewTransition, a4 as whitespaces, w as willChange, ae as writingModes, af as writingOrientations, M as zIndexes } from './shared/preset-wind4.DqLC7Uzl.mjs';
2
+ export { a as container, c as containerParent, b as containerShortcuts } from './shared/preset-wind4.CsstzKnM.mjs';
3
+ import './shared/preset-wind4.CyHpIC99.mjs';
4
4
  import '@unocss/core';
5
5
  import '@unocss/rule-utils';
@@ -1,4 +1,4 @@
1
- import { b as containerShortcuts } from './preset-wind4.DpwQS2PT.mjs';
1
+ import { b as containerShortcuts } from './preset-wind4.CsstzKnM.mjs';
2
2
 
3
3
  const shortcuts = [
4
4
  ...containerShortcuts
@@ -1,5 +1,5 @@
1
1
  import { isString } from '@unocss/core';
2
- import { r as resolveBreakpoints } from './preset-wind4.DyLY6yb-.mjs';
2
+ import { r as resolveBreakpoints } from './preset-wind4.CyHpIC99.mjs';
3
3
 
4
4
  const containerParent = [
5
5
  [/^@container(?:\/(\w+))?(?:-(normal))?$/, ([, l, v]) => {
@@ -1,5 +1,5 @@
1
1
  import { escapeSelector, symbols, toArray } from '@unocss/core';
2
- import { createValueHandler, parseCssColor, getStringComponents, colorToString, getStringComponent } from '@unocss/rule-utils';
2
+ import { createValueHandler, getStringComponents, isInterpolatedMethod, parseCssColor, colorToString, getStringComponent } from '@unocss/rule-utils';
3
3
 
4
4
  const PRESET_NAME = "@unocss/preset-wind4";
5
5
  const CONTROL_NO_NEGATIVE = "$$mini-no-negative";
@@ -491,10 +491,23 @@ function splitShorthand(body, type) {
491
491
  }
492
492
  }
493
493
  function parseColor(body, theme) {
494
- const split = splitShorthand(body, "color");
494
+ let split;
495
+ const [front, ...rest] = getStringComponents(body, ["/", ":"], 3) ?? [];
496
+ if (front != null) {
497
+ const match = (front.match(bracketTypeRe) ?? [])[1];
498
+ if (match == null || match === "color") {
499
+ split = [front, ...rest];
500
+ }
501
+ }
495
502
  if (!split)
496
503
  return;
497
- const [main, opacity] = split;
504
+ let opacity;
505
+ let [main, opacityOrModifier, modifier] = split;
506
+ if (isInterpolatedMethod(opacityOrModifier) || isInterpolatedMethod(h.bracket(opacityOrModifier ?? ""))) {
507
+ modifier = opacityOrModifier;
508
+ } else {
509
+ opacity = opacityOrModifier;
510
+ }
498
511
  const colors = main.replace(/([a-z])(\d)/g, "$1-$2").split(/-/g);
499
512
  const [name] = colors;
500
513
  if (!name)
@@ -515,6 +528,7 @@ function parseColor(body, theme) {
515
528
  }
516
529
  return {
517
530
  opacity,
531
+ modifier: modifier && h.bracket.cssvar(modifier) || modifier,
518
532
  name,
519
533
  no,
520
534
  color: color ?? SpecialColorKey[name],
@@ -575,7 +589,7 @@ function getThemeByKey(theme, themeKey, keys) {
575
589
  function colorCSSGenerator(data, property, varName, ctx) {
576
590
  if (!data)
577
591
  return;
578
- const { color, keys, alpha } = data;
592
+ const { color, keys, alpha, modifier } = data;
579
593
  const rawColorComment = ctx?.generator.config.envMode === "dev" && color ? ` /* ${color} */` : "";
580
594
  const css = {};
581
595
  if (color) {
@@ -585,13 +599,22 @@ function colorCSSGenerator(data, property, varName, ctx) {
585
599
  } else {
586
600
  const alphaKey = `--un-${varName}-opacity`;
587
601
  const value = keys ? generateThemeVariable("colors", keys) : color;
588
- if (!alpha) {
589
- css[alphaKey] = alpha;
602
+ let method = modifier ?? (keys ? "in srgb" : "in oklab");
603
+ if (!method.startsWith("in ") && !method.startsWith("var(")) {
604
+ method = `in ${method}`;
590
605
  }
591
- css[property] = `color-mix(in oklch, ${value} ${alpha ?? `var(${alphaKey})`}, transparent)${rawColorComment}`;
606
+ css[property] = `color-mix(${method}, ${value} ${alpha ?? `var(${alphaKey})`}, transparent)${rawColorComment}`;
592
607
  result.push(defineProperty(alphaKey, { syntax: "<percentage>", initialValue: "100%" }));
593
608
  if (keys) {
594
609
  themeTracking(`colors`, keys);
610
+ if (!modifier) {
611
+ result.push({
612
+ [symbols.parent]: "@supports (color: color-mix(in lab, red, red))",
613
+ [symbols.noMerge]: true,
614
+ [symbols.shortcutsNoMerge]: true,
615
+ [property]: `color-mix(in oklab, ${value} ${alpha ?? `var(${alphaKey})`}, transparent)${rawColorComment}`
616
+ });
617
+ }
595
618
  }
596
619
  if (ctx?.theme) {
597
620
  detectThemeValue(color, ctx.theme);
@@ -719,7 +742,7 @@ function detectThemeValue(value, theme) {
719
742
  if (variable) {
720
743
  const [key, ...path] = variable.split("-");
721
744
  const themeValue = getThemeByKey(theme, key, path);
722
- if (themeValue != null) {
745
+ if (typeof themeValue === "string") {
723
746
  themeTracking(key, path);
724
747
  detectThemeValue(themeValue, theme);
725
748
  }
@@ -1,6 +1,6 @@
1
- import { variantGetParameter, calcMaxWidthBySize, variantMatcher, variantGetBracket, variantParentMatcher, getBracket, hasThemeFn, transformThemeFn, getStringComponent } from '@unocss/rule-utils';
2
- import { b as h, r as resolveBreakpoints, C as CONTROL_NO_NEGATIVE, f as cssMathFnRE, j as cssVarFnRE, B as hasParseableColor } from './preset-wind4.DyLY6yb-.mjs';
3
- import { toArray, escapeRegExp, escapeSelector } from '@unocss/core';
1
+ import { variantGetParameter, calcMaxWidthBySize, variantMatcher, variantGetBracket, variantParentMatcher, getBracket, hasThemeFn, transformThemeFn, getStringComponent, createPartClasses, createPseudoClassesAndElements, createPseudoClassFunctions, createTaggedPseudoClasses } from '@unocss/rule-utils';
2
+ import { b as h, r as resolveBreakpoints, C as CONTROL_NO_NEGATIVE, f as cssMathFnRE, j as cssVarFnRE, B as hasParseableColor } from './preset-wind4.CyHpIC99.mjs';
3
+ import { toArray } from '@unocss/core';
4
4
 
5
5
  const variantAria = {
6
6
  name: "aria",
@@ -567,302 +567,19 @@ function hasOpacityValue(body) {
567
567
  return false;
568
568
  }
569
569
 
570
- const PseudoPlaceholder = "__pseudo_placeholder__";
571
- const PseudoClasses = Object.fromEntries([
572
- // pseudo elements part 1
573
- ["first-letter", "::first-letter"],
574
- ["first-line", "::first-line"],
575
- // location
576
- "any-link",
577
- "link",
578
- "visited",
579
- "target",
580
- ["open", "[open]"],
581
- // forms
582
- "default",
583
- "checked",
584
- "indeterminate",
585
- "placeholder-shown",
586
- "autofill",
587
- "optional",
588
- "required",
589
- "valid",
590
- "invalid",
591
- "user-valid",
592
- "user-invalid",
593
- "in-range",
594
- "out-of-range",
595
- "read-only",
596
- "read-write",
597
- // content
598
- "empty",
599
- // interactions
600
- "focus-within",
601
- "hover",
602
- "focus",
603
- "focus-visible",
604
- "active",
605
- "enabled",
606
- "disabled",
607
- "popover-open",
608
- // tree-structural
609
- "root",
610
- "empty",
611
- ["even-of-type", ":nth-of-type(even)"],
612
- ["even", ":nth-child(even)"],
613
- ["odd-of-type", ":nth-of-type(odd)"],
614
- ["odd", ":nth-child(odd)"],
615
- ["nth", `:nth-child(${PseudoPlaceholder})`],
616
- "first-of-type",
617
- ["first", ":first-child"],
618
- "last-of-type",
619
- ["last", ":last-child"],
620
- "only-child",
621
- "only-of-type",
622
- // pseudo elements part 2
623
- ["backdrop-element", "::backdrop"],
624
- ["placeholder", "::placeholder"],
625
- ["before", "::before"],
626
- ["after", "::after"],
627
- ["file", "::file-selector-button"]
628
- ].map((key) => Array.isArray(key) ? key : [key, `:${key}`]));
629
- const PseudoClassesKeys = Object.keys(PseudoClasses);
630
- const PseudoClassesColon = Object.fromEntries([
631
- ["backdrop", "::backdrop"]
632
- ].map((key) => Array.isArray(key) ? key : [key, `:${key}`]));
633
- const PseudoClassesColonKeys = Object.keys(PseudoClassesColon);
634
- const PseudoClassFunctions = [
635
- "not",
636
- "is",
637
- "where",
638
- "has"
639
- ];
640
- const PseudoClassesMulti = Object.fromEntries([
641
- ["selection", ["::selection", " *::selection"]],
642
- ["marker", ["::marker", " *::marker"]]
643
- ]);
644
- const PseudoClassesStr = Object.entries(PseudoClasses).filter(([, pseudo]) => !pseudo.startsWith("::")).map(([key]) => key).sort((a, b) => b.length - a.length).join("|");
645
- const PseudoClassesColonStr = Object.entries(PseudoClassesColon).filter(([, pseudo]) => !pseudo.startsWith("::")).map(([key]) => key).sort((a, b) => b.length - a.length).join("|");
646
- const PseudoClassFunctionsStr = PseudoClassFunctions.join("|");
647
- const PseudoClassesMultiStr = Object.keys(PseudoClassesMulti).sort((a, b) => b.length - a.length).join("|");
648
- function taggedPseudoClassMatcher(tag, parent, combinator) {
649
- const rawRE = new RegExp(`^(${escapeRegExp(parent)}:)(\\S+)${escapeRegExp(combinator)}\\1`);
650
- let splitRE;
651
- let pseudoRE;
652
- let pseudoColonRE;
653
- let pseudoVarRE;
654
- const matchBracket = (input) => {
655
- const body = variantGetBracket(`${tag}-`, input, []);
656
- if (!body)
657
- return;
658
- const [match, rest] = body;
659
- const bracketValue = h.bracket(match);
660
- if (bracketValue == null)
661
- return;
662
- const label = rest.split(splitRE, 1)?.[0] ?? "";
663
- const prefix = `${parent}${escapeSelector(label)}`;
664
- return [
665
- label,
666
- input.slice(input.length - (rest.length - label.length - 1)),
667
- bracketValue.includes("&") ? bracketValue.replace(/&/g, prefix) : `${prefix}${bracketValue}`
668
- ];
669
- };
670
- const matchPseudo = (input) => {
671
- const match = input.match(pseudoRE) || input.match(pseudoColonRE);
672
- if (!match)
673
- return;
674
- const [original, fn, pseudoKey] = match;
675
- const label = match[3] ?? "";
676
- let pseudo = PseudoClasses[pseudoKey] || PseudoClassesColon[pseudoKey] || `:${pseudoKey}`;
677
- if (fn)
678
- pseudo = `:${fn}(${pseudo})`;
679
- return [
680
- label,
681
- input.slice(original.length),
682
- `${parent}${escapeSelector(label)}${pseudo}`,
683
- pseudoKey
684
- ];
685
- };
686
- const matchPseudoVar = (input) => {
687
- const match = input.match(pseudoVarRE);
688
- if (!match)
689
- return;
690
- const [original, fn, pseudoValue] = match;
691
- const label = match[3] ?? "";
692
- const pseudo = `:${fn}(${pseudoValue})`;
693
- return [
694
- label,
695
- input.slice(original.length),
696
- `${parent}${escapeSelector(label)}${pseudo}`
697
- ];
698
- };
699
- return {
700
- name: `pseudo:${tag}`,
701
- match(input, ctx) {
702
- if (!(splitRE && pseudoRE && pseudoColonRE)) {
703
- splitRE = new RegExp(`(?:${ctx.generator.config.separators.join("|")})`);
704
- pseudoRE = new RegExp(`^${tag}-(?:(?:(${PseudoClassFunctionsStr})-)?(${PseudoClassesStr}))(?:(/[\\w-]+))?(?:${ctx.generator.config.separators.join("|")})`);
705
- pseudoColonRE = new RegExp(`^${tag}-(?:(?:(${PseudoClassFunctionsStr})-)?(${PseudoClassesColonStr}))(?:(/[\\w-]+))?(?:${ctx.generator.config.separators.filter((x) => x !== "-").join("|")})`);
706
- pseudoVarRE = new RegExp(`^${tag}-(?:(${PseudoClassFunctionsStr})-)?\\[(.+)\\](?:(/[\\w-]+))?(?:${ctx.generator.config.separators.filter((x) => x !== "-").join("|")})`);
707
- }
708
- if (!input.startsWith(tag))
709
- return;
710
- const result = matchBracket(input) || matchPseudo(input) || matchPseudoVar(input);
711
- if (!result)
712
- return;
713
- const [_label, matcher, prefix, pseudoName = ""] = result;
714
- return {
715
- matcher,
716
- handle: (input2, next) => next({
717
- ...input2,
718
- prefix: `${prefix}${combinator}${input2.prefix}`.replace(rawRE, "$1$2:"),
719
- sort: PseudoClassesKeys.indexOf(pseudoName) ?? PseudoClassesColonKeys.indexOf(pseudoName)
720
- })
721
- };
722
- },
723
- multiPass: true
724
- };
725
- }
726
- const excludedPseudo = [
727
- "::-webkit-resizer",
728
- "::-webkit-scrollbar",
729
- "::-webkit-scrollbar-button",
730
- "::-webkit-scrollbar-corner",
731
- "::-webkit-scrollbar-thumb",
732
- "::-webkit-scrollbar-track",
733
- "::-webkit-scrollbar-track-piece",
734
- "::file-selector-button"
735
- ];
736
- const PseudoClassesAndElementsStr = Object.entries(PseudoClasses).map(([key]) => key).sort((a, b) => b.length - a.length).join("|");
737
- const PseudoClassesAndElementsColonStr = Object.entries(PseudoClassesColon).map(([key]) => key).sort((a, b) => b.length - a.length).join("|");
738
570
  function variantPseudoClassesAndElements() {
739
- let PseudoClassesAndElementsRE;
740
- let PseudoClassesAndElementsColonRE;
741
- let PseudoClassesMultiRE;
742
- return [
743
- {
744
- name: "pseudo",
745
- match(input, ctx) {
746
- if (!(PseudoClassesAndElementsRE && PseudoClassesAndElementsColonRE)) {
747
- PseudoClassesAndElementsRE = new RegExp(`^(${PseudoClassesAndElementsStr})(?:-(\\[\\w+\\]))?(?:${ctx.generator.config.separators.join("|")})`);
748
- PseudoClassesAndElementsColonRE = new RegExp(`^(${PseudoClassesAndElementsColonStr})(?:${ctx.generator.config.separators.filter((x) => x !== "-").join("|")})`);
749
- }
750
- const match = input.match(PseudoClassesAndElementsRE) || input.match(PseudoClassesAndElementsColonRE);
751
- if (match) {
752
- let pseudo = PseudoClasses[match[1]] || PseudoClassesColon[match[1]] || `:${match[1]}`;
753
- if (match[2]) {
754
- const anPlusB = h.bracket(match[2]);
755
- if (anPlusB) {
756
- pseudo = pseudo.replace(PseudoPlaceholder, anPlusB);
757
- }
758
- }
759
- let index = PseudoClassesKeys.indexOf(match[1]);
760
- if (index === -1)
761
- index = PseudoClassesColonKeys.indexOf(match[1]);
762
- if (index === -1)
763
- index = void 0;
764
- return {
765
- matcher: input.slice(match[0].length),
766
- handle: (input2, next) => {
767
- const selectors = pseudo.includes("::") && !excludedPseudo.includes(pseudo) ? {
768
- pseudo: `${input2.pseudo}${pseudo}`
769
- } : {
770
- selector: `${input2.selector}${pseudo}`
771
- };
772
- return next({
773
- ...input2,
774
- ...selectors,
775
- sort: index,
776
- noMerge: true
777
- });
778
- }
779
- };
780
- }
781
- },
782
- multiPass: true,
783
- autocomplete: `(${PseudoClassesAndElementsStr}|${PseudoClassesAndElementsColonStr}):`
784
- },
785
- {
786
- name: "pseudo:multi",
787
- match(input, ctx) {
788
- if (!PseudoClassesMultiRE) {
789
- PseudoClassesMultiRE = new RegExp(`^(${PseudoClassesMultiStr})(?:${ctx.generator.config.separators.join("|")})`);
790
- }
791
- const match = input.match(PseudoClassesMultiRE);
792
- if (match) {
793
- const pseudos = PseudoClassesMulti[match[1]];
794
- return pseudos.map((pseudo) => {
795
- return {
796
- matcher: input.slice(match[0].length),
797
- handle: (input2, next) => next({
798
- ...input2,
799
- pseudo: `${input2.pseudo}${pseudo}`
800
- })
801
- };
802
- });
803
- }
804
- },
805
- multiPass: false,
806
- autocomplete: `(${PseudoClassesMultiStr}):`
807
- }
808
- ];
571
+ const utils = { getBracket, h, variantGetBracket };
572
+ return createPseudoClassesAndElements(utils);
809
573
  }
810
574
  function variantPseudoClassFunctions() {
811
- let PseudoClassFunctionsRE;
812
- let PseudoClassColonFunctionsRE;
813
- let PseudoClassVarFunctionRE;
814
- return {
815
- match(input, ctx) {
816
- if (!(PseudoClassFunctionsRE && PseudoClassColonFunctionsRE)) {
817
- PseudoClassFunctionsRE = new RegExp(`^(${PseudoClassFunctionsStr})-(${PseudoClassesStr})(?:${ctx.generator.config.separators.join("|")})`);
818
- PseudoClassColonFunctionsRE = new RegExp(`^(${PseudoClassFunctionsStr})-(${PseudoClassesColonStr})(?:${ctx.generator.config.separators.filter((x) => x !== "-").join("|")})`);
819
- PseudoClassVarFunctionRE = new RegExp(`^(${PseudoClassFunctionsStr})-(\\[.+\\])(?:${ctx.generator.config.separators.filter((x) => x !== "-").join("|")})`);
820
- }
821
- const match = input.match(PseudoClassFunctionsRE) || input.match(PseudoClassColonFunctionsRE) || input.match(PseudoClassVarFunctionRE);
822
- if (match) {
823
- const fn = match[1];
824
- const fnVal = getBracket(match[2], "[", "]");
825
- const pseudo = fnVal ? h.bracket(match[2]) : PseudoClasses[match[2]] || PseudoClassesColon[match[2]] || `:${match[2]}`;
826
- return {
827
- matcher: input.slice(match[0].length),
828
- selector: (s) => `${s}:${fn}(${pseudo})`
829
- };
830
- }
831
- },
832
- multiPass: true,
833
- autocomplete: `(${PseudoClassFunctionsStr})-(${PseudoClassesStr}|${PseudoClassesColonStr}):`
834
- };
575
+ const utils = { getBracket, h, variantGetBracket };
576
+ return createPseudoClassFunctions(utils);
835
577
  }
836
578
  function variantTaggedPseudoClasses(options = {}) {
837
- const attributify = !!options?.attributifyPseudo;
838
- let firstPrefix = options?.prefix ?? "";
839
- firstPrefix = (Array.isArray(firstPrefix) ? firstPrefix : [firstPrefix]).filter(Boolean)[0] ?? "";
840
- const tagWithPrefix = (tag, combinator) => taggedPseudoClassMatcher(tag, attributify ? `[${firstPrefix}${tag}=""]` : `.${firstPrefix}${tag}`, combinator);
841
- return [
842
- tagWithPrefix("group", " "),
843
- tagWithPrefix("peer", "~"),
844
- tagWithPrefix("parent", ">"),
845
- tagWithPrefix("previous", "+"),
846
- tagWithPrefix("group-aria", " "),
847
- tagWithPrefix("peer-aria", "~"),
848
- tagWithPrefix("parent-aria", ">"),
849
- tagWithPrefix("previous-aria", "+")
850
- ];
579
+ const utils = { getBracket, h, variantGetBracket };
580
+ return createTaggedPseudoClasses(options, utils);
851
581
  }
852
- const PartClassesRE = /(part-\[(.+)\]:)(.+)/;
853
- const variantPartClasses = {
854
- match(input) {
855
- const match = input.match(PartClassesRE);
856
- if (match) {
857
- const part = `part(${match[2]})`;
858
- return {
859
- matcher: input.slice(match[1].length),
860
- selector: (s) => `${s}::${part}`
861
- };
862
- }
863
- },
864
- multiPass: true
865
- };
582
+ const variantPartClasses = createPartClasses();
866
583
 
867
584
  const variantStartingStyle = {
868
585
  name: "starting",
@@ -1,6 +1,6 @@
1
- import { g as globalKeywords, b as h, E as makeGlobalStaticRules, p as positionMap, q as parseColor, S as SpecialColorKey, l as generateThemeVariable, F as defineProperty, k as themeTracking, m as detectThemeValue, z as colorResolver, G as isCSSMathFn, d as directionMap, B as hasParseableColor, c as cornerMap, y as colorCSSGenerator, H as isSize, o as directionSize, n as numberResolver, A as colorableShadows, i as insetMap, J as hyphenate, r as resolveBreakpoints, C as CONTROL_NO_NEGATIVE, x as xyzMap, L as splitComma, e as xyzArray, M as bracketTypeRe } from './preset-wind4.DyLY6yb-.mjs';
1
+ import { g as globalKeywords, b as h, E as makeGlobalStaticRules, p as positionMap, q as parseColor, S as SpecialColorKey, l as generateThemeVariable, F as defineProperty, k as themeTracking, m as detectThemeValue, z as colorResolver, G as isCSSMathFn, d as directionMap, B as hasParseableColor, c as cornerMap, y as colorCSSGenerator, H as isSize, o as directionSize, n as numberResolver, A as colorableShadows, i as insetMap, J as hyphenate, r as resolveBreakpoints, C as CONTROL_NO_NEGATIVE, x as xyzMap, L as splitComma, e as xyzArray, M as bracketTypeRe } from './preset-wind4.CyHpIC99.mjs';
2
2
  import { notNull } from '@unocss/core';
3
- import { a as container, c as containerParent } from './preset-wind4.DpwQS2PT.mjs';
3
+ import { a as container, c as containerParent } from './preset-wind4.CsstzKnM.mjs';
4
4
  import { getStringComponent } from '@unocss/rule-utils';
5
5
 
6
6
  const verticalAlignAlias = {
@@ -939,13 +939,13 @@ const grids = [
939
939
  ["inline-grid", { display: "inline-grid" }],
940
940
  // global
941
941
  [/^(?:grid-)?(row|col)-(.+)$/, ([, c, v]) => ({
942
- [`grid-${rowCol(c)}`]: h.bracket.cssvar.auto(v)
942
+ [`grid-${rowCol(c)}`]: h.bracket.number.cssvar.auto(v)
943
943
  })],
944
944
  // span
945
945
  [/^(?:grid-)?(row|col)-span-(.+)$/, ([, c, s]) => {
946
946
  if (s === "full")
947
947
  return { [`grid-${rowCol(c)}`]: "1/-1" };
948
- const v = h.bracket.number(s);
948
+ const v = h.bracket.number.cssvar(s);
949
949
  if (v != null)
950
950
  return { [`grid-${rowCol(c)}`]: `span ${v}/span ${v}` };
951
951
  }, { autocomplete: "(grid-row|grid-col|row|col)-span-<num>" }],
@@ -1036,12 +1036,17 @@ const justifies = [
1036
1036
  ["justify-stretch", { "justify-content": "stretch" }],
1037
1037
  ["justify-left", { "justify-content": "left" }],
1038
1038
  ["justify-right", { "justify-content": "right" }],
1039
+ ["justify-center-safe", { "justify-content": "safe center" }],
1040
+ ["justify-end-safe", { "justify-content": "safe flex-end" }],
1041
+ ["justify-normal", { "justify-content": "normal" }],
1039
1042
  ...makeGlobalStaticRules("justify", "justify-content"),
1040
1043
  // items
1041
1044
  ["justify-items-start", { "justify-items": "start" }],
1042
1045
  ["justify-items-end", { "justify-items": "end" }],
1043
1046
  ["justify-items-center", { "justify-items": "center" }],
1044
1047
  ["justify-items-stretch", { "justify-items": "stretch" }],
1048
+ ["justify-items-center-safe", { "justify-items": "safe center" }],
1049
+ ["justify-items-end-safe", { "justify-items": "safe flex-end" }],
1045
1050
  ...makeGlobalStaticRules("justify-items"),
1046
1051
  // selfs
1047
1052
  ["justify-self-auto", { "justify-self": "auto" }],
@@ -1049,6 +1054,9 @@ const justifies = [
1049
1054
  ["justify-self-end", { "justify-self": "end" }],
1050
1055
  ["justify-self-center", { "justify-self": "center" }],
1051
1056
  ["justify-self-stretch", { "justify-self": "stretch" }],
1057
+ ["justify-self-baseline", { "justify-self": "baseline" }],
1058
+ ["justify-self-center-safe", { "justify-self": "safe center" }],
1059
+ ["justify-self-end-safe", { "justify-self": "safe flex-end" }],
1052
1060
  ...makeGlobalStaticRules("justify-self")
1053
1061
  ];
1054
1062
  const orders = [
@@ -1065,6 +1073,11 @@ const alignments = [
1065
1073
  ["content-between", { "align-content": "space-between" }],
1066
1074
  ["content-around", { "align-content": "space-around" }],
1067
1075
  ["content-evenly", { "align-content": "space-evenly" }],
1076
+ ["content-baseline", { "align-content": "baseline" }],
1077
+ ["content-center-safe", { "align-content": "safe center" }],
1078
+ ["content-end-safe", { "align-content": "safe flex-end" }],
1079
+ ["content-stretch", { "align-content": "stretch" }],
1080
+ ["content-normal", { "align-content": "normal" }],
1068
1081
  ...makeGlobalStaticRules("content", "align-content"),
1069
1082
  // items
1070
1083
  ["items-start", { "align-items": "flex-start" }],
@@ -1072,6 +1085,9 @@ const alignments = [
1072
1085
  ["items-center", { "align-items": "center" }],
1073
1086
  ["items-baseline", { "align-items": "baseline" }],
1074
1087
  ["items-stretch", { "align-items": "stretch" }],
1088
+ ["items-baseline-last", { "align-items": "last baseline" }],
1089
+ ["items-center-safe", { "align-items": "safe center" }],
1090
+ ["items-end-safe", { "align-items": "safe flex-end" }],
1075
1091
  ...makeGlobalStaticRules("items", "align-items"),
1076
1092
  // selfs
1077
1093
  ["self-auto", { "align-self": "auto" }],
@@ -1080,6 +1096,9 @@ const alignments = [
1080
1096
  ["self-center", { "align-self": "center" }],
1081
1097
  ["self-stretch", { "align-self": "stretch" }],
1082
1098
  ["self-baseline", { "align-self": "baseline" }],
1099
+ ["self-baseline-last", { "align-self": "last baseline" }],
1100
+ ["self-center-safe", { "align-self": "safe center" }],
1101
+ ["self-end-safe", { "align-self": "safe flex-end" }],
1083
1102
  ...makeGlobalStaticRules("self", "align-self")
1084
1103
  ];
1085
1104
  const placements = [
@@ -1091,12 +1110,18 @@ const placements = [
1091
1110
  ["place-content-around", { "place-content": "space-around" }],
1092
1111
  ["place-content-evenly", { "place-content": "space-evenly" }],
1093
1112
  ["place-content-stretch", { "place-content": "stretch" }],
1113
+ ["place-content-baseline", { "place-content": "baseline" }],
1114
+ ["place-content-center-safe", { "place-content": "safe center" }],
1115
+ ["place-content-end-safe", { "place-content": "safe flex-end" }],
1094
1116
  ...makeGlobalStaticRules("place-content"),
1095
1117
  // items
1096
1118
  ["place-items-start", { "place-items": "start" }],
1097
1119
  ["place-items-end", { "place-items": "end" }],
1098
1120
  ["place-items-center", { "place-items": "center" }],
1099
1121
  ["place-items-stretch", { "place-items": "stretch" }],
1122
+ ["place-items-baseline", { "place-items": "baseline" }],
1123
+ ["place-items-center-safe", { "place-items": "safe center" }],
1124
+ ["place-items-end-safe", { "place-items": "safe flex-end" }],
1100
1125
  ...makeGlobalStaticRules("place-items"),
1101
1126
  // selfs
1102
1127
  ["place-self-auto", { "place-self": "auto" }],
@@ -1104,6 +1129,8 @@ const placements = [
1104
1129
  ["place-self-end", { "place-self": "end" }],
1105
1130
  ["place-self-center", { "place-self": "center" }],
1106
1131
  ["place-self-stretch", { "place-self": "stretch" }],
1132
+ ["place-self-center-safe", { "place-self": "safe center" }],
1133
+ ["place-self-end-safe", { "place-self": "safe flex-end" }],
1107
1134
  ...makeGlobalStaticRules("place-self")
1108
1135
  ];
1109
1136
  const flexGridJustifiesAlignments = [...justifies, ...alignments, ...placements].flatMap(([k, v]) => [
@@ -1210,17 +1237,17 @@ function handleShadow(themeKey) {
1210
1237
  const { theme } = ctx;
1211
1238
  const v = theme[themeKey]?.[d || "DEFAULT"];
1212
1239
  const c = d ? h.bracket.cssvar(d) : void 0;
1213
- const colorVar = hyphenate(themeKey);
1240
+ const shadowVar = hyphenate(themeKey);
1214
1241
  if ((v != null || c != null) && !hasParseableColor(c, theme)) {
1215
1242
  return [
1216
1243
  {
1217
- "--un-shadow": colorableShadows(v || c, `--un-${colorVar}-color`).join(","),
1244
+ [`--un-${shadowVar}`]: colorableShadows(v || c, `--un-${shadowVar}-color`).join(","),
1218
1245
  "box-shadow": "var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)"
1219
1246
  },
1220
1247
  ...Object.values(shadowProperties)
1221
1248
  ];
1222
1249
  }
1223
- return colorResolver(`--un-${colorVar}-color`, colorVar)(match, ctx);
1250
+ return colorResolver(`--un-${shadowVar}-color`, shadowVar)(match, ctx);
1224
1251
  };
1225
1252
  }
1226
1253
 
@@ -1256,8 +1283,8 @@ const rings = [
1256
1283
  [/^inset-ring-(.+)$/, colorResolver(`--un-inset-ring-color`, "inset-ring"), { autocomplete: "inset-ring-$colors" }],
1257
1284
  [/^inset-ring-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-inset-ring-opacity": h.bracket.percent.cssvar(opacity) }), { autocomplete: "inset-ring-(op|opacity)-<percent>" }],
1258
1285
  // offset
1259
- [/^ring-offset(?:-(.+))?$/, ([, d]) => {
1260
- const v = h.bracket.px(d || "1");
1286
+ [/^ring-offset(?:-(?:width-|size-)?(.+))?$/, ([, d]) => {
1287
+ const v = h.bracket.cssvar.px(d || "1");
1261
1288
  if (v != null) {
1262
1289
  return {
1263
1290
  "--un-ring-offset-width": v,
@@ -1267,7 +1294,6 @@ const rings = [
1267
1294
  }, { autocomplete: "ring-offset-$colors" }],
1268
1295
  [/^ring-offset-(.+)$/, colorResolver(`--un-ring-offset-color`, "ring-offset"), { autocomplete: "ring-offset-$colors" }],
1269
1296
  [/^ring-offset-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-ring-offset-opacity": h.bracket.percent.cssvar(opacity) }), { autocomplete: "ring-offset-(op|opacity)-<percent>" }],
1270
- [/^ring-offset-(?:width-|size-)?(.+)$/, ([, d]) => ({ "--un-ring-offset-width": h.bracket.cssvar.px(d) })],
1271
1297
  // style
1272
1298
  ["ring-inset", { "--un-ring-inset": "inset" }]
1273
1299
  ];
@@ -1419,6 +1445,7 @@ const displays = [
1419
1445
  const appearances = [
1420
1446
  ["visible", { visibility: "visible" }],
1421
1447
  ["invisible", { visibility: "hidden" }],
1448
+ ["collapse", { visibility: "collapse" }],
1422
1449
  ["backface-visible", { "backface-visibility": "visible" }],
1423
1450
  ["backface-hidden", { "backface-visibility": "hidden" }],
1424
1451
  ...makeGlobalStaticRules("backface", "backface-visibility")
@@ -1983,8 +2010,8 @@ const transitions = [
1983
2010
  themeTracking("default", ["transition", "duration"]);
1984
2011
  const defaultTransition = {
1985
2012
  "transition-property": theme.property?.DEFAULT,
1986
- "transition-timing-function": `var(--un-ease, ${generateThemeVariable("defaults", ["transition", "timingFunction"])})`,
1987
- "transition-duration": `var(--un-duration, ${generateThemeVariable("defaults", ["transition", "duration"])})`
2013
+ "transition-timing-function": `var(--un-ease, ${generateThemeVariable("default", ["transition", "timingFunction"])})`,
2014
+ "transition-duration": `var(--un-duration, ${generateThemeVariable("default", ["transition", "duration"])})`
1988
2015
  };
1989
2016
  if (!prop && !d) {
1990
2017
  return {
@@ -2403,7 +2430,7 @@ const cssProperty = [
2403
2430
  return;
2404
2431
  const [prop, ...rest] = body.split(":");
2405
2432
  const value = rest.join(":");
2406
- if (!isURI(body) && /^[a-z-_]+$/i.test(prop) && isValidCSSBody(value)) {
2433
+ if (!isURI(body) && /^[\w-]+$/.test(prop) && isValidCSSBody(value)) {
2407
2434
  const parsed = h.bracket(`[${value}]`);
2408
2435
  if (parsed)
2409
2436
  return { [prop]: parsed };
@@ -456,10 +456,10 @@ declare const theme: {
456
456
  inner: string;
457
457
  };
458
458
  insetShadow: {
459
- DEFAULT: string;
460
459
  '2xs': string;
461
460
  xs: string;
462
461
  sm: string;
462
+ none: string;
463
463
  };
464
464
  dropShadow: {
465
465
  DEFAULT: string[];
@@ -471,12 +471,12 @@ declare const theme: {
471
471
  '2xl': string;
472
472
  };
473
473
  textShadow: {
474
- DEFAULT: string[];
475
474
  none: string;
476
- sm: string;
475
+ '2xs': string;
476
+ xs: string;
477
+ sm: string[];
477
478
  md: string[];
478
479
  lg: string[];
479
- xl: string[];
480
480
  };
481
481
  ease: {
482
482
  linear: string;
@@ -456,10 +456,10 @@ declare const theme: {
456
456
  inner: string;
457
457
  };
458
458
  insetShadow: {
459
- DEFAULT: string;
460
459
  '2xs': string;
461
460
  xs: string;
462
461
  sm: string;
462
+ none: string;
463
463
  };
464
464
  dropShadow: {
465
465
  DEFAULT: string[];
@@ -471,12 +471,12 @@ declare const theme: {
471
471
  '2xl': string;
472
472
  };
473
473
  textShadow: {
474
- DEFAULT: string[];
475
474
  none: string;
476
- sm: string;
475
+ '2xs': string;
476
+ xs: string;
477
+ sm: string[];
477
478
  md: string[];
478
479
  lg: string[];
479
- xl: string[];
480
480
  };
481
481
  ease: {
482
482
  linear: string;
@@ -1,5 +1,5 @@
1
- export { s as shortcuts } from './shared/preset-wind4.DBfj437j.mjs';
2
- import './shared/preset-wind4.DpwQS2PT.mjs';
1
+ export { s as shortcuts } from './shared/preset-wind4.BA7wPzCb.mjs';
2
+ import './shared/preset-wind4.CsstzKnM.mjs';
3
3
  import '@unocss/core';
4
- import './shared/preset-wind4.DyLY6yb-.mjs';
4
+ import './shared/preset-wind4.CyHpIC99.mjs';
5
5
  import '@unocss/rule-utils';
package/dist/theme.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { colors } from './colors.mjs';
2
- export { t as theme } from './shared/preset-wind4.Hki3f6hz.mjs';
2
+ export { t as theme } from './shared/preset-wind4.VVeg6taI.mjs';
3
3
  import { T as Theme } from './shared/preset-wind4.CeNzqhCV.mjs';
4
4
  export { C as Colors, a as ThemeAnimation } from './shared/preset-wind4.CeNzqhCV.mjs';
5
5
 
@@ -482,10 +482,10 @@ declare const shadow: {
482
482
  inner: string;
483
483
  };
484
484
  declare const insetShadow: {
485
- DEFAULT: string;
486
485
  '2xs': string;
487
486
  xs: string;
488
487
  sm: string;
488
+ none: string;
489
489
  };
490
490
  declare const dropShadow: {
491
491
  DEFAULT: string[];
@@ -497,12 +497,12 @@ declare const dropShadow: {
497
497
  '2xl': string;
498
498
  };
499
499
  declare const textShadow: {
500
- DEFAULT: string[];
501
500
  none: string;
502
- sm: string;
501
+ '2xs': string;
502
+ xs: string;
503
+ sm: string[];
503
504
  md: string[];
504
505
  lg: string[];
505
- xl: string[];
506
506
  };
507
507
  declare const perspective: {
508
508
  dramatic: string;
package/dist/theme.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { colors } from './colors.js';
2
- export { t as theme } from './shared/preset-wind4.Hki3f6hz.js';
2
+ export { t as theme } from './shared/preset-wind4.VVeg6taI.js';
3
3
  import { T as Theme } from './shared/preset-wind4.CeNzqhCV.js';
4
4
  export { C as Colors, a as ThemeAnimation } from './shared/preset-wind4.CeNzqhCV.js';
5
5
 
@@ -482,10 +482,10 @@ declare const shadow: {
482
482
  inner: string;
483
483
  };
484
484
  declare const insetShadow: {
485
- DEFAULT: string;
486
485
  '2xs': string;
487
486
  xs: string;
488
487
  sm: string;
488
+ none: string;
489
489
  };
490
490
  declare const dropShadow: {
491
491
  DEFAULT: string[];
@@ -497,12 +497,12 @@ declare const dropShadow: {
497
497
  '2xl': string;
498
498
  };
499
499
  declare const textShadow: {
500
- DEFAULT: string[];
501
500
  none: string;
502
- sm: string;
501
+ '2xs': string;
502
+ xs: string;
503
+ sm: string[];
503
504
  md: string[];
504
505
  lg: string[];
505
- xl: string[];
506
506
  };
507
507
  declare const perspective: {
508
508
  dramatic: string;
package/dist/theme.mjs CHANGED
@@ -428,15 +428,17 @@ const shadow = {
428
428
  "xl": [`0 20px 25px -5px rgb(0 0 0 / 0.1)`, `0 8px 10px -6px rgb(0 0 0 / 0.1)`],
429
429
  "2xl": `0 25px 50px -12px rgb(0 0 0 / 0.25)`,
430
430
  "none": "0 0 rgb(0 0 0 / 0)",
431
+ /* @deprecated see: https://github.com/tailwindlabs/tailwindcss/blob/bea843c90ab77b47622200daafb918f7044d9f88/packages/tailwindcss/theme.css#L458 */
431
432
  "inner": "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"
432
433
  };
433
434
  const insetShadow = {
434
- "DEFAULT": "inset 0 1px 1px rgb(0 0 0 / 0.05)",
435
435
  "2xs": "inset 0 1px rgb(0 0 0 / 0.05)",
436
436
  "xs": "inset 0 1px 1px rgb(0 0 0 / 0.05)",
437
- "sm": "inset 0 2px 4px rgb(0 0 0 / 0.05)"
437
+ "sm": "inset 0 2px 4px rgb(0 0 0 / 0.05)",
438
+ "none": "0 0 rgb(0 0 0 / 0)"
438
439
  };
439
440
  const dropShadow = {
441
+ /* @deprecated see: https://github.com/tailwindlabs/tailwindcss/blob/bea843c90ab77b47622200daafb918f7044d9f88/packages/tailwindcss/theme.css#L459 */
440
442
  "DEFAULT": ["0 1px 2px rgb(0 0 0 / 0.1)", "0 1px 1px rgb(0 0 0 / 0.06)"],
441
443
  "xs": "0 1px 1px rgb(0 0 0 / 0.05)",
442
444
  "sm": "0 1px 2px rgb(0 0 0 / 0.15)",
@@ -446,12 +448,12 @@ const dropShadow = {
446
448
  "2xl": "0 25px 25px rgb(0 0 0 / 0.15)"
447
449
  };
448
450
  const textShadow = {
449
- DEFAULT: ["0 0 1px rgb(0 0 0 / 0.2)", "0 0 1px rgb(1 0 5 / 0.1)"],
450
- none: "0 0 rgb(0 0 0 / 0)",
451
- sm: "1px 1px 3px rgb(36 37 47 / 0.25)",
452
- md: ["0 1px 2px rgb(30 29 39 / 0.19)", "1px 2px 4px rgb(54 64 147 / 0.18)"],
453
- lg: ["3px 3px 6px rgb(0 0 0 / 0.26)", "0 0 5px rgb(15 3 86 / 0.22)"],
454
- xl: ["1px 1px 3px rgb(0 0 0 / 0.29)", "2px 4px 7px rgb(73 64 125 / 0.35)"]
451
+ "none": "0 0 rgb(0 0 0 / 0)",
452
+ "2xs": "0 1px 0 rgb(0 0 0 / 0.15)",
453
+ "xs": "0 1px 1px rgb(0 0 0 / 0.2)",
454
+ "sm": ["0 1px 0 rgb(0 0 0 / 0.075)", "0 1px 1px rgb(0 0 0 / 0.075)", "0 2px 2px rgb(0 0 0 / 0.075)"],
455
+ "md": ["0 1px 1px rgb(0 0 0 / 0.1)", "0 1px 2px rgb(0 0 0 / 0.1)", "0 2px 4px rgb(0 0 0 / 0.1)"],
456
+ "lg": ["0 1px 2px rgb(0 0 0 / 0.1)", "0 3px 2px rgb(0 0 0 / 0.1)", "0 4px 8px rgb(0 0 0 / 0.1)"]
455
457
  };
456
458
  const perspective = {
457
459
  dramatic: "100px",
package/dist/utils.d.mts CHANGED
@@ -104,13 +104,15 @@ declare function splitShorthand(body: string, type: string): string[] | undefine
104
104
  * 'red-100' // From theme, plus scale
105
105
  * 'red-100/20' // From theme, plus scale/opacity
106
106
  * '[rgb(100 2 3)]/[var(--op)]' // Bracket with rgb color and bracket with opacity
107
+ * '[rgb(100 2 3)]/[var(--op)]/[in_oklab]' // Bracket with rgb color, bracket with opacity and bracket with interpolation method
107
108
  *
108
109
  * @param body - Color string to be parsed.
109
110
  * @param theme - {@link Theme} object.
110
111
  * @return object if string is parseable.
111
112
  */
112
113
  declare function parseColor(body: string, theme: Theme): {
113
- opacity: string;
114
+ opacity: string | undefined;
115
+ modifier: string | undefined;
114
116
  name: string;
115
117
  no: string | undefined;
116
118
  color: string;
package/dist/utils.d.ts CHANGED
@@ -104,13 +104,15 @@ declare function splitShorthand(body: string, type: string): string[] | undefine
104
104
  * 'red-100' // From theme, plus scale
105
105
  * 'red-100/20' // From theme, plus scale/opacity
106
106
  * '[rgb(100 2 3)]/[var(--op)]' // Bracket with rgb color and bracket with opacity
107
+ * '[rgb(100 2 3)]/[var(--op)]/[in_oklab]' // Bracket with rgb color, bracket with opacity and bracket with interpolation method
107
108
  *
108
109
  * @param body - Color string to be parsed.
109
110
  * @param theme - {@link Theme} object.
110
111
  * @return object if string is parseable.
111
112
  */
112
113
  declare function parseColor(body: string, theme: Theme): {
113
- opacity: string;
114
+ opacity: string | undefined;
115
+ modifier: string | undefined;
114
116
  name: string;
115
117
  no: string | undefined;
116
118
  color: string;
package/dist/utils.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { a as remRE } from './shared/preset-wind4.DyLY6yb-.mjs';
2
- export { C as CONTROL_NO_NEGATIVE, P as PRESET_NAME, S as SpecialColorKey, I as camelize, y as colorCSSGenerator, z as colorResolver, A as colorableShadows, K as compressCSS, c as cornerMap, f as cssMathFnRE, j as cssVarFnRE, F as defineProperty, m as detectThemeValue, d as directionMap, o as directionSize, l as generateThemeVariable, w as getThemeByKey, g as globalKeywords, b as h, h as handler, B as hasParseableColor, J as hyphenate, i as insetMap, G as isCSSMathFn, H as isSize, E as makeGlobalStaticRules, n as numberResolver, q as parseColor, u as parseThemeColor, p as positionMap, r as resolveBreakpoints, D as resolveVerticalBreakpoints, s as splitShorthand, k as themeTracking, t as trackedTheme, v as valueHandlers, e as xyzArray, x as xyzMap } from './shared/preset-wind4.DyLY6yb-.mjs';
1
+ import { a as remRE } from './shared/preset-wind4.CyHpIC99.mjs';
2
+ export { C as CONTROL_NO_NEGATIVE, P as PRESET_NAME, S as SpecialColorKey, I as camelize, y as colorCSSGenerator, z as colorResolver, A as colorableShadows, K as compressCSS, c as cornerMap, f as cssMathFnRE, j as cssVarFnRE, F as defineProperty, m as detectThemeValue, d as directionMap, o as directionSize, l as generateThemeVariable, w as getThemeByKey, g as globalKeywords, b as h, h as handler, B as hasParseableColor, J as hyphenate, i as insetMap, G as isCSSMathFn, H as isSize, E as makeGlobalStaticRules, n as numberResolver, q as parseColor, u as parseThemeColor, p as positionMap, r as resolveBreakpoints, D as resolveVerticalBreakpoints, s as splitShorthand, k as themeTracking, t as trackedTheme, v as valueHandlers, e as xyzArray, x as xyzMap } from './shared/preset-wind4.CyHpIC99.mjs';
3
3
  export * from '@unocss/rule-utils';
4
4
  import '@unocss/core';
5
5
 
@@ -4,7 +4,7 @@ import { PresetWind4Options } from './index.mjs';
4
4
  export { variants } from './index.mjs';
5
5
  import './shared/preset-wind4.O8irdiHr.mjs';
6
6
  import './shortcuts.mjs';
7
- import './shared/preset-wind4.Hki3f6hz.mjs';
7
+ import './shared/preset-wind4.VVeg6taI.mjs';
8
8
 
9
9
  declare const variantAria: VariantObject<Theme>;
10
10
  declare const variantTaggedAriaAttributes: Variant<Theme>[];
@@ -4,7 +4,7 @@ import { PresetWind4Options } from './index.js';
4
4
  export { variants } from './index.js';
5
5
  import './shared/preset-wind4.oLaz9HAb.js';
6
6
  import './shortcuts.js';
7
- import './shared/preset-wind4.Hki3f6hz.js';
7
+ import './shared/preset-wind4.VVeg6taI.js';
8
8
 
9
9
  declare const variantAria: VariantObject<Theme>;
10
10
  declare const variantTaggedAriaAttributes: Variant<Theme>[];
package/dist/variants.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { E as placeholderModifier, v as variantAria, b as variantBreakpoints, c as variantChildren, g as variantColorsMediaOrClass, h as variantColorsScheme, d as variantCombinators, f as variantContainerQuery, r as variantContrasts, x as variantCssLayer, q as variantCustomMedia, i as variantDataAttribute, u as variantForcedColors, m as variantImportant, y as variantInternalLayer, l as variantLanguageDirections, s as variantMotions, D as variantNegative, n as variantNoscript, t as variantOrientations, I as variantPartClasses, p as variantPrint, G as variantPseudoClassFunctions, F as variantPseudoClassesAndElements, z as variantScope, o as variantScripting, w as variantSelector, J as variantStartingStyle, C as variantStickyHover, K as variantSupports, e as variantSvgCombinators, a as variantTaggedAriaAttributes, j as variantTaggedDataAttributes, H as variantTaggedPseudoClasses, B as variantTheme, A as variantVariables, k as variants } from './shared/preset-wind4.wYrEcFuT.mjs';
1
+ export { E as placeholderModifier, v as variantAria, b as variantBreakpoints, c as variantChildren, g as variantColorsMediaOrClass, h as variantColorsScheme, d as variantCombinators, f as variantContainerQuery, r as variantContrasts, x as variantCssLayer, q as variantCustomMedia, i as variantDataAttribute, u as variantForcedColors, m as variantImportant, y as variantInternalLayer, l as variantLanguageDirections, s as variantMotions, D as variantNegative, n as variantNoscript, t as variantOrientations, I as variantPartClasses, p as variantPrint, G as variantPseudoClassFunctions, F as variantPseudoClassesAndElements, z as variantScope, o as variantScripting, w as variantSelector, J as variantStartingStyle, C as variantStickyHover, K as variantSupports, e as variantSvgCombinators, a as variantTaggedAriaAttributes, j as variantTaggedDataAttributes, H as variantTaggedPseudoClasses, B as variantTheme, A as variantVariables, k as variants } from './shared/preset-wind4.DhxVnGgJ.mjs';
2
2
  import '@unocss/rule-utils';
3
- import './shared/preset-wind4.DyLY6yb-.mjs';
3
+ import './shared/preset-wind4.CyHpIC99.mjs';
4
4
  import '@unocss/core';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@unocss/preset-wind4",
3
3
  "type": "module",
4
- "version": "66.1.4",
4
+ "version": "66.2.1",
5
5
  "description": "Tailwind 4 compact preset for UnoCSS",
6
6
  "authors": [
7
7
  {
@@ -74,9 +74,9 @@
74
74
  "dist"
75
75
  ],
76
76
  "dependencies": {
77
- "@unocss/core": "66.1.4",
78
- "@unocss/extractor-arbitrary-variants": "66.1.4",
79
- "@unocss/rule-utils": "66.1.4"
77
+ "@unocss/core": "66.2.1",
78
+ "@unocss/extractor-arbitrary-variants": "66.2.1",
79
+ "@unocss/rule-utils": "66.2.1"
80
80
  },
81
81
  "scripts": {
82
82
  "build": "unbuild",