@walkeros/explorer 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  loadPackageTypes,
6
6
  loadTypeLibraryFromURL,
7
7
  registerWalkerOSTypes
8
- } from "./chunk-BEAIHYJ5.mjs";
8
+ } from "./chunk-WKBCYMTQ.mjs";
9
9
 
10
10
  // src/components/demos/MappingDemo.tsx
11
11
  import { useState as useState5, useCallback as useCallback4, useEffect as useEffect4 } from "react";
@@ -867,7 +867,7 @@ function Code({
867
867
  registerFormatters(monaco);
868
868
  if (packages && packages.length > 0) {
869
869
  registerWalkerOSTypes(monaco);
870
- const { loadPackageTypes: loadPackageTypes2 } = await import("./monaco-types-GBPMPIMU.mjs");
870
+ const { loadPackageTypes: loadPackageTypes2 } = await import("./monaco-types-GHUJ2SZE.mjs");
871
871
  for (const pkg of packages) {
872
872
  if (pkg !== "@walkeros/core") {
873
873
  await loadPackageTypes2(monaco, { package: pkg }).catch((err) => {
@@ -1471,7 +1471,8 @@ function DestinationDemo({
1471
1471
  config,
1472
1472
  data: processed.data,
1473
1473
  mapping: processed.mapping,
1474
- env: destination.env || {}
1474
+ env: destination.env || {},
1475
+ logger: collector.logger
1475
1476
  };
1476
1477
  if (fn) {
1477
1478
  const result2 = await fn(processed.event, context);
@@ -1552,7 +1553,8 @@ function DestinationInitDemo({
1552
1553
  const context = {
1553
1554
  collector,
1554
1555
  config,
1555
- env: destination.env || {}
1556
+ env: destination.env || {},
1557
+ logger: collector.logger
1556
1558
  };
1557
1559
  if (!destination.init) {
1558
1560
  setOutput("No init method defined for this destination");
@@ -1600,6 +1602,7 @@ import { useState as useState12, useCallback as useCallback9 } from "react";
1600
1602
 
1601
1603
  // src/components/molecules/preview.tsx
1602
1604
  import { useState as useState9, useEffect as useEffect8, useRef as useRef5, useCallback as useCallback8 } from "react";
1605
+ import { createLogger } from "@walkeros/core";
1603
1606
  import { sourceBrowser } from "@walkeros/web-source-browser";
1604
1607
 
1605
1608
  // src/components/atoms/preview-footer.tsx
@@ -1629,7 +1632,12 @@ function PreviewFooter({
1629
1632
 
1630
1633
  // src/components/molecules/preview.tsx
1631
1634
  import { jsx as jsx11 } from "react/jsx-runtime";
1632
- function Preview({ html, css = "", onEvent, label = "Preview" }) {
1635
+ function Preview({
1636
+ html,
1637
+ css = "",
1638
+ onEvent,
1639
+ label = "Preview"
1640
+ }) {
1633
1641
  const [highlights, setHighlights] = useState9(/* @__PURE__ */ new Set());
1634
1642
  const iframeRef = useRef5(null);
1635
1643
  const updateTimeoutRef = useRef5(void 0);
@@ -1782,7 +1790,8 @@ function Preview({ html, css = "", onEvent, label = "Preview" }) {
1782
1790
  failed: []
1783
1791
  })),
1784
1792
  window: iframe.contentWindow,
1785
- document: iframe.contentDocument
1793
+ document: iframe.contentDocument,
1794
+ logger: createLogger()
1786
1795
  }
1787
1796
  );
1788
1797
  sourceInstanceRef.current = sourceInstance;
@@ -10780,23 +10789,51 @@ function Footer({ children, className = "" }) {
10780
10789
  return /* @__PURE__ */ jsx90("div", { className: `elb-explorer-footer ${className}`, children });
10781
10790
  }
10782
10791
 
10792
+ // src/components/atoms/button-link.tsx
10793
+ import { jsx as jsx91 } from "react/jsx-runtime";
10794
+ function ButtonLink({
10795
+ variant = "default",
10796
+ size = "md",
10797
+ href,
10798
+ onClick,
10799
+ children,
10800
+ className = "",
10801
+ disabled = false
10802
+ }) {
10803
+ const baseClass = "elb-button-link";
10804
+ const classes = `${baseClass} ${baseClass}-${variant} ${baseClass}-${size} ${className}`.trim();
10805
+ if (href && !disabled) {
10806
+ return /* @__PURE__ */ jsx91("a", { href, className: classes, children });
10807
+ }
10808
+ return /* @__PURE__ */ jsx91(
10809
+ "button",
10810
+ {
10811
+ type: "button",
10812
+ className: classes,
10813
+ onClick,
10814
+ disabled,
10815
+ children
10816
+ }
10817
+ );
10818
+ }
10819
+
10783
10820
  // src/components/atoms/panel-hints.tsx
10784
- import { jsx as jsx91, jsxs as jsxs67 } from "react/jsx-runtime";
10821
+ import { jsx as jsx92, jsxs as jsxs67 } from "react/jsx-runtime";
10785
10822
  function PanelHints({
10786
10823
  title = "Common patterns",
10787
10824
  hints,
10788
10825
  className = ""
10789
10826
  }) {
10790
10827
  return /* @__PURE__ */ jsxs67("div", { className: `elb-panel-hints ${className}`, children: [
10791
- title && /* @__PURE__ */ jsx91("div", { className: "elb-panel-hints-title", children: title }),
10792
- /* @__PURE__ */ jsx91("ul", { className: "elb-panel-hints-list", children: hints.map((hint, index) => /* @__PURE__ */ jsxs67("li", { className: "elb-panel-hints-item", children: [
10793
- /* @__PURE__ */ jsx91("code", { className: "elb-panel-hints-code", children: hint.code }),
10794
- /* @__PURE__ */ jsx91("span", { className: "elb-panel-hints-desc", children: hint.description })
10828
+ title && /* @__PURE__ */ jsx92("div", { className: "elb-panel-hints-title", children: title }),
10829
+ /* @__PURE__ */ jsx92("ul", { className: "elb-panel-hints-list", children: hints.map((hint, index) => /* @__PURE__ */ jsxs67("li", { className: "elb-panel-hints-item", children: [
10830
+ /* @__PURE__ */ jsx92("code", { className: "elb-panel-hints-code", children: hint.code }),
10831
+ /* @__PURE__ */ jsx92("span", { className: "elb-panel-hints-desc", children: hint.description })
10795
10832
  ] }, index)) })
10796
10833
  ] });
10797
10834
  }
10798
10835
 
10799
- // ../node_modules/@mdx-js/react/lib/index.js
10836
+ // node_modules/@mdx-js/react/lib/index.js
10800
10837
  import React23 from "react";
10801
10838
  var emptyComponents = {};
10802
10839
  var MDXContext = React23.createContext(emptyComponents);
@@ -10828,7 +10865,7 @@ function MDXProvider(properties) {
10828
10865
 
10829
10866
  // src/components/atoms/mdx-code.tsx
10830
10867
  import { Children } from "react";
10831
- import { jsx as jsx92 } from "react/jsx-runtime";
10868
+ import { jsx as jsx93 } from "react/jsx-runtime";
10832
10869
  var MDXCode = ({
10833
10870
  className,
10834
10871
  children
@@ -10842,7 +10879,7 @@ var MDXCode = ({
10842
10879
  return false;
10843
10880
  });
10844
10881
  if (!hasClassName || !hasNewlines) {
10845
- return /* @__PURE__ */ jsx92("code", { className: "elb-code-inline", children });
10882
+ return /* @__PURE__ */ jsx93("code", { className: "elb-code-inline", children });
10846
10883
  }
10847
10884
  const mdxLanguage = className.replace(/^language-/, "");
10848
10885
  const languageMap = {
@@ -10857,7 +10894,7 @@ var MDXCode = ({
10857
10894
  };
10858
10895
  const monacoLanguage = languageMap[mdxLanguage] || mdxLanguage;
10859
10896
  const code = childrenArray.map((child) => typeof child === "string" ? child : "").join("").trim();
10860
- return /* @__PURE__ */ jsx92(
10897
+ return /* @__PURE__ */ jsx93(
10861
10898
  CodeBox,
10862
10899
  {
10863
10900
  code,
@@ -10871,7 +10908,7 @@ var MDXCode = ({
10871
10908
  };
10872
10909
 
10873
10910
  // src/providers/MDXProvider.tsx
10874
- import { jsx as jsx93 } from "react/jsx-runtime";
10911
+ import { jsx as jsx94 } from "react/jsx-runtime";
10875
10912
  var MDXProvider2 = ({ children }) => {
10876
10913
  const components = {
10877
10914
  // Markdown element mappings
@@ -10883,10 +10920,10 @@ var MDXProvider2 = ({ children }) => {
10883
10920
  DestinationInitDemo,
10884
10921
  DestinationDemo
10885
10922
  };
10886
- return /* @__PURE__ */ jsx93(MDXProvider, { components, children });
10923
+ return /* @__PURE__ */ jsx94(MDXProvider, { components, children });
10887
10924
  };
10888
10925
 
10889
- // ../node_modules/clsx/dist/clsx.mjs
10926
+ // node_modules/clsx/dist/clsx.mjs
10890
10927
  function r(e) {
10891
10928
  var t, f, n = "";
10892
10929
  if ("string" == typeof e || "number" == typeof e) n += e;
@@ -10901,8 +10938,29 @@ function clsx() {
10901
10938
  return n;
10902
10939
  }
10903
10940
 
10904
- // ../node_modules/tailwind-merge/dist/bundle-mjs.mjs
10941
+ // node_modules/tailwind-merge/dist/bundle-mjs.mjs
10942
+ var concatArrays = (array1, array2) => {
10943
+ const combinedArray = new Array(array1.length + array2.length);
10944
+ for (let i = 0; i < array1.length; i++) {
10945
+ combinedArray[i] = array1[i];
10946
+ }
10947
+ for (let i = 0; i < array2.length; i++) {
10948
+ combinedArray[array1.length + i] = array2[i];
10949
+ }
10950
+ return combinedArray;
10951
+ };
10952
+ var createClassValidatorObject = (classGroupId, validator2) => ({
10953
+ classGroupId,
10954
+ validator: validator2
10955
+ });
10956
+ var createClassPartObject = (nextPart = /* @__PURE__ */ new Map(), validators = null, classGroupId) => ({
10957
+ nextPart,
10958
+ validators,
10959
+ classGroupId
10960
+ });
10905
10961
  var CLASS_PART_SEPARATOR = "-";
10962
+ var EMPTY_CONFLICTS = [];
10963
+ var ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
10906
10964
  var createClassGroupUtils = (config) => {
10907
10965
  const classMap = createClassMap(config);
10908
10966
  const {
@@ -10910,121 +10968,134 @@ var createClassGroupUtils = (config) => {
10910
10968
  conflictingClassGroupModifiers
10911
10969
  } = config;
10912
10970
  const getClassGroupId = (className) => {
10913
- const classParts = className.split(CLASS_PART_SEPARATOR);
10914
- if (classParts[0] === "" && classParts.length !== 1) {
10915
- classParts.shift();
10971
+ if (className.startsWith("[") && className.endsWith("]")) {
10972
+ return getGroupIdForArbitraryProperty(className);
10916
10973
  }
10917
- return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
10974
+ const classParts = className.split(CLASS_PART_SEPARATOR);
10975
+ const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
10976
+ return getGroupRecursive(classParts, startIndex, classMap);
10918
10977
  };
10919
10978
  const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
10920
- const conflicts = conflictingClassGroups[classGroupId] || [];
10921
- if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
10922
- return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
10979
+ if (hasPostfixModifier) {
10980
+ const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
10981
+ const baseConflicts = conflictingClassGroups[classGroupId];
10982
+ if (modifierConflicts) {
10983
+ if (baseConflicts) {
10984
+ return concatArrays(baseConflicts, modifierConflicts);
10985
+ }
10986
+ return modifierConflicts;
10987
+ }
10988
+ return baseConflicts || EMPTY_CONFLICTS;
10923
10989
  }
10924
- return conflicts;
10990
+ return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
10925
10991
  };
10926
10992
  return {
10927
10993
  getClassGroupId,
10928
10994
  getConflictingClassGroupIds
10929
10995
  };
10930
10996
  };
10931
- var getGroupRecursive = (classParts, classPartObject) => {
10932
- if (classParts.length === 0) {
10997
+ var getGroupRecursive = (classParts, startIndex, classPartObject) => {
10998
+ const classPathsLength = classParts.length - startIndex;
10999
+ if (classPathsLength === 0) {
10933
11000
  return classPartObject.classGroupId;
10934
11001
  }
10935
- const currentClassPart = classParts[0];
11002
+ const currentClassPart = classParts[startIndex];
10936
11003
  const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
10937
- const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : void 0;
10938
- if (classGroupFromNextClassPart) {
10939
- return classGroupFromNextClassPart;
11004
+ if (nextClassPartObject) {
11005
+ const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
11006
+ if (result) return result;
10940
11007
  }
10941
- if (classPartObject.validators.length === 0) {
11008
+ const validators = classPartObject.validators;
11009
+ if (validators === null) {
10942
11010
  return void 0;
10943
11011
  }
10944
- const classRest = classParts.join(CLASS_PART_SEPARATOR);
10945
- return classPartObject.validators.find(({
10946
- validator: validator2
10947
- }) => validator2(classRest))?.classGroupId;
10948
- };
10949
- var arbitraryPropertyRegex = /^\[(.+)\]$/;
10950
- var getGroupIdForArbitraryProperty = (className) => {
10951
- if (arbitraryPropertyRegex.test(className)) {
10952
- const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
10953
- const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(":"));
10954
- if (property) {
10955
- return "arbitrary.." + property;
11012
+ const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
11013
+ const validatorsLength = validators.length;
11014
+ for (let i = 0; i < validatorsLength; i++) {
11015
+ const validatorObj = validators[i];
11016
+ if (validatorObj.validator(classRest)) {
11017
+ return validatorObj.classGroupId;
10956
11018
  }
10957
11019
  }
11020
+ return void 0;
10958
11021
  };
11022
+ var getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
11023
+ const content = className.slice(1, -1);
11024
+ const colonIndex = content.indexOf(":");
11025
+ const property = content.slice(0, colonIndex);
11026
+ return property ? ARBITRARY_PROPERTY_PREFIX + property : void 0;
11027
+ })();
10959
11028
  var createClassMap = (config) => {
10960
11029
  const {
10961
11030
  theme,
10962
- prefix
11031
+ classGroups
10963
11032
  } = config;
10964
- const classMap = {
10965
- nextPart: /* @__PURE__ */ new Map(),
10966
- validators: []
10967
- };
10968
- const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
10969
- prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {
10970
- processClassesRecursively(classGroup, classMap, classGroupId, theme);
10971
- });
11033
+ return processClassGroups(classGroups, theme);
11034
+ };
11035
+ var processClassGroups = (classGroups, theme) => {
11036
+ const classMap = createClassPartObject();
11037
+ for (const classGroupId in classGroups) {
11038
+ const group = classGroups[classGroupId];
11039
+ processClassesRecursively(group, classMap, classGroupId, theme);
11040
+ }
10972
11041
  return classMap;
10973
11042
  };
10974
11043
  var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
10975
- classGroup.forEach((classDefinition) => {
10976
- if (typeof classDefinition === "string") {
10977
- const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
10978
- classPartObjectToEdit.classGroupId = classGroupId;
10979
- return;
10980
- }
10981
- if (typeof classDefinition === "function") {
10982
- if (isThemeGetter(classDefinition)) {
10983
- processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
10984
- return;
10985
- }
10986
- classPartObject.validators.push({
10987
- validator: classDefinition,
10988
- classGroupId
10989
- });
10990
- return;
10991
- }
10992
- Object.entries(classDefinition).forEach(([key, classGroup2]) => {
10993
- processClassesRecursively(classGroup2, getPart(classPartObject, key), classGroupId, theme);
10994
- });
10995
- });
11044
+ const len = classGroup.length;
11045
+ for (let i = 0; i < len; i++) {
11046
+ const classDefinition = classGroup[i];
11047
+ processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
11048
+ }
10996
11049
  };
10997
- var getPart = (classPartObject, path) => {
10998
- let currentClassPartObject = classPartObject;
10999
- path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {
11000
- if (!currentClassPartObject.nextPart.has(pathPart)) {
11001
- currentClassPartObject.nextPart.set(pathPart, {
11002
- nextPart: /* @__PURE__ */ new Map(),
11003
- validators: []
11004
- });
11005
- }
11006
- currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
11007
- });
11008
- return currentClassPartObject;
11050
+ var processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
11051
+ if (typeof classDefinition === "string") {
11052
+ processStringDefinition(classDefinition, classPartObject, classGroupId);
11053
+ return;
11054
+ }
11055
+ if (typeof classDefinition === "function") {
11056
+ processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
11057
+ return;
11058
+ }
11059
+ processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
11009
11060
  };
11010
- var isThemeGetter = (func) => func.isThemeGetter;
11011
- var getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {
11012
- if (!prefix) {
11013
- return classGroupEntries;
11061
+ var processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
11062
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
11063
+ classPartObjectToEdit.classGroupId = classGroupId;
11064
+ };
11065
+ var processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
11066
+ if (isThemeGetter(classDefinition)) {
11067
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
11068
+ return;
11014
11069
  }
11015
- return classGroupEntries.map(([classGroupId, classGroup]) => {
11016
- const prefixedClassGroup = classGroup.map((classDefinition) => {
11017
- if (typeof classDefinition === "string") {
11018
- return prefix + classDefinition;
11019
- }
11020
- if (typeof classDefinition === "object") {
11021
- return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));
11022
- }
11023
- return classDefinition;
11024
- });
11025
- return [classGroupId, prefixedClassGroup];
11026
- });
11070
+ if (classPartObject.validators === null) {
11071
+ classPartObject.validators = [];
11072
+ }
11073
+ classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
11027
11074
  };
11075
+ var processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
11076
+ const entries = Object.entries(classDefinition);
11077
+ const len = entries.length;
11078
+ for (let i = 0; i < len; i++) {
11079
+ const [key, value] = entries[i];
11080
+ processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
11081
+ }
11082
+ };
11083
+ var getPart = (classPartObject, path) => {
11084
+ let current = classPartObject;
11085
+ const parts = path.split(CLASS_PART_SEPARATOR);
11086
+ const len = parts.length;
11087
+ for (let i = 0; i < len; i++) {
11088
+ const part = parts[i];
11089
+ let next = current.nextPart.get(part);
11090
+ if (!next) {
11091
+ next = createClassPartObject();
11092
+ current.nextPart.set(part, next);
11093
+ }
11094
+ current = next;
11095
+ }
11096
+ return current;
11097
+ };
11098
+ var isThemeGetter = (func) => "isThemeGetter" in func && func.isThemeGetter === true;
11028
11099
  var createLruCache = (maxCacheSize) => {
11029
11100
  if (maxCacheSize < 1) {
11030
11101
  return {
@@ -11034,31 +11105,31 @@ var createLruCache = (maxCacheSize) => {
11034
11105
  };
11035
11106
  }
11036
11107
  let cacheSize = 0;
11037
- let cache = /* @__PURE__ */ new Map();
11038
- let previousCache = /* @__PURE__ */ new Map();
11108
+ let cache = /* @__PURE__ */ Object.create(null);
11109
+ let previousCache = /* @__PURE__ */ Object.create(null);
11039
11110
  const update = (key, value) => {
11040
- cache.set(key, value);
11111
+ cache[key] = value;
11041
11112
  cacheSize++;
11042
11113
  if (cacheSize > maxCacheSize) {
11043
11114
  cacheSize = 0;
11044
11115
  previousCache = cache;
11045
- cache = /* @__PURE__ */ new Map();
11116
+ cache = /* @__PURE__ */ Object.create(null);
11046
11117
  }
11047
11118
  };
11048
11119
  return {
11049
11120
  get(key) {
11050
- let value = cache.get(key);
11121
+ let value = cache[key];
11051
11122
  if (value !== void 0) {
11052
11123
  return value;
11053
11124
  }
11054
- if ((value = previousCache.get(key)) !== void 0) {
11125
+ if ((value = previousCache[key]) !== void 0) {
11055
11126
  update(key, value);
11056
11127
  return value;
11057
11128
  }
11058
11129
  },
11059
11130
  set(key, value) {
11060
- if (cache.has(key)) {
11061
- cache.set(key, value);
11131
+ if (key in cache) {
11132
+ cache[key] = value;
11062
11133
  } else {
11063
11134
  update(key, value);
11064
11135
  }
@@ -11066,25 +11137,33 @@ var createLruCache = (maxCacheSize) => {
11066
11137
  };
11067
11138
  };
11068
11139
  var IMPORTANT_MODIFIER = "!";
11140
+ var MODIFIER_SEPARATOR = ":";
11141
+ var EMPTY_MODIFIERS = [];
11142
+ var createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
11143
+ modifiers,
11144
+ hasImportantModifier,
11145
+ baseClassName,
11146
+ maybePostfixModifierPosition,
11147
+ isExternal
11148
+ });
11069
11149
  var createParseClassName = (config) => {
11070
11150
  const {
11071
- separator,
11151
+ prefix,
11072
11152
  experimentalParseClassName
11073
11153
  } = config;
11074
- const isSeparatorSingleCharacter = separator.length === 1;
11075
- const firstSeparatorCharacter = separator[0];
11076
- const separatorLength = separator.length;
11077
- const parseClassName = (className) => {
11154
+ let parseClassName = (className) => {
11078
11155
  const modifiers = [];
11079
11156
  let bracketDepth = 0;
11157
+ let parenDepth = 0;
11080
11158
  let modifierStart = 0;
11081
11159
  let postfixModifierPosition;
11082
- for (let index = 0; index < className.length; index++) {
11083
- let currentCharacter = className[index];
11084
- if (bracketDepth === 0) {
11085
- if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
11160
+ const len = className.length;
11161
+ for (let index = 0; index < len; index++) {
11162
+ const currentCharacter = className[index];
11163
+ if (bracketDepth === 0 && parenDepth === 0) {
11164
+ if (currentCharacter === MODIFIER_SEPARATOR) {
11086
11165
  modifiers.push(className.slice(modifierStart, index));
11087
- modifierStart = index + separatorLength;
11166
+ modifierStart = index + 1;
11088
11167
  continue;
11089
11168
  }
11090
11169
  if (currentCharacter === "/") {
@@ -11092,52 +11171,78 @@ var createParseClassName = (config) => {
11092
11171
  continue;
11093
11172
  }
11094
11173
  }
11095
- if (currentCharacter === "[") {
11096
- bracketDepth++;
11097
- } else if (currentCharacter === "]") {
11098
- bracketDepth--;
11099
- }
11174
+ if (currentCharacter === "[") bracketDepth++;
11175
+ else if (currentCharacter === "]") bracketDepth--;
11176
+ else if (currentCharacter === "(") parenDepth++;
11177
+ else if (currentCharacter === ")") parenDepth--;
11178
+ }
11179
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
11180
+ let baseClassName = baseClassNameWithImportantModifier;
11181
+ let hasImportantModifier = false;
11182
+ if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
11183
+ baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
11184
+ hasImportantModifier = true;
11185
+ } else if (
11186
+ /**
11187
+ * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
11188
+ * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
11189
+ */
11190
+ baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)
11191
+ ) {
11192
+ baseClassName = baseClassNameWithImportantModifier.slice(1);
11193
+ hasImportantModifier = true;
11100
11194
  }
11101
- const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
11102
- const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
11103
- const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
11104
11195
  const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
11105
- return {
11106
- modifiers,
11107
- hasImportantModifier,
11108
- baseClassName,
11109
- maybePostfixModifierPosition
11110
- };
11196
+ return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
11111
11197
  };
11198
+ if (prefix) {
11199
+ const fullPrefix = prefix + MODIFIER_SEPARATOR;
11200
+ const parseClassNameOriginal = parseClassName;
11201
+ parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, void 0, true);
11202
+ }
11112
11203
  if (experimentalParseClassName) {
11113
- return (className) => experimentalParseClassName({
11204
+ const parseClassNameOriginal = parseClassName;
11205
+ parseClassName = (className) => experimentalParseClassName({
11114
11206
  className,
11115
- parseClassName
11207
+ parseClassName: parseClassNameOriginal
11116
11208
  });
11117
11209
  }
11118
11210
  return parseClassName;
11119
11211
  };
11120
- var sortModifiers = (modifiers) => {
11121
- if (modifiers.length <= 1) {
11122
- return modifiers;
11123
- }
11124
- const sortedModifiers = [];
11125
- let unsortedModifiers = [];
11126
- modifiers.forEach((modifier) => {
11127
- const isArbitraryVariant = modifier[0] === "[";
11128
- if (isArbitraryVariant) {
11129
- sortedModifiers.push(...unsortedModifiers.sort(), modifier);
11130
- unsortedModifiers = [];
11131
- } else {
11132
- unsortedModifiers.push(modifier);
11133
- }
11212
+ var createSortModifiers = (config) => {
11213
+ const modifierWeights = /* @__PURE__ */ new Map();
11214
+ config.orderSensitiveModifiers.forEach((mod, index) => {
11215
+ modifierWeights.set(mod, 1e6 + index);
11134
11216
  });
11135
- sortedModifiers.push(...unsortedModifiers.sort());
11136
- return sortedModifiers;
11217
+ return (modifiers) => {
11218
+ const result = [];
11219
+ let currentSegment = [];
11220
+ for (let i = 0; i < modifiers.length; i++) {
11221
+ const modifier = modifiers[i];
11222
+ const isArbitrary = modifier[0] === "[";
11223
+ const isOrderSensitive = modifierWeights.has(modifier);
11224
+ if (isArbitrary || isOrderSensitive) {
11225
+ if (currentSegment.length > 0) {
11226
+ currentSegment.sort();
11227
+ result.push(...currentSegment);
11228
+ currentSegment = [];
11229
+ }
11230
+ result.push(modifier);
11231
+ } else {
11232
+ currentSegment.push(modifier);
11233
+ }
11234
+ }
11235
+ if (currentSegment.length > 0) {
11236
+ currentSegment.sort();
11237
+ result.push(...currentSegment);
11238
+ }
11239
+ return result;
11240
+ };
11137
11241
  };
11138
11242
  var createConfigUtils = (config) => ({
11139
11243
  cache: createLruCache(config.cacheSize),
11140
11244
  parseClassName: createParseClassName(config),
11245
+ sortModifiers: createSortModifiers(config),
11141
11246
  ...createClassGroupUtils(config)
11142
11247
  });
11143
11248
  var SPLIT_CLASSES_REGEX = /\s+/;
@@ -11145,7 +11250,8 @@ var mergeClassList = (classList, configUtils) => {
11145
11250
  const {
11146
11251
  parseClassName,
11147
11252
  getClassGroupId,
11148
- getConflictingClassGroupIds
11253
+ getConflictingClassGroupIds,
11254
+ sortModifiers
11149
11255
  } = configUtils;
11150
11256
  const classGroupsInConflict = [];
11151
11257
  const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
@@ -11153,12 +11259,17 @@ var mergeClassList = (classList, configUtils) => {
11153
11259
  for (let index = classNames.length - 1; index >= 0; index -= 1) {
11154
11260
  const originalClassName = classNames[index];
11155
11261
  const {
11262
+ isExternal,
11156
11263
  modifiers,
11157
11264
  hasImportantModifier,
11158
11265
  baseClassName,
11159
11266
  maybePostfixModifierPosition
11160
11267
  } = parseClassName(originalClassName);
11161
- let hasPostfixModifier = Boolean(maybePostfixModifierPosition);
11268
+ if (isExternal) {
11269
+ result = originalClassName + (result.length > 0 ? " " + result : result);
11270
+ continue;
11271
+ }
11272
+ let hasPostfixModifier = !!maybePostfixModifierPosition;
11162
11273
  let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
11163
11274
  if (!classGroupId) {
11164
11275
  if (!hasPostfixModifier) {
@@ -11172,10 +11283,10 @@ var mergeClassList = (classList, configUtils) => {
11172
11283
  }
11173
11284
  hasPostfixModifier = false;
11174
11285
  }
11175
- const variantModifier = sortModifiers(modifiers).join(":");
11286
+ const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
11176
11287
  const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
11177
11288
  const classId = modifierId + classGroupId;
11178
- if (classGroupsInConflict.includes(classId)) {
11289
+ if (classGroupsInConflict.indexOf(classId) > -1) {
11179
11290
  continue;
11180
11291
  }
11181
11292
  classGroupsInConflict.push(classId);
@@ -11188,13 +11299,13 @@ var mergeClassList = (classList, configUtils) => {
11188
11299
  }
11189
11300
  return result;
11190
11301
  };
11191
- function twJoin() {
11302
+ var twJoin = (...classLists) => {
11192
11303
  let index = 0;
11193
11304
  let argument;
11194
11305
  let resolvedValue;
11195
11306
  let string = "";
11196
- while (index < arguments.length) {
11197
- if (argument = arguments[index++]) {
11307
+ while (index < classLists.length) {
11308
+ if (argument = classLists[index++]) {
11198
11309
  if (resolvedValue = toValue(argument)) {
11199
11310
  string && (string += " ");
11200
11311
  string += resolvedValue;
@@ -11202,7 +11313,7 @@ function twJoin() {
11202
11313
  }
11203
11314
  }
11204
11315
  return string;
11205
- }
11316
+ };
11206
11317
  var toValue = (mix) => {
11207
11318
  if (typeof mix === "string") {
11208
11319
  return mix;
@@ -11219,20 +11330,20 @@ var toValue = (mix) => {
11219
11330
  }
11220
11331
  return string;
11221
11332
  };
11222
- function createTailwindMerge(createConfigFirst, ...createConfigRest) {
11333
+ var createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
11223
11334
  let configUtils;
11224
11335
  let cacheGet;
11225
11336
  let cacheSet;
11226
- let functionToCall = initTailwindMerge;
11227
- function initTailwindMerge(classList) {
11337
+ let functionToCall;
11338
+ const initTailwindMerge = (classList) => {
11228
11339
  const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
11229
11340
  configUtils = createConfigUtils(config);
11230
11341
  cacheGet = configUtils.cache.get;
11231
11342
  cacheSet = configUtils.cache.set;
11232
11343
  functionToCall = tailwindMerge;
11233
11344
  return tailwindMerge(classList);
11234
- }
11235
- function tailwindMerge(classList) {
11345
+ };
11346
+ const tailwindMerge = (classList) => {
11236
11347
  const cachedResult = cacheGet(classList);
11237
11348
  if (cachedResult) {
11238
11349
  return cachedResult;
@@ -11240,49 +11351,30 @@ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
11240
11351
  const result = mergeClassList(classList, configUtils);
11241
11352
  cacheSet(classList, result);
11242
11353
  return result;
11243
- }
11244
- return function callTailwindMerge() {
11245
- return functionToCall(twJoin.apply(null, arguments));
11246
11354
  };
11247
- }
11355
+ functionToCall = initTailwindMerge;
11356
+ return (...args) => functionToCall(twJoin(...args));
11357
+ };
11358
+ var fallbackThemeArr = [];
11248
11359
  var fromTheme = (key) => {
11249
- const themeGetter = (theme) => theme[key] || [];
11360
+ const themeGetter = (theme) => theme[key] || fallbackThemeArr;
11250
11361
  themeGetter.isThemeGetter = true;
11251
11362
  return themeGetter;
11252
11363
  };
11253
- var arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
11364
+ var arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
11365
+ var arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
11254
11366
  var fractionRegex = /^\d+\/\d+$/;
11255
- var stringLengths = /* @__PURE__ */ new Set(["px", "full", "screen"]);
11256
11367
  var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
11257
11368
  var lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
11258
- var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
11369
+ var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
11259
11370
  var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
11260
11371
  var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
11261
- var isLength = (value) => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);
11262
- var isArbitraryLength = (value) => getIsArbitraryValue(value, "length", isLengthOnly);
11263
- var isNumber = (value) => Boolean(value) && !Number.isNaN(Number(value));
11264
- var isArbitraryNumber = (value) => getIsArbitraryValue(value, "number", isNumber);
11265
- var isInteger = (value) => Boolean(value) && Number.isInteger(Number(value));
11372
+ var isFraction = (value) => fractionRegex.test(value);
11373
+ var isNumber = (value) => !!value && !Number.isNaN(Number(value));
11374
+ var isInteger = (value) => !!value && Number.isInteger(Number(value));
11266
11375
  var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
11267
- var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
11268
11376
  var isTshirtSize = (value) => tshirtUnitRegex.test(value);
11269
- var sizeLabels = /* @__PURE__ */ new Set(["length", "size", "percentage"]);
11270
- var isArbitrarySize = (value) => getIsArbitraryValue(value, sizeLabels, isNever);
11271
- var isArbitraryPosition = (value) => getIsArbitraryValue(value, "position", isNever);
11272
- var imageLabels = /* @__PURE__ */ new Set(["image", "url"]);
11273
- var isArbitraryImage = (value) => getIsArbitraryValue(value, imageLabels, isImage);
11274
- var isArbitraryShadow = (value) => getIsArbitraryValue(value, "", isShadow);
11275
11377
  var isAny = () => true;
11276
- var getIsArbitraryValue = (value, label, testValue) => {
11277
- const result = arbitraryValueRegex.exec(value);
11278
- if (result) {
11279
- if (result[1]) {
11280
- return typeof label === "string" ? result[1] === label : label.has(result[1]);
11281
- }
11282
- return testValue(result[2]);
11283
- }
11284
- return false;
11285
- };
11286
11378
  var isLengthOnly = (value) => (
11287
11379
  // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
11288
11380
  // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
@@ -11292,87 +11384,177 @@ var isLengthOnly = (value) => (
11292
11384
  var isNever = () => false;
11293
11385
  var isShadow = (value) => shadowRegex.test(value);
11294
11386
  var isImage = (value) => imageRegex.test(value);
11387
+ var isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
11388
+ var isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
11389
+ var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
11390
+ var isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
11391
+ var isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
11392
+ var isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
11393
+ var isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
11394
+ var isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
11395
+ var isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
11396
+ var isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
11397
+ var isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
11398
+ var isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
11399
+ var isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
11400
+ var isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
11401
+ var isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
11402
+ var getIsArbitraryValue = (value, testLabel, testValue) => {
11403
+ const result = arbitraryValueRegex.exec(value);
11404
+ if (result) {
11405
+ if (result[1]) {
11406
+ return testLabel(result[1]);
11407
+ }
11408
+ return testValue(result[2]);
11409
+ }
11410
+ return false;
11411
+ };
11412
+ var getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
11413
+ const result = arbitraryVariableRegex.exec(value);
11414
+ if (result) {
11415
+ if (result[1]) {
11416
+ return testLabel(result[1]);
11417
+ }
11418
+ return shouldMatchNoLabel;
11419
+ }
11420
+ return false;
11421
+ };
11422
+ var isLabelPosition = (label) => label === "position" || label === "percentage";
11423
+ var isLabelImage = (label) => label === "image" || label === "url";
11424
+ var isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
11425
+ var isLabelLength = (label) => label === "length";
11426
+ var isLabelNumber = (label) => label === "number";
11427
+ var isLabelFamilyName = (label) => label === "family-name";
11428
+ var isLabelShadow = (label) => label === "shadow";
11295
11429
  var getDefaultConfig = () => {
11296
- const colors = fromTheme("colors");
11297
- const spacing = fromTheme("spacing");
11298
- const blur = fromTheme("blur");
11299
- const brightness = fromTheme("brightness");
11300
- const borderColor = fromTheme("borderColor");
11301
- const borderRadius = fromTheme("borderRadius");
11302
- const borderSpacing = fromTheme("borderSpacing");
11303
- const borderWidth = fromTheme("borderWidth");
11304
- const contrast = fromTheme("contrast");
11305
- const grayscale = fromTheme("grayscale");
11306
- const hueRotate = fromTheme("hueRotate");
11307
- const invert = fromTheme("invert");
11308
- const gap = fromTheme("gap");
11309
- const gradientColorStops = fromTheme("gradientColorStops");
11310
- const gradientColorStopPositions = fromTheme("gradientColorStopPositions");
11311
- const inset = fromTheme("inset");
11312
- const margin = fromTheme("margin");
11313
- const opacity = fromTheme("opacity");
11314
- const padding = fromTheme("padding");
11315
- const saturate = fromTheme("saturate");
11316
- const scale = fromTheme("scale");
11317
- const sepia = fromTheme("sepia");
11318
- const skew = fromTheme("skew");
11319
- const space = fromTheme("space");
11320
- const translate = fromTheme("translate");
11321
- const getOverscroll = () => ["auto", "contain", "none"];
11322
- const getOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
11323
- const getSpacingWithAutoAndArbitrary = () => ["auto", isArbitraryValue, spacing];
11324
- const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];
11325
- const getLengthWithEmptyAndArbitrary = () => ["", isLength, isArbitraryLength];
11326
- const getNumberWithAutoAndArbitrary = () => ["auto", isNumber, isArbitraryValue];
11327
- const getPositions = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"];
11328
- const getLineStyles = () => ["solid", "dashed", "dotted", "double", "none"];
11329
- const getBlendModes = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
11330
- const getAlign = () => ["start", "end", "center", "between", "around", "evenly", "stretch"];
11331
- const getZeroAndEmpty = () => ["", "0", isArbitraryValue];
11332
- const getBreaks = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
11333
- const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];
11430
+ const themeColor = fromTheme("color");
11431
+ const themeFont = fromTheme("font");
11432
+ const themeText = fromTheme("text");
11433
+ const themeFontWeight = fromTheme("font-weight");
11434
+ const themeTracking = fromTheme("tracking");
11435
+ const themeLeading = fromTheme("leading");
11436
+ const themeBreakpoint = fromTheme("breakpoint");
11437
+ const themeContainer = fromTheme("container");
11438
+ const themeSpacing = fromTheme("spacing");
11439
+ const themeRadius = fromTheme("radius");
11440
+ const themeShadow = fromTheme("shadow");
11441
+ const themeInsetShadow = fromTheme("inset-shadow");
11442
+ const themeTextShadow = fromTheme("text-shadow");
11443
+ const themeDropShadow = fromTheme("drop-shadow");
11444
+ const themeBlur = fromTheme("blur");
11445
+ const themePerspective = fromTheme("perspective");
11446
+ const themeAspect = fromTheme("aspect");
11447
+ const themeEase = fromTheme("ease");
11448
+ const themeAnimate = fromTheme("animate");
11449
+ const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
11450
+ const scalePosition = () => [
11451
+ "center",
11452
+ "top",
11453
+ "bottom",
11454
+ "left",
11455
+ "right",
11456
+ "top-left",
11457
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
11458
+ "left-top",
11459
+ "top-right",
11460
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
11461
+ "right-top",
11462
+ "bottom-right",
11463
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
11464
+ "right-bottom",
11465
+ "bottom-left",
11466
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
11467
+ "left-bottom"
11468
+ ];
11469
+ const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
11470
+ const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
11471
+ const scaleOverscroll = () => ["auto", "contain", "none"];
11472
+ const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
11473
+ const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
11474
+ const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
11475
+ const scaleGridColRowStartAndEnd = () => ["auto", {
11476
+ span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
11477
+ }, isInteger, isArbitraryVariable, isArbitraryValue];
11478
+ const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
11479
+ const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
11480
+ const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
11481
+ const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
11482
+ const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
11483
+ const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
11484
+ const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
11485
+ const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
11486
+ position: [isArbitraryVariable, isArbitraryValue]
11487
+ }];
11488
+ const scaleBgRepeat = () => ["no-repeat", {
11489
+ repeat: ["", "x", "y", "space", "round"]
11490
+ }];
11491
+ const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
11492
+ size: [isArbitraryVariable, isArbitraryValue]
11493
+ }];
11494
+ const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
11495
+ const scaleRadius = () => [
11496
+ // Deprecated since Tailwind CSS v4.0.0
11497
+ "",
11498
+ "none",
11499
+ "full",
11500
+ themeRadius,
11501
+ isArbitraryVariable,
11502
+ isArbitraryValue
11503
+ ];
11504
+ const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
11505
+ const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
11506
+ const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
11507
+ const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
11508
+ const scaleBlur = () => [
11509
+ // Deprecated since Tailwind CSS v4.0.0
11510
+ "",
11511
+ "none",
11512
+ themeBlur,
11513
+ isArbitraryVariable,
11514
+ isArbitraryValue
11515
+ ];
11516
+ const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
11517
+ const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
11518
+ const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
11519
+ const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
11334
11520
  return {
11335
11521
  cacheSize: 500,
11336
- separator: ":",
11337
11522
  theme: {
11338
- colors: [isAny],
11339
- spacing: [isLength, isArbitraryLength],
11340
- blur: ["none", "", isTshirtSize, isArbitraryValue],
11341
- brightness: getNumberAndArbitrary(),
11342
- borderColor: [colors],
11343
- borderRadius: ["none", "", "full", isTshirtSize, isArbitraryValue],
11344
- borderSpacing: getSpacingWithArbitrary(),
11345
- borderWidth: getLengthWithEmptyAndArbitrary(),
11346
- contrast: getNumberAndArbitrary(),
11347
- grayscale: getZeroAndEmpty(),
11348
- hueRotate: getNumberAndArbitrary(),
11349
- invert: getZeroAndEmpty(),
11350
- gap: getSpacingWithArbitrary(),
11351
- gradientColorStops: [colors],
11352
- gradientColorStopPositions: [isPercent, isArbitraryLength],
11353
- inset: getSpacingWithAutoAndArbitrary(),
11354
- margin: getSpacingWithAutoAndArbitrary(),
11355
- opacity: getNumberAndArbitrary(),
11356
- padding: getSpacingWithArbitrary(),
11357
- saturate: getNumberAndArbitrary(),
11358
- scale: getNumberAndArbitrary(),
11359
- sepia: getZeroAndEmpty(),
11360
- skew: getNumberAndArbitrary(),
11361
- space: getSpacingWithArbitrary(),
11362
- translate: getSpacingWithArbitrary()
11523
+ animate: ["spin", "ping", "pulse", "bounce"],
11524
+ aspect: ["video"],
11525
+ blur: [isTshirtSize],
11526
+ breakpoint: [isTshirtSize],
11527
+ color: [isAny],
11528
+ container: [isTshirtSize],
11529
+ "drop-shadow": [isTshirtSize],
11530
+ ease: ["in", "out", "in-out"],
11531
+ font: [isAnyNonArbitrary],
11532
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
11533
+ "inset-shadow": [isTshirtSize],
11534
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
11535
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
11536
+ radius: [isTshirtSize],
11537
+ shadow: [isTshirtSize],
11538
+ spacing: ["px", isNumber],
11539
+ text: [isTshirtSize],
11540
+ "text-shadow": [isTshirtSize],
11541
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
11363
11542
  },
11364
11543
  classGroups: {
11365
- // Layout
11544
+ // --------------
11545
+ // --- Layout ---
11546
+ // --------------
11366
11547
  /**
11367
11548
  * Aspect Ratio
11368
11549
  * @see https://tailwindcss.com/docs/aspect-ratio
11369
11550
  */
11370
11551
  aspect: [{
11371
- aspect: ["auto", "square", "video", isArbitraryValue]
11552
+ aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
11372
11553
  }],
11373
11554
  /**
11374
11555
  * Container
11375
11556
  * @see https://tailwindcss.com/docs/container
11557
+ * @deprecated since Tailwind CSS v4.0.0
11376
11558
  */
11377
11559
  container: ["container"],
11378
11560
  /**
@@ -11380,21 +11562,21 @@ var getDefaultConfig = () => {
11380
11562
  * @see https://tailwindcss.com/docs/columns
11381
11563
  */
11382
11564
  columns: [{
11383
- columns: [isTshirtSize]
11565
+ columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
11384
11566
  }],
11385
11567
  /**
11386
11568
  * Break After
11387
11569
  * @see https://tailwindcss.com/docs/break-after
11388
11570
  */
11389
11571
  "break-after": [{
11390
- "break-after": getBreaks()
11572
+ "break-after": scaleBreak()
11391
11573
  }],
11392
11574
  /**
11393
11575
  * Break Before
11394
11576
  * @see https://tailwindcss.com/docs/break-before
11395
11577
  */
11396
11578
  "break-before": [{
11397
- "break-before": getBreaks()
11579
+ "break-before": scaleBreak()
11398
11580
  }],
11399
11581
  /**
11400
11582
  * Break Inside
@@ -11422,6 +11604,11 @@ var getDefaultConfig = () => {
11422
11604
  * @see https://tailwindcss.com/docs/display
11423
11605
  */
11424
11606
  display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
11607
+ /**
11608
+ * Screen Reader Only
11609
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
11610
+ */
11611
+ sr: ["sr-only", "not-sr-only"],
11425
11612
  /**
11426
11613
  * Floats
11427
11614
  * @see https://tailwindcss.com/docs/float
@@ -11453,49 +11640,49 @@ var getDefaultConfig = () => {
11453
11640
  * @see https://tailwindcss.com/docs/object-position
11454
11641
  */
11455
11642
  "object-position": [{
11456
- object: [...getPositions(), isArbitraryValue]
11643
+ object: scalePositionWithArbitrary()
11457
11644
  }],
11458
11645
  /**
11459
11646
  * Overflow
11460
11647
  * @see https://tailwindcss.com/docs/overflow
11461
11648
  */
11462
11649
  overflow: [{
11463
- overflow: getOverflow()
11650
+ overflow: scaleOverflow()
11464
11651
  }],
11465
11652
  /**
11466
11653
  * Overflow X
11467
11654
  * @see https://tailwindcss.com/docs/overflow
11468
11655
  */
11469
11656
  "overflow-x": [{
11470
- "overflow-x": getOverflow()
11657
+ "overflow-x": scaleOverflow()
11471
11658
  }],
11472
11659
  /**
11473
11660
  * Overflow Y
11474
11661
  * @see https://tailwindcss.com/docs/overflow
11475
11662
  */
11476
11663
  "overflow-y": [{
11477
- "overflow-y": getOverflow()
11664
+ "overflow-y": scaleOverflow()
11478
11665
  }],
11479
11666
  /**
11480
11667
  * Overscroll Behavior
11481
11668
  * @see https://tailwindcss.com/docs/overscroll-behavior
11482
11669
  */
11483
11670
  overscroll: [{
11484
- overscroll: getOverscroll()
11671
+ overscroll: scaleOverscroll()
11485
11672
  }],
11486
11673
  /**
11487
11674
  * Overscroll Behavior X
11488
11675
  * @see https://tailwindcss.com/docs/overscroll-behavior
11489
11676
  */
11490
11677
  "overscroll-x": [{
11491
- "overscroll-x": getOverscroll()
11678
+ "overscroll-x": scaleOverscroll()
11492
11679
  }],
11493
11680
  /**
11494
11681
  * Overscroll Behavior Y
11495
11682
  * @see https://tailwindcss.com/docs/overscroll-behavior
11496
11683
  */
11497
11684
  "overscroll-y": [{
11498
- "overscroll-y": getOverscroll()
11685
+ "overscroll-y": scaleOverscroll()
11499
11686
  }],
11500
11687
  /**
11501
11688
  * Position
@@ -11507,63 +11694,63 @@ var getDefaultConfig = () => {
11507
11694
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11508
11695
  */
11509
11696
  inset: [{
11510
- inset: [inset]
11697
+ inset: scaleInset()
11511
11698
  }],
11512
11699
  /**
11513
11700
  * Right / Left
11514
11701
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11515
11702
  */
11516
11703
  "inset-x": [{
11517
- "inset-x": [inset]
11704
+ "inset-x": scaleInset()
11518
11705
  }],
11519
11706
  /**
11520
11707
  * Top / Bottom
11521
11708
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11522
11709
  */
11523
11710
  "inset-y": [{
11524
- "inset-y": [inset]
11711
+ "inset-y": scaleInset()
11525
11712
  }],
11526
11713
  /**
11527
11714
  * Start
11528
11715
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11529
11716
  */
11530
11717
  start: [{
11531
- start: [inset]
11718
+ start: scaleInset()
11532
11719
  }],
11533
11720
  /**
11534
11721
  * End
11535
11722
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11536
11723
  */
11537
11724
  end: [{
11538
- end: [inset]
11725
+ end: scaleInset()
11539
11726
  }],
11540
11727
  /**
11541
11728
  * Top
11542
11729
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11543
11730
  */
11544
11731
  top: [{
11545
- top: [inset]
11732
+ top: scaleInset()
11546
11733
  }],
11547
11734
  /**
11548
11735
  * Right
11549
11736
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11550
11737
  */
11551
11738
  right: [{
11552
- right: [inset]
11739
+ right: scaleInset()
11553
11740
  }],
11554
11741
  /**
11555
11742
  * Bottom
11556
11743
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11557
11744
  */
11558
11745
  bottom: [{
11559
- bottom: [inset]
11746
+ bottom: scaleInset()
11560
11747
  }],
11561
11748
  /**
11562
11749
  * Left
11563
11750
  * @see https://tailwindcss.com/docs/top-right-bottom-left
11564
11751
  */
11565
11752
  left: [{
11566
- left: [inset]
11753
+ left: scaleInset()
11567
11754
  }],
11568
11755
  /**
11569
11756
  * Visibility
@@ -11575,15 +11762,17 @@ var getDefaultConfig = () => {
11575
11762
  * @see https://tailwindcss.com/docs/z-index
11576
11763
  */
11577
11764
  z: [{
11578
- z: ["auto", isInteger, isArbitraryValue]
11765
+ z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
11579
11766
  }],
11580
- // Flexbox and Grid
11767
+ // ------------------------
11768
+ // --- Flexbox and Grid ---
11769
+ // ------------------------
11581
11770
  /**
11582
11771
  * Flex Basis
11583
11772
  * @see https://tailwindcss.com/docs/flex-basis
11584
11773
  */
11585
11774
  basis: [{
11586
- basis: getSpacingWithAutoAndArbitrary()
11775
+ basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
11587
11776
  }],
11588
11777
  /**
11589
11778
  * Flex Direction
@@ -11597,95 +11786,91 @@ var getDefaultConfig = () => {
11597
11786
  * @see https://tailwindcss.com/docs/flex-wrap
11598
11787
  */
11599
11788
  "flex-wrap": [{
11600
- flex: ["wrap", "wrap-reverse", "nowrap"]
11789
+ flex: ["nowrap", "wrap", "wrap-reverse"]
11601
11790
  }],
11602
11791
  /**
11603
11792
  * Flex
11604
11793
  * @see https://tailwindcss.com/docs/flex
11605
11794
  */
11606
11795
  flex: [{
11607
- flex: ["1", "auto", "initial", "none", isArbitraryValue]
11796
+ flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
11608
11797
  }],
11609
11798
  /**
11610
11799
  * Flex Grow
11611
11800
  * @see https://tailwindcss.com/docs/flex-grow
11612
11801
  */
11613
11802
  grow: [{
11614
- grow: getZeroAndEmpty()
11803
+ grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
11615
11804
  }],
11616
11805
  /**
11617
11806
  * Flex Shrink
11618
11807
  * @see https://tailwindcss.com/docs/flex-shrink
11619
11808
  */
11620
11809
  shrink: [{
11621
- shrink: getZeroAndEmpty()
11810
+ shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
11622
11811
  }],
11623
11812
  /**
11624
11813
  * Order
11625
11814
  * @see https://tailwindcss.com/docs/order
11626
11815
  */
11627
11816
  order: [{
11628
- order: ["first", "last", "none", isInteger, isArbitraryValue]
11817
+ order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
11629
11818
  }],
11630
11819
  /**
11631
11820
  * Grid Template Columns
11632
11821
  * @see https://tailwindcss.com/docs/grid-template-columns
11633
11822
  */
11634
11823
  "grid-cols": [{
11635
- "grid-cols": [isAny]
11824
+ "grid-cols": scaleGridTemplateColsRows()
11636
11825
  }],
11637
11826
  /**
11638
11827
  * Grid Column Start / End
11639
11828
  * @see https://tailwindcss.com/docs/grid-column
11640
11829
  */
11641
11830
  "col-start-end": [{
11642
- col: ["auto", {
11643
- span: ["full", isInteger, isArbitraryValue]
11644
- }, isArbitraryValue]
11831
+ col: scaleGridColRowStartAndEnd()
11645
11832
  }],
11646
11833
  /**
11647
11834
  * Grid Column Start
11648
11835
  * @see https://tailwindcss.com/docs/grid-column
11649
11836
  */
11650
11837
  "col-start": [{
11651
- "col-start": getNumberWithAutoAndArbitrary()
11838
+ "col-start": scaleGridColRowStartOrEnd()
11652
11839
  }],
11653
11840
  /**
11654
11841
  * Grid Column End
11655
11842
  * @see https://tailwindcss.com/docs/grid-column
11656
11843
  */
11657
11844
  "col-end": [{
11658
- "col-end": getNumberWithAutoAndArbitrary()
11845
+ "col-end": scaleGridColRowStartOrEnd()
11659
11846
  }],
11660
11847
  /**
11661
11848
  * Grid Template Rows
11662
11849
  * @see https://tailwindcss.com/docs/grid-template-rows
11663
11850
  */
11664
11851
  "grid-rows": [{
11665
- "grid-rows": [isAny]
11852
+ "grid-rows": scaleGridTemplateColsRows()
11666
11853
  }],
11667
11854
  /**
11668
11855
  * Grid Row Start / End
11669
11856
  * @see https://tailwindcss.com/docs/grid-row
11670
11857
  */
11671
11858
  "row-start-end": [{
11672
- row: ["auto", {
11673
- span: [isInteger, isArbitraryValue]
11674
- }, isArbitraryValue]
11859
+ row: scaleGridColRowStartAndEnd()
11675
11860
  }],
11676
11861
  /**
11677
11862
  * Grid Row Start
11678
11863
  * @see https://tailwindcss.com/docs/grid-row
11679
11864
  */
11680
11865
  "row-start": [{
11681
- "row-start": getNumberWithAutoAndArbitrary()
11866
+ "row-start": scaleGridColRowStartOrEnd()
11682
11867
  }],
11683
11868
  /**
11684
11869
  * Grid Row End
11685
11870
  * @see https://tailwindcss.com/docs/grid-row
11686
11871
  */
11687
11872
  "row-end": [{
11688
- "row-end": getNumberWithAutoAndArbitrary()
11873
+ "row-end": scaleGridColRowStartOrEnd()
11689
11874
  }],
11690
11875
  /**
11691
11876
  * Grid Auto Flow
@@ -11699,98 +11884,102 @@ var getDefaultConfig = () => {
11699
11884
  * @see https://tailwindcss.com/docs/grid-auto-columns
11700
11885
  */
11701
11886
  "auto-cols": [{
11702
- "auto-cols": ["auto", "min", "max", "fr", isArbitraryValue]
11887
+ "auto-cols": scaleGridAutoColsRows()
11703
11888
  }],
11704
11889
  /**
11705
11890
  * Grid Auto Rows
11706
11891
  * @see https://tailwindcss.com/docs/grid-auto-rows
11707
11892
  */
11708
11893
  "auto-rows": [{
11709
- "auto-rows": ["auto", "min", "max", "fr", isArbitraryValue]
11894
+ "auto-rows": scaleGridAutoColsRows()
11710
11895
  }],
11711
11896
  /**
11712
11897
  * Gap
11713
11898
  * @see https://tailwindcss.com/docs/gap
11714
11899
  */
11715
11900
  gap: [{
11716
- gap: [gap]
11901
+ gap: scaleUnambiguousSpacing()
11717
11902
  }],
11718
11903
  /**
11719
11904
  * Gap X
11720
11905
  * @see https://tailwindcss.com/docs/gap
11721
11906
  */
11722
11907
  "gap-x": [{
11723
- "gap-x": [gap]
11908
+ "gap-x": scaleUnambiguousSpacing()
11724
11909
  }],
11725
11910
  /**
11726
11911
  * Gap Y
11727
11912
  * @see https://tailwindcss.com/docs/gap
11728
11913
  */
11729
11914
  "gap-y": [{
11730
- "gap-y": [gap]
11915
+ "gap-y": scaleUnambiguousSpacing()
11731
11916
  }],
11732
11917
  /**
11733
11918
  * Justify Content
11734
11919
  * @see https://tailwindcss.com/docs/justify-content
11735
11920
  */
11736
11921
  "justify-content": [{
11737
- justify: ["normal", ...getAlign()]
11922
+ justify: [...scaleAlignPrimaryAxis(), "normal"]
11738
11923
  }],
11739
11924
  /**
11740
11925
  * Justify Items
11741
11926
  * @see https://tailwindcss.com/docs/justify-items
11742
11927
  */
11743
11928
  "justify-items": [{
11744
- "justify-items": ["start", "end", "center", "stretch"]
11929
+ "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
11745
11930
  }],
11746
11931
  /**
11747
11932
  * Justify Self
11748
11933
  * @see https://tailwindcss.com/docs/justify-self
11749
11934
  */
11750
11935
  "justify-self": [{
11751
- "justify-self": ["auto", "start", "end", "center", "stretch"]
11936
+ "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
11752
11937
  }],
11753
11938
  /**
11754
11939
  * Align Content
11755
11940
  * @see https://tailwindcss.com/docs/align-content
11756
11941
  */
11757
11942
  "align-content": [{
11758
- content: ["normal", ...getAlign(), "baseline"]
11943
+ content: ["normal", ...scaleAlignPrimaryAxis()]
11759
11944
  }],
11760
11945
  /**
11761
11946
  * Align Items
11762
11947
  * @see https://tailwindcss.com/docs/align-items
11763
11948
  */
11764
11949
  "align-items": [{
11765
- items: ["start", "end", "center", "baseline", "stretch"]
11950
+ items: [...scaleAlignSecondaryAxis(), {
11951
+ baseline: ["", "last"]
11952
+ }]
11766
11953
  }],
11767
11954
  /**
11768
11955
  * Align Self
11769
11956
  * @see https://tailwindcss.com/docs/align-self
11770
11957
  */
11771
11958
  "align-self": [{
11772
- self: ["auto", "start", "end", "center", "stretch", "baseline"]
11959
+ self: ["auto", ...scaleAlignSecondaryAxis(), {
11960
+ baseline: ["", "last"]
11961
+ }]
11773
11962
  }],
11774
11963
  /**
11775
11964
  * Place Content
11776
11965
  * @see https://tailwindcss.com/docs/place-content
11777
11966
  */
11778
11967
  "place-content": [{
11779
- "place-content": [...getAlign(), "baseline"]
11968
+ "place-content": scaleAlignPrimaryAxis()
11780
11969
  }],
11781
11970
  /**
11782
11971
  * Place Items
11783
11972
  * @see https://tailwindcss.com/docs/place-items
11784
11973
  */
11785
11974
  "place-items": [{
11786
- "place-items": ["start", "end", "center", "baseline", "stretch"]
11975
+ "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
11787
11976
  }],
11788
11977
  /**
11789
11978
  * Place Self
11790
11979
  * @see https://tailwindcss.com/docs/place-self
11791
11980
  */
11792
11981
  "place-self": [{
11793
- "place-self": ["auto", "start", "end", "center", "stretch"]
11982
+ "place-self": ["auto", ...scaleAlignSecondaryAxis()]
11794
11983
  }],
11795
11984
  // Spacing
11796
11985
  /**
@@ -11798,210 +11987,229 @@ var getDefaultConfig = () => {
11798
11987
  * @see https://tailwindcss.com/docs/padding
11799
11988
  */
11800
11989
  p: [{
11801
- p: [padding]
11990
+ p: scaleUnambiguousSpacing()
11802
11991
  }],
11803
11992
  /**
11804
11993
  * Padding X
11805
11994
  * @see https://tailwindcss.com/docs/padding
11806
11995
  */
11807
11996
  px: [{
11808
- px: [padding]
11997
+ px: scaleUnambiguousSpacing()
11809
11998
  }],
11810
11999
  /**
11811
12000
  * Padding Y
11812
12001
  * @see https://tailwindcss.com/docs/padding
11813
12002
  */
11814
12003
  py: [{
11815
- py: [padding]
12004
+ py: scaleUnambiguousSpacing()
11816
12005
  }],
11817
12006
  /**
11818
12007
  * Padding Start
11819
12008
  * @see https://tailwindcss.com/docs/padding
11820
12009
  */
11821
12010
  ps: [{
11822
- ps: [padding]
12011
+ ps: scaleUnambiguousSpacing()
11823
12012
  }],
11824
12013
  /**
11825
12014
  * Padding End
11826
12015
  * @see https://tailwindcss.com/docs/padding
11827
12016
  */
11828
12017
  pe: [{
11829
- pe: [padding]
12018
+ pe: scaleUnambiguousSpacing()
11830
12019
  }],
11831
12020
  /**
11832
12021
  * Padding Top
11833
12022
  * @see https://tailwindcss.com/docs/padding
11834
12023
  */
11835
12024
  pt: [{
11836
- pt: [padding]
12025
+ pt: scaleUnambiguousSpacing()
11837
12026
  }],
11838
12027
  /**
11839
12028
  * Padding Right
11840
12029
  * @see https://tailwindcss.com/docs/padding
11841
12030
  */
11842
12031
  pr: [{
11843
- pr: [padding]
12032
+ pr: scaleUnambiguousSpacing()
11844
12033
  }],
11845
12034
  /**
11846
12035
  * Padding Bottom
11847
12036
  * @see https://tailwindcss.com/docs/padding
11848
12037
  */
11849
12038
  pb: [{
11850
- pb: [padding]
12039
+ pb: scaleUnambiguousSpacing()
11851
12040
  }],
11852
12041
  /**
11853
12042
  * Padding Left
11854
12043
  * @see https://tailwindcss.com/docs/padding
11855
12044
  */
11856
12045
  pl: [{
11857
- pl: [padding]
12046
+ pl: scaleUnambiguousSpacing()
11858
12047
  }],
11859
12048
  /**
11860
12049
  * Margin
11861
12050
  * @see https://tailwindcss.com/docs/margin
11862
12051
  */
11863
12052
  m: [{
11864
- m: [margin]
12053
+ m: scaleMargin()
11865
12054
  }],
11866
12055
  /**
11867
12056
  * Margin X
11868
12057
  * @see https://tailwindcss.com/docs/margin
11869
12058
  */
11870
12059
  mx: [{
11871
- mx: [margin]
12060
+ mx: scaleMargin()
11872
12061
  }],
11873
12062
  /**
11874
12063
  * Margin Y
11875
12064
  * @see https://tailwindcss.com/docs/margin
11876
12065
  */
11877
12066
  my: [{
11878
- my: [margin]
12067
+ my: scaleMargin()
11879
12068
  }],
11880
12069
  /**
11881
12070
  * Margin Start
11882
12071
  * @see https://tailwindcss.com/docs/margin
11883
12072
  */
11884
12073
  ms: [{
11885
- ms: [margin]
12074
+ ms: scaleMargin()
11886
12075
  }],
11887
12076
  /**
11888
12077
  * Margin End
11889
12078
  * @see https://tailwindcss.com/docs/margin
11890
12079
  */
11891
12080
  me: [{
11892
- me: [margin]
12081
+ me: scaleMargin()
11893
12082
  }],
11894
12083
  /**
11895
12084
  * Margin Top
11896
12085
  * @see https://tailwindcss.com/docs/margin
11897
12086
  */
11898
12087
  mt: [{
11899
- mt: [margin]
12088
+ mt: scaleMargin()
11900
12089
  }],
11901
12090
  /**
11902
12091
  * Margin Right
11903
12092
  * @see https://tailwindcss.com/docs/margin
11904
12093
  */
11905
12094
  mr: [{
11906
- mr: [margin]
12095
+ mr: scaleMargin()
11907
12096
  }],
11908
12097
  /**
11909
12098
  * Margin Bottom
11910
12099
  * @see https://tailwindcss.com/docs/margin
11911
12100
  */
11912
12101
  mb: [{
11913
- mb: [margin]
12102
+ mb: scaleMargin()
11914
12103
  }],
11915
12104
  /**
11916
12105
  * Margin Left
11917
12106
  * @see https://tailwindcss.com/docs/margin
11918
12107
  */
11919
12108
  ml: [{
11920
- ml: [margin]
12109
+ ml: scaleMargin()
11921
12110
  }],
11922
12111
  /**
11923
12112
  * Space Between X
11924
- * @see https://tailwindcss.com/docs/space
12113
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
11925
12114
  */
11926
12115
  "space-x": [{
11927
- "space-x": [space]
12116
+ "space-x": scaleUnambiguousSpacing()
11928
12117
  }],
11929
12118
  /**
11930
12119
  * Space Between X Reverse
11931
- * @see https://tailwindcss.com/docs/space
12120
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
11932
12121
  */
11933
12122
  "space-x-reverse": ["space-x-reverse"],
11934
12123
  /**
11935
12124
  * Space Between Y
11936
- * @see https://tailwindcss.com/docs/space
12125
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
11937
12126
  */
11938
12127
  "space-y": [{
11939
- "space-y": [space]
12128
+ "space-y": scaleUnambiguousSpacing()
11940
12129
  }],
11941
12130
  /**
11942
12131
  * Space Between Y Reverse
11943
- * @see https://tailwindcss.com/docs/space
12132
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
11944
12133
  */
11945
12134
  "space-y-reverse": ["space-y-reverse"],
11946
- // Sizing
12135
+ // --------------
12136
+ // --- Sizing ---
12137
+ // --------------
12138
+ /**
12139
+ * Size
12140
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
12141
+ */
12142
+ size: [{
12143
+ size: scaleSizing()
12144
+ }],
11947
12145
  /**
11948
12146
  * Width
11949
12147
  * @see https://tailwindcss.com/docs/width
11950
12148
  */
11951
12149
  w: [{
11952
- w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", isArbitraryValue, spacing]
12150
+ w: [themeContainer, "screen", ...scaleSizing()]
11953
12151
  }],
11954
12152
  /**
11955
12153
  * Min-Width
11956
12154
  * @see https://tailwindcss.com/docs/min-width
11957
12155
  */
11958
12156
  "min-w": [{
11959
- "min-w": [isArbitraryValue, spacing, "min", "max", "fit"]
12157
+ "min-w": [
12158
+ themeContainer,
12159
+ "screen",
12160
+ /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
12161
+ "none",
12162
+ ...scaleSizing()
12163
+ ]
11960
12164
  }],
11961
12165
  /**
11962
12166
  * Max-Width
11963
12167
  * @see https://tailwindcss.com/docs/max-width
11964
12168
  */
11965
12169
  "max-w": [{
11966
- "max-w": [isArbitraryValue, spacing, "none", "full", "min", "max", "fit", "prose", {
11967
- screen: [isTshirtSize]
11968
- }, isTshirtSize]
12170
+ "max-w": [
12171
+ themeContainer,
12172
+ "screen",
12173
+ "none",
12174
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
12175
+ "prose",
12176
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
12177
+ {
12178
+ screen: [themeBreakpoint]
12179
+ },
12180
+ ...scaleSizing()
12181
+ ]
11969
12182
  }],
11970
12183
  /**
11971
12184
  * Height
11972
12185
  * @see https://tailwindcss.com/docs/height
11973
12186
  */
11974
12187
  h: [{
11975
- h: [isArbitraryValue, spacing, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
12188
+ h: ["screen", "lh", ...scaleSizing()]
11976
12189
  }],
11977
12190
  /**
11978
12191
  * Min-Height
11979
12192
  * @see https://tailwindcss.com/docs/min-height
11980
12193
  */
11981
12194
  "min-h": [{
11982
- "min-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
12195
+ "min-h": ["screen", "lh", "none", ...scaleSizing()]
11983
12196
  }],
11984
12197
  /**
11985
12198
  * Max-Height
11986
12199
  * @see https://tailwindcss.com/docs/max-height
11987
12200
  */
11988
12201
  "max-h": [{
11989
- "max-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
11990
- }],
11991
- /**
11992
- * Size
11993
- * @see https://tailwindcss.com/docs/size
11994
- */
11995
- size: [{
11996
- size: [isArbitraryValue, spacing, "auto", "min", "max", "fit"]
12202
+ "max-h": ["screen", "lh", ...scaleSizing()]
11997
12203
  }],
11998
- // Typography
12204
+ // ------------------
12205
+ // --- Typography ---
12206
+ // ------------------
11999
12207
  /**
12000
12208
  * Font Size
12001
12209
  * @see https://tailwindcss.com/docs/font-size
12002
12210
  */
12003
12211
  "font-size": [{
12004
- text: ["base", isTshirtSize, isArbitraryLength]
12212
+ text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
12005
12213
  }],
12006
12214
  /**
12007
12215
  * Font Smoothing
@@ -12018,14 +12226,21 @@ var getDefaultConfig = () => {
12018
12226
  * @see https://tailwindcss.com/docs/font-weight
12019
12227
  */
12020
12228
  "font-weight": [{
12021
- font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", isArbitraryNumber]
12229
+ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
12230
+ }],
12231
+ /**
12232
+ * Font Stretch
12233
+ * @see https://tailwindcss.com/docs/font-stretch
12234
+ */
12235
+ "font-stretch": [{
12236
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
12022
12237
  }],
12023
12238
  /**
12024
12239
  * Font Family
12025
12240
  * @see https://tailwindcss.com/docs/font-family
12026
12241
  */
12027
12242
  "font-family": [{
12028
- font: [isAny]
12243
+ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
12029
12244
  }],
12030
12245
  /**
12031
12246
  * Font Variant Numeric
@@ -12062,35 +12277,32 @@ var getDefaultConfig = () => {
12062
12277
  * @see https://tailwindcss.com/docs/letter-spacing
12063
12278
  */
12064
12279
  tracking: [{
12065
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", isArbitraryValue]
12280
+ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
12066
12281
  }],
12067
12282
  /**
12068
12283
  * Line Clamp
12069
12284
  * @see https://tailwindcss.com/docs/line-clamp
12070
12285
  */
12071
12286
  "line-clamp": [{
12072
- "line-clamp": ["none", isNumber, isArbitraryNumber]
12287
+ "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
12073
12288
  }],
12074
12289
  /**
12075
12290
  * Line Height
12076
12291
  * @see https://tailwindcss.com/docs/line-height
12077
12292
  */
12078
12293
  leading: [{
12079
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose", isLength, isArbitraryValue]
12294
+ leading: [
12295
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
12296
+ themeLeading,
12297
+ ...scaleUnambiguousSpacing()
12298
+ ]
12080
12299
  }],
12081
12300
  /**
12082
12301
  * List Style Image
12083
12302
  * @see https://tailwindcss.com/docs/list-style-image
12084
12303
  */
12085
12304
  "list-image": [{
12086
- "list-image": ["none", isArbitraryValue]
12087
- }],
12088
- /**
12089
- * List Style Type
12090
- * @see https://tailwindcss.com/docs/list-style-type
12091
- */
12092
- "list-style-type": [{
12093
- list: ["none", "disc", "decimal", isArbitraryValue]
12305
+ "list-image": ["none", isArbitraryVariable, isArbitraryValue]
12094
12306
  }],
12095
12307
  /**
12096
12308
  * List Style Position
@@ -12100,19 +12312,11 @@ var getDefaultConfig = () => {
12100
12312
  list: ["inside", "outside"]
12101
12313
  }],
12102
12314
  /**
12103
- * Placeholder Color
12104
- * @deprecated since Tailwind CSS v3.0.0
12105
- * @see https://tailwindcss.com/docs/placeholder-color
12106
- */
12107
- "placeholder-color": [{
12108
- placeholder: [colors]
12109
- }],
12110
- /**
12111
- * Placeholder Opacity
12112
- * @see https://tailwindcss.com/docs/placeholder-opacity
12315
+ * List Style Type
12316
+ * @see https://tailwindcss.com/docs/list-style-type
12113
12317
  */
12114
- "placeholder-opacity": [{
12115
- "placeholder-opacity": [opacity]
12318
+ "list-style-type": [{
12319
+ list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
12116
12320
  }],
12117
12321
  /**
12118
12322
  * Text Alignment
@@ -12122,18 +12326,19 @@ var getDefaultConfig = () => {
12122
12326
  text: ["left", "center", "right", "justify", "start", "end"]
12123
12327
  }],
12124
12328
  /**
12125
- * Text Color
12126
- * @see https://tailwindcss.com/docs/text-color
12329
+ * Placeholder Color
12330
+ * @deprecated since Tailwind CSS v3.0.0
12331
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
12127
12332
  */
12128
- "text-color": [{
12129
- text: [colors]
12333
+ "placeholder-color": [{
12334
+ placeholder: scaleColor()
12130
12335
  }],
12131
12336
  /**
12132
- * Text Opacity
12133
- * @see https://tailwindcss.com/docs/text-opacity
12337
+ * Text Color
12338
+ * @see https://tailwindcss.com/docs/text-color
12134
12339
  */
12135
- "text-opacity": [{
12136
- "text-opacity": [opacity]
12340
+ "text-color": [{
12341
+ text: scaleColor()
12137
12342
  }],
12138
12343
  /**
12139
12344
  * Text Decoration
@@ -12145,28 +12350,28 @@ var getDefaultConfig = () => {
12145
12350
  * @see https://tailwindcss.com/docs/text-decoration-style
12146
12351
  */
12147
12352
  "text-decoration-style": [{
12148
- decoration: [...getLineStyles(), "wavy"]
12353
+ decoration: [...scaleLineStyle(), "wavy"]
12149
12354
  }],
12150
12355
  /**
12151
12356
  * Text Decoration Thickness
12152
12357
  * @see https://tailwindcss.com/docs/text-decoration-thickness
12153
12358
  */
12154
12359
  "text-decoration-thickness": [{
12155
- decoration: ["auto", "from-font", isLength, isArbitraryLength]
12156
- }],
12157
- /**
12158
- * Text Underline Offset
12159
- * @see https://tailwindcss.com/docs/text-underline-offset
12160
- */
12161
- "underline-offset": [{
12162
- "underline-offset": ["auto", isLength, isArbitraryValue]
12360
+ decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
12163
12361
  }],
12164
12362
  /**
12165
12363
  * Text Decoration Color
12166
12364
  * @see https://tailwindcss.com/docs/text-decoration-color
12167
12365
  */
12168
12366
  "text-decoration-color": [{
12169
- decoration: [colors]
12367
+ decoration: scaleColor()
12368
+ }],
12369
+ /**
12370
+ * Text Underline Offset
12371
+ * @see https://tailwindcss.com/docs/text-underline-offset
12372
+ */
12373
+ "underline-offset": [{
12374
+ "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
12170
12375
  }],
12171
12376
  /**
12172
12377
  * Text Transform
@@ -12190,14 +12395,14 @@ var getDefaultConfig = () => {
12190
12395
  * @see https://tailwindcss.com/docs/text-indent
12191
12396
  */
12192
12397
  indent: [{
12193
- indent: getSpacingWithArbitrary()
12398
+ indent: scaleUnambiguousSpacing()
12194
12399
  }],
12195
12400
  /**
12196
12401
  * Vertical Alignment
12197
12402
  * @see https://tailwindcss.com/docs/vertical-align
12198
12403
  */
12199
12404
  "vertical-align": [{
12200
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryValue]
12405
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
12201
12406
  }],
12202
12407
  /**
12203
12408
  * Whitespace
@@ -12213,6 +12418,13 @@ var getDefaultConfig = () => {
12213
12418
  break: [{
12214
12419
  break: ["normal", "words", "all", "keep"]
12215
12420
  }],
12421
+ /**
12422
+ * Overflow Wrap
12423
+ * @see https://tailwindcss.com/docs/overflow-wrap
12424
+ */
12425
+ wrap: [{
12426
+ wrap: ["break-word", "anywhere", "normal"]
12427
+ }],
12216
12428
  /**
12217
12429
  * Hyphens
12218
12430
  * @see https://tailwindcss.com/docs/hyphens
@@ -12225,9 +12437,11 @@ var getDefaultConfig = () => {
12225
12437
  * @see https://tailwindcss.com/docs/content
12226
12438
  */
12227
12439
  content: [{
12228
- content: ["none", isArbitraryValue]
12440
+ content: ["none", isArbitraryVariable, isArbitraryValue]
12229
12441
  }],
12230
- // Backgrounds
12442
+ // -------------------
12443
+ // --- Backgrounds ---
12444
+ // -------------------
12231
12445
  /**
12232
12446
  * Background Attachment
12233
12447
  * @see https://tailwindcss.com/docs/background-attachment
@@ -12242,14 +12456,6 @@ var getDefaultConfig = () => {
12242
12456
  "bg-clip": [{
12243
12457
  "bg-clip": ["border", "padding", "content", "text"]
12244
12458
  }],
12245
- /**
12246
- * Background Opacity
12247
- * @deprecated since Tailwind CSS v3.0.0
12248
- * @see https://tailwindcss.com/docs/background-opacity
12249
- */
12250
- "bg-opacity": [{
12251
- "bg-opacity": [opacity]
12252
- }],
12253
12459
  /**
12254
12460
  * Background Origin
12255
12461
  * @see https://tailwindcss.com/docs/background-origin
@@ -12262,23 +12468,21 @@ var getDefaultConfig = () => {
12262
12468
  * @see https://tailwindcss.com/docs/background-position
12263
12469
  */
12264
12470
  "bg-position": [{
12265
- bg: [...getPositions(), isArbitraryPosition]
12471
+ bg: scaleBgPosition()
12266
12472
  }],
12267
12473
  /**
12268
12474
  * Background Repeat
12269
12475
  * @see https://tailwindcss.com/docs/background-repeat
12270
12476
  */
12271
12477
  "bg-repeat": [{
12272
- bg: ["no-repeat", {
12273
- repeat: ["", "x", "y", "round", "space"]
12274
- }]
12478
+ bg: scaleBgRepeat()
12275
12479
  }],
12276
12480
  /**
12277
12481
  * Background Size
12278
12482
  * @see https://tailwindcss.com/docs/background-size
12279
12483
  */
12280
12484
  "bg-size": [{
12281
- bg: ["auto", "cover", "contain", isArbitrarySize]
12485
+ bg: scaleBgSize()
12282
12486
  }],
12283
12487
  /**
12284
12488
  * Background Image
@@ -12286,597 +12490,863 @@ var getDefaultConfig = () => {
12286
12490
  */
12287
12491
  "bg-image": [{
12288
12492
  bg: ["none", {
12289
- "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
12290
- }, isArbitraryImage]
12493
+ linear: [{
12494
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
12495
+ }, isInteger, isArbitraryVariable, isArbitraryValue],
12496
+ radial: ["", isArbitraryVariable, isArbitraryValue],
12497
+ conic: [isInteger, isArbitraryVariable, isArbitraryValue]
12498
+ }, isArbitraryVariableImage, isArbitraryImage]
12291
12499
  }],
12292
12500
  /**
12293
12501
  * Background Color
12294
12502
  * @see https://tailwindcss.com/docs/background-color
12295
12503
  */
12296
12504
  "bg-color": [{
12297
- bg: [colors]
12505
+ bg: scaleColor()
12298
12506
  }],
12299
12507
  /**
12300
12508
  * Gradient Color Stops From Position
12301
12509
  * @see https://tailwindcss.com/docs/gradient-color-stops
12302
12510
  */
12303
12511
  "gradient-from-pos": [{
12304
- from: [gradientColorStopPositions]
12512
+ from: scaleGradientStopPosition()
12305
12513
  }],
12306
12514
  /**
12307
12515
  * Gradient Color Stops Via Position
12308
12516
  * @see https://tailwindcss.com/docs/gradient-color-stops
12309
12517
  */
12310
12518
  "gradient-via-pos": [{
12311
- via: [gradientColorStopPositions]
12519
+ via: scaleGradientStopPosition()
12312
12520
  }],
12313
12521
  /**
12314
12522
  * Gradient Color Stops To Position
12315
12523
  * @see https://tailwindcss.com/docs/gradient-color-stops
12316
12524
  */
12317
12525
  "gradient-to-pos": [{
12318
- to: [gradientColorStopPositions]
12526
+ to: scaleGradientStopPosition()
12319
12527
  }],
12320
12528
  /**
12321
12529
  * Gradient Color Stops From
12322
12530
  * @see https://tailwindcss.com/docs/gradient-color-stops
12323
12531
  */
12324
12532
  "gradient-from": [{
12325
- from: [gradientColorStops]
12533
+ from: scaleColor()
12326
12534
  }],
12327
12535
  /**
12328
12536
  * Gradient Color Stops Via
12329
12537
  * @see https://tailwindcss.com/docs/gradient-color-stops
12330
12538
  */
12331
12539
  "gradient-via": [{
12332
- via: [gradientColorStops]
12540
+ via: scaleColor()
12333
12541
  }],
12334
12542
  /**
12335
12543
  * Gradient Color Stops To
12336
12544
  * @see https://tailwindcss.com/docs/gradient-color-stops
12337
12545
  */
12338
12546
  "gradient-to": [{
12339
- to: [gradientColorStops]
12547
+ to: scaleColor()
12340
12548
  }],
12341
- // Borders
12549
+ // ---------------
12550
+ // --- Borders ---
12551
+ // ---------------
12342
12552
  /**
12343
12553
  * Border Radius
12344
12554
  * @see https://tailwindcss.com/docs/border-radius
12345
12555
  */
12346
12556
  rounded: [{
12347
- rounded: [borderRadius]
12557
+ rounded: scaleRadius()
12348
12558
  }],
12349
12559
  /**
12350
12560
  * Border Radius Start
12351
12561
  * @see https://tailwindcss.com/docs/border-radius
12352
12562
  */
12353
12563
  "rounded-s": [{
12354
- "rounded-s": [borderRadius]
12564
+ "rounded-s": scaleRadius()
12355
12565
  }],
12356
12566
  /**
12357
12567
  * Border Radius End
12358
12568
  * @see https://tailwindcss.com/docs/border-radius
12359
12569
  */
12360
12570
  "rounded-e": [{
12361
- "rounded-e": [borderRadius]
12571
+ "rounded-e": scaleRadius()
12362
12572
  }],
12363
12573
  /**
12364
12574
  * Border Radius Top
12365
12575
  * @see https://tailwindcss.com/docs/border-radius
12366
12576
  */
12367
12577
  "rounded-t": [{
12368
- "rounded-t": [borderRadius]
12578
+ "rounded-t": scaleRadius()
12369
12579
  }],
12370
12580
  /**
12371
12581
  * Border Radius Right
12372
12582
  * @see https://tailwindcss.com/docs/border-radius
12373
12583
  */
12374
12584
  "rounded-r": [{
12375
- "rounded-r": [borderRadius]
12585
+ "rounded-r": scaleRadius()
12376
12586
  }],
12377
12587
  /**
12378
12588
  * Border Radius Bottom
12379
12589
  * @see https://tailwindcss.com/docs/border-radius
12380
12590
  */
12381
12591
  "rounded-b": [{
12382
- "rounded-b": [borderRadius]
12592
+ "rounded-b": scaleRadius()
12383
12593
  }],
12384
12594
  /**
12385
12595
  * Border Radius Left
12386
12596
  * @see https://tailwindcss.com/docs/border-radius
12387
12597
  */
12388
12598
  "rounded-l": [{
12389
- "rounded-l": [borderRadius]
12599
+ "rounded-l": scaleRadius()
12390
12600
  }],
12391
12601
  /**
12392
12602
  * Border Radius Start Start
12393
12603
  * @see https://tailwindcss.com/docs/border-radius
12394
12604
  */
12395
12605
  "rounded-ss": [{
12396
- "rounded-ss": [borderRadius]
12606
+ "rounded-ss": scaleRadius()
12397
12607
  }],
12398
12608
  /**
12399
12609
  * Border Radius Start End
12400
12610
  * @see https://tailwindcss.com/docs/border-radius
12401
12611
  */
12402
12612
  "rounded-se": [{
12403
- "rounded-se": [borderRadius]
12613
+ "rounded-se": scaleRadius()
12404
12614
  }],
12405
12615
  /**
12406
12616
  * Border Radius End End
12407
12617
  * @see https://tailwindcss.com/docs/border-radius
12408
12618
  */
12409
12619
  "rounded-ee": [{
12410
- "rounded-ee": [borderRadius]
12620
+ "rounded-ee": scaleRadius()
12411
12621
  }],
12412
12622
  /**
12413
12623
  * Border Radius End Start
12414
12624
  * @see https://tailwindcss.com/docs/border-radius
12415
12625
  */
12416
12626
  "rounded-es": [{
12417
- "rounded-es": [borderRadius]
12627
+ "rounded-es": scaleRadius()
12418
12628
  }],
12419
12629
  /**
12420
12630
  * Border Radius Top Left
12421
12631
  * @see https://tailwindcss.com/docs/border-radius
12422
12632
  */
12423
12633
  "rounded-tl": [{
12424
- "rounded-tl": [borderRadius]
12634
+ "rounded-tl": scaleRadius()
12425
12635
  }],
12426
12636
  /**
12427
12637
  * Border Radius Top Right
12428
12638
  * @see https://tailwindcss.com/docs/border-radius
12429
12639
  */
12430
12640
  "rounded-tr": [{
12431
- "rounded-tr": [borderRadius]
12641
+ "rounded-tr": scaleRadius()
12432
12642
  }],
12433
12643
  /**
12434
12644
  * Border Radius Bottom Right
12435
12645
  * @see https://tailwindcss.com/docs/border-radius
12436
12646
  */
12437
12647
  "rounded-br": [{
12438
- "rounded-br": [borderRadius]
12648
+ "rounded-br": scaleRadius()
12439
12649
  }],
12440
12650
  /**
12441
12651
  * Border Radius Bottom Left
12442
12652
  * @see https://tailwindcss.com/docs/border-radius
12443
12653
  */
12444
12654
  "rounded-bl": [{
12445
- "rounded-bl": [borderRadius]
12655
+ "rounded-bl": scaleRadius()
12446
12656
  }],
12447
12657
  /**
12448
12658
  * Border Width
12449
12659
  * @see https://tailwindcss.com/docs/border-width
12450
12660
  */
12451
12661
  "border-w": [{
12452
- border: [borderWidth]
12662
+ border: scaleBorderWidth()
12453
12663
  }],
12454
12664
  /**
12455
12665
  * Border Width X
12456
12666
  * @see https://tailwindcss.com/docs/border-width
12457
12667
  */
12458
12668
  "border-w-x": [{
12459
- "border-x": [borderWidth]
12669
+ "border-x": scaleBorderWidth()
12460
12670
  }],
12461
12671
  /**
12462
12672
  * Border Width Y
12463
12673
  * @see https://tailwindcss.com/docs/border-width
12464
12674
  */
12465
12675
  "border-w-y": [{
12466
- "border-y": [borderWidth]
12676
+ "border-y": scaleBorderWidth()
12467
12677
  }],
12468
12678
  /**
12469
12679
  * Border Width Start
12470
12680
  * @see https://tailwindcss.com/docs/border-width
12471
12681
  */
12472
12682
  "border-w-s": [{
12473
- "border-s": [borderWidth]
12683
+ "border-s": scaleBorderWidth()
12474
12684
  }],
12475
12685
  /**
12476
12686
  * Border Width End
12477
12687
  * @see https://tailwindcss.com/docs/border-width
12478
12688
  */
12479
12689
  "border-w-e": [{
12480
- "border-e": [borderWidth]
12690
+ "border-e": scaleBorderWidth()
12481
12691
  }],
12482
12692
  /**
12483
12693
  * Border Width Top
12484
12694
  * @see https://tailwindcss.com/docs/border-width
12485
12695
  */
12486
12696
  "border-w-t": [{
12487
- "border-t": [borderWidth]
12697
+ "border-t": scaleBorderWidth()
12488
12698
  }],
12489
12699
  /**
12490
12700
  * Border Width Right
12491
12701
  * @see https://tailwindcss.com/docs/border-width
12492
12702
  */
12493
12703
  "border-w-r": [{
12494
- "border-r": [borderWidth]
12704
+ "border-r": scaleBorderWidth()
12495
12705
  }],
12496
12706
  /**
12497
12707
  * Border Width Bottom
12498
12708
  * @see https://tailwindcss.com/docs/border-width
12499
12709
  */
12500
12710
  "border-w-b": [{
12501
- "border-b": [borderWidth]
12711
+ "border-b": scaleBorderWidth()
12502
12712
  }],
12503
12713
  /**
12504
12714
  * Border Width Left
12505
12715
  * @see https://tailwindcss.com/docs/border-width
12506
12716
  */
12507
12717
  "border-w-l": [{
12508
- "border-l": [borderWidth]
12509
- }],
12510
- /**
12511
- * Border Opacity
12512
- * @see https://tailwindcss.com/docs/border-opacity
12513
- */
12514
- "border-opacity": [{
12515
- "border-opacity": [opacity]
12516
- }],
12517
- /**
12518
- * Border Style
12519
- * @see https://tailwindcss.com/docs/border-style
12520
- */
12521
- "border-style": [{
12522
- border: [...getLineStyles(), "hidden"]
12718
+ "border-l": scaleBorderWidth()
12523
12719
  }],
12524
12720
  /**
12525
12721
  * Divide Width X
12526
- * @see https://tailwindcss.com/docs/divide-width
12722
+ * @see https://tailwindcss.com/docs/border-width#between-children
12527
12723
  */
12528
12724
  "divide-x": [{
12529
- "divide-x": [borderWidth]
12725
+ "divide-x": scaleBorderWidth()
12530
12726
  }],
12531
12727
  /**
12532
12728
  * Divide Width X Reverse
12533
- * @see https://tailwindcss.com/docs/divide-width
12729
+ * @see https://tailwindcss.com/docs/border-width#between-children
12534
12730
  */
12535
12731
  "divide-x-reverse": ["divide-x-reverse"],
12536
12732
  /**
12537
12733
  * Divide Width Y
12538
- * @see https://tailwindcss.com/docs/divide-width
12734
+ * @see https://tailwindcss.com/docs/border-width#between-children
12539
12735
  */
12540
12736
  "divide-y": [{
12541
- "divide-y": [borderWidth]
12737
+ "divide-y": scaleBorderWidth()
12542
12738
  }],
12543
12739
  /**
12544
12740
  * Divide Width Y Reverse
12545
- * @see https://tailwindcss.com/docs/divide-width
12741
+ * @see https://tailwindcss.com/docs/border-width#between-children
12546
12742
  */
12547
12743
  "divide-y-reverse": ["divide-y-reverse"],
12548
12744
  /**
12549
- * Divide Opacity
12550
- * @see https://tailwindcss.com/docs/divide-opacity
12745
+ * Border Style
12746
+ * @see https://tailwindcss.com/docs/border-style
12551
12747
  */
12552
- "divide-opacity": [{
12553
- "divide-opacity": [opacity]
12748
+ "border-style": [{
12749
+ border: [...scaleLineStyle(), "hidden", "none"]
12554
12750
  }],
12555
12751
  /**
12556
12752
  * Divide Style
12557
- * @see https://tailwindcss.com/docs/divide-style
12753
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
12558
12754
  */
12559
12755
  "divide-style": [{
12560
- divide: getLineStyles()
12756
+ divide: [...scaleLineStyle(), "hidden", "none"]
12561
12757
  }],
12562
12758
  /**
12563
12759
  * Border Color
12564
12760
  * @see https://tailwindcss.com/docs/border-color
12565
12761
  */
12566
12762
  "border-color": [{
12567
- border: [borderColor]
12763
+ border: scaleColor()
12568
12764
  }],
12569
12765
  /**
12570
12766
  * Border Color X
12571
12767
  * @see https://tailwindcss.com/docs/border-color
12572
12768
  */
12573
12769
  "border-color-x": [{
12574
- "border-x": [borderColor]
12770
+ "border-x": scaleColor()
12575
12771
  }],
12576
12772
  /**
12577
12773
  * Border Color Y
12578
12774
  * @see https://tailwindcss.com/docs/border-color
12579
12775
  */
12580
12776
  "border-color-y": [{
12581
- "border-y": [borderColor]
12777
+ "border-y": scaleColor()
12582
12778
  }],
12583
12779
  /**
12584
12780
  * Border Color S
12585
12781
  * @see https://tailwindcss.com/docs/border-color
12586
12782
  */
12587
12783
  "border-color-s": [{
12588
- "border-s": [borderColor]
12784
+ "border-s": scaleColor()
12589
12785
  }],
12590
12786
  /**
12591
12787
  * Border Color E
12592
12788
  * @see https://tailwindcss.com/docs/border-color
12593
12789
  */
12594
12790
  "border-color-e": [{
12595
- "border-e": [borderColor]
12791
+ "border-e": scaleColor()
12596
12792
  }],
12597
12793
  /**
12598
12794
  * Border Color Top
12599
12795
  * @see https://tailwindcss.com/docs/border-color
12600
12796
  */
12601
12797
  "border-color-t": [{
12602
- "border-t": [borderColor]
12798
+ "border-t": scaleColor()
12603
12799
  }],
12604
12800
  /**
12605
12801
  * Border Color Right
12606
12802
  * @see https://tailwindcss.com/docs/border-color
12607
12803
  */
12608
12804
  "border-color-r": [{
12609
- "border-r": [borderColor]
12805
+ "border-r": scaleColor()
12610
12806
  }],
12611
12807
  /**
12612
12808
  * Border Color Bottom
12613
12809
  * @see https://tailwindcss.com/docs/border-color
12614
12810
  */
12615
12811
  "border-color-b": [{
12616
- "border-b": [borderColor]
12812
+ "border-b": scaleColor()
12617
12813
  }],
12618
12814
  /**
12619
12815
  * Border Color Left
12620
12816
  * @see https://tailwindcss.com/docs/border-color
12621
12817
  */
12622
12818
  "border-color-l": [{
12623
- "border-l": [borderColor]
12819
+ "border-l": scaleColor()
12624
12820
  }],
12625
12821
  /**
12626
12822
  * Divide Color
12627
12823
  * @see https://tailwindcss.com/docs/divide-color
12628
12824
  */
12629
12825
  "divide-color": [{
12630
- divide: [borderColor]
12826
+ divide: scaleColor()
12631
12827
  }],
12632
12828
  /**
12633
12829
  * Outline Style
12634
12830
  * @see https://tailwindcss.com/docs/outline-style
12635
12831
  */
12636
12832
  "outline-style": [{
12637
- outline: ["", ...getLineStyles()]
12833
+ outline: [...scaleLineStyle(), "none", "hidden"]
12638
12834
  }],
12639
12835
  /**
12640
12836
  * Outline Offset
12641
12837
  * @see https://tailwindcss.com/docs/outline-offset
12642
12838
  */
12643
12839
  "outline-offset": [{
12644
- "outline-offset": [isLength, isArbitraryValue]
12840
+ "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
12645
12841
  }],
12646
12842
  /**
12647
12843
  * Outline Width
12648
12844
  * @see https://tailwindcss.com/docs/outline-width
12649
12845
  */
12650
12846
  "outline-w": [{
12651
- outline: [isLength, isArbitraryLength]
12847
+ outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
12652
12848
  }],
12653
12849
  /**
12654
12850
  * Outline Color
12655
12851
  * @see https://tailwindcss.com/docs/outline-color
12656
12852
  */
12657
12853
  "outline-color": [{
12658
- outline: [colors]
12854
+ outline: scaleColor()
12855
+ }],
12856
+ // ---------------
12857
+ // --- Effects ---
12858
+ // ---------------
12859
+ /**
12860
+ * Box Shadow
12861
+ * @see https://tailwindcss.com/docs/box-shadow
12862
+ */
12863
+ shadow: [{
12864
+ shadow: [
12865
+ // Deprecated since Tailwind CSS v4.0.0
12866
+ "",
12867
+ "none",
12868
+ themeShadow,
12869
+ isArbitraryVariableShadow,
12870
+ isArbitraryShadow
12871
+ ]
12872
+ }],
12873
+ /**
12874
+ * Box Shadow Color
12875
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
12876
+ */
12877
+ "shadow-color": [{
12878
+ shadow: scaleColor()
12879
+ }],
12880
+ /**
12881
+ * Inset Box Shadow
12882
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
12883
+ */
12884
+ "inset-shadow": [{
12885
+ "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
12886
+ }],
12887
+ /**
12888
+ * Inset Box Shadow Color
12889
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
12890
+ */
12891
+ "inset-shadow-color": [{
12892
+ "inset-shadow": scaleColor()
12659
12893
  }],
12660
12894
  /**
12661
12895
  * Ring Width
12662
- * @see https://tailwindcss.com/docs/ring-width
12896
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
12663
12897
  */
12664
12898
  "ring-w": [{
12665
- ring: getLengthWithEmptyAndArbitrary()
12899
+ ring: scaleBorderWidth()
12666
12900
  }],
12667
12901
  /**
12668
12902
  * Ring Width Inset
12669
- * @see https://tailwindcss.com/docs/ring-width
12903
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
12904
+ * @deprecated since Tailwind CSS v4.0.0
12905
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
12670
12906
  */
12671
12907
  "ring-w-inset": ["ring-inset"],
12672
12908
  /**
12673
12909
  * Ring Color
12674
- * @see https://tailwindcss.com/docs/ring-color
12910
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
12675
12911
  */
12676
12912
  "ring-color": [{
12677
- ring: [colors]
12678
- }],
12679
- /**
12680
- * Ring Opacity
12681
- * @see https://tailwindcss.com/docs/ring-opacity
12682
- */
12683
- "ring-opacity": [{
12684
- "ring-opacity": [opacity]
12913
+ ring: scaleColor()
12685
12914
  }],
12686
12915
  /**
12687
12916
  * Ring Offset Width
12688
- * @see https://tailwindcss.com/docs/ring-offset-width
12917
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
12918
+ * @deprecated since Tailwind CSS v4.0.0
12919
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
12689
12920
  */
12690
12921
  "ring-offset-w": [{
12691
- "ring-offset": [isLength, isArbitraryLength]
12922
+ "ring-offset": [isNumber, isArbitraryLength]
12692
12923
  }],
12693
12924
  /**
12694
12925
  * Ring Offset Color
12695
- * @see https://tailwindcss.com/docs/ring-offset-color
12926
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
12927
+ * @deprecated since Tailwind CSS v4.0.0
12928
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
12696
12929
  */
12697
12930
  "ring-offset-color": [{
12698
- "ring-offset": [colors]
12931
+ "ring-offset": scaleColor()
12699
12932
  }],
12700
- // Effects
12701
12933
  /**
12702
- * Box Shadow
12703
- * @see https://tailwindcss.com/docs/box-shadow
12934
+ * Inset Ring Width
12935
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
12704
12936
  */
12705
- shadow: [{
12706
- shadow: ["", "inner", "none", isTshirtSize, isArbitraryShadow]
12937
+ "inset-ring-w": [{
12938
+ "inset-ring": scaleBorderWidth()
12707
12939
  }],
12708
12940
  /**
12709
- * Box Shadow Color
12710
- * @see https://tailwindcss.com/docs/box-shadow-color
12941
+ * Inset Ring Color
12942
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
12711
12943
  */
12712
- "shadow-color": [{
12713
- shadow: [isAny]
12944
+ "inset-ring-color": [{
12945
+ "inset-ring": scaleColor()
12946
+ }],
12947
+ /**
12948
+ * Text Shadow
12949
+ * @see https://tailwindcss.com/docs/text-shadow
12950
+ */
12951
+ "text-shadow": [{
12952
+ "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
12953
+ }],
12954
+ /**
12955
+ * Text Shadow Color
12956
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
12957
+ */
12958
+ "text-shadow-color": [{
12959
+ "text-shadow": scaleColor()
12714
12960
  }],
12715
12961
  /**
12716
12962
  * Opacity
12717
12963
  * @see https://tailwindcss.com/docs/opacity
12718
12964
  */
12719
12965
  opacity: [{
12720
- opacity: [opacity]
12966
+ opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
12721
12967
  }],
12722
12968
  /**
12723
12969
  * Mix Blend Mode
12724
12970
  * @see https://tailwindcss.com/docs/mix-blend-mode
12725
12971
  */
12726
12972
  "mix-blend": [{
12727
- "mix-blend": [...getBlendModes(), "plus-lighter", "plus-darker"]
12973
+ "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
12728
12974
  }],
12729
12975
  /**
12730
12976
  * Background Blend Mode
12731
12977
  * @see https://tailwindcss.com/docs/background-blend-mode
12732
12978
  */
12733
12979
  "bg-blend": [{
12734
- "bg-blend": getBlendModes()
12980
+ "bg-blend": scaleBlendMode()
12981
+ }],
12982
+ /**
12983
+ * Mask Clip
12984
+ * @see https://tailwindcss.com/docs/mask-clip
12985
+ */
12986
+ "mask-clip": [{
12987
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
12988
+ }, "mask-no-clip"],
12989
+ /**
12990
+ * Mask Composite
12991
+ * @see https://tailwindcss.com/docs/mask-composite
12992
+ */
12993
+ "mask-composite": [{
12994
+ mask: ["add", "subtract", "intersect", "exclude"]
12995
+ }],
12996
+ /**
12997
+ * Mask Image
12998
+ * @see https://tailwindcss.com/docs/mask-image
12999
+ */
13000
+ "mask-image-linear-pos": [{
13001
+ "mask-linear": [isNumber]
13002
+ }],
13003
+ "mask-image-linear-from-pos": [{
13004
+ "mask-linear-from": scaleMaskImagePosition()
13005
+ }],
13006
+ "mask-image-linear-to-pos": [{
13007
+ "mask-linear-to": scaleMaskImagePosition()
13008
+ }],
13009
+ "mask-image-linear-from-color": [{
13010
+ "mask-linear-from": scaleColor()
13011
+ }],
13012
+ "mask-image-linear-to-color": [{
13013
+ "mask-linear-to": scaleColor()
13014
+ }],
13015
+ "mask-image-t-from-pos": [{
13016
+ "mask-t-from": scaleMaskImagePosition()
13017
+ }],
13018
+ "mask-image-t-to-pos": [{
13019
+ "mask-t-to": scaleMaskImagePosition()
13020
+ }],
13021
+ "mask-image-t-from-color": [{
13022
+ "mask-t-from": scaleColor()
13023
+ }],
13024
+ "mask-image-t-to-color": [{
13025
+ "mask-t-to": scaleColor()
13026
+ }],
13027
+ "mask-image-r-from-pos": [{
13028
+ "mask-r-from": scaleMaskImagePosition()
13029
+ }],
13030
+ "mask-image-r-to-pos": [{
13031
+ "mask-r-to": scaleMaskImagePosition()
13032
+ }],
13033
+ "mask-image-r-from-color": [{
13034
+ "mask-r-from": scaleColor()
13035
+ }],
13036
+ "mask-image-r-to-color": [{
13037
+ "mask-r-to": scaleColor()
13038
+ }],
13039
+ "mask-image-b-from-pos": [{
13040
+ "mask-b-from": scaleMaskImagePosition()
13041
+ }],
13042
+ "mask-image-b-to-pos": [{
13043
+ "mask-b-to": scaleMaskImagePosition()
13044
+ }],
13045
+ "mask-image-b-from-color": [{
13046
+ "mask-b-from": scaleColor()
13047
+ }],
13048
+ "mask-image-b-to-color": [{
13049
+ "mask-b-to": scaleColor()
13050
+ }],
13051
+ "mask-image-l-from-pos": [{
13052
+ "mask-l-from": scaleMaskImagePosition()
13053
+ }],
13054
+ "mask-image-l-to-pos": [{
13055
+ "mask-l-to": scaleMaskImagePosition()
13056
+ }],
13057
+ "mask-image-l-from-color": [{
13058
+ "mask-l-from": scaleColor()
13059
+ }],
13060
+ "mask-image-l-to-color": [{
13061
+ "mask-l-to": scaleColor()
13062
+ }],
13063
+ "mask-image-x-from-pos": [{
13064
+ "mask-x-from": scaleMaskImagePosition()
13065
+ }],
13066
+ "mask-image-x-to-pos": [{
13067
+ "mask-x-to": scaleMaskImagePosition()
13068
+ }],
13069
+ "mask-image-x-from-color": [{
13070
+ "mask-x-from": scaleColor()
13071
+ }],
13072
+ "mask-image-x-to-color": [{
13073
+ "mask-x-to": scaleColor()
13074
+ }],
13075
+ "mask-image-y-from-pos": [{
13076
+ "mask-y-from": scaleMaskImagePosition()
13077
+ }],
13078
+ "mask-image-y-to-pos": [{
13079
+ "mask-y-to": scaleMaskImagePosition()
13080
+ }],
13081
+ "mask-image-y-from-color": [{
13082
+ "mask-y-from": scaleColor()
13083
+ }],
13084
+ "mask-image-y-to-color": [{
13085
+ "mask-y-to": scaleColor()
13086
+ }],
13087
+ "mask-image-radial": [{
13088
+ "mask-radial": [isArbitraryVariable, isArbitraryValue]
13089
+ }],
13090
+ "mask-image-radial-from-pos": [{
13091
+ "mask-radial-from": scaleMaskImagePosition()
13092
+ }],
13093
+ "mask-image-radial-to-pos": [{
13094
+ "mask-radial-to": scaleMaskImagePosition()
13095
+ }],
13096
+ "mask-image-radial-from-color": [{
13097
+ "mask-radial-from": scaleColor()
13098
+ }],
13099
+ "mask-image-radial-to-color": [{
13100
+ "mask-radial-to": scaleColor()
13101
+ }],
13102
+ "mask-image-radial-shape": [{
13103
+ "mask-radial": ["circle", "ellipse"]
13104
+ }],
13105
+ "mask-image-radial-size": [{
13106
+ "mask-radial": [{
13107
+ closest: ["side", "corner"],
13108
+ farthest: ["side", "corner"]
13109
+ }]
13110
+ }],
13111
+ "mask-image-radial-pos": [{
13112
+ "mask-radial-at": scalePosition()
13113
+ }],
13114
+ "mask-image-conic-pos": [{
13115
+ "mask-conic": [isNumber]
13116
+ }],
13117
+ "mask-image-conic-from-pos": [{
13118
+ "mask-conic-from": scaleMaskImagePosition()
13119
+ }],
13120
+ "mask-image-conic-to-pos": [{
13121
+ "mask-conic-to": scaleMaskImagePosition()
13122
+ }],
13123
+ "mask-image-conic-from-color": [{
13124
+ "mask-conic-from": scaleColor()
13125
+ }],
13126
+ "mask-image-conic-to-color": [{
13127
+ "mask-conic-to": scaleColor()
13128
+ }],
13129
+ /**
13130
+ * Mask Mode
13131
+ * @see https://tailwindcss.com/docs/mask-mode
13132
+ */
13133
+ "mask-mode": [{
13134
+ mask: ["alpha", "luminance", "match"]
13135
+ }],
13136
+ /**
13137
+ * Mask Origin
13138
+ * @see https://tailwindcss.com/docs/mask-origin
13139
+ */
13140
+ "mask-origin": [{
13141
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
13142
+ }],
13143
+ /**
13144
+ * Mask Position
13145
+ * @see https://tailwindcss.com/docs/mask-position
13146
+ */
13147
+ "mask-position": [{
13148
+ mask: scaleBgPosition()
13149
+ }],
13150
+ /**
13151
+ * Mask Repeat
13152
+ * @see https://tailwindcss.com/docs/mask-repeat
13153
+ */
13154
+ "mask-repeat": [{
13155
+ mask: scaleBgRepeat()
13156
+ }],
13157
+ /**
13158
+ * Mask Size
13159
+ * @see https://tailwindcss.com/docs/mask-size
13160
+ */
13161
+ "mask-size": [{
13162
+ mask: scaleBgSize()
13163
+ }],
13164
+ /**
13165
+ * Mask Type
13166
+ * @see https://tailwindcss.com/docs/mask-type
13167
+ */
13168
+ "mask-type": [{
13169
+ "mask-type": ["alpha", "luminance"]
13170
+ }],
13171
+ /**
13172
+ * Mask Image
13173
+ * @see https://tailwindcss.com/docs/mask-image
13174
+ */
13175
+ "mask-image": [{
13176
+ mask: ["none", isArbitraryVariable, isArbitraryValue]
12735
13177
  }],
12736
- // Filters
13178
+ // ---------------
13179
+ // --- Filters ---
13180
+ // ---------------
12737
13181
  /**
12738
13182
  * Filter
12739
- * @deprecated since Tailwind CSS v3.0.0
12740
13183
  * @see https://tailwindcss.com/docs/filter
12741
13184
  */
12742
13185
  filter: [{
12743
- filter: ["", "none"]
13186
+ filter: [
13187
+ // Deprecated since Tailwind CSS v3.0.0
13188
+ "",
13189
+ "none",
13190
+ isArbitraryVariable,
13191
+ isArbitraryValue
13192
+ ]
12744
13193
  }],
12745
13194
  /**
12746
13195
  * Blur
12747
13196
  * @see https://tailwindcss.com/docs/blur
12748
13197
  */
12749
13198
  blur: [{
12750
- blur: [blur]
13199
+ blur: scaleBlur()
12751
13200
  }],
12752
13201
  /**
12753
13202
  * Brightness
12754
13203
  * @see https://tailwindcss.com/docs/brightness
12755
13204
  */
12756
13205
  brightness: [{
12757
- brightness: [brightness]
13206
+ brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
12758
13207
  }],
12759
13208
  /**
12760
13209
  * Contrast
12761
13210
  * @see https://tailwindcss.com/docs/contrast
12762
13211
  */
12763
13212
  contrast: [{
12764
- contrast: [contrast]
13213
+ contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
12765
13214
  }],
12766
13215
  /**
12767
13216
  * Drop Shadow
12768
13217
  * @see https://tailwindcss.com/docs/drop-shadow
12769
13218
  */
12770
13219
  "drop-shadow": [{
12771
- "drop-shadow": ["", "none", isTshirtSize, isArbitraryValue]
13220
+ "drop-shadow": [
13221
+ // Deprecated since Tailwind CSS v4.0.0
13222
+ "",
13223
+ "none",
13224
+ themeDropShadow,
13225
+ isArbitraryVariableShadow,
13226
+ isArbitraryShadow
13227
+ ]
13228
+ }],
13229
+ /**
13230
+ * Drop Shadow Color
13231
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
13232
+ */
13233
+ "drop-shadow-color": [{
13234
+ "drop-shadow": scaleColor()
12772
13235
  }],
12773
13236
  /**
12774
13237
  * Grayscale
12775
13238
  * @see https://tailwindcss.com/docs/grayscale
12776
13239
  */
12777
13240
  grayscale: [{
12778
- grayscale: [grayscale]
13241
+ grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
12779
13242
  }],
12780
13243
  /**
12781
13244
  * Hue Rotate
12782
13245
  * @see https://tailwindcss.com/docs/hue-rotate
12783
13246
  */
12784
13247
  "hue-rotate": [{
12785
- "hue-rotate": [hueRotate]
13248
+ "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
12786
13249
  }],
12787
13250
  /**
12788
13251
  * Invert
12789
13252
  * @see https://tailwindcss.com/docs/invert
12790
13253
  */
12791
13254
  invert: [{
12792
- invert: [invert]
13255
+ invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
12793
13256
  }],
12794
13257
  /**
12795
13258
  * Saturate
12796
13259
  * @see https://tailwindcss.com/docs/saturate
12797
13260
  */
12798
13261
  saturate: [{
12799
- saturate: [saturate]
13262
+ saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
12800
13263
  }],
12801
13264
  /**
12802
13265
  * Sepia
12803
13266
  * @see https://tailwindcss.com/docs/sepia
12804
13267
  */
12805
13268
  sepia: [{
12806
- sepia: [sepia]
13269
+ sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
12807
13270
  }],
12808
13271
  /**
12809
13272
  * Backdrop Filter
12810
- * @deprecated since Tailwind CSS v3.0.0
12811
13273
  * @see https://tailwindcss.com/docs/backdrop-filter
12812
13274
  */
12813
13275
  "backdrop-filter": [{
12814
- "backdrop-filter": ["", "none"]
13276
+ "backdrop-filter": [
13277
+ // Deprecated since Tailwind CSS v3.0.0
13278
+ "",
13279
+ "none",
13280
+ isArbitraryVariable,
13281
+ isArbitraryValue
13282
+ ]
12815
13283
  }],
12816
13284
  /**
12817
13285
  * Backdrop Blur
12818
13286
  * @see https://tailwindcss.com/docs/backdrop-blur
12819
13287
  */
12820
13288
  "backdrop-blur": [{
12821
- "backdrop-blur": [blur]
13289
+ "backdrop-blur": scaleBlur()
12822
13290
  }],
12823
13291
  /**
12824
13292
  * Backdrop Brightness
12825
13293
  * @see https://tailwindcss.com/docs/backdrop-brightness
12826
13294
  */
12827
13295
  "backdrop-brightness": [{
12828
- "backdrop-brightness": [brightness]
13296
+ "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
12829
13297
  }],
12830
13298
  /**
12831
13299
  * Backdrop Contrast
12832
13300
  * @see https://tailwindcss.com/docs/backdrop-contrast
12833
13301
  */
12834
13302
  "backdrop-contrast": [{
12835
- "backdrop-contrast": [contrast]
13303
+ "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
12836
13304
  }],
12837
13305
  /**
12838
13306
  * Backdrop Grayscale
12839
13307
  * @see https://tailwindcss.com/docs/backdrop-grayscale
12840
13308
  */
12841
13309
  "backdrop-grayscale": [{
12842
- "backdrop-grayscale": [grayscale]
13310
+ "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
12843
13311
  }],
12844
13312
  /**
12845
13313
  * Backdrop Hue Rotate
12846
13314
  * @see https://tailwindcss.com/docs/backdrop-hue-rotate
12847
13315
  */
12848
13316
  "backdrop-hue-rotate": [{
12849
- "backdrop-hue-rotate": [hueRotate]
13317
+ "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
12850
13318
  }],
12851
13319
  /**
12852
13320
  * Backdrop Invert
12853
13321
  * @see https://tailwindcss.com/docs/backdrop-invert
12854
13322
  */
12855
13323
  "backdrop-invert": [{
12856
- "backdrop-invert": [invert]
13324
+ "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
12857
13325
  }],
12858
13326
  /**
12859
13327
  * Backdrop Opacity
12860
13328
  * @see https://tailwindcss.com/docs/backdrop-opacity
12861
13329
  */
12862
13330
  "backdrop-opacity": [{
12863
- "backdrop-opacity": [opacity]
13331
+ "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
12864
13332
  }],
12865
13333
  /**
12866
13334
  * Backdrop Saturate
12867
13335
  * @see https://tailwindcss.com/docs/backdrop-saturate
12868
13336
  */
12869
13337
  "backdrop-saturate": [{
12870
- "backdrop-saturate": [saturate]
13338
+ "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
12871
13339
  }],
12872
13340
  /**
12873
13341
  * Backdrop Sepia
12874
13342
  * @see https://tailwindcss.com/docs/backdrop-sepia
12875
13343
  */
12876
13344
  "backdrop-sepia": [{
12877
- "backdrop-sepia": [sepia]
13345
+ "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
12878
13346
  }],
12879
- // Tables
13347
+ // --------------
13348
+ // --- Tables ---
13349
+ // --------------
12880
13350
  /**
12881
13351
  * Border Collapse
12882
13352
  * @see https://tailwindcss.com/docs/border-collapse
@@ -12889,21 +13359,21 @@ var getDefaultConfig = () => {
12889
13359
  * @see https://tailwindcss.com/docs/border-spacing
12890
13360
  */
12891
13361
  "border-spacing": [{
12892
- "border-spacing": [borderSpacing]
13362
+ "border-spacing": scaleUnambiguousSpacing()
12893
13363
  }],
12894
13364
  /**
12895
13365
  * Border Spacing X
12896
13366
  * @see https://tailwindcss.com/docs/border-spacing
12897
13367
  */
12898
13368
  "border-spacing-x": [{
12899
- "border-spacing-x": [borderSpacing]
13369
+ "border-spacing-x": scaleUnambiguousSpacing()
12900
13370
  }],
12901
13371
  /**
12902
13372
  * Border Spacing Y
12903
13373
  * @see https://tailwindcss.com/docs/border-spacing
12904
13374
  */
12905
13375
  "border-spacing-y": [{
12906
- "border-spacing-y": [borderSpacing]
13376
+ "border-spacing-y": scaleUnambiguousSpacing()
12907
13377
  }],
12908
13378
  /**
12909
13379
  * Table Layout
@@ -12919,120 +13389,220 @@ var getDefaultConfig = () => {
12919
13389
  caption: [{
12920
13390
  caption: ["top", "bottom"]
12921
13391
  }],
12922
- // Transitions and Animation
13392
+ // ---------------------------------
13393
+ // --- Transitions and Animation ---
13394
+ // ---------------------------------
12923
13395
  /**
12924
- * Tranisition Property
13396
+ * Transition Property
12925
13397
  * @see https://tailwindcss.com/docs/transition-property
12926
13398
  */
12927
13399
  transition: [{
12928
- transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", isArbitraryValue]
13400
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
13401
+ }],
13402
+ /**
13403
+ * Transition Behavior
13404
+ * @see https://tailwindcss.com/docs/transition-behavior
13405
+ */
13406
+ "transition-behavior": [{
13407
+ transition: ["normal", "discrete"]
12929
13408
  }],
12930
13409
  /**
12931
13410
  * Transition Duration
12932
13411
  * @see https://tailwindcss.com/docs/transition-duration
12933
13412
  */
12934
13413
  duration: [{
12935
- duration: getNumberAndArbitrary()
13414
+ duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
12936
13415
  }],
12937
13416
  /**
12938
13417
  * Transition Timing Function
12939
13418
  * @see https://tailwindcss.com/docs/transition-timing-function
12940
13419
  */
12941
13420
  ease: [{
12942
- ease: ["linear", "in", "out", "in-out", isArbitraryValue]
13421
+ ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
12943
13422
  }],
12944
13423
  /**
12945
13424
  * Transition Delay
12946
13425
  * @see https://tailwindcss.com/docs/transition-delay
12947
13426
  */
12948
13427
  delay: [{
12949
- delay: getNumberAndArbitrary()
13428
+ delay: [isNumber, isArbitraryVariable, isArbitraryValue]
12950
13429
  }],
12951
13430
  /**
12952
13431
  * Animation
12953
13432
  * @see https://tailwindcss.com/docs/animation
12954
13433
  */
12955
13434
  animate: [{
12956
- animate: ["none", "spin", "ping", "pulse", "bounce", isArbitraryValue]
13435
+ animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
12957
13436
  }],
12958
- // Transforms
13437
+ // ------------------
13438
+ // --- Transforms ---
13439
+ // ------------------
12959
13440
  /**
12960
- * Transform
12961
- * @see https://tailwindcss.com/docs/transform
13441
+ * Backface Visibility
13442
+ * @see https://tailwindcss.com/docs/backface-visibility
12962
13443
  */
12963
- transform: [{
12964
- transform: ["", "gpu", "none"]
13444
+ backface: [{
13445
+ backface: ["hidden", "visible"]
13446
+ }],
13447
+ /**
13448
+ * Perspective
13449
+ * @see https://tailwindcss.com/docs/perspective
13450
+ */
13451
+ perspective: [{
13452
+ perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
13453
+ }],
13454
+ /**
13455
+ * Perspective Origin
13456
+ * @see https://tailwindcss.com/docs/perspective-origin
13457
+ */
13458
+ "perspective-origin": [{
13459
+ "perspective-origin": scalePositionWithArbitrary()
13460
+ }],
13461
+ /**
13462
+ * Rotate
13463
+ * @see https://tailwindcss.com/docs/rotate
13464
+ */
13465
+ rotate: [{
13466
+ rotate: scaleRotate()
13467
+ }],
13468
+ /**
13469
+ * Rotate X
13470
+ * @see https://tailwindcss.com/docs/rotate
13471
+ */
13472
+ "rotate-x": [{
13473
+ "rotate-x": scaleRotate()
13474
+ }],
13475
+ /**
13476
+ * Rotate Y
13477
+ * @see https://tailwindcss.com/docs/rotate
13478
+ */
13479
+ "rotate-y": [{
13480
+ "rotate-y": scaleRotate()
13481
+ }],
13482
+ /**
13483
+ * Rotate Z
13484
+ * @see https://tailwindcss.com/docs/rotate
13485
+ */
13486
+ "rotate-z": [{
13487
+ "rotate-z": scaleRotate()
12965
13488
  }],
12966
13489
  /**
12967
13490
  * Scale
12968
13491
  * @see https://tailwindcss.com/docs/scale
12969
13492
  */
12970
13493
  scale: [{
12971
- scale: [scale]
13494
+ scale: scaleScale()
12972
13495
  }],
12973
13496
  /**
12974
13497
  * Scale X
12975
13498
  * @see https://tailwindcss.com/docs/scale
12976
13499
  */
12977
13500
  "scale-x": [{
12978
- "scale-x": [scale]
13501
+ "scale-x": scaleScale()
12979
13502
  }],
12980
13503
  /**
12981
13504
  * Scale Y
12982
13505
  * @see https://tailwindcss.com/docs/scale
12983
13506
  */
12984
13507
  "scale-y": [{
12985
- "scale-y": [scale]
13508
+ "scale-y": scaleScale()
12986
13509
  }],
12987
13510
  /**
12988
- * Rotate
12989
- * @see https://tailwindcss.com/docs/rotate
13511
+ * Scale Z
13512
+ * @see https://tailwindcss.com/docs/scale
12990
13513
  */
12991
- rotate: [{
12992
- rotate: [isInteger, isArbitraryValue]
13514
+ "scale-z": [{
13515
+ "scale-z": scaleScale()
12993
13516
  }],
12994
13517
  /**
12995
- * Translate X
12996
- * @see https://tailwindcss.com/docs/translate
13518
+ * Scale 3D
13519
+ * @see https://tailwindcss.com/docs/scale
12997
13520
  */
12998
- "translate-x": [{
12999
- "translate-x": [translate]
13000
- }],
13521
+ "scale-3d": ["scale-3d"],
13001
13522
  /**
13002
- * Translate Y
13003
- * @see https://tailwindcss.com/docs/translate
13523
+ * Skew
13524
+ * @see https://tailwindcss.com/docs/skew
13004
13525
  */
13005
- "translate-y": [{
13006
- "translate-y": [translate]
13526
+ skew: [{
13527
+ skew: scaleSkew()
13007
13528
  }],
13008
13529
  /**
13009
13530
  * Skew X
13010
13531
  * @see https://tailwindcss.com/docs/skew
13011
13532
  */
13012
13533
  "skew-x": [{
13013
- "skew-x": [skew]
13534
+ "skew-x": scaleSkew()
13014
13535
  }],
13015
13536
  /**
13016
13537
  * Skew Y
13017
13538
  * @see https://tailwindcss.com/docs/skew
13018
13539
  */
13019
13540
  "skew-y": [{
13020
- "skew-y": [skew]
13541
+ "skew-y": scaleSkew()
13542
+ }],
13543
+ /**
13544
+ * Transform
13545
+ * @see https://tailwindcss.com/docs/transform
13546
+ */
13547
+ transform: [{
13548
+ transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
13021
13549
  }],
13022
13550
  /**
13023
13551
  * Transform Origin
13024
13552
  * @see https://tailwindcss.com/docs/transform-origin
13025
13553
  */
13026
13554
  "transform-origin": [{
13027
- origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", isArbitraryValue]
13555
+ origin: scalePositionWithArbitrary()
13556
+ }],
13557
+ /**
13558
+ * Transform Style
13559
+ * @see https://tailwindcss.com/docs/transform-style
13560
+ */
13561
+ "transform-style": [{
13562
+ transform: ["3d", "flat"]
13563
+ }],
13564
+ /**
13565
+ * Translate
13566
+ * @see https://tailwindcss.com/docs/translate
13567
+ */
13568
+ translate: [{
13569
+ translate: scaleTranslate()
13570
+ }],
13571
+ /**
13572
+ * Translate X
13573
+ * @see https://tailwindcss.com/docs/translate
13574
+ */
13575
+ "translate-x": [{
13576
+ "translate-x": scaleTranslate()
13577
+ }],
13578
+ /**
13579
+ * Translate Y
13580
+ * @see https://tailwindcss.com/docs/translate
13581
+ */
13582
+ "translate-y": [{
13583
+ "translate-y": scaleTranslate()
13028
13584
  }],
13029
- // Interactivity
13585
+ /**
13586
+ * Translate Z
13587
+ * @see https://tailwindcss.com/docs/translate
13588
+ */
13589
+ "translate-z": [{
13590
+ "translate-z": scaleTranslate()
13591
+ }],
13592
+ /**
13593
+ * Translate None
13594
+ * @see https://tailwindcss.com/docs/translate
13595
+ */
13596
+ "translate-none": ["translate-none"],
13597
+ // ---------------------
13598
+ // --- Interactivity ---
13599
+ // ---------------------
13030
13600
  /**
13031
13601
  * Accent Color
13032
13602
  * @see https://tailwindcss.com/docs/accent-color
13033
13603
  */
13034
13604
  accent: [{
13035
- accent: ["auto", colors]
13605
+ accent: scaleColor()
13036
13606
  }],
13037
13607
  /**
13038
13608
  * Appearance
@@ -13041,33 +13611,47 @@ var getDefaultConfig = () => {
13041
13611
  appearance: [{
13042
13612
  appearance: ["none", "auto"]
13043
13613
  }],
13614
+ /**
13615
+ * Caret Color
13616
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
13617
+ */
13618
+ "caret-color": [{
13619
+ caret: scaleColor()
13620
+ }],
13621
+ /**
13622
+ * Color Scheme
13623
+ * @see https://tailwindcss.com/docs/color-scheme
13624
+ */
13625
+ "color-scheme": [{
13626
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
13627
+ }],
13044
13628
  /**
13045
13629
  * Cursor
13046
13630
  * @see https://tailwindcss.com/docs/cursor
13047
13631
  */
13048
13632
  cursor: [{
13049
- cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", isArbitraryValue]
13633
+ cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", isArbitraryVariable, isArbitraryValue]
13050
13634
  }],
13051
13635
  /**
13052
- * Caret Color
13053
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
13636
+ * Field Sizing
13637
+ * @see https://tailwindcss.com/docs/field-sizing
13054
13638
  */
13055
- "caret-color": [{
13056
- caret: [colors]
13639
+ "field-sizing": [{
13640
+ "field-sizing": ["fixed", "content"]
13057
13641
  }],
13058
13642
  /**
13059
13643
  * Pointer Events
13060
13644
  * @see https://tailwindcss.com/docs/pointer-events
13061
13645
  */
13062
13646
  "pointer-events": [{
13063
- "pointer-events": ["none", "auto"]
13647
+ "pointer-events": ["auto", "none"]
13064
13648
  }],
13065
13649
  /**
13066
13650
  * Resize
13067
13651
  * @see https://tailwindcss.com/docs/resize
13068
13652
  */
13069
13653
  resize: [{
13070
- resize: ["none", "y", "x", ""]
13654
+ resize: ["none", "", "y", "x"]
13071
13655
  }],
13072
13656
  /**
13073
13657
  * Scroll Behavior
@@ -13081,126 +13665,126 @@ var getDefaultConfig = () => {
13081
13665
  * @see https://tailwindcss.com/docs/scroll-margin
13082
13666
  */
13083
13667
  "scroll-m": [{
13084
- "scroll-m": getSpacingWithArbitrary()
13668
+ "scroll-m": scaleUnambiguousSpacing()
13085
13669
  }],
13086
13670
  /**
13087
13671
  * Scroll Margin X
13088
13672
  * @see https://tailwindcss.com/docs/scroll-margin
13089
13673
  */
13090
13674
  "scroll-mx": [{
13091
- "scroll-mx": getSpacingWithArbitrary()
13675
+ "scroll-mx": scaleUnambiguousSpacing()
13092
13676
  }],
13093
13677
  /**
13094
13678
  * Scroll Margin Y
13095
13679
  * @see https://tailwindcss.com/docs/scroll-margin
13096
13680
  */
13097
13681
  "scroll-my": [{
13098
- "scroll-my": getSpacingWithArbitrary()
13682
+ "scroll-my": scaleUnambiguousSpacing()
13099
13683
  }],
13100
13684
  /**
13101
13685
  * Scroll Margin Start
13102
13686
  * @see https://tailwindcss.com/docs/scroll-margin
13103
13687
  */
13104
13688
  "scroll-ms": [{
13105
- "scroll-ms": getSpacingWithArbitrary()
13689
+ "scroll-ms": scaleUnambiguousSpacing()
13106
13690
  }],
13107
13691
  /**
13108
13692
  * Scroll Margin End
13109
13693
  * @see https://tailwindcss.com/docs/scroll-margin
13110
13694
  */
13111
13695
  "scroll-me": [{
13112
- "scroll-me": getSpacingWithArbitrary()
13696
+ "scroll-me": scaleUnambiguousSpacing()
13113
13697
  }],
13114
13698
  /**
13115
13699
  * Scroll Margin Top
13116
13700
  * @see https://tailwindcss.com/docs/scroll-margin
13117
13701
  */
13118
13702
  "scroll-mt": [{
13119
- "scroll-mt": getSpacingWithArbitrary()
13703
+ "scroll-mt": scaleUnambiguousSpacing()
13120
13704
  }],
13121
13705
  /**
13122
13706
  * Scroll Margin Right
13123
13707
  * @see https://tailwindcss.com/docs/scroll-margin
13124
13708
  */
13125
13709
  "scroll-mr": [{
13126
- "scroll-mr": getSpacingWithArbitrary()
13710
+ "scroll-mr": scaleUnambiguousSpacing()
13127
13711
  }],
13128
13712
  /**
13129
13713
  * Scroll Margin Bottom
13130
13714
  * @see https://tailwindcss.com/docs/scroll-margin
13131
13715
  */
13132
13716
  "scroll-mb": [{
13133
- "scroll-mb": getSpacingWithArbitrary()
13717
+ "scroll-mb": scaleUnambiguousSpacing()
13134
13718
  }],
13135
13719
  /**
13136
13720
  * Scroll Margin Left
13137
13721
  * @see https://tailwindcss.com/docs/scroll-margin
13138
13722
  */
13139
13723
  "scroll-ml": [{
13140
- "scroll-ml": getSpacingWithArbitrary()
13724
+ "scroll-ml": scaleUnambiguousSpacing()
13141
13725
  }],
13142
13726
  /**
13143
13727
  * Scroll Padding
13144
13728
  * @see https://tailwindcss.com/docs/scroll-padding
13145
13729
  */
13146
13730
  "scroll-p": [{
13147
- "scroll-p": getSpacingWithArbitrary()
13731
+ "scroll-p": scaleUnambiguousSpacing()
13148
13732
  }],
13149
13733
  /**
13150
13734
  * Scroll Padding X
13151
13735
  * @see https://tailwindcss.com/docs/scroll-padding
13152
13736
  */
13153
13737
  "scroll-px": [{
13154
- "scroll-px": getSpacingWithArbitrary()
13738
+ "scroll-px": scaleUnambiguousSpacing()
13155
13739
  }],
13156
13740
  /**
13157
13741
  * Scroll Padding Y
13158
13742
  * @see https://tailwindcss.com/docs/scroll-padding
13159
13743
  */
13160
13744
  "scroll-py": [{
13161
- "scroll-py": getSpacingWithArbitrary()
13745
+ "scroll-py": scaleUnambiguousSpacing()
13162
13746
  }],
13163
13747
  /**
13164
13748
  * Scroll Padding Start
13165
13749
  * @see https://tailwindcss.com/docs/scroll-padding
13166
13750
  */
13167
13751
  "scroll-ps": [{
13168
- "scroll-ps": getSpacingWithArbitrary()
13752
+ "scroll-ps": scaleUnambiguousSpacing()
13169
13753
  }],
13170
13754
  /**
13171
13755
  * Scroll Padding End
13172
13756
  * @see https://tailwindcss.com/docs/scroll-padding
13173
13757
  */
13174
13758
  "scroll-pe": [{
13175
- "scroll-pe": getSpacingWithArbitrary()
13759
+ "scroll-pe": scaleUnambiguousSpacing()
13176
13760
  }],
13177
13761
  /**
13178
13762
  * Scroll Padding Top
13179
13763
  * @see https://tailwindcss.com/docs/scroll-padding
13180
13764
  */
13181
13765
  "scroll-pt": [{
13182
- "scroll-pt": getSpacingWithArbitrary()
13766
+ "scroll-pt": scaleUnambiguousSpacing()
13183
13767
  }],
13184
13768
  /**
13185
13769
  * Scroll Padding Right
13186
13770
  * @see https://tailwindcss.com/docs/scroll-padding
13187
13771
  */
13188
13772
  "scroll-pr": [{
13189
- "scroll-pr": getSpacingWithArbitrary()
13773
+ "scroll-pr": scaleUnambiguousSpacing()
13190
13774
  }],
13191
13775
  /**
13192
13776
  * Scroll Padding Bottom
13193
13777
  * @see https://tailwindcss.com/docs/scroll-padding
13194
13778
  */
13195
13779
  "scroll-pb": [{
13196
- "scroll-pb": getSpacingWithArbitrary()
13780
+ "scroll-pb": scaleUnambiguousSpacing()
13197
13781
  }],
13198
13782
  /**
13199
13783
  * Scroll Padding Left
13200
13784
  * @see https://tailwindcss.com/docs/scroll-padding
13201
13785
  */
13202
13786
  "scroll-pl": [{
13203
- "scroll-pl": getSpacingWithArbitrary()
13787
+ "scroll-pl": scaleUnambiguousSpacing()
13204
13788
  }],
13205
13789
  /**
13206
13790
  * Scroll Snap Align
@@ -13268,36 +13852,35 @@ var getDefaultConfig = () => {
13268
13852
  * @see https://tailwindcss.com/docs/will-change
13269
13853
  */
13270
13854
  "will-change": [{
13271
- "will-change": ["auto", "scroll", "contents", "transform", isArbitraryValue]
13855
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
13272
13856
  }],
13273
- // SVG
13857
+ // -----------
13858
+ // --- SVG ---
13859
+ // -----------
13274
13860
  /**
13275
13861
  * Fill
13276
13862
  * @see https://tailwindcss.com/docs/fill
13277
13863
  */
13278
13864
  fill: [{
13279
- fill: [colors, "none"]
13865
+ fill: ["none", ...scaleColor()]
13280
13866
  }],
13281
13867
  /**
13282
13868
  * Stroke Width
13283
13869
  * @see https://tailwindcss.com/docs/stroke-width
13284
13870
  */
13285
13871
  "stroke-w": [{
13286
- stroke: [isLength, isArbitraryLength, isArbitraryNumber]
13872
+ stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
13287
13873
  }],
13288
13874
  /**
13289
13875
  * Stroke
13290
13876
  * @see https://tailwindcss.com/docs/stroke
13291
13877
  */
13292
13878
  stroke: [{
13293
- stroke: [colors, "none"]
13879
+ stroke: ["none", ...scaleColor()]
13294
13880
  }],
13295
- // Accessibility
13296
- /**
13297
- * Screen Readers
13298
- * @see https://tailwindcss.com/docs/screen-readers
13299
- */
13300
- sr: ["sr-only", "not-sr-only"],
13881
+ // ---------------------
13882
+ // --- Accessibility ---
13883
+ // ---------------------
13301
13884
  /**
13302
13885
  * Forced Color Adjust
13303
13886
  * @see https://tailwindcss.com/docs/forced-color-adjust
@@ -13337,12 +13920,14 @@ var getDefaultConfig = () => {
13337
13920
  "rounded-b": ["rounded-br", "rounded-bl"],
13338
13921
  "rounded-l": ["rounded-tl", "rounded-bl"],
13339
13922
  "border-spacing": ["border-spacing-x", "border-spacing-y"],
13340
- "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
13923
+ "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
13341
13924
  "border-w-x": ["border-w-r", "border-w-l"],
13342
13925
  "border-w-y": ["border-w-t", "border-w-b"],
13343
- "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
13926
+ "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
13344
13927
  "border-color-x": ["border-color-r", "border-color-l"],
13345
13928
  "border-color-y": ["border-color-t", "border-color-b"],
13929
+ translate: ["translate-x", "translate-y", "translate-none"],
13930
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
13346
13931
  "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
13347
13932
  "scroll-mx": ["scroll-mr", "scroll-ml"],
13348
13933
  "scroll-my": ["scroll-mt", "scroll-mb"],
@@ -13356,7 +13941,8 @@ var getDefaultConfig = () => {
13356
13941
  },
13357
13942
  conflictingClassGroupModifiers: {
13358
13943
  "font-size": ["leading"]
13359
- }
13944
+ },
13945
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
13360
13946
  };
13361
13947
  };
13362
13948
  var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
@@ -13370,6 +13956,7 @@ export {
13370
13956
  BrowserBox,
13371
13957
  Button,
13372
13958
  ButtonGroup,
13959
+ ButtonLink,
13373
13960
  Code,
13374
13961
  CodeBox,
13375
13962
  CodeSnippet,