@jesscss/plugin-less-compat 2.0.0-alpha.1 → 2.0.0-alpha.10
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/README.md +50 -115
- package/lib/index.cjs +342 -0
- package/lib/index.d.ts +2 -2
- package/lib/index.js +332 -9
- package/lib/less-api-bridge.d.ts +85 -0
- package/lib/plugin.d.ts +21 -82
- package/package.json +14 -19
- package/lib/index.js.map +0 -1
- package/lib/less-compat-structures.d.ts +0 -108
- package/lib/less-compat-structures.js +0 -519
- package/lib/less-compat-structures.js.map +0 -1
- package/lib/nodes/at-rule.d.ts +0 -6
- package/lib/nodes/at-rule.js +0 -72
- package/lib/nodes/at-rule.js.map +0 -1
- package/lib/nodes/attribute-selector.d.ts +0 -6
- package/lib/nodes/attribute-selector.js +0 -54
- package/lib/nodes/attribute-selector.js.map +0 -1
- package/lib/nodes/call.d.ts +0 -6
- package/lib/nodes/call.js +0 -83
- package/lib/nodes/call.js.map +0 -1
- package/lib/nodes/color.d.ts +0 -6
- package/lib/nodes/color.js +0 -57
- package/lib/nodes/color.js.map +0 -1
- package/lib/nodes/combinator.d.ts +0 -6
- package/lib/nodes/combinator.js +0 -34
- package/lib/nodes/combinator.js.map +0 -1
- package/lib/nodes/comment.d.ts +0 -6
- package/lib/nodes/comment.js +0 -41
- package/lib/nodes/comment.js.map +0 -1
- package/lib/nodes/condition.d.ts +0 -6
- package/lib/nodes/condition.js +0 -60
- package/lib/nodes/condition.js.map +0 -1
- package/lib/nodes/declaration.d.ts +0 -6
- package/lib/nodes/declaration.js +0 -81
- package/lib/nodes/declaration.js.map +0 -1
- package/lib/nodes/dimension.d.ts +0 -6
- package/lib/nodes/dimension.js +0 -47
- package/lib/nodes/dimension.js.map +0 -1
- package/lib/nodes/expression.d.ts +0 -6
- package/lib/nodes/expression.js +0 -44
- package/lib/nodes/expression.js.map +0 -1
- package/lib/nodes/extend.d.ts +0 -6
- package/lib/nodes/extend.js +0 -57
- package/lib/nodes/extend.js.map +0 -1
- package/lib/nodes/import.d.ts +0 -6
- package/lib/nodes/import.js +0 -63
- package/lib/nodes/import.js.map +0 -1
- package/lib/nodes/index.d.ts +0 -45
- package/lib/nodes/index.js +0 -308
- package/lib/nodes/index.js.map +0 -1
- package/lib/nodes/keyword.d.ts +0 -6
- package/lib/nodes/keyword.js +0 -36
- package/lib/nodes/keyword.js.map +0 -1
- package/lib/nodes/list.d.ts +0 -6
- package/lib/nodes/list.js +0 -150
- package/lib/nodes/list.js.map +0 -1
- package/lib/nodes/mixin.d.ts +0 -6
- package/lib/nodes/mixin.js +0 -62
- package/lib/nodes/mixin.js.map +0 -1
- package/lib/nodes/negative.d.ts +0 -6
- package/lib/nodes/negative.js +0 -42
- package/lib/nodes/negative.js.map +0 -1
- package/lib/nodes/operation.d.ts +0 -6
- package/lib/nodes/operation.js +0 -63
- package/lib/nodes/operation.js.map +0 -1
- package/lib/nodes/paren.d.ts +0 -6
- package/lib/nodes/paren.js +0 -42
- package/lib/nodes/paren.js.map +0 -1
- package/lib/nodes/quoted.d.ts +0 -6
- package/lib/nodes/quoted.js +0 -57
- package/lib/nodes/quoted.js.map +0 -1
- package/lib/nodes/reference.d.ts +0 -9
- package/lib/nodes/reference.js +0 -80
- package/lib/nodes/reference.js.map +0 -1
- package/lib/nodes/ruleset.d.ts +0 -6
- package/lib/nodes/ruleset.js +0 -108
- package/lib/nodes/ruleset.js.map +0 -1
- package/lib/nodes/selector.d.ts +0 -8
- package/lib/nodes/selector.js +0 -226
- package/lib/nodes/selector.js.map +0 -1
- package/lib/nodes/sequence.d.ts +0 -9
- package/lib/nodes/sequence.js +0 -75
- package/lib/nodes/sequence.js.map +0 -1
- package/lib/nodes/url.d.ts +0 -6
- package/lib/nodes/url.js +0 -42
- package/lib/nodes/url.js.map +0 -1
- package/lib/nodes/var-declaration.d.ts +0 -6
- package/lib/nodes/var-declaration.js +0 -60
- package/lib/nodes/var-declaration.js.map +0 -1
- package/lib/plugin-utils.d.ts +0 -20
- package/lib/plugin-utils.js +0 -100
- package/lib/plugin-utils.js.map +0 -1
- package/lib/plugin.js +0 -1027
- package/lib/plugin.js.map +0 -1
- package/lib/transform/from-less.d.ts +0 -30
- package/lib/transform/from-less.js +0 -170
- package/lib/transform/from-less.js.map +0 -1
- package/lib/transform/index.d.ts +0 -7
- package/lib/transform/index.js +0 -8
- package/lib/transform/index.js.map +0 -1
- package/lib/transform/proxy.d.ts +0 -32
- package/lib/transform/proxy.js +0 -138
- package/lib/transform/proxy.js.map +0 -1
- package/lib/transform/to-less.d.ts +0 -17
- package/lib/transform/to-less.js +0 -128
- package/lib/transform/to-less.js.map +0 -1
- package/lib/transform/type-map.d.ts +0 -27
- package/lib/transform/type-map.js +0 -105
- package/lib/transform/type-map.js.map +0 -1
- package/lib/types.d.ts +0 -33
- package/lib/types.js +0 -5
- package/lib/types.js.map +0 -1
package/lib/nodes/at-rule.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
/**
|
|
6
|
-
* Transform a Jess AtRule to a Less-compatible AtRule
|
|
7
|
-
*/
|
|
8
|
-
export function transformAtRuleToLess(jessAtRule, cache) {
|
|
9
|
-
return createLessProxy(jessAtRule, cache, (prop, target) => {
|
|
10
|
-
const atRule = target;
|
|
11
|
-
// Map 'type' property
|
|
12
|
-
// Less.js v2 used "Directive" instead of "AtRule" - support both for compatibility
|
|
13
|
-
if (prop === 'type') {
|
|
14
|
-
// For Less.js v2 compatibility, we can return "Directive" if needed
|
|
15
|
-
// But by default, map to "AtRule" (modern)
|
|
16
|
-
return mapJessTypeToLessType(atRule.type);
|
|
17
|
-
}
|
|
18
|
-
// Map 'typeIndex'
|
|
19
|
-
if (prop === 'typeIndex') {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
// Map 'name' property
|
|
23
|
-
if (prop === 'name') {
|
|
24
|
-
return atRule.value.name;
|
|
25
|
-
}
|
|
26
|
-
// Map 'value' property (Less expects Value node or array)
|
|
27
|
-
// Jess uses 'prelude' instead of 'value'
|
|
28
|
-
if (prop === 'value') {
|
|
29
|
-
const prelude = atRule.value.prelude;
|
|
30
|
-
if (prelude instanceof Node) {
|
|
31
|
-
return toLessNode(prelude, { cache });
|
|
32
|
-
}
|
|
33
|
-
return prelude;
|
|
34
|
-
}
|
|
35
|
-
// Map 'rules' property (for @media, @keyframes, etc.)
|
|
36
|
-
if (prop === 'rules') {
|
|
37
|
-
const rules = atRule.value.rules;
|
|
38
|
-
if (rules) {
|
|
39
|
-
return rules.value.map((r) => toLessNode(r, { cache }));
|
|
40
|
-
}
|
|
41
|
-
return [];
|
|
42
|
-
}
|
|
43
|
-
// Map 'accept' method for visitor traversal
|
|
44
|
-
// AtRule's accept should ONLY traverse children (rules), NOT call visitor methods on itself
|
|
45
|
-
// The visitor's visit() method already called visitAtRule() or visitDirective() before calling accept()
|
|
46
|
-
if (prop === 'accept') {
|
|
47
|
-
return function (visitor) {
|
|
48
|
-
// AtRule's accept only traverses its rules (children)
|
|
49
|
-
// Less.js AtRule.accept() pattern: visitor.visitArray(this.rules)
|
|
50
|
-
const rules = atRule.value.rules;
|
|
51
|
-
if (rules && rules.value && rules.value.length > 0) {
|
|
52
|
-
const lessRules = rules.value.map((r) => toLessNode(r, { cache }));
|
|
53
|
-
if (visitor.visitArray) {
|
|
54
|
-
visitor.visitArray(lessRules);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
// Fallback: call accept on each rule
|
|
58
|
-
for (const lessRule of lessRules) {
|
|
59
|
-
if (lessRule && lessRule.accept) {
|
|
60
|
-
lessRule.accept(visitor);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
// Return the atRule (accept doesn't return a replacement node)
|
|
66
|
-
return atRule;
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
return undefined;
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=at-rule.js.map
|
package/lib/nodes/at-rule.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"at-rule.js","sourceRoot":"","sources":["../../src/nodes/at-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,IAAI,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIjE;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,KAAyB;IAEzB,OAAO,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,MAAgB,CAAC;QAEhC,sBAAsB;QACtB,mFAAmF;QACnF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,oEAAoE;YACpE,2CAA2C;YAC3C,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,CAAC;QAED,0DAA0D;QAC1D,yCAAyC;QACzC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACrC,IAAI,OAAO,YAAY,IAAI,EAAE,CAAC;gBAC5B,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,sDAAsD;QACtD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACjC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,4CAA4C;QAC5C,4FAA4F;QAC5F,wGAAwG;QACxG,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,sDAAsD;gBACtD,kEAAkE;gBAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBACjC,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBACzE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;wBACvB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAChC,CAAC;yBAAM,CAAC;wBACN,qCAAqC;wBACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;4BACjC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gCAChC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BAC3B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,+DAA+D;gBAC/D,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { AttributeSelector } from '@jesscss/core';
|
|
2
|
-
import type { LessNode } from '../types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Transform a Jess AttributeSelector to a Less-compatible Attribute
|
|
5
|
-
*/
|
|
6
|
-
export declare function transformAttributeSelectorToLess(jessAttr: AttributeSelector, cache?: WeakMap<any, any>): LessNode;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
import { fromLessNode } from '../transform/from-less.js';
|
|
6
|
-
/**
|
|
7
|
-
* Transform a Jess AttributeSelector to a Less-compatible Attribute
|
|
8
|
-
*/
|
|
9
|
-
export function transformAttributeSelectorToLess(jessAttr, cache) {
|
|
10
|
-
return createLessProxy(jessAttr, cache, (prop, target) => {
|
|
11
|
-
const attr = target;
|
|
12
|
-
// Map 'type' property
|
|
13
|
-
if (prop === 'type') {
|
|
14
|
-
return mapJessTypeToLessType(attr.type);
|
|
15
|
-
}
|
|
16
|
-
// Map 'typeIndex'
|
|
17
|
-
if (prop === 'typeIndex') {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
// Map 'key' property (Less uses 'key', Jess uses 'name')
|
|
21
|
-
if (prop === 'key') {
|
|
22
|
-
const name = attr.value.name;
|
|
23
|
-
if (name instanceof Node) {
|
|
24
|
-
return toLessNode(name, { cache });
|
|
25
|
-
}
|
|
26
|
-
return name;
|
|
27
|
-
}
|
|
28
|
-
// Map 'op' property (operator)
|
|
29
|
-
if (prop === 'op') {
|
|
30
|
-
return attr.value.op || '';
|
|
31
|
-
}
|
|
32
|
-
// Map 'value' property
|
|
33
|
-
if (prop === 'value') {
|
|
34
|
-
const value = attr.value.value;
|
|
35
|
-
if (value instanceof Node) {
|
|
36
|
-
return toLessNode(value, { cache });
|
|
37
|
-
}
|
|
38
|
-
return value;
|
|
39
|
-
}
|
|
40
|
-
// Map 'accept' method for visitor traversal
|
|
41
|
-
if (prop === 'accept') {
|
|
42
|
-
return function (visitor) {
|
|
43
|
-
const lessAttr = transformAttributeSelectorToLess(attr, cache);
|
|
44
|
-
const result = visitor.visit(lessAttr);
|
|
45
|
-
if (result !== lessAttr) {
|
|
46
|
-
return fromLessNode(result, { cache });
|
|
47
|
-
}
|
|
48
|
-
return attr;
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
return undefined;
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=attribute-selector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-selector.js","sourceRoot":"","sources":["../../src/nodes/attribute-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,IAAI,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAC9C,QAA2B,EAC3B,KAAyB;IAEzB,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAA2B,CAAC;QAEzC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,yDAAyD;QACzD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;QAC7B,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/B,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC1B,OAAO,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,MAAM,QAAQ,GAAG,gCAAgC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACxB,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/lib/nodes/call.d.ts
DELETED
package/lib/nodes/call.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
/**
|
|
6
|
-
* Transform a Jess Call to a Less-compatible Call or MixinCall
|
|
7
|
-
*/
|
|
8
|
-
export function transformCallToLess(jessCall, cache) {
|
|
9
|
-
return createLessProxy(jessCall, cache, (prop, target) => {
|
|
10
|
-
const call = target;
|
|
11
|
-
// Map 'type' property
|
|
12
|
-
// Less distinguishes between Call and MixinCall, but Jess uses Call for both
|
|
13
|
-
// We'll default to Call, but this could be enhanced to detect mixin calls
|
|
14
|
-
if (prop === 'type') {
|
|
15
|
-
return mapJessTypeToLessType(call.type);
|
|
16
|
-
}
|
|
17
|
-
// Map 'typeIndex'
|
|
18
|
-
if (prop === 'typeIndex') {
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
// Map 'name' property
|
|
22
|
-
if (prop === 'name') {
|
|
23
|
-
return call.value.name;
|
|
24
|
-
}
|
|
25
|
-
// Map 'args' property
|
|
26
|
-
if (prop === 'args') {
|
|
27
|
-
const args = call.value.args;
|
|
28
|
-
if (args) {
|
|
29
|
-
return args.value.map((arg) => {
|
|
30
|
-
if (arg instanceof Node) {
|
|
31
|
-
return toLessNode(arg, { cache });
|
|
32
|
-
}
|
|
33
|
-
return arg;
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
return [];
|
|
37
|
-
}
|
|
38
|
-
// Map 'index' property
|
|
39
|
-
if (prop === 'index') {
|
|
40
|
-
const loc = call.location;
|
|
41
|
-
if (Array.isArray(loc) || !loc) {
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
return loc.index;
|
|
45
|
-
}
|
|
46
|
-
// Map 'accept' method for visitor traversal
|
|
47
|
-
if (prop === 'accept') {
|
|
48
|
-
return function (visitor) {
|
|
49
|
-
// Less Call's accept() should traverse args if they exist
|
|
50
|
-
// But we don't call visitor.visit() here to avoid infinite loops
|
|
51
|
-
// The visitor's visit() method will handle traversal
|
|
52
|
-
// If args exist, we should traverse them using visitArray
|
|
53
|
-
const args = call.value.args;
|
|
54
|
-
if (args && args.value.length > 0) {
|
|
55
|
-
const lessArgs = args.value
|
|
56
|
-
.map((arg) => {
|
|
57
|
-
if (arg instanceof Node) {
|
|
58
|
-
return toLessNode(arg, { cache });
|
|
59
|
-
}
|
|
60
|
-
return arg;
|
|
61
|
-
})
|
|
62
|
-
.filter((arg) => arg !== undefined && arg !== null); // Filter out undefined/null
|
|
63
|
-
if (lessArgs.length > 0) {
|
|
64
|
-
if (visitor.visitArray) {
|
|
65
|
-
visitor.visitArray(lessArgs);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
// Fallback: call accept on each arg if visitArray not available
|
|
69
|
-
for (const lessArg of lessArgs) {
|
|
70
|
-
if (lessArg && lessArg.accept) {
|
|
71
|
-
lessArg.accept(visitor);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return call;
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
return undefined;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=call.js.map
|
package/lib/nodes/call.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/nodes/call.ts"],"names":[],"mappings":"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"}
|
package/lib/nodes/color.d.ts
DELETED
package/lib/nodes/color.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
2
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
3
|
-
/**
|
|
4
|
-
* Transform a Jess Color to a Less-compatible Color
|
|
5
|
-
*/
|
|
6
|
-
export function transformColorToLess(jessColor, cache) {
|
|
7
|
-
return createLessProxy(jessColor, cache, (prop, target) => {
|
|
8
|
-
const color = target;
|
|
9
|
-
// Map 'type' property
|
|
10
|
-
if (prop === 'type') {
|
|
11
|
-
return mapJessTypeToLessType(color.type);
|
|
12
|
-
}
|
|
13
|
-
// Map 'typeIndex'
|
|
14
|
-
if (prop === 'typeIndex') {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
// Map 'rgb' property
|
|
18
|
-
if (prop === 'rgb') {
|
|
19
|
-
return color.value.rgb || [0, 0, 0];
|
|
20
|
-
}
|
|
21
|
-
// Map 'alpha' property
|
|
22
|
-
if (prop === 'alpha') {
|
|
23
|
-
return color._alpha;
|
|
24
|
-
}
|
|
25
|
-
// Map 'value' property (Less expects string representation)
|
|
26
|
-
if (prop === 'value') {
|
|
27
|
-
// Convert color to string representation
|
|
28
|
-
// Less uses format like '#rrggbb' or 'rgba(r, g, b, a)'
|
|
29
|
-
const rgb = color.value.rgb;
|
|
30
|
-
const alpha = color._alpha;
|
|
31
|
-
if (rgb && alpha !== undefined && alpha < 1) {
|
|
32
|
-
return `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${alpha})`;
|
|
33
|
-
}
|
|
34
|
-
if (rgb) {
|
|
35
|
-
// Convert to hex
|
|
36
|
-
const hex = rgb.map((v) => {
|
|
37
|
-
const numericValue = Array.isArray(v) ? v[0] : v;
|
|
38
|
-
const h = Math.round(numericValue).toString(16).padStart(2, '0');
|
|
39
|
-
return h;
|
|
40
|
-
}).join('');
|
|
41
|
-
return `#${hex}`;
|
|
42
|
-
}
|
|
43
|
-
return '';
|
|
44
|
-
}
|
|
45
|
-
// Map 'accept' method for visitor traversal
|
|
46
|
-
// Less's Visitor.visit() calls node.accept(this) to traverse children
|
|
47
|
-
// Color nodes typically don't have children to traverse, so this is a no-op
|
|
48
|
-
if (prop === 'accept') {
|
|
49
|
-
return function (visitor) {
|
|
50
|
-
// Color nodes don't have children to traverse
|
|
51
|
-
// The visitor.visit() was already called by our plugin wrapper
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
return undefined;
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=color.js.map
|
package/lib/nodes/color.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/nodes/color.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAgB,EAChB,KAAyB;IAEzB,OAAO,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,MAAe,CAAC;QAE9B,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,yCAAyC;YACzC,wDAAwD;YACxD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;YAC3D,CAAC;YACD,IAAI,GAAG,EAAE,CAAC;gBACR,iBAAiB;gBACjB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACxB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACjE,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACZ,OAAO,IAAI,GAAG,EAAE,CAAC;YACnB,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,4CAA4C;QAC5C,sEAAsE;QACtE,4EAA4E;QAC5E,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,8CAA8C;gBAC9C,+DAA+D;YACjE,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Combinator } from '@jesscss/core';
|
|
2
|
-
import type { LessNode } from '../types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Transform a Jess Combinator to a Less-compatible Combinator
|
|
5
|
-
*/
|
|
6
|
-
export declare function transformCombinatorToLess(jessCombinator: Combinator, cache?: WeakMap<any, any>): LessNode;
|
package/lib/nodes/combinator.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
2
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
3
|
-
/**
|
|
4
|
-
* Transform a Jess Combinator to a Less-compatible Combinator
|
|
5
|
-
*/
|
|
6
|
-
export function transformCombinatorToLess(jessCombinator, cache) {
|
|
7
|
-
return createLessProxy(jessCombinator, cache, (prop, target) => {
|
|
8
|
-
const combinator = target;
|
|
9
|
-
// Map 'type' property
|
|
10
|
-
if (prop === 'type') {
|
|
11
|
-
return mapJessTypeToLessType(combinator.type);
|
|
12
|
-
}
|
|
13
|
-
// Map 'typeIndex'
|
|
14
|
-
if (prop === 'typeIndex') {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
// Map 'value' property
|
|
18
|
-
if (prop === 'value') {
|
|
19
|
-
return combinator.value;
|
|
20
|
-
}
|
|
21
|
-
// Map 'accept' method for visitor traversal
|
|
22
|
-
if (prop === 'accept') {
|
|
23
|
-
return function (visitor) {
|
|
24
|
-
// Less Combinator has no children, so accept() should just return the combinator
|
|
25
|
-
// The visitor's visit() method will be called by the visitor itself
|
|
26
|
-
// We don't need to call visitor.visit() here - that would create a loop
|
|
27
|
-
// if the visitor's visit() method calls accept() again
|
|
28
|
-
return combinator;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
return undefined;
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=combinator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combinator.js","sourceRoot":"","sources":["../../src/nodes/combinator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,cAA0B,EAC1B,KAAyB;IAEzB,OAAO,eAAe,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7D,MAAM,UAAU,GAAG,MAAoB,CAAC;QAExC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,UAAU,CAAC,KAAK,CAAC;QAC1B,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,iFAAiF;gBACjF,oEAAoE;gBACpE,wEAAwE;gBACxE,uDAAuD;gBACvD,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/lib/nodes/comment.d.ts
DELETED
package/lib/nodes/comment.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
2
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
3
|
-
import { fromLessNode } from '../transform/from-less.js';
|
|
4
|
-
/**
|
|
5
|
-
* Transform a Jess Comment to a Less-compatible Comment
|
|
6
|
-
*/
|
|
7
|
-
export function transformCommentToLess(jessComment, cache) {
|
|
8
|
-
return createLessProxy(jessComment, cache, (prop, target) => {
|
|
9
|
-
const comment = target;
|
|
10
|
-
// Map 'type' property
|
|
11
|
-
if (prop === 'type') {
|
|
12
|
-
return mapJessTypeToLessType(comment.type);
|
|
13
|
-
}
|
|
14
|
-
// Map 'typeIndex'
|
|
15
|
-
if (prop === 'typeIndex') {
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
// Map 'value' property
|
|
19
|
-
if (prop === 'value') {
|
|
20
|
-
return comment.value;
|
|
21
|
-
}
|
|
22
|
-
// Map 'silent' property (Less uses this for /* */ vs // comments)
|
|
23
|
-
if (prop === 'silent') {
|
|
24
|
-
// Jess doesn't distinguish, default to false (block comment)
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
// Map 'accept' method for visitor traversal
|
|
28
|
-
if (prop === 'accept') {
|
|
29
|
-
return function (visitor) {
|
|
30
|
-
const lessComment = transformCommentToLess(comment, cache);
|
|
31
|
-
const result = visitor.visit(lessComment);
|
|
32
|
-
if (result !== lessComment) {
|
|
33
|
-
return fromLessNode(result, { cache });
|
|
34
|
-
}
|
|
35
|
-
return comment;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
return undefined;
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=comment.js.map
|
package/lib/nodes/comment.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"comment.js","sourceRoot":"","sources":["../../src/nodes/comment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAoB,EACpB,KAAyB;IAEzB,OAAO,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,MAAiB,CAAC;QAElC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,KAAK,CAAC;QACvB,CAAC;QAED,kEAAkE;QAClE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,6DAA6D;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC3B,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/lib/nodes/condition.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Condition } from '@jesscss/core';
|
|
2
|
-
import type { LessNode } from '../types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Transform a Jess Condition to a Less-compatible Condition
|
|
5
|
-
*/
|
|
6
|
-
export declare function transformConditionToLess(jessCondition: Condition, cache?: WeakMap<any, any>): LessNode;
|
package/lib/nodes/condition.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
import { fromLessNode } from '../transform/from-less.js';
|
|
6
|
-
/**
|
|
7
|
-
* Transform a Jess Condition to a Less-compatible Condition
|
|
8
|
-
*/
|
|
9
|
-
export function transformConditionToLess(jessCondition, cache) {
|
|
10
|
-
return createLessProxy(jessCondition, cache, (prop, target) => {
|
|
11
|
-
const condition = target;
|
|
12
|
-
// Map 'type' property
|
|
13
|
-
if (prop === 'type') {
|
|
14
|
-
return mapJessTypeToLessType(condition.type);
|
|
15
|
-
}
|
|
16
|
-
// Map 'typeIndex'
|
|
17
|
-
if (prop === 'typeIndex') {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
// Map 'op' property (operator)
|
|
21
|
-
// Condition.value is a tuple: [left, op?, right?]
|
|
22
|
-
if (prop === 'op') {
|
|
23
|
-
const [, op] = condition.value;
|
|
24
|
-
return op || '';
|
|
25
|
-
}
|
|
26
|
-
// Map 'lvalue' property (left value)
|
|
27
|
-
if (prop === 'lvalue') {
|
|
28
|
-
const [left] = condition.value;
|
|
29
|
-
if (left instanceof Node) {
|
|
30
|
-
return toLessNode(left, { cache });
|
|
31
|
-
}
|
|
32
|
-
return left;
|
|
33
|
-
}
|
|
34
|
-
// Map 'rvalue' property (right value)
|
|
35
|
-
if (prop === 'rvalue') {
|
|
36
|
-
const [, , right] = condition.value;
|
|
37
|
-
if (right instanceof Node) {
|
|
38
|
-
return toLessNode(right, { cache });
|
|
39
|
-
}
|
|
40
|
-
return right;
|
|
41
|
-
}
|
|
42
|
-
// Map 'negate' property
|
|
43
|
-
if (prop === 'negate') {
|
|
44
|
-
return condition.options?.negate === true;
|
|
45
|
-
}
|
|
46
|
-
// Map 'accept' method for visitor traversal
|
|
47
|
-
if (prop === 'accept') {
|
|
48
|
-
return function (visitor) {
|
|
49
|
-
const lessCondition = transformConditionToLess(condition, cache);
|
|
50
|
-
const result = visitor.visit(lessCondition);
|
|
51
|
-
if (result !== lessCondition) {
|
|
52
|
-
return fromLessNode(result, { cache });
|
|
53
|
-
}
|
|
54
|
-
return condition;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
return undefined;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=condition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/nodes/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAAwB,EACxB,KAAyB;IAEzB,OAAO,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC5D,MAAM,SAAS,GAAG,MAAmB,CAAC;QAEtC,sBAAsB;QACtB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,+BAA+B;QAC/B,kDAAkD;QAClD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAC/B,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;QAED,qCAAqC;QACrC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAC/B,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,EAAE,AAAD,EAAG,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YACpC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC1B,OAAO,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5C,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,UAAS,OAAY;gBAC1B,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC5C,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;oBAC7B,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Declaration } from '@jesscss/core';
|
|
2
|
-
import type { LessNode } from '../types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Transform a Jess Declaration to a Less-compatible Declaration
|
|
5
|
-
*/
|
|
6
|
-
export declare function transformDeclarationToLess(jessDeclaration: Declaration, cache?: WeakMap<any, any>): LessNode;
|
package/lib/nodes/declaration.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Node } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { toLessNode } from '../transform/to-less.js';
|
|
4
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
5
|
-
/**
|
|
6
|
-
* Transform a Jess Declaration to a Less-compatible Declaration
|
|
7
|
-
*/
|
|
8
|
-
export function transformDeclarationToLess(jessDeclaration, cache) {
|
|
9
|
-
return createLessProxy(jessDeclaration, cache, (prop, target) => {
|
|
10
|
-
const decl = target;
|
|
11
|
-
// Map 'type' property
|
|
12
|
-
if (prop === 'type') {
|
|
13
|
-
return mapJessTypeToLessType(decl.type);
|
|
14
|
-
}
|
|
15
|
-
// typeIndex is handled automatically by the base proxy handler
|
|
16
|
-
// Map 'name' property
|
|
17
|
-
if (prop === 'name') {
|
|
18
|
-
return decl.value.name;
|
|
19
|
-
}
|
|
20
|
-
// Map 'value' property
|
|
21
|
-
if (prop === 'value') {
|
|
22
|
-
const value = decl.value.value;
|
|
23
|
-
if (value instanceof Node) {
|
|
24
|
-
return toLessNode(value, { cache });
|
|
25
|
-
}
|
|
26
|
-
return value;
|
|
27
|
-
}
|
|
28
|
-
// Map 'important' property
|
|
29
|
-
if (prop === 'important') {
|
|
30
|
-
return decl.value.important || false;
|
|
31
|
-
}
|
|
32
|
-
// Map 'variable' property (from options.assign)
|
|
33
|
-
// Jess uses AssignmentType enum, Less uses boolean
|
|
34
|
-
if (prop === 'variable') {
|
|
35
|
-
return decl.options?.assign !== undefined;
|
|
36
|
-
}
|
|
37
|
-
// Map 'merge' property (Less uses this for merging declarations)
|
|
38
|
-
if (prop === 'merge') {
|
|
39
|
-
return false; // Default, can be set by Less visitors
|
|
40
|
-
}
|
|
41
|
-
// Map 'accept' method for visitor traversal
|
|
42
|
-
// Less's Visitor.visit() calls node.accept(this) to traverse children
|
|
43
|
-
// Declaration's accept should ONLY traverse its value, NOT call visitor methods on itself
|
|
44
|
-
// The visitor's visit() method already called visitDeclaration() or visitRule() before calling accept()
|
|
45
|
-
if (prop === 'accept') {
|
|
46
|
-
return function (visitor) {
|
|
47
|
-
// Declaration's accept only traverses its value (children)
|
|
48
|
-
// Base Node.accept() pattern: visitor.visit(this.value)
|
|
49
|
-
const value = decl.value.value;
|
|
50
|
-
if (value instanceof Node) {
|
|
51
|
-
const lessValue = toLessNode(value, { cache });
|
|
52
|
-
if (lessValue && lessValue.accept) {
|
|
53
|
-
lessValue.accept(visitor);
|
|
54
|
-
}
|
|
55
|
-
else if (lessValue && visitor.visitArray) {
|
|
56
|
-
visitor.visitArray([lessValue]);
|
|
57
|
-
}
|
|
58
|
-
else if (lessValue && visitor.visit) {
|
|
59
|
-
visitor.visit(lessValue);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else if (value && Array.isArray(value)) {
|
|
63
|
-
// If value is an array, use visitArray
|
|
64
|
-
const lessValues = value.map((v) => {
|
|
65
|
-
if (v instanceof Node) {
|
|
66
|
-
return toLessNode(v, { cache });
|
|
67
|
-
}
|
|
68
|
-
return v;
|
|
69
|
-
});
|
|
70
|
-
if (visitor.visitArray) {
|
|
71
|
-
visitor.visitArray(lessValues);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// Return the declaration (accept doesn't return a replacement node)
|
|
75
|
-
return decl;
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
return undefined;
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=declaration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../src/nodes/declaration.ts"],"names":[],"mappings":"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"}
|
package/lib/nodes/dimension.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Dimension, Num } from '@jesscss/core';
|
|
2
|
-
import type { LessNode } from '../types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Transform a Jess Dimension or Num to a Less-compatible Dimension
|
|
5
|
-
*/
|
|
6
|
-
export declare function transformDimensionToLess(jessDimension: Dimension | Num, cache?: WeakMap<any, any>): LessNode;
|
package/lib/nodes/dimension.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Num } from '@jesscss/core';
|
|
2
|
-
import { createLessProxy } from '../transform/proxy.js';
|
|
3
|
-
import { mapJessTypeToLessType } from '../transform/type-map.js';
|
|
4
|
-
/**
|
|
5
|
-
* Transform a Jess Dimension or Num to a Less-compatible Dimension
|
|
6
|
-
*/
|
|
7
|
-
export function transformDimensionToLess(jessDimension, cache) {
|
|
8
|
-
return createLessProxy(jessDimension, cache, (prop, target) => {
|
|
9
|
-
const dim = target;
|
|
10
|
-
// Map 'type' property
|
|
11
|
-
if (prop === 'type') {
|
|
12
|
-
return mapJessTypeToLessType(dim.type);
|
|
13
|
-
}
|
|
14
|
-
// Map 'typeIndex'
|
|
15
|
-
if (prop === 'typeIndex') {
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
// Map 'value' property
|
|
19
|
-
if (prop === 'value') {
|
|
20
|
-
if (dim instanceof Num) {
|
|
21
|
-
return dim.value;
|
|
22
|
-
}
|
|
23
|
-
return dim.value.number;
|
|
24
|
-
}
|
|
25
|
-
// Map 'unit' property
|
|
26
|
-
if (prop === 'unit') {
|
|
27
|
-
if (dim instanceof Num) {
|
|
28
|
-
// Num has no unit, return empty string or undefined
|
|
29
|
-
return '';
|
|
30
|
-
}
|
|
31
|
-
// Dimension has unit as string, Less expects Unit node
|
|
32
|
-
// For now, return the string and let Less handle conversion
|
|
33
|
-
return dim.value.unit || '';
|
|
34
|
-
}
|
|
35
|
-
// Map 'accept' method for visitor traversal
|
|
36
|
-
if (prop === 'accept') {
|
|
37
|
-
return function (visitor) {
|
|
38
|
-
// Less Dimension has no children, so accept() should just return the dimension
|
|
39
|
-
// The visitor's visit() method will handle traversal
|
|
40
|
-
// We don't call visitor.visit() here to avoid infinite loops
|
|
41
|
-
return dim;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
return undefined;
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=dimension.js.map
|