@bezdenegsvarkinet/ui-library 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs DELETED
@@ -1,3280 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- function r(e) {
3
- var t, f, n = "";
4
- if ("string" == typeof e || "number" == typeof e) n += e;
5
- else if ("object" == typeof e) if (Array.isArray(e)) {
6
- var o = e.length;
7
- for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
8
- } else for (f in e) e[f] && (n && (n += " "), n += f);
9
- return n;
10
- }
11
- function clsx() {
12
- for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
13
- return n;
14
- }
15
- const falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
16
- const cx = clsx;
17
- const cva = (base, config) => (props) => {
18
- var _config_compoundVariants;
19
- if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
20
- const { variants, defaultVariants } = config;
21
- const getVariantClassNames = Object.keys(variants).map((variant) => {
22
- const variantProp = props === null || props === void 0 ? void 0 : props[variant];
23
- const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
24
- if (variantProp === null) return null;
25
- const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
26
- return variants[variant][variantKey];
27
- });
28
- const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param) => {
29
- let [key, value] = param;
30
- if (value === void 0) {
31
- return acc;
32
- }
33
- acc[key] = value;
34
- return acc;
35
- }, {});
36
- const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param) => {
37
- let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
38
- return Object.entries(compoundVariantOptions).every((param2) => {
39
- let [key, value] = param2;
40
- return Array.isArray(value) ? value.includes({
41
- ...defaultVariants,
42
- ...propsWithoutUndefined
43
- }[key]) : {
44
- ...defaultVariants,
45
- ...propsWithoutUndefined
46
- }[key] === value;
47
- }) ? [
48
- ...acc,
49
- cvClass,
50
- cvClassName
51
- ] : acc;
52
- }, []);
53
- return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
54
- };
55
- const concatArrays = (array1, array2) => {
56
- const combinedArray = new Array(array1.length + array2.length);
57
- for (let i = 0; i < array1.length; i++) {
58
- combinedArray[i] = array1[i];
59
- }
60
- for (let i = 0; i < array2.length; i++) {
61
- combinedArray[array1.length + i] = array2[i];
62
- }
63
- return combinedArray;
64
- };
65
- const createClassValidatorObject = (classGroupId, validator) => ({
66
- classGroupId,
67
- validator
68
- });
69
- const createClassPartObject = (nextPart = /* @__PURE__ */ new Map(), validators = null, classGroupId) => ({
70
- nextPart,
71
- validators,
72
- classGroupId
73
- });
74
- const CLASS_PART_SEPARATOR = "-";
75
- const EMPTY_CONFLICTS = [];
76
- const ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
77
- const createClassGroupUtils = (config) => {
78
- const classMap = createClassMap(config);
79
- const {
80
- conflictingClassGroups,
81
- conflictingClassGroupModifiers
82
- } = config;
83
- const getClassGroupId = (className) => {
84
- if (className.startsWith("[") && className.endsWith("]")) {
85
- return getGroupIdForArbitraryProperty(className);
86
- }
87
- const classParts = className.split(CLASS_PART_SEPARATOR);
88
- const startIndex = classParts[0] === "" && classParts.length > 1 ? 1 : 0;
89
- return getGroupRecursive(classParts, startIndex, classMap);
90
- };
91
- const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
92
- if (hasPostfixModifier) {
93
- const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
94
- const baseConflicts = conflictingClassGroups[classGroupId];
95
- if (modifierConflicts) {
96
- if (baseConflicts) {
97
- return concatArrays(baseConflicts, modifierConflicts);
98
- }
99
- return modifierConflicts;
100
- }
101
- return baseConflicts || EMPTY_CONFLICTS;
102
- }
103
- return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
104
- };
105
- return {
106
- getClassGroupId,
107
- getConflictingClassGroupIds
108
- };
109
- };
110
- const getGroupRecursive = (classParts, startIndex, classPartObject) => {
111
- const classPathsLength = classParts.length - startIndex;
112
- if (classPathsLength === 0) {
113
- return classPartObject.classGroupId;
114
- }
115
- const currentClassPart = classParts[startIndex];
116
- const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
117
- if (nextClassPartObject) {
118
- const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
119
- if (result) return result;
120
- }
121
- const validators = classPartObject.validators;
122
- if (validators === null) {
123
- return void 0;
124
- }
125
- const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
126
- const validatorsLength = validators.length;
127
- for (let i = 0; i < validatorsLength; i++) {
128
- const validatorObj = validators[i];
129
- if (validatorObj.validator(classRest)) {
130
- return validatorObj.classGroupId;
131
- }
132
- }
133
- return void 0;
134
- };
135
- const getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
136
- const content = className.slice(1, -1);
137
- const colonIndex = content.indexOf(":");
138
- const property = content.slice(0, colonIndex);
139
- return property ? ARBITRARY_PROPERTY_PREFIX + property : void 0;
140
- })();
141
- const createClassMap = (config) => {
142
- const {
143
- theme,
144
- classGroups
145
- } = config;
146
- return processClassGroups(classGroups, theme);
147
- };
148
- const processClassGroups = (classGroups, theme) => {
149
- const classMap = createClassPartObject();
150
- for (const classGroupId in classGroups) {
151
- const group = classGroups[classGroupId];
152
- processClassesRecursively(group, classMap, classGroupId, theme);
153
- }
154
- return classMap;
155
- };
156
- const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
157
- const len = classGroup.length;
158
- for (let i = 0; i < len; i++) {
159
- const classDefinition = classGroup[i];
160
- processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
161
- }
162
- };
163
- const processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
164
- if (typeof classDefinition === "string") {
165
- processStringDefinition(classDefinition, classPartObject, classGroupId);
166
- return;
167
- }
168
- if (typeof classDefinition === "function") {
169
- processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
170
- return;
171
- }
172
- processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
173
- };
174
- const processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
175
- const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
176
- classPartObjectToEdit.classGroupId = classGroupId;
177
- };
178
- const processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
179
- if (isThemeGetter(classDefinition)) {
180
- processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
181
- return;
182
- }
183
- if (classPartObject.validators === null) {
184
- classPartObject.validators = [];
185
- }
186
- classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
187
- };
188
- const processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
189
- const entries = Object.entries(classDefinition);
190
- const len = entries.length;
191
- for (let i = 0; i < len; i++) {
192
- const [key, value] = entries[i];
193
- processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
194
- }
195
- };
196
- const getPart = (classPartObject, path) => {
197
- let current = classPartObject;
198
- const parts = path.split(CLASS_PART_SEPARATOR);
199
- const len = parts.length;
200
- for (let i = 0; i < len; i++) {
201
- const part = parts[i];
202
- let next = current.nextPart.get(part);
203
- if (!next) {
204
- next = createClassPartObject();
205
- current.nextPart.set(part, next);
206
- }
207
- current = next;
208
- }
209
- return current;
210
- };
211
- const isThemeGetter = (func) => "isThemeGetter" in func && func.isThemeGetter === true;
212
- const createLruCache = (maxCacheSize) => {
213
- if (maxCacheSize < 1) {
214
- return {
215
- get: () => void 0,
216
- set: () => {
217
- }
218
- };
219
- }
220
- let cacheSize = 0;
221
- let cache = /* @__PURE__ */ Object.create(null);
222
- let previousCache = /* @__PURE__ */ Object.create(null);
223
- const update = (key, value) => {
224
- cache[key] = value;
225
- cacheSize++;
226
- if (cacheSize > maxCacheSize) {
227
- cacheSize = 0;
228
- previousCache = cache;
229
- cache = /* @__PURE__ */ Object.create(null);
230
- }
231
- };
232
- return {
233
- get(key) {
234
- let value = cache[key];
235
- if (value !== void 0) {
236
- return value;
237
- }
238
- if ((value = previousCache[key]) !== void 0) {
239
- update(key, value);
240
- return value;
241
- }
242
- },
243
- set(key, value) {
244
- if (key in cache) {
245
- cache[key] = value;
246
- } else {
247
- update(key, value);
248
- }
249
- }
250
- };
251
- };
252
- const IMPORTANT_MODIFIER = "!";
253
- const MODIFIER_SEPARATOR = ":";
254
- const EMPTY_MODIFIERS = [];
255
- const createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
256
- modifiers,
257
- hasImportantModifier,
258
- baseClassName,
259
- maybePostfixModifierPosition,
260
- isExternal
261
- });
262
- const createParseClassName = (config) => {
263
- const {
264
- prefix,
265
- experimentalParseClassName
266
- } = config;
267
- let parseClassName = (className) => {
268
- const modifiers = [];
269
- let bracketDepth = 0;
270
- let parenDepth = 0;
271
- let modifierStart = 0;
272
- let postfixModifierPosition;
273
- const len = className.length;
274
- for (let index = 0; index < len; index++) {
275
- const currentCharacter = className[index];
276
- if (bracketDepth === 0 && parenDepth === 0) {
277
- if (currentCharacter === MODIFIER_SEPARATOR) {
278
- modifiers.push(className.slice(modifierStart, index));
279
- modifierStart = index + 1;
280
- continue;
281
- }
282
- if (currentCharacter === "/") {
283
- postfixModifierPosition = index;
284
- continue;
285
- }
286
- }
287
- if (currentCharacter === "[") bracketDepth++;
288
- else if (currentCharacter === "]") bracketDepth--;
289
- else if (currentCharacter === "(") parenDepth++;
290
- else if (currentCharacter === ")") parenDepth--;
291
- }
292
- const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
293
- let baseClassName = baseClassNameWithImportantModifier;
294
- let hasImportantModifier = false;
295
- if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
296
- baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
297
- hasImportantModifier = true;
298
- } else if (
299
- /**
300
- * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.
301
- * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864
302
- */
303
- baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)
304
- ) {
305
- baseClassName = baseClassNameWithImportantModifier.slice(1);
306
- hasImportantModifier = true;
307
- }
308
- const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
309
- return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
310
- };
311
- if (prefix) {
312
- const fullPrefix = prefix + MODIFIER_SEPARATOR;
313
- const parseClassNameOriginal = parseClassName;
314
- parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, void 0, true);
315
- }
316
- if (experimentalParseClassName) {
317
- const parseClassNameOriginal = parseClassName;
318
- parseClassName = (className) => experimentalParseClassName({
319
- className,
320
- parseClassName: parseClassNameOriginal
321
- });
322
- }
323
- return parseClassName;
324
- };
325
- const createSortModifiers = (config) => {
326
- const modifierWeights = /* @__PURE__ */ new Map();
327
- config.orderSensitiveModifiers.forEach((mod, index) => {
328
- modifierWeights.set(mod, 1e6 + index);
329
- });
330
- return (modifiers) => {
331
- const result = [];
332
- let currentSegment = [];
333
- for (let i = 0; i < modifiers.length; i++) {
334
- const modifier = modifiers[i];
335
- const isArbitrary = modifier[0] === "[";
336
- const isOrderSensitive = modifierWeights.has(modifier);
337
- if (isArbitrary || isOrderSensitive) {
338
- if (currentSegment.length > 0) {
339
- currentSegment.sort();
340
- result.push(...currentSegment);
341
- currentSegment = [];
342
- }
343
- result.push(modifier);
344
- } else {
345
- currentSegment.push(modifier);
346
- }
347
- }
348
- if (currentSegment.length > 0) {
349
- currentSegment.sort();
350
- result.push(...currentSegment);
351
- }
352
- return result;
353
- };
354
- };
355
- const createConfigUtils = (config) => ({
356
- cache: createLruCache(config.cacheSize),
357
- parseClassName: createParseClassName(config),
358
- sortModifiers: createSortModifiers(config),
359
- ...createClassGroupUtils(config)
360
- });
361
- const SPLIT_CLASSES_REGEX = /\s+/;
362
- const mergeClassList = (classList, configUtils) => {
363
- const {
364
- parseClassName,
365
- getClassGroupId,
366
- getConflictingClassGroupIds,
367
- sortModifiers
368
- } = configUtils;
369
- const classGroupsInConflict = [];
370
- const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
371
- let result = "";
372
- for (let index = classNames.length - 1; index >= 0; index -= 1) {
373
- const originalClassName = classNames[index];
374
- const {
375
- isExternal,
376
- modifiers,
377
- hasImportantModifier,
378
- baseClassName,
379
- maybePostfixModifierPosition
380
- } = parseClassName(originalClassName);
381
- if (isExternal) {
382
- result = originalClassName + (result.length > 0 ? " " + result : result);
383
- continue;
384
- }
385
- let hasPostfixModifier = !!maybePostfixModifierPosition;
386
- let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
387
- if (!classGroupId) {
388
- if (!hasPostfixModifier) {
389
- result = originalClassName + (result.length > 0 ? " " + result : result);
390
- continue;
391
- }
392
- classGroupId = getClassGroupId(baseClassName);
393
- if (!classGroupId) {
394
- result = originalClassName + (result.length > 0 ? " " + result : result);
395
- continue;
396
- }
397
- hasPostfixModifier = false;
398
- }
399
- const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
400
- const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
401
- const classId = modifierId + classGroupId;
402
- if (classGroupsInConflict.indexOf(classId) > -1) {
403
- continue;
404
- }
405
- classGroupsInConflict.push(classId);
406
- const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
407
- for (let i = 0; i < conflictGroups.length; ++i) {
408
- const group = conflictGroups[i];
409
- classGroupsInConflict.push(modifierId + group);
410
- }
411
- result = originalClassName + (result.length > 0 ? " " + result : result);
412
- }
413
- return result;
414
- };
415
- const twJoin = (...classLists) => {
416
- let index = 0;
417
- let argument;
418
- let resolvedValue;
419
- let string = "";
420
- while (index < classLists.length) {
421
- if (argument = classLists[index++]) {
422
- if (resolvedValue = toValue(argument)) {
423
- string && (string += " ");
424
- string += resolvedValue;
425
- }
426
- }
427
- }
428
- return string;
429
- };
430
- const toValue = (mix) => {
431
- if (typeof mix === "string") {
432
- return mix;
433
- }
434
- let resolvedValue;
435
- let string = "";
436
- for (let k = 0; k < mix.length; k++) {
437
- if (mix[k]) {
438
- if (resolvedValue = toValue(mix[k])) {
439
- string && (string += " ");
440
- string += resolvedValue;
441
- }
442
- }
443
- }
444
- return string;
445
- };
446
- const createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
447
- let configUtils;
448
- let cacheGet;
449
- let cacheSet;
450
- let functionToCall;
451
- const initTailwindMerge = (classList) => {
452
- const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
453
- configUtils = createConfigUtils(config);
454
- cacheGet = configUtils.cache.get;
455
- cacheSet = configUtils.cache.set;
456
- functionToCall = tailwindMerge;
457
- return tailwindMerge(classList);
458
- };
459
- const tailwindMerge = (classList) => {
460
- const cachedResult = cacheGet(classList);
461
- if (cachedResult) {
462
- return cachedResult;
463
- }
464
- const result = mergeClassList(classList, configUtils);
465
- cacheSet(classList, result);
466
- return result;
467
- };
468
- functionToCall = initTailwindMerge;
469
- return (...args) => functionToCall(twJoin(...args));
470
- };
471
- const fallbackThemeArr = [];
472
- const fromTheme = (key) => {
473
- const themeGetter = (theme) => theme[key] || fallbackThemeArr;
474
- themeGetter.isThemeGetter = true;
475
- return themeGetter;
476
- };
477
- const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
478
- const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
479
- const fractionRegex = /^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/;
480
- const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
481
- 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$/;
482
- const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
483
- const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
484
- const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
485
- const isFraction = (value) => fractionRegex.test(value);
486
- const isNumber = (value) => !!value && !Number.isNaN(Number(value));
487
- const isInteger = (value) => !!value && Number.isInteger(Number(value));
488
- const isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
489
- const isTshirtSize = (value) => tshirtUnitRegex.test(value);
490
- const isAny = () => true;
491
- const isLengthOnly = (value) => (
492
- // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
493
- // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
494
- // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
495
- lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
496
- );
497
- const isNever = () => false;
498
- const isShadow = (value) => shadowRegex.test(value);
499
- const isImage = (value) => imageRegex.test(value);
500
- const isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
501
- const isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
502
- const isArbitraryValue = (value) => arbitraryValueRegex.test(value);
503
- const isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
504
- const isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
505
- const isArbitraryWeight = (value) => getIsArbitraryValue(value, isLabelWeight, isAny);
506
- const isArbitraryFamilyName = (value) => getIsArbitraryValue(value, isLabelFamilyName, isNever);
507
- const isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
508
- const isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
509
- const isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
510
- const isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
511
- const isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
512
- const isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
513
- const isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
514
- const isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
515
- const isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
516
- const isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
517
- const isArbitraryVariableWeight = (value) => getIsArbitraryVariable(value, isLabelWeight, true);
518
- const getIsArbitraryValue = (value, testLabel, testValue) => {
519
- const result = arbitraryValueRegex.exec(value);
520
- if (result) {
521
- if (result[1]) {
522
- return testLabel(result[1]);
523
- }
524
- return testValue(result[2]);
525
- }
526
- return false;
527
- };
528
- const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
529
- const result = arbitraryVariableRegex.exec(value);
530
- if (result) {
531
- if (result[1]) {
532
- return testLabel(result[1]);
533
- }
534
- return shouldMatchNoLabel;
535
- }
536
- return false;
537
- };
538
- const isLabelPosition = (label) => label === "position" || label === "percentage";
539
- const isLabelImage = (label) => label === "image" || label === "url";
540
- const isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
541
- const isLabelLength = (label) => label === "length";
542
- const isLabelNumber = (label) => label === "number";
543
- const isLabelFamilyName = (label) => label === "family-name";
544
- const isLabelWeight = (label) => label === "number" || label === "weight";
545
- const isLabelShadow = (label) => label === "shadow";
546
- const getDefaultConfig = () => {
547
- const themeColor = fromTheme("color");
548
- const themeFont = fromTheme("font");
549
- const themeText = fromTheme("text");
550
- const themeFontWeight = fromTheme("font-weight");
551
- const themeTracking = fromTheme("tracking");
552
- const themeLeading = fromTheme("leading");
553
- const themeBreakpoint = fromTheme("breakpoint");
554
- const themeContainer = fromTheme("container");
555
- const themeSpacing = fromTheme("spacing");
556
- const themeRadius = fromTheme("radius");
557
- const themeShadow = fromTheme("shadow");
558
- const themeInsetShadow = fromTheme("inset-shadow");
559
- const themeTextShadow = fromTheme("text-shadow");
560
- const themeDropShadow = fromTheme("drop-shadow");
561
- const themeBlur = fromTheme("blur");
562
- const themePerspective = fromTheme("perspective");
563
- const themeAspect = fromTheme("aspect");
564
- const themeEase = fromTheme("ease");
565
- const themeAnimate = fromTheme("animate");
566
- const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
567
- const scalePosition = () => [
568
- "center",
569
- "top",
570
- "bottom",
571
- "left",
572
- "right",
573
- "top-left",
574
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
575
- "left-top",
576
- "top-right",
577
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
578
- "right-top",
579
- "bottom-right",
580
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
581
- "right-bottom",
582
- "bottom-left",
583
- // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378
584
- "left-bottom"
585
- ];
586
- const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];
587
- const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
588
- const scaleOverscroll = () => ["auto", "contain", "none"];
589
- const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];
590
- const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()];
591
- const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue];
592
- const scaleGridColRowStartAndEnd = () => ["auto", {
593
- span: ["full", isInteger, isArbitraryVariable, isArbitraryValue]
594
- }, isInteger, isArbitraryVariable, isArbitraryValue];
595
- const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue];
596
- const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue];
597
- const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"];
598
- const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"];
599
- const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
600
- const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
601
- const scaleSizingInline = () => [isFraction, "screen", "full", "dvw", "lvw", "svw", "min", "max", "fit", ...scaleUnambiguousSpacing()];
602
- const scaleSizingBlock = () => [isFraction, "screen", "full", "lh", "dvh", "lvh", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()];
603
- const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];
604
- const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {
605
- position: [isArbitraryVariable, isArbitraryValue]
606
- }];
607
- const scaleBgRepeat = () => ["no-repeat", {
608
- repeat: ["", "x", "y", "space", "round"]
609
- }];
610
- const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, {
611
- size: [isArbitraryVariable, isArbitraryValue]
612
- }];
613
- const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];
614
- const scaleRadius = () => [
615
- // Deprecated since Tailwind CSS v4.0.0
616
- "",
617
- "none",
618
- "full",
619
- themeRadius,
620
- isArbitraryVariable,
621
- isArbitraryValue
622
- ];
623
- const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength];
624
- const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"];
625
- const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
626
- const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];
627
- const scaleBlur = () => [
628
- // Deprecated since Tailwind CSS v4.0.0
629
- "",
630
- "none",
631
- themeBlur,
632
- isArbitraryVariable,
633
- isArbitraryValue
634
- ];
635
- const scaleRotate = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
636
- const scaleScale = () => ["none", isNumber, isArbitraryVariable, isArbitraryValue];
637
- const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];
638
- const scaleTranslate = () => [isFraction, "full", ...scaleUnambiguousSpacing()];
639
- return {
640
- cacheSize: 500,
641
- theme: {
642
- animate: ["spin", "ping", "pulse", "bounce"],
643
- aspect: ["video"],
644
- blur: [isTshirtSize],
645
- breakpoint: [isTshirtSize],
646
- color: [isAny],
647
- container: [isTshirtSize],
648
- "drop-shadow": [isTshirtSize],
649
- ease: ["in", "out", "in-out"],
650
- font: [isAnyNonArbitrary],
651
- "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
652
- "inset-shadow": [isTshirtSize],
653
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
654
- perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
655
- radius: [isTshirtSize],
656
- shadow: [isTshirtSize],
657
- spacing: ["px", isNumber],
658
- text: [isTshirtSize],
659
- "text-shadow": [isTshirtSize],
660
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
661
- },
662
- classGroups: {
663
- // --------------
664
- // --- Layout ---
665
- // --------------
666
- /**
667
- * Aspect Ratio
668
- * @see https://tailwindcss.com/docs/aspect-ratio
669
- */
670
- aspect: [{
671
- aspect: ["auto", "square", isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]
672
- }],
673
- /**
674
- * Container
675
- * @see https://tailwindcss.com/docs/container
676
- * @deprecated since Tailwind CSS v4.0.0
677
- */
678
- container: ["container"],
679
- /**
680
- * Columns
681
- * @see https://tailwindcss.com/docs/columns
682
- */
683
- columns: [{
684
- columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]
685
- }],
686
- /**
687
- * Break After
688
- * @see https://tailwindcss.com/docs/break-after
689
- */
690
- "break-after": [{
691
- "break-after": scaleBreak()
692
- }],
693
- /**
694
- * Break Before
695
- * @see https://tailwindcss.com/docs/break-before
696
- */
697
- "break-before": [{
698
- "break-before": scaleBreak()
699
- }],
700
- /**
701
- * Break Inside
702
- * @see https://tailwindcss.com/docs/break-inside
703
- */
704
- "break-inside": [{
705
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
706
- }],
707
- /**
708
- * Box Decoration Break
709
- * @see https://tailwindcss.com/docs/box-decoration-break
710
- */
711
- "box-decoration": [{
712
- "box-decoration": ["slice", "clone"]
713
- }],
714
- /**
715
- * Box Sizing
716
- * @see https://tailwindcss.com/docs/box-sizing
717
- */
718
- box: [{
719
- box: ["border", "content"]
720
- }],
721
- /**
722
- * Display
723
- * @see https://tailwindcss.com/docs/display
724
- */
725
- 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"],
726
- /**
727
- * Screen Reader Only
728
- * @see https://tailwindcss.com/docs/display#screen-reader-only
729
- */
730
- sr: ["sr-only", "not-sr-only"],
731
- /**
732
- * Floats
733
- * @see https://tailwindcss.com/docs/float
734
- */
735
- float: [{
736
- float: ["right", "left", "none", "start", "end"]
737
- }],
738
- /**
739
- * Clear
740
- * @see https://tailwindcss.com/docs/clear
741
- */
742
- clear: [{
743
- clear: ["left", "right", "both", "none", "start", "end"]
744
- }],
745
- /**
746
- * Isolation
747
- * @see https://tailwindcss.com/docs/isolation
748
- */
749
- isolation: ["isolate", "isolation-auto"],
750
- /**
751
- * Object Fit
752
- * @see https://tailwindcss.com/docs/object-fit
753
- */
754
- "object-fit": [{
755
- object: ["contain", "cover", "fill", "none", "scale-down"]
756
- }],
757
- /**
758
- * Object Position
759
- * @see https://tailwindcss.com/docs/object-position
760
- */
761
- "object-position": [{
762
- object: scalePositionWithArbitrary()
763
- }],
764
- /**
765
- * Overflow
766
- * @see https://tailwindcss.com/docs/overflow
767
- */
768
- overflow: [{
769
- overflow: scaleOverflow()
770
- }],
771
- /**
772
- * Overflow X
773
- * @see https://tailwindcss.com/docs/overflow
774
- */
775
- "overflow-x": [{
776
- "overflow-x": scaleOverflow()
777
- }],
778
- /**
779
- * Overflow Y
780
- * @see https://tailwindcss.com/docs/overflow
781
- */
782
- "overflow-y": [{
783
- "overflow-y": scaleOverflow()
784
- }],
785
- /**
786
- * Overscroll Behavior
787
- * @see https://tailwindcss.com/docs/overscroll-behavior
788
- */
789
- overscroll: [{
790
- overscroll: scaleOverscroll()
791
- }],
792
- /**
793
- * Overscroll Behavior X
794
- * @see https://tailwindcss.com/docs/overscroll-behavior
795
- */
796
- "overscroll-x": [{
797
- "overscroll-x": scaleOverscroll()
798
- }],
799
- /**
800
- * Overscroll Behavior Y
801
- * @see https://tailwindcss.com/docs/overscroll-behavior
802
- */
803
- "overscroll-y": [{
804
- "overscroll-y": scaleOverscroll()
805
- }],
806
- /**
807
- * Position
808
- * @see https://tailwindcss.com/docs/position
809
- */
810
- position: ["static", "fixed", "absolute", "relative", "sticky"],
811
- /**
812
- * Inset
813
- * @see https://tailwindcss.com/docs/top-right-bottom-left
814
- */
815
- inset: [{
816
- inset: scaleInset()
817
- }],
818
- /**
819
- * Inset Inline
820
- * @see https://tailwindcss.com/docs/top-right-bottom-left
821
- */
822
- "inset-x": [{
823
- "inset-x": scaleInset()
824
- }],
825
- /**
826
- * Inset Block
827
- * @see https://tailwindcss.com/docs/top-right-bottom-left
828
- */
829
- "inset-y": [{
830
- "inset-y": scaleInset()
831
- }],
832
- /**
833
- * Inset Inline Start
834
- * @see https://tailwindcss.com/docs/top-right-bottom-left
835
- * @todo class group will be renamed to `inset-s` in next major release
836
- */
837
- start: [{
838
- "inset-s": scaleInset(),
839
- /**
840
- * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.
841
- * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
842
- */
843
- start: scaleInset()
844
- }],
845
- /**
846
- * Inset Inline End
847
- * @see https://tailwindcss.com/docs/top-right-bottom-left
848
- * @todo class group will be renamed to `inset-e` in next major release
849
- */
850
- end: [{
851
- "inset-e": scaleInset(),
852
- /**
853
- * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.
854
- * @see https://github.com/tailwindlabs/tailwindcss/pull/19613
855
- */
856
- end: scaleInset()
857
- }],
858
- /**
859
- * Inset Block Start
860
- * @see https://tailwindcss.com/docs/top-right-bottom-left
861
- */
862
- "inset-bs": [{
863
- "inset-bs": scaleInset()
864
- }],
865
- /**
866
- * Inset Block End
867
- * @see https://tailwindcss.com/docs/top-right-bottom-left
868
- */
869
- "inset-be": [{
870
- "inset-be": scaleInset()
871
- }],
872
- /**
873
- * Top
874
- * @see https://tailwindcss.com/docs/top-right-bottom-left
875
- */
876
- top: [{
877
- top: scaleInset()
878
- }],
879
- /**
880
- * Right
881
- * @see https://tailwindcss.com/docs/top-right-bottom-left
882
- */
883
- right: [{
884
- right: scaleInset()
885
- }],
886
- /**
887
- * Bottom
888
- * @see https://tailwindcss.com/docs/top-right-bottom-left
889
- */
890
- bottom: [{
891
- bottom: scaleInset()
892
- }],
893
- /**
894
- * Left
895
- * @see https://tailwindcss.com/docs/top-right-bottom-left
896
- */
897
- left: [{
898
- left: scaleInset()
899
- }],
900
- /**
901
- * Visibility
902
- * @see https://tailwindcss.com/docs/visibility
903
- */
904
- visibility: ["visible", "invisible", "collapse"],
905
- /**
906
- * Z-Index
907
- * @see https://tailwindcss.com/docs/z-index
908
- */
909
- z: [{
910
- z: [isInteger, "auto", isArbitraryVariable, isArbitraryValue]
911
- }],
912
- // ------------------------
913
- // --- Flexbox and Grid ---
914
- // ------------------------
915
- /**
916
- * Flex Basis
917
- * @see https://tailwindcss.com/docs/flex-basis
918
- */
919
- basis: [{
920
- basis: [isFraction, "full", "auto", themeContainer, ...scaleUnambiguousSpacing()]
921
- }],
922
- /**
923
- * Flex Direction
924
- * @see https://tailwindcss.com/docs/flex-direction
925
- */
926
- "flex-direction": [{
927
- flex: ["row", "row-reverse", "col", "col-reverse"]
928
- }],
929
- /**
930
- * Flex Wrap
931
- * @see https://tailwindcss.com/docs/flex-wrap
932
- */
933
- "flex-wrap": [{
934
- flex: ["nowrap", "wrap", "wrap-reverse"]
935
- }],
936
- /**
937
- * Flex
938
- * @see https://tailwindcss.com/docs/flex
939
- */
940
- flex: [{
941
- flex: [isNumber, isFraction, "auto", "initial", "none", isArbitraryValue]
942
- }],
943
- /**
944
- * Flex Grow
945
- * @see https://tailwindcss.com/docs/flex-grow
946
- */
947
- grow: [{
948
- grow: ["", isNumber, isArbitraryVariable, isArbitraryValue]
949
- }],
950
- /**
951
- * Flex Shrink
952
- * @see https://tailwindcss.com/docs/flex-shrink
953
- */
954
- shrink: [{
955
- shrink: ["", isNumber, isArbitraryVariable, isArbitraryValue]
956
- }],
957
- /**
958
- * Order
959
- * @see https://tailwindcss.com/docs/order
960
- */
961
- order: [{
962
- order: [isInteger, "first", "last", "none", isArbitraryVariable, isArbitraryValue]
963
- }],
964
- /**
965
- * Grid Template Columns
966
- * @see https://tailwindcss.com/docs/grid-template-columns
967
- */
968
- "grid-cols": [{
969
- "grid-cols": scaleGridTemplateColsRows()
970
- }],
971
- /**
972
- * Grid Column Start / End
973
- * @see https://tailwindcss.com/docs/grid-column
974
- */
975
- "col-start-end": [{
976
- col: scaleGridColRowStartAndEnd()
977
- }],
978
- /**
979
- * Grid Column Start
980
- * @see https://tailwindcss.com/docs/grid-column
981
- */
982
- "col-start": [{
983
- "col-start": scaleGridColRowStartOrEnd()
984
- }],
985
- /**
986
- * Grid Column End
987
- * @see https://tailwindcss.com/docs/grid-column
988
- */
989
- "col-end": [{
990
- "col-end": scaleGridColRowStartOrEnd()
991
- }],
992
- /**
993
- * Grid Template Rows
994
- * @see https://tailwindcss.com/docs/grid-template-rows
995
- */
996
- "grid-rows": [{
997
- "grid-rows": scaleGridTemplateColsRows()
998
- }],
999
- /**
1000
- * Grid Row Start / End
1001
- * @see https://tailwindcss.com/docs/grid-row
1002
- */
1003
- "row-start-end": [{
1004
- row: scaleGridColRowStartAndEnd()
1005
- }],
1006
- /**
1007
- * Grid Row Start
1008
- * @see https://tailwindcss.com/docs/grid-row
1009
- */
1010
- "row-start": [{
1011
- "row-start": scaleGridColRowStartOrEnd()
1012
- }],
1013
- /**
1014
- * Grid Row End
1015
- * @see https://tailwindcss.com/docs/grid-row
1016
- */
1017
- "row-end": [{
1018
- "row-end": scaleGridColRowStartOrEnd()
1019
- }],
1020
- /**
1021
- * Grid Auto Flow
1022
- * @see https://tailwindcss.com/docs/grid-auto-flow
1023
- */
1024
- "grid-flow": [{
1025
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
1026
- }],
1027
- /**
1028
- * Grid Auto Columns
1029
- * @see https://tailwindcss.com/docs/grid-auto-columns
1030
- */
1031
- "auto-cols": [{
1032
- "auto-cols": scaleGridAutoColsRows()
1033
- }],
1034
- /**
1035
- * Grid Auto Rows
1036
- * @see https://tailwindcss.com/docs/grid-auto-rows
1037
- */
1038
- "auto-rows": [{
1039
- "auto-rows": scaleGridAutoColsRows()
1040
- }],
1041
- /**
1042
- * Gap
1043
- * @see https://tailwindcss.com/docs/gap
1044
- */
1045
- gap: [{
1046
- gap: scaleUnambiguousSpacing()
1047
- }],
1048
- /**
1049
- * Gap X
1050
- * @see https://tailwindcss.com/docs/gap
1051
- */
1052
- "gap-x": [{
1053
- "gap-x": scaleUnambiguousSpacing()
1054
- }],
1055
- /**
1056
- * Gap Y
1057
- * @see https://tailwindcss.com/docs/gap
1058
- */
1059
- "gap-y": [{
1060
- "gap-y": scaleUnambiguousSpacing()
1061
- }],
1062
- /**
1063
- * Justify Content
1064
- * @see https://tailwindcss.com/docs/justify-content
1065
- */
1066
- "justify-content": [{
1067
- justify: [...scaleAlignPrimaryAxis(), "normal"]
1068
- }],
1069
- /**
1070
- * Justify Items
1071
- * @see https://tailwindcss.com/docs/justify-items
1072
- */
1073
- "justify-items": [{
1074
- "justify-items": [...scaleAlignSecondaryAxis(), "normal"]
1075
- }],
1076
- /**
1077
- * Justify Self
1078
- * @see https://tailwindcss.com/docs/justify-self
1079
- */
1080
- "justify-self": [{
1081
- "justify-self": ["auto", ...scaleAlignSecondaryAxis()]
1082
- }],
1083
- /**
1084
- * Align Content
1085
- * @see https://tailwindcss.com/docs/align-content
1086
- */
1087
- "align-content": [{
1088
- content: ["normal", ...scaleAlignPrimaryAxis()]
1089
- }],
1090
- /**
1091
- * Align Items
1092
- * @see https://tailwindcss.com/docs/align-items
1093
- */
1094
- "align-items": [{
1095
- items: [...scaleAlignSecondaryAxis(), {
1096
- baseline: ["", "last"]
1097
- }]
1098
- }],
1099
- /**
1100
- * Align Self
1101
- * @see https://tailwindcss.com/docs/align-self
1102
- */
1103
- "align-self": [{
1104
- self: ["auto", ...scaleAlignSecondaryAxis(), {
1105
- baseline: ["", "last"]
1106
- }]
1107
- }],
1108
- /**
1109
- * Place Content
1110
- * @see https://tailwindcss.com/docs/place-content
1111
- */
1112
- "place-content": [{
1113
- "place-content": scaleAlignPrimaryAxis()
1114
- }],
1115
- /**
1116
- * Place Items
1117
- * @see https://tailwindcss.com/docs/place-items
1118
- */
1119
- "place-items": [{
1120
- "place-items": [...scaleAlignSecondaryAxis(), "baseline"]
1121
- }],
1122
- /**
1123
- * Place Self
1124
- * @see https://tailwindcss.com/docs/place-self
1125
- */
1126
- "place-self": [{
1127
- "place-self": ["auto", ...scaleAlignSecondaryAxis()]
1128
- }],
1129
- // Spacing
1130
- /**
1131
- * Padding
1132
- * @see https://tailwindcss.com/docs/padding
1133
- */
1134
- p: [{
1135
- p: scaleUnambiguousSpacing()
1136
- }],
1137
- /**
1138
- * Padding Inline
1139
- * @see https://tailwindcss.com/docs/padding
1140
- */
1141
- px: [{
1142
- px: scaleUnambiguousSpacing()
1143
- }],
1144
- /**
1145
- * Padding Block
1146
- * @see https://tailwindcss.com/docs/padding
1147
- */
1148
- py: [{
1149
- py: scaleUnambiguousSpacing()
1150
- }],
1151
- /**
1152
- * Padding Inline Start
1153
- * @see https://tailwindcss.com/docs/padding
1154
- */
1155
- ps: [{
1156
- ps: scaleUnambiguousSpacing()
1157
- }],
1158
- /**
1159
- * Padding Inline End
1160
- * @see https://tailwindcss.com/docs/padding
1161
- */
1162
- pe: [{
1163
- pe: scaleUnambiguousSpacing()
1164
- }],
1165
- /**
1166
- * Padding Block Start
1167
- * @see https://tailwindcss.com/docs/padding
1168
- */
1169
- pbs: [{
1170
- pbs: scaleUnambiguousSpacing()
1171
- }],
1172
- /**
1173
- * Padding Block End
1174
- * @see https://tailwindcss.com/docs/padding
1175
- */
1176
- pbe: [{
1177
- pbe: scaleUnambiguousSpacing()
1178
- }],
1179
- /**
1180
- * Padding Top
1181
- * @see https://tailwindcss.com/docs/padding
1182
- */
1183
- pt: [{
1184
- pt: scaleUnambiguousSpacing()
1185
- }],
1186
- /**
1187
- * Padding Right
1188
- * @see https://tailwindcss.com/docs/padding
1189
- */
1190
- pr: [{
1191
- pr: scaleUnambiguousSpacing()
1192
- }],
1193
- /**
1194
- * Padding Bottom
1195
- * @see https://tailwindcss.com/docs/padding
1196
- */
1197
- pb: [{
1198
- pb: scaleUnambiguousSpacing()
1199
- }],
1200
- /**
1201
- * Padding Left
1202
- * @see https://tailwindcss.com/docs/padding
1203
- */
1204
- pl: [{
1205
- pl: scaleUnambiguousSpacing()
1206
- }],
1207
- /**
1208
- * Margin
1209
- * @see https://tailwindcss.com/docs/margin
1210
- */
1211
- m: [{
1212
- m: scaleMargin()
1213
- }],
1214
- /**
1215
- * Margin Inline
1216
- * @see https://tailwindcss.com/docs/margin
1217
- */
1218
- mx: [{
1219
- mx: scaleMargin()
1220
- }],
1221
- /**
1222
- * Margin Block
1223
- * @see https://tailwindcss.com/docs/margin
1224
- */
1225
- my: [{
1226
- my: scaleMargin()
1227
- }],
1228
- /**
1229
- * Margin Inline Start
1230
- * @see https://tailwindcss.com/docs/margin
1231
- */
1232
- ms: [{
1233
- ms: scaleMargin()
1234
- }],
1235
- /**
1236
- * Margin Inline End
1237
- * @see https://tailwindcss.com/docs/margin
1238
- */
1239
- me: [{
1240
- me: scaleMargin()
1241
- }],
1242
- /**
1243
- * Margin Block Start
1244
- * @see https://tailwindcss.com/docs/margin
1245
- */
1246
- mbs: [{
1247
- mbs: scaleMargin()
1248
- }],
1249
- /**
1250
- * Margin Block End
1251
- * @see https://tailwindcss.com/docs/margin
1252
- */
1253
- mbe: [{
1254
- mbe: scaleMargin()
1255
- }],
1256
- /**
1257
- * Margin Top
1258
- * @see https://tailwindcss.com/docs/margin
1259
- */
1260
- mt: [{
1261
- mt: scaleMargin()
1262
- }],
1263
- /**
1264
- * Margin Right
1265
- * @see https://tailwindcss.com/docs/margin
1266
- */
1267
- mr: [{
1268
- mr: scaleMargin()
1269
- }],
1270
- /**
1271
- * Margin Bottom
1272
- * @see https://tailwindcss.com/docs/margin
1273
- */
1274
- mb: [{
1275
- mb: scaleMargin()
1276
- }],
1277
- /**
1278
- * Margin Left
1279
- * @see https://tailwindcss.com/docs/margin
1280
- */
1281
- ml: [{
1282
- ml: scaleMargin()
1283
- }],
1284
- /**
1285
- * Space Between X
1286
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1287
- */
1288
- "space-x": [{
1289
- "space-x": scaleUnambiguousSpacing()
1290
- }],
1291
- /**
1292
- * Space Between X Reverse
1293
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1294
- */
1295
- "space-x-reverse": ["space-x-reverse"],
1296
- /**
1297
- * Space Between Y
1298
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1299
- */
1300
- "space-y": [{
1301
- "space-y": scaleUnambiguousSpacing()
1302
- }],
1303
- /**
1304
- * Space Between Y Reverse
1305
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1306
- */
1307
- "space-y-reverse": ["space-y-reverse"],
1308
- // --------------
1309
- // --- Sizing ---
1310
- // --------------
1311
- /**
1312
- * Size
1313
- * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
1314
- */
1315
- size: [{
1316
- size: scaleSizing()
1317
- }],
1318
- /**
1319
- * Inline Size
1320
- * @see https://tailwindcss.com/docs/width
1321
- */
1322
- "inline-size": [{
1323
- inline: ["auto", ...scaleSizingInline()]
1324
- }],
1325
- /**
1326
- * Min-Inline Size
1327
- * @see https://tailwindcss.com/docs/min-width
1328
- */
1329
- "min-inline-size": [{
1330
- "min-inline": ["auto", ...scaleSizingInline()]
1331
- }],
1332
- /**
1333
- * Max-Inline Size
1334
- * @see https://tailwindcss.com/docs/max-width
1335
- */
1336
- "max-inline-size": [{
1337
- "max-inline": ["none", ...scaleSizingInline()]
1338
- }],
1339
- /**
1340
- * Block Size
1341
- * @see https://tailwindcss.com/docs/height
1342
- */
1343
- "block-size": [{
1344
- block: ["auto", ...scaleSizingBlock()]
1345
- }],
1346
- /**
1347
- * Min-Block Size
1348
- * @see https://tailwindcss.com/docs/min-height
1349
- */
1350
- "min-block-size": [{
1351
- "min-block": ["auto", ...scaleSizingBlock()]
1352
- }],
1353
- /**
1354
- * Max-Block Size
1355
- * @see https://tailwindcss.com/docs/max-height
1356
- */
1357
- "max-block-size": [{
1358
- "max-block": ["none", ...scaleSizingBlock()]
1359
- }],
1360
- /**
1361
- * Width
1362
- * @see https://tailwindcss.com/docs/width
1363
- */
1364
- w: [{
1365
- w: [themeContainer, "screen", ...scaleSizing()]
1366
- }],
1367
- /**
1368
- * Min-Width
1369
- * @see https://tailwindcss.com/docs/min-width
1370
- */
1371
- "min-w": [{
1372
- "min-w": [
1373
- themeContainer,
1374
- "screen",
1375
- /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1376
- "none",
1377
- ...scaleSizing()
1378
- ]
1379
- }],
1380
- /**
1381
- * Max-Width
1382
- * @see https://tailwindcss.com/docs/max-width
1383
- */
1384
- "max-w": [{
1385
- "max-w": [
1386
- themeContainer,
1387
- "screen",
1388
- "none",
1389
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1390
- "prose",
1391
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1392
- {
1393
- screen: [themeBreakpoint]
1394
- },
1395
- ...scaleSizing()
1396
- ]
1397
- }],
1398
- /**
1399
- * Height
1400
- * @see https://tailwindcss.com/docs/height
1401
- */
1402
- h: [{
1403
- h: ["screen", "lh", ...scaleSizing()]
1404
- }],
1405
- /**
1406
- * Min-Height
1407
- * @see https://tailwindcss.com/docs/min-height
1408
- */
1409
- "min-h": [{
1410
- "min-h": ["screen", "lh", "none", ...scaleSizing()]
1411
- }],
1412
- /**
1413
- * Max-Height
1414
- * @see https://tailwindcss.com/docs/max-height
1415
- */
1416
- "max-h": [{
1417
- "max-h": ["screen", "lh", ...scaleSizing()]
1418
- }],
1419
- // ------------------
1420
- // --- Typography ---
1421
- // ------------------
1422
- /**
1423
- * Font Size
1424
- * @see https://tailwindcss.com/docs/font-size
1425
- */
1426
- "font-size": [{
1427
- text: ["base", themeText, isArbitraryVariableLength, isArbitraryLength]
1428
- }],
1429
- /**
1430
- * Font Smoothing
1431
- * @see https://tailwindcss.com/docs/font-smoothing
1432
- */
1433
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
1434
- /**
1435
- * Font Style
1436
- * @see https://tailwindcss.com/docs/font-style
1437
- */
1438
- "font-style": ["italic", "not-italic"],
1439
- /**
1440
- * Font Weight
1441
- * @see https://tailwindcss.com/docs/font-weight
1442
- */
1443
- "font-weight": [{
1444
- font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]
1445
- }],
1446
- /**
1447
- * Font Stretch
1448
- * @see https://tailwindcss.com/docs/font-stretch
1449
- */
1450
- "font-stretch": [{
1451
- "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", isPercent, isArbitraryValue]
1452
- }],
1453
- /**
1454
- * Font Family
1455
- * @see https://tailwindcss.com/docs/font-family
1456
- */
1457
- "font-family": [{
1458
- font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]
1459
- }],
1460
- /**
1461
- * Font Feature Settings
1462
- * @see https://tailwindcss.com/docs/font-feature-settings
1463
- */
1464
- "font-features": [{
1465
- "font-features": [isArbitraryValue]
1466
- }],
1467
- /**
1468
- * Font Variant Numeric
1469
- * @see https://tailwindcss.com/docs/font-variant-numeric
1470
- */
1471
- "fvn-normal": ["normal-nums"],
1472
- /**
1473
- * Font Variant Numeric
1474
- * @see https://tailwindcss.com/docs/font-variant-numeric
1475
- */
1476
- "fvn-ordinal": ["ordinal"],
1477
- /**
1478
- * Font Variant Numeric
1479
- * @see https://tailwindcss.com/docs/font-variant-numeric
1480
- */
1481
- "fvn-slashed-zero": ["slashed-zero"],
1482
- /**
1483
- * Font Variant Numeric
1484
- * @see https://tailwindcss.com/docs/font-variant-numeric
1485
- */
1486
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
1487
- /**
1488
- * Font Variant Numeric
1489
- * @see https://tailwindcss.com/docs/font-variant-numeric
1490
- */
1491
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
1492
- /**
1493
- * Font Variant Numeric
1494
- * @see https://tailwindcss.com/docs/font-variant-numeric
1495
- */
1496
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1497
- /**
1498
- * Letter Spacing
1499
- * @see https://tailwindcss.com/docs/letter-spacing
1500
- */
1501
- tracking: [{
1502
- tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]
1503
- }],
1504
- /**
1505
- * Line Clamp
1506
- * @see https://tailwindcss.com/docs/line-clamp
1507
- */
1508
- "line-clamp": [{
1509
- "line-clamp": [isNumber, "none", isArbitraryVariable, isArbitraryNumber]
1510
- }],
1511
- /**
1512
- * Line Height
1513
- * @see https://tailwindcss.com/docs/line-height
1514
- */
1515
- leading: [{
1516
- leading: [
1517
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1518
- themeLeading,
1519
- ...scaleUnambiguousSpacing()
1520
- ]
1521
- }],
1522
- /**
1523
- * List Style Image
1524
- * @see https://tailwindcss.com/docs/list-style-image
1525
- */
1526
- "list-image": [{
1527
- "list-image": ["none", isArbitraryVariable, isArbitraryValue]
1528
- }],
1529
- /**
1530
- * List Style Position
1531
- * @see https://tailwindcss.com/docs/list-style-position
1532
- */
1533
- "list-style-position": [{
1534
- list: ["inside", "outside"]
1535
- }],
1536
- /**
1537
- * List Style Type
1538
- * @see https://tailwindcss.com/docs/list-style-type
1539
- */
1540
- "list-style-type": [{
1541
- list: ["disc", "decimal", "none", isArbitraryVariable, isArbitraryValue]
1542
- }],
1543
- /**
1544
- * Text Alignment
1545
- * @see https://tailwindcss.com/docs/text-align
1546
- */
1547
- "text-alignment": [{
1548
- text: ["left", "center", "right", "justify", "start", "end"]
1549
- }],
1550
- /**
1551
- * Placeholder Color
1552
- * @deprecated since Tailwind CSS v3.0.0
1553
- * @see https://v3.tailwindcss.com/docs/placeholder-color
1554
- */
1555
- "placeholder-color": [{
1556
- placeholder: scaleColor()
1557
- }],
1558
- /**
1559
- * Text Color
1560
- * @see https://tailwindcss.com/docs/text-color
1561
- */
1562
- "text-color": [{
1563
- text: scaleColor()
1564
- }],
1565
- /**
1566
- * Text Decoration
1567
- * @see https://tailwindcss.com/docs/text-decoration
1568
- */
1569
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1570
- /**
1571
- * Text Decoration Style
1572
- * @see https://tailwindcss.com/docs/text-decoration-style
1573
- */
1574
- "text-decoration-style": [{
1575
- decoration: [...scaleLineStyle(), "wavy"]
1576
- }],
1577
- /**
1578
- * Text Decoration Thickness
1579
- * @see https://tailwindcss.com/docs/text-decoration-thickness
1580
- */
1581
- "text-decoration-thickness": [{
1582
- decoration: [isNumber, "from-font", "auto", isArbitraryVariable, isArbitraryLength]
1583
- }],
1584
- /**
1585
- * Text Decoration Color
1586
- * @see https://tailwindcss.com/docs/text-decoration-color
1587
- */
1588
- "text-decoration-color": [{
1589
- decoration: scaleColor()
1590
- }],
1591
- /**
1592
- * Text Underline Offset
1593
- * @see https://tailwindcss.com/docs/text-underline-offset
1594
- */
1595
- "underline-offset": [{
1596
- "underline-offset": [isNumber, "auto", isArbitraryVariable, isArbitraryValue]
1597
- }],
1598
- /**
1599
- * Text Transform
1600
- * @see https://tailwindcss.com/docs/text-transform
1601
- */
1602
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1603
- /**
1604
- * Text Overflow
1605
- * @see https://tailwindcss.com/docs/text-overflow
1606
- */
1607
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1608
- /**
1609
- * Text Wrap
1610
- * @see https://tailwindcss.com/docs/text-wrap
1611
- */
1612
- "text-wrap": [{
1613
- text: ["wrap", "nowrap", "balance", "pretty"]
1614
- }],
1615
- /**
1616
- * Text Indent
1617
- * @see https://tailwindcss.com/docs/text-indent
1618
- */
1619
- indent: [{
1620
- indent: scaleUnambiguousSpacing()
1621
- }],
1622
- /**
1623
- * Vertical Alignment
1624
- * @see https://tailwindcss.com/docs/vertical-align
1625
- */
1626
- "vertical-align": [{
1627
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryVariable, isArbitraryValue]
1628
- }],
1629
- /**
1630
- * Whitespace
1631
- * @see https://tailwindcss.com/docs/whitespace
1632
- */
1633
- whitespace: [{
1634
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1635
- }],
1636
- /**
1637
- * Word Break
1638
- * @see https://tailwindcss.com/docs/word-break
1639
- */
1640
- break: [{
1641
- break: ["normal", "words", "all", "keep"]
1642
- }],
1643
- /**
1644
- * Overflow Wrap
1645
- * @see https://tailwindcss.com/docs/overflow-wrap
1646
- */
1647
- wrap: [{
1648
- wrap: ["break-word", "anywhere", "normal"]
1649
- }],
1650
- /**
1651
- * Hyphens
1652
- * @see https://tailwindcss.com/docs/hyphens
1653
- */
1654
- hyphens: [{
1655
- hyphens: ["none", "manual", "auto"]
1656
- }],
1657
- /**
1658
- * Content
1659
- * @see https://tailwindcss.com/docs/content
1660
- */
1661
- content: [{
1662
- content: ["none", isArbitraryVariable, isArbitraryValue]
1663
- }],
1664
- // -------------------
1665
- // --- Backgrounds ---
1666
- // -------------------
1667
- /**
1668
- * Background Attachment
1669
- * @see https://tailwindcss.com/docs/background-attachment
1670
- */
1671
- "bg-attachment": [{
1672
- bg: ["fixed", "local", "scroll"]
1673
- }],
1674
- /**
1675
- * Background Clip
1676
- * @see https://tailwindcss.com/docs/background-clip
1677
- */
1678
- "bg-clip": [{
1679
- "bg-clip": ["border", "padding", "content", "text"]
1680
- }],
1681
- /**
1682
- * Background Origin
1683
- * @see https://tailwindcss.com/docs/background-origin
1684
- */
1685
- "bg-origin": [{
1686
- "bg-origin": ["border", "padding", "content"]
1687
- }],
1688
- /**
1689
- * Background Position
1690
- * @see https://tailwindcss.com/docs/background-position
1691
- */
1692
- "bg-position": [{
1693
- bg: scaleBgPosition()
1694
- }],
1695
- /**
1696
- * Background Repeat
1697
- * @see https://tailwindcss.com/docs/background-repeat
1698
- */
1699
- "bg-repeat": [{
1700
- bg: scaleBgRepeat()
1701
- }],
1702
- /**
1703
- * Background Size
1704
- * @see https://tailwindcss.com/docs/background-size
1705
- */
1706
- "bg-size": [{
1707
- bg: scaleBgSize()
1708
- }],
1709
- /**
1710
- * Background Image
1711
- * @see https://tailwindcss.com/docs/background-image
1712
- */
1713
- "bg-image": [{
1714
- bg: ["none", {
1715
- linear: [{
1716
- to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1717
- }, isInteger, isArbitraryVariable, isArbitraryValue],
1718
- radial: ["", isArbitraryVariable, isArbitraryValue],
1719
- conic: [isInteger, isArbitraryVariable, isArbitraryValue]
1720
- }, isArbitraryVariableImage, isArbitraryImage]
1721
- }],
1722
- /**
1723
- * Background Color
1724
- * @see https://tailwindcss.com/docs/background-color
1725
- */
1726
- "bg-color": [{
1727
- bg: scaleColor()
1728
- }],
1729
- /**
1730
- * Gradient Color Stops From Position
1731
- * @see https://tailwindcss.com/docs/gradient-color-stops
1732
- */
1733
- "gradient-from-pos": [{
1734
- from: scaleGradientStopPosition()
1735
- }],
1736
- /**
1737
- * Gradient Color Stops Via Position
1738
- * @see https://tailwindcss.com/docs/gradient-color-stops
1739
- */
1740
- "gradient-via-pos": [{
1741
- via: scaleGradientStopPosition()
1742
- }],
1743
- /**
1744
- * Gradient Color Stops To Position
1745
- * @see https://tailwindcss.com/docs/gradient-color-stops
1746
- */
1747
- "gradient-to-pos": [{
1748
- to: scaleGradientStopPosition()
1749
- }],
1750
- /**
1751
- * Gradient Color Stops From
1752
- * @see https://tailwindcss.com/docs/gradient-color-stops
1753
- */
1754
- "gradient-from": [{
1755
- from: scaleColor()
1756
- }],
1757
- /**
1758
- * Gradient Color Stops Via
1759
- * @see https://tailwindcss.com/docs/gradient-color-stops
1760
- */
1761
- "gradient-via": [{
1762
- via: scaleColor()
1763
- }],
1764
- /**
1765
- * Gradient Color Stops To
1766
- * @see https://tailwindcss.com/docs/gradient-color-stops
1767
- */
1768
- "gradient-to": [{
1769
- to: scaleColor()
1770
- }],
1771
- // ---------------
1772
- // --- Borders ---
1773
- // ---------------
1774
- /**
1775
- * Border Radius
1776
- * @see https://tailwindcss.com/docs/border-radius
1777
- */
1778
- rounded: [{
1779
- rounded: scaleRadius()
1780
- }],
1781
- /**
1782
- * Border Radius Start
1783
- * @see https://tailwindcss.com/docs/border-radius
1784
- */
1785
- "rounded-s": [{
1786
- "rounded-s": scaleRadius()
1787
- }],
1788
- /**
1789
- * Border Radius End
1790
- * @see https://tailwindcss.com/docs/border-radius
1791
- */
1792
- "rounded-e": [{
1793
- "rounded-e": scaleRadius()
1794
- }],
1795
- /**
1796
- * Border Radius Top
1797
- * @see https://tailwindcss.com/docs/border-radius
1798
- */
1799
- "rounded-t": [{
1800
- "rounded-t": scaleRadius()
1801
- }],
1802
- /**
1803
- * Border Radius Right
1804
- * @see https://tailwindcss.com/docs/border-radius
1805
- */
1806
- "rounded-r": [{
1807
- "rounded-r": scaleRadius()
1808
- }],
1809
- /**
1810
- * Border Radius Bottom
1811
- * @see https://tailwindcss.com/docs/border-radius
1812
- */
1813
- "rounded-b": [{
1814
- "rounded-b": scaleRadius()
1815
- }],
1816
- /**
1817
- * Border Radius Left
1818
- * @see https://tailwindcss.com/docs/border-radius
1819
- */
1820
- "rounded-l": [{
1821
- "rounded-l": scaleRadius()
1822
- }],
1823
- /**
1824
- * Border Radius Start Start
1825
- * @see https://tailwindcss.com/docs/border-radius
1826
- */
1827
- "rounded-ss": [{
1828
- "rounded-ss": scaleRadius()
1829
- }],
1830
- /**
1831
- * Border Radius Start End
1832
- * @see https://tailwindcss.com/docs/border-radius
1833
- */
1834
- "rounded-se": [{
1835
- "rounded-se": scaleRadius()
1836
- }],
1837
- /**
1838
- * Border Radius End End
1839
- * @see https://tailwindcss.com/docs/border-radius
1840
- */
1841
- "rounded-ee": [{
1842
- "rounded-ee": scaleRadius()
1843
- }],
1844
- /**
1845
- * Border Radius End Start
1846
- * @see https://tailwindcss.com/docs/border-radius
1847
- */
1848
- "rounded-es": [{
1849
- "rounded-es": scaleRadius()
1850
- }],
1851
- /**
1852
- * Border Radius Top Left
1853
- * @see https://tailwindcss.com/docs/border-radius
1854
- */
1855
- "rounded-tl": [{
1856
- "rounded-tl": scaleRadius()
1857
- }],
1858
- /**
1859
- * Border Radius Top Right
1860
- * @see https://tailwindcss.com/docs/border-radius
1861
- */
1862
- "rounded-tr": [{
1863
- "rounded-tr": scaleRadius()
1864
- }],
1865
- /**
1866
- * Border Radius Bottom Right
1867
- * @see https://tailwindcss.com/docs/border-radius
1868
- */
1869
- "rounded-br": [{
1870
- "rounded-br": scaleRadius()
1871
- }],
1872
- /**
1873
- * Border Radius Bottom Left
1874
- * @see https://tailwindcss.com/docs/border-radius
1875
- */
1876
- "rounded-bl": [{
1877
- "rounded-bl": scaleRadius()
1878
- }],
1879
- /**
1880
- * Border Width
1881
- * @see https://tailwindcss.com/docs/border-width
1882
- */
1883
- "border-w": [{
1884
- border: scaleBorderWidth()
1885
- }],
1886
- /**
1887
- * Border Width Inline
1888
- * @see https://tailwindcss.com/docs/border-width
1889
- */
1890
- "border-w-x": [{
1891
- "border-x": scaleBorderWidth()
1892
- }],
1893
- /**
1894
- * Border Width Block
1895
- * @see https://tailwindcss.com/docs/border-width
1896
- */
1897
- "border-w-y": [{
1898
- "border-y": scaleBorderWidth()
1899
- }],
1900
- /**
1901
- * Border Width Inline Start
1902
- * @see https://tailwindcss.com/docs/border-width
1903
- */
1904
- "border-w-s": [{
1905
- "border-s": scaleBorderWidth()
1906
- }],
1907
- /**
1908
- * Border Width Inline End
1909
- * @see https://tailwindcss.com/docs/border-width
1910
- */
1911
- "border-w-e": [{
1912
- "border-e": scaleBorderWidth()
1913
- }],
1914
- /**
1915
- * Border Width Block Start
1916
- * @see https://tailwindcss.com/docs/border-width
1917
- */
1918
- "border-w-bs": [{
1919
- "border-bs": scaleBorderWidth()
1920
- }],
1921
- /**
1922
- * Border Width Block End
1923
- * @see https://tailwindcss.com/docs/border-width
1924
- */
1925
- "border-w-be": [{
1926
- "border-be": scaleBorderWidth()
1927
- }],
1928
- /**
1929
- * Border Width Top
1930
- * @see https://tailwindcss.com/docs/border-width
1931
- */
1932
- "border-w-t": [{
1933
- "border-t": scaleBorderWidth()
1934
- }],
1935
- /**
1936
- * Border Width Right
1937
- * @see https://tailwindcss.com/docs/border-width
1938
- */
1939
- "border-w-r": [{
1940
- "border-r": scaleBorderWidth()
1941
- }],
1942
- /**
1943
- * Border Width Bottom
1944
- * @see https://tailwindcss.com/docs/border-width
1945
- */
1946
- "border-w-b": [{
1947
- "border-b": scaleBorderWidth()
1948
- }],
1949
- /**
1950
- * Border Width Left
1951
- * @see https://tailwindcss.com/docs/border-width
1952
- */
1953
- "border-w-l": [{
1954
- "border-l": scaleBorderWidth()
1955
- }],
1956
- /**
1957
- * Divide Width X
1958
- * @see https://tailwindcss.com/docs/border-width#between-children
1959
- */
1960
- "divide-x": [{
1961
- "divide-x": scaleBorderWidth()
1962
- }],
1963
- /**
1964
- * Divide Width X Reverse
1965
- * @see https://tailwindcss.com/docs/border-width#between-children
1966
- */
1967
- "divide-x-reverse": ["divide-x-reverse"],
1968
- /**
1969
- * Divide Width Y
1970
- * @see https://tailwindcss.com/docs/border-width#between-children
1971
- */
1972
- "divide-y": [{
1973
- "divide-y": scaleBorderWidth()
1974
- }],
1975
- /**
1976
- * Divide Width Y Reverse
1977
- * @see https://tailwindcss.com/docs/border-width#between-children
1978
- */
1979
- "divide-y-reverse": ["divide-y-reverse"],
1980
- /**
1981
- * Border Style
1982
- * @see https://tailwindcss.com/docs/border-style
1983
- */
1984
- "border-style": [{
1985
- border: [...scaleLineStyle(), "hidden", "none"]
1986
- }],
1987
- /**
1988
- * Divide Style
1989
- * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
1990
- */
1991
- "divide-style": [{
1992
- divide: [...scaleLineStyle(), "hidden", "none"]
1993
- }],
1994
- /**
1995
- * Border Color
1996
- * @see https://tailwindcss.com/docs/border-color
1997
- */
1998
- "border-color": [{
1999
- border: scaleColor()
2000
- }],
2001
- /**
2002
- * Border Color Inline
2003
- * @see https://tailwindcss.com/docs/border-color
2004
- */
2005
- "border-color-x": [{
2006
- "border-x": scaleColor()
2007
- }],
2008
- /**
2009
- * Border Color Block
2010
- * @see https://tailwindcss.com/docs/border-color
2011
- */
2012
- "border-color-y": [{
2013
- "border-y": scaleColor()
2014
- }],
2015
- /**
2016
- * Border Color Inline Start
2017
- * @see https://tailwindcss.com/docs/border-color
2018
- */
2019
- "border-color-s": [{
2020
- "border-s": scaleColor()
2021
- }],
2022
- /**
2023
- * Border Color Inline End
2024
- * @see https://tailwindcss.com/docs/border-color
2025
- */
2026
- "border-color-e": [{
2027
- "border-e": scaleColor()
2028
- }],
2029
- /**
2030
- * Border Color Block Start
2031
- * @see https://tailwindcss.com/docs/border-color
2032
- */
2033
- "border-color-bs": [{
2034
- "border-bs": scaleColor()
2035
- }],
2036
- /**
2037
- * Border Color Block End
2038
- * @see https://tailwindcss.com/docs/border-color
2039
- */
2040
- "border-color-be": [{
2041
- "border-be": scaleColor()
2042
- }],
2043
- /**
2044
- * Border Color Top
2045
- * @see https://tailwindcss.com/docs/border-color
2046
- */
2047
- "border-color-t": [{
2048
- "border-t": scaleColor()
2049
- }],
2050
- /**
2051
- * Border Color Right
2052
- * @see https://tailwindcss.com/docs/border-color
2053
- */
2054
- "border-color-r": [{
2055
- "border-r": scaleColor()
2056
- }],
2057
- /**
2058
- * Border Color Bottom
2059
- * @see https://tailwindcss.com/docs/border-color
2060
- */
2061
- "border-color-b": [{
2062
- "border-b": scaleColor()
2063
- }],
2064
- /**
2065
- * Border Color Left
2066
- * @see https://tailwindcss.com/docs/border-color
2067
- */
2068
- "border-color-l": [{
2069
- "border-l": scaleColor()
2070
- }],
2071
- /**
2072
- * Divide Color
2073
- * @see https://tailwindcss.com/docs/divide-color
2074
- */
2075
- "divide-color": [{
2076
- divide: scaleColor()
2077
- }],
2078
- /**
2079
- * Outline Style
2080
- * @see https://tailwindcss.com/docs/outline-style
2081
- */
2082
- "outline-style": [{
2083
- outline: [...scaleLineStyle(), "none", "hidden"]
2084
- }],
2085
- /**
2086
- * Outline Offset
2087
- * @see https://tailwindcss.com/docs/outline-offset
2088
- */
2089
- "outline-offset": [{
2090
- "outline-offset": [isNumber, isArbitraryVariable, isArbitraryValue]
2091
- }],
2092
- /**
2093
- * Outline Width
2094
- * @see https://tailwindcss.com/docs/outline-width
2095
- */
2096
- "outline-w": [{
2097
- outline: ["", isNumber, isArbitraryVariableLength, isArbitraryLength]
2098
- }],
2099
- /**
2100
- * Outline Color
2101
- * @see https://tailwindcss.com/docs/outline-color
2102
- */
2103
- "outline-color": [{
2104
- outline: scaleColor()
2105
- }],
2106
- // ---------------
2107
- // --- Effects ---
2108
- // ---------------
2109
- /**
2110
- * Box Shadow
2111
- * @see https://tailwindcss.com/docs/box-shadow
2112
- */
2113
- shadow: [{
2114
- shadow: [
2115
- // Deprecated since Tailwind CSS v4.0.0
2116
- "",
2117
- "none",
2118
- themeShadow,
2119
- isArbitraryVariableShadow,
2120
- isArbitraryShadow
2121
- ]
2122
- }],
2123
- /**
2124
- * Box Shadow Color
2125
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
2126
- */
2127
- "shadow-color": [{
2128
- shadow: scaleColor()
2129
- }],
2130
- /**
2131
- * Inset Box Shadow
2132
- * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
2133
- */
2134
- "inset-shadow": [{
2135
- "inset-shadow": ["none", themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]
2136
- }],
2137
- /**
2138
- * Inset Box Shadow Color
2139
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
2140
- */
2141
- "inset-shadow-color": [{
2142
- "inset-shadow": scaleColor()
2143
- }],
2144
- /**
2145
- * Ring Width
2146
- * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
2147
- */
2148
- "ring-w": [{
2149
- ring: scaleBorderWidth()
2150
- }],
2151
- /**
2152
- * Ring Width Inset
2153
- * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
2154
- * @deprecated since Tailwind CSS v4.0.0
2155
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2156
- */
2157
- "ring-w-inset": ["ring-inset"],
2158
- /**
2159
- * Ring Color
2160
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
2161
- */
2162
- "ring-color": [{
2163
- ring: scaleColor()
2164
- }],
2165
- /**
2166
- * Ring Offset Width
2167
- * @see https://v3.tailwindcss.com/docs/ring-offset-width
2168
- * @deprecated since Tailwind CSS v4.0.0
2169
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2170
- */
2171
- "ring-offset-w": [{
2172
- "ring-offset": [isNumber, isArbitraryLength]
2173
- }],
2174
- /**
2175
- * Ring Offset Color
2176
- * @see https://v3.tailwindcss.com/docs/ring-offset-color
2177
- * @deprecated since Tailwind CSS v4.0.0
2178
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
2179
- */
2180
- "ring-offset-color": [{
2181
- "ring-offset": scaleColor()
2182
- }],
2183
- /**
2184
- * Inset Ring Width
2185
- * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
2186
- */
2187
- "inset-ring-w": [{
2188
- "inset-ring": scaleBorderWidth()
2189
- }],
2190
- /**
2191
- * Inset Ring Color
2192
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
2193
- */
2194
- "inset-ring-color": [{
2195
- "inset-ring": scaleColor()
2196
- }],
2197
- /**
2198
- * Text Shadow
2199
- * @see https://tailwindcss.com/docs/text-shadow
2200
- */
2201
- "text-shadow": [{
2202
- "text-shadow": ["none", themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]
2203
- }],
2204
- /**
2205
- * Text Shadow Color
2206
- * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color
2207
- */
2208
- "text-shadow-color": [{
2209
- "text-shadow": scaleColor()
2210
- }],
2211
- /**
2212
- * Opacity
2213
- * @see https://tailwindcss.com/docs/opacity
2214
- */
2215
- opacity: [{
2216
- opacity: [isNumber, isArbitraryVariable, isArbitraryValue]
2217
- }],
2218
- /**
2219
- * Mix Blend Mode
2220
- * @see https://tailwindcss.com/docs/mix-blend-mode
2221
- */
2222
- "mix-blend": [{
2223
- "mix-blend": [...scaleBlendMode(), "plus-darker", "plus-lighter"]
2224
- }],
2225
- /**
2226
- * Background Blend Mode
2227
- * @see https://tailwindcss.com/docs/background-blend-mode
2228
- */
2229
- "bg-blend": [{
2230
- "bg-blend": scaleBlendMode()
2231
- }],
2232
- /**
2233
- * Mask Clip
2234
- * @see https://tailwindcss.com/docs/mask-clip
2235
- */
2236
- "mask-clip": [{
2237
- "mask-clip": ["border", "padding", "content", "fill", "stroke", "view"]
2238
- }, "mask-no-clip"],
2239
- /**
2240
- * Mask Composite
2241
- * @see https://tailwindcss.com/docs/mask-composite
2242
- */
2243
- "mask-composite": [{
2244
- mask: ["add", "subtract", "intersect", "exclude"]
2245
- }],
2246
- /**
2247
- * Mask Image
2248
- * @see https://tailwindcss.com/docs/mask-image
2249
- */
2250
- "mask-image-linear-pos": [{
2251
- "mask-linear": [isNumber]
2252
- }],
2253
- "mask-image-linear-from-pos": [{
2254
- "mask-linear-from": scaleMaskImagePosition()
2255
- }],
2256
- "mask-image-linear-to-pos": [{
2257
- "mask-linear-to": scaleMaskImagePosition()
2258
- }],
2259
- "mask-image-linear-from-color": [{
2260
- "mask-linear-from": scaleColor()
2261
- }],
2262
- "mask-image-linear-to-color": [{
2263
- "mask-linear-to": scaleColor()
2264
- }],
2265
- "mask-image-t-from-pos": [{
2266
- "mask-t-from": scaleMaskImagePosition()
2267
- }],
2268
- "mask-image-t-to-pos": [{
2269
- "mask-t-to": scaleMaskImagePosition()
2270
- }],
2271
- "mask-image-t-from-color": [{
2272
- "mask-t-from": scaleColor()
2273
- }],
2274
- "mask-image-t-to-color": [{
2275
- "mask-t-to": scaleColor()
2276
- }],
2277
- "mask-image-r-from-pos": [{
2278
- "mask-r-from": scaleMaskImagePosition()
2279
- }],
2280
- "mask-image-r-to-pos": [{
2281
- "mask-r-to": scaleMaskImagePosition()
2282
- }],
2283
- "mask-image-r-from-color": [{
2284
- "mask-r-from": scaleColor()
2285
- }],
2286
- "mask-image-r-to-color": [{
2287
- "mask-r-to": scaleColor()
2288
- }],
2289
- "mask-image-b-from-pos": [{
2290
- "mask-b-from": scaleMaskImagePosition()
2291
- }],
2292
- "mask-image-b-to-pos": [{
2293
- "mask-b-to": scaleMaskImagePosition()
2294
- }],
2295
- "mask-image-b-from-color": [{
2296
- "mask-b-from": scaleColor()
2297
- }],
2298
- "mask-image-b-to-color": [{
2299
- "mask-b-to": scaleColor()
2300
- }],
2301
- "mask-image-l-from-pos": [{
2302
- "mask-l-from": scaleMaskImagePosition()
2303
- }],
2304
- "mask-image-l-to-pos": [{
2305
- "mask-l-to": scaleMaskImagePosition()
2306
- }],
2307
- "mask-image-l-from-color": [{
2308
- "mask-l-from": scaleColor()
2309
- }],
2310
- "mask-image-l-to-color": [{
2311
- "mask-l-to": scaleColor()
2312
- }],
2313
- "mask-image-x-from-pos": [{
2314
- "mask-x-from": scaleMaskImagePosition()
2315
- }],
2316
- "mask-image-x-to-pos": [{
2317
- "mask-x-to": scaleMaskImagePosition()
2318
- }],
2319
- "mask-image-x-from-color": [{
2320
- "mask-x-from": scaleColor()
2321
- }],
2322
- "mask-image-x-to-color": [{
2323
- "mask-x-to": scaleColor()
2324
- }],
2325
- "mask-image-y-from-pos": [{
2326
- "mask-y-from": scaleMaskImagePosition()
2327
- }],
2328
- "mask-image-y-to-pos": [{
2329
- "mask-y-to": scaleMaskImagePosition()
2330
- }],
2331
- "mask-image-y-from-color": [{
2332
- "mask-y-from": scaleColor()
2333
- }],
2334
- "mask-image-y-to-color": [{
2335
- "mask-y-to": scaleColor()
2336
- }],
2337
- "mask-image-radial": [{
2338
- "mask-radial": [isArbitraryVariable, isArbitraryValue]
2339
- }],
2340
- "mask-image-radial-from-pos": [{
2341
- "mask-radial-from": scaleMaskImagePosition()
2342
- }],
2343
- "mask-image-radial-to-pos": [{
2344
- "mask-radial-to": scaleMaskImagePosition()
2345
- }],
2346
- "mask-image-radial-from-color": [{
2347
- "mask-radial-from": scaleColor()
2348
- }],
2349
- "mask-image-radial-to-color": [{
2350
- "mask-radial-to": scaleColor()
2351
- }],
2352
- "mask-image-radial-shape": [{
2353
- "mask-radial": ["circle", "ellipse"]
2354
- }],
2355
- "mask-image-radial-size": [{
2356
- "mask-radial": [{
2357
- closest: ["side", "corner"],
2358
- farthest: ["side", "corner"]
2359
- }]
2360
- }],
2361
- "mask-image-radial-pos": [{
2362
- "mask-radial-at": scalePosition()
2363
- }],
2364
- "mask-image-conic-pos": [{
2365
- "mask-conic": [isNumber]
2366
- }],
2367
- "mask-image-conic-from-pos": [{
2368
- "mask-conic-from": scaleMaskImagePosition()
2369
- }],
2370
- "mask-image-conic-to-pos": [{
2371
- "mask-conic-to": scaleMaskImagePosition()
2372
- }],
2373
- "mask-image-conic-from-color": [{
2374
- "mask-conic-from": scaleColor()
2375
- }],
2376
- "mask-image-conic-to-color": [{
2377
- "mask-conic-to": scaleColor()
2378
- }],
2379
- /**
2380
- * Mask Mode
2381
- * @see https://tailwindcss.com/docs/mask-mode
2382
- */
2383
- "mask-mode": [{
2384
- mask: ["alpha", "luminance", "match"]
2385
- }],
2386
- /**
2387
- * Mask Origin
2388
- * @see https://tailwindcss.com/docs/mask-origin
2389
- */
2390
- "mask-origin": [{
2391
- "mask-origin": ["border", "padding", "content", "fill", "stroke", "view"]
2392
- }],
2393
- /**
2394
- * Mask Position
2395
- * @see https://tailwindcss.com/docs/mask-position
2396
- */
2397
- "mask-position": [{
2398
- mask: scaleBgPosition()
2399
- }],
2400
- /**
2401
- * Mask Repeat
2402
- * @see https://tailwindcss.com/docs/mask-repeat
2403
- */
2404
- "mask-repeat": [{
2405
- mask: scaleBgRepeat()
2406
- }],
2407
- /**
2408
- * Mask Size
2409
- * @see https://tailwindcss.com/docs/mask-size
2410
- */
2411
- "mask-size": [{
2412
- mask: scaleBgSize()
2413
- }],
2414
- /**
2415
- * Mask Type
2416
- * @see https://tailwindcss.com/docs/mask-type
2417
- */
2418
- "mask-type": [{
2419
- "mask-type": ["alpha", "luminance"]
2420
- }],
2421
- /**
2422
- * Mask Image
2423
- * @see https://tailwindcss.com/docs/mask-image
2424
- */
2425
- "mask-image": [{
2426
- mask: ["none", isArbitraryVariable, isArbitraryValue]
2427
- }],
2428
- // ---------------
2429
- // --- Filters ---
2430
- // ---------------
2431
- /**
2432
- * Filter
2433
- * @see https://tailwindcss.com/docs/filter
2434
- */
2435
- filter: [{
2436
- filter: [
2437
- // Deprecated since Tailwind CSS v3.0.0
2438
- "",
2439
- "none",
2440
- isArbitraryVariable,
2441
- isArbitraryValue
2442
- ]
2443
- }],
2444
- /**
2445
- * Blur
2446
- * @see https://tailwindcss.com/docs/blur
2447
- */
2448
- blur: [{
2449
- blur: scaleBlur()
2450
- }],
2451
- /**
2452
- * Brightness
2453
- * @see https://tailwindcss.com/docs/brightness
2454
- */
2455
- brightness: [{
2456
- brightness: [isNumber, isArbitraryVariable, isArbitraryValue]
2457
- }],
2458
- /**
2459
- * Contrast
2460
- * @see https://tailwindcss.com/docs/contrast
2461
- */
2462
- contrast: [{
2463
- contrast: [isNumber, isArbitraryVariable, isArbitraryValue]
2464
- }],
2465
- /**
2466
- * Drop Shadow
2467
- * @see https://tailwindcss.com/docs/drop-shadow
2468
- */
2469
- "drop-shadow": [{
2470
- "drop-shadow": [
2471
- // Deprecated since Tailwind CSS v4.0.0
2472
- "",
2473
- "none",
2474
- themeDropShadow,
2475
- isArbitraryVariableShadow,
2476
- isArbitraryShadow
2477
- ]
2478
- }],
2479
- /**
2480
- * Drop Shadow Color
2481
- * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color
2482
- */
2483
- "drop-shadow-color": [{
2484
- "drop-shadow": scaleColor()
2485
- }],
2486
- /**
2487
- * Grayscale
2488
- * @see https://tailwindcss.com/docs/grayscale
2489
- */
2490
- grayscale: [{
2491
- grayscale: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2492
- }],
2493
- /**
2494
- * Hue Rotate
2495
- * @see https://tailwindcss.com/docs/hue-rotate
2496
- */
2497
- "hue-rotate": [{
2498
- "hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
2499
- }],
2500
- /**
2501
- * Invert
2502
- * @see https://tailwindcss.com/docs/invert
2503
- */
2504
- invert: [{
2505
- invert: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2506
- }],
2507
- /**
2508
- * Saturate
2509
- * @see https://tailwindcss.com/docs/saturate
2510
- */
2511
- saturate: [{
2512
- saturate: [isNumber, isArbitraryVariable, isArbitraryValue]
2513
- }],
2514
- /**
2515
- * Sepia
2516
- * @see https://tailwindcss.com/docs/sepia
2517
- */
2518
- sepia: [{
2519
- sepia: ["", isNumber, isArbitraryVariable, isArbitraryValue]
2520
- }],
2521
- /**
2522
- * Backdrop Filter
2523
- * @see https://tailwindcss.com/docs/backdrop-filter
2524
- */
2525
- "backdrop-filter": [{
2526
- "backdrop-filter": [
2527
- // Deprecated since Tailwind CSS v3.0.0
2528
- "",
2529
- "none",
2530
- isArbitraryVariable,
2531
- isArbitraryValue
2532
- ]
2533
- }],
2534
- /**
2535
- * Backdrop Blur
2536
- * @see https://tailwindcss.com/docs/backdrop-blur
2537
- */
2538
- "backdrop-blur": [{
2539
- "backdrop-blur": scaleBlur()
2540
- }],
2541
- /**
2542
- * Backdrop Brightness
2543
- * @see https://tailwindcss.com/docs/backdrop-brightness
2544
- */
2545
- "backdrop-brightness": [{
2546
- "backdrop-brightness": [isNumber, isArbitraryVariable, isArbitraryValue]
2547
- }],
2548
- /**
2549
- * Backdrop Contrast
2550
- * @see https://tailwindcss.com/docs/backdrop-contrast
2551
- */
2552
- "backdrop-contrast": [{
2553
- "backdrop-contrast": [isNumber, isArbitraryVariable, isArbitraryValue]
2554
- }],
2555
- /**
2556
- * Backdrop Grayscale
2557
- * @see https://tailwindcss.com/docs/backdrop-grayscale
2558
- */
2559
- "backdrop-grayscale": [{
2560
- "backdrop-grayscale": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2561
- }],
2562
- /**
2563
- * Backdrop Hue Rotate
2564
- * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2565
- */
2566
- "backdrop-hue-rotate": [{
2567
- "backdrop-hue-rotate": [isNumber, isArbitraryVariable, isArbitraryValue]
2568
- }],
2569
- /**
2570
- * Backdrop Invert
2571
- * @see https://tailwindcss.com/docs/backdrop-invert
2572
- */
2573
- "backdrop-invert": [{
2574
- "backdrop-invert": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2575
- }],
2576
- /**
2577
- * Backdrop Opacity
2578
- * @see https://tailwindcss.com/docs/backdrop-opacity
2579
- */
2580
- "backdrop-opacity": [{
2581
- "backdrop-opacity": [isNumber, isArbitraryVariable, isArbitraryValue]
2582
- }],
2583
- /**
2584
- * Backdrop Saturate
2585
- * @see https://tailwindcss.com/docs/backdrop-saturate
2586
- */
2587
- "backdrop-saturate": [{
2588
- "backdrop-saturate": [isNumber, isArbitraryVariable, isArbitraryValue]
2589
- }],
2590
- /**
2591
- * Backdrop Sepia
2592
- * @see https://tailwindcss.com/docs/backdrop-sepia
2593
- */
2594
- "backdrop-sepia": [{
2595
- "backdrop-sepia": ["", isNumber, isArbitraryVariable, isArbitraryValue]
2596
- }],
2597
- // --------------
2598
- // --- Tables ---
2599
- // --------------
2600
- /**
2601
- * Border Collapse
2602
- * @see https://tailwindcss.com/docs/border-collapse
2603
- */
2604
- "border-collapse": [{
2605
- border: ["collapse", "separate"]
2606
- }],
2607
- /**
2608
- * Border Spacing
2609
- * @see https://tailwindcss.com/docs/border-spacing
2610
- */
2611
- "border-spacing": [{
2612
- "border-spacing": scaleUnambiguousSpacing()
2613
- }],
2614
- /**
2615
- * Border Spacing X
2616
- * @see https://tailwindcss.com/docs/border-spacing
2617
- */
2618
- "border-spacing-x": [{
2619
- "border-spacing-x": scaleUnambiguousSpacing()
2620
- }],
2621
- /**
2622
- * Border Spacing Y
2623
- * @see https://tailwindcss.com/docs/border-spacing
2624
- */
2625
- "border-spacing-y": [{
2626
- "border-spacing-y": scaleUnambiguousSpacing()
2627
- }],
2628
- /**
2629
- * Table Layout
2630
- * @see https://tailwindcss.com/docs/table-layout
2631
- */
2632
- "table-layout": [{
2633
- table: ["auto", "fixed"]
2634
- }],
2635
- /**
2636
- * Caption Side
2637
- * @see https://tailwindcss.com/docs/caption-side
2638
- */
2639
- caption: [{
2640
- caption: ["top", "bottom"]
2641
- }],
2642
- // ---------------------------------
2643
- // --- Transitions and Animation ---
2644
- // ---------------------------------
2645
- /**
2646
- * Transition Property
2647
- * @see https://tailwindcss.com/docs/transition-property
2648
- */
2649
- transition: [{
2650
- transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", isArbitraryVariable, isArbitraryValue]
2651
- }],
2652
- /**
2653
- * Transition Behavior
2654
- * @see https://tailwindcss.com/docs/transition-behavior
2655
- */
2656
- "transition-behavior": [{
2657
- transition: ["normal", "discrete"]
2658
- }],
2659
- /**
2660
- * Transition Duration
2661
- * @see https://tailwindcss.com/docs/transition-duration
2662
- */
2663
- duration: [{
2664
- duration: [isNumber, "initial", isArbitraryVariable, isArbitraryValue]
2665
- }],
2666
- /**
2667
- * Transition Timing Function
2668
- * @see https://tailwindcss.com/docs/transition-timing-function
2669
- */
2670
- ease: [{
2671
- ease: ["linear", "initial", themeEase, isArbitraryVariable, isArbitraryValue]
2672
- }],
2673
- /**
2674
- * Transition Delay
2675
- * @see https://tailwindcss.com/docs/transition-delay
2676
- */
2677
- delay: [{
2678
- delay: [isNumber, isArbitraryVariable, isArbitraryValue]
2679
- }],
2680
- /**
2681
- * Animation
2682
- * @see https://tailwindcss.com/docs/animation
2683
- */
2684
- animate: [{
2685
- animate: ["none", themeAnimate, isArbitraryVariable, isArbitraryValue]
2686
- }],
2687
- // ------------------
2688
- // --- Transforms ---
2689
- // ------------------
2690
- /**
2691
- * Backface Visibility
2692
- * @see https://tailwindcss.com/docs/backface-visibility
2693
- */
2694
- backface: [{
2695
- backface: ["hidden", "visible"]
2696
- }],
2697
- /**
2698
- * Perspective
2699
- * @see https://tailwindcss.com/docs/perspective
2700
- */
2701
- perspective: [{
2702
- perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]
2703
- }],
2704
- /**
2705
- * Perspective Origin
2706
- * @see https://tailwindcss.com/docs/perspective-origin
2707
- */
2708
- "perspective-origin": [{
2709
- "perspective-origin": scalePositionWithArbitrary()
2710
- }],
2711
- /**
2712
- * Rotate
2713
- * @see https://tailwindcss.com/docs/rotate
2714
- */
2715
- rotate: [{
2716
- rotate: scaleRotate()
2717
- }],
2718
- /**
2719
- * Rotate X
2720
- * @see https://tailwindcss.com/docs/rotate
2721
- */
2722
- "rotate-x": [{
2723
- "rotate-x": scaleRotate()
2724
- }],
2725
- /**
2726
- * Rotate Y
2727
- * @see https://tailwindcss.com/docs/rotate
2728
- */
2729
- "rotate-y": [{
2730
- "rotate-y": scaleRotate()
2731
- }],
2732
- /**
2733
- * Rotate Z
2734
- * @see https://tailwindcss.com/docs/rotate
2735
- */
2736
- "rotate-z": [{
2737
- "rotate-z": scaleRotate()
2738
- }],
2739
- /**
2740
- * Scale
2741
- * @see https://tailwindcss.com/docs/scale
2742
- */
2743
- scale: [{
2744
- scale: scaleScale()
2745
- }],
2746
- /**
2747
- * Scale X
2748
- * @see https://tailwindcss.com/docs/scale
2749
- */
2750
- "scale-x": [{
2751
- "scale-x": scaleScale()
2752
- }],
2753
- /**
2754
- * Scale Y
2755
- * @see https://tailwindcss.com/docs/scale
2756
- */
2757
- "scale-y": [{
2758
- "scale-y": scaleScale()
2759
- }],
2760
- /**
2761
- * Scale Z
2762
- * @see https://tailwindcss.com/docs/scale
2763
- */
2764
- "scale-z": [{
2765
- "scale-z": scaleScale()
2766
- }],
2767
- /**
2768
- * Scale 3D
2769
- * @see https://tailwindcss.com/docs/scale
2770
- */
2771
- "scale-3d": ["scale-3d"],
2772
- /**
2773
- * Skew
2774
- * @see https://tailwindcss.com/docs/skew
2775
- */
2776
- skew: [{
2777
- skew: scaleSkew()
2778
- }],
2779
- /**
2780
- * Skew X
2781
- * @see https://tailwindcss.com/docs/skew
2782
- */
2783
- "skew-x": [{
2784
- "skew-x": scaleSkew()
2785
- }],
2786
- /**
2787
- * Skew Y
2788
- * @see https://tailwindcss.com/docs/skew
2789
- */
2790
- "skew-y": [{
2791
- "skew-y": scaleSkew()
2792
- }],
2793
- /**
2794
- * Transform
2795
- * @see https://tailwindcss.com/docs/transform
2796
- */
2797
- transform: [{
2798
- transform: [isArbitraryVariable, isArbitraryValue, "", "none", "gpu", "cpu"]
2799
- }],
2800
- /**
2801
- * Transform Origin
2802
- * @see https://tailwindcss.com/docs/transform-origin
2803
- */
2804
- "transform-origin": [{
2805
- origin: scalePositionWithArbitrary()
2806
- }],
2807
- /**
2808
- * Transform Style
2809
- * @see https://tailwindcss.com/docs/transform-style
2810
- */
2811
- "transform-style": [{
2812
- transform: ["3d", "flat"]
2813
- }],
2814
- /**
2815
- * Translate
2816
- * @see https://tailwindcss.com/docs/translate
2817
- */
2818
- translate: [{
2819
- translate: scaleTranslate()
2820
- }],
2821
- /**
2822
- * Translate X
2823
- * @see https://tailwindcss.com/docs/translate
2824
- */
2825
- "translate-x": [{
2826
- "translate-x": scaleTranslate()
2827
- }],
2828
- /**
2829
- * Translate Y
2830
- * @see https://tailwindcss.com/docs/translate
2831
- */
2832
- "translate-y": [{
2833
- "translate-y": scaleTranslate()
2834
- }],
2835
- /**
2836
- * Translate Z
2837
- * @see https://tailwindcss.com/docs/translate
2838
- */
2839
- "translate-z": [{
2840
- "translate-z": scaleTranslate()
2841
- }],
2842
- /**
2843
- * Translate None
2844
- * @see https://tailwindcss.com/docs/translate
2845
- */
2846
- "translate-none": ["translate-none"],
2847
- // ---------------------
2848
- // --- Interactivity ---
2849
- // ---------------------
2850
- /**
2851
- * Accent Color
2852
- * @see https://tailwindcss.com/docs/accent-color
2853
- */
2854
- accent: [{
2855
- accent: scaleColor()
2856
- }],
2857
- /**
2858
- * Appearance
2859
- * @see https://tailwindcss.com/docs/appearance
2860
- */
2861
- appearance: [{
2862
- appearance: ["none", "auto"]
2863
- }],
2864
- /**
2865
- * Caret Color
2866
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2867
- */
2868
- "caret-color": [{
2869
- caret: scaleColor()
2870
- }],
2871
- /**
2872
- * Color Scheme
2873
- * @see https://tailwindcss.com/docs/color-scheme
2874
- */
2875
- "color-scheme": [{
2876
- scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
2877
- }],
2878
- /**
2879
- * Cursor
2880
- * @see https://tailwindcss.com/docs/cursor
2881
- */
2882
- cursor: [{
2883
- 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]
2884
- }],
2885
- /**
2886
- * Field Sizing
2887
- * @see https://tailwindcss.com/docs/field-sizing
2888
- */
2889
- "field-sizing": [{
2890
- "field-sizing": ["fixed", "content"]
2891
- }],
2892
- /**
2893
- * Pointer Events
2894
- * @see https://tailwindcss.com/docs/pointer-events
2895
- */
2896
- "pointer-events": [{
2897
- "pointer-events": ["auto", "none"]
2898
- }],
2899
- /**
2900
- * Resize
2901
- * @see https://tailwindcss.com/docs/resize
2902
- */
2903
- resize: [{
2904
- resize: ["none", "", "y", "x"]
2905
- }],
2906
- /**
2907
- * Scroll Behavior
2908
- * @see https://tailwindcss.com/docs/scroll-behavior
2909
- */
2910
- "scroll-behavior": [{
2911
- scroll: ["auto", "smooth"]
2912
- }],
2913
- /**
2914
- * Scroll Margin
2915
- * @see https://tailwindcss.com/docs/scroll-margin
2916
- */
2917
- "scroll-m": [{
2918
- "scroll-m": scaleUnambiguousSpacing()
2919
- }],
2920
- /**
2921
- * Scroll Margin Inline
2922
- * @see https://tailwindcss.com/docs/scroll-margin
2923
- */
2924
- "scroll-mx": [{
2925
- "scroll-mx": scaleUnambiguousSpacing()
2926
- }],
2927
- /**
2928
- * Scroll Margin Block
2929
- * @see https://tailwindcss.com/docs/scroll-margin
2930
- */
2931
- "scroll-my": [{
2932
- "scroll-my": scaleUnambiguousSpacing()
2933
- }],
2934
- /**
2935
- * Scroll Margin Inline Start
2936
- * @see https://tailwindcss.com/docs/scroll-margin
2937
- */
2938
- "scroll-ms": [{
2939
- "scroll-ms": scaleUnambiguousSpacing()
2940
- }],
2941
- /**
2942
- * Scroll Margin Inline End
2943
- * @see https://tailwindcss.com/docs/scroll-margin
2944
- */
2945
- "scroll-me": [{
2946
- "scroll-me": scaleUnambiguousSpacing()
2947
- }],
2948
- /**
2949
- * Scroll Margin Block Start
2950
- * @see https://tailwindcss.com/docs/scroll-margin
2951
- */
2952
- "scroll-mbs": [{
2953
- "scroll-mbs": scaleUnambiguousSpacing()
2954
- }],
2955
- /**
2956
- * Scroll Margin Block End
2957
- * @see https://tailwindcss.com/docs/scroll-margin
2958
- */
2959
- "scroll-mbe": [{
2960
- "scroll-mbe": scaleUnambiguousSpacing()
2961
- }],
2962
- /**
2963
- * Scroll Margin Top
2964
- * @see https://tailwindcss.com/docs/scroll-margin
2965
- */
2966
- "scroll-mt": [{
2967
- "scroll-mt": scaleUnambiguousSpacing()
2968
- }],
2969
- /**
2970
- * Scroll Margin Right
2971
- * @see https://tailwindcss.com/docs/scroll-margin
2972
- */
2973
- "scroll-mr": [{
2974
- "scroll-mr": scaleUnambiguousSpacing()
2975
- }],
2976
- /**
2977
- * Scroll Margin Bottom
2978
- * @see https://tailwindcss.com/docs/scroll-margin
2979
- */
2980
- "scroll-mb": [{
2981
- "scroll-mb": scaleUnambiguousSpacing()
2982
- }],
2983
- /**
2984
- * Scroll Margin Left
2985
- * @see https://tailwindcss.com/docs/scroll-margin
2986
- */
2987
- "scroll-ml": [{
2988
- "scroll-ml": scaleUnambiguousSpacing()
2989
- }],
2990
- /**
2991
- * Scroll Padding
2992
- * @see https://tailwindcss.com/docs/scroll-padding
2993
- */
2994
- "scroll-p": [{
2995
- "scroll-p": scaleUnambiguousSpacing()
2996
- }],
2997
- /**
2998
- * Scroll Padding Inline
2999
- * @see https://tailwindcss.com/docs/scroll-padding
3000
- */
3001
- "scroll-px": [{
3002
- "scroll-px": scaleUnambiguousSpacing()
3003
- }],
3004
- /**
3005
- * Scroll Padding Block
3006
- * @see https://tailwindcss.com/docs/scroll-padding
3007
- */
3008
- "scroll-py": [{
3009
- "scroll-py": scaleUnambiguousSpacing()
3010
- }],
3011
- /**
3012
- * Scroll Padding Inline Start
3013
- * @see https://tailwindcss.com/docs/scroll-padding
3014
- */
3015
- "scroll-ps": [{
3016
- "scroll-ps": scaleUnambiguousSpacing()
3017
- }],
3018
- /**
3019
- * Scroll Padding Inline End
3020
- * @see https://tailwindcss.com/docs/scroll-padding
3021
- */
3022
- "scroll-pe": [{
3023
- "scroll-pe": scaleUnambiguousSpacing()
3024
- }],
3025
- /**
3026
- * Scroll Padding Block Start
3027
- * @see https://tailwindcss.com/docs/scroll-padding
3028
- */
3029
- "scroll-pbs": [{
3030
- "scroll-pbs": scaleUnambiguousSpacing()
3031
- }],
3032
- /**
3033
- * Scroll Padding Block End
3034
- * @see https://tailwindcss.com/docs/scroll-padding
3035
- */
3036
- "scroll-pbe": [{
3037
- "scroll-pbe": scaleUnambiguousSpacing()
3038
- }],
3039
- /**
3040
- * Scroll Padding Top
3041
- * @see https://tailwindcss.com/docs/scroll-padding
3042
- */
3043
- "scroll-pt": [{
3044
- "scroll-pt": scaleUnambiguousSpacing()
3045
- }],
3046
- /**
3047
- * Scroll Padding Right
3048
- * @see https://tailwindcss.com/docs/scroll-padding
3049
- */
3050
- "scroll-pr": [{
3051
- "scroll-pr": scaleUnambiguousSpacing()
3052
- }],
3053
- /**
3054
- * Scroll Padding Bottom
3055
- * @see https://tailwindcss.com/docs/scroll-padding
3056
- */
3057
- "scroll-pb": [{
3058
- "scroll-pb": scaleUnambiguousSpacing()
3059
- }],
3060
- /**
3061
- * Scroll Padding Left
3062
- * @see https://tailwindcss.com/docs/scroll-padding
3063
- */
3064
- "scroll-pl": [{
3065
- "scroll-pl": scaleUnambiguousSpacing()
3066
- }],
3067
- /**
3068
- * Scroll Snap Align
3069
- * @see https://tailwindcss.com/docs/scroll-snap-align
3070
- */
3071
- "snap-align": [{
3072
- snap: ["start", "end", "center", "align-none"]
3073
- }],
3074
- /**
3075
- * Scroll Snap Stop
3076
- * @see https://tailwindcss.com/docs/scroll-snap-stop
3077
- */
3078
- "snap-stop": [{
3079
- snap: ["normal", "always"]
3080
- }],
3081
- /**
3082
- * Scroll Snap Type
3083
- * @see https://tailwindcss.com/docs/scroll-snap-type
3084
- */
3085
- "snap-type": [{
3086
- snap: ["none", "x", "y", "both"]
3087
- }],
3088
- /**
3089
- * Scroll Snap Type Strictness
3090
- * @see https://tailwindcss.com/docs/scroll-snap-type
3091
- */
3092
- "snap-strictness": [{
3093
- snap: ["mandatory", "proximity"]
3094
- }],
3095
- /**
3096
- * Touch Action
3097
- * @see https://tailwindcss.com/docs/touch-action
3098
- */
3099
- touch: [{
3100
- touch: ["auto", "none", "manipulation"]
3101
- }],
3102
- /**
3103
- * Touch Action X
3104
- * @see https://tailwindcss.com/docs/touch-action
3105
- */
3106
- "touch-x": [{
3107
- "touch-pan": ["x", "left", "right"]
3108
- }],
3109
- /**
3110
- * Touch Action Y
3111
- * @see https://tailwindcss.com/docs/touch-action
3112
- */
3113
- "touch-y": [{
3114
- "touch-pan": ["y", "up", "down"]
3115
- }],
3116
- /**
3117
- * Touch Action Pinch Zoom
3118
- * @see https://tailwindcss.com/docs/touch-action
3119
- */
3120
- "touch-pz": ["touch-pinch-zoom"],
3121
- /**
3122
- * User Select
3123
- * @see https://tailwindcss.com/docs/user-select
3124
- */
3125
- select: [{
3126
- select: ["none", "text", "all", "auto"]
3127
- }],
3128
- /**
3129
- * Will Change
3130
- * @see https://tailwindcss.com/docs/will-change
3131
- */
3132
- "will-change": [{
3133
- "will-change": ["auto", "scroll", "contents", "transform", isArbitraryVariable, isArbitraryValue]
3134
- }],
3135
- // -----------
3136
- // --- SVG ---
3137
- // -----------
3138
- /**
3139
- * Fill
3140
- * @see https://tailwindcss.com/docs/fill
3141
- */
3142
- fill: [{
3143
- fill: ["none", ...scaleColor()]
3144
- }],
3145
- /**
3146
- * Stroke Width
3147
- * @see https://tailwindcss.com/docs/stroke-width
3148
- */
3149
- "stroke-w": [{
3150
- stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]
3151
- }],
3152
- /**
3153
- * Stroke
3154
- * @see https://tailwindcss.com/docs/stroke
3155
- */
3156
- stroke: [{
3157
- stroke: ["none", ...scaleColor()]
3158
- }],
3159
- // ---------------------
3160
- // --- Accessibility ---
3161
- // ---------------------
3162
- /**
3163
- * Forced Color Adjust
3164
- * @see https://tailwindcss.com/docs/forced-color-adjust
3165
- */
3166
- "forced-color-adjust": [{
3167
- "forced-color-adjust": ["auto", "none"]
3168
- }]
3169
- },
3170
- conflictingClassGroups: {
3171
- overflow: ["overflow-x", "overflow-y"],
3172
- overscroll: ["overscroll-x", "overscroll-y"],
3173
- inset: ["inset-x", "inset-y", "inset-bs", "inset-be", "start", "end", "top", "right", "bottom", "left"],
3174
- "inset-x": ["right", "left"],
3175
- "inset-y": ["top", "bottom"],
3176
- flex: ["basis", "grow", "shrink"],
3177
- gap: ["gap-x", "gap-y"],
3178
- p: ["px", "py", "ps", "pe", "pbs", "pbe", "pt", "pr", "pb", "pl"],
3179
- px: ["pr", "pl"],
3180
- py: ["pt", "pb"],
3181
- m: ["mx", "my", "ms", "me", "mbs", "mbe", "mt", "mr", "mb", "ml"],
3182
- mx: ["mr", "ml"],
3183
- my: ["mt", "mb"],
3184
- size: ["w", "h"],
3185
- "font-size": ["leading"],
3186
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
3187
- "fvn-ordinal": ["fvn-normal"],
3188
- "fvn-slashed-zero": ["fvn-normal"],
3189
- "fvn-figure": ["fvn-normal"],
3190
- "fvn-spacing": ["fvn-normal"],
3191
- "fvn-fraction": ["fvn-normal"],
3192
- "line-clamp": ["display", "overflow"],
3193
- 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"],
3194
- "rounded-s": ["rounded-ss", "rounded-es"],
3195
- "rounded-e": ["rounded-se", "rounded-ee"],
3196
- "rounded-t": ["rounded-tl", "rounded-tr"],
3197
- "rounded-r": ["rounded-tr", "rounded-br"],
3198
- "rounded-b": ["rounded-br", "rounded-bl"],
3199
- "rounded-l": ["rounded-tl", "rounded-bl"],
3200
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
3201
- "border-w": ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-bs", "border-w-be", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
3202
- "border-w-x": ["border-w-r", "border-w-l"],
3203
- "border-w-y": ["border-w-t", "border-w-b"],
3204
- "border-color": ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-bs", "border-color-be", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
3205
- "border-color-x": ["border-color-r", "border-color-l"],
3206
- "border-color-y": ["border-color-t", "border-color-b"],
3207
- translate: ["translate-x", "translate-y", "translate-none"],
3208
- "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
3209
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mbs", "scroll-mbe", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3210
- "scroll-mx": ["scroll-mr", "scroll-ml"],
3211
- "scroll-my": ["scroll-mt", "scroll-mb"],
3212
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pbs", "scroll-pbe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
3213
- "scroll-px": ["scroll-pr", "scroll-pl"],
3214
- "scroll-py": ["scroll-pt", "scroll-pb"],
3215
- touch: ["touch-x", "touch-y", "touch-pz"],
3216
- "touch-x": ["touch"],
3217
- "touch-y": ["touch"],
3218
- "touch-pz": ["touch"]
3219
- },
3220
- conflictingClassGroupModifiers: {
3221
- "font-size": ["leading"]
3222
- },
3223
- orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]
3224
- };
3225
- };
3226
- const twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
3227
- function cn(...inputs) {
3228
- return twMerge(clsx(inputs));
3229
- }
3230
- const typographySizes = {
3231
- "button/m/16": "text-[16px] font-medium",
3232
- "button/m/14": "text-[14px] font-medium"
3233
- };
3234
- const typographyVariants = cva("transition-all duration-300 leading-[100%]", {
3235
- variants: {
3236
- size: {
3237
- ...typographySizes
3238
- }
3239
- },
3240
- defaultVariants: {
3241
- size: "button/m/16"
3242
- }
3243
- });
3244
- const Typography = ({ children, tag = "p", size, className, ...props }) => {
3245
- const Tag = tag;
3246
- return /* @__PURE__ */ jsx(Tag, { ...props, className: cn(typographyVariants({ size, className })), children });
3247
- };
3248
- const buttonBgs = {
3249
- primary: "bg-blue-500 text-white hover:bg-blue-600",
3250
- secondary: "bg-gray-200 text-gray-800 hover:bg-gray-300",
3251
- outline: "bg-transparent border-2 border-blue-500 text-blue-500 hover:bg-blue-50"
3252
- };
3253
- const buttonSizes = {
3254
- "32": "h-[32px]",
3255
- "40": "h-[40px]",
3256
- "48": "h-[48px]",
3257
- "56": "h-[56px]"
3258
- };
3259
- const buttonVariants = cva("transition-all duration-300 py-2 px-4 rounded-[8px] leading-[100%]", {
3260
- variants: {
3261
- bg: {
3262
- ...buttonBgs
3263
- },
3264
- size: {
3265
- ...buttonSizes
3266
- }
3267
- },
3268
- defaultVariants: {
3269
- bg: "primary",
3270
- size: "32"
3271
- }
3272
- });
3273
- const Button = ({ children, bg, size, className, asChild = false, ...props }) => {
3274
- return /* @__PURE__ */ jsx("button", { ...props, className: cn(buttonVariants({ bg, size, className })), children: asChild ? /* @__PURE__ */ jsx(Typography, { children }) : children });
3275
- };
3276
- export {
3277
- Button,
3278
- Typography
3279
- };
3280
- //# sourceMappingURL=index.mjs.map