sunpeak 0.16.29 → 0.17.2

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