@ngenux/ngage-whiteboarding 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -42611,7 +42611,2969 @@ const useCapture = () => {
42611
42611
  return { mediaStream };
42612
42612
  };
42613
42613
 
42614
+ 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}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}
42615
+
42616
+ const CLASS_PART_SEPARATOR = '-';
42617
+ const createClassGroupUtils = config => {
42618
+ const classMap = createClassMap(config);
42619
+ const {
42620
+ conflictingClassGroups,
42621
+ conflictingClassGroupModifiers
42622
+ } = config;
42623
+ const getClassGroupId = className => {
42624
+ const classParts = className.split(CLASS_PART_SEPARATOR);
42625
+ // 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.
42626
+ if (classParts[0] === '' && classParts.length !== 1) {
42627
+ classParts.shift();
42628
+ }
42629
+ return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
42630
+ };
42631
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
42632
+ const conflicts = conflictingClassGroups[classGroupId] || [];
42633
+ if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
42634
+ return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
42635
+ }
42636
+ return conflicts;
42637
+ };
42638
+ return {
42639
+ getClassGroupId,
42640
+ getConflictingClassGroupIds
42641
+ };
42642
+ };
42643
+ const getGroupRecursive = (classParts, classPartObject) => {
42644
+ if (classParts.length === 0) {
42645
+ return classPartObject.classGroupId;
42646
+ }
42647
+ const currentClassPart = classParts[0];
42648
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
42649
+ const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;
42650
+ if (classGroupFromNextClassPart) {
42651
+ return classGroupFromNextClassPart;
42652
+ }
42653
+ if (classPartObject.validators.length === 0) {
42654
+ return undefined;
42655
+ }
42656
+ const classRest = classParts.join(CLASS_PART_SEPARATOR);
42657
+ return classPartObject.validators.find(({
42658
+ validator
42659
+ }) => validator(classRest))?.classGroupId;
42660
+ };
42661
+ const arbitraryPropertyRegex = /^\[(.+)\]$/;
42662
+ const getGroupIdForArbitraryProperty = className => {
42663
+ if (arbitraryPropertyRegex.test(className)) {
42664
+ const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
42665
+ const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));
42666
+ if (property) {
42667
+ // I use two dots here because one dot is used as prefix for class groups in plugins
42668
+ return 'arbitrary..' + property;
42669
+ }
42670
+ }
42671
+ };
42672
+ /**
42673
+ * Exported for testing only
42674
+ */
42675
+ const createClassMap = config => {
42676
+ const {
42677
+ theme,
42678
+ classGroups
42679
+ } = config;
42680
+ const classMap = {
42681
+ nextPart: new Map(),
42682
+ validators: []
42683
+ };
42684
+ for (const classGroupId in classGroups) {
42685
+ processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);
42686
+ }
42687
+ return classMap;
42688
+ };
42689
+ const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
42690
+ classGroup.forEach(classDefinition => {
42691
+ if (typeof classDefinition === 'string') {
42692
+ const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);
42693
+ classPartObjectToEdit.classGroupId = classGroupId;
42694
+ return;
42695
+ }
42696
+ if (typeof classDefinition === 'function') {
42697
+ if (isThemeGetter(classDefinition)) {
42698
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
42699
+ return;
42700
+ }
42701
+ classPartObject.validators.push({
42702
+ validator: classDefinition,
42703
+ classGroupId
42704
+ });
42705
+ return;
42706
+ }
42707
+ Object.entries(classDefinition).forEach(([key, classGroup]) => {
42708
+ processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);
42709
+ });
42710
+ });
42711
+ };
42712
+ const getPart = (classPartObject, path) => {
42713
+ let currentClassPartObject = classPartObject;
42714
+ path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {
42715
+ if (!currentClassPartObject.nextPart.has(pathPart)) {
42716
+ currentClassPartObject.nextPart.set(pathPart, {
42717
+ nextPart: new Map(),
42718
+ validators: []
42719
+ });
42720
+ }
42721
+ currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
42722
+ });
42723
+ return currentClassPartObject;
42724
+ };
42725
+ const isThemeGetter = func => func.isThemeGetter;
42726
+
42727
+ // LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance
42728
+ const createLruCache = maxCacheSize => {
42729
+ if (maxCacheSize < 1) {
42730
+ return {
42731
+ get: () => undefined,
42732
+ set: () => {}
42733
+ };
42734
+ }
42735
+ let cacheSize = 0;
42736
+ let cache = new Map();
42737
+ let previousCache = new Map();
42738
+ const update = (key, value) => {
42739
+ cache.set(key, value);
42740
+ cacheSize++;
42741
+ if (cacheSize > maxCacheSize) {
42742
+ cacheSize = 0;
42743
+ previousCache = cache;
42744
+ cache = new Map();
42745
+ }
42746
+ };
42747
+ return {
42748
+ get(key) {
42749
+ let value = cache.get(key);
42750
+ if (value !== undefined) {
42751
+ return value;
42752
+ }
42753
+ if ((value = previousCache.get(key)) !== undefined) {
42754
+ update(key, value);
42755
+ return value;
42756
+ }
42757
+ },
42758
+ set(key, value) {
42759
+ if (cache.has(key)) {
42760
+ cache.set(key, value);
42761
+ } else {
42762
+ update(key, value);
42763
+ }
42764
+ }
42765
+ };
42766
+ };
42767
+ const IMPORTANT_MODIFIER = '!';
42768
+ const MODIFIER_SEPARATOR = ':';
42769
+ const MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;
42770
+ const createParseClassName = config => {
42771
+ const {
42772
+ prefix,
42773
+ experimentalParseClassName
42774
+ } = config;
42775
+ /**
42776
+ * Parse class name into parts.
42777
+ *
42778
+ * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS
42779
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
42780
+ */
42781
+ let parseClassName = className => {
42782
+ const modifiers = [];
42783
+ let bracketDepth = 0;
42784
+ let parenDepth = 0;
42785
+ let modifierStart = 0;
42786
+ let postfixModifierPosition;
42787
+ for (let index = 0; index < className.length; index++) {
42788
+ let currentCharacter = className[index];
42789
+ if (bracketDepth === 0 && parenDepth === 0) {
42790
+ if (currentCharacter === MODIFIER_SEPARATOR) {
42791
+ modifiers.push(className.slice(modifierStart, index));
42792
+ modifierStart = index + MODIFIER_SEPARATOR_LENGTH;
42793
+ continue;
42794
+ }
42795
+ if (currentCharacter === '/') {
42796
+ postfixModifierPosition = index;
42797
+ continue;
42798
+ }
42799
+ }
42800
+ if (currentCharacter === '[') {
42801
+ bracketDepth++;
42802
+ } else if (currentCharacter === ']') {
42803
+ bracketDepth--;
42804
+ } else if (currentCharacter === '(') {
42805
+ parenDepth++;
42806
+ } else if (currentCharacter === ')') {
42807
+ parenDepth--;
42808
+ }
42809
+ }
42810
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
42811
+ const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);
42812
+ const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;
42813
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
42814
+ return {
42815
+ modifiers,
42816
+ hasImportantModifier,
42817
+ baseClassName,
42818
+ maybePostfixModifierPosition
42819
+ };
42820
+ };
42821
+ if (prefix) {
42822
+ const fullPrefix = prefix + MODIFIER_SEPARATOR;
42823
+ const parseClassNameOriginal = parseClassName;
42824
+ parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {
42825
+ isExternal: true,
42826
+ modifiers: [],
42827
+ hasImportantModifier: false,
42828
+ baseClassName: className,
42829
+ maybePostfixModifierPosition: undefined
42830
+ };
42831
+ }
42832
+ if (experimentalParseClassName) {
42833
+ const parseClassNameOriginal = parseClassName;
42834
+ parseClassName = className => experimentalParseClassName({
42835
+ className,
42836
+ parseClassName: parseClassNameOriginal
42837
+ });
42838
+ }
42839
+ return parseClassName;
42840
+ };
42841
+ const stripImportantModifier = baseClassName => {
42842
+ if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {
42843
+ return baseClassName.substring(0, baseClassName.length - 1);
42844
+ }
42845
+ /**
42846
+ * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
42847
+ * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
42848
+ */
42849
+ if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {
42850
+ return baseClassName.substring(1);
42851
+ }
42852
+ return baseClassName;
42853
+ };
42854
+
42855
+ /**
42856
+ * Sorts modifiers according to following schema:
42857
+ * - Predefined modifiers are sorted alphabetically
42858
+ * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it
42859
+ */
42860
+ const createSortModifiers = config => {
42861
+ const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));
42862
+ const sortModifiers = modifiers => {
42863
+ if (modifiers.length <= 1) {
42864
+ return modifiers;
42865
+ }
42866
+ const sortedModifiers = [];
42867
+ let unsortedModifiers = [];
42868
+ modifiers.forEach(modifier => {
42869
+ const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];
42870
+ if (isPositionSensitive) {
42871
+ sortedModifiers.push(...unsortedModifiers.sort(), modifier);
42872
+ unsortedModifiers = [];
42873
+ } else {
42874
+ unsortedModifiers.push(modifier);
42875
+ }
42876
+ });
42877
+ sortedModifiers.push(...unsortedModifiers.sort());
42878
+ return sortedModifiers;
42879
+ };
42880
+ return sortModifiers;
42881
+ };
42882
+ const createConfigUtils = config => ({
42883
+ cache: createLruCache(config.cacheSize),
42884
+ parseClassName: createParseClassName(config),
42885
+ sortModifiers: createSortModifiers(config),
42886
+ ...createClassGroupUtils(config)
42887
+ });
42888
+ const SPLIT_CLASSES_REGEX = /\s+/;
42889
+ const mergeClassList = (classList, configUtils) => {
42890
+ const {
42891
+ parseClassName,
42892
+ getClassGroupId,
42893
+ getConflictingClassGroupIds,
42894
+ sortModifiers
42895
+ } = configUtils;
42896
+ /**
42897
+ * Set of classGroupIds in following format:
42898
+ * `{importantModifier}{variantModifiers}{classGroupId}`
42899
+ * @example 'float'
42900
+ * @example 'hover:focus:bg-color'
42901
+ * @example 'md:!pr'
42902
+ */
42903
+ const classGroupsInConflict = [];
42904
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
42905
+ let result = '';
42906
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
42907
+ const originalClassName = classNames[index];
42908
+ const {
42909
+ isExternal,
42910
+ modifiers,
42911
+ hasImportantModifier,
42912
+ baseClassName,
42913
+ maybePostfixModifierPosition
42914
+ } = parseClassName(originalClassName);
42915
+ if (isExternal) {
42916
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
42917
+ continue;
42918
+ }
42919
+ let hasPostfixModifier = !!maybePostfixModifierPosition;
42920
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
42921
+ if (!classGroupId) {
42922
+ if (!hasPostfixModifier) {
42923
+ // Not a Tailwind class
42924
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
42925
+ continue;
42926
+ }
42927
+ classGroupId = getClassGroupId(baseClassName);
42928
+ if (!classGroupId) {
42929
+ // Not a Tailwind class
42930
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
42931
+ continue;
42932
+ }
42933
+ hasPostfixModifier = false;
42934
+ }
42935
+ const variantModifier = sortModifiers(modifiers).join(':');
42936
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
42937
+ const classId = modifierId + classGroupId;
42938
+ if (classGroupsInConflict.includes(classId)) {
42939
+ // Tailwind class omitted due to conflict
42940
+ continue;
42941
+ }
42942
+ classGroupsInConflict.push(classId);
42943
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
42944
+ for (let i = 0; i < conflictGroups.length; ++i) {
42945
+ const group = conflictGroups[i];
42946
+ classGroupsInConflict.push(modifierId + group);
42947
+ }
42948
+ // Tailwind class not in conflict
42949
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
42950
+ }
42951
+ return result;
42952
+ };
42953
+
42954
+ /**
42955
+ * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.
42956
+ *
42957
+ * Specifically:
42958
+ * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js
42959
+ * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts
42960
+ *
42961
+ * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
42962
+ */
42963
+ function twJoin() {
42964
+ let index = 0;
42965
+ let argument;
42966
+ let resolvedValue;
42967
+ let string = '';
42968
+ while (index < arguments.length) {
42969
+ if (argument = arguments[index++]) {
42970
+ if (resolvedValue = toValue(argument)) {
42971
+ string && (string += ' ');
42972
+ string += resolvedValue;
42973
+ }
42974
+ }
42975
+ }
42976
+ return string;
42977
+ }
42978
+ const toValue = mix => {
42979
+ if (typeof mix === 'string') {
42980
+ return mix;
42981
+ }
42982
+ let resolvedValue;
42983
+ let string = '';
42984
+ for (let k = 0; k < mix.length; k++) {
42985
+ if (mix[k]) {
42986
+ if (resolvedValue = toValue(mix[k])) {
42987
+ string && (string += ' ');
42988
+ string += resolvedValue;
42989
+ }
42990
+ }
42991
+ }
42992
+ return string;
42993
+ };
42994
+ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
42995
+ let configUtils;
42996
+ let cacheGet;
42997
+ let cacheSet;
42998
+ let functionToCall = initTailwindMerge;
42999
+ function initTailwindMerge(classList) {
43000
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
43001
+ configUtils = createConfigUtils(config);
43002
+ cacheGet = configUtils.cache.get;
43003
+ cacheSet = configUtils.cache.set;
43004
+ functionToCall = tailwindMerge;
43005
+ return tailwindMerge(classList);
43006
+ }
43007
+ function tailwindMerge(classList) {
43008
+ const cachedResult = cacheGet(classList);
43009
+ if (cachedResult) {
43010
+ return cachedResult;
43011
+ }
43012
+ const result = mergeClassList(classList, configUtils);
43013
+ cacheSet(classList, result);
43014
+ return result;
43015
+ }
43016
+ return function callTailwindMerge() {
43017
+ return functionToCall(twJoin.apply(null, arguments));
43018
+ };
43019
+ }
43020
+ const fromTheme = key => {
43021
+ const themeGetter = theme => theme[key] || [];
43022
+ themeGetter.isThemeGetter = true;
43023
+ return themeGetter;
43024
+ };
43025
+ const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
43026
+ const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
43027
+ const fractionRegex = /^\d+\/\d+$/;
43028
+ const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
43029
+ const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
43030
+ const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
43031
+ // Shadow always begins with x and y offset separated by underscore optionally prepended by inset
43032
+ const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
43033
+ const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
43034
+ const isFraction = value => fractionRegex.test(value);
43035
+ const isNumber = value => !!value && !Number.isNaN(Number(value));
43036
+ const isInteger = value => !!value && Number.isInteger(Number(value));
43037
+ const isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));
43038
+ const isTshirtSize = value => tshirtUnitRegex.test(value);
43039
+ const isAny = () => true;
43040
+ const isLengthOnly = value =>
43041
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
43042
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
43043
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
43044
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);
43045
+ const isNever = () => false;
43046
+ const isShadow = value => shadowRegex.test(value);
43047
+ const isImage = value => imageRegex.test(value);
43048
+ const isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);
43049
+ const isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);
43050
+ const isArbitraryValue = value => arbitraryValueRegex.test(value);
43051
+ const isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
43052
+ const isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);
43053
+ const isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);
43054
+ const isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);
43055
+ const isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);
43056
+ const isArbitraryVariable = value => arbitraryVariableRegex.test(value);
43057
+ const isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);
43058
+ const isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);
43059
+ const isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);
43060
+ const isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);
43061
+ const isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);
43062
+ const isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);
43063
+ // Helpers
43064
+ const getIsArbitraryValue = (value, testLabel, testValue) => {
43065
+ const result = arbitraryValueRegex.exec(value);
43066
+ if (result) {
43067
+ if (result[1]) {
43068
+ return testLabel(result[1]);
43069
+ }
43070
+ return testValue(result[2]);
43071
+ }
43072
+ return false;
43073
+ };
43074
+ const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
43075
+ const result = arbitraryVariableRegex.exec(value);
43076
+ if (result) {
43077
+ if (result[1]) {
43078
+ return testLabel(result[1]);
43079
+ }
43080
+ return shouldMatchNoLabel;
43081
+ }
43082
+ return false;
43083
+ };
43084
+ // Labels
43085
+ const isLabelPosition = label => label === 'position' || label === 'percentage';
43086
+ const isLabelImage = label => label === 'image' || label === 'url';
43087
+ const isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';
43088
+ const isLabelLength = label => label === 'length';
43089
+ const isLabelNumber = label => label === 'number';
43090
+ const isLabelFamilyName = label => label === 'family-name';
43091
+ const isLabelShadow = label => label === 'shadow';
43092
+ const getDefaultConfig = () => {
43093
+ /**
43094
+ * Theme getters for theme variable namespaces
43095
+ * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces
43096
+ */
43097
+ /***/
43098
+ const themeColor = fromTheme('color');
43099
+ const themeFont = fromTheme('font');
43100
+ const themeText = fromTheme('text');
43101
+ const themeFontWeight = fromTheme('font-weight');
43102
+ const themeTracking = fromTheme('tracking');
43103
+ const themeLeading = fromTheme('leading');
43104
+ const themeBreakpoint = fromTheme('breakpoint');
43105
+ const themeContainer = fromTheme('container');
43106
+ const themeSpacing = fromTheme('spacing');
43107
+ const themeRadius = fromTheme('radius');
43108
+ const themeShadow = fromTheme('shadow');
43109
+ const themeInsetShadow = fromTheme('inset-shadow');
43110
+ const themeTextShadow = fromTheme('text-shadow');
43111
+ const themeDropShadow = fromTheme('drop-shadow');
43112
+ const themeBlur = fromTheme('blur');
43113
+ const themePerspective = fromTheme('perspective');
43114
+ const themeAspect = fromTheme('aspect');
43115
+ const themeEase = fromTheme('ease');
43116
+ const themeAnimate = fromTheme('animate');
43117
+ /**
43118
+ * Helpers to avoid repeating the same scales
43119
+ *
43120
+ * We use functions that create a new array every time they're called instead of static arrays.
43121
+ * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.
43122
+ */
43123
+ /***/
43124
+ const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];
43125
+ const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',
43126
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
43127
+ 'left-top', 'top-right',
43128
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
43129
+ 'right-top', 'bottom-right',
43130
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
43131
+ 'right-bottom', 'bottom-left',
43132
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
43133
+ 'left-bottom'];
43134
+ const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
43135
+ const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];
43136
+ const scaleOverscroll = () => ['auto', 'contain', 'none'];
43137
+ const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
43138
+ const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];
43139
+ const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];
43140
+ const scaleGridColRowStartAndEnd = () => ['auto', {
43141
+ span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]
43142
+ }, isInteger, isArbitraryVariable, isArbitraryValue];
43143
+ const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];
43144
+ const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];
43145
+ const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];
43146
+ const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];
43147
+ const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];
43148
+ const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
43149
+ const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
43150
+ const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
43151
+ position: [isArbitraryVariable, isArbitraryValue]
43152
+ }];
43153
+ const scaleBgRepeat = () => ['no-repeat', {
43154
+ repeat: ['', 'x', 'y', 'space', 'round']
43155
+ }];
43156
+ const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {
43157
+ size: [isArbitraryVariable, isArbitraryValue]
43158
+ }];
43159
+ const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
43160
+ const scaleRadius = () => [
43161
+ // Deprecated since Tailwind CSS v4.0.0
43162
+ '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];
43163
+ const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];
43164
+ const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];
43165
+ const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];
43166
+ const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
43167
+ const scaleBlur = () => [
43168
+ // Deprecated since Tailwind CSS v4.0.0
43169
+ '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];
43170
+ const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];
43171
+ const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];
43172
+ const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
43173
+ const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];
43174
+ return {
43175
+ cacheSize: 500,
43176
+ theme: {
43177
+ animate: ['spin', 'ping', 'pulse', 'bounce'],
43178
+ aspect: ['video'],
43179
+ blur: [isTshirtSize],
43180
+ breakpoint: [isTshirtSize],
43181
+ color: [isAny],
43182
+ container: [isTshirtSize],
43183
+ 'drop-shadow': [isTshirtSize],
43184
+ ease: ['in', 'out', 'in-out'],
43185
+ font: [isAnyNonArbitrary],
43186
+ 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],
43187
+ 'inset-shadow': [isTshirtSize],
43188
+ leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],
43189
+ perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],
43190
+ radius: [isTshirtSize],
43191
+ shadow: [isTshirtSize],
43192
+ spacing: ['px', isNumber],
43193
+ text: [isTshirtSize],
43194
+ 'text-shadow': [isTshirtSize],
43195
+ tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']
43196
+ },
43197
+ classGroups: {
43198
+ // --------------
43199
+ // --- Layout ---
43200
+ // --------------
43201
+ /**
43202
+ * Aspect Ratio
43203
+ * @see https://tailwindcss.com/docs/aspect-ratio
43204
+ */
43205
+ aspect: [{
43206
+ aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
43207
+ }],
43208
+ /**
43209
+ * Container
43210
+ * @see https://tailwindcss.com/docs/container
43211
+ * @deprecated since Tailwind CSS v4.0.0
43212
+ */
43213
+ container: ['container'],
43214
+ /**
43215
+ * Columns
43216
+ * @see https://tailwindcss.com/docs/columns
43217
+ */
43218
+ columns: [{
43219
+ columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
43220
+ }],
43221
+ /**
43222
+ * Break After
43223
+ * @see https://tailwindcss.com/docs/break-after
43224
+ */
43225
+ 'break-after': [{
43226
+ 'break-after': scaleBreak()
43227
+ }],
43228
+ /**
43229
+ * Break Before
43230
+ * @see https://tailwindcss.com/docs/break-before
43231
+ */
43232
+ 'break-before': [{
43233
+ 'break-before': scaleBreak()
43234
+ }],
43235
+ /**
43236
+ * Break Inside
43237
+ * @see https://tailwindcss.com/docs/break-inside
43238
+ */
43239
+ 'break-inside': [{
43240
+ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']
43241
+ }],
43242
+ /**
43243
+ * Box Decoration Break
43244
+ * @see https://tailwindcss.com/docs/box-decoration-break
43245
+ */
43246
+ 'box-decoration': [{
43247
+ 'box-decoration': ['slice', 'clone']
43248
+ }],
43249
+ /**
43250
+ * Box Sizing
43251
+ * @see https://tailwindcss.com/docs/box-sizing
43252
+ */
43253
+ box: [{
43254
+ box: ['border', 'content']
43255
+ }],
43256
+ /**
43257
+ * Display
43258
+ * @see https://tailwindcss.com/docs/display
43259
+ */
43260
+ display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],
43261
+ /**
43262
+ * Screen Reader Only
43263
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
43264
+ */
43265
+ sr: ['sr-only', 'not-sr-only'],
43266
+ /**
43267
+ * Floats
43268
+ * @see https://tailwindcss.com/docs/float
43269
+ */
43270
+ float: [{
43271
+ float: ['right', 'left', 'none', 'start', 'end']
43272
+ }],
43273
+ /**
43274
+ * Clear
43275
+ * @see https://tailwindcss.com/docs/clear
43276
+ */
43277
+ clear: [{
43278
+ clear: ['left', 'right', 'both', 'none', 'start', 'end']
43279
+ }],
43280
+ /**
43281
+ * Isolation
43282
+ * @see https://tailwindcss.com/docs/isolation
43283
+ */
43284
+ isolation: ['isolate', 'isolation-auto'],
43285
+ /**
43286
+ * Object Fit
43287
+ * @see https://tailwindcss.com/docs/object-fit
43288
+ */
43289
+ 'object-fit': [{
43290
+ object: ['contain', 'cover', 'fill', 'none', 'scale-down']
43291
+ }],
43292
+ /**
43293
+ * Object Position
43294
+ * @see https://tailwindcss.com/docs/object-position
43295
+ */
43296
+ 'object-position': [{
43297
+ object: scalePositionWithArbitrary()
43298
+ }],
43299
+ /**
43300
+ * Overflow
43301
+ * @see https://tailwindcss.com/docs/overflow
43302
+ */
43303
+ overflow: [{
43304
+ overflow: scaleOverflow()
43305
+ }],
43306
+ /**
43307
+ * Overflow X
43308
+ * @see https://tailwindcss.com/docs/overflow
43309
+ */
43310
+ 'overflow-x': [{
43311
+ 'overflow-x': scaleOverflow()
43312
+ }],
43313
+ /**
43314
+ * Overflow Y
43315
+ * @see https://tailwindcss.com/docs/overflow
43316
+ */
43317
+ 'overflow-y': [{
43318
+ 'overflow-y': scaleOverflow()
43319
+ }],
43320
+ /**
43321
+ * Overscroll Behavior
43322
+ * @see https://tailwindcss.com/docs/overscroll-behavior
43323
+ */
43324
+ overscroll: [{
43325
+ overscroll: scaleOverscroll()
43326
+ }],
43327
+ /**
43328
+ * Overscroll Behavior X
43329
+ * @see https://tailwindcss.com/docs/overscroll-behavior
43330
+ */
43331
+ 'overscroll-x': [{
43332
+ 'overscroll-x': scaleOverscroll()
43333
+ }],
43334
+ /**
43335
+ * Overscroll Behavior Y
43336
+ * @see https://tailwindcss.com/docs/overscroll-behavior
43337
+ */
43338
+ 'overscroll-y': [{
43339
+ 'overscroll-y': scaleOverscroll()
43340
+ }],
43341
+ /**
43342
+ * Position
43343
+ * @see https://tailwindcss.com/docs/position
43344
+ */
43345
+ position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],
43346
+ /**
43347
+ * Top / Right / Bottom / Left
43348
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43349
+ */
43350
+ inset: [{
43351
+ inset: scaleInset()
43352
+ }],
43353
+ /**
43354
+ * Right / Left
43355
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43356
+ */
43357
+ 'inset-x': [{
43358
+ 'inset-x': scaleInset()
43359
+ }],
43360
+ /**
43361
+ * Top / Bottom
43362
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43363
+ */
43364
+ 'inset-y': [{
43365
+ 'inset-y': scaleInset()
43366
+ }],
43367
+ /**
43368
+ * Start
43369
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43370
+ */
43371
+ start: [{
43372
+ start: scaleInset()
43373
+ }],
43374
+ /**
43375
+ * End
43376
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43377
+ */
43378
+ end: [{
43379
+ end: scaleInset()
43380
+ }],
43381
+ /**
43382
+ * Top
43383
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43384
+ */
43385
+ top: [{
43386
+ top: scaleInset()
43387
+ }],
43388
+ /**
43389
+ * Right
43390
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43391
+ */
43392
+ right: [{
43393
+ right: scaleInset()
43394
+ }],
43395
+ /**
43396
+ * Bottom
43397
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43398
+ */
43399
+ bottom: [{
43400
+ bottom: scaleInset()
43401
+ }],
43402
+ /**
43403
+ * Left
43404
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
43405
+ */
43406
+ left: [{
43407
+ left: scaleInset()
43408
+ }],
43409
+ /**
43410
+ * Visibility
43411
+ * @see https://tailwindcss.com/docs/visibility
43412
+ */
43413
+ visibility: ['visible', 'invisible', 'collapse'],
43414
+ /**
43415
+ * Z-Index
43416
+ * @see https://tailwindcss.com/docs/z-index
43417
+ */
43418
+ z: [{
43419
+ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]
43420
+ }],
43421
+ // ------------------------
43422
+ // --- Flexbox and Grid ---
43423
+ // ------------------------
43424
+ /**
43425
+ * Flex Basis
43426
+ * @see https://tailwindcss.com/docs/flex-basis
43427
+ */
43428
+ basis: [{
43429
+ basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]
43430
+ }],
43431
+ /**
43432
+ * Flex Direction
43433
+ * @see https://tailwindcss.com/docs/flex-direction
43434
+ */
43435
+ 'flex-direction': [{
43436
+ flex: ['row', 'row-reverse', 'col', 'col-reverse']
43437
+ }],
43438
+ /**
43439
+ * Flex Wrap
43440
+ * @see https://tailwindcss.com/docs/flex-wrap
43441
+ */
43442
+ 'flex-wrap': [{
43443
+ flex: ['nowrap', 'wrap', 'wrap-reverse']
43444
+ }],
43445
+ /**
43446
+ * Flex
43447
+ * @see https://tailwindcss.com/docs/flex
43448
+ */
43449
+ flex: [{
43450
+ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]
43451
+ }],
43452
+ /**
43453
+ * Flex Grow
43454
+ * @see https://tailwindcss.com/docs/flex-grow
43455
+ */
43456
+ grow: [{
43457
+ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]
43458
+ }],
43459
+ /**
43460
+ * Flex Shrink
43461
+ * @see https://tailwindcss.com/docs/flex-shrink
43462
+ */
43463
+ shrink: [{
43464
+ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]
43465
+ }],
43466
+ /**
43467
+ * Order
43468
+ * @see https://tailwindcss.com/docs/order
43469
+ */
43470
+ order: [{
43471
+ order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]
43472
+ }],
43473
+ /**
43474
+ * Grid Template Columns
43475
+ * @see https://tailwindcss.com/docs/grid-template-columns
43476
+ */
43477
+ 'grid-cols': [{
43478
+ 'grid-cols': scaleGridTemplateColsRows()
43479
+ }],
43480
+ /**
43481
+ * Grid Column Start / End
43482
+ * @see https://tailwindcss.com/docs/grid-column
43483
+ */
43484
+ 'col-start-end': [{
43485
+ col: scaleGridColRowStartAndEnd()
43486
+ }],
43487
+ /**
43488
+ * Grid Column Start
43489
+ * @see https://tailwindcss.com/docs/grid-column
43490
+ */
43491
+ 'col-start': [{
43492
+ 'col-start': scaleGridColRowStartOrEnd()
43493
+ }],
43494
+ /**
43495
+ * Grid Column End
43496
+ * @see https://tailwindcss.com/docs/grid-column
43497
+ */
43498
+ 'col-end': [{
43499
+ 'col-end': scaleGridColRowStartOrEnd()
43500
+ }],
43501
+ /**
43502
+ * Grid Template Rows
43503
+ * @see https://tailwindcss.com/docs/grid-template-rows
43504
+ */
43505
+ 'grid-rows': [{
43506
+ 'grid-rows': scaleGridTemplateColsRows()
43507
+ }],
43508
+ /**
43509
+ * Grid Row Start / End
43510
+ * @see https://tailwindcss.com/docs/grid-row
43511
+ */
43512
+ 'row-start-end': [{
43513
+ row: scaleGridColRowStartAndEnd()
43514
+ }],
43515
+ /**
43516
+ * Grid Row Start
43517
+ * @see https://tailwindcss.com/docs/grid-row
43518
+ */
43519
+ 'row-start': [{
43520
+ 'row-start': scaleGridColRowStartOrEnd()
43521
+ }],
43522
+ /**
43523
+ * Grid Row End
43524
+ * @see https://tailwindcss.com/docs/grid-row
43525
+ */
43526
+ 'row-end': [{
43527
+ 'row-end': scaleGridColRowStartOrEnd()
43528
+ }],
43529
+ /**
43530
+ * Grid Auto Flow
43531
+ * @see https://tailwindcss.com/docs/grid-auto-flow
43532
+ */
43533
+ 'grid-flow': [{
43534
+ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']
43535
+ }],
43536
+ /**
43537
+ * Grid Auto Columns
43538
+ * @see https://tailwindcss.com/docs/grid-auto-columns
43539
+ */
43540
+ 'auto-cols': [{
43541
+ 'auto-cols': scaleGridAutoColsRows()
43542
+ }],
43543
+ /**
43544
+ * Grid Auto Rows
43545
+ * @see https://tailwindcss.com/docs/grid-auto-rows
43546
+ */
43547
+ 'auto-rows': [{
43548
+ 'auto-rows': scaleGridAutoColsRows()
43549
+ }],
43550
+ /**
43551
+ * Gap
43552
+ * @see https://tailwindcss.com/docs/gap
43553
+ */
43554
+ gap: [{
43555
+ gap: scaleUnambiguousSpacing()
43556
+ }],
43557
+ /**
43558
+ * Gap X
43559
+ * @see https://tailwindcss.com/docs/gap
43560
+ */
43561
+ 'gap-x': [{
43562
+ 'gap-x': scaleUnambiguousSpacing()
43563
+ }],
43564
+ /**
43565
+ * Gap Y
43566
+ * @see https://tailwindcss.com/docs/gap
43567
+ */
43568
+ 'gap-y': [{
43569
+ 'gap-y': scaleUnambiguousSpacing()
43570
+ }],
43571
+ /**
43572
+ * Justify Content
43573
+ * @see https://tailwindcss.com/docs/justify-content
43574
+ */
43575
+ 'justify-content': [{
43576
+ justify: [...scaleAlignPrimaryAxis(), 'normal']
43577
+ }],
43578
+ /**
43579
+ * Justify Items
43580
+ * @see https://tailwindcss.com/docs/justify-items
43581
+ */
43582
+ 'justify-items': [{
43583
+ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']
43584
+ }],
43585
+ /**
43586
+ * Justify Self
43587
+ * @see https://tailwindcss.com/docs/justify-self
43588
+ */
43589
+ 'justify-self': [{
43590
+ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]
43591
+ }],
43592
+ /**
43593
+ * Align Content
43594
+ * @see https://tailwindcss.com/docs/align-content
43595
+ */
43596
+ 'align-content': [{
43597
+ content: ['normal', ...scaleAlignPrimaryAxis()]
43598
+ }],
43599
+ /**
43600
+ * Align Items
43601
+ * @see https://tailwindcss.com/docs/align-items
43602
+ */
43603
+ 'align-items': [{
43604
+ items: [...scaleAlignSecondaryAxis(), {
43605
+ baseline: ['', 'last']
43606
+ }]
43607
+ }],
43608
+ /**
43609
+ * Align Self
43610
+ * @see https://tailwindcss.com/docs/align-self
43611
+ */
43612
+ 'align-self': [{
43613
+ self: ['auto', ...scaleAlignSecondaryAxis(), {
43614
+ baseline: ['', 'last']
43615
+ }]
43616
+ }],
43617
+ /**
43618
+ * Place Content
43619
+ * @see https://tailwindcss.com/docs/place-content
43620
+ */
43621
+ 'place-content': [{
43622
+ 'place-content': scaleAlignPrimaryAxis()
43623
+ }],
43624
+ /**
43625
+ * Place Items
43626
+ * @see https://tailwindcss.com/docs/place-items
43627
+ */
43628
+ 'place-items': [{
43629
+ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']
43630
+ }],
43631
+ /**
43632
+ * Place Self
43633
+ * @see https://tailwindcss.com/docs/place-self
43634
+ */
43635
+ 'place-self': [{
43636
+ 'place-self': ['auto', ...scaleAlignSecondaryAxis()]
43637
+ }],
43638
+ // Spacing
43639
+ /**
43640
+ * Padding
43641
+ * @see https://tailwindcss.com/docs/padding
43642
+ */
43643
+ p: [{
43644
+ p: scaleUnambiguousSpacing()
43645
+ }],
43646
+ /**
43647
+ * Padding X
43648
+ * @see https://tailwindcss.com/docs/padding
43649
+ */
43650
+ px: [{
43651
+ px: scaleUnambiguousSpacing()
43652
+ }],
43653
+ /**
43654
+ * Padding Y
43655
+ * @see https://tailwindcss.com/docs/padding
43656
+ */
43657
+ py: [{
43658
+ py: scaleUnambiguousSpacing()
43659
+ }],
43660
+ /**
43661
+ * Padding Start
43662
+ * @see https://tailwindcss.com/docs/padding
43663
+ */
43664
+ ps: [{
43665
+ ps: scaleUnambiguousSpacing()
43666
+ }],
43667
+ /**
43668
+ * Padding End
43669
+ * @see https://tailwindcss.com/docs/padding
43670
+ */
43671
+ pe: [{
43672
+ pe: scaleUnambiguousSpacing()
43673
+ }],
43674
+ /**
43675
+ * Padding Top
43676
+ * @see https://tailwindcss.com/docs/padding
43677
+ */
43678
+ pt: [{
43679
+ pt: scaleUnambiguousSpacing()
43680
+ }],
43681
+ /**
43682
+ * Padding Right
43683
+ * @see https://tailwindcss.com/docs/padding
43684
+ */
43685
+ pr: [{
43686
+ pr: scaleUnambiguousSpacing()
43687
+ }],
43688
+ /**
43689
+ * Padding Bottom
43690
+ * @see https://tailwindcss.com/docs/padding
43691
+ */
43692
+ pb: [{
43693
+ pb: scaleUnambiguousSpacing()
43694
+ }],
43695
+ /**
43696
+ * Padding Left
43697
+ * @see https://tailwindcss.com/docs/padding
43698
+ */
43699
+ pl: [{
43700
+ pl: scaleUnambiguousSpacing()
43701
+ }],
43702
+ /**
43703
+ * Margin
43704
+ * @see https://tailwindcss.com/docs/margin
43705
+ */
43706
+ m: [{
43707
+ m: scaleMargin()
43708
+ }],
43709
+ /**
43710
+ * Margin X
43711
+ * @see https://tailwindcss.com/docs/margin
43712
+ */
43713
+ mx: [{
43714
+ mx: scaleMargin()
43715
+ }],
43716
+ /**
43717
+ * Margin Y
43718
+ * @see https://tailwindcss.com/docs/margin
43719
+ */
43720
+ my: [{
43721
+ my: scaleMargin()
43722
+ }],
43723
+ /**
43724
+ * Margin Start
43725
+ * @see https://tailwindcss.com/docs/margin
43726
+ */
43727
+ ms: [{
43728
+ ms: scaleMargin()
43729
+ }],
43730
+ /**
43731
+ * Margin End
43732
+ * @see https://tailwindcss.com/docs/margin
43733
+ */
43734
+ me: [{
43735
+ me: scaleMargin()
43736
+ }],
43737
+ /**
43738
+ * Margin Top
43739
+ * @see https://tailwindcss.com/docs/margin
43740
+ */
43741
+ mt: [{
43742
+ mt: scaleMargin()
43743
+ }],
43744
+ /**
43745
+ * Margin Right
43746
+ * @see https://tailwindcss.com/docs/margin
43747
+ */
43748
+ mr: [{
43749
+ mr: scaleMargin()
43750
+ }],
43751
+ /**
43752
+ * Margin Bottom
43753
+ * @see https://tailwindcss.com/docs/margin
43754
+ */
43755
+ mb: [{
43756
+ mb: scaleMargin()
43757
+ }],
43758
+ /**
43759
+ * Margin Left
43760
+ * @see https://tailwindcss.com/docs/margin
43761
+ */
43762
+ ml: [{
43763
+ ml: scaleMargin()
43764
+ }],
43765
+ /**
43766
+ * Space Between X
43767
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
43768
+ */
43769
+ 'space-x': [{
43770
+ 'space-x': scaleUnambiguousSpacing()
43771
+ }],
43772
+ /**
43773
+ * Space Between X Reverse
43774
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
43775
+ */
43776
+ 'space-x-reverse': ['space-x-reverse'],
43777
+ /**
43778
+ * Space Between Y
43779
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
43780
+ */
43781
+ 'space-y': [{
43782
+ 'space-y': scaleUnambiguousSpacing()
43783
+ }],
43784
+ /**
43785
+ * Space Between Y Reverse
43786
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
43787
+ */
43788
+ 'space-y-reverse': ['space-y-reverse'],
43789
+ // --------------
43790
+ // --- Sizing ---
43791
+ // --------------
43792
+ /**
43793
+ * Size
43794
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
43795
+ */
43796
+ size: [{
43797
+ size: scaleSizing()
43798
+ }],
43799
+ /**
43800
+ * Width
43801
+ * @see https://tailwindcss.com/docs/width
43802
+ */
43803
+ w: [{
43804
+ w: [themeContainer, 'screen', ...scaleSizing()]
43805
+ }],
43806
+ /**
43807
+ * Min-Width
43808
+ * @see https://tailwindcss.com/docs/min-width
43809
+ */
43810
+ 'min-w': [{
43811
+ 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
43812
+ 'none', ...scaleSizing()]
43813
+ }],
43814
+ /**
43815
+ * Max-Width
43816
+ * @see https://tailwindcss.com/docs/max-width
43817
+ */
43818
+ 'max-w': [{
43819
+ 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
43820
+ 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
43821
+ {
43822
+ screen: [themeBreakpoint]
43823
+ }, ...scaleSizing()]
43824
+ }],
43825
+ /**
43826
+ * Height
43827
+ * @see https://tailwindcss.com/docs/height
43828
+ */
43829
+ h: [{
43830
+ h: ['screen', 'lh', ...scaleSizing()]
43831
+ }],
43832
+ /**
43833
+ * Min-Height
43834
+ * @see https://tailwindcss.com/docs/min-height
43835
+ */
43836
+ 'min-h': [{
43837
+ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]
43838
+ }],
43839
+ /**
43840
+ * Max-Height
43841
+ * @see https://tailwindcss.com/docs/max-height
43842
+ */
43843
+ 'max-h': [{
43844
+ 'max-h': ['screen', 'lh', ...scaleSizing()]
43845
+ }],
43846
+ // ------------------
43847
+ // --- Typography ---
43848
+ // ------------------
43849
+ /**
43850
+ * Font Size
43851
+ * @see https://tailwindcss.com/docs/font-size
43852
+ */
43853
+ 'font-size': [{
43854
+ text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]
43855
+ }],
43856
+ /**
43857
+ * Font Smoothing
43858
+ * @see https://tailwindcss.com/docs/font-smoothing
43859
+ */
43860
+ 'font-smoothing': ['antialiased', 'subpixel-antialiased'],
43861
+ /**
43862
+ * Font Style
43863
+ * @see https://tailwindcss.com/docs/font-style
43864
+ */
43865
+ 'font-style': ['italic', 'not-italic'],
43866
+ /**
43867
+ * Font Weight
43868
+ * @see https://tailwindcss.com/docs/font-weight
43869
+ */
43870
+ 'font-weight': [{
43871
+ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
43872
+ }],
43873
+ /**
43874
+ * Font Stretch
43875
+ * @see https://tailwindcss.com/docs/font-stretch
43876
+ */
43877
+ 'font-stretch': [{
43878
+ 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]
43879
+ }],
43880
+ /**
43881
+ * Font Family
43882
+ * @see https://tailwindcss.com/docs/font-family
43883
+ */
43884
+ 'font-family': [{
43885
+ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
43886
+ }],
43887
+ /**
43888
+ * Font Variant Numeric
43889
+ * @see https://tailwindcss.com/docs/font-variant-numeric
43890
+ */
43891
+ 'fvn-normal': ['normal-nums'],
43892
+ /**
43893
+ * Font Variant Numeric
43894
+ * @see https://tailwindcss.com/docs/font-variant-numeric
43895
+ */
43896
+ 'fvn-ordinal': ['ordinal'],
43897
+ /**
43898
+ * Font Variant Numeric
43899
+ * @see https://tailwindcss.com/docs/font-variant-numeric
43900
+ */
43901
+ 'fvn-slashed-zero': ['slashed-zero'],
43902
+ /**
43903
+ * Font Variant Numeric
43904
+ * @see https://tailwindcss.com/docs/font-variant-numeric
43905
+ */
43906
+ 'fvn-figure': ['lining-nums', 'oldstyle-nums'],
43907
+ /**
43908
+ * Font Variant Numeric
43909
+ * @see https://tailwindcss.com/docs/font-variant-numeric
43910
+ */
43911
+ 'fvn-spacing': ['proportional-nums', 'tabular-nums'],
43912
+ /**
43913
+ * Font Variant Numeric
43914
+ * @see https://tailwindcss.com/docs/font-variant-numeric
43915
+ */
43916
+ 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],
43917
+ /**
43918
+ * Letter Spacing
43919
+ * @see https://tailwindcss.com/docs/letter-spacing
43920
+ */
43921
+ tracking: [{
43922
+ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
43923
+ }],
43924
+ /**
43925
+ * Line Clamp
43926
+ * @see https://tailwindcss.com/docs/line-clamp
43927
+ */
43928
+ 'line-clamp': [{
43929
+ 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]
43930
+ }],
43931
+ /**
43932
+ * Line Height
43933
+ * @see https://tailwindcss.com/docs/line-height
43934
+ */
43935
+ leading: [{
43936
+ leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
43937
+ themeLeading, ...scaleUnambiguousSpacing()]
43938
+ }],
43939
+ /**
43940
+ * List Style Image
43941
+ * @see https://tailwindcss.com/docs/list-style-image
43942
+ */
43943
+ 'list-image': [{
43944
+ 'list-image': ['none', isArbitraryVariable, isArbitraryValue]
43945
+ }],
43946
+ /**
43947
+ * List Style Position
43948
+ * @see https://tailwindcss.com/docs/list-style-position
43949
+ */
43950
+ 'list-style-position': [{
43951
+ list: ['inside', 'outside']
43952
+ }],
43953
+ /**
43954
+ * List Style Type
43955
+ * @see https://tailwindcss.com/docs/list-style-type
43956
+ */
43957
+ 'list-style-type': [{
43958
+ list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]
43959
+ }],
43960
+ /**
43961
+ * Text Alignment
43962
+ * @see https://tailwindcss.com/docs/text-align
43963
+ */
43964
+ 'text-alignment': [{
43965
+ text: ['left', 'center', 'right', 'justify', 'start', 'end']
43966
+ }],
43967
+ /**
43968
+ * Placeholder Color
43969
+ * @deprecated since Tailwind CSS v3.0.0
43970
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
43971
+ */
43972
+ 'placeholder-color': [{
43973
+ placeholder: scaleColor()
43974
+ }],
43975
+ /**
43976
+ * Text Color
43977
+ * @see https://tailwindcss.com/docs/text-color
43978
+ */
43979
+ 'text-color': [{
43980
+ text: scaleColor()
43981
+ }],
43982
+ /**
43983
+ * Text Decoration
43984
+ * @see https://tailwindcss.com/docs/text-decoration
43985
+ */
43986
+ 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],
43987
+ /**
43988
+ * Text Decoration Style
43989
+ * @see https://tailwindcss.com/docs/text-decoration-style
43990
+ */
43991
+ 'text-decoration-style': [{
43992
+ decoration: [...scaleLineStyle(), 'wavy']
43993
+ }],
43994
+ /**
43995
+ * Text Decoration Thickness
43996
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
43997
+ */
43998
+ 'text-decoration-thickness': [{
43999
+ decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]
44000
+ }],
44001
+ /**
44002
+ * Text Decoration Color
44003
+ * @see https://tailwindcss.com/docs/text-decoration-color
44004
+ */
44005
+ 'text-decoration-color': [{
44006
+ decoration: scaleColor()
44007
+ }],
44008
+ /**
44009
+ * Text Underline Offset
44010
+ * @see https://tailwindcss.com/docs/text-underline-offset
44011
+ */
44012
+ 'underline-offset': [{
44013
+ 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]
44014
+ }],
44015
+ /**
44016
+ * Text Transform
44017
+ * @see https://tailwindcss.com/docs/text-transform
44018
+ */
44019
+ 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],
44020
+ /**
44021
+ * Text Overflow
44022
+ * @see https://tailwindcss.com/docs/text-overflow
44023
+ */
44024
+ 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],
44025
+ /**
44026
+ * Text Wrap
44027
+ * @see https://tailwindcss.com/docs/text-wrap
44028
+ */
44029
+ 'text-wrap': [{
44030
+ text: ['wrap', 'nowrap', 'balance', 'pretty']
44031
+ }],
44032
+ /**
44033
+ * Text Indent
44034
+ * @see https://tailwindcss.com/docs/text-indent
44035
+ */
44036
+ indent: [{
44037
+ indent: scaleUnambiguousSpacing()
44038
+ }],
44039
+ /**
44040
+ * Vertical Alignment
44041
+ * @see https://tailwindcss.com/docs/vertical-align
44042
+ */
44043
+ 'vertical-align': [{
44044
+ align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]
44045
+ }],
44046
+ /**
44047
+ * Whitespace
44048
+ * @see https://tailwindcss.com/docs/whitespace
44049
+ */
44050
+ whitespace: [{
44051
+ whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']
44052
+ }],
44053
+ /**
44054
+ * Word Break
44055
+ * @see https://tailwindcss.com/docs/word-break
44056
+ */
44057
+ break: [{
44058
+ break: ['normal', 'words', 'all', 'keep']
44059
+ }],
44060
+ /**
44061
+ * Overflow Wrap
44062
+ * @see https://tailwindcss.com/docs/overflow-wrap
44063
+ */
44064
+ wrap: [{
44065
+ wrap: ['break-word', 'anywhere', 'normal']
44066
+ }],
44067
+ /**
44068
+ * Hyphens
44069
+ * @see https://tailwindcss.com/docs/hyphens
44070
+ */
44071
+ hyphens: [{
44072
+ hyphens: ['none', 'manual', 'auto']
44073
+ }],
44074
+ /**
44075
+ * Content
44076
+ * @see https://tailwindcss.com/docs/content
44077
+ */
44078
+ content: [{
44079
+ content: ['none', isArbitraryVariable, isArbitraryValue]
44080
+ }],
44081
+ // -------------------
44082
+ // --- Backgrounds ---
44083
+ // -------------------
44084
+ /**
44085
+ * Background Attachment
44086
+ * @see https://tailwindcss.com/docs/background-attachment
44087
+ */
44088
+ 'bg-attachment': [{
44089
+ bg: ['fixed', 'local', 'scroll']
44090
+ }],
44091
+ /**
44092
+ * Background Clip
44093
+ * @see https://tailwindcss.com/docs/background-clip
44094
+ */
44095
+ 'bg-clip': [{
44096
+ 'bg-clip': ['border', 'padding', 'content', 'text']
44097
+ }],
44098
+ /**
44099
+ * Background Origin
44100
+ * @see https://tailwindcss.com/docs/background-origin
44101
+ */
44102
+ 'bg-origin': [{
44103
+ 'bg-origin': ['border', 'padding', 'content']
44104
+ }],
44105
+ /**
44106
+ * Background Position
44107
+ * @see https://tailwindcss.com/docs/background-position
44108
+ */
44109
+ 'bg-position': [{
44110
+ bg: scaleBgPosition()
44111
+ }],
44112
+ /**
44113
+ * Background Repeat
44114
+ * @see https://tailwindcss.com/docs/background-repeat
44115
+ */
44116
+ 'bg-repeat': [{
44117
+ bg: scaleBgRepeat()
44118
+ }],
44119
+ /**
44120
+ * Background Size
44121
+ * @see https://tailwindcss.com/docs/background-size
44122
+ */
44123
+ 'bg-size': [{
44124
+ bg: scaleBgSize()
44125
+ }],
44126
+ /**
44127
+ * Background Image
44128
+ * @see https://tailwindcss.com/docs/background-image
44129
+ */
44130
+ 'bg-image': [{
44131
+ bg: ['none', {
44132
+ linear: [{
44133
+ to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']
44134
+ }, isInteger, isArbitraryVariable, isArbitraryValue],
44135
+ radial: ['', isArbitraryVariable, isArbitraryValue],
44136
+ conic: [isInteger, isArbitraryVariable, isArbitraryValue]
44137
+ }, isArbitraryVariableImage, isArbitraryImage]
44138
+ }],
44139
+ /**
44140
+ * Background Color
44141
+ * @see https://tailwindcss.com/docs/background-color
44142
+ */
44143
+ 'bg-color': [{
44144
+ bg: scaleColor()
44145
+ }],
44146
+ /**
44147
+ * Gradient Color Stops From Position
44148
+ * @see https://tailwindcss.com/docs/gradient-color-stops
44149
+ */
44150
+ 'gradient-from-pos': [{
44151
+ from: scaleGradientStopPosition()
44152
+ }],
44153
+ /**
44154
+ * Gradient Color Stops Via Position
44155
+ * @see https://tailwindcss.com/docs/gradient-color-stops
44156
+ */
44157
+ 'gradient-via-pos': [{
44158
+ via: scaleGradientStopPosition()
44159
+ }],
44160
+ /**
44161
+ * Gradient Color Stops To Position
44162
+ * @see https://tailwindcss.com/docs/gradient-color-stops
44163
+ */
44164
+ 'gradient-to-pos': [{
44165
+ to: scaleGradientStopPosition()
44166
+ }],
44167
+ /**
44168
+ * Gradient Color Stops From
44169
+ * @see https://tailwindcss.com/docs/gradient-color-stops
44170
+ */
44171
+ 'gradient-from': [{
44172
+ from: scaleColor()
44173
+ }],
44174
+ /**
44175
+ * Gradient Color Stops Via
44176
+ * @see https://tailwindcss.com/docs/gradient-color-stops
44177
+ */
44178
+ 'gradient-via': [{
44179
+ via: scaleColor()
44180
+ }],
44181
+ /**
44182
+ * Gradient Color Stops To
44183
+ * @see https://tailwindcss.com/docs/gradient-color-stops
44184
+ */
44185
+ 'gradient-to': [{
44186
+ to: scaleColor()
44187
+ }],
44188
+ // ---------------
44189
+ // --- Borders ---
44190
+ // ---------------
44191
+ /**
44192
+ * Border Radius
44193
+ * @see https://tailwindcss.com/docs/border-radius
44194
+ */
44195
+ rounded: [{
44196
+ rounded: scaleRadius()
44197
+ }],
44198
+ /**
44199
+ * Border Radius Start
44200
+ * @see https://tailwindcss.com/docs/border-radius
44201
+ */
44202
+ 'rounded-s': [{
44203
+ 'rounded-s': scaleRadius()
44204
+ }],
44205
+ /**
44206
+ * Border Radius End
44207
+ * @see https://tailwindcss.com/docs/border-radius
44208
+ */
44209
+ 'rounded-e': [{
44210
+ 'rounded-e': scaleRadius()
44211
+ }],
44212
+ /**
44213
+ * Border Radius Top
44214
+ * @see https://tailwindcss.com/docs/border-radius
44215
+ */
44216
+ 'rounded-t': [{
44217
+ 'rounded-t': scaleRadius()
44218
+ }],
44219
+ /**
44220
+ * Border Radius Right
44221
+ * @see https://tailwindcss.com/docs/border-radius
44222
+ */
44223
+ 'rounded-r': [{
44224
+ 'rounded-r': scaleRadius()
44225
+ }],
44226
+ /**
44227
+ * Border Radius Bottom
44228
+ * @see https://tailwindcss.com/docs/border-radius
44229
+ */
44230
+ 'rounded-b': [{
44231
+ 'rounded-b': scaleRadius()
44232
+ }],
44233
+ /**
44234
+ * Border Radius Left
44235
+ * @see https://tailwindcss.com/docs/border-radius
44236
+ */
44237
+ 'rounded-l': [{
44238
+ 'rounded-l': scaleRadius()
44239
+ }],
44240
+ /**
44241
+ * Border Radius Start Start
44242
+ * @see https://tailwindcss.com/docs/border-radius
44243
+ */
44244
+ 'rounded-ss': [{
44245
+ 'rounded-ss': scaleRadius()
44246
+ }],
44247
+ /**
44248
+ * Border Radius Start End
44249
+ * @see https://tailwindcss.com/docs/border-radius
44250
+ */
44251
+ 'rounded-se': [{
44252
+ 'rounded-se': scaleRadius()
44253
+ }],
44254
+ /**
44255
+ * Border Radius End End
44256
+ * @see https://tailwindcss.com/docs/border-radius
44257
+ */
44258
+ 'rounded-ee': [{
44259
+ 'rounded-ee': scaleRadius()
44260
+ }],
44261
+ /**
44262
+ * Border Radius End Start
44263
+ * @see https://tailwindcss.com/docs/border-radius
44264
+ */
44265
+ 'rounded-es': [{
44266
+ 'rounded-es': scaleRadius()
44267
+ }],
44268
+ /**
44269
+ * Border Radius Top Left
44270
+ * @see https://tailwindcss.com/docs/border-radius
44271
+ */
44272
+ 'rounded-tl': [{
44273
+ 'rounded-tl': scaleRadius()
44274
+ }],
44275
+ /**
44276
+ * Border Radius Top Right
44277
+ * @see https://tailwindcss.com/docs/border-radius
44278
+ */
44279
+ 'rounded-tr': [{
44280
+ 'rounded-tr': scaleRadius()
44281
+ }],
44282
+ /**
44283
+ * Border Radius Bottom Right
44284
+ * @see https://tailwindcss.com/docs/border-radius
44285
+ */
44286
+ 'rounded-br': [{
44287
+ 'rounded-br': scaleRadius()
44288
+ }],
44289
+ /**
44290
+ * Border Radius Bottom Left
44291
+ * @see https://tailwindcss.com/docs/border-radius
44292
+ */
44293
+ 'rounded-bl': [{
44294
+ 'rounded-bl': scaleRadius()
44295
+ }],
44296
+ /**
44297
+ * Border Width
44298
+ * @see https://tailwindcss.com/docs/border-width
44299
+ */
44300
+ 'border-w': [{
44301
+ border: scaleBorderWidth()
44302
+ }],
44303
+ /**
44304
+ * Border Width X
44305
+ * @see https://tailwindcss.com/docs/border-width
44306
+ */
44307
+ 'border-w-x': [{
44308
+ 'border-x': scaleBorderWidth()
44309
+ }],
44310
+ /**
44311
+ * Border Width Y
44312
+ * @see https://tailwindcss.com/docs/border-width
44313
+ */
44314
+ 'border-w-y': [{
44315
+ 'border-y': scaleBorderWidth()
44316
+ }],
44317
+ /**
44318
+ * Border Width Start
44319
+ * @see https://tailwindcss.com/docs/border-width
44320
+ */
44321
+ 'border-w-s': [{
44322
+ 'border-s': scaleBorderWidth()
44323
+ }],
44324
+ /**
44325
+ * Border Width End
44326
+ * @see https://tailwindcss.com/docs/border-width
44327
+ */
44328
+ 'border-w-e': [{
44329
+ 'border-e': scaleBorderWidth()
44330
+ }],
44331
+ /**
44332
+ * Border Width Top
44333
+ * @see https://tailwindcss.com/docs/border-width
44334
+ */
44335
+ 'border-w-t': [{
44336
+ 'border-t': scaleBorderWidth()
44337
+ }],
44338
+ /**
44339
+ * Border Width Right
44340
+ * @see https://tailwindcss.com/docs/border-width
44341
+ */
44342
+ 'border-w-r': [{
44343
+ 'border-r': scaleBorderWidth()
44344
+ }],
44345
+ /**
44346
+ * Border Width Bottom
44347
+ * @see https://tailwindcss.com/docs/border-width
44348
+ */
44349
+ 'border-w-b': [{
44350
+ 'border-b': scaleBorderWidth()
44351
+ }],
44352
+ /**
44353
+ * Border Width Left
44354
+ * @see https://tailwindcss.com/docs/border-width
44355
+ */
44356
+ 'border-w-l': [{
44357
+ 'border-l': scaleBorderWidth()
44358
+ }],
44359
+ /**
44360
+ * Divide Width X
44361
+ * @see https://tailwindcss.com/docs/border-width#between-children
44362
+ */
44363
+ 'divide-x': [{
44364
+ 'divide-x': scaleBorderWidth()
44365
+ }],
44366
+ /**
44367
+ * Divide Width X Reverse
44368
+ * @see https://tailwindcss.com/docs/border-width#between-children
44369
+ */
44370
+ 'divide-x-reverse': ['divide-x-reverse'],
44371
+ /**
44372
+ * Divide Width Y
44373
+ * @see https://tailwindcss.com/docs/border-width#between-children
44374
+ */
44375
+ 'divide-y': [{
44376
+ 'divide-y': scaleBorderWidth()
44377
+ }],
44378
+ /**
44379
+ * Divide Width Y Reverse
44380
+ * @see https://tailwindcss.com/docs/border-width#between-children
44381
+ */
44382
+ 'divide-y-reverse': ['divide-y-reverse'],
44383
+ /**
44384
+ * Border Style
44385
+ * @see https://tailwindcss.com/docs/border-style
44386
+ */
44387
+ 'border-style': [{
44388
+ border: [...scaleLineStyle(), 'hidden', 'none']
44389
+ }],
44390
+ /**
44391
+ * Divide Style
44392
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
44393
+ */
44394
+ 'divide-style': [{
44395
+ divide: [...scaleLineStyle(), 'hidden', 'none']
44396
+ }],
44397
+ /**
44398
+ * Border Color
44399
+ * @see https://tailwindcss.com/docs/border-color
44400
+ */
44401
+ 'border-color': [{
44402
+ border: scaleColor()
44403
+ }],
44404
+ /**
44405
+ * Border Color X
44406
+ * @see https://tailwindcss.com/docs/border-color
44407
+ */
44408
+ 'border-color-x': [{
44409
+ 'border-x': scaleColor()
44410
+ }],
44411
+ /**
44412
+ * Border Color Y
44413
+ * @see https://tailwindcss.com/docs/border-color
44414
+ */
44415
+ 'border-color-y': [{
44416
+ 'border-y': scaleColor()
44417
+ }],
44418
+ /**
44419
+ * Border Color S
44420
+ * @see https://tailwindcss.com/docs/border-color
44421
+ */
44422
+ 'border-color-s': [{
44423
+ 'border-s': scaleColor()
44424
+ }],
44425
+ /**
44426
+ * Border Color E
44427
+ * @see https://tailwindcss.com/docs/border-color
44428
+ */
44429
+ 'border-color-e': [{
44430
+ 'border-e': scaleColor()
44431
+ }],
44432
+ /**
44433
+ * Border Color Top
44434
+ * @see https://tailwindcss.com/docs/border-color
44435
+ */
44436
+ 'border-color-t': [{
44437
+ 'border-t': scaleColor()
44438
+ }],
44439
+ /**
44440
+ * Border Color Right
44441
+ * @see https://tailwindcss.com/docs/border-color
44442
+ */
44443
+ 'border-color-r': [{
44444
+ 'border-r': scaleColor()
44445
+ }],
44446
+ /**
44447
+ * Border Color Bottom
44448
+ * @see https://tailwindcss.com/docs/border-color
44449
+ */
44450
+ 'border-color-b': [{
44451
+ 'border-b': scaleColor()
44452
+ }],
44453
+ /**
44454
+ * Border Color Left
44455
+ * @see https://tailwindcss.com/docs/border-color
44456
+ */
44457
+ 'border-color-l': [{
44458
+ 'border-l': scaleColor()
44459
+ }],
44460
+ /**
44461
+ * Divide Color
44462
+ * @see https://tailwindcss.com/docs/divide-color
44463
+ */
44464
+ 'divide-color': [{
44465
+ divide: scaleColor()
44466
+ }],
44467
+ /**
44468
+ * Outline Style
44469
+ * @see https://tailwindcss.com/docs/outline-style
44470
+ */
44471
+ 'outline-style': [{
44472
+ outline: [...scaleLineStyle(), 'none', 'hidden']
44473
+ }],
44474
+ /**
44475
+ * Outline Offset
44476
+ * @see https://tailwindcss.com/docs/outline-offset
44477
+ */
44478
+ 'outline-offset': [{
44479
+ 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]
44480
+ }],
44481
+ /**
44482
+ * Outline Width
44483
+ * @see https://tailwindcss.com/docs/outline-width
44484
+ */
44485
+ 'outline-w': [{
44486
+ outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]
44487
+ }],
44488
+ /**
44489
+ * Outline Color
44490
+ * @see https://tailwindcss.com/docs/outline-color
44491
+ */
44492
+ 'outline-color': [{
44493
+ outline: scaleColor()
44494
+ }],
44495
+ // ---------------
44496
+ // --- Effects ---
44497
+ // ---------------
44498
+ /**
44499
+ * Box Shadow
44500
+ * @see https://tailwindcss.com/docs/box-shadow
44501
+ */
44502
+ shadow: [{
44503
+ shadow: [
44504
+ // Deprecated since Tailwind CSS v4.0.0
44505
+ '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]
44506
+ }],
44507
+ /**
44508
+ * Box Shadow Color
44509
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
44510
+ */
44511
+ 'shadow-color': [{
44512
+ shadow: scaleColor()
44513
+ }],
44514
+ /**
44515
+ * Inset Box Shadow
44516
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
44517
+ */
44518
+ 'inset-shadow': [{
44519
+ 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
44520
+ }],
44521
+ /**
44522
+ * Inset Box Shadow Color
44523
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
44524
+ */
44525
+ 'inset-shadow-color': [{
44526
+ 'inset-shadow': scaleColor()
44527
+ }],
44528
+ /**
44529
+ * Ring Width
44530
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
44531
+ */
44532
+ 'ring-w': [{
44533
+ ring: scaleBorderWidth()
44534
+ }],
44535
+ /**
44536
+ * Ring Width Inset
44537
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
44538
+ * @deprecated since Tailwind CSS v4.0.0
44539
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
44540
+ */
44541
+ 'ring-w-inset': ['ring-inset'],
44542
+ /**
44543
+ * Ring Color
44544
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
44545
+ */
44546
+ 'ring-color': [{
44547
+ ring: scaleColor()
44548
+ }],
44549
+ /**
44550
+ * Ring Offset Width
44551
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
44552
+ * @deprecated since Tailwind CSS v4.0.0
44553
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
44554
+ */
44555
+ 'ring-offset-w': [{
44556
+ 'ring-offset': [isNumber, isArbitraryLength]
44557
+ }],
44558
+ /**
44559
+ * Ring Offset Color
44560
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
44561
+ * @deprecated since Tailwind CSS v4.0.0
44562
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
44563
+ */
44564
+ 'ring-offset-color': [{
44565
+ 'ring-offset': scaleColor()
44566
+ }],
44567
+ /**
44568
+ * Inset Ring Width
44569
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
44570
+ */
44571
+ 'inset-ring-w': [{
44572
+ 'inset-ring': scaleBorderWidth()
44573
+ }],
44574
+ /**
44575
+ * Inset Ring Color
44576
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
44577
+ */
44578
+ 'inset-ring-color': [{
44579
+ 'inset-ring': scaleColor()
44580
+ }],
44581
+ /**
44582
+ * Text Shadow
44583
+ * @see https://tailwindcss.com/docs/text-shadow
44584
+ */
44585
+ 'text-shadow': [{
44586
+ 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
44587
+ }],
44588
+ /**
44589
+ * Text Shadow Color
44590
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
44591
+ */
44592
+ 'text-shadow-color': [{
44593
+ 'text-shadow': scaleColor()
44594
+ }],
44595
+ /**
44596
+ * Opacity
44597
+ * @see https://tailwindcss.com/docs/opacity
44598
+ */
44599
+ opacity: [{
44600
+ opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
44601
+ }],
44602
+ /**
44603
+ * Mix Blend Mode
44604
+ * @see https://tailwindcss.com/docs/mix-blend-mode
44605
+ */
44606
+ 'mix-blend': [{
44607
+ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']
44608
+ }],
44609
+ /**
44610
+ * Background Blend Mode
44611
+ * @see https://tailwindcss.com/docs/background-blend-mode
44612
+ */
44613
+ 'bg-blend': [{
44614
+ 'bg-blend': scaleBlendMode()
44615
+ }],
44616
+ /**
44617
+ * Mask Clip
44618
+ * @see https://tailwindcss.com/docs/mask-clip
44619
+ */
44620
+ 'mask-clip': [{
44621
+ 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']
44622
+ }, 'mask-no-clip'],
44623
+ /**
44624
+ * Mask Composite
44625
+ * @see https://tailwindcss.com/docs/mask-composite
44626
+ */
44627
+ 'mask-composite': [{
44628
+ mask: ['add', 'subtract', 'intersect', 'exclude']
44629
+ }],
44630
+ /**
44631
+ * Mask Image
44632
+ * @see https://tailwindcss.com/docs/mask-image
44633
+ */
44634
+ 'mask-image-linear-pos': [{
44635
+ 'mask-linear': [isNumber]
44636
+ }],
44637
+ 'mask-image-linear-from-pos': [{
44638
+ 'mask-linear-from': scaleMaskImagePosition()
44639
+ }],
44640
+ 'mask-image-linear-to-pos': [{
44641
+ 'mask-linear-to': scaleMaskImagePosition()
44642
+ }],
44643
+ 'mask-image-linear-from-color': [{
44644
+ 'mask-linear-from': scaleColor()
44645
+ }],
44646
+ 'mask-image-linear-to-color': [{
44647
+ 'mask-linear-to': scaleColor()
44648
+ }],
44649
+ 'mask-image-t-from-pos': [{
44650
+ 'mask-t-from': scaleMaskImagePosition()
44651
+ }],
44652
+ 'mask-image-t-to-pos': [{
44653
+ 'mask-t-to': scaleMaskImagePosition()
44654
+ }],
44655
+ 'mask-image-t-from-color': [{
44656
+ 'mask-t-from': scaleColor()
44657
+ }],
44658
+ 'mask-image-t-to-color': [{
44659
+ 'mask-t-to': scaleColor()
44660
+ }],
44661
+ 'mask-image-r-from-pos': [{
44662
+ 'mask-r-from': scaleMaskImagePosition()
44663
+ }],
44664
+ 'mask-image-r-to-pos': [{
44665
+ 'mask-r-to': scaleMaskImagePosition()
44666
+ }],
44667
+ 'mask-image-r-from-color': [{
44668
+ 'mask-r-from': scaleColor()
44669
+ }],
44670
+ 'mask-image-r-to-color': [{
44671
+ 'mask-r-to': scaleColor()
44672
+ }],
44673
+ 'mask-image-b-from-pos': [{
44674
+ 'mask-b-from': scaleMaskImagePosition()
44675
+ }],
44676
+ 'mask-image-b-to-pos': [{
44677
+ 'mask-b-to': scaleMaskImagePosition()
44678
+ }],
44679
+ 'mask-image-b-from-color': [{
44680
+ 'mask-b-from': scaleColor()
44681
+ }],
44682
+ 'mask-image-b-to-color': [{
44683
+ 'mask-b-to': scaleColor()
44684
+ }],
44685
+ 'mask-image-l-from-pos': [{
44686
+ 'mask-l-from': scaleMaskImagePosition()
44687
+ }],
44688
+ 'mask-image-l-to-pos': [{
44689
+ 'mask-l-to': scaleMaskImagePosition()
44690
+ }],
44691
+ 'mask-image-l-from-color': [{
44692
+ 'mask-l-from': scaleColor()
44693
+ }],
44694
+ 'mask-image-l-to-color': [{
44695
+ 'mask-l-to': scaleColor()
44696
+ }],
44697
+ 'mask-image-x-from-pos': [{
44698
+ 'mask-x-from': scaleMaskImagePosition()
44699
+ }],
44700
+ 'mask-image-x-to-pos': [{
44701
+ 'mask-x-to': scaleMaskImagePosition()
44702
+ }],
44703
+ 'mask-image-x-from-color': [{
44704
+ 'mask-x-from': scaleColor()
44705
+ }],
44706
+ 'mask-image-x-to-color': [{
44707
+ 'mask-x-to': scaleColor()
44708
+ }],
44709
+ 'mask-image-y-from-pos': [{
44710
+ 'mask-y-from': scaleMaskImagePosition()
44711
+ }],
44712
+ 'mask-image-y-to-pos': [{
44713
+ 'mask-y-to': scaleMaskImagePosition()
44714
+ }],
44715
+ 'mask-image-y-from-color': [{
44716
+ 'mask-y-from': scaleColor()
44717
+ }],
44718
+ 'mask-image-y-to-color': [{
44719
+ 'mask-y-to': scaleColor()
44720
+ }],
44721
+ 'mask-image-radial': [{
44722
+ 'mask-radial': [isArbitraryVariable, isArbitraryValue]
44723
+ }],
44724
+ 'mask-image-radial-from-pos': [{
44725
+ 'mask-radial-from': scaleMaskImagePosition()
44726
+ }],
44727
+ 'mask-image-radial-to-pos': [{
44728
+ 'mask-radial-to': scaleMaskImagePosition()
44729
+ }],
44730
+ 'mask-image-radial-from-color': [{
44731
+ 'mask-radial-from': scaleColor()
44732
+ }],
44733
+ 'mask-image-radial-to-color': [{
44734
+ 'mask-radial-to': scaleColor()
44735
+ }],
44736
+ 'mask-image-radial-shape': [{
44737
+ 'mask-radial': ['circle', 'ellipse']
44738
+ }],
44739
+ 'mask-image-radial-size': [{
44740
+ 'mask-radial': [{
44741
+ closest: ['side', 'corner'],
44742
+ farthest: ['side', 'corner']
44743
+ }]
44744
+ }],
44745
+ 'mask-image-radial-pos': [{
44746
+ 'mask-radial-at': scalePosition()
44747
+ }],
44748
+ 'mask-image-conic-pos': [{
44749
+ 'mask-conic': [isNumber]
44750
+ }],
44751
+ 'mask-image-conic-from-pos': [{
44752
+ 'mask-conic-from': scaleMaskImagePosition()
44753
+ }],
44754
+ 'mask-image-conic-to-pos': [{
44755
+ 'mask-conic-to': scaleMaskImagePosition()
44756
+ }],
44757
+ 'mask-image-conic-from-color': [{
44758
+ 'mask-conic-from': scaleColor()
44759
+ }],
44760
+ 'mask-image-conic-to-color': [{
44761
+ 'mask-conic-to': scaleColor()
44762
+ }],
44763
+ /**
44764
+ * Mask Mode
44765
+ * @see https://tailwindcss.com/docs/mask-mode
44766
+ */
44767
+ 'mask-mode': [{
44768
+ mask: ['alpha', 'luminance', 'match']
44769
+ }],
44770
+ /**
44771
+ * Mask Origin
44772
+ * @see https://tailwindcss.com/docs/mask-origin
44773
+ */
44774
+ 'mask-origin': [{
44775
+ 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']
44776
+ }],
44777
+ /**
44778
+ * Mask Position
44779
+ * @see https://tailwindcss.com/docs/mask-position
44780
+ */
44781
+ 'mask-position': [{
44782
+ mask: scaleBgPosition()
44783
+ }],
44784
+ /**
44785
+ * Mask Repeat
44786
+ * @see https://tailwindcss.com/docs/mask-repeat
44787
+ */
44788
+ 'mask-repeat': [{
44789
+ mask: scaleBgRepeat()
44790
+ }],
44791
+ /**
44792
+ * Mask Size
44793
+ * @see https://tailwindcss.com/docs/mask-size
44794
+ */
44795
+ 'mask-size': [{
44796
+ mask: scaleBgSize()
44797
+ }],
44798
+ /**
44799
+ * Mask Type
44800
+ * @see https://tailwindcss.com/docs/mask-type
44801
+ */
44802
+ 'mask-type': [{
44803
+ 'mask-type': ['alpha', 'luminance']
44804
+ }],
44805
+ /**
44806
+ * Mask Image
44807
+ * @see https://tailwindcss.com/docs/mask-image
44808
+ */
44809
+ 'mask-image': [{
44810
+ mask: ['none', isArbitraryVariable, isArbitraryValue]
44811
+ }],
44812
+ // ---------------
44813
+ // --- Filters ---
44814
+ // ---------------
44815
+ /**
44816
+ * Filter
44817
+ * @see https://tailwindcss.com/docs/filter
44818
+ */
44819
+ filter: [{
44820
+ filter: [
44821
+ // Deprecated since Tailwind CSS v3.0.0
44822
+ '', 'none', isArbitraryVariable, isArbitraryValue]
44823
+ }],
44824
+ /**
44825
+ * Blur
44826
+ * @see https://tailwindcss.com/docs/blur
44827
+ */
44828
+ blur: [{
44829
+ blur: scaleBlur()
44830
+ }],
44831
+ /**
44832
+ * Brightness
44833
+ * @see https://tailwindcss.com/docs/brightness
44834
+ */
44835
+ brightness: [{
44836
+ brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
44837
+ }],
44838
+ /**
44839
+ * Contrast
44840
+ * @see https://tailwindcss.com/docs/contrast
44841
+ */
44842
+ contrast: [{
44843
+ contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
44844
+ }],
44845
+ /**
44846
+ * Drop Shadow
44847
+ * @see https://tailwindcss.com/docs/drop-shadow
44848
+ */
44849
+ 'drop-shadow': [{
44850
+ 'drop-shadow': [
44851
+ // Deprecated since Tailwind CSS v4.0.0
44852
+ '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]
44853
+ }],
44854
+ /**
44855
+ * Drop Shadow Color
44856
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
44857
+ */
44858
+ 'drop-shadow-color': [{
44859
+ 'drop-shadow': scaleColor()
44860
+ }],
44861
+ /**
44862
+ * Grayscale
44863
+ * @see https://tailwindcss.com/docs/grayscale
44864
+ */
44865
+ grayscale: [{
44866
+ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]
44867
+ }],
44868
+ /**
44869
+ * Hue Rotate
44870
+ * @see https://tailwindcss.com/docs/hue-rotate
44871
+ */
44872
+ 'hue-rotate': [{
44873
+ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]
44874
+ }],
44875
+ /**
44876
+ * Invert
44877
+ * @see https://tailwindcss.com/docs/invert
44878
+ */
44879
+ invert: [{
44880
+ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]
44881
+ }],
44882
+ /**
44883
+ * Saturate
44884
+ * @see https://tailwindcss.com/docs/saturate
44885
+ */
44886
+ saturate: [{
44887
+ saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
44888
+ }],
44889
+ /**
44890
+ * Sepia
44891
+ * @see https://tailwindcss.com/docs/sepia
44892
+ */
44893
+ sepia: [{
44894
+ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]
44895
+ }],
44896
+ /**
44897
+ * Backdrop Filter
44898
+ * @see https://tailwindcss.com/docs/backdrop-filter
44899
+ */
44900
+ 'backdrop-filter': [{
44901
+ 'backdrop-filter': [
44902
+ // Deprecated since Tailwind CSS v3.0.0
44903
+ '', 'none', isArbitraryVariable, isArbitraryValue]
44904
+ }],
44905
+ /**
44906
+ * Backdrop Blur
44907
+ * @see https://tailwindcss.com/docs/backdrop-blur
44908
+ */
44909
+ 'backdrop-blur': [{
44910
+ 'backdrop-blur': scaleBlur()
44911
+ }],
44912
+ /**
44913
+ * Backdrop Brightness
44914
+ * @see https://tailwindcss.com/docs/backdrop-brightness
44915
+ */
44916
+ 'backdrop-brightness': [{
44917
+ 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]
44918
+ }],
44919
+ /**
44920
+ * Backdrop Contrast
44921
+ * @see https://tailwindcss.com/docs/backdrop-contrast
44922
+ */
44923
+ 'backdrop-contrast': [{
44924
+ 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]
44925
+ }],
44926
+ /**
44927
+ * Backdrop Grayscale
44928
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
44929
+ */
44930
+ 'backdrop-grayscale': [{
44931
+ 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]
44932
+ }],
44933
+ /**
44934
+ * Backdrop Hue Rotate
44935
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
44936
+ */
44937
+ 'backdrop-hue-rotate': [{
44938
+ 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]
44939
+ }],
44940
+ /**
44941
+ * Backdrop Invert
44942
+ * @see https://tailwindcss.com/docs/backdrop-invert
44943
+ */
44944
+ 'backdrop-invert': [{
44945
+ 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]
44946
+ }],
44947
+ /**
44948
+ * Backdrop Opacity
44949
+ * @see https://tailwindcss.com/docs/backdrop-opacity
44950
+ */
44951
+ 'backdrop-opacity': [{
44952
+ 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]
44953
+ }],
44954
+ /**
44955
+ * Backdrop Saturate
44956
+ * @see https://tailwindcss.com/docs/backdrop-saturate
44957
+ */
44958
+ 'backdrop-saturate': [{
44959
+ 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]
44960
+ }],
44961
+ /**
44962
+ * Backdrop Sepia
44963
+ * @see https://tailwindcss.com/docs/backdrop-sepia
44964
+ */
44965
+ 'backdrop-sepia': [{
44966
+ 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]
44967
+ }],
44968
+ // --------------
44969
+ // --- Tables ---
44970
+ // --------------
44971
+ /**
44972
+ * Border Collapse
44973
+ * @see https://tailwindcss.com/docs/border-collapse
44974
+ */
44975
+ 'border-collapse': [{
44976
+ border: ['collapse', 'separate']
44977
+ }],
44978
+ /**
44979
+ * Border Spacing
44980
+ * @see https://tailwindcss.com/docs/border-spacing
44981
+ */
44982
+ 'border-spacing': [{
44983
+ 'border-spacing': scaleUnambiguousSpacing()
44984
+ }],
44985
+ /**
44986
+ * Border Spacing X
44987
+ * @see https://tailwindcss.com/docs/border-spacing
44988
+ */
44989
+ 'border-spacing-x': [{
44990
+ 'border-spacing-x': scaleUnambiguousSpacing()
44991
+ }],
44992
+ /**
44993
+ * Border Spacing Y
44994
+ * @see https://tailwindcss.com/docs/border-spacing
44995
+ */
44996
+ 'border-spacing-y': [{
44997
+ 'border-spacing-y': scaleUnambiguousSpacing()
44998
+ }],
44999
+ /**
45000
+ * Table Layout
45001
+ * @see https://tailwindcss.com/docs/table-layout
45002
+ */
45003
+ 'table-layout': [{
45004
+ table: ['auto', 'fixed']
45005
+ }],
45006
+ /**
45007
+ * Caption Side
45008
+ * @see https://tailwindcss.com/docs/caption-side
45009
+ */
45010
+ caption: [{
45011
+ caption: ['top', 'bottom']
45012
+ }],
45013
+ // ---------------------------------
45014
+ // --- Transitions and Animation ---
45015
+ // ---------------------------------
45016
+ /**
45017
+ * Transition Property
45018
+ * @see https://tailwindcss.com/docs/transition-property
45019
+ */
45020
+ transition: [{
45021
+ transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]
45022
+ }],
45023
+ /**
45024
+ * Transition Behavior
45025
+ * @see https://tailwindcss.com/docs/transition-behavior
45026
+ */
45027
+ 'transition-behavior': [{
45028
+ transition: ['normal', 'discrete']
45029
+ }],
45030
+ /**
45031
+ * Transition Duration
45032
+ * @see https://tailwindcss.com/docs/transition-duration
45033
+ */
45034
+ duration: [{
45035
+ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]
45036
+ }],
45037
+ /**
45038
+ * Transition Timing Function
45039
+ * @see https://tailwindcss.com/docs/transition-timing-function
45040
+ */
45041
+ ease: [{
45042
+ ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]
45043
+ }],
45044
+ /**
45045
+ * Transition Delay
45046
+ * @see https://tailwindcss.com/docs/transition-delay
45047
+ */
45048
+ delay: [{
45049
+ delay: [isNumber, isArbitraryVariable, isArbitraryValue]
45050
+ }],
45051
+ /**
45052
+ * Animation
45053
+ * @see https://tailwindcss.com/docs/animation
45054
+ */
45055
+ animate: [{
45056
+ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]
45057
+ }],
45058
+ // ------------------
45059
+ // --- Transforms ---
45060
+ // ------------------
45061
+ /**
45062
+ * Backface Visibility
45063
+ * @see https://tailwindcss.com/docs/backface-visibility
45064
+ */
45065
+ backface: [{
45066
+ backface: ['hidden', 'visible']
45067
+ }],
45068
+ /**
45069
+ * Perspective
45070
+ * @see https://tailwindcss.com/docs/perspective
45071
+ */
45072
+ perspective: [{
45073
+ perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
45074
+ }],
45075
+ /**
45076
+ * Perspective Origin
45077
+ * @see https://tailwindcss.com/docs/perspective-origin
45078
+ */
45079
+ 'perspective-origin': [{
45080
+ 'perspective-origin': scalePositionWithArbitrary()
45081
+ }],
45082
+ /**
45083
+ * Rotate
45084
+ * @see https://tailwindcss.com/docs/rotate
45085
+ */
45086
+ rotate: [{
45087
+ rotate: scaleRotate()
45088
+ }],
45089
+ /**
45090
+ * Rotate X
45091
+ * @see https://tailwindcss.com/docs/rotate
45092
+ */
45093
+ 'rotate-x': [{
45094
+ 'rotate-x': scaleRotate()
45095
+ }],
45096
+ /**
45097
+ * Rotate Y
45098
+ * @see https://tailwindcss.com/docs/rotate
45099
+ */
45100
+ 'rotate-y': [{
45101
+ 'rotate-y': scaleRotate()
45102
+ }],
45103
+ /**
45104
+ * Rotate Z
45105
+ * @see https://tailwindcss.com/docs/rotate
45106
+ */
45107
+ 'rotate-z': [{
45108
+ 'rotate-z': scaleRotate()
45109
+ }],
45110
+ /**
45111
+ * Scale
45112
+ * @see https://tailwindcss.com/docs/scale
45113
+ */
45114
+ scale: [{
45115
+ scale: scaleScale()
45116
+ }],
45117
+ /**
45118
+ * Scale X
45119
+ * @see https://tailwindcss.com/docs/scale
45120
+ */
45121
+ 'scale-x': [{
45122
+ 'scale-x': scaleScale()
45123
+ }],
45124
+ /**
45125
+ * Scale Y
45126
+ * @see https://tailwindcss.com/docs/scale
45127
+ */
45128
+ 'scale-y': [{
45129
+ 'scale-y': scaleScale()
45130
+ }],
45131
+ /**
45132
+ * Scale Z
45133
+ * @see https://tailwindcss.com/docs/scale
45134
+ */
45135
+ 'scale-z': [{
45136
+ 'scale-z': scaleScale()
45137
+ }],
45138
+ /**
45139
+ * Scale 3D
45140
+ * @see https://tailwindcss.com/docs/scale
45141
+ */
45142
+ 'scale-3d': ['scale-3d'],
45143
+ /**
45144
+ * Skew
45145
+ * @see https://tailwindcss.com/docs/skew
45146
+ */
45147
+ skew: [{
45148
+ skew: scaleSkew()
45149
+ }],
45150
+ /**
45151
+ * Skew X
45152
+ * @see https://tailwindcss.com/docs/skew
45153
+ */
45154
+ 'skew-x': [{
45155
+ 'skew-x': scaleSkew()
45156
+ }],
45157
+ /**
45158
+ * Skew Y
45159
+ * @see https://tailwindcss.com/docs/skew
45160
+ */
45161
+ 'skew-y': [{
45162
+ 'skew-y': scaleSkew()
45163
+ }],
45164
+ /**
45165
+ * Transform
45166
+ * @see https://tailwindcss.com/docs/transform
45167
+ */
45168
+ transform: [{
45169
+ transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']
45170
+ }],
45171
+ /**
45172
+ * Transform Origin
45173
+ * @see https://tailwindcss.com/docs/transform-origin
45174
+ */
45175
+ 'transform-origin': [{
45176
+ origin: scalePositionWithArbitrary()
45177
+ }],
45178
+ /**
45179
+ * Transform Style
45180
+ * @see https://tailwindcss.com/docs/transform-style
45181
+ */
45182
+ 'transform-style': [{
45183
+ transform: ['3d', 'flat']
45184
+ }],
45185
+ /**
45186
+ * Translate
45187
+ * @see https://tailwindcss.com/docs/translate
45188
+ */
45189
+ translate: [{
45190
+ translate: scaleTranslate()
45191
+ }],
45192
+ /**
45193
+ * Translate X
45194
+ * @see https://tailwindcss.com/docs/translate
45195
+ */
45196
+ 'translate-x': [{
45197
+ 'translate-x': scaleTranslate()
45198
+ }],
45199
+ /**
45200
+ * Translate Y
45201
+ * @see https://tailwindcss.com/docs/translate
45202
+ */
45203
+ 'translate-y': [{
45204
+ 'translate-y': scaleTranslate()
45205
+ }],
45206
+ /**
45207
+ * Translate Z
45208
+ * @see https://tailwindcss.com/docs/translate
45209
+ */
45210
+ 'translate-z': [{
45211
+ 'translate-z': scaleTranslate()
45212
+ }],
45213
+ /**
45214
+ * Translate None
45215
+ * @see https://tailwindcss.com/docs/translate
45216
+ */
45217
+ 'translate-none': ['translate-none'],
45218
+ // ---------------------
45219
+ // --- Interactivity ---
45220
+ // ---------------------
45221
+ /**
45222
+ * Accent Color
45223
+ * @see https://tailwindcss.com/docs/accent-color
45224
+ */
45225
+ accent: [{
45226
+ accent: scaleColor()
45227
+ }],
45228
+ /**
45229
+ * Appearance
45230
+ * @see https://tailwindcss.com/docs/appearance
45231
+ */
45232
+ appearance: [{
45233
+ appearance: ['none', 'auto']
45234
+ }],
45235
+ /**
45236
+ * Caret Color
45237
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
45238
+ */
45239
+ 'caret-color': [{
45240
+ caret: scaleColor()
45241
+ }],
45242
+ /**
45243
+ * Color Scheme
45244
+ * @see https://tailwindcss.com/docs/color-scheme
45245
+ */
45246
+ 'color-scheme': [{
45247
+ scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']
45248
+ }],
45249
+ /**
45250
+ * Cursor
45251
+ * @see https://tailwindcss.com/docs/cursor
45252
+ */
45253
+ cursor: [{
45254
+ cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]
45255
+ }],
45256
+ /**
45257
+ * Field Sizing
45258
+ * @see https://tailwindcss.com/docs/field-sizing
45259
+ */
45260
+ 'field-sizing': [{
45261
+ 'field-sizing': ['fixed', 'content']
45262
+ }],
45263
+ /**
45264
+ * Pointer Events
45265
+ * @see https://tailwindcss.com/docs/pointer-events
45266
+ */
45267
+ 'pointer-events': [{
45268
+ 'pointer-events': ['auto', 'none']
45269
+ }],
45270
+ /**
45271
+ * Resize
45272
+ * @see https://tailwindcss.com/docs/resize
45273
+ */
45274
+ resize: [{
45275
+ resize: ['none', '', 'y', 'x']
45276
+ }],
45277
+ /**
45278
+ * Scroll Behavior
45279
+ * @see https://tailwindcss.com/docs/scroll-behavior
45280
+ */
45281
+ 'scroll-behavior': [{
45282
+ scroll: ['auto', 'smooth']
45283
+ }],
45284
+ /**
45285
+ * Scroll Margin
45286
+ * @see https://tailwindcss.com/docs/scroll-margin
45287
+ */
45288
+ 'scroll-m': [{
45289
+ 'scroll-m': scaleUnambiguousSpacing()
45290
+ }],
45291
+ /**
45292
+ * Scroll Margin X
45293
+ * @see https://tailwindcss.com/docs/scroll-margin
45294
+ */
45295
+ 'scroll-mx': [{
45296
+ 'scroll-mx': scaleUnambiguousSpacing()
45297
+ }],
45298
+ /**
45299
+ * Scroll Margin Y
45300
+ * @see https://tailwindcss.com/docs/scroll-margin
45301
+ */
45302
+ 'scroll-my': [{
45303
+ 'scroll-my': scaleUnambiguousSpacing()
45304
+ }],
45305
+ /**
45306
+ * Scroll Margin Start
45307
+ * @see https://tailwindcss.com/docs/scroll-margin
45308
+ */
45309
+ 'scroll-ms': [{
45310
+ 'scroll-ms': scaleUnambiguousSpacing()
45311
+ }],
45312
+ /**
45313
+ * Scroll Margin End
45314
+ * @see https://tailwindcss.com/docs/scroll-margin
45315
+ */
45316
+ 'scroll-me': [{
45317
+ 'scroll-me': scaleUnambiguousSpacing()
45318
+ }],
45319
+ /**
45320
+ * Scroll Margin Top
45321
+ * @see https://tailwindcss.com/docs/scroll-margin
45322
+ */
45323
+ 'scroll-mt': [{
45324
+ 'scroll-mt': scaleUnambiguousSpacing()
45325
+ }],
45326
+ /**
45327
+ * Scroll Margin Right
45328
+ * @see https://tailwindcss.com/docs/scroll-margin
45329
+ */
45330
+ 'scroll-mr': [{
45331
+ 'scroll-mr': scaleUnambiguousSpacing()
45332
+ }],
45333
+ /**
45334
+ * Scroll Margin Bottom
45335
+ * @see https://tailwindcss.com/docs/scroll-margin
45336
+ */
45337
+ 'scroll-mb': [{
45338
+ 'scroll-mb': scaleUnambiguousSpacing()
45339
+ }],
45340
+ /**
45341
+ * Scroll Margin Left
45342
+ * @see https://tailwindcss.com/docs/scroll-margin
45343
+ */
45344
+ 'scroll-ml': [{
45345
+ 'scroll-ml': scaleUnambiguousSpacing()
45346
+ }],
45347
+ /**
45348
+ * Scroll Padding
45349
+ * @see https://tailwindcss.com/docs/scroll-padding
45350
+ */
45351
+ 'scroll-p': [{
45352
+ 'scroll-p': scaleUnambiguousSpacing()
45353
+ }],
45354
+ /**
45355
+ * Scroll Padding X
45356
+ * @see https://tailwindcss.com/docs/scroll-padding
45357
+ */
45358
+ 'scroll-px': [{
45359
+ 'scroll-px': scaleUnambiguousSpacing()
45360
+ }],
45361
+ /**
45362
+ * Scroll Padding Y
45363
+ * @see https://tailwindcss.com/docs/scroll-padding
45364
+ */
45365
+ 'scroll-py': [{
45366
+ 'scroll-py': scaleUnambiguousSpacing()
45367
+ }],
45368
+ /**
45369
+ * Scroll Padding Start
45370
+ * @see https://tailwindcss.com/docs/scroll-padding
45371
+ */
45372
+ 'scroll-ps': [{
45373
+ 'scroll-ps': scaleUnambiguousSpacing()
45374
+ }],
45375
+ /**
45376
+ * Scroll Padding End
45377
+ * @see https://tailwindcss.com/docs/scroll-padding
45378
+ */
45379
+ 'scroll-pe': [{
45380
+ 'scroll-pe': scaleUnambiguousSpacing()
45381
+ }],
45382
+ /**
45383
+ * Scroll Padding Top
45384
+ * @see https://tailwindcss.com/docs/scroll-padding
45385
+ */
45386
+ 'scroll-pt': [{
45387
+ 'scroll-pt': scaleUnambiguousSpacing()
45388
+ }],
45389
+ /**
45390
+ * Scroll Padding Right
45391
+ * @see https://tailwindcss.com/docs/scroll-padding
45392
+ */
45393
+ 'scroll-pr': [{
45394
+ 'scroll-pr': scaleUnambiguousSpacing()
45395
+ }],
45396
+ /**
45397
+ * Scroll Padding Bottom
45398
+ * @see https://tailwindcss.com/docs/scroll-padding
45399
+ */
45400
+ 'scroll-pb': [{
45401
+ 'scroll-pb': scaleUnambiguousSpacing()
45402
+ }],
45403
+ /**
45404
+ * Scroll Padding Left
45405
+ * @see https://tailwindcss.com/docs/scroll-padding
45406
+ */
45407
+ 'scroll-pl': [{
45408
+ 'scroll-pl': scaleUnambiguousSpacing()
45409
+ }],
45410
+ /**
45411
+ * Scroll Snap Align
45412
+ * @see https://tailwindcss.com/docs/scroll-snap-align
45413
+ */
45414
+ 'snap-align': [{
45415
+ snap: ['start', 'end', 'center', 'align-none']
45416
+ }],
45417
+ /**
45418
+ * Scroll Snap Stop
45419
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
45420
+ */
45421
+ 'snap-stop': [{
45422
+ snap: ['normal', 'always']
45423
+ }],
45424
+ /**
45425
+ * Scroll Snap Type
45426
+ * @see https://tailwindcss.com/docs/scroll-snap-type
45427
+ */
45428
+ 'snap-type': [{
45429
+ snap: ['none', 'x', 'y', 'both']
45430
+ }],
45431
+ /**
45432
+ * Scroll Snap Type Strictness
45433
+ * @see https://tailwindcss.com/docs/scroll-snap-type
45434
+ */
45435
+ 'snap-strictness': [{
45436
+ snap: ['mandatory', 'proximity']
45437
+ }],
45438
+ /**
45439
+ * Touch Action
45440
+ * @see https://tailwindcss.com/docs/touch-action
45441
+ */
45442
+ touch: [{
45443
+ touch: ['auto', 'none', 'manipulation']
45444
+ }],
45445
+ /**
45446
+ * Touch Action X
45447
+ * @see https://tailwindcss.com/docs/touch-action
45448
+ */
45449
+ 'touch-x': [{
45450
+ 'touch-pan': ['x', 'left', 'right']
45451
+ }],
45452
+ /**
45453
+ * Touch Action Y
45454
+ * @see https://tailwindcss.com/docs/touch-action
45455
+ */
45456
+ 'touch-y': [{
45457
+ 'touch-pan': ['y', 'up', 'down']
45458
+ }],
45459
+ /**
45460
+ * Touch Action Pinch Zoom
45461
+ * @see https://tailwindcss.com/docs/touch-action
45462
+ */
45463
+ 'touch-pz': ['touch-pinch-zoom'],
45464
+ /**
45465
+ * User Select
45466
+ * @see https://tailwindcss.com/docs/user-select
45467
+ */
45468
+ select: [{
45469
+ select: ['none', 'text', 'all', 'auto']
45470
+ }],
45471
+ /**
45472
+ * Will Change
45473
+ * @see https://tailwindcss.com/docs/will-change
45474
+ */
45475
+ 'will-change': [{
45476
+ 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]
45477
+ }],
45478
+ // -----------
45479
+ // --- SVG ---
45480
+ // -----------
45481
+ /**
45482
+ * Fill
45483
+ * @see https://tailwindcss.com/docs/fill
45484
+ */
45485
+ fill: [{
45486
+ fill: ['none', ...scaleColor()]
45487
+ }],
45488
+ /**
45489
+ * Stroke Width
45490
+ * @see https://tailwindcss.com/docs/stroke-width
45491
+ */
45492
+ 'stroke-w': [{
45493
+ stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
45494
+ }],
45495
+ /**
45496
+ * Stroke
45497
+ * @see https://tailwindcss.com/docs/stroke
45498
+ */
45499
+ stroke: [{
45500
+ stroke: ['none', ...scaleColor()]
45501
+ }],
45502
+ // ---------------------
45503
+ // --- Accessibility ---
45504
+ // ---------------------
45505
+ /**
45506
+ * Forced Color Adjust
45507
+ * @see https://tailwindcss.com/docs/forced-color-adjust
45508
+ */
45509
+ 'forced-color-adjust': [{
45510
+ 'forced-color-adjust': ['auto', 'none']
45511
+ }]
45512
+ },
45513
+ conflictingClassGroups: {
45514
+ overflow: ['overflow-x', 'overflow-y'],
45515
+ overscroll: ['overscroll-x', 'overscroll-y'],
45516
+ inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],
45517
+ 'inset-x': ['right', 'left'],
45518
+ 'inset-y': ['top', 'bottom'],
45519
+ flex: ['basis', 'grow', 'shrink'],
45520
+ gap: ['gap-x', 'gap-y'],
45521
+ p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],
45522
+ px: ['pr', 'pl'],
45523
+ py: ['pt', 'pb'],
45524
+ m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],
45525
+ mx: ['mr', 'ml'],
45526
+ my: ['mt', 'mb'],
45527
+ size: ['w', 'h'],
45528
+ 'font-size': ['leading'],
45529
+ 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],
45530
+ 'fvn-ordinal': ['fvn-normal'],
45531
+ 'fvn-slashed-zero': ['fvn-normal'],
45532
+ 'fvn-figure': ['fvn-normal'],
45533
+ 'fvn-spacing': ['fvn-normal'],
45534
+ 'fvn-fraction': ['fvn-normal'],
45535
+ 'line-clamp': ['display', 'overflow'],
45536
+ rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],
45537
+ 'rounded-s': ['rounded-ss', 'rounded-es'],
45538
+ 'rounded-e': ['rounded-se', 'rounded-ee'],
45539
+ 'rounded-t': ['rounded-tl', 'rounded-tr'],
45540
+ 'rounded-r': ['rounded-tr', 'rounded-br'],
45541
+ 'rounded-b': ['rounded-br', 'rounded-bl'],
45542
+ 'rounded-l': ['rounded-tl', 'rounded-bl'],
45543
+ 'border-spacing': ['border-spacing-x', 'border-spacing-y'],
45544
+ 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],
45545
+ 'border-w-x': ['border-w-r', 'border-w-l'],
45546
+ 'border-w-y': ['border-w-t', 'border-w-b'],
45547
+ 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],
45548
+ 'border-color-x': ['border-color-r', 'border-color-l'],
45549
+ 'border-color-y': ['border-color-t', 'border-color-b'],
45550
+ translate: ['translate-x', 'translate-y', 'translate-none'],
45551
+ 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],
45552
+ 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
45553
+ 'scroll-mx': ['scroll-mr', 'scroll-ml'],
45554
+ 'scroll-my': ['scroll-mt', 'scroll-mb'],
45555
+ 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
45556
+ 'scroll-px': ['scroll-pr', 'scroll-pl'],
45557
+ 'scroll-py': ['scroll-pt', 'scroll-pb'],
45558
+ touch: ['touch-x', 'touch-y', 'touch-pz'],
45559
+ 'touch-x': ['touch'],
45560
+ 'touch-y': ['touch'],
45561
+ 'touch-pz': ['touch']
45562
+ },
45563
+ conflictingClassGroupModifiers: {
45564
+ 'font-size': ['leading']
45565
+ },
45566
+ orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']
45567
+ };
45568
+ };
45569
+ const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);
45570
+
45571
+ function cn(...inputs) {
45572
+ return twMerge(clsx(inputs));
45573
+ }
45574
+
42614
45575
  exports.Whiteboard = Whiteboard;
42615
45576
  exports.WhiteboardProvider = WhiteboardProvider;
45577
+ exports.cn = cn;
42616
45578
  exports.useWhiteboardStream = useCapture;
42617
45579
  //# sourceMappingURL=index.js.map