@plumeria/vite-plugin 6.2.0 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +116 -15
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -122,9 +122,6 @@ export function plumeria(options = {}) {
122
122
  importMap[localName] =
123
123
  scannedTables.viewTransitionHashTable[uniqueKey];
124
124
  }
125
- if (scannedTables.themeTable[uniqueKey]) {
126
- importMap[localName] = scannedTables.themeTable[uniqueKey];
127
- }
128
125
  if (scannedTables.createHashTable[uniqueKey]) {
129
126
  importMap[localName] =
130
127
  scannedTables.createHashTable[uniqueKey];
@@ -133,6 +130,14 @@ export function plumeria(options = {}) {
133
130
  importMap[localName] =
134
131
  scannedTables.variantsHashTable[uniqueKey];
135
132
  }
133
+ if (scannedTables.createThemeHashTable[uniqueKey]) {
134
+ importMap[localName] =
135
+ scannedTables.createThemeHashTable[uniqueKey];
136
+ }
137
+ if (scannedTables.createStaticHashTable[uniqueKey]) {
138
+ importMap[localName] =
139
+ scannedTables.createStaticHashTable[uniqueKey];
140
+ }
136
141
  }
137
142
  });
138
143
  }
@@ -163,12 +168,21 @@ export function plumeria(options = {}) {
163
168
  for (const key of Object.keys(importMap)) {
164
169
  mergedViewTransitionTable[key] = importMap[key];
165
170
  }
166
- const mergedThemeTable = {};
167
- for (const key of Object.keys(scannedTables.themeTable)) {
168
- mergedThemeTable[key] = scannedTables.themeTable[key];
171
+ const mergedCreateThemeHashTable = {};
172
+ for (const key of Object.keys(scannedTables.createThemeHashTable)) {
173
+ mergedCreateThemeHashTable[key] =
174
+ scannedTables.createThemeHashTable[key];
169
175
  }
170
176
  for (const key of Object.keys(importMap)) {
171
- mergedThemeTable[key] = importMap[key];
177
+ mergedCreateThemeHashTable[key] = importMap[key];
178
+ }
179
+ const mergedCreateStaticHashTable = {};
180
+ for (const key of Object.keys(scannedTables.createStaticHashTable)) {
181
+ mergedCreateStaticHashTable[key] =
182
+ scannedTables.createStaticHashTable[key];
183
+ }
184
+ for (const key of Object.keys(importMap)) {
185
+ mergedCreateStaticHashTable[key] = importMap[key];
172
186
  }
173
187
  const mergedCreateTable = {};
174
188
  for (const key of Object.keys(scannedTables.createHashTable)) {
@@ -238,7 +252,7 @@ export function plumeria(options = {}) {
238
252
  if (propName) {
239
253
  if (propName === 'create' &&
240
254
  t.isObjectExpression(node.init.arguments[0].expression)) {
241
- const obj = objectExpressionToObject(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
255
+ const obj = objectExpressionToObject(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
242
256
  if (obj) {
243
257
  const hashMap = {};
244
258
  Object.entries(obj).forEach(([key, style]) => {
@@ -292,7 +306,7 @@ export function plumeria(options = {}) {
292
306
  }
293
307
  else if (propName === 'variants' &&
294
308
  t.isObjectExpression(node.init.arguments[0].expression)) {
295
- const obj = objectExpressionToObject(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable, (name) => {
309
+ const obj = objectExpressionToObject(node.init.arguments[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable, (name) => {
296
310
  if (localCreateStyles[name]) {
297
311
  return localCreateStyles[name].obj;
298
312
  }
@@ -377,7 +391,7 @@ export function plumeria(options = {}) {
377
391
  if (propName === 'keyframes' &&
378
392
  args.length > 0 &&
379
393
  t.isObjectExpression(args[0].expression)) {
380
- const obj = objectExpressionToObject(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
394
+ const obj = objectExpressionToObject(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
381
395
  const hash = genBase36Hash(obj, 1, 8);
382
396
  scannedTables.keyframesObjectTable[hash] = obj;
383
397
  replacements.push({
@@ -389,7 +403,7 @@ export function plumeria(options = {}) {
389
403
  else if (propName === 'viewTransition' &&
390
404
  args.length > 0 &&
391
405
  t.isObjectExpression(args[0].expression)) {
392
- const obj = objectExpressionToObject(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
406
+ const obj = objectExpressionToObject(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
393
407
  const hash = genBase36Hash(obj, 1, 8);
394
408
  scannedTables.viewTransitionObjectTable[hash] = obj;
395
409
  extractOndemandStyles(obj, extractedSheets, scannedTables);
@@ -403,14 +417,14 @@ export function plumeria(options = {}) {
403
417
  else if (propName === 'createTheme' &&
404
418
  args.length > 0 &&
405
419
  t.isObjectExpression(args[0].expression)) {
406
- const obj = objectExpressionToObject(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
420
+ const obj = objectExpressionToObject(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
407
421
  const hash = genBase36Hash(obj, 1, 8);
408
422
  scannedTables.createThemeObjectTable[hash] = obj;
409
423
  }
410
424
  else if (propName === 'create' &&
411
425
  args.length > 0 &&
412
426
  t.isObjectExpression(args[0].expression)) {
413
- const obj = objectExpressionToObject(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
427
+ const obj = objectExpressionToObject(args[0].expression, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
414
428
  const hash = genBase36Hash(obj, 1, 8);
415
429
  scannedTables.createObjectTable[hash] = obj;
416
430
  Object.entries(obj).forEach(([key, style]) => {
@@ -447,6 +461,36 @@ export function plumeria(options = {}) {
447
461
  });
448
462
  }
449
463
  }
464
+ let themeHash = scannedTables.createThemeHashTable[uniqueKey];
465
+ if (!themeHash) {
466
+ themeHash = mergedCreateThemeHashTable[varName];
467
+ }
468
+ if (themeHash) {
469
+ const themeObj = scannedTables.createThemeObjectTable[themeHash];
470
+ if (themeObj && themeObj[propName] !== undefined) {
471
+ const camelToKebabCase = (str) => str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);
472
+ const cssVarName = camelToKebabCase(propName);
473
+ replacements.push({
474
+ start: node.span.start - ast.span.start,
475
+ end: node.span.end - ast.span.start,
476
+ content: JSON.stringify(`var(--${cssVarName})`),
477
+ });
478
+ }
479
+ }
480
+ let staticHash = scannedTables.createStaticHashTable[uniqueKey];
481
+ if (!staticHash) {
482
+ staticHash = mergedCreateStaticHashTable[varName];
483
+ }
484
+ if (staticHash) {
485
+ const staticObj = scannedTables.createStaticObjectTable[staticHash];
486
+ if (staticObj && staticObj[propName] !== undefined) {
487
+ replacements.push({
488
+ start: node.span.start - ast.span.start,
489
+ end: node.span.end - ast.span.start,
490
+ content: JSON.stringify(staticObj[propName]),
491
+ });
492
+ }
493
+ }
450
494
  }
451
495
  },
452
496
  Identifier({ node }) {
@@ -464,7 +508,7 @@ export function plumeria(options = {}) {
464
508
  return;
465
509
  }
466
510
  const varName = node.value;
467
- const uniqueKey = `${this.resourcePath}-${varName}`;
511
+ const uniqueKey = `${id}-${varName}`;
468
512
  let hash = scannedTables.createHashTable[uniqueKey];
469
513
  if (!hash) {
470
514
  hash = mergedCreateTable[varName];
@@ -486,6 +530,63 @@ export function plumeria(options = {}) {
486
530
  });
487
531
  }
488
532
  }
533
+ let kfHash = scannedTables.keyframesHashTable[uniqueKey];
534
+ if (!kfHash) {
535
+ kfHash = mergedKeyframesTable[varName];
536
+ }
537
+ if (kfHash) {
538
+ replacements.push({
539
+ start: node.span.start - ast.span.start,
540
+ end: node.span.end - ast.span.start,
541
+ content: JSON.stringify(`kf-${kfHash}`),
542
+ });
543
+ return;
544
+ }
545
+ let vtHash = scannedTables.viewTransitionHashTable[uniqueKey];
546
+ if (!vtHash) {
547
+ vtHash = mergedViewTransitionTable[varName];
548
+ }
549
+ if (vtHash) {
550
+ replacements.push({
551
+ start: node.span.start - ast.span.start,
552
+ end: node.span.end - ast.span.start,
553
+ content: JSON.stringify(`vt-${vtHash}`),
554
+ });
555
+ return;
556
+ }
557
+ let themeHash = scannedTables.createThemeHashTable[uniqueKey];
558
+ if (!themeHash) {
559
+ themeHash = mergedCreateThemeHashTable[varName];
560
+ }
561
+ if (themeHash) {
562
+ const themeObj = scannedTables.createThemeObjectTable[themeHash];
563
+ if (themeObj) {
564
+ const themeVars = {};
565
+ const camelToKebabCase = (str) => str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);
566
+ Object.keys(themeObj).forEach((key) => {
567
+ themeVars[key] = `var(--${camelToKebabCase(key)})`;
568
+ });
569
+ replacements.push({
570
+ start: node.span.start - ast.span.start,
571
+ end: node.span.end - ast.span.start,
572
+ content: JSON.stringify(themeVars),
573
+ });
574
+ }
575
+ }
576
+ let staticHash = scannedTables.createStaticHashTable[uniqueKey];
577
+ if (!staticHash) {
578
+ staticHash = mergedCreateStaticHashTable[varName];
579
+ }
580
+ if (staticHash) {
581
+ const staticObj = scannedTables.createStaticObjectTable[staticHash];
582
+ if (staticObj) {
583
+ replacements.push({
584
+ start: node.span.start - ast.span.start,
585
+ end: node.span.end - ast.span.start,
586
+ content: JSON.stringify(staticObj),
587
+ });
588
+ }
589
+ }
489
590
  },
490
591
  CallExpression({ node }) {
491
592
  const callee = node.callee;
@@ -512,7 +613,7 @@ export function plumeria(options = {}) {
512
613
  const args = node.arguments;
513
614
  const resolveStyleObject = (expr) => {
514
615
  if (t.isObjectExpression(expr)) {
515
- return objectExpressionToObject(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
616
+ return objectExpressionToObject(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
516
617
  }
517
618
  else if (t.isMemberExpression(expr) &&
518
619
  t.isIdentifier(expr.object) &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/vite-plugin",
3
- "version": "6.2.0",
3
+ "version": "6.2.1",
4
4
  "type": "module",
5
5
  "description": "Plumeria Vite plugin",
6
6
  "author": "Refirst 11",
@@ -22,7 +22,7 @@
22
22
  "dist/"
23
23
  ],
24
24
  "dependencies": {
25
- "@plumeria/utils": "^6.2.0"
25
+ "@plumeria/utils": "^6.2.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@swc/core": "1.15.8",