@plumeria/utils 18.3.3 → 18.3.5
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 +3 -2
- package/dist/createTheme.js +5 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -2
- package/dist/parser.d.ts +1 -0
- package/dist/parser.js +16 -12
- package/package.json +1 -1
package/dist/createTheme.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { CreateTheme } from './types';
|
|
2
|
-
declare const
|
|
2
|
+
declare const themeHashOf: (themeSelector: string, rule: Record<string, unknown>) => string;
|
|
3
|
+
declare const createTheme: <const T extends CreateTheme>(themeSelector: string, rule: T, themeHash: string) => {
|
|
3
4
|
':where(:root)': {
|
|
4
5
|
[x: string]: string | Record<string, string>;
|
|
5
6
|
};
|
|
6
7
|
};
|
|
7
|
-
export { createTheme };
|
|
8
|
+
export { createTheme, themeHashOf };
|
package/dist/createTheme.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createTheme = void 0;
|
|
3
|
+
exports.themeHashOf = exports.createTheme = void 0;
|
|
4
4
|
const zss_engine_1 = require("zss-engine");
|
|
5
|
-
const
|
|
5
|
+
const themeHashOf = (themeSelector, rule) => (0, zss_engine_1.genBase36Hash)({ _themeSelector: themeSelector, ...rule }, 1, 8);
|
|
6
|
+
exports.themeHashOf = themeHashOf;
|
|
7
|
+
const createTheme = (themeSelector, rule, themeHash) => {
|
|
6
8
|
const rootTarget = {};
|
|
7
9
|
const themeTarget = {};
|
|
8
10
|
for (const key in rule) {
|
|
9
11
|
const valueObj = rule[key];
|
|
10
|
-
const hash = (0, zss_engine_1.genBase36Hash)({ [key]: valueObj }, 1, 8);
|
|
12
|
+
const hash = (0, zss_engine_1.genBase36Hash)({ _theme: themeHash, [key]: valueObj }, 1, 8);
|
|
11
13
|
const cssVarName = `--${hash}-${(0, zss_engine_1.camelToKebabCase)(key)}`;
|
|
12
14
|
rootTarget[cssVarName] = valueObj.default;
|
|
13
15
|
themeTarget[cssVarName] = valueObj.theme;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export type { CSSObject, StaticTable, KeyframesHashTable, ViewTransitionHashTable, CreateHashTable, CreateFunctionTable, VariantsHashTable, CreateThemeHashTable, CreateStaticHashTable, } from './types';
|
|
2
|
-
export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, extractOndemandStyles, deepMerge, scanAll, getFileDependencies, resolveExport, resolveComponentKey, } from './parser';
|
|
2
|
+
export { objectExpressionToObject, collectLocalConsts, traverse, t, getRootIdentifier, extractOndemandStyles, deepMerge, scanAll, getFileDependencies, resolveExport, resolveComponentKey, resolveThemeSelector, } from './parser';
|
|
3
3
|
export type { StyleRecord } from './create';
|
|
4
4
|
export { getStyleRecords } from './create';
|
|
5
5
|
export type { Specificity } from 'zss-engine';
|
|
6
6
|
export { getSpecificity, getPseudoElement } from 'zss-engine';
|
|
7
7
|
export type { StyleSource } from './escalation';
|
|
8
8
|
export { getStateWeights } from './escalation';
|
|
9
|
-
export {
|
|
9
|
+
export { themeHashOf } from './createTheme';
|
|
10
10
|
export { resolveImportPath } from './resolver';
|
|
11
11
|
export { optimizer } from './optimizer';
|
|
12
12
|
export { processVariants } from './variants';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_STYLE_PROP = exports.timedAsync = exports.timed = exports.tally = exports.measure = exports.mark = exports.profiling = exports.collectReferenceIdentifiers = exports.getLeadingCommentLength = exports.processVariants = exports.optimizer = exports.resolveImportPath = exports.
|
|
3
|
+
exports.DEFAULT_STYLE_PROP = exports.timedAsync = exports.timed = exports.tally = exports.measure = exports.mark = exports.profiling = exports.collectReferenceIdentifiers = exports.getLeadingCommentLength = exports.processVariants = exports.optimizer = exports.resolveImportPath = exports.themeHashOf = exports.getStateWeights = exports.getPseudoElement = exports.getSpecificity = exports.getStyleRecords = exports.resolveThemeSelector = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
|
|
4
4
|
var parser_1 = require("./parser");
|
|
5
5
|
Object.defineProperty(exports, "objectExpressionToObject", { enumerable: true, get: function () { return parser_1.objectExpressionToObject; } });
|
|
6
6
|
Object.defineProperty(exports, "collectLocalConsts", { enumerable: true, get: function () { return parser_1.collectLocalConsts; } });
|
|
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "scanAll", { enumerable: true, get: function () {
|
|
|
13
13
|
Object.defineProperty(exports, "getFileDependencies", { enumerable: true, get: function () { return parser_1.getFileDependencies; } });
|
|
14
14
|
Object.defineProperty(exports, "resolveExport", { enumerable: true, get: function () { return parser_1.resolveExport; } });
|
|
15
15
|
Object.defineProperty(exports, "resolveComponentKey", { enumerable: true, get: function () { return parser_1.resolveComponentKey; } });
|
|
16
|
+
Object.defineProperty(exports, "resolveThemeSelector", { enumerable: true, get: function () { return parser_1.resolveThemeSelector; } });
|
|
16
17
|
var create_1 = require("./create");
|
|
17
18
|
Object.defineProperty(exports, "getStyleRecords", { enumerable: true, get: function () { return create_1.getStyleRecords; } });
|
|
18
19
|
var zss_engine_1 = require("zss-engine");
|
|
@@ -21,7 +22,7 @@ Object.defineProperty(exports, "getPseudoElement", { enumerable: true, get: func
|
|
|
21
22
|
var escalation_1 = require("./escalation");
|
|
22
23
|
Object.defineProperty(exports, "getStateWeights", { enumerable: true, get: function () { return escalation_1.getStateWeights; } });
|
|
23
24
|
var createTheme_1 = require("./createTheme");
|
|
24
|
-
Object.defineProperty(exports, "
|
|
25
|
+
Object.defineProperty(exports, "themeHashOf", { enumerable: true, get: function () { return createTheme_1.themeHashOf; } });
|
|
25
26
|
var resolver_1 = require("./resolver");
|
|
26
27
|
Object.defineProperty(exports, "resolveImportPath", { enumerable: true, get: function () { return resolver_1.resolveImportPath; } });
|
|
27
28
|
var optimizer_1 = require("./optimizer");
|
package/dist/parser.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ export declare function traverse(node: Module | JSXExpression, visitor: {
|
|
|
36
36
|
}): void;
|
|
37
37
|
export declare function objectExpressionToObject(node: ObjectExpression, staticTable: StaticTable, keyframesHashTable: KeyframesHashTable, viewTransitionHashTable: ViewTransitionHashTable, createThemeHashTable: CreateThemeHashTable, createThemeObjectTable: CreateThemeObjectTable, createHashTable: CreateHashTable, createStaticHashTable: CreateStaticHashTable, createStaticObjectTable: CreateStaticObjectTable, variantsHashTable: VariantsHashTable, resolveVariable?: (name: string) => any): CSSObject;
|
|
38
38
|
export declare function collectLocalConsts(ast: Module): Record<string, any>;
|
|
39
|
+
export declare function resolveThemeSelector(node: Expression, staticTable: StaticTable, createStaticHashTable: CreateStaticHashTable, createStaticObjectTable: CreateStaticObjectTable): string;
|
|
39
40
|
export declare function scanAll(): Tables;
|
|
40
41
|
export declare function getFileDependencies(filePath: string): string[];
|
|
41
42
|
export declare function resolveExport(filePath: string, exportName: string, visited?: Set<string>): {
|
package/dist/parser.js
CHANGED
|
@@ -38,6 +38,7 @@ exports.resolveComponentKey = resolveComponentKey;
|
|
|
38
38
|
exports.traverse = traverse;
|
|
39
39
|
exports.objectExpressionToObject = objectExpressionToObject;
|
|
40
40
|
exports.collectLocalConsts = collectLocalConsts;
|
|
41
|
+
exports.resolveThemeSelector = resolveThemeSelector;
|
|
41
42
|
exports.scanAll = scanAll;
|
|
42
43
|
exports.getFileDependencies = getFileDependencies;
|
|
43
44
|
exports.resolveExport = resolveExport;
|
|
@@ -851,7 +852,7 @@ function resolveCreateThemeTableMemberExpressionByNode(node, createThemeHashTabl
|
|
|
851
852
|
}
|
|
852
853
|
if (key && themeObj[key] !== undefined) {
|
|
853
854
|
const value = themeObj[key];
|
|
854
|
-
const atomicHash = (0, zss_engine_1.genBase36Hash)({ [key]: value }, 1, 8);
|
|
855
|
+
const atomicHash = (0, zss_engine_1.genBase36Hash)({ _theme: hash, [key]: value }, 1, 8);
|
|
855
856
|
const cssVarName = (0, zss_engine_1.camelToKebabCase)(key);
|
|
856
857
|
return `var(--${atomicHash}-${cssVarName})`;
|
|
857
858
|
}
|
|
@@ -883,6 +884,15 @@ function resolveCreateStaticTableMemberExpression(node, createStaticHashTable, c
|
|
|
883
884
|
}
|
|
884
885
|
return undefined;
|
|
885
886
|
}
|
|
887
|
+
function resolveThemeSelector(node, staticTable, createStaticHashTable, createStaticObjectTable) {
|
|
888
|
+
try {
|
|
889
|
+
const value = evaluateExpression(node, staticTable, {}, {}, {}, {}, createStaticHashTable, createStaticObjectTable);
|
|
890
|
+
return typeof value === 'string' ? value : '';
|
|
891
|
+
}
|
|
892
|
+
catch {
|
|
893
|
+
return '';
|
|
894
|
+
}
|
|
895
|
+
}
|
|
886
896
|
const fileCache = {};
|
|
887
897
|
const dependentsMap = new Map();
|
|
888
898
|
let knownFiles = new Set();
|
|
@@ -1342,12 +1352,8 @@ function scanAll() {
|
|
|
1342
1352
|
registerObjectOwner('viewTransitionObjectTable', hash, filePath);
|
|
1343
1353
|
}
|
|
1344
1354
|
else if (method === 'createTheme') {
|
|
1345
|
-
|
|
1346
|
-
const
|
|
1347
|
-
if (exports.t.isStringLiteral(selectorExpr)) {
|
|
1348
|
-
selector = selectorExpr.value;
|
|
1349
|
-
}
|
|
1350
|
-
const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
|
|
1355
|
+
const selector = resolveThemeSelector(init.arguments[0].expression, scopedStaticTable, localCreateStaticHashTable, localCreateStaticObjectTable);
|
|
1356
|
+
const hash = (0, createTheme_1.themeHashOf)(selector, obj);
|
|
1351
1357
|
localTables.createThemeObjectTable[hash] = obj;
|
|
1352
1358
|
localCreateThemeObjectTable[hash] = obj;
|
|
1353
1359
|
registerObjectOwner('createThemeObjectTable', hash, filePath);
|
|
@@ -1358,7 +1364,7 @@ function scanAll() {
|
|
|
1358
1364
|
registerObjectOwner('createThemeSelectorTable', hash, filePath);
|
|
1359
1365
|
const hashMap = {};
|
|
1360
1366
|
for (const [key, value] of Object.entries(obj)) {
|
|
1361
|
-
const atomicHash = (0, zss_engine_1.genBase36Hash)({ [key]: value }, 1, 8);
|
|
1367
|
+
const atomicHash = (0, zss_engine_1.genBase36Hash)({ _theme: hash, [key]: value }, 1, 8);
|
|
1362
1368
|
const cssVarName = (0, zss_engine_1.camelToKebabCase)(key);
|
|
1363
1369
|
hashMap[key] = `var(--${atomicHash}-${cssVarName})`;
|
|
1364
1370
|
}
|
|
@@ -1936,12 +1942,10 @@ function extractOndemandStyles(obj, extractedSheets, t) {
|
|
|
1936
1942
|
if (definition && typeof definition === 'object' && selector) {
|
|
1937
1943
|
Object.keys(definition).forEach((key) => {
|
|
1938
1944
|
const value = definition[key];
|
|
1939
|
-
const atomicHash = (0, zss_engine_1.genBase36Hash)({ [key]: value }, 1, 8);
|
|
1945
|
+
const atomicHash = (0, zss_engine_1.genBase36Hash)({ _theme: hash, [key]: value }, 1, 8);
|
|
1940
1946
|
const varName = `--${atomicHash}-${(0, zss_engine_1.camelToKebabCase)(key)}`;
|
|
1941
1947
|
if (usedVariables.has(varName)) {
|
|
1942
|
-
const styles = (0, createTheme_1.createTheme)(selector, {
|
|
1943
|
-
[key]: value,
|
|
1944
|
-
});
|
|
1948
|
+
const styles = (0, createTheme_1.createTheme)(selector, { [key]: value }, hash);
|
|
1945
1949
|
const { styleSheet } = (0, zss_engine_1.transpile)(styles, undefined, '--global');
|
|
1946
1950
|
addSheet(styleSheet);
|
|
1947
1951
|
}
|