@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.
- package/dist/index.js +116 -15
- 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
|
|
167
|
-
for (const key of Object.keys(scannedTables.
|
|
168
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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 = `${
|
|
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,
|
|
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.
|
|
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.
|
|
25
|
+
"@plumeria/utils": "^6.2.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@swc/core": "1.15.8",
|