@dgithiomi/sbui-web 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,3649 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __commonJS = (cb, mod) => function __require() {
8
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
+ };
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+
32
+ // ../../node_modules/.bun/classnames@2.5.1/node_modules/classnames/index.js
33
+ var require_classnames = __commonJS({
34
+ "../../node_modules/.bun/classnames@2.5.1/node_modules/classnames/index.js"(exports2, module2) {
35
+ (function() {
36
+ "use strict";
37
+ var hasOwn = {}.hasOwnProperty;
38
+ function classNames2() {
39
+ var classes = "";
40
+ for (var i = 0; i < arguments.length; i++) {
41
+ var arg = arguments[i];
42
+ if (arg) {
43
+ classes = appendClass(classes, parseValue(arg));
44
+ }
45
+ }
46
+ return classes;
47
+ }
48
+ function parseValue(arg) {
49
+ if (typeof arg === "string" || typeof arg === "number") {
50
+ return arg;
51
+ }
52
+ if (typeof arg !== "object") {
53
+ return "";
54
+ }
55
+ if (Array.isArray(arg)) {
56
+ return classNames2.apply(null, arg);
57
+ }
58
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
59
+ return arg.toString();
60
+ }
61
+ var classes = "";
62
+ for (var key in arg) {
63
+ if (hasOwn.call(arg, key) && arg[key]) {
64
+ classes = appendClass(classes, key);
65
+ }
66
+ }
67
+ return classes;
68
+ }
69
+ function appendClass(value, newClass) {
70
+ if (!newClass) {
71
+ return value;
72
+ }
73
+ if (value) {
74
+ return value + " " + newClass;
75
+ }
76
+ return value + newClass;
77
+ }
78
+ if (typeof module2 !== "undefined" && module2.exports) {
79
+ classNames2.default = classNames2;
80
+ module2.exports = classNames2;
81
+ } else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
82
+ define("classnames", [], function() {
83
+ return classNames2;
84
+ });
85
+ } else {
86
+ window.classNames = classNames2;
87
+ }
88
+ })();
89
+ }
90
+ });
91
+
92
+ // index.ts
93
+ var index_exports = {};
94
+ __export(index_exports, {
95
+ ProgressBar: () => ProgressBar,
96
+ TextArea: () => TextArea,
97
+ Tooltip: () => Tooltip
98
+ });
99
+ module.exports = __toCommonJS(index_exports);
100
+
101
+ // ../../packages/libs/utils.tsx
102
+ var import_classnames = __toESM(require_classnames(), 1);
103
+
104
+ // ../../node_modules/.bun/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs
105
+ var CLASS_PART_SEPARATOR = "-";
106
+ var createClassGroupUtils = (config) => {
107
+ const classMap = createClassMap(config);
108
+ const {
109
+ conflictingClassGroups,
110
+ conflictingClassGroupModifiers
111
+ } = config;
112
+ const getClassGroupId = (className) => {
113
+ const classParts = className.split(CLASS_PART_SEPARATOR);
114
+ if (classParts[0] === "" && classParts.length !== 1) {
115
+ classParts.shift();
116
+ }
117
+ return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
118
+ };
119
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
120
+ const conflicts = conflictingClassGroups[classGroupId] || [];
121
+ if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
122
+ return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
123
+ }
124
+ return conflicts;
125
+ };
126
+ return {
127
+ getClassGroupId,
128
+ getConflictingClassGroupIds
129
+ };
130
+ };
131
+ var getGroupRecursive = (classParts, classPartObject) => {
132
+ var _a;
133
+ if (classParts.length === 0) {
134
+ return classPartObject.classGroupId;
135
+ }
136
+ const currentClassPart = classParts[0];
137
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
138
+ const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : void 0;
139
+ if (classGroupFromNextClassPart) {
140
+ return classGroupFromNextClassPart;
141
+ }
142
+ if (classPartObject.validators.length === 0) {
143
+ return void 0;
144
+ }
145
+ const classRest = classParts.join(CLASS_PART_SEPARATOR);
146
+ return (_a = classPartObject.validators.find(({
147
+ validator
148
+ }) => validator(classRest))) == null ? void 0 : _a.classGroupId;
149
+ };
150
+ var arbitraryPropertyRegex = /^\[(.+)\]$/;
151
+ var getGroupIdForArbitraryProperty = (className) => {
152
+ if (arbitraryPropertyRegex.test(className)) {
153
+ const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
154
+ const property = arbitraryPropertyClassName == null ? void 0 : arbitraryPropertyClassName.substring(0, arbitraryPropertyClassName.indexOf(":"));
155
+ if (property) {
156
+ return "arbitrary.." + property;
157
+ }
158
+ }
159
+ };
160
+ var createClassMap = (config) => {
161
+ const {
162
+ theme,
163
+ prefix
164
+ } = config;
165
+ const classMap = {
166
+ nextPart: /* @__PURE__ */ new Map(),
167
+ validators: []
168
+ };
169
+ const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
170
+ prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {
171
+ processClassesRecursively(classGroup, classMap, classGroupId, theme);
172
+ });
173
+ return classMap;
174
+ };
175
+ var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
176
+ classGroup.forEach((classDefinition) => {
177
+ if (typeof classDefinition === "string") {
178
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
179
+ classPartObjectToEdit.classGroupId = classGroupId;
180
+ return;
181
+ }
182
+ if (typeof classDefinition === "function") {
183
+ if (isThemeGetter(classDefinition)) {
184
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
185
+ return;
186
+ }
187
+ classPartObject.validators.push({
188
+ validator: classDefinition,
189
+ classGroupId
190
+ });
191
+ return;
192
+ }
193
+ Object.entries(classDefinition).forEach(([key, classGroup2]) => {
194
+ processClassesRecursively(classGroup2, getPart(classPartObject, key), classGroupId, theme);
195
+ });
196
+ });
197
+ };
198
+ var getPart = (classPartObject, path) => {
199
+ let currentClassPartObject = classPartObject;
200
+ path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {
201
+ if (!currentClassPartObject.nextPart.has(pathPart)) {
202
+ currentClassPartObject.nextPart.set(pathPart, {
203
+ nextPart: /* @__PURE__ */ new Map(),
204
+ validators: []
205
+ });
206
+ }
207
+ currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
208
+ });
209
+ return currentClassPartObject;
210
+ };
211
+ var isThemeGetter = (func) => func.isThemeGetter;
212
+ var getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {
213
+ if (!prefix) {
214
+ return classGroupEntries;
215
+ }
216
+ return classGroupEntries.map(([classGroupId, classGroup]) => {
217
+ const prefixedClassGroup = classGroup.map((classDefinition) => {
218
+ if (typeof classDefinition === "string") {
219
+ return prefix + classDefinition;
220
+ }
221
+ if (typeof classDefinition === "object") {
222
+ return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));
223
+ }
224
+ return classDefinition;
225
+ });
226
+ return [classGroupId, prefixedClassGroup];
227
+ });
228
+ };
229
+ var createLruCache = (maxCacheSize) => {
230
+ if (maxCacheSize < 1) {
231
+ return {
232
+ get: () => void 0,
233
+ set: () => {
234
+ }
235
+ };
236
+ }
237
+ let cacheSize = 0;
238
+ let cache = /* @__PURE__ */ new Map();
239
+ let previousCache = /* @__PURE__ */ new Map();
240
+ const update = (key, value) => {
241
+ cache.set(key, value);
242
+ cacheSize++;
243
+ if (cacheSize > maxCacheSize) {
244
+ cacheSize = 0;
245
+ previousCache = cache;
246
+ cache = /* @__PURE__ */ new Map();
247
+ }
248
+ };
249
+ return {
250
+ get(key) {
251
+ let value = cache.get(key);
252
+ if (value !== void 0) {
253
+ return value;
254
+ }
255
+ if ((value = previousCache.get(key)) !== void 0) {
256
+ update(key, value);
257
+ return value;
258
+ }
259
+ },
260
+ set(key, value) {
261
+ if (cache.has(key)) {
262
+ cache.set(key, value);
263
+ } else {
264
+ update(key, value);
265
+ }
266
+ }
267
+ };
268
+ };
269
+ var IMPORTANT_MODIFIER = "!";
270
+ var createParseClassName = (config) => {
271
+ const {
272
+ separator,
273
+ experimentalParseClassName
274
+ } = config;
275
+ const isSeparatorSingleCharacter = separator.length === 1;
276
+ const firstSeparatorCharacter = separator[0];
277
+ const separatorLength = separator.length;
278
+ const parseClassName = (className) => {
279
+ const modifiers = [];
280
+ let bracketDepth = 0;
281
+ let modifierStart = 0;
282
+ let postfixModifierPosition;
283
+ for (let index = 0; index < className.length; index++) {
284
+ let currentCharacter = className[index];
285
+ if (bracketDepth === 0) {
286
+ if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
287
+ modifiers.push(className.slice(modifierStart, index));
288
+ modifierStart = index + separatorLength;
289
+ continue;
290
+ }
291
+ if (currentCharacter === "/") {
292
+ postfixModifierPosition = index;
293
+ continue;
294
+ }
295
+ }
296
+ if (currentCharacter === "[") {
297
+ bracketDepth++;
298
+ } else if (currentCharacter === "]") {
299
+ bracketDepth--;
300
+ }
301
+ }
302
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
303
+ const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
304
+ const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
305
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
306
+ return {
307
+ modifiers,
308
+ hasImportantModifier,
309
+ baseClassName,
310
+ maybePostfixModifierPosition
311
+ };
312
+ };
313
+ if (experimentalParseClassName) {
314
+ return (className) => experimentalParseClassName({
315
+ className,
316
+ parseClassName
317
+ });
318
+ }
319
+ return parseClassName;
320
+ };
321
+ var sortModifiers = (modifiers) => {
322
+ if (modifiers.length <= 1) {
323
+ return modifiers;
324
+ }
325
+ const sortedModifiers = [];
326
+ let unsortedModifiers = [];
327
+ modifiers.forEach((modifier) => {
328
+ const isArbitraryVariant = modifier[0] === "[";
329
+ if (isArbitraryVariant) {
330
+ sortedModifiers.push(...unsortedModifiers.sort(), modifier);
331
+ unsortedModifiers = [];
332
+ } else {
333
+ unsortedModifiers.push(modifier);
334
+ }
335
+ });
336
+ sortedModifiers.push(...unsortedModifiers.sort());
337
+ return sortedModifiers;
338
+ };
339
+ var createConfigUtils = (config) => ({
340
+ cache: createLruCache(config.cacheSize),
341
+ parseClassName: createParseClassName(config),
342
+ ...createClassGroupUtils(config)
343
+ });
344
+ var SPLIT_CLASSES_REGEX = /\s+/;
345
+ var mergeClassList = (classList, configUtils) => {
346
+ const {
347
+ parseClassName,
348
+ getClassGroupId,
349
+ getConflictingClassGroupIds
350
+ } = configUtils;
351
+ const classGroupsInConflict = [];
352
+ const classNames2 = classList.trim().split(SPLIT_CLASSES_REGEX);
353
+ let result = "";
354
+ for (let index = classNames2.length - 1; index >= 0; index -= 1) {
355
+ const originalClassName = classNames2[index];
356
+ const {
357
+ modifiers,
358
+ hasImportantModifier,
359
+ baseClassName,
360
+ maybePostfixModifierPosition
361
+ } = parseClassName(originalClassName);
362
+ let hasPostfixModifier = Boolean(maybePostfixModifierPosition);
363
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
364
+ if (!classGroupId) {
365
+ if (!hasPostfixModifier) {
366
+ result = originalClassName + (result.length > 0 ? " " + result : result);
367
+ continue;
368
+ }
369
+ classGroupId = getClassGroupId(baseClassName);
370
+ if (!classGroupId) {
371
+ result = originalClassName + (result.length > 0 ? " " + result : result);
372
+ continue;
373
+ }
374
+ hasPostfixModifier = false;
375
+ }
376
+ const variantModifier = sortModifiers(modifiers).join(":");
377
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
378
+ const classId = modifierId + classGroupId;
379
+ if (classGroupsInConflict.includes(classId)) {
380
+ continue;
381
+ }
382
+ classGroupsInConflict.push(classId);
383
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
384
+ for (let i = 0; i < conflictGroups.length; ++i) {
385
+ const group = conflictGroups[i];
386
+ classGroupsInConflict.push(modifierId + group);
387
+ }
388
+ result = originalClassName + (result.length > 0 ? " " + result : result);
389
+ }
390
+ return result;
391
+ };
392
+ function twJoin() {
393
+ let index = 0;
394
+ let argument;
395
+ let resolvedValue;
396
+ let string = "";
397
+ while (index < arguments.length) {
398
+ if (argument = arguments[index++]) {
399
+ if (resolvedValue = toValue(argument)) {
400
+ string && (string += " ");
401
+ string += resolvedValue;
402
+ }
403
+ }
404
+ }
405
+ return string;
406
+ }
407
+ var toValue = (mix) => {
408
+ if (typeof mix === "string") {
409
+ return mix;
410
+ }
411
+ let resolvedValue;
412
+ let string = "";
413
+ for (let k = 0; k < mix.length; k++) {
414
+ if (mix[k]) {
415
+ if (resolvedValue = toValue(mix[k])) {
416
+ string && (string += " ");
417
+ string += resolvedValue;
418
+ }
419
+ }
420
+ }
421
+ return string;
422
+ };
423
+ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
424
+ let configUtils;
425
+ let cacheGet;
426
+ let cacheSet;
427
+ let functionToCall = initTailwindMerge;
428
+ function initTailwindMerge(classList) {
429
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
430
+ configUtils = createConfigUtils(config);
431
+ cacheGet = configUtils.cache.get;
432
+ cacheSet = configUtils.cache.set;
433
+ functionToCall = tailwindMerge;
434
+ return tailwindMerge(classList);
435
+ }
436
+ function tailwindMerge(classList) {
437
+ const cachedResult = cacheGet(classList);
438
+ if (cachedResult) {
439
+ return cachedResult;
440
+ }
441
+ const result = mergeClassList(classList, configUtils);
442
+ cacheSet(classList, result);
443
+ return result;
444
+ }
445
+ return function callTailwindMerge() {
446
+ return functionToCall(twJoin.apply(null, arguments));
447
+ };
448
+ }
449
+ var fromTheme = (key) => {
450
+ const themeGetter = (theme) => theme[key] || [];
451
+ themeGetter.isThemeGetter = true;
452
+ return themeGetter;
453
+ };
454
+ var arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
455
+ var fractionRegex = /^\d+\/\d+$/;
456
+ var stringLengths = /* @__PURE__ */ new Set(["px", "full", "screen"]);
457
+ var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
458
+ 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$/;
459
+ var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/;
460
+ var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
461
+ var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
462
+ var isLength = (value) => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);
463
+ var isArbitraryLength = (value) => getIsArbitraryValue(value, "length", isLengthOnly);
464
+ var isNumber = (value) => Boolean(value) && !Number.isNaN(Number(value));
465
+ var isArbitraryNumber = (value) => getIsArbitraryValue(value, "number", isNumber);
466
+ var isInteger = (value) => Boolean(value) && Number.isInteger(Number(value));
467
+ var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
468
+ var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
469
+ var isTshirtSize = (value) => tshirtUnitRegex.test(value);
470
+ var sizeLabels = /* @__PURE__ */ new Set(["length", "size", "percentage"]);
471
+ var isArbitrarySize = (value) => getIsArbitraryValue(value, sizeLabels, isNever);
472
+ var isArbitraryPosition = (value) => getIsArbitraryValue(value, "position", isNever);
473
+ var imageLabels = /* @__PURE__ */ new Set(["image", "url"]);
474
+ var isArbitraryImage = (value) => getIsArbitraryValue(value, imageLabels, isImage);
475
+ var isArbitraryShadow = (value) => getIsArbitraryValue(value, "", isShadow);
476
+ var isAny = () => true;
477
+ var getIsArbitraryValue = (value, label, testValue) => {
478
+ const result = arbitraryValueRegex.exec(value);
479
+ if (result) {
480
+ if (result[1]) {
481
+ return typeof label === "string" ? result[1] === label : label.has(result[1]);
482
+ }
483
+ return testValue(result[2]);
484
+ }
485
+ return false;
486
+ };
487
+ var isLengthOnly = (value) => (
488
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
489
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
490
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
491
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
492
+ );
493
+ var isNever = () => false;
494
+ var isShadow = (value) => shadowRegex.test(value);
495
+ var isImage = (value) => imageRegex.test(value);
496
+ var getDefaultConfig = () => {
497
+ const colors = fromTheme("colors");
498
+ const spacing = fromTheme("spacing");
499
+ const blur = fromTheme("blur");
500
+ const brightness = fromTheme("brightness");
501
+ const borderColor = fromTheme("borderColor");
502
+ const borderRadius = fromTheme("borderRadius");
503
+ const borderSpacing = fromTheme("borderSpacing");
504
+ const borderWidth = fromTheme("borderWidth");
505
+ const contrast = fromTheme("contrast");
506
+ const grayscale = fromTheme("grayscale");
507
+ const hueRotate = fromTheme("hueRotate");
508
+ const invert = fromTheme("invert");
509
+ const gap = fromTheme("gap");
510
+ const gradientColorStops = fromTheme("gradientColorStops");
511
+ const gradientColorStopPositions = fromTheme("gradientColorStopPositions");
512
+ const inset = fromTheme("inset");
513
+ const margin = fromTheme("margin");
514
+ const opacity = fromTheme("opacity");
515
+ const padding = fromTheme("padding");
516
+ const saturate = fromTheme("saturate");
517
+ const scale = fromTheme("scale");
518
+ const sepia = fromTheme("sepia");
519
+ const skew = fromTheme("skew");
520
+ const space = fromTheme("space");
521
+ const translate = fromTheme("translate");
522
+ const getOverscroll = () => ["auto", "contain", "none"];
523
+ const getOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
524
+ const getSpacingWithAutoAndArbitrary = () => ["auto", isArbitraryValue, spacing];
525
+ const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];
526
+ const getLengthWithEmptyAndArbitrary = () => ["", isLength, isArbitraryLength];
527
+ const getNumberWithAutoAndArbitrary = () => ["auto", isNumber, isArbitraryValue];
528
+ const getPositions = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"];
529
+ const getLineStyles = () => ["solid", "dashed", "dotted", "double", "none"];
530
+ const getBlendModes = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
531
+ const getAlign = () => ["start", "end", "center", "between", "around", "evenly", "stretch"];
532
+ const getZeroAndEmpty = () => ["", "0", isArbitraryValue];
533
+ const getBreaks = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
534
+ const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];
535
+ return {
536
+ cacheSize: 500,
537
+ separator: ":",
538
+ theme: {
539
+ colors: [isAny],
540
+ spacing: [isLength, isArbitraryLength],
541
+ blur: ["none", "", isTshirtSize, isArbitraryValue],
542
+ brightness: getNumberAndArbitrary(),
543
+ borderColor: [colors],
544
+ borderRadius: ["none", "", "full", isTshirtSize, isArbitraryValue],
545
+ borderSpacing: getSpacingWithArbitrary(),
546
+ borderWidth: getLengthWithEmptyAndArbitrary(),
547
+ contrast: getNumberAndArbitrary(),
548
+ grayscale: getZeroAndEmpty(),
549
+ hueRotate: getNumberAndArbitrary(),
550
+ invert: getZeroAndEmpty(),
551
+ gap: getSpacingWithArbitrary(),
552
+ gradientColorStops: [colors],
553
+ gradientColorStopPositions: [isPercent, isArbitraryLength],
554
+ inset: getSpacingWithAutoAndArbitrary(),
555
+ margin: getSpacingWithAutoAndArbitrary(),
556
+ opacity: getNumberAndArbitrary(),
557
+ padding: getSpacingWithArbitrary(),
558
+ saturate: getNumberAndArbitrary(),
559
+ scale: getNumberAndArbitrary(),
560
+ sepia: getZeroAndEmpty(),
561
+ skew: getNumberAndArbitrary(),
562
+ space: getSpacingWithArbitrary(),
563
+ translate: getSpacingWithArbitrary()
564
+ },
565
+ classGroups: {
566
+ // Layout
567
+ /**
568
+ * Aspect Ratio
569
+ * @see https://tailwindcss.com/docs/aspect-ratio
570
+ */
571
+ aspect: [{
572
+ aspect: ["auto", "square", "video", isArbitraryValue]
573
+ }],
574
+ /**
575
+ * Container
576
+ * @see https://tailwindcss.com/docs/container
577
+ */
578
+ container: ["container"],
579
+ /**
580
+ * Columns
581
+ * @see https://tailwindcss.com/docs/columns
582
+ */
583
+ columns: [{
584
+ columns: [isTshirtSize]
585
+ }],
586
+ /**
587
+ * Break After
588
+ * @see https://tailwindcss.com/docs/break-after
589
+ */
590
+ "break-after": [{
591
+ "break-after": getBreaks()
592
+ }],
593
+ /**
594
+ * Break Before
595
+ * @see https://tailwindcss.com/docs/break-before
596
+ */
597
+ "break-before": [{
598
+ "break-before": getBreaks()
599
+ }],
600
+ /**
601
+ * Break Inside
602
+ * @see https://tailwindcss.com/docs/break-inside
603
+ */
604
+ "break-inside": [{
605
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
606
+ }],
607
+ /**
608
+ * Box Decoration Break
609
+ * @see https://tailwindcss.com/docs/box-decoration-break
610
+ */
611
+ "box-decoration": [{
612
+ "box-decoration": ["slice", "clone"]
613
+ }],
614
+ /**
615
+ * Box Sizing
616
+ * @see https://tailwindcss.com/docs/box-sizing
617
+ */
618
+ box: [{
619
+ box: ["border", "content"]
620
+ }],
621
+ /**
622
+ * Display
623
+ * @see https://tailwindcss.com/docs/display
624
+ */
625
+ 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"],
626
+ /**
627
+ * Floats
628
+ * @see https://tailwindcss.com/docs/float
629
+ */
630
+ float: [{
631
+ float: ["right", "left", "none", "start", "end"]
632
+ }],
633
+ /**
634
+ * Clear
635
+ * @see https://tailwindcss.com/docs/clear
636
+ */
637
+ clear: [{
638
+ clear: ["left", "right", "both", "none", "start", "end"]
639
+ }],
640
+ /**
641
+ * Isolation
642
+ * @see https://tailwindcss.com/docs/isolation
643
+ */
644
+ isolation: ["isolate", "isolation-auto"],
645
+ /**
646
+ * Object Fit
647
+ * @see https://tailwindcss.com/docs/object-fit
648
+ */
649
+ "object-fit": [{
650
+ object: ["contain", "cover", "fill", "none", "scale-down"]
651
+ }],
652
+ /**
653
+ * Object Position
654
+ * @see https://tailwindcss.com/docs/object-position
655
+ */
656
+ "object-position": [{
657
+ object: [...getPositions(), isArbitraryValue]
658
+ }],
659
+ /**
660
+ * Overflow
661
+ * @see https://tailwindcss.com/docs/overflow
662
+ */
663
+ overflow: [{
664
+ overflow: getOverflow()
665
+ }],
666
+ /**
667
+ * Overflow X
668
+ * @see https://tailwindcss.com/docs/overflow
669
+ */
670
+ "overflow-x": [{
671
+ "overflow-x": getOverflow()
672
+ }],
673
+ /**
674
+ * Overflow Y
675
+ * @see https://tailwindcss.com/docs/overflow
676
+ */
677
+ "overflow-y": [{
678
+ "overflow-y": getOverflow()
679
+ }],
680
+ /**
681
+ * Overscroll Behavior
682
+ * @see https://tailwindcss.com/docs/overscroll-behavior
683
+ */
684
+ overscroll: [{
685
+ overscroll: getOverscroll()
686
+ }],
687
+ /**
688
+ * Overscroll Behavior X
689
+ * @see https://tailwindcss.com/docs/overscroll-behavior
690
+ */
691
+ "overscroll-x": [{
692
+ "overscroll-x": getOverscroll()
693
+ }],
694
+ /**
695
+ * Overscroll Behavior Y
696
+ * @see https://tailwindcss.com/docs/overscroll-behavior
697
+ */
698
+ "overscroll-y": [{
699
+ "overscroll-y": getOverscroll()
700
+ }],
701
+ /**
702
+ * Position
703
+ * @see https://tailwindcss.com/docs/position
704
+ */
705
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
706
+ /**
707
+ * Top / Right / Bottom / Left
708
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
709
+ */
710
+ inset: [{
711
+ inset: [inset]
712
+ }],
713
+ /**
714
+ * Right / Left
715
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
716
+ */
717
+ "inset-x": [{
718
+ "inset-x": [inset]
719
+ }],
720
+ /**
721
+ * Top / Bottom
722
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
723
+ */
724
+ "inset-y": [{
725
+ "inset-y": [inset]
726
+ }],
727
+ /**
728
+ * Start
729
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
730
+ */
731
+ start: [{
732
+ start: [inset]
733
+ }],
734
+ /**
735
+ * End
736
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
737
+ */
738
+ end: [{
739
+ end: [inset]
740
+ }],
741
+ /**
742
+ * Top
743
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
744
+ */
745
+ top: [{
746
+ top: [inset]
747
+ }],
748
+ /**
749
+ * Right
750
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
751
+ */
752
+ right: [{
753
+ right: [inset]
754
+ }],
755
+ /**
756
+ * Bottom
757
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
758
+ */
759
+ bottom: [{
760
+ bottom: [inset]
761
+ }],
762
+ /**
763
+ * Left
764
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
765
+ */
766
+ left: [{
767
+ left: [inset]
768
+ }],
769
+ /**
770
+ * Visibility
771
+ * @see https://tailwindcss.com/docs/visibility
772
+ */
773
+ visibility: ["visible", "invisible", "collapse"],
774
+ /**
775
+ * Z-Index
776
+ * @see https://tailwindcss.com/docs/z-index
777
+ */
778
+ z: [{
779
+ z: ["auto", isInteger, isArbitraryValue]
780
+ }],
781
+ // Flexbox and Grid
782
+ /**
783
+ * Flex Basis
784
+ * @see https://tailwindcss.com/docs/flex-basis
785
+ */
786
+ basis: [{
787
+ basis: getSpacingWithAutoAndArbitrary()
788
+ }],
789
+ /**
790
+ * Flex Direction
791
+ * @see https://tailwindcss.com/docs/flex-direction
792
+ */
793
+ "flex-direction": [{
794
+ flex: ["row", "row-reverse", "col", "col-reverse"]
795
+ }],
796
+ /**
797
+ * Flex Wrap
798
+ * @see https://tailwindcss.com/docs/flex-wrap
799
+ */
800
+ "flex-wrap": [{
801
+ flex: ["wrap", "wrap-reverse", "nowrap"]
802
+ }],
803
+ /**
804
+ * Flex
805
+ * @see https://tailwindcss.com/docs/flex
806
+ */
807
+ flex: [{
808
+ flex: ["1", "auto", "initial", "none", isArbitraryValue]
809
+ }],
810
+ /**
811
+ * Flex Grow
812
+ * @see https://tailwindcss.com/docs/flex-grow
813
+ */
814
+ grow: [{
815
+ grow: getZeroAndEmpty()
816
+ }],
817
+ /**
818
+ * Flex Shrink
819
+ * @see https://tailwindcss.com/docs/flex-shrink
820
+ */
821
+ shrink: [{
822
+ shrink: getZeroAndEmpty()
823
+ }],
824
+ /**
825
+ * Order
826
+ * @see https://tailwindcss.com/docs/order
827
+ */
828
+ order: [{
829
+ order: ["first", "last", "none", isInteger, isArbitraryValue]
830
+ }],
831
+ /**
832
+ * Grid Template Columns
833
+ * @see https://tailwindcss.com/docs/grid-template-columns
834
+ */
835
+ "grid-cols": [{
836
+ "grid-cols": [isAny]
837
+ }],
838
+ /**
839
+ * Grid Column Start / End
840
+ * @see https://tailwindcss.com/docs/grid-column
841
+ */
842
+ "col-start-end": [{
843
+ col: ["auto", {
844
+ span: ["full", isInteger, isArbitraryValue]
845
+ }, isArbitraryValue]
846
+ }],
847
+ /**
848
+ * Grid Column Start
849
+ * @see https://tailwindcss.com/docs/grid-column
850
+ */
851
+ "col-start": [{
852
+ "col-start": getNumberWithAutoAndArbitrary()
853
+ }],
854
+ /**
855
+ * Grid Column End
856
+ * @see https://tailwindcss.com/docs/grid-column
857
+ */
858
+ "col-end": [{
859
+ "col-end": getNumberWithAutoAndArbitrary()
860
+ }],
861
+ /**
862
+ * Grid Template Rows
863
+ * @see https://tailwindcss.com/docs/grid-template-rows
864
+ */
865
+ "grid-rows": [{
866
+ "grid-rows": [isAny]
867
+ }],
868
+ /**
869
+ * Grid Row Start / End
870
+ * @see https://tailwindcss.com/docs/grid-row
871
+ */
872
+ "row-start-end": [{
873
+ row: ["auto", {
874
+ span: [isInteger, isArbitraryValue]
875
+ }, isArbitraryValue]
876
+ }],
877
+ /**
878
+ * Grid Row Start
879
+ * @see https://tailwindcss.com/docs/grid-row
880
+ */
881
+ "row-start": [{
882
+ "row-start": getNumberWithAutoAndArbitrary()
883
+ }],
884
+ /**
885
+ * Grid Row End
886
+ * @see https://tailwindcss.com/docs/grid-row
887
+ */
888
+ "row-end": [{
889
+ "row-end": getNumberWithAutoAndArbitrary()
890
+ }],
891
+ /**
892
+ * Grid Auto Flow
893
+ * @see https://tailwindcss.com/docs/grid-auto-flow
894
+ */
895
+ "grid-flow": [{
896
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
897
+ }],
898
+ /**
899
+ * Grid Auto Columns
900
+ * @see https://tailwindcss.com/docs/grid-auto-columns
901
+ */
902
+ "auto-cols": [{
903
+ "auto-cols": ["auto", "min", "max", "fr", isArbitraryValue]
904
+ }],
905
+ /**
906
+ * Grid Auto Rows
907
+ * @see https://tailwindcss.com/docs/grid-auto-rows
908
+ */
909
+ "auto-rows": [{
910
+ "auto-rows": ["auto", "min", "max", "fr", isArbitraryValue]
911
+ }],
912
+ /**
913
+ * Gap
914
+ * @see https://tailwindcss.com/docs/gap
915
+ */
916
+ gap: [{
917
+ gap: [gap]
918
+ }],
919
+ /**
920
+ * Gap X
921
+ * @see https://tailwindcss.com/docs/gap
922
+ */
923
+ "gap-x": [{
924
+ "gap-x": [gap]
925
+ }],
926
+ /**
927
+ * Gap Y
928
+ * @see https://tailwindcss.com/docs/gap
929
+ */
930
+ "gap-y": [{
931
+ "gap-y": [gap]
932
+ }],
933
+ /**
934
+ * Justify Content
935
+ * @see https://tailwindcss.com/docs/justify-content
936
+ */
937
+ "justify-content": [{
938
+ justify: ["normal", ...getAlign()]
939
+ }],
940
+ /**
941
+ * Justify Items
942
+ * @see https://tailwindcss.com/docs/justify-items
943
+ */
944
+ "justify-items": [{
945
+ "justify-items": ["start", "end", "center", "stretch"]
946
+ }],
947
+ /**
948
+ * Justify Self
949
+ * @see https://tailwindcss.com/docs/justify-self
950
+ */
951
+ "justify-self": [{
952
+ "justify-self": ["auto", "start", "end", "center", "stretch"]
953
+ }],
954
+ /**
955
+ * Align Content
956
+ * @see https://tailwindcss.com/docs/align-content
957
+ */
958
+ "align-content": [{
959
+ content: ["normal", ...getAlign(), "baseline"]
960
+ }],
961
+ /**
962
+ * Align Items
963
+ * @see https://tailwindcss.com/docs/align-items
964
+ */
965
+ "align-items": [{
966
+ items: ["start", "end", "center", "baseline", "stretch"]
967
+ }],
968
+ /**
969
+ * Align Self
970
+ * @see https://tailwindcss.com/docs/align-self
971
+ */
972
+ "align-self": [{
973
+ self: ["auto", "start", "end", "center", "stretch", "baseline"]
974
+ }],
975
+ /**
976
+ * Place Content
977
+ * @see https://tailwindcss.com/docs/place-content
978
+ */
979
+ "place-content": [{
980
+ "place-content": [...getAlign(), "baseline"]
981
+ }],
982
+ /**
983
+ * Place Items
984
+ * @see https://tailwindcss.com/docs/place-items
985
+ */
986
+ "place-items": [{
987
+ "place-items": ["start", "end", "center", "baseline", "stretch"]
988
+ }],
989
+ /**
990
+ * Place Self
991
+ * @see https://tailwindcss.com/docs/place-self
992
+ */
993
+ "place-self": [{
994
+ "place-self": ["auto", "start", "end", "center", "stretch"]
995
+ }],
996
+ // Spacing
997
+ /**
998
+ * Padding
999
+ * @see https://tailwindcss.com/docs/padding
1000
+ */
1001
+ p: [{
1002
+ p: [padding]
1003
+ }],
1004
+ /**
1005
+ * Padding X
1006
+ * @see https://tailwindcss.com/docs/padding
1007
+ */
1008
+ px: [{
1009
+ px: [padding]
1010
+ }],
1011
+ /**
1012
+ * Padding Y
1013
+ * @see https://tailwindcss.com/docs/padding
1014
+ */
1015
+ py: [{
1016
+ py: [padding]
1017
+ }],
1018
+ /**
1019
+ * Padding Start
1020
+ * @see https://tailwindcss.com/docs/padding
1021
+ */
1022
+ ps: [{
1023
+ ps: [padding]
1024
+ }],
1025
+ /**
1026
+ * Padding End
1027
+ * @see https://tailwindcss.com/docs/padding
1028
+ */
1029
+ pe: [{
1030
+ pe: [padding]
1031
+ }],
1032
+ /**
1033
+ * Padding Top
1034
+ * @see https://tailwindcss.com/docs/padding
1035
+ */
1036
+ pt: [{
1037
+ pt: [padding]
1038
+ }],
1039
+ /**
1040
+ * Padding Right
1041
+ * @see https://tailwindcss.com/docs/padding
1042
+ */
1043
+ pr: [{
1044
+ pr: [padding]
1045
+ }],
1046
+ /**
1047
+ * Padding Bottom
1048
+ * @see https://tailwindcss.com/docs/padding
1049
+ */
1050
+ pb: [{
1051
+ pb: [padding]
1052
+ }],
1053
+ /**
1054
+ * Padding Left
1055
+ * @see https://tailwindcss.com/docs/padding
1056
+ */
1057
+ pl: [{
1058
+ pl: [padding]
1059
+ }],
1060
+ /**
1061
+ * Margin
1062
+ * @see https://tailwindcss.com/docs/margin
1063
+ */
1064
+ m: [{
1065
+ m: [margin]
1066
+ }],
1067
+ /**
1068
+ * Margin X
1069
+ * @see https://tailwindcss.com/docs/margin
1070
+ */
1071
+ mx: [{
1072
+ mx: [margin]
1073
+ }],
1074
+ /**
1075
+ * Margin Y
1076
+ * @see https://tailwindcss.com/docs/margin
1077
+ */
1078
+ my: [{
1079
+ my: [margin]
1080
+ }],
1081
+ /**
1082
+ * Margin Start
1083
+ * @see https://tailwindcss.com/docs/margin
1084
+ */
1085
+ ms: [{
1086
+ ms: [margin]
1087
+ }],
1088
+ /**
1089
+ * Margin End
1090
+ * @see https://tailwindcss.com/docs/margin
1091
+ */
1092
+ me: [{
1093
+ me: [margin]
1094
+ }],
1095
+ /**
1096
+ * Margin Top
1097
+ * @see https://tailwindcss.com/docs/margin
1098
+ */
1099
+ mt: [{
1100
+ mt: [margin]
1101
+ }],
1102
+ /**
1103
+ * Margin Right
1104
+ * @see https://tailwindcss.com/docs/margin
1105
+ */
1106
+ mr: [{
1107
+ mr: [margin]
1108
+ }],
1109
+ /**
1110
+ * Margin Bottom
1111
+ * @see https://tailwindcss.com/docs/margin
1112
+ */
1113
+ mb: [{
1114
+ mb: [margin]
1115
+ }],
1116
+ /**
1117
+ * Margin Left
1118
+ * @see https://tailwindcss.com/docs/margin
1119
+ */
1120
+ ml: [{
1121
+ ml: [margin]
1122
+ }],
1123
+ /**
1124
+ * Space Between X
1125
+ * @see https://tailwindcss.com/docs/space
1126
+ */
1127
+ "space-x": [{
1128
+ "space-x": [space]
1129
+ }],
1130
+ /**
1131
+ * Space Between X Reverse
1132
+ * @see https://tailwindcss.com/docs/space
1133
+ */
1134
+ "space-x-reverse": ["space-x-reverse"],
1135
+ /**
1136
+ * Space Between Y
1137
+ * @see https://tailwindcss.com/docs/space
1138
+ */
1139
+ "space-y": [{
1140
+ "space-y": [space]
1141
+ }],
1142
+ /**
1143
+ * Space Between Y Reverse
1144
+ * @see https://tailwindcss.com/docs/space
1145
+ */
1146
+ "space-y-reverse": ["space-y-reverse"],
1147
+ // Sizing
1148
+ /**
1149
+ * Width
1150
+ * @see https://tailwindcss.com/docs/width
1151
+ */
1152
+ w: [{
1153
+ w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", isArbitraryValue, spacing]
1154
+ }],
1155
+ /**
1156
+ * Min-Width
1157
+ * @see https://tailwindcss.com/docs/min-width
1158
+ */
1159
+ "min-w": [{
1160
+ "min-w": [isArbitraryValue, spacing, "min", "max", "fit"]
1161
+ }],
1162
+ /**
1163
+ * Max-Width
1164
+ * @see https://tailwindcss.com/docs/max-width
1165
+ */
1166
+ "max-w": [{
1167
+ "max-w": [isArbitraryValue, spacing, "none", "full", "min", "max", "fit", "prose", {
1168
+ screen: [isTshirtSize]
1169
+ }, isTshirtSize]
1170
+ }],
1171
+ /**
1172
+ * Height
1173
+ * @see https://tailwindcss.com/docs/height
1174
+ */
1175
+ h: [{
1176
+ h: [isArbitraryValue, spacing, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
1177
+ }],
1178
+ /**
1179
+ * Min-Height
1180
+ * @see https://tailwindcss.com/docs/min-height
1181
+ */
1182
+ "min-h": [{
1183
+ "min-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
1184
+ }],
1185
+ /**
1186
+ * Max-Height
1187
+ * @see https://tailwindcss.com/docs/max-height
1188
+ */
1189
+ "max-h": [{
1190
+ "max-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
1191
+ }],
1192
+ /**
1193
+ * Size
1194
+ * @see https://tailwindcss.com/docs/size
1195
+ */
1196
+ size: [{
1197
+ size: [isArbitraryValue, spacing, "auto", "min", "max", "fit"]
1198
+ }],
1199
+ // Typography
1200
+ /**
1201
+ * Font Size
1202
+ * @see https://tailwindcss.com/docs/font-size
1203
+ */
1204
+ "font-size": [{
1205
+ text: ["base", isTshirtSize, isArbitraryLength]
1206
+ }],
1207
+ /**
1208
+ * Font Smoothing
1209
+ * @see https://tailwindcss.com/docs/font-smoothing
1210
+ */
1211
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1212
+ /**
1213
+ * Font Style
1214
+ * @see https://tailwindcss.com/docs/font-style
1215
+ */
1216
+ "font-style": ["italic", "not-italic"],
1217
+ /**
1218
+ * Font Weight
1219
+ * @see https://tailwindcss.com/docs/font-weight
1220
+ */
1221
+ "font-weight": [{
1222
+ font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", isArbitraryNumber]
1223
+ }],
1224
+ /**
1225
+ * Font Family
1226
+ * @see https://tailwindcss.com/docs/font-family
1227
+ */
1228
+ "font-family": [{
1229
+ font: [isAny]
1230
+ }],
1231
+ /**
1232
+ * Font Variant Numeric
1233
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1234
+ */
1235
+ "fvn-normal": ["normal-nums"],
1236
+ /**
1237
+ * Font Variant Numeric
1238
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1239
+ */
1240
+ "fvn-ordinal": ["ordinal"],
1241
+ /**
1242
+ * Font Variant Numeric
1243
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1244
+ */
1245
+ "fvn-slashed-zero": ["slashed-zero"],
1246
+ /**
1247
+ * Font Variant Numeric
1248
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1249
+ */
1250
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
1251
+ /**
1252
+ * Font Variant Numeric
1253
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1254
+ */
1255
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
1256
+ /**
1257
+ * Font Variant Numeric
1258
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1259
+ */
1260
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1261
+ /**
1262
+ * Letter Spacing
1263
+ * @see https://tailwindcss.com/docs/letter-spacing
1264
+ */
1265
+ tracking: [{
1266
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", isArbitraryValue]
1267
+ }],
1268
+ /**
1269
+ * Line Clamp
1270
+ * @see https://tailwindcss.com/docs/line-clamp
1271
+ */
1272
+ "line-clamp": [{
1273
+ "line-clamp": ["none", isNumber, isArbitraryNumber]
1274
+ }],
1275
+ /**
1276
+ * Line Height
1277
+ * @see https://tailwindcss.com/docs/line-height
1278
+ */
1279
+ leading: [{
1280
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose", isLength, isArbitraryValue]
1281
+ }],
1282
+ /**
1283
+ * List Style Image
1284
+ * @see https://tailwindcss.com/docs/list-style-image
1285
+ */
1286
+ "list-image": [{
1287
+ "list-image": ["none", isArbitraryValue]
1288
+ }],
1289
+ /**
1290
+ * List Style Type
1291
+ * @see https://tailwindcss.com/docs/list-style-type
1292
+ */
1293
+ "list-style-type": [{
1294
+ list: ["none", "disc", "decimal", isArbitraryValue]
1295
+ }],
1296
+ /**
1297
+ * List Style Position
1298
+ * @see https://tailwindcss.com/docs/list-style-position
1299
+ */
1300
+ "list-style-position": [{
1301
+ list: ["inside", "outside"]
1302
+ }],
1303
+ /**
1304
+ * Placeholder Color
1305
+ * @deprecated since Tailwind CSS v3.0.0
1306
+ * @see https://tailwindcss.com/docs/placeholder-color
1307
+ */
1308
+ "placeholder-color": [{
1309
+ placeholder: [colors]
1310
+ }],
1311
+ /**
1312
+ * Placeholder Opacity
1313
+ * @see https://tailwindcss.com/docs/placeholder-opacity
1314
+ */
1315
+ "placeholder-opacity": [{
1316
+ "placeholder-opacity": [opacity]
1317
+ }],
1318
+ /**
1319
+ * Text Alignment
1320
+ * @see https://tailwindcss.com/docs/text-align
1321
+ */
1322
+ "text-alignment": [{
1323
+ text: ["left", "center", "right", "justify", "start", "end"]
1324
+ }],
1325
+ /**
1326
+ * Text Color
1327
+ * @see https://tailwindcss.com/docs/text-color
1328
+ */
1329
+ "text-color": [{
1330
+ text: [colors]
1331
+ }],
1332
+ /**
1333
+ * Text Opacity
1334
+ * @see https://tailwindcss.com/docs/text-opacity
1335
+ */
1336
+ "text-opacity": [{
1337
+ "text-opacity": [opacity]
1338
+ }],
1339
+ /**
1340
+ * Text Decoration
1341
+ * @see https://tailwindcss.com/docs/text-decoration
1342
+ */
1343
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1344
+ /**
1345
+ * Text Decoration Style
1346
+ * @see https://tailwindcss.com/docs/text-decoration-style
1347
+ */
1348
+ "text-decoration-style": [{
1349
+ decoration: [...getLineStyles(), "wavy"]
1350
+ }],
1351
+ /**
1352
+ * Text Decoration Thickness
1353
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
1354
+ */
1355
+ "text-decoration-thickness": [{
1356
+ decoration: ["auto", "from-font", isLength, isArbitraryLength]
1357
+ }],
1358
+ /**
1359
+ * Text Underline Offset
1360
+ * @see https://tailwindcss.com/docs/text-underline-offset
1361
+ */
1362
+ "underline-offset": [{
1363
+ "underline-offset": ["auto", isLength, isArbitraryValue]
1364
+ }],
1365
+ /**
1366
+ * Text Decoration Color
1367
+ * @see https://tailwindcss.com/docs/text-decoration-color
1368
+ */
1369
+ "text-decoration-color": [{
1370
+ decoration: [colors]
1371
+ }],
1372
+ /**
1373
+ * Text Transform
1374
+ * @see https://tailwindcss.com/docs/text-transform
1375
+ */
1376
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1377
+ /**
1378
+ * Text Overflow
1379
+ * @see https://tailwindcss.com/docs/text-overflow
1380
+ */
1381
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1382
+ /**
1383
+ * Text Wrap
1384
+ * @see https://tailwindcss.com/docs/text-wrap
1385
+ */
1386
+ "text-wrap": [{
1387
+ text: ["wrap", "nowrap", "balance", "pretty"]
1388
+ }],
1389
+ /**
1390
+ * Text Indent
1391
+ * @see https://tailwindcss.com/docs/text-indent
1392
+ */
1393
+ indent: [{
1394
+ indent: getSpacingWithArbitrary()
1395
+ }],
1396
+ /**
1397
+ * Vertical Alignment
1398
+ * @see https://tailwindcss.com/docs/vertical-align
1399
+ */
1400
+ "vertical-align": [{
1401
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryValue]
1402
+ }],
1403
+ /**
1404
+ * Whitespace
1405
+ * @see https://tailwindcss.com/docs/whitespace
1406
+ */
1407
+ whitespace: [{
1408
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1409
+ }],
1410
+ /**
1411
+ * Word Break
1412
+ * @see https://tailwindcss.com/docs/word-break
1413
+ */
1414
+ break: [{
1415
+ break: ["normal", "words", "all", "keep"]
1416
+ }],
1417
+ /**
1418
+ * Hyphens
1419
+ * @see https://tailwindcss.com/docs/hyphens
1420
+ */
1421
+ hyphens: [{
1422
+ hyphens: ["none", "manual", "auto"]
1423
+ }],
1424
+ /**
1425
+ * Content
1426
+ * @see https://tailwindcss.com/docs/content
1427
+ */
1428
+ content: [{
1429
+ content: ["none", isArbitraryValue]
1430
+ }],
1431
+ // Backgrounds
1432
+ /**
1433
+ * Background Attachment
1434
+ * @see https://tailwindcss.com/docs/background-attachment
1435
+ */
1436
+ "bg-attachment": [{
1437
+ bg: ["fixed", "local", "scroll"]
1438
+ }],
1439
+ /**
1440
+ * Background Clip
1441
+ * @see https://tailwindcss.com/docs/background-clip
1442
+ */
1443
+ "bg-clip": [{
1444
+ "bg-clip": ["border", "padding", "content", "text"]
1445
+ }],
1446
+ /**
1447
+ * Background Opacity
1448
+ * @deprecated since Tailwind CSS v3.0.0
1449
+ * @see https://tailwindcss.com/docs/background-opacity
1450
+ */
1451
+ "bg-opacity": [{
1452
+ "bg-opacity": [opacity]
1453
+ }],
1454
+ /**
1455
+ * Background Origin
1456
+ * @see https://tailwindcss.com/docs/background-origin
1457
+ */
1458
+ "bg-origin": [{
1459
+ "bg-origin": ["border", "padding", "content"]
1460
+ }],
1461
+ /**
1462
+ * Background Position
1463
+ * @see https://tailwindcss.com/docs/background-position
1464
+ */
1465
+ "bg-position": [{
1466
+ bg: [...getPositions(), isArbitraryPosition]
1467
+ }],
1468
+ /**
1469
+ * Background Repeat
1470
+ * @see https://tailwindcss.com/docs/background-repeat
1471
+ */
1472
+ "bg-repeat": [{
1473
+ bg: ["no-repeat", {
1474
+ repeat: ["", "x", "y", "round", "space"]
1475
+ }]
1476
+ }],
1477
+ /**
1478
+ * Background Size
1479
+ * @see https://tailwindcss.com/docs/background-size
1480
+ */
1481
+ "bg-size": [{
1482
+ bg: ["auto", "cover", "contain", isArbitrarySize]
1483
+ }],
1484
+ /**
1485
+ * Background Image
1486
+ * @see https://tailwindcss.com/docs/background-image
1487
+ */
1488
+ "bg-image": [{
1489
+ bg: ["none", {
1490
+ "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1491
+ }, isArbitraryImage]
1492
+ }],
1493
+ /**
1494
+ * Background Color
1495
+ * @see https://tailwindcss.com/docs/background-color
1496
+ */
1497
+ "bg-color": [{
1498
+ bg: [colors]
1499
+ }],
1500
+ /**
1501
+ * Gradient Color Stops From Position
1502
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1503
+ */
1504
+ "gradient-from-pos": [{
1505
+ from: [gradientColorStopPositions]
1506
+ }],
1507
+ /**
1508
+ * Gradient Color Stops Via Position
1509
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1510
+ */
1511
+ "gradient-via-pos": [{
1512
+ via: [gradientColorStopPositions]
1513
+ }],
1514
+ /**
1515
+ * Gradient Color Stops To Position
1516
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1517
+ */
1518
+ "gradient-to-pos": [{
1519
+ to: [gradientColorStopPositions]
1520
+ }],
1521
+ /**
1522
+ * Gradient Color Stops From
1523
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1524
+ */
1525
+ "gradient-from": [{
1526
+ from: [gradientColorStops]
1527
+ }],
1528
+ /**
1529
+ * Gradient Color Stops Via
1530
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1531
+ */
1532
+ "gradient-via": [{
1533
+ via: [gradientColorStops]
1534
+ }],
1535
+ /**
1536
+ * Gradient Color Stops To
1537
+ * @see https://tailwindcss.com/docs/gradient-color-stops
1538
+ */
1539
+ "gradient-to": [{
1540
+ to: [gradientColorStops]
1541
+ }],
1542
+ // Borders
1543
+ /**
1544
+ * Border Radius
1545
+ * @see https://tailwindcss.com/docs/border-radius
1546
+ */
1547
+ rounded: [{
1548
+ rounded: [borderRadius]
1549
+ }],
1550
+ /**
1551
+ * Border Radius Start
1552
+ * @see https://tailwindcss.com/docs/border-radius
1553
+ */
1554
+ "rounded-s": [{
1555
+ "rounded-s": [borderRadius]
1556
+ }],
1557
+ /**
1558
+ * Border Radius End
1559
+ * @see https://tailwindcss.com/docs/border-radius
1560
+ */
1561
+ "rounded-e": [{
1562
+ "rounded-e": [borderRadius]
1563
+ }],
1564
+ /**
1565
+ * Border Radius Top
1566
+ * @see https://tailwindcss.com/docs/border-radius
1567
+ */
1568
+ "rounded-t": [{
1569
+ "rounded-t": [borderRadius]
1570
+ }],
1571
+ /**
1572
+ * Border Radius Right
1573
+ * @see https://tailwindcss.com/docs/border-radius
1574
+ */
1575
+ "rounded-r": [{
1576
+ "rounded-r": [borderRadius]
1577
+ }],
1578
+ /**
1579
+ * Border Radius Bottom
1580
+ * @see https://tailwindcss.com/docs/border-radius
1581
+ */
1582
+ "rounded-b": [{
1583
+ "rounded-b": [borderRadius]
1584
+ }],
1585
+ /**
1586
+ * Border Radius Left
1587
+ * @see https://tailwindcss.com/docs/border-radius
1588
+ */
1589
+ "rounded-l": [{
1590
+ "rounded-l": [borderRadius]
1591
+ }],
1592
+ /**
1593
+ * Border Radius Start Start
1594
+ * @see https://tailwindcss.com/docs/border-radius
1595
+ */
1596
+ "rounded-ss": [{
1597
+ "rounded-ss": [borderRadius]
1598
+ }],
1599
+ /**
1600
+ * Border Radius Start End
1601
+ * @see https://tailwindcss.com/docs/border-radius
1602
+ */
1603
+ "rounded-se": [{
1604
+ "rounded-se": [borderRadius]
1605
+ }],
1606
+ /**
1607
+ * Border Radius End End
1608
+ * @see https://tailwindcss.com/docs/border-radius
1609
+ */
1610
+ "rounded-ee": [{
1611
+ "rounded-ee": [borderRadius]
1612
+ }],
1613
+ /**
1614
+ * Border Radius End Start
1615
+ * @see https://tailwindcss.com/docs/border-radius
1616
+ */
1617
+ "rounded-es": [{
1618
+ "rounded-es": [borderRadius]
1619
+ }],
1620
+ /**
1621
+ * Border Radius Top Left
1622
+ * @see https://tailwindcss.com/docs/border-radius
1623
+ */
1624
+ "rounded-tl": [{
1625
+ "rounded-tl": [borderRadius]
1626
+ }],
1627
+ /**
1628
+ * Border Radius Top Right
1629
+ * @see https://tailwindcss.com/docs/border-radius
1630
+ */
1631
+ "rounded-tr": [{
1632
+ "rounded-tr": [borderRadius]
1633
+ }],
1634
+ /**
1635
+ * Border Radius Bottom Right
1636
+ * @see https://tailwindcss.com/docs/border-radius
1637
+ */
1638
+ "rounded-br": [{
1639
+ "rounded-br": [borderRadius]
1640
+ }],
1641
+ /**
1642
+ * Border Radius Bottom Left
1643
+ * @see https://tailwindcss.com/docs/border-radius
1644
+ */
1645
+ "rounded-bl": [{
1646
+ "rounded-bl": [borderRadius]
1647
+ }],
1648
+ /**
1649
+ * Border Width
1650
+ * @see https://tailwindcss.com/docs/border-width
1651
+ */
1652
+ "border-w": [{
1653
+ border: [borderWidth]
1654
+ }],
1655
+ /**
1656
+ * Border Width X
1657
+ * @see https://tailwindcss.com/docs/border-width
1658
+ */
1659
+ "border-w-x": [{
1660
+ "border-x": [borderWidth]
1661
+ }],
1662
+ /**
1663
+ * Border Width Y
1664
+ * @see https://tailwindcss.com/docs/border-width
1665
+ */
1666
+ "border-w-y": [{
1667
+ "border-y": [borderWidth]
1668
+ }],
1669
+ /**
1670
+ * Border Width Start
1671
+ * @see https://tailwindcss.com/docs/border-width
1672
+ */
1673
+ "border-w-s": [{
1674
+ "border-s": [borderWidth]
1675
+ }],
1676
+ /**
1677
+ * Border Width End
1678
+ * @see https://tailwindcss.com/docs/border-width
1679
+ */
1680
+ "border-w-e": [{
1681
+ "border-e": [borderWidth]
1682
+ }],
1683
+ /**
1684
+ * Border Width Top
1685
+ * @see https://tailwindcss.com/docs/border-width
1686
+ */
1687
+ "border-w-t": [{
1688
+ "border-t": [borderWidth]
1689
+ }],
1690
+ /**
1691
+ * Border Width Right
1692
+ * @see https://tailwindcss.com/docs/border-width
1693
+ */
1694
+ "border-w-r": [{
1695
+ "border-r": [borderWidth]
1696
+ }],
1697
+ /**
1698
+ * Border Width Bottom
1699
+ * @see https://tailwindcss.com/docs/border-width
1700
+ */
1701
+ "border-w-b": [{
1702
+ "border-b": [borderWidth]
1703
+ }],
1704
+ /**
1705
+ * Border Width Left
1706
+ * @see https://tailwindcss.com/docs/border-width
1707
+ */
1708
+ "border-w-l": [{
1709
+ "border-l": [borderWidth]
1710
+ }],
1711
+ /**
1712
+ * Border Opacity
1713
+ * @see https://tailwindcss.com/docs/border-opacity
1714
+ */
1715
+ "border-opacity": [{
1716
+ "border-opacity": [opacity]
1717
+ }],
1718
+ /**
1719
+ * Border Style
1720
+ * @see https://tailwindcss.com/docs/border-style
1721
+ */
1722
+ "border-style": [{
1723
+ border: [...getLineStyles(), "hidden"]
1724
+ }],
1725
+ /**
1726
+ * Divide Width X
1727
+ * @see https://tailwindcss.com/docs/divide-width
1728
+ */
1729
+ "divide-x": [{
1730
+ "divide-x": [borderWidth]
1731
+ }],
1732
+ /**
1733
+ * Divide Width X Reverse
1734
+ * @see https://tailwindcss.com/docs/divide-width
1735
+ */
1736
+ "divide-x-reverse": ["divide-x-reverse"],
1737
+ /**
1738
+ * Divide Width Y
1739
+ * @see https://tailwindcss.com/docs/divide-width
1740
+ */
1741
+ "divide-y": [{
1742
+ "divide-y": [borderWidth]
1743
+ }],
1744
+ /**
1745
+ * Divide Width Y Reverse
1746
+ * @see https://tailwindcss.com/docs/divide-width
1747
+ */
1748
+ "divide-y-reverse": ["divide-y-reverse"],
1749
+ /**
1750
+ * Divide Opacity
1751
+ * @see https://tailwindcss.com/docs/divide-opacity
1752
+ */
1753
+ "divide-opacity": [{
1754
+ "divide-opacity": [opacity]
1755
+ }],
1756
+ /**
1757
+ * Divide Style
1758
+ * @see https://tailwindcss.com/docs/divide-style
1759
+ */
1760
+ "divide-style": [{
1761
+ divide: getLineStyles()
1762
+ }],
1763
+ /**
1764
+ * Border Color
1765
+ * @see https://tailwindcss.com/docs/border-color
1766
+ */
1767
+ "border-color": [{
1768
+ border: [borderColor]
1769
+ }],
1770
+ /**
1771
+ * Border Color X
1772
+ * @see https://tailwindcss.com/docs/border-color
1773
+ */
1774
+ "border-color-x": [{
1775
+ "border-x": [borderColor]
1776
+ }],
1777
+ /**
1778
+ * Border Color Y
1779
+ * @see https://tailwindcss.com/docs/border-color
1780
+ */
1781
+ "border-color-y": [{
1782
+ "border-y": [borderColor]
1783
+ }],
1784
+ /**
1785
+ * Border Color S
1786
+ * @see https://tailwindcss.com/docs/border-color
1787
+ */
1788
+ "border-color-s": [{
1789
+ "border-s": [borderColor]
1790
+ }],
1791
+ /**
1792
+ * Border Color E
1793
+ * @see https://tailwindcss.com/docs/border-color
1794
+ */
1795
+ "border-color-e": [{
1796
+ "border-e": [borderColor]
1797
+ }],
1798
+ /**
1799
+ * Border Color Top
1800
+ * @see https://tailwindcss.com/docs/border-color
1801
+ */
1802
+ "border-color-t": [{
1803
+ "border-t": [borderColor]
1804
+ }],
1805
+ /**
1806
+ * Border Color Right
1807
+ * @see https://tailwindcss.com/docs/border-color
1808
+ */
1809
+ "border-color-r": [{
1810
+ "border-r": [borderColor]
1811
+ }],
1812
+ /**
1813
+ * Border Color Bottom
1814
+ * @see https://tailwindcss.com/docs/border-color
1815
+ */
1816
+ "border-color-b": [{
1817
+ "border-b": [borderColor]
1818
+ }],
1819
+ /**
1820
+ * Border Color Left
1821
+ * @see https://tailwindcss.com/docs/border-color
1822
+ */
1823
+ "border-color-l": [{
1824
+ "border-l": [borderColor]
1825
+ }],
1826
+ /**
1827
+ * Divide Color
1828
+ * @see https://tailwindcss.com/docs/divide-color
1829
+ */
1830
+ "divide-color": [{
1831
+ divide: [borderColor]
1832
+ }],
1833
+ /**
1834
+ * Outline Style
1835
+ * @see https://tailwindcss.com/docs/outline-style
1836
+ */
1837
+ "outline-style": [{
1838
+ outline: ["", ...getLineStyles()]
1839
+ }],
1840
+ /**
1841
+ * Outline Offset
1842
+ * @see https://tailwindcss.com/docs/outline-offset
1843
+ */
1844
+ "outline-offset": [{
1845
+ "outline-offset": [isLength, isArbitraryValue]
1846
+ }],
1847
+ /**
1848
+ * Outline Width
1849
+ * @see https://tailwindcss.com/docs/outline-width
1850
+ */
1851
+ "outline-w": [{
1852
+ outline: [isLength, isArbitraryLength]
1853
+ }],
1854
+ /**
1855
+ * Outline Color
1856
+ * @see https://tailwindcss.com/docs/outline-color
1857
+ */
1858
+ "outline-color": [{
1859
+ outline: [colors]
1860
+ }],
1861
+ /**
1862
+ * Ring Width
1863
+ * @see https://tailwindcss.com/docs/ring-width
1864
+ */
1865
+ "ring-w": [{
1866
+ ring: getLengthWithEmptyAndArbitrary()
1867
+ }],
1868
+ /**
1869
+ * Ring Width Inset
1870
+ * @see https://tailwindcss.com/docs/ring-width
1871
+ */
1872
+ "ring-w-inset": ["ring-inset"],
1873
+ /**
1874
+ * Ring Color
1875
+ * @see https://tailwindcss.com/docs/ring-color
1876
+ */
1877
+ "ring-color": [{
1878
+ ring: [colors]
1879
+ }],
1880
+ /**
1881
+ * Ring Opacity
1882
+ * @see https://tailwindcss.com/docs/ring-opacity
1883
+ */
1884
+ "ring-opacity": [{
1885
+ "ring-opacity": [opacity]
1886
+ }],
1887
+ /**
1888
+ * Ring Offset Width
1889
+ * @see https://tailwindcss.com/docs/ring-offset-width
1890
+ */
1891
+ "ring-offset-w": [{
1892
+ "ring-offset": [isLength, isArbitraryLength]
1893
+ }],
1894
+ /**
1895
+ * Ring Offset Color
1896
+ * @see https://tailwindcss.com/docs/ring-offset-color
1897
+ */
1898
+ "ring-offset-color": [{
1899
+ "ring-offset": [colors]
1900
+ }],
1901
+ // Effects
1902
+ /**
1903
+ * Box Shadow
1904
+ * @see https://tailwindcss.com/docs/box-shadow
1905
+ */
1906
+ shadow: [{
1907
+ shadow: ["", "inner", "none", isTshirtSize, isArbitraryShadow]
1908
+ }],
1909
+ /**
1910
+ * Box Shadow Color
1911
+ * @see https://tailwindcss.com/docs/box-shadow-color
1912
+ */
1913
+ "shadow-color": [{
1914
+ shadow: [isAny]
1915
+ }],
1916
+ /**
1917
+ * Opacity
1918
+ * @see https://tailwindcss.com/docs/opacity
1919
+ */
1920
+ opacity: [{
1921
+ opacity: [opacity]
1922
+ }],
1923
+ /**
1924
+ * Mix Blend Mode
1925
+ * @see https://tailwindcss.com/docs/mix-blend-mode
1926
+ */
1927
+ "mix-blend": [{
1928
+ "mix-blend": [...getBlendModes(), "plus-lighter", "plus-darker"]
1929
+ }],
1930
+ /**
1931
+ * Background Blend Mode
1932
+ * @see https://tailwindcss.com/docs/background-blend-mode
1933
+ */
1934
+ "bg-blend": [{
1935
+ "bg-blend": getBlendModes()
1936
+ }],
1937
+ // Filters
1938
+ /**
1939
+ * Filter
1940
+ * @deprecated since Tailwind CSS v3.0.0
1941
+ * @see https://tailwindcss.com/docs/filter
1942
+ */
1943
+ filter: [{
1944
+ filter: ["", "none"]
1945
+ }],
1946
+ /**
1947
+ * Blur
1948
+ * @see https://tailwindcss.com/docs/blur
1949
+ */
1950
+ blur: [{
1951
+ blur: [blur]
1952
+ }],
1953
+ /**
1954
+ * Brightness
1955
+ * @see https://tailwindcss.com/docs/brightness
1956
+ */
1957
+ brightness: [{
1958
+ brightness: [brightness]
1959
+ }],
1960
+ /**
1961
+ * Contrast
1962
+ * @see https://tailwindcss.com/docs/contrast
1963
+ */
1964
+ contrast: [{
1965
+ contrast: [contrast]
1966
+ }],
1967
+ /**
1968
+ * Drop Shadow
1969
+ * @see https://tailwindcss.com/docs/drop-shadow
1970
+ */
1971
+ "drop-shadow": [{
1972
+ "drop-shadow": ["", "none", isTshirtSize, isArbitraryValue]
1973
+ }],
1974
+ /**
1975
+ * Grayscale
1976
+ * @see https://tailwindcss.com/docs/grayscale
1977
+ */
1978
+ grayscale: [{
1979
+ grayscale: [grayscale]
1980
+ }],
1981
+ /**
1982
+ * Hue Rotate
1983
+ * @see https://tailwindcss.com/docs/hue-rotate
1984
+ */
1985
+ "hue-rotate": [{
1986
+ "hue-rotate": [hueRotate]
1987
+ }],
1988
+ /**
1989
+ * Invert
1990
+ * @see https://tailwindcss.com/docs/invert
1991
+ */
1992
+ invert: [{
1993
+ invert: [invert]
1994
+ }],
1995
+ /**
1996
+ * Saturate
1997
+ * @see https://tailwindcss.com/docs/saturate
1998
+ */
1999
+ saturate: [{
2000
+ saturate: [saturate]
2001
+ }],
2002
+ /**
2003
+ * Sepia
2004
+ * @see https://tailwindcss.com/docs/sepia
2005
+ */
2006
+ sepia: [{
2007
+ sepia: [sepia]
2008
+ }],
2009
+ /**
2010
+ * Backdrop Filter
2011
+ * @deprecated since Tailwind CSS v3.0.0
2012
+ * @see https://tailwindcss.com/docs/backdrop-filter
2013
+ */
2014
+ "backdrop-filter": [{
2015
+ "backdrop-filter": ["", "none"]
2016
+ }],
2017
+ /**
2018
+ * Backdrop Blur
2019
+ * @see https://tailwindcss.com/docs/backdrop-blur
2020
+ */
2021
+ "backdrop-blur": [{
2022
+ "backdrop-blur": [blur]
2023
+ }],
2024
+ /**
2025
+ * Backdrop Brightness
2026
+ * @see https://tailwindcss.com/docs/backdrop-brightness
2027
+ */
2028
+ "backdrop-brightness": [{
2029
+ "backdrop-brightness": [brightness]
2030
+ }],
2031
+ /**
2032
+ * Backdrop Contrast
2033
+ * @see https://tailwindcss.com/docs/backdrop-contrast
2034
+ */
2035
+ "backdrop-contrast": [{
2036
+ "backdrop-contrast": [contrast]
2037
+ }],
2038
+ /**
2039
+ * Backdrop Grayscale
2040
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2041
+ */
2042
+ "backdrop-grayscale": [{
2043
+ "backdrop-grayscale": [grayscale]
2044
+ }],
2045
+ /**
2046
+ * Backdrop Hue Rotate
2047
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2048
+ */
2049
+ "backdrop-hue-rotate": [{
2050
+ "backdrop-hue-rotate": [hueRotate]
2051
+ }],
2052
+ /**
2053
+ * Backdrop Invert
2054
+ * @see https://tailwindcss.com/docs/backdrop-invert
2055
+ */
2056
+ "backdrop-invert": [{
2057
+ "backdrop-invert": [invert]
2058
+ }],
2059
+ /**
2060
+ * Backdrop Opacity
2061
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2062
+ */
2063
+ "backdrop-opacity": [{
2064
+ "backdrop-opacity": [opacity]
2065
+ }],
2066
+ /**
2067
+ * Backdrop Saturate
2068
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2069
+ */
2070
+ "backdrop-saturate": [{
2071
+ "backdrop-saturate": [saturate]
2072
+ }],
2073
+ /**
2074
+ * Backdrop Sepia
2075
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2076
+ */
2077
+ "backdrop-sepia": [{
2078
+ "backdrop-sepia": [sepia]
2079
+ }],
2080
+ // Tables
2081
+ /**
2082
+ * Border Collapse
2083
+ * @see https://tailwindcss.com/docs/border-collapse
2084
+ */
2085
+ "border-collapse": [{
2086
+ border: ["collapse", "separate"]
2087
+ }],
2088
+ /**
2089
+ * Border Spacing
2090
+ * @see https://tailwindcss.com/docs/border-spacing
2091
+ */
2092
+ "border-spacing": [{
2093
+ "border-spacing": [borderSpacing]
2094
+ }],
2095
+ /**
2096
+ * Border Spacing X
2097
+ * @see https://tailwindcss.com/docs/border-spacing
2098
+ */
2099
+ "border-spacing-x": [{
2100
+ "border-spacing-x": [borderSpacing]
2101
+ }],
2102
+ /**
2103
+ * Border Spacing Y
2104
+ * @see https://tailwindcss.com/docs/border-spacing
2105
+ */
2106
+ "border-spacing-y": [{
2107
+ "border-spacing-y": [borderSpacing]
2108
+ }],
2109
+ /**
2110
+ * Table Layout
2111
+ * @see https://tailwindcss.com/docs/table-layout
2112
+ */
2113
+ "table-layout": [{
2114
+ table: ["auto", "fixed"]
2115
+ }],
2116
+ /**
2117
+ * Caption Side
2118
+ * @see https://tailwindcss.com/docs/caption-side
2119
+ */
2120
+ caption: [{
2121
+ caption: ["top", "bottom"]
2122
+ }],
2123
+ // Transitions and Animation
2124
+ /**
2125
+ * Tranisition Property
2126
+ * @see https://tailwindcss.com/docs/transition-property
2127
+ */
2128
+ transition: [{
2129
+ transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", isArbitraryValue]
2130
+ }],
2131
+ /**
2132
+ * Transition Duration
2133
+ * @see https://tailwindcss.com/docs/transition-duration
2134
+ */
2135
+ duration: [{
2136
+ duration: getNumberAndArbitrary()
2137
+ }],
2138
+ /**
2139
+ * Transition Timing Function
2140
+ * @see https://tailwindcss.com/docs/transition-timing-function
2141
+ */
2142
+ ease: [{
2143
+ ease: ["linear", "in", "out", "in-out", isArbitraryValue]
2144
+ }],
2145
+ /**
2146
+ * Transition Delay
2147
+ * @see https://tailwindcss.com/docs/transition-delay
2148
+ */
2149
+ delay: [{
2150
+ delay: getNumberAndArbitrary()
2151
+ }],
2152
+ /**
2153
+ * Animation
2154
+ * @see https://tailwindcss.com/docs/animation
2155
+ */
2156
+ animate: [{
2157
+ animate: ["none", "spin", "ping", "pulse", "bounce", isArbitraryValue]
2158
+ }],
2159
+ // Transforms
2160
+ /**
2161
+ * Transform
2162
+ * @see https://tailwindcss.com/docs/transform
2163
+ */
2164
+ transform: [{
2165
+ transform: ["", "gpu", "none"]
2166
+ }],
2167
+ /**
2168
+ * Scale
2169
+ * @see https://tailwindcss.com/docs/scale
2170
+ */
2171
+ scale: [{
2172
+ scale: [scale]
2173
+ }],
2174
+ /**
2175
+ * Scale X
2176
+ * @see https://tailwindcss.com/docs/scale
2177
+ */
2178
+ "scale-x": [{
2179
+ "scale-x": [scale]
2180
+ }],
2181
+ /**
2182
+ * Scale Y
2183
+ * @see https://tailwindcss.com/docs/scale
2184
+ */
2185
+ "scale-y": [{
2186
+ "scale-y": [scale]
2187
+ }],
2188
+ /**
2189
+ * Rotate
2190
+ * @see https://tailwindcss.com/docs/rotate
2191
+ */
2192
+ rotate: [{
2193
+ rotate: [isInteger, isArbitraryValue]
2194
+ }],
2195
+ /**
2196
+ * Translate X
2197
+ * @see https://tailwindcss.com/docs/translate
2198
+ */
2199
+ "translate-x": [{
2200
+ "translate-x": [translate]
2201
+ }],
2202
+ /**
2203
+ * Translate Y
2204
+ * @see https://tailwindcss.com/docs/translate
2205
+ */
2206
+ "translate-y": [{
2207
+ "translate-y": [translate]
2208
+ }],
2209
+ /**
2210
+ * Skew X
2211
+ * @see https://tailwindcss.com/docs/skew
2212
+ */
2213
+ "skew-x": [{
2214
+ "skew-x": [skew]
2215
+ }],
2216
+ /**
2217
+ * Skew Y
2218
+ * @see https://tailwindcss.com/docs/skew
2219
+ */
2220
+ "skew-y": [{
2221
+ "skew-y": [skew]
2222
+ }],
2223
+ /**
2224
+ * Transform Origin
2225
+ * @see https://tailwindcss.com/docs/transform-origin
2226
+ */
2227
+ "transform-origin": [{
2228
+ origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", isArbitraryValue]
2229
+ }],
2230
+ // Interactivity
2231
+ /**
2232
+ * Accent Color
2233
+ * @see https://tailwindcss.com/docs/accent-color
2234
+ */
2235
+ accent: [{
2236
+ accent: ["auto", colors]
2237
+ }],
2238
+ /**
2239
+ * Appearance
2240
+ * @see https://tailwindcss.com/docs/appearance
2241
+ */
2242
+ appearance: [{
2243
+ appearance: ["none", "auto"]
2244
+ }],
2245
+ /**
2246
+ * Cursor
2247
+ * @see https://tailwindcss.com/docs/cursor
2248
+ */
2249
+ cursor: [{
2250
+ 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", isArbitraryValue]
2251
+ }],
2252
+ /**
2253
+ * Caret Color
2254
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2255
+ */
2256
+ "caret-color": [{
2257
+ caret: [colors]
2258
+ }],
2259
+ /**
2260
+ * Pointer Events
2261
+ * @see https://tailwindcss.com/docs/pointer-events
2262
+ */
2263
+ "pointer-events": [{
2264
+ "pointer-events": ["none", "auto"]
2265
+ }],
2266
+ /**
2267
+ * Resize
2268
+ * @see https://tailwindcss.com/docs/resize
2269
+ */
2270
+ resize: [{
2271
+ resize: ["none", "y", "x", ""]
2272
+ }],
2273
+ /**
2274
+ * Scroll Behavior
2275
+ * @see https://tailwindcss.com/docs/scroll-behavior
2276
+ */
2277
+ "scroll-behavior": [{
2278
+ scroll: ["auto", "smooth"]
2279
+ }],
2280
+ /**
2281
+ * Scroll Margin
2282
+ * @see https://tailwindcss.com/docs/scroll-margin
2283
+ */
2284
+ "scroll-m": [{
2285
+ "scroll-m": getSpacingWithArbitrary()
2286
+ }],
2287
+ /**
2288
+ * Scroll Margin X
2289
+ * @see https://tailwindcss.com/docs/scroll-margin
2290
+ */
2291
+ "scroll-mx": [{
2292
+ "scroll-mx": getSpacingWithArbitrary()
2293
+ }],
2294
+ /**
2295
+ * Scroll Margin Y
2296
+ * @see https://tailwindcss.com/docs/scroll-margin
2297
+ */
2298
+ "scroll-my": [{
2299
+ "scroll-my": getSpacingWithArbitrary()
2300
+ }],
2301
+ /**
2302
+ * Scroll Margin Start
2303
+ * @see https://tailwindcss.com/docs/scroll-margin
2304
+ */
2305
+ "scroll-ms": [{
2306
+ "scroll-ms": getSpacingWithArbitrary()
2307
+ }],
2308
+ /**
2309
+ * Scroll Margin End
2310
+ * @see https://tailwindcss.com/docs/scroll-margin
2311
+ */
2312
+ "scroll-me": [{
2313
+ "scroll-me": getSpacingWithArbitrary()
2314
+ }],
2315
+ /**
2316
+ * Scroll Margin Top
2317
+ * @see https://tailwindcss.com/docs/scroll-margin
2318
+ */
2319
+ "scroll-mt": [{
2320
+ "scroll-mt": getSpacingWithArbitrary()
2321
+ }],
2322
+ /**
2323
+ * Scroll Margin Right
2324
+ * @see https://tailwindcss.com/docs/scroll-margin
2325
+ */
2326
+ "scroll-mr": [{
2327
+ "scroll-mr": getSpacingWithArbitrary()
2328
+ }],
2329
+ /**
2330
+ * Scroll Margin Bottom
2331
+ * @see https://tailwindcss.com/docs/scroll-margin
2332
+ */
2333
+ "scroll-mb": [{
2334
+ "scroll-mb": getSpacingWithArbitrary()
2335
+ }],
2336
+ /**
2337
+ * Scroll Margin Left
2338
+ * @see https://tailwindcss.com/docs/scroll-margin
2339
+ */
2340
+ "scroll-ml": [{
2341
+ "scroll-ml": getSpacingWithArbitrary()
2342
+ }],
2343
+ /**
2344
+ * Scroll Padding
2345
+ * @see https://tailwindcss.com/docs/scroll-padding
2346
+ */
2347
+ "scroll-p": [{
2348
+ "scroll-p": getSpacingWithArbitrary()
2349
+ }],
2350
+ /**
2351
+ * Scroll Padding X
2352
+ * @see https://tailwindcss.com/docs/scroll-padding
2353
+ */
2354
+ "scroll-px": [{
2355
+ "scroll-px": getSpacingWithArbitrary()
2356
+ }],
2357
+ /**
2358
+ * Scroll Padding Y
2359
+ * @see https://tailwindcss.com/docs/scroll-padding
2360
+ */
2361
+ "scroll-py": [{
2362
+ "scroll-py": getSpacingWithArbitrary()
2363
+ }],
2364
+ /**
2365
+ * Scroll Padding Start
2366
+ * @see https://tailwindcss.com/docs/scroll-padding
2367
+ */
2368
+ "scroll-ps": [{
2369
+ "scroll-ps": getSpacingWithArbitrary()
2370
+ }],
2371
+ /**
2372
+ * Scroll Padding End
2373
+ * @see https://tailwindcss.com/docs/scroll-padding
2374
+ */
2375
+ "scroll-pe": [{
2376
+ "scroll-pe": getSpacingWithArbitrary()
2377
+ }],
2378
+ /**
2379
+ * Scroll Padding Top
2380
+ * @see https://tailwindcss.com/docs/scroll-padding
2381
+ */
2382
+ "scroll-pt": [{
2383
+ "scroll-pt": getSpacingWithArbitrary()
2384
+ }],
2385
+ /**
2386
+ * Scroll Padding Right
2387
+ * @see https://tailwindcss.com/docs/scroll-padding
2388
+ */
2389
+ "scroll-pr": [{
2390
+ "scroll-pr": getSpacingWithArbitrary()
2391
+ }],
2392
+ /**
2393
+ * Scroll Padding Bottom
2394
+ * @see https://tailwindcss.com/docs/scroll-padding
2395
+ */
2396
+ "scroll-pb": [{
2397
+ "scroll-pb": getSpacingWithArbitrary()
2398
+ }],
2399
+ /**
2400
+ * Scroll Padding Left
2401
+ * @see https://tailwindcss.com/docs/scroll-padding
2402
+ */
2403
+ "scroll-pl": [{
2404
+ "scroll-pl": getSpacingWithArbitrary()
2405
+ }],
2406
+ /**
2407
+ * Scroll Snap Align
2408
+ * @see https://tailwindcss.com/docs/scroll-snap-align
2409
+ */
2410
+ "snap-align": [{
2411
+ snap: ["start", "end", "center", "align-none"]
2412
+ }],
2413
+ /**
2414
+ * Scroll Snap Stop
2415
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
2416
+ */
2417
+ "snap-stop": [{
2418
+ snap: ["normal", "always"]
2419
+ }],
2420
+ /**
2421
+ * Scroll Snap Type
2422
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2423
+ */
2424
+ "snap-type": [{
2425
+ snap: ["none", "x", "y", "both"]
2426
+ }],
2427
+ /**
2428
+ * Scroll Snap Type Strictness
2429
+ * @see https://tailwindcss.com/docs/scroll-snap-type
2430
+ */
2431
+ "snap-strictness": [{
2432
+ snap: ["mandatory", "proximity"]
2433
+ }],
2434
+ /**
2435
+ * Touch Action
2436
+ * @see https://tailwindcss.com/docs/touch-action
2437
+ */
2438
+ touch: [{
2439
+ touch: ["auto", "none", "manipulation"]
2440
+ }],
2441
+ /**
2442
+ * Touch Action X
2443
+ * @see https://tailwindcss.com/docs/touch-action
2444
+ */
2445
+ "touch-x": [{
2446
+ "touch-pan": ["x", "left", "right"]
2447
+ }],
2448
+ /**
2449
+ * Touch Action Y
2450
+ * @see https://tailwindcss.com/docs/touch-action
2451
+ */
2452
+ "touch-y": [{
2453
+ "touch-pan": ["y", "up", "down"]
2454
+ }],
2455
+ /**
2456
+ * Touch Action Pinch Zoom
2457
+ * @see https://tailwindcss.com/docs/touch-action
2458
+ */
2459
+ "touch-pz": ["touch-pinch-zoom"],
2460
+ /**
2461
+ * User Select
2462
+ * @see https://tailwindcss.com/docs/user-select
2463
+ */
2464
+ select: [{
2465
+ select: ["none", "text", "all", "auto"]
2466
+ }],
2467
+ /**
2468
+ * Will Change
2469
+ * @see https://tailwindcss.com/docs/will-change
2470
+ */
2471
+ "will-change": [{
2472
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryValue]
2473
+ }],
2474
+ // SVG
2475
+ /**
2476
+ * Fill
2477
+ * @see https://tailwindcss.com/docs/fill
2478
+ */
2479
+ fill: [{
2480
+ fill: [colors, "none"]
2481
+ }],
2482
+ /**
2483
+ * Stroke Width
2484
+ * @see https://tailwindcss.com/docs/stroke-width
2485
+ */
2486
+ "stroke-w": [{
2487
+ stroke: [isLength, isArbitraryLength, isArbitraryNumber]
2488
+ }],
2489
+ /**
2490
+ * Stroke
2491
+ * @see https://tailwindcss.com/docs/stroke
2492
+ */
2493
+ stroke: [{
2494
+ stroke: [colors, "none"]
2495
+ }],
2496
+ // Accessibility
2497
+ /**
2498
+ * Screen Readers
2499
+ * @see https://tailwindcss.com/docs/screen-readers
2500
+ */
2501
+ sr: ["sr-only", "not-sr-only"],
2502
+ /**
2503
+ * Forced Color Adjust
2504
+ * @see https://tailwindcss.com/docs/forced-color-adjust
2505
+ */
2506
+ "forced-color-adjust": [{
2507
+ "forced-color-adjust": ["auto", "none"]
2508
+ }]
2509
+ },
2510
+ conflictingClassGroups: {
2511
+ overflow: ["overflow-x", "overflow-y"],
2512
+ overscroll: ["overscroll-x", "overscroll-y"],
2513
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2514
+ "inset-x": ["right", "left"],
2515
+ "inset-y": ["top", "bottom"],
2516
+ flex: ["basis", "grow", "shrink"],
2517
+ gap: ["gap-x", "gap-y"],
2518
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2519
+ px: ["pr", "pl"],
2520
+ py: ["pt", "pb"],
2521
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2522
+ mx: ["mr", "ml"],
2523
+ my: ["mt", "mb"],
2524
+ size: ["w", "h"],
2525
+ "font-size": ["leading"],
2526
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2527
+ "fvn-ordinal": ["fvn-normal"],
2528
+ "fvn-slashed-zero": ["fvn-normal"],
2529
+ "fvn-figure": ["fvn-normal"],
2530
+ "fvn-spacing": ["fvn-normal"],
2531
+ "fvn-fraction": ["fvn-normal"],
2532
+ "line-clamp": ["display", "overflow"],
2533
+ 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"],
2534
+ "rounded-s": ["rounded-ss", "rounded-es"],
2535
+ "rounded-e": ["rounded-se", "rounded-ee"],
2536
+ "rounded-t": ["rounded-tl", "rounded-tr"],
2537
+ "rounded-r": ["rounded-tr", "rounded-br"],
2538
+ "rounded-b": ["rounded-br", "rounded-bl"],
2539
+ "rounded-l": ["rounded-tl", "rounded-bl"],
2540
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
2541
+ "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2542
+ "border-w-x": ["border-w-r", "border-w-l"],
2543
+ "border-w-y": ["border-w-t", "border-w-b"],
2544
+ "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2545
+ "border-color-x": ["border-color-r", "border-color-l"],
2546
+ "border-color-y": ["border-color-t", "border-color-b"],
2547
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2548
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
2549
+ "scroll-my": ["scroll-mt", "scroll-mb"],
2550
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2551
+ "scroll-px": ["scroll-pr", "scroll-pl"],
2552
+ "scroll-py": ["scroll-pt", "scroll-pb"],
2553
+ touch: ["touch-x", "touch-y", "touch-pz"],
2554
+ "touch-x": ["touch"],
2555
+ "touch-y": ["touch"],
2556
+ "touch-pz": ["touch"]
2557
+ },
2558
+ conflictingClassGroupModifiers: {
2559
+ "font-size": ["leading"]
2560
+ }
2561
+ };
2562
+ };
2563
+ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
2564
+
2565
+ // ../../packages/libs/utils.tsx
2566
+ function cn(...inputs) {
2567
+ return twMerge((0, import_classnames.default)(inputs));
2568
+ }
2569
+
2570
+ // src/atoms/Tooltip/Tooltip.tsx
2571
+ var import_react11 = __toESM(require("react"), 1);
2572
+
2573
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs
2574
+ var import_jsx_runtime3 = require("react/jsx-runtime");
2575
+ var import_react10 = require("react");
2576
+
2577
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs
2578
+ var import_react = require("react");
2579
+ var LayoutGroupContext = (0, import_react.createContext)({});
2580
+
2581
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/utils/use-constant.mjs
2582
+ var import_react2 = require("react");
2583
+ function useConstant(init) {
2584
+ const ref = (0, import_react2.useRef)(null);
2585
+ if (ref.current === null) {
2586
+ ref.current = init();
2587
+ }
2588
+ return ref.current;
2589
+ }
2590
+
2591
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs
2592
+ var import_react3 = require("react");
2593
+
2594
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/utils/is-browser.mjs
2595
+ var isBrowser = typeof window !== "undefined";
2596
+
2597
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs
2598
+ var useIsomorphicLayoutEffect = isBrowser ? import_react3.useLayoutEffect : import_react3.useEffect;
2599
+
2600
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs
2601
+ var import_jsx_runtime2 = require("react/jsx-runtime");
2602
+ var React3 = __toESM(require("react"), 1);
2603
+ var import_react7 = require("react");
2604
+
2605
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/context/PresenceContext.mjs
2606
+ var import_react4 = require("react");
2607
+ var PresenceContext = /* @__PURE__ */ (0, import_react4.createContext)(null);
2608
+
2609
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs
2610
+ var import_jsx_runtime = require("react/jsx-runtime");
2611
+
2612
+ // ../../node_modules/.bun/motion-utils@12.39.0/node_modules/motion-utils/dist/es/is-object.mjs
2613
+ var isObject = (value) => typeof value === "object" && value !== null;
2614
+
2615
+ // ../../node_modules/.bun/motion-dom@12.40.0/node_modules/motion-dom/dist/es/utils/is-html-element.mjs
2616
+ function isHTMLElement(element) {
2617
+ return isObject(element) && "offsetHeight" in element && !("ownerSVGElement" in element);
2618
+ }
2619
+
2620
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs
2621
+ var React2 = __toESM(require("react"), 1);
2622
+ var import_react6 = require("react");
2623
+
2624
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs
2625
+ var import_react5 = require("react");
2626
+ var MotionConfigContext = (0, import_react5.createContext)({
2627
+ transformPagePoint: (p) => p,
2628
+ isStatic: false,
2629
+ reducedMotion: "never"
2630
+ });
2631
+
2632
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs
2633
+ var React = __toESM(require("react"), 1);
2634
+ function setRef(ref, value) {
2635
+ if (typeof ref === "function") {
2636
+ return ref(value);
2637
+ } else if (ref !== null && ref !== void 0) {
2638
+ ref.current = value;
2639
+ }
2640
+ }
2641
+ function composeRefs(...refs) {
2642
+ return (node) => {
2643
+ let hasCleanup = false;
2644
+ const cleanups = refs.map((ref) => {
2645
+ const cleanup = setRef(ref, node);
2646
+ if (!hasCleanup && typeof cleanup === "function") {
2647
+ hasCleanup = true;
2648
+ }
2649
+ return cleanup;
2650
+ });
2651
+ if (hasCleanup) {
2652
+ return () => {
2653
+ for (let i = 0; i < cleanups.length; i++) {
2654
+ const cleanup = cleanups[i];
2655
+ if (typeof cleanup === "function") {
2656
+ cleanup();
2657
+ } else {
2658
+ setRef(refs[i], null);
2659
+ }
2660
+ }
2661
+ };
2662
+ }
2663
+ };
2664
+ }
2665
+ function useComposedRefs(...refs) {
2666
+ return React.useCallback(composeRefs(...refs), refs);
2667
+ }
2668
+
2669
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs
2670
+ var PopChildMeasure = class extends React2.Component {
2671
+ getSnapshotBeforeUpdate(prevProps) {
2672
+ const element = this.props.childRef.current;
2673
+ if (isHTMLElement(element) && prevProps.isPresent && !this.props.isPresent && this.props.pop !== false) {
2674
+ const parent = element.offsetParent;
2675
+ const parentWidth = isHTMLElement(parent) ? parent.offsetWidth || 0 : 0;
2676
+ const parentHeight = isHTMLElement(parent) ? parent.offsetHeight || 0 : 0;
2677
+ const computedStyle = getComputedStyle(element);
2678
+ const size = this.props.sizeRef.current;
2679
+ size.height = parseFloat(computedStyle.height);
2680
+ size.width = parseFloat(computedStyle.width);
2681
+ size.top = element.offsetTop;
2682
+ size.left = element.offsetLeft;
2683
+ size.right = parentWidth - size.width - size.left;
2684
+ size.bottom = parentHeight - size.height - size.top;
2685
+ size.direction = computedStyle.direction;
2686
+ }
2687
+ return null;
2688
+ }
2689
+ /**
2690
+ * Required with getSnapshotBeforeUpdate to stop React complaining.
2691
+ */
2692
+ componentDidUpdate() {
2693
+ }
2694
+ render() {
2695
+ return this.props.children;
2696
+ }
2697
+ };
2698
+ function PopChild({ children, isPresent, anchorX, anchorY, root, pop }) {
2699
+ var _a, _b;
2700
+ const id = (0, import_react6.useId)();
2701
+ const ref = (0, import_react6.useRef)(null);
2702
+ const size = (0, import_react6.useRef)({
2703
+ width: 0,
2704
+ height: 0,
2705
+ top: 0,
2706
+ left: 0,
2707
+ right: 0,
2708
+ bottom: 0,
2709
+ direction: "ltr"
2710
+ });
2711
+ const { nonce } = (0, import_react6.useContext)(MotionConfigContext);
2712
+ const childRef = (_b = (_a = children.props) == null ? void 0 : _a.ref) != null ? _b : children == null ? void 0 : children.ref;
2713
+ const composedRef = useComposedRefs(ref, childRef);
2714
+ (0, import_react6.useInsertionEffect)(() => {
2715
+ const { width, height, top, left, right, bottom, direction } = size.current;
2716
+ if (isPresent || pop === false || !ref.current || !width || !height)
2717
+ return;
2718
+ const isRTL = direction === "rtl";
2719
+ const x = anchorX === "left" ? isRTL ? `right: ${right}` : `left: ${left}` : isRTL ? `left: ${left}` : `right: ${right}`;
2720
+ const y = anchorY === "bottom" ? `bottom: ${bottom}` : `top: ${top}`;
2721
+ ref.current.dataset.motionPopId = id;
2722
+ const style = document.createElement("style");
2723
+ if (nonce)
2724
+ style.nonce = nonce;
2725
+ const parent = root != null ? root : document.head;
2726
+ parent.appendChild(style);
2727
+ if (style.sheet) {
2728
+ style.sheet.insertRule(`
2729
+ [data-motion-pop-id="${id}"] {
2730
+ position: absolute !important;
2731
+ width: ${width}px !important;
2732
+ height: ${height}px !important;
2733
+ ${x}px !important;
2734
+ ${y}px !important;
2735
+ }
2736
+ `);
2737
+ }
2738
+ return () => {
2739
+ var _a2;
2740
+ (_a2 = ref.current) == null ? void 0 : _a2.removeAttribute("data-motion-pop-id");
2741
+ if (parent.contains(style)) {
2742
+ parent.removeChild(style);
2743
+ }
2744
+ };
2745
+ }, [isPresent]);
2746
+ return (0, import_jsx_runtime.jsx)(PopChildMeasure, { isPresent, childRef: ref, sizeRef: size, pop, children: pop === false ? children : React2.cloneElement(children, { ref: composedRef }) });
2747
+ }
2748
+
2749
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs
2750
+ var PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, anchorY, root }) => {
2751
+ const presenceChildren = useConstant(newChildrenMap);
2752
+ const id = (0, import_react7.useId)();
2753
+ let isReusedContext = true;
2754
+ let context = (0, import_react7.useMemo)(() => {
2755
+ isReusedContext = false;
2756
+ return {
2757
+ id,
2758
+ initial,
2759
+ isPresent,
2760
+ custom,
2761
+ onExitComplete: (childId) => {
2762
+ presenceChildren.set(childId, true);
2763
+ for (const isComplete of presenceChildren.values()) {
2764
+ if (!isComplete)
2765
+ return;
2766
+ }
2767
+ onExitComplete && onExitComplete();
2768
+ },
2769
+ register: (childId) => {
2770
+ presenceChildren.set(childId, false);
2771
+ return () => presenceChildren.delete(childId);
2772
+ }
2773
+ };
2774
+ }, [isPresent, presenceChildren, onExitComplete]);
2775
+ if (presenceAffectsLayout && isReusedContext) {
2776
+ context = { ...context };
2777
+ }
2778
+ (0, import_react7.useMemo)(() => {
2779
+ presenceChildren.forEach((_, key) => presenceChildren.set(key, false));
2780
+ }, [isPresent]);
2781
+ React3.useEffect(() => {
2782
+ !isPresent && !presenceChildren.size && onExitComplete && onExitComplete();
2783
+ }, [isPresent]);
2784
+ children = (0, import_jsx_runtime2.jsx)(PopChild, { pop: mode === "popLayout", isPresent, anchorX, anchorY, root, children });
2785
+ return (0, import_jsx_runtime2.jsx)(PresenceContext.Provider, { value: context, children });
2786
+ };
2787
+ function newChildrenMap() {
2788
+ return /* @__PURE__ */ new Map();
2789
+ }
2790
+
2791
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs
2792
+ var import_react8 = require("react");
2793
+ function usePresence(subscribe = true) {
2794
+ const context = (0, import_react8.useContext)(PresenceContext);
2795
+ if (context === null)
2796
+ return [true, null];
2797
+ const { isPresent, onExitComplete, register } = context;
2798
+ const id = (0, import_react8.useId)();
2799
+ (0, import_react8.useEffect)(() => {
2800
+ if (subscribe) {
2801
+ return register(id);
2802
+ }
2803
+ }, [subscribe]);
2804
+ const safeToRemove = (0, import_react8.useCallback)(() => subscribe && onExitComplete && onExitComplete(id), [id, onExitComplete, subscribe]);
2805
+ return !isPresent && onExitComplete ? [false, safeToRemove] : [true];
2806
+ }
2807
+
2808
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs
2809
+ var import_react9 = require("react");
2810
+ var getChildKey = (child) => child.key || "";
2811
+ function onlyElements(children) {
2812
+ const filtered = [];
2813
+ import_react9.Children.forEach(children, (child) => {
2814
+ if ((0, import_react9.isValidElement)(child))
2815
+ filtered.push(child);
2816
+ });
2817
+ return filtered;
2818
+ }
2819
+
2820
+ // ../../node_modules/.bun/framer-motion@12.40.0+d0e719b86e9808b5/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs
2821
+ var AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = "sync", propagate = false, anchorX = "left", anchorY = "top", root }) => {
2822
+ const [isParentPresent, safeToRemove] = usePresence(propagate);
2823
+ const presentChildren = (0, import_react10.useMemo)(() => onlyElements(children), [children]);
2824
+ const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);
2825
+ const isInitialRender = (0, import_react10.useRef)(true);
2826
+ const pendingPresentChildren = (0, import_react10.useRef)(presentChildren);
2827
+ const exitComplete = useConstant(() => /* @__PURE__ */ new Map());
2828
+ const exitingComponents = (0, import_react10.useRef)(/* @__PURE__ */ new Set());
2829
+ const [diffedChildren, setDiffedChildren] = (0, import_react10.useState)(presentChildren);
2830
+ const [renderedChildren, setRenderedChildren] = (0, import_react10.useState)(presentChildren);
2831
+ useIsomorphicLayoutEffect(() => {
2832
+ isInitialRender.current = false;
2833
+ pendingPresentChildren.current = presentChildren;
2834
+ for (let i = 0; i < renderedChildren.length; i++) {
2835
+ const key = getChildKey(renderedChildren[i]);
2836
+ if (!presentKeys.includes(key)) {
2837
+ if (exitComplete.get(key) !== true) {
2838
+ exitComplete.set(key, false);
2839
+ }
2840
+ } else {
2841
+ exitComplete.delete(key);
2842
+ exitingComponents.current.delete(key);
2843
+ }
2844
+ }
2845
+ }, [renderedChildren, presentKeys.length, presentKeys.join("-")]);
2846
+ const exitingChildren = [];
2847
+ if (presentChildren !== diffedChildren) {
2848
+ let nextChildren = [...presentChildren];
2849
+ for (let i = 0; i < renderedChildren.length; i++) {
2850
+ const child = renderedChildren[i];
2851
+ const key = getChildKey(child);
2852
+ if (!presentKeys.includes(key)) {
2853
+ nextChildren.splice(i, 0, child);
2854
+ exitingChildren.push(child);
2855
+ }
2856
+ }
2857
+ if (mode === "wait" && exitingChildren.length) {
2858
+ nextChildren = exitingChildren;
2859
+ }
2860
+ setRenderedChildren(onlyElements(nextChildren));
2861
+ setDiffedChildren(presentChildren);
2862
+ return null;
2863
+ }
2864
+ if (process.env.NODE_ENV !== "production" && mode === "wait" && renderedChildren.length > 1) {
2865
+ console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.`);
2866
+ }
2867
+ const { forceRender } = (0, import_react10.useContext)(LayoutGroupContext);
2868
+ return (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: renderedChildren.map((child) => {
2869
+ const key = getChildKey(child);
2870
+ const isPresent = propagate && !isParentPresent ? false : presentChildren === renderedChildren || presentKeys.includes(key);
2871
+ const onExit = () => {
2872
+ if (exitingComponents.current.has(key)) {
2873
+ return;
2874
+ }
2875
+ if (exitComplete.has(key)) {
2876
+ exitingComponents.current.add(key);
2877
+ exitComplete.set(key, true);
2878
+ } else {
2879
+ return;
2880
+ }
2881
+ let isEveryExitComplete = true;
2882
+ exitComplete.forEach((isExitComplete) => {
2883
+ if (!isExitComplete)
2884
+ isEveryExitComplete = false;
2885
+ });
2886
+ if (isEveryExitComplete) {
2887
+ forceRender == null ? void 0 : forceRender();
2888
+ setRenderedChildren(pendingPresentChildren.current);
2889
+ propagate && (safeToRemove == null ? void 0 : safeToRemove());
2890
+ onExitComplete && onExitComplete();
2891
+ }
2892
+ };
2893
+ return (0, import_jsx_runtime3.jsx)(PresenceChild, { isPresent, initial: !isInitialRender.current || initial ? void 0 : false, custom, presenceAffectsLayout, mode, root, onExitComplete: isPresent ? void 0 : onExit, anchorX, anchorY, children: child }, key);
2894
+ }) });
2895
+ };
2896
+
2897
+ // src/atoms/Tooltip/Tooltip.tsx
2898
+ var animationClasses = {
2899
+ fade: "opacity-0 animate-fadeIn",
2900
+ scale: "animate-scaleIn",
2901
+ none: ""
2902
+ };
2903
+ var variantBorderColorClasses = {
2904
+ success: "tooltip-success-variant",
2905
+ warning: "tooltip-warning-variant",
2906
+ error: "tooltip-error-variant",
2907
+ info: "tooltip-info-variant"
2908
+ };
2909
+ var Tooltip = ({
2910
+ id,
2911
+ className,
2912
+ content,
2913
+ placement = "top",
2914
+ trigger = "hover",
2915
+ delay = 0,
2916
+ arrow = true,
2917
+ animation = "fade",
2918
+ maxWidth,
2919
+ disabled,
2920
+ asChild = "div",
2921
+ ref,
2922
+ isVisible = false,
2923
+ closeButton,
2924
+ onClose,
2925
+ onShow,
2926
+ onHide,
2927
+ children,
2928
+ variant,
2929
+ pointerDirection = "left"
2930
+ }) => {
2931
+ var _a, _b;
2932
+ const [visible, setVisible] = import_react11.default.useState(isVisible);
2933
+ const internalRef = import_react11.default.useRef(null);
2934
+ const mergedRef = mergeRefs(ref, internalRef);
2935
+ import_react11.default.useEffect(() => {
2936
+ if (visible) {
2937
+ onShow == null ? void 0 : onShow();
2938
+ }
2939
+ }, [visible, onShow]);
2940
+ function mergeRefs(...refs) {
2941
+ return (value) => {
2942
+ refs.forEach((ref2) => {
2943
+ if (typeof ref2 === "function") {
2944
+ ref2(value);
2945
+ } else if (ref2) {
2946
+ ref2.current = value;
2947
+ }
2948
+ });
2949
+ };
2950
+ }
2951
+ const getContainerPositionClass = (position, pointerDirection2) => {
2952
+ if (position === "bottom") {
2953
+ if (pointerDirection2 === "left")
2954
+ return "top-[calc(100%+8px)] left-0";
2955
+ if (pointerDirection2 === "center")
2956
+ return "top-[calc(100%+8px)] left-1/2 transform -translate-x-1/2";
2957
+ if (pointerDirection2 === "right")
2958
+ return "top-[calc(100%+8px)] right-0";
2959
+ } else if (position === "top") {
2960
+ if (pointerDirection2 === "left")
2961
+ return "bottom-[calc(100%+8px)] left-0";
2962
+ if (pointerDirection2 === "center")
2963
+ return "bottom-[calc(100%+8px)] left-1/2 transform -translate-x-1/2";
2964
+ if (pointerDirection2 === "right")
2965
+ return "bottom-[calc(100%+8px)] right-0";
2966
+ } else if (position === "left") {
2967
+ if (pointerDirection2 === "left")
2968
+ return "right-[calc(100%+8px)] top-0";
2969
+ if (pointerDirection2 === "center")
2970
+ return "right-[calc(100%+8px)] top-1/2 transform -translate-y-1/2";
2971
+ if (pointerDirection2 === "right")
2972
+ return "right-[calc(100%+8px)] bottom-0";
2973
+ } else if (position === "right") {
2974
+ if (pointerDirection2 === "left")
2975
+ return "left-[calc(100%+8px)] top-0";
2976
+ if (pointerDirection2 === "center")
2977
+ return "left-[calc(100%+8px)] top-1/2 transform -translate-y-1/2";
2978
+ if (pointerDirection2 === "right")
2979
+ return "left-[calc(100%+8px)] bottom-0";
2980
+ }
2981
+ return "";
2982
+ };
2983
+ const getVariantContainerClass = (position, pointerDirection2) => {
2984
+ if (position == "bottom") {
2985
+ if (pointerDirection2 === "left")
2986
+ return "top-[-2px] left-0 h-4 w-[100px]";
2987
+ if (pointerDirection2 === "center")
2988
+ return "top-[-2px] left-1/2 transform -translate-x-1/2 h-4 w-[100px]";
2989
+ if (pointerDirection2 === "right")
2990
+ return "top-[-2px] right-0 h-4 w-[100px]";
2991
+ } else if (position == "top") {
2992
+ if (pointerDirection2 === "left")
2993
+ return "bottom-[-2px] left-0 h-4 w-[100px]";
2994
+ if (pointerDirection2 === "center")
2995
+ return "bottom-[-2px] left-1/2 transform -translate-x-1/2 h-4 w-[100px]";
2996
+ if (pointerDirection2 === "right")
2997
+ return "bottom-[-2px] right-0 h-4 w-[100px]";
2998
+ } else if (position == "left") {
2999
+ return "left-[calc(100%-13px)] top-1/2 transform -translate-y-1/2 h-[100px] w-4";
3000
+ } else if (position == "right") {
3001
+ return "right-[calc(100%-13px)] top-1/2 transform -translate-y-1/2 h-[100px] w-4";
3002
+ }
3003
+ return "";
3004
+ };
3005
+ function useTooltipVisibility(ref2, trigger2, delay2) {
3006
+ import_react11.default.useEffect(() => {
3007
+ const el = ref2.current;
3008
+ if (!el || disabled || content === null || content === void 0)
3009
+ return;
3010
+ if (trigger2 === "click") {
3011
+ const handleClick = () => {
3012
+ setVisible((prev) => !prev);
3013
+ };
3014
+ el.addEventListener("click", handleClick);
3015
+ return () => {
3016
+ el.removeEventListener("click", handleClick);
3017
+ };
3018
+ } else if (trigger2 === "focus") {
3019
+ const handleFocus = () => {
3020
+ setVisible(true);
3021
+ };
3022
+ const handleBlur = () => {
3023
+ onHide == null ? void 0 : onHide();
3024
+ setVisible(false);
3025
+ };
3026
+ el.addEventListener("focus", handleFocus);
3027
+ el.addEventListener("blur", handleBlur);
3028
+ return () => {
3029
+ el.removeEventListener("focus", handleFocus);
3030
+ el.removeEventListener("blur", handleBlur);
3031
+ };
3032
+ } else if (trigger2 === "hover") {
3033
+ const handleMouseEnter = () => {
3034
+ if (delay2) {
3035
+ setTimeout(() => {
3036
+ setVisible(true);
3037
+ }, delay2);
3038
+ } else {
3039
+ setVisible(true);
3040
+ }
3041
+ };
3042
+ const handleMouseLeave = () => {
3043
+ setVisible(false);
3044
+ onHide == null ? void 0 : onHide();
3045
+ };
3046
+ el.addEventListener("mouseenter", handleMouseEnter);
3047
+ el.addEventListener("mouseleave", handleMouseLeave);
3048
+ return () => {
3049
+ el.removeEventListener("mouseenter", handleMouseEnter);
3050
+ el.removeEventListener("mouseleave", handleMouseLeave);
3051
+ };
3052
+ }
3053
+ }, [trigger2, ref2, delay2]);
3054
+ return visible;
3055
+ }
3056
+ const useTooltipArrowPosition = (position, pointerDirection2 = "left") => {
3057
+ return import_react11.default.useMemo(() => {
3058
+ let arrowPositionClass2 = "";
3059
+ let arrowInlineStyle2 = {};
3060
+ if (position === "bottom") {
3061
+ arrowInlineStyle2 = { top: "-4px" };
3062
+ arrowPositionClass2 = pointerDirection2 === "left" ? "left-2" : pointerDirection2 === "right" ? "right-2" : "left-1/2 transform -translate-x-1/2";
3063
+ } else if (position === "top") {
3064
+ arrowInlineStyle2 = { bottom: "-4px" };
3065
+ arrowPositionClass2 = pointerDirection2 === "left" ? "left-2" : pointerDirection2 === "right" ? "right-2" : pointerDirection2 === "center" ? "left-1/2 transform -translate-x-1/2" : "bottom-[-2px] left-0 h-4 w-[100px]";
3066
+ } else if (position === "left") {
3067
+ arrowInlineStyle2 = { right: "-4px" };
3068
+ arrowPositionClass2 = "top-1/2 transform -translate-y-1/2";
3069
+ } else if (position === "right") {
3070
+ arrowInlineStyle2 = { left: "-4px" };
3071
+ arrowPositionClass2 = "top-1/2 transform -translate-y-1/2";
3072
+ }
3073
+ return { arrowPositionClass: arrowPositionClass2, arrowInlineStyle: arrowInlineStyle2 };
3074
+ }, [position, pointerDirection2]);
3075
+ };
3076
+ useTooltipVisibility(internalRef, trigger, delay);
3077
+ const { arrowPositionClass, arrowInlineStyle } = useTooltipArrowPosition(
3078
+ placement,
3079
+ pointerDirection
3080
+ );
3081
+ const tooltipBgClass = ((_a = className == null ? void 0 : className.match(/bg-(?:\[.*?]|[a-zA-Z0-9-]+)/)) == null ? void 0 : _a[0]) || "bg-white";
3082
+ const textColor = ((_b = className == null ? void 0 : className.match(/text-[a-zA-Z0-9-]+/)) == null ? void 0 : _b[0]) || "text-inputDefaultText";
3083
+ const containerPositionClass = cn(
3084
+ "absolute z-10",
3085
+ className,
3086
+ getContainerPositionClass(placement, pointerDirection)
3087
+ );
3088
+ const variantContainerClass = getVariantContainerClass(
3089
+ placement,
3090
+ pointerDirection
3091
+ );
3092
+ const renderArrow = () => /* @__PURE__ */ import_react11.default.createElement(
3093
+ "div",
3094
+ {
3095
+ className: cn(
3096
+ "absolute h-2 w-2 rotate-45 bg-inherit",
3097
+ arrowPositionClass,
3098
+ variant && `tooltip-${placement}-variant-arrow-${variant}`
3099
+ ),
3100
+ style: arrowInlineStyle
3101
+ }
3102
+ );
3103
+ const hideToolTip = () => {
3104
+ setVisible(false);
3105
+ onClose == null ? void 0 : onClose();
3106
+ };
3107
+ const renderCloseButton = () => /* @__PURE__ */ import_react11.default.createElement(
3108
+ "button",
3109
+ {
3110
+ tabIndex: 0,
3111
+ "aria-label": "Close tooltip",
3112
+ type: "button",
3113
+ className: "absolute top-4 right-4 cursor-pointer text-[var(--color-secondary)]",
3114
+ onClick: hideToolTip
3115
+ },
3116
+ "\u2715"
3117
+ );
3118
+ const renderVariantBorder = () => /* @__PURE__ */ import_react11.default.createElement(
3119
+ "div",
3120
+ {
3121
+ className: cn(
3122
+ "absolute z-[-1] flex",
3123
+ variant && variantBorderColorClasses[variant],
3124
+ variantContainerClass
3125
+ )
3126
+ }
3127
+ );
3128
+ return /* @__PURE__ */ import_react11.default.createElement("div", { ref: mergedRef, className: "relative inline-block" }, import_react11.default.createElement(
3129
+ asChild,
3130
+ { id },
3131
+ /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, children, /* @__PURE__ */ import_react11.default.createElement(AnimatePresence, null, visible && /* @__PURE__ */ import_react11.default.createElement(
3132
+ "div",
3133
+ {
3134
+ tabIndex: 0,
3135
+ role: "alert",
3136
+ "data-testid": "tooltip-container",
3137
+ className: cn(
3138
+ "w-max",
3139
+ containerPositionClass,
3140
+ animationClasses[animation]
3141
+ ),
3142
+ style: {
3143
+ maxWidth: typeof maxWidth === "number" ? `${maxWidth}px` : maxWidth
3144
+ }
3145
+ },
3146
+ /* @__PURE__ */ import_react11.default.createElement(
3147
+ "div",
3148
+ {
3149
+ "data-testid": "tooltip",
3150
+ className: cn(
3151
+ className,
3152
+ tooltipBgClass,
3153
+ "relative flex flex-col items-start gap-1 px-2 py-1",
3154
+ textColor
3155
+ )
3156
+ },
3157
+ closeButton && renderCloseButton(),
3158
+ content,
3159
+ arrow && content && renderArrow(),
3160
+ variant && renderVariantBorder()
3161
+ )
3162
+ )))
3163
+ ));
3164
+ };
3165
+
3166
+ // ../../packages/icons/src/web/X.tsx
3167
+ var import_react13 = __toESM(require("react"), 1);
3168
+ var X = ({
3169
+ size = 16,
3170
+ strokeWidth = 2,
3171
+ color = "currentColor",
3172
+ className,
3173
+ ...props
3174
+ }) => /* @__PURE__ */ import_react13.default.createElement(
3175
+ "svg",
3176
+ {
3177
+ fill: "none",
3178
+ "aria-hidden": true,
3179
+ width: size,
3180
+ height: size,
3181
+ viewBox: "0 0 24 24",
3182
+ className,
3183
+ xmlns: "http://www.w3.org/2000/svg",
3184
+ ...props
3185
+ },
3186
+ /* @__PURE__ */ import_react13.default.createElement(
3187
+ "path",
3188
+ {
3189
+ d: "M18 6L6 18M6 6l12 12",
3190
+ stroke: color,
3191
+ strokeLinecap: "round",
3192
+ strokeLinejoin: "round",
3193
+ strokeWidth
3194
+ }
3195
+ )
3196
+ );
3197
+
3198
+ // ../../packages/icons/src/web/SportsBetting.tsx
3199
+ var import_react14 = __toESM(require("react"), 1);
3200
+
3201
+ // ../../packages/icons/src/web/SportsBettingLogo.tsx
3202
+ var import_react15 = __toESM(require("react"), 1);
3203
+
3204
+ // src/atoms/TextArea/TextArea.tsx
3205
+ var import_react16 = __toESM(require("react"), 1);
3206
+ var TextArea = ({
3207
+ id,
3208
+ value,
3209
+ className,
3210
+ placeholder,
3211
+ defaultValue,
3212
+ size = "default",
3213
+ disabled = false,
3214
+ readOnly = false,
3215
+ required = false,
3216
+ onChange,
3217
+ onFocus,
3218
+ onBlur,
3219
+ autoFocus = false,
3220
+ allowClear = true,
3221
+ maxLength,
3222
+ minLength,
3223
+ showCount = false,
3224
+ rows = 3,
3225
+ resize = "none",
3226
+ prefix,
3227
+ suffix,
3228
+ addonBefore,
3229
+ addonAfter,
3230
+ status = "none",
3231
+ tooltip,
3232
+ tooltipOptions,
3233
+ "aria-label": ariaLabel,
3234
+ "aria-describedby": ariaDescribedBy,
3235
+ ...props
3236
+ }) => {
3237
+ const [isFocused, setIsFocused] = (0, import_react16.useState)(false);
3238
+ const textAreaRef = (0, import_react16.useRef)(null);
3239
+ const clearButtonRef = (0, import_react16.useRef)(null);
3240
+ (0, import_react16.useEffect)(() => {
3241
+ if (autoFocus && textAreaRef.current) {
3242
+ textAreaRef.current.focus();
3243
+ }
3244
+ }, [autoFocus]);
3245
+ const handleChange = (e) => {
3246
+ onChange(e.target.value);
3247
+ };
3248
+ const handleFocus = (e) => {
3249
+ setIsFocused(true);
3250
+ if (onFocus) onFocus(e);
3251
+ };
3252
+ const handleBlur = (e) => {
3253
+ setIsFocused(false);
3254
+ if (onBlur) onBlur(e);
3255
+ };
3256
+ const handleClear = () => {
3257
+ onChange("");
3258
+ if (textAreaRef.current) {
3259
+ textAreaRef.current.focus();
3260
+ }
3261
+ };
3262
+ const handleKeyDown = (e) => {
3263
+ if (e.key === "Escape" && allowClear && value) {
3264
+ handleClear();
3265
+ }
3266
+ };
3267
+ const textareaClasses = cn(
3268
+ "w-full p-2 border border-2 border-neutral-300 rounded-sm transition-all duration-200 text-fg dark:text-fg-inverse rounded",
3269
+ {
3270
+ // Size variants
3271
+ "text-sm": size === "small",
3272
+ "text-lg": size === "large",
3273
+ "text-base": size === "default",
3274
+ // State variants
3275
+ "bg-gray-300 text-gray-500 cursor-not-allowed": disabled || readOnly,
3276
+ "bg-fg": !disabled && !readOnly,
3277
+ // Add-ons
3278
+ "rounded-tl-none rounded-bl-none": addonBefore,
3279
+ "rounded-tr-none rounded-br-none": addonAfter,
3280
+ // Focus state
3281
+ "focus-within:ring-2 focus-within:shadow-[0_0_15px_0] focus-within:shadow-primary-500 focus-within:ring-primary-500 outline-none": isFocused,
3282
+ "ring-2 !ring-error-500 focus-within:shadow-error-500": status === "error",
3283
+ "ring-2 !ring-warning-500 focus-within:shadow-warning-500": status === "warning",
3284
+ // Resize options
3285
+ "resize-none": resize === "none",
3286
+ "resize-y": resize === "vertical",
3287
+ "resize-x": resize === "horizontal",
3288
+ resize: resize === "both"
3289
+ },
3290
+ className
3291
+ );
3292
+ const clearButtonClasses = cn(
3293
+ "absolute top-2 right-2 size-5 cursor-pointer flex items-center justify-center rounded-full focus:outline-none",
3294
+ {
3295
+ "right-6": suffix,
3296
+ "bg-neutral-300 hover:bg-neutral-400": status === "none",
3297
+ "bg-error-500/90 hover:bg-error-500": status === "error",
3298
+ "bg-warning-500/90 hover:bg-warning-500": status === "warning"
3299
+ }
3300
+ );
3301
+ const getStatusMessage = () => {
3302
+ if (status === "error") return "Error";
3303
+ if (status === "warning") return "Warning";
3304
+ return "";
3305
+ };
3306
+ return /* @__PURE__ */ import_react16.default.createElement(Tooltip, { id, content: tooltip, ...tooltipOptions }, /* @__PURE__ */ import_react16.default.createElement(
3307
+ "div",
3308
+ {
3309
+ role: "group",
3310
+ className: "relative",
3311
+ "aria-describedby": ariaDescribedBy,
3312
+ "data-testid": "test-textarea-container",
3313
+ "aria-labelledby": id ? `${id}-text-area` : "Text Area Input Field"
3314
+ },
3315
+ addonBefore && /* @__PURE__ */ import_react16.default.createElement(
3316
+ "div",
3317
+ {
3318
+ role: "presentation",
3319
+ "aria-label": `Text Area Before Addon: ${addonBefore}`,
3320
+ className: "absolute left-0 top-0 flex h-full items-center px-2"
3321
+ },
3322
+ addonBefore
3323
+ ),
3324
+ prefix && /* @__PURE__ */ import_react16.default.createElement(
3325
+ "div",
3326
+ {
3327
+ "aria-label": `Text Area Prefix: ${prefix}`,
3328
+ className: "absolute left-2 top-1/2 -translate-y-1/2 transform",
3329
+ role: "presentation"
3330
+ },
3331
+ prefix
3332
+ ),
3333
+ /* @__PURE__ */ import_react16.default.createElement(
3334
+ "textarea",
3335
+ {
3336
+ id,
3337
+ ref: textAreaRef,
3338
+ className: textareaClasses,
3339
+ placeholder,
3340
+ value,
3341
+ defaultValue,
3342
+ disabled,
3343
+ readOnly,
3344
+ required,
3345
+ onChange: handleChange,
3346
+ onFocus: handleFocus,
3347
+ onBlur: handleBlur,
3348
+ onKeyDown: handleKeyDown,
3349
+ maxLength,
3350
+ minLength,
3351
+ rows,
3352
+ "aria-label": ariaLabel || placeholder,
3353
+ "aria-invalid": status === "error",
3354
+ "aria-required": required,
3355
+ "aria-disabled": disabled,
3356
+ "aria-readonly": readOnly,
3357
+ "aria-multiline": "true",
3358
+ "aria-describedby": [
3359
+ status ? `${id}-status` : null,
3360
+ showCount ? `${id}-count` : null,
3361
+ tooltip ? `${id}-tooltip` : null
3362
+ ].filter(Boolean).join(" ") || void 0,
3363
+ style: {
3364
+ paddingLeft: prefix ? "2rem" : "",
3365
+ paddingRight: suffix || allowClear ? "2rem" : ""
3366
+ },
3367
+ ...props
3368
+ }
3369
+ ),
3370
+ suffix && /* @__PURE__ */ import_react16.default.createElement(
3371
+ "div",
3372
+ {
3373
+ "aria-label": `Text Area Suffix: ${suffix}`,
3374
+ className: "absolute right-2 top-1/2 -translate-y-1/2 transform",
3375
+ role: "presentation"
3376
+ },
3377
+ suffix
3378
+ ),
3379
+ addonAfter && /* @__PURE__ */ import_react16.default.createElement(
3380
+ "div",
3381
+ {
3382
+ "aria-label": `Text Area After Addon: ${addonAfter}`,
3383
+ className: "absolute right-0 top-0 flex h-full items-center px-2",
3384
+ role: "presentation"
3385
+ },
3386
+ addonAfter
3387
+ ),
3388
+ allowClear && value && !readOnly && !disabled && !suffix && /* @__PURE__ */ import_react16.default.createElement(
3389
+ "button",
3390
+ {
3391
+ tabIndex: 0,
3392
+ role: "button",
3393
+ ref: clearButtonRef,
3394
+ onClick: handleClear,
3395
+ className: clearButtonClasses,
3396
+ "aria-label": "Clear Text Area Input"
3397
+ },
3398
+ /* @__PURE__ */ import_react16.default.createElement("span", { className: "sr-only" }, "Clear input"),
3399
+ /* @__PURE__ */ import_react16.default.createElement("div", { "aria-hidden": "true" }, /* @__PURE__ */ import_react16.default.createElement(
3400
+ X,
3401
+ {
3402
+ size: 12,
3403
+ strokeWidth: 2.5,
3404
+ className: cn("text-neutral-200", {
3405
+ "text-primary": status === "none"
3406
+ })
3407
+ }
3408
+ ))
3409
+ ),
3410
+ showCount && /* @__PURE__ */ import_react16.default.createElement(
3411
+ "div",
3412
+ {
3413
+ id: `${id}-count`,
3414
+ "aria-live": "polite",
3415
+ "aria-label": `Current Word Count: ${(value == null ? void 0 : value.length) || 0}/${maxLength || 0}`,
3416
+ className: cn(
3417
+ "absolute bottom-1.5 right-1 text-[10px] text-neutral-500",
3418
+ {
3419
+ "bottom-2 right-2": resize !== "none"
3420
+ }
3421
+ )
3422
+ },
3423
+ maxLength ? `${value == null ? void 0 : value.length}/${maxLength}` : value == null ? void 0 : value.length
3424
+ ),
3425
+ status && /* @__PURE__ */ import_react16.default.createElement(
3426
+ "div",
3427
+ {
3428
+ role: "status",
3429
+ className: "sr-only",
3430
+ "aria-live": "polite",
3431
+ id: `${id}-status`,
3432
+ "aria-label": getStatusMessage()
3433
+ },
3434
+ getStatusMessage()
3435
+ )
3436
+ ));
3437
+ };
3438
+
3439
+ // src/atoms/ProgressBar/ProgressBar.tsx
3440
+ var import_react17 = __toESM(require("react"), 1);
3441
+ var ProgressBar = ({
3442
+ id,
3443
+ className,
3444
+ value: propValue,
3445
+ defaultValue = 0,
3446
+ max = 100,
3447
+ min = 0,
3448
+ size = "medium",
3449
+ color = "primary",
3450
+ striped = false,
3451
+ animated = false,
3452
+ variant = "solid",
3453
+ showPercentage = false,
3454
+ indeterminate = false,
3455
+ autoFocus = false,
3456
+ onClick,
3457
+ onChange,
3458
+ direction = "horizontal",
3459
+ minColor,
3460
+ maxColor,
3461
+ showLoadingLabel = true,
3462
+ labelPosition = "outside",
3463
+ minLabel,
3464
+ maxLabel
3465
+ }) => {
3466
+ const isFirstRender = import_react17.default.useRef(true);
3467
+ const progressBarRef = (0, import_react17.useRef)(null);
3468
+ const [value, setValue] = (0, import_react17.useState)(
3469
+ propValue !== void 0 ? propValue : defaultValue
3470
+ );
3471
+ (0, import_react17.useEffect)(() => {
3472
+ if (propValue !== void 0) {
3473
+ setValue(propValue);
3474
+ if (!isFirstRender.current) {
3475
+ onChange == null ? void 0 : onChange(propValue);
3476
+ } else {
3477
+ isFirstRender.current = false;
3478
+ }
3479
+ }
3480
+ }, [propValue, onChange]);
3481
+ const percentage = indeterminate ? 0 : Math.round((value - min) / (max - min) * 100);
3482
+ const clampedPercentage = Math.min(Math.max(percentage, 0), 100);
3483
+ return /* @__PURE__ */ import_react17.default.createElement(
3484
+ "div",
3485
+ {
3486
+ "data-testid": id,
3487
+ "aria-label": "Progress bar",
3488
+ className: cn(
3489
+ "flex w-full",
3490
+ direction === "horizontal" ? "flex-col" : "flex-row items-center",
3491
+ direction === "vertical" && "h-64"
3492
+ ),
3493
+ role: "group",
3494
+ "aria-labelledby": `${id}-label`
3495
+ },
3496
+ /* @__PURE__ */ import_react17.default.createElement("div", { id: `${id}-label`, className: "sr-only" }, "Progress Bar:", " ", indeterminate ? "Loading" : `${clampedPercentage}% complete`),
3497
+ direction === "horizontal" && /* @__PURE__ */ import_react17.default.createElement("div", { className: "mb-1 flex justify-between" }, labelPosition === "outside" && minLabel && /* @__PURE__ */ import_react17.default.createElement(
3498
+ "span",
3499
+ {
3500
+ className: "text-xs font-medium",
3501
+ style: { color: minColor }
3502
+ },
3503
+ minLabel
3504
+ ), labelPosition === "outside" && maxLabel && /* @__PURE__ */ import_react17.default.createElement(
3505
+ "span",
3506
+ {
3507
+ className: "text-xs font-medium",
3508
+ style: { color: maxColor }
3509
+ },
3510
+ maxLabel
3511
+ )),
3512
+ /* @__PURE__ */ import_react17.default.createElement(
3513
+ "div",
3514
+ {
3515
+ className: cn(
3516
+ "relative rounded-full",
3517
+ direction === "vertical" && "h-full overflow-hidden"
3518
+ )
3519
+ },
3520
+ /* @__PURE__ */ import_react17.default.createElement(
3521
+ "div",
3522
+ {
3523
+ id,
3524
+ ref: progressBarRef,
3525
+ className: cn(
3526
+ "overflow-hidden bg-primary-600",
3527
+ {
3528
+ "w-full rounded-full": direction === "horizontal",
3529
+ "h-full rounded-full": direction === "vertical",
3530
+ "h-1": size === "small" && direction === "horizontal",
3531
+ "h-2": size === "medium" && direction === "horizontal",
3532
+ "h-3": size === "large" && direction === "horizontal",
3533
+ "w-1": size === "small" && direction === "vertical",
3534
+ "w-2": size === "medium" && direction === "vertical",
3535
+ "w-3": size === "large" && direction === "vertical"
3536
+ },
3537
+ className
3538
+ ),
3539
+ onClick,
3540
+ tabIndex: autoFocus ? 0 : void 0,
3541
+ role: "progressbar",
3542
+ "aria-valuenow": indeterminate ? void 0 : value,
3543
+ "aria-valuemin": min,
3544
+ "aria-valuemax": max,
3545
+ "aria-valuetext": `${clampedPercentage}%`,
3546
+ "aria-busy": indeterminate ? "true" : value <= max,
3547
+ "aria-label": indeterminate ? "Loading" : `Progress: ${clampedPercentage}%`
3548
+ },
3549
+ /* @__PURE__ */ import_react17.default.createElement(
3550
+ "div",
3551
+ {
3552
+ className: cn(
3553
+ "transition-all duration-300 ease-in-out",
3554
+ {
3555
+ "h-full": direction === "horizontal",
3556
+ "absolute bottom-0 w-full rounded-b-full": direction === "vertical",
3557
+ "bg-primary-400": color === "primary",
3558
+ "bg-accent-400": color === "secondary",
3559
+ "bg-success-400": color === "tertiary",
3560
+ "progress-bar-dashed": variant === "dashed",
3561
+ "progress-bar-dotted": variant === "dotted",
3562
+ stripe_overlay: striped,
3563
+ "animate-[progress_1s_linear_infinite]": animated,
3564
+ "animate-[indeterminate-horizontal_1.5s_ease-in-out_infinite]": indeterminate && direction === "horizontal",
3565
+ "origin-bottom animate-[indeterminate-vertical_1.5s_ease-in-out_infinite]": indeterminate && direction === "vertical"
3566
+ }
3567
+ ),
3568
+ style: {
3569
+ width: direction === "horizontal" ? indeterminate ? "100%" : `${clampedPercentage}%` : "100%",
3570
+ height: direction === "vertical" ? indeterminate ? "100%" : `${clampedPercentage}%` : "100%",
3571
+ backgroundColor: color.startsWith("#") ? color : void 0
3572
+ }
3573
+ },
3574
+ showPercentage && labelPosition === "inside" && /* @__PURE__ */ import_react17.default.createElement(
3575
+ "div",
3576
+ {
3577
+ "aria-label": `Current Progress: ${clampedPercentage}%`,
3578
+ className: `absolute flex items-center justify-center ${direction === "horizontal" ? "inset-0" : "inset-x-0 bottom-1"}`
3579
+ },
3580
+ /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[10px] font-semibold text-fg" }, indeterminate ? showLoadingLabel ? "Loading..." : "" : `${clampedPercentage}%`)
3581
+ )
3582
+ )
3583
+ ),
3584
+ showPercentage && labelPosition === "outside" && /* @__PURE__ */ import_react17.default.createElement(
3585
+ "div",
3586
+ {
3587
+ "data-testid": "percentage-container",
3588
+ "aria-label": `Current Progress: ${clampedPercentage}%`,
3589
+ className: `absolute ${direction === "horizontal" ? "top-full" : "left-full ml-2"}`,
3590
+ style: {
3591
+ ...direction === "horizontal" ? {
3592
+ left: `${clampedPercentage}%`,
3593
+ transform: "translateX(-50%)"
3594
+ } : {
3595
+ bottom: `${clampedPercentage}%`,
3596
+ transform: "translateY(50%)"
3597
+ }
3598
+ }
3599
+ },
3600
+ /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[10px] font-semibold text-fg" }, indeterminate ? showLoadingLabel ? "Loading..." : "" : `${clampedPercentage}%`)
3601
+ )
3602
+ ),
3603
+ direction === "vertical" && labelPosition === "outside" && /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative ml-2 h-full", style: { width: "auto" } }, maxLabel && /* @__PURE__ */ import_react17.default.createElement(
3604
+ "div",
3605
+ {
3606
+ "aria-label": `Max Label: ${maxLabel}`,
3607
+ className: "absolute left-0 top-[-10px]"
3608
+ },
3609
+ /* @__PURE__ */ import_react17.default.createElement(
3610
+ "span",
3611
+ {
3612
+ className: "text-xs font-medium",
3613
+ style: { color: maxColor }
3614
+ },
3615
+ maxLabel
3616
+ )
3617
+ ), minLabel && /* @__PURE__ */ import_react17.default.createElement(
3618
+ "div",
3619
+ {
3620
+ "aria-label": `Min Label: ${minLabel}`,
3621
+ className: "absolute bottom-[-5px] left-0"
3622
+ },
3623
+ /* @__PURE__ */ import_react17.default.createElement(
3624
+ "span",
3625
+ {
3626
+ className: "text-xs font-medium",
3627
+ style: { color: minColor }
3628
+ },
3629
+ minLabel
3630
+ )
3631
+ ))
3632
+ );
3633
+ };
3634
+ // Annotate the CommonJS export names for ESM import in node:
3635
+ 0 && (module.exports = {
3636
+ ProgressBar,
3637
+ TextArea,
3638
+ Tooltip
3639
+ });
3640
+ /*! Bundled license information:
3641
+
3642
+ classnames/index.js:
3643
+ (*!
3644
+ Copyright (c) 2018 Jed Watson.
3645
+ Licensed under the MIT License (MIT), see
3646
+ http://jedwatson.github.io/classnames
3647
+ *)
3648
+ */
3649
+ //# sourceMappingURL=index.cjs.map