{"version":3,"file":"index.mjs","sources":["../node_modules/clsx/dist/clsx.mjs","../node_modules/style-inject/dist/style-inject.es.js","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/utils/cn.ts","../src/components/Accordion/index.tsx","../src/components/Alert/index.tsx","../src/components/Slot/index.tsx","../src/components/Button/index.tsx","../src/components/Card/index.tsx","../src/components/OptionList/index.tsx","../src/components/ContextMenu/index.tsx","../src/components/Dropdown/index.tsx","../src/components/Selector/index.tsx","../src/components/Tabs/index.tsx"],"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;","function styleInject(css, ref) {\n  if ( ref === void 0 ) ref = {};\n  var insertAt = ref.insertAt;\n\n  if (!css || typeof document === 'undefined') { return; }\n\n  var head = document.head || document.getElementsByTagName('head')[0];\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (insertAt === 'top') {\n    if (head.firstChild) {\n      head.insertBefore(style, head.firstChild);\n    } else {\n      head.appendChild(style);\n    }\n  } else {\n    head.appendChild(style);\n  }\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nexport default styleInject;\n","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))\\(.+\\)$/;\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 => Boolean(value) && !Number.isNaN(Number(value));\nconst isInteger = value => Boolean(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, isNever, 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';\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isLabelImage = label => imageLabels.has(label);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isLabelSize = label => sizeLabels.has(label);\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 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 = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\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  }, 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'];\n  const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch'];\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 scaleGradientStopPosition = () => [isPercent, 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 scaleBlur = () => [\n  // Deprecated since Tailwind CSS v4.0.0\n  '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n  const scaleOrigin = () => ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', 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      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: [...scalePosition(), isArbitraryValue, isArbitraryVariable]\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(), 'baseline']\n      }],\n      /**\n       * Align Self\n       * @see https://tailwindcss.com/docs/align-self\n       */\n      'align-self': [{\n        self: ['auto', ...scaleAlignSecondaryAxis(), 'baseline']\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', ...scaleSizing()]\n      }],\n      /**\n       * Min-Height\n       * @see https://tailwindcss.com/docs/min-height\n       */\n      'min-h': [{\n        'min-h': ['screen', 'none', ...scaleSizing()]\n      }],\n      /**\n       * Max-Height\n       * @see https://tailwindcss.com/docs/max-height\n       */\n      'max-h': [{\n        'max-h': ['screen', ...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       * 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: [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition]\n      }],\n      /**\n       * Background Repeat\n       * @see https://tailwindcss.com/docs/background-repeat\n       */\n      'bg-repeat': [{\n        bg: ['no-repeat', {\n          repeat: ['', 'x', 'y', 'space', 'round']\n        }]\n      }],\n      /**\n       * Background Size\n       * @see https://tailwindcss.com/docs/background-size\n       */\n      'bg-size': [{\n        bg: ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize]\n      }],\n      /**\n       * Background Image\n       * @see https://tailwindcss.com/docs/background-image\n       */\n      'bg-image': [{\n        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: [themeColor]\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', isArbitraryVariable, isArbitraryValue, themeInsetShadow]\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       * 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      // --- 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, isArbitraryVariable, isArbitraryValue]\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': scaleOrigin()\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: scaleOrigin()\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-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-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: ['before', 'after', 'placeholder', 'file', 'marker', 'selection', 'first-line', 'first-letter', 'backdrop', '*', '**']\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\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n  return twMerge(clsx(inputs));\r\n}\r\n","\"use client\";\r\n\r\nimport React, {\r\n  useState,\r\n  useEffect,\r\n  useRef,\r\n  createContext,\r\n  useContext,\r\n  SetStateAction,\r\n  useImperativeHandle,\r\n} from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { ChevronDown } from \"lucide-react\";\r\n\r\ninterface AccordionContextProps {\r\n  openItem: string | null;\r\n  setOpenItem: React.Dispatch<SetStateAction<string | null>>;\r\n  contentHeight: number | null;\r\n  setContentHeight: React.Dispatch<SetStateAction<number | null>>;\r\n}\r\n\r\nconst AccordionContext = createContext<AccordionContextProps | null>(null);\r\n\r\ninterface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  defaultValue?: string;\r\n}\r\n\r\nconst Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\r\n  ({ className, defaultValue, ...props }, ref) => {\r\n    const [openItem, setOpenItem] = useState<string | null>(null);\r\n    const [contentHeight, setContentHeight] = useState<number | null>(null);\r\n\r\n    useEffect(() => {\r\n      if (defaultValue) {\r\n        setOpenItem(defaultValue);\r\n      }\r\n    }, [setOpenItem, defaultValue]);\r\n\r\n    return (\r\n      <AccordionContext.Provider\r\n        value={{\r\n          openItem,\r\n          setOpenItem,\r\n          contentHeight,\r\n          setContentHeight,\r\n        }}\r\n      >\r\n        <div ref={ref} className={cn(className, \"w-full\")} {...props} />\r\n      </AccordionContext.Provider>\r\n    );\r\n  }\r\n);\r\nAccordion.displayName = \"Accordion\";\r\n\r\ninterface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  value: string;\r\n}\r\n\r\nconst AccordionItem = React.forwardRef<HTMLDivElement, AccordionItemProps>(\r\n  ({ className, children, value, ...props }, ref) => {\r\n    const context = useContext(AccordionContext);\r\n    if (!context)\r\n      throw new Error(\"AccordionItem must be used in an Accordion!\");\r\n\r\n    const { openItem, setOpenItem, contentHeight } = context;\r\n    const isOpen = openItem === value;\r\n\r\n    return (\r\n      <div\r\n        ref={ref}\r\n        className={cn(\r\n          className,\r\n          \"border-border overflow-hidden border-b transition-all\"\r\n        )}\r\n        style={{\r\n          height: isOpen ? `${contentHeight! + 40}px` : \"2.5rem\",\r\n        }}\r\n        onClick={() => setOpenItem(isOpen ? null : value)}\r\n        {...props}\r\n      >\r\n        {React.Children.map(children, (child) =>\r\n          React.isValidElement<{ value?: string }>(child)\r\n            ? React.cloneElement(child, { value })\r\n            : child\r\n        )}\r\n      </div>\r\n    );\r\n  }\r\n);\r\n\r\nAccordionItem.displayName = \"AccordionItem\";\r\n\r\nconst AccordionTitle = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement> & { value?: string }\r\n>(({ className, children, value, ...props }, ref) => {\r\n  const context = useContext(AccordionContext);\r\n  if (!context) throw new Error(\"AccordionTitle must be used in an Accordion!\");\r\n\r\n  const { openItem } = context;\r\n  const isOpen = openItem === value;\r\n\r\n  return (\r\n    <div\r\n      ref={ref}\r\n      className={cn(\r\n        className,\r\n        \"flex h-10 cursor-pointer items-center justify-between px-2\"\r\n      )}\r\n      {...props}\r\n    >\r\n      {children}\r\n      <ChevronDown\r\n        size={16}\r\n        className={`stroke-secondary-foreground transition-all ${\r\n          isOpen ? \"rotate-180\" : \"rotate-0\"\r\n        }`}\r\n      />\r\n    </div>\r\n  );\r\n});\r\nAccordionTitle.displayName = \"AccordionTitle\";\r\n\r\nconst AccordionContent = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, children, ...props }, ref) => {\r\n  const contentRef = useRef<HTMLDivElement>(null);\r\n\r\n  const context = useContext(AccordionContext);\r\n  if (!context)\r\n    throw new Error(\"AccordionContent must be used in an Accordion!\");\r\n\r\n  const { setContentHeight } = context;\r\n\r\n  useImperativeHandle(ref, () => contentRef.current as HTMLDivElement);\r\n\r\n  useEffect(() => {\r\n    if (contentRef.current) {\r\n      setContentHeight(contentRef.current.clientHeight);\r\n    }\r\n  }, [setContentHeight, children]);\r\n\r\n  return (\r\n    <div ref={contentRef} className={cn(className, \"px-2 pb-4\")} {...props}>\r\n      {children}\r\n    </div>\r\n  );\r\n});\r\nAccordionContent.displayName = \"AccordionContent\";\r\n\r\nexport { Accordion, AccordionItem, AccordionTitle, AccordionContent };\r\n","import React from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { cva, VariantProps } from \"class-variance-authority\";\r\n\r\nconst alertVariants = cva(\r\n  \"relative border-border bg-background min-w-[40rem] rounded border px-4 py-3 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\r\n  {\r\n    variants: {\r\n      variant: {\r\n        default: \"bg-background text-foreground\",\r\n        success: \"text-success border-success [&>svg]:text-success\",\r\n        warning: \"text-warning border-warning [&>svg]:text-warning\",\r\n        destructive:\r\n          \"text-destructive border-destructive [&>svg]:text-destructive\",\r\n      },\r\n    },\r\n    defaultVariants: {\r\n      variant: \"default\",\r\n    },\r\n  }\r\n);\r\n\r\nconst Alert = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\r\n>(({ className, variant, ...props }, ref) => {\r\n  return (\r\n    <div\r\n      ref={ref}\r\n      role=\"alert\"\r\n      className={cn(alertVariants({ variant }), className)}\r\n      {...props}\r\n    />\r\n  );\r\n});\r\nAlert.displayName = \"Alert\";\r\n\r\nconst AlertTitle = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLHeadingElement>\r\n>(({ className, ...props }, ref) => {\r\n  return <div ref={ref} className={cn(\"font-medium\", className)} {...props} />;\r\n});\r\nAlertTitle.displayName = \"AlertTitle\";\r\n\r\nconst AlertDescription = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLParagraphElement>\r\n>(({ className, ...props }, ref) => {\r\n  return <div ref={ref} className={cn(\"text-sm\", className)} {...props} />;\r\n});\r\nAlertDescription.displayName = \"AlertDescription\";\r\n\r\nexport { Alert, AlertTitle, AlertDescription };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport React from \"react\";\r\n\r\ninterface SlotProps<T extends React.ElementType>\r\n  extends React.HTMLAttributes<HTMLElement> {\r\n  children: React.ReactElement<React.ComponentProps<T>>;\r\n}\r\n\r\nconst Slot = React.forwardRef<HTMLElement, SlotProps<any>>(\r\n  ({ children, ...props }, ref) => {\r\n    return React.cloneElement(React.Children.only(children), { ref, ...props });\r\n  }\r\n);\r\n\r\nSlot.displayName = \"Slot\";\r\n\r\nexport { Slot };\r\n","import React, { ElementType } from \"react\";\r\nimport { Slot } from \"../Slot\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils/cn\";\r\n\r\nconst buttonVariants = cva(\r\n  \"cursor-pointer transition-all inline-flex items-center justify-center gap-2 whitespace-nowrap rounded disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\r\n  {\r\n    variants: {\r\n      variant: {\r\n        default:\r\n          \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\r\n        destructive:\r\n          \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\r\n        outline:\r\n          \"border border-border bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\r\n        secondary:\r\n          \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\r\n        ghost: \"hover:bg-accent hover:text-accent-foreground\",\r\n        link: \"text-primary underline-offset-4 hover:underline\",\r\n      },\r\n      size: {\r\n        default: \"h-8 px-4 py-1\",\r\n        sm: \"h-7 rounded-md px-3 text-xs\",\r\n        lg: \"h-10 rounded-md px-8\",\r\n        icon: \"h-8 w-8\",\r\n      },\r\n    },\r\n    defaultVariants: {\r\n      variant: \"default\",\r\n      size: \"default\",\r\n    },\r\n  }\r\n);\r\n\r\nexport interface ButtonProps\r\n  extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n    VariantProps<typeof buttonVariants> {\r\n  asChild?: boolean;\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n  ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n    const Component = asChild ? (Slot as ElementType) : \"button\";\r\n\r\n    return (\r\n      <Component\r\n        ref={ref}\r\n        className={cn(buttonVariants({ variant, size, className }))}\r\n        {...props}\r\n      />\r\n    );\r\n  }\r\n);\r\nButton.displayName = \"Button\";\r\n\r\nexport { Button, buttonVariants };\r\n","import React from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\n\r\nconst Card = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n  return (\r\n    <div\r\n      ref={ref}\r\n      className={cn(\r\n        \"border-border bg-background flex min-w-48 flex-col rounded border px-4 py-6 max-w-full\",\r\n        className\r\n      )}\r\n      {...props}\r\n    />\r\n  );\r\n});\r\nCard.displayName = \"Card\";\r\n\r\nconst CardHeader = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n  return (\r\n    <div\r\n      ref={ref}\r\n      className={cn(\"w-full px-2 pt-2 text-lg font-semibold\", className)}\r\n      {...props}\r\n    />\r\n  );\r\n});\r\nCardHeader.displayName = \"CardHeader\";\r\n\r\nconst CardContent = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n  return (\r\n    <div ref={ref} className={cn(\"w-full p-2 px-2\", className)} {...props} />\r\n  );\r\n});\r\nCardContent.displayName = \"CardContent\";\r\n\r\nconst CardFooter = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n  return (\r\n    <div\r\n      ref={ref}\r\n      className={cn(\r\n        \"flex w-full items-center justify-end px-2 pt-2 pb-2\",\r\n        className\r\n      )}\r\n      {...props}\r\n    />\r\n  );\r\n});\r\nCardFooter.displayName = \"CardFooter\";\r\n\r\nexport { Card, CardHeader, CardContent, CardFooter };\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { Button, ButtonProps } from \"../Button\";\r\nimport { cn } from \"../../utils/cn\";\r\n\r\ninterface OptionListProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  title?: string;\r\n  titleSeperator?: boolean;\r\n}\r\n\r\nconst OptionList = React.forwardRef<HTMLDivElement, OptionListProps>(\r\n  ({ className, children, title, titleSeperator = true, ...props }, ref) => {\r\n    return (\r\n      <div\r\n        ref={ref}\r\n        className={cn(\r\n          \"border-border bg-background h-min max-w-96 min-w-56 rounded-md border px-1 shadow-md transition-all\",\r\n          className,\r\n        )}\r\n        {...props}\r\n      >\r\n        {title && (\r\n          <p\r\n            className={cn(\r\n              \"pt-2 pl-2 text-sm font-semibold\",\r\n              titleSeperator && \"border-border border-b pb-2.5\",\r\n            )}\r\n          >\r\n            {title}\r\n          </p>\r\n        )}\r\n        {children}\r\n      </div>\r\n    );\r\n  },\r\n);\r\nOptionList.displayName = \"OptionList\";\r\n\r\ninterface OptionListSectionProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  seperator?: boolean;\r\n}\r\n\r\nconst OptionListSection = React.forwardRef<\r\n  HTMLDivElement,\r\n  OptionListSectionProps\r\n>(({ className, children, seperator = false, ...props }, ref) => {\r\n  return (\r\n    <div\r\n      ref={ref}\r\n      className={cn(\"py-1\", className, seperator && \"border-border border-b\")}\r\n      {...props}\r\n    >\r\n      {children}\r\n    </div>\r\n  );\r\n});\r\nOptionListSection.displayName = \"OptionListSection\";\r\n\r\ninterface OptionListItemProps extends ButtonProps {\r\n  shortcut?: string;\r\n}\r\n\r\nconst OptionListItem = React.forwardRef<HTMLButtonElement, OptionListItemProps>(\r\n  ({ className, children, shortcut, variant = \"ghost\", ...props }, ref) => {\r\n    return (\r\n      <Button\r\n        ref={ref}\r\n        className={cn(\r\n          \"w-full justify-start rounded px-2\",\r\n          variant === \"destructive\" &&\r\n            \"hover:text-destructive-foreground text-destructive hover:bg-destructive bg-transparent\",\r\n          className,\r\n        )}\r\n        variant={variant}\r\n        {...props}\r\n      >\r\n        {children}\r\n        {shortcut && (\r\n          <span className=\"text-muted-foreground ml-auto font-mono text-xs\">\r\n            {shortcut}\r\n          </span>\r\n        )}\r\n      </Button>\r\n    );\r\n  },\r\n);\r\nOptionListItem.displayName = \"OptionListItem\";\r\n\r\nexport {\r\n  type OptionListProps,\r\n  type OptionListSectionProps,\r\n  type OptionListItemProps,\r\n};\r\nexport { OptionList, OptionListSection, OptionListItem };","\"use client\";\r\n\r\nimport React, { SetStateAction, useRef } from \"react\";\r\nimport {\r\n  useState,\r\n  useEffect,\r\n  createContext,\r\n  useContext,\r\n  useImperativeHandle,\r\n} from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\n\r\nimport {\r\n  OptionList,\r\n  OptionListProps,\r\n  OptionListSection,\r\n  OptionListSectionProps,\r\n  OptionListItem,\r\n  OptionListItemProps,\r\n} from \"../OptionList\";\r\n\r\ninterface ContextMenuContextProps {\r\n  open: boolean;\r\n  setOpen: React.Dispatch<SetStateAction<boolean>>;\r\n  coords: { x: number; y: number };\r\n  setCoords: React.Dispatch<SetStateAction<{ x: number; y: number }>>;\r\n  menuRef: React.RefObject<HTMLDivElement>;\r\n}\r\n\r\nconst ContextMenuContext = createContext<ContextMenuContextProps | null>(null);\r\n\r\nconst ContextMenu = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, children, ...props }, ref) => {\r\n  const [open, setOpen] = useState<boolean>(false);\r\n  const [coords, setCoords] = useState<{ x: number; y: number }>({\r\n    x: 0,\r\n    y: 0,\r\n  });\r\n\r\n  const menuRef = useRef<HTMLDivElement>(null);\r\n\r\n  useEffect(() => {\r\n    function handleClickOutside(e: MouseEvent) {\r\n      if (!e.target) return;\r\n      const target = e.target as Node;\r\n\r\n      if (menuRef.current && !menuRef.current.contains(target)) {\r\n        setOpen(false);\r\n        setCoords({ x: 0, y: 0 });\r\n      }\r\n    }\r\n\r\n    if (open) {\r\n      document.addEventListener(\"mousedown\", handleClickOutside);\r\n    } else {\r\n      document.removeEventListener(\"mousedown\", handleClickOutside);\r\n    }\r\n\r\n    return () => {\r\n      document.removeEventListener(\"mousedown\", handleClickOutside);\r\n    };\r\n  }, [open, setOpen]);\r\n\r\n  return (\r\n    <ContextMenuContext.Provider\r\n      value={{ open, setOpen, coords, setCoords, menuRef }}\r\n    >\r\n      <div ref={ref} className={cn(\"relative\", className)} {...props}>\r\n        {children}\r\n      </div>\r\n    </ContextMenuContext.Provider>\r\n  );\r\n});\r\nContextMenu.displayName = \"ContextMenu\";\r\n\r\nconst ContextMenuTrigger = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, children, ...props }, ref) => {\r\n  const context = useContext(ContextMenuContext);\r\n  if (!context)\r\n    throw new Error(\"ContextMenuTrigger must be used in a ContextMenu!\");\r\n\r\n  const { setOpen, menuRef, setCoords } = context;\r\n\r\n  return (\r\n    <div\r\n      ref={ref}\r\n      className={cn(\"\", className)}\r\n      onContextMenu={(e) => {\r\n        e.preventDefault();\r\n        const rect = menuRef.current!.getBoundingClientRect();\r\n        setCoords({\r\n          x: e.clientX - rect.left,\r\n          y: e.clientY - rect.top,\r\n        });\r\n\r\n        setOpen(true);\r\n      }}\r\n      {...props}\r\n    >\r\n      {children}\r\n    </div>\r\n  );\r\n});\r\nContextMenuTrigger.displayName = \"ContextMenuTrigger\";\r\n\r\nconst ContextMenuContent = React.forwardRef<HTMLDivElement, OptionListProps>(\r\n  ({ className, children, ...props }, ref) => {\r\n    const context = useContext(ContextMenuContext);\r\n    if (!context)\r\n      throw new Error(\"ContextMenuContent must be used in a ContextMenu!\");\r\n\r\n    const { open, coords, menuRef } = context;\r\n\r\n    useImperativeHandle(ref, () => menuRef.current as HTMLDivElement);\r\n\r\n    return (\r\n      <div\r\n        ref={menuRef}\r\n        style={{ top: `${coords.y}px`, left: `${coords.x}px` }}\r\n        className={cn(\r\n          \"absolute z-[99] origin-top-left transition-[scale]\",\r\n          open ? \"scale-100\" : \"pointer-events-none scale-90 opacity-0\"\r\n        )}\r\n      >\r\n        <OptionList className={cn(className)} {...props}>\r\n          {children}\r\n        </OptionList>\r\n      </div>\r\n    );\r\n  }\r\n);\r\nContextMenuContent.displayName = \"ContextMenuContent\";\r\n\r\nconst ContextMenuSection = React.forwardRef<\r\n  HTMLDivElement,\r\n  OptionListSectionProps\r\n>(({ className, children, ...props }, ref) => {\r\n  return (\r\n    <div ref={ref} className=\"w-full\">\r\n      <OptionListSection className={cn(className)} {...props}>\r\n        {children}\r\n      </OptionListSection>\r\n    </div>\r\n  );\r\n});\r\nContextMenuSection.displayName = \"ContextMenuSection\";\r\n\r\nconst ContextMenuItem = React.forwardRef<HTMLDivElement, OptionListItemProps>(\r\n  ({ className, children, ...props }, ref) => {\r\n    return (\r\n      <div ref={ref} className=\"w-full\">\r\n        <OptionListItem className={cn(className)} {...props}>\r\n          {children}\r\n        </OptionListItem>\r\n      </div>\r\n    );\r\n  }\r\n);\r\nContextMenuItem.displayName = \"ContextMenuItem\";\r\n\r\nexport {\r\n  ContextMenu,\r\n  ContextMenuTrigger,\r\n  ContextMenuContent,\r\n  ContextMenuSection,\r\n  ContextMenuItem,\r\n};\r\n","\"use client\";\r\n\r\nimport React, {\r\n  SetStateAction,\r\n  useRef,\r\n  useState,\r\n  useEffect,\r\n  createContext,\r\n  useContext,\r\n  useImperativeHandle,\r\n} from \"react\";\r\nimport { Button, ButtonProps } from \"../Button\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport {\r\n  OptionList,\r\n  OptionListProps,\r\n  OptionListSection,\r\n  OptionListSectionProps,\r\n  OptionListItem,\r\n  OptionListItemProps,\r\n} from \"../OptionList\";\r\n\r\ninterface DropdownContextProps {\r\n  open: boolean;\r\n  setOpen: React.Dispatch<SetStateAction<boolean>>;\r\n  onHover: boolean;\r\n  triggerRef: React.RefObject<HTMLButtonElement>;\r\n  menuRef: React.RefObject<HTMLDivElement>;\r\n}\r\n\r\nconst DropdownContext = createContext<DropdownContextProps | null>(null);\r\n\r\ninterface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  onHover?: boolean;\r\n}\r\n\r\nconst Dropdown = React.forwardRef<HTMLDivElement, DropdownProps>(\r\n  ({ className, children, onHover = false, ...props }, ref) => {\r\n    const [open, setOpen] = useState<boolean>(false);\r\n\r\n    const triggerRef = useRef<HTMLButtonElement>(null);\r\n    const menuRef = useRef<HTMLDivElement>(null);\r\n\r\n    useEffect(() => {\r\n      function handleClickOutside(e: MouseEvent) {\r\n        if (!e.target) return;\r\n        const target = e.target as Node;\r\n\r\n        if (\r\n          menuRef.current &&\r\n          !menuRef.current.contains(target) &&\r\n          triggerRef.current &&\r\n          !triggerRef.current.contains(target)\r\n        ) {\r\n          setOpen(false);\r\n        }\r\n      }\r\n\r\n      if (open) {\r\n        document.addEventListener(\"mousedown\", handleClickOutside);\r\n      } else {\r\n        document.removeEventListener(\"mousedown\", handleClickOutside);\r\n      }\r\n\r\n      return () => {\r\n        document.removeEventListener(\"mousedown\", handleClickOutside);\r\n      };\r\n    }, [open, setOpen]);\r\n\r\n    return (\r\n      <DropdownContext.Provider\r\n        value={{\r\n          open,\r\n          setOpen,\r\n          onHover,\r\n          triggerRef,\r\n          menuRef,\r\n        }}\r\n      >\r\n        <div ref={ref} className={cn(\"relative\", className)} {...props}>\r\n          {children}\r\n        </div>{\" \"}\r\n      </DropdownContext.Provider>\r\n    );\r\n  }\r\n);\r\nDropdown.displayName = \"Dropdown\";\r\n\r\nconst DropdownTrigger = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n  ({ className, children, ...props }, ref) => {\r\n    const context = useContext(DropdownContext);\r\n    if (!context)\r\n      throw new Error(\"DropdownTwigger must be used in a Dropdown!\");\r\n\r\n    const { open, setOpen, triggerRef } = context;\r\n\r\n    useImperativeHandle(ref, () => triggerRef.current as HTMLButtonElement);\r\n\r\n    return (\r\n      <Button\r\n        ref={triggerRef}\r\n        onClick={(e) => {\r\n          e.stopPropagation();\r\n          setOpen(!open);\r\n        }}\r\n        className={cn(\"\", className)}\r\n        {...props}\r\n      >\r\n        {children}\r\n      </Button>\r\n    );\r\n  }\r\n);\r\nDropdownTrigger.displayName = \"DropdownTrigger\";\r\n\r\nconst dropdownMenuVariants = cva(\r\n  `bg-background border-border absolute top-[calc(100%+0.5rem)] w-max max-w-96 min-w-36 rounded-lg border transition-all shadow`,\r\n  {\r\n    variants: {\r\n      position: {\r\n        left: \"left-0 origin-top-left\",\r\n        center: \"left-1/2 -translate-x-1/2 origin-top\",\r\n        right: \"right-0 origin-top-right\",\r\n      },\r\n    },\r\n    defaultVariants: {\r\n      position: \"left\",\r\n    },\r\n  }\r\n);\r\n\r\ninterface DropdownMenuProps\r\n  extends OptionListProps,\r\n    VariantProps<typeof dropdownMenuVariants> {\r\n  position?: \"left\" | \"center\" | \"right\";\r\n  title?: string;\r\n  titleSeperator?: boolean;\r\n}\r\n\r\nconst DropdownMenu = React.forwardRef<HTMLDivElement, DropdownMenuProps>(\r\n  ({ className, children, position = \"center\", ...props }, ref) => {\r\n    const context = useContext(DropdownContext);\r\n    if (!context) throw new Error(\"DropdownMenu must be used in a Dropdown!\");\r\n\r\n    const { open, menuRef } = context;\r\n\r\n    useImperativeHandle(ref, () => menuRef.current as HTMLDivElement);\r\n\r\n    return (\r\n      <OptionList\r\n        ref={menuRef}\r\n        className={cn(\r\n          dropdownMenuVariants({ position }),\r\n          open ? \"scale-100 opacity-100\" : \"scale-90 opacity-0\",\r\n          className\r\n        )}\r\n        {...props}\r\n      >\r\n        {children}\r\n      </OptionList>\r\n    );\r\n  }\r\n);\r\nDropdownMenu.displayName = \"DropdownMenu\";\r\n\r\nconst DropdownSection = React.forwardRef<\r\n  HTMLDivElement,\r\n  OptionListSectionProps\r\n>(({ className, children, ...props }, ref) => {\r\n  return (\r\n    <OptionListSection ref={ref} className={cn(className)} {...props}>\r\n      {children}\r\n    </OptionListSection>\r\n  );\r\n});\r\nDropdownSection.displayName = \"DropdownSection\";\r\n\r\nconst DropdownItem = React.forwardRef<HTMLButtonElement, OptionListItemProps>(\r\n  ({ className, children, onClick, ...props }, ref) => {\r\n    const context = useContext(DropdownContext);\r\n\r\n    if (!context) throw new Error(\"DropdownItem must be used in a Dropdown!\");\r\n\r\n    const { setOpen } = context;\r\n\r\n    return (\r\n      <OptionListItem\r\n        ref={ref}\r\n        className={cn(\"w-full justify-start rounded px-2\", className)}\r\n        variant=\"ghost\"\r\n        onClick={(e) => {\r\n          e.stopPropagation();\r\n          if (onClick) onClick(e);\r\n          setOpen(false);\r\n        }}\r\n        {...props}\r\n      >\r\n        {children}\r\n      </OptionListItem>\r\n    );\r\n  }\r\n);\r\nDropdownItem.displayName = \"DropdownItem\";\r\n\r\nexport {\r\n  Dropdown,\r\n  DropdownTrigger,\r\n  DropdownMenu,\r\n  DropdownSection,\r\n  DropdownItem,\r\n};\r\n","\"use client\";\r\n\r\nimport React, {\r\n  SetStateAction,\r\n  useRef,\r\n  useState,\r\n  useEffect,\r\n  createContext,\r\n  useContext,\r\n  useImperativeHandle,\r\n} from \"react\";\r\nimport { Button, ButtonProps } from \"../Button\";\r\nimport { cn } from \"../../utils/cn\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport {\r\n  OptionList,\r\n  OptionListProps,\r\n  OptionListSection,\r\n  OptionListItem,\r\n  OptionListItemProps,\r\n} from \"../OptionList\";\r\n\r\nimport { ChevronDown, Check } from \"lucide-react\";\r\n\r\ninterface SelectorContextProps {\r\n  open: boolean;\r\n  setOpen: React.Dispatch<SetStateAction<boolean>>;\r\n  active: string | null;\r\n  setActive: (value: string) => void;\r\n  checkEnd: boolean;\r\n  setCheckEnd: React.Dispatch<SetStateAction<boolean>>;\r\n  triggerRef: React.RefObject<HTMLButtonElement>;\r\n  menuRef: React.RefObject<HTMLDivElement>;\r\n}\r\n\r\nconst SelectorContext = createContext<SelectorContextProps | null>(null);\r\n\r\ninterface SelectorProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  defaultValue?: string;\r\n  value?: string | null;\r\n  onValueChange?: (value: string) => void;\r\n}\r\n\r\nconst Selector = React.forwardRef<HTMLDivElement, SelectorProps>(\r\n  (\r\n    { className, children, value, defaultValue, onValueChange, ...props },\r\n    ref\r\n  ) => {\r\n    const [internalValue, setInternalValue] = useState<string | null>(\r\n      defaultValue || null\r\n    );\r\n    const [open, setOpen] = useState<boolean>(false);\r\n    const [checkEnd, setCheckEnd] = useState<boolean>(true);\r\n    const triggerRef = useRef<HTMLButtonElement>(null);\r\n    const menuRef = useRef<HTMLDivElement>(null);\r\n\r\n    const activeValue = value ?? internalValue;\r\n\r\n    const setActive = (newValue: string) => {\r\n      if (!value) setInternalValue(newValue);\r\n      if (onValueChange) onValueChange(newValue);\r\n    };\r\n\r\n    useEffect(() => {\r\n      function handleClickOutside(e: MouseEvent) {\r\n        if (!e.target) return;\r\n        const target = e.target as Node;\r\n\r\n        if (\r\n          menuRef.current &&\r\n          !menuRef.current.contains(target) &&\r\n          triggerRef.current &&\r\n          !triggerRef.current.contains(target)\r\n        ) {\r\n          setOpen(false);\r\n        }\r\n      }\r\n\r\n      if (open) {\r\n        document.addEventListener(\"mousedown\", handleClickOutside);\r\n      } else {\r\n        document.removeEventListener(\"mousedown\", handleClickOutside);\r\n      }\r\n\r\n      return () => {\r\n        document.removeEventListener(\"mousedown\", handleClickOutside);\r\n      };\r\n    }, [open]);\r\n\r\n    return (\r\n      <SelectorContext.Provider\r\n        value={{\r\n          open,\r\n          setOpen,\r\n          active: activeValue,\r\n          setActive,\r\n          checkEnd,\r\n          setCheckEnd,\r\n          triggerRef,\r\n          menuRef,\r\n        }}\r\n      >\r\n        <div ref={ref} className={cn(\"relative z-99\", className)} {...props}>\r\n          {children}\r\n        </div>\r\n      </SelectorContext.Provider>\r\n    );\r\n  }\r\n);\r\nSelector.displayName = \"Selector\";\r\n\r\ninterface SelectorTriggerProps extends ButtonProps {\r\n  placeholder: string;\r\n}\r\n\r\nconst SelectorTrigger = React.forwardRef<\r\n  HTMLButtonElement,\r\n  SelectorTriggerProps\r\n>(({ className, placeholder, ...props }, ref) => {\r\n  const context = useContext(SelectorContext);\r\n\r\n  if (!context) throw new Error(\"SelectorTrigger must be used in a Selector!\");\r\n\r\n  const { open, setOpen, active, triggerRef } = context;\r\n\r\n  useImperativeHandle(ref, () => triggerRef.current as HTMLButtonElement);\r\n\r\n  return (\r\n    <Button\r\n      ref={triggerRef}\r\n      className={cn(\"min-w-[200px] justify-between px-4\", className)}\r\n      variant={\"outline\"}\r\n      onClick={(e) => {\r\n        e.stopPropagation();\r\n        setOpen(!open);\r\n      }}\r\n      {...props}\r\n    >\r\n      {active ? active : placeholder}\r\n      <ChevronDown\r\n        className={`transition-transform ${open ? \"rotate-180\" : \"\"}`}\r\n      />\r\n    </Button>\r\n  );\r\n});\r\nSelectorTrigger.displayName = \"SelectorTrigger\";\r\n\r\nconst selectorContentVariants = cva(\r\n  `bg-background border-border absolute top-[calc(100%+0.5rem)] w-max rounded-lg border transition-all shadow`,\r\n  {\r\n    variants: {\r\n      position: {\r\n        left: \"left-0 origin-top-left\",\r\n        center: \"left-1/2 -translate-x-1/2 origin-top\",\r\n        right: \"right-0 origin-top-right\",\r\n      },\r\n    },\r\n    defaultVariants: {\r\n      position: \"left\",\r\n    },\r\n  }\r\n);\r\n\r\ninterface SelectContentProps\r\n  extends OptionListProps,\r\n    VariantProps<typeof selectorContentVariants> {\r\n  position?: \"left\" | \"center\" | \"right\";\r\n  checkEnd?: boolean;\r\n}\r\n\r\nconst SelectorContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\r\n  (\r\n    { className, children, position = \"center\", checkEnd = true, ...props },\r\n    ref\r\n  ) => {\r\n    const context = useContext(SelectorContext);\r\n    if (!context)\r\n      throw new Error(\"ContextMenuContent must be used in a ContextMenu!\");\r\n\r\n    const { open, menuRef, setCheckEnd } = context;\r\n\r\n    useEffect(() => {\r\n      setCheckEnd(checkEnd);\r\n    }, [setCheckEnd, checkEnd]);\r\n\r\n    useImperativeHandle(ref, () => menuRef.current as HTMLDivElement);\r\n    return (\r\n      <OptionList\r\n        ref={menuRef}\r\n        className={cn(\r\n          selectorContentVariants({ position }),\r\n          \"z-100 w-min min-w-full\",\r\n          open ? \"scale-100 opacity-100\" : \"scale-90 opacity-0\",\r\n          className\r\n        )}\r\n        {...props}\r\n      >\r\n        <OptionListSection>{children}</OptionListSection>\r\n      </OptionList>\r\n    );\r\n  }\r\n);\r\nSelectorContent.displayName = \"SelectorContent\";\r\n\r\ninterface SelectorContentItemProps extends OptionListItemProps {\r\n  value: string;\r\n}\r\n\r\nconst SelectorContentItem = React.forwardRef<\r\n  HTMLButtonElement,\r\n  SelectorContentItemProps\r\n>(({ className, children, value, ...props }, ref) => {\r\n  const context = useContext(SelectorContext);\r\n\r\n  if (!context)\r\n    throw new Error(\"SelectorContentItem must be used in a Selector!\");\r\n\r\n  const { setOpen, active, setActive, checkEnd } = context;\r\n\r\n  return (\r\n    <OptionListItem\r\n      ref={ref}\r\n      className={cn(\"justify-between\", className)}\r\n      onClick={(e) => {\r\n        e.stopPropagation();\r\n        setOpen(false);\r\n        setActive(value);\r\n      }}\r\n      {...props}\r\n    >\r\n      {children}\r\n      {checkEnd && active == value && <Check />}\r\n    </OptionListItem>\r\n  );\r\n});\r\nSelectorContentItem.displayName = \"SelectorContentItem\";\r\n\r\nexport { Selector, SelectorTrigger, SelectorContent, SelectorContentItem };\r\n","\"use client\";\r\n\r\nimport {\r\n  useState,\r\n  useRef,\r\n  createContext,\r\n  useContext,\r\n  SetStateAction,\r\n  useLayoutEffect,\r\n} from \"react\";\r\nimport React from \"react\";\r\nimport { cn } from \"../../utils/cn\";\r\n\r\ninterface TabsContextProps {\r\n  active: { value: string; x: number; width: number };\r\n  setActive: React.Dispatch<\r\n    SetStateAction<{ value: string; x: number; width: number }>\r\n  >;\r\n}\r\nconst TabsContext = createContext<TabsContextProps | null>(null);\r\n\r\ninterface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  defaultValue: string;\r\n}\r\n\r\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\r\n  ({ className, defaultValue, ...props }, ref) => {\r\n    const [active, setActive] = useState({\r\n      value: defaultValue,\r\n      x: 0,\r\n      width: 0,\r\n    });\r\n\r\n    return (\r\n      <TabsContext.Provider value={{ active, setActive }}>\r\n        <div\r\n          ref={ref}\r\n          className={cn(\"flex flex-col space-y-2\", className)}\r\n          {...props}\r\n        />\r\n      </TabsContext.Provider>\r\n    );\r\n  }\r\n);\r\nTabs.displayName = \"Tabs\";\r\n\r\nconst TabList = React.forwardRef<\r\n  HTMLDivElement,\r\n  React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, children, ...props }, ref) => {\r\n  const context = useContext(TabsContext);\r\n  if (!context) throw new Error(\"TabList must be used within Tabs Component!\");\r\n\r\n  const { active } = context;\r\n  return (\r\n    <div\r\n      ref={ref}\r\n      className={cn(\r\n        \"bg-background border-border relative flex w-min rounded border p-px text-sm\",\r\n        className\r\n      )}\r\n      {...props}\r\n    >\r\n      <div\r\n        style={{\r\n          width: `${active.width}px`,\r\n          transform: `translateX(${active.x}px)`,\r\n        }}\r\n        className=\"bg-accent absolute top-px left-0 z-10 h-[calc(100%-2px)] rounded-[calc(var(--radius)-1px)] transition-all\"\r\n      />\r\n      {children}\r\n    </div>\r\n  );\r\n});\r\nTabList.displayName = \"TabList\";\r\n\r\ninterface TabProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  value: string;\r\n}\r\n\r\nconst Tab = React.forwardRef<HTMLDivElement, TabProps>(\r\n  ({ className, value, ...props }, ref) => {\r\n    const context = useContext(TabsContext);\r\n    if (!context) throw new Error(\"Tab must be used within Tabs Component!\");\r\n\r\n    const tabRef = useRef<HTMLDivElement | null>(null);\r\n    const { active, setActive } = context;\r\n\r\n    useLayoutEffect(() => {\r\n      if (active.value === value && tabRef.current) {\r\n        const rect = tabRef.current.getBoundingClientRect();\r\n        const parentRect =\r\n          tabRef.current.parentElement?.getBoundingClientRect();\r\n        if (parentRect) {\r\n          setActive((prev) => ({\r\n            ...prev,\r\n            x: Math.round(tabRef.current!.offsetLeft),\r\n            width: Math.round(rect.width),\r\n          }));\r\n        }\r\n      }\r\n    }, [active.value, value, setActive]);\r\n\r\n    return (\r\n      <div\r\n        ref={(el) => {\r\n          tabRef.current = el;\r\n          if (typeof ref === \"function\") ref(el);\r\n          else if (ref) ref.current = el;\r\n        }}\r\n        className={cn(\r\n          \"hover:bg-accent/25 z-20 cursor-pointer rounded px-4 py-1 font-medium text-nowrap transition-all\",\r\n          className\r\n        )}\r\n        onClick={() => {\r\n          if (tabRef.current) {\r\n            const rect = tabRef.current.getBoundingClientRect();\r\n            const parentRect =\r\n              tabRef.current.parentElement?.getBoundingClientRect();\r\n            if (parentRect) {\r\n              setActive({\r\n                value,\r\n                x: Math.round(tabRef.current.offsetLeft),\r\n                width: Math.round(rect.width),\r\n              });\r\n            }\r\n          }\r\n        }}\r\n        {...props}\r\n      />\r\n    );\r\n  }\r\n);\r\nTab.displayName = \"Tab\";\r\n\r\ninterface TabContentProps extends React.HTMLAttributes<HTMLDivElement> {\r\n  value: string;\r\n}\r\n\r\nconst TabContent = React.forwardRef<HTMLDivElement, TabContentProps>(\r\n  ({ className, value, ...props }, ref) => {\r\n    const context = useContext(TabsContext);\r\n    if (!context)\r\n      throw new Error(\"TabContent must be used within Tabs Component!\");\r\n\r\n    const { active } = context;\r\n    return (\r\n      <div\r\n        ref={ref}\r\n        className={cn(active.value === value ? \"\" : \"hidden\", className)}\r\n        {...props}\r\n      />\r\n    );\r\n  }\r\n);\r\nTabContent.displayName = \"TabContent\";\r\n\r\nexport { Tabs, TabList, Tab, TabContent };\r\n"],"names":["r","e","t","f","n","Array","isArray","o","length","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","classGroups","Map","processClassesRecursively","classGroup","forEach","classDefinition","isThemeGetter","push","Object","entries","key","getPart","path","currentClassPartObject","pathPart","has","set","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","value","createParseClassName","prefix","experimentalParseClassName","parseClassName","modifiers","postfixModifierPosition","bracketDepth","parenDepth","modifierStart","index","currentCharacter","MODIFIER_SEPARATOR","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","startsWith","isExternal","endsWith","createSortModifiers","orderSensitiveModifiers","fromEntries","map","modifier","sortedModifiers","unsortedModifiers","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","string","arguments","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","sortModifiers","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","variantModifier","modifierId","classId","includes","conflictGroups","i","group","mergeClassList","apply","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","Boolean","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isLabelShadow","testLabel","testValue","shouldMatchNoLabel","label","imageLabels","Set","sizeLabels","twMerge","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleMargin","scaleSizing","scaleColor","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleBlur","scaleOrigin","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","position","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","content","items","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","size","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","cn","inputs","clsx","AccordionContext","createContext","Accordion","React","forwardRef","_a","defaultValue","props","__rest","openItem","setOpenItem","useState","contentHeight","setContentHeight","useEffect","_jsx","Provider","children","displayName","AccordionItem","context","useContext","Error","isOpen","assign","height","onClick","Children","child","isValidElement","cloneElement","AccordionTitle","_jsxs","ChevronDown","AccordionContent","contentRef","useRef","useImperativeHandle","current","clientHeight","alertVariants","cva","variants","variant","default","success","warning","destructive","defaultVariants","Alert","role","AlertTitle","AlertDescription","Slot","only","buttonVariants","secondary","ghost","link","sm","lg","icon","Button","asChild","Card","CardHeader","CardContent","CardFooter","OptionList","title","titleSeperator","OptionListSection","seperator","OptionListItem","shortcut","ContextMenuContext","ContextMenu","open","setOpen","coords","setCoords","x","y","menuRef","handleClickOutside","target","contains","addEventListener","removeEventListener","ContextMenuTrigger","onContextMenu","preventDefault","rect","getBoundingClientRect","clientX","clientY","ContextMenuContent","ContextMenuSection","ContextMenuItem","DropdownContext","Dropdown","onHover","triggerRef","DropdownTrigger","stopPropagation","dropdownMenuVariants","center","DropdownMenu","DropdownSection","DropdownItem","SelectorContext","Selector","onValueChange","internalValue","setInternalValue","checkEnd","setCheckEnd","activeValue","active","setActive","newValue","SelectorTrigger","selectorContentVariants","SelectorContent","SelectorContentItem","Check","TabsContext","Tabs","width","TabList","Tab","tabRef","useLayoutEffect","parentElement","prev","Math","round","offsetLeft","el","TabContent"],"mappings":"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","x_google_ignoreList":[0,1,2]}