@plumeria/utils 11.1.1 → 11.1.3
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/createTheme.d.ts +1 -1
- package/dist/createTheme.js +4 -2
- package/dist/parser.js +26 -6
- package/package.json +1 -1
package/dist/createTheme.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { CreateTheme } from './types';
|
|
2
|
-
declare const createTheme: <const T extends CreateTheme>(rule: T) => Record<string, Record<string, string | number | Record<string, string | number>>>;
|
|
2
|
+
declare const createTheme: <const T extends CreateTheme>(rule: T, hash?: string) => Record<string, Record<string, string | number | Record<string, string | number>>>;
|
|
3
3
|
export { createTheme };
|
package/dist/createTheme.js
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createTheme = void 0;
|
|
4
4
|
const zss_engine_1 = require("zss-engine");
|
|
5
|
-
const createTheme = (rule) => {
|
|
5
|
+
const createTheme = (rule, hash) => {
|
|
6
6
|
const styles = {};
|
|
7
7
|
for (const key in rule) {
|
|
8
|
-
const varKey =
|
|
8
|
+
const varKey = hash
|
|
9
|
+
? `--${hash}-${(0, zss_engine_1.camelToKebabCase)(key)}`
|
|
10
|
+
: `--${(0, zss_engine_1.camelToKebabCase)(key)}`;
|
|
9
11
|
const themeMap = rule[key];
|
|
10
12
|
for (const themeKey in themeMap) {
|
|
11
13
|
const value = themeMap[themeKey];
|
package/dist/parser.js
CHANGED
|
@@ -123,6 +123,20 @@ function objectExpressionToObject(node, staticTable, keyframesHashTable, viewTra
|
|
|
123
123
|
}
|
|
124
124
|
return;
|
|
125
125
|
}
|
|
126
|
+
if (exports.t.isIdentifier(prop) && !exports.t.isObjectProperty(prop)) {
|
|
127
|
+
const key = prop.value;
|
|
128
|
+
if (resolveVariable) {
|
|
129
|
+
const resolved = resolveVariable(key);
|
|
130
|
+
if (resolved !== undefined) {
|
|
131
|
+
obj[key] = resolved;
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (staticTable[key] !== undefined) {
|
|
136
|
+
obj[key] = staticTable[key];
|
|
137
|
+
}
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
126
140
|
if (!exports.t.isObjectProperty(prop))
|
|
127
141
|
return;
|
|
128
142
|
const key = getPropertyKey(prop.key, staticTable, keyframesHashTable, viewTransitionHashTable, createThemeHashTable, createThemeObjectTable, createStaticHashTable, createStaticObjectTable);
|
|
@@ -488,7 +502,7 @@ function resolveCreateThemeTableMemberExpressionByNode(node, createThemeHashTabl
|
|
|
488
502
|
}
|
|
489
503
|
if (key && themeObj[key] !== undefined) {
|
|
490
504
|
const cssVarName = (0, zss_engine_1.camelToKebabCase)(key);
|
|
491
|
-
return `var(--${cssVarName})`;
|
|
505
|
+
return `var(--${hash}-${cssVarName})`;
|
|
492
506
|
}
|
|
493
507
|
}
|
|
494
508
|
}
|
|
@@ -700,6 +714,10 @@ function scanAll() {
|
|
|
700
714
|
if (localTables.createThemeHashTable[uniqueKey]) {
|
|
701
715
|
const hash = localTables.createThemeHashTable[uniqueKey];
|
|
702
716
|
localCreateThemeHashTable[localName] = hash;
|
|
717
|
+
if (localTables.createThemeObjectTable[hash]) {
|
|
718
|
+
localCreateThemeObjectTable[hash] =
|
|
719
|
+
localTables.createThemeObjectTable[hash];
|
|
720
|
+
}
|
|
703
721
|
}
|
|
704
722
|
if (localTables.keyframesHashTable[uniqueKey]) {
|
|
705
723
|
const hash = localTables.keyframesHashTable[uniqueKey];
|
|
@@ -821,7 +839,7 @@ function scanAll() {
|
|
|
821
839
|
const hashMap = {};
|
|
822
840
|
for (const [key] of Object.entries(obj)) {
|
|
823
841
|
const cssVarName = (0, zss_engine_1.camelToKebabCase)(key);
|
|
824
|
-
hashMap[key] = `var(--${cssVarName})`;
|
|
842
|
+
hashMap[key] = `var(--${hash}-${cssVarName})`;
|
|
825
843
|
}
|
|
826
844
|
localTables.createAtomicMapTable[hash] = hashMap;
|
|
827
845
|
}
|
|
@@ -978,26 +996,28 @@ function extractOndemandStyles(obj, extractedSheets, t) {
|
|
|
978
996
|
}
|
|
979
997
|
}
|
|
980
998
|
if (usedVariables.size > 0) {
|
|
981
|
-
|
|
999
|
+
Object.keys(t.createThemeHashTable)
|
|
1000
|
+
.sort()
|
|
1001
|
+
.forEach((themeVarName) => {
|
|
982
1002
|
const hash = t.createThemeHashTable[themeVarName];
|
|
983
1003
|
const definition = t.createThemeObjectTable[hash];
|
|
984
1004
|
if (definition && typeof definition === 'object') {
|
|
985
1005
|
const filteredDefinition = {};
|
|
986
1006
|
let hasUsed = false;
|
|
987
1007
|
Object.keys(definition).forEach((key) => {
|
|
988
|
-
const varName = `--${(0, zss_engine_1.camelToKebabCase)(key)}`;
|
|
1008
|
+
const varName = `--${hash}-${(0, zss_engine_1.camelToKebabCase)(key)}`;
|
|
989
1009
|
if (usedVariables.has(varName)) {
|
|
990
1010
|
filteredDefinition[key] = definition[key];
|
|
991
1011
|
hasUsed = true;
|
|
992
1012
|
}
|
|
993
1013
|
});
|
|
994
1014
|
if (hasUsed) {
|
|
995
|
-
const styles = (0, createTheme_1.createTheme)(filteredDefinition);
|
|
1015
|
+
const styles = (0, createTheme_1.createTheme)(filteredDefinition, hash);
|
|
996
1016
|
const { styleSheet } = (0, zss_engine_1.transpile)(styles, undefined, '--global');
|
|
997
1017
|
addSheet(styleSheet);
|
|
998
1018
|
}
|
|
999
1019
|
}
|
|
1000
|
-
}
|
|
1020
|
+
});
|
|
1001
1021
|
}
|
|
1002
1022
|
}
|
|
1003
1023
|
function deepMerge(target, source) {
|