@pandacss/parser 0.0.0-dev-20230623141647 → 0.0.0-dev-20230625185332
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.js +79 -33
- package/dist/index.mjs +81 -35
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -175,6 +175,8 @@ var createParserResult = () => new ParserResult();
|
|
|
175
175
|
|
|
176
176
|
// src/parser.ts
|
|
177
177
|
var isNodeRecipe = (node) => node.type === "recipe";
|
|
178
|
+
var cvaProps = ["compoundVariants", "defaultVariants", "variants", "base"];
|
|
179
|
+
var isCva = (map) => cvaProps.some((prop) => map.has(prop));
|
|
178
180
|
function createImportMatcher(mod, values) {
|
|
179
181
|
const regex = values ? new RegExp(`^(${values.join("|")})$`) : /.*/;
|
|
180
182
|
return {
|
|
@@ -188,10 +190,10 @@ function createImportMatcher(mod, values) {
|
|
|
188
190
|
var combineResult = (unboxed) => {
|
|
189
191
|
return [...unboxed.conditions, unboxed.raw, ...unboxed.spreadConditions];
|
|
190
192
|
};
|
|
191
|
-
var fallback = (
|
|
193
|
+
var fallback = (box2) => ({
|
|
192
194
|
value: void 0,
|
|
193
|
-
getNode: () =>
|
|
194
|
-
getStack: () =>
|
|
195
|
+
getNode: () => box2.getNode(),
|
|
196
|
+
getStack: () => box2.getStack()
|
|
195
197
|
});
|
|
196
198
|
var defaultEnv = { preset: "NONE" };
|
|
197
199
|
function createParser(options) {
|
|
@@ -222,6 +224,7 @@ function createParser(options) {
|
|
|
222
224
|
const isValidPattern = imports.createMatch(importMap.pattern);
|
|
223
225
|
const isValidRecipe = imports.createMatch(importMap.recipe);
|
|
224
226
|
const isValidStyleFn = (name) => name === jsx?.factory;
|
|
227
|
+
const isFactory = (name) => jsx && name.startsWith(jsx.factory);
|
|
225
228
|
const jsxFactoryAlias = jsx ? imports.getAlias(jsx.factory) : "panda";
|
|
226
229
|
const jsxPatternNodes = new RegExp(
|
|
227
230
|
`^(${jsx?.nodes.map((node) => node.type === "pattern" && node.name).join("|")})$`
|
|
@@ -309,6 +312,9 @@ function createParser(options) {
|
|
|
309
312
|
return true;
|
|
310
313
|
}
|
|
311
314
|
},
|
|
315
|
+
taggedTemplates: {
|
|
316
|
+
matchTaggedTemplate: (tag) => matchFn(tag.fnName)
|
|
317
|
+
},
|
|
312
318
|
getEvaluateOptions: (node) => ({ node, environment: defaultEnv }),
|
|
313
319
|
flags: { skipTraverseFiles: true }
|
|
314
320
|
});
|
|
@@ -319,48 +325,88 @@ function createParser(options) {
|
|
|
319
325
|
if (result.kind === "function") {
|
|
320
326
|
(0, import_ts_pattern.match)(name).when(css.match, (name2) => {
|
|
321
327
|
result.queryList.forEach((query) => {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
328
|
+
if (query.kind === "call-expression") {
|
|
329
|
+
collector.set(name2, {
|
|
330
|
+
name: name2,
|
|
331
|
+
box: query.box.value[0] ?? fallback(query.box),
|
|
332
|
+
data: combineResult((0, import_extractor.unbox)(query.box.value[0]))
|
|
333
|
+
});
|
|
334
|
+
} else if (query.kind === "tagged-template") {
|
|
335
|
+
const obj = (0, import_shared2.astish)(query.box.value);
|
|
336
|
+
collector.set(name2, {
|
|
337
|
+
name: name2,
|
|
338
|
+
box: query.box ?? fallback(query.box),
|
|
339
|
+
data: [obj]
|
|
340
|
+
});
|
|
341
|
+
}
|
|
327
342
|
});
|
|
328
343
|
}).when(isValidPattern, (name2) => {
|
|
329
344
|
result.queryList.forEach((query) => {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
345
|
+
if (query.kind === "call-expression") {
|
|
346
|
+
collector.setPattern(name2, {
|
|
347
|
+
name: name2,
|
|
348
|
+
box: query.box.value[0] ?? fallback(query.box),
|
|
349
|
+
data: combineResult((0, import_extractor.unbox)(query.box.value[0]))
|
|
350
|
+
});
|
|
351
|
+
}
|
|
335
352
|
});
|
|
336
353
|
}).when(isValidRecipe, (name2) => {
|
|
337
354
|
result.queryList.forEach((query) => {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
355
|
+
if (query.kind === "call-expression") {
|
|
356
|
+
collector.setRecipe(name2, {
|
|
357
|
+
name: name2,
|
|
358
|
+
box: query.box.value[0] ?? fallback(query.box),
|
|
359
|
+
data: combineResult((0, import_extractor.unbox)(query.box.value[0]))
|
|
360
|
+
});
|
|
361
|
+
}
|
|
343
362
|
});
|
|
344
363
|
}).when(isValidStyleFn, () => {
|
|
345
364
|
result.queryList.forEach((query) => {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
365
|
+
if (query.kind === "call-expression" && query.box.value[1]) {
|
|
366
|
+
const map = query.box.value[1];
|
|
367
|
+
const result2 = {
|
|
368
|
+
name,
|
|
369
|
+
box: map ?? fallback(query.box),
|
|
370
|
+
data: combineResult((0, import_extractor.unbox)(map))
|
|
371
|
+
};
|
|
372
|
+
if (import_extractor.box.isMap(map) && isCva(map.value)) {
|
|
373
|
+
collector.setCva(result2);
|
|
374
|
+
} else {
|
|
375
|
+
collector.set("css", result2);
|
|
376
|
+
}
|
|
377
|
+
} else if (query.kind === "tagged-template") {
|
|
378
|
+
const obj = (0, import_shared2.astish)(query.box.value);
|
|
379
|
+
collector.set("css", {
|
|
380
|
+
name,
|
|
381
|
+
box: query.box ?? fallback(query.box),
|
|
382
|
+
data: [obj]
|
|
383
|
+
});
|
|
384
|
+
}
|
|
351
385
|
});
|
|
352
|
-
}).when(
|
|
353
|
-
(
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
386
|
+
}).when(isFactory, (name2) => {
|
|
387
|
+
result.queryList.forEach((query) => {
|
|
388
|
+
if (query.kind === "call-expression") {
|
|
389
|
+
const map = query.box.value[0];
|
|
390
|
+
const result2 = {
|
|
357
391
|
name: name2,
|
|
358
|
-
box:
|
|
359
|
-
data: combineResult((0, import_extractor.unbox)(
|
|
392
|
+
box: map ?? fallback(query.box),
|
|
393
|
+
data: combineResult((0, import_extractor.unbox)(map))
|
|
394
|
+
};
|
|
395
|
+
if (import_extractor.box.isMap(map) && isCva(map.value)) {
|
|
396
|
+
collector.setCva(result2);
|
|
397
|
+
} else {
|
|
398
|
+
collector.set("css", result2);
|
|
399
|
+
}
|
|
400
|
+
} else if (query.kind === "tagged-template") {
|
|
401
|
+
const obj = (0, import_shared2.astish)(query.box.value);
|
|
402
|
+
collector.set("css", {
|
|
403
|
+
name: name2,
|
|
404
|
+
box: query.box ?? fallback(query.box),
|
|
405
|
+
data: [obj]
|
|
360
406
|
});
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
).otherwise(() => {
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
}).otherwise(() => {
|
|
364
410
|
});
|
|
365
411
|
} else if (result.kind === "component") {
|
|
366
412
|
result.queryList.forEach((query) => {
|
package/dist/index.mjs
CHANGED
|
@@ -3,9 +3,9 @@ import { Obj, pipe, tap } from "lil-fp";
|
|
|
3
3
|
import { Project as TsProject, ScriptKind } from "ts-morph";
|
|
4
4
|
|
|
5
5
|
// src/parser.ts
|
|
6
|
-
import { extract, unbox } from "@pandacss/extractor";
|
|
6
|
+
import { extract, unbox, box } from "@pandacss/extractor";
|
|
7
7
|
import { logger } from "@pandacss/logger";
|
|
8
|
-
import { memo as memo2 } from "@pandacss/shared";
|
|
8
|
+
import { astish, memo as memo2 } from "@pandacss/shared";
|
|
9
9
|
import { Node } from "ts-morph";
|
|
10
10
|
import { match } from "ts-pattern";
|
|
11
11
|
|
|
@@ -137,6 +137,8 @@ var createParserResult = () => new ParserResult();
|
|
|
137
137
|
|
|
138
138
|
// src/parser.ts
|
|
139
139
|
var isNodeRecipe = (node) => node.type === "recipe";
|
|
140
|
+
var cvaProps = ["compoundVariants", "defaultVariants", "variants", "base"];
|
|
141
|
+
var isCva = (map) => cvaProps.some((prop) => map.has(prop));
|
|
140
142
|
function createImportMatcher(mod, values) {
|
|
141
143
|
const regex = values ? new RegExp(`^(${values.join("|")})$`) : /.*/;
|
|
142
144
|
return {
|
|
@@ -150,10 +152,10 @@ function createImportMatcher(mod, values) {
|
|
|
150
152
|
var combineResult = (unboxed) => {
|
|
151
153
|
return [...unboxed.conditions, unboxed.raw, ...unboxed.spreadConditions];
|
|
152
154
|
};
|
|
153
|
-
var fallback = (
|
|
155
|
+
var fallback = (box2) => ({
|
|
154
156
|
value: void 0,
|
|
155
|
-
getNode: () =>
|
|
156
|
-
getStack: () =>
|
|
157
|
+
getNode: () => box2.getNode(),
|
|
158
|
+
getStack: () => box2.getStack()
|
|
157
159
|
});
|
|
158
160
|
var defaultEnv = { preset: "NONE" };
|
|
159
161
|
function createParser(options) {
|
|
@@ -184,6 +186,7 @@ function createParser(options) {
|
|
|
184
186
|
const isValidPattern = imports.createMatch(importMap.pattern);
|
|
185
187
|
const isValidRecipe = imports.createMatch(importMap.recipe);
|
|
186
188
|
const isValidStyleFn = (name) => name === jsx?.factory;
|
|
189
|
+
const isFactory = (name) => jsx && name.startsWith(jsx.factory);
|
|
187
190
|
const jsxFactoryAlias = jsx ? imports.getAlias(jsx.factory) : "panda";
|
|
188
191
|
const jsxPatternNodes = new RegExp(
|
|
189
192
|
`^(${jsx?.nodes.map((node) => node.type === "pattern" && node.name).join("|")})$`
|
|
@@ -271,6 +274,9 @@ function createParser(options) {
|
|
|
271
274
|
return true;
|
|
272
275
|
}
|
|
273
276
|
},
|
|
277
|
+
taggedTemplates: {
|
|
278
|
+
matchTaggedTemplate: (tag) => matchFn(tag.fnName)
|
|
279
|
+
},
|
|
274
280
|
getEvaluateOptions: (node) => ({ node, environment: defaultEnv }),
|
|
275
281
|
flags: { skipTraverseFiles: true }
|
|
276
282
|
});
|
|
@@ -281,48 +287,88 @@ function createParser(options) {
|
|
|
281
287
|
if (result.kind === "function") {
|
|
282
288
|
match(name).when(css.match, (name2) => {
|
|
283
289
|
result.queryList.forEach((query) => {
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
290
|
+
if (query.kind === "call-expression") {
|
|
291
|
+
collector.set(name2, {
|
|
292
|
+
name: name2,
|
|
293
|
+
box: query.box.value[0] ?? fallback(query.box),
|
|
294
|
+
data: combineResult(unbox(query.box.value[0]))
|
|
295
|
+
});
|
|
296
|
+
} else if (query.kind === "tagged-template") {
|
|
297
|
+
const obj = astish(query.box.value);
|
|
298
|
+
collector.set(name2, {
|
|
299
|
+
name: name2,
|
|
300
|
+
box: query.box ?? fallback(query.box),
|
|
301
|
+
data: [obj]
|
|
302
|
+
});
|
|
303
|
+
}
|
|
289
304
|
});
|
|
290
305
|
}).when(isValidPattern, (name2) => {
|
|
291
306
|
result.queryList.forEach((query) => {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
307
|
+
if (query.kind === "call-expression") {
|
|
308
|
+
collector.setPattern(name2, {
|
|
309
|
+
name: name2,
|
|
310
|
+
box: query.box.value[0] ?? fallback(query.box),
|
|
311
|
+
data: combineResult(unbox(query.box.value[0]))
|
|
312
|
+
});
|
|
313
|
+
}
|
|
297
314
|
});
|
|
298
315
|
}).when(isValidRecipe, (name2) => {
|
|
299
316
|
result.queryList.forEach((query) => {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
317
|
+
if (query.kind === "call-expression") {
|
|
318
|
+
collector.setRecipe(name2, {
|
|
319
|
+
name: name2,
|
|
320
|
+
box: query.box.value[0] ?? fallback(query.box),
|
|
321
|
+
data: combineResult(unbox(query.box.value[0]))
|
|
322
|
+
});
|
|
323
|
+
}
|
|
305
324
|
});
|
|
306
325
|
}).when(isValidStyleFn, () => {
|
|
307
326
|
result.queryList.forEach((query) => {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
327
|
+
if (query.kind === "call-expression" && query.box.value[1]) {
|
|
328
|
+
const map = query.box.value[1];
|
|
329
|
+
const result2 = {
|
|
330
|
+
name,
|
|
331
|
+
box: map ?? fallback(query.box),
|
|
332
|
+
data: combineResult(unbox(map))
|
|
333
|
+
};
|
|
334
|
+
if (box.isMap(map) && isCva(map.value)) {
|
|
335
|
+
collector.setCva(result2);
|
|
336
|
+
} else {
|
|
337
|
+
collector.set("css", result2);
|
|
338
|
+
}
|
|
339
|
+
} else if (query.kind === "tagged-template") {
|
|
340
|
+
const obj = astish(query.box.value);
|
|
341
|
+
collector.set("css", {
|
|
342
|
+
name,
|
|
343
|
+
box: query.box ?? fallback(query.box),
|
|
344
|
+
data: [obj]
|
|
345
|
+
});
|
|
346
|
+
}
|
|
313
347
|
});
|
|
314
|
-
}).when(
|
|
315
|
-
(
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
348
|
+
}).when(isFactory, (name2) => {
|
|
349
|
+
result.queryList.forEach((query) => {
|
|
350
|
+
if (query.kind === "call-expression") {
|
|
351
|
+
const map = query.box.value[0];
|
|
352
|
+
const result2 = {
|
|
319
353
|
name: name2,
|
|
320
|
-
box:
|
|
321
|
-
data: combineResult(unbox(
|
|
354
|
+
box: map ?? fallback(query.box),
|
|
355
|
+
data: combineResult(unbox(map))
|
|
356
|
+
};
|
|
357
|
+
if (box.isMap(map) && isCva(map.value)) {
|
|
358
|
+
collector.setCva(result2);
|
|
359
|
+
} else {
|
|
360
|
+
collector.set("css", result2);
|
|
361
|
+
}
|
|
362
|
+
} else if (query.kind === "tagged-template") {
|
|
363
|
+
const obj = astish(query.box.value);
|
|
364
|
+
collector.set("css", {
|
|
365
|
+
name: name2,
|
|
366
|
+
box: query.box ?? fallback(query.box),
|
|
367
|
+
data: [obj]
|
|
322
368
|
});
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
).otherwise(() => {
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
}).otherwise(() => {
|
|
326
372
|
});
|
|
327
373
|
} else if (result.kind === "component") {
|
|
328
374
|
result.queryList.forEach((query) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pandacss/parser",
|
|
3
|
-
"version": "0.0.0-dev-
|
|
3
|
+
"version": "0.0.0-dev-20230625185332",
|
|
4
4
|
"description": "The static parser for panda css",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
"svelte": "^3.59.1",
|
|
18
18
|
"ts-morph": "18.0.0",
|
|
19
19
|
"ts-pattern": "4.3.0",
|
|
20
|
-
"@pandacss/extractor": "0.0.0-dev-
|
|
21
|
-
"@pandacss/is-valid-prop": "0.0.0-dev-
|
|
22
|
-
"@pandacss/logger": "0.0.0-dev-
|
|
23
|
-
"@pandacss/shared": "0.0.0-dev-
|
|
24
|
-
"@pandacss/types": "0.0.0-dev-
|
|
20
|
+
"@pandacss/extractor": "0.0.0-dev-20230625185332",
|
|
21
|
+
"@pandacss/is-valid-prop": "0.0.0-dev-20230625185332",
|
|
22
|
+
"@pandacss/logger": "0.0.0-dev-20230625185332",
|
|
23
|
+
"@pandacss/shared": "0.0.0-dev-20230625185332",
|
|
24
|
+
"@pandacss/types": "0.0.0-dev-20230625185332"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"hookable": "5.5.3",
|
|
28
|
-
"@pandacss/fixture": "0.0.0-dev-
|
|
29
|
-
"@pandacss/generator": "0.0.0-dev-
|
|
28
|
+
"@pandacss/fixture": "0.0.0-dev-20230625185332",
|
|
29
|
+
"@pandacss/generator": "0.0.0-dev-20230625185332"
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
32
32
|
"dist"
|