@thanh01.pmt/interactive-quiz-kit 1.0.25 → 1.0.28

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.
@@ -2,8 +2,6 @@ import { z } from 'zod';
2
2
  import { genkit } from 'genkit';
3
3
  import { gemini20Flash, googleAI } from '@genkit-ai/googleai';
4
4
  import JSZip from 'jszip';
5
- import { clsx } from 'clsx';
6
- import { twMerge } from 'tailwind-merge';
7
5
 
8
6
  // src/services/SCORMService.ts
9
7
  var SCORM_TRUE = "true";
@@ -960,13 +958,6 @@ var CodeEvaluationService = class {
960
958
  constructor() {
961
959
  this.apiKey = APIKeyService.getAPIKey(GEMINI_API_KEY_SERVICE_NAME);
962
960
  }
963
- /**
964
- * Evaluates a user's code against a single test case using an AI judge.
965
- * @param question The full CodingQuestion object.
966
- * @param userCode The user's submitted code string.
967
- * @param testCase The specific TestCase to evaluate against.
968
- * @returns A promise that resolves to an EvaluationResult object.
969
- */
970
961
  async evaluateSingleTestCase(question, userCode, testCase) {
971
962
  if (!this.apiKey) {
972
963
  return {
@@ -977,22 +968,20 @@ var CodeEvaluationService = class {
977
968
  };
978
969
  }
979
970
  const aiResult = await evaluateUserCode({
980
- language: question.language,
971
+ // FIX: Use 'codingLanguage' instead of 'language'
972
+ language: question.codingLanguage,
981
973
  problemPrompt: question.prompt,
982
974
  userCode,
983
975
  testCase
984
976
  }, this.apiKey);
985
977
  return {
986
978
  testCaseId: testCase.id,
987
- ...aiResult
979
+ // FIX: Ensure 'actualOutput' is always provided, even if it's null from AI
980
+ actualOutput: aiResult.actualOutput !== void 0 ? aiResult.actualOutput : null,
981
+ passed: aiResult.passed,
982
+ reasoning: aiResult.reasoning
988
983
  };
989
984
  }
990
- /**
991
- * Evaluates user's code against all test cases for a given question.
992
- * @param question The full CodingQuestion object.
993
- * @param userCode The user's submitted code string.
994
- * @returns A promise that resolves to an array of EvaluationResult objects.
995
- */
996
985
  async evaluateAllTestCases(question, userCode) {
997
986
  const results = [];
998
987
  for (const testCase of question.testCases) {
@@ -1001,13 +990,6 @@ var CodeEvaluationService = class {
1001
990
  }
1002
991
  return results;
1003
992
  }
1004
- /**
1005
- * Evaluates user's code against only the public test cases for a given question.
1006
- * Useful for a "Run Tests" button before final submission.
1007
- * @param question The full CodingQuestion object.
1008
- * @param userCode The user's submitted code string.
1009
- * @returns A promise that resolves to an array of EvaluationResult objects.
1010
- */
1011
993
  async evaluatePublicTestCases(question, userCode) {
1012
994
  const publicTestCases = question.testCases.filter((tc) => tc.isPublic);
1013
995
  const results = [];
@@ -3437,6 +3419,2483 @@ var emptyQuiz = {
3437
3419
  timeLimitMinutes: 0
3438
3420
  }
3439
3421
  };
3422
+
3423
+ // node_modules/clsx/dist/clsx.mjs
3424
+ function r(e) {
3425
+ var t, f, n = "";
3426
+ if ("string" == typeof e || "number" == typeof e) n += e;
3427
+ else if ("object" == typeof e) if (Array.isArray(e)) {
3428
+ var o = e.length;
3429
+ for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
3430
+ } else for (f in e) e[f] && (n && (n += " "), n += f);
3431
+ return n;
3432
+ }
3433
+ function clsx() {
3434
+ for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
3435
+ return n;
3436
+ }
3437
+
3438
+ // node_modules/tailwind-merge/dist/bundle-mjs.mjs
3439
+ var CLASS_PART_SEPARATOR = "-";
3440
+ var createClassGroupUtils = (config) => {
3441
+ const classMap = createClassMap(config);
3442
+ const {
3443
+ conflictingClassGroups,
3444
+ conflictingClassGroupModifiers
3445
+ } = config;
3446
+ const getClassGroupId = (className) => {
3447
+ const classParts = className.split(CLASS_PART_SEPARATOR);
3448
+ if (classParts[0] === "" && classParts.length !== 1) {
3449
+ classParts.shift();
3450
+ }
3451
+ return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
3452
+ };
3453
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
3454
+ const conflicts = conflictingClassGroups[classGroupId] || [];
3455
+ if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
3456
+ return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
3457
+ }
3458
+ return conflicts;
3459
+ };
3460
+ return {
3461
+ getClassGroupId,
3462
+ getConflictingClassGroupIds
3463
+ };
3464
+ };
3465
+ var getGroupRecursive = (classParts, classPartObject) => {
3466
+ if (classParts.length === 0) {
3467
+ return classPartObject.classGroupId;
3468
+ }
3469
+ const currentClassPart = classParts[0];
3470
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
3471
+ const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : void 0;
3472
+ if (classGroupFromNextClassPart) {
3473
+ return classGroupFromNextClassPart;
3474
+ }
3475
+ if (classPartObject.validators.length === 0) {
3476
+ return void 0;
3477
+ }
3478
+ const classRest = classParts.join(CLASS_PART_SEPARATOR);
3479
+ return classPartObject.validators.find(({
3480
+ validator
3481
+ }) => validator(classRest))?.classGroupId;
3482
+ };
3483
+ var arbitraryPropertyRegex = /^\[(.+)\]$/;
3484
+ var getGroupIdForArbitraryProperty = (className) => {
3485
+ if (arbitraryPropertyRegex.test(className)) {
3486
+ const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
3487
+ const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(":"));
3488
+ if (property) {
3489
+ return "arbitrary.." + property;
3490
+ }
3491
+ }
3492
+ };
3493
+ var createClassMap = (config) => {
3494
+ const {
3495
+ theme,
3496
+ prefix
3497
+ } = config;
3498
+ const classMap = {
3499
+ nextPart: /* @__PURE__ */ new Map(),
3500
+ validators: []
3501
+ };
3502
+ const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
3503
+ prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {
3504
+ processClassesRecursively(classGroup, classMap, classGroupId, theme);
3505
+ });
3506
+ return classMap;
3507
+ };
3508
+ var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
3509
+ classGroup.forEach((classDefinition) => {
3510
+ if (typeof classDefinition === "string") {
3511
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
3512
+ classPartObjectToEdit.classGroupId = classGroupId;
3513
+ return;
3514
+ }
3515
+ if (typeof classDefinition === "function") {
3516
+ if (isThemeGetter(classDefinition)) {
3517
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
3518
+ return;
3519
+ }
3520
+ classPartObject.validators.push({
3521
+ validator: classDefinition,
3522
+ classGroupId
3523
+ });
3524
+ return;
3525
+ }
3526
+ Object.entries(classDefinition).forEach(([key, classGroup2]) => {
3527
+ processClassesRecursively(classGroup2, getPart(classPartObject, key), classGroupId, theme);
3528
+ });
3529
+ });
3530
+ };
3531
+ var getPart = (classPartObject, path) => {
3532
+ let currentClassPartObject = classPartObject;
3533
+ path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {
3534
+ if (!currentClassPartObject.nextPart.has(pathPart)) {
3535
+ currentClassPartObject.nextPart.set(pathPart, {
3536
+ nextPart: /* @__PURE__ */ new Map(),
3537
+ validators: []
3538
+ });
3539
+ }
3540
+ currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
3541
+ });
3542
+ return currentClassPartObject;
3543
+ };
3544
+ var isThemeGetter = (func) => func.isThemeGetter;
3545
+ var getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {
3546
+ if (!prefix) {
3547
+ return classGroupEntries;
3548
+ }
3549
+ return classGroupEntries.map(([classGroupId, classGroup]) => {
3550
+ const prefixedClassGroup = classGroup.map((classDefinition) => {
3551
+ if (typeof classDefinition === "string") {
3552
+ return prefix + classDefinition;
3553
+ }
3554
+ if (typeof classDefinition === "object") {
3555
+ return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));
3556
+ }
3557
+ return classDefinition;
3558
+ });
3559
+ return [classGroupId, prefixedClassGroup];
3560
+ });
3561
+ };
3562
+ var createLruCache = (maxCacheSize) => {
3563
+ if (maxCacheSize < 1) {
3564
+ return {
3565
+ get: () => void 0,
3566
+ set: () => {
3567
+ }
3568
+ };
3569
+ }
3570
+ let cacheSize = 0;
3571
+ let cache = /* @__PURE__ */ new Map();
3572
+ let previousCache = /* @__PURE__ */ new Map();
3573
+ const update = (key, value) => {
3574
+ cache.set(key, value);
3575
+ cacheSize++;
3576
+ if (cacheSize > maxCacheSize) {
3577
+ cacheSize = 0;
3578
+ previousCache = cache;
3579
+ cache = /* @__PURE__ */ new Map();
3580
+ }
3581
+ };
3582
+ return {
3583
+ get(key) {
3584
+ let value = cache.get(key);
3585
+ if (value !== void 0) {
3586
+ return value;
3587
+ }
3588
+ if ((value = previousCache.get(key)) !== void 0) {
3589
+ update(key, value);
3590
+ return value;
3591
+ }
3592
+ },
3593
+ set(key, value) {
3594
+ if (cache.has(key)) {
3595
+ cache.set(key, value);
3596
+ } else {
3597
+ update(key, value);
3598
+ }
3599
+ }
3600
+ };
3601
+ };
3602
+ var IMPORTANT_MODIFIER = "!";
3603
+ var createParseClassName = (config) => {
3604
+ const {
3605
+ separator,
3606
+ experimentalParseClassName
3607
+ } = config;
3608
+ const isSeparatorSingleCharacter = separator.length === 1;
3609
+ const firstSeparatorCharacter = separator[0];
3610
+ const separatorLength = separator.length;
3611
+ const parseClassName = (className) => {
3612
+ const modifiers = [];
3613
+ let bracketDepth = 0;
3614
+ let modifierStart = 0;
3615
+ let postfixModifierPosition;
3616
+ for (let index = 0; index < className.length; index++) {
3617
+ let currentCharacter = className[index];
3618
+ if (bracketDepth === 0) {
3619
+ if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
3620
+ modifiers.push(className.slice(modifierStart, index));
3621
+ modifierStart = index + separatorLength;
3622
+ continue;
3623
+ }
3624
+ if (currentCharacter === "/") {
3625
+ postfixModifierPosition = index;
3626
+ continue;
3627
+ }
3628
+ }
3629
+ if (currentCharacter === "[") {
3630
+ bracketDepth++;
3631
+ } else if (currentCharacter === "]") {
3632
+ bracketDepth--;
3633
+ }
3634
+ }
3635
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
3636
+ const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
3637
+ const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
3638
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
3639
+ return {
3640
+ modifiers,
3641
+ hasImportantModifier,
3642
+ baseClassName,
3643
+ maybePostfixModifierPosition
3644
+ };
3645
+ };
3646
+ if (experimentalParseClassName) {
3647
+ return (className) => experimentalParseClassName({
3648
+ className,
3649
+ parseClassName
3650
+ });
3651
+ }
3652
+ return parseClassName;
3653
+ };
3654
+ var sortModifiers = (modifiers) => {
3655
+ if (modifiers.length <= 1) {
3656
+ return modifiers;
3657
+ }
3658
+ const sortedModifiers = [];
3659
+ let unsortedModifiers = [];
3660
+ modifiers.forEach((modifier) => {
3661
+ const isArbitraryVariant = modifier[0] === "[";
3662
+ if (isArbitraryVariant) {
3663
+ sortedModifiers.push(...unsortedModifiers.sort(), modifier);
3664
+ unsortedModifiers = [];
3665
+ } else {
3666
+ unsortedModifiers.push(modifier);
3667
+ }
3668
+ });
3669
+ sortedModifiers.push(...unsortedModifiers.sort());
3670
+ return sortedModifiers;
3671
+ };
3672
+ var createConfigUtils = (config) => ({
3673
+ cache: createLruCache(config.cacheSize),
3674
+ parseClassName: createParseClassName(config),
3675
+ ...createClassGroupUtils(config)
3676
+ });
3677
+ var SPLIT_CLASSES_REGEX = /\s+/;
3678
+ var mergeClassList = (classList, configUtils) => {
3679
+ const {
3680
+ parseClassName,
3681
+ getClassGroupId,
3682
+ getConflictingClassGroupIds
3683
+ } = configUtils;
3684
+ const classGroupsInConflict = [];
3685
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
3686
+ let result = "";
3687
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
3688
+ const originalClassName = classNames[index];
3689
+ const {
3690
+ modifiers,
3691
+ hasImportantModifier,
3692
+ baseClassName,
3693
+ maybePostfixModifierPosition
3694
+ } = parseClassName(originalClassName);
3695
+ let hasPostfixModifier = Boolean(maybePostfixModifierPosition);
3696
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
3697
+ if (!classGroupId) {
3698
+ if (!hasPostfixModifier) {
3699
+ result = originalClassName + (result.length > 0 ? " " + result : result);
3700
+ continue;
3701
+ }
3702
+ classGroupId = getClassGroupId(baseClassName);
3703
+ if (!classGroupId) {
3704
+ result = originalClassName + (result.length > 0 ? " " + result : result);
3705
+ continue;
3706
+ }
3707
+ hasPostfixModifier = false;
3708
+ }
3709
+ const variantModifier = sortModifiers(modifiers).join(":");
3710
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
3711
+ const classId = modifierId + classGroupId;
3712
+ if (classGroupsInConflict.includes(classId)) {
3713
+ continue;
3714
+ }
3715
+ classGroupsInConflict.push(classId);
3716
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
3717
+ for (let i = 0; i < conflictGroups.length; ++i) {
3718
+ const group = conflictGroups[i];
3719
+ classGroupsInConflict.push(modifierId + group);
3720
+ }
3721
+ result = originalClassName + (result.length > 0 ? " " + result : result);
3722
+ }
3723
+ return result;
3724
+ };
3725
+ function twJoin() {
3726
+ let index = 0;
3727
+ let argument;
3728
+ let resolvedValue;
3729
+ let string = "";
3730
+ while (index < arguments.length) {
3731
+ if (argument = arguments[index++]) {
3732
+ if (resolvedValue = toValue(argument)) {
3733
+ string && (string += " ");
3734
+ string += resolvedValue;
3735
+ }
3736
+ }
3737
+ }
3738
+ return string;
3739
+ }
3740
+ var toValue = (mix) => {
3741
+ if (typeof mix === "string") {
3742
+ return mix;
3743
+ }
3744
+ let resolvedValue;
3745
+ let string = "";
3746
+ for (let k = 0; k < mix.length; k++) {
3747
+ if (mix[k]) {
3748
+ if (resolvedValue = toValue(mix[k])) {
3749
+ string && (string += " ");
3750
+ string += resolvedValue;
3751
+ }
3752
+ }
3753
+ }
3754
+ return string;
3755
+ };
3756
+ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
3757
+ let configUtils;
3758
+ let cacheGet;
3759
+ let cacheSet;
3760
+ let functionToCall = initTailwindMerge;
3761
+ function initTailwindMerge(classList) {
3762
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
3763
+ configUtils = createConfigUtils(config);
3764
+ cacheGet = configUtils.cache.get;
3765
+ cacheSet = configUtils.cache.set;
3766
+ functionToCall = tailwindMerge;
3767
+ return tailwindMerge(classList);
3768
+ }
3769
+ function tailwindMerge(classList) {
3770
+ const cachedResult = cacheGet(classList);
3771
+ if (cachedResult) {
3772
+ return cachedResult;
3773
+ }
3774
+ const result = mergeClassList(classList, configUtils);
3775
+ cacheSet(classList, result);
3776
+ return result;
3777
+ }
3778
+ return function callTailwindMerge() {
3779
+ return functionToCall(twJoin.apply(null, arguments));
3780
+ };
3781
+ }
3782
+ var fromTheme = (key) => {
3783
+ const themeGetter = (theme) => theme[key] || [];
3784
+ themeGetter.isThemeGetter = true;
3785
+ return themeGetter;
3786
+ };
3787
+ var arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
3788
+ var fractionRegex = /^\d+\/\d+$/;
3789
+ var stringLengths = /* @__PURE__ */ new Set(["px", "full", "screen"]);
3790
+ var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
3791
+ 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$/;
3792
+ var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
3793
+ var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
3794
+ var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
3795
+ var isLength = (value) => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);
3796
+ var isArbitraryLength = (value) => getIsArbitraryValue(value, "length", isLengthOnly);
3797
+ var isNumber = (value) => Boolean(value) && !Number.isNaN(Number(value));
3798
+ var isArbitraryNumber = (value) => getIsArbitraryValue(value, "number", isNumber);
3799
+ var isInteger = (value) => Boolean(value) && Number.isInteger(Number(value));
3800
+ var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
3801
+ var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
3802
+ var isTshirtSize = (value) => tshirtUnitRegex.test(value);
3803
+ var sizeLabels = /* @__PURE__ */ new Set(["length", "size", "percentage"]);
3804
+ var isArbitrarySize = (value) => getIsArbitraryValue(value, sizeLabels, isNever);
3805
+ var isArbitraryPosition = (value) => getIsArbitraryValue(value, "position", isNever);
3806
+ var imageLabels = /* @__PURE__ */ new Set(["image", "url"]);
3807
+ var isArbitraryImage = (value) => getIsArbitraryValue(value, imageLabels, isImage);
3808
+ var isArbitraryShadow = (value) => getIsArbitraryValue(value, "", isShadow);
3809
+ var isAny = () => true;
3810
+ var getIsArbitraryValue = (value, label, testValue) => {
3811
+ const result = arbitraryValueRegex.exec(value);
3812
+ if (result) {
3813
+ if (result[1]) {
3814
+ return typeof label === "string" ? result[1] === label : label.has(result[1]);
3815
+ }
3816
+ return testValue(result[2]);
3817
+ }
3818
+ return false;
3819
+ };
3820
+ var isLengthOnly = (value) => (
3821
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
3822
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
3823
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
3824
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
3825
+ );
3826
+ var isNever = () => false;
3827
+ var isShadow = (value) => shadowRegex.test(value);
3828
+ var isImage = (value) => imageRegex.test(value);
3829
+ var getDefaultConfig = () => {
3830
+ const colors = fromTheme("colors");
3831
+ const spacing = fromTheme("spacing");
3832
+ const blur = fromTheme("blur");
3833
+ const brightness = fromTheme("brightness");
3834
+ const borderColor = fromTheme("borderColor");
3835
+ const borderRadius = fromTheme("borderRadius");
3836
+ const borderSpacing = fromTheme("borderSpacing");
3837
+ const borderWidth = fromTheme("borderWidth");
3838
+ const contrast = fromTheme("contrast");
3839
+ const grayscale = fromTheme("grayscale");
3840
+ const hueRotate = fromTheme("hueRotate");
3841
+ const invert = fromTheme("invert");
3842
+ const gap = fromTheme("gap");
3843
+ const gradientColorStops = fromTheme("gradientColorStops");
3844
+ const gradientColorStopPositions = fromTheme("gradientColorStopPositions");
3845
+ const inset = fromTheme("inset");
3846
+ const margin = fromTheme("margin");
3847
+ const opacity = fromTheme("opacity");
3848
+ const padding = fromTheme("padding");
3849
+ const saturate = fromTheme("saturate");
3850
+ const scale = fromTheme("scale");
3851
+ const sepia = fromTheme("sepia");
3852
+ const skew = fromTheme("skew");
3853
+ const space = fromTheme("space");
3854
+ const translate = fromTheme("translate");
3855
+ const getOverscroll = () => ["auto", "contain", "none"];
3856
+ const getOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
3857
+ const getSpacingWithAutoAndArbitrary = () => ["auto", isArbitraryValue, spacing];
3858
+ const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];
3859
+ const getLengthWithEmptyAndArbitrary = () => ["", isLength, isArbitraryLength];
3860
+ const getNumberWithAutoAndArbitrary = () => ["auto", isNumber, isArbitraryValue];
3861
+ const getPositions = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"];
3862
+ const getLineStyles = () => ["solid", "dashed", "dotted", "double", "none"];
3863
+ const getBlendModes = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
3864
+ const getAlign = () => ["start", "end", "center", "between", "around", "evenly", "stretch"];
3865
+ const getZeroAndEmpty = () => ["", "0", isArbitraryValue];
3866
+ const getBreaks = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
3867
+ const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];
3868
+ return {
3869
+ cacheSize: 500,
3870
+ separator: ":",
3871
+ theme: {
3872
+ colors: [isAny],
3873
+ spacing: [isLength, isArbitraryLength],
3874
+ blur: ["none", "", isTshirtSize, isArbitraryValue],
3875
+ brightness: getNumberAndArbitrary(),
3876
+ borderColor: [colors],
3877
+ borderRadius: ["none", "", "full", isTshirtSize, isArbitraryValue],
3878
+ borderSpacing: getSpacingWithArbitrary(),
3879
+ borderWidth: getLengthWithEmptyAndArbitrary(),
3880
+ contrast: getNumberAndArbitrary(),
3881
+ grayscale: getZeroAndEmpty(),
3882
+ hueRotate: getNumberAndArbitrary(),
3883
+ invert: getZeroAndEmpty(),
3884
+ gap: getSpacingWithArbitrary(),
3885
+ gradientColorStops: [colors],
3886
+ gradientColorStopPositions: [isPercent, isArbitraryLength],
3887
+ inset: getSpacingWithAutoAndArbitrary(),
3888
+ margin: getSpacingWithAutoAndArbitrary(),
3889
+ opacity: getNumberAndArbitrary(),
3890
+ padding: getSpacingWithArbitrary(),
3891
+ saturate: getNumberAndArbitrary(),
3892
+ scale: getNumberAndArbitrary(),
3893
+ sepia: getZeroAndEmpty(),
3894
+ skew: getNumberAndArbitrary(),
3895
+ space: getSpacingWithArbitrary(),
3896
+ translate: getSpacingWithArbitrary()
3897
+ },
3898
+ classGroups: {
3899
+ // Layout
3900
+ /**
3901
+ * Aspect Ratio
3902
+ * @see https://tailwindcss.com/docs/aspect-ratio
3903
+ */
3904
+ aspect: [{
3905
+ aspect: ["auto", "square", "video", isArbitraryValue]
3906
+ }],
3907
+ /**
3908
+ * Container
3909
+ * @see https://tailwindcss.com/docs/container
3910
+ */
3911
+ container: ["container"],
3912
+ /**
3913
+ * Columns
3914
+ * @see https://tailwindcss.com/docs/columns
3915
+ */
3916
+ columns: [{
3917
+ columns: [isTshirtSize]
3918
+ }],
3919
+ /**
3920
+ * Break After
3921
+ * @see https://tailwindcss.com/docs/break-after
3922
+ */
3923
+ "break-after": [{
3924
+ "break-after": getBreaks()
3925
+ }],
3926
+ /**
3927
+ * Break Before
3928
+ * @see https://tailwindcss.com/docs/break-before
3929
+ */
3930
+ "break-before": [{
3931
+ "break-before": getBreaks()
3932
+ }],
3933
+ /**
3934
+ * Break Inside
3935
+ * @see https://tailwindcss.com/docs/break-inside
3936
+ */
3937
+ "break-inside": [{
3938
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
3939
+ }],
3940
+ /**
3941
+ * Box Decoration Break
3942
+ * @see https://tailwindcss.com/docs/box-decoration-break
3943
+ */
3944
+ "box-decoration": [{
3945
+ "box-decoration": ["slice", "clone"]
3946
+ }],
3947
+ /**
3948
+ * Box Sizing
3949
+ * @see https://tailwindcss.com/docs/box-sizing
3950
+ */
3951
+ box: [{
3952
+ box: ["border", "content"]
3953
+ }],
3954
+ /**
3955
+ * Display
3956
+ * @see https://tailwindcss.com/docs/display
3957
+ */
3958
+ 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"],
3959
+ /**
3960
+ * Floats
3961
+ * @see https://tailwindcss.com/docs/float
3962
+ */
3963
+ float: [{
3964
+ float: ["right", "left", "none", "start", "end"]
3965
+ }],
3966
+ /**
3967
+ * Clear
3968
+ * @see https://tailwindcss.com/docs/clear
3969
+ */
3970
+ clear: [{
3971
+ clear: ["left", "right", "both", "none", "start", "end"]
3972
+ }],
3973
+ /**
3974
+ * Isolation
3975
+ * @see https://tailwindcss.com/docs/isolation
3976
+ */
3977
+ isolation: ["isolate", "isolation-auto"],
3978
+ /**
3979
+ * Object Fit
3980
+ * @see https://tailwindcss.com/docs/object-fit
3981
+ */
3982
+ "object-fit": [{
3983
+ object: ["contain", "cover", "fill", "none", "scale-down"]
3984
+ }],
3985
+ /**
3986
+ * Object Position
3987
+ * @see https://tailwindcss.com/docs/object-position
3988
+ */
3989
+ "object-position": [{
3990
+ object: [...getPositions(), isArbitraryValue]
3991
+ }],
3992
+ /**
3993
+ * Overflow
3994
+ * @see https://tailwindcss.com/docs/overflow
3995
+ */
3996
+ overflow: [{
3997
+ overflow: getOverflow()
3998
+ }],
3999
+ /**
4000
+ * Overflow X
4001
+ * @see https://tailwindcss.com/docs/overflow
4002
+ */
4003
+ "overflow-x": [{
4004
+ "overflow-x": getOverflow()
4005
+ }],
4006
+ /**
4007
+ * Overflow Y
4008
+ * @see https://tailwindcss.com/docs/overflow
4009
+ */
4010
+ "overflow-y": [{
4011
+ "overflow-y": getOverflow()
4012
+ }],
4013
+ /**
4014
+ * Overscroll Behavior
4015
+ * @see https://tailwindcss.com/docs/overscroll-behavior
4016
+ */
4017
+ overscroll: [{
4018
+ overscroll: getOverscroll()
4019
+ }],
4020
+ /**
4021
+ * Overscroll Behavior X
4022
+ * @see https://tailwindcss.com/docs/overscroll-behavior
4023
+ */
4024
+ "overscroll-x": [{
4025
+ "overscroll-x": getOverscroll()
4026
+ }],
4027
+ /**
4028
+ * Overscroll Behavior Y
4029
+ * @see https://tailwindcss.com/docs/overscroll-behavior
4030
+ */
4031
+ "overscroll-y": [{
4032
+ "overscroll-y": getOverscroll()
4033
+ }],
4034
+ /**
4035
+ * Position
4036
+ * @see https://tailwindcss.com/docs/position
4037
+ */
4038
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
4039
+ /**
4040
+ * Top / Right / Bottom / Left
4041
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4042
+ */
4043
+ inset: [{
4044
+ inset: [inset]
4045
+ }],
4046
+ /**
4047
+ * Right / Left
4048
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4049
+ */
4050
+ "inset-x": [{
4051
+ "inset-x": [inset]
4052
+ }],
4053
+ /**
4054
+ * Top / Bottom
4055
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4056
+ */
4057
+ "inset-y": [{
4058
+ "inset-y": [inset]
4059
+ }],
4060
+ /**
4061
+ * Start
4062
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4063
+ */
4064
+ start: [{
4065
+ start: [inset]
4066
+ }],
4067
+ /**
4068
+ * End
4069
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4070
+ */
4071
+ end: [{
4072
+ end: [inset]
4073
+ }],
4074
+ /**
4075
+ * Top
4076
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4077
+ */
4078
+ top: [{
4079
+ top: [inset]
4080
+ }],
4081
+ /**
4082
+ * Right
4083
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4084
+ */
4085
+ right: [{
4086
+ right: [inset]
4087
+ }],
4088
+ /**
4089
+ * Bottom
4090
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4091
+ */
4092
+ bottom: [{
4093
+ bottom: [inset]
4094
+ }],
4095
+ /**
4096
+ * Left
4097
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
4098
+ */
4099
+ left: [{
4100
+ left: [inset]
4101
+ }],
4102
+ /**
4103
+ * Visibility
4104
+ * @see https://tailwindcss.com/docs/visibility
4105
+ */
4106
+ visibility: ["visible", "invisible", "collapse"],
4107
+ /**
4108
+ * Z-Index
4109
+ * @see https://tailwindcss.com/docs/z-index
4110
+ */
4111
+ z: [{
4112
+ z: ["auto", isInteger, isArbitraryValue]
4113
+ }],
4114
+ // Flexbox and Grid
4115
+ /**
4116
+ * Flex Basis
4117
+ * @see https://tailwindcss.com/docs/flex-basis
4118
+ */
4119
+ basis: [{
4120
+ basis: getSpacingWithAutoAndArbitrary()
4121
+ }],
4122
+ /**
4123
+ * Flex Direction
4124
+ * @see https://tailwindcss.com/docs/flex-direction
4125
+ */
4126
+ "flex-direction": [{
4127
+ flex: ["row", "row-reverse", "col", "col-reverse"]
4128
+ }],
4129
+ /**
4130
+ * Flex Wrap
4131
+ * @see https://tailwindcss.com/docs/flex-wrap
4132
+ */
4133
+ "flex-wrap": [{
4134
+ flex: ["wrap", "wrap-reverse", "nowrap"]
4135
+ }],
4136
+ /**
4137
+ * Flex
4138
+ * @see https://tailwindcss.com/docs/flex
4139
+ */
4140
+ flex: [{
4141
+ flex: ["1", "auto", "initial", "none", isArbitraryValue]
4142
+ }],
4143
+ /**
4144
+ * Flex Grow
4145
+ * @see https://tailwindcss.com/docs/flex-grow
4146
+ */
4147
+ grow: [{
4148
+ grow: getZeroAndEmpty()
4149
+ }],
4150
+ /**
4151
+ * Flex Shrink
4152
+ * @see https://tailwindcss.com/docs/flex-shrink
4153
+ */
4154
+ shrink: [{
4155
+ shrink: getZeroAndEmpty()
4156
+ }],
4157
+ /**
4158
+ * Order
4159
+ * @see https://tailwindcss.com/docs/order
4160
+ */
4161
+ order: [{
4162
+ order: ["first", "last", "none", isInteger, isArbitraryValue]
4163
+ }],
4164
+ /**
4165
+ * Grid Template Columns
4166
+ * @see https://tailwindcss.com/docs/grid-template-columns
4167
+ */
4168
+ "grid-cols": [{
4169
+ "grid-cols": [isAny]
4170
+ }],
4171
+ /**
4172
+ * Grid Column Start / End
4173
+ * @see https://tailwindcss.com/docs/grid-column
4174
+ */
4175
+ "col-start-end": [{
4176
+ col: ["auto", {
4177
+ span: ["full", isInteger, isArbitraryValue]
4178
+ }, isArbitraryValue]
4179
+ }],
4180
+ /**
4181
+ * Grid Column Start
4182
+ * @see https://tailwindcss.com/docs/grid-column
4183
+ */
4184
+ "col-start": [{
4185
+ "col-start": getNumberWithAutoAndArbitrary()
4186
+ }],
4187
+ /**
4188
+ * Grid Column End
4189
+ * @see https://tailwindcss.com/docs/grid-column
4190
+ */
4191
+ "col-end": [{
4192
+ "col-end": getNumberWithAutoAndArbitrary()
4193
+ }],
4194
+ /**
4195
+ * Grid Template Rows
4196
+ * @see https://tailwindcss.com/docs/grid-template-rows
4197
+ */
4198
+ "grid-rows": [{
4199
+ "grid-rows": [isAny]
4200
+ }],
4201
+ /**
4202
+ * Grid Row Start / End
4203
+ * @see https://tailwindcss.com/docs/grid-row
4204
+ */
4205
+ "row-start-end": [{
4206
+ row: ["auto", {
4207
+ span: [isInteger, isArbitraryValue]
4208
+ }, isArbitraryValue]
4209
+ }],
4210
+ /**
4211
+ * Grid Row Start
4212
+ * @see https://tailwindcss.com/docs/grid-row
4213
+ */
4214
+ "row-start": [{
4215
+ "row-start": getNumberWithAutoAndArbitrary()
4216
+ }],
4217
+ /**
4218
+ * Grid Row End
4219
+ * @see https://tailwindcss.com/docs/grid-row
4220
+ */
4221
+ "row-end": [{
4222
+ "row-end": getNumberWithAutoAndArbitrary()
4223
+ }],
4224
+ /**
4225
+ * Grid Auto Flow
4226
+ * @see https://tailwindcss.com/docs/grid-auto-flow
4227
+ */
4228
+ "grid-flow": [{
4229
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
4230
+ }],
4231
+ /**
4232
+ * Grid Auto Columns
4233
+ * @see https://tailwindcss.com/docs/grid-auto-columns
4234
+ */
4235
+ "auto-cols": [{
4236
+ "auto-cols": ["auto", "min", "max", "fr", isArbitraryValue]
4237
+ }],
4238
+ /**
4239
+ * Grid Auto Rows
4240
+ * @see https://tailwindcss.com/docs/grid-auto-rows
4241
+ */
4242
+ "auto-rows": [{
4243
+ "auto-rows": ["auto", "min", "max", "fr", isArbitraryValue]
4244
+ }],
4245
+ /**
4246
+ * Gap
4247
+ * @see https://tailwindcss.com/docs/gap
4248
+ */
4249
+ gap: [{
4250
+ gap: [gap]
4251
+ }],
4252
+ /**
4253
+ * Gap X
4254
+ * @see https://tailwindcss.com/docs/gap
4255
+ */
4256
+ "gap-x": [{
4257
+ "gap-x": [gap]
4258
+ }],
4259
+ /**
4260
+ * Gap Y
4261
+ * @see https://tailwindcss.com/docs/gap
4262
+ */
4263
+ "gap-y": [{
4264
+ "gap-y": [gap]
4265
+ }],
4266
+ /**
4267
+ * Justify Content
4268
+ * @see https://tailwindcss.com/docs/justify-content
4269
+ */
4270
+ "justify-content": [{
4271
+ justify: ["normal", ...getAlign()]
4272
+ }],
4273
+ /**
4274
+ * Justify Items
4275
+ * @see https://tailwindcss.com/docs/justify-items
4276
+ */
4277
+ "justify-items": [{
4278
+ "justify-items": ["start", "end", "center", "stretch"]
4279
+ }],
4280
+ /**
4281
+ * Justify Self
4282
+ * @see https://tailwindcss.com/docs/justify-self
4283
+ */
4284
+ "justify-self": [{
4285
+ "justify-self": ["auto", "start", "end", "center", "stretch"]
4286
+ }],
4287
+ /**
4288
+ * Align Content
4289
+ * @see https://tailwindcss.com/docs/align-content
4290
+ */
4291
+ "align-content": [{
4292
+ content: ["normal", ...getAlign(), "baseline"]
4293
+ }],
4294
+ /**
4295
+ * Align Items
4296
+ * @see https://tailwindcss.com/docs/align-items
4297
+ */
4298
+ "align-items": [{
4299
+ items: ["start", "end", "center", "baseline", "stretch"]
4300
+ }],
4301
+ /**
4302
+ * Align Self
4303
+ * @see https://tailwindcss.com/docs/align-self
4304
+ */
4305
+ "align-self": [{
4306
+ self: ["auto", "start", "end", "center", "stretch", "baseline"]
4307
+ }],
4308
+ /**
4309
+ * Place Content
4310
+ * @see https://tailwindcss.com/docs/place-content
4311
+ */
4312
+ "place-content": [{
4313
+ "place-content": [...getAlign(), "baseline"]
4314
+ }],
4315
+ /**
4316
+ * Place Items
4317
+ * @see https://tailwindcss.com/docs/place-items
4318
+ */
4319
+ "place-items": [{
4320
+ "place-items": ["start", "end", "center", "baseline", "stretch"]
4321
+ }],
4322
+ /**
4323
+ * Place Self
4324
+ * @see https://tailwindcss.com/docs/place-self
4325
+ */
4326
+ "place-self": [{
4327
+ "place-self": ["auto", "start", "end", "center", "stretch"]
4328
+ }],
4329
+ // Spacing
4330
+ /**
4331
+ * Padding
4332
+ * @see https://tailwindcss.com/docs/padding
4333
+ */
4334
+ p: [{
4335
+ p: [padding]
4336
+ }],
4337
+ /**
4338
+ * Padding X
4339
+ * @see https://tailwindcss.com/docs/padding
4340
+ */
4341
+ px: [{
4342
+ px: [padding]
4343
+ }],
4344
+ /**
4345
+ * Padding Y
4346
+ * @see https://tailwindcss.com/docs/padding
4347
+ */
4348
+ py: [{
4349
+ py: [padding]
4350
+ }],
4351
+ /**
4352
+ * Padding Start
4353
+ * @see https://tailwindcss.com/docs/padding
4354
+ */
4355
+ ps: [{
4356
+ ps: [padding]
4357
+ }],
4358
+ /**
4359
+ * Padding End
4360
+ * @see https://tailwindcss.com/docs/padding
4361
+ */
4362
+ pe: [{
4363
+ pe: [padding]
4364
+ }],
4365
+ /**
4366
+ * Padding Top
4367
+ * @see https://tailwindcss.com/docs/padding
4368
+ */
4369
+ pt: [{
4370
+ pt: [padding]
4371
+ }],
4372
+ /**
4373
+ * Padding Right
4374
+ * @see https://tailwindcss.com/docs/padding
4375
+ */
4376
+ pr: [{
4377
+ pr: [padding]
4378
+ }],
4379
+ /**
4380
+ * Padding Bottom
4381
+ * @see https://tailwindcss.com/docs/padding
4382
+ */
4383
+ pb: [{
4384
+ pb: [padding]
4385
+ }],
4386
+ /**
4387
+ * Padding Left
4388
+ * @see https://tailwindcss.com/docs/padding
4389
+ */
4390
+ pl: [{
4391
+ pl: [padding]
4392
+ }],
4393
+ /**
4394
+ * Margin
4395
+ * @see https://tailwindcss.com/docs/margin
4396
+ */
4397
+ m: [{
4398
+ m: [margin]
4399
+ }],
4400
+ /**
4401
+ * Margin X
4402
+ * @see https://tailwindcss.com/docs/margin
4403
+ */
4404
+ mx: [{
4405
+ mx: [margin]
4406
+ }],
4407
+ /**
4408
+ * Margin Y
4409
+ * @see https://tailwindcss.com/docs/margin
4410
+ */
4411
+ my: [{
4412
+ my: [margin]
4413
+ }],
4414
+ /**
4415
+ * Margin Start
4416
+ * @see https://tailwindcss.com/docs/margin
4417
+ */
4418
+ ms: [{
4419
+ ms: [margin]
4420
+ }],
4421
+ /**
4422
+ * Margin End
4423
+ * @see https://tailwindcss.com/docs/margin
4424
+ */
4425
+ me: [{
4426
+ me: [margin]
4427
+ }],
4428
+ /**
4429
+ * Margin Top
4430
+ * @see https://tailwindcss.com/docs/margin
4431
+ */
4432
+ mt: [{
4433
+ mt: [margin]
4434
+ }],
4435
+ /**
4436
+ * Margin Right
4437
+ * @see https://tailwindcss.com/docs/margin
4438
+ */
4439
+ mr: [{
4440
+ mr: [margin]
4441
+ }],
4442
+ /**
4443
+ * Margin Bottom
4444
+ * @see https://tailwindcss.com/docs/margin
4445
+ */
4446
+ mb: [{
4447
+ mb: [margin]
4448
+ }],
4449
+ /**
4450
+ * Margin Left
4451
+ * @see https://tailwindcss.com/docs/margin
4452
+ */
4453
+ ml: [{
4454
+ ml: [margin]
4455
+ }],
4456
+ /**
4457
+ * Space Between X
4458
+ * @see https://tailwindcss.com/docs/space
4459
+ */
4460
+ "space-x": [{
4461
+ "space-x": [space]
4462
+ }],
4463
+ /**
4464
+ * Space Between X Reverse
4465
+ * @see https://tailwindcss.com/docs/space
4466
+ */
4467
+ "space-x-reverse": ["space-x-reverse"],
4468
+ /**
4469
+ * Space Between Y
4470
+ * @see https://tailwindcss.com/docs/space
4471
+ */
4472
+ "space-y": [{
4473
+ "space-y": [space]
4474
+ }],
4475
+ /**
4476
+ * Space Between Y Reverse
4477
+ * @see https://tailwindcss.com/docs/space
4478
+ */
4479
+ "space-y-reverse": ["space-y-reverse"],
4480
+ // Sizing
4481
+ /**
4482
+ * Width
4483
+ * @see https://tailwindcss.com/docs/width
4484
+ */
4485
+ w: [{
4486
+ w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", isArbitraryValue, spacing]
4487
+ }],
4488
+ /**
4489
+ * Min-Width
4490
+ * @see https://tailwindcss.com/docs/min-width
4491
+ */
4492
+ "min-w": [{
4493
+ "min-w": [isArbitraryValue, spacing, "min", "max", "fit"]
4494
+ }],
4495
+ /**
4496
+ * Max-Width
4497
+ * @see https://tailwindcss.com/docs/max-width
4498
+ */
4499
+ "max-w": [{
4500
+ "max-w": [isArbitraryValue, spacing, "none", "full", "min", "max", "fit", "prose", {
4501
+ screen: [isTshirtSize]
4502
+ }, isTshirtSize]
4503
+ }],
4504
+ /**
4505
+ * Height
4506
+ * @see https://tailwindcss.com/docs/height
4507
+ */
4508
+ h: [{
4509
+ h: [isArbitraryValue, spacing, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
4510
+ }],
4511
+ /**
4512
+ * Min-Height
4513
+ * @see https://tailwindcss.com/docs/min-height
4514
+ */
4515
+ "min-h": [{
4516
+ "min-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
4517
+ }],
4518
+ /**
4519
+ * Max-Height
4520
+ * @see https://tailwindcss.com/docs/max-height
4521
+ */
4522
+ "max-h": [{
4523
+ "max-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
4524
+ }],
4525
+ /**
4526
+ * Size
4527
+ * @see https://tailwindcss.com/docs/size
4528
+ */
4529
+ size: [{
4530
+ size: [isArbitraryValue, spacing, "auto", "min", "max", "fit"]
4531
+ }],
4532
+ // Typography
4533
+ /**
4534
+ * Font Size
4535
+ * @see https://tailwindcss.com/docs/font-size
4536
+ */
4537
+ "font-size": [{
4538
+ text: ["base", isTshirtSize, isArbitraryLength]
4539
+ }],
4540
+ /**
4541
+ * Font Smoothing
4542
+ * @see https://tailwindcss.com/docs/font-smoothing
4543
+ */
4544
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
4545
+ /**
4546
+ * Font Style
4547
+ * @see https://tailwindcss.com/docs/font-style
4548
+ */
4549
+ "font-style": ["italic", "not-italic"],
4550
+ /**
4551
+ * Font Weight
4552
+ * @see https://tailwindcss.com/docs/font-weight
4553
+ */
4554
+ "font-weight": [{
4555
+ font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", isArbitraryNumber]
4556
+ }],
4557
+ /**
4558
+ * Font Family
4559
+ * @see https://tailwindcss.com/docs/font-family
4560
+ */
4561
+ "font-family": [{
4562
+ font: [isAny]
4563
+ }],
4564
+ /**
4565
+ * Font Variant Numeric
4566
+ * @see https://tailwindcss.com/docs/font-variant-numeric
4567
+ */
4568
+ "fvn-normal": ["normal-nums"],
4569
+ /**
4570
+ * Font Variant Numeric
4571
+ * @see https://tailwindcss.com/docs/font-variant-numeric
4572
+ */
4573
+ "fvn-ordinal": ["ordinal"],
4574
+ /**
4575
+ * Font Variant Numeric
4576
+ * @see https://tailwindcss.com/docs/font-variant-numeric
4577
+ */
4578
+ "fvn-slashed-zero": ["slashed-zero"],
4579
+ /**
4580
+ * Font Variant Numeric
4581
+ * @see https://tailwindcss.com/docs/font-variant-numeric
4582
+ */
4583
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
4584
+ /**
4585
+ * Font Variant Numeric
4586
+ * @see https://tailwindcss.com/docs/font-variant-numeric
4587
+ */
4588
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
4589
+ /**
4590
+ * Font Variant Numeric
4591
+ * @see https://tailwindcss.com/docs/font-variant-numeric
4592
+ */
4593
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
4594
+ /**
4595
+ * Letter Spacing
4596
+ * @see https://tailwindcss.com/docs/letter-spacing
4597
+ */
4598
+ tracking: [{
4599
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", isArbitraryValue]
4600
+ }],
4601
+ /**
4602
+ * Line Clamp
4603
+ * @see https://tailwindcss.com/docs/line-clamp
4604
+ */
4605
+ "line-clamp": [{
4606
+ "line-clamp": ["none", isNumber, isArbitraryNumber]
4607
+ }],
4608
+ /**
4609
+ * Line Height
4610
+ * @see https://tailwindcss.com/docs/line-height
4611
+ */
4612
+ leading: [{
4613
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose", isLength, isArbitraryValue]
4614
+ }],
4615
+ /**
4616
+ * List Style Image
4617
+ * @see https://tailwindcss.com/docs/list-style-image
4618
+ */
4619
+ "list-image": [{
4620
+ "list-image": ["none", isArbitraryValue]
4621
+ }],
4622
+ /**
4623
+ * List Style Type
4624
+ * @see https://tailwindcss.com/docs/list-style-type
4625
+ */
4626
+ "list-style-type": [{
4627
+ list: ["none", "disc", "decimal", isArbitraryValue]
4628
+ }],
4629
+ /**
4630
+ * List Style Position
4631
+ * @see https://tailwindcss.com/docs/list-style-position
4632
+ */
4633
+ "list-style-position": [{
4634
+ list: ["inside", "outside"]
4635
+ }],
4636
+ /**
4637
+ * Placeholder Color
4638
+ * @deprecated since Tailwind CSS v3.0.0
4639
+ * @see https://tailwindcss.com/docs/placeholder-color
4640
+ */
4641
+ "placeholder-color": [{
4642
+ placeholder: [colors]
4643
+ }],
4644
+ /**
4645
+ * Placeholder Opacity
4646
+ * @see https://tailwindcss.com/docs/placeholder-opacity
4647
+ */
4648
+ "placeholder-opacity": [{
4649
+ "placeholder-opacity": [opacity]
4650
+ }],
4651
+ /**
4652
+ * Text Alignment
4653
+ * @see https://tailwindcss.com/docs/text-align
4654
+ */
4655
+ "text-alignment": [{
4656
+ text: ["left", "center", "right", "justify", "start", "end"]
4657
+ }],
4658
+ /**
4659
+ * Text Color
4660
+ * @see https://tailwindcss.com/docs/text-color
4661
+ */
4662
+ "text-color": [{
4663
+ text: [colors]
4664
+ }],
4665
+ /**
4666
+ * Text Opacity
4667
+ * @see https://tailwindcss.com/docs/text-opacity
4668
+ */
4669
+ "text-opacity": [{
4670
+ "text-opacity": [opacity]
4671
+ }],
4672
+ /**
4673
+ * Text Decoration
4674
+ * @see https://tailwindcss.com/docs/text-decoration
4675
+ */
4676
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
4677
+ /**
4678
+ * Text Decoration Style
4679
+ * @see https://tailwindcss.com/docs/text-decoration-style
4680
+ */
4681
+ "text-decoration-style": [{
4682
+ decoration: [...getLineStyles(), "wavy"]
4683
+ }],
4684
+ /**
4685
+ * Text Decoration Thickness
4686
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
4687
+ */
4688
+ "text-decoration-thickness": [{
4689
+ decoration: ["auto", "from-font", isLength, isArbitraryLength]
4690
+ }],
4691
+ /**
4692
+ * Text Underline Offset
4693
+ * @see https://tailwindcss.com/docs/text-underline-offset
4694
+ */
4695
+ "underline-offset": [{
4696
+ "underline-offset": ["auto", isLength, isArbitraryValue]
4697
+ }],
4698
+ /**
4699
+ * Text Decoration Color
4700
+ * @see https://tailwindcss.com/docs/text-decoration-color
4701
+ */
4702
+ "text-decoration-color": [{
4703
+ decoration: [colors]
4704
+ }],
4705
+ /**
4706
+ * Text Transform
4707
+ * @see https://tailwindcss.com/docs/text-transform
4708
+ */
4709
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
4710
+ /**
4711
+ * Text Overflow
4712
+ * @see https://tailwindcss.com/docs/text-overflow
4713
+ */
4714
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
4715
+ /**
4716
+ * Text Wrap
4717
+ * @see https://tailwindcss.com/docs/text-wrap
4718
+ */
4719
+ "text-wrap": [{
4720
+ text: ["wrap", "nowrap", "balance", "pretty"]
4721
+ }],
4722
+ /**
4723
+ * Text Indent
4724
+ * @see https://tailwindcss.com/docs/text-indent
4725
+ */
4726
+ indent: [{
4727
+ indent: getSpacingWithArbitrary()
4728
+ }],
4729
+ /**
4730
+ * Vertical Alignment
4731
+ * @see https://tailwindcss.com/docs/vertical-align
4732
+ */
4733
+ "vertical-align": [{
4734
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryValue]
4735
+ }],
4736
+ /**
4737
+ * Whitespace
4738
+ * @see https://tailwindcss.com/docs/whitespace
4739
+ */
4740
+ whitespace: [{
4741
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
4742
+ }],
4743
+ /**
4744
+ * Word Break
4745
+ * @see https://tailwindcss.com/docs/word-break
4746
+ */
4747
+ break: [{
4748
+ break: ["normal", "words", "all", "keep"]
4749
+ }],
4750
+ /**
4751
+ * Hyphens
4752
+ * @see https://tailwindcss.com/docs/hyphens
4753
+ */
4754
+ hyphens: [{
4755
+ hyphens: ["none", "manual", "auto"]
4756
+ }],
4757
+ /**
4758
+ * Content
4759
+ * @see https://tailwindcss.com/docs/content
4760
+ */
4761
+ content: [{
4762
+ content: ["none", isArbitraryValue]
4763
+ }],
4764
+ // Backgrounds
4765
+ /**
4766
+ * Background Attachment
4767
+ * @see https://tailwindcss.com/docs/background-attachment
4768
+ */
4769
+ "bg-attachment": [{
4770
+ bg: ["fixed", "local", "scroll"]
4771
+ }],
4772
+ /**
4773
+ * Background Clip
4774
+ * @see https://tailwindcss.com/docs/background-clip
4775
+ */
4776
+ "bg-clip": [{
4777
+ "bg-clip": ["border", "padding", "content", "text"]
4778
+ }],
4779
+ /**
4780
+ * Background Opacity
4781
+ * @deprecated since Tailwind CSS v3.0.0
4782
+ * @see https://tailwindcss.com/docs/background-opacity
4783
+ */
4784
+ "bg-opacity": [{
4785
+ "bg-opacity": [opacity]
4786
+ }],
4787
+ /**
4788
+ * Background Origin
4789
+ * @see https://tailwindcss.com/docs/background-origin
4790
+ */
4791
+ "bg-origin": [{
4792
+ "bg-origin": ["border", "padding", "content"]
4793
+ }],
4794
+ /**
4795
+ * Background Position
4796
+ * @see https://tailwindcss.com/docs/background-position
4797
+ */
4798
+ "bg-position": [{
4799
+ bg: [...getPositions(), isArbitraryPosition]
4800
+ }],
4801
+ /**
4802
+ * Background Repeat
4803
+ * @see https://tailwindcss.com/docs/background-repeat
4804
+ */
4805
+ "bg-repeat": [{
4806
+ bg: ["no-repeat", {
4807
+ repeat: ["", "x", "y", "round", "space"]
4808
+ }]
4809
+ }],
4810
+ /**
4811
+ * Background Size
4812
+ * @see https://tailwindcss.com/docs/background-size
4813
+ */
4814
+ "bg-size": [{
4815
+ bg: ["auto", "cover", "contain", isArbitrarySize]
4816
+ }],
4817
+ /**
4818
+ * Background Image
4819
+ * @see https://tailwindcss.com/docs/background-image
4820
+ */
4821
+ "bg-image": [{
4822
+ bg: ["none", {
4823
+ "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
4824
+ }, isArbitraryImage]
4825
+ }],
4826
+ /**
4827
+ * Background Color
4828
+ * @see https://tailwindcss.com/docs/background-color
4829
+ */
4830
+ "bg-color": [{
4831
+ bg: [colors]
4832
+ }],
4833
+ /**
4834
+ * Gradient Color Stops From Position
4835
+ * @see https://tailwindcss.com/docs/gradient-color-stops
4836
+ */
4837
+ "gradient-from-pos": [{
4838
+ from: [gradientColorStopPositions]
4839
+ }],
4840
+ /**
4841
+ * Gradient Color Stops Via Position
4842
+ * @see https://tailwindcss.com/docs/gradient-color-stops
4843
+ */
4844
+ "gradient-via-pos": [{
4845
+ via: [gradientColorStopPositions]
4846
+ }],
4847
+ /**
4848
+ * Gradient Color Stops To Position
4849
+ * @see https://tailwindcss.com/docs/gradient-color-stops
4850
+ */
4851
+ "gradient-to-pos": [{
4852
+ to: [gradientColorStopPositions]
4853
+ }],
4854
+ /**
4855
+ * Gradient Color Stops From
4856
+ * @see https://tailwindcss.com/docs/gradient-color-stops
4857
+ */
4858
+ "gradient-from": [{
4859
+ from: [gradientColorStops]
4860
+ }],
4861
+ /**
4862
+ * Gradient Color Stops Via
4863
+ * @see https://tailwindcss.com/docs/gradient-color-stops
4864
+ */
4865
+ "gradient-via": [{
4866
+ via: [gradientColorStops]
4867
+ }],
4868
+ /**
4869
+ * Gradient Color Stops To
4870
+ * @see https://tailwindcss.com/docs/gradient-color-stops
4871
+ */
4872
+ "gradient-to": [{
4873
+ to: [gradientColorStops]
4874
+ }],
4875
+ // Borders
4876
+ /**
4877
+ * Border Radius
4878
+ * @see https://tailwindcss.com/docs/border-radius
4879
+ */
4880
+ rounded: [{
4881
+ rounded: [borderRadius]
4882
+ }],
4883
+ /**
4884
+ * Border Radius Start
4885
+ * @see https://tailwindcss.com/docs/border-radius
4886
+ */
4887
+ "rounded-s": [{
4888
+ "rounded-s": [borderRadius]
4889
+ }],
4890
+ /**
4891
+ * Border Radius End
4892
+ * @see https://tailwindcss.com/docs/border-radius
4893
+ */
4894
+ "rounded-e": [{
4895
+ "rounded-e": [borderRadius]
4896
+ }],
4897
+ /**
4898
+ * Border Radius Top
4899
+ * @see https://tailwindcss.com/docs/border-radius
4900
+ */
4901
+ "rounded-t": [{
4902
+ "rounded-t": [borderRadius]
4903
+ }],
4904
+ /**
4905
+ * Border Radius Right
4906
+ * @see https://tailwindcss.com/docs/border-radius
4907
+ */
4908
+ "rounded-r": [{
4909
+ "rounded-r": [borderRadius]
4910
+ }],
4911
+ /**
4912
+ * Border Radius Bottom
4913
+ * @see https://tailwindcss.com/docs/border-radius
4914
+ */
4915
+ "rounded-b": [{
4916
+ "rounded-b": [borderRadius]
4917
+ }],
4918
+ /**
4919
+ * Border Radius Left
4920
+ * @see https://tailwindcss.com/docs/border-radius
4921
+ */
4922
+ "rounded-l": [{
4923
+ "rounded-l": [borderRadius]
4924
+ }],
4925
+ /**
4926
+ * Border Radius Start Start
4927
+ * @see https://tailwindcss.com/docs/border-radius
4928
+ */
4929
+ "rounded-ss": [{
4930
+ "rounded-ss": [borderRadius]
4931
+ }],
4932
+ /**
4933
+ * Border Radius Start End
4934
+ * @see https://tailwindcss.com/docs/border-radius
4935
+ */
4936
+ "rounded-se": [{
4937
+ "rounded-se": [borderRadius]
4938
+ }],
4939
+ /**
4940
+ * Border Radius End End
4941
+ * @see https://tailwindcss.com/docs/border-radius
4942
+ */
4943
+ "rounded-ee": [{
4944
+ "rounded-ee": [borderRadius]
4945
+ }],
4946
+ /**
4947
+ * Border Radius End Start
4948
+ * @see https://tailwindcss.com/docs/border-radius
4949
+ */
4950
+ "rounded-es": [{
4951
+ "rounded-es": [borderRadius]
4952
+ }],
4953
+ /**
4954
+ * Border Radius Top Left
4955
+ * @see https://tailwindcss.com/docs/border-radius
4956
+ */
4957
+ "rounded-tl": [{
4958
+ "rounded-tl": [borderRadius]
4959
+ }],
4960
+ /**
4961
+ * Border Radius Top Right
4962
+ * @see https://tailwindcss.com/docs/border-radius
4963
+ */
4964
+ "rounded-tr": [{
4965
+ "rounded-tr": [borderRadius]
4966
+ }],
4967
+ /**
4968
+ * Border Radius Bottom Right
4969
+ * @see https://tailwindcss.com/docs/border-radius
4970
+ */
4971
+ "rounded-br": [{
4972
+ "rounded-br": [borderRadius]
4973
+ }],
4974
+ /**
4975
+ * Border Radius Bottom Left
4976
+ * @see https://tailwindcss.com/docs/border-radius
4977
+ */
4978
+ "rounded-bl": [{
4979
+ "rounded-bl": [borderRadius]
4980
+ }],
4981
+ /**
4982
+ * Border Width
4983
+ * @see https://tailwindcss.com/docs/border-width
4984
+ */
4985
+ "border-w": [{
4986
+ border: [borderWidth]
4987
+ }],
4988
+ /**
4989
+ * Border Width X
4990
+ * @see https://tailwindcss.com/docs/border-width
4991
+ */
4992
+ "border-w-x": [{
4993
+ "border-x": [borderWidth]
4994
+ }],
4995
+ /**
4996
+ * Border Width Y
4997
+ * @see https://tailwindcss.com/docs/border-width
4998
+ */
4999
+ "border-w-y": [{
5000
+ "border-y": [borderWidth]
5001
+ }],
5002
+ /**
5003
+ * Border Width Start
5004
+ * @see https://tailwindcss.com/docs/border-width
5005
+ */
5006
+ "border-w-s": [{
5007
+ "border-s": [borderWidth]
5008
+ }],
5009
+ /**
5010
+ * Border Width End
5011
+ * @see https://tailwindcss.com/docs/border-width
5012
+ */
5013
+ "border-w-e": [{
5014
+ "border-e": [borderWidth]
5015
+ }],
5016
+ /**
5017
+ * Border Width Top
5018
+ * @see https://tailwindcss.com/docs/border-width
5019
+ */
5020
+ "border-w-t": [{
5021
+ "border-t": [borderWidth]
5022
+ }],
5023
+ /**
5024
+ * Border Width Right
5025
+ * @see https://tailwindcss.com/docs/border-width
5026
+ */
5027
+ "border-w-r": [{
5028
+ "border-r": [borderWidth]
5029
+ }],
5030
+ /**
5031
+ * Border Width Bottom
5032
+ * @see https://tailwindcss.com/docs/border-width
5033
+ */
5034
+ "border-w-b": [{
5035
+ "border-b": [borderWidth]
5036
+ }],
5037
+ /**
5038
+ * Border Width Left
5039
+ * @see https://tailwindcss.com/docs/border-width
5040
+ */
5041
+ "border-w-l": [{
5042
+ "border-l": [borderWidth]
5043
+ }],
5044
+ /**
5045
+ * Border Opacity
5046
+ * @see https://tailwindcss.com/docs/border-opacity
5047
+ */
5048
+ "border-opacity": [{
5049
+ "border-opacity": [opacity]
5050
+ }],
5051
+ /**
5052
+ * Border Style
5053
+ * @see https://tailwindcss.com/docs/border-style
5054
+ */
5055
+ "border-style": [{
5056
+ border: [...getLineStyles(), "hidden"]
5057
+ }],
5058
+ /**
5059
+ * Divide Width X
5060
+ * @see https://tailwindcss.com/docs/divide-width
5061
+ */
5062
+ "divide-x": [{
5063
+ "divide-x": [borderWidth]
5064
+ }],
5065
+ /**
5066
+ * Divide Width X Reverse
5067
+ * @see https://tailwindcss.com/docs/divide-width
5068
+ */
5069
+ "divide-x-reverse": ["divide-x-reverse"],
5070
+ /**
5071
+ * Divide Width Y
5072
+ * @see https://tailwindcss.com/docs/divide-width
5073
+ */
5074
+ "divide-y": [{
5075
+ "divide-y": [borderWidth]
5076
+ }],
5077
+ /**
5078
+ * Divide Width Y Reverse
5079
+ * @see https://tailwindcss.com/docs/divide-width
5080
+ */
5081
+ "divide-y-reverse": ["divide-y-reverse"],
5082
+ /**
5083
+ * Divide Opacity
5084
+ * @see https://tailwindcss.com/docs/divide-opacity
5085
+ */
5086
+ "divide-opacity": [{
5087
+ "divide-opacity": [opacity]
5088
+ }],
5089
+ /**
5090
+ * Divide Style
5091
+ * @see https://tailwindcss.com/docs/divide-style
5092
+ */
5093
+ "divide-style": [{
5094
+ divide: getLineStyles()
5095
+ }],
5096
+ /**
5097
+ * Border Color
5098
+ * @see https://tailwindcss.com/docs/border-color
5099
+ */
5100
+ "border-color": [{
5101
+ border: [borderColor]
5102
+ }],
5103
+ /**
5104
+ * Border Color X
5105
+ * @see https://tailwindcss.com/docs/border-color
5106
+ */
5107
+ "border-color-x": [{
5108
+ "border-x": [borderColor]
5109
+ }],
5110
+ /**
5111
+ * Border Color Y
5112
+ * @see https://tailwindcss.com/docs/border-color
5113
+ */
5114
+ "border-color-y": [{
5115
+ "border-y": [borderColor]
5116
+ }],
5117
+ /**
5118
+ * Border Color S
5119
+ * @see https://tailwindcss.com/docs/border-color
5120
+ */
5121
+ "border-color-s": [{
5122
+ "border-s": [borderColor]
5123
+ }],
5124
+ /**
5125
+ * Border Color E
5126
+ * @see https://tailwindcss.com/docs/border-color
5127
+ */
5128
+ "border-color-e": [{
5129
+ "border-e": [borderColor]
5130
+ }],
5131
+ /**
5132
+ * Border Color Top
5133
+ * @see https://tailwindcss.com/docs/border-color
5134
+ */
5135
+ "border-color-t": [{
5136
+ "border-t": [borderColor]
5137
+ }],
5138
+ /**
5139
+ * Border Color Right
5140
+ * @see https://tailwindcss.com/docs/border-color
5141
+ */
5142
+ "border-color-r": [{
5143
+ "border-r": [borderColor]
5144
+ }],
5145
+ /**
5146
+ * Border Color Bottom
5147
+ * @see https://tailwindcss.com/docs/border-color
5148
+ */
5149
+ "border-color-b": [{
5150
+ "border-b": [borderColor]
5151
+ }],
5152
+ /**
5153
+ * Border Color Left
5154
+ * @see https://tailwindcss.com/docs/border-color
5155
+ */
5156
+ "border-color-l": [{
5157
+ "border-l": [borderColor]
5158
+ }],
5159
+ /**
5160
+ * Divide Color
5161
+ * @see https://tailwindcss.com/docs/divide-color
5162
+ */
5163
+ "divide-color": [{
5164
+ divide: [borderColor]
5165
+ }],
5166
+ /**
5167
+ * Outline Style
5168
+ * @see https://tailwindcss.com/docs/outline-style
5169
+ */
5170
+ "outline-style": [{
5171
+ outline: ["", ...getLineStyles()]
5172
+ }],
5173
+ /**
5174
+ * Outline Offset
5175
+ * @see https://tailwindcss.com/docs/outline-offset
5176
+ */
5177
+ "outline-offset": [{
5178
+ "outline-offset": [isLength, isArbitraryValue]
5179
+ }],
5180
+ /**
5181
+ * Outline Width
5182
+ * @see https://tailwindcss.com/docs/outline-width
5183
+ */
5184
+ "outline-w": [{
5185
+ outline: [isLength, isArbitraryLength]
5186
+ }],
5187
+ /**
5188
+ * Outline Color
5189
+ * @see https://tailwindcss.com/docs/outline-color
5190
+ */
5191
+ "outline-color": [{
5192
+ outline: [colors]
5193
+ }],
5194
+ /**
5195
+ * Ring Width
5196
+ * @see https://tailwindcss.com/docs/ring-width
5197
+ */
5198
+ "ring-w": [{
5199
+ ring: getLengthWithEmptyAndArbitrary()
5200
+ }],
5201
+ /**
5202
+ * Ring Width Inset
5203
+ * @see https://tailwindcss.com/docs/ring-width
5204
+ */
5205
+ "ring-w-inset": ["ring-inset"],
5206
+ /**
5207
+ * Ring Color
5208
+ * @see https://tailwindcss.com/docs/ring-color
5209
+ */
5210
+ "ring-color": [{
5211
+ ring: [colors]
5212
+ }],
5213
+ /**
5214
+ * Ring Opacity
5215
+ * @see https://tailwindcss.com/docs/ring-opacity
5216
+ */
5217
+ "ring-opacity": [{
5218
+ "ring-opacity": [opacity]
5219
+ }],
5220
+ /**
5221
+ * Ring Offset Width
5222
+ * @see https://tailwindcss.com/docs/ring-offset-width
5223
+ */
5224
+ "ring-offset-w": [{
5225
+ "ring-offset": [isLength, isArbitraryLength]
5226
+ }],
5227
+ /**
5228
+ * Ring Offset Color
5229
+ * @see https://tailwindcss.com/docs/ring-offset-color
5230
+ */
5231
+ "ring-offset-color": [{
5232
+ "ring-offset": [colors]
5233
+ }],
5234
+ // Effects
5235
+ /**
5236
+ * Box Shadow
5237
+ * @see https://tailwindcss.com/docs/box-shadow
5238
+ */
5239
+ shadow: [{
5240
+ shadow: ["", "inner", "none", isTshirtSize, isArbitraryShadow]
5241
+ }],
5242
+ /**
5243
+ * Box Shadow Color
5244
+ * @see https://tailwindcss.com/docs/box-shadow-color
5245
+ */
5246
+ "shadow-color": [{
5247
+ shadow: [isAny]
5248
+ }],
5249
+ /**
5250
+ * Opacity
5251
+ * @see https://tailwindcss.com/docs/opacity
5252
+ */
5253
+ opacity: [{
5254
+ opacity: [opacity]
5255
+ }],
5256
+ /**
5257
+ * Mix Blend Mode
5258
+ * @see https://tailwindcss.com/docs/mix-blend-mode
5259
+ */
5260
+ "mix-blend": [{
5261
+ "mix-blend": [...getBlendModes(), "plus-lighter", "plus-darker"]
5262
+ }],
5263
+ /**
5264
+ * Background Blend Mode
5265
+ * @see https://tailwindcss.com/docs/background-blend-mode
5266
+ */
5267
+ "bg-blend": [{
5268
+ "bg-blend": getBlendModes()
5269
+ }],
5270
+ // Filters
5271
+ /**
5272
+ * Filter
5273
+ * @deprecated since Tailwind CSS v3.0.0
5274
+ * @see https://tailwindcss.com/docs/filter
5275
+ */
5276
+ filter: [{
5277
+ filter: ["", "none"]
5278
+ }],
5279
+ /**
5280
+ * Blur
5281
+ * @see https://tailwindcss.com/docs/blur
5282
+ */
5283
+ blur: [{
5284
+ blur: [blur]
5285
+ }],
5286
+ /**
5287
+ * Brightness
5288
+ * @see https://tailwindcss.com/docs/brightness
5289
+ */
5290
+ brightness: [{
5291
+ brightness: [brightness]
5292
+ }],
5293
+ /**
5294
+ * Contrast
5295
+ * @see https://tailwindcss.com/docs/contrast
5296
+ */
5297
+ contrast: [{
5298
+ contrast: [contrast]
5299
+ }],
5300
+ /**
5301
+ * Drop Shadow
5302
+ * @see https://tailwindcss.com/docs/drop-shadow
5303
+ */
5304
+ "drop-shadow": [{
5305
+ "drop-shadow": ["", "none", isTshirtSize, isArbitraryValue]
5306
+ }],
5307
+ /**
5308
+ * Grayscale
5309
+ * @see https://tailwindcss.com/docs/grayscale
5310
+ */
5311
+ grayscale: [{
5312
+ grayscale: [grayscale]
5313
+ }],
5314
+ /**
5315
+ * Hue Rotate
5316
+ * @see https://tailwindcss.com/docs/hue-rotate
5317
+ */
5318
+ "hue-rotate": [{
5319
+ "hue-rotate": [hueRotate]
5320
+ }],
5321
+ /**
5322
+ * Invert
5323
+ * @see https://tailwindcss.com/docs/invert
5324
+ */
5325
+ invert: [{
5326
+ invert: [invert]
5327
+ }],
5328
+ /**
5329
+ * Saturate
5330
+ * @see https://tailwindcss.com/docs/saturate
5331
+ */
5332
+ saturate: [{
5333
+ saturate: [saturate]
5334
+ }],
5335
+ /**
5336
+ * Sepia
5337
+ * @see https://tailwindcss.com/docs/sepia
5338
+ */
5339
+ sepia: [{
5340
+ sepia: [sepia]
5341
+ }],
5342
+ /**
5343
+ * Backdrop Filter
5344
+ * @deprecated since Tailwind CSS v3.0.0
5345
+ * @see https://tailwindcss.com/docs/backdrop-filter
5346
+ */
5347
+ "backdrop-filter": [{
5348
+ "backdrop-filter": ["", "none"]
5349
+ }],
5350
+ /**
5351
+ * Backdrop Blur
5352
+ * @see https://tailwindcss.com/docs/backdrop-blur
5353
+ */
5354
+ "backdrop-blur": [{
5355
+ "backdrop-blur": [blur]
5356
+ }],
5357
+ /**
5358
+ * Backdrop Brightness
5359
+ * @see https://tailwindcss.com/docs/backdrop-brightness
5360
+ */
5361
+ "backdrop-brightness": [{
5362
+ "backdrop-brightness": [brightness]
5363
+ }],
5364
+ /**
5365
+ * Backdrop Contrast
5366
+ * @see https://tailwindcss.com/docs/backdrop-contrast
5367
+ */
5368
+ "backdrop-contrast": [{
5369
+ "backdrop-contrast": [contrast]
5370
+ }],
5371
+ /**
5372
+ * Backdrop Grayscale
5373
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
5374
+ */
5375
+ "backdrop-grayscale": [{
5376
+ "backdrop-grayscale": [grayscale]
5377
+ }],
5378
+ /**
5379
+ * Backdrop Hue Rotate
5380
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
5381
+ */
5382
+ "backdrop-hue-rotate": [{
5383
+ "backdrop-hue-rotate": [hueRotate]
5384
+ }],
5385
+ /**
5386
+ * Backdrop Invert
5387
+ * @see https://tailwindcss.com/docs/backdrop-invert
5388
+ */
5389
+ "backdrop-invert": [{
5390
+ "backdrop-invert": [invert]
5391
+ }],
5392
+ /**
5393
+ * Backdrop Opacity
5394
+ * @see https://tailwindcss.com/docs/backdrop-opacity
5395
+ */
5396
+ "backdrop-opacity": [{
5397
+ "backdrop-opacity": [opacity]
5398
+ }],
5399
+ /**
5400
+ * Backdrop Saturate
5401
+ * @see https://tailwindcss.com/docs/backdrop-saturate
5402
+ */
5403
+ "backdrop-saturate": [{
5404
+ "backdrop-saturate": [saturate]
5405
+ }],
5406
+ /**
5407
+ * Backdrop Sepia
5408
+ * @see https://tailwindcss.com/docs/backdrop-sepia
5409
+ */
5410
+ "backdrop-sepia": [{
5411
+ "backdrop-sepia": [sepia]
5412
+ }],
5413
+ // Tables
5414
+ /**
5415
+ * Border Collapse
5416
+ * @see https://tailwindcss.com/docs/border-collapse
5417
+ */
5418
+ "border-collapse": [{
5419
+ border: ["collapse", "separate"]
5420
+ }],
5421
+ /**
5422
+ * Border Spacing
5423
+ * @see https://tailwindcss.com/docs/border-spacing
5424
+ */
5425
+ "border-spacing": [{
5426
+ "border-spacing": [borderSpacing]
5427
+ }],
5428
+ /**
5429
+ * Border Spacing X
5430
+ * @see https://tailwindcss.com/docs/border-spacing
5431
+ */
5432
+ "border-spacing-x": [{
5433
+ "border-spacing-x": [borderSpacing]
5434
+ }],
5435
+ /**
5436
+ * Border Spacing Y
5437
+ * @see https://tailwindcss.com/docs/border-spacing
5438
+ */
5439
+ "border-spacing-y": [{
5440
+ "border-spacing-y": [borderSpacing]
5441
+ }],
5442
+ /**
5443
+ * Table Layout
5444
+ * @see https://tailwindcss.com/docs/table-layout
5445
+ */
5446
+ "table-layout": [{
5447
+ table: ["auto", "fixed"]
5448
+ }],
5449
+ /**
5450
+ * Caption Side
5451
+ * @see https://tailwindcss.com/docs/caption-side
5452
+ */
5453
+ caption: [{
5454
+ caption: ["top", "bottom"]
5455
+ }],
5456
+ // Transitions and Animation
5457
+ /**
5458
+ * Tranisition Property
5459
+ * @see https://tailwindcss.com/docs/transition-property
5460
+ */
5461
+ transition: [{
5462
+ transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", isArbitraryValue]
5463
+ }],
5464
+ /**
5465
+ * Transition Duration
5466
+ * @see https://tailwindcss.com/docs/transition-duration
5467
+ */
5468
+ duration: [{
5469
+ duration: getNumberAndArbitrary()
5470
+ }],
5471
+ /**
5472
+ * Transition Timing Function
5473
+ * @see https://tailwindcss.com/docs/transition-timing-function
5474
+ */
5475
+ ease: [{
5476
+ ease: ["linear", "in", "out", "in-out", isArbitraryValue]
5477
+ }],
5478
+ /**
5479
+ * Transition Delay
5480
+ * @see https://tailwindcss.com/docs/transition-delay
5481
+ */
5482
+ delay: [{
5483
+ delay: getNumberAndArbitrary()
5484
+ }],
5485
+ /**
5486
+ * Animation
5487
+ * @see https://tailwindcss.com/docs/animation
5488
+ */
5489
+ animate: [{
5490
+ animate: ["none", "spin", "ping", "pulse", "bounce", isArbitraryValue]
5491
+ }],
5492
+ // Transforms
5493
+ /**
5494
+ * Transform
5495
+ * @see https://tailwindcss.com/docs/transform
5496
+ */
5497
+ transform: [{
5498
+ transform: ["", "gpu", "none"]
5499
+ }],
5500
+ /**
5501
+ * Scale
5502
+ * @see https://tailwindcss.com/docs/scale
5503
+ */
5504
+ scale: [{
5505
+ scale: [scale]
5506
+ }],
5507
+ /**
5508
+ * Scale X
5509
+ * @see https://tailwindcss.com/docs/scale
5510
+ */
5511
+ "scale-x": [{
5512
+ "scale-x": [scale]
5513
+ }],
5514
+ /**
5515
+ * Scale Y
5516
+ * @see https://tailwindcss.com/docs/scale
5517
+ */
5518
+ "scale-y": [{
5519
+ "scale-y": [scale]
5520
+ }],
5521
+ /**
5522
+ * Rotate
5523
+ * @see https://tailwindcss.com/docs/rotate
5524
+ */
5525
+ rotate: [{
5526
+ rotate: [isInteger, isArbitraryValue]
5527
+ }],
5528
+ /**
5529
+ * Translate X
5530
+ * @see https://tailwindcss.com/docs/translate
5531
+ */
5532
+ "translate-x": [{
5533
+ "translate-x": [translate]
5534
+ }],
5535
+ /**
5536
+ * Translate Y
5537
+ * @see https://tailwindcss.com/docs/translate
5538
+ */
5539
+ "translate-y": [{
5540
+ "translate-y": [translate]
5541
+ }],
5542
+ /**
5543
+ * Skew X
5544
+ * @see https://tailwindcss.com/docs/skew
5545
+ */
5546
+ "skew-x": [{
5547
+ "skew-x": [skew]
5548
+ }],
5549
+ /**
5550
+ * Skew Y
5551
+ * @see https://tailwindcss.com/docs/skew
5552
+ */
5553
+ "skew-y": [{
5554
+ "skew-y": [skew]
5555
+ }],
5556
+ /**
5557
+ * Transform Origin
5558
+ * @see https://tailwindcss.com/docs/transform-origin
5559
+ */
5560
+ "transform-origin": [{
5561
+ origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", isArbitraryValue]
5562
+ }],
5563
+ // Interactivity
5564
+ /**
5565
+ * Accent Color
5566
+ * @see https://tailwindcss.com/docs/accent-color
5567
+ */
5568
+ accent: [{
5569
+ accent: ["auto", colors]
5570
+ }],
5571
+ /**
5572
+ * Appearance
5573
+ * @see https://tailwindcss.com/docs/appearance
5574
+ */
5575
+ appearance: [{
5576
+ appearance: ["none", "auto"]
5577
+ }],
5578
+ /**
5579
+ * Cursor
5580
+ * @see https://tailwindcss.com/docs/cursor
5581
+ */
5582
+ cursor: [{
5583
+ 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]
5584
+ }],
5585
+ /**
5586
+ * Caret Color
5587
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
5588
+ */
5589
+ "caret-color": [{
5590
+ caret: [colors]
5591
+ }],
5592
+ /**
5593
+ * Pointer Events
5594
+ * @see https://tailwindcss.com/docs/pointer-events
5595
+ */
5596
+ "pointer-events": [{
5597
+ "pointer-events": ["none", "auto"]
5598
+ }],
5599
+ /**
5600
+ * Resize
5601
+ * @see https://tailwindcss.com/docs/resize
5602
+ */
5603
+ resize: [{
5604
+ resize: ["none", "y", "x", ""]
5605
+ }],
5606
+ /**
5607
+ * Scroll Behavior
5608
+ * @see https://tailwindcss.com/docs/scroll-behavior
5609
+ */
5610
+ "scroll-behavior": [{
5611
+ scroll: ["auto", "smooth"]
5612
+ }],
5613
+ /**
5614
+ * Scroll Margin
5615
+ * @see https://tailwindcss.com/docs/scroll-margin
5616
+ */
5617
+ "scroll-m": [{
5618
+ "scroll-m": getSpacingWithArbitrary()
5619
+ }],
5620
+ /**
5621
+ * Scroll Margin X
5622
+ * @see https://tailwindcss.com/docs/scroll-margin
5623
+ */
5624
+ "scroll-mx": [{
5625
+ "scroll-mx": getSpacingWithArbitrary()
5626
+ }],
5627
+ /**
5628
+ * Scroll Margin Y
5629
+ * @see https://tailwindcss.com/docs/scroll-margin
5630
+ */
5631
+ "scroll-my": [{
5632
+ "scroll-my": getSpacingWithArbitrary()
5633
+ }],
5634
+ /**
5635
+ * Scroll Margin Start
5636
+ * @see https://tailwindcss.com/docs/scroll-margin
5637
+ */
5638
+ "scroll-ms": [{
5639
+ "scroll-ms": getSpacingWithArbitrary()
5640
+ }],
5641
+ /**
5642
+ * Scroll Margin End
5643
+ * @see https://tailwindcss.com/docs/scroll-margin
5644
+ */
5645
+ "scroll-me": [{
5646
+ "scroll-me": getSpacingWithArbitrary()
5647
+ }],
5648
+ /**
5649
+ * Scroll Margin Top
5650
+ * @see https://tailwindcss.com/docs/scroll-margin
5651
+ */
5652
+ "scroll-mt": [{
5653
+ "scroll-mt": getSpacingWithArbitrary()
5654
+ }],
5655
+ /**
5656
+ * Scroll Margin Right
5657
+ * @see https://tailwindcss.com/docs/scroll-margin
5658
+ */
5659
+ "scroll-mr": [{
5660
+ "scroll-mr": getSpacingWithArbitrary()
5661
+ }],
5662
+ /**
5663
+ * Scroll Margin Bottom
5664
+ * @see https://tailwindcss.com/docs/scroll-margin
5665
+ */
5666
+ "scroll-mb": [{
5667
+ "scroll-mb": getSpacingWithArbitrary()
5668
+ }],
5669
+ /**
5670
+ * Scroll Margin Left
5671
+ * @see https://tailwindcss.com/docs/scroll-margin
5672
+ */
5673
+ "scroll-ml": [{
5674
+ "scroll-ml": getSpacingWithArbitrary()
5675
+ }],
5676
+ /**
5677
+ * Scroll Padding
5678
+ * @see https://tailwindcss.com/docs/scroll-padding
5679
+ */
5680
+ "scroll-p": [{
5681
+ "scroll-p": getSpacingWithArbitrary()
5682
+ }],
5683
+ /**
5684
+ * Scroll Padding X
5685
+ * @see https://tailwindcss.com/docs/scroll-padding
5686
+ */
5687
+ "scroll-px": [{
5688
+ "scroll-px": getSpacingWithArbitrary()
5689
+ }],
5690
+ /**
5691
+ * Scroll Padding Y
5692
+ * @see https://tailwindcss.com/docs/scroll-padding
5693
+ */
5694
+ "scroll-py": [{
5695
+ "scroll-py": getSpacingWithArbitrary()
5696
+ }],
5697
+ /**
5698
+ * Scroll Padding Start
5699
+ * @see https://tailwindcss.com/docs/scroll-padding
5700
+ */
5701
+ "scroll-ps": [{
5702
+ "scroll-ps": getSpacingWithArbitrary()
5703
+ }],
5704
+ /**
5705
+ * Scroll Padding End
5706
+ * @see https://tailwindcss.com/docs/scroll-padding
5707
+ */
5708
+ "scroll-pe": [{
5709
+ "scroll-pe": getSpacingWithArbitrary()
5710
+ }],
5711
+ /**
5712
+ * Scroll Padding Top
5713
+ * @see https://tailwindcss.com/docs/scroll-padding
5714
+ */
5715
+ "scroll-pt": [{
5716
+ "scroll-pt": getSpacingWithArbitrary()
5717
+ }],
5718
+ /**
5719
+ * Scroll Padding Right
5720
+ * @see https://tailwindcss.com/docs/scroll-padding
5721
+ */
5722
+ "scroll-pr": [{
5723
+ "scroll-pr": getSpacingWithArbitrary()
5724
+ }],
5725
+ /**
5726
+ * Scroll Padding Bottom
5727
+ * @see https://tailwindcss.com/docs/scroll-padding
5728
+ */
5729
+ "scroll-pb": [{
5730
+ "scroll-pb": getSpacingWithArbitrary()
5731
+ }],
5732
+ /**
5733
+ * Scroll Padding Left
5734
+ * @see https://tailwindcss.com/docs/scroll-padding
5735
+ */
5736
+ "scroll-pl": [{
5737
+ "scroll-pl": getSpacingWithArbitrary()
5738
+ }],
5739
+ /**
5740
+ * Scroll Snap Align
5741
+ * @see https://tailwindcss.com/docs/scroll-snap-align
5742
+ */
5743
+ "snap-align": [{
5744
+ snap: ["start", "end", "center", "align-none"]
5745
+ }],
5746
+ /**
5747
+ * Scroll Snap Stop
5748
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
5749
+ */
5750
+ "snap-stop": [{
5751
+ snap: ["normal", "always"]
5752
+ }],
5753
+ /**
5754
+ * Scroll Snap Type
5755
+ * @see https://tailwindcss.com/docs/scroll-snap-type
5756
+ */
5757
+ "snap-type": [{
5758
+ snap: ["none", "x", "y", "both"]
5759
+ }],
5760
+ /**
5761
+ * Scroll Snap Type Strictness
5762
+ * @see https://tailwindcss.com/docs/scroll-snap-type
5763
+ */
5764
+ "snap-strictness": [{
5765
+ snap: ["mandatory", "proximity"]
5766
+ }],
5767
+ /**
5768
+ * Touch Action
5769
+ * @see https://tailwindcss.com/docs/touch-action
5770
+ */
5771
+ touch: [{
5772
+ touch: ["auto", "none", "manipulation"]
5773
+ }],
5774
+ /**
5775
+ * Touch Action X
5776
+ * @see https://tailwindcss.com/docs/touch-action
5777
+ */
5778
+ "touch-x": [{
5779
+ "touch-pan": ["x", "left", "right"]
5780
+ }],
5781
+ /**
5782
+ * Touch Action Y
5783
+ * @see https://tailwindcss.com/docs/touch-action
5784
+ */
5785
+ "touch-y": [{
5786
+ "touch-pan": ["y", "up", "down"]
5787
+ }],
5788
+ /**
5789
+ * Touch Action Pinch Zoom
5790
+ * @see https://tailwindcss.com/docs/touch-action
5791
+ */
5792
+ "touch-pz": ["touch-pinch-zoom"],
5793
+ /**
5794
+ * User Select
5795
+ * @see https://tailwindcss.com/docs/user-select
5796
+ */
5797
+ select: [{
5798
+ select: ["none", "text", "all", "auto"]
5799
+ }],
5800
+ /**
5801
+ * Will Change
5802
+ * @see https://tailwindcss.com/docs/will-change
5803
+ */
5804
+ "will-change": [{
5805
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryValue]
5806
+ }],
5807
+ // SVG
5808
+ /**
5809
+ * Fill
5810
+ * @see https://tailwindcss.com/docs/fill
5811
+ */
5812
+ fill: [{
5813
+ fill: [colors, "none"]
5814
+ }],
5815
+ /**
5816
+ * Stroke Width
5817
+ * @see https://tailwindcss.com/docs/stroke-width
5818
+ */
5819
+ "stroke-w": [{
5820
+ stroke: [isLength, isArbitraryLength, isArbitraryNumber]
5821
+ }],
5822
+ /**
5823
+ * Stroke
5824
+ * @see https://tailwindcss.com/docs/stroke
5825
+ */
5826
+ stroke: [{
5827
+ stroke: [colors, "none"]
5828
+ }],
5829
+ // Accessibility
5830
+ /**
5831
+ * Screen Readers
5832
+ * @see https://tailwindcss.com/docs/screen-readers
5833
+ */
5834
+ sr: ["sr-only", "not-sr-only"],
5835
+ /**
5836
+ * Forced Color Adjust
5837
+ * @see https://tailwindcss.com/docs/forced-color-adjust
5838
+ */
5839
+ "forced-color-adjust": [{
5840
+ "forced-color-adjust": ["auto", "none"]
5841
+ }]
5842
+ },
5843
+ conflictingClassGroups: {
5844
+ overflow: ["overflow-x", "overflow-y"],
5845
+ overscroll: ["overscroll-x", "overscroll-y"],
5846
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
5847
+ "inset-x": ["right", "left"],
5848
+ "inset-y": ["top", "bottom"],
5849
+ flex: ["basis", "grow", "shrink"],
5850
+ gap: ["gap-x", "gap-y"],
5851
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
5852
+ px: ["pr", "pl"],
5853
+ py: ["pt", "pb"],
5854
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
5855
+ mx: ["mr", "ml"],
5856
+ my: ["mt", "mb"],
5857
+ size: ["w", "h"],
5858
+ "font-size": ["leading"],
5859
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
5860
+ "fvn-ordinal": ["fvn-normal"],
5861
+ "fvn-slashed-zero": ["fvn-normal"],
5862
+ "fvn-figure": ["fvn-normal"],
5863
+ "fvn-spacing": ["fvn-normal"],
5864
+ "fvn-fraction": ["fvn-normal"],
5865
+ "line-clamp": ["display", "overflow"],
5866
+ 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"],
5867
+ "rounded-s": ["rounded-ss", "rounded-es"],
5868
+ "rounded-e": ["rounded-se", "rounded-ee"],
5869
+ "rounded-t": ["rounded-tl", "rounded-tr"],
5870
+ "rounded-r": ["rounded-tr", "rounded-br"],
5871
+ "rounded-b": ["rounded-br", "rounded-bl"],
5872
+ "rounded-l": ["rounded-tl", "rounded-bl"],
5873
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
5874
+ "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
5875
+ "border-w-x": ["border-w-r", "border-w-l"],
5876
+ "border-w-y": ["border-w-t", "border-w-b"],
5877
+ "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
5878
+ "border-color-x": ["border-color-r", "border-color-l"],
5879
+ "border-color-y": ["border-color-t", "border-color-b"],
5880
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
5881
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
5882
+ "scroll-my": ["scroll-mt", "scroll-mb"],
5883
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
5884
+ "scroll-px": ["scroll-pr", "scroll-pl"],
5885
+ "scroll-py": ["scroll-pt", "scroll-pb"],
5886
+ touch: ["touch-x", "touch-y", "touch-pz"],
5887
+ "touch-x": ["touch"],
5888
+ "touch-y": ["touch"],
5889
+ "touch-pz": ["touch"]
5890
+ },
5891
+ conflictingClassGroupModifiers: {
5892
+ "font-size": ["leading"]
5893
+ }
5894
+ };
5895
+ };
5896
+ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
5897
+
5898
+ // src/utils/utils.ts
3440
5899
  function cn(...inputs) {
3441
5900
  return twMerge(clsx(inputs));
3442
5901
  }