@teja-app/ui 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +169 -0
  2. package/dist/components/Button/Button.d.ts +13 -0
  3. package/dist/components/Button/Button.d.ts.map +1 -0
  4. package/dist/components/Button/Button.types.d.ts +18 -0
  5. package/dist/components/Button/Button.types.d.ts.map +1 -0
  6. package/dist/components/Button/index.d.ts +3 -0
  7. package/dist/components/Button/index.d.ts.map +1 -0
  8. package/dist/components/index.d.ts +5 -0
  9. package/dist/components/index.d.ts.map +1 -0
  10. package/dist/hooks/index.cjs +2 -0
  11. package/dist/hooks/index.cjs.map +1 -0
  12. package/dist/hooks/index.d.ts +10 -0
  13. package/dist/hooks/index.d.ts.map +1 -0
  14. package/dist/hooks/index.js +2 -0
  15. package/dist/hooks/index.js.map +1 -0
  16. package/dist/index.cjs +96 -0
  17. package/dist/index.cjs.map +1 -0
  18. package/dist/index.d.ts +13 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +96 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/tailwind/colors.d.ts +46 -0
  23. package/dist/tailwind/colors.d.ts.map +1 -0
  24. package/dist/tailwind/index.cjs +138 -0
  25. package/dist/tailwind/index.cjs.map +1 -0
  26. package/dist/tailwind/index.d.ts +17 -0
  27. package/dist/tailwind/index.d.ts.map +1 -0
  28. package/dist/tailwind/index.js +138 -0
  29. package/dist/tailwind/index.js.map +1 -0
  30. package/dist/tailwind/preset.d.ts +20 -0
  31. package/dist/tailwind/preset.d.ts.map +1 -0
  32. package/dist/tailwind/spacing.d.ts +53 -0
  33. package/dist/tailwind/spacing.d.ts.map +1 -0
  34. package/dist/tailwind/typography.d.ts +41 -0
  35. package/dist/tailwind/typography.d.ts.map +1 -0
  36. package/dist/utils/cn.d.ts +12 -0
  37. package/dist/utils/cn.d.ts.map +1 -0
  38. package/dist/utils/index.cjs +3027 -0
  39. package/dist/utils/index.cjs.map +1 -0
  40. package/dist/utils/index.d.ts +10 -0
  41. package/dist/utils/index.d.ts.map +1 -0
  42. package/dist/utils/index.js +3027 -0
  43. package/dist/utils/index.js.map +1 -0
  44. package/package.json +121 -0
@@ -0,0 +1,3027 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function r(e) {
4
+ var t, f, n = "";
5
+ if ("string" == typeof e || "number" == typeof e) n += e;
6
+ else if ("object" == typeof e) if (Array.isArray(e)) {
7
+ var o = e.length;
8
+ for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
9
+ } else for (f in e) e[f] && (n && (n += " "), n += f);
10
+ return n;
11
+ }
12
+ function clsx() {
13
+ for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
14
+ return n;
15
+ }
16
+ const concatArrays = (array1, array2) => {
17
+ const combinedArray = new Array(array1.length + array2.length);
18
+ for (let i = 0; i < array1.length; i++) {
19
+ combinedArray[i] = array1[i];
20
+ }
21
+ for (let i = 0; i < array2.length; i++) {
22
+ combinedArray[array1.length + i] = array2[i];
23
+ }
24
+ return combinedArray;
25
+ };
26
+ const createClassValidatorObject = (classGroupId, validator) => ({
27
+ classGroupId,
28
+ validator
29
+ });
30
+ const createClassPartObject = (nextPart = /* @__PURE__ */ new Map(), validators = null, classGroupId) => ({
31
+ nextPart,
32
+ validators,
33
+ classGroupId
34
+ });
35
+ const CLASS_PART_SEPARATOR = "-";
36
+ const EMPTY_CONFLICTS = [];
37
+ const ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
38
+ const createClassGroupUtils = (config) => {
39
+ const classMap = createClassMap(config);
40
+ const {
41
+ conflictingClassGroups,
42
+ conflictingClassGroupModifiers
43
+ } = config;
44
+ const getClassGroupId = (className) => {
45
+ if (className.startsWith("[") && className.endsWith("]")) {
46
+ return getGroupIdForArbitraryProperty(className);
47
+ }
48
+ const classParts = className.split(CLASS_PART_SEPARATOR);
49
+ const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
50
+ return getGroupRecursive(classParts, startIndex, classMap);
51
+ };
52
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
53
+ if (hasPostfixModifier) {
54
+ const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
55
+ const baseConflicts = conflictingClassGroups[classGroupId];
56
+ if (modifierConflicts) {
57
+ if (baseConflicts) {
58
+ return concatArrays(baseConflicts, modifierConflicts);
59
+ }
60
+ return modifierConflicts;
61
+ }
62
+ return baseConflicts || EMPTY_CONFLICTS;
63
+ }
64
+ return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
65
+ };
66
+ return {
67
+ getClassGroupId,
68
+ getConflictingClassGroupIds
69
+ };
70
+ };
71
+ const getGroupRecursive = (classParts, startIndex, classPartObject) => {
72
+ const classPathsLength = classParts.length - startIndex;
73
+ if (classPathsLength === 0) {
74
+ return classPartObject.classGroupId;
75
+ }
76
+ const currentClassPart = classParts[startIndex];
77
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
78
+ if (nextClassPartObject) {
79
+ const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
80
+ if (result) return result;
81
+ }
82
+ const validators = classPartObject.validators;
83
+ if (validators === null) {
84
+ return void 0;
85
+ }
86
+ const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
87
+ const validatorsLength = validators.length;
88
+ for (let i = 0; i < validatorsLength; i++) {
89
+ const validatorObj = validators[i];
90
+ if (validatorObj.validator(classRest)) {
91
+ return validatorObj.classGroupId;
92
+ }
93
+ }
94
+ return void 0;
95
+ };
96
+ const getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
97
+ const content = className.slice(1, -1);
98
+ const colonIndex = content.indexOf(":");
99
+ const property = content.slice(0, colonIndex);
100
+ return property ? ARBITRARY_PROPERTY_PREFIX + property : void 0;
101
+ })();
102
+ const createClassMap = (config) => {
103
+ const {
104
+ theme,
105
+ classGroups
106
+ } = config;
107
+ return processClassGroups(classGroups, theme);
108
+ };
109
+ const processClassGroups = (classGroups, theme) => {
110
+ const classMap = createClassPartObject();
111
+ for (const classGroupId in classGroups) {
112
+ const group = classGroups[classGroupId];
113
+ processClassesRecursively(group, classMap, classGroupId, theme);
114
+ }
115
+ return classMap;
116
+ };
117
+ const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
118
+ const len = classGroup.length;
119
+ for (let i = 0; i < len; i++) {
120
+ const classDefinition = classGroup[i];
121
+ processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
122
+ }
123
+ };
124
+ const processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
125
+ if (typeof classDefinition === "string") {
126
+ processStringDefinition(classDefinition, classPartObject, classGroupId);
127
+ return;
128
+ }
129
+ if (typeof classDefinition === "function") {
130
+ processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
131
+ return;
132
+ }
133
+ processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
134
+ };
135
+ const processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
136
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
137
+ classPartObjectToEdit.classGroupId = classGroupId;
138
+ };
139
+ const processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
140
+ if (isThemeGetter(classDefinition)) {
141
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
142
+ return;
143
+ }
144
+ if (classPartObject.validators === null) {
145
+ classPartObject.validators = [];
146
+ }
147
+ classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
148
+ };
149
+ const processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
150
+ const entries = Object.entries(classDefinition);
151
+ const len = entries.length;
152
+ for (let i = 0; i < len; i++) {
153
+ const [key, value] = entries[i];
154
+ processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
155
+ }
156
+ };
157
+ const getPart = (classPartObject, path) => {
158
+ let current = classPartObject;
159
+ const parts = path.split(CLASS_PART_SEPARATOR);
160
+ const len = parts.length;
161
+ for (let i = 0; i < len; i++) {
162
+ const part = parts[i];
163
+ let next = current.nextPart.get(part);
164
+ if (!next) {
165
+ next = createClassPartObject();
166
+ current.nextPart.set(part, next);
167
+ }
168
+ current = next;
169
+ }
170
+ return current;
171
+ };
172
+ const isThemeGetter = (func) => "isThemeGetter" in func && func.isThemeGetter === true;
173
+ const createLruCache = (maxCacheSize) => {
174
+ if (maxCacheSize < 1) {
175
+ return {
176
+ get: () => void 0,
177
+ set: () => {
178
+ }
179
+ };
180
+ }
181
+ let cacheSize = 0;
182
+ let cache = /* @__PURE__ */ Object.create(null);
183
+ let previousCache = /* @__PURE__ */ Object.create(null);
184
+ const update = (key, value) => {
185
+ cache[key] = value;
186
+ cacheSize++;
187
+ if (cacheSize > maxCacheSize) {
188
+ cacheSize = 0;
189
+ previousCache = cache;
190
+ cache = /* @__PURE__ */ Object.create(null);
191
+ }
192
+ };
193
+ return {
194
+ get(key) {
195
+ let value = cache[key];
196
+ if (value !== void 0) {
197
+ return value;
198
+ }
199
+ if ((value = previousCache[key]) !== void 0) {
200
+ update(key, value);
201
+ return value;
202
+ }
203
+ },
204
+ set(key, value) {
205
+ if (key in cache) {
206
+ cache[key] = value;
207
+ } else {
208
+ update(key, value);
209
+ }
210
+ }
211
+ };
212
+ };
213
+ const IMPORTANT_MODIFIER = "!";
214
+ const MODIFIER_SEPARATOR = ":";
215
+ const EMPTY_MODIFIERS = [];
216
+ const createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
217
+ modifiers,
218
+ hasImportantModifier,
219
+ baseClassName,
220
+ maybePostfixModifierPosition,
221
+ isExternal
222
+ });
223
+ const createParseClassName = (config) => {
224
+ const {
225
+ prefix,
226
+ experimentalParseClassName
227
+ } = config;
228
+ let parseClassName = (className) => {
229
+ const modifiers = [];
230
+ let bracketDepth = 0;
231
+ let parenDepth = 0;
232
+ let modifierStart = 0;
233
+ let postfixModifierPosition;
234
+ const len = className.length;
235
+ for (let index = 0; index < len; index++) {
236
+ const currentCharacter = className[index];
237
+ if (bracketDepth === 0 && parenDepth === 0) {
238
+ if (currentCharacter === MODIFIER_SEPARATOR) {
239
+ modifiers.push(className.slice(modifierStart, index));
240
+ modifierStart = index + 1;
241
+ continue;
242
+ }
243
+ if (currentCharacter === "/") {
244
+ postfixModifierPosition = index;
245
+ continue;
246
+ }
247
+ }
248
+ if (currentCharacter === "[") bracketDepth++;
249
+ else if (currentCharacter === "]") bracketDepth--;
250
+ else if (currentCharacter === "(") parenDepth++;
251
+ else if (currentCharacter === ")") parenDepth--;
252
+ }
253
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
254
+ let baseClassName = baseClassNameWithImportantModifier;
255
+ let hasImportantModifier = false;
256
+ if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
257
+ baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
258
+ hasImportantModifier = true;
259
+ } else if (
260
+ /**
261
+ * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
262
+ * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
263
+ */
264
+ baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)
265
+ ) {
266
+ baseClassName = baseClassNameWithImportantModifier.slice(1);
267
+ hasImportantModifier = true;
268
+ }
269
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
270
+ return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
271
+ };
272
+ if (prefix) {
273
+ const fullPrefix = prefix + MODIFIER_SEPARATOR;
274
+ const parseClassNameOriginal = parseClassName;
275
+ parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, void 0, true);
276
+ }
277
+ if (experimentalParseClassName) {
278
+ const parseClassNameOriginal = parseClassName;
279
+ parseClassName = (className) => experimentalParseClassName({
280
+ className,
281
+ parseClassName: parseClassNameOriginal
282
+ });
283
+ }
284
+ return parseClassName;
285
+ };
286
+ const createSortModifiers = (config) => {
287
+ const modifierWeights = /* @__PURE__ */ new Map();
288
+ config.orderSensitiveModifiers.forEach((mod, index) => {
289
+ modifierWeights.set(mod, 1e6 + index);
290
+ });
291
+ return (modifiers) => {
292
+ const result = [];
293
+ let currentSegment = [];
294
+ for (let i = 0; i < modifiers.length; i++) {
295
+ const modifier = modifiers[i];
296
+ const isArbitrary = modifier[0] === "[";
297
+ const isOrderSensitive = modifierWeights.has(modifier);
298
+ if (isArbitrary || isOrderSensitive) {
299
+ if (currentSegment.length > 0) {
300
+ currentSegment.sort();
301
+ result.push(...currentSegment);
302
+ currentSegment = [];
303
+ }
304
+ result.push(modifier);
305
+ } else {
306
+ currentSegment.push(modifier);
307
+ }
308
+ }
309
+ if (currentSegment.length > 0) {
310
+ currentSegment.sort();
311
+ result.push(...currentSegment);
312
+ }
313
+ return result;
314
+ };
315
+ };
316
+ const createConfigUtils = (config) => ({
317
+ cache: createLruCache(config.cacheSize),
318
+ parseClassName: createParseClassName(config),
319
+ sortModifiers: createSortModifiers(config),
320
+ ...createClassGroupUtils(config)
321
+ });
322
+ const SPLIT_CLASSES_REGEX = /\s+/;
323
+ const mergeClassList = (classList, configUtils) => {
324
+ const {
325
+ parseClassName,
326
+ getClassGroupId,
327
+ getConflictingClassGroupIds,
328
+ sortModifiers
329
+ } = configUtils;
330
+ const classGroupsInConflict = [];
331
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
332
+ let result = "";
333
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
334
+ const originalClassName = classNames[index];
335
+ const {
336
+ isExternal,
337
+ modifiers,
338
+ hasImportantModifier,
339
+ baseClassName,
340
+ maybePostfixModifierPosition
341
+ } = parseClassName(originalClassName);
342
+ if (isExternal) {
343
+ result = originalClassName + (result.length > 0 ? " " + result : result);
344
+ continue;
345
+ }
346
+ let hasPostfixModifier = !!maybePostfixModifierPosition;
347
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
348
+ if (!classGroupId) {
349
+ if (!hasPostfixModifier) {
350
+ result = originalClassName + (result.length > 0 ? " " + result : result);
351
+ continue;
352
+ }
353
+ classGroupId = getClassGroupId(baseClassName);
354
+ if (!classGroupId) {
355
+ result = originalClassName + (result.length > 0 ? " " + result : result);
356
+ continue;
357
+ }
358
+ hasPostfixModifier = false;
359
+ }
360
+ const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
361
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
362
+ const classId = modifierId + classGroupId;
363
+ if (classGroupsInConflict.indexOf(classId) > -1) {
364
+ continue;
365
+ }
366
+ classGroupsInConflict.push(classId);
367
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
368
+ for (let i = 0; i < conflictGroups.length; ++i) {
369
+ const group = conflictGroups[i];
370
+ classGroupsInConflict.push(modifierId + group);
371
+ }
372
+ result = originalClassName + (result.length > 0 ? " " + result : result);
373
+ }
374
+ return result;
375
+ };
376
+ const twJoin = (...classLists) => {
377
+ let index = 0;
378
+ let argument;
379
+ let resolvedValue;
380
+ let string = "";
381
+ while (index < classLists.length) {
382
+ if (argument = classLists[index++]) {
383
+ if (resolvedValue = toValue(argument)) {
384
+ string && (string += " ");
385
+ string += resolvedValue;
386
+ }
387
+ }
388
+ }
389
+ return string;
390
+ };
391
+ const toValue = (mix) => {
392
+ if (typeof mix === "string") {
393
+ return mix;
394
+ }
395
+ let resolvedValue;
396
+ let string = "";
397
+ for (let k = 0; k < mix.length; k++) {
398
+ if (mix[k]) {
399
+ if (resolvedValue = toValue(mix[k])) {
400
+ string && (string += " ");
401
+ string += resolvedValue;
402
+ }
403
+ }
404
+ }
405
+ return string;
406
+ };
407
+ const createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
408
+ let configUtils;
409
+ let cacheGet;
410
+ let cacheSet;
411
+ let functionToCall;
412
+ const initTailwindMerge = (classList) => {
413
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
414
+ configUtils = createConfigUtils(config);
415
+ cacheGet = configUtils.cache.get;
416
+ cacheSet = configUtils.cache.set;
417
+ functionToCall = tailwindMerge;
418
+ return tailwindMerge(classList);
419
+ };
420
+ const tailwindMerge = (classList) => {
421
+ const cachedResult = cacheGet(classList);
422
+ if (cachedResult) {
423
+ return cachedResult;
424
+ }
425
+ const result = mergeClassList(classList, configUtils);
426
+ cacheSet(classList, result);
427
+ return result;
428
+ };
429
+ functionToCall = initTailwindMerge;
430
+ return (...args) => functionToCall(twJoin(...args));
431
+ };
432
+ const fallbackThemeArr = [];
433
+ const fromTheme = (key) => {
434
+ const themeGetter = (theme) => theme[key] || fallbackThemeArr;
435
+ themeGetter.isThemeGetter = true;
436
+ return themeGetter;
437
+ };
438
+ const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
439
+ const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
440
+ const fractionRegex = /^\d+\/\d+$/;
441
+ const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
442
+ const 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$/;
443
+ const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
444
+ const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
445
+ const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
446
+ const isFraction = (value) => fractionRegex.test(value);
447
+ const isNumber = (value) => !!value && !Number.isNaN(Number(value));
448
+ const isInteger = (value) => !!value && Number.isInteger(Number(value));
449
+ const isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
450
+ const isTshirtSize = (value) => tshirtUnitRegex.test(value);
451
+ const isAny = () => true;
452
+ const isLengthOnly = (value) => (
453
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
454
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
455
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
456
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
457
+ );
458
+ const isNever = () => false;
459
+ const isShadow = (value) => shadowRegex.test(value);
460
+ const isImage = (value) => imageRegex.test(value);
461
+ const isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
462
+ const isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
463
+ const isArbitraryValue = (value) => arbitraryValueRegex.test(value);
464
+ const isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
465
+ const isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
466
+ const isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
467
+ const isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
468
+ const isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
469
+ const isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
470
+ const isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
471
+ const isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
472
+ const isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
473
+ const isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
474
+ const isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
475
+ const isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
476
+ const getIsArbitraryValue = (value, testLabel, testValue) => {
477
+ const result = arbitraryValueRegex.exec(value);
478
+ if (result) {
479
+ if (result[1]) {
480
+ return testLabel(result[1]);
481
+ }
482
+ return testValue(result[2]);
483
+ }
484
+ return false;
485
+ };
486
+ const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
487
+ const result = arbitraryVariableRegex.exec(value);
488
+ if (result) {
489
+ if (result[1]) {
490
+ return testLabel(result[1]);
491
+ }
492
+ return shouldMatchNoLabel;
493
+ }
494
+ return false;
495
+ };
496
+ const isLabelPosition = (label) => label === "position" || label === "percentage";
497
+ const isLabelImage = (label) => label === "image" || label === "url";
498
+ const isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
499
+ const isLabelLength = (label) => label === "length";
500
+ const isLabelNumber = (label) => label === "number";
501
+ const isLabelFamilyName = (label) => label === "family-name";
502
+ const isLabelShadow = (label) => label === "shadow";
503
+ const getDefaultConfig = () => {
504
+ const themeColor = fromTheme("color");
505
+ const themeFont = fromTheme("font");
506
+ const themeText = fromTheme("text");
507
+ const themeFontWeight = fromTheme("font-weight");
508
+ const themeTracking = fromTheme("tracking");
509
+ const themeLeading = fromTheme("leading");
510
+ const themeBreakpoint = fromTheme("breakpoint");
511
+ const themeContainer = fromTheme("container");
512
+ const themeSpacing = fromTheme("spacing");
513
+ const themeRadius = fromTheme("radius");
514
+ const themeShadow = fromTheme("shadow");
515
+ const themeInsetShadow = fromTheme("inset-shadow");
516
+ const themeTextShadow = fromTheme("text-shadow");
517
+ const themeDropShadow = fromTheme("drop-shadow");
518
+ const themeBlur = fromTheme("blur");
519
+ const themePerspective = fromTheme("perspective");
520
+ const themeAspect = fromTheme("aspect");
521
+ const themeEase = fromTheme("ease");
522
+ const themeAnimate = fromTheme("animate");
523
+ const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
524
+ const scalePosition = () => [
525
+ "center",
526
+ "top",
527
+ "bottom",
528
+ "left",
529
+ "right",
530
+ "top-left",
531
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
532
+ "left-top",
533
+ "top-right",
534
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
535
+ "right-top",
536
+ "bottom-right",
537
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
538
+ "right-bottom",
539
+ "bottom-left",
540
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
541
+ "left-bottom"
542
+ ];
543
+ const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
544
+ const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
545
+ const scaleOverscroll = () => ["auto", "contain", "none"];
546
+ const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
547
+ const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
548
+ const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
549
+ const scaleGridColRowStartAndEnd = () => ["auto", {
550
+ span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
551
+ }, isInteger, isArbitraryVariable, isArbitraryValue];
552
+ const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
553
+ const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
554
+ const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
555
+ const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
556
+ const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
557
+ const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
558
+ const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
559
+ const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
560
+ position: [isArbitraryVariable, isArbitraryValue]
561
+ }];
562
+ const scaleBgRepeat = () => ["no-repeat", {
563
+ repeat: ["", "x", "y", "space", "round"]
564
+ }];
565
+ const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
566
+ size: [isArbitraryVariable, isArbitraryValue]
567
+ }];
568
+ const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
569
+ const scaleRadius = () => [
570
+ // Deprecated since Tailwind CSS v4.0.0
571
+ "",
572
+ "none",
573
+ "full",
574
+ themeRadius,
575
+ isArbitraryVariable,
576
+ isArbitraryValue
577
+ ];
578
+ const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
579
+ const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
580
+ const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
581
+ const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
582
+ const scaleBlur = () => [
583
+ // Deprecated since Tailwind CSS v4.0.0
584
+ "",
585
+ "none",
586
+ themeBlur,
587
+ isArbitraryVariable,
588
+ isArbitraryValue
589
+ ];
590
+ const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
591
+ const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
592
+ const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
593
+ const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
594
+ return {
595
+ cacheSize: 500,
596
+ theme: {
597
+ animate: ["spin", "ping", "pulse", "bounce"],
598
+ aspect: ["video"],
599
+ blur: [isTshirtSize],
600
+ breakpoint: [isTshirtSize],
601
+ color: [isAny],
602
+ container: [isTshirtSize],
603
+ "drop-shadow": [isTshirtSize],
604
+ ease: ["in", "out", "in-out"],
605
+ font: [isAnyNonArbitrary],
606
+ "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
607
+ "inset-shadow": [isTshirtSize],
608
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
609
+ perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
610
+ radius: [isTshirtSize],
611
+ shadow: [isTshirtSize],
612
+ spacing: ["px", isNumber],
613
+ text: [isTshirtSize],
614
+ "text-shadow": [isTshirtSize],
615
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
616
+ },
617
+ classGroups: {
618
+ // --------------
619
+ // --- Layout ---
620
+ // --------------
621
+ /**
622
+ * Aspect Ratio
623
+ * @see https://tailwindcss.com/docs/aspect-ratio
624
+ */
625
+ aspect: [{
626
+ aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
627
+ }],
628
+ /**
629
+ * Container
630
+ * @see https://tailwindcss.com/docs/container
631
+ * @deprecated since Tailwind CSS v4.0.0
632
+ */
633
+ container: ["container"],
634
+ /**
635
+ * Columns
636
+ * @see https://tailwindcss.com/docs/columns
637
+ */
638
+ columns: [{
639
+ columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
640
+ }],
641
+ /**
642
+ * Break After
643
+ * @see https://tailwindcss.com/docs/break-after
644
+ */
645
+ "break-after": [{
646
+ "break-after": scaleBreak()
647
+ }],
648
+ /**
649
+ * Break Before
650
+ * @see https://tailwindcss.com/docs/break-before
651
+ */
652
+ "break-before": [{
653
+ "break-before": scaleBreak()
654
+ }],
655
+ /**
656
+ * Break Inside
657
+ * @see https://tailwindcss.com/docs/break-inside
658
+ */
659
+ "break-inside": [{
660
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
661
+ }],
662
+ /**
663
+ * Box Decoration Break
664
+ * @see https://tailwindcss.com/docs/box-decoration-break
665
+ */
666
+ "box-decoration": [{
667
+ "box-decoration": ["slice", "clone"]
668
+ }],
669
+ /**
670
+ * Box Sizing
671
+ * @see https://tailwindcss.com/docs/box-sizing
672
+ */
673
+ box: [{
674
+ box: ["border", "content"]
675
+ }],
676
+ /**
677
+ * Display
678
+ * @see https://tailwindcss.com/docs/display
679
+ */
680
+ 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"],
681
+ /**
682
+ * Screen Reader Only
683
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
684
+ */
685
+ sr: ["sr-only", "not-sr-only"],
686
+ /**
687
+ * Floats
688
+ * @see https://tailwindcss.com/docs/float
689
+ */
690
+ float: [{
691
+ float: ["right", "left", "none", "start", "end"]
692
+ }],
693
+ /**
694
+ * Clear
695
+ * @see https://tailwindcss.com/docs/clear
696
+ */
697
+ clear: [{
698
+ clear: ["left", "right", "both", "none", "start", "end"]
699
+ }],
700
+ /**
701
+ * Isolation
702
+ * @see https://tailwindcss.com/docs/isolation
703
+ */
704
+ isolation: ["isolate", "isolation-auto"],
705
+ /**
706
+ * Object Fit
707
+ * @see https://tailwindcss.com/docs/object-fit
708
+ */
709
+ "object-fit": [{
710
+ object: ["contain", "cover", "fill", "none", "scale-down"]
711
+ }],
712
+ /**
713
+ * Object Position
714
+ * @see https://tailwindcss.com/docs/object-position
715
+ */
716
+ "object-position": [{
717
+ object: scalePositionWithArbitrary()
718
+ }],
719
+ /**
720
+ * Overflow
721
+ * @see https://tailwindcss.com/docs/overflow
722
+ */
723
+ overflow: [{
724
+ overflow: scaleOverflow()
725
+ }],
726
+ /**
727
+ * Overflow X
728
+ * @see https://tailwindcss.com/docs/overflow
729
+ */
730
+ "overflow-x": [{
731
+ "overflow-x": scaleOverflow()
732
+ }],
733
+ /**
734
+ * Overflow Y
735
+ * @see https://tailwindcss.com/docs/overflow
736
+ */
737
+ "overflow-y": [{
738
+ "overflow-y": scaleOverflow()
739
+ }],
740
+ /**
741
+ * Overscroll Behavior
742
+ * @see https://tailwindcss.com/docs/overscroll-behavior
743
+ */
744
+ overscroll: [{
745
+ overscroll: scaleOverscroll()
746
+ }],
747
+ /**
748
+ * Overscroll Behavior X
749
+ * @see https://tailwindcss.com/docs/overscroll-behavior
750
+ */
751
+ "overscroll-x": [{
752
+ "overscroll-x": scaleOverscroll()
753
+ }],
754
+ /**
755
+ * Overscroll Behavior Y
756
+ * @see https://tailwindcss.com/docs/overscroll-behavior
757
+ */
758
+ "overscroll-y": [{
759
+ "overscroll-y": scaleOverscroll()
760
+ }],
761
+ /**
762
+ * Position
763
+ * @see https://tailwindcss.com/docs/position
764
+ */
765
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
766
+ /**
767
+ * Top / Right / Bottom / Left
768
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
769
+ */
770
+ inset: [{
771
+ inset: scaleInset()
772
+ }],
773
+ /**
774
+ * Right / Left
775
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
776
+ */
777
+ "inset-x": [{
778
+ "inset-x": scaleInset()
779
+ }],
780
+ /**
781
+ * Top / Bottom
782
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
783
+ */
784
+ "inset-y": [{
785
+ "inset-y": scaleInset()
786
+ }],
787
+ /**
788
+ * Start
789
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
790
+ */
791
+ start: [{
792
+ start: scaleInset()
793
+ }],
794
+ /**
795
+ * End
796
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
797
+ */
798
+ end: [{
799
+ end: scaleInset()
800
+ }],
801
+ /**
802
+ * Top
803
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
804
+ */
805
+ top: [{
806
+ top: scaleInset()
807
+ }],
808
+ /**
809
+ * Right
810
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
811
+ */
812
+ right: [{
813
+ right: scaleInset()
814
+ }],
815
+ /**
816
+ * Bottom
817
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
818
+ */
819
+ bottom: [{
820
+ bottom: scaleInset()
821
+ }],
822
+ /**
823
+ * Left
824
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
825
+ */
826
+ left: [{
827
+ left: scaleInset()
828
+ }],
829
+ /**
830
+ * Visibility
831
+ * @see https://tailwindcss.com/docs/visibility
832
+ */
833
+ visibility: ["visible", "invisible", "collapse"],
834
+ /**
835
+ * Z-Index
836
+ * @see https://tailwindcss.com/docs/z-index
837
+ */
838
+ z: [{
839
+ z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
840
+ }],
841
+ // ------------------------
842
+ // --- Flexbox and Grid ---
843
+ // ------------------------
844
+ /**
845
+ * Flex Basis
846
+ * @see https://tailwindcss.com/docs/flex-basis
847
+ */
848
+ basis: [{
849
+ basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
850
+ }],
851
+ /**
852
+ * Flex Direction
853
+ * @see https://tailwindcss.com/docs/flex-direction
854
+ */
855
+ "flex-direction": [{
856
+ flex: ["row", "row-reverse", "col", "col-reverse"]
857
+ }],
858
+ /**
859
+ * Flex Wrap
860
+ * @see https://tailwindcss.com/docs/flex-wrap
861
+ */
862
+ "flex-wrap": [{
863
+ flex: ["nowrap", "wrap", "wrap-reverse"]
864
+ }],
865
+ /**
866
+ * Flex
867
+ * @see https://tailwindcss.com/docs/flex
868
+ */
869
+ flex: [{
870
+ flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
871
+ }],
872
+ /**
873
+ * Flex Grow
874
+ * @see https://tailwindcss.com/docs/flex-grow
875
+ */
876
+ grow: [{
877
+ grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
878
+ }],
879
+ /**
880
+ * Flex Shrink
881
+ * @see https://tailwindcss.com/docs/flex-shrink
882
+ */
883
+ shrink: [{
884
+ shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
885
+ }],
886
+ /**
887
+ * Order
888
+ * @see https://tailwindcss.com/docs/order
889
+ */
890
+ order: [{
891
+ order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
892
+ }],
893
+ /**
894
+ * Grid Template Columns
895
+ * @see https://tailwindcss.com/docs/grid-template-columns
896
+ */
897
+ "grid-cols": [{
898
+ "grid-cols": scaleGridTemplateColsRows()
899
+ }],
900
+ /**
901
+ * Grid Column Start / End
902
+ * @see https://tailwindcss.com/docs/grid-column
903
+ */
904
+ "col-start-end": [{
905
+ col: scaleGridColRowStartAndEnd()
906
+ }],
907
+ /**
908
+ * Grid Column Start
909
+ * @see https://tailwindcss.com/docs/grid-column
910
+ */
911
+ "col-start": [{
912
+ "col-start": scaleGridColRowStartOrEnd()
913
+ }],
914
+ /**
915
+ * Grid Column End
916
+ * @see https://tailwindcss.com/docs/grid-column
917
+ */
918
+ "col-end": [{
919
+ "col-end": scaleGridColRowStartOrEnd()
920
+ }],
921
+ /**
922
+ * Grid Template Rows
923
+ * @see https://tailwindcss.com/docs/grid-template-rows
924
+ */
925
+ "grid-rows": [{
926
+ "grid-rows": scaleGridTemplateColsRows()
927
+ }],
928
+ /**
929
+ * Grid Row Start / End
930
+ * @see https://tailwindcss.com/docs/grid-row
931
+ */
932
+ "row-start-end": [{
933
+ row: scaleGridColRowStartAndEnd()
934
+ }],
935
+ /**
936
+ * Grid Row Start
937
+ * @see https://tailwindcss.com/docs/grid-row
938
+ */
939
+ "row-start": [{
940
+ "row-start": scaleGridColRowStartOrEnd()
941
+ }],
942
+ /**
943
+ * Grid Row End
944
+ * @see https://tailwindcss.com/docs/grid-row
945
+ */
946
+ "row-end": [{
947
+ "row-end": scaleGridColRowStartOrEnd()
948
+ }],
949
+ /**
950
+ * Grid Auto Flow
951
+ * @see https://tailwindcss.com/docs/grid-auto-flow
952
+ */
953
+ "grid-flow": [{
954
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
955
+ }],
956
+ /**
957
+ * Grid Auto Columns
958
+ * @see https://tailwindcss.com/docs/grid-auto-columns
959
+ */
960
+ "auto-cols": [{
961
+ "auto-cols": scaleGridAutoColsRows()
962
+ }],
963
+ /**
964
+ * Grid Auto Rows
965
+ * @see https://tailwindcss.com/docs/grid-auto-rows
966
+ */
967
+ "auto-rows": [{
968
+ "auto-rows": scaleGridAutoColsRows()
969
+ }],
970
+ /**
971
+ * Gap
972
+ * @see https://tailwindcss.com/docs/gap
973
+ */
974
+ gap: [{
975
+ gap: scaleUnambiguousSpacing()
976
+ }],
977
+ /**
978
+ * Gap X
979
+ * @see https://tailwindcss.com/docs/gap
980
+ */
981
+ "gap-x": [{
982
+ "gap-x": scaleUnambiguousSpacing()
983
+ }],
984
+ /**
985
+ * Gap Y
986
+ * @see https://tailwindcss.com/docs/gap
987
+ */
988
+ "gap-y": [{
989
+ "gap-y": scaleUnambiguousSpacing()
990
+ }],
991
+ /**
992
+ * Justify Content
993
+ * @see https://tailwindcss.com/docs/justify-content
994
+ */
995
+ "justify-content": [{
996
+ justify: [...scaleAlignPrimaryAxis(), "normal"]
997
+ }],
998
+ /**
999
+ * Justify Items
1000
+ * @see https://tailwindcss.com/docs/justify-items
1001
+ */
1002
+ "justify-items": [{
1003
+ "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
1004
+ }],
1005
+ /**
1006
+ * Justify Self
1007
+ * @see https://tailwindcss.com/docs/justify-self
1008
+ */
1009
+ "justify-self": [{
1010
+ "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
1011
+ }],
1012
+ /**
1013
+ * Align Content
1014
+ * @see https://tailwindcss.com/docs/align-content
1015
+ */
1016
+ "align-content": [{
1017
+ content: ["normal", ...scaleAlignPrimaryAxis()]
1018
+ }],
1019
+ /**
1020
+ * Align Items
1021
+ * @see https://tailwindcss.com/docs/align-items
1022
+ */
1023
+ "align-items": [{
1024
+ items: [...scaleAlignSecondaryAxis(), {
1025
+ baseline: ["", "last"]
1026
+ }]
1027
+ }],
1028
+ /**
1029
+ * Align Self
1030
+ * @see https://tailwindcss.com/docs/align-self
1031
+ */
1032
+ "align-self": [{
1033
+ self: ["auto", ...scaleAlignSecondaryAxis(), {
1034
+ baseline: ["", "last"]
1035
+ }]
1036
+ }],
1037
+ /**
1038
+ * Place Content
1039
+ * @see https://tailwindcss.com/docs/place-content
1040
+ */
1041
+ "place-content": [{
1042
+ "place-content": scaleAlignPrimaryAxis()
1043
+ }],
1044
+ /**
1045
+ * Place Items
1046
+ * @see https://tailwindcss.com/docs/place-items
1047
+ */
1048
+ "place-items": [{
1049
+ "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
1050
+ }],
1051
+ /**
1052
+ * Place Self
1053
+ * @see https://tailwindcss.com/docs/place-self
1054
+ */
1055
+ "place-self": [{
1056
+ "place-self": ["auto", ...scaleAlignSecondaryAxis()]
1057
+ }],
1058
+ // Spacing
1059
+ /**
1060
+ * Padding
1061
+ * @see https://tailwindcss.com/docs/padding
1062
+ */
1063
+ p: [{
1064
+ p: scaleUnambiguousSpacing()
1065
+ }],
1066
+ /**
1067
+ * Padding X
1068
+ * @see https://tailwindcss.com/docs/padding
1069
+ */
1070
+ px: [{
1071
+ px: scaleUnambiguousSpacing()
1072
+ }],
1073
+ /**
1074
+ * Padding Y
1075
+ * @see https://tailwindcss.com/docs/padding
1076
+ */
1077
+ py: [{
1078
+ py: scaleUnambiguousSpacing()
1079
+ }],
1080
+ /**
1081
+ * Padding Start
1082
+ * @see https://tailwindcss.com/docs/padding
1083
+ */
1084
+ ps: [{
1085
+ ps: scaleUnambiguousSpacing()
1086
+ }],
1087
+ /**
1088
+ * Padding End
1089
+ * @see https://tailwindcss.com/docs/padding
1090
+ */
1091
+ pe: [{
1092
+ pe: scaleUnambiguousSpacing()
1093
+ }],
1094
+ /**
1095
+ * Padding Top
1096
+ * @see https://tailwindcss.com/docs/padding
1097
+ */
1098
+ pt: [{
1099
+ pt: scaleUnambiguousSpacing()
1100
+ }],
1101
+ /**
1102
+ * Padding Right
1103
+ * @see https://tailwindcss.com/docs/padding
1104
+ */
1105
+ pr: [{
1106
+ pr: scaleUnambiguousSpacing()
1107
+ }],
1108
+ /**
1109
+ * Padding Bottom
1110
+ * @see https://tailwindcss.com/docs/padding
1111
+ */
1112
+ pb: [{
1113
+ pb: scaleUnambiguousSpacing()
1114
+ }],
1115
+ /**
1116
+ * Padding Left
1117
+ * @see https://tailwindcss.com/docs/padding
1118
+ */
1119
+ pl: [{
1120
+ pl: scaleUnambiguousSpacing()
1121
+ }],
1122
+ /**
1123
+ * Margin
1124
+ * @see https://tailwindcss.com/docs/margin
1125
+ */
1126
+ m: [{
1127
+ m: scaleMargin()
1128
+ }],
1129
+ /**
1130
+ * Margin X
1131
+ * @see https://tailwindcss.com/docs/margin
1132
+ */
1133
+ mx: [{
1134
+ mx: scaleMargin()
1135
+ }],
1136
+ /**
1137
+ * Margin Y
1138
+ * @see https://tailwindcss.com/docs/margin
1139
+ */
1140
+ my: [{
1141
+ my: scaleMargin()
1142
+ }],
1143
+ /**
1144
+ * Margin Start
1145
+ * @see https://tailwindcss.com/docs/margin
1146
+ */
1147
+ ms: [{
1148
+ ms: scaleMargin()
1149
+ }],
1150
+ /**
1151
+ * Margin End
1152
+ * @see https://tailwindcss.com/docs/margin
1153
+ */
1154
+ me: [{
1155
+ me: scaleMargin()
1156
+ }],
1157
+ /**
1158
+ * Margin Top
1159
+ * @see https://tailwindcss.com/docs/margin
1160
+ */
1161
+ mt: [{
1162
+ mt: scaleMargin()
1163
+ }],
1164
+ /**
1165
+ * Margin Right
1166
+ * @see https://tailwindcss.com/docs/margin
1167
+ */
1168
+ mr: [{
1169
+ mr: scaleMargin()
1170
+ }],
1171
+ /**
1172
+ * Margin Bottom
1173
+ * @see https://tailwindcss.com/docs/margin
1174
+ */
1175
+ mb: [{
1176
+ mb: scaleMargin()
1177
+ }],
1178
+ /**
1179
+ * Margin Left
1180
+ * @see https://tailwindcss.com/docs/margin
1181
+ */
1182
+ ml: [{
1183
+ ml: scaleMargin()
1184
+ }],
1185
+ /**
1186
+ * Space Between X
1187
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1188
+ */
1189
+ "space-x": [{
1190
+ "space-x": scaleUnambiguousSpacing()
1191
+ }],
1192
+ /**
1193
+ * Space Between X Reverse
1194
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1195
+ */
1196
+ "space-x-reverse": ["space-x-reverse"],
1197
+ /**
1198
+ * Space Between Y
1199
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1200
+ */
1201
+ "space-y": [{
1202
+ "space-y": scaleUnambiguousSpacing()
1203
+ }],
1204
+ /**
1205
+ * Space Between Y Reverse
1206
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1207
+ */
1208
+ "space-y-reverse": ["space-y-reverse"],
1209
+ // --------------
1210
+ // --- Sizing ---
1211
+ // --------------
1212
+ /**
1213
+ * Size
1214
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
1215
+ */
1216
+ size: [{
1217
+ size: scaleSizing()
1218
+ }],
1219
+ /**
1220
+ * Width
1221
+ * @see https://tailwindcss.com/docs/width
1222
+ */
1223
+ w: [{
1224
+ w: [themeContainer, "screen", ...scaleSizing()]
1225
+ }],
1226
+ /**
1227
+ * Min-Width
1228
+ * @see https://tailwindcss.com/docs/min-width
1229
+ */
1230
+ "min-w": [{
1231
+ "min-w": [
1232
+ themeContainer,
1233
+ "screen",
1234
+ /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1235
+ "none",
1236
+ ...scaleSizing()
1237
+ ]
1238
+ }],
1239
+ /**
1240
+ * Max-Width
1241
+ * @see https://tailwindcss.com/docs/max-width
1242
+ */
1243
+ "max-w": [{
1244
+ "max-w": [
1245
+ themeContainer,
1246
+ "screen",
1247
+ "none",
1248
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1249
+ "prose",
1250
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1251
+ {
1252
+ screen: [themeBreakpoint]
1253
+ },
1254
+ ...scaleSizing()
1255
+ ]
1256
+ }],
1257
+ /**
1258
+ * Height
1259
+ * @see https://tailwindcss.com/docs/height
1260
+ */
1261
+ h: [{
1262
+ h: ["screen", "lh", ...scaleSizing()]
1263
+ }],
1264
+ /**
1265
+ * Min-Height
1266
+ * @see https://tailwindcss.com/docs/min-height
1267
+ */
1268
+ "min-h": [{
1269
+ "min-h": ["screen", "lh", "none", ...scaleSizing()]
1270
+ }],
1271
+ /**
1272
+ * Max-Height
1273
+ * @see https://tailwindcss.com/docs/max-height
1274
+ */
1275
+ "max-h": [{
1276
+ "max-h": ["screen", "lh", ...scaleSizing()]
1277
+ }],
1278
+ // ------------------
1279
+ // --- Typography ---
1280
+ // ------------------
1281
+ /**
1282
+ * Font Size
1283
+ * @see https://tailwindcss.com/docs/font-size
1284
+ */
1285
+ "font-size": [{
1286
+ text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
1287
+ }],
1288
+ /**
1289
+ * Font Smoothing
1290
+ * @see https://tailwindcss.com/docs/font-smoothing
1291
+ */
1292
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1293
+ /**
1294
+ * Font Style
1295
+ * @see https://tailwindcss.com/docs/font-style
1296
+ */
1297
+ "font-style": ["italic", "not-italic"],
1298
+ /**
1299
+ * Font Weight
1300
+ * @see https://tailwindcss.com/docs/font-weight
1301
+ */
1302
+ "font-weight": [{
1303
+ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
1304
+ }],
1305
+ /**
1306
+ * Font Stretch
1307
+ * @see https://tailwindcss.com/docs/font-stretch
1308
+ */
1309
+ "font-stretch": [{
1310
+ "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
1311
+ }],
1312
+ /**
1313
+ * Font Family
1314
+ * @see https://tailwindcss.com/docs/font-family
1315
+ */
1316
+ "font-family": [{
1317
+ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
1318
+ }],
1319
+ /**
1320
+ * Font Variant Numeric
1321
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1322
+ */
1323
+ "fvn-normal": ["normal-nums"],
1324
+ /**
1325
+ * Font Variant Numeric
1326
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1327
+ */
1328
+ "fvn-ordinal": ["ordinal"],
1329
+ /**
1330
+ * Font Variant Numeric
1331
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1332
+ */
1333
+ "fvn-slashed-zero": ["slashed-zero"],
1334
+ /**
1335
+ * Font Variant Numeric
1336
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1337
+ */
1338
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
1339
+ /**
1340
+ * Font Variant Numeric
1341
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1342
+ */
1343
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
1344
+ /**
1345
+ * Font Variant Numeric
1346
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1347
+ */
1348
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1349
+ /**
1350
+ * Letter Spacing
1351
+ * @see https://tailwindcss.com/docs/letter-spacing
1352
+ */
1353
+ tracking: [{
1354
+ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
1355
+ }],
1356
+ /**
1357
+ * Line Clamp
1358
+ * @see https://tailwindcss.com/docs/line-clamp
1359
+ */
1360
+ "line-clamp": [{
1361
+ "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
1362
+ }],
1363
+ /**
1364
+ * Line Height
1365
+ * @see https://tailwindcss.com/docs/line-height
1366
+ */
1367
+ leading: [{
1368
+ leading: [
1369
+ /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1370
+ themeLeading,
1371
+ ...scaleUnambiguousSpacing()
1372
+ ]
1373
+ }],
1374
+ /**
1375
+ * List Style Image
1376
+ * @see https://tailwindcss.com/docs/list-style-image
1377
+ */
1378
+ "list-image": [{
1379
+ "list-image": ["none", isArbitraryVariable, isArbitraryValue]
1380
+ }],
1381
+ /**
1382
+ * List Style Position
1383
+ * @see https://tailwindcss.com/docs/list-style-position
1384
+ */
1385
+ "list-style-position": [{
1386
+ list: ["inside", "outside"]
1387
+ }],
1388
+ /**
1389
+ * List Style Type
1390
+ * @see https://tailwindcss.com/docs/list-style-type
1391
+ */
1392
+ "list-style-type": [{
1393
+ list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
1394
+ }],
1395
+ /**
1396
+ * Text Alignment
1397
+ * @see https://tailwindcss.com/docs/text-align
1398
+ */
1399
+ "text-alignment": [{
1400
+ text: ["left", "center", "right", "justify", "start", "end"]
1401
+ }],
1402
+ /**
1403
+ * Placeholder Color
1404
+ * @deprecated since Tailwind CSS v3.0.0
1405
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
1406
+ */
1407
+ "placeholder-color": [{
1408
+ placeholder: scaleColor()
1409
+ }],
1410
+ /**
1411
+ * Text Color
1412
+ * @see https://tailwindcss.com/docs/text-color
1413
+ */
1414
+ "text-color": [{
1415
+ text: scaleColor()
1416
+ }],
1417
+ /**
1418
+ * Text Decoration
1419
+ * @see https://tailwindcss.com/docs/text-decoration
1420
+ */
1421
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1422
+ /**
1423
+ * Text Decoration Style
1424
+ * @see https://tailwindcss.com/docs/text-decoration-style
1425
+ */
1426
+ "text-decoration-style": [{
1427
+ decoration: [...scaleLineStyle(), "wavy"]
1428
+ }],
1429
+ /**
1430
+ * Text Decoration Thickness
1431
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1432
+ */
1433
+ "text-decoration-thickness": [{
1434
+ decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
1435
+ }],
1436
+ /**
1437
+ * Text Decoration Color
1438
+ * @see https://tailwindcss.com/docs/text-decoration-color
1439
+ */
1440
+ "text-decoration-color": [{
1441
+ decoration: scaleColor()
1442
+ }],
1443
+ /**
1444
+ * Text Underline Offset
1445
+ * @see https://tailwindcss.com/docs/text-underline-offset
1446
+ */
1447
+ "underline-offset": [{
1448
+ "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
1449
+ }],
1450
+ /**
1451
+ * Text Transform
1452
+ * @see https://tailwindcss.com/docs/text-transform
1453
+ */
1454
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1455
+ /**
1456
+ * Text Overflow
1457
+ * @see https://tailwindcss.com/docs/text-overflow
1458
+ */
1459
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1460
+ /**
1461
+ * Text Wrap
1462
+ * @see https://tailwindcss.com/docs/text-wrap
1463
+ */
1464
+ "text-wrap": [{
1465
+ text: ["wrap", "nowrap", "balance", "pretty"]
1466
+ }],
1467
+ /**
1468
+ * Text Indent
1469
+ * @see https://tailwindcss.com/docs/text-indent
1470
+ */
1471
+ indent: [{
1472
+ indent: scaleUnambiguousSpacing()
1473
+ }],
1474
+ /**
1475
+ * Vertical Alignment
1476
+ * @see https://tailwindcss.com/docs/vertical-align
1477
+ */
1478
+ "vertical-align": [{
1479
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
1480
+ }],
1481
+ /**
1482
+ * Whitespace
1483
+ * @see https://tailwindcss.com/docs/whitespace
1484
+ */
1485
+ whitespace: [{
1486
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1487
+ }],
1488
+ /**
1489
+ * Word Break
1490
+ * @see https://tailwindcss.com/docs/word-break
1491
+ */
1492
+ break: [{
1493
+ break: ["normal", "words", "all", "keep"]
1494
+ }],
1495
+ /**
1496
+ * Overflow Wrap
1497
+ * @see https://tailwindcss.com/docs/overflow-wrap
1498
+ */
1499
+ wrap: [{
1500
+ wrap: ["break-word", "anywhere", "normal"]
1501
+ }],
1502
+ /**
1503
+ * Hyphens
1504
+ * @see https://tailwindcss.com/docs/hyphens
1505
+ */
1506
+ hyphens: [{
1507
+ hyphens: ["none", "manual", "auto"]
1508
+ }],
1509
+ /**
1510
+ * Content
1511
+ * @see https://tailwindcss.com/docs/content
1512
+ */
1513
+ content: [{
1514
+ content: ["none", isArbitraryVariable, isArbitraryValue]
1515
+ }],
1516
+ // -------------------
1517
+ // --- Backgrounds ---
1518
+ // -------------------
1519
+ /**
1520
+ * Background Attachment
1521
+ * @see https://tailwindcss.com/docs/background-attachment
1522
+ */
1523
+ "bg-attachment": [{
1524
+ bg: ["fixed", "local", "scroll"]
1525
+ }],
1526
+ /**
1527
+ * Background Clip
1528
+ * @see https://tailwindcss.com/docs/background-clip
1529
+ */
1530
+ "bg-clip": [{
1531
+ "bg-clip": ["border", "padding", "content", "text"]
1532
+ }],
1533
+ /**
1534
+ * Background Origin
1535
+ * @see https://tailwindcss.com/docs/background-origin
1536
+ */
1537
+ "bg-origin": [{
1538
+ "bg-origin": ["border", "padding", "content"]
1539
+ }],
1540
+ /**
1541
+ * Background Position
1542
+ * @see https://tailwindcss.com/docs/background-position
1543
+ */
1544
+ "bg-position": [{
1545
+ bg: scaleBgPosition()
1546
+ }],
1547
+ /**
1548
+ * Background Repeat
1549
+ * @see https://tailwindcss.com/docs/background-repeat
1550
+ */
1551
+ "bg-repeat": [{
1552
+ bg: scaleBgRepeat()
1553
+ }],
1554
+ /**
1555
+ * Background Size
1556
+ * @see https://tailwindcss.com/docs/background-size
1557
+ */
1558
+ "bg-size": [{
1559
+ bg: scaleBgSize()
1560
+ }],
1561
+ /**
1562
+ * Background Image
1563
+ * @see https://tailwindcss.com/docs/background-image
1564
+ */
1565
+ "bg-image": [{
1566
+ bg: ["none", {
1567
+ linear: [{
1568
+ to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1569
+ }, isInteger, isArbitraryVariable, isArbitraryValue],
1570
+ radial: ["", isArbitraryVariable, isArbitraryValue],
1571
+ conic: [isInteger, isArbitraryVariable, isArbitraryValue]
1572
+ }, isArbitraryVariableImage, isArbitraryImage]
1573
+ }],
1574
+ /**
1575
+ * Background Color
1576
+ * @see https://tailwindcss.com/docs/background-color
1577
+ */
1578
+ "bg-color": [{
1579
+ bg: scaleColor()
1580
+ }],
1581
+ /**
1582
+ * Gradient Color Stops From Position
1583
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1584
+ */
1585
+ "gradient-from-pos": [{
1586
+ from: scaleGradientStopPosition()
1587
+ }],
1588
+ /**
1589
+ * Gradient Color Stops Via Position
1590
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1591
+ */
1592
+ "gradient-via-pos": [{
1593
+ via: scaleGradientStopPosition()
1594
+ }],
1595
+ /**
1596
+ * Gradient Color Stops To Position
1597
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1598
+ */
1599
+ "gradient-to-pos": [{
1600
+ to: scaleGradientStopPosition()
1601
+ }],
1602
+ /**
1603
+ * Gradient Color Stops From
1604
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1605
+ */
1606
+ "gradient-from": [{
1607
+ from: scaleColor()
1608
+ }],
1609
+ /**
1610
+ * Gradient Color Stops Via
1611
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1612
+ */
1613
+ "gradient-via": [{
1614
+ via: scaleColor()
1615
+ }],
1616
+ /**
1617
+ * Gradient Color Stops To
1618
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1619
+ */
1620
+ "gradient-to": [{
1621
+ to: scaleColor()
1622
+ }],
1623
+ // ---------------
1624
+ // --- Borders ---
1625
+ // ---------------
1626
+ /**
1627
+ * Border Radius
1628
+ * @see https://tailwindcss.com/docs/border-radius
1629
+ */
1630
+ rounded: [{
1631
+ rounded: scaleRadius()
1632
+ }],
1633
+ /**
1634
+ * Border Radius Start
1635
+ * @see https://tailwindcss.com/docs/border-radius
1636
+ */
1637
+ "rounded-s": [{
1638
+ "rounded-s": scaleRadius()
1639
+ }],
1640
+ /**
1641
+ * Border Radius End
1642
+ * @see https://tailwindcss.com/docs/border-radius
1643
+ */
1644
+ "rounded-e": [{
1645
+ "rounded-e": scaleRadius()
1646
+ }],
1647
+ /**
1648
+ * Border Radius Top
1649
+ * @see https://tailwindcss.com/docs/border-radius
1650
+ */
1651
+ "rounded-t": [{
1652
+ "rounded-t": scaleRadius()
1653
+ }],
1654
+ /**
1655
+ * Border Radius Right
1656
+ * @see https://tailwindcss.com/docs/border-radius
1657
+ */
1658
+ "rounded-r": [{
1659
+ "rounded-r": scaleRadius()
1660
+ }],
1661
+ /**
1662
+ * Border Radius Bottom
1663
+ * @see https://tailwindcss.com/docs/border-radius
1664
+ */
1665
+ "rounded-b": [{
1666
+ "rounded-b": scaleRadius()
1667
+ }],
1668
+ /**
1669
+ * Border Radius Left
1670
+ * @see https://tailwindcss.com/docs/border-radius
1671
+ */
1672
+ "rounded-l": [{
1673
+ "rounded-l": scaleRadius()
1674
+ }],
1675
+ /**
1676
+ * Border Radius Start Start
1677
+ * @see https://tailwindcss.com/docs/border-radius
1678
+ */
1679
+ "rounded-ss": [{
1680
+ "rounded-ss": scaleRadius()
1681
+ }],
1682
+ /**
1683
+ * Border Radius Start End
1684
+ * @see https://tailwindcss.com/docs/border-radius
1685
+ */
1686
+ "rounded-se": [{
1687
+ "rounded-se": scaleRadius()
1688
+ }],
1689
+ /**
1690
+ * Border Radius End End
1691
+ * @see https://tailwindcss.com/docs/border-radius
1692
+ */
1693
+ "rounded-ee": [{
1694
+ "rounded-ee": scaleRadius()
1695
+ }],
1696
+ /**
1697
+ * Border Radius End Start
1698
+ * @see https://tailwindcss.com/docs/border-radius
1699
+ */
1700
+ "rounded-es": [{
1701
+ "rounded-es": scaleRadius()
1702
+ }],
1703
+ /**
1704
+ * Border Radius Top Left
1705
+ * @see https://tailwindcss.com/docs/border-radius
1706
+ */
1707
+ "rounded-tl": [{
1708
+ "rounded-tl": scaleRadius()
1709
+ }],
1710
+ /**
1711
+ * Border Radius Top Right
1712
+ * @see https://tailwindcss.com/docs/border-radius
1713
+ */
1714
+ "rounded-tr": [{
1715
+ "rounded-tr": scaleRadius()
1716
+ }],
1717
+ /**
1718
+ * Border Radius Bottom Right
1719
+ * @see https://tailwindcss.com/docs/border-radius
1720
+ */
1721
+ "rounded-br": [{
1722
+ "rounded-br": scaleRadius()
1723
+ }],
1724
+ /**
1725
+ * Border Radius Bottom Left
1726
+ * @see https://tailwindcss.com/docs/border-radius
1727
+ */
1728
+ "rounded-bl": [{
1729
+ "rounded-bl": scaleRadius()
1730
+ }],
1731
+ /**
1732
+ * Border Width
1733
+ * @see https://tailwindcss.com/docs/border-width
1734
+ */
1735
+ "border-w": [{
1736
+ border: scaleBorderWidth()
1737
+ }],
1738
+ /**
1739
+ * Border Width X
1740
+ * @see https://tailwindcss.com/docs/border-width
1741
+ */
1742
+ "border-w-x": [{
1743
+ "border-x": scaleBorderWidth()
1744
+ }],
1745
+ /**
1746
+ * Border Width Y
1747
+ * @see https://tailwindcss.com/docs/border-width
1748
+ */
1749
+ "border-w-y": [{
1750
+ "border-y": scaleBorderWidth()
1751
+ }],
1752
+ /**
1753
+ * Border Width Start
1754
+ * @see https://tailwindcss.com/docs/border-width
1755
+ */
1756
+ "border-w-s": [{
1757
+ "border-s": scaleBorderWidth()
1758
+ }],
1759
+ /**
1760
+ * Border Width End
1761
+ * @see https://tailwindcss.com/docs/border-width
1762
+ */
1763
+ "border-w-e": [{
1764
+ "border-e": scaleBorderWidth()
1765
+ }],
1766
+ /**
1767
+ * Border Width Top
1768
+ * @see https://tailwindcss.com/docs/border-width
1769
+ */
1770
+ "border-w-t": [{
1771
+ "border-t": scaleBorderWidth()
1772
+ }],
1773
+ /**
1774
+ * Border Width Right
1775
+ * @see https://tailwindcss.com/docs/border-width
1776
+ */
1777
+ "border-w-r": [{
1778
+ "border-r": scaleBorderWidth()
1779
+ }],
1780
+ /**
1781
+ * Border Width Bottom
1782
+ * @see https://tailwindcss.com/docs/border-width
1783
+ */
1784
+ "border-w-b": [{
1785
+ "border-b": scaleBorderWidth()
1786
+ }],
1787
+ /**
1788
+ * Border Width Left
1789
+ * @see https://tailwindcss.com/docs/border-width
1790
+ */
1791
+ "border-w-l": [{
1792
+ "border-l": scaleBorderWidth()
1793
+ }],
1794
+ /**
1795
+ * Divide Width X
1796
+ * @see https://tailwindcss.com/docs/border-width#between-children
1797
+ */
1798
+ "divide-x": [{
1799
+ "divide-x": scaleBorderWidth()
1800
+ }],
1801
+ /**
1802
+ * Divide Width X Reverse
1803
+ * @see https://tailwindcss.com/docs/border-width#between-children
1804
+ */
1805
+ "divide-x-reverse": ["divide-x-reverse"],
1806
+ /**
1807
+ * Divide Width Y
1808
+ * @see https://tailwindcss.com/docs/border-width#between-children
1809
+ */
1810
+ "divide-y": [{
1811
+ "divide-y": scaleBorderWidth()
1812
+ }],
1813
+ /**
1814
+ * Divide Width Y Reverse
1815
+ * @see https://tailwindcss.com/docs/border-width#between-children
1816
+ */
1817
+ "divide-y-reverse": ["divide-y-reverse"],
1818
+ /**
1819
+ * Border Style
1820
+ * @see https://tailwindcss.com/docs/border-style
1821
+ */
1822
+ "border-style": [{
1823
+ border: [...scaleLineStyle(), "hidden", "none"]
1824
+ }],
1825
+ /**
1826
+ * Divide Style
1827
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
1828
+ */
1829
+ "divide-style": [{
1830
+ divide: [...scaleLineStyle(), "hidden", "none"]
1831
+ }],
1832
+ /**
1833
+ * Border Color
1834
+ * @see https://tailwindcss.com/docs/border-color
1835
+ */
1836
+ "border-color": [{
1837
+ border: scaleColor()
1838
+ }],
1839
+ /**
1840
+ * Border Color X
1841
+ * @see https://tailwindcss.com/docs/border-color
1842
+ */
1843
+ "border-color-x": [{
1844
+ "border-x": scaleColor()
1845
+ }],
1846
+ /**
1847
+ * Border Color Y
1848
+ * @see https://tailwindcss.com/docs/border-color
1849
+ */
1850
+ "border-color-y": [{
1851
+ "border-y": scaleColor()
1852
+ }],
1853
+ /**
1854
+ * Border Color S
1855
+ * @see https://tailwindcss.com/docs/border-color
1856
+ */
1857
+ "border-color-s": [{
1858
+ "border-s": scaleColor()
1859
+ }],
1860
+ /**
1861
+ * Border Color E
1862
+ * @see https://tailwindcss.com/docs/border-color
1863
+ */
1864
+ "border-color-e": [{
1865
+ "border-e": scaleColor()
1866
+ }],
1867
+ /**
1868
+ * Border Color Top
1869
+ * @see https://tailwindcss.com/docs/border-color
1870
+ */
1871
+ "border-color-t": [{
1872
+ "border-t": scaleColor()
1873
+ }],
1874
+ /**
1875
+ * Border Color Right
1876
+ * @see https://tailwindcss.com/docs/border-color
1877
+ */
1878
+ "border-color-r": [{
1879
+ "border-r": scaleColor()
1880
+ }],
1881
+ /**
1882
+ * Border Color Bottom
1883
+ * @see https://tailwindcss.com/docs/border-color
1884
+ */
1885
+ "border-color-b": [{
1886
+ "border-b": scaleColor()
1887
+ }],
1888
+ /**
1889
+ * Border Color Left
1890
+ * @see https://tailwindcss.com/docs/border-color
1891
+ */
1892
+ "border-color-l": [{
1893
+ "border-l": scaleColor()
1894
+ }],
1895
+ /**
1896
+ * Divide Color
1897
+ * @see https://tailwindcss.com/docs/divide-color
1898
+ */
1899
+ "divide-color": [{
1900
+ divide: scaleColor()
1901
+ }],
1902
+ /**
1903
+ * Outline Style
1904
+ * @see https://tailwindcss.com/docs/outline-style
1905
+ */
1906
+ "outline-style": [{
1907
+ outline: [...scaleLineStyle(), "none", "hidden"]
1908
+ }],
1909
+ /**
1910
+ * Outline Offset
1911
+ * @see https://tailwindcss.com/docs/outline-offset
1912
+ */
1913
+ "outline-offset": [{
1914
+ "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
1915
+ }],
1916
+ /**
1917
+ * Outline Width
1918
+ * @see https://tailwindcss.com/docs/outline-width
1919
+ */
1920
+ "outline-w": [{
1921
+ outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
1922
+ }],
1923
+ /**
1924
+ * Outline Color
1925
+ * @see https://tailwindcss.com/docs/outline-color
1926
+ */
1927
+ "outline-color": [{
1928
+ outline: scaleColor()
1929
+ }],
1930
+ // ---------------
1931
+ // --- Effects ---
1932
+ // ---------------
1933
+ /**
1934
+ * Box Shadow
1935
+ * @see https://tailwindcss.com/docs/box-shadow
1936
+ */
1937
+ shadow: [{
1938
+ shadow: [
1939
+ // Deprecated since Tailwind CSS v4.0.0
1940
+ "",
1941
+ "none",
1942
+ themeShadow,
1943
+ isArbitraryVariableShadow,
1944
+ isArbitraryShadow
1945
+ ]
1946
+ }],
1947
+ /**
1948
+ * Box Shadow Color
1949
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
1950
+ */
1951
+ "shadow-color": [{
1952
+ shadow: scaleColor()
1953
+ }],
1954
+ /**
1955
+ * Inset Box Shadow
1956
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
1957
+ */
1958
+ "inset-shadow": [{
1959
+ "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
1960
+ }],
1961
+ /**
1962
+ * Inset Box Shadow Color
1963
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
1964
+ */
1965
+ "inset-shadow-color": [{
1966
+ "inset-shadow": scaleColor()
1967
+ }],
1968
+ /**
1969
+ * Ring Width
1970
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
1971
+ */
1972
+ "ring-w": [{
1973
+ ring: scaleBorderWidth()
1974
+ }],
1975
+ /**
1976
+ * Ring Width Inset
1977
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
1978
+ * @deprecated since Tailwind CSS v4.0.0
1979
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1980
+ */
1981
+ "ring-w-inset": ["ring-inset"],
1982
+ /**
1983
+ * Ring Color
1984
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
1985
+ */
1986
+ "ring-color": [{
1987
+ ring: scaleColor()
1988
+ }],
1989
+ /**
1990
+ * Ring Offset Width
1991
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
1992
+ * @deprecated since Tailwind CSS v4.0.0
1993
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1994
+ */
1995
+ "ring-offset-w": [{
1996
+ "ring-offset": [isNumber, isArbitraryLength]
1997
+ }],
1998
+ /**
1999
+ * Ring Offset Color
2000
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
2001
+ * @deprecated since Tailwind CSS v4.0.0
2002
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2003
+ */
2004
+ "ring-offset-color": [{
2005
+ "ring-offset": scaleColor()
2006
+ }],
2007
+ /**
2008
+ * Inset Ring Width
2009
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
2010
+ */
2011
+ "inset-ring-w": [{
2012
+ "inset-ring": scaleBorderWidth()
2013
+ }],
2014
+ /**
2015
+ * Inset Ring Color
2016
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
2017
+ */
2018
+ "inset-ring-color": [{
2019
+ "inset-ring": scaleColor()
2020
+ }],
2021
+ /**
2022
+ * Text Shadow
2023
+ * @see https://tailwindcss.com/docs/text-shadow
2024
+ */
2025
+ "text-shadow": [{
2026
+ "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
2027
+ }],
2028
+ /**
2029
+ * Text Shadow Color
2030
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
2031
+ */
2032
+ "text-shadow-color": [{
2033
+ "text-shadow": scaleColor()
2034
+ }],
2035
+ /**
2036
+ * Opacity
2037
+ * @see https://tailwindcss.com/docs/opacity
2038
+ */
2039
+ opacity: [{
2040
+ opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
2041
+ }],
2042
+ /**
2043
+ * Mix Blend Mode
2044
+ * @see https://tailwindcss.com/docs/mix-blend-mode
2045
+ */
2046
+ "mix-blend": [{
2047
+ "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
2048
+ }],
2049
+ /**
2050
+ * Background Blend Mode
2051
+ * @see https://tailwindcss.com/docs/background-blend-mode
2052
+ */
2053
+ "bg-blend": [{
2054
+ "bg-blend": scaleBlendMode()
2055
+ }],
2056
+ /**
2057
+ * Mask Clip
2058
+ * @see https://tailwindcss.com/docs/mask-clip
2059
+ */
2060
+ "mask-clip": [{
2061
+ "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
2062
+ }, "mask-no-clip"],
2063
+ /**
2064
+ * Mask Composite
2065
+ * @see https://tailwindcss.com/docs/mask-composite
2066
+ */
2067
+ "mask-composite": [{
2068
+ mask: ["add", "subtract", "intersect", "exclude"]
2069
+ }],
2070
+ /**
2071
+ * Mask Image
2072
+ * @see https://tailwindcss.com/docs/mask-image
2073
+ */
2074
+ "mask-image-linear-pos": [{
2075
+ "mask-linear": [isNumber]
2076
+ }],
2077
+ "mask-image-linear-from-pos": [{
2078
+ "mask-linear-from": scaleMaskImagePosition()
2079
+ }],
2080
+ "mask-image-linear-to-pos": [{
2081
+ "mask-linear-to": scaleMaskImagePosition()
2082
+ }],
2083
+ "mask-image-linear-from-color": [{
2084
+ "mask-linear-from": scaleColor()
2085
+ }],
2086
+ "mask-image-linear-to-color": [{
2087
+ "mask-linear-to": scaleColor()
2088
+ }],
2089
+ "mask-image-t-from-pos": [{
2090
+ "mask-t-from": scaleMaskImagePosition()
2091
+ }],
2092
+ "mask-image-t-to-pos": [{
2093
+ "mask-t-to": scaleMaskImagePosition()
2094
+ }],
2095
+ "mask-image-t-from-color": [{
2096
+ "mask-t-from": scaleColor()
2097
+ }],
2098
+ "mask-image-t-to-color": [{
2099
+ "mask-t-to": scaleColor()
2100
+ }],
2101
+ "mask-image-r-from-pos": [{
2102
+ "mask-r-from": scaleMaskImagePosition()
2103
+ }],
2104
+ "mask-image-r-to-pos": [{
2105
+ "mask-r-to": scaleMaskImagePosition()
2106
+ }],
2107
+ "mask-image-r-from-color": [{
2108
+ "mask-r-from": scaleColor()
2109
+ }],
2110
+ "mask-image-r-to-color": [{
2111
+ "mask-r-to": scaleColor()
2112
+ }],
2113
+ "mask-image-b-from-pos": [{
2114
+ "mask-b-from": scaleMaskImagePosition()
2115
+ }],
2116
+ "mask-image-b-to-pos": [{
2117
+ "mask-b-to": scaleMaskImagePosition()
2118
+ }],
2119
+ "mask-image-b-from-color": [{
2120
+ "mask-b-from": scaleColor()
2121
+ }],
2122
+ "mask-image-b-to-color": [{
2123
+ "mask-b-to": scaleColor()
2124
+ }],
2125
+ "mask-image-l-from-pos": [{
2126
+ "mask-l-from": scaleMaskImagePosition()
2127
+ }],
2128
+ "mask-image-l-to-pos": [{
2129
+ "mask-l-to": scaleMaskImagePosition()
2130
+ }],
2131
+ "mask-image-l-from-color": [{
2132
+ "mask-l-from": scaleColor()
2133
+ }],
2134
+ "mask-image-l-to-color": [{
2135
+ "mask-l-to": scaleColor()
2136
+ }],
2137
+ "mask-image-x-from-pos": [{
2138
+ "mask-x-from": scaleMaskImagePosition()
2139
+ }],
2140
+ "mask-image-x-to-pos": [{
2141
+ "mask-x-to": scaleMaskImagePosition()
2142
+ }],
2143
+ "mask-image-x-from-color": [{
2144
+ "mask-x-from": scaleColor()
2145
+ }],
2146
+ "mask-image-x-to-color": [{
2147
+ "mask-x-to": scaleColor()
2148
+ }],
2149
+ "mask-image-y-from-pos": [{
2150
+ "mask-y-from": scaleMaskImagePosition()
2151
+ }],
2152
+ "mask-image-y-to-pos": [{
2153
+ "mask-y-to": scaleMaskImagePosition()
2154
+ }],
2155
+ "mask-image-y-from-color": [{
2156
+ "mask-y-from": scaleColor()
2157
+ }],
2158
+ "mask-image-y-to-color": [{
2159
+ "mask-y-to": scaleColor()
2160
+ }],
2161
+ "mask-image-radial": [{
2162
+ "mask-radial": [isArbitraryVariable, isArbitraryValue]
2163
+ }],
2164
+ "mask-image-radial-from-pos": [{
2165
+ "mask-radial-from": scaleMaskImagePosition()
2166
+ }],
2167
+ "mask-image-radial-to-pos": [{
2168
+ "mask-radial-to": scaleMaskImagePosition()
2169
+ }],
2170
+ "mask-image-radial-from-color": [{
2171
+ "mask-radial-from": scaleColor()
2172
+ }],
2173
+ "mask-image-radial-to-color": [{
2174
+ "mask-radial-to": scaleColor()
2175
+ }],
2176
+ "mask-image-radial-shape": [{
2177
+ "mask-radial": ["circle", "ellipse"]
2178
+ }],
2179
+ "mask-image-radial-size": [{
2180
+ "mask-radial": [{
2181
+ closest: ["side", "corner"],
2182
+ farthest: ["side", "corner"]
2183
+ }]
2184
+ }],
2185
+ "mask-image-radial-pos": [{
2186
+ "mask-radial-at": scalePosition()
2187
+ }],
2188
+ "mask-image-conic-pos": [{
2189
+ "mask-conic": [isNumber]
2190
+ }],
2191
+ "mask-image-conic-from-pos": [{
2192
+ "mask-conic-from": scaleMaskImagePosition()
2193
+ }],
2194
+ "mask-image-conic-to-pos": [{
2195
+ "mask-conic-to": scaleMaskImagePosition()
2196
+ }],
2197
+ "mask-image-conic-from-color": [{
2198
+ "mask-conic-from": scaleColor()
2199
+ }],
2200
+ "mask-image-conic-to-color": [{
2201
+ "mask-conic-to": scaleColor()
2202
+ }],
2203
+ /**
2204
+ * Mask Mode
2205
+ * @see https://tailwindcss.com/docs/mask-mode
2206
+ */
2207
+ "mask-mode": [{
2208
+ mask: ["alpha", "luminance", "match"]
2209
+ }],
2210
+ /**
2211
+ * Mask Origin
2212
+ * @see https://tailwindcss.com/docs/mask-origin
2213
+ */
2214
+ "mask-origin": [{
2215
+ "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
2216
+ }],
2217
+ /**
2218
+ * Mask Position
2219
+ * @see https://tailwindcss.com/docs/mask-position
2220
+ */
2221
+ "mask-position": [{
2222
+ mask: scaleBgPosition()
2223
+ }],
2224
+ /**
2225
+ * Mask Repeat
2226
+ * @see https://tailwindcss.com/docs/mask-repeat
2227
+ */
2228
+ "mask-repeat": [{
2229
+ mask: scaleBgRepeat()
2230
+ }],
2231
+ /**
2232
+ * Mask Size
2233
+ * @see https://tailwindcss.com/docs/mask-size
2234
+ */
2235
+ "mask-size": [{
2236
+ mask: scaleBgSize()
2237
+ }],
2238
+ /**
2239
+ * Mask Type
2240
+ * @see https://tailwindcss.com/docs/mask-type
2241
+ */
2242
+ "mask-type": [{
2243
+ "mask-type": ["alpha", "luminance"]
2244
+ }],
2245
+ /**
2246
+ * Mask Image
2247
+ * @see https://tailwindcss.com/docs/mask-image
2248
+ */
2249
+ "mask-image": [{
2250
+ mask: ["none", isArbitraryVariable, isArbitraryValue]
2251
+ }],
2252
+ // ---------------
2253
+ // --- Filters ---
2254
+ // ---------------
2255
+ /**
2256
+ * Filter
2257
+ * @see https://tailwindcss.com/docs/filter
2258
+ */
2259
+ filter: [{
2260
+ filter: [
2261
+ // Deprecated since Tailwind CSS v3.0.0
2262
+ "",
2263
+ "none",
2264
+ isArbitraryVariable,
2265
+ isArbitraryValue
2266
+ ]
2267
+ }],
2268
+ /**
2269
+ * Blur
2270
+ * @see https://tailwindcss.com/docs/blur
2271
+ */
2272
+ blur: [{
2273
+ blur: scaleBlur()
2274
+ }],
2275
+ /**
2276
+ * Brightness
2277
+ * @see https://tailwindcss.com/docs/brightness
2278
+ */
2279
+ brightness: [{
2280
+ brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
2281
+ }],
2282
+ /**
2283
+ * Contrast
2284
+ * @see https://tailwindcss.com/docs/contrast
2285
+ */
2286
+ contrast: [{
2287
+ contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
2288
+ }],
2289
+ /**
2290
+ * Drop Shadow
2291
+ * @see https://tailwindcss.com/docs/drop-shadow
2292
+ */
2293
+ "drop-shadow": [{
2294
+ "drop-shadow": [
2295
+ // Deprecated since Tailwind CSS v4.0.0
2296
+ "",
2297
+ "none",
2298
+ themeDropShadow,
2299
+ isArbitraryVariableShadow,
2300
+ isArbitraryShadow
2301
+ ]
2302
+ }],
2303
+ /**
2304
+ * Drop Shadow Color
2305
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
2306
+ */
2307
+ "drop-shadow-color": [{
2308
+ "drop-shadow": scaleColor()
2309
+ }],
2310
+ /**
2311
+ * Grayscale
2312
+ * @see https://tailwindcss.com/docs/grayscale
2313
+ */
2314
+ grayscale: [{
2315
+ grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2316
+ }],
2317
+ /**
2318
+ * Hue Rotate
2319
+ * @see https://tailwindcss.com/docs/hue-rotate
2320
+ */
2321
+ "hue-rotate": [{
2322
+ "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
2323
+ }],
2324
+ /**
2325
+ * Invert
2326
+ * @see https://tailwindcss.com/docs/invert
2327
+ */
2328
+ invert: [{
2329
+ invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2330
+ }],
2331
+ /**
2332
+ * Saturate
2333
+ * @see https://tailwindcss.com/docs/saturate
2334
+ */
2335
+ saturate: [{
2336
+ saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
2337
+ }],
2338
+ /**
2339
+ * Sepia
2340
+ * @see https://tailwindcss.com/docs/sepia
2341
+ */
2342
+ sepia: [{
2343
+ sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2344
+ }],
2345
+ /**
2346
+ * Backdrop Filter
2347
+ * @see https://tailwindcss.com/docs/backdrop-filter
2348
+ */
2349
+ "backdrop-filter": [{
2350
+ "backdrop-filter": [
2351
+ // Deprecated since Tailwind CSS v3.0.0
2352
+ "",
2353
+ "none",
2354
+ isArbitraryVariable,
2355
+ isArbitraryValue
2356
+ ]
2357
+ }],
2358
+ /**
2359
+ * Backdrop Blur
2360
+ * @see https://tailwindcss.com/docs/backdrop-blur
2361
+ */
2362
+ "backdrop-blur": [{
2363
+ "backdrop-blur": scaleBlur()
2364
+ }],
2365
+ /**
2366
+ * Backdrop Brightness
2367
+ * @see https://tailwindcss.com/docs/backdrop-brightness
2368
+ */
2369
+ "backdrop-brightness": [{
2370
+ "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
2371
+ }],
2372
+ /**
2373
+ * Backdrop Contrast
2374
+ * @see https://tailwindcss.com/docs/backdrop-contrast
2375
+ */
2376
+ "backdrop-contrast": [{
2377
+ "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
2378
+ }],
2379
+ /**
2380
+ * Backdrop Grayscale
2381
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2382
+ */
2383
+ "backdrop-grayscale": [{
2384
+ "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2385
+ }],
2386
+ /**
2387
+ * Backdrop Hue Rotate
2388
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2389
+ */
2390
+ "backdrop-hue-rotate": [{
2391
+ "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
2392
+ }],
2393
+ /**
2394
+ * Backdrop Invert
2395
+ * @see https://tailwindcss.com/docs/backdrop-invert
2396
+ */
2397
+ "backdrop-invert": [{
2398
+ "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2399
+ }],
2400
+ /**
2401
+ * Backdrop Opacity
2402
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2403
+ */
2404
+ "backdrop-opacity": [{
2405
+ "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
2406
+ }],
2407
+ /**
2408
+ * Backdrop Saturate
2409
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2410
+ */
2411
+ "backdrop-saturate": [{
2412
+ "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
2413
+ }],
2414
+ /**
2415
+ * Backdrop Sepia
2416
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2417
+ */
2418
+ "backdrop-sepia": [{
2419
+ "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2420
+ }],
2421
+ // --------------
2422
+ // --- Tables ---
2423
+ // --------------
2424
+ /**
2425
+ * Border Collapse
2426
+ * @see https://tailwindcss.com/docs/border-collapse
2427
+ */
2428
+ "border-collapse": [{
2429
+ border: ["collapse", "separate"]
2430
+ }],
2431
+ /**
2432
+ * Border Spacing
2433
+ * @see https://tailwindcss.com/docs/border-spacing
2434
+ */
2435
+ "border-spacing": [{
2436
+ "border-spacing": scaleUnambiguousSpacing()
2437
+ }],
2438
+ /**
2439
+ * Border Spacing X
2440
+ * @see https://tailwindcss.com/docs/border-spacing
2441
+ */
2442
+ "border-spacing-x": [{
2443
+ "border-spacing-x": scaleUnambiguousSpacing()
2444
+ }],
2445
+ /**
2446
+ * Border Spacing Y
2447
+ * @see https://tailwindcss.com/docs/border-spacing
2448
+ */
2449
+ "border-spacing-y": [{
2450
+ "border-spacing-y": scaleUnambiguousSpacing()
2451
+ }],
2452
+ /**
2453
+ * Table Layout
2454
+ * @see https://tailwindcss.com/docs/table-layout
2455
+ */
2456
+ "table-layout": [{
2457
+ table: ["auto", "fixed"]
2458
+ }],
2459
+ /**
2460
+ * Caption Side
2461
+ * @see https://tailwindcss.com/docs/caption-side
2462
+ */
2463
+ caption: [{
2464
+ caption: ["top", "bottom"]
2465
+ }],
2466
+ // ---------------------------------
2467
+ // --- Transitions and Animation ---
2468
+ // ---------------------------------
2469
+ /**
2470
+ * Transition Property
2471
+ * @see https://tailwindcss.com/docs/transition-property
2472
+ */
2473
+ transition: [{
2474
+ transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
2475
+ }],
2476
+ /**
2477
+ * Transition Behavior
2478
+ * @see https://tailwindcss.com/docs/transition-behavior
2479
+ */
2480
+ "transition-behavior": [{
2481
+ transition: ["normal", "discrete"]
2482
+ }],
2483
+ /**
2484
+ * Transition Duration
2485
+ * @see https://tailwindcss.com/docs/transition-duration
2486
+ */
2487
+ duration: [{
2488
+ duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
2489
+ }],
2490
+ /**
2491
+ * Transition Timing Function
2492
+ * @see https://tailwindcss.com/docs/transition-timing-function
2493
+ */
2494
+ ease: [{
2495
+ ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
2496
+ }],
2497
+ /**
2498
+ * Transition Delay
2499
+ * @see https://tailwindcss.com/docs/transition-delay
2500
+ */
2501
+ delay: [{
2502
+ delay: [isNumber, isArbitraryVariable, isArbitraryValue]
2503
+ }],
2504
+ /**
2505
+ * Animation
2506
+ * @see https://tailwindcss.com/docs/animation
2507
+ */
2508
+ animate: [{
2509
+ animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
2510
+ }],
2511
+ // ------------------
2512
+ // --- Transforms ---
2513
+ // ------------------
2514
+ /**
2515
+ * Backface Visibility
2516
+ * @see https://tailwindcss.com/docs/backface-visibility
2517
+ */
2518
+ backface: [{
2519
+ backface: ["hidden", "visible"]
2520
+ }],
2521
+ /**
2522
+ * Perspective
2523
+ * @see https://tailwindcss.com/docs/perspective
2524
+ */
2525
+ perspective: [{
2526
+ perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
2527
+ }],
2528
+ /**
2529
+ * Perspective Origin
2530
+ * @see https://tailwindcss.com/docs/perspective-origin
2531
+ */
2532
+ "perspective-origin": [{
2533
+ "perspective-origin": scalePositionWithArbitrary()
2534
+ }],
2535
+ /**
2536
+ * Rotate
2537
+ * @see https://tailwindcss.com/docs/rotate
2538
+ */
2539
+ rotate: [{
2540
+ rotate: scaleRotate()
2541
+ }],
2542
+ /**
2543
+ * Rotate X
2544
+ * @see https://tailwindcss.com/docs/rotate
2545
+ */
2546
+ "rotate-x": [{
2547
+ "rotate-x": scaleRotate()
2548
+ }],
2549
+ /**
2550
+ * Rotate Y
2551
+ * @see https://tailwindcss.com/docs/rotate
2552
+ */
2553
+ "rotate-y": [{
2554
+ "rotate-y": scaleRotate()
2555
+ }],
2556
+ /**
2557
+ * Rotate Z
2558
+ * @see https://tailwindcss.com/docs/rotate
2559
+ */
2560
+ "rotate-z": [{
2561
+ "rotate-z": scaleRotate()
2562
+ }],
2563
+ /**
2564
+ * Scale
2565
+ * @see https://tailwindcss.com/docs/scale
2566
+ */
2567
+ scale: [{
2568
+ scale: scaleScale()
2569
+ }],
2570
+ /**
2571
+ * Scale X
2572
+ * @see https://tailwindcss.com/docs/scale
2573
+ */
2574
+ "scale-x": [{
2575
+ "scale-x": scaleScale()
2576
+ }],
2577
+ /**
2578
+ * Scale Y
2579
+ * @see https://tailwindcss.com/docs/scale
2580
+ */
2581
+ "scale-y": [{
2582
+ "scale-y": scaleScale()
2583
+ }],
2584
+ /**
2585
+ * Scale Z
2586
+ * @see https://tailwindcss.com/docs/scale
2587
+ */
2588
+ "scale-z": [{
2589
+ "scale-z": scaleScale()
2590
+ }],
2591
+ /**
2592
+ * Scale 3D
2593
+ * @see https://tailwindcss.com/docs/scale
2594
+ */
2595
+ "scale-3d": ["scale-3d"],
2596
+ /**
2597
+ * Skew
2598
+ * @see https://tailwindcss.com/docs/skew
2599
+ */
2600
+ skew: [{
2601
+ skew: scaleSkew()
2602
+ }],
2603
+ /**
2604
+ * Skew X
2605
+ * @see https://tailwindcss.com/docs/skew
2606
+ */
2607
+ "skew-x": [{
2608
+ "skew-x": scaleSkew()
2609
+ }],
2610
+ /**
2611
+ * Skew Y
2612
+ * @see https://tailwindcss.com/docs/skew
2613
+ */
2614
+ "skew-y": [{
2615
+ "skew-y": scaleSkew()
2616
+ }],
2617
+ /**
2618
+ * Transform
2619
+ * @see https://tailwindcss.com/docs/transform
2620
+ */
2621
+ transform: [{
2622
+ transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
2623
+ }],
2624
+ /**
2625
+ * Transform Origin
2626
+ * @see https://tailwindcss.com/docs/transform-origin
2627
+ */
2628
+ "transform-origin": [{
2629
+ origin: scalePositionWithArbitrary()
2630
+ }],
2631
+ /**
2632
+ * Transform Style
2633
+ * @see https://tailwindcss.com/docs/transform-style
2634
+ */
2635
+ "transform-style": [{
2636
+ transform: ["3d", "flat"]
2637
+ }],
2638
+ /**
2639
+ * Translate
2640
+ * @see https://tailwindcss.com/docs/translate
2641
+ */
2642
+ translate: [{
2643
+ translate: scaleTranslate()
2644
+ }],
2645
+ /**
2646
+ * Translate X
2647
+ * @see https://tailwindcss.com/docs/translate
2648
+ */
2649
+ "translate-x": [{
2650
+ "translate-x": scaleTranslate()
2651
+ }],
2652
+ /**
2653
+ * Translate Y
2654
+ * @see https://tailwindcss.com/docs/translate
2655
+ */
2656
+ "translate-y": [{
2657
+ "translate-y": scaleTranslate()
2658
+ }],
2659
+ /**
2660
+ * Translate Z
2661
+ * @see https://tailwindcss.com/docs/translate
2662
+ */
2663
+ "translate-z": [{
2664
+ "translate-z": scaleTranslate()
2665
+ }],
2666
+ /**
2667
+ * Translate None
2668
+ * @see https://tailwindcss.com/docs/translate
2669
+ */
2670
+ "translate-none": ["translate-none"],
2671
+ // ---------------------
2672
+ // --- Interactivity ---
2673
+ // ---------------------
2674
+ /**
2675
+ * Accent Color
2676
+ * @see https://tailwindcss.com/docs/accent-color
2677
+ */
2678
+ accent: [{
2679
+ accent: scaleColor()
2680
+ }],
2681
+ /**
2682
+ * Appearance
2683
+ * @see https://tailwindcss.com/docs/appearance
2684
+ */
2685
+ appearance: [{
2686
+ appearance: ["none", "auto"]
2687
+ }],
2688
+ /**
2689
+ * Caret Color
2690
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2691
+ */
2692
+ "caret-color": [{
2693
+ caret: scaleColor()
2694
+ }],
2695
+ /**
2696
+ * Color Scheme
2697
+ * @see https://tailwindcss.com/docs/color-scheme
2698
+ */
2699
+ "color-scheme": [{
2700
+ scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
2701
+ }],
2702
+ /**
2703
+ * Cursor
2704
+ * @see https://tailwindcss.com/docs/cursor
2705
+ */
2706
+ cursor: [{
2707
+ 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]
2708
+ }],
2709
+ /**
2710
+ * Field Sizing
2711
+ * @see https://tailwindcss.com/docs/field-sizing
2712
+ */
2713
+ "field-sizing": [{
2714
+ "field-sizing": ["fixed", "content"]
2715
+ }],
2716
+ /**
2717
+ * Pointer Events
2718
+ * @see https://tailwindcss.com/docs/pointer-events
2719
+ */
2720
+ "pointer-events": [{
2721
+ "pointer-events": ["auto", "none"]
2722
+ }],
2723
+ /**
2724
+ * Resize
2725
+ * @see https://tailwindcss.com/docs/resize
2726
+ */
2727
+ resize: [{
2728
+ resize: ["none", "", "y", "x"]
2729
+ }],
2730
+ /**
2731
+ * Scroll Behavior
2732
+ * @see https://tailwindcss.com/docs/scroll-behavior
2733
+ */
2734
+ "scroll-behavior": [{
2735
+ scroll: ["auto", "smooth"]
2736
+ }],
2737
+ /**
2738
+ * Scroll Margin
2739
+ * @see https://tailwindcss.com/docs/scroll-margin
2740
+ */
2741
+ "scroll-m": [{
2742
+ "scroll-m": scaleUnambiguousSpacing()
2743
+ }],
2744
+ /**
2745
+ * Scroll Margin X
2746
+ * @see https://tailwindcss.com/docs/scroll-margin
2747
+ */
2748
+ "scroll-mx": [{
2749
+ "scroll-mx": scaleUnambiguousSpacing()
2750
+ }],
2751
+ /**
2752
+ * Scroll Margin Y
2753
+ * @see https://tailwindcss.com/docs/scroll-margin
2754
+ */
2755
+ "scroll-my": [{
2756
+ "scroll-my": scaleUnambiguousSpacing()
2757
+ }],
2758
+ /**
2759
+ * Scroll Margin Start
2760
+ * @see https://tailwindcss.com/docs/scroll-margin
2761
+ */
2762
+ "scroll-ms": [{
2763
+ "scroll-ms": scaleUnambiguousSpacing()
2764
+ }],
2765
+ /**
2766
+ * Scroll Margin End
2767
+ * @see https://tailwindcss.com/docs/scroll-margin
2768
+ */
2769
+ "scroll-me": [{
2770
+ "scroll-me": scaleUnambiguousSpacing()
2771
+ }],
2772
+ /**
2773
+ * Scroll Margin Top
2774
+ * @see https://tailwindcss.com/docs/scroll-margin
2775
+ */
2776
+ "scroll-mt": [{
2777
+ "scroll-mt": scaleUnambiguousSpacing()
2778
+ }],
2779
+ /**
2780
+ * Scroll Margin Right
2781
+ * @see https://tailwindcss.com/docs/scroll-margin
2782
+ */
2783
+ "scroll-mr": [{
2784
+ "scroll-mr": scaleUnambiguousSpacing()
2785
+ }],
2786
+ /**
2787
+ * Scroll Margin Bottom
2788
+ * @see https://tailwindcss.com/docs/scroll-margin
2789
+ */
2790
+ "scroll-mb": [{
2791
+ "scroll-mb": scaleUnambiguousSpacing()
2792
+ }],
2793
+ /**
2794
+ * Scroll Margin Left
2795
+ * @see https://tailwindcss.com/docs/scroll-margin
2796
+ */
2797
+ "scroll-ml": [{
2798
+ "scroll-ml": scaleUnambiguousSpacing()
2799
+ }],
2800
+ /**
2801
+ * Scroll Padding
2802
+ * @see https://tailwindcss.com/docs/scroll-padding
2803
+ */
2804
+ "scroll-p": [{
2805
+ "scroll-p": scaleUnambiguousSpacing()
2806
+ }],
2807
+ /**
2808
+ * Scroll Padding X
2809
+ * @see https://tailwindcss.com/docs/scroll-padding
2810
+ */
2811
+ "scroll-px": [{
2812
+ "scroll-px": scaleUnambiguousSpacing()
2813
+ }],
2814
+ /**
2815
+ * Scroll Padding Y
2816
+ * @see https://tailwindcss.com/docs/scroll-padding
2817
+ */
2818
+ "scroll-py": [{
2819
+ "scroll-py": scaleUnambiguousSpacing()
2820
+ }],
2821
+ /**
2822
+ * Scroll Padding Start
2823
+ * @see https://tailwindcss.com/docs/scroll-padding
2824
+ */
2825
+ "scroll-ps": [{
2826
+ "scroll-ps": scaleUnambiguousSpacing()
2827
+ }],
2828
+ /**
2829
+ * Scroll Padding End
2830
+ * @see https://tailwindcss.com/docs/scroll-padding
2831
+ */
2832
+ "scroll-pe": [{
2833
+ "scroll-pe": scaleUnambiguousSpacing()
2834
+ }],
2835
+ /**
2836
+ * Scroll Padding Top
2837
+ * @see https://tailwindcss.com/docs/scroll-padding
2838
+ */
2839
+ "scroll-pt": [{
2840
+ "scroll-pt": scaleUnambiguousSpacing()
2841
+ }],
2842
+ /**
2843
+ * Scroll Padding Right
2844
+ * @see https://tailwindcss.com/docs/scroll-padding
2845
+ */
2846
+ "scroll-pr": [{
2847
+ "scroll-pr": scaleUnambiguousSpacing()
2848
+ }],
2849
+ /**
2850
+ * Scroll Padding Bottom
2851
+ * @see https://tailwindcss.com/docs/scroll-padding
2852
+ */
2853
+ "scroll-pb": [{
2854
+ "scroll-pb": scaleUnambiguousSpacing()
2855
+ }],
2856
+ /**
2857
+ * Scroll Padding Left
2858
+ * @see https://tailwindcss.com/docs/scroll-padding
2859
+ */
2860
+ "scroll-pl": [{
2861
+ "scroll-pl": scaleUnambiguousSpacing()
2862
+ }],
2863
+ /**
2864
+ * Scroll Snap Align
2865
+ * @see https://tailwindcss.com/docs/scroll-snap-align
2866
+ */
2867
+ "snap-align": [{
2868
+ snap: ["start", "end", "center", "align-none"]
2869
+ }],
2870
+ /**
2871
+ * Scroll Snap Stop
2872
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
2873
+ */
2874
+ "snap-stop": [{
2875
+ snap: ["normal", "always"]
2876
+ }],
2877
+ /**
2878
+ * Scroll Snap Type
2879
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2880
+ */
2881
+ "snap-type": [{
2882
+ snap: ["none", "x", "y", "both"]
2883
+ }],
2884
+ /**
2885
+ * Scroll Snap Type Strictness
2886
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2887
+ */
2888
+ "snap-strictness": [{
2889
+ snap: ["mandatory", "proximity"]
2890
+ }],
2891
+ /**
2892
+ * Touch Action
2893
+ * @see https://tailwindcss.com/docs/touch-action
2894
+ */
2895
+ touch: [{
2896
+ touch: ["auto", "none", "manipulation"]
2897
+ }],
2898
+ /**
2899
+ * Touch Action X
2900
+ * @see https://tailwindcss.com/docs/touch-action
2901
+ */
2902
+ "touch-x": [{
2903
+ "touch-pan": ["x", "left", "right"]
2904
+ }],
2905
+ /**
2906
+ * Touch Action Y
2907
+ * @see https://tailwindcss.com/docs/touch-action
2908
+ */
2909
+ "touch-y": [{
2910
+ "touch-pan": ["y", "up", "down"]
2911
+ }],
2912
+ /**
2913
+ * Touch Action Pinch Zoom
2914
+ * @see https://tailwindcss.com/docs/touch-action
2915
+ */
2916
+ "touch-pz": ["touch-pinch-zoom"],
2917
+ /**
2918
+ * User Select
2919
+ * @see https://tailwindcss.com/docs/user-select
2920
+ */
2921
+ select: [{
2922
+ select: ["none", "text", "all", "auto"]
2923
+ }],
2924
+ /**
2925
+ * Will Change
2926
+ * @see https://tailwindcss.com/docs/will-change
2927
+ */
2928
+ "will-change": [{
2929
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
2930
+ }],
2931
+ // -----------
2932
+ // --- SVG ---
2933
+ // -----------
2934
+ /**
2935
+ * Fill
2936
+ * @see https://tailwindcss.com/docs/fill
2937
+ */
2938
+ fill: [{
2939
+ fill: ["none", ...scaleColor()]
2940
+ }],
2941
+ /**
2942
+ * Stroke Width
2943
+ * @see https://tailwindcss.com/docs/stroke-width
2944
+ */
2945
+ "stroke-w": [{
2946
+ stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
2947
+ }],
2948
+ /**
2949
+ * Stroke
2950
+ * @see https://tailwindcss.com/docs/stroke
2951
+ */
2952
+ stroke: [{
2953
+ stroke: ["none", ...scaleColor()]
2954
+ }],
2955
+ // ---------------------
2956
+ // --- Accessibility ---
2957
+ // ---------------------
2958
+ /**
2959
+ * Forced Color Adjust
2960
+ * @see https://tailwindcss.com/docs/forced-color-adjust
2961
+ */
2962
+ "forced-color-adjust": [{
2963
+ "forced-color-adjust": ["auto", "none"]
2964
+ }]
2965
+ },
2966
+ conflictingClassGroups: {
2967
+ overflow: ["overflow-x", "overflow-y"],
2968
+ overscroll: ["overscroll-x", "overscroll-y"],
2969
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2970
+ "inset-x": ["right", "left"],
2971
+ "inset-y": ["top", "bottom"],
2972
+ flex: ["basis", "grow", "shrink"],
2973
+ gap: ["gap-x", "gap-y"],
2974
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2975
+ px: ["pr", "pl"],
2976
+ py: ["pt", "pb"],
2977
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2978
+ mx: ["mr", "ml"],
2979
+ my: ["mt", "mb"],
2980
+ size: ["w", "h"],
2981
+ "font-size": ["leading"],
2982
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2983
+ "fvn-ordinal": ["fvn-normal"],
2984
+ "fvn-slashed-zero": ["fvn-normal"],
2985
+ "fvn-figure": ["fvn-normal"],
2986
+ "fvn-spacing": ["fvn-normal"],
2987
+ "fvn-fraction": ["fvn-normal"],
2988
+ "line-clamp": ["display", "overflow"],
2989
+ rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
2990
+ "rounded-s": ["rounded-ss", "rounded-es"],
2991
+ "rounded-e": ["rounded-se", "rounded-ee"],
2992
+ "rounded-t": ["rounded-tl", "rounded-tr"],
2993
+ "rounded-r": ["rounded-tr", "rounded-br"],
2994
+ "rounded-b": ["rounded-br", "rounded-bl"],
2995
+ "rounded-l": ["rounded-tl", "rounded-bl"],
2996
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
2997
+ "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"],
2998
+ "border-w-x": ["border-w-r", "border-w-l"],
2999
+ "border-w-y": ["border-w-t", "border-w-b"],
3000
+ "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"],
3001
+ "border-color-x": ["border-color-r", "border-color-l"],
3002
+ "border-color-y": ["border-color-t", "border-color-b"],
3003
+ translate: ["translate-x", "translate-y", "translate-none"],
3004
+ "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
3005
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3006
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
3007
+ "scroll-my": ["scroll-mt", "scroll-mb"],
3008
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
3009
+ "scroll-px": ["scroll-pr", "scroll-pl"],
3010
+ "scroll-py": ["scroll-pt", "scroll-pb"],
3011
+ touch: ["touch-x", "touch-y", "touch-pz"],
3012
+ "touch-x": ["touch"],
3013
+ "touch-y": ["touch"],
3014
+ "touch-pz": ["touch"]
3015
+ },
3016
+ conflictingClassGroupModifiers: {
3017
+ "font-size": ["leading"]
3018
+ },
3019
+ orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
3020
+ };
3021
+ };
3022
+ const twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
3023
+ function cn(...inputs) {
3024
+ return twMerge(clsx(inputs));
3025
+ }
3026
+ exports.cn = cn;
3027
+ //# sourceMappingURL=index.cjs.map