mado-ui 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/index.css +161 -88
- package/dist/components/button.d.ts +1 -1
- package/dist/components/form/index.d.ts +2 -1
- package/dist/components/form/input/index.d.ts +4 -4
- package/dist/components/form/submit-button.d.ts +1 -1
- package/dist/components/form/textarea.d.ts +18 -0
- package/dist/components/heading.d.ts +9 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/link.d.ts +6 -11
- package/dist/components.esm.js +1329 -0
- package/dist/components.esm.js.map +1 -0
- package/dist/components.js +1343 -0
- package/dist/components.js.map +1 -0
- package/dist/hooks.esm.js +73 -0
- package/dist/hooks.esm.js.map +1 -0
- package/dist/hooks.js +80 -0
- package/dist/hooks.js.map +1 -0
- package/dist/icons.esm.js +416 -0
- package/dist/icons.esm.js.map +1 -0
- package/dist/icons.js +520 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +2 -4
- package/dist/index.esm.js +294 -592
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +293 -628
- package/dist/index.js.map +1 -1
- package/dist/types.esm.js +2 -0
- package/dist/types.esm.js.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.esm.js +751 -0
- package/dist/utils.esm.js.map +1 -0
- package/dist/utils.js +790 -0
- package/dist/utils.js.map +1 -0
- package/package.json +34 -2
package/dist/index.js
CHANGED
|
@@ -6,186 +6,6 @@ var react = require('react');
|
|
|
6
6
|
var react$1 = require('@headlessui/react');
|
|
7
7
|
var reactDom = require('react-dom');
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* ### Has Class
|
|
11
|
-
* - Returns a boolean based on whether the specified element has the specified class
|
|
12
|
-
* @param {HTMLElement} element Any HTML Element
|
|
13
|
-
* @param {string} className A string of any class to check for
|
|
14
|
-
* @returns {boolean} true if the specified element has the specified class, else false
|
|
15
|
-
*/
|
|
16
|
-
function hasClass(element, className) {
|
|
17
|
-
return element.classList.contains(className);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* ### Add Class
|
|
21
|
-
* - Adds the specified classes to the specified elements
|
|
22
|
-
* @param {Element|HTMLElement|HTMLElement[]|NodeList|string|undefined} elements An HTML Element, an array of HTML Elements, a Node List, a string (as a selector for a querySelector)
|
|
23
|
-
* @param {string|string[]} classList A string or an array of classes to add to each element
|
|
24
|
-
*/
|
|
25
|
-
function addClass(elements, classList) {
|
|
26
|
-
const elementsType = elements.constructor.name, elementsIsString = typeof elements === 'string', classListType = classList.constructor.name, classListIsString = typeof classList === 'string';
|
|
27
|
-
let elementList, classListGroup;
|
|
28
|
-
// & Convert elements to array
|
|
29
|
-
switch (elementsType) {
|
|
30
|
-
// Selector
|
|
31
|
-
case 'String':
|
|
32
|
-
if (elementsIsString)
|
|
33
|
-
elementList = Array.from(document.querySelectorAll(elements));
|
|
34
|
-
break;
|
|
35
|
-
// Multiple HTML Elements
|
|
36
|
-
case 'NodeList':
|
|
37
|
-
if (!elementsIsString)
|
|
38
|
-
elementList = Array.from(elements);
|
|
39
|
-
break;
|
|
40
|
-
// Array of Elements
|
|
41
|
-
case 'Array':
|
|
42
|
-
if (!elementsIsString)
|
|
43
|
-
elementList = elements;
|
|
44
|
-
break;
|
|
45
|
-
// Single HTML Element
|
|
46
|
-
default:
|
|
47
|
-
if (elementsType.startsWith('HTML') && !elementsIsString)
|
|
48
|
-
elementList = [elements];
|
|
49
|
-
}
|
|
50
|
-
// & Convert classList to array
|
|
51
|
-
switch (classListType) {
|
|
52
|
-
case 'String':
|
|
53
|
-
if (classListIsString)
|
|
54
|
-
if (classList.split(' ').length >= 2) {
|
|
55
|
-
classListGroup = classList.split(' ');
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
classListGroup = [classList];
|
|
59
|
-
}
|
|
60
|
-
break;
|
|
61
|
-
case 'Array':
|
|
62
|
-
if (!classListIsString)
|
|
63
|
-
classListGroup = classList;
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
if (!elementList || elementList.length < 1)
|
|
67
|
-
throw new Error(`Elements are invalid or undefined. elements: ${elements} → elementList: ${elementList}`);
|
|
68
|
-
if (!classListGroup || classListGroup.length < 1)
|
|
69
|
-
throw new Error(`Class List is invalid or undefined. classList: ${classList} → classListGroup: ${classListGroup}`);
|
|
70
|
-
elementList.forEach((element) => classListGroup.forEach((classItem) => {
|
|
71
|
-
if (hasClass(element, classItem))
|
|
72
|
-
return;
|
|
73
|
-
element.classList.add(classItem);
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* ### Remove Class
|
|
78
|
-
* - Removes the specified classes from the specified elements
|
|
79
|
-
* @param {HTMLElement|HTMLElement[]|NodeList|string|undefined} elements An HTML Element, an array of HTML Elements, a Node List, a string (as a selector for a querySelector)
|
|
80
|
-
* @param {string|string[]} classList A string or an array of classes to remove from each element
|
|
81
|
-
*/
|
|
82
|
-
function removeClass(elements, classList) {
|
|
83
|
-
const elementsType = elements.constructor.name, elementsIsString = typeof elements === 'string', classListType = classList.constructor.name, classListIsString = typeof classList === 'string';
|
|
84
|
-
let elementList, classListGroup;
|
|
85
|
-
// & Convert elements to array
|
|
86
|
-
switch (elementsType) {
|
|
87
|
-
// Selector
|
|
88
|
-
case 'String':
|
|
89
|
-
if (elementsIsString)
|
|
90
|
-
elementList = Array.from(document.querySelectorAll(elements));
|
|
91
|
-
break;
|
|
92
|
-
// Multiple HTML Elements
|
|
93
|
-
case 'NodeList':
|
|
94
|
-
if (!elementsIsString)
|
|
95
|
-
elementList = Array.from(elements);
|
|
96
|
-
break;
|
|
97
|
-
// Array of Elements
|
|
98
|
-
case 'Array':
|
|
99
|
-
if (!elementsIsString)
|
|
100
|
-
elementList = elements;
|
|
101
|
-
break;
|
|
102
|
-
// Single HTML Element
|
|
103
|
-
default:
|
|
104
|
-
if (elementsType.startsWith('HTML') && !elementsIsString)
|
|
105
|
-
elementList = [elements];
|
|
106
|
-
}
|
|
107
|
-
// & Convert classList to array
|
|
108
|
-
switch (classListType) {
|
|
109
|
-
case 'String':
|
|
110
|
-
if (classListIsString)
|
|
111
|
-
if (classList.split(' ').length >= 2) {
|
|
112
|
-
classListGroup = classList.split(' ');
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
classListGroup = [classList];
|
|
116
|
-
}
|
|
117
|
-
break;
|
|
118
|
-
case 'Array':
|
|
119
|
-
if (!classListIsString)
|
|
120
|
-
classListGroup = classList;
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
if (!elementList || elementList.length < 1)
|
|
124
|
-
throw new Error(`Elements are invalid or undefined. elements: ${elements} → elementList: ${elementList}`);
|
|
125
|
-
if (!classListGroup || classListGroup.length < 1)
|
|
126
|
-
throw new Error(`Class List is invalid or undefined. classList: ${classList} → classListGroup: ${classListGroup}`);
|
|
127
|
-
elementList.forEach((element) => classListGroup.forEach((classItem) => {
|
|
128
|
-
if (!hasClass(element, classItem))
|
|
129
|
-
return;
|
|
130
|
-
element.classList.remove(classItem);
|
|
131
|
-
}));
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* ### Toggle Class
|
|
135
|
-
* - Toggles the specified classes on the specified elements
|
|
136
|
-
* @param {HTMLElement|HTMLElement[]|NodeList|string|undefined} elements An HTML Element, an array of HTML Elements, a Node List, a string (as a selector for a querySelector)
|
|
137
|
-
* @param {string|string[]} classList A string or an array of classes to toggle on each element
|
|
138
|
-
*/
|
|
139
|
-
function toggleClass(elements, classList) {
|
|
140
|
-
const elementsType = elements.constructor.name, elementsIsString = typeof elements === 'string', classListType = classList.constructor.name, classListIsString = typeof classList === 'string';
|
|
141
|
-
let elementList, classListGroup;
|
|
142
|
-
// & Convert elements to array
|
|
143
|
-
switch (elementsType) {
|
|
144
|
-
// Selector
|
|
145
|
-
case 'String':
|
|
146
|
-
if (elementsIsString)
|
|
147
|
-
elementList = Array.from(document.querySelectorAll(elements));
|
|
148
|
-
break;
|
|
149
|
-
// Multiple HTML Elements
|
|
150
|
-
case 'NodeList':
|
|
151
|
-
if (!elementsIsString)
|
|
152
|
-
elementList = Array.from(elements);
|
|
153
|
-
break;
|
|
154
|
-
// Array of Elements
|
|
155
|
-
case 'Array':
|
|
156
|
-
if (!elementsIsString)
|
|
157
|
-
elementList = elements;
|
|
158
|
-
break;
|
|
159
|
-
// Single HTML Element
|
|
160
|
-
default:
|
|
161
|
-
if (elementsType.startsWith('HTML') && !elementsIsString)
|
|
162
|
-
elementList = [elements];
|
|
163
|
-
}
|
|
164
|
-
// & Convert classList to array
|
|
165
|
-
switch (classListType) {
|
|
166
|
-
case 'String':
|
|
167
|
-
if (classListIsString)
|
|
168
|
-
if (classList.split(' ').length >= 2) {
|
|
169
|
-
classListGroup = classList.split(' ');
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
classListGroup = [classList];
|
|
173
|
-
}
|
|
174
|
-
break;
|
|
175
|
-
case 'Array':
|
|
176
|
-
if (!classListIsString)
|
|
177
|
-
classListGroup = classList;
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
if (!elementList || elementList.length < 1)
|
|
181
|
-
throw new Error(`Elements are invalid or undefined. elements: ${elements} → elementList: ${elementList}`);
|
|
182
|
-
if (!classListGroup || classListGroup.length < 1)
|
|
183
|
-
throw new Error(`Class List is invalid or undefined. classList: ${classList} → classListGroup: ${classListGroup}`);
|
|
184
|
-
elementList.forEach((element) => classListGroup.forEach((classItem) => {
|
|
185
|
-
element.classList.toggle(classItem);
|
|
186
|
-
}));
|
|
187
|
-
}
|
|
188
|
-
|
|
189
9
|
const integerList = Array.from({ length: 100 }, (_, i) => `${i + 1}`);
|
|
190
10
|
const twMerge = tailwindMerge.extendTailwindMerge({
|
|
191
11
|
extend: {
|
|
@@ -262,105 +82,13 @@ const twMerge = tailwindMerge.extendTailwindMerge({
|
|
|
262
82
|
},
|
|
263
83
|
},
|
|
264
84
|
});
|
|
265
|
-
function extendMadoTailwindMerge(configExtension) {
|
|
266
|
-
const extend = configExtension.extend || {};
|
|
267
|
-
const theme = extend.theme || {};
|
|
268
|
-
const color = 'color' in theme ? theme.color : [];
|
|
269
|
-
const classGroups = extend.classGroups || {};
|
|
270
|
-
const themeRest = { ...theme };
|
|
271
|
-
if ('color' in themeRest)
|
|
272
|
-
delete themeRest.color;
|
|
273
|
-
const extendRest = { ...extend };
|
|
274
|
-
delete extendRest.theme;
|
|
275
|
-
delete extendRest.classGroups;
|
|
276
|
-
return tailwindMerge.extendTailwindMerge({
|
|
277
|
-
extend: {
|
|
278
|
-
theme: {
|
|
279
|
-
color: [
|
|
280
|
-
{
|
|
281
|
-
ui: [
|
|
282
|
-
'red',
|
|
283
|
-
'orange',
|
|
284
|
-
'yellow',
|
|
285
|
-
'green',
|
|
286
|
-
'sky-blue',
|
|
287
|
-
'blue',
|
|
288
|
-
'violet',
|
|
289
|
-
'magenta',
|
|
290
|
-
'purple',
|
|
291
|
-
'brown',
|
|
292
|
-
'grey',
|
|
293
|
-
'pink',
|
|
294
|
-
],
|
|
295
|
-
},
|
|
296
|
-
...color,
|
|
297
|
-
],
|
|
298
|
-
...themeRest,
|
|
299
|
-
},
|
|
300
|
-
classGroups: {
|
|
301
|
-
animate: [
|
|
302
|
-
{
|
|
303
|
-
animate: [
|
|
304
|
-
'bounce',
|
|
305
|
-
'double-spin',
|
|
306
|
-
'drop-in',
|
|
307
|
-
'flip',
|
|
308
|
-
'flip-again',
|
|
309
|
-
'grid-rows',
|
|
310
|
-
'heartbeat',
|
|
311
|
-
'ping',
|
|
312
|
-
'pulse',
|
|
313
|
-
'slide-up',
|
|
314
|
-
'spin',
|
|
315
|
-
'wave',
|
|
316
|
-
],
|
|
317
|
-
},
|
|
318
|
-
],
|
|
319
|
-
'animation-direction': [
|
|
320
|
-
{
|
|
321
|
-
'animation-direction': ['normal', 'reverse', 'alternate', 'alternate-reverse'],
|
|
322
|
-
},
|
|
323
|
-
],
|
|
324
|
-
'animation-fill': [
|
|
325
|
-
{
|
|
326
|
-
'animation-fill': ['none', 'forwards', 'backwards', 'both'],
|
|
327
|
-
},
|
|
328
|
-
],
|
|
329
|
-
'animation-iteration': [
|
|
330
|
-
{
|
|
331
|
-
'animation-iteration': [...integerList, 'infinite'],
|
|
332
|
-
},
|
|
333
|
-
],
|
|
334
|
-
'animation-state': [
|
|
335
|
-
{
|
|
336
|
-
'animation-state': ['running', 'paused'],
|
|
337
|
-
},
|
|
338
|
-
],
|
|
339
|
-
'grid-cols': [
|
|
340
|
-
{
|
|
341
|
-
'grid-cols': ['0fr', '1fr'],
|
|
342
|
-
},
|
|
343
|
-
],
|
|
344
|
-
'grid-rows': [
|
|
345
|
-
{
|
|
346
|
-
'grid-rows': ['0fr', '1fr'],
|
|
347
|
-
},
|
|
348
|
-
],
|
|
349
|
-
transition: ['transition-rows'],
|
|
350
|
-
...classGroups,
|
|
351
|
-
},
|
|
352
|
-
...extendRest,
|
|
353
|
-
},
|
|
354
|
-
...configExtension,
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
85
|
|
|
358
86
|
/** The current date as a Date object */
|
|
359
87
|
const d = new Date();
|
|
360
88
|
/** The current minute of the current hour */
|
|
361
89
|
const minutes = d.getMinutes();
|
|
362
90
|
/** The current year */
|
|
363
|
-
|
|
91
|
+
d.getFullYear();
|
|
364
92
|
/** An array of the names of month in order */
|
|
365
93
|
const monthNamesList = [
|
|
366
94
|
'January',
|
|
@@ -387,29 +115,9 @@ const weekdayNamesList = [
|
|
|
387
115
|
'Saturday',
|
|
388
116
|
];
|
|
389
117
|
/** The name of the current month */
|
|
390
|
-
|
|
118
|
+
getMonthName();
|
|
391
119
|
/** The name of the current day of the week */
|
|
392
|
-
|
|
393
|
-
/**
|
|
394
|
-
* ### Days In Month
|
|
395
|
-
* - Returns the number of days in the specified month.
|
|
396
|
-
* @param {Date} date A Date object representing the month to get the number of days for. (Preset to the current date)
|
|
397
|
-
* @returns {number} The number of days in the specified month.
|
|
398
|
-
*/
|
|
399
|
-
function daysInMonth(date = d) {
|
|
400
|
-
const selectedYear = date.getFullYear(), selectedMonth = date.getMonth() + 1;
|
|
401
|
-
return new Date(selectedYear, selectedMonth, 0).getDate();
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* ### First of Month
|
|
405
|
-
* - Returns the first day of the specified month.
|
|
406
|
-
* @param {Date} date A Date object representing the month to get the first day for. (Preset to current date)
|
|
407
|
-
* @returns {Date} A Date object of the given month, with the first day.
|
|
408
|
-
*/
|
|
409
|
-
function firstOfMonth(date = d) {
|
|
410
|
-
// Return a new Date object with the first of the month selected
|
|
411
|
-
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
412
|
-
}
|
|
120
|
+
getWeekdayName();
|
|
413
121
|
/**
|
|
414
122
|
* ### Get Date
|
|
415
123
|
* - Returns the date with two digits
|
|
@@ -438,32 +146,6 @@ function getHours(hours = d) {
|
|
|
438
146
|
formattedHours = `0${formattedHours}`;
|
|
439
147
|
return formattedHours;
|
|
440
148
|
}
|
|
441
|
-
/**
|
|
442
|
-
* ### Get Hours in 12
|
|
443
|
-
* - Returns the hour based on the specified 24 hour value in a 12 hour format
|
|
444
|
-
* @param {number|Date} hour The hour to be converted to 12 hour format
|
|
445
|
-
* @returns {number} The hour in a 12 hour format
|
|
446
|
-
*/
|
|
447
|
-
function getHoursIn12(hour = d) {
|
|
448
|
-
if (typeof hour !== 'number')
|
|
449
|
-
hour = hour.getHours();
|
|
450
|
-
if (hour > 12)
|
|
451
|
-
return hour - 12;
|
|
452
|
-
return hour;
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* ### Get Meridian from Hour
|
|
456
|
-
* - Returns either 'pm' or 'am' based on the specified 24 hour value
|
|
457
|
-
* @param {number|Date} hour The hour to get the meridian from
|
|
458
|
-
* @returns {'am'|'pm'} The meridian for the given hour
|
|
459
|
-
*/
|
|
460
|
-
function getMeridianFromHour(hour = d) {
|
|
461
|
-
if (typeof hour !== 'number')
|
|
462
|
-
hour = hour.getHours();
|
|
463
|
-
if (hour >= 12)
|
|
464
|
-
return 'pm';
|
|
465
|
-
return 'am';
|
|
466
|
-
}
|
|
467
149
|
/**
|
|
468
150
|
* ### Get Milliseconds
|
|
469
151
|
* - Returns the milliseconds with two digits
|
|
@@ -506,9 +188,6 @@ function getMonth(month = d) {
|
|
|
506
188
|
formattedMonth = `0${formattedMonth}`;
|
|
507
189
|
return formattedMonth;
|
|
508
190
|
}
|
|
509
|
-
function getMonthIndexFromName(name) {
|
|
510
|
-
return monthNamesList.findIndex(monthName => monthName === name);
|
|
511
|
-
}
|
|
512
191
|
/**
|
|
513
192
|
* ### Get Month Name
|
|
514
193
|
* - Returns the name of the specified month
|
|
@@ -520,28 +199,6 @@ function getMonthName(date = d) {
|
|
|
520
199
|
return monthNamesList[date];
|
|
521
200
|
return monthNamesList[date.getMonth()];
|
|
522
201
|
}
|
|
523
|
-
/**
|
|
524
|
-
* ### Get Next Month
|
|
525
|
-
* - Returns the number of the following month from the specified month
|
|
526
|
-
* @param {Date} date The Date object representing the month to get the following month from (Preset to current date)
|
|
527
|
-
* @returns {number} The indexed month of the following month
|
|
528
|
-
*/
|
|
529
|
-
function getNextMonth(date = d) {
|
|
530
|
-
const givenMonth = date.getMonth(); // Get the month from date
|
|
531
|
-
// Return the indexed month. min 0, max 11
|
|
532
|
-
return givenMonth === 11 ? 0 : givenMonth + 1;
|
|
533
|
-
}
|
|
534
|
-
/**
|
|
535
|
-
* ### Get Previous Month
|
|
536
|
-
* - Returns the number of the previous month from the specified month
|
|
537
|
-
* @param {Date} date The Date object representing the month to get the previous month from (Preset to current date)
|
|
538
|
-
* @returns {number} The indexed month of the previous month
|
|
539
|
-
*/
|
|
540
|
-
function getPreviousMonth(date = d) {
|
|
541
|
-
const givenMonth = date.getMonth(); // Get the month from date
|
|
542
|
-
// Return the indexed month. min 0, max 11
|
|
543
|
-
return givenMonth === 0 ? 11 : givenMonth - 1;
|
|
544
|
-
}
|
|
545
202
|
/**
|
|
546
203
|
* ### Get Seconds
|
|
547
204
|
* - Returns the seconds with two digits
|
|
@@ -556,31 +213,6 @@ function getSeconds(seconds = d) {
|
|
|
556
213
|
formattedSeconds = `0${formattedSeconds}`;
|
|
557
214
|
return formattedSeconds;
|
|
558
215
|
}
|
|
559
|
-
/**
|
|
560
|
-
* ### Get User Readable Date
|
|
561
|
-
* - Returns a string of the current date in a user-friendly way
|
|
562
|
-
* - Includes `'Yesterday'`, '`Today'`, and `'Tomorrow'`
|
|
563
|
-
* @param date (default: `new Date()`)
|
|
564
|
-
* @returns {'Today'|'Tomorrow'|'Yesterday'|string} `'weekday, month day, year'` | `'Yesterday'` | `'Today'` | `'Tomorrow'`
|
|
565
|
-
*/
|
|
566
|
-
function getUserReadableDate(date = d) {
|
|
567
|
-
const dateTime = date.getTime();
|
|
568
|
-
const today = new Date(), isToday = dateTime === today.getTime();
|
|
569
|
-
if (isToday)
|
|
570
|
-
return 'Today';
|
|
571
|
-
const yesterday = new Date(today.getDate() - 1), isYesterday = dateTime === yesterday.getTime();
|
|
572
|
-
if (isYesterday)
|
|
573
|
-
return 'Yesterday';
|
|
574
|
-
const tomorrow = new Date(today.getDate() + 1), isTomorrow = dateTime === tomorrow.getTime();
|
|
575
|
-
if (isTomorrow)
|
|
576
|
-
return 'Tomorrow';
|
|
577
|
-
const thisYear = today.getFullYear(), isSameYear = date.getFullYear() === thisYear;
|
|
578
|
-
const fullDateString = toFullDateString(date, {
|
|
579
|
-
weekday: 'code',
|
|
580
|
-
year: !isSameYear,
|
|
581
|
-
});
|
|
582
|
-
return fullDateString;
|
|
583
|
-
}
|
|
584
216
|
/**
|
|
585
217
|
* ### Get Weekday Name
|
|
586
218
|
* - Returns the weekday name of the specified day
|
|
@@ -593,80 +225,6 @@ function getWeekdayName(weekday = d) {
|
|
|
593
225
|
// Return the name of the day of the week
|
|
594
226
|
return weekdayNamesList[weekday.getDay()];
|
|
595
227
|
}
|
|
596
|
-
/**
|
|
597
|
-
* ### Get Years in Range
|
|
598
|
-
* - Returns an array of years in between the specified minimum and maximum years
|
|
599
|
-
* @param {number} minYear The minimum year
|
|
600
|
-
* @param {number} maxYear The maximum year
|
|
601
|
-
* @returns {number[]} Array of years
|
|
602
|
-
*/
|
|
603
|
-
function getYearsInRange(minYear = 0, maxYear = year) {
|
|
604
|
-
const yearList = [];
|
|
605
|
-
for (let selectedYear = minYear; selectedYear <= maxYear; selectedYear++) {
|
|
606
|
-
yearList.push(selectedYear);
|
|
607
|
-
}
|
|
608
|
-
return yearList;
|
|
609
|
-
}
|
|
610
|
-
/**
|
|
611
|
-
* ### To Full Date String
|
|
612
|
-
* - Returns a formatted string to display the date
|
|
613
|
-
* @param {Date} date (default: `new Date()`)
|
|
614
|
-
* @param {ToFullDateStringOptionsProps} options Change how to display the weekday, month name, day of the month, and year.
|
|
615
|
-
* @returns {string} '`weekday`, `month` `day`, `year`'
|
|
616
|
-
*/
|
|
617
|
-
function toFullDateString(date = d, options) {
|
|
618
|
-
let weekdayName = getWeekdayName(date), monthName = getMonthName(date), dayOfMonth = date.getDate(), year = date.getFullYear().toString();
|
|
619
|
-
if (options) {
|
|
620
|
-
const includesWeekday = options.weekday !== false, includesDay = options.day !== false, includesMonth = options.month !== false, includesYear = options.year !== false;
|
|
621
|
-
if (includesWeekday) {
|
|
622
|
-
if (options.weekday === 'code')
|
|
623
|
-
weekdayName = weekdayName.slice(0, 3);
|
|
624
|
-
if (includesMonth || includesDay || includesYear)
|
|
625
|
-
weekdayName += ', ';
|
|
626
|
-
}
|
|
627
|
-
else {
|
|
628
|
-
weekdayName = '';
|
|
629
|
-
}
|
|
630
|
-
if (includesMonth) {
|
|
631
|
-
if (options.month === 'code')
|
|
632
|
-
monthName = monthName.slice(0, 3);
|
|
633
|
-
if (includesDay)
|
|
634
|
-
monthName += ' ';
|
|
635
|
-
}
|
|
636
|
-
else {
|
|
637
|
-
monthName = '';
|
|
638
|
-
}
|
|
639
|
-
if (!includesDay)
|
|
640
|
-
dayOfMonth = '';
|
|
641
|
-
if (includesYear) {
|
|
642
|
-
if (options.year === 'code')
|
|
643
|
-
year = year.slice(-2);
|
|
644
|
-
if (includesMonth || includesDay)
|
|
645
|
-
year = ', ' + year;
|
|
646
|
-
}
|
|
647
|
-
else {
|
|
648
|
-
year = '';
|
|
649
|
-
}
|
|
650
|
-
}
|
|
651
|
-
return weekdayName + monthName + dayOfMonth + year;
|
|
652
|
-
}
|
|
653
|
-
/**
|
|
654
|
-
* ### Get User Readable Date From Timestampz
|
|
655
|
-
* - Returns a string of the current date in a user-friendly way
|
|
656
|
-
* - Includes `'Yesterday'`, '`Today'`, and `'Tomorrow'`
|
|
657
|
-
* @param string
|
|
658
|
-
* @returns {'Today'|'Tomorrow'|'Yesterday'|string} `'weekday, month day, year'` | `'Yesterday'` | `'Today'` | `'Tomorrow'`
|
|
659
|
-
*/
|
|
660
|
-
function getUserReadableDateFromTimestampz(timestampz) {
|
|
661
|
-
const [date, time] = timestampz.split('T') || [];
|
|
662
|
-
const [year, month, day] = date?.split('-').map(string => Number(string)) || [];
|
|
663
|
-
const timezoneIsAheadOfUTC = time?.includes('+');
|
|
664
|
-
const [hms, _timezone] = timezoneIsAheadOfUTC ? time?.split('+') : time?.split('-') || [];
|
|
665
|
-
const [hours, minutes, seconds] = hms?.split(':').map(string => Number(string)) || [];
|
|
666
|
-
// const [timezoneHours, timezoneMinutes] = timezone?.split(':').map(string => Number(string)) || []
|
|
667
|
-
const dateAndTime = new Date(year, month - 1, day, hours, minutes, seconds), userReadableDateAndTime = getUserReadableDate(dateAndTime);
|
|
668
|
-
return userReadableDateAndTime;
|
|
669
|
-
}
|
|
670
228
|
|
|
671
229
|
function findComponentByType(children, componentType) {
|
|
672
230
|
const childrenArray = react.Children.toArray(children);
|
|
@@ -719,7 +277,7 @@ function isPhoneNumber(tel) {
|
|
|
719
277
|
* @returns {string} string formatted (000) 000-0000
|
|
720
278
|
*/
|
|
721
279
|
function formatPhoneNumber(string, countryCode) {
|
|
722
|
-
return (`${
|
|
280
|
+
return (`${`+${countryCode} ` }` +
|
|
723
281
|
string
|
|
724
282
|
.replace(/\D/g, '')
|
|
725
283
|
.slice(-10)
|
|
@@ -769,15 +327,15 @@ function Anchor({ className, disabled, href, onClick, ref, target, rel, ...props
|
|
|
769
327
|
: 'prefetch' }));
|
|
770
328
|
}
|
|
771
329
|
// * Styles
|
|
772
|
-
const baseClasses = twSort('
|
|
773
|
-
const lineStaticClasses = tailwindMerge.twJoin(baseClasses, '
|
|
774
|
-
const lineClasses = tailwindMerge.twJoin(lineStaticClasses, '
|
|
330
|
+
const baseClasses = twSort('isolate inline-block cursor-pointer duration-300 ease-exponential after:absolute after:left-1/2 after:-z-10 after:-translate-x-1/2 after:duration-500 active:scale-95 active:after:opacity-100');
|
|
331
|
+
const lineStaticClasses = tailwindMerge.twJoin(baseClasses, 'whitespace-nowrap after:-bottom-0.5 after:w-[calc(100%+0.15rem)] after:rounded-full after:border-1 after:border-current');
|
|
332
|
+
const lineClasses = tailwindMerge.twJoin(lineStaticClasses, 'whitespace-nowrap transition-transform after:transition-transform after:ease-exponential');
|
|
775
333
|
const scaleXClasses = 'after:scale-x-0 pointer-fine:hover:after:scale-x-100 active:after:scale-x-100';
|
|
776
334
|
const scaleYClasses = 'after:scale-y-0 pointer-fine:hover:after:scale-y-100 active:after:scale-y-100';
|
|
777
335
|
const lineNormalClasses = tailwindMerge.twJoin([
|
|
778
336
|
lineClasses,
|
|
779
337
|
scaleYClasses,
|
|
780
|
-
'
|
|
338
|
+
'after:origin-bottom after:translate-y-0.5 active:after:translate-y-0 pointer-fine:hover:after:translate-y-0',
|
|
781
339
|
]);
|
|
782
340
|
const lineLtrClasses = tailwindMerge.twJoin([lineClasses, scaleXClasses, 'after:origin-left']);
|
|
783
341
|
const lineRtlClasses = tailwindMerge.twJoin([lineClasses, scaleXClasses, 'after:origin-right']);
|
|
@@ -785,160 +343,151 @@ const lineCenterClasses = tailwindMerge.twJoin([lineClasses, scaleXClasses]);
|
|
|
785
343
|
const lineLiftClasses = tailwindMerge.twJoin([
|
|
786
344
|
lineClasses,
|
|
787
345
|
scaleYClasses,
|
|
788
|
-
'
|
|
346
|
+
'after:origin-bottom after:translate-y-1 after:scale-x-75 active:after:translate-y-0 active:after:scale-x-100 pointer-fine:hover:after:translate-y-0 pointer-fine:hover:after:scale-x-100',
|
|
789
347
|
]);
|
|
790
|
-
const fillClasses = tailwindMerge.twJoin(baseClasses, '
|
|
348
|
+
const fillClasses = tailwindMerge.twJoin(baseClasses, 'whitespace-nowrap transition-[transform_color] after:top-1/2 after:h-[calc(100%+0.05rem)] after:w-[calc(100%+0.25rem)] after:-translate-y-1/2 after:rounded after:ease-exponential active:text-zinc-50 pointer-fine:hover:text-zinc-50');
|
|
791
349
|
// Define theme-specific fill color transition classes
|
|
792
350
|
const getFillColorTransitionClasses = (theme = 'blue') => {
|
|
793
351
|
switch (theme) {
|
|
794
352
|
case 'brown':
|
|
795
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-brown contrast-more:after:bg-ui-brown
|
|
353
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-brown after:transition-transform contrast-more:after:bg-ui-brown');
|
|
796
354
|
case 'green':
|
|
797
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-green contrast-more:after:bg-ui-green
|
|
355
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-green after:transition-transform contrast-more:after:bg-ui-green');
|
|
798
356
|
case 'grey':
|
|
799
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-grey contrast-more:after:bg-ui-grey
|
|
357
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-grey after:transition-transform contrast-more:after:bg-ui-grey');
|
|
800
358
|
case 'sky-blue':
|
|
801
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-sky-blue contrast-more:after:bg-ui-sky-blue
|
|
359
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-sky-blue after:transition-transform contrast-more:after:bg-ui-sky-blue');
|
|
802
360
|
case 'magenta':
|
|
803
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-magenta contrast-more:after:bg-ui-magenta
|
|
361
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-magenta after:transition-transform contrast-more:after:bg-ui-magenta');
|
|
804
362
|
case 'neutral':
|
|
805
363
|
return tailwindMerge.twJoin(fillClasses, 'after:bg-zinc-700 after:transition-transform contrast-more:after:bg-zinc-700 dark:after:bg-zinc-300 dark:contrast-more:after:bg-zinc-300');
|
|
806
364
|
case 'orange':
|
|
807
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-orange contrast-more:after:bg-ui-orange
|
|
365
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-orange after:transition-transform contrast-more:after:bg-ui-orange');
|
|
808
366
|
case 'pink':
|
|
809
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-pink contrast-more:after:bg-ui-pink
|
|
810
|
-
case 'primary':
|
|
811
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-primary-500 contrast-more:after:bg-primary-500 after:transition-transform');
|
|
367
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-pink after:transition-transform contrast-more:after:bg-ui-pink');
|
|
812
368
|
case 'purple':
|
|
813
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-purple contrast-more:after:bg-ui-purple
|
|
369
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-purple after:transition-transform contrast-more:after:bg-ui-purple');
|
|
814
370
|
case 'red':
|
|
815
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-red contrast-more:after:bg-ui-red
|
|
371
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-red after:transition-transform contrast-more:after:bg-ui-red');
|
|
816
372
|
case 'violet':
|
|
817
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-violet contrast-more:after:bg-ui-violet
|
|
373
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-violet after:transition-transform contrast-more:after:bg-ui-violet');
|
|
818
374
|
case 'yellow':
|
|
819
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-yellow contrast-more:after:bg-ui-yellow
|
|
375
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-yellow after:transition-transform contrast-more:after:bg-ui-yellow');
|
|
820
376
|
case 'blue':
|
|
821
377
|
default:
|
|
822
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-blue contrast-more:after:bg-ui-blue
|
|
378
|
+
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-blue after:transition-transform contrast-more:after:bg-ui-blue');
|
|
823
379
|
}
|
|
824
380
|
};
|
|
825
381
|
// Define theme-specific fill center classes
|
|
826
382
|
const getFillCenterClasses = (theme = 'blue') => {
|
|
827
383
|
switch (theme) {
|
|
828
384
|
case 'brown':
|
|
829
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-brown/0
|
|
385
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-brown/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-brown pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-brown');
|
|
830
386
|
case 'green':
|
|
831
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-green/0
|
|
387
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-green/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-green pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-green');
|
|
832
388
|
case 'grey':
|
|
833
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-grey/0
|
|
389
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-grey/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-grey pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-grey');
|
|
834
390
|
case 'sky-blue':
|
|
835
|
-
return tailwindMerge.twJoin(fillClasses, 'after:
|
|
391
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-sky-blue/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-sky-blue pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-sky-blue');
|
|
836
392
|
case 'magenta':
|
|
837
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-magenta/0
|
|
393
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-magenta/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-magenta pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-magenta');
|
|
838
394
|
case 'neutral':
|
|
839
|
-
return tailwindMerge.twJoin(fillClasses, '
|
|
395
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-zinc-700/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-zinc-700 dark:after:bg-zinc-300/0 dark:active:after:bg-zinc-300 pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-zinc-700 dark:pointer-fine:hover:after:bg-zinc-300');
|
|
840
396
|
case 'orange':
|
|
841
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-orange/0
|
|
397
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-orange/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-orange pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-orange');
|
|
842
398
|
case 'pink':
|
|
843
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-pink/0
|
|
844
|
-
case 'primary':
|
|
845
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-primary-500/0 active:after:bg-primary-500 pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-primary-500 after:scale-x-50 after:scale-y-[0.25] after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100');
|
|
399
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-pink/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-pink pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-pink');
|
|
846
400
|
case 'purple':
|
|
847
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-purple/0
|
|
401
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-purple/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-purple pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-purple');
|
|
848
402
|
case 'red':
|
|
849
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-red/0
|
|
403
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-red/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-red pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-red');
|
|
850
404
|
case 'violet':
|
|
851
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-violet/0
|
|
405
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-violet/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-violet pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-violet');
|
|
852
406
|
case 'yellow':
|
|
853
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-yellow/0
|
|
407
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-yellow/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-yellow pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-yellow');
|
|
854
408
|
case 'blue':
|
|
855
409
|
default:
|
|
856
|
-
return tailwindMerge.twJoin(fillClasses, 'after:bg-ui-blue/0
|
|
410
|
+
return tailwindMerge.twJoin(fillClasses, 'after:scale-x-50 after:scale-y-[0.25] after:bg-ui-blue/0 after:transition-[transform_background-color] active:after:scale-x-100 active:after:scale-y-100 active:after:bg-ui-blue pointer-fine:hover:after:scale-x-100 pointer-fine:hover:after:scale-y-100 pointer-fine:hover:after:bg-ui-blue');
|
|
857
411
|
}
|
|
858
412
|
};
|
|
859
413
|
const multilineBaseClasses = twSort('bg-linear-to-r from-current to-current bg-no-repeat active:scale-95');
|
|
860
414
|
const multilineLineStaticClasses = 'underline';
|
|
861
|
-
const multilineNormalClasses = twSort('
|
|
862
|
-
const multilineClasses = tailwindMerge.twJoin(multilineBaseClasses, 'ease-exponential
|
|
415
|
+
const multilineNormalClasses = twSort('underline-offset-1 active:underline pointer-fine:hover:underline');
|
|
416
|
+
const multilineClasses = tailwindMerge.twJoin(multilineBaseClasses, 'duration-500 ease-exponential');
|
|
863
417
|
const multilineLineClasses = tailwindMerge.twJoin(multilineClasses, 'bg-[position:0%_100%] px-px pb-px transition-[background-size]');
|
|
864
|
-
const multilineXClasses = tailwindMerge.twJoin(multilineLineClasses, '
|
|
418
|
+
const multilineXClasses = tailwindMerge.twJoin(multilineLineClasses, 'bg-[size:0%_2px] focus-visible:bg-[size:100%_2px] active:bg-[size:100%_2px] pointer-fine:hover:bg-[size:100%_2px]');
|
|
865
419
|
const multilineLineRtlClasses = tailwindMerge.twJoin([multilineXClasses, 'bg-[position:100%_100%]']);
|
|
866
420
|
const multilineLineCenterClasses = tailwindMerge.twJoin([multilineXClasses, 'bg-[position:50%_100%]']);
|
|
867
|
-
const multilineLineLiftClasses = tailwindMerge.twJoin(multilineLineClasses, '
|
|
868
|
-
const multilineFillBaseClasses = tailwindMerge.twJoin(multilineBaseClasses, 'py-0.75
|
|
869
|
-
// Define theme-specific multiline fill color classes
|
|
421
|
+
const multilineLineLiftClasses = tailwindMerge.twJoin(multilineLineClasses, 'bg-[size:auto_0px] focus-visible:bg-[size:auto_2px] active:bg-[size:auto_2px] pointer-fine:hover:bg-[size:auto_2px]');
|
|
422
|
+
const multilineFillBaseClasses = tailwindMerge.twJoin(multilineBaseClasses, 'rounded px-0.5 py-0.75 focus-visible:text-zinc-50 active:text-zinc-50 pointer-fine:hover:text-zinc-50');
|
|
870
423
|
const getMultilineFillColorClasses = (theme = 'blue') => {
|
|
871
424
|
switch (theme) {
|
|
872
425
|
case 'brown':
|
|
873
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-brown to-ui-brown contrast-more:from-ui-brown contrast-more:to-ui-brown
|
|
426
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-brown to-ui-brown transition-[background-size_color] contrast-more:from-ui-brown contrast-more:to-ui-brown');
|
|
874
427
|
case 'green':
|
|
875
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-green to-ui-green contrast-more:from-ui-green contrast-more:to-ui-green
|
|
428
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-green to-ui-green transition-[background-size_color] contrast-more:from-ui-green contrast-more:to-ui-green');
|
|
876
429
|
case 'grey':
|
|
877
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-grey to-ui-grey contrast-more:from-ui-grey contrast-more:to-ui-grey
|
|
430
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-grey to-ui-grey transition-[background-size_color] contrast-more:from-ui-grey contrast-more:to-ui-grey');
|
|
878
431
|
case 'sky-blue':
|
|
879
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-sky-blue to-ui-sky-blue contrast-more:from-ui-sky-blue contrast-more:to-ui-sky-blue
|
|
432
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-sky-blue to-ui-sky-blue transition-[background-size_color] contrast-more:from-ui-sky-blue contrast-more:to-ui-sky-blue');
|
|
880
433
|
case 'magenta':
|
|
881
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-magenta to-ui-magenta contrast-more:from-ui-magenta contrast-more:to-ui-magenta
|
|
434
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-magenta to-ui-magenta transition-[background-size_color] contrast-more:from-ui-magenta contrast-more:to-ui-magenta');
|
|
882
435
|
case 'neutral':
|
|
883
436
|
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-zinc-700 to-zinc-700 transition-[background-size_color] contrast-more:from-zinc-700 contrast-more:to-zinc-700 dark:from-zinc-300 dark:to-zinc-300 dark:contrast-more:from-zinc-300 dark:contrast-more:to-zinc-300');
|
|
884
437
|
case 'orange':
|
|
885
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-orange to-ui-orange contrast-more:from-ui-orange contrast-more:to-ui-orange
|
|
438
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-orange to-ui-orange transition-[background-size_color] contrast-more:from-ui-orange contrast-more:to-ui-orange');
|
|
886
439
|
case 'pink':
|
|
887
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-pink to-ui-pink contrast-more:from-ui-pink contrast-more:to-ui-pink
|
|
888
|
-
case 'primary':
|
|
889
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-primary-500 to-primary-500 contrast-more:from-primary-500 contrast-more:to-primary-500 transition-[background-size_color]');
|
|
440
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-pink to-ui-pink transition-[background-size_color] contrast-more:from-ui-pink contrast-more:to-ui-pink');
|
|
890
441
|
case 'purple':
|
|
891
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-purple to-ui-purple contrast-more:from-ui-purple contrast-more:to-ui-purple
|
|
442
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-purple to-ui-purple transition-[background-size_color] contrast-more:from-ui-purple contrast-more:to-ui-purple');
|
|
892
443
|
case 'red':
|
|
893
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-red to-ui-red contrast-more:from-ui-red contrast-more:to-ui-red
|
|
444
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-red to-ui-red transition-[background-size_color] contrast-more:from-ui-red contrast-more:to-ui-red');
|
|
894
445
|
case 'violet':
|
|
895
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-violet to-ui-violet contrast-more:from-ui-violet contrast-more:to-ui-violet
|
|
446
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-violet to-ui-violet transition-[background-size_color] contrast-more:from-ui-violet contrast-more:to-ui-violet');
|
|
896
447
|
case 'yellow':
|
|
897
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-yellow to-ui-yellow contrast-more:from-ui-yellow contrast-more:to-ui-yellow
|
|
448
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-yellow to-ui-yellow transition-[background-size_color] contrast-more:from-ui-yellow contrast-more:to-ui-yellow');
|
|
898
449
|
case 'blue':
|
|
899
450
|
default:
|
|
900
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-blue to-ui-blue contrast-more:from-ui-blue contrast-more:to-ui-blue
|
|
451
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-blue to-ui-blue transition-[background-size_color] contrast-more:from-ui-blue contrast-more:to-ui-blue');
|
|
901
452
|
}
|
|
902
453
|
};
|
|
903
454
|
// Define theme-specific multiline fill classes
|
|
904
455
|
const getMultilineFillClasses = (theme = 'blue') => {
|
|
905
456
|
switch (theme) {
|
|
906
457
|
case 'brown':
|
|
907
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-brown/0 to-ui-brown/0 focus-visible:from-ui-brown focus-visible:to-ui-brown active:from-ui-brown active:to-ui-brown contrast-more:from-ui-brown/0 contrast-more:to-ui-brown/0 focus-visible:contrast-more:from-ui-brown focus-visible:contrast-more:to-ui-brown active:contrast-more:from-ui-brown active:contrast-more:to-ui-brown pointer-fine:hover:from-ui-brown pointer-fine:hover:to-ui-brown pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-brown pointer-fine:hover:contrast-more:to-ui-brown
|
|
458
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-brown/0 to-ui-brown/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-brown focus-visible:to-ui-brown focus-visible:bg-[size:100%_100%] active:from-ui-brown active:to-ui-brown active:bg-[size:100%_100%] contrast-more:from-ui-brown/0 contrast-more:to-ui-brown/0 focus-visible:contrast-more:from-ui-brown focus-visible:contrast-more:to-ui-brown active:contrast-more:from-ui-brown active:contrast-more:to-ui-brown pointer-fine:hover:from-ui-brown pointer-fine:hover:to-ui-brown pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-brown pointer-fine:hover:contrast-more:to-ui-brown');
|
|
908
459
|
case 'green':
|
|
909
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-green/0 to-ui-green/0 focus-visible:from-ui-green focus-visible:to-ui-green active:from-ui-green active:to-ui-green contrast-more:from-ui-green/0 contrast-more:to-ui-green/0 focus-visible:contrast-more:from-ui-green focus-visible:contrast-more:to-ui-green active:contrast-more:from-ui-green active:contrast-more:to-ui-green pointer-fine:hover:from-ui-green pointer-fine:hover:to-ui-green pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-green pointer-fine:hover:contrast-more:to-ui-green
|
|
460
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-green/0 to-ui-green/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-green focus-visible:to-ui-green focus-visible:bg-[size:100%_100%] active:from-ui-green active:to-ui-green active:bg-[size:100%_100%] contrast-more:from-ui-green/0 contrast-more:to-ui-green/0 focus-visible:contrast-more:from-ui-green focus-visible:contrast-more:to-ui-green active:contrast-more:from-ui-green active:contrast-more:to-ui-green pointer-fine:hover:from-ui-green pointer-fine:hover:to-ui-green pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-green pointer-fine:hover:contrast-more:to-ui-green');
|
|
910
461
|
case 'grey':
|
|
911
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-grey/0 to-ui-grey/0 focus-visible:from-ui-grey focus-visible:to-ui-grey active:from-ui-grey active:to-ui-grey contrast-more:from-ui-grey/0 contrast-more:to-ui-grey/0 focus-visible:contrast-more:from-ui-grey focus-visible:contrast-more:to-ui-grey active:contrast-more:from-ui-grey active:contrast-more:to-ui-grey pointer-fine:hover:from-ui-grey pointer-fine:hover:to-ui-grey pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-grey pointer-fine:hover:contrast-more:to-ui-grey
|
|
462
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-grey/0 to-ui-grey/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-grey focus-visible:to-ui-grey focus-visible:bg-[size:100%_100%] active:from-ui-grey active:to-ui-grey active:bg-[size:100%_100%] contrast-more:from-ui-grey/0 contrast-more:to-ui-grey/0 focus-visible:contrast-more:from-ui-grey focus-visible:contrast-more:to-ui-grey active:contrast-more:from-ui-grey active:contrast-more:to-ui-grey pointer-fine:hover:from-ui-grey pointer-fine:hover:to-ui-grey pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-grey pointer-fine:hover:contrast-more:to-ui-grey');
|
|
912
463
|
case 'sky-blue':
|
|
913
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-sky-blue/0 to-ui-sky-blue/0 focus-visible:from-ui-sky-blue focus-visible:to-ui-sky-blue active:from-ui-sky-blue active:to-ui-sky-blue contrast-more:from-ui-sky-blue/0 contrast-more:to-ui-sky-blue/0 focus-visible:contrast-more:from-ui-sky-blue focus-visible:contrast-more:to-ui-sky-blue active:contrast-more:from-ui-sky-blue active:contrast-more:to-ui-sky-blue pointer-fine:hover:from-ui-sky-blue pointer-fine:hover:to-ui-sky-blue pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-sky-blue pointer-fine:hover:contrast-more:to-ui-sky-blue
|
|
464
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-sky-blue/0 to-ui-sky-blue/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-sky-blue focus-visible:to-ui-sky-blue focus-visible:bg-[size:100%_100%] active:from-ui-sky-blue active:to-ui-sky-blue active:bg-[size:100%_100%] contrast-more:from-ui-sky-blue/0 contrast-more:to-ui-sky-blue/0 focus-visible:contrast-more:from-ui-sky-blue focus-visible:contrast-more:to-ui-sky-blue active:contrast-more:from-ui-sky-blue active:contrast-more:to-ui-sky-blue pointer-fine:hover:from-ui-sky-blue pointer-fine:hover:to-ui-sky-blue pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-sky-blue pointer-fine:hover:contrast-more:to-ui-sky-blue');
|
|
914
465
|
case 'magenta':
|
|
915
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-magenta/0 to-ui-magenta/0 focus-visible:from-ui-magenta focus-visible:to-ui-magenta active:from-ui-magenta active:to-ui-magenta contrast-more:from-ui-magenta/0 contrast-more:to-ui-magenta/0 focus-visible:contrast-more:from-ui-magenta focus-visible:contrast-more:to-ui-magenta active:contrast-more:from-ui-magenta active:contrast-more:to-ui-magenta pointer-fine:hover:from-ui-magenta pointer-fine:hover:to-ui-magenta pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-magenta pointer-fine:hover:contrast-more:to-ui-magenta
|
|
466
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-magenta/0 to-ui-magenta/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-magenta focus-visible:to-ui-magenta focus-visible:bg-[size:100%_100%] active:from-ui-magenta active:to-ui-magenta active:bg-[size:100%_100%] contrast-more:from-ui-magenta/0 contrast-more:to-ui-magenta/0 focus-visible:contrast-more:from-ui-magenta focus-visible:contrast-more:to-ui-magenta active:contrast-more:from-ui-magenta active:contrast-more:to-ui-magenta pointer-fine:hover:from-ui-magenta pointer-fine:hover:to-ui-magenta pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-magenta pointer-fine:hover:contrast-more:to-ui-magenta');
|
|
916
467
|
case 'neutral':
|
|
917
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, '
|
|
468
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-zinc-700/0 to-zinc-700/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-zinc-700 focus-visible:to-zinc-700 focus-visible:bg-[size:100%_100%] active:from-zinc-700 active:to-zinc-700 active:bg-[size:100%_100%] contrast-more:from-zinc-700/0 contrast-more:to-zinc-700/0 focus-visible:contrast-more:from-zinc-700 focus-visible:contrast-more:to-zinc-700 active:contrast-more:from-zinc-700 active:contrast-more:to-zinc-700 dark:from-zinc-300/0 dark:to-zinc-300/0 dark:focus-visible:from-zinc-300 dark:focus-visible:to-zinc-300 dark:active:from-zinc-300 dark:active:to-zinc-300 dark:contrast-more:from-zinc-300/0 dark:contrast-more:to-zinc-300/0 dark:focus-visible:contrast-more:from-zinc-300 dark:focus-visible:contrast-more:to-zinc-300 dark:active:contrast-more:from-zinc-300 dark:active:contrast-more:to-zinc-300 pointer-fine:hover:from-zinc-700 pointer-fine:hover:to-zinc-700 pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-zinc-700 pointer-fine:hover:contrast-more:to-zinc-700 dark:pointer-fine:hover:from-zinc-300 dark:pointer-fine:hover:to-zinc-300 dark:pointer-fine:hover:contrast-more:from-zinc-300 dark:pointer-fine:hover:contrast-more:to-zinc-300');
|
|
918
469
|
case 'orange':
|
|
919
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-orange/0 to-ui-orange/0 focus-visible:from-ui-orange focus-visible:to-ui-orange active:from-ui-orange active:to-ui-orange contrast-more:from-ui-orange/0 contrast-more:to-ui-orange/0 focus-visible:contrast-more:from-ui-orange focus-visible:contrast-more:to-ui-orange active:contrast-more:from-ui-orange active:contrast-more:to-ui-orange pointer-fine:hover:from-ui-orange pointer-fine:hover:to-ui-orange pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-orange pointer-fine:hover:contrast-more:to-ui-orange
|
|
470
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-orange/0 to-ui-orange/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-orange focus-visible:to-ui-orange focus-visible:bg-[size:100%_100%] active:from-ui-orange active:to-ui-orange active:bg-[size:100%_100%] contrast-more:from-ui-orange/0 contrast-more:to-ui-orange/0 focus-visible:contrast-more:from-ui-orange focus-visible:contrast-more:to-ui-orange active:contrast-more:from-ui-orange active:contrast-more:to-ui-orange pointer-fine:hover:from-ui-orange pointer-fine:hover:to-ui-orange pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-orange pointer-fine:hover:contrast-more:to-ui-orange');
|
|
920
471
|
case 'pink':
|
|
921
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-pink/0 to-ui-pink/0 focus-visible:from-ui-pink focus-visible:to-ui-pink active:from-ui-pink active:to-ui-pink contrast-more:from-ui-pink/0 contrast-more:to-ui-pink/0 focus-visible:contrast-more:from-ui-pink focus-visible:contrast-more:to-ui-pink active:contrast-more:from-ui-pink active:contrast-more:to-ui-pink pointer-fine:hover:from-ui-pink pointer-fine:hover:to-ui-pink pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-pink pointer-fine:hover:contrast-more:to-ui-pink
|
|
922
|
-
case 'primary':
|
|
923
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-primary-500/0 to-primary-500/0 focus-visible:from-primary-500 focus-visible:to-primary-500 active:from-primary-500 active:to-primary-500 contrast-more:from-primary-500/0 contrast-more:to-primary-500/0 focus-visible:contrast-more:from-primary-500 focus-visible:contrast-more:to-primary-500 active:contrast-more:from-primary-500 active:contrast-more:to-primary-500 pointer-fine:hover:from-primary-500 pointer-fine:hover:to-primary-500 pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-primary-500 pointer-fine:hover:contrast-more:to-primary-500 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:bg-[size:100%_100%] active:bg-[size:100%_100%]');
|
|
472
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-pink/0 to-ui-pink/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-pink focus-visible:to-ui-pink focus-visible:bg-[size:100%_100%] active:from-ui-pink active:to-ui-pink active:bg-[size:100%_100%] contrast-more:from-ui-pink/0 contrast-more:to-ui-pink/0 focus-visible:contrast-more:from-ui-pink focus-visible:contrast-more:to-ui-pink active:contrast-more:from-ui-pink active:contrast-more:to-ui-pink pointer-fine:hover:from-ui-pink pointer-fine:hover:to-ui-pink pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-pink pointer-fine:hover:contrast-more:to-ui-pink');
|
|
924
473
|
case 'purple':
|
|
925
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-purple/0 to-ui-purple/0 focus-visible:from-ui-purple focus-visible:to-ui-purple active:from-ui-purple active:to-ui-purple contrast-more:from-ui-purple/0 contrast-more:to-ui-purple/0 focus-visible:contrast-more:from-ui-purple focus-visible:contrast-more:to-ui-purple active:contrast-more:from-ui-purple active:contrast-more:to-ui-purple pointer-fine:hover:from-ui-purple pointer-fine:hover:to-ui-purple pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-purple pointer-fine:hover:contrast-more:to-ui-purple
|
|
474
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-purple/0 to-ui-purple/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-purple focus-visible:to-ui-purple focus-visible:bg-[size:100%_100%] active:from-ui-purple active:to-ui-purple active:bg-[size:100%_100%] contrast-more:from-ui-purple/0 contrast-more:to-ui-purple/0 focus-visible:contrast-more:from-ui-purple focus-visible:contrast-more:to-ui-purple active:contrast-more:from-ui-purple active:contrast-more:to-ui-purple pointer-fine:hover:from-ui-purple pointer-fine:hover:to-ui-purple pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-purple pointer-fine:hover:contrast-more:to-ui-purple');
|
|
926
475
|
case 'red':
|
|
927
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-red/0 to-ui-red/0 focus-visible:from-ui-red focus-visible:to-ui-red active:from-ui-red active:to-ui-red contrast-more:from-ui-red/0 contrast-more:to-ui-red/0 focus-visible:contrast-more:from-ui-red focus-visible:contrast-more:to-ui-red active:contrast-more:from-ui-red active:contrast-more:to-ui-red pointer-fine:hover:from-ui-red pointer-fine:hover:to-ui-red pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-red pointer-fine:hover:contrast-more:to-ui-red
|
|
476
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-red/0 to-ui-red/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-red focus-visible:to-ui-red focus-visible:bg-[size:100%_100%] active:from-ui-red active:to-ui-red active:bg-[size:100%_100%] contrast-more:from-ui-red/0 contrast-more:to-ui-red/0 focus-visible:contrast-more:from-ui-red focus-visible:contrast-more:to-ui-red active:contrast-more:from-ui-red active:contrast-more:to-ui-red pointer-fine:hover:from-ui-red pointer-fine:hover:to-ui-red pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-red pointer-fine:hover:contrast-more:to-ui-red');
|
|
928
477
|
case 'violet':
|
|
929
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-violet/0 to-ui-violet/0 focus-visible:from-ui-violet focus-visible:to-ui-violet active:from-ui-violet active:to-ui-violet contrast-more:from-ui-violet/0 contrast-more:to-ui-violet/0 focus-visible:contrast-more:from-ui-violet focus-visible:contrast-more:to-ui-violet active:contrast-more:from-ui-violet active:contrast-more:to-ui-violet pointer-fine:hover:from-ui-violet pointer-fine:hover:to-ui-violet pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-violet pointer-fine:hover:contrast-more:to-ui-violet
|
|
478
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-violet/0 to-ui-violet/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-violet focus-visible:to-ui-violet focus-visible:bg-[size:100%_100%] active:from-ui-violet active:to-ui-violet active:bg-[size:100%_100%] contrast-more:from-ui-violet/0 contrast-more:to-ui-violet/0 focus-visible:contrast-more:from-ui-violet focus-visible:contrast-more:to-ui-violet active:contrast-more:from-ui-violet active:contrast-more:to-ui-violet pointer-fine:hover:from-ui-violet pointer-fine:hover:to-ui-violet pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-violet pointer-fine:hover:contrast-more:to-ui-violet');
|
|
930
479
|
case 'yellow':
|
|
931
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-yellow/0 to-ui-yellow/0 focus-visible:from-ui-yellow focus-visible:to-ui-yellow active:from-ui-yellow active:to-ui-yellow contrast-more:from-ui-yellow/0 contrast-more:to-ui-yellow/0 focus-visible:contrast-more:from-ui-yellow focus-visible:contrast-more:to-ui-yellow active:contrast-more:from-ui-yellow active:contrast-more:to-ui-yellow pointer-fine:hover:from-ui-yellow pointer-fine:hover:to-ui-yellow pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-yellow pointer-fine:hover:contrast-more:to-ui-yellow
|
|
480
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-yellow/0 to-ui-yellow/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-yellow focus-visible:to-ui-yellow focus-visible:bg-[size:100%_100%] active:from-ui-yellow active:to-ui-yellow active:bg-[size:100%_100%] contrast-more:from-ui-yellow/0 contrast-more:to-ui-yellow/0 focus-visible:contrast-more:from-ui-yellow focus-visible:contrast-more:to-ui-yellow active:contrast-more:from-ui-yellow active:contrast-more:to-ui-yellow pointer-fine:hover:from-ui-yellow pointer-fine:hover:to-ui-yellow pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-yellow pointer-fine:hover:contrast-more:to-ui-yellow');
|
|
932
481
|
case 'blue':
|
|
933
482
|
default:
|
|
934
|
-
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-blue/0 to-ui-blue/0 focus-visible:from-ui-blue focus-visible:to-ui-blue active:from-ui-blue active:to-ui-blue contrast-more:from-ui-blue/0 contrast-more:to-ui-blue/0 focus-visible:contrast-more:from-ui-blue focus-visible:contrast-more:to-ui-blue active:contrast-more:from-ui-blue active:contrast-more:to-ui-blue pointer-fine:hover:from-ui-blue pointer-fine:hover:to-ui-blue pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-blue pointer-fine:hover:contrast-more:to-ui-blue
|
|
483
|
+
return tailwindMerge.twJoin(multilineFillBaseClasses, 'from-ui-blue/0 to-ui-blue/0 bg-[size:50%_0px] bg-[position:50%_50%] transition-[background-size_background-image_color] focus-visible:from-ui-blue focus-visible:to-ui-blue focus-visible:bg-[size:100%_100%] active:from-ui-blue active:to-ui-blue active:bg-[size:100%_100%] contrast-more:from-ui-blue/0 contrast-more:to-ui-blue/0 focus-visible:contrast-more:from-ui-blue focus-visible:contrast-more:to-ui-blue active:contrast-more:from-ui-blue active:contrast-more:to-ui-blue pointer-fine:hover:from-ui-blue pointer-fine:hover:to-ui-blue pointer-fine:hover:bg-[size:100%_100%] pointer-fine:hover:contrast-more:from-ui-blue pointer-fine:hover:contrast-more:to-ui-blue');
|
|
935
484
|
}
|
|
936
485
|
};
|
|
937
486
|
const getMultilineFillLiftClasses = (theme = 'blue') => {
|
|
938
|
-
return tailwindMerge.twJoin(getMultilineFillColorClasses(theme), '
|
|
487
|
+
return tailwindMerge.twJoin(getMultilineFillColorClasses(theme), 'bg-[size:auto_0px] bg-[position:50%_100%] focus-visible:bg-[size:auto_100%] active:bg-[size:auto_100%] pointer-fine:hover:bg-[size:auto_100%]');
|
|
939
488
|
};
|
|
940
489
|
const getMultilineFillXClasses = (theme = 'blue') => {
|
|
941
|
-
return tailwindMerge.twJoin(getMultilineFillColorClasses(theme), '
|
|
490
|
+
return tailwindMerge.twJoin(getMultilineFillColorClasses(theme), 'bg-[size:0%_100%] focus-visible:bg-[size:100%_100%] active:bg-[size:100%_100%] pointer-fine:hover:bg-[size:100%_100%]');
|
|
942
491
|
};
|
|
943
492
|
const getMultilineFillRtlClasses = (theme = 'blue') => {
|
|
944
493
|
return tailwindMerge.twJoin(getMultilineFillXClasses(theme), 'bg-[position:100%_auto]');
|
|
@@ -975,7 +524,7 @@ const getMultilineFillCenterClasses = (theme = 'blue') => {
|
|
|
975
524
|
* @example
|
|
976
525
|
* <Link href='/about' type='fill-ltr' theme='red' title='About Us'>Learn more about our company</Link>
|
|
977
526
|
*/
|
|
978
|
-
function Link({
|
|
527
|
+
function Link({ as, className, ref, theme = 'blue', type, ...props }) {
|
|
979
528
|
const getLinkClasses = () => {
|
|
980
529
|
switch (type) {
|
|
981
530
|
case 'static':
|
|
@@ -1023,14 +572,15 @@ function Link({ type, theme = 'blue', className, ref, ...props }) {
|
|
|
1023
572
|
}
|
|
1024
573
|
};
|
|
1025
574
|
const linkClasses = getLinkClasses();
|
|
1026
|
-
|
|
575
|
+
const LinkElement = as || Anchor;
|
|
576
|
+
return jsxRuntime.jsx(LinkElement, { ...props, className: twMerge(linkClasses, className), ref: ref });
|
|
1027
577
|
}
|
|
1028
578
|
|
|
1029
579
|
/**
|
|
1030
580
|
* # Button
|
|
1031
581
|
* - A pre-styled button with utility props for easy customization depending on use case.
|
|
1032
582
|
*/
|
|
1033
|
-
function Button({ className, padding = 'md', rounded = 'lg', theme = '
|
|
583
|
+
function Button({ className, padding = 'md', rounded = 'lg', theme = 'blue', ref, ...props }) {
|
|
1034
584
|
const getPaddingClasses = () => {
|
|
1035
585
|
switch (padding) {
|
|
1036
586
|
case 'xs':
|
|
@@ -1062,71 +612,92 @@ function Button({ className, padding = 'md', rounded = 'lg', theme = 'primary',
|
|
|
1062
612
|
}
|
|
1063
613
|
};
|
|
1064
614
|
const getThemeClasses = () => {
|
|
615
|
+
const classList = [];
|
|
1065
616
|
switch (theme) {
|
|
1066
617
|
case 'blue':
|
|
1067
|
-
|
|
618
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-blue/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-blue before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
619
|
+
break;
|
|
1068
620
|
case 'blue-gradient':
|
|
1069
|
-
|
|
621
|
+
classList.push(twSort('bg-ui-blue text-white shadow-lg shadow-ui-blue/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
622
|
+
break;
|
|
1070
623
|
case 'brown':
|
|
1071
|
-
|
|
624
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-brown/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-brown before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
625
|
+
break;
|
|
1072
626
|
case 'brown-gradient':
|
|
1073
|
-
|
|
627
|
+
classList.push(twSort('bg-ui-brown text-white shadow-lg shadow-ui-brown/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
628
|
+
break;
|
|
1074
629
|
case 'green':
|
|
1075
|
-
|
|
630
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-green/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-green before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
631
|
+
break;
|
|
1076
632
|
case 'green-gradient':
|
|
1077
|
-
|
|
633
|
+
classList.push(twSort('bg-ui-green text-white shadow-lg shadow-ui-green/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
634
|
+
break;
|
|
1078
635
|
case 'grey':
|
|
1079
|
-
|
|
636
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-grey/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-grey before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
637
|
+
break;
|
|
1080
638
|
case 'grey-gradient':
|
|
1081
|
-
|
|
639
|
+
classList.push(twSort('bg-ui-grey text-white shadow-lg shadow-ui-grey/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
640
|
+
break;
|
|
1082
641
|
case 'sky-blue':
|
|
1083
|
-
|
|
642
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-sky-blue/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-sky-blue before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
643
|
+
break;
|
|
1084
644
|
case 'sky-blue-gradient':
|
|
1085
|
-
|
|
645
|
+
classList.push(twSort('bg-ui-sky-blue text-white shadow-lg shadow-ui-sky-blue/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
646
|
+
break;
|
|
1086
647
|
case 'magenta':
|
|
1087
|
-
|
|
648
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-magenta/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-magenta before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
649
|
+
break;
|
|
1088
650
|
case 'magenta-gradient':
|
|
1089
|
-
|
|
651
|
+
classList.push(twSort('bg-ui-magenta text-white shadow-lg shadow-ui-magenta/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
652
|
+
break;
|
|
1090
653
|
case 'neutral':
|
|
1091
|
-
|
|
654
|
+
classList.push(twSort('pointer-fine:active:before:brightness-90text-white dark bg-zinc-200 text-black before:absolute before:inset-0 before:rounded-[inherit] before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 dark:bg-zinc-800 pointer-fine:hover:before:brightness-110'));
|
|
655
|
+
break;
|
|
1092
656
|
case 'neutral-gradient':
|
|
1093
|
-
|
|
657
|
+
classList.push(twSort('dark bg-linear-to-t from-zinc-300 via-zinc-200 to-zinc-100 text-black before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 dark:from-zinc-900 dark:via-zinc-800 dark:to-zinc-700 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
658
|
+
break;
|
|
1094
659
|
case 'orange':
|
|
1095
|
-
|
|
660
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-orange/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-orange before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
661
|
+
break;
|
|
1096
662
|
case 'orange-gradient':
|
|
1097
|
-
|
|
663
|
+
classList.push(twSort('bg-ui-orange text-white shadow-lg shadow-ui-orange/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
664
|
+
break;
|
|
1098
665
|
case 'pink':
|
|
1099
|
-
|
|
666
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-pink/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-pink before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
667
|
+
break;
|
|
1100
668
|
case 'pink-gradient':
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
return twSort('bg-primary-50 text-primary-600 active:bg-primary-600 active:text-primary-50 pointer-fine:hover:bg-primary-600 pointer-fine:hover:text-primary-50 pointer-fine:active:bg-primary-700 transition-[transform_background-color_color_box-shadow]');
|
|
1104
|
-
case 'primary-gradient':
|
|
1105
|
-
return twSort('bg-linear-to-t from-primary-700 via-primary-500 to-primary-300 bg-size-y-[200%] shadow-primary-600/25 pointer-fine:hover:[background-position:50%_0%] transition-[transform_background-position] [background-position:50%_50%] active:[background-position:50%_75%]');
|
|
669
|
+
classList.push(twSort('before:to-white/75/75 bg-ui-pink text-white shadow-lg shadow-ui-pink/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
670
|
+
break;
|
|
1106
671
|
case 'purple':
|
|
1107
|
-
|
|
672
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-purple/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-purple before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
673
|
+
break;
|
|
1108
674
|
case 'purple-gradient':
|
|
1109
|
-
|
|
675
|
+
classList.push(twSort('bg-ui-purple text-white shadow-lg shadow-ui-purple/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
676
|
+
break;
|
|
1110
677
|
case 'red':
|
|
1111
|
-
|
|
678
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-red/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-red before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
679
|
+
break;
|
|
1112
680
|
case 'red-gradient':
|
|
1113
|
-
|
|
681
|
+
classList.push(twSort('bg-ui-red text-white shadow-lg shadow-ui-red/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
682
|
+
break;
|
|
1114
683
|
case 'violet':
|
|
1115
|
-
|
|
684
|
+
classList.push(twSort('text-white shadow-lg shadow-ui-violet/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-violet before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
685
|
+
break;
|
|
1116
686
|
case 'violet-gradient':
|
|
1117
|
-
|
|
687
|
+
classList.push(twSort('bg-ui-violet text-white shadow-lg shadow-ui-violet/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black/75 before:via-transparent before:to-white/75 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
688
|
+
break;
|
|
1118
689
|
case 'yellow':
|
|
1119
|
-
|
|
690
|
+
classList.push(twSort('text-black shadow-lg shadow-ui-yellow/25 transition-transform before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:bg-ui-yellow before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
691
|
+
break;
|
|
1120
692
|
case 'yellow-gradient':
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
default:
|
|
1124
|
-
return twSort('bg-primary-500 shadow-primary-700/25 active:bg-primary-600 pointer-fine:hover:bg-primary-400 pointer-fine:active:bg-primary-600 text-white shadow-lg transition-[transform_background-color_box-shadow]');
|
|
693
|
+
classList.push(twSort('bg-ui-yellow text-black shadow-lg shadow-ui-yellow/25 transition-transform before:absolute before:inset-0 before:rounded-[inherit] before:bg-linear-to-t before:from-black before:via-black/50 before:to-white/50 before:opacity-75 before:mix-blend-soft-light before:transition-[filter] before:duration-300 before:ease-exponential active:before:brightness-90 pointer-fine:hover:before:brightness-110 pointer-fine:active:before:brightness-90'));
|
|
694
|
+
break;
|
|
1125
695
|
}
|
|
696
|
+
return classList.join(' ');
|
|
1126
697
|
};
|
|
1127
698
|
const paddingClasses = getPaddingClasses(), roundedClasses = getRoundedClasses(), themeClasses = getThemeClasses();
|
|
1128
699
|
const buttonClasses = twMerge([
|
|
1129
|
-
'ease-exponential focus-visible:scale-101 pointer-fine:hover:scale-101 pointer-fine:active:scale-99
|
|
700
|
+
'block w-fit min-w-fit text-center font-semibold duration-300 ease-exponential focus-visible:scale-101 active:scale-95 pointer-fine:hover:scale-101 pointer-fine:active:scale-99',
|
|
1130
701
|
paddingClasses,
|
|
1131
702
|
roundedClasses,
|
|
1132
703
|
themeClasses,
|
|
@@ -1203,7 +774,7 @@ function useFormStatus() {
|
|
|
1203
774
|
return useStore(store => store);
|
|
1204
775
|
}
|
|
1205
776
|
|
|
1206
|
-
function validateField(value, { required, type }) {
|
|
777
|
+
function validateField$1(value, { required, type }) {
|
|
1207
778
|
const noValue = !value || value === '';
|
|
1208
779
|
if (!required && noValue)
|
|
1209
780
|
return true;
|
|
@@ -1220,8 +791,8 @@ function validateField(value, { required, type }) {
|
|
|
1220
791
|
return true;
|
|
1221
792
|
}
|
|
1222
793
|
}
|
|
1223
|
-
function Input({ checked, className, defaultValue, description, descriptionProps, disabled, fieldProps, invalid = true, label, labelProps, name, onChange, placeholder, ref, required = true, type, value, ...props }) {
|
|
1224
|
-
const [formContext, setFormContext] = useFormContext()
|
|
794
|
+
function Input({ checked, className, defaultValue, description, descriptionProps, disabled, fieldProps, invalid = true, label, labelProps, name, onBlur, onChange, placeholder, ref, required = true, type, value, ...props }) {
|
|
795
|
+
const [formContext, setFormContext] = useFormContext();
|
|
1225
796
|
if (placeholder === '*')
|
|
1226
797
|
placeholder = name + (required && !label ? '*' : '');
|
|
1227
798
|
if (label === '*')
|
|
@@ -1246,7 +817,7 @@ function Input({ checked, className, defaultValue, description, descriptionProps
|
|
|
1246
817
|
}
|
|
1247
818
|
};
|
|
1248
819
|
const fieldContextType = getFieldContextType();
|
|
1249
|
-
const
|
|
820
|
+
const initialFieldContext = defineField({
|
|
1250
821
|
type: fieldContextType,
|
|
1251
822
|
id: fieldContextID,
|
|
1252
823
|
invalid,
|
|
@@ -1258,13 +829,14 @@ function Input({ checked, className, defaultValue, description, descriptionProps
|
|
|
1258
829
|
if (!setFormContext)
|
|
1259
830
|
return;
|
|
1260
831
|
setFormContext(prevContext => {
|
|
1261
|
-
const otherFields = (prevContext || []).filter(field => field.id !==
|
|
1262
|
-
return [...otherFields,
|
|
832
|
+
const otherFields = (prevContext || []).filter(field => field.id !== initialFieldContext.id);
|
|
833
|
+
return [...otherFields, initialFieldContext];
|
|
1263
834
|
});
|
|
1264
835
|
return () => {
|
|
1265
|
-
setFormContext(prevContext => (prevContext || []).filter(field => field.id !==
|
|
836
|
+
setFormContext(prevContext => (prevContext || []).filter(field => field.id !== initialFieldContext.id));
|
|
1266
837
|
};
|
|
1267
838
|
}, [setFormContext]);
|
|
839
|
+
const fieldContext = formContext?.find(({ id: fieldID }) => fieldID === initialFieldContext.id) || initialFieldContext;
|
|
1268
840
|
const debounceTimerRef = react.useRef(undefined);
|
|
1269
841
|
const handleChange = e => {
|
|
1270
842
|
if (disabled) {
|
|
@@ -1276,32 +848,66 @@ function Input({ checked, className, defaultValue, description, descriptionProps
|
|
|
1276
848
|
setFormContext?.(prevContext => {
|
|
1277
849
|
if (!prevContext)
|
|
1278
850
|
return [];
|
|
1279
|
-
const field = prevContext.find(({ id: fieldID }) => fieldID ===
|
|
851
|
+
const field = prevContext.find(({ id: fieldID }) => fieldID === initialFieldContext.id);
|
|
1280
852
|
if (!field)
|
|
1281
|
-
throw new Error(`Field with id "${
|
|
1282
|
-
const otherFields = prevContext.filter(({ id: fieldID }) => fieldID !==
|
|
853
|
+
throw new Error(`Field with id "${initialFieldContext.id}" not found in form context.`);
|
|
854
|
+
const otherFields = prevContext.filter(({ id: fieldID }) => fieldID !== initialFieldContext.id);
|
|
1283
855
|
const updatedField = { ...field, value: newValue };
|
|
1284
856
|
return [...otherFields, updatedField];
|
|
1285
857
|
});
|
|
1286
858
|
debounceTimerRef.current = setTimeout(() => {
|
|
1287
|
-
const field = formContext?.find(({ id: fieldID }) => fieldID ===
|
|
859
|
+
const field = formContext?.find(({ id: fieldID }) => fieldID === initialFieldContext.id);
|
|
1288
860
|
if (!field)
|
|
1289
861
|
return;
|
|
1290
|
-
const invalid = validateField(newValue, field) === false;
|
|
862
|
+
const invalid = validateField$1(newValue, field) === false;
|
|
1291
863
|
if (invalid !== field.invalid)
|
|
1292
864
|
setFormContext?.(prevContext => {
|
|
1293
865
|
if (!prevContext)
|
|
1294
866
|
return [];
|
|
1295
|
-
const field = prevContext.find(({ id: fieldID }) => fieldID ===
|
|
867
|
+
const field = prevContext.find(({ id: fieldID }) => fieldID === initialFieldContext.id);
|
|
1296
868
|
if (!field)
|
|
1297
|
-
throw new Error(`Field with id "${
|
|
1298
|
-
const otherFields = prevContext.filter(({ id: fieldID }) => fieldID !==
|
|
869
|
+
throw new Error(`Field with id "${initialFieldContext.id}" not found in form context.`);
|
|
870
|
+
const otherFields = prevContext.filter(({ id: fieldID }) => fieldID !== initialFieldContext.id);
|
|
1299
871
|
const updatedField = { ...field, invalid };
|
|
1300
872
|
return [...otherFields, updatedField];
|
|
1301
873
|
});
|
|
1302
874
|
}, 500);
|
|
1303
875
|
onChange?.(e);
|
|
1304
876
|
};
|
|
877
|
+
const handleBlur = e => {
|
|
878
|
+
if (disabled) {
|
|
879
|
+
e.preventDefault();
|
|
880
|
+
return;
|
|
881
|
+
}
|
|
882
|
+
const { currentTarget } = e, { value: newValue } = currentTarget;
|
|
883
|
+
switch (type) {
|
|
884
|
+
case 'email':
|
|
885
|
+
setFormContext?.(prevContext => {
|
|
886
|
+
if (!prevContext)
|
|
887
|
+
return [];
|
|
888
|
+
const field = prevContext.find(({ id: fieldID }) => fieldID === initialFieldContext.id);
|
|
889
|
+
if (!field)
|
|
890
|
+
throw new Error(`Field with id "${initialFieldContext.id}" not found in form context.`);
|
|
891
|
+
const otherFields = prevContext.filter(({ id: fieldID }) => fieldID !== initialFieldContext.id);
|
|
892
|
+
const updatedField = { ...field, value: newValue.toLowerCase() };
|
|
893
|
+
return [...otherFields, updatedField];
|
|
894
|
+
});
|
|
895
|
+
break;
|
|
896
|
+
case 'tel':
|
|
897
|
+
setFormContext?.(prevContext => {
|
|
898
|
+
if (!prevContext)
|
|
899
|
+
return [];
|
|
900
|
+
const field = prevContext.find(({ id: fieldID }) => fieldID === initialFieldContext.id);
|
|
901
|
+
if (!field)
|
|
902
|
+
throw new Error(`Field with id "${initialFieldContext.id}" not found in form context.`);
|
|
903
|
+
const otherFields = prevContext.filter(({ id: fieldID }) => fieldID !== initialFieldContext.id);
|
|
904
|
+
const updatedField = { ...field, value: formatPhoneNumber(newValue, '1') };
|
|
905
|
+
return [...otherFields, updatedField];
|
|
906
|
+
});
|
|
907
|
+
break;
|
|
908
|
+
}
|
|
909
|
+
onBlur?.(e);
|
|
910
|
+
};
|
|
1305
911
|
const restFieldProps = fieldProps
|
|
1306
912
|
? Object.fromEntries(Object.entries(fieldProps).filter(([key]) => key !== 'className'))
|
|
1307
913
|
: {};
|
|
@@ -1311,25 +917,25 @@ function Input({ checked, className, defaultValue, description, descriptionProps
|
|
|
1311
917
|
const restDescriptionProps = descriptionProps
|
|
1312
918
|
? Object.fromEntries(Object.entries(descriptionProps).filter(([key]) => key !== 'className'))
|
|
1313
919
|
: {};
|
|
1314
|
-
return (jsxRuntime.jsxs(react$1.Field, { ...restFieldProps, className: bag => twMerge('grid gap-1', typeof fieldProps?.className === 'function' ? fieldProps?.className(bag) : fieldProps?.className), disabled: disabled, children: [label && (jsxRuntime.jsx(react$1.Label, { ...restLabelProps, className: bag => twMerge('text-sm font-medium', required ? 'after:text-ui-red after:content-["_*"]' : '', typeof labelProps?.className === 'function' ? labelProps?.className(bag) : labelProps?.className), children: label })), jsxRuntime.jsx(react$1.Input, { ...props, className: bag => twMerge(
|
|
920
|
+
return (jsxRuntime.jsxs(react$1.Field, { ...restFieldProps, className: bag => twMerge('grid gap-1', typeof fieldProps?.className === 'function' ? fieldProps?.className(bag) : fieldProps?.className), disabled: disabled, children: [label && (jsxRuntime.jsx(react$1.Label, { ...restLabelProps, className: bag => twMerge('text-sm font-medium', required ? 'after:text-ui-red after:content-["_*"]' : '', typeof labelProps?.className === 'function' ? labelProps?.className(bag) : labelProps?.className), children: label })), jsxRuntime.jsx(react$1.Input, { ...props, className: bag => twMerge(
|
|
921
|
+
// Base styles
|
|
922
|
+
'rounded-xl border-1 border-neutral-500/50 bg-neutral-100 py-1 pl-2 text-neutral-950 outline-offset-1 outline-ui-sky-blue/95 transition-[background-color] duration-300 ease-exponential dark:bg-neutral-700 dark:text-neutral-50',
|
|
923
|
+
// Pseudo styles
|
|
924
|
+
'focus-visible:bg-neutral-50 focus-visible:outline-3 active:bg-neutral-200 dark:focus-visible:bg-neutral-600 dark:active:bg-neutral-800 pointer-fine:hover:bg-neutral-50 pointer-fine:active:bg-neutral-200 dark:pointer-fine:hover:bg-neutral-600 dark:pointer-fine:active:bg-neutral-800',
|
|
925
|
+
// user-invalid styles
|
|
926
|
+
'user-invalid:border-ui-red user-invalid:bg-[color-mix(in_oklab,var(--color-ui-red)_20%,var(--color-neutral-100))] user-invalid:focus-visible:bg-[color-mix(in_oklab,var(--color-ui-red)_1%,var(--color-neutral-100))] user-invalid:active:bg-[color-mix(in_oklab,var(--color-ui-red)_25%,var(--color-neutral-100))] dark:user-invalid:bg-[color-mix(in_oklab,var(--color-ui-red)_20%,var(--color-neutral-800))] dark:user-invalid:focus-visible:bg-[color-mix(in_oklab,var(--color-ui-red)_1%,var(--color-neutral-800))] dark:user-invalid:active:bg-[color-mix(in_oklab,var(--color-ui-red)_25%,var(--color-neutral-800))] user-invalid:pointer-fine:hover:bg-[color-mix(in_oklab,var(--color-ui-red)_10%,var(--color-neutral-100))] user-invalid:pointer-fine:focus-visible:bg-[color-mix(in_oklab,var(--color-ui-red)_1%,var(--color-neutral-100))] user-invalid:pointer-fine:active:bg-[color-mix(in_oklab,var(--color-ui-red)_25%,var(--color-neutral-100))] dark:user-invalid:pointer-fine:hover:bg-[color-mix(in_oklab,var(--color-ui-red)_10%,var(--color-neutral-800))] dark:user-invalid:pointer-fine:focus-visible:bg-[color-mix(in_oklab,var(--color-ui-red)_1%,var(--color-neutral-800))] dark:user-invalid:pointer-fine:active:bg-[color-mix(in_oklab,var(--color-ui-red)_25%,var(--color-neutral-800))]',
|
|
927
|
+
// Custom styles
|
|
928
|
+
typeof className === 'function' ? className(bag) : className), id: fieldContext?.id, invalid: invalid, onBlur: handleBlur, onChange: handleChange, placeholder: placeholder, ref: ref, required: required, type: type, value: fieldContext?.value }), description && (jsxRuntime.jsx(react$1.Description, { ...restDescriptionProps, className: bag => twMerge('text-xs', typeof descriptionProps?.className === 'function'
|
|
1315
929
|
? descriptionProps?.className(bag)
|
|
1316
930
|
: descriptionProps?.className), children: description }))] }));
|
|
1317
931
|
}
|
|
1318
932
|
|
|
1319
|
-
function SubmitButton({ children, className,
|
|
933
|
+
function SubmitButton({ children, className, error, incomplete, loading, success, theme, type = 'submit', ref, ...props }) {
|
|
1320
934
|
const [formStatus] = useFormStatus();
|
|
1321
|
-
const getDisabledStatus = () => {
|
|
1322
|
-
if (ariaDisabled !== undefined)
|
|
1323
|
-
return ariaDisabled;
|
|
1324
|
-
if (formStatus !== 'ready')
|
|
1325
|
-
return 'true';
|
|
1326
|
-
return 'false';
|
|
1327
|
-
};
|
|
1328
|
-
const disabled = getDisabledStatus();
|
|
1329
935
|
const getFormStatusButtonClasses = () => {
|
|
1330
936
|
switch (formStatus) {
|
|
1331
937
|
case 'loading':
|
|
1332
|
-
return twSort('animate-pulse cursor-wait text-lg font-black
|
|
938
|
+
return twSort('animate-pulse cursor-wait text-lg leading-6 font-black tracking-widest');
|
|
1333
939
|
case 'error':
|
|
1334
940
|
case 'success':
|
|
1335
941
|
return 'cursor-not-allowed';
|
|
@@ -1358,7 +964,7 @@ function SubmitButton({ children, className, 'aria-disabled': ariaDisabled, erro
|
|
|
1358
964
|
case 'incomplete':
|
|
1359
965
|
return incomplete || 'Complete Form';
|
|
1360
966
|
case 'loading':
|
|
1361
|
-
return (loading || (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { className: 'animate-wave animation-delay-300
|
|
967
|
+
return (loading || (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { className: 'inline-block animate-wave animation-delay-300', children: "\u2022" }), jsxRuntime.jsx("span", { className: 'inline-block animate-wave animation-delay-150', children: "\u2022" }), jsxRuntime.jsx("span", { className: 'inline-block animate-wave', children: "\u2022" })] })));
|
|
1362
968
|
case 'error':
|
|
1363
969
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [error || 'Error', ' ', jsxRuntime.jsx("span", { className: 'absolute top-1/2 ml-1.5 translate-y-[calc(-50%-1.5px)] text-2xl', children: "\u00D7" })] }));
|
|
1364
970
|
case 'success':
|
|
@@ -1368,7 +974,103 @@ function SubmitButton({ children, className, 'aria-disabled': ariaDisabled, erro
|
|
|
1368
974
|
}
|
|
1369
975
|
};
|
|
1370
976
|
const buttonText = getButtonText();
|
|
1371
|
-
return (jsxRuntime.jsx(Button, { ...props,
|
|
977
|
+
return (jsxRuntime.jsx(Button, { ...props, className: twMerge([formStatusButtonClasses, 'w-full', className]), ref: ref, theme: formStatusButtonTheme, type: type, children: buttonText }));
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
function validateField(value, { required }) {
|
|
981
|
+
const noValue = !value || value === '';
|
|
982
|
+
if (!required && noValue)
|
|
983
|
+
return true;
|
|
984
|
+
if (noValue)
|
|
985
|
+
return false;
|
|
986
|
+
return true;
|
|
987
|
+
}
|
|
988
|
+
function Textarea({ className, defaultValue, description, descriptionProps, disabled, fieldProps, invalid = true, label, labelProps, name, onBlur, onChange, placeholder, ref, required = true, value, ...props }) {
|
|
989
|
+
const [formContext, setFormContext] = useFormContext();
|
|
990
|
+
if (placeholder === '*')
|
|
991
|
+
placeholder = name + (required && !label ? '*' : '');
|
|
992
|
+
if (label === '*')
|
|
993
|
+
label = name;
|
|
994
|
+
const uniqueID = react.useId(), fieldContextID = toLowerCase(name, [, '_']) + '§' + uniqueID;
|
|
995
|
+
if (Boolean(formContext?.find(field => field.id === fieldContextID)?.invalid))
|
|
996
|
+
invalid = true;
|
|
997
|
+
const initialFieldContext = defineField({
|
|
998
|
+
type: 'textarea',
|
|
999
|
+
id: fieldContextID,
|
|
1000
|
+
invalid,
|
|
1001
|
+
name,
|
|
1002
|
+
required,
|
|
1003
|
+
value: value ? `${value}` : defaultValue ? `${defaultValue}` : '',
|
|
1004
|
+
});
|
|
1005
|
+
react.useEffect(() => {
|
|
1006
|
+
if (!setFormContext)
|
|
1007
|
+
return;
|
|
1008
|
+
setFormContext(prevContext => {
|
|
1009
|
+
const otherFields = (prevContext || []).filter(field => field.id !== initialFieldContext.id);
|
|
1010
|
+
return [...otherFields, initialFieldContext];
|
|
1011
|
+
});
|
|
1012
|
+
return () => {
|
|
1013
|
+
setFormContext(prevContext => (prevContext || []).filter(field => field.id !== initialFieldContext.id));
|
|
1014
|
+
};
|
|
1015
|
+
}, [setFormContext]);
|
|
1016
|
+
const fieldContext = formContext?.find(({ id: fieldID }) => fieldID === initialFieldContext.id) || initialFieldContext;
|
|
1017
|
+
const debounceTimerRef = react.useRef(undefined);
|
|
1018
|
+
const handleChange = e => {
|
|
1019
|
+
if (disabled) {
|
|
1020
|
+
e.preventDefault();
|
|
1021
|
+
return;
|
|
1022
|
+
}
|
|
1023
|
+
clearTimeout(debounceTimerRef.current);
|
|
1024
|
+
const { currentTarget } = e, { value: newValue } = currentTarget;
|
|
1025
|
+
setFormContext?.(prevContext => {
|
|
1026
|
+
if (!prevContext)
|
|
1027
|
+
return [];
|
|
1028
|
+
const field = prevContext.find(({ id: fieldID }) => fieldID === initialFieldContext.id);
|
|
1029
|
+
if (!field)
|
|
1030
|
+
throw new Error(`Field with id "${initialFieldContext.id}" not found in form context.`);
|
|
1031
|
+
const otherFields = prevContext.filter(({ id: fieldID }) => fieldID !== initialFieldContext.id);
|
|
1032
|
+
const updatedField = { ...field, value: newValue };
|
|
1033
|
+
return [...otherFields, updatedField];
|
|
1034
|
+
});
|
|
1035
|
+
debounceTimerRef.current = setTimeout(() => {
|
|
1036
|
+
const field = formContext?.find(({ id: fieldID }) => fieldID === initialFieldContext.id);
|
|
1037
|
+
if (!field)
|
|
1038
|
+
return;
|
|
1039
|
+
const invalid = validateField(newValue, field) === false;
|
|
1040
|
+
if (invalid !== field.invalid)
|
|
1041
|
+
setFormContext?.(prevContext => {
|
|
1042
|
+
if (!prevContext)
|
|
1043
|
+
return [];
|
|
1044
|
+
const field = prevContext.find(({ id: fieldID }) => fieldID === initialFieldContext.id);
|
|
1045
|
+
if (!field)
|
|
1046
|
+
throw new Error(`Field with id "${initialFieldContext.id}" not found in form context.`);
|
|
1047
|
+
const otherFields = prevContext.filter(({ id: fieldID }) => fieldID !== initialFieldContext.id);
|
|
1048
|
+
const updatedField = { ...field, invalid };
|
|
1049
|
+
return [...otherFields, updatedField];
|
|
1050
|
+
});
|
|
1051
|
+
}, 500);
|
|
1052
|
+
onChange?.(e);
|
|
1053
|
+
};
|
|
1054
|
+
const restFieldProps = fieldProps
|
|
1055
|
+
? Object.fromEntries(Object.entries(fieldProps).filter(([key]) => key !== 'className'))
|
|
1056
|
+
: {};
|
|
1057
|
+
const restLabelProps = labelProps
|
|
1058
|
+
? Object.fromEntries(Object.entries(labelProps).filter(([key]) => key !== 'className'))
|
|
1059
|
+
: {};
|
|
1060
|
+
const restDescriptionProps = descriptionProps
|
|
1061
|
+
? Object.fromEntries(Object.entries(descriptionProps).filter(([key]) => key !== 'className'))
|
|
1062
|
+
: {};
|
|
1063
|
+
return (jsxRuntime.jsxs(react$1.Field, { ...restFieldProps, className: bag => twMerge('grid gap-1', typeof fieldProps?.className === 'function' ? fieldProps?.className(bag) : fieldProps?.className), disabled: disabled, children: [label && (jsxRuntime.jsx(react$1.Label, { ...restLabelProps, className: bag => twMerge('text-sm font-medium', required ? 'after:text-ui-red after:content-["_*"]' : '', typeof labelProps?.className === 'function' ? labelProps?.className(bag) : labelProps?.className), children: label })), jsxRuntime.jsx(react$1.Textarea, { ...props, className: bag => twMerge(
|
|
1064
|
+
// Base styles
|
|
1065
|
+
'field-sizing-content resize-none rounded-xl border-1 border-neutral-500/50 bg-neutral-100 py-1 pl-2 text-neutral-950 outline-offset-1 outline-ui-sky-blue/95 transition-[background-color] duration-300 ease-exponential dark:bg-neutral-700 dark:text-neutral-50',
|
|
1066
|
+
// Pseudo styles
|
|
1067
|
+
'focus-visible:bg-neutral-50 focus-visible:outline-3 active:bg-neutral-200 dark:focus-visible:bg-neutral-600 dark:active:bg-neutral-800 pointer-fine:hover:bg-neutral-50 pointer-fine:active:bg-neutral-200 dark:pointer-fine:hover:bg-neutral-600 dark:pointer-fine:active:bg-neutral-800',
|
|
1068
|
+
// user-invalid styles
|
|
1069
|
+
'user-invalid:border-ui-red user-invalid:bg-[color-mix(in_oklab,var(--color-ui-red)_20%,var(--color-neutral-100))] user-invalid:focus-visible:bg-[color-mix(in_oklab,var(--color-ui-red)_1%,var(--color-neutral-100))] user-invalid:active:bg-[color-mix(in_oklab,var(--color-ui-red)_25%,var(--color-neutral-100))] dark:user-invalid:bg-[color-mix(in_oklab,var(--color-ui-red)_20%,var(--color-neutral-800))] dark:user-invalid:focus-visible:bg-[color-mix(in_oklab,var(--color-ui-red)_1%,var(--color-neutral-800))] dark:user-invalid:active:bg-[color-mix(in_oklab,var(--color-ui-red)_25%,var(--color-neutral-800))] user-invalid:pointer-fine:hover:bg-[color-mix(in_oklab,var(--color-ui-red)_10%,var(--color-neutral-100))] user-invalid:pointer-fine:focus-visible:bg-[color-mix(in_oklab,var(--color-ui-red)_1%,var(--color-neutral-100))] user-invalid:pointer-fine:active:bg-[color-mix(in_oklab,var(--color-ui-red)_25%,var(--color-neutral-100))] dark:user-invalid:pointer-fine:hover:bg-[color-mix(in_oklab,var(--color-ui-red)_10%,var(--color-neutral-800))] dark:user-invalid:pointer-fine:focus-visible:bg-[color-mix(in_oklab,var(--color-ui-red)_1%,var(--color-neutral-800))] dark:user-invalid:pointer-fine:active:bg-[color-mix(in_oklab,var(--color-ui-red)_25%,var(--color-neutral-800))]',
|
|
1070
|
+
// Custom styles
|
|
1071
|
+
typeof className === 'function' ? className(bag) : className), id: fieldContext?.id, invalid: invalid, onChange: handleChange, placeholder: placeholder, ref: ref, required: required, value: fieldContext?.value }), description && (jsxRuntime.jsx(react$1.Description, { ...restDescriptionProps, className: bag => twMerge('text-xs', typeof descriptionProps?.className === 'function'
|
|
1072
|
+
? descriptionProps?.className(bag)
|
|
1073
|
+
: descriptionProps?.className), children: description }))] }));
|
|
1372
1074
|
}
|
|
1373
1075
|
|
|
1374
1076
|
// import { findComponentByType } from '../../utils'
|
|
@@ -1428,23 +1130,23 @@ function getTextFromChildren(children) {
|
|
|
1428
1130
|
* A heading component that renders HTML heading elements (h1-h6) with appropriate styling.
|
|
1429
1131
|
* Automatically generates an ID for the heading based on its content if none is provided.
|
|
1430
1132
|
*/
|
|
1431
|
-
function Heading({ as = 'h2', children, className, id, ref, ...props }) {
|
|
1133
|
+
function Heading({ as = 'h2', children, customize, className, id, ref, ...props }) {
|
|
1432
1134
|
const H = as;
|
|
1433
1135
|
const targetableID = id || getTextFromChildren(children).replace(/\s+/g, '-').toLowerCase();
|
|
1434
1136
|
const getBaseClasses = () => {
|
|
1435
1137
|
switch (as) {
|
|
1436
1138
|
case 'h1':
|
|
1437
|
-
return twSort('pb-2.5 text-6xl font-black last:pb-0');
|
|
1139
|
+
return customize?.h1 || twSort('pb-2.5 text-6xl font-black last:pb-0');
|
|
1438
1140
|
case 'h3':
|
|
1439
|
-
return twSort('pb-2 text-4xl font-extralight last:pb-0');
|
|
1141
|
+
return customize?.h3 || twSort('pb-2 text-4xl font-extralight last:pb-0');
|
|
1440
1142
|
case 'h4':
|
|
1441
|
-
return twSort('pb-2 text-3xl font-extrabold last:pb-0');
|
|
1143
|
+
return customize?.h4 || twSort('pb-2 text-3xl font-extrabold last:pb-0');
|
|
1442
1144
|
case 'h5':
|
|
1443
|
-
return twSort('pb-1.5 text-2xl font-semibold last:pb-0');
|
|
1145
|
+
return customize?.h5 || twSort('pb-1.5 text-2xl font-semibold last:pb-0');
|
|
1444
1146
|
case 'h6':
|
|
1445
|
-
return twSort('pb-1 text-xl font-bold last:pb-0');
|
|
1147
|
+
return customize?.h6 || twSort('pb-1 text-xl font-bold last:pb-0');
|
|
1446
1148
|
default:
|
|
1447
|
-
return twSort('pb-2.5 text-5xl font-medium last:pb-0');
|
|
1149
|
+
return customize?.h2 || twSort('pb-2.5 text-5xl font-medium last:pb-0');
|
|
1448
1150
|
}
|
|
1449
1151
|
};
|
|
1450
1152
|
const baseClasses = getBaseClasses();
|
|
@@ -2141,6 +1843,7 @@ exports.SquareAndPencil = SquareAndPencil;
|
|
|
2141
1843
|
exports.SquareAndPencilFill = SquareAndPencilFill;
|
|
2142
1844
|
exports.SubmitButton = SubmitButton;
|
|
2143
1845
|
exports.TextBubble = TextBubble;
|
|
1846
|
+
exports.Textarea = Textarea;
|
|
2144
1847
|
exports.ThreePeople = ThreePeople;
|
|
2145
1848
|
exports.ThreeRectanglesDesktop = ThreeRectanglesDesktop;
|
|
2146
1849
|
exports.ThreeRectanglesDesktopFill = ThreeRectanglesDesktopFill;
|
|
@@ -2150,45 +1853,7 @@ exports.TrashFill = TrashFill;
|
|
|
2150
1853
|
exports.Tree = Tree;
|
|
2151
1854
|
exports.UmbrellaFill = UmbrellaFill;
|
|
2152
1855
|
exports.Xmark = xmark;
|
|
2153
|
-
exports.addClass = addClass;
|
|
2154
|
-
exports.currentMonthName = currentMonthName;
|
|
2155
|
-
exports.currentWeekdayName = currentWeekdayName;
|
|
2156
|
-
exports.daysInMonth = daysInMonth;
|
|
2157
1856
|
exports.defineField = defineField;
|
|
2158
|
-
exports.easeOutExpo = easeOutExpo;
|
|
2159
|
-
exports.emailRegex = emailRegex;
|
|
2160
|
-
exports.extendMadoTailwindMerge = extendMadoTailwindMerge;
|
|
2161
|
-
exports.findComponentByType = findComponentByType;
|
|
2162
|
-
exports.firstOfMonth = firstOfMonth;
|
|
2163
|
-
exports.formatPhoneNumber = formatPhoneNumber;
|
|
2164
|
-
exports.getDate = getDate;
|
|
2165
|
-
exports.getHours = getHours;
|
|
2166
|
-
exports.getHoursIn12 = getHoursIn12;
|
|
2167
|
-
exports.getMeridianFromHour = getMeridianFromHour;
|
|
2168
|
-
exports.getMilliseconds = getMilliseconds;
|
|
2169
|
-
exports.getMinutes = getMinutes;
|
|
2170
|
-
exports.getMonth = getMonth;
|
|
2171
|
-
exports.getMonthIndexFromName = getMonthIndexFromName;
|
|
2172
|
-
exports.getMonthName = getMonthName;
|
|
2173
|
-
exports.getNextMonth = getNextMonth;
|
|
2174
|
-
exports.getPreviousMonth = getPreviousMonth;
|
|
2175
|
-
exports.getSeconds = getSeconds;
|
|
2176
|
-
exports.getUserReadableDate = getUserReadableDate;
|
|
2177
|
-
exports.getUserReadableDateFromTimestampz = getUserReadableDateFromTimestampz;
|
|
2178
|
-
exports.getWeekdayName = getWeekdayName;
|
|
2179
|
-
exports.getYearsInRange = getYearsInRange;
|
|
2180
|
-
exports.hasClass = hasClass;
|
|
2181
|
-
exports.isEmail = isEmail;
|
|
2182
|
-
exports.isPhoneNumber = isPhoneNumber;
|
|
2183
|
-
exports.monthNamesList = monthNamesList;
|
|
2184
|
-
exports.removeClass = removeClass;
|
|
2185
|
-
exports.telRegex = telRegex;
|
|
2186
|
-
exports.toFullDateString = toFullDateString;
|
|
2187
|
-
exports.toLowerCase = toLowerCase;
|
|
2188
|
-
exports.toggleClass = toggleClass;
|
|
2189
|
-
exports.twMerge = twMerge;
|
|
2190
|
-
exports.twSort = twSort;
|
|
2191
1857
|
exports.useFormContext = useFormContext;
|
|
2192
1858
|
exports.useFormStatus = useFormStatus;
|
|
2193
|
-
exports.weekdayNamesList = weekdayNamesList;
|
|
2194
1859
|
//# sourceMappingURL=index.js.map
|