@plumeria/utils 1.0.3 → 2.0.0

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.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { CSSObject, FileStyles } from './types';
2
- export { createCSS, createVars, createTokens } from './transform';
3
- export { scanForDefineConsts, scanForDefineTokens, scanForKeyframes, scanForViewTransition, objectExpressionToObject, collectLocalConsts, traverse, t, tables, } from './parser';
1
+ export type { CSSObject, FileStyles } from './types';
2
+ export { createCSS, createVars, createTheme } from './transform';
3
+ export { scanForCreateStatic, scanForCreateTheme, scanForKeyframes, scanForViewTransition, objectExpressionToObject, collectLocalConsts, traverse, t, tables, } from './parser';
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tables = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = exports.scanForViewTransition = exports.scanForKeyframes = exports.scanForDefineTokens = exports.scanForDefineConsts = exports.createTokens = exports.createVars = exports.createCSS = void 0;
3
+ exports.tables = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = exports.scanForViewTransition = exports.scanForKeyframes = exports.scanForCreateTheme = exports.scanForCreateStatic = exports.createTheme = exports.createVars = exports.createCSS = void 0;
4
4
  var transform_1 = require("./transform");
5
5
  Object.defineProperty(exports, "createCSS", { enumerable: true, get: function () { return transform_1.createCSS; } });
6
6
  Object.defineProperty(exports, "createVars", { enumerable: true, get: function () { return transform_1.createVars; } });
7
- Object.defineProperty(exports, "createTokens", { enumerable: true, get: function () { return transform_1.createTokens; } });
7
+ Object.defineProperty(exports, "createTheme", { enumerable: true, get: function () { return transform_1.createTheme; } });
8
8
  var parser_1 = require("./parser");
9
- Object.defineProperty(exports, "scanForDefineConsts", { enumerable: true, get: function () { return parser_1.scanForDefineConsts; } });
10
- Object.defineProperty(exports, "scanForDefineTokens", { enumerable: true, get: function () { return parser_1.scanForDefineTokens; } });
9
+ Object.defineProperty(exports, "scanForCreateStatic", { enumerable: true, get: function () { return parser_1.scanForCreateStatic; } });
10
+ Object.defineProperty(exports, "scanForCreateTheme", { enumerable: true, get: function () { return parser_1.scanForCreateTheme; } });
11
11
  Object.defineProperty(exports, "scanForKeyframes", { enumerable: true, get: function () { return parser_1.scanForKeyframes; } });
12
12
  Object.defineProperty(exports, "scanForViewTransition", { enumerable: true, get: function () { return parser_1.scanForViewTransition; } });
13
13
  Object.defineProperty(exports, "objectExpressionToObject", { enumerable: true, get: function () { return parser_1.objectExpressionToObject; } });
package/dist/parser.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { CSSObject, ConstTable, KeyframesHashTable, KeyframesObjectTable, TokensTable, ViewTransitionObjectTable, ViewTransitionHashTable, Tables } from './types';
1
+ import type { CSSObject, StaticTable, KeyframesHashTable, KeyframesObjectTable, ThemeTable, ViewTransitionObjectTable, ViewTransitionHashTable, Tables } from './types';
2
2
  import { Module, CallExpression, Identifier, KeyValueProperty, StringLiteral, NumericLiteral, BooleanLiteral, ObjectExpression, MemberExpression, TemplateLiteral, BinaryExpression, UnaryExpression, VariableDeclaration, VariableDeclarator, ExportDeclaration } from '@swc/core';
3
3
  export declare const t: {
4
4
  isObjectExpression: (node: any) => node is ObjectExpression;
@@ -26,7 +26,7 @@ export declare function traverse(node: Module, visitor: {
26
26
  }) => void;
27
27
  }): void;
28
28
  export declare const tables: Tables;
29
- export declare function objectExpressionToObject(node: ObjectExpression, constTable: ConstTable, keyframesHashTable: KeyframesHashTable, viewTransitionHashTable: ViewTransitionHashTable, tokensTable: TokensTable): CSSObject;
29
+ export declare function objectExpressionToObject(node: ObjectExpression, staticTable: StaticTable, keyframesHashTable: KeyframesHashTable, viewTransitionHashTable: ViewTransitionHashTable, themeTable: ThemeTable): CSSObject;
30
30
  export declare function collectLocalConsts(ast: Module): Record<string, any>;
31
31
  export declare function scanForKeyframes(addDependency: (path: string) => void): {
32
32
  keyframesHashTableLocal: KeyframesHashTable;
@@ -36,8 +36,8 @@ export declare function scanForViewTransition(addDependency: (path: string) => v
36
36
  viewTransitionHashTableLocal: ViewTransitionHashTable;
37
37
  viewTransitionObjectTableLocal: ViewTransitionObjectTable;
38
38
  };
39
- export declare function scanForDefineConsts(addDependency: (path: string) => void): ConstTable;
40
- export declare function scanForDefineTokens(addDependency: (path: string) => void): {
41
- tokensTableLocal: Record<string, Record<string, any>>;
42
- defineTokensObjectTableLocal: Record<string, any>;
39
+ export declare function scanForCreateStatic(addDependency: (path: string) => void): StaticTable;
40
+ export declare function scanForCreateTheme(addDependency: (path: string) => void): {
41
+ themeTableLocal: Record<string, Record<string, any>>;
42
+ createThemeObjectTableLocal: Record<string, any>;
43
43
  };
package/dist/parser.js CHANGED
@@ -9,8 +9,8 @@ exports.objectExpressionToObject = objectExpressionToObject;
9
9
  exports.collectLocalConsts = collectLocalConsts;
10
10
  exports.scanForKeyframes = scanForKeyframes;
11
11
  exports.scanForViewTransition = scanForViewTransition;
12
- exports.scanForDefineConsts = scanForDefineConsts;
13
- exports.scanForDefineTokens = scanForDefineTokens;
12
+ exports.scanForCreateStatic = scanForCreateStatic;
13
+ exports.scanForCreateTheme = scanForCreateTheme;
14
14
  const core_1 = require("@swc/core");
15
15
  const path_1 = __importDefault(require("path"));
16
16
  const fs_1 = __importDefault(require("fs"));
@@ -74,20 +74,20 @@ const GLOB_OPTIONS = {
74
74
  cwd: PROJECT_ROOT,
75
75
  };
76
76
  exports.tables = {
77
- constTable: {},
78
- tokensTable: {},
77
+ staticTable: {},
78
+ themeTable: {},
79
79
  keyframesHashTable: {},
80
80
  keyframesObjectTable: {},
81
81
  viewTransitionHashTable: {},
82
82
  viewTransitionObjectTable: {},
83
- defineTokensObjectTable: {},
83
+ createThemeObjectTable: {},
84
84
  };
85
- function objectExpressionToObject(node, constTable, keyframesHashTable, viewTransitionHashTable, tokensTable) {
85
+ function objectExpressionToObject(node, staticTable, keyframesHashTable, viewTransitionHashTable, themeTable) {
86
86
  const obj = {};
87
87
  node.properties.forEach((prop) => {
88
88
  if (!exports.t.isObjectProperty(prop))
89
89
  return;
90
- const key = getPropertyKey(prop.key, constTable);
90
+ const key = getPropertyKey(prop.key, staticTable);
91
91
  if (!key)
92
92
  return;
93
93
  const val = prop.value;
@@ -102,7 +102,7 @@ function objectExpressionToObject(node, constTable, keyframesHashTable, viewTran
102
102
  obj[key] = 'vt-' + resolvedViewTransitioin;
103
103
  return;
104
104
  }
105
- const resolvedTheme = resolveTokensTableMemberExpressionByNode(val, tokensTable);
105
+ const resolvedTheme = resolveThemeTableMemberExpressionByNode(val, themeTable);
106
106
  if (resolvedTheme !== undefined) {
107
107
  obj[key] = resolvedTheme;
108
108
  return;
@@ -117,15 +117,15 @@ function objectExpressionToObject(node, constTable, keyframesHashTable, viewTran
117
117
  obj[key] = evaluateUnaryExpression(val);
118
118
  }
119
119
  else if (exports.t.isObjectExpression(val)) {
120
- obj[key] = objectExpressionToObject(val, constTable, keyframesHashTable, viewTransitionHashTable, tokensTable);
120
+ obj[key] = objectExpressionToObject(val, staticTable, keyframesHashTable, viewTransitionHashTable, themeTable);
121
121
  }
122
122
  else if (exports.t.isMemberExpression(val)) {
123
- const resolved = resolveConstTableMemberExpression(val, constTable);
123
+ const resolved = resolveStaticTableMemberExpression(val, staticTable);
124
124
  obj[key] = resolved !== undefined ? resolved : '[unresolved]';
125
125
  }
126
126
  else if (exports.t.isIdentifier(val)) {
127
- if (constTable[val.value] !== undefined) {
128
- obj[key] = constTable[val.value];
127
+ if (staticTable[val.value] !== undefined) {
128
+ obj[key] = staticTable[val.value];
129
129
  }
130
130
  else {
131
131
  obj[key] = '[unresolved identifier]';
@@ -146,17 +146,18 @@ function collectLocalConsts(ast) {
146
146
  localConsts[node.id.value] = node.init.value;
147
147
  }
148
148
  else if (exports.t.isObjectExpression(node.init)) {
149
- localConsts[node.id.value] = objectExpressionToObject(node.init, localConsts, exports.tables.keyframesHashTable, exports.tables.viewTransitionHashTable, exports.tables.tokensTable);
149
+ localConsts[node.id.value] = objectExpressionToObject(node.init, localConsts, exports.tables.keyframesHashTable, exports.tables.viewTransitionHashTable, exports.tables.themeTable);
150
150
  }
151
151
  }
152
152
  },
153
153
  });
154
154
  return localConsts;
155
155
  }
156
- function getPropertyKey(node, constTable) {
156
+ function getPropertyKey(node, staticTable) {
157
157
  if (exports.t.isIdentifier(node)) {
158
- if (constTable[node.value] && typeof constTable[node.value] === 'string') {
159
- return constTable[node.value];
158
+ if (staticTable[node.value] &&
159
+ typeof staticTable[node.value] === 'string') {
160
+ return staticTable[node.value];
160
161
  }
161
162
  return node.value;
162
163
  }
@@ -169,53 +170,53 @@ function getPropertyKey(node, constTable) {
169
170
  return expr.value;
170
171
  }
171
172
  if (exports.t.isIdentifier(expr)) {
172
- if (constTable[expr.value] &&
173
- typeof constTable[expr.value] === 'string') {
174
- return constTable[expr.value];
173
+ if (staticTable[expr.value] &&
174
+ typeof staticTable[expr.value] === 'string') {
175
+ return staticTable[expr.value];
175
176
  }
176
177
  }
177
178
  if (exports.t.isMemberExpression(expr)) {
178
- const result = resolveConstTableMemberExpression(expr, constTable);
179
+ const result = resolveStaticTableMemberExpression(expr, staticTable);
179
180
  if (typeof result === 'string')
180
181
  return result;
181
182
  }
182
183
  if (exports.t.isTemplateLiteral(expr)) {
183
- return evaluateTemplateLiteral(expr, constTable);
184
+ return evaluateTemplateLiteral(expr, staticTable);
184
185
  }
185
186
  if (exports.t.isBinaryExpression(expr)) {
186
- return evaluateBinaryExpression(expr, constTable);
187
+ return evaluateBinaryExpression(expr, staticTable);
187
188
  }
188
189
  return '';
189
190
  }
190
191
  if (exports.t.isTemplateLiteral(node)) {
191
- return evaluateTemplateLiteral(node, constTable);
192
+ return evaluateTemplateLiteral(node, staticTable);
192
193
  }
193
194
  if (exports.t.isBinaryExpression(node)) {
194
- return evaluateBinaryExpression(node, constTable);
195
+ return evaluateBinaryExpression(node, staticTable);
195
196
  }
196
197
  return '';
197
198
  }
198
- function evaluateTemplateLiteral(node, constTable) {
199
+ function evaluateTemplateLiteral(node, staticTable) {
199
200
  let result = '';
200
201
  for (let i = 0; i < node.quasis.length; i++) {
201
202
  result += node.quasis[i].cooked || node.quasis[i].raw;
202
203
  if (i < node.expressions.length) {
203
204
  const expr = node.expressions[i];
204
- const evaluatedExpr = evaluateExpression(expr, constTable);
205
+ const evaluatedExpr = evaluateExpression(expr, staticTable);
205
206
  result += String(evaluatedExpr);
206
207
  }
207
208
  }
208
209
  return result;
209
210
  }
210
- function evaluateBinaryExpression(node, constTable) {
211
- const left = evaluateExpression(node.left, constTable);
212
- const right = evaluateExpression(node.right, constTable);
211
+ function evaluateBinaryExpression(node, staticTable) {
212
+ const left = evaluateExpression(node.left, staticTable);
213
+ const right = evaluateExpression(node.right, staticTable);
213
214
  if (node.operator === '+') {
214
215
  return String(left) + String(right);
215
216
  }
216
217
  throw new Error(`Unsupported binary operator: ${node.operator}`);
217
218
  }
218
- function evaluateExpression(node, constTable) {
219
+ function evaluateExpression(node, staticTable) {
219
220
  if (exports.t.isStringLiteral(node)) {
220
221
  return node.value;
221
222
  }
@@ -229,8 +230,8 @@ function evaluateExpression(node, constTable) {
229
230
  return null;
230
231
  }
231
232
  if (exports.t.isIdentifier(node)) {
232
- if (constTable[node.value] !== undefined) {
233
- return constTable[node.value];
233
+ if (staticTable[node.value] !== undefined) {
234
+ return staticTable[node.value];
234
235
  }
235
236
  if (exports.tables.keyframesHashTable[node.value] !== undefined) {
236
237
  return exports.tables.keyframesHashTable[node.value];
@@ -241,21 +242,21 @@ function evaluateExpression(node, constTable) {
241
242
  return `[unresolved: ${node.value}]`;
242
243
  }
243
244
  if (exports.t.isMemberExpression(node)) {
244
- const resolved = resolveConstTableMemberExpression(node, constTable);
245
+ const resolved = resolveStaticTableMemberExpression(node, staticTable);
245
246
  if (resolved !== undefined) {
246
247
  return resolved;
247
248
  }
248
- const resolvedTheme = resolveTokensTableMemberExpressionByNode(node, exports.tables.tokensTable);
249
+ const resolvedTheme = resolveThemeTableMemberExpressionByNode(node, exports.tables.themeTable);
249
250
  if (resolvedTheme !== undefined) {
250
251
  return resolvedTheme;
251
252
  }
252
253
  return `[unresolved member expression]`;
253
254
  }
254
255
  if (exports.t.isBinaryExpression(node)) {
255
- return evaluateBinaryExpression(node, constTable);
256
+ return evaluateBinaryExpression(node, staticTable);
256
257
  }
257
258
  if (exports.t.isTemplateLiteral(node)) {
258
- return evaluateTemplateLiteral(node, constTable);
259
+ return evaluateTemplateLiteral(node, staticTable);
259
260
  }
260
261
  if (exports.t.isUnaryExpression(node)) {
261
262
  return evaluateUnaryExpression(node);
@@ -298,18 +299,18 @@ function resolveViewTransitionTableMemberExpression(node, viewTransitionHashTabl
298
299
  }
299
300
  }
300
301
  }
301
- function resolveConstTableMemberExpression(node, constTable) {
302
+ function resolveStaticTableMemberExpression(node, staticTable) {
302
303
  if (exports.t.isIdentifier(node.object) && exports.t.isIdentifier(node.property)) {
303
304
  const varName = node.object.value;
304
305
  const key = node.property.value;
305
- const tableValue = constTable[varName];
306
+ const tableValue = staticTable[varName];
306
307
  if (tableValue && typeof tableValue === 'object' && key in tableValue) {
307
308
  return tableValue[key];
308
309
  }
309
310
  }
310
311
  return undefined;
311
312
  }
312
- function resolveTokensTableMemberExpressionByNode(node, tokensTable) {
313
+ function resolveThemeTableMemberExpressionByNode(node, themeTable) {
313
314
  if (exports.t.isMemberExpression(node) && exports.t.isIdentifier(node.object)) {
314
315
  const varName = node.object.value;
315
316
  let key;
@@ -320,9 +321,7 @@ function resolveTokensTableMemberExpressionByNode(node, tokensTable) {
320
321
  exports.t.isStringLiteral(node.property.expression)) {
321
322
  key = node.property.expression.value;
322
323
  }
323
- if (key &&
324
- tokensTable[varName] &&
325
- tokensTable[varName][key] !== undefined) {
324
+ if (key && themeTable[varName] && themeTable[varName][key] !== undefined) {
326
325
  const cssVarName = (0, zss_engine_1.camelToKebabCase)(key);
327
326
  return `var(--${cssVarName})`;
328
327
  }
@@ -363,7 +362,7 @@ function scanForKeyframes(addDependency) {
363
362
  decl.init.arguments.length > 0 &&
364
363
  exports.t.isObjectExpression(decl.init.arguments[0].expression)) {
365
364
  const varName = decl.id.value;
366
- const obj = objectExpressionToObject(decl.init.arguments[0].expression, exports.tables.constTable, keyframesHashTableLocal, exports.tables.viewTransitionHashTable, exports.tables.tokensTable);
365
+ const obj = objectExpressionToObject(decl.init.arguments[0].expression, exports.tables.staticTable, keyframesHashTableLocal, exports.tables.viewTransitionHashTable, exports.tables.themeTable);
367
366
  const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
368
367
  keyframesHashTableLocal[varName] = hash;
369
368
  keyframesObjectTableLocal[hash] = obj;
@@ -412,7 +411,7 @@ function scanForViewTransition(addDependency) {
412
411
  decl.init.arguments.length > 0 &&
413
412
  exports.t.isObjectExpression(decl.init.arguments[0].expression)) {
414
413
  const varName = decl.id.value;
415
- const obj = objectExpressionToObject(decl.init.arguments[0].expression, exports.tables.constTable, exports.tables.keyframesHashTable, viewTransitionHashTableLocal, exports.tables.tokensTable);
414
+ const obj = objectExpressionToObject(decl.init.arguments[0].expression, exports.tables.staticTable, exports.tables.keyframesHashTable, viewTransitionHashTableLocal, exports.tables.themeTable);
416
415
  const hash = (0, zss_engine_1.genBase36Hash)(obj, 1, 8);
417
416
  viewTransitionHashTableLocal[varName] = hash;
418
417
  viewTransitionObjectTableLocal[hash] = obj;
@@ -425,11 +424,11 @@ function scanForViewTransition(addDependency) {
425
424
  viewTransitionObjectTableLocal,
426
425
  };
427
426
  }
428
- function scanForDefineConsts(addDependency) {
429
- const constTableLocal = {};
427
+ function scanForCreateStatic(addDependency) {
428
+ const staticTableLocal = {};
430
429
  const files = fs_1.default.globSync(PATTERN_PATH, GLOB_OPTIONS);
431
430
  for (const filePath of files) {
432
- if (!isCSSDefineFile(filePath, 'defineConsts'))
431
+ if (!isCSSDefineFile(filePath, 'createStatic'))
433
432
  continue;
434
433
  addDependency(filePath);
435
434
  const source = fs_1.default.readFileSync(filePath, 'utf8');
@@ -454,24 +453,24 @@ function scanForDefineConsts(addDependency) {
454
453
  exports.t.isCallExpression(decl.init) &&
455
454
  exports.t.isMemberExpression(decl.init.callee) &&
456
455
  exports.t.isIdentifier(decl.init.callee.object, { name: 'css' }) &&
457
- exports.t.isIdentifier(decl.init.callee.property, { name: 'defineConsts' }) &&
456
+ exports.t.isIdentifier(decl.init.callee.property, { name: 'createStatic' }) &&
458
457
  decl.init.arguments.length > 0 &&
459
458
  exports.t.isObjectExpression(decl.init.arguments[0].expression)) {
460
459
  const varName = decl.id.value;
461
- const obj = objectExpressionToObject(decl.init.arguments[0].expression, constTableLocal, exports.tables.keyframesHashTable, exports.tables.viewTransitionHashTable, exports.tables.tokensTable);
462
- constTableLocal[varName] = obj;
460
+ const obj = objectExpressionToObject(decl.init.arguments[0].expression, staticTableLocal, exports.tables.keyframesHashTable, exports.tables.viewTransitionHashTable, exports.tables.themeTable);
461
+ staticTableLocal[varName] = obj;
463
462
  }
464
463
  }
465
464
  }
466
465
  }
467
- return constTableLocal;
466
+ return staticTableLocal;
468
467
  }
469
- function scanForDefineTokens(addDependency) {
470
- const tokensTableLocal = {};
471
- const defineTokensObjectTableLocal = {};
468
+ function scanForCreateTheme(addDependency) {
469
+ const themeTableLocal = {};
470
+ const createThemeObjectTableLocal = {};
472
471
  const files = fs_1.default.globSync(PATTERN_PATH, GLOB_OPTIONS);
473
472
  for (const filePath of files) {
474
- if (!isCSSDefineFile(filePath, 'defineTokens'))
473
+ if (!isCSSDefineFile(filePath, 'createTheme'))
475
474
  continue;
476
475
  addDependency(filePath);
477
476
  const source = fs_1.default.readFileSync(filePath, 'utf8');
@@ -496,18 +495,18 @@ function scanForDefineTokens(addDependency) {
496
495
  exports.t.isCallExpression(decl.init) &&
497
496
  exports.t.isMemberExpression(decl.init.callee) &&
498
497
  exports.t.isIdentifier(decl.init.callee.object, { name: 'css' }) &&
499
- exports.t.isIdentifier(decl.init.callee.property, { name: 'defineTokens' }) &&
498
+ exports.t.isIdentifier(decl.init.callee.property, { name: 'createTheme' }) &&
500
499
  decl.init.arguments.length > 0 &&
501
500
  exports.t.isObjectExpression(decl.init.arguments[0].expression)) {
502
501
  const varName = decl.id.value;
503
- const obj = objectExpressionToObject(decl.init.arguments[0].expression, exports.tables.constTable, exports.tables.keyframesHashTable, exports.tables.viewTransitionHashTable, tokensTableLocal);
504
- tokensTableLocal[varName] = obj;
505
- defineTokensObjectTableLocal[varName] = obj;
502
+ const obj = objectExpressionToObject(decl.init.arguments[0].expression, exports.tables.staticTable, exports.tables.keyframesHashTable, exports.tables.viewTransitionHashTable, themeTableLocal);
503
+ themeTableLocal[varName] = obj;
504
+ createThemeObjectTableLocal[varName] = obj;
506
505
  }
507
506
  }
508
507
  }
509
508
  }
510
- return { tokensTableLocal, defineTokensObjectTableLocal };
509
+ return { themeTableLocal, createThemeObjectTableLocal };
511
510
  }
512
511
  function isCSSDefineFile(filePath, target) {
513
512
  if (fs_1.default.statSync(filePath).isDirectory())
@@ -1,5 +1,5 @@
1
- import type { CSSProperties, CreateStyleType, CreateTokens, CreateValues } from 'zss-engine';
1
+ import type { CSSProperties, CreateStyleType, CreateTheme, CreateValues } from 'zss-engine';
2
2
  declare function createCSS<T extends Record<string, CSSProperties>>(object: CreateStyleType<T>): string;
3
3
  declare const createVars: <const T extends CreateValues>(object: T) => Record<string, CreateValues>;
4
- declare const createTokens: <const T extends CreateTokens>(object: T) => Record<string, Record<string, string | number | object>>;
5
- export { createCSS, createVars, createTokens };
4
+ declare const createTheme: <const T extends CreateTheme>(object: T) => Record<string, Record<string, string | number | object>>;
5
+ export { createCSS, createVars, createTheme };
package/dist/transform.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTokens = exports.createVars = void 0;
3
+ exports.createTheme = exports.createVars = void 0;
4
4
  exports.createCSS = createCSS;
5
5
  const zss_engine_1 = require("zss-engine");
6
6
  function compileToSingleCSS(object) {
@@ -27,7 +27,7 @@ function compileToSingleCSS(object) {
27
27
  const sheet = sheetArray[i];
28
28
  const hash = hashArray[i];
29
29
  if (sheet.includes('@media') || sheet.includes('@container')) {
30
- querySheetParts.push(sheet.replace(`.${hash}`, `.${hash}:not(#\\#)`));
30
+ querySheetParts.push(sheet.replace(`.${hash}`, `.${hash}:not(#\\#):not(#\\#)`));
31
31
  queryHashParts.push(hash);
32
32
  }
33
33
  else {
@@ -51,20 +51,33 @@ function compileToSingleCSS(object) {
51
51
  }
52
52
  });
53
53
  if (Object.keys(nonFlat).length > 0) {
54
- const modNonFlat = (0, zss_engine_1.transformNestedSelectors)(nonFlat);
55
- const nonFlatObj = { [key]: modNonFlat };
56
- const nonFlatHash = (0, zss_engine_1.genBase36Hash)(nonFlatObj, 1, 7);
57
- const { styleSheet } = (0, zss_engine_1.transpile)(nonFlatObj, nonFlatHash);
58
- const isQuery = styleSheet.includes('@media') || styleSheet.includes('@container');
59
- const finalSheet = isQuery
60
- ? styleSheet.replace(`.${nonFlatHash}`, `.${nonFlatHash}:not(#\\#)`)
61
- : styleSheet;
54
+ const nonFlatBase = {};
55
+ const nonFlatQuery = {};
62
56
  Object.entries(nonFlat).forEach(([atRule, nestedObj]) => {
63
- Object.keys(nestedObj).forEach((prop) => {
64
- records.push({
65
- key: atRule + prop,
66
- hash: nonFlatHash,
67
- sheet: finalSheet,
57
+ if (atRule.startsWith('@media') || atRule.startsWith('@container')) {
58
+ nonFlatQuery[atRule] = nestedObj;
59
+ }
60
+ else {
61
+ nonFlatBase[atRule] = nestedObj;
62
+ }
63
+ });
64
+ [nonFlatBase, nonFlatQuery].forEach((targetNonFlat) => {
65
+ if (Object.keys(targetNonFlat).length === 0)
66
+ return;
67
+ const nonFlatObj = { [key]: targetNonFlat };
68
+ const nonFlatHash = (0, zss_engine_1.genBase36Hash)(nonFlatObj, 1, 7);
69
+ const { styleSheet } = (0, zss_engine_1.transpile)(nonFlatObj, nonFlatHash);
70
+ const isQuery = styleSheet.includes('@media') || styleSheet.includes('@container');
71
+ const finalSheet = isQuery
72
+ ? styleSheet.replace(`.${nonFlatHash}`, `.${nonFlatHash}:not(#\\#):not(#\\#)`)
73
+ : styleSheet;
74
+ Object.entries(targetNonFlat).forEach(([atRule, nestedObj]) => {
75
+ Object.keys(nestedObj).forEach((prop) => {
76
+ records.push({
77
+ key: atRule + prop,
78
+ hash: nonFlatHash,
79
+ sheet: finalSheet,
80
+ });
68
81
  });
69
82
  });
70
83
  });
@@ -97,7 +110,7 @@ const createVars = (object) => {
97
110
  return styles;
98
111
  };
99
112
  exports.createVars = createVars;
100
- const createTokens = (object) => {
113
+ const createTheme = (object) => {
101
114
  const styles = {};
102
115
  Object.entries(object).forEach(([key, value]) => {
103
116
  const kebabKey = (0, zss_engine_1.camelToKebabCase)(key);
@@ -116,4 +129,4 @@ const createTokens = (object) => {
116
129
  });
117
130
  return styles;
118
131
  };
119
- exports.createTokens = createTokens;
132
+ exports.createTheme = createTheme;
package/dist/types.d.ts CHANGED
@@ -4,26 +4,26 @@ export type CSSValue = CSSPrimitive | CSSObject | ParseErrorString;
4
4
  export type CSSObject = {
5
5
  [key: string]: CSSValue;
6
6
  };
7
- export type ConstTable = Record<string, CSSObject | string>;
8
- export type TokensTable = Record<string, CSSObject>;
7
+ export type StaticTable = Record<string, CSSObject | string>;
8
+ export type ThemeTable = Record<string, CSSObject>;
9
9
  export type KeyframesHashTable = Record<string, string>;
10
10
  export type KeyframesObjectTable = Record<string, CSSObject>;
11
11
  export type ViewTransitionHashTable = Record<string, string>;
12
12
  export type ViewTransitionObjectTable = Record<string, CSSObject>;
13
- export type DefineTokensObjectTable = Record<string, CSSObject>;
13
+ export type CreateThemeObjectTable = Record<string, CSSObject>;
14
14
  export interface Tables {
15
- constTable: ConstTable;
16
- tokensTable: TokensTable;
15
+ staticTable: StaticTable;
16
+ themeTable: ThemeTable;
17
17
  keyframesHashTable: KeyframesHashTable;
18
18
  keyframesObjectTable: KeyframesObjectTable;
19
19
  viewTransitionHashTable: ViewTransitionHashTable;
20
20
  viewTransitionObjectTable: ViewTransitionObjectTable;
21
- defineTokensObjectTable: DefineTokensObjectTable;
21
+ createThemeObjectTable: CreateThemeObjectTable;
22
22
  }
23
23
  export interface FileStyles {
24
24
  baseStyles?: string;
25
25
  keyframeStyles?: string;
26
26
  viewTransitionStyles?: string;
27
- tokenStyles?: string;
27
+ themeStyles?: string;
28
28
  }
29
29
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/utils",
3
- "version": "1.0.3",
3
+ "version": "2.0.0",
4
4
  "description": "Plumeria Utils",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,7 +18,7 @@
18
18
  "@swc/core": "1.15.2"
19
19
  },
20
20
  "devDependencies": {
21
- "zss-engine": "1.0.0"
21
+ "zss-engine": "1.1.0"
22
22
  },
23
23
  "publishConfig": {
24
24
  "access": "public",