@lukso/web-components 1.49.0 → 1.49.2

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