canx-ui 1.0.2 → 1.1.1

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