{"version":3,"sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/class-group-utils.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/lru-cache.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/parse-class-name.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/sort-modifiers.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/config-utils.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/merge-classlist.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/tw-join.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/from-theme.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/validators.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/default-config.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/merge-configs.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts","../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/src/lib/tw-merge.ts","../src/lib/utils/index.ts"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import {\n    AnyClassGroupIds,\n    AnyConfig,\n    AnyThemeGroupIds,\n    ClassGroup,\n    ClassValidator,\n    Config,\n    ThemeGetter,\n    ThemeObject,\n} from './types'\n\nexport interface ClassPartObject {\n    nextPart: Map<string, ClassPartObject>\n    validators: ClassValidatorObject[]\n    classGroupId?: AnyClassGroupIds\n}\n\ninterface ClassValidatorObject {\n    classGroupId: AnyClassGroupIds\n    validator: ClassValidator\n}\n\nconst CLASS_PART_SEPARATOR = '-'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n    const classMap = createClassMap(config)\n    const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n    const getClassGroupId = (className: string) => {\n        const classParts = className.split(CLASS_PART_SEPARATOR)\n\n        // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n        if (classParts[0] === '' && classParts.length !== 1) {\n            classParts.shift()\n        }\n\n        return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className)\n    }\n\n    const getConflictingClassGroupIds = (\n        classGroupId: AnyClassGroupIds,\n        hasPostfixModifier: boolean,\n    ) => {\n        const conflicts = conflictingClassGroups[classGroupId] || []\n\n        if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n            return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]!]\n        }\n\n        return conflicts\n    }\n\n    return {\n        getClassGroupId,\n        getConflictingClassGroupIds,\n    }\n}\n\nconst getGroupRecursive = (\n    classParts: string[],\n    classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n    if (classParts.length === 0) {\n        return classPartObject.classGroupId\n    }\n\n    const currentClassPart = classParts[0]!\n    const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n    const classGroupFromNextClassPart = nextClassPartObject\n        ? getGroupRecursive(classParts.slice(1), nextClassPartObject)\n        : undefined\n\n    if (classGroupFromNextClassPart) {\n        return classGroupFromNextClassPart\n    }\n\n    if (classPartObject.validators.length === 0) {\n        return undefined\n    }\n\n    const classRest = classParts.join(CLASS_PART_SEPARATOR)\n\n    return classPartObject.validators.find(({ validator }) => validator(classRest))?.classGroupId\n}\n\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/\n\nconst getGroupIdForArbitraryProperty = (className: string) => {\n    if (arbitraryPropertyRegex.test(className)) {\n        const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)![1]\n        const property = arbitraryPropertyClassName?.substring(\n            0,\n            arbitraryPropertyClassName.indexOf(':'),\n        )\n\n        if (property) {\n            // I use two dots here because one dot is used as prefix for class groups in plugins\n            return 'arbitrary..' + property\n        }\n    }\n}\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config<AnyClassGroupIds, AnyThemeGroupIds>) => {\n    const { theme, classGroups } = config\n    const classMap: ClassPartObject = {\n        nextPart: new Map<string, ClassPartObject>(),\n        validators: [],\n    }\n\n    for (const classGroupId in classGroups) {\n        processClassesRecursively(classGroups[classGroupId]!, classMap, classGroupId, theme)\n    }\n\n    return classMap\n}\n\nconst processClassesRecursively = (\n    classGroup: ClassGroup<AnyThemeGroupIds>,\n    classPartObject: ClassPartObject,\n    classGroupId: AnyClassGroupIds,\n    theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n    classGroup.forEach((classDefinition) => {\n        if (typeof classDefinition === 'string') {\n            const classPartObjectToEdit =\n                classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n            classPartObjectToEdit.classGroupId = classGroupId\n            return\n        }\n\n        if (typeof classDefinition === 'function') {\n            if (isThemeGetter(classDefinition)) {\n                processClassesRecursively(\n                    classDefinition(theme),\n                    classPartObject,\n                    classGroupId,\n                    theme,\n                )\n                return\n            }\n\n            classPartObject.validators.push({\n                validator: classDefinition,\n                classGroupId,\n            })\n\n            return\n        }\n\n        Object.entries(classDefinition).forEach(([key, classGroup]) => {\n            processClassesRecursively(\n                classGroup,\n                getPart(classPartObject, key),\n                classGroupId,\n                theme,\n            )\n        })\n    })\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string) => {\n    let currentClassPartObject = classPartObject\n\n    path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {\n        if (!currentClassPartObject.nextPart.has(pathPart)) {\n            currentClassPartObject.nextPart.set(pathPart, {\n                nextPart: new Map(),\n                validators: [],\n            })\n        }\n\n        currentClassPartObject = currentClassPartObject.nextPart.get(pathPart)!\n    })\n\n    return currentClassPartObject\n}\n\nconst isThemeGetter = (func: ClassValidator | ThemeGetter): func is ThemeGetter =>\n    (func as ThemeGetter).isThemeGetter\n","// Export is needed because TypeScript complains about an error otherwise:\n// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module \"…/tailwind-merge/src/lru-cache\" but cannot be named.\nexport interface LruCache<Key, Value> {\n    get(key: Key): Value | undefined\n    set(key: Key, value: Value): void\n}\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nexport const createLruCache = <Key, Value>(maxCacheSize: number): LruCache<Key, Value> => {\n    if (maxCacheSize < 1) {\n        return {\n            get: () => undefined,\n            set: () => {},\n        }\n    }\n\n    let cacheSize = 0\n    let cache = new Map<Key, Value>()\n    let previousCache = new Map<Key, Value>()\n\n    const update = (key: Key, value: Value) => {\n        cache.set(key, value)\n        cacheSize++\n\n        if (cacheSize > maxCacheSize) {\n            cacheSize = 0\n            previousCache = cache\n            cache = new Map()\n        }\n    }\n\n    return {\n        get(key) {\n            let value = cache.get(key)\n\n            if (value !== undefined) {\n                return value\n            }\n            if ((value = previousCache.get(key)) !== undefined) {\n                update(key, value)\n                return value\n            }\n        },\n        set(key, value) {\n            if (cache.has(key)) {\n                cache.set(key, value)\n            } else {\n                update(key, value)\n            }\n        },\n    }\n}\n","import { AnyConfig, ParsedClassName } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\nconst MODIFIER_SEPARATOR = ':'\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length\n\nexport const createParseClassName = (config: AnyConfig) => {\n    const { prefix, experimentalParseClassName } = config\n\n    /**\n     * Parse class name into parts.\n     *\n     * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n     * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n     */\n    let parseClassName = (className: string): ParsedClassName => {\n        const modifiers = []\n\n        let bracketDepth = 0\n        let parenDepth = 0\n        let modifierStart = 0\n        let postfixModifierPosition: number | undefined\n\n        for (let index = 0; index < className.length; index++) {\n            let currentCharacter = className[index]\n\n            if (bracketDepth === 0 && parenDepth === 0) {\n                if (currentCharacter === MODIFIER_SEPARATOR) {\n                    modifiers.push(className.slice(modifierStart, index))\n                    modifierStart = index + MODIFIER_SEPARATOR_LENGTH\n                    continue\n                }\n\n                if (currentCharacter === '/') {\n                    postfixModifierPosition = index\n                    continue\n                }\n            }\n\n            if (currentCharacter === '[') {\n                bracketDepth++\n            } else if (currentCharacter === ']') {\n                bracketDepth--\n            } else if (currentCharacter === '(') {\n                parenDepth++\n            } else if (currentCharacter === ')') {\n                parenDepth--\n            }\n        }\n\n        const baseClassNameWithImportantModifier =\n            modifiers.length === 0 ? className : className.substring(modifierStart)\n        const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier)\n        const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier\n        const maybePostfixModifierPosition =\n            postfixModifierPosition && postfixModifierPosition > modifierStart\n                ? postfixModifierPosition - modifierStart\n                : undefined\n\n        return {\n            modifiers,\n            hasImportantModifier,\n            baseClassName,\n            maybePostfixModifierPosition,\n        }\n    }\n\n    if (prefix) {\n        const fullPrefix = prefix + MODIFIER_SEPARATOR\n        const parseClassNameOriginal = parseClassName\n        parseClassName = (className) =>\n            className.startsWith(fullPrefix)\n                ? parseClassNameOriginal(className.substring(fullPrefix.length))\n                : {\n                      isExternal: true,\n                      modifiers: [],\n                      hasImportantModifier: false,\n                      baseClassName: className,\n                      maybePostfixModifierPosition: undefined,\n                  }\n    }\n\n    if (experimentalParseClassName) {\n        const parseClassNameOriginal = parseClassName\n        parseClassName = (className) =>\n            experimentalParseClassName({ className, parseClassName: parseClassNameOriginal })\n    }\n\n    return parseClassName\n}\n\nconst stripImportantModifier = (baseClassName: string) => {\n    if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n        return baseClassName.substring(0, baseClassName.length - 1)\n    }\n\n    /**\n     * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n     * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n     */\n    if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n        return baseClassName.substring(1)\n    }\n\n    return baseClassName\n}\n","import { AnyConfig } from './types'\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nexport const createSortModifiers = (config: AnyConfig) => {\n    const orderSensitiveModifiers = Object.fromEntries(\n        config.orderSensitiveModifiers.map((modifier) => [modifier, true]),\n    )\n\n    const sortModifiers = (modifiers: string[]) => {\n        if (modifiers.length <= 1) {\n            return modifiers\n        }\n\n        const sortedModifiers: string[] = []\n        let unsortedModifiers: string[] = []\n\n        modifiers.forEach((modifier) => {\n            const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier]\n\n            if (isPositionSensitive) {\n                sortedModifiers.push(...unsortedModifiers.sort(), modifier)\n                unsortedModifiers = []\n            } else {\n                unsortedModifiers.push(modifier)\n            }\n        })\n\n        sortedModifiers.push(...unsortedModifiers.sort())\n\n        return sortedModifiers\n    }\n\n    return sortModifiers\n}\n","import { createClassGroupUtils } from './class-group-utils'\nimport { createLruCache } from './lru-cache'\nimport { createParseClassName } from './parse-class-name'\nimport { createSortModifiers } from './sort-modifiers'\nimport { AnyConfig } from './types'\n\nexport type ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createConfigUtils = (config: AnyConfig) => ({\n    cache: createLruCache<string, string>(config.cacheSize),\n    parseClassName: createParseClassName(config),\n    sortModifiers: createSortModifiers(config),\n    ...createClassGroupUtils(config),\n})\n","import { ConfigUtils } from './config-utils'\nimport { IMPORTANT_MODIFIER } from './parse-class-name'\n\nconst SPLIT_CLASSES_REGEX = /\\s+/\n\nexport const mergeClassList = (classList: string, configUtils: ConfigUtils) => {\n    const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } =\n        configUtils\n\n    /**\n     * Set of classGroupIds in following format:\n     * `{importantModifier}{variantModifiers}{classGroupId}`\n     * @example 'float'\n     * @example 'hover:focus:bg-color'\n     * @example 'md:!pr'\n     */\n    const classGroupsInConflict: string[] = []\n    const classNames = classList.trim().split(SPLIT_CLASSES_REGEX)\n\n    let result = ''\n\n    for (let index = classNames.length - 1; index >= 0; index -= 1) {\n        const originalClassName = classNames[index]!\n\n        const {\n            isExternal,\n            modifiers,\n            hasImportantModifier,\n            baseClassName,\n            maybePostfixModifierPosition,\n        } = parseClassName(originalClassName)\n\n        if (isExternal) {\n            result = originalClassName + (result.length > 0 ? ' ' + result : result)\n            continue\n        }\n\n        let hasPostfixModifier = !!maybePostfixModifierPosition\n        let classGroupId = getClassGroupId(\n            hasPostfixModifier\n                ? baseClassName.substring(0, maybePostfixModifierPosition)\n                : baseClassName,\n        )\n\n        if (!classGroupId) {\n            if (!hasPostfixModifier) {\n                // Not a Tailwind class\n                result = originalClassName + (result.length > 0 ? ' ' + result : result)\n                continue\n            }\n\n            classGroupId = getClassGroupId(baseClassName)\n\n            if (!classGroupId) {\n                // Not a Tailwind class\n                result = originalClassName + (result.length > 0 ? ' ' + result : result)\n                continue\n            }\n\n            hasPostfixModifier = false\n        }\n\n        const variantModifier = sortModifiers(modifiers).join(':')\n\n        const modifierId = hasImportantModifier\n            ? variantModifier + IMPORTANT_MODIFIER\n            : variantModifier\n\n        const classId = modifierId + classGroupId\n\n        if (classGroupsInConflict.includes(classId)) {\n            // Tailwind class omitted due to conflict\n            continue\n        }\n\n        classGroupsInConflict.push(classId)\n\n        const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier)\n        for (let i = 0; i < conflictGroups.length; ++i) {\n            const group = conflictGroups[i]!\n            classGroupsInConflict.push(modifierId + group)\n        }\n\n        // Tailwind class not in conflict\n        result = originalClassName + (result.length > 0 ? ' ' + result : result)\n    }\n\n    return result\n}\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\n\nexport type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false\ntype ClassNameArray = ClassNameValue[]\n\nexport function twJoin(...classLists: ClassNameValue[]): string\nexport function twJoin() {\n    let index = 0\n    let argument: ClassNameValue\n    let resolvedValue: string\n    let string = ''\n\n    while (index < arguments.length) {\n        if ((argument = arguments[index++])) {\n            if ((resolvedValue = toValue(argument))) {\n                string && (string += ' ')\n                string += resolvedValue\n            }\n        }\n    }\n    return string\n}\n\nconst toValue = (mix: ClassNameArray | string) => {\n    if (typeof mix === 'string') {\n        return mix\n    }\n\n    let resolvedValue: string\n    let string = ''\n\n    for (let k = 0; k < mix.length; k++) {\n        if (mix[k]) {\n            if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) {\n                string && (string += ' ')\n                string += resolvedValue\n            }\n        }\n    }\n\n    return string\n}\n","import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { AnyConfig } from './types'\n\ntype CreateConfigFirst = () => AnyConfig\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport function createTailwindMerge(\n    createConfigFirst: CreateConfigFirst,\n    ...createConfigRest: CreateConfigSubsequent[]\n): TailwindMerge {\n    let configUtils: ConfigUtils\n    let cacheGet: ConfigUtils['cache']['get']\n    let cacheSet: ConfigUtils['cache']['set']\n    let functionToCall = initTailwindMerge\n\n    function initTailwindMerge(classList: string) {\n        const config = createConfigRest.reduce(\n            (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n            createConfigFirst() as AnyConfig,\n        )\n\n        configUtils = createConfigUtils(config)\n        cacheGet = configUtils.cache.get\n        cacheSet = configUtils.cache.set\n        functionToCall = tailwindMerge\n\n        return tailwindMerge(classList)\n    }\n\n    function tailwindMerge(classList: string) {\n        const cachedResult = cacheGet(classList)\n\n        if (cachedResult) {\n            return cachedResult\n        }\n\n        const result = mergeClassList(classList, configUtils)\n        cacheSet(classList, result)\n\n        return result\n    }\n\n    return function callTailwindMerge() {\n        return functionToCall(twJoin.apply(null, arguments as any))\n    }\n}\n","import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nexport const fromTheme = <\n    AdditionalThemeGroupIds extends string = never,\n    DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>): ThemeGetter => {\n    const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>\n        theme[key] || []\n\n    themeGetter.isThemeGetter = true as const\n\n    return themeGetter\n}\n","const arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i\nconst fractionRegex = /^\\d+\\/\\d+$/\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/\nconst lengthUnitRegex =\n    /\\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$/\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/\nconst imageRegex =\n    /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/\n\nexport const isFraction = (value: string) => fractionRegex.test(value)\n\nexport const isNumber = (value: string) => Boolean(value) && !Number.isNaN(Number(value))\n\nexport const isInteger = (value: string) => Boolean(value) && Number.isInteger(Number(value))\n\nexport const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1))\n\nexport const isTshirtSize = (value: string) => tshirtUnitRegex.test(value)\n\nexport const isAny = () => true\n\nconst isLengthOnly = (value: string) =>\n    // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n    // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n    // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n    lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)\n\nconst isNever = () => false\n\nconst isShadow = (value: string) => shadowRegex.test(value)\n\nconst isImage = (value: string) => imageRegex.test(value)\n\nexport const isAnyNonArbitrary = (value: string) =>\n    !isArbitraryValue(value) && !isArbitraryVariable(value)\n\nexport const isArbitrarySize = (value: string) => getIsArbitraryValue(value, isLabelSize, isNever)\n\nexport const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value)\n\nexport const isArbitraryLength = (value: string) =>\n    getIsArbitraryValue(value, isLabelLength, isLengthOnly)\n\nexport const isArbitraryNumber = (value: string) =>\n    getIsArbitraryValue(value, isLabelNumber, isNumber)\n\nexport const isArbitraryPosition = (value: string) =>\n    getIsArbitraryValue(value, isLabelPosition, isNever)\n\nexport const isArbitraryImage = (value: string) => getIsArbitraryValue(value, isLabelImage, isImage)\n\nexport const isArbitraryShadow = (value: string) => getIsArbitraryValue(value, isNever, isShadow)\n\nexport const isArbitraryVariable = (value: string) => arbitraryVariableRegex.test(value)\n\nexport const isArbitraryVariableLength = (value: string) =>\n    getIsArbitraryVariable(value, isLabelLength)\n\nexport const isArbitraryVariableFamilyName = (value: string) =>\n    getIsArbitraryVariable(value, isLabelFamilyName)\n\nexport const isArbitraryVariablePosition = (value: string) =>\n    getIsArbitraryVariable(value, isLabelPosition)\n\nexport const isArbitraryVariableSize = (value: string) => getIsArbitraryVariable(value, isLabelSize)\n\nexport const isArbitraryVariableImage = (value: string) =>\n    getIsArbitraryVariable(value, isLabelImage)\n\nexport const isArbitraryVariableShadow = (value: string) =>\n    getIsArbitraryVariable(value, isLabelShadow, true)\n\n// Helpers\n\nconst getIsArbitraryValue = (\n    value: string,\n    testLabel: (label: string) => boolean,\n    testValue: (value: string) => boolean,\n) => {\n    const result = arbitraryValueRegex.exec(value)\n\n    if (result) {\n        if (result[1]) {\n            return testLabel(result[1])\n        }\n\n        return testValue(result[2]!)\n    }\n\n    return false\n}\n\nconst getIsArbitraryVariable = (\n    value: string,\n    testLabel: (label: string) => boolean,\n    shouldMatchNoLabel = false,\n) => {\n    const result = arbitraryVariableRegex.exec(value)\n\n    if (result) {\n        if (result[1]) {\n            return testLabel(result[1])\n        }\n        return shouldMatchNoLabel\n    }\n\n    return false\n}\n\n// Labels\n\nconst isLabelPosition = (label: string) => label === 'position'\n\nconst imageLabels = new Set(['image', 'url'])\n\nconst isLabelImage = (label: string) => imageLabels.has(label)\n\nconst sizeLabels = new Set(['length', 'size', 'percentage'])\n\nconst isLabelSize = (label: string) => sizeLabels.has(label)\n\nconst isLabelLength = (label: string) => label === 'length'\n\nconst isLabelNumber = (label: string) => label === 'number'\n\nconst isLabelFamilyName = (label: string) => label === 'family-name'\n\nconst isLabelShadow = (label: string) => label === 'shadow'\n","import { fromTheme } from './from-theme'\nimport { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\nimport {\n    isAny,\n    isAnyNonArbitrary,\n    isArbitraryImage,\n    isArbitraryLength,\n    isArbitraryNumber,\n    isArbitraryPosition,\n    isArbitraryShadow,\n    isArbitrarySize,\n    isArbitraryValue,\n    isArbitraryVariable,\n    isArbitraryVariableFamilyName,\n    isArbitraryVariableImage,\n    isArbitraryVariableLength,\n    isArbitraryVariablePosition,\n    isArbitraryVariableShadow,\n    isArbitraryVariableSize,\n    isFraction,\n    isInteger,\n    isNumber,\n    isPercent,\n    isTshirtSize,\n} from './validators'\n\nexport const getDefaultConfig = () => {\n    /**\n     * Theme getters for theme variable namespaces\n     * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n     */\n    /***/\n\n    const themeColor = fromTheme('color')\n    const themeFont = fromTheme('font')\n    const themeText = fromTheme('text')\n    const themeFontWeight = fromTheme('font-weight')\n    const themeTracking = fromTheme('tracking')\n    const themeLeading = fromTheme('leading')\n    const themeBreakpoint = fromTheme('breakpoint')\n    const themeContainer = fromTheme('container')\n    const themeSpacing = fromTheme('spacing')\n    const themeRadius = fromTheme('radius')\n    const themeShadow = fromTheme('shadow')\n    const themeInsetShadow = fromTheme('inset-shadow')\n    const themeDropShadow = fromTheme('drop-shadow')\n    const themeBlur = fromTheme('blur')\n    const themePerspective = fromTheme('perspective')\n    const themeAspect = fromTheme('aspect')\n    const themeEase = fromTheme('ease')\n    const themeAnimate = fromTheme('animate')\n\n    /**\n     * Helpers to avoid repeating the same scales\n     *\n     * We use functions that create a new array every time they're called instead of static arrays.\n     * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n     */\n    /***/\n\n    const scaleBreak = () =>\n        ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const\n    const scalePosition = () =>\n        [\n            'bottom',\n            'center',\n            'left',\n            'left-bottom',\n            'left-top',\n            'right',\n            'right-bottom',\n            'right-top',\n            'top',\n        ] as const\n    const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n    const scaleOverscroll = () => ['auto', 'contain', 'none'] as const\n    const scaleInset = () =>\n        [\n            isFraction,\n            'px',\n            'full',\n            'auto',\n            isArbitraryVariable,\n            isArbitraryValue,\n            themeSpacing,\n        ] as const\n    const scaleGridTemplateColsRows = () =>\n        [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue] as const\n    const scaleGridColRowStartAndEnd = () =>\n        [\n            'auto',\n            { span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] },\n            isArbitraryVariable,\n            isArbitraryValue,\n        ] as const\n    const scaleGridColRowStartOrEnd = () =>\n        [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] as const\n    const scaleGridAutoColsRows = () =>\n        ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue] as const\n    const scaleGap = () => [isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n    const scaleAlignPrimaryAxis = () =>\n        ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline'] as const\n    const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch'] as const\n    const scaleUnambiguousSpacing = () =>\n        [isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n    const scalePadding = () => ['px', ...scaleUnambiguousSpacing()]\n    const scaleMargin = () => ['px', 'auto', ...scaleUnambiguousSpacing()] as const\n    const scaleSizing = () =>\n        [\n            isFraction,\n            'auto',\n            'px',\n            'full',\n            'dvw',\n            'dvh',\n            'lvw',\n            'lvh',\n            'svw',\n            'svh',\n            'min',\n            'max',\n            'fit',\n            isArbitraryVariable,\n            isArbitraryValue,\n            themeSpacing,\n        ] as const\n    const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue] as const\n    const scaleGradientStopPosition = () => [isPercent, isArbitraryLength] as const\n    const scaleRadius = () =>\n        [\n            // Deprecated since Tailwind CSS v4.0.0\n            '',\n            'none',\n            'full',\n            themeRadius,\n            isArbitraryVariable,\n            isArbitraryValue,\n        ] as const\n    const scaleBorderWidth = () =>\n        ['', isNumber, isArbitraryVariableLength, isArbitraryLength] as const\n    const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'] as const\n    const scaleBlendMode = () =>\n        [\n            'normal',\n            'multiply',\n            'screen',\n            'overlay',\n            'darken',\n            'lighten',\n            'color-dodge',\n            'color-burn',\n            'hard-light',\n            'soft-light',\n            'difference',\n            'exclusion',\n            'hue',\n            'saturation',\n            'color',\n            'luminosity',\n        ] as const\n    const scaleBlur = () =>\n        [\n            // Deprecated since Tailwind CSS v4.0.0\n            '',\n            'none',\n            themeBlur,\n            isArbitraryVariable,\n            isArbitraryValue,\n        ] as const\n    const scaleOrigin = () =>\n        [\n            'center',\n            'top',\n            'top-right',\n            'right',\n            'bottom-right',\n            'bottom',\n            'bottom-left',\n            'left',\n            'top-left',\n            isArbitraryVariable,\n            isArbitraryValue,\n        ] as const\n    const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n    const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n    const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue] as const\n    const scaleTranslate = () =>\n        [isFraction, 'full', 'px', isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n\n    return {\n        cacheSize: 500,\n        theme: {\n            animate: ['spin', 'ping', 'pulse', 'bounce'],\n            aspect: ['video'],\n            blur: [isTshirtSize],\n            breakpoint: [isTshirtSize],\n            color: [isAny],\n            container: [isTshirtSize],\n            'drop-shadow': [isTshirtSize],\n            ease: ['in', 'out', 'in-out'],\n            font: [isAnyNonArbitrary],\n            'font-weight': [\n                'thin',\n                'extralight',\n                'light',\n                'normal',\n                'medium',\n                'semibold',\n                'bold',\n                'extrabold',\n                'black',\n            ],\n            'inset-shadow': [isTshirtSize],\n            leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n            perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n            radius: [isTshirtSize],\n            shadow: [isTshirtSize],\n            spacing: [isNumber],\n            text: [isTshirtSize],\n            tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'],\n        },\n        classGroups: {\n            // --------------\n            // --- Layout ---\n            // --------------\n\n            /**\n             * Aspect Ratio\n             * @see https://tailwindcss.com/docs/aspect-ratio\n             */\n            aspect: [\n                {\n                    aspect: [\n                        'auto',\n                        'square',\n                        isFraction,\n                        isArbitraryValue,\n                        isArbitraryVariable,\n                        themeAspect,\n                    ],\n                },\n            ],\n            /**\n             * Container\n             * @see https://tailwindcss.com/docs/container\n             * @deprecated since Tailwind CSS v4.0.0\n             */\n            container: ['container'],\n            /**\n             * Columns\n             * @see https://tailwindcss.com/docs/columns\n             */\n            columns: [\n                { columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] },\n            ],\n            /**\n             * Break After\n             * @see https://tailwindcss.com/docs/break-after\n             */\n            'break-after': [{ 'break-after': scaleBreak() }],\n            /**\n             * Break Before\n             * @see https://tailwindcss.com/docs/break-before\n             */\n            'break-before': [{ 'break-before': scaleBreak() }],\n            /**\n             * Break Inside\n             * @see https://tailwindcss.com/docs/break-inside\n             */\n            'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }],\n            /**\n             * Box Decoration Break\n             * @see https://tailwindcss.com/docs/box-decoration-break\n             */\n            'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }],\n            /**\n             * Box Sizing\n             * @see https://tailwindcss.com/docs/box-sizing\n             */\n            box: [{ box: ['border', 'content'] }],\n            /**\n             * Display\n             * @see https://tailwindcss.com/docs/display\n             */\n            display: [\n                'block',\n                'inline-block',\n                'inline',\n                'flex',\n                'inline-flex',\n                'table',\n                'inline-table',\n                'table-caption',\n                'table-cell',\n                'table-column',\n                'table-column-group',\n                'table-footer-group',\n                'table-header-group',\n                'table-row-group',\n                'table-row',\n                'flow-root',\n                'grid',\n                'inline-grid',\n                'contents',\n                'list-item',\n                'hidden',\n            ],\n            /**\n             * Screen Reader Only\n             * @see https://tailwindcss.com/docs/display#screen-reader-only\n             */\n            sr: ['sr-only', 'not-sr-only'],\n            /**\n             * Floats\n             * @see https://tailwindcss.com/docs/float\n             */\n            float: [{ float: ['right', 'left', 'none', 'start', 'end'] }],\n            /**\n             * Clear\n             * @see https://tailwindcss.com/docs/clear\n             */\n            clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }],\n            /**\n             * Isolation\n             * @see https://tailwindcss.com/docs/isolation\n             */\n            isolation: ['isolate', 'isolation-auto'],\n            /**\n             * Object Fit\n             * @see https://tailwindcss.com/docs/object-fit\n             */\n            'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }],\n            /**\n             * Object Position\n             * @see https://tailwindcss.com/docs/object-position\n             */\n            'object-position': [\n                { object: [...scalePosition(), isArbitraryValue, isArbitraryVariable] },\n            ],\n            /**\n             * Overflow\n             * @see https://tailwindcss.com/docs/overflow\n             */\n            overflow: [{ overflow: scaleOverflow() }],\n            /**\n             * Overflow X\n             * @see https://tailwindcss.com/docs/overflow\n             */\n            'overflow-x': [{ 'overflow-x': scaleOverflow() }],\n            /**\n             * Overflow Y\n             * @see https://tailwindcss.com/docs/overflow\n             */\n            'overflow-y': [{ 'overflow-y': scaleOverflow() }],\n            /**\n             * Overscroll Behavior\n             * @see https://tailwindcss.com/docs/overscroll-behavior\n             */\n            overscroll: [{ overscroll: scaleOverscroll() }],\n            /**\n             * Overscroll Behavior X\n             * @see https://tailwindcss.com/docs/overscroll-behavior\n             */\n            'overscroll-x': [{ 'overscroll-x': scaleOverscroll() }],\n            /**\n             * Overscroll Behavior Y\n             * @see https://tailwindcss.com/docs/overscroll-behavior\n             */\n            'overscroll-y': [{ 'overscroll-y': scaleOverscroll() }],\n            /**\n             * Position\n             * @see https://tailwindcss.com/docs/position\n             */\n            position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n            /**\n             * Top / Right / Bottom / Left\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            inset: [{ inset: scaleInset() }],\n            /**\n             * Right / Left\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            'inset-x': [{ 'inset-x': scaleInset() }],\n            /**\n             * Top / Bottom\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            'inset-y': [{ 'inset-y': scaleInset() }],\n            /**\n             * Start\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            start: [{ start: scaleInset() }],\n            /**\n             * End\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            end: [{ end: scaleInset() }],\n            /**\n             * Top\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            top: [{ top: scaleInset() }],\n            /**\n             * Right\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            right: [{ right: scaleInset() }],\n            /**\n             * Bottom\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            bottom: [{ bottom: scaleInset() }],\n            /**\n             * Left\n             * @see https://tailwindcss.com/docs/top-right-bottom-left\n             */\n            left: [{ left: scaleInset() }],\n            /**\n             * Visibility\n             * @see https://tailwindcss.com/docs/visibility\n             */\n            visibility: ['visible', 'invisible', 'collapse'],\n            /**\n             * Z-Index\n             * @see https://tailwindcss.com/docs/z-index\n             */\n            z: [{ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] }],\n\n            // ------------------------\n            // --- Flexbox and Grid ---\n            // ------------------------\n\n            /**\n             * Flex Basis\n             * @see https://tailwindcss.com/docs/flex-basis\n             */\n            basis: [\n                {\n                    basis: [\n                        isFraction,\n                        'full',\n                        'auto',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                        themeContainer,\n                        themeSpacing,\n                    ],\n                },\n            ],\n            /**\n             * Flex Direction\n             * @see https://tailwindcss.com/docs/flex-direction\n             */\n            'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }],\n            /**\n             * Flex Wrap\n             * @see https://tailwindcss.com/docs/flex-wrap\n             */\n            'flex-wrap': [{ flex: ['nowrap', 'wrap', 'wrap-reverse'] }],\n            /**\n             * Flex\n             * @see https://tailwindcss.com/docs/flex\n             */\n            flex: [{ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] }],\n            /**\n             * Flex Grow\n             * @see https://tailwindcss.com/docs/flex-grow\n             */\n            grow: [{ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Flex Shrink\n             * @see https://tailwindcss.com/docs/flex-shrink\n             */\n            shrink: [{ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Order\n             * @see https://tailwindcss.com/docs/order\n             */\n            order: [\n                {\n                    order: [\n                        isInteger,\n                        'first',\n                        'last',\n                        'none',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n            /**\n             * Grid Template Columns\n             * @see https://tailwindcss.com/docs/grid-template-columns\n             */\n            'grid-cols': [{ 'grid-cols': scaleGridTemplateColsRows() }],\n            /**\n             * Grid Column Start / End\n             * @see https://tailwindcss.com/docs/grid-column\n             */\n            'col-start-end': [{ col: scaleGridColRowStartAndEnd() }],\n            /**\n             * Grid Column Start\n             * @see https://tailwindcss.com/docs/grid-column\n             */\n            'col-start': [{ 'col-start': scaleGridColRowStartOrEnd() }],\n            /**\n             * Grid Column End\n             * @see https://tailwindcss.com/docs/grid-column\n             */\n            'col-end': [{ 'col-end': scaleGridColRowStartOrEnd() }],\n            /**\n             * Grid Template Rows\n             * @see https://tailwindcss.com/docs/grid-template-rows\n             */\n            'grid-rows': [{ 'grid-rows': scaleGridTemplateColsRows() }],\n            /**\n             * Grid Row Start / End\n             * @see https://tailwindcss.com/docs/grid-row\n             */\n            'row-start-end': [{ row: scaleGridColRowStartAndEnd() }],\n            /**\n             * Grid Row Start\n             * @see https://tailwindcss.com/docs/grid-row\n             */\n            'row-start': [{ 'row-start': scaleGridColRowStartOrEnd() }],\n            /**\n             * Grid Row End\n             * @see https://tailwindcss.com/docs/grid-row\n             */\n            'row-end': [{ 'row-end': scaleGridColRowStartOrEnd() }],\n            /**\n             * Grid Auto Flow\n             * @see https://tailwindcss.com/docs/grid-auto-flow\n             */\n            'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }],\n            /**\n             * Grid Auto Columns\n             * @see https://tailwindcss.com/docs/grid-auto-columns\n             */\n            'auto-cols': [{ 'auto-cols': scaleGridAutoColsRows() }],\n            /**\n             * Grid Auto Rows\n             * @see https://tailwindcss.com/docs/grid-auto-rows\n             */\n            'auto-rows': [{ 'auto-rows': scaleGridAutoColsRows() }],\n            /**\n             * Gap\n             * @see https://tailwindcss.com/docs/gap\n             */\n            gap: [{ gap: scaleGap() }],\n            /**\n             * Gap X\n             * @see https://tailwindcss.com/docs/gap\n             */\n            'gap-x': [{ 'gap-x': scaleGap() }],\n            /**\n             * Gap Y\n             * @see https://tailwindcss.com/docs/gap\n             */\n            'gap-y': [{ 'gap-y': scaleGap() }],\n            /**\n             * Justify Content\n             * @see https://tailwindcss.com/docs/justify-content\n             */\n            'justify-content': [{ justify: [...scaleAlignPrimaryAxis(), 'normal'] }],\n            /**\n             * Justify Items\n             * @see https://tailwindcss.com/docs/justify-items\n             */\n            'justify-items': [{ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] }],\n            /**\n             * Justify Self\n             * @see https://tailwindcss.com/docs/justify-self\n             */\n            'justify-self': [{ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n            /**\n             * Align Content\n             * @see https://tailwindcss.com/docs/align-content\n             */\n            'align-content': [{ content: ['normal', ...scaleAlignPrimaryAxis()] }],\n            /**\n             * Align Items\n             * @see https://tailwindcss.com/docs/align-items\n             */\n            'align-items': [{ items: [...scaleAlignSecondaryAxis(), 'baseline'] }],\n            /**\n             * Align Self\n             * @see https://tailwindcss.com/docs/align-self\n             */\n            'align-self': [{ self: ['auto', ...scaleAlignSecondaryAxis(), 'baseline'] }],\n            /**\n             * Place Content\n             * @see https://tailwindcss.com/docs/place-content\n             */\n            'place-content': [{ 'place-content': scaleAlignPrimaryAxis() }],\n            /**\n             * Place Items\n             * @see https://tailwindcss.com/docs/place-items\n             */\n            'place-items': [{ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] }],\n            /**\n             * Place Self\n             * @see https://tailwindcss.com/docs/place-self\n             */\n            'place-self': [{ 'place-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n            // Spacing\n            /**\n             * Padding\n             * @see https://tailwindcss.com/docs/padding\n             */\n            p: [{ p: scalePadding() }],\n            /**\n             * Padding X\n             * @see https://tailwindcss.com/docs/padding\n             */\n            px: [{ px: scalePadding() }],\n            /**\n             * Padding Y\n             * @see https://tailwindcss.com/docs/padding\n             */\n            py: [{ py: scalePadding() }],\n            /**\n             * Padding Start\n             * @see https://tailwindcss.com/docs/padding\n             */\n            ps: [{ ps: scalePadding() }],\n            /**\n             * Padding End\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pe: [{ pe: scalePadding() }],\n            /**\n             * Padding Top\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pt: [{ pt: scalePadding() }],\n            /**\n             * Padding Right\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pr: [{ pr: scalePadding() }],\n            /**\n             * Padding Bottom\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pb: [{ pb: scalePadding() }],\n            /**\n             * Padding Left\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pl: [{ pl: scalePadding() }],\n            /**\n             * Margin\n             * @see https://tailwindcss.com/docs/margin\n             */\n            m: [{ m: scaleMargin() }],\n            /**\n             * Margin X\n             * @see https://tailwindcss.com/docs/margin\n             */\n            mx: [{ mx: scaleMargin() }],\n            /**\n             * Margin Y\n             * @see https://tailwindcss.com/docs/margin\n             */\n            my: [{ my: scaleMargin() }],\n            /**\n             * Margin Start\n             * @see https://tailwindcss.com/docs/margin\n             */\n            ms: [{ ms: scaleMargin() }],\n            /**\n             * Margin End\n             * @see https://tailwindcss.com/docs/margin\n             */\n            me: [{ me: scaleMargin() }],\n            /**\n             * Margin Top\n             * @see https://tailwindcss.com/docs/margin\n             */\n            mt: [{ mt: scaleMargin() }],\n            /**\n             * Margin Right\n             * @see https://tailwindcss.com/docs/margin\n             */\n            mr: [{ mr: scaleMargin() }],\n            /**\n             * Margin Bottom\n             * @see https://tailwindcss.com/docs/margin\n             */\n            mb: [{ mb: scaleMargin() }],\n            /**\n             * Margin Left\n             * @see https://tailwindcss.com/docs/margin\n             */\n            ml: [{ ml: scaleMargin() }],\n            /**\n             * Space Between X\n             * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n             */\n            'space-x': [{ 'space-x': scaleUnambiguousSpacing() }],\n            /**\n             * Space Between X Reverse\n             * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n             */\n            'space-x-reverse': ['space-x-reverse'],\n            /**\n             * Space Between Y\n             * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n             */\n            'space-y': [{ 'space-y': scaleUnambiguousSpacing() }],\n            /**\n             * Space Between Y Reverse\n             * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n             */\n            'space-y-reverse': ['space-y-reverse'],\n\n            // --------------\n            // --- Sizing ---\n            // --------------\n\n            /**\n             * Width\n             * @see https://tailwindcss.com/docs/width\n             */\n            /**\n             * Size\n             * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n             */\n            size: [{ size: scaleSizing() }],\n            w: [{ w: [themeContainer, 'screen', ...scaleSizing()] }],\n            /**\n             * Min-Width\n             * @see https://tailwindcss.com/docs/min-width\n             */\n            'min-w': [\n                {\n                    'min-w': [\n                        themeContainer,\n                        'screen',\n                        /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n                        'none',\n                        ...scaleSizing(),\n                    ],\n                },\n            ],\n            /**\n             * Max-Width\n             * @see https://tailwindcss.com/docs/max-width\n             */\n            'max-w': [\n                {\n                    'max-w': [\n                        themeContainer,\n                        'screen',\n                        'none',\n                        /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n                        'prose',\n                        /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n                        { screen: [themeBreakpoint] },\n                        ...scaleSizing(),\n                    ],\n                },\n            ],\n            /**\n             * Height\n             * @see https://tailwindcss.com/docs/height\n             */\n            h: [{ h: ['screen', ...scaleSizing()] }],\n            /**\n             * Min-Height\n             * @see https://tailwindcss.com/docs/min-height\n             */\n            'min-h': [{ 'min-h': ['screen', 'none', ...scaleSizing()] }],\n            /**\n             * Max-Height\n             * @see https://tailwindcss.com/docs/max-height\n             */\n            'max-h': [{ 'max-h': ['screen', ...scaleSizing()] }],\n\n            // ------------------\n            // --- Typography ---\n            // ------------------\n\n            /**\n             * Font Size\n             * @see https://tailwindcss.com/docs/font-size\n             */\n            'font-size': [\n                { text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] },\n            ],\n            /**\n             * Font Smoothing\n             * @see https://tailwindcss.com/docs/font-smoothing\n             */\n            'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n            /**\n             * Font Style\n             * @see https://tailwindcss.com/docs/font-style\n             */\n            'font-style': ['italic', 'not-italic'],\n            /**\n             * Font Weight\n             * @see https://tailwindcss.com/docs/font-weight\n             */\n            'font-weight': [{ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber] }],\n            /**\n             * Font Stretch\n             * @see https://tailwindcss.com/docs/font-stretch\n             */\n            'font-stretch': [\n                {\n                    'font-stretch': [\n                        'ultra-condensed',\n                        'extra-condensed',\n                        'condensed',\n                        'semi-condensed',\n                        'normal',\n                        'semi-expanded',\n                        'expanded',\n                        'extra-expanded',\n                        'ultra-expanded',\n                        isPercent,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n            /**\n             * Font Family\n             * @see https://tailwindcss.com/docs/font-family\n             */\n            'font-family': [{ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont] }],\n            /**\n             * Font Variant Numeric\n             * @see https://tailwindcss.com/docs/font-variant-numeric\n             */\n            'fvn-normal': ['normal-nums'],\n            /**\n             * Font Variant Numeric\n             * @see https://tailwindcss.com/docs/font-variant-numeric\n             */\n            'fvn-ordinal': ['ordinal'],\n            /**\n             * Font Variant Numeric\n             * @see https://tailwindcss.com/docs/font-variant-numeric\n             */\n            'fvn-slashed-zero': ['slashed-zero'],\n            /**\n             * Font Variant Numeric\n             * @see https://tailwindcss.com/docs/font-variant-numeric\n             */\n            'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n            /**\n             * Font Variant Numeric\n             * @see https://tailwindcss.com/docs/font-variant-numeric\n             */\n            'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n            /**\n             * Font Variant Numeric\n             * @see https://tailwindcss.com/docs/font-variant-numeric\n             */\n            'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n            /**\n             * Letter Spacing\n             * @see https://tailwindcss.com/docs/letter-spacing\n             */\n            tracking: [{ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Line Clamp\n             * @see https://tailwindcss.com/docs/line-clamp\n             */\n            'line-clamp': [\n                { 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] },\n            ],\n            /**\n             * Line Height\n             * @see https://tailwindcss.com/docs/line-height\n             */\n            leading: [\n                {\n                    leading: [\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                        /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n                        themeLeading,\n                        themeSpacing,\n                    ],\n                },\n            ],\n            /**\n             * List Style Image\n             * @see https://tailwindcss.com/docs/list-style-image\n             */\n            'list-image': [{ 'list-image': ['none', isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * List Style Position\n             * @see https://tailwindcss.com/docs/list-style-position\n             */\n            'list-style-position': [{ list: ['inside', 'outside'] }],\n            /**\n             * List Style Type\n             * @see https://tailwindcss.com/docs/list-style-type\n             */\n            'list-style-type': [\n                { list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Text Alignment\n             * @see https://tailwindcss.com/docs/text-align\n             */\n            'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }],\n            /**\n             * Placeholder Color\n             * @deprecated since Tailwind CSS v3.0.0\n             * @see https://v3.tailwindcss.com/docs/placeholder-color\n             */\n            'placeholder-color': [{ placeholder: scaleColor() }],\n            /**\n             * Text Color\n             * @see https://tailwindcss.com/docs/text-color\n             */\n            'text-color': [{ text: scaleColor() }],\n            /**\n             * Text Decoration\n             * @see https://tailwindcss.com/docs/text-decoration\n             */\n            'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n            /**\n             * Text Decoration Style\n             * @see https://tailwindcss.com/docs/text-decoration-style\n             */\n            'text-decoration-style': [{ decoration: [...scaleLineStyle(), 'wavy'] }],\n            /**\n             * Text Decoration Thickness\n             * @see https://tailwindcss.com/docs/text-decoration-thickness\n             */\n            'text-decoration-thickness': [\n                {\n                    decoration: [\n                        isNumber,\n                        'from-font',\n                        'auto',\n                        isArbitraryVariable,\n                        isArbitraryLength,\n                    ],\n                },\n            ],\n            /**\n             * Text Decoration Color\n             * @see https://tailwindcss.com/docs/text-decoration-color\n             */\n            'text-decoration-color': [{ decoration: scaleColor() }],\n            /**\n             * Text Underline Offset\n             * @see https://tailwindcss.com/docs/text-underline-offset\n             */\n            'underline-offset': [\n                { 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Text Transform\n             * @see https://tailwindcss.com/docs/text-transform\n             */\n            'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n            /**\n             * Text Overflow\n             * @see https://tailwindcss.com/docs/text-overflow\n             */\n            'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n            /**\n             * Text Wrap\n             * @see https://tailwindcss.com/docs/text-wrap\n             */\n            'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }],\n            /**\n             * Text Indent\n             * @see https://tailwindcss.com/docs/text-indent\n             */\n            indent: [{ indent: ['px', ...scaleUnambiguousSpacing()] }],\n            /**\n             * Vertical Alignment\n             * @see https://tailwindcss.com/docs/vertical-align\n             */\n            'vertical-align': [\n                {\n                    align: [\n                        'baseline',\n                        'top',\n                        'middle',\n                        'bottom',\n                        'text-top',\n                        'text-bottom',\n                        'sub',\n                        'super',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n            /**\n             * Whitespace\n             * @see https://tailwindcss.com/docs/whitespace\n             */\n            whitespace: [\n                { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] },\n            ],\n            /**\n             * Word Break\n             * @see https://tailwindcss.com/docs/word-break\n             */\n            break: [{ break: ['normal', 'words', 'all', 'keep'] }],\n            /**\n             * Hyphens\n             * @see https://tailwindcss.com/docs/hyphens\n             */\n            hyphens: [{ hyphens: ['none', 'manual', 'auto'] }],\n            /**\n             * Content\n             * @see https://tailwindcss.com/docs/content\n             */\n            content: [{ content: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n            // -------------------\n            // --- Backgrounds ---\n            // -------------------\n\n            /**\n             * Background Attachment\n             * @see https://tailwindcss.com/docs/background-attachment\n             */\n            'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }],\n            /**\n             * Background Clip\n             * @see https://tailwindcss.com/docs/background-clip\n             */\n            'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }],\n            /**\n             * Background Origin\n             * @see https://tailwindcss.com/docs/background-origin\n             */\n            'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }],\n            /**\n             * Background Position\n             * @see https://tailwindcss.com/docs/background-position\n             */\n            'bg-position': [\n                { bg: [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition] },\n            ],\n            /**\n             * Background Repeat\n             * @see https://tailwindcss.com/docs/background-repeat\n             */\n            'bg-repeat': [{ bg: ['no-repeat', { repeat: ['', 'x', 'y', 'space', 'round'] }] }],\n            /**\n             * Background Size\n             * @see https://tailwindcss.com/docs/background-size\n             */\n            'bg-size': [\n                { bg: ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize] },\n            ],\n            /**\n             * Background Image\n             * @see https://tailwindcss.com/docs/background-image\n             */\n            'bg-image': [\n                {\n                    bg: [\n                        'none',\n                        {\n                            linear: [\n                                { to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] },\n                                isInteger,\n                                isArbitraryVariable,\n                                isArbitraryValue,\n                            ],\n                            radial: ['', isArbitraryVariable, isArbitraryValue],\n                            conic: [isInteger, isArbitraryVariable, isArbitraryValue],\n                        },\n                        isArbitraryVariableImage,\n                        isArbitraryImage,\n                    ],\n                },\n            ],\n            /**\n             * Background Color\n             * @see https://tailwindcss.com/docs/background-color\n             */\n            'bg-color': [{ bg: scaleColor() }],\n            /**\n             * Gradient Color Stops From Position\n             * @see https://tailwindcss.com/docs/gradient-color-stops\n             */\n            'gradient-from-pos': [{ from: scaleGradientStopPosition() }],\n            /**\n             * Gradient Color Stops Via Position\n             * @see https://tailwindcss.com/docs/gradient-color-stops\n             */\n            'gradient-via-pos': [{ via: scaleGradientStopPosition() }],\n            /**\n             * Gradient Color Stops To Position\n             * @see https://tailwindcss.com/docs/gradient-color-stops\n             */\n            'gradient-to-pos': [{ to: scaleGradientStopPosition() }],\n            /**\n             * Gradient Color Stops From\n             * @see https://tailwindcss.com/docs/gradient-color-stops\n             */\n            'gradient-from': [{ from: scaleColor() }],\n            /**\n             * Gradient Color Stops Via\n             * @see https://tailwindcss.com/docs/gradient-color-stops\n             */\n            'gradient-via': [{ via: scaleColor() }],\n            /**\n             * Gradient Color Stops To\n             * @see https://tailwindcss.com/docs/gradient-color-stops\n             */\n            'gradient-to': [{ to: scaleColor() }],\n\n            // ---------------\n            // --- Borders ---\n            // ---------------\n\n            /**\n             * Border Radius\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            rounded: [{ rounded: scaleRadius() }],\n            /**\n             * Border Radius Start\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-s': [{ 'rounded-s': scaleRadius() }],\n            /**\n             * Border Radius End\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-e': [{ 'rounded-e': scaleRadius() }],\n            /**\n             * Border Radius Top\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-t': [{ 'rounded-t': scaleRadius() }],\n            /**\n             * Border Radius Right\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-r': [{ 'rounded-r': scaleRadius() }],\n            /**\n             * Border Radius Bottom\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-b': [{ 'rounded-b': scaleRadius() }],\n            /**\n             * Border Radius Left\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-l': [{ 'rounded-l': scaleRadius() }],\n            /**\n             * Border Radius Start Start\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-ss': [{ 'rounded-ss': scaleRadius() }],\n            /**\n             * Border Radius Start End\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-se': [{ 'rounded-se': scaleRadius() }],\n            /**\n             * Border Radius End End\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-ee': [{ 'rounded-ee': scaleRadius() }],\n            /**\n             * Border Radius End Start\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-es': [{ 'rounded-es': scaleRadius() }],\n            /**\n             * Border Radius Top Left\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-tl': [{ 'rounded-tl': scaleRadius() }],\n            /**\n             * Border Radius Top Right\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-tr': [{ 'rounded-tr': scaleRadius() }],\n            /**\n             * Border Radius Bottom Right\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-br': [{ 'rounded-br': scaleRadius() }],\n            /**\n             * Border Radius Bottom Left\n             * @see https://tailwindcss.com/docs/border-radius\n             */\n            'rounded-bl': [{ 'rounded-bl': scaleRadius() }],\n            /**\n             * Border Width\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w': [{ border: scaleBorderWidth() }],\n            /**\n             * Border Width X\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w-x': [{ 'border-x': scaleBorderWidth() }],\n            /**\n             * Border Width Y\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w-y': [{ 'border-y': scaleBorderWidth() }],\n            /**\n             * Border Width Start\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w-s': [{ 'border-s': scaleBorderWidth() }],\n            /**\n             * Border Width End\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w-e': [{ 'border-e': scaleBorderWidth() }],\n            /**\n             * Border Width Top\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w-t': [{ 'border-t': scaleBorderWidth() }],\n            /**\n             * Border Width Right\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w-r': [{ 'border-r': scaleBorderWidth() }],\n            /**\n             * Border Width Bottom\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w-b': [{ 'border-b': scaleBorderWidth() }],\n            /**\n             * Border Width Left\n             * @see https://tailwindcss.com/docs/border-width\n             */\n            'border-w-l': [{ 'border-l': scaleBorderWidth() }],\n            /**\n             * Divide Width X\n             * @see https://tailwindcss.com/docs/border-width#between-children\n             */\n            'divide-x': [{ 'divide-x': scaleBorderWidth() }],\n            /**\n             * Divide Width X Reverse\n             * @see https://tailwindcss.com/docs/border-width#between-children\n             */\n            'divide-x-reverse': ['divide-x-reverse'],\n            /**\n             * Divide Width Y\n             * @see https://tailwindcss.com/docs/border-width#between-children\n             */\n            'divide-y': [{ 'divide-y': scaleBorderWidth() }],\n            /**\n             * Divide Width Y Reverse\n             * @see https://tailwindcss.com/docs/border-width#between-children\n             */\n            'divide-y-reverse': ['divide-y-reverse'],\n            /**\n             * Border Style\n             * @see https://tailwindcss.com/docs/border-style\n             */\n            'border-style': [{ border: [...scaleLineStyle(), 'hidden', 'none'] }],\n            /**\n             * Divide Style\n             * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n             */\n            'divide-style': [{ divide: [...scaleLineStyle(), 'hidden', 'none'] }],\n            /**\n             * Border Color\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color': [{ border: scaleColor() }],\n            /**\n             * Border Color X\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color-x': [{ 'border-x': scaleColor() }],\n            /**\n             * Border Color Y\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color-y': [{ 'border-y': scaleColor() }],\n            /**\n             * Border Color S\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color-s': [{ 'border-s': scaleColor() }],\n            /**\n             * Border Color E\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color-e': [{ 'border-e': scaleColor() }],\n            /**\n             * Border Color Top\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color-t': [{ 'border-t': scaleColor() }],\n            /**\n             * Border Color Right\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color-r': [{ 'border-r': scaleColor() }],\n            /**\n             * Border Color Bottom\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color-b': [{ 'border-b': scaleColor() }],\n            /**\n             * Border Color Left\n             * @see https://tailwindcss.com/docs/border-color\n             */\n            'border-color-l': [{ 'border-l': scaleColor() }],\n            /**\n             * Divide Color\n             * @see https://tailwindcss.com/docs/divide-color\n             */\n            'divide-color': [{ divide: scaleColor() }],\n            /**\n             * Outline Style\n             * @see https://tailwindcss.com/docs/outline-style\n             */\n            'outline-style': [{ outline: [...scaleLineStyle(), 'none', 'hidden'] }],\n            /**\n             * Outline Offset\n             * @see https://tailwindcss.com/docs/outline-offset\n             */\n            'outline-offset': [\n                { 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Outline Width\n             * @see https://tailwindcss.com/docs/outline-width\n             */\n            'outline-w': [\n                { outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] },\n            ],\n            /**\n             * Outline Color\n             * @see https://tailwindcss.com/docs/outline-color\n             */\n            'outline-color': [{ outline: [themeColor] }],\n\n            // ---------------\n            // --- Effects ---\n            // ---------------\n\n            /**\n             * Box Shadow\n             * @see https://tailwindcss.com/docs/box-shadow\n             */\n            shadow: [\n                {\n                    shadow: [\n                        // Deprecated since Tailwind CSS v4.0.0\n                        '',\n                        'none',\n                        themeShadow,\n                        isArbitraryVariableShadow,\n                        isArbitraryShadow,\n                    ],\n                },\n            ],\n            /**\n             * Box Shadow Color\n             * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n             */\n            'shadow-color': [{ shadow: scaleColor() }],\n            /**\n             * Inset Box Shadow\n             * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n             */\n            'inset-shadow': [\n                {\n                    'inset-shadow': [\n                        'none',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                        themeInsetShadow,\n                    ],\n                },\n            ],\n            /**\n             * Inset Box Shadow Color\n             * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n             */\n            'inset-shadow-color': [{ 'inset-shadow': scaleColor() }],\n            /**\n             * Ring Width\n             * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n             */\n            'ring-w': [{ ring: scaleBorderWidth() }],\n            /**\n             * Ring Width Inset\n             * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n             * @deprecated since Tailwind CSS v4.0.0\n             * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n             */\n            'ring-w-inset': ['ring-inset'],\n            /**\n             * Ring Color\n             * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n             */\n            'ring-color': [{ ring: scaleColor() }],\n            /**\n             * Ring Offset Width\n             * @see https://v3.tailwindcss.com/docs/ring-offset-width\n             * @deprecated since Tailwind CSS v4.0.0\n             * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n             */\n            'ring-offset-w': [{ 'ring-offset': [isNumber, isArbitraryLength] }],\n            /**\n             * Ring Offset Color\n             * @see https://v3.tailwindcss.com/docs/ring-offset-color\n             * @deprecated since Tailwind CSS v4.0.0\n             * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n             */\n            'ring-offset-color': [{ 'ring-offset': scaleColor() }],\n            /**\n             * Inset Ring Width\n             * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n             */\n            'inset-ring-w': [{ 'inset-ring': scaleBorderWidth() }],\n            /**\n             * Inset Ring Color\n             * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n             */\n            'inset-ring-color': [{ 'inset-ring': scaleColor() }],\n            /**\n             * Opacity\n             * @see https://tailwindcss.com/docs/opacity\n             */\n            opacity: [{ opacity: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Mix Blend Mode\n             * @see https://tailwindcss.com/docs/mix-blend-mode\n             */\n            'mix-blend': [{ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] }],\n            /**\n             * Background Blend Mode\n             * @see https://tailwindcss.com/docs/background-blend-mode\n             */\n            'bg-blend': [{ 'bg-blend': scaleBlendMode() }],\n\n            // ---------------\n            // --- Filters ---\n            // ---------------\n\n            /**\n             * Filter\n             * @see https://tailwindcss.com/docs/filter\n             */\n            filter: [\n                {\n                    filter: [\n                        // Deprecated since Tailwind CSS v3.0.0\n                        '',\n                        'none',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n            /**\n             * Blur\n             * @see https://tailwindcss.com/docs/blur\n             */\n            blur: [{ blur: scaleBlur() }],\n            /**\n             * Brightness\n             * @see https://tailwindcss.com/docs/brightness\n             */\n            brightness: [{ brightness: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Contrast\n             * @see https://tailwindcss.com/docs/contrast\n             */\n            contrast: [{ contrast: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Drop Shadow\n             * @see https://tailwindcss.com/docs/drop-shadow\n             */\n            'drop-shadow': [\n                {\n                    'drop-shadow': [\n                        // Deprecated since Tailwind CSS v4.0.0\n                        '',\n                        'none',\n                        themeDropShadow,\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n            /**\n             * Grayscale\n             * @see https://tailwindcss.com/docs/grayscale\n             */\n            grayscale: [{ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Hue Rotate\n             * @see https://tailwindcss.com/docs/hue-rotate\n             */\n            'hue-rotate': [{ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Invert\n             * @see https://tailwindcss.com/docs/invert\n             */\n            invert: [{ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Saturate\n             * @see https://tailwindcss.com/docs/saturate\n             */\n            saturate: [{ saturate: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Sepia\n             * @see https://tailwindcss.com/docs/sepia\n             */\n            sepia: [{ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Backdrop Filter\n             * @see https://tailwindcss.com/docs/backdrop-filter\n             */\n            'backdrop-filter': [\n                {\n                    'backdrop-filter': [\n                        // Deprecated since Tailwind CSS v3.0.0\n                        '',\n                        'none',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n            /**\n             * Backdrop Blur\n             * @see https://tailwindcss.com/docs/backdrop-blur\n             */\n            'backdrop-blur': [{ 'backdrop-blur': scaleBlur() }],\n            /**\n             * Backdrop Brightness\n             * @see https://tailwindcss.com/docs/backdrop-brightness\n             */\n            'backdrop-brightness': [\n                { 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Backdrop Contrast\n             * @see https://tailwindcss.com/docs/backdrop-contrast\n             */\n            'backdrop-contrast': [\n                { 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Backdrop Grayscale\n             * @see https://tailwindcss.com/docs/backdrop-grayscale\n             */\n            'backdrop-grayscale': [\n                { 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Backdrop Hue Rotate\n             * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n             */\n            'backdrop-hue-rotate': [\n                { 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Backdrop Invert\n             * @see https://tailwindcss.com/docs/backdrop-invert\n             */\n            'backdrop-invert': [\n                { 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Backdrop Opacity\n             * @see https://tailwindcss.com/docs/backdrop-opacity\n             */\n            'backdrop-opacity': [\n                { 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Backdrop Saturate\n             * @see https://tailwindcss.com/docs/backdrop-saturate\n             */\n            'backdrop-saturate': [\n                { 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Backdrop Sepia\n             * @see https://tailwindcss.com/docs/backdrop-sepia\n             */\n            'backdrop-sepia': [\n                { 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n            ],\n\n            // --------------\n            // --- Tables ---\n            // --------------\n\n            /**\n             * Border Collapse\n             * @see https://tailwindcss.com/docs/border-collapse\n             */\n            'border-collapse': [{ border: ['collapse', 'separate'] }],\n            /**\n             * Border Spacing\n             * @see https://tailwindcss.com/docs/border-spacing\n             */\n            'border-spacing': [{ 'border-spacing': scaleUnambiguousSpacing() }],\n            /**\n             * Border Spacing X\n             * @see https://tailwindcss.com/docs/border-spacing\n             */\n            'border-spacing-x': [{ 'border-spacing-x': scaleUnambiguousSpacing() }],\n            /**\n             * Border Spacing Y\n             * @see https://tailwindcss.com/docs/border-spacing\n             */\n            'border-spacing-y': [{ 'border-spacing-y': scaleUnambiguousSpacing() }],\n            /**\n             * Table Layout\n             * @see https://tailwindcss.com/docs/table-layout\n             */\n            'table-layout': [{ table: ['auto', 'fixed'] }],\n            /**\n             * Caption Side\n             * @see https://tailwindcss.com/docs/caption-side\n             */\n            caption: [{ caption: ['top', 'bottom'] }],\n\n            // ---------------------------------\n            // --- Transitions and Animation ---\n            // ---------------------------------\n\n            /**\n             * Transition Property\n             * @see https://tailwindcss.com/docs/transition-property\n             */\n            transition: [\n                {\n                    transition: [\n                        '',\n                        'all',\n                        'colors',\n                        'opacity',\n                        'shadow',\n                        'transform',\n                        'none',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n            /**\n             * Transition Behavior\n             * @see https://tailwindcss.com/docs/transition-behavior\n             */\n            'transition-behavior': [{ transition: ['normal', 'discrete'] }],\n            /**\n             * Transition Duration\n             * @see https://tailwindcss.com/docs/transition-duration\n             */\n            duration: [{ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Transition Timing Function\n             * @see https://tailwindcss.com/docs/transition-timing-function\n             */\n            ease: [\n                { ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Transition Delay\n             * @see https://tailwindcss.com/docs/transition-delay\n             */\n            delay: [{ delay: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n            /**\n             * Animation\n             * @see https://tailwindcss.com/docs/animation\n             */\n            animate: [{ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] }],\n\n            // ------------------\n            // --- Transforms ---\n            // ------------------\n\n            /**\n             * Backface Visibility\n             * @see https://tailwindcss.com/docs/backface-visibility\n             */\n            backface: [{ backface: ['hidden', 'visible'] }],\n            /**\n             * Perspective\n             * @see https://tailwindcss.com/docs/perspective\n             */\n            perspective: [\n                { perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] },\n            ],\n            /**\n             * Perspective Origin\n             * @see https://tailwindcss.com/docs/perspective-origin\n             */\n            'perspective-origin': [{ 'perspective-origin': scaleOrigin() }],\n            /**\n             * Rotate\n             * @see https://tailwindcss.com/docs/rotate\n             */\n            rotate: [{ rotate: scaleRotate() }],\n            /**\n             * Rotate X\n             * @see https://tailwindcss.com/docs/rotate\n             */\n            'rotate-x': [{ 'rotate-x': scaleRotate() }],\n            /**\n             * Rotate Y\n             * @see https://tailwindcss.com/docs/rotate\n             */\n            'rotate-y': [{ 'rotate-y': scaleRotate() }],\n            /**\n             * Rotate Z\n             * @see https://tailwindcss.com/docs/rotate\n             */\n            'rotate-z': [{ 'rotate-z': scaleRotate() }],\n            /**\n             * Scale\n             * @see https://tailwindcss.com/docs/scale\n             */\n            scale: [{ scale: scaleScale() }],\n            /**\n             * Scale X\n             * @see https://tailwindcss.com/docs/scale\n             */\n            'scale-x': [{ 'scale-x': scaleScale() }],\n            /**\n             * Scale Y\n             * @see https://tailwindcss.com/docs/scale\n             */\n            'scale-y': [{ 'scale-y': scaleScale() }],\n            /**\n             * Scale Z\n             * @see https://tailwindcss.com/docs/scale\n             */\n            'scale-z': [{ 'scale-z': scaleScale() }],\n            /**\n             * Scale 3D\n             * @see https://tailwindcss.com/docs/scale\n             */\n            'scale-3d': ['scale-3d'],\n            /**\n             * Skew\n             * @see https://tailwindcss.com/docs/skew\n             */\n            skew: [{ skew: scaleSkew() }],\n            /**\n             * Skew X\n             * @see https://tailwindcss.com/docs/skew\n             */\n            'skew-x': [{ 'skew-x': scaleSkew() }],\n            /**\n             * Skew Y\n             * @see https://tailwindcss.com/docs/skew\n             */\n            'skew-y': [{ 'skew-y': scaleSkew() }],\n            /**\n             * Transform\n             * @see https://tailwindcss.com/docs/transform\n             */\n            transform: [\n                { transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] },\n            ],\n            /**\n             * Transform Origin\n             * @see https://tailwindcss.com/docs/transform-origin\n             */\n            'transform-origin': [{ origin: scaleOrigin() }],\n            /**\n             * Transform Style\n             * @see https://tailwindcss.com/docs/transform-style\n             */\n            'transform-style': [{ transform: ['3d', 'flat'] }],\n            /**\n             * Translate\n             * @see https://tailwindcss.com/docs/translate\n             */\n            translate: [{ translate: scaleTranslate() }],\n            /**\n             * Translate X\n             * @see https://tailwindcss.com/docs/translate\n             */\n            'translate-x': [{ 'translate-x': scaleTranslate() }],\n            /**\n             * Translate Y\n             * @see https://tailwindcss.com/docs/translate\n             */\n            'translate-y': [{ 'translate-y': scaleTranslate() }],\n            /**\n             * Translate Z\n             * @see https://tailwindcss.com/docs/translate\n             */\n            'translate-z': [{ 'translate-z': scaleTranslate() }],\n            /**\n             * Translate None\n             * @see https://tailwindcss.com/docs/translate\n             */\n            'translate-none': ['translate-none'],\n\n            // ---------------------\n            // --- Interactivity ---\n            // ---------------------\n\n            /**\n             * Accent Color\n             * @see https://tailwindcss.com/docs/accent-color\n             */\n            accent: [{ accent: scaleColor() }],\n            /**\n             * Appearance\n             * @see https://tailwindcss.com/docs/appearance\n             */\n            appearance: [{ appearance: ['none', 'auto'] }],\n            /**\n             * Caret Color\n             * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n             */\n            'caret-color': [{ caret: scaleColor() }],\n            /**\n             * Color Scheme\n             * @see https://tailwindcss.com/docs/color-scheme\n             */\n            'color-scheme': [\n                { scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] },\n            ],\n            /**\n             * Cursor\n             * @see https://tailwindcss.com/docs/cursor\n             */\n            cursor: [\n                {\n                    cursor: [\n                        'auto',\n                        'default',\n                        'pointer',\n                        'wait',\n                        'text',\n                        'move',\n                        'help',\n                        'not-allowed',\n                        'none',\n                        'context-menu',\n                        'progress',\n                        'cell',\n                        'crosshair',\n                        'vertical-text',\n                        'alias',\n                        'copy',\n                        'no-drop',\n                        'grab',\n                        'grabbing',\n                        'all-scroll',\n                        'col-resize',\n                        'row-resize',\n                        'n-resize',\n                        'e-resize',\n                        's-resize',\n                        'w-resize',\n                        'ne-resize',\n                        'nw-resize',\n                        'se-resize',\n                        'sw-resize',\n                        'ew-resize',\n                        'ns-resize',\n                        'nesw-resize',\n                        'nwse-resize',\n                        'zoom-in',\n                        'zoom-out',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n            /**\n             * Field Sizing\n             * @see https://tailwindcss.com/docs/field-sizing\n             */\n            'field-sizing': [{ 'field-sizing': ['fixed', 'content'] }],\n            /**\n             * Pointer Events\n             * @see https://tailwindcss.com/docs/pointer-events\n             */\n            'pointer-events': [{ 'pointer-events': ['auto', 'none'] }],\n            /**\n             * Resize\n             * @see https://tailwindcss.com/docs/resize\n             */\n            resize: [{ resize: ['none', '', 'y', 'x'] }],\n            /**\n             * Scroll Behavior\n             * @see https://tailwindcss.com/docs/scroll-behavior\n             */\n            'scroll-behavior': [{ scroll: ['auto', 'smooth'] }],\n            /**\n             * Scroll Margin\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-m': [{ 'scroll-m': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Margin X\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-mx': [{ 'scroll-mx': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Margin Y\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-my': [{ 'scroll-my': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Margin Start\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-ms': [{ 'scroll-ms': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Margin End\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-me': [{ 'scroll-me': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Margin Top\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-mt': [{ 'scroll-mt': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Margin Right\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-mr': [{ 'scroll-mr': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Margin Bottom\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-mb': [{ 'scroll-mb': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Margin Left\n             * @see https://tailwindcss.com/docs/scroll-margin\n             */\n            'scroll-ml': [{ 'scroll-ml': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-p': [{ 'scroll-p': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding X\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-px': [{ 'scroll-px': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding Y\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-py': [{ 'scroll-py': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding Start\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-ps': [{ 'scroll-ps': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding End\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-pe': [{ 'scroll-pe': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding Top\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-pt': [{ 'scroll-pt': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding Right\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-pr': [{ 'scroll-pr': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding Bottom\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-pb': [{ 'scroll-pb': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Padding Left\n             * @see https://tailwindcss.com/docs/scroll-padding\n             */\n            'scroll-pl': [{ 'scroll-pl': scaleUnambiguousSpacing() }],\n            /**\n             * Scroll Snap Align\n             * @see https://tailwindcss.com/docs/scroll-snap-align\n             */\n            'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }],\n            /**\n             * Scroll Snap Stop\n             * @see https://tailwindcss.com/docs/scroll-snap-stop\n             */\n            'snap-stop': [{ snap: ['normal', 'always'] }],\n            /**\n             * Scroll Snap Type\n             * @see https://tailwindcss.com/docs/scroll-snap-type\n             */\n            'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }],\n            /**\n             * Scroll Snap Type Strictness\n             * @see https://tailwindcss.com/docs/scroll-snap-type\n             */\n            'snap-strictness': [{ snap: ['mandatory', 'proximity'] }],\n            /**\n             * Touch Action\n             * @see https://tailwindcss.com/docs/touch-action\n             */\n            touch: [{ touch: ['auto', 'none', 'manipulation'] }],\n            /**\n             * Touch Action X\n             * @see https://tailwindcss.com/docs/touch-action\n             */\n            'touch-x': [{ 'touch-pan': ['x', 'left', 'right'] }],\n            /**\n             * Touch Action Y\n             * @see https://tailwindcss.com/docs/touch-action\n             */\n            'touch-y': [{ 'touch-pan': ['y', 'up', 'down'] }],\n            /**\n             * Touch Action Pinch Zoom\n             * @see https://tailwindcss.com/docs/touch-action\n             */\n            'touch-pz': ['touch-pinch-zoom'],\n            /**\n             * User Select\n             * @see https://tailwindcss.com/docs/user-select\n             */\n            select: [{ select: ['none', 'text', 'all', 'auto'] }],\n            /**\n             * Will Change\n             * @see https://tailwindcss.com/docs/will-change\n             */\n            'will-change': [\n                {\n                    'will-change': [\n                        'auto',\n                        'scroll',\n                        'contents',\n                        'transform',\n                        isArbitraryVariable,\n                        isArbitraryValue,\n                    ],\n                },\n            ],\n\n            // -----------\n            // --- SVG ---\n            // -----------\n\n            /**\n             * Fill\n             * @see https://tailwindcss.com/docs/fill\n             */\n            fill: [{ fill: ['none', ...scaleColor()] }],\n            /**\n             * Stroke Width\n             * @see https://tailwindcss.com/docs/stroke-width\n             */\n            'stroke-w': [\n                {\n                    stroke: [\n                        isNumber,\n                        isArbitraryVariableLength,\n                        isArbitraryLength,\n                        isArbitraryNumber,\n                    ],\n                },\n            ],\n            /**\n             * Stroke\n             * @see https://tailwindcss.com/docs/stroke\n             */\n            stroke: [{ stroke: ['none', ...scaleColor()] }],\n\n            // ---------------------\n            // --- Accessibility ---\n            // ---------------------\n\n            /**\n             * Forced Color Adjust\n             * @see https://tailwindcss.com/docs/forced-color-adjust\n             */\n            'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }],\n        },\n        conflictingClassGroups: {\n            overflow: ['overflow-x', 'overflow-y'],\n            overscroll: ['overscroll-x', 'overscroll-y'],\n            inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n            'inset-x': ['right', 'left'],\n            'inset-y': ['top', 'bottom'],\n            flex: ['basis', 'grow', 'shrink'],\n            gap: ['gap-x', 'gap-y'],\n            p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n            px: ['pr', 'pl'],\n            py: ['pt', 'pb'],\n            m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n            mx: ['mr', 'ml'],\n            my: ['mt', 'mb'],\n            size: ['w', 'h'],\n            'font-size': ['leading'],\n            'fvn-normal': [\n                'fvn-ordinal',\n                'fvn-slashed-zero',\n                'fvn-figure',\n                'fvn-spacing',\n                'fvn-fraction',\n            ],\n            'fvn-ordinal': ['fvn-normal'],\n            'fvn-slashed-zero': ['fvn-normal'],\n            'fvn-figure': ['fvn-normal'],\n            'fvn-spacing': ['fvn-normal'],\n            'fvn-fraction': ['fvn-normal'],\n            'line-clamp': ['display', 'overflow'],\n            rounded: [\n                'rounded-s',\n                'rounded-e',\n                'rounded-t',\n                'rounded-r',\n                'rounded-b',\n                'rounded-l',\n                'rounded-ss',\n                'rounded-se',\n                'rounded-ee',\n                'rounded-es',\n                'rounded-tl',\n                'rounded-tr',\n                'rounded-br',\n                'rounded-bl',\n            ],\n            'rounded-s': ['rounded-ss', 'rounded-es'],\n            'rounded-e': ['rounded-se', 'rounded-ee'],\n            'rounded-t': ['rounded-tl', 'rounded-tr'],\n            'rounded-r': ['rounded-tr', 'rounded-br'],\n            'rounded-b': ['rounded-br', 'rounded-bl'],\n            'rounded-l': ['rounded-tl', 'rounded-bl'],\n            'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n            'border-w': [\n                'border-w-s',\n                'border-w-e',\n                'border-w-t',\n                'border-w-r',\n                'border-w-b',\n                'border-w-l',\n            ],\n            'border-w-x': ['border-w-r', 'border-w-l'],\n            'border-w-y': ['border-w-t', 'border-w-b'],\n            'border-color': [\n                'border-color-s',\n                'border-color-e',\n                'border-color-t',\n                'border-color-r',\n                'border-color-b',\n                'border-color-l',\n            ],\n            'border-color-x': ['border-color-r', 'border-color-l'],\n            'border-color-y': ['border-color-t', 'border-color-b'],\n            translate: ['translate-x', 'translate-y', 'translate-none'],\n            'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n            'scroll-m': [\n                'scroll-mx',\n                'scroll-my',\n                'scroll-ms',\n                'scroll-me',\n                'scroll-mt',\n                'scroll-mr',\n                'scroll-mb',\n                'scroll-ml',\n            ],\n            'scroll-mx': ['scroll-mr', 'scroll-ml'],\n            'scroll-my': ['scroll-mt', 'scroll-mb'],\n            'scroll-p': [\n                'scroll-px',\n                'scroll-py',\n                'scroll-ps',\n                'scroll-pe',\n                'scroll-pt',\n                'scroll-pr',\n                'scroll-pb',\n                'scroll-pl',\n            ],\n            'scroll-px': ['scroll-pr', 'scroll-pl'],\n            'scroll-py': ['scroll-pt', 'scroll-pb'],\n            touch: ['touch-x', 'touch-y', 'touch-pz'],\n            'touch-x': ['touch'],\n            'touch-y': ['touch'],\n            'touch-pz': ['touch'],\n        },\n        conflictingClassGroupModifiers: {\n            'font-size': ['leading'],\n        },\n        orderSensitiveModifiers: [\n            'before',\n            'after',\n            'placeholder',\n            'file',\n            'marker',\n            'selection',\n            'first-line',\n            'first-letter',\n            'backdrop',\n            '*',\n            '**',\n        ],\n    } as const satisfies Config<DefaultClassGroupIds, DefaultThemeGroupIds>\n}\n","import { AnyConfig, ConfigExtension, NoInfer } from './types'\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nexport const mergeConfigs = <ClassGroupIds extends string, ThemeGroupIds extends string = never>(\n    baseConfig: AnyConfig,\n    {\n        cacheSize,\n        prefix,\n        experimentalParseClassName,\n        extend = {},\n        override = {},\n    }: ConfigExtension<ClassGroupIds, ThemeGroupIds>,\n) => {\n    overrideProperty(baseConfig, 'cacheSize', cacheSize)\n    overrideProperty(baseConfig, 'prefix', prefix)\n    overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName)\n\n    overrideConfigProperties(baseConfig.theme, override.theme)\n    overrideConfigProperties(baseConfig.classGroups, override.classGroups)\n    overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups)\n    overrideConfigProperties(\n        baseConfig.conflictingClassGroupModifiers,\n        override.conflictingClassGroupModifiers,\n    )\n    overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers)\n\n    mergeConfigProperties(baseConfig.theme, extend.theme)\n    mergeConfigProperties(baseConfig.classGroups, extend.classGroups)\n    mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups)\n    mergeConfigProperties(\n        baseConfig.conflictingClassGroupModifiers,\n        extend.conflictingClassGroupModifiers,\n    )\n    mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers')\n\n    return baseConfig\n}\n\nconst overrideProperty = <T extends object, K extends keyof T>(\n    baseObject: T,\n    overrideKey: K,\n    overrideValue: T[K] | undefined,\n) => {\n    if (overrideValue !== undefined) {\n        baseObject[overrideKey] = overrideValue\n    }\n}\n\nconst overrideConfigProperties = (\n    baseObject: Partial<Record<string, readonly unknown[]>>,\n    overrideObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n    if (overrideObject) {\n        for (const key in overrideObject) {\n            overrideProperty(baseObject, key, overrideObject[key])\n        }\n    }\n}\n\nconst mergeConfigProperties = (\n    baseObject: Partial<Record<string, readonly unknown[]>>,\n    mergeObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n    if (mergeObject) {\n        for (const key in mergeObject) {\n            mergeArrayProperties(baseObject, mergeObject, key)\n        }\n    }\n}\n\nconst mergeArrayProperties = <Key extends string>(\n    baseObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n    mergeObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n    key: Key,\n) => {\n    const mergeValue = mergeObject[key]\n\n    if (mergeValue !== undefined) {\n        baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue\n    }\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\nimport { mergeConfigs } from './merge-configs'\nimport { AnyConfig, ConfigExtension, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\n\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\n\nexport const extendTailwindMerge = <\n    AdditionalClassGroupIds extends string = never,\n    AdditionalThemeGroupIds extends string = never,\n>(\n    configExtension:\n        | ConfigExtension<\n              DefaultClassGroupIds | AdditionalClassGroupIds,\n              DefaultThemeGroupIds | AdditionalThemeGroupIds\n          >\n        | CreateConfigSubsequent,\n    ...createConfig: CreateConfigSubsequent[]\n) =>\n    typeof configExtension === 'function'\n        ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig)\n        : createTailwindMerge(\n              () => mergeConfigs(getDefaultConfig(), configExtension),\n              ...createConfig,\n          )\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\n\nexport const twMerge = createTailwindMerge(getDefaultConfig)\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":["r","t","f","n","o","clsx","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","classParts","split","length","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","classGroups","Map","processClassesRecursively","classGroup","forEach","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","Object","entries","key","path","currentClassPartObject","pathPart","has","set","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","value","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","prefix","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","startsWith","isExternal","endsWith","createSortModifiers","orderSensitiveModifiers","fromEntries","map","modifier","sortedModifiers","unsortedModifiers","sort","createConfigUtils","sortModifiers","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","result","originalClassName","variantModifier","modifierId","classId","includes","conflictGroups","i","group","twJoin","argument","resolvedValue","string","arguments","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","apply","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","Boolean","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isLabelShadow","testLabel","testValue","shouldMatchNoLabel","label","imageLabels","Set","sizeLabels","getDefaultConfig","themeColor","fromTheme","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scaleOverflow","scaleOverscroll","scaleInset","isFraction","isArbitraryVariable","isArbitraryValue","scaleGridTemplateColsRows","isInteger","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleGap","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleUnambiguousSpacing","scalePadding","scaleMargin","scaleSizing","scaleColor","scaleGradientStopPosition","isPercent","isArbitraryLength","scaleRadius","scaleBorderWidth","isNumber","isArbitraryVariableLength","scaleLineStyle","scaleBlendMode","scaleBlur","scaleOrigin","scaleRotate","scaleScale","scaleSkew","scaleTranslate","cacheSize","theme","animate","aspect","blur","isTshirtSize","breakpoint","color","isAny","container","ease","font","isAnyNonArbitrary","leading","perspective","radius","shadow","spacing","text","tracking","classGroups","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","position","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","content","items","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","size","w","screen","h","isArbitraryNumber","isArbitraryVariableFamilyName","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","isArbitraryVariablePosition","isArbitraryPosition","repeat","isArbitraryVariableSize","isArbitrarySize","linear","to","radial","conic","isArbitraryVariableImage","isArbitraryImage","from","via","rounded","border","divide","outline","isArbitraryVariableShadow","isArbitraryShadow","ring","opacity","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","conflictingClassGroups","conflictingClassGroupModifiers","orderSensitiveModifiers","twMerge","createTailwindMerge","getDefaultConfig","cn","inputs","twMerge","clsx"]}