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