@pandacss/generator 0.0.0-dev-20231019221036 → 0.0.0-dev-20231020171339

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 CHANGED
@@ -48,6 +48,7 @@ declare const getEngine: (conf: ConfigResultWithHooks) => {
48
48
  factoryName: string;
49
49
  upperName: string;
50
50
  typeName: string;
51
+ variantName: string;
51
52
  componentName: string;
52
53
  framework: ("react" | "solid" | "preact" | "vue" | "qwik") | undefined;
53
54
  styleProps: "all" | "minimal" | "none";
@@ -209,6 +210,7 @@ declare const createGenerator: (conf: ConfigResultWithHooks) => {
209
210
  factoryName: string;
210
211
  upperName: string;
211
212
  typeName: string;
213
+ variantName: string;
212
214
  componentName: string;
213
215
  framework: ("react" | "solid" | "preact" | "vue" | "qwik") | undefined;
214
216
  styleProps: "all" | "minimal" | "none";
@@ -321,6 +323,7 @@ declare const createGenerator: (conf: ConfigResultWithHooks) => {
321
323
  factoryName: string;
322
324
  upperName: string;
323
325
  typeName: string;
326
+ variantName: string;
324
327
  componentName: string;
325
328
  framework: ("react" | "solid" | "preact" | "vue" | "qwik") | undefined;
326
329
  styleProps: "all" | "minimal" | "none";
@@ -515,6 +518,7 @@ declare const createGenerator: (conf: ConfigResultWithHooks) => {
515
518
  factoryName: string;
516
519
  upperName: string;
517
520
  typeName: string;
521
+ variantName: string;
518
522
  componentName: string;
519
523
  framework: ("react" | "solid" | "preact" | "vue" | "qwik") | undefined;
520
524
  styleProps: "all" | "minimal" | "none";
package/dist/index.d.ts CHANGED
@@ -48,6 +48,7 @@ declare const getEngine: (conf: ConfigResultWithHooks) => {
48
48
  factoryName: string;
49
49
  upperName: string;
50
50
  typeName: string;
51
+ variantName: string;
51
52
  componentName: string;
52
53
  framework: ("react" | "solid" | "preact" | "vue" | "qwik") | undefined;
53
54
  styleProps: "all" | "minimal" | "none";
@@ -209,6 +210,7 @@ declare const createGenerator: (conf: ConfigResultWithHooks) => {
209
210
  factoryName: string;
210
211
  upperName: string;
211
212
  typeName: string;
213
+ variantName: string;
212
214
  componentName: string;
213
215
  framework: ("react" | "solid" | "preact" | "vue" | "qwik") | undefined;
214
216
  styleProps: "all" | "minimal" | "none";
@@ -321,6 +323,7 @@ declare const createGenerator: (conf: ConfigResultWithHooks) => {
321
323
  factoryName: string;
322
324
  upperName: string;
323
325
  typeName: string;
326
+ variantName: string;
324
327
  componentName: string;
325
328
  framework: ("react" | "solid" | "preact" | "vue" | "qwik") | undefined;
326
329
  styleProps: "all" | "minimal" | "none";
@@ -515,6 +518,7 @@ declare const createGenerator: (conf: ConfigResultWithHooks) => {
515
518
  factoryName: string;
516
519
  upperName: string;
517
520
  typeName: string;
521
+ variantName: string;
518
522
  componentName: string;
519
523
  framework: ("react" | "solid" | "preact" | "vue" | "qwik") | undefined;
520
524
  styleProps: "all" | "minimal" | "none";
package/dist/index.js CHANGED
@@ -518,12 +518,25 @@ function getDeepestNode(node) {
518
518
  function cleanupSelectors(css2, varSelector) {
519
519
  const root = import_postcss2.default.parse(css2);
520
520
  root.walkRules((rule) => {
521
+ const selectors = [];
521
522
  rule.selectors.forEach((selector) => {
522
- const res = selector.split(varSelector).filter(Boolean);
523
- if (res.length === 0)
524
- return;
525
- rule.selector = res.join(varSelector);
523
+ selectors.push(selector.trim());
526
524
  });
525
+ const ruleSelector = selectors.join(", ");
526
+ if (ruleSelector === varSelector) {
527
+ return;
528
+ }
529
+ const trimmedSelector = selectors.join(",");
530
+ if (trimmedSelector === varSelector) {
531
+ return;
532
+ }
533
+ const selectorsWithoutVarRoot = selectors.map((selector) => {
534
+ const res = selector.split(varSelector).filter(Boolean);
535
+ return res.join("");
536
+ }).filter(Boolean);
537
+ if (selectorsWithoutVarRoot.length === 0)
538
+ return;
539
+ rule.selector = selectorsWithoutVarRoot.join(", ");
527
540
  });
528
541
  return root.toString();
529
542
  }
@@ -1423,7 +1436,7 @@ function generatePreactJsxPattern(ctx) {
1423
1436
  // src/artifacts/preact-jsx/types.ts
1424
1437
  var import_outdent16 = require("outdent");
1425
1438
  function generatePreactJsxTypes(ctx) {
1426
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
1439
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
1427
1440
  return {
1428
1441
  jsxFactory: import_outdent16.outdent`
1429
1442
  import type { ${upperName} } from '../types/jsx'
@@ -1467,6 +1480,8 @@ type JsxElements = { [K in keyof JSX.IntrinsicElements]: ${componentName}<K, {}>
1467
1480
  export type ${upperName} = JsxFactory & JsxElements
1468
1481
 
1469
1482
  export type ${typeName}<T extends ElementType> = JsxHTMLProps<ComponentProps<T>, JsxStyleProps>
1483
+
1484
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
1470
1485
  `
1471
1486
  };
1472
1487
  }
@@ -1687,7 +1702,7 @@ function generateQwikJsxPattern(ctx) {
1687
1702
  // src/artifacts/qwik-jsx/types.ts
1688
1703
  var import_outdent21 = require("outdent");
1689
1704
  function generateQwikJsxTypes(ctx) {
1690
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
1705
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
1691
1706
  return {
1692
1707
  jsxFactory: import_outdent21.outdent`
1693
1708
  ${ctx.file.importType(upperName, "../types/jsx")}
@@ -1734,6 +1749,8 @@ type JsxElements = { [K in keyof QwikIntrinsicElements]: ${componentName}<K, {}>
1734
1749
  export type ${upperName} = JsxFactory & JsxElements
1735
1750
 
1736
1751
  export type ${typeName}<T extends ElementType> = Assign<ComponentProps<T>, JsxStyleProps>
1752
+
1753
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
1737
1754
  `
1738
1755
  };
1739
1756
  }
@@ -1960,7 +1977,7 @@ function generateReactJsxPattern(ctx) {
1960
1977
  // src/artifacts/react-jsx/types.ts
1961
1978
  var import_outdent26 = require("outdent");
1962
1979
  function generateReactJsxTypes(ctx) {
1963
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
1980
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
1964
1981
  return {
1965
1982
  jsxFactory: import_outdent26.outdent`
1966
1983
  ${ctx.file.importType(upperName, "../types/jsx")}
@@ -2006,6 +2023,8 @@ type JsxElements = { [K in keyof JSX.IntrinsicElements]: ${componentName}<K, {}>
2006
2023
  export type ${upperName} = JsxFactory & JsxElements
2007
2024
 
2008
2025
  export type ${typeName}<T extends ElementType> = JsxHTMLProps<ComponentProps<T>, JsxStyleProps>
2026
+
2027
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
2009
2028
  `
2010
2029
  };
2011
2030
  }
@@ -2245,7 +2264,7 @@ function generateSolidJsxPattern(ctx) {
2245
2264
  // src/artifacts/solid-jsx/types.ts
2246
2265
  var import_outdent31 = require("outdent");
2247
2266
  function generateSolidJsxTypes(ctx) {
2248
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
2267
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
2249
2268
  return {
2250
2269
  jsxFactory: import_outdent31.outdent`
2251
2270
  ${ctx.file.importType(upperName, "../types/jsx")}
@@ -2289,6 +2308,8 @@ type JsxElements = { [K in keyof JSX.IntrinsicElements]: ${componentName}<K, {}>
2289
2308
  export type ${upperName} = JsxFactory & JsxElements
2290
2309
 
2291
2310
  export type ${typeName}<T extends ElementType> = JsxHTMLProps<ComponentProps<T>, JsxStyleProps>
2311
+
2312
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
2292
2313
  `
2293
2314
  };
2294
2315
  }
@@ -2572,7 +2593,7 @@ function generateVueJsxPattern(ctx) {
2572
2593
  // src/artifacts/vue-jsx/types.ts
2573
2594
  var import_outdent37 = require("outdent");
2574
2595
  function generateVueJsxTypes(ctx) {
2575
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
2596
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
2576
2597
  return {
2577
2598
  jsxFactory: import_outdent37.outdent`
2578
2599
  ${ctx.file.importType(upperName, "../types/jsx")}
@@ -2622,6 +2643,8 @@ type JsxElements = { [K in IntrinsicElement]: ${componentName}<K, {}> }
2622
2643
  export type ${upperName} = JsxFactory & JsxElements
2623
2644
 
2624
2645
  export type ${typeName}<T extends ElementType> = JsxHTMLProps<ComponentProps<T>, JsxStyleProps>
2646
+
2647
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
2625
2648
  `
2626
2649
  };
2627
2650
  }
@@ -3463,6 +3486,7 @@ var getJsxEngine = (config) => {
3463
3486
  factoryName: jsxFactory,
3464
3487
  upperName: (0, import_shared6.capitalize)(jsxFactory),
3465
3488
  typeName: `HTML${(0, import_shared6.capitalize)(jsxFactory)}Props`,
3489
+ variantName: `${(0, import_shared6.capitalize)(jsxFactory)}VariantProps`,
3466
3490
  componentName: `${(0, import_shared6.capitalize)(jsxFactory)}Component`,
3467
3491
  framework: jsxFramework,
3468
3492
  styleProps: jsxStyleProps2 ?? "all"
package/dist/index.mjs CHANGED
@@ -487,12 +487,25 @@ function getDeepestNode(node) {
487
487
  function cleanupSelectors(css2, varSelector) {
488
488
  const root = postcss2.parse(css2);
489
489
  root.walkRules((rule) => {
490
+ const selectors = [];
490
491
  rule.selectors.forEach((selector) => {
491
- const res = selector.split(varSelector).filter(Boolean);
492
- if (res.length === 0)
493
- return;
494
- rule.selector = res.join(varSelector);
492
+ selectors.push(selector.trim());
495
493
  });
494
+ const ruleSelector = selectors.join(", ");
495
+ if (ruleSelector === varSelector) {
496
+ return;
497
+ }
498
+ const trimmedSelector = selectors.join(",");
499
+ if (trimmedSelector === varSelector) {
500
+ return;
501
+ }
502
+ const selectorsWithoutVarRoot = selectors.map((selector) => {
503
+ const res = selector.split(varSelector).filter(Boolean);
504
+ return res.join("");
505
+ }).filter(Boolean);
506
+ if (selectorsWithoutVarRoot.length === 0)
507
+ return;
508
+ rule.selector = selectorsWithoutVarRoot.join(", ");
496
509
  });
497
510
  return root.toString();
498
511
  }
@@ -1392,7 +1405,7 @@ function generatePreactJsxPattern(ctx) {
1392
1405
  // src/artifacts/preact-jsx/types.ts
1393
1406
  import { outdent as outdent16 } from "outdent";
1394
1407
  function generatePreactJsxTypes(ctx) {
1395
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
1408
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
1396
1409
  return {
1397
1410
  jsxFactory: outdent16`
1398
1411
  import type { ${upperName} } from '../types/jsx'
@@ -1436,6 +1449,8 @@ type JsxElements = { [K in keyof JSX.IntrinsicElements]: ${componentName}<K, {}>
1436
1449
  export type ${upperName} = JsxFactory & JsxElements
1437
1450
 
1438
1451
  export type ${typeName}<T extends ElementType> = JsxHTMLProps<ComponentProps<T>, JsxStyleProps>
1452
+
1453
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
1439
1454
  `
1440
1455
  };
1441
1456
  }
@@ -1656,7 +1671,7 @@ function generateQwikJsxPattern(ctx) {
1656
1671
  // src/artifacts/qwik-jsx/types.ts
1657
1672
  import { outdent as outdent21 } from "outdent";
1658
1673
  function generateQwikJsxTypes(ctx) {
1659
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
1674
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
1660
1675
  return {
1661
1676
  jsxFactory: outdent21`
1662
1677
  ${ctx.file.importType(upperName, "../types/jsx")}
@@ -1703,6 +1718,8 @@ type JsxElements = { [K in keyof QwikIntrinsicElements]: ${componentName}<K, {}>
1703
1718
  export type ${upperName} = JsxFactory & JsxElements
1704
1719
 
1705
1720
  export type ${typeName}<T extends ElementType> = Assign<ComponentProps<T>, JsxStyleProps>
1721
+
1722
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
1706
1723
  `
1707
1724
  };
1708
1725
  }
@@ -1929,7 +1946,7 @@ function generateReactJsxPattern(ctx) {
1929
1946
  // src/artifacts/react-jsx/types.ts
1930
1947
  import { outdent as outdent26 } from "outdent";
1931
1948
  function generateReactJsxTypes(ctx) {
1932
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
1949
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
1933
1950
  return {
1934
1951
  jsxFactory: outdent26`
1935
1952
  ${ctx.file.importType(upperName, "../types/jsx")}
@@ -1975,6 +1992,8 @@ type JsxElements = { [K in keyof JSX.IntrinsicElements]: ${componentName}<K, {}>
1975
1992
  export type ${upperName} = JsxFactory & JsxElements
1976
1993
 
1977
1994
  export type ${typeName}<T extends ElementType> = JsxHTMLProps<ComponentProps<T>, JsxStyleProps>
1995
+
1996
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
1978
1997
  `
1979
1998
  };
1980
1999
  }
@@ -2214,7 +2233,7 @@ function generateSolidJsxPattern(ctx) {
2214
2233
  // src/artifacts/solid-jsx/types.ts
2215
2234
  import { outdent as outdent31 } from "outdent";
2216
2235
  function generateSolidJsxTypes(ctx) {
2217
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
2236
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
2218
2237
  return {
2219
2238
  jsxFactory: outdent31`
2220
2239
  ${ctx.file.importType(upperName, "../types/jsx")}
@@ -2258,6 +2277,8 @@ type JsxElements = { [K in keyof JSX.IntrinsicElements]: ${componentName}<K, {}>
2258
2277
  export type ${upperName} = JsxFactory & JsxElements
2259
2278
 
2260
2279
  export type ${typeName}<T extends ElementType> = JsxHTMLProps<ComponentProps<T>, JsxStyleProps>
2280
+
2281
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
2261
2282
  `
2262
2283
  };
2263
2284
  }
@@ -2541,7 +2562,7 @@ function generateVueJsxPattern(ctx) {
2541
2562
  // src/artifacts/vue-jsx/types.ts
2542
2563
  import { outdent as outdent37 } from "outdent";
2543
2564
  function generateVueJsxTypes(ctx) {
2544
- const { factoryName, componentName, upperName, typeName } = ctx.jsx;
2565
+ const { factoryName, componentName, upperName, typeName, variantName } = ctx.jsx;
2545
2566
  return {
2546
2567
  jsxFactory: outdent37`
2547
2568
  ${ctx.file.importType(upperName, "../types/jsx")}
@@ -2591,6 +2612,8 @@ type JsxElements = { [K in IntrinsicElement]: ${componentName}<K, {}> }
2591
2612
  export type ${upperName} = JsxFactory & JsxElements
2592
2613
 
2593
2614
  export type ${typeName}<T extends ElementType> = JsxHTMLProps<ComponentProps<T>, JsxStyleProps>
2615
+
2616
+ export type ${variantName}<T extends ${componentName}<any, any>> = T extends ${componentName}<any, infer Props> ? Props : never
2594
2617
  `
2595
2618
  };
2596
2619
  }
@@ -3438,6 +3461,7 @@ var getJsxEngine = (config) => {
3438
3461
  factoryName: jsxFactory,
3439
3462
  upperName: capitalize2(jsxFactory),
3440
3463
  typeName: `HTML${capitalize2(jsxFactory)}Props`,
3464
+ variantName: `${capitalize2(jsxFactory)}VariantProps`,
3441
3465
  componentName: `${capitalize2(jsxFactory)}Component`,
3442
3466
  framework: jsxFramework,
3443
3467
  styleProps: jsxStyleProps2 ?? "all"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pandacss/generator",
3
- "version": "0.0.0-dev-20231019221036",
3
+ "version": "0.0.0-dev-20231020171339",
4
4
  "description": "The css generator for css panda",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -20,17 +20,17 @@
20
20
  "pluralize": "8.0.0",
21
21
  "postcss": "^8.4.31",
22
22
  "ts-pattern": "5.0.5",
23
- "@pandacss/core": "0.0.0-dev-20231019221036",
24
- "@pandacss/is-valid-prop": "0.0.0-dev-20231019221036",
25
- "@pandacss/logger": "0.0.0-dev-20231019221036",
26
- "@pandacss/shared": "0.0.0-dev-20231019221036",
27
- "@pandacss/token-dictionary": "0.0.0-dev-20231019221036",
28
- "@pandacss/types": "0.0.0-dev-20231019221036"
23
+ "@pandacss/core": "0.0.0-dev-20231020171339",
24
+ "@pandacss/is-valid-prop": "0.0.0-dev-20231020171339",
25
+ "@pandacss/logger": "0.0.0-dev-20231020171339",
26
+ "@pandacss/shared": "0.0.0-dev-20231020171339",
27
+ "@pandacss/token-dictionary": "0.0.0-dev-20231020171339",
28
+ "@pandacss/types": "0.0.0-dev-20231020171339"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/pluralize": "0.0.30",
32
32
  "hookable": "5.5.3",
33
- "@pandacss/fixture": "0.0.0-dev-20231019221036"
33
+ "@pandacss/fixture": "0.0.0-dev-20231020171339"
34
34
  },
35
35
  "scripts": {
36
36
  "prebuild": "tsx scripts/prebuild.ts",