@builder.io/mitosis 0.0.46 → 0.0.49
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/src/__tests__/angular.test.d.ts +1 -0
- package/dist/src/__tests__/angular.test.js +12 -0
- package/dist/src/__tests__/data/blocks/columns.raw.jsx +6 -0
- package/dist/src/__tests__/data/blocks/onUpdate.raw.d.ts +1 -0
- package/dist/src/__tests__/data/blocks/onUpdate.raw.jsx +10 -0
- package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.d.ts +1 -0
- package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.jsx +11 -0
- package/dist/src/__tests__/data/blocks/tabs.raw.d.ts +11 -0
- package/dist/src/__tests__/data/blocks/tabs.raw.jsx +24 -0
- package/dist/src/__tests__/qoot.test.d.ts +1 -0
- package/dist/src/__tests__/qoot.test.js +115 -0
- package/dist/src/__tests__/qwik.test.js +68 -9
- package/dist/src/__tests__/react.test.js +12 -0
- package/dist/src/__tests__/svelte.test.d.ts +1 -0
- package/dist/src/__tests__/svelte.test.js +12 -0
- package/dist/src/__tests__/vue.test.js +6 -0
- package/dist/src/generators/angular.js +7 -3
- package/dist/src/generators/builder.js +7 -7
- package/dist/src/generators/html.js +16 -7
- package/dist/src/generators/jsx-lite.d.ts +10 -0
- package/dist/src/generators/jsx-lite.js +176 -0
- package/dist/src/generators/minify.d.ts +1 -0
- package/dist/src/generators/minify.js +24 -0
- package/dist/src/generators/mitosis.js +5 -2
- package/dist/src/generators/qoot.d.ts +21 -0
- package/dist/src/generators/qoot.js +442 -0
- package/dist/src/generators/qwik/component.js +48 -6
- package/dist/src/generators/qwik/directives.d.ts +21 -1
- package/dist/src/generators/qwik/directives.js +93 -13
- package/dist/src/generators/qwik/jsx.d.ts +1 -1
- package/dist/src/generators/qwik/jsx.js +30 -7
- package/dist/src/generators/qwik/src-generator.d.ts +15 -2
- package/dist/src/generators/qwik/src-generator.js +82 -16
- package/dist/src/generators/qwik.d.ts +21 -0
- package/dist/src/generators/qwik.js +458 -0
- package/dist/src/generators/react-native.js +34 -27
- package/dist/src/generators/react.js +36 -14
- package/dist/src/generators/solid.js +5 -2
- package/dist/src/generators/svelte.js +10 -5
- package/dist/src/generators/vue.js +9 -6
- package/dist/src/helpers/create-jsx-lite-component.d.ts +2 -0
- package/dist/src/helpers/create-jsx-lite-component.js +16 -0
- package/dist/src/helpers/create-jsx-lite-context.d.ts +4 -0
- package/dist/src/helpers/create-jsx-lite-context.js +18 -0
- package/dist/src/helpers/create-jsx-lite-node.d.ts +2 -0
- package/dist/src/helpers/create-jsx-lite-node.js +16 -0
- package/dist/src/helpers/get-state-object-string.js +51 -38
- package/dist/src/helpers/is-jsx-lite-node.d.ts +2 -0
- package/dist/src/helpers/is-jsx-lite-node.js +7 -0
- package/dist/src/helpers/map-refs.js +10 -8
- package/dist/src/helpers/patterns.d.ts +2 -0
- package/dist/src/helpers/patterns.js +5 -0
- package/dist/src/helpers/process-http-requests.js +3 -3
- package/dist/src/helpers/process-tag-references.js +4 -3
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.js +4 -3
- package/dist/src/jsx-types.d.ts +1 -1
- package/dist/src/parsers/builder.d.ts +50 -10
- package/dist/src/parsers/builder.js +37 -7
- package/dist/src/parsers/jsx.js +43 -3
- package/dist/src/parsers/liquid.js +4 -4
- package/dist/src/plugins/compile-away-builder-components.js +40 -20
- package/dist/src/symbols/symbol-processor.d.ts +18 -0
- package/dist/src/symbols/symbol-processor.js +177 -0
- package/dist/src/types/jsx-lite-component.d.ts +63 -0
- package/dist/src/types/jsx-lite-component.js +2 -0
- package/dist/src/types/jsx-lite-context.d.ts +6 -0
- package/dist/src/types/jsx-lite-context.js +2 -0
- package/dist/src/types/jsx-lite-node.d.ts +13 -0
- package/dist/src/types/jsx-lite-node.js +2 -0
- package/dist/src/types/jsx-lite-styles.d.ts +1 -0
- package/dist/src/types/jsx-lite-styles.js +2 -0
- package/dist/src/types/mitosis-component.d.ts +10 -5
- package/dist/test/qoot/Todo/bundle.js +88 -0
- package/dist/test/qoot/Todo/component.ts +17 -0
- package/dist/test/qoot/Todo/onButtonClick.ts +13 -0
- package/dist/test/qoot/Todo/onInput2Blur.ts +11 -0
- package/dist/test/qoot/Todo/onInput2KeyUp.ts +10 -0
- package/dist/test/qoot/Todo/onInputClick.ts +10 -0
- package/dist/test/qoot/Todo/onLabelDblClick.ts +11 -0
- package/dist/test/qoot/Todo/public.ts +4 -0
- package/dist/test/qoot/Todo/template.tsx +46 -0
- package/dist/test/qoot/Todos/component.ts +9 -0
- package/dist/test/qoot/Todos/onInputClick.ts +14 -0
- package/dist/test/qoot/Todos/public.ts +3 -0
- package/dist/test/qoot/Todos/template.tsx +30 -0
- package/dist/test/qwik/{todo → Todo}/Todo.cjs/high.cjs +0 -0
- package/dist/test/qwik/{todo → Todo}/Todo.cjs/low.cjs +0 -0
- package/dist/test/qwik/{todo → Todo}/Todo.cjs/med.cjs +0 -0
- package/dist/test/qwik/{todo → Todo}/Todo.js/high.js +0 -0
- package/dist/test/qwik/{todo → Todo}/Todo.js/low.js +0 -0
- package/dist/test/qwik/{todo → Todo}/Todo.js/med.js +0 -0
- package/dist/test/qwik/{todo → Todo}/Todo.tsx/high.tsx +0 -0
- package/dist/test/qwik/{todo → Todo}/Todo.tsx/low.tsx +0 -0
- package/dist/test/qwik/{todo → Todo}/Todo.tsx/med.tsx +0 -0
- package/dist/test/qwik/Todo/bundle.js +46 -0
- package/dist/test/qwik/Todo/component.ts +17 -0
- package/dist/test/qwik/Todo/onButtonClick.ts +10 -0
- package/dist/test/qwik/Todo/onInput2Blur.ts +14 -0
- package/dist/test/qwik/Todo/onInput2KeyUp.ts +10 -0
- package/dist/test/qwik/Todo/onInputClick.ts +13 -0
- package/dist/test/qwik/Todo/onLabelDblClick.ts +11 -0
- package/dist/test/qwik/Todo/public.ts +3 -0
- package/dist/test/qwik/Todo/template.tsx +46 -0
- package/dist/test/qwik/Todo.ts +4 -0
- package/dist/test/qwik/Todo_component.ts +17 -0
- package/dist/test/qwik/Todo_onButtonClick.ts +13 -0
- package/dist/test/qwik/Todo_onInput2Blur.ts +14 -0
- package/dist/test/qwik/Todo_onInput2KeyUp.ts +10 -0
- package/dist/test/qwik/Todo_onInputClick.ts +13 -0
- package/dist/test/qwik/Todo_onLabelDblClick.ts +14 -0
- package/dist/test/qwik/Todo_template.tsx +46 -0
- package/dist/test/qwik/{todos → Todos}/Todo.tsx/high.tsx +0 -0
- package/dist/test/qwik/{todos → Todos}/Todo.tsx/low.tsx +0 -0
- package/dist/test/qwik/{todos → Todos}/Todo.tsx/med.tsx +0 -0
- package/dist/test/qwik/Todos/component.ts +9 -0
- package/dist/test/qwik/Todos/onInputClick.ts +14 -0
- package/dist/test/qwik/Todos/public.ts +3 -0
- package/dist/test/qwik/Todos/template.tsx +30 -0
- package/dist/test/qwik/Todos.ts +3 -0
- package/dist/test/qwik/Todos_component.ts +9 -0
- package/dist/test/qwik/Todos_onInputClick.ts +14 -0
- package/dist/test/qwik/Todos_template.tsx +30 -0
- package/dist/test/qwik/qwik/Image/high.js +1 -0
- package/dist/test/qwik/qwik/Image/low.js +75 -0
- package/dist/test/qwik/qwik/Image/med.js +9 -0
- package/dist/test/qwik/qwik/Image.slow/high.js +1 -0
- package/dist/test/qwik/qwik/Image.slow/low.js +75 -0
- package/dist/test/qwik/qwik/Image.slow/med.js +9 -0
- package/dist/test/qwik/qwik/button/high.js +8 -0
- package/dist/test/qwik/qwik/button/low.js +34 -0
- package/dist/test/qwik/qwik/button/med.js +9 -0
- package/dist/test/qwik/qwik/hello_world/stylesheet/high.jsx +1 -0
- package/dist/test/qwik/qwik/hello_world/stylesheet/low.jsx +24 -0
- package/dist/test/qwik/qwik/hello_world/stylesheet/med.jsx +9 -0
- package/dist/test/qwik/qwik/page-with-symbol/high.js +1 -0
- package/dist/test/qwik/qwik/page-with-symbol/low.js +49 -0
- package/dist/test/qwik/qwik/page-with-symbol/med.js +9 -0
- package/dist/test/qwik/qwik/svg/high.js +1 -0
- package/dist/test/qwik/qwik/svg/low.js +30 -0
- package/dist/test/qwik/qwik/svg/med.js +9 -0
- package/dist/test/qwik/qwik/todo/Todo.cjs/high.cjs +31 -0
- package/dist/test/qwik/qwik/todo/Todo.cjs/low.cjs +1 -0
- package/dist/test/qwik/qwik/todo/Todo.cjs/med.cjs +59 -0
- package/dist/test/qwik/qwik/todo/Todo.js/high.js +5 -0
- package/dist/{src/types/generators.d.ts → test/qwik/qwik/todo/Todo.js/low.js} +0 -0
- package/dist/test/qwik/qwik/todo/Todo.js/med.js +1 -0
- package/dist/test/qwik/qwik/todo/Todo.tsx/high.tsx +30 -0
- package/dist/test/qwik/qwik/todo/Todo.tsx/low.tsx +1 -0
- package/dist/test/qwik/qwik/todo/Todo.tsx/med.tsx +34 -0
- package/dist/test/qwik/qwik/todos/Todo.tsx/high.tsx +12 -0
- package/dist/test/qwik/qwik/todos/Todo.tsx/low.tsx +24 -0
- package/dist/test/qwik/qwik/todos/Todo.tsx/med.tsx +8 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/src/types/generators.js +0 -1
|
@@ -26,6 +26,8 @@ export declare function extractStateHook(code: string): {
|
|
|
26
26
|
code: string;
|
|
27
27
|
state: any;
|
|
28
28
|
};
|
|
29
|
+
export declare function convertExportDefaultToReturn(code: string): string;
|
|
30
|
+
export declare const createBuilderElement: (options?: Partial<BuilderElement> | undefined) => BuilderElement;
|
|
29
31
|
export declare const isBuilderElement: (el: unknown) => el is BuilderElement;
|
|
30
32
|
export declare const builderContentToMitosisComponent: (builderContent: BuilderContent, options?: BuilderToMitosisOptions) => {
|
|
31
33
|
subComponents: {
|
|
@@ -51,11 +53,30 @@ export declare const builderContentToMitosisComponent: (builderContent: BuilderC
|
|
|
51
53
|
};
|
|
52
54
|
};
|
|
53
55
|
hooks: {
|
|
54
|
-
init?:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
init?: {
|
|
57
|
+
code: string;
|
|
58
|
+
deps?: string | undefined;
|
|
59
|
+
} | undefined;
|
|
60
|
+
onMount?: {
|
|
61
|
+
code: string;
|
|
62
|
+
deps?: string | undefined;
|
|
63
|
+
} | undefined;
|
|
64
|
+
onUnMount?: {
|
|
65
|
+
code: string;
|
|
66
|
+
deps?: string | undefined;
|
|
67
|
+
} | undefined;
|
|
68
|
+
preComponent?: {
|
|
69
|
+
code: string;
|
|
70
|
+
deps?: string | undefined;
|
|
71
|
+
} | undefined;
|
|
72
|
+
postComponent?: {
|
|
73
|
+
code: string;
|
|
74
|
+
deps?: string | undefined;
|
|
75
|
+
} | undefined;
|
|
76
|
+
onUpdate?: {
|
|
77
|
+
code: string;
|
|
78
|
+
deps?: string | undefined;
|
|
79
|
+
} | undefined;
|
|
59
80
|
};
|
|
60
81
|
children: MitosisNode[];
|
|
61
82
|
subComponents: import("..").MitosisComponent[];
|
|
@@ -82,11 +103,30 @@ export declare const builderContentToMitosisComponent: (builderContent: BuilderC
|
|
|
82
103
|
};
|
|
83
104
|
};
|
|
84
105
|
hooks: {
|
|
85
|
-
init?:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
106
|
+
init?: {
|
|
107
|
+
code: string;
|
|
108
|
+
deps?: string | undefined;
|
|
109
|
+
} | undefined;
|
|
110
|
+
onMount?: {
|
|
111
|
+
code: string;
|
|
112
|
+
deps?: string | undefined;
|
|
113
|
+
} | undefined;
|
|
114
|
+
onUnMount?: {
|
|
115
|
+
code: string;
|
|
116
|
+
deps?: string | undefined;
|
|
117
|
+
} | undefined;
|
|
118
|
+
preComponent?: {
|
|
119
|
+
code: string;
|
|
120
|
+
deps?: string | undefined;
|
|
121
|
+
} | undefined;
|
|
122
|
+
postComponent?: {
|
|
123
|
+
code: string;
|
|
124
|
+
deps?: string | undefined;
|
|
125
|
+
} | undefined;
|
|
126
|
+
onUpdate?: {
|
|
127
|
+
code: string;
|
|
128
|
+
deps?: string | undefined;
|
|
129
|
+
} | undefined;
|
|
90
130
|
};
|
|
91
131
|
children: MitosisNode[];
|
|
92
132
|
};
|
|
@@ -33,7 +33,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
33
33
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
34
|
};
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.builderContentToMitosisComponent = exports.isBuilderElement = exports.extractStateHook = exports.builderElementToMitosisNode = exports.symbolBlocksAsChildren = void 0;
|
|
36
|
+
exports.builderContentToMitosisComponent = exports.isBuilderElement = exports.createBuilderElement = exports.convertExportDefaultToReturn = exports.extractStateHook = exports.builderElementToMitosisNode = exports.symbolBlocksAsChildren = void 0;
|
|
37
37
|
var babel = __importStar(require("@babel/core"));
|
|
38
38
|
var generator_1 = __importDefault(require("@babel/generator"));
|
|
39
39
|
var json5_1 = __importDefault(require("json5"));
|
|
@@ -533,7 +533,7 @@ var builderElementToMitosisNode = function (block, options, _internalOptions) {
|
|
|
533
533
|
exports.builderElementToMitosisNode = builderElementToMitosisNode;
|
|
534
534
|
var getHooks = function (content) {
|
|
535
535
|
var _a, _b;
|
|
536
|
-
var code = ((_a = content.data) === null || _a === void 0 ? void 0 : _a.tsCode) || ((_b = content.data) === null || _b === void 0 ? void 0 : _b.jsCode) || '';
|
|
536
|
+
var code = convertExportDefaultToReturn(((_a = content.data) === null || _a === void 0 ? void 0 : _a.tsCode) || ((_b = content.data) === null || _b === void 0 ? void 0 : _b.jsCode) || '');
|
|
537
537
|
try {
|
|
538
538
|
return (0, jsx_1.parseJsx)("\n export default function TemporaryComponent() {\n ".concat(
|
|
539
539
|
// Mitosis parser looks for useState to be a variable assignment,
|
|
@@ -598,6 +598,29 @@ function extractStateHook(code) {
|
|
|
598
598
|
return { code: newCode, state: state };
|
|
599
599
|
}
|
|
600
600
|
exports.extractStateHook = extractStateHook;
|
|
601
|
+
function convertExportDefaultToReturn(code) {
|
|
602
|
+
var types = babel.types;
|
|
603
|
+
var ast = babel.parse(code, {
|
|
604
|
+
presets: [[tsPreset, { isTSX: true, allExtensions: true }]],
|
|
605
|
+
plugins: [[decorators, { legacy: true }], jsxPlugin],
|
|
606
|
+
});
|
|
607
|
+
var body = types.isFile(ast)
|
|
608
|
+
? ast.program.body
|
|
609
|
+
: types.isProgram(ast)
|
|
610
|
+
? ast.body
|
|
611
|
+
: [];
|
|
612
|
+
var newBody = body.slice();
|
|
613
|
+
for (var i = 0; i < body.length; i++) {
|
|
614
|
+
var statement = body[i];
|
|
615
|
+
if (types.isExportDefaultDeclaration(statement)) {
|
|
616
|
+
if (types.isCallExpression(statement.declaration)) {
|
|
617
|
+
newBody[i] = types.returnStatement(statement.declaration);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
return (0, generator_1.default)(types.program(newBody)).code || '';
|
|
622
|
+
}
|
|
623
|
+
exports.convertExportDefaultToReturn = convertExportDefaultToReturn;
|
|
601
624
|
// TODO: maybe this should be part of the builder -> Mitosis part
|
|
602
625
|
function extractSymbols(json) {
|
|
603
626
|
var _a, _b, _c, _d;
|
|
@@ -637,10 +660,15 @@ function extractSymbols(json) {
|
|
|
637
660
|
subComponents: subComponents,
|
|
638
661
|
};
|
|
639
662
|
}
|
|
663
|
+
var createBuilderElement = function (options) { return (__assign({ '@type': '@builder.io/sdk:Element', id: 'builder-' +
|
|
664
|
+
Math.random()
|
|
665
|
+
.toString(36)
|
|
666
|
+
.split('.')[1] }, options)); };
|
|
667
|
+
exports.createBuilderElement = createBuilderElement;
|
|
640
668
|
var isBuilderElement = function (el) { var _a; return ((_a = el) === null || _a === void 0 ? void 0 : _a['@type']) === '@builder.io/sdk:Element'; };
|
|
641
669
|
exports.isBuilderElement = isBuilderElement;
|
|
642
670
|
var builderContentPartToMitosisComponent = function (builderContent, options) {
|
|
643
|
-
var _a, _b, _c, _d, _e;
|
|
671
|
+
var _a, _b, _c, _d, _e, _f;
|
|
644
672
|
if (options === void 0) { options = {}; }
|
|
645
673
|
builderContent = (0, fast_clone_1.fastClone)(builderContent);
|
|
646
674
|
(0, traverse_1.default)(builderContent).forEach(function (elem) {
|
|
@@ -669,7 +697,8 @@ var builderContentPartToMitosisComponent = function (builderContent, options) {
|
|
|
669
697
|
}
|
|
670
698
|
}
|
|
671
699
|
});
|
|
672
|
-
var
|
|
700
|
+
var _g = extractStateHook(((_a = builderContent === null || builderContent === void 0 ? void 0 : builderContent.data) === null || _a === void 0 ? void 0 : _a.tsCode) || ((_b = builderContent === null || builderContent === void 0 ? void 0 : builderContent.data) === null || _b === void 0 ? void 0 : _b.jsCode) || ''), state = _g.state, code = _g.code;
|
|
701
|
+
var customCode = convertExportDefaultToReturn(code);
|
|
673
702
|
var parsed = getHooks(builderContent);
|
|
674
703
|
var componentJson = (0, create_mitosis_component_1.createMitosisComponent)({
|
|
675
704
|
meta: {
|
|
@@ -678,10 +707,11 @@ var builderContentPartToMitosisComponent = function (builderContent, options) {
|
|
|
678
707
|
},
|
|
679
708
|
},
|
|
680
709
|
state: (parsed === null || parsed === void 0 ? void 0 : parsed.state) || __assign(__assign({}, state), (_d = builderContent.data) === null || _d === void 0 ? void 0 : _d.state),
|
|
681
|
-
hooks: __assign({}, (((parsed === null || parsed === void 0 ? void 0 : parsed.hooks.onMount) ||
|
|
682
|
-
|
|
710
|
+
hooks: __assign({}, ((((_e = parsed === null || parsed === void 0 ? void 0 : parsed.hooks.onMount) === null || _e === void 0 ? void 0 : _e.code) ||
|
|
711
|
+
(customCode && { code: customCode })) && {
|
|
712
|
+
onMount: (parsed === null || parsed === void 0 ? void 0 : parsed.hooks.onMount) || { code: customCode },
|
|
683
713
|
})),
|
|
684
|
-
children: (((
|
|
714
|
+
children: (((_f = builderContent.data) === null || _f === void 0 ? void 0 : _f.blocks) || [])
|
|
685
715
|
.filter(function (item) {
|
|
686
716
|
var _a, _b;
|
|
687
717
|
if ((_b = (_a = item.properties) === null || _a === void 0 ? void 0 : _a.src) === null || _b === void 0 ? void 0 : _b.includes('/api/v1/pixel')) {
|
package/dist/src/parsers/jsx.js
CHANGED
|
@@ -191,13 +191,51 @@ var componentFunctionToJson = function (node, context) {
|
|
|
191
191
|
var firstArg = expression.arguments[0];
|
|
192
192
|
if (types.isFunctionExpression(firstArg) ||
|
|
193
193
|
types.isArrowFunctionExpression(firstArg)) {
|
|
194
|
-
|
|
194
|
+
var code = (0, generator_1.default)(firstArg.body)
|
|
195
195
|
.code.trim()
|
|
196
|
-
// Remove
|
|
196
|
+
// Remove arbitrary block wrapping if any
|
|
197
197
|
// AKA
|
|
198
198
|
// { console.log('hi') } -> console.log('hi')
|
|
199
199
|
.replace(/^{/, '')
|
|
200
200
|
.replace(/}$/, '');
|
|
201
|
+
hooks.onMount = { code: code };
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else if (expression.callee.name === 'onUpdate') {
|
|
205
|
+
var firstArg = expression.arguments[0];
|
|
206
|
+
var secondArg = expression.arguments[1];
|
|
207
|
+
if (types.isFunctionExpression(firstArg) ||
|
|
208
|
+
types.isArrowFunctionExpression(firstArg)) {
|
|
209
|
+
var code = (0, generator_1.default)(firstArg.body)
|
|
210
|
+
.code.trim()
|
|
211
|
+
// Remove arbitrary block wrapping if any
|
|
212
|
+
// AKA
|
|
213
|
+
// { console.log('hi') } -> console.log('hi')
|
|
214
|
+
.replace(/^{/, '')
|
|
215
|
+
.replace(/}$/, '');
|
|
216
|
+
if (!secondArg ||
|
|
217
|
+
(types.isArrayExpression(secondArg) &&
|
|
218
|
+
secondArg.elements.length > 0)) {
|
|
219
|
+
var depsCode = secondArg ? (0, generator_1.default)(secondArg).code : '';
|
|
220
|
+
hooks.onUpdate = {
|
|
221
|
+
code: code,
|
|
222
|
+
};
|
|
223
|
+
hooks.onUpdate.deps = depsCode;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else if (expression.callee.name === 'onUnMount') {
|
|
228
|
+
var firstArg = expression.arguments[0];
|
|
229
|
+
if (types.isFunctionExpression(firstArg) ||
|
|
230
|
+
types.isArrowFunctionExpression(firstArg)) {
|
|
231
|
+
var code = (0, generator_1.default)(firstArg.body)
|
|
232
|
+
.code.trim()
|
|
233
|
+
// Remove arbitrary block wrapping if any
|
|
234
|
+
// AKA
|
|
235
|
+
// { console.log('hi') } -> console.log('hi')
|
|
236
|
+
.replace(/^{/, '')
|
|
237
|
+
.replace(/}$/, '');
|
|
238
|
+
hooks.onUnMount = { code: code };
|
|
201
239
|
}
|
|
202
240
|
}
|
|
203
241
|
}
|
|
@@ -605,7 +643,9 @@ function parseJsx(jsx, options) {
|
|
|
605
643
|
.map(function (node) { return "export default ".concat((0, generator_1.default)(node).code); });
|
|
606
644
|
cutStatements = collectMetadata(cutStatements, context.builder.component, useOptions);
|
|
607
645
|
// TODO: support multiple? e.g. for others to add imports?
|
|
608
|
-
context.builder.component.hooks.preComponent =
|
|
646
|
+
context.builder.component.hooks.preComponent = {
|
|
647
|
+
code: (0, generator_1.default)(types.program(cutStatements)).code,
|
|
648
|
+
};
|
|
609
649
|
path.replaceWith(types.program(keepStatements));
|
|
610
650
|
},
|
|
611
651
|
FunctionDeclaration: function (path, context) {
|
|
@@ -91,6 +91,7 @@ var fast_clone_1 = require("../helpers/fast-clone");
|
|
|
91
91
|
var liquid_1 = require("../generators/liquid");
|
|
92
92
|
var map_to_attributes_1 = require("../helpers/map-to-attributes");
|
|
93
93
|
var map_to_css_1 = require("../helpers/map-to-css");
|
|
94
|
+
var __1 = require("..");
|
|
94
95
|
var voidElements = new Set([
|
|
95
96
|
'area',
|
|
96
97
|
'base',
|
|
@@ -1250,10 +1251,9 @@ function processInnerTemplates(templates, options, priorConditions, overrideHash
|
|
|
1250
1251
|
});
|
|
1251
1252
|
});
|
|
1252
1253
|
}
|
|
1253
|
-
var el = function (options) {
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
.split('.')[1], meta: __assign({ importedFrom: 'liquid' }, options === null || options === void 0 ? void 0 : options.meta) }, options)); };
|
|
1254
|
+
var el = function (options) {
|
|
1255
|
+
return (0, __1.createBuilderElement)(__assign({ meta: __assign({ importedFrom: 'liquid' }, options === null || options === void 0 ? void 0 : options.meta) }, options));
|
|
1256
|
+
};
|
|
1257
1257
|
var tagRe = /\[([a-z]+)\](='([^']+)')?/;
|
|
1258
1258
|
var tagReAll = /\[([^\]]+)\](='([^']+)')?/g;
|
|
1259
1259
|
var parseTags = function (tag) {
|
|
@@ -56,15 +56,6 @@ function getComponentInputNames(componentName) {
|
|
|
56
56
|
var componentInfo = react_1.Builder.components.find(function (item) { return item.name === componentName; });
|
|
57
57
|
return ((_a = componentInfo === null || componentInfo === void 0 ? void 0 : componentInfo.inputs) === null || _a === void 0 ? void 0 : _a.map(function (item) { return item.name; })) || [];
|
|
58
58
|
}
|
|
59
|
-
function updateQueryParam(uri, key, value) {
|
|
60
|
-
if (uri === void 0) { uri = ''; }
|
|
61
|
-
var re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
|
|
62
|
-
var separator = uri.indexOf('?') !== -1 ? '&' : '?';
|
|
63
|
-
if (uri.match(re)) {
|
|
64
|
-
return uri.replace(re, '$1' + key + '=' + encodeURIComponent(value) + '$2');
|
|
65
|
-
}
|
|
66
|
-
return uri + separator + key + '=' + encodeURIComponent(value);
|
|
67
|
-
}
|
|
68
59
|
var wrapOutput = function (node, child, components) {
|
|
69
60
|
var inputNames = getComponentInputNames(node.name);
|
|
70
61
|
(0, exports.compileAwayBuilderComponentsFromTree)(child, components);
|
|
@@ -257,22 +248,14 @@ exports.components = {
|
|
|
257
248
|
Image: function (node, context, components) {
|
|
258
249
|
var _a = node.properties, backgroundSize = _a.backgroundSize, backgroundPosition = _a.backgroundPosition;
|
|
259
250
|
var srcset = node.properties.srcset;
|
|
260
|
-
var widths = [100, 200, 400, 800, 1200, 1600, 2000];
|
|
261
251
|
var aspectRatio = node.bindings.aspectRatio
|
|
262
252
|
? parseFloat(node.bindings.aspectRatio)
|
|
263
253
|
: null;
|
|
264
254
|
if (typeof aspectRatio === 'number' && isNaN(aspectRatio)) {
|
|
265
255
|
aspectRatio = null;
|
|
266
256
|
}
|
|
267
|
-
var
|
|
268
|
-
|
|
269
|
-
? widths
|
|
270
|
-
.map(function (size) {
|
|
271
|
-
return "".concat(updateQueryParam(node.properties.image, 'width', String(size)), " ").concat(size, "w");
|
|
272
|
-
})
|
|
273
|
-
.concat([node.properties.image])
|
|
274
|
-
.join(', ')
|
|
275
|
-
: '');
|
|
257
|
+
var image = node.properties.image;
|
|
258
|
+
var srcSet = srcset || generateBuilderIoSrcSet(image);
|
|
276
259
|
var source = node.bindings.noWebp !== 'true' &&
|
|
277
260
|
(0, create_mitosis_node_1.createMitosisNode)({
|
|
278
261
|
name: 'source',
|
|
@@ -349,7 +332,24 @@ exports.components = {
|
|
|
349
332
|
var imageNodes = [picture];
|
|
350
333
|
imgSizer && imageNodes.push(imgSizer);
|
|
351
334
|
children && imageNodes.push(children);
|
|
352
|
-
|
|
335
|
+
var href = node.properties.href;
|
|
336
|
+
var hrefBinding = node.bindings.href;
|
|
337
|
+
if (href || hrefBinding) {
|
|
338
|
+
var aHref = (0, create_mitosis_node_1.createMitosisNode)({
|
|
339
|
+
name: 'a',
|
|
340
|
+
properties: {
|
|
341
|
+
href: href,
|
|
342
|
+
},
|
|
343
|
+
bindings: {
|
|
344
|
+
href: hrefBinding,
|
|
345
|
+
},
|
|
346
|
+
children: imageNodes,
|
|
347
|
+
});
|
|
348
|
+
return wrapOutput(node, aHref, components);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
return wrapOutput(node, imageNodes, components);
|
|
352
|
+
}
|
|
353
353
|
},
|
|
354
354
|
Video: function (node, context, components) {
|
|
355
355
|
var aspectRatio = node.bindings.aspectRatio
|
|
@@ -481,6 +481,26 @@ var compileAwayBuilderComponents = function (pluginOptions) {
|
|
|
481
481
|
}); };
|
|
482
482
|
};
|
|
483
483
|
exports.compileAwayBuilderComponents = compileAwayBuilderComponents;
|
|
484
|
+
function updateQueryParam(uri, key, value) {
|
|
485
|
+
if (uri === void 0) { uri = ''; }
|
|
486
|
+
var re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
|
|
487
|
+
var separator = uri.indexOf('?') !== -1 ? '&' : '?';
|
|
488
|
+
if (uri.match(re)) {
|
|
489
|
+
return uri.replace(re, '$1' + key + '=' + encodeURIComponent(value) + '$2');
|
|
490
|
+
}
|
|
491
|
+
return uri + separator + key + '=' + encodeURIComponent(value);
|
|
492
|
+
}
|
|
493
|
+
function generateBuilderIoSrcSet(image) {
|
|
494
|
+
var isBuilderIo = !!(image || '').match(/builder\.io/);
|
|
495
|
+
return isBuilderIo
|
|
496
|
+
? [100, 200, 400, 800, 1200, 1600, 2000]
|
|
497
|
+
.map(function (size) {
|
|
498
|
+
return "".concat(updateQueryParam(image, 'width', String(size)), " ").concat(size, "w");
|
|
499
|
+
})
|
|
500
|
+
.concat([image])
|
|
501
|
+
.join(', ')
|
|
502
|
+
: '';
|
|
503
|
+
}
|
|
484
504
|
function noUndefined(obj) {
|
|
485
505
|
var cleanObj = {};
|
|
486
506
|
for (var key in obj) {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BuilderContent, BuilderElement } from '@builder.io/sdk';
|
|
2
|
+
import { MitosisComponent } from '../types/mitosis-component';
|
|
3
|
+
export declare type SymbolHierarchy = {
|
|
4
|
+
depthFirstSymbols: BuilderElement[];
|
|
5
|
+
} & {
|
|
6
|
+
[id: string]: string[];
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Ensure every symbol in a BuilderContent tree has a unique ID.
|
|
10
|
+
* Mutates the data tree directly.
|
|
11
|
+
*/
|
|
12
|
+
export declare function ensureAllSymbolsHaveIds(content: BuilderContent): void;
|
|
13
|
+
export declare function convertBuilderContentToSymbolHierarchy(content: BuilderContent, { collectComponentStyles, collectComponentState, }?: {
|
|
14
|
+
collectComponentStyles?: string[];
|
|
15
|
+
collectComponentState?: Record<string, any>;
|
|
16
|
+
}): SymbolHierarchy;
|
|
17
|
+
export declare function convertBuilderElementToMitosisComponent(element: BuilderElement): MitosisComponent | null;
|
|
18
|
+
export declare function getJsxSymbolComponentName(id: string): string;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.getJsxSymbolComponentName = exports.convertBuilderElementToMitosisComponent = exports.convertBuilderContentToSymbolHierarchy = exports.ensureAllSymbolsHaveIds = void 0;
|
|
19
|
+
var traverse_1 = require("traverse");
|
|
20
|
+
var builder_1 = require("../parsers/builder");
|
|
21
|
+
var minify_1 = require("../generators/minify");
|
|
22
|
+
/**
|
|
23
|
+
* Ensure every symbol in a BuilderContent tree has a unique ID.
|
|
24
|
+
* Mutates the data tree directly.
|
|
25
|
+
*/
|
|
26
|
+
function ensureAllSymbolsHaveIds(content) {
|
|
27
|
+
var ids = new Set();
|
|
28
|
+
(0, traverse_1.forEach)(content, function (el) {
|
|
29
|
+
var _a, _b, _c;
|
|
30
|
+
if (this.key === 'jsCode' &&
|
|
31
|
+
isString(el) &&
|
|
32
|
+
el.endsWith('return _virtual_index')) {
|
|
33
|
+
// Sometimes rollup adds a final `return _virtual_index` but that causes VM evaluation to fail.
|
|
34
|
+
// Instead of a return on the last line, it needs a plain expression on the last line. Luckily
|
|
35
|
+
// because the rollup compile behavior is consistent this works pretty reliably
|
|
36
|
+
el = el.replace(/return _virtual_index$/, '_virtual_index');
|
|
37
|
+
this.parent && (this.parent.node.jsCode = el);
|
|
38
|
+
}
|
|
39
|
+
if ((0, builder_1.isBuilderElement)(el)) {
|
|
40
|
+
if (((_a = el === null || el === void 0 ? void 0 : el.component) === null || _a === void 0 ? void 0 : _a.name) === 'Symbol') {
|
|
41
|
+
var id = getIdFromSymbol(el);
|
|
42
|
+
if (id) {
|
|
43
|
+
if (ids.has(id)) {
|
|
44
|
+
if ((_c = (_b = el.component) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.symbol) {
|
|
45
|
+
var id_1 = generateId();
|
|
46
|
+
el.component.options.symbol.entry = id_1;
|
|
47
|
+
if (el.component.options.symbol.content) {
|
|
48
|
+
el.component.options.symbol.content.id = id_1;
|
|
49
|
+
}
|
|
50
|
+
ids.add(id_1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
ids.add(id);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
exports.ensureAllSymbolsHaveIds = ensureAllSymbolsHaveIds;
|
|
62
|
+
//TODO(misko): needs test
|
|
63
|
+
function convertBuilderContentToSymbolHierarchy(content, _a) {
|
|
64
|
+
var _b;
|
|
65
|
+
var _c = _a === void 0 ? {} : _a, collectComponentStyles = _c.collectComponentStyles, collectComponentState = _c.collectComponentState;
|
|
66
|
+
var path = [-1, content.id];
|
|
67
|
+
var hierarchy = (_b = {
|
|
68
|
+
depthFirstSymbols: []
|
|
69
|
+
},
|
|
70
|
+
_b[content.id] = [],
|
|
71
|
+
_b);
|
|
72
|
+
(0, traverse_1.forEach)(content, function (el) {
|
|
73
|
+
var _a, _b, _c;
|
|
74
|
+
var cssCode = el === null || el === void 0 ? void 0 : el.cssCode;
|
|
75
|
+
if (cssCode) {
|
|
76
|
+
collectComponentStyles && collectComponentStyles.push((0, minify_1.minify)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["", ""], ["", ""])), cssCode));
|
|
77
|
+
}
|
|
78
|
+
while (path[0 /* DEPTH */] >= this.path.length) {
|
|
79
|
+
path.shift();
|
|
80
|
+
path.shift();
|
|
81
|
+
}
|
|
82
|
+
if ((0, builder_1.isBuilderElement)(el)) {
|
|
83
|
+
if (((_a = el === null || el === void 0 ? void 0 : el.component) === null || _a === void 0 ? void 0 : _a.name) === 'Symbol') {
|
|
84
|
+
if (collectComponentState) {
|
|
85
|
+
var symbol = el.component.options.symbol;
|
|
86
|
+
var props = symbol.data;
|
|
87
|
+
var state = (_c = (_b = symbol.content) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.state;
|
|
88
|
+
if (state) {
|
|
89
|
+
var id = toHash(state);
|
|
90
|
+
props['serverStateId'] = id;
|
|
91
|
+
collectComponentState[id] = state;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (path[0 /* DEPTH */] < this.path.length) {
|
|
95
|
+
var id = getIdFromSymbol(el);
|
|
96
|
+
hierarchy[id] = [];
|
|
97
|
+
addIfMissing(hierarchy[path[1 /* ID */]], id);
|
|
98
|
+
path.unshift(this.path.length, id);
|
|
99
|
+
}
|
|
100
|
+
// TODO(misko): This should be `el.content` not `el`
|
|
101
|
+
// Because we don't wante to take the `<Symbol>` with us.
|
|
102
|
+
// TODO(misko): Do we really want to add ALL symbols? Even duplicates?
|
|
103
|
+
hierarchy.depthFirstSymbols.unshift(el);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return hierarchy;
|
|
108
|
+
}
|
|
109
|
+
exports.convertBuilderContentToSymbolHierarchy = convertBuilderContentToSymbolHierarchy;
|
|
110
|
+
function convertBuilderElementToMitosisComponent(element) {
|
|
111
|
+
var _a, _b;
|
|
112
|
+
var symbolValue = (_b = (_a = element.component) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.symbol;
|
|
113
|
+
var elContent = symbolValue === null || symbolValue === void 0 ? void 0 : symbolValue.content;
|
|
114
|
+
if (!elContent) {
|
|
115
|
+
console.warn('Symbol missing content', element.id);
|
|
116
|
+
delete element.component; // TODO(misko): Should this be assign `undefined` for perf?
|
|
117
|
+
element.children = [];
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
var id = getIdFromSymbol(element);
|
|
121
|
+
var componentName = getJsxSymbolComponentName(id);
|
|
122
|
+
delete element.component; // TODO(misko): Should this be assign `undefined` for perf?
|
|
123
|
+
element.children = [
|
|
124
|
+
(0, builder_1.createBuilderElement)({
|
|
125
|
+
component: {
|
|
126
|
+
name: componentName,
|
|
127
|
+
options: symbolValue.data,
|
|
128
|
+
},
|
|
129
|
+
}),
|
|
130
|
+
];
|
|
131
|
+
var mitosisComponent = __assign(__assign({}, (0, builder_1.builderContentToMitosisComponent)(elContent, {
|
|
132
|
+
includeBuilderExtras: true,
|
|
133
|
+
preserveTextBlocks: true,
|
|
134
|
+
})), { name: componentName });
|
|
135
|
+
mitosisComponent.meta.builderElId = element.id;
|
|
136
|
+
return mitosisComponent;
|
|
137
|
+
}
|
|
138
|
+
exports.convertBuilderElementToMitosisComponent = convertBuilderElementToMitosisComponent;
|
|
139
|
+
function getJsxSymbolComponentName(id) {
|
|
140
|
+
return 'Component' + id.toUpperCase().replace(/-/g, '');
|
|
141
|
+
}
|
|
142
|
+
exports.getJsxSymbolComponentName = getJsxSymbolComponentName;
|
|
143
|
+
function getIdFromSymbol(el) {
|
|
144
|
+
var _a, _b, _c;
|
|
145
|
+
// TODO(misko): Don't use entry us el.id???
|
|
146
|
+
return (_c = (_b = (_a = el.component) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.symbol) === null || _c === void 0 ? void 0 : _c.entry;
|
|
147
|
+
}
|
|
148
|
+
function addIfMissing(array, value) {
|
|
149
|
+
if (array.indexOf(value) == -1) {
|
|
150
|
+
array.push(value);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function isString(value) {
|
|
154
|
+
return typeof value == 'string';
|
|
155
|
+
}
|
|
156
|
+
function generateId() {
|
|
157
|
+
return (
|
|
158
|
+
// TODO(misko): For now I have removed the data as I think it is overkill
|
|
159
|
+
// and makes the output unnecessarily big.
|
|
160
|
+
// new Date().getTime().toString(36) +
|
|
161
|
+
Math.round(Math.random() * Number.MAX_SAFE_INTEGER).toString(36));
|
|
162
|
+
}
|
|
163
|
+
function toHash(obj) {
|
|
164
|
+
return hashCode(JSON.stringify(obj));
|
|
165
|
+
}
|
|
166
|
+
function hashCode(text) {
|
|
167
|
+
var hash = 0, i, chr;
|
|
168
|
+
if (text.length === 0)
|
|
169
|
+
return String(hash);
|
|
170
|
+
for (i = 0; i < text.length; i++) {
|
|
171
|
+
chr = text.charCodeAt(i);
|
|
172
|
+
hash = (hash << 5) - hash + chr;
|
|
173
|
+
hash |= 0; // Convert to 32bit integer
|
|
174
|
+
}
|
|
175
|
+
return Number(Math.abs(hash)).toString(36);
|
|
176
|
+
}
|
|
177
|
+
var templateObject_1;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { JSONObject } from './json';
|
|
2
|
+
import { JSXLiteNode } from './jsx-lite-node';
|
|
3
|
+
/**
|
|
4
|
+
* @example
|
|
5
|
+
* // import core, { useState, someThing as someAlias } from '@jsx-lite/core'
|
|
6
|
+
* {
|
|
7
|
+
* path: '@jsx-lite/core',
|
|
8
|
+
* imports: {
|
|
9
|
+
* useState: 'useState',
|
|
10
|
+
* someAlias: 'someThing',
|
|
11
|
+
* core: 'default',
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // import * as core from '@jsx-lite/core'
|
|
17
|
+
* {
|
|
18
|
+
* path: '@jsx-lite/core',
|
|
19
|
+
* imports: {
|
|
20
|
+
* core: '*',
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
*/
|
|
24
|
+
export interface JSXLiteImport {
|
|
25
|
+
path: string;
|
|
26
|
+
imports: {
|
|
27
|
+
[key: string]: string | undefined;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
declare type ContextInfo = {
|
|
31
|
+
name: string;
|
|
32
|
+
path: string;
|
|
33
|
+
};
|
|
34
|
+
export declare type JSXLiteComponent = {
|
|
35
|
+
'@type': '@jsx-lite/component';
|
|
36
|
+
name: string;
|
|
37
|
+
imports: JSXLiteImport[];
|
|
38
|
+
meta: JSONObject & {
|
|
39
|
+
metadataHook?: JSONObject;
|
|
40
|
+
};
|
|
41
|
+
state: JSONObject;
|
|
42
|
+
context: {
|
|
43
|
+
get: {
|
|
44
|
+
[key: string]: ContextInfo;
|
|
45
|
+
};
|
|
46
|
+
set: {
|
|
47
|
+
[key: string]: {
|
|
48
|
+
name: string;
|
|
49
|
+
value?: JSONObject;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
hooks: {
|
|
54
|
+
init?: string;
|
|
55
|
+
onMount?: string;
|
|
56
|
+
onUnMount?: string;
|
|
57
|
+
preComponent?: string;
|
|
58
|
+
postComponent?: string;
|
|
59
|
+
};
|
|
60
|
+
children: JSXLiteNode[];
|
|
61
|
+
subComponents: JSXLiteComponent[];
|
|
62
|
+
};
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { JSONObject } from './json';
|
|
2
|
+
export declare type JSXLiteNode = {
|
|
3
|
+
'@type': '@jsx-lite/node';
|
|
4
|
+
name: string;
|
|
5
|
+
meta: JSONObject;
|
|
6
|
+
properties: {
|
|
7
|
+
[key: string]: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
bindings: {
|
|
10
|
+
[key: string]: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
children: JSXLiteNode[];
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare type JSXLiteStyles = Omit<Partial<CSSStyleDeclaration>, 'length' | 'getPropertyPriority' | 'getPropertyValue' | 'item' | 'removeProperty' | 'setProperty'>;
|