@lukso/web-components 1.47.1 → 1.48.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 (67) hide show
  1. package/dist/components/index.cjs +3 -3
  2. package/dist/components/index.js +3 -3
  3. package/dist/components/lukso-button/index.cjs +2 -2
  4. package/dist/components/lukso-button/index.js +2 -2
  5. package/dist/components/lukso-card/index.cjs +3 -3
  6. package/dist/components/lukso-card/index.js +3 -3
  7. package/dist/components/lukso-checkbox/index.cjs +2 -2
  8. package/dist/components/lukso-checkbox/index.js +2 -2
  9. package/dist/components/lukso-footer/index.cjs +1 -1
  10. package/dist/components/lukso-footer/index.js +1 -1
  11. package/dist/components/lukso-icon/index.cjs +2 -2
  12. package/dist/components/lukso-icon/index.js +2 -2
  13. package/dist/components/lukso-input/index.cjs +2 -2
  14. package/dist/components/lukso-input/index.js +2 -2
  15. package/dist/components/lukso-modal/index.cjs +2 -2
  16. package/dist/components/lukso-modal/index.js +2 -2
  17. package/dist/components/lukso-navbar/index.cjs +3 -3
  18. package/dist/components/lukso-navbar/index.js +3 -3
  19. package/dist/components/lukso-profile/index.cjs +3 -3
  20. package/dist/components/lukso-profile/index.js +3 -3
  21. package/dist/components/lukso-progress/index.cjs +3 -3
  22. package/dist/components/lukso-progress/index.js +3 -3
  23. package/dist/components/lukso-sanitize/index.cjs +1 -1
  24. package/dist/components/lukso-sanitize/index.js +1 -1
  25. package/dist/components/lukso-search/index.cjs +3 -3
  26. package/dist/components/lukso-search/index.js +3 -3
  27. package/dist/components/lukso-share/index.cjs +1 -1
  28. package/dist/components/lukso-share/index.js +1 -1
  29. package/dist/components/lukso-switch/index.cjs +3 -3
  30. package/dist/components/lukso-switch/index.js +3 -3
  31. package/dist/components/lukso-tag/index.cjs +3 -3
  32. package/dist/components/lukso-tag/index.js +3 -3
  33. package/dist/components/lukso-terms/index.cjs +3 -3
  34. package/dist/components/lukso-terms/index.js +3 -3
  35. package/dist/components/lukso-test/index.cjs +1 -1
  36. package/dist/components/lukso-test/index.js +1 -1
  37. package/dist/components/lukso-username/index.cjs +3 -3
  38. package/dist/components/lukso-username/index.js +3 -3
  39. package/dist/components/lukso-wizard/index.cjs +2 -2
  40. package/dist/components/lukso-wizard/index.js +2 -2
  41. package/dist/index-944f6ebe.js +2543 -0
  42. package/dist/index-97750d66.cjs +2546 -0
  43. package/dist/index-a03613f8.cjs +46 -0
  44. package/dist/index-c72ac15f.js +39 -0
  45. package/dist/index.cjs +4 -3
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +3 -3
  49. package/dist/shared/tailwind-element/index.cjs +1 -1
  50. package/dist/shared/tailwind-element/index.js +1 -1
  51. package/dist/{style-map-5d518e86.js → style-map-cd69bc0c.js} +1 -1
  52. package/dist/{style-map-f57e0b7e.cjs → style-map-d09deecd.cjs} +1 -1
  53. package/dist/vite.full.config.d.ts.map +1 -1
  54. package/dist/vite.tools.config.d.ts.map +1 -1
  55. package/package.json +6 -1
  56. package/tools/cn.cjs +2530 -0
  57. package/tools/cn.d.ts +3 -0
  58. package/tools/cn.d.ts.map +1 -0
  59. package/tools/cn.js +2526 -0
  60. package/tools/index.cjs +2 -0
  61. package/tools/index.d.ts +1 -0
  62. package/tools/index.d.ts.map +1 -1
  63. package/tools/index.js +1 -0
  64. package/dist/index-10b4e725.js +0 -39
  65. package/dist/index-416afa07.cjs +0 -46
  66. package/dist/index-5e194caf.js +0 -18
  67. package/dist/index-e9668573.cjs +0 -20
package/tools/cn.js ADDED
@@ -0,0 +1,2526 @@
1
+ /**
2
+ * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.
3
+ *
4
+ * Specifically:
5
+ * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js
6
+ * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts
7
+ *
8
+ * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
9
+ */
10
+ function twJoin() {
11
+ var index = 0;
12
+ var argument;
13
+ var resolvedValue;
14
+ var string = '';
15
+ while (index < arguments.length) {
16
+ if (argument = arguments[index++]) {
17
+ if (resolvedValue = toValue(argument)) {
18
+ string && (string += ' ');
19
+ string += resolvedValue;
20
+ }
21
+ }
22
+ }
23
+ return string;
24
+ }
25
+ function toValue(mix) {
26
+ if (typeof mix === 'string') {
27
+ return mix;
28
+ }
29
+ var resolvedValue;
30
+ var string = '';
31
+ for (var k = 0; k < mix.length; k++) {
32
+ if (mix[k]) {
33
+ if (resolvedValue = toValue(mix[k])) {
34
+ string && (string += ' ');
35
+ string += resolvedValue;
36
+ }
37
+ }
38
+ }
39
+ return string;
40
+ }
41
+
42
+ var CLASS_PART_SEPARATOR = '-';
43
+ function createClassUtils(config) {
44
+ var classMap = createClassMap(config);
45
+ var conflictingClassGroups = config.conflictingClassGroups,
46
+ _config$conflictingCl = config.conflictingClassGroupModifiers,
47
+ conflictingClassGroupModifiers = _config$conflictingCl === void 0 ? {} : _config$conflictingCl;
48
+ function getClassGroupId(className) {
49
+ var classParts = className.split(CLASS_PART_SEPARATOR);
50
+ // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.
51
+ if (classParts[0] === '' && classParts.length !== 1) {
52
+ classParts.shift();
53
+ }
54
+ return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
55
+ }
56
+ function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) {
57
+ var conflicts = conflictingClassGroups[classGroupId] || [];
58
+ if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
59
+ return [].concat(conflicts, conflictingClassGroupModifiers[classGroupId]);
60
+ }
61
+ return conflicts;
62
+ }
63
+ return {
64
+ getClassGroupId: getClassGroupId,
65
+ getConflictingClassGroupIds: getConflictingClassGroupIds
66
+ };
67
+ }
68
+ function getGroupRecursive(classParts, classPartObject) {
69
+ if (classParts.length === 0) {
70
+ return classPartObject.classGroupId;
71
+ }
72
+ var currentClassPart = classParts[0];
73
+ var nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
74
+ var classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;
75
+ if (classGroupFromNextClassPart) {
76
+ return classGroupFromNextClassPart;
77
+ }
78
+ if (classPartObject.validators.length === 0) {
79
+ return undefined;
80
+ }
81
+ var classRest = classParts.join(CLASS_PART_SEPARATOR);
82
+ return classPartObject.validators.find(function (_ref) {
83
+ var validator = _ref.validator;
84
+ return validator(classRest);
85
+ })?.classGroupId;
86
+ }
87
+ var arbitraryPropertyRegex = /^\[(.+)\]$/;
88
+ function getGroupIdForArbitraryProperty(className) {
89
+ if (arbitraryPropertyRegex.test(className)) {
90
+ var arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
91
+ var property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));
92
+ if (property) {
93
+ // I use two dots here because one dot is used as prefix for class groups in plugins
94
+ return 'arbitrary..' + property;
95
+ }
96
+ }
97
+ }
98
+ /**
99
+ * Exported for testing only
100
+ */
101
+ function createClassMap(config) {
102
+ var theme = config.theme,
103
+ prefix = config.prefix;
104
+ var classMap = {
105
+ nextPart: new Map(),
106
+ validators: []
107
+ };
108
+ var prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
109
+ prefixedClassGroupEntries.forEach(function (_ref2) {
110
+ var classGroupId = _ref2[0],
111
+ classGroup = _ref2[1];
112
+ processClassesRecursively(classGroup, classMap, classGroupId, theme);
113
+ });
114
+ return classMap;
115
+ }
116
+ function processClassesRecursively(classGroup, classPartObject, classGroupId, theme) {
117
+ classGroup.forEach(function (classDefinition) {
118
+ if (typeof classDefinition === 'string') {
119
+ var classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);
120
+ classPartObjectToEdit.classGroupId = classGroupId;
121
+ return;
122
+ }
123
+ if (typeof classDefinition === 'function') {
124
+ if (isThemeGetter(classDefinition)) {
125
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
126
+ return;
127
+ }
128
+ classPartObject.validators.push({
129
+ validator: classDefinition,
130
+ classGroupId: classGroupId
131
+ });
132
+ return;
133
+ }
134
+ Object.entries(classDefinition).forEach(function (_ref3) {
135
+ var key = _ref3[0],
136
+ classGroup = _ref3[1];
137
+ processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);
138
+ });
139
+ });
140
+ }
141
+ function getPart(classPartObject, path) {
142
+ var currentClassPartObject = classPartObject;
143
+ path.split(CLASS_PART_SEPARATOR).forEach(function (pathPart) {
144
+ if (!currentClassPartObject.nextPart.has(pathPart)) {
145
+ currentClassPartObject.nextPart.set(pathPart, {
146
+ nextPart: new Map(),
147
+ validators: []
148
+ });
149
+ }
150
+ currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
151
+ });
152
+ return currentClassPartObject;
153
+ }
154
+ function isThemeGetter(func) {
155
+ return func.isThemeGetter;
156
+ }
157
+ function getPrefixedClassGroupEntries(classGroupEntries, prefix) {
158
+ if (!prefix) {
159
+ return classGroupEntries;
160
+ }
161
+ return classGroupEntries.map(function (_ref4) {
162
+ var classGroupId = _ref4[0],
163
+ classGroup = _ref4[1];
164
+ var prefixedClassGroup = classGroup.map(function (classDefinition) {
165
+ if (typeof classDefinition === 'string') {
166
+ return prefix + classDefinition;
167
+ }
168
+ if (typeof classDefinition === 'object') {
169
+ return Object.fromEntries(Object.entries(classDefinition).map(function (_ref5) {
170
+ var key = _ref5[0],
171
+ value = _ref5[1];
172
+ return [prefix + key, value];
173
+ }));
174
+ }
175
+ return classDefinition;
176
+ });
177
+ return [classGroupId, prefixedClassGroup];
178
+ });
179
+ }
180
+
181
+ // LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance
182
+ function createLruCache(maxCacheSize) {
183
+ if (maxCacheSize < 1) {
184
+ return {
185
+ get: function get() {
186
+ return undefined;
187
+ },
188
+ set: function set() {}
189
+ };
190
+ }
191
+ var cacheSize = 0;
192
+ var cache = new Map();
193
+ var previousCache = new Map();
194
+ function update(key, value) {
195
+ cache.set(key, value);
196
+ cacheSize++;
197
+ if (cacheSize > maxCacheSize) {
198
+ cacheSize = 0;
199
+ previousCache = cache;
200
+ cache = new Map();
201
+ }
202
+ }
203
+ return {
204
+ get: function get(key) {
205
+ var value = cache.get(key);
206
+ if (value !== undefined) {
207
+ return value;
208
+ }
209
+ if ((value = previousCache.get(key)) !== undefined) {
210
+ update(key, value);
211
+ return value;
212
+ }
213
+ },
214
+ set: function set(key, value) {
215
+ if (cache.has(key)) {
216
+ cache.set(key, value);
217
+ } else {
218
+ update(key, value);
219
+ }
220
+ }
221
+ };
222
+ }
223
+
224
+ var IMPORTANT_MODIFIER = '!';
225
+ function createSplitModifiers(config) {
226
+ var separator = config.separator || ':';
227
+ var isSeparatorSingleCharacter = separator.length === 1;
228
+ var firstSeparatorCharacter = separator[0];
229
+ var separatorLength = separator.length;
230
+ // splitModifiers inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
231
+ return function splitModifiers(className) {
232
+ var modifiers = [];
233
+ var bracketDepth = 0;
234
+ var modifierStart = 0;
235
+ var postfixModifierPosition;
236
+ for (var index = 0; index < className.length; index++) {
237
+ var currentCharacter = className[index];
238
+ if (bracketDepth === 0) {
239
+ if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
240
+ modifiers.push(className.slice(modifierStart, index));
241
+ modifierStart = index + separatorLength;
242
+ continue;
243
+ }
244
+ if (currentCharacter === '/') {
245
+ postfixModifierPosition = index;
246
+ continue;
247
+ }
248
+ }
249
+ if (currentCharacter === '[') {
250
+ bracketDepth++;
251
+ } else if (currentCharacter === ']') {
252
+ bracketDepth--;
253
+ }
254
+ }
255
+ var baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
256
+ var hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
257
+ var baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
258
+ var maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
259
+ return {
260
+ modifiers: modifiers,
261
+ hasImportantModifier: hasImportantModifier,
262
+ baseClassName: baseClassName,
263
+ maybePostfixModifierPosition: maybePostfixModifierPosition
264
+ };
265
+ };
266
+ }
267
+ /**
268
+ * Sorts modifiers according to following schema:
269
+ * - Predefined modifiers are sorted alphabetically
270
+ * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it
271
+ */
272
+ function sortModifiers(modifiers) {
273
+ if (modifiers.length <= 1) {
274
+ return modifiers;
275
+ }
276
+ var sortedModifiers = [];
277
+ var unsortedModifiers = [];
278
+ modifiers.forEach(function (modifier) {
279
+ var isArbitraryVariant = modifier[0] === '[';
280
+ if (isArbitraryVariant) {
281
+ sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort().concat([modifier]));
282
+ unsortedModifiers = [];
283
+ } else {
284
+ unsortedModifiers.push(modifier);
285
+ }
286
+ });
287
+ sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort());
288
+ return sortedModifiers;
289
+ }
290
+
291
+ function createConfigUtils(config) {
292
+ return {
293
+ cache: createLruCache(config.cacheSize),
294
+ splitModifiers: createSplitModifiers(config),
295
+ ...createClassUtils(config)
296
+ };
297
+ }
298
+
299
+ var SPLIT_CLASSES_REGEX = /\s+/;
300
+ function mergeClassList(classList, configUtils) {
301
+ var splitModifiers = configUtils.splitModifiers,
302
+ getClassGroupId = configUtils.getClassGroupId,
303
+ getConflictingClassGroupIds = configUtils.getConflictingClassGroupIds;
304
+ /**
305
+ * Set of classGroupIds in following format:
306
+ * `{importantModifier}{variantModifiers}{classGroupId}`
307
+ * @example 'float'
308
+ * @example 'hover:focus:bg-color'
309
+ * @example 'md:!pr'
310
+ */
311
+ var classGroupsInConflict = new Set();
312
+ return classList.trim().split(SPLIT_CLASSES_REGEX).map(function (originalClassName) {
313
+ var _splitModifiers = splitModifiers(originalClassName),
314
+ modifiers = _splitModifiers.modifiers,
315
+ hasImportantModifier = _splitModifiers.hasImportantModifier,
316
+ baseClassName = _splitModifiers.baseClassName,
317
+ maybePostfixModifierPosition = _splitModifiers.maybePostfixModifierPosition;
318
+ var classGroupId = getClassGroupId(maybePostfixModifierPosition ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
319
+ var hasPostfixModifier = Boolean(maybePostfixModifierPosition);
320
+ if (!classGroupId) {
321
+ if (!maybePostfixModifierPosition) {
322
+ return {
323
+ isTailwindClass: false,
324
+ originalClassName: originalClassName
325
+ };
326
+ }
327
+ classGroupId = getClassGroupId(baseClassName);
328
+ if (!classGroupId) {
329
+ return {
330
+ isTailwindClass: false,
331
+ originalClassName: originalClassName
332
+ };
333
+ }
334
+ hasPostfixModifier = false;
335
+ }
336
+ var variantModifier = sortModifiers(modifiers).join(':');
337
+ var modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
338
+ return {
339
+ isTailwindClass: true,
340
+ modifierId: modifierId,
341
+ classGroupId: classGroupId,
342
+ originalClassName: originalClassName,
343
+ hasPostfixModifier: hasPostfixModifier
344
+ };
345
+ }).reverse()
346
+ // Last class in conflict wins, so we need to filter conflicting classes in reverse order.
347
+ .filter(function (parsed) {
348
+ if (!parsed.isTailwindClass) {
349
+ return true;
350
+ }
351
+ var modifierId = parsed.modifierId,
352
+ classGroupId = parsed.classGroupId,
353
+ hasPostfixModifier = parsed.hasPostfixModifier;
354
+ var classId = modifierId + classGroupId;
355
+ if (classGroupsInConflict.has(classId)) {
356
+ return false;
357
+ }
358
+ classGroupsInConflict.add(classId);
359
+ getConflictingClassGroupIds(classGroupId, hasPostfixModifier).forEach(function (group) {
360
+ return classGroupsInConflict.add(modifierId + group);
361
+ });
362
+ return true;
363
+ }).reverse().map(function (parsed) {
364
+ return parsed.originalClassName;
365
+ }).join(' ');
366
+ }
367
+
368
+ function createTailwindMerge() {
369
+ for (var _len = arguments.length, createConfig = new Array(_len), _key = 0; _key < _len; _key++) {
370
+ createConfig[_key] = arguments[_key];
371
+ }
372
+ var configUtils;
373
+ var cacheGet;
374
+ var cacheSet;
375
+ var functionToCall = initTailwindMerge;
376
+ function initTailwindMerge(classList) {
377
+ var firstCreateConfig = createConfig[0],
378
+ restCreateConfig = createConfig.slice(1);
379
+ var config = restCreateConfig.reduce(function (previousConfig, createConfigCurrent) {
380
+ return createConfigCurrent(previousConfig);
381
+ }, firstCreateConfig());
382
+ configUtils = createConfigUtils(config);
383
+ cacheGet = configUtils.cache.get;
384
+ cacheSet = configUtils.cache.set;
385
+ functionToCall = tailwindMerge;
386
+ return tailwindMerge(classList);
387
+ }
388
+ function tailwindMerge(classList) {
389
+ var cachedResult = cacheGet(classList);
390
+ if (cachedResult) {
391
+ return cachedResult;
392
+ }
393
+ var result = mergeClassList(classList, configUtils);
394
+ cacheSet(classList, result);
395
+ return result;
396
+ }
397
+ return function callTailwindMerge() {
398
+ return functionToCall(twJoin.apply(null, arguments));
399
+ };
400
+ }
401
+
402
+ function fromTheme(key) {
403
+ var themeGetter = function themeGetter(theme) {
404
+ return theme[key] || [];
405
+ };
406
+ themeGetter.isThemeGetter = true;
407
+ return themeGetter;
408
+ }
409
+
410
+ var arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
411
+ var fractionRegex = /^\d+\/\d+$/;
412
+ var stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);
413
+ var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
414
+ 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$/;
415
+ // Shadow always begins with x and y offset separated by underscore
416
+ var shadowRegex = /^-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
417
+ function isLength(value) {
418
+ return isNumber(value) || stringLengths.has(value) || fractionRegex.test(value) || isArbitraryLength(value);
419
+ }
420
+ function isArbitraryLength(value) {
421
+ return getIsArbitraryValue(value, 'length', isLengthOnly);
422
+ }
423
+ function isArbitrarySize(value) {
424
+ return getIsArbitraryValue(value, 'size', isNever);
425
+ }
426
+ function isArbitraryPosition(value) {
427
+ return getIsArbitraryValue(value, 'position', isNever);
428
+ }
429
+ function isArbitraryUrl(value) {
430
+ return getIsArbitraryValue(value, 'url', isUrl);
431
+ }
432
+ function isArbitraryNumber(value) {
433
+ return getIsArbitraryValue(value, 'number', isNumber);
434
+ }
435
+ function isNumber(value) {
436
+ return !Number.isNaN(Number(value));
437
+ }
438
+ function isPercent(value) {
439
+ return value.endsWith('%') && isNumber(value.slice(0, -1));
440
+ }
441
+ function isInteger(value) {
442
+ return isIntegerOnly(value) || getIsArbitraryValue(value, 'number', isIntegerOnly);
443
+ }
444
+ function isArbitraryValue(value) {
445
+ return arbitraryValueRegex.test(value);
446
+ }
447
+ function isAny() {
448
+ return true;
449
+ }
450
+ function isTshirtSize(value) {
451
+ return tshirtUnitRegex.test(value);
452
+ }
453
+ function isArbitraryShadow(value) {
454
+ return getIsArbitraryValue(value, '', isShadow);
455
+ }
456
+ function getIsArbitraryValue(value, label, testValue) {
457
+ var result = arbitraryValueRegex.exec(value);
458
+ if (result) {
459
+ if (result[1]) {
460
+ return result[1] === label;
461
+ }
462
+ return testValue(result[2]);
463
+ }
464
+ return false;
465
+ }
466
+ function isLengthOnly(value) {
467
+ return lengthUnitRegex.test(value);
468
+ }
469
+ function isNever() {
470
+ return false;
471
+ }
472
+ function isUrl(value) {
473
+ return value.startsWith('url(');
474
+ }
475
+ function isIntegerOnly(value) {
476
+ return Number.isInteger(Number(value));
477
+ }
478
+ function isShadow(value) {
479
+ return shadowRegex.test(value);
480
+ }
481
+
482
+ function getDefaultConfig() {
483
+ var colors = fromTheme('colors');
484
+ var spacing = fromTheme('spacing');
485
+ var blur = fromTheme('blur');
486
+ var brightness = fromTheme('brightness');
487
+ var borderColor = fromTheme('borderColor');
488
+ var borderRadius = fromTheme('borderRadius');
489
+ var borderSpacing = fromTheme('borderSpacing');
490
+ var borderWidth = fromTheme('borderWidth');
491
+ var contrast = fromTheme('contrast');
492
+ var grayscale = fromTheme('grayscale');
493
+ var hueRotate = fromTheme('hueRotate');
494
+ var invert = fromTheme('invert');
495
+ var gap = fromTheme('gap');
496
+ var gradientColorStops = fromTheme('gradientColorStops');
497
+ var gradientColorStopPositions = fromTheme('gradientColorStopPositions');
498
+ var inset = fromTheme('inset');
499
+ var margin = fromTheme('margin');
500
+ var opacity = fromTheme('opacity');
501
+ var padding = fromTheme('padding');
502
+ var saturate = fromTheme('saturate');
503
+ var scale = fromTheme('scale');
504
+ var sepia = fromTheme('sepia');
505
+ var skew = fromTheme('skew');
506
+ var space = fromTheme('space');
507
+ var translate = fromTheme('translate');
508
+ var getOverscroll = function getOverscroll() {
509
+ return ['auto', 'contain', 'none'];
510
+ };
511
+ var getOverflow = function getOverflow() {
512
+ return ['auto', 'hidden', 'clip', 'visible', 'scroll'];
513
+ };
514
+ var getSpacingWithAutoAndArbitrary = function getSpacingWithAutoAndArbitrary() {
515
+ return ['auto', isArbitraryValue, spacing];
516
+ };
517
+ var getSpacingWithArbitrary = function getSpacingWithArbitrary() {
518
+ return [isArbitraryValue, spacing];
519
+ };
520
+ var getLengthWithEmpty = function getLengthWithEmpty() {
521
+ return ['', isLength];
522
+ };
523
+ var getNumberWithAutoAndArbitrary = function getNumberWithAutoAndArbitrary() {
524
+ return ['auto', isNumber, isArbitraryValue];
525
+ };
526
+ var getPositions = function getPositions() {
527
+ return ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];
528
+ };
529
+ var getLineStyles = function getLineStyles() {
530
+ return ['solid', 'dashed', 'dotted', 'double', 'none'];
531
+ };
532
+ var getBlendModes = function getBlendModes() {
533
+ return ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity', 'plus-lighter'];
534
+ };
535
+ var getAlign = function getAlign() {
536
+ return ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];
537
+ };
538
+ var getZeroAndEmpty = function getZeroAndEmpty() {
539
+ return ['', '0', isArbitraryValue];
540
+ };
541
+ var getBreaks = function getBreaks() {
542
+ return ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];
543
+ };
544
+ var getNumber = function getNumber() {
545
+ return [isNumber, isArbitraryNumber];
546
+ };
547
+ var getNumberAndArbitrary = function getNumberAndArbitrary() {
548
+ return [isNumber, isArbitraryValue];
549
+ };
550
+ return {
551
+ cacheSize: 500,
552
+ theme: {
553
+ colors: [isAny],
554
+ spacing: [isLength],
555
+ blur: ['none', '', isTshirtSize, isArbitraryValue],
556
+ brightness: getNumber(),
557
+ borderColor: [colors],
558
+ borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],
559
+ borderSpacing: getSpacingWithArbitrary(),
560
+ borderWidth: getLengthWithEmpty(),
561
+ contrast: getNumber(),
562
+ grayscale: getZeroAndEmpty(),
563
+ hueRotate: getNumberAndArbitrary(),
564
+ invert: getZeroAndEmpty(),
565
+ gap: getSpacingWithArbitrary(),
566
+ gradientColorStops: [colors],
567
+ gradientColorStopPositions: [isPercent, isArbitraryLength],
568
+ inset: getSpacingWithAutoAndArbitrary(),
569
+ margin: getSpacingWithAutoAndArbitrary(),
570
+ opacity: getNumber(),
571
+ padding: getSpacingWithArbitrary(),
572
+ saturate: getNumber(),
573
+ scale: getNumber(),
574
+ sepia: getZeroAndEmpty(),
575
+ skew: getNumberAndArbitrary(),
576
+ space: getSpacingWithArbitrary(),
577
+ translate: getSpacingWithArbitrary()
578
+ },
579
+ classGroups: {
580
+ // Layout
581
+ /**
582
+ * Aspect Ratio
583
+ * @see https://tailwindcss.com/docs/aspect-ratio
584
+ */
585
+ aspect: [{
586
+ aspect: ['auto', 'square', 'video', isArbitraryValue]
587
+ }],
588
+ /**
589
+ * Container
590
+ * @see https://tailwindcss.com/docs/container
591
+ */
592
+ container: ['container'],
593
+ /**
594
+ * Columns
595
+ * @see https://tailwindcss.com/docs/columns
596
+ */
597
+ columns: [{
598
+ columns: [isTshirtSize]
599
+ }],
600
+ /**
601
+ * Break After
602
+ * @see https://tailwindcss.com/docs/break-after
603
+ */
604
+ 'break-after': [{
605
+ 'break-after': getBreaks()
606
+ }],
607
+ /**
608
+ * Break Before
609
+ * @see https://tailwindcss.com/docs/break-before
610
+ */
611
+ 'break-before': [{
612
+ 'break-before': getBreaks()
613
+ }],
614
+ /**
615
+ * Break Inside
616
+ * @see https://tailwindcss.com/docs/break-inside
617
+ */
618
+ 'break-inside': [{
619
+ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']
620
+ }],
621
+ /**
622
+ * Box Decoration Break
623
+ * @see https://tailwindcss.com/docs/box-decoration-break
624
+ */
625
+ 'box-decoration': [{
626
+ 'box-decoration': ['slice', 'clone']
627
+ }],
628
+ /**
629
+ * Box Sizing
630
+ * @see https://tailwindcss.com/docs/box-sizing
631
+ */
632
+ box: [{
633
+ box: ['border', 'content']
634
+ }],
635
+ /**
636
+ * Display
637
+ * @see https://tailwindcss.com/docs/display
638
+ */
639
+ 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'],
640
+ /**
641
+ * Floats
642
+ * @see https://tailwindcss.com/docs/float
643
+ */
644
+ "float": [{
645
+ "float": ['right', 'left', 'none']
646
+ }],
647
+ /**
648
+ * Clear
649
+ * @see https://tailwindcss.com/docs/clear
650
+ */
651
+ clear: [{
652
+ clear: ['left', 'right', 'both', 'none']
653
+ }],
654
+ /**
655
+ * Isolation
656
+ * @see https://tailwindcss.com/docs/isolation
657
+ */
658
+ isolation: ['isolate', 'isolation-auto'],
659
+ /**
660
+ * Object Fit
661
+ * @see https://tailwindcss.com/docs/object-fit
662
+ */
663
+ 'object-fit': [{
664
+ object: ['contain', 'cover', 'fill', 'none', 'scale-down']
665
+ }],
666
+ /**
667
+ * Object Position
668
+ * @see https://tailwindcss.com/docs/object-position
669
+ */
670
+ 'object-position': [{
671
+ object: [].concat(getPositions(), [isArbitraryValue])
672
+ }],
673
+ /**
674
+ * Overflow
675
+ * @see https://tailwindcss.com/docs/overflow
676
+ */
677
+ overflow: [{
678
+ overflow: getOverflow()
679
+ }],
680
+ /**
681
+ * Overflow X
682
+ * @see https://tailwindcss.com/docs/overflow
683
+ */
684
+ 'overflow-x': [{
685
+ 'overflow-x': getOverflow()
686
+ }],
687
+ /**
688
+ * Overflow Y
689
+ * @see https://tailwindcss.com/docs/overflow
690
+ */
691
+ 'overflow-y': [{
692
+ 'overflow-y': getOverflow()
693
+ }],
694
+ /**
695
+ * Overscroll Behavior
696
+ * @see https://tailwindcss.com/docs/overscroll-behavior
697
+ */
698
+ overscroll: [{
699
+ overscroll: getOverscroll()
700
+ }],
701
+ /**
702
+ * Overscroll Behavior X
703
+ * @see https://tailwindcss.com/docs/overscroll-behavior
704
+ */
705
+ 'overscroll-x': [{
706
+ 'overscroll-x': getOverscroll()
707
+ }],
708
+ /**
709
+ * Overscroll Behavior Y
710
+ * @see https://tailwindcss.com/docs/overscroll-behavior
711
+ */
712
+ 'overscroll-y': [{
713
+ 'overscroll-y': getOverscroll()
714
+ }],
715
+ /**
716
+ * Position
717
+ * @see https://tailwindcss.com/docs/position
718
+ */
719
+ position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],
720
+ /**
721
+ * Top / Right / Bottom / Left
722
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
723
+ */
724
+ inset: [{
725
+ inset: [inset]
726
+ }],
727
+ /**
728
+ * Right / Left
729
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
730
+ */
731
+ 'inset-x': [{
732
+ 'inset-x': [inset]
733
+ }],
734
+ /**
735
+ * Top / Bottom
736
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
737
+ */
738
+ 'inset-y': [{
739
+ 'inset-y': [inset]
740
+ }],
741
+ /**
742
+ * Start
743
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
744
+ */
745
+ start: [{
746
+ start: [inset]
747
+ }],
748
+ /**
749
+ * End
750
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
751
+ */
752
+ end: [{
753
+ end: [inset]
754
+ }],
755
+ /**
756
+ * Top
757
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
758
+ */
759
+ top: [{
760
+ top: [inset]
761
+ }],
762
+ /**
763
+ * Right
764
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
765
+ */
766
+ right: [{
767
+ right: [inset]
768
+ }],
769
+ /**
770
+ * Bottom
771
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
772
+ */
773
+ bottom: [{
774
+ bottom: [inset]
775
+ }],
776
+ /**
777
+ * Left
778
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
779
+ */
780
+ left: [{
781
+ left: [inset]
782
+ }],
783
+ /**
784
+ * Visibility
785
+ * @see https://tailwindcss.com/docs/visibility
786
+ */
787
+ visibility: ['visible', 'invisible', 'collapse'],
788
+ /**
789
+ * Z-Index
790
+ * @see https://tailwindcss.com/docs/z-index
791
+ */
792
+ z: [{
793
+ z: ['auto', isInteger]
794
+ }],
795
+ // Flexbox and Grid
796
+ /**
797
+ * Flex Basis
798
+ * @see https://tailwindcss.com/docs/flex-basis
799
+ */
800
+ basis: [{
801
+ basis: getSpacingWithAutoAndArbitrary()
802
+ }],
803
+ /**
804
+ * Flex Direction
805
+ * @see https://tailwindcss.com/docs/flex-direction
806
+ */
807
+ 'flex-direction': [{
808
+ flex: ['row', 'row-reverse', 'col', 'col-reverse']
809
+ }],
810
+ /**
811
+ * Flex Wrap
812
+ * @see https://tailwindcss.com/docs/flex-wrap
813
+ */
814
+ 'flex-wrap': [{
815
+ flex: ['wrap', 'wrap-reverse', 'nowrap']
816
+ }],
817
+ /**
818
+ * Flex
819
+ * @see https://tailwindcss.com/docs/flex
820
+ */
821
+ flex: [{
822
+ flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]
823
+ }],
824
+ /**
825
+ * Flex Grow
826
+ * @see https://tailwindcss.com/docs/flex-grow
827
+ */
828
+ grow: [{
829
+ grow: getZeroAndEmpty()
830
+ }],
831
+ /**
832
+ * Flex Shrink
833
+ * @see https://tailwindcss.com/docs/flex-shrink
834
+ */
835
+ shrink: [{
836
+ shrink: getZeroAndEmpty()
837
+ }],
838
+ /**
839
+ * Order
840
+ * @see https://tailwindcss.com/docs/order
841
+ */
842
+ order: [{
843
+ order: ['first', 'last', 'none', isInteger]
844
+ }],
845
+ /**
846
+ * Grid Template Columns
847
+ * @see https://tailwindcss.com/docs/grid-template-columns
848
+ */
849
+ 'grid-cols': [{
850
+ 'grid-cols': [isAny]
851
+ }],
852
+ /**
853
+ * Grid Column Start / End
854
+ * @see https://tailwindcss.com/docs/grid-column
855
+ */
856
+ 'col-start-end': [{
857
+ col: ['auto', {
858
+ span: ['full', isInteger]
859
+ }, isArbitraryValue]
860
+ }],
861
+ /**
862
+ * Grid Column Start
863
+ * @see https://tailwindcss.com/docs/grid-column
864
+ */
865
+ 'col-start': [{
866
+ 'col-start': getNumberWithAutoAndArbitrary()
867
+ }],
868
+ /**
869
+ * Grid Column End
870
+ * @see https://tailwindcss.com/docs/grid-column
871
+ */
872
+ 'col-end': [{
873
+ 'col-end': getNumberWithAutoAndArbitrary()
874
+ }],
875
+ /**
876
+ * Grid Template Rows
877
+ * @see https://tailwindcss.com/docs/grid-template-rows
878
+ */
879
+ 'grid-rows': [{
880
+ 'grid-rows': [isAny]
881
+ }],
882
+ /**
883
+ * Grid Row Start / End
884
+ * @see https://tailwindcss.com/docs/grid-row
885
+ */
886
+ 'row-start-end': [{
887
+ row: ['auto', {
888
+ span: [isInteger]
889
+ }, isArbitraryValue]
890
+ }],
891
+ /**
892
+ * Grid Row Start
893
+ * @see https://tailwindcss.com/docs/grid-row
894
+ */
895
+ 'row-start': [{
896
+ 'row-start': getNumberWithAutoAndArbitrary()
897
+ }],
898
+ /**
899
+ * Grid Row End
900
+ * @see https://tailwindcss.com/docs/grid-row
901
+ */
902
+ 'row-end': [{
903
+ 'row-end': getNumberWithAutoAndArbitrary()
904
+ }],
905
+ /**
906
+ * Grid Auto Flow
907
+ * @see https://tailwindcss.com/docs/grid-auto-flow
908
+ */
909
+ 'grid-flow': [{
910
+ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']
911
+ }],
912
+ /**
913
+ * Grid Auto Columns
914
+ * @see https://tailwindcss.com/docs/grid-auto-columns
915
+ */
916
+ 'auto-cols': [{
917
+ 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]
918
+ }],
919
+ /**
920
+ * Grid Auto Rows
921
+ * @see https://tailwindcss.com/docs/grid-auto-rows
922
+ */
923
+ 'auto-rows': [{
924
+ 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]
925
+ }],
926
+ /**
927
+ * Gap
928
+ * @see https://tailwindcss.com/docs/gap
929
+ */
930
+ gap: [{
931
+ gap: [gap]
932
+ }],
933
+ /**
934
+ * Gap X
935
+ * @see https://tailwindcss.com/docs/gap
936
+ */
937
+ 'gap-x': [{
938
+ 'gap-x': [gap]
939
+ }],
940
+ /**
941
+ * Gap Y
942
+ * @see https://tailwindcss.com/docs/gap
943
+ */
944
+ 'gap-y': [{
945
+ 'gap-y': [gap]
946
+ }],
947
+ /**
948
+ * Justify Content
949
+ * @see https://tailwindcss.com/docs/justify-content
950
+ */
951
+ 'justify-content': [{
952
+ justify: ['normal'].concat(getAlign())
953
+ }],
954
+ /**
955
+ * Justify Items
956
+ * @see https://tailwindcss.com/docs/justify-items
957
+ */
958
+ 'justify-items': [{
959
+ 'justify-items': ['start', 'end', 'center', 'stretch']
960
+ }],
961
+ /**
962
+ * Justify Self
963
+ * @see https://tailwindcss.com/docs/justify-self
964
+ */
965
+ 'justify-self': [{
966
+ 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']
967
+ }],
968
+ /**
969
+ * Align Content
970
+ * @see https://tailwindcss.com/docs/align-content
971
+ */
972
+ 'align-content': [{
973
+ content: ['normal'].concat(getAlign(), ['baseline'])
974
+ }],
975
+ /**
976
+ * Align Items
977
+ * @see https://tailwindcss.com/docs/align-items
978
+ */
979
+ 'align-items': [{
980
+ items: ['start', 'end', 'center', 'baseline', 'stretch']
981
+ }],
982
+ /**
983
+ * Align Self
984
+ * @see https://tailwindcss.com/docs/align-self
985
+ */
986
+ 'align-self': [{
987
+ self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']
988
+ }],
989
+ /**
990
+ * Place Content
991
+ * @see https://tailwindcss.com/docs/place-content
992
+ */
993
+ 'place-content': [{
994
+ 'place-content': [].concat(getAlign(), ['baseline'])
995
+ }],
996
+ /**
997
+ * Place Items
998
+ * @see https://tailwindcss.com/docs/place-items
999
+ */
1000
+ 'place-items': [{
1001
+ 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']
1002
+ }],
1003
+ /**
1004
+ * Place Self
1005
+ * @see https://tailwindcss.com/docs/place-self
1006
+ */
1007
+ 'place-self': [{
1008
+ 'place-self': ['auto', 'start', 'end', 'center', 'stretch']
1009
+ }],
1010
+ // Spacing
1011
+ /**
1012
+ * Padding
1013
+ * @see https://tailwindcss.com/docs/padding
1014
+ */
1015
+ p: [{
1016
+ p: [padding]
1017
+ }],
1018
+ /**
1019
+ * Padding X
1020
+ * @see https://tailwindcss.com/docs/padding
1021
+ */
1022
+ px: [{
1023
+ px: [padding]
1024
+ }],
1025
+ /**
1026
+ * Padding Y
1027
+ * @see https://tailwindcss.com/docs/padding
1028
+ */
1029
+ py: [{
1030
+ py: [padding]
1031
+ }],
1032
+ /**
1033
+ * Padding Start
1034
+ * @see https://tailwindcss.com/docs/padding
1035
+ */
1036
+ ps: [{
1037
+ ps: [padding]
1038
+ }],
1039
+ /**
1040
+ * Padding End
1041
+ * @see https://tailwindcss.com/docs/padding
1042
+ */
1043
+ pe: [{
1044
+ pe: [padding]
1045
+ }],
1046
+ /**
1047
+ * Padding Top
1048
+ * @see https://tailwindcss.com/docs/padding
1049
+ */
1050
+ pt: [{
1051
+ pt: [padding]
1052
+ }],
1053
+ /**
1054
+ * Padding Right
1055
+ * @see https://tailwindcss.com/docs/padding
1056
+ */
1057
+ pr: [{
1058
+ pr: [padding]
1059
+ }],
1060
+ /**
1061
+ * Padding Bottom
1062
+ * @see https://tailwindcss.com/docs/padding
1063
+ */
1064
+ pb: [{
1065
+ pb: [padding]
1066
+ }],
1067
+ /**
1068
+ * Padding Left
1069
+ * @see https://tailwindcss.com/docs/padding
1070
+ */
1071
+ pl: [{
1072
+ pl: [padding]
1073
+ }],
1074
+ /**
1075
+ * Margin
1076
+ * @see https://tailwindcss.com/docs/margin
1077
+ */
1078
+ m: [{
1079
+ m: [margin]
1080
+ }],
1081
+ /**
1082
+ * Margin X
1083
+ * @see https://tailwindcss.com/docs/margin
1084
+ */
1085
+ mx: [{
1086
+ mx: [margin]
1087
+ }],
1088
+ /**
1089
+ * Margin Y
1090
+ * @see https://tailwindcss.com/docs/margin
1091
+ */
1092
+ my: [{
1093
+ my: [margin]
1094
+ }],
1095
+ /**
1096
+ * Margin Start
1097
+ * @see https://tailwindcss.com/docs/margin
1098
+ */
1099
+ ms: [{
1100
+ ms: [margin]
1101
+ }],
1102
+ /**
1103
+ * Margin End
1104
+ * @see https://tailwindcss.com/docs/margin
1105
+ */
1106
+ me: [{
1107
+ me: [margin]
1108
+ }],
1109
+ /**
1110
+ * Margin Top
1111
+ * @see https://tailwindcss.com/docs/margin
1112
+ */
1113
+ mt: [{
1114
+ mt: [margin]
1115
+ }],
1116
+ /**
1117
+ * Margin Right
1118
+ * @see https://tailwindcss.com/docs/margin
1119
+ */
1120
+ mr: [{
1121
+ mr: [margin]
1122
+ }],
1123
+ /**
1124
+ * Margin Bottom
1125
+ * @see https://tailwindcss.com/docs/margin
1126
+ */
1127
+ mb: [{
1128
+ mb: [margin]
1129
+ }],
1130
+ /**
1131
+ * Margin Left
1132
+ * @see https://tailwindcss.com/docs/margin
1133
+ */
1134
+ ml: [{
1135
+ ml: [margin]
1136
+ }],
1137
+ /**
1138
+ * Space Between X
1139
+ * @see https://tailwindcss.com/docs/space
1140
+ */
1141
+ 'space-x': [{
1142
+ 'space-x': [space]
1143
+ }],
1144
+ /**
1145
+ * Space Between X Reverse
1146
+ * @see https://tailwindcss.com/docs/space
1147
+ */
1148
+ 'space-x-reverse': ['space-x-reverse'],
1149
+ /**
1150
+ * Space Between Y
1151
+ * @see https://tailwindcss.com/docs/space
1152
+ */
1153
+ 'space-y': [{
1154
+ 'space-y': [space]
1155
+ }],
1156
+ /**
1157
+ * Space Between Y Reverse
1158
+ * @see https://tailwindcss.com/docs/space
1159
+ */
1160
+ 'space-y-reverse': ['space-y-reverse'],
1161
+ // Sizing
1162
+ /**
1163
+ * Width
1164
+ * @see https://tailwindcss.com/docs/width
1165
+ */
1166
+ w: [{
1167
+ w: ['auto', 'min', 'max', 'fit', isArbitraryValue, spacing]
1168
+ }],
1169
+ /**
1170
+ * Min-Width
1171
+ * @see https://tailwindcss.com/docs/min-width
1172
+ */
1173
+ 'min-w': [{
1174
+ 'min-w': ['min', 'max', 'fit', isArbitraryValue, isLength]
1175
+ }],
1176
+ /**
1177
+ * Max-Width
1178
+ * @see https://tailwindcss.com/docs/max-width
1179
+ */
1180
+ 'max-w': [{
1181
+ 'max-w': ['0', 'none', 'full', 'min', 'max', 'fit', 'prose', {
1182
+ screen: [isTshirtSize]
1183
+ }, isTshirtSize, isArbitraryValue]
1184
+ }],
1185
+ /**
1186
+ * Height
1187
+ * @see https://tailwindcss.com/docs/height
1188
+ */
1189
+ h: [{
1190
+ h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']
1191
+ }],
1192
+ /**
1193
+ * Min-Height
1194
+ * @see https://tailwindcss.com/docs/min-height
1195
+ */
1196
+ 'min-h': [{
1197
+ 'min-h': ['min', 'max', 'fit', isArbitraryValue, isLength]
1198
+ }],
1199
+ /**
1200
+ * Max-Height
1201
+ * @see https://tailwindcss.com/docs/max-height
1202
+ */
1203
+ 'max-h': [{
1204
+ 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit']
1205
+ }],
1206
+ // Typography
1207
+ /**
1208
+ * Font Size
1209
+ * @see https://tailwindcss.com/docs/font-size
1210
+ */
1211
+ 'font-size': [{
1212
+ text: ['base', isTshirtSize, isArbitraryLength]
1213
+ }],
1214
+ /**
1215
+ * Font Smoothing
1216
+ * @see https://tailwindcss.com/docs/font-smoothing
1217
+ */
1218
+ 'font-smoothing': ['antialiased', 'subpixel-antialiased'],
1219
+ /**
1220
+ * Font Style
1221
+ * @see https://tailwindcss.com/docs/font-style
1222
+ */
1223
+ 'font-style': ['italic', 'not-italic'],
1224
+ /**
1225
+ * Font Weight
1226
+ * @see https://tailwindcss.com/docs/font-weight
1227
+ */
1228
+ 'font-weight': [{
1229
+ font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]
1230
+ }],
1231
+ /**
1232
+ * Font Family
1233
+ * @see https://tailwindcss.com/docs/font-family
1234
+ */
1235
+ 'font-family': [{
1236
+ font: [isAny]
1237
+ }],
1238
+ /**
1239
+ * Font Variant Numeric
1240
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1241
+ */
1242
+ 'fvn-normal': ['normal-nums'],
1243
+ /**
1244
+ * Font Variant Numeric
1245
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1246
+ */
1247
+ 'fvn-ordinal': ['ordinal'],
1248
+ /**
1249
+ * Font Variant Numeric
1250
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1251
+ */
1252
+ 'fvn-slashed-zero': ['slashed-zero'],
1253
+ /**
1254
+ * Font Variant Numeric
1255
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1256
+ */
1257
+ 'fvn-figure': ['lining-nums', 'oldstyle-nums'],
1258
+ /**
1259
+ * Font Variant Numeric
1260
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1261
+ */
1262
+ 'fvn-spacing': ['proportional-nums', 'tabular-nums'],
1263
+ /**
1264
+ * Font Variant Numeric
1265
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1266
+ */
1267
+ 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],
1268
+ /**
1269
+ * Letter Spacing
1270
+ * @see https://tailwindcss.com/docs/letter-spacing
1271
+ */
1272
+ tracking: [{
1273
+ tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]
1274
+ }],
1275
+ /**
1276
+ * Line Clamp
1277
+ * @see https://tailwindcss.com/docs/line-clamp
1278
+ */
1279
+ 'line-clamp': [{
1280
+ 'line-clamp': ['none', isNumber, isArbitraryNumber]
1281
+ }],
1282
+ /**
1283
+ * Line Height
1284
+ * @see https://tailwindcss.com/docs/line-height
1285
+ */
1286
+ leading: [{
1287
+ leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isArbitraryValue, isLength]
1288
+ }],
1289
+ /**
1290
+ * List Style Image
1291
+ * @see https://tailwindcss.com/docs/list-style-image
1292
+ */
1293
+ 'list-image': [{
1294
+ 'list-image': ['none', isArbitraryValue]
1295
+ }],
1296
+ /**
1297
+ * List Style Type
1298
+ * @see https://tailwindcss.com/docs/list-style-type
1299
+ */
1300
+ 'list-style-type': [{
1301
+ list: ['none', 'disc', 'decimal', isArbitraryValue]
1302
+ }],
1303
+ /**
1304
+ * List Style Position
1305
+ * @see https://tailwindcss.com/docs/list-style-position
1306
+ */
1307
+ 'list-style-position': [{
1308
+ list: ['inside', 'outside']
1309
+ }],
1310
+ /**
1311
+ * Placeholder Color
1312
+ * @deprecated since Tailwind CSS v3.0.0
1313
+ * @see https://tailwindcss.com/docs/placeholder-color
1314
+ */
1315
+ 'placeholder-color': [{
1316
+ placeholder: [colors]
1317
+ }],
1318
+ /**
1319
+ * Placeholder Opacity
1320
+ * @see https://tailwindcss.com/docs/placeholder-opacity
1321
+ */
1322
+ 'placeholder-opacity': [{
1323
+ 'placeholder-opacity': [opacity]
1324
+ }],
1325
+ /**
1326
+ * Text Alignment
1327
+ * @see https://tailwindcss.com/docs/text-align
1328
+ */
1329
+ 'text-alignment': [{
1330
+ text: ['left', 'center', 'right', 'justify', 'start', 'end']
1331
+ }],
1332
+ /**
1333
+ * Text Color
1334
+ * @see https://tailwindcss.com/docs/text-color
1335
+ */
1336
+ 'text-color': [{
1337
+ text: [colors]
1338
+ }],
1339
+ /**
1340
+ * Text Opacity
1341
+ * @see https://tailwindcss.com/docs/text-opacity
1342
+ */
1343
+ 'text-opacity': [{
1344
+ 'text-opacity': [opacity]
1345
+ }],
1346
+ /**
1347
+ * Text Decoration
1348
+ * @see https://tailwindcss.com/docs/text-decoration
1349
+ */
1350
+ 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],
1351
+ /**
1352
+ * Text Decoration Style
1353
+ * @see https://tailwindcss.com/docs/text-decoration-style
1354
+ */
1355
+ 'text-decoration-style': [{
1356
+ decoration: [].concat(getLineStyles(), ['wavy'])
1357
+ }],
1358
+ /**
1359
+ * Text Decoration Thickness
1360
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1361
+ */
1362
+ 'text-decoration-thickness': [{
1363
+ decoration: ['auto', 'from-font', isLength]
1364
+ }],
1365
+ /**
1366
+ * Text Underline Offset
1367
+ * @see https://tailwindcss.com/docs/text-underline-offset
1368
+ */
1369
+ 'underline-offset': [{
1370
+ 'underline-offset': ['auto', isArbitraryValue, isLength]
1371
+ }],
1372
+ /**
1373
+ * Text Decoration Color
1374
+ * @see https://tailwindcss.com/docs/text-decoration-color
1375
+ */
1376
+ 'text-decoration-color': [{
1377
+ decoration: [colors]
1378
+ }],
1379
+ /**
1380
+ * Text Transform
1381
+ * @see https://tailwindcss.com/docs/text-transform
1382
+ */
1383
+ 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],
1384
+ /**
1385
+ * Text Overflow
1386
+ * @see https://tailwindcss.com/docs/text-overflow
1387
+ */
1388
+ 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],
1389
+ /**
1390
+ * Text Indent
1391
+ * @see https://tailwindcss.com/docs/text-indent
1392
+ */
1393
+ indent: [{
1394
+ indent: getSpacingWithArbitrary()
1395
+ }],
1396
+ /**
1397
+ * Vertical Alignment
1398
+ * @see https://tailwindcss.com/docs/vertical-align
1399
+ */
1400
+ 'vertical-align': [{
1401
+ align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]
1402
+ }],
1403
+ /**
1404
+ * Whitespace
1405
+ * @see https://tailwindcss.com/docs/whitespace
1406
+ */
1407
+ whitespace: [{
1408
+ whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']
1409
+ }],
1410
+ /**
1411
+ * Word Break
1412
+ * @see https://tailwindcss.com/docs/word-break
1413
+ */
1414
+ "break": [{
1415
+ "break": ['normal', 'words', 'all', 'keep']
1416
+ }],
1417
+ /**
1418
+ * Hyphens
1419
+ * @see https://tailwindcss.com/docs/hyphens
1420
+ */
1421
+ hyphens: [{
1422
+ hyphens: ['none', 'manual', 'auto']
1423
+ }],
1424
+ /**
1425
+ * Content
1426
+ * @see https://tailwindcss.com/docs/content
1427
+ */
1428
+ content: [{
1429
+ content: ['none', isArbitraryValue]
1430
+ }],
1431
+ // Backgrounds
1432
+ /**
1433
+ * Background Attachment
1434
+ * @see https://tailwindcss.com/docs/background-attachment
1435
+ */
1436
+ 'bg-attachment': [{
1437
+ bg: ['fixed', 'local', 'scroll']
1438
+ }],
1439
+ /**
1440
+ * Background Clip
1441
+ * @see https://tailwindcss.com/docs/background-clip
1442
+ */
1443
+ 'bg-clip': [{
1444
+ 'bg-clip': ['border', 'padding', 'content', 'text']
1445
+ }],
1446
+ /**
1447
+ * Background Opacity
1448
+ * @deprecated since Tailwind CSS v3.0.0
1449
+ * @see https://tailwindcss.com/docs/background-opacity
1450
+ */
1451
+ 'bg-opacity': [{
1452
+ 'bg-opacity': [opacity]
1453
+ }],
1454
+ /**
1455
+ * Background Origin
1456
+ * @see https://tailwindcss.com/docs/background-origin
1457
+ */
1458
+ 'bg-origin': [{
1459
+ 'bg-origin': ['border', 'padding', 'content']
1460
+ }],
1461
+ /**
1462
+ * Background Position
1463
+ * @see https://tailwindcss.com/docs/background-position
1464
+ */
1465
+ 'bg-position': [{
1466
+ bg: [].concat(getPositions(), [isArbitraryPosition])
1467
+ }],
1468
+ /**
1469
+ * Background Repeat
1470
+ * @see https://tailwindcss.com/docs/background-repeat
1471
+ */
1472
+ 'bg-repeat': [{
1473
+ bg: ['no-repeat', {
1474
+ repeat: ['', 'x', 'y', 'round', 'space']
1475
+ }]
1476
+ }],
1477
+ /**
1478
+ * Background Size
1479
+ * @see https://tailwindcss.com/docs/background-size
1480
+ */
1481
+ 'bg-size': [{
1482
+ bg: ['auto', 'cover', 'contain', isArbitrarySize]
1483
+ }],
1484
+ /**
1485
+ * Background Image
1486
+ * @see https://tailwindcss.com/docs/background-image
1487
+ */
1488
+ 'bg-image': [{
1489
+ bg: ['none', {
1490
+ 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']
1491
+ }, isArbitraryUrl]
1492
+ }],
1493
+ /**
1494
+ * Background Color
1495
+ * @see https://tailwindcss.com/docs/background-color
1496
+ */
1497
+ 'bg-color': [{
1498
+ bg: [colors]
1499
+ }],
1500
+ /**
1501
+ * Gradient Color Stops From Position
1502
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1503
+ */
1504
+ 'gradient-from-pos': [{
1505
+ from: [gradientColorStopPositions]
1506
+ }],
1507
+ /**
1508
+ * Gradient Color Stops Via Position
1509
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1510
+ */
1511
+ 'gradient-via-pos': [{
1512
+ via: [gradientColorStopPositions]
1513
+ }],
1514
+ /**
1515
+ * Gradient Color Stops To Position
1516
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1517
+ */
1518
+ 'gradient-to-pos': [{
1519
+ to: [gradientColorStopPositions]
1520
+ }],
1521
+ /**
1522
+ * Gradient Color Stops From
1523
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1524
+ */
1525
+ 'gradient-from': [{
1526
+ from: [gradientColorStops]
1527
+ }],
1528
+ /**
1529
+ * Gradient Color Stops Via
1530
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1531
+ */
1532
+ 'gradient-via': [{
1533
+ via: [gradientColorStops]
1534
+ }],
1535
+ /**
1536
+ * Gradient Color Stops To
1537
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1538
+ */
1539
+ 'gradient-to': [{
1540
+ to: [gradientColorStops]
1541
+ }],
1542
+ // Borders
1543
+ /**
1544
+ * Border Radius
1545
+ * @see https://tailwindcss.com/docs/border-radius
1546
+ */
1547
+ rounded: [{
1548
+ rounded: [borderRadius]
1549
+ }],
1550
+ /**
1551
+ * Border Radius Start
1552
+ * @see https://tailwindcss.com/docs/border-radius
1553
+ */
1554
+ 'rounded-s': [{
1555
+ 'rounded-s': [borderRadius]
1556
+ }],
1557
+ /**
1558
+ * Border Radius End
1559
+ * @see https://tailwindcss.com/docs/border-radius
1560
+ */
1561
+ 'rounded-e': [{
1562
+ 'rounded-e': [borderRadius]
1563
+ }],
1564
+ /**
1565
+ * Border Radius Top
1566
+ * @see https://tailwindcss.com/docs/border-radius
1567
+ */
1568
+ 'rounded-t': [{
1569
+ 'rounded-t': [borderRadius]
1570
+ }],
1571
+ /**
1572
+ * Border Radius Right
1573
+ * @see https://tailwindcss.com/docs/border-radius
1574
+ */
1575
+ 'rounded-r': [{
1576
+ 'rounded-r': [borderRadius]
1577
+ }],
1578
+ /**
1579
+ * Border Radius Bottom
1580
+ * @see https://tailwindcss.com/docs/border-radius
1581
+ */
1582
+ 'rounded-b': [{
1583
+ 'rounded-b': [borderRadius]
1584
+ }],
1585
+ /**
1586
+ * Border Radius Left
1587
+ * @see https://tailwindcss.com/docs/border-radius
1588
+ */
1589
+ 'rounded-l': [{
1590
+ 'rounded-l': [borderRadius]
1591
+ }],
1592
+ /**
1593
+ * Border Radius Start Start
1594
+ * @see https://tailwindcss.com/docs/border-radius
1595
+ */
1596
+ 'rounded-ss': [{
1597
+ 'rounded-ss': [borderRadius]
1598
+ }],
1599
+ /**
1600
+ * Border Radius Start End
1601
+ * @see https://tailwindcss.com/docs/border-radius
1602
+ */
1603
+ 'rounded-se': [{
1604
+ 'rounded-se': [borderRadius]
1605
+ }],
1606
+ /**
1607
+ * Border Radius End End
1608
+ * @see https://tailwindcss.com/docs/border-radius
1609
+ */
1610
+ 'rounded-ee': [{
1611
+ 'rounded-ee': [borderRadius]
1612
+ }],
1613
+ /**
1614
+ * Border Radius End Start
1615
+ * @see https://tailwindcss.com/docs/border-radius
1616
+ */
1617
+ 'rounded-es': [{
1618
+ 'rounded-es': [borderRadius]
1619
+ }],
1620
+ /**
1621
+ * Border Radius Top Left
1622
+ * @see https://tailwindcss.com/docs/border-radius
1623
+ */
1624
+ 'rounded-tl': [{
1625
+ 'rounded-tl': [borderRadius]
1626
+ }],
1627
+ /**
1628
+ * Border Radius Top Right
1629
+ * @see https://tailwindcss.com/docs/border-radius
1630
+ */
1631
+ 'rounded-tr': [{
1632
+ 'rounded-tr': [borderRadius]
1633
+ }],
1634
+ /**
1635
+ * Border Radius Bottom Right
1636
+ * @see https://tailwindcss.com/docs/border-radius
1637
+ */
1638
+ 'rounded-br': [{
1639
+ 'rounded-br': [borderRadius]
1640
+ }],
1641
+ /**
1642
+ * Border Radius Bottom Left
1643
+ * @see https://tailwindcss.com/docs/border-radius
1644
+ */
1645
+ 'rounded-bl': [{
1646
+ 'rounded-bl': [borderRadius]
1647
+ }],
1648
+ /**
1649
+ * Border Width
1650
+ * @see https://tailwindcss.com/docs/border-width
1651
+ */
1652
+ 'border-w': [{
1653
+ border: [borderWidth]
1654
+ }],
1655
+ /**
1656
+ * Border Width X
1657
+ * @see https://tailwindcss.com/docs/border-width
1658
+ */
1659
+ 'border-w-x': [{
1660
+ 'border-x': [borderWidth]
1661
+ }],
1662
+ /**
1663
+ * Border Width Y
1664
+ * @see https://tailwindcss.com/docs/border-width
1665
+ */
1666
+ 'border-w-y': [{
1667
+ 'border-y': [borderWidth]
1668
+ }],
1669
+ /**
1670
+ * Border Width Start
1671
+ * @see https://tailwindcss.com/docs/border-width
1672
+ */
1673
+ 'border-w-s': [{
1674
+ 'border-s': [borderWidth]
1675
+ }],
1676
+ /**
1677
+ * Border Width End
1678
+ * @see https://tailwindcss.com/docs/border-width
1679
+ */
1680
+ 'border-w-e': [{
1681
+ 'border-e': [borderWidth]
1682
+ }],
1683
+ /**
1684
+ * Border Width Top
1685
+ * @see https://tailwindcss.com/docs/border-width
1686
+ */
1687
+ 'border-w-t': [{
1688
+ 'border-t': [borderWidth]
1689
+ }],
1690
+ /**
1691
+ * Border Width Right
1692
+ * @see https://tailwindcss.com/docs/border-width
1693
+ */
1694
+ 'border-w-r': [{
1695
+ 'border-r': [borderWidth]
1696
+ }],
1697
+ /**
1698
+ * Border Width Bottom
1699
+ * @see https://tailwindcss.com/docs/border-width
1700
+ */
1701
+ 'border-w-b': [{
1702
+ 'border-b': [borderWidth]
1703
+ }],
1704
+ /**
1705
+ * Border Width Left
1706
+ * @see https://tailwindcss.com/docs/border-width
1707
+ */
1708
+ 'border-w-l': [{
1709
+ 'border-l': [borderWidth]
1710
+ }],
1711
+ /**
1712
+ * Border Opacity
1713
+ * @see https://tailwindcss.com/docs/border-opacity
1714
+ */
1715
+ 'border-opacity': [{
1716
+ 'border-opacity': [opacity]
1717
+ }],
1718
+ /**
1719
+ * Border Style
1720
+ * @see https://tailwindcss.com/docs/border-style
1721
+ */
1722
+ 'border-style': [{
1723
+ border: [].concat(getLineStyles(), ['hidden'])
1724
+ }],
1725
+ /**
1726
+ * Divide Width X
1727
+ * @see https://tailwindcss.com/docs/divide-width
1728
+ */
1729
+ 'divide-x': [{
1730
+ 'divide-x': [borderWidth]
1731
+ }],
1732
+ /**
1733
+ * Divide Width X Reverse
1734
+ * @see https://tailwindcss.com/docs/divide-width
1735
+ */
1736
+ 'divide-x-reverse': ['divide-x-reverse'],
1737
+ /**
1738
+ * Divide Width Y
1739
+ * @see https://tailwindcss.com/docs/divide-width
1740
+ */
1741
+ 'divide-y': [{
1742
+ 'divide-y': [borderWidth]
1743
+ }],
1744
+ /**
1745
+ * Divide Width Y Reverse
1746
+ * @see https://tailwindcss.com/docs/divide-width
1747
+ */
1748
+ 'divide-y-reverse': ['divide-y-reverse'],
1749
+ /**
1750
+ * Divide Opacity
1751
+ * @see https://tailwindcss.com/docs/divide-opacity
1752
+ */
1753
+ 'divide-opacity': [{
1754
+ 'divide-opacity': [opacity]
1755
+ }],
1756
+ /**
1757
+ * Divide Style
1758
+ * @see https://tailwindcss.com/docs/divide-style
1759
+ */
1760
+ 'divide-style': [{
1761
+ divide: getLineStyles()
1762
+ }],
1763
+ /**
1764
+ * Border Color
1765
+ * @see https://tailwindcss.com/docs/border-color
1766
+ */
1767
+ 'border-color': [{
1768
+ border: [borderColor]
1769
+ }],
1770
+ /**
1771
+ * Border Color X
1772
+ * @see https://tailwindcss.com/docs/border-color
1773
+ */
1774
+ 'border-color-x': [{
1775
+ 'border-x': [borderColor]
1776
+ }],
1777
+ /**
1778
+ * Border Color Y
1779
+ * @see https://tailwindcss.com/docs/border-color
1780
+ */
1781
+ 'border-color-y': [{
1782
+ 'border-y': [borderColor]
1783
+ }],
1784
+ /**
1785
+ * Border Color Top
1786
+ * @see https://tailwindcss.com/docs/border-color
1787
+ */
1788
+ 'border-color-t': [{
1789
+ 'border-t': [borderColor]
1790
+ }],
1791
+ /**
1792
+ * Border Color Right
1793
+ * @see https://tailwindcss.com/docs/border-color
1794
+ */
1795
+ 'border-color-r': [{
1796
+ 'border-r': [borderColor]
1797
+ }],
1798
+ /**
1799
+ * Border Color Bottom
1800
+ * @see https://tailwindcss.com/docs/border-color
1801
+ */
1802
+ 'border-color-b': [{
1803
+ 'border-b': [borderColor]
1804
+ }],
1805
+ /**
1806
+ * Border Color Left
1807
+ * @see https://tailwindcss.com/docs/border-color
1808
+ */
1809
+ 'border-color-l': [{
1810
+ 'border-l': [borderColor]
1811
+ }],
1812
+ /**
1813
+ * Divide Color
1814
+ * @see https://tailwindcss.com/docs/divide-color
1815
+ */
1816
+ 'divide-color': [{
1817
+ divide: [borderColor]
1818
+ }],
1819
+ /**
1820
+ * Outline Style
1821
+ * @see https://tailwindcss.com/docs/outline-style
1822
+ */
1823
+ 'outline-style': [{
1824
+ outline: [''].concat(getLineStyles())
1825
+ }],
1826
+ /**
1827
+ * Outline Offset
1828
+ * @see https://tailwindcss.com/docs/outline-offset
1829
+ */
1830
+ 'outline-offset': [{
1831
+ 'outline-offset': [isArbitraryValue, isLength]
1832
+ }],
1833
+ /**
1834
+ * Outline Width
1835
+ * @see https://tailwindcss.com/docs/outline-width
1836
+ */
1837
+ 'outline-w': [{
1838
+ outline: [isLength]
1839
+ }],
1840
+ /**
1841
+ * Outline Color
1842
+ * @see https://tailwindcss.com/docs/outline-color
1843
+ */
1844
+ 'outline-color': [{
1845
+ outline: [colors]
1846
+ }],
1847
+ /**
1848
+ * Ring Width
1849
+ * @see https://tailwindcss.com/docs/ring-width
1850
+ */
1851
+ 'ring-w': [{
1852
+ ring: getLengthWithEmpty()
1853
+ }],
1854
+ /**
1855
+ * Ring Width Inset
1856
+ * @see https://tailwindcss.com/docs/ring-width
1857
+ */
1858
+ 'ring-w-inset': ['ring-inset'],
1859
+ /**
1860
+ * Ring Color
1861
+ * @see https://tailwindcss.com/docs/ring-color
1862
+ */
1863
+ 'ring-color': [{
1864
+ ring: [colors]
1865
+ }],
1866
+ /**
1867
+ * Ring Opacity
1868
+ * @see https://tailwindcss.com/docs/ring-opacity
1869
+ */
1870
+ 'ring-opacity': [{
1871
+ 'ring-opacity': [opacity]
1872
+ }],
1873
+ /**
1874
+ * Ring Offset Width
1875
+ * @see https://tailwindcss.com/docs/ring-offset-width
1876
+ */
1877
+ 'ring-offset-w': [{
1878
+ 'ring-offset': [isLength]
1879
+ }],
1880
+ /**
1881
+ * Ring Offset Color
1882
+ * @see https://tailwindcss.com/docs/ring-offset-color
1883
+ */
1884
+ 'ring-offset-color': [{
1885
+ 'ring-offset': [colors]
1886
+ }],
1887
+ // Effects
1888
+ /**
1889
+ * Box Shadow
1890
+ * @see https://tailwindcss.com/docs/box-shadow
1891
+ */
1892
+ shadow: [{
1893
+ shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]
1894
+ }],
1895
+ /**
1896
+ * Box Shadow Color
1897
+ * @see https://tailwindcss.com/docs/box-shadow-color
1898
+ */
1899
+ 'shadow-color': [{
1900
+ shadow: [isAny]
1901
+ }],
1902
+ /**
1903
+ * Opacity
1904
+ * @see https://tailwindcss.com/docs/opacity
1905
+ */
1906
+ opacity: [{
1907
+ opacity: [opacity]
1908
+ }],
1909
+ /**
1910
+ * Mix Blend Mode
1911
+ * @see https://tailwindcss.com/docs/mix-blend-mode
1912
+ */
1913
+ 'mix-blend': [{
1914
+ 'mix-blend': getBlendModes()
1915
+ }],
1916
+ /**
1917
+ * Background Blend Mode
1918
+ * @see https://tailwindcss.com/docs/background-blend-mode
1919
+ */
1920
+ 'bg-blend': [{
1921
+ 'bg-blend': getBlendModes()
1922
+ }],
1923
+ // Filters
1924
+ /**
1925
+ * Filter
1926
+ * @deprecated since Tailwind CSS v3.0.0
1927
+ * @see https://tailwindcss.com/docs/filter
1928
+ */
1929
+ filter: [{
1930
+ filter: ['', 'none']
1931
+ }],
1932
+ /**
1933
+ * Blur
1934
+ * @see https://tailwindcss.com/docs/blur
1935
+ */
1936
+ blur: [{
1937
+ blur: [blur]
1938
+ }],
1939
+ /**
1940
+ * Brightness
1941
+ * @see https://tailwindcss.com/docs/brightness
1942
+ */
1943
+ brightness: [{
1944
+ brightness: [brightness]
1945
+ }],
1946
+ /**
1947
+ * Contrast
1948
+ * @see https://tailwindcss.com/docs/contrast
1949
+ */
1950
+ contrast: [{
1951
+ contrast: [contrast]
1952
+ }],
1953
+ /**
1954
+ * Drop Shadow
1955
+ * @see https://tailwindcss.com/docs/drop-shadow
1956
+ */
1957
+ 'drop-shadow': [{
1958
+ 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]
1959
+ }],
1960
+ /**
1961
+ * Grayscale
1962
+ * @see https://tailwindcss.com/docs/grayscale
1963
+ */
1964
+ grayscale: [{
1965
+ grayscale: [grayscale]
1966
+ }],
1967
+ /**
1968
+ * Hue Rotate
1969
+ * @see https://tailwindcss.com/docs/hue-rotate
1970
+ */
1971
+ 'hue-rotate': [{
1972
+ 'hue-rotate': [hueRotate]
1973
+ }],
1974
+ /**
1975
+ * Invert
1976
+ * @see https://tailwindcss.com/docs/invert
1977
+ */
1978
+ invert: [{
1979
+ invert: [invert]
1980
+ }],
1981
+ /**
1982
+ * Saturate
1983
+ * @see https://tailwindcss.com/docs/saturate
1984
+ */
1985
+ saturate: [{
1986
+ saturate: [saturate]
1987
+ }],
1988
+ /**
1989
+ * Sepia
1990
+ * @see https://tailwindcss.com/docs/sepia
1991
+ */
1992
+ sepia: [{
1993
+ sepia: [sepia]
1994
+ }],
1995
+ /**
1996
+ * Backdrop Filter
1997
+ * @deprecated since Tailwind CSS v3.0.0
1998
+ * @see https://tailwindcss.com/docs/backdrop-filter
1999
+ */
2000
+ 'backdrop-filter': [{
2001
+ 'backdrop-filter': ['', 'none']
2002
+ }],
2003
+ /**
2004
+ * Backdrop Blur
2005
+ * @see https://tailwindcss.com/docs/backdrop-blur
2006
+ */
2007
+ 'backdrop-blur': [{
2008
+ 'backdrop-blur': [blur]
2009
+ }],
2010
+ /**
2011
+ * Backdrop Brightness
2012
+ * @see https://tailwindcss.com/docs/backdrop-brightness
2013
+ */
2014
+ 'backdrop-brightness': [{
2015
+ 'backdrop-brightness': [brightness]
2016
+ }],
2017
+ /**
2018
+ * Backdrop Contrast
2019
+ * @see https://tailwindcss.com/docs/backdrop-contrast
2020
+ */
2021
+ 'backdrop-contrast': [{
2022
+ 'backdrop-contrast': [contrast]
2023
+ }],
2024
+ /**
2025
+ * Backdrop Grayscale
2026
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2027
+ */
2028
+ 'backdrop-grayscale': [{
2029
+ 'backdrop-grayscale': [grayscale]
2030
+ }],
2031
+ /**
2032
+ * Backdrop Hue Rotate
2033
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2034
+ */
2035
+ 'backdrop-hue-rotate': [{
2036
+ 'backdrop-hue-rotate': [hueRotate]
2037
+ }],
2038
+ /**
2039
+ * Backdrop Invert
2040
+ * @see https://tailwindcss.com/docs/backdrop-invert
2041
+ */
2042
+ 'backdrop-invert': [{
2043
+ 'backdrop-invert': [invert]
2044
+ }],
2045
+ /**
2046
+ * Backdrop Opacity
2047
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2048
+ */
2049
+ 'backdrop-opacity': [{
2050
+ 'backdrop-opacity': [opacity]
2051
+ }],
2052
+ /**
2053
+ * Backdrop Saturate
2054
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2055
+ */
2056
+ 'backdrop-saturate': [{
2057
+ 'backdrop-saturate': [saturate]
2058
+ }],
2059
+ /**
2060
+ * Backdrop Sepia
2061
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2062
+ */
2063
+ 'backdrop-sepia': [{
2064
+ 'backdrop-sepia': [sepia]
2065
+ }],
2066
+ // Tables
2067
+ /**
2068
+ * Border Collapse
2069
+ * @see https://tailwindcss.com/docs/border-collapse
2070
+ */
2071
+ 'border-collapse': [{
2072
+ border: ['collapse', 'separate']
2073
+ }],
2074
+ /**
2075
+ * Border Spacing
2076
+ * @see https://tailwindcss.com/docs/border-spacing
2077
+ */
2078
+ 'border-spacing': [{
2079
+ 'border-spacing': [borderSpacing]
2080
+ }],
2081
+ /**
2082
+ * Border Spacing X
2083
+ * @see https://tailwindcss.com/docs/border-spacing
2084
+ */
2085
+ 'border-spacing-x': [{
2086
+ 'border-spacing-x': [borderSpacing]
2087
+ }],
2088
+ /**
2089
+ * Border Spacing Y
2090
+ * @see https://tailwindcss.com/docs/border-spacing
2091
+ */
2092
+ 'border-spacing-y': [{
2093
+ 'border-spacing-y': [borderSpacing]
2094
+ }],
2095
+ /**
2096
+ * Table Layout
2097
+ * @see https://tailwindcss.com/docs/table-layout
2098
+ */
2099
+ 'table-layout': [{
2100
+ table: ['auto', 'fixed']
2101
+ }],
2102
+ /**
2103
+ * Caption Side
2104
+ * @see https://tailwindcss.com/docs/caption-side
2105
+ */
2106
+ caption: [{
2107
+ caption: ['top', 'bottom']
2108
+ }],
2109
+ // Transitions and Animation
2110
+ /**
2111
+ * Tranisition Property
2112
+ * @see https://tailwindcss.com/docs/transition-property
2113
+ */
2114
+ transition: [{
2115
+ transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]
2116
+ }],
2117
+ /**
2118
+ * Transition Duration
2119
+ * @see https://tailwindcss.com/docs/transition-duration
2120
+ */
2121
+ duration: [{
2122
+ duration: getNumberAndArbitrary()
2123
+ }],
2124
+ /**
2125
+ * Transition Timing Function
2126
+ * @see https://tailwindcss.com/docs/transition-timing-function
2127
+ */
2128
+ ease: [{
2129
+ ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]
2130
+ }],
2131
+ /**
2132
+ * Transition Delay
2133
+ * @see https://tailwindcss.com/docs/transition-delay
2134
+ */
2135
+ delay: [{
2136
+ delay: getNumberAndArbitrary()
2137
+ }],
2138
+ /**
2139
+ * Animation
2140
+ * @see https://tailwindcss.com/docs/animation
2141
+ */
2142
+ animate: [{
2143
+ animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]
2144
+ }],
2145
+ // Transforms
2146
+ /**
2147
+ * Transform
2148
+ * @see https://tailwindcss.com/docs/transform
2149
+ */
2150
+ transform: [{
2151
+ transform: ['', 'gpu', 'none']
2152
+ }],
2153
+ /**
2154
+ * Scale
2155
+ * @see https://tailwindcss.com/docs/scale
2156
+ */
2157
+ scale: [{
2158
+ scale: [scale]
2159
+ }],
2160
+ /**
2161
+ * Scale X
2162
+ * @see https://tailwindcss.com/docs/scale
2163
+ */
2164
+ 'scale-x': [{
2165
+ 'scale-x': [scale]
2166
+ }],
2167
+ /**
2168
+ * Scale Y
2169
+ * @see https://tailwindcss.com/docs/scale
2170
+ */
2171
+ 'scale-y': [{
2172
+ 'scale-y': [scale]
2173
+ }],
2174
+ /**
2175
+ * Rotate
2176
+ * @see https://tailwindcss.com/docs/rotate
2177
+ */
2178
+ rotate: [{
2179
+ rotate: [isInteger, isArbitraryValue]
2180
+ }],
2181
+ /**
2182
+ * Translate X
2183
+ * @see https://tailwindcss.com/docs/translate
2184
+ */
2185
+ 'translate-x': [{
2186
+ 'translate-x': [translate]
2187
+ }],
2188
+ /**
2189
+ * Translate Y
2190
+ * @see https://tailwindcss.com/docs/translate
2191
+ */
2192
+ 'translate-y': [{
2193
+ 'translate-y': [translate]
2194
+ }],
2195
+ /**
2196
+ * Skew X
2197
+ * @see https://tailwindcss.com/docs/skew
2198
+ */
2199
+ 'skew-x': [{
2200
+ 'skew-x': [skew]
2201
+ }],
2202
+ /**
2203
+ * Skew Y
2204
+ * @see https://tailwindcss.com/docs/skew
2205
+ */
2206
+ 'skew-y': [{
2207
+ 'skew-y': [skew]
2208
+ }],
2209
+ /**
2210
+ * Transform Origin
2211
+ * @see https://tailwindcss.com/docs/transform-origin
2212
+ */
2213
+ 'transform-origin': [{
2214
+ origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]
2215
+ }],
2216
+ // Interactivity
2217
+ /**
2218
+ * Accent Color
2219
+ * @see https://tailwindcss.com/docs/accent-color
2220
+ */
2221
+ accent: [{
2222
+ accent: ['auto', colors]
2223
+ }],
2224
+ /**
2225
+ * Appearance
2226
+ * @see https://tailwindcss.com/docs/appearance
2227
+ */
2228
+ appearance: ['appearance-none'],
2229
+ /**
2230
+ * Cursor
2231
+ * @see https://tailwindcss.com/docs/cursor
2232
+ */
2233
+ cursor: [{
2234
+ cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]
2235
+ }],
2236
+ /**
2237
+ * Caret Color
2238
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2239
+ */
2240
+ 'caret-color': [{
2241
+ caret: [colors]
2242
+ }],
2243
+ /**
2244
+ * Pointer Events
2245
+ * @see https://tailwindcss.com/docs/pointer-events
2246
+ */
2247
+ 'pointer-events': [{
2248
+ 'pointer-events': ['none', 'auto']
2249
+ }],
2250
+ /**
2251
+ * Resize
2252
+ * @see https://tailwindcss.com/docs/resize
2253
+ */
2254
+ resize: [{
2255
+ resize: ['none', 'y', 'x', '']
2256
+ }],
2257
+ /**
2258
+ * Scroll Behavior
2259
+ * @see https://tailwindcss.com/docs/scroll-behavior
2260
+ */
2261
+ 'scroll-behavior': [{
2262
+ scroll: ['auto', 'smooth']
2263
+ }],
2264
+ /**
2265
+ * Scroll Margin
2266
+ * @see https://tailwindcss.com/docs/scroll-margin
2267
+ */
2268
+ 'scroll-m': [{
2269
+ 'scroll-m': getSpacingWithArbitrary()
2270
+ }],
2271
+ /**
2272
+ * Scroll Margin X
2273
+ * @see https://tailwindcss.com/docs/scroll-margin
2274
+ */
2275
+ 'scroll-mx': [{
2276
+ 'scroll-mx': getSpacingWithArbitrary()
2277
+ }],
2278
+ /**
2279
+ * Scroll Margin Y
2280
+ * @see https://tailwindcss.com/docs/scroll-margin
2281
+ */
2282
+ 'scroll-my': [{
2283
+ 'scroll-my': getSpacingWithArbitrary()
2284
+ }],
2285
+ /**
2286
+ * Scroll Margin Start
2287
+ * @see https://tailwindcss.com/docs/scroll-margin
2288
+ */
2289
+ 'scroll-ms': [{
2290
+ 'scroll-ms': getSpacingWithArbitrary()
2291
+ }],
2292
+ /**
2293
+ * Scroll Margin End
2294
+ * @see https://tailwindcss.com/docs/scroll-margin
2295
+ */
2296
+ 'scroll-me': [{
2297
+ 'scroll-me': getSpacingWithArbitrary()
2298
+ }],
2299
+ /**
2300
+ * Scroll Margin Top
2301
+ * @see https://tailwindcss.com/docs/scroll-margin
2302
+ */
2303
+ 'scroll-mt': [{
2304
+ 'scroll-mt': getSpacingWithArbitrary()
2305
+ }],
2306
+ /**
2307
+ * Scroll Margin Right
2308
+ * @see https://tailwindcss.com/docs/scroll-margin
2309
+ */
2310
+ 'scroll-mr': [{
2311
+ 'scroll-mr': getSpacingWithArbitrary()
2312
+ }],
2313
+ /**
2314
+ * Scroll Margin Bottom
2315
+ * @see https://tailwindcss.com/docs/scroll-margin
2316
+ */
2317
+ 'scroll-mb': [{
2318
+ 'scroll-mb': getSpacingWithArbitrary()
2319
+ }],
2320
+ /**
2321
+ * Scroll Margin Left
2322
+ * @see https://tailwindcss.com/docs/scroll-margin
2323
+ */
2324
+ 'scroll-ml': [{
2325
+ 'scroll-ml': getSpacingWithArbitrary()
2326
+ }],
2327
+ /**
2328
+ * Scroll Padding
2329
+ * @see https://tailwindcss.com/docs/scroll-padding
2330
+ */
2331
+ 'scroll-p': [{
2332
+ 'scroll-p': getSpacingWithArbitrary()
2333
+ }],
2334
+ /**
2335
+ * Scroll Padding X
2336
+ * @see https://tailwindcss.com/docs/scroll-padding
2337
+ */
2338
+ 'scroll-px': [{
2339
+ 'scroll-px': getSpacingWithArbitrary()
2340
+ }],
2341
+ /**
2342
+ * Scroll Padding Y
2343
+ * @see https://tailwindcss.com/docs/scroll-padding
2344
+ */
2345
+ 'scroll-py': [{
2346
+ 'scroll-py': getSpacingWithArbitrary()
2347
+ }],
2348
+ /**
2349
+ * Scroll Padding Start
2350
+ * @see https://tailwindcss.com/docs/scroll-padding
2351
+ */
2352
+ 'scroll-ps': [{
2353
+ 'scroll-ps': getSpacingWithArbitrary()
2354
+ }],
2355
+ /**
2356
+ * Scroll Padding End
2357
+ * @see https://tailwindcss.com/docs/scroll-padding
2358
+ */
2359
+ 'scroll-pe': [{
2360
+ 'scroll-pe': getSpacingWithArbitrary()
2361
+ }],
2362
+ /**
2363
+ * Scroll Padding Top
2364
+ * @see https://tailwindcss.com/docs/scroll-padding
2365
+ */
2366
+ 'scroll-pt': [{
2367
+ 'scroll-pt': getSpacingWithArbitrary()
2368
+ }],
2369
+ /**
2370
+ * Scroll Padding Right
2371
+ * @see https://tailwindcss.com/docs/scroll-padding
2372
+ */
2373
+ 'scroll-pr': [{
2374
+ 'scroll-pr': getSpacingWithArbitrary()
2375
+ }],
2376
+ /**
2377
+ * Scroll Padding Bottom
2378
+ * @see https://tailwindcss.com/docs/scroll-padding
2379
+ */
2380
+ 'scroll-pb': [{
2381
+ 'scroll-pb': getSpacingWithArbitrary()
2382
+ }],
2383
+ /**
2384
+ * Scroll Padding Left
2385
+ * @see https://tailwindcss.com/docs/scroll-padding
2386
+ */
2387
+ 'scroll-pl': [{
2388
+ 'scroll-pl': getSpacingWithArbitrary()
2389
+ }],
2390
+ /**
2391
+ * Scroll Snap Align
2392
+ * @see https://tailwindcss.com/docs/scroll-snap-align
2393
+ */
2394
+ 'snap-align': [{
2395
+ snap: ['start', 'end', 'center', 'align-none']
2396
+ }],
2397
+ /**
2398
+ * Scroll Snap Stop
2399
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
2400
+ */
2401
+ 'snap-stop': [{
2402
+ snap: ['normal', 'always']
2403
+ }],
2404
+ /**
2405
+ * Scroll Snap Type
2406
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2407
+ */
2408
+ 'snap-type': [{
2409
+ snap: ['none', 'x', 'y', 'both']
2410
+ }],
2411
+ /**
2412
+ * Scroll Snap Type Strictness
2413
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2414
+ */
2415
+ 'snap-strictness': [{
2416
+ snap: ['mandatory', 'proximity']
2417
+ }],
2418
+ /**
2419
+ * Touch Action
2420
+ * @see https://tailwindcss.com/docs/touch-action
2421
+ */
2422
+ touch: [{
2423
+ touch: ['auto', 'none', 'pinch-zoom', 'manipulation', {
2424
+ pan: ['x', 'left', 'right', 'y', 'up', 'down']
2425
+ }]
2426
+ }],
2427
+ /**
2428
+ * User Select
2429
+ * @see https://tailwindcss.com/docs/user-select
2430
+ */
2431
+ select: [{
2432
+ select: ['none', 'text', 'all', 'auto']
2433
+ }],
2434
+ /**
2435
+ * Will Change
2436
+ * @see https://tailwindcss.com/docs/will-change
2437
+ */
2438
+ 'will-change': [{
2439
+ 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]
2440
+ }],
2441
+ // SVG
2442
+ /**
2443
+ * Fill
2444
+ * @see https://tailwindcss.com/docs/fill
2445
+ */
2446
+ fill: [{
2447
+ fill: [colors, 'none']
2448
+ }],
2449
+ /**
2450
+ * Stroke Width
2451
+ * @see https://tailwindcss.com/docs/stroke-width
2452
+ */
2453
+ 'stroke-w': [{
2454
+ stroke: [isLength, isArbitraryNumber]
2455
+ }],
2456
+ /**
2457
+ * Stroke
2458
+ * @see https://tailwindcss.com/docs/stroke
2459
+ */
2460
+ stroke: [{
2461
+ stroke: [colors, 'none']
2462
+ }],
2463
+ // Accessibility
2464
+ /**
2465
+ * Screen Readers
2466
+ * @see https://tailwindcss.com/docs/screen-readers
2467
+ */
2468
+ sr: ['sr-only', 'not-sr-only']
2469
+ },
2470
+ conflictingClassGroups: {
2471
+ overflow: ['overflow-x', 'overflow-y'],
2472
+ overscroll: ['overscroll-x', 'overscroll-y'],
2473
+ inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],
2474
+ 'inset-x': ['right', 'left'],
2475
+ 'inset-y': ['top', 'bottom'],
2476
+ flex: ['basis', 'grow', 'shrink'],
2477
+ gap: ['gap-x', 'gap-y'],
2478
+ p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],
2479
+ px: ['pr', 'pl'],
2480
+ py: ['pt', 'pb'],
2481
+ m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],
2482
+ mx: ['mr', 'ml'],
2483
+ my: ['mt', 'mb'],
2484
+ 'font-size': ['leading'],
2485
+ 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],
2486
+ 'fvn-ordinal': ['fvn-normal'],
2487
+ 'fvn-slashed-zero': ['fvn-normal'],
2488
+ 'fvn-figure': ['fvn-normal'],
2489
+ 'fvn-spacing': ['fvn-normal'],
2490
+ 'fvn-fraction': ['fvn-normal'],
2491
+ 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'],
2492
+ 'rounded-s': ['rounded-ss', 'rounded-es'],
2493
+ 'rounded-e': ['rounded-se', 'rounded-ee'],
2494
+ 'rounded-t': ['rounded-tl', 'rounded-tr'],
2495
+ 'rounded-r': ['rounded-tr', 'rounded-br'],
2496
+ 'rounded-b': ['rounded-br', 'rounded-bl'],
2497
+ 'rounded-l': ['rounded-tl', 'rounded-bl'],
2498
+ 'border-spacing': ['border-spacing-x', 'border-spacing-y'],
2499
+ 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
2500
+ 'border-w-x': ['border-w-r', 'border-w-l'],
2501
+ 'border-w-y': ['border-w-t', 'border-w-b'],
2502
+ 'border-color': ['border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
2503
+ 'border-color-x': ['border-color-r', 'border-color-l'],
2504
+ 'border-color-y': ['border-color-t', 'border-color-b'],
2505
+ 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
2506
+ 'scroll-mx': ['scroll-mr', 'scroll-ml'],
2507
+ 'scroll-my': ['scroll-mt', 'scroll-mb'],
2508
+ 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
2509
+ 'scroll-px': ['scroll-pr', 'scroll-pl'],
2510
+ 'scroll-py': ['scroll-pt', 'scroll-pb']
2511
+ },
2512
+ conflictingClassGroupModifiers: {
2513
+ 'font-size': ['leading']
2514
+ }
2515
+ };
2516
+ }
2517
+
2518
+ var twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);
2519
+
2520
+ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
2521
+
2522
+ const cn = (...inputs) => {
2523
+ return twMerge(clsx(inputs));
2524
+ };
2525
+
2526
+ export { cn };