8 lines
166 KiB
Plaintext
8 lines
166 KiB
Plaintext
{
|
|
"version": 3,
|
|
"sources": ["../../tailwind-merge/src/lib/utils.ts", "../../tailwind-merge/src/lib/class-group-utils.ts", "../../tailwind-merge/src/lib/lru-cache.ts", "../../tailwind-merge/src/lib/parse-class-name.ts", "../../tailwind-merge/src/lib/sort-modifiers.ts", "../../tailwind-merge/src/lib/config-utils.ts", "../../tailwind-merge/src/lib/merge-classlist.ts", "../../tailwind-merge/src/lib/tw-join.ts", "../../tailwind-merge/src/lib/create-tailwind-merge.ts", "../../tailwind-merge/src/lib/from-theme.ts", "../../tailwind-merge/src/lib/validators.ts", "../../tailwind-merge/src/lib/default-config.ts", "../../tailwind-merge/src/lib/merge-configs.ts", "../../tailwind-merge/src/lib/extend-tailwind-merge.ts", "../../tailwind-merge/src/lib/tw-merge.ts"],
|
|
"sourcesContent": ["/**\n * Concatenates two arrays faster than the array spread operator.\n */\nexport const concatArrays = <T, U>(\n array1: readonly T[],\n array2: readonly U[],\n): readonly (T | U)[] => {\n // Pre-allocate for better V8 optimization\n const combinedArray: (T | U)[] = new Array(array1.length + array2.length)\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i]!\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i]!\n }\n return combinedArray\n}\n", "import {\n AnyClassGroupIds,\n AnyConfig,\n AnyThemeGroupIds,\n ClassGroup,\n ClassValidator,\n Config,\n ThemeGetter,\n ThemeObject,\n} from './types'\nimport { concatArrays } from './utils'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[] | null\n classGroupId: AnyClassGroupIds | undefined // Always define optional props for consistent shape\n}\n\ninterface ClassValidatorObject {\n classGroupId: AnyClassGroupIds\n validator: ClassValidator\n}\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (\n classGroupId: AnyClassGroupIds,\n validator: ClassValidator,\n): ClassValidatorObject => ({\n classGroupId,\n validator,\n})\n\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (\n nextPart: Map<string, ClassPartObject> = new Map(),\n validators: ClassValidatorObject[] | null = null,\n classGroupId?: AnyClassGroupIds,\n): ClassPartObject => ({\n nextPart,\n validators,\n classGroupId,\n})\n\nconst CLASS_PART_SEPARATOR = '-'\n\nconst EMPTY_CONFLICTS: readonly AnyClassGroupIds[] = []\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n const classMap = createClassMap(config)\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n const getClassGroupId = (className: string) => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className)\n }\n\n const classParts = className.split(CLASS_PART_SEPARATOR)\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0\n return getGroupRecursive(classParts, startIndex, classMap)\n }\n\n const getConflictingClassGroupIds = (\n classGroupId: AnyClassGroupIds,\n hasPostfixModifier: boolean,\n ): readonly AnyClassGroupIds[] => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId]\n const baseConflicts = conflictingClassGroups[classGroupId]\n\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts)\n }\n // Only modifier conflicts\n return modifierConflicts\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS\n }\n\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nconst getGroupRecursive = (\n classParts: string[],\n startIndex: number,\n classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n const classPathsLength = classParts.length - startIndex\n if (classPathsLength === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[startIndex]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject)\n if (result) return result\n }\n\n const validators = classPartObject.validators\n if (validators === null) {\n return undefined\n }\n\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest =\n startIndex === 0\n ? classParts.join(CLASS_PART_SEPARATOR)\n : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR)\n const validatorsLength = validators.length\n\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i]!\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId\n }\n }\n\n return undefined\n}\n\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = (className: string): AnyClassGroupIds | undefined =>\n className.slice(1, -1).indexOf(':') === -1\n ? undefined\n : (() => {\n const content = className.slice(1, -1)\n const colonIndex = content.indexOf(':')\n const property = content.slice(0, colonIndex)\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined\n })()\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config<AnyClassGroupIds, AnyThemeGroupIds>) => {\n const { theme, classGroups } = config\n return processClassGroups(classGroups, theme)\n}\n\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (\n classGroups: Record<AnyClassGroupIds, ClassGroup<AnyThemeGroupIds>>,\n theme: ThemeObject<AnyThemeGroupIds>,\n): ClassPartObject => {\n const classMap = createClassPartObject()\n\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId]!\n processClassesRecursively(group, 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 const len = classGroup.length\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i]!\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme)\n }\n}\n\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (\n classDefinition: ClassGroup<AnyThemeGroupIds>[number],\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId)\n return\n }\n\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme)\n return\n }\n\n processObjectDefinition(\n classDefinition as Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject,\n classGroupId,\n theme,\n )\n}\n\nconst processStringDefinition = (\n classDefinition: string,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n) => {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n}\n\nconst processFunctionDefinition = (\n classDefinition: Function,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme)\n return\n }\n\n if (classPartObject.validators === null) {\n classPartObject.validators = []\n }\n classPartObject.validators.push(\n createClassValidatorObject(classGroupId, classDefinition as ClassValidator),\n )\n}\n\nconst processObjectDefinition = (\n classDefinition: Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const entries = Object.entries(classDefinition)\n const len = entries.length\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i]!\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme)\n }\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string): ClassPartObject => {\n let current = classPartObject\n const parts = path.split(CLASS_PART_SEPARATOR)\n const len = parts.length\n\n for (let i = 0; i < len; i++) {\n const part = parts[i]!\n\n let next = current.nextPart.get(part)\n if (!next) {\n next = createClassPartObject()\n current.nextPart.set(part, next)\n }\n current = next\n }\n\n return current\n}\n\n// Type guard maintains monomorphic check\nconst isThemeGetter = (func: Function): func is ThemeGetter =>\n 'isThemeGetter' in func && (func as ThemeGetter).isThemeGetter === true\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 extends string, Value> {\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\n// LRU cache implementation using plain objects for simplicity\nexport const createLruCache = <Key extends string, Value>(\n maxCacheSize: number,\n): LruCache<Key, Value> => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {},\n }\n }\n\n let cacheSize = 0\n let cache: Record<Key, Value> = Object.create(null)\n let previousCache: Record<Key, Value> = Object.create(null)\n\n const update = (key: Key, value: Value) => {\n cache[key] = value\n cacheSize++\n\n if (cacheSize > maxCacheSize) {\n cacheSize = 0\n previousCache = cache\n cache = Object.create(null)\n }\n }\n\n return {\n get(key) {\n let value = cache[key]\n\n if (value !== undefined) {\n return value\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value)\n return value\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value\n } else {\n update(key, value)\n }\n },\n }\n}\n", "import { AnyConfig, ParsedClassName } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\n\nconst MODIFIER_SEPARATOR = ':'\nconst EMPTY_MODIFIERS: string[] = []\n\n// Pre-allocated result object shape for consistency\nconst createResultObject = (\n modifiers: string[],\n hasImportantModifier: boolean,\n baseClassName: string,\n maybePostfixModifierPosition?: number,\n isExternal?: boolean,\n): ParsedClassName => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal,\n})\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 // Use simple array with push for better performance\n const modifiers: string[] = []\n\n let bracketDepth = 0\n let parenDepth = 0\n let modifierStart = 0\n let postfixModifierPosition: number | undefined\n\n const len = className.length\n for (let index = 0; index < len; index++) {\n const 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 + 1\n continue\n }\n\n if (currentCharacter === '/') {\n postfixModifierPosition = index\n continue\n }\n }\n\n if (currentCharacter === '[') bracketDepth++\n else if (currentCharacter === ']') bracketDepth--\n else if (currentCharacter === '(') parenDepth++\n else if (currentCharacter === ')') parenDepth--\n }\n\n const baseClassNameWithImportantModifier =\n modifiers.length === 0 ? className : className.slice(modifierStart)\n\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier\n let hasImportantModifier = false\n\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1)\n hasImportantModifier = true\n } else if (\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 baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)\n ) {\n baseClassName = baseClassNameWithImportantModifier.slice(1)\n hasImportantModifier = true\n }\n\n const maybePostfixModifierPosition =\n postfixModifierPosition && postfixModifierPosition > modifierStart\n ? postfixModifierPosition - modifierStart\n : undefined\n\n return createResultObject(\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: string) =>\n className.startsWith(fullPrefix)\n ? parseClassNameOriginal(className.slice(fullPrefix.length))\n : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true)\n }\n\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n experimentalParseClassName({ className, parseClassName: parseClassNameOriginal })\n }\n\n return parseClassName\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 // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map<string, number>()\n\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index) // High weights for sensitive mods\n })\n\n return (modifiers: readonly string[]): string[] => {\n const result: string[] = []\n let currentSegment: string[] = []\n\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i]!\n\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '['\n const isOrderSensitive = modifierWeights.has(modifier)\n\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n currentSegment = []\n }\n result.push(modifier)\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier)\n }\n }\n\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n }\n\n return result\n }\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 // Fast path: skip sorting for empty or single modifier\n const variantModifier =\n modifiers.length === 0\n ? ''\n : modifiers.length === 1\n ? modifiers[0]!\n : sortModifiers(modifiers).join(':')\n\n const modifierId = hasImportantModifier\n ? variantModifier + IMPORTANT_MODIFIER\n : variantModifier\n\n const classId = modifierId + classGroupId\n\n if (classGroupsInConflict.indexOf(classId) > -1) {\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 const twJoin = (...classLists: ClassNameValue[]): string => {\n let index = 0\n let argument: ClassNameValue\n let resolvedValue: string\n let string = ''\n\n while (index < classLists.length) {\n if ((argument = classLists[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): string => {\n // Fast path for strings\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 const 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: (classList: string) => string\n\n const 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 const 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 functionToCall = initTailwindMerge\n\n return (...args: ClassNameValue[]) => functionToCall(twJoin(...args))\n}\n", "import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nconst fallbackThemeArr: ThemeObject<DefaultThemeGroupIds>[DefaultThemeGroupIds] = []\n\nexport const fromTheme = <\n AdditionalThemeGroupIds extends string = never,\n DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(\n key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>,\n): ThemeGetter => {\n const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>\n theme[key] || fallbackThemeArr\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 isArbitraryWeight = (value: string) => getIsArbitraryValue(value, isLabelWeight, isAny)\n\nexport const isArbitraryFamilyName = (value: string) =>\n getIsArbitraryValue(value, isLabelFamilyName, isNever)\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\nexport const isArbitraryVariableWeight = (value: string) =>\n getIsArbitraryVariable(value, isLabelWeight, 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 isLabelWeight = (label: string) => label === 'number' || label === 'weight'\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 isArbitraryFamilyName,\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 isArbitraryVariableWeight,\n isArbitraryWeight,\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': [\n {\n font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight],\n },\n ],\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': [\n { font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont] },\n ],\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 { AnyConfig, ConfigExtension, NoInfer } from './types'\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nexport const mergeConfigs = <ClassGroupIds extends string, ThemeGroupIds extends string = never>(\n baseConfig: AnyConfig,\n {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {},\n }: ConfigExtension<ClassGroupIds, ThemeGroupIds>,\n) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize)\n overrideProperty(baseConfig, 'prefix', prefix)\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName)\n\n overrideConfigProperties(baseConfig.theme, override.theme)\n overrideConfigProperties(baseConfig.classGroups, override.classGroups)\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups)\n overrideConfigProperties(\n baseConfig.conflictingClassGroupModifiers,\n override.conflictingClassGroupModifiers,\n )\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers)\n\n mergeConfigProperties(baseConfig.theme, extend.theme)\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups)\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups)\n mergeConfigProperties(\n baseConfig.conflictingClassGroupModifiers,\n extend.conflictingClassGroupModifiers,\n )\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers')\n\n return baseConfig\n}\n\nconst overrideProperty = <T extends object, K extends keyof T>(\n baseObject: T,\n overrideKey: K,\n overrideValue: T[K] | undefined,\n) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue\n }\n}\n\nconst overrideConfigProperties = (\n baseObject: Partial<Record<string, readonly unknown[]>>,\n overrideObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key])\n }\n }\n}\n\nconst mergeConfigProperties = (\n baseObject: Partial<Record<string, readonly unknown[]>>,\n mergeObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key)\n }\n }\n}\n\nconst mergeArrayProperties = <Key extends string>(\n baseObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n mergeObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n key: Key,\n) => {\n const mergeValue = mergeObject[key]\n\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue\n }\n}\n", "import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\nimport { mergeConfigs } from './merge-configs'\nimport { AnyConfig, ConfigExtension, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\n\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\n\nexport const extendTailwindMerge = <\n AdditionalClassGroupIds extends string = never,\n AdditionalThemeGroupIds extends string = never,\n>(\n configExtension:\n | ConfigExtension<\n DefaultClassGroupIds | AdditionalClassGroupIds,\n DefaultThemeGroupIds | AdditionalThemeGroupIds\n >\n | CreateConfigSubsequent,\n ...createConfig: CreateConfigSubsequent[]\n) =>\n typeof configExtension === 'function'\n ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig)\n : createTailwindMerge(\n () => mergeConfigs(getDefaultConfig(), configExtension),\n ...createConfig,\n )\n", "import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\n\nexport const twMerge = createTailwindMerge(getDefaultConfig)\n"],
|
|
"mappings": "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",
|
|
"names": ["concatArrays", "array1", "array2", "combinedArray", "Array", "length", "i", "createClassValidatorObject", "classGroupId", "validator", "createClassPartObject", "nextPart", "Map", "validators", "CLASS_PART_SEPARATOR", "EMPTY_CONFLICTS", "ARBITRARY_PROPERTY_PREFIX", "createClassGroupUtils", "config", "classMap", "createClassMap", "conflictingClassGroups", "conflictingClassGroupModifiers", "getClassGroupId", "className", "startsWith", "endsWith", "getGroupIdForArbitraryProperty", "classParts", "split", "startIndex", "getGroupRecursive", "getConflictingClassGroupIds", "hasPostfixModifier", "modifierConflicts", "baseConflicts", "classPartObject", "classPathsLength", "currentClassPart", "nextClassPartObject", "get", "result", "undefined", "classRest", "join", "slice", "validatorsLength", "validatorObj", "indexOf", "content", "colonIndex", "property", "theme", "classGroups", "processClassGroups", "group", "processClassesRecursively", "classGroup", "len", "classDefinition", "processClassDefinition", "processStringDefinition", "processFunctionDefinition", "processObjectDefinition", "classPartObjectToEdit", "getPart", "isThemeGetter", "push", "entries", "Object", "key", "value", "path", "current", "parts", "part", "next", "set", "func", "createLruCache", "maxCacheSize", "cacheSize", "cache", "create", "previousCache", "update", "IMPORTANT_MODIFIER", "MODIFIER_SEPARATOR", "EMPTY_MODIFIERS", "createResultObject", "modifiers", "hasImportantModifier", "baseClassName", "maybePostfixModifierPosition", "isExternal", "createParseClassName", "prefix", "experimentalParseClassName", "parseClassName", "bracketDepth", "parenDepth", "modifierStart", "postfixModifierPosition", "index", "currentCharacter", "baseClassNameWithImportantModifier", "fullPrefix", "parseClassNameOriginal", "createSortModifiers", "modifierWeights", "orderSensitiveModifiers", "forEach", "mod", "currentSegment", "modifier", "isArbitrary", "isOrderSensitive", "has", "sort", "createConfigUtils", "sortModifiers", "SPLIT_CLASSES_REGEX", "mergeClassList", "classList", "configUtils", "classGroupsInConflict", "classNames", "trim", "originalClassName", "substring", "variantModifier", "modifierId", "classId", "conflictGroups", "twJoin", "classLists", "argument", "resolvedValue", "string", "toValue", "mix", "k", "createTailwindMerge", "createConfigFirst", "createConfigRest", "cacheGet", "cacheSet", "functionToCall", "initTailwindMerge", "reduce", "previousConfig", "createConfigCurrent", "tailwindMerge", "cachedResult", "args", "fallbackThemeArr", "fromTheme", "themeGetter", "arbitraryValueRegex", "arbitraryVariableRegex", "fractionRegex", "tshirtUnitRegex", "lengthUnitRegex", "colorFunctionRegex", "shadowRegex", "imageRegex", "isFraction", "test", "isNumber", "Number", "isNaN", "isInteger", "isPercent", "isTshirtSize", "isAny", "isLengthOnly", "isNever", "isShadow", "isImage", "isAnyNonArbitrary", "isArbitraryValue", "isArbitraryVariable", "isArbitrarySize", "getIsArbitraryValue", "isLabelSize", "isArbitraryLength", "isLabelLength", "isArbitraryNumber", "isLabelNumber", "isArbitraryWeight", "isLabelWeight", "isArbitraryFamilyName", "isLabelFamilyName", "isArbitraryPosition", "isLabelPosition", "isArbitraryImage", "isLabelImage", "isArbitraryShadow", "isLabelShadow", "isArbitraryVariableLength", "getIsArbitraryVariable", "isArbitraryVariableFamilyName", "isArbitraryVariablePosition", "isArbitraryVariableSize", "isArbitraryVariableImage", "isArbitraryVariableShadow", "isArbitraryVariableWeight", "testLabel", "testValue", "exec", "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", "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", "mergeConfigs", "baseConfig", "extend", "override", "overrideProperty", "overrideConfigProperties", "mergeConfigProperties", "mergeArrayProperties", "baseObject", "overrideKey", "overrideValue", "overrideObject", "mergeObject", "mergeValue", "concat", "extendTailwindMerge", "configExtension", "createConfig", "twMerge"]
|
|
}
|