@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.
- package/dist/index.js +153 -28
- 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
|
|
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]) => {
|
|
@@ -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,
|
|
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
|
|
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
|
|
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.
|
|
30
|
+
"zss-engine": "2.2.0"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public",
|