@plumeria/vite-plugin 6.1.2 → 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 +153 -28
  2. package/package.json +3 -3
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]) => {
@@ -434,20 +448,6 @@ export function plumeria(options = {}) {
434
448
  if (!hash) {
435
449
  hash = mergedCreateTable[varName];
436
450
  }
437
- if (!hash) {
438
- const styleInfo = localCreateStyles[varName];
439
- if (styleInfo) {
440
- const atomMap = styleInfo.hashMap[propName];
441
- if (atomMap) {
442
- replacements.push({
443
- start: node.span.start - ast.span.start,
444
- end: node.span.end - ast.span.start,
445
- content: JSON.stringify(atomMap),
446
- });
447
- return;
448
- }
449
- }
450
- }
451
451
  if (hash) {
452
452
  let atomMap;
453
453
  if (scannedTables.createAtomicMapTable[hash]) {
@@ -461,6 +461,131 @@ export function plumeria(options = {}) {
461
461
  });
462
462
  }
463
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
+ }
494
+ }
495
+ },
496
+ Identifier({ node }) {
497
+ if (excludedSpans.has(node.span.start))
498
+ return;
499
+ if (idSpans.has(node.span.start))
500
+ return;
501
+ const styleInfo = localCreateStyles[node.value];
502
+ if (styleInfo) {
503
+ replacements.push({
504
+ start: node.span.start - ast.span.start,
505
+ end: node.span.end - ast.span.start,
506
+ content: JSON.stringify(styleInfo.hashMap),
507
+ });
508
+ return;
509
+ }
510
+ const varName = node.value;
511
+ const uniqueKey = `${id}-${varName}`;
512
+ let hash = scannedTables.createHashTable[uniqueKey];
513
+ if (!hash) {
514
+ hash = mergedCreateTable[varName];
515
+ }
516
+ if (hash) {
517
+ const obj = scannedTables.createObjectTable[hash];
518
+ const atomicMap = scannedTables.createAtomicMapTable[hash];
519
+ if (obj && atomicMap) {
520
+ const hashMap = {};
521
+ Object.keys(obj).forEach((key) => {
522
+ if (atomicMap[key]) {
523
+ hashMap[key] = atomicMap[key];
524
+ }
525
+ });
526
+ replacements.push({
527
+ start: node.span.start - ast.span.start,
528
+ end: node.span.end - ast.span.start,
529
+ content: JSON.stringify(hashMap),
530
+ });
531
+ }
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
+ }
464
589
  }
465
590
  },
466
591
  CallExpression({ node }) {
@@ -488,7 +613,7 @@ export function plumeria(options = {}) {
488
613
  const args = node.arguments;
489
614
  const resolveStyleObject = (expr) => {
490
615
  if (t.isObjectExpression(expr)) {
491
- return objectExpressionToObject(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedThemeTable, mergedCreateTable, mergedVariantsTable);
616
+ return objectExpressionToObject(expr, mergedStaticTable, mergedKeyframesTable, mergedViewTransitionTable, mergedCreateThemeHashTable, scannedTables.createThemeObjectTable, mergedCreateTable, mergedCreateStaticHashTable, scannedTables.createStaticObjectTable, mergedVariantsTable);
492
617
  }
493
618
  else if (t.isMemberExpression(expr) &&
494
619
  t.isIdentifier(expr.object) &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/vite-plugin",
3
- "version": "6.1.2",
3
+ "version": "6.2.1",
4
4
  "type": "module",
5
5
  "description": "Plumeria Vite plugin",
6
6
  "author": "Refirst 11",
@@ -22,12 +22,12 @@
22
22
  "dist/"
23
23
  ],
24
24
  "dependencies": {
25
- "@plumeria/utils": "^6.1.2"
25
+ "@plumeria/utils": "^6.2.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@swc/core": "1.15.8",
29
29
  "vite": "^7.1.1",
30
- "zss-engine": "2.1.2"
30
+ "zss-engine": "2.2.0"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "public",