@pikacss/core 0.0.46 → 0.0.47
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.d.mts +802 -720
- package/dist/index.mjs +1351 -175
- package/package.json +2 -1
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,840 @@
|
|
|
1
|
-
//#region src/internal/
|
|
2
|
-
const
|
|
3
|
-
|
|
1
|
+
//#region src/internal/generated-shorthand-map.ts
|
|
2
|
+
const PROPERTY_EFFECTS = {
|
|
3
|
+
"accent-color": ["accent-color"],
|
|
4
|
+
"align-content": ["align-content"],
|
|
5
|
+
"align-items": ["align-items"],
|
|
6
|
+
"align-self": ["align-self"],
|
|
7
|
+
"align-tracks": ["align-tracks"],
|
|
8
|
+
"alignment-baseline": ["alignment-baseline"],
|
|
9
|
+
"all": ["all"],
|
|
10
|
+
"anchor-name": ["anchor-name"],
|
|
11
|
+
"anchor-scope": ["anchor-scope"],
|
|
12
|
+
"animation": [
|
|
13
|
+
"animation-delay",
|
|
14
|
+
"animation-direction",
|
|
15
|
+
"animation-duration",
|
|
16
|
+
"animation-fill-mode",
|
|
17
|
+
"animation-iteration-count",
|
|
18
|
+
"animation-name",
|
|
19
|
+
"animation-play-state",
|
|
20
|
+
"animation-timeline",
|
|
21
|
+
"animation-timing-function"
|
|
22
|
+
],
|
|
23
|
+
"animation-composition": ["animation-composition"],
|
|
24
|
+
"animation-delay": ["animation-delay"],
|
|
25
|
+
"animation-direction": ["animation-direction"],
|
|
26
|
+
"animation-duration": ["animation-duration"],
|
|
27
|
+
"animation-fill-mode": ["animation-fill-mode"],
|
|
28
|
+
"animation-iteration-count": ["animation-iteration-count"],
|
|
29
|
+
"animation-name": ["animation-name"],
|
|
30
|
+
"animation-play-state": ["animation-play-state"],
|
|
31
|
+
"animation-range": ["animation-range-end", "animation-range-start"],
|
|
32
|
+
"animation-range-end": ["animation-range-end"],
|
|
33
|
+
"animation-range-start": ["animation-range-start"],
|
|
34
|
+
"animation-timeline": ["animation-timeline"],
|
|
35
|
+
"animation-timing-function": ["animation-timing-function"],
|
|
36
|
+
"animation-trigger": ["animation-trigger"],
|
|
37
|
+
"appearance": ["appearance"],
|
|
38
|
+
"aspect-ratio": ["aspect-ratio"],
|
|
39
|
+
"backdrop-filter": ["backdrop-filter"],
|
|
40
|
+
"backface-visibility": ["backface-visibility"],
|
|
41
|
+
"background": [
|
|
42
|
+
"background-attachment",
|
|
43
|
+
"background-clip",
|
|
44
|
+
"background-color",
|
|
45
|
+
"background-image",
|
|
46
|
+
"background-origin",
|
|
47
|
+
"background-position-x",
|
|
48
|
+
"background-position-y",
|
|
49
|
+
"background-repeat",
|
|
50
|
+
"background-size"
|
|
51
|
+
],
|
|
52
|
+
"background-attachment": ["background-attachment"],
|
|
53
|
+
"background-blend-mode": ["background-blend-mode"],
|
|
54
|
+
"background-clip": ["background-clip"],
|
|
55
|
+
"background-color": ["background-color"],
|
|
56
|
+
"background-image": ["background-image"],
|
|
57
|
+
"background-origin": ["background-origin"],
|
|
58
|
+
"background-position": ["background-position-x", "background-position-y"],
|
|
59
|
+
"background-position-x": ["background-position-x"],
|
|
60
|
+
"background-position-y": ["background-position-y"],
|
|
61
|
+
"background-repeat": ["background-repeat"],
|
|
62
|
+
"background-size": ["background-size"],
|
|
63
|
+
"baseline-shift": ["baseline-shift"],
|
|
64
|
+
"baseline-source": ["baseline-source"],
|
|
65
|
+
"block-size": ["block-size"],
|
|
66
|
+
"border": [
|
|
67
|
+
"border-bottom-color",
|
|
68
|
+
"border-left-color",
|
|
69
|
+
"border-right-color",
|
|
70
|
+
"border-top-color",
|
|
71
|
+
"border-bottom-style",
|
|
72
|
+
"border-left-style",
|
|
73
|
+
"border-right-style",
|
|
74
|
+
"border-top-style",
|
|
75
|
+
"border-bottom-width",
|
|
76
|
+
"border-left-width",
|
|
77
|
+
"border-right-width",
|
|
78
|
+
"border-top-width"
|
|
79
|
+
],
|
|
80
|
+
"border-block": [
|
|
81
|
+
"border-block-end-color",
|
|
82
|
+
"border-block-start-color",
|
|
83
|
+
"border-block-end-style",
|
|
84
|
+
"border-block-start-style",
|
|
85
|
+
"border-block-end-width",
|
|
86
|
+
"border-block-start-width"
|
|
87
|
+
],
|
|
88
|
+
"border-block-color": ["border-block-end-color", "border-block-start-color"],
|
|
89
|
+
"border-block-end": [
|
|
90
|
+
"border-block-end-color",
|
|
91
|
+
"border-block-end-style",
|
|
92
|
+
"border-block-end-width"
|
|
93
|
+
],
|
|
94
|
+
"border-block-end-color": ["border-block-end-color"],
|
|
95
|
+
"border-block-end-style": ["border-block-end-style"],
|
|
96
|
+
"border-block-end-width": ["border-block-end-width"],
|
|
97
|
+
"border-block-start": [
|
|
98
|
+
"border-block-start-color",
|
|
99
|
+
"border-block-start-style",
|
|
100
|
+
"border-block-start-width"
|
|
101
|
+
],
|
|
102
|
+
"border-block-start-color": ["border-block-start-color"],
|
|
103
|
+
"border-block-start-style": ["border-block-start-style"],
|
|
104
|
+
"border-block-start-width": ["border-block-start-width"],
|
|
105
|
+
"border-block-style": ["border-block-end-style", "border-block-start-style"],
|
|
106
|
+
"border-block-width": ["border-block-end-width", "border-block-start-width"],
|
|
107
|
+
"border-bottom": [
|
|
108
|
+
"border-bottom-color",
|
|
109
|
+
"border-bottom-style",
|
|
110
|
+
"border-bottom-width"
|
|
111
|
+
],
|
|
112
|
+
"border-bottom-color": ["border-bottom-color"],
|
|
113
|
+
"border-bottom-left-radius": ["border-bottom-left-radius"],
|
|
114
|
+
"border-bottom-right-radius": ["border-bottom-right-radius"],
|
|
115
|
+
"border-bottom-style": ["border-bottom-style"],
|
|
116
|
+
"border-bottom-width": ["border-bottom-width"],
|
|
117
|
+
"border-collapse": ["border-collapse"],
|
|
118
|
+
"border-color": [
|
|
119
|
+
"border-bottom-color",
|
|
120
|
+
"border-left-color",
|
|
121
|
+
"border-right-color",
|
|
122
|
+
"border-top-color"
|
|
123
|
+
],
|
|
124
|
+
"border-end-end-radius": ["border-end-end-radius"],
|
|
125
|
+
"border-end-start-radius": ["border-end-start-radius"],
|
|
126
|
+
"border-image": [
|
|
127
|
+
"border-image-outset",
|
|
128
|
+
"border-image-repeat",
|
|
129
|
+
"border-image-slice",
|
|
130
|
+
"border-image-source",
|
|
131
|
+
"border-image-width"
|
|
132
|
+
],
|
|
133
|
+
"border-image-outset": ["border-image-outset"],
|
|
134
|
+
"border-image-repeat": ["border-image-repeat"],
|
|
135
|
+
"border-image-slice": ["border-image-slice"],
|
|
136
|
+
"border-image-source": ["border-image-source"],
|
|
137
|
+
"border-image-width": ["border-image-width"],
|
|
138
|
+
"border-inline": [
|
|
139
|
+
"border-inline-end-color",
|
|
140
|
+
"border-inline-start-color",
|
|
141
|
+
"border-inline-end-style",
|
|
142
|
+
"border-inline-start-style",
|
|
143
|
+
"border-inline-end-width",
|
|
144
|
+
"border-inline-start-width"
|
|
145
|
+
],
|
|
146
|
+
"border-inline-color": ["border-inline-end-color", "border-inline-start-color"],
|
|
147
|
+
"border-inline-end": [
|
|
148
|
+
"border-inline-end-color",
|
|
149
|
+
"border-inline-end-style",
|
|
150
|
+
"border-inline-end-width"
|
|
151
|
+
],
|
|
152
|
+
"border-inline-end-color": ["border-inline-end-color"],
|
|
153
|
+
"border-inline-end-style": ["border-inline-end-style"],
|
|
154
|
+
"border-inline-end-width": ["border-inline-end-width"],
|
|
155
|
+
"border-inline-start": [
|
|
156
|
+
"border-inline-start-color",
|
|
157
|
+
"border-inline-start-style",
|
|
158
|
+
"border-inline-start-width"
|
|
159
|
+
],
|
|
160
|
+
"border-inline-start-color": ["border-inline-start-color"],
|
|
161
|
+
"border-inline-start-style": ["border-inline-start-style"],
|
|
162
|
+
"border-inline-start-width": ["border-inline-start-width"],
|
|
163
|
+
"border-inline-style": ["border-inline-end-style", "border-inline-start-style"],
|
|
164
|
+
"border-inline-width": ["border-inline-end-width", "border-inline-start-width"],
|
|
165
|
+
"border-left": [
|
|
166
|
+
"border-left-color",
|
|
167
|
+
"border-left-style",
|
|
168
|
+
"border-left-width"
|
|
169
|
+
],
|
|
170
|
+
"border-left-color": ["border-left-color"],
|
|
171
|
+
"border-left-style": ["border-left-style"],
|
|
172
|
+
"border-left-width": ["border-left-width"],
|
|
173
|
+
"border-radius": [
|
|
174
|
+
"border-bottom-left-radius",
|
|
175
|
+
"border-bottom-right-radius",
|
|
176
|
+
"border-top-left-radius",
|
|
177
|
+
"border-top-right-radius"
|
|
178
|
+
],
|
|
179
|
+
"border-right": [
|
|
180
|
+
"border-right-color",
|
|
181
|
+
"border-right-style",
|
|
182
|
+
"border-right-width"
|
|
183
|
+
],
|
|
184
|
+
"border-right-color": ["border-right-color"],
|
|
185
|
+
"border-right-style": ["border-right-style"],
|
|
186
|
+
"border-right-width": ["border-right-width"],
|
|
187
|
+
"border-spacing": ["border-spacing"],
|
|
188
|
+
"border-start-end-radius": ["border-start-end-radius"],
|
|
189
|
+
"border-start-start-radius": ["border-start-start-radius"],
|
|
190
|
+
"border-style": [
|
|
191
|
+
"border-bottom-style",
|
|
192
|
+
"border-left-style",
|
|
193
|
+
"border-right-style",
|
|
194
|
+
"border-top-style"
|
|
195
|
+
],
|
|
196
|
+
"border-top": [
|
|
197
|
+
"border-top-color",
|
|
198
|
+
"border-top-style",
|
|
199
|
+
"border-top-width"
|
|
200
|
+
],
|
|
201
|
+
"border-top-color": ["border-top-color"],
|
|
202
|
+
"border-top-left-radius": ["border-top-left-radius"],
|
|
203
|
+
"border-top-right-radius": ["border-top-right-radius"],
|
|
204
|
+
"border-top-style": ["border-top-style"],
|
|
205
|
+
"border-top-width": ["border-top-width"],
|
|
206
|
+
"border-width": [
|
|
207
|
+
"border-bottom-width",
|
|
208
|
+
"border-left-width",
|
|
209
|
+
"border-right-width",
|
|
210
|
+
"border-top-width"
|
|
211
|
+
],
|
|
212
|
+
"bottom": ["bottom"],
|
|
213
|
+
"box-align": ["box-align"],
|
|
214
|
+
"box-decoration-break": ["box-decoration-break"],
|
|
215
|
+
"box-direction": ["box-direction"],
|
|
216
|
+
"box-flex": ["box-flex"],
|
|
217
|
+
"box-flex-group": ["box-flex-group"],
|
|
218
|
+
"box-lines": ["box-lines"],
|
|
219
|
+
"box-ordinal-group": ["box-ordinal-group"],
|
|
220
|
+
"box-orient": ["box-orient"],
|
|
221
|
+
"box-pack": ["box-pack"],
|
|
222
|
+
"box-shadow": ["box-shadow"],
|
|
223
|
+
"box-sizing": ["box-sizing"],
|
|
224
|
+
"break-after": ["break-after"],
|
|
225
|
+
"break-before": ["break-before"],
|
|
226
|
+
"break-inside": ["break-inside"],
|
|
227
|
+
"caption-side": ["caption-side"],
|
|
228
|
+
"caret": [
|
|
229
|
+
"caret-animation",
|
|
230
|
+
"caret-color",
|
|
231
|
+
"caret-shape"
|
|
232
|
+
],
|
|
233
|
+
"caret-animation": ["caret-animation"],
|
|
234
|
+
"caret-color": ["caret-color"],
|
|
235
|
+
"caret-shape": ["caret-shape"],
|
|
236
|
+
"clear": ["clear"],
|
|
237
|
+
"clip": ["clip"],
|
|
238
|
+
"clip-path": ["clip-path"],
|
|
239
|
+
"clip-rule": ["clip-rule"],
|
|
240
|
+
"color": ["color"],
|
|
241
|
+
"color-interpolation-filters": ["color-interpolation-filters"],
|
|
242
|
+
"color-scheme": ["color-scheme"],
|
|
243
|
+
"column-count": ["column-count"],
|
|
244
|
+
"column-fill": ["column-fill"],
|
|
245
|
+
"column-gap": ["column-gap"],
|
|
246
|
+
"column-height": ["column-height"],
|
|
247
|
+
"column-rule": [
|
|
248
|
+
"column-rule-color",
|
|
249
|
+
"column-rule-style",
|
|
250
|
+
"column-rule-width"
|
|
251
|
+
],
|
|
252
|
+
"column-rule-color": ["column-rule-color"],
|
|
253
|
+
"column-rule-style": ["column-rule-style"],
|
|
254
|
+
"column-rule-width": ["column-rule-width"],
|
|
255
|
+
"column-span": ["column-span"],
|
|
256
|
+
"column-width": ["column-width"],
|
|
257
|
+
"column-wrap": ["column-wrap"],
|
|
258
|
+
"columns": [
|
|
259
|
+
"column-count",
|
|
260
|
+
"column-height",
|
|
261
|
+
"column-width"
|
|
262
|
+
],
|
|
263
|
+
"contain": ["contain"],
|
|
264
|
+
"contain-intrinsic-block-size": ["contain-intrinsic-block-size"],
|
|
265
|
+
"contain-intrinsic-height": ["contain-intrinsic-height"],
|
|
266
|
+
"contain-intrinsic-inline-size": ["contain-intrinsic-inline-size"],
|
|
267
|
+
"contain-intrinsic-size": ["contain-intrinsic-height", "contain-intrinsic-width"],
|
|
268
|
+
"contain-intrinsic-width": ["contain-intrinsic-width"],
|
|
269
|
+
"container": ["container-name", "container-type"],
|
|
270
|
+
"container-name": ["container-name"],
|
|
271
|
+
"container-type": ["container-type"],
|
|
272
|
+
"content": ["content"],
|
|
273
|
+
"content-visibility": ["content-visibility"],
|
|
274
|
+
"corner-block-end-shape": ["corner-end-end-shape", "corner-end-start-shape"],
|
|
275
|
+
"corner-block-start-shape": ["corner-start-end-shape", "corner-start-start-shape"],
|
|
276
|
+
"corner-bottom-left-shape": ["corner-bottom-left-shape"],
|
|
277
|
+
"corner-bottom-right-shape": ["corner-bottom-right-shape"],
|
|
278
|
+
"corner-bottom-shape": ["corner-bottom-left-shape", "corner-bottom-right-shape"],
|
|
279
|
+
"corner-end-end-shape": ["corner-end-end-shape"],
|
|
280
|
+
"corner-end-start-shape": ["corner-end-start-shape"],
|
|
281
|
+
"corner-inline-end-shape": ["corner-end-end-shape", "corner-start-end-shape"],
|
|
282
|
+
"corner-inline-start-shape": ["corner-start-end-shape", "corner-start-start-shape"],
|
|
283
|
+
"corner-left-shape": ["corner-bottom-left-shape", "corner-top-left-shape"],
|
|
284
|
+
"corner-right-shape": ["corner-bottom-right-shape", "corner-top-right-shape"],
|
|
285
|
+
"corner-shape": [
|
|
286
|
+
"corner-bottom-left-shape",
|
|
287
|
+
"corner-bottom-right-shape",
|
|
288
|
+
"corner-top-left-shape",
|
|
289
|
+
"corner-top-right-shape"
|
|
290
|
+
],
|
|
291
|
+
"corner-start-end-shape": ["corner-start-end-shape"],
|
|
292
|
+
"corner-start-start-shape": ["corner-start-start-shape"],
|
|
293
|
+
"corner-top-left-shape": ["corner-top-left-shape"],
|
|
294
|
+
"corner-top-right-shape": ["corner-top-right-shape"],
|
|
295
|
+
"corner-top-shape": ["corner-top-left-shape", "corner-top-right-shape"],
|
|
296
|
+
"counter-increment": ["counter-increment"],
|
|
297
|
+
"counter-reset": ["counter-reset"],
|
|
298
|
+
"counter-set": ["counter-set"],
|
|
299
|
+
"cursor": ["cursor"],
|
|
300
|
+
"cx": ["cx"],
|
|
301
|
+
"cy": ["cy"],
|
|
302
|
+
"d": ["d"],
|
|
303
|
+
"direction": ["direction"],
|
|
304
|
+
"display": ["display"],
|
|
305
|
+
"dominant-baseline": ["dominant-baseline"],
|
|
306
|
+
"dynamic-range-limit": ["dynamic-range-limit"],
|
|
307
|
+
"empty-cells": ["empty-cells"],
|
|
308
|
+
"field-sizing": ["field-sizing"],
|
|
309
|
+
"fill": ["fill"],
|
|
310
|
+
"fill-opacity": ["fill-opacity"],
|
|
311
|
+
"fill-rule": ["fill-rule"],
|
|
312
|
+
"filter": ["filter"],
|
|
313
|
+
"flex": [
|
|
314
|
+
"flex-basis",
|
|
315
|
+
"flex-grow",
|
|
316
|
+
"flex-shrink"
|
|
317
|
+
],
|
|
318
|
+
"flex-basis": ["flex-basis"],
|
|
319
|
+
"flex-direction": ["flex-direction"],
|
|
320
|
+
"flex-flow": ["flex-direction", "flex-wrap"],
|
|
321
|
+
"flex-grow": ["flex-grow"],
|
|
322
|
+
"flex-shrink": ["flex-shrink"],
|
|
323
|
+
"flex-wrap": ["flex-wrap"],
|
|
324
|
+
"float": ["float"],
|
|
325
|
+
"flood-color": ["flood-color"],
|
|
326
|
+
"flood-opacity": ["flood-opacity"],
|
|
327
|
+
"font": [
|
|
328
|
+
"font-family",
|
|
329
|
+
"font-size",
|
|
330
|
+
"font-stretch",
|
|
331
|
+
"font-style",
|
|
332
|
+
"font-variant-alternates",
|
|
333
|
+
"font-variant-caps",
|
|
334
|
+
"font-variant-east-asian",
|
|
335
|
+
"font-variant-emoji",
|
|
336
|
+
"font-variant-ligatures",
|
|
337
|
+
"font-variant-numeric",
|
|
338
|
+
"font-variant-position",
|
|
339
|
+
"font-weight",
|
|
340
|
+
"line-height"
|
|
341
|
+
],
|
|
342
|
+
"font-family": ["font-family"],
|
|
343
|
+
"font-feature-settings": ["font-feature-settings"],
|
|
344
|
+
"font-kerning": ["font-kerning"],
|
|
345
|
+
"font-language-override": ["font-language-override"],
|
|
346
|
+
"font-optical-sizing": ["font-optical-sizing"],
|
|
347
|
+
"font-palette": ["font-palette"],
|
|
348
|
+
"font-size": ["font-size"],
|
|
349
|
+
"font-size-adjust": ["font-size-adjust"],
|
|
350
|
+
"font-smooth": ["font-smooth"],
|
|
351
|
+
"font-stretch": ["font-stretch"],
|
|
352
|
+
"font-style": ["font-style"],
|
|
353
|
+
"font-synthesis": [
|
|
354
|
+
"font-synthesis-position",
|
|
355
|
+
"font-synthesis-small-caps",
|
|
356
|
+
"font-synthesis-style",
|
|
357
|
+
"font-synthesis-weight"
|
|
358
|
+
],
|
|
359
|
+
"font-synthesis-position": ["font-synthesis-position"],
|
|
360
|
+
"font-synthesis-small-caps": ["font-synthesis-small-caps"],
|
|
361
|
+
"font-synthesis-style": ["font-synthesis-style"],
|
|
362
|
+
"font-synthesis-weight": ["font-synthesis-weight"],
|
|
363
|
+
"font-variant": [
|
|
364
|
+
"font-variant-alternates",
|
|
365
|
+
"font-variant-caps",
|
|
366
|
+
"font-variant-east-asian",
|
|
367
|
+
"font-variant-emoji",
|
|
368
|
+
"font-variant-ligatures",
|
|
369
|
+
"font-variant-numeric",
|
|
370
|
+
"font-variant-position"
|
|
371
|
+
],
|
|
372
|
+
"font-variant-alternates": ["font-variant-alternates"],
|
|
373
|
+
"font-variant-caps": ["font-variant-caps"],
|
|
374
|
+
"font-variant-east-asian": ["font-variant-east-asian"],
|
|
375
|
+
"font-variant-emoji": ["font-variant-emoji"],
|
|
376
|
+
"font-variant-ligatures": ["font-variant-ligatures"],
|
|
377
|
+
"font-variant-numeric": ["font-variant-numeric"],
|
|
378
|
+
"font-variant-position": ["font-variant-position"],
|
|
379
|
+
"font-variation-settings": ["font-variation-settings"],
|
|
380
|
+
"font-weight": ["font-weight"],
|
|
381
|
+
"font-width": ["font-width"],
|
|
382
|
+
"forced-color-adjust": ["forced-color-adjust"],
|
|
383
|
+
"gap": ["column-gap", "row-gap"],
|
|
384
|
+
"grid": [
|
|
385
|
+
"column-gap",
|
|
386
|
+
"grid-auto-columns",
|
|
387
|
+
"grid-auto-flow",
|
|
388
|
+
"grid-auto-rows",
|
|
389
|
+
"grid-column-gap",
|
|
390
|
+
"grid-row-gap",
|
|
391
|
+
"grid-template-areas",
|
|
392
|
+
"grid-template-columns",
|
|
393
|
+
"grid-template-rows",
|
|
394
|
+
"row-gap"
|
|
395
|
+
],
|
|
396
|
+
"grid-area": [
|
|
397
|
+
"grid-column-end",
|
|
398
|
+
"grid-column-start",
|
|
399
|
+
"grid-row-end",
|
|
400
|
+
"grid-row-start"
|
|
401
|
+
],
|
|
402
|
+
"grid-auto-columns": ["grid-auto-columns"],
|
|
403
|
+
"grid-auto-flow": ["grid-auto-flow"],
|
|
404
|
+
"grid-auto-rows": ["grid-auto-rows"],
|
|
405
|
+
"grid-column": ["grid-column-end", "grid-column-start"],
|
|
406
|
+
"grid-column-end": ["grid-column-end"],
|
|
407
|
+
"grid-column-gap": ["grid-column-gap"],
|
|
408
|
+
"grid-column-start": ["grid-column-start"],
|
|
409
|
+
"grid-gap": ["grid-column-gap", "grid-row-gap"],
|
|
410
|
+
"grid-row": ["grid-row-end", "grid-row-start"],
|
|
411
|
+
"grid-row-end": ["grid-row-end"],
|
|
412
|
+
"grid-row-gap": ["grid-row-gap"],
|
|
413
|
+
"grid-row-start": ["grid-row-start"],
|
|
414
|
+
"grid-template": [
|
|
415
|
+
"grid-template-areas",
|
|
416
|
+
"grid-template-columns",
|
|
417
|
+
"grid-template-rows"
|
|
418
|
+
],
|
|
419
|
+
"grid-template-areas": ["grid-template-areas"],
|
|
420
|
+
"grid-template-columns": ["grid-template-columns"],
|
|
421
|
+
"grid-template-rows": ["grid-template-rows"],
|
|
422
|
+
"hanging-punctuation": ["hanging-punctuation"],
|
|
423
|
+
"height": ["height"],
|
|
424
|
+
"hyphenate-character": ["hyphenate-character"],
|
|
425
|
+
"hyphenate-limit-chars": ["hyphenate-limit-chars"],
|
|
426
|
+
"hyphens": ["hyphens"],
|
|
427
|
+
"image-orientation": ["image-orientation"],
|
|
428
|
+
"image-rendering": ["image-rendering"],
|
|
429
|
+
"image-resolution": ["image-resolution"],
|
|
430
|
+
"ime-mode": ["ime-mode"],
|
|
431
|
+
"initial-letter": ["initial-letter"],
|
|
432
|
+
"initial-letter-align": ["initial-letter-align"],
|
|
433
|
+
"inline-size": ["inline-size"],
|
|
434
|
+
"inset": [
|
|
435
|
+
"bottom",
|
|
436
|
+
"left",
|
|
437
|
+
"right",
|
|
438
|
+
"top"
|
|
439
|
+
],
|
|
440
|
+
"inset-block": ["inset-block-end", "inset-block-start"],
|
|
441
|
+
"inset-block-end": ["inset-block-end"],
|
|
442
|
+
"inset-block-start": ["inset-block-start"],
|
|
443
|
+
"inset-inline": ["inset-inline-end", "inset-inline-start"],
|
|
444
|
+
"inset-inline-end": ["inset-inline-end"],
|
|
445
|
+
"inset-inline-start": ["inset-inline-start"],
|
|
446
|
+
"interactivity": ["interactivity"],
|
|
447
|
+
"interest-delay": ["interest-delay-end", "interest-delay-start"],
|
|
448
|
+
"interest-delay-end": ["interest-delay-end"],
|
|
449
|
+
"interest-delay-start": ["interest-delay-start"],
|
|
450
|
+
"interpolate-size": ["interpolate-size"],
|
|
451
|
+
"isolation": ["isolation"],
|
|
452
|
+
"justify-content": ["justify-content"],
|
|
453
|
+
"justify-items": ["justify-items"],
|
|
454
|
+
"justify-self": ["justify-self"],
|
|
455
|
+
"justify-tracks": ["justify-tracks"],
|
|
456
|
+
"left": ["left"],
|
|
457
|
+
"letter-spacing": ["letter-spacing"],
|
|
458
|
+
"lighting-color": ["lighting-color"],
|
|
459
|
+
"line-break": ["line-break"],
|
|
460
|
+
"line-clamp": ["line-clamp"],
|
|
461
|
+
"line-height": ["line-height"],
|
|
462
|
+
"line-height-step": ["line-height-step"],
|
|
463
|
+
"list-style": [
|
|
464
|
+
"list-style-image",
|
|
465
|
+
"list-style-position",
|
|
466
|
+
"list-style-type"
|
|
467
|
+
],
|
|
468
|
+
"list-style-image": ["list-style-image"],
|
|
469
|
+
"list-style-position": ["list-style-position"],
|
|
470
|
+
"list-style-type": ["list-style-type"],
|
|
471
|
+
"margin": [
|
|
472
|
+
"margin-bottom",
|
|
473
|
+
"margin-left",
|
|
474
|
+
"margin-right",
|
|
475
|
+
"margin-top"
|
|
476
|
+
],
|
|
477
|
+
"margin-block": ["margin-block-end", "margin-block-start"],
|
|
478
|
+
"margin-block-end": ["margin-block-end"],
|
|
479
|
+
"margin-block-start": ["margin-block-start"],
|
|
480
|
+
"margin-bottom": ["margin-bottom"],
|
|
481
|
+
"margin-inline": ["margin-inline-end", "margin-inline-start"],
|
|
482
|
+
"margin-inline-end": ["margin-inline-end"],
|
|
483
|
+
"margin-inline-start": ["margin-inline-start"],
|
|
484
|
+
"margin-left": ["margin-left"],
|
|
485
|
+
"margin-right": ["margin-right"],
|
|
486
|
+
"margin-top": ["margin-top"],
|
|
487
|
+
"margin-trim": ["margin-trim"],
|
|
488
|
+
"marker": [
|
|
489
|
+
"marker-end",
|
|
490
|
+
"marker-mid",
|
|
491
|
+
"marker-start"
|
|
492
|
+
],
|
|
493
|
+
"marker-end": ["marker-end"],
|
|
494
|
+
"marker-mid": ["marker-mid"],
|
|
495
|
+
"marker-start": ["marker-start"],
|
|
496
|
+
"mask": [
|
|
497
|
+
"mask-clip",
|
|
498
|
+
"mask-composite",
|
|
499
|
+
"mask-image",
|
|
500
|
+
"mask-mode",
|
|
501
|
+
"mask-origin",
|
|
502
|
+
"mask-position",
|
|
503
|
+
"mask-repeat",
|
|
504
|
+
"mask-size"
|
|
505
|
+
],
|
|
506
|
+
"mask-border": [
|
|
507
|
+
"mask-border-mode",
|
|
508
|
+
"mask-border-outset",
|
|
509
|
+
"mask-border-repeat",
|
|
510
|
+
"mask-border-slice",
|
|
511
|
+
"mask-border-source",
|
|
512
|
+
"mask-border-width"
|
|
513
|
+
],
|
|
514
|
+
"mask-border-mode": ["mask-border-mode"],
|
|
515
|
+
"mask-border-outset": ["mask-border-outset"],
|
|
516
|
+
"mask-border-repeat": ["mask-border-repeat"],
|
|
517
|
+
"mask-border-slice": ["mask-border-slice"],
|
|
518
|
+
"mask-border-source": ["mask-border-source"],
|
|
519
|
+
"mask-border-width": ["mask-border-width"],
|
|
520
|
+
"mask-clip": ["mask-clip"],
|
|
521
|
+
"mask-composite": ["mask-composite"],
|
|
522
|
+
"mask-image": ["mask-image"],
|
|
523
|
+
"mask-mode": ["mask-mode"],
|
|
524
|
+
"mask-origin": ["mask-origin"],
|
|
525
|
+
"mask-position": ["mask-position"],
|
|
526
|
+
"mask-repeat": ["mask-repeat"],
|
|
527
|
+
"mask-size": ["mask-size"],
|
|
528
|
+
"mask-type": ["mask-type"],
|
|
529
|
+
"masonry-auto-flow": ["masonry-auto-flow"],
|
|
530
|
+
"math-depth": ["math-depth"],
|
|
531
|
+
"math-shift": ["math-shift"],
|
|
532
|
+
"math-style": ["math-style"],
|
|
533
|
+
"max-block-size": ["max-block-size"],
|
|
534
|
+
"max-height": ["max-height"],
|
|
535
|
+
"max-inline-size": ["max-inline-size"],
|
|
536
|
+
"max-lines": ["max-lines"],
|
|
537
|
+
"max-width": ["max-width"],
|
|
538
|
+
"min-block-size": ["min-block-size"],
|
|
539
|
+
"min-height": ["min-height"],
|
|
540
|
+
"min-inline-size": ["min-inline-size"],
|
|
541
|
+
"min-width": ["min-width"],
|
|
542
|
+
"mix-blend-mode": ["mix-blend-mode"],
|
|
543
|
+
"object-fit": ["object-fit"],
|
|
544
|
+
"object-position": ["object-position"],
|
|
545
|
+
"object-view-box": ["object-view-box"],
|
|
546
|
+
"offset": [
|
|
547
|
+
"offset-anchor",
|
|
548
|
+
"offset-distance",
|
|
549
|
+
"offset-path",
|
|
550
|
+
"offset-position",
|
|
551
|
+
"offset-rotate"
|
|
552
|
+
],
|
|
553
|
+
"offset-anchor": ["offset-anchor"],
|
|
554
|
+
"offset-distance": ["offset-distance"],
|
|
555
|
+
"offset-path": ["offset-path"],
|
|
556
|
+
"offset-position": ["offset-position"],
|
|
557
|
+
"offset-rotate": ["offset-rotate"],
|
|
558
|
+
"opacity": ["opacity"],
|
|
559
|
+
"order": ["order"],
|
|
560
|
+
"orphans": ["orphans"],
|
|
561
|
+
"outline": [
|
|
562
|
+
"outline-color",
|
|
563
|
+
"outline-style",
|
|
564
|
+
"outline-width"
|
|
565
|
+
],
|
|
566
|
+
"outline-color": ["outline-color"],
|
|
567
|
+
"outline-offset": ["outline-offset"],
|
|
568
|
+
"outline-style": ["outline-style"],
|
|
569
|
+
"outline-width": ["outline-width"],
|
|
570
|
+
"overflow": ["overflow-x", "overflow-y"],
|
|
571
|
+
"overflow-anchor": ["overflow-anchor"],
|
|
572
|
+
"overflow-block": ["overflow-block"],
|
|
573
|
+
"overflow-clip-box": ["overflow-clip-box"],
|
|
574
|
+
"overflow-clip-margin": ["overflow-clip-margin"],
|
|
575
|
+
"overflow-inline": ["overflow-inline"],
|
|
576
|
+
"overflow-wrap": ["overflow-wrap"],
|
|
577
|
+
"overflow-x": ["overflow-x"],
|
|
578
|
+
"overflow-y": ["overflow-y"],
|
|
579
|
+
"overlay": ["overlay"],
|
|
580
|
+
"overscroll-behavior": ["overscroll-behavior-x", "overscroll-behavior-y"],
|
|
581
|
+
"overscroll-behavior-block": ["overscroll-behavior-block"],
|
|
582
|
+
"overscroll-behavior-inline": ["overscroll-behavior-inline"],
|
|
583
|
+
"overscroll-behavior-x": ["overscroll-behavior-x"],
|
|
584
|
+
"overscroll-behavior-y": ["overscroll-behavior-y"],
|
|
585
|
+
"padding": [
|
|
586
|
+
"padding-bottom",
|
|
587
|
+
"padding-left",
|
|
588
|
+
"padding-right",
|
|
589
|
+
"padding-top"
|
|
590
|
+
],
|
|
591
|
+
"padding-block": ["padding-block-end", "padding-block-start"],
|
|
592
|
+
"padding-block-end": ["padding-block-end"],
|
|
593
|
+
"padding-block-start": ["padding-block-start"],
|
|
594
|
+
"padding-bottom": ["padding-bottom"],
|
|
595
|
+
"padding-inline": ["padding-inline-end", "padding-inline-start"],
|
|
596
|
+
"padding-inline-end": ["padding-inline-end"],
|
|
597
|
+
"padding-inline-start": ["padding-inline-start"],
|
|
598
|
+
"padding-left": ["padding-left"],
|
|
599
|
+
"padding-right": ["padding-right"],
|
|
600
|
+
"padding-top": ["padding-top"],
|
|
601
|
+
"page": ["page"],
|
|
602
|
+
"page-break-after": ["page-break-after"],
|
|
603
|
+
"page-break-before": ["page-break-before"],
|
|
604
|
+
"page-break-inside": ["page-break-inside"],
|
|
605
|
+
"paint-order": ["paint-order"],
|
|
606
|
+
"perspective": ["perspective"],
|
|
607
|
+
"perspective-origin": ["perspective-origin"],
|
|
608
|
+
"place-content": ["align-content", "justify-content"],
|
|
609
|
+
"place-items": ["align-items", "justify-items"],
|
|
610
|
+
"place-self": ["align-self", "justify-self"],
|
|
611
|
+
"pointer-events": ["pointer-events"],
|
|
612
|
+
"position": ["position"],
|
|
613
|
+
"position-anchor": ["position-anchor"],
|
|
614
|
+
"position-area": ["position-area"],
|
|
615
|
+
"position-try": ["position-try-fallbacks", "position-try-order"],
|
|
616
|
+
"position-try-fallbacks": ["position-try-fallbacks"],
|
|
617
|
+
"position-try-order": ["position-try-order"],
|
|
618
|
+
"position-visibility": ["position-visibility"],
|
|
619
|
+
"print-color-adjust": ["print-color-adjust"],
|
|
620
|
+
"quotes": ["quotes"],
|
|
621
|
+
"r": ["r"],
|
|
622
|
+
"reading-flow": ["reading-flow"],
|
|
623
|
+
"reading-order": ["reading-order"],
|
|
624
|
+
"resize": ["resize"],
|
|
625
|
+
"right": ["right"],
|
|
626
|
+
"rotate": ["rotate"],
|
|
627
|
+
"row-gap": ["row-gap"],
|
|
628
|
+
"ruby-align": ["ruby-align"],
|
|
629
|
+
"ruby-merge": ["ruby-merge"],
|
|
630
|
+
"ruby-overhang": ["ruby-overhang"],
|
|
631
|
+
"ruby-position": ["ruby-position"],
|
|
632
|
+
"rx": ["rx"],
|
|
633
|
+
"ry": ["ry"],
|
|
634
|
+
"scale": ["scale"],
|
|
635
|
+
"scroll-behavior": ["scroll-behavior"],
|
|
636
|
+
"scroll-initial-target": ["scroll-initial-target"],
|
|
637
|
+
"scroll-margin": [
|
|
638
|
+
"scroll-margin-bottom",
|
|
639
|
+
"scroll-margin-left",
|
|
640
|
+
"scroll-margin-right",
|
|
641
|
+
"scroll-margin-top"
|
|
642
|
+
],
|
|
643
|
+
"scroll-margin-block": ["scroll-margin-block-end", "scroll-margin-block-start"],
|
|
644
|
+
"scroll-margin-block-end": ["scroll-margin-block-end"],
|
|
645
|
+
"scroll-margin-block-start": ["scroll-margin-block-start"],
|
|
646
|
+
"scroll-margin-bottom": ["scroll-margin-bottom"],
|
|
647
|
+
"scroll-margin-inline": ["scroll-margin-inline-end", "scroll-margin-inline-start"],
|
|
648
|
+
"scroll-margin-inline-end": ["scroll-margin-inline-end"],
|
|
649
|
+
"scroll-margin-inline-start": ["scroll-margin-inline-start"],
|
|
650
|
+
"scroll-margin-left": ["scroll-margin-left"],
|
|
651
|
+
"scroll-margin-right": ["scroll-margin-right"],
|
|
652
|
+
"scroll-margin-top": ["scroll-margin-top"],
|
|
653
|
+
"scroll-marker-group": ["scroll-marker-group"],
|
|
654
|
+
"scroll-padding": [
|
|
655
|
+
"scroll-padding-bottom",
|
|
656
|
+
"scroll-padding-left",
|
|
657
|
+
"scroll-padding-right",
|
|
658
|
+
"scroll-padding-top"
|
|
659
|
+
],
|
|
660
|
+
"scroll-padding-block": ["scroll-padding-block-end", "scroll-padding-block-start"],
|
|
661
|
+
"scroll-padding-block-end": ["scroll-padding-block-end"],
|
|
662
|
+
"scroll-padding-block-start": ["scroll-padding-block-start"],
|
|
663
|
+
"scroll-padding-bottom": ["scroll-padding-bottom"],
|
|
664
|
+
"scroll-padding-inline": ["scroll-padding-inline-end", "scroll-padding-inline-start"],
|
|
665
|
+
"scroll-padding-inline-end": ["scroll-padding-inline-end"],
|
|
666
|
+
"scroll-padding-inline-start": ["scroll-padding-inline-start"],
|
|
667
|
+
"scroll-padding-left": ["scroll-padding-left"],
|
|
668
|
+
"scroll-padding-right": ["scroll-padding-right"],
|
|
669
|
+
"scroll-padding-top": ["scroll-padding-top"],
|
|
670
|
+
"scroll-snap-align": ["scroll-snap-align"],
|
|
671
|
+
"scroll-snap-coordinate": ["scroll-snap-coordinate"],
|
|
672
|
+
"scroll-snap-destination": ["scroll-snap-destination"],
|
|
673
|
+
"scroll-snap-points-x": ["scroll-snap-points-x"],
|
|
674
|
+
"scroll-snap-points-y": ["scroll-snap-points-y"],
|
|
675
|
+
"scroll-snap-stop": ["scroll-snap-stop"],
|
|
676
|
+
"scroll-snap-type": ["scroll-snap-type"],
|
|
677
|
+
"scroll-snap-type-x": ["scroll-snap-type-x"],
|
|
678
|
+
"scroll-snap-type-y": ["scroll-snap-type-y"],
|
|
679
|
+
"scroll-target-group": ["scroll-target-group"],
|
|
680
|
+
"scroll-timeline": ["scroll-timeline-axis", "scroll-timeline-name"],
|
|
681
|
+
"scroll-timeline-axis": ["scroll-timeline-axis"],
|
|
682
|
+
"scroll-timeline-name": ["scroll-timeline-name"],
|
|
683
|
+
"scrollbar-color": ["scrollbar-color"],
|
|
684
|
+
"scrollbar-gutter": ["scrollbar-gutter"],
|
|
685
|
+
"scrollbar-width": ["scrollbar-width"],
|
|
686
|
+
"shape-image-threshold": ["shape-image-threshold"],
|
|
687
|
+
"shape-margin": ["shape-margin"],
|
|
688
|
+
"shape-outside": ["shape-outside"],
|
|
689
|
+
"shape-rendering": ["shape-rendering"],
|
|
690
|
+
"speak-as": ["speak-as"],
|
|
691
|
+
"stop-color": ["stop-color"],
|
|
692
|
+
"stop-opacity": ["stop-opacity"],
|
|
693
|
+
"stroke": [
|
|
694
|
+
"stroke-dasharray",
|
|
695
|
+
"stroke-dashoffset",
|
|
696
|
+
"stroke-linecap",
|
|
697
|
+
"stroke-linejoin",
|
|
698
|
+
"stroke-miterlimit",
|
|
699
|
+
"stroke-opacity",
|
|
700
|
+
"stroke-width"
|
|
701
|
+
],
|
|
702
|
+
"stroke-color": ["stroke-color"],
|
|
703
|
+
"stroke-dasharray": ["stroke-dasharray"],
|
|
704
|
+
"stroke-dashoffset": ["stroke-dashoffset"],
|
|
705
|
+
"stroke-linecap": ["stroke-linecap"],
|
|
706
|
+
"stroke-linejoin": ["stroke-linejoin"],
|
|
707
|
+
"stroke-miterlimit": ["stroke-miterlimit"],
|
|
708
|
+
"stroke-opacity": ["stroke-opacity"],
|
|
709
|
+
"stroke-width": ["stroke-width"],
|
|
710
|
+
"tab-size": ["tab-size"],
|
|
711
|
+
"table-layout": ["table-layout"],
|
|
712
|
+
"text-align": ["text-align"],
|
|
713
|
+
"text-align-last": ["text-align-last"],
|
|
714
|
+
"text-anchor": ["text-anchor"],
|
|
715
|
+
"text-autospace": ["text-autospace"],
|
|
716
|
+
"text-box": ["text-box-edge", "text-box-trim"],
|
|
717
|
+
"text-box-edge": ["text-box-edge"],
|
|
718
|
+
"text-box-trim": ["text-box-trim"],
|
|
719
|
+
"text-combine-upright": ["text-combine-upright"],
|
|
720
|
+
"text-decoration": [
|
|
721
|
+
"text-decoration-color",
|
|
722
|
+
"text-decoration-line",
|
|
723
|
+
"text-decoration-style",
|
|
724
|
+
"text-decoration-thickness"
|
|
725
|
+
],
|
|
726
|
+
"text-decoration-color": ["text-decoration-color"],
|
|
727
|
+
"text-decoration-inset": ["text-decoration-inset"],
|
|
728
|
+
"text-decoration-line": ["text-decoration-line"],
|
|
729
|
+
"text-decoration-skip": ["text-decoration-skip"],
|
|
730
|
+
"text-decoration-skip-ink": ["text-decoration-skip-ink"],
|
|
731
|
+
"text-decoration-style": ["text-decoration-style"],
|
|
732
|
+
"text-decoration-thickness": ["text-decoration-thickness"],
|
|
733
|
+
"text-emphasis": ["text-emphasis-color", "text-emphasis-style"],
|
|
734
|
+
"text-emphasis-color": ["text-emphasis-color"],
|
|
735
|
+
"text-emphasis-position": ["text-emphasis-position"],
|
|
736
|
+
"text-emphasis-style": ["text-emphasis-style"],
|
|
737
|
+
"text-indent": ["text-indent"],
|
|
738
|
+
"text-justify": ["text-justify"],
|
|
739
|
+
"text-orientation": ["text-orientation"],
|
|
740
|
+
"text-overflow": ["text-overflow"],
|
|
741
|
+
"text-rendering": ["text-rendering"],
|
|
742
|
+
"text-shadow": ["text-shadow"],
|
|
743
|
+
"text-size-adjust": ["text-size-adjust"],
|
|
744
|
+
"text-spacing-trim": ["text-spacing-trim"],
|
|
745
|
+
"text-transform": ["text-transform"],
|
|
746
|
+
"text-underline-offset": ["text-underline-offset"],
|
|
747
|
+
"text-underline-position": ["text-underline-position"],
|
|
748
|
+
"text-wrap": ["text-wrap-mode", "text-wrap-style"],
|
|
749
|
+
"text-wrap-mode": ["text-wrap-mode"],
|
|
750
|
+
"text-wrap-style": ["text-wrap-style"],
|
|
751
|
+
"timeline-scope": ["timeline-scope"],
|
|
752
|
+
"timeline-trigger": [
|
|
753
|
+
"timeline-trigger-exit-range-end",
|
|
754
|
+
"timeline-trigger-exit-range-start",
|
|
755
|
+
"timeline-trigger-name",
|
|
756
|
+
"timeline-trigger-range-end",
|
|
757
|
+
"timeline-trigger-range-start",
|
|
758
|
+
"timeline-trigger-source"
|
|
759
|
+
],
|
|
760
|
+
"timeline-trigger-exit-range": ["timeline-trigger-exit-range-end", "timeline-trigger-exit-range-start"],
|
|
761
|
+
"timeline-trigger-exit-range-end": ["timeline-trigger-exit-range-end"],
|
|
762
|
+
"timeline-trigger-exit-range-start": ["timeline-trigger-exit-range-start"],
|
|
763
|
+
"timeline-trigger-name": ["timeline-trigger-name"],
|
|
764
|
+
"timeline-trigger-range": ["timeline-trigger-range-end", "timeline-trigger-range-start"],
|
|
765
|
+
"timeline-trigger-range-end": ["timeline-trigger-range-end"],
|
|
766
|
+
"timeline-trigger-range-start": ["timeline-trigger-range-start"],
|
|
767
|
+
"timeline-trigger-source": ["timeline-trigger-source"],
|
|
768
|
+
"top": ["top"],
|
|
769
|
+
"touch-action": ["touch-action"],
|
|
770
|
+
"transform": ["transform"],
|
|
771
|
+
"transform-box": ["transform-box"],
|
|
772
|
+
"transform-origin": ["transform-origin"],
|
|
773
|
+
"transform-style": ["transform-style"],
|
|
774
|
+
"transition": [
|
|
775
|
+
"transition-behavior",
|
|
776
|
+
"transition-delay",
|
|
777
|
+
"transition-duration",
|
|
778
|
+
"transition-property",
|
|
779
|
+
"transition-timing-function"
|
|
780
|
+
],
|
|
781
|
+
"transition-behavior": ["transition-behavior"],
|
|
782
|
+
"transition-delay": ["transition-delay"],
|
|
783
|
+
"transition-duration": ["transition-duration"],
|
|
784
|
+
"transition-property": ["transition-property"],
|
|
785
|
+
"transition-timing-function": ["transition-timing-function"],
|
|
786
|
+
"translate": ["translate"],
|
|
787
|
+
"trigger-scope": ["trigger-scope"],
|
|
788
|
+
"unicode-bidi": ["unicode-bidi"],
|
|
789
|
+
"user-select": ["user-select"],
|
|
790
|
+
"vector-effect": ["vector-effect"],
|
|
791
|
+
"vertical-align": ["vertical-align"],
|
|
792
|
+
"view-timeline": ["view-timeline-axis", "view-timeline-name"],
|
|
793
|
+
"view-timeline-axis": ["view-timeline-axis"],
|
|
794
|
+
"view-timeline-inset": ["view-timeline-inset"],
|
|
795
|
+
"view-timeline-name": ["view-timeline-name"],
|
|
796
|
+
"view-transition-class": ["view-transition-class"],
|
|
797
|
+
"view-transition-name": ["view-transition-name"],
|
|
798
|
+
"visibility": ["visibility"],
|
|
799
|
+
"white-space": ["text-wrap-mode", "white-space-collapse"],
|
|
800
|
+
"white-space-collapse": ["white-space-collapse"],
|
|
801
|
+
"widows": ["widows"],
|
|
802
|
+
"width": ["width"],
|
|
803
|
+
"will-change": ["will-change"],
|
|
804
|
+
"word-break": ["word-break"],
|
|
805
|
+
"word-spacing": ["word-spacing"],
|
|
806
|
+
"word-wrap": ["word-wrap"],
|
|
807
|
+
"writing-mode": ["writing-mode"],
|
|
808
|
+
"x": ["x"],
|
|
809
|
+
"y": ["y"],
|
|
810
|
+
"z-index": ["z-index"],
|
|
811
|
+
"zoom": ["zoom"]
|
|
812
|
+
};
|
|
813
|
+
|
|
814
|
+
//#endregion
|
|
815
|
+
//#region src/internal/property-effects.ts
|
|
816
|
+
const UNIVERSAL_EFFECT = "*";
|
|
817
|
+
const propertyEffectsLookup = PROPERTY_EFFECTS;
|
|
818
|
+
function isCustomProperty(property) {
|
|
819
|
+
return property.startsWith("--");
|
|
820
|
+
}
|
|
821
|
+
function isVendorPrefixedProperty(property) {
|
|
822
|
+
return property.startsWith("-") && property.startsWith("--") === false;
|
|
823
|
+
}
|
|
824
|
+
function getPropertyEffects(property) {
|
|
825
|
+
if (property === "all") return [UNIVERSAL_EFFECT];
|
|
826
|
+
if (isCustomProperty(property) || isVendorPrefixedProperty(property)) return [property];
|
|
827
|
+
return propertyEffectsLookup[property] || [property];
|
|
828
|
+
}
|
|
829
|
+
function hasPropertyEffectOverlap(left, right) {
|
|
830
|
+
if (left === right) return true;
|
|
831
|
+
if (isCustomProperty(left) || isCustomProperty(right)) return false;
|
|
832
|
+
const leftEffects = getPropertyEffects(left);
|
|
833
|
+
const rightEffects = getPropertyEffects(right);
|
|
834
|
+
if (leftEffects.includes(UNIVERSAL_EFFECT) || rightEffects.includes(UNIVERSAL_EFFECT)) return true;
|
|
835
|
+
const rightEffectSet = new Set(rightEffects);
|
|
836
|
+
return leftEffects.some((effect) => rightEffectSet.has(effect));
|
|
837
|
+
}
|
|
4
838
|
|
|
5
839
|
//#endregion
|
|
6
840
|
//#region src/internal/utils.ts
|
|
@@ -79,27 +913,44 @@ function serialize(value) {
|
|
|
79
913
|
return JSON.stringify(value);
|
|
80
914
|
}
|
|
81
915
|
function addToSet(set, ...values) {
|
|
916
|
+
const before = set.size;
|
|
82
917
|
values.forEach((value) => set.add(value));
|
|
918
|
+
return set.size !== before;
|
|
83
919
|
}
|
|
84
|
-
function
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
function appendAutocompleteStyleItemStrings(config, ...styleItemStrings) {
|
|
88
|
-
addToSet(config.autocomplete.styleItemStrings, ...styleItemStrings);
|
|
920
|
+
function appendAutocompleteEntries(set, values) {
|
|
921
|
+
if (values == null) return false;
|
|
922
|
+
return addToSet(set, ...[values].flat());
|
|
89
923
|
}
|
|
90
|
-
function
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
924
|
+
function appendAutocompleteRecordEntries(map, entries) {
|
|
925
|
+
if (entries == null) return false;
|
|
926
|
+
let changed = false;
|
|
927
|
+
for (const [key, value] of Object.entries(entries)) {
|
|
928
|
+
const nextValues = [value].flat();
|
|
929
|
+
if (nextValues.length === 0) continue;
|
|
930
|
+
const current = map.get(key) || [];
|
|
931
|
+
map.set(key, [...current, ...nextValues]);
|
|
932
|
+
changed = true;
|
|
933
|
+
}
|
|
934
|
+
return changed;
|
|
95
935
|
}
|
|
96
|
-
function
|
|
97
|
-
|
|
98
|
-
|
|
936
|
+
function normalizeAutocompleteRecordEntries(entries) {
|
|
937
|
+
if (entries == null) return void 0;
|
|
938
|
+
return Array.isArray(entries) ? Object.fromEntries(entries) : entries;
|
|
99
939
|
}
|
|
100
|
-
function
|
|
101
|
-
const
|
|
102
|
-
|
|
940
|
+
function appendAutocomplete(config, contribution) {
|
|
941
|
+
const { patterns, properties, cssProperties, ...literals } = contribution;
|
|
942
|
+
return [
|
|
943
|
+
appendAutocompleteEntries(config.autocomplete.selectors, literals.selectors),
|
|
944
|
+
appendAutocompleteEntries(config.autocomplete.styleItemStrings, literals.styleItemStrings),
|
|
945
|
+
appendAutocompleteEntries(config.autocomplete.extraProperties, literals.extraProperties),
|
|
946
|
+
appendAutocompleteEntries(config.autocomplete.extraCssProperties, literals.extraCssProperties),
|
|
947
|
+
appendAutocompleteRecordEntries(config.autocomplete.properties, normalizeAutocompleteRecordEntries(properties)),
|
|
948
|
+
appendAutocompleteRecordEntries(config.autocomplete.cssProperties, normalizeAutocompleteRecordEntries(cssProperties)),
|
|
949
|
+
appendAutocompleteEntries(config.autocomplete.patterns.selectors, patterns?.selectors),
|
|
950
|
+
appendAutocompleteEntries(config.autocomplete.patterns.styleItemStrings, patterns?.styleItemStrings),
|
|
951
|
+
appendAutocompleteRecordEntries(config.autocomplete.patterns.properties, patterns?.properties),
|
|
952
|
+
appendAutocompleteRecordEntries(config.autocomplete.patterns.cssProperties, patterns?.cssProperties)
|
|
953
|
+
].some(Boolean);
|
|
103
954
|
}
|
|
104
955
|
function renderCSSStyleBlocks(blocks, isFormatted, depth = 0) {
|
|
105
956
|
const blockIndent = isFormatted ? " ".repeat(depth) : "";
|
|
@@ -120,6 +971,148 @@ function renderCSSStyleBlocks(blocks, isFormatted, depth = 0) {
|
|
|
120
971
|
return lines.join(lineEnd);
|
|
121
972
|
}
|
|
122
973
|
|
|
974
|
+
//#endregion
|
|
975
|
+
//#region src/internal/atomic-style.ts
|
|
976
|
+
function createEngineStore() {
|
|
977
|
+
return {
|
|
978
|
+
atomicStyleIds: /* @__PURE__ */ new Map(),
|
|
979
|
+
atomicStyles: /* @__PURE__ */ new Map(),
|
|
980
|
+
atomicStyleIdsByBaseKey: /* @__PURE__ */ new Map(),
|
|
981
|
+
atomicStyleOrder: /* @__PURE__ */ new Map()
|
|
982
|
+
};
|
|
983
|
+
}
|
|
984
|
+
function getAtomicStyleId({ content, prefix, stored }) {
|
|
985
|
+
const baseKey = getAtomicStyleBaseKey(content);
|
|
986
|
+
if (isOrderSensitiveContent(content) === false) {
|
|
987
|
+
const cached = stored.get(baseKey);
|
|
988
|
+
if (cached != null) {
|
|
989
|
+
log.debug(`Atomic style cached: ${cached}`);
|
|
990
|
+
return cached;
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
const num = stored.size;
|
|
994
|
+
const id = `${prefix}${numberToChars(num)}`;
|
|
995
|
+
const key = getAtomicStyleStoredKey({
|
|
996
|
+
content,
|
|
997
|
+
baseKey,
|
|
998
|
+
num
|
|
999
|
+
});
|
|
1000
|
+
stored.set(key, id);
|
|
1001
|
+
log.debug(`Generated new atomic style ID: ${id}`);
|
|
1002
|
+
return id;
|
|
1003
|
+
}
|
|
1004
|
+
function resolveAtomicStyle({ content, prefix, store, resolvedIdsByBaseKey }) {
|
|
1005
|
+
const reusableId = findReusableOrderSensitiveAtomicStyleId({
|
|
1006
|
+
content,
|
|
1007
|
+
store,
|
|
1008
|
+
resolvedIdsByBaseKey
|
|
1009
|
+
});
|
|
1010
|
+
if (reusableId != null) {
|
|
1011
|
+
log.debug(`Order-sensitive atomic style reused: ${reusableId}`);
|
|
1012
|
+
return { id: reusableId };
|
|
1013
|
+
}
|
|
1014
|
+
const id = getAtomicStyleId({
|
|
1015
|
+
content,
|
|
1016
|
+
prefix,
|
|
1017
|
+
stored: store.atomicStyleIds
|
|
1018
|
+
});
|
|
1019
|
+
if (store.atomicStyles.has(id)) return { id };
|
|
1020
|
+
const atomicStyle = {
|
|
1021
|
+
id,
|
|
1022
|
+
content
|
|
1023
|
+
};
|
|
1024
|
+
registerAtomicStyle(store, atomicStyle);
|
|
1025
|
+
return {
|
|
1026
|
+
id,
|
|
1027
|
+
atomicStyle
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
1030
|
+
function optimizeAtomicStyleContents(list) {
|
|
1031
|
+
const map = /* @__PURE__ */ new Map();
|
|
1032
|
+
const scopedEntries = /* @__PURE__ */ new Map();
|
|
1033
|
+
list.forEach((content) => {
|
|
1034
|
+
const scopeKey = serialize(content.selector);
|
|
1035
|
+
const key = serialize([content.selector, content.property]);
|
|
1036
|
+
const scoped = scopedEntries.get(scopeKey) || /* @__PURE__ */ new Map();
|
|
1037
|
+
scopedEntries.set(scopeKey, scoped);
|
|
1038
|
+
map.delete(key);
|
|
1039
|
+
scoped.delete(key);
|
|
1040
|
+
if (content.value == null) return;
|
|
1041
|
+
const { selector, property, value } = content;
|
|
1042
|
+
const nextContent = {
|
|
1043
|
+
selector,
|
|
1044
|
+
property,
|
|
1045
|
+
value
|
|
1046
|
+
};
|
|
1047
|
+
const dependencyKeys = getOrderSensitiveDependencyKeys(scoped, property);
|
|
1048
|
+
if (dependencyKeys.length > 0) nextContent.orderSensitiveTo = dependencyKeys;
|
|
1049
|
+
map.set(key, nextContent);
|
|
1050
|
+
scoped.set(key, nextContent);
|
|
1051
|
+
});
|
|
1052
|
+
return [...map.values()];
|
|
1053
|
+
}
|
|
1054
|
+
function getAtomicStyleBaseKey(content) {
|
|
1055
|
+
return serialize([
|
|
1056
|
+
content.selector,
|
|
1057
|
+
content.property,
|
|
1058
|
+
content.value
|
|
1059
|
+
]);
|
|
1060
|
+
}
|
|
1061
|
+
function getAtomicStyleStoredKey({ content, baseKey, num }) {
|
|
1062
|
+
return isOrderSensitiveContent(content) ? serialize([
|
|
1063
|
+
baseKey,
|
|
1064
|
+
"order-sensitive",
|
|
1065
|
+
num
|
|
1066
|
+
]) : baseKey;
|
|
1067
|
+
}
|
|
1068
|
+
function isOrderSensitiveContent(content) {
|
|
1069
|
+
return (content.orderSensitiveTo?.length ?? 0) > 0;
|
|
1070
|
+
}
|
|
1071
|
+
function registerAtomicStyle(store, atomicStyle) {
|
|
1072
|
+
const { id, content } = atomicStyle;
|
|
1073
|
+
const baseKey = getAtomicStyleBaseKey(content);
|
|
1074
|
+
store.atomicStyleOrder.set(id, store.atomicStyles.size);
|
|
1075
|
+
store.atomicStyles.set(id, atomicStyle);
|
|
1076
|
+
const ids = store.atomicStyleIdsByBaseKey.get(baseKey);
|
|
1077
|
+
if (ids == null) store.atomicStyleIdsByBaseKey.set(baseKey, [id]);
|
|
1078
|
+
else ids.push(id);
|
|
1079
|
+
}
|
|
1080
|
+
function getRequiredAtomicStyleOrder({ dependencyKeys, store, resolvedIdsByBaseKey }) {
|
|
1081
|
+
let requiredOrder = -1;
|
|
1082
|
+
for (const dependencyKey of dependencyKeys) {
|
|
1083
|
+
const dependencyId = resolvedIdsByBaseKey.get(dependencyKey) ?? store.atomicStyleIds.get(dependencyKey);
|
|
1084
|
+
if (dependencyId == null) continue;
|
|
1085
|
+
const dependencyOrder = store.atomicStyleOrder.get(dependencyId);
|
|
1086
|
+
if (dependencyOrder != null) requiredOrder = Math.max(requiredOrder, dependencyOrder);
|
|
1087
|
+
}
|
|
1088
|
+
return requiredOrder;
|
|
1089
|
+
}
|
|
1090
|
+
function findReusableOrderSensitiveAtomicStyleId({ content, store, resolvedIdsByBaseKey }) {
|
|
1091
|
+
if (isOrderSensitiveContent(content) === false) return void 0;
|
|
1092
|
+
const baseKey = getAtomicStyleBaseKey(content);
|
|
1093
|
+
const requiredOrder = getRequiredAtomicStyleOrder({
|
|
1094
|
+
dependencyKeys: content.orderSensitiveTo ?? [],
|
|
1095
|
+
store,
|
|
1096
|
+
resolvedIdsByBaseKey
|
|
1097
|
+
});
|
|
1098
|
+
return (store.atomicStyleIdsByBaseKey.get(baseKey) ?? []).find((candidateId) => {
|
|
1099
|
+
const candidateOrder = store.atomicStyleOrder.get(candidateId);
|
|
1100
|
+
return candidateOrder != null && candidateOrder > requiredOrder;
|
|
1101
|
+
});
|
|
1102
|
+
}
|
|
1103
|
+
function getOrderSensitiveDependencyKeys(scoped, property) {
|
|
1104
|
+
const dependencyKeys = [];
|
|
1105
|
+
for (const existing of scoped.values()) if (hasPropertyEffectOverlap(existing.property, property)) dependencyKeys.push(getAtomicStyleBaseKey(existing));
|
|
1106
|
+
return dependencyKeys;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
//#endregion
|
|
1110
|
+
//#region src/internal/constants.ts
|
|
1111
|
+
const LAYER_SELECTOR_PREFIX = "@layer ";
|
|
1112
|
+
const DEFAULT_ATOMIC_STYLE_ID_PREFIX = "pk-";
|
|
1113
|
+
const ATOMIC_STYLE_ID_PLACEHOLDER = "%";
|
|
1114
|
+
const ATOMIC_STYLE_ID_PLACEHOLDER_RE_GLOBAL = /%/g;
|
|
1115
|
+
|
|
123
1116
|
//#endregion
|
|
124
1117
|
//#region src/internal/extractor.ts
|
|
125
1118
|
function replaceBySplitAndJoin(str, split, mapFn, join) {
|
|
@@ -197,42 +1190,60 @@ function createExtractFn(options) {
|
|
|
197
1190
|
|
|
198
1191
|
//#endregion
|
|
199
1192
|
//#region src/internal/plugin.ts
|
|
1193
|
+
function getPluginHook(plugin, hook) {
|
|
1194
|
+
const hookFn = plugin[hook];
|
|
1195
|
+
return typeof hookFn === "function" ? hookFn : null;
|
|
1196
|
+
}
|
|
1197
|
+
function applyHookPayload(current, next) {
|
|
1198
|
+
return next != null ? next : current;
|
|
1199
|
+
}
|
|
1200
|
+
function logHookStart(kind, hook) {
|
|
1201
|
+
log.debug(`Executing ${kind.toLowerCase()} hook: ${hook}`);
|
|
1202
|
+
}
|
|
1203
|
+
function logHookEnd(kind, hook) {
|
|
1204
|
+
log.debug(`${kind} hook "${hook}" completed`);
|
|
1205
|
+
}
|
|
1206
|
+
function logPluginHookStart(plugin, hook) {
|
|
1207
|
+
log.debug(` - Plugin "${plugin.name}" executing ${hook}`);
|
|
1208
|
+
}
|
|
1209
|
+
function logPluginHookEnd(plugin, hook) {
|
|
1210
|
+
log.debug(` - Plugin "${plugin.name}" completed ${hook}`);
|
|
1211
|
+
}
|
|
1212
|
+
function logPluginHookError(plugin, hook, error) {
|
|
1213
|
+
log.error(`Plugin "${plugin.name}" failed to execute hook "${hook}": ${error instanceof Error ? error.message : error}`, error);
|
|
1214
|
+
}
|
|
200
1215
|
async function execAsyncHook(plugins, hook, payload) {
|
|
201
|
-
|
|
1216
|
+
logHookStart("Async", hook);
|
|
202
1217
|
let current = payload;
|
|
203
1218
|
for (const plugin of plugins) {
|
|
204
|
-
const
|
|
205
|
-
if (
|
|
1219
|
+
const hookFn = getPluginHook(plugin, hook);
|
|
1220
|
+
if (hookFn == null) continue;
|
|
206
1221
|
try {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
if (newPayload != null) current = newPayload;
|
|
211
|
-
log.debug(` - Plugin "${plugin.name}" completed ${hook}`);
|
|
1222
|
+
logPluginHookStart(plugin, hook);
|
|
1223
|
+
current = applyHookPayload(current, await hookFn(current));
|
|
1224
|
+
logPluginHookEnd(plugin, hook);
|
|
212
1225
|
} catch (error) {
|
|
213
|
-
|
|
1226
|
+
logPluginHookError(plugin, hook, error);
|
|
214
1227
|
}
|
|
215
1228
|
}
|
|
216
|
-
|
|
1229
|
+
logHookEnd("Async", hook);
|
|
217
1230
|
return current;
|
|
218
1231
|
}
|
|
219
1232
|
function execSyncHook(plugins, hook, payload) {
|
|
220
|
-
|
|
1233
|
+
logHookStart("Sync", hook);
|
|
221
1234
|
let current = payload;
|
|
222
1235
|
for (const plugin of plugins) {
|
|
223
|
-
const
|
|
224
|
-
if (
|
|
1236
|
+
const hookFn = getPluginHook(plugin, hook);
|
|
1237
|
+
if (hookFn == null) continue;
|
|
225
1238
|
try {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (newPayload != null) current = newPayload;
|
|
230
|
-
log.debug(` - Plugin "${plugin.name}" completed ${hook}`);
|
|
1239
|
+
logPluginHookStart(plugin, hook);
|
|
1240
|
+
current = applyHookPayload(current, hookFn(current));
|
|
1241
|
+
logPluginHookEnd(plugin, hook);
|
|
231
1242
|
} catch (error) {
|
|
232
|
-
|
|
1243
|
+
logPluginHookError(plugin, hook, error);
|
|
233
1244
|
}
|
|
234
1245
|
}
|
|
235
|
-
|
|
1246
|
+
logHookEnd("Sync", hook);
|
|
236
1247
|
return current;
|
|
237
1248
|
}
|
|
238
1249
|
const hooks = {
|
|
@@ -279,8 +1290,10 @@ function important() {
|
|
|
279
1290
|
defaultValue = config.important?.default ?? false;
|
|
280
1291
|
},
|
|
281
1292
|
configureEngine(engine) {
|
|
282
|
-
engine.
|
|
283
|
-
|
|
1293
|
+
engine.appendAutocomplete({
|
|
1294
|
+
extraProperties: "__important",
|
|
1295
|
+
properties: { __important: "boolean" }
|
|
1296
|
+
});
|
|
284
1297
|
},
|
|
285
1298
|
transformStyleDefinitions(styleDefinitions) {
|
|
286
1299
|
return styleDefinitions.map((styleDefinition) => {
|
|
@@ -315,9 +1328,10 @@ function keyframes() {
|
|
|
315
1328
|
const resolved = resolveKeyframesConfig(config);
|
|
316
1329
|
const { name, frames, autocomplete: autocompleteAnimation } = resolved;
|
|
317
1330
|
if (frames != null) engine.keyframes.store.set(name, resolved);
|
|
318
|
-
engine.
|
|
319
|
-
|
|
320
|
-
|
|
1331
|
+
engine.appendAutocomplete({ cssProperties: {
|
|
1332
|
+
animationName: name,
|
|
1333
|
+
animation: autocompleteAnimation != null ? [`${name} `, ...autocompleteAnimation] : `${name} `
|
|
1334
|
+
} });
|
|
321
1335
|
});
|
|
322
1336
|
engine.notifyPreflightUpdated();
|
|
323
1337
|
}
|
|
@@ -558,18 +1572,18 @@ function selectors() {
|
|
|
558
1572
|
const resolved = resolveSelectorConfig(config);
|
|
559
1573
|
if (resolved == null) return;
|
|
560
1574
|
if (typeof resolved === "string") {
|
|
561
|
-
engine.
|
|
1575
|
+
engine.appendAutocomplete({ selectors: resolved });
|
|
562
1576
|
return;
|
|
563
1577
|
}
|
|
564
1578
|
if (resolved.type === "static") engine.selectors.resolver.addStaticRule(resolved.rule);
|
|
565
1579
|
else if (resolved.type === "dynamic") engine.selectors.resolver.addDynamicRule(resolved.rule);
|
|
566
|
-
engine.
|
|
1580
|
+
engine.appendAutocomplete({ selectors: resolved.autocomplete });
|
|
567
1581
|
});
|
|
568
1582
|
}
|
|
569
1583
|
};
|
|
570
1584
|
engine.selectors.add(...configList);
|
|
571
1585
|
engine.selectors.resolver.onResolved = (string, type) => {
|
|
572
|
-
if (type === "dynamic") engine.
|
|
1586
|
+
if (type === "dynamic") engine.appendAutocomplete({ selectors: string });
|
|
573
1587
|
};
|
|
574
1588
|
},
|
|
575
1589
|
async transformSelectors(selectors) {
|
|
@@ -603,22 +1617,24 @@ function shortcuts() {
|
|
|
603
1617
|
const resolved = resolveShortcutConfig(config);
|
|
604
1618
|
if (resolved == null) return;
|
|
605
1619
|
if (typeof resolved === "string") {
|
|
606
|
-
engine.
|
|
1620
|
+
engine.appendAutocomplete({ styleItemStrings: resolved });
|
|
607
1621
|
return;
|
|
608
1622
|
}
|
|
609
1623
|
if (resolved.type === "static") engine.shortcuts.resolver.addStaticRule(resolved.rule);
|
|
610
1624
|
else if (resolved.type === "dynamic") engine.shortcuts.resolver.addDynamicRule(resolved.rule);
|
|
611
|
-
engine.
|
|
1625
|
+
engine.appendAutocomplete({ styleItemStrings: resolved.autocomplete });
|
|
612
1626
|
});
|
|
613
1627
|
}
|
|
614
1628
|
};
|
|
615
1629
|
engine.shortcuts.add(...configList);
|
|
616
1630
|
engine.shortcuts.resolver.onResolved = (string, type) => {
|
|
617
|
-
if (type === "dynamic") engine.
|
|
1631
|
+
if (type === "dynamic") engine.appendAutocomplete({ styleItemStrings: string });
|
|
618
1632
|
};
|
|
619
|
-
engine.appendAutocompleteExtraProperties("__shortcut");
|
|
620
1633
|
const unionType = ["(string & {})", "Autocomplete['StyleItemString']"].join(" | ");
|
|
621
|
-
engine.
|
|
1634
|
+
engine.appendAutocomplete({
|
|
1635
|
+
extraProperties: "__shortcut",
|
|
1636
|
+
properties: { __shortcut: [unionType, `(${unionType})[]`] }
|
|
1637
|
+
});
|
|
622
1638
|
},
|
|
623
1639
|
async transformStyleItems(styleItems) {
|
|
624
1640
|
const result = [];
|
|
@@ -651,8 +1667,102 @@ function resolveShortcutConfig(config) {
|
|
|
651
1667
|
return resolveRuleConfig(config, "shortcut");
|
|
652
1668
|
}
|
|
653
1669
|
|
|
1670
|
+
//#endregion
|
|
1671
|
+
//#region src/internal/generated-property-semantics.ts
|
|
1672
|
+
const VARIABLE_SEMANTIC_FAMILIES = [
|
|
1673
|
+
"color",
|
|
1674
|
+
"length",
|
|
1675
|
+
"time",
|
|
1676
|
+
"number",
|
|
1677
|
+
"percentage",
|
|
1678
|
+
"angle",
|
|
1679
|
+
"image",
|
|
1680
|
+
"url",
|
|
1681
|
+
"position",
|
|
1682
|
+
"easing",
|
|
1683
|
+
"font-family"
|
|
1684
|
+
];
|
|
1685
|
+
const VARIABLE_SEMANTIC_FAMILY_PROPERTIES = {
|
|
1686
|
+
"angle": [],
|
|
1687
|
+
"color": [
|
|
1688
|
+
"accent-color",
|
|
1689
|
+
"background-color",
|
|
1690
|
+
"border-block-color",
|
|
1691
|
+
"border-block-end-color",
|
|
1692
|
+
"border-block-start-color",
|
|
1693
|
+
"border-bottom-color",
|
|
1694
|
+
"border-inline-color",
|
|
1695
|
+
"border-inline-end-color",
|
|
1696
|
+
"border-inline-start-color",
|
|
1697
|
+
"border-left-color",
|
|
1698
|
+
"border-right-color",
|
|
1699
|
+
"border-top-color",
|
|
1700
|
+
"caret-color",
|
|
1701
|
+
"color",
|
|
1702
|
+
"column-rule-color",
|
|
1703
|
+
"flood-color",
|
|
1704
|
+
"lighting-color",
|
|
1705
|
+
"outline-color",
|
|
1706
|
+
"stop-color",
|
|
1707
|
+
"stroke-color",
|
|
1708
|
+
"text-decoration-color",
|
|
1709
|
+
"text-emphasis-color"
|
|
1710
|
+
],
|
|
1711
|
+
"easing": ["animation-timing-function", "transition-timing-function"],
|
|
1712
|
+
"font-family": ["font-family"],
|
|
1713
|
+
"image": [],
|
|
1714
|
+
"length": [
|
|
1715
|
+
"block-size",
|
|
1716
|
+
"border-bottom-width",
|
|
1717
|
+
"border-left-width",
|
|
1718
|
+
"border-right-width",
|
|
1719
|
+
"border-spacing",
|
|
1720
|
+
"border-top-width",
|
|
1721
|
+
"bottom",
|
|
1722
|
+
"font-size",
|
|
1723
|
+
"height",
|
|
1724
|
+
"inline-size",
|
|
1725
|
+
"inset-block-end",
|
|
1726
|
+
"inset-block-start",
|
|
1727
|
+
"inset-inline-end",
|
|
1728
|
+
"inset-inline-start",
|
|
1729
|
+
"left",
|
|
1730
|
+
"letter-spacing",
|
|
1731
|
+
"max-height",
|
|
1732
|
+
"max-width",
|
|
1733
|
+
"min-height",
|
|
1734
|
+
"min-width",
|
|
1735
|
+
"outline-offset",
|
|
1736
|
+
"right",
|
|
1737
|
+
"top",
|
|
1738
|
+
"width"
|
|
1739
|
+
],
|
|
1740
|
+
"number": [
|
|
1741
|
+
"fill-opacity",
|
|
1742
|
+
"flex-grow",
|
|
1743
|
+
"flex-shrink",
|
|
1744
|
+
"flood-opacity",
|
|
1745
|
+
"opacity",
|
|
1746
|
+
"order",
|
|
1747
|
+
"orphans",
|
|
1748
|
+
"stop-opacity",
|
|
1749
|
+
"stroke-opacity",
|
|
1750
|
+
"widows"
|
|
1751
|
+
],
|
|
1752
|
+
"percentage": [],
|
|
1753
|
+
"position": [],
|
|
1754
|
+
"time": [
|
|
1755
|
+
"animation-delay",
|
|
1756
|
+
"animation-duration",
|
|
1757
|
+
"transition-delay",
|
|
1758
|
+
"transition-duration"
|
|
1759
|
+
],
|
|
1760
|
+
"url": []
|
|
1761
|
+
};
|
|
1762
|
+
|
|
654
1763
|
//#endregion
|
|
655
1764
|
//#region src/internal/plugins/variables.ts
|
|
1765
|
+
const KNOWN_VARIABLE_SEMANTIC_FAMILIES = new Set(VARIABLE_SEMANTIC_FAMILIES);
|
|
656
1766
|
function variables() {
|
|
657
1767
|
let resolveVariables;
|
|
658
1768
|
let rawVariables;
|
|
@@ -670,10 +1780,11 @@ function variables() {
|
|
|
670
1780
|
add: (variables) => {
|
|
671
1781
|
resolveVariables(variables).forEach((resolved) => {
|
|
672
1782
|
const { name, value, autocomplete: { asValueOf, asProperty } } = resolved;
|
|
673
|
-
asValueOf.
|
|
674
|
-
|
|
1783
|
+
const cssProperties = Object.fromEntries(asValueOf.filter((p) => p !== "-").map((p) => [p, `var(${name})`]));
|
|
1784
|
+
engine.appendAutocomplete({
|
|
1785
|
+
cssProperties,
|
|
1786
|
+
extraCssProperties: asProperty ? name : void 0
|
|
675
1787
|
});
|
|
676
|
-
if (asProperty) engine.appendAutocompleteExtraCssProperties(name);
|
|
677
1788
|
if (value != null) {
|
|
678
1789
|
const list = engine.variables.store.get(name) ?? [];
|
|
679
1790
|
list.push(resolved);
|
|
@@ -729,26 +1840,59 @@ function variables() {
|
|
|
729
1840
|
});
|
|
730
1841
|
}
|
|
731
1842
|
function createResolveVariablesFn({ pruneUnused: defaultPruneUnused = true } = {}) {
|
|
1843
|
+
function isVariableScopeObject(value) {
|
|
1844
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1845
|
+
}
|
|
732
1846
|
function _resolveVariables(variables, levels, result) {
|
|
733
1847
|
for (const [key, value] of Object.entries(variables)) if (key.startsWith("--")) {
|
|
734
|
-
const { value: varValue, autocomplete = {}, pruneUnused = defaultPruneUnused } = typeof value === "object" && value !== null && !Array.isArray(value) ? value : { value };
|
|
1848
|
+
const { value: varValue, semanticType, autocomplete = {}, pruneUnused = defaultPruneUnused } = typeof value === "object" && value !== null && !Array.isArray(value) ? value : { value };
|
|
735
1849
|
result.push({
|
|
736
1850
|
name: key,
|
|
737
1851
|
value: varValue,
|
|
738
1852
|
selector: levels.length > 0 ? levels : [":root"],
|
|
739
1853
|
autocomplete: {
|
|
740
|
-
asValueOf:
|
|
1854
|
+
asValueOf: resolveAutocompleteValueTargets({
|
|
1855
|
+
name: key,
|
|
1856
|
+
asValueOf: autocomplete.asValueOf,
|
|
1857
|
+
semanticType
|
|
1858
|
+
}),
|
|
741
1859
|
asProperty: autocomplete.asProperty ?? true
|
|
742
1860
|
},
|
|
743
1861
|
pruneUnused
|
|
744
1862
|
});
|
|
745
|
-
} else
|
|
1863
|
+
} else {
|
|
1864
|
+
if (!isVariableScopeObject(value)) {
|
|
1865
|
+
log.warn(`Invalid variables scope for selector "${key}". Expected a nested object, received ${typeof value}. Skipping.`);
|
|
1866
|
+
continue;
|
|
1867
|
+
}
|
|
1868
|
+
_resolveVariables(value, [...levels, key], result);
|
|
1869
|
+
}
|
|
746
1870
|
return result;
|
|
747
1871
|
}
|
|
748
1872
|
return function resolveVariables(variables) {
|
|
749
1873
|
return _resolveVariables(variables, [], []);
|
|
750
1874
|
};
|
|
751
1875
|
}
|
|
1876
|
+
function resolveAutocompleteValueTargets({ name, asValueOf, semanticType }) {
|
|
1877
|
+
const explicitTargets = asValueOf == null ? [] : [asValueOf].flat().map((value) => String(value));
|
|
1878
|
+
const semanticTypes = semanticType == null ? [] : [semanticType].flat().map((value) => String(value));
|
|
1879
|
+
if (explicitTargets.includes("-")) return [];
|
|
1880
|
+
const targets = /* @__PURE__ */ new Set();
|
|
1881
|
+
if (asValueOf == null && semanticTypes.length === 0) targets.add("*");
|
|
1882
|
+
explicitTargets.forEach((target) => {
|
|
1883
|
+
if (target !== "-") targets.add(target);
|
|
1884
|
+
});
|
|
1885
|
+
semanticTypes.forEach((family) => {
|
|
1886
|
+
const properties = VARIABLE_SEMANTIC_FAMILY_PROPERTIES[family];
|
|
1887
|
+
if (properties != null) {
|
|
1888
|
+
properties.forEach((property) => targets.add(property));
|
|
1889
|
+
return;
|
|
1890
|
+
}
|
|
1891
|
+
if (KNOWN_VARIABLE_SEMANTIC_FAMILIES.has(family) === false) log.warn(`Unknown semanticType "${family}" for variable "${name}". Skipping semantic autocomplete expansion.`);
|
|
1892
|
+
});
|
|
1893
|
+
if (targets.has("*")) return ["*"];
|
|
1894
|
+
return [...targets];
|
|
1895
|
+
}
|
|
752
1896
|
const VAR_NAME_RE = /var\((--[\w-]+)/g;
|
|
753
1897
|
function extractUsedVarNames(input) {
|
|
754
1898
|
return Array.from(input.matchAll(VAR_NAME_RE), (m) => m[1]);
|
|
@@ -802,8 +1946,10 @@ async function createEngine(config = {}) {
|
|
|
802
1946
|
log.debug("Engine config resolved with prefix:", resolvedConfig.prefix);
|
|
803
1947
|
resolvedConfig = await hooks.configureResolvedConfig(resolvedConfig.plugins, resolvedConfig);
|
|
804
1948
|
let engine = new Engine(resolvedConfig);
|
|
805
|
-
engine.
|
|
806
|
-
|
|
1949
|
+
engine.appendAutocomplete({
|
|
1950
|
+
extraProperties: "__layer",
|
|
1951
|
+
properties: { __layer: "Autocomplete['Layer']" }
|
|
1952
|
+
});
|
|
807
1953
|
log.debug("Engine instance created");
|
|
808
1954
|
engine = await hooks.configureEngine(engine.config.plugins, engine);
|
|
809
1955
|
log.debug("Engine initialized successfully");
|
|
@@ -813,10 +1959,7 @@ var Engine = class {
|
|
|
813
1959
|
config;
|
|
814
1960
|
pluginHooks = hooks;
|
|
815
1961
|
extract;
|
|
816
|
-
store =
|
|
817
|
-
atomicStyleIds: /* @__PURE__ */ new Map(),
|
|
818
|
-
atomicStyles: /* @__PURE__ */ new Map()
|
|
819
|
-
};
|
|
1962
|
+
store = createEngineStore();
|
|
820
1963
|
constructor(config) {
|
|
821
1964
|
this.config = config;
|
|
822
1965
|
this.extract = createExtractFn({
|
|
@@ -835,29 +1978,14 @@ var Engine = class {
|
|
|
835
1978
|
notifyAutocompleteConfigUpdated() {
|
|
836
1979
|
hooks.autocompleteConfigUpdated(this.config.plugins);
|
|
837
1980
|
}
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
this.notifyAutocompleteConfigUpdated();
|
|
1981
|
+
appendAutocomplete(contribution) {
|
|
1982
|
+
if (appendAutocomplete(this.config, contribution)) this.notifyAutocompleteConfigUpdated();
|
|
841
1983
|
}
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
this.
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
appendAutocompleteExtraProperties(this.config, ...properties);
|
|
848
|
-
this.notifyAutocompleteConfigUpdated();
|
|
849
|
-
}
|
|
850
|
-
appendAutocompleteExtraCssProperties(...properties) {
|
|
851
|
-
appendAutocompleteExtraCssProperties(this.config, ...properties);
|
|
852
|
-
this.notifyAutocompleteConfigUpdated();
|
|
853
|
-
}
|
|
854
|
-
appendAutocompletePropertyValues(property, ...tsTypes) {
|
|
855
|
-
appendAutocompletePropertyValues(this.config, property, ...tsTypes);
|
|
856
|
-
this.notifyAutocompleteConfigUpdated();
|
|
857
|
-
}
|
|
858
|
-
appendAutocompleteCssPropertyValues(property, ...values) {
|
|
859
|
-
appendAutocompleteCssPropertyValues(this.config, property, ...values);
|
|
860
|
-
this.notifyAutocompleteConfigUpdated();
|
|
1984
|
+
appendCssImport(cssImport) {
|
|
1985
|
+
const normalized = normalizeCssImport(cssImport);
|
|
1986
|
+
if (normalized == null || this.config.cssImports.includes(normalized)) return;
|
|
1987
|
+
this.config.cssImports.push(normalized);
|
|
1988
|
+
this.notifyPreflightUpdated();
|
|
861
1989
|
}
|
|
862
1990
|
addPreflight(preflight) {
|
|
863
1991
|
log.debug("Adding preflight");
|
|
@@ -873,61 +2001,58 @@ var Engine = class {
|
|
|
873
2001
|
extractStyleDefinition: (styleDefinition) => this.extract(styleDefinition)
|
|
874
2002
|
});
|
|
875
2003
|
const resolvedIds = [];
|
|
876
|
-
|
|
877
|
-
|
|
2004
|
+
const resolvedIdsByBaseKey = /* @__PURE__ */ new Map();
|
|
2005
|
+
for (const content of contents) {
|
|
2006
|
+
const { id, atomicStyle } = resolveAtomicStyle({
|
|
878
2007
|
content,
|
|
879
2008
|
prefix: this.config.prefix,
|
|
880
|
-
|
|
2009
|
+
store: this.store,
|
|
2010
|
+
resolvedIdsByBaseKey
|
|
881
2011
|
});
|
|
882
2012
|
resolvedIds.push(id);
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
id,
|
|
886
|
-
content
|
|
887
|
-
};
|
|
888
|
-
this.store.atomicStyles.set(id, atomicStyle);
|
|
2013
|
+
resolvedIdsByBaseKey.set(getAtomicStyleBaseKey(content), id);
|
|
2014
|
+
if (atomicStyle != null) {
|
|
889
2015
|
log.debug(`Atomic style added: ${id}`);
|
|
890
2016
|
this.notifyAtomicStyleAdded(atomicStyle);
|
|
891
2017
|
}
|
|
892
|
-
}
|
|
2018
|
+
}
|
|
893
2019
|
log.debug(`Resolved ${resolvedIds.length} atomic styles, ${unknown.size} unknown items`);
|
|
894
2020
|
return [...unknown, ...resolvedIds];
|
|
895
2021
|
}
|
|
896
2022
|
async renderPreflights(isFormatted) {
|
|
897
2023
|
log.debug("Rendering preflights...");
|
|
898
2024
|
const lineEnd = isFormatted ? "\n" : "";
|
|
899
|
-
const rendered = await Promise.all(this.config.preflights.map(async ({ layer, fn }) => {
|
|
2025
|
+
const rendered = (await Promise.all(this.config.preflights.map(async ({ layer, fn }) => {
|
|
900
2026
|
const result = await fn(this, isFormatted);
|
|
901
2027
|
return {
|
|
902
2028
|
layer,
|
|
903
|
-
css: typeof result === "string" ? result : await renderPreflightDefinition({
|
|
2029
|
+
css: (typeof result === "string" ? result : await renderPreflightDefinition({
|
|
904
2030
|
engine: this,
|
|
905
2031
|
preflightDefinition: result,
|
|
906
2032
|
isFormatted
|
|
907
|
-
})
|
|
2033
|
+
})).trim()
|
|
908
2034
|
};
|
|
909
|
-
}));
|
|
2035
|
+
}))).filter((r) => r.css);
|
|
910
2036
|
log.debug(`Rendered ${rendered.length} preflights`);
|
|
911
|
-
const unlayeredParts =
|
|
912
|
-
const layerGroups = /* @__PURE__ */ new Map();
|
|
913
|
-
for (const { layer, css } of rendered) if (layer == null) unlayeredParts.push(css);
|
|
914
|
-
else {
|
|
915
|
-
if (!layerGroups.has(layer)) layerGroups.set(layer, []);
|
|
916
|
-
layerGroups.get(layer).push(css);
|
|
917
|
-
}
|
|
2037
|
+
const { unlayeredParts, layerGroups } = groupRenderedPreflightsByLayer(rendered);
|
|
918
2038
|
const outputParts = [];
|
|
2039
|
+
if (this.config.cssImports.length > 0) outputParts.push(...this.config.cssImports);
|
|
919
2040
|
if (unlayeredParts.length > 0) {
|
|
920
|
-
const unlayeredContent = unlayeredParts.join(lineEnd);
|
|
921
2041
|
const { defaultPreflightsLayer } = this.config;
|
|
922
|
-
if (defaultPreflightsLayer in this.config.layers)
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
outputParts.push(`@layer ${layerName} {${lineEnd}${content}${lineEnd}}`);
|
|
2042
|
+
if (defaultPreflightsLayer in this.config.layers) {
|
|
2043
|
+
const unlayeredContent = unlayeredParts.map((part) => part.trim().split("\n").map((line) => ` ${line}`).join(lineEnd)).join(lineEnd);
|
|
2044
|
+
outputParts.push(`@layer ${defaultPreflightsLayer} {${lineEnd}${unlayeredContent}${lineEnd}}`);
|
|
2045
|
+
} else {
|
|
2046
|
+
const unlayeredContent = unlayeredParts.join(lineEnd);
|
|
2047
|
+
outputParts.push(unlayeredContent);
|
|
2048
|
+
}
|
|
930
2049
|
}
|
|
2050
|
+
outputParts.push(...renderLayerBlocks({
|
|
2051
|
+
layerGroups,
|
|
2052
|
+
layerOrder: sortLayerNames(this.config.layers),
|
|
2053
|
+
isFormatted,
|
|
2054
|
+
render: (cssList) => cssList.join(lineEnd)
|
|
2055
|
+
}));
|
|
931
2056
|
return outputParts.join(lineEnd);
|
|
932
2057
|
}
|
|
933
2058
|
async renderAtomicStyles(isFormatted, options = {}) {
|
|
@@ -951,12 +2076,92 @@ var Engine = class {
|
|
|
951
2076
|
}
|
|
952
2077
|
};
|
|
953
2078
|
function calcAtomicStyleRenderingWeight(style, defaultSelector) {
|
|
954
|
-
const { selector } = style.content;
|
|
2079
|
+
const { selector } = splitLayerSelector(style.content.selector);
|
|
955
2080
|
return selector.length === 1 && selector[0] === defaultSelector ? 0 : selector.length;
|
|
956
2081
|
}
|
|
957
2082
|
function sortLayerNames(layers) {
|
|
958
2083
|
return Object.entries(layers).sort((a, b) => a[1] - b[1] || a[0].localeCompare(b[0])).map(([name]) => name);
|
|
959
2084
|
}
|
|
2085
|
+
function appendLayerGroupItem(layerGroups, layer, item) {
|
|
2086
|
+
if (!layerGroups.has(layer)) layerGroups.set(layer, []);
|
|
2087
|
+
layerGroups.get(layer).push(item);
|
|
2088
|
+
}
|
|
2089
|
+
function getOrderedLayerNamesForGroups(layerGroups, layerOrder) {
|
|
2090
|
+
return [...layerOrder.filter((name) => (layerGroups.get(name)?.length ?? 0) > 0), ...[...layerGroups.keys()].filter((name) => !layerOrder.includes(name) && (layerGroups.get(name)?.length ?? 0) > 0)];
|
|
2091
|
+
}
|
|
2092
|
+
function renderLayerBlocks({ layerGroups, layerOrder, isFormatted, render }) {
|
|
2093
|
+
const lineEnd = isFormatted ? "\n" : "";
|
|
2094
|
+
return getOrderedLayerNamesForGroups(layerGroups, layerOrder).map((layerName) => {
|
|
2095
|
+
const items = layerGroups.get(layerName);
|
|
2096
|
+
return `@layer ${layerName} {${lineEnd}${isFormatted ? render(items).trim().split("\n").map((line) => ` ${line}`).join("\n") : render(items)}${lineEnd}}`;
|
|
2097
|
+
});
|
|
2098
|
+
}
|
|
2099
|
+
function normalizeCssImport(cssImport) {
|
|
2100
|
+
const normalized = cssImport.trim();
|
|
2101
|
+
if (normalized.length === 0) return null;
|
|
2102
|
+
return normalized.endsWith(";") ? normalized : `${normalized};`;
|
|
2103
|
+
}
|
|
2104
|
+
function groupRenderedPreflightsByLayer(rendered) {
|
|
2105
|
+
const unlayeredParts = [];
|
|
2106
|
+
const layerGroups = /* @__PURE__ */ new Map();
|
|
2107
|
+
for (const { layer, css } of rendered) {
|
|
2108
|
+
if (layer == null) {
|
|
2109
|
+
unlayeredParts.push(css);
|
|
2110
|
+
continue;
|
|
2111
|
+
}
|
|
2112
|
+
appendLayerGroupItem(layerGroups, layer, css);
|
|
2113
|
+
}
|
|
2114
|
+
return {
|
|
2115
|
+
unlayeredParts,
|
|
2116
|
+
layerGroups
|
|
2117
|
+
};
|
|
2118
|
+
}
|
|
2119
|
+
function splitLayerSelector(selector) {
|
|
2120
|
+
const [first, ...rest] = selector;
|
|
2121
|
+
if (first == null || first.startsWith(LAYER_SELECTOR_PREFIX) === false) return {
|
|
2122
|
+
layer: void 0,
|
|
2123
|
+
selector
|
|
2124
|
+
};
|
|
2125
|
+
const layer = first.slice(LAYER_SELECTOR_PREFIX.length).trim();
|
|
2126
|
+
if (layer.length === 0) return {
|
|
2127
|
+
layer: void 0,
|
|
2128
|
+
selector
|
|
2129
|
+
};
|
|
2130
|
+
return {
|
|
2131
|
+
layer,
|
|
2132
|
+
selector: rest
|
|
2133
|
+
};
|
|
2134
|
+
}
|
|
2135
|
+
function prependLayerSelector(selector, layer) {
|
|
2136
|
+
return [`${LAYER_SELECTOR_PREFIX}${layer}`, ...selector];
|
|
2137
|
+
}
|
|
2138
|
+
function groupAtomicStylesByLayer({ styles, layerOrder, defaultUtilitiesLayer }) {
|
|
2139
|
+
const unlayeredStyles = [];
|
|
2140
|
+
const layerGroups = new Map(layerOrder.map((name) => [name, []]));
|
|
2141
|
+
const candidateDefaultLayer = defaultUtilitiesLayer ?? layerOrder[layerOrder.length - 1];
|
|
2142
|
+
const defaultLayer = candidateDefaultLayer != null && layerGroups.has(candidateDefaultLayer) ? candidateDefaultLayer : layerOrder[layerOrder.length - 1];
|
|
2143
|
+
for (const style of styles) {
|
|
2144
|
+
const { layer } = splitLayerSelector(style.content.selector);
|
|
2145
|
+
if (layer != null && layerGroups.has(layer)) {
|
|
2146
|
+
layerGroups.get(layer).push(style);
|
|
2147
|
+
continue;
|
|
2148
|
+
}
|
|
2149
|
+
if (layer != null) {
|
|
2150
|
+
log.warn(`Unknown layer "${layer}" encountered in atomic style; falling back to unlayered output.`);
|
|
2151
|
+
unlayeredStyles.push(style);
|
|
2152
|
+
continue;
|
|
2153
|
+
}
|
|
2154
|
+
if (defaultLayer != null) {
|
|
2155
|
+
layerGroups.get(defaultLayer).push(style);
|
|
2156
|
+
continue;
|
|
2157
|
+
}
|
|
2158
|
+
unlayeredStyles.push(style);
|
|
2159
|
+
}
|
|
2160
|
+
return {
|
|
2161
|
+
unlayeredStyles,
|
|
2162
|
+
layerGroups
|
|
2163
|
+
};
|
|
2164
|
+
}
|
|
960
2165
|
function isWithLayer(p) {
|
|
961
2166
|
if (typeof p !== "object" || p === null) return false;
|
|
962
2167
|
const record = p;
|
|
@@ -985,7 +2190,7 @@ function resolvePreflight(preflight) {
|
|
|
985
2190
|
};
|
|
986
2191
|
}
|
|
987
2192
|
async function resolveEngineConfig(config) {
|
|
988
|
-
const { prefix =
|
|
2193
|
+
const { prefix = DEFAULT_ATOMIC_STYLE_ID_PREFIX, defaultSelector = `.${ATOMIC_STYLE_ID_PLACEHOLDER}`, plugins = [], cssImports = [], preflights = [] } = config;
|
|
989
2194
|
const layers = Object.assign({}, DEFAULT_LAYERS, config.layers);
|
|
990
2195
|
const defaultPreflightsLayer = config.defaultPreflightsLayer ?? DEFAULT_PREFLIGHTS_LAYER;
|
|
991
2196
|
const defaultUtilitiesLayer = config.defaultUtilitiesLayer ?? DEFAULT_UTILITIES_LAYER;
|
|
@@ -996,6 +2201,7 @@ async function resolveEngineConfig(config) {
|
|
|
996
2201
|
prefix,
|
|
997
2202
|
defaultSelector,
|
|
998
2203
|
preflights: [],
|
|
2204
|
+
cssImports: [...new Set(cssImports.map(normalizeCssImport).filter(isNotNullish))],
|
|
999
2205
|
layers,
|
|
1000
2206
|
defaultPreflightsLayer,
|
|
1001
2207
|
defaultUtilitiesLayer,
|
|
@@ -1005,46 +2211,21 @@ async function resolveEngineConfig(config) {
|
|
|
1005
2211
|
extraProperties: /* @__PURE__ */ new Set(),
|
|
1006
2212
|
extraCssProperties: /* @__PURE__ */ new Set(),
|
|
1007
2213
|
properties: /* @__PURE__ */ new Map(),
|
|
1008
|
-
cssProperties: /* @__PURE__ */ new Map()
|
|
2214
|
+
cssProperties: /* @__PURE__ */ new Map(),
|
|
2215
|
+
patterns: {
|
|
2216
|
+
selectors: /* @__PURE__ */ new Set(),
|
|
2217
|
+
styleItemStrings: /* @__PURE__ */ new Set(),
|
|
2218
|
+
properties: /* @__PURE__ */ new Map(),
|
|
2219
|
+
cssProperties: /* @__PURE__ */ new Map()
|
|
2220
|
+
}
|
|
1009
2221
|
}
|
|
1010
2222
|
};
|
|
2223
|
+
appendAutocomplete(resolvedConfig, config.autocomplete ?? {});
|
|
1011
2224
|
const resolvedPreflights = preflights.map(resolvePreflight);
|
|
1012
2225
|
resolvedConfig.preflights.push(...resolvedPreflights);
|
|
1013
2226
|
log.debug(`Engine config resolved: ${resolvedPreflights.length} preflights processed`);
|
|
1014
2227
|
return resolvedConfig;
|
|
1015
2228
|
}
|
|
1016
|
-
function getAtomicStyleId({ content, prefix, stored }) {
|
|
1017
|
-
const key = serialize([
|
|
1018
|
-
content.selector,
|
|
1019
|
-
content.property,
|
|
1020
|
-
content.value,
|
|
1021
|
-
content.layer
|
|
1022
|
-
]);
|
|
1023
|
-
const cached = stored.get(key);
|
|
1024
|
-
if (cached != null) {
|
|
1025
|
-
log.debug(`Atomic style cached: ${cached}`);
|
|
1026
|
-
return cached;
|
|
1027
|
-
}
|
|
1028
|
-
const num = stored.size;
|
|
1029
|
-
const id = `${prefix}${numberToChars(num)}`;
|
|
1030
|
-
stored.set(key, id);
|
|
1031
|
-
log.debug(`Generated new atomic style ID: ${id}`);
|
|
1032
|
-
return id;
|
|
1033
|
-
}
|
|
1034
|
-
function optimizeAtomicStyleContents(list) {
|
|
1035
|
-
const map = /* @__PURE__ */ new Map();
|
|
1036
|
-
list.forEach((content) => {
|
|
1037
|
-
const key = serialize([
|
|
1038
|
-
content.selector,
|
|
1039
|
-
content.property,
|
|
1040
|
-
content.layer
|
|
1041
|
-
]);
|
|
1042
|
-
map.delete(key);
|
|
1043
|
-
if (content.value == null) return;
|
|
1044
|
-
map.set(key, { ...content });
|
|
1045
|
-
});
|
|
1046
|
-
return [...map.values()];
|
|
1047
|
-
}
|
|
1048
2229
|
function extractLayerFromStyleItem(item) {
|
|
1049
2230
|
const record = item;
|
|
1050
2231
|
const layer = typeof record.__layer === "string" ? record.__layer : void 0;
|
|
@@ -1065,8 +2246,10 @@ async function resolveStyleItemList({ itemList, transformStyleItems, extractStyl
|
|
|
1065
2246
|
else {
|
|
1066
2247
|
const { layer, definition } = extractLayerFromStyleItem(styleItem);
|
|
1067
2248
|
const extracted = await extractStyleDefinition(definition);
|
|
1068
|
-
|
|
1069
|
-
|
|
2249
|
+
list.push(...layer == null ? extracted : extracted.map((content) => ({
|
|
2250
|
+
...content,
|
|
2251
|
+
selector: prependLayerSelector(content.selector, layer)
|
|
2252
|
+
})));
|
|
1070
2253
|
}
|
|
1071
2254
|
return {
|
|
1072
2255
|
unknown,
|
|
@@ -1078,7 +2261,8 @@ function sortAtomicStyles(styles, defaultSelector) {
|
|
|
1078
2261
|
}
|
|
1079
2262
|
function renderAtomicStylesCss({ atomicStyles, isPreview, isFormatted }) {
|
|
1080
2263
|
const blocks = /* @__PURE__ */ new Map();
|
|
1081
|
-
atomicStyles.forEach(({ id, content: { selector, property, value } }) => {
|
|
2264
|
+
atomicStyles.forEach(({ id, content: { selector: rawSelector, property, value } }) => {
|
|
2265
|
+
const { selector } = splitLayerSelector(rawSelector);
|
|
1082
2266
|
if (selector.some((s) => s.includes(ATOMIC_STYLE_ID_PLACEHOLDER)) === false || value == null) return;
|
|
1083
2267
|
const renderObject = {
|
|
1084
2268
|
selector: isPreview ? selector : selector.map((s) => s.replace(ATOMIC_STYLE_ID_PLACEHOLDER_RE_GLOBAL, id)),
|
|
@@ -1110,35 +2294,27 @@ function renderAtomicStyles(payload) {
|
|
|
1110
2294
|
});
|
|
1111
2295
|
const layerOrder = sortLayerNames(layers);
|
|
1112
2296
|
const lineEnd = isFormatted ? "\n" : "";
|
|
1113
|
-
const unlayeredStyles =
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
const layer = style.content.layer;
|
|
1119
|
-
if (layer != null && layerGroups.has(layer)) layerGroups.get(layer).push(style);
|
|
1120
|
-
else if (layer != null) {
|
|
1121
|
-
log.warn(`Unknown layer "${layer}" encountered in atomic style; falling back to unlayered output.`);
|
|
1122
|
-
unlayeredStyles.push(style);
|
|
1123
|
-
} else if (defaultLayer != null) layerGroups.get(defaultLayer).push(style);
|
|
1124
|
-
else unlayeredStyles.push(style);
|
|
1125
|
-
}
|
|
2297
|
+
const { unlayeredStyles, layerGroups } = groupAtomicStylesByLayer({
|
|
2298
|
+
styles: sortedStyles,
|
|
2299
|
+
layerOrder,
|
|
2300
|
+
defaultUtilitiesLayer
|
|
2301
|
+
});
|
|
1126
2302
|
const parts = [];
|
|
1127
2303
|
if (unlayeredStyles.length > 0) parts.push(renderAtomicStylesCss({
|
|
1128
2304
|
atomicStyles: unlayeredStyles,
|
|
1129
2305
|
isPreview,
|
|
1130
2306
|
isFormatted
|
|
1131
2307
|
}));
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
2308
|
+
parts.push(...renderLayerBlocks({
|
|
2309
|
+
layerGroups,
|
|
2310
|
+
layerOrder,
|
|
2311
|
+
isFormatted,
|
|
2312
|
+
render: (styles) => renderAtomicStylesCss({
|
|
1136
2313
|
atomicStyles: styles,
|
|
1137
2314
|
isPreview,
|
|
1138
2315
|
isFormatted
|
|
1139
|
-
})
|
|
1140
|
-
|
|
1141
|
-
}
|
|
2316
|
+
})
|
|
2317
|
+
}));
|
|
1142
2318
|
return parts.join(lineEnd);
|
|
1143
2319
|
}
|
|
1144
2320
|
async function _renderPreflightDefinition({ engine, preflightDefinition, blocks = /* @__PURE__ */ new Map() }) {
|
|
@@ -1213,4 +2389,4 @@ function defineVariables(variables) {
|
|
|
1213
2389
|
/* c8 ignore end */
|
|
1214
2390
|
|
|
1215
2391
|
//#endregion
|
|
1216
|
-
export {
|
|
2392
|
+
export { appendAutocomplete, createEngine, createLogger, defineEngineConfig, defineEnginePlugin, defineKeyframes, definePreflight, defineSelector, defineShortcut, defineStyleDefinition, defineVariables, log, renderCSSStyleBlocks, sortLayerNames };
|