{"version":3,"sources":["../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/class-group-utils.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/lru-cache.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/parse-class-name.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/sort-modifiers.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/config-utils.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/merge-classlist.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/tw-join.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/from-theme.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/validators.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/default-config.ts","../../node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/src/lib/tw-merge.ts","../../src/utils/errors.ts","../../src/utils/dom.ts","../../src/utils/debug.ts","../../src/utils/performance.ts","../../src/utils/index.ts"],"names":["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","sortModifiers","sortedModifiers","unsortedModifiers","isPositionSensitive","sort","createConfigUtils","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","callTailwindMerge","apply","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","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","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","content","items","baseline","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","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","twMerge"],"mappings":"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","file":"index.mjs","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)|color-mix)\\(.+\\)$/\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) => !!value && !Number.isNaN(Number(value))\n\nexport const isInteger = (value: string) => !!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) =>\n    getIsArbitraryValue(value, isLabelShadow, 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' || label === 'percentage'\n\nconst isLabelImage = (label: string) => label === 'image' || label === 'url'\n\nconst isLabelSize = (label: string) => label === 'length' || label === 'size' || label === 'bg-size'\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 themeTextShadow = fromTheme('text-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            'center',\n            'top',\n            'bottom',\n            'left',\n            'right',\n            'top-left',\n            // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n            'left-top',\n            'top-right',\n            // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n            'right-top',\n            'bottom-right',\n            // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n            'right-bottom',\n            'bottom-left',\n            // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n            'left-bottom',\n        ] as const\n    const scalePositionWithArbitrary = () =>\n        [...scalePosition(), isArbitraryVariable, isArbitraryValue] as const\n    const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n    const scaleOverscroll = () => ['auto', 'contain', 'none'] as const\n    const scaleUnambiguousSpacing = () =>\n        [isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n    const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()] 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            isInteger,\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 scaleAlignPrimaryAxis = () =>\n        [\n            'start',\n            'end',\n            'center',\n            'between',\n            'around',\n            'evenly',\n            'stretch',\n            'baseline',\n            'center-safe',\n            'end-safe',\n        ] as const\n    const scaleAlignSecondaryAxis = () =>\n        ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'] as const\n    const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()] as const\n    const scaleSizing = () =>\n        [\n            isFraction,\n            'auto',\n            'full',\n            'dvw',\n            'dvh',\n            'lvw',\n            'lvh',\n            'svw',\n            'svh',\n            'min',\n            'max',\n            'fit',\n            ...scaleUnambiguousSpacing(),\n        ] as const\n    const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue] as const\n    const scaleBgPosition = () =>\n        [\n            ...scalePosition(),\n            isArbitraryVariablePosition,\n            isArbitraryPosition,\n            { position: [isArbitraryVariable, isArbitraryValue] },\n        ] as const\n    const scaleBgRepeat = () => ['no-repeat', { repeat: ['', 'x', 'y', 'space', 'round'] }] as const\n    const scaleBgSize = () =>\n        [\n            'auto',\n            'cover',\n            'contain',\n            isArbitraryVariableSize,\n            isArbitrarySize,\n            { size: [isArbitraryVariable, isArbitraryValue] },\n        ] as const\n    const scaleGradientStopPosition = () =>\n        [isPercent, isArbitraryVariableLength, 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 scaleMaskImagePosition = () =>\n        [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition] 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 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 = () => [isFraction, 'full', ...scaleUnambiguousSpacing()] 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: ['px', isNumber],\n            text: [isTshirtSize],\n            'text-shadow': [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': [{ object: scalePositionWithArbitrary() }],\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                        themeContainer,\n                        ...scaleUnambiguousSpacing(),\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: scaleUnambiguousSpacing() }],\n            /**\n             * Gap X\n             * @see https://tailwindcss.com/docs/gap\n             */\n            'gap-x': [{ 'gap-x': scaleUnambiguousSpacing() }],\n            /**\n             * Gap Y\n             * @see https://tailwindcss.com/docs/gap\n             */\n            'gap-y': [{ 'gap-y': scaleUnambiguousSpacing() }],\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: ['', 'last'] }] }],\n            /**\n             * Align Self\n             * @see https://tailwindcss.com/docs/align-self\n             */\n            'align-self': [\n                { self: ['auto', ...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] },\n            ],\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: scaleUnambiguousSpacing() }],\n            /**\n             * Padding X\n             * @see https://tailwindcss.com/docs/padding\n             */\n            px: [{ px: scaleUnambiguousSpacing() }],\n            /**\n             * Padding Y\n             * @see https://tailwindcss.com/docs/padding\n             */\n            py: [{ py: scaleUnambiguousSpacing() }],\n            /**\n             * Padding Start\n             * @see https://tailwindcss.com/docs/padding\n             */\n            ps: [{ ps: scaleUnambiguousSpacing() }],\n            /**\n             * Padding End\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pe: [{ pe: scaleUnambiguousSpacing() }],\n            /**\n             * Padding Top\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pt: [{ pt: scaleUnambiguousSpacing() }],\n            /**\n             * Padding Right\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pr: [{ pr: scaleUnambiguousSpacing() }],\n            /**\n             * Padding Bottom\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pb: [{ pb: scaleUnambiguousSpacing() }],\n            /**\n             * Padding Left\n             * @see https://tailwindcss.com/docs/padding\n             */\n            pl: [{ pl: scaleUnambiguousSpacing() }],\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             * Size\n             * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n             */\n            size: [{ size: scaleSizing() }],\n            /**\n             * Width\n             * @see https://tailwindcss.com/docs/width\n             */\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', 'lh', ...scaleSizing()] }],\n            /**\n             * Min-Height\n             * @see https://tailwindcss.com/docs/min-height\n             */\n            'min-h': [{ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] }],\n            /**\n             * Max-Height\n             * @see https://tailwindcss.com/docs/max-height\n             */\n            'max-h': [{ 'max-h': ['screen', 'lh', ...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                        /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n                        themeLeading,\n                        ...scaleUnambiguousSpacing(),\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: 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             * Overflow Wrap\n             * @see https://tailwindcss.com/docs/overflow-wrap\n             */\n            wrap: [{ wrap: ['break-word', 'anywhere', 'normal'] }],\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': [{ bg: scaleBgPosition() }],\n            /**\n             * Background Repeat\n             * @see https://tailwindcss.com/docs/background-repeat\n             */\n            'bg-repeat': [{ bg: scaleBgRepeat() }],\n            /**\n             * Background Size\n             * @see https://tailwindcss.com/docs/background-size\n             */\n            'bg-size': [{ bg: scaleBgSize() }],\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: scaleColor() }],\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                        themeInsetShadow,\n                        isArbitraryVariableShadow,\n                        isArbitraryShadow,\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             * Text Shadow\n             * @see https://tailwindcss.com/docs/text-shadow\n             */\n            'text-shadow': [\n                {\n                    'text-shadow': [\n                        'none',\n                        themeTextShadow,\n                        isArbitraryVariableShadow,\n                        isArbitraryShadow,\n                    ],\n                },\n            ],\n            /**\n             * Text Shadow Color\n             * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n             */\n            'text-shadow-color': [{ 'text-shadow': 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             * Mask Clip\n             * @see https://tailwindcss.com/docs/mask-clip\n             */\n            'mask-clip': [\n                { 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n                'mask-no-clip',\n            ],\n            /**\n             * Mask Composite\n             * @see https://tailwindcss.com/docs/mask-composite\n             */\n            'mask-composite': [{ mask: ['add', 'subtract', 'intersect', 'exclude'] }],\n            /**\n             * Mask Image\n             * @see https://tailwindcss.com/docs/mask-image\n             */\n            'mask-image-linear-pos': [{ 'mask-linear': [isNumber] }],\n            'mask-image-linear-from-pos': [{ 'mask-linear-from': scaleMaskImagePosition() }],\n            'mask-image-linear-to-pos': [{ 'mask-linear-to': scaleMaskImagePosition() }],\n            'mask-image-linear-from-color': [{ 'mask-linear-from': scaleColor() }],\n            'mask-image-linear-to-color': [{ 'mask-linear-to': scaleColor() }],\n            'mask-image-t-from-pos': [{ 'mask-t-from': scaleMaskImagePosition() }],\n            'mask-image-t-to-pos': [{ 'mask-t-to': scaleMaskImagePosition() }],\n            'mask-image-t-from-color': [{ 'mask-t-from': scaleColor() }],\n            'mask-image-t-to-color': [{ 'mask-t-to': scaleColor() }],\n            'mask-image-r-from-pos': [{ 'mask-r-from': scaleMaskImagePosition() }],\n            'mask-image-r-to-pos': [{ 'mask-r-to': scaleMaskImagePosition() }],\n            'mask-image-r-from-color': [{ 'mask-r-from': scaleColor() }],\n            'mask-image-r-to-color': [{ 'mask-r-to': scaleColor() }],\n            'mask-image-b-from-pos': [{ 'mask-b-from': scaleMaskImagePosition() }],\n            'mask-image-b-to-pos': [{ 'mask-b-to': scaleMaskImagePosition() }],\n            'mask-image-b-from-color': [{ 'mask-b-from': scaleColor() }],\n            'mask-image-b-to-color': [{ 'mask-b-to': scaleColor() }],\n            'mask-image-l-from-pos': [{ 'mask-l-from': scaleMaskImagePosition() }],\n            'mask-image-l-to-pos': [{ 'mask-l-to': scaleMaskImagePosition() }],\n            'mask-image-l-from-color': [{ 'mask-l-from': scaleColor() }],\n            'mask-image-l-to-color': [{ 'mask-l-to': scaleColor() }],\n            'mask-image-x-from-pos': [{ 'mask-x-from': scaleMaskImagePosition() }],\n            'mask-image-x-to-pos': [{ 'mask-x-to': scaleMaskImagePosition() }],\n            'mask-image-x-from-color': [{ 'mask-x-from': scaleColor() }],\n            'mask-image-x-to-color': [{ 'mask-x-to': scaleColor() }],\n            'mask-image-y-from-pos': [{ 'mask-y-from': scaleMaskImagePosition() }],\n            'mask-image-y-to-pos': [{ 'mask-y-to': scaleMaskImagePosition() }],\n            'mask-image-y-from-color': [{ 'mask-y-from': scaleColor() }],\n            'mask-image-y-to-color': [{ 'mask-y-to': scaleColor() }],\n            'mask-image-radial': [{ 'mask-radial': [isArbitraryVariable, isArbitraryValue] }],\n            'mask-image-radial-from-pos': [{ 'mask-radial-from': scaleMaskImagePosition() }],\n            'mask-image-radial-to-pos': [{ 'mask-radial-to': scaleMaskImagePosition() }],\n            'mask-image-radial-from-color': [{ 'mask-radial-from': scaleColor() }],\n            'mask-image-radial-to-color': [{ 'mask-radial-to': scaleColor() }],\n            'mask-image-radial-shape': [{ 'mask-radial': ['circle', 'ellipse'] }],\n            'mask-image-radial-size': [\n                { 'mask-radial': [{ closest: ['side', 'corner'], farthest: ['side', 'corner'] }] },\n            ],\n            'mask-image-radial-pos': [{ 'mask-radial-at': scalePosition() }],\n            'mask-image-conic-pos': [{ 'mask-conic': [isNumber] }],\n            'mask-image-conic-from-pos': [{ 'mask-conic-from': scaleMaskImagePosition() }],\n            'mask-image-conic-to-pos': [{ 'mask-conic-to': scaleMaskImagePosition() }],\n            'mask-image-conic-from-color': [{ 'mask-conic-from': scaleColor() }],\n            'mask-image-conic-to-color': [{ 'mask-conic-to': scaleColor() }],\n            /**\n             * Mask Mode\n             * @see https://tailwindcss.com/docs/mask-mode\n             */\n            'mask-mode': [{ mask: ['alpha', 'luminance', 'match'] }],\n            /**\n             * Mask Origin\n             * @see https://tailwindcss.com/docs/mask-origin\n             */\n            'mask-origin': [\n                { 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n            ],\n            /**\n             * Mask Position\n             * @see https://tailwindcss.com/docs/mask-position\n             */\n            'mask-position': [{ mask: scaleBgPosition() }],\n            /**\n             * Mask Repeat\n             * @see https://tailwindcss.com/docs/mask-repeat\n             */\n            'mask-repeat': [{ mask: scaleBgRepeat() }],\n            /**\n             * Mask Size\n             * @see https://tailwindcss.com/docs/mask-size\n             */\n            'mask-size': [{ mask: scaleBgSize() }],\n            /**\n             * Mask Type\n             * @see https://tailwindcss.com/docs/mask-type\n             */\n            'mask-type': [{ 'mask-type': ['alpha', 'luminance'] }],\n            /**\n             * Mask Image\n             * @see https://tailwindcss.com/docs/mask-image\n             */\n            'mask-image': [{ mask: ['none', isArbitraryVariable, isArbitraryValue] }],\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                        isArbitraryVariableShadow,\n                        isArbitraryShadow,\n                    ],\n                },\n            ],\n            /**\n             * Drop Shadow Color\n             * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n             */\n            'drop-shadow-color': [{ 'drop-shadow': scaleColor() }],\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': scalePositionWithArbitrary() }],\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: scalePositionWithArbitrary() }],\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-x',\n                'border-w-y',\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-x',\n                'border-color-y',\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            '*',\n            '**',\n            'after',\n            'backdrop',\n            'before',\n            'details-content',\n            'file',\n            'first-letter',\n            'first-line',\n            'marker',\n            'placeholder',\n            'selection',\n        ],\n    } as const satisfies Config<DefaultClassGroupIds, DefaultThemeGroupIds>\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\n\nexport const twMerge = createTailwindMerge(getDefaultConfig)\n","export const StegaError = {\n  DECODE_FAILED: 'STEGA_DECODE_FAILED',\n  INVALID_FORMAT: 'STEGA_INVALID_FORMAT',\n  DOM_MANIPULATION_FAILED: 'DOM_MANIPULATION_FAILED',\n  CONTEXT_NOT_FOUND: 'CONTEXT_NOT_FOUND',\n} as const;\n\nexport type StegaErrorType = (typeof StegaError)[keyof typeof StegaError];\n\n// Define specific types for error additional data\nexport interface ErrorAdditionalData {\n  input?: string;\n  element?: HTMLElement;\n  context?: string;\n  [key: string]: string | HTMLElement | undefined;\n}\n\nexport interface ErrorInfo {\n  type: StegaErrorType;\n  context: string;\n  message: string;\n  timestamp: string;\n  stack?: string;\n  additionalData?: ErrorAdditionalData;\n}\n\nexport function createErrorInfo(\n  type: StegaErrorType,\n  context: string,\n  error: Error,\n  additionalData?: ErrorAdditionalData\n): ErrorInfo {\n  return {\n    type,\n    context,\n    message: error.message,\n    timestamp: new Date().toISOString(),\n    stack: error.stack,\n    additionalData,\n  };\n}\n\nexport function handleStegaError(\n  error: Error,\n  context: string,\n  additionalData?: ErrorAdditionalData\n) {\n  const errorInfo = createErrorInfo(\n    StegaError.DECODE_FAILED,\n    context,\n    error,\n    additionalData\n  );\n\n  console.error('Stega Error:', errorInfo);\n\n  // In production, you might want to send this to an error tracking service\n  if (process.env.NODE_ENV === 'production') {\n    // sendToErrorTrackingService(errorInfo);\n  }\n\n  return errorInfo;\n}\n\nexport function handleDOMError(error: Error, context: string) {\n  const errorInfo = createErrorInfo(\n    StegaError.DOM_MANIPULATION_FAILED,\n    context,\n    error\n  );\n\n  console.error('DOM Error:', errorInfo);\n  return errorInfo;\n}\n\nexport function handleContextError(contextName: string) {\n  const error = new Error(`${contextName} must be used within its provider`);\n  const errorInfo = createErrorInfo(\n    StegaError.CONTEXT_NOT_FOUND,\n    contextName,\n    error\n  );\n\n  console.error('Context Error:', errorInfo);\n  throw error;\n}\n","import { handleDOMError } from './errors';\n\nexport class DOMService {\n  /**\n   * Creates an HTML element with specified tag and class name\n   */\n  static createElement(tag: string, className: string): HTMLElement {\n    try {\n      const element = document.createElement(tag);\n      element.className = className;\n      return element;\n    } catch (error) {\n      handleDOMError(error as Error, 'createElement');\n      throw error;\n    }\n  }\n\n  /**\n   * Appends an element to the document body\n   */\n  static appendToBody(element: HTMLElement): void {\n    try {\n      document.body.appendChild(element);\n    } catch (error) {\n      handleDOMError(error as Error, 'appendToBody');\n      throw error;\n    }\n  }\n\n  /**\n   * Removes an element from the document body\n   */\n  static removeFromBody(element: HTMLElement): void {\n    try {\n      if (element.parentNode) {\n        element.parentNode.removeChild(element);\n      }\n    } catch (error) {\n      handleDOMError(error as Error, 'removeFromBody');\n      throw error;\n    }\n  }\n\n  /**\n   * Sets multiple CSS properties on an element\n   */\n  static setElementStyles(\n    element: HTMLElement,\n    styles: Record<string, string>\n  ): void {\n    try {\n      Object.entries(styles).forEach(([property, value]) => {\n        element.style.setProperty(property, value);\n      });\n    } catch (error) {\n      handleDOMError(error as Error, 'setElementStyles');\n      throw error;\n    }\n  }\n\n  /**\n   * Gets the bounding rectangle of an element\n   */\n  static getElementRect(element: HTMLElement): DOMRect {\n    try {\n      return element.getBoundingClientRect();\n    } catch (error) {\n      handleDOMError(error as Error, 'getElementRect');\n      throw error;\n    }\n  }\n\n  /**\n   * Checks if an element is in the viewport\n   */\n  static isElementInViewport(element: HTMLElement): boolean {\n    try {\n      const rect = this.getElementRect(element);\n      return (\n        rect.top >= 0 &&\n        rect.left >= 0 &&\n        rect.bottom <=\n          (window.innerHeight || document.documentElement.clientHeight) &&\n        rect.right <=\n          (window.innerWidth || document.documentElement.clientWidth)\n      );\n    } catch (error) {\n      handleDOMError(error as Error, 'isElementInViewport');\n      return false;\n    }\n  }\n\n  /**\n   * Calculates distance between two points\n   */\n  static calculateDistance(\n    x1: number,\n    y1: number,\n    x2: number,\n    y2: number\n  ): number {\n    return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n  }\n\n  /**\n   * Finds the closest element to a point from a list of elements\n   */\n  static findClosestElement(\n    pointX: number,\n    pointY: number,\n    elements: NodeListOf<Element>\n  ): HTMLElement | null {\n    try {\n      let closestElement: HTMLElement | null = null;\n      let minDistance = Infinity;\n\n      elements.forEach(element => {\n        const rect = this.getElementRect(element as HTMLElement);\n        const distance = this.calculateDistance(\n          pointX,\n          pointY,\n          rect.left + rect.width / 2,\n          rect.top + rect.height / 2\n        );\n\n        if (distance < minDistance) {\n          minDistance = distance;\n          closestElement = element as HTMLElement;\n        }\n      });\n\n      return closestElement;\n    } catch (error) {\n      handleDOMError(error as Error, 'findClosestElement');\n      return null;\n    }\n  }\n\n  /**\n   * Safely adds event listeners\n   */\n  static addEventListener(\n    element: EventTarget,\n    event: string,\n    handler: EventListener,\n    options?: AddEventListenerOptions\n  ): void {\n    try {\n      element.addEventListener(event, handler, options);\n    } catch (error) {\n      handleDOMError(error as Error, 'addEventListener');\n      throw error;\n    }\n  }\n\n  /**\n   * Safely removes event listeners\n   */\n  static removeEventListener(\n    element: EventTarget,\n    event: string,\n    handler: EventListener,\n    options?: EventListenerOptions\n  ): void {\n    try {\n      element.removeEventListener(event, handler, options);\n    } catch (error) {\n      handleDOMError(error as Error, 'removeEventListener');\n      throw error;\n    }\n  }\n}\n","/**\n * Debug utility for Prepr Next.js package\n * Provides centralized debug logging with performance optimizations\n */\n\n// Define specific types for debug arguments\nexport type DebugArg = string | number | boolean | null | undefined | object;\n\ninterface DebugOptions {\n  enabled?: boolean;\n  prefix?: string;\n}\n\nclass DebugLogger {\n  private options: DebugOptions;\n\n  constructor(options: DebugOptions) {\n    this.options = {\n      prefix: '[Prepr]',\n      ...options,\n    };\n  }\n\n  /**\n   * Check if debug is enabled - checks both local and global state\n   */\n  private isEnabled(): boolean {\n    // If this logger has a local enabled state, use it\n    if (this.options.enabled !== undefined) {\n      return this.options.enabled;\n    }\n\n    // Otherwise, check the global logger state\n    return globalDebugLogger?.options?.enabled ?? false;\n  }\n\n  /**\n   * Log a debug message if debug is enabled\n   */\n  log(message: string, ...args: DebugArg[]): void {\n    if (!this.isEnabled()) return;\n\n    const prefix = this.options.prefix;\n    console.log(`${prefix} ${message}`, ...args);\n  }\n\n  /**\n   * Log a debug warning if debug is enabled\n   */\n  warn(message: string, ...args: DebugArg[]): void {\n    if (!this.isEnabled()) return;\n\n    const prefix = this.options.prefix;\n    console.warn(`${prefix} ${message}`, ...args);\n  }\n\n  /**\n   * Log a debug error if debug is enabled\n   */\n  error(message: string, ...args: DebugArg[]): void {\n    if (!this.isEnabled()) return;\n\n    const prefix = this.options.prefix;\n    console.error(`${prefix} ${message}`, ...args);\n  }\n\n  /**\n   * Create a scoped logger with additional context\n   */\n  scope(scopeName: string): DebugLogger {\n    return new DebugLogger({\n      ...this.options,\n      prefix: `${this.options.prefix}[${scopeName}]`,\n    });\n  }\n}\n\n// Global debug instance\nlet globalDebugLogger: DebugLogger | null = null;\n\n/**\n * Initialize the debug logger\n */\nexport function initDebugLogger(enabled: boolean = false): void {\n  globalDebugLogger = new DebugLogger({ enabled });\n}\n\n/**\n * Get the debug logger instance\n */\nexport function getDebugLogger(): DebugLogger {\n  if (!globalDebugLogger) {\n    // Fallback to disabled logger if not initialized\n    globalDebugLogger = new DebugLogger({ enabled: false });\n  }\n  return globalDebugLogger;\n}\n\n/**\n * Convenience function for logging\n */\nexport function debugLog(message: string, ...args: DebugArg[]): void {\n  getDebugLogger().log(message, ...args);\n}\n\n/**\n * Convenience function for warning\n */\nexport function debugWarn(message: string, ...args: DebugArg[]): void {\n  getDebugLogger().warn(message, ...args);\n}\n\n/**\n * Convenience function for errors\n */\nexport function debugError(message: string, ...args: DebugArg[]): void {\n  getDebugLogger().error(message, ...args);\n}\n\n/**\n * Create a scoped debug logger that dynamically checks global debug state\n */\nexport function createScopedLogger(scopeName: string): DebugLogger {\n  // Create a scoped logger without its own enabled state\n  // This allows it to dynamically check the global logger state\n  return new DebugLogger({\n    prefix: `[Prepr][${scopeName}]`,\n  });\n}\n","// Performance utilities\n\n/**\n * Throttled function with cancellation support\n */\nexport interface ThrottledFunction<T extends (...args: any[]) => any> {\n  (...args: Parameters<T>): void;\n  cancel(): void;\n}\n\n/**\n * Improved throttle function with better memory management and cancellation\n * @param func - The function to throttle\n * @param delay - The delay in milliseconds\n * @returns Throttled function with cancel method\n */\nexport function throttle<T extends (...args: any[]) => any>(\n  func: T,\n  delay: number\n): ThrottledFunction<T> {\n  let timeoutId: NodeJS.Timeout | null = null;\n  let lastExecTime = 0;\n\n  const throttledFunc = ((...args: Parameters<T>) => {\n    const currentTime = Date.now();\n    const timeSinceLastExec = currentTime - lastExecTime;\n\n    if (timeSinceLastExec >= delay) {\n      func(...args);\n      lastExecTime = currentTime;\n    } else {\n      if (timeoutId) {\n        clearTimeout(timeoutId);\n      }\n      timeoutId = setTimeout(() => {\n        func(...args);\n        lastExecTime = Date.now();\n        timeoutId = null;\n      }, delay - timeSinceLastExec);\n    }\n  }) as ThrottledFunction<T>;\n\n  throttledFunc.cancel = () => {\n    if (timeoutId) {\n      clearTimeout(timeoutId);\n      timeoutId = null;\n    }\n  };\n\n  return throttledFunc;\n}\n\n/**\n * Debounce function with cancellation support\n * @param func - The function to debounce\n * @param delay - The delay in milliseconds\n * @returns Debounced function with cancel method\n */\nexport function debounce<T extends (...args: any[]) => any>(\n  func: T,\n  delay: number\n): ThrottledFunction<T> {\n  let timeoutId: NodeJS.Timeout | null = null;\n\n  const debouncedFunc = ((...args: Parameters<T>) => {\n    if (timeoutId) {\n      clearTimeout(timeoutId);\n    }\n    timeoutId = setTimeout(() => {\n      func(...args);\n      timeoutId = null;\n    }, delay);\n  }) as ThrottledFunction<T>;\n\n  debouncedFunc.cancel = () => {\n    if (timeoutId) {\n      clearTimeout(timeoutId);\n      timeoutId = null;\n    }\n  };\n\n  return debouncedFunc;\n}\n\n// Simple DOM element cache for querySelectorAll\nexport function createElementCache<T extends Element = Element>(\n  query: string,\n  ttl: number = 1000\n) {\n  let cache: NodeListOf<T> | null = null;\n  let lastCacheTime = 0;\n  return () => {\n    const now = Date.now();\n    if (!cache || now - lastCacheTime > ttl) {\n      cache = document.querySelectorAll<T>(query);\n      lastCacheTime = now;\n    }\n    return cache;\n  };\n}\n","import { ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport { PreprEventType } from '../types';\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n\n// Define specific types for Prepr events\nexport interface PreprEventData {\n  readonly segment?: string;\n  readonly variant?: string;\n  readonly editMode?: boolean;\n  readonly [key: string]: string | boolean | number | undefined;\n}\n\n/**\n * Sends a Prepr event to both the current window and parent window\n * @param event - The event type to send\n * @param data - Optional event data\n */\nexport function sendPreprEvent(\n  event: PreprEventType,\n  data?: PreprEventData\n): void {\n  if (typeof window !== 'undefined') {\n    const message = {\n      name: 'prepr_preview_bar',\n      event,\n      ...data,\n    };\n\n    // Send to current window for local event handling\n    window.dispatchEvent(\n      new CustomEvent('prepr_preview_bar', { detail: message })\n    );\n\n    // Send to parent window if available\n    if (window.parent && window.parent !== window) {\n      window.parent.postMessage(message, '*');\n    }\n  }\n}\n\n// Export error handling utilities\nexport * from './errors';\n\n// Export DOM service\nexport * from './dom';\n\n// Export debug utilities\nexport * from './debug';\n\n// Export performance utilities\nexport * from './performance';\n"]}