UNPKG

402 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _nullishCoalesce$6(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$9(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6
7
8
9function toArray(v) {
10 if (Array.isArray(v))
11 return v;
12 return [v];
13}
14
15function hash(str) {
16 str = str.replace(/\r/g, '');
17 let hash = 5381;
18 let i = str.length;
19
20 while (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);
21 return (hash >>> 0).toString(36);
22}
23
24function indent(code, tab = 2) {
25 const spaces = Array(tab).fill(' ').join('');
26 return code
27 .split('\n')
28 .map((line) => spaces + line)
29 .join('\n');
30}
31
32function wrapit(
33 code,
34 start = '{',
35 end = '}',
36 tab = 2,
37 minify = false
38) {
39 if (minify) return `${start}${code}${end}`;
40 return `${start}\n${indent(code, tab)}\n${end}`;
41}
42
43function isNumber(
44 amount,
45 start = -Infinity,
46 end = Infinity,
47 type = 'int'
48) {
49 const isInt = /^-?\d+$/.test(amount);
50 if (type === 'int') {
51 if (!isInt) return false;
52 } else {
53 const isFloat = /^-?\d+\.\d+$/.test(amount);
54 if (!(isInt || isFloat)) return false;
55 }
56 const num = parseFloat(amount);
57 return num >= start && num <= end;
58}
59
60function isFraction(amount) {
61 return /^\d+\/\d+$/.test(amount);
62}
63
64function isSize(amount) {
65 return /^-?(\d+(\.\d+)?)+(rem|em|px|rpx|vh|vw|ch|ex)$/.test(amount);
66}
67
68function isSpace(str) {
69 return /^\s*$/.test(str);
70}
71
72function roundUp(num, precision = 0) {
73 precision = Math.pow(10, precision);
74 return Math.round(num * precision) / precision;
75}
76
77function fracToPercent(amount) {
78 const matches = amount.match(/[^/]+/g);
79 if (!matches || matches.length < 2) return;
80 const a = +matches[0];
81 const b = +matches[1];
82 return roundUp((a / b) * 100, 6) + '%';
83}
84
85function hex2RGB(hex) {
86 const RGB_HEX = /^#?(?:([\da-f]{3})[\da-f]?|([\da-f]{6})(?:[\da-f]{2})?)$/i;
87 const [, short, long] = String(hex).match(RGB_HEX) || [];
88
89 if (long) {
90 const value = Number.parseInt(long, 16);
91 return [value >> 16, (value >> 8) & 0xff, value & 0xff];
92 } else if (short) {
93 return Array.from(short, (s) => Number.parseInt(s, 16)).map(
94 (n) => (n << 4) | n
95 );
96 }
97}
98
99function camelToDash(str) {
100 // Use exact the same regex as Post CSS
101 return str.replace(/([A-Z])/g, '-$1').replace(/^ms-/, '-ms-').toLowerCase();
102}
103
104function dashToCamel(str) {
105 if (!/-/.test(str)) return str;
106 return str.toLowerCase().replace(/-(.)/g, (_, group) => group.toUpperCase());
107}
108
109// eslint-disable-next-line @typescript-eslint/no-explicit-any
110function getNestedValue(obj, key) {
111 const topKey = key.match(/^[^.[]+/);
112 if (!topKey) return;
113 let topValue = obj[topKey[0]];
114 if (!topValue) return;
115 let index = topKey[0].length;
116 while(index < key.length) {
117 const square = key.slice(index, ).match(/\[[^\s\]]+?\]/);
118 const dot = key.slice(index, ).match(/\.[^.[]+$|\.[^.[]+(?=\.)/);
119 if (( !square && !dot ) || ( _optionalChain$9([square, 'optionalAccess', _2 => _2.index]) === undefined && _optionalChain$9([dot, 'optionalAccess', _3 => _3.index]) === undefined )) return topValue;
120 if (typeof topValue !== 'object') return;
121 if (dot && dot.index !== undefined && (_optionalChain$9([square, 'optionalAccess', _4 => _4.index]) === undefined || dot.index < square.index)) {
122 const arg = dot[0].slice(1,);
123 topValue = topValue[arg];
124 index += dot.index + dot[0].length;
125 } else if (square && square.index !== undefined) {
126 const arg = square[0].slice(1, -1).trim().replace(/^['"]+|['"]+$/g, '');
127 topValue = topValue[arg];
128 index += square.index + square[0].length;
129 }
130 }
131 return topValue;
132}
133
134function negateValue(value) {
135 if (/(^0\w)|(^-)|(^0$)/.test(value)) return value;
136 return '-' + value;
137}
138
139function searchFrom(
140 text,
141 target,
142 startIndex = 0,
143 endIndex
144) {
145 // search from partial of string
146 const subText = text.substring(startIndex, endIndex);
147 const relativeIndex = subText.search(target);
148 return relativeIndex === -1 ? -1 : startIndex + relativeIndex;
149}
150
151function connectList(a, b, append = true) {
152 return append ? [...(_nullishCoalesce$6(a, () => ( []))), ...(_nullishCoalesce$6(b, () => ( [])))] : [...(_nullishCoalesce$6(b, () => ( []))), ...(_nullishCoalesce$6(a, () => ( [])))];
153}
154
155
156
157
158
159
160
161function toType(
162 value,
163 type
164) {
165 switch (type) {
166 case 'object':
167 return value && typeof value === 'object' ? value : {};
168 case 'string':
169 if (typeof value === 'string') return value ;
170 break;
171 case 'number':
172 if (typeof value === 'number') return value ;
173 break;
174 }
175}
176
177function deepCopy(source) {
178 return Array.isArray(source)
179 ? (source ).map((item) => deepCopy(item))
180 : source instanceof Date
181 ? new Date(source.getTime())
182 : source && typeof source === 'object'
183 ? Object.getOwnPropertyNames(source).reduce((o, prop) => {
184 const descriptor = Object.getOwnPropertyDescriptor(source, prop);
185 if (descriptor) {
186 Object.defineProperty(o, prop, descriptor);
187 if (source && typeof source === 'object') {
188 o[prop] = deepCopy(
189 ((source ) )[prop]
190 );
191 }
192 }
193 return o;
194 }, Object.create(Object.getPrototypeOf(source)))
195 : (source );
196}
197
198function isTagName(name) {
199 return ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embd', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'svg', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr'].includes(name);
200}
201
202function flatColors(colors, head) {
203 let flatten = {};
204 for (const [key, value] of Object.entries(colors)) {
205 if (typeof value === 'string' || typeof value === 'function') {
206 flatten[(head && key === 'DEFAULT') ? head : head ? `${head}-${key}`: key] = value;
207 } else {
208 flatten = { ...flatten, ...flatColors(value, head ? `${head}-${key}`: key) };
209 }
210 }
211 return flatten;
212}
213
214function testRegexr(text, expressions) {
215 for (const exp of expressions) {
216 if (exp.test(text)) return true;
217 }
218 return false;
219}
220
221function searchPropEnd(text, startIndex = 0) {
222 let index = startIndex;
223 let output = -1;
224 let openSingleQuote = false;
225 let openDoubleQuote = false;
226 let openBracket = false;
227 let isEscaped = false;
228 while (index < text.length) {
229 switch (text.charAt(index)) {
230 case '\\':
231 isEscaped = !isEscaped;
232 break;
233 case '\'':
234 if (!openDoubleQuote && !openBracket && !isEscaped) openSingleQuote = !openSingleQuote;
235 isEscaped = false;
236 break;
237 case '"':
238 if (!openSingleQuote && !openBracket && !isEscaped) openDoubleQuote = !openDoubleQuote;
239 isEscaped = false;
240 break;
241 case '(':
242 if (!openBracket && !openSingleQuote && !openDoubleQuote && !isEscaped) openBracket = true;
243 isEscaped = false;
244 break;
245 case ')':
246 if (openBracket && !isEscaped) openBracket = false;
247 isEscaped = false;
248 break;
249 case ';':
250 if (!isEscaped && !openSingleQuote && !openDoubleQuote && !openBracket) output = index;
251 isEscaped = false;
252 break;
253 default:
254 isEscaped = false;
255 break;
256 }
257 if (output !== -1) break;
258 index++;
259 }
260 return output;
261}
262
263function searchNotEscape(text, chars = ['{']) {
264 if (!Array.isArray(chars)) chars = [ chars ];
265 let i = 0;
266 while (i < text.length) {
267 if (chars.includes(text.charAt(i)) && text.charAt(i - 1) !== '\\') {
268 return i;
269 }
270 i ++;
271 }
272 return -1;
273}
274
275function splitSelectors(selectors) {
276 const splitted = [];
277 let parens = 0;
278 let angulars = 0;
279 let soFar = '';
280 for (let i = 0, len = selectors.length; i < len; i++) {
281 const char = selectors[i];
282 if (char === '(') {
283 parens += 1;
284 } else if (char === ')') {
285 parens -= 1;
286 } else if (char === '[') {
287 angulars += 1;
288 } else if (char === ']') {
289 angulars -= 1;
290 } else if (char === ',') {
291 if (!parens && !angulars) {
292 splitted.push(soFar.trim());
293 soFar = '';
294 continue;
295 }
296 }
297 soFar += char;
298 }
299 splitted.push(soFar.trim());
300 return splitted;
301}
302
303function guessClassName(selector) {
304 if (selector.indexOf(',') >= 0) return splitSelectors(selector).map(i => guessClassName(i) );
305 // not classes, contains attribute selectors, nested selectors - treat as static
306 if (selector.charAt(0) !== '.' || searchNotEscape(selector, ['[', '>', '+', '~']) >= 0 || selector.trim().indexOf(' ') >= 0 || searchNotEscape(selector.slice(1), '.') >=0)
307 return { selector, isClass: false };
308 const pseudo = searchNotEscape(selector, ':');
309 const className = (_optionalChain$9([selector, 'access', _5 => _5.match, 'call', _6 => _6(/^\.([\w-]|(\\\W))+/), 'optionalAccess', _7 => _7[0], 'access', _8 => _8.slice, 'call', _9 => _9(1,)]) || '').replace(/\\/g, '');
310 if (pseudo === -1) return { selector: className, isClass: true };
311 return { selector: className, isClass: true, pseudo: selector.slice(pseudo,) };
312}
313/**
314 * Increase string a value with unit
315 *
316 * @example '2px' + 1 = '3px'
317 * @example '15em' + (-2) = '13em'
318 */
319
320
321
322function increaseWithUnit(target, delta) {
323 if (typeof target === 'number')
324 return target + delta;
325 const value = _optionalChain$9([target, 'access', _10 => _10.match, 'call', _11 => _11(/^-?[0-9]+\.?[0-9]*/), 'optionalAccess', _12 => _12[0]]) || '';
326 const unit = target.slice(value.length);
327 const result = (parseFloat(value) + delta);
328 if (Number.isNaN(result))
329 return target;
330 return result + unit;
331}
332
333
334function splitColorGroup(color) {
335 const sep = color.indexOf('/');
336 if (sep === -1) return [ color, undefined ];
337 return [ color.slice(0, sep), color.slice(sep+1) ];
338}
339
340function _nullishCoalesce$5(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$8(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355class Property {
356 __init() {this.meta = { type: 'utilities', group: 'plugin', order: 0, offset: 0, corePlugin: false };}
357
358
359
360
361
362 constructor(
363 name,
364 value,
365 comment,
366 important = false
367 ) {Property.prototype.__init.call(this);
368 this.name = name;
369 this.value = value;
370 this.comment = comment;
371 this.important = important;
372 }
373
374 static _singleParse(
375 css
376 ) {
377 css = css.trim();
378 if (!css) return;
379 if (css.charAt(0) === '@') return InlineAtRule.parse(css);
380 const split = css.search(':');
381 const end = searchPropEnd(css);
382 if (split === -1) return;
383 let important = false;
384 let prop = css.substring(split + 1, end === -1 ? undefined : end).trim();
385 if (/!important;?$/.test(prop)) {
386 important = true;
387 prop = prop.replace(/!important/, '').trimRight();
388 }
389 return new Property(
390 css.substring(0, split).trim(),
391 prop,
392 undefined,
393 important
394 );
395 }
396
397 static parse(
398 css
399 ) {
400 if (!/;\s*$/.test(css)) css += ';'; // Fix for the situation where the last semicolon is omitted
401 const properties = [];
402 let index = 0;
403 let end = searchPropEnd(css, index);
404 while (end !== -1) {
405 const parsed = this._singleParse(css.substring(searchFrom(css, /\S/, index), end + 1));
406 if (parsed) properties.push(parsed);
407 index = end + 1;
408 end = searchPropEnd(css, index);
409 }
410 const count = properties.length;
411 if (count > 1) return properties;
412 if (count === 1) return properties[0];
413 }
414
415 clone() {
416 return deepCopy(this);
417 }
418
419 toStyle(selector) {
420 const style = new Style(selector, this, this.important);
421 style.meta = this.meta;
422 return style;
423 }
424
425 build(minify = false) {
426 const createProperty = (name, value) => {
427 if (minify) {
428 return `${name}:${value}${this.important ? '!important' : ''};`;
429 } else {
430 const p = `${name}: ${value}${this.important ? ' !important' : ''};`;
431 return this.comment ? p + ` /* ${this.comment} */` : p;
432 }
433 };
434 if (!this.value) return '';
435 return typeof this.name === 'string'
436 ? createProperty(this.name, this.value)
437 : this.name
438 .map((i) => createProperty(i, this.value))
439 .join(minify ? '' : '\n');
440 }
441
442 updateMeta(type, group, order, offset = 0, corePlugin = false) {
443 this.meta = {
444 type,
445 group,
446 order,
447 offset,
448 corePlugin,
449 };
450 return this;
451 }
452}
453
454class InlineAtRule extends Property {
455
456 constructor(name, value, important = false) {
457 super(name, value, undefined, important);
458 this.name = name;
459 }
460 static parse(css) {
461 const matchName = css.match(/@[^\s;{}]+/);
462 if (matchName) {
463 const name = matchName[0].substring(1);
464 let important = false;
465 let expression =
466 matchName.index !== undefined
467 ? _optionalChain$8([css
468, 'access', _ => _.substring, 'call', _2 => _2(matchName.index + name.length + 1)
469, 'access', _3 => _3.match, 'call', _4 => _4(/(?:(['"]).*?\1|[^;])*/), 'optionalAccess', _5 => _5[0]
470, 'access', _6 => _6.trim, 'call', _7 => _7()])
471 : undefined;
472 if (expression && /!important;?$/.test(expression)) {
473 important = true;
474 expression = expression.replace(/!important/, '').trimRight();
475 }
476 return new InlineAtRule(
477 name,
478 expression === '' ? undefined : expression,
479 important
480 );
481 }
482 }
483 build() {
484 return this.value
485 ? `@${this.name} ${this.value}${this.important ? ' !important' : ''};`
486 : `@${this.name}${this.important ? ' !important' : ''};`;
487 }
488}
489
490class Style {
491 __init2() {this.meta = { type: 'components', group: 'plugin', order: 0, offset: 0, corePlugin: false };}
492
493
494
495
496
497
498
499
500
501
502
503
504
505 constructor(
506 selector,
507 property,
508 important = false
509 ) {Style.prototype.__init2.call(this);
510 this.selector = selector;
511 this.important = important;
512 this.property = toArray(property || []);
513 }
514
515 get rule() {
516 let selectors = (_nullishCoalesce$5(this.selector, () => ( ''))).trim().split(/\s*,\s*/g);
517 this._parentSelectors && (selectors = selectors.map(i => `${_optionalChain$8([this, 'access', _8 => _8._parentSelectors, 'optionalAccess', _9 => _9.join, 'call', _10 => _10(' ')])} ${i}`));
518 (_nullishCoalesce$5(this._wrapSelectors, () => ( []))).forEach((func) => (selectors = selectors.map(i => func(i))));
519 this._pseudoClasses && (selectors = selectors.map(i => i + `:${_optionalChain$8([this, 'access', _11 => _11._pseudoClasses, 'optionalAccess', _12 => _12.join, 'call', _13 => _13(':')])}`));
520 this._pseudoElements && (selectors = selectors.map(i => i + `::${_optionalChain$8([this, 'access', _14 => _14._pseudoElements, 'optionalAccess', _15 => _15.join, 'call', _16 => _16('::')])}`));
521 this._brotherSelectors && (selectors = selectors.map(i => i + `.${_optionalChain$8([this, 'access', _17 => _17._brotherSelectors, 'optionalAccess', _18 => _18.join, 'call', _19 => _19('.')])}`));
522 this._childSelectors && (selectors = selectors.map(i => i + ` ${_optionalChain$8([this, 'access', _20 => _20._childSelectors, 'optionalAccess', _21 => _21.join, 'call', _22 => _22(' ')])}`));
523 (_nullishCoalesce$5(this._wrapRules, () => ( []))).forEach((func) => (selectors = selectors.map(i => func(i))));
524 return selectors.join(', ');
525 }
526
527 get pseudoClasses() {
528 return this._pseudoClasses;
529 }
530
531 get pseudoElements() {
532 return this._pseudoElements;
533 }
534
535 get parentSelectors() {
536 return this._parentSelectors;
537 }
538
539 get childSelectors() {
540 return this._childSelectors;
541 }
542
543 get brotherSelectors() {
544 return this._brotherSelectors;
545 }
546
547 get wrapProperties() {
548 return this._wrapProperties;
549 }
550
551 get wrapSelectors() {
552 return this._wrapSelectors;
553 }
554
555 get wrapRules() {
556 return this._wrapRules;
557 }
558
559 get simple() {
560 // is this style only has property and no wrap?
561 return !(this.atRules || this._pseudoClasses || this._pseudoElements || this._parentSelectors || this._childSelectors || this._brotherSelectors || this._wrapProperties || this._wrapSelectors || this._wrapRules);
562 }
563
564 get isAtrule() {
565 return !(this.atRules === undefined || this.atRules.length === 0);
566 }
567
568 static generate(
569 parent,
570 property,
571 root,
572 ) {
573 if (!root)
574 root = _optionalChain$8([parent, 'optionalAccess', _23 => _23.startsWith, 'call', _24 => _24('@')])
575 ? new Style().atRule(parent)
576 : new Style(parent);
577
578 let output = [];
579
580 for (const [key, value] of Object.entries(_nullishCoalesce$5(property, () => ( {})))) {
581 if (typeof value === 'string') {
582 root.add(new Property(camelToDash(key), value));
583 } else if (Array.isArray(value)) {
584 value.map(i => _optionalChain$8([root, 'optionalAccess', _25 => _25.add, 'call', _26 => _26(new Property(camelToDash(key), i))]));
585 } else {
586 const wrap = deepCopy(root);
587 wrap.property = [];
588 let child;
589 if (key.startsWith('@')) {
590 child = wrap.atRule(key, false);
591 } else {
592 if (wrap.selector === undefined) {
593 wrap.selector = key;
594 child = wrap;
595 } else {
596 if (/^[a-z]+$/.test(key) && !isTagName(key)) {
597 wrap.wrapProperty(property => `${key}-${property}`);
598 child = wrap;
599 } else {
600 const _hKey = (selector, key) => (/&/.test(key) ? key : `& ${key}`).replace('&', selector);
601 wrap.wrapSelector((selector) =>
602 selector
603 .trim()
604 .split(/\s*,\s*/g)
605 .map((s) =>
606 key
607 .split(/\s*,\s*/g)
608 .map((i) => _hKey(s, i))
609 .join(', ')
610 )
611 .join(', ')
612 );
613 child = wrap;
614 }
615 }
616 }
617 output = output.concat(Style.generate(key.startsWith('@') ? undefined : key, value, child));
618 }
619 }
620 if (root.property.length > 0) output.unshift(root);
621 return output;
622 }
623
624 atRule(atrule, append = true) {
625 if (!atrule) return this;
626 if (this.atRules) {
627 append ? this.atRules.push(atrule) : this.atRules.unshift(atrule);
628 } else {
629 this.atRules = [atrule];
630 }
631 return this;
632 }
633
634 pseudoClass(string) {
635 if (this._pseudoClasses) {
636 this._pseudoClasses.push(string);
637 } else {
638 this._pseudoClasses = [string];
639 }
640 return this;
641 }
642
643 pseudoElement(string) {
644 if (this._pseudoElements) {
645 this._pseudoElements.push(string);
646 } else {
647 this._pseudoElements = [string];
648 }
649 return this;
650 }
651
652 brother(string) {
653 if (this._brotherSelectors) {
654 this._brotherSelectors.push(string);
655 } else {
656 this._brotherSelectors = [string];
657 }
658 return this;
659 }
660
661 parent(string) {
662 if (this._parentSelectors) {
663 this._parentSelectors.push(string);
664 } else {
665 this._parentSelectors = [string];
666 }
667 return this;
668 }
669
670 child(string) {
671 if (this._childSelectors) {
672 this._childSelectors.push(string);
673 } else {
674 this._childSelectors = [string];
675 }
676 return this;
677 }
678
679 wrapProperty(func) {
680 if (this._wrapProperties) {
681 this._wrapProperties.push(func);
682 } else {
683 this._wrapProperties = [func];
684 }
685 return this;
686 }
687
688 wrapSelector(func) {
689 if (this._wrapSelectors) {
690 this._wrapSelectors.push(func);
691 } else {
692 this._wrapSelectors = [func];
693 }
694 return this;
695 }
696
697 wrapRule(func) {
698 if (this._wrapRules) {
699 this._wrapRules.push(func);
700 } else {
701 this._wrapRules = [func];
702 }
703 return this;
704 }
705
706 add(item) {
707 item = toArray(item);
708 if (this.important) item.forEach((i) => (i.important = true));
709 this.property = [...this.property, ...item];
710 return this;
711 }
712
713 extend(item, onlyProperty = false, append = true) {
714 if (!item) return this;
715 if (item.wrapProperties) {
716 const props = [];
717 item.property.forEach((p) => {
718 const pc = new Property(p.name, p.value, p.comment);
719 _optionalChain$8([item, 'access', _27 => _27.wrapProperties, 'optionalAccess', _28 => _28.forEach, 'call', _29 => _29((wrap) => {
720 pc.name = Array.isArray(pc.name)
721 ? pc.name.map((i) => wrap(i))
722 : wrap(pc.name);
723 })]);
724 if (item.important) pc.important = true;
725 props.push(pc);
726 });
727 this.property = connectList(this.property, props, append);
728 } else {
729 if (item.important) item.property.forEach((i) => (i.important = true));
730 this.property = connectList(this.property, item.property, append);
731 }
732 if (onlyProperty) return this;
733 item.selector && (this.selector = item.selector);
734 this.meta = item.meta;
735 item.atRules &&
736 (this.atRules = connectList(item.atRules, this.atRules, append)); // atrule is build in reverse
737 item._brotherSelectors &&
738 (this._brotherSelectors = connectList(
739 this._brotherSelectors,
740 item._brotherSelectors,
741 append
742 ));
743 item._childSelectors &&
744 (this._childSelectors = connectList(
745 this._childSelectors,
746 item._childSelectors,
747 append
748 ));
749 item._parentSelectors &&
750 (this._parentSelectors = connectList(
751 this._parentSelectors,
752 item._parentSelectors,
753 append
754 ));
755 item._pseudoClasses &&
756 (this._pseudoClasses = connectList(
757 this._pseudoClasses,
758 item._pseudoClasses,
759 append
760 ));
761 item._pseudoElements &&
762 (this._pseudoElements = connectList(
763 this._pseudoElements,
764 item._pseudoElements,
765 append
766 ));
767 item._wrapRules &&
768 (this._wrapRules = connectList(this._wrapRules, item._wrapRules, append));
769 item._wrapSelectors &&
770 (this._wrapSelectors = connectList(
771 this._wrapSelectors,
772 item._wrapSelectors,
773 append
774 ));
775 return this;
776 }
777
778 clean() {
779 // remove duplicated property
780 const property = [];
781 const cache = [];
782 this.property.forEach((i) => {
783 const inline = i.build();
784 if (!cache.includes(inline)) {
785 cache.push(inline);
786 property.push(i);
787 }
788 });
789 this.property = property;
790 return this;
791 }
792
793 flat() {
794 const properties = [];
795 this.property.forEach((p) => {
796 if (Array.isArray(p.name)) {
797 p.name.forEach((i) => {
798 properties.push(new Property(i, p.value, p.comment));
799 });
800 } else {
801 properties.push(p);
802 }
803 });
804 this.property = properties;
805 return this;
806 }
807
808 clone(selector, property) {
809 const newStyle = deepCopy(this);
810 if (selector) newStyle.selector = selector;
811 if (property) newStyle.property = Array.isArray(property) ? property: [ property ];
812 return newStyle;
813 }
814
815 sort() {
816 // sort property
817 this.property = this.property.sort((a, b) => {
818 return `${a.name}`.substring(0, 2) > `${b.name}`.substring(0, 2) ? 1 : -1;
819 });
820 return this;
821 }
822
823 build(minify = false, prefixer = true) {
824 let properties = this.property;
825 if (!prefixer) properties = properties.filter(p => {
826 if (p.value && /-(webkit|ms|moz|o)-/.test(p.value)) return false;
827 if (Array.isArray(p.name)) {
828 p.name = p.name.filter(i => !/^-(webkit|ms|moz|o)-/.test(i));
829 return true;
830 }
831 return !/^-(webkit|ms|moz|o)-/.test(p.name);
832 });
833 let result = properties.map(p => {
834 if (this._wrapProperties) {
835 let name = p.name;
836 this._wrapProperties.forEach(w => (name = Array.isArray(name) ? name.map(n => w(n)) : w(name)));
837 return new Property(name, p.value, p.comment, this.important ? true : p.important).build(minify);
838 }
839 return this.important ? new Property(p.name, p.value, p.comment, true).build(minify) : p.build(minify);
840 }).join(minify ? '' : '\n');
841 if (!this.selector && !this.atRules) return result.replace(/;}/g, '}');
842 if (this.selector) result = (minify ? this.rule.replace(/,\s/g, ',') : this.rule + ' ') + wrapit(result, undefined, undefined, undefined, result !== '' ? minify : true);
843 if (this.atRules) {
844 for (const rule of this.atRules) {
845 result = minify ? `${rule.replace(/\s/g, '')}${wrapit(result, undefined, undefined, undefined, minify)}` : `${rule} ${wrapit(result, undefined, undefined, undefined, result !== '' ? minify : true)}`;
846 }
847 }
848 return minify ? result.replace(/;}/g, '}') : result;
849 }
850
851 updateMeta(type, group, order, offset = 0, corePlugin = false, respectSelector = false) {
852 this.meta = {
853 type,
854 group,
855 order,
856 offset,
857 corePlugin,
858 respectSelector,
859 };
860 return this;
861 }
862}
863
864class Keyframes extends Style {
865 constructor(
866 selector,
867 property,
868 important,
869 ) {
870 super(selector, property, important);
871 }
872
873 // root param only for consist with style
874 // eslint-disable-next-line @typescript-eslint/no-unused-vars
875 static generate(name, children, root = undefined, prefixer = true) {
876 const styles = [];
877 const webkitStyles = [];
878 for (const [key, value] of Object.entries(children)) {
879 const style = new Keyframes(key).atRule(`@keyframes ${name}`);
880 const webkitStyle = new Keyframes(key).atRule(
881 `@-webkit-keyframes ${name}`
882 );
883 for (const [pkey, pvalue] of Object.entries(value)) {
884 let prop = pkey;
885 if (pkey === 'transform') {
886 prop = prefixer ? ['-webkit-transform', 'transform'] : 'transform';
887 } else if (
888 ['animationTimingFunction', 'animation-timing-function'].includes(pkey)
889 ) {
890 prop = prefixer ? [
891 '-webkit-animation-timing-function',
892 'animation-timing-function',
893 ] : 'animation-timing-function';
894 }
895 style.add(new Property(prop, pvalue));
896 webkitStyle.add(new Property(prop, pvalue));
897 }
898 styles.push(style);
899 if (prefixer) webkitStyles.push(webkitStyle);
900 }
901 return [...styles, ...webkitStyles];
902 }
903}
904
905class Container extends Style {
906 constructor(
907 selector,
908 property,
909 important,
910 ) {
911 super(selector, property, important);
912 }
913}
914
915const minMaxWidth = /(!?\(\s*min(-device-)?-width).+\(\s*max(-device)?-width/i;
916const minWidth = /\(\s*min(-device)?-width/i;
917const maxMinWidth = /(!?\(\s*max(-device)?-width).+\(\s*min(-device)?-width/i;
918const maxWidth = /\(\s*max(-device)?-width/i;
919
920const isMinWidth = _testQuery(minMaxWidth, maxMinWidth, minWidth);
921const isMaxWidth = _testQuery(maxMinWidth, minMaxWidth, maxWidth);
922
923const minMaxHeight = /(!?\(\s*min(-device)?-height).+\(\s*max(-device)?-height/i;
924const minHeight = /\(\s*min(-device)?-height/i;
925const maxMinHeight = /(!?\(\s*max(-device)?-height).+\(\s*min(-device)?-height/i;
926const maxHeight = /\(\s*max(-device)?-height/i;
927
928const isMinHeight = _testQuery(minMaxHeight, maxMinHeight, minHeight);
929const isMaxHeight = _testQuery(maxMinHeight, minMaxHeight, maxHeight);
930
931const isPrint = /print/i;
932const isPrintOnly = /^print\$/i;
933const isAtRule = /^\s*@/i;
934const isMedia = /^\s*@media/i;
935
936const maxValue = Number.MAX_VALUE;
937
938function _getQueryLength(length) {
939 const result = /(-?\d*\.?\d+)(ch|em|ex|px|rpx|rem)/.exec(length);
940
941 if (result === null) {
942 return maxValue;
943 }
944
945 const number = result[1];
946 const unit = result[2];
947
948 switch (unit) {
949 case 'ch':
950 return parseFloat(number) * 8.8984375;
951 case 'em':
952 case 'rem':
953 return parseFloat(number) * 16;
954 case 'ex':
955 return parseFloat(number) * 8.296875;
956 case 'px':
957 case 'rpx':
958 return parseFloat(number);
959 }
960
961 return +number;
962}
963
964function _testQuery(
965 doubleTestTrue,
966 doubleTestFalse,
967 singleTest
968) {
969 return function (query) {
970 if (doubleTestTrue.test(query)) {
971 return true;
972 } else if (doubleTestFalse.test(query)) {
973 return false;
974 }
975 return singleTest.test(query);
976 };
977}
978
979function _testAtRule(a, b) {
980 const isMediaA = isMedia.test(a);
981 const isMediaB = isMedia.test(b);
982
983 if (isMediaA && isMediaB) return null;
984
985 const isAtRuleA = isAtRule.test(a);
986 const isAtRuleB = isAtRule.test(b);
987
988 if (isAtRuleA) return 1;
989 if (isAtRuleB) return -1;
990
991 return 0; // don't sort selector name, may cause overwrite bug.
992}
993
994function _testIsPrint(a, b) {
995 const isPrintA = isPrint.test(a);
996 const isPrintOnlyA = isPrintOnly.test(a);
997
998 const isPrintB = isPrint.test(b);
999 const isPrintOnlyB = isPrintOnly.test(b);
1000
1001 if (isPrintA && isPrintB) {
1002 if (!isPrintOnlyA && isPrintOnlyB) {
1003 return 1;
1004 }
1005 if (isPrintOnlyA && !isPrintOnlyB) {
1006 return -1;
1007 }
1008 return a.localeCompare(b);
1009 }
1010 if (isPrintA) {
1011 return 1;
1012 }
1013 if (isPrintB) {
1014 return -1;
1015 }
1016
1017 return null;
1018}
1019
1020function sortMediaQuery(a, b) {
1021 const testAtRule = _testAtRule(a, b);
1022 if (testAtRule !== null) return testAtRule;
1023 const testIsPrint = _testIsPrint(a, b);
1024 if (testIsPrint !== null) return testIsPrint;
1025
1026 const minA = isMinWidth(a) || isMinHeight(a);
1027 const maxA = isMaxWidth(a) || isMaxHeight(a);
1028
1029 const minB = isMinWidth(b) || isMinHeight(b);
1030 const maxB = isMaxWidth(b) || isMaxHeight(b);
1031
1032 if (minA && maxB) {
1033 return -1;
1034 }
1035 if (maxA && minB) {
1036 return 1;
1037 }
1038
1039 const lengthA = _getQueryLength(a);
1040 const lengthB = _getQueryLength(b);
1041
1042 if (lengthA === maxValue && lengthB === maxValue) {
1043 return a.localeCompare(b);
1044 } else if (lengthA === maxValue) {
1045 return 1;
1046 } else if (lengthB === maxValue) {
1047 return -1;
1048 }
1049
1050 if (lengthA > lengthB) {
1051 if (maxA) {
1052 return -1;
1053 }
1054 return 1;
1055 }
1056
1057 if (lengthA < lengthB) {
1058 if (maxA) {
1059 return 1;
1060 }
1061 return -1;
1062 }
1063
1064 return a.localeCompare(b);
1065}
1066
1067function _nullishCoalesce$4(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$7(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1068
1069function getWeights(a) {
1070 const first = a.charAt(0);
1071 const second = a.charAt(1);
1072 if (first === ':' && second === ':') return 59; // ::moz ...
1073 if (first === '#') return 500; // #id ...
1074 if (first !== '.') return first.charCodeAt(0); // html, body ...
1075 return 499;
1076}
1077
1078function sortMeta(a, b) {
1079 if (a.meta.type === 'base' && b.meta.type === 'base') return getWeights(_nullishCoalesce$4(a.selector, () => ( ''))) - getWeights(_nullishCoalesce$4(b.selector, () => ( '')));
1080 return sortMediaQuery(_optionalChain$7([a, 'access', _ => _.meta, 'access', _2 => _2.variants, 'optionalAccess', _3 => _3[0]]) || '', _optionalChain$7([b, 'access', _4 => _4.meta, 'access', _5 => _5.variants, 'optionalAccess', _6 => _6[0]]) || '') || (a.meta.order - b.meta.order) || (a.meta.offset - b.meta.offset) || +b.meta.corePlugin - +a.meta.corePlugin;
1081}
1082
1083function sortGroup(a, b) {
1084 return sortMediaQuery(_optionalChain$7([a, 'access', _7 => _7.meta, 'access', _8 => _8.variants, 'optionalAccess', _9 => _9[0]]) || '', _optionalChain$7([b, 'access', _10 => _10.meta, 'access', _11 => _11.variants, 'optionalAccess', _12 => _12[0]]) || '') || (a.meta.order - b.meta.order);
1085}
1086
1087function _optionalChain$6(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1088
1089function _buildAtrule(atrule, children, minify = false, prefixer = true) {
1090 return `${ atrule }${ minify ? '' : ' ' }${ wrapit(_buildStyleList(children, minify, prefixer), undefined, undefined, undefined, minify) }`;
1091}
1092
1093function _buildStyleList(styleList, minify = false, prefixer = true) {
1094 let currentAtrule;
1095 let currentStyle;
1096 let styleStack = [];
1097 const output = [];
1098 for (const style of styleList) {
1099 if (style.isAtrule) {
1100 if (currentStyle) {
1101 output.push(currentStyle.clean().build(minify, prefixer));
1102 currentStyle = undefined;
1103 }
1104 const newAtrule = (style.atRules ).pop();
1105 if (currentAtrule) {
1106 if (currentAtrule === newAtrule && newAtrule !== '@font-face') { // @font-face shouldn't been combined
1107 styleStack.push(style);
1108 } else {
1109 output.push(_buildAtrule(currentAtrule, styleStack, minify, prefixer));
1110 currentAtrule = newAtrule;
1111 styleStack = [ style ];
1112 }
1113 } else {
1114 currentAtrule = newAtrule;
1115 styleStack = [ style ];
1116 }
1117 } else {
1118 if (currentAtrule) {
1119 output.push(_buildAtrule(currentAtrule, styleStack, minify, prefixer));
1120 currentAtrule = undefined;
1121 styleStack = [];
1122 }
1123 if (currentStyle) {
1124 if (style.rule === currentStyle.rule) {
1125 if (style.important) style.property.forEach(p => p.important = true);
1126 if (style.wrapProperties) style.property.forEach(p => _optionalChain$6([style, 'access', _ => _.wrapProperties, 'optionalAccess', _2 => _2.forEach, 'call', _3 => _3(wrap => p.name = Array.isArray(p.name) ? p.name.map(i => wrap(i)) : wrap(p.name))]));
1127 currentStyle.add(style.property);
1128 } else {
1129 output.push(currentStyle.clean().build(minify, prefixer));
1130 currentStyle = style;
1131 }
1132 } else {
1133 currentStyle = style;
1134 }
1135 }
1136 }
1137 if (currentAtrule) output.push(_buildAtrule(currentAtrule, styleStack, minify, prefixer));
1138 if (currentStyle) output.push(currentStyle.clean().build(minify, prefixer));
1139 return output.join(minify ? '' : '\n');
1140}
1141
1142function compileStyleSheet (styleList, minify = false, prefixer = true) {
1143 return _buildStyleList(deepCopy(styleList), minify, prefixer);
1144}
1145
1146function _optionalChain$5(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1147
1148class StyleSheet {
1149
1150 __init() {this.prefixer = true;}
1151
1152 constructor(children) {StyleSheet.prototype.__init.call(this);
1153 this.children = children || [];
1154 }
1155
1156 add(item) {
1157 if (!item) return this;
1158 if (Array.isArray(item)) {
1159 this.children = [...this.children, ...item];
1160 } else {
1161 this.children.push(item);
1162 }
1163 return this;
1164 }
1165
1166 extend(styleSheet, append = true, dedup = false) {
1167 if (styleSheet) {
1168 let extended = styleSheet.children;
1169 if (dedup) {
1170 const hashes = extended.map(i => hash(i.build()));
1171 extended = extended.filter(i => !hashes.includes(hash(i.build())));
1172 }
1173 this.prefixer = styleSheet.prefixer;
1174 this.children = append? [...this.children, ...extended]: [...extended, ...this.children];
1175 }
1176 return this;
1177 }
1178
1179 combine() {
1180 const styleMap = {};
1181 this.children.forEach((style, index) => {
1182 const hashValue = hash(style.atRules + style.rule);
1183 if (hashValue in styleMap) {
1184 if (_optionalChain$5([style, 'access', _ => _.atRules, 'optionalAccess', _2 => _2.includes, 'call', _3 => _3('@font-face')])) {
1185 // keeps multiple @font-face
1186 styleMap[hashValue + index] = style;
1187 } else {
1188 styleMap[hashValue] = styleMap[hashValue].extend(style, true);
1189 }
1190 } else {
1191 styleMap[hashValue] = style;
1192 }
1193 });
1194 this.children = Object.values(styleMap).map((i) => i.clean());
1195 return this;
1196 }
1197
1198 layer(type) {
1199 const styleSheet = new StyleSheet(this.children.filter(i => i.meta.type === type));
1200 styleSheet.prefixer = this.prefixer;
1201 return styleSheet;
1202 }
1203
1204 split() {
1205 return {
1206 base: this.layer('base'),
1207 components: this.layer('components'),
1208 utilities: this.layer('utilities'),
1209 };
1210 }
1211
1212 clone() {
1213 return deepCopy(this);
1214 }
1215
1216 sort() {
1217 this.children = this.children.sort(sortMeta);
1218 return this;
1219 }
1220
1221 sortby(compareFn) {
1222 this.children = this.children.sort(compareFn);
1223 return this;
1224 }
1225
1226 build(minify = false) {
1227 return compileStyleSheet(this.children, minify, this.prefixer);
1228 }
1229}
1230
1231function linearGradient(value) {
1232 // Stupid method, will be changed in the next version...
1233 const map = {
1234 'linear-gradient(to top, var(--tw-gradient-stops))': [
1235 '-o-linear-gradient(bottom, var(--tw-gradient-stops))',
1236 '-webkit-gradient(linear, left bottom, left top, from(var(--tw-gradient-stops)))',
1237 'linear-gradient(to top, var(--tw-gradient-stops))',
1238 ],
1239 'linear-gradient(to top right, var(--tw-gradient-stops))': [
1240 '-o-linear-gradient(bottom left, var(--tw-gradient-stops))',
1241 '-webkit-gradient(linear, left bottom, right top, from(var(--tw-gradient-stops)))',
1242 'linear-gradient(to top right, var(--tw-gradient-stops))',
1243 ],
1244 'linear-gradient(to right, var(--tw-gradient-stops))': [
1245 '-o-linear-gradient(left, var(--tw-gradient-stops))',
1246 '-webkit-gradient(linear, left top, right top, from(var(--tw-gradient-stops)))',
1247 'linear-gradient(to right, var(--tw-gradient-stops))',
1248 ],
1249 'linear-gradient(to bottom right, var(--tw-gradient-stops))': [
1250 '-o-linear-gradient(top left, var(--tw-gradient-stops))',
1251 '-webkit-gradient(linear, left top, right bottom, from(var(--tw-gradient-stops)))',
1252 'linear-gradient(to bottom right, var(--tw-gradient-stops))',
1253 ],
1254 'linear-gradient(to bottom, var(--tw-gradient-stops))': [
1255 '-o-linear-gradient(top, var(--tw-gradient-stops))',
1256 '-webkit-gradient(linear, left top, left bottom, from(var(--tw-gradient-stops)))',
1257 'linear-gradient(to bottom, var(--tw-gradient-stops))',
1258 ],
1259 'linear-gradient(to bottom left, var(--tw-gradient-stops))': [
1260 '-o-linear-gradient(top right, var(--tw-gradient-stops))',
1261 '-webkit-gradient(linear, right top, left bottom, from(var(--tw-gradient-stops)))',
1262 'linear-gradient(to bottom left, var(--tw-gradient-stops))',
1263 ],
1264 'linear-gradient(to left, var(--tw-gradient-stops))': [
1265 '-o-linear-gradient(right, var(--tw-gradient-stops))',
1266 '-webkit-gradient(linear, right top, left top, from(var(--tw-gradient-stops)))',
1267 'linear-gradient(to left, var(--tw-gradient-stops))',
1268 ],
1269 'linear-gradient(to top left, var(--tw-gradient-stops))': [
1270 '-o-linear-gradient(bottom right, var(--tw-gradient-stops))',
1271 '-webkit-gradient(linear, right bottom, left top, from(var(--tw-gradient-stops)))',
1272 'linear-gradient(to top left, var(--tw-gradient-stops))',
1273 ],
1274 };
1275 if (Object.keys(map).includes(value)) return map[value];
1276 return value;
1277}
1278
1279function minMaxContent(value) {
1280 if (value === 'min-content') {
1281 return ['-webkit-min-content', 'min-content'];
1282 } else if (value === 'max-content') {
1283 return ['-webkit-max-content', 'max-content'];
1284 }
1285 return value;
1286}
1287
1288function isString(value) {
1289 return typeof value === 'string';
1290}
1291
1292function negative(scale
1293
1294) {
1295 return Object.keys(scale)
1296 .filter((key) => scale[key] !== '0')
1297 .reduce(
1298 (negativeScale, key) => ({
1299 ...negativeScale,
1300 [`-${key}`]: negateValue(scale[key]),
1301 }),
1302 {}
1303 );
1304}
1305
1306function breakpoints(
1307 screens = {}
1308) {
1309 return Object.keys(screens)
1310 .filter((key) => typeof screens[key] === 'string')
1311 .reduce(
1312 (breakpoints, key) => ({
1313 ...breakpoints,
1314 [`screen-${key}`]: screens[key],
1315 }),
1316 {}
1317 );
1318}
1319
1320function generateFontSize(font) {
1321 if (typeof font === 'string') return [ new Property('font-size', font) ];
1322 const properties = [];
1323 if (font[0]) properties.push(new Property('font-size', font[0]));
1324 if (typeof font[1] === 'string') {
1325 properties.push(new Property('line-height', font[1]));
1326 } else if (font[1]){
1327 if (font[1].lineHeight) properties.push(new Property('line-height', font[1].lineHeight));
1328 if (font[1].letterSpacing) properties.push(new Property('letter-spacing', font[1].letterSpacing));
1329 }
1330 return properties;
1331}
1332
1333function expandDirection(
1334 value,
1335 divide = false
1336) {
1337 const map = {
1338 '': ['*'],
1339 y: ['top', 'bottom'],
1340 x: ['left', 'right'],
1341 t: divide ? ['top-left', 'top-right'] : ['top'],
1342 r: divide ? ['top-right', 'bottom-right'] : ['right'],
1343 b: divide ? ['bottom-right', 'bottom-left'] : ['bottom'],
1344 l: divide ? ['top-left', 'bottom-left'] : ['left'],
1345 tl: ['top-left'],
1346 tr: ['top-right'],
1347 br: ['bottom-right'],
1348 bl: ['bottom-left'],
1349 };
1350 if (value in map) return map[value];
1351}
1352
1353function generatePlaceholder(selector, property, prefixer = false) {
1354 if (!prefixer) return [ new Style(selector, property).pseudoElement('placeholder') ];
1355 return [
1356 new Style(selector, property).pseudoElement('-webkit-input-placeholder'),
1357 new Style(selector, property).pseudoElement('-moz-placeholder'),
1358 new Style(selector, property).pseudoClass('-ms-input-placeholder'),
1359 new Style(selector, property).pseudoElement('-ms-input-placeholder'),
1360 new Style(selector, property).pseudoElement('placeholder'),
1361 ];
1362}
1363
1364function createCommonjsModule(fn) {
1365 var module = { exports: {} };
1366 return fn(module, module.exports), module.exports;
1367}
1368
1369var colorName = {
1370 "aliceblue": [240, 248, 255],
1371 "antiquewhite": [250, 235, 215],
1372 "aqua": [0, 255, 255],
1373 "aquamarine": [127, 255, 212],
1374 "azure": [240, 255, 255],
1375 "beige": [245, 245, 220],
1376 "bisque": [255, 228, 196],
1377 "black": [0, 0, 0],
1378 "blanchedalmond": [255, 235, 205],
1379 "blue": [0, 0, 255],
1380 "blueviolet": [138, 43, 226],
1381 "brown": [165, 42, 42],
1382 "burlywood": [222, 184, 135],
1383 "cadetblue": [95, 158, 160],
1384 "chartreuse": [127, 255, 0],
1385 "chocolate": [210, 105, 30],
1386 "coral": [255, 127, 80],
1387 "cornflowerblue": [100, 149, 237],
1388 "cornsilk": [255, 248, 220],
1389 "crimson": [220, 20, 60],
1390 "cyan": [0, 255, 255],
1391 "darkblue": [0, 0, 139],
1392 "darkcyan": [0, 139, 139],
1393 "darkgoldenrod": [184, 134, 11],
1394 "darkgray": [169, 169, 169],
1395 "darkgreen": [0, 100, 0],
1396 "darkgrey": [169, 169, 169],
1397 "darkkhaki": [189, 183, 107],
1398 "darkmagenta": [139, 0, 139],
1399 "darkolivegreen": [85, 107, 47],
1400 "darkorange": [255, 140, 0],
1401 "darkorchid": [153, 50, 204],
1402 "darkred": [139, 0, 0],
1403 "darksalmon": [233, 150, 122],
1404 "darkseagreen": [143, 188, 143],
1405 "darkslateblue": [72, 61, 139],
1406 "darkslategray": [47, 79, 79],
1407 "darkslategrey": [47, 79, 79],
1408 "darkturquoise": [0, 206, 209],
1409 "darkviolet": [148, 0, 211],
1410 "deeppink": [255, 20, 147],
1411 "deepskyblue": [0, 191, 255],
1412 "dimgray": [105, 105, 105],
1413 "dimgrey": [105, 105, 105],
1414 "dodgerblue": [30, 144, 255],
1415 "firebrick": [178, 34, 34],
1416 "floralwhite": [255, 250, 240],
1417 "forestgreen": [34, 139, 34],
1418 "fuchsia": [255, 0, 255],
1419 "gainsboro": [220, 220, 220],
1420 "ghostwhite": [248, 248, 255],
1421 "gold": [255, 215, 0],
1422 "goldenrod": [218, 165, 32],
1423 "gray": [128, 128, 128],
1424 "green": [0, 128, 0],
1425 "greenyellow": [173, 255, 47],
1426 "grey": [128, 128, 128],
1427 "honeydew": [240, 255, 240],
1428 "hotpink": [255, 105, 180],
1429 "indianred": [205, 92, 92],
1430 "indigo": [75, 0, 130],
1431 "ivory": [255, 255, 240],
1432 "khaki": [240, 230, 140],
1433 "lavender": [230, 230, 250],
1434 "lavenderblush": [255, 240, 245],
1435 "lawngreen": [124, 252, 0],
1436 "lemonchiffon": [255, 250, 205],
1437 "lightblue": [173, 216, 230],
1438 "lightcoral": [240, 128, 128],
1439 "lightcyan": [224, 255, 255],
1440 "lightgoldenrodyellow": [250, 250, 210],
1441 "lightgray": [211, 211, 211],
1442 "lightgreen": [144, 238, 144],
1443 "lightgrey": [211, 211, 211],
1444 "lightpink": [255, 182, 193],
1445 "lightsalmon": [255, 160, 122],
1446 "lightseagreen": [32, 178, 170],
1447 "lightskyblue": [135, 206, 250],
1448 "lightslategray": [119, 136, 153],
1449 "lightslategrey": [119, 136, 153],
1450 "lightsteelblue": [176, 196, 222],
1451 "lightyellow": [255, 255, 224],
1452 "lime": [0, 255, 0],
1453 "limegreen": [50, 205, 50],
1454 "linen": [250, 240, 230],
1455 "magenta": [255, 0, 255],
1456 "maroon": [128, 0, 0],
1457 "mediumaquamarine": [102, 205, 170],
1458 "mediumblue": [0, 0, 205],
1459 "mediumorchid": [186, 85, 211],
1460 "mediumpurple": [147, 112, 219],
1461 "mediumseagreen": [60, 179, 113],
1462 "mediumslateblue": [123, 104, 238],
1463 "mediumspringgreen": [0, 250, 154],
1464 "mediumturquoise": [72, 209, 204],
1465 "mediumvioletred": [199, 21, 133],
1466 "midnightblue": [25, 25, 112],
1467 "mintcream": [245, 255, 250],
1468 "mistyrose": [255, 228, 225],
1469 "moccasin": [255, 228, 181],
1470 "navajowhite": [255, 222, 173],
1471 "navy": [0, 0, 128],
1472 "oldlace": [253, 245, 230],
1473 "olive": [128, 128, 0],
1474 "olivedrab": [107, 142, 35],
1475 "orange": [255, 165, 0],
1476 "orangered": [255, 69, 0],
1477 "orchid": [218, 112, 214],
1478 "palegoldenrod": [238, 232, 170],
1479 "palegreen": [152, 251, 152],
1480 "paleturquoise": [175, 238, 238],
1481 "palevioletred": [219, 112, 147],
1482 "papayawhip": [255, 239, 213],
1483 "peachpuff": [255, 218, 185],
1484 "peru": [205, 133, 63],
1485 "pink": [255, 192, 203],
1486 "plum": [221, 160, 221],
1487 "powderblue": [176, 224, 230],
1488 "purple": [128, 0, 128],
1489 "rebeccapurple": [102, 51, 153],
1490 "red": [255, 0, 0],
1491 "rosybrown": [188, 143, 143],
1492 "royalblue": [65, 105, 225],
1493 "saddlebrown": [139, 69, 19],
1494 "salmon": [250, 128, 114],
1495 "sandybrown": [244, 164, 96],
1496 "seagreen": [46, 139, 87],
1497 "seashell": [255, 245, 238],
1498 "sienna": [160, 82, 45],
1499 "silver": [192, 192, 192],
1500 "skyblue": [135, 206, 235],
1501 "slateblue": [106, 90, 205],
1502 "slategray": [112, 128, 144],
1503 "slategrey": [112, 128, 144],
1504 "snow": [255, 250, 250],
1505 "springgreen": [0, 255, 127],
1506 "steelblue": [70, 130, 180],
1507 "tan": [210, 180, 140],
1508 "teal": [0, 128, 128],
1509 "thistle": [216, 191, 216],
1510 "tomato": [255, 99, 71],
1511 "turquoise": [64, 224, 208],
1512 "violet": [238, 130, 238],
1513 "wheat": [245, 222, 179],
1514 "white": [255, 255, 255],
1515 "whitesmoke": [245, 245, 245],
1516 "yellow": [255, 255, 0],
1517 "yellowgreen": [154, 205, 50]
1518};
1519
1520var isArrayish = function isArrayish(obj) {
1521 if (!obj || typeof obj === 'string') {
1522 return false;
1523 }
1524
1525 return obj instanceof Array || Array.isArray(obj) ||
1526 (obj.length >= 0 && (obj.splice instanceof Function ||
1527 (Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));
1528};
1529
1530var simpleSwizzle = createCommonjsModule(function (module) {
1531
1532
1533
1534var concat = Array.prototype.concat;
1535var slice = Array.prototype.slice;
1536
1537var swizzle = module.exports = function swizzle(args) {
1538 var results = [];
1539
1540 for (var i = 0, len = args.length; i < len; i++) {
1541 var arg = args[i];
1542
1543 if (isArrayish(arg)) {
1544 // http://jsperf.com/javascript-array-concat-vs-push/98
1545 results = concat.call(results, slice.call(arg));
1546 } else {
1547 results.push(arg);
1548 }
1549 }
1550
1551 return results;
1552};
1553
1554swizzle.wrap = function (fn) {
1555 return function () {
1556 return fn(swizzle(arguments));
1557 };
1558};
1559});
1560
1561/* MIT license */
1562
1563var colorString = createCommonjsModule(function (module) {
1564var reverseNames = {};
1565
1566// create a list of reverse color names
1567for (var name in colorName) {
1568 if (colorName.hasOwnProperty(name)) {
1569 reverseNames[colorName[name]] = name;
1570 }
1571}
1572
1573var cs = module.exports = {
1574 to: {},
1575 get: {}
1576};
1577
1578cs.get = function (string) {
1579 var prefix = string.substring(0, 3).toLowerCase();
1580 var val;
1581 var model;
1582 switch (prefix) {
1583 case 'hsl':
1584 val = cs.get.hsl(string);
1585 model = 'hsl';
1586 break;
1587 case 'hwb':
1588 val = cs.get.hwb(string);
1589 model = 'hwb';
1590 break;
1591 default:
1592 val = cs.get.rgb(string);
1593 model = 'rgb';
1594 break;
1595 }
1596
1597 if (!val) {
1598 return null;
1599 }
1600
1601 return {model: model, value: val};
1602};
1603
1604cs.get.rgb = function (string) {
1605 if (!string) {
1606 return null;
1607 }
1608
1609 var abbr = /^#([a-f0-9]{3,4})$/i;
1610 var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
1611 var rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/;
1612 var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/;
1613 var keyword = /(\D+)/;
1614
1615 var rgb = [0, 0, 0, 1];
1616 var match;
1617 var i;
1618 var hexAlpha;
1619
1620 if (match = string.match(hex)) {
1621 hexAlpha = match[2];
1622 match = match[1];
1623
1624 for (i = 0; i < 3; i++) {
1625 // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19
1626 var i2 = i * 2;
1627 rgb[i] = parseInt(match.slice(i2, i2 + 2), 16);
1628 }
1629
1630 if (hexAlpha) {
1631 rgb[3] = parseInt(hexAlpha, 16) / 255;
1632 }
1633 } else if (match = string.match(abbr)) {
1634 match = match[1];
1635 hexAlpha = match[3];
1636
1637 for (i = 0; i < 3; i++) {
1638 rgb[i] = parseInt(match[i] + match[i], 16);
1639 }
1640
1641 if (hexAlpha) {
1642 rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;
1643 }
1644 } else if (match = string.match(rgba)) {
1645 for (i = 0; i < 3; i++) {
1646 rgb[i] = parseInt(match[i + 1], 0);
1647 }
1648
1649 if (match[4]) {
1650 rgb[3] = parseFloat(match[4]);
1651 }
1652 } else if (match = string.match(per)) {
1653 for (i = 0; i < 3; i++) {
1654 rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);
1655 }
1656
1657 if (match[4]) {
1658 rgb[3] = parseFloat(match[4]);
1659 }
1660 } else if (match = string.match(keyword)) {
1661 if (match[1] === 'transparent') {
1662 return [0, 0, 0, 0];
1663 }
1664
1665 rgb = colorName[match[1]];
1666
1667 if (!rgb) {
1668 return null;
1669 }
1670
1671 rgb[3] = 1;
1672
1673 return rgb;
1674 } else {
1675 return null;
1676 }
1677
1678 for (i = 0; i < 3; i++) {
1679 rgb[i] = clamp(rgb[i], 0, 255);
1680 }
1681 rgb[3] = clamp(rgb[3], 0, 1);
1682
1683 return rgb;
1684};
1685
1686cs.get.hsl = function (string) {
1687 if (!string) {
1688 return null;
1689 }
1690
1691 var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?[\d\.]+)\s*)?\)$/;
1692 var match = string.match(hsl);
1693
1694 if (match) {
1695 var alpha = parseFloat(match[4]);
1696 var h = (parseFloat(match[1]) + 360) % 360;
1697 var s = clamp(parseFloat(match[2]), 0, 100);
1698 var l = clamp(parseFloat(match[3]), 0, 100);
1699 var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
1700
1701 return [h, s, l, a];
1702 }
1703
1704 return null;
1705};
1706
1707cs.get.hwb = function (string) {
1708 if (!string) {
1709 return null;
1710 }
1711
1712 var hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/;
1713 var match = string.match(hwb);
1714
1715 if (match) {
1716 var alpha = parseFloat(match[4]);
1717 var h = ((parseFloat(match[1]) % 360) + 360) % 360;
1718 var w = clamp(parseFloat(match[2]), 0, 100);
1719 var b = clamp(parseFloat(match[3]), 0, 100);
1720 var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
1721 return [h, w, b, a];
1722 }
1723
1724 return null;
1725};
1726
1727cs.to.hex = function () {
1728 var rgba = simpleSwizzle(arguments);
1729
1730 return (
1731 '#' +
1732 hexDouble(rgba[0]) +
1733 hexDouble(rgba[1]) +
1734 hexDouble(rgba[2]) +
1735 (rgba[3] < 1
1736 ? (hexDouble(Math.round(rgba[3] * 255)))
1737 : '')
1738 );
1739};
1740
1741cs.to.rgb = function () {
1742 var rgba = simpleSwizzle(arguments);
1743
1744 return rgba.length < 4 || rgba[3] === 1
1745 ? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'
1746 : 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';
1747};
1748
1749cs.to.rgb.percent = function () {
1750 var rgba = simpleSwizzle(arguments);
1751
1752 var r = Math.round(rgba[0] / 255 * 100);
1753 var g = Math.round(rgba[1] / 255 * 100);
1754 var b = Math.round(rgba[2] / 255 * 100);
1755
1756 return rgba.length < 4 || rgba[3] === 1
1757 ? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'
1758 : 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';
1759};
1760
1761cs.to.hsl = function () {
1762 var hsla = simpleSwizzle(arguments);
1763 return hsla.length < 4 || hsla[3] === 1
1764 ? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'
1765 : 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';
1766};
1767
1768// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax
1769// (hwb have alpha optional & 1 is default value)
1770cs.to.hwb = function () {
1771 var hwba = simpleSwizzle(arguments);
1772
1773 var a = '';
1774 if (hwba.length >= 4 && hwba[3] !== 1) {
1775 a = ', ' + hwba[3];
1776 }
1777
1778 return 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';
1779};
1780
1781cs.to.keyword = function (rgb) {
1782 return reverseNames[rgb.slice(0, 3)];
1783};
1784
1785// helpers
1786function clamp(num, min, max) {
1787 return Math.min(Math.max(min, num), max);
1788}
1789
1790function hexDouble(num) {
1791 var str = num.toString(16).toUpperCase();
1792 return (str.length < 2) ? '0' + str : str;
1793}
1794});
1795
1796function _optionalChain$4(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1797
1798function hsl2rgb(h, s, l) {
1799 s = s / 100,
1800 l = l / 100;
1801 if (h >= 360)
1802 h %= 360;
1803
1804 const c = (1 - Math.abs(2 * l - 1)) * s;
1805 const x = c * (1 - Math.abs((h / 60) % 2 - 1));
1806 const m = l - c/2;
1807 let r = 0;
1808 let g = 0;
1809 let b = 0;
1810
1811 if (0 <= h && h < 60) {
1812 r = c; g = x; b = 0;
1813 } else if (60 <= h && h < 120) {
1814 r = x; g = c; b = 0;
1815 } else if (120 <= h && h < 180) {
1816 r = 0; g = c; b = x;
1817 } else if (180 <= h && h < 240) {
1818 r = 0; g = x; b = c;
1819 } else if (240 <= h && h < 300) {
1820 r = x; g = 0; b = c;
1821 } else if (300 <= h && h < 360) {
1822 r = c; g = 0; b = x;
1823 }
1824 // having obtained RGB, convert channels to hex
1825 r = Math.round((r + m) * 255);
1826 g = Math.round((g + m) * 255);
1827 b = Math.round((b + m) * 255);
1828 return [r, g, b];
1829}
1830
1831function hwb2rgb(h, w, b) {
1832 const rgb = hsl2rgb(h, 100, 50);
1833
1834 for (let i = 0; i < 3; ++i) {
1835 let c = rgb[i] / 255;
1836
1837 c *= 1 - w/100 - b/100;
1838 c += w/100;
1839
1840 rgb[i] = Math.round(c * 255);
1841 }
1842
1843 return rgb;
1844}
1845
1846function toRGBA(color) {
1847 if (/^hsla?/.test(color)) {
1848 const colorTuple = colorString.get.hsl(color);
1849 if (!colorTuple) return;
1850 return [...hsl2rgb(colorTuple[0], colorTuple[1], colorTuple[2]), colorTuple[3]];
1851 } else if (/^rgba?/.test(color)) {
1852 const colorTuple = colorString.get.rgb(color);
1853 if (!colorTuple) return;
1854 return colorTuple;
1855 } else if (color.startsWith('hwb')) {
1856 const colorTuple = colorString.get.hwb(color);
1857 if (!colorTuple) return;
1858 return [...hwb2rgb(colorTuple[0], colorTuple[1], colorTuple[2]), colorTuple[3]];
1859 }
1860 return _optionalChain$4([colorString, 'access', _ => _.get, 'call', _2 => _2(color), 'optionalAccess', _3 => _3.value]);
1861}
1862
1863function toColor(colorStr) {
1864 const rgba = toRGBA(colorStr);
1865 const color = rgba ? rgba.slice(0, 3).join(', ') : colorStr;
1866 const opacity = rgba ? rgba[3].toString() : '1';
1867
1868 return {
1869 color,
1870 opacity,
1871 };
1872}
1873
1874function generateScreens(screens
1875
1876) {
1877 const variants = {};
1878
1879 const breakpoints = Object.entries(screens).sort(([, sizeA], [, sizeB]) =>
1880 sortWeight(sizeA) - sortWeight(sizeB)
1881 );
1882
1883 breakpoints.forEach(([name, size], index) => {
1884 if (isString(size)) {
1885 const [, nextSize] = breakpoints[index + 1] || [];
1886 variants[name] = styleForBreakpoint({ min: size });
1887 variants[`<${name}`] = styleForBreakpoint({ max: increaseWithUnit(size, -0.1) });
1888 variants[`@${name}`] = styleForBreakpoint(
1889 nextSize ? { min: size, max: increaseWithUnit(nextSize , -0.1) } : { min: size }
1890 );
1891 variants[`-${name}`] = styleForBreakpoint({ max: size });
1892 variants[`+${name}`] = styleForBreakpoint(
1893 nextSize ? { min: size, max: nextSize } : { min: size }
1894 );
1895 } else {
1896 variants[name] = styleForBreakpoint(size);
1897 }
1898 });
1899
1900 return variants;
1901}
1902
1903function styleForBreakpoint(rule) {
1904 const mediaConditions = 'raw' in rule ? rule.raw : [
1905 rule.min && `(min-width: ${rule.min})`,
1906 rule.max && `(max-width: ${rule.max})`,
1907 ].filter(condition => condition).join(' and ');
1908 return () => new Style().atRule(`@media ${mediaConditions}`);
1909}
1910
1911// NOTE: Non-size breakpoints should come first, to avoid using them in the
1912// +breakpoint definition.
1913function sortWeight(breakpoint) {
1914 return isString(breakpoint) ? parseInt(breakpoint) : Number.NEGATIVE_INFINITY;
1915}
1916
1917function generateThemes (
1918 darkMode
1919) {
1920 if (!darkMode) return {};
1921 return {
1922 '@dark': () => new Style().atRule('@media (prefers-color-scheme: dark)'),
1923 '@light': () => new Style().atRule('@media (prefers-color-scheme: light)'),
1924 '.dark': () => new Style().parent('.dark'),
1925 '.light': () => new Style().parent('.light'),
1926 dark: () => darkMode === 'media'? new Style().atRule('@media (prefers-color-scheme: dark)'): new Style().parent('.dark'),
1927 light: () => darkMode === 'media'? new Style().atRule('@media (prefers-color-scheme: light)'): new Style().parent('.light'),
1928 } ;
1929}
1930
1931/*
1932 * See MDN web docs for more information
1933 * https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes
1934 */
1935
1936function generateStates (
1937 variantOrder
1938) {
1939 const states = {
1940 // Interactive links/buttons
1941 hover: () => new Style().pseudoClass('hover'),
1942 focus: () => new Style().pseudoClass('focus'),
1943 active: () => new Style().pseudoClass('active'),
1944 visited: () => new Style().pseudoClass('visited'),
1945 link: () => new Style().pseudoClass('link'),
1946 target: () => new Style().pseudoClass('target'),
1947 'focus-visible': () => new Style().pseudoClass('focus-visible'),
1948 'focus-within': () => new Style().pseudoClass('focus-within'),
1949
1950 // Form element states
1951 checked: () => new Style().pseudoClass('checked'),
1952 'not-checked': () => new Style().pseudoClass('not(:checked)'),
1953 default: () => new Style().pseudoClass('default'),
1954 disabled: () => new Style().pseudoClass('disabled'),
1955 enabled: () => new Style().pseudoClass('enabled'),
1956 indeterminate: () => new Style().pseudoClass('indeterminate'),
1957 invalid: () => new Style().pseudoClass('invalid'),
1958 valid: () => new Style().pseudoClass('valid'),
1959 optional: () => new Style().pseudoClass('optional'),
1960 required: () => new Style().pseudoClass('required'),
1961 'placeholder-shown': () => new Style().pseudoClass('placeholder-shown'),
1962 'read-only': () => new Style().pseudoClass('read-only'),
1963 'read-write': () => new Style().pseudoClass('read-write'),
1964
1965 // Child selectors
1966 'not-disabled': () => new Style().pseudoClass('not(:disabled)'),
1967 'first-of-type': () => new Style().pseudoClass('first-of-type'),
1968 'not-first-of-type': () => new Style().pseudoClass('not(:first-of-type)'),
1969 'last-of-type': () => new Style().pseudoClass('last-of-type'),
1970 'not-last-of-type': () => new Style().pseudoClass('not(:last-of-type)'),
1971 first: () => new Style().pseudoClass('first-child'),
1972 last: () => new Style().pseudoClass('last-child'),
1973 'not-first': () => new Style().pseudoClass('not(:first-child)'),
1974 'not-last': () => new Style().pseudoClass('not(:last-child)'),
1975 'only-child': () => new Style().pseudoClass('only-child'),
1976 'not-only-child': () => new Style().pseudoClass('not(:only-child)'),
1977 'only-of-type': () => new Style().pseudoClass('only-of-type'),
1978 'not-only-of-type': () => new Style().pseudoClass('not(:only-of-type)'),
1979 even: () => new Style().pseudoClass('nth-child(even)'),
1980 odd: () => new Style().pseudoClass('nth-child(odd)'),
1981 'even-of-type': () => new Style().pseudoClass('nth-of-type(even)'),
1982 'odd-of-type': () => new Style().pseudoClass('nth-of-type(odd)'),
1983 root: () => new Style().pseudoClass('root'),
1984 empty: () => new Style().pseudoClass('empty'),
1985
1986 // Pseudo elements
1987 before: () => new Style().pseudoElement('before'),
1988 after: () => new Style().pseudoElement('after'),
1989 'first-letter': () => new Style().pseudoElement('first-letter'),
1990 'first-line': () => new Style().pseudoElement('first-line'),
1991 'file-selector-button': () => new Style().pseudoElement('file-selector-button'),
1992 selection: () => new Style().pseudoElement('selection'),
1993
1994 svg: () => new Style().child('svg'),
1995 all: () => new Style().child('*'),
1996 children: () => new Style().child('> *'),
1997 siblings: () => new Style().child('~ *'),
1998 sibling: () => new Style().child('+ *'),
1999 // https://www.w3schools.com/CSS/css_pseudo_elements.asp
2000
2001 // Directions
2002 ltr: () => new Style().wrapSelector(selector => `[dir='ltr'] ${selector}, [dir='ltr']${selector}`),
2003 rtl: () => new Style().wrapSelector(selector => `[dir='rtl'] ${selector}, [dir='rtl']${selector}`),
2004
2005 // Group states
2006 // You'll need to add className="group" to an ancestor to make these work
2007 // https://github.com/ben-rogerson/twin.macro/blob/master/docs/group.md
2008 'group-hover': () => new Style().parent('.group:hover'),
2009 'group-focus': () => new Style().parent('.group:focus'),
2010 'group-active': () => new Style().parent('.group:active'),
2011 'group-visited': () => new Style().parent('.group:visited'),
2012
2013 // Motion control
2014 // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
2015 'motion-safe': () => new Style().atRule('@media (prefers-reduced-motion: no-preference)'),
2016 'motion-reduce': () => new Style().atRule('@media (prefers-reduced-motion: reduce)'),
2017 };
2018 const orderedStates = {};
2019 variantOrder.forEach((v) => {
2020 if (v in states) {
2021 orderedStates[v] = states[v];
2022 }
2023 });
2024 return orderedStates;
2025}
2026
2027function _nullishCoalesce$3(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$3(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037function resolveVariants(config) {
2038 return {
2039 screen: generateScreens((_nullishCoalesce$3(_optionalChain$3([(config.theme ), 'optionalAccess', _ => _.screens]), () => ( {}))) ),
2040 theme: generateThemes(config.darkMode),
2041 state: generateStates(_nullishCoalesce$3(config.variantOrder, () => ( []))),
2042 };
2043}
2044
2045function _optionalChain$2(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// (Last Update: Aug 22 2020) [https://github.com/sindresorhus/modern-normalize/blob/master/modern-normalize.css]
2046
2047
2048const preflights
2049
2050
2051
2052
2053
2054
2055 = [
2056
2057 /*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
2058
2059 /*
2060Document
2061========
2062*/
2063
2064 /**
2065Use a better box model (opinionated).
2066*/
2067 // {
2068 // keys: ['*'],
2069 // global: true,
2070 // selector: '*, *::before, *::after',
2071 // properties: {
2072 // '-webkit-box-sizing': 'border-box',
2073 // 'box-sizing': 'border-box'
2074 // }
2075 // },
2076 // overwrite by windi
2077
2078 /**
2079Use a more readable tab size (opinionated).
2080*/
2081
2082 {
2083 keys: ['root'],
2084 global: true,
2085 selector: ':root',
2086 properties: {
2087 '-moz-tab-size': (theme) => theme('tabSize.DEFAULT', '4'),
2088 '-o-tab-size': (theme) => theme('tabSize.DEFAULT', '4'),
2089 'tab-size': (theme) => theme('tabSize.DEFAULT', '4'),
2090 },
2091 },
2092
2093 /**
20941. Correct the line height in all browsers.
20952. Prevent adjustments of font size after orientation changes in iOS.
2096*/
2097
2098 {
2099 keys: ['html'],
2100 global: true,
2101 selector: 'html',
2102 properties: {
2103 // 'line-height': '1.15', /* 1 */ overwrite by windi
2104 '-webkit-text-size-adjust': '100%', /* 2 */
2105 },
2106 },
2107
2108 /*
2109Sections
2110========
2111*/
2112
2113 /**
2114Remove the margin in all browsers.
2115*/
2116
2117 {
2118 keys: ['body'],
2119 global: true,
2120 selector: 'body',
2121 properties: {
2122 'margin': '0', /* 1 */
2123 },
2124 },
2125
2126 /**
2127Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2128*/
2129
2130 // {
2131 // keys: ['body'],
2132 // global: true,
2133 // selector: 'body',
2134 // properties: {
2135 // 'font-family': "system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'"
2136 // }
2137 // },
2138 // overide by windi
2139
2140 /*
2141Grouping content
2142================
2143*/
2144
2145 /**
21461. Add the correct height in Firefox.
21472. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
2148*/
2149
2150 {
2151 keys: ['hr'],
2152 properties: {
2153 'height': '0', /* 1 */
2154 'color': 'inherit', /* 2 */
2155 },
2156 },
2157
2158 /*
2159Text-level semantics
2160====================
2161*/
2162
2163 /**
2164Add the correct text decoration in Chrome, Edge, and Safari.
2165*/
2166
2167 {
2168 keys: ['title'],
2169 global: true,
2170 selector: 'abbr[title]',
2171 properties: {
2172 '-webkit-text-decoration': 'underline dotted',
2173 'text-decoration': 'underline dotted',
2174 },
2175 },
2176
2177 /**
2178Add the correct font weight in Edge and Safari.
2179*/
2180
2181 {
2182 keys: ['b', 'strong'],
2183 properties: {
2184 'font-weight': 'bolder',
2185 },
2186 },
2187
2188 /**
21891. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
21902. Correct the odd 'em' font sizing in all browsers.
2191*/
2192
2193 {
2194 keys: ['code', 'kbd', 'samp', 'pre'],
2195 properties: {
2196 // 'font-family': "ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace", /* 1 */ overwrite by windi
2197 'font-size': '1em', /* 2 */
2198 },
2199 },
2200
2201 /**
2202Add the correct font size in all browsers.
2203*/
2204
2205 {
2206 keys: ['small'],
2207 properties: {
2208 'font-size': '80%',
2209 },
2210 },
2211
2212 /**
2213Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
2214*/
2215
2216 {
2217 keys: ['sub', 'sup'],
2218 properties: {
2219 'font-size': '75%',
2220 'line-height': '0',
2221 'position': 'relative',
2222 'vertical-align': 'baseline',
2223 },
2224 },
2225
2226 {
2227 keys: ['sub'],
2228 properties: {
2229 'bottom': '-0.25em',
2230 },
2231 },
2232
2233 {
2234 keys: ['sup'],
2235 properties: {
2236 'top': '-0.5em',
2237 },
2238 },
2239
2240 /*
2241Tabular data
2242============
2243*/
2244
2245 /**
22461. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
22472. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
2248*/
2249
2250 {
2251 keys: ['table'],
2252 properties: {
2253 'text-indent': '0', /* 1 */
2254 'border-color': 'inherit', /* 2 */
2255 },
2256 },
2257
2258 /*
2259Forms
2260=====
2261*/
2262
2263 /**
22641. Change the font styles in all browsers.
22652. Remove the margin in Firefox and Safari.
2266*/
2267
2268 {
2269 keys: ['button', 'input', 'optgroup', 'select', 'textarea'],
2270 properties: {
2271 'font-family': 'inherit', /* 1 */
2272 'font-size': '100%', /* 1 */
2273 'line-height': '1.15', /* 1 */
2274 'margin': '0', /* 2 */
2275 },
2276 },
2277
2278 /**
2279Remove the inheritance of text transform in Edge and Firefox.
22801. Remove the inheritance of text transform in Firefox.
2281*/
2282
2283 {
2284 keys: ['button', 'select'],
2285 properties: {
2286 'text-transform': 'none', /* 1 */
2287 },
2288 },
2289
2290 /**
2291Correct the inability to style clickable types in iOS and Safari.
2292*/
2293
2294 {
2295 keys: ['button'],
2296 selector: 'button, [type=\'button\'], [type=\'reset\'], [type=\'submit\']',
2297 properties: {
2298 '-webkit-appearance': 'button', /* 1 */
2299 },
2300 },
2301
2302 /**
2303Remove the inner border and padding in Firefox.
2304*/
2305
2306 {
2307 keys: ['inner'],
2308 global: true,
2309 selector: '::moz-focus-inner',
2310 properties: {
2311 'border-style': 'none',
2312 'padding': '0',
2313 },
2314 },
2315
2316 /**
2317Restore the focus styles unset by the previous rule.
2318*/
2319
2320 {
2321 keys: ['focusring'],
2322 global: true,
2323 selector: ':-moz-focusring',
2324 properties: {
2325 'outline': '1px dotted ButtonText',
2326 },
2327 },
2328
2329 /**
2330Remove the additional ':invalid' styles in Firefox.
2331See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
2332*/
2333
2334 {
2335 keys: ['invalid'],
2336 global: true,
2337 selector: ':-moz-ui-invalid',
2338 properties: {
2339 'box-shadow': 'none',
2340 },
2341 },
2342
2343 /**
2344Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
2345*/
2346
2347 {
2348 keys: ['legend'],
2349 properties: {
2350 'padding': '0',
2351 },
2352 },
2353
2354 /**
2355Add the correct vertical alignment in Chrome and Firefox.
2356*/
2357
2358 {
2359 keys: ['progress'],
2360 properties: {
2361 'vertical-align': 'baseline',
2362 },
2363 },
2364
2365 /**
2366Correct the cursor style of increment and decrement buttons in Safari.
2367*/
2368
2369 {
2370 keys: ['spin'],
2371 global: true,
2372 selector: '::-webkit-inner-spin-button, ::-webkit-outer-spin-button',
2373 properties: {
2374 'height': 'auto',
2375 },
2376 },
2377
2378 /**
23791. Correct the odd appearance in Chrome and Safari.
23802. Correct the outline style in Safari.
2381*/
2382
2383 {
2384 keys: ['search'],
2385 global: true,
2386 selector: '[type=\'search\']',
2387 properties: {
2388 '-webkit-appearance': 'textfield', /* 1 */
2389 'outline-offset': '-2px', /* 2 */
2390
2391 },
2392 },
2393
2394 /**
2395Remove the inner padding in Chrome and Safari on macOS.
2396*/
2397
2398 {
2399 keys: ['search'],
2400 global: true,
2401 selector: '::-webkit-search-decoration',
2402 properties: {
2403 '-webkit-appearance': 'none',
2404 },
2405 },
2406
2407 /**
24081. Correct the inability to style clickable types in iOS and Safari.
24092. Change font properties to 'inherit' in Safari.
2410*/
2411
2412 {
2413 keys: ['file'],
2414 global: true,
2415 selector: '::-webkit-file-upload-button',
2416 properties: {
2417 '-webkit-appearance': 'button',
2418 'font': 'inherit',
2419 },
2420 },
2421
2422 /*
2423Interactive
2424===========
2425*/
2426
2427 /*
2428Add the correct display in Chrome and Safari.
2429*/
2430
2431 {
2432 keys: ['summary'],
2433 properties: {
2434 'display': 'list-item',
2435 },
2436 },
2437
2438 /**
2439 * Manually forked from SUIT CSS Base: https://github.com/suitcss/base
2440 * A thin layer on top of normalize.css that provides a starting point more
2441 * suitable for web applications.
2442 */
2443
2444 /**
2445 * Removes the default spacing and border for appropriate elements.
2446 */
2447
2448 {
2449 keys: ['blockquote', 'dl', 'dd', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'figure', 'p', 'pre'],
2450 properties: {
2451 'margin': '0',
2452 },
2453 },
2454
2455 {
2456 keys: ['button'],
2457 properties: {
2458 'background-color': 'transparent',
2459 'background-image': 'none' },
2460 },
2461
2462 /**
2463 * Work around a Firefox/IE bug where the transparent `button` background
2464 * results in a loss of the default `button` focus styles.
2465 */
2466
2467 {
2468 keys: ['button'],
2469 selector: 'button:focus',
2470 properties: {
2471 'outline': [
2472 '1px dotted',
2473 '5px auto -webkit-focus-ring-color',
2474 ],
2475 },
2476 },
2477
2478 {
2479 keys: ['fieldset'],
2480 properties: {
2481 'margin': '0',
2482 'padding': '0',
2483 },
2484 },
2485
2486 {
2487 keys: ['ol', 'ul'],
2488 properties: {
2489 'list-style': 'none',
2490 'margin': '0',
2491 'padding': '0',
2492 },
2493 },
2494
2495 /**
2496 * Tailwind custom reset styles
2497 */
2498
2499 /**
2500 * 1. Use the user's configured `sans` font-family (with Tailwind's default
2501 * sans-serif font stack as a fallback) as a sane default.
2502 * 2. Use Tailwind's default "normal" line-height so the user isn't forced
2503 * to override it to ensure consistency even when using the default theme.
2504 */
2505
2506 {
2507 keys: ['html'],
2508 global: true,
2509 selector: 'html',
2510 properties: {
2511 'font-family': (theme) => theme('fontFamily.sans', 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"') , /* 1 */
2512 'line-height': '1.5', /* 2 */
2513 },
2514 },
2515
2516 /**
2517 * Inherit font-family and line-height from `html` so users can set them as
2518 * a class directly on the `html` element.
2519 */
2520
2521 {
2522 keys: ['body'],
2523 global: true,
2524 selector: 'body',
2525 properties: {
2526 'font-family': 'inherit',
2527 'line-height': 'inherit',
2528 },
2529 },
2530
2531 /**
2532 * 1. Prevent padding and border from affecting element width.
2533 *
2534 * We used to set this in the html element and inherit from
2535 * the parent element for everything else. This caused issues
2536 * in shadow-dom-enhanced elements like <details> where the content
2537 * is wrapped by a div with box-sizing set to `content-box`.
2538 *
2539 * https://github.com/mozdevs/cssremedy/issues/4
2540 *
2541 *
2542 * 2. Allow adding a border to an element by just adding a border-width.
2543 *
2544 * By default, the way the browser specifies that an element should have no
2545 * border is by setting it's border-style to `none` in the user-agent
2546 * stylesheet.
2547 *
2548 * In order to easily add borders to elements by just setting the `border-width`
2549 * property, we change the default border-style for all elements to `solid`, and
2550 * use border-width to hide them instead. This way our `border` utilities only
2551 * need to set the `border-width` property instead of the entire `border`
2552 * shorthand, making our border utilities much more straightforward to compose.
2553 *
2554 */
2555
2556 {
2557 keys: ['*'],
2558 global: true,
2559 selector: '*, ::before, ::after',
2560 properties: {
2561 '-webkit-box-sizing': 'border-box',
2562 'box-sizing': 'border-box',
2563 'border-width': '0',
2564 'border-style': 'solid',
2565 'border-color': (theme) => theme('borderColor.DEFAULT', 'currentColor') ,
2566 },
2567 },
2568
2569 /*
2570 * Ensure horizontal rules are visible by default
2571 */
2572
2573 {
2574 keys: ['hr'],
2575 properties: {
2576 'border-top-width': '1px',
2577 },
2578 },
2579
2580 /**
2581 * Undo the `border-style: none` reset that Normalize applies to images so that
2582 * our `border-{width}` utilities have the expected effect.
2583 *
2584 * The Normalize reset is unnecessary for us since we default the border-width
2585 * to 0 on all elements.
2586 *
2587 */
2588
2589 {
2590 keys: ['img'],
2591 properties: {
2592 'border-style': 'solid',
2593 },
2594 },
2595
2596 {
2597 keys: ['textarea'],
2598 properties: {
2599 'resize': 'vertical',
2600 },
2601 },
2602
2603 // input::placeholder,
2604 // textarea::placeholder {
2605 // color: theme('colors.gray.400', #a1a1aa);
2606 // }
2607 // support prefixer
2608
2609 {
2610 keys: ['input'],
2611 selector: 'input::placeholder',
2612 properties: {
2613 'opacity': '1',
2614 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2615 },
2616 },
2617
2618 {
2619 keys: ['input'],
2620 selector: 'input::webkit-input-placeholder',
2621 properties: {
2622 'opacity': '1',
2623 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2624 },
2625 },
2626
2627 {
2628 keys: ['input'],
2629 selector: 'input::-moz-placeholder',
2630 properties: {
2631 'opacity': '1',
2632 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2633 },
2634 },
2635
2636 {
2637 keys: ['input'],
2638 selector: 'input:-ms-input-placeholder',
2639 properties: {
2640 'opacity': '1',
2641 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2642 },
2643 },
2644
2645 {
2646 keys: ['input'],
2647 selector: 'input::-ms-input-placeholder',
2648 properties: {
2649 'opacity': '1',
2650 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2651 },
2652 },
2653
2654 {
2655 keys: ['textarea'],
2656 selector: 'textarea::placeholder',
2657 properties: {
2658 'opacity': '1',
2659 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2660 },
2661 },
2662
2663 {
2664 keys: ['textarea'],
2665 selector: 'textarea::webkit-input-placeholder',
2666 properties: {
2667 'opacity': '1',
2668 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2669 },
2670 },
2671
2672 {
2673 keys: ['textarea'],
2674 selector: 'textarea::-moz-placeholder',
2675 properties: {
2676 'opacity': '1',
2677 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2678 },
2679 },
2680
2681 {
2682 keys: ['textarea'],
2683 selector: 'textarea:-ms-input-placeholder',
2684 properties: {
2685 'opacity': '1',
2686 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2687 },
2688 },
2689
2690 {
2691 keys: ['textarea'],
2692 selector: 'textarea::-ms-input-placeholder',
2693 properties: {
2694 'opacity': '1',
2695 'color': (theme) => theme('colors.gray.400', '#a1a1aa') ,
2696 },
2697 },
2698
2699 {
2700 keys: ['button'],
2701 selector: 'button, [role="button"]',
2702 properties: {
2703 'cursor': 'pointer',
2704 },
2705 },
2706
2707 {
2708 keys: ['table'],
2709 properties: {
2710 'border-collapse': 'collapse',
2711 },
2712 },
2713
2714 {
2715 keys: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
2716 properties: {
2717 'font-size': 'inherit',
2718 'font-weight': 'inherit',
2719 },
2720 },
2721
2722 /**
2723 * Reset links to optimize for opt-in styling instead of
2724 * opt-out.
2725 */
2726
2727 {
2728 keys: ['a'],
2729 properties: {
2730 'color': 'inherit',
2731 'text-decoration': 'inherit',
2732 },
2733 },
2734
2735 /**
2736 * Reset form element properties that are easy to forget to
2737 * style explicitly so you don't inadvertently introduce
2738 * styles that deviate from your design system. These styles
2739 * supplement a partial reset that is already applied by
2740 * normalize.css.
2741 */
2742
2743 {
2744 keys: ['button', 'input', 'optgroup', 'select', 'textarea'],
2745 properties: {
2746 'padding': '0',
2747 'line-height': 'inherit',
2748 'color': 'inherit',
2749 },
2750 },
2751
2752 /**
2753 * Use the configured 'mono' font family for elements that
2754 * are expected to be rendered with a monospace font, falling
2755 * back to the system monospace stack if there is no configured
2756 * 'mono' font family.
2757 */
2758
2759 {
2760 keys: ['pre', 'code', 'kbd', 'samp'],
2761 properties: {
2762 'font-family': (theme) => theme('fontFamily.mono', 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace') ,
2763 },
2764 },
2765
2766 /**
2767 * Make replaced elements `display: block` by default as that's
2768 * the behavior you want almost all of the time. Inspired by
2769 * CSS Remedy, with `svg` added as well.
2770 *
2771 * https://github.com/mozdevs/cssremedy/issues/14
2772 */
2773
2774 {
2775 keys: ['img', 'svg', 'video', 'canvas', 'audio', 'iframe', 'embed', 'object'],
2776 properties: {
2777 'display': 'block',
2778 'vertical-align': 'middle',
2779 },
2780 },
2781
2782 /**
2783 * Constrain images and videos to the parent width and preserve
2784 * their instrinsic aspect ratio.
2785 *
2786 * https://github.com/mozdevs/cssremedy/issues/14
2787 */
2788
2789 {
2790 keys: ['img', 'video'],
2791 properties: {
2792 'max-width': '100%',
2793 'height': 'auto',
2794 },
2795 },
2796
2797 // added by ringWidth
2798 // https://windicss.org/utilities/borders.html#ring-width
2799 {
2800 keys: ['*'],
2801 global: true,
2802 selector: '*',
2803 properties: {
2804 '--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',
2805 '--tw-ring-offset-width': theme => theme('ringOffsetWidth.DEFAULT', '0px') ,
2806 '--tw-ring-offset-color': theme => theme('ringOffsetColor.DEFAULT', '#fff') ,
2807 '--tw-ring-color': theme => `rgba(${_optionalChain$2([hex2RGB, 'call', _ => _(theme('ringColor.DEFAULT', '#93C5FD') ), 'optionalAccess', _2 => _2.join, 'call', _3 => _3(', ')])}, ${theme('ringOpacity.DEFAULT', '0.5') })`,
2808 '--tw-ring-offset-shadow': '0 0 #0000',
2809 '--tw-ring-shadow': '0 0 #0000',
2810 },
2811 },
2812
2813 // added by boxShadow
2814 // https://windicss.org/utilities/effects.html#box-shadow
2815 {
2816 keys: ['*'],
2817 global: true,
2818 selector: '*',
2819 properties: {
2820 '--tw-shadow': '0 0 #0000',
2821 },
2822 },
2823];
2824
2825const fontVariants = {
2826 '--tw-ordinal': 'var(--tw-empty,/*!*/ /*!*/)',
2827 '--tw-slashed-zero': 'var(--tw-empty,/*!*/ /*!*/)',
2828 '--tw-numeric-figure': 'var(--tw-empty,/*!*/ /*!*/)',
2829 '--tw-numeric-spacing': 'var(--tw-empty,/*!*/ /*!*/)',
2830 '--tw-numeric-fraction': 'var(--tw-empty,/*!*/ /*!*/)',
2831 'font-variant-numeric': 'var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)',
2832};
2833
2834const staticUtilities = {
2835 // https://windicss.org/utilities/behaviors.html#box-decoration-break
2836 'decoration-slice': {
2837 'utility': {
2838 '-webkit-box-decoration-break': 'slice',
2839 'box-decoration-break': 'slice',
2840 },
2841 'meta': {
2842 'group': 'boxDecorationBreak',
2843 'order': 1,
2844 },
2845 },
2846
2847 'decoration-clone': {
2848 'utility': {
2849 '-webkit-box-decoration-break': 'clone',
2850 'box-decoration-break': 'clone',
2851 },
2852 'meta': {
2853 'group': 'boxDecorationBreak',
2854 'order': 2,
2855 },
2856 },
2857
2858 // https://windicss.org/utilities/sizing.html#box-sizing
2859 'box-border': {
2860 'utility': {
2861 '-webkit-box-sizing': 'border-box',
2862 'box-sizing': 'border-box',
2863 },
2864 'meta': {
2865 'group': 'boxSizing',
2866 'order': 1,
2867 },
2868 },
2869 'box-content': {
2870 'utility': {
2871 '-webkit-box-sizing': 'content-box',
2872 'box-sizing': 'content-box',
2873 },
2874 'meta': {
2875 'group': 'boxSizing',
2876 'order': 2,
2877 },
2878 },
2879
2880 // https://windicss.org/utilities/display.html
2881 'block': {
2882 'utility': {
2883 'display': 'block',
2884 },
2885 'meta': {
2886 'group': 'display',
2887 'order': 1,
2888 },
2889 },
2890 'inline-block': {
2891 'utility': {
2892 'display': 'inline-block',
2893 },
2894 'meta': {
2895 'group': 'display',
2896 'order': 2,
2897 },
2898 },
2899 'inline': {
2900 'utility': {
2901 'display': 'inline',
2902 },
2903 'meta': {
2904 'group': 'display',
2905 'order': 3,
2906 },
2907 },
2908
2909 // https://windicss.org/utilities/flexbox.html
2910 'flex': {
2911 'utility': {
2912 'display': [
2913 '-webkit-box',
2914 '-ms-flexbox',
2915 '-webkit-flex',
2916 'flex',
2917 ],
2918 },
2919 'meta': {
2920 'group': 'display',
2921 'order': 4,
2922 },
2923 },
2924 'inline-flex': {
2925 'utility': {
2926 'display': [
2927 '-webkit-inline-box',
2928 '-ms-inline-flexbox',
2929 '-webkit-inline-flex',
2930 'inline-flex',
2931 ],
2932 },
2933 'meta': {
2934 'group': 'display',
2935 'order': 5,
2936 },
2937 },
2938
2939 // https://windicss.org/utilities/tables.html
2940 'table': {
2941 'utility': {
2942 'display': 'table',
2943 },
2944 'meta': {
2945 'group': 'display',
2946 'order': 6,
2947 },
2948 },
2949 'inline-table': {
2950 'utility': {
2951 'display': 'inline-table',
2952 },
2953 'meta': {
2954 'group': 'display',
2955 'order': 7,
2956 },
2957 },
2958 'table-caption': {
2959 'utility': {
2960 'display': 'table-caption',
2961 },
2962 'meta': {
2963 'group': 'display',
2964 'order': 8,
2965 },
2966 },
2967 'table-cell': {
2968 'utility': {
2969 'display': 'table-cell',
2970 },
2971 'meta': {
2972 'group': 'display',
2973 'order': 9,
2974 },
2975 },
2976 'table-column': {
2977 'utility': {
2978 'display': 'table-column',
2979 },
2980 'meta': {
2981 'group': 'display',
2982 'order': 10,
2983 },
2984 },
2985 'table-column-group': {
2986 'utility': {
2987 'display': 'table-column-group',
2988 },
2989 'meta': {
2990 'group': 'display',
2991 'order': 11,
2992 },
2993 },
2994 'table-footer-group': {
2995 'utility': {
2996 'display': 'table-footer-group',
2997 },
2998 'meta': {
2999 'group': 'display',
3000 'order': 12,
3001 },
3002 },
3003 'table-header-group': {
3004 'utility': {
3005 'display': 'table-header-group',
3006 },
3007 'meta': {
3008 'group': 'display',
3009 'order': 13,
3010 },
3011 },
3012 'table-row-group': {
3013 'utility': {
3014 'display': 'table-row-group',
3015 },
3016 'meta': {
3017 'group': 'display',
3018 'order': 14,
3019 },
3020 },
3021 'table-row': {
3022 'utility': {
3023 'display': 'table-row',
3024 },
3025 'meta': {
3026 'group': 'display',
3027 'order': 15,
3028 },
3029 },
3030 'flow-root': {
3031 'utility': {
3032 'display': 'flow-root',
3033 },
3034 'meta': {
3035 'group': 'display',
3036 'order': 16,
3037 },
3038 },
3039
3040 // https://windicss.org/utilities/grid.html
3041 'grid': {
3042 'utility': {
3043 'display': [
3044 '-ms-grid',
3045 'grid',
3046 ],
3047 },
3048 'meta': {
3049 'group': 'display',
3050 'order': 17,
3051 },
3052 },
3053 'inline-grid': {
3054 'utility': {
3055 'display': [
3056 '-ms-inline-grid',
3057 'inline-grid',
3058 ],
3059 },
3060 'meta': {
3061 'group': 'display',
3062 'order': 18,
3063 },
3064 },
3065 'contents': {
3066 'utility': {
3067 'display': 'contents',
3068 },
3069 'meta': {
3070 'group': 'display',
3071 'order': 19,
3072 },
3073 },
3074 'list-item': {
3075 'utility': {
3076 'display': 'list-item',
3077 },
3078 'meta': {
3079 'group': 'display',
3080 'order': 20,
3081 },
3082 },
3083 'hidden': {
3084 'utility': {
3085 'display': 'none',
3086 },
3087 'meta': {
3088 'group': 'display',
3089 'order': 21,
3090 },
3091 },
3092
3093 // https://windicss.org/utilities/positioning.html#floats
3094 'float-right': {
3095 'utility': {
3096 'float': 'right',
3097 },
3098 'meta': {
3099 'group': 'float',
3100 'order': 1,
3101 },
3102 },
3103 'float-left': {
3104 'utility': {
3105 'float': 'left',
3106 },
3107 'meta': {
3108 'group': 'float',
3109 'order': 2,
3110 },
3111 },
3112 'float-none': {
3113 'utility': {
3114 'float': 'none',
3115 },
3116 'meta': {
3117 'group': 'float',
3118 'order': 3,
3119 },
3120 },
3121
3122 // https://windicss.org/utilities/positioning.html#clear
3123 'clear-left': {
3124 'utility': {
3125 'clear': 'left',
3126 },
3127 'meta': {
3128 'group': 'clear',
3129 'order': 1,
3130 },
3131 },
3132 'clear-right': {
3133 'utility': {
3134 'clear': 'right',
3135 },
3136 'meta': {
3137 'group': 'clear',
3138 'order': 2,
3139 },
3140 },
3141 'clear-both': {
3142 'utility': {
3143 'clear': 'both',
3144 },
3145 'meta': {
3146 'group': 'clear',
3147 'order': 3,
3148 },
3149 },
3150 'clear-none': {
3151 'utility': {
3152 'clear': 'none',
3153 },
3154 'meta': {
3155 'group': 'clear',
3156 'order': 4,
3157 },
3158 },
3159
3160 // https://windicss.org/utilities/positioning.html#isolation
3161 'isolate': {
3162 'utility': {
3163 'isolation': 'isolate',
3164 },
3165 'meta': {
3166 'group': 'isolation',
3167 'order': 1,
3168 },
3169 },
3170 'isolation-auto': {
3171 'utility': {
3172 'isolation': 'auto',
3173 },
3174 'meta': {
3175 'group': 'isolation',
3176 'order': 2,
3177 },
3178 },
3179
3180 // https://windicss.org/utilities/positioning.html#object-fit
3181 'object-contain': {
3182 'utility': {
3183 '-o-object-fit': 'contain',
3184 'object-fit': 'contain',
3185 },
3186 'meta': {
3187 'group': 'objectFit',
3188 'order': 1,
3189 },
3190 },
3191 'object-cover': {
3192 'utility': {
3193 '-o-object-fit': 'cover',
3194 'object-fit': 'cover',
3195 },
3196 'meta': {
3197 'group': 'objectFit',
3198 'order': 2,
3199 },
3200 },
3201 'object-fill': {
3202 'utility': {
3203 '-o-object-fit': 'fill',
3204 'object-fit': 'fill',
3205 },
3206 'meta': {
3207 'group': 'objectFit',
3208 'order': 3,
3209 },
3210 },
3211 'object-none': {
3212 'utility': {
3213 '-o-object-fit': 'none',
3214 'object-fit': 'none',
3215 },
3216 'meta': {
3217 'group': 'objectFit',
3218 'order': 4,
3219 },
3220 },
3221 'object-scale-down': {
3222 'utility': {
3223 '-o-object-fit': 'scale-down',
3224 'object-fit': 'scale-down',
3225 },
3226 'meta': {
3227 'group': 'objectFit',
3228 'order': 5,
3229 },
3230 },
3231
3232 // https://windicss.org/utilities/behaviors.html#overflow
3233 'overflow-auto': {
3234 'utility': {
3235 'overflow': 'auto',
3236 },
3237 'meta': {
3238 'group': 'overflow',
3239 'order': 1,
3240 },
3241 },
3242 'overflow-hidden': {
3243 'utility': {
3244 'overflow': 'hidden',
3245 },
3246 'meta': {
3247 'group': 'overflow',
3248 'order': 2,
3249 },
3250 },
3251 'overflow-visible': {
3252 'utility': {
3253 'overflow': 'visible',
3254 },
3255 'meta': {
3256 'group': 'overflow',
3257 'order': 3,
3258 },
3259 },
3260 'overflow-scroll': {
3261 'utility': {
3262 'overflow': 'scroll',
3263 },
3264 'meta': {
3265 'group': 'overflow',
3266 'order': 4,
3267 },
3268 },
3269 'overflow-x-auto': {
3270 'utility': {
3271 'overflow-x': 'auto',
3272 },
3273 'meta': {
3274 'group': 'overflow',
3275 'order': 5,
3276 },
3277 },
3278 'overflow-y-auto': {
3279 'utility': {
3280 'overflow-y': 'auto',
3281 },
3282 'meta': {
3283 'group': 'overflow',
3284 'order': 6,
3285 },
3286 },
3287 'overflow-x-hidden': {
3288 'utility': {
3289 'overflow-x': 'hidden',
3290 },
3291 'meta': {
3292 'group': 'overflow',
3293 'order': 7,
3294 },
3295 },
3296 'overflow-y-hidden': {
3297 'utility': {
3298 'overflow-y': 'hidden',
3299 },
3300 'meta': {
3301 'group': 'overflow',
3302 'order': 8,
3303 },
3304 },
3305 'overflow-x-visible': {
3306 'utility': {
3307 'overflow-x': 'visible',
3308 },
3309 'meta': {
3310 'group': 'overflow',
3311 'order': 9,
3312 },
3313 },
3314 'overflow-y-visible': {
3315 'utility': {
3316 'overflow-y': 'visible',
3317 },
3318 'meta': {
3319 'group': 'overflow',
3320 'order': 10,
3321 },
3322 },
3323 'overflow-x-scroll': {
3324 'utility': {
3325 'overflow-x': 'scroll',
3326 },
3327 'meta': {
3328 'group': 'overflow',
3329 'order': 11,
3330 },
3331 },
3332 'overflow-y-scroll': {
3333 'utility': {
3334 'overflow-y': 'scroll',
3335 },
3336 'meta': {
3337 'group': 'overflow',
3338 'order': 12,
3339 },
3340 },
3341
3342 // https://windicss.org/utilities/behaviors.html#overscroll-behavior
3343 'overscroll-auto': {
3344 'utility': {
3345 'overscroll-behavior': 'auto',
3346 '-ms-scroll-chaining': 'chained',
3347 },
3348 'meta': {
3349 'group': 'overscrollBehavior',
3350 'order': 1,
3351 },
3352 },
3353 'overscroll-contain': {
3354 'utility': {
3355 'overscroll-behavior': 'contain',
3356 '-ms-scroll-chaining': 'none',
3357 },
3358 'meta': {
3359 'group': 'overscrollBehavior',
3360 'order': 2,
3361 },
3362 },
3363 'overscroll-none': {
3364 'utility': {
3365 'overscroll-behavior': 'none',
3366 '-ms-scroll-chaining': 'none',
3367 },
3368 'meta': {
3369 'group': 'overscrollBehavior',
3370 'order': 3,
3371 },
3372 },
3373 'overscroll-y-auto': {
3374 'utility': {
3375 'overscroll-behavior-y': 'auto',
3376 },
3377 'meta': {
3378 'group': 'overscrollBehavior',
3379 'order': 4,
3380 },
3381 },
3382 'overscroll-y-contain': {
3383 'utility': {
3384 'overscroll-behavior-y': 'contain',
3385 },
3386 'meta': {
3387 'group': 'overscrollBehavior',
3388 'order': 5,
3389 },
3390 },
3391 'overscroll-y-none': {
3392 'utility': {
3393 'overscroll-behavior-y': 'none',
3394 },
3395 'meta': {
3396 'group': 'overscrollBehavior',
3397 'order': 6,
3398 },
3399 },
3400 'overscroll-x-auto': {
3401 'utility': {
3402 'overscroll-behavior-x': 'auto',
3403 },
3404 'meta': {
3405 'group': 'overscrollBehavior',
3406 'order': 7,
3407 },
3408 },
3409 'overscroll-x-contain': {
3410 'utility': {
3411 'overscroll-behavior-x': 'contain',
3412 },
3413 'meta': {
3414 'group': 'overscrollBehavior',
3415 'order': 8,
3416 },
3417 },
3418 'overscroll-x-none': {
3419 'utility': {
3420 'overscroll-behavior-x': 'none',
3421 },
3422 'meta': {
3423 'group': 'overscrollBehavior',
3424 'order': 9,
3425 },
3426 },
3427
3428 // https://windicss.org/utilities/positioning.html#position
3429 'static': {
3430 'utility': {
3431 'position': 'static',
3432 },
3433 'meta': {
3434 'group': 'position',
3435 'order': 1,
3436 },
3437 },
3438 'fixed': {
3439 'utility': {
3440 'position': 'fixed',
3441 },
3442 'meta': {
3443 'group': 'position',
3444 'order': 2,
3445 },
3446 },
3447 'absolute': {
3448 'utility': {
3449 'position': 'absolute',
3450 },
3451 'meta': {
3452 'group': 'position',
3453 'order': 3,
3454 },
3455 },
3456 'relative': {
3457 'utility': {
3458 'position': 'relative',
3459 },
3460 'meta': {
3461 'group': 'position',
3462 'order': 4,
3463 },
3464 },
3465 'sticky': {
3466 'utility': {
3467 'position': [
3468 'sticky',
3469 '-webkit-sticky',
3470 ],
3471 },
3472 'meta': {
3473 'group': 'position',
3474 'order': 5,
3475 },
3476 },
3477
3478 // https://windicss.org/utilities/display.html#visibility
3479 'visible': {
3480 'utility': {
3481 'visibility': 'visible',
3482 },
3483 'meta': {
3484 'group': 'visibility',
3485 'order': 1,
3486 },
3487 },
3488 'invisible': {
3489 'utility': {
3490 'visibility': 'hidden',
3491 },
3492 'meta': {
3493 'group': 'visibility',
3494 'order': 2,
3495 },
3496 },
3497
3498 // https://windicss.org/utilities/display.html#backface-visibility
3499 'backface-visible': {
3500 'utility': {
3501 '-webkit-backface-visibility': 'visible',
3502 'backface-visibility': 'visible',
3503 },
3504 'meta': {
3505 'group': 'backfaceVisibility',
3506 'order': 1,
3507 },
3508 },
3509 'backface-hidden': {
3510 'utility': {
3511 '-webkit-backface-visibility': 'hidden',
3512 'backface-visibility': 'hidden',
3513 },
3514 'meta': {
3515 'group': 'backfaceVisibility',
3516 'order': 2,
3517 },
3518 },
3519
3520 // https://windicss.org/utilities/flexbox.html#flex-direction
3521 'flex-row': {
3522 'utility': {
3523 '-webkit-box-orient': 'horizontal',
3524 '-webkit-box-direction': 'normal',
3525 '-ms-flex-direction': 'row',
3526 '-webkit-flex-direction': 'row',
3527 'flex-direction': 'row',
3528 },
3529 'meta': {
3530 'group': 'flexDirection',
3531 'order': 1,
3532 },
3533 },
3534 'flex-row-reverse': {
3535 'utility': {
3536 '-webkit-box-orient': 'horizontal',
3537 '-webkit-box-direction': 'reverse',
3538 '-ms-flex-direction': 'row-reverse',
3539 '-webkit-flex-direction': 'row-reverse',
3540 'flex-direction': 'row-reverse',
3541 },
3542 'meta': {
3543 'group': 'flexDirection',
3544 'order': 2,
3545 },
3546 },
3547 'flex-col': {
3548 'utility': {
3549 '-webkit-box-orient': 'vertical',
3550 '-webkit-box-direction': 'normal',
3551 '-ms-flex-direction': 'column',
3552 '-webkit-flex-direction': 'column',
3553 'flex-direction': 'column',
3554 },
3555 'meta': {
3556 'group': 'flexDirection',
3557 'order': 3,
3558 },
3559 },
3560 'flex-col-reverse': {
3561 'utility': {
3562 '-webkit-box-orient': 'vertical',
3563 '-webkit-box-direction': 'reverse',
3564 '-ms-flex-direction': 'column-reverse',
3565 '-webkit-flex-direction': 'column-reverse',
3566 'flex-direction': 'column-reverse',
3567 },
3568 'meta': {
3569 'group': 'flexDirection',
3570 'order': 4,
3571 },
3572 },
3573
3574 // https://windicss.org/utilities/flexbox.html#flex-wrap
3575 'flex-wrap': {
3576 'utility': {
3577 '-ms-flex-wrap': 'wrap',
3578 '-webkit-flex-wrap': 'wrap',
3579 'flex-wrap': 'wrap',
3580 },
3581 'meta': {
3582 'group': 'flexWrap',
3583 'order': 1,
3584 },
3585 },
3586 'flex-wrap-reverse': {
3587 'utility': {
3588 '-ms-flex-wrap': 'wrap-reverse',
3589 '-webkit-flex-wrap': 'wrap-reverse',
3590 'flex-wrap': 'wrap-reverse',
3591 },
3592 'meta': {
3593 'group': 'flexWrap',
3594 'order': 2,
3595 },
3596 },
3597 'flex-nowrap': {
3598 'utility': {
3599 '-ms-flex-wrap': 'nowrap',
3600 '-webkit-flex-wrap': 'nowrap',
3601 'flex-wrap': 'nowrap',
3602 },
3603 'meta': {
3604 'group': 'flexWrap',
3605 'order': 3,
3606 },
3607 },
3608
3609 // https://windicss.org/utilities/grid.html#grid-column-span
3610 'col-auto': {
3611 'utility': {
3612 'grid-column': 'auto',
3613 },
3614 'meta': {
3615 'group': 'gridColumn',
3616 'order': 1,
3617 },
3618 },
3619
3620 // https://windicss.org/utilities/grid.html#grid-row-span
3621 'row-auto': {
3622 'utility': {
3623 'grid-row': 'auto',
3624 },
3625 'meta': {
3626 'group': 'gridRow',
3627 'order': 1,
3628 },
3629 },
3630
3631 // https://windicss.org/utilities/grid.html#grid-auto-flow
3632 'grid-flow-row': {
3633 'utility': {
3634 'grid-auto-flow': 'row',
3635 },
3636 'meta': {
3637 'group': 'gridAutoFlow',
3638 'order': 1,
3639 },
3640 },
3641 'grid-flow-col': {
3642 'utility': {
3643 'grid-auto-flow': 'column',
3644 },
3645 'meta': {
3646 'group': 'gridAutoFlow',
3647 'order': 2,
3648 },
3649 },
3650 'grid-flow-row-dense': {
3651 'utility': {
3652 'grid-auto-flow': 'row dense',
3653 },
3654 'meta': {
3655 'group': 'gridAutoFlow',
3656 'order': 3,
3657 },
3658 },
3659 'grid-flow-col-dense': {
3660 'utility': {
3661 'grid-auto-flow': 'column dense',
3662 },
3663 'meta': {
3664 'group': 'gridAutoFlow',
3665 'order': 4,
3666 },
3667 },
3668
3669 // https://windicss.org/utilities/positioning.html#justify-content
3670 'justify-start': {
3671 'utility': {
3672 '-webkit-box-pack': 'start',
3673 '-ms-flex-pack': 'start',
3674 '-webkit-justify-content': 'flex-start',
3675 'justify-content': 'flex-start',
3676 },
3677 'meta': {
3678 'group': 'justifyContent',
3679 'order': 1,
3680 },
3681 },
3682 'justify-end': {
3683 'utility': {
3684 '-webkit-box-pack': 'end',
3685 '-ms-flex-pack': 'end',
3686 '-webkit-justify-content': 'flex-end',
3687 'justify-content': 'flex-end',
3688 },
3689 'meta': {
3690 'group': 'justifyContent',
3691 'order': 2,
3692 },
3693 },
3694 'justify-center': {
3695 'utility': {
3696 '-webkit-box-pack': 'center',
3697 '-ms-flex-pack': 'center',
3698 '-webkit-justify-content': 'center',
3699 'justify-content': 'center',
3700 },
3701 'meta': {
3702 'group': 'justifyContent',
3703 'order': 3,
3704 },
3705 },
3706 'justify-between': {
3707 'utility': {
3708 '-webkit-box-pack': 'justify',
3709 '-ms-flex-pack': 'justify',
3710 '-webkit-justify-content': 'space-between',
3711 'justify-content': 'space-between',
3712 },
3713 'meta': {
3714 'group': 'justifyContent',
3715 'order': 4,
3716 },
3717 },
3718 'justify-around': {
3719 'utility': {
3720 '-ms-flex-pack': 'distribute',
3721 '-webkit-justify-content': 'space-around',
3722 'justify-content': 'space-around',
3723 },
3724 'meta': {
3725 'group': 'justifyContent',
3726 'order': 5,
3727 },
3728 },
3729 'justify-evenly': {
3730 'utility': {
3731 '-webkit-box-pack': 'space-evenly',
3732 '-ms-flex-pack': 'space-evenly',
3733 '-webkit-justify-content': 'space-evenly',
3734 'justify-content': 'space-evenly',
3735 },
3736 'meta': {
3737 'group': 'justifyContent',
3738 'order': 6,
3739 },
3740 },
3741
3742 // https://windicss.org/utilities/positioning.html#justify-items
3743 'justify-items-auto': {
3744 'utility': {
3745 'justify-items': 'auto',
3746 },
3747 'meta': {
3748 'group': 'justifyItems',
3749 'order': 1,
3750 },
3751 },
3752 'justify-items-start': {
3753 'utility': {
3754 'justify-items': 'start',
3755 },
3756 'meta': {
3757 'group': 'justifyItems',
3758 'order': 2,
3759 },
3760 },
3761 'justify-items-end': {
3762 'utility': {
3763 'justify-items': 'end',
3764 },
3765 'meta': {
3766 'group': 'justifyItems',
3767 'order': 3,
3768 },
3769 },
3770 'justify-items-center': {
3771 'utility': {
3772 'justify-items': 'center',
3773 },
3774 'meta': {
3775 'group': 'justifyItems',
3776 'order': 4,
3777 },
3778 },
3779 'justify-items-stretch': {
3780 'utility': {
3781 'justify-items': 'stretch',
3782 },
3783 'meta': {
3784 'group': 'justifyItems',
3785 'order': 5,
3786 },
3787 },
3788
3789 // https://windicss.org/utilities/positioning.html#justify-self
3790 'justify-self-auto': {
3791 'utility': {
3792 '-ms-grid-column-align': 'auto',
3793 'justify-self': 'auto',
3794 },
3795 'meta': {
3796 'group': 'justifySelf',
3797 'order': 1,
3798 },
3799 },
3800 'justify-self-start': {
3801 'utility': {
3802 '-ms-grid-column-align': 'start',
3803 'justify-self': 'start',
3804 },
3805 'meta': {
3806 'group': 'justifySelf',
3807 'order': 2,
3808 },
3809 },
3810 'justify-self-end': {
3811 'utility': {
3812 '-ms-grid-column-align': 'end',
3813 'justify-self': 'end',
3814 },
3815 'meta': {
3816 'group': 'justifySelf',
3817 'order': 3,
3818 },
3819 },
3820 'justify-self-center': {
3821 'utility': {
3822 '-ms-grid-column-align': 'center',
3823 'justify-self': 'center',
3824 },
3825 'meta': {
3826 'group': 'justifySelf',
3827 'order': 4,
3828 },
3829 },
3830 'justify-self-stretch': {
3831 'utility': {
3832 '-ms-grid-column-align': 'stretch',
3833 'justify-self': 'stretch',
3834 },
3835 'meta': {
3836 'group': 'justifySelf',
3837 'order': 5,
3838 },
3839 },
3840
3841 // https://windicss.org/utilities/positioning.html#align-content
3842 'content-center': {
3843 'utility': {
3844 '-ms-flex-line-pack': 'center',
3845 '-webkit-align-content': 'center',
3846 'align-content': 'center',
3847 },
3848 'meta': {
3849 'group': 'alignContent',
3850 'order': 1,
3851 },
3852 },
3853 'content-start': {
3854 'utility': {
3855 '-ms-flex-line-pack': 'start',
3856 '-webkit-align-content': 'flex-start',
3857 'align-content': 'flex-start',
3858 },
3859 'meta': {
3860 'group': 'alignContent',
3861 'order': 2,
3862 },
3863 },
3864 'content-end': {
3865 'utility': {
3866 '-ms-flex-line-pack': 'end',
3867 '-webkit-align-content': 'flex-end',
3868 'align-content': 'flex-end',
3869 },
3870 'meta': {
3871 'group': 'alignContent',
3872 'order': 3,
3873 },
3874 },
3875 'content-between': {
3876 'utility': {
3877 '-ms-flex-line-pack': 'justify',
3878 '-webkit-align-content': 'space-between',
3879 'align-content': 'space-between',
3880 },
3881 'meta': {
3882 'group': 'alignContent',
3883 'order': 4,
3884 },
3885 },
3886 'content-around': {
3887 'utility': {
3888 '-ms-flex-line-pack': 'distribute',
3889 '-webkit-align-content': 'space-around',
3890 'align-content': 'space-around',
3891 },
3892 'meta': {
3893 'group': 'alignContent',
3894 'order': 5,
3895 },
3896 },
3897 'content-evenly': {
3898 'utility': {
3899 '-ms-flex-line-pack': 'space-evenly',
3900 '-webkit-align-content': 'space-evenly',
3901 'align-content': 'space-evenly',
3902 },
3903 'meta': {
3904 'group': 'alignContent',
3905 'order': 6,
3906 },
3907 },
3908
3909 // https://windicss.org/utilities/positioning.html#align-items
3910 'items-start': {
3911 'utility': {
3912 '-webkit-box-align': 'start',
3913 '-ms-flex-align': 'start',
3914 '-webkit-align-items': 'flex-start',
3915 'align-items': 'flex-start',
3916 },
3917 'meta': {
3918 'group': 'alignItems',
3919 'order': 1,
3920 },
3921 },
3922 'items-end': {
3923 'utility': {
3924 '-webkit-box-align': 'end',
3925 '-ms-flex-align': 'end',
3926 '-webkit-align-items': 'flex-end',
3927 'align-items': 'flex-end',
3928 },
3929 'meta': {
3930 'group': 'alignItems',
3931 'order': 2,
3932 },
3933 },
3934 'items-center': {
3935 'utility': {
3936 '-webkit-box-align': 'center',
3937 '-ms-flex-align': 'center',
3938 '-webkit-align-items': 'center',
3939 'align-items': 'center',
3940 },
3941 'meta': {
3942 'group': 'alignItems',
3943 'order': 3,
3944 },
3945 },
3946 'items-baseline': {
3947 'utility': {
3948 '-webkit-box-align': 'baseline',
3949 '-ms-flex-align': 'baseline',
3950 '-webkit-align-items': 'baseline',
3951 'align-items': 'baseline',
3952 },
3953 'meta': {
3954 'group': 'alignItems',
3955 'order': 4,
3956 },
3957 },
3958 'items-stretch': {
3959 'utility': {
3960 '-webkit-box-align': 'stretch',
3961 '-ms-flex-align': 'stretch',
3962 '-webkit-align-items': 'stretch',
3963 'align-items': 'stretch',
3964 },
3965 'meta': {
3966 'group': 'alignItems',
3967 'order': 5,
3968 },
3969 },
3970
3971 // https://windicss.org/utilities/positioning.html#align-self
3972 'self-auto': {
3973 'utility': {
3974 '-ms-flex-item-align': 'auto',
3975 '-ms-grid-row-align': 'auto',
3976 '-webkit-align-self': 'auto',
3977 'align-self': 'auto',
3978 },
3979 'meta': {
3980 'group': 'alignSelf',
3981 'order': 1,
3982 },
3983 },
3984 'self-start': {
3985 'utility': {
3986 '-ms-flex-item-align': 'start',
3987 '-webkit-align-self': 'flex-start',
3988 'align-self': 'flex-start',
3989 },
3990 'meta': {
3991 'group': 'alignSelf',
3992 'order': 2,
3993 },
3994 },
3995 'self-end': {
3996 'utility': {
3997 '-ms-flex-item-align': 'end',
3998 '-webkit-align-self': 'flex-end',
3999 'align-self': 'flex-end',
4000 },
4001 'meta': {
4002 'group': 'alignSelf',
4003 'order': 3,
4004 },
4005 },
4006 'self-center': {
4007 'utility': {
4008 '-ms-flex-item-align': 'center',
4009 '-ms-grid-row-align': 'center',
4010 '-webkit-align-self': 'center',
4011 'align-self': 'center',
4012 },
4013 'meta': {
4014 'group': 'alignSelf',
4015 'order': 4,
4016 },
4017 },
4018 'self-stretch': {
4019 'utility': {
4020 '-ms-flex-item-align': 'stretch',
4021 '-ms-grid-row-align': 'stretch',
4022 '-webkit-align-self': 'stretch',
4023 'align-self': 'stretch',
4024 },
4025 'meta': {
4026 'group': 'alignSelf',
4027 'order': 5,
4028 },
4029 },
4030
4031 // https://windicss.org/utilities/positioning.html#place-content
4032 'place-content-center': {
4033 'utility': {
4034 'place-content': 'center',
4035 },
4036 'meta': {
4037 'group': 'placeContent',
4038 'order': 1,
4039 },
4040 },
4041 'place-content-start': {
4042 'utility': {
4043 'place-content': 'start',
4044 },
4045 'meta': {
4046 'group': 'placeContent',
4047 'order': 2,
4048 },
4049 },
4050 'place-content-end': {
4051 'utility': {
4052 'place-content': 'end',
4053 },
4054 'meta': {
4055 'group': 'placeContent',
4056 'order': 3,
4057 },
4058 },
4059 'place-content-between': {
4060 'utility': {
4061 'place-content': 'space-between',
4062 },
4063 'meta': {
4064 'group': 'placeContent',
4065 'order': 4,
4066 },
4067 },
4068 'place-content-around': {
4069 'utility': {
4070 'place-content': 'space-around',
4071 },
4072 'meta': {
4073 'group': 'placeContent',
4074 'order': 5,
4075 },
4076 },
4077 'place-content-evenly': {
4078 'utility': {
4079 'place-content': 'space-evenly',
4080 },
4081 'meta': {
4082 'group': 'placeContent',
4083 'order': 6,
4084 },
4085 },
4086 'place-content-stretch': {
4087 'utility': {
4088 'place-content': 'stretch',
4089 },
4090 'meta': {
4091 'group': 'placeContent',
4092 'order': 7,
4093 },
4094 },
4095
4096 // https://windicss.org/utilities/positioning.html#place-items
4097 'place-items-auto': {
4098 'utility': {
4099 'place-items': 'auto',
4100 },
4101 'meta': {
4102 'group': 'placeItems',
4103 'order': 1,
4104 },
4105 },
4106 'place-items-start': {
4107 'utility': {
4108 'place-items': 'start',
4109 },
4110 'meta': {
4111 'group': 'placeItems',
4112 'order': 2,
4113 },
4114 },
4115 'place-items-end': {
4116 'utility': {
4117 'place-items': 'end',
4118 },
4119 'meta': {
4120 'group': 'placeItems',
4121 'order': 3,
4122 },
4123 },
4124 'place-items-center': {
4125 'utility': {
4126 'place-items': 'center',
4127 },
4128 'meta': {
4129 'group': 'placeItems',
4130 'order': 4,
4131 },
4132 },
4133 'place-items-stretch': {
4134 'utility': {
4135 'place-items': 'stretch',
4136 },
4137 'meta': {
4138 'group': 'placeItems',
4139 'order': 5,
4140 },
4141 },
4142
4143 // https://windicss.org/utilities/positioning.html#place-self
4144 'place-self-auto': {
4145 'utility': {
4146 '-ms-grid-row-align': 'auto',
4147 '-ms-grid-column-align': 'auto',
4148 'place-self': 'auto',
4149 },
4150 'meta': {
4151 'group': 'placeSelf',
4152 'order': 1,
4153 },
4154 },
4155 'place-self-start': {
4156 'utility': {
4157 '-ms-grid-row-align': 'start',
4158 '-ms-grid-column-align': 'start',
4159 'place-self': 'start',
4160 },
4161 'meta': {
4162 'group': 'placeSelf',
4163 'order': 2,
4164 },
4165 },
4166 'place-self-end': {
4167 'utility': {
4168 '-ms-grid-row-align': 'end',
4169 '-ms-grid-column-align': 'end',
4170 'place-self': 'end',
4171 },
4172 'meta': {
4173 'group': 'placeSelf',
4174 'order': 3,
4175 },
4176 },
4177 'place-self-center': {
4178 'utility': {
4179 '-ms-grid-row-align': 'center',
4180 '-ms-grid-column-align': 'center',
4181 'place-self': 'center',
4182 },
4183 'meta': {
4184 'group': 'placeSelf',
4185 'order': 4,
4186 },
4187 },
4188 'place-self-stretch': {
4189 'utility': {
4190 '-ms-grid-row-align': 'stretch',
4191 '-ms-grid-column-align': 'stretch',
4192 'place-self': 'stretch',
4193 },
4194 'meta': {
4195 'group': 'placeSelf',
4196 'order': 5,
4197 },
4198 },
4199
4200 // https://windicss.org/utilities/typography.html#font-smoothing
4201 'antialiased': {
4202 'utility': {
4203 '-webkit-font-smoothing': 'antialiased',
4204 '-moz-osx-font-smoothing': 'grayscale',
4205 },
4206 'meta': {
4207 'group': 'fontSmoothing',
4208 'order': 1,
4209 },
4210 },
4211 'subpixel-antialiased': {
4212 'utility': {
4213 '-webkit-font-smoothing': 'auto',
4214 '-moz-osx-font-smoothing': 'auto',
4215 },
4216 'meta': {
4217 'group': 'fontSmoothing',
4218 'order': 2,
4219 },
4220 },
4221
4222 // https://windicss.org/utilities/typography.html#font-style
4223 'italic': {
4224 'utility': {
4225 'font-style': 'italic',
4226 },
4227 'meta': {
4228 'group': 'fontStyle',
4229 'order': 1,
4230 },
4231 },
4232 'not-italic': {
4233 'utility': {
4234 'font-style': 'normal',
4235 },
4236 'meta': {
4237 'group': 'fontStyle',
4238 'order': 2,
4239 },
4240 },
4241
4242 // https://windicss.org/utilities/typography.html#font-variant-numeric
4243 'normal-nums': {
4244 'utility': {
4245 'font-variant-numeric': 'normal',
4246 },
4247 'meta': {
4248 'group': 'fontVariantNumeric',
4249 'order': 1,
4250 },
4251 },
4252 'ordinal': {
4253 'utility': {
4254 ...fontVariants,
4255 '--tw-ordinal': 'ordinal',
4256 },
4257 'meta': {
4258 'group': 'fontVariantNumeric',
4259 'order': 2,
4260 },
4261 },
4262 'slashed-zero': {
4263 'utility': {
4264 ...fontVariants,
4265 '--tw-slashed-zero': 'slashed-zero',
4266 },
4267 'meta': {
4268 'group': 'fontVariantNumeric',
4269 'order': 3,
4270 },
4271 },
4272 'lining-nums': {
4273 'utility': {
4274 ...fontVariants,
4275 '--tw-numeric-figure': 'lining-nums',
4276 },
4277 'meta': {
4278 'group': 'fontVariantNumeric',
4279 'order': 4,
4280 },
4281 },
4282 'oldstyle-nums': {
4283 'utility': {
4284 ...fontVariants,
4285 '--tw-numeric-figure': 'oldstyle-nums',
4286 },
4287 'meta': {
4288 'group': 'fontVariantNumeric',
4289 'order': 5,
4290 },
4291 },
4292 'proportional-nums': {
4293 'utility': {
4294 ...fontVariants,
4295 '--tw-numeric-spacing': 'proportional-nums',
4296 },
4297 'meta': {
4298 'group': 'fontVariantNumeric',
4299 'order': 6,
4300 },
4301 },
4302 'tabular-nums': {
4303 'utility': {
4304 ...fontVariants,
4305 '--tw-numeric-spacing': 'tabular-nums',
4306 },
4307 'meta': {
4308 'group': 'fontVariantNumeric',
4309 'order': 7,
4310 },
4311 },
4312 'diagonal-fractions': {
4313 'utility': {
4314 ...fontVariants,
4315 '--tw-numeric-fraction': 'diagonal-fractions',
4316 },
4317 'meta': {
4318 'group': 'fontVariantNumeric',
4319 'order': 8,
4320 },
4321 },
4322 'stacked-fractions': {
4323 'utility': {
4324 ...fontVariants,
4325 '--tw-numeric-fraction': 'stacked-fractions',
4326 },
4327 'meta': {
4328 'group': 'fontVariantNumeric',
4329 'order': 9,
4330 },
4331 },
4332
4333 // https://windicss.org/utilities/behaviors.html#list-style-position
4334 'list-inside': {
4335 'utility': {
4336 'list-style-position': 'inside',
4337 },
4338 'meta': {
4339 'group': 'listStylePosition',
4340 'order': 1,
4341 },
4342 },
4343 'list-outside': {
4344 'utility': {
4345 'list-style-position': 'outside',
4346 },
4347 'meta': {
4348 'group': 'listStylePosition',
4349 'order': 2,
4350 },
4351 },
4352
4353 // https://windicss.org/utilities/typography.html#text-alignment
4354 'text-left': {
4355 'utility': {
4356 'text-align': 'left',
4357 },
4358 'meta': {
4359 'group': 'textAlign',
4360 'order': 1,
4361 },
4362 },
4363 'text-center': {
4364 'utility': {
4365 'text-align': 'center',
4366 },
4367 'meta': {
4368 'group': 'textAlign',
4369 'order': 2,
4370 },
4371 },
4372 'text-right': {
4373 'utility': {
4374 'text-align': 'right',
4375 },
4376 'meta': {
4377 'group': 'textAlign',
4378 'order': 3,
4379 },
4380 },
4381 'text-justify': {
4382 'utility': {
4383 'text-align': 'justify',
4384 },
4385 'meta': {
4386 'group': 'textAlign',
4387 'order': 4,
4388 },
4389 },
4390
4391 // https://windicss.org/utilities/typography.html#text-decoration
4392 'underline': {
4393 'utility': {
4394 '-webkit-text-decoration-line': 'underline',
4395 'text-decoration-line': 'underline',
4396 },
4397 'meta': {
4398 'group': 'textDecoration',
4399 'order': 1,
4400 },
4401 },
4402 'line-through': {
4403 'utility': {
4404 '-webkit-text-decoration-line': 'line-through',
4405 'text-decoration-line': 'line-through',
4406 },
4407 'meta': {
4408 'group': 'textDecoration',
4409 'order': 2,
4410 },
4411 },
4412 'no-underline': {
4413 'utility': {
4414 'text-decoration': 'none',
4415 },
4416 'meta': {
4417 'group': 'textDecoration',
4418 'order': 3,
4419 },
4420 },
4421
4422 // http://localhost:3001/utilities/typography.html#text-decoration-style
4423 'underline-solid': {
4424 'utility': {
4425 '-webkit-text-decoration-style': 'solid',
4426 'text-decoration-style': 'solid',
4427 },
4428 'meta': {
4429 'group': 'textDecorationStyle',
4430 'order': 1,
4431 },
4432 },
4433 'underline-double': {
4434 'utility': {
4435 '-webkit-text-decoration-style': 'double',
4436 'text-decoration-style': 'double',
4437 },
4438 'meta': {
4439 'group': 'textDecorationStyle',
4440 'order': 2,
4441 },
4442 },
4443 'underline-dotted': {
4444 'utility': {
4445 '-webkit-text-decoration-style': 'dotted',
4446 'text-decoration-style': 'dotted',
4447 },
4448 'meta': {
4449 'group': 'textDecorationStyle',
4450 'order': 3,
4451 },
4452 },
4453 'underline-dashed': {
4454 'utility': {
4455 '-webkit-text-decoration-style': 'dashed',
4456 'text-decoration-style': 'dashed',
4457 },
4458 'meta': {
4459 'group': 'textDecorationStyle',
4460 'order': 4,
4461 },
4462 },
4463
4464 // https://windicss.org/utilities/typography.html#text-transform
4465 'uppercase': {
4466 'utility': {
4467 'text-transform': 'uppercase',
4468 },
4469 'meta': {
4470 'group': 'textTransform',
4471 'order': 1,
4472 },
4473 },
4474 'lowercase': {
4475 'utility': {
4476 'text-transform': 'lowercase',
4477 },
4478 'meta': {
4479 'group': 'textTransform',
4480 'order': 2,
4481 },
4482 },
4483 'capitalize': {
4484 'utility': {
4485 'text-transform': 'capitalize',
4486 },
4487 'meta': {
4488 'group': 'textTransform',
4489 'order': 3,
4490 },
4491 },
4492 'normal-case': {
4493 'utility': {
4494 'text-transform': 'none',
4495 },
4496 'meta': {
4497 'group': 'textTransform',
4498 'order': 4,
4499 },
4500 },
4501
4502 // https://windicss.org/utilities/typography.html#text-overflow
4503 'truncate': {
4504 'utility': {
4505 'overflow': 'hidden',
4506 '-o-text-overflow': 'ellipsis',
4507 'text-overflow': 'ellipsis',
4508 'white-space': 'nowrap',
4509 },
4510 'meta': {
4511 'group': 'textOverflow',
4512 'order': 1,
4513 },
4514 },
4515 'overflow-ellipsis': {
4516 'utility': {
4517 '-o-text-overflow': 'ellipsis',
4518 'text-overflow': 'ellipsis',
4519 },
4520 'meta': {
4521 'group': 'textOverflow',
4522 'order': 2,
4523 },
4524 },
4525 'overflow-clip': {
4526 'utility': {
4527 '-o-text-overflow': 'clip',
4528 'text-overflow': 'clip',
4529 },
4530 'meta': {
4531 'group': 'textOverflow',
4532 'order': 3,
4533 },
4534 },
4535
4536 // https://windicss.org/utilities/typography.html#vertical-alignment
4537 'align-baseline': {
4538 'utility': {
4539 'vertical-align': 'baseline',
4540 },
4541 'meta': {
4542 'group': 'verticalAlign',
4543 'order': 1,
4544 },
4545 },
4546 'align-top': {
4547 'utility': {
4548 'vertical-align': 'top',
4549 },
4550 'meta': {
4551 'group': 'verticalAlign',
4552 'order': 2,
4553 },
4554 },
4555 'align-middle': {
4556 'utility': {
4557 'vertical-align': 'middle',
4558 },
4559 'meta': {
4560 'group': 'verticalAlign',
4561 'order': 3,
4562 },
4563 },
4564 'align-bottom': {
4565 'utility': {
4566 'vertical-align': 'bottom',
4567 },
4568 'meta': {
4569 'group': 'verticalAlign',
4570 'order': 4,
4571 },
4572 },
4573 'align-text-top': {
4574 'utility': {
4575 'vertical-align': 'text-top',
4576 },
4577 'meta': {
4578 'group': 'verticalAlign',
4579 'order': 5,
4580 },
4581 },
4582 'align-text-bottom': {
4583 'utility': {
4584 'vertical-align': 'text-bottom',
4585 },
4586 'meta': {
4587 'group': 'verticalAlign',
4588 'order': 6,
4589 },
4590 },
4591
4592 // https://windicss.org/utilities/typography.html#whitespace
4593 'whitespace-normal': {
4594 'utility': {
4595 'white-space': 'normal',
4596 },
4597 'meta': {
4598 'group': 'whitespace',
4599 'order': 1,
4600 },
4601 },
4602 'whitespace-nowrap': {
4603 'utility': {
4604 'white-space': 'nowrap',
4605 },
4606 'meta': {
4607 'group': 'whitespace',
4608 'order': 2,
4609 },
4610 },
4611 'whitespace-pre': {
4612 'utility': {
4613 'white-space': 'pre',
4614 },
4615 'meta': {
4616 'group': 'whitespace',
4617 'order': 3,
4618 },
4619 },
4620 'whitespace-pre-line': {
4621 'utility': {
4622 'white-space': 'pre-line',
4623 },
4624 'meta': {
4625 'group': 'whitespace',
4626 'order': 4,
4627 },
4628 },
4629 'whitespace-pre-wrap': {
4630 'utility': {
4631 'white-space': 'pre-wrap',
4632 },
4633 'meta': {
4634 'group': 'whitespace',
4635 'order': 5,
4636 },
4637 },
4638
4639 // https://windicss.org/utilities/typography.html#word-break
4640 'break-normal': {
4641 'utility': {
4642 'word-break': 'normal',
4643 'overflow-wrap': 'normal',
4644 },
4645 'meta': {
4646 'group': 'wordBreak',
4647 'order': 1,
4648 },
4649 },
4650 'break-words': {
4651 'utility': {
4652 'overflow-wrap': 'break-word',
4653 },
4654 'meta': {
4655 'group': 'wordBreak',
4656 'order': 2,
4657 },
4658 },
4659 'break-all': {
4660 'utility': {
4661 'word-break': 'break-all',
4662 },
4663 'meta': {
4664 'group': 'wordBreak',
4665 'order': 3,
4666 },
4667 },
4668
4669 // https://windicss.org/utilities/typography.html#writing-mode
4670 'write-normal': {
4671 'utility': {
4672 '-webkit-writing-mode': 'horizontal-tb',
4673 '-ms-writing-mode': 'lr-tb',
4674 'writing-mode': 'horizontal-tb',
4675 },
4676 'meta': {
4677 'group': 'writingMode',
4678 'order': 1,
4679 },
4680 },
4681
4682 'write-vertical-right': {
4683 'utility': {
4684 '-webkit-writing-mode': 'vertical-rl',
4685 '-ms-writing-mode': 'tb-rl',
4686 'writing-mode': 'vertical-rl',
4687 },
4688 'meta': {
4689 'group': 'writingMode',
4690 'order': 2,
4691 },
4692 },
4693
4694 'write-vertical-left': {
4695 'utility': {
4696 '-webkit-writing-mode': 'vertical-lr',
4697 '-ms-writing-mode': 'tb-lr',
4698 'writing-mode': 'vertical-lr',
4699 },
4700 'meta': {
4701 'group': 'writingMode',
4702 'order': 3,
4703 },
4704 },
4705
4706 // https://windicss.org/utilities/typography.html#writing-orientation
4707 'write-orient-mixed': {
4708 'utility': {
4709 '-webkit-text-orientation': 'mixed',
4710 'text-orientation': 'mixed',
4711 },
4712 'meta': {
4713 'group': 'writingMode',
4714 'order': 4,
4715 },
4716 },
4717
4718 'write-orient-upright': {
4719 'utility': {
4720 '-webkit-text-orientation': 'upright',
4721 'text-orientation': 'upright',
4722 },
4723 'meta': {
4724 'group': 'writingMode',
4725 'order': 5,
4726 },
4727 },
4728
4729 'write-orient-sideways': {
4730 'utility': {
4731 '-webkit-text-orientation': 'sideways',
4732 'text-orientation': 'sideways',
4733 },
4734 'meta': {
4735 'group': 'writingMode',
4736 'order': 6,
4737 },
4738 },
4739
4740 // https://windicss.org/utilities/typography.html#hyphens
4741 'hyphens-none': {
4742 'utility': {
4743 '-webkit-hyphens': 'none',
4744 '-ms-hyphens': 'none',
4745 'hyphens': 'none',
4746 },
4747 'meta': {
4748 'group': 'hyphens',
4749 'order': 1,
4750 },
4751 },
4752 'hyphens-manual': {
4753 'utility': {
4754 '-webkit-hyphens': 'manual',
4755 '-ms-hyphens': 'manual',
4756 'hyphens': 'manual',
4757 },
4758 'meta': {
4759 'group': 'hyphens',
4760 'order': 2,
4761 },
4762 },
4763 'hyphens-auto': {
4764 'utility': {
4765 '-webkit-hyphens': 'auto',
4766 '-ms-hyphens': 'auto',
4767 'hyphens': 'auto',
4768 },
4769 'meta': {
4770 'group': 'hyphens',
4771 'order': 3,
4772 },
4773 },
4774
4775 // https://windicss.org/utilities/backgrounds.html#background-attachment
4776 'bg-fixed': {
4777 'utility': {
4778 'background-attachment': 'fixed',
4779 },
4780 'meta': {
4781 'group': 'backgroundAttachment',
4782 'order': 1,
4783 },
4784 },
4785 'bg-local': {
4786 'utility': {
4787 'background-attachment': 'local',
4788 },
4789 'meta': {
4790 'group': 'backgroundAttachment',
4791 'order': 2,
4792 },
4793 },
4794 'bg-scroll': {
4795 'utility': {
4796 'background-attachment': 'scroll',
4797 },
4798 'meta': {
4799 'group': 'backgroundAttachment',
4800 'order': 3,
4801 },
4802 },
4803
4804 // https://windicss.org/utilities/backgrounds.html#background-clip
4805 'bg-clip-border': {
4806 'utility': {
4807 '-webkit-background-clip': 'border-box',
4808 'background-clip': 'border-box',
4809 },
4810 'meta': {
4811 'group': 'backgroundClip',
4812 'order': 1,
4813 },
4814 },
4815 'bg-clip-padding': {
4816 'utility': {
4817 '-webkit-background-clip': 'padding-box',
4818 'background-clip': 'padding-box',
4819 },
4820 'meta': {
4821 'group': 'backgroundClip',
4822 'order': 2,
4823 },
4824 },
4825 'bg-clip-content': {
4826 'utility': {
4827 '-webkit-background-clip': 'content-box',
4828 'background-clip': 'content-box',
4829 },
4830 'meta': {
4831 'group': 'backgroundClip',
4832 'order': 3,
4833 },
4834 },
4835 'bg-clip-text': {
4836 'utility': {
4837 '-webkit-background-clip': 'text',
4838 'background-clip': 'text',
4839 },
4840 'meta': {
4841 'group': 'backgroundClip',
4842 'order': 4,
4843 },
4844 },
4845
4846 // https://windicss.org/utilities/backgrounds.html#background-repeat
4847 'bg-repeat': {
4848 'utility': {
4849 'background-repeat': 'repeat',
4850 },
4851 'meta': {
4852 'group': 'backgroundRepeat',
4853 'order': 1,
4854 },
4855 },
4856 'bg-no-repeat': {
4857 'utility': {
4858 'background-repeat': 'no-repeat',
4859 },
4860 'meta': {
4861 'group': 'backgroundRepeat',
4862 'order': 2,
4863 },
4864 },
4865 'bg-repeat-x': {
4866 'utility': {
4867 'background-repeat': 'repeat-x',
4868 },
4869 'meta': {
4870 'group': 'backgroundRepeat',
4871 'order': 3,
4872 },
4873 },
4874 'bg-repeat-y': {
4875 'utility': {
4876 'background-repeat': 'repeat-y',
4877 },
4878 'meta': {
4879 'group': 'backgroundRepeat',
4880 'order': 4,
4881 },
4882 },
4883 'bg-repeat-round': {
4884 'utility': {
4885 'background-repeat': 'round',
4886 },
4887 'meta': {
4888 'group': 'backgroundRepeat',
4889 'order': 5,
4890 },
4891 },
4892 'bg-repeat-space': {
4893 'utility': {
4894 'background-repeat': 'space',
4895 },
4896 'meta': {
4897 'group': 'backgroundRepeat',
4898 'order': 6,
4899 },
4900 },
4901
4902 // https://windicss.org/utilities/backgrounds.html#background-origin
4903 'bg-origin-border': {
4904 'utility': {
4905 'background-origin': 'border-box',
4906 },
4907 'meta': {
4908 'group': 'backgroundOrigin',
4909 'order': 1,
4910 },
4911 },
4912 'bg-origin-padding': {
4913 'utility': {
4914 'background-origin': 'padding-box',
4915 },
4916 'meta': {
4917 'group': 'backgroundOrigin',
4918 'order': 2,
4919 },
4920 },
4921 'bg-origin-content': {
4922 'utility': {
4923 'background-origin': 'content-box',
4924 },
4925 'meta': {
4926 'group': 'backgroundOrigin',
4927 'order': 3,
4928 },
4929 },
4930
4931 // https://windicss.org/utilities/borders.html#border-style
4932 'border-solid': {
4933 'utility': {
4934 'border-style': 'solid',
4935 },
4936 'meta': {
4937 'group': 'borderStyle',
4938 'order': 1,
4939 },
4940 },
4941 'border-dashed': {
4942 'utility': {
4943 'border-style': 'dashed',
4944 },
4945 'meta': {
4946 'group': 'borderStyle',
4947 'order': 2,
4948 },
4949 },
4950 'border-dotted': {
4951 'utility': {
4952 'border-style': 'dotted',
4953 },
4954 'meta': {
4955 'group': 'borderStyle',
4956 'order': 3,
4957 },
4958 },
4959 'border-double': {
4960 'utility': {
4961 'border-style': 'double',
4962 },
4963 'meta': {
4964 'group': 'borderStyle',
4965 'order': 4,
4966 },
4967 },
4968 'border-none': {
4969 'utility': {
4970 'border-style': 'none',
4971 },
4972 'meta': {
4973 'group': 'borderStyle',
4974 'order': 5,
4975 },
4976 },
4977
4978 // https://windicss.org/utilities/behaviors.html#image-rendering
4979 'image-render-auto': {
4980 'utility': {
4981 'image-rendering': 'auto',
4982 },
4983 'meta': {
4984 'group': 'imageRendering',
4985 'order': 1,
4986 },
4987 },
4988 'image-render-pixel': {
4989 'utility': {
4990 '-ms-interpolation-mode': 'nearest-neighbor',
4991 'image-rendering': ['-webkit-optimize-contrast', '-moz-crisp-edges', '-o-pixelated', 'pixelated'],
4992 },
4993 'meta': {
4994 'group': 'imageRendering',
4995 'order': 2,
4996 },
4997 },
4998 'image-render-edge': {
4999 'utility': {
5000 'image-rendering': 'crisp-edges',
5001 },
5002 'meta': {
5003 'group': 'imageRendering',
5004 'order': 3,
5005 },
5006 },
5007
5008 // https://windicss.org/utilities/effects.html#mix-blend-mode
5009 'mix-blend-normal': {
5010 'utility': {
5011 'mix-blend-mode': 'normal',
5012 },
5013 'meta': {
5014 'group': 'mixBlendMode',
5015 'order': 1,
5016 },
5017 },
5018 'mix-blend-multiply': {
5019 'utility': {
5020 'mix-blend-mode': 'multiply',
5021 },
5022 'meta': {
5023 'group': 'mixBlendMode',
5024 'order': 2,
5025 },
5026 },
5027 'mix-blend-screen': {
5028 'utility': {
5029 'mix-blend-mode': 'screen',
5030 },
5031 'meta': {
5032 'group': 'mixBlendMode',
5033 'order': 3,
5034 },
5035 },
5036 'mix-blend-overlay': {
5037 'utility': {
5038 'mix-blend-mode': 'overlay',
5039 },
5040 'meta': {
5041 'group': 'mixBlendMode',
5042 'order': 4,
5043 },
5044 },
5045 'mix-blend-darken': {
5046 'utility': {
5047 'mix-blend-mode': 'darken',
5048 },
5049 'meta': {
5050 'group': 'mixBlendMode',
5051 'order': 5,
5052 },
5053 },
5054 'mix-blend-lighten': {
5055 'utility': {
5056 'mix-blend-mode': 'lighten',
5057 },
5058 'meta': {
5059 'group': 'mixBlendMode',
5060 'order': 6,
5061 },
5062 },
5063 'mix-blend-color-dodge': {
5064 'utility': {
5065 'mix-blend-mode': 'color-dodge',
5066 },
5067 'meta': {
5068 'group': 'mixBlendMode',
5069 'order': 7,
5070 },
5071 },
5072 'mix-blend-color-burn': {
5073 'utility': {
5074 'mix-blend-mode': 'color-burn',
5075 },
5076 'meta': {
5077 'group': 'mixBlendMode',
5078 'order': 8,
5079 },
5080 },
5081 'mix-blend-hard-light': {
5082 'utility': {
5083 'mix-blend-mode': 'hard-light',
5084 },
5085 'meta': {
5086 'group': 'mixBlendMode',
5087 'order': 9,
5088 },
5089 },
5090 'mix-blend-soft-light': {
5091 'utility': {
5092 'mix-blend-mode': 'soft-light',
5093 },
5094 'meta': {
5095 'group': 'mixBlendMode',
5096 'order': 10,
5097 },
5098 },
5099 'mix-blend-difference': {
5100 'utility': {
5101 'mix-blend-mode': 'difference',
5102 },
5103 'meta': {
5104 'group': 'mixBlendMode',
5105 'order': 11,
5106 },
5107 },
5108 'mix-blend-exclusion': {
5109 'utility': {
5110 'mix-blend-mode': 'exclusion',
5111 },
5112 'meta': {
5113 'group': 'mixBlendMode',
5114 'order': 12,
5115 },
5116 },
5117 'mix-blend-hue': {
5118 'utility': {
5119 'mix-blend-mode': 'hue',
5120 },
5121 'meta': {
5122 'group': 'mixBlendMode',
5123 'order': 13,
5124 },
5125 },
5126 'mix-blend-saturation': {
5127 'utility': {
5128 'mix-blend-mode': 'saturation',
5129 },
5130 'meta': {
5131 'group': 'mixBlendMode',
5132 'order': 14,
5133 },
5134 },
5135 'mix-blend-color': {
5136 'utility': {
5137 'mix-blend-mode': 'color',
5138 },
5139 'meta': {
5140 'group': 'mixBlendMode',
5141 'order': 15,
5142 },
5143 },
5144 'mix-blend-luminosity': {
5145 'utility': {
5146 'mix-blend-mode': 'luminosity',
5147 },
5148 'meta': {
5149 'group': 'mixBlendMode',
5150 'order': 16,
5151 },
5152 },
5153 // https://windicss.org/utilities/backgrounds.html#background-blend-mode
5154 'bg-blend-normal': {
5155 'utility': {
5156 'background-blend-mode': 'normal',
5157 },
5158 'meta': {
5159 'group': 'backgroundBlendMode',
5160 'order': 1,
5161 },
5162 },
5163 'bg-blend-multiply': {
5164 'utility': {
5165 'background-blend-mode': 'multiply',
5166 },
5167 'meta': {
5168 'group': 'backgroundBlendMode',
5169 'order': 2,
5170 },
5171 },
5172 'bg-blend-screen': {
5173 'utility': {
5174 'background-blend-mode': 'screen',
5175 },
5176 'meta': {
5177 'group': 'backgroundBlendMode',
5178 'order': 3,
5179 },
5180 },
5181 'bg-blend-overlay': {
5182 'utility': {
5183 'background-blend-mode': 'overlay',
5184 },
5185 'meta': {
5186 'group': 'backgroundBlendMode',
5187 'order': 4,
5188 },
5189 },
5190 'bg-blend-darken': {
5191 'utility': {
5192 'background-blend-mode': 'darken',
5193 },
5194 'meta': {
5195 'group': 'backgroundBlendMode',
5196 'order': 5,
5197 },
5198 },
5199 'bg-blend-lighten': {
5200 'utility': {
5201 'background-blend-mode': 'lighten',
5202 },
5203 'meta': {
5204 'group': 'backgroundBlendMode',
5205 'order': 6,
5206 },
5207 },
5208 'bg-blend-color-dodge': {
5209 'utility': {
5210 'background-blend-mode': 'color-dodge',
5211 },
5212 'meta': {
5213 'group': 'backgroundBlendMode',
5214 'order': 7,
5215 },
5216 },
5217 'bg-blend-color-burn': {
5218 'utility': {
5219 'background-blend-mode': 'color-burn',
5220 },
5221 'meta': {
5222 'group': 'backgroundBlendMode',
5223 'order': 8,
5224 },
5225 },
5226 'bg-blend-hard-light': {
5227 'utility': {
5228 'background-blend-mode': 'hard-light',
5229 },
5230 'meta': {
5231 'group': 'backgroundBlendMode',
5232 'order': 9,
5233 },
5234 },
5235 'bg-blend-soft-light': {
5236 'utility': {
5237 'background-blend-mode': 'soft-light',
5238 },
5239 'meta': {
5240 'group': 'backgroundBlendMode',
5241 'order': 10,
5242 },
5243 },
5244 'bg-blend-difference': {
5245 'utility': {
5246 'background-blend-mode': 'difference',
5247 },
5248 'meta': {
5249 'group': 'backgroundBlendMode',
5250 'order': 11,
5251 },
5252 },
5253 'bg-blend-exclusion': {
5254 'utility': {
5255 'background-blend-mode': 'exclusion',
5256 },
5257 'meta': {
5258 'group': 'backgroundBlendMode',
5259 'order': 12,
5260 },
5261 },
5262 'bg-blend-hue': {
5263 'utility': {
5264 'background-blend-mode': 'hue',
5265 },
5266 'meta': {
5267 'group': 'backgroundBlendMode',
5268 'order': 13,
5269 },
5270 },
5271 'bg-blend-saturation': {
5272 'utility': {
5273 'background-blend-mode': 'saturation',
5274 },
5275 'meta': {
5276 'group': 'backgroundBlendMode',
5277 'order': 14,
5278 },
5279 },
5280 'bg-blend-color': {
5281 'utility': {
5282 'background-blend-mode': 'color',
5283 },
5284 'meta': {
5285 'group': 'backgroundBlendMode',
5286 'order': 15,
5287 },
5288 },
5289 'bg-blend-luminosity': {
5290 'utility': {
5291 'background-blend-mode': 'luminosity',
5292 },
5293 'meta': {
5294 'group': 'backgroundBlendMode',
5295 'order': 16,
5296 },
5297 },
5298
5299 // https://windicss.org/utilities/filters.html#filter
5300 'filter': {
5301 'utility': {
5302 '--tw-blur': 'var(--tw-empty,/*!*/ /*!*/)',
5303 '--tw-brightness': 'var(--tw-empty,/*!*/ /*!*/)',
5304 '--tw-contrast': 'var(--tw-empty,/*!*/ /*!*/)',
5305 '--tw-grayscale': 'var(--tw-empty,/*!*/ /*!*/)',
5306 '--tw-hue-rotate': 'var(--tw-empty,/*!*/ /*!*/)',
5307 '--tw-invert': 'var(--tw-empty,/*!*/ /*!*/)',
5308 '--tw-saturate': 'var(--tw-empty,/*!*/ /*!*/)',
5309 '--tw-sepia': 'var(--tw-empty,/*!*/ /*!*/)',
5310 '--tw-drop-shadow': 'var(--tw-empty,/*!*/ /*!*/)',
5311 '-webkit-filter': 'var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)',
5312 'filter': 'var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)',
5313 },
5314 'meta': {
5315 'group': 'filter',
5316 'order': 1,
5317 },
5318 },
5319
5320 'filter-none': {
5321 'utility': {
5322 '-webkit-filter': 'none',
5323 'filter': 'none',
5324 },
5325 'meta': {
5326 'group': 'filter',
5327 'order': 2,
5328 },
5329 },
5330
5331 // https://windicss.org/utilities/filters.html#backdrop-filter
5332 'backdrop-filter': {
5333 'utility': {
5334 '--tw-backdrop-blur': 'var(--tw-empty,/*!*/ /*!*/)',
5335 '--tw-backdrop-brightness': 'var(--tw-empty,/*!*/ /*!*/)',
5336 '--tw-backdrop-contrast': 'var(--tw-empty,/*!*/ /*!*/)',
5337 '--tw-backdrop-grayscale': 'var(--tw-empty,/*!*/ /*!*/)',
5338 '--tw-backdrop-hue-rotate': 'var(--tw-empty,/*!*/ /*!*/)',
5339 '--tw-backdrop-invert': 'var(--tw-empty,/*!*/ /*!*/)',
5340 '--tw-backdrop-opacity': 'var(--tw-empty,/*!*/ /*!*/)',
5341 '--tw-backdrop-saturate': 'var(--tw-empty,/*!*/ /*!*/)',
5342 '--tw-backdrop-sepia': 'var(--tw-empty,/*!*/ /*!*/)',
5343 '-webkit-backdrop-filter': 'var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)',
5344 'backdrop-filter': 'var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)',
5345 },
5346 'meta': {
5347 'group': 'backdropFilter',
5348 'order': 1,
5349 },
5350 },
5351
5352 'backdrop-filter-none': {
5353 'utility': {
5354 '-webkit-backdrop-filter': 'none',
5355 'backdrop-filter': 'none',
5356 },
5357 'meta': {
5358 'group': 'backdropFilter',
5359 'order': 2,
5360 },
5361 },
5362
5363 // https://windicss.org/utilities/tables.html#table-border-collapse
5364 'border-collapse': {
5365 'utility': {
5366 'border-collapse': 'collapse',
5367 },
5368 'meta': {
5369 'group': 'borderCollapse',
5370 'order': 1,
5371 },
5372 },
5373 'border-separate': {
5374 'utility': {
5375 'border-collapse': 'separate',
5376 },
5377 'meta': {
5378 'group': 'borderCollapse',
5379 'order': 2,
5380 },
5381 },
5382
5383 // https://windicss.org/utilities/tables.html#table-caption-side
5384 'caption-top': {
5385 'utility': {
5386 'caption-side': 'top',
5387 },
5388 'meta': {
5389 'group': 'captionSide',
5390 'order': 1,
5391 },
5392 },
5393
5394 'caption-bottom': {
5395 'utility': {
5396 'caption-side': 'bottom',
5397 },
5398 'meta': {
5399 'group': 'captionSide',
5400 'order': 2,
5401 },
5402 },
5403
5404 // https://windicss.org/utilities/tables.html#table-empty-cells
5405 'empty-cells-visible': {
5406 'utility': {
5407 'empty-cells': 'show',
5408 },
5409 'meta': {
5410 'group': 'emptyCells',
5411 'order': 1,
5412 },
5413 },
5414
5415 'empty-cells-hidden': {
5416 'utility': {
5417 'empty-cells': 'hide',
5418 },
5419 'meta': {
5420 'group': 'emptyCells',
5421 'order': 2,
5422 },
5423 },
5424
5425 // https://windicss.org/utilities/tables.html#table-layout
5426 'table-auto': {
5427 'utility': {
5428 'table-layout': 'auto',
5429 },
5430 'meta': {
5431 'group': 'tableLayout',
5432 'order': 1,
5433 },
5434 },
5435 'table-fixed': {
5436 'utility': {
5437 'table-layout': 'fixed',
5438 },
5439 'meta': {
5440 'group': 'tableLayout',
5441 'order': 2,
5442 },
5443 },
5444
5445 // https://windicss.org/utilities/transforms.html
5446 'transform': {
5447 'utility': {
5448 '--tw-rotate': '0',
5449 '--tw-rotate-x': '0',
5450 '--tw-rotate-y': '0',
5451 '--tw-rotate-z': '0',
5452 '--tw-scale-x': '1',
5453 '--tw-scale-y': '1',
5454 '--tw-scale-z': '1',
5455 '--tw-skew-x': '0',
5456 '--tw-skew-y': '0',
5457 '--tw-translate-x': '0',
5458 '--tw-translate-y': '0',
5459 '--tw-translate-z': '0',
5460 '-webkit-transform': 'rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z))',
5461 '-ms-transform': 'rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z))',
5462 'transform': 'rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z))',
5463 },
5464 'meta': {
5465 'group': 'transform',
5466 'order': 1,
5467 },
5468 },
5469 'transform-gpu': {
5470 'utility': {
5471 '--tw-rotate': '0',
5472 '--tw-rotate-x': '0',
5473 '--tw-rotate-y': '0',
5474 '--tw-rotate-z': '0',
5475 '--tw-scale-x': '1',
5476 '--tw-scale-y': '1',
5477 '--tw-scale-z': '1',
5478 '--tw-skew-x': '0',
5479 '--tw-skew-y': '0',
5480 '--tw-translate-x': '0',
5481 '--tw-translate-y': '0',
5482 '--tw-translate-z': '0',
5483 '-webkit-transform': 'rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translate3d(var(--tw-translate-x), var(--tw-translate-y), var(--tw-translate-z))',
5484 '-ms-transform': 'rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translate3d(var(--tw-translate-x), var(--tw-translate-y), var(--tw-translate-z))',
5485 'transform': 'rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translate3d(var(--tw-translate-x), var(--tw-translate-y), var(--tw-translate-z))',
5486 },
5487 'meta': {
5488 'group': 'transform',
5489 'order': 2,
5490 },
5491 },
5492 'transform-none': {
5493 'utility': {
5494 '-webkit-transform': 'none',
5495 '-ms-transform': 'none',
5496 'transform': 'none',
5497 },
5498 'meta': {
5499 'group': 'transform',
5500 'order': 3,
5501 },
5502 },
5503
5504 // https://windicss.org/utilities/transforms.html#transform-type
5505 'preserve-flat': {
5506 'utility': {
5507 '-webkit-transform-style': 'flat',
5508 'transform-style': 'flat',
5509 },
5510 'meta': {
5511 'group': 'transform',
5512 'order': 4,
5513 },
5514 },
5515
5516 'preserve-3d': {
5517 'utility': {
5518 '-webkit-transform-style': 'preserve-3d',
5519 'transform-style': 'preserve-3d',
5520 },
5521 'meta': {
5522 'group': 'transform',
5523 'order': 5,
5524 },
5525 },
5526
5527 'animated': {
5528 'utility': {
5529 '-webkit-animation-duration': '1000ms',
5530 '-webkit-animation-fill-mode': 'both',
5531 'animation-duration': '1000ms',
5532 'animation-fill-mode': 'both',
5533 },
5534 'meta': {
5535 'group': 'animation',
5536 'order': 3,
5537 },
5538 },
5539
5540 'animate-reverse': {
5541 'utility': {
5542 '-webkit-animation-direction': 'reverse',
5543 'animation-direction': 'reverse',
5544 },
5545 'meta': {
5546 'group': 'animation',
5547 'order': 4,
5548 },
5549 },
5550
5551 'animate-alternate': {
5552 'utility': {
5553 '-webkit-animation-direction': 'alternate',
5554 'animation-direction': 'alternate',
5555 },
5556 'meta': {
5557 'group': 'animation',
5558 'order': 5,
5559 },
5560 },
5561
5562 'animate-alternate-reverse': {
5563 'utility': {
5564 '-webkit-animation-direction': 'alternate-reverse',
5565 'animation-direction': 'alternate-reverse',
5566 },
5567 'meta': {
5568 'group': 'animation',
5569 'order': 6,
5570 },
5571 },
5572
5573 'animate-fill-none': {
5574 'utility': {
5575 '-webkit-animation-fill-mode': 'none',
5576 'animation-fill-mode': 'none',
5577 },
5578 'meta': {
5579 'group': 'animation',
5580 'order': 7,
5581 },
5582 },
5583
5584 'animate-fill-forwards': {
5585 'utility': {
5586 '-webkit-animation-fill-mode': 'forwards',
5587 'animation-fill-mode': 'forwards',
5588 },
5589 'meta': {
5590 'group': 'animation',
5591 'order': 8,
5592 },
5593 },
5594
5595 'animate-fill-backwards': {
5596 'utility': {
5597 '-webkit-animation-fill-mode': 'backwards',
5598 'animation-fill-mode': 'backwards',
5599 },
5600 'meta': {
5601 'group': 'animation',
5602 'order': 9,
5603 },
5604 },
5605
5606 'animate-fill-both': {
5607 'utility': {
5608 '-webkit-animation-fill-mode': 'both',
5609 'animation-fill-mode': 'both',
5610 },
5611 'meta': {
5612 'group': 'animation',
5613 'order': 10,
5614 },
5615 },
5616
5617 'animate-paused': {
5618 'utility': {
5619 '-webkit-animation-play-state': 'paused',
5620 'animation-play-state': 'paused',
5621 },
5622 'meta': {
5623 'group': 'animation',
5624 'order': 11,
5625 },
5626 },
5627
5628 'animate-running': {
5629 'utility': {
5630 '-webkit-animation-play-state': 'running',
5631 'animation-play-state': 'running',
5632 },
5633 'meta': {
5634 'group': 'animation',
5635 'order': 12,
5636 },
5637 },
5638
5639 // https://windicss.org/utilities/behaviors.html#appearance
5640 'appearance-none': {
5641 'utility': {
5642 '-webkit-appearance': 'none',
5643 '-moz-appearance': 'none',
5644 'appearance': 'none',
5645 },
5646 'meta': {
5647 'group': 'appearance',
5648 'order': 1,
5649 },
5650 },
5651
5652 // https://windicss.org/utilities/behaviors.html#pointer-events
5653 'pointer-events-none': {
5654 'utility': {
5655 'pointer-events': 'none',
5656 },
5657 'meta': {
5658 'group': 'pointerEvents',
5659 'order': 1,
5660 },
5661 },
5662 'pointer-events-auto': {
5663 'utility': {
5664 'pointer-events': 'auto',
5665 },
5666 'meta': {
5667 'group': 'pointerEvents',
5668 'order': 2,
5669 },
5670 },
5671
5672 // https://windicss.org/utilities/behaviors.html#resize
5673 'resize-none': {
5674 'utility': {
5675 'resize': 'none',
5676 },
5677 'meta': {
5678 'group': 'resize',
5679 'order': 1,
5680 },
5681 },
5682 'resize-y': {
5683 'utility': {
5684 'resize': 'vertical',
5685 },
5686 'meta': {
5687 'group': 'resize',
5688 'order': 2,
5689 },
5690 },
5691 'resize-x': {
5692 'utility': {
5693 'resize': 'horizontal',
5694 },
5695 'meta': {
5696 'group': 'resize',
5697 'order': 3,
5698 },
5699 },
5700 'resize': {
5701 'utility': {
5702 'resize': 'both',
5703 },
5704 'meta': {
5705 'group': 'resize',
5706 'order': 4,
5707 },
5708 },
5709
5710 // https://windicss.org/utilities/behaviors.html#user-select
5711 'select-none': {
5712 'utility': {
5713 '-webkit-user-select': 'none',
5714 '-moz-user-select': 'none',
5715 '-ms-user-select': 'none',
5716 'user-select': 'none',
5717 },
5718 'meta': {
5719 'group': 'userSelect',
5720 'order': 1,
5721 },
5722 },
5723 'select-text': {
5724 'utility': {
5725 '-webkit-user-select': 'text',
5726 '-moz-user-select': 'text',
5727 '-ms-user-select': 'text',
5728 'user-select': 'text',
5729 },
5730 'meta': {
5731 'group': 'userSelect',
5732 'order': 2,
5733 },
5734 },
5735 'select-all': {
5736 'utility': {
5737 '-webkit-user-select': 'all',
5738 '-moz-user-select': 'all',
5739 '-ms-user-select': 'all',
5740 'user-select': 'all',
5741 },
5742 'meta': {
5743 'group': 'userSelect',
5744 'order': 3,
5745 },
5746 },
5747 'select-auto': {
5748 'utility': {
5749 '-webkit-user-select': 'auto',
5750 '-moz-user-select': 'auto',
5751 '-ms-user-select': 'auto',
5752 'user-select': 'auto',
5753 },
5754 'meta': {
5755 'group': 'userSelect',
5756 'order': 4,
5757 },
5758 },
5759
5760 // https://windicss.org/utilities/svg.html#fill-color
5761 // https://windicss.org/utilities/svg.html#stroke-color
5762 'fill-current': {
5763 'utility': {
5764 'fill': 'currentColor',
5765 },
5766 'meta': {
5767 'group': 'fill',
5768 'order': 1,
5769 },
5770 },
5771 'stroke-current': {
5772 'utility': {
5773 'stroke': 'currentColor',
5774 },
5775 'meta': {
5776 'group': 'stroke',
5777 'order': 1,
5778 },
5779 },
5780 // https://windicss.org/utilities/svg.html#stroke-linecap
5781 'stroke-cap-auto': {
5782 'utility': {
5783 'stroke-linecap': 'butt',
5784 },
5785 'meta': {
5786 'group': 'stroke',
5787 'order': 2,
5788 },
5789 },
5790 'stroke-cap-square': {
5791 'utility': {
5792 'stroke-linecap': 'square',
5793 },
5794 'meta': {
5795 'group': 'stroke',
5796 'order': 3,
5797 },
5798 },
5799 'stroke-cap-round': {
5800 'utility': {
5801 'stroke-linecap': 'round',
5802 },
5803 'meta': {
5804 'group': 'stroke',
5805 'order': 4,
5806 },
5807 },
5808 // https://windicss.org/utilities/svg.html#stroke-linejoin
5809 'stroke-join-auto': {
5810 'utility': {
5811 'stroke-linejoin': 'miter',
5812 },
5813 'meta': {
5814 'group': 'stroke',
5815 'order': 5,
5816 },
5817 },
5818 'stroke-join-arcs': {
5819 'utility': {
5820 'stroke-linejoin': 'arcs',
5821 },
5822 'meta': {
5823 'group': 'stroke',
5824 'order': 6,
5825 },
5826 },
5827 'stroke-join-bevel': {
5828 'utility': {
5829 'stroke-linejoin': 'bevel',
5830 },
5831 'meta': {
5832 'group': 'stroke',
5833 'order': 7,
5834 },
5835 },
5836 'stroke-join-clip': {
5837 'utility': {
5838 'stroke-linejoin': 'miter-clip',
5839 },
5840 'meta': {
5841 'group': 'stroke',
5842 'order': 8,
5843 },
5844 },
5845 'stroke-join-round': {
5846 'utility': {
5847 'stroke-linejoin': 'round',
5848 },
5849 'meta': {
5850 'group': 'stroke',
5851 'order': 9,
5852 },
5853 },
5854 // https://windicss.org/utilities/behaviors.html#screen-readers-access
5855 'sr-only': {
5856 'utility': {
5857 'position': 'absolute',
5858 'width': '1px',
5859 'height': '1px',
5860 'padding': '0',
5861 'margin': '-1px',
5862 'overflow': 'hidden',
5863 'clip': 'rect(0, 0, 0, 0)',
5864 'white-space': 'nowrap',
5865 'border-width': '0',
5866 },
5867 'meta': {
5868 'group': 'accessibility',
5869 'order': 1,
5870 },
5871 },
5872 'not-sr-only': {
5873 'utility': {
5874 'position': 'static',
5875 'width': 'auto',
5876 'height': 'auto',
5877 'padding': '0',
5878 'margin': '0',
5879 'overflow': 'visible',
5880 'clip': 'auto',
5881 'white-space': 'normal',
5882 },
5883 'meta': {
5884 'group': 'accessibility',
5885 'order': 2,
5886 },
5887 },
5888};
5889
5890const variantOrder = [
5891 'hover',
5892 'focus',
5893 'active',
5894 'visited',
5895 'link',
5896 'target',
5897 'focus-visible',
5898 'focus-within',
5899 'checked',
5900 'not-checked',
5901 'default',
5902 'disabled',
5903 'enabled',
5904 'indeterminate',
5905 'invalid',
5906 'valid',
5907 'optional',
5908 'required',
5909 'placeholder-shown',
5910 'read-only',
5911 'read-write',
5912 'not-disabled',
5913 'first-of-type',
5914 'not-first-of-type',
5915 'last-of-type',
5916 'not-last-of-type',
5917 'first',
5918 'last',
5919 'not-first',
5920 'not-last',
5921 'only-child',
5922 'not-only-child',
5923 'only-of-type',
5924 'not-only-of-type',
5925 'even',
5926 'odd',
5927 'even-of-type',
5928 'odd-of-type',
5929 'root',
5930 'empty',
5931 'before',
5932 'after',
5933 'first-letter',
5934 'first-line',
5935 'file-selector-button',
5936 'selection',
5937 'svg',
5938 'all',
5939 'children',
5940 'siblings',
5941 'sibling',
5942 'ltr',
5943 'rtl',
5944 'group-hover',
5945 'group-focus',
5946 'group-active',
5947 'group-visited',
5948 'motion-safe',
5949 'motion-reduce',
5950];
5951
5952
5953
5954var layerOrder; (function (layerOrder) {
5955 const base = 10; layerOrder[layerOrder["base"] = base] = "base";
5956 const components = 150; layerOrder[layerOrder["components"] = components] = "components";
5957 const shortcuts = 160; layerOrder[layerOrder["shortcuts"] = shortcuts] = "shortcuts";
5958 const utilities = 20000; layerOrder[layerOrder["utilities"] = utilities] = "utilities";
5959})(layerOrder || (layerOrder = {}));
5960
5961var pluginOrder; (function (pluginOrder) {
5962 const container = 100; pluginOrder[pluginOrder['container'] = container] = 'container';
5963 const space = 200; pluginOrder[pluginOrder['space'] = space] = 'space';
5964 const divideWidth = 300; pluginOrder[pluginOrder['divideWidth'] = divideWidth] = 'divideWidth';
5965 const divideColor = 400; pluginOrder[pluginOrder['divideColor'] = divideColor] = 'divideColor';
5966 const divideStyle = 500; pluginOrder[pluginOrder['divideStyle'] = divideStyle] = 'divideStyle';
5967 const divideOpacity = 600; pluginOrder[pluginOrder['divideOpacity'] = divideOpacity] = 'divideOpacity';
5968 const accessibility = 700; pluginOrder[pluginOrder['accessibility'] = accessibility] = 'accessibility';
5969 const appearance = 800; pluginOrder[pluginOrder['appearance'] = appearance] = 'appearance';
5970 const backgroundAttachment = 900; pluginOrder[pluginOrder['backgroundAttachment'] = backgroundAttachment] = 'backgroundAttachment';
5971 const backgroundClip = 1000; pluginOrder[pluginOrder['backgroundClip'] = backgroundClip] = 'backgroundClip';
5972 const backgroundColor = 1100; pluginOrder[pluginOrder['backgroundColor'] = backgroundColor] = 'backgroundColor';
5973 const backgroundImage = 1200; pluginOrder[pluginOrder['backgroundImage'] = backgroundImage] = 'backgroundImage';
5974 const gradientColorStops = 1300; pluginOrder[pluginOrder['gradientColorStops'] = gradientColorStops] = 'gradientColorStops';
5975 const backgroundOpacity = 1400; pluginOrder[pluginOrder['backgroundOpacity'] = backgroundOpacity] = 'backgroundOpacity';
5976 const backgroundPosition = 1500; pluginOrder[pluginOrder['backgroundPosition'] = backgroundPosition] = 'backgroundPosition';
5977 const backgroundRepeat = 1600; pluginOrder[pluginOrder['backgroundRepeat'] = backgroundRepeat] = 'backgroundRepeat';
5978 const backgroundSize = 1700; pluginOrder[pluginOrder['backgroundSize'] = backgroundSize] = 'backgroundSize';
5979 const backgroundOrigin = 1750; pluginOrder[pluginOrder['backgroundOrigin'] = backgroundOrigin] = 'backgroundOrigin';
5980 const borderCollapse = 1800; pluginOrder[pluginOrder['borderCollapse'] = borderCollapse] = 'borderCollapse';
5981 const borderColor = 1900; pluginOrder[pluginOrder['borderColor'] = borderColor] = 'borderColor';
5982 const borderOpacity = 2000; pluginOrder[pluginOrder['borderOpacity'] = borderOpacity] = 'borderOpacity';
5983 const borderRadius = 2100; pluginOrder[pluginOrder['borderRadius'] = borderRadius] = 'borderRadius';
5984 const borderStyle = 2200; pluginOrder[pluginOrder['borderStyle'] = borderStyle] = 'borderStyle';
5985 const borderWidth = 2300; pluginOrder[pluginOrder['borderWidth'] = borderWidth] = 'borderWidth';
5986 const boxDecorationBreak = 2350; pluginOrder[pluginOrder['boxDecorationBreak'] = boxDecorationBreak] = 'boxDecorationBreak';
5987 const boxSizing = 2400; pluginOrder[pluginOrder['boxSizing'] = boxSizing] = 'boxSizing';
5988 const cursor = 2500; pluginOrder[pluginOrder['cursor'] = cursor] = 'cursor';
5989 const captionSide = 2550; pluginOrder[pluginOrder['captionSide'] = captionSide] = 'captionSide';
5990 const emptyCells = 2560; pluginOrder[pluginOrder['emptyCells'] = emptyCells] = 'emptyCells';
5991 const display = 2600; pluginOrder[pluginOrder['display'] = display] = 'display';
5992 const flexDirection = 2700; pluginOrder[pluginOrder['flexDirection'] = flexDirection] = 'flexDirection';
5993 const flexWrap = 2800; pluginOrder[pluginOrder['flexWrap'] = flexWrap] = 'flexWrap';
5994 const placeItems = 2900; pluginOrder[pluginOrder['placeItems'] = placeItems] = 'placeItems';
5995 const placeContent = 3000; pluginOrder[pluginOrder['placeContent'] = placeContent] = 'placeContent';
5996 const placeSelf = 3100; pluginOrder[pluginOrder['placeSelf'] = placeSelf] = 'placeSelf';
5997 const alignItems = 3200; pluginOrder[pluginOrder['alignItems'] = alignItems] = 'alignItems';
5998 const alignContent = 3300; pluginOrder[pluginOrder['alignContent'] = alignContent] = 'alignContent';
5999 const alignSelf = 3400; pluginOrder[pluginOrder['alignSelf'] = alignSelf] = 'alignSelf';
6000 const justifyItems = 3500; pluginOrder[pluginOrder['justifyItems'] = justifyItems] = 'justifyItems';
6001 const justifyContent = 3600; pluginOrder[pluginOrder['justifyContent'] = justifyContent] = 'justifyContent';
6002 const justifySelf = 3700; pluginOrder[pluginOrder['justifySelf'] = justifySelf] = 'justifySelf';
6003 const flex = 3800; pluginOrder[pluginOrder['flex'] = flex] = 'flex';
6004 const flexGrow = 3900; pluginOrder[pluginOrder['flexGrow'] = flexGrow] = 'flexGrow';
6005 const flexShrink = 4000; pluginOrder[pluginOrder['flexShrink'] = flexShrink] = 'flexShrink';
6006 const order = 4100; pluginOrder[pluginOrder['order'] = order] = 'order';
6007 const float = 4200; pluginOrder[pluginOrder['float'] = float] = 'float';
6008 const clear = 4300; pluginOrder[pluginOrder['clear'] = clear] = 'clear';
6009 const fontFamily = 4400; pluginOrder[pluginOrder['fontFamily'] = fontFamily] = 'fontFamily';
6010 const fontWeight = 4500; pluginOrder[pluginOrder['fontWeight'] = fontWeight] = 'fontWeight';
6011 const height = 4600; pluginOrder[pluginOrder['height'] = height] = 'height';
6012 const fontSize = 4700; pluginOrder[pluginOrder['fontSize'] = fontSize] = 'fontSize';
6013 const lineHeight = 4800; pluginOrder[pluginOrder['lineHeight'] = lineHeight] = 'lineHeight';
6014 const listStylePosition = 4900; pluginOrder[pluginOrder['listStylePosition'] = listStylePosition] = 'listStylePosition';
6015 const listStyleType = 5000; pluginOrder[pluginOrder['listStyleType'] = listStyleType] = 'listStyleType';
6016 const margin = 5100; pluginOrder[pluginOrder['margin'] = margin] = 'margin';
6017 const maxHeight = 5200; pluginOrder[pluginOrder['maxHeight'] = maxHeight] = 'maxHeight';
6018 const maxWidth = 5300; pluginOrder[pluginOrder['maxWidth'] = maxWidth] = 'maxWidth';
6019 const minHeight = 5400; pluginOrder[pluginOrder['minHeight'] = minHeight] = 'minHeight';
6020 const minWidth = 5500; pluginOrder[pluginOrder['minWidth'] = minWidth] = 'minWidth';
6021 const objectFit = 5600; pluginOrder[pluginOrder['objectFit'] = objectFit] = 'objectFit';
6022 const objectPosition = 5700; pluginOrder[pluginOrder['objectPosition'] = objectPosition] = 'objectPosition';
6023 const opacity = 5800; pluginOrder[pluginOrder['opacity'] = opacity] = 'opacity';
6024 const outline = 5900; pluginOrder[pluginOrder['outline'] = outline] = 'outline';
6025 const overflow = 6000; pluginOrder[pluginOrder['overflow'] = overflow] = 'overflow';
6026 const overscrollBehavior = 6100; pluginOrder[pluginOrder['overscrollBehavior'] = overscrollBehavior] = 'overscrollBehavior';
6027 const padding = 6200; pluginOrder[pluginOrder['padding'] = padding] = 'padding';
6028 const placeholderColor = 6300; pluginOrder[pluginOrder['placeholderColor'] = placeholderColor] = 'placeholderColor';
6029 const placeholderOpacity = 6400; pluginOrder[pluginOrder['placeholderOpacity'] = placeholderOpacity] = 'placeholderOpacity';
6030 const caretColor = 6450; pluginOrder[pluginOrder['caretColor'] = caretColor] = 'caretColor';
6031 const caretOpacity = 6460; pluginOrder[pluginOrder['caretOpacity'] = caretOpacity] = 'caretOpacity';
6032 const tabSize = 6470; pluginOrder[pluginOrder['tabSize'] = tabSize] = 'tabSize';
6033 const pointerEvents = 6500; pluginOrder[pluginOrder['pointerEvents'] = pointerEvents] = 'pointerEvents';
6034 const position = 6600; pluginOrder[pluginOrder['position'] = position] = 'position';
6035 const inset = 6700; pluginOrder[pluginOrder['inset'] = inset] = 'inset';
6036 const resize = 6800; pluginOrder[pluginOrder['resize'] = resize] = 'resize';
6037 const boxShadow = 6900; pluginOrder[pluginOrder['boxShadow'] = boxShadow] = 'boxShadow';
6038 const boxShadowColor = 6950; pluginOrder[pluginOrder['boxShadowColor'] = boxShadowColor] = 'boxShadowColor';
6039 const ringWidth = 7000; pluginOrder[pluginOrder['ringWidth'] = ringWidth] = 'ringWidth';
6040 const ringOffsetColor = 7100; pluginOrder[pluginOrder['ringOffsetColor'] = ringOffsetColor] = 'ringOffsetColor';
6041 const ringOffsetWidth = 7200; pluginOrder[pluginOrder['ringOffsetWidth'] = ringOffsetWidth] = 'ringOffsetWidth';
6042 const ringColor = 7300; pluginOrder[pluginOrder['ringColor'] = ringColor] = 'ringColor';
6043 const ringOpacity = 7400; pluginOrder[pluginOrder['ringOpacity'] = ringOpacity] = 'ringOpacity';
6044 const fill = 7500; pluginOrder[pluginOrder['fill'] = fill] = 'fill';
6045 const stroke = 7600; pluginOrder[pluginOrder['stroke'] = stroke] = 'stroke';
6046 const strokeWidth = 7700; pluginOrder[pluginOrder['strokeWidth'] = strokeWidth] = 'strokeWidth';
6047 const strokeDashArray = 7750; pluginOrder[pluginOrder['strokeDashArray'] = strokeDashArray] = 'strokeDashArray';
6048 const strokeDashOffset = 7760; pluginOrder[pluginOrder['strokeDashOffset'] = strokeDashOffset] = 'strokeDashOffset';
6049 const tableLayout = 7800; pluginOrder[pluginOrder['tableLayout'] = tableLayout] = 'tableLayout';
6050 const textAlign = 7900; pluginOrder[pluginOrder['textAlign'] = textAlign] = 'textAlign';
6051 const textColor = 8000; pluginOrder[pluginOrder['textColor'] = textColor] = 'textColor';
6052 const textOpacity = 8100; pluginOrder[pluginOrder['textOpacity'] = textOpacity] = 'textOpacity';
6053 const textOverflow = 8200; pluginOrder[pluginOrder['textOverflow'] = textOverflow] = 'textOverflow';
6054 const textShadow = 8250; pluginOrder[pluginOrder['textShadow'] = textShadow] = 'textShadow';
6055 const fontStyle = 8300; pluginOrder[pluginOrder['fontStyle'] = fontStyle] = 'fontStyle';
6056 const textTransform = 8400; pluginOrder[pluginOrder['textTransform'] = textTransform] = 'textTransform';
6057 const textDecorationStyle = 8450; pluginOrder[pluginOrder['textDecorationStyle'] = textDecorationStyle] = 'textDecorationStyle';
6058 const textDecorationLength = 8455; pluginOrder[pluginOrder['textDecorationLength'] = textDecorationLength] = 'textDecorationLength';
6059 const textDecorationColor = 8460; pluginOrder[pluginOrder['textDecorationColor'] = textDecorationColor] = 'textDecorationColor';
6060 const textDecorationOpacity = 8470; pluginOrder[pluginOrder['textDecorationOpacity'] = textDecorationOpacity] = 'textDecorationOpacity';
6061 const textDecorationOffset = 8480; pluginOrder[pluginOrder['textDecorationOffset'] = textDecorationOffset] = 'textDecorationOffset';
6062 const textDecoration = 8500; pluginOrder[pluginOrder['textDecoration'] = textDecoration] = 'textDecoration';
6063 const textIndent = 8550; pluginOrder[pluginOrder['textIndent'] = textIndent] = 'textIndent';
6064 const textStrokeColor = 8560; pluginOrder[pluginOrder['textStrokeColor'] = textStrokeColor] = 'textStrokeColor';
6065 const textStrokeWidth = 8570; pluginOrder[pluginOrder['textStrokeWidth'] = textStrokeWidth] = 'textStrokeWidth';
6066 const content = 8580; pluginOrder[pluginOrder['content'] = content] = 'content';
6067 const fontSmoothing = 8600; pluginOrder[pluginOrder['fontSmoothing'] = fontSmoothing] = 'fontSmoothing';
6068 const fontVariantNumeric = 8700; pluginOrder[pluginOrder['fontVariantNumeric'] = fontVariantNumeric] = 'fontVariantNumeric';
6069 const letterSpacing = 8800; pluginOrder[pluginOrder['letterSpacing'] = letterSpacing] = 'letterSpacing';
6070 const userSelect = 8900; pluginOrder[pluginOrder['userSelect'] = userSelect] = 'userSelect';
6071 const verticalAlign = 9000; pluginOrder[pluginOrder['verticalAlign'] = verticalAlign] = 'verticalAlign';
6072 const visibility = 9100; pluginOrder[pluginOrder['visibility'] = visibility] = 'visibility';
6073 const backfaceVisibility = 9150; pluginOrder[pluginOrder['backfaceVisibility'] = backfaceVisibility] = 'backfaceVisibility';
6074 const whitespace = 9200; pluginOrder[pluginOrder['whitespace'] = whitespace] = 'whitespace';
6075 const wordBreak = 9300; pluginOrder[pluginOrder['wordBreak'] = wordBreak] = 'wordBreak';
6076 const writingMode = 9340; pluginOrder[pluginOrder['writingMode'] = writingMode] = 'writingMode';
6077 const hyphens = 9350; pluginOrder[pluginOrder['hyphens'] = hyphens] = 'hyphens';
6078 const width = 9400; pluginOrder[pluginOrder['width'] = width] = 'width';
6079 const zIndex = 9500; pluginOrder[pluginOrder['zIndex'] = zIndex] = 'zIndex';
6080 const isolation = 9550; pluginOrder[pluginOrder['isolation'] = isolation] = 'isolation';
6081 const gap = 9600; pluginOrder[pluginOrder['gap'] = gap] = 'gap';
6082 const gridAutoFlow = 9700; pluginOrder[pluginOrder['gridAutoFlow'] = gridAutoFlow] = 'gridAutoFlow';
6083 const gridTemplateColumns = 9800; pluginOrder[pluginOrder['gridTemplateColumns'] = gridTemplateColumns] = 'gridTemplateColumns';
6084 const gridAutoColumns = 9900; pluginOrder[pluginOrder['gridAutoColumns'] = gridAutoColumns] = 'gridAutoColumns';
6085 const gridColumn = 10000; pluginOrder[pluginOrder['gridColumn'] = gridColumn] = 'gridColumn';
6086 const gridColumnStart = 10100; pluginOrder[pluginOrder['gridColumnStart'] = gridColumnStart] = 'gridColumnStart';
6087 const gridColumnEnd = 10200; pluginOrder[pluginOrder['gridColumnEnd'] = gridColumnEnd] = 'gridColumnEnd';
6088 const gridTemplateRows = 10300; pluginOrder[pluginOrder['gridTemplateRows'] = gridTemplateRows] = 'gridTemplateRows';
6089 const gridAutoRows = 10400; pluginOrder[pluginOrder['gridAutoRows'] = gridAutoRows] = 'gridAutoRows';
6090 const gridRow = 10500; pluginOrder[pluginOrder['gridRow'] = gridRow] = 'gridRow';
6091 const gridRowStart = 10600; pluginOrder[pluginOrder['gridRowStart'] = gridRowStart] = 'gridRowStart';
6092 const gridRowEnd = 10700; pluginOrder[pluginOrder['gridRowEnd'] = gridRowEnd] = 'gridRowEnd';
6093 const transform = 10800; pluginOrder[pluginOrder['transform'] = transform] = 'transform';
6094 const transformOrigin = 10900; pluginOrder[pluginOrder['transformOrigin'] = transformOrigin] = 'transformOrigin';
6095 const scale = 11000; pluginOrder[pluginOrder['scale'] = scale] = 'scale';
6096 const rotate = 11100; pluginOrder[pluginOrder['rotate'] = rotate] = 'rotate';
6097 const translate = 11200; pluginOrder[pluginOrder['translate'] = translate] = 'translate';
6098 const skew = 11300; pluginOrder[pluginOrder['skew'] = skew] = 'skew';
6099 const perspective = 11350; pluginOrder[pluginOrder['perspective'] = perspective] = 'perspective';
6100 const perspectiveOrigin = 11360; pluginOrder[pluginOrder['perspectiveOrigin'] = perspectiveOrigin] = 'perspectiveOrigin';
6101 const transitionProperty = 11400; pluginOrder[pluginOrder['transitionProperty'] = transitionProperty] = 'transitionProperty';
6102 const transitionTimingFunction = 11500; pluginOrder[pluginOrder['transitionTimingFunction'] = transitionTimingFunction] = 'transitionTimingFunction';
6103 const transitionDuration = 11600; pluginOrder[pluginOrder['transitionDuration'] = transitionDuration] = 'transitionDuration';
6104 const transitionDelay = 11700; pluginOrder[pluginOrder['transitionDelay'] = transitionDelay] = 'transitionDelay';
6105 const keyframes = 11800; pluginOrder[pluginOrder['keyframes'] = keyframes] = 'keyframes';
6106 const animation = 11900; pluginOrder[pluginOrder['animation'] = animation] = 'animation';
6107 const imageRendering = 11950; pluginOrder[pluginOrder['imageRendering'] = imageRendering] = 'imageRendering';
6108 const mixBlendMode = 12000; pluginOrder[pluginOrder['mixBlendMode'] = mixBlendMode] = 'mixBlendMode';
6109 const backgroundBlendMode = 12100; pluginOrder[pluginOrder['backgroundBlendMode'] = backgroundBlendMode] = 'backgroundBlendMode';
6110 const filter = 12200; pluginOrder[pluginOrder['filter'] = filter] = 'filter';
6111 const blur = 12300; pluginOrder[pluginOrder['blur'] = blur] = 'blur';
6112 const brightness = 12400; pluginOrder[pluginOrder['brightness'] = brightness] = 'brightness';
6113 const contrast = 12500; pluginOrder[pluginOrder['contrast'] = contrast] = 'contrast';
6114 const dropShadow = 12600; pluginOrder[pluginOrder['dropShadow'] = dropShadow] = 'dropShadow';
6115 const grayscale = 12700; pluginOrder[pluginOrder['grayscale'] = grayscale] = 'grayscale';
6116 const hueRotate = 12800; pluginOrder[pluginOrder['hueRotate'] = hueRotate] = 'hueRotate';
6117 const invert = 12900; pluginOrder[pluginOrder['invert'] = invert] = 'invert';
6118 const saturate = 13000; pluginOrder[pluginOrder['saturate'] = saturate] = 'saturate';
6119 const sepia = 13100; pluginOrder[pluginOrder['sepia'] = sepia] = 'sepia';
6120 const backdropFilter = 13200; pluginOrder[pluginOrder['backdropFilter'] = backdropFilter] = 'backdropFilter';
6121 const backdropBlur = 13300; pluginOrder[pluginOrder['backdropBlur'] = backdropBlur] = 'backdropBlur';
6122 const backdropBrightness = 13400; pluginOrder[pluginOrder['backdropBrightness'] = backdropBrightness] = 'backdropBrightness';
6123 const backdropContrast = 13500; pluginOrder[pluginOrder['backdropContrast'] = backdropContrast] = 'backdropContrast';
6124 const backdropGrayscale = 13600; pluginOrder[pluginOrder['backdropGrayscale'] = backdropGrayscale] = 'backdropGrayscale';
6125 const backdropHueRotate = 13700; pluginOrder[pluginOrder['backdropHueRotate'] = backdropHueRotate] = 'backdropHueRotate';
6126 const backdropInvert = 13800; pluginOrder[pluginOrder['backdropInvert'] = backdropInvert] = 'backdropInvert';
6127 const backdropOpacity = 13900; pluginOrder[pluginOrder['backdropOpacity'] = backdropOpacity] = 'backdropOpacity';
6128 const backdropSaturate = 14000; pluginOrder[pluginOrder['backdropSaturate'] = backdropSaturate] = 'backdropSaturate';
6129 const backdropSepia = 14100; pluginOrder[pluginOrder['backdropSepia'] = backdropSepia] = 'backdropSepia';
6130})(pluginOrder || (pluginOrder = {}));
6131
6132function _nullishCoalesce$2(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
6133
6134
6135
6136function isNumberLead(i) {
6137 return /^\d/.test(i) ? i : undefined;
6138}
6139
6140function notNumberLead(i) {
6141 return /^\d/.test(i) ? undefined : i;
6142}
6143
6144// https://windicss.org/utilities/container.html
6145function container(utility, { theme }) {
6146 if (utility.raw === 'container') {
6147 const className = utility.class;
6148 const baseStyle = new Container(utility.class, new Property('width', '100%'));
6149 const paddingDefault = toType(theme('container.padding'), 'string') ? toType(theme('container.padding'), 'string') : toType(theme('container.padding.DEFAULT'), 'string');
6150
6151 if (paddingDefault) {
6152 baseStyle.add(new Property('padding-left', paddingDefault));
6153 baseStyle.add(new Property('padding-right', paddingDefault));
6154 }
6155
6156 const center = theme('container.center');
6157
6158 if (center && typeof center === 'boolean'){
6159 baseStyle.add(new Property(['margin-left', 'margin-right'], 'auto'));
6160 }
6161
6162 const output = [baseStyle];
6163 const screens = toType(theme('container.screens', theme('screens')), 'object');
6164
6165 for (const [screen, size] of Object.entries(screens)) {
6166 if (!isString(size)) continue;
6167 const props = [new Property('max-width', `${size}`)];
6168 const padding = theme(`container.padding.${screen}`);
6169 if (padding && typeof padding === 'string') {
6170 props.push(new Property('padding-left', padding));
6171 props.push(new Property('padding-right', padding));
6172 }
6173 output.push(new Container(className, props).atRule(`@media (min-width: ${size})`));
6174 }
6175
6176 output.forEach(style => style.updateMeta('utilities', 'container', pluginOrder.container, 0, true));
6177
6178 return output;
6179 }
6180}
6181
6182// https://windicss.org/utilities/positioning.html#object-position
6183function objectPosition(utility, { theme }) {
6184 return _optionalChain$1([utility, 'access', _ => _.handler
6185, 'access', _2 => _2.handleBody, 'call', _3 => _3(theme('objectPosition'))
6186, 'access', _4 => _4.createProperty, 'call', _5 => _5(['-o-object-position', 'object-position'])
6187, 'optionalAccess', _6 => _6.updateMeta, 'call', _7 => _7('utilities', 'objectPosition', pluginOrder.objectPosition, 0, true)]);
6188}
6189
6190// https://windicss.org/utilities/positioning.html#top-right-bottom-left
6191function inset(utility, { theme }) {
6192 return utility.handler
6193 .handleStatic(theme('inset'))
6194 .handleSquareBrackets()
6195 .handleSpacing()
6196 .handleFraction()
6197 .handleSize()
6198 .handleNegative()
6199 .handleVariable()
6200 .callback(value => {
6201 switch (utility.identifier) {
6202 case 'top':
6203 case 'right':
6204 case 'bottom':
6205 case 'left':
6206 return new Property(utility.identifier, value).updateMeta('utilities', 'inset', pluginOrder.inset, 4, true);
6207 case 'inset':
6208 if (utility.raw.match(/^-?inset-x/)) return new Property(['right', 'left'], value).updateMeta('utilities', 'inset', pluginOrder.inset, 3, true);
6209 if (utility.raw.match(/^-?inset-y/)) return new Property(['top', 'bottom'], value).updateMeta('utilities', 'inset', pluginOrder.inset, 2, true);
6210 return new Property(['top', 'right', 'bottom', 'left'], value).updateMeta('utilities', 'inset', pluginOrder.inset, 1, true);
6211 }
6212 });
6213}
6214
6215// https://windicss.org/utilities/positioning.html#z-index
6216function zIndex(utility, { theme }) {
6217 return _optionalChain$1([utility, 'access', _8 => _8.handler
6218, 'access', _9 => _9.handleStatic, 'call', _10 => _10(theme('zIndex'))
6219, 'access', _11 => _11.handleNumber, 'call', _12 => _12(0, 99999, 'int')
6220, 'access', _13 => _13.handleNegative, 'call', _14 => _14()
6221, 'access', _15 => _15.handleVariable, 'call', _16 => _16()
6222, 'access', _17 => _17.createProperty, 'call', _18 => _18('z-index')
6223, 'optionalAccess', _19 => _19.updateMeta, 'call', _20 => _20('utilities', 'zIndex', pluginOrder.zIndex, 0, true)]);
6224}
6225
6226// https://windicss.org/utilities/flexbox.html#flex
6227// https://windicss.org/utilities/flexbox.html#flex-grow
6228// https://windicss.org/utilities/flexbox.html#flex-shrink
6229function flex(utility, { theme }) {
6230 const className = utility.raw;
6231 if (className.startsWith('flex-grow')) {
6232 const map = toType(theme('flexGrow'), 'object') ;
6233 const amount = className.replace(/flex-grow-?/, '') || 'DEFAULT';
6234 if (Object.keys(map).includes(amount)) return new Property(['-webkit-box-flex', '-ms-flex-positive', '-webkit-flex-grow', 'flex-grow'], map[amount]).toStyle(utility.class).updateMeta('utilities', 'flexGrow', pluginOrder.flexGrow, 0, true);
6235 return _optionalChain$1([utility, 'access', _21 => _21.handler, 'access', _22 => _22.handleSquareBrackets, 'call', _23 => _23(), 'access', _24 => _24.createProperty, 'call', _25 => _25(['-webkit-box-flex', '-ms-flex-positive', '-webkit-flex-grow', 'flex-grow']), 'optionalAccess', _26 => _26.updateMeta, 'call', _27 => _27('utilities', 'flexGrow', pluginOrder.flexGrow, 1, true)]);
6236 } else if (className.startsWith('flex-shrink')) {
6237 const map = toType(theme('flexShrink'), 'object') ;
6238 const amount = className.replace(/flex-shrink-?/, '') || 'DEFAULT';
6239 if (Object.keys(map).includes(amount)) return new Property(['-ms-flex-negative', '-webkit-flex-shrink', 'flex-shrink'], map[amount]).toStyle(utility.class).updateMeta('utilities', 'flexShrink', pluginOrder.flexShrink, 0, true);
6240 return _optionalChain$1([utility, 'access', _28 => _28.handler, 'access', _29 => _29.handleSquareBrackets, 'call', _30 => _30(), 'access', _31 => _31.createProperty, 'call', _32 => _32(['-ms-flex-negative', '-webkit-flex-shrink', 'flex-shrink']), 'optionalAccess', _33 => _33.updateMeta, 'call', _34 => _34('utilities', 'flexShrink', pluginOrder.flexShrink, 1, true)]);
6241 } else {
6242 return _optionalChain$1([utility, 'access', _35 => _35.handler, 'access', _36 => _36.handleStatic, 'call', _37 => _37(theme('flex')), 'access', _38 => _38.handleSquareBrackets, 'call', _39 => _39(), 'access', _40 => _40.createStyle, 'call', _41 => _41(utility.class, value => {
6243 value = value.trim();
6244 return [
6245 new Property('-webkit-box-flex', value.startsWith('0') || value === 'none' ? '0' : '1'),
6246 new Property(['-ms-flex', '-webkit-flex', 'flex'], value),
6247 ];
6248 }), 'optionalAccess', _42 => _42.updateMeta, 'call', _43 => _43('utilities', 'flex', pluginOrder.flex, 0, true)]);
6249 }
6250}
6251
6252// https://windicss.org/utilities/positioning.html#order
6253function order(utility, { theme }) {
6254 return _optionalChain$1([utility, 'access', _44 => _44.handler
6255, 'access', _45 => _45.handleStatic, 'call', _46 => _46(theme('order'))
6256, 'access', _47 => _47.handleNumber, 'call', _48 => _48(1, 9999, 'int')
6257, 'access', _49 => _49.handleNegative, 'call', _50 => _50()
6258, 'access', _51 => _51.handleVariable, 'call', _52 => _52()
6259, 'access', _53 => _53.createStyle, 'call', _54 => _54(utility.class, (value) => [
6260 new Property('-webkit-box-ordinal-group', value.includes('var') ? `calc(${value}+1)` : (parseInt(value) + 1).toString()),
6261 new Property(['-webkit-order', '-ms-flex-order', 'order'], value),
6262 ])
6263, 'optionalAccess', _55 => _55.updateMeta, 'call', _56 => _56('utilities', 'order', pluginOrder.order, utility.raw.charAt(0) === '-' ? 2 : 1, true)]);
6264}
6265
6266// https://windicss.org/utilities/grid.html#grid-template-columns
6267// https://windicss.org/utilities/grid.html#grid-template-rows
6268function gridTemplate(utility, { theme }) {
6269 const type = utility.raw.match(/^grid-rows-/) ? 'rows' : utility.raw.match(/^grid-cols-/) ? 'columns' : undefined;
6270 if (!type) return;
6271 const group = type === 'rows'? 'gridTemplateRows' : 'gridTemplateColumns';
6272 return _optionalChain$1([utility, 'access', _57 => _57.handler
6273, 'access', _58 => _58.handleStatic, 'call', _59 => _59(theme(group))
6274, 'access', _60 => _60.handleSquareBrackets, 'call', _61 => _61(i => i.replace(/\(.*?\)|,/g, (r) => r === ',' ? ' ' : r /* ignore content inside nested-brackets */ ))
6275, 'access', _62 => _62.createProperty, 'call', _63 => _63(`grid-template-${type}`, (value) => value === 'none' ? 'none' : value)
6276, 'optionalAccess', _64 => _64.updateMeta, 'call', _65 => _65('utilities', group, pluginOrder[group], 1, true)])
6277 || _optionalChain$1([utility, 'access', _66 => _66.handler
6278, 'access', _67 => _67.handleNumber, 'call', _68 => _68(1, undefined, 'int')
6279, 'access', _69 => _69.handleVariable, 'call', _70 => _70()
6280, 'access', _71 => _71.createProperty, 'call', _72 => _72(`grid-template-${type}`, (value) => `repeat(${value}, minmax(0, 1fr))`)
6281, 'optionalAccess', _73 => _73.updateMeta, 'call', _74 => _74('utilities', group, pluginOrder[group], 2, true)]);
6282}
6283
6284// https://windicss.org/utilities/grid.html#grid-column-span
6285// https://windicss.org/utilities/grid.html#grid-column-start
6286// https://windicss.org/utilities/grid.html#grid-column-end
6287function gridColumn(utility, { theme }) {
6288 const body = utility.body;
6289 // col span
6290 const spans = toType(theme('gridColumn'), 'object') ;
6291 if (Object.keys(spans).includes(body)) return new Property(['-ms-grid-column-span', 'grid-column'], spans[body]).updateMeta('utilities', 'gridColumn', pluginOrder.gridColumn, 1, true);
6292 if (utility.raw.startsWith('col-span')) {
6293 return _optionalChain$1([utility, 'access', _75 => _75.handler
6294, 'access', _76 => _76.handleNumber, 'call', _77 => _77(1, undefined, 'int')
6295, 'access', _78 => _78.handleVariable, 'call', _79 => _79()
6296, 'access', _80 => _80.createProperty, 'call', _81 => _81(['-ms-grid-column-span', 'grid-column'], (value) => `span ${value} / span ${value}`)
6297, 'optionalAccess', _82 => _82.updateMeta, 'call', _83 => _83('utilities', 'gridColumn', pluginOrder.gridColumn, 1, true)]);
6298 }
6299 // col end
6300 if (utility.raw.startsWith('col-end')) {
6301 return _optionalChain$1([utility, 'access', _84 => _84.handler
6302, 'access', _85 => _85.handleStatic, 'call', _86 => _86(theme('gridColumnEnd'))
6303, 'access', _87 => _87.handleSquareBrackets, 'call', _88 => _88()
6304, 'access', _89 => _89.handleNumber, 'call', _90 => _90(1, undefined, 'int')
6305, 'access', _91 => _91.handleVariable, 'call', _92 => _92()
6306, 'access', _93 => _93.createProperty, 'call', _94 => _94('grid-column-end')
6307, 'optionalAccess', _95 => _95.updateMeta, 'call', _96 => _96('utilities', 'gridColumnEnd', pluginOrder.gridColumnEnd, 1, true)]);
6308 }
6309 // col start
6310 if (utility.raw.startsWith('col-start')) {
6311 return _optionalChain$1([utility, 'access', _97 => _97.handler
6312, 'access', _98 => _98.handleStatic, 'call', _99 => _99(theme('gridColumnStart'))
6313, 'access', _100 => _100.handleSquareBrackets, 'call', _101 => _101()
6314, 'access', _102 => _102.handleNumber, 'call', _103 => _103(1, undefined, 'int')
6315, 'access', _104 => _104.handleVariable, 'call', _105 => _105()
6316, 'access', _106 => _106.createProperty, 'call', _107 => _107('grid-column-start')
6317, 'optionalAccess', _108 => _108.updateMeta, 'call', _109 => _109('utilities', 'gridColumnStart', pluginOrder.gridColumnStart, 1, true)]);
6318 }
6319 return _optionalChain$1([utility, 'access', _110 => _110.handler
6320, 'access', _111 => _111.handleSquareBrackets, 'call', _112 => _112()
6321, 'access', _113 => _113.createProperty, 'call', _114 => _114(['-ms-grid-column-span', 'grid-column'], (value) => `span ${value} / span ${value}`)
6322, 'optionalAccess', _115 => _115.updateMeta, 'call', _116 => _116('utilities', 'gridColumn', pluginOrder.gridColumn, 1, true)]);
6323}
6324
6325// https://windicss.org/utilities/grid.html#grid-row-span
6326// https://windicss.org/utilities/grid.html#grid-row-start
6327// https://windicss.org/utilities/grid.html#grid-row-end
6328function gridRow(utility, { theme }) {
6329 const body = utility.body;
6330 // row span
6331 const spans = toType(theme('gridRow'), 'object') ;
6332 if (Object.keys(spans).includes(body)) return new Property(['-ms-grid-row-span', 'grid-row'], spans[body]).updateMeta('utilities', 'gridRow', pluginOrder.gridRow, 1, true);
6333 if (utility.raw.startsWith('row-span')) {
6334 return _optionalChain$1([utility, 'access', _117 => _117.handler
6335, 'access', _118 => _118.handleNumber, 'call', _119 => _119(1, undefined, 'int')
6336, 'access', _120 => _120.handleVariable, 'call', _121 => _121()
6337, 'access', _122 => _122.createProperty, 'call', _123 => _123(['-ms-grid-row-span', 'grid-row'], (value) => `span ${value} / span ${value}`)
6338, 'optionalAccess', _124 => _124.updateMeta, 'call', _125 => _125('utilities', 'gridRow', pluginOrder.gridRow, 2, true)]);
6339 }
6340 // row end
6341 if (utility.raw.startsWith('row-end')) {
6342 return _optionalChain$1([utility, 'access', _126 => _126.handler
6343, 'access', _127 => _127.handleStatic, 'call', _128 => _128(theme('gridRowEnd'))
6344, 'access', _129 => _129.handleSquareBrackets, 'call', _130 => _130()
6345, 'access', _131 => _131.handleNumber, 'call', _132 => _132(1, undefined, 'int')
6346, 'access', _133 => _133.handleVariable, 'call', _134 => _134()
6347, 'access', _135 => _135.createProperty, 'call', _136 => _136('grid-row-end')
6348, 'optionalAccess', _137 => _137.updateMeta, 'call', _138 => _138('utilities', 'gridRowEnd', pluginOrder.gridRowEnd, 1, true)]);
6349 }
6350 // row start
6351 if (utility.raw.startsWith('row-start')) {
6352 return _optionalChain$1([utility, 'access', _139 => _139.handler
6353, 'access', _140 => _140.handleStatic, 'call', _141 => _141(theme('gridRowStart'))
6354, 'access', _142 => _142.handleSquareBrackets, 'call', _143 => _143()
6355, 'access', _144 => _144.handleNumber, 'call', _145 => _145(1, undefined, 'int')
6356, 'access', _146 => _146.handleVariable, 'call', _147 => _147()
6357, 'access', _148 => _148.createProperty, 'call', _149 => _149('grid-row-start')
6358, 'optionalAccess', _150 => _150.updateMeta, 'call', _151 => _151('utilities', 'gridRowStart', pluginOrder.gridRowStart, 1, true)]);
6359 }
6360 return _optionalChain$1([utility, 'access', _152 => _152.handler
6361, 'access', _153 => _153.handleSquareBrackets, 'call', _154 => _154()
6362, 'access', _155 => _155.createProperty, 'call', _156 => _156(['-ms-grid-row-span', 'grid-row'], (value) => `span ${value} / span ${value}`)
6363, 'optionalAccess', _157 => _157.updateMeta, 'call', _158 => _158('utilities', 'gridRow', pluginOrder.gridRow, 2, true)]);
6364}
6365
6366// https://windicss.org/utilities/grid.html#grid-auto-columns
6367// https://windicss.org/utilities/grid.html#grid-auto-rows
6368function gridAuto(utility, { theme }) {
6369 const type = utility.raw.startsWith('auto-cols') ? 'columns' : utility.raw.startsWith('auto-rows') ? 'rows' : undefined;
6370 if (!type) return;
6371 const group = type === 'columns' ? 'gridAutoColumns' : 'gridAutoRows';
6372 const value = utility.handler.handleStatic(theme(group)).value;
6373 if (value) {
6374 const prefixer = minMaxContent(value);
6375 if (typeof prefixer === 'string') return new Property(`grid-auto-${type}`, prefixer).updateMeta('utilities', group, pluginOrder[group], 1, true);
6376 return new Style(utility.class, prefixer.map((i) => new Property(`grid-auto-${type}`, i))).updateMeta('utilities', group, pluginOrder[group], 2, true);
6377 }
6378}
6379
6380// https://windicss.org/utilities/grid.html#gap
6381function gap(utility, { theme, config }) {
6382 return utility.handler
6383 .handleStatic(theme('gap'))
6384 .handleSquareBrackets()
6385 .handleSpacing()
6386 .handleSize()
6387 .handleVariable()
6388 .callback(value => {
6389 if (utility.raw.match(/^gap-x-/)) return new Property(config('prefixer') ? ['-webkit-column-gap', '-moz-column-gap', 'grid-column-gap', 'column-gap'] : 'column-gap', value).updateMeta('utilities', 'gap', pluginOrder.gap, 2, true);
6390 if (utility.raw.match(/^gap-y-/)) return new Property(config('prefixer') ? ['-webkit-row-gap', '-moz-row-gap', 'grid-row-gap', 'row-gap'] : 'row-gap', value).updateMeta('utilities', 'gap', pluginOrder.gap, 3, true);
6391 return new Property(config('prefixer') ? ['grid-gap', 'gap'] : 'gap', value).updateMeta('utilities', 'gap', pluginOrder.gap, 1, true);
6392 });
6393}
6394
6395// https://windicss.org/utilities/spacing.html#padding
6396function padding(utility, { theme }) {
6397 return utility.handler
6398 .handleStatic(theme('padding'))
6399 .handleSquareBrackets()
6400 .handleSpacing()
6401 .handleFraction()
6402 .handleSize()
6403 .handleVariable()
6404 .callback(value => {
6405 const directions = expandDirection(utility.identifier.substring(1), false);
6406 if (directions) {
6407 if (directions[0] === '*') return new Property('padding', value).updateMeta('utilities', 'padding', pluginOrder.padding, -4, true);
6408 return new Property(directions.map((i) => `padding-${i}`), value).updateMeta('utilities', 'padding', pluginOrder.padding, -directions.length, true);
6409 }
6410 });
6411}
6412
6413// https://windicss.org/utilities/spacing.html#margin
6414function margin(utility, { theme }) {
6415 return utility.handler
6416 .handleStatic(theme('margin'))
6417 .handleSquareBrackets()
6418 .handleSpacing()
6419 .handleFraction()
6420 .handleSize()
6421 .handleNegative()
6422 .handleVariable()
6423 .callback(value => {
6424 const directions = expandDirection(utility.identifier.substring(1), false);
6425 if (directions) {
6426 if (directions[0] === '*') return new Property('margin', value).updateMeta('utilities', 'margin', pluginOrder.margin, -4, true);
6427 return new Property(directions.map((i) => `margin-${i}`), value).updateMeta('utilities', 'margin', pluginOrder.margin, -directions.length, true);
6428 }
6429 });
6430}
6431
6432// https://windicss.org/utilities/spacing.html#space-between-y
6433function space(utility, { theme }) {
6434 if (utility.raw === 'space-x-reverse') {
6435 return new Style(utility.class, [
6436 new Property('--tw-space-x-reverse', '1'),
6437 ]).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'space', pluginOrder.space, 6, true);
6438 }
6439 if (utility.raw === 'space-y-reverse') {
6440 return new Style(utility.class, [
6441 new Property('--tw-space-y-reverse', '1'),
6442 ]).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'space', pluginOrder.space, 5, true);
6443 }
6444 return utility.handler
6445 .handleStatic(theme('space'))
6446 .handleSquareBrackets()
6447 .handleSpacing()
6448 .handleSize()
6449 .handleNegative()
6450 .handleVariable()
6451 .callback(value => {
6452 if (utility.raw.match(/^-?space-x-/)) {
6453 return new Style(utility.class, [
6454 new Property('--tw-space-x-reverse', '0'),
6455 new Property('margin-right', `calc(${value} * var(--tw-space-x-reverse))`),
6456 new Property('margin-left', `calc(${value} * calc(1 - var(--tw-space-x-reverse)))`),
6457 ]).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'space', pluginOrder.space, (utility.raw.charAt(0) === '-' ? 4 : 2), true);
6458 }
6459 if (utility.raw.match(/^-?space-y-/)) {
6460 return new Style(utility.class, [
6461 new Property('--tw-space-y-reverse', '0'),
6462 new Property('margin-top', `calc(${value} * calc(1 - var(--tw-space-y-reverse)))`),
6463 new Property('margin-bottom', `calc(${value} * var(--tw-space-y-reverse))`),
6464 ]).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'space', pluginOrder.space, (utility.raw.charAt(0) === '-' ? 3 : 1), true);
6465 }
6466 });
6467}
6468
6469// https://windicss.org/utilities/sizing.html#width
6470// https://windicss.org/utilities/sizing.html#height
6471function size(utility, { theme }) {
6472 const name = utility.identifier === 'w' ? 'width' : 'height';
6473 const body = utility.body;
6474 const sizes = toType(theme(name), 'object') ;
6475 // handle static
6476 if (Object.keys(sizes).includes(body)) {
6477 const value = sizes[body];
6478 if (value === 'min-content') {
6479 return new Style(utility.class, [
6480 new Property(name, '-webkit-min-content'),
6481 new Property(name, '-moz-min-content'),
6482 new Property(name, 'min-content'),
6483 ]).updateMeta('utilities', name, pluginOrder[name], 2, true);
6484 }
6485 if (value === 'max-content') {
6486 return new Style(utility.class, [
6487 new Property(name, '-webkit-max-content'),
6488 new Property(name, '-moz-max-content'),
6489 new Property(name, 'max-content'),
6490 ]).updateMeta('utilities', name, pluginOrder[name], 3, true);
6491 }
6492 return new Style(utility.class, new Property(name, value)).updateMeta('utilities', name, pluginOrder[name], 1, true);
6493 }
6494 return _optionalChain$1([utility, 'access', _159 => _159.handler
6495, 'access', _160 => _160.handleSquareBrackets, 'call', _161 => _161()
6496, 'access', _162 => _162.handleSpacing, 'call', _163 => _163()
6497, 'access', _164 => _164.handleFraction, 'call', _165 => _165()
6498, 'access', _166 => _166.handleSize, 'call', _167 => _167()
6499, 'access', _168 => _168.handleNxl, 'call', _169 => _169((number) => `${(number - 3) * 8 + 48}rem`)
6500, 'access', _170 => _170.handleVariable, 'call', _171 => _171()
6501, 'access', _172 => _172.createProperty, 'call', _173 => _173(name)
6502, 'optionalAccess', _174 => _174.updateMeta, 'call', _175 => _175('utilities', name, pluginOrder[name], 4, true)]);
6503}
6504
6505// https://windicss.org/utilities/sizing.html#min-width
6506// https://windicss.org/utilities/sizing.html#min-height
6507// https://windicss.org/utilities/sizing.html#max-width
6508// https://windicss.org/utilities/sizing.html#max-height
6509function minMaxSize(utility, { theme }) {
6510 if (!utility.raw.match(/^(min|max)-[w|h]-/))
6511 return;
6512 const body = utility.raw.replace(/^(min|max)-[w|h]-/, '');
6513 const prop = utility.raw.substring(0, 5).replace('h', 'height').replace('w', 'width');
6514 const group = dashToCamel(prop) ;
6515 const sizes = toType(theme(group), 'object') ;
6516 // handle static
6517 if (Object.keys(sizes).includes(body)) {
6518 const value = sizes[body];
6519 if (value === 'min-content') {
6520 return new Style(utility.class, [
6521 new Property(prop, '-webkit-min-content'),
6522 new Property(prop, '-moz-min-content'),
6523 new Property(prop, 'min-content'),
6524 ]).updateMeta('utilities', group, pluginOrder[group], 2, true);
6525 }
6526 if (value === 'max-content') {
6527 return new Style(utility.class, [
6528 new Property(prop, '-webkit-max-content'),
6529 new Property(prop, '-moz-max-content'),
6530 new Property(prop, 'max-content'),
6531 ]).updateMeta('utilities', group, pluginOrder[group], 3, true);
6532 }
6533 return new Style(utility.class, new Property(prop, value)).updateMeta('utilities', group, pluginOrder[group], 1, true);
6534 }
6535
6536 return _optionalChain$1([utility, 'access', _176 => _176.handler
6537, 'access', _177 => _177.handleSquareBrackets, 'call', _178 => _178()
6538, 'access', _179 => _179.handleSpacing, 'call', _180 => _180()
6539, 'access', _181 => _181.handleFraction, 'call', _182 => _182()
6540, 'access', _183 => _183.handleSize, 'call', _184 => _184()
6541, 'access', _185 => _185.handleNxl, 'call', _186 => _186((number) => `${(number - 3) * 8 + 48}rem`)
6542, 'access', _187 => _187.handleVariable, 'call', _188 => _188()
6543, 'access', _189 => _189.createProperty, 'call', _190 => _190(prop)
6544, 'optionalAccess', _191 => _191.updateMeta, 'call', _192 => _192('utilities', group, pluginOrder[group], 4, true)]);
6545}
6546
6547// https://windicss.org/utilities/typography.html#text-opacity
6548// https://windicss.org/utilities/typography.html#text-shadow
6549// https://windicss.org/utilities/typography.html#text-stroke
6550// https://windicss.org/utilities/typography.html#text-color
6551// https://windicss.org/utilities/typography.html#font-size
6552function text(utility, { theme }) {
6553 // handle font opacity
6554 if (utility.raw.startsWith('text-opacity')) {
6555 return _optionalChain$1([utility, 'access', _193 => _193.handler
6556, 'access', _194 => _194.handleStatic, 'call', _195 => _195(theme('textOpacity'))
6557, 'access', _196 => _196.handleNumber, 'call', _197 => _197(0, 100, 'int', (number) => (number / 100).toString())
6558, 'access', _198 => _198.handleVariable, 'call', _199 => _199()
6559, 'access', _200 => _200.createProperty, 'call', _201 => _201('--tw-text-opacity')
6560, 'optionalAccess', _202 => _202.updateMeta, 'call', _203 => _203('utilities', 'textOpacity', pluginOrder.textOpacity, 1, true)]);
6561 }
6562 if (utility.raw.startsWith('text-shadow')) {
6563 return _optionalChain$1([(utility.raw === 'text-shadow'
6564 ? new Property('text-shadow', theme('textShadow.DEFAULT', '0px 0px 1px rgb(0 0 0 / 20%), 0px 0px 1px rgb(1 0 5 / 10%)') )
6565 : utility.handler
6566 .handleStatic(theme('textShadow'))
6567 .createProperty('text-shadow')
6568 ), 'optionalAccess', _204 => _204.updateMeta, 'call', _205 => _205('utilities', 'textShadow', pluginOrder.textShadow, 1, true)]);
6569 }
6570 if (utility.raw.startsWith('text-stroke')) {
6571 if (utility.raw === 'text-stroke') return new Style('text-stroke', [
6572 new Property('-webkit-text-stroke-color', theme('textStrokeColor.DEFAULT', '#e4e4e7') ),
6573 new Property('-webkit-text-stroke-width', theme('textStrokeWidth.DEFAULT', 'medium') ),
6574 ]).updateMeta('utilities', 'textStrokeColor', pluginOrder.textStrokeColor, 1, true);
6575
6576 if (utility.raw.startsWith('text-stroke-opacity')) {
6577 return _optionalChain$1([utility, 'access', _206 => _206.handler
6578, 'access', _207 => _207.handleStatic, 'call', _208 => _208(theme('opacity'))
6579, 'access', _209 => _209.handleNumber, 'call', _210 => _210(0, 100, 'int', (number) => (number / 100).toString())
6580, 'access', _211 => _211.handleVariable, 'call', _212 => _212()
6581, 'access', _213 => _213.createProperty, 'call', _214 => _214('--tw-ring-offset-opacity')
6582, 'optionalAccess', _215 => _215.updateMeta, 'call', _216 => _216('utilities', 'textStrokeColor', pluginOrder.textStrokeColor, 3, true)]);
6583 }
6584
6585 return _optionalChain$1([utility, 'access', _217 => _217.clone, 'call', _218 => _218('textStroke' + utility.raw.slice(11)), 'access', _219 => _219.handler
6586, 'access', _220 => _220.handleColor, 'call', _221 => _221(theme('textStrokeColor'))
6587, 'access', _222 => _222.handleOpacity, 'call', _223 => _223(theme('opacity'))
6588, 'access', _224 => _224.handleVariable, 'call', _225 => _225()
6589, 'access', _226 => _226.createColorStyle, 'call', _227 => _227(utility.class, '-webkit-text-stroke-color', '--tw-text-stroke-opacity')
6590, 'optionalAccess', _228 => _228.updateMeta, 'call', _229 => _229('utilities', 'textStrokeColor', pluginOrder.textStrokeColor, 2, true)])
6591 || _optionalChain$1([utility, 'access', _230 => _230.handler
6592, 'access', _231 => _231.handleStatic, 'call', _232 => _232(theme('textStrokeWidth'))
6593, 'access', _233 => _233.handleNumber, 'call', _234 => _234(0, undefined, 'int', (number) => `${number}px`)
6594, 'access', _235 => _235.handleSize, 'call', _236 => _236()
6595, 'access', _237 => _237.createProperty, 'call', _238 => _238('-webkit-text-stroke-width')
6596, 'optionalAccess', _239 => _239.updateMeta, 'call', _240 => _240('utilities', 'textStrokeWidth', pluginOrder.textStrokeWidth, 1, true)]);
6597 }
6598 // handle text colors
6599 const textColor = _optionalChain$1([utility, 'access', _241 => _241.handler
6600, 'access', _242 => _242.handleColor, 'call', _243 => _243(theme('textColor'))
6601, 'access', _244 => _244.handleOpacity, 'call', _245 => _245(theme('textOpacity'))
6602, 'access', _246 => _246.handleSquareBrackets, 'call', _247 => _247(notNumberLead)
6603, 'access', _248 => _248.handleVariable, 'call', _249 => _249()
6604, 'access', _250 => _250.createColorStyle, 'call', _251 => _251(utility.class, 'color', '--tw-text-opacity')
6605, 'optionalAccess', _252 => _252.updateMeta, 'call', _253 => _253('utilities', 'textColor', pluginOrder.textColor, 0, true)]);
6606 if (textColor) return textColor;
6607
6608 // handle font sizes
6609 const amount = utility.amount;
6610 const fontSizes = toType(theme('fontSize'), 'object') ;
6611 if (Object.keys(fontSizes).includes(amount)) return new Style(utility.class, generateFontSize(fontSizes[amount])).updateMeta('utilities', 'fontSize', pluginOrder.fontSize, 1, true);
6612 let value = utility.handler
6613 .handleSquareBrackets(isNumberLead)
6614 .handleNxl((number) => `${number}rem`)
6615 .handleSize()
6616 .value;
6617 if (utility.raw.startsWith('text-size-$')) value = utility.handler.handleVariable().value;
6618 if (value) return new Style(utility.class, [ new Property('font-size', value), new Property('line-height', '1') ]).updateMeta('utilities', 'fontSize', pluginOrder.fontSize, 2, true);
6619}
6620
6621// https://windicss.org/utilities/typography.html#font-family
6622// https://windicss.org/utilities/typography.html#font-weight
6623function font(utility, { theme }) {
6624 const fonts = theme('fontFamily') ;
6625 const map = {};
6626 for (const [key, value] of Object.entries(fonts)) {
6627 map[key] = Array.isArray(value)? value.join(',') : value;
6628 }
6629 return (
6630 _optionalChain$1([utility, 'access', _254 => _254.handler
6631, 'access', _255 => _255.handleStatic, 'call', _256 => _256(map)
6632, 'access', _257 => _257.createProperty, 'call', _258 => _258('font-family')
6633, 'optionalAccess', _259 => _259.updateMeta, 'call', _260 => _260('utilities', 'fontFamily', pluginOrder.fontFamily, 1, true)])
6634 || _optionalChain$1([utility, 'access', _261 => _261.handler
6635, 'access', _262 => _262.handleStatic, 'call', _263 => _263(theme('fontWeight'))
6636, 'access', _264 => _264.handleNumber, 'call', _265 => _265(0, 900, 'int')
6637, 'access', _266 => _266.handleVariable, 'call', _267 => _267()
6638, 'access', _268 => _268.createProperty, 'call', _269 => _269('font-weight')
6639, 'optionalAccess', _270 => _270.updateMeta, 'call', _271 => _271('utilities', 'fontWeight', pluginOrder.fontWeight, 1, true)])
6640 );
6641}
6642
6643// https://windicss.org/utilities/typography.html#letter-spacing
6644function letterSpacing(utility, { theme }) {
6645 return _optionalChain$1([utility, 'access', _272 => _272.handler
6646, 'access', _273 => _273.handleStatic, 'call', _274 => _274(theme('letterSpacing'))
6647, 'access', _275 => _275.handleSquareBrackets, 'call', _276 => _276()
6648, 'access', _277 => _277.handleSize, 'call', _278 => _278()
6649, 'access', _279 => _279.handleNegative, 'call', _280 => _280()
6650, 'access', _281 => _281.handleVariable, 'call', _282 => _282()
6651, 'access', _283 => _283.createProperty, 'call', _284 => _284('letter-spacing')
6652, 'optionalAccess', _285 => _285.updateMeta, 'call', _286 => _286('utilities', 'letterSpacing', pluginOrder.letterSpacing, 1, true)]);
6653}
6654
6655// https://windicss.org/utilities/typography.html#text-decoration
6656function textDecoration(utility, { theme }) {
6657 // handle text decoration opacity
6658 if (utility.raw.startsWith('underline-opacity')) {
6659 return _optionalChain$1([utility, 'access', _287 => _287.handler
6660, 'access', _288 => _288.handleStatic, 'call', _289 => _289(theme('textDecorationOpacity'))
6661, 'access', _290 => _290.handleNumber, 'call', _291 => _291(0, 100, 'int', (number) => (number / 100).toString())
6662, 'access', _292 => _292.handleVariable, 'call', _293 => _293()
6663, 'access', _294 => _294.createProperty, 'call', _295 => _295('--tw-line-opacity')
6664, 'optionalAccess', _296 => _296.updateMeta, 'call', _297 => _297('utilities', 'textDecorationOpacity', pluginOrder.textDecorationOpacity, 1, true)]);
6665 }
6666
6667 if (utility.raw.startsWith('underline-offset')) {
6668 return _optionalChain$1([utility, 'access', _298 => _298.handler
6669, 'access', _299 => _299.handleStatic, 'call', _300 => _300(theme('textDecorationOffset'))
6670, 'access', _301 => _301.handleNumber, 'call', _302 => _302(0, undefined, 'int', number => `${number}px`)
6671, 'access', _303 => _303.handleSize, 'call', _304 => _304()
6672, 'access', _305 => _305.createProperty, 'call', _306 => _306('text-underline-offset')
6673, 'optionalAccess', _307 => _307.updateMeta, 'call', _308 => _308('utilities', 'textDecorationOffset', pluginOrder.textDecorationOffset, 1, true)]);
6674 }
6675 // handle text decoration color or length
6676 return _optionalChain$1([utility, 'access', _309 => _309.handler
6677, 'access', _310 => _310.handleColor, 'call', _311 => _311(theme('textDecorationColor'))
6678, 'access', _312 => _312.handleOpacity, 'call', _313 => _313(theme('opacity'))
6679, 'access', _314 => _314.handleVariable, 'call', _315 => _315()
6680, 'access', _316 => _316.createColorStyle, 'call', _317 => _317(utility.class, ['-webkit-text-decoration-color', 'text-decoration-color'], '--tw-line-opacity')
6681, 'optionalAccess', _318 => _318.updateMeta, 'call', _319 => _319('utilities', 'textDecorationColor', pluginOrder.textDecorationColor, 0, true)])
6682 || _optionalChain$1([utility, 'access', _320 => _320.handler
6683, 'access', _321 => _321.handleStatic, 'call', _322 => _322(theme('textDecorationLength'))
6684, 'access', _323 => _323.handleNumber, 'call', _324 => _324(0, undefined, 'int', (number) => `${number}px`)
6685, 'access', _325 => _325.handleSize, 'call', _326 => _326()
6686, 'access', _327 => _327.createProperty, 'call', _328 => _328('text-decoration-thickness')
6687, 'optionalAccess', _329 => _329.updateMeta, 'call', _330 => _330('utilities', 'textDecorationLength', pluginOrder.textDecorationLength, 1, true)]);
6688}
6689
6690// https://windicss.org/utilities/typography.html#line-height
6691function lineHeight(utility, { theme }) {
6692 return _optionalChain$1([utility, 'access', _331 => _331.handler
6693, 'access', _332 => _332.handleStatic, 'call', _333 => _333(theme('lineHeight'))
6694, 'access', _334 => _334.handleNumber, 'call', _335 => _335(0, undefined, 'int', (number) => `${number * 0.25}rem`)
6695, 'access', _336 => _336.handleSquareBrackets, 'call', _337 => _337()
6696, 'access', _338 => _338.handleSize, 'call', _339 => _339()
6697, 'access', _340 => _340.handleVariable, 'call', _341 => _341()
6698, 'access', _342 => _342.createProperty, 'call', _343 => _343('line-height')
6699, 'optionalAccess', _344 => _344.updateMeta, 'call', _345 => _345('utilities', 'lineHeight', pluginOrder.lineHeight, 1, true)]);
6700}
6701
6702// https://windicss.org/utilities/behaviors.html#list-style-type
6703function listStyleType(utility, { theme }) {
6704 return _optionalChain$1([utility, 'access', _346 => _346.handler
6705, 'access', _347 => _347.handleBody, 'call', _348 => _348(theme('listStyleType'))
6706, 'access', _349 => _349.createProperty, 'call', _350 => _350('list-style-type')
6707, 'optionalAccess', _351 => _351.updateMeta, 'call', _352 => _352('utilities', 'listStyleType', pluginOrder.listStyleType, 1, true)]);
6708}
6709
6710// https://windicss.org/utilities/behaviors.html#placeholder-color
6711// https://windicss.org/utilities/behaviors.html#placeholder-opacity
6712function placeholder(utility, { theme, config }) {
6713 // handle placeholder opacity
6714 if (utility.raw.startsWith('placeholder-opacity')) {
6715 return utility.handler
6716 .handleStatic(theme('placeholderOpacity'))
6717 .handleSquareBrackets()
6718 .handleNumber(0, 100, 'int', (number) => (number / 100).toString())
6719 .handleVariable()
6720 .callback(value => generatePlaceholder(utility.class, new Property('--tw-placeholder-opacity', value), config('prefixer') )
6721 .map(style => style.updateMeta('utilities', 'placeholderOpacity', pluginOrder.placeholderOpacity, 1, true)));
6722 }
6723 const color = utility.handler
6724 .handleColor(theme('placeholderColor'))
6725 .handleOpacity(theme('placeholderOpacity'))
6726 .handleSquareBrackets()
6727 .handleVariable()
6728 .createColorStyle(utility.class, 'color', '--tw-placeholder-opacity');
6729 if (color) return generatePlaceholder(color.selector || '', color.property, config('prefixer') ).map(i => i.updateMeta('utilities', 'placeholderColor', pluginOrder.placeholderColor, 2, true));
6730}
6731
6732// https://windicss.org/utilities/behaviors.html#caret-color
6733// https://windicss.org/utilities/behaviors.html#caret-opacity
6734function caret(utility, { theme }) {
6735 // handle caret opacity
6736 if (utility.raw.startsWith('caret-opacity')) {
6737 return _optionalChain$1([utility, 'access', _353 => _353.handler
6738, 'access', _354 => _354.handleStatic, 'call', _355 => _355(theme('caretOpacity'))
6739, 'access', _356 => _356.handleNumber, 'call', _357 => _357(0, 100, 'int', (number) => (number / 100).toString())
6740, 'access', _358 => _358.handleVariable, 'call', _359 => _359()
6741, 'access', _360 => _360.createProperty, 'call', _361 => _361('--tw-caret-opacity')
6742, 'optionalAccess', _362 => _362.updateMeta, 'call', _363 => _363('utilities', 'caretOpacity', pluginOrder.caretOpacity, 1, true)]);
6743 }
6744 return _optionalChain$1([utility, 'access', _364 => _364.handler
6745, 'access', _365 => _365.handleColor, 'call', _366 => _366(theme('caretColor'))
6746, 'access', _367 => _367.handleOpacity, 'call', _368 => _368(theme('caretOpacity'))
6747, 'access', _369 => _369.handleVariable, 'call', _370 => _370()
6748, 'access', _371 => _371.createColorStyle, 'call', _372 => _372(utility.class, 'caret-color', '--tw-caret-opacity')
6749, 'optionalAccess', _373 => _373.updateMeta, 'call', _374 => _374('utilities', 'caretColor', pluginOrder.caretColor, 0, true)]);
6750}
6751
6752// https://windicss.org/utilities/typography.html#tab-size
6753function tabSize(utility, { theme }) {
6754 return _optionalChain$1([utility, 'access', _375 => _375.handler
6755, 'access', _376 => _376.handleStatic, 'call', _377 => _377(theme('tabSize'))
6756, 'access', _378 => _378.handleNumber, 'call', _379 => _379(0, undefined, 'int')
6757, 'access', _380 => _380.handleSize, 'call', _381 => _381()
6758, 'access', _382 => _382.createProperty, 'call', _383 => _383(['-moz-tab-size', '-o-tab-size', 'tab-size'])
6759, 'optionalAccess', _384 => _384.updateMeta, 'call', _385 => _385('utilities', 'tabSize', pluginOrder.tabSize, 1, true)]);
6760}
6761
6762// https://windicss.org/utilities/typography.html#text-indent
6763function textIndent(utility, { theme }) {
6764 return _optionalChain$1([utility, 'access', _386 => _386.handler
6765, 'access', _387 => _387.handleStatic, 'call', _388 => _388(theme('textIndent'))
6766, 'access', _389 => _389.handleSize, 'call', _390 => _390()
6767, 'access', _391 => _391.handleFraction, 'call', _392 => _392()
6768, 'access', _393 => _393.handleNegative, 'call', _394 => _394()
6769, 'access', _395 => _395.createProperty, 'call', _396 => _396('text-indent')
6770, 'optionalAccess', _397 => _397.updateMeta, 'call', _398 => _398('utilities', 'textIndent', pluginOrder.textIndent, 1, true)]);
6771}
6772
6773// https://windicss.org/utilities/backgrounds.html#background-color
6774// https://windicss.org/utilities/backgrounds.html#background-opacity
6775// https://windicss.org/utilities/backgrounds.html#background-position
6776// https://windicss.org/utilities/backgrounds.html#background-size
6777// https://windicss.org/utilities/backgrounds.html#background-image
6778function background(utility, { theme }) {
6779 const body = utility.body;
6780 // handle background positions
6781 const positions = toType(theme('backgroundPosition'), 'object') ;
6782 if (Object.keys(positions).includes(body)) return new Property('background-position', positions[body]).updateMeta('utilities', 'backgroundPosition', pluginOrder.backgroundPosition, 1, true);
6783 // handle background sizes
6784 const sizes = toType(theme('backgroundSize'), 'object') ;
6785 if (Object.keys(sizes).includes(body)) return new Property('background-size', sizes[body]).updateMeta('utilities', 'backgroundSize', pluginOrder.backgroundSize, 1, true);
6786 // handle background image
6787 const images = toType(theme('backgroundImage'), 'object') ;
6788 if (Object.keys(images).includes(body)) {
6789 const prefixer = linearGradient(images[body]);
6790 if (Array.isArray(prefixer)) return new Style(utility.class, prefixer.map((i) => new Property('background-image', i))).updateMeta('utilities', 'backgroundImage', pluginOrder.backgroundImage, 2, true);
6791 return new Property('background-image', prefixer).updateMeta('utilities', 'backgroundImage', pluginOrder.backgroundImage, 1, true);
6792 }
6793 // handle background opacity
6794 if (utility.raw.startsWith('bg-opacity'))
6795 return _optionalChain$1([utility, 'access', _399 => _399.handler
6796, 'access', _400 => _400.handleStatic, 'call', _401 => _401(theme('backgroundOpacity'))
6797, 'access', _402 => _402.handleSquareBrackets, 'call', _403 => _403()
6798, 'access', _404 => _404.handleNumber, 'call', _405 => _405(0, 100, 'int', (number) => (number / 100).toString())
6799, 'access', _406 => _406.handleVariable, 'call', _407 => _407()
6800, 'access', _408 => _408.createProperty, 'call', _409 => _409('--tw-bg-opacity')
6801, 'optionalAccess', _410 => _410.updateMeta, 'call', _411 => _411('utilities', 'backgroundOpacity', pluginOrder.backgroundOpacity, 1, true)]);
6802
6803 // handle background color
6804 return _optionalChain$1([utility, 'access', _412 => _412.handler
6805, 'access', _413 => _413.handleColor, 'call', _414 => _414(theme('backgroundColor'))
6806, 'access', _415 => _415.handleOpacity, 'call', _416 => _416(theme('backgroundOpacity'))
6807, 'access', _417 => _417.handleSquareBrackets, 'call', _418 => _418(notNumberLead)
6808, 'access', _419 => _419.handleVariable, 'call', _420 => _420()
6809, 'access', _421 => _421.createColorStyle, 'call', _422 => _422(utility.class, 'background-color', '--tw-bg-opacity')
6810, 'optionalAccess', _423 => _423.updateMeta, 'call', _424 => _424('utilities', 'backgroundColor', pluginOrder.backgroundColor, 0, true)]);
6811}
6812
6813// https://windicss.org/utilities/backgrounds.html#gradient-from
6814function gradientColorFrom(utility, { theme }) {
6815 if (utility.raw.startsWith('from-opacity')) {
6816 return _optionalChain$1([utility, 'access', _425 => _425.handler
6817, 'access', _426 => _426.handleStatic, 'call', _427 => _427(theme('opacity'))
6818, 'access', _428 => _428.handleNumber, 'call', _429 => _429(0, 100, 'int', (number) => (number / 100).toString())
6819, 'access', _430 => _430.handleVariable, 'call', _431 => _431()
6820, 'access', _432 => _432.createProperty, 'call', _433 => _433('--tw-from-opacity')
6821, 'optionalAccess', _434 => _434.updateMeta, 'call', _435 => _435('utilities', 'gradientColorStops', pluginOrder.gradientColorStops, 2, true)]);
6822 }
6823 const handler = utility.handler.handleColor(theme('gradientColorStops')).handleOpacity(theme('opacity')).handleVariable().handleSquareBrackets();
6824 if (handler.color || handler.value) {
6825 return new Style(utility.class, [
6826 new Property('--tw-gradient-from', handler.createColorValue('var(--tw-from-opacity, 1)')),
6827 new Property('--tw-gradient-stops', 'var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0))'),
6828 ]).updateMeta('utilities', 'gradientColorStops', pluginOrder.gradientColorStops, 1, true);
6829 }
6830}
6831
6832// https://windicss.org/utilities/backgrounds.html#gradient-via
6833function gradientColorVia(utility, { theme }) {
6834 if (utility.raw.startsWith('via-opacity')) {
6835 return _optionalChain$1([utility, 'access', _436 => _436.handler
6836, 'access', _437 => _437.handleStatic, 'call', _438 => _438(theme('opacity'))
6837, 'access', _439 => _439.handleNumber, 'call', _440 => _440(0, 100, 'int', (number) => (number / 100).toString())
6838, 'access', _441 => _441.handleVariable, 'call', _442 => _442()
6839, 'access', _443 => _443.createProperty, 'call', _444 => _444('--tw-via-opacity')
6840, 'optionalAccess', _445 => _445.updateMeta, 'call', _446 => _446('utilities', 'gradientColorStops', pluginOrder.gradientColorStops, 4, true)]);
6841 }
6842 const handler = utility.handler.handleColor(theme('gradientColorStops')).handleOpacity(theme('opacity')).handleVariable().handleSquareBrackets();
6843 if (handler.color || handler.value) {
6844 return _optionalChain$1([new Style(utility.class,
6845 new Property('--tw-gradient-stops', `var(--tw-gradient-from), ${handler.createColorValue('var(--tw-via-opacity, 1)')}, var(--tw-gradient-to, rgba(255, 255, 255, 0))`)
6846 ), 'optionalAccess', _447 => _447.updateMeta, 'call', _448 => _448('utilities', 'gradientColorStops', pluginOrder.gradientColorStops, 3, true)]);
6847 }
6848}
6849
6850// https://windicss.org/utilities/backgrounds.html#gradient-to
6851function gradientColorTo(utility, { theme }) {
6852 if (utility.raw.startsWith('to-opacity')) {
6853 return _optionalChain$1([utility, 'access', _449 => _449.handler
6854, 'access', _450 => _450.handleStatic, 'call', _451 => _451(theme('opacity'))
6855, 'access', _452 => _452.handleNumber, 'call', _453 => _453(0, 100, 'int', (number) => (number / 100).toString())
6856, 'access', _454 => _454.handleVariable, 'call', _455 => _455()
6857, 'access', _456 => _456.createProperty, 'call', _457 => _457('--tw-to-opacity')
6858, 'optionalAccess', _458 => _458.updateMeta, 'call', _459 => _459('utilities', 'gradientColorStops', pluginOrder.gradientColorStops, 6, true)]);
6859 }
6860 const handler = utility.handler.handleColor(theme('gradientColorStops')).handleOpacity(theme('opacity')).handleVariable().handleSquareBrackets();
6861 if (handler.color || handler.value) {
6862 return _optionalChain$1([new Style(utility.class,
6863 new Property('--tw-gradient-to', handler.createColorValue('var(--tw-to-opacity, 1)'))
6864 ), 'optionalAccess', _460 => _460.updateMeta, 'call', _461 => _461('utilities', 'gradientColorStops', pluginOrder.gradientColorStops, 5, true)]);
6865 }
6866}
6867
6868// https://windicss.org/utilities/borders.html#border-radius
6869function borderRadius(utility, { theme }) {
6870 const raw = [ 'rounded', 'rounded-t', 'rounded-l', 'rounded-r', 'rounded-b', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl' ].includes(utility.raw) ? utility.raw + '-DEFAULT' : utility.raw;
6871 utility = utility.clone(raw);
6872 const directions = expandDirection(_optionalChain$1([raw, 'access', _462 => _462.match, 'call', _463 => _463(/rounded-[trbl][trbl]?-/), 'optionalAccess', _464 => _464[0], 'access', _465 => _465.slice, 'call', _466 => _466(8, -1)]) || '', true);
6873 if (!directions) return;
6874 return _optionalChain$1([utility, 'access', _467 => _467.handler
6875, 'access', _468 => _468.handleStatic, 'call', _469 => _469(theme('borderRadius'))
6876, 'access', _470 => _470.handleSquareBrackets, 'call', _471 => _471()
6877, 'access', _472 => _472.handleFraction, 'call', _473 => _473()
6878, 'access', _474 => _474.handleNxl, 'call', _475 => _475((number) => `${number * 0.5}rem`)
6879, 'access', _476 => _476.handleSize, 'call', _477 => _477()
6880, 'access', _478 => _478.handleVariable, 'call', _479 => _479()
6881, 'access', _480 => _480.createProperty, 'call', _481 => _481(directions[0] === '*' ? 'border-radius' : directions.map((i) => `border-${i}-radius`))
6882, 'optionalAccess', _482 => _482.updateMeta, 'call', _483 => _483('utilities', 'borderRadius', pluginOrder.borderRadius, -(directions[0] === '*' ? 3 : directions.length), true)]);
6883}
6884
6885// https://windicss.org/utilities/borders.html#border-width
6886// https://windicss.org/utilities/borders.html#border-color
6887// https://windicss.org/utilities/borders.html#border-opacity
6888function border(utility, { theme }) {
6889 // handle border opacity
6890 if (utility.raw.startsWith('border-opacity')) {
6891 return _optionalChain$1([utility, 'access', _484 => _484.handler
6892, 'access', _485 => _485.handleStatic, 'call', _486 => _486(theme('borderOpacity'))
6893, 'access', _487 => _487.handleNumber, 'call', _488 => _488(0, 100, 'int', (number) => (number / 100).toString())
6894, 'access', _489 => _489.handleVariable, 'call', _490 => _490()
6895, 'access', _491 => _491.createProperty, 'call', _492 => _492('--tw-border-opacity')
6896, 'optionalAccess', _493 => _493.updateMeta, 'call', _494 => _494('utilities', 'borderOpacity', pluginOrder.borderOpacity, 1, true)]);
6897 }
6898
6899 // handle border color
6900 const borderColor = _optionalChain$1([utility, 'access', _495 => _495.handler
6901, 'access', _496 => _496.handleColor, 'call', _497 => _497(theme('borderColor'))
6902, 'access', _498 => _498.handleOpacity, 'call', _499 => _499(theme('borderOpacity'))
6903, 'access', _500 => _500.handleSquareBrackets, 'call', _501 => _501(notNumberLead)
6904, 'access', _502 => _502.handleVariable, 'call', _503 => _503((variable) => utility.raw.startsWith('border-$') ? `var(--${variable})` : undefined)
6905, 'access', _504 => _504.createColorStyle, 'call', _505 => _505(utility.class, 'border-color', '--tw-border-opacity')
6906, 'optionalAccess', _506 => _506.updateMeta, 'call', _507 => _507('utilities', 'borderColor', pluginOrder.borderColor, 2, true)]);
6907 if (borderColor) return borderColor;
6908
6909 // handle border width
6910 const directions = _nullishCoalesce$2(expandDirection(utility.raw.substring(7, 8), false), () => ( [ '*' ]));
6911 const borders = toType(theme('borderWidth'), 'object') ;
6912 const raw = [ 'border', 'border-t', 'border-r', 'border-b', 'border-l' ].includes(utility.raw) ? `${utility.raw}-${_nullishCoalesce$2(borders.DEFAULT, () => ( '1px'))}` : utility.raw;
6913
6914 // handle border side color
6915 const borderSide = utility.clone(raw.slice(7)).handler
6916 .handleColor(theme('borderColor'))
6917 .handleOpacity(theme('borderOpacity'));
6918
6919 if (borderSide.value || borderSide.color) {
6920 if (borderSide.opacity) {
6921 return new Property(`border-${directions[0]}-color`, borderSide.createColorValue(borderSide.opacity)).updateMeta('utilities', 'borderColor', pluginOrder.borderColor, 4, true);
6922 }
6923 return _optionalChain$1([borderSide, 'access', _508 => _508.createColorStyle, 'call', _509 => _509(utility.class, `border-${directions[0]}-color`, '--tw-border-opacity'), 'optionalAccess', _510 => _510.updateMeta, 'call', _511 => _511('utilities', 'borderColor', pluginOrder.borderColor, 3, true)]);
6924 }
6925
6926 utility = utility.clone(raw);
6927 return _optionalChain$1([utility, 'access', _512 => _512.handler
6928, 'access', _513 => _513.handleStatic, 'call', _514 => _514(borders)
6929, 'access', _515 => _515.handleSquareBrackets, 'call', _516 => _516()
6930, 'access', _517 => _517.handleNumber, 'call', _518 => _518(0, undefined, 'int', (number) => /^border(-[tlbr])?$/.test(utility.key)? `${number}px`: undefined)
6931, 'access', _519 => _519.handleSize, 'call', _520 => _520()
6932, 'access', _521 => _521.handleVariable, 'call', _522 => _522()
6933, 'access', _523 => _523.createProperty, 'call', _524 => _524(directions[0] === '*' ? 'border-width' : directions.map((i) => `border-${i}-width`))
6934, 'optionalAccess', _525 => _525.updateMeta, 'call', _526 => _526('utilities', 'borderWidth', pluginOrder.borderWidth, (directions[0] === '*' ? 1 : (directions.length + 1)), true)]);
6935}
6936
6937// https://windicss.org/utilities/borders.html#divide-width
6938// https://windicss.org/utilities/borders.html#divide-color
6939// https://windicss.org/utilities/borders.html#divide-opacity
6940// https://windicss.org/utilities/borders.html#divide-style
6941function divide(utility, { theme }) {
6942 // handle divide style
6943 if (['solid', 'dashed', 'dotted', 'double', 'none'].includes(utility.amount)) return new Property('border-style', utility.amount).toStyle(utility.class).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'divideStyle', pluginOrder.divideStyle, 1, true);
6944 // handle divide opacity
6945 if (utility.raw.startsWith('divide-opacity'))
6946 return _optionalChain$1([utility, 'access', _527 => _527.handler
6947, 'access', _528 => _528.handleStatic, 'call', _529 => _529(theme('divideOpacity'))
6948, 'access', _530 => _530.handleNumber, 'call', _531 => _531(0, 100, 'int', (number) => (number / 100).toString())
6949, 'access', _532 => _532.handleVariable, 'call', _533 => _533()
6950, 'access', _534 => _534.createProperty, 'call', _535 => _535('--tw-divide-opacity')
6951, 'optionalAccess', _536 => _536.toStyle, 'call', _537 => _537(utility.class)
6952, 'access', _538 => _538.child, 'call', _539 => _539('> :not([hidden]) ~ :not([hidden])')
6953, 'access', _540 => _540.updateMeta, 'call', _541 => _541('utilities', 'divideOpacity', pluginOrder.divideOpacity, 1, true)]);
6954 // handle divide color
6955 const divideColor = _optionalChain$1([utility, 'access', _542 => _542.handler
6956, 'access', _543 => _543.handleColor, 'call', _544 => _544(theme('divideColor'))
6957, 'access', _545 => _545.handleOpacity, 'call', _546 => _546(theme('divideOpacity'))
6958, 'access', _547 => _547.handleVariable, 'call', _548 => _548((variable) => utility.raw.startsWith('divide-$') ? `var(--${variable})` : undefined)
6959, 'access', _549 => _549.createColorStyle, 'call', _550 => _550(utility.class, 'border-color', '--tw-divide-opacity')
6960, 'optionalAccess', _551 => _551.child, 'call', _552 => _552('> :not([hidden]) ~ :not([hidden])')
6961, 'access', _553 => _553.updateMeta, 'call', _554 => _554('utilities', 'divideColor', pluginOrder.divideColor, 0, true)]);
6962 if (divideColor) return divideColor;
6963 // handle divide width
6964 switch (utility.raw) {
6965 case 'divide-x-reverse':
6966 return new Style(utility.class, new Property('--tw-divide-x-reverse', '1')).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'divideWidth', pluginOrder.divideWidth, 6, true);
6967 case 'divide-y-reverse':
6968 return new Style(utility.class, new Property('--tw-divide-y-reverse', '1')).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'divideWidth', pluginOrder.divideWidth, 5, true);
6969 case 'divide-y':
6970 return new Style(utility.class, [
6971 new Property('--tw-divide-y-reverse', '0'),
6972 new Property('border-top-width', 'calc(1px * calc(1 - var(--tw-divide-y-reverse)))'),
6973 new Property('border-bottom-width', 'calc(1px * var(--tw-divide-y-reverse))'),
6974 ]).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'divideWidth', pluginOrder.divideWidth, 3, true);
6975 case 'divide-x':
6976 return new Style(utility.class, [
6977 new Property('--tw-divide-x-reverse', '0'),
6978 new Property('border-right-width', 'calc(1px * var(--tw-divide-x-reverse))'),
6979 new Property('border-left-width', 'calc(1px * calc(1 - var(--tw-divide-x-reverse)))'),
6980 ]).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'divideWidth', pluginOrder.divideWidth, 4, true);
6981 }
6982 return utility.handler
6983 .handleSquareBrackets()
6984 .handleNumber(0, undefined, 'float', (number) => `${number}px`)
6985 .handleSize()
6986 .handleVariable()
6987 .callback(value => {
6988 const centerMatch = utility.raw.match(/^-?divide-[x|y]/);
6989 if (centerMatch) {
6990 const center = centerMatch[0].replace(/^-?divide-/, '');
6991 switch (center) {
6992 case 'x':
6993 return new Style(utility.class, [
6994 new Property('--tw-divide-x-reverse', '0'),
6995 new Property('border-right-width', `calc(${value} * var(--tw-divide-x-reverse))`),
6996 new Property('border-left-width', `calc(${value} * calc(1 - var(--tw-divide-x-reverse)))`),
6997 ]).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'divideWidth', pluginOrder.divideWidth, 2, true);
6998 case 'y':
6999 return new Style(utility.class, [
7000 new Property('--tw-divide-y-reverse', '0'),
7001 new Property('border-top-width', `calc(${value} * calc(1 - var(--tw-divide-y-reverse)))`),
7002 new Property('border-bottom-width', `calc(${value} * var(--tw-divide-y-reverse))`),
7003 ]).child('> :not([hidden]) ~ :not([hidden])').updateMeta('utilities', 'divideWidth', pluginOrder.divideWidth, 1, true);
7004 }
7005 }
7006 });
7007}
7008
7009// https://windicss.org/utilities/borders.html#ring-offset-width
7010// https://windicss.org/utilities/borders.html#ring-offset-color
7011function ringOffset(utility, { theme }) {
7012 let value;
7013 // handle ring offset width variable
7014 if (utility.raw.startsWith('ringOffset-width-$')) {
7015 value = utility.handler.handleVariable().value;
7016 if (value) return new Property('--tw-ring-offset-width', value).toStyle(utility.class.replace('ringOffset', 'ring-offset')).updateMeta('utilities', 'ringOffsetWidth', pluginOrder.ringOffsetWidth, 2, true);
7017 }
7018
7019 if (utility.raw.startsWith('ringOffset-opacity')) {
7020 return _optionalChain$1([utility, 'access', _555 => _555.handler
7021, 'access', _556 => _556.handleStatic, 'call', _557 => _557(theme('opacity'))
7022, 'access', _558 => _558.handleNumber, 'call', _559 => _559(0, 100, 'int', (number) => (number / 100).toString())
7023, 'access', _560 => _560.handleVariable, 'call', _561 => _561()
7024, 'access', _562 => _562.createProperty, 'call', _563 => _563('--tw-ring-offset-opacity')
7025, 'optionalAccess', _564 => _564.updateMeta, 'call', _565 => _565('utilities', 'ringOffsetColor', pluginOrder.ringOffsetColor, 2, true)]);
7026 }
7027
7028 // handle ring offset color || ring offset width
7029 return _optionalChain$1([utility, 'access', _566 => _566.handler
7030, 'access', _567 => _567.handleColor, 'call', _568 => _568(theme('ringOffsetColor'))
7031, 'access', _569 => _569.handleOpacity, 'call', _570 => _570('ringOpacity')
7032, 'access', _571 => _571.handleVariable, 'call', _572 => _572()
7033, 'access', _573 => _573.handleSquareBrackets, 'call', _574 => _574()
7034, 'access', _575 => _575.createColorStyle, 'call', _576 => _576(utility.class.replace('ringOffset', 'ring-offset'), '--tw-ring-offset-color', '--tw-ring-offset-opacity')
7035, 'optionalAccess', _577 => _577.updateMeta, 'call', _578 => _578('utilities', 'ringOffsetColor', pluginOrder.ringOffsetColor, 1, true)])
7036 || _optionalChain$1([utility, 'access', _579 => _579.handler
7037, 'access', _580 => _580.handleStatic, 'call', _581 => _581(theme('ringOffsetWidth'))
7038, 'access', _582 => _582.handleSquareBrackets, 'call', _583 => _583(isNumberLead)
7039, 'access', _584 => _584.handleNumber, 'call', _585 => _585(0, undefined, 'float', (number) => `${number}px`)
7040, 'access', _586 => _586.handleSize, 'call', _587 => _587()
7041, 'access', _588 => _588.createStyle, 'call', _589 => _589(utility.class.replace('ringOffset', 'ring-offset'), value => new Property('--tw-ring-offset-width', value))
7042, 'optionalAccess', _590 => _590.updateMeta, 'call', _591 => _591('utilities', 'ringOffsetWidth', pluginOrder.ringOffsetWidth, 1, true)]);
7043}
7044
7045// https://windicss.org/utilities/borders.html#ring-width
7046// https://windicss.org/utilities/borders.html#ring-color
7047// https://windicss.org/utilities/borders.html#ring-opacity
7048function ring(utility, utils) {
7049 // handle ring offset
7050 if (utility.raw.startsWith('ring-offset')) return ringOffset(utility.clone(utility.raw.replace('ring-offset', 'ringOffset')), utils);
7051 // handle ring opacity
7052 if (utility.raw.startsWith('ring-opacity'))
7053 return _optionalChain$1([utility, 'access', _592 => _592.handler
7054, 'access', _593 => _593.handleStatic, 'call', _594 => _594(utils.theme('ringOpacity'))
7055, 'access', _595 => _595.handleSquareBrackets, 'call', _596 => _596()
7056, 'access', _597 => _597.handleNumber, 'call', _598 => _598(0, 100, 'int', (number) => (number / 100).toString())
7057, 'access', _599 => _599.handleVariable, 'call', _600 => _600()
7058, 'access', _601 => _601.createProperty, 'call', _602 => _602('--tw-ring-opacity')
7059, 'optionalAccess', _603 => _603.updateMeta, 'call', _604 => _604('utilities', 'ringOpacity', pluginOrder.ringOpacity, 1, true)]);
7060 // handle ring color
7061 const ringColor = _optionalChain$1([utility, 'access', _605 => _605.handler
7062, 'access', _606 => _606.handleColor, 'call', _607 => _607(utils.theme('ringColor'))
7063, 'access', _608 => _608.handleOpacity, 'call', _609 => _609(utils.theme('ringOpacity'))
7064, 'access', _610 => _610.handleSquareBrackets, 'call', _611 => _611(notNumberLead)
7065, 'access', _612 => _612.handleVariable, 'call', _613 => _613((variable) => utility.raw.startsWith('ring-$') ? `var(--${variable})` : undefined)
7066, 'access', _614 => _614.createColorStyle, 'call', _615 => _615(utility.class, '--tw-ring-color', '--tw-ring-opacity')
7067, 'optionalAccess', _616 => _616.updateMeta, 'call', _617 => _617('utilities', 'ringColor', pluginOrder.ringColor, 0, true)]);
7068
7069 if (ringColor) return ringColor;
7070 // handle ring width
7071 if (utility.raw === 'ring-inset') return new Property('--tw-ring-inset', 'inset').updateMeta('utilities', 'ringWidth', pluginOrder.ringWidth, 3, true);
7072 const value = utility.raw === 'ring'
7073 ? (_nullishCoalesce$2(toType(utils.theme('ringWidth.DEFAULT'), 'string'), () => ( '3px')))
7074 : utility.handler
7075 .handleStatic(utils.theme('ringWidth'))
7076 .handleSquareBrackets()
7077 .handleNumber(0, undefined, 'float', (number) => `${number}px`)
7078 .handleSize()
7079 .handleVariable()
7080 .value;
7081 if (!value) return;
7082 return new Style(utility.class, [
7083 new Property('--tw-ring-offset-shadow', 'var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)'),
7084 new Property('--tw-ring-shadow', `var(--tw-ring-inset) 0 0 0 calc(${value} + var(--tw-ring-offset-width)) var(--tw-ring-color)`),
7085 new Property(['-webkit-box-shadow', 'box-shadow'], 'var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)'),
7086 ]).updateMeta('utilities', 'ringWidth', pluginOrder.ringWidth, (utility.raw === 'ring' ? 1 : 2), true);
7087}
7088
7089// https://windicss.org/utilities/filters.html#filter-blur
7090function blur(utility, { theme }) {
7091 if (utility.raw === 'blur') utility.raw = 'blur-DEFAULT';
7092 return _optionalChain$1([utility, 'access', _618 => _618.handler
7093, 'access', _619 => _619.handleBody, 'call', _620 => _620(theme('blur'))
7094, 'access', _621 => _621.handleSquareBrackets, 'call', _622 => _622()
7095, 'access', _623 => _623.handleNumber, 'call', _624 => _624(0, undefined, 'int', (number) => `${number}px`)
7096, 'access', _625 => _625.handleSize, 'call', _626 => _626()
7097, 'access', _627 => _627.createProperty, 'call', _628 => _628('--tw-blur', value => `blur(${value})`)
7098, 'optionalAccess', _629 => _629.updateMeta, 'call', _630 => _630('utilities', 'blur', pluginOrder.blur, 1, true)]);
7099}
7100
7101// https://windicss.org/utilities/filters.html#filter-brightness
7102function brightness(utility, { theme }) {
7103 return _optionalChain$1([utility, 'access', _631 => _631.handler
7104, 'access', _632 => _632.handleBody, 'call', _633 => _633(theme('brightness'))
7105, 'access', _634 => _634.handleSquareBrackets, 'call', _635 => _635()
7106, 'access', _636 => _636.handleNumber, 'call', _637 => _637(0, undefined, 'int', (number) => `${number/100}`)
7107, 'access', _638 => _638.createProperty, 'call', _639 => _639('--tw-brightness', value => `brightness(${value})`)
7108, 'optionalAccess', _640 => _640.updateMeta, 'call', _641 => _641('utilities', 'brightness', pluginOrder.brightness, 1, true)]);
7109}
7110
7111// https://windicss.org/utilities/filters.html#filter-contrast
7112function contrast(utility, { theme }) {
7113 return _optionalChain$1([utility, 'access', _642 => _642.handler
7114, 'access', _643 => _643.handleBody, 'call', _644 => _644(theme('contrast'))
7115, 'access', _645 => _645.handleSquareBrackets, 'call', _646 => _646()
7116, 'access', _647 => _647.handleNumber, 'call', _648 => _648(0, undefined, 'int', (number) => `${number/100}`)
7117, 'access', _649 => _649.createProperty, 'call', _650 => _650('--tw-contrast', value => `contrast(${value})`)
7118, 'optionalAccess', _651 => _651.updateMeta, 'call', _652 => _652('utilities', 'contrast', pluginOrder.contrast, 1, true)]);
7119}
7120
7121// https://windicss.org/utilities/filters.html#filter-drop-shadow
7122function dropShadow(utility, { theme }) {
7123 let value;
7124 if (utility.raw === 'drop-shadow') {
7125 value = theme('dropShadow.DEFAULT', ['0 1px 2px rgba(0, 0, 0, 0.1)', '0 1px 1px rgba(0, 0, 0, 0.06)']) ;
7126 } else {
7127 const dropShadows = theme('dropShadow') ;
7128 const amount = utility.amount;
7129 if (utility.raw.startsWith('drop-shadow') && amount in dropShadows) value = dropShadows[amount];
7130 }
7131 if (value) return new Property('--tw-drop-shadow', Array.isArray(value)? value.map(i => `drop-shadow(${i})`).join(' '): `drop-shadow(${value})`).updateMeta('utilities', 'dropShadow', pluginOrder.dropShadow, 1, true);
7132}
7133
7134// https://windicss.org/utilities/filters.html#filter-grayscale
7135function grayscale(utility, { theme }) {
7136 if (utility.raw === 'grayscale') utility.raw = 'grayscale-DEFAULT';
7137 return _optionalChain$1([utility, 'access', _653 => _653.handler
7138, 'access', _654 => _654.handleBody, 'call', _655 => _655(theme('grayscale'))
7139, 'access', _656 => _656.handleSquareBrackets, 'call', _657 => _657()
7140, 'access', _658 => _658.handleNumber, 'call', _659 => _659(0, 100, 'int', (number) => `${number/100}`)
7141, 'access', _660 => _660.createProperty, 'call', _661 => _661('--tw-grayscale', value => `grayscale(${value})`)
7142, 'optionalAccess', _662 => _662.updateMeta, 'call', _663 => _663('utilities', 'grayscale', pluginOrder.grayscale, 1, true)]);
7143}
7144
7145// https://windicss.org/utilities/filters.html#filter-hue-rotate
7146function hueRotate(utility, { theme }) {
7147 return _optionalChain$1([utility, 'access', _664 => _664.handler
7148, 'access', _665 => _665.handleBody, 'call', _666 => _666(theme('hueRotate'))
7149, 'access', _667 => _667.handleSquareBrackets, 'call', _668 => _668()
7150, 'access', _669 => _669.handleNumber, 'call', _670 => _670(0, undefined, 'float', (number) => `${number}deg`)
7151, 'access', _671 => _671.handleNegative, 'call', _672 => _672()
7152, 'access', _673 => _673.createProperty, 'call', _674 => _674('--tw-hue-rotate', value => `hue-rotate(${value})`)
7153, 'optionalAccess', _675 => _675.updateMeta, 'call', _676 => _676('utilities', 'hueRotate', pluginOrder.hueRotate, 1, true)]);
7154}
7155
7156// https://windicss.org/utilities/filters.html#filter-invert
7157function invert(utility, { theme }) {
7158 if (utility.raw === 'invert') utility.raw = 'invert-DEFAULT';
7159 return _optionalChain$1([utility, 'access', _677 => _677.handler
7160, 'access', _678 => _678.handleBody, 'call', _679 => _679(theme('invert'))
7161, 'access', _680 => _680.handleSquareBrackets, 'call', _681 => _681()
7162, 'access', _682 => _682.handleNumber, 'call', _683 => _683(0, 100, 'int', (number) => `${number/100}`)
7163, 'access', _684 => _684.createProperty, 'call', _685 => _685('--tw-invert', value => `invert(${value})`)
7164, 'optionalAccess', _686 => _686.updateMeta, 'call', _687 => _687('utilities', 'invert', pluginOrder.invert, 1, true)]);
7165}
7166
7167// https://windicss.org/utilities/filters.html#filter-saturate
7168function saturate(utility, { theme }) {
7169 return _optionalChain$1([utility, 'access', _688 => _688.handler
7170, 'access', _689 => _689.handleBody, 'call', _690 => _690(theme('saturate'))
7171, 'access', _691 => _691.handleSquareBrackets, 'call', _692 => _692()
7172, 'access', _693 => _693.handleNumber, 'call', _694 => _694(0, undefined, 'int', (number) => `${number/100}`)
7173, 'access', _695 => _695.createProperty, 'call', _696 => _696('--tw-saturate', value => `saturate(${value})`)
7174, 'optionalAccess', _697 => _697.updateMeta, 'call', _698 => _698('utilities', 'saturate', pluginOrder.saturate, 1, true)]);
7175}
7176
7177// https://windicss.org/utilities/filters.html#filter-sepia
7178function sepia(utility, { theme }) {
7179 if (utility.raw === 'sepia') utility.raw = 'sepia-DEFAULT';
7180 return _optionalChain$1([utility, 'access', _699 => _699.handler
7181, 'access', _700 => _700.handleBody, 'call', _701 => _701(theme('sepia'))
7182, 'access', _702 => _702.handleSquareBrackets, 'call', _703 => _703()
7183, 'access', _704 => _704.handleNumber, 'call', _705 => _705(0, 100, 'int', (number) => `${number/100}`)
7184, 'access', _706 => _706.createProperty, 'call', _707 => _707('--tw-sepia', value => `sepia(${value})`)
7185, 'optionalAccess', _708 => _708.updateMeta, 'call', _709 => _709('utilities', 'sepia', pluginOrder.sepia, 1, true)]);
7186}
7187
7188// https://windicss.org/utilities/filters.html#backdrop-filter
7189// https://windicss.org/utilities/filters.html#backdrop-blur
7190// https://windicss.org/utilities/filters.html#backdrop-brightness
7191// https://windicss.org/utilities/filters.html#backdrop-contrast
7192// https://windicss.org/utilities/filters.html#backdrop-grayscale
7193// https://windicss.org/utilities/filters.html#backdrop-hue-rotate
7194// https://windicss.org/utilities/filters.html#backdrop-invert
7195// https://windicss.org/utilities/filters.html#backdrop-opacity
7196// https://windicss.org/utilities/filters.html#backdrop-saturate
7197// https://windicss.org/utilities/filters.html#backdrop-sepia
7198function backdrop(utility, { theme }) {
7199 utility = utility.clone(utility.raw.slice(9));
7200 switch (utility.match(/[^-]+/)) {
7201 case 'blur':
7202 if (utility.raw === 'blur') utility.raw = 'blur-DEFAULT';
7203 return _optionalChain$1([utility, 'access', _710 => _710.handler
7204, 'access', _711 => _711.handleBody, 'call', _712 => _712(theme('backdropBlur'))
7205, 'access', _713 => _713.handleSquareBrackets, 'call', _714 => _714()
7206, 'access', _715 => _715.handleNumber, 'call', _716 => _716(0, undefined, 'int', (number) => `${number}px`)
7207, 'access', _717 => _717.handleSize, 'call', _718 => _718()
7208, 'access', _719 => _719.createProperty, 'call', _720 => _720('--tw-backdrop-blur', value => `blur(${value})`)
7209, 'optionalAccess', _721 => _721.updateMeta, 'call', _722 => _722('utilities', 'backdropBlur', pluginOrder.backdropBlur, 1, true)]);
7210 case 'brightness':
7211 return _optionalChain$1([utility, 'access', _723 => _723.handler
7212, 'access', _724 => _724.handleBody, 'call', _725 => _725(theme('backdropBrightness'))
7213, 'access', _726 => _726.handleSquareBrackets, 'call', _727 => _727()
7214, 'access', _728 => _728.handleNumber, 'call', _729 => _729(0, undefined, 'int', (number) => `${number/100}`)
7215, 'access', _730 => _730.createProperty, 'call', _731 => _731('--tw-backdrop-brightness', value => `brightness(${value})`)
7216, 'optionalAccess', _732 => _732.updateMeta, 'call', _733 => _733('utilities', 'backdropBrightness', pluginOrder.backdropBrightness, 1, true)]);
7217 case 'contrast':
7218 return _optionalChain$1([utility, 'access', _734 => _734.handler
7219, 'access', _735 => _735.handleBody, 'call', _736 => _736(theme('backdropContrast'))
7220, 'access', _737 => _737.handleSquareBrackets, 'call', _738 => _738()
7221, 'access', _739 => _739.handleNumber, 'call', _740 => _740(0, undefined, 'int', (number) => `${number/100}`)
7222, 'access', _741 => _741.createProperty, 'call', _742 => _742('--tw-backdrop-contrast', value => `contrast(${value})`)
7223, 'optionalAccess', _743 => _743.updateMeta, 'call', _744 => _744('utilities', 'backdropContrast', pluginOrder.backdropContrast, 1, true)]);
7224 case 'grayscale':
7225 if (utility.raw === 'grayscale') utility.raw = 'grayscale-DEFAULT';
7226 return _optionalChain$1([utility, 'access', _745 => _745.handler
7227, 'access', _746 => _746.handleBody, 'call', _747 => _747(theme('backdropGrayscale'))
7228, 'access', _748 => _748.handleSquareBrackets, 'call', _749 => _749()
7229, 'access', _750 => _750.handleNumber, 'call', _751 => _751(0, 100, 'int', (number) => `${number/100}`)
7230, 'access', _752 => _752.createProperty, 'call', _753 => _753('--tw-backdrop-grayscale', value => `grayscale(${value})`)
7231, 'optionalAccess', _754 => _754.updateMeta, 'call', _755 => _755('utilities', 'backdropGrayscale', pluginOrder.backdropGrayscale, 1, true)]);
7232 case 'hue':
7233 return _optionalChain$1([utility, 'access', _756 => _756.handler
7234, 'access', _757 => _757.handleBody, 'call', _758 => _758(theme('backdropHueRotate'))
7235, 'access', _759 => _759.handleSquareBrackets, 'call', _760 => _760()
7236, 'access', _761 => _761.handleNumber, 'call', _762 => _762(0, undefined, 'float', (number) => `${number}deg`)
7237, 'access', _763 => _763.handleNegative, 'call', _764 => _764()
7238, 'access', _765 => _765.createProperty, 'call', _766 => _766('--tw-backdrop-hue-rotate', value => `hue-rotate(${value})`)
7239, 'optionalAccess', _767 => _767.updateMeta, 'call', _768 => _768('utilities', 'backdropHueRotate', pluginOrder.backdropHueRotate, 1, true)]);
7240 case 'invert':
7241 if (utility.raw === 'invert') utility.raw = 'invert-DEFAULT';
7242 return _optionalChain$1([utility, 'access', _769 => _769.handler
7243, 'access', _770 => _770.handleBody, 'call', _771 => _771(theme('backdropInvert'))
7244, 'access', _772 => _772.handleSquareBrackets, 'call', _773 => _773()
7245, 'access', _774 => _774.handleNumber, 'call', _775 => _775(0, 100, 'int', (number) => `${number/100}`)
7246, 'access', _776 => _776.createProperty, 'call', _777 => _777('--tw-backdrop-invert', value => `invert(${value})`)
7247, 'optionalAccess', _778 => _778.updateMeta, 'call', _779 => _779('utilities', 'backdropInvert', pluginOrder.backdropInvert, 1, true)]);
7248 case 'opacity':
7249 return _optionalChain$1([utility, 'access', _780 => _780.handler
7250, 'access', _781 => _781.handleBody, 'call', _782 => _782(theme('backdropOpacity'))
7251, 'access', _783 => _783.handleSquareBrackets, 'call', _784 => _784()
7252, 'access', _785 => _785.handleNumber, 'call', _786 => _786(0, 100, 'int', (number) => `${number/100}`)
7253, 'access', _787 => _787.createProperty, 'call', _788 => _788('--tw-backdrop-opacity', value => `opacity(${value})`)
7254, 'optionalAccess', _789 => _789.updateMeta, 'call', _790 => _790('utilities', 'backdropOpacity', pluginOrder.backdropOpacity, 1, true)]);
7255 case 'saturate':
7256 return _optionalChain$1([utility, 'access', _791 => _791.handler
7257, 'access', _792 => _792.handleBody, 'call', _793 => _793(theme('backdropSaturate'))
7258, 'access', _794 => _794.handleSquareBrackets, 'call', _795 => _795()
7259, 'access', _796 => _796.handleNumber, 'call', _797 => _797(0, undefined, 'int', (number) => `${number/100}`)
7260, 'access', _798 => _798.createProperty, 'call', _799 => _799('--tw-backdrop-saturate', value => `saturate(${value})`)
7261, 'optionalAccess', _800 => _800.updateMeta, 'call', _801 => _801('utilities', 'backdropSaturate', pluginOrder.backdropSaturate, 1, true)]);
7262 case 'sepia':
7263 if (utility.raw === 'sepia') utility.raw = 'sepia-DEFAULT';
7264 return _optionalChain$1([utility, 'access', _802 => _802.handler
7265, 'access', _803 => _803.handleBody, 'call', _804 => _804(theme('backdropSepia'))
7266, 'access', _805 => _805.handleSquareBrackets, 'call', _806 => _806()
7267, 'access', _807 => _807.handleNumber, 'call', _808 => _808(0, 100, 'int', (number) => `${number/100}`)
7268, 'access', _809 => _809.createProperty, 'call', _810 => _810('--tw-backdrop-sepia', value => `sepia(${value})`)
7269, 'optionalAccess', _811 => _811.updateMeta, 'call', _812 => _812('utilities', 'backdropSepia', pluginOrder.backdropSepia, 1, true)]);
7270 }
7271}
7272
7273// https://windicss.org/utilities/effects.html#box-shadow
7274function boxShadow(utility, { theme }) {
7275 const body = utility.body || 'DEFAULT';
7276 const shadows = toType(theme('boxShadow'), 'object') ;
7277 if (Object.keys(shadows).includes(body)) {
7278 const shadow = shadows[body].replace(/rgba\s*\(\s*0\s*,\s*0\s*,\s*0/g, 'rgba(var(--tw-shadow-color)');
7279 return new Style(utility.class, [
7280 new Property('--tw-shadow-color', '0, 0, 0'),
7281 new Property('--tw-shadow', shadow),
7282 new Property(['-webkit-box-shadow', 'box-shadow'], 'var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)'),
7283 ]).updateMeta('utilities', 'boxShadow', pluginOrder.boxShadow, 0, true);
7284 }
7285 // handle shadowColor
7286 return _optionalChain$1([utility, 'access', _813 => _813.handler
7287, 'access', _814 => _814.handleColor, 'call', _815 => _815(theme('boxShadowColor'))
7288, 'access', _816 => _816.handleOpacity, 'call', _817 => _817(theme('opacity'))
7289, 'access', _818 => _818.handleSquareBrackets, 'call', _819 => _819()
7290, 'access', _820 => _820.handleVariable, 'call', _821 => _821()
7291, 'access', _822 => _822.createColorStyle, 'call', _823 => _823(utility.class, '--tw-shadow-color', undefined, false)
7292, 'optionalAccess', _824 => _824.updateMeta, 'call', _825 => _825('utilities', 'boxShadowColor', pluginOrder.boxShadowColor, 0, true)]);
7293}
7294
7295// https://windicss.org/utilities/effects.html#opacity
7296function opacity(utility, { theme }) {
7297 return _optionalChain$1([utility, 'access', _826 => _826.handler
7298, 'access', _827 => _827.handleStatic, 'call', _828 => _828(theme('opacity'))
7299, 'access', _829 => _829.handleSquareBrackets, 'call', _830 => _830()
7300, 'access', _831 => _831.handleNumber, 'call', _832 => _832(0, 100, 'int', (number) => (number / 100).toString())
7301, 'access', _833 => _833.handleVariable, 'call', _834 => _834()
7302, 'access', _835 => _835.createProperty, 'call', _836 => _836('opacity')
7303, 'optionalAccess', _837 => _837.updateMeta, 'call', _838 => _838('utilities', 'opacity', pluginOrder.opacity, 0, true)]);
7304}
7305
7306// https://windicss.org/utilities/transitions.html#transition-property
7307function transition(utility, { theme }) {
7308 const body = utility.body;
7309 const props = toType(theme('transitionProperty'), 'object') ;
7310 for (const [key, value] of Object.entries(props)) {
7311 if (body === key || (body === '' && key === 'DEFAULT')) {
7312 if (value === 'none') return new Property(['-webkit-transition-property', '-o-transition-property', 'transition-property'], 'none').updateMeta('utilities', 'transitionProperty', pluginOrder.transitionProperty, 1, true);
7313 return new Style(utility.class, [
7314 new Property('-webkit-transition-property', value.replace(/(?=(transform|box-shadow))/g, '-webkit-')),
7315 new Property('-o-transition-property', value),
7316 new Property('transition-property', value.replace(/transform/g, 'transform, -webkit-transform').replace(/box-shadow/g, 'box-shadow, -webkit-box-shadow')),
7317 new Property(['-webkit-transition-timing-function', '-o-transition-timing-function', 'transition-timing-function'], _nullishCoalesce$2(toType(theme('transitionTimingFunction.DEFAULT'), 'string'), () => ( 'cubic-bezier(0.4, 0, 0.2, 1)'))),
7318 new Property(['-webkit-transition-duration', '-o-transition-duration', 'transition-duration' ], _nullishCoalesce$2(toType(theme('transitionDuration.DEFAULT'), 'string'), () => ( '150ms'))),
7319 ]).updateMeta('utilities', 'transitionProperty', pluginOrder.transitionProperty, 2, true);
7320 }
7321 }
7322}
7323
7324// https://windicss.org/utilities/transitions.html#transition-duration
7325function duration(utility, { theme }) {
7326 return _optionalChain$1([utility, 'access', _839 => _839.handler
7327, 'access', _840 => _840.handleStatic, 'call', _841 => _841(theme('transitionDuration'))
7328, 'access', _842 => _842.handleSquareBrackets, 'call', _843 => _843()
7329, 'access', _844 => _844.handleTime, 'call', _845 => _845(0, undefined, 'float')
7330, 'access', _846 => _846.handleNumber, 'call', _847 => _847(0, undefined, 'int', (number) => `${number}ms`)
7331, 'access', _848 => _848.handleVariable, 'call', _849 => _849()
7332, 'access', _850 => _850.createProperty, 'call', _851 => _851(['-webkit-transition-duration', '-o-transition-duration', 'transition-duration'])
7333, 'optionalAccess', _852 => _852.updateMeta, 'call', _853 => _853('utilities', 'transitionDuration', pluginOrder.transitionDuration, 1, true)]);
7334}
7335
7336// https://windicss.org/utilities/transitions.html#transition-timing-function
7337function transitionTimingFunction(utility, { theme }) {
7338 return _optionalChain$1([utility, 'access', _854 => _854.handler
7339, 'access', _855 => _855.handleBody, 'call', _856 => _856(theme('transitionTimingFunction'))
7340, 'access', _857 => _857.createProperty, 'call', _858 => _858(['-webkit-transition-timing-function', '-o-transition-timing-function', 'transition-timing-function'])
7341, 'optionalAccess', _859 => _859.updateMeta, 'call', _860 => _860('utilities', 'transitionTimingFunction', pluginOrder.transitionTimingFunction, 1, true)]);
7342}
7343
7344// https://windicss.org/utilities/transitions.html#transition-delay
7345function delay(utility, { theme }) {
7346 return _optionalChain$1([utility, 'access', _861 => _861.handler
7347, 'access', _862 => _862.handleStatic, 'call', _863 => _863(theme('transitionDelay'))
7348, 'access', _864 => _864.handleSquareBrackets, 'call', _865 => _865()
7349, 'access', _866 => _866.handleTime, 'call', _867 => _867(0, undefined, 'float')
7350, 'access', _868 => _868.handleNumber, 'call', _869 => _869(0, undefined, 'int', (number) => `${number}ms`)
7351, 'access', _870 => _870.handleVariable, 'call', _871 => _871()
7352, 'access', _872 => _872.createProperty, 'call', _873 => _873(['-webkit-transition-delay', '-o-transition-delay', 'transition-delay'])
7353, 'optionalAccess', _874 => _874.updateMeta, 'call', _875 => _875('utilities', 'transitionDelay', pluginOrder.transitionDelay, 0, true)]);
7354}
7355
7356// https://windicss.org/utilities/behaviors.html#animation
7357function animation(utility, { theme, config }) {
7358 const body = utility.body;
7359 if (utility.raw.startsWith('animate-ease')) {
7360 return _optionalChain$1([utility, 'access', _876 => _876.clone, 'call', _877 => _877(utility.raw.slice(8)), 'access', _878 => _878.handler
7361, 'access', _879 => _879.handleBody, 'call', _880 => _880(theme('animationTimingFunction'))
7362, 'access', _881 => _881.handleSquareBrackets, 'call', _882 => _882()
7363, 'access', _883 => _883.createProperty, 'call', _884 => _884(['-webkit-animation-timing-function', 'animation-timing-function'])
7364, 'optionalAccess', _885 => _885.updateMeta, 'call', _886 => _886('utilities', 'animation', pluginOrder.animation, 20, true)]);
7365 }
7366 if (utility.raw.startsWith('animate-duration')) {
7367 return _optionalChain$1([utility, 'access', _887 => _887.clone, 'call', _888 => _888(utility.raw.slice(8)), 'access', _889 => _889.handler
7368, 'access', _890 => _890.handleStatic, 'call', _891 => _891(theme('animationDuration'))
7369, 'access', _892 => _892.handleSquareBrackets, 'call', _893 => _893()
7370, 'access', _894 => _894.handleTime, 'call', _895 => _895(0, undefined, 'float')
7371, 'access', _896 => _896.handleNumber, 'call', _897 => _897(0, undefined, 'int', (number) => `${number}ms`)
7372, 'access', _898 => _898.handleVariable, 'call', _899 => _899()
7373, 'access', _900 => _900.createProperty, 'call', _901 => _901(['-webkit-animation-duration', 'animation-duration'])
7374, 'optionalAccess', _902 => _902.updateMeta, 'call', _903 => _903('utilities', 'animation', pluginOrder.animation, 21, true)]);
7375 }
7376 if (utility.raw.startsWith('animate-delay')) {
7377 return _optionalChain$1([utility, 'access', _904 => _904.clone, 'call', _905 => _905(utility.raw.slice(8)), 'access', _906 => _906.handler
7378, 'access', _907 => _907.handleStatic, 'call', _908 => _908(theme('animationDelay'))
7379, 'access', _909 => _909.handleSquareBrackets, 'call', _910 => _910()
7380, 'access', _911 => _911.handleTime, 'call', _912 => _912(0, undefined, 'float')
7381, 'access', _913 => _913.handleNumber, 'call', _914 => _914(0, undefined, 'int', (number) => `${number}ms`)
7382, 'access', _915 => _915.handleVariable, 'call', _916 => _916()
7383, 'access', _917 => _917.createProperty, 'call', _918 => _918(['-webkit-animation-delay', 'animation-delay'])
7384, 'optionalAccess', _919 => _919.updateMeta, 'call', _920 => _920('utilities', 'animation', pluginOrder.animation, 22, true)]);
7385 }
7386 const animateIterationCount = utility.handler.handleBody(theme('animationIterationCount')).handleNumber(0, undefined, 'int').handleSquareBrackets().value;
7387 if (animateIterationCount) return new Property(['-webkit-animation-iteration-count', 'animation-iteration-count'], animateIterationCount).updateMeta('utilities', 'animation', pluginOrder.animation, 23, true);
7388 const animations = toType(theme('animation'), 'object') ;
7389 if (Object.keys(animations).includes(body)) {
7390 let value = animations[body];
7391 const prop = config('prefixer') ? ['-webkit-animation', 'animation'] : 'animation';
7392 if (value === 'none') return new Property(prop, 'none').updateMeta('utilities', 'animation', pluginOrder.animation, 1, true);
7393 let styles, keyframe;
7394 if (typeof value === 'string') {
7395 keyframe = _optionalChain$1([value, 'access', _921 => _921.match, 'call', _922 => _922(/^\w+/), 'optionalAccess', _923 => _923[0]]);
7396 styles = [ new Style(utility.class, new Property(prop, value)) ];
7397 } else {
7398 keyframe = value['animation'] || value['animationName'] || value['animation-name'];
7399 if (config('prefixer')) {
7400 const props = {};
7401 for (const [k, v] of Object.entries(value)) {
7402 if (k.startsWith('animation') || k.startsWith('backface')) {
7403 props['-webkit-' + k] = v;
7404 } else if (k.startsWith('transform')) {
7405 props['-webkit-' + k] = v;
7406 props['-ms-' + k] = v;
7407 }
7408 props[k] = v;
7409 }
7410 value = props;
7411 }
7412 styles = Style.generate(utility.class, value).map(i => i.updateMeta('utilities', 'animation', pluginOrder.animation, 2, true));
7413 }
7414
7415 if (styles) {
7416 return [
7417 ...styles.map(i => i.updateMeta('utilities', 'animation', pluginOrder.animation, 2, true)),
7418 ... keyframe ? Keyframes.generate(
7419 keyframe,
7420 (_nullishCoalesce$2(theme(`keyframes.${keyframe}`), () => ( {}))) ,
7421 undefined,
7422 config('prefixer', false)
7423 ).map(i => i.updateMeta('utilities', 'keyframes', pluginOrder.keyframes, 1, true)) : [],
7424 ];
7425 }
7426 }
7427}
7428
7429// https://windicss.org/utilities/transforms.html#transform-origin
7430function transformOrigin(utility, { theme }) {
7431 const body = utility.body;
7432 const origins = toType(theme('transformOrigin'), 'object') ;
7433 if (Object.keys(origins).includes(body)) return new Property(['-webkit-transform-origin', '-ms-transform-origin', 'transform-origin'], origins[body]).updateMeta('utilities', 'transformOrigin', pluginOrder.transformOrigin, 0, true);
7434}
7435
7436// https://windicss.org/utilities/transforms.html#transform-scale
7437function scale(utility, { theme }) {
7438 return utility.handler
7439 .handleStatic(theme('scale'))
7440 .handleNumber(0, undefined, 'int', (number) => (number / 100).toString())
7441 .handleVariable()
7442 .callback(value => {
7443 if (utility.raw.startsWith('scale-x')) return new Property('--tw-scale-x', value).updateMeta('utilities', 'scale', pluginOrder.scale, 2, true);
7444 if (utility.raw.startsWith('scale-y')) return new Property('--tw-scale-y', value).updateMeta('utilities', 'scale', pluginOrder.scale, 3, true);
7445 if (utility.raw.startsWith('scale-z')) return new Property('--tw-scale-z', value).updateMeta('utilities', 'scale', pluginOrder.scale, 4, true);
7446 return new Property(['--tw-scale-x', '--tw-scale-y', '--tw-scale-z'], value).updateMeta('utilities', 'scale', pluginOrder.scale, 1, true);
7447 });
7448}
7449
7450// https://windicss.org/utilities/transforms.html#transform-rotate
7451function rotate(utility, { theme }) {
7452 return utility.handler
7453 .handleStatic(theme('rotate'))
7454 .handleSquareBrackets()
7455 .handleNumber(0, undefined, 'float', (number) => `${number}deg`)
7456 .handleNegative()
7457 .handleVariable()
7458 .callback(value => {
7459 const abs = utility.absolute;
7460 if (abs.startsWith('rotate-x')) return new Property('--tw-rotate-x', value).updateMeta('utilities', 'rotate', pluginOrder.rotate, 2, true);
7461 if (abs.startsWith('rotate-y')) return new Property('--tw-rotate-y', value).updateMeta('utilities', 'rotate', pluginOrder.rotate, 3, true);
7462 if (abs.startsWith('rotate-z')) return new Property('--tw-rotate-z', value).updateMeta('utilities', 'rotate', pluginOrder.rotate, 4, true);
7463 return new Property('--tw-rotate', value).updateMeta('utilities', 'rotate', pluginOrder.rotate, 1, true);
7464 });
7465}
7466
7467// https://windicss.org/utilities/transforms.html#transform-translate
7468function translate(utility, { theme }) {
7469 const centerMatch = utility.raw.match(/^-?translate-[x|y|z]/);
7470 if (centerMatch) {
7471 const center = centerMatch[0].replace(/^-?translate-/, '');
7472 return _optionalChain$1([utility, 'access', _924 => _924.handler
7473, 'access', _925 => _925.handleStatic, 'call', _926 => _926(theme('translate'))
7474, 'access', _927 => _927.handleSquareBrackets, 'call', _928 => _928()
7475, 'access', _929 => _929.handleSpacing, 'call', _930 => _930()
7476, 'access', _931 => _931.handleFraction, 'call', _932 => _932()
7477, 'access', _933 => _933.handleSize, 'call', _934 => _934()
7478, 'access', _935 => _935.handleNegative, 'call', _936 => _936()
7479, 'access', _937 => _937.handleVariable, 'call', _938 => _938()
7480, 'access', _939 => _939.createProperty, 'call', _940 => _940(`--tw-translate-${center}`)
7481, 'optionalAccess', _941 => _941.updateMeta, 'call', _942 => _942('utilities', 'translate', pluginOrder.translate, utility.raw.charAt(0) === '-' ? 2 : 1, true)]);
7482 }
7483}
7484
7485// https://windicss.org/utilities/transforms.html#transform-skew
7486function skew(utility, { theme }) {
7487 const centerMatch = utility.raw.match(/^-?skew-[x|y]/);
7488 if (centerMatch) {
7489 const center = centerMatch[0].replace(/^-?skew-/, '');
7490 return _optionalChain$1([utility, 'access', _943 => _943.handler
7491, 'access', _944 => _944.handleStatic, 'call', _945 => _945(theme('skew'))
7492, 'access', _946 => _946.handleSquareBrackets, 'call', _947 => _947()
7493, 'access', _948 => _948.handleNumber, 'call', _949 => _949(0, undefined, 'float', (number) => `${number}deg`)
7494, 'access', _950 => _950.handleNegative, 'call', _951 => _951()
7495, 'access', _952 => _952.handleVariable, 'call', _953 => _953()
7496, 'access', _954 => _954.createProperty, 'call', _955 => _955(`--tw-skew-${center}`)
7497, 'optionalAccess', _956 => _956.updateMeta, 'call', _957 => _957('utilities', 'skew', pluginOrder.skew, utility.raw.charAt(0) === '-' ? 2 : 1, true)]);
7498 }
7499}
7500
7501// https://windicss.org/utilities/transforms.html#perspective
7502function perspective(utility, { theme }) {
7503 if (utility.raw.startsWith('perspect-origin')) {
7504 const origin = _optionalChain$1([utility, 'access', _958 => _958.clone, 'call', _959 => _959('perspectOrigin' + utility.raw.slice(15)), 'access', _960 => _960.handler
7505, 'access', _961 => _961.handleBody, 'call', _962 => _962(theme('perspectiveOrigin'))
7506, 'access', _963 => _963.handleSquareBrackets, 'call', _964 => _964()
7507, 'access', _965 => _965.createProperty, 'call', _966 => _966(['-webkit-perspective-origin', 'perspective-origin'])
7508, 'optionalAccess', _967 => _967.updateMeta, 'call', _968 => _968('utilities', 'perspectiveOrigin', pluginOrder.perspectiveOrigin, 0, true)]);
7509 if (origin) return origin;
7510 }
7511 return _optionalChain$1([utility, 'access', _969 => _969.handler
7512, 'access', _970 => _970.handleStatic, 'call', _971 => _971(theme('perspective'))
7513, 'access', _972 => _972.handleNumber, 'call', _973 => _973(0, undefined, 'int', number => `${number}px`)
7514, 'access', _974 => _974.handleSize, 'call', _975 => _975()
7515, 'access', _976 => _976.handleSquareBrackets, 'call', _977 => _977()
7516, 'access', _978 => _978.createProperty, 'call', _979 => _979(['-webkit-perspective', 'perspective'])
7517, 'optionalAccess', _980 => _980.updateMeta, 'call', _981 => _981('utilities', 'perspective', pluginOrder.perspective, 0, true)]);
7518}
7519
7520// https://windicss.org/utilities/behaviors.html#cursor
7521function cursor(utility, { theme }) {
7522 const body = utility.body;
7523 const cursors = toType(theme('cursor'), 'object') ;
7524 if (Object.keys(cursors).includes(body)) return new Property('cursor', cursors[body]).updateMeta('utilities', 'cursor', pluginOrder.cursor, 1, true);
7525}
7526
7527// https://windicss.org/utilities/behaviors.html#outline
7528function outline(utility, { theme }) {
7529 const amount = utility.amount;
7530 const staticMap = toType(theme('outline'), 'object') ;
7531 if (Object.keys(staticMap).includes(amount))
7532 return new Style(utility.class, [ new Property('outline', staticMap[amount][0]), new Property('outline-offset', staticMap[amount][1]) ]).updateMeta('utilities', 'outline', pluginOrder.outline, 1, true);
7533
7534 if (utility.raw.startsWith('outline-opacity')) {
7535 return _optionalChain$1([utility, 'access', _982 => _982.handler
7536, 'access', _983 => _983.handleStatic, 'call', _984 => _984(theme('opacity'))
7537, 'access', _985 => _985.handleNumber, 'call', _986 => _986(0, 100, 'int', (number) => (number / 100).toString())
7538, 'access', _987 => _987.handleVariable, 'call', _988 => _988()
7539, 'access', _989 => _989.createProperty, 'call', _990 => _990('--tw-outline-opacity')
7540, 'optionalAccess', _991 => _991.updateMeta, 'call', _992 => _992('utilities', 'outline', pluginOrder.outline, 4, true)]);
7541 }
7542
7543 if (utility.raw.match(/^outline-(solid|dotted)/)) {
7544 const newUtility = utility.clone(utility.raw.replace('outline-', ''));
7545 const outlineColor = newUtility.handler
7546 .handleStatic({ none: 'transparent', white: 'white', black: 'black' })
7547 .handleColor()
7548 .handleOpacity(theme('opacity'))
7549 .handleVariable()
7550 .createColorValue('var(--tw-outline-opacity, 1)');
7551
7552 if (outlineColor) return new Style(utility.class, [
7553 new Property('outline', `2px ${newUtility.identifier} ${outlineColor}`),
7554 new Property('outline-offset', '2px') ]
7555 ).updateMeta('utilities', 'outline', pluginOrder.outline, 3, true);
7556 }
7557
7558 const handler = utility.handler.handleColor().handleOpacity(theme('opacity')).handleSquareBrackets().handleVariable((variable) => utility.raw.startsWith('outline-$') ? `var(--${variable})` : undefined);
7559 const color = handler.createColorValue();
7560 if (color) return _optionalChain$1([new Style(utility.class, [
7561 new Property('outline', `2px ${ handler.value === 'transparent' ? 'solid' : 'dotted'} ${color}`),
7562 new Property('outline-offset', '2px'),
7563 ]), 'optionalAccess', _993 => _993.updateMeta, 'call', _994 => _994('utilities', 'outline', pluginOrder.outline, 2, true)]);
7564}
7565
7566// https://windicss.org/utilities/svg.html#fill-color
7567function fill(utility, { theme }) {
7568 if (utility.raw.startsWith('fill-opacity')) {
7569 return _optionalChain$1([utility, 'access', _995 => _995.handler
7570, 'access', _996 => _996.handleStatic, 'call', _997 => _997(theme('opacity'))
7571, 'access', _998 => _998.handleNumber, 'call', _999 => _999(0, 100, 'int', (number) => (number / 100).toString())
7572, 'access', _1000 => _1000.handleVariable, 'call', _1001 => _1001()
7573, 'access', _1002 => _1002.createProperty, 'call', _1003 => _1003('--tw-fill-opacity')
7574, 'optionalAccess', _1004 => _1004.updateMeta, 'call', _1005 => _1005('utilities', 'fill', pluginOrder.ringOffsetColor, 2, true)]);
7575 }
7576 return _optionalChain$1([utility, 'access', _1006 => _1006.handler
7577, 'access', _1007 => _1007.handleColor, 'call', _1008 => _1008(theme('fill'))
7578, 'access', _1009 => _1009.handleOpacity, 'call', _1010 => _1010(theme('opacity'))
7579, 'access', _1011 => _1011.handleSquareBrackets, 'call', _1012 => _1012()
7580, 'access', _1013 => _1013.handleVariable, 'call', _1014 => _1014()
7581, 'access', _1015 => _1015.createColorStyle, 'call', _1016 => _1016(utility.class, 'fill', '--tw-fill-opacity')
7582, 'optionalAccess', _1017 => _1017.updateMeta, 'call', _1018 => _1018('utilities', 'fill', pluginOrder.fill, 1, true)]);
7583}
7584
7585// https://windicss.org/utilities/svg.html#stroke-color
7586// https://windicss.org/utilities/svg.html#stroke-width
7587function stroke(utility, { theme }) {
7588 if (utility.raw.startsWith('stroke-dash')) {
7589 return _optionalChain$1([utility, 'access', _1019 => _1019.handler, 'access', _1020 => _1020.handleNumber, 'call', _1021 => _1021(), 'access', _1022 => _1022.createProperty, 'call', _1023 => _1023('stroke-dasharray'), 'optionalAccess', _1024 => _1024.updateMeta, 'call', _1025 => _1025('utilities', 'strokeDashArray', pluginOrder.strokeDashArray, 0, true)]);
7590 }
7591 if (utility.raw.startsWith('stroke-offset')) {
7592 return _optionalChain$1([utility, 'access', _1026 => _1026.handler, 'access', _1027 => _1027.handleNumber, 'call', _1028 => _1028(), 'access', _1029 => _1029.createProperty, 'call', _1030 => _1030('stroke-dashoffset'), 'optionalAccess', _1031 => _1031.updateMeta, 'call', _1032 => _1032('utilities', 'strokeDashOffset', pluginOrder.strokeDashOffset, 0, true)]);
7593 }
7594
7595 if (utility.raw.startsWith('stroke-opacity')) {
7596 return _optionalChain$1([utility, 'access', _1033 => _1033.handler
7597, 'access', _1034 => _1034.handleStatic, 'call', _1035 => _1035(theme('opacity'))
7598, 'access', _1036 => _1036.handleNumber, 'call', _1037 => _1037(0, 100, 'int', (number) => (number / 100).toString())
7599, 'access', _1038 => _1038.handleVariable, 'call', _1039 => _1039()
7600, 'access', _1040 => _1040.createProperty, 'call', _1041 => _1041('--tw-stroke-opacity')
7601, 'optionalAccess', _1042 => _1042.updateMeta, 'call', _1043 => _1043('utilities', 'stroke', pluginOrder.stroke, 2, true)]);
7602 }
7603 return _optionalChain$1([utility, 'access', _1044 => _1044.handler
7604, 'access', _1045 => _1045.handleColor, 'call', _1046 => _1046(theme('stroke'))
7605, 'access', _1047 => _1047.handleOpacity, 'call', _1048 => _1048(theme('opacity'))
7606, 'access', _1049 => _1049.handleVariable, 'call', _1050 => _1050()
7607, 'access', _1051 => _1051.handleSquareBrackets, 'call', _1052 => _1052()
7608, 'access', _1053 => _1053.createColorStyle, 'call', _1054 => _1054(utility.class, 'stroke', '--tw-stroke-opacity')
7609, 'optionalAccess', _1055 => _1055.updateMeta, 'call', _1056 => _1056('utilities', 'stroke', pluginOrder.stroke, 1, true)])
7610 || (utility.raw.startsWith('stroke-$')
7611 ? _optionalChain$1([utility, 'access', _1057 => _1057.handler
7612, 'access', _1058 => _1058.handleVariable, 'call', _1059 => _1059()
7613, 'access', _1060 => _1060.createProperty, 'call', _1061 => _1061('stroke-width')
7614, 'optionalAccess', _1062 => _1062.updateMeta, 'call', _1063 => _1063('utilities', 'strokeWidth', pluginOrder.strokeWidth, 2, true)])
7615 : _optionalChain$1([utility, 'access', _1064 => _1064.handler
7616, 'access', _1065 => _1065.handleStatic, 'call', _1066 => _1066(theme('strokeWidth'))
7617, 'access', _1067 => _1067.handleNumber, 'call', _1068 => _1068(0, undefined, 'int')
7618, 'access', _1069 => _1069.createProperty, 'call', _1070 => _1070('stroke-width')
7619, 'optionalAccess', _1071 => _1071.updateMeta, 'call', _1072 => _1072('utilities', 'strokeWidth', pluginOrder.strokeWidth, 1, true)])
7620 );
7621}
7622
7623function content(utility, { theme }) {
7624 if (!utility.raw.startsWith('content-'))
7625 return;
7626 return _optionalChain$1([utility, 'access', _1073 => _1073.handler
7627, 'access', _1074 => _1074.handleBody, 'call', _1075 => _1075(theme('content'))
7628, 'access', _1076 => _1076.handleSquareBrackets, 'call', _1077 => _1077()
7629, 'access', _1078 => _1078.handleVariable, 'call', _1079 => _1079()
7630, 'access', _1080 => _1080.handleString, 'call', _1081 => _1081((string) => `"${string}"`)
7631, 'access', _1082 => _1082.createProperty, 'call', _1083 => _1083('content')
7632, 'optionalAccess', _1084 => _1084.updateMeta, 'call', _1085 => _1085('utilities', 'content', pluginOrder.content, 1, true)]);
7633}
7634
7635const dynamicUtilities = {
7636 container: container,
7637 space: space,
7638 divide: divide,
7639 bg: background,
7640 from: gradientColorFrom,
7641 via: gradientColorVia,
7642 to: gradientColorTo,
7643 border: border,
7644 rounded: borderRadius,
7645 cursor: cursor,
7646 flex: flex,
7647 order: order,
7648 font: font,
7649 h: size,
7650 leading: lineHeight,
7651 list: listStyleType,
7652 m: margin,
7653 my: margin,
7654 mx: margin,
7655 mt: margin,
7656 mr: margin,
7657 mb: margin,
7658 ml: margin,
7659 min: minMaxSize,
7660 max: minMaxSize,
7661 object: objectPosition,
7662 opacity: opacity,
7663 outline: outline,
7664 p: padding,
7665 py: padding,
7666 px: padding,
7667 pt: padding,
7668 pr: padding,
7669 pb: padding,
7670 pl: padding,
7671 placeholder: placeholder,
7672 caret: caret,
7673 tab: tabSize,
7674 indent: textIndent,
7675 inset: inset,
7676 top: inset,
7677 right: inset,
7678 bottom: inset,
7679 left: inset,
7680 shadow: boxShadow,
7681 ring: ring,
7682 blur: blur,
7683 brightness: brightness,
7684 contrast: contrast,
7685 drop: dropShadow,
7686 grayscale: grayscale,
7687 hue: hueRotate,
7688 invert: invert,
7689 saturate: saturate,
7690 sepia: sepia,
7691 backdrop: backdrop,
7692 fill: fill,
7693 stroke: stroke,
7694 text: text,
7695 tracking: letterSpacing,
7696 underline: textDecoration,
7697 w: size,
7698 z: zIndex,
7699 gap: gap,
7700 auto: gridAuto,
7701 grid: gridTemplate,
7702 col: gridColumn,
7703 row: gridRow,
7704 origin: transformOrigin,
7705 scale: scale,
7706 rotate: rotate,
7707 translate: translate,
7708 skew: skew,
7709 perspect: perspective,
7710 transition: transition,
7711 ease: transitionTimingFunction,
7712 duration: duration,
7713 delay: delay,
7714 content: content,
7715 animate: animation,
7716};
7717
7718const colors = {
7719 black: '#000',
7720 white: '#fff',
7721 rose: {
7722 50: '#fff1f2',
7723 100: '#ffe4e6',
7724 200: '#fecdd3',
7725 300: '#fda4af',
7726 400: '#fb7185',
7727 500: '#f43f5e',
7728 600: '#e11d48',
7729 700: '#be123c',
7730 800: '#9f1239',
7731 900: '#881337',
7732 },
7733 pink: {
7734 50: '#fdf2f8',
7735 100: '#fce7f3',
7736 200: '#fbcfe8',
7737 300: '#f9a8d4',
7738 400: '#f472b6',
7739 500: '#ec4899',
7740 600: '#db2777',
7741 700: '#be185d',
7742 800: '#9d174d',
7743 900: '#831843',
7744 },
7745 fuchsia: {
7746 50: '#fdf4ff',
7747 100: '#fae8ff',
7748 200: '#f5d0fe',
7749 300: '#f0abfc',
7750 400: '#e879f9',
7751 500: '#d946ef',
7752 600: '#c026d3',
7753 700: '#a21caf',
7754 800: '#86198f',
7755 900: '#701a75',
7756 },
7757 purple: {
7758 50: '#faf5ff',
7759 100: '#f3e8ff',
7760 200: '#e9d5ff',
7761 300: '#d8b4fe',
7762 400: '#c084fc',
7763 500: '#a855f7',
7764 600: '#9333ea',
7765 700: '#7e22ce',
7766 800: '#6b21a8',
7767 900: '#581c87',
7768 },
7769 violet: {
7770 50: '#f5f3ff',
7771 100: '#ede9fe',
7772 200: '#ddd6fe',
7773 300: '#c4b5fd',
7774 400: '#a78bfa',
7775 500: '#8b5cf6',
7776 600: '#7c3aed',
7777 700: '#6d28d9',
7778 800: '#5b21b6',
7779 900: '#4c1d95',
7780 },
7781 indigo: {
7782 50: '#eef2ff',
7783 100: '#e0e7ff',
7784 200: '#c7d2fe',
7785 300: '#a5b4fc',
7786 400: '#818cf8',
7787 500: '#6366f1',
7788 600: '#4f46e5',
7789 700: '#4338ca',
7790 800: '#3730a3',
7791 900: '#312e81',
7792 },
7793 blue: {
7794 50: '#eff6ff',
7795 100: '#dbeafe',
7796 200: '#bfdbfe',
7797 300: '#93c5fd',
7798 400: '#60a5fa',
7799 500: '#3b82f6',
7800 600: '#2563eb',
7801 700: '#1d4ed8',
7802 800: '#1e40af',
7803 900: '#1e3a8a',
7804 },
7805 lightBlue: {
7806 50: '#f0f9ff',
7807 100: '#e0f2fe',
7808 200: '#bae6fd',
7809 300: '#7dd3fc',
7810 400: '#38bdf8',
7811 500: '#0ea5e9',
7812 600: '#0284c7',
7813 700: '#0369a1',
7814 800: '#075985',
7815 900: '#0c4a6e',
7816 },
7817 sky: {
7818 50: '#f0f9ff',
7819 100: '#e0f2fe',
7820 200: '#bae6fd',
7821 300: '#7dd3fc',
7822 400: '#38bdf8',
7823 500: '#0ea5e9',
7824 600: '#0284c7',
7825 700: '#0369a1',
7826 800: '#075985',
7827 900: '#0c4a6e',
7828 },
7829 cyan: {
7830 50: '#ecfeff',
7831 100: '#cffafe',
7832 200: '#a5f3fc',
7833 300: '#67e8f9',
7834 400: '#22d3ee',
7835 500: '#06b6d4',
7836 600: '#0891b2',
7837 700: '#0e7490',
7838 800: '#155e75',
7839 900: '#164e63',
7840 },
7841 teal: {
7842 50: '#f0fdfa',
7843 100: '#ccfbf1',
7844 200: '#99f6e4',
7845 300: '#5eead4',
7846 400: '#2dd4bf',
7847 500: '#14b8a6',
7848 600: '#0d9488',
7849 700: '#0f766e',
7850 800: '#115e59',
7851 900: '#134e4a',
7852 },
7853 emerald: {
7854 50: '#ecfdf5',
7855 100: '#d1fae5',
7856 200: '#a7f3d0',
7857 300: '#6ee7b7',
7858 400: '#34d399',
7859 500: '#10b981',
7860 600: '#059669',
7861 700: '#047857',
7862 800: '#065f46',
7863 900: '#064e3b',
7864 },
7865 green: {
7866 50: '#f0fdf4',
7867 100: '#dcfce7',
7868 200: '#bbf7d0',
7869 300: '#86efac',
7870 400: '#4ade80',
7871 500: '#22c55e',
7872 600: '#16a34a',
7873 700: '#15803d',
7874 800: '#166534',
7875 900: '#14532d',
7876 },
7877 lime: {
7878 50: '#f7fee7',
7879 100: '#ecfccb',
7880 200: '#d9f99d',
7881 300: '#bef264',
7882 400: '#a3e635',
7883 500: '#84cc16',
7884 600: '#65a30d',
7885 700: '#4d7c0f',
7886 800: '#3f6212',
7887 900: '#365314',
7888 },
7889 yellow: {
7890 50: '#fefce8',
7891 100: '#fef9c3',
7892 200: '#fef08a',
7893 300: '#fde047',
7894 400: '#facc15',
7895 500: '#eab308',
7896 600: '#ca8a04',
7897 700: '#a16207',
7898 800: '#854d0e',
7899 900: '#713f12',
7900 },
7901 amber: {
7902 50: '#fffbeb',
7903 100: '#fef3c7',
7904 200: '#fde68a',
7905 300: '#fcd34d',
7906 400: '#fbbf24',
7907 500: '#f59e0b',
7908 600: '#d97706',
7909 700: '#b45309',
7910 800: '#92400e',
7911 900: '#78350f',
7912 },
7913 orange: {
7914 50: '#fff7ed',
7915 100: '#ffedd5',
7916 200: '#fed7aa',
7917 300: '#fdba74',
7918 400: '#fb923c',
7919 500: '#f97316',
7920 600: '#ea580c',
7921 700: '#c2410c',
7922 800: '#9a3412',
7923 900: '#7c2d12',
7924 },
7925 red: {
7926 50: '#fef2f2',
7927 100: '#fee2e2',
7928 200: '#fecaca',
7929 300: '#fca5a5',
7930 400: '#f87171',
7931 500: '#ef4444',
7932 600: '#dc2626',
7933 700: '#b91c1c',
7934 800: '#991b1b',
7935 900: '#7f1d1d',
7936 },
7937 warmGray: {
7938 50: '#fafaf9',
7939 100: '#f5f5f4',
7940 200: '#e7e5e4',
7941 300: '#d6d3d1',
7942 400: '#a8a29e',
7943 500: '#78716c',
7944 600: '#57534e',
7945 700: '#44403c',
7946 800: '#292524',
7947 900: '#1c1917',
7948 },
7949 trueGray: {
7950 50: '#fafafa',
7951 100: '#f5f5f5',
7952 200: '#e5e5e5',
7953 300: '#d4d4d4',
7954 400: '#a3a3a3',
7955 500: '#737373',
7956 600: '#525252',
7957 700: '#404040',
7958 800: '#262626',
7959 900: '#171717',
7960 },
7961 gray: {
7962 50: '#fafafa',
7963 100: '#f4f4f5',
7964 200: '#e4e4e7',
7965 300: '#d4d4d8',
7966 400: '#a1a1aa',
7967 500: '#71717a',
7968 600: '#52525b',
7969 700: '#3f3f46',
7970 800: '#27272a',
7971 900: '#18181b',
7972 },
7973 coolGray: {
7974 50: '#f9fafb',
7975 100: '#f3f4f6',
7976 200: '#e5e7eb',
7977 300: '#d1d5db',
7978 400: '#9ca3af',
7979 500: '#6b7280',
7980 600: '#4b5563',
7981 700: '#374151',
7982 800: '#1f2937',
7983 900: '#111827',
7984 },
7985 blueGray: {
7986 50: '#f8fafc',
7987 100: '#f1f5f9',
7988 200: '#e2e8f0',
7989 300: '#cbd5e1',
7990 400: '#94a3b8',
7991 500: '#64748b',
7992 600: '#475569',
7993 700: '#334155',
7994 800: '#1e293b',
7995 900: '#0f172a',
7996 },
7997 light: {
7998 50: '#fdfdfd',
7999 100: '#fcfcfc',
8000 200: '#fafafa',
8001 300: '#f8f9fa',
8002 400: '#f6f6f6',
8003 500: '#f2f2f2',
8004 600: '#f1f3f5',
8005 700: '#e9ecef',
8006 800: '#dee2e6',
8007 900: '#dde1e3',
8008 },
8009 dark: {
8010 50: '#4a4a4a',
8011 100: '#3c3c3c',
8012 200: '#323232',
8013 300: '#2d2d2d',
8014 400: '#222222',
8015 500: '#1f1f1f',
8016 600: '#1c1c1e',
8017 700: '#1b1b1b',
8018 800: '#181818',
8019 900: '#0f0f0f',
8020 },
8021};
8022
8023const keyframes = {
8024 spin: {
8025 from: {
8026 transform: 'rotate(0deg)',
8027 },
8028 to: {
8029 transform: 'rotate(360deg)',
8030 },
8031 },
8032 ping: {
8033 '0%': {
8034 transform: 'scale(1)',
8035 opacity: '1',
8036 },
8037 '75%, 100%': {
8038 transform: 'scale(2)',
8039 opacity: '0',
8040 },
8041 },
8042 pulse: {
8043 '0%, 100%': {
8044 opacity: '1',
8045 },
8046 '50%': {
8047 opacity: '.5',
8048 },
8049 },
8050 bounce: {
8051 '0%, 100%': {
8052 transform: 'translateY(-25%)',
8053 animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',
8054 },
8055 '50%': {
8056 transform: 'translateY(0)',
8057 animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',
8058 },
8059 },
8060 shock: {
8061 'from, 20%, 53%, 80%, to': {
8062 animationTimingFunction: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
8063 transform: 'translate3d(0, 0, 0)',
8064 },
8065 '40%, 43%': {
8066 animationTimingFunction: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',
8067 transform: 'translate3d(0, -30px, 0)',
8068 },
8069 '70%': {
8070 animationTimingFunction: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',
8071 transform: 'translate3d(0, -15px, 0)',
8072 },
8073 '90%': {
8074 transform: 'translate3d(0, -4px, 0)',
8075 },
8076 },
8077 flash: {
8078 'from, 50%, to': {
8079 opacity: '1',
8080 },
8081 '25%, 75%': {
8082 opacity: '0',
8083 },
8084 },
8085 bubble: {
8086 'from': {
8087 transform: 'scale3d(1, 1, 1)',
8088 },
8089 '50%': {
8090 transform: 'scale3d(1.05, 1.05, 1.05)',
8091 },
8092 'to': {
8093 transform: 'scale3d(1, 1, 1)',
8094 },
8095 },
8096 rubberBand: {
8097 'from': {
8098 transform: 'scale3d(1, 1, 1)',
8099 },
8100 '30%': {
8101 transform: 'scale3d(1.25, 0.75, 1)',
8102 },
8103 '40%': {
8104 transform: 'scale3d(0.75, 1.25, 1)',
8105 },
8106 '50%': {
8107 transform: 'scale3d(1.15, 0.85, 1)',
8108 },
8109 '65%': {
8110 transform: 'scale3d(0.95, 1.05, 1)',
8111 },
8112 '75%': {
8113 transform: 'scale3d(1.05, 0.95, 1)',
8114 },
8115 'to': {
8116 transform: 'scale3d(1, 1, 1)',
8117 },
8118 },
8119 shakeX: {
8120 'from, to': {
8121 transform: 'translate3d(0, 0, 0)',
8122 },
8123 '10%, 30%, 50%, 70%, 90%': {
8124 transform: 'translate3d(-10px, 0, 0)',
8125 },
8126 '20%, 40%, 60%, 80%': {
8127 transform: 'translate3d(10px, 0, 0)',
8128 },
8129 },
8130 shakeY: {
8131 'from, to': {
8132 transform: 'translate3d(0, 0, 0)',
8133 },
8134 '10%, 30%, 50%, 70%, 90%': {
8135 transform: 'translate3d(0, -10px, 0)',
8136 },
8137 '20%, 40%, 60%, 80%': {
8138 transform: 'translate3d(0, 10px, 0)',
8139 },
8140 },
8141 headShake: {
8142 '0%': {
8143 transform: 'translateX(0)',
8144 },
8145 '6.5%': {
8146 transform: 'translateX(-6px) rotateY(-9deg)',
8147 },
8148 '18.5%': {
8149 transform: 'translateX(5px) rotateY(7deg)',
8150 },
8151 '31.5%': {
8152 transform: 'translateX(-3px) rotateY(-5deg)',
8153 },
8154 '43.5%': {
8155 transform: 'translateX(2px) rotateY(3deg)',
8156 },
8157 '50%': {
8158 transform: 'translateX(0)',
8159 },
8160 },
8161 swing: {
8162 '20%': {
8163 transform: 'rotate3d(0, 0, 1, 15deg)',
8164 },
8165 '40%': {
8166 transform: 'rotate3d(0, 0, 1, -10deg)',
8167 },
8168 '60%': {
8169 transform: 'rotate3d(0, 0, 1, 5deg)',
8170 },
8171 '80%': {
8172 transform: 'rotate3d(0, 0, 1, -5deg)',
8173 },
8174 'to': {
8175 transform: 'rotate3d(0, 0, 1, 0deg)',
8176 },
8177 },
8178 tada: {
8179 'from': {
8180 transform: 'scale3d(1, 1, 1)',
8181 },
8182 '10%, 20%': {
8183 transform: 'scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)',
8184 },
8185 '30%, 50%, 70%, 90%': {
8186 transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)',
8187 },
8188 '40%, 60%, 80%': {
8189 transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)',
8190 },
8191 'to': {
8192 transform: 'scale3d(1, 1, 1)',
8193 },
8194 },
8195 wobble: {
8196 'from': {
8197 transform: 'translate3d(0, 0, 0)',
8198 },
8199 '15%': {
8200 transform: 'translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)',
8201 },
8202 '30%': {
8203
8204 transform: 'translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)',
8205 },
8206 '45%': {
8207 transform: 'translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)',
8208 },
8209 '60%': {
8210 transform: 'translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)',
8211 },
8212 '75%': {
8213 transform: 'translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)',
8214 },
8215 'to': {
8216 transform: 'translate3d(0, 0, 0)',
8217 },
8218 },
8219 jello: {
8220 'from, 11.1% to': {
8221 transform: 'translate3d(0, 0, 0)',
8222 },
8223 '22.2%': {
8224 transform: 'skewX(-12.5deg) skewY(-12.5deg)',
8225 },
8226 '33.3%': {
8227
8228 transform: 'skewX(6.25deg) skewY(6.25deg)',
8229 },
8230 '44.4%': {
8231 transform: 'skewX(-3.125deg) skewY(-3.125deg)',
8232 },
8233 '55.5%': {
8234 transform: 'skewX(1.5625deg) skewY(1.5625deg)',
8235 },
8236 '66.6%': {
8237 transform: 'skewX(-0.78125deg) skewY(-0.78125deg)',
8238 },
8239 '77.7%': {
8240 transform: 'skewX(0.390625deg) skewY(0.390625deg)',
8241 },
8242 '88.8%': {
8243 transform: 'skewX(-0.1953125deg) skewY(-0.1953125deg)',
8244 },
8245 },
8246 heartBeat: {
8247 '0%': {
8248 transform: 'scale(1)',
8249 },
8250 '14%': {
8251 transform: 'scale(1.3)',
8252 },
8253 '28%': {
8254 transform: 'scale(1)',
8255 },
8256 '42%': {
8257 transform: 'scale(1.3)',
8258 },
8259 '70%': {
8260 transform: 'scale(1)',
8261 },
8262 },
8263 hinge: {
8264 '0%': {
8265 transformOrigin: 'top left',
8266 animationTimingFunction: 'ease-in-out',
8267 },
8268 '20%, 60%': {
8269 transform: 'rotate3d(0, 0, 1, 80deg)',
8270 transformOrigin: 'top left',
8271 animationTimingFunction: 'ease-in-out',
8272 },
8273 '40%, 80%': {
8274 transform: 'rotate3d(0, 0, 1, 60deg)',
8275 transformOrigin: 'top left',
8276 animationTimingFunction: 'ease-in-out',
8277 },
8278 'to': {
8279 transform: 'translate3d(0, 700px, 0)',
8280 opacity: '0',
8281 },
8282 },
8283 jackInTheBox: {
8284 'from': {
8285 opacity: '0',
8286 transformOrigin: 'center bottom',
8287 transform: 'scale(0.1) rotate(30deg)',
8288 },
8289 '50%': {
8290 transform: 'rotate(-10deg)',
8291 },
8292 '70%': {
8293 transform: 'rotate(3deg)',
8294 },
8295 'to': {
8296 transform: 'scale(1)',
8297 },
8298 },
8299
8300 // light speed
8301 lightSpeedInRight: {
8302 'from': {
8303 opacity: '0',
8304 transform: 'translate3d(100%, 0, 0) skewX(-30deg)',
8305 },
8306 '60%': {
8307 opacity: '1',
8308 transform: 'skewX(20deg)',
8309 },
8310 '80%': {
8311 transform: 'skewX(-5deg)',
8312 },
8313 'to': {
8314 transform: 'translate3d(0, 0, 0)',
8315 },
8316 },
8317 lightSpeedInLeft: {
8318 'from': {
8319 opacity: '0',
8320 transform: 'translate3d(100%, 0, 0) skewX(-30deg)',
8321 },
8322 '60%': {
8323 opacity: '1',
8324 transform: 'skewX(20deg)',
8325 },
8326 '80%': {
8327 transform: 'skewX(-5deg)',
8328 },
8329 'to': {
8330 transform: 'translate3d(0, 0, 0)',
8331 },
8332 },
8333 lightSpeedOutLeft: {
8334 'from': {
8335 opacity: '1',
8336 },
8337 'to': {
8338 opacity: '0',
8339 transform: 'translate3d(100%, 0, 0) skewX(30deg)',
8340 },
8341 },
8342 lightSpeedOutRight: {
8343 'from': {
8344 opacity: '1',
8345 },
8346 'to': {
8347 opacity: '0',
8348 transform: 'translate3d(100%, 0, 0) skewX(30deg)',
8349 },
8350 },
8351 // flip
8352 flip: {
8353 'from': {
8354 transform: 'perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg)',
8355 animationTimingFunction: 'ease-out',
8356 },
8357 '40%': {
8358 transform: 'perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg)',
8359 animationTimingFunction: 'ease-out',
8360 },
8361 '50%': {
8362 transform: 'perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg)',
8363 animationTimingFunction: 'ease-in',
8364 },
8365 '80%': {
8366 transform: 'perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg)',
8367 animationTimingFunction: 'ease-in',
8368 },
8369 'to': {
8370 transform: 'perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg)',
8371 animationTimingFunction: 'ease-in',
8372 },
8373 },
8374 flipInX: {
8375 'from': {
8376 transform: 'perspective(400px) rotate3d(1, 0, 0, 90deg)',
8377 animationTimingFunction: 'ease-in',
8378 opacity: '0',
8379 },
8380 '40%': {
8381 transform: 'perspective(400px) rotate3d(1, 0, 0, -20deg)',
8382 animationTimingFunction: 'ease-in',
8383 },
8384 '60%': {
8385 transform: 'perspective(400px) rotate3d(1, 0, 0, 10deg)',
8386 opacity: '1',
8387 },
8388 '80%': {
8389 transform: 'perspective(400px) rotate3d(1, 0, 0, -5deg)',
8390 },
8391 'to': {
8392 transform: 'perspective(400px)',
8393 },
8394 },
8395 flipInY: {
8396 'from': {
8397 transform: 'perspective(400px) rotate3d(0, 1, 0, 90deg)',
8398 animationTimingFunction: 'ease-in',
8399 opacity: '0',
8400 },
8401 '40%': {
8402 transform: 'perspective(400px) rotate3d(0, 1, 0, -20deg)',
8403 animationTimingFunction: 'ease-in',
8404 },
8405 '60%': {
8406 transform: 'perspective(400px) rotate3d(0, 1, 0, 10deg)',
8407 opacity: '1',
8408 },
8409 '80%': {
8410 transform: 'perspective(400px) rotate3d(0, 1, 0, -5deg)',
8411 },
8412 'to': {
8413 transform: 'perspective(400px)',
8414 },
8415 },
8416 flipOutX: {
8417 'from': {
8418 transform: 'perspective(400px)',
8419 },
8420 '30%': {
8421 transform: 'perspective(400px) rotate3d(1, 0, 0, -20deg)',
8422 opacity: '1',
8423 },
8424 'to': {
8425 transform: 'perspective(400px) rotate3d(1, 0, 0, 90deg)',
8426 opacity: '0',
8427 },
8428 },
8429 flipOutY: {
8430 'from': {
8431 transform: 'perspective(400px)',
8432 },
8433 '30%': {
8434 transform: 'perspective(400px) rotate3d(0, 1, 0, -15deg)',
8435 opacity: '1',
8436 },
8437 'to': {
8438 transform: 'perspective(400px) rotate3d(0, 1, 0, 90deg)',
8439 opacity: '0',
8440 },
8441 },
8442 // rotate in
8443 rotateIn: {
8444 'from': {
8445 transformOrigin: 'center',
8446 transform: 'rotate3d(0, 0, 1, -200deg)',
8447 opacity: '0',
8448 },
8449 'to': {
8450 transformOrigin: 'center',
8451 transform: 'translate3d(0, 0, 0)',
8452 opacity: '1',
8453 },
8454 },
8455 rotateInDownLeft: {
8456 'from': {
8457 transformOrigin: 'left bottom',
8458 transform: 'rotate3d(0, 0, 1, -45deg)',
8459 opacity: '0',
8460 },
8461 'to': {
8462 transformOrigin: 'left bottom',
8463 transform: 'translate3d(0, 0, 0)',
8464 opacity: '1',
8465 },
8466 },
8467 rotateInDownRight: {
8468 'from': {
8469 transformOrigin: 'right bottom',
8470 transform: 'rotate3d(0, 0, 1, 45deg)',
8471 opacity: '0',
8472 },
8473 'to': {
8474 transformOrigin: 'right bottom',
8475 transform: 'translate3d(0, 0, 0)',
8476 opacity: '1',
8477 },
8478 },
8479 rotateInUpLeft: {
8480 'from': {
8481 transformOrigin: 'left top',
8482 transform: 'rotate3d(0, 0, 1, 45deg)',
8483 opacity: '0',
8484 },
8485 'to': {
8486 transformOrigin: 'left top',
8487 transform: 'translate3d(0, 0, 0)',
8488 opacity: '1',
8489 },
8490 },
8491 rotateInUpRight: {
8492 'from': {
8493 transformOrigin: 'right bottom',
8494 transform: 'rotate3d(0, 0, 1, -90deg)',
8495 opacity: '0',
8496 },
8497 'to': {
8498 transformOrigin: 'right bottom',
8499 transform: 'translate3d(0, 0, 0)',
8500 opacity: '1',
8501 },
8502 },
8503 rotateOut: {
8504 'from': {
8505 transformOrigin: 'center',
8506 opacity: '1',
8507 },
8508 'to': {
8509 transformOrigin: 'center',
8510 transform: 'rotate3d(0, 0, 1, 200deg)',
8511 opacity: '0',
8512 },
8513 },
8514 rotateOutDownLeft: {
8515 'from': {
8516 transformOrigin: 'left bottom',
8517 opacity: '1',
8518 },
8519 'to': {
8520 transformOrigin: 'left bottom',
8521 transform: 'rotate3d(0, 0, 1, 45deg)',
8522 opacity: '0',
8523 },
8524 },
8525 rotateOutDownRight: {
8526 'from': {
8527 transformOrigin: 'right bottom',
8528 opacity: '1',
8529 },
8530 'to': {
8531 transformOrigin: 'right bottom',
8532 transform: 'rotate3d(0, 0, 1, -45deg)',
8533 opacity: '0',
8534 },
8535 },
8536 rotateOutUpLeft: {
8537 'from': {
8538 transformOrigin: 'left bottom',
8539 opacity: '1',
8540 },
8541 'to': {
8542 transformOrigin: 'left bottom',
8543 transform: 'rotate3d(0, 0, 1, -45deg)',
8544 opacity: '0',
8545 },
8546 },
8547 rotateOutUpRight: {
8548 'from': {
8549 transformOrigin: 'right bottom',
8550 opacity: '1',
8551 },
8552 'to': {
8553 transformOrigin: 'left bottom',
8554 transform: 'rotate3d(0, 0, 1, 90deg)',
8555 opacity: '0',
8556 },
8557 },
8558 // roll
8559 rollIn: {
8560 'from': {
8561 opacity: '0',
8562 transform: 'translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)',
8563 },
8564 'to': {
8565 opacity: '1',
8566 transform: 'translate3d(0, 0, 0)',
8567 },
8568 },
8569 rollOut: {
8570 'from': {
8571 opacity: '1',
8572 },
8573 'to': {
8574 opacity: '0',
8575 transform: 'translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)',
8576 },
8577 },
8578 // zoom in
8579 zoomIn: {
8580 'from': {
8581 opacity: '0',
8582 transform: 'scale3d(0.3, 0.3, 0.3)',
8583 },
8584 '50%': {
8585 opacity: '1',
8586 },
8587 },
8588 zoomInDown: {
8589 'from': {
8590 opacity: '0',
8591 transform: 'scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0)',
8592 animationTimingFunction: 'cubic-bezier(0.55, 0.055, 0.675, 0.19)',
8593 },
8594 '60%': {
8595 opacity: '1',
8596 transform: 'scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0)',
8597 animationTimingFunction: 'cubic-bezier(0.175, 0.885, 0.32, 1)',
8598 },
8599 },
8600 zoomInLeft: {
8601 'from': {
8602 opacity: '0',
8603 transform: 'scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0)',
8604 animationTimingFunction: 'cubic-bezier(0.55, 0.055, 0.675, 0.19)',
8605 },
8606 '60%': {
8607 opacity: '1',
8608 transform: 'scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0)',
8609 animationTimingFunction: 'cubic-bezier(0.175, 0.885, 0.32, 1)',
8610 },
8611 },
8612 zoomInRight: {
8613 'from': {
8614 opacity: '0',
8615 transform: 'scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0)',
8616 animationTimingFunction: 'cubic-bezier(0.55, 0.055, 0.675, 0.19)',
8617 },
8618 '60%': {
8619 opacity: '1',
8620 transform: 'scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0)',
8621 animationTimingFunction: 'cubic-bezier(0.175, 0.885, 0.32, 1)',
8622 },
8623 },
8624 zoomInUp: {
8625 'from': {
8626 opacity: '0',
8627 transform: 'scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0)',
8628 animationTimingFunction: 'cubic-bezier(0.55, 0.055, 0.675, 0.19)',
8629 },
8630 '60%': {
8631 opacity: '1',
8632 transform: 'scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0)',
8633 animationTimingFunction: 'cubic-bezier(0.175, 0.885, 0.32, 1)',
8634 },
8635 },
8636 // bounce in
8637 bounceIn: {
8638 'from, 20%, 40%, 60%, 80%, to': {
8639 animationTimingFunction: 'ease-in-out',
8640 },
8641 '0%': {
8642 opacity: '0',
8643 transform: 'scale3d(0.3, 0.3, 0.3)',
8644 },
8645 '20%': {
8646 transform: 'scale3d(1.1, 1.1, 1.1)',
8647 },
8648 '40%': {
8649 transform: 'scale3d(0.9, 0.9, 0.9)',
8650 },
8651 '60%': {
8652 transform: 'scale3d(1.03, 1.03, 1.03)',
8653 opacity: '1',
8654 },
8655 '80%': {
8656 transform: 'scale3d(0.97, 0.97, 0.97)',
8657 },
8658 'to': {
8659 opacity: '1',
8660 transform: 'scale3d(1, 1, 1)',
8661 },
8662 },
8663 bounceInDown: {
8664 'from, 60%, 75%, 90%, to': {
8665 animationTimingFunction: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
8666 },
8667 '0%': {
8668 opacity: '0',
8669 transform: 'translate3d(0, -3000px, 0)',
8670 },
8671 '60%': {
8672 opacity: '1',
8673 transform: 'translate3d(0, 25px, 0)',
8674 },
8675 '75%': {
8676 transform: 'translate3d(0, -10px, 0)',
8677 },
8678 '90%': {
8679 transform: 'translate3d(0, 5px, 0)',
8680 },
8681 'to': {
8682 transform: 'translate3d(0, 0, 0)',
8683 },
8684 },
8685 bounceInLeft: {
8686 'from, 60%, 75%, 90%, to': {
8687 animationTimingFunction: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
8688 },
8689 '0%': {
8690 opacity: '0',
8691 transform: 'translate3d(-3000px, 0, 0)',
8692 },
8693 '60%': {
8694 opacity: '1',
8695 transform: 'translate3d(25px, 0, 0)',
8696 },
8697 '75%': {
8698 transform: 'translate3d(-10px, 0, 0)',
8699 },
8700 '90%': {
8701 transform: 'translate3d(5px, 0, 0)',
8702 },
8703 'to': {
8704 transform: 'translate3d(0, 0, 0)',
8705 },
8706 },
8707 bounceInRight: {
8708 'from, 60%, 75%, 90%, to': {
8709 animationTimingFunction: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
8710 },
8711 '0%': {
8712 opacity: '0',
8713 transform: 'translate3d(3000px, 0, 0)',
8714 },
8715 '60%': {
8716 opacity: '1',
8717 transform: 'translate3d(-25px, 0, 0)',
8718 },
8719 '75%': {
8720 transform: 'translate3d(10px, 0, 0)',
8721 },
8722 '90%': {
8723 transform: 'translate3d(-5px, 0, 0)',
8724 },
8725 'to': {
8726 transform: 'translate3d(0, 0, 0)',
8727 },
8728 },
8729 bounceInUp: {
8730 'from, 60%, 75%, 90%, to': {
8731 animationTimingFunction: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
8732 },
8733 '0%': {
8734 opacity: '0',
8735 transform: 'translate3d(0, 3000px, 0)',
8736 },
8737 '60%': {
8738 opacity: '1',
8739 transform: 'translate3d(0, -20px, 0)',
8740 },
8741 '75%': {
8742 transform: 'translate3d(0, 10px, 0)',
8743 },
8744 '90%': {
8745 transform: 'translate3d(0, -5px, 0)',
8746 },
8747 'to': {
8748 transform: 'translate3d(0, 0, 0)',
8749 },
8750 },
8751 // bounce out
8752 bounceOut: {
8753 '20%': {
8754 transform: 'scale3d(0.9, 0.9, 0.9)',
8755 },
8756 '50%, 55%': {
8757 opacity: '1',
8758 transform: 'scale3d(1.1, 1.1, 1.1)',
8759 },
8760 'to': {
8761 opacity: '0',
8762 transform: 'scale3d(0.3, 0.3, 0.3)',
8763 },
8764 },
8765 bounceOutDown: {
8766 '20%': {
8767 transform: 'translate3d(0, 10px, 0)',
8768 },
8769 '40%, 45%': {
8770 opacity: '1',
8771 transform: 'translate3d(0, -20px, 0)',
8772 },
8773 'to': {
8774 opacity: '0',
8775 transform: 'translate3d(0, 2000px, 0)',
8776 },
8777 },
8778 bounceOutLeft: {
8779 '20%': {
8780 opacity: '1',
8781 transform: 'translate3d(20px, 0, 0)',
8782 },
8783 'to': {
8784 opacity: '0',
8785 transform: 'translate3d(-2000px, 0, 0)',
8786 },
8787 },
8788 bounceOutRight: {
8789 '20%': {
8790 opacity: '1',
8791 transform: 'translate3d(-20px, 0, 0)',
8792 },
8793 'to': {
8794 opacity: '0',
8795 transform: 'translate3d(2000px, 0, 0)',
8796 },
8797 },
8798 bounceOutUp: {
8799 '20%': {
8800 transform: 'translate3d(0, -10px, 0)',
8801 },
8802 '40%, 45%': {
8803 opacity: '1',
8804 transform: 'translate3d(0, 20px, 0)',
8805 },
8806 'to': {
8807 opacity: '0',
8808 transform: 'translate3d(0, -2000px, 0)',
8809 },
8810 },
8811 // zoom out
8812 zoomOut: {
8813 'from': {
8814 opacity: '1',
8815 },
8816 '50%': {
8817 opacity: '0',
8818 transform: 'scale3d(0.3, 0.3, 0.3)',
8819 },
8820 'to': {
8821 opacity: '0',
8822 },
8823 },
8824 zoomOutDown: {
8825 '40%': {
8826 opacity: '1',
8827 transform: 'scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0)',
8828 animationTimingFunction: 'cubic-bezier(0.55, 0.055, 0.675, 0.19)',
8829 },
8830 'to': {
8831 opacity: '0',
8832 transform: 'scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0)',
8833 transformOrigin: 'center bottom',
8834 animationTimingFunction: 'cubic-bezier(0.175, 0.885, 0.32, 1)',
8835 },
8836 },
8837 zoomOutLeft: {
8838 '40%': {
8839 opacity: '1',
8840 transform: 'scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0)',
8841 },
8842 'to': {
8843 opacity: '0',
8844 transform: 'scale(0.1) translate3d(-2000px, 0, 0)',
8845 transformOrigin: 'left center',
8846 },
8847 },
8848 zoomOutRight: {
8849 '40%': {
8850 opacity: '1',
8851 transform: 'scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0)',
8852 },
8853 'to': {
8854 opacity: '0',
8855 transform: 'scale(0.1) translate3d(2000px, 0, 0)',
8856 transformOrigin: 'right center',
8857 },
8858 },
8859 zoomOutUp: {
8860 '40%': {
8861 opacity: '1',
8862 transform: 'scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0)',
8863 animationTimingFunction: 'cubic-bezier(0.55, 0.055, 0.675, 0.19)',
8864 },
8865 'to': {
8866 opacity: '0',
8867 transform: 'scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0)',
8868 transformOrigin: 'center bottom',
8869 animationTimingFunction: 'cubic-bezier(0.175, 0.885, 0.32, 1)',
8870 },
8871 },
8872 // slide in
8873 slideInDown: {
8874 'from': {
8875 transform: 'translate3d(0, -100%, 0)',
8876 visibility: 'visible',
8877 },
8878 'to': {
8879 transform: 'translate3d(0, 0, 0)',
8880 },
8881 },
8882 slideInLeft: {
8883 'from': {
8884 transform: 'translate3d(-100%, 0, 0)',
8885 visibility: 'visible',
8886 },
8887 'to': {
8888 transform: 'translate3d(0, 0, 0)',
8889 },
8890 },
8891 slideInRight: {
8892 'from': {
8893 transform: 'translate3d(100%, 0, 0)',
8894 visibility: 'visible',
8895 },
8896 'to': {
8897 transform: 'translate3d(0, 0, 0)',
8898 },
8899 },
8900 slideInUp: {
8901 'from': {
8902 transform: 'translate3d(0, 100%, 0)',
8903 visibility: 'visible',
8904 },
8905 'to': {
8906 transform: 'translate3d(0, 0, 0)',
8907 },
8908 },
8909 // slide out
8910 slideOutDown: {
8911 'from': {
8912 transform: 'translate3d(0, 0, 0)',
8913 },
8914 'to': {
8915 visibility: 'hidden',
8916 transform: 'translate3d(0, 100%, 0)',
8917 },
8918 },
8919 slideOutLeft: {
8920 'from': {
8921 transform: 'translate3d(0, 0, 0)',
8922 },
8923 'to': {
8924 visibility: 'hidden',
8925 transform: 'translate3d(-100%, 0, 0)',
8926 },
8927 },
8928 slideOutRight: {
8929 'from': {
8930 transform: 'translate3d(0, 0, 0)',
8931 },
8932 'to': {
8933 visibility: 'hidden',
8934 transform: 'translate3d(100%, 0, 0)',
8935 },
8936 },
8937 slideOutUp: {
8938 'from': {
8939 transform: 'translate3d(0, 0, 0)',
8940 },
8941 'to': {
8942 visibility: 'hidden',
8943 transform: 'translate3d(0, -100%, 0)',
8944 },
8945 },
8946 // fade in
8947 fadeIn: {
8948 'from': {
8949 opacity: '0',
8950 },
8951 'to': {
8952 opacity: '1',
8953 },
8954 },
8955 fadeInDown: {
8956 'from': {
8957 opacity: '0',
8958 transform: 'translate3d(0, -100%, 0)',
8959 },
8960 'to': {
8961 opacity: '1',
8962 transform: 'translate3d(0, 0, 0)',
8963 },
8964 },
8965 fadeInDownBig: {
8966 'from': {
8967 opacity: '0',
8968 transform: 'translate3d(0, -2000px, 0)',
8969 },
8970 'to': {
8971 opacity: '1',
8972 transform: 'translate3d(0, 0, 0)',
8973 },
8974 },
8975 fadeInLeft: {
8976 'from': {
8977 opacity: '0',
8978 transform: 'translate3d(-100%, 0, 0)',
8979 },
8980 'to': {
8981 opacity: '1',
8982 transform: 'translate3d(0, 0, 0)',
8983 },
8984 },
8985 fadeInLeftBig: {
8986 'from': {
8987 opacity: '0',
8988 transform: 'translate3d(-2000px, 0, 0)',
8989 },
8990 'to': {
8991 opacity: '1',
8992 transform: 'translate3d(0, 0, 0)',
8993 },
8994 },
8995 fadeInRight: {
8996 'from': {
8997 opacity: '0',
8998 transform: 'translate3d(100%, 0, 0)',
8999 },
9000 'to': {
9001 opacity: '1',
9002 transform: 'translate3d(0, 0, 0)',
9003 },
9004 },
9005 fadeInRightBig: {
9006 'from': {
9007 opacity: '0',
9008 transform: 'translate3d(2000px, 0, 0)',
9009 },
9010 'to': {
9011 opacity: '1',
9012 transform: 'translate3d(0, 0, 0)',
9013 },
9014 },
9015 fadeInUp: {
9016 'from': {
9017 opacity: '0',
9018 transform: 'translate3d(0, 100%, 0)',
9019 },
9020 'to': {
9021 opacity: '1',
9022 transform: 'translate3d(0, 0, 0)',
9023 },
9024 },
9025 fadeInUpBig: {
9026 'from': {
9027 opacity: '0',
9028 transform: 'translate3d(0, 2000px, 0)',
9029 },
9030 'to': {
9031 opacity: '1',
9032 transform: 'translate3d(0, 0, 0)',
9033 },
9034 },
9035 fadeInTopLeft: {
9036 'from': {
9037 opacity: '0',
9038 transform: 'translate3d(-100%, -100%, 0)',
9039 },
9040 'to': {
9041 opacity: '1',
9042 transform: 'translate3d(0, 0, 0)',
9043 },
9044 },
9045 fadeInTopRight: {
9046 'from': {
9047 opacity: '0',
9048 transform: 'translate3d(100%, -100%, 0)',
9049 },
9050 'to': {
9051 opacity: '1',
9052 transform: 'translate3d(0, 0, 0)',
9053 },
9054 },
9055 fadeInBottomLeft: {
9056 'from': {
9057 opacity: '0',
9058 transform: 'translate3d(-100%, 100%, 0)',
9059 },
9060 'to': {
9061 opacity: '1',
9062 transform: 'translate3d(0, 0, 0)',
9063 },
9064 },
9065 fadeInBottomRight: {
9066 'from': {
9067 opacity: '0',
9068 transform: 'translate3d(100%, 100%, 0)',
9069 },
9070 'to': {
9071 opacity: '1',
9072 transform: 'translate3d(0, 0, 0)',
9073 },
9074 },
9075 // fade out
9076 fadeOut: {
9077 'from': {
9078 opacity: '1',
9079 },
9080 'to': {
9081 opacity: '0',
9082 },
9083 },
9084 fadeOutDown: {
9085 'from': {
9086 opacity: '1',
9087 },
9088 'to': {
9089 opacity: '0',
9090 transform: 'translate3d(0, 100%, 0)',
9091 },
9092 },
9093 fadeOutDownBig: {
9094 'from': {
9095 opacity: '1',
9096 },
9097 'to': {
9098 opacity: '0',
9099 transform: 'translate3d(0, 2000px, 0)',
9100 },
9101 },
9102 fadeOutLeft: {
9103 'from': {
9104 opacity: '1',
9105 },
9106 'to': {
9107 opacity: '0',
9108 transform: 'translate3d(-100%, 0, 0)',
9109 },
9110 },
9111 fadeOutLeftBig: {
9112 'from': {
9113 opacity: '1',
9114 },
9115 'to': {
9116 opacity: '0',
9117 transform: 'translate3d(-2000px, 0, 0)',
9118 },
9119 },
9120 fadeOutRight: {
9121 'from': {
9122 opacity: '1',
9123 },
9124 'to': {
9125 opacity: '0',
9126 transform: 'translate3d(100%, 0, 0)',
9127 },
9128 },
9129 fadeOutRightBig: {
9130 'from': {
9131 opacity: '1',
9132
9133 },
9134 'to': {
9135 opacity: '0',
9136 transform: 'translate3d(2000px, 0, 0)',
9137 },
9138 },
9139 fadeOutUp: {
9140 'from': {
9141 opacity: '1',
9142 },
9143 'to': {
9144 opacity: '0',
9145 transform: 'translate3d(0, -100%, 0)',
9146 },
9147 },
9148 fadeOutUpBig: {
9149 'from': {
9150 opacity: '1',
9151
9152 },
9153 'to': {
9154 opacity: '0',
9155 transform: 'translate3d(0, -2000px, 0)',
9156 },
9157 },
9158 fadeOutTopLeft: {
9159 'from': {
9160 opacity: '1',
9161 transform: 'translate3d(0, 0, 0)',
9162
9163 },
9164 'to': {
9165 opacity: '0',
9166 transform: 'translate3d(-100%, -100%, 0)',
9167 },
9168 },
9169 fadeOutTopRight: {
9170 'from': {
9171 opacity: '1',
9172 transform: 'translate3d(0, 0, 0)',
9173
9174 },
9175 'to': {
9176 opacity: '0',
9177 transform: 'translate3d(100%, -100%, 0)',
9178 },
9179 },
9180 fadeOutBottomLeft: {
9181 'from': {
9182 opacity: '1',
9183 transform: 'translate3d(0, 0, 0)',
9184
9185 },
9186 'to': {
9187 opacity: '0',
9188 transform: 'translate3d(-100%, 100%, 0)',
9189 },
9190 },
9191 fadeOutBottomRight: {
9192 'from': {
9193 opacity: '1',
9194 transform: 'translate3d(0, 0, 0)',
9195
9196 },
9197 'to': {
9198 opacity: '0',
9199 transform: 'translate3d(100%, 100%, 0)',
9200 },
9201 },
9202 // back in
9203 backInUp: {
9204 '0%': {
9205 opacity: '0.7',
9206 transform: 'translateY(1200px) scale(0.7)',
9207 },
9208 '80%': {
9209 opacity: '0.7',
9210 transform: 'translateY(0px) scale(0.7)',
9211 },
9212 '100%': {
9213 opacity: '1',
9214 transform: 'scale(1)',
9215 },
9216 },
9217 backInDown: {
9218 '0%': {
9219 opacity: '0.7',
9220 transform: 'translateY(-1200px) scale(0.7)',
9221 },
9222 '80%': {
9223 opacity: '0.7',
9224 transform: 'translateY(0px) scale(0.7)',
9225 },
9226 '100%': {
9227 opacity: '1',
9228 transform: 'scale(1)',
9229 },
9230 },
9231 backInLeft: {
9232 '0%': {
9233 opacity: '0.7',
9234 transform: 'translateX(-2000px) scale(0.7)',
9235 },
9236 '80%': {
9237 opacity: '0.7',
9238 transform: 'translateX(0px) scale(0.7)',
9239 },
9240 '100%': {
9241 opacity: '1',
9242 transform: 'scale(1)',
9243 },
9244 },
9245 backInRight: {
9246 '0%': {
9247 opacity: '0.7',
9248 transform: 'translateX(2000px) scale(0.7)',
9249 },
9250 '80%': {
9251 opacity: '0.7',
9252 transform: 'translateY(0px) scale(0.7)',
9253 },
9254 '100%': {
9255 opacity: '1',
9256 transform: 'scale(1)',
9257 },
9258 },
9259 // back out
9260 backOutUp: {
9261 '0%': {
9262 opacity: '1',
9263 transform: 'scale(1)',
9264 },
9265 '80%': {
9266 opacity: '0.7',
9267 transform: 'translateY(0px) scale(0.7)',
9268 },
9269 '100%': {
9270 opacity: '0.7',
9271 transform: 'translateY(-700px) scale(0.7)',
9272 },
9273 },
9274 backOutDown: {
9275 '0%': {
9276 opacity: '1',
9277 transform: 'scale(1)',
9278 },
9279 '80%': {
9280 opacity: '0.7',
9281 transform: 'translateY(0px) scale(0.7)',
9282 },
9283 '100%': {
9284 opacity: '0.7',
9285 transform: 'translateY(700px) scale(0.7)',
9286 },
9287 },
9288 backOutLeft: {
9289 '0%': {
9290 opacity: '1',
9291 transform: 'scale(1)',
9292 },
9293 '80%': {
9294 opacity: '0.7',
9295 transform: 'translateX(-2000px) scale(0.7)',
9296 },
9297 '100%': {
9298 opacity: '0.7',
9299 transform: 'translateY(-700px) scale(0.7)',
9300 },
9301 },
9302 backOutRight: {
9303 '0%': {
9304 opacity: '1',
9305 transform: 'scale(1)',
9306 },
9307 '80%': {
9308 opacity: '0.7',
9309 transform: 'translateY(0px) scale(0.7)',
9310 },
9311 '100%': {
9312 opacity: '0.7',
9313 transform: 'translateX(2000px) scale(0.7)',
9314 },
9315 },
9316};
9317
9318function _nullishCoalesce$1(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
9319
9320const defaultColors = {
9321 transparent: 'transparent',
9322 current: 'currentColor',
9323 light: colors.light,
9324 dark: colors.dark,
9325 black: colors.black,
9326 white: colors.white,
9327 gray: colors.coolGray,
9328 red: colors.red,
9329 yellow: colors.amber,
9330 green: colors.emerald,
9331 blue: colors.blue,
9332 indigo: colors.indigo,
9333 purple: colors.violet,
9334 pink: colors.pink,
9335 rose: colors.rose,
9336 fuchsia: colors.fuchsia,
9337 violet: colors.violet,
9338 cyan: colors.cyan,
9339 teal: colors.teal,
9340 emerald: colors.emerald,
9341 lime: colors.lime,
9342 amber: colors.amber,
9343 orange: colors.orange,
9344 'light-blue': colors.lightBlue,
9345 'warm-gray': colors.warmGray,
9346 'true-gray': colors.trueGray,
9347 'cool-gray': colors.coolGray,
9348 'blue-gray': colors.blueGray,
9349};
9350
9351const baseConfig = {
9352 // purge: [],
9353 presets: [],
9354 prefixer: true,
9355 attributify: false,
9356 darkMode: 'class', // or 'media'
9357 theme: {
9358 screens: {
9359 sm: '640px',
9360 md: '768px',
9361 lg: '1024px',
9362 xl: '1280px',
9363 '2xl': '1536px',
9364 },
9365 colors: defaultColors,
9366 spacing: {
9367 px: '1px',
9368 0: '0px',
9369 0.5: '0.125rem',
9370 1: '0.25rem',
9371 1.5: '0.375rem',
9372 2: '0.5rem',
9373 2.5: '0.625rem',
9374 3: '0.75rem',
9375 3.5: '0.875rem',
9376 4: '1rem',
9377 5: '1.25rem',
9378 6: '1.5rem',
9379 7: '1.75rem',
9380 8: '2rem',
9381 9: '2.25rem',
9382 10: '2.5rem',
9383 11: '2.75rem',
9384 12: '3rem',
9385 14: '3.5rem',
9386 16: '4rem',
9387 20: '5rem',
9388 24: '6rem',
9389 28: '7rem',
9390 32: '8rem',
9391 36: '9rem',
9392 40: '10rem',
9393 44: '11rem',
9394 48: '12rem',
9395 52: '13rem',
9396 56: '14rem',
9397 60: '15rem',
9398 64: '16rem',
9399 72: '18rem',
9400 80: '20rem',
9401 96: '24rem',
9402 // float -> float/4 rem
9403 },
9404 animation: {
9405 none: 'none',
9406 spin: 'spin 1s linear infinite',
9407 ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',
9408 pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',
9409 bounce: 'bounce 1s infinite',
9410 'shock': {
9411 animation: 'shock',
9412 transformOrigin: 'center bottom',
9413 },
9414 'flash': 'flash',
9415 'bubble': 'bubble',
9416 'rubber-band': 'rubberBand',
9417 'shake-x': 'shakeX',
9418 'shake-y': 'shakeY',
9419 'head-shake': 'headShake 1s ease-in-out',
9420 'swing': {
9421 animation: 'swing',
9422 transformOrigin: 'top center',
9423 },
9424 'tada': 'tada',
9425 'wobble': 'wobble',
9426 'jello': 'jello',
9427 'heart-beat': 'heartBeat 1s ease-in-out',
9428 'hinge': 'hinge 2s',
9429 'jack-in': 'jackInTheBox',
9430 'light-speed-in-left': 'lightSpeedInLeft',
9431 'light-speed-in-right': 'lightSpeedInRight',
9432 'light-speed-out-left': 'lightSpeedOutLeft',
9433 'light-speed-out-right': 'lightSpeedOutRight',
9434 'flip': {
9435 animation: 'flip',
9436 backfaceVisibility: 'visible',
9437 },
9438 'flip-in-x': {
9439 animation: 'flipInX',
9440 backfaceVisibility: 'visible',
9441 },
9442 'flip-in-y': {
9443 animation: 'flipInY',
9444 backfaceVisibility: 'visible',
9445 },
9446 'flip-out-x': {
9447 animation: 'flipOutX',
9448 backfaceVisibility: 'visible',
9449 },
9450 'flip-out-y': {
9451 animation: 'flipOutY',
9452 backfaceVisibility: 'visible',
9453 },
9454 'rotate-in': 'rotateIn',
9455 'rotate-in-down-left': 'rotateInDownLeft',
9456 'rotate-in-down-right': 'rotateInDownRight',
9457 'rotate-in-up-left': 'rotateInUpLeft',
9458 'rotate-in-up-right': 'rotateInUpRight',
9459 'rotate-out': 'rotateOut',
9460 'rotate-out-down-left': 'rotateOutDownLeft',
9461 'rotate-out-down-right': 'rotateOutDownRight',
9462 'rotate-out-up-left': 'rotateOutUpLeft',
9463 'rotate-out-up-right': 'rotateOutUpRight',
9464 'roll-in': 'rollIn',
9465 'roll-out': 'rollOut',
9466 'zoom-in': 'zoomIn',
9467 'zoom-in-down': 'zoomInDown',
9468 'zoom-in-left': 'zoomInLeft',
9469 'zoom-in-right': 'zoomInRight',
9470 'zoom-in-up': 'zoomInUp',
9471 'bounce-in': 'bounceIn 750ms',
9472 'bounce-in-down': 'bounceInDown',
9473 'bounce-in-left': 'bounceInLeft',
9474 'bounce-in-right': 'bounceInRight',
9475 'bounce-in-up': 'bounceInUp',
9476 'bounce-out': 'bounceOut 750ms',
9477 'bounce-out-down': 'bounceOutDown',
9478 'bounce-out-left': 'bounceOutLeft',
9479 'bounce-out-right': 'bounceOutRight',
9480 'bounce-out-up': 'bounceOutUp',
9481 'zoom-out': 'zoomOut',
9482 'zoom-out-down': 'zoomOutDown',
9483 'zoom-out-left': 'zoomOutLeft',
9484 'zoom-out-right': 'zoomOutRight',
9485 'zoom-out-up': 'zoomOutUp',
9486 'slide-in-down': 'slideInDown',
9487 'slide-in-left': 'slideInLeft',
9488 'slide-in-right': 'slideInRight',
9489 'slide-in-up': 'slideInUp',
9490 'slide-out-down': 'slideOutDown',
9491 'slide-out-left': 'slideOutLeft',
9492 'slide-out-right': 'slideOutRight',
9493 'slide-out-up': 'slideOutUp',
9494 'fade-in': 'fadeIn',
9495 'fade-in-down': 'fadeInDown',
9496 'fade-in-down-big': 'fadeInDownBig',
9497 'fade-in-left': 'fadeInLeft',
9498 'fade-in-left-big': 'fadeInLeftBig',
9499 'fade-in-right': 'fadeInRight',
9500 'fade-in-right-big': 'fadeInRightBig',
9501 'fade-in-up': 'fadeInUp',
9502 'fade-in-up-big': 'fadeInUpBig',
9503 'fade-in-top-left': 'fadeInTopLeft',
9504 'fade-in-top-right': 'fadeInTopRight',
9505 'fade-in-bottom-left': 'fadeInBottomLeft',
9506 'fade-in-bottom-right': 'fadeInBottomRight',
9507 'fade-out': 'fadeOut',
9508 'fade-out-down': 'fadeOutDown',
9509 'fade-out-down-big': 'fadeOutDownBig',
9510 'fade-out-left': 'fadeOutLeft',
9511 'fade-out-left-big': 'fadeOutLeftBig',
9512 'fade-out-right': 'fadeOutRight',
9513 'fade-out-right-big': 'fadeOutRightBig',
9514 'fade-out-up': 'fadeOutUp',
9515 'fade-out-up-big': 'fadeOutUpBig',
9516 'back-in-up': 'backInUp',
9517 'back-in-down': 'backInDown',
9518 'back-in-left': 'backInLeft',
9519 'back-in-right': 'backInRight',
9520 'back-out-up': 'backOutUp',
9521 'back-out-down': 'backOutDown',
9522 'back-out-left': 'backOutLeft',
9523 'back-out-right': 'backOutRight',
9524 },
9525 animationDuration: {
9526 DEFAULT: '1000ms',
9527 75: '75ms',
9528 100: '100ms',
9529 150: '150ms',
9530 200: '200ms',
9531 300: '300ms',
9532 500: '500ms',
9533 700: '700ms',
9534 1000: '1000ms',
9535 1500: '1500ms',
9536 2000: '2000ms',
9537 2500: '2500ms',
9538 3000: '3000ms',
9539 // int >=0 -> int ms
9540 },
9541 animationDelay: {
9542 DEFAULT: '500ms',
9543 75: '75ms',
9544 100: '100ms',
9545 150: '150ms',
9546 200: '200ms',
9547 300: '300ms',
9548 500: '500ms',
9549 700: '700ms',
9550 1000: '1000ms',
9551 1500: '1500ms',
9552 2000: '2000ms',
9553 2500: '2500ms',
9554 3000: '3000ms',
9555 // int >=0 -> int ms
9556 },
9557 animationIterationCount: {
9558 DEFAULT: '1',
9559 loop: 'infinite',
9560 'repeat-1': '1',
9561 'repeat-2': '2',
9562 'repeat-3': '3',
9563 'repeat-4': '4',
9564 'repeat-5': '5',
9565 'repeat-6': '6',
9566 'repeat-7': '7',
9567 'repeat-8': '8',
9568 'repeat-9': '9',
9569 'repeat-10': '10',
9570 'repeat-11': '11',
9571 'repeat-12': '12',
9572 },
9573 animationTimingFunction: {
9574 DEFAULT: 'ease',
9575 linear: 'linear',
9576 in: 'ease-in',
9577 out: 'ease-out',
9578 'in-out': 'ease-in-out',
9579 },
9580 backdropBlur: (theme) => theme('blur'),
9581 backdropBrightness: (theme) => theme('brightness'),
9582 backdropContrast: (theme) => theme('contrast'),
9583 backdropGrayscale: (theme) => theme('grayscale'),
9584 backdropHueRotate: (theme) => theme('hueRotate'),
9585 backdropInvert: (theme) => theme('invert'),
9586 backdropOpacity: (theme) => theme('opacity'),
9587 backdropSaturate: (theme) => theme('saturate'),
9588 backdropSepia: (theme) => theme('sepia'),
9589 backgroundColor: (theme) => theme('colors'),
9590 backgroundImage: {
9591 none: 'none',
9592 'gradient-1': 'linear-gradient(135deg, #FDEB71 10%, #F8D800 100%)',
9593 'gradient-2': 'linear-gradient(135deg, #ABDCFF 10%, #0396FF 100%)',
9594 'gradient-3': 'linear-gradient(135deg, #FEB692 10%, #EA5455 100%)',
9595 'gradient-4': 'linear-gradient(135deg, #CE9FFC 10%, #7367F0 100%)',
9596 'gradient-5': 'linear-gradient(135deg, #90F7EC 10%, #32CCBC 100%)',
9597 'gradient-6': 'linear-gradient(135deg, #FFF6B7 10%, #F6416C 100%)',
9598 'gradient-7': 'linear-gradient(135deg, #81FBB8 10%, #28C76F 100%)',
9599 'gradient-8': 'linear-gradient(135deg, #E2B0FF 10%, #9F44D3 100%)',
9600 'gradient-9': 'linear-gradient(135deg, #F97794 10%, #623AA2 100%)',
9601 'gradient-10': 'linear-gradient(135deg, #FCCF31 10%, #F55555 100%)',
9602 'gradient-11': 'linear-gradient(135deg, #F761A1 10%, #8C1BAB 100%)',
9603 'gradient-12': 'linear-gradient(135deg, #43CBFF 10%, #9708CC 100%)',
9604 'gradient-13': 'linear-gradient(135deg, #5EFCE8 10%, #736EFE 100%)',
9605 'gradient-14': 'linear-gradient(135deg, #FAD7A1 10%, #E96D71 100%)',
9606 'gradient-15': 'linear-gradient(135deg, #FFD26F 10%, #3677FF 100%)',
9607 'gradient-16': 'linear-gradient(135deg, #A0FE65 10%, #FA016D 100%)',
9608 'gradient-17': 'linear-gradient(135deg, #FFDB01 10%, #0E197D 100%)',
9609 'gradient-18': 'linear-gradient(135deg, #FEC163 10%, #DE4313 100%)',
9610 'gradient-19': 'linear-gradient(135deg, #92FFC0 10%, #002661 100%)',
9611 'gradient-20': 'linear-gradient(135deg, #EEAD92 10%, #6018DC 100%)',
9612 'gradient-21': 'linear-gradient(135deg, #F6CEEC 10%, #D939CD 100%)',
9613 'gradient-22': 'linear-gradient(135deg, #52E5E7 10%, #130CB7 100%)',
9614 'gradient-23': 'linear-gradient(135deg, #F1CA74 10%, #A64DB6 100%)',
9615 'gradient-24': 'linear-gradient(135deg, #E8D07A 10%, #5312D6 100%)',
9616 'gradient-25': 'linear-gradient(135deg, #EECE13 10%, #B210FF 100%)',
9617 'gradient-26': 'linear-gradient(135deg, #79F1A4 10%, #0E5CAD 100%)',
9618 'gradient-27': 'linear-gradient(135deg, #FDD819 10%, #E80505 100%)',
9619 'gradient-28': 'linear-gradient(135deg, #FFF3B0 10%, #CA26FF 100%)',
9620 'gradient-29': 'linear-gradient(135deg, #FFF5C3 10%, #9452A5 100%)',
9621 'gradient-30': 'linear-gradient(135deg, #F05F57 10%, #360940 100%)',
9622 'gradient-31': 'linear-gradient(135deg, #2AFADF 10%, #4C83FF 100%)',
9623 'gradient-32': 'linear-gradient(135deg, #FFF886 10%, #F072B6 100%)',
9624 'gradient-33': 'linear-gradient(135deg, #97ABFF 10%, #123597 100%)',
9625 'gradient-34': 'linear-gradient(135deg, #F5CBFF 10%, #C346C2 100%)',
9626 'gradient-35': 'linear-gradient(135deg, #FFF720 10%, #3CD500 100%)',
9627 'gradient-36': 'linear-gradient(135deg, #FF6FD8 10%, #3813C2 100%)',
9628 'gradient-37': 'linear-gradient(135deg, #EE9AE5 10%, #5961F9 100%)',
9629 'gradient-38': 'linear-gradient(135deg, #FFD3A5 10%, #FD6585 100%)',
9630 'gradient-39': 'linear-gradient(135deg, #C2FFD8 10%, #465EFB 100%)',
9631 'gradient-40': 'linear-gradient(135deg, #FD6585 10%, #0D25B9 100%)',
9632 'gradient-41': 'linear-gradient(135deg, #FD6E6A 10%, #FFC600 100%)',
9633 'gradient-42': 'linear-gradient(135deg, #65FDF0 10%, #1D6FA3 100%)',
9634 'gradient-43': 'linear-gradient(135deg, #6B73FF 10%, #000DFF 100%)',
9635 'gradient-44': 'linear-gradient(135deg, #FF7AF5 10%, #513162 100%)',
9636 'gradient-45': 'linear-gradient(135deg, #F0FF00 10%, #58CFFB 100%)',
9637 'gradient-46': 'linear-gradient(135deg, #FFE985 10%, #FA742B 100%)',
9638 'gradient-47': 'linear-gradient(135deg, #FFA6B7 10%, #1E2AD2 100%)',
9639 'gradient-48': 'linear-gradient(135deg, #FFAA85 10%, #B3315F 100%)',
9640 'gradient-49': 'linear-gradient(135deg, #72EDF2 10%, #5151E5 100%)',
9641 'gradient-50': 'linear-gradient(135deg, #FF9D6C 10%, #BB4E75 100%)',
9642 'gradient-51': 'linear-gradient(135deg, #F6D242 10%, #FF52E5 100%)',
9643 'gradient-52': 'linear-gradient(135deg, #69FF97 10%, #00E4FF 100%)',
9644 'gradient-53': 'linear-gradient(135deg, #3B2667 10%, #BC78EC 100%)',
9645 'gradient-54': 'linear-gradient(135deg, #70F570 10%, #49C628 100%)',
9646 'gradient-55': 'linear-gradient(135deg, #3C8CE7 10%, #00EAFF 100%)',
9647 'gradient-56': 'linear-gradient(135deg, #FAB2FF 10%, #1904E5 100%)',
9648 'gradient-57': 'linear-gradient(135deg, #81FFEF 10%, #F067B4 100%)',
9649 'gradient-58': 'linear-gradient(135deg, #FFA8A8 10%, #FCFF00 100%)',
9650 'gradient-59': 'linear-gradient(135deg, #FFCF71 10%, #2376DD 100%)',
9651 'gradient-60': 'linear-gradient(135deg, #FF96F9 10%, #C32BAC 100%)',
9652
9653 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',
9654 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',
9655 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',
9656 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',
9657 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',
9658 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',
9659 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',
9660 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',
9661 },
9662 backgroundOpacity: (theme) => theme('opacity'),
9663 backgroundPosition: {
9664 bottom: 'bottom',
9665 center: 'center',
9666 left: 'left',
9667 'left-bottom': 'left bottom',
9668 'left-top': 'left top',
9669 right: 'right',
9670 'right-bottom': 'right bottom',
9671 'right-top': 'right top',
9672 top: 'top',
9673 },
9674 backgroundSize: {
9675 auto: 'auto',
9676 cover: 'cover',
9677 contain: 'contain',
9678 },
9679 blur: {
9680 DEFAULT: '8px',
9681 0: '0',
9682 sm: '4px',
9683 md: '12px',
9684 lg: '16px',
9685 xl: '24px',
9686 '2xl': '40px',
9687 '3xl': '64px',
9688 },
9689 borderColor: (theme) => ({
9690 DEFAULT: theme('colors.gray.200', 'currentColor'),
9691 ...(_nullishCoalesce$1(theme('colors'), () => ( {}))),
9692 }),
9693 borderOpacity: (theme) => theme('opacity'),
9694 borderRadius: {
9695 DEFAULT: '0.25rem',
9696 none: '0px',
9697 sm: '0.125rem',
9698 md: '0.375rem',
9699 lg: '0.5rem',
9700 xl: '0.75rem',
9701 '2xl': '1rem',
9702 '3xl': '1.5rem',
9703 // nxl
9704 '1': '100%',
9705 full: '9999px',
9706 },
9707 borderWidth: {
9708 DEFAULT: '1px',
9709 0: '0px',
9710 2: '2px',
9711 4: '4px',
9712 8: '8px',
9713 // int >=0 -> int px
9714 },
9715 boxShadow: {
9716 DEFAULT: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
9717 sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
9718 md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
9719 lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
9720 xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
9721 '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
9722 inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',
9723 none: 'none',
9724 },
9725 boxShadowColor: (theme) => theme('colors'),
9726 brightness: {
9727 0: '0',
9728 50: '.5',
9729 75: '.75',
9730 90: '.9',
9731 95: '.95',
9732 100: '1',
9733 105: '1.05',
9734 110: '1.1',
9735 125: '1.25',
9736 150: '1.5',
9737 200: '2',
9738 },
9739 caretColor: (theme) => ({
9740 auto: 'auto',
9741 ...(_nullishCoalesce$1(theme('colors'), () => ( {}))),
9742 }),
9743 caretOpacity: (theme) => theme('opacity'),
9744 container: {},
9745 content: {
9746 DEFAULT: '""',
9747 'open-quote': 'open-quote',
9748 'close-quote': 'close-quote',
9749 'open-square': '"["',
9750 'close-square': '"]"',
9751 'open-curly': '"{"',
9752 'close-curly': '"}"',
9753 'open-bracket': '"("',
9754 'close-bracket': '")"',
9755 },
9756 contrast: {
9757 0: '0',
9758 50: '.5',
9759 75: '.75',
9760 100: '1',
9761 125: '1.25',
9762 150: '1.5',
9763 200: '2',
9764 },
9765 cursor: {
9766 auto: 'auto',
9767 default: 'default',
9768 pointer: 'pointer',
9769 wait: 'wait',
9770 text: 'text',
9771 move: 'move',
9772 help: 'help',
9773 'not-allowed': 'not-allowed',
9774 },
9775 divideColor: (theme) => theme('borderColor'),
9776 divideOpacity: (theme) => theme('borderOpacity'),
9777 divideWidth: (theme) => theme('borderWidth'),
9778 dropShadow: {
9779 DEFAULT: ['0 1px 2px rgba(0, 0, 0, 0.1)', '0 1px 1px rgba(0, 0, 0, 0.06)'],
9780 sm: '0 1px 1px rgba(0,0,0,0.05)',
9781 md: ['0 4px 3px rgba(0, 0, 0, 0.07)', '0 2px 2px rgba(0, 0, 0, 0.06)'],
9782 lg: ['0 10px 8px rgba(0, 0, 0, 0.04)', '0 4px 3px rgba(0, 0, 0, 0.1)'],
9783 xl: ['0 20px 13px rgba(0, 0, 0, 0.03)', '0 8px 5px rgba(0, 0, 0, 0.08)'],
9784 '2xl': '0 25px 25px rgba(0, 0, 0, 0.15)',
9785 none: '0 0 #0000',
9786 },
9787 fill: (theme) => ({
9788 ...(_nullishCoalesce$1(theme('colors'), () => ( {}))),
9789 none: 'none',
9790 }),
9791 flex: {
9792 1: '1 1 0%',
9793 auto: '1 1 auto',
9794 initial: '0 1 auto',
9795 none: 'none',
9796 },
9797 flexGrow: {
9798 DEFAULT: '1',
9799 0: '0',
9800 },
9801 flexShrink: {
9802 DEFAULT: '1',
9803 0: '0',
9804 },
9805 fontFamily: {
9806 sans: [
9807 'ui-sans-serif',
9808 'system-ui',
9809 '-apple-system',
9810 'BlinkMacSystemFont',
9811 '"Segoe UI"',
9812 'Roboto',
9813 '"Helvetica Neue"',
9814 'Arial',
9815 '"Noto Sans"',
9816 'sans-serif',
9817 '"Apple Color Emoji"',
9818 '"Segoe UI Emoji"',
9819 '"Segoe UI Symbol"',
9820 '"Noto Color Emoji"',
9821 ],
9822 serif: [
9823 'ui-serif',
9824 'Georgia',
9825 'Cambria',
9826 '"Times New Roman"',
9827 'Times',
9828 'serif',
9829 ],
9830 mono: [
9831 'ui-monospace',
9832 'SFMono-Regular',
9833 'Menlo',
9834 'Monaco',
9835 'Consolas',
9836 '"Liberation Mono"',
9837 '"Courier New"',
9838 'monospace',
9839 ],
9840 },
9841 fontSize: {
9842 xs: ['0.75rem', { lineHeight: '1rem' }],
9843 sm: ['0.875rem', { lineHeight: '1.25rem' }],
9844 base: ['1rem', { lineHeight: '1.5rem' }],
9845 lg: ['1.125rem', { lineHeight: '1.75rem' }],
9846 xl: ['1.25rem', { lineHeight: '1.75rem' }],
9847 '2xl': ['1.5rem', { lineHeight: '2rem' }],
9848 '3xl': ['1.875rem', { lineHeight: '2.25rem' }],
9849 '4xl': ['2.25rem', { lineHeight: '2.5rem' }],
9850 '5xl': ['3rem', { lineHeight: '1' }],
9851 '6xl': ['3.75rem', { lineHeight: '1' }],
9852 '7xl': ['4.5rem', { lineHeight: '1' }],
9853 '8xl': ['6rem', { lineHeight: '1' }],
9854 '9xl': ['8rem', { lineHeight: '1' }],
9855 // nxl -> [n rem, lineHeight: 1]
9856 },
9857 fontWeight: {
9858 thin: '100',
9859 extralight: '200',
9860 light: '300',
9861 normal: '400',
9862 medium: '500',
9863 semibold: '600',
9864 bold: '700',
9865 extrabold: '800',
9866 black: '900',
9867 // int[0, 900] -> int
9868 },
9869 gap: (theme) => theme('spacing'),
9870 gradientColorStops: (theme) => theme('colors'),
9871 grayscale: {
9872 DEFAULT: '100%',
9873 0: '0',
9874 },
9875 gridAutoColumns: {
9876 auto: 'auto',
9877 min: 'min-content',
9878 max: 'max-content',
9879 fr: 'minmax(0, 1fr)',
9880 },
9881 gridAutoRows: {
9882 auto: 'auto',
9883 min: 'min-content',
9884 max: 'max-content',
9885 fr: 'minmax(0, 1fr)',
9886 },
9887 gridColumn: {
9888 auto: 'auto',
9889 'span-1': 'span 1 / span 1',
9890 'span-2': 'span 2 / span 2',
9891 'span-3': 'span 3 / span 3',
9892 'span-4': 'span 4 / span 4',
9893 'span-5': 'span 5 / span 5',
9894 'span-6': 'span 6 / span 6',
9895 'span-7': 'span 7 / span 7',
9896 'span-8': 'span 8 / span 8',
9897 'span-9': 'span 9 / span 9',
9898 'span-10': 'span 10 / span 10',
9899 'span-11': 'span 11 / span 11',
9900 'span-12': 'span 12 / span 12',
9901 // span-int(>=1) -> span int / span int
9902 'span-full': '1 / -1',
9903 },
9904 gridColumnEnd: {
9905 auto: 'auto',
9906 1: '1',
9907 2: '2',
9908 3: '3',
9909 4: '4',
9910 5: '5',
9911 6: '6',
9912 7: '7',
9913 8: '8',
9914 9: '9',
9915 10: '10',
9916 11: '11',
9917 12: '12',
9918 13: '13',
9919 // int >=1 -> int
9920 },
9921 gridColumnStart: {
9922 auto: 'auto',
9923 1: '1',
9924 2: '2',
9925 3: '3',
9926 4: '4',
9927 5: '5',
9928 6: '6',
9929 7: '7',
9930 8: '8',
9931 9: '9',
9932 10: '10',
9933 11: '11',
9934 12: '12',
9935 13: '13',
9936 // int >=1 -> int
9937 },
9938 gridRow: {
9939 auto: 'auto',
9940 'span-1': 'span 1 / span 1',
9941 'span-2': 'span 2 / span 2',
9942 'span-3': 'span 3 / span 3',
9943 'span-4': 'span 4 / span 4',
9944 'span-5': 'span 5 / span 5',
9945 'span-6': 'span 6 / span 6',
9946 // span-int(>=1) -> span int / span int
9947 'span-full': '1 / -1',
9948 },
9949 gridRowStart: {
9950 auto: 'auto',
9951 1: '1',
9952 2: '2',
9953 3: '3',
9954 4: '4',
9955 5: '5',
9956 6: '6',
9957 7: '7',
9958 // int >=1 -> int
9959 },
9960 gridRowEnd: {
9961 auto: 'auto',
9962 1: '1',
9963 2: '2',
9964 3: '3',
9965 4: '4',
9966 5: '5',
9967 6: '6',
9968 7: '7',
9969 // int >=1 -> int
9970 },
9971 gridTemplateColumns: {
9972 none: 'none',
9973 1: 'repeat(1, minmax(0, 1fr))',
9974 2: 'repeat(2, minmax(0, 1fr))',
9975 3: 'repeat(3, minmax(0, 1fr))',
9976 4: 'repeat(4, minmax(0, 1fr))',
9977 5: 'repeat(5, minmax(0, 1fr))',
9978 6: 'repeat(6, minmax(0, 1fr))',
9979 7: 'repeat(7, minmax(0, 1fr))',
9980 8: 'repeat(8, minmax(0, 1fr))',
9981 9: 'repeat(9, minmax(0, 1fr))',
9982 10: 'repeat(10, minmax(0, 1fr))',
9983 11: 'repeat(11, minmax(0, 1fr))',
9984 12: 'repeat(12, minmax(0, 1fr))',
9985 // int >=1 -> repeat(int, minmax(0, 1fr))
9986 },
9987 gridTemplateRows: {
9988 none: 'none',
9989 1: 'repeat(1, minmax(0, 1fr))',
9990 2: 'repeat(2, minmax(0, 1fr))',
9991 3: 'repeat(3, minmax(0, 1fr))',
9992 4: 'repeat(4, minmax(0, 1fr))',
9993 5: 'repeat(5, minmax(0, 1fr))',
9994 6: 'repeat(6, minmax(0, 1fr))',
9995 // int >=1 -> repeat(int, minmax(0, 1fr))
9996 },
9997 height: (theme, { breakpoints }) => ({
9998 auto: 'auto',
9999 ...(_nullishCoalesce$1(theme('spacing'), () => ( {}))),
10000 '1/2': '50%',
10001 '1/3': '33.333333%',
10002 '2/3': '66.666667%',
10003 '1/4': '25%',
10004 '2/4': '50%',
10005 '3/4': '75%',
10006 '1/5': '20%',
10007 '2/5': '40%',
10008 '3/5': '60%',
10009 '4/5': '80%',
10010 '1/6': '16.666667%',
10011 '2/6': '33.333333%',
10012 '3/6': '50%',
10013 '4/6': '66.666667%',
10014 '5/6': '83.333333%',
10015 // fraction -> percent
10016 xs: '20rem',
10017 sm: '24rem',
10018 md: '28rem',
10019 lg: '32rem',
10020 xl: '36rem',
10021 '2xl': '42rem',
10022 '3xl': '48rem',
10023 '4xl': '56rem',
10024 '5xl': '64rem',
10025 '6xl': '72rem',
10026 '7xl': '80rem',
10027 // nxl
10028 full: '100%',
10029 min: 'min-content',
10030 max: 'max-content',
10031 prose: '65ch',
10032 screen: '100vh',
10033 ...breakpoints(_nullishCoalesce$1(theme('screens'), () => ( {}))),
10034 }),
10035 hueRotate: {
10036 '-180': '-180deg',
10037 '-90': '-90deg',
10038 '-60': '-60deg',
10039 '-30': '-30deg',
10040 '-15': '-15deg',
10041 0: '0deg',
10042 15: '15deg',
10043 30: '30deg',
10044 60: '60deg',
10045 90: '90deg',
10046 180: '180deg',
10047 },
10048 inset: (theme, { negative }) => ({
10049 auto: 'auto',
10050 ...(_nullishCoalesce$1(theme('spacing'), () => ( {}))),
10051 ...negative(theme('spacing')),
10052 '1/2': '50%',
10053 '1/3': '33.333333%',
10054 '2/3': '66.666667%',
10055 '1/4': '25%',
10056 '2/4': '50%',
10057 '3/4': '75%',
10058 full: '100%',
10059 '-1/2': '-50%',
10060 '-1/3': '-33.333333%',
10061 '-2/3': '-66.666667%',
10062 '-1/4': '-25%',
10063 '-2/4': '-50%',
10064 '-3/4': '-75%',
10065 '-full': '-100%',
10066 // fraction -> percent
10067 // ...negative
10068 }),
10069 invert: {
10070 DEFAULT: '100%',
10071 0: '0',
10072 },
10073 keyframes,
10074 letterSpacing: {
10075 tighter: '-0.05em',
10076 tight: '-0.025em',
10077 normal: '0em',
10078 wide: '0.025em',
10079 wider: '0.05em',
10080 widest: '0.1em',
10081 },
10082 lineHeight: {
10083 none: '1',
10084 tight: '1.25',
10085 snug: '1.375',
10086 normal: '1.5',
10087 relaxed: '1.625',
10088 loose: '2',
10089 3: '.75rem',
10090 4: '1rem',
10091 5: '1.25rem',
10092 6: '1.5rem',
10093 7: '1.75rem',
10094 8: '2rem',
10095 9: '2.25rem',
10096 10: '2.5rem',
10097 // int>=0 -> int/4 rem
10098 },
10099 listStyleType: {
10100 none: 'none',
10101 circle: 'circle',
10102 square: 'square',
10103 disc: 'disc',
10104 decimal: 'decimal',
10105 'zero-decimal': 'decimal-leading-zero',
10106 greek: 'lower-greek',
10107 roman: 'lower-roman',
10108 alpha: 'lower-alpha',
10109 'upper-roman': 'upper-roman',
10110 'upper-alpha': 'upper-alpha',
10111 },
10112 margin: (theme, { negative }) => ({
10113 auto: 'auto',
10114 ...(_nullishCoalesce$1(theme('spacing'), () => ( {}))),
10115 ...negative(theme('spacing')),
10116 // ...negative
10117 }),
10118 maxHeight: (theme, { breakpoints }) => ({
10119 none: 'none',
10120 ...(_nullishCoalesce$1(theme('spacing'), () => ( {}))),
10121 xs: '20rem',
10122 sm: '24rem',
10123 md: '28rem',
10124 lg: '32rem',
10125 xl: '36rem',
10126 '2xl': '42rem',
10127 '3xl': '48rem',
10128 '4xl': '56rem',
10129 '5xl': '64rem',
10130 '6xl': '72rem',
10131 '7xl': '80rem',
10132 // nxl
10133 full: '100%',
10134 min: 'min-content',
10135 max: 'max-content',
10136 prose: '65ch',
10137 screen: '100vh',
10138 ...breakpoints(_nullishCoalesce$1(theme('screens'), () => ( {}))),
10139 }),
10140 maxWidth: (theme, { breakpoints }) => ({
10141 none: 'none',
10142 ...(_nullishCoalesce$1(theme('spacing'), () => ( {}))),
10143 xs: '20rem',
10144 sm: '24rem',
10145 md: '28rem',
10146 lg: '32rem',
10147 xl: '36rem',
10148 '2xl': '42rem',
10149 '3xl': '48rem',
10150 '4xl': '56rem',
10151 '5xl': '64rem',
10152 '6xl': '72rem',
10153 '7xl': '80rem',
10154 // nxl
10155 full: '100%',
10156 min: 'min-content',
10157 max: 'max-content',
10158 prose: '65ch',
10159 screen: '100vw',
10160 ...breakpoints(_nullishCoalesce$1(theme('screens'), () => ( {}))),
10161 }),
10162 minHeight: (theme) => theme('maxHeight'),
10163 minWidth: (theme) => theme('maxWidth'),
10164 objectPosition: {
10165 bottom: 'bottom',
10166 center: 'center',
10167 left: 'left',
10168 'left-bottom': 'left bottom',
10169 'left-top': 'left top',
10170 right: 'right',
10171 'right-bottom': 'right bottom',
10172 'right-top': 'right top',
10173 top: 'top',
10174 },
10175 opacity: {
10176 0: '0',
10177 5: '0.05',
10178 10: '0.1',
10179 20: '0.2',
10180 25: '0.25',
10181 30: '0.3',
10182 40: '0.4',
10183 50: '0.5',
10184 60: '0.6',
10185 70: '0.7',
10186 75: '0.75',
10187 80: '0.8',
10188 90: '0.9',
10189 95: '0.95',
10190 100: '1',
10191 // float -> float/100
10192 },
10193 order: {
10194 first: '-9999',
10195 last: '9999',
10196 none: '0',
10197 1: '1',
10198 2: '2',
10199 3: '3',
10200 4: '4',
10201 5: '5',
10202 6: '6',
10203 7: '7',
10204 8: '8',
10205 9: '9',
10206 10: '10',
10207 11: '11',
10208 12: '12',
10209 // int[1, 9999]
10210 },
10211 outline: {
10212 none: ['2px solid transparent', '2px'],
10213 // white: ['2px dotted white', '2px'],
10214 // black: ['2px dotted black', '2px'],
10215 },
10216 outlineColor: (theme) => theme('colors'),
10217 padding: (theme) => theme('spacing'),
10218 perspective: (theme) => ({
10219 none: 'none',
10220 ...(_nullishCoalesce$1(theme('spacing'), () => ( {}))),
10221 xs: '20rem',
10222 sm: '24rem',
10223 md: '28rem',
10224 lg: '32rem',
10225 xl: '36rem',
10226 '2xl': '42rem',
10227 '3xl': '48rem',
10228 '4xl': '56rem',
10229 '5xl': '64rem',
10230 '6xl': '72rem',
10231 '7xl': '80rem',
10232 }),
10233 perspectiveOrigin: {
10234 center: 'center',
10235 top: 'top',
10236 'top-right': 'top right',
10237 right: 'right',
10238 'bottom-right': 'bottom right',
10239 bottom: 'bottom',
10240 'bottom-left': 'bottom left',
10241 left: 'left',
10242 'top-left': 'top left',
10243 },
10244 placeholderColor: (theme) => theme('colors'),
10245 placeholderOpacity: (theme) => theme('opacity'),
10246 ringColor: (theme) => ({
10247 DEFAULT: theme('colors.blue.500', '#3b82f6'),
10248 ...(_nullishCoalesce$1(theme('colors'), () => ( {}))),
10249 }),
10250 ringOffsetColor: (theme) => theme('colors'),
10251 ringOffsetWidth: {
10252 0: '0px',
10253 1: '1px',
10254 2: '2px',
10255 4: '4px',
10256 8: '8px',
10257 // float -> float px
10258 },
10259 ringOpacity: (theme) => ({
10260 DEFAULT: '0.5',
10261 ...(_nullishCoalesce$1(theme('opacity'), () => ( {}))),
10262 }),
10263 ringWidth: {
10264 DEFAULT: '3px',
10265 0: '0px',
10266 1: '1px',
10267 2: '2px',
10268 4: '4px',
10269 8: '8px',
10270 // float -> float px
10271 },
10272 rotate: {
10273 '-180': '-180deg',
10274 '-90': '-90deg',
10275 '-45': '-45deg',
10276 '-12': '-12deg',
10277 '-6': '-6deg',
10278 '-3': '-3deg',
10279 '-2': '-2deg',
10280 '-1': '-1deg',
10281 0: '0deg',
10282 1: '1deg',
10283 2: '2deg',
10284 3: '3deg',
10285 6: '6deg',
10286 12: '12deg',
10287 45: '45deg',
10288 90: '90deg',
10289 180: '180deg',
10290 // float[0, 360] -> float[0deg, 360deg]
10291 // ...negative
10292 },
10293 saturate: {
10294 DEFAULT: '0',
10295 0: '0',
10296 50: '.5',
10297 100: '1',
10298 150: '1.5',
10299 200: '2',
10300 },
10301 scale: {
10302 0: '0',
10303 50: '.5',
10304 75: '.75',
10305 90: '.9',
10306 95: '.95',
10307 100: '1',
10308 105: '1.05',
10309 110: '1.1',
10310 125: '1.25',
10311 150: '1.5',
10312 // int >=0 -> int/100
10313 },
10314 sepia: {
10315 DEFAULT: '100%',
10316 0: '0',
10317 },
10318 skew: {
10319 '-12': '-12deg',
10320 '-6': '-6deg',
10321 '-3': '-3deg',
10322 '-2': '-2deg',
10323 '-1': '-1deg',
10324 0: '0deg',
10325 1: '1deg',
10326 2: '2deg',
10327 3: '3deg',
10328 6: '6deg',
10329 12: '12deg',
10330 // float[0, 360] -> float[0deg, 360deg]
10331 // ...negative
10332 },
10333 space: (theme, { negative }) => ({
10334 ...theme('spacing'),
10335 ...negative(theme('spacing')),
10336 }),
10337 stroke: (theme) => ({
10338 ...(_nullishCoalesce$1(theme('colors'), () => ( {}))),
10339 none: 'none',
10340 }),
10341 strokeWidth: {
10342 0: '0',
10343 1: '1',
10344 2: '2',
10345 },
10346 strokeDashArray: {
10347 0: '0',
10348 1: '1',
10349 2: '2',
10350 },
10351 strokeDashOffset: {
10352 0: '0',
10353 1: '1',
10354 2: '2',
10355 },
10356 tabSize: {
10357 DEFAULT: '4',
10358 0: '0',
10359 2: '2',
10360 4: '4',
10361 8: '8',
10362 // int >=0 -> int px
10363 },
10364 textColor: (theme) => theme('colors'),
10365 textOpacity: (theme) => theme('opacity'),
10366 textShadow: {
10367 DEFAULT: '0px 0px 1px rgb(0 0 0 / 20%), 0px 0px 1px rgb(1 0 5 / 10%)',
10368 sm: '1px 1px 3px rgb(36 37 47 / 25%)',
10369 md: '0px 1px 2px rgb(30 29 39 / 19%), 1px 2px 4px rgb(54 64 147 / 18%)',
10370 lg: '3px 3px 6px rgb(0 0 0 / 26%), 0 0 5px rgb(15 3 86 / 22%)',
10371 xl: '1px 1px 3px rgb(0 0 0 / 29%), 2px 4px 7px rgb(73 64 125 / 35%)',
10372 none: 'none',
10373 },
10374 textDecorationColor: (theme) => theme('colors'),
10375 textDecorationOpacity: (theme) => theme('opacity'),
10376 textDecorationLength: {
10377 'auto': 'auto',
10378 0: '0px',
10379 2: '2px',
10380 4: '4px',
10381 8: '8px',
10382 },
10383 textDecorationOffset: {
10384 'auto': 'auto',
10385 0: '0px',
10386 1: '1px',
10387 2: '2px',
10388 4: '4px',
10389 8: '8px',
10390 },
10391 textIndent: {
10392 DEFAULT: '1.5rem',
10393 xs: '0.5rem',
10394 sm: '1rem',
10395 md: '1.5rem',
10396 lg: '2rem',
10397 xl: '2.5rem',
10398 '2xl': '3rem',
10399 '3xl': '4rem',
10400 },
10401 textStrokeColor: (theme) => ({
10402 DEFAULT: theme('colors.gray.200', 'currentColor'),
10403 ...(_nullishCoalesce$1(theme('colors'), () => ( {}))),
10404 }),
10405 textStrokeWidth: {
10406 DEFAULT: 'medium',
10407 'none': '0',
10408 'sm': 'thin',
10409 'md': 'medium',
10410 'lg': 'thick',
10411 },
10412 transformOrigin: {
10413 center: 'center',
10414 top: 'top',
10415 'top-right': 'top right',
10416 right: 'right',
10417 'bottom-right': 'bottom right',
10418 bottom: 'bottom',
10419 'bottom-left': 'bottom left',
10420 left: 'left',
10421 'top-left': 'top left',
10422 },
10423 transitionDuration: {
10424 DEFAULT: '150ms',
10425 75: '75ms',
10426 100: '100ms',
10427 150: '150ms',
10428 200: '200ms',
10429 300: '300ms',
10430 500: '500ms',
10431 700: '700ms',
10432 1000: '1000ms',
10433 // int >=0 -> int ms
10434 },
10435 transitionDelay: {
10436 75: '75ms',
10437 100: '100ms',
10438 150: '150ms',
10439 200: '200ms',
10440 300: '300ms',
10441 500: '500ms',
10442 700: '700ms',
10443 1000: '1000ms',
10444 // int >=0 -> int ms
10445 },
10446 transitionProperty: {
10447 DEFAULT: 'background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',
10448 none: 'none',
10449 all: 'all',
10450 colors: 'background-color, border-color, color, fill, stroke',
10451 opacity: 'opacity',
10452 shadow: 'box-shadow',
10453 transform: 'transform',
10454 },
10455 transitionTimingFunction: {
10456 DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',
10457 linear: 'linear',
10458 in: 'cubic-bezier(0.4, 0, 1, 1)',
10459 out: 'cubic-bezier(0, 0, 0.2, 1)',
10460 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
10461 },
10462 translate: (theme, { negative }) => ({
10463 ...(_nullishCoalesce$1(theme('spacing'), () => ( {}))),
10464 ...negative(theme('spacing')),
10465 '1/2': '50%',
10466 '1/3': '33.333333%',
10467 '2/3': '66.666667%',
10468 '1/4': '25%',
10469 '2/4': '50%',
10470 '3/4': '75%',
10471 full: '100%',
10472 '-1/2': '-50%',
10473 '-1/3': '-33.333333%',
10474 '-2/3': '-66.666667%',
10475 '-1/4': '-25%',
10476 '-2/4': '-50%',
10477 '-3/4': '-75%',
10478 '-full': '-100%',
10479 // fraction -> percent
10480 // ...negative
10481 }),
10482 width: (theme, { breakpoints }) => ({
10483 auto: 'auto',
10484 ...(_nullishCoalesce$1(theme('spacing'), () => ( {}))),
10485 // fraction -> percent
10486 '1/2': '50%',
10487 '1/3': '33.333333%',
10488 '2/3': '66.666667%',
10489 '1/4': '25%',
10490 '2/4': '50%',
10491 '3/4': '75%',
10492 '1/5': '20%',
10493 '2/5': '40%',
10494 '3/5': '60%',
10495 '4/5': '80%',
10496 '1/6': '16.666667%',
10497 '2/6': '33.333333%',
10498 '3/6': '50%',
10499 '4/6': '66.666667%',
10500 '5/6': '83.333333%',
10501 '1/12': '8.333333%',
10502 '2/12': '16.666667%',
10503 '3/12': '25%',
10504 '4/12': '33.333333%',
10505 '5/12': '41.666667%',
10506 '6/12': '50%',
10507 '7/12': '58.333333%',
10508 '8/12': '66.666667%',
10509 '9/12': '75%',
10510 '10/12': '83.333333%',
10511 '11/12': '91.666667%',
10512 xs: '20rem',
10513 sm: '24rem',
10514 md: '28rem',
10515 lg: '32rem',
10516 xl: '36rem',
10517 '2xl': '42rem',
10518 '3xl': '48rem',
10519 '4xl': '56rem',
10520 '5xl': '64rem',
10521 '6xl': '72rem',
10522 '7xl': '80rem',
10523 // nxl
10524 full: '100%',
10525 min: 'min-content',
10526 max: 'max-content',
10527 prose: '65ch',
10528 screen: '100vw',
10529 ...breakpoints(_nullishCoalesce$1(theme('screens'), () => ( {}))),
10530 }),
10531 zIndex: {
10532 auto: 'auto',
10533 0: '0',
10534 10: '10',
10535 20: '20',
10536 30: '30',
10537 40: '40',
10538 50: '50',
10539 // int[0, 99999] -> int[0, 99999]
10540 // ...negative
10541 },
10542 },
10543 variantOrder: variantOrder,
10544 plugins: [],
10545 handlers: {
10546 static : true,
10547 time: true,
10548 color: true,
10549 opacity: true,
10550 number : true,
10551 string: true,
10552 bracket: true,
10553 hex: true,
10554 nxl: true,
10555 fraction: true,
10556 size: true,
10557 variable: true,
10558 negative: true,
10559 },
10560};
10561
10562// https://drafts.csswg.org/cssom/#serialize-an-identifier
10563
10564function cssEscape(str) {
10565 const length = str.length;
10566 let index = -1;
10567 let codeUnit;
10568 let result = '';
10569 const firstCodeUnit = str.charCodeAt(0);
10570 while (++index < length) {
10571 codeUnit = str.charCodeAt(index);
10572 // Note: there’s no need to special-case astral symbols, surrogate
10573 // pairs, or lone surrogates.
10574
10575 // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
10576 // (U+FFFD).
10577 if (codeUnit === 0x0000) {
10578 result += '\uFFFD';
10579 continue;
10580 }
10581
10582 // Comma
10583 if (codeUnit === 44){
10584 result += '\\2c ';
10585 continue;
10586 }
10587
10588 if (
10589 // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
10590 // U+007F, […]
10591 (codeUnit >= 0x0001 && codeUnit <= 0x001f) ||
10592 codeUnit === 0x007f ||
10593 // If the character is the first character and is in the range [0-9]
10594 // (U+0030 to U+0039), […]
10595 (index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
10596 // If the character is the second character and is in the range [0-9]
10597 // (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
10598 (index === 1 &&
10599 codeUnit >= 0x0030 &&
10600 codeUnit <= 0x0039 &&
10601 firstCodeUnit === 0x002d)
10602 ) {
10603 // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
10604 result += '\\' + codeUnit.toString(16) + ' ';
10605 continue;
10606 }
10607
10608 if (
10609 // If the character is the first character and is a `-` (U+002D), and
10610 // there is no second character, […]
10611 index === 0 &&
10612 length === 1 &&
10613 codeUnit === 0x002d
10614 ) {
10615 result += '\\' + str.charAt(index);
10616 continue;
10617 }
10618
10619 // If the character is not handled by one of the above rules and is
10620 // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
10621 // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
10622 // U+005A), or [a-z] (U+0061 to U+007A), […]
10623 if (
10624 codeUnit >= 0x0080 ||
10625 codeUnit === 0x002d ||
10626 codeUnit === 0x005f ||
10627 (codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
10628 (codeUnit >= 0x0041 && codeUnit <= 0x005a) ||
10629 (codeUnit >= 0x0061 && codeUnit <= 0x007a)
10630 ) {
10631 // the character itself
10632 result += str.charAt(index);
10633 continue;
10634 }
10635
10636 // Otherwise, the escaped character.
10637 // https://drafts.csswg.org/cssom/#escape-a-character
10638 result += '\\' + str.charAt(index);
10639 }
10640 return result;
10641}
10642
10643function combineConfig(
10644 a,
10645 b,
10646 arrayMergeDepth = Infinity,
10647) {
10648 const output = { ...a };
10649 for (const [key_of_b, value_of_b] of Object.entries(b)) {
10650 if (key_of_b in a) {
10651 const value_of_a = a[key_of_b];
10652 if (value_of_a !== value_of_b) {
10653 if (value_of_b !== null && (value_of_b ).constructor !== Object) {
10654 if (arrayMergeDepth > 0 && Array.isArray(value_of_a) && Array.isArray(value_of_b)) {
10655 output[key_of_b] = [...value_of_a, ...value_of_b];
10656 } else {
10657 output[key_of_b] = value_of_b;
10658 }
10659 } else if (value_of_a !== null && (value_of_a ).constructor === Object) {
10660 output[key_of_b] = combineConfig(
10661 value_of_a ,
10662 value_of_b ,
10663 arrayMergeDepth - 1
10664 );
10665 } else if (Array.isArray(value_of_a)){
10666 output[key_of_b] = [
10667 ...value_of_a,
10668 ...Array.isArray(value_of_b) ? value_of_b : [value_of_b],
10669 ];
10670 } else {
10671 output[key_of_b] = {
10672 DEFAULT: value_of_a,
10673 ...value_of_b ,
10674 };
10675 }
10676 }
10677 } else {
10678 output[key_of_b] = value_of_b;
10679 }
10680 }
10681 return output;
10682}
10683
10684function diffConfig(
10685 a,
10686 b,
10687) {
10688 if (typeof a !== typeof b) return b;
10689 if (Array.isArray(a) && Array.isArray(b)) {
10690 if (JSON.stringify(a) !== JSON.stringify(b)) return b;
10691 return;
10692 }
10693 if (a && b && typeof a === 'object' && typeof b === 'object') {
10694 const output = {};
10695 for (const [key, value] of Object.entries(b)) {
10696 if (key in a) {
10697 const diff = diffConfig((a )[key], (b )[key]);
10698 if (diff) output[key] = diff;
10699 } else {
10700 output[key] = value;
10701 }
10702 }
10703 if (Object.keys(output).length === 0) return;
10704 return output;
10705 }
10706 if (a !== b) return b;
10707}
10708
10709function createHandler(handlers = { static: true }) {
10710 return (utility, value, color) => {
10711 const handler = {
10712 utility,
10713 value,
10714 color,
10715 _amount: utility.amount,
10716
10717 handleStatic: handlers.static ? (map, callback) => {
10718 if (handler.value) return handler;
10719 if (map && typeof map === 'object') {
10720 const knownMap = map ;
10721 if (knownMap.DEFAULT) knownMap[handler.utility.raw] = knownMap.DEFAULT;
10722 if (handler._amount in knownMap)
10723 handler.value = callback
10724 ? callback(handler._amount)
10725 : `${knownMap[handler._amount]}`;
10726 }
10727 return handler;
10728 } : () => handler,
10729
10730 handleBody: handlers.static ? (map, callback) => {
10731 if (handler.value) return handler;
10732 if (map && typeof map === 'object') {
10733 const knownMap = map ;
10734 if (knownMap.DEFAULT) knownMap[''] = knownMap.DEFAULT;
10735 const body = handler.utility.body;
10736 if (body in knownMap)
10737 handler.value = callback ? callback(body) : `${knownMap[body]}`;
10738 }
10739 return handler;
10740 } : () => handler,
10741
10742 handleNumber: handlers.number ? (start = -Infinity, end = Infinity, type = 'int', callback) => {
10743 if (handler.value) return handler;
10744 if (isNumber(handler._amount, start, end, type))
10745 handler.value = callback ? callback(+handler._amount) : handler._amount;
10746 return handler;
10747 } : () => handler,
10748
10749 handleTime: handlers.time ? (start = -Infinity, end = Infinity, type = 'int', callback) => {
10750 if (handler.value) return handler;
10751 let unit = 'ms';
10752 let amount = handler._amount;
10753 if (amount.endsWith('ms')) {
10754 amount = amount.slice(0, -2);
10755 } else if (amount.endsWith('s')) {
10756 unit = 's';
10757 amount = amount.slice(0, -1);
10758 } else {
10759 return handler;
10760 }
10761 if (isNumber(amount, start, end, type))
10762 handler.value = callback ? callback(unit === 's' ? +amount * 1000 : +amount) : handler._amount;
10763 return handler;
10764 } : () => handler,
10765
10766 handleString: handlers.string ? (callback) => {
10767 if (handler.value) return handler;
10768 handler.value = callback(handler.utility.body);
10769 return handler;
10770 } : () => handler,
10771
10772 handleSquareBrackets: handlers.bracket ? (callback) => {
10773 if (handler.value) return handler;
10774 if (handler._amount[0] === '[' && handler._amount[handler._amount.length-1] === ']') {
10775 let value = handler._amount.slice(1, -1).replace(/_/g, ' '); // replace _ to space
10776 if (value.indexOf('calc(') > -1) {
10777 value = value.replace(/(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g, '$1 $2 ');
10778 }
10779 handler.value = callback
10780 ? callback(value)
10781 : value;
10782 }
10783 return handler;
10784 } : () => handler,
10785
10786 handleSpacing: handlers.number ? () => {
10787 // just a short-hand for handle spacing.
10788 return handler.handleNumber(0, undefined, 'float', (number) =>
10789 number === 0 ? '0px' : `${roundUp(number / 4, 6)}rem`
10790 );
10791 }: () => handler,
10792
10793 handleNxl: handlers.nxl ? (callback) => {
10794 if (handler.value) return handler;
10795 if (/^\d*xl$/.test(handler._amount))
10796 handler.value = callback
10797 ? callback(handler._amount === 'xl' ? 1 : parseInt(handler._amount))
10798 : parseInt(handler._amount).toString();
10799 return handler;
10800 }: () => handler,
10801
10802 handleFraction: handlers.fraction ? (callback) => {
10803 if (handler.value) return handler;
10804 if (isFraction(handler._amount))
10805 handler.value = callback
10806 ? callback(handler._amount)
10807 : fracToPercent(handler._amount);
10808 return handler;
10809 } : () => handler,
10810
10811 handleSize: handlers.size ? (callback) => {
10812 if (handler.value) return handler;
10813 if (isSize(handler._amount))
10814 handler.value = callback ? callback(handler._amount) : handler._amount;
10815 return handler;
10816 } : () => handler,
10817
10818 handleVariable: handlers.variable ? (callback) => {
10819 if (handler.value) return handler;
10820 const matchVariable = handler.utility.raw.match(/-\$[\w-]+/);
10821 if (matchVariable) {
10822 const variableName = matchVariable[0].substring(2);
10823 handler.value = callback ? callback(variableName) : `var(--${variableName})`;
10824 }
10825 return handler;
10826 } : () => handler,
10827
10828 handleColor: handlers.color ? (map = defaultColors) => {
10829 if (handler.value) return handler;
10830 let color;
10831 if (map && typeof map === 'object') {
10832 const colors = flatColors(map );
10833 const body = handler.utility.raw.replace(/^ring-offset|outline-solid|outline-dotted/, 'head').replace(/^\w+-/, '');
10834 const [ key, opacity ] = splitColorGroup(body);
10835 handler.opacity = opacity;
10836 if (key in colors) {
10837 color = colors[key];
10838 } else if (handlers.hex && key.startsWith('hex-')) {
10839 const hex = key.slice(4);
10840 if(hex2RGB(hex)) color = '#' + hex;
10841 }
10842 if (typeof color === 'string') {
10843 handler.value = color;
10844 } else if (typeof color === 'function') {
10845 handler.color = color;
10846 }
10847 }
10848 return handler;
10849 }: () => handler,
10850
10851 handleOpacity: handlers.opacity ? (map) => {
10852 if (handler.opacity && typeof map === 'object') {
10853 const _map = map ;
10854 if (handlers.static && handler.opacity in _map) {
10855 handler.opacity = _map[handler.opacity];
10856 } else if (handlers.number && isNumber(handler.opacity, 0, 100, 'int')) {
10857 handler.opacity = (+handler.opacity / 100).toString();
10858 } else if (handlers.variable && handler.opacity.charAt(0) === '$') {
10859 handler.opacity = `var(--${handler.opacity.slice(1)})`;
10860 } else if (handlers.bracket && handler.opacity.charAt(0) === '[' && handler.opacity.charAt(handler.opacity.length - 1) === ']') {
10861 handler.opacity = handler.opacity.slice(1, -1).replace(/_/g, ' ');
10862 } else {
10863 handler.opacity = undefined;
10864 }
10865 }
10866 return handler;
10867 }: () => handler,
10868
10869 handleNegative: handlers.negative ? (callback = negateValue) => {
10870 if (!handler.value) return handler;
10871 handler.value = handler.utility.isNegative ? callback(handler.value) : handler.value;
10872 return handler;
10873 }: () => handler,
10874
10875 createProperty: (name, callback) => {
10876 if (!handler.value) return;
10877 const value = callback ? callback(handler.value) : handler.value;
10878 return new Property(name, value);
10879 },
10880
10881 createStyle: (selector, callback) => {
10882 if (!handler.value) return;
10883 const value = callback ? callback(handler.value) : undefined;
10884 return new Style(selector, value);
10885 },
10886
10887 createColorValue: (opacityValue) => {
10888 if (handler.color) return handler.color({ opacityValue });
10889 if (handler.value) {
10890 if (['transparent', 'currentColor', 'auto', 'none'].includes(handler.value)) return handler.value;
10891 if (handler.value.includes('var') && opacityValue) return `rgba(${handler.value}, ${handler.opacity || opacityValue})`;
10892 return opacityValue ? `rgba(${toColor(handler.value).color}, ${handler.opacity || opacityValue})` : `rgb(${toColor(handler.value).color})`;
10893 }
10894 },
10895
10896 createColorStyle: (selector, property, opacityVariable, wrapRGB = true) => {
10897 if (handler.color) {
10898 const value = handler.color({ opacityVariable, opacityValue: opacityVariable ? `var(${opacityVariable})`: undefined });
10899 if (opacityVariable) {
10900 return new Style(selector, [
10901 new Property(opacityVariable, handler.opacity || '1'),
10902 new Property(property, value),
10903 ]);
10904 }
10905 return new Style(selector, new Property(property, value));
10906 }
10907 const color = handler.value;
10908 if (!color) return;
10909 if (['transparent', 'currentColor', 'auto', 'none'].includes(color) || color.includes('var')) return new Style(selector, new Property(property, color));
10910 const rgb = toColor(color);
10911 if (opacityVariable) {
10912 return new Style(selector, [
10913 new Property(opacityVariable, handler.opacity || rgb.opacity),
10914 new Property(property, `rgba(${rgb.color}, var(${opacityVariable}))`),
10915 ]);
10916 }
10917 return new Style(selector, new Property(property, wrapRGB ? `rgb(${rgb.color})` : rgb.color));
10918 },
10919
10920 callback: (func) => {
10921 if (!handler.value) return;
10922 return func(handler.value);
10923 },
10924 };
10925 return handler;
10926 };
10927}
10928
10929class Utility {
10930
10931
10932 constructor(raw, _h) {
10933 this.raw = raw; // -placeholder-real-gray-300
10934 this._h = _h;
10935 }
10936 match(expression) {
10937 const match = this.absolute.match(expression);
10938 return match ? match[0] : '';
10939 }
10940 clone(raw) {
10941 return new Utility(raw || this.raw, this._h);
10942 }
10943 get class() {
10944 return '.' + cssEscape(this.raw); // .-placeholder-real-gray-300
10945 }
10946 get isNegative() {
10947 return this.raw[0] === '-'; // true
10948 }
10949 get absolute() {
10950 return this.isNegative ? this.raw.substring(1) : this.raw;
10951 }
10952 get identifier() {
10953 return this.match(/[^-]+/); // placeholder
10954 }
10955 get key() {
10956 return this.match(/^\w[-\w]+(?=-)/); // placeholder-real-gray
10957 }
10958 get center() {
10959 return this.match(/-.+(?=-)/).substring(1); // real-gray
10960 }
10961 get amount() {
10962 return this.match(/(?:[^-]+|\[[\s\S]*?\])$/); // 300
10963 }
10964 get body() {
10965 return this.match(/-.+/).substring(1); // real-gray-300
10966 }
10967 get handler() {
10968 return this._h(this);
10969 }
10970}
10971
10972function generateStaticStyle(processor, className, addComment = false) {
10973 // eslint-disable-next-line no-prototype-builtins
10974 if (!staticUtilities.hasOwnProperty(className))
10975 return;
10976
10977 const style = new Style('.' + className);
10978 const comment = addComment ? className : undefined;
10979 const { utility, meta } = staticUtilities[className];
10980 for (const [key, value] of Object.entries(utility)) {
10981 style.add(
10982 Array.isArray(value)
10983 ? value.map((i) => new Property(key, i, comment))
10984 : new Property(key, value, comment)
10985 );
10986 }
10987 if (processor._plugin.core && !processor._plugin.core[meta.group]) return;
10988 return style.updateMeta('utilities', meta.group, pluginOrder[meta.group ], meta.order, true);
10989}
10990
10991function extract(
10992 processor,
10993 className,
10994 addComment = false,
10995 prefix,
10996) {
10997
10998 // handle static base utilities
10999 if (!prefix && className in staticUtilities) return generateStaticStyle(processor, className, addComment);
11000 if (prefix && className.startsWith(prefix)) {
11001 className = className.replace(new RegExp(`^${prefix}`), '');
11002 if (className in staticUtilities) return generateStaticStyle(processor, className, addComment);
11003 }
11004 // handle static plugin utilities & components
11005 const staticPlugins = { ...processor._plugin.utilities, ...processor._plugin.components, ...processor._plugin.shortcuts };
11006 if (className in staticPlugins) return deepCopy(staticPlugins[className]);
11007
11008 const utility = new Utility(className, processor._handler);
11009
11010
11011 // handle dynamic plugin utilities
11012 for (const [key, generator] of Object.entries(processor._plugin.dynamic)) {
11013 if (className.match(new RegExp(`^-?${key}`))) {
11014 let style = generator(utility);
11015 if (style instanceof Property) style = style.toStyle(utility.class);
11016 if (style && addComment)
11017 Array.isArray(style)
11018 ? style.map((i) => i.property.forEach((p) => (p.comment = className)))
11019 : style.property.forEach((p) => (p.comment = className));
11020 if (style) return style;
11021 }
11022 }
11023
11024 // handle dynamic base utilities
11025 const matches = className.match(/\w+/);
11026 const key = matches ? matches[0] : undefined;
11027 // eslint-disable-next-line no-prototype-builtins
11028 if (key && dynamicUtilities.hasOwnProperty(key)) {
11029 let style = dynamicUtilities[key](utility, processor.pluginUtils);
11030 if (!style) return;
11031 if (processor._plugin.core && !processor._plugin.core[Array.isArray(style) ? style[0].meta.group : style.meta.group]) return;
11032 if (style instanceof Property) style = style.toStyle(utility.class);
11033 if (addComment) Array.isArray(style)? style.map((i) => i.property.forEach((p) => (p.comment = className))): style.property.forEach((p) => (p.comment = className));
11034 return style;
11035 }
11036}
11037
11038function testStatic(processor, className) {
11039 // eslint-disable-next-line no-prototype-builtins
11040 if (!staticUtilities.hasOwnProperty(className)) return false;
11041 const { meta } = staticUtilities[className];
11042 if (processor._plugin.core && !processor._plugin.core[meta.group]) return false;
11043 return true;
11044}
11045
11046function test(
11047 processor,
11048 className,
11049 prefix,
11050) {
11051
11052 // handle static base utilities
11053 if (!prefix && className in staticUtilities) return testStatic(processor, className);
11054 if (prefix && className.startsWith(prefix)) {
11055 className = className.replace(new RegExp(`^${prefix}`), '');
11056 if (className in staticUtilities) return testStatic(processor, className);
11057 }
11058 // handle static plugin utilities & components
11059 const staticPlugins = { ...processor._plugin.utilities, ...processor._plugin.components, ...processor._plugin.shortcuts };
11060 if (className in staticPlugins) return true;
11061
11062 const utility = new Utility(className, processor._handler);
11063
11064
11065 // handle dynamic plugin utilities
11066 for (const [key, generator] of Object.entries(processor._plugin.dynamic)) {
11067 if (className.match(new RegExp(`^-?${key}`))) {
11068 if (generator(utility)) return true;
11069 }
11070 }
11071
11072 // handle dynamic base utilities
11073 const matches = className.match(/\w+/);
11074 const key = matches ? matches[0] : undefined;
11075 // eslint-disable-next-line no-prototype-builtins
11076 if (key && dynamicUtilities.hasOwnProperty(key)) {
11077 const style = dynamicUtilities[key](utility, processor.pluginUtils);
11078 if (!style) return false;
11079 if (processor._plugin.core && !processor._plugin.core[Array.isArray(style) ? style[0].meta.group : style.meta.group]) return false;
11080 return true;
11081 }
11082 return false;
11083}
11084
11085function preflight(
11086 processor,
11087 html,
11088 includeBase = true,
11089 includeGlobal = true,
11090 includePlugins = true,
11091) {
11092 // Generate preflight style based on html tags.
11093 const globalSheet = new StyleSheet();
11094 const styleSheet = new StyleSheet();
11095
11096 const createStyle = (
11097 selector,
11098 properties
11099
11100,
11101 isGlobal = false
11102 ) => {
11103 const style = new Style(selector, undefined, false);
11104 for (const [key, value] of Object.entries(properties)) {
11105 style.add(
11106 Array.isArray(value)
11107 ? value.map((v) => new Property(key, v))
11108 : new Property(key, typeof value === 'function' ? value((path, defaultValue) => processor.theme(path, defaultValue)) : value)
11109 );
11110 }
11111 style.updateMeta('base', 'preflight', 0, isGlobal? 1 : 2, true);
11112 return style;
11113 };
11114
11115 const tags = html ? Array.from(new Set(html.match(/<\w+/g))).map((i) => i.substring(1)) : undefined;
11116
11117 // handle base style
11118 includeBase && (processor.config('prefixer') ? preflights : preflights.filter(i => !i.selector || !/::?(webkit-input|-moz|-ms-input)-placeholder$/.test(i.selector))).forEach(p => {
11119 if (includeGlobal && p.global) {
11120 // global style, such as * or html, body
11121 globalSheet.add(createStyle(p.selector, p.properties, true));
11122 } else if (tags !== undefined) {
11123 // only generate matched styles
11124 const includeTags = tags.filter((i) => p.keys.includes(i));
11125 if (includeTags.length > 0) styleSheet.add(createStyle(p.selector ? p.selector : includeTags.join(', '), p.properties));
11126 } else {
11127 // if no tags input, generate all styles
11128 styleSheet.add(createStyle(p.selector ? p.selector : p.keys.join(', '), p.properties));
11129 }
11130 });
11131
11132 // handle plugin style
11133 if (includePlugins) {
11134 // base Styles
11135 let preflightList = [];
11136 Object.values(processor._plugin.preflights).forEach((styles) => {
11137 preflightList = preflightList.concat(styles);
11138 });
11139 styleSheet.add(preflightList);
11140
11141 // always generated styles
11142 let staticList = [];
11143 Object.values(processor._plugin.static).forEach((styles) => {
11144 staticList = staticList.concat(styles);
11145 });
11146 styleSheet.add(staticList);
11147 }
11148
11149 const result = styleSheet.combine().sort();
11150 return includeGlobal ? result.extend(globalSheet.combine().sort(), false) : result;
11151}
11152
11153const createPlugin = (
11154 plugin,
11155 config
11156) => {
11157 return {
11158 handler: plugin,
11159 config,
11160 };
11161};
11162
11163createPlugin.withOptions = function(
11164 pluginFunction,
11165 configFunction = () => ({}),
11166) {
11167 const optionsFunction = function (options= {} ) {
11168 return {
11169 __options: options,
11170 handler: pluginFunction(options),
11171 config: configFunction(options),
11172 };
11173 };
11174
11175 optionsFunction.__isOptionsFunction = true ;
11176
11177 // Expose plugin dependencies so that `object-hash` returns a different
11178 // value if anything here changes, to ensure a rebuild is triggered.
11179 optionsFunction.__pluginFunction = pluginFunction;
11180 optionsFunction.__configFunction = configFunction;
11181
11182 return optionsFunction;
11183};
11184
11185class ClassParser {
11186
11187
11188
11189
11190
11191 constructor(classNames, separator = ':', variants) {
11192 this.classNames = classNames;
11193 this.separator = separator;
11194 this.variants = variants || [];
11195 this.index = 0;
11196 }
11197
11198 _handle_group(removeDuplicated = true) {
11199 if (!this.classNames) return [];
11200 let preChar;
11201 let char;
11202 let group;
11203 let func;
11204 let variant;
11205 let variants = [];
11206 let variantStart = this.index + 1;
11207 let classStart = this.index + 1;
11208 let groupStart = this.index + 1;
11209 let important = false;
11210 let ignoreSpace = false;
11211 let ignoreBracket = false;
11212 let insideSquareBracket = false;
11213 const sepLength = this.separator.length;
11214 const parts = [];
11215 const length = this.classNames.length;
11216
11217 while (this.index < length) {
11218 this.index++;
11219 char = this.classNames.charAt(this.index);
11220 // ignore parsing and leave content inside square brackets as-is
11221 if (insideSquareBracket) {
11222 if(' \n\t\r'.includes(char)) {
11223 insideSquareBracket = false;
11224 } else {
11225 if (char === ']')
11226 insideSquareBracket = false;
11227 continue;
11228 }
11229 }
11230 // handle chars
11231 switch (char) {
11232 case '!':
11233 important = true;
11234 break;
11235 case this.separator[0]:
11236 if (this.classNames.slice(this.index, this.index + sepLength) === this.separator) {
11237 variant = this.classNames.slice(variantStart, this.index);
11238 if (variant.charAt(0) === '!') variant = variant.slice(1,);
11239 if (this.variants.includes(variant)) {
11240 variants.push(variant);
11241 this.index += sepLength - 1;
11242 variantStart = this.index + 1;
11243 ignoreSpace = true;
11244 }
11245 }
11246 break;
11247 case '[':
11248 insideSquareBracket = true;
11249 break;
11250 case '(':
11251 preChar = this.classNames.charAt(this.index - 1);
11252 if (preChar === '-' || (!ignoreSpace && preChar === ' ')) {
11253 ignoreBracket = true;
11254 } else if (ignoreSpace) {
11255 group = this._handle_group();
11256 } else {
11257 func = this.classNames.slice(groupStart, this.index);
11258 while (!isSpace(this.classNames.charAt(this.index))) {
11259 this.index++;
11260 }
11261 this.index--;
11262 }
11263 ignoreSpace = false;
11264 break;
11265 case '"':
11266 case '`':
11267 case '\'':
11268 case ')':
11269 case ' ':
11270 case '\n':
11271 case '\t':
11272 case '\r':
11273 if (!ignoreSpace) {
11274 if (groupStart !== this.index) {
11275 const raw = this.classNames.slice(classStart, this.index);
11276 const start = classStart - 1;
11277 const end = this.index - 1;
11278 if (Array.isArray(group)) {
11279 parts.push({ raw, start, end, variants, content: group, type: 'group', important });
11280 group = undefined;
11281 } else if (func) {
11282 const utility = this.classNames.slice(variantStart, this.index);
11283 parts.push({ raw: raw, start, end, variants, content: utility, type: 'utility', important });
11284 func = undefined;
11285 } else if (ignoreBracket && char === ')') {
11286 // utility with bracket
11287 const utility = this.classNames.slice(variantStart, this.index + 1);
11288 parts.push({ raw: raw + ')', start, end: this.index, variants, content: important ? utility.slice(1,): utility, type: 'utility', important });
11289 } else {
11290 const utility = this.classNames.slice(variantStart, this.index);
11291 if (utility.charAt(0) === '*') {
11292 parts.push({ raw, start, end, variants, content: utility.slice(1,), type: 'alias', important });
11293 } else {
11294 parts.push({ raw, start, end, variants, content: utility.charAt(0) === '!' ? utility.slice(1,): utility, type: 'utility', important });
11295 }
11296 }
11297 variants = [];
11298 important = false;
11299 }
11300 groupStart = this.index + 1;
11301 classStart = this.index + 1;
11302 }
11303 variantStart = this.index + 1;
11304 break;
11305 default:
11306 ignoreSpace = false;
11307 }
11308 if (char === ')') {
11309 if (!ignoreBracket) break; // end group
11310 ignoreBracket = false;
11311 }
11312 }
11313
11314 if (removeDuplicated) {
11315 const newParts = [];
11316 const cache = [];
11317 parts.forEach((item) => {
11318 if (!cache.includes(item.raw)) {
11319 cache.push(item.raw);
11320 newParts.push(item);
11321 }
11322 });
11323 return newParts;
11324 }
11325 return parts;
11326 }
11327
11328 parse(removeDuplicated = true) {
11329 if (!this.classNames) return [];
11330 // Turn classes into group;
11331 this.classNames = '(' + this.classNames + ')';
11332 const elements = this._handle_group(removeDuplicated);
11333 // Initialization, convenient for next call
11334 this.index = 0;
11335 this.classNames = this.classNames.slice(1, -1);
11336 return elements;
11337 }
11338}
11339
11340/* toSource by Marcello Bastea-Forte - zlib license */
11341function toSource(object, replacer, indent = ' ', startingIndent = '') {
11342 const seen = [];
11343 return walk(object, replacer, indent === false ? '' : indent, startingIndent, seen);
11344 function walk(object, replacer, indent, currentIndent, seen) {
11345 const nextIndent = currentIndent + indent;
11346 object = replacer ? replacer(object) : object;
11347 switch (typeof object) {
11348 case 'string':
11349 return JSON.stringify(object);
11350 case 'number':
11351 if (Object.is(object, -0)) {
11352 return '-0';
11353 }
11354 return String(object);
11355 case 'boolean':
11356 case 'undefined':
11357 return String(object);
11358 case 'function':
11359 return object.toString();
11360 }
11361 if (object === null) {
11362 return 'null';
11363 }
11364 if (object instanceof RegExp) {
11365 return object.toString();
11366 }
11367 if (object instanceof Date) {
11368 return `new Date(${object.getTime()})`;
11369 }
11370 if (object instanceof Set) {
11371 return `new Set(${walk(Array.from(object.values()), replacer, indent, nextIndent, seen)})`;
11372 }
11373 if (object instanceof Map) {
11374 return `new Map(${walk(Array.from(object.entries()), replacer, indent, nextIndent, seen)})`;
11375 }
11376 if (seen.indexOf(object) >= 0) {
11377 return '{$circularReference:1}';
11378 }
11379 seen.push(object);
11380 function join(elements) {
11381 return (indent.slice(1) +
11382 elements.join(',' + (indent && '\n') + nextIndent) +
11383 (indent ? ' ' : ''));
11384 }
11385 if (Array.isArray(object)) {
11386 return `[${join(object.map((element) => walk(element, replacer, indent, nextIndent, seen.slice())))}]`;
11387 }
11388 const keys = Object.keys(object);
11389 if (keys.length) {
11390 return `{${join(keys.map((key) => (legalKey(key) ? key : JSON.stringify(key)) +
11391 ':' +
11392 walk(object[key], replacer, indent, nextIndent, seen.slice())))}}`;
11393 }
11394 return '{}';
11395 }
11396}
11397const KEYWORD_REGEXP = /^(abstract|boolean|break|byte|case|catch|char|class|const|continue|debugger|default|delete|do|double|else|enum|export|extends|false|final|finally|float|for|function|goto|if|implements|import|in|instanceof|int|interface|long|native|new|null|package|private|protected|public|return|short|static|super|switch|synchronized|this|throw|throws|transient|true|try|typeof|undefined|var|void|volatile|while|with)$/;
11398function legalKey(key) {
11399 return (/^([a-z_$][0-9a-z_$]*|[0-9]+)$/gi.test(key) && !KEYWORD_REGEXP.test(key));
11400}
11401
11402function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434class Processor {
11435
11436
11437 __init() {this._variants = {};}
11438 __init2() {this._cache = {
11439 count: 0,
11440 html: [],
11441 attrs: [],
11442 classes: [],
11443 utilities: [],
11444 variants: [],
11445 };}
11446
11447 __init3() {this._plugin = {
11448 static: {},
11449 dynamic: {},
11450 utilities: {},
11451 components: {},
11452 preflights: {},
11453 shortcuts: {},
11454 alias: {},
11455 completions: {},
11456 };}
11457
11458 __init4() {this.pluginUtils = {
11459 addDynamic: (...args) => this.addDynamic(...args),
11460 addUtilities: (...args) => this.addUtilities(...args),
11461 addComponents: (...args) => this.addComponents(...args),
11462 addBase: (...args) => this.addBase(...args),
11463 addVariant: (...args) => this.addVariant(...args),
11464 e: (...args) => this.e(...args),
11465 prefix: (...args) => this.prefix(...args),
11466 config: (...args) => this.config(...args),
11467 theme: (...args) => this.theme(...args),
11468 variants: (...args) => this.variants(...args),
11469 };}
11470
11471 __init5() {this.variantUtils = {
11472 modifySelectors: (modifier) =>
11473 new Style().wrapSelector((selector) =>
11474 modifier({
11475 className: /^[.#]/.test(selector) ? selector.substring(1) : selector,
11476 })),
11477 atRule: (name) => new Style().atRule(name),
11478 pseudoClass: (name) => new Style().pseudoClass(name),
11479 pseudoElement: (name) => new Style().pseudoElement(name),
11480 parent: (name) => new Style().parent(name),
11481 child: (name) => new Style().child(name),
11482 };}
11483
11484 constructor(config) {Processor.prototype.__init.call(this);Processor.prototype.__init2.call(this);Processor.prototype.__init3.call(this);Processor.prototype.__init4.call(this);Processor.prototype.__init5.call(this);
11485 this._config = this.resolveConfig(config, baseConfig);
11486 this._theme = this._config.theme;
11487 this._handler = createHandler(this._config.handlers);
11488 this._config.shortcuts && this.loadShortcuts(this._config.shortcuts);
11489 this._config.alias && this.loadAlias(this._config.alias);
11490 }
11491
11492 _resolveConfig(userConfig, presets = {}) {
11493 if (userConfig.presets) {
11494 const resolved = this._resolvePresets(userConfig.presets);
11495 presets = this._resolveConfig(resolved, presets);
11496 delete userConfig.presets;
11497 }
11498 const userTheme = userConfig.theme;
11499 if (userTheme) delete userConfig.theme;
11500 const extendTheme = userTheme && 'extend' in userTheme ? _nullishCoalesce(userTheme.extend, () => ( {})) : {};
11501 const theme = (presets.theme || {}) ;
11502 if (userTheme) {
11503 if ('extend' in userTheme) delete userTheme.extend;
11504 for (const [key, value] of Object.entries(userTheme)) {
11505 theme[key] = typeof value === 'function' ? value : { ...value };
11506 }
11507 }
11508 if (extendTheme && typeof extendTheme === 'object') this._reduceFunction(theme, extendTheme);
11509 return { ...presets, ...userConfig, theme };
11510 }
11511
11512 _reduceFunction(theme, extendTheme) {
11513 for (const [key, value] of Object.entries(extendTheme)) {
11514 const themeValue = theme[key];
11515 switch (typeof themeValue) {
11516 case 'function':
11517 theme[key] = (theme, { negative, breakpoints }) => combineConfig(
11518 (themeValue )(theme, { negative, breakpoints }),
11519 (typeof value === 'function' ? value(theme, { negative, breakpoints }) : _nullishCoalesce(value, () => ( {}))),
11520 );
11521 break;
11522 case 'object':
11523 theme[key] = (theme, { negative, breakpoints }) => combineConfig(themeValue, (typeof value === 'function' ? value(theme, { negative, breakpoints }) : _nullishCoalesce(value, () => ( {}))), 0 /* prevent fontfamily merge */);
11524 break;
11525 default:
11526 theme[key] = value;
11527 }
11528 }
11529 }
11530
11531 _resolvePresets(presets) {
11532 let config = {};
11533 const extend = {};
11534 presets.forEach(p => {
11535 if (p.theme && 'extend' in p.theme && p.theme.extend) {
11536 this._reduceFunction(extend, p.theme.extend);
11537 delete p.theme.extend;
11538 }
11539 config = this._resolveConfig(p, config);
11540 });
11541 if (config.theme) {
11542 (config.theme ).extend = extend;
11543 } else {
11544 config.theme = { extend };
11545 }
11546 return config;
11547 }
11548
11549 _resolveFunction(config) {
11550 if (!config.theme) return config;
11551 const theme = (path, defaultValue) => this.theme(path, defaultValue);
11552 for (const dict of [config.theme, 'extend' in config.theme ? _nullishCoalesce(config.theme.extend, () => ( {})) : {}]) {
11553 for (const [key, value] of Object.entries(dict)) {
11554 if (typeof value === 'function') {
11555 (dict )[key] = value(theme, {
11556 negative,
11557 breakpoints,
11558 }) ;
11559 }
11560 }
11561 }
11562 return config;
11563 }
11564
11565 _replaceStyleVariants(styles) {
11566 // @screen sm -> @screen (min-width: 640px)
11567 styles.forEach(style => {
11568 style.atRules = _optionalChain([style, 'access', _ => _.atRules, 'optionalAccess', _2 => _2.map, 'call', _3 => _3(i => {
11569 if (i.match(/@screen/)) {
11570 const variant = i.replace(/\s*@screen\s*/, '');
11571 const atRule = _optionalChain([this, 'access', _4 => _4._variants, 'access', _5 => _5[variant], 'call', _6 => _6(), 'access', _7 => _7.atRules, 'optionalAccess', _8 => _8[0]]);
11572 return _nullishCoalesce(atRule, () => ( i));
11573 }
11574 return i;
11575 })]);
11576 });
11577 }
11578
11579 _addPluginProcessorCache(type, key, styles) {
11580 styles = toArray(styles);
11581 this._plugin[type][key] = key in this._plugin[type]
11582 ? [...this._plugin[type][key], ...styles]
11583 : styles;
11584 }
11585
11586 _loadVariables() {
11587 const config = this.theme('vars') ;
11588 if (!config) return;
11589 this.addBase({ ':root': Object.assign({}, ...Object.keys(config).map(i => ({ [`--${i}`]: config[i] }))) });
11590 }
11591
11592 loadConfig(config) {
11593 this._config = this.resolveConfig(config, baseConfig);
11594 this._theme = this._config.theme;
11595 this._handler = createHandler(this._config.handlers);
11596 this._config.shortcuts && this.loadShortcuts(this._config.shortcuts);
11597 this._config.alias && this.loadAlias(this._config.alias);
11598 return this._config;
11599 }
11600
11601 resolveConfig(config, presets) {
11602 this._config = this._resolveConfig({ ...deepCopy(config ? config : {}), exclude: _optionalChain([config, 'optionalAccess', _9 => _9.exclude]) }, deepCopy(presets)); // deep copy
11603 this._theme = this._config.theme; // update theme to make sure theme() function works.
11604 _optionalChain([this, 'access', _10 => _10._config, 'access', _11 => _11.plugins, 'optionalAccess', _12 => _12.map, 'call', _13 => _13(i => typeof i === 'function' ? ('__isOptionsFunction' in i ? this.loadPluginWithOptions(i): this.loadPlugin(createPlugin(i))) : this.loadPlugin(i))]);
11605 this._config = this._resolveFunction(this._config);
11606 this._variants = { ...this._variants, ... this.resolveVariants() };
11607 this._cache.variants = Object.keys(this._variants);
11608 this._loadVariables();
11609 if (this._config.corePlugins) this._plugin.core = Array.isArray(this._config.corePlugins) ? Object.assign({}, ...(this._config.corePlugins ).map(i => ({ [i]: true }))) : { ...Object.assign({}, ...Object.keys(pluginOrder).slice(Object.keys(pluginOrder).length/2).map(i => ({ [i]: true }))), ...this._config.corePlugins };
11610 return this._config;
11611 }
11612
11613 resolveVariants(
11614 type
11615 ) {
11616 const variants = resolveVariants(this._config);
11617 if (type) {
11618 return variants[type];
11619 }
11620 return { ...variants.screen, ...variants.theme, ...variants.state };
11621 }
11622
11623 resolveStaticUtilities(includePlugins = false) {
11624 const staticStyles = {};
11625 for (const key in staticUtilities) {
11626 const style = generateStaticStyle(this, key, true);
11627 if (style) staticStyles[key] = [ style ];
11628 }
11629 if (!includePlugins) return staticStyles;
11630 return { ...staticStyles, ...this._plugin.utilities, ...this._plugin.components };
11631 }
11632
11633 resolveDynamicUtilities(includePlugins = false) {
11634 if (!includePlugins) return dynamicUtilities;
11635 return { ...dynamicUtilities, ...this._plugin.dynamic };
11636 }
11637
11638 get allConfig() {
11639 return this._config ;
11640 }
11641
11642 get allTheme() {
11643 return (_nullishCoalesce(this._theme, () => ( {}))) ;
11644 }
11645
11646 get allVariant() {
11647 return this._cache.variants;
11648 }
11649
11650 wrapWithVariants(variants, styles) {
11651 // apply variant to style
11652 if (!Array.isArray(styles)) styles = [styles];
11653 if (variants.length === 0) return styles;
11654
11655 return styles.map(style => {
11656 if (style instanceof Keyframes) return style;
11657 const atrules = [];
11658 let wrapped = variants
11659 .filter(i => _optionalChain([this, 'access', _14 => _14._variants, 'optionalAccess', _15 => _15[i]]))
11660 .map(i => this._variants[i]())
11661 .reduce((previousValue, currentValue) => {
11662 const output = previousValue.extend(currentValue);
11663 if (previousValue.isAtrule) atrules.push((previousValue.atRules )[0]);
11664 return output;
11665 }, new Style())
11666 .extend(style);
11667 if (style instanceof Container) wrapped = new Container().extend(wrapped);
11668 if (atrules.length > 0) wrapped.meta.variants = atrules;
11669 return wrapped;
11670 });
11671 }
11672
11673 removePrefix(className) {
11674 const prefix = this.config('prefix') ;
11675 return prefix ? className.replace(new RegExp(`^${prefix}`), '') : className;
11676 }
11677
11678 markAsImportant(style, force = false) {
11679 const _important = force ? force : this.config('important', false);
11680 const important = typeof _important === 'string' ? (_important ) : (_important );
11681 if (important) {
11682 if (typeof important === 'string') {
11683 style.parent(important);
11684 } else {
11685 style.important = true;
11686 style.property.forEach(i => i.important = true);
11687 }
11688 }
11689 return style;
11690 }
11691
11692 extract(className, addComment = false, prefix) {
11693 return extract(this, className, addComment, prefix);
11694 }
11695
11696 test(className, prefix) {
11697 return test(this, className, prefix);
11698 }
11699
11700 preflight(
11701 html,
11702 includeBase = true,
11703 includeGlobal = true,
11704 includePlugins = true,
11705 ignoreProcessed = false
11706 ) {
11707 let id;
11708 if (html) {
11709 id = hash(html);
11710 if (ignoreProcessed && this._cache.html.includes(id)) return new StyleSheet();
11711 }
11712 id && ignoreProcessed && this._cache.html.push(id);
11713 return preflight(this, html, includeBase, includeGlobal, includePlugins);
11714 }
11715
11716 interpret(
11717 classNames,
11718 ignoreProcessed = false,
11719 handleIgnored
11720 ) {
11721 const ast = new ClassParser(classNames, this.config('separator', ':') , this._cache.variants).parse();
11722 const success = [];
11723 const ignored = [];
11724 const styleSheet = new StyleSheet();
11725
11726 const _hIgnored = (className) => {
11727 if (handleIgnored) {
11728 const style = handleIgnored(className);
11729 if (style) {
11730 styleSheet.add(style);
11731 success.push(className);
11732 } else {
11733 ignored.push(className);
11734 }
11735 }
11736 ignored.push(className);
11737 };
11738
11739 const _gStyle = (
11740 baseClass,
11741 variants,
11742 selector,
11743 important = false,
11744 prefix,
11745 ) => {
11746 if (this._config.exclude && testRegexr(selector, this._config.exclude)) {
11747 // filter exclude className
11748 ignored.push(selector);
11749 return;
11750 }
11751 if (variants[0] && selector in { ...this._plugin.utilities, ...this._plugin.components }) {
11752 // handle special selector that conflict with class parser, such as 'hover:abc'
11753 success.push(selector);
11754 styleSheet.add(deepCopy(this._plugin.utilities[selector]));
11755 return;
11756 }
11757 let result = this.extract(baseClass, false, prefix);
11758 if (result) {
11759 const escapedSelector = '.' + cssEscape(selector);
11760 if (result instanceof Style) {
11761 if(!result.meta.respectSelector) result.selector = escapedSelector;
11762 this.markAsImportant(result, important);
11763 } else if (Array.isArray(result)) {
11764 result = result.map(i => {
11765 if (i instanceof Keyframes) return i;
11766 if(!i.meta.respectSelector) i.selector = escapedSelector;
11767 this.markAsImportant(i, important);
11768 return i;
11769 });
11770 }
11771 const wrapped = this.wrapWithVariants(variants, result);
11772 if (wrapped) {
11773 success.push(selector);
11774 styleSheet.add(wrapped);
11775 } else {
11776 _hIgnored(selector);
11777 }
11778 } else {
11779 _hIgnored(selector);
11780 }
11781 };
11782
11783 const _hGroup = (obj, parentVariants = []) => {
11784 const _eval = (u) => {
11785 if (u.type === 'group') {
11786 _hGroup(u, obj.variants);
11787 } else if (u.type === 'alias' && (u.content ) in this._plugin.alias) {
11788 this._plugin.alias[u.content ].forEach(i => _eval(i));
11789 } else {
11790 // utility
11791 const variants = [
11792 ...parentVariants,
11793 ...obj.variants,
11794 ...u.variants,
11795 ];
11796 const important = obj.important || u.important;
11797 const selector = (important ? '!' : '') + [...variants, u.content].join(':');
11798 typeof u.content === 'string' &&
11799 _gStyle(u.content, variants, selector, important, this.config('prefix') );
11800 }
11801 };
11802 Array.isArray(obj.content) && obj.content.forEach(u => _eval(u));
11803 };
11804
11805 const _gAst = (ast) => {
11806 ast.forEach(obj => {
11807 if (!(ignoreProcessed && this._cache.utilities.includes(obj.raw))) {
11808 if (ignoreProcessed) this._cache.utilities.push(obj.raw);
11809 if (obj.type === 'utility') {
11810 if (Array.isArray(obj.content)) ; else if (obj.content) {
11811 _gStyle(obj.content, obj.variants, obj.raw, obj.important, this.config('prefix') );
11812 }
11813 } else if (obj.type === 'group') {
11814 _hGroup(obj);
11815 } else if (obj.type === 'alias' && (obj.content ) in this._plugin.alias) {
11816 _gAst(this._plugin.alias[obj.content ]);
11817 } else {
11818 _hIgnored(obj.raw);
11819 }
11820 }
11821 });
11822 };
11823
11824 _gAst(ast);
11825
11826 if (!this.config('prefixer')) styleSheet.prefixer = false;
11827
11828 return {
11829 success,
11830 ignored,
11831 styleSheet: styleSheet.sort(),
11832 };
11833 }
11834
11835 validate(classNames) {
11836 const ast = new ClassParser(classNames, this.config('separator', ':') , this._cache.variants).parse();
11837 const success = [];
11838 const ignored = [];
11839
11840 const _hSuccess = (className, self, parent) => {
11841 success.push({
11842 className,
11843 ...self,
11844 parent,
11845 });
11846 };
11847
11848 const _hIgnored = (className, self, parent) => {
11849 ignored.push({
11850 className,
11851 ...self,
11852 parent,
11853 });
11854 };
11855
11856 const _gStyle = (
11857 baseClass,
11858 variants,
11859 selector,
11860 self,
11861 parent,
11862 prefix,
11863 ) => {
11864 if (this._config.exclude && testRegexr(selector, this._config.exclude)) {
11865 // filter exclude className
11866 _hIgnored(selector, self, parent);
11867 return;
11868 }
11869 if (variants[0] && selector in { ...this._plugin.utilities, ...this._plugin.components }) {
11870 // handle special selector that conflict with class parser, such as 'hover:abc'
11871 _hSuccess(selector, self, parent);
11872 return;
11873 }
11874 if (this.test(baseClass, prefix) && variants.filter(i => !(i in this._variants)).length === 0) {
11875 _hSuccess(selector, self, parent);
11876 } else {
11877 _hIgnored(selector, self, parent);
11878 }
11879 };
11880
11881 const _hGroup = (obj, parentVariants = []) => {
11882 const _eval = (u, parent) => {
11883 if (u.type === 'group') {
11884 _hGroup(u, obj.variants);
11885 } else if (u.type === 'alias' && (u.content ) in this._plugin.alias) {
11886 this._plugin.alias[u.content ].forEach(i => _eval(i, u));
11887 } else {
11888 // utility
11889 const variants = [
11890 ...parentVariants,
11891 ...obj.variants,
11892 ...u.variants,
11893 ];
11894 const important = obj.important || u.important;
11895 const selector = (important ? '!' : '') + [...variants, u.content].join(':');
11896 typeof u.content === 'string' &&
11897 _gStyle(u.content, variants, selector, u, parent, this.config('prefix') );
11898 }
11899 };
11900 Array.isArray(obj.content) && obj.content.forEach(u => _eval(u, obj));
11901 };
11902
11903 const _gAst = (ast) => {
11904 ast.forEach(obj => {
11905 if (obj.type === 'utility') {
11906 if (Array.isArray(obj.content)) ; else if (obj.content) {
11907 _gStyle(obj.content, obj.variants, obj.raw, obj, undefined, this.config('prefix') );
11908 }
11909 } else if (obj.type === 'group') {
11910 _hGroup(obj);
11911 } else if (obj.type === 'alias' && (obj.content ) in this._plugin.alias) {
11912 _gAst(this._plugin.alias[obj.content ]);
11913 } else {
11914 _hIgnored(obj.raw, obj);
11915 }
11916 });
11917 };
11918
11919 _gAst(ast);
11920
11921 return {
11922 success,
11923 ignored,
11924 };
11925 }
11926
11927 compile(
11928 classNames,
11929 prefix = 'windi-',
11930 showComment = false,
11931 ignoreGenerated = false,
11932 handleIgnored,
11933 outputClassName
11934 )
11935
11936
11937
11938
11939 {
11940 const ast = new ClassParser(classNames, this.config('separator', ':') , this._cache.variants).parse();
11941 const success = [];
11942 const ignored = [];
11943 const styleSheet = new StyleSheet();
11944 let className = _nullishCoalesce(outputClassName, () => ( prefix + hash(classNames.trim().split(/\s+/g).join(' '))));
11945 if (ignoreGenerated && this._cache.classes.includes(className)) return { success, ignored, styleSheet, className };
11946 const buildSelector = '.' + className;
11947
11948 const _hIgnored = (className) => {
11949 if (handleIgnored) {
11950 const style = handleIgnored(className);
11951 if (style) {
11952 styleSheet.add(style);
11953 success.push(className);
11954 } else {
11955 ignored.push(className);
11956 }
11957 }
11958 ignored.push(className);
11959 };
11960
11961 const _gStyle = (
11962 baseClass,
11963 variants,
11964 selector,
11965 important = false
11966 ) => {
11967 if (this._config.exclude && testRegexr(selector, this._config.exclude)) {
11968 // filter exclude className
11969 ignored.push(selector);
11970 return;
11971 }
11972 if (variants[0] && selector in { ...this._plugin.utilities, ...this._plugin.components }) {
11973 // handle special selector that conflict with class parser, such as 'hover:abc'
11974 success.push(selector);
11975 styleSheet.add(deepCopy(this._plugin.utilities[selector]));
11976 return;
11977 }
11978 const result = this.extract(baseClass, showComment);
11979 if (result) {
11980 if (Array.isArray(result)) {
11981 result.forEach(i => {
11982 if (i instanceof Keyframes) {
11983 i.meta.order = 20;
11984 return i;
11985 }
11986 i.selector = buildSelector;
11987 this.markAsImportant(i, important);
11988 });
11989 } else {
11990 result.selector = buildSelector;
11991 this.markAsImportant(result, important);
11992 }
11993 const wrapped = this.wrapWithVariants(variants, result);
11994 if (wrapped) {
11995 success.push(selector);
11996 styleSheet.add(wrapped);
11997 } else {
11998 _hIgnored(selector);
11999 }
12000 } else {
12001 _hIgnored(selector);
12002 }
12003 };
12004
12005 const _hGroup = (obj, parentVariants = []) => {
12006 Array.isArray(obj.content) &&
12007 obj.content.forEach((u) => {
12008 if (u.type === 'group') {
12009 _hGroup(u, obj.variants);
12010 } else {
12011 // utility
12012 const variants = [
12013 ...parentVariants,
12014 ...obj.variants,
12015 ...u.variants,
12016 ];
12017 const selector = [...variants, u.content].join(':');
12018 typeof u.content === 'string' &&
12019 _gStyle(this.removePrefix(u.content), variants, selector, obj.important || u.important);
12020 }
12021 });
12022 };
12023
12024 ast.forEach((obj) => {
12025 if (obj.type === 'utility') {
12026 if (Array.isArray(obj.content)) ; else if (obj.content) {
12027 _gStyle(this.removePrefix(obj.content), obj.variants, obj.raw, obj.important);
12028 }
12029 } else if (obj.type === 'group') {
12030 _hGroup(obj);
12031 } else {
12032 _hIgnored(obj.raw);
12033 }
12034 });
12035
12036 className = success.length > 0 ? className : undefined;
12037 if (ignoreGenerated && className) this._cache.classes.push(className);
12038 if (!this.config('prefixer')) styleSheet.prefixer = false;
12039 return {
12040 success,
12041 ignored,
12042 className,
12043 styleSheet: styleSheet.sortby(sortGroup).combine(),
12044 };
12045 }
12046
12047 attributify(attrs, ignoreProcessed = false) {
12048 const success = [];
12049 const ignored = [];
12050 const styleSheet = new StyleSheet();
12051 const { prefix, separator, disable } = (this._config.attributify && typeof this._config.attributify === 'boolean') ? {} : this._config.attributify || {};
12052
12053 const _gStyle = (
12054 key,
12055 value,
12056 equal = false,
12057 notAllow = false,
12058 ignoreProcessed = false,
12059 ) => {
12060 const buildSelector = `[${this.e((prefix || '') + key)}${equal?'=':'~='}"${value}"]`;
12061 if (notAllow || (ignoreProcessed && this._cache.attrs.includes(buildSelector))) {
12062 ignored.push(buildSelector);
12063 return;
12064 }
12065 const importantValue = value.startsWith('!');
12066 if (importantValue) value = value.slice(1);
12067 const importantKey = key.startsWith('!');
12068 if (importantKey) key = key.slice(1);
12069 const id = _nullishCoalesce(_optionalChain([key, 'access', _16 => _16.match, 'call', _17 => _17(/\w+$/), 'optionalAccess', _18 => _18[0]]), () => ( ''));
12070 const splits = value.split(separator || ':');
12071 let variants = splits.slice(0, -1);
12072 let utility = splits.slice(-1)[0];
12073 let keys = key.split(separator || ':');
12074 const lastKey = keys.slice(-1)[0];
12075
12076 if (lastKey in this._variants && lastKey !== 'svg') {
12077 variants = [...keys, ...variants];
12078 } else if (id in this._variants && id !== 'svg') {
12079 // sm = ... || sm:hover = ... || sm-hover = ...
12080 const matches = key.match(/[@<\w]+/g);
12081 if (!matches) {
12082 ignored.push(buildSelector);
12083 return;
12084 }
12085 variants = [...matches, ...variants];
12086 } else {
12087 // text = ... || sm:text = ... || sm-text = ... || sm-hover-text = ...
12088 if (!keys) {
12089 ignored.push(buildSelector);
12090 return;
12091 }
12092 if (keys.length === 1) keys = key.split('-');
12093 let last;
12094 // handle min-h || max-w ...
12095 if (['min', 'max'].includes(keys.slice(-2, -1)[0])) {
12096 variants = [...keys.slice(0, -2), ...variants];
12097 last = keys.slice(-2,).join('-');
12098 } else {
12099 variants = [...keys.slice(0, -1), ...variants];
12100 last = keys[keys.length - 1];
12101 }
12102 // handle negative, such as m = -x-2
12103 const negative = utility.charAt(0) === '-';
12104 if (negative) utility = utility.slice(1,);
12105 utility = ['m', 'p'].includes(last) && ['t', 'l', 'b', 'r', 'x', 'y'].includes(utility.charAt(0)) ? last + utility : last + '-' + utility;
12106 if (negative) utility = '-' + utility;
12107 utility !== 'cursor-default' && (utility = utility.replace(/-(~|default)$/, ''));
12108 // handle special cases
12109 switch(last) {
12110 case 'w':
12111 if (['w-min', 'w-max', 'w-min-content', 'w-max-content'].includes(utility)) {
12112 utility = utility.slice(0, 5);
12113 } else if (utility.startsWith('w-min')) {
12114 utility = 'min-w' + utility.slice(5);
12115 } else if (utility.startsWith('w-max')) {
12116 utility = 'max-w' + utility.slice(5);
12117 }
12118 break;
12119 case 'h':
12120 if (['h-min', 'h-max', 'h-min-content', 'h-max-content'].includes(utility)) {
12121 utility = utility.slice(0, 5);
12122 } else if (utility.startsWith('h-min')) {
12123 utility = 'min-h' + utility.slice(5);
12124 } else if (utility.startsWith('h-max')) {
12125 utility = 'max-h' + utility.slice(5);
12126 }
12127 break;
12128 case 'flex':
12129 switch (utility) {
12130 case 'flex-default':
12131 utility = 'flex';
12132 break;
12133 case 'flex-inline':
12134 utility = 'inline-flex';
12135 break;
12136 }
12137 break;
12138 case 'grid':
12139 switch(utility) {
12140 case 'grid-default':
12141 utility = 'grid';
12142 break;
12143 case 'grid-inline':
12144 utility = 'inline-grid';
12145 break;
12146 default:
12147 if (/^grid-(auto|gap|col|row)-/.test(utility)) utility = utility.slice(5);
12148 }
12149 break;
12150 case 'justify':
12151 if (utility.startsWith('justify-content-')) {
12152 utility = 'justify-' + utility.slice(16);
12153 }
12154 break;
12155 case 'align':
12156 if (/^align-(items|self|content)-/.test(utility)) {
12157 utility = utility.slice(6);
12158 } else {
12159 utility = 'content-' + utility.slice(6);
12160 }
12161 break;
12162 case 'place':
12163 if (!/^place-(items|self|content)-/.test(utility)) {
12164 utility = 'place-content-' + utility.slice(6);
12165 }
12166 break;
12167 case 'font':
12168 if (/^font-(tracking|leading)-/.test(utility) || ['font-italic', 'font-not-italic', 'font-antialiased', 'font-subpixel-antialiased', 'font-normal-nums', 'font-ordinal', 'font-slashed-zero', 'font-lining-nums', 'font-oldstyle-nums', 'font-proportional-nums', 'font-tabular-nums', 'font-diagonal-fractions', 'font-stacked-fractions'].includes(utility))
12169 utility = utility.slice(5);
12170 break;
12171 case 'text':
12172 if (['text-baseline', 'text-top', 'text-middle', 'text-bottom', 'text-text-top', 'text-text-bottom'].includes(utility)) {
12173 utility = 'align-' + utility.slice(5);
12174 } else if (utility.startsWith('text-placeholder') || utility.startsWith('text-underline') || utility.startsWith('text-tab') || utility.startsWith('text-indent') || utility.startsWith('text-hyphens') || utility.startsWith('text-write')) {
12175 utility = utility.slice(5);
12176 } else if (['text-underline', 'text-line-through', 'text-no-underline', 'text-uppercase', 'text-lowercase', 'text-capitalize', 'text-normal-case', 'text-truncate', 'text-overflow-ellipsis', 'text-overflow-clip', 'text-break-normal', 'text-break-words', 'text-break-all'].includes(utility)) {
12177 utility = utility.slice(5);
12178 } else if (utility.startsWith('text-space')) {
12179 utility = 'white' + utility.slice(5);
12180 }
12181 break;
12182 case 'underline':
12183 if (utility === 'underline-none') {
12184 utility = 'no-underline';
12185 } else if (utility === 'underline-line-through') {
12186 utility = 'line-through';
12187 }
12188 break;
12189 case 'svg':
12190 if (utility.startsWith('svg-fill') || utility.startsWith('svg-stroke')) utility = utility.slice(4);
12191 break;
12192 case 'border':
12193 if (utility.startsWith('border-rounded')) {
12194 utility = utility.slice(7);
12195 }
12196 break;
12197 case 'gradient':
12198 if (utility === 'gradient-none') {
12199 utility = 'bg-none';
12200 } else if (/^gradient-to-[trbl]{1,2}$/.test(utility)) {
12201 utility = 'bg-' + utility;
12202 } else if (/^gradient-(from|via|to)-/.test(utility)) {
12203 utility = utility.slice(9);
12204 }
12205 break;
12206 case 'display':
12207 utility = utility.slice(8);
12208 break;
12209 case 'pos':
12210 utility = utility.slice(4);
12211 break;
12212 case 'position':
12213 utility = utility.slice(9);
12214 break;
12215 case 'box':
12216 if (/^box-(decoration|shadow)/.test(utility)) {
12217 utility = utility.slice(4,);
12218 }
12219 break;
12220 case 'filter':
12221 if (utility !== 'filter-none' && utility !== 'filter') {
12222 utility = utility.slice(7);
12223 }
12224 break;
12225 case 'backdrop':
12226 if (utility === 'backdrop') {
12227 utility = 'backdrop-filter';
12228 } else if (utility === 'backdrop-none') {
12229 utility = 'backdrop-filter-none';
12230 }
12231 break;
12232 case 'transition':
12233 if (/transition-(duration|ease|delay)-/.test(utility)) {
12234 utility = utility.slice(11);
12235 }
12236 break;
12237 case 'transform':
12238 if (!['transform-gpu', 'transform-none', 'transform'].includes(utility)) {
12239 utility = utility.slice(10);
12240 }
12241 break;
12242 case 'isolation':
12243 if (utility === 'isolation-isolate') utility = 'isolate';
12244 break;
12245 case 'table':
12246 if (utility === 'table-inline') {
12247 utility = 'inline-table';
12248 } else if (utility.startsWith('table-caption-') || utility.startsWith('table-empty-cells')) {
12249 utility = utility.slice(6);
12250 }
12251 break;
12252 case 'pointer':
12253 utility = 'pointer-events' + utility.slice(7);
12254 break;
12255 case 'resize':
12256 if (utility === 'resize-both') utility = 'resize';
12257 break;
12258 case 'ring':
12259 break;
12260 case 'blend':
12261 utility = 'mix-' + utility;
12262 break;
12263 case 'sr':
12264 if (utility === 'sr-not-only') utility = 'not-sr-only';
12265 break;
12266 }
12267 }
12268 const style = this.extract(utility, false);
12269 if (style) {
12270 const important = importantKey || importantValue;
12271 if (Array.isArray(style)) {
12272 style.forEach(i => {
12273 if (i instanceof Keyframes) return i;
12274 i.selector = buildSelector;
12275 this.markAsImportant(i, important);
12276 });
12277 } else {
12278 style.selector = buildSelector;
12279 this.markAsImportant(style, important);
12280 }
12281 if (variants.find(i => !(i in this._variants))) {
12282 ignored.push(buildSelector);
12283 } else {
12284 const wrapped = this.wrapWithVariants(variants, style);
12285 if (wrapped) {
12286 ignoreProcessed && this._cache.attrs.push(buildSelector);
12287 success.push(buildSelector);
12288 styleSheet.add(wrapped);
12289 } else {
12290 ignored.push(buildSelector);
12291 }
12292 }
12293 } else {
12294 ignored.push(buildSelector);
12295 }
12296 };
12297
12298 // eslint-disable-next-line prefer-const
12299 for (let [key, value] of Object.entries(attrs)) {
12300 let notAllow = false;
12301 if (prefix) {
12302 if (key.startsWith(prefix)) {
12303 key = key.slice(prefix.length);
12304 } else {
12305 notAllow = true;
12306 }
12307 }
12308 if (_optionalChain([disable, 'optionalAccess', _19 => _19.includes, 'call', _20 => _20(key)])) notAllow = true;
12309 if (Array.isArray(value)) {
12310 value.forEach(i => _gStyle(key, i, false, notAllow, ignoreProcessed));
12311 } else {
12312 _gStyle(key, value, true, notAllow, ignoreProcessed);
12313 }
12314 }
12315
12316 return {
12317 success,
12318 ignored,
12319 styleSheet: styleSheet.sort().combine(),
12320 };
12321 }
12322
12323 loadPlugin({
12324 handler,
12325 config,
12326 }) {
12327 if (config) {
12328 config = this._resolveFunction(config);
12329 config = combineConfig(
12330 config ,
12331 this._config
12332 );
12333 const pluginTheme = config.theme ;
12334 const extendTheme = _optionalChain([pluginTheme, 'optionalAccess', _21 => _21.extend]) ;
12335 if (pluginTheme && extendTheme && typeof extendTheme === 'object') {
12336 for (const [key, value] of Object.entries(extendTheme)) {
12337 const themeValue = pluginTheme[key];
12338 if (themeValue && typeof themeValue === 'object') {
12339 pluginTheme[key] = { ...(_nullishCoalesce(themeValue, () => ( {}))), ...value };
12340 } else if (value && typeof value === 'object' ){
12341 pluginTheme[key] = value ;
12342 }
12343 }
12344 }
12345 this._config = { ...config, theme: pluginTheme };
12346 this._theme = pluginTheme;
12347 }
12348 this._config = this._resolveFunction(this._config);
12349 this._theme = this._config.theme;
12350 this._variants = { ...this._variants, ...this.resolveVariants() };
12351 handler(this.pluginUtils);
12352 }
12353
12354 loadPluginWithOptions(optionsFunction, userOptions) {
12355 const plugin = optionsFunction(_nullishCoalesce(userOptions, () => ( {})));
12356 this.loadPlugin(plugin);
12357 }
12358
12359 loadShortcuts(shortcuts) {
12360 for (const [key, value] of Object.entries(shortcuts)) {
12361 const prefix = this.config('prefix', '');
12362 if (typeof value === 'string') {
12363 this._plugin.shortcuts[key] = this.compile(value, undefined, undefined, false, undefined, cssEscape(prefix + key)).styleSheet.children.map(i => i.updateMeta('components', 'shortcuts', layerOrder['shortcuts'], ++this._cache.count));
12364 } else {
12365 let styles = [];
12366 Style.generate('.' + cssEscape(key), value).forEach(style => {
12367 for (const prop of style.property) {
12368 if (!prop.value) continue;
12369 if (prop.name === '@apply') {
12370 styles = styles.concat(this.compile(Array.isArray(prop.value)? prop.value.join(' ') : prop.value).styleSheet.children.map(i => {
12371 const newStyle = deepCopy(style);
12372 newStyle.property = [];
12373 return newStyle.extend(i);
12374 }));
12375 } else {
12376 const newStyle = deepCopy(style);
12377 newStyle.property = [ prop ];
12378 styles.push(newStyle);
12379 }
12380 }
12381 });
12382 this._plugin.shortcuts[key] = styles.map(i => i.updateMeta('components', 'shortcuts', layerOrder['shortcuts'], ++this._cache.count));
12383 }
12384 }
12385 }
12386
12387 loadAlias(alias) {
12388 for (const [key, value] of Object.entries(alias)) {
12389 this._plugin.alias[key] = new ClassParser(value, undefined, this._cache.variants).parse();
12390 }
12391 }
12392
12393 config(path, defaultValue) {
12394 if (path === 'corePlugins') return this._plugin.core ? Object.keys(this._plugin.core).filter(i => _optionalChain([this, 'access', _22 => _22._plugin, 'access', _23 => _23.core, 'optionalAccess', _24 => _24[i]])) : Object.keys(pluginOrder).slice(Object.keys(pluginOrder).length/2);
12395 return _nullishCoalesce(getNestedValue(this._config, path), () => ( defaultValue));
12396 }
12397
12398 theme(path, defaultValue) {
12399 return this._theme ? _nullishCoalesce(getNestedValue(this._theme, path), () => ( defaultValue)) : undefined;
12400 }
12401
12402 corePlugins(path) {
12403 if (Array.isArray(this._config.corePlugins)) {
12404 return (this._config.corePlugins ).includes(path);
12405 }
12406 return _nullishCoalesce((this.config(`corePlugins.${path}`, true) ), () => ( false));
12407 }
12408
12409 variants(path, defaultValue = []) {
12410 if (Array.isArray(this._config.variants)) {
12411 return this._config.variants;
12412 }
12413 return this.config(`variants.${path}`, defaultValue) ;
12414 }
12415
12416 e(selector) {
12417 return cssEscape(selector);
12418 }
12419
12420 prefix(selector) {
12421 return selector.replace(/(?=[\w])/, _nullishCoalesce(this._config.prefix, () => ( '')));
12422 }
12423
12424 addUtilities(
12425 utilities,
12426 options = {
12427 layer: 'utilities',
12428 variants: [],
12429 respectPrefix: true,
12430 respectImportant: true,
12431 }
12432 ) {
12433 if (Array.isArray(options)) options = { variants: options };
12434 if (Array.isArray(utilities)) utilities = utilities.reduce((previous, current) => combineConfig(previous, current), {}) ;
12435 let output = [];
12436 const layer = _nullishCoalesce(options.layer, () => ( 'utilities'));
12437 const order = layerOrder[layer] + 1;
12438 for (const [key, value] of Object.entries(utilities)) {
12439 const styles = Style.generate(key.startsWith('.') && options.respectPrefix ? this.prefix(key) : key, value);
12440 if (options.layer) styles.forEach(style => style.updateMeta(layer, 'plugin', order, ++this._cache.count));
12441 if (options.respectImportant && this._config.important) styles.forEach(style => style.important = true);
12442 let className = guessClassName(key);
12443 if (key.charAt(0) === '@') {
12444 styles.forEach(style => {
12445 if (style.selector) className = guessClassName(style.selector);
12446 if (Array.isArray(className)) {
12447 className.filter(i => i.isClass).forEach(({ selector, pseudo }) => this._addPluginProcessorCache('utilities', selector, pseudo? style.clone('.' + cssEscape(selector)).wrapSelector(selector => selector + pseudo) : style.clone()));
12448 const base = className.filter(i => !i.isClass).map(i => i.selector).join(', ');
12449 if (base) this._addPluginProcessorCache('static', base, style.clone(base));
12450 } else {
12451 this._addPluginProcessorCache(className.isClass? 'utilities' : 'static', className.selector, className.pseudo? style.clone('.' + cssEscape(className.selector)).wrapSelector(selector => selector + (className ).pseudo) : style.clone());
12452 }
12453 });
12454 } else if (Array.isArray(className)) {
12455 className.filter(i => i.isClass).forEach(({ selector, pseudo }) => this._addPluginProcessorCache('utilities', selector, pseudo ? styles.map(i => i.clone('.' + cssEscape(selector)).wrapSelector(selector => selector + pseudo)): deepCopy(styles)));
12456 const base = className.filter(i => !i.isClass).map(i => i.selector).join(', ');
12457 if (base) this._addPluginProcessorCache('static', base, styles.map(i => i.clone(base)));
12458 } else {
12459 this._addPluginProcessorCache(className.isClass? 'utilities': 'static', className.selector, className.pseudo ? styles.map(style => style.clone('.' + cssEscape((className ).selector)).wrapSelector(selector => selector + (className ).pseudo)) : styles);
12460 }
12461 output = [...output, ...styles];
12462 }
12463 return output;
12464 }
12465
12466 addDynamic(
12467 key,
12468 generator,
12469 options = {
12470 layer: 'utilities',
12471 group: 'plugin',
12472 variants: [],
12473 completions: [],
12474 respectPrefix: true,
12475 respectImportant: true,
12476 respectSelector: false,
12477 }
12478 ) {
12479 const uOptions = Array.isArray(options)? { variants:options } : options;
12480 const layer = uOptions.layer || 'utilities';
12481 const group = uOptions.group || 'plugin';
12482 const order = uOptions.order || layerOrder[layer] + 1;
12483 if (uOptions.completions) this._plugin.completions[group] = group in this._plugin.completions ? [...this._plugin.completions[group], ...uOptions.completions] : uOptions.completions;
12484 const style = (selector, property, important = uOptions.respectImportant && this._config.important ? true : false) => new Style(selector, property, important);
12485 const prop = (name, value, comment, important = uOptions.respectImportant && this._config.important ? true : false) => new Property(name, value, comment, important);
12486 const keyframes = (selector, property, important = uOptions.respectImportant && this._config.important ? true : false) => new Keyframes(selector, property, important);
12487 keyframes.generate = Keyframes.generate;
12488 style.generate = Style.generate;
12489 prop.parse = Property.parse;
12490 this._plugin.dynamic[key] = (key in this._plugin.dynamic)
12491 ? (Utility) => deepCopy(this._plugin.dynamic[key])(Utility) || generator({ Utility, Style: style, Property: prop, Keyframes: keyframes })
12492 : (Utility) => {
12493 const output = generator({ Utility, Style: style, Property: prop, Keyframes: keyframes });
12494 if (!output) return;
12495 if (Array.isArray(output)) return output.map(i => i.updateMeta(layer, group, order, ++this._cache.count, false, i.meta.respectSelector || uOptions.respectSelector));
12496 return output.updateMeta(layer, group, order, ++this._cache.count, false, output.meta.respectSelector || uOptions.respectSelector);
12497 };
12498 return generator;
12499 }
12500
12501 addComponents(
12502 components,
12503 options = { layer: 'components', variants: [], respectPrefix: false }
12504 ) {
12505 if (Array.isArray(options)) options = { variants: options };
12506 if (Array.isArray(components)) components = components.reduce((previous, current) => combineConfig(previous, current), {}) ;
12507 let output = [];
12508 const layer = _nullishCoalesce(options.layer, () => ( 'components'));
12509 const order = layerOrder[layer] + 1;
12510 for (const [key, value] of Object.entries(components)) {
12511 const styles = Style.generate(key.startsWith('.') && options.respectPrefix ? this.prefix(key): key, value);
12512 styles.forEach(style => style.updateMeta(layer, 'plugin', order, ++this._cache.count));
12513 if (options.respectImportant && this._config.important) styles.forEach(style => style.important = true);
12514 let className = guessClassName(key);
12515 if (key.charAt(0) === '@') {
12516 styles.forEach(style => {
12517 if (style.selector) className = guessClassName(style.selector);
12518 if (Array.isArray(className)) {
12519 className.filter(i => i.isClass).forEach(({ selector, pseudo }) => this._addPluginProcessorCache('components', selector, pseudo? style.clone('.' + cssEscape(selector)).wrapSelector(selector => selector + pseudo) : style.clone()));
12520 const base = className.filter(i => !i.isClass).map(i => i.selector).join(', ');
12521 if (base) this._addPluginProcessorCache('static', base, style.clone(base));
12522 } else {
12523 this._addPluginProcessorCache(className.isClass? 'components' : 'static', className.selector, className.pseudo? style.clone('.' + cssEscape(className.selector)).wrapSelector(selector => selector + (className ).pseudo) : style.clone());
12524 }
12525 });
12526 } else if (Array.isArray(className)) {
12527 // one of the selector are not class, treat the entire as static to avoid duplication
12528 if (className.some(i => !i.isClass)) {
12529 const base = className.map(i => i.selector).join(', ');
12530 if (base) this._addPluginProcessorCache('static', base, styles.map(i => i.clone(base)));
12531 }
12532 // class
12533 else {
12534 className.forEach(({ selector, pseudo }) => this._addPluginProcessorCache('components', selector, pseudo ? styles.map(i => i.clone('.' + cssEscape(selector)).wrapSelector(selector => selector + pseudo)): deepCopy(styles)));
12535 }
12536 } else {
12537 this._addPluginProcessorCache(className.isClass? 'components': 'static', className.selector, className.pseudo ? styles.map(style => style.clone('.' + cssEscape((className ).selector)).wrapSelector(selector => selector + (className ).pseudo)) : styles);
12538 }
12539 output = [...output, ...styles];
12540 }
12541 return output;
12542 }
12543
12544 addBase(baseStyles) {
12545 let output = [];
12546 for (const [key, value] of Object.entries(baseStyles)) {
12547 const styles = Style.generate(key, value).map(i => i.updateMeta('base', 'plugin', 10, ++this._cache.count));
12548 this._replaceStyleVariants(styles);
12549 this._addPluginProcessorCache('preflights', key, styles);
12550 output = [...output, ...styles];
12551 }
12552 return output;
12553 }
12554
12555 addVariant(
12556 name,
12557 generator,
12558 ) {
12559 // name && generator && options;
12560 const style = generator({
12561 ...this.variantUtils,
12562 separator: this.config('separator', ':') ,
12563 style: new Style(),
12564 });
12565 this._variants[name] = () => style;
12566 this._cache.variants.push(name);
12567 return style;
12568 }
12569
12570 dumpConfig() {
12571 const processor = new Processor();
12572 const diff = diffConfig(processor._config, this._config) ;
12573 let output = { theme: { extend: {} }, plugins: [] } ;
12574 if (diff.theme) {
12575 for (const [key, value] of Object.entries(diff.theme)) {
12576 if (key !== 'extend') {
12577 (output.theme.extend )[key] = value;
12578 }
12579 }
12580 delete diff.theme;
12581 }
12582 if (diff.plugins) {
12583 for (const plugin of diff.plugins) {
12584 if ('config' in plugin) {
12585 delete plugin.config;
12586 }
12587 output.plugins.push(plugin);
12588 }
12589 delete diff.plugins;
12590 }
12591 output = { ...diff, ...output };
12592
12593 return `module.exports = ${toSource(output)}`;
12594 }
12595}
12596
12597exports.Processor = Processor;