@unocss/preset-mini 0.44.4 → 0.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,268 +1,290 @@
1
- import { c as colors } from './colors.mjs';
2
- import { t as transformBase, b as boxShadowsBase, r as ringBase } from './transform.mjs';
1
+ import { d as displays, b as borders, c as contents, f as fonts, t as tabSizes, a as textIndents, e as textOverflows, g as textDecorations, h as textStrokes, i as textShadows, j as textTransforms, k as textAligns, l as fontStyles, m as fontSmoothings, n as boxShadows, r as rings, p as positions, o as cursors, q as appearances, s as pointerEvents, u as resizes, v as verticalAligns, w as userSelects, x as whitespaces, y as breaks, z as overflows, A as outline, B as appearance, C as orders, D as justifies, E as alignments, F as placements, G as insets, H as floats, I as zIndexes, J as boxSizing, K as transitions, L as transforms, M as willChange } from './decoration.mjs';
2
+ import { h as handler, c as colorResolver, n as numberWithUnitRE, r as resolveVerticalBreakpoints, l as resolveBreakpoints, o as directionSize } from './colors.mjs';
3
+ import '@unocss/core';
3
4
 
4
- const fontFamily = {
5
- sans: [
6
- "ui-sans-serif",
7
- "system-ui",
8
- "-apple-system",
9
- "BlinkMacSystemFont",
10
- '"Segoe UI"',
11
- "Roboto",
12
- '"Helvetica Neue"',
13
- "Arial",
14
- '"Noto Sans"',
15
- "sans-serif",
16
- '"Apple Color Emoji"',
17
- '"Segoe UI Emoji"',
18
- '"Segoe UI Symbol"',
19
- '"Noto Color Emoji"'
20
- ].join(","),
21
- serif: [
22
- "ui-serif",
23
- "Georgia",
24
- "Cambria",
25
- '"Times New Roman"',
26
- "Times",
27
- "serif"
28
- ].join(","),
29
- mono: [
30
- "ui-monospace",
31
- "SFMono-Regular",
32
- "Menlo",
33
- "Monaco",
34
- "Consolas",
35
- '"Liberation Mono"',
36
- '"Courier New"',
37
- "monospace"
38
- ].join(",")
39
- };
40
- const fontSize = {
41
- "xs": ["0.75rem", "1rem"],
42
- "sm": ["0.875rem", "1.25rem"],
43
- "base": ["1rem", "1.5rem"],
44
- "lg": ["1.125rem", "1.75rem"],
45
- "xl": ["1.25rem", "1.75rem"],
46
- "2xl": ["1.5rem", "2rem"],
47
- "3xl": ["1.875rem", "2.25rem"],
48
- "4xl": ["2.25rem", "2.5rem"],
49
- "5xl": ["3rem", "1"],
50
- "6xl": ["3.75rem", "1"],
51
- "7xl": ["4.5rem", "1"],
52
- "8xl": ["6rem", "1"],
53
- "9xl": ["8rem", "1"]
54
- };
55
- const textIndent = {
56
- "DEFAULT": "1.5rem",
57
- "xs": "0.5rem",
58
- "sm": "1rem",
59
- "md": "1.5rem",
60
- "lg": "2rem",
61
- "xl": "2.5rem",
62
- "2xl": "3rem",
63
- "3xl": "4rem"
64
- };
65
- const textStrokeWidth = {
66
- DEFAULT: "1.5rem",
67
- none: "0",
68
- sm: "thin",
69
- md: "medium",
70
- lg: "thick"
71
- };
72
- const textShadow = {
73
- DEFAULT: ["0 0 1px rgba(0,0,0,0.2)", "0 0 1px rgba(1,0,5,0.1)"],
74
- none: "0 0 rgba(0,0,0,0)",
75
- sm: "1px 1px 3px rgba(36,37,47,0.25)",
76
- md: ["0 1px 2px rgba(30,29,39,0.19)", "1px 2px 4px rgba(54,64,147,0.18)"],
77
- lg: ["3px 3px 6px rgba(0,0,0,0.26)", "0 0 5px rgba(15,3,86,0.22)"],
78
- xl: ["1px 1px 3px rgba(0,0,0,0.29)", "2px 4px 7px rgba(73,64,125,0.35)"]
79
- };
80
- const lineHeight = {
81
- none: "1",
82
- tight: "1.25",
83
- snug: "1.375",
84
- normal: "1.5",
85
- relaxed: "1.625",
86
- loose: "2"
87
- };
88
- const letterSpacing = {
89
- tighter: "-0.05em",
90
- tight: "-0.025em",
91
- normal: "0em",
92
- wide: "0.025em",
93
- wider: "0.05em",
94
- widest: "0.1em"
95
- };
96
- const wordSpacing = letterSpacing;
5
+ const opacity = [
6
+ [/^op(?:acity)?-?(.+)$/, ([, d]) => ({ opacity: handler.bracket.percent.cssvar(d) })]
7
+ ];
8
+ const textColors = [
9
+ [/^(?:color|c)-(.+)$/, colorResolver("color", "text"), { autocomplete: "(text|color|c)-$colors" }],
10
+ [/^text-(.+)$/, colorResolver("color", "text", (css) => !css.color?.toString().match(numberWithUnitRE)), { autocomplete: "(text|color|c)-$colors" }],
11
+ [/^(?:text|color|c)-op(?:acity)?-?(.+)$/, ([, opacity2]) => ({ "--un-text-opacity": handler.bracket.percent(opacity2) }), { autocomplete: "(text|color|c)-(op|opacity)-<percent>" }]
12
+ ];
13
+ const bgColors = [
14
+ [/^bg-(.+)$/, colorResolver("background-color", "bg"), { autocomplete: "bg-$colors" }],
15
+ [/^bg-op(?:acity)?-?(.+)$/, ([, opacity2]) => ({ "--un-bg-opacity": handler.bracket.percent(opacity2) }), { autocomplete: "bg-(op|opacity)-<percent>" }]
16
+ ];
97
17
 
98
- const breakpoints = {
99
- "sm": "640px",
100
- "md": "768px",
101
- "lg": "1024px",
102
- "xl": "1280px",
103
- "2xl": "1536px"
104
- };
105
- const verticalBreakpoints = { ...breakpoints };
106
- const lineWidth = {
107
- DEFAULT: "1px",
108
- none: "0px"
109
- };
110
- const spacing = {
111
- "DEFAULT": "1rem",
112
- "none": "0rem",
113
- "xs": "0.75rem",
114
- "sm": "0.875rem",
115
- "lg": "1.125rem",
116
- "xl": "1.25rem",
117
- "2xl": "1.5rem",
118
- "3xl": "1.875rem",
119
- "4xl": "2.25rem",
120
- "5xl": "3rem",
121
- "6xl": "3.75rem",
122
- "7xl": "4.5rem",
123
- "8xl": "6rem",
124
- "9xl": "8rem"
125
- };
126
- const duration = {
127
- DEFAULT: "150ms",
128
- none: "0ms",
129
- 75: "75ms",
130
- 100: "100ms",
131
- 150: "150ms",
132
- 200: "200ms",
133
- 300: "300ms",
134
- 500: "500ms",
135
- 700: "700ms",
136
- 1e3: "1000ms"
137
- };
138
- const borderRadius = {
139
- "DEFAULT": "0.25rem",
140
- "none": "0rem",
141
- "sm": "0.125rem",
142
- "md": "0.375rem",
143
- "lg": "0.5rem",
144
- "xl": "0.75rem",
145
- "2xl": "1rem",
146
- "3xl": "1.5rem",
147
- "full": "9999px"
148
- };
149
- const boxShadow = {
150
- "DEFAULT": ["var(--un-shadow-inset) 0 1px 3px 0 rgba(0,0,0,0.1)", "var(--un-shadow-inset) 0 1px 2px -1px rgba(0,0,0,0.1)"],
151
- "none": "0 0 rgba(0,0,0,0)",
152
- "sm": "var(--un-shadow-inset) 0 1px 2px 0 rgba(0,0,0,0.05)",
153
- "md": ["var(--un-shadow-inset) 0 4px 6px -1px rgba(0,0,0,0.1)", "var(--un-shadow-inset) 0 2px 4px -2px rgba(0,0,0,0.1)"],
154
- "lg": ["var(--un-shadow-inset) 0 10px 15px -3px rgba(0,0,0,0.1)", "var(--un-shadow-inset) 0 4px 6px -4px rgba(0,0,0,0.1)"],
155
- "xl": ["var(--un-shadow-inset) 0 20px 25px -5px rgba(0,0,0,0.1)", "var(--un-shadow-inset) 0 8px 10px -6px rgba(0,0,0,0.1)"],
156
- "2xl": "var(--un-shadow-inset) 0 25px 50px -12px rgba(0,0,0,0.25)",
157
- "inner": "inset 0 2px 4px 0 rgba(0,0,0,0.05)"
158
- };
159
- const easing = {
160
- "DEFAULT": "cubic-bezier(0.4, 0, 0.2, 1)",
161
- "linear": "linear",
162
- "in": "cubic-bezier(0.4, 0, 1, 1)",
163
- "out": "cubic-bezier(0, 0, 0.2, 1)",
164
- "in-out": "cubic-bezier(0.4, 0, 0.2, 1)"
165
- };
166
- const ringWidth = {
167
- DEFAULT: "1px",
168
- none: "0px"
169
- };
18
+ const flex = [
19
+ ["flex", { display: "flex" }],
20
+ ["inline-flex", { display: "inline-flex" }],
21
+ ["flex-inline", { display: "inline-flex" }],
22
+ [/^flex-(.*)$/, ([, d]) => ({ flex: handler.bracket(d) != null ? handler.bracket(d).split(" ").map((e) => handler.cssvar.fraction(e) ?? e).join(" ") : handler.cssvar.fraction(d) })],
23
+ ["flex-1", { flex: "1 1 0%" }],
24
+ ["flex-auto", { flex: "1 1 auto" }],
25
+ ["flex-initial", { flex: "0 1 auto" }],
26
+ ["flex-none", { flex: "none" }],
27
+ [/^(?:flex-)?shrink(?:-(.*))?$/, ([, d = ""]) => ({ "flex-shrink": handler.bracket.cssvar.number(d) ?? 1 }), { autocomplete: ["flex-shrink-<num>", "shrink-<num>"] }],
28
+ [/^(?:flex-)?grow(?:-(.*))?$/, ([, d = ""]) => ({ "flex-grow": handler.bracket.cssvar.number(d) ?? 1 }), { autocomplete: ["flex-grow-<num>", "grow-<num>"] }],
29
+ [/^(?:flex-)?basis-(.+)$/, ([, d], { theme }) => ({ "flex-basis": theme.spacing?.[d] ?? handler.bracket.cssvar.auto.fraction.rem(d) }), { autocomplete: ["flex-basis-$spacing", "basis-$spacing"] }],
30
+ ["flex-row", { "flex-direction": "row" }],
31
+ ["flex-row-reverse", { "flex-direction": "row-reverse" }],
32
+ ["flex-col", { "flex-direction": "column" }],
33
+ ["flex-col-reverse", { "flex-direction": "column-reverse" }],
34
+ ["flex-wrap", { "flex-wrap": "wrap" }],
35
+ ["flex-wrap-reverse", { "flex-wrap": "wrap-reverse" }],
36
+ ["flex-nowrap", { "flex-wrap": "nowrap" }]
37
+ ];
170
38
 
171
- const blur = {
172
- "DEFAULT": "8px",
173
- "0": "0",
174
- "sm": "4px",
175
- "md": "12px",
176
- "lg": "16px",
177
- "xl": "24px",
178
- "2xl": "40px",
179
- "3xl": "64px"
39
+ const directions = {
40
+ "": "",
41
+ "x": "column-",
42
+ "y": "row-"
180
43
  };
181
- const dropShadow = {
182
- "DEFAULT": ["0 1px 2px rgba(0,0,0,0.1)", "0 1px 1px rgba(0,0,0,0.06)"],
183
- "sm": "0 1px 1px rgba(0,0,0,0.05)",
184
- "md": ["0 4px 3px rgba(0,0,0,0.07)", "0 2px 2px rgba(0,0,0,0.06)"],
185
- "lg": ["0 10px 8px rgba(0,0,0,0.04)", "0 4px 3px rgba(0,0,0,0.1)"],
186
- "xl": ["0 20px 13px rgba(0,0,0,0.03)", "0 8px 5px rgba(0,0,0,0.08)"],
187
- "2xl": "0 25px 25px rgba(0,0,0,0.15)",
188
- "none": "0 0 rgba(0,0,0,0)"
44
+ const handleGap = ([, d = "", s], { theme }) => {
45
+ const v = theme.spacing?.[s] ?? handler.bracket.cssvar.global.rem(s);
46
+ if (v != null) {
47
+ return {
48
+ [`grid-${directions[d]}gap`]: v,
49
+ [`${directions[d]}gap`]: v
50
+ };
51
+ }
189
52
  };
53
+ const gaps = [
54
+ [/^(?:flex-|grid-)?gap-?()(.+)$/, handleGap, { autocomplete: ["gap-$spacing", "gap-<num>"] }],
55
+ [/^(?:flex-|grid-)?gap-([xy])-?(.+)$/, handleGap, { autocomplete: ["gap-(x|y)-$spacing", "gap-(x|y)-<num>"] }]
56
+ ];
190
57
 
191
- const baseSize = {
192
- "xs": "20rem",
193
- "sm": "24rem",
194
- "md": "28rem",
195
- "lg": "32rem",
196
- "xl": "36rem",
197
- "2xl": "42rem",
198
- "3xl": "48rem",
199
- "4xl": "56rem",
200
- "5xl": "64rem",
201
- "6xl": "72rem",
202
- "7xl": "80rem",
203
- "prose": "65ch"
204
- };
205
- const width = {
206
- auto: "auto",
207
- ...baseSize,
208
- screen: "100vw"
209
- };
210
- const maxWidth = {
211
- none: "none",
212
- ...baseSize,
213
- screen: "100vw"
214
- };
215
- const height = {
216
- auto: "auto",
217
- ...baseSize,
218
- screen: "100vh"
219
- };
220
- const maxHeight = {
221
- none: "none",
222
- ...baseSize,
223
- screen: "100vh"
58
+ const rowCol = (s) => s.replace("col", "column");
59
+ const rowColTheme = (s) => s[0] === "r" ? "Row" : "Column";
60
+ const autoDirection = (c, theme, prop) => {
61
+ const v = theme[`gridAuto${rowColTheme(c)}`]?.[prop];
62
+ if (v != null)
63
+ return v;
64
+ switch (prop) {
65
+ case "min":
66
+ return "min-content";
67
+ case "max":
68
+ return "max-content";
69
+ case "fr":
70
+ return "minmax(0,1fr)";
71
+ }
72
+ return handler.bracket.cssvar.auto.rem(prop);
224
73
  };
74
+ const grids = [
75
+ ["grid", { display: "grid" }],
76
+ ["inline-grid", { display: "inline-grid" }],
77
+ [/^(?:grid-)?(row|col)-(.+)$/, ([, c, v], { theme }) => ({
78
+ [`grid-${rowCol(c)}`]: theme[`grid${rowColTheme(c)}`]?.[v] ?? handler.bracket.cssvar.auto(v)
79
+ })],
80
+ [/^(?:grid-)?(row|col)-span-(.+)$/, ([, c, s]) => {
81
+ if (s === "full")
82
+ return { [`grid-${rowCol(c)}`]: "1/-1" };
83
+ const v = handler.bracket.number(s);
84
+ if (v != null)
85
+ return { [`grid-${rowCol(c)}`]: `span ${v}/span ${v}` };
86
+ }, { autocomplete: ["grid-(row|col)-span-<num>", "(row|col)-span-<num>"] }],
87
+ [/^(?:grid-)?(row|col)-start-(.+)$/, ([, c, v]) => ({ [`grid-${rowCol(c)}-start`]: handler.bracket.cssvar(v) ?? v })],
88
+ [/^(?:grid-)?(row|col)-end-(.+)$/, ([, c, v]) => ({ [`grid-${rowCol(c)}-end`]: handler.bracket.cssvar(v) ?? v }), { autocomplete: ["grid-(row|col)-(start|end)-<num>"] }],
89
+ [/^(?:grid-)?auto-(rows|cols)-(.+)$/, ([, c, v], { theme }) => ({ [`grid-auto-${rowCol(c)}`]: autoDirection(c, theme, v) }), { autocomplete: ["grid-auto-(rows|cols)-<num>"] }],
90
+ [/^(?:grid-auto-flow|auto-flow|grid-flow)-(.+)$/, ([, v]) => ({ "grid-auto-flow": handler.bracket.cssvar(v) })],
91
+ [/^(?:grid-auto-flow|auto-flow|grid-flow)-(row|col|dense|row-dense|col-dense)$/, ([, v]) => ({ "grid-auto-flow": rowCol(v).replace("-", " ") }), { autocomplete: ["(grid-auto-flow|auto-flow|grid-flow)-(row|col|dense|row-dense|col-dense)"] }],
92
+ [/^grid-(rows|cols)-(.+)$/, ([, c, v], { theme }) => ({
93
+ [`grid-template-${rowCol(c)}`]: theme[`gridTemplate${rowColTheme(c)}`]?.[v] ?? handler.bracket.cssvar(v)
94
+ })],
95
+ [/^grid-(rows|cols)-minmax-([\w.-]+)$/, ([, c, d]) => ({ [`grid-template-${rowCol(c)}`]: `repeat(auto-fill,minmax(${d},1fr))` })],
96
+ [/^grid-(rows|cols)-(\d+)$/, ([, c, d]) => ({ [`grid-template-${rowCol(c)}`]: `repeat(${d},minmax(0,1fr))` }), { autocomplete: ["grid-(rows|cols)-<num>", "grid-(rows|cols)-none"] }],
97
+ ["grid-rows-none", { "grid-template-rows": "none" }],
98
+ ["grid-cols-none", { "grid-template-columns": "none" }]
99
+ ];
225
100
 
226
- const preflightBase = {
227
- ...transformBase,
228
- ...boxShadowsBase,
229
- ...ringBase
101
+ const sizeMapping = {
102
+ h: "height",
103
+ w: "width",
104
+ inline: "inline-size",
105
+ block: "block-size"
230
106
  };
107
+ function getPropName(minmax, hw) {
108
+ return `${minmax || ""}${sizeMapping[hw]}`;
109
+ }
110
+ function getSizeValue(minmax, hw, theme, prop) {
111
+ const str = getPropName(minmax, hw).replace(/-(\w)/g, (_, p) => p.toUpperCase());
112
+ const v = theme[str]?.[prop];
113
+ if (v != null)
114
+ return v;
115
+ switch (prop) {
116
+ case "fit":
117
+ case "max":
118
+ case "min":
119
+ return `${prop}-content`;
120
+ }
121
+ return handler.bracket.cssvar.global.auto.fraction.rem(prop);
122
+ }
123
+ const sizes = [
124
+ [/^(min-|max-)?([wh])-?(.+)$/, ([, m, w, s], { theme }) => ({ [getPropName(m, w)]: getSizeValue(m, w, theme, s) })],
125
+ [/^(min-|max-)?(block|inline)-(.+)$/, ([, m, w, s], { theme }) => ({ [getPropName(m, w)]: getSizeValue(m, w, theme, s) }), {
126
+ autocomplete: [
127
+ "(w|h)-$width|height|maxWidth|maxHeight|minWidth|minHeight|inlineSize|blockSize|maxInlineSize|maxBlockSize|minInlineSize|minBlockSize",
128
+ "(block|inline)-$width|height|maxWidth|maxHeight|minWidth|minHeight|inlineSize|blockSize|maxInlineSize|maxBlockSize|minInlineSize|minBlockSize",
129
+ "(max|min)-(w|h|block|inline)",
130
+ "(max|min)-(w|h|block|inline)-$width|height|maxWidth|maxHeight|minWidth|minHeight|inlineSize|blockSize|maxInlineSize|maxBlockSize|minInlineSize|minBlockSize"
131
+ ]
132
+ }],
133
+ [/^(min-|max-)?(h)-screen-(.+)$/, ([, m, w, s], context) => ({ [getPropName(m, w)]: resolveVerticalBreakpoints(context)?.[s] })],
134
+ [/^(min-|max-)?(w)-screen-(.+)$/, ([, m, w, s], context) => ({ [getPropName(m, w)]: resolveBreakpoints(context)?.[s] }), {
135
+ autocomplete: [
136
+ "(w|h)-screen",
137
+ "(min|max)-(w|h)-screen",
138
+ "h-screen-$verticalBreakpoints",
139
+ "(min|max)-h-screen-$verticalBreakpoints",
140
+ "w-screen-$breakpoints",
141
+ "(min|max)-w-screen-$breakpoints"
142
+ ]
143
+ }]
144
+ ];
145
+ function getAspectRatio(prop) {
146
+ if (/^\d+\/\d+$/.test(prop))
147
+ return prop;
148
+ switch (prop) {
149
+ case "square":
150
+ return "1/1";
151
+ case "video":
152
+ return "16/9";
153
+ }
154
+ return handler.bracket.cssvar.global.auto.number(prop);
155
+ }
156
+ const aspectRatio = [
157
+ [/^aspect-(?:ratio-)?(.+)$/, ([, d]) => ({ "aspect-ratio": getAspectRatio(d) }), { autocomplete: ["aspect-(square|video|ratio)", "aspect-ratio-(square|video)"] }]
158
+ ];
159
+
160
+ const paddings = [
161
+ [/^pa?()-?(-?.+)$/, directionSize("padding"), { autocomplete: ["(m|p)<num>", "(m|p)-<num>"] }],
162
+ [/^p-?xy()()$/, directionSize("padding"), { autocomplete: "(m|p)-(xy)" }],
163
+ [/^p-?([xy])(?:-?(-?.+))?$/, directionSize("padding")],
164
+ [/^p-?([rltbse])(?:-?(-?.+))?$/, directionSize("padding"), { autocomplete: "(m|p)<directions>-<num>" }],
165
+ [/^p-(block|inline)(?:-(-?.+))?$/, directionSize("padding"), { autocomplete: "(m|p)-(block|inline)-<num>" }],
166
+ [/^p-?([bi][se])(?:-?(-?.+))?$/, directionSize("padding"), { autocomplete: "(m|p)-(bs|be|is|ie)-<num>" }]
167
+ ];
168
+ const margins = [
169
+ [/^ma?()-?(-?.+)$/, directionSize("margin")],
170
+ [/^m-?xy()()$/, directionSize("margin")],
171
+ [/^m-?([xy])(?:-?(-?.+))?$/, directionSize("margin")],
172
+ [/^m-?([rltbse])(?:-?(-?.+))?$/, directionSize("margin")],
173
+ [/^m-(block|inline)(?:-(-?.+))?$/, directionSize("margin")],
174
+ [/^m-?([bi][se])(?:-?(-?.+))?$/, directionSize("margin")]
175
+ ];
231
176
 
232
- const theme = {
233
- width,
234
- height,
235
- maxWidth,
236
- maxHeight,
237
- minWidth: maxWidth,
238
- minHeight: maxHeight,
239
- inlineSize: width,
240
- blockSize: height,
241
- maxInlineSize: maxWidth,
242
- maxBlockSize: maxHeight,
243
- minInlineSize: maxWidth,
244
- minBlockSize: maxHeight,
245
- colors,
246
- fontFamily,
247
- fontSize,
248
- breakpoints,
249
- verticalBreakpoints,
250
- borderRadius,
251
- lineHeight,
252
- letterSpacing,
253
- wordSpacing,
254
- boxShadow,
255
- textIndent,
256
- textShadow,
257
- textStrokeWidth,
258
- blur,
259
- dropShadow,
260
- easing,
261
- lineWidth,
262
- spacing,
263
- duration,
264
- ringWidth,
265
- preflightBase
177
+ const variablesAbbrMap = {
178
+ backface: "backface-visibility",
179
+ break: "word-break",
180
+ case: "text-transform",
181
+ content: "align-content",
182
+ fw: "font-weight",
183
+ items: "align-items",
184
+ justify: "justify-content",
185
+ select: "user-select",
186
+ self: "align-self",
187
+ vertical: "vertical-align",
188
+ visible: "visibility",
189
+ whitespace: "white-space",
190
+ ws: "white-space"
266
191
  };
192
+ const cssVariables = [
193
+ [/^(.+?)-(\$.+)$/, ([, name, varname]) => {
194
+ const prop = variablesAbbrMap[name];
195
+ if (prop)
196
+ return { [prop]: handler.cssvar(varname) };
197
+ }]
198
+ ];
199
+ const cssProperty = [
200
+ [/^\[([\w_-]+):([^'"]+)\]$/, ([, prop, value]) => ({ [prop]: handler.bracket(`[${value}]`) })]
201
+ ];
202
+
203
+ const questionMark = [
204
+ [
205
+ /^(where|\?)$/,
206
+ (_, { constructCSS, generator }) => {
207
+ if (generator.userConfig.envMode === "dev")
208
+ return `@keyframes __un_qm{0%{box-shadow:inset 4px 4px #ff1e90, inset -4px -4px #ff1e90}100%{box-shadow:inset 8px 8px #3399ff, inset -8px -8px #3399ff}}
209
+ ${constructCSS({ animation: "__un_qm 0.5s ease-in-out alternate infinite" })}`;
210
+ }
211
+ ]
212
+ ];
213
+
214
+ const svgUtilities = [
215
+ [/^fill-(.+)$/, colorResolver("fill", "fill"), { autocomplete: "fill-$colors" }],
216
+ [/^fill-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-fill-opacity": handler.bracket.percent(opacity) }), { autocomplete: "fill-(op|opacity)-<percent>" }],
217
+ ["fill-none", { fill: "none" }],
218
+ [/^stroke-(?:width-|size-)?(.+)$/, ([, s], { theme }) => ({ "stroke-width": theme.lineWidth?.[s] ?? handler.bracket.cssvar.fraction.px.number(s) }), { autocomplete: ["stroke-width-$lineWidth", "stroke-size-$lineWidth"] }],
219
+ [/^stroke-dash-(.+)$/, ([, s]) => ({ "stroke-dasharray": handler.bracket.cssvar.number(s) }), { autocomplete: "stroke-dash-<num>" }],
220
+ [/^stroke-offset-(.+)$/, ([, s], { theme }) => ({ "stroke-dashoffset": theme.lineWidth?.[s] ?? handler.bracket.cssvar.px.numberWithUnit(s) }), { autocomplete: "stroke-offset-$lineWidth" }],
221
+ [/^stroke-(.+)$/, colorResolver("stroke", "stroke"), { autocomplete: "stroke-$colors" }],
222
+ [/^stroke-op(?:acity)?-?(.+)$/, ([, opacity]) => ({ "--un-stroke-opacity": handler.bracket.percent(opacity) }), { autocomplete: "stroke-(op|opacity)-<percent>" }],
223
+ ["stroke-cap-square", { "stroke-linecap": "square" }],
224
+ ["stroke-cap-round", { "stroke-linecap": "round" }],
225
+ ["stroke-cap-auto", { "stroke-linecap": "butt" }],
226
+ ["stroke-join-arcs", { "stroke-linejoin": "arcs" }],
227
+ ["stroke-join-bevel", { "stroke-linejoin": "bevel" }],
228
+ ["stroke-join-clip", { "stroke-linejoin": "miter-clip" }],
229
+ ["stroke-join-round", { "stroke-linejoin": "round" }],
230
+ ["stroke-join-auto", { "stroke-linejoin": "miter" }],
231
+ ["stroke-none", { stroke: "none" }]
232
+ ];
233
+
234
+ const rules = [
235
+ cssVariables,
236
+ cssProperty,
237
+ paddings,
238
+ margins,
239
+ displays,
240
+ opacity,
241
+ bgColors,
242
+ svgUtilities,
243
+ borders,
244
+ contents,
245
+ fonts,
246
+ tabSizes,
247
+ textIndents,
248
+ textOverflows,
249
+ textDecorations,
250
+ textStrokes,
251
+ textShadows,
252
+ textTransforms,
253
+ textAligns,
254
+ textColors,
255
+ fontStyles,
256
+ fontSmoothings,
257
+ boxShadows,
258
+ rings,
259
+ flex,
260
+ grids,
261
+ gaps,
262
+ positions,
263
+ sizes,
264
+ aspectRatio,
265
+ cursors,
266
+ appearances,
267
+ pointerEvents,
268
+ resizes,
269
+ verticalAligns,
270
+ userSelects,
271
+ whitespaces,
272
+ breaks,
273
+ overflows,
274
+ outline,
275
+ appearance,
276
+ orders,
277
+ justifies,
278
+ alignments,
279
+ placements,
280
+ insets,
281
+ floats,
282
+ zIndexes,
283
+ boxSizing,
284
+ transitions,
285
+ transforms,
286
+ willChange,
287
+ questionMark
288
+ ].flat(1);
267
289
 
268
- export { fontSize as a, blur as b, textIndent as c, dropShadow as d, textStrokeWidth as e, fontFamily as f, textShadow as g, letterSpacing as h, breakpoints as i, lineWidth as j, duration as k, lineHeight as l, borderRadius as m, boxShadow as n, easing as o, baseSize as p, width as q, ringWidth as r, spacing as s, theme as t, maxWidth as u, verticalBreakpoints as v, wordSpacing as w, height as x, maxHeight as y, preflightBase as z };
290
+ export { grids as a, bgColors as b, aspectRatio as c, svgUtilities as d, cssVariables as e, flex as f, gaps as g, cssProperty as h, margins as m, opacity as o, paddings as p, questionMark as q, rules as r, sizes as s, textColors as t };