@pnkx-lib/ui 1.9.66 → 1.9.68

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.
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { useRef, useState, useEffect, useLayoutEffect, useMemo, forwardRef, useCallback, createElement, Component, createRef, createContext, useContext } from 'react';
3
- import { Typography as Typography$1, Input as Input$1, Checkbox, DatePicker, Upload, Image } from 'antd';
3
+ import { Typography as Typography$1, Input as Input$1, Checkbox, DatePicker } from 'antd';
4
4
  import { e as require_baseGetTag, f as requireIsObjectLike, i as requireIsArray, b as require_MapCache, m as require_Symbol, n as getDefaultExportFromCjs, o as commonjsGlobal } from './_MapCache-hm6_DB7i.js';
5
5
  import * as ReactDOM from 'react-dom';
6
6
  import ReactDOM__default, { findDOMNode } from 'react-dom';
@@ -5582,6 +5582,2961 @@ class PnkxField extends React.PureComponent {
5582
5582
  }
5583
5583
  }
5584
5584
 
5585
+ const CLASS_PART_SEPARATOR = '-';
5586
+ const createClassGroupUtils = config => {
5587
+ const classMap = createClassMap(config);
5588
+ const {
5589
+ conflictingClassGroups,
5590
+ conflictingClassGroupModifiers
5591
+ } = config;
5592
+ const getClassGroupId = className => {
5593
+ const classParts = className.split(CLASS_PART_SEPARATOR);
5594
+ // 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.
5595
+ if (classParts[0] === '' && classParts.length !== 1) {
5596
+ classParts.shift();
5597
+ }
5598
+ return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
5599
+ };
5600
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
5601
+ const conflicts = conflictingClassGroups[classGroupId] || [];
5602
+ if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
5603
+ return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
5604
+ }
5605
+ return conflicts;
5606
+ };
5607
+ return {
5608
+ getClassGroupId,
5609
+ getConflictingClassGroupIds
5610
+ };
5611
+ };
5612
+ const getGroupRecursive = (classParts, classPartObject) => {
5613
+ if (classParts.length === 0) {
5614
+ return classPartObject.classGroupId;
5615
+ }
5616
+ const currentClassPart = classParts[0];
5617
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
5618
+ const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;
5619
+ if (classGroupFromNextClassPart) {
5620
+ return classGroupFromNextClassPart;
5621
+ }
5622
+ if (classPartObject.validators.length === 0) {
5623
+ return undefined;
5624
+ }
5625
+ const classRest = classParts.join(CLASS_PART_SEPARATOR);
5626
+ return classPartObject.validators.find(({
5627
+ validator
5628
+ }) => validator(classRest))?.classGroupId;
5629
+ };
5630
+ const arbitraryPropertyRegex = /^\[(.+)\]$/;
5631
+ const getGroupIdForArbitraryProperty = className => {
5632
+ if (arbitraryPropertyRegex.test(className)) {
5633
+ const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
5634
+ const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));
5635
+ if (property) {
5636
+ // I use two dots here because one dot is used as prefix for class groups in plugins
5637
+ return 'arbitrary..' + property;
5638
+ }
5639
+ }
5640
+ };
5641
+ /**
5642
+ * Exported for testing only
5643
+ */
5644
+ const createClassMap = config => {
5645
+ const {
5646
+ theme,
5647
+ classGroups
5648
+ } = config;
5649
+ const classMap = {
5650
+ nextPart: new Map(),
5651
+ validators: []
5652
+ };
5653
+ for (const classGroupId in classGroups) {
5654
+ processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);
5655
+ }
5656
+ return classMap;
5657
+ };
5658
+ const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
5659
+ classGroup.forEach(classDefinition => {
5660
+ if (typeof classDefinition === 'string') {
5661
+ const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);
5662
+ classPartObjectToEdit.classGroupId = classGroupId;
5663
+ return;
5664
+ }
5665
+ if (typeof classDefinition === 'function') {
5666
+ if (isThemeGetter(classDefinition)) {
5667
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
5668
+ return;
5669
+ }
5670
+ classPartObject.validators.push({
5671
+ validator: classDefinition,
5672
+ classGroupId
5673
+ });
5674
+ return;
5675
+ }
5676
+ Object.entries(classDefinition).forEach(([key, classGroup]) => {
5677
+ processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);
5678
+ });
5679
+ });
5680
+ };
5681
+ const getPart = (classPartObject, path) => {
5682
+ let currentClassPartObject = classPartObject;
5683
+ path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {
5684
+ if (!currentClassPartObject.nextPart.has(pathPart)) {
5685
+ currentClassPartObject.nextPart.set(pathPart, {
5686
+ nextPart: new Map(),
5687
+ validators: []
5688
+ });
5689
+ }
5690
+ currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
5691
+ });
5692
+ return currentClassPartObject;
5693
+ };
5694
+ const isThemeGetter = func => func.isThemeGetter;
5695
+
5696
+ // LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance
5697
+ const createLruCache = maxCacheSize => {
5698
+ if (maxCacheSize < 1) {
5699
+ return {
5700
+ get: () => undefined,
5701
+ set: () => {}
5702
+ };
5703
+ }
5704
+ let cacheSize = 0;
5705
+ let cache = new Map();
5706
+ let previousCache = new Map();
5707
+ const update = (key, value) => {
5708
+ cache.set(key, value);
5709
+ cacheSize++;
5710
+ if (cacheSize > maxCacheSize) {
5711
+ cacheSize = 0;
5712
+ previousCache = cache;
5713
+ cache = new Map();
5714
+ }
5715
+ };
5716
+ return {
5717
+ get(key) {
5718
+ let value = cache.get(key);
5719
+ if (value !== undefined) {
5720
+ return value;
5721
+ }
5722
+ if ((value = previousCache.get(key)) !== undefined) {
5723
+ update(key, value);
5724
+ return value;
5725
+ }
5726
+ },
5727
+ set(key, value) {
5728
+ if (cache.has(key)) {
5729
+ cache.set(key, value);
5730
+ } else {
5731
+ update(key, value);
5732
+ }
5733
+ }
5734
+ };
5735
+ };
5736
+ const IMPORTANT_MODIFIER = '!';
5737
+ const MODIFIER_SEPARATOR = ':';
5738
+ const MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;
5739
+ const createParseClassName = config => {
5740
+ const {
5741
+ prefix,
5742
+ experimentalParseClassName
5743
+ } = config;
5744
+ /**
5745
+ * Parse class name into parts.
5746
+ *
5747
+ * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS
5748
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
5749
+ */
5750
+ let parseClassName = className => {
5751
+ const modifiers = [];
5752
+ let bracketDepth = 0;
5753
+ let parenDepth = 0;
5754
+ let modifierStart = 0;
5755
+ let postfixModifierPosition;
5756
+ for (let index = 0; index < className.length; index++) {
5757
+ let currentCharacter = className[index];
5758
+ if (bracketDepth === 0 && parenDepth === 0) {
5759
+ if (currentCharacter === MODIFIER_SEPARATOR) {
5760
+ modifiers.push(className.slice(modifierStart, index));
5761
+ modifierStart = index + MODIFIER_SEPARATOR_LENGTH;
5762
+ continue;
5763
+ }
5764
+ if (currentCharacter === '/') {
5765
+ postfixModifierPosition = index;
5766
+ continue;
5767
+ }
5768
+ }
5769
+ if (currentCharacter === '[') {
5770
+ bracketDepth++;
5771
+ } else if (currentCharacter === ']') {
5772
+ bracketDepth--;
5773
+ } else if (currentCharacter === '(') {
5774
+ parenDepth++;
5775
+ } else if (currentCharacter === ')') {
5776
+ parenDepth--;
5777
+ }
5778
+ }
5779
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
5780
+ const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);
5781
+ const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;
5782
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
5783
+ return {
5784
+ modifiers,
5785
+ hasImportantModifier,
5786
+ baseClassName,
5787
+ maybePostfixModifierPosition
5788
+ };
5789
+ };
5790
+ if (prefix) {
5791
+ const fullPrefix = prefix + MODIFIER_SEPARATOR;
5792
+ const parseClassNameOriginal = parseClassName;
5793
+ parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {
5794
+ isExternal: true,
5795
+ modifiers: [],
5796
+ hasImportantModifier: false,
5797
+ baseClassName: className,
5798
+ maybePostfixModifierPosition: undefined
5799
+ };
5800
+ }
5801
+ if (experimentalParseClassName) {
5802
+ const parseClassNameOriginal = parseClassName;
5803
+ parseClassName = className => experimentalParseClassName({
5804
+ className,
5805
+ parseClassName: parseClassNameOriginal
5806
+ });
5807
+ }
5808
+ return parseClassName;
5809
+ };
5810
+ const stripImportantModifier = baseClassName => {
5811
+ if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {
5812
+ return baseClassName.substring(0, baseClassName.length - 1);
5813
+ }
5814
+ /**
5815
+ * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
5816
+ * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
5817
+ */
5818
+ if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {
5819
+ return baseClassName.substring(1);
5820
+ }
5821
+ return baseClassName;
5822
+ };
5823
+
5824
+ /**
5825
+ * Sorts modifiers according to following schema:
5826
+ * - Predefined modifiers are sorted alphabetically
5827
+ * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it
5828
+ */
5829
+ const createSortModifiers = config => {
5830
+ const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));
5831
+ const sortModifiers = modifiers => {
5832
+ if (modifiers.length <= 1) {
5833
+ return modifiers;
5834
+ }
5835
+ const sortedModifiers = [];
5836
+ let unsortedModifiers = [];
5837
+ modifiers.forEach(modifier => {
5838
+ const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];
5839
+ if (isPositionSensitive) {
5840
+ sortedModifiers.push(...unsortedModifiers.sort(), modifier);
5841
+ unsortedModifiers = [];
5842
+ } else {
5843
+ unsortedModifiers.push(modifier);
5844
+ }
5845
+ });
5846
+ sortedModifiers.push(...unsortedModifiers.sort());
5847
+ return sortedModifiers;
5848
+ };
5849
+ return sortModifiers;
5850
+ };
5851
+ const createConfigUtils = config => ({
5852
+ cache: createLruCache(config.cacheSize),
5853
+ parseClassName: createParseClassName(config),
5854
+ sortModifiers: createSortModifiers(config),
5855
+ ...createClassGroupUtils(config)
5856
+ });
5857
+ const SPLIT_CLASSES_REGEX = /\s+/;
5858
+ const mergeClassList = (classList, configUtils) => {
5859
+ const {
5860
+ parseClassName,
5861
+ getClassGroupId,
5862
+ getConflictingClassGroupIds,
5863
+ sortModifiers
5864
+ } = configUtils;
5865
+ /**
5866
+ * Set of classGroupIds in following format:
5867
+ * `{importantModifier}{variantModifiers}{classGroupId}`
5868
+ * @example 'float'
5869
+ * @example 'hover:focus:bg-color'
5870
+ * @example 'md:!pr'
5871
+ */
5872
+ const classGroupsInConflict = [];
5873
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
5874
+ let result = '';
5875
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
5876
+ const originalClassName = classNames[index];
5877
+ const {
5878
+ isExternal,
5879
+ modifiers,
5880
+ hasImportantModifier,
5881
+ baseClassName,
5882
+ maybePostfixModifierPosition
5883
+ } = parseClassName(originalClassName);
5884
+ if (isExternal) {
5885
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
5886
+ continue;
5887
+ }
5888
+ let hasPostfixModifier = !!maybePostfixModifierPosition;
5889
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
5890
+ if (!classGroupId) {
5891
+ if (!hasPostfixModifier) {
5892
+ // Not a Tailwind class
5893
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
5894
+ continue;
5895
+ }
5896
+ classGroupId = getClassGroupId(baseClassName);
5897
+ if (!classGroupId) {
5898
+ // Not a Tailwind class
5899
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
5900
+ continue;
5901
+ }
5902
+ hasPostfixModifier = false;
5903
+ }
5904
+ const variantModifier = sortModifiers(modifiers).join(':');
5905
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
5906
+ const classId = modifierId + classGroupId;
5907
+ if (classGroupsInConflict.includes(classId)) {
5908
+ // Tailwind class omitted due to conflict
5909
+ continue;
5910
+ }
5911
+ classGroupsInConflict.push(classId);
5912
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
5913
+ for (let i = 0; i < conflictGroups.length; ++i) {
5914
+ const group = conflictGroups[i];
5915
+ classGroupsInConflict.push(modifierId + group);
5916
+ }
5917
+ // Tailwind class not in conflict
5918
+ result = originalClassName + (result.length > 0 ? ' ' + result : result);
5919
+ }
5920
+ return result;
5921
+ };
5922
+
5923
+ /**
5924
+ * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.
5925
+ *
5926
+ * Specifically:
5927
+ * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js
5928
+ * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts
5929
+ *
5930
+ * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
5931
+ */
5932
+ function twJoin() {
5933
+ let index = 0;
5934
+ let argument;
5935
+ let resolvedValue;
5936
+ let string = '';
5937
+ while (index < arguments.length) {
5938
+ if (argument = arguments[index++]) {
5939
+ if (resolvedValue = toValue(argument)) {
5940
+ string && (string += ' ');
5941
+ string += resolvedValue;
5942
+ }
5943
+ }
5944
+ }
5945
+ return string;
5946
+ }
5947
+ const toValue = mix => {
5948
+ if (typeof mix === 'string') {
5949
+ return mix;
5950
+ }
5951
+ let resolvedValue;
5952
+ let string = '';
5953
+ for (let k = 0; k < mix.length; k++) {
5954
+ if (mix[k]) {
5955
+ if (resolvedValue = toValue(mix[k])) {
5956
+ string && (string += ' ');
5957
+ string += resolvedValue;
5958
+ }
5959
+ }
5960
+ }
5961
+ return string;
5962
+ };
5963
+ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
5964
+ let configUtils;
5965
+ let cacheGet;
5966
+ let cacheSet;
5967
+ let functionToCall = initTailwindMerge;
5968
+ function initTailwindMerge(classList) {
5969
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
5970
+ configUtils = createConfigUtils(config);
5971
+ cacheGet = configUtils.cache.get;
5972
+ cacheSet = configUtils.cache.set;
5973
+ functionToCall = tailwindMerge;
5974
+ return tailwindMerge(classList);
5975
+ }
5976
+ function tailwindMerge(classList) {
5977
+ const cachedResult = cacheGet(classList);
5978
+ if (cachedResult) {
5979
+ return cachedResult;
5980
+ }
5981
+ const result = mergeClassList(classList, configUtils);
5982
+ cacheSet(classList, result);
5983
+ return result;
5984
+ }
5985
+ return function callTailwindMerge() {
5986
+ return functionToCall(twJoin.apply(null, arguments));
5987
+ };
5988
+ }
5989
+ const fromTheme = key => {
5990
+ const themeGetter = theme => theme[key] || [];
5991
+ themeGetter.isThemeGetter = true;
5992
+ return themeGetter;
5993
+ };
5994
+ const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
5995
+ const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
5996
+ const fractionRegex = /^\d+\/\d+$/;
5997
+ const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
5998
+ 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$/;
5999
+ const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
6000
+ // Shadow always begins with x and y offset separated by underscore optionally prepended by inset
6001
+ const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
6002
+ const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
6003
+ const isFraction = value => fractionRegex.test(value);
6004
+ const isNumber = value => !!value && !Number.isNaN(Number(value));
6005
+ const isInteger = value => !!value && Number.isInteger(Number(value));
6006
+ const isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));
6007
+ const isTshirtSize = value => tshirtUnitRegex.test(value);
6008
+ const isAny = () => true;
6009
+ const isLengthOnly = value =>
6010
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
6011
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
6012
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
6013
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);
6014
+ const isNever = () => false;
6015
+ const isShadow = value => shadowRegex.test(value);
6016
+ const isImage = value => imageRegex.test(value);
6017
+ const isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);
6018
+ const isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);
6019
+ const isArbitraryValue = value => arbitraryValueRegex.test(value);
6020
+ const isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
6021
+ const isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);
6022
+ const isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);
6023
+ const isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);
6024
+ const isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);
6025
+ const isArbitraryVariable = value => arbitraryVariableRegex.test(value);
6026
+ const isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);
6027
+ const isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);
6028
+ const isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);
6029
+ const isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);
6030
+ const isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);
6031
+ const isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);
6032
+ // Helpers
6033
+ const getIsArbitraryValue = (value, testLabel, testValue) => {
6034
+ const result = arbitraryValueRegex.exec(value);
6035
+ if (result) {
6036
+ if (result[1]) {
6037
+ return testLabel(result[1]);
6038
+ }
6039
+ return testValue(result[2]);
6040
+ }
6041
+ return false;
6042
+ };
6043
+ const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
6044
+ const result = arbitraryVariableRegex.exec(value);
6045
+ if (result) {
6046
+ if (result[1]) {
6047
+ return testLabel(result[1]);
6048
+ }
6049
+ return shouldMatchNoLabel;
6050
+ }
6051
+ return false;
6052
+ };
6053
+ // Labels
6054
+ const isLabelPosition = label => label === 'position' || label === 'percentage';
6055
+ const isLabelImage = label => label === 'image' || label === 'url';
6056
+ const isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';
6057
+ const isLabelLength = label => label === 'length';
6058
+ const isLabelNumber = label => label === 'number';
6059
+ const isLabelFamilyName = label => label === 'family-name';
6060
+ const isLabelShadow = label => label === 'shadow';
6061
+ const getDefaultConfig = () => {
6062
+ /**
6063
+ * Theme getters for theme variable namespaces
6064
+ * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces
6065
+ */
6066
+ /***/
6067
+ const themeColor = fromTheme('color');
6068
+ const themeFont = fromTheme('font');
6069
+ const themeText = fromTheme('text');
6070
+ const themeFontWeight = fromTheme('font-weight');
6071
+ const themeTracking = fromTheme('tracking');
6072
+ const themeLeading = fromTheme('leading');
6073
+ const themeBreakpoint = fromTheme('breakpoint');
6074
+ const themeContainer = fromTheme('container');
6075
+ const themeSpacing = fromTheme('spacing');
6076
+ const themeRadius = fromTheme('radius');
6077
+ const themeShadow = fromTheme('shadow');
6078
+ const themeInsetShadow = fromTheme('inset-shadow');
6079
+ const themeTextShadow = fromTheme('text-shadow');
6080
+ const themeDropShadow = fromTheme('drop-shadow');
6081
+ const themeBlur = fromTheme('blur');
6082
+ const themePerspective = fromTheme('perspective');
6083
+ const themeAspect = fromTheme('aspect');
6084
+ const themeEase = fromTheme('ease');
6085
+ const themeAnimate = fromTheme('animate');
6086
+ /**
6087
+ * Helpers to avoid repeating the same scales
6088
+ *
6089
+ * We use functions that create a new array every time they're called instead of static arrays.
6090
+ * 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.
6091
+ */
6092
+ /***/
6093
+ const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];
6094
+ const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',
6095
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
6096
+ 'left-top', 'top-right',
6097
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
6098
+ 'right-top', 'bottom-right',
6099
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
6100
+ 'right-bottom', 'bottom-left',
6101
+ // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
6102
+ 'left-bottom'];
6103
+ const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
6104
+ const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];
6105
+ const scaleOverscroll = () => ['auto', 'contain', 'none'];
6106
+ const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
6107
+ const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];
6108
+ const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];
6109
+ const scaleGridColRowStartAndEnd = () => ['auto', {
6110
+ span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]
6111
+ }, isInteger, isArbitraryVariable, isArbitraryValue];
6112
+ const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];
6113
+ const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];
6114
+ const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];
6115
+ const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];
6116
+ const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];
6117
+ const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];
6118
+ const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
6119
+ const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
6120
+ position: [isArbitraryVariable, isArbitraryValue]
6121
+ }];
6122
+ const scaleBgRepeat = () => ['no-repeat', {
6123
+ repeat: ['', 'x', 'y', 'space', 'round']
6124
+ }];
6125
+ const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {
6126
+ size: [isArbitraryVariable, isArbitraryValue]
6127
+ }];
6128
+ const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
6129
+ const scaleRadius = () => [
6130
+ // Deprecated since Tailwind CSS v4.0.0
6131
+ '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];
6132
+ const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];
6133
+ const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];
6134
+ const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];
6135
+ const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
6136
+ const scaleBlur = () => [
6137
+ // Deprecated since Tailwind CSS v4.0.0
6138
+ '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];
6139
+ const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];
6140
+ const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];
6141
+ const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
6142
+ const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];
6143
+ return {
6144
+ cacheSize: 500,
6145
+ theme: {
6146
+ animate: ['spin', 'ping', 'pulse', 'bounce'],
6147
+ aspect: ['video'],
6148
+ blur: [isTshirtSize],
6149
+ breakpoint: [isTshirtSize],
6150
+ color: [isAny],
6151
+ container: [isTshirtSize],
6152
+ 'drop-shadow': [isTshirtSize],
6153
+ ease: ['in', 'out', 'in-out'],
6154
+ font: [isAnyNonArbitrary],
6155
+ 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],
6156
+ 'inset-shadow': [isTshirtSize],
6157
+ leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],
6158
+ perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],
6159
+ radius: [isTshirtSize],
6160
+ shadow: [isTshirtSize],
6161
+ spacing: ['px', isNumber],
6162
+ text: [isTshirtSize],
6163
+ 'text-shadow': [isTshirtSize],
6164
+ tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']
6165
+ },
6166
+ classGroups: {
6167
+ // --------------
6168
+ // --- Layout ---
6169
+ // --------------
6170
+ /**
6171
+ * Aspect Ratio
6172
+ * @see https://tailwindcss.com/docs/aspect-ratio
6173
+ */
6174
+ aspect: [{
6175
+ aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
6176
+ }],
6177
+ /**
6178
+ * Container
6179
+ * @see https://tailwindcss.com/docs/container
6180
+ * @deprecated since Tailwind CSS v4.0.0
6181
+ */
6182
+ container: ['container'],
6183
+ /**
6184
+ * Columns
6185
+ * @see https://tailwindcss.com/docs/columns
6186
+ */
6187
+ columns: [{
6188
+ columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
6189
+ }],
6190
+ /**
6191
+ * Break After
6192
+ * @see https://tailwindcss.com/docs/break-after
6193
+ */
6194
+ 'break-after': [{
6195
+ 'break-after': scaleBreak()
6196
+ }],
6197
+ /**
6198
+ * Break Before
6199
+ * @see https://tailwindcss.com/docs/break-before
6200
+ */
6201
+ 'break-before': [{
6202
+ 'break-before': scaleBreak()
6203
+ }],
6204
+ /**
6205
+ * Break Inside
6206
+ * @see https://tailwindcss.com/docs/break-inside
6207
+ */
6208
+ 'break-inside': [{
6209
+ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']
6210
+ }],
6211
+ /**
6212
+ * Box Decoration Break
6213
+ * @see https://tailwindcss.com/docs/box-decoration-break
6214
+ */
6215
+ 'box-decoration': [{
6216
+ 'box-decoration': ['slice', 'clone']
6217
+ }],
6218
+ /**
6219
+ * Box Sizing
6220
+ * @see https://tailwindcss.com/docs/box-sizing
6221
+ */
6222
+ box: [{
6223
+ box: ['border', 'content']
6224
+ }],
6225
+ /**
6226
+ * Display
6227
+ * @see https://tailwindcss.com/docs/display
6228
+ */
6229
+ 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'],
6230
+ /**
6231
+ * Screen Reader Only
6232
+ * @see https://tailwindcss.com/docs/display#screen-reader-only
6233
+ */
6234
+ sr: ['sr-only', 'not-sr-only'],
6235
+ /**
6236
+ * Floats
6237
+ * @see https://tailwindcss.com/docs/float
6238
+ */
6239
+ float: [{
6240
+ float: ['right', 'left', 'none', 'start', 'end']
6241
+ }],
6242
+ /**
6243
+ * Clear
6244
+ * @see https://tailwindcss.com/docs/clear
6245
+ */
6246
+ clear: [{
6247
+ clear: ['left', 'right', 'both', 'none', 'start', 'end']
6248
+ }],
6249
+ /**
6250
+ * Isolation
6251
+ * @see https://tailwindcss.com/docs/isolation
6252
+ */
6253
+ isolation: ['isolate', 'isolation-auto'],
6254
+ /**
6255
+ * Object Fit
6256
+ * @see https://tailwindcss.com/docs/object-fit
6257
+ */
6258
+ 'object-fit': [{
6259
+ object: ['contain', 'cover', 'fill', 'none', 'scale-down']
6260
+ }],
6261
+ /**
6262
+ * Object Position
6263
+ * @see https://tailwindcss.com/docs/object-position
6264
+ */
6265
+ 'object-position': [{
6266
+ object: scalePositionWithArbitrary()
6267
+ }],
6268
+ /**
6269
+ * Overflow
6270
+ * @see https://tailwindcss.com/docs/overflow
6271
+ */
6272
+ overflow: [{
6273
+ overflow: scaleOverflow()
6274
+ }],
6275
+ /**
6276
+ * Overflow X
6277
+ * @see https://tailwindcss.com/docs/overflow
6278
+ */
6279
+ 'overflow-x': [{
6280
+ 'overflow-x': scaleOverflow()
6281
+ }],
6282
+ /**
6283
+ * Overflow Y
6284
+ * @see https://tailwindcss.com/docs/overflow
6285
+ */
6286
+ 'overflow-y': [{
6287
+ 'overflow-y': scaleOverflow()
6288
+ }],
6289
+ /**
6290
+ * Overscroll Behavior
6291
+ * @see https://tailwindcss.com/docs/overscroll-behavior
6292
+ */
6293
+ overscroll: [{
6294
+ overscroll: scaleOverscroll()
6295
+ }],
6296
+ /**
6297
+ * Overscroll Behavior X
6298
+ * @see https://tailwindcss.com/docs/overscroll-behavior
6299
+ */
6300
+ 'overscroll-x': [{
6301
+ 'overscroll-x': scaleOverscroll()
6302
+ }],
6303
+ /**
6304
+ * Overscroll Behavior Y
6305
+ * @see https://tailwindcss.com/docs/overscroll-behavior
6306
+ */
6307
+ 'overscroll-y': [{
6308
+ 'overscroll-y': scaleOverscroll()
6309
+ }],
6310
+ /**
6311
+ * Position
6312
+ * @see https://tailwindcss.com/docs/position
6313
+ */
6314
+ position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],
6315
+ /**
6316
+ * Top / Right / Bottom / Left
6317
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6318
+ */
6319
+ inset: [{
6320
+ inset: scaleInset()
6321
+ }],
6322
+ /**
6323
+ * Right / Left
6324
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6325
+ */
6326
+ 'inset-x': [{
6327
+ 'inset-x': scaleInset()
6328
+ }],
6329
+ /**
6330
+ * Top / Bottom
6331
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6332
+ */
6333
+ 'inset-y': [{
6334
+ 'inset-y': scaleInset()
6335
+ }],
6336
+ /**
6337
+ * Start
6338
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6339
+ */
6340
+ start: [{
6341
+ start: scaleInset()
6342
+ }],
6343
+ /**
6344
+ * End
6345
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6346
+ */
6347
+ end: [{
6348
+ end: scaleInset()
6349
+ }],
6350
+ /**
6351
+ * Top
6352
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6353
+ */
6354
+ top: [{
6355
+ top: scaleInset()
6356
+ }],
6357
+ /**
6358
+ * Right
6359
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6360
+ */
6361
+ right: [{
6362
+ right: scaleInset()
6363
+ }],
6364
+ /**
6365
+ * Bottom
6366
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6367
+ */
6368
+ bottom: [{
6369
+ bottom: scaleInset()
6370
+ }],
6371
+ /**
6372
+ * Left
6373
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
6374
+ */
6375
+ left: [{
6376
+ left: scaleInset()
6377
+ }],
6378
+ /**
6379
+ * Visibility
6380
+ * @see https://tailwindcss.com/docs/visibility
6381
+ */
6382
+ visibility: ['visible', 'invisible', 'collapse'],
6383
+ /**
6384
+ * Z-Index
6385
+ * @see https://tailwindcss.com/docs/z-index
6386
+ */
6387
+ z: [{
6388
+ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]
6389
+ }],
6390
+ // ------------------------
6391
+ // --- Flexbox and Grid ---
6392
+ // ------------------------
6393
+ /**
6394
+ * Flex Basis
6395
+ * @see https://tailwindcss.com/docs/flex-basis
6396
+ */
6397
+ basis: [{
6398
+ basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]
6399
+ }],
6400
+ /**
6401
+ * Flex Direction
6402
+ * @see https://tailwindcss.com/docs/flex-direction
6403
+ */
6404
+ 'flex-direction': [{
6405
+ flex: ['row', 'row-reverse', 'col', 'col-reverse']
6406
+ }],
6407
+ /**
6408
+ * Flex Wrap
6409
+ * @see https://tailwindcss.com/docs/flex-wrap
6410
+ */
6411
+ 'flex-wrap': [{
6412
+ flex: ['nowrap', 'wrap', 'wrap-reverse']
6413
+ }],
6414
+ /**
6415
+ * Flex
6416
+ * @see https://tailwindcss.com/docs/flex
6417
+ */
6418
+ flex: [{
6419
+ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]
6420
+ }],
6421
+ /**
6422
+ * Flex Grow
6423
+ * @see https://tailwindcss.com/docs/flex-grow
6424
+ */
6425
+ grow: [{
6426
+ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]
6427
+ }],
6428
+ /**
6429
+ * Flex Shrink
6430
+ * @see https://tailwindcss.com/docs/flex-shrink
6431
+ */
6432
+ shrink: [{
6433
+ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]
6434
+ }],
6435
+ /**
6436
+ * Order
6437
+ * @see https://tailwindcss.com/docs/order
6438
+ */
6439
+ order: [{
6440
+ order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]
6441
+ }],
6442
+ /**
6443
+ * Grid Template Columns
6444
+ * @see https://tailwindcss.com/docs/grid-template-columns
6445
+ */
6446
+ 'grid-cols': [{
6447
+ 'grid-cols': scaleGridTemplateColsRows()
6448
+ }],
6449
+ /**
6450
+ * Grid Column Start / End
6451
+ * @see https://tailwindcss.com/docs/grid-column
6452
+ */
6453
+ 'col-start-end': [{
6454
+ col: scaleGridColRowStartAndEnd()
6455
+ }],
6456
+ /**
6457
+ * Grid Column Start
6458
+ * @see https://tailwindcss.com/docs/grid-column
6459
+ */
6460
+ 'col-start': [{
6461
+ 'col-start': scaleGridColRowStartOrEnd()
6462
+ }],
6463
+ /**
6464
+ * Grid Column End
6465
+ * @see https://tailwindcss.com/docs/grid-column
6466
+ */
6467
+ 'col-end': [{
6468
+ 'col-end': scaleGridColRowStartOrEnd()
6469
+ }],
6470
+ /**
6471
+ * Grid Template Rows
6472
+ * @see https://tailwindcss.com/docs/grid-template-rows
6473
+ */
6474
+ 'grid-rows': [{
6475
+ 'grid-rows': scaleGridTemplateColsRows()
6476
+ }],
6477
+ /**
6478
+ * Grid Row Start / End
6479
+ * @see https://tailwindcss.com/docs/grid-row
6480
+ */
6481
+ 'row-start-end': [{
6482
+ row: scaleGridColRowStartAndEnd()
6483
+ }],
6484
+ /**
6485
+ * Grid Row Start
6486
+ * @see https://tailwindcss.com/docs/grid-row
6487
+ */
6488
+ 'row-start': [{
6489
+ 'row-start': scaleGridColRowStartOrEnd()
6490
+ }],
6491
+ /**
6492
+ * Grid Row End
6493
+ * @see https://tailwindcss.com/docs/grid-row
6494
+ */
6495
+ 'row-end': [{
6496
+ 'row-end': scaleGridColRowStartOrEnd()
6497
+ }],
6498
+ /**
6499
+ * Grid Auto Flow
6500
+ * @see https://tailwindcss.com/docs/grid-auto-flow
6501
+ */
6502
+ 'grid-flow': [{
6503
+ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']
6504
+ }],
6505
+ /**
6506
+ * Grid Auto Columns
6507
+ * @see https://tailwindcss.com/docs/grid-auto-columns
6508
+ */
6509
+ 'auto-cols': [{
6510
+ 'auto-cols': scaleGridAutoColsRows()
6511
+ }],
6512
+ /**
6513
+ * Grid Auto Rows
6514
+ * @see https://tailwindcss.com/docs/grid-auto-rows
6515
+ */
6516
+ 'auto-rows': [{
6517
+ 'auto-rows': scaleGridAutoColsRows()
6518
+ }],
6519
+ /**
6520
+ * Gap
6521
+ * @see https://tailwindcss.com/docs/gap
6522
+ */
6523
+ gap: [{
6524
+ gap: scaleUnambiguousSpacing()
6525
+ }],
6526
+ /**
6527
+ * Gap X
6528
+ * @see https://tailwindcss.com/docs/gap
6529
+ */
6530
+ 'gap-x': [{
6531
+ 'gap-x': scaleUnambiguousSpacing()
6532
+ }],
6533
+ /**
6534
+ * Gap Y
6535
+ * @see https://tailwindcss.com/docs/gap
6536
+ */
6537
+ 'gap-y': [{
6538
+ 'gap-y': scaleUnambiguousSpacing()
6539
+ }],
6540
+ /**
6541
+ * Justify Content
6542
+ * @see https://tailwindcss.com/docs/justify-content
6543
+ */
6544
+ 'justify-content': [{
6545
+ justify: [...scaleAlignPrimaryAxis(), 'normal']
6546
+ }],
6547
+ /**
6548
+ * Justify Items
6549
+ * @see https://tailwindcss.com/docs/justify-items
6550
+ */
6551
+ 'justify-items': [{
6552
+ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']
6553
+ }],
6554
+ /**
6555
+ * Justify Self
6556
+ * @see https://tailwindcss.com/docs/justify-self
6557
+ */
6558
+ 'justify-self': [{
6559
+ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]
6560
+ }],
6561
+ /**
6562
+ * Align Content
6563
+ * @see https://tailwindcss.com/docs/align-content
6564
+ */
6565
+ 'align-content': [{
6566
+ content: ['normal', ...scaleAlignPrimaryAxis()]
6567
+ }],
6568
+ /**
6569
+ * Align Items
6570
+ * @see https://tailwindcss.com/docs/align-items
6571
+ */
6572
+ 'align-items': [{
6573
+ items: [...scaleAlignSecondaryAxis(), {
6574
+ baseline: ['', 'last']
6575
+ }]
6576
+ }],
6577
+ /**
6578
+ * Align Self
6579
+ * @see https://tailwindcss.com/docs/align-self
6580
+ */
6581
+ 'align-self': [{
6582
+ self: ['auto', ...scaleAlignSecondaryAxis(), {
6583
+ baseline: ['', 'last']
6584
+ }]
6585
+ }],
6586
+ /**
6587
+ * Place Content
6588
+ * @see https://tailwindcss.com/docs/place-content
6589
+ */
6590
+ 'place-content': [{
6591
+ 'place-content': scaleAlignPrimaryAxis()
6592
+ }],
6593
+ /**
6594
+ * Place Items
6595
+ * @see https://tailwindcss.com/docs/place-items
6596
+ */
6597
+ 'place-items': [{
6598
+ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']
6599
+ }],
6600
+ /**
6601
+ * Place Self
6602
+ * @see https://tailwindcss.com/docs/place-self
6603
+ */
6604
+ 'place-self': [{
6605
+ 'place-self': ['auto', ...scaleAlignSecondaryAxis()]
6606
+ }],
6607
+ // Spacing
6608
+ /**
6609
+ * Padding
6610
+ * @see https://tailwindcss.com/docs/padding
6611
+ */
6612
+ p: [{
6613
+ p: scaleUnambiguousSpacing()
6614
+ }],
6615
+ /**
6616
+ * Padding X
6617
+ * @see https://tailwindcss.com/docs/padding
6618
+ */
6619
+ px: [{
6620
+ px: scaleUnambiguousSpacing()
6621
+ }],
6622
+ /**
6623
+ * Padding Y
6624
+ * @see https://tailwindcss.com/docs/padding
6625
+ */
6626
+ py: [{
6627
+ py: scaleUnambiguousSpacing()
6628
+ }],
6629
+ /**
6630
+ * Padding Start
6631
+ * @see https://tailwindcss.com/docs/padding
6632
+ */
6633
+ ps: [{
6634
+ ps: scaleUnambiguousSpacing()
6635
+ }],
6636
+ /**
6637
+ * Padding End
6638
+ * @see https://tailwindcss.com/docs/padding
6639
+ */
6640
+ pe: [{
6641
+ pe: scaleUnambiguousSpacing()
6642
+ }],
6643
+ /**
6644
+ * Padding Top
6645
+ * @see https://tailwindcss.com/docs/padding
6646
+ */
6647
+ pt: [{
6648
+ pt: scaleUnambiguousSpacing()
6649
+ }],
6650
+ /**
6651
+ * Padding Right
6652
+ * @see https://tailwindcss.com/docs/padding
6653
+ */
6654
+ pr: [{
6655
+ pr: scaleUnambiguousSpacing()
6656
+ }],
6657
+ /**
6658
+ * Padding Bottom
6659
+ * @see https://tailwindcss.com/docs/padding
6660
+ */
6661
+ pb: [{
6662
+ pb: scaleUnambiguousSpacing()
6663
+ }],
6664
+ /**
6665
+ * Padding Left
6666
+ * @see https://tailwindcss.com/docs/padding
6667
+ */
6668
+ pl: [{
6669
+ pl: scaleUnambiguousSpacing()
6670
+ }],
6671
+ /**
6672
+ * Margin
6673
+ * @see https://tailwindcss.com/docs/margin
6674
+ */
6675
+ m: [{
6676
+ m: scaleMargin()
6677
+ }],
6678
+ /**
6679
+ * Margin X
6680
+ * @see https://tailwindcss.com/docs/margin
6681
+ */
6682
+ mx: [{
6683
+ mx: scaleMargin()
6684
+ }],
6685
+ /**
6686
+ * Margin Y
6687
+ * @see https://tailwindcss.com/docs/margin
6688
+ */
6689
+ my: [{
6690
+ my: scaleMargin()
6691
+ }],
6692
+ /**
6693
+ * Margin Start
6694
+ * @see https://tailwindcss.com/docs/margin
6695
+ */
6696
+ ms: [{
6697
+ ms: scaleMargin()
6698
+ }],
6699
+ /**
6700
+ * Margin End
6701
+ * @see https://tailwindcss.com/docs/margin
6702
+ */
6703
+ me: [{
6704
+ me: scaleMargin()
6705
+ }],
6706
+ /**
6707
+ * Margin Top
6708
+ * @see https://tailwindcss.com/docs/margin
6709
+ */
6710
+ mt: [{
6711
+ mt: scaleMargin()
6712
+ }],
6713
+ /**
6714
+ * Margin Right
6715
+ * @see https://tailwindcss.com/docs/margin
6716
+ */
6717
+ mr: [{
6718
+ mr: scaleMargin()
6719
+ }],
6720
+ /**
6721
+ * Margin Bottom
6722
+ * @see https://tailwindcss.com/docs/margin
6723
+ */
6724
+ mb: [{
6725
+ mb: scaleMargin()
6726
+ }],
6727
+ /**
6728
+ * Margin Left
6729
+ * @see https://tailwindcss.com/docs/margin
6730
+ */
6731
+ ml: [{
6732
+ ml: scaleMargin()
6733
+ }],
6734
+ /**
6735
+ * Space Between X
6736
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
6737
+ */
6738
+ 'space-x': [{
6739
+ 'space-x': scaleUnambiguousSpacing()
6740
+ }],
6741
+ /**
6742
+ * Space Between X Reverse
6743
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
6744
+ */
6745
+ 'space-x-reverse': ['space-x-reverse'],
6746
+ /**
6747
+ * Space Between Y
6748
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
6749
+ */
6750
+ 'space-y': [{
6751
+ 'space-y': scaleUnambiguousSpacing()
6752
+ }],
6753
+ /**
6754
+ * Space Between Y Reverse
6755
+ * @see https://tailwindcss.com/docs/margin#adding-space-between-children
6756
+ */
6757
+ 'space-y-reverse': ['space-y-reverse'],
6758
+ // --------------
6759
+ // --- Sizing ---
6760
+ // --------------
6761
+ /**
6762
+ * Size
6763
+ * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
6764
+ */
6765
+ size: [{
6766
+ size: scaleSizing()
6767
+ }],
6768
+ /**
6769
+ * Width
6770
+ * @see https://tailwindcss.com/docs/width
6771
+ */
6772
+ w: [{
6773
+ w: [themeContainer, 'screen', ...scaleSizing()]
6774
+ }],
6775
+ /**
6776
+ * Min-Width
6777
+ * @see https://tailwindcss.com/docs/min-width
6778
+ */
6779
+ 'min-w': [{
6780
+ 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
6781
+ 'none', ...scaleSizing()]
6782
+ }],
6783
+ /**
6784
+ * Max-Width
6785
+ * @see https://tailwindcss.com/docs/max-width
6786
+ */
6787
+ 'max-w': [{
6788
+ 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
6789
+ 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
6790
+ {
6791
+ screen: [themeBreakpoint]
6792
+ }, ...scaleSizing()]
6793
+ }],
6794
+ /**
6795
+ * Height
6796
+ * @see https://tailwindcss.com/docs/height
6797
+ */
6798
+ h: [{
6799
+ h: ['screen', 'lh', ...scaleSizing()]
6800
+ }],
6801
+ /**
6802
+ * Min-Height
6803
+ * @see https://tailwindcss.com/docs/min-height
6804
+ */
6805
+ 'min-h': [{
6806
+ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]
6807
+ }],
6808
+ /**
6809
+ * Max-Height
6810
+ * @see https://tailwindcss.com/docs/max-height
6811
+ */
6812
+ 'max-h': [{
6813
+ 'max-h': ['screen', 'lh', ...scaleSizing()]
6814
+ }],
6815
+ // ------------------
6816
+ // --- Typography ---
6817
+ // ------------------
6818
+ /**
6819
+ * Font Size
6820
+ * @see https://tailwindcss.com/docs/font-size
6821
+ */
6822
+ 'font-size': [{
6823
+ text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]
6824
+ }],
6825
+ /**
6826
+ * Font Smoothing
6827
+ * @see https://tailwindcss.com/docs/font-smoothing
6828
+ */
6829
+ 'font-smoothing': ['antialiased', 'subpixel-antialiased'],
6830
+ /**
6831
+ * Font Style
6832
+ * @see https://tailwindcss.com/docs/font-style
6833
+ */
6834
+ 'font-style': ['italic', 'not-italic'],
6835
+ /**
6836
+ * Font Weight
6837
+ * @see https://tailwindcss.com/docs/font-weight
6838
+ */
6839
+ 'font-weight': [{
6840
+ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]
6841
+ }],
6842
+ /**
6843
+ * Font Stretch
6844
+ * @see https://tailwindcss.com/docs/font-stretch
6845
+ */
6846
+ 'font-stretch': [{
6847
+ 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]
6848
+ }],
6849
+ /**
6850
+ * Font Family
6851
+ * @see https://tailwindcss.com/docs/font-family
6852
+ */
6853
+ 'font-family': [{
6854
+ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]
6855
+ }],
6856
+ /**
6857
+ * Font Variant Numeric
6858
+ * @see https://tailwindcss.com/docs/font-variant-numeric
6859
+ */
6860
+ 'fvn-normal': ['normal-nums'],
6861
+ /**
6862
+ * Font Variant Numeric
6863
+ * @see https://tailwindcss.com/docs/font-variant-numeric
6864
+ */
6865
+ 'fvn-ordinal': ['ordinal'],
6866
+ /**
6867
+ * Font Variant Numeric
6868
+ * @see https://tailwindcss.com/docs/font-variant-numeric
6869
+ */
6870
+ 'fvn-slashed-zero': ['slashed-zero'],
6871
+ /**
6872
+ * Font Variant Numeric
6873
+ * @see https://tailwindcss.com/docs/font-variant-numeric
6874
+ */
6875
+ 'fvn-figure': ['lining-nums', 'oldstyle-nums'],
6876
+ /**
6877
+ * Font Variant Numeric
6878
+ * @see https://tailwindcss.com/docs/font-variant-numeric
6879
+ */
6880
+ 'fvn-spacing': ['proportional-nums', 'tabular-nums'],
6881
+ /**
6882
+ * Font Variant Numeric
6883
+ * @see https://tailwindcss.com/docs/font-variant-numeric
6884
+ */
6885
+ 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],
6886
+ /**
6887
+ * Letter Spacing
6888
+ * @see https://tailwindcss.com/docs/letter-spacing
6889
+ */
6890
+ tracking: [{
6891
+ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
6892
+ }],
6893
+ /**
6894
+ * Line Clamp
6895
+ * @see https://tailwindcss.com/docs/line-clamp
6896
+ */
6897
+ 'line-clamp': [{
6898
+ 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]
6899
+ }],
6900
+ /**
6901
+ * Line Height
6902
+ * @see https://tailwindcss.com/docs/line-height
6903
+ */
6904
+ leading: [{
6905
+ leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
6906
+ themeLeading, ...scaleUnambiguousSpacing()]
6907
+ }],
6908
+ /**
6909
+ * List Style Image
6910
+ * @see https://tailwindcss.com/docs/list-style-image
6911
+ */
6912
+ 'list-image': [{
6913
+ 'list-image': ['none', isArbitraryVariable, isArbitraryValue]
6914
+ }],
6915
+ /**
6916
+ * List Style Position
6917
+ * @see https://tailwindcss.com/docs/list-style-position
6918
+ */
6919
+ 'list-style-position': [{
6920
+ list: ['inside', 'outside']
6921
+ }],
6922
+ /**
6923
+ * List Style Type
6924
+ * @see https://tailwindcss.com/docs/list-style-type
6925
+ */
6926
+ 'list-style-type': [{
6927
+ list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]
6928
+ }],
6929
+ /**
6930
+ * Text Alignment
6931
+ * @see https://tailwindcss.com/docs/text-align
6932
+ */
6933
+ 'text-alignment': [{
6934
+ text: ['left', 'center', 'right', 'justify', 'start', 'end']
6935
+ }],
6936
+ /**
6937
+ * Placeholder Color
6938
+ * @deprecated since Tailwind CSS v3.0.0
6939
+ * @see https://v3.tailwindcss.com/docs/placeholder-color
6940
+ */
6941
+ 'placeholder-color': [{
6942
+ placeholder: scaleColor()
6943
+ }],
6944
+ /**
6945
+ * Text Color
6946
+ * @see https://tailwindcss.com/docs/text-color
6947
+ */
6948
+ 'text-color': [{
6949
+ text: scaleColor()
6950
+ }],
6951
+ /**
6952
+ * Text Decoration
6953
+ * @see https://tailwindcss.com/docs/text-decoration
6954
+ */
6955
+ 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],
6956
+ /**
6957
+ * Text Decoration Style
6958
+ * @see https://tailwindcss.com/docs/text-decoration-style
6959
+ */
6960
+ 'text-decoration-style': [{
6961
+ decoration: [...scaleLineStyle(), 'wavy']
6962
+ }],
6963
+ /**
6964
+ * Text Decoration Thickness
6965
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
6966
+ */
6967
+ 'text-decoration-thickness': [{
6968
+ decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]
6969
+ }],
6970
+ /**
6971
+ * Text Decoration Color
6972
+ * @see https://tailwindcss.com/docs/text-decoration-color
6973
+ */
6974
+ 'text-decoration-color': [{
6975
+ decoration: scaleColor()
6976
+ }],
6977
+ /**
6978
+ * Text Underline Offset
6979
+ * @see https://tailwindcss.com/docs/text-underline-offset
6980
+ */
6981
+ 'underline-offset': [{
6982
+ 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]
6983
+ }],
6984
+ /**
6985
+ * Text Transform
6986
+ * @see https://tailwindcss.com/docs/text-transform
6987
+ */
6988
+ 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],
6989
+ /**
6990
+ * Text Overflow
6991
+ * @see https://tailwindcss.com/docs/text-overflow
6992
+ */
6993
+ 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],
6994
+ /**
6995
+ * Text Wrap
6996
+ * @see https://tailwindcss.com/docs/text-wrap
6997
+ */
6998
+ 'text-wrap': [{
6999
+ text: ['wrap', 'nowrap', 'balance', 'pretty']
7000
+ }],
7001
+ /**
7002
+ * Text Indent
7003
+ * @see https://tailwindcss.com/docs/text-indent
7004
+ */
7005
+ indent: [{
7006
+ indent: scaleUnambiguousSpacing()
7007
+ }],
7008
+ /**
7009
+ * Vertical Alignment
7010
+ * @see https://tailwindcss.com/docs/vertical-align
7011
+ */
7012
+ 'vertical-align': [{
7013
+ align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]
7014
+ }],
7015
+ /**
7016
+ * Whitespace
7017
+ * @see https://tailwindcss.com/docs/whitespace
7018
+ */
7019
+ whitespace: [{
7020
+ whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']
7021
+ }],
7022
+ /**
7023
+ * Word Break
7024
+ * @see https://tailwindcss.com/docs/word-break
7025
+ */
7026
+ break: [{
7027
+ break: ['normal', 'words', 'all', 'keep']
7028
+ }],
7029
+ /**
7030
+ * Overflow Wrap
7031
+ * @see https://tailwindcss.com/docs/overflow-wrap
7032
+ */
7033
+ wrap: [{
7034
+ wrap: ['break-word', 'anywhere', 'normal']
7035
+ }],
7036
+ /**
7037
+ * Hyphens
7038
+ * @see https://tailwindcss.com/docs/hyphens
7039
+ */
7040
+ hyphens: [{
7041
+ hyphens: ['none', 'manual', 'auto']
7042
+ }],
7043
+ /**
7044
+ * Content
7045
+ * @see https://tailwindcss.com/docs/content
7046
+ */
7047
+ content: [{
7048
+ content: ['none', isArbitraryVariable, isArbitraryValue]
7049
+ }],
7050
+ // -------------------
7051
+ // --- Backgrounds ---
7052
+ // -------------------
7053
+ /**
7054
+ * Background Attachment
7055
+ * @see https://tailwindcss.com/docs/background-attachment
7056
+ */
7057
+ 'bg-attachment': [{
7058
+ bg: ['fixed', 'local', 'scroll']
7059
+ }],
7060
+ /**
7061
+ * Background Clip
7062
+ * @see https://tailwindcss.com/docs/background-clip
7063
+ */
7064
+ 'bg-clip': [{
7065
+ 'bg-clip': ['border', 'padding', 'content', 'text']
7066
+ }],
7067
+ /**
7068
+ * Background Origin
7069
+ * @see https://tailwindcss.com/docs/background-origin
7070
+ */
7071
+ 'bg-origin': [{
7072
+ 'bg-origin': ['border', 'padding', 'content']
7073
+ }],
7074
+ /**
7075
+ * Background Position
7076
+ * @see https://tailwindcss.com/docs/background-position
7077
+ */
7078
+ 'bg-position': [{
7079
+ bg: scaleBgPosition()
7080
+ }],
7081
+ /**
7082
+ * Background Repeat
7083
+ * @see https://tailwindcss.com/docs/background-repeat
7084
+ */
7085
+ 'bg-repeat': [{
7086
+ bg: scaleBgRepeat()
7087
+ }],
7088
+ /**
7089
+ * Background Size
7090
+ * @see https://tailwindcss.com/docs/background-size
7091
+ */
7092
+ 'bg-size': [{
7093
+ bg: scaleBgSize()
7094
+ }],
7095
+ /**
7096
+ * Background Image
7097
+ * @see https://tailwindcss.com/docs/background-image
7098
+ */
7099
+ 'bg-image': [{
7100
+ bg: ['none', {
7101
+ linear: [{
7102
+ to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']
7103
+ }, isInteger, isArbitraryVariable, isArbitraryValue],
7104
+ radial: ['', isArbitraryVariable, isArbitraryValue],
7105
+ conic: [isInteger, isArbitraryVariable, isArbitraryValue]
7106
+ }, isArbitraryVariableImage, isArbitraryImage]
7107
+ }],
7108
+ /**
7109
+ * Background Color
7110
+ * @see https://tailwindcss.com/docs/background-color
7111
+ */
7112
+ 'bg-color': [{
7113
+ bg: scaleColor()
7114
+ }],
7115
+ /**
7116
+ * Gradient Color Stops From Position
7117
+ * @see https://tailwindcss.com/docs/gradient-color-stops
7118
+ */
7119
+ 'gradient-from-pos': [{
7120
+ from: scaleGradientStopPosition()
7121
+ }],
7122
+ /**
7123
+ * Gradient Color Stops Via Position
7124
+ * @see https://tailwindcss.com/docs/gradient-color-stops
7125
+ */
7126
+ 'gradient-via-pos': [{
7127
+ via: scaleGradientStopPosition()
7128
+ }],
7129
+ /**
7130
+ * Gradient Color Stops To Position
7131
+ * @see https://tailwindcss.com/docs/gradient-color-stops
7132
+ */
7133
+ 'gradient-to-pos': [{
7134
+ to: scaleGradientStopPosition()
7135
+ }],
7136
+ /**
7137
+ * Gradient Color Stops From
7138
+ * @see https://tailwindcss.com/docs/gradient-color-stops
7139
+ */
7140
+ 'gradient-from': [{
7141
+ from: scaleColor()
7142
+ }],
7143
+ /**
7144
+ * Gradient Color Stops Via
7145
+ * @see https://tailwindcss.com/docs/gradient-color-stops
7146
+ */
7147
+ 'gradient-via': [{
7148
+ via: scaleColor()
7149
+ }],
7150
+ /**
7151
+ * Gradient Color Stops To
7152
+ * @see https://tailwindcss.com/docs/gradient-color-stops
7153
+ */
7154
+ 'gradient-to': [{
7155
+ to: scaleColor()
7156
+ }],
7157
+ // ---------------
7158
+ // --- Borders ---
7159
+ // ---------------
7160
+ /**
7161
+ * Border Radius
7162
+ * @see https://tailwindcss.com/docs/border-radius
7163
+ */
7164
+ rounded: [{
7165
+ rounded: scaleRadius()
7166
+ }],
7167
+ /**
7168
+ * Border Radius Start
7169
+ * @see https://tailwindcss.com/docs/border-radius
7170
+ */
7171
+ 'rounded-s': [{
7172
+ 'rounded-s': scaleRadius()
7173
+ }],
7174
+ /**
7175
+ * Border Radius End
7176
+ * @see https://tailwindcss.com/docs/border-radius
7177
+ */
7178
+ 'rounded-e': [{
7179
+ 'rounded-e': scaleRadius()
7180
+ }],
7181
+ /**
7182
+ * Border Radius Top
7183
+ * @see https://tailwindcss.com/docs/border-radius
7184
+ */
7185
+ 'rounded-t': [{
7186
+ 'rounded-t': scaleRadius()
7187
+ }],
7188
+ /**
7189
+ * Border Radius Right
7190
+ * @see https://tailwindcss.com/docs/border-radius
7191
+ */
7192
+ 'rounded-r': [{
7193
+ 'rounded-r': scaleRadius()
7194
+ }],
7195
+ /**
7196
+ * Border Radius Bottom
7197
+ * @see https://tailwindcss.com/docs/border-radius
7198
+ */
7199
+ 'rounded-b': [{
7200
+ 'rounded-b': scaleRadius()
7201
+ }],
7202
+ /**
7203
+ * Border Radius Left
7204
+ * @see https://tailwindcss.com/docs/border-radius
7205
+ */
7206
+ 'rounded-l': [{
7207
+ 'rounded-l': scaleRadius()
7208
+ }],
7209
+ /**
7210
+ * Border Radius Start Start
7211
+ * @see https://tailwindcss.com/docs/border-radius
7212
+ */
7213
+ 'rounded-ss': [{
7214
+ 'rounded-ss': scaleRadius()
7215
+ }],
7216
+ /**
7217
+ * Border Radius Start End
7218
+ * @see https://tailwindcss.com/docs/border-radius
7219
+ */
7220
+ 'rounded-se': [{
7221
+ 'rounded-se': scaleRadius()
7222
+ }],
7223
+ /**
7224
+ * Border Radius End End
7225
+ * @see https://tailwindcss.com/docs/border-radius
7226
+ */
7227
+ 'rounded-ee': [{
7228
+ 'rounded-ee': scaleRadius()
7229
+ }],
7230
+ /**
7231
+ * Border Radius End Start
7232
+ * @see https://tailwindcss.com/docs/border-radius
7233
+ */
7234
+ 'rounded-es': [{
7235
+ 'rounded-es': scaleRadius()
7236
+ }],
7237
+ /**
7238
+ * Border Radius Top Left
7239
+ * @see https://tailwindcss.com/docs/border-radius
7240
+ */
7241
+ 'rounded-tl': [{
7242
+ 'rounded-tl': scaleRadius()
7243
+ }],
7244
+ /**
7245
+ * Border Radius Top Right
7246
+ * @see https://tailwindcss.com/docs/border-radius
7247
+ */
7248
+ 'rounded-tr': [{
7249
+ 'rounded-tr': scaleRadius()
7250
+ }],
7251
+ /**
7252
+ * Border Radius Bottom Right
7253
+ * @see https://tailwindcss.com/docs/border-radius
7254
+ */
7255
+ 'rounded-br': [{
7256
+ 'rounded-br': scaleRadius()
7257
+ }],
7258
+ /**
7259
+ * Border Radius Bottom Left
7260
+ * @see https://tailwindcss.com/docs/border-radius
7261
+ */
7262
+ 'rounded-bl': [{
7263
+ 'rounded-bl': scaleRadius()
7264
+ }],
7265
+ /**
7266
+ * Border Width
7267
+ * @see https://tailwindcss.com/docs/border-width
7268
+ */
7269
+ 'border-w': [{
7270
+ border: scaleBorderWidth()
7271
+ }],
7272
+ /**
7273
+ * Border Width X
7274
+ * @see https://tailwindcss.com/docs/border-width
7275
+ */
7276
+ 'border-w-x': [{
7277
+ 'border-x': scaleBorderWidth()
7278
+ }],
7279
+ /**
7280
+ * Border Width Y
7281
+ * @see https://tailwindcss.com/docs/border-width
7282
+ */
7283
+ 'border-w-y': [{
7284
+ 'border-y': scaleBorderWidth()
7285
+ }],
7286
+ /**
7287
+ * Border Width Start
7288
+ * @see https://tailwindcss.com/docs/border-width
7289
+ */
7290
+ 'border-w-s': [{
7291
+ 'border-s': scaleBorderWidth()
7292
+ }],
7293
+ /**
7294
+ * Border Width End
7295
+ * @see https://tailwindcss.com/docs/border-width
7296
+ */
7297
+ 'border-w-e': [{
7298
+ 'border-e': scaleBorderWidth()
7299
+ }],
7300
+ /**
7301
+ * Border Width Top
7302
+ * @see https://tailwindcss.com/docs/border-width
7303
+ */
7304
+ 'border-w-t': [{
7305
+ 'border-t': scaleBorderWidth()
7306
+ }],
7307
+ /**
7308
+ * Border Width Right
7309
+ * @see https://tailwindcss.com/docs/border-width
7310
+ */
7311
+ 'border-w-r': [{
7312
+ 'border-r': scaleBorderWidth()
7313
+ }],
7314
+ /**
7315
+ * Border Width Bottom
7316
+ * @see https://tailwindcss.com/docs/border-width
7317
+ */
7318
+ 'border-w-b': [{
7319
+ 'border-b': scaleBorderWidth()
7320
+ }],
7321
+ /**
7322
+ * Border Width Left
7323
+ * @see https://tailwindcss.com/docs/border-width
7324
+ */
7325
+ 'border-w-l': [{
7326
+ 'border-l': scaleBorderWidth()
7327
+ }],
7328
+ /**
7329
+ * Divide Width X
7330
+ * @see https://tailwindcss.com/docs/border-width#between-children
7331
+ */
7332
+ 'divide-x': [{
7333
+ 'divide-x': scaleBorderWidth()
7334
+ }],
7335
+ /**
7336
+ * Divide Width X Reverse
7337
+ * @see https://tailwindcss.com/docs/border-width#between-children
7338
+ */
7339
+ 'divide-x-reverse': ['divide-x-reverse'],
7340
+ /**
7341
+ * Divide Width Y
7342
+ * @see https://tailwindcss.com/docs/border-width#between-children
7343
+ */
7344
+ 'divide-y': [{
7345
+ 'divide-y': scaleBorderWidth()
7346
+ }],
7347
+ /**
7348
+ * Divide Width Y Reverse
7349
+ * @see https://tailwindcss.com/docs/border-width#between-children
7350
+ */
7351
+ 'divide-y-reverse': ['divide-y-reverse'],
7352
+ /**
7353
+ * Border Style
7354
+ * @see https://tailwindcss.com/docs/border-style
7355
+ */
7356
+ 'border-style': [{
7357
+ border: [...scaleLineStyle(), 'hidden', 'none']
7358
+ }],
7359
+ /**
7360
+ * Divide Style
7361
+ * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
7362
+ */
7363
+ 'divide-style': [{
7364
+ divide: [...scaleLineStyle(), 'hidden', 'none']
7365
+ }],
7366
+ /**
7367
+ * Border Color
7368
+ * @see https://tailwindcss.com/docs/border-color
7369
+ */
7370
+ 'border-color': [{
7371
+ border: scaleColor()
7372
+ }],
7373
+ /**
7374
+ * Border Color X
7375
+ * @see https://tailwindcss.com/docs/border-color
7376
+ */
7377
+ 'border-color-x': [{
7378
+ 'border-x': scaleColor()
7379
+ }],
7380
+ /**
7381
+ * Border Color Y
7382
+ * @see https://tailwindcss.com/docs/border-color
7383
+ */
7384
+ 'border-color-y': [{
7385
+ 'border-y': scaleColor()
7386
+ }],
7387
+ /**
7388
+ * Border Color S
7389
+ * @see https://tailwindcss.com/docs/border-color
7390
+ */
7391
+ 'border-color-s': [{
7392
+ 'border-s': scaleColor()
7393
+ }],
7394
+ /**
7395
+ * Border Color E
7396
+ * @see https://tailwindcss.com/docs/border-color
7397
+ */
7398
+ 'border-color-e': [{
7399
+ 'border-e': scaleColor()
7400
+ }],
7401
+ /**
7402
+ * Border Color Top
7403
+ * @see https://tailwindcss.com/docs/border-color
7404
+ */
7405
+ 'border-color-t': [{
7406
+ 'border-t': scaleColor()
7407
+ }],
7408
+ /**
7409
+ * Border Color Right
7410
+ * @see https://tailwindcss.com/docs/border-color
7411
+ */
7412
+ 'border-color-r': [{
7413
+ 'border-r': scaleColor()
7414
+ }],
7415
+ /**
7416
+ * Border Color Bottom
7417
+ * @see https://tailwindcss.com/docs/border-color
7418
+ */
7419
+ 'border-color-b': [{
7420
+ 'border-b': scaleColor()
7421
+ }],
7422
+ /**
7423
+ * Border Color Left
7424
+ * @see https://tailwindcss.com/docs/border-color
7425
+ */
7426
+ 'border-color-l': [{
7427
+ 'border-l': scaleColor()
7428
+ }],
7429
+ /**
7430
+ * Divide Color
7431
+ * @see https://tailwindcss.com/docs/divide-color
7432
+ */
7433
+ 'divide-color': [{
7434
+ divide: scaleColor()
7435
+ }],
7436
+ /**
7437
+ * Outline Style
7438
+ * @see https://tailwindcss.com/docs/outline-style
7439
+ */
7440
+ 'outline-style': [{
7441
+ outline: [...scaleLineStyle(), 'none', 'hidden']
7442
+ }],
7443
+ /**
7444
+ * Outline Offset
7445
+ * @see https://tailwindcss.com/docs/outline-offset
7446
+ */
7447
+ 'outline-offset': [{
7448
+ 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]
7449
+ }],
7450
+ /**
7451
+ * Outline Width
7452
+ * @see https://tailwindcss.com/docs/outline-width
7453
+ */
7454
+ 'outline-w': [{
7455
+ outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]
7456
+ }],
7457
+ /**
7458
+ * Outline Color
7459
+ * @see https://tailwindcss.com/docs/outline-color
7460
+ */
7461
+ 'outline-color': [{
7462
+ outline: scaleColor()
7463
+ }],
7464
+ // ---------------
7465
+ // --- Effects ---
7466
+ // ---------------
7467
+ /**
7468
+ * Box Shadow
7469
+ * @see https://tailwindcss.com/docs/box-shadow
7470
+ */
7471
+ shadow: [{
7472
+ shadow: [
7473
+ // Deprecated since Tailwind CSS v4.0.0
7474
+ '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]
7475
+ }],
7476
+ /**
7477
+ * Box Shadow Color
7478
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
7479
+ */
7480
+ 'shadow-color': [{
7481
+ shadow: scaleColor()
7482
+ }],
7483
+ /**
7484
+ * Inset Box Shadow
7485
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
7486
+ */
7487
+ 'inset-shadow': [{
7488
+ 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
7489
+ }],
7490
+ /**
7491
+ * Inset Box Shadow Color
7492
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
7493
+ */
7494
+ 'inset-shadow-color': [{
7495
+ 'inset-shadow': scaleColor()
7496
+ }],
7497
+ /**
7498
+ * Ring Width
7499
+ * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
7500
+ */
7501
+ 'ring-w': [{
7502
+ ring: scaleBorderWidth()
7503
+ }],
7504
+ /**
7505
+ * Ring Width Inset
7506
+ * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
7507
+ * @deprecated since Tailwind CSS v4.0.0
7508
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
7509
+ */
7510
+ 'ring-w-inset': ['ring-inset'],
7511
+ /**
7512
+ * Ring Color
7513
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
7514
+ */
7515
+ 'ring-color': [{
7516
+ ring: scaleColor()
7517
+ }],
7518
+ /**
7519
+ * Ring Offset Width
7520
+ * @see https://v3.tailwindcss.com/docs/ring-offset-width
7521
+ * @deprecated since Tailwind CSS v4.0.0
7522
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
7523
+ */
7524
+ 'ring-offset-w': [{
7525
+ 'ring-offset': [isNumber, isArbitraryLength]
7526
+ }],
7527
+ /**
7528
+ * Ring Offset Color
7529
+ * @see https://v3.tailwindcss.com/docs/ring-offset-color
7530
+ * @deprecated since Tailwind CSS v4.0.0
7531
+ * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
7532
+ */
7533
+ 'ring-offset-color': [{
7534
+ 'ring-offset': scaleColor()
7535
+ }],
7536
+ /**
7537
+ * Inset Ring Width
7538
+ * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
7539
+ */
7540
+ 'inset-ring-w': [{
7541
+ 'inset-ring': scaleBorderWidth()
7542
+ }],
7543
+ /**
7544
+ * Inset Ring Color
7545
+ * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
7546
+ */
7547
+ 'inset-ring-color': [{
7548
+ 'inset-ring': scaleColor()
7549
+ }],
7550
+ /**
7551
+ * Text Shadow
7552
+ * @see https://tailwindcss.com/docs/text-shadow
7553
+ */
7554
+ 'text-shadow': [{
7555
+ 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
7556
+ }],
7557
+ /**
7558
+ * Text Shadow Color
7559
+ * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
7560
+ */
7561
+ 'text-shadow-color': [{
7562
+ 'text-shadow': scaleColor()
7563
+ }],
7564
+ /**
7565
+ * Opacity
7566
+ * @see https://tailwindcss.com/docs/opacity
7567
+ */
7568
+ opacity: [{
7569
+ opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
7570
+ }],
7571
+ /**
7572
+ * Mix Blend Mode
7573
+ * @see https://tailwindcss.com/docs/mix-blend-mode
7574
+ */
7575
+ 'mix-blend': [{
7576
+ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']
7577
+ }],
7578
+ /**
7579
+ * Background Blend Mode
7580
+ * @see https://tailwindcss.com/docs/background-blend-mode
7581
+ */
7582
+ 'bg-blend': [{
7583
+ 'bg-blend': scaleBlendMode()
7584
+ }],
7585
+ /**
7586
+ * Mask Clip
7587
+ * @see https://tailwindcss.com/docs/mask-clip
7588
+ */
7589
+ 'mask-clip': [{
7590
+ 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']
7591
+ }, 'mask-no-clip'],
7592
+ /**
7593
+ * Mask Composite
7594
+ * @see https://tailwindcss.com/docs/mask-composite
7595
+ */
7596
+ 'mask-composite': [{
7597
+ mask: ['add', 'subtract', 'intersect', 'exclude']
7598
+ }],
7599
+ /**
7600
+ * Mask Image
7601
+ * @see https://tailwindcss.com/docs/mask-image
7602
+ */
7603
+ 'mask-image-linear-pos': [{
7604
+ 'mask-linear': [isNumber]
7605
+ }],
7606
+ 'mask-image-linear-from-pos': [{
7607
+ 'mask-linear-from': scaleMaskImagePosition()
7608
+ }],
7609
+ 'mask-image-linear-to-pos': [{
7610
+ 'mask-linear-to': scaleMaskImagePosition()
7611
+ }],
7612
+ 'mask-image-linear-from-color': [{
7613
+ 'mask-linear-from': scaleColor()
7614
+ }],
7615
+ 'mask-image-linear-to-color': [{
7616
+ 'mask-linear-to': scaleColor()
7617
+ }],
7618
+ 'mask-image-t-from-pos': [{
7619
+ 'mask-t-from': scaleMaskImagePosition()
7620
+ }],
7621
+ 'mask-image-t-to-pos': [{
7622
+ 'mask-t-to': scaleMaskImagePosition()
7623
+ }],
7624
+ 'mask-image-t-from-color': [{
7625
+ 'mask-t-from': scaleColor()
7626
+ }],
7627
+ 'mask-image-t-to-color': [{
7628
+ 'mask-t-to': scaleColor()
7629
+ }],
7630
+ 'mask-image-r-from-pos': [{
7631
+ 'mask-r-from': scaleMaskImagePosition()
7632
+ }],
7633
+ 'mask-image-r-to-pos': [{
7634
+ 'mask-r-to': scaleMaskImagePosition()
7635
+ }],
7636
+ 'mask-image-r-from-color': [{
7637
+ 'mask-r-from': scaleColor()
7638
+ }],
7639
+ 'mask-image-r-to-color': [{
7640
+ 'mask-r-to': scaleColor()
7641
+ }],
7642
+ 'mask-image-b-from-pos': [{
7643
+ 'mask-b-from': scaleMaskImagePosition()
7644
+ }],
7645
+ 'mask-image-b-to-pos': [{
7646
+ 'mask-b-to': scaleMaskImagePosition()
7647
+ }],
7648
+ 'mask-image-b-from-color': [{
7649
+ 'mask-b-from': scaleColor()
7650
+ }],
7651
+ 'mask-image-b-to-color': [{
7652
+ 'mask-b-to': scaleColor()
7653
+ }],
7654
+ 'mask-image-l-from-pos': [{
7655
+ 'mask-l-from': scaleMaskImagePosition()
7656
+ }],
7657
+ 'mask-image-l-to-pos': [{
7658
+ 'mask-l-to': scaleMaskImagePosition()
7659
+ }],
7660
+ 'mask-image-l-from-color': [{
7661
+ 'mask-l-from': scaleColor()
7662
+ }],
7663
+ 'mask-image-l-to-color': [{
7664
+ 'mask-l-to': scaleColor()
7665
+ }],
7666
+ 'mask-image-x-from-pos': [{
7667
+ 'mask-x-from': scaleMaskImagePosition()
7668
+ }],
7669
+ 'mask-image-x-to-pos': [{
7670
+ 'mask-x-to': scaleMaskImagePosition()
7671
+ }],
7672
+ 'mask-image-x-from-color': [{
7673
+ 'mask-x-from': scaleColor()
7674
+ }],
7675
+ 'mask-image-x-to-color': [{
7676
+ 'mask-x-to': scaleColor()
7677
+ }],
7678
+ 'mask-image-y-from-pos': [{
7679
+ 'mask-y-from': scaleMaskImagePosition()
7680
+ }],
7681
+ 'mask-image-y-to-pos': [{
7682
+ 'mask-y-to': scaleMaskImagePosition()
7683
+ }],
7684
+ 'mask-image-y-from-color': [{
7685
+ 'mask-y-from': scaleColor()
7686
+ }],
7687
+ 'mask-image-y-to-color': [{
7688
+ 'mask-y-to': scaleColor()
7689
+ }],
7690
+ 'mask-image-radial': [{
7691
+ 'mask-radial': [isArbitraryVariable, isArbitraryValue]
7692
+ }],
7693
+ 'mask-image-radial-from-pos': [{
7694
+ 'mask-radial-from': scaleMaskImagePosition()
7695
+ }],
7696
+ 'mask-image-radial-to-pos': [{
7697
+ 'mask-radial-to': scaleMaskImagePosition()
7698
+ }],
7699
+ 'mask-image-radial-from-color': [{
7700
+ 'mask-radial-from': scaleColor()
7701
+ }],
7702
+ 'mask-image-radial-to-color': [{
7703
+ 'mask-radial-to': scaleColor()
7704
+ }],
7705
+ 'mask-image-radial-shape': [{
7706
+ 'mask-radial': ['circle', 'ellipse']
7707
+ }],
7708
+ 'mask-image-radial-size': [{
7709
+ 'mask-radial': [{
7710
+ closest: ['side', 'corner'],
7711
+ farthest: ['side', 'corner']
7712
+ }]
7713
+ }],
7714
+ 'mask-image-radial-pos': [{
7715
+ 'mask-radial-at': scalePosition()
7716
+ }],
7717
+ 'mask-image-conic-pos': [{
7718
+ 'mask-conic': [isNumber]
7719
+ }],
7720
+ 'mask-image-conic-from-pos': [{
7721
+ 'mask-conic-from': scaleMaskImagePosition()
7722
+ }],
7723
+ 'mask-image-conic-to-pos': [{
7724
+ 'mask-conic-to': scaleMaskImagePosition()
7725
+ }],
7726
+ 'mask-image-conic-from-color': [{
7727
+ 'mask-conic-from': scaleColor()
7728
+ }],
7729
+ 'mask-image-conic-to-color': [{
7730
+ 'mask-conic-to': scaleColor()
7731
+ }],
7732
+ /**
7733
+ * Mask Mode
7734
+ * @see https://tailwindcss.com/docs/mask-mode
7735
+ */
7736
+ 'mask-mode': [{
7737
+ mask: ['alpha', 'luminance', 'match']
7738
+ }],
7739
+ /**
7740
+ * Mask Origin
7741
+ * @see https://tailwindcss.com/docs/mask-origin
7742
+ */
7743
+ 'mask-origin': [{
7744
+ 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']
7745
+ }],
7746
+ /**
7747
+ * Mask Position
7748
+ * @see https://tailwindcss.com/docs/mask-position
7749
+ */
7750
+ 'mask-position': [{
7751
+ mask: scaleBgPosition()
7752
+ }],
7753
+ /**
7754
+ * Mask Repeat
7755
+ * @see https://tailwindcss.com/docs/mask-repeat
7756
+ */
7757
+ 'mask-repeat': [{
7758
+ mask: scaleBgRepeat()
7759
+ }],
7760
+ /**
7761
+ * Mask Size
7762
+ * @see https://tailwindcss.com/docs/mask-size
7763
+ */
7764
+ 'mask-size': [{
7765
+ mask: scaleBgSize()
7766
+ }],
7767
+ /**
7768
+ * Mask Type
7769
+ * @see https://tailwindcss.com/docs/mask-type
7770
+ */
7771
+ 'mask-type': [{
7772
+ 'mask-type': ['alpha', 'luminance']
7773
+ }],
7774
+ /**
7775
+ * Mask Image
7776
+ * @see https://tailwindcss.com/docs/mask-image
7777
+ */
7778
+ 'mask-image': [{
7779
+ mask: ['none', isArbitraryVariable, isArbitraryValue]
7780
+ }],
7781
+ // ---------------
7782
+ // --- Filters ---
7783
+ // ---------------
7784
+ /**
7785
+ * Filter
7786
+ * @see https://tailwindcss.com/docs/filter
7787
+ */
7788
+ filter: [{
7789
+ filter: [
7790
+ // Deprecated since Tailwind CSS v3.0.0
7791
+ '', 'none', isArbitraryVariable, isArbitraryValue]
7792
+ }],
7793
+ /**
7794
+ * Blur
7795
+ * @see https://tailwindcss.com/docs/blur
7796
+ */
7797
+ blur: [{
7798
+ blur: scaleBlur()
7799
+ }],
7800
+ /**
7801
+ * Brightness
7802
+ * @see https://tailwindcss.com/docs/brightness
7803
+ */
7804
+ brightness: [{
7805
+ brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
7806
+ }],
7807
+ /**
7808
+ * Contrast
7809
+ * @see https://tailwindcss.com/docs/contrast
7810
+ */
7811
+ contrast: [{
7812
+ contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
7813
+ }],
7814
+ /**
7815
+ * Drop Shadow
7816
+ * @see https://tailwindcss.com/docs/drop-shadow
7817
+ */
7818
+ 'drop-shadow': [{
7819
+ 'drop-shadow': [
7820
+ // Deprecated since Tailwind CSS v4.0.0
7821
+ '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]
7822
+ }],
7823
+ /**
7824
+ * Drop Shadow Color
7825
+ * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
7826
+ */
7827
+ 'drop-shadow-color': [{
7828
+ 'drop-shadow': scaleColor()
7829
+ }],
7830
+ /**
7831
+ * Grayscale
7832
+ * @see https://tailwindcss.com/docs/grayscale
7833
+ */
7834
+ grayscale: [{
7835
+ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]
7836
+ }],
7837
+ /**
7838
+ * Hue Rotate
7839
+ * @see https://tailwindcss.com/docs/hue-rotate
7840
+ */
7841
+ 'hue-rotate': [{
7842
+ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]
7843
+ }],
7844
+ /**
7845
+ * Invert
7846
+ * @see https://tailwindcss.com/docs/invert
7847
+ */
7848
+ invert: [{
7849
+ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]
7850
+ }],
7851
+ /**
7852
+ * Saturate
7853
+ * @see https://tailwindcss.com/docs/saturate
7854
+ */
7855
+ saturate: [{
7856
+ saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
7857
+ }],
7858
+ /**
7859
+ * Sepia
7860
+ * @see https://tailwindcss.com/docs/sepia
7861
+ */
7862
+ sepia: [{
7863
+ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]
7864
+ }],
7865
+ /**
7866
+ * Backdrop Filter
7867
+ * @see https://tailwindcss.com/docs/backdrop-filter
7868
+ */
7869
+ 'backdrop-filter': [{
7870
+ 'backdrop-filter': [
7871
+ // Deprecated since Tailwind CSS v3.0.0
7872
+ '', 'none', isArbitraryVariable, isArbitraryValue]
7873
+ }],
7874
+ /**
7875
+ * Backdrop Blur
7876
+ * @see https://tailwindcss.com/docs/backdrop-blur
7877
+ */
7878
+ 'backdrop-blur': [{
7879
+ 'backdrop-blur': scaleBlur()
7880
+ }],
7881
+ /**
7882
+ * Backdrop Brightness
7883
+ * @see https://tailwindcss.com/docs/backdrop-brightness
7884
+ */
7885
+ 'backdrop-brightness': [{
7886
+ 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]
7887
+ }],
7888
+ /**
7889
+ * Backdrop Contrast
7890
+ * @see https://tailwindcss.com/docs/backdrop-contrast
7891
+ */
7892
+ 'backdrop-contrast': [{
7893
+ 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]
7894
+ }],
7895
+ /**
7896
+ * Backdrop Grayscale
7897
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
7898
+ */
7899
+ 'backdrop-grayscale': [{
7900
+ 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]
7901
+ }],
7902
+ /**
7903
+ * Backdrop Hue Rotate
7904
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
7905
+ */
7906
+ 'backdrop-hue-rotate': [{
7907
+ 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]
7908
+ }],
7909
+ /**
7910
+ * Backdrop Invert
7911
+ * @see https://tailwindcss.com/docs/backdrop-invert
7912
+ */
7913
+ 'backdrop-invert': [{
7914
+ 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]
7915
+ }],
7916
+ /**
7917
+ * Backdrop Opacity
7918
+ * @see https://tailwindcss.com/docs/backdrop-opacity
7919
+ */
7920
+ 'backdrop-opacity': [{
7921
+ 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]
7922
+ }],
7923
+ /**
7924
+ * Backdrop Saturate
7925
+ * @see https://tailwindcss.com/docs/backdrop-saturate
7926
+ */
7927
+ 'backdrop-saturate': [{
7928
+ 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]
7929
+ }],
7930
+ /**
7931
+ * Backdrop Sepia
7932
+ * @see https://tailwindcss.com/docs/backdrop-sepia
7933
+ */
7934
+ 'backdrop-sepia': [{
7935
+ 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]
7936
+ }],
7937
+ // --------------
7938
+ // --- Tables ---
7939
+ // --------------
7940
+ /**
7941
+ * Border Collapse
7942
+ * @see https://tailwindcss.com/docs/border-collapse
7943
+ */
7944
+ 'border-collapse': [{
7945
+ border: ['collapse', 'separate']
7946
+ }],
7947
+ /**
7948
+ * Border Spacing
7949
+ * @see https://tailwindcss.com/docs/border-spacing
7950
+ */
7951
+ 'border-spacing': [{
7952
+ 'border-spacing': scaleUnambiguousSpacing()
7953
+ }],
7954
+ /**
7955
+ * Border Spacing X
7956
+ * @see https://tailwindcss.com/docs/border-spacing
7957
+ */
7958
+ 'border-spacing-x': [{
7959
+ 'border-spacing-x': scaleUnambiguousSpacing()
7960
+ }],
7961
+ /**
7962
+ * Border Spacing Y
7963
+ * @see https://tailwindcss.com/docs/border-spacing
7964
+ */
7965
+ 'border-spacing-y': [{
7966
+ 'border-spacing-y': scaleUnambiguousSpacing()
7967
+ }],
7968
+ /**
7969
+ * Table Layout
7970
+ * @see https://tailwindcss.com/docs/table-layout
7971
+ */
7972
+ 'table-layout': [{
7973
+ table: ['auto', 'fixed']
7974
+ }],
7975
+ /**
7976
+ * Caption Side
7977
+ * @see https://tailwindcss.com/docs/caption-side
7978
+ */
7979
+ caption: [{
7980
+ caption: ['top', 'bottom']
7981
+ }],
7982
+ // ---------------------------------
7983
+ // --- Transitions and Animation ---
7984
+ // ---------------------------------
7985
+ /**
7986
+ * Transition Property
7987
+ * @see https://tailwindcss.com/docs/transition-property
7988
+ */
7989
+ transition: [{
7990
+ transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]
7991
+ }],
7992
+ /**
7993
+ * Transition Behavior
7994
+ * @see https://tailwindcss.com/docs/transition-behavior
7995
+ */
7996
+ 'transition-behavior': [{
7997
+ transition: ['normal', 'discrete']
7998
+ }],
7999
+ /**
8000
+ * Transition Duration
8001
+ * @see https://tailwindcss.com/docs/transition-duration
8002
+ */
8003
+ duration: [{
8004
+ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]
8005
+ }],
8006
+ /**
8007
+ * Transition Timing Function
8008
+ * @see https://tailwindcss.com/docs/transition-timing-function
8009
+ */
8010
+ ease: [{
8011
+ ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]
8012
+ }],
8013
+ /**
8014
+ * Transition Delay
8015
+ * @see https://tailwindcss.com/docs/transition-delay
8016
+ */
8017
+ delay: [{
8018
+ delay: [isNumber, isArbitraryVariable, isArbitraryValue]
8019
+ }],
8020
+ /**
8021
+ * Animation
8022
+ * @see https://tailwindcss.com/docs/animation
8023
+ */
8024
+ animate: [{
8025
+ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]
8026
+ }],
8027
+ // ------------------
8028
+ // --- Transforms ---
8029
+ // ------------------
8030
+ /**
8031
+ * Backface Visibility
8032
+ * @see https://tailwindcss.com/docs/backface-visibility
8033
+ */
8034
+ backface: [{
8035
+ backface: ['hidden', 'visible']
8036
+ }],
8037
+ /**
8038
+ * Perspective
8039
+ * @see https://tailwindcss.com/docs/perspective
8040
+ */
8041
+ perspective: [{
8042
+ perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
8043
+ }],
8044
+ /**
8045
+ * Perspective Origin
8046
+ * @see https://tailwindcss.com/docs/perspective-origin
8047
+ */
8048
+ 'perspective-origin': [{
8049
+ 'perspective-origin': scalePositionWithArbitrary()
8050
+ }],
8051
+ /**
8052
+ * Rotate
8053
+ * @see https://tailwindcss.com/docs/rotate
8054
+ */
8055
+ rotate: [{
8056
+ rotate: scaleRotate()
8057
+ }],
8058
+ /**
8059
+ * Rotate X
8060
+ * @see https://tailwindcss.com/docs/rotate
8061
+ */
8062
+ 'rotate-x': [{
8063
+ 'rotate-x': scaleRotate()
8064
+ }],
8065
+ /**
8066
+ * Rotate Y
8067
+ * @see https://tailwindcss.com/docs/rotate
8068
+ */
8069
+ 'rotate-y': [{
8070
+ 'rotate-y': scaleRotate()
8071
+ }],
8072
+ /**
8073
+ * Rotate Z
8074
+ * @see https://tailwindcss.com/docs/rotate
8075
+ */
8076
+ 'rotate-z': [{
8077
+ 'rotate-z': scaleRotate()
8078
+ }],
8079
+ /**
8080
+ * Scale
8081
+ * @see https://tailwindcss.com/docs/scale
8082
+ */
8083
+ scale: [{
8084
+ scale: scaleScale()
8085
+ }],
8086
+ /**
8087
+ * Scale X
8088
+ * @see https://tailwindcss.com/docs/scale
8089
+ */
8090
+ 'scale-x': [{
8091
+ 'scale-x': scaleScale()
8092
+ }],
8093
+ /**
8094
+ * Scale Y
8095
+ * @see https://tailwindcss.com/docs/scale
8096
+ */
8097
+ 'scale-y': [{
8098
+ 'scale-y': scaleScale()
8099
+ }],
8100
+ /**
8101
+ * Scale Z
8102
+ * @see https://tailwindcss.com/docs/scale
8103
+ */
8104
+ 'scale-z': [{
8105
+ 'scale-z': scaleScale()
8106
+ }],
8107
+ /**
8108
+ * Scale 3D
8109
+ * @see https://tailwindcss.com/docs/scale
8110
+ */
8111
+ 'scale-3d': ['scale-3d'],
8112
+ /**
8113
+ * Skew
8114
+ * @see https://tailwindcss.com/docs/skew
8115
+ */
8116
+ skew: [{
8117
+ skew: scaleSkew()
8118
+ }],
8119
+ /**
8120
+ * Skew X
8121
+ * @see https://tailwindcss.com/docs/skew
8122
+ */
8123
+ 'skew-x': [{
8124
+ 'skew-x': scaleSkew()
8125
+ }],
8126
+ /**
8127
+ * Skew Y
8128
+ * @see https://tailwindcss.com/docs/skew
8129
+ */
8130
+ 'skew-y': [{
8131
+ 'skew-y': scaleSkew()
8132
+ }],
8133
+ /**
8134
+ * Transform
8135
+ * @see https://tailwindcss.com/docs/transform
8136
+ */
8137
+ transform: [{
8138
+ transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']
8139
+ }],
8140
+ /**
8141
+ * Transform Origin
8142
+ * @see https://tailwindcss.com/docs/transform-origin
8143
+ */
8144
+ 'transform-origin': [{
8145
+ origin: scalePositionWithArbitrary()
8146
+ }],
8147
+ /**
8148
+ * Transform Style
8149
+ * @see https://tailwindcss.com/docs/transform-style
8150
+ */
8151
+ 'transform-style': [{
8152
+ transform: ['3d', 'flat']
8153
+ }],
8154
+ /**
8155
+ * Translate
8156
+ * @see https://tailwindcss.com/docs/translate
8157
+ */
8158
+ translate: [{
8159
+ translate: scaleTranslate()
8160
+ }],
8161
+ /**
8162
+ * Translate X
8163
+ * @see https://tailwindcss.com/docs/translate
8164
+ */
8165
+ 'translate-x': [{
8166
+ 'translate-x': scaleTranslate()
8167
+ }],
8168
+ /**
8169
+ * Translate Y
8170
+ * @see https://tailwindcss.com/docs/translate
8171
+ */
8172
+ 'translate-y': [{
8173
+ 'translate-y': scaleTranslate()
8174
+ }],
8175
+ /**
8176
+ * Translate Z
8177
+ * @see https://tailwindcss.com/docs/translate
8178
+ */
8179
+ 'translate-z': [{
8180
+ 'translate-z': scaleTranslate()
8181
+ }],
8182
+ /**
8183
+ * Translate None
8184
+ * @see https://tailwindcss.com/docs/translate
8185
+ */
8186
+ 'translate-none': ['translate-none'],
8187
+ // ---------------------
8188
+ // --- Interactivity ---
8189
+ // ---------------------
8190
+ /**
8191
+ * Accent Color
8192
+ * @see https://tailwindcss.com/docs/accent-color
8193
+ */
8194
+ accent: [{
8195
+ accent: scaleColor()
8196
+ }],
8197
+ /**
8198
+ * Appearance
8199
+ * @see https://tailwindcss.com/docs/appearance
8200
+ */
8201
+ appearance: [{
8202
+ appearance: ['none', 'auto']
8203
+ }],
8204
+ /**
8205
+ * Caret Color
8206
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
8207
+ */
8208
+ 'caret-color': [{
8209
+ caret: scaleColor()
8210
+ }],
8211
+ /**
8212
+ * Color Scheme
8213
+ * @see https://tailwindcss.com/docs/color-scheme
8214
+ */
8215
+ 'color-scheme': [{
8216
+ scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']
8217
+ }],
8218
+ /**
8219
+ * Cursor
8220
+ * @see https://tailwindcss.com/docs/cursor
8221
+ */
8222
+ cursor: [{
8223
+ 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]
8224
+ }],
8225
+ /**
8226
+ * Field Sizing
8227
+ * @see https://tailwindcss.com/docs/field-sizing
8228
+ */
8229
+ 'field-sizing': [{
8230
+ 'field-sizing': ['fixed', 'content']
8231
+ }],
8232
+ /**
8233
+ * Pointer Events
8234
+ * @see https://tailwindcss.com/docs/pointer-events
8235
+ */
8236
+ 'pointer-events': [{
8237
+ 'pointer-events': ['auto', 'none']
8238
+ }],
8239
+ /**
8240
+ * Resize
8241
+ * @see https://tailwindcss.com/docs/resize
8242
+ */
8243
+ resize: [{
8244
+ resize: ['none', '', 'y', 'x']
8245
+ }],
8246
+ /**
8247
+ * Scroll Behavior
8248
+ * @see https://tailwindcss.com/docs/scroll-behavior
8249
+ */
8250
+ 'scroll-behavior': [{
8251
+ scroll: ['auto', 'smooth']
8252
+ }],
8253
+ /**
8254
+ * Scroll Margin
8255
+ * @see https://tailwindcss.com/docs/scroll-margin
8256
+ */
8257
+ 'scroll-m': [{
8258
+ 'scroll-m': scaleUnambiguousSpacing()
8259
+ }],
8260
+ /**
8261
+ * Scroll Margin X
8262
+ * @see https://tailwindcss.com/docs/scroll-margin
8263
+ */
8264
+ 'scroll-mx': [{
8265
+ 'scroll-mx': scaleUnambiguousSpacing()
8266
+ }],
8267
+ /**
8268
+ * Scroll Margin Y
8269
+ * @see https://tailwindcss.com/docs/scroll-margin
8270
+ */
8271
+ 'scroll-my': [{
8272
+ 'scroll-my': scaleUnambiguousSpacing()
8273
+ }],
8274
+ /**
8275
+ * Scroll Margin Start
8276
+ * @see https://tailwindcss.com/docs/scroll-margin
8277
+ */
8278
+ 'scroll-ms': [{
8279
+ 'scroll-ms': scaleUnambiguousSpacing()
8280
+ }],
8281
+ /**
8282
+ * Scroll Margin End
8283
+ * @see https://tailwindcss.com/docs/scroll-margin
8284
+ */
8285
+ 'scroll-me': [{
8286
+ 'scroll-me': scaleUnambiguousSpacing()
8287
+ }],
8288
+ /**
8289
+ * Scroll Margin Top
8290
+ * @see https://tailwindcss.com/docs/scroll-margin
8291
+ */
8292
+ 'scroll-mt': [{
8293
+ 'scroll-mt': scaleUnambiguousSpacing()
8294
+ }],
8295
+ /**
8296
+ * Scroll Margin Right
8297
+ * @see https://tailwindcss.com/docs/scroll-margin
8298
+ */
8299
+ 'scroll-mr': [{
8300
+ 'scroll-mr': scaleUnambiguousSpacing()
8301
+ }],
8302
+ /**
8303
+ * Scroll Margin Bottom
8304
+ * @see https://tailwindcss.com/docs/scroll-margin
8305
+ */
8306
+ 'scroll-mb': [{
8307
+ 'scroll-mb': scaleUnambiguousSpacing()
8308
+ }],
8309
+ /**
8310
+ * Scroll Margin Left
8311
+ * @see https://tailwindcss.com/docs/scroll-margin
8312
+ */
8313
+ 'scroll-ml': [{
8314
+ 'scroll-ml': scaleUnambiguousSpacing()
8315
+ }],
8316
+ /**
8317
+ * Scroll Padding
8318
+ * @see https://tailwindcss.com/docs/scroll-padding
8319
+ */
8320
+ 'scroll-p': [{
8321
+ 'scroll-p': scaleUnambiguousSpacing()
8322
+ }],
8323
+ /**
8324
+ * Scroll Padding X
8325
+ * @see https://tailwindcss.com/docs/scroll-padding
8326
+ */
8327
+ 'scroll-px': [{
8328
+ 'scroll-px': scaleUnambiguousSpacing()
8329
+ }],
8330
+ /**
8331
+ * Scroll Padding Y
8332
+ * @see https://tailwindcss.com/docs/scroll-padding
8333
+ */
8334
+ 'scroll-py': [{
8335
+ 'scroll-py': scaleUnambiguousSpacing()
8336
+ }],
8337
+ /**
8338
+ * Scroll Padding Start
8339
+ * @see https://tailwindcss.com/docs/scroll-padding
8340
+ */
8341
+ 'scroll-ps': [{
8342
+ 'scroll-ps': scaleUnambiguousSpacing()
8343
+ }],
8344
+ /**
8345
+ * Scroll Padding End
8346
+ * @see https://tailwindcss.com/docs/scroll-padding
8347
+ */
8348
+ 'scroll-pe': [{
8349
+ 'scroll-pe': scaleUnambiguousSpacing()
8350
+ }],
8351
+ /**
8352
+ * Scroll Padding Top
8353
+ * @see https://tailwindcss.com/docs/scroll-padding
8354
+ */
8355
+ 'scroll-pt': [{
8356
+ 'scroll-pt': scaleUnambiguousSpacing()
8357
+ }],
8358
+ /**
8359
+ * Scroll Padding Right
8360
+ * @see https://tailwindcss.com/docs/scroll-padding
8361
+ */
8362
+ 'scroll-pr': [{
8363
+ 'scroll-pr': scaleUnambiguousSpacing()
8364
+ }],
8365
+ /**
8366
+ * Scroll Padding Bottom
8367
+ * @see https://tailwindcss.com/docs/scroll-padding
8368
+ */
8369
+ 'scroll-pb': [{
8370
+ 'scroll-pb': scaleUnambiguousSpacing()
8371
+ }],
8372
+ /**
8373
+ * Scroll Padding Left
8374
+ * @see https://tailwindcss.com/docs/scroll-padding
8375
+ */
8376
+ 'scroll-pl': [{
8377
+ 'scroll-pl': scaleUnambiguousSpacing()
8378
+ }],
8379
+ /**
8380
+ * Scroll Snap Align
8381
+ * @see https://tailwindcss.com/docs/scroll-snap-align
8382
+ */
8383
+ 'snap-align': [{
8384
+ snap: ['start', 'end', 'center', 'align-none']
8385
+ }],
8386
+ /**
8387
+ * Scroll Snap Stop
8388
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
8389
+ */
8390
+ 'snap-stop': [{
8391
+ snap: ['normal', 'always']
8392
+ }],
8393
+ /**
8394
+ * Scroll Snap Type
8395
+ * @see https://tailwindcss.com/docs/scroll-snap-type
8396
+ */
8397
+ 'snap-type': [{
8398
+ snap: ['none', 'x', 'y', 'both']
8399
+ }],
8400
+ /**
8401
+ * Scroll Snap Type Strictness
8402
+ * @see https://tailwindcss.com/docs/scroll-snap-type
8403
+ */
8404
+ 'snap-strictness': [{
8405
+ snap: ['mandatory', 'proximity']
8406
+ }],
8407
+ /**
8408
+ * Touch Action
8409
+ * @see https://tailwindcss.com/docs/touch-action
8410
+ */
8411
+ touch: [{
8412
+ touch: ['auto', 'none', 'manipulation']
8413
+ }],
8414
+ /**
8415
+ * Touch Action X
8416
+ * @see https://tailwindcss.com/docs/touch-action
8417
+ */
8418
+ 'touch-x': [{
8419
+ 'touch-pan': ['x', 'left', 'right']
8420
+ }],
8421
+ /**
8422
+ * Touch Action Y
8423
+ * @see https://tailwindcss.com/docs/touch-action
8424
+ */
8425
+ 'touch-y': [{
8426
+ 'touch-pan': ['y', 'up', 'down']
8427
+ }],
8428
+ /**
8429
+ * Touch Action Pinch Zoom
8430
+ * @see https://tailwindcss.com/docs/touch-action
8431
+ */
8432
+ 'touch-pz': ['touch-pinch-zoom'],
8433
+ /**
8434
+ * User Select
8435
+ * @see https://tailwindcss.com/docs/user-select
8436
+ */
8437
+ select: [{
8438
+ select: ['none', 'text', 'all', 'auto']
8439
+ }],
8440
+ /**
8441
+ * Will Change
8442
+ * @see https://tailwindcss.com/docs/will-change
8443
+ */
8444
+ 'will-change': [{
8445
+ 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]
8446
+ }],
8447
+ // -----------
8448
+ // --- SVG ---
8449
+ // -----------
8450
+ /**
8451
+ * Fill
8452
+ * @see https://tailwindcss.com/docs/fill
8453
+ */
8454
+ fill: [{
8455
+ fill: ['none', ...scaleColor()]
8456
+ }],
8457
+ /**
8458
+ * Stroke Width
8459
+ * @see https://tailwindcss.com/docs/stroke-width
8460
+ */
8461
+ 'stroke-w': [{
8462
+ stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
8463
+ }],
8464
+ /**
8465
+ * Stroke
8466
+ * @see https://tailwindcss.com/docs/stroke
8467
+ */
8468
+ stroke: [{
8469
+ stroke: ['none', ...scaleColor()]
8470
+ }],
8471
+ // ---------------------
8472
+ // --- Accessibility ---
8473
+ // ---------------------
8474
+ /**
8475
+ * Forced Color Adjust
8476
+ * @see https://tailwindcss.com/docs/forced-color-adjust
8477
+ */
8478
+ 'forced-color-adjust': [{
8479
+ 'forced-color-adjust': ['auto', 'none']
8480
+ }]
8481
+ },
8482
+ conflictingClassGroups: {
8483
+ overflow: ['overflow-x', 'overflow-y'],
8484
+ overscroll: ['overscroll-x', 'overscroll-y'],
8485
+ inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],
8486
+ 'inset-x': ['right', 'left'],
8487
+ 'inset-y': ['top', 'bottom'],
8488
+ flex: ['basis', 'grow', 'shrink'],
8489
+ gap: ['gap-x', 'gap-y'],
8490
+ p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],
8491
+ px: ['pr', 'pl'],
8492
+ py: ['pt', 'pb'],
8493
+ m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],
8494
+ mx: ['mr', 'ml'],
8495
+ my: ['mt', 'mb'],
8496
+ size: ['w', 'h'],
8497
+ 'font-size': ['leading'],
8498
+ 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],
8499
+ 'fvn-ordinal': ['fvn-normal'],
8500
+ 'fvn-slashed-zero': ['fvn-normal'],
8501
+ 'fvn-figure': ['fvn-normal'],
8502
+ 'fvn-spacing': ['fvn-normal'],
8503
+ 'fvn-fraction': ['fvn-normal'],
8504
+ 'line-clamp': ['display', 'overflow'],
8505
+ 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'],
8506
+ 'rounded-s': ['rounded-ss', 'rounded-es'],
8507
+ 'rounded-e': ['rounded-se', 'rounded-ee'],
8508
+ 'rounded-t': ['rounded-tl', 'rounded-tr'],
8509
+ 'rounded-r': ['rounded-tr', 'rounded-br'],
8510
+ 'rounded-b': ['rounded-br', 'rounded-bl'],
8511
+ 'rounded-l': ['rounded-tl', 'rounded-bl'],
8512
+ 'border-spacing': ['border-spacing-x', 'border-spacing-y'],
8513
+ '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'],
8514
+ 'border-w-x': ['border-w-r', 'border-w-l'],
8515
+ 'border-w-y': ['border-w-t', 'border-w-b'],
8516
+ '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'],
8517
+ 'border-color-x': ['border-color-r', 'border-color-l'],
8518
+ 'border-color-y': ['border-color-t', 'border-color-b'],
8519
+ translate: ['translate-x', 'translate-y', 'translate-none'],
8520
+ 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],
8521
+ 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],
8522
+ 'scroll-mx': ['scroll-mr', 'scroll-ml'],
8523
+ 'scroll-my': ['scroll-mt', 'scroll-mb'],
8524
+ 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],
8525
+ 'scroll-px': ['scroll-pr', 'scroll-pl'],
8526
+ 'scroll-py': ['scroll-pt', 'scroll-pb'],
8527
+ touch: ['touch-x', 'touch-y', 'touch-pz'],
8528
+ 'touch-x': ['touch'],
8529
+ 'touch-y': ['touch'],
8530
+ 'touch-pz': ['touch']
8531
+ },
8532
+ conflictingClassGroupModifiers: {
8533
+ 'font-size': ['leading']
8534
+ },
8535
+ orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']
8536
+ };
8537
+ };
8538
+ const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);
8539
+
5585
8540
  var propTypes = {exports: {}};
5586
8541
 
5587
8542
  var reactIs = {exports: {}};
@@ -39231,108 +42186,4 @@ Icon.displayName = 'AntdIcon';
39231
42186
  Icon.getTwoToneColor = getTwoToneColor;
39232
42187
  Icon.setTwoToneColor = setTwoToneColor;
39233
42188
 
39234
- // This icon file is generated automatically.
39235
- var PlusOutlined$1 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z" } }, { "tag": "path", "attrs": { "d": "M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z" } }] }, "name": "plus", "theme": "outlined" };
39236
-
39237
- var PlusOutlined = function PlusOutlined(props, ref) {
39238
- return /*#__PURE__*/React.createElement(Icon, _extends({}, props, {
39239
- ref: ref,
39240
- icon: PlusOutlined$1
39241
- }));
39242
- };
39243
-
39244
- /**![plus](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ4MiAxNTJoNjBxOCAwIDggOHY3MDRxMCA4LTggOGgtNjBxLTggMC04LThWMTYwcTAtOCA4LTh6IiAvPjxwYXRoIGQ9Ik0xOTIgNDc0aDY3MnE4IDAgOCA4djYwcTAgOC04IDhIMTYwcS04IDAtOC04di02MHEwLTggOC04eiIgLz48L3N2Zz4=) */
39245
- var RefIcon = /*#__PURE__*/React.forwardRef(PlusOutlined);
39246
- if (process.env.NODE_ENV !== 'production') {
39247
- RefIcon.displayName = 'PlusOutlined';
39248
- }
39249
-
39250
- const getBase64 = (file) => new Promise((resolve, reject) => {
39251
- const reader = new FileReader();
39252
- reader.readAsDataURL(file);
39253
- reader.onload = () => resolve(reader.result);
39254
- reader.onerror = (error) => reject(error);
39255
- });
39256
- const UploadField = (props) => {
39257
- //! State
39258
- const {
39259
- field,
39260
- formState,
39261
- label,
39262
- required,
39263
- maxFiles = 8,
39264
- uploadButtonText = "Upload",
39265
- // typeLabel = "text12Regular",
39266
- customStyleContainer,
39267
- customStyleUpload,
39268
- afterOnChange,
39269
- disabled,
39270
- ...restProps
39271
- } = props;
39272
- const { name, value = [], onChange } = field || {};
39273
- const { touchedFields, errors, isSubmitted } = formState || {};
39274
- const isTouched = get(touchedFields, name);
39275
- const errorMessage = get(errors, name)?.message;
39276
- const [previewOpen, setPreviewOpen] = useState(false);
39277
- const [previewImage, setPreviewImage] = useState("");
39278
- //! Function
39279
- const handlePreview = async (file) => {
39280
- if (!file.url && !file.preview) {
39281
- file.preview = await getBase64(file.originFileObj);
39282
- }
39283
- setPreviewImage(file.url || file.preview);
39284
- setPreviewOpen(true);
39285
- };
39286
- const handleChange = ({ fileList }) => {
39287
- onChange?.(fileList);
39288
- afterOnChange?.(fileList);
39289
- };
39290
- const uploadButton = /* @__PURE__ */ jsxRuntimeExports.jsxs("button", { style: { border: 0, background: "none" }, type: "button", children: [
39291
- /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon, {}),
39292
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { marginTop: 8 }, children: uploadButtonText })
39293
- ] });
39294
- const renderErrorMessage = () => {
39295
- if (!errorMessage) return null;
39296
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
39297
- ErrorMessage,
39298
- {
39299
- errorMessage,
39300
- isTouched,
39301
- isSubmitted
39302
- }
39303
- );
39304
- };
39305
- //! Render
39306
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: customStyleContainer, children: [
39307
- label && /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { label, required }),
39308
- /* @__PURE__ */ jsxRuntimeExports.jsx(
39309
- Upload,
39310
- {
39311
- listType: "picture-card",
39312
- fileList: value,
39313
- onPreview: handlePreview,
39314
- onChange: handleChange,
39315
- disabled,
39316
- className: customStyleUpload,
39317
- ...restProps,
39318
- children: value.length >= maxFiles ? null : uploadButton
39319
- }
39320
- ),
39321
- renderErrorMessage(),
39322
- previewImage && /* @__PURE__ */ jsxRuntimeExports.jsx(
39323
- Image,
39324
- {
39325
- wrapperStyle: { display: "none" },
39326
- preview: {
39327
- visible: previewOpen,
39328
- onVisibleChange: (visible) => setPreviewOpen(visible),
39329
- afterOpenChange: (visible) => !visible && setPreviewImage("")
39330
- },
39331
- src: previewImage
39332
- }
39333
- )
39334
- ] });
39335
- };
39336
- React__default.memo(UploadField);
39337
-
39338
- export { resetWarned as A, generate$1 as B, CheckboxField as C, DatePickerField as D, ErrorMessage as E, FastColor as F, presetPrimaryColors as G, presetPalettes as H, Input as I, _inherits as J, _createSuper as K, Label as L, _assertThisInitialized$1 as M, _objectWithoutProperties as N, IconContext as O, PnkxField as P, RangePickerField as R, Typography as T, _extends as _, TINY_API as a, TinyMCE as b, classNames as c, get$1 as d, appendErrors as e, Icon as f, get as g, _typeof as h, _arrayLikeToArray as i, jsxRuntimeExports as j, _unsupportedIterableToArray as k, lodashExports as l, _createClass as m, _classCallCheck as n, _defineProperty as o, _slicedToArray as p, warning$1 as q, canUseDom as r, set$1 as s, _objectSpread2 as t, useForm as u, updateCSS as v, warningOnce as w, removeCSS as x, _arrayWithHoles as y, _nonIterableRest as z };
42189
+ export { _nonIterableRest as A, resetWarned as B, CheckboxField as C, DatePickerField as D, ErrorMessage as E, FastColor as F, generate$1 as G, presetPrimaryColors as H, Input as I, presetPalettes as J, _inherits as K, Label as L, _createSuper as M, _assertThisInitialized$1 as N, _objectWithoutProperties as O, PnkxField as P, IconContext as Q, RangePickerField as R, Typography as T, _extends as _, TINY_API as a, TinyMCE as b, Icon as c, classNames as d, get$1 as e, appendErrors as f, get as g, _typeof as h, _arrayLikeToArray as i, jsxRuntimeExports as j, _unsupportedIterableToArray as k, lodashExports as l, _createClass as m, _classCallCheck as n, _defineProperty as o, _slicedToArray as p, warning$1 as q, canUseDom as r, set$1 as s, twMerge as t, useForm as u, _objectSpread2 as v, warningOnce as w, updateCSS as x, removeCSS as y, _arrayWithHoles as z };