@trackunit/react-date-and-time-components 0.0.92 → 0.0.93

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