@yoopta/themes-shadcn 6.0.0-beta.14 → 6.0.0-beta.16
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/table/components/row-controls.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/accordion.js.map +0 -1
- package/dist/blockquote.js.map +0 -1
- package/dist/callout.js.map +0 -1
- package/dist/carousel.js.map +0 -1
- package/dist/chunks/Combination-2202c874.js +0 -1080
- package/dist/chunks/Combination-2202c874.js.map +0 -1
- package/dist/chunks/_tslib-514d60fe.js +0 -67
- package/dist/chunks/_tslib-514d60fe.js.map +0 -1
- package/dist/chunks/arrow-right-cc37c75c.js +0 -30
- package/dist/chunks/arrow-right-cc37c75c.js.map +0 -1
- package/dist/chunks/button-f9af7cb3.js +0 -76
- package/dist/chunks/button-f9af7cb3.js.map +0 -1
- package/dist/chunks/card-29720641.js +0 -38
- package/dist/chunks/card-29720641.js.map +0 -1
- package/dist/chunks/check-530fff0e.js +0 -14
- package/dist/chunks/check-530fff0e.js.map +0 -1
- package/dist/chunks/chevron-down-544d1acd.js +0 -16
- package/dist/chunks/chevron-down-544d1acd.js.map +0 -1
- package/dist/chunks/chevron-up-053cba03.js +0 -14
- package/dist/chunks/chevron-up-053cba03.js.map +0 -1
- package/dist/chunks/code-2ff9cc0c.js +0 -17
- package/dist/chunks/code-2ff9cc0c.js.map +0 -1
- package/dist/chunks/createLucideIcon-02eb7854.js +0 -95
- package/dist/chunks/createLucideIcon-02eb7854.js.map +0 -1
- package/dist/chunks/dropdown-menu-ac777fdc.js +0 -1165
- package/dist/chunks/dropdown-menu-ac777fdc.js.map +0 -1
- package/dist/chunks/external-link-43895ded.js +0 -18
- package/dist/chunks/external-link-43895ded.js.map +0 -1
- package/dist/chunks/file-text-99674d8d.js +0 -20
- package/dist/chunks/file-text-99674d8d.js.map +0 -1
- package/dist/chunks/hover-card-134f053d.js +0 -257
- package/dist/chunks/hover-card-134f053d.js.map +0 -1
- package/dist/chunks/index-056b596e.js +0 -16
- package/dist/chunks/index-056b596e.js.map +0 -1
- package/dist/chunks/index-35823769.js +0 -222
- package/dist/chunks/index-35823769.js.map +0 -1
- package/dist/chunks/index-41c4abc4.js +0 -3805
- package/dist/chunks/index-41c4abc4.js.map +0 -1
- package/dist/chunks/index-454935af.js +0 -71
- package/dist/chunks/index-454935af.js.map +0 -1
- package/dist/chunks/index-ae9b48d5.js +0 -12
- package/dist/chunks/index-ae9b48d5.js.map +0 -1
- package/dist/chunks/index-b8a83ba5.js +0 -335
- package/dist/chunks/index-b8a83ba5.js.map +0 -1
- package/dist/chunks/index-b8f2908d.js +0 -40
- package/dist/chunks/index-b8f2908d.js.map +0 -1
- package/dist/chunks/index-c655a86f.js +0 -7
- package/dist/chunks/index-c655a86f.js.map +0 -1
- package/dist/chunks/index-c90e54a4.js +0 -190
- package/dist/chunks/index-c90e54a4.js.map +0 -1
- package/dist/chunks/index-cf5f0d71.js +0 -2907
- package/dist/chunks/index-cf5f0d71.js.map +0 -1
- package/dist/chunks/index-d9171717.js +0 -13
- package/dist/chunks/index-d9171717.js.map +0 -1
- package/dist/chunks/index-dd0fd848.js +0 -70
- package/dist/chunks/index-dd0fd848.js.map +0 -1
- package/dist/chunks/input-5608c2c9.js +0 -13
- package/dist/chunks/input-5608c2c9.js.map +0 -1
- package/dist/chunks/label-c9152e49.js +0 -168
- package/dist/chunks/label-c9152e49.js.map +0 -1
- package/dist/chunks/language-select-bdc50f20.js +0 -44
- package/dist/chunks/language-select-bdc50f20.js.map +0 -1
- package/dist/chunks/play-1a34ad05.js +0 -16
- package/dist/chunks/play-1a34ad05.js.map +0 -1
- package/dist/chunks/plus-fcea2532.js +0 -17
- package/dist/chunks/plus-fcea2532.js.map +0 -1
- package/dist/chunks/popover-ef29b0ac.js +0 -300
- package/dist/chunks/popover-ef29b0ac.js.map +0 -1
- package/dist/chunks/scroll-area-17d8c584.js +0 -726
- package/dist/chunks/scroll-area-17d8c584.js.map +0 -1
- package/dist/chunks/select-98610101.js +0 -1213
- package/dist/chunks/select-98610101.js.map +0 -1
- package/dist/chunks/separator-9e6aa45b.js +0 -172
- package/dist/chunks/separator-9e6aa45b.js.map +0 -1
- package/dist/chunks/sparkles-8922a4af.js +0 -26
- package/dist/chunks/sparkles-8922a4af.js.map +0 -1
- package/dist/chunks/style-inject.es-746bb8ed.js +0 -29
- package/dist/chunks/style-inject.es-746bb8ed.js.map +0 -1
- package/dist/chunks/tabs-9cfbd3cc.js +0 -204
- package/dist/chunks/tabs-9cfbd3cc.js.map +0 -1
- package/dist/chunks/tooltip-f1e02ae0.js +0 -800
- package/dist/chunks/tooltip-f1e02ae0.js.map +0 -1
- package/dist/chunks/trash-2-be728dd2.js +0 -20
- package/dist/chunks/trash-2-be728dd2.js.map +0 -1
- package/dist/chunks/upload-0f56ec3e.js +0 -44
- package/dist/chunks/upload-0f56ec3e.js.map +0 -1
- package/dist/chunks/utils-131071a4.js +0 -2500
- package/dist/chunks/utils-131071a4.js.map +0 -1
- package/dist/chunks/x-2f6cf742.js +0 -17
- package/dist/chunks/x-2f6cf742.js.map +0 -1
- package/dist/code-group.js.map +0 -1
- package/dist/code.js.map +0 -1
- package/dist/divider.js.map +0 -1
- package/dist/embed.js.map +0 -1
- package/dist/file.js.map +0 -1
- package/dist/headings.js.map +0 -1
- package/dist/image.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/link.js.map +0 -1
- package/dist/lists.js.map +0 -1
- package/dist/mention.js.map +0 -1
- package/dist/paragraph.js.map +0 -1
- package/dist/steps.js.map +0 -1
- package/dist/table-of-contents.js.map +0 -1
- package/dist/table.js.map +0 -1
- package/dist/tabs.js.map +0 -1
- package/dist/video.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-131071a4.js","sources":["../../../../../node_modules/clsx/dist/clsx.mjs","../../../../../node_modules/tailwind-merge/src/lib/class-group-utils.ts","../../../../../node_modules/tailwind-merge/src/lib/lru-cache.ts","../../../../../node_modules/tailwind-merge/src/lib/parse-class-name.ts","../../../../../node_modules/tailwind-merge/src/lib/config-utils.ts","../../../../../node_modules/tailwind-merge/src/lib/merge-classlist.ts","../../../../../node_modules/tailwind-merge/src/lib/tw-join.ts","../../../../../node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../../../../../node_modules/tailwind-merge/src/lib/from-theme.ts","../../../../../node_modules/tailwind-merge/src/lib/validators.ts","../../../../../node_modules/tailwind-merge/src/lib/default-config.ts","../../../../../node_modules/tailwind-merge/src/lib/tw-merge.ts","../../src/utils.ts"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import {\n AnyClassGroupIds,\n AnyConfig,\n AnyThemeGroupIds,\n ClassGroup,\n ClassValidator,\n Config,\n ThemeGetter,\n ThemeObject,\n} from './types'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[]\n classGroupId?: AnyClassGroupIds\n}\n\ninterface ClassValidatorObject {\n classGroupId: AnyClassGroupIds\n validator: ClassValidator\n}\n\nconst CLASS_PART_SEPARATOR = '-'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n const classMap = createClassMap(config)\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n const getClassGroupId = (className: string) => {\n const classParts = className.split(CLASS_PART_SEPARATOR)\n\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift()\n }\n\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className)\n }\n\n const getConflictingClassGroupIds = (\n classGroupId: AnyClassGroupIds,\n hasPostfixModifier: boolean,\n ) => {\n const conflicts = conflictingClassGroups[classGroupId] || []\n\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]!]\n }\n\n return conflicts\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nconst getGroupRecursive = (\n classParts: string[],\n classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[0]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n const classGroupFromNextClassPart = nextClassPartObject\n ? getGroupRecursive(classParts.slice(1), nextClassPartObject)\n : undefined\n\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart\n }\n\n if (classPartObject.validators.length === 0) {\n return undefined\n }\n\n const classRest = classParts.join(CLASS_PART_SEPARATOR)\n\n return classPartObject.validators.find(({ validator }) => validator(classRest))?.classGroupId\n}\n\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/\n\nconst getGroupIdForArbitraryProperty = (className: string) => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)![1]\n const property = arbitraryPropertyClassName?.substring(\n 0,\n arbitraryPropertyClassName.indexOf(':'),\n )\n\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property\n }\n }\n}\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config<AnyClassGroupIds, AnyThemeGroupIds>) => {\n const { theme, prefix } = config\n const classMap: ClassPartObject = {\n nextPart: new Map<string, ClassPartObject>(),\n validators: [],\n }\n\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(\n Object.entries(config.classGroups),\n prefix,\n )\n\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme)\n })\n\n return classMap\n}\n\nconst processClassesRecursively = (\n classGroup: ClassGroup<AnyThemeGroupIds>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n classGroup.forEach((classDefinition) => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n return\n }\n\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(\n classDefinition(theme),\n classPartObject,\n classGroupId,\n theme,\n )\n return\n }\n\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId,\n })\n\n return\n }\n\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(\n classGroup,\n getPart(classPartObject, key),\n classGroupId,\n theme,\n )\n })\n })\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string) => {\n let currentClassPartObject = classPartObject\n\n path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: [],\n })\n }\n\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart)!\n })\n\n return currentClassPartObject\n}\n\nconst isThemeGetter = (func: ClassValidator | ThemeGetter): func is ThemeGetter =>\n (func as ThemeGetter).isThemeGetter\n\nconst getPrefixedClassGroupEntries = (\n classGroupEntries: Array<[classGroupId: string, classGroup: ClassGroup<AnyThemeGroupIds>]>,\n prefix: string | undefined,\n): Array<[classGroupId: string, classGroup: ClassGroup<AnyThemeGroupIds>]> => {\n if (!prefix) {\n return classGroupEntries\n }\n\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map((classDefinition) => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition\n }\n\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(\n Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]),\n )\n }\n\n return classDefinition\n })\n\n return [classGroupId, prefixedClassGroup]\n })\n}\n","// Export is needed because TypeScript complains about an error otherwise:\n// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module \"…/tailwind-merge/src/lru-cache\" but cannot be named.\nexport interface LruCache<Key, Value> {\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nexport const createLruCache = <Key, Value>(maxCacheSize: number): LruCache<Key, Value> => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {},\n }\n }\n\n let cacheSize = 0\n let cache = new Map<Key, Value>()\n let previousCache = new Map<Key, Value>()\n\n const update = (key: Key, value: Value) => {\n cache.set(key, value)\n cacheSize++\n\n if (cacheSize > maxCacheSize) {\n cacheSize = 0\n previousCache = cache\n cache = new Map()\n }\n }\n\n return {\n get(key) {\n let value = cache.get(key)\n\n if (value !== undefined) {\n return value\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value)\n return value\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value)\n } else {\n update(key, value)\n }\n },\n }\n}\n","import { AnyConfig } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\n\nexport const createParseClassName = (config: AnyConfig) => {\n const { separator, experimentalParseClassName } = config\n const isSeparatorSingleCharacter = separator.length === 1\n const firstSeparatorCharacter = separator[0]\n const separatorLength = separator.length\n\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = (className: string) => {\n const modifiers = []\n\n let bracketDepth = 0\n let modifierStart = 0\n let postfixModifierPosition: number | undefined\n\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index]\n\n if (bracketDepth === 0) {\n if (\n currentCharacter === firstSeparatorCharacter &&\n (isSeparatorSingleCharacter ||\n className.slice(index, index + separatorLength) === separator)\n ) {\n modifiers.push(className.slice(modifierStart, index))\n modifierStart = index + separatorLength\n continue\n }\n\n if (currentCharacter === '/') {\n postfixModifierPosition = index\n continue\n }\n }\n\n if (currentCharacter === '[') {\n bracketDepth++\n } else if (currentCharacter === ']') {\n bracketDepth--\n }\n }\n\n const baseClassNameWithImportantModifier =\n modifiers.length === 0 ? className : className.substring(modifierStart)\n const hasImportantModifier =\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)\n const baseClassName = hasImportantModifier\n ? baseClassNameWithImportantModifier.substring(1)\n : baseClassNameWithImportantModifier\n\n const maybePostfixModifierPosition =\n postfixModifierPosition && postfixModifierPosition > modifierStart\n ? postfixModifierPosition - modifierStart\n : undefined\n\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n }\n }\n\n if (experimentalParseClassName) {\n return (className: string) => experimentalParseClassName({ className, parseClassName })\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 */\nexport const sortModifiers = (modifiers: string[]) => {\n if (modifiers.length <= 1) {\n return modifiers\n }\n\n const sortedModifiers: string[] = []\n let unsortedModifiers: string[] = []\n\n modifiers.forEach((modifier) => {\n const isArbitraryVariant = modifier[0] === '['\n\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier)\n unsortedModifiers = []\n } else {\n unsortedModifiers.push(modifier)\n }\n })\n\n sortedModifiers.push(...unsortedModifiers.sort())\n\n return sortedModifiers\n}\n","import { createClassGroupUtils } from './class-group-utils'\nimport { createLruCache } from './lru-cache'\nimport { createParseClassName } from './parse-class-name'\nimport { AnyConfig } from './types'\n\nexport type ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createConfigUtils = (config: AnyConfig) => ({\n cache: createLruCache<string, string>(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config),\n})\n","import { ConfigUtils } from './config-utils'\nimport { IMPORTANT_MODIFIER, sortModifiers } from './parse-class-name'\n\nconst SPLIT_CLASSES_REGEX = /\\s+/\n\nexport const mergeClassList = (classList: string, configUtils: ConfigUtils) => {\n const { parseClassName, getClassGroupId, getConflictingClassGroupIds } = configUtils\n\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict: string[] = []\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX)\n\n let result = ''\n\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index]!\n\n const { modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition } =\n parseClassName(originalClassName)\n\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition)\n let classGroupId = getClassGroupId(\n hasPostfixModifier\n ? baseClassName.substring(0, maybePostfixModifierPosition)\n : baseClassName,\n )\n\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n classGroupId = getClassGroupId(baseClassName)\n\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n hasPostfixModifier = false\n }\n\n const variantModifier = sortModifiers(modifiers).join(':')\n\n const modifierId = hasImportantModifier\n ? variantModifier + IMPORTANT_MODIFIER\n : variantModifier\n\n const classId = modifierId + classGroupId\n\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue\n }\n\n classGroupsInConflict.push(classId)\n\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier)\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i]!\n classGroupsInConflict.push(modifierId + group)\n }\n\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n }\n\n return result\n}\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\n\nexport type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false\ntype ClassNameArray = ClassNameValue[]\n\nexport function twJoin(...classLists: ClassNameValue[]): string\nexport function twJoin() {\n let index = 0\n let argument: ClassNameValue\n let resolvedValue: string\n let string = ''\n\n while (index < arguments.length) {\n if ((argument = arguments[index++])) {\n if ((resolvedValue = toValue(argument))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n return string\n}\n\nconst toValue = (mix: ClassNameArray | string) => {\n if (typeof mix === 'string') {\n return mix\n }\n\n let resolvedValue: string\n let string = ''\n\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n\n return string\n}\n","import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { AnyConfig } from './types'\n\ntype CreateConfigFirst = () => AnyConfig\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport function createTailwindMerge(\n createConfigFirst: CreateConfigFirst,\n ...createConfigRest: CreateConfigSubsequent[]\n): TailwindMerge {\n let configUtils: ConfigUtils\n let cacheGet: ConfigUtils['cache']['get']\n let cacheSet: ConfigUtils['cache']['set']\n let functionToCall = initTailwindMerge\n\n function initTailwindMerge(classList: string) {\n const config = createConfigRest.reduce(\n (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n createConfigFirst() as AnyConfig,\n )\n\n configUtils = createConfigUtils(config)\n cacheGet = configUtils.cache.get\n cacheSet = configUtils.cache.set\n functionToCall = tailwindMerge\n\n return tailwindMerge(classList)\n }\n\n function tailwindMerge(classList: string) {\n const cachedResult = cacheGet(classList)\n\n if (cachedResult) {\n return cachedResult\n }\n\n const result = mergeClassList(classList, configUtils)\n cacheSet(classList, result)\n\n return result\n }\n\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments as any))\n }\n}\n","import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nexport const fromTheme = <\n AdditionalThemeGroupIds extends string = never,\n DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>): ThemeGetter => {\n const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>\n theme[key] || []\n\n themeGetter.isThemeGetter = true as const\n\n return themeGetter\n}\n","const arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i\nconst fractionRegex = /^\\d+\\/\\d+$/\nconst stringLengths = new Set(['px', 'full', 'screen'])\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/\n\nexport const isLength = (value: string) =>\n isNumber(value) || stringLengths.has(value) || fractionRegex.test(value)\n\nexport const isArbitraryLength = (value: string) =>\n getIsArbitraryValue(value, 'length', isLengthOnly)\n\nexport const isNumber = (value: string) => Boolean(value) && !Number.isNaN(Number(value))\n\nexport const isArbitraryNumber = (value: string) => getIsArbitraryValue(value, 'number', isNumber)\n\nexport const isInteger = (value: string) => Boolean(value) && Number.isInteger(Number(value))\n\nexport const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1))\n\nexport const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value)\n\nexport const isTshirtSize = (value: string) => tshirtUnitRegex.test(value)\n\nconst sizeLabels = new Set(['length', 'size', 'percentage'])\n\nexport const isArbitrarySize = (value: string) => getIsArbitraryValue(value, sizeLabels, isNever)\n\nexport const isArbitraryPosition = (value: string) =>\n getIsArbitraryValue(value, 'position', isNever)\n\nconst imageLabels = new Set(['image', 'url'])\n\nexport const isArbitraryImage = (value: string) => getIsArbitraryValue(value, imageLabels, isImage)\n\nexport const isArbitraryShadow = (value: string) => getIsArbitraryValue(value, '', isShadow)\n\nexport const isAny = () => true\n\nconst getIsArbitraryValue = (\n value: string,\n label: string | Set<string>,\n testValue: (value: string) => boolean,\n) => {\n const result = arbitraryValueRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1])\n }\n\n return testValue(result[2]!)\n }\n\n return false\n}\n\nconst isLengthOnly = (value: string) =>\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)\n\nconst isNever = () => false\n\nconst isShadow = (value: string) => shadowRegex.test(value)\n\nconst isImage = (value: string) => imageRegex.test(value)\n","import { fromTheme } from './from-theme'\nimport { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\nimport {\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize,\n} from './validators'\n\nexport const getDefaultConfig = () => {\n const colors = fromTheme('colors')\n const spacing = fromTheme('spacing')\n const blur = fromTheme('blur')\n const brightness = fromTheme('brightness')\n const borderColor = fromTheme('borderColor')\n const borderRadius = fromTheme('borderRadius')\n const borderSpacing = fromTheme('borderSpacing')\n const borderWidth = fromTheme('borderWidth')\n const contrast = fromTheme('contrast')\n const grayscale = fromTheme('grayscale')\n const hueRotate = fromTheme('hueRotate')\n const invert = fromTheme('invert')\n const gap = fromTheme('gap')\n const gradientColorStops = fromTheme('gradientColorStops')\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions')\n const inset = fromTheme('inset')\n const margin = fromTheme('margin')\n const opacity = fromTheme('opacity')\n const padding = fromTheme('padding')\n const saturate = fromTheme('saturate')\n const scale = fromTheme('scale')\n const sepia = fromTheme('sepia')\n const skew = fromTheme('skew')\n const space = fromTheme('space')\n const translate = fromTheme('translate')\n\n const getOverscroll = () => ['auto', 'contain', 'none'] as const\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing] as const\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing] as const\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength] as const\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue] as const\n const getPositions = () =>\n [\n 'bottom',\n 'center',\n 'left',\n 'left-bottom',\n 'left-top',\n 'right',\n 'right-bottom',\n 'right-top',\n 'top',\n ] as const\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'] as const\n const getBlendModes = () =>\n [\n 'normal',\n 'multiply',\n 'screen',\n 'overlay',\n 'darken',\n 'lighten',\n 'color-dodge',\n 'color-burn',\n 'hard-light',\n 'soft-light',\n 'difference',\n 'exclusion',\n 'hue',\n 'saturation',\n 'color',\n 'luminosity',\n ] as const\n const getAlign = () =>\n ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'] as const\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue] as const\n const getBreaks = () =>\n ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue]\n\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary(),\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{ aspect: ['auto', 'square', 'video', isArbitraryValue] }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{ columns: [isTshirtSize] }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{ 'break-after': getBreaks() }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{ 'break-before': getBreaks() }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{ box: ['border', 'content'] }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: [\n 'block',\n 'inline-block',\n 'inline',\n 'flex',\n 'inline-flex',\n 'table',\n 'inline-table',\n 'table-caption',\n 'table-cell',\n 'table-column',\n 'table-column-group',\n 'table-footer-group',\n 'table-header-group',\n 'table-row-group',\n 'table-row',\n 'flow-root',\n 'grid',\n 'inline-grid',\n 'contents',\n 'list-item',\n 'hidden',\n ],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{ float: ['right', 'left', 'none', 'start', 'end'] }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{ object: [...getPositions(), isArbitraryValue] }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{ overflow: getOverflow() }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{ 'overflow-x': getOverflow() }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{ 'overflow-y': getOverflow() }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{ overscroll: getOverscroll() }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{ 'overscroll-x': getOverscroll() }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{ 'overscroll-y': getOverscroll() }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{ inset: [inset] }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{ 'inset-x': [inset] }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{ 'inset-y': [inset] }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{ start: [inset] }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{ end: [inset] }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{ top: [inset] }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{ right: [inset] }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{ bottom: [inset] }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{ left: [inset] }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{ z: ['auto', isInteger, isArbitraryValue] }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{ basis: getSpacingWithAutoAndArbitrary() }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{ flex: ['wrap', 'wrap-reverse', 'nowrap'] }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{ flex: ['1', 'auto', 'initial', 'none', isArbitraryValue] }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{ grow: getZeroAndEmpty() }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{ shrink: getZeroAndEmpty() }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{ order: ['first', 'last', 'none', isInteger, isArbitraryValue] }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{ 'grid-cols': [isAny] }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [\n {\n col: [\n 'auto',\n { span: ['full', isInteger, isArbitraryValue] },\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{ 'col-start': getNumberWithAutoAndArbitrary() }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{ 'col-end': getNumberWithAutoAndArbitrary() }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{ 'grid-rows': [isAny] }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [\n { row: ['auto', { span: [isInteger, isArbitraryValue] }, isArbitraryValue] },\n ],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{ 'row-start': getNumberWithAutoAndArbitrary() }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{ 'row-end': getNumberWithAutoAndArbitrary() }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{ 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue] }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{ 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue] }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{ gap: [gap] }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{ 'gap-x': [gap] }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{ 'gap-y': [gap] }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{ justify: ['normal', ...getAlign()] }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{ 'justify-items': ['start', 'end', 'center', 'stretch'] }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{ 'justify-self': ['auto', 'start', 'end', 'center', 'stretch'] }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{ content: ['normal', ...getAlign(), 'baseline'] }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{ items: ['start', 'end', 'center', 'baseline', 'stretch'] }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{ self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline'] }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{ 'place-content': [...getAlign(), 'baseline'] }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{ 'place-items': ['start', 'end', 'center', 'baseline', 'stretch'] }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{ 'place-self': ['auto', 'start', 'end', 'center', 'stretch'] }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{ p: [padding] }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{ px: [padding] }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{ py: [padding] }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{ ps: [padding] }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{ pe: [padding] }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{ pt: [padding] }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{ pr: [padding] }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{ pb: [padding] }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{ pl: [padding] }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{ m: [margin] }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{ mx: [margin] }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{ my: [margin] }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{ ms: [margin] }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{ me: [margin] }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{ mt: [margin] }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{ mr: [margin] }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{ mb: [margin] }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{ ml: [margin] }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{ 'space-x': [space] }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{ 'space-y': [space] }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [\n {\n w: [\n 'auto',\n 'min',\n 'max',\n 'fit',\n 'svw',\n 'lvw',\n 'dvw',\n isArbitraryValue,\n spacing,\n ],\n },\n ],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{ 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit'] }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [\n {\n 'max-w': [\n isArbitraryValue,\n spacing,\n 'none',\n 'full',\n 'min',\n 'max',\n 'fit',\n 'prose',\n { screen: [isTshirtSize] },\n isTshirtSize,\n ],\n },\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [\n {\n h: [\n isArbitraryValue,\n spacing,\n 'auto',\n 'min',\n 'max',\n 'fit',\n 'svh',\n 'lvh',\n 'dvh',\n ],\n },\n ],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [\n { 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh'] },\n ],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [\n { 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh'] },\n ],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{ size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit'] }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{ text: ['base', isTshirtSize, isArbitraryLength] }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [\n {\n font: [\n 'thin',\n 'extralight',\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n 'extrabold',\n 'black',\n isArbitraryNumber,\n ],\n },\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{ font: [isAny] }],\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 {\n tracking: [\n 'tighter',\n 'tight',\n 'normal',\n 'wide',\n 'wider',\n 'widest',\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{ 'line-clamp': ['none', isNumber, isArbitraryNumber] }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [\n {\n leading: [\n 'none',\n 'tight',\n 'snug',\n 'normal',\n 'relaxed',\n 'loose',\n isLength,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{ 'list-image': ['none', isArbitraryValue] }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{ list: ['none', 'disc', 'decimal', isArbitraryValue] }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{ list: ['inside', 'outside'] }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{ placeholder: [colors] }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{ 'placeholder-opacity': [opacity] }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{ text: [colors] }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{ 'text-opacity': [opacity] }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{ decoration: [...getLineStyles(), 'wavy'] }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [\n { decoration: ['auto', 'from-font', isLength, isArbitraryLength] },\n ],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{ 'underline-offset': ['auto', isLength, isArbitraryValue] }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{ decoration: [colors] }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{ indent: getSpacingWithArbitrary() }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [\n {\n align: [\n 'baseline',\n 'top',\n 'middle',\n 'bottom',\n 'text-top',\n 'text-bottom',\n 'sub',\n 'super',\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [\n { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] },\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{ break: ['normal', 'words', 'all', 'keep'] }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{ hyphens: ['none', 'manual', 'auto'] }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{ content: ['none', isArbitraryValue] }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{ 'bg-opacity': [opacity] }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{ bg: [...getPositions(), isArbitraryPosition] }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{ bg: ['no-repeat', { repeat: ['', 'x', 'y', 'round', 'space'] }] }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{ bg: ['auto', 'cover', 'contain', isArbitrarySize] }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [\n {\n bg: [\n 'none',\n { 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] },\n isArbitraryImage,\n ],\n },\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{ bg: [colors] }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{ from: [gradientColorStopPositions] }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{ via: [gradientColorStopPositions] }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{ to: [gradientColorStopPositions] }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{ from: [gradientColorStops] }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{ via: [gradientColorStops] }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{ to: [gradientColorStops] }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{ rounded: [borderRadius] }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{ 'rounded-s': [borderRadius] }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{ 'rounded-e': [borderRadius] }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{ 'rounded-t': [borderRadius] }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{ 'rounded-r': [borderRadius] }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{ 'rounded-b': [borderRadius] }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{ 'rounded-l': [borderRadius] }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{ 'rounded-ss': [borderRadius] }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{ 'rounded-se': [borderRadius] }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{ 'rounded-ee': [borderRadius] }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{ 'rounded-es': [borderRadius] }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{ 'rounded-tl': [borderRadius] }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{ 'rounded-tr': [borderRadius] }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{ 'rounded-br': [borderRadius] }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{ 'rounded-bl': [borderRadius] }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{ border: [borderWidth] }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{ 'border-x': [borderWidth] }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{ 'border-y': [borderWidth] }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{ 'border-s': [borderWidth] }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{ 'border-e': [borderWidth] }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{ 'border-t': [borderWidth] }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{ 'border-r': [borderWidth] }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{ 'border-b': [borderWidth] }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{ 'border-l': [borderWidth] }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{ 'border-opacity': [opacity] }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{ border: [...getLineStyles(), 'hidden'] }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{ 'divide-x': [borderWidth] }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{ 'divide-y': [borderWidth] }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{ 'divide-opacity': [opacity] }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{ divide: getLineStyles() }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{ border: [borderColor] }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{ 'border-x': [borderColor] }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{ 'border-y': [borderColor] }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{ 'border-s': [borderColor] }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{ 'border-e': [borderColor] }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{ 'border-t': [borderColor] }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{ 'border-r': [borderColor] }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{ 'border-b': [borderColor] }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{ 'border-l': [borderColor] }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{ divide: [borderColor] }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{ outline: ['', ...getLineStyles()] }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{ 'outline-offset': [isLength, isArbitraryValue] }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{ outline: [isLength, isArbitraryLength] }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{ outline: [colors] }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{ ring: getLengthWithEmptyAndArbitrary() }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{ ring: [colors] }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{ 'ring-opacity': [opacity] }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{ 'ring-offset': [isLength, isArbitraryLength] }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{ 'ring-offset': [colors] }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{ shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow] }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{ shadow: [isAny] }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{ opacity: [opacity] }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{ 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker'] }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{ 'bg-blend': getBlendModes() }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{ filter: ['', 'none'] }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{ blur: [blur] }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{ brightness: [brightness] }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{ contrast: [contrast] }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{ 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue] }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{ grayscale: [grayscale] }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{ 'hue-rotate': [hueRotate] }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{ invert: [invert] }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{ saturate: [saturate] }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{ sepia: [sepia] }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{ 'backdrop-filter': ['', 'none'] }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{ 'backdrop-blur': [blur] }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{ 'backdrop-brightness': [brightness] }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{ 'backdrop-contrast': [contrast] }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{ 'backdrop-grayscale': [grayscale] }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{ 'backdrop-hue-rotate': [hueRotate] }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{ 'backdrop-invert': [invert] }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{ 'backdrop-opacity': [opacity] }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{ 'backdrop-saturate': [saturate] }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{ 'backdrop-sepia': [sepia] }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{ border: ['collapse', 'separate'] }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{ 'border-spacing': [borderSpacing] }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{ 'border-spacing-x': [borderSpacing] }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{ 'border-spacing-y': [borderSpacing] }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{ table: ['auto', 'fixed'] }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{ caption: ['top', 'bottom'] }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [\n {\n transition: [\n 'none',\n 'all',\n '',\n 'colors',\n 'opacity',\n 'shadow',\n 'transform',\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{ duration: getNumberAndArbitrary() }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{ ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue] }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{ delay: getNumberAndArbitrary() }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{ animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue] }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{ transform: ['', 'gpu', 'none'] }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{ scale: [scale] }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{ 'scale-x': [scale] }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{ 'scale-y': [scale] }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{ rotate: [isInteger, isArbitraryValue] }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{ 'translate-x': [translate] }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{ 'translate-y': [translate] }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{ 'skew-x': [skew] }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{ 'skew-y': [skew] }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [\n {\n origin: [\n 'center',\n 'top',\n 'top-right',\n 'right',\n 'bottom-right',\n 'bottom',\n 'bottom-left',\n 'left',\n 'top-left',\n isArbitraryValue,\n ],\n },\n ],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{ accent: ['auto', colors] }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{ appearance: ['none', 'auto'] }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [\n {\n cursor: [\n 'auto',\n 'default',\n 'pointer',\n 'wait',\n 'text',\n 'move',\n 'help',\n 'not-allowed',\n 'none',\n 'context-menu',\n 'progress',\n 'cell',\n 'crosshair',\n 'vertical-text',\n 'alias',\n 'copy',\n 'no-drop',\n 'grab',\n 'grabbing',\n 'all-scroll',\n 'col-resize',\n 'row-resize',\n 'n-resize',\n 'e-resize',\n 's-resize',\n 'w-resize',\n 'ne-resize',\n 'nw-resize',\n 'se-resize',\n 'sw-resize',\n 'ew-resize',\n 'ns-resize',\n 'nesw-resize',\n 'nwse-resize',\n 'zoom-in',\n 'zoom-out',\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{ caret: [colors] }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{ 'pointer-events': ['none', 'auto'] }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{ resize: ['none', 'y', 'x', ''] }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{ scroll: ['auto', 'smooth'] }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{ 'scroll-m': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{ 'scroll-mx': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{ 'scroll-my': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{ 'scroll-ms': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{ 'scroll-me': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{ 'scroll-mt': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{ 'scroll-mr': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{ 'scroll-mb': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{ 'scroll-ml': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{ 'scroll-p': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{ 'scroll-px': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{ 'scroll-py': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{ 'scroll-ps': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{ 'scroll-pe': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{ 'scroll-pt': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{ 'scroll-pr': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{ 'scroll-pb': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{ 'scroll-pl': getSpacingWithArbitrary() }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{ snap: ['normal', 'always'] }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{ snap: ['mandatory', 'proximity'] }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [\n {\n touch: ['auto', 'none', 'manipulation'],\n },\n ],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [\n {\n 'touch-pan': ['x', 'left', 'right'],\n },\n ],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [\n {\n 'touch-pan': ['y', 'up', 'down'],\n },\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: [{ select: ['none', 'text', 'all', 'auto'] }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [\n { 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue] },\n ],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{ fill: [colors, 'none'] }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{ stroke: [isLength, isArbitraryLength, isArbitraryNumber] }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{ stroke: [colors, 'none'] }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }],\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': [\n 'fvn-ordinal',\n 'fvn-slashed-zero',\n 'fvn-figure',\n 'fvn-spacing',\n 'fvn-fraction',\n ],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: [\n 'rounded-s',\n 'rounded-e',\n 'rounded-t',\n 'rounded-r',\n 'rounded-b',\n 'rounded-l',\n 'rounded-ss',\n 'rounded-se',\n 'rounded-ee',\n 'rounded-es',\n 'rounded-tl',\n 'rounded-tr',\n 'rounded-br',\n 'rounded-bl',\n ],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': [\n 'border-w-s',\n 'border-w-e',\n 'border-w-t',\n 'border-w-r',\n 'border-w-b',\n 'border-w-l',\n ],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': [\n 'border-color-s',\n 'border-color-e',\n 'border-color-t',\n 'border-color-r',\n 'border-color-b',\n 'border-color-l',\n ],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': [\n 'scroll-mx',\n 'scroll-my',\n 'scroll-ms',\n 'scroll-me',\n 'scroll-mt',\n 'scroll-mr',\n 'scroll-mb',\n 'scroll-ml',\n ],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': [\n 'scroll-px',\n 'scroll-py',\n 'scroll-ps',\n 'scroll-pe',\n 'scroll-pt',\n 'scroll-pr',\n 'scroll-pb',\n 'scroll-pl',\n ],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch'],\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading'],\n },\n } as const satisfies Config<DefaultClassGroupIds, DefaultThemeGroupIds>\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\n\nexport const twMerge = createTailwindMerge(getDefaultConfig)\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"names":["CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","classParts","split","length","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","prefixedClassGroupEntries","getPrefixedClassGroupEntries","Object","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","key","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","map","prefixedClassGroup","fromEntries","value","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","bracketDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","isArbitraryVariant","sort","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","result","originalClassName","Boolean","variantModifier","modifierId","classId","includes","conflictGroups","i","group","twJoin","argument","resolvedValue","string","arguments","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","callTailwindMerge","apply","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","Number","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","getDefaultConfig","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","size","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","from","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","fill","stroke","sr","twMerge"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { c as createLucideIcon } from './createLucideIcon-02eb7854.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @license lucide-react v0.378.0 - ISC
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the ISC license.
|
|
7
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const X = createLucideIcon("X", [
|
|
12
|
-
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
13
|
-
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
14
|
-
]);
|
|
15
|
-
|
|
16
|
-
export { X };
|
|
17
|
-
//# sourceMappingURL=x-2f6cf742.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"x-2f6cf742.js","sources":["../../../../../node_modules/lucide-react/src/icons/x.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n"],"names":[],"mappings":";;;;;;;;;;AAaM,MAAA,CAAA,GAAI,gBAAA,CAAiB,GAAK,EAAA;AAAA,EAC9B,CAAC,MAAQ,EAAA,EAAE,CAAG,EAAA,YAAc,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EAC3C,CAAC,MAAQ,EAAA,EAAE,CAAA,EAAG,YAAc,EAAA,GAAA,EAAK,UAAU,CAAA;AAC7C,CAAC;;;;","x_google_ignoreList":[0]}
|
package/dist/code-group.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-group.js","sources":["../src/code-group/elements/code-group-container.tsx","../src/code-group/elements/code-group-content.tsx","../src/code-group/elements/code-group-item-heading.tsx","../src/code-group/elements/code-group-list.tsx","../src/code-group/index.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { PluginElementRenderProps, SlateElement } from '@yoopta/editor';\nimport { Blocks, useYooptaEditor } from '@yoopta/editor';\nimport type { BundledLanguage, BundledTheme, HighlighterGeneric } from 'shiki';\nimport { Element, Transforms } from 'slate';\n\nimport { Tabs } from '../../ui/tabs';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Window {\n yShiki: HighlighterGeneric<BundledLanguage, BundledTheme> | null;\n }\n}\n\nexport const CodeGroupContainer = (props: PluginElementRenderProps) => {\n const { attributes, children, blockId, element } = props;\n const editor = useYooptaEditor();\n const theme = props.element.props?.theme;\n\n useEffect(() => {\n if (window.yShiki) {\n const themeData = window.yShiki.getTheme(theme);\n\n const activeBg =\n themeData.colors?.['tab.activeBackground'] ??\n themeData.colors?.['editorTab.activeBackground'] ??\n themeData.bg;\n const inactiveBg =\n themeData.colors?.['tab.inactiveBackground'] ??\n themeData.colors?.['editorTab.inactiveBackground'] ??\n themeData.colors?.['editorGroupHeader.tabsBackground'] ??\n themeData.bg;\n const activeFg =\n themeData.colors?.['tab.activeForeground'] ??\n themeData.colors?.['editorTab.activeForeground'] ??\n themeData.fg;\n const inactiveFg =\n themeData.colors?.['tab.inactiveForeground'] ??\n themeData.colors?.['editorTab.inactiveForeground'] ??\n themeData.colors?.['foreground'] ??\n themeData.fg;\n const activeBorder =\n themeData.colors?.['tab.activeBorder'] ??\n themeData.colors?.['editorTab.activeBorder'] ??\n activeBg;\n const borderColor =\n themeData.colors?.['tab.border'] ??\n themeData.colors?.['editorGroupHeader.border'] ??\n themeData.colors?.['editorGroup.border'] ??\n 'transparent';\n const editorBg = themeData.colors?.['editor.background'] ?? themeData.bg;\n const editorFg = themeData.colors?.['editor.foreground'] ?? themeData.fg;\n const cursorColor = themeData.colors?.['editorCursor.foreground'] ?? themeData.fg;\n\n const cssVariables = {\n 'code-group-tab-active-bg': activeBg,\n 'code-group-tab-inactive-bg': inactiveBg,\n 'code-group-tab-active-fg': activeFg,\n 'code-group-tab-inactive-fg': inactiveFg,\n 'code-group-tab-active-border': activeBorder,\n 'code-group-tab-border': borderColor,\n 'code-group-editor-bg': editorBg,\n 'code-group-editor-fg': editorFg,\n 'code-group-editor-cursor': cursorColor,\n };\n\n Object.entries(cssVariables).forEach(([key, value]) => {\n document.documentElement.style.setProperty(`--${key}`, value);\n });\n }\n }, [theme]);\n\n const onValueChange = (value: string) => {\n const slate = Blocks.getBlockSlate(editor, { id: blockId });\n if (!slate) return;\n\n Transforms.setNodes<SlateElement>(\n slate,\n { props: { ...element.props, activeTabId: value } },\n {\n at: [0],\n match: (n) => Element.isElement(n) && (n as SlateElement).type === 'code-group-container',\n },\n );\n };\n\n return (\n <div {...attributes} data-code-group-container className=\"w-full\">\n <Tabs value={element.props?.activeTabId} onValueChange={onValueChange} className=\"w-full\">\n {children}\n </Tabs>\n </div>\n );\n};\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport {\n CodeGroupCommands,\n HighlightedCodeOverlay,\n SHIKI_CODE_LANGUAGES,\n isLanguageSupported,\n} from '@yoopta/code';\nimport type { PluginElementRenderProps, SlateElement } from '@yoopta/editor';\nimport { Blocks, Elements, useYooptaEditor } from '@yoopta/editor';\nimport copy from 'copy-to-clipboard';\nimport { Check, Copy, Sparkles, Trash2 } from 'lucide-react';\nimport { Editor, Element, Text } from 'slate';\n\nimport { LanguageSelect } from '../../code/elements/language-select';\nimport { Button } from '../../ui/button';\nimport { TabsContent } from '../../ui/tabs';\n\nconst getNodeText = (node: unknown): string => {\n if (Text.isText(node)) {\n return node.text;\n }\n if (typeof node === 'object' && node !== null && 'children' in node) {\n const children = (node as { children?: unknown[] }).children;\n return children?.map(getNodeText).join('\\n') ?? '';\n }\n return '';\n};\n\ntype ThemeColors = {\n buttonForeground: string;\n};\n\nexport const CodeGroupContent = (props: PluginElementRenderProps) => {\n const { attributes, children, element, blockId } = props;\n const overlayRef = useRef<HTMLDivElement>(null);\n const editor = useYooptaEditor();\n\n const language = element?.props?.language ?? 'javascript';\n const theme = useMemo(() => {\n const slate = Blocks.getBlockSlate(editor, { id: blockId });\n if (!slate) return 'github-dark';\n const codeGroupNodes = Array.from(\n Editor.nodes(slate, {\n at: [0],\n match: (n) => Element.isElement(n) && (n as SlateElement).type === 'code-group-container',\n }),\n )?.[0];\n\n if (!codeGroupNodes) return 'github-dark';\n\n const [codeGroupElement] = codeGroupNodes;\n if (!codeGroupElement) return 'github-dark';\n\n return (codeGroupElement as SlateElement).props?.theme ?? 'github-dark';\n }, [editor, blockId]);\n\n const [copied, setCopied] = useState(false);\n const [isBeautifying, setIsBeautifying] = useState(false);\n const [themeColors, setThemeColors] = useState<ThemeColors>({\n buttonForeground: '',\n });\n\n useEffect(() => {\n if (window.yShiki) {\n const themeData = window.yShiki.getTheme(theme);\n\n setThemeColors({\n buttonForeground:\n themeData.colors?.['button.foreground'] ??\n themeData.colors?.['icon.foreground'] ??\n themeData.fg,\n });\n }\n }, [theme]);\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>) => {\n if (overlayRef.current) {\n overlayRef.current.scrollTop = e.currentTarget.scrollTop;\n overlayRef.current.scrollLeft = e.currentTarget.scrollLeft;\n }\n };\n\n const copyCode = () => {\n const codeText = getNodeText(element);\n const success = copy(codeText);\n if (success) {\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n };\n\n const deleteCodeElement = () => {\n if (editor.readOnly) return;\n CodeGroupCommands.deleteTabItem(editor, blockId, { tabId: element.props?.referenceId });\n };\n\n const updateLanguage = (newLanguage: string) => {\n if (editor.readOnly) return;\n const elementPath = Elements.getElementPath(editor, { blockId, element });\n if (!elementPath) return;\n\n Elements.updateElement(editor, {\n blockId,\n type: 'code-group-content',\n props: {\n ...element.props,\n language: newLanguage,\n },\n path: elementPath,\n });\n };\n\n const beautifyCode = async () => {\n if (isBeautifying) return;\n const tabId = element.props?.referenceId;\n if (!tabId) return;\n\n setIsBeautifying(true);\n try {\n await CodeGroupCommands.beautifyTab(editor, blockId, tabId);\n } finally {\n setIsBeautifying(false);\n }\n };\n\n const canBeautify = isLanguageSupported(language);\n\n const currentLanguage =\n SHIKI_CODE_LANGUAGES.find((lang) => lang.value === language) ?? SHIKI_CODE_LANGUAGES[0];\n\n return (\n <TabsContent\n {...attributes}\n value={element.props?.referenceId}\n className=\"rounded-b-lg mt-0 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-ring focus-visible:ring-offset-0\">\n <div className=\"relative group/code-group-content overflow-hidden\">\n <div\n contentEditable={false}\n className=\"absolute top-2 right-2 z-20 flex items-center gap-2 opacity-0 group-hover/code-group-content:opacity-100 transition-opacity\"\n style={{\n backgroundColor: 'var(--code-group-tab-active-bg)',\n padding: '4px',\n borderRadius: '4px',\n }}>\n <LanguageSelect\n value={language}\n options={SHIKI_CODE_LANGUAGES}\n onValueChange={updateLanguage}\n currentLabel={currentLanguage.label}\n />\n {canBeautify && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={beautifyCode}\n disabled={isBeautifying}\n title=\"Beautify code\"\n style={{\n color: themeColors.buttonForeground || 'var(--code-group-tab-active-fg)',\n }}>\n <Sparkles className={`h-4 w-4 ${isBeautifying ? 'animate-pulse' : ''}`} />\n </Button>\n )}\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={copyCode}\n title={copied ? 'Copied!' : 'Copy code'}\n style={{\n color: themeColors.buttonForeground || 'var(--code-group-tab-active-fg)',\n }}>\n {copied ? <Check className=\"h-4 w-4\" /> : <Copy className=\"h-4 w-4\" />}\n </Button>\n {!editor.readOnly && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={deleteCodeElement}\n title=\"Delete code\"\n style={{\n color: themeColors.buttonForeground || 'var(--code-group-tab-active-fg)',\n }}>\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n\n <div\n className=\"relative bg-background overflow-hidden rounded-lg\"\n style={{\n backgroundColor: 'var(--code-group-editor-bg)',\n color: 'var(--code-group-editor-fg)',\n caretColor: 'var(--code-group-editor-cursor)',\n }}>\n <div\n ref={overlayRef}\n className=\"absolute inset-0 p-4 font-mono text-sm whitespace-pre overflow-auto pointer-events-none z-10 select-none\"\n style={{\n lineHeight: '1.6',\n tabSize: 2,\n }}\n contentEditable={false}\n aria-hidden=\"true\">\n <HighlightedCodeOverlay element={element} language={language} theme={theme} />\n </div>\n\n <div\n className=\"relative p-4 font-mono text-sm whitespace-pre overflow-auto\"\n style={{\n lineHeight: '1.6',\n tabSize: 2,\n color: 'transparent',\n caretColor: 'var(--code-group-editor-cursor)',\n }}\n onScroll={handleScroll}>\n {children}\n </div>\n </div>\n </div>\n </TabsContent>\n );\n};\n","import { CodeGroupCommands } from '@yoopta/code';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { Blocks, Elements, useYooptaEditor } from '@yoopta/editor';\nimport { X } from 'lucide-react';\nimport { Transforms } from 'slate';\n\nimport { TabsTrigger } from '../../ui/tabs';\n\nexport const CodeGroupItemHeading = (props: PluginElementRenderProps) => {\n const { attributes, children, element, blockId } = props;\n const editor = useYooptaEditor();\n\n const deleteTabItem = () => {\n if (editor.readOnly) return;\n const slate = Blocks.getBlockSlate(editor, { id: blockId });\n if (!slate) return;\n\n const elementPath = Elements.getElementPath(editor, { blockId, element });\n if (!elementPath) return;\n\n Transforms.select(slate, elementPath);\n CodeGroupCommands.deleteTabItem(editor, blockId, { tabId: element.id });\n };\n\n return (\n <TabsTrigger\n {...attributes}\n value={element.id}\n className=\"relative group/tab flex items-center gap-1.5 px-3 h-7 rounded-none rounded-t-lg border-b-2 border-transparent whitespace-nowrap text-xs font-normal transition-colors\"\n style={{\n backgroundColor: 'var(--code-group-tab-inactive-bg, hsl(var(--muted)))',\n color: 'var(--code-group-tab-inactive-fg, hsl(var(--muted-foreground)))',\n }}>\n <div className=\"flex-1 min-w-0\">{children}</div>\n {!editor.readOnly && (\n <span\n contentEditable={false}\n onClick={deleteTabItem}\n className=\"ml-1 flex items-center justify-center rounded-sm opacity-0 group-hover/tab:opacity-100 transition-opacity hover:bg-black/10 dark:hover:bg-white/10 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 p-0.5\"\n style={{\n color: 'inherit',\n }}\n title=\"Close tab\">\n <X className=\"h-3 w-3 shrink-0\" />\n </span>\n )}\n </TabsTrigger>\n );\n};\n","import { CodeGroupCommands } from '@yoopta/code';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { useYooptaEditor } from '@yoopta/editor';\nimport { Plus } from 'lucide-react';\n\nimport { ScrollArea, ScrollBar } from '../../ui/scroll-area';\nimport { TabsList } from '../../ui/tabs';\n\nexport const CodeGroupList = (props: PluginElementRenderProps) => {\n const { attributes, children, blockId } = props;\n const editor = useYooptaEditor();\n\n const addTabItem = (e: React.MouseEvent) => {\n if (editor.readOnly) return;\n e.preventDefault();\n e.stopPropagation();\n\n CodeGroupCommands.addTabItem(editor, blockId);\n };\n\n return (\n <ScrollArea className=\"w-full\">\n <TabsList\n {...attributes}\n className=\"w-full relative justify-start h-8 rounded-none rounded-t-lg bg-transparent p-0 border-b border-x-0 border-t-0\"\n style={{\n backgroundColor: 'var(--code-group-tab-inactive-bg)',\n borderBottomColor: 'var(--code-group-tab-border)',\n }}>\n {children}\n {!editor.readOnly && (\n <button\n type=\"button\"\n contentEditable={false}\n onClick={addTabItem}\n className=\"ml-1 flex items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 p-1.5 h-7\"\n style={{\n color: 'var(--code-group-tab-inactive-fg)',\n }}\n title=\"Add tab\">\n <Plus className=\"h-3.5 w-3.5 shrink-0\" />\n </button>\n )}\n </TabsList>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n};\n","import { CodeGroupContainer } from './elements/code-group-container';\nimport { CodeGroupContent } from './elements/code-group-content';\nimport { CodeGroupItemHeading } from './elements/code-group-item-heading';\nimport { CodeGroupList } from './elements/code-group-list';\nimport './styles.css';\n\nexport const CodeGroupUI = {\n 'code-group-container': {\n render: CodeGroupContainer,\n },\n 'code-group-list': {\n render: CodeGroupList,\n },\n 'code-group-item-heading': {\n render: CodeGroupItemHeading,\n },\n 'code-group-content': {\n render: CodeGroupContent,\n },\n};\n"],"names":["_jsx","copy","_jsxs"],"mappings":"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"}
|
package/dist/code.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","sources":["../src/code/elements/theme-select.tsx","../src/code/elements/code.tsx","../src/code/index.ts"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport { ChevronDown, Search } from 'lucide-react';\n\nimport { Button } from '../../ui/button';\nimport { Input } from '../../ui/input';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../ui/popover';\nimport { cn } from '../../utils';\n\ntype ThemeOption = {\n value: string;\n label: string;\n};\n\ntype ThemeSelectProps = {\n value: string;\n options: readonly ThemeOption[];\n onValueChange: (value: string) => void;\n currentLabel: string;\n};\n\nexport const ThemeSelect = ({ value, options, onValueChange, currentLabel }: ThemeSelectProps) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n\n const filteredOptions = useMemo(() => {\n if (!search) return options;\n const searchLower = search.toLowerCase();\n return options.filter(\n (option) =>\n option.label.toLowerCase().includes(searchLower) ||\n option.value.toLowerCase().includes(searchLower),\n );\n }, [search, options]);\n\n const handleSelect = (optionValue: string) => {\n onValueChange(optionValue);\n setOpen(false);\n setSearch('');\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"h-7 gap-1.5 text-xs\" contentEditable={false}>\n {currentLabel}\n <ChevronDown className=\"h-3 w-3 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-64 p-0\"\n align=\"start\"\n contentEditable={false}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}>\n <div className=\"p-2\">\n <div className=\"relative mb-2\">\n <Search className=\"absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground\" />\n <Input\n placeholder=\"Search theme...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"h-8 pl-7 text-xs\"\n autoFocus\n />\n </div>\n <div className=\"max-h-[200px] overflow-y-auto\">\n {filteredOptions.length === 0 ? (\n <div className=\"px-2 py-4 text-center text-sm text-muted-foreground\">\n No themes found\n </div>\n ) : (\n <div className=\"space-y-0.5\">\n {filteredOptions.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n onClick={() => handleSelect(option.value)}\n className={cn(\n 'w-full rounded-sm px-2 py-1.5 text-left text-xs transition-colors',\n 'hover:bg-accent hover:text-accent-foreground',\n value === option.value && 'bg-accent text-accent-foreground',\n )}>\n {option.label}\n </button>\n ))}\n </div>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n CodeCommands,\n HighlightedCodeOverlay,\n SHIKI_CODE_LANGUAGES,\n SHIKI_CODE_THEMES,\n isLanguageSupported,\n} from '@yoopta/code';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { Blocks, Elements, useYooptaEditor } from '@yoopta/editor';\nimport copy from 'copy-to-clipboard';\nimport { Check, Copy, Sparkles, Trash2 } from 'lucide-react';\nimport type { BundledLanguage, BundledTheme, HighlighterGeneric } from 'shiki';\nimport { Editor, Element, Text } from 'slate';\n\nimport { LanguageSelect } from './language-select';\nimport { ThemeSelect } from './theme-select';\nimport { Button } from '../../ui/button';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Window {\n yShiki: HighlighterGeneric<BundledLanguage, BundledTheme> | null;\n }\n}\n\nconst getNodeText = (node: unknown): string => {\n if (Text.isText(node)) {\n return node.text;\n }\n if (typeof node === 'object' && node !== null && 'children' in node) {\n const children = (node as { children?: unknown[] }).children;\n return children?.map(getNodeText).join('\\n') ?? '';\n }\n return '';\n};\n\ntype ThemeColors = {\n background: string;\n foreground: string;\n caret: string;\n tabActiveBackground: string;\n tabInactiveBackground: string;\n buttonForeground: string;\n};\n\nexport const CodeBlockElement = ({\n attributes,\n children,\n element,\n blockId,\n}: PluginElementRenderProps) => {\n const editor = useYooptaEditor();\n const language = element.props?.language ?? 'javascript';\n const theme = element.props?.theme ?? 'github-dark';\n const overlayRef = useRef<HTMLDivElement>(null);\n\n const [copied, setCopied] = useState(false);\n const [isBeautifying, setIsBeautifying] = useState(false);\n const [themeColors, setThemeColors] = useState<ThemeColors>({\n background: '',\n foreground: '',\n caret: '',\n tabActiveBackground: '',\n tabInactiveBackground: '',\n buttonForeground: '',\n });\n\n useEffect(() => {\n if (window.yShiki) {\n const themeData = window.yShiki.getTheme(theme);\n\n setThemeColors({\n background: themeData.bg,\n foreground: themeData.fg,\n caret: themeData.colors?.['editorCursor.foreground'] ?? themeData.fg,\n tabActiveBackground:\n themeData.colors?.['editorTab.activeBackground'] ??\n themeData.colors?.['tab.activeBackground'] ??\n themeData.bg,\n tabInactiveBackground:\n themeData.colors?.['editorTab.inactiveBackground'] ??\n themeData.colors?.['tab.inactiveBackground'] ??\n themeData.bg,\n buttonForeground:\n themeData.colors?.['button.foreground'] ??\n themeData.colors?.['icon.foreground'] ??\n themeData.fg,\n });\n }\n }, [theme]);\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>) => {\n if (overlayRef.current) {\n overlayRef.current.scrollTop = e.currentTarget.scrollTop;\n overlayRef.current.scrollLeft = e.currentTarget.scrollLeft;\n }\n };\n\n const copyCode = useCallback(() => {\n const codeText = getNodeText(element);\n const success = copy(codeText);\n if (success) {\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n }, [element]);\n\n const deleteCodeElement = useCallback(() => {\n if (editor.readOnly) return;\n const slate = Blocks.getBlockSlate(editor, { id: blockId });\n if (!slate) return;\n\n const elementPath = Elements.getElementPath(editor, { blockId, element });\n if (!elementPath) return;\n\n const parentEntry = elementPath ? Editor.parent(slate, elementPath) : undefined;\n if (parentEntry && Element.isElement(parentEntry[0]) && !Editor.isEditor(parentEntry[0])) {\n Elements.deleteElement(editor, {\n blockId,\n type: 'code',\n path: elementPath,\n });\n return;\n }\n\n Blocks.deleteBlock(editor, { blockId, focus: true });\n }, [editor, blockId, element]);\n\n const updateLanguage = useCallback(\n (newLanguage: BundledLanguage) => {\n CodeCommands.updateCodeLanguage(editor, blockId, newLanguage);\n },\n [editor, blockId],\n );\n\n const updateTheme = useCallback(\n (newTheme: BundledTheme) => {\n CodeCommands.updateCodeTheme(editor, blockId, newTheme);\n },\n [editor, blockId],\n );\n\n const beautifyCode = useCallback(async () => {\n if (isBeautifying) return;\n\n setIsBeautifying(true);\n try {\n await CodeCommands.beautifyCode(editor, blockId);\n } finally {\n setIsBeautifying(false);\n }\n }, [editor, blockId, isBeautifying]);\n\n const canBeautify = isLanguageSupported(language);\n\n const currentLanguage =\n SHIKI_CODE_LANGUAGES.find((lang) => lang.value === language) ?? SHIKI_CODE_LANGUAGES[0];\n const currentTheme = SHIKI_CODE_THEMES.find((t) => t.value === theme) ?? SHIKI_CODE_THEMES[0];\n\n return (\n <div\n {...attributes}\n className=\"relative my-2 group/code-block rounded-lg border border-border bg-muted/50 overflow-hidden\">\n <div\n contentEditable={false}\n className=\"flex items-center justify-between px-4 py-2 border-b border-border select-none\"\n style={{ backgroundColor: themeColors.tabActiveBackground || undefined }}>\n <div className=\"flex items-center gap-2\">\n <LanguageSelect\n value={language}\n options={SHIKI_CODE_LANGUAGES}\n onValueChange={(value: string) => updateLanguage(value as BundledLanguage)}\n currentLabel={currentLanguage.label}\n />\n <ThemeSelect\n value={theme}\n options={SHIKI_CODE_THEMES}\n onValueChange={(value: string) => updateTheme(value as BundledTheme)}\n currentLabel={currentTheme.label}\n />\n </div>\n\n <div className=\"flex items-center gap-1 opacity-0 group-hover/code-block:opacity-100 transition-opacity\">\n {canBeautify && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={beautifyCode}\n disabled={isBeautifying}\n title=\"Beautify code\"\n style={{\n color: themeColors.buttonForeground || undefined,\n }}>\n <Sparkles className={`h-4 w-4 ${isBeautifying ? 'animate-pulse' : ''}`} />\n </Button>\n )}\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={copyCode}\n title={copied ? 'Copied!' : 'Copy code'}\n style={{\n color: themeColors.buttonForeground || undefined,\n }}>\n {copied ? <Check className=\"h-4 w-4\" /> : <Copy className=\"h-4 w-4\" />}\n </Button>\n {!editor.readOnly && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={deleteCodeElement}\n title=\"Delete code block\"\n style={{\n color: themeColors.buttonForeground || undefined,\n }}>\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n </div>\n\n <div\n className=\"relative bg-background overflow-hidden\"\n style={{\n backgroundColor: themeColors.background,\n color: themeColors.foreground,\n caretColor: themeColors.caret,\n }}>\n <div\n ref={overlayRef}\n className=\"absolute inset-0 p-4 font-mono text-sm whitespace-pre overflow-auto pointer-events-none z-10 select-none\"\n style={{\n lineHeight: '1.6',\n tabSize: 2,\n }}\n contentEditable={false}\n aria-hidden=\"true\">\n <HighlightedCodeOverlay element={element} language={language} theme={theme} />\n </div>\n\n <div\n className=\"relative p-4 font-mono text-sm whitespace-pre overflow-auto\"\n style={{\n lineHeight: '1.6',\n tabSize: 2,\n color: 'transparent',\n caretColor: themeColors.caret,\n }}\n onScroll={handleScroll}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n","import { CodeBlockElement } from './elements/code';\n\nconst CodeUI = {\n code: {\n render: CodeBlockElement,\n },\n};\n\nexport { CodeUI };\n"],"names":["_jsxs","_jsx","copy"],"mappings":"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"}
|
package/dist/divider.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"divider.js","sources":["../src/divider/elements/divider.tsx","../src/divider/index.ts"],"sourcesContent":["import type { PluginElementRenderProps, SlateElement } from '@yoopta/editor';\nimport { Blocks, Selection, useYooptaEditor } from '@yoopta/editor';\nimport {\n ElementOptions,\n useElementOptions,\n useUpdateElementProps,\n} from '@yoopta/ui/element-options';\n\nimport { Separator } from '../../ui/separator';\nimport { cn } from '../../utils';\n\ntype DividerTheme = 'solid' | 'dashed' | 'dotted' | 'gradient';\n\ntype DividerElementProps = {\n theme?: DividerTheme;\n color?: string;\n};\n\nconst DIVIDER_THEMES = [\n { value: 'solid' as const, label: 'Solid' },\n { value: 'dashed' as const, label: 'Dashed' },\n { value: 'dotted' as const, label: 'Dotted' },\n { value: 'gradient' as const, label: 'Gradient' },\n];\n\nconst DIVIDER_COLORS = [\n '#E5E7EB', // gray-200\n '#6B7280', // gray-500\n '#1F2937', // gray-800\n '#EF4444', // red-500\n '#F59E0B', // amber-500\n '#22C55E', // green-500\n '#3B82F6', // blue-500\n '#8B5CF6', // violet-500\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst DividerOptionsContent = () => {\n const { element } = useElementOptions();\n const updateProps = useUpdateElementProps<DividerElementProps>();\n const dividerElement = element as SlateElement<'divider', DividerElementProps>;\n\n return (\n <ElementOptions.Content\n side=\"top\"\n align=\"center\"\n sideOffset={8}\n className=\"min-w-[180px] rounded-lg border bg-popover p-2 shadow-md\">\n <ElementOptions.Group className=\"flex flex-col gap-1\">\n <ElementOptions.Label className=\"px-2 text-xs font-medium text-muted-foreground\">\n Style\n </ElementOptions.Label>\n <ElementOptions.Select\n value={dividerElement.props?.theme ?? 'solid'}\n options={DIVIDER_THEMES}\n onValueChange={(value) => updateProps({ theme: value })}\n className=\"flex h-8 w-full items-center justify-between rounded-md border border-input bg-background px-3 text-sm hover:bg-accent\"\n />\n </ElementOptions.Group>\n\n <ElementOptions.Separator className=\"my-2 h-px bg-border\" />\n\n <ElementOptions.Group className=\"flex flex-col gap-1\">\n <ElementOptions.Label className=\"px-2 text-xs font-medium text-muted-foreground\">\n Color\n </ElementOptions.Label>\n <ElementOptions.ColorPicker\n value={dividerElement.props?.color ?? '#E5E7EB'}\n onChange={(value) => updateProps({ color: value })}\n presetColors={DIVIDER_COLORS}\n className=\"flex h-8 w-full items-center gap-2 rounded-md border border-input bg-background px-3 text-sm hover:bg-accent\"\n />\n </ElementOptions.Group>\n </ElementOptions.Content>\n );\n};\n\nexport const Divider = (props: PluginElementRenderProps) => {\n const editor = useYooptaEditor();\n const { attributes, element, blockId } = props;\n const dividerElement = element as SlateElement<'divider', DividerElementProps>;\n const theme = dividerElement.props?.theme ?? 'solid';\n const color = dividerElement.props?.color;\n\n const getSeparatorClassName = () => {\n switch (theme) {\n case 'dashed':\n return cn(\n 'border-t-2 border-dashed border-b-0 border-l-0 border-r-0 bg-transparent',\n color ? '' : 'border-border',\n );\n case 'dotted':\n return cn(\n 'border-t-2 border-dotted border-b-0 border-l-0 border-r-0 bg-transparent',\n color ? '' : 'border-border',\n );\n case 'gradient':\n return 'h-[2px] bg-transparent border-0';\n default: // solid\n return cn('h-[1px]', color ? '' : 'bg-border');\n }\n };\n\n const getSeparatorStyles = () => {\n if (!color) return {};\n\n switch (theme) {\n case 'dashed':\n return {\n borderTopColor: color,\n };\n case 'dotted':\n return {\n borderTopColor: color,\n };\n case 'gradient':\n return {\n background: `linear-gradient(to right, transparent, ${color}, transparent)`,\n };\n default: // solid\n return {\n backgroundColor: color,\n };\n }\n };\n\n const handleClick = () => {\n const block = Blocks.getBlock(editor, { id: blockId });\n if (!block) return;\n Selection.setSelected(editor, { at: block.meta.order });\n };\n\n return (\n <div\n {...attributes}\n contentEditable={false}\n className=\"group relative w-full py-3\"\n onClick={handleClick}>\n <Separator\n orientation=\"horizontal\"\n decorative\n className={getSeparatorClassName()}\n style={getSeparatorStyles()}\n />\n {props.children}\n </div>\n );\n};\n","import { Divider } from './elements/divider';\n\nexport const DividerUI = {\n divider: {\n render: Divider,\n },\n};\n\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|