@thebasenet/ui 0.1.0

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