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