banhaten-ui 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +417 -0
- package/dist/index.js +4526 -0
- package/dist/index.js.map +1 -0
- package/package.json +2 -2
- package/dist/assets/index-BGiF-5-q.js +0 -120
- package/dist/index.html +0 -20
- /package/dist/{assets/index-CxVUKmCr.css → style.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/components/Button/Button.tsx","../src/components/SocialButton/SocialButton.tsx","../src/utils/cn.ts","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/CheckmarkCard/CheckmarkCard.tsx","../src/components/Switcher/Switcher.tsx","../src/components/Badge/Badge.tsx","../src/components/Alert/Alert.tsx","../src/components/Divider/Divider.tsx","../src/components/Menu/Menu.tsx","../src/components/Accordion/Accordion.tsx","../src/components/CodeBlock/CodeBlock.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;","/**\n * Concatenates two arrays faster than the array spread operator.\n */\nconst concatArrays = (array1, array2) => {\n // Pre-allocate for better V8 optimization\n const combinedArray = new Array(array1.length + array2.length);\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i];\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i];\n }\n return combinedArray;\n};\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (classGroupId, validator) => ({\n classGroupId,\n validator\n});\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (nextPart = new Map(), validators = null, classGroupId) => ({\n nextPart,\n validators,\n classGroupId\n});\nconst CLASS_PART_SEPARATOR = '-';\nconst EMPTY_CONFLICTS = [];\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className);\n }\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0;\n return getGroupRecursive(classParts, startIndex, classMap);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId];\n const baseConflicts = conflictingClassGroups[classGroupId];\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts);\n }\n // Only modifier conflicts\n return modifierConflicts;\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS;\n }\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, startIndex, classPartObject) => {\n const classPathsLength = classParts.length - startIndex;\n if (classPathsLength === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[startIndex];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);\n if (result) return result;\n }\n const validators = classPartObject.validators;\n if (validators === null) {\n return undefined;\n }\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);\n const validatorsLength = validators.length;\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i];\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId;\n }\n }\n return undefined;\n};\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = className => className.slice(1, -1).indexOf(':') === -1 ? undefined : (() => {\n const content = className.slice(1, -1);\n const colonIndex = content.indexOf(':');\n const property = content.slice(0, colonIndex);\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;\n})();\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n return processClassGroups(classGroups, theme);\n};\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (classGroups, theme) => {\n const classMap = createClassPartObject();\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId];\n processClassesRecursively(group, classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n const len = classGroup.length;\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i];\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme);\n }\n};\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId);\n return;\n }\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);\n return;\n }\n processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);\n};\nconst processStringDefinition = (classDefinition, classPartObject, classGroupId) => {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n};\nconst processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n if (classPartObject.validators === null) {\n classPartObject.validators = [];\n }\n classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));\n};\nconst processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n const entries = Object.entries(classDefinition);\n const len = entries.length;\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i];\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);\n }\n};\nconst getPart = (classPartObject, path) => {\n let current = classPartObject;\n const parts = path.split(CLASS_PART_SEPARATOR);\n const len = parts.length;\n for (let i = 0; i < len; i++) {\n const part = parts[i];\n let next = current.nextPart.get(part);\n if (!next) {\n next = createClassPartObject();\n current.nextPart.set(part, next);\n }\n current = next;\n }\n return current;\n};\n// Type guard maintains monomorphic check\nconst isThemeGetter = func => 'isThemeGetter' in func && func.isThemeGetter === true;\n\n// LRU cache implementation using plain objects for simplicity\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = Object.create(null);\n let previousCache = Object.create(null);\n const update = (key, value) => {\n cache[key] = value;\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = Object.create(null);\n }\n };\n return {\n get(key) {\n let value = cache[key];\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value;\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst EMPTY_MODIFIERS = [];\n// Pre-allocated result object shape for consistency\nconst createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal\n});\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 // Use simple array with push for better performance\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n const len = className.length;\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + 1;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') bracketDepth++;else if (currentCharacter === ']') bracketDepth--;else if (currentCharacter === '(') parenDepth++;else if (currentCharacter === ')') parenDepth--;\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier;\n let hasImportantModifier = false;\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1);\n hasImportantModifier = true;\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(1);\n hasImportantModifier = true;\n }\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\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 // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map();\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index); // High weights for sensitive mods\n });\n return modifiers => {\n const result = [];\n let currentSegment = [];\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i];\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '[';\n const isOrderSensitive = modifierWeights.has(modifier);\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n currentSegment = [];\n }\n result.push(modifier);\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier);\n }\n }\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n }\n return result;\n };\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 // Fast path: skip sorting for empty or single modifier\n const variantModifier = modifiers.length === 0 ? '' : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.indexOf(classId) > -1) {\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 */\nconst twJoin = (...classLists) => {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < classLists.length) {\n if (argument = classLists[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst toValue = mix => {\n // Fast path for strings\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};\nconst createTailwindMerge = (createConfigFirst, ...createConfigRest) => {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall;\n const 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 const 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 functionToCall = initTailwindMerge;\n return (...args) => functionToCall(twJoin(...args));\n};\nconst fallbackThemeArr = [];\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || fallbackThemeArr;\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { ReactNode, ButtonHTMLAttributes, forwardRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Loader2 } from \"lucide-react\";\n\nexport type ButtonVariant =\n | \"primary\"\n | \"soft\"\n | \"secondary\"\n | \"dashed\"\n | \"white\"\n | \"outline\"\n | \"ghost\"\n | \"ghost-primary\"\n | \"danger\"\n | \"soft-danger\";\n\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n /** The visual style variant of the button */\n variant?: ButtonVariant;\n /** The size of the button */\n size?: ButtonSize;\n /** Whether the button is in a loading state */\n loading?: boolean;\n /** Whether the button is disabled */\n disabled?: boolean;\n /** Whether the button should take full width of its container */\n fullWidth?: boolean;\n /** Icon to display on the left side of the button */\n iconLeft?: ReactNode;\n /** Icon to display on the right side of the button */\n iconRight?: ReactNode;\n /** Icon to display at the start (left) of the button - alias for iconLeft */\n startIcon?: ReactNode;\n /** Icon to display at the end (right) of the button - alias for iconRight */\n endIcon?: ReactNode;\n /** Icon for icon-only buttons */\n icon?: ReactNode;\n /** Enable RTL (Right-to-Left) mode for Arabic, Hebrew, and other RTL languages */\n rtl?: boolean;\n /** Button content */\n children?: ReactNode;\n}\n\n// Utility function to merge Tailwind classes\nfunction cn(...inputs: (string | undefined | null | false)[]) {\n return twMerge(clsx(inputs));\n}\n\n// Variant styles with dark mode support\nconst variantStyles: Record<ButtonVariant, string> = {\n primary: cn(\n // Light mode\n \"bg-primary-600 text-white\",\n \"hover:bg-primary-700\",\n \"active:bg-primary-800\",\n \"shadow-solid hover:shadow-solid-hover active:shadow-solid-active\",\n // Dark mode\n \"dark:bg-primary-500 dark:text-white\",\n \"dark:hover:bg-primary-600\",\n \"dark:active:bg-primary-700\"\n ),\n soft: cn(\n // Light mode\n \"bg-primary-50 text-primary-700\",\n \"hover:bg-primary-100\",\n \"active:bg-primary-200\",\n \"shadow-soft hover:shadow-soft-hover active:shadow-soft-active\",\n // Dark mode\n \"dark:bg-primary-950 dark:text-primary-300\",\n \"dark:hover:bg-primary-900\",\n \"dark:active:bg-primary-800\"\n ),\n secondary: cn(\n // Light mode\n \"bg-neutral-800 text-white\",\n \"hover:bg-neutral-900\",\n \"active:bg-black\",\n \"shadow-secondary hover:shadow-secondary-hover active:shadow-secondary-active\",\n // Dark mode\n \"dark:bg-neutral-700 dark:text-neutral-100\",\n \"dark:hover:bg-neutral-600\",\n \"dark:active:bg-neutral-500\"\n ),\n dashed: cn(\n // Light mode\n \"bg-white text-neutral-700 border border-dashed border-neutral-300\",\n \"hover:bg-neutral-50 hover:border-neutral-400\",\n \"active:bg-neutral-100\",\n \"shadow-outline hover:shadow-outline-hover active:shadow-outline-active\",\n // Dark mode\n \"dark:bg-neutral-900 dark:text-neutral-300 dark:border-neutral-700\",\n \"dark:hover:bg-neutral-800 dark:hover:border-neutral-600\",\n \"dark:active:bg-neutral-700\"\n ),\n white: cn(\n // Light mode\n \"bg-white text-neutral-900\",\n \"hover:bg-neutral-50\",\n \"active:bg-neutral-100\",\n \"shadow-white hover:shadow-white-hover active:shadow-white-active\",\n // Dark mode\n \"dark:bg-neutral-100 dark:text-neutral-900\",\n \"dark:hover:bg-neutral-200\",\n \"dark:active:bg-neutral-300\"\n ),\n outline: cn(\n // Light mode\n \"bg-white text-neutral-700 border border-neutral-300\",\n \"hover:bg-neutral-50 hover:border-neutral-400\",\n \"active:bg-neutral-100\",\n \"shadow-outline hover:shadow-outline-hover active:shadow-outline-active\",\n // Dark mode\n \"dark:bg-neutral-900 dark:text-neutral-300 dark:border-neutral-700\",\n \"dark:hover:bg-neutral-800 dark:hover:border-neutral-600\",\n \"dark:active:bg-neutral-700\"\n ),\n ghost: cn(\n // Light mode\n \"bg-transparent text-neutral-700\",\n \"hover:bg-neutral-100\",\n \"active:bg-neutral-200\",\n \"shadow-none\",\n // Dark mode\n \"dark:text-neutral-300\",\n \"dark:hover:bg-neutral-800\",\n \"dark:active:bg-neutral-700\"\n ),\n \"ghost-primary\": cn(\n // Light mode\n \"bg-transparent text-primary-600\",\n \"hover:bg-primary-50\",\n \"active:bg-primary-100\",\n \"shadow-none\",\n // Dark mode\n \"dark:text-primary-400\",\n \"dark:hover:bg-primary-950\",\n \"dark:active:bg-primary-900\"\n ),\n danger: cn(\n // Light mode\n \"bg-critical-600 text-white\",\n \"hover:bg-critical-700\",\n \"active:bg-critical-800\",\n \"shadow-solid hover:shadow-solid-hover active:shadow-solid-active\",\n // Dark mode\n \"dark:bg-critical-500 dark:text-white\",\n \"dark:hover:bg-critical-600\",\n \"dark:active:bg-critical-700\"\n ),\n \"soft-danger\": cn(\n // Light mode\n \"bg-critical-50 text-critical-700\",\n \"hover:bg-critical-100\",\n \"active:bg-critical-200\",\n \"shadow-soft hover:shadow-soft-hover active:shadow-soft-active\",\n // Dark mode\n \"dark:bg-critical-950 dark:text-critical-300\",\n \"dark:hover:bg-critical-900\",\n \"dark:active:bg-critical-800\"\n ),\n};\n\n// Size styles (from Figma specs)\nconst sizeStyles: Record<ButtonSize, string> = {\n xs: \"h-btn-xs pl-3 pr-1.5 py-2 gap-0.5\",\n sm: \"h-btn-sm pl-3 pr-2 py-2 gap-1\",\n md: \"h-btn-md pl-3 pr-2.5 py-0 gap-1\",\n lg: \"h-btn-lg pl-3 pr-3 py-3 gap-1\",\n};\n\n// Icon-only size styles (square buttons)\nconst iconOnlySizeStyles: Record<ButtonSize, string> = {\n xs: \"h-btn-xs w-btn-xs p-0\",\n sm: \"h-btn-sm w-btn-sm p-0\",\n md: \"h-btn-md w-btn-md p-0\",\n lg: \"h-btn-lg w-btn-lg p-0\",\n};\n\n/**\n * Primary UI component for user interaction.\n * Supports multiple variants, sizes, loading states, and icons on both left and right.\n * Features a sophisticated 3-layer shadow system matching the Figma design.\n * Includes RTL (Right-to-Left) support for Arabic, Hebrew, and other RTL languages.\n * \n * Size Specifications (from Figma):\n * - xs: 32px height, 6px/8px padding, 2px gap\n * - sm: 36px height, 8px padding, 4px gap\n * - md: 40px height, 10px horizontal padding, 4px gap\n * - lg: 48px height, 12px padding, 4px gap\n * \n * All sizes use:\n * - Border radius: 8px\n * - Font: Inter Medium, 15px, weight 500, line-height 24px\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"primary\",\n size = \"md\",\n loading = false,\n disabled = false,\n fullWidth = false,\n iconLeft,\n iconRight,\n startIcon,\n endIcon,\n icon,\n rtl = false,\n children,\n className,\n ...props\n },\n ref\n ) => {\n // Determine if this is an icon-only button\n const isIconOnly = icon && !children;\n \n // Support both iconLeft/iconRight and startIcon/endIcon\n // In RTL: startIcon/iconLeft should appear on right, endIcon/iconRight should appear on left\n // In LTR: startIcon/iconLeft should appear on left, endIcon/iconRight should appear on right\n const startIconNode = iconLeft || startIcon;\n const endIconNode = iconRight || endIcon;\n\n // Build class names\n const buttonClasses = cn(\n // Base styles\n \"inline-flex items-center justify-center\",\n \"font-sans text-btn font-medium\",\n \"rounded-control\",\n \"transition-all duration-150 ease-in-out\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2\",\n \"cursor-pointer\",\n \n // Variant styles\n variantStyles[variant],\n \n // Size styles\n isIconOnly ? iconOnlySizeStyles[size] : sizeStyles[size],\n \n // RTL support - only font, not flex-row-reverse (we handle order in render)\n rtl && \"font-sans-rtl\",\n \n // Full width\n fullWidth && \"w-full\",\n \n // Disabled styles\n (disabled || loading) && \"opacity-50 cursor-not-allowed shadow-none pointer-events-none\",\n \n // Custom className\n className\n );\n\n\n return (\n <button\n ref={ref}\n type=\"button\"\n disabled={disabled || loading}\n dir={rtl ? \"rtl\" : undefined}\n className={buttonClasses}\n {...props}\n >\n {/* Loading spinner or icon-only */}\n {loading ? (\n <Loader2 className=\"h-[20px] w-[20px] animate-spin\" />\n ) : isIconOnly ? (\n <span className=\"flex items-center justify-center h-[20px] w-[20px] [&>svg]:h-[20px] [&>svg]:w-[20px]\">\n {icon}\n </span>\n ) : null}\n \n {/* In RTL: render endIcon first (appears on left), then text, then startIcon (appears on right) */}\n {/* In LTR: render startIcon first (appears on left), then text, then endIcon (appears on right) */}\n {!isIconOnly && !loading && (\n <>\n {rtl ? (\n <>\n {/* End icon on left side in RTL - before text, needs margin-right */}\n {endIconNode && (\n <span className=\"flex items-center justify-center h-[20px] w-[20px] [&>svg]:h-[20px] [&>svg]:w-[20px] mr-1\">\n {endIconNode}\n </span>\n )}\n {/* Button text */}\n {children && (\n <span className=\"truncate\">{children}</span>\n )}\n {/* Start icon on right side in RTL - after text, needs margin-left */}\n {startIconNode && (\n <span className=\"flex items-center justify-center h-[20px] w-[20px] [&>svg]:h-[20px] [&>svg]:w-[20px] ml-1\">\n {startIconNode}\n </span>\n )}\n </>\n ) : (\n <>\n {/* Start icon on left side in LTR - before text, needs margin-right */}\n {startIconNode && (\n <span className=\"flex items-center justify-center h-[20px] w-[20px] [&>svg]:h-[20px] [&>svg]:w-[20px] mr-1\">\n {startIconNode}\n </span>\n )}\n {/* Button text */}\n {children && (\n <span className=\"truncate\">{children}</span>\n )}\n {/* End icon on right side in LTR - after text, needs margin-left */}\n {endIconNode && (\n <span className=\"flex items-center justify-center h-[20px] w-[20px] [&>svg]:h-[20px] [&>svg]:w-[20px] ml-1\">\n {endIconNode}\n </span>\n )}\n </>\n )}\n </>\n )}\n \n {/* Loading state with text */}\n {loading && !isIconOnly && children && (\n <span className=\"truncate ml-1\">{children}</span>\n )}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import { ButtonHTMLAttributes, forwardRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport { \n FaFacebook, \n FaLinkedin, \n FaApple, \n FaWhatsapp, \n FaGoogle,\n FaXTwitter\n} from \"react-icons/fa6\";\n\nexport type SocialPlatform = \"Facebook\" | \"LinkedIn\" | \"Apple\" | \"WhatsApp\" | \"Google\" | \"X\";\nexport type SocialButtonType = \"Default\" | \"IconOnly\";\nexport type SocialButtonStyle = \"Solid\" | \"Outlined\";\n\nexport interface SocialButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\" | \"type\" | \"style\"> {\n /** The social platform */\n platform: SocialPlatform;\n /** The type of button - Default with text or IconOnly */\n type?: SocialButtonType;\n /** The visual style variant */\n style?: SocialButtonStyle;\n /** Enable RTL (Right-to-Left) mode */\n rtl?: boolean;\n}\n\n// Utility function to merge Tailwind classes\nfunction cn(...inputs: (string | undefined | null | false)[]) {\n return twMerge(clsx(inputs));\n}\n\n// Platform labels (English)\nconst platformLabels: Record<SocialPlatform, string> = {\n Facebook: \"Sign in with Facebook\",\n LinkedIn: \"Sign in with LinkedIn\",\n Apple: \"Sign in with Apple\",\n WhatsApp: \"Sign in with WhatsApp\",\n Google: \"Sign in with Google\",\n X: \"Sign in with X\",\n};\n\n// Platform labels (Arabic - RTL)\nconst platformLabelsRTL: Record<SocialPlatform, string> = {\n Facebook: \"تسجيل الدخول باستخدام فيسبوك\",\n LinkedIn: \"تسجيل الدخول باستخدام لينكد إن\",\n Apple: \"تسجيل الدخول باستخدام آبل\",\n WhatsApp: \"تسجيل الدخول باستخدام واتساب\",\n Google: \"تسجيل الدخول باستخدام جوجل\",\n X: \"تسجيل الدخول باستخدام إكس\",\n};\n\n// Platform color mappings with hover/focus colors\nconst platformColors: Record<SocialPlatform, { \n bg: string; \n hoverBg: string; \n focusRing: string; \n text: string; \n border: string; \n textColor: string;\n}> = {\n Facebook: {\n bg: \"bg-social-facebook\",\n hoverBg: \"hover:bg-[#166FE5]\",\n focusRing: \"focus-visible:ring-[#1460CC]\",\n text: \"text-white\",\n border: \"border-social-facebook\",\n textColor: \"text-social-facebook\",\n },\n LinkedIn: {\n bg: \"bg-social-linkedin\",\n hoverBg: \"hover:bg-[#09599A]\",\n focusRing: \"focus-visible:ring-[#084C82]\",\n text: \"text-white\",\n border: \"border-social-linkedin\",\n textColor: \"text-social-linkedin\",\n },\n Apple: {\n bg: \"bg-social-apple\",\n hoverBg: \"hover:bg-[#1a1a1a]\",\n focusRing: \"focus-visible:ring-[#333333]\",\n text: \"text-white\",\n border: \"border-social-apple\",\n textColor: \"text-social-apple\",\n },\n WhatsApp: {\n bg: \"bg-social-whatsapp\",\n hoverBg: \"hover:bg-[#22C55E]\",\n focusRing: \"focus-visible:ring-[#1FA855]\",\n text: \"text-white\",\n border: \"border-social-whatsapp\",\n textColor: \"text-social-whatsapp\",\n },\n Google: {\n bg: \"bg-social-google\",\n hoverBg: \"hover:bg-[#357AE5]\",\n focusRing: \"focus-visible:ring-[#2E6FD6]\",\n text: \"text-white\",\n border: \"border-social-google\",\n textColor: \"text-social-google\",\n },\n X: {\n bg: \"bg-social-twitter\",\n hoverBg: \"hover:bg-[#1A91E0]\",\n focusRing: \"focus-visible:ring-[#1781CE]\",\n text: \"text-white\",\n border: \"border-social-twitter\",\n textColor: \"text-social-twitter\",\n },\n};\n\n// Platform icons using react-icons\nconst getPlatformIcon = (platform: SocialPlatform): React.ReactNode => {\n const iconSize = 20;\n \n const icons: Record<SocialPlatform, React.ReactNode> = {\n Facebook: <FaFacebook size={iconSize} />,\n LinkedIn: <FaLinkedin size={iconSize} />,\n Apple: <FaApple size={iconSize} />,\n WhatsApp: <FaWhatsapp size={iconSize} />,\n Google: <FaGoogle size={iconSize} />,\n X: <FaXTwitter size={iconSize} />,\n };\n \n return icons[platform];\n};\n\n/**\n * SocialButton component for social media authentication buttons.\n * Supports multiple platforms (Facebook, LinkedIn, Apple, WhatsApp, Google, X),\n * two types (Default with text, IconOnly), two styles (Solid, Outlined),\n * and RTL support.\n * \n * Specifications:\n * - Height: 36px\n * - Font: Inter Medium, 15px, weight 500, line-height 24px\n * - Border radius: 8px\n * - Icon size: 20px × 20px\n * - Left padding: 12px\n * - Shadow: component/default shadow system\n */\nexport const SocialButton = forwardRef<HTMLButtonElement, SocialButtonProps>(\n (\n {\n platform,\n type = \"Default\",\n style = \"Solid\",\n rtl = false,\n disabled = false,\n className,\n ...props\n },\n ref\n ) => {\n const isRTL = rtl;\n const isIconOnly = type === \"IconOnly\";\n const isOutlined = style === \"Outlined\";\n const colors = platformColors[platform];\n const icon = getPlatformIcon(platform);\n const label = isRTL ? platformLabelsRTL[platform] : platformLabels[platform];\n\n // Build base classes\n const baseClasses = cn(\n // Base styles\n \"inline-flex items-center justify-center\",\n \"font-sans text-btn font-medium\",\n \"rounded-control\",\n \"transition-all duration-150 ease-in-out\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"cursor-pointer\",\n \"relative\",\n \n // Size styles\n isIconOnly ? \"h-9 w-9 p-0\" : \"h-9 pl-3 pr-3 py-0 gap-0.5\",\n \n // RTL support - only font, not flex-row-reverse (we handle order in render)\n isRTL && \"font-sans-rtl\",\n \n // Disabled styles\n disabled && \"opacity-50 cursor-not-allowed pointer-events-none\",\n \n // Custom className\n className\n );\n\n // Style-specific classes\n const styleClasses = cn(\n style === \"Solid\"\n ? cn(\n colors.bg,\n colors.text,\n colors.hoverBg,\n colors.focusRing,\n \"border border-transparent\",\n \"shadow-component-default\",\n \"hover:shadow-component-hover\",\n \"focus-visible:shadow-component-focus\"\n )\n : cn(\n \"bg-white\",\n colors.border,\n colors.textColor,\n \"border\",\n \"shadow-outline\",\n \"hover:bg-neutral-50\",\n \"hover:shadow-outline-hover\",\n colors.focusRing\n )\n );\n\n // Icon wrapper classes\n const iconClasses = cn(\n \"flex items-center justify-center flex-shrink-0\",\n \"h-[20px] w-[20px]\",\n isIconOnly ? \"\" : (isRTL ? \"mr-0.5\" : \"mr-0.5\"),\n isOutlined && colors.textColor\n );\n\n // Render icon\n const renderIcon = () => (\n <span className={iconClasses}>\n {icon}\n </span>\n );\n\n return (\n <button\n ref={ref}\n type=\"button\"\n disabled={disabled}\n dir={isRTL ? \"rtl\" : undefined}\n className={cn(baseClasses, styleClasses)}\n {...props}\n >\n {/* In RTL: render Text first then Icon (icon appears on right side) */}\n {/* In LTR: render Icon first then Text (icon appears on left side) */}\n {isRTL ? (\n <>\n {!isIconOnly && (\n <span className={cn(\"truncate relative z-10\", isOutlined && colors.textColor)}>{label}</span>\n )}\n {renderIcon()}\n </>\n ) : (\n <>\n {renderIcon()}\n {!isIconOnly && (\n <span className={cn(\"truncate relative z-10\", isOutlined && colors.textColor)}>{label}</span>\n )}\n </>\n )}\n </button>\n );\n }\n);\n\nSocialButton.displayName = \"SocialButton\";\n\n","import { clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: (string | undefined | null | false)[]) {\n return twMerge(clsx(inputs));\n}\n\n","import React, { forwardRef } from 'react';\nimport { LucideIcon, Plus } from 'lucide-react';\nimport { cn } from '../../utils/cn';\n\nexport interface ButtonGroupItem {\n /** Button text label */\n label?: string;\n /** Icon component from lucide-react */\n icon?: LucideIcon;\n /** Click handler for this button */\n onClick?: () => void;\n /** Whether this button is disabled */\n disabled?: boolean;\n /** Whether this button is active/selected */\n active?: boolean;\n}\n\nexport interface ButtonGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {\n /** Array of button items */\n items: ButtonGroupItem[];\n /** Button group size */\n size?: 'xs' | 'sm' | 'md';\n /** Button group type */\n type?: 'Default' | 'IconOnly';\n /** RTL mode */\n rtl?: boolean;\n /** RTL button labels (array matching items) */\n rtlLabels?: string[];\n}\n\nexport const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n {\n items = [],\n size = 'md',\n type = 'Default',\n rtl = false,\n rtlLabels = [],\n className,\n ...props\n },\n ref\n ) => {\n // Size-specific classes\n const sizeConfig = {\n xs: {\n height: 'h-[32px]',\n padding: type === 'IconOnly' ? 'px-1.5' : 'px-2',\n gap: type === 'IconOnly' ? 'gap-0.5' : 'gap-1',\n },\n sm: {\n height: 'h-[36px]',\n padding: type === 'IconOnly' ? 'px-2' : 'px-2.5',\n gap: type === 'IconOnly' ? 'gap-1' : 'gap-1',\n },\n md: {\n height: 'h-[40px]',\n padding: type === 'IconOnly' ? 'px-2.5' : 'px-3.5',\n gap: type === 'IconOnly' ? 'gap-1' : 'gap-1',\n },\n };\n\n const config = sizeConfig[size];\n\n // Base container classes\n const containerClasses = cn(\n 'relative inline-flex items-center overflow-hidden',\n 'bg-neutral-50 border border-neutral-300 rounded-control',\n 'shadow-[0px_1px_2px_0px_rgba(15,17,20,0.05)]',\n rtl && 'flex-row-reverse',\n className\n );\n\n // Button item base classes\n const buttonItemClasses = (item: ButtonGroupItem, isFirst: boolean, _isLast: boolean) => cn(\n 'relative flex items-center justify-center',\n 'bg-transparent transition-all duration-150',\n config.height,\n config.padding,\n config.gap,\n 'text-neutral-700 text-[15px] font-medium leading-[24px]',\n !item.disabled && 'hover:bg-neutral-100 active:bg-neutral-200',\n !item.disabled && 'cursor-pointer',\n item.disabled && 'opacity-50 cursor-not-allowed',\n item.active && 'bg-neutral-100',\n // Divider on the left (right in RTL)\n !isFirst && 'before:absolute before:left-0 before:top-0 before:bottom-0',\n !isFirst && 'before:w-px before:bg-neutral-300/50',\n rtl && !isFirst && 'before:left-auto before:right-0'\n );\n\n return (\n <div ref={ref} className={containerClasses} {...props}>\n {/* Inner shadow overlay */}\n <div className=\"absolute inset-0 pointer-events-none rounded-control shadow-[inset_0px_-1px_0px_0px_rgba(0,0,0,0.08)]\" />\n\n {/* Button items */}\n {items.map((item, index) => {\n const Icon = item.icon || Plus;\n const isFirst = index === 0;\n const isLast = index === items.length - 1;\n const displayLabel = rtl && rtlLabels[index] ? rtlLabels[index] : item.label;\n\n return (\n <button\n key={index}\n type=\"button\"\n onClick={item.onClick}\n disabled={item.disabled}\n className={buttonItemClasses(item, isFirst, isLast)}\n >\n {type === 'Default' ? (\n <>\n {rtl ? (\n <>\n {/* RTL: Text first, then icon */}\n {displayLabel && (\n <span className=\"px-0.5 whitespace-nowrap font-sans-rtl\">\n {displayLabel}\n </span>\n )}\n <Icon className=\"w-5 h-5 shrink-0\" />\n </>\n ) : (\n <>\n {/* LTR: Icon first, then text */}\n <Icon className=\"w-5 h-5 shrink-0\" />\n {displayLabel && (\n <span className=\"px-0.5 whitespace-nowrap\">\n {displayLabel}\n </span>\n )}\n </>\n )}\n </>\n ) : (\n // IconOnly type\n <Icon className=\"w-5 h-5 shrink-0\" />\n )}\n </button>\n );\n })}\n </div>\n );\n }\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n\n","import { forwardRef, InputHTMLAttributes } from 'react';\nimport { Check, Minus } from 'lucide-react';\nimport { cn } from '../../utils/cn';\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n /** Checkbox label */\n label?: string;\n /** Support text below label */\n supportText?: string;\n /** RTL label (Arabic) */\n rtlLabel?: string;\n /** RTL support text (Arabic) */\n rtlSupportText?: string;\n /** Checkbox position relative to label */\n checkLocation?: 'leading' | 'trailing';\n /** Indeterminate state */\n indeterminate?: boolean;\n /** RTL mode */\n rtl?: boolean;\n /** Error state */\n error?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n supportText,\n rtlLabel,\n rtlSupportText,\n checkLocation = 'leading',\n indeterminate = false,\n rtl = false,\n error = false,\n disabled = false,\n checked = false,\n className,\n ...props\n },\n ref\n ) => {\n const displayLabel = rtl && rtlLabel ? rtlLabel : label;\n const displaySupportText = rtl && rtlSupportText ? rtlSupportText : supportText;\n const hasSupportText = !!supportText || !!rtlSupportText;\n\n // Checkbox box classes\n const checkboxBoxClasses = cn(\n 'relative w-5 h-5 rounded border flex items-center justify-center transition-all duration-150',\n 'bg-white shadow-[0px_1px_2px_0px_rgba(15,17,20,0.05)]',\n // Border and background states\n !checked && !indeterminate && !error && !disabled && 'border-neutral-300',\n !checked && !indeterminate && error && !disabled && 'border-danger-500',\n (checked || indeterminate) && !disabled && 'bg-primary-500 border-primary-500',\n // Hover states\n !disabled && !checked && !indeterminate && 'hover:border-neutral-400',\n !disabled && (checked || indeterminate) && 'hover:bg-primary-600 hover:border-primary-600',\n // Focus states (handled by focus-visible on input)\n // Disabled state\n disabled && 'opacity-50 cursor-not-allowed',\n // Inner shadow\n 'after:absolute after:inset-0 after:rounded after:pointer-events-none',\n 'after:shadow-[inset_0px_-1px_0px_0px_rgba(0,0,0,0.08)]'\n );\n\n // Container classes\n const containerClasses = cn(\n 'inline-flex gap-2 items-start',\n hasSupportText ? 'items-start' : 'items-center',\n rtl && 'flex-row-reverse',\n checkLocation === 'trailing' && !rtl && 'flex-row-reverse',\n checkLocation === 'leading' && rtl && 'flex-row-reverse',\n className\n );\n\n // Label wrapper classes\n const labelWrapperClasses = cn(\n 'flex flex-col flex-1 min-w-0',\n hasSupportText ? 'justify-center' : 'justify-center',\n rtl && 'items-end text-right'\n );\n\n // Label classes\n const labelClasses = cn(\n 'text-[15px] leading-6 font-medium text-neutral-900',\n rtl && 'font-sans-rtl',\n disabled && 'opacity-50'\n );\n\n // Support text classes\n const supportTextClasses = cn(\n 'text-[13px] leading-5 font-normal text-neutral-600',\n rtl && 'font-sans-rtl',\n disabled && 'opacity-50'\n );\n\n return (\n <label className={containerClasses}>\n {/* Hidden native checkbox */}\n <input\n ref={ref}\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n className=\"sr-only peer\"\n {...props}\n />\n\n {/* Custom checkbox wrapper */}\n <div className=\"flex items-start shrink-0 pt-0.5\">\n <div className={checkboxBoxClasses}>\n {/* Check icon */}\n {checked && !indeterminate && (\n <Check className=\"w-3 h-3 text-white stroke-[2.5]\" />\n )}\n {/* Indeterminate icon */}\n {indeterminate && (\n <Minus className=\"w-3 h-3 text-white stroke-[2.5]\" />\n )}\n </div>\n\n {/* Focus ring */}\n <div\n className={cn(\n 'absolute inset-0 rounded pointer-events-none opacity-0',\n 'peer-focus-visible:opacity-100',\n 'shadow-[0_0_0_3px_rgba(50,118,255,0.2)]',\n 'transition-opacity duration-150'\n )}\n />\n </div>\n\n {/* Label and support text */}\n {(label || rtlLabel) && (\n <div className={labelWrapperClasses} dir={rtl ? 'rtl' : undefined}>\n <span className={labelClasses}>{displayLabel}</span>\n {hasSupportText && (\n <span className={supportTextClasses}>{displaySupportText}</span>\n )}\n </div>\n )}\n </label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\n","import React, { forwardRef, HTMLAttributes } from 'react';\nimport { LucideIcon } from 'lucide-react';\nimport { cn } from '../../utils/cn';\n\nexport interface CheckmarkCardProps extends Omit<HTMLAttributes<HTMLElement>, 'style' | 'onChange'> {\n /** Card label */\n label: string;\n /** Support text below label */\n supportText?: string;\n /** RTL label (Arabic) */\n rtlLabel?: string;\n /** RTL support text (Arabic) */\n rtlSupportText?: string;\n /** Whether the card is selected */\n selected?: boolean;\n /** Whether the card is disabled */\n disabled?: boolean;\n /** Card type */\n type?: 'default' | 'icon-left' | 'icon-right' | 'label-only';\n /** Optional icon component from lucide-react */\n icon?: LucideIcon;\n /** Custom icon node (for avatars, payment icons, etc.) */\n customIcon?: React.ReactNode;\n /** RTL mode */\n rtl?: boolean;\n /** On change handler */\n onChange?: (selected: boolean) => void;\n}\n\nexport const CheckmarkCard = forwardRef<HTMLDivElement, CheckmarkCardProps>(\n (\n {\n label,\n supportText,\n rtlLabel,\n rtlSupportText,\n selected = false,\n disabled = false,\n type = 'default',\n icon: Icon,\n customIcon,\n rtl = false,\n onChange,\n className,\n ...props\n },\n ref\n ) => {\n const displayLabel = rtl && rtlLabel ? rtlLabel : label;\n const displaySupportText = rtl && rtlSupportText ? rtlSupportText : supportText;\n const hasIcon = !!Icon || !!customIcon;\n const hasSupportText = !!supportText || !!rtlSupportText;\n\n const handleClick = () => {\n if (!disabled && onChange) {\n onChange(!selected);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (!disabled && (e.key === ' ' || e.key === 'Enter')) {\n e.preventDefault();\n onChange?.(!selected);\n }\n };\n\n // Card container classes\n const containerClasses = cn(\n 'relative flex items-start gap-4 p-4 w-full max-w-[338px]',\n 'bg-white border rounded-xl transition-all duration-150',\n 'shadow-[0px_1px_2px_0px_rgba(15,17,20,0.05)]',\n // Inner shadow\n 'after:absolute after:inset-0 after:rounded-xl after:pointer-events-none',\n 'after:shadow-[inset_0px_-1px_0px_0px_rgba(0,0,0,0.08)]',\n // State styles\n !disabled && !selected && 'border-neutral-200',\n !disabled && selected && 'border-primary-500 border-2',\n !disabled && 'hover:bg-neutral-50 cursor-pointer',\n disabled && 'border-neutral-200 bg-neutral-50 cursor-not-allowed',\n // RTL\n rtl && 'flex-row-reverse',\n className\n );\n\n // Checkbox classes\n const checkboxClasses = cn(\n 'relative w-5 h-5 rounded border flex items-center justify-center transition-all duration-150 shrink-0 mt-0.5',\n 'bg-white shadow-[0px_1px_2px_0px_rgba(15,17,20,0.05)]',\n // Border and background states\n !selected && !disabled && 'border-neutral-300',\n selected && !disabled && 'bg-primary-500 border-primary-500',\n disabled && 'bg-neutral-100 border-neutral-200',\n // Inner shadow\n 'after:absolute after:inset-0 after:rounded after:pointer-events-none',\n 'after:shadow-[inset_0px_-1px_0px_0px_rgba(0,0,0,0.08)]'\n );\n\n // Content wrapper classes\n const contentClasses = cn(\n 'flex flex-1 min-w-0',\n (type === 'icon-left' && hasIcon) || (type === 'default' && hasIcon) ? 'gap-3' : '',\n rtl && 'flex-row-reverse'\n );\n\n // Text wrapper classes\n const textClasses = cn(\n 'flex flex-col gap-0.5 flex-1 min-w-0',\n rtl && 'items-end text-right'\n );\n\n // Label classes\n const labelClasses = cn(\n 'text-[15px] leading-6 font-medium text-neutral-900',\n rtl && 'font-sans-rtl',\n disabled && 'text-neutral-400'\n );\n\n // Support text classes\n const supportTextClasses = cn(\n 'text-[14px] leading-5 font-normal text-neutral-600',\n rtl && 'font-sans-rtl',\n disabled && 'text-neutral-400'\n );\n\n // Icon wrapper classes\n const iconWrapperClasses = cn(\n 'shrink-0',\n disabled && 'opacity-60'\n );\n\n const renderCheckbox = () => (\n <div className={checkboxClasses}>\n {selected && (\n <svg\n className=\"w-3 h-3 text-white\"\n fill=\"none\"\n viewBox=\"0 0 12 12\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n >\n <path\n d=\"M2.5 6.5L4.5 8.5L9.5 3.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </div>\n );\n\n const renderIcon = () => {\n if (customIcon) {\n return <div className={iconWrapperClasses}>{customIcon}</div>;\n }\n if (Icon) {\n return (\n <div className={iconWrapperClasses}>\n <Icon className=\"w-6 h-6 text-neutral-600\" />\n </div>\n );\n }\n return null;\n };\n\n const renderContent = () => {\n // Label only (no icons, checkbox separate)\n if (type === 'label-only' && !hasSupportText) {\n return (\n <div className={cn('flex items-center flex-1 gap-3', rtl && 'flex-row-reverse')}>\n {renderCheckbox()}\n <span className={labelClasses} dir={rtl ? 'rtl' : undefined}>\n {displayLabel}\n </span>\n </div>\n );\n }\n\n // Icon on the left side (with checkbox either left or right)\n if (type === 'icon-left') {\n return (\n <>\n {renderCheckbox()}\n <div className={contentClasses}>\n <div className={textClasses} dir={rtl ? 'rtl' : undefined}>\n <span className={labelClasses}>{displayLabel}</span>\n {hasSupportText && (\n <span className={supportTextClasses}>{displaySupportText}</span>\n )}\n </div>\n </div>\n </>\n );\n }\n\n // Icon on the right side\n if (type === 'icon-right') {\n return (\n <>\n <div className={contentClasses}>\n <div className={textClasses} dir={rtl ? 'rtl' : undefined}>\n <span className={labelClasses}>{displayLabel}</span>\n {hasSupportText && (\n <span className={supportTextClasses}>{displaySupportText}</span>\n )}\n </div>\n </div>\n {renderCheckbox()}\n </>\n );\n }\n\n // Default: Icon/content left, checkbox right\n return (\n <>\n <div className={contentClasses}>\n {renderIcon()}\n <div className={textClasses} dir={rtl ? 'rtl' : undefined}>\n <span className={labelClasses}>{displayLabel}</span>\n {hasSupportText && (\n <span className={supportTextClasses}>{displaySupportText}</span>\n )}\n </div>\n </div>\n {renderCheckbox()}\n </>\n );\n };\n\n const Element = disabled ? 'div' : 'button';\n\n return (\n <Element\n ref={ref as any}\n className={containerClasses}\n onClick={!disabled ? handleClick : undefined}\n onKeyDown={!disabled ? handleKeyDown : undefined}\n disabled={disabled}\n role={!disabled ? 'checkbox' : undefined}\n aria-checked={!disabled ? selected : undefined}\n aria-disabled={disabled}\n tabIndex={!disabled ? 0 : undefined}\n {...props}\n >\n {renderContent()}\n </Element>\n );\n }\n);\n\nCheckmarkCard.displayName = 'CheckmarkCard';\n\n","import { forwardRef, InputHTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type SwitcherSize = 'sm' | 'md' | 'lg';\n\nexport interface SwitcherProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'onChange'> {\n /** Label text for the switcher */\n label?: string;\n /** Whether the switcher is checked */\n checked?: boolean;\n /** Callback when the switcher is changed */\n onChange?: (checked: boolean) => void;\n /** Callback when the switcher state changes */\n onCheckedChange?: (checked: boolean) => void;\n /** Size of the switcher */\n size?: SwitcherSize;\n /** Enable RTL mode */\n rtl?: boolean;\n /** Disabled state */\n disabled?: boolean;\n}\n\n/**\n * Switcher Component - Toggle switch for binary options\n * Supports RTL, different sizes, and dark mode\n * Perfect for theme switching (light/dark) and direction switching (LTR/RTL)\n */\nexport const Switcher = forwardRef<HTMLInputElement, SwitcherProps>(\n (\n {\n label,\n checked = false,\n onChange,\n onCheckedChange,\n size = 'md',\n rtl = false,\n disabled = false,\n className,\n ...props\n },\n ref\n ) => {\n const handleChange = () => {\n if (onChange) onChange(checked);\n if (onCheckedChange) onCheckedChange(checked);\n };\n\n // Size configurations\n const sizeConfig = {\n sm: {\n track: 'w-9 h-5',\n thumb: 'w-4 h-4',\n translateChecked: 'translate-x-4',\n translateUnchecked: 'translate-x-0.5',\n },\n md: {\n track: 'w-11 h-6',\n thumb: 'w-5 h-5',\n translateChecked: 'translate-x-5',\n translateUnchecked: 'translate-x-0.5',\n },\n lg: {\n track: 'w-14 h-7',\n thumb: 'w-6 h-6',\n translateChecked: 'translate-x-7',\n translateUnchecked: 'translate-x-0.5',\n },\n };\n\n const config = sizeConfig[size];\n\n // Track classes (with RTL support via dir attribute and CSS)\n const trackClasses = cn(\n 'relative inline-flex items-center shrink-0 rounded-full transition-colors duration-200 ease-in-out',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2',\n config.track,\n // Light mode\n checked\n ? 'bg-primary-600 hover:bg-primary-700'\n : 'bg-neutral-200 hover:bg-neutral-300',\n // Dark mode\n 'dark:focus-visible:ring-offset-neutral-900',\n checked\n ? 'dark:bg-primary-500 dark:hover:bg-primary-600'\n : 'dark:bg-neutral-700 dark:hover:bg-neutral-600',\n // Disabled\n disabled && 'opacity-50 cursor-not-allowed',\n !disabled && 'cursor-pointer',\n // RTL support - we'll use dir=\"rtl\" on the track to flip the layout\n rtl && 'rtl'\n );\n\n // Thumb classes\n // In RTL mode with dir=\"rtl\", positive translations will automatically flip direction\n const thumbClasses = cn(\n 'pointer-events-none inline-block rounded-full bg-white shadow-lg ring-0 transition-transform duration-200 ease-in-out',\n config.thumb,\n // Use same positive translations for both LTR and RTL\n // RTL flip happens via dir=\"rtl\" attribute on parent\n checked ? config.translateChecked : config.translateUnchecked,\n // Dark mode\n 'dark:bg-neutral-200'\n );\n\n // Container classes\n const containerClasses = cn(\n 'inline-flex items-center gap-3',\n rtl && 'flex-row-reverse',\n className\n );\n\n // Label classes\n const labelClasses = cn(\n 'text-sm font-medium',\n 'text-neutral-900 dark:text-neutral-100',\n disabled && 'opacity-50 cursor-not-allowed',\n !disabled && 'cursor-pointer'\n );\n\n return (\n <label className={containerClasses} dir={rtl ? 'rtl' : undefined}>\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n className=\"sr-only\"\n {...props}\n />\n <span className={trackClasses} dir={rtl ? 'rtl' : undefined}>\n <span className={thumbClasses} />\n </span>\n {label && <span className={labelClasses}>{label}</span>}\n </label>\n );\n }\n);\n\nSwitcher.displayName = 'Switcher';\n\n","import { ReactNode, HTMLAttributes, forwardRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport type BadgeType = \"Default\" | \"LeadingIcon\" | \"TrailingIcon\" | \"Dot\" | \"Flag\";\nexport type BadgeStyle = \"Light\" | \"Outline\" | \"Solid\";\nexport type BadgeSize = \"sm\" | \"lg\";\nexport type BadgeColor =\n | \"Neutral\"\n | \"Blue\"\n | \"Green\"\n | \"Amber\"\n | \"Danger\"\n | \"Purple\"\n | \"Fuchsia\"\n | \"Rose\"\n | \"Sky\"\n | \"Golden\";\n\nexport interface BadgeProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\" | \"style\"> {\n /** The type of badge */\n type?: BadgeType;\n /** The visual style variant */\n style?: BadgeStyle;\n /** The size of the badge */\n size?: BadgeSize;\n /** The color variant */\n color?: BadgeColor;\n /** Whether to show a number instead of text */\n showNumber?: boolean;\n /** The number to display (when showNumber is true) */\n number?: number;\n /** The badge text content */\n children?: ReactNode;\n /** Icon to display on the left (for LeadingIcon type) */\n leadingIcon?: ReactNode;\n /** Icon to display on the right (for TrailingIcon type) */\n trailingIcon?: ReactNode;\n /** Flag icon (for Flag type) */\n flagIcon?: ReactNode;\n /** Enable RTL (Right-to-Left) mode */\n rtl?: boolean;\n}\n\n// Utility function to merge Tailwind classes\nfunction cn(...inputs: (string | undefined | null | false)[]) {\n return twMerge(clsx(inputs));\n}\n\n// Style variants - explicit mappings for all color/style combinations\nconst styleVariants: Record<BadgeStyle, Record<BadgeColor, string>> = {\n Light: {\n Neutral: \"bg-neutral-50 text-neutral-700 border border-neutral-100\",\n Blue: \"bg-blue-50 text-blue-700 border border-blue-100\",\n Green: \"bg-green-50 text-green-700 border border-green-100\",\n Amber: \"bg-amber-50 text-amber-700 border border-amber-100\",\n Danger: \"bg-critical-50 text-critical-700 border border-critical-100\",\n Purple: \"bg-purple-50 text-purple-700 border border-purple-100\",\n Fuchsia: \"bg-fuchsia-50 text-fuchsia-700 border border-fuchsia-100\",\n Rose: \"bg-rose-50 text-rose-700 border border-rose-100\",\n Sky: \"bg-sky-50 text-sky-700 border border-sky-100\",\n Golden: \"bg-golden-50 text-golden-700 border border-golden-100\",\n },\n Outline: {\n Neutral: \"bg-white text-neutral-700 border border-neutral-300\",\n Blue: \"bg-white text-neutral-700 border border-blue-300\",\n Green: \"bg-white text-neutral-700 border border-green-300\",\n Amber: \"bg-white text-neutral-700 border border-amber-300\",\n Danger: \"bg-white text-neutral-700 border border-critical-300\",\n Purple: \"bg-white text-neutral-700 border border-purple-300\",\n Fuchsia: \"bg-white text-neutral-700 border border-fuchsia-300\",\n Rose: \"bg-white text-neutral-700 border border-rose-300\",\n Sky: \"bg-white text-neutral-700 border border-sky-300\",\n Golden: \"bg-white text-neutral-700 border border-golden-300\",\n },\n Solid: {\n Neutral: \"bg-neutral-600 text-white border border-transparent\",\n Blue: \"bg-blue-600 text-white border border-transparent\",\n Green: \"bg-green-600 text-white border border-transparent\",\n Amber: \"bg-amber-600 text-white border border-transparent\",\n Danger: \"bg-critical-600 text-white border border-transparent\",\n Purple: \"bg-purple-600 text-white border border-transparent\",\n Fuchsia: \"bg-fuchsia-600 text-white border border-transparent\",\n Rose: \"bg-rose-600 text-white border border-transparent\",\n Sky: \"bg-sky-600 text-white border border-transparent\",\n Golden: \"bg-golden-600 text-white border border-transparent\",\n },\n};\n\n// Dot color classes\nconst dotColorClasses: Record<BadgeStyle, Record<BadgeColor, string>> = {\n Light: {\n Neutral: \"bg-neutral-600\",\n Blue: \"bg-blue-600\",\n Green: \"bg-green-600\",\n Amber: \"bg-amber-600\",\n Danger: \"bg-critical-600\",\n Purple: \"bg-purple-600\",\n Fuchsia: \"bg-fuchsia-600\",\n Rose: \"bg-rose-600\",\n Sky: \"bg-sky-600\",\n Golden: \"bg-golden-600\",\n },\n Outline: {\n Neutral: \"bg-neutral-600\",\n Blue: \"bg-blue-600\",\n Green: \"bg-green-600\",\n Amber: \"bg-amber-600\",\n Danger: \"bg-critical-600\",\n Purple: \"bg-purple-600\",\n Fuchsia: \"bg-fuchsia-600\",\n Rose: \"bg-rose-600\",\n Sky: \"bg-sky-600\",\n Golden: \"bg-golden-600\",\n },\n Solid: {\n Neutral: \"bg-white\",\n Blue: \"bg-white\",\n Green: \"bg-white\",\n Amber: \"bg-white\",\n Danger: \"bg-white\",\n Purple: \"bg-white\",\n Fuchsia: \"bg-white\",\n Rose: \"bg-white\",\n Sky: \"bg-white\",\n Golden: \"bg-white\",\n },\n};\n\n// Size styles\nconst sizeStyles: Record<BadgeSize, string> = {\n sm: \"h-badge-sm px-2 py-0.5 gap-1 rounded-full\",\n lg: \"h-badge-lg px-2 py-1 gap-1.5 rounded-full\",\n};\n\n// Icon sizes\nconst iconSizes: Record<BadgeSize, string> = {\n sm: \"h-3 w-3\",\n lg: \"h-4 w-4\",\n};\n\n// Dot sizes\nconst dotSizes: Record<BadgeSize, string> = {\n sm: \"h-2 w-2\",\n lg: \"h-2.5 w-2.5\",\n};\n\n/**\n * Badge component for displaying labels, statuses, and notifications.\n * Supports multiple types, styles, sizes, and colors with RTL support.\n * \n * Specifications:\n * - Font: Inter Medium, 11px, weight 500, line-height 14px\n * - Border radius: Fully rounded (pill shape)\n * - Padding: 8px horizontal for both sizes\n * - Height sm: 24px, lg: 28px\n * - Icon sizes: 12px (sm), 16px (lg)\n * - Dot size: 8px (sm), 10px (lg)\n */\nexport const Badge = forwardRef<HTMLDivElement, BadgeProps>(\n (\n {\n type = \"Default\",\n style = \"Light\",\n size = \"sm\",\n color = \"Neutral\",\n showNumber = false,\n number,\n children,\n leadingIcon,\n trailingIcon,\n flagIcon,\n rtl = false,\n className,\n ...props\n },\n ref\n ) => {\n const isRTL = rtl;\n\n // Build base classes\n const baseClasses = cn(\n \"inline-flex items-center justify-center\",\n \"font-sans text-badge font-medium\",\n \"whitespace-nowrap\",\n sizeStyles[size],\n styleVariants[style][color],\n isRTL && \"font-sans-rtl flex-row-reverse\",\n className\n );\n\n // Render icon wrapper\n const renderIcon = (icon: ReactNode, iconSize: string) => (\n <span className={cn(\"flex items-center justify-center flex-shrink-0\", iconSize)}>\n {icon}\n </span>\n );\n\n // Render dot indicator\n const renderDot = () => {\n return (\n <span\n className={cn(\n \"rounded-full flex-shrink-0\",\n dotSizes[size],\n dotColorClasses[style][color]\n )}\n />\n );\n };\n\n // Render flag icon\n const renderFlag = () => {\n if (flagIcon) {\n return renderIcon(flagIcon, iconSizes[size]);\n }\n // Default flag placeholder - can be replaced with actual flag component\n return (\n <span\n className={cn(\n \"rounded-sm flex-shrink-0 bg-neutral-300\",\n iconSizes[size]\n )}\n />\n );\n };\n\n // Format number display\n const formatNumber = (num: number): string => {\n if (num > 99) return \"99+\";\n return num.toString();\n };\n\n // Determine content to display\n const displayContent = showNumber && number !== undefined\n ? formatNumber(number)\n : children;\n\n // Render based on type\n const renderContent = () => {\n switch (type) {\n case \"LeadingIcon\":\n return (\n <>\n {leadingIcon && renderIcon(leadingIcon, iconSizes[size])}\n {displayContent && (\n <span className=\"truncate\">{displayContent}</span>\n )}\n </>\n );\n case \"TrailingIcon\":\n return (\n <>\n {displayContent && (\n <span className=\"truncate\">{displayContent}</span>\n )}\n {trailingIcon && renderIcon(trailingIcon, iconSizes[size])}\n </>\n );\n case \"Dot\":\n return (\n <>\n {renderDot()}\n {displayContent && (\n <span className=\"truncate\">{displayContent}</span>\n )}\n </>\n );\n case \"Flag\":\n return (\n <>\n {renderFlag()}\n {displayContent && (\n <span className=\"truncate\">{displayContent}</span>\n )}\n </>\n );\n case \"Default\":\n default:\n return displayContent && <span className=\"truncate\">{displayContent}</span>;\n }\n };\n\n return (\n <div\n ref={ref}\n dir={isRTL ? \"rtl\" : undefined}\n className={baseClasses}\n {...props}\n >\n {renderContent()}\n </div>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n\n","import React, { forwardRef } from 'react';\nimport { X, AlertCircle, CheckCircle, AlertTriangle, Info, Circle } from 'lucide-react';\nimport { cn } from '../../utils/cn';\n\nexport interface AlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> {\n /** The alert style */\n style?: 'Outline' | 'Light' | 'Solid';\n /** The alert status/severity */\n status?: 'Danger' | 'Success' | 'Warning' | 'Info' | 'Neutral';\n /** The title text */\n title?: string;\n /** Optional message text (for expandable alerts) */\n message?: string;\n /** Whether to show action links */\n showActions?: boolean;\n /** Primary action text */\n primaryAction?: string;\n /** Secondary action text */\n secondaryAction?: string;\n /** Callback for primary action click */\n onPrimaryAction?: () => void;\n /** Callback for secondary action click */\n onSecondaryAction?: () => void;\n /** Whether to show close button */\n closable?: boolean;\n /** Callback when close button is clicked */\n onClose?: () => void;\n /** RTL mode */\n rtl?: boolean;\n /** RTL title text */\n rtlTitle?: string;\n /** RTL message text */\n rtlMessage?: string;\n /** RTL primary action text */\n rtlPrimaryAction?: string;\n /** RTL secondary action text */\n rtlSecondaryAction?: string;\n}\n\nconst statusConfig = {\n Danger: {\n icon: AlertCircle,\n colors: {\n Outline: {\n bg: 'bg-white',\n border: 'border border-critical-200',\n iconColor: 'text-critical-600',\n titleColor: 'text-neutral-900',\n messageColor: 'text-neutral-700',\n actionColor: 'text-blue-600 hover:text-blue-700',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Light: {\n bg: 'bg-critical-50',\n border: 'border-none',\n iconColor: 'text-critical-600',\n titleColor: 'text-critical-800',\n messageColor: 'text-critical-700',\n actionColor: 'text-neutral-900 hover:text-neutral-950',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Solid: {\n bg: 'bg-critical-600',\n border: 'border-none',\n iconColor: 'text-white',\n titleColor: 'text-white',\n messageColor: 'text-white opacity-80',\n actionColor: 'text-white hover:text-white/90',\n closeColor: 'text-white hover:text-white/90',\n },\n },\n },\n Success: {\n icon: CheckCircle,\n colors: {\n Outline: {\n bg: 'bg-white',\n border: 'border border-green-200',\n iconColor: 'text-green-600',\n titleColor: 'text-neutral-900',\n messageColor: 'text-neutral-700',\n actionColor: 'text-blue-600 hover:text-blue-700',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Light: {\n bg: 'bg-green-50',\n border: 'border-none',\n iconColor: 'text-green-600',\n titleColor: 'text-green-800',\n messageColor: 'text-green-700',\n actionColor: 'text-neutral-900 hover:text-neutral-950',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Solid: {\n bg: 'bg-green-600',\n border: 'border-none',\n iconColor: 'text-white',\n titleColor: 'text-white',\n messageColor: 'text-white opacity-80',\n actionColor: 'text-white hover:text-white/90',\n closeColor: 'text-white hover:text-white/90',\n },\n },\n },\n Warning: {\n icon: AlertTriangle,\n colors: {\n Outline: {\n bg: 'bg-white',\n border: 'border border-amber-200',\n iconColor: 'text-amber-600',\n titleColor: 'text-neutral-900',\n messageColor: 'text-neutral-700',\n actionColor: 'text-blue-600 hover:text-blue-700',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Light: {\n bg: 'bg-amber-50',\n border: 'border-none',\n iconColor: 'text-amber-600',\n titleColor: 'text-amber-800',\n messageColor: 'text-amber-700',\n actionColor: 'text-neutral-900 hover:text-neutral-950',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Solid: {\n bg: 'bg-amber-500',\n border: 'border-none',\n iconColor: 'text-white',\n titleColor: 'text-white',\n messageColor: 'text-white opacity-80',\n actionColor: 'text-white hover:text-white/90',\n closeColor: 'text-white hover:text-white/90',\n },\n },\n },\n Info: {\n icon: Info,\n colors: {\n Outline: {\n bg: 'bg-white',\n border: 'border border-blue-200',\n iconColor: 'text-blue-600',\n titleColor: 'text-neutral-900',\n messageColor: 'text-neutral-700',\n actionColor: 'text-blue-600 hover:text-blue-700',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Light: {\n bg: 'bg-blue-50',\n border: 'border-none',\n iconColor: 'text-blue-600',\n titleColor: 'text-blue-800',\n messageColor: 'text-blue-700',\n actionColor: 'text-neutral-900 hover:text-neutral-950',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Solid: {\n bg: 'bg-blue-600',\n border: 'border-none',\n iconColor: 'text-white',\n titleColor: 'text-white',\n messageColor: 'text-white opacity-80',\n actionColor: 'text-white hover:text-white/90',\n closeColor: 'text-white hover:text-white/90',\n },\n },\n },\n Neutral: {\n icon: Circle,\n colors: {\n Outline: {\n bg: 'bg-white',\n border: 'border border-neutral-300',\n iconColor: 'text-neutral-600',\n titleColor: 'text-neutral-900',\n messageColor: 'text-neutral-700',\n actionColor: 'text-blue-600 hover:text-blue-700',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Light: {\n bg: 'bg-neutral-100',\n border: 'border-none',\n iconColor: 'text-neutral-600',\n titleColor: 'text-neutral-800',\n messageColor: 'text-neutral-700',\n actionColor: 'text-neutral-900 hover:text-neutral-950',\n closeColor: 'text-neutral-600 hover:text-neutral-700',\n },\n Solid: {\n bg: 'bg-neutral-600',\n border: 'border-none',\n iconColor: 'text-white',\n titleColor: 'text-white',\n messageColor: 'text-white opacity-80',\n actionColor: 'text-white hover:text-white/90',\n closeColor: 'text-white hover:text-white/90',\n },\n },\n },\n};\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n style = 'Outline',\n status = 'Info',\n title = 'Alert title',\n message,\n showActions = false,\n primaryAction = 'Action',\n secondaryAction = 'Action',\n onPrimaryAction,\n onSecondaryAction,\n closable = true,\n onClose,\n rtl = false,\n rtlTitle,\n rtlMessage,\n rtlPrimaryAction = 'زر الرابط',\n rtlSecondaryAction = 'زر الرابط',\n className,\n ...props\n },\n ref\n ) => {\n const config = statusConfig[status];\n const colors = config.colors[style];\n const Icon = config.icon;\n const isRTL = rtl;\n const isExpandable = !!message;\n\n const displayTitle = isRTL && rtlTitle ? rtlTitle : title;\n const displayMessage = isRTL && rtlMessage ? rtlMessage : message;\n const displayPrimaryAction = isRTL ? rtlPrimaryAction : primaryAction;\n const displaySecondaryAction = isRTL ? rtlSecondaryAction : secondaryAction;\n\n // Base classes\n const baseClasses = cn(\n 'flex items-start gap-2 px-4 py-3 rounded-control transition-all',\n colors.bg,\n colors.border,\n isRTL && 'font-sans-rtl'\n );\n\n // Icon classes\n const iconClasses = cn('w-5 h-5 shrink-0', colors.iconColor);\n\n // Title classes\n const titleClasses = cn(\n 'text-[15px] font-medium leading-[24px]',\n colors.titleColor,\n isRTL ? 'text-right' : 'text-left'\n );\n\n // Message classes\n const messageClasses = cn(\n 'text-[14px] font-normal leading-[20px]',\n colors.messageColor,\n isRTL ? 'text-right' : 'text-left'\n );\n\n // Action classes\n const actionClasses = cn(\n 'text-[15px] font-medium leading-[24px] underline cursor-pointer transition-colors',\n colors.actionColor\n );\n\n // Close button classes\n const closeClasses = cn(\n 'w-5 h-5 shrink-0 cursor-pointer transition-colors',\n colors.closeColor\n );\n\n return (\n <div\n ref={ref}\n className={cn(baseClasses, className)}\n dir={isRTL ? 'rtl' : undefined}\n {...props}\n >\n {/* Content */}\n <div className=\"flex-1 flex items-start gap-2\">\n {/* For RTL, icon goes on the right */}\n {!isRTL && <Icon className={iconClasses} />}\n\n {/* Text content */}\n <div className=\"flex-1 flex flex-col gap-1\">\n {/* Title */}\n <div className={titleClasses} dir={isRTL ? 'rtl' : undefined}>\n {displayTitle}\n </div>\n\n {/* Message (if expandable) */}\n {isExpandable && displayMessage && (\n <div className={messageClasses} dir={isRTL ? 'rtl' : undefined}>\n {displayMessage}\n </div>\n )}\n\n {/* Actions (if enabled and expandable) */}\n {showActions && isExpandable && (\n <div className={cn('flex gap-4 mt-2', isRTL && 'flex-row-reverse')}>\n {onPrimaryAction && (\n <button\n type=\"button\"\n onClick={onPrimaryAction}\n className={actionClasses}\n >\n {displayPrimaryAction}\n </button>\n )}\n {onSecondaryAction && (\n <button\n type=\"button\"\n onClick={onSecondaryAction}\n className={actionClasses}\n >\n {displaySecondaryAction}\n </button>\n )}\n </div>\n )}\n </div>\n\n {isRTL && <Icon className={iconClasses} />}\n </div>\n\n {/* Action link (for non-expandable) */}\n {showActions && !isExpandable && onPrimaryAction && (\n <button\n type=\"button\"\n onClick={onPrimaryAction}\n className={cn(actionClasses, 'shrink-0 whitespace-nowrap')}\n >\n {displayPrimaryAction}\n </button>\n )}\n\n {/* Close button */}\n {closable && onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className={closeClasses}\n aria-label=\"Close\"\n >\n <X className=\"w-4 h-4\" />\n </button>\n )}\n </div>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\n","import { forwardRef, HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface DividerProps extends HTMLAttributes<HTMLDivElement> {\n /** Direction of the divider */\n direction?: 'horizontal' | 'vertical';\n /** Style type of the divider */\n type?: 'solid' | 'dashed';\n /** Custom color (defaults to neutral-200) */\n color?: string;\n /** Spacing around the divider (margin) */\n spacing?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n (\n {\n direction = 'horizontal',\n type = 'solid',\n color,\n spacing = 'none',\n className,\n ...props\n },\n ref\n ) => {\n // Spacing classes\n const spacingClasses = {\n none: '',\n xs: direction === 'horizontal' ? 'my-1' : 'mx-1',\n sm: direction === 'horizontal' ? 'my-2' : 'mx-2',\n md: direction === 'horizontal' ? 'my-4' : 'mx-4',\n lg: direction === 'horizontal' ? 'my-6' : 'mx-6',\n xl: direction === 'horizontal' ? 'my-8' : 'mx-8',\n };\n\n // Horizontal divider\n if (direction === 'horizontal') {\n return (\n <hr\n ref={ref as any}\n className={cn(\n 'w-full border-0',\n type === 'solid' ? 'border-t border-solid' : 'border-t border-dashed',\n color ? `border-[${color}]` : 'border-neutral-200',\n spacingClasses[spacing],\n className\n )}\n {...props}\n />\n );\n }\n\n // Vertical divider\n return (\n <div\n ref={ref}\n className={cn(\n 'h-full',\n type === 'solid' ? 'border-l border-solid' : 'border-l border-dashed',\n color ? `border-[${color}]` : 'border-neutral-200',\n spacingClasses[spacing],\n className\n )}\n {...props}\n />\n );\n }\n);\n\nDivider.displayName = 'Divider';\n\n","import { forwardRef, HTMLAttributes, ReactNode } from 'react';\nimport { LucideIcon } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Badge } from '../Badge/Badge';\n\n// ============ MenuItem Component ============\n\nexport interface MenuItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'type'> {\n /** Type of menu item */\n type?: 'default' | 'multiline' | 'cta' | 'progress' | 'button' | 'divider' | 'label' | 'caption';\n /** Item state */\n state?: 'default' | 'hover' | 'disabled';\n /** Main label text */\n label?: string;\n /** Supporting text (for multiline items) */\n supportText?: string;\n /** Leading icon */\n leadingIcon?: LucideIcon;\n /** Trailing icon */\n trailingIcon?: LucideIcon;\n /** Avatar image URL */\n avatarSrc?: string;\n /** Avatar initials */\n avatarInitials?: string;\n /** Badge text */\n badgeText?: string;\n /** Badge variant */\n badgeVariant?: 'neutral' | 'green' | 'blue' | 'red' | 'yellow';\n /** Right-aligned text */\n rightText?: string;\n /** Show toggle switch */\n hasSwitch?: boolean;\n /** Toggle switch active state */\n switchActive?: boolean;\n /** Switch change handler */\n onSwitchChange?: (active: boolean) => void;\n /** Button text (for CTA items) */\n buttonText?: string;\n /** Button click handler */\n onButtonClick?: () => void;\n /** Progress percentage (for progress items) */\n progress?: number;\n /** Progress label */\n progressLabel?: string;\n /** Progress optional text */\n progressOptional?: string;\n /** Caption text (for label/caption items) */\n caption?: string;\n /** RTL mode */\n rtl?: boolean;\n /** Click handler */\n onClick?: () => void;\n}\n\nexport const MenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n (\n {\n type = 'default',\n state = 'default',\n label = 'Text item',\n supportText,\n leadingIcon: LeadingIcon,\n trailingIcon: TrailingIcon,\n avatarSrc,\n avatarInitials,\n badgeText,\n badgeVariant = 'neutral',\n rightText,\n hasSwitch = false,\n switchActive = false,\n onSwitchChange,\n buttonText = 'Button',\n onButtonClick,\n progress = 40,\n progressLabel = 'Label',\n progressOptional = '(Optional)',\n caption,\n rtl = false,\n onClick,\n className,\n ...props\n },\n ref\n ) => {\n // Divider type\n if (type === 'divider') {\n return (\n <div\n ref={ref}\n className={cn('flex items-center px-0 py-0.5', className)}\n {...props}\n >\n <div className=\"flex-1 border-t border-neutral-200\" />\n </div>\n );\n }\n\n // Button type\n if (type === 'button') {\n return (\n <div\n ref={ref}\n className={cn('flex items-center px-1.5 py-0', className)}\n {...props}\n >\n <button\n onClick={onButtonClick}\n className={cn(\n 'w-full h-8 px-1.5 py-2 flex items-center justify-center',\n 'border border-neutral-300 rounded-lg',\n 'text-[15px] font-medium leading-6 text-neutral-900',\n 'hover:bg-neutral-50 transition-colors',\n state === 'disabled' && 'opacity-50 cursor-not-allowed'\n )}\n disabled={state === 'disabled'}\n >\n {buttonText}\n </button>\n </div>\n );\n }\n\n // Label type\n if (type === 'label') {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-0 px-4 py-1',\n 'text-[13px] leading-5',\n rtl && 'flex-row-reverse',\n className\n )}\n {...props}\n >\n <div className={cn('flex-1', rtl && 'text-right')}>\n <p className=\"font-medium text-neutral-900\">{label}</p>\n </div>\n {caption && (\n <p className=\"text-neutral-600\">{caption}</p>\n )}\n </div>\n );\n }\n\n // Caption type\n if (type === 'caption') {\n return (\n <div\n ref={ref}\n className={cn('flex items-center px-1.5 py-0', className)}\n {...props}\n >\n <div className=\"flex items-center justify-center px-1.5 py-1\">\n <p className={cn(\n 'flex-1 text-[13px] leading-5 text-neutral-600',\n rtl && 'text-right'\n )}>\n Lorem ipsum dolor sit amet\n </p>\n </div>\n </div>\n );\n }\n\n // Progress type\n if (type === 'progress') {\n return (\n <div\n ref={ref}\n className={cn('flex items-center px-1.5 py-0', rtl && 'justify-end', className)}\n {...props}\n >\n <div className=\"flex flex-col items-start px-1.5 py-1 flex-1\">\n <div className=\"flex flex-col gap-2 items-start w-full\">\n {/* Progress bar */}\n <div className=\"flex flex-col items-center justify-center w-full\">\n <div className=\"bg-neutral-200 h-2 rounded-full w-full relative\">\n <div\n className=\"absolute left-0 top-0 h-full bg-blue-500 rounded-full transition-all\"\n style={{ width: `${progress}%` }}\n />\n </div>\n </div>\n \n {/* Progress label */}\n <div className={cn(\n 'flex gap-2 items-center w-full',\n rtl && 'flex-row-reverse'\n )}>\n <div className={cn('flex items-center gap-1 flex-1', rtl && 'flex-row-reverse justify-end')}>\n <p className={cn(\n 'text-[13px] leading-5 font-medium text-neutral-900',\n rtl && 'text-right'\n )}>\n {progressLabel}\n </p>\n <p className=\"text-[13px] leading-5 text-neutral-600\">\n {progressOptional}\n </p>\n </div>\n <div className=\"flex gap-0.5 items-center\">\n <p className=\"text-[12px] leading-4 text-neutral-600\">{progress}%</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n // Interactive item styles\n const isDisabled = state === 'disabled';\n const isHovered = state === 'hover';\n\n const contentClasses = cn(\n 'flex gap-1 items-center px-1.5 py-1 rounded-md flex-1 transition-colors cursor-pointer',\n type === 'multiline' && 'min-h-[48px] py-1',\n isHovered && !isDisabled && 'bg-neutral-100',\n isDisabled && 'opacity-60 cursor-not-allowed',\n rtl && 'flex-row-reverse'\n );\n\n const renderContent = () => {\n const elements = [];\n\n // Leading Icon\n if (LeadingIcon) {\n elements.push(\n <div key=\"leading-icon\" className={cn('flex items-center pl-0.5 pr-0', rtl && 'pl-0 pr-0.5')}>\n <LeadingIcon\n className={cn(\n 'h-5 w-5',\n isDisabled ? 'text-neutral-400' : 'text-neutral-600'\n )}\n />\n </div>\n );\n }\n\n // Avatar (simplified - using colored circle with initials)\n if (avatarSrc || avatarInitials) {\n const avatarSize = type === 'multiline' ? 'h-10 w-10' : 'h-6 w-6';\n const textSize = type === 'multiline' ? 'text-sm' : 'text-xs';\n \n elements.push(\n <div key=\"avatar\" className={cn('flex items-center pl-0.5 pr-0', rtl && 'pl-0 pr-0.5')}>\n {avatarSrc ? (\n <img\n src={avatarSrc}\n alt={avatarInitials || 'Avatar'}\n className={cn(\n avatarSize,\n 'rounded-full border border-neutral-200 object-cover',\n isDisabled && 'opacity-60'\n )}\n />\n ) : (\n <div\n className={cn(\n avatarSize,\n 'rounded-full bg-blue-100 border border-neutral-200',\n 'flex items-center justify-center',\n textSize,\n 'font-medium text-blue-700',\n isDisabled && 'opacity-60'\n )}\n >\n {avatarInitials || '??'}\n </div>\n )}\n </div>\n );\n }\n\n // Text content\n if (type === 'multiline' || type === 'cta') {\n elements.push(\n <div\n key=\"text\"\n className={cn(\n 'flex flex-col items-start flex-1 pl-1 pr-0',\n rtl && 'pl-0 pr-1 items-end text-right'\n )}\n >\n <p className={cn(\n 'text-[15px] leading-6',\n isDisabled ? 'text-neutral-400' : 'text-neutral-900'\n )}>\n {label}\n </p>\n {supportText && (\n <p className={cn(\n 'text-[12px] leading-4',\n isDisabled ? 'text-neutral-400' : 'text-neutral-600'\n )}>\n {supportText}\n </p>\n )}\n </div>\n );\n } else {\n elements.push(\n <div\n key=\"text\"\n className={cn(\n 'flex items-center flex-1 pl-1 pr-0',\n rtl && 'pl-0 pr-1 justify-end'\n )}\n >\n <p className={cn(\n 'text-[15px] leading-6',\n isDisabled ? 'text-neutral-400' : 'text-neutral-900',\n rtl && 'text-right'\n )}>\n {label}\n </p>\n </div>\n );\n }\n\n // Toggle Switch\n if (hasSwitch) {\n elements.push(\n <div key=\"switch\" className=\"flex flex-col items-center\">\n <button\n onClick={(e) => {\n e.stopPropagation();\n if (!isDisabled && onSwitchChange) {\n onSwitchChange(!switchActive);\n }\n }}\n disabled={isDisabled}\n className={cn(\n 'w-8 h-[18px] p-[3px] rounded-full flex items-center transition-colors',\n switchActive ? 'bg-green-500 justify-end' : 'bg-neutral-300 justify-start',\n isDisabled && 'opacity-50 cursor-not-allowed'\n )}\n >\n <div className=\"w-3.5 h-3.5 bg-white rounded-full shadow-sm\" />\n </button>\n </div>\n );\n }\n\n // Badge\n if (badgeText) {\n elements.push(\n <div key=\"badge\" className=\"flex flex-col items-center\">\n <Badge color={badgeVariant as any} size=\"sm\">\n {badgeText}\n </Badge>\n </div>\n );\n }\n\n // Right text\n if (rightText) {\n elements.push(\n <div key=\"right-text\" className=\"flex items-center\">\n <p className={cn(\n 'text-[12px] leading-4',\n isDisabled ? 'text-neutral-400' : 'text-neutral-600',\n rtl && 'text-left'\n )}>\n {rightText}\n </p>\n </div>\n );\n }\n\n // CTA Button\n if (type === 'cta') {\n elements.push(\n <button\n key=\"cta-button\"\n onClick={(e) => {\n e.stopPropagation();\n if (!isDisabled && onButtonClick) {\n onButtonClick();\n }\n }}\n disabled={isDisabled}\n className={cn(\n 'h-8 px-1.5 py-2 flex items-center justify-center',\n 'border border-neutral-300 rounded-lg',\n 'text-[15px] font-medium leading-6 text-neutral-900',\n 'hover:bg-neutral-50 transition-colors',\n isDisabled && 'opacity-50 cursor-not-allowed'\n )}\n >\n {buttonText}\n </button>\n );\n }\n\n // Trailing Icon\n if (TrailingIcon) {\n elements.push(\n <div key=\"trailing-icon\" className=\"flex items-center\">\n <TrailingIcon\n className={cn(\n 'h-4 w-4',\n isDisabled ? 'text-neutral-400' : 'text-neutral-500'\n )}\n />\n </div>\n );\n }\n\n return rtl ? elements.reverse() : elements;\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-0 px-1.5 py-0',\n rtl && 'justify-end',\n className\n )}\n onClick={!isDisabled ? onClick : undefined}\n {...props}\n >\n <div className={contentClasses}>\n {renderContent()}\n </div>\n </div>\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n\n// ============ Menu Component ============\n\nexport interface MenuProps extends HTMLAttributes<HTMLDivElement> {\n /** Menu items */\n children?: ReactNode;\n /** Menu width */\n width?: number | string;\n /** RTL mode */\n rtl?: boolean;\n}\n\nexport const Menu = forwardRef<HTMLDivElement, MenuProps>(\n (\n {\n children,\n width = 260,\n rtl = false,\n className,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'bg-white border border-neutral-200 rounded-xl shadow-lg',\n 'flex flex-col gap-1 items-start py-1.5',\n 'overflow-hidden',\n className\n )}\n style={{ width: typeof width === 'number' ? `${width}px` : width }}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nMenu.displayName = 'Menu';\n\n","import { ReactNode, HTMLAttributes, forwardRef, useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ChevronDown, ChevronUp, Info, Plus } from \"lucide-react\";\n\nexport type AccordionStyle = \"Default\" | \"Boxed\";\nexport type AccordionState = \"Default\" | \"Hover\";\n\nexport interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\" | \"style\"> {\n /** The title/label of the accordion */\n label?: string;\n /** The description/content shown when expanded */\n description?: string;\n /** Whether to show the left icon */\n icon?: boolean;\n /** Custom icon to display on the left */\n iconLeft?: ReactNode;\n /** Whether to show a badge */\n badge?: boolean;\n /** Badge text content */\n badgeText?: string;\n /** Whether to show an action button */\n action?: boolean;\n /** Action button text */\n actionText?: string;\n /** Action button click handler */\n onActionClick?: () => void;\n /** The visual style variant */\n style?: AccordionStyle;\n /** The state (Default or Hover) - for controlled hover state */\n state?: AccordionState;\n /** Enable RTL (Right-to-Left) mode */\n rtl?: boolean;\n /** Whether the accordion is expandable */\n expandable?: boolean;\n /** Controlled expanded state */\n expanded?: boolean;\n /** Callback when accordion is toggled */\n onToggle?: (expanded: boolean) => void;\n /** RTL label text */\n rtlLabel?: string;\n /** RTL description text */\n rtlDescription?: string;\n}\n\n// Utility function to merge Tailwind classes\nfunction cn(...inputs: (string | undefined | null | false)[]) {\n return twMerge(clsx(inputs));\n}\n\n/**\n * Accordion component for collapsible content sections.\n * Supports Default and Boxed styles, expandable states, and RTL.\n * \n * Specifications:\n * - Padding: 20px\n * - Gap: 12px\n * - Border radius: 10px (Boxed style)\n * - Title: 17px, semibold, line-height 28px\n * - Description: 15px, regular, line-height 24px\n * - Icon size: 24px × 24px\n */\nexport const Accordion = forwardRef<HTMLButtonElement, AccordionProps>(\n (\n {\n label = \"Enter question title\",\n description = \"Ants are fascinating insects known for their complex social structures and teamwork. They communicate through pheromones and work together to build intricate nests. Ants play crucial roles in ecosystems, from soil aeration to seed dispersal.\",\n icon = true,\n iconLeft,\n badge = true,\n badgeText = \"Badge\",\n action = true,\n actionText = \"Button\",\n onActionClick,\n style = \"Default\",\n state = \"Default\",\n rtl = false,\n expandable = false,\n expanded: controlledExpanded,\n onToggle,\n rtlLabel,\n rtlDescription,\n className,\n ...props\n },\n ref\n ) => {\n const [internalExpanded, setInternalExpanded] = useState(false);\n const isExpanded = controlledExpanded !== undefined ? controlledExpanded : internalExpanded;\n const isRTL = rtl;\n \n const handleToggle = () => {\n if (expandable) {\n const newExpanded = !isExpanded;\n if (controlledExpanded === undefined) {\n setInternalExpanded(newExpanded);\n }\n onToggle?.(newExpanded);\n }\n };\n\n const displayLabel = isRTL && rtlLabel ? rtlLabel : label;\n const displayDescription = isRTL && rtlDescription ? rtlDescription : description;\n\n // Base classes\n const baseClasses = cn(\n \"flex items-start gap-3 p-5\",\n \"transition-all duration-150 ease-in-out\",\n expandable && \"cursor-pointer\",\n \"w-full\",\n // RTL support\n isRTL && \"font-sans-rtl\",\n // Style-specific classes\n style === \"Default\"\n ? cn(\n \"border-b border-neutral-200\",\n state === \"Hover\" && expandable && \"bg-neutral-50\"\n )\n : cn(\n \"border border-neutral-200 rounded-xl\",\n \"shadow-component-default\",\n state === \"Hover\" && expandable && \"bg-neutral-50\",\n // Inner shadow for Boxed style\n \"relative\"\n ),\n className\n );\n\n // Title classes\n const titleClasses = cn(\n \"flex flex-col justify-center\",\n \"font-semibold text-[17px] leading-[28px]\",\n \"text-neutral-900\",\n isRTL ? \"text-right\" : \"text-left\"\n );\n\n // Description classes\n const descriptionClasses = cn(\n \"text-[15px] leading-[24px]\",\n \"text-neutral-600\",\n isRTL ? \"text-right\" : \"text-left\"\n );\n\n // Badge classes\n const badgeClasses = cn(\n \"flex items-center justify-center\",\n \"h-7 px-3 py-0\",\n \"bg-neutral-50 rounded-full\",\n \"text-[12px] leading-[16px] font-medium\",\n \"text-neutral-900 whitespace-nowrap\"\n );\n\n // Default icon (Info icon)\n const defaultIcon = iconLeft || (icon ? <Info className=\"h-6 w-6 text-neutral-600 flex-shrink-0\" /> : null);\n\n // Dropdown icon - shows ChevronDown when collapsed, ChevronUp when expanded\n const DropdownIcon = isExpanded ? ChevronUp : ChevronDown;\n const dropdownIconClasses = cn(\n \"h-6 w-6 text-neutral-500 flex-shrink-0\"\n );\n\n const Component = expandable ? \"button\" : \"div\";\n const componentProps = expandable\n ? {\n ref: ref as any,\n type: \"button\" as const,\n onClick: handleToggle,\n ...props,\n }\n : {\n ...props,\n };\n\n return (\n <Component\n {...(componentProps as any)}\n dir={isRTL ? \"rtl\" : undefined}\n className={baseClasses}\n >\n {/* Left icon (or right in RTL) */}\n {defaultIcon && !isRTL && (\n <div className=\"flex-shrink-0\">{defaultIcon}</div>\n )}\n\n {/* Dropdown icon (left in RTL, right in LTR) */}\n {expandable && isRTL && (\n <div className=\"flex-shrink-0\">\n <DropdownIcon className={dropdownIconClasses} />\n </div>\n )}\n\n {/* Content */}\n <div className={cn(\n \"flex flex-col gap-1.5 flex-1 min-w-0\",\n isRTL ? \"items-end\" : \"items-start\"\n )}>\n {/* Title row */}\n <div className={cn(\n \"flex gap-1.5 items-start w-full\",\n isRTL ? \"flex-row-reverse\" : \"flex-row\"\n )}>\n {/* In RTL: Badge comes first (appears on right), then Title (appears on left) */}\n {/* In LTR: Title comes first (appears on left), then Badge (appears on right) */}\n {isRTL ? (\n <>\n {badge && (\n <div className={cn(badgeClasses, \"font-sans-rtl\")} dir=\"rtl\">\n {badgeText}\n </div>\n )}\n <div className={cn(titleClasses, \"flex-1\")} dir=\"rtl\">\n <p>{displayLabel}</p>\n </div>\n </>\n ) : (\n <>\n <div className={cn(titleClasses, \"flex-1\")}>\n <p>{displayLabel}</p>\n </div>\n {badge && (\n <div className={badgeClasses}>\n {badgeText}\n </div>\n )}\n </>\n )}\n </div>\n\n {/* Description (shown when expanded) */}\n {isExpanded && displayDescription && (\n <div className=\"w-full\" dir={isRTL ? \"rtl\" : undefined}>\n <p className={descriptionClasses}>{displayDescription}</p>\n </div>\n )}\n\n {/* Action button (shown when expanded) */}\n {isExpanded && action && (\n <div className=\"pt-4 w-full flex\" style={{ justifyContent: isRTL ? 'flex-end' : 'flex-start' }}>\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onActionClick?.();\n }}\n className={cn(\n \"relative flex items-center justify-center gap-1\",\n \"h-10 px-2.5 py-2\",\n \"bg-neutral-50 border border-neutral-300 rounded-control\",\n \"shadow-component-default\",\n \"text-[15px] leading-[24px] font-medium text-neutral-900\",\n \"hover:bg-neutral-100 transition-colors\",\n \"cursor-pointer\"\n )}\n dir={isRTL ? \"rtl\" : undefined}\n >\n <Plus className=\"h-5 w-5 flex-shrink-0\" />\n <span className=\"px-1 whitespace-nowrap\">\n {isRTL ? \"انقر هنا\" : actionText}\n </span>\n <Plus className=\"h-5 w-5 flex-shrink-0\" />\n {/* Inner shadow */}\n <div className=\"absolute inset-0 pointer-events-none rounded-control shadow-[inset_0px_-1px_0px_0px_rgba(0,0,0,0.08)]\" />\n </button>\n </div>\n )}\n </div>\n\n {/* Dropdown icon (right in LTR) */}\n {expandable && !isRTL && (\n <div className=\"flex-shrink-0\">\n <DropdownIcon className={dropdownIconClasses} />\n </div>\n )}\n\n {/* Right icon (or left in RTL) */}\n {defaultIcon && isRTL && (\n <div className=\"flex-shrink-0\">{defaultIcon}</div>\n )}\n\n {/* Inner shadow for Boxed style */}\n {style === \"Boxed\" && (\n <div className=\"absolute inset-0 pointer-events-none rounded-xl shadow-[inset_0px_-1px_0px_0px_rgba(0,0,0,0.08)]\" />\n )}\n </Component>\n );\n }\n);\n\nAccordion.displayName = \"Accordion\";\n\n","import { useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Check, Copy } from \"lucide-react\";\n\ninterface CodeBlockProps {\n code: string;\n language?: string;\n className?: string;\n}\n\nfunction cn(...inputs: (string | undefined | null | false)[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const CodeBlock = ({ code, language = \"tsx\", className }: CodeBlockProps) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch (err) {\n console.error(\"Failed to copy:\", err);\n }\n };\n\n // Simple syntax highlighting for JSX/TSX\n const highlightCode = (code: string) => {\n let highlighted = code;\n\n // HTML entities\n highlighted = highlighted\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\");\n\n // Strings (single and double quotes)\n highlighted = highlighted.replace(\n /("[^&]*"|'[^']*'|\"[^\"]*\")/g,\n '<span class=\"token string\">$1</span>'\n );\n\n // Template literals\n highlighted = highlighted.replace(\n /(`[^`]*`)/g,\n '<span class=\"token template\">$1</span>'\n );\n\n // Comments\n highlighted = highlighted.replace(\n /(\\/\\/.*$)/gm,\n '<span class=\"token comment\">$1</span>'\n );\n highlighted = highlighted.replace(\n /(\\/\\*[\\s\\S]*?\\*\\/)/g,\n '<span class=\"token comment\">$1</span>'\n );\n\n // Keywords\n const keywords = [\n \"import\",\n \"export\",\n \"from\",\n \"const\",\n \"let\",\n \"var\",\n \"function\",\n \"return\",\n \"if\",\n \"else\",\n \"for\",\n \"while\",\n \"class\",\n \"extends\",\n \"new\",\n \"this\",\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"typeof\",\n \"instanceof\",\n \"async\",\n \"await\",\n ];\n keywords.forEach((keyword) => {\n const regex = new RegExp(`\\\\b(${keyword})\\\\b`, \"g\");\n highlighted = highlighted.replace(\n regex,\n '<span class=\"token keyword\">$1</span>'\n );\n });\n\n // JSX tags\n highlighted = highlighted.replace(\n /(<\\/?)([\\w]+)/g,\n '$1<span class=\"token tag\">$2</span>'\n );\n\n // Props/attributes\n highlighted = highlighted.replace(\n /\\s([\\w-]+)=/g,\n ' <span class=\"token attr\">$1</span>='\n );\n\n // Numbers\n highlighted = highlighted.replace(\n /\\b(\\d+)\\b/g,\n '<span class=\"token number\">$1</span>'\n );\n\n // Curly braces in JSX\n highlighted = highlighted.replace(\n /(\\{|\\})/g,\n '<span class=\"token punctuation\">$1</span>'\n );\n\n return highlighted;\n };\n\n return (\n <div className={cn(\"rounded-lg overflow-hidden border border-neutral-800\", className)}>\n {/* Header */}\n <div className=\"flex items-center justify-between px-4 py-3 bg-docs-code-bg border-b border-neutral-700\">\n <span className=\"text-xs font-medium text-neutral-400 uppercase tracking-wider\">\n {language}\n </span>\n <button\n className={cn(\n \"inline-flex items-center gap-1.5 px-2.5 py-1\",\n \"text-xs font-medium rounded\",\n \"bg-neutral-800 border border-neutral-700\",\n \"text-neutral-400 hover:text-white\",\n \"hover:bg-neutral-700 hover:border-neutral-600\",\n \"transition-colors duration-150\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500\"\n )}\n onClick={handleCopy}\n aria-label=\"Copy code\"\n >\n {copied ? (\n <>\n <Check className=\"h-3.5 w-3.5\" />\n <span>Copied!</span>\n </>\n ) : (\n <>\n <Copy className=\"h-3.5 w-3.5\" />\n <span>Copy</span>\n </>\n )}\n </button>\n </div>\n \n {/* Code Content */}\n <pre className=\"m-0 p-4 bg-docs-code-bg overflow-x-auto\">\n <code\n className=\"font-mono text-[13px] leading-relaxed text-docs-code-text\"\n dangerouslySetInnerHTML={{ __html: highlightCode(code) }}\n />\n </pre>\n </div>\n );\n};\n"],"names":["r","t","f","n","o","clsx","concatArrays","array1","array2","combinedArray","i","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","validators","CLASS_PART_SEPARATOR","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","className","getGroupIdForArbitraryProperty","classParts","startIndex","getGroupRecursive","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","currentClassPart","nextClassPartObject","result","classRest","validatorsLength","validatorObj","content","colonIndex","property","theme","classGroups","processClassGroups","group","processClassesRecursively","classGroup","len","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","entries","key","value","path","current","parts","part","next","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","isExternal","createParseClassName","prefix","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","classNames","originalClassName","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","args","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","cn","inputs","variantStyles","sizeStyles","iconOnlySizeStyles","Button","forwardRef","variant","size","loading","disabled","fullWidth","iconLeft","iconRight","startIcon","endIcon","icon","rtl","children","props","ref","isIconOnly","startIconNode","endIconNode","buttonClasses","jsxs","jsx","Loader2","Fragment","platformLabels","platformLabelsRTL","platformColors","getPlatformIcon","platform","FaFacebook","FaLinkedin","FaApple","FaWhatsapp","FaGoogle","FaXTwitter","SocialButton","type","style","isRTL","isOutlined","colors","baseClasses","styleClasses","iconClasses","renderIcon","ButtonGroup","items","rtlLabels","containerClasses","buttonItemClasses","item","isFirst","_isLast","Icon","Plus","displayLabel","Checkbox","supportText","rtlLabel","rtlSupportText","checkLocation","indeterminate","error","checked","displaySupportText","hasSupportText","checkboxBoxClasses","labelWrapperClasses","labelClasses","supportTextClasses","Check","Minus","CheckmarkCard","selected","customIcon","onChange","hasIcon","handleClick","handleKeyDown","e","checkboxClasses","contentClasses","textClasses","iconWrapperClasses","renderCheckbox","renderContent","Element","Switcher","onCheckedChange","handleChange","trackClasses","thumbClasses","styleVariants","dotColorClasses","iconSizes","dotSizes","Badge","color","showNumber","number","leadingIcon","trailingIcon","flagIcon","iconSize","renderDot","renderFlag","displayContent","num","statusConfig","AlertCircle","CheckCircle","AlertTriangle","Info","Circle","Alert","status","title","message","showActions","primaryAction","secondaryAction","onPrimaryAction","onSecondaryAction","closable","onClose","rtlTitle","rtlMessage","rtlPrimaryAction","rtlSecondaryAction","isExpandable","displayTitle","displayMessage","displayPrimaryAction","displaySecondaryAction","titleClasses","messageClasses","actionClasses","closeClasses","X","Divider","direction","spacing","spacingClasses","MenuItem","state","LeadingIcon","TrailingIcon","avatarSrc","avatarInitials","badgeText","badgeVariant","rightText","hasSwitch","switchActive","onSwitchChange","buttonText","onButtonClick","progress","progressLabel","progressOptional","caption","onClick","isDisabled","elements","avatarSize","textSize","Menu","width","Accordion","description","badge","action","actionText","onActionClick","expandable","controlledExpanded","onToggle","rtlDescription","internalExpanded","setInternalExpanded","useState","isExpanded","handleToggle","newExpanded","displayDescription","descriptionClasses","badgeClasses","defaultIcon","DropdownIcon","ChevronUp","ChevronDown","dropdownIconClasses","Component","componentProps","CodeBlock","code","language","copied","setCopied","handleCopy","err","highlightCode","highlighted","keyword","regex","Copy"],"mappings":"+LAAA,SAASA,GAAE,EAAE,CAAC,IAAIC,EAAEC,EAAEC,EAAE,GAAG,GAAa,OAAO,GAAjB,UAA8B,OAAO,GAAjB,SAAmBA,GAAG,UAAoB,OAAO,GAAjB,SAAmB,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAIC,EAAE,EAAE,OAAO,IAAIH,EAAE,EAAEA,EAAEG,EAAEH,IAAI,EAAEA,CAAC,IAAIC,EAAEF,GAAE,EAAEC,CAAC,CAAC,KAAKE,IAAIA,GAAG,KAAKA,GAAGD,EAAE,KAAM,KAAIA,KAAK,EAAE,EAAEA,CAAC,IAAIC,IAAIA,GAAG,KAAKA,GAAGD,GAAG,OAAOC,CAAC,CAAQ,SAASE,IAAM,CAAC,QAAQ,EAAEJ,EAAEC,EAAE,EAAEC,EAAE,GAAGC,EAAE,UAAU,OAAOF,EAAEE,EAAEF,KAAK,EAAE,UAAUA,CAAC,KAAKD,EAAED,GAAE,CAAC,KAAKG,IAAIA,GAAG,KAAKA,GAAGF,GAAG,OAAOE,CAAC,CCG/W,MAAMG,GAAe,CAACC,EAAQC,IAAW,CAEvC,MAAMC,EAAgB,IAAI,MAAMF,EAAO,OAASC,EAAO,MAAM,EAC7D,QAASE,EAAI,EAAGA,EAAIH,EAAO,OAAQG,IACjCD,EAAcC,CAAC,EAAIH,EAAOG,CAAC,EAE7B,QAASA,EAAI,EAAGA,EAAIF,EAAO,OAAQE,IACjCD,EAAcF,EAAO,OAASG,CAAC,EAAIF,EAAOE,CAAC,EAE7C,OAAOD,CACT,EAGME,GAA6B,CAACC,EAAcC,KAAe,CAC/D,aAAAD,EACA,UAAAC,CACF,GAEMC,GAAwB,CAACC,EAAW,IAAI,IAAOC,EAAa,KAAMJ,KAAkB,CACxF,SAAAG,EACA,WAAAC,EACA,aAAAJ,CACF,GACMK,GAAuB,IACvBC,GAAkB,CAAA,EAElBC,GAA4B,cAC5BC,GAAwBC,GAAU,CACtC,MAAMC,EAAWC,GAAeF,CAAM,EAChC,CACJ,uBAAAG,EACA,+BAAAC,CACJ,EAAMJ,EA2BJ,MAAO,CACL,gBA3BsBK,GAAa,CACnC,GAAIA,EAAU,WAAW,GAAG,GAAKA,EAAU,SAAS,GAAG,EACrD,OAAOC,GAA+BD,CAAS,EAEjD,MAAME,EAAaF,EAAU,MAAMT,EAAoB,EAEjDY,EAAaD,EAAW,CAAC,IAAM,IAAMA,EAAW,OAAS,EAAI,EAAI,EACvE,OAAOE,GAAkBF,EAAYC,EAAYP,CAAQ,CAC3D,EAoBE,4BAnBkC,CAACV,EAAcmB,IAAuB,CACxE,GAAIA,EAAoB,CACtB,MAAMC,EAAoBP,EAA+Bb,CAAY,EAC/DqB,EAAgBT,EAAuBZ,CAAY,EACzD,OAAIoB,EACEC,EAEK3B,GAAa2B,EAAeD,CAAiB,EAG/CA,EAGFC,GAAiBf,EAC1B,CACA,OAAOM,EAAuBZ,CAAY,GAAKM,EACjD,CAIF,CACA,EACMY,GAAoB,CAACF,EAAYC,EAAYK,IAAoB,CAErE,GADyBN,EAAW,OAASC,IACpB,EACvB,OAAOK,EAAgB,aAEzB,MAAMC,EAAmBP,EAAWC,CAAU,EACxCO,EAAsBF,EAAgB,SAAS,IAAIC,CAAgB,EACzE,GAAIC,EAAqB,CACvB,MAAMC,EAASP,GAAkBF,EAAYC,EAAa,EAAGO,CAAmB,EAChF,GAAIC,EAAQ,OAAOA,CACrB,CACA,MAAMrB,EAAakB,EAAgB,WACnC,GAAIlB,IAAe,KACjB,OAGF,MAAMsB,EAAYT,IAAe,EAAID,EAAW,KAAKX,EAAoB,EAAIW,EAAW,MAAMC,CAAU,EAAE,KAAKZ,EAAoB,EAC7HsB,EAAmBvB,EAAW,OACpC,QAASN,EAAI,EAAGA,EAAI6B,EAAkB7B,IAAK,CACzC,MAAM8B,EAAexB,EAAWN,CAAC,EACjC,GAAI8B,EAAa,UAAUF,CAAS,EAClC,OAAOE,EAAa,YAExB,CAEF,EAMMb,GAAiCD,GAAaA,EAAU,MAAM,EAAG,EAAE,EAAE,QAAQ,GAAG,IAAM,GAAK,QAAa,IAAM,CAClH,MAAMe,EAAUf,EAAU,MAAM,EAAG,EAAE,EAC/BgB,EAAaD,EAAQ,QAAQ,GAAG,EAChCE,EAAWF,EAAQ,MAAM,EAAGC,CAAU,EAC5C,OAAOC,EAAWxB,GAA4BwB,EAAW,MAC3D,GAAC,EAIKpB,GAAiBF,GAAU,CAC/B,KAAM,CACJ,MAAAuB,EACA,YAAAC,CACJ,EAAMxB,EACJ,OAAOyB,GAAmBD,EAAaD,CAAK,CAC9C,EAEME,GAAqB,CAACD,EAAaD,IAAU,CACjD,MAAMtB,EAAWR,GAAqB,EACtC,UAAWF,KAAgBiC,EAAa,CACtC,MAAME,EAAQF,EAAYjC,CAAY,EACtCoC,GAA0BD,EAAOzB,EAAUV,EAAcgC,CAAK,CAChE,CACA,OAAOtB,CACT,EACM0B,GAA4B,CAACC,EAAYf,EAAiBtB,EAAcgC,IAAU,CACtF,MAAMM,EAAMD,EAAW,OACvB,QAASvC,EAAI,EAAGA,EAAIwC,EAAKxC,IAAK,CAC5B,MAAMyC,EAAkBF,EAAWvC,CAAC,EACpC0C,GAAuBD,EAAiBjB,EAAiBtB,EAAcgC,CAAK,CAC9E,CACF,EAEMQ,GAAyB,CAACD,EAAiBjB,EAAiBtB,EAAcgC,IAAU,CACxF,GAAI,OAAOO,GAAoB,SAAU,CACvCE,GAAwBF,EAAiBjB,EAAiBtB,CAAY,EACtE,MACF,CACA,GAAI,OAAOuC,GAAoB,WAAY,CACzCG,GAA0BH,EAAiBjB,EAAiBtB,EAAcgC,CAAK,EAC/E,MACF,CACAW,GAAwBJ,EAAiBjB,EAAiBtB,EAAcgC,CAAK,CAC/E,EACMS,GAA0B,CAACF,EAAiBjB,EAAiBtB,IAAiB,CAClF,MAAM4C,EAAwBL,IAAoB,GAAKjB,EAAkBuB,GAAQvB,EAAiBiB,CAAe,EACjHK,EAAsB,aAAe5C,CACvC,EACM0C,GAA4B,CAACH,EAAiBjB,EAAiBtB,EAAcgC,IAAU,CAC3F,GAAIc,GAAcP,CAAe,EAAG,CAClCH,GAA0BG,EAAgBP,CAAK,EAAGV,EAAiBtB,EAAcgC,CAAK,EACtF,MACF,CACIV,EAAgB,aAAe,OACjCA,EAAgB,WAAa,CAAA,GAE/BA,EAAgB,WAAW,KAAKvB,GAA2BC,EAAcuC,CAAe,CAAC,CAC3F,EACMI,GAA0B,CAACJ,EAAiBjB,EAAiBtB,EAAcgC,IAAU,CACzF,MAAMe,EAAU,OAAO,QAAQR,CAAe,EACxCD,EAAMS,EAAQ,OACpB,QAASjD,EAAI,EAAGA,EAAIwC,EAAKxC,IAAK,CAC5B,KAAM,CAACkD,EAAKC,CAAK,EAAIF,EAAQjD,CAAC,EAC9BsC,GAA0Ba,EAAOJ,GAAQvB,EAAiB0B,CAAG,EAAGhD,EAAcgC,CAAK,CACrF,CACF,EACMa,GAAU,CAACvB,EAAiB4B,IAAS,CACzC,IAAIC,EAAU7B,EACd,MAAM8B,EAAQF,EAAK,MAAM7C,EAAoB,EACvCiC,EAAMc,EAAM,OAClB,QAAStD,EAAI,EAAGA,EAAIwC,EAAKxC,IAAK,CAC5B,MAAMuD,EAAOD,EAAMtD,CAAC,EACpB,IAAIwD,EAAOH,EAAQ,SAAS,IAAIE,CAAI,EAC/BC,IACHA,EAAOpD,GAAqB,EAC5BiD,EAAQ,SAAS,IAAIE,EAAMC,CAAI,GAEjCH,EAAUG,CACZ,CACA,OAAOH,CACT,EAEML,GAAgBS,GAAQ,kBAAmBA,GAAQA,EAAK,gBAAkB,GAG1EC,GAAiBC,GAAgB,CACrC,GAAIA,EAAe,EACjB,MAAO,CACL,IAAK,IAAA,GACL,IAAK,IAAM,CAAC,CAClB,EAEE,IAAIC,EAAY,EACZC,EAAQ,OAAO,OAAO,IAAI,EAC1BC,EAAgB,OAAO,OAAO,IAAI,EACtC,MAAMC,EAAS,CAACb,EAAKC,IAAU,CAC7BU,EAAMX,CAAG,EAAIC,EACbS,IACIA,EAAYD,IACdC,EAAY,EACZE,EAAgBD,EAChBA,EAAQ,OAAO,OAAO,IAAI,EAE9B,EACA,MAAO,CACL,IAAIX,EAAK,CACP,IAAIC,EAAQU,EAAMX,CAAG,EACrB,GAAIC,IAAU,OACZ,OAAOA,EAET,IAAKA,EAAQW,EAAcZ,CAAG,KAAO,OACnC,OAAAa,EAAOb,EAAKC,CAAK,EACVA,CAEX,EACA,IAAID,EAAKC,EAAO,CACVD,KAAOW,EACTA,EAAMX,CAAG,EAAIC,EAEbY,EAAOb,EAAKC,CAAK,CAErB,CACJ,CACA,EACMa,GAAqB,IACrBC,GAAqB,IACrBC,GAAkB,CAAA,EAElBC,GAAqB,CAACC,EAAWC,EAAsBC,EAAeC,EAA8BC,KAAgB,CACxH,UAAAJ,EACA,qBAAAC,EACA,cAAAC,EACA,6BAAAC,EACA,WAAAC,CACF,GACMC,GAAuB9D,GAAU,CACrC,KAAM,CACJ,OAAA+D,EACA,2BAAAC,CACJ,EAAMhE,EAOJ,IAAIiE,EAAiB5D,GAAa,CAEhC,MAAMoD,EAAY,CAAA,EAClB,IAAIS,EAAe,EACfC,EAAa,EACbC,EAAgB,EAChBC,EACJ,MAAMxC,EAAMxB,EAAU,OACtB,QAASiE,EAAQ,EAAGA,EAAQzC,EAAKyC,IAAS,CACxC,MAAMC,EAAmBlE,EAAUiE,CAAK,EACxC,GAAIJ,IAAiB,GAAKC,IAAe,EAAG,CAC1C,GAAII,IAAqBjB,GAAoB,CAC3CG,EAAU,KAAKpD,EAAU,MAAM+D,EAAeE,CAAK,CAAC,EACpDF,EAAgBE,EAAQ,EACxB,QACF,CACA,GAAIC,IAAqB,IAAK,CAC5BF,EAA0BC,EAC1B,QACF,CACF,CACIC,IAAqB,IAAKL,IAAwBK,IAAqB,IAAKL,IAAwBK,IAAqB,IAAKJ,IAAsBI,IAAqB,KAAKJ,GACpL,CACA,MAAMK,EAAqCf,EAAU,SAAW,EAAIpD,EAAYA,EAAU,MAAM+D,CAAa,EAE7G,IAAIT,EAAgBa,EAChBd,EAAuB,GACvBc,EAAmC,SAASnB,EAAkB,GAChEM,EAAgBa,EAAmC,MAAM,EAAG,EAAE,EAC9Dd,EAAuB,IAMzBc,EAAmC,WAAWnB,EAAkB,IAC9DM,EAAgBa,EAAmC,MAAM,CAAC,EAC1Dd,EAAuB,IAEzB,MAAME,EAA+BS,GAA2BA,EAA0BD,EAAgBC,EAA0BD,EAAgB,OACpJ,OAAOZ,GAAmBC,EAAWC,EAAsBC,EAAeC,CAA4B,CACxG,EACA,GAAIG,EAAQ,CACV,MAAMU,EAAaV,EAAST,GACtBoB,EAAyBT,EAC/BA,EAAiB5D,GAAaA,EAAU,WAAWoE,CAAU,EAAIC,EAAuBrE,EAAU,MAAMoE,EAAW,MAAM,CAAC,EAAIjB,GAAmBD,GAAiB,GAAOlD,EAAW,OAAW,EAAI,CACrM,CACA,GAAI2D,EAA4B,CAC9B,MAAMU,EAAyBT,EAC/BA,EAAiB5D,GAAa2D,EAA2B,CACvD,UAAA3D,EACA,eAAgBqE,CACtB,CAAK,CACH,CACA,OAAOT,CACT,EAOMU,GAAsB3E,GAAU,CAEpC,MAAM4E,EAAkB,IAAI,IAE5B,OAAA5E,EAAO,wBAAwB,QAAQ,CAAC6E,EAAKP,IAAU,CACrDM,EAAgB,IAAIC,EAAK,IAAUP,CAAK,CAC1C,CAAC,EACMb,GAAa,CAClB,MAAMzC,EAAS,CAAA,EACf,IAAI8D,EAAiB,CAAA,EAErB,QAASzF,EAAI,EAAGA,EAAIoE,EAAU,OAAQpE,IAAK,CACzC,MAAM0F,EAAWtB,EAAUpE,CAAC,EAEtB2F,EAAcD,EAAS,CAAC,IAAM,IAC9BE,EAAmBL,EAAgB,IAAIG,CAAQ,EACjDC,GAAeC,GAEbH,EAAe,OAAS,IAC1BA,EAAe,KAAI,EACnB9D,EAAO,KAAK,GAAG8D,CAAc,EAC7BA,EAAiB,CAAA,GAEnB9D,EAAO,KAAK+D,CAAQ,GAGpBD,EAAe,KAAKC,CAAQ,CAEhC,CAEA,OAAID,EAAe,OAAS,IAC1BA,EAAe,KAAI,EACnB9D,EAAO,KAAK,GAAG8D,CAAc,GAExB9D,CACT,CACF,EACMkE,GAAoBlF,IAAW,CACnC,MAAO+C,GAAe/C,EAAO,SAAS,EACtC,eAAgB8D,GAAqB9D,CAAM,EAC3C,cAAe2E,GAAoB3E,CAAM,EACzC,GAAGD,GAAsBC,CAAM,CACjC,GACMmF,GAAsB,MACtBC,GAAiB,CAACC,EAAWC,IAAgB,CACjD,KAAM,CACJ,eAAArB,EACA,gBAAAsB,EACA,4BAAAC,EACA,cAAAC,CACJ,EAAMH,EAQEI,EAAwB,CAAA,EACxBC,EAAaN,EAAU,KAAI,EAAG,MAAMF,EAAmB,EAC7D,IAAInE,EAAS,GACb,QAASsD,EAAQqB,EAAW,OAAS,EAAGrB,GAAS,EAAGA,GAAS,EAAG,CAC9D,MAAMsB,EAAoBD,EAAWrB,CAAK,EACpC,CACJ,WAAAT,EACA,UAAAJ,EACA,qBAAAC,EACA,cAAAC,EACA,6BAAAC,CACN,EAAQK,EAAe2B,CAAiB,EACpC,GAAI/B,EAAY,CACd7C,EAAS4E,GAAqB5E,EAAO,OAAS,EAAI,IAAMA,EAASA,GACjE,QACF,CACA,IAAIN,EAAqB,CAAC,CAACkD,EACvBrE,EAAegG,EAAgB7E,EAAqBiD,EAAc,UAAU,EAAGC,CAA4B,EAAID,CAAa,EAChI,GAAI,CAACpE,EAAc,CACjB,GAAI,CAACmB,EAAoB,CAEvBM,EAAS4E,GAAqB5E,EAAO,OAAS,EAAI,IAAMA,EAASA,GACjE,QACF,CAEA,GADAzB,EAAegG,EAAgB5B,CAAa,EACxC,CAACpE,EAAc,CAEjByB,EAAS4E,GAAqB5E,EAAO,OAAS,EAAI,IAAMA,EAASA,GACjE,QACF,CACAN,EAAqB,EACvB,CAEA,MAAMmF,EAAkBpC,EAAU,SAAW,EAAI,GAAKA,EAAU,SAAW,EAAIA,EAAU,CAAC,EAAIgC,EAAchC,CAAS,EAAE,KAAK,GAAG,EACzHqC,EAAapC,EAAuBmC,EAAkBxC,GAAqBwC,EAC3EE,EAAUD,EAAavG,EAC7B,GAAImG,EAAsB,QAAQK,CAAO,EAAI,GAE3C,SAEFL,EAAsB,KAAKK,CAAO,EAClC,MAAMC,EAAiBR,EAA4BjG,EAAcmB,CAAkB,EACnF,QAASrB,EAAI,EAAGA,EAAI2G,EAAe,OAAQ,EAAE3G,EAAG,CAC9C,MAAMqC,EAAQsE,EAAe3G,CAAC,EAC9BqG,EAAsB,KAAKI,EAAapE,CAAK,CAC/C,CAEAV,EAAS4E,GAAqB5E,EAAO,OAAS,EAAI,IAAMA,EAASA,EACnE,CACA,OAAOA,CACT,EAWMiF,GAAS,IAAIC,IAAe,CAChC,IAAI5B,EAAQ,EACR6B,EACAC,EACAC,EAAS,GACb,KAAO/B,EAAQ4B,EAAW,SACpBC,EAAWD,EAAW5B,GAAO,KAC3B8B,EAAgBE,GAAQH,CAAQ,KAClCE,IAAWA,GAAU,KACrBA,GAAUD,GAIhB,OAAOC,CACT,EACMC,GAAUC,GAAO,CAErB,GAAI,OAAOA,GAAQ,SACjB,OAAOA,EAET,IAAIH,EACAC,EAAS,GACb,QAASG,EAAI,EAAGA,EAAID,EAAI,OAAQC,IAC1BD,EAAIC,CAAC,IACHJ,EAAgBE,GAAQC,EAAIC,CAAC,CAAC,KAChCH,IAAWA,GAAU,KACrBA,GAAUD,GAIhB,OAAOC,CACT,EACMI,GAAsB,CAACC,KAAsBC,IAAqB,CACtE,IAAIrB,EACAsB,EACAC,EACAC,EACJ,MAAMC,EAAoB1B,GAAa,CACrC,MAAMrF,EAAS2G,EAAiB,OAAO,CAACK,EAAgBC,IAAwBA,EAAoBD,CAAc,EAAGN,GAAmB,EACxI,OAAApB,EAAcJ,GAAkBlF,CAAM,EACtC4G,EAAWtB,EAAY,MAAM,IAC7BuB,EAAWvB,EAAY,MAAM,IAC7BwB,EAAiBI,EACVA,EAAc7B,CAAS,CAChC,EACM6B,EAAgB7B,GAAa,CACjC,MAAM8B,EAAeP,EAASvB,CAAS,EACvC,GAAI8B,EACF,OAAOA,EAET,MAAMnG,EAASoE,GAAeC,EAAWC,CAAW,EACpD,OAAAuB,EAASxB,EAAWrE,CAAM,EACnBA,CACT,EACA,OAAA8F,EAAiBC,EACV,IAAIK,IAASN,EAAeb,GAAO,GAAGmB,CAAI,CAAC,CACpD,EACMC,GAAmB,CAAA,EACnBC,EAAY/E,GAAO,CACvB,MAAMgF,EAAchG,GAASA,EAAMgB,CAAG,GAAK8E,GAC3C,OAAAE,EAAY,cAAgB,GACrBA,CACT,EACMC,GAAsB,8BACtBC,GAAyB,8BACzBC,GAAgB,aAChBC,GAAkB,mCAClBC,GAAkB,4HAClBC,GAAqB,qDAErBC,GAAc,kEACdC,GAAa,+FACbC,GAAaxF,GAASkF,GAAc,KAAKlF,CAAK,EAC9CyF,EAAWzF,GAAS,CAAC,CAACA,GAAS,CAAC,OAAO,MAAM,OAAOA,CAAK,CAAC,EAC1D0F,EAAY1F,GAAS,CAAC,CAACA,GAAS,OAAO,UAAU,OAAOA,CAAK,CAAC,EAC9D2F,GAAY3F,GAASA,EAAM,SAAS,GAAG,GAAKyF,EAASzF,EAAM,MAAM,EAAG,EAAE,CAAC,EACvE4F,EAAe5F,GAASmF,GAAgB,KAAKnF,CAAK,EAClD6F,GAAQ,IAAM,GACdC,GAAe9F,GAIrBoF,GAAgB,KAAKpF,CAAK,GAAK,CAACqF,GAAmB,KAAKrF,CAAK,EACvD+F,GAAU,IAAM,GAChBC,GAAWhG,GAASsF,GAAY,KAAKtF,CAAK,EAC1CiG,GAAUjG,GAASuF,GAAW,KAAKvF,CAAK,EACxCkG,GAAoBlG,GAAS,CAACmG,EAAiBnG,CAAK,GAAK,CAACoG,EAAoBpG,CAAK,EACnFqG,GAAkBrG,GAASsG,GAAoBtG,EAAOuG,GAAaR,EAAO,EAC1EI,EAAmBnG,GAASgF,GAAoB,KAAKhF,CAAK,EAC1DwG,EAAoBxG,GAASsG,GAAoBtG,EAAOyG,GAAeX,EAAY,EACnFY,GAAoB1G,GAASsG,GAAoBtG,EAAO2G,GAAelB,CAAQ,EAC/EmB,GAAsB5G,GAASsG,GAAoBtG,EAAO6G,GAAiBd,EAAO,EAClFe,GAAmB9G,GAASsG,GAAoBtG,EAAO+G,GAAcd,EAAO,EAC5Ee,GAAoBhH,GAASsG,GAAoBtG,EAAOiH,GAAejB,EAAQ,EAC/EI,EAAsBpG,GAASiF,GAAuB,KAAKjF,CAAK,EAChEkH,GAA4BlH,GAASmH,GAAuBnH,EAAOyG,EAAa,EAChFW,GAAgCpH,GAASmH,GAAuBnH,EAAOqH,EAAiB,EACxFC,GAA8BtH,GAASmH,GAAuBnH,EAAO6G,EAAe,EACpFU,GAA0BvH,GAASmH,GAAuBnH,EAAOuG,EAAW,EAC5EiB,GAA2BxH,GAASmH,GAAuBnH,EAAO+G,EAAY,EAC9EU,GAA4BzH,GAASmH,GAAuBnH,EAAOiH,GAAe,EAAI,EAEtFX,GAAsB,CAACtG,EAAO0H,EAAWC,IAAc,CAC3D,MAAMnJ,EAASwG,GAAoB,KAAKhF,CAAK,EAC7C,OAAIxB,EACEA,EAAO,CAAC,EACHkJ,EAAUlJ,EAAO,CAAC,CAAC,EAErBmJ,EAAUnJ,EAAO,CAAC,CAAC,EAErB,EACT,EACM2I,GAAyB,CAACnH,EAAO0H,EAAWE,EAAqB,KAAU,CAC/E,MAAMpJ,EAASyG,GAAuB,KAAKjF,CAAK,EAChD,OAAIxB,EACEA,EAAO,CAAC,EACHkJ,EAAUlJ,EAAO,CAAC,CAAC,EAErBoJ,EAEF,EACT,EAEMf,GAAkBgB,GAASA,IAAU,YAAcA,IAAU,aAC7Dd,GAAec,GAASA,IAAU,SAAWA,IAAU,MACvDtB,GAAcsB,GAASA,IAAU,UAAYA,IAAU,QAAUA,IAAU,UAC3EpB,GAAgBoB,GAASA,IAAU,SACnClB,GAAgBkB,GAASA,IAAU,SACnCR,GAAoBQ,GAASA,IAAU,cACvCZ,GAAgBY,GAASA,IAAU,SA2BnCC,GAAmB,IAAM,CAM7B,MAAMC,EAAajD,EAAU,OAAO,EAC9BkD,EAAYlD,EAAU,MAAM,EAC5BmD,EAAYnD,EAAU,MAAM,EAC5BoD,EAAkBpD,EAAU,aAAa,EACzCqD,EAAgBrD,EAAU,UAAU,EACpCsD,EAAetD,EAAU,SAAS,EAClCuD,EAAkBvD,EAAU,YAAY,EACxCwD,EAAiBxD,EAAU,WAAW,EACtCyD,EAAezD,EAAU,SAAS,EAClC0D,EAAc1D,EAAU,QAAQ,EAChC2D,EAAc3D,EAAU,QAAQ,EAChC4D,EAAmB5D,EAAU,cAAc,EAC3C6D,EAAkB7D,EAAU,aAAa,EACzC8D,EAAkB9D,EAAU,aAAa,EACzC+D,EAAY/D,EAAU,MAAM,EAC5BgE,EAAmBhE,EAAU,aAAa,EAC1CiE,EAAcjE,EAAU,QAAQ,EAChCkE,EAAYlE,EAAU,MAAM,EAC5BmE,EAAenE,EAAU,SAAS,EAQlCoE,EAAa,IAAM,CAAC,OAAQ,QAAS,MAAO,aAAc,OAAQ,OAAQ,QAAS,QAAQ,EAC3FC,EAAgB,IAAM,CAAC,SAAU,MAAO,SAAU,OAAQ,QAAS,WAEzE,WAAY,YAEZ,YAAa,eAEb,eAAgB,cAEhB,aAAa,EACPC,EAA6B,IAAM,CAAC,GAAGD,EAAa,EAAI/C,EAAqBD,CAAgB,EAC7FkD,EAAgB,IAAM,CAAC,OAAQ,SAAU,OAAQ,UAAW,QAAQ,EACpEC,EAAkB,IAAM,CAAC,OAAQ,UAAW,MAAM,EAClDC,EAA0B,IAAM,CAACnD,EAAqBD,EAAkBoC,CAAY,EACpFiB,EAAa,IAAM,CAAChE,GAAY,OAAQ,OAAQ,GAAG+D,GAAyB,EAC5EE,EAA4B,IAAM,CAAC/D,EAAW,OAAQ,UAAWU,EAAqBD,CAAgB,EACtGuD,EAA6B,IAAM,CAAC,OAAQ,CAChD,KAAM,CAAC,OAAQhE,EAAWU,EAAqBD,CAAgB,CACnE,EAAKT,EAAWU,EAAqBD,CAAgB,EAC7CwD,EAA4B,IAAM,CAACjE,EAAW,OAAQU,EAAqBD,CAAgB,EAC3FyD,EAAwB,IAAM,CAAC,OAAQ,MAAO,MAAO,KAAMxD,EAAqBD,CAAgB,EAChG0D,EAAwB,IAAM,CAAC,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,UAAW,WAAY,cAAe,UAAU,EACxIC,EAA0B,IAAM,CAAC,QAAS,MAAO,SAAU,UAAW,cAAe,UAAU,EAC/FC,EAAc,IAAM,CAAC,OAAQ,GAAGR,EAAuB,CAAE,EACzDS,EAAc,IAAM,CAACxE,GAAY,OAAQ,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAG+D,GAAyB,EAC5IU,EAAa,IAAM,CAAClC,EAAY3B,EAAqBD,CAAgB,EACrE+D,GAAkB,IAAM,CAAC,GAAGf,EAAa,EAAI7B,GAA6BV,GAAqB,CACnG,SAAU,CAACR,EAAqBD,CAAgB,CACpD,CAAG,EACKgE,EAAgB,IAAM,CAAC,YAAa,CACxC,OAAQ,CAAC,GAAI,IAAK,IAAK,QAAS,OAAO,CAC3C,CAAG,EACKC,GAAc,IAAM,CAAC,OAAQ,QAAS,UAAW7C,GAAyBlB,GAAiB,CAC/F,KAAM,CAACD,EAAqBD,CAAgB,CAChD,CAAG,EACKkE,GAA4B,IAAM,CAAC1E,GAAWuB,GAA2BV,CAAiB,EAC1F8D,EAAc,IAAM,CAE1B,GAAI,OAAQ,OAAQ9B,EAAapC,EAAqBD,CAAgB,EAChEoE,EAAmB,IAAM,CAAC,GAAI9E,EAAUyB,GAA2BV,CAAiB,EACpFgE,GAAiB,IAAM,CAAC,QAAS,SAAU,SAAU,QAAQ,EAC7DC,GAAiB,IAAM,CAAC,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,cAAe,aAAc,aAAc,aAAc,aAAc,YAAa,MAAO,aAAc,QAAS,YAAY,EACtNC,EAAyB,IAAM,CAACjF,EAAUE,GAAW2B,GAA6BV,EAAmB,EACrG+D,GAAY,IAAM,CAExB,GAAI,OAAQ9B,EAAWzC,EAAqBD,CAAgB,EACtDyE,GAAc,IAAM,CAAC,OAAQnF,EAAUW,EAAqBD,CAAgB,EAC5E0E,GAAa,IAAM,CAAC,OAAQpF,EAAUW,EAAqBD,CAAgB,EAC3E2E,GAAY,IAAM,CAACrF,EAAUW,EAAqBD,CAAgB,EAClE4E,GAAiB,IAAM,CAACvF,GAAY,OAAQ,GAAG+D,EAAuB,CAAE,EAC9E,MAAO,CACL,UAAW,IACX,MAAO,CACL,QAAS,CAAC,OAAQ,OAAQ,QAAS,QAAQ,EAC3C,OAAQ,CAAC,OAAO,EAChB,KAAM,CAAC3D,CAAY,EACnB,WAAY,CAACA,CAAY,EACzB,MAAO,CAACC,EAAK,EACb,UAAW,CAACD,CAAY,EACxB,cAAe,CAACA,CAAY,EAC5B,KAAM,CAAC,KAAM,MAAO,QAAQ,EAC5B,KAAM,CAACM,EAAiB,EACxB,cAAe,CAAC,OAAQ,aAAc,QAAS,SAAU,SAAU,WAAY,OAAQ,YAAa,OAAO,EAC3G,eAAgB,CAACN,CAAY,EAC7B,QAAS,CAAC,OAAQ,QAAS,OAAQ,SAAU,UAAW,OAAO,EAC/D,YAAa,CAAC,WAAY,OAAQ,SAAU,WAAY,UAAW,MAAM,EACzE,OAAQ,CAACA,CAAY,EACrB,OAAQ,CAACA,CAAY,EACrB,QAAS,CAAC,KAAMH,CAAQ,EACxB,KAAM,CAACG,CAAY,EACnB,cAAe,CAACA,CAAY,EAC5B,SAAU,CAAC,UAAW,QAAS,SAAU,OAAQ,QAAS,QAAQ,CACxE,EACI,YAAa,CAQX,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,SAAUJ,GAAYW,EAAkBC,EAAqB2C,CAAW,CACjG,CAAO,EAMD,UAAW,CAAC,WAAW,EAKvB,QAAS,CAAC,CACR,QAAS,CAACtD,EAAUU,EAAkBC,EAAqBkC,CAAc,CACjF,CAAO,EAKD,cAAe,CAAC,CACd,cAAeY,EAAU,CACjC,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgBA,EAAU,CAClC,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,QAAS,aAAc,cAAc,CACtE,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,QAAS,OAAO,CAC3C,CAAO,EAKD,IAAK,CAAC,CACJ,IAAK,CAAC,SAAU,SAAS,CACjC,CAAO,EAKD,QAAS,CAAC,QAAS,eAAgB,SAAU,OAAQ,cAAe,QAAS,eAAgB,gBAAiB,aAAc,eAAgB,qBAAsB,qBAAsB,qBAAsB,kBAAmB,YAAa,YAAa,OAAQ,cAAe,WAAY,YAAa,QAAQ,EAKnT,GAAI,CAAC,UAAW,aAAa,EAK7B,MAAO,CAAC,CACN,MAAO,CAAC,QAAS,OAAQ,OAAQ,QAAS,KAAK,CACvD,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,OAAQ,QAAS,OAAQ,OAAQ,QAAS,KAAK,CAC/D,CAAO,EAKD,UAAW,CAAC,UAAW,gBAAgB,EAKvC,aAAc,CAAC,CACb,OAAQ,CAAC,UAAW,QAAS,OAAQ,OAAQ,YAAY,CACjE,CAAO,EAKD,kBAAmB,CAAC,CAClB,OAAQE,EAA0B,CAC1C,CAAO,EAKD,SAAU,CAAC,CACT,SAAUC,EAAa,CAC/B,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAa,CACnC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAa,CACnC,CAAO,EAKD,WAAY,CAAC,CACX,WAAYC,EAAe,CACnC,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgBA,EAAe,CACvC,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgBA,EAAe,CACvC,CAAO,EAKD,SAAU,CAAC,SAAU,QAAS,WAAY,WAAY,QAAQ,EAK9D,MAAO,CAAC,CACN,MAAOE,EAAU,CACzB,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,EAAU,CAC7B,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,EAAU,CAC7B,CAAO,EAKD,MAAO,CAAC,CACN,MAAOA,EAAU,CACzB,CAAO,EAKD,IAAK,CAAC,CACJ,IAAKA,EAAU,CACvB,CAAO,EAKD,IAAK,CAAC,CACJ,IAAKA,EAAU,CACvB,CAAO,EAKD,MAAO,CAAC,CACN,MAAOA,EAAU,CACzB,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQA,EAAU,CAC1B,CAAO,EAKD,KAAM,CAAC,CACL,KAAMA,EAAU,CACxB,CAAO,EAKD,WAAY,CAAC,UAAW,YAAa,UAAU,EAK/C,EAAG,CAAC,CACF,EAAG,CAAC9D,EAAW,OAAQU,EAAqBD,CAAgB,CACpE,CAAO,EAQD,MAAO,CAAC,CACN,MAAO,CAACX,GAAY,OAAQ,OAAQ8C,EAAgB,GAAGiB,EAAuB,CAAE,CACxF,CAAO,EAKD,iBAAkB,CAAC,CACjB,KAAM,CAAC,MAAO,cAAe,MAAO,aAAa,CACzD,CAAO,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,SAAU,OAAQ,cAAc,CAC/C,CAAO,EAKD,KAAM,CAAC,CACL,KAAM,CAAC9D,EAAUD,GAAY,OAAQ,UAAW,OAAQW,CAAgB,CAChF,CAAO,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,GAAIV,EAAUW,EAAqBD,CAAgB,CAClE,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,GAAIV,EAAUW,EAAqBD,CAAgB,CACpE,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAACT,EAAW,QAAS,OAAQ,OAAQU,EAAqBD,CAAgB,CACzF,CAAO,EAKD,YAAa,CAAC,CACZ,YAAasD,EAAyB,CAC9C,CAAO,EAKD,gBAAiB,CAAC,CAChB,IAAKC,EAA0B,CACvC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaC,EAAyB,CAC9C,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,EAAyB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaF,EAAyB,CAC9C,CAAO,EAKD,gBAAiB,CAAC,CAChB,IAAKC,EAA0B,CACvC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaC,EAAyB,CAC9C,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,EAAyB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,MAAO,MAAO,QAAS,YAAa,WAAW,CACrE,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaC,EAAqB,CAC1C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAqB,CAC1C,CAAO,EAKD,IAAK,CAAC,CACJ,IAAKL,EAAuB,CACpC,CAAO,EAKD,QAAS,CAAC,CACR,QAASA,EAAuB,CACxC,CAAO,EAKD,QAAS,CAAC,CACR,QAASA,EAAuB,CACxC,CAAO,EAKD,kBAAmB,CAAC,CAClB,QAAS,CAAC,GAAGM,EAAqB,EAAI,QAAQ,CACtD,CAAO,EAKD,gBAAiB,CAAC,CAChB,gBAAiB,CAAC,GAAGC,EAAuB,EAAI,QAAQ,CAChE,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,GAAGA,EAAuB,CAAE,CAC7D,CAAO,EAKD,gBAAiB,CAAC,CAChB,QAAS,CAAC,SAAU,GAAGD,EAAqB,CAAE,CACtD,CAAO,EAKD,cAAe,CAAC,CACd,MAAO,CAAC,GAAGC,IAA2B,CACpC,SAAU,CAAC,GAAI,MAAM,CAC/B,CAAS,CACT,CAAO,EAKD,aAAc,CAAC,CACb,KAAM,CAAC,OAAQ,GAAGA,IAA2B,CAC3C,SAAU,CAAC,GAAI,MAAM,CAC/B,CAAS,CACT,CAAO,EAKD,gBAAiB,CAAC,CAChB,gBAAiBD,EAAqB,CAC9C,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,GAAGC,EAAuB,EAAI,UAAU,CAChE,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQ,GAAGA,EAAuB,CAAE,CAC3D,CAAO,EAMD,EAAG,CAAC,CACF,EAAGP,EAAuB,CAClC,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAuB,CACnC,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAuB,CACnC,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAuB,CACnC,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAuB,CACnC,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAuB,CACnC,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAuB,CACnC,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAuB,CACnC,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAuB,CACnC,CAAO,EAKD,EAAG,CAAC,CACF,EAAGQ,EAAW,CACtB,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAW,CACvB,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAW,CACvB,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAW,CACvB,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAW,CACvB,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAW,CACvB,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAW,CACvB,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAW,CACvB,CAAO,EAKD,GAAI,CAAC,CACH,GAAIA,EAAW,CACvB,CAAO,EAKD,UAAW,CAAC,CACV,UAAWR,EAAuB,CAC1C,CAAO,EAKD,kBAAmB,CAAC,iBAAiB,EAKrC,UAAW,CAAC,CACV,UAAWA,EAAuB,CAC1C,CAAO,EAKD,kBAAmB,CAAC,iBAAiB,EAQrC,KAAM,CAAC,CACL,KAAMS,EAAW,CACzB,CAAO,EAKD,EAAG,CAAC,CACF,EAAG,CAAC1B,EAAgB,SAAU,GAAG0B,EAAW,CAAE,CACtD,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC1B,EAAgB,SAC1B,OAAQ,GAAG0B,EAAW,CAAE,CAChC,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC1B,EAAgB,SAAU,OACpC,QACA,CACE,OAAQ,CAACD,CAAe,CAClC,EAAW,GAAG2B,EAAW,CAAE,CAC3B,CAAO,EAKD,EAAG,CAAC,CACF,EAAG,CAAC,SAAU,KAAM,GAAGA,EAAW,CAAE,CAC5C,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,SAAU,KAAM,OAAQ,GAAGA,EAAW,CAAE,CAC1D,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,SAAU,KAAM,GAAGA,EAAW,CAAE,CAClD,CAAO,EAQD,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQ/B,EAAWf,GAA2BV,CAAiB,CAC9E,CAAO,EAKD,iBAAkB,CAAC,cAAe,sBAAsB,EAKxD,aAAc,CAAC,SAAU,YAAY,EAKrC,cAAe,CAAC,CACd,KAAM,CAAC0B,EAAiB9B,EAAqBM,EAAiB,CACtE,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,kBAAmB,kBAAmB,YAAa,iBAAkB,SAAU,gBAAiB,WAAY,iBAAkB,iBAAkBf,GAAWQ,CAAgB,CACpM,CAAO,EAKD,cAAe,CAAC,CACd,KAAM,CAACiB,GAA+BjB,EAAkB6B,CAAS,CACzE,CAAO,EAKD,aAAc,CAAC,aAAa,EAK5B,cAAe,CAAC,SAAS,EAKzB,mBAAoB,CAAC,cAAc,EAKnC,aAAc,CAAC,cAAe,eAAe,EAK7C,cAAe,CAAC,oBAAqB,cAAc,EAKnD,eAAgB,CAAC,qBAAsB,mBAAmB,EAK1D,SAAU,CAAC,CACT,SAAU,CAACG,EAAe/B,EAAqBD,CAAgB,CACvE,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACV,EAAU,OAAQW,EAAqBM,EAAiB,CAC/E,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CACT0B,EAAc,GAAGmB,EAAuB,CAAE,CAClD,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQnD,EAAqBD,CAAgB,CACpE,CAAO,EAKD,sBAAuB,CAAC,CACtB,KAAM,CAAC,SAAU,SAAS,CAClC,CAAO,EAKD,kBAAmB,CAAC,CAClB,KAAM,CAAC,OAAQ,UAAW,OAAQC,EAAqBD,CAAgB,CAC/E,CAAO,EAKD,iBAAkB,CAAC,CACjB,KAAM,CAAC,OAAQ,SAAU,QAAS,UAAW,QAAS,KAAK,CACnE,CAAO,EAMD,oBAAqB,CAAC,CACpB,YAAa8D,EAAU,CAC/B,CAAO,EAKD,aAAc,CAAC,CACb,KAAMA,EAAU,CACxB,CAAO,EAKD,kBAAmB,CAAC,YAAa,WAAY,eAAgB,cAAc,EAK3E,wBAAyB,CAAC,CACxB,WAAY,CAAC,GAAGO,GAAc,EAAI,MAAM,CAChD,CAAO,EAKD,4BAA6B,CAAC,CAC5B,WAAY,CAAC/E,EAAU,YAAa,OAAQW,EAAqBI,CAAiB,CAC1F,CAAO,EAKD,wBAAyB,CAAC,CACxB,WAAYyD,EAAU,CAC9B,CAAO,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,CAACxE,EAAU,OAAQW,EAAqBD,CAAgB,CACpF,CAAO,EAKD,iBAAkB,CAAC,YAAa,YAAa,aAAc,aAAa,EAKxE,gBAAiB,CAAC,WAAY,gBAAiB,WAAW,EAK1D,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQ,SAAU,UAAW,QAAQ,CACpD,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQoD,EAAuB,CACvC,CAAO,EAKD,iBAAkB,CAAC,CACjB,MAAO,CAAC,WAAY,MAAO,SAAU,SAAU,WAAY,cAAe,MAAO,QAASnD,EAAqBD,CAAgB,CACvI,CAAO,EAKD,WAAY,CAAC,CACX,WAAY,CAAC,SAAU,SAAU,MAAO,WAAY,WAAY,cAAc,CACtF,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,SAAU,QAAS,MAAO,MAAM,CAChD,CAAO,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,aAAc,WAAY,QAAQ,CACjD,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQ,SAAU,MAAM,CAC1C,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQC,EAAqBD,CAAgB,CAC/D,CAAO,EAQD,gBAAiB,CAAC,CAChB,GAAI,CAAC,QAAS,QAAS,QAAQ,CACvC,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAAC,SAAU,UAAW,UAAW,MAAM,CAC1D,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,SAAU,UAAW,SAAS,CACpD,CAAO,EAKD,cAAe,CAAC,CACd,GAAI+D,GAAe,CAC3B,CAAO,EAKD,YAAa,CAAC,CACZ,GAAIC,EAAa,CACzB,CAAO,EAKD,UAAW,CAAC,CACV,GAAIC,GAAW,CACvB,CAAO,EAKD,WAAY,CAAC,CACX,GAAI,CAAC,OAAQ,CACX,OAAQ,CAAC,CACP,GAAI,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAI,CAC3D,EAAa1E,EAAWU,EAAqBD,CAAgB,EACnD,OAAQ,CAAC,GAAIC,EAAqBD,CAAgB,EAClD,MAAO,CAACT,EAAWU,EAAqBD,CAAgB,CAClE,EAAWqB,GAA0BV,EAAgB,CACrD,CAAO,EAKD,WAAY,CAAC,CACX,GAAImD,EAAU,CACtB,CAAO,EAKD,oBAAqB,CAAC,CACpB,KAAMI,GAAyB,CACvC,CAAO,EAKD,mBAAoB,CAAC,CACnB,IAAKA,GAAyB,CACtC,CAAO,EAKD,kBAAmB,CAAC,CAClB,GAAIA,GAAyB,CACrC,CAAO,EAKD,gBAAiB,CAAC,CAChB,KAAMJ,EAAU,CACxB,CAAO,EAKD,eAAgB,CAAC,CACf,IAAKA,EAAU,CACvB,CAAO,EAKD,cAAe,CAAC,CACd,GAAIA,EAAU,CACtB,CAAO,EAQD,QAAS,CAAC,CACR,QAASK,EAAW,CAC5B,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAW,CAChC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAW,CAChC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAW,CAChC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAW,CAChC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAW,CAChC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAW,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAW,CACjC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAW,CACjC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAW,CACjC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAW,CACjC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAW,CACjC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAW,CACjC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAW,CACjC,CAAO,EAKD,aAAc,CAAC,CACb,aAAcA,EAAW,CACjC,CAAO,EAKD,WAAY,CAAC,CACX,OAAQC,EAAgB,CAChC,CAAO,EAKD,aAAc,CAAC,CACb,WAAYA,EAAgB,CACpC,CAAO,EAKD,aAAc,CAAC,CACb,WAAYA,EAAgB,CACpC,CAAO,EAKD,aAAc,CAAC,CACb,WAAYA,EAAgB,CACpC,CAAO,EAKD,aAAc,CAAC,CACb,WAAYA,EAAgB,CACpC,CAAO,EAKD,aAAc,CAAC,CACb,WAAYA,EAAgB,CACpC,CAAO,EAKD,aAAc,CAAC,CACb,WAAYA,EAAgB,CACpC,CAAO,EAKD,aAAc,CAAC,CACb,WAAYA,EAAgB,CACpC,CAAO,EAKD,aAAc,CAAC,CACb,WAAYA,EAAgB,CACpC,CAAO,EAKD,WAAY,CAAC,CACX,WAAYA,EAAgB,CACpC,CAAO,EAKD,mBAAoB,CAAC,kBAAkB,EAKvC,WAAY,CAAC,CACX,WAAYA,EAAgB,CACpC,CAAO,EAKD,mBAAoB,CAAC,kBAAkB,EAKvC,eAAgB,CAAC,CACf,OAAQ,CAAC,GAAGC,GAAc,EAAI,SAAU,MAAM,CACtD,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQ,CAAC,GAAGA,GAAc,EAAI,SAAU,MAAM,CACtD,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQP,EAAU,CAC1B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAYA,EAAU,CAC9B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAYA,EAAU,CAC9B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAYA,EAAU,CAC9B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAYA,EAAU,CAC9B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAYA,EAAU,CAC9B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAYA,EAAU,CAC9B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAYA,EAAU,CAC9B,CAAO,EAKD,iBAAkB,CAAC,CACjB,WAAYA,EAAU,CAC9B,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQA,EAAU,CAC1B,CAAO,EAKD,gBAAiB,CAAC,CAChB,QAAS,CAAC,GAAGO,GAAc,EAAI,OAAQ,QAAQ,CACvD,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC/E,EAAUW,EAAqBD,CAAgB,CAC1E,CAAO,EAKD,YAAa,CAAC,CACZ,QAAS,CAAC,GAAIV,EAAUyB,GAA2BV,CAAiB,CAC5E,CAAO,EAKD,gBAAiB,CAAC,CAChB,QAASyD,EAAU,CAC3B,CAAO,EAQD,OAAQ,CAAC,CACP,OAAQ,CAER,GAAI,OAAQxB,EAAahB,GAA2BT,EAAiB,CAC7E,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQiD,EAAU,CAC1B,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQvB,EAAkBjB,GAA2BT,EAAiB,CAC/F,CAAO,EAKD,qBAAsB,CAAC,CACrB,eAAgBiD,EAAU,CAClC,CAAO,EAKD,SAAU,CAAC,CACT,KAAMM,EAAgB,CAC9B,CAAO,EAOD,eAAgB,CAAC,YAAY,EAK7B,aAAc,CAAC,CACb,KAAMN,EAAU,CACxB,CAAO,EAOD,gBAAiB,CAAC,CAChB,cAAe,CAACxE,EAAUe,CAAiB,CACnD,CAAO,EAOD,oBAAqB,CAAC,CACpB,cAAeyD,EAAU,CACjC,CAAO,EAKD,eAAgB,CAAC,CACf,aAAcM,EAAgB,CACtC,CAAO,EAKD,mBAAoB,CAAC,CACnB,aAAcN,EAAU,CAChC,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,OAAQtB,EAAiBlB,GAA2BT,EAAiB,CAC7F,CAAO,EAKD,oBAAqB,CAAC,CACpB,cAAeiD,EAAU,CACjC,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAACxE,EAAUW,EAAqBD,CAAgB,CACjE,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,GAAGsE,GAAc,EAAI,cAAe,cAAc,CACxE,CAAO,EAKD,WAAY,CAAC,CACX,WAAYA,GAAc,CAClC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,SAAU,UAAW,UAAW,OAAQ,SAAU,MAAM,CAC9E,EAAS,cAAc,EAKjB,iBAAkB,CAAC,CACjB,KAAM,CAAC,MAAO,WAAY,YAAa,SAAS,CACxD,CAAO,EAKD,wBAAyB,CAAC,CACxB,cAAe,CAAChF,CAAQ,CAChC,CAAO,EACD,6BAA8B,CAAC,CAC7B,mBAAoBiF,EAAsB,CAClD,CAAO,EACD,2BAA4B,CAAC,CAC3B,iBAAkBA,EAAsB,CAChD,CAAO,EACD,+BAAgC,CAAC,CAC/B,mBAAoBT,EAAU,CACtC,CAAO,EACD,6BAA8B,CAAC,CAC7B,iBAAkBA,EAAU,CACpC,CAAO,EACD,wBAAyB,CAAC,CACxB,cAAeS,EAAsB,CAC7C,CAAO,EACD,sBAAuB,CAAC,CACtB,YAAaA,EAAsB,CAC3C,CAAO,EACD,0BAA2B,CAAC,CAC1B,cAAeT,EAAU,CACjC,CAAO,EACD,wBAAyB,CAAC,CACxB,YAAaA,EAAU,CAC/B,CAAO,EACD,wBAAyB,CAAC,CACxB,cAAeS,EAAsB,CAC7C,CAAO,EACD,sBAAuB,CAAC,CACtB,YAAaA,EAAsB,CAC3C,CAAO,EACD,0BAA2B,CAAC,CAC1B,cAAeT,EAAU,CACjC,CAAO,EACD,wBAAyB,CAAC,CACxB,YAAaA,EAAU,CAC/B,CAAO,EACD,wBAAyB,CAAC,CACxB,cAAeS,EAAsB,CAC7C,CAAO,EACD,sBAAuB,CAAC,CACtB,YAAaA,EAAsB,CAC3C,CAAO,EACD,0BAA2B,CAAC,CAC1B,cAAeT,EAAU,CACjC,CAAO,EACD,wBAAyB,CAAC,CACxB,YAAaA,EAAU,CAC/B,CAAO,EACD,wBAAyB,CAAC,CACxB,cAAeS,EAAsB,CAC7C,CAAO,EACD,sBAAuB,CAAC,CACtB,YAAaA,EAAsB,CAC3C,CAAO,EACD,0BAA2B,CAAC,CAC1B,cAAeT,EAAU,CACjC,CAAO,EACD,wBAAyB,CAAC,CACxB,YAAaA,EAAU,CAC/B,CAAO,EACD,wBAAyB,CAAC,CACxB,cAAeS,EAAsB,CAC7C,CAAO,EACD,sBAAuB,CAAC,CACtB,YAAaA,EAAsB,CAC3C,CAAO,EACD,0BAA2B,CAAC,CAC1B,cAAeT,EAAU,CACjC,CAAO,EACD,wBAAyB,CAAC,CACxB,YAAaA,EAAU,CAC/B,CAAO,EACD,wBAAyB,CAAC,CACxB,cAAeS,EAAsB,CAC7C,CAAO,EACD,sBAAuB,CAAC,CACtB,YAAaA,EAAsB,CAC3C,CAAO,EACD,0BAA2B,CAAC,CAC1B,cAAeT,EAAU,CACjC,CAAO,EACD,wBAAyB,CAAC,CACxB,YAAaA,EAAU,CAC/B,CAAO,EACD,oBAAqB,CAAC,CACpB,cAAe,CAAC7D,EAAqBD,CAAgB,CAC7D,CAAO,EACD,6BAA8B,CAAC,CAC7B,mBAAoBuE,EAAsB,CAClD,CAAO,EACD,2BAA4B,CAAC,CAC3B,iBAAkBA,EAAsB,CAChD,CAAO,EACD,+BAAgC,CAAC,CAC/B,mBAAoBT,EAAU,CACtC,CAAO,EACD,6BAA8B,CAAC,CAC7B,iBAAkBA,EAAU,CACpC,CAAO,EACD,0BAA2B,CAAC,CAC1B,cAAe,CAAC,SAAU,SAAS,CAC3C,CAAO,EACD,yBAA0B,CAAC,CACzB,cAAe,CAAC,CACd,QAAS,CAAC,OAAQ,QAAQ,EAC1B,SAAU,CAAC,OAAQ,QAAQ,CACrC,CAAS,CACT,CAAO,EACD,wBAAyB,CAAC,CACxB,iBAAkBd,EAAa,CACvC,CAAO,EACD,uBAAwB,CAAC,CACvB,aAAc,CAAC1D,CAAQ,CAC/B,CAAO,EACD,4BAA6B,CAAC,CAC5B,kBAAmBiF,EAAsB,CACjD,CAAO,EACD,0BAA2B,CAAC,CAC1B,gBAAiBA,EAAsB,CAC/C,CAAO,EACD,8BAA+B,CAAC,CAC9B,kBAAmBT,EAAU,CACrC,CAAO,EACD,4BAA6B,CAAC,CAC5B,gBAAiBA,EAAU,CACnC,CAAO,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,QAAS,YAAa,OAAO,CAC5C,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,SAAU,UAAW,UAAW,OAAQ,SAAU,MAAM,CAChF,CAAO,EAKD,gBAAiB,CAAC,CAChB,KAAMC,GAAe,CAC7B,CAAO,EAKD,cAAe,CAAC,CACd,KAAMC,EAAa,CAC3B,CAAO,EAKD,YAAa,CAAC,CACZ,KAAMC,GAAW,CACzB,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC,QAAS,WAAW,CAC1C,CAAO,EAKD,aAAc,CAAC,CACb,KAAM,CAAC,OAAQhE,EAAqBD,CAAgB,CAC5D,CAAO,EAQD,OAAQ,CAAC,CACP,OAAQ,CAER,GAAI,OAAQC,EAAqBD,CAAgB,CACzD,CAAO,EAKD,KAAM,CAAC,CACL,KAAMwE,GAAS,CACvB,CAAO,EAKD,WAAY,CAAC,CACX,WAAY,CAAClF,EAAUW,EAAqBD,CAAgB,CACpE,CAAO,EAKD,SAAU,CAAC,CACT,SAAU,CAACV,EAAUW,EAAqBD,CAAgB,CAClE,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAEf,GAAI,OAAQyC,EAAiBnB,GAA2BT,EAAiB,CACjF,CAAO,EAKD,oBAAqB,CAAC,CACpB,cAAeiD,EAAU,CACjC,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAAC,GAAIxE,EAAUW,EAAqBD,CAAgB,CACvE,CAAO,EAKD,aAAc,CAAC,CACb,aAAc,CAACV,EAAUW,EAAqBD,CAAgB,CACtE,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,GAAIV,EAAUW,EAAqBD,CAAgB,CACpE,CAAO,EAKD,SAAU,CAAC,CACT,SAAU,CAACV,EAAUW,EAAqBD,CAAgB,CAClE,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,GAAIV,EAAUW,EAAqBD,CAAgB,CACnE,CAAO,EAKD,kBAAmB,CAAC,CAClB,kBAAmB,CAEnB,GAAI,OAAQC,EAAqBD,CAAgB,CACzD,CAAO,EAKD,gBAAiB,CAAC,CAChB,gBAAiBwE,GAAS,CAClC,CAAO,EAKD,sBAAuB,CAAC,CACtB,sBAAuB,CAAClF,EAAUW,EAAqBD,CAAgB,CAC/E,CAAO,EAKD,oBAAqB,CAAC,CACpB,oBAAqB,CAACV,EAAUW,EAAqBD,CAAgB,CAC7E,CAAO,EAKD,qBAAsB,CAAC,CACrB,qBAAsB,CAAC,GAAIV,EAAUW,EAAqBD,CAAgB,CAClF,CAAO,EAKD,sBAAuB,CAAC,CACtB,sBAAuB,CAACV,EAAUW,EAAqBD,CAAgB,CAC/E,CAAO,EAKD,kBAAmB,CAAC,CAClB,kBAAmB,CAAC,GAAIV,EAAUW,EAAqBD,CAAgB,CAC/E,CAAO,EAKD,mBAAoB,CAAC,CACnB,mBAAoB,CAACV,EAAUW,EAAqBD,CAAgB,CAC5E,CAAO,EAKD,oBAAqB,CAAC,CACpB,oBAAqB,CAACV,EAAUW,EAAqBD,CAAgB,CAC7E,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,GAAIV,EAAUW,EAAqBD,CAAgB,CAC9E,CAAO,EAQD,kBAAmB,CAAC,CAClB,OAAQ,CAAC,WAAY,UAAU,CACvC,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkBoD,EAAuB,CACjD,CAAO,EAKD,mBAAoB,CAAC,CACnB,mBAAoBA,EAAuB,CACnD,CAAO,EAKD,mBAAoB,CAAC,CACnB,mBAAoBA,EAAuB,CACnD,CAAO,EAKD,eAAgB,CAAC,CACf,MAAO,CAAC,OAAQ,OAAO,CAC/B,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,MAAO,QAAQ,CACjC,CAAO,EAQD,WAAY,CAAC,CACX,WAAY,CAAC,GAAI,MAAO,SAAU,UAAW,SAAU,YAAa,OAAQnD,EAAqBD,CAAgB,CACzH,CAAO,EAKD,sBAAuB,CAAC,CACtB,WAAY,CAAC,SAAU,UAAU,CACzC,CAAO,EAKD,SAAU,CAAC,CACT,SAAU,CAACV,EAAU,UAAWW,EAAqBD,CAAgB,CAC7E,CAAO,EAKD,KAAM,CAAC,CACL,KAAM,CAAC,SAAU,UAAW6C,EAAW5C,EAAqBD,CAAgB,CACpF,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAACV,EAAUW,EAAqBD,CAAgB,CAC/D,CAAO,EAKD,QAAS,CAAC,CACR,QAAS,CAAC,OAAQ8C,EAAc7C,EAAqBD,CAAgB,CAC7E,CAAO,EAQD,SAAU,CAAC,CACT,SAAU,CAAC,SAAU,SAAS,CACtC,CAAO,EAKD,YAAa,CAAC,CACZ,YAAa,CAAC2C,EAAkB1C,EAAqBD,CAAgB,CAC7E,CAAO,EAKD,qBAAsB,CAAC,CACrB,qBAAsBiD,EAA0B,CACxD,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQwB,GAAW,CAC3B,CAAO,EAKD,WAAY,CAAC,CACX,WAAYA,GAAW,CAC/B,CAAO,EAKD,WAAY,CAAC,CACX,WAAYA,GAAW,CAC/B,CAAO,EAKD,WAAY,CAAC,CACX,WAAYA,GAAW,CAC/B,CAAO,EAKD,MAAO,CAAC,CACN,MAAOC,GAAU,CACzB,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,GAAU,CAC7B,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,GAAU,CAC7B,CAAO,EAKD,UAAW,CAAC,CACV,UAAWA,GAAU,CAC7B,CAAO,EAKD,WAAY,CAAC,UAAU,EAKvB,KAAM,CAAC,CACL,KAAMC,GAAS,CACvB,CAAO,EAKD,SAAU,CAAC,CACT,SAAUA,GAAS,CAC3B,CAAO,EAKD,SAAU,CAAC,CACT,SAAUA,GAAS,CAC3B,CAAO,EAKD,UAAW,CAAC,CACV,UAAW,CAAC1E,EAAqBD,EAAkB,GAAI,OAAQ,MAAO,KAAK,CACnF,CAAO,EAKD,mBAAoB,CAAC,CACnB,OAAQiD,EAA0B,CAC1C,CAAO,EAKD,kBAAmB,CAAC,CAClB,UAAW,CAAC,KAAM,MAAM,CAChC,CAAO,EAKD,UAAW,CAAC,CACV,UAAW2B,GAAc,CACjC,CAAO,EAKD,cAAe,CAAC,CACd,cAAeA,GAAc,CACrC,CAAO,EAKD,cAAe,CAAC,CACd,cAAeA,GAAc,CACrC,CAAO,EAKD,cAAe,CAAC,CACd,cAAeA,GAAc,CACrC,CAAO,EAKD,iBAAkB,CAAC,gBAAgB,EAQnC,OAAQ,CAAC,CACP,OAAQd,EAAU,CAC1B,CAAO,EAKD,WAAY,CAAC,CACX,WAAY,CAAC,OAAQ,MAAM,CACnC,CAAO,EAKD,cAAe,CAAC,CACd,MAAOA,EAAU,CACzB,CAAO,EAKD,eAAgB,CAAC,CACf,OAAQ,CAAC,SAAU,OAAQ,QAAS,aAAc,YAAa,YAAY,CACnF,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,UAAW,UAAW,OAAQ,OAAQ,OAAQ,OAAQ,cAAe,OAAQ,eAAgB,WAAY,OAAQ,YAAa,gBAAiB,QAAS,OAAQ,UAAW,OAAQ,WAAY,aAAc,aAAc,aAAc,WAAY,WAAY,WAAY,WAAY,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,cAAe,cAAe,UAAW,WAAY7D,EAAqBD,CAAgB,CAC1d,CAAO,EAKD,eAAgB,CAAC,CACf,eAAgB,CAAC,QAAS,SAAS,CAC3C,CAAO,EAKD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,OAAQ,MAAM,CACzC,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,GAAI,IAAK,GAAG,CACrC,CAAO,EAKD,kBAAmB,CAAC,CAClB,OAAQ,CAAC,OAAQ,QAAQ,CACjC,CAAO,EAKD,WAAY,CAAC,CACX,WAAYoD,EAAuB,CAC3C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,WAAY,CAAC,CACX,WAAYA,EAAuB,CAC3C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,YAAa,CAAC,CACZ,YAAaA,EAAuB,CAC5C,CAAO,EAKD,aAAc,CAAC,CACb,KAAM,CAAC,QAAS,MAAO,SAAU,YAAY,CACrD,CAAO,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,SAAU,QAAQ,CACjC,CAAO,EAKD,YAAa,CAAC,CACZ,KAAM,CAAC,OAAQ,IAAK,IAAK,MAAM,CACvC,CAAO,EAKD,kBAAmB,CAAC,CAClB,KAAM,CAAC,YAAa,WAAW,CACvC,CAAO,EAKD,MAAO,CAAC,CACN,MAAO,CAAC,OAAQ,OAAQ,cAAc,CAC9C,CAAO,EAKD,UAAW,CAAC,CACV,YAAa,CAAC,IAAK,OAAQ,OAAO,CAC1C,CAAO,EAKD,UAAW,CAAC,CACV,YAAa,CAAC,IAAK,KAAM,MAAM,CACvC,CAAO,EAKD,WAAY,CAAC,kBAAkB,EAK/B,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,OAAQ,MAAO,MAAM,CAC9C,CAAO,EAKD,cAAe,CAAC,CACd,cAAe,CAAC,OAAQ,SAAU,WAAY,YAAanD,EAAqBD,CAAgB,CACxG,CAAO,EAQD,KAAM,CAAC,CACL,KAAM,CAAC,OAAQ,GAAG8D,EAAU,CAAE,CACtC,CAAO,EAKD,WAAY,CAAC,CACX,OAAQ,CAACxE,EAAUyB,GAA2BV,EAAmBE,EAAiB,CAC1F,CAAO,EAKD,OAAQ,CAAC,CACP,OAAQ,CAAC,OAAQ,GAAGuD,EAAU,CAAE,CACxC,CAAO,EAQD,sBAAuB,CAAC,CACtB,sBAAuB,CAAC,OAAQ,MAAM,CAC9C,CAAO,CACP,EACI,uBAAwB,CACtB,SAAU,CAAC,aAAc,YAAY,EACrC,WAAY,CAAC,eAAgB,cAAc,EAC3C,MAAO,CAAC,UAAW,UAAW,QAAS,MAAO,MAAO,QAAS,SAAU,MAAM,EAC9E,UAAW,CAAC,QAAS,MAAM,EAC3B,UAAW,CAAC,MAAO,QAAQ,EAC3B,KAAM,CAAC,QAAS,OAAQ,QAAQ,EAChC,IAAK,CAAC,QAAS,OAAO,EACtB,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAClD,GAAI,CAAC,KAAM,IAAI,EACf,GAAI,CAAC,KAAM,IAAI,EACf,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAClD,GAAI,CAAC,KAAM,IAAI,EACf,GAAI,CAAC,KAAM,IAAI,EACf,KAAM,CAAC,IAAK,GAAG,EACf,YAAa,CAAC,SAAS,EACvB,aAAc,CAAC,cAAe,mBAAoB,aAAc,cAAe,cAAc,EAC7F,cAAe,CAAC,YAAY,EAC5B,mBAAoB,CAAC,YAAY,EACjC,aAAc,CAAC,YAAY,EAC3B,cAAe,CAAC,YAAY,EAC5B,eAAgB,CAAC,YAAY,EAC7B,aAAc,CAAC,UAAW,UAAU,EACpC,QAAS,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,YAAY,EACtM,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,YAAa,CAAC,aAAc,YAAY,EACxC,iBAAkB,CAAC,mBAAoB,kBAAkB,EACzD,WAAY,CAAC,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,YAAY,EAC3H,aAAc,CAAC,aAAc,YAAY,EACzC,aAAc,CAAC,aAAc,YAAY,EACzC,eAAgB,CAAC,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,gBAAgB,EAC/J,iBAAkB,CAAC,iBAAkB,gBAAgB,EACrD,iBAAkB,CAAC,iBAAkB,gBAAgB,EACrD,UAAW,CAAC,cAAe,cAAe,gBAAgB,EAC1D,iBAAkB,CAAC,YAAa,cAAe,cAAe,aAAa,EAC3E,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAW,EACnH,YAAa,CAAC,YAAa,WAAW,EACtC,YAAa,CAAC,YAAa,WAAW,EACtC,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAW,EACnH,YAAa,CAAC,YAAa,WAAW,EACtC,YAAa,CAAC,YAAa,WAAW,EACtC,MAAO,CAAC,UAAW,UAAW,UAAU,EACxC,UAAW,CAAC,OAAO,EACnB,UAAW,CAAC,OAAO,EACnB,WAAY,CAAC,OAAO,CAC1B,EACI,+BAAgC,CAC9B,YAAa,CAAC,SAAS,CAC7B,EACI,wBAAyB,CAAC,IAAK,KAAM,QAAS,WAAY,SAAU,kBAAmB,OAAQ,eAAgB,aAAc,SAAU,cAAe,WAAW,CACrK,CACA,EAsDMe,GAAuB/G,GAAoB6D,EAAgB,ECx/FjE,SAASmD,KAAMC,EAA+C,CAC5D,OAAOF,GAAQxO,GAAK0O,CAAM,CAAC,CAC7B,CAGA,MAAMC,GAA+C,CACnD,QAASF,EAEP,4BACA,uBACA,wBACA,mEAEA,sCACA,4BACA,4BAAA,EAEF,KAAMA,EAEJ,iCACA,uBACA,wBACA,gEAEA,4CACA,4BACA,4BAAA,EAEF,UAAWA,EAET,4BACA,uBACA,kBACA,+EAEA,4CACA,4BACA,4BAAA,EAEF,OAAQA,EAEN,oEACA,+CACA,wBACA,yEAEA,oEACA,0DACA,4BAAA,EAEF,MAAOA,EAEL,4BACA,sBACA,wBACA,mEAEA,4CACA,4BACA,4BAAA,EAEF,QAASA,EAEP,sDACA,+CACA,wBACA,yEAEA,oEACA,0DACA,4BAAA,EAEF,MAAOA,EAEL,kCACA,uBACA,wBACA,cAEA,wBACA,4BACA,4BAAA,EAEF,gBAAiBA,EAEf,kCACA,sBACA,wBACA,cAEA,wBACA,4BACA,4BAAA,EAEF,OAAQA,EAEN,6BACA,wBACA,yBACA,mEAEA,uCACA,6BACA,6BAAA,EAEF,cAAeA,EAEb,mCACA,wBACA,yBACA,gEAEA,8CACA,6BACA,6BAAA,CAEJ,EAGMG,GAAyC,CAC7C,GAAI,oCACJ,GAAI,gCACJ,GAAI,kCACJ,GAAI,+BACN,EAGMC,GAAiD,CACrD,GAAI,wBACJ,GAAI,wBACJ,GAAI,wBACJ,GAAI,uBACN,EAkBaC,GAASC,EAAAA,WACpB,CACE,CACE,QAAAC,EAAU,UACV,KAAAC,EAAO,KACP,QAAAC,EAAU,GACV,SAAAC,EAAW,GACX,UAAAC,EAAY,GACZ,SAAAC,EACA,UAAAC,EACA,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,IAAAC,EAAM,GACN,SAAAC,EACA,UAAAtO,EACA,GAAGuO,CAAA,EAELC,IACG,CAEH,MAAMC,EAAaL,GAAQ,CAACE,EAKtBI,EAAgBV,GAAYE,EAC5BS,EAAcV,GAAaE,EAG3BS,EAAgBxB,EAEpB,0CACA,iCACA,kBACA,0CACA,qGACA,iBAGAE,GAAcK,CAAO,EAGrBc,EAAajB,GAAmBI,CAAI,EAAIL,GAAWK,CAAI,EAGvDS,GAAO,gBAGPN,GAAa,UAGZD,GAAYD,IAAY,gEAGzB7N,CAAA,EAIF,OACE6O,EAAAA,KAAC,SAAA,CACC,IAAAL,EACA,KAAK,SACL,SAAUV,GAAYD,EACtB,IAAKQ,EAAM,MAAQ,OACnB,UAAWO,EACV,GAAGL,EAGH,SAAA,CAAAV,EACCiB,EAAAA,IAACC,EAAAA,QAAA,CAAQ,UAAU,gCAAA,CAAiC,EAClDN,EACFK,EAAAA,IAAC,OAAA,CAAK,UAAU,uFACb,SAAAV,CAAA,CACH,EACE,KAIH,CAACK,GAAc,CAACZ,GACfiB,EAAAA,IAAAE,EAAAA,SAAA,CACG,WACCH,EAAAA,KAAAG,EAAAA,SAAA,CAEG,SAAA,CAAAL,GACCG,EAAAA,IAAC,OAAA,CAAK,UAAU,4FACb,SAAAH,EACH,EAGDL,GACCQ,EAAAA,IAAC,OAAA,CAAK,UAAU,WAAY,SAAAR,EAAS,EAGtCI,GACCI,EAAAA,IAAC,OAAA,CAAK,UAAU,4FACb,SAAAJ,CAAA,CACH,CAAA,CAAA,CAEJ,EAEAG,EAAAA,KAAAG,EAAAA,SAAA,CAEG,SAAA,CAAAN,GACCI,EAAAA,IAAC,OAAA,CAAK,UAAU,4FACb,SAAAJ,EACH,EAGDJ,GACCQ,EAAAA,IAAC,OAAA,CAAK,UAAU,WAAY,SAAAR,EAAS,EAGtCK,GACCG,EAAAA,IAAC,OAAA,CAAK,UAAU,4FACb,SAAAH,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CAEJ,EAIDd,GAAW,CAACY,GAAcH,SACxB,OAAA,CAAK,UAAU,gBAAiB,SAAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAIlD,CACF,EAEAb,GAAO,YAAc,SC7SrB,SAASL,KAAMC,EAA+C,CAC5D,OAAOF,GAAQxO,GAAK0O,CAAM,CAAC,CAC7B,CAGA,MAAM4B,GAAiD,CACrD,SAAU,wBACV,SAAU,wBACV,MAAO,qBACP,SAAU,wBACV,OAAQ,sBACR,EAAG,gBACL,EAGMC,GAAoD,CACxD,SAAU,+BACV,SAAU,iCACV,MAAO,4BACP,SAAU,+BACV,OAAQ,6BACR,EAAG,2BACL,EAGMC,GAOD,CACH,SAAU,CACR,GAAI,qBACJ,QAAS,qBACT,UAAW,+BACX,KAAM,aACN,OAAQ,yBACR,UAAW,sBAAA,EAEb,SAAU,CACR,GAAI,qBACJ,QAAS,qBACT,UAAW,+BACX,KAAM,aACN,OAAQ,yBACR,UAAW,sBAAA,EAEb,MAAO,CACL,GAAI,kBACJ,QAAS,qBACT,UAAW,+BACX,KAAM,aACN,OAAQ,sBACR,UAAW,mBAAA,EAEb,SAAU,CACR,GAAI,qBACJ,QAAS,qBACT,UAAW,+BACX,KAAM,aACN,OAAQ,yBACR,UAAW,sBAAA,EAEb,OAAQ,CACN,GAAI,mBACJ,QAAS,qBACT,UAAW,+BACX,KAAM,aACN,OAAQ,uBACR,UAAW,oBAAA,EAEb,EAAG,CACD,GAAI,oBACJ,QAAS,qBACT,UAAW,+BACX,KAAM,aACN,OAAQ,wBACR,UAAW,qBAAA,CAEf,EAGMC,GAAmBC,IAGgC,CACrD,SAAUP,EAAAA,IAACQ,EAAAA,WAAA,CAAW,KAAM,EAAA,CAAU,EACtC,SAAUR,EAAAA,IAACS,EAAAA,WAAA,CAAW,KAAM,EAAA,CAAU,EACtC,MAAOT,EAAAA,IAACU,EAAAA,QAAA,CAAQ,KAAM,EAAA,CAAU,EAChC,SAAUV,EAAAA,IAACW,EAAAA,WAAA,CAAW,KAAM,EAAA,CAAU,EACtC,OAAQX,EAAAA,IAACY,EAAAA,SAAA,CAAS,KAAM,EAAA,CAAU,EAClC,EAAGZ,EAAAA,IAACa,EAAAA,WAAA,CAAW,KAAM,EAAA,CAAU,CAAA,GAGpBN,CAAQ,EAiBVO,GAAelC,EAAAA,WAC1B,CACE,CACE,SAAA2B,EACA,KAAAQ,EAAO,UACP,MAAAC,EAAQ,QACR,IAAAzB,EAAM,GACN,SAAAP,EAAW,GACX,UAAA9N,EACA,GAAGuO,CAAA,EAELC,IACG,CACH,MAAMuB,EAAQ1B,EACRI,EAAaoB,IAAS,WACtBG,EAAaF,IAAU,WACvBG,EAASd,GAAeE,CAAQ,EAChCjB,EAAOgB,GAAgBC,CAAQ,EAC/BrF,EAAQ+F,EAAQb,GAAkBG,CAAQ,EAAIJ,GAAeI,CAAQ,EAGrEa,EAAc9C,EAElB,0CACA,iCACA,kBACA,0CACA,sEACA,iBACA,WAGAqB,EAAa,cAAgB,6BAG7BsB,GAAS,gBAGTjC,GAAY,oDAGZ9N,CAAA,EAIImQ,EAAe/C,EACnB0C,IAAU,QACN1C,EACE6C,EAAO,GACPA,EAAO,KACPA,EAAO,QACPA,EAAO,UACP,4BACA,2BACA,+BACA,sCAAA,EAEF7C,EACE,WACA6C,EAAO,OACPA,EAAO,UACP,SACA,iBACA,sBACA,6BACAA,EAAO,SAAA,CACT,EAIAG,EAAchD,EAClB,iDACA,oBACAqB,EAAa,GAAc,SAC3BuB,GAAcC,EAAO,SAAA,EAIjBI,EAAa,IACjBvB,EAAAA,IAAC,OAAA,CAAK,UAAWsB,EACd,SAAAhC,EACH,EAGF,OACEU,EAAAA,IAAC,SAAA,CACC,IAAAN,EACA,KAAK,SACL,SAAAV,EACA,IAAKiC,EAAQ,MAAQ,OACrB,UAAW3C,EAAG8C,EAAaC,CAAY,EACtC,GAAG5B,EAIH,WACCM,EAAAA,KAAAG,EAAAA,SAAA,CACG,SAAA,CAAA,CAACP,GACAK,EAAAA,IAAC,OAAA,CAAK,UAAW1B,EAAG,yBAA0B4C,GAAcC,EAAO,SAAS,EAAI,SAAAjG,CAAA,CAAM,EAEvFqG,EAAA,CAAW,CAAA,CACd,EAEAxB,EAAAA,KAAAG,EAAAA,SAAA,CACG,SAAA,CAAAqB,EAAA,EACA,CAAC5B,GACAK,EAAAA,IAAC,OAAA,CAAK,UAAW1B,EAAG,yBAA0B4C,GAAcC,EAAO,SAAS,EAAI,SAAAjG,CAAA,CAAM,CAAA,CAAA,CAE1F,CAAA,CAAA,CAIR,CACF,EAEA4F,GAAa,YAAc,eC7PpB,SAASxC,KAAMC,EAA+C,CACnE,OAAOF,GAAQxO,GAAK0O,CAAM,CAAC,CAC7B,CCyBO,MAAMiD,GAAc5C,EAAAA,WACzB,CACE,CACE,MAAA6C,EAAQ,CAAA,EACR,KAAA3C,EAAO,KACP,KAAAiC,EAAO,UACP,IAAAxB,EAAM,GACN,UAAAmC,EAAY,CAAA,EACZ,UAAAxQ,EACA,GAAGuO,CAAA,EAELC,IACG,CAoBH,MAAM7O,EAlBa,CACjB,GAAI,CACF,OAAQ,WACR,QAASkQ,IAAS,WAAa,SAAW,OAC1C,IAAKA,IAAS,WAAa,UAAY,OAAA,EAEzC,GAAI,CACF,OAAQ,WACR,QAASA,IAAS,WAAa,OAAS,SACxC,IAA2B,OAAU,EAEvC,GAAI,CACF,OAAQ,WACR,QAASA,IAAS,WAAa,SAAW,SAC1C,IAA2B,OAAU,CACvC,EAGwBjC,CAAI,EAGxB6C,EAAmBrD,EACvB,oDACA,0DACA,+CACAiB,GAAO,mBACPrO,CAAA,EAII0Q,EAAoB,CAACC,EAAuBC,EAAkBC,IAAqBzD,EACvF,4CACA,6CACAzN,EAAO,OACPA,EAAO,QACPA,EAAO,IACP,0DACA,CAACgR,EAAK,UAAY,6CAClB,CAACA,EAAK,UAAY,iBAClBA,EAAK,UAAY,gCACjBA,EAAK,QAAU,iBAEf,CAACC,GAAW,6DACZ,CAACA,GAAW,uCACZvC,GAAO,CAACuC,GAAW,iCAAA,EAGrB,cACG,MAAA,CAAI,IAAApC,EAAU,UAAWiC,EAAmB,GAAGlC,EAE9C,SAAA,CAAAO,EAAAA,IAAC,MAAA,CAAI,UAAU,uGAAA,CAAwG,EAGtHyB,EAAM,IAAI,CAACI,EAAM1M,IAAU,CAC1B,MAAM6M,EAAOH,EAAK,MAAQI,EAAAA,KACpBH,EAAU3M,IAAU,EACDsM,EAAM,OAAS,EACxC,MAAMS,EAAe3C,GAAOmC,EAAUvM,CAAK,EAAIuM,EAAUvM,CAAK,EAAI0M,EAAK,MAEvE,OACE7B,EAAAA,IAAC,SAAA,CAEC,KAAK,SACL,QAAS6B,EAAK,QACd,SAAUA,EAAK,SACf,UAAWD,EAAkBC,EAAMC,CAAe,EAEjD,SAAAf,IAAS,UACRf,EAAAA,IAAAE,EAAAA,SAAA,CACG,SAAAX,EACCQ,EAAAA,KAAAG,EAAAA,SAAA,CAEG,SAAA,CAAAgC,GACClC,EAAAA,IAAC,OAAA,CAAK,UAAU,yCACb,SAAAkC,EACH,EAEFlC,EAAAA,IAACgC,EAAA,CAAK,UAAU,kBAAA,CAAmB,CAAA,CAAA,CACrC,EAEAjC,EAAAA,KAAAG,EAAAA,SAAA,CAEE,SAAA,CAAAF,EAAAA,IAACgC,EAAA,CAAK,UAAU,kBAAA,CAAmB,EAClCE,GACClC,EAAAA,IAAC,OAAA,CAAK,UAAU,2BACb,SAAAkC,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CAEJ,EAGAlC,EAAAA,IAACgC,EAAA,CAAK,UAAU,kBAAA,CAAmB,CAAA,EAhChC7M,CAAA,CAoCX,CAAC,CAAA,EACH,CAEJ,CACF,EAEAqM,GAAY,YAAc,cC5HnB,MAAMW,GAAWvD,EAAAA,WACtB,CACE,CACE,MAAA1D,EACA,YAAAkH,EACA,SAAAC,EACA,eAAAC,EACA,cAAAC,EAAgB,UAChB,cAAAC,EAAgB,GAChB,IAAAjD,EAAM,GACN,MAAAkD,EAAQ,GACR,SAAAzD,EAAW,GACX,QAAA0D,EAAU,GACV,UAAAxR,EACA,GAAGuO,CAAA,EAELC,IACG,CACH,MAAMwC,EAAe3C,GAAO8C,EAAWA,EAAWnH,EAC5CyH,EAAqBpD,GAAO+C,EAAiBA,EAAiBF,EAC9DQ,EAAiB,CAAC,CAACR,GAAe,CAAC,CAACE,EAGpCO,EAAqBvE,EACzB,+FACA,wDAEA,CAACoE,GAAW,CAACF,GAAiB,CAACC,GAAS,CAACzD,GAAY,qBACrD,CAAC0D,GAAW,CAACF,GAAiBC,GAAS,CAACzD,GAAY,qBACnD0D,GAAWF,IAAkB,CAACxD,GAAY,oCAE3C,CAACA,GAAY,CAAC0D,GAAW,CAACF,GAAiB,2BAC3C,CAACxD,IAAa0D,GAAWF,IAAkB,gDAG3CxD,GAAY,gCAEZ,uEACA,wDAAA,EAII2C,EAAmBrD,EACvB,gCACAsE,EAAiB,cAAgB,eACjCrD,GAAO,mBACPgD,IAAkB,YAAc,CAAChD,GAAO,mBACxCgD,IAAkB,WAAahD,GAAO,mBACtCrO,CAAA,EAII4R,EAAsBxE,EAC1B,+BACiB,iBACjBiB,GAAO,sBAAA,EAIHwD,EAAezE,EACnB,qDACAiB,GAAO,gBACPP,GAAY,YAAA,EAIRgE,EAAqB1E,EACzB,qDACAiB,GAAO,gBACPP,GAAY,YAAA,EAGd,OACEe,EAAAA,KAAC,QAAA,CAAM,UAAW4B,EAEhB,SAAA,CAAA3B,EAAAA,IAAC,QAAA,CACC,IAAAN,EACA,KAAK,WACL,QAAAgD,EACA,SAAA1D,EACA,UAAU,eACT,GAAGS,CAAA,CAAA,EAINM,EAAAA,KAAC,MAAA,CAAI,UAAU,mCACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAW8C,EAEb,SAAA,CAAAH,GAAW,CAACF,GACXxC,EAAAA,IAACiD,EAAAA,MAAA,CAAM,UAAU,kCAAkC,EAGpDT,GACCxC,EAAAA,IAACkD,EAAAA,MAAA,CAAM,UAAU,iCAAA,CAAkC,CAAA,EAEvD,EAGAlD,EAAAA,IAAC,MAAA,CACC,UAAW1B,EACT,yDACA,iCACA,0CACA,iCAAA,CACF,CAAA,CACF,EACF,GAGEpD,GAASmH,IACTtC,EAAAA,KAAC,MAAA,CAAI,UAAW+C,EAAqB,IAAKvD,EAAM,MAAQ,OACtD,SAAA,CAAAS,EAAAA,IAAC,OAAA,CAAK,UAAW+C,EAAe,SAAAb,EAAa,EAC5CU,GACC5C,EAAAA,IAAC,OAAA,CAAK,UAAWgD,EAAqB,SAAAL,CAAA,CAAmB,CAAA,CAAA,CAE7D,CAAA,EAEJ,CAEJ,CACF,EAEAR,GAAS,YAAc,WCpHhB,MAAMgB,GAAgBvE,EAAAA,WAC3B,CACE,CACE,MAAA1D,EACA,YAAAkH,EACA,SAAAC,EACA,eAAAC,EACA,SAAAc,EAAW,GACX,SAAApE,EAAW,GACX,KAAA+B,EAAO,UACP,KAAMiB,EACN,WAAAqB,EACA,IAAA9D,EAAM,GACN,SAAA+D,EACA,UAAApS,EACA,GAAGuO,CAAA,EAELC,IACG,CACH,MAAMwC,EAAe3C,GAAO8C,EAAWA,EAAWnH,EAC5CyH,EAAqBpD,GAAO+C,EAAiBA,EAAiBF,EAC9DmB,EAAU,CAAC,CAACvB,GAAQ,CAAC,CAACqB,EACtBT,EAAiB,CAAC,CAACR,GAAe,CAAC,CAACE,EAEpCkB,EAAc,IAAM,CACpB,CAACxE,GAAYsE,GACfA,EAAS,CAACF,CAAQ,CAEtB,EAEMK,EAAiBC,GAA2B,CAC5C,CAAC1E,IAAa0E,EAAE,MAAQ,KAAOA,EAAE,MAAQ,WAC3CA,EAAE,eAAA,EACFJ,GAAA,MAAAA,EAAW,CAACF,GAEhB,EAGMzB,EAAmBrD,EACvB,2DACA,yDACA,+CAEA,0EACA,yDAEA,CAACU,GAAY,CAACoE,GAAY,qBAC1B,CAACpE,GAAYoE,GAAY,8BACzB,CAACpE,GAAY,qCACbA,GAAY,sDAEZO,GAAO,mBACPrO,CAAA,EAIIyS,EAAkBrF,EACtB,+GACA,wDAEA,CAAC8E,GAAY,CAACpE,GAAY,qBAC1BoE,GAAY,CAACpE,GAAY,oCACzBA,GAAY,oCAEZ,uEACA,wDAAA,EAII4E,EAAiBtF,EACrB,sBACCyC,IAAS,aAAewC,GAAaxC,IAAS,WAAawC,EAAW,QAAU,GACjFhE,GAAO,kBAAA,EAIHsE,EAAcvF,EAClB,uCACAiB,GAAO,sBAAA,EAIHwD,EAAezE,EACnB,qDACAiB,GAAO,gBACPP,GAAY,kBAAA,EAIRgE,EAAqB1E,EACzB,qDACAiB,GAAO,gBACPP,GAAY,kBAAA,EAIR8E,EAAqBxF,EACzB,WACAU,GAAY,YAAA,EAGR+E,EAAiB,IACrB/D,EAAAA,IAAC,MAAA,CAAI,UAAW2D,EACb,SAAAP,GACCpD,EAAAA,IAAC,MAAA,CACC,UAAU,qBACV,KAAK,OACL,QAAQ,YACR,OAAO,eACP,YAAY,MAEZ,SAAAA,EAAAA,IAAC,OAAA,CACC,EAAE,2BACF,cAAc,QACd,eAAe,OAAA,CAAA,CACjB,CAAA,EAGN,EAGIuB,EAAa,IACb8B,EACKrD,EAAAA,IAAC,MAAA,CAAI,UAAW8D,EAAqB,SAAAT,EAAW,EAErDrB,EAEAhC,MAAC,OAAI,UAAW8D,EACd,eAAC9B,EAAA,CAAK,UAAU,2BAA2B,CAAA,CAC7C,EAGG,KAGHgC,EAAgB,IAEhBjD,IAAS,cAAgB,CAAC6B,SAEzB,MAAA,CAAI,UAAWtE,EAAG,iCAAkCiB,GAAO,kBAAkB,EAC3E,SAAA,CAAAwE,EAAA,EACD/D,EAAAA,IAAC,QAAK,UAAW+C,EAAc,IAAKxD,EAAM,MAAQ,OAC/C,SAAA2C,CAAA,CACH,CAAA,EACF,EAKAnB,IAAS,YAEThB,EAAAA,KAAAG,WAAA,CACG,SAAA,CAAA6D,EAAA,EACD/D,EAAAA,IAAC,MAAA,CAAI,UAAW4D,EACd,SAAA7D,EAAAA,KAAC,MAAA,CAAI,UAAW8D,EAAa,IAAKtE,EAAM,MAAQ,OAC9C,SAAA,CAAAS,EAAAA,IAAC,OAAA,CAAK,UAAW+C,EAAe,SAAAb,EAAa,EAC5CU,GACC5C,EAAAA,IAAC,OAAA,CAAK,UAAWgD,EAAqB,SAAAL,CAAA,CAAmB,CAAA,CAAA,CAE7D,CAAA,CACF,CAAA,EACF,EAKA5B,IAAS,aAEThB,EAAAA,KAAAG,WAAA,CACE,SAAA,CAAAF,EAAAA,IAAC,MAAA,CAAI,UAAW4D,EACd,SAAA7D,EAAAA,KAAC,MAAA,CAAI,UAAW8D,EAAa,IAAKtE,EAAM,MAAQ,OAC9C,SAAA,CAAAS,EAAAA,IAAC,OAAA,CAAK,UAAW+C,EAAe,SAAAb,EAAa,EAC5CU,GACC5C,EAAAA,IAAC,OAAA,CAAK,UAAWgD,EAAqB,SAAAL,CAAA,CAAmB,CAAA,CAAA,CAE7D,CAAA,CACF,EACCoB,EAAA,CAAe,EAClB,EAMFhE,EAAAA,KAAAG,WAAA,CACE,SAAA,CAAAH,EAAAA,KAAC,MAAA,CAAI,UAAW6D,EACb,SAAA,CAAArC,EAAA,SACA,MAAA,CAAI,UAAWsC,EAAa,IAAKtE,EAAM,MAAQ,OAC9C,SAAA,CAAAS,EAAAA,IAAC,OAAA,CAAK,UAAW+C,EAAe,SAAAb,EAAa,EAC5CU,GACC5C,EAAAA,IAAC,OAAA,CAAK,UAAWgD,EAAqB,SAAAL,CAAA,CAAmB,CAAA,CAAA,CAE7D,CAAA,EACF,EACCoB,EAAA,CAAe,EAClB,EAIEE,EAAUjF,EAAW,MAAQ,SAEnC,OACEgB,EAAAA,IAACiE,EAAA,CACC,IAAAvE,EACA,UAAWiC,EACX,QAAU3C,EAAyB,OAAdwE,EACrB,UAAYxE,EAA2B,OAAhByE,EACvB,SAAAzE,EACA,KAAOA,EAAwB,OAAb,WAClB,eAAeA,EAAsB,OAAXoE,EAC1B,gBAAepE,EACf,SAAWA,EAAe,OAAJ,EACrB,GAAGS,EAEH,SAAAuE,EAAA,CAAc,CAAA,CAGrB,CACF,EAEAb,GAAc,YAAc,gBC9NrB,MAAMe,GAAWtF,EAAAA,WACtB,CACE,CACE,MAAA1D,EACA,QAAAwH,EAAU,GACV,SAAAY,EACA,gBAAAa,EACA,KAAArF,EAAO,KACP,IAAAS,EAAM,GACN,SAAAP,EAAW,GACX,UAAA9N,EACA,GAAGuO,CAAA,EAELC,IACG,CACH,MAAM0E,EAAe,IAAM,CACrBd,KAAmBZ,CAAO,EAC1ByB,KAAiCzB,CAAO,CAC9C,EAwBM7R,EArBa,CACjB,GAAI,CACF,MAAO,UACP,MAAO,UACP,iBAAkB,gBAClB,mBAAoB,iBAAA,EAEtB,GAAI,CACF,MAAO,WACP,MAAO,UACP,iBAAkB,gBAClB,mBAAoB,iBAAA,EAEtB,GAAI,CACF,MAAO,WACP,MAAO,UACP,iBAAkB,gBAClB,mBAAoB,iBAAA,CACtB,EAGwBiO,CAAI,EAGxBuF,EAAe/F,EACnB,qGACA,6GACAzN,EAAO,MAEP6R,EACI,sCACA,sCAEJ,6CACAA,EACI,gDACA,gDAEJ1D,GAAY,gCACZ,CAACA,GAAY,iBAEbO,GAAO,KAAA,EAKH+E,EAAehG,EACnB,wHACAzN,EAAO,MAGP6R,EAAU7R,EAAO,iBAAmBA,EAAO,mBAE3C,qBAAA,EAII8Q,EAAmBrD,EACvB,iCACAiB,GAAO,mBACPrO,CAAA,EAII6R,EAAezE,EACnB,sBACA,yCACAU,GAAY,gCACZ,CAACA,GAAY,gBAAA,EAGf,cACG,QAAA,CAAM,UAAW2C,EAAkB,IAAKpC,EAAM,MAAQ,OACrD,SAAA,CAAAS,EAAAA,IAAC,QAAA,CACC,IAAAN,EACA,KAAK,WACL,KAAK,SACL,QAAAgD,EACA,SAAU0B,EACV,SAAApF,EACA,UAAU,UACT,GAAGS,CAAA,CAAA,EAENO,EAAAA,IAAC,OAAA,CAAK,UAAWqE,EAAc,IAAK9E,EAAM,MAAQ,OAChD,SAAAS,EAAAA,IAAC,OAAA,CAAK,UAAWsE,CAAA,CAAc,EACjC,EACCpJ,GAAS8E,EAAAA,IAAC,OAAA,CAAK,UAAW+C,EAAe,SAAA7H,CAAA,CAAM,CAAA,EAClD,CAEJ,CACF,EAEAgJ,GAAS,YAAc,WC/FvB,SAAS5F,MAAMC,EAA+C,CAC5D,OAAOF,GAAQxO,GAAK0O,CAAM,CAAC,CAC7B,CAGA,MAAMgG,GAAgE,CACpE,MAAO,CACL,QAAS,2DACT,KAAM,kDACN,MAAO,qDACP,MAAO,qDACP,OAAQ,8DACR,OAAQ,wDACR,QAAS,2DACT,KAAM,kDACN,IAAK,+CACL,OAAQ,uDAAA,EAEV,QAAS,CACP,QAAS,sDACT,KAAM,mDACN,MAAO,oDACP,MAAO,oDACP,OAAQ,uDACR,OAAQ,qDACR,QAAS,sDACT,KAAM,mDACN,IAAK,kDACL,OAAQ,oDAAA,EAEV,MAAO,CACL,QAAS,sDACT,KAAM,mDACN,MAAO,oDACP,MAAO,oDACP,OAAQ,uDACR,OAAQ,qDACR,QAAS,sDACT,KAAM,mDACN,IAAK,kDACL,OAAQ,oDAAA,CAEZ,EAGMC,GAAkE,CACtE,MAAO,CACL,QAAS,iBACT,KAAM,cACN,MAAO,eACP,MAAO,eACP,OAAQ,kBACR,OAAQ,gBACR,QAAS,iBACT,KAAM,cACN,IAAK,aACL,OAAQ,eAAA,EAEV,QAAS,CACP,QAAS,iBACT,KAAM,cACN,MAAO,eACP,MAAO,eACP,OAAQ,kBACR,OAAQ,gBACR,QAAS,iBACT,KAAM,cACN,IAAK,aACL,OAAQ,eAAA,EAEV,MAAO,CACL,QAAS,WACT,KAAM,WACN,MAAO,WACP,MAAO,WACP,OAAQ,WACR,OAAQ,WACR,QAAS,WACT,KAAM,WACN,IAAK,WACL,OAAQ,UAAA,CAEZ,EAGM/F,GAAwC,CAC5C,GAAI,4CACJ,GAAI,2CACN,EAGMgG,GAAuC,CAC3C,GAAI,UACJ,GAAI,SACN,EAGMC,GAAsC,CAC1C,GAAI,UACJ,GAAI,aACN,EAcaC,GAAQ/F,EAAAA,WACnB,CACE,CACE,KAAAmC,EAAO,UACP,MAAAC,EAAQ,QACR,KAAAlC,EAAO,KACP,MAAA8F,EAAQ,UACR,WAAAC,EAAa,GACb,OAAAC,EACA,SAAAtF,EACA,YAAAuF,EACA,aAAAC,EACA,SAAAC,EACA,IAAA1F,EAAM,GACN,UAAArO,EACA,GAAGuO,CAAA,EAELC,IACG,CACH,MAAMuB,EAAQ1B,EAGR6B,EAAc9C,GAClB,0CACA,mCACA,oBACAG,GAAWK,CAAI,EACfyF,GAAcvD,CAAK,EAAE4D,CAAK,EAC1B3D,GAAS,iCACT/P,CAAA,EAIIqQ,EAAa,CAACjC,EAAiB4F,IACnClF,EAAAA,IAAC,OAAA,CAAK,UAAW1B,GAAG,iDAAkD4G,CAAQ,EAC3E,SAAA5F,CAAA,CACH,EAII6F,EAAY,IAEdnF,EAAAA,IAAC,OAAA,CACC,UAAW1B,GACT,6BACAoG,GAAS5F,CAAI,EACb0F,GAAgBxD,CAAK,EAAE4D,CAAK,CAAA,CAC9B,CAAA,EAMAQ,EAAa,IACbH,EACK1D,EAAW0D,EAAUR,GAAU3F,CAAI,CAAC,EAI3CkB,EAAAA,IAAC,OAAA,CACC,UAAW1B,GACT,0CACAmG,GAAU3F,CAAI,CAAA,CAChB,CAAA,EAYAuG,EAAiBR,GAAcC,IAAW,QAN1BQ,GAChBA,EAAM,GAAW,MACdA,EAAI,SAAA,GAKIR,CAAM,EACnBtF,EAGEwE,EAAgB,IAAM,CAC1B,OAAQjD,EAAA,CACN,IAAK,cACH,OACEhB,EAAAA,KAAAG,WAAA,CACG,SAAA,CAAA6E,GAAexD,EAAWwD,EAAaN,GAAU3F,CAAI,CAAC,EACtDuG,GACCrF,EAAAA,IAAC,OAAA,CAAK,UAAU,WAAY,SAAAqF,CAAA,CAAe,CAAA,EAE/C,EAEJ,IAAK,eACH,OACEtF,EAAAA,KAAAG,WAAA,CACG,SAAA,CAAAmF,GACCrF,EAAAA,IAAC,OAAA,CAAK,UAAU,WAAY,SAAAqF,EAAe,EAE5CL,GAAgBzD,EAAWyD,EAAcP,GAAU3F,CAAI,CAAC,CAAA,EAC3D,EAEJ,IAAK,MACH,OACEiB,EAAAA,KAAAG,WAAA,CACG,SAAA,CAAAiF,EAAA,EACAE,GACCrF,EAAAA,IAAC,OAAA,CAAK,UAAU,WAAY,SAAAqF,CAAA,CAAe,CAAA,EAE/C,EAEJ,IAAK,OACH,OACEtF,EAAAA,KAAAG,WAAA,CACG,SAAA,CAAAkF,EAAA,EACAC,GACCrF,EAAAA,IAAC,OAAA,CAAK,UAAU,WAAY,SAAAqF,CAAA,CAAe,CAAA,EAE/C,EAEJ,IAAK,UACL,QACE,OAAOA,GAAkBrF,EAAAA,IAAC,OAAA,CAAK,UAAU,WAAY,SAAAqF,EAAe,CAAA,CAE1E,EAEA,OACErF,EAAAA,IAAC,MAAA,CACC,IAAAN,EACA,IAAKuB,EAAQ,MAAQ,OACrB,UAAWG,EACV,GAAG3B,EAEH,SAAAuE,EAAA,CAAc,CAAA,CAGrB,CACF,EAEAW,GAAM,YAAc,QCjQpB,MAAMY,GAAe,CACnB,OAAQ,CACN,KAAMC,EAAAA,YACN,OAAQ,CACN,QAAS,CACP,GAAI,WACJ,OAAQ,6BACR,UAAW,oBACX,WAAY,mBACZ,aAAc,mBACd,YAAa,oCACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,iBACJ,OAAQ,cACR,UAAW,oBACX,WAAY,oBACZ,aAAc,oBACd,YAAa,0CACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,kBACJ,OAAQ,cACR,UAAW,aACX,WAAY,aACZ,aAAc,wBACd,YAAa,iCACb,WAAY,gCAAA,CACd,CACF,EAEF,QAAS,CACP,KAAMC,EAAAA,YACN,OAAQ,CACN,QAAS,CACP,GAAI,WACJ,OAAQ,0BACR,UAAW,iBACX,WAAY,mBACZ,aAAc,mBACd,YAAa,oCACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,cACJ,OAAQ,cACR,UAAW,iBACX,WAAY,iBACZ,aAAc,iBACd,YAAa,0CACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,eACJ,OAAQ,cACR,UAAW,aACX,WAAY,aACZ,aAAc,wBACd,YAAa,iCACb,WAAY,gCAAA,CACd,CACF,EAEF,QAAS,CACP,KAAMC,EAAAA,cACN,OAAQ,CACN,QAAS,CACP,GAAI,WACJ,OAAQ,0BACR,UAAW,iBACX,WAAY,mBACZ,aAAc,mBACd,YAAa,oCACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,cACJ,OAAQ,cACR,UAAW,iBACX,WAAY,iBACZ,aAAc,iBACd,YAAa,0CACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,eACJ,OAAQ,cACR,UAAW,aACX,WAAY,aACZ,aAAc,wBACd,YAAa,iCACb,WAAY,gCAAA,CACd,CACF,EAEF,KAAM,CACJ,KAAMC,EAAAA,KACN,OAAQ,CACN,QAAS,CACP,GAAI,WACJ,OAAQ,yBACR,UAAW,gBACX,WAAY,mBACZ,aAAc,mBACd,YAAa,oCACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,aACJ,OAAQ,cACR,UAAW,gBACX,WAAY,gBACZ,aAAc,gBACd,YAAa,0CACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,cACJ,OAAQ,cACR,UAAW,aACX,WAAY,aACZ,aAAc,wBACd,YAAa,iCACb,WAAY,gCAAA,CACd,CACF,EAEF,QAAS,CACP,KAAMC,EAAAA,OACN,OAAQ,CACN,QAAS,CACP,GAAI,WACJ,OAAQ,4BACR,UAAW,mBACX,WAAY,mBACZ,aAAc,mBACd,YAAa,oCACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,iBACJ,OAAQ,cACR,UAAW,mBACX,WAAY,mBACZ,aAAc,mBACd,YAAa,0CACb,WAAY,yCAAA,EAEd,MAAO,CACL,GAAI,iBACJ,OAAQ,cACR,UAAW,aACX,WAAY,aACZ,aAAc,wBACd,YAAa,iCACb,WAAY,gCAAA,CACd,CACF,CAEJ,EAEaC,GAAQjH,EAAAA,WACnB,CACE,CACE,MAAAoC,EAAQ,UACR,OAAA8E,EAAS,OACT,MAAAC,EAAQ,cACR,QAAAC,EACA,YAAAC,EAAc,GACd,cAAAC,EAAgB,SAChB,gBAAAC,EAAkB,SAClB,gBAAAC,EACA,kBAAAC,EACA,SAAAC,EAAW,GACX,QAAAC,EACA,IAAAhH,EAAM,GACN,SAAAiH,EACA,WAAAC,EACA,iBAAAC,EAAmB,YACnB,mBAAAC,EAAqB,YACrB,UAAAzV,EACA,GAAGuO,CAAA,EAELC,IACG,CACH,MAAM7O,EAAS0U,GAAaO,CAAM,EAC5B3E,EAAStQ,EAAO,OAAOmQ,CAAK,EAC5BgB,EAAOnR,EAAO,KACdoQ,EAAQ1B,EACRqH,EAAe,CAAC,CAACZ,EAEjBa,EAAe5F,GAASuF,EAAWA,EAAWT,EAC9Ce,EAAiB7F,GAASwF,EAAaA,EAAaT,EACpDe,EAAuB9F,EAAQyF,EAAmBR,EAClDc,EAAyB/F,EAAQ0F,EAAqBR,EAGtD/E,EAAc9C,EAClB,kEACA6C,EAAO,GACPA,EAAO,OACPF,GAAS,eAAA,EAILK,EAAchD,EAAG,mBAAoB6C,EAAO,SAAS,EAGrD8F,EAAe3I,EACnB,yCACA6C,EAAO,WACPF,EAAQ,aAAe,WAAA,EAInBiG,EAAiB5I,EACrB,yCACA6C,EAAO,aACPF,EAAQ,aAAe,WAAA,EAInBkG,EAAgB7I,EACpB,oFACA6C,EAAO,WAAA,EAIHiG,EAAe9I,EACnB,oDACA6C,EAAO,UAAA,EAGT,OACEpB,EAAAA,KAAC,MAAA,CACC,IAAAL,EACA,UAAWpB,EAAG8C,EAAalQ,CAAS,EACpC,IAAK+P,EAAQ,MAAQ,OACpB,GAAGxB,EAGJ,SAAA,CAAAM,EAAAA,KAAC,MAAA,CAAI,UAAU,gCAEZ,SAAA,CAAA,CAACkB,GAASjB,EAAAA,IAACgC,EAAA,CAAK,UAAWV,CAAA,CAAa,EAGzCvB,EAAAA,KAAC,MAAA,CAAI,UAAU,6BAEb,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAWiH,EAAc,IAAKhG,EAAQ,MAAQ,OAChD,SAAA4F,CAAA,CACH,EAGCD,GAAgBE,GACf9G,EAAAA,IAAC,MAAA,CAAI,UAAWkH,EAAgB,IAAKjG,EAAQ,MAAQ,OAClD,SAAA6F,CAAA,CACH,EAIDb,GAAeW,GACd7G,OAAC,MAAA,CAAI,UAAWzB,EAAG,kBAAmB2C,GAAS,kBAAkB,EAC9D,SAAA,CAAAmF,GACCpG,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAASoG,EACT,UAAWe,EAEV,SAAAJ,CAAA,CAAA,EAGJV,GACCrG,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAASqG,EACT,UAAWc,EAEV,SAAAH,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,EAEJ,EAEC/F,GAASjB,EAAAA,IAACgC,EAAA,CAAK,UAAWV,CAAA,CAAa,CAAA,EAC1C,EAGC2E,GAAe,CAACW,GAAgBR,GAC/BpG,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAASoG,EACT,UAAW9H,EAAG6I,EAAe,4BAA4B,EAExD,SAAAJ,CAAA,CAAA,EAKJT,GAAYC,GACXvG,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAASuG,EACT,UAAWa,EACX,aAAW,QAEX,SAAApH,EAAAA,IAACqH,EAAAA,EAAA,CAAE,UAAU,SAAA,CAAU,CAAA,CAAA,CACzB,CAAA,CAAA,CAIR,CACF,EAEAxB,GAAM,YAAc,QCrVb,MAAMyB,GAAU1I,EAAAA,WACrB,CACE,CACE,UAAA2I,EAAY,aACZ,KAAAxG,EAAO,QACP,MAAA6D,EACA,QAAA4C,EAAU,OACV,UAAAtW,EACA,GAAGuO,CAAA,EAELC,IACG,CAEH,MAAM+H,EAAiB,CACrB,KAAM,GACN,GAAIF,IAAc,aAAe,OAAS,OAC1C,GAAIA,IAAc,aAAe,OAAS,OAC1C,GAAIA,IAAc,aAAe,OAAS,OAC1C,GAAIA,IAAc,aAAe,OAAS,OAC1C,GAAIA,IAAc,aAAe,OAAS,MAAA,EAI5C,OAAIA,IAAc,aAEdvH,EAAAA,IAAC,KAAA,CACC,IAAAN,EACA,UAAWpB,EACT,kBACAyC,IAAS,QAAU,wBAA0B,yBAC7C6D,EAAQ,WAAWA,CAAK,IAAM,qBAC9B6C,EAAeD,CAAO,EACtBtW,CAAA,EAED,GAAGuO,CAAA,CAAA,EAORO,EAAAA,IAAC,MAAA,CACC,IAAAN,EACA,UAAWpB,EACT,SACAyC,IAAS,QAAU,wBAA0B,yBAC7C6D,EAAQ,WAAWA,CAAK,IAAM,qBAC9B6C,EAAeD,CAAO,EACtBtW,CAAA,EAED,GAAGuO,CAAA,CAAA,CAGV,CACF,EAEA6H,GAAQ,YAAc,UChBf,MAAMI,GAAW9I,EAAAA,WACtB,CACE,CACE,KAAAmC,EAAO,UACP,MAAA4G,EAAQ,UACR,MAAAzM,EAAQ,YACR,YAAAkH,EACA,YAAawF,EACb,aAAcC,EACd,UAAAC,EACA,eAAAC,EACA,UAAAC,EACA,aAAAC,EAAe,UACf,UAAAC,EACA,UAAAC,EAAY,GACZ,aAAAC,EAAe,GACf,eAAAC,EACA,WAAAC,EAAa,SACb,cAAAC,EACA,SAAAC,EAAW,GACX,cAAAC,EAAgB,QAChB,iBAAAC,EAAmB,aACnB,QAAAC,EACA,IAAApJ,EAAM,GACN,QAAAqJ,EACA,UAAA1X,EACA,GAAGuO,CAAA,EAELC,IACG,CAEH,GAAIqB,IAAS,UACX,OACEf,EAAAA,IAAC,MAAA,CACC,IAAAN,EACA,UAAWpB,EAAG,gCAAiCpN,CAAS,EACvD,GAAGuO,EAEJ,SAAAO,EAAAA,IAAC,MAAA,CAAI,UAAU,oCAAA,CAAqC,CAAA,CAAA,EAM1D,GAAIe,IAAS,SACX,OACEf,EAAAA,IAAC,MAAA,CACC,IAAAN,EACA,UAAWpB,EAAG,gCAAiCpN,CAAS,EACvD,GAAGuO,EAEJ,SAAAO,EAAAA,IAAC,SAAA,CACC,QAASuI,EACT,UAAWjK,EACT,0DACA,uCACA,qDACA,wCACAqJ,IAAU,YAAc,+BAAA,EAE1B,SAAUA,IAAU,WAEnB,SAAAW,CAAA,CAAA,CACH,CAAA,EAMN,GAAIvH,IAAS,QACX,OACEhB,EAAAA,KAAC,MAAA,CACC,IAAAL,EACA,UAAWpB,EACT,oCACA,wBACAiB,GAAO,mBACPrO,CAAA,EAED,GAAGuO,EAEJ,SAAA,CAAAO,EAAAA,IAAC,MAAA,CAAI,UAAW1B,EAAG,SAAUiB,GAAO,YAAY,EAC9C,SAAAS,EAAAA,IAAC,IAAA,CAAE,UAAU,+BAAgC,SAAA9E,CAAA,CAAM,EACrD,EACCyN,GACC3I,EAAAA,IAAC,IAAA,CAAE,UAAU,mBAAoB,SAAA2I,CAAA,CAAQ,CAAA,CAAA,CAAA,EAOjD,GAAI5H,IAAS,UACX,OACEf,EAAAA,IAAC,MAAA,CACC,IAAAN,EACA,UAAWpB,EAAG,gCAAiCpN,CAAS,EACvD,GAAGuO,EAEJ,eAAC,MAAA,CAAI,UAAU,+CACb,SAAAO,MAAC,KAAE,UAAW1B,EACZ,gDACAiB,GAAO,YAAA,EACN,sCAEH,CAAA,CACF,CAAA,CAAA,EAMN,GAAIwB,IAAS,WACX,OACEf,EAAAA,IAAC,MAAA,CACC,IAAAN,EACA,UAAWpB,EAAG,gCAAiCiB,GAAO,cAAerO,CAAS,EAC7E,GAAGuO,EAEJ,eAAC,MAAA,CAAI,UAAU,+CACb,SAAAM,EAAAA,KAAC,MAAA,CAAI,UAAU,yCAEb,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAU,mDACb,SAAAA,MAAC,MAAA,CAAI,UAAU,kDACb,SAAAA,EAAAA,IAAC,MAAA,CACC,UAAU,uEACV,MAAO,CAAE,MAAO,GAAGwI,CAAQ,GAAA,CAAI,CAAA,EAEnC,CAAA,CACF,EAGAzI,OAAC,OAAI,UAAWzB,EACd,iCACAiB,GAAO,kBAAA,EAEP,SAAA,CAAAQ,OAAC,OAAI,UAAWzB,EAAG,iCAAkCiB,GAAO,8BAA8B,EACxF,SAAA,CAAAS,MAAC,KAAE,UAAW1B,EACZ,qDACAiB,GAAO,YAAA,EAEN,SAAAkJ,EACH,EACAzI,EAAAA,IAAC,IAAA,CAAE,UAAU,yCACV,SAAA0I,CAAA,CACH,CAAA,EACF,QACC,MAAA,CAAI,UAAU,4BACb,SAAA3I,EAAAA,KAAC,IAAA,CAAE,UAAU,yCAA0C,SAAA,CAAAyI,EAAS,GAAA,CAAA,CAAC,CAAA,CACnE,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAAA,EAMN,MAAMK,EAAalB,IAAU,WAGvB/D,EAAiBtF,EACrB,yFACAyC,IAAS,aAAe,oBAJR4G,IAAU,SAKb,CAACkB,GAAc,iBAC5BA,GAAc,gCACdtJ,GAAO,kBAAA,EAGHyE,EAAgB,IAAM,CAC1B,MAAM8E,EAAW,CAAA,EAiBjB,GAdIlB,GACFkB,EAAS,WACN,MAAA,CAAuB,UAAWxK,EAAG,gCAAiCiB,GAAO,aAAa,EACzF,SAAAS,EAAAA,IAAC4H,EAAA,CACC,UAAWtJ,EACT,UACAuK,EAAa,mBAAqB,kBAAA,CACpC,CAAA,GALK,cAOT,CAAA,EAKAf,GAAaC,EAAgB,CAC/B,MAAMgB,EAAahI,IAAS,YAAc,YAAc,UAClDiI,EAAWjI,IAAS,YAAc,UAAY,UAEpD+H,EAAS,KACP9I,EAAAA,IAAC,OAAiB,UAAW1B,EAAG,gCAAiCiB,GAAO,aAAa,EAClF,SAAAuI,EACC9H,EAAAA,IAAC,MAAA,CACC,IAAK8H,EACL,IAAKC,GAAkB,SACvB,UAAWzJ,EACTyK,EACA,sDACAF,GAAc,YAAA,CAChB,CAAA,EAGF7I,EAAAA,IAAC,MAAA,CACC,UAAW1B,EACTyK,EACA,qDACA,mCACAC,EACA,4BACAH,GAAc,YAAA,EAGf,SAAAd,GAAkB,IAAA,CAAA,GAtBhB,QAyBT,CAAA,CAEJ,CAGA,OAAIhH,IAAS,aAAeA,IAAS,MACnC+H,EAAS,KACP/I,EAAAA,KAAC,MAAA,CAEC,UAAWzB,EACT,6CACAiB,GAAO,gCAAA,EAGT,SAAA,CAAAS,MAAC,KAAE,UAAW1B,EACZ,wBACAuK,EAAa,mBAAqB,kBAAA,EAEjC,SAAA3N,EACH,EACCkH,GACCpC,EAAAA,IAAC,IAAA,CAAE,UAAW1B,EACZ,wBACAuK,EAAa,mBAAqB,kBAAA,EAEjC,SAAAzG,CAAA,CACH,CAAA,CAAA,EAlBE,MAAA,CAoBN,EAGF0G,EAAS,KACP9I,EAAAA,IAAC,MAAA,CAEC,UAAW1B,EACT,qCACAiB,GAAO,uBAAA,EAGT,SAAAS,EAAAA,IAAC,KAAE,UAAW1B,EACZ,wBACAuK,EAAa,mBAAqB,mBAClCtJ,GAAO,YAAA,EAEN,SAAArE,CAAA,CACH,CAAA,EAZI,MAAA,CAaN,EAKAiN,GACFW,EAAS,KACP9I,EAAAA,IAAC,MAAA,CAAiB,UAAU,6BAC1B,SAAAA,EAAAA,IAAC,SAAA,CACC,QAAU0D,GAAM,CACdA,EAAE,gBAAA,EACE,CAACmF,GAAcR,GACjBA,EAAe,CAACD,CAAY,CAEhC,EACA,SAAUS,EACV,UAAWvK,EACT,wEACA8J,EAAe,2BAA6B,+BAC5CS,GAAc,+BAAA,EAGhB,SAAA7I,EAAAA,IAAC,MAAA,CAAI,UAAU,6CAAA,CAA8C,CAAA,CAAA,GAfxD,QAiBT,CAAA,EAKAgI,GACFc,EAAS,KACP9I,EAAAA,IAAC,MAAA,CAAgB,UAAU,6BACzB,SAAAA,EAAAA,IAAC2E,GAAA,CAAM,MAAOsD,EAAqB,KAAK,KACrC,SAAAD,CAAA,CACH,CAAA,EAHO,OAIT,CAAA,EAKAE,GACFY,EAAS,WACN,MAAA,CAAqB,UAAU,oBAC9B,SAAA9I,MAAC,KAAE,UAAW1B,EACZ,wBACAuK,EAAa,mBAAqB,mBAClCtJ,GAAO,WAAA,EAEN,SAAA2I,EACH,CAAA,EAPO,YAQT,CAAA,EAKAnH,IAAS,OACX+H,EAAS,KACP9I,EAAAA,IAAC,SAAA,CAEC,QAAU0D,GAAM,CACdA,EAAE,gBAAA,EACE,CAACmF,GAAcN,GACjBA,EAAA,CAEJ,EACA,SAAUM,EACV,UAAWvK,EACT,mDACA,uCACA,qDACA,wCACAuK,GAAc,+BAAA,EAGf,SAAAP,CAAA,EAhBG,YAAA,CAiBN,EAKAT,GACFiB,EAAS,KACP9I,EAAAA,IAAC,MAAA,CAAwB,UAAU,oBACjC,SAAAA,EAAAA,IAAC6H,EAAA,CACC,UAAWvJ,EACT,UACAuK,EAAa,mBAAqB,kBAAA,CACpC,CAAA,GALK,eAOT,CAAA,EAIGtJ,EAAMuJ,EAAS,QAAA,EAAYA,CACpC,EAEA,OACE9I,EAAAA,IAAC,MAAA,CACC,IAAAN,EACA,UAAWpB,EACT,sCACAiB,GAAO,cACPrO,CAAA,EAEF,QAAU2X,EAAuB,OAAVD,EACtB,GAAGnJ,EAEJ,SAAAO,EAAAA,IAAC,MAAA,CAAI,UAAW4D,EACb,YAAc,CACjB,CAAA,CAAA,CAGN,CACF,EAEA8D,GAAS,YAAc,WAahB,MAAMuB,GAAOrK,EAAAA,WAClB,CACE,CACE,SAAAY,EACA,MAAA0J,EAAQ,IACR,IAAA3J,EAAM,GACN,UAAArO,EACA,GAAGuO,CAAA,EAELC,IAGEM,EAAAA,IAAC,MAAA,CACC,IAAAN,EACA,UAAWpB,EACT,0DACA,yCACA,kBACApN,CAAA,EAEF,MAAO,CAAE,MAAO,OAAOgY,GAAU,SAAW,GAAGA,CAAK,KAAOA,CAAA,EAC1D,GAAGzJ,EAEH,SAAAD,CAAA,CAAA,CAIT,EAEAyJ,GAAK,YAAc,OC5anB,SAAS3K,KAAMC,EAA+C,CAC5D,OAAOF,GAAQxO,GAAK0O,CAAM,CAAC,CAC7B,CAcO,MAAM4K,GAAYvK,EAAAA,WACvB,CACE,CACE,MAAA1D,EAAQ,uBACR,YAAAkO,EAAc,oPACd,KAAA9J,EAAO,GACP,SAAAJ,EACA,MAAAmK,EAAQ,GACR,UAAArB,EAAY,QACZ,OAAAsB,EAAS,GACT,WAAAC,EAAa,SACb,cAAAC,EACA,MAAAxI,EAAQ,UACR,MAAA2G,EAAQ,UACR,IAAApI,EAAM,GACN,WAAAkK,EAAa,GACb,SAAUC,EACV,SAAAC,EACA,SAAAtH,EACA,eAAAuH,EACA,UAAA1Y,EACA,GAAGuO,CAAA,EAELC,IACG,CACH,KAAM,CAACmK,EAAkBC,CAAmB,EAAIC,EAAAA,SAAS,EAAK,EACxDC,EAAaN,IAAuB,OAAYA,EAAqBG,EACrE5I,EAAQ1B,EAER0K,EAAe,IAAM,CACzB,GAAIR,EAAY,CACd,MAAMS,EAAc,CAACF,EACjBN,IAAuB,QACzBI,EAAoBI,CAAW,EAEjCP,GAAA,MAAAA,EAAWO,EACb,CACF,EAEMhI,EAAejB,GAASoB,EAAWA,EAAWnH,EAC9CiP,EAAqBlJ,GAAS2I,EAAiBA,EAAiBR,EAGhEhI,EAAc9C,EAClB,6BACA,0CACAmL,GAAc,iBACd,SAEAxI,GAAS,gBAETD,IAAU,UACN1C,EACE,8BACAqJ,IAAU,SAAW8B,GAAc,eAAA,EAErCnL,EACE,uCACA,2BACAqJ,IAAU,SAAW8B,GAAc,gBAEnC,UAAA,EAENvY,CAAA,EAII+V,EAAe3I,EACnB,+BACA,2CACA,mBACA2C,EAAQ,aAAe,WAAA,EAInBmJ,EAAqB9L,EACzB,6BACA,mBACA2C,EAAQ,aAAe,WAAA,EAInBoJ,EAAe/L,EACnB,mCACA,gBACA,6BACA,yCACA,oCAAA,EAIIgM,EAAcpL,IAAaI,QAAQqG,OAAA,CAAK,UAAU,yCAAyC,EAAK,MAGhG4E,EAAeP,EAAaQ,EAAAA,UAAYC,EAAAA,YACxCC,EAAsBpM,EAC1B,wCAAA,EAGIqM,EAAYlB,EAAa,SAAW,MACpCmB,GAAiBnB,EACnB,CACE,IAAA/J,EACA,KAAM,SACN,QAASuK,EACT,GAAGxK,CAAA,EAEL,CACE,GAAGA,CAAA,EAGT,OACEM,EAAAA,KAAC4K,EAAA,CACE,GAAIC,GACL,IAAK3J,EAAQ,MAAQ,OACrB,UAAWG,EAGV,SAAA,CAAAkJ,GAAe,CAACrJ,GACfjB,EAAAA,IAAC,MAAA,CAAI,UAAU,gBAAiB,SAAAsK,EAAY,EAI7Cb,GAAcxI,GACbjB,EAAAA,IAAC,MAAA,CAAI,UAAU,gBACb,SAAAA,EAAAA,IAACuK,EAAA,CAAa,UAAWG,CAAA,CAAqB,CAAA,CAChD,EAIF3K,OAAC,OAAI,UAAWzB,EACd,uCACA2C,EAAQ,YAAc,aAAA,EAGtB,SAAA,CAAAjB,MAAC,OAAI,UAAW1B,EACd,kCACA2C,EAAQ,mBAAqB,UAAA,EAI5B,WACClB,EAAAA,KAAAG,EAAAA,SAAA,CACG,SAAA,CAAAmJ,GACCrJ,EAAAA,IAAC,OAAI,UAAW1B,EAAG+L,EAAc,eAAe,EAAG,IAAI,MACpD,SAAArC,CAAA,CACH,EAEFhI,EAAAA,IAAC,MAAA,CAAI,UAAW1B,EAAG2I,EAAc,QAAQ,EAAG,IAAI,MAC9C,SAAAjH,EAAAA,IAAC,IAAA,CAAG,SAAAkC,CAAA,CAAa,CAAA,CACnB,CAAA,CAAA,CACF,EAEAnC,EAAAA,KAAAG,EAAAA,SAAA,CACE,SAAA,CAAAF,EAAAA,IAAC,MAAA,CAAI,UAAW1B,EAAG2I,EAAc,QAAQ,EACvC,SAAAjH,EAAAA,IAAC,IAAA,CAAG,SAAAkC,CAAA,CAAa,CAAA,CACnB,EACCmH,GACCrJ,EAAAA,IAAC,MAAA,CAAI,UAAWqK,EACb,SAAArC,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CAEJ,EAGCgC,GAAcG,GACbnK,EAAAA,IAAC,MAAA,CAAI,UAAU,SAAS,IAAKiB,EAAQ,MAAQ,OAC3C,SAAAjB,EAAAA,IAAC,IAAA,CAAE,UAAWoK,EAAqB,WAAmB,EACxD,EAIDJ,GAAcV,GACbtJ,EAAAA,IAAC,MAAA,CAAI,UAAU,mBAAmB,MAAO,CAAE,eAAgBiB,EAAQ,WAAa,YAAA,EAC9E,SAAAlB,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,QAAU2D,GAAM,CACdA,EAAE,gBAAA,EACF8F,GAAA,MAAAA,GACF,EACA,UAAWlL,EACT,kDACA,mBACA,0DACA,2BACA,0DACA,yCACA,gBAAA,EAEF,IAAK2C,EAAQ,MAAQ,OAErB,SAAA,CAAAjB,EAAAA,IAACiC,EAAAA,KAAA,CAAK,UAAU,uBAAA,CAAwB,QACvC,OAAA,CAAK,UAAU,yBACb,SAAAhB,EAAQ,WAAasI,EACxB,EACAvJ,EAAAA,IAACiC,EAAAA,KAAA,CAAK,UAAU,uBAAA,CAAwB,EAExCjC,EAAAA,IAAC,MAAA,CAAI,UAAU,uGAAA,CAAwG,CAAA,CAAA,CAAA,CACzH,CACF,CAAA,EAEJ,EAGCyJ,GAAc,CAACxI,GACdjB,EAAAA,IAAC,MAAA,CAAI,UAAU,gBACb,SAAAA,EAAAA,IAACuK,EAAA,CAAa,UAAWG,CAAA,CAAqB,CAAA,CAChD,EAIDJ,GAAerJ,GACdjB,EAAAA,IAAC,MAAA,CAAI,UAAU,gBAAiB,SAAAsK,EAAY,EAI7CtJ,IAAU,SACThB,EAAAA,IAAC,MAAA,CAAI,UAAU,kGAAA,CAAmG,CAAA,CAAA,CAAA,CAI1H,CACF,EAEAmJ,GAAU,YAAc,YCrRxB,SAAS7K,MAAMC,EAA+C,CAC5D,OAAOF,GAAQxO,GAAK0O,CAAM,CAAC,CAC7B,CAEO,MAAMsM,GAAY,CAAC,CAAE,KAAAC,EAAM,SAAAC,EAAW,MAAO,UAAA7Z,KAAgC,CAClF,KAAM,CAAC8Z,EAAQC,CAAS,EAAIlB,EAAAA,SAAS,EAAK,EAEpCmB,EAAa,SAAY,CAC7B,GAAI,CACF,MAAM,UAAU,UAAU,UAAUJ,CAAI,EACxCG,EAAU,EAAI,EACd,WAAW,IAAMA,EAAU,EAAK,EAAG,GAAI,CACzC,OAASE,EAAK,CACZ,QAAQ,MAAM,kBAAmBA,CAAG,CACtC,CACF,EAGMC,EAAiBN,GAAiB,CACtC,IAAIO,EAAcP,EAGlB,OAAAO,EAAcA,EACX,QAAQ,KAAM,OAAO,EACrB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,MAAM,EAGvBA,EAAcA,EAAY,QACxB,uCACA,sCAAA,EAIFA,EAAcA,EAAY,QACxB,aACA,wCAAA,EAIFA,EAAcA,EAAY,QACxB,cACA,uCAAA,EAEFA,EAAcA,EAAY,QACxB,sBACA,uCAAA,EAIe,CACf,SACA,SACA,OACA,QACA,MACA,MACA,WACA,SACA,KACA,OACA,MACA,QACA,QACA,UACA,MACA,OACA,OACA,QACA,OACA,YACA,SACA,aACA,QACA,OAAA,EAEO,QAASC,GAAY,CAC5B,MAAMC,EAAQ,IAAI,OAAO,OAAOD,CAAO,OAAQ,GAAG,EAClDD,EAAcA,EAAY,QACxBE,EACA,uCAAA,CAEJ,CAAC,EAGDF,EAAcA,EAAY,QACxB,oBACA,qCAAA,EAIFA,EAAcA,EAAY,QACxB,eACA,sCAAA,EAIFA,EAAcA,EAAY,QACxB,aACA,sCAAA,EAIFA,EAAcA,EAAY,QACxB,WACA,2CAAA,EAGKA,CACT,EAEA,cACG,MAAA,CAAI,UAAW/M,GAAG,uDAAwDpN,CAAS,EAElF,SAAA,CAAA6O,EAAAA,KAAC,MAAA,CAAI,UAAU,0FACb,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,gEACb,SAAA+K,EACH,EACA/K,EAAAA,IAAC,SAAA,CACC,UAAW1B,GACT,+CACA,8BACA,2CACA,oCACA,gDACA,iCACA,wEAAA,EAEF,QAAS4M,EACT,aAAW,YAEV,WACCnL,EAAAA,KAAAG,EAAAA,SAAA,CACE,SAAA,CAAAF,EAAAA,IAACiD,EAAAA,MAAA,CAAM,UAAU,aAAA,CAAc,EAC/BjD,EAAAA,IAAC,QAAK,SAAA,SAAA,CAAO,CAAA,CAAA,CACf,EAEAD,EAAAA,KAAAG,EAAAA,SAAA,CACE,SAAA,CAAAF,EAAAA,IAACwL,EAAAA,KAAA,CAAK,UAAU,aAAA,CAAc,EAC9BxL,EAAAA,IAAC,QAAK,SAAA,MAAA,CAAI,CAAA,CAAA,CACZ,CAAA,CAAA,CAEJ,EACF,EAGAA,EAAAA,IAAC,MAAA,CAAI,UAAU,0CACb,SAAAA,EAAAA,IAAC,OAAA,CACC,UAAU,4DACV,wBAAyB,CAAE,OAAQoL,EAAcN,CAAI,CAAA,CAAE,CAAA,CACzD,CACF,CAAA,EACF,CAEJ","x_google_ignoreList":[0,1]}
|