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