@plumeria/compiler 12.0.7 → 13.0.0

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.
Files changed (2) hide show
  1. package/dist/index.js +37 -6
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -590,11 +590,19 @@ function compileCSS(options) {
590
590
  ctx.scannedTables.viewTransitionObjectTable[hash] = obj;
591
591
  }
592
592
  else if (propName === 'createTheme' &&
593
- args.length > 0 &&
594
- utils_1.t.isObjectExpression(args[0].expression)) {
595
- const obj = (0, utils_1.objectExpressionToObject)(args[0].expression, ctx.mergedStaticTable, ctx.mergedKeyframesTable, ctx.mergedViewTransitionTable, ctx.mergedCreateThemeHashTable, ctx.scannedTables.createThemeObjectTable, ctx.mergedCreateTable, ctx.mergedCreateStaticHashTable, ctx.scannedTables.createStaticObjectTable, ctx.mergedVariantsTable);
593
+ args.length >= 2 &&
594
+ utils_1.t.isObjectExpression(args[1].expression)) {
595
+ let selector = '';
596
+ const selectorExpr = args[0].expression;
597
+ if (utils_1.t.isStringLiteral(selectorExpr)) {
598
+ selector = selectorExpr.value;
599
+ }
600
+ const obj = (0, utils_1.objectExpressionToObject)(args[1].expression, ctx.mergedStaticTable, ctx.mergedKeyframesTable, ctx.mergedViewTransitionTable, ctx.mergedCreateThemeHashTable, ctx.scannedTables.createThemeObjectTable, ctx.mergedCreateTable, ctx.mergedCreateStaticHashTable, ctx.scannedTables.createStaticObjectTable, ctx.mergedVariantsTable);
596
601
  const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
597
602
  ctx.scannedTables.createThemeObjectTable[hash] = obj;
603
+ if (ctx.scannedTables.createThemeSelectorTable) {
604
+ ctx.scannedTables.createThemeSelectorTable[hash] = selector;
605
+ }
598
606
  }
599
607
  else if (propName === 'createStatic' &&
600
608
  args.length > 0 &&
@@ -630,10 +638,18 @@ function compileCSS(options) {
630
638
  else if (utils_1.t.isIdentifier(callee) && plumeriaAliases[callee.value]) {
631
639
  pName = plumeriaAliases[callee.value];
632
640
  }
641
+ const isTheme = pName === 'createTheme';
633
642
  if (pName &&
634
- node.init.arguments.length === 1 &&
635
- utils_1.t.isObjectExpression(node.init.arguments[0].expression)) {
636
- const arg = node.init.arguments[0].expression;
643
+ node.init.arguments.length > 0 &&
644
+ ((!isTheme &&
645
+ node.init.arguments.length === 1 &&
646
+ utils_1.t.isObjectExpression(node.init.arguments[0].expression)) ||
647
+ (isTheme &&
648
+ node.init.arguments.length >= 2 &&
649
+ utils_1.t.isObjectExpression(node.init.arguments[1].expression)))) {
650
+ const arg = isTheme
651
+ ? node.init.arguments[1].expression
652
+ : node.init.arguments[0].expression;
637
653
  const resolveVariable = (name) => ctx.localCreateStyles[name]?.obj ||
638
654
  (ctx.mergedCreateThemeHashTable[name]
639
655
  ? ctx.scannedTables.createAtomicMapTable[ctx.mergedCreateThemeHashTable[name]]
@@ -696,11 +712,26 @@ function compileCSS(options) {
696
712
  }
697
713
  }
698
714
  else if (pName === 'createTheme') {
715
+ let selector = '';
716
+ const selectorExpr = node.init.arguments[0].expression;
717
+ if (utils_1.t.isStringLiteral(selectorExpr)) {
718
+ selector = selectorExpr.value;
719
+ }
699
720
  const obj = (0, utils_1.objectExpressionToObject)(arg, ctx.mergedStaticTable, ctx.mergedKeyframesTable, ctx.mergedViewTransitionTable, ctx.mergedCreateThemeHashTable, ctx.scannedTables.createThemeObjectTable, ctx.mergedCreateTable, ctx.mergedCreateStaticHashTable, ctx.scannedTables.createStaticObjectTable, ctx.mergedVariantsTable);
700
721
  const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
701
722
  const uKey = `${resourcePath}-${node.id.value}`;
702
723
  ctx.scannedTables.createThemeHashTable[uKey] = hash;
703
724
  ctx.scannedTables.createThemeObjectTable[hash] = obj;
725
+ if (ctx.scannedTables.createThemeSelectorTable) {
726
+ ctx.scannedTables.createThemeSelectorTable[hash] = selector;
727
+ }
728
+ const themeHashMap = {};
729
+ for (const [key, value] of Object.entries(obj)) {
730
+ const cssVarName = (0, zss_engine_1.camelToKebabCase)(key);
731
+ const atomicHash = (0, zss_engine_1.genBase36Hash)({ [key]: value }, 1, 8);
732
+ themeHashMap[key] = `var(--${atomicHash}-${cssVarName})`;
733
+ }
734
+ ctx.scannedTables.createAtomicMapTable[hash] = themeHashMap;
704
735
  ctx.localCreateStyles[node.id.value] = {
705
736
  type: 'create',
706
737
  obj: ctx.scannedTables.createAtomicMapTable[hash],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/compiler",
3
- "version": "12.0.7",
3
+ "version": "13.0.0",
4
4
  "description": "Plumeria swc based compiler for statically extracting css",
5
5
  "author": "Refirst 11",
6
6
  "license": "MIT",
@@ -21,12 +21,12 @@
21
21
  "dist/"
22
22
  ],
23
23
  "dependencies": {
24
- "@plumeria/utils": "^12.0.7"
24
+ "@plumeria/utils": "^13.0.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@rust-gear/glob": "1.0.0",
28
28
  "@swc/core": "1.15.40",
29
- "zss-engine": "2.2.8"
29
+ "zss-engine": "2.3.0"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public",