@plumeria/utils 18.2.3 → 18.2.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/create.js CHANGED
@@ -6,7 +6,7 @@ function getStyleRecords(styleRule) {
6
6
  const flat = {};
7
7
  const nonFlat = {};
8
8
  const notNormalize = ':not(#\\#)';
9
- (0, zss_engine_1.splitAtomicAndNested)((0, zss_engine_1.overrideLonghand)(styleRule), flat, nonFlat);
9
+ (0, zss_engine_1.splitAtomicAndNested)(styleRule, flat, nonFlat);
10
10
  const finalFlat = flat;
11
11
  const records = [];
12
12
  Object.entries(finalFlat).forEach(([prop, value]) => {
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export type { StyleRecord } from './create';
4
4
  export { getStyleRecords } from './create';
5
5
  export { createTheme } from './createTheme';
6
6
  export { resolveImportPath } from './resolver';
7
- export { optimizer, orderMediaLast } from './optimizer';
7
+ export { optimizer } from './optimizer';
8
8
  export { processVariants } from './variants';
9
9
  export { getLeadingCommentLength } from './ast';
10
10
  export type { ReferenceIdentifiers } from './references';
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.orderMediaLast = exports.optimizer = exports.resolveImportPath = exports.createTheme = exports.getStyleRecords = exports.resolveComponentKey = exports.resolveExport = exports.getFileDependencies = exports.scanAll = exports.deepMerge = exports.extractOndemandStyles = exports.getRootIdentifier = exports.t = exports.traverse = exports.collectLocalConsts = exports.objectExpressionToObject = void 0;
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.createTheme = exports.getStyleRecords = 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; } });
@@ -21,7 +21,6 @@ var resolver_1 = require("./resolver");
21
21
  Object.defineProperty(exports, "resolveImportPath", { enumerable: true, get: function () { return resolver_1.resolveImportPath; } });
22
22
  var optimizer_1 = require("./optimizer");
23
23
  Object.defineProperty(exports, "optimizer", { enumerable: true, get: function () { return optimizer_1.optimizer; } });
24
- Object.defineProperty(exports, "orderMediaLast", { enumerable: true, get: function () { return optimizer_1.orderMediaLast; } });
25
24
  var variants_1 = require("./variants");
26
25
  Object.defineProperty(exports, "processVariants", { enumerable: true, get: function () { return variants_1.processVariants; } });
27
26
  var ast_1 = require("./ast");
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'postcss';
2
+ export declare const mergeRules: () => Plugin;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeRules = void 0;
4
+ function mergeContainer(container) {
5
+ if (!container.nodes)
6
+ return;
7
+ const rules = new Map();
8
+ const atRules = new Map();
9
+ for (const node of [...container.nodes]) {
10
+ if (node.type === 'rule') {
11
+ const previous = rules.get(node.selector);
12
+ if (previous) {
13
+ previous.append(...node.nodes);
14
+ node.remove();
15
+ }
16
+ else {
17
+ rules.set(node.selector, node);
18
+ }
19
+ continue;
20
+ }
21
+ if (node.type !== 'atrule' || !node.nodes)
22
+ continue;
23
+ const key = `${node.name}\0${node.params}`;
24
+ const previous = atRules.get(key);
25
+ if (previous) {
26
+ previous.append(...node.nodes);
27
+ node.remove();
28
+ }
29
+ else {
30
+ atRules.set(key, node);
31
+ }
32
+ }
33
+ for (const node of [...rules.values(), ...atRules.values()]) {
34
+ mergeContainer(node);
35
+ }
36
+ }
37
+ const mergeRules = () => ({
38
+ postcssPlugin: 'plumeria-merge-rules',
39
+ OnceExit(root) {
40
+ mergeContainer(root);
41
+ },
42
+ });
43
+ exports.mergeRules = mergeRules;
@@ -1,2 +1 @@
1
- export declare function orderMediaLast(rules: string[]): string[];
2
1
  export declare function optimizer(cssCode: string): Promise<string>;
package/dist/optimizer.js CHANGED
@@ -3,44 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.orderMediaLast = orderMediaLast;
7
6
  exports.optimizer = optimizer;
8
7
  const postcss_1 = __importDefault(require("postcss"));
9
- const postcss_combine_media_query_1 = __importDefault(require("postcss-combine-media-query"));
10
8
  const lightningcss_1 = require("lightningcss");
11
- function isMediaRule(rule) {
12
- let i = 0;
13
- while (i < rule.length) {
14
- const char = rule[i];
15
- if (char === '/' && rule[i + 1] === '*') {
16
- const end = rule.indexOf('*/', i + 2);
17
- if (end === -1)
18
- return false;
19
- i = end + 2;
20
- continue;
21
- }
22
- if (char === ' ' ||
23
- char === '\n' ||
24
- char === '\t' ||
25
- char === '\r' ||
26
- char === '\f') {
27
- i++;
28
- continue;
29
- }
30
- break;
31
- }
32
- return rule.startsWith('@media', i);
33
- }
34
- function orderMediaLast(rules) {
35
- const base = [];
36
- const media = [];
37
- for (const rule of rules) {
38
- (isMediaRule(rule) ? media : base).push(rule);
39
- }
40
- return [...base, ...media];
41
- }
9
+ const mergeRules_1 = require("./mergeRules");
42
10
  async function optimizer(cssCode) {
43
- const merged = await (0, postcss_1.default)([(0, postcss_combine_media_query_1.default)()]).process(cssCode, {
11
+ const merged = await (0, postcss_1.default)([(0, mergeRules_1.mergeRules)()]).process(cssCode, {
44
12
  from: undefined,
45
13
  });
46
14
  const light = (0, lightningcss_1.transform)({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumeria/utils",
3
- "version": "18.2.3",
3
+ "version": "18.2.5",
4
4
  "description": "Plumeria Utils",
5
5
  "author": "Refirst 11",
6
6
  "license": "MIT",
@@ -25,8 +25,7 @@
25
25
  "@swc/core": "1.15.47",
26
26
  "lightningcss": "^1.32.0",
27
27
  "postcss": "8.5.25",
28
- "postcss-combine-media-query": "^2.1.0",
29
- "zss-engine": "2.3.2"
28
+ "zss-engine": "2.4.1"
30
29
  },
31
30
  "publishConfig": {
32
31
  "access": "public",