@arbor-css/css-eval 0.0.109 → 0.0.110
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/browser.d.ts +2 -2
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +4 -4
- package/dist/browser.js.map +1 -1
- package/dist/computation.d.ts +3 -1
- package/dist/computation.d.ts.map +1 -1
- package/dist/computation.js +5 -2
- package/dist/computation.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +4 -1
- package/dist/node.js.map +1 -1
- package/dist/resolveEnv.d.ts +8 -0
- package/dist/resolveEnv.d.ts.map +1 -0
- package/dist/resolveEnv.js +24 -0
- package/dist/resolveEnv.js.map +1 -0
- package/dist/simplification.d.ts +11 -0
- package/dist/simplification.d.ts.map +1 -1
- package/dist/simplification.js +52 -13
- package/dist/simplification.js.map +1 -1
- package/package.json +2 -2
package/dist/browser.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CssSimplifier } from './simplification.js';
|
|
2
|
-
export declare const loadSimplifier: () => Promise<CssSimplifier>;
|
|
1
|
+
import { CssSimplificationOptions, CssSimplifier } from './simplification.js';
|
|
2
|
+
export declare const loadSimplifier: (options?: CssSimplificationOptions) => Promise<CssSimplifier>;
|
|
3
3
|
//# sourceMappingURL=browser.d.ts.map
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,wBAAwB,EACxB,aAAa,EACb,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,cAAc,GAC1B,UAAU,wBAAwB,KAChC,OAAO,CAAC,aAAa,CAGvB,CAAC"}
|
package/dist/browser.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import init, { transform as transformNative, } from 'https://esm.
|
|
2
|
-
import { createSimplifier } from './simplification.js';
|
|
3
|
-
export const loadSimplifier = async () => {
|
|
1
|
+
import init, { transform as transformNative, } from 'https://esm.sh/lightningcss-wasm@1.32.0';
|
|
2
|
+
import { createSimplifier, } from './simplification.js';
|
|
3
|
+
export const loadSimplifier = async (options) => {
|
|
4
4
|
await init();
|
|
5
|
-
return createSimplifier({ transform: transformNative });
|
|
5
|
+
return createSimplifier({ transform: transformNative, options });
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=browser.js.map
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EACZ,SAAS,IAAI,eAAe,GAC5B,MAAM,
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EACZ,SAAS,IAAI,eAAe,GAC5B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACN,gBAAgB,GAGhB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAClC,OAAkC,EACT,EAAE;IAC3B,MAAM,IAAI,EAAE,CAAC;IACb,OAAO,gBAAgB,CAAC,EAAE,SAAS,EAAE,eAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;AACzE,CAAC,CAAC"}
|
package/dist/computation.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Css } from './interpolation.js';
|
|
2
|
+
import { CssEnvValues } from './resolveEnv.js';
|
|
2
3
|
import { CssSimplifier } from './simplification.js';
|
|
3
4
|
export interface CssResolutionContext {
|
|
4
5
|
propertyValues?: Record<string, string | Css>;
|
|
6
|
+
envValues?: CssEnvValues;
|
|
5
7
|
skipBaking?: boolean;
|
|
6
8
|
simplifier?: CssSimplifier;
|
|
7
9
|
}
|
|
8
|
-
export declare function resolveCss(input: Css, { propertyValues, skipBaking, simplifier }: CssResolutionContext): string;
|
|
10
|
+
export declare function resolveCss(input: Css, { propertyValues, envValues, skipBaking, simplifier, }: CssResolutionContext): string;
|
|
9
11
|
//# sourceMappingURL=computation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computation.d.ts","sourceRoot":"","sources":["../src/computation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"computation.d.ts","sourceRoot":"","sources":["../src/computation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,wBAAgB,UAAU,CACzB,KAAK,EAAE,GAAG,EACV,EACC,cAAmB,EACnB,SAAc,EACd,UAAkB,EAClB,UAAU,GACV,EAAE,oBAAoB,UAevB"}
|
package/dist/computation.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { resolveEnv } from './resolveEnv.js';
|
|
1
2
|
import { resolveProperties } from './resolveProperties.js';
|
|
2
|
-
export function resolveCss(input, { propertyValues = {}, skipBaking = false, simplifier }) {
|
|
3
|
-
let result = skipBaking ?
|
|
3
|
+
export function resolveCss(input, { propertyValues = {}, envValues = {}, skipBaking = false, simplifier, }) {
|
|
4
|
+
let result = skipBaking ?
|
|
5
|
+
input.text
|
|
6
|
+
: resolveEnv(resolveProperties(input, propertyValues), envValues).text;
|
|
4
7
|
if (simplifier) {
|
|
5
8
|
result = simplifier({
|
|
6
9
|
...input,
|
package/dist/computation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computation.js","sourceRoot":"","sources":["../src/computation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"computation.js","sourceRoot":"","sources":["../src/computation.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAU3D,MAAM,UAAU,UAAU,CACzB,KAAU,EACV,EACC,cAAc,GAAG,EAAE,EACnB,SAAS,GAAG,EAAE,EACd,UAAU,GAAG,KAAK,EAClB,UAAU,GACY;IAEvB,IAAI,MAAM,GACT,UAAU,CAAC,CAAC;QACX,KAAK,CAAC,IAAI;QACX,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC;IAExE,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,GAAG,UAAU,CAAC;YACnB,GAAG,KAAK;YACR,IAAI,EAAE,MAAM;SACZ,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
package/dist/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,mDAGrB,CAAC"}
|
package/dist/node.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { transform as transformNative } from 'lightningcss';
|
|
2
2
|
import { createSimplifier } from './simplification.js';
|
|
3
|
-
export const simplifier = createSimplifier({
|
|
3
|
+
export const simplifier = createSimplifier({
|
|
4
|
+
transform: transformNative,
|
|
5
|
+
options: { passes: 1 },
|
|
6
|
+
});
|
|
4
7
|
//# sourceMappingURL=node.js.map
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC;IAC1C,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;CACtB,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Css } from './interpolation.js';
|
|
2
|
+
export interface CssEnvValues {
|
|
3
|
+
deviceWidthPx?: number;
|
|
4
|
+
deviceHeightPx?: number;
|
|
5
|
+
remPx?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveEnv(css: Css, { deviceHeightPx, deviceWidthPx, remPx }: CssEnvValues): Css;
|
|
8
|
+
//# sourceMappingURL=resolveEnv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveEnv.d.ts","sourceRoot":"","sources":["../src/resolveEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,UAAU,CACzB,GAAG,EAAE,GAAG,EACR,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,YAAY,GACpD,GAAG,CA+BL"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function resolveEnv(css, { deviceHeightPx, deviceWidthPx, remPx }) {
|
|
2
|
+
let text = css.text;
|
|
3
|
+
if (deviceWidthPx) {
|
|
4
|
+
text = text.replace(/([\d.]+)[dls]?v[wi]/g, (_, num) => `${(parseFloat(num) / 100) * deviceWidthPx}px`);
|
|
5
|
+
}
|
|
6
|
+
if (deviceHeightPx) {
|
|
7
|
+
text = text.replace(/([\d.]+)[dls]?v[hb]/g, (_, num) => `${(parseFloat(num) / 100) * deviceHeightPx}px`);
|
|
8
|
+
}
|
|
9
|
+
if (deviceWidthPx && deviceHeightPx) {
|
|
10
|
+
text = text.replace(/([\d.]+)[dls]?vmin/g, (_, num) => {
|
|
11
|
+
const vmin = Math.min(deviceWidthPx, deviceHeightPx);
|
|
12
|
+
return `${(parseFloat(num) / 100) * vmin}px`;
|
|
13
|
+
});
|
|
14
|
+
text = text.replace(/([\d.]+)[dls]?vmax/g, (_, num) => {
|
|
15
|
+
const vmax = Math.max(deviceWidthPx, deviceHeightPx);
|
|
16
|
+
return `${(parseFloat(num) / 100) * vmax}px`;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if (remPx) {
|
|
20
|
+
text = text.replace(/([\d.]+)rem/g, (_, num) => `${parseFloat(num) * remPx}px`);
|
|
21
|
+
}
|
|
22
|
+
return { ...css, text };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=resolveEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveEnv.js","sourceRoot":"","sources":["../src/resolveEnv.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CACzB,GAAQ,EACR,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAgB;IAEtD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACpB,IAAI,aAAa,EAAE,CAAC;QACnB,IAAI,GAAG,IAAI,CAAC,OAAO,CAClB,sBAAsB,EACtB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,aAAa,IAAI,CAC1D,CAAC;IACH,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACpB,IAAI,GAAG,IAAI,CAAC,OAAO,CAClB,sBAAsB,EACtB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,cAAc,IAAI,CAC3D,CAAC;IACH,CAAC;IACD,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;YACrD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;YACrD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACX,IAAI,GAAG,IAAI,CAAC,OAAO,CAClB,cAAc,EACd,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAC1C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
|
package/dist/simplification.d.ts
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import { Css } from './interpolation.js';
|
|
2
2
|
/**
|
|
3
3
|
* Applies simplifications not covered by LightningCSS.
|
|
4
|
+
* Uses linear-time paren scanning instead of regex to avoid backtracking.
|
|
4
5
|
*/
|
|
5
6
|
export declare function simplifyPreprocessCss(css: string): string;
|
|
7
|
+
export interface CssSimplificationOptions {
|
|
8
|
+
/**
|
|
9
|
+
* More passes take longer but lead to further reduction
|
|
10
|
+
* of terms; this is really a quirk of the multiple
|
|
11
|
+
* tools/systems used to perform simplification.
|
|
12
|
+
* 2 is probably enough for anyone. Default is 1.
|
|
13
|
+
*/
|
|
14
|
+
passes: number;
|
|
15
|
+
}
|
|
6
16
|
export type CssSimplifier = (css: Css) => string;
|
|
7
17
|
export type CssTransformFunction = ({ filename, code, }: {
|
|
8
18
|
filename: string;
|
|
@@ -15,5 +25,6 @@ export declare function createSimplifier(config: {
|
|
|
15
25
|
* A LightningCSS transform function
|
|
16
26
|
*/
|
|
17
27
|
transform: CssTransformFunction;
|
|
28
|
+
options?: CssSimplificationOptions;
|
|
18
29
|
}): (css: Css) => string;
|
|
19
30
|
//# sourceMappingURL=simplification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplification.d.ts","sourceRoot":"","sources":["../src/simplification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"simplification.d.ts","sourceRoot":"","sources":["../src/simplification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGzC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4BzD;AA2BD,MAAM,WAAW,wBAAwB;IACxC;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;CACf;AACD,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;AACjD,MAAM,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,IAAI,GACJ,EAAE;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CACjB,KAAK;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3B,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACxC;;OAEG;IACH,SAAS,EAAE,oBAAoB,CAAC;IAChC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACnC,IAGQ,KAAK,GAAG,YAuBhB"}
|
package/dist/simplification.js
CHANGED
|
@@ -1,10 +1,46 @@
|
|
|
1
1
|
import { unwrapDummyAssignment, wrapWithDummyAssignment } from './util.js';
|
|
2
|
-
const braceMatchingCalcContentExtractor = /calc\((?:[^)(]+|\((?:[^)(]+|\([^)(]*\))*\))*\)/g;
|
|
3
2
|
/**
|
|
4
3
|
* Applies simplifications not covered by LightningCSS.
|
|
4
|
+
* Uses linear-time paren scanning instead of regex to avoid backtracking.
|
|
5
5
|
*/
|
|
6
6
|
export function simplifyPreprocessCss(css) {
|
|
7
|
-
|
|
7
|
+
let result = '';
|
|
8
|
+
let searchIndex = 0;
|
|
9
|
+
const calcKeyword = 'calc(';
|
|
10
|
+
while (searchIndex < css.length) {
|
|
11
|
+
const calcIndex = css.indexOf(calcKeyword, searchIndex);
|
|
12
|
+
if (calcIndex === -1) {
|
|
13
|
+
result += css.slice(searchIndex);
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
result += css.slice(searchIndex, calcIndex);
|
|
17
|
+
const openParenIndex = calcIndex + 4; // position of '(' in 'calc('
|
|
18
|
+
const closeParenIndex = findMatchingParen(css, openParenIndex);
|
|
19
|
+
if (closeParenIndex === -1) {
|
|
20
|
+
result += css.slice(calcIndex);
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
const content = css.slice(openParenIndex + 1, closeParenIndex);
|
|
24
|
+
const simplified = simplifyLikeUnitDivision(content);
|
|
25
|
+
result += 'calc(' + simplified + ')';
|
|
26
|
+
searchIndex = closeParenIndex + 1;
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
function findMatchingParen(text, openParenIndex) {
|
|
31
|
+
let depth = 0;
|
|
32
|
+
for (let i = openParenIndex; i < text.length; i++) {
|
|
33
|
+
if (text[i] === '(') {
|
|
34
|
+
depth++;
|
|
35
|
+
}
|
|
36
|
+
else if (text[i] === ')') {
|
|
37
|
+
depth--;
|
|
38
|
+
if (depth === 0) {
|
|
39
|
+
return i;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return -1;
|
|
8
44
|
}
|
|
9
45
|
function simplifyLikeUnitDivision(content) {
|
|
10
46
|
return content.replace(/([0-9]+)([a-z]+)\s*\/\s*([0-9]+)\2/g, (_match, num1, _unit1, num2) => {
|
|
@@ -17,18 +53,21 @@ export function createSimplifier(config) {
|
|
|
17
53
|
const dec = new TextDecoder();
|
|
18
54
|
return (css) => {
|
|
19
55
|
let cssToTransform = css.text;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
56
|
+
for (let i = 0; i < (config.options?.passes ?? 1); i++) {
|
|
57
|
+
cssToTransform = simplifyPreprocessCss(cssToTransform);
|
|
58
|
+
if (css.type === 'value') {
|
|
59
|
+
cssToTransform = wrapWithDummyAssignment(cssToTransform);
|
|
60
|
+
}
|
|
61
|
+
const result = config.transform({
|
|
62
|
+
filename: 'input.css',
|
|
63
|
+
code: enc.encode(cssToTransform),
|
|
64
|
+
});
|
|
65
|
+
if (css.type === 'value') {
|
|
66
|
+
return unwrapDummyAssignment(dec.decode(result.code));
|
|
67
|
+
}
|
|
68
|
+
cssToTransform = dec.decode(result.code);
|
|
30
69
|
}
|
|
31
|
-
return
|
|
70
|
+
return cssToTransform;
|
|
32
71
|
};
|
|
33
72
|
}
|
|
34
73
|
//# sourceMappingURL=simplification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplification.js","sourceRoot":"","sources":["../src/simplification.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAE3E,MAAM,
|
|
1
|
+
{"version":3,"file":"simplification.js","sourceRoot":"","sources":["../src/simplification.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbor-css/css-eval",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.110",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"lightningcss": "^1.32.0",
|
|
42
|
-
"@arbor-css/tokens": "0.0.
|
|
42
|
+
"@arbor-css/tokens": "0.0.110"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "tsc",
|