{"version":3,"file":"utils-Dd9-5CFr.cjs","names":[],"sources":["../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/utils.ts"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n  const classMap = createClassMap(config);\n  const {\n    conflictingClassGroups,\n    conflictingClassGroupModifiers\n  } = config;\n  const getClassGroupId = className => {\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 remove it from classParts.\n    if (classParts[0] === '' && classParts.length !== 1) {\n      classParts.shift();\n    }\n    return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n  };\n  const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n    const conflicts = conflictingClassGroups[classGroupId] || [];\n    if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n      return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n    }\n    return conflicts;\n  };\n  return {\n    getClassGroupId,\n    getConflictingClassGroupIds\n  };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n  if (classParts.length === 0) {\n    return classPartObject.classGroupId;\n  }\n  const currentClassPart = classParts[0];\n  const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n  const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n  if (classGroupFromNextClassPart) {\n    return classGroupFromNextClassPart;\n  }\n  if (classPartObject.validators.length === 0) {\n    return undefined;\n  }\n  const classRest = classParts.join(CLASS_PART_SEPARATOR);\n  return classPartObject.validators.find(({\n    validator\n  }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n  if (arbitraryPropertyRegex.test(className)) {\n    const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n    const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n    if (property) {\n      // I use two dots here because one dot is used as prefix for class groups in plugins\n      return 'arbitrary..' + property;\n    }\n  }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n  const {\n    theme,\n    classGroups\n  } = config;\n  const classMap = {\n    nextPart: new Map(),\n    validators: []\n  };\n  for (const classGroupId in classGroups) {\n    processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n  }\n  return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n  classGroup.forEach(classDefinition => {\n    if (typeof classDefinition === 'string') {\n      const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n      classPartObjectToEdit.classGroupId = classGroupId;\n      return;\n    }\n    if (typeof classDefinition === 'function') {\n      if (isThemeGetter(classDefinition)) {\n        processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n        return;\n      }\n      classPartObject.validators.push({\n        validator: classDefinition,\n        classGroupId\n      });\n      return;\n    }\n    Object.entries(classDefinition).forEach(([key, classGroup]) => {\n      processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n    });\n  });\n};\nconst getPart = (classPartObject, path) => {\n  let currentClassPartObject = classPartObject;\n  path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n    if (!currentClassPartObject.nextPart.has(pathPart)) {\n      currentClassPartObject.nextPart.set(pathPart, {\n        nextPart: new Map(),\n        validators: []\n      });\n    }\n    currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n  });\n  return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n  if (maxCacheSize < 1) {\n    return {\n      get: () => undefined,\n      set: () => {}\n    };\n  }\n  let cacheSize = 0;\n  let cache = new Map();\n  let previousCache = new Map();\n  const update = (key, value) => {\n    cache.set(key, value);\n    cacheSize++;\n    if (cacheSize > maxCacheSize) {\n      cacheSize = 0;\n      previousCache = cache;\n      cache = new Map();\n    }\n  };\n  return {\n    get(key) {\n      let value = cache.get(key);\n      if (value !== undefined) {\n        return value;\n      }\n      if ((value = previousCache.get(key)) !== undefined) {\n        update(key, value);\n        return value;\n      }\n    },\n    set(key, value) {\n      if (cache.has(key)) {\n        cache.set(key, value);\n      } else {\n        update(key, value);\n      }\n    }\n  };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n  const {\n    prefix,\n    experimentalParseClassName\n  } = config;\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 => {\n    const modifiers = [];\n    let bracketDepth = 0;\n    let parenDepth = 0;\n    let modifierStart = 0;\n    let postfixModifierPosition;\n    for (let index = 0; index < className.length; index++) {\n      let currentCharacter = className[index];\n      if (bracketDepth === 0 && parenDepth === 0) {\n        if (currentCharacter === MODIFIER_SEPARATOR) {\n          modifiers.push(className.slice(modifierStart, index));\n          modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n          continue;\n        }\n        if (currentCharacter === '/') {\n          postfixModifierPosition = index;\n          continue;\n        }\n      }\n      if (currentCharacter === '[') {\n        bracketDepth++;\n      } else if (currentCharacter === ']') {\n        bracketDepth--;\n      } else if (currentCharacter === '(') {\n        parenDepth++;\n      } else if (currentCharacter === ')') {\n        parenDepth--;\n      }\n    }\n    const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n    const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n    const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n    const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n    return {\n      modifiers,\n      hasImportantModifier,\n      baseClassName,\n      maybePostfixModifierPosition\n    };\n  };\n  if (prefix) {\n    const fullPrefix = prefix + MODIFIER_SEPARATOR;\n    const parseClassNameOriginal = parseClassName;\n    parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n      isExternal: true,\n      modifiers: [],\n      hasImportantModifier: false,\n      baseClassName: className,\n      maybePostfixModifierPosition: undefined\n    };\n  }\n  if (experimentalParseClassName) {\n    const parseClassNameOriginal = parseClassName;\n    parseClassName = className => experimentalParseClassName({\n      className,\n      parseClassName: parseClassNameOriginal\n    });\n  }\n  return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n  if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n    return baseClassName.substring(0, baseClassName.length - 1);\n  }\n  /**\n   * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n   * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n   */\n  if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n    return baseClassName.substring(1);\n  }\n  return baseClassName;\n};\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 */\nconst createSortModifiers = config => {\n  const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n  const sortModifiers = modifiers => {\n    if (modifiers.length <= 1) {\n      return modifiers;\n    }\n    const sortedModifiers = [];\n    let unsortedModifiers = [];\n    modifiers.forEach(modifier => {\n      const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n      if (isPositionSensitive) {\n        sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n        unsortedModifiers = [];\n      } else {\n        unsortedModifiers.push(modifier);\n      }\n    });\n    sortedModifiers.push(...unsortedModifiers.sort());\n    return sortedModifiers;\n  };\n  return sortModifiers;\n};\nconst createConfigUtils = config => ({\n  cache: createLruCache(config.cacheSize),\n  parseClassName: createParseClassName(config),\n  sortModifiers: createSortModifiers(config),\n  ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n  const {\n    parseClassName,\n    getClassGroupId,\n    getConflictingClassGroupIds,\n    sortModifiers\n  } = configUtils;\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 = [];\n  const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n  let result = '';\n  for (let index = classNames.length - 1; index >= 0; index -= 1) {\n    const originalClassName = classNames[index];\n    const {\n      isExternal,\n      modifiers,\n      hasImportantModifier,\n      baseClassName,\n      maybePostfixModifierPosition\n    } = parseClassName(originalClassName);\n    if (isExternal) {\n      result = originalClassName + (result.length > 0 ? ' ' + result : result);\n      continue;\n    }\n    let hasPostfixModifier = !!maybePostfixModifierPosition;\n    let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n    if (!classGroupId) {\n      if (!hasPostfixModifier) {\n        // Not a Tailwind class\n        result = originalClassName + (result.length > 0 ? ' ' + result : result);\n        continue;\n      }\n      classGroupId = getClassGroupId(baseClassName);\n      if (!classGroupId) {\n        // Not a Tailwind class\n        result = originalClassName + (result.length > 0 ? ' ' + result : result);\n        continue;\n      }\n      hasPostfixModifier = false;\n    }\n    const variantModifier = sortModifiers(modifiers).join(':');\n    const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n    const classId = modifierId + classGroupId;\n    if (classGroupsInConflict.includes(classId)) {\n      // Tailwind class omitted due to conflict\n      continue;\n    }\n    classGroupsInConflict.push(classId);\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    // Tailwind class not in conflict\n    result = originalClassName + (result.length > 0 ? ' ' + result : result);\n  }\n  return result;\n};\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 */\nfunction twJoin() {\n  let index = 0;\n  let argument;\n  let resolvedValue;\n  let string = '';\n  while (index < arguments.length) {\n    if (argument = arguments[index++]) {\n      if (resolvedValue = toValue(argument)) {\n        string && (string += ' ');\n        string += resolvedValue;\n      }\n    }\n  }\n  return string;\n}\nconst toValue = mix => {\n  if (typeof mix === 'string') {\n    return mix;\n  }\n  let resolvedValue;\n  let string = '';\n  for (let k = 0; k < mix.length; k++) {\n    if (mix[k]) {\n      if (resolvedValue = toValue(mix[k])) {\n        string && (string += ' ');\n        string += resolvedValue;\n      }\n    }\n  }\n  return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n  let configUtils;\n  let cacheGet;\n  let cacheSet;\n  let functionToCall = initTailwindMerge;\n  function initTailwindMerge(classList) {\n    const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n    configUtils = createConfigUtils(config);\n    cacheGet = configUtils.cache.get;\n    cacheSet = configUtils.cache.set;\n    functionToCall = tailwindMerge;\n    return tailwindMerge(classList);\n  }\n  function tailwindMerge(classList) {\n    const cachedResult = cacheGet(classList);\n    if (cachedResult) {\n      return cachedResult;\n    }\n    const result = mergeClassList(classList, configUtils);\n    cacheSet(classList, result);\n    return result;\n  }\n  return function callTailwindMerge() {\n    return functionToCall(twJoin.apply(null, arguments));\n  };\n}\nconst fromTheme = key => {\n  const themeGetter = theme => theme[key] || [];\n  themeGetter.isThemeGetter = true;\n  return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\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 = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\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.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n  const result = arbitraryValueRegex.exec(value);\n  if (result) {\n    if (result[1]) {\n      return testLabel(result[1]);\n    }\n    return testValue(result[2]);\n  }\n  return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n  const result = arbitraryVariableRegex.exec(value);\n  if (result) {\n    if (result[1]) {\n      return testLabel(result[1]);\n    }\n    return shouldMatchNoLabel;\n  }\n  return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n  __proto__: null,\n  isAny,\n  isAnyNonArbitrary,\n  isArbitraryImage,\n  isArbitraryLength,\n  isArbitraryNumber,\n  isArbitraryPosition,\n  isArbitraryShadow,\n  isArbitrarySize,\n  isArbitraryValue,\n  isArbitraryVariable,\n  isArbitraryVariableFamilyName,\n  isArbitraryVariableImage,\n  isArbitraryVariableLength,\n  isArbitraryVariablePosition,\n  isArbitraryVariableShadow,\n  isArbitraryVariableSize,\n  isFraction,\n  isInteger,\n  isNumber,\n  isPercent,\n  isTshirtSize\n}, Symbol.toStringTag, {\n  value: 'Module'\n});\nconst getDefaultConfig = () => {\n  /**\n   * Theme getters for theme variable namespaces\n   * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\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   * 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  const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n  const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n  'left-top', 'top-right',\n  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n  'right-top', 'bottom-right',\n  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n  'right-bottom', 'bottom-left',\n  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n  'left-bottom'];\n  const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n  const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n  const scaleOverscroll = () => ['auto', 'contain', 'none'];\n  const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n  const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n  const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n  const scaleGridColRowStartAndEnd = () => ['auto', {\n    span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n  }, isInteger, isArbitraryVariable, isArbitraryValue];\n  const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n  const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n  const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n  const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n  const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n  const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n  const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n  const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n    position: [isArbitraryVariable, isArbitraryValue]\n  }];\n  const scaleBgRepeat = () => ['no-repeat', {\n    repeat: ['', 'x', 'y', 'space', 'round']\n  }];\n  const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n    size: [isArbitraryVariable, isArbitraryValue]\n  }];\n  const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n  const scaleRadius = () => [\n  // Deprecated since Tailwind CSS v4.0.0\n  '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n  const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n  const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n  const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n  const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n  const scaleBlur = () => [\n  // Deprecated since Tailwind CSS v4.0.0\n  '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n  const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\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': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\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       * Aspect Ratio\n       * @see https://tailwindcss.com/docs/aspect-ratio\n       */\n      aspect: [{\n        aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\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': [{\n        'break-after': scaleBreak()\n      }],\n      /**\n       * Break Before\n       * @see https://tailwindcss.com/docs/break-before\n       */\n      'break-before': [{\n        'break-before': scaleBreak()\n      }],\n      /**\n       * Break Inside\n       * @see https://tailwindcss.com/docs/break-inside\n       */\n      'break-inside': [{\n        'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n      }],\n      /**\n       * Box Decoration Break\n       * @see https://tailwindcss.com/docs/box-decoration-break\n       */\n      'box-decoration': [{\n        'box-decoration': ['slice', 'clone']\n      }],\n      /**\n       * Box Sizing\n       * @see https://tailwindcss.com/docs/box-sizing\n       */\n      box: [{\n        box: ['border', 'content']\n      }],\n      /**\n       * Display\n       * @see https://tailwindcss.com/docs/display\n       */\n      display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\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: [{\n        float: ['right', 'left', 'none', 'start', 'end']\n      }],\n      /**\n       * Clear\n       * @see https://tailwindcss.com/docs/clear\n       */\n      clear: [{\n        clear: ['left', 'right', 'both', 'none', 'start', 'end']\n      }],\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': [{\n        object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n      }],\n      /**\n       * Object Position\n       * @see https://tailwindcss.com/docs/object-position\n       */\n      'object-position': [{\n        object: scalePositionWithArbitrary()\n      }],\n      /**\n       * Overflow\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      overflow: [{\n        overflow: scaleOverflow()\n      }],\n      /**\n       * Overflow X\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      'overflow-x': [{\n        'overflow-x': scaleOverflow()\n      }],\n      /**\n       * Overflow Y\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      'overflow-y': [{\n        'overflow-y': scaleOverflow()\n      }],\n      /**\n       * Overscroll Behavior\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      overscroll: [{\n        overscroll: scaleOverscroll()\n      }],\n      /**\n       * Overscroll Behavior X\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      'overscroll-x': [{\n        'overscroll-x': scaleOverscroll()\n      }],\n      /**\n       * Overscroll Behavior Y\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      'overscroll-y': [{\n        'overscroll-y': scaleOverscroll()\n      }],\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: [{\n        inset: scaleInset()\n      }],\n      /**\n       * Right / Left\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      'inset-x': [{\n        'inset-x': scaleInset()\n      }],\n      /**\n       * Top / Bottom\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      'inset-y': [{\n        'inset-y': scaleInset()\n      }],\n      /**\n       * Start\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      start: [{\n        start: scaleInset()\n      }],\n      /**\n       * End\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      end: [{\n        end: scaleInset()\n      }],\n      /**\n       * Top\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      top: [{\n        top: scaleInset()\n      }],\n      /**\n       * Right\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      right: [{\n        right: scaleInset()\n      }],\n      /**\n       * Bottom\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      bottom: [{\n        bottom: scaleInset()\n      }],\n      /**\n       * Left\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      left: [{\n        left: scaleInset()\n      }],\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: [{\n        z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n      }],\n      // ------------------------\n      // --- Flexbox and Grid ---\n      // ------------------------\n      /**\n       * Flex Basis\n       * @see https://tailwindcss.com/docs/flex-basis\n       */\n      basis: [{\n        basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n      }],\n      /**\n       * Flex Direction\n       * @see https://tailwindcss.com/docs/flex-direction\n       */\n      'flex-direction': [{\n        flex: ['row', 'row-reverse', 'col', 'col-reverse']\n      }],\n      /**\n       * Flex Wrap\n       * @see https://tailwindcss.com/docs/flex-wrap\n       */\n      'flex-wrap': [{\n        flex: ['nowrap', 'wrap', 'wrap-reverse']\n      }],\n      /**\n       * Flex\n       * @see https://tailwindcss.com/docs/flex\n       */\n      flex: [{\n        flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n      }],\n      /**\n       * Flex Grow\n       * @see https://tailwindcss.com/docs/flex-grow\n       */\n      grow: [{\n        grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Flex Shrink\n       * @see https://tailwindcss.com/docs/flex-shrink\n       */\n      shrink: [{\n        shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Order\n       * @see https://tailwindcss.com/docs/order\n       */\n      order: [{\n        order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Grid Template Columns\n       * @see https://tailwindcss.com/docs/grid-template-columns\n       */\n      'grid-cols': [{\n        'grid-cols': scaleGridTemplateColsRows()\n      }],\n      /**\n       * Grid Column Start / End\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-start-end': [{\n        col: scaleGridColRowStartAndEnd()\n      }],\n      /**\n       * Grid Column Start\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-start': [{\n        'col-start': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Column End\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-end': [{\n        'col-end': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Template Rows\n       * @see https://tailwindcss.com/docs/grid-template-rows\n       */\n      'grid-rows': [{\n        'grid-rows': scaleGridTemplateColsRows()\n      }],\n      /**\n       * Grid Row Start / End\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-start-end': [{\n        row: scaleGridColRowStartAndEnd()\n      }],\n      /**\n       * Grid Row Start\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-start': [{\n        'row-start': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Row End\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-end': [{\n        'row-end': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Auto Flow\n       * @see https://tailwindcss.com/docs/grid-auto-flow\n       */\n      'grid-flow': [{\n        'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n      }],\n      /**\n       * Grid Auto Columns\n       * @see https://tailwindcss.com/docs/grid-auto-columns\n       */\n      'auto-cols': [{\n        'auto-cols': scaleGridAutoColsRows()\n      }],\n      /**\n       * Grid Auto Rows\n       * @see https://tailwindcss.com/docs/grid-auto-rows\n       */\n      'auto-rows': [{\n        'auto-rows': scaleGridAutoColsRows()\n      }],\n      /**\n       * Gap\n       * @see https://tailwindcss.com/docs/gap\n       */\n      gap: [{\n        gap: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Gap X\n       * @see https://tailwindcss.com/docs/gap\n       */\n      'gap-x': [{\n        'gap-x': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Gap Y\n       * @see https://tailwindcss.com/docs/gap\n       */\n      'gap-y': [{\n        'gap-y': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Justify Content\n       * @see https://tailwindcss.com/docs/justify-content\n       */\n      'justify-content': [{\n        justify: [...scaleAlignPrimaryAxis(), 'normal']\n      }],\n      /**\n       * Justify Items\n       * @see https://tailwindcss.com/docs/justify-items\n       */\n      'justify-items': [{\n        'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n      }],\n      /**\n       * Justify Self\n       * @see https://tailwindcss.com/docs/justify-self\n       */\n      'justify-self': [{\n        'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n      }],\n      /**\n       * Align Content\n       * @see https://tailwindcss.com/docs/align-content\n       */\n      'align-content': [{\n        content: ['normal', ...scaleAlignPrimaryAxis()]\n      }],\n      /**\n       * Align Items\n       * @see https://tailwindcss.com/docs/align-items\n       */\n      'align-items': [{\n        items: [...scaleAlignSecondaryAxis(), {\n          baseline: ['', 'last']\n        }]\n      }],\n      /**\n       * Align Self\n       * @see https://tailwindcss.com/docs/align-self\n       */\n      'align-self': [{\n        self: ['auto', ...scaleAlignSecondaryAxis(), {\n          baseline: ['', 'last']\n        }]\n      }],\n      /**\n       * Place Content\n       * @see https://tailwindcss.com/docs/place-content\n       */\n      'place-content': [{\n        'place-content': scaleAlignPrimaryAxis()\n      }],\n      /**\n       * Place Items\n       * @see https://tailwindcss.com/docs/place-items\n       */\n      'place-items': [{\n        'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n      }],\n      /**\n       * Place Self\n       * @see https://tailwindcss.com/docs/place-self\n       */\n      'place-self': [{\n        'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n      }],\n      // Spacing\n      /**\n       * Padding\n       * @see https://tailwindcss.com/docs/padding\n       */\n      p: [{\n        p: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding X\n       * @see https://tailwindcss.com/docs/padding\n       */\n      px: [{\n        px: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Y\n       * @see https://tailwindcss.com/docs/padding\n       */\n      py: [{\n        py: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Start\n       * @see https://tailwindcss.com/docs/padding\n       */\n      ps: [{\n        ps: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding End\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pe: [{\n        pe: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Top\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pt: [{\n        pt: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Right\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pr: [{\n        pr: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Bottom\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pb: [{\n        pb: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Left\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pl: [{\n        pl: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Margin\n       * @see https://tailwindcss.com/docs/margin\n       */\n      m: [{\n        m: scaleMargin()\n      }],\n      /**\n       * Margin X\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mx: [{\n        mx: scaleMargin()\n      }],\n      /**\n       * Margin Y\n       * @see https://tailwindcss.com/docs/margin\n       */\n      my: [{\n        my: scaleMargin()\n      }],\n      /**\n       * Margin Start\n       * @see https://tailwindcss.com/docs/margin\n       */\n      ms: [{\n        ms: scaleMargin()\n      }],\n      /**\n       * Margin End\n       * @see https://tailwindcss.com/docs/margin\n       */\n      me: [{\n        me: scaleMargin()\n      }],\n      /**\n       * Margin Top\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mt: [{\n        mt: scaleMargin()\n      }],\n      /**\n       * Margin Right\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mr: [{\n        mr: scaleMargin()\n      }],\n      /**\n       * Margin Bottom\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mb: [{\n        mb: scaleMargin()\n      }],\n      /**\n       * Margin Left\n       * @see https://tailwindcss.com/docs/margin\n       */\n      ml: [{\n        ml: scaleMargin()\n      }],\n      /**\n       * Space Between X\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-x': [{\n        'space-x': scaleUnambiguousSpacing()\n      }],\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': [{\n        'space-y': scaleUnambiguousSpacing()\n      }],\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      // --- Sizing ---\n      // --------------\n      /**\n       * Size\n       * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n       */\n      size: [{\n        size: scaleSizing()\n      }],\n      /**\n       * Width\n       * @see https://tailwindcss.com/docs/width\n       */\n      w: [{\n        w: [themeContainer, 'screen', ...scaleSizing()]\n      }],\n      /**\n       * Min-Width\n       * @see https://tailwindcss.com/docs/min-width\n       */\n      'min-w': [{\n        'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        'none', ...scaleSizing()]\n      }],\n      /**\n       * Max-Width\n       * @see https://tailwindcss.com/docs/max-width\n       */\n      'max-w': [{\n        'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        {\n          screen: [themeBreakpoint]\n        }, ...scaleSizing()]\n      }],\n      /**\n       * Height\n       * @see https://tailwindcss.com/docs/height\n       */\n      h: [{\n        h: ['screen', 'lh', ...scaleSizing()]\n      }],\n      /**\n       * Min-Height\n       * @see https://tailwindcss.com/docs/min-height\n       */\n      'min-h': [{\n        'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n      }],\n      /**\n       * Max-Height\n       * @see https://tailwindcss.com/docs/max-height\n       */\n      'max-h': [{\n        'max-h': ['screen', 'lh', ...scaleSizing()]\n      }],\n      // ------------------\n      // --- Typography ---\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        font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n      }],\n      /**\n       * Font Stretch\n       * @see https://tailwindcss.com/docs/font-stretch\n       */\n      'font-stretch': [{\n        'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n      }],\n      /**\n       * Font Family\n       * @see https://tailwindcss.com/docs/font-family\n       */\n      'font-family': [{\n        font: [isArbitraryVariableFamilyName, isArbitraryValue, 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: [{\n        tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n      }],\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        leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        themeLeading, ...scaleUnambiguousSpacing()]\n      }],\n      /**\n       * List Style Image\n       * @see https://tailwindcss.com/docs/list-style-image\n       */\n      'list-image': [{\n        'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * List Style Position\n       * @see https://tailwindcss.com/docs/list-style-position\n       */\n      'list-style-position': [{\n        list: ['inside', 'outside']\n      }],\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': [{\n        text: ['left', 'center', 'right', 'justify', 'start', 'end']\n      }],\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': [{\n        placeholder: scaleColor()\n      }],\n      /**\n       * Text Color\n       * @see https://tailwindcss.com/docs/text-color\n       */\n      'text-color': [{\n        text: scaleColor()\n      }],\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': [{\n        decoration: [...scaleLineStyle(), 'wavy']\n      }],\n      /**\n       * Text Decoration Thickness\n       * @see https://tailwindcss.com/docs/text-decoration-thickness\n       */\n      'text-decoration-thickness': [{\n        decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n      }],\n      /**\n       * Text Decoration Color\n       * @see https://tailwindcss.com/docs/text-decoration-color\n       */\n      'text-decoration-color': [{\n        decoration: scaleColor()\n      }],\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': [{\n        text: ['wrap', 'nowrap', 'balance', 'pretty']\n      }],\n      /**\n       * Text Indent\n       * @see https://tailwindcss.com/docs/text-indent\n       */\n      indent: [{\n        indent: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Vertical Alignment\n       * @see https://tailwindcss.com/docs/vertical-align\n       */\n      'vertical-align': [{\n        align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\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: [{\n        break: ['normal', 'words', 'all', 'keep']\n      }],\n      /**\n       * Overflow Wrap\n       * @see https://tailwindcss.com/docs/overflow-wrap\n       */\n      wrap: [{\n        wrap: ['break-word', 'anywhere', 'normal']\n      }],\n      /**\n       * Hyphens\n       * @see https://tailwindcss.com/docs/hyphens\n       */\n      hyphens: [{\n        hyphens: ['none', 'manual', 'auto']\n      }],\n      /**\n       * Content\n       * @see https://tailwindcss.com/docs/content\n       */\n      content: [{\n        content: ['none', isArbitraryVariable, isArbitraryValue]\n      }],\n      // -------------------\n      // --- Backgrounds ---\n      // -------------------\n      /**\n       * Background Attachment\n       * @see https://tailwindcss.com/docs/background-attachment\n       */\n      'bg-attachment': [{\n        bg: ['fixed', 'local', 'scroll']\n      }],\n      /**\n       * Background Clip\n       * @see https://tailwindcss.com/docs/background-clip\n       */\n      'bg-clip': [{\n        'bg-clip': ['border', 'padding', 'content', 'text']\n      }],\n      /**\n       * Background Origin\n       * @see https://tailwindcss.com/docs/background-origin\n       */\n      'bg-origin': [{\n        'bg-origin': ['border', 'padding', 'content']\n      }],\n      /**\n       * Background Position\n       * @see https://tailwindcss.com/docs/background-position\n       */\n      'bg-position': [{\n        bg: scaleBgPosition()\n      }],\n      /**\n       * Background Repeat\n       * @see https://tailwindcss.com/docs/background-repeat\n       */\n      'bg-repeat': [{\n        bg: scaleBgRepeat()\n      }],\n      /**\n       * Background Size\n       * @see https://tailwindcss.com/docs/background-size\n       */\n      'bg-size': [{\n        bg: scaleBgSize()\n      }],\n      /**\n       * Background Image\n       * @see https://tailwindcss.com/docs/background-image\n       */\n      'bg-image': [{\n        bg: ['none', {\n          linear: [{\n            to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n          }, isInteger, isArbitraryVariable, isArbitraryValue],\n          radial: ['', isArbitraryVariable, isArbitraryValue],\n          conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n        }, isArbitraryVariableImage, isArbitraryImage]\n      }],\n      /**\n       * Background Color\n       * @see https://tailwindcss.com/docs/background-color\n       */\n      'bg-color': [{\n        bg: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops From Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-from-pos': [{\n        from: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops Via Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-via-pos': [{\n        via: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops To Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-to-pos': [{\n        to: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops From\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-from': [{\n        from: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops Via\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-via': [{\n        via: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops To\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-to': [{\n        to: scaleColor()\n      }],\n      // ---------------\n      // --- Borders ---\n      // ---------------\n      /**\n       * Border Radius\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      rounded: [{\n        rounded: scaleRadius()\n      }],\n      /**\n       * Border Radius Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-s': [{\n        'rounded-s': scaleRadius()\n      }],\n      /**\n       * Border Radius End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-e': [{\n        'rounded-e': scaleRadius()\n      }],\n      /**\n       * Border Radius Top\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-t': [{\n        'rounded-t': scaleRadius()\n      }],\n      /**\n       * Border Radius Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-r': [{\n        'rounded-r': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-b': [{\n        'rounded-b': scaleRadius()\n      }],\n      /**\n       * Border Radius Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-l': [{\n        'rounded-l': scaleRadius()\n      }],\n      /**\n       * Border Radius Start Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-ss': [{\n        'rounded-ss': scaleRadius()\n      }],\n      /**\n       * Border Radius Start End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-se': [{\n        'rounded-se': scaleRadius()\n      }],\n      /**\n       * Border Radius End End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-ee': [{\n        'rounded-ee': scaleRadius()\n      }],\n      /**\n       * Border Radius End Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-es': [{\n        'rounded-es': scaleRadius()\n      }],\n      /**\n       * Border Radius Top Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-tl': [{\n        'rounded-tl': scaleRadius()\n      }],\n      /**\n       * Border Radius Top Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-tr': [{\n        'rounded-tr': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-br': [{\n        'rounded-br': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-bl': [{\n        'rounded-bl': scaleRadius()\n      }],\n      /**\n       * Border Width\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w': [{\n        border: scaleBorderWidth()\n      }],\n      /**\n       * Border Width X\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-x': [{\n        'border-x': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Y\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-y': [{\n        'border-y': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Start\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-s': [{\n        'border-s': scaleBorderWidth()\n      }],\n      /**\n       * Border Width End\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-e': [{\n        'border-e': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Top\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-t': [{\n        'border-t': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Right\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-r': [{\n        'border-r': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Bottom\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-b': [{\n        'border-b': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Left\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-l': [{\n        'border-l': scaleBorderWidth()\n      }],\n      /**\n       * Divide Width X\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-x': [{\n        'divide-x': scaleBorderWidth()\n      }],\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': [{\n        'divide-y': scaleBorderWidth()\n      }],\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': [{\n        border: [...scaleLineStyle(), 'hidden', 'none']\n      }],\n      /**\n       * Divide Style\n       * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n       */\n      'divide-style': [{\n        divide: [...scaleLineStyle(), 'hidden', 'none']\n      }],\n      /**\n       * Border Color\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color': [{\n        border: scaleColor()\n      }],\n      /**\n       * Border Color X\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-x': [{\n        'border-x': scaleColor()\n      }],\n      /**\n       * Border Color Y\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-y': [{\n        'border-y': scaleColor()\n      }],\n      /**\n       * Border Color S\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-s': [{\n        'border-s': scaleColor()\n      }],\n      /**\n       * Border Color E\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-e': [{\n        'border-e': scaleColor()\n      }],\n      /**\n       * Border Color Top\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-t': [{\n        'border-t': scaleColor()\n      }],\n      /**\n       * Border Color Right\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-r': [{\n        'border-r': scaleColor()\n      }],\n      /**\n       * Border Color Bottom\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-b': [{\n        'border-b': scaleColor()\n      }],\n      /**\n       * Border Color Left\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-l': [{\n        'border-l': scaleColor()\n      }],\n      /**\n       * Divide Color\n       * @see https://tailwindcss.com/docs/divide-color\n       */\n      'divide-color': [{\n        divide: scaleColor()\n      }],\n      /**\n       * Outline Style\n       * @see https://tailwindcss.com/docs/outline-style\n       */\n      'outline-style': [{\n        outline: [...scaleLineStyle(), 'none', 'hidden']\n      }],\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': [{\n        outline: scaleColor()\n      }],\n      // ---------------\n      // --- Effects ---\n      // ---------------\n      /**\n       * Box Shadow\n       * @see https://tailwindcss.com/docs/box-shadow\n       */\n      shadow: [{\n        shadow: [\n        // Deprecated since Tailwind CSS v4.0.0\n        '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n      }],\n      /**\n       * Box Shadow Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n       */\n      'shadow-color': [{\n        shadow: scaleColor()\n      }],\n      /**\n       * Inset Box Shadow\n       * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n       */\n      'inset-shadow': [{\n        'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\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': [{\n        'inset-shadow': scaleColor()\n      }],\n      /**\n       * Ring Width\n       * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n       */\n      'ring-w': [{\n        ring: scaleBorderWidth()\n      }],\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': [{\n        ring: scaleColor()\n      }],\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': [{\n        'ring-offset': [isNumber, isArbitraryLength]\n      }],\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': [{\n        'ring-offset': scaleColor()\n      }],\n      /**\n       * Inset Ring Width\n       * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n       */\n      'inset-ring-w': [{\n        'inset-ring': scaleBorderWidth()\n      }],\n      /**\n       * Inset Ring Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n       */\n      'inset-ring-color': [{\n        'inset-ring': scaleColor()\n      }],\n      /**\n       * Text Shadow\n       * @see https://tailwindcss.com/docs/text-shadow\n       */\n      'text-shadow': [{\n        'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n      }],\n      /**\n       * Text Shadow Color\n       * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n       */\n      'text-shadow-color': [{\n        'text-shadow': scaleColor()\n      }],\n      /**\n       * Opacity\n       * @see https://tailwindcss.com/docs/opacity\n       */\n      opacity: [{\n        opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Mix Blend Mode\n       * @see https://tailwindcss.com/docs/mix-blend-mode\n       */\n      'mix-blend': [{\n        'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n      }],\n      /**\n       * Background Blend Mode\n       * @see https://tailwindcss.com/docs/background-blend-mode\n       */\n      'bg-blend': [{\n        'bg-blend': scaleBlendMode()\n      }],\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       * Mask Composite\n       * @see https://tailwindcss.com/docs/mask-composite\n       */\n      'mask-composite': [{\n        mask: ['add', 'subtract', 'intersect', 'exclude']\n      }],\n      /**\n       * Mask Image\n       * @see https://tailwindcss.com/docs/mask-image\n       */\n      'mask-image-linear-pos': [{\n        'mask-linear': [isNumber]\n      }],\n      'mask-image-linear-from-pos': [{\n        'mask-linear-from': scaleMaskImagePosition()\n      }],\n      'mask-image-linear-to-pos': [{\n        'mask-linear-to': scaleMaskImagePosition()\n      }],\n      'mask-image-linear-from-color': [{\n        'mask-linear-from': scaleColor()\n      }],\n      'mask-image-linear-to-color': [{\n        'mask-linear-to': scaleColor()\n      }],\n      'mask-image-t-from-pos': [{\n        'mask-t-from': scaleMaskImagePosition()\n      }],\n      'mask-image-t-to-pos': [{\n        'mask-t-to': scaleMaskImagePosition()\n      }],\n      'mask-image-t-from-color': [{\n        'mask-t-from': scaleColor()\n      }],\n      'mask-image-t-to-color': [{\n        'mask-t-to': scaleColor()\n      }],\n      'mask-image-r-from-pos': [{\n        'mask-r-from': scaleMaskImagePosition()\n      }],\n      'mask-image-r-to-pos': [{\n        'mask-r-to': scaleMaskImagePosition()\n      }],\n      'mask-image-r-from-color': [{\n        'mask-r-from': scaleColor()\n      }],\n      'mask-image-r-to-color': [{\n        'mask-r-to': scaleColor()\n      }],\n      'mask-image-b-from-pos': [{\n        'mask-b-from': scaleMaskImagePosition()\n      }],\n      'mask-image-b-to-pos': [{\n        'mask-b-to': scaleMaskImagePosition()\n      }],\n      'mask-image-b-from-color': [{\n        'mask-b-from': scaleColor()\n      }],\n      'mask-image-b-to-color': [{\n        'mask-b-to': scaleColor()\n      }],\n      'mask-image-l-from-pos': [{\n        'mask-l-from': scaleMaskImagePosition()\n      }],\n      'mask-image-l-to-pos': [{\n        'mask-l-to': scaleMaskImagePosition()\n      }],\n      'mask-image-l-from-color': [{\n        'mask-l-from': scaleColor()\n      }],\n      'mask-image-l-to-color': [{\n        'mask-l-to': scaleColor()\n      }],\n      'mask-image-x-from-pos': [{\n        'mask-x-from': scaleMaskImagePosition()\n      }],\n      'mask-image-x-to-pos': [{\n        'mask-x-to': scaleMaskImagePosition()\n      }],\n      'mask-image-x-from-color': [{\n        'mask-x-from': scaleColor()\n      }],\n      'mask-image-x-to-color': [{\n        'mask-x-to': scaleColor()\n      }],\n      'mask-image-y-from-pos': [{\n        'mask-y-from': scaleMaskImagePosition()\n      }],\n      'mask-image-y-to-pos': [{\n        'mask-y-to': scaleMaskImagePosition()\n      }],\n      'mask-image-y-from-color': [{\n        'mask-y-from': scaleColor()\n      }],\n      'mask-image-y-to-color': [{\n        'mask-y-to': scaleColor()\n      }],\n      'mask-image-radial': [{\n        'mask-radial': [isArbitraryVariable, isArbitraryValue]\n      }],\n      'mask-image-radial-from-pos': [{\n        'mask-radial-from': scaleMaskImagePosition()\n      }],\n      'mask-image-radial-to-pos': [{\n        'mask-radial-to': scaleMaskImagePosition()\n      }],\n      'mask-image-radial-from-color': [{\n        'mask-radial-from': scaleColor()\n      }],\n      'mask-image-radial-to-color': [{\n        'mask-radial-to': scaleColor()\n      }],\n      'mask-image-radial-shape': [{\n        'mask-radial': ['circle', 'ellipse']\n      }],\n      'mask-image-radial-size': [{\n        'mask-radial': [{\n          closest: ['side', 'corner'],\n          farthest: ['side', 'corner']\n        }]\n      }],\n      'mask-image-radial-pos': [{\n        'mask-radial-at': scalePosition()\n      }],\n      'mask-image-conic-pos': [{\n        'mask-conic': [isNumber]\n      }],\n      'mask-image-conic-from-pos': [{\n        'mask-conic-from': scaleMaskImagePosition()\n      }],\n      'mask-image-conic-to-pos': [{\n        'mask-conic-to': scaleMaskImagePosition()\n      }],\n      'mask-image-conic-from-color': [{\n        'mask-conic-from': scaleColor()\n      }],\n      'mask-image-conic-to-color': [{\n        'mask-conic-to': scaleColor()\n      }],\n      /**\n       * Mask Mode\n       * @see https://tailwindcss.com/docs/mask-mode\n       */\n      'mask-mode': [{\n        mask: ['alpha', 'luminance', 'match']\n      }],\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': [{\n        mask: scaleBgPosition()\n      }],\n      /**\n       * Mask Repeat\n       * @see https://tailwindcss.com/docs/mask-repeat\n       */\n      'mask-repeat': [{\n        mask: scaleBgRepeat()\n      }],\n      /**\n       * Mask Size\n       * @see https://tailwindcss.com/docs/mask-size\n       */\n      'mask-size': [{\n        mask: scaleBgSize()\n      }],\n      /**\n       * Mask Type\n       * @see https://tailwindcss.com/docs/mask-type\n       */\n      'mask-type': [{\n        'mask-type': ['alpha', 'luminance']\n      }],\n      /**\n       * Mask Image\n       * @see https://tailwindcss.com/docs/mask-image\n       */\n      'mask-image': [{\n        mask: ['none', isArbitraryVariable, isArbitraryValue]\n      }],\n      // ---------------\n      // --- Filters ---\n      // ---------------\n      /**\n       * Filter\n       * @see https://tailwindcss.com/docs/filter\n       */\n      filter: [{\n        filter: [\n        // Deprecated since Tailwind CSS v3.0.0\n        '', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Blur\n       * @see https://tailwindcss.com/docs/blur\n       */\n      blur: [{\n        blur: scaleBlur()\n      }],\n      /**\n       * Brightness\n       * @see https://tailwindcss.com/docs/brightness\n       */\n      brightness: [{\n        brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Contrast\n       * @see https://tailwindcss.com/docs/contrast\n       */\n      contrast: [{\n        contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Drop Shadow\n       * @see https://tailwindcss.com/docs/drop-shadow\n       */\n      'drop-shadow': [{\n        'drop-shadow': [\n        // Deprecated since Tailwind CSS v4.0.0\n        '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n      }],\n      /**\n       * Drop Shadow Color\n       * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n       */\n      'drop-shadow-color': [{\n        'drop-shadow': scaleColor()\n      }],\n      /**\n       * Grayscale\n       * @see https://tailwindcss.com/docs/grayscale\n       */\n      grayscale: [{\n        grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Hue Rotate\n       * @see https://tailwindcss.com/docs/hue-rotate\n       */\n      'hue-rotate': [{\n        'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Invert\n       * @see https://tailwindcss.com/docs/invert\n       */\n      invert: [{\n        invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Saturate\n       * @see https://tailwindcss.com/docs/saturate\n       */\n      saturate: [{\n        saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Sepia\n       * @see https://tailwindcss.com/docs/sepia\n       */\n      sepia: [{\n        sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Filter\n       * @see https://tailwindcss.com/docs/backdrop-filter\n       */\n      'backdrop-filter': [{\n        'backdrop-filter': [\n        // Deprecated since Tailwind CSS v3.0.0\n        '', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Blur\n       * @see https://tailwindcss.com/docs/backdrop-blur\n       */\n      'backdrop-blur': [{\n        'backdrop-blur': scaleBlur()\n      }],\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      // --- Tables ---\n      // --------------\n      /**\n       * Border Collapse\n       * @see https://tailwindcss.com/docs/border-collapse\n       */\n      'border-collapse': [{\n        border: ['collapse', 'separate']\n      }],\n      /**\n       * Border Spacing\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing': [{\n        'border-spacing': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Border Spacing X\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing-x': [{\n        'border-spacing-x': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Border Spacing Y\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing-y': [{\n        'border-spacing-y': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Table Layout\n       * @see https://tailwindcss.com/docs/table-layout\n       */\n      'table-layout': [{\n        table: ['auto', 'fixed']\n      }],\n      /**\n       * Caption Side\n       * @see https://tailwindcss.com/docs/caption-side\n       */\n      caption: [{\n        caption: ['top', 'bottom']\n      }],\n      // ---------------------------------\n      // --- Transitions and Animation ---\n      // ---------------------------------\n      /**\n       * Transition Property\n       * @see https://tailwindcss.com/docs/transition-property\n       */\n      transition: [{\n        transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Transition Behavior\n       * @see https://tailwindcss.com/docs/transition-behavior\n       */\n      'transition-behavior': [{\n        transition: ['normal', 'discrete']\n      }],\n      /**\n       * Transition Duration\n       * @see https://tailwindcss.com/docs/transition-duration\n       */\n      duration: [{\n        duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n      }],\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: [{\n        delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Animation\n       * @see https://tailwindcss.com/docs/animation\n       */\n      animate: [{\n        animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n      }],\n      // ------------------\n      // --- Transforms ---\n      // ------------------\n      /**\n       * Backface Visibility\n       * @see https://tailwindcss.com/docs/backface-visibility\n       */\n      backface: [{\n        backface: ['hidden', 'visible']\n      }],\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': [{\n        'perspective-origin': scalePositionWithArbitrary()\n      }],\n      /**\n       * Rotate\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      rotate: [{\n        rotate: scaleRotate()\n      }],\n      /**\n       * Rotate X\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-x': [{\n        'rotate-x': scaleRotate()\n      }],\n      /**\n       * Rotate Y\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-y': [{\n        'rotate-y': scaleRotate()\n      }],\n      /**\n       * Rotate Z\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-z': [{\n        'rotate-z': scaleRotate()\n      }],\n      /**\n       * Scale\n       * @see https://tailwindcss.com/docs/scale\n       */\n      scale: [{\n        scale: scaleScale()\n      }],\n      /**\n       * Scale X\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-x': [{\n        'scale-x': scaleScale()\n      }],\n      /**\n       * Scale Y\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-y': [{\n        'scale-y': scaleScale()\n      }],\n      /**\n       * Scale Z\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-z': [{\n        'scale-z': scaleScale()\n      }],\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: [{\n        skew: scaleSkew()\n      }],\n      /**\n       * Skew X\n       * @see https://tailwindcss.com/docs/skew\n       */\n      'skew-x': [{\n        'skew-x': scaleSkew()\n      }],\n      /**\n       * Skew Y\n       * @see https://tailwindcss.com/docs/skew\n       */\n      'skew-y': [{\n        'skew-y': scaleSkew()\n      }],\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': [{\n        origin: scalePositionWithArbitrary()\n      }],\n      /**\n       * Transform Style\n       * @see https://tailwindcss.com/docs/transform-style\n       */\n      'transform-style': [{\n        transform: ['3d', 'flat']\n      }],\n      /**\n       * Translate\n       * @see https://tailwindcss.com/docs/translate\n       */\n      translate: [{\n        translate: scaleTranslate()\n      }],\n      /**\n       * Translate X\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-x': [{\n        'translate-x': scaleTranslate()\n      }],\n      /**\n       * Translate Y\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-y': [{\n        'translate-y': scaleTranslate()\n      }],\n      /**\n       * Translate Z\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-z': [{\n        'translate-z': scaleTranslate()\n      }],\n      /**\n       * Translate None\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-none': ['translate-none'],\n      // ---------------------\n      // --- Interactivity ---\n      // ---------------------\n      /**\n       * Accent Color\n       * @see https://tailwindcss.com/docs/accent-color\n       */\n      accent: [{\n        accent: scaleColor()\n      }],\n      /**\n       * Appearance\n       * @see https://tailwindcss.com/docs/appearance\n       */\n      appearance: [{\n        appearance: ['none', 'auto']\n      }],\n      /**\n       * Caret Color\n       * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n       */\n      'caret-color': [{\n        caret: scaleColor()\n      }],\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        cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Field Sizing\n       * @see https://tailwindcss.com/docs/field-sizing\n       */\n      'field-sizing': [{\n        'field-sizing': ['fixed', 'content']\n      }],\n      /**\n       * Pointer Events\n       * @see https://tailwindcss.com/docs/pointer-events\n       */\n      'pointer-events': [{\n        'pointer-events': ['auto', 'none']\n      }],\n      /**\n       * Resize\n       * @see https://tailwindcss.com/docs/resize\n       */\n      resize: [{\n        resize: ['none', '', 'y', 'x']\n      }],\n      /**\n       * Scroll Behavior\n       * @see https://tailwindcss.com/docs/scroll-behavior\n       */\n      'scroll-behavior': [{\n        scroll: ['auto', 'smooth']\n      }],\n      /**\n       * Scroll Margin\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-m': [{\n        'scroll-m': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin X\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mx': [{\n        'scroll-mx': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Y\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-my': [{\n        'scroll-my': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Start\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-ms': [{\n        'scroll-ms': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin End\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-me': [{\n        'scroll-me': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Top\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mt': [{\n        'scroll-mt': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Right\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mr': [{\n        'scroll-mr': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Bottom\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mb': [{\n        'scroll-mb': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Left\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-ml': [{\n        'scroll-ml': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-p': [{\n        'scroll-p': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding X\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-px': [{\n        'scroll-px': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Y\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-py': [{\n        'scroll-py': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Start\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-ps': [{\n        'scroll-ps': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding End\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pe': [{\n        'scroll-pe': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Top\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pt': [{\n        'scroll-pt': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Right\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pr': [{\n        'scroll-pr': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Bottom\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pb': [{\n        'scroll-pb': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Left\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pl': [{\n        'scroll-pl': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Snap Align\n       * @see https://tailwindcss.com/docs/scroll-snap-align\n       */\n      'snap-align': [{\n        snap: ['start', 'end', 'center', 'align-none']\n      }],\n      /**\n       * Scroll Snap Stop\n       * @see https://tailwindcss.com/docs/scroll-snap-stop\n       */\n      'snap-stop': [{\n        snap: ['normal', 'always']\n      }],\n      /**\n       * Scroll Snap Type\n       * @see https://tailwindcss.com/docs/scroll-snap-type\n       */\n      'snap-type': [{\n        snap: ['none', 'x', 'y', 'both']\n      }],\n      /**\n       * Scroll Snap Type Strictness\n       * @see https://tailwindcss.com/docs/scroll-snap-type\n       */\n      'snap-strictness': [{\n        snap: ['mandatory', 'proximity']\n      }],\n      /**\n       * Touch Action\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      touch: [{\n        touch: ['auto', 'none', 'manipulation']\n      }],\n      /**\n       * Touch Action X\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      'touch-x': [{\n        'touch-pan': ['x', 'left', 'right']\n      }],\n      /**\n       * Touch Action Y\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      'touch-y': [{\n        'touch-pan': ['y', 'up', 'down']\n      }],\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: [{\n        select: ['none', 'text', 'all', 'auto']\n      }],\n      /**\n       * Will Change\n       * @see https://tailwindcss.com/docs/will-change\n       */\n      'will-change': [{\n        'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n      }],\n      // -----------\n      // --- SVG ---\n      // -----------\n      /**\n       * Fill\n       * @see https://tailwindcss.com/docs/fill\n       */\n      fill: [{\n        fill: ['none', ...scaleColor()]\n      }],\n      /**\n       * Stroke Width\n       * @see https://tailwindcss.com/docs/stroke-width\n       */\n      'stroke-w': [{\n        stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n      }],\n      /**\n       * Stroke\n       * @see https://tailwindcss.com/docs/stroke\n       */\n      stroke: [{\n        stroke: ['none', ...scaleColor()]\n      }],\n      // ---------------------\n      // --- Accessibility ---\n      // ---------------------\n      /**\n       * Forced Color Adjust\n       * @see https://tailwindcss.com/docs/forced-color-adjust\n       */\n      'forced-color-adjust': [{\n        'forced-color-adjust': ['auto', 'none']\n      }]\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': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\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: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\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': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n      'border-w-x': ['border-w-r', 'border-w-l'],\n      'border-w-y': ['border-w-t', 'border-w-b'],\n      'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\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': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n      'scroll-mx': ['scroll-mr', 'scroll-ml'],\n      'scroll-my': ['scroll-mt', 'scroll-mb'],\n      'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\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: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n  };\n};\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 */\nconst mergeConfigs = (baseConfig, {\n  cacheSize,\n  prefix,\n  experimentalParseClassName,\n  extend = {},\n  override = {}\n}) => {\n  overrideProperty(baseConfig, 'cacheSize', cacheSize);\n  overrideProperty(baseConfig, 'prefix', prefix);\n  overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n  overrideConfigProperties(baseConfig.theme, override.theme);\n  overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n  overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n  overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n  overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n  mergeConfigProperties(baseConfig.theme, extend.theme);\n  mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n  mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n  mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n  mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n  return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n  if (overrideValue !== undefined) {\n    baseObject[overrideKey] = overrideValue;\n  }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n  if (overrideObject) {\n    for (const key in overrideObject) {\n      overrideProperty(baseObject, key, overrideObject[key]);\n    }\n  }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n  if (mergeObject) {\n    for (const key in mergeObject) {\n      mergeArrayProperties(baseObject, mergeObject, key);\n    }\n  }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n  const mergeValue = mergeObject[key];\n  if (mergeValue !== undefined) {\n    baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n  }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\n\nconst twMerge = extendTailwindMerge({\n  extend: {\n    classGroups: {\n      'font-size': [\n        'text-h1',\n        'text-h1-sm',\n        'text-h1-xs',\n        'text-h2',\n        'text-h2-sm',\n        'text-h2-xs',\n        'text-h3',\n        'text-h3-sm',\n        'text-h3-xs',\n        'text-h4',\n        'text-h4-sm',\n        'text-h4-xs',\n        'text-h5',\n        'text-h5-sm',\n        'text-h5-xs',\n        'text-h6',\n        'text-h6-sm',\n        'text-h6-xs',\n        'text-p',\n        'text-p-sm',\n        'text-p-xs',\n        'text-2xl',\n        'text-xl',\n        'text-lg',\n        'text-base',\n        'text-sm',\n        'text-xs',\n        'text-2xs',\n      ],\n      'font-family': [\n        'font-heading',\n        'font-body',\n        'font-sans',\n        'font-mono',\n        'font-serif',\n        'font-sans-ar',\n        'font-sans-az',\n        'font-sans-bn',\n        'font-sans-he',\n        'font-sans-hi',\n        'font-sans-ja',\n        'font-sans-ka',\n        'font-sans-km',\n        'font-sans-ko',\n        'font-sans-my',\n        'font-sans-ne',\n        'font-sans-zh',\n      ],\n      leading: [\n        'leading-none',\n        'leading-xs',\n        'leading-sm',\n        'leading-base',\n        'leading-lg',\n        'leading-xl',\n        'leading-2xl',\n        'leading-h1',\n        'leading-h2',\n        'leading-h3',\n        'leading-h4',\n        'leading-h5',\n        'leading-h6',\n        'leading-p',\n      ],\n    },\n  },\n});\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n\nexport function generateRandomId() {\n  const id = Math.random().toString(36).substring(2, 10); // Base 36, first 8 characters\n  return id;\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}