@process.co/ui 0.0.18 → 0.0.19

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