tailwind-merge 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/dist/lib/class-utils.d.ts +1 -1
- package/dist/lib/class-utils.mjs.map +1 -1
- package/dist/lib/config-utils.mjs +1 -1
- package/dist/lib/config-utils.mjs.map +1 -1
- package/dist/lib/create-tailwind-merge.d.ts +1 -1
- package/dist/lib/create-tailwind-merge.mjs.map +1 -1
- package/dist/lib/default-config.d.ts +1 -3
- package/dist/lib/default-config.mjs +0 -2
- package/dist/lib/default-config.mjs.map +1 -1
- package/dist/tailwind-merge.cjs.development.js +49 -51
- package/dist/tailwind-merge.cjs.development.js.map +1 -1
- package/dist/tailwind-merge.cjs.production.min.js +1 -1
- package/dist/tailwind-merge.cjs.production.min.js.map +1 -1
- package/package.json +8 -8
- package/src/lib/class-utils.ts +1 -1
- package/src/lib/config-utils.ts +2 -2
- package/src/lib/create-tailwind-merge.ts +1 -1
- package/src/lib/default-config.ts +1 -3
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<br />
|
|
3
3
|
<a href="https://github.com/dcastil/tailwind-merge">
|
|
4
4
|
<!-- AUTOGENERATED VERSION START -->
|
|
5
|
-
<img src="https://github.com/dcastil/tailwind-merge/raw/v1.8.
|
|
5
|
+
<img src="https://github.com/dcastil/tailwind-merge/raw/v1.8.1/assets/logo.svg" alt="tailwind-merge" height="150px" />
|
|
6
6
|
<!-- AUTOGENERATED END -->
|
|
7
7
|
</a>
|
|
8
8
|
</div>
|
|
@@ -19,7 +19,7 @@ twMerge('px-2 py-1 bg-red hover:bg-dark-red', 'p-3 bg-[#B91C1C]')
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
- Supports Tailwind v3.0 up to v3.2 (if you use Tailwind v2, use [tailwind-merge v0.9.0](https://github.com/dcastil/tailwind-merge/tree/v0.9.0))
|
|
22
|
-
- Works in
|
|
22
|
+
- Works in all modern browsers and Node >=12
|
|
23
23
|
- Fully typed
|
|
24
24
|
- [Check bundle size on Bundlephobia](https://bundlephobia.com/package/tailwind-merge)
|
|
25
25
|
|
|
@@ -27,14 +27,14 @@ twMerge('px-2 py-1 bg-red hover:bg-dark-red', 'p-3 bg-[#B91C1C]')
|
|
|
27
27
|
|
|
28
28
|
<!-- AUTOGENERATED VERSION START -->
|
|
29
29
|
|
|
30
|
-
- [What is it for](https://github.com/dcastil/tailwind-merge/tree/v1.8.
|
|
31
|
-
- [Features](https://github.com/dcastil/tailwind-merge/tree/v1.8.
|
|
32
|
-
- [
|
|
33
|
-
- [Recipes](https://github.com/dcastil/tailwind-merge/tree/v1.8.
|
|
34
|
-
- [API reference](https://github.com/dcastil/tailwind-merge/tree/v1.8.
|
|
35
|
-
- [Writing plugins](https://github.com/dcastil/tailwind-merge/tree/v1.8.
|
|
36
|
-
- [Versioning](https://github.com/dcastil/tailwind-merge/tree/v1.8.
|
|
37
|
-
- [Contributing](https://github.com/dcastil/tailwind-merge/tree/v1.8.
|
|
38
|
-
- [Similar packages](https://github.com/dcastil/tailwind-merge/tree/v1.8.
|
|
30
|
+
- [What is it for](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/docs/what-is-it-for.md)
|
|
31
|
+
- [Features](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/docs/features.md)
|
|
32
|
+
- [Configuration](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/docs/configuration.md)
|
|
33
|
+
- [Recipes](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/docs/recipes.md)
|
|
34
|
+
- [API reference](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/docs/api-reference.md)
|
|
35
|
+
- [Writing plugins](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/docs/writing-plugins.md)
|
|
36
|
+
- [Versioning](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/docs/versioning.md)
|
|
37
|
+
- [Contributing](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/.github/CONTRIBUTING.md)
|
|
38
|
+
- [Similar packages](https://github.com/dcastil/tailwind-merge/tree/v1.8.1/docs/similar-packages.md)
|
|
39
39
|
|
|
40
40
|
<!-- AUTOGENERATED END -->
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-utils.mjs","sources":["../../src/lib/class-utils.ts"],"sourcesContent":["import { ClassGroupId, Config, ClassGroup, ClassValidator, ThemeObject, ThemeGetter } from './types'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[]\n classGroupId?: ClassGroupId\n}\n\ninterface ClassValidatorObject {\n classGroupId: ClassGroupId\n validator: ClassValidator\n}\n\nconst CLASS_PART_SEPARATOR = '-'\n\nexport function createClassUtils(config: Config) {\n const classMap = createClassMap(config)\n\n function getClassGroupId(className: string) {\n const classParts = className.split(CLASS_PART_SEPARATOR)\n\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift()\n }\n\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className)\n }\n\n function getConflictingClassGroupIds(classGroupId: ClassGroupId) {\n return config.conflictingClassGroups[classGroupId] || []\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nfunction getGroupRecursive(\n classParts: string[],\n classPartObject: ClassPartObject,\n): ClassGroupId | undefined {\n if (classParts.length === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[0]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n const classGroupFromNextClassPart = nextClassPartObject\n ? getGroupRecursive(classParts.slice(1), nextClassPartObject)\n : undefined\n\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart\n }\n\n if (classPartObject.validators.length === 0) {\n return undefined\n }\n\n const classRest = classParts.join(CLASS_PART_SEPARATOR)\n\n return classPartObject.validators.find(({ validator }) => validator(classRest))?.classGroupId\n}\n\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/\n\nfunction getGroupIdForArbitraryProperty(className: string) {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)![1]\n const property = arbitraryPropertyClassName?.substring(\n 0,\n arbitraryPropertyClassName.indexOf(':'),\n )\n\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property\n }\n }\n}\n\n/**\n * Exported for testing only\n */\nexport function createClassMap(config: Config) {\n const { theme, prefix } = config\n const classMap: ClassPartObject = {\n nextPart: new Map<string, ClassPartObject>(),\n validators: [],\n }\n\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(\n Object.entries(config.classGroups),\n prefix,\n )\n\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme)\n })\n\n return classMap\n}\n\nfunction processClassesRecursively(\n classGroup: ClassGroup,\n classPartObject: ClassPartObject,\n classGroupId: ClassGroupId,\n theme: ThemeObject,\n) {\n classGroup.forEach((classDefinition) => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n return\n }\n\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(\n classDefinition(theme),\n classPartObject,\n classGroupId,\n theme,\n )\n return\n }\n\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId,\n })\n\n return\n }\n\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(\n classGroup,\n getPart(classPartObject, key),\n classGroupId,\n theme,\n )\n })\n })\n}\n\nfunction getPart(classPartObject: ClassPartObject, path: string) {\n let currentClassPartObject = classPartObject\n\n path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: [],\n })\n }\n\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart)!\n })\n\n return currentClassPartObject\n}\n\nfunction isThemeGetter(func: ClassValidator | ThemeGetter): func is ThemeGetter {\n return (func as ThemeGetter).isThemeGetter\n}\n\nfunction getPrefixedClassGroupEntries(\n classGroupEntries: Array<[classGroupId: string, classGroup: ClassGroup]>,\n prefix: string | undefined,\n): Array<[classGroupId: string, classGroup: ClassGroup]> {\n if (!prefix) {\n return classGroupEntries\n }\n\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map((classDefinition) => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition\n }\n\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(\n Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]),\n )\n }\n\n return classDefinition\n })\n\n return [classGroupId, prefixedClassGroup]\n })\n}\n"],"names":["CLASS_PART_SEPARATOR","createClassUtils","config","classMap","createClassMap","getClassGroupId","className","classParts","split","length","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","conflictingClassGroups","classPartObject","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","prefixedClassGroupEntries","getPrefixedClassGroupEntries","Object","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","key","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","map","prefixedClassGroup","fromEntries","value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"class-utils.mjs","sources":["../../src/lib/class-utils.ts"],"sourcesContent":["import { ClassGroup, ClassGroupId, ClassValidator, Config, ThemeGetter, ThemeObject } from './types'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[]\n classGroupId?: ClassGroupId\n}\n\ninterface ClassValidatorObject {\n classGroupId: ClassGroupId\n validator: ClassValidator\n}\n\nconst CLASS_PART_SEPARATOR = '-'\n\nexport function createClassUtils(config: Config) {\n const classMap = createClassMap(config)\n\n function getClassGroupId(className: string) {\n const classParts = className.split(CLASS_PART_SEPARATOR)\n\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift()\n }\n\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className)\n }\n\n function getConflictingClassGroupIds(classGroupId: ClassGroupId) {\n return config.conflictingClassGroups[classGroupId] || []\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nfunction getGroupRecursive(\n classParts: string[],\n classPartObject: ClassPartObject,\n): ClassGroupId | undefined {\n if (classParts.length === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[0]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n const classGroupFromNextClassPart = nextClassPartObject\n ? getGroupRecursive(classParts.slice(1), nextClassPartObject)\n : undefined\n\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart\n }\n\n if (classPartObject.validators.length === 0) {\n return undefined\n }\n\n const classRest = classParts.join(CLASS_PART_SEPARATOR)\n\n return classPartObject.validators.find(({ validator }) => validator(classRest))?.classGroupId\n}\n\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/\n\nfunction getGroupIdForArbitraryProperty(className: string) {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)![1]\n const property = arbitraryPropertyClassName?.substring(\n 0,\n arbitraryPropertyClassName.indexOf(':'),\n )\n\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property\n }\n }\n}\n\n/**\n * Exported for testing only\n */\nexport function createClassMap(config: Config) {\n const { theme, prefix } = config\n const classMap: ClassPartObject = {\n nextPart: new Map<string, ClassPartObject>(),\n validators: [],\n }\n\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(\n Object.entries(config.classGroups),\n prefix,\n )\n\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme)\n })\n\n return classMap\n}\n\nfunction processClassesRecursively(\n classGroup: ClassGroup,\n classPartObject: ClassPartObject,\n classGroupId: ClassGroupId,\n theme: ThemeObject,\n) {\n classGroup.forEach((classDefinition) => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n return\n }\n\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(\n classDefinition(theme),\n classPartObject,\n classGroupId,\n theme,\n )\n return\n }\n\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId,\n })\n\n return\n }\n\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(\n classGroup,\n getPart(classPartObject, key),\n classGroupId,\n theme,\n )\n })\n })\n}\n\nfunction getPart(classPartObject: ClassPartObject, path: string) {\n let currentClassPartObject = classPartObject\n\n path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: [],\n })\n }\n\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart)!\n })\n\n return currentClassPartObject\n}\n\nfunction isThemeGetter(func: ClassValidator | ThemeGetter): func is ThemeGetter {\n return (func as ThemeGetter).isThemeGetter\n}\n\nfunction getPrefixedClassGroupEntries(\n classGroupEntries: Array<[classGroupId: string, classGroup: ClassGroup]>,\n prefix: string | undefined,\n): Array<[classGroupId: string, classGroup: ClassGroup]> {\n if (!prefix) {\n return classGroupEntries\n }\n\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map((classDefinition) => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition\n }\n\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(\n Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]),\n )\n }\n\n return classDefinition\n })\n\n return [classGroupId, prefixedClassGroup]\n })\n}\n"],"names":["CLASS_PART_SEPARATOR","createClassUtils","config","classMap","createClassMap","getClassGroupId","className","classParts","split","length","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","conflictingClassGroups","classPartObject","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","prefixedClassGroupEntries","getPrefixedClassGroupEntries","Object","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","key","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","map","prefixedClassGroup","fromEntries","value"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
-
import { createLruCache } from './lru-cache.mjs';
|
|
3
2
|
import { createClassUtils } from './class-utils.mjs';
|
|
3
|
+
import { createLruCache } from './lru-cache.mjs';
|
|
4
4
|
import { createSplitModifiers } from './modifier-utils.mjs';
|
|
5
5
|
|
|
6
6
|
function createConfigUtils(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-utils.mjs","sources":["../../src/lib/config-utils.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"config-utils.mjs","sources":["../../src/lib/config-utils.ts"],"sourcesContent":["import { createClassUtils } from './class-utils'\nimport { createLruCache } from './lru-cache'\nimport { createSplitModifiers } from './modifier-utils'\nimport { Config } from './types'\n\nexport type ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport function createConfigUtils(config: Config) {\n return {\n cache: createLruCache<string, string>(config.cacheSize),\n splitModifiers: createSplitModifiers(config),\n ...createClassUtils(config),\n }\n}\n"],"names":["createConfigUtils","config","cache","createLruCache","cacheSize","splitModifiers","createSplitModifiers","createClassUtils"],"mappings":";;;;;AAOM,SAAUA,iBAAV,CAA4BC,MAA5B,EAA0C;AAC5C,EAAA,OAAA,QAAA,CAAA;AACIC,IAAAA,KAAK,EAAEC,cAAc,CAAiBF,MAAM,CAACG,SAAxB,CADzB;IAEIC,cAAc,EAAEC,oBAAoB,CAACL,MAAD,CAAA;GACjCM,EAAAA,gBAAgB,CAACN,MAAD,CAHvB,CAAA,CAAA;AAKH;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Config } from './types';
|
|
2
1
|
import { ClassNameValue } from './tw-join';
|
|
2
|
+
import { Config } from './types';
|
|
3
3
|
declare type CreateConfigFirst = () => Config;
|
|
4
4
|
declare type CreateConfigSubsequent = (config: Config) => Config;
|
|
5
5
|
declare type TailwindMerge = (...classLists: ClassNameValue[]) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-tailwind-merge.mjs","sources":["../../src/lib/create-tailwind-merge.ts"],"sourcesContent":["import { createConfigUtils } from './config-utils'\nimport {
|
|
1
|
+
{"version":3,"file":"create-tailwind-merge.mjs","sources":["../../src/lib/create-tailwind-merge.ts"],"sourcesContent":["import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { Config } from './types'\n\ntype CreateConfigFirst = () => Config\ntype CreateConfigSubsequent = (config: Config) => Config\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport function createTailwindMerge(\n ...createConfig: [CreateConfigFirst, ...CreateConfigSubsequent[]]\n): TailwindMerge {\n let configUtils: ConfigUtils\n let cacheGet: ConfigUtils['cache']['get']\n let cacheSet: ConfigUtils['cache']['set']\n let functionToCall = initTailwindMerge\n\n function initTailwindMerge(classList: string) {\n const [firstCreateConfig, ...restCreateConfig] = createConfig\n\n const config = restCreateConfig.reduce(\n (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n firstCreateConfig(),\n )\n\n configUtils = createConfigUtils(config)\n cacheGet = configUtils.cache.get\n cacheSet = configUtils.cache.set\n functionToCall = tailwindMerge\n\n return tailwindMerge(classList)\n }\n\n function tailwindMerge(classList: string) {\n const cachedResult = cacheGet(classList)\n\n if (cachedResult) {\n return cachedResult\n }\n\n const result = mergeClassList(classList, configUtils)\n cacheSet(classList, result)\n\n return result\n }\n\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments as any))\n }\n}\n"],"names":["createTailwindMerge","createConfig","configUtils","cacheGet","cacheSet","functionToCall","initTailwindMerge","classList","firstCreateConfig","restCreateConfig","config","reduce","previousConfig","createConfigCurrent","createConfigUtils","cache","get","set","tailwindMerge","cachedResult","result","mergeClassList","callTailwindMerge","twJoin","apply","arguments"],"mappings":";;;;AAUgB,SAAAA,mBAAA,GACqD;AAAA,EAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAA9DC,YAA8D,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;IAA9DA,YAA8D,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;AAAA,GAAA;;AAEjE,EAAA,IAAIC,WAAJ,CAAA;AACA,EAAA,IAAIC,QAAJ,CAAA;AACA,EAAA,IAAIC,QAAJ,CAAA;EACA,IAAIC,cAAc,GAAGC,iBAArB,CAAA;;EAEA,SAASA,iBAAT,CAA2BC,SAA3B,EAA4C;IACxC,IAAOC,iBAAP,GAAiDP,YAAjD,CAAA,CAAA,CAAA;QAA6BQ,gBAA7B,GAAiDR,YAAjD,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA;IAEA,IAAMS,MAAM,GAAGD,gBAAgB,CAACE,MAAjB,CACX,UAACC,cAAD,EAAiBC,mBAAjB,EAAA;MAAA,OAAyCA,mBAAmB,CAACD,cAAD,CAA5D,CAAA;KADW,EAEXJ,iBAAiB,EAFN,CAAf,CAAA;AAKAN,IAAAA,WAAW,GAAGY,iBAAiB,CAACJ,MAAD,CAA/B,CAAA;AACAP,IAAAA,QAAQ,GAAGD,WAAW,CAACa,KAAZ,CAAkBC,GAA7B,CAAA;AACAZ,IAAAA,QAAQ,GAAGF,WAAW,CAACa,KAAZ,CAAkBE,GAA7B,CAAA;AACAZ,IAAAA,cAAc,GAAGa,aAAjB,CAAA;IAEA,OAAOA,aAAa,CAACX,SAAD,CAApB,CAAA;AACH,GAAA;;EAED,SAASW,aAAT,CAAuBX,SAAvB,EAAwC;AACpC,IAAA,IAAMY,YAAY,GAAGhB,QAAQ,CAACI,SAAD,CAA7B,CAAA;;AAEA,IAAA,IAAIY,YAAJ,EAAkB;AACd,MAAA,OAAOA,YAAP,CAAA;AACH,KAAA;;AAED,IAAA,IAAMC,MAAM,GAAGC,cAAc,CAACd,SAAD,EAAYL,WAAZ,CAA7B,CAAA;AACAE,IAAAA,QAAQ,CAACG,SAAD,EAAYa,MAAZ,CAAR,CAAA;AAEA,IAAA,OAAOA,MAAP,CAAA;AACH,GAAA;;EAED,OAAO,SAASE,iBAAT,GAA0B;IAC7B,OAAOjB,cAAc,CAACkB,MAAM,CAACC,KAAP,CAAa,IAAb,EAAmBC,SAAnB,CAAD,CAArB,CAAA;GADJ,CAAA;AAGH;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isAny, isArbitraryLength, isArbitraryPosition, isArbitraryShadow, isArbitrarySize, isArbitraryUrl, isArbitraryValue,
|
|
1
|
+
import { isAny, isArbitraryLength, isArbitraryNumber, isArbitraryPosition, isArbitraryShadow, isArbitrarySize, isArbitraryUrl, isArbitraryValue, isInteger, isLength, isTshirtSize } from './validators';
|
|
2
2
|
export declare function getDefaultConfig(): {
|
|
3
3
|
readonly cacheSize: 500;
|
|
4
4
|
readonly theme: {
|
|
@@ -1735,8 +1735,6 @@ export declare function getDefaultConfig(): {
|
|
|
1735
1735
|
readonly 'inset-x': readonly ["right", "left"];
|
|
1736
1736
|
readonly 'inset-y': readonly ["top", "bottom"];
|
|
1737
1737
|
readonly flex: readonly ["basis", "grow", "shrink"];
|
|
1738
|
-
readonly 'col-start-end': readonly ["col-start", "col-end"];
|
|
1739
|
-
readonly 'row-start-end': readonly ["row-start", "row-end"];
|
|
1740
1738
|
readonly gap: readonly ["gap-x", "gap-y"];
|
|
1741
1739
|
readonly p: readonly ["px", "py", "pt", "pr", "pb", "pl"];
|
|
1742
1740
|
readonly px: readonly ["pr", "pl"];
|
|
@@ -2069,8 +2069,6 @@ function getDefaultConfig() {
|
|
|
2069
2069
|
'inset-x': ['right', 'left'],
|
|
2070
2070
|
'inset-y': ['top', 'bottom'],
|
|
2071
2071
|
flex: ['basis', 'grow', 'shrink'],
|
|
2072
|
-
'col-start-end': ['col-start', 'col-end'],
|
|
2073
|
-
'row-start-end': ['row-start', 'row-end'],
|
|
2074
2072
|
gap: ['gap-x', 'gap-y'],
|
|
2075
2073
|
p: ['px', 'py', 'pt', 'pr', 'pb', 'pl'],
|
|
2076
2074
|
px: ['pr', 'pl'],
|