@lssm/example.learning-journey-ui-onboarding 0.0.0-canary-20251217060834 → 0.0.0-canary-20251217072406

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2033 +0,0 @@
1
- import { Button } from "@lssm/lib.design-system";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { cn } from "@lssm/lib.ui-kit-web/ui/utils";
4
-
5
- //#region ../../../node_modules/clsx/dist/clsx.mjs
6
- function r(e) {
7
- var t, f, n = "";
8
- if ("string" == typeof e || "number" == typeof e) n += e;
9
- else if ("object" == typeof e) if (Array.isArray(e)) {
10
- var o = e.length;
11
- for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
12
- } else for (f in e) e[f] && (n && (n += " "), n += f);
13
- return n;
14
- }
15
- function clsx() {
16
- for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
17
- return n;
18
- }
19
-
20
- //#endregion
21
- //#region ../../../node_modules/tailwind-merge/dist/bundle-mjs.mjs
22
- /**
23
- * Concatenates two arrays faster than the array spread operator.
24
- */
25
- const concatArrays = (array1, array2) => {
26
- const combinedArray = new Array(array1.length + array2.length);
27
- for (let i = 0; i < array1.length; i++) combinedArray[i] = array1[i];
28
- for (let i = 0; i < array2.length; i++) combinedArray[array1.length + i] = array2[i];
29
- return combinedArray;
30
- };
31
- const createClassValidatorObject = (classGroupId, validator) => ({
32
- classGroupId,
33
- validator
34
- });
35
- const createClassPartObject = (nextPart = /* @__PURE__ */ new Map(), validators = null, classGroupId) => ({
36
- nextPart,
37
- validators,
38
- classGroupId
39
- });
40
- const CLASS_PART_SEPARATOR = "-";
41
- const EMPTY_CONFLICTS = [];
42
- const ARBITRARY_PROPERTY_PREFIX = "arbitrary..";
43
- const createClassGroupUtils = (config) => {
44
- const classMap = createClassMap(config);
45
- const { conflictingClassGroups, conflictingClassGroupModifiers } = config;
46
- const getClassGroupId = (className) => {
47
- if (className.startsWith("[") && className.endsWith("]")) return getGroupIdForArbitraryProperty(className);
48
- const classParts = className.split(CLASS_PART_SEPARATOR);
49
- return getGroupRecursive(classParts, classParts[0] === "" && classParts.length > 1 ? 1 : 0, classMap);
50
- };
51
- const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
52
- if (hasPostfixModifier) {
53
- const modifierConflicts = conflictingClassGroupModifiers[classGroupId];
54
- const baseConflicts = conflictingClassGroups[classGroupId];
55
- if (modifierConflicts) {
56
- if (baseConflicts) return concatArrays(baseConflicts, modifierConflicts);
57
- return modifierConflicts;
58
- }
59
- return baseConflicts || EMPTY_CONFLICTS;
60
- }
61
- return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;
62
- };
63
- return {
64
- getClassGroupId,
65
- getConflictingClassGroupIds
66
- };
67
- };
68
- const getGroupRecursive = (classParts, startIndex, classPartObject) => {
69
- if (classParts.length - startIndex === 0) return classPartObject.classGroupId;
70
- const currentClassPart = classParts[startIndex];
71
- const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
72
- if (nextClassPartObject) {
73
- const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);
74
- if (result) return result;
75
- }
76
- const validators = classPartObject.validators;
77
- if (validators === null) return;
78
- const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);
79
- const validatorsLength = validators.length;
80
- for (let i = 0; i < validatorsLength; i++) {
81
- const validatorObj = validators[i];
82
- if (validatorObj.validator(classRest)) return validatorObj.classGroupId;
83
- }
84
- };
85
- /**
86
- * Get the class group ID for an arbitrary property.
87
- *
88
- * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.
89
- */
90
- const getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).indexOf(":") === -1 ? void 0 : (() => {
91
- const content = className.slice(1, -1);
92
- const colonIndex = content.indexOf(":");
93
- const property = content.slice(0, colonIndex);
94
- return property ? ARBITRARY_PROPERTY_PREFIX + property : void 0;
95
- })();
96
- /**
97
- * Exported for testing only
98
- */
99
- const createClassMap = (config) => {
100
- const { theme, classGroups } = config;
101
- return processClassGroups(classGroups, theme);
102
- };
103
- const processClassGroups = (classGroups, theme) => {
104
- const classMap = createClassPartObject();
105
- for (const classGroupId in classGroups) {
106
- const group = classGroups[classGroupId];
107
- processClassesRecursively(group, classMap, classGroupId, theme);
108
- }
109
- return classMap;
110
- };
111
- const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
112
- const len = classGroup.length;
113
- for (let i = 0; i < len; i++) {
114
- const classDefinition = classGroup[i];
115
- processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
116
- }
117
- };
118
- const processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
119
- if (typeof classDefinition === "string") {
120
- processStringDefinition(classDefinition, classPartObject, classGroupId);
121
- return;
122
- }
123
- if (typeof classDefinition === "function") {
124
- processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
125
- return;
126
- }
127
- processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
128
- };
129
- const processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
130
- const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
131
- classPartObjectToEdit.classGroupId = classGroupId;
132
- };
133
- const processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
134
- if (isThemeGetter(classDefinition)) {
135
- processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
136
- return;
137
- }
138
- if (classPartObject.validators === null) classPartObject.validators = [];
139
- classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
140
- };
141
- const processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
142
- const entries = Object.entries(classDefinition);
143
- const len = entries.length;
144
- for (let i = 0; i < len; i++) {
145
- const [key, value] = entries[i];
146
- processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
147
- }
148
- };
149
- const getPart = (classPartObject, path) => {
150
- let current = classPartObject;
151
- const parts = path.split(CLASS_PART_SEPARATOR);
152
- const len = parts.length;
153
- for (let i = 0; i < len; i++) {
154
- const part = parts[i];
155
- let next = current.nextPart.get(part);
156
- if (!next) {
157
- next = createClassPartObject();
158
- current.nextPart.set(part, next);
159
- }
160
- current = next;
161
- }
162
- return current;
163
- };
164
- const isThemeGetter = (func) => "isThemeGetter" in func && func.isThemeGetter === true;
165
- const createLruCache = (maxCacheSize) => {
166
- if (maxCacheSize < 1) return {
167
- get: () => void 0,
168
- set: () => {}
169
- };
170
- let cacheSize = 0;
171
- let cache = Object.create(null);
172
- let previousCache = Object.create(null);
173
- const update = (key, value) => {
174
- cache[key] = value;
175
- cacheSize++;
176
- if (cacheSize > maxCacheSize) {
177
- cacheSize = 0;
178
- previousCache = cache;
179
- cache = Object.create(null);
180
- }
181
- };
182
- return {
183
- get(key) {
184
- let value = cache[key];
185
- if (value !== void 0) return value;
186
- if ((value = previousCache[key]) !== void 0) {
187
- update(key, value);
188
- return value;
189
- }
190
- },
191
- set(key, value) {
192
- if (key in cache) cache[key] = value;
193
- else update(key, value);
194
- }
195
- };
196
- };
197
- const IMPORTANT_MODIFIER = "!";
198
- const MODIFIER_SEPARATOR = ":";
199
- const EMPTY_MODIFIERS = [];
200
- const createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({
201
- modifiers,
202
- hasImportantModifier,
203
- baseClassName,
204
- maybePostfixModifierPosition,
205
- isExternal
206
- });
207
- const createParseClassName = (config) => {
208
- const { prefix, experimentalParseClassName } = config;
209
- /**
210
- * Parse class name into parts.
211
- *
212
- * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS
213
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
214
- */
215
- let parseClassName = (className) => {
216
- const modifiers = [];
217
- let bracketDepth = 0;
218
- let parenDepth = 0;
219
- let modifierStart = 0;
220
- let postfixModifierPosition;
221
- const len = className.length;
222
- for (let index = 0; index < len; index++) {
223
- const currentCharacter = className[index];
224
- if (bracketDepth === 0 && parenDepth === 0) {
225
- if (currentCharacter === MODIFIER_SEPARATOR) {
226
- modifiers.push(className.slice(modifierStart, index));
227
- modifierStart = index + 1;
228
- continue;
229
- }
230
- if (currentCharacter === "/") {
231
- postfixModifierPosition = index;
232
- continue;
233
- }
234
- }
235
- if (currentCharacter === "[") bracketDepth++;
236
- else if (currentCharacter === "]") bracketDepth--;
237
- else if (currentCharacter === "(") parenDepth++;
238
- else if (currentCharacter === ")") parenDepth--;
239
- }
240
- const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);
241
- let baseClassName = baseClassNameWithImportantModifier;
242
- let hasImportantModifier = false;
243
- if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {
244
- baseClassName = baseClassNameWithImportantModifier.slice(0, -1);
245
- hasImportantModifier = true;
246
- } else if (baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {
247
- baseClassName = baseClassNameWithImportantModifier.slice(1);
248
- hasImportantModifier = true;
249
- }
250
- const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
251
- return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);
252
- };
253
- if (prefix) {
254
- const fullPrefix = prefix + MODIFIER_SEPARATOR;
255
- const parseClassNameOriginal = parseClassName;
256
- parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, void 0, true);
257
- }
258
- if (experimentalParseClassName) {
259
- const parseClassNameOriginal = parseClassName;
260
- parseClassName = (className) => experimentalParseClassName({
261
- className,
262
- parseClassName: parseClassNameOriginal
263
- });
264
- }
265
- return parseClassName;
266
- };
267
- /**
268
- * Sorts modifiers according to following schema:
269
- * - Predefined modifiers are sorted alphabetically
270
- * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it
271
- */
272
- const createSortModifiers = (config) => {
273
- const modifierWeights = /* @__PURE__ */ new Map();
274
- config.orderSensitiveModifiers.forEach((mod, index) => {
275
- modifierWeights.set(mod, 1e6 + index);
276
- });
277
- return (modifiers) => {
278
- const result = [];
279
- let currentSegment = [];
280
- for (let i = 0; i < modifiers.length; i++) {
281
- const modifier = modifiers[i];
282
- const isArbitrary = modifier[0] === "[";
283
- const isOrderSensitive = modifierWeights.has(modifier);
284
- if (isArbitrary || isOrderSensitive) {
285
- if (currentSegment.length > 0) {
286
- currentSegment.sort();
287
- result.push(...currentSegment);
288
- currentSegment = [];
289
- }
290
- result.push(modifier);
291
- } else currentSegment.push(modifier);
292
- }
293
- if (currentSegment.length > 0) {
294
- currentSegment.sort();
295
- result.push(...currentSegment);
296
- }
297
- return result;
298
- };
299
- };
300
- const createConfigUtils = (config) => ({
301
- cache: createLruCache(config.cacheSize),
302
- parseClassName: createParseClassName(config),
303
- sortModifiers: createSortModifiers(config),
304
- ...createClassGroupUtils(config)
305
- });
306
- const SPLIT_CLASSES_REGEX = /\s+/;
307
- const mergeClassList = (classList, configUtils) => {
308
- const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } = configUtils;
309
- /**
310
- * Set of classGroupIds in following format:
311
- * `{importantModifier}{variantModifiers}{classGroupId}`
312
- * @example 'float'
313
- * @example 'hover:focus:bg-color'
314
- * @example 'md:!pr'
315
- */
316
- const classGroupsInConflict = [];
317
- const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
318
- let result = "";
319
- for (let index = classNames.length - 1; index >= 0; index -= 1) {
320
- const originalClassName = classNames[index];
321
- const { isExternal, modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition } = parseClassName(originalClassName);
322
- if (isExternal) {
323
- result = originalClassName + (result.length > 0 ? " " + result : result);
324
- continue;
325
- }
326
- let hasPostfixModifier = !!maybePostfixModifierPosition;
327
- let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
328
- if (!classGroupId) {
329
- if (!hasPostfixModifier) {
330
- result = originalClassName + (result.length > 0 ? " " + result : result);
331
- continue;
332
- }
333
- classGroupId = getClassGroupId(baseClassName);
334
- if (!classGroupId) {
335
- result = originalClassName + (result.length > 0 ? " " + result : result);
336
- continue;
337
- }
338
- hasPostfixModifier = false;
339
- }
340
- const variantModifier = modifiers.length === 0 ? "" : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(":");
341
- const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
342
- const classId = modifierId + classGroupId;
343
- if (classGroupsInConflict.indexOf(classId) > -1) continue;
344
- classGroupsInConflict.push(classId);
345
- const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
346
- for (let i = 0; i < conflictGroups.length; ++i) {
347
- const group = conflictGroups[i];
348
- classGroupsInConflict.push(modifierId + group);
349
- }
350
- result = originalClassName + (result.length > 0 ? " " + result : result);
351
- }
352
- return result;
353
- };
354
- /**
355
- * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.
356
- *
357
- * Specifically:
358
- * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js
359
- * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts
360
- *
361
- * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
362
- */
363
- const twJoin = (...classLists) => {
364
- let index = 0;
365
- let argument;
366
- let resolvedValue;
367
- let string = "";
368
- while (index < classLists.length) if (argument = classLists[index++]) {
369
- if (resolvedValue = toValue(argument)) {
370
- string && (string += " ");
371
- string += resolvedValue;
372
- }
373
- }
374
- return string;
375
- };
376
- const toValue = (mix) => {
377
- if (typeof mix === "string") return mix;
378
- let resolvedValue;
379
- let string = "";
380
- for (let k = 0; k < mix.length; k++) if (mix[k]) {
381
- if (resolvedValue = toValue(mix[k])) {
382
- string && (string += " ");
383
- string += resolvedValue;
384
- }
385
- }
386
- return string;
387
- };
388
- const createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
389
- let configUtils;
390
- let cacheGet;
391
- let cacheSet;
392
- let functionToCall;
393
- const initTailwindMerge = (classList) => {
394
- configUtils = createConfigUtils(createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst()));
395
- cacheGet = configUtils.cache.get;
396
- cacheSet = configUtils.cache.set;
397
- functionToCall = tailwindMerge;
398
- return tailwindMerge(classList);
399
- };
400
- const tailwindMerge = (classList) => {
401
- const cachedResult = cacheGet(classList);
402
- if (cachedResult) return cachedResult;
403
- const result = mergeClassList(classList, configUtils);
404
- cacheSet(classList, result);
405
- return result;
406
- };
407
- functionToCall = initTailwindMerge;
408
- return (...args) => functionToCall(twJoin(...args));
409
- };
410
- const fallbackThemeArr = [];
411
- const fromTheme = (key) => {
412
- const themeGetter = (theme) => theme[key] || fallbackThemeArr;
413
- themeGetter.isThemeGetter = true;
414
- return themeGetter;
415
- };
416
- const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i;
417
- const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i;
418
- const fractionRegex = /^\d+\/\d+$/;
419
- const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
420
- const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
421
- const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
422
- const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
423
- const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
424
- const isFraction = (value) => fractionRegex.test(value);
425
- const isNumber = (value) => !!value && !Number.isNaN(Number(value));
426
- const isInteger = (value) => !!value && Number.isInteger(Number(value));
427
- const isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
428
- const isTshirtSize = (value) => tshirtUnitRegex.test(value);
429
- const isAny = () => true;
430
- const isLengthOnly = (value) => lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);
431
- const isNever = () => false;
432
- const isShadow = (value) => shadowRegex.test(value);
433
- const isImage = (value) => imageRegex.test(value);
434
- const isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
435
- const isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
436
- const isArbitraryValue = (value) => arbitraryValueRegex.test(value);
437
- const isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
438
- const isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber);
439
- const isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever);
440
- const isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage);
441
- const isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow);
442
- const isArbitraryVariable = (value) => arbitraryVariableRegex.test(value);
443
- const isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength);
444
- const isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName);
445
- const isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition);
446
- const isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize);
447
- const isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage);
448
- const isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true);
449
- const getIsArbitraryValue = (value, testLabel, testValue) => {
450
- const result = arbitraryValueRegex.exec(value);
451
- if (result) {
452
- if (result[1]) return testLabel(result[1]);
453
- return testValue(result[2]);
454
- }
455
- return false;
456
- };
457
- const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {
458
- const result = arbitraryVariableRegex.exec(value);
459
- if (result) {
460
- if (result[1]) return testLabel(result[1]);
461
- return shouldMatchNoLabel;
462
- }
463
- return false;
464
- };
465
- const isLabelPosition = (label) => label === "position" || label === "percentage";
466
- const isLabelImage = (label) => label === "image" || label === "url";
467
- const isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size";
468
- const isLabelLength = (label) => label === "length";
469
- const isLabelNumber = (label) => label === "number";
470
- const isLabelFamilyName = (label) => label === "family-name";
471
- const isLabelShadow = (label) => label === "shadow";
472
- const getDefaultConfig = () => {
473
- /**
474
- * Theme getters for theme variable namespaces
475
- * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces
476
- */
477
- const themeColor = fromTheme("color");
478
- const themeFont = fromTheme("font");
479
- const themeText = fromTheme("text");
480
- const themeFontWeight = fromTheme("font-weight");
481
- const themeTracking = fromTheme("tracking");
482
- const themeLeading = fromTheme("leading");
483
- const themeBreakpoint = fromTheme("breakpoint");
484
- const themeContainer = fromTheme("container");
485
- const themeSpacing = fromTheme("spacing");
486
- const themeRadius = fromTheme("radius");
487
- const themeShadow = fromTheme("shadow");
488
- const themeInsetShadow = fromTheme("inset-shadow");
489
- const themeTextShadow = fromTheme("text-shadow");
490
- const themeDropShadow = fromTheme("drop-shadow");
491
- const themeBlur = fromTheme("blur");
492
- const themePerspective = fromTheme("perspective");
493
- const themeAspect = fromTheme("aspect");
494
- const themeEase = fromTheme("ease");
495
- const themeAnimate = fromTheme("animate");
496
- /**
497
- * Helpers to avoid repeating the same scales
498
- *
499
- * We use functions that create a new array every time they're called instead of static arrays.
500
- * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.
501
- */
502
- const scaleBreak = () => [
503
- "auto",
504
- "avoid",
505
- "all",
506
- "avoid-page",
507
- "page",
508
- "left",
509
- "right",
510
- "column"
511
- ];
512
- const scalePosition = () => [
513
- "center",
514
- "top",
515
- "bottom",
516
- "left",
517
- "right",
518
- "top-left",
519
- "left-top",
520
- "top-right",
521
- "right-top",
522
- "bottom-right",
523
- "right-bottom",
524
- "bottom-left",
525
- "left-bottom"
526
- ];
527
- const scalePositionWithArbitrary = () => [
528
- ...scalePosition(),
529
- isArbitraryVariable,
530
- isArbitraryValue
531
- ];
532
- const scaleOverflow = () => [
533
- "auto",
534
- "hidden",
535
- "clip",
536
- "visible",
537
- "scroll"
538
- ];
539
- const scaleOverscroll = () => [
540
- "auto",
541
- "contain",
542
- "none"
543
- ];
544
- const scaleUnambiguousSpacing = () => [
545
- isArbitraryVariable,
546
- isArbitraryValue,
547
- themeSpacing
548
- ];
549
- const scaleInset = () => [
550
- isFraction,
551
- "full",
552
- "auto",
553
- ...scaleUnambiguousSpacing()
554
- ];
555
- const scaleGridTemplateColsRows = () => [
556
- isInteger,
557
- "none",
558
- "subgrid",
559
- isArbitraryVariable,
560
- isArbitraryValue
561
- ];
562
- const scaleGridColRowStartAndEnd = () => [
563
- "auto",
564
- { span: [
565
- "full",
566
- isInteger,
567
- isArbitraryVariable,
568
- isArbitraryValue
569
- ] },
570
- isInteger,
571
- isArbitraryVariable,
572
- isArbitraryValue
573
- ];
574
- const scaleGridColRowStartOrEnd = () => [
575
- isInteger,
576
- "auto",
577
- isArbitraryVariable,
578
- isArbitraryValue
579
- ];
580
- const scaleGridAutoColsRows = () => [
581
- "auto",
582
- "min",
583
- "max",
584
- "fr",
585
- isArbitraryVariable,
586
- isArbitraryValue
587
- ];
588
- const scaleAlignPrimaryAxis = () => [
589
- "start",
590
- "end",
591
- "center",
592
- "between",
593
- "around",
594
- "evenly",
595
- "stretch",
596
- "baseline",
597
- "center-safe",
598
- "end-safe"
599
- ];
600
- const scaleAlignSecondaryAxis = () => [
601
- "start",
602
- "end",
603
- "center",
604
- "stretch",
605
- "center-safe",
606
- "end-safe"
607
- ];
608
- const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()];
609
- const scaleSizing = () => [
610
- isFraction,
611
- "auto",
612
- "full",
613
- "dvw",
614
- "dvh",
615
- "lvw",
616
- "lvh",
617
- "svw",
618
- "svh",
619
- "min",
620
- "max",
621
- "fit",
622
- ...scaleUnambiguousSpacing()
623
- ];
624
- const scaleColor = () => [
625
- themeColor,
626
- isArbitraryVariable,
627
- isArbitraryValue
628
- ];
629
- const scaleBgPosition = () => [
630
- ...scalePosition(),
631
- isArbitraryVariablePosition,
632
- isArbitraryPosition,
633
- { position: [isArbitraryVariable, isArbitraryValue] }
634
- ];
635
- const scaleBgRepeat = () => ["no-repeat", { repeat: [
636
- "",
637
- "x",
638
- "y",
639
- "space",
640
- "round"
641
- ] }];
642
- const scaleBgSize = () => [
643
- "auto",
644
- "cover",
645
- "contain",
646
- isArbitraryVariableSize,
647
- isArbitrarySize,
648
- { size: [isArbitraryVariable, isArbitraryValue] }
649
- ];
650
- const scaleGradientStopPosition = () => [
651
- isPercent,
652
- isArbitraryVariableLength,
653
- isArbitraryLength
654
- ];
655
- const scaleRadius = () => [
656
- "",
657
- "none",
658
- "full",
659
- themeRadius,
660
- isArbitraryVariable,
661
- isArbitraryValue
662
- ];
663
- const scaleBorderWidth = () => [
664
- "",
665
- isNumber,
666
- isArbitraryVariableLength,
667
- isArbitraryLength
668
- ];
669
- const scaleLineStyle = () => [
670
- "solid",
671
- "dashed",
672
- "dotted",
673
- "double"
674
- ];
675
- const scaleBlendMode = () => [
676
- "normal",
677
- "multiply",
678
- "screen",
679
- "overlay",
680
- "darken",
681
- "lighten",
682
- "color-dodge",
683
- "color-burn",
684
- "hard-light",
685
- "soft-light",
686
- "difference",
687
- "exclusion",
688
- "hue",
689
- "saturation",
690
- "color",
691
- "luminosity"
692
- ];
693
- const scaleMaskImagePosition = () => [
694
- isNumber,
695
- isPercent,
696
- isArbitraryVariablePosition,
697
- isArbitraryPosition
698
- ];
699
- const scaleBlur = () => [
700
- "",
701
- "none",
702
- themeBlur,
703
- isArbitraryVariable,
704
- isArbitraryValue
705
- ];
706
- const scaleRotate = () => [
707
- "none",
708
- isNumber,
709
- isArbitraryVariable,
710
- isArbitraryValue
711
- ];
712
- const scaleScale = () => [
713
- "none",
714
- isNumber,
715
- isArbitraryVariable,
716
- isArbitraryValue
717
- ];
718
- const scaleSkew = () => [
719
- isNumber,
720
- isArbitraryVariable,
721
- isArbitraryValue
722
- ];
723
- const scaleTranslate = () => [
724
- isFraction,
725
- "full",
726
- ...scaleUnambiguousSpacing()
727
- ];
728
- return {
729
- cacheSize: 500,
730
- theme: {
731
- animate: [
732
- "spin",
733
- "ping",
734
- "pulse",
735
- "bounce"
736
- ],
737
- aspect: ["video"],
738
- blur: [isTshirtSize],
739
- breakpoint: [isTshirtSize],
740
- color: [isAny],
741
- container: [isTshirtSize],
742
- "drop-shadow": [isTshirtSize],
743
- ease: [
744
- "in",
745
- "out",
746
- "in-out"
747
- ],
748
- font: [isAnyNonArbitrary],
749
- "font-weight": [
750
- "thin",
751
- "extralight",
752
- "light",
753
- "normal",
754
- "medium",
755
- "semibold",
756
- "bold",
757
- "extrabold",
758
- "black"
759
- ],
760
- "inset-shadow": [isTshirtSize],
761
- leading: [
762
- "none",
763
- "tight",
764
- "snug",
765
- "normal",
766
- "relaxed",
767
- "loose"
768
- ],
769
- perspective: [
770
- "dramatic",
771
- "near",
772
- "normal",
773
- "midrange",
774
- "distant",
775
- "none"
776
- ],
777
- radius: [isTshirtSize],
778
- shadow: [isTshirtSize],
779
- spacing: ["px", isNumber],
780
- text: [isTshirtSize],
781
- "text-shadow": [isTshirtSize],
782
- tracking: [
783
- "tighter",
784
- "tight",
785
- "normal",
786
- "wide",
787
- "wider",
788
- "widest"
789
- ]
790
- },
791
- classGroups: {
792
- aspect: [{ aspect: [
793
- "auto",
794
- "square",
795
- isFraction,
796
- isArbitraryValue,
797
- isArbitraryVariable,
798
- themeAspect
799
- ] }],
800
- container: ["container"],
801
- columns: [{ columns: [
802
- isNumber,
803
- isArbitraryValue,
804
- isArbitraryVariable,
805
- themeContainer
806
- ] }],
807
- "break-after": [{ "break-after": scaleBreak() }],
808
- "break-before": [{ "break-before": scaleBreak() }],
809
- "break-inside": [{ "break-inside": [
810
- "auto",
811
- "avoid",
812
- "avoid-page",
813
- "avoid-column"
814
- ] }],
815
- "box-decoration": [{ "box-decoration": ["slice", "clone"] }],
816
- box: [{ box: ["border", "content"] }],
817
- display: [
818
- "block",
819
- "inline-block",
820
- "inline",
821
- "flex",
822
- "inline-flex",
823
- "table",
824
- "inline-table",
825
- "table-caption",
826
- "table-cell",
827
- "table-column",
828
- "table-column-group",
829
- "table-footer-group",
830
- "table-header-group",
831
- "table-row-group",
832
- "table-row",
833
- "flow-root",
834
- "grid",
835
- "inline-grid",
836
- "contents",
837
- "list-item",
838
- "hidden"
839
- ],
840
- sr: ["sr-only", "not-sr-only"],
841
- float: [{ float: [
842
- "right",
843
- "left",
844
- "none",
845
- "start",
846
- "end"
847
- ] }],
848
- clear: [{ clear: [
849
- "left",
850
- "right",
851
- "both",
852
- "none",
853
- "start",
854
- "end"
855
- ] }],
856
- isolation: ["isolate", "isolation-auto"],
857
- "object-fit": [{ object: [
858
- "contain",
859
- "cover",
860
- "fill",
861
- "none",
862
- "scale-down"
863
- ] }],
864
- "object-position": [{ object: scalePositionWithArbitrary() }],
865
- overflow: [{ overflow: scaleOverflow() }],
866
- "overflow-x": [{ "overflow-x": scaleOverflow() }],
867
- "overflow-y": [{ "overflow-y": scaleOverflow() }],
868
- overscroll: [{ overscroll: scaleOverscroll() }],
869
- "overscroll-x": [{ "overscroll-x": scaleOverscroll() }],
870
- "overscroll-y": [{ "overscroll-y": scaleOverscroll() }],
871
- position: [
872
- "static",
873
- "fixed",
874
- "absolute",
875
- "relative",
876
- "sticky"
877
- ],
878
- inset: [{ inset: scaleInset() }],
879
- "inset-x": [{ "inset-x": scaleInset() }],
880
- "inset-y": [{ "inset-y": scaleInset() }],
881
- start: [{ start: scaleInset() }],
882
- end: [{ end: scaleInset() }],
883
- top: [{ top: scaleInset() }],
884
- right: [{ right: scaleInset() }],
885
- bottom: [{ bottom: scaleInset() }],
886
- left: [{ left: scaleInset() }],
887
- visibility: [
888
- "visible",
889
- "invisible",
890
- "collapse"
891
- ],
892
- z: [{ z: [
893
- isInteger,
894
- "auto",
895
- isArbitraryVariable,
896
- isArbitraryValue
897
- ] }],
898
- basis: [{ basis: [
899
- isFraction,
900
- "full",
901
- "auto",
902
- themeContainer,
903
- ...scaleUnambiguousSpacing()
904
- ] }],
905
- "flex-direction": [{ flex: [
906
- "row",
907
- "row-reverse",
908
- "col",
909
- "col-reverse"
910
- ] }],
911
- "flex-wrap": [{ flex: [
912
- "nowrap",
913
- "wrap",
914
- "wrap-reverse"
915
- ] }],
916
- flex: [{ flex: [
917
- isNumber,
918
- isFraction,
919
- "auto",
920
- "initial",
921
- "none",
922
- isArbitraryValue
923
- ] }],
924
- grow: [{ grow: [
925
- "",
926
- isNumber,
927
- isArbitraryVariable,
928
- isArbitraryValue
929
- ] }],
930
- shrink: [{ shrink: [
931
- "",
932
- isNumber,
933
- isArbitraryVariable,
934
- isArbitraryValue
935
- ] }],
936
- order: [{ order: [
937
- isInteger,
938
- "first",
939
- "last",
940
- "none",
941
- isArbitraryVariable,
942
- isArbitraryValue
943
- ] }],
944
- "grid-cols": [{ "grid-cols": scaleGridTemplateColsRows() }],
945
- "col-start-end": [{ col: scaleGridColRowStartAndEnd() }],
946
- "col-start": [{ "col-start": scaleGridColRowStartOrEnd() }],
947
- "col-end": [{ "col-end": scaleGridColRowStartOrEnd() }],
948
- "grid-rows": [{ "grid-rows": scaleGridTemplateColsRows() }],
949
- "row-start-end": [{ row: scaleGridColRowStartAndEnd() }],
950
- "row-start": [{ "row-start": scaleGridColRowStartOrEnd() }],
951
- "row-end": [{ "row-end": scaleGridColRowStartOrEnd() }],
952
- "grid-flow": [{ "grid-flow": [
953
- "row",
954
- "col",
955
- "dense",
956
- "row-dense",
957
- "col-dense"
958
- ] }],
959
- "auto-cols": [{ "auto-cols": scaleGridAutoColsRows() }],
960
- "auto-rows": [{ "auto-rows": scaleGridAutoColsRows() }],
961
- gap: [{ gap: scaleUnambiguousSpacing() }],
962
- "gap-x": [{ "gap-x": scaleUnambiguousSpacing() }],
963
- "gap-y": [{ "gap-y": scaleUnambiguousSpacing() }],
964
- "justify-content": [{ justify: [...scaleAlignPrimaryAxis(), "normal"] }],
965
- "justify-items": [{ "justify-items": [...scaleAlignSecondaryAxis(), "normal"] }],
966
- "justify-self": [{ "justify-self": ["auto", ...scaleAlignSecondaryAxis()] }],
967
- "align-content": [{ content: ["normal", ...scaleAlignPrimaryAxis()] }],
968
- "align-items": [{ items: [...scaleAlignSecondaryAxis(), { baseline: ["", "last"] }] }],
969
- "align-self": [{ self: [
970
- "auto",
971
- ...scaleAlignSecondaryAxis(),
972
- { baseline: ["", "last"] }
973
- ] }],
974
- "place-content": [{ "place-content": scaleAlignPrimaryAxis() }],
975
- "place-items": [{ "place-items": [...scaleAlignSecondaryAxis(), "baseline"] }],
976
- "place-self": [{ "place-self": ["auto", ...scaleAlignSecondaryAxis()] }],
977
- p: [{ p: scaleUnambiguousSpacing() }],
978
- px: [{ px: scaleUnambiguousSpacing() }],
979
- py: [{ py: scaleUnambiguousSpacing() }],
980
- ps: [{ ps: scaleUnambiguousSpacing() }],
981
- pe: [{ pe: scaleUnambiguousSpacing() }],
982
- pt: [{ pt: scaleUnambiguousSpacing() }],
983
- pr: [{ pr: scaleUnambiguousSpacing() }],
984
- pb: [{ pb: scaleUnambiguousSpacing() }],
985
- pl: [{ pl: scaleUnambiguousSpacing() }],
986
- m: [{ m: scaleMargin() }],
987
- mx: [{ mx: scaleMargin() }],
988
- my: [{ my: scaleMargin() }],
989
- ms: [{ ms: scaleMargin() }],
990
- me: [{ me: scaleMargin() }],
991
- mt: [{ mt: scaleMargin() }],
992
- mr: [{ mr: scaleMargin() }],
993
- mb: [{ mb: scaleMargin() }],
994
- ml: [{ ml: scaleMargin() }],
995
- "space-x": [{ "space-x": scaleUnambiguousSpacing() }],
996
- "space-x-reverse": ["space-x-reverse"],
997
- "space-y": [{ "space-y": scaleUnambiguousSpacing() }],
998
- "space-y-reverse": ["space-y-reverse"],
999
- size: [{ size: scaleSizing() }],
1000
- w: [{ w: [
1001
- themeContainer,
1002
- "screen",
1003
- ...scaleSizing()
1004
- ] }],
1005
- "min-w": [{ "min-w": [
1006
- themeContainer,
1007
- "screen",
1008
- "none",
1009
- ...scaleSizing()
1010
- ] }],
1011
- "max-w": [{ "max-w": [
1012
- themeContainer,
1013
- "screen",
1014
- "none",
1015
- "prose",
1016
- { screen: [themeBreakpoint] },
1017
- ...scaleSizing()
1018
- ] }],
1019
- h: [{ h: [
1020
- "screen",
1021
- "lh",
1022
- ...scaleSizing()
1023
- ] }],
1024
- "min-h": [{ "min-h": [
1025
- "screen",
1026
- "lh",
1027
- "none",
1028
- ...scaleSizing()
1029
- ] }],
1030
- "max-h": [{ "max-h": [
1031
- "screen",
1032
- "lh",
1033
- ...scaleSizing()
1034
- ] }],
1035
- "font-size": [{ text: [
1036
- "base",
1037
- themeText,
1038
- isArbitraryVariableLength,
1039
- isArbitraryLength
1040
- ] }],
1041
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
1042
- "font-style": ["italic", "not-italic"],
1043
- "font-weight": [{ font: [
1044
- themeFontWeight,
1045
- isArbitraryVariable,
1046
- isArbitraryNumber
1047
- ] }],
1048
- "font-stretch": [{ "font-stretch": [
1049
- "ultra-condensed",
1050
- "extra-condensed",
1051
- "condensed",
1052
- "semi-condensed",
1053
- "normal",
1054
- "semi-expanded",
1055
- "expanded",
1056
- "extra-expanded",
1057
- "ultra-expanded",
1058
- isPercent,
1059
- isArbitraryValue
1060
- ] }],
1061
- "font-family": [{ font: [
1062
- isArbitraryVariableFamilyName,
1063
- isArbitraryValue,
1064
- themeFont
1065
- ] }],
1066
- "fvn-normal": ["normal-nums"],
1067
- "fvn-ordinal": ["ordinal"],
1068
- "fvn-slashed-zero": ["slashed-zero"],
1069
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
1070
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
1071
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1072
- tracking: [{ tracking: [
1073
- themeTracking,
1074
- isArbitraryVariable,
1075
- isArbitraryValue
1076
- ] }],
1077
- "line-clamp": [{ "line-clamp": [
1078
- isNumber,
1079
- "none",
1080
- isArbitraryVariable,
1081
- isArbitraryNumber
1082
- ] }],
1083
- leading: [{ leading: [themeLeading, ...scaleUnambiguousSpacing()] }],
1084
- "list-image": [{ "list-image": [
1085
- "none",
1086
- isArbitraryVariable,
1087
- isArbitraryValue
1088
- ] }],
1089
- "list-style-position": [{ list: ["inside", "outside"] }],
1090
- "list-style-type": [{ list: [
1091
- "disc",
1092
- "decimal",
1093
- "none",
1094
- isArbitraryVariable,
1095
- isArbitraryValue
1096
- ] }],
1097
- "text-alignment": [{ text: [
1098
- "left",
1099
- "center",
1100
- "right",
1101
- "justify",
1102
- "start",
1103
- "end"
1104
- ] }],
1105
- "placeholder-color": [{ placeholder: scaleColor() }],
1106
- "text-color": [{ text: scaleColor() }],
1107
- "text-decoration": [
1108
- "underline",
1109
- "overline",
1110
- "line-through",
1111
- "no-underline"
1112
- ],
1113
- "text-decoration-style": [{ decoration: [...scaleLineStyle(), "wavy"] }],
1114
- "text-decoration-thickness": [{ decoration: [
1115
- isNumber,
1116
- "from-font",
1117
- "auto",
1118
- isArbitraryVariable,
1119
- isArbitraryLength
1120
- ] }],
1121
- "text-decoration-color": [{ decoration: scaleColor() }],
1122
- "underline-offset": [{ "underline-offset": [
1123
- isNumber,
1124
- "auto",
1125
- isArbitraryVariable,
1126
- isArbitraryValue
1127
- ] }],
1128
- "text-transform": [
1129
- "uppercase",
1130
- "lowercase",
1131
- "capitalize",
1132
- "normal-case"
1133
- ],
1134
- "text-overflow": [
1135
- "truncate",
1136
- "text-ellipsis",
1137
- "text-clip"
1138
- ],
1139
- "text-wrap": [{ text: [
1140
- "wrap",
1141
- "nowrap",
1142
- "balance",
1143
- "pretty"
1144
- ] }],
1145
- indent: [{ indent: scaleUnambiguousSpacing() }],
1146
- "vertical-align": [{ align: [
1147
- "baseline",
1148
- "top",
1149
- "middle",
1150
- "bottom",
1151
- "text-top",
1152
- "text-bottom",
1153
- "sub",
1154
- "super",
1155
- isArbitraryVariable,
1156
- isArbitraryValue
1157
- ] }],
1158
- whitespace: [{ whitespace: [
1159
- "normal",
1160
- "nowrap",
1161
- "pre",
1162
- "pre-line",
1163
- "pre-wrap",
1164
- "break-spaces"
1165
- ] }],
1166
- break: [{ break: [
1167
- "normal",
1168
- "words",
1169
- "all",
1170
- "keep"
1171
- ] }],
1172
- wrap: [{ wrap: [
1173
- "break-word",
1174
- "anywhere",
1175
- "normal"
1176
- ] }],
1177
- hyphens: [{ hyphens: [
1178
- "none",
1179
- "manual",
1180
- "auto"
1181
- ] }],
1182
- content: [{ content: [
1183
- "none",
1184
- isArbitraryVariable,
1185
- isArbitraryValue
1186
- ] }],
1187
- "bg-attachment": [{ bg: [
1188
- "fixed",
1189
- "local",
1190
- "scroll"
1191
- ] }],
1192
- "bg-clip": [{ "bg-clip": [
1193
- "border",
1194
- "padding",
1195
- "content",
1196
- "text"
1197
- ] }],
1198
- "bg-origin": [{ "bg-origin": [
1199
- "border",
1200
- "padding",
1201
- "content"
1202
- ] }],
1203
- "bg-position": [{ bg: scaleBgPosition() }],
1204
- "bg-repeat": [{ bg: scaleBgRepeat() }],
1205
- "bg-size": [{ bg: scaleBgSize() }],
1206
- "bg-image": [{ bg: [
1207
- "none",
1208
- {
1209
- linear: [
1210
- { to: [
1211
- "t",
1212
- "tr",
1213
- "r",
1214
- "br",
1215
- "b",
1216
- "bl",
1217
- "l",
1218
- "tl"
1219
- ] },
1220
- isInteger,
1221
- isArbitraryVariable,
1222
- isArbitraryValue
1223
- ],
1224
- radial: [
1225
- "",
1226
- isArbitraryVariable,
1227
- isArbitraryValue
1228
- ],
1229
- conic: [
1230
- isInteger,
1231
- isArbitraryVariable,
1232
- isArbitraryValue
1233
- ]
1234
- },
1235
- isArbitraryVariableImage,
1236
- isArbitraryImage
1237
- ] }],
1238
- "bg-color": [{ bg: scaleColor() }],
1239
- "gradient-from-pos": [{ from: scaleGradientStopPosition() }],
1240
- "gradient-via-pos": [{ via: scaleGradientStopPosition() }],
1241
- "gradient-to-pos": [{ to: scaleGradientStopPosition() }],
1242
- "gradient-from": [{ from: scaleColor() }],
1243
- "gradient-via": [{ via: scaleColor() }],
1244
- "gradient-to": [{ to: scaleColor() }],
1245
- rounded: [{ rounded: scaleRadius() }],
1246
- "rounded-s": [{ "rounded-s": scaleRadius() }],
1247
- "rounded-e": [{ "rounded-e": scaleRadius() }],
1248
- "rounded-t": [{ "rounded-t": scaleRadius() }],
1249
- "rounded-r": [{ "rounded-r": scaleRadius() }],
1250
- "rounded-b": [{ "rounded-b": scaleRadius() }],
1251
- "rounded-l": [{ "rounded-l": scaleRadius() }],
1252
- "rounded-ss": [{ "rounded-ss": scaleRadius() }],
1253
- "rounded-se": [{ "rounded-se": scaleRadius() }],
1254
- "rounded-ee": [{ "rounded-ee": scaleRadius() }],
1255
- "rounded-es": [{ "rounded-es": scaleRadius() }],
1256
- "rounded-tl": [{ "rounded-tl": scaleRadius() }],
1257
- "rounded-tr": [{ "rounded-tr": scaleRadius() }],
1258
- "rounded-br": [{ "rounded-br": scaleRadius() }],
1259
- "rounded-bl": [{ "rounded-bl": scaleRadius() }],
1260
- "border-w": [{ border: scaleBorderWidth() }],
1261
- "border-w-x": [{ "border-x": scaleBorderWidth() }],
1262
- "border-w-y": [{ "border-y": scaleBorderWidth() }],
1263
- "border-w-s": [{ "border-s": scaleBorderWidth() }],
1264
- "border-w-e": [{ "border-e": scaleBorderWidth() }],
1265
- "border-w-t": [{ "border-t": scaleBorderWidth() }],
1266
- "border-w-r": [{ "border-r": scaleBorderWidth() }],
1267
- "border-w-b": [{ "border-b": scaleBorderWidth() }],
1268
- "border-w-l": [{ "border-l": scaleBorderWidth() }],
1269
- "divide-x": [{ "divide-x": scaleBorderWidth() }],
1270
- "divide-x-reverse": ["divide-x-reverse"],
1271
- "divide-y": [{ "divide-y": scaleBorderWidth() }],
1272
- "divide-y-reverse": ["divide-y-reverse"],
1273
- "border-style": [{ border: [
1274
- ...scaleLineStyle(),
1275
- "hidden",
1276
- "none"
1277
- ] }],
1278
- "divide-style": [{ divide: [
1279
- ...scaleLineStyle(),
1280
- "hidden",
1281
- "none"
1282
- ] }],
1283
- "border-color": [{ border: scaleColor() }],
1284
- "border-color-x": [{ "border-x": scaleColor() }],
1285
- "border-color-y": [{ "border-y": scaleColor() }],
1286
- "border-color-s": [{ "border-s": scaleColor() }],
1287
- "border-color-e": [{ "border-e": scaleColor() }],
1288
- "border-color-t": [{ "border-t": scaleColor() }],
1289
- "border-color-r": [{ "border-r": scaleColor() }],
1290
- "border-color-b": [{ "border-b": scaleColor() }],
1291
- "border-color-l": [{ "border-l": scaleColor() }],
1292
- "divide-color": [{ divide: scaleColor() }],
1293
- "outline-style": [{ outline: [
1294
- ...scaleLineStyle(),
1295
- "none",
1296
- "hidden"
1297
- ] }],
1298
- "outline-offset": [{ "outline-offset": [
1299
- isNumber,
1300
- isArbitraryVariable,
1301
- isArbitraryValue
1302
- ] }],
1303
- "outline-w": [{ outline: [
1304
- "",
1305
- isNumber,
1306
- isArbitraryVariableLength,
1307
- isArbitraryLength
1308
- ] }],
1309
- "outline-color": [{ outline: scaleColor() }],
1310
- shadow: [{ shadow: [
1311
- "",
1312
- "none",
1313
- themeShadow,
1314
- isArbitraryVariableShadow,
1315
- isArbitraryShadow
1316
- ] }],
1317
- "shadow-color": [{ shadow: scaleColor() }],
1318
- "inset-shadow": [{ "inset-shadow": [
1319
- "none",
1320
- themeInsetShadow,
1321
- isArbitraryVariableShadow,
1322
- isArbitraryShadow
1323
- ] }],
1324
- "inset-shadow-color": [{ "inset-shadow": scaleColor() }],
1325
- "ring-w": [{ ring: scaleBorderWidth() }],
1326
- "ring-w-inset": ["ring-inset"],
1327
- "ring-color": [{ ring: scaleColor() }],
1328
- "ring-offset-w": [{ "ring-offset": [isNumber, isArbitraryLength] }],
1329
- "ring-offset-color": [{ "ring-offset": scaleColor() }],
1330
- "inset-ring-w": [{ "inset-ring": scaleBorderWidth() }],
1331
- "inset-ring-color": [{ "inset-ring": scaleColor() }],
1332
- "text-shadow": [{ "text-shadow": [
1333
- "none",
1334
- themeTextShadow,
1335
- isArbitraryVariableShadow,
1336
- isArbitraryShadow
1337
- ] }],
1338
- "text-shadow-color": [{ "text-shadow": scaleColor() }],
1339
- opacity: [{ opacity: [
1340
- isNumber,
1341
- isArbitraryVariable,
1342
- isArbitraryValue
1343
- ] }],
1344
- "mix-blend": [{ "mix-blend": [
1345
- ...scaleBlendMode(),
1346
- "plus-darker",
1347
- "plus-lighter"
1348
- ] }],
1349
- "bg-blend": [{ "bg-blend": scaleBlendMode() }],
1350
- "mask-clip": [{ "mask-clip": [
1351
- "border",
1352
- "padding",
1353
- "content",
1354
- "fill",
1355
- "stroke",
1356
- "view"
1357
- ] }, "mask-no-clip"],
1358
- "mask-composite": [{ mask: [
1359
- "add",
1360
- "subtract",
1361
- "intersect",
1362
- "exclude"
1363
- ] }],
1364
- "mask-image-linear-pos": [{ "mask-linear": [isNumber] }],
1365
- "mask-image-linear-from-pos": [{ "mask-linear-from": scaleMaskImagePosition() }],
1366
- "mask-image-linear-to-pos": [{ "mask-linear-to": scaleMaskImagePosition() }],
1367
- "mask-image-linear-from-color": [{ "mask-linear-from": scaleColor() }],
1368
- "mask-image-linear-to-color": [{ "mask-linear-to": scaleColor() }],
1369
- "mask-image-t-from-pos": [{ "mask-t-from": scaleMaskImagePosition() }],
1370
- "mask-image-t-to-pos": [{ "mask-t-to": scaleMaskImagePosition() }],
1371
- "mask-image-t-from-color": [{ "mask-t-from": scaleColor() }],
1372
- "mask-image-t-to-color": [{ "mask-t-to": scaleColor() }],
1373
- "mask-image-r-from-pos": [{ "mask-r-from": scaleMaskImagePosition() }],
1374
- "mask-image-r-to-pos": [{ "mask-r-to": scaleMaskImagePosition() }],
1375
- "mask-image-r-from-color": [{ "mask-r-from": scaleColor() }],
1376
- "mask-image-r-to-color": [{ "mask-r-to": scaleColor() }],
1377
- "mask-image-b-from-pos": [{ "mask-b-from": scaleMaskImagePosition() }],
1378
- "mask-image-b-to-pos": [{ "mask-b-to": scaleMaskImagePosition() }],
1379
- "mask-image-b-from-color": [{ "mask-b-from": scaleColor() }],
1380
- "mask-image-b-to-color": [{ "mask-b-to": scaleColor() }],
1381
- "mask-image-l-from-pos": [{ "mask-l-from": scaleMaskImagePosition() }],
1382
- "mask-image-l-to-pos": [{ "mask-l-to": scaleMaskImagePosition() }],
1383
- "mask-image-l-from-color": [{ "mask-l-from": scaleColor() }],
1384
- "mask-image-l-to-color": [{ "mask-l-to": scaleColor() }],
1385
- "mask-image-x-from-pos": [{ "mask-x-from": scaleMaskImagePosition() }],
1386
- "mask-image-x-to-pos": [{ "mask-x-to": scaleMaskImagePosition() }],
1387
- "mask-image-x-from-color": [{ "mask-x-from": scaleColor() }],
1388
- "mask-image-x-to-color": [{ "mask-x-to": scaleColor() }],
1389
- "mask-image-y-from-pos": [{ "mask-y-from": scaleMaskImagePosition() }],
1390
- "mask-image-y-to-pos": [{ "mask-y-to": scaleMaskImagePosition() }],
1391
- "mask-image-y-from-color": [{ "mask-y-from": scaleColor() }],
1392
- "mask-image-y-to-color": [{ "mask-y-to": scaleColor() }],
1393
- "mask-image-radial": [{ "mask-radial": [isArbitraryVariable, isArbitraryValue] }],
1394
- "mask-image-radial-from-pos": [{ "mask-radial-from": scaleMaskImagePosition() }],
1395
- "mask-image-radial-to-pos": [{ "mask-radial-to": scaleMaskImagePosition() }],
1396
- "mask-image-radial-from-color": [{ "mask-radial-from": scaleColor() }],
1397
- "mask-image-radial-to-color": [{ "mask-radial-to": scaleColor() }],
1398
- "mask-image-radial-shape": [{ "mask-radial": ["circle", "ellipse"] }],
1399
- "mask-image-radial-size": [{ "mask-radial": [{
1400
- closest: ["side", "corner"],
1401
- farthest: ["side", "corner"]
1402
- }] }],
1403
- "mask-image-radial-pos": [{ "mask-radial-at": scalePosition() }],
1404
- "mask-image-conic-pos": [{ "mask-conic": [isNumber] }],
1405
- "mask-image-conic-from-pos": [{ "mask-conic-from": scaleMaskImagePosition() }],
1406
- "mask-image-conic-to-pos": [{ "mask-conic-to": scaleMaskImagePosition() }],
1407
- "mask-image-conic-from-color": [{ "mask-conic-from": scaleColor() }],
1408
- "mask-image-conic-to-color": [{ "mask-conic-to": scaleColor() }],
1409
- "mask-mode": [{ mask: [
1410
- "alpha",
1411
- "luminance",
1412
- "match"
1413
- ] }],
1414
- "mask-origin": [{ "mask-origin": [
1415
- "border",
1416
- "padding",
1417
- "content",
1418
- "fill",
1419
- "stroke",
1420
- "view"
1421
- ] }],
1422
- "mask-position": [{ mask: scaleBgPosition() }],
1423
- "mask-repeat": [{ mask: scaleBgRepeat() }],
1424
- "mask-size": [{ mask: scaleBgSize() }],
1425
- "mask-type": [{ "mask-type": ["alpha", "luminance"] }],
1426
- "mask-image": [{ mask: [
1427
- "none",
1428
- isArbitraryVariable,
1429
- isArbitraryValue
1430
- ] }],
1431
- filter: [{ filter: [
1432
- "",
1433
- "none",
1434
- isArbitraryVariable,
1435
- isArbitraryValue
1436
- ] }],
1437
- blur: [{ blur: scaleBlur() }],
1438
- brightness: [{ brightness: [
1439
- isNumber,
1440
- isArbitraryVariable,
1441
- isArbitraryValue
1442
- ] }],
1443
- contrast: [{ contrast: [
1444
- isNumber,
1445
- isArbitraryVariable,
1446
- isArbitraryValue
1447
- ] }],
1448
- "drop-shadow": [{ "drop-shadow": [
1449
- "",
1450
- "none",
1451
- themeDropShadow,
1452
- isArbitraryVariableShadow,
1453
- isArbitraryShadow
1454
- ] }],
1455
- "drop-shadow-color": [{ "drop-shadow": scaleColor() }],
1456
- grayscale: [{ grayscale: [
1457
- "",
1458
- isNumber,
1459
- isArbitraryVariable,
1460
- isArbitraryValue
1461
- ] }],
1462
- "hue-rotate": [{ "hue-rotate": [
1463
- isNumber,
1464
- isArbitraryVariable,
1465
- isArbitraryValue
1466
- ] }],
1467
- invert: [{ invert: [
1468
- "",
1469
- isNumber,
1470
- isArbitraryVariable,
1471
- isArbitraryValue
1472
- ] }],
1473
- saturate: [{ saturate: [
1474
- isNumber,
1475
- isArbitraryVariable,
1476
- isArbitraryValue
1477
- ] }],
1478
- sepia: [{ sepia: [
1479
- "",
1480
- isNumber,
1481
- isArbitraryVariable,
1482
- isArbitraryValue
1483
- ] }],
1484
- "backdrop-filter": [{ "backdrop-filter": [
1485
- "",
1486
- "none",
1487
- isArbitraryVariable,
1488
- isArbitraryValue
1489
- ] }],
1490
- "backdrop-blur": [{ "backdrop-blur": scaleBlur() }],
1491
- "backdrop-brightness": [{ "backdrop-brightness": [
1492
- isNumber,
1493
- isArbitraryVariable,
1494
- isArbitraryValue
1495
- ] }],
1496
- "backdrop-contrast": [{ "backdrop-contrast": [
1497
- isNumber,
1498
- isArbitraryVariable,
1499
- isArbitraryValue
1500
- ] }],
1501
- "backdrop-grayscale": [{ "backdrop-grayscale": [
1502
- "",
1503
- isNumber,
1504
- isArbitraryVariable,
1505
- isArbitraryValue
1506
- ] }],
1507
- "backdrop-hue-rotate": [{ "backdrop-hue-rotate": [
1508
- isNumber,
1509
- isArbitraryVariable,
1510
- isArbitraryValue
1511
- ] }],
1512
- "backdrop-invert": [{ "backdrop-invert": [
1513
- "",
1514
- isNumber,
1515
- isArbitraryVariable,
1516
- isArbitraryValue
1517
- ] }],
1518
- "backdrop-opacity": [{ "backdrop-opacity": [
1519
- isNumber,
1520
- isArbitraryVariable,
1521
- isArbitraryValue
1522
- ] }],
1523
- "backdrop-saturate": [{ "backdrop-saturate": [
1524
- isNumber,
1525
- isArbitraryVariable,
1526
- isArbitraryValue
1527
- ] }],
1528
- "backdrop-sepia": [{ "backdrop-sepia": [
1529
- "",
1530
- isNumber,
1531
- isArbitraryVariable,
1532
- isArbitraryValue
1533
- ] }],
1534
- "border-collapse": [{ border: ["collapse", "separate"] }],
1535
- "border-spacing": [{ "border-spacing": scaleUnambiguousSpacing() }],
1536
- "border-spacing-x": [{ "border-spacing-x": scaleUnambiguousSpacing() }],
1537
- "border-spacing-y": [{ "border-spacing-y": scaleUnambiguousSpacing() }],
1538
- "table-layout": [{ table: ["auto", "fixed"] }],
1539
- caption: [{ caption: ["top", "bottom"] }],
1540
- transition: [{ transition: [
1541
- "",
1542
- "all",
1543
- "colors",
1544
- "opacity",
1545
- "shadow",
1546
- "transform",
1547
- "none",
1548
- isArbitraryVariable,
1549
- isArbitraryValue
1550
- ] }],
1551
- "transition-behavior": [{ transition: ["normal", "discrete"] }],
1552
- duration: [{ duration: [
1553
- isNumber,
1554
- "initial",
1555
- isArbitraryVariable,
1556
- isArbitraryValue
1557
- ] }],
1558
- ease: [{ ease: [
1559
- "linear",
1560
- "initial",
1561
- themeEase,
1562
- isArbitraryVariable,
1563
- isArbitraryValue
1564
- ] }],
1565
- delay: [{ delay: [
1566
- isNumber,
1567
- isArbitraryVariable,
1568
- isArbitraryValue
1569
- ] }],
1570
- animate: [{ animate: [
1571
- "none",
1572
- themeAnimate,
1573
- isArbitraryVariable,
1574
- isArbitraryValue
1575
- ] }],
1576
- backface: [{ backface: ["hidden", "visible"] }],
1577
- perspective: [{ perspective: [
1578
- themePerspective,
1579
- isArbitraryVariable,
1580
- isArbitraryValue
1581
- ] }],
1582
- "perspective-origin": [{ "perspective-origin": scalePositionWithArbitrary() }],
1583
- rotate: [{ rotate: scaleRotate() }],
1584
- "rotate-x": [{ "rotate-x": scaleRotate() }],
1585
- "rotate-y": [{ "rotate-y": scaleRotate() }],
1586
- "rotate-z": [{ "rotate-z": scaleRotate() }],
1587
- scale: [{ scale: scaleScale() }],
1588
- "scale-x": [{ "scale-x": scaleScale() }],
1589
- "scale-y": [{ "scale-y": scaleScale() }],
1590
- "scale-z": [{ "scale-z": scaleScale() }],
1591
- "scale-3d": ["scale-3d"],
1592
- skew: [{ skew: scaleSkew() }],
1593
- "skew-x": [{ "skew-x": scaleSkew() }],
1594
- "skew-y": [{ "skew-y": scaleSkew() }],
1595
- transform: [{ transform: [
1596
- isArbitraryVariable,
1597
- isArbitraryValue,
1598
- "",
1599
- "none",
1600
- "gpu",
1601
- "cpu"
1602
- ] }],
1603
- "transform-origin": [{ origin: scalePositionWithArbitrary() }],
1604
- "transform-style": [{ transform: ["3d", "flat"] }],
1605
- translate: [{ translate: scaleTranslate() }],
1606
- "translate-x": [{ "translate-x": scaleTranslate() }],
1607
- "translate-y": [{ "translate-y": scaleTranslate() }],
1608
- "translate-z": [{ "translate-z": scaleTranslate() }],
1609
- "translate-none": ["translate-none"],
1610
- accent: [{ accent: scaleColor() }],
1611
- appearance: [{ appearance: ["none", "auto"] }],
1612
- "caret-color": [{ caret: scaleColor() }],
1613
- "color-scheme": [{ scheme: [
1614
- "normal",
1615
- "dark",
1616
- "light",
1617
- "light-dark",
1618
- "only-dark",
1619
- "only-light"
1620
- ] }],
1621
- cursor: [{ cursor: [
1622
- "auto",
1623
- "default",
1624
- "pointer",
1625
- "wait",
1626
- "text",
1627
- "move",
1628
- "help",
1629
- "not-allowed",
1630
- "none",
1631
- "context-menu",
1632
- "progress",
1633
- "cell",
1634
- "crosshair",
1635
- "vertical-text",
1636
- "alias",
1637
- "copy",
1638
- "no-drop",
1639
- "grab",
1640
- "grabbing",
1641
- "all-scroll",
1642
- "col-resize",
1643
- "row-resize",
1644
- "n-resize",
1645
- "e-resize",
1646
- "s-resize",
1647
- "w-resize",
1648
- "ne-resize",
1649
- "nw-resize",
1650
- "se-resize",
1651
- "sw-resize",
1652
- "ew-resize",
1653
- "ns-resize",
1654
- "nesw-resize",
1655
- "nwse-resize",
1656
- "zoom-in",
1657
- "zoom-out",
1658
- isArbitraryVariable,
1659
- isArbitraryValue
1660
- ] }],
1661
- "field-sizing": [{ "field-sizing": ["fixed", "content"] }],
1662
- "pointer-events": [{ "pointer-events": ["auto", "none"] }],
1663
- resize: [{ resize: [
1664
- "none",
1665
- "",
1666
- "y",
1667
- "x"
1668
- ] }],
1669
- "scroll-behavior": [{ scroll: ["auto", "smooth"] }],
1670
- "scroll-m": [{ "scroll-m": scaleUnambiguousSpacing() }],
1671
- "scroll-mx": [{ "scroll-mx": scaleUnambiguousSpacing() }],
1672
- "scroll-my": [{ "scroll-my": scaleUnambiguousSpacing() }],
1673
- "scroll-ms": [{ "scroll-ms": scaleUnambiguousSpacing() }],
1674
- "scroll-me": [{ "scroll-me": scaleUnambiguousSpacing() }],
1675
- "scroll-mt": [{ "scroll-mt": scaleUnambiguousSpacing() }],
1676
- "scroll-mr": [{ "scroll-mr": scaleUnambiguousSpacing() }],
1677
- "scroll-mb": [{ "scroll-mb": scaleUnambiguousSpacing() }],
1678
- "scroll-ml": [{ "scroll-ml": scaleUnambiguousSpacing() }],
1679
- "scroll-p": [{ "scroll-p": scaleUnambiguousSpacing() }],
1680
- "scroll-px": [{ "scroll-px": scaleUnambiguousSpacing() }],
1681
- "scroll-py": [{ "scroll-py": scaleUnambiguousSpacing() }],
1682
- "scroll-ps": [{ "scroll-ps": scaleUnambiguousSpacing() }],
1683
- "scroll-pe": [{ "scroll-pe": scaleUnambiguousSpacing() }],
1684
- "scroll-pt": [{ "scroll-pt": scaleUnambiguousSpacing() }],
1685
- "scroll-pr": [{ "scroll-pr": scaleUnambiguousSpacing() }],
1686
- "scroll-pb": [{ "scroll-pb": scaleUnambiguousSpacing() }],
1687
- "scroll-pl": [{ "scroll-pl": scaleUnambiguousSpacing() }],
1688
- "snap-align": [{ snap: [
1689
- "start",
1690
- "end",
1691
- "center",
1692
- "align-none"
1693
- ] }],
1694
- "snap-stop": [{ snap: ["normal", "always"] }],
1695
- "snap-type": [{ snap: [
1696
- "none",
1697
- "x",
1698
- "y",
1699
- "both"
1700
- ] }],
1701
- "snap-strictness": [{ snap: ["mandatory", "proximity"] }],
1702
- touch: [{ touch: [
1703
- "auto",
1704
- "none",
1705
- "manipulation"
1706
- ] }],
1707
- "touch-x": [{ "touch-pan": [
1708
- "x",
1709
- "left",
1710
- "right"
1711
- ] }],
1712
- "touch-y": [{ "touch-pan": [
1713
- "y",
1714
- "up",
1715
- "down"
1716
- ] }],
1717
- "touch-pz": ["touch-pinch-zoom"],
1718
- select: [{ select: [
1719
- "none",
1720
- "text",
1721
- "all",
1722
- "auto"
1723
- ] }],
1724
- "will-change": [{ "will-change": [
1725
- "auto",
1726
- "scroll",
1727
- "contents",
1728
- "transform",
1729
- isArbitraryVariable,
1730
- isArbitraryValue
1731
- ] }],
1732
- fill: [{ fill: ["none", ...scaleColor()] }],
1733
- "stroke-w": [{ stroke: [
1734
- isNumber,
1735
- isArbitraryVariableLength,
1736
- isArbitraryLength,
1737
- isArbitraryNumber
1738
- ] }],
1739
- stroke: [{ stroke: ["none", ...scaleColor()] }],
1740
- "forced-color-adjust": [{ "forced-color-adjust": ["auto", "none"] }]
1741
- },
1742
- conflictingClassGroups: {
1743
- overflow: ["overflow-x", "overflow-y"],
1744
- overscroll: ["overscroll-x", "overscroll-y"],
1745
- inset: [
1746
- "inset-x",
1747
- "inset-y",
1748
- "start",
1749
- "end",
1750
- "top",
1751
- "right",
1752
- "bottom",
1753
- "left"
1754
- ],
1755
- "inset-x": ["right", "left"],
1756
- "inset-y": ["top", "bottom"],
1757
- flex: [
1758
- "basis",
1759
- "grow",
1760
- "shrink"
1761
- ],
1762
- gap: ["gap-x", "gap-y"],
1763
- p: [
1764
- "px",
1765
- "py",
1766
- "ps",
1767
- "pe",
1768
- "pt",
1769
- "pr",
1770
- "pb",
1771
- "pl"
1772
- ],
1773
- px: ["pr", "pl"],
1774
- py: ["pt", "pb"],
1775
- m: [
1776
- "mx",
1777
- "my",
1778
- "ms",
1779
- "me",
1780
- "mt",
1781
- "mr",
1782
- "mb",
1783
- "ml"
1784
- ],
1785
- mx: ["mr", "ml"],
1786
- my: ["mt", "mb"],
1787
- size: ["w", "h"],
1788
- "font-size": ["leading"],
1789
- "fvn-normal": [
1790
- "fvn-ordinal",
1791
- "fvn-slashed-zero",
1792
- "fvn-figure",
1793
- "fvn-spacing",
1794
- "fvn-fraction"
1795
- ],
1796
- "fvn-ordinal": ["fvn-normal"],
1797
- "fvn-slashed-zero": ["fvn-normal"],
1798
- "fvn-figure": ["fvn-normal"],
1799
- "fvn-spacing": ["fvn-normal"],
1800
- "fvn-fraction": ["fvn-normal"],
1801
- "line-clamp": ["display", "overflow"],
1802
- rounded: [
1803
- "rounded-s",
1804
- "rounded-e",
1805
- "rounded-t",
1806
- "rounded-r",
1807
- "rounded-b",
1808
- "rounded-l",
1809
- "rounded-ss",
1810
- "rounded-se",
1811
- "rounded-ee",
1812
- "rounded-es",
1813
- "rounded-tl",
1814
- "rounded-tr",
1815
- "rounded-br",
1816
- "rounded-bl"
1817
- ],
1818
- "rounded-s": ["rounded-ss", "rounded-es"],
1819
- "rounded-e": ["rounded-se", "rounded-ee"],
1820
- "rounded-t": ["rounded-tl", "rounded-tr"],
1821
- "rounded-r": ["rounded-tr", "rounded-br"],
1822
- "rounded-b": ["rounded-br", "rounded-bl"],
1823
- "rounded-l": ["rounded-tl", "rounded-bl"],
1824
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
1825
- "border-w": [
1826
- "border-w-x",
1827
- "border-w-y",
1828
- "border-w-s",
1829
- "border-w-e",
1830
- "border-w-t",
1831
- "border-w-r",
1832
- "border-w-b",
1833
- "border-w-l"
1834
- ],
1835
- "border-w-x": ["border-w-r", "border-w-l"],
1836
- "border-w-y": ["border-w-t", "border-w-b"],
1837
- "border-color": [
1838
- "border-color-x",
1839
- "border-color-y",
1840
- "border-color-s",
1841
- "border-color-e",
1842
- "border-color-t",
1843
- "border-color-r",
1844
- "border-color-b",
1845
- "border-color-l"
1846
- ],
1847
- "border-color-x": ["border-color-r", "border-color-l"],
1848
- "border-color-y": ["border-color-t", "border-color-b"],
1849
- translate: [
1850
- "translate-x",
1851
- "translate-y",
1852
- "translate-none"
1853
- ],
1854
- "translate-none": [
1855
- "translate",
1856
- "translate-x",
1857
- "translate-y",
1858
- "translate-z"
1859
- ],
1860
- "scroll-m": [
1861
- "scroll-mx",
1862
- "scroll-my",
1863
- "scroll-ms",
1864
- "scroll-me",
1865
- "scroll-mt",
1866
- "scroll-mr",
1867
- "scroll-mb",
1868
- "scroll-ml"
1869
- ],
1870
- "scroll-mx": ["scroll-mr", "scroll-ml"],
1871
- "scroll-my": ["scroll-mt", "scroll-mb"],
1872
- "scroll-p": [
1873
- "scroll-px",
1874
- "scroll-py",
1875
- "scroll-ps",
1876
- "scroll-pe",
1877
- "scroll-pt",
1878
- "scroll-pr",
1879
- "scroll-pb",
1880
- "scroll-pl"
1881
- ],
1882
- "scroll-px": ["scroll-pr", "scroll-pl"],
1883
- "scroll-py": ["scroll-pt", "scroll-pb"],
1884
- touch: [
1885
- "touch-x",
1886
- "touch-y",
1887
- "touch-pz"
1888
- ],
1889
- "touch-x": ["touch"],
1890
- "touch-y": ["touch"],
1891
- "touch-pz": ["touch"]
1892
- },
1893
- conflictingClassGroupModifiers: { "font-size": ["leading"] },
1894
- orderSensitiveModifiers: [
1895
- "*",
1896
- "**",
1897
- "after",
1898
- "backdrop",
1899
- "before",
1900
- "details-content",
1901
- "file",
1902
- "first-letter",
1903
- "first-line",
1904
- "marker",
1905
- "placeholder",
1906
- "selection"
1907
- ]
1908
- };
1909
- };
1910
- const twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
1911
-
1912
- //#endregion
1913
- //#region ../../libs/ui-kit-core/dist/utils.js
1914
- function cn$1(...inputs) {
1915
- return twMerge(clsx(inputs));
1916
- }
1917
-
1918
- //#endregion
1919
- //#region src/components/StepChecklist.tsx
1920
- function StepChecklist({ step, stepNumber, isCompleted, isCurrent, isExpanded, onToggle, onComplete }) {
1921
- return /* @__PURE__ */ jsxs("div", {
1922
- className: cn$1("rounded-xl border transition-all", isCompleted && "border-green-500/50 bg-green-500/5", isCurrent && !isCompleted && "border-violet-500 bg-violet-500/5", !isCompleted && !isCurrent && "border-border"),
1923
- children: [/* @__PURE__ */ jsxs("button", {
1924
- type: "button",
1925
- className: "flex w-full items-center gap-4 p-4 text-left",
1926
- onClick: onToggle,
1927
- children: [
1928
- /* @__PURE__ */ jsx("div", {
1929
- className: cn$1("flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 text-sm font-semibold transition-colors", isCompleted && "border-green-500 bg-green-500 text-white", isCurrent && !isCompleted && "border-violet-500 text-violet-500", !isCompleted && !isCurrent && "border-muted-foreground text-muted-foreground"),
1930
- children: isCompleted ? "✓" : stepNumber
1931
- }),
1932
- /* @__PURE__ */ jsxs("div", {
1933
- className: "min-w-0 flex-1",
1934
- children: [/* @__PURE__ */ jsx("h4", {
1935
- className: cn$1("font-semibold", isCompleted && "text-green-500", isCurrent && !isCompleted && "text-foreground", !isCompleted && !isCurrent && "text-muted-foreground"),
1936
- children: step.title
1937
- }), !isExpanded && step.description && /* @__PURE__ */ jsx("p", {
1938
- className: "text-muted-foreground truncate text-sm",
1939
- children: step.description
1940
- })]
1941
- }),
1942
- step.xpReward && /* @__PURE__ */ jsxs("span", {
1943
- className: cn$1("shrink-0 rounded-full px-2 py-1 text-xs font-semibold", isCompleted ? "bg-green-500/10 text-green-500" : "bg-muted text-muted-foreground"),
1944
- children: [
1945
- "+",
1946
- step.xpReward,
1947
- " XP"
1948
- ]
1949
- }),
1950
- /* @__PURE__ */ jsx("span", {
1951
- className: cn$1("shrink-0 transition-transform", isExpanded && "rotate-180"),
1952
- children: "▼"
1953
- })
1954
- ]
1955
- }), isExpanded && /* @__PURE__ */ jsxs("div", {
1956
- className: "border-t px-4 py-4",
1957
- children: [
1958
- step.description && /* @__PURE__ */ jsx("p", {
1959
- className: "text-muted-foreground mb-4",
1960
- children: step.description
1961
- }),
1962
- step.instructions && /* @__PURE__ */ jsxs("div", {
1963
- className: "bg-muted mb-4 rounded-lg p-4",
1964
- children: [/* @__PURE__ */ jsx("p", {
1965
- className: "mb-2 text-sm font-medium",
1966
- children: "Instructions:"
1967
- }), /* @__PURE__ */ jsx("p", {
1968
- className: "text-muted-foreground text-sm",
1969
- children: step.instructions
1970
- })]
1971
- }),
1972
- /* @__PURE__ */ jsxs("div", {
1973
- className: "flex flex-wrap gap-2",
1974
- children: [step.actionUrl && /* @__PURE__ */ jsx(Button, {
1975
- variant: "outline",
1976
- size: "sm",
1977
- onClick: () => window.open(step.actionUrl, "_blank"),
1978
- children: step.actionLabel ?? "Try it"
1979
- }), !isCompleted && /* @__PURE__ */ jsx(Button, {
1980
- size: "sm",
1981
- onClick: onComplete,
1982
- children: "Mark as Complete"
1983
- })]
1984
- })
1985
- ]
1986
- })]
1987
- });
1988
- }
1989
-
1990
- //#endregion
1991
- //#region src/components/JourneyMap.tsx
1992
- const SURFACE_ICONS = {
1993
- templates: "📋",
1994
- "spec-editor": "✏️",
1995
- regenerator: "🔄",
1996
- playground: "🎮",
1997
- evolution: "🤖",
1998
- dashboard: "📊",
1999
- settings: "⚙️",
2000
- default: "📍"
2001
- };
2002
- function JourneyMap({ steps, completedStepIds, currentStepId }) {
2003
- return /* @__PURE__ */ jsx("div", {
2004
- className: "relative overflow-x-auto pb-4",
2005
- children: /* @__PURE__ */ jsx("div", {
2006
- className: "flex min-w-max items-center gap-2",
2007
- children: steps.map((step, index) => {
2008
- const isCompleted = completedStepIds.includes(step.id);
2009
- const isCurrent = step.id === currentStepId;
2010
- const icon = SURFACE_ICONS[step.metadata?.surface ?? "default"] ?? SURFACE_ICONS.default;
2011
- return /* @__PURE__ */ jsxs("div", {
2012
- className: "flex items-center",
2013
- children: [/* @__PURE__ */ jsxs("div", {
2014
- className: "flex flex-col items-center gap-2",
2015
- children: [/* @__PURE__ */ jsx("div", {
2016
- className: cn("flex h-14 w-14 items-center justify-center rounded-2xl border-2 text-2xl transition-all", isCompleted && "border-green-500 bg-green-500/10", isCurrent && !isCompleted && "border-violet-500 bg-violet-500/10 ring-4 ring-violet-500/20", !isCompleted && !isCurrent && "border-muted bg-muted/50"),
2017
- children: isCompleted ? "✓" : icon
2018
- }), /* @__PURE__ */ jsx("div", {
2019
- className: "text-center",
2020
- children: /* @__PURE__ */ jsx("p", {
2021
- className: cn("max-w-[100px] truncate text-xs font-medium", isCompleted && "text-green-500", isCurrent && !isCompleted && "text-violet-500", !isCompleted && !isCurrent && "text-muted-foreground"),
2022
- children: step.title
2023
- })
2024
- })]
2025
- }), index < steps.length - 1 && /* @__PURE__ */ jsx("div", { className: cn("mx-2 h-1 w-8 rounded-full transition-colors", completedStepIds.includes(steps[index + 1]?.id ?? "") ? "bg-green-500" : isCompleted ? "bg-green-500/50" : "bg-muted") })]
2026
- }, step.id);
2027
- })
2028
- })
2029
- });
2030
- }
2031
-
2032
- //#endregion
2033
- export { StepChecklist as n, JourneyMap as t };