@unocss/preset-wind 0.64.1 → 0.65.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,12 +1,17 @@
1
- import { toArray, isString, definePreset } from '@unocss/core';
1
+ import { toArray, definePreset } from '@unocss/core';
2
2
  import presetMini, { presetMini as presetMini$1 } from '@unocss/preset-mini';
3
3
  export { colors, preflights } from '@unocss/preset-mini';
4
- import { h, globalKeywords, makeGlobalStaticRules, positionMap, parseColor, colorResolver, resolveBreakpoints, directionMap, colorableShadows, directionSize, variantMatcher, variantParentMatcher, hasParseableColor } from '@unocss/preset-mini/utils';
5
- import * as _ from '@unocss/preset-mini/rules';
6
- import { borderStyles, varEmpty, transformBase, boxShadowsBase, ringBase } from '@unocss/preset-mini/rules';
7
- import { theme as theme$1 } from '@unocss/preset-mini/theme';
8
- import { colorToString, colorOpacityToString, variantMatcher as variantMatcher$1 } from '@unocss/rule-utils';
9
- import { variants as variants$1 } from '@unocss/preset-mini/variants';
4
+ import { shortcuts } from './shortcuts.mjs';
5
+ import { theme } from './theme.mjs';
6
+ import { r as rules } from './shared/preset-wind.aiu9p7G7.mjs';
7
+ import { b as variants } from './shared/preset-wind.BwVsieym.mjs';
8
+ import './shared/preset-wind.BzmnsdqZ.mjs';
9
+ import '@unocss/preset-mini/utils';
10
+ import '@unocss/preset-mini/rules';
11
+ import '@unocss/preset-mini/theme';
12
+ import './shared/preset-wind.TzkR3UCF.mjs';
13
+ import '@unocss/rule-utils';
14
+ import '@unocss/preset-mini/variants';
10
15
 
11
16
  function important(option) {
12
17
  if (option == null || option === false)
@@ -15,7 +20,7 @@ function important(option) {
15
20
  if (selector.startsWith(":is(") && selector.endsWith(")"))
16
21
  return selector;
17
22
  if (selector.includes("::"))
18
- return selector.replace(/(.*?)(\s*::.*)/, ":is($1)$2");
23
+ return selector.replace(/(.*?)((?:\s\*)?::.*)/, ":is($1)$2");
19
24
  return `:is(${selector})`;
20
25
  };
21
26
  return [
@@ -38,1347 +43,6 @@ function postprocessors(options) {
38
43
  ];
39
44
  }
40
45
 
41
- const animations = [
42
- [/^(?:animate-)?keyframes-(.+)$/, ([, name], { theme }) => {
43
- const kf = theme.animation?.keyframes?.[name];
44
- if (kf) {
45
- return [
46
- `@keyframes ${name}${kf}`,
47
- { animation: name }
48
- ];
49
- }
50
- }, { autocomplete: ["animate-keyframes-$animation.keyframes", "keyframes-$animation.keyframes"] }],
51
- [/^animate-(.+)$/, ([, name], { theme }) => {
52
- const kf = theme.animation?.keyframes?.[name];
53
- if (kf) {
54
- const duration = theme.animation?.durations?.[name] ?? "1s";
55
- const timing = theme.animation?.timingFns?.[name] ?? "linear";
56
- const count = theme.animation?.counts?.[name] ?? 1;
57
- const props = theme.animation?.properties?.[name];
58
- return [
59
- `@keyframes ${name}${kf}`,
60
- {
61
- animation: `${name} ${duration} ${timing} ${count}`,
62
- ...props
63
- }
64
- ];
65
- }
66
- return { animation: h.bracket.cssvar(name) };
67
- }, { autocomplete: "animate-$animation.keyframes" }],
68
- [/^animate-name-(.+)/, ([, d]) => ({ "animation-name": h.bracket.cssvar(d) ?? d })],
69
- // timings
70
- [/^animate-duration-(.+)$/, ([, d], { theme }) => ({ "animation-duration": theme.duration?.[d || "DEFAULT"] ?? h.bracket.cssvar.time(d) }), { autocomplete: ["animate-duration", "animate-duration-$duration"] }],
71
- [/^animate-delay-(.+)$/, ([, d], { theme }) => ({ "animation-delay": theme.duration?.[d || "DEFAULT"] ?? h.bracket.cssvar.time(d) }), { autocomplete: ["animate-delay", "animate-delay-$duration"] }],
72
- [/^animate-ease(?:-(.+))?$/, ([, d], { theme }) => ({ "animation-timing-function": theme.easing?.[d || "DEFAULT"] ?? h.bracket.cssvar(d) }), { autocomplete: ["animate-ease", "animate-ease-$easing"] }],
73
- // fill mode
74
- [/^animate-(fill-mode-|fill-|mode-)?(.+)$/, ([, t, d]) => ["none", "forwards", "backwards", "both", ...[t ? globalKeywords : []]].includes(d) ? { "animation-fill-mode": d } : void 0, {
75
- autocomplete: [
76
- "animate-(fill|mode|fill-mode)",
77
- "animate-(fill|mode|fill-mode)-(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)",
78
- "animate-(none|forwards|backwards|both|inherit|initial|revert|revert-layer|unset)"
79
- ]
80
- }],
81
- // direction
82
- [/^animate-(direction-)?(.+)$/, ([, t, d]) => ["normal", "reverse", "alternate", "alternate-reverse", ...[t ? globalKeywords : []]].includes(d) ? { "animation-direction": d } : void 0, {
83
- autocomplete: [
84
- "animate-direction",
85
- "animate-direction-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)",
86
- "animate-(normal|reverse|alternate|alternate-reverse|inherit|initial|revert|revert-layer|unset)"
87
- ]
88
- }],
89
- // others
90
- [/^animate-(?:iteration-count-|iteration-|count-)(.+)$/, ([, d]) => ({ "animation-iteration-count": h.bracket.cssvar(d) ?? d.replace(/-/g, ",") }), { autocomplete: ["animate-(iteration|count|iteration-count)", "animate-(iteration|count|iteration-count)-<num>"] }],
91
- [/^animate-(play-state-|play-|state-)?(.+)$/, ([, t, d]) => ["paused", "running", ...[t ? globalKeywords : []]].includes(d) ? { "animation-play-state": d } : void 0, {
92
- autocomplete: [
93
- "animate-(play|state|play-state)",
94
- "animate-(play|state|play-state)-(paused|running|inherit|initial|revert|revert-layer|unset)",
95
- "animate-(paused|running|inherit|initial|revert|revert-layer|unset)"
96
- ]
97
- }],
98
- ["animate-none", { animation: "none" }],
99
- ...makeGlobalStaticRules("animate", "animation")
100
- ];
101
-
102
- function bgGradientToValue(cssColor) {
103
- if (cssColor)
104
- return colorToString(cssColor, 0);
105
- return "rgb(255 255 255 / 0)";
106
- }
107
- function bgGradientColorValue(mode, cssColor, color, alpha) {
108
- if (cssColor) {
109
- if (alpha != null)
110
- return colorToString(cssColor, alpha);
111
- else
112
- return colorToString(cssColor, `var(--un-${mode}-opacity, ${colorOpacityToString(cssColor)})`);
113
- }
114
- return colorToString(color, alpha);
115
- }
116
- function bgGradientColorResolver() {
117
- return ([, mode, body], { theme }) => {
118
- const data = parseColor(body, theme, "backgroundColor");
119
- if (!data)
120
- return;
121
- const { alpha, color, cssColor } = data;
122
- if (!color)
123
- return;
124
- const colorString = bgGradientColorValue(mode, cssColor, color, alpha);
125
- switch (mode) {
126
- case "from":
127
- return {
128
- "--un-gradient-from-position": "0%",
129
- "--un-gradient-from": `${colorString} var(--un-gradient-from-position)`,
130
- "--un-gradient-to-position": "100%",
131
- "--un-gradient-to": `${bgGradientToValue(cssColor)} var(--un-gradient-to-position)`,
132
- "--un-gradient-stops": "var(--un-gradient-from), var(--un-gradient-to)"
133
- };
134
- case "via":
135
- return {
136
- "--un-gradient-via-position": "50%",
137
- "--un-gradient-to": bgGradientToValue(cssColor),
138
- "--un-gradient-stops": `var(--un-gradient-from), ${colorString} var(--un-gradient-via-position), var(--un-gradient-to)`
139
- };
140
- case "to":
141
- return {
142
- "--un-gradient-to-position": "100%",
143
- "--un-gradient-to": `${colorString} var(--un-gradient-to-position)`
144
- };
145
- }
146
- };
147
- }
148
- function bgGradientPositionResolver() {
149
- return ([, mode, body]) => {
150
- return {
151
- [`--un-gradient-${mode}-position`]: `${Number(h.bracket.cssvar.percent(body)) * 100}%`
152
- };
153
- };
154
- }
155
- const backgroundStyles = [
156
- // gradients
157
- [/^bg-gradient-(.+)$/, ([, d]) => ({ "--un-gradient": h.bracket(d) }), {
158
- autocomplete: ["bg-gradient", "bg-gradient-(from|to|via)", "bg-gradient-(from|to|via)-$colors", "bg-gradient-(from|to|via)-(op|opacity)", "bg-gradient-(from|to|via)-(op|opacity)-<percent>"]
159
- }],
160
- [/^(?:bg-gradient-)?stops-(\[.+\])$/, ([, s]) => ({ "--un-gradient-stops": h.bracket(s) })],
161
- [/^(?:bg-gradient-)?(from)-(.+)$/, bgGradientColorResolver()],
162
- [/^(?:bg-gradient-)?(via)-(.+)$/, bgGradientColorResolver()],
163
- [/^(?:bg-gradient-)?(to)-(.+)$/, bgGradientColorResolver()],
164
- [/^(?:bg-gradient-)?(from|via|to)-op(?:acity)?-?(.+)$/, ([, position, opacity]) => ({ [`--un-${position}-opacity`]: h.bracket.percent(opacity) })],
165
- [/^(from|via|to)-([\d.]+)%$/, bgGradientPositionResolver()],
166
- // images
167
- [/^bg-gradient-((?:repeating-)?(?:linear|radial|conic))$/, ([, s]) => ({
168
- "background-image": `${s}-gradient(var(--un-gradient, var(--un-gradient-stops, rgb(255 255 255 / 0))))`
169
- }), { autocomplete: ["bg-gradient-repeating", "bg-gradient-(linear|radial|conic)", "bg-gradient-repeating-(linear|radial|conic)"] }],
170
- // ignore any center position
171
- [/^bg-gradient-to-([rltb]{1,2})$/, ([, d]) => {
172
- if (d in positionMap) {
173
- return {
174
- "--un-gradient-shape": `to ${positionMap[d]} in oklch`,
175
- "--un-gradient": "var(--un-gradient-shape), var(--un-gradient-stops)",
176
- "background-image": "linear-gradient(var(--un-gradient))"
177
- };
178
- }
179
- }, { autocomplete: `bg-gradient-to-(${Object.keys(positionMap).filter((k) => k.length <= 2 && Array.from(k).every((c) => "rltb".includes(c))).join("|")})` }],
180
- [/^(?:bg-gradient-)?shape-(.+)$/, ([, d]) => {
181
- const v = d in positionMap ? `to ${positionMap[d]}` : h.bracket(d);
182
- if (v != null) {
183
- return {
184
- "--un-gradient-shape": `${v} in oklch`,
185
- "--un-gradient": "var(--un-gradient-shape), var(--un-gradient-stops)"
186
- };
187
- }
188
- }, { autocomplete: ["bg-gradient-shape", `bg-gradient-shape-(${Object.keys(positionMap).join("|")})`, `shape-(${Object.keys(positionMap).join("|")})`] }],
189
- ["bg-none", { "background-image": "none" }],
190
- ["box-decoration-slice", { "box-decoration-break": "slice" }],
191
- ["box-decoration-clone", { "box-decoration-break": "clone" }],
192
- ...makeGlobalStaticRules("box-decoration", "box-decoration-break"),
193
- // size
194
- ["bg-auto", { "background-size": "auto" }],
195
- ["bg-cover", { "background-size": "cover" }],
196
- ["bg-contain", { "background-size": "contain" }],
197
- // attachments
198
- ["bg-fixed", { "background-attachment": "fixed" }],
199
- ["bg-local", { "background-attachment": "local" }],
200
- ["bg-scroll", { "background-attachment": "scroll" }],
201
- // clips
202
- ["bg-clip-border", { "-webkit-background-clip": "border-box", "background-clip": "border-box" }],
203
- ["bg-clip-content", { "-webkit-background-clip": "content-box", "background-clip": "content-box" }],
204
- ["bg-clip-padding", { "-webkit-background-clip": "padding-box", "background-clip": "padding-box" }],
205
- ["bg-clip-text", { "-webkit-background-clip": "text", "background-clip": "text" }],
206
- ...globalKeywords.map((keyword) => [`bg-clip-${keyword}`, {
207
- "-webkit-background-clip": keyword,
208
- "background-clip": keyword
209
- }]),
210
- // positions
211
- // skip 1 & 2 letters shortcut
212
- [/^bg-([-\w]{3,})$/, ([, s]) => ({ "background-position": positionMap[s] })],
213
- // repeats
214
- ["bg-repeat", { "background-repeat": "repeat" }],
215
- ["bg-no-repeat", { "background-repeat": "no-repeat" }],
216
- ["bg-repeat-x", { "background-repeat": "repeat-x" }],
217
- ["bg-repeat-y", { "background-repeat": "repeat-y" }],
218
- ["bg-repeat-round", { "background-repeat": "round" }],
219
- ["bg-repeat-space", { "background-repeat": "space" }],
220
- ...makeGlobalStaticRules("bg-repeat", "background-repeat"),
221
- // origins
222
- ["bg-origin-border", { "background-origin": "border-box" }],
223
- ["bg-origin-padding", { "background-origin": "padding-box" }],
224
- ["bg-origin-content", { "background-origin": "content-box" }],
225
- ...makeGlobalStaticRules("bg-origin", "background-origin")
226
- ];
227
-
228
- const listStyles = {
229
- "disc": "disc",
230
- "circle": "circle",
231
- "square": "square",
232
- "decimal": "decimal",
233
- "zero-decimal": "decimal-leading-zero",
234
- "greek": "lower-greek",
235
- "roman": "lower-roman",
236
- "upper-roman": "upper-roman",
237
- "alpha": "lower-alpha",
238
- "upper-alpha": "upper-alpha",
239
- "latin": "lower-latin",
240
- "upper-latin": "upper-latin"
241
- };
242
- const listStyle = [
243
- // base
244
- [/^list-(.+?)(?:-(outside|inside))?$/, ([, alias, position]) => {
245
- const style = listStyles[alias];
246
- if (style) {
247
- if (position) {
248
- return {
249
- "list-style-position": position,
250
- "list-style-type": style
251
- };
252
- }
253
- return { "list-style-type": style };
254
- }
255
- }, { autocomplete: [`list-(${Object.keys(listStyles).join("|")})`, `list-(${Object.keys(listStyles).join("|")})-(outside|inside)`] }],
256
- // styles
257
- ["list-outside", { "list-style-position": "outside" }],
258
- ["list-inside", { "list-style-position": "inside" }],
259
- ["list-none", { "list-style-type": "none" }],
260
- // image
261
- [/^list-image-(.+)$/, ([, d]) => {
262
- if (/^\[url\(.+\)\]$/.test(d))
263
- return { "list-style-image": h.bracket(d) };
264
- }],
265
- ["list-image-none", { "list-style-image": "none" }],
266
- ...makeGlobalStaticRules("list", "list-style-type")
267
- ];
268
- const accents = [
269
- [/^accent-(.+)$/, colorResolver("accent-color", "accent", "accentColor"), { autocomplete: "accent-$colors" }],
270
- [/^accent-op(?:acity)?-?(.+)$/, ([, d]) => ({ "--un-accent-opacity": h.bracket.percent(d) }), { autocomplete: ["accent-(op|opacity)", "accent-(op|opacity)-<percent>"] }]
271
- ];
272
- const carets = [
273
- [/^caret-(.+)$/, colorResolver("caret-color", "caret", "textColor"), { autocomplete: "caret-$colors" }],
274
- [/^caret-op(?:acity)?-?(.+)$/, ([, d]) => ({ "--un-caret-opacity": h.bracket.percent(d) }), { autocomplete: ["caret-(op|opacity)", "caret-(op|opacity)-<percent>"] }]
275
- ];
276
- const imageRenderings = [
277
- ["image-render-auto", { "image-rendering": "auto" }],
278
- ["image-render-edge", { "image-rendering": "crisp-edges" }],
279
- ["image-render-pixel", [
280
- ["-ms-interpolation-mode", "nearest-neighbor"],
281
- ["image-rendering", "-webkit-optimize-contrast"],
282
- ["image-rendering", "-moz-crisp-edges"],
283
- ["image-rendering", "-o-pixelated"],
284
- ["image-rendering", "pixelated"]
285
- ]]
286
- ];
287
- const overscrolls = [
288
- ["overscroll-auto", { "overscroll-behavior": "auto" }],
289
- ["overscroll-contain", { "overscroll-behavior": "contain" }],
290
- ["overscroll-none", { "overscroll-behavior": "none" }],
291
- ...makeGlobalStaticRules("overscroll", "overscroll-behavior"),
292
- ["overscroll-x-auto", { "overscroll-behavior-x": "auto" }],
293
- ["overscroll-x-contain", { "overscroll-behavior-x": "contain" }],
294
- ["overscroll-x-none", { "overscroll-behavior-x": "none" }],
295
- ...makeGlobalStaticRules("overscroll-x", "overscroll-behavior-x"),
296
- ["overscroll-y-auto", { "overscroll-behavior-y": "auto" }],
297
- ["overscroll-y-contain", { "overscroll-behavior-y": "contain" }],
298
- ["overscroll-y-none", { "overscroll-behavior-y": "none" }],
299
- ...makeGlobalStaticRules("overscroll-y", "overscroll-behavior-y")
300
- ];
301
- const scrollBehaviors = [
302
- ["scroll-auto", { "scroll-behavior": "auto" }],
303
- ["scroll-smooth", { "scroll-behavior": "smooth" }],
304
- ...makeGlobalStaticRules("scroll", "scroll-behavior")
305
- ];
306
-
307
- const columns = [
308
- [/^columns-(.+)$/, ([, v]) => ({ columns: h.bracket.global.number.auto.numberWithUnit(v) }), { autocomplete: "columns-<num>" }],
309
- // break before
310
- ["break-before-auto", { "break-before": "auto" }],
311
- ["break-before-avoid", { "break-before": "avoid" }],
312
- ["break-before-all", { "break-before": "all" }],
313
- ["break-before-avoid-page", { "break-before": "avoid-page" }],
314
- ["break-before-page", { "break-before": "page" }],
315
- ["break-before-left", { "break-before": "left" }],
316
- ["break-before-right", { "break-before": "right" }],
317
- ["break-before-column", { "break-before": "column" }],
318
- ...makeGlobalStaticRules("break-before"),
319
- // break inside
320
- ["break-inside-auto", { "break-inside": "auto" }],
321
- ["break-inside-avoid", { "break-inside": "avoid" }],
322
- ["break-inside-avoid-page", { "break-inside": "avoid-page" }],
323
- ["break-inside-avoid-column", { "break-inside": "avoid-column" }],
324
- ...makeGlobalStaticRules("break-inside"),
325
- // break after
326
- ["break-after-auto", { "break-after": "auto" }],
327
- ["break-after-avoid", { "break-after": "avoid" }],
328
- ["break-after-all", { "break-after": "all" }],
329
- ["break-after-avoid-page", { "break-after": "avoid-page" }],
330
- ["break-after-page", { "break-after": "page" }],
331
- ["break-after-left", { "break-after": "left" }],
332
- ["break-after-right", { "break-after": "right" }],
333
- ["break-after-column", { "break-after": "column" }],
334
- ...makeGlobalStaticRules("break-after")
335
- ];
336
-
337
- const queryMatcher = /@media \(min-width: (.+)\)/;
338
- const container = [
339
- [
340
- /^__container$/,
341
- (m, context) => {
342
- const { theme, variantHandlers } = context;
343
- const themePadding = theme.container?.padding;
344
- let padding;
345
- if (isString(themePadding))
346
- padding = themePadding;
347
- else
348
- padding = themePadding?.DEFAULT;
349
- const themeMaxWidth = theme.container?.maxWidth;
350
- let maxWidth;
351
- for (const v of variantHandlers) {
352
- const query = v.handle?.({}, (x) => x)?.parent;
353
- if (isString(query)) {
354
- const match = query.match(queryMatcher)?.[1];
355
- if (match) {
356
- const bp = resolveBreakpoints(context) ?? [];
357
- const matchBp = bp.find((i) => i.size === match)?.point;
358
- if (!themeMaxWidth)
359
- maxWidth = match;
360
- else if (matchBp)
361
- maxWidth = themeMaxWidth?.[matchBp];
362
- if (matchBp && !isString(themePadding))
363
- padding = themePadding?.[matchBp] ?? padding;
364
- }
365
- }
366
- }
367
- const css = {
368
- "max-width": maxWidth
369
- };
370
- if (!variantHandlers.length)
371
- css.width = "100%";
372
- if (theme.container?.center) {
373
- css["margin-left"] = "auto";
374
- css["margin-right"] = "auto";
375
- }
376
- if (themePadding) {
377
- css["padding-left"] = padding;
378
- css["padding-right"] = padding;
379
- }
380
- return css;
381
- },
382
- { internal: true }
383
- ]
384
- ];
385
- const containerShortcuts = [
386
- [/^(?:(\w+)[:-])?container$/, ([, bp], context) => {
387
- let points = (resolveBreakpoints(context) ?? []).map((i) => i.point);
388
- if (bp) {
389
- if (!points.includes(bp))
390
- return;
391
- points = points.slice(points.indexOf(bp));
392
- }
393
- const shortcuts = points.map((p) => `${p}:__container`);
394
- if (!bp)
395
- shortcuts.unshift("__container");
396
- return shortcuts;
397
- }]
398
- ];
399
-
400
- const divides = [
401
- // divides
402
- [/^divide-?([xy])$/, handlerDivide, { autocomplete: ["divide-(x|y|block|inline)", "divide-(x|y|block|inline)-reverse", "divide-(x|y|block|inline)-$lineWidth"] }],
403
- [/^divide-?([xy])-?(.+)$/, handlerDivide],
404
- [/^divide-?([xy])-reverse$/, ([, d]) => ({ [`--un-divide-${d}-reverse`]: 1 })],
405
- [/^divide-(block|inline)$/, handlerDivide],
406
- [/^divide-(block|inline)-(.+)$/, handlerDivide],
407
- [/^divide-(block|inline)-reverse$/, ([, d]) => ({ [`--un-divide-${d}-reverse`]: 1 })],
408
- // color & opacity
409
- [/^divide-(.+)$/, colorResolver("border-color", "divide", "borderColor"), { autocomplete: "divide-$colors" }],
410
- [/^divide-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-divide-opacity": h.bracket.percent(opacity) }), { autocomplete: ["divide-(op|opacity)", "divide-(op|opacity)-<percent>"] }],
411
- // styles
412
- ...borderStyles.map((style) => [`divide-${style}`, { "border-style": style }])
413
- ];
414
- function handlerDivide([, d, s], { theme }) {
415
- let v = theme.lineWidth?.[s || "DEFAULT"] ?? h.bracket.cssvar.px(s || "1");
416
- if (v != null) {
417
- if (v === "0")
418
- v = "0px";
419
- const results = directionMap[d].map((item) => {
420
- const key = `border${item}-width`;
421
- const value = item.endsWith("right") || item.endsWith("bottom") ? `calc(${v} * var(--un-divide-${d}-reverse))` : `calc(${v} * calc(1 - var(--un-divide-${d}-reverse)))`;
422
- return [key, value];
423
- });
424
- if (results) {
425
- return [
426
- [`--un-divide-${d}-reverse`, 0],
427
- ...results
428
- ];
429
- }
430
- }
431
- }
432
-
433
- const filterBase = {
434
- "--un-blur": varEmpty,
435
- "--un-brightness": varEmpty,
436
- "--un-contrast": varEmpty,
437
- "--un-drop-shadow": varEmpty,
438
- "--un-grayscale": varEmpty,
439
- "--un-hue-rotate": varEmpty,
440
- "--un-invert": varEmpty,
441
- "--un-saturate": varEmpty,
442
- "--un-sepia": varEmpty
443
- };
444
- const filterProperty = "var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)";
445
- const backdropFilterBase = {
446
- "--un-backdrop-blur": varEmpty,
447
- "--un-backdrop-brightness": varEmpty,
448
- "--un-backdrop-contrast": varEmpty,
449
- "--un-backdrop-grayscale": varEmpty,
450
- "--un-backdrop-hue-rotate": varEmpty,
451
- "--un-backdrop-invert": varEmpty,
452
- "--un-backdrop-opacity": varEmpty,
453
- "--un-backdrop-saturate": varEmpty,
454
- "--un-backdrop-sepia": varEmpty
455
- };
456
- const backdropFilterProperty = "var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)";
457
- function percentWithDefault(str) {
458
- let v = h.bracket.cssvar(str || "");
459
- if (v != null)
460
- return v;
461
- v = str ? h.percent(str) : "1";
462
- if (v != null && Number.parseFloat(v) <= 1)
463
- return v;
464
- }
465
- function toFilter(varName, resolver) {
466
- return ([, b, s], { theme }) => {
467
- const value = resolver(s, theme) ?? (s === "none" ? "0" : "");
468
- if (value !== "") {
469
- if (b) {
470
- return {
471
- [`--un-${b}${varName}`]: `${varName}(${value})`,
472
- "-webkit-backdrop-filter": backdropFilterProperty,
473
- "backdrop-filter": backdropFilterProperty
474
- };
475
- } else {
476
- return {
477
- [`--un-${varName}`]: `${varName}(${value})`,
478
- filter: filterProperty
479
- };
480
- }
481
- }
482
- };
483
- }
484
- function dropShadowResolver([, s], { theme }) {
485
- let v = theme.dropShadow?.[s || "DEFAULT"];
486
- if (v != null) {
487
- const shadows = colorableShadows(v, "--un-drop-shadow-color");
488
- return {
489
- "--un-drop-shadow": `drop-shadow(${shadows.join(") drop-shadow(")})`,
490
- "filter": filterProperty
491
- };
492
- }
493
- v = h.bracket.cssvar(s);
494
- if (v != null) {
495
- return {
496
- "--un-drop-shadow": `drop-shadow(${v})`,
497
- "filter": filterProperty
498
- };
499
- }
500
- }
501
- const filters = [
502
- // filters
503
- [/^(?:(backdrop-)|filter-)?blur(?:-(.+))?$/, toFilter("blur", (s, theme) => theme.blur?.[s || "DEFAULT"] || h.bracket.cssvar.px(s)), { autocomplete: ["(backdrop|filter)-blur-$blur", "blur-$blur", "filter-blur"] }],
504
- [/^(?:(backdrop-)|filter-)?brightness-(.+)$/, toFilter("brightness", (s) => h.bracket.cssvar.percent(s)), { autocomplete: ["(backdrop|filter)-brightness-<percent>", "brightness-<percent>"] }],
505
- [/^(?:(backdrop-)|filter-)?contrast-(.+)$/, toFilter("contrast", (s) => h.bracket.cssvar.percent(s)), { autocomplete: ["(backdrop|filter)-contrast-<percent>", "contrast-<percent>"] }],
506
- // drop-shadow only on filter
507
- [/^(?:filter-)?drop-shadow(?:-(.+))?$/, dropShadowResolver, {
508
- autocomplete: [
509
- "filter-drop",
510
- "filter-drop-shadow",
511
- "filter-drop-shadow-color",
512
- "drop-shadow",
513
- "drop-shadow-color",
514
- "filter-drop-shadow-$dropShadow",
515
- "drop-shadow-$dropShadow",
516
- "filter-drop-shadow-color-$colors",
517
- "drop-shadow-color-$colors",
518
- "filter-drop-shadow-color-(op|opacity)",
519
- "drop-shadow-color-(op|opacity)",
520
- "filter-drop-shadow-color-(op|opacity)-<percent>",
521
- "drop-shadow-color-(op|opacity)-<percent>"
522
- ]
523
- }],
524
- [/^(?:filter-)?drop-shadow-color-(.+)$/, colorResolver("--un-drop-shadow-color", "drop-shadow", "shadowColor")],
525
- [/^(?:filter-)?drop-shadow-color-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-drop-shadow-opacity": h.bracket.percent(opacity) })],
526
- [/^(?:(backdrop-)|filter-)?grayscale(?:-(.+))?$/, toFilter("grayscale", percentWithDefault), { autocomplete: ["(backdrop|filter)-grayscale", "(backdrop|filter)-grayscale-<percent>", "grayscale-<percent>"] }],
527
- [/^(?:(backdrop-)|filter-)?hue-rotate-(.+)$/, toFilter("hue-rotate", (s) => h.bracket.cssvar.degree(s))],
528
- [/^(?:(backdrop-)|filter-)?invert(?:-(.+))?$/, toFilter("invert", percentWithDefault), { autocomplete: ["(backdrop|filter)-invert", "(backdrop|filter)-invert-<percent>", "invert-<percent>"] }],
529
- // opacity only on backdrop-filter
530
- [/^(backdrop-)op(?:acity)?-(.+)$/, toFilter("opacity", (s) => h.bracket.cssvar.percent(s)), { autocomplete: ["backdrop-(op|opacity)", "backdrop-(op|opacity)-<percent>"] }],
531
- [/^(?:(backdrop-)|filter-)?saturate-(.+)$/, toFilter("saturate", (s) => h.bracket.cssvar.percent(s)), { autocomplete: ["(backdrop|filter)-saturate", "(backdrop|filter)-saturate-<percent>", "saturate-<percent>"] }],
532
- [/^(?:(backdrop-)|filter-)?sepia(?:-(.+))?$/, toFilter("sepia", percentWithDefault), { autocomplete: ["(backdrop|filter)-sepia", "(backdrop|filter)-sepia-<percent>", "sepia-<percent>"] }],
533
- // base
534
- ["filter", { filter: filterProperty }],
535
- ["backdrop-filter", {
536
- "-webkit-backdrop-filter": backdropFilterProperty,
537
- "backdrop-filter": backdropFilterProperty
538
- }],
539
- // nones
540
- ["filter-none", { filter: "none" }],
541
- ["backdrop-filter-none", {
542
- "-webkit-backdrop-filter": "none",
543
- "backdrop-filter": "none"
544
- }],
545
- ...globalKeywords.map((keyword) => [`filter-${keyword}`, { filter: keyword }]),
546
- ...globalKeywords.map((keyword) => [`backdrop-filter-${keyword}`, {
547
- "-webkit-backdrop-filter": keyword,
548
- "backdrop-filter": keyword
549
- }])
550
- ];
551
-
552
- const lineClamps = [
553
- [/^line-clamp-(\d+)$/, ([, v]) => ({
554
- "overflow": "hidden",
555
- "display": "-webkit-box",
556
- "-webkit-box-orient": "vertical",
557
- "-webkit-line-clamp": v,
558
- "line-clamp": v
559
- }), { autocomplete: ["line-clamp", "line-clamp-<num>"] }],
560
- ...["none", ...globalKeywords].map((keyword) => [`line-clamp-${keyword}`, {
561
- "overflow": "visible",
562
- "display": "block",
563
- "-webkit-box-orient": "horizontal",
564
- "-webkit-line-clamp": keyword,
565
- "line-clamp": keyword
566
- }])
567
- ];
568
-
569
- const placeholders = [
570
- // The prefix `$ ` is intentional. This rule is not to be matched directly from user-generated token.
571
- // See variants/placeholder.
572
- [/^\$ placeholder-(.+)$/, colorResolver("color", "placeholder", "accentColor"), { autocomplete: "placeholder-$colors" }],
573
- [/^\$ placeholder-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-placeholder-opacity": h.bracket.percent(opacity) }), { autocomplete: ["placeholder-(op|opacity)", "placeholder-(op|opacity)-<percent>"] }]
574
- ];
575
-
576
- const scrollSnapTypeBase = {
577
- "--un-scroll-snap-strictness": "proximity"
578
- };
579
- const scrolls = [
580
- // snap type
581
- [/^snap-(x|y)$/, ([, d]) => ({
582
- "scroll-snap-type": `${d} var(--un-scroll-snap-strictness)`
583
- }), { autocomplete: "snap-(x|y|both)" }],
584
- [/^snap-both$/, () => ({
585
- "scroll-snap-type": "both var(--un-scroll-snap-strictness)"
586
- })],
587
- ["snap-mandatory", { "--un-scroll-snap-strictness": "mandatory" }],
588
- ["snap-proximity", { "--un-scroll-snap-strictness": "proximity" }],
589
- ["snap-none", { "scroll-snap-type": "none" }],
590
- // snap align
591
- ["snap-start", { "scroll-snap-align": "start" }],
592
- ["snap-end", { "scroll-snap-align": "end" }],
593
- ["snap-center", { "scroll-snap-align": "center" }],
594
- ["snap-align-none", { "scroll-snap-align": "none" }],
595
- // snap stop
596
- ["snap-normal", { "scroll-snap-stop": "normal" }],
597
- ["snap-always", { "scroll-snap-stop": "always" }],
598
- // scroll margin
599
- [/^scroll-ma?()-?(.+)$/, directionSize("scroll-margin"), {
600
- autocomplete: [
601
- "scroll-(m|p|ma|pa|block|inline)",
602
- "scroll-(m|p|ma|pa|block|inline)-$spacing",
603
- "scroll-(m|p|ma|pa|block|inline)-(x|y|r|l|t|b|bs|be|is|ie)",
604
- "scroll-(m|p|ma|pa|block|inline)-(x|y|r|l|t|b|bs|be|is|ie)-$spacing"
605
- ]
606
- }],
607
- [/^scroll-m-?([xy])-?(.+)$/, directionSize("scroll-margin")],
608
- [/^scroll-m-?([rltb])-?(.+)$/, directionSize("scroll-margin")],
609
- [/^scroll-m-(block|inline)-(.+)$/, directionSize("scroll-margin")],
610
- [/^scroll-m-?([bi][se])-?(.+)$/, directionSize("scroll-margin")],
611
- // scroll padding
612
- [/^scroll-pa?()-?(.+)$/, directionSize("scroll-padding")],
613
- [/^scroll-p-?([xy])-?(.+)$/, directionSize("scroll-padding")],
614
- [/^scroll-p-?([rltb])-?(.+)$/, directionSize("scroll-padding")],
615
- [/^scroll-p-(block|inline)-(.+)$/, directionSize("scroll-padding")],
616
- [/^scroll-p-?([bi][se])-?(.+)$/, directionSize("scroll-padding")]
617
- ];
618
-
619
- const spaces = [
620
- [/^space-([xy])-(.+)$/, handlerSpace, { autocomplete: ["space-(x|y|block|inline)", "space-(x|y|block|inline)-reverse", "space-(x|y|block|inline)-$spacing"] }],
621
- [/^space-([xy])-reverse$/, ([, d]) => ({ [`--un-space-${d}-reverse`]: 1 })],
622
- [/^space-(block|inline)-(.+)$/, handlerSpace],
623
- [/^space-(block|inline)-reverse$/, ([, d]) => ({ [`--un-space-${d}-reverse`]: 1 })]
624
- ];
625
- function handlerSpace([, d, s], { theme }) {
626
- let v = theme.spacing?.[s || "DEFAULT"] ?? h.bracket.cssvar.auto.fraction.rem(s || "1");
627
- if (v != null) {
628
- if (v === "0")
629
- v = "0px";
630
- const results = directionMap[d].map((item) => {
631
- const key = `margin${item}`;
632
- const value = item.endsWith("right") || item.endsWith("bottom") ? `calc(${v} * var(--un-space-${d}-reverse))` : `calc(${v} * calc(1 - var(--un-space-${d}-reverse)))`;
633
- return [key, value];
634
- });
635
- if (results) {
636
- return [
637
- [`--un-space-${d}-reverse`, 0],
638
- ...results
639
- ];
640
- }
641
- }
642
- }
643
-
644
- const textTransforms = [
645
- // tailwind compat
646
- ["uppercase", { "text-transform": "uppercase" }],
647
- ["lowercase", { "text-transform": "lowercase" }],
648
- ["capitalize", { "text-transform": "capitalize" }],
649
- ["normal-case", { "text-transform": "none" }]
650
- ];
651
- const hyphens = [
652
- ...["manual", "auto", "none", ...globalKeywords].map((keyword) => [`hyphens-${keyword}`, {
653
- "-webkit-hyphens": keyword,
654
- "-ms-hyphens": keyword,
655
- "hyphens": keyword
656
- }])
657
- ];
658
- const writingModes = [
659
- ["write-vertical-right", { "writing-mode": "vertical-rl" }],
660
- ["write-vertical-left", { "writing-mode": "vertical-lr" }],
661
- ["write-normal", { "writing-mode": "horizontal-tb" }],
662
- ...makeGlobalStaticRules("write", "writing-mode")
663
- ];
664
- const writingOrientations = [
665
- ["write-orient-mixed", { "text-orientation": "mixed" }],
666
- ["write-orient-sideways", { "text-orientation": "sideways" }],
667
- ["write-orient-upright", { "text-orientation": "upright" }],
668
- ...makeGlobalStaticRules("write-orient", "text-orientation")
669
- ];
670
- const screenReadersAccess = [
671
- [
672
- "sr-only",
673
- {
674
- "position": "absolute",
675
- "width": "1px",
676
- "height": "1px",
677
- "padding": "0",
678
- "margin": "-1px",
679
- "overflow": "hidden",
680
- "clip": "rect(0,0,0,0)",
681
- "white-space": "nowrap",
682
- "border-width": 0
683
- }
684
- ],
685
- [
686
- "not-sr-only",
687
- {
688
- "position": "static",
689
- "width": "auto",
690
- "height": "auto",
691
- "padding": "0",
692
- "margin": "0",
693
- "overflow": "visible",
694
- "clip": "auto",
695
- "white-space": "normal"
696
- }
697
- ]
698
- ];
699
- const isolations = [
700
- ["isolate", { isolation: "isolate" }],
701
- ["isolate-auto", { isolation: "auto" }],
702
- ["isolation-auto", { isolation: "auto" }]
703
- ];
704
- const objectPositions = [
705
- // object fit
706
- ["object-cover", { "object-fit": "cover" }],
707
- ["object-contain", { "object-fit": "contain" }],
708
- ["object-fill", { "object-fit": "fill" }],
709
- ["object-scale-down", { "object-fit": "scale-down" }],
710
- ["object-none", { "object-fit": "none" }],
711
- // object position
712
- [/^object-(.+)$/, ([, d]) => {
713
- if (positionMap[d])
714
- return { "object-position": positionMap[d] };
715
- if (h.bracketOfPosition(d) != null)
716
- return { "object-position": h.bracketOfPosition(d).split(" ").map((e) => h.position.fraction.auto.px.cssvar(e) ?? e).join(" ") };
717
- }, { autocomplete: `object-(${Object.keys(positionMap).join("|")})` }]
718
- ];
719
- const backgroundBlendModes = [
720
- ["bg-blend-multiply", { "background-blend-mode": "multiply" }],
721
- ["bg-blend-screen", { "background-blend-mode": "screen" }],
722
- ["bg-blend-overlay", { "background-blend-mode": "overlay" }],
723
- ["bg-blend-darken", { "background-blend-mode": "darken" }],
724
- ["bg-blend-lighten", { "background-blend-mode": "lighten" }],
725
- ["bg-blend-color-dodge", { "background-blend-mode": "color-dodge" }],
726
- ["bg-blend-color-burn", { "background-blend-mode": "color-burn" }],
727
- ["bg-blend-hard-light", { "background-blend-mode": "hard-light" }],
728
- ["bg-blend-soft-light", { "background-blend-mode": "soft-light" }],
729
- ["bg-blend-difference", { "background-blend-mode": "difference" }],
730
- ["bg-blend-exclusion", { "background-blend-mode": "exclusion" }],
731
- ["bg-blend-hue", { "background-blend-mode": "hue" }],
732
- ["bg-blend-saturation", { "background-blend-mode": "saturation" }],
733
- ["bg-blend-color", { "background-blend-mode": "color" }],
734
- ["bg-blend-luminosity", { "background-blend-mode": "luminosity" }],
735
- ["bg-blend-normal", { "background-blend-mode": "normal" }],
736
- ...makeGlobalStaticRules("bg-blend", "background-blend")
737
- ];
738
- const mixBlendModes = [
739
- ["mix-blend-multiply", { "mix-blend-mode": "multiply" }],
740
- ["mix-blend-screen", { "mix-blend-mode": "screen" }],
741
- ["mix-blend-overlay", { "mix-blend-mode": "overlay" }],
742
- ["mix-blend-darken", { "mix-blend-mode": "darken" }],
743
- ["mix-blend-lighten", { "mix-blend-mode": "lighten" }],
744
- ["mix-blend-color-dodge", { "mix-blend-mode": "color-dodge" }],
745
- ["mix-blend-color-burn", { "mix-blend-mode": "color-burn" }],
746
- ["mix-blend-hard-light", { "mix-blend-mode": "hard-light" }],
747
- ["mix-blend-soft-light", { "mix-blend-mode": "soft-light" }],
748
- ["mix-blend-difference", { "mix-blend-mode": "difference" }],
749
- ["mix-blend-exclusion", { "mix-blend-mode": "exclusion" }],
750
- ["mix-blend-hue", { "mix-blend-mode": "hue" }],
751
- ["mix-blend-saturation", { "mix-blend-mode": "saturation" }],
752
- ["mix-blend-color", { "mix-blend-mode": "color" }],
753
- ["mix-blend-luminosity", { "mix-blend-mode": "luminosity" }],
754
- ["mix-blend-plus-lighter", { "mix-blend-mode": "plus-lighter" }],
755
- ["mix-blend-normal", { "mix-blend-mode": "normal" }],
756
- ...makeGlobalStaticRules("mix-blend")
757
- ];
758
- const dynamicViewportHeight = [
759
- ["min-h-dvh", { "min-height": "100dvh" }],
760
- ["min-h-svh", { "min-height": "100svh" }],
761
- ["min-h-lvh", { "min-height": "100lvh" }],
762
- ["h-dvh", { height: "100dvh" }],
763
- ["h-svh", { height: "100svh" }],
764
- ["h-lvh", { height: "100lvh" }],
765
- ["max-h-dvh", { "max-height": "100dvh" }],
766
- ["max-h-svh", { "max-height": "100svh" }],
767
- ["max-h-lvh", { "max-height": "100lvh" }]
768
- ];
769
-
770
- const borderSpacingBase = {
771
- "--un-border-spacing-x": 0,
772
- "--un-border-spacing-y": 0
773
- };
774
- const borderSpacingProperty = "var(--un-border-spacing-x) var(--un-border-spacing-y)";
775
- const tables = [
776
- // displays
777
- ["inline-table", { display: "inline-table" }],
778
- ["table", { display: "table" }],
779
- ["table-caption", { display: "table-caption" }],
780
- ["table-cell", { display: "table-cell" }],
781
- ["table-column", { display: "table-column" }],
782
- ["table-column-group", { display: "table-column-group" }],
783
- ["table-footer-group", { display: "table-footer-group" }],
784
- ["table-header-group", { display: "table-header-group" }],
785
- ["table-row", { display: "table-row" }],
786
- ["table-row-group", { display: "table-row-group" }],
787
- // layouts
788
- ["border-collapse", { "border-collapse": "collapse" }],
789
- ["border-separate", { "border-collapse": "separate" }],
790
- [/^border-spacing-(.+)$/, ([, s], { theme }) => {
791
- const v = theme.spacing?.[s] ?? h.bracket.cssvar.global.auto.fraction.rem(s);
792
- if (v != null) {
793
- return {
794
- "--un-border-spacing-x": v,
795
- "--un-border-spacing-y": v,
796
- "border-spacing": borderSpacingProperty
797
- };
798
- }
799
- }, { autocomplete: ["border-spacing", "border-spacing-$spacing"] }],
800
- [/^border-spacing-([xy])-(.+)$/, ([, d, s], { theme }) => {
801
- const v = theme.spacing?.[s] ?? h.bracket.cssvar.global.auto.fraction.rem(s);
802
- if (v != null) {
803
- return {
804
- [`--un-border-spacing-${d}`]: v,
805
- "border-spacing": borderSpacingProperty
806
- };
807
- }
808
- }, { autocomplete: ["border-spacing-(x|y)", "border-spacing-(x|y)-$spacing"] }],
809
- ["caption-top", { "caption-side": "top" }],
810
- ["caption-bottom", { "caption-side": "bottom" }],
811
- ["table-auto", { "table-layout": "auto" }],
812
- ["table-fixed", { "table-layout": "fixed" }],
813
- ["table-empty-cells-visible", { "empty-cells": "show" }],
814
- ["table-empty-cells-hidden", { "empty-cells": "hide" }]
815
- ];
816
-
817
- const touchActionBase = {
818
- "--un-pan-x": varEmpty,
819
- "--un-pan-y": varEmpty,
820
- "--un-pinch-zoom": varEmpty
821
- };
822
- const touchActionProperty = "var(--un-pan-x) var(--un-pan-y) var(--un-pinch-zoom)";
823
- const touchActions = [
824
- [/^touch-pan-(x|left|right)$/, ([, d]) => ({
825
- "--un-pan-x": `pan-${d}`,
826
- "touch-action": touchActionProperty
827
- }), { autocomplete: ["touch-pan", "touch-pan-(x|left|right|y|up|down)"] }],
828
- [/^touch-pan-(y|up|down)$/, ([, d]) => ({
829
- "--un-pan-y": `pan-${d}`,
830
- "touch-action": touchActionProperty
831
- })],
832
- ["touch-pinch-zoom", {
833
- "--un-pinch-zoom": "pinch-zoom",
834
- "touch-action": touchActionProperty
835
- }],
836
- ["touch-auto", { "touch-action": "auto" }],
837
- ["touch-manipulation", { "touch-action": "manipulation" }],
838
- ["touch-none", { "touch-action": "none" }],
839
- ...makeGlobalStaticRules("touch", "touch-action")
840
- ];
841
-
842
- const fontVariantNumericBase = {
843
- "--un-ordinal": varEmpty,
844
- "--un-slashed-zero": varEmpty,
845
- "--un-numeric-figure": varEmpty,
846
- "--un-numeric-spacing": varEmpty,
847
- "--un-numeric-fraction": varEmpty
848
- };
849
- function toEntries(entry) {
850
- return {
851
- ...entry,
852
- "font-variant-numeric": "var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)"
853
- };
854
- }
855
- const fontVariantNumeric = [
856
- [/^ordinal$/, () => toEntries({ "--un-ordinal": "ordinal" }), { autocomplete: "ordinal" }],
857
- [/^slashed-zero$/, () => toEntries({ "--un-slashed-zero": "slashed-zero" }), { autocomplete: "slashed-zero" }],
858
- [/^lining-nums$/, () => toEntries({ "--un-numeric-figure": "lining-nums" }), { autocomplete: "lining-nums" }],
859
- [/^oldstyle-nums$/, () => toEntries({ "--un-numeric-figure": "oldstyle-nums" }), { autocomplete: "oldstyle-nums" }],
860
- [/^proportional-nums$/, () => toEntries({ "--un-numeric-spacing": "proportional-nums" }), { autocomplete: "proportional-nums" }],
861
- [/^tabular-nums$/, () => toEntries({ "--un-numeric-spacing": "tabular-nums" }), { autocomplete: "tabular-nums" }],
862
- [/^diagonal-fractions$/, () => toEntries({ "--un-numeric-fraction": "diagonal-fractions" }), { autocomplete: "diagonal-fractions" }],
863
- [/^stacked-fractions$/, () => toEntries({ "--un-numeric-fraction": "stacked-fractions" }), { autocomplete: "stacked-fractions" }],
864
- ["normal-nums", { "font-variant-numeric": "normal" }]
865
- ];
866
-
867
- const variablesAbbrMap = {
868
- "bg-blend": "background-blend-mode",
869
- "bg-clip": "-webkit-background-clip",
870
- "bg-gradient": "linear-gradient",
871
- "bg-image": "background-image",
872
- "bg-origin": "background-origin",
873
- "bg-position": "background-position",
874
- "bg-repeat": "background-repeat",
875
- "bg-size": "background-size",
876
- "mix-blend": "mix-blend-mode",
877
- "object": "object-fit",
878
- "object-position": "object-position",
879
- "write": "writing-mode",
880
- "write-orient": "text-orientation"
881
- };
882
- const cssVariables = [
883
- [/^(.+?)-(\$.+)$/, ([, name, varname]) => {
884
- const prop = variablesAbbrMap[name];
885
- if (prop)
886
- return { [prop]: h.cssvar(varname) };
887
- }]
888
- ];
889
-
890
- const viewTransition = [
891
- [/^view-transition-([\w-]+)$/, ([, name]) => {
892
- return { "view-transition-name": name };
893
- }]
894
- ];
895
-
896
- const rules = [
897
- _.cssVariables,
898
- cssVariables,
899
- _.cssProperty,
900
- container,
901
- _.contains,
902
- screenReadersAccess,
903
- _.pointerEvents,
904
- _.appearances,
905
- _.positions,
906
- _.insets,
907
- lineClamps,
908
- isolations,
909
- _.zIndexes,
910
- _.orders,
911
- _.grids,
912
- _.floats,
913
- _.margins,
914
- _.boxSizing,
915
- _.displays,
916
- _.aspectRatio,
917
- _.sizes,
918
- _.flex,
919
- tables,
920
- _.transforms,
921
- animations,
922
- _.cursors,
923
- touchActions,
924
- _.userSelects,
925
- _.resizes,
926
- scrolls,
927
- listStyle,
928
- _.appearance,
929
- columns,
930
- _.placements,
931
- _.alignments,
932
- _.justifies,
933
- _.gaps,
934
- _.flexGridJustifiesAlignments,
935
- spaces,
936
- divides,
937
- _.overflows,
938
- overscrolls,
939
- scrollBehaviors,
940
- _.textOverflows,
941
- _.whitespaces,
942
- _.breaks,
943
- _.borders,
944
- _.bgColors,
945
- backgroundStyles,
946
- _.colorScheme,
947
- _.svgUtilities,
948
- objectPositions,
949
- _.paddings,
950
- _.textAligns,
951
- _.textIndents,
952
- _.textWraps,
953
- _.verticalAligns,
954
- _.fonts,
955
- _.textTransforms,
956
- textTransforms,
957
- _.fontStyles,
958
- fontVariantNumeric,
959
- _.textDecorations,
960
- _.fontSmoothings,
961
- _.tabSizes,
962
- _.textStrokes,
963
- _.textShadows,
964
- hyphens,
965
- writingModes,
966
- writingOrientations,
967
- carets,
968
- accents,
969
- _.opacity,
970
- backgroundBlendModes,
971
- mixBlendModes,
972
- _.boxShadows,
973
- _.outline,
974
- _.rings,
975
- imageRenderings,
976
- filters,
977
- _.transitions,
978
- _.willChange,
979
- _.contentVisibility,
980
- _.contents,
981
- placeholders,
982
- _.containerParent,
983
- viewTransition,
984
- dynamicViewportHeight,
985
- // should be the last
986
- _.questionMark
987
- ].flat(1);
988
-
989
- const shortcuts = [
990
- ...containerShortcuts
991
- ];
992
-
993
- const theme = {
994
- ...theme$1,
995
- aria: {
996
- busy: 'busy="true"',
997
- checked: 'checked="true"',
998
- disabled: 'disabled="true"',
999
- expanded: 'expanded="true"',
1000
- hidden: 'hidden="true"',
1001
- pressed: 'pressed="true"',
1002
- readonly: 'readonly="true"',
1003
- required: 'required="true"',
1004
- selected: 'selected="true"'
1005
- },
1006
- animation: {
1007
- keyframes: {
1008
- "pulse": "{0%, 100% {opacity:1} 50% {opacity:.5}}",
1009
- "bounce": "{0%, 100% {transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1)} 50% {transform:translateY(0);animation-timing-function:cubic-bezier(0,0,0.2,1)}}",
1010
- "spin": "{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}",
1011
- "ping": "{0%{transform:scale(1);opacity:1}75%,100%{transform:scale(2);opacity:0}}",
1012
- "bounce-alt": "{from,20%,53%,80%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1);transform:translate3d(0,0,0)}40%,43%{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06);transform:translate3d(0,-30px,0)}70%{animation-timing-function:cubic-bezier(0.755,0.05,0.855,0.06);transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}",
1013
- "flash": "{from,50%,to{opacity:1}25%,75%{opacity:0}}",
1014
- "pulse-alt": "{from{transform:scale3d(1,1,1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scale3d(1,1,1)}}",
1015
- "rubber-band": "{from{transform:scale3d(1,1,1)}30%{transform:scale3d(1.25,0.75,1)}40%{transform:scale3d(0.75,1.25,1)}50%{transform:scale3d(1.15,0.85,1)}65%{transform:scale3d(0.95,1.05,1)}75%{transform:scale3d(1.05,0.95,1)}to{transform:scale3d(1,1,1)}}",
1016
- "shake-x": "{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(-10px,0,0)}20%,40%,60%,80%{transform:translate3d(10px,0,0)}}",
1017
- "shake-y": "{from,to{transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{transform:translate3d(0,-10px,0)}20%,40%,60%,80%{transform:translate3d(0,10px,0)}}",
1018
- "head-shake": "{0%{transform:translateX(0)}6.5%{transform:translateX(-6px) rotateY(-9deg)}18.5%{transform:translateX(5px) rotateY(7deg)}31.5%{transform:translateX(-3px) rotateY(-5deg)}43.5%{transform:translateX(2px) rotateY(3deg)}50%{transform:translateX(0)}}",
1019
- "swing": "{20%{transform:rotate3d(0,0,1,15deg)}40%{transform:rotate3d(0,0,1,-10deg)}60%{transform:rotate3d(0,0,1,5deg)}80%{transform:rotate3d(0,0,1,-5deg)}to{transform:rotate3d(0,0,1,0deg)}}",
1020
- "tada": "{from{transform:scale3d(1,1,1)}10%,20%{transform:scale3d(0.9,0.9,0.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{transform:scale3d(1,1,1)}}",
1021
- "wobble": "{from{transform:translate3d(0,0,0)}15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{transform:translate3d(0,0,0)}}",
1022
- "jello": "{from,11.1%,to{transform:translate3d(0,0,0)}22.2%{transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{transform:skewX(6.25deg) skewY(6.25deg)}44.4%{transform:skewX(-3.125deg)skewY(-3.125deg)}55.5%{transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{transform:skewX(-0.78125deg) skewY(-0.78125deg)}77.7%{transform:skewX(0.390625deg) skewY(0.390625deg)}88.8%{transform:skewX(-0.1953125deg) skewY(-0.1953125deg)}}",
1023
- "heart-beat": "{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}",
1024
- "hinge": "{0%{transform-origin:top left;animation-timing-function:ease-in-out}20%,60%{transform:rotate3d(0,0,1,80deg);transform-origin:top left;animation-timing-function:ease-in-out}40%,80%{transform:rotate3d(0,0,1,60deg);transform-origin:top left;animation-timing-function:ease-in-out}to{transform:translate3d(0,700px,0);opacity:0}}",
1025
- "jack-in-the-box": "{from{opacity:0;transform-origin:center bottom;transform:scale(0.1) rotate(30deg)}50%{transform:rotate(-10deg)}70%{transform:rotate(3deg)}to{transform:scale(1)}}",
1026
- "light-speed-in-left": "{from{opacity:0;transform:translate3d(-100%,0,0) skewX(-30deg)}60%{opacity:1;transform:skewX(20deg)}80%{transform:skewX(-5deg)}to{transform:translate3d(0,0,0)}}",
1027
- "light-speed-in-right": "{from{opacity:0;transform:translate3d(100%,0,0) skewX(-30deg)}60%{opacity:1;transform:skewX(20deg)}80%{transform:skewX(-5deg)}to{transform:translate3d(0,0,0)}}",
1028
- "light-speed-out-left": "{from{opacity:1}to{opacity:0;transform:translate3d(-100%,0,0) skewX(30deg)}}",
1029
- "light-speed-out-right": "{from{opacity:1}to{opacity:0;transform:translate3d(100%,0,0) skewX(30deg)}}",
1030
- "flip": "{from{transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,0) rotate3d(0,1,0,-360deg);animation-timing-function:ease-out}40%{transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);animation-timing-function:ease-out}50%{transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);animation-timing-function:ease-in}80%{transform:perspective(400px) scale3d(0.95,0.95,0.95) translate3d(0,0,0) rotate3d(0,1,0,0deg);animation-timing-function:ease-in}to{transform:perspective(400px) scale3d(1,1,1) translate3d(0,0,0) rotate3d(0,1,0,0deg);animation-timing-function:ease-in}}",
1031
- "flip-in-x": "{from{transform:perspective(400px) rotate3d(1,0,0,90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1,0,0,-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{transform:perspective(400px)}}",
1032
- "flip-in-y": "{from{transform:perspective(400px) rotate3d(0,1,0,90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(0,1,0,-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{transform:perspective(400px)}}",
1033
- "flip-out-x": "{from{transform:perspective(400px)}30%{transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}",
1034
- "flip-out-y": "{from{transform:perspective(400px)}30%{transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}",
1035
- "rotate-in": "{from{transform-origin:center;transform:rotate3d(0,0,1,-200deg);opacity:0}to{transform-origin:center;transform:translate3d(0,0,0);opacity:1}}",
1036
- "rotate-in-down-left": "{from{transform-origin:left bottom;transform:rotate3d(0,0,1,-45deg);opacity:0}to{transform-origin:left bottom;transform:translate3d(0,0,0);opacity:1}}",
1037
- "rotate-in-down-right": "{from{transform-origin:right bottom;transform:rotate3d(0,0,1,45deg);opacity:0}to{transform-origin:right bottom;transform:translate3d(0,0,0);opacity:1}}",
1038
- "rotate-in-up-left": "{from{transform-origin:left top;transform:rotate3d(0,0,1,45deg);opacity:0}to{transform-origin:left top;transform:translate3d(0,0,0);opacity:1}}",
1039
- "rotate-in-up-right": "{from{transform-origin:right bottom;transform:rotate3d(0,0,1,-90deg);opacity:0}to{transform-origin:right bottom;transform:translate3d(0,0,0);opacity:1}}",
1040
- "rotate-out": "{from{transform-origin:center;opacity:1}to{transform-origin:center;transform:rotate3d(0,0,1,200deg);opacity:0}}",
1041
- "rotate-out-down-left": "{from{transform-origin:left bottom;opacity:1}to{transform-origin:left bottom;transform:rotate3d(0,0,1,45deg);opacity:0}}",
1042
- "rotate-out-down-right": "{from{transform-origin:right bottom;opacity:1}to{transform-origin:right bottom;transform:rotate3d(0,0,1,-45deg);opacity:0}}",
1043
- "rotate-out-up-left": "{from{transform-origin:left bottom;opacity:1}to{transform-origin:left bottom;transform:rotate3d(0,0,1,-45deg);opacity:0}}",
1044
- "rotate-out-up-right": "{from{transform-origin:right bottom;opacity:1}to{transform-origin:left bottom;transform:rotate3d(0,0,1,90deg);opacity:0}}",
1045
- "roll-in": "{from{opacity:0;transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;transform:translate3d(0,0,0)}}",
1046
- "roll-out": "{from{opacity:1}to{opacity:0;transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}",
1047
- "zoom-in": "{from{opacity:0;transform:scale3d(0.3,0.3,0.3)}50%{opacity:1}}",
1048
- "zoom-in-down": "{from{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(0,-1000px,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}60%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}",
1049
- "zoom-in-left": "{from{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}60%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}",
1050
- "zoom-in-right": "{from{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(1000px,0,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}60%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(-10px,0,0);animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}",
1051
- "zoom-in-up": "{from{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(0,1000px,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}60%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}",
1052
- "zoom-out": "{from{opacity:1}50%{opacity:0;transform:scale3d(0.3,0.3,0.3)}to{opacity:0}}",
1053
- "zoom-out-down": "{40%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(0,-60px,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}to{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(0,2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}",
1054
- "zoom-out-left": "{40%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(42px,0,0)}to{opacity:0;transform:scale(0.1) translate3d(-2000px,0,0);transform-origin:left center}}",
1055
- "zoom-out-right": "{40%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(-42px,0,0)}to{opacity:0;transform:scale(0.1) translate3d(2000px,0,0);transform-origin:right center}}",
1056
- "zoom-out-up": "{40%{opacity:1;transform:scale3d(0.475,0.475,0.475) translate3d(0,60px,0);animation-timing-function:cubic-bezier(0.55,0.055,0.675,0.19)}to{opacity:0;transform:scale3d(0.1,0.1,0.1) translate3d(0,-2000px,0);transform-origin:center bottom;animation-timing-function:cubic-bezier(0.175,0.885,0.32,1)}}",
1057
- "bounce-in": "{from,20%,40%,60%,80%,to{animation-timing-function:ease-in-out}0%{opacity:0;transform:scale3d(0.3,0.3,0.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(0.9,0.9,0.9)}60%{transform:scale3d(1.03,1.03,1.03);opacity:1}80%{transform:scale3d(0.97,0.97,0.97)}to{opacity:1;transform:scale3d(1,1,1)}}",
1058
- "bounce-in-down": "{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:translate3d(0,0,0)}}",
1059
- "bounce-in-left": "{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:translate3d(0,0,0)}}",
1060
- "bounce-in-right": "{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:translate3d(0,0,0)}}",
1061
- "bounce-in-up": "{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translate3d(0,0,0)}}",
1062
- "bounce-out": "{20%{transform:scale3d(0.9,0.9,0.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(0.3,0.3,0.3)}}",
1063
- "bounce-out-down": "{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}",
1064
- "bounce-out-left": "{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}",
1065
- "bounce-out-right": "{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}",
1066
- "bounce-out-up": "{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}",
1067
- "slide-in-down": "{from{transform:translate3d(0,-100%,0);visibility:visible}to{transform:translate3d(0,0,0)}}",
1068
- "slide-in-left": "{from{transform:translate3d(-100%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}",
1069
- "slide-in-right": "{from{transform:translate3d(100%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}",
1070
- "slide-in-up": "{from{transform:translate3d(0,100%,0);visibility:visible}to{transform:translate3d(0,0,0)}}",
1071
- "slide-out-down": "{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,100%,0)}}",
1072
- "slide-out-left": "{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(-100%,0,0)}}",
1073
- "slide-out-right": "{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(100%,0,0)}}",
1074
- "slide-out-up": "{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,-100%,0)}}",
1075
- "fade-in": "{from{opacity:0}to{opacity:1}}",
1076
- "fade-in-down": "{from{opacity:0;transform:translate3d(0,-100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1077
- "fade-in-down-big": "{from{opacity:0;transform:translate3d(0,-2000px,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1078
- "fade-in-left": "{from{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1079
- "fade-in-left-big": "{from{opacity:0;transform:translate3d(-2000px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1080
- "fade-in-right": "{from{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1081
- "fade-in-right-big": "{from{opacity:0;transform:translate3d(2000px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1082
- "fade-in-up": "{from{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1083
- "fade-in-up-big": "{from{opacity:0;transform:translate3d(0,2000px,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1084
- "fade-in-top-left": "{from{opacity:0;transform:translate3d(-100%,-100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1085
- "fade-in-top-right": "{from{opacity:0;transform:translate3d(100%,-100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1086
- "fade-in-bottom-left": "{from{opacity:0;transform:translate3d(-100%,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1087
- "fade-in-bottom-right": "{from{opacity:0;transform:translate3d(100%,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}",
1088
- "fade-out": "{from{opacity:1}to{opacity:0}}",
1089
- "fade-out-down": "{from{opacity:1}to{opacity:0;transform:translate3d(0,100%,0)}}",
1090
- "fade-out-down-big": "{from{opacity:1}to{opacity:0;transform:translate3d(0,2000px,0)}}",
1091
- "fade-out-left": "{from{opacity:1}to{opacity:0;transform:translate3d(-100%,0,0)}}",
1092
- "fade-out-left-big": "{from{opacity:1}to{opacity:0;transform:translate3d(-2000px,0,0)}}",
1093
- "fade-out-right": "{from{opacity:1}to{opacity:0;transform:translate3d(100%,0,0)}}",
1094
- "fade-out-right-big": "{from{opacity:1}to{opacity:0;transform:translate3d(2000px,0,0)}}",
1095
- "fade-out-up": "{from{opacity:1}to{opacity:0;transform:translate3d(0,-100%,0)}}",
1096
- "fade-out-up-big": "{from{opacity:1}to{opacity:0;transform:translate3d(0,-2000px,0)}}",
1097
- "fade-out-top-left": "{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(-100%,-100%,0)}}",
1098
- "fade-out-top-right": "{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(100%,-100%,0)}}",
1099
- "fade-out-bottom-left": "{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(-100%,100%,0)}}",
1100
- "fade-out-bottom-right": "{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(100%,100%,0)}}",
1101
- "back-in-up": "{0%{opacity:0.7;transform:translateY(1200px) scale(0.7)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:1;transform:scale(1)}}",
1102
- "back-in-down": "{0%{opacity:0.7;transform:translateY(-1200px) scale(0.7)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:1;transform:scale(1)}}",
1103
- "back-in-right": "{0%{opacity:0.7;transform:translateX(2000px) scale(0.7)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:1;transform:scale(1)}}",
1104
- "back-in-left": "{0%{opacity:0.7;transform:translateX(-2000px) scale(0.7)}80%{opacity:0.7;transform:translateX(0px) scale(0.7)}100%{opacity:1;transform:scale(1)}}",
1105
- "back-out-up": "{0%{opacity:1;transform:scale(1)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:0.7;transform:translateY(-700px) scale(0.7)}}",
1106
- "back-out-down": "{0%{opacity:1;transform:scale(1)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:0.7;transform:translateY(700px) scale(0.7)}}",
1107
- "back-out-right": "{0%{opacity:1;transform:scale(1)}80%{opacity:0.7;transform:translateY(0px) scale(0.7)}100%{opacity:0.7;transform:translateX(2000px) scale(0.7)}}",
1108
- "back-out-left": "{0%{opacity:1;transform:scale(1)}80%{opacity:0.7;transform:translateX(-2000px) scale(0.7)}100%{opacity:0.7;transform:translateY(-700px) scale(0.7)}}"
1109
- },
1110
- durations: {
1111
- "pulse": "2s",
1112
- "heart-beat": "1.3s",
1113
- "bounce-in": "0.75s",
1114
- "bounce-out": "0.75s",
1115
- "flip-out-x": "0.75s",
1116
- "flip-out-y": "0.75s",
1117
- "hinge": "2s"
1118
- },
1119
- timingFns: {
1120
- "pulse": "cubic-bezier(0.4,0,.6,1)",
1121
- "ping": "cubic-bezier(0,0,.2,1)",
1122
- "head-shake": "ease-in-out",
1123
- "heart-beat": "ease-in-out",
1124
- "pulse-alt": "ease-in-out",
1125
- "light-speed-in-left": "ease-out",
1126
- "light-speed-in-right": "ease-out",
1127
- "light-speed-out-left": "ease-in",
1128
- "light-speed-out-right": "ease-in"
1129
- },
1130
- properties: {
1131
- "bounce-alt": { "transform-origin": "center bottom" },
1132
- "jello": { "transform-origin": "center" },
1133
- "swing": { "transform-origin": "top center" },
1134
- "flip": { "backface-visibility": "visible" },
1135
- "flip-in-x": { "backface-visibility": "visible !important" },
1136
- "flip-in-y": { "backface-visibility": "visible !important" },
1137
- "flip-out-x": { "backface-visibility": "visible !important" },
1138
- "flip-out-y": { "backface-visibility": "visible !important" },
1139
- "rotate-in": { "transform-origin": "center" },
1140
- "rotate-in-down-left": { "transform-origin": "left bottom" },
1141
- "rotate-in-down-right": { "transform-origin": "right bottom" },
1142
- "rotate-in-up-left": { "transform-origin": "left bottom" },
1143
- "rotate-in-up-right": { "transform-origin": "right bottom" },
1144
- "rotate-out": { "transform-origin": "center" },
1145
- "rotate-out-down-left": { "transform-origin": "left bottom" },
1146
- "rotate-out-down-right": { "transform-origin": "right bottom" },
1147
- "rotate-out-up-left": { "transform-origin": "left bottom" },
1148
- "rotate-out-up-right": { "transform-origin": "right bottom" },
1149
- "hinge": { "transform-origin": "top left" },
1150
- "zoom-out-down": { "transform-origin": "center bottom" },
1151
- "zoom-out-left": { "transform-origin": "left center" },
1152
- "zoom-out-right": { "transform-origin": "right center" },
1153
- "zoom-out-up": { "transform-origin": "center bottom" }
1154
- },
1155
- counts: {
1156
- "spin": "infinite",
1157
- "ping": "infinite",
1158
- "pulse": "infinite",
1159
- "pulse-alt": "infinite",
1160
- "bounce": "infinite",
1161
- "bounce-alt": "infinite"
1162
- },
1163
- category: {
1164
- "pulse": "Attention Seekers",
1165
- "bounce": "Attention Seekers",
1166
- "spin": "Attention Seekers",
1167
- "ping": "Attention Seekers",
1168
- "bounce-alt": "Attention Seekers",
1169
- "flash": "Attention Seekers",
1170
- "pulse-alt": "Attention Seekers",
1171
- "rubber-band": "Attention Seekers",
1172
- "shake-x": "Attention Seekers",
1173
- "shake-y": "Attention Seekers",
1174
- "head-shake": "Attention Seekers",
1175
- "swing": "Attention Seekers",
1176
- "tada": "Attention Seekers",
1177
- "wobble": "Attention Seekers",
1178
- "jello": "Attention Seekers",
1179
- "heart-beat": "Attention Seekers",
1180
- "hinge": "Specials",
1181
- "jack-in-the-box": "Specials",
1182
- "light-speed-in-left": "Lightspeed",
1183
- "light-speed-in-right": "Lightspeed",
1184
- "light-speed-out-left": "Lightspeed",
1185
- "light-speed-out-right": "Lightspeed",
1186
- "flip": "Flippers",
1187
- "flip-in-x": "Flippers",
1188
- "flip-in-y": "Flippers",
1189
- "flip-out-x": "Flippers",
1190
- "flip-out-y": "Flippers",
1191
- "rotate-in": "Rotating Entrances",
1192
- "rotate-in-down-left": "Rotating Entrances",
1193
- "rotate-in-down-right": "Rotating Entrances",
1194
- "rotate-in-up-left": "Rotating Entrances",
1195
- "rotate-in-up-right": "Rotating Entrances",
1196
- "rotate-out": "Rotating Exits",
1197
- "rotate-out-down-left": "Rotating Exits",
1198
- "rotate-out-down-right": "Rotating Exits",
1199
- "rotate-out-up-left": "Rotating Exits",
1200
- "rotate-out-up-right": "Rotating Exits",
1201
- "roll-in": "Specials",
1202
- "roll-out": "Specials",
1203
- "zoom-in": "Zooming Entrances",
1204
- "zoom-in-down": "Zooming Entrances",
1205
- "zoom-in-left": "Zooming Entrances",
1206
- "zoom-in-right": "Zooming Entrances",
1207
- "zoom-in-up": "Zooming Entrances",
1208
- "zoom-out": "Zooming Exits",
1209
- "zoom-out-down": "Zooming Exits",
1210
- "zoom-out-left": "Zooming Exits",
1211
- "zoom-out-right": "Zooming Exits",
1212
- "zoom-out-up": "Zooming Exits",
1213
- "bounce-in": "Bouncing Entrances",
1214
- "bounce-in-down": "Bouncing Entrances",
1215
- "bounce-in-left": "Bouncing Entrances",
1216
- "bounce-in-right": "Bouncing Entrances",
1217
- "bounce-in-up": "Bouncing Entrances",
1218
- "bounce-out": "Bouncing Exits",
1219
- "bounce-out-down": "Bouncing Exits",
1220
- "bounce-out-left": "Bouncing Exits",
1221
- "bounce-out-right": "Bouncing Exits",
1222
- "bounce-out-up": "Bouncing Exits",
1223
- "slide-in-down": "Sliding Entrances",
1224
- "slide-in-left": "Sliding Entrances",
1225
- "slide-in-right": "Sliding Entrances",
1226
- "slide-in-up": "Sliding Entrances",
1227
- "slide-out-down": "Sliding Exits",
1228
- "slide-out-left": "Sliding Exits",
1229
- "slide-out-right": "Sliding Exits",
1230
- "slide-out-up": "Sliding Exits",
1231
- "fade-in": "Fading Entrances",
1232
- "fade-in-down": "Fading Entrances",
1233
- "fade-in-down-big": "Fading Entrances",
1234
- "fade-in-left": "Fading Entrances",
1235
- "fade-in-left-big": "Fading Entrances",
1236
- "fade-in-right": "Fading Entrances",
1237
- "fade-in-right-big": "Fading Entrances",
1238
- "fade-in-up": "Fading Entrances",
1239
- "fade-in-up-big": "Fading Entrances",
1240
- "fade-in-top-left": "Fading Entrances",
1241
- "fade-in-top-right": "Fading Entrances",
1242
- "fade-in-bottom-left": "Fading Entrances",
1243
- "fade-in-bottom-right": "Fading Entrances",
1244
- "fade-out": "Fading Exits",
1245
- "fade-out-down": "Fading Exits",
1246
- "fade-out-down-big": "Fading Exits",
1247
- "fade-out-left": "Fading Exits",
1248
- "fade-out-left-big": "Fading Exits",
1249
- "fade-out-right": "Fading Exits",
1250
- "fade-out-right-big": "Fading Exits",
1251
- "fade-out-up": "Fading Exits",
1252
- "fade-out-up-big": "Fading Exits",
1253
- "fade-out-top-left": "Fading Exits",
1254
- "fade-out-top-right": "Fading Exits",
1255
- "fade-out-bottom-left": "Fading Exits",
1256
- "fade-out-bottom-right": "Fading Exits",
1257
- "back-in-up": "Back Entrances",
1258
- "back-in-down": "Back Entrances",
1259
- "back-in-right": "Back Entrances",
1260
- "back-in-left": "Back Entrances",
1261
- "back-out-up": "Back Exits",
1262
- "back-out-down": "Back Exits",
1263
- "back-out-right": "Back Exits",
1264
- "back-out-left": "Back Exits"
1265
- }
1266
- },
1267
- media: {
1268
- portrait: "(orientation: portrait)",
1269
- landscape: "(orientation: landscape)",
1270
- os_dark: "(prefers-color-scheme: dark)",
1271
- os_light: "(prefers-color-scheme: light)",
1272
- motion_ok: "(prefers-reduced-motion: no-preference)",
1273
- motion_not_ok: "(prefers-reduced-motion: reduce)",
1274
- high_contrast: "(prefers-contrast: high)",
1275
- low_contrast: "(prefers-contrast: low)",
1276
- opacity_ok: "(prefers-reduced-transparency: no-preference)",
1277
- opacity_not_ok: "(prefers-reduced-transparency: reduce)",
1278
- use_data_ok: "(prefers-reduced-data: no-preference)",
1279
- use_data_not_ok: "(prefers-reduced-data: reduce)",
1280
- touch: "(hover: none) and (pointer: coarse)",
1281
- stylus: "(hover: none) and (pointer: fine)",
1282
- pointer: "(hover) and (pointer: coarse)",
1283
- mouse: "(hover) and (pointer: fine)",
1284
- hd_color: "(dynamic-range: high)"
1285
- },
1286
- supports: {
1287
- grid: "(display: grid)"
1288
- },
1289
- preflightBase: {
1290
- ...transformBase,
1291
- ...touchActionBase,
1292
- ...scrollSnapTypeBase,
1293
- ...fontVariantNumericBase,
1294
- ...borderSpacingBase,
1295
- ...boxShadowsBase,
1296
- ...ringBase,
1297
- ...filterBase,
1298
- ...backdropFilterBase
1299
- }
1300
- };
1301
-
1302
- const variantCombinators = [
1303
- variantMatcher("svg", (input) => ({ selector: `${input.selector} svg` }))
1304
- ];
1305
-
1306
- const variantColorsScheme = [
1307
- variantMatcher(".dark", (input) => ({ prefix: `.dark $$ ${input.prefix}` })),
1308
- variantMatcher(".light", (input) => ({ prefix: `.light $$ ${input.prefix}` })),
1309
- variantParentMatcher("@dark", "@media (prefers-color-scheme: dark)"),
1310
- variantParentMatcher("@light", "@media (prefers-color-scheme: light)")
1311
- ];
1312
-
1313
- const variantContrasts = [
1314
- variantParentMatcher("contrast-more", "@media (prefers-contrast: more)"),
1315
- variantParentMatcher("contrast-less", "@media (prefers-contrast: less)")
1316
- ];
1317
- const variantMotions = [
1318
- variantParentMatcher("motion-reduce", "@media (prefers-reduced-motion: reduce)"),
1319
- variantParentMatcher("motion-safe", "@media (prefers-reduced-motion: no-preference)")
1320
- ];
1321
- const variantOrientations = [
1322
- variantParentMatcher("landscape", "@media (orientation: landscape)"),
1323
- variantParentMatcher("portrait", "@media (orientation: portrait)")
1324
- ];
1325
-
1326
- const variantSpaceAndDivide = (matcher) => {
1327
- if (matcher.startsWith("_"))
1328
- return;
1329
- if (/space-[xy]-.+$/.test(matcher) || /divide-/.test(matcher)) {
1330
- return {
1331
- matcher,
1332
- selector: (input) => {
1333
- const not = ">:not([hidden])~:not([hidden])";
1334
- return input.includes(not) ? input : `${input}${not}`;
1335
- }
1336
- };
1337
- }
1338
- };
1339
- const variantStickyHover = [
1340
- variantMatcher$1("@hover", (input) => ({
1341
- parent: `${input.parent ? `${input.parent} $$ ` : ""}@media (hover: hover) and (pointer: fine)`,
1342
- selector: `${input.selector || ""}:hover`
1343
- }))
1344
- ];
1345
-
1346
- const placeholderModifier = (input, { theme }) => {
1347
- const m = input.match(/^(.*)\b(placeholder-)(.+)$/);
1348
- if (m) {
1349
- const [, pre = "", p, body] = m;
1350
- if (hasParseableColor(body, theme, "accentColor") || hasOpacityValue(body)) {
1351
- return {
1352
- // Append `placeholder-$ ` (with space!) to the rule to be matched.
1353
- // The `placeholder-` is added for placeholder variant processing, and
1354
- // the `$ ` is added for rule matching after `placeholder-` is removed by the variant.
1355
- // See rules/placeholder.
1356
- matcher: `${pre}placeholder-$ ${p}${body}`
1357
- };
1358
- }
1359
- }
1360
- };
1361
- function hasOpacityValue(body) {
1362
- const match = body.match(/^op(?:acity)?-?(.+)$/);
1363
- if (match && match[1] != null)
1364
- return h.bracket.percent(match[1]) != null;
1365
- return false;
1366
- }
1367
-
1368
- function variants(options) {
1369
- return [
1370
- placeholderModifier,
1371
- variantSpaceAndDivide,
1372
- ...variants$1(options),
1373
- ...variantContrasts,
1374
- ...variantOrientations,
1375
- ...variantMotions,
1376
- ...variantCombinators,
1377
- ...variantColorsScheme,
1378
- ...variantStickyHover
1379
- ];
1380
- }
1381
-
1382
46
  const presetWind = definePreset((options = {}) => {
1383
47
  options.important = options.important ?? false;
1384
48
  return {