@builder.io/mitosis 0.4.0 → 0.4.2

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.
Files changed (196) hide show
  1. package/dist/src/constants/media-sizes.js +4 -5
  2. package/dist/src/generators/alpine/generate.js +114 -132
  3. package/dist/src/generators/alpine/render-mount-hook.js +8 -5
  4. package/dist/src/generators/alpine/render-update-hooks.js +13 -13
  5. package/dist/src/generators/angular/helpers.js +19 -9
  6. package/dist/src/generators/angular/index.js +599 -584
  7. package/dist/src/generators/builder.js +200 -165
  8. package/dist/src/generators/context/angular.js +32 -26
  9. package/dist/src/generators/context/helpers/context-with-symbol-key.js +25 -21
  10. package/dist/src/generators/context/qwik.js +21 -21
  11. package/dist/src/generators/context/react.js +22 -22
  12. package/dist/src/generators/context/rsc.js +20 -22
  13. package/dist/src/generators/context/solid.js +22 -22
  14. package/dist/src/generators/context/svelte.js +33 -28
  15. package/dist/src/generators/context/vue.js +1 -1
  16. package/dist/src/generators/helpers/context.js +6 -13
  17. package/dist/src/generators/helpers/functions.js +8 -8
  18. package/dist/src/generators/helpers/on-mount.js +9 -5
  19. package/dist/src/generators/helpers/rsc.js +7 -9
  20. package/dist/src/generators/html.js +995 -534
  21. package/dist/src/generators/liquid.js +81 -79
  22. package/dist/src/generators/lit/collect-class-string.js +10 -12
  23. package/dist/src/generators/lit/generate.js +204 -159
  24. package/dist/src/generators/marko/generate.js +193 -183
  25. package/dist/src/generators/minify.js +5 -9
  26. package/dist/src/generators/mitosis.js +135 -134
  27. package/dist/src/generators/qwik/component-generator.js +159 -154
  28. package/dist/src/generators/qwik/component.js +51 -81
  29. package/dist/src/generators/qwik/directives.js +68 -84
  30. package/dist/src/generators/qwik/helpers/add-prevent-default.js +6 -7
  31. package/dist/src/generators/qwik/helpers/convert-method-to-function.js +38 -38
  32. package/dist/src/generators/qwik/helpers/handlers.js +16 -25
  33. package/dist/src/generators/qwik/helpers/stable-inject.js +7 -8
  34. package/dist/src/generators/qwik/helpers/stable-serialize.js +7 -8
  35. package/dist/src/generators/qwik/helpers/state.js +36 -43
  36. package/dist/src/generators/qwik/helpers/styles.js +19 -40
  37. package/dist/src/generators/qwik/jsx.js +63 -75
  38. package/dist/src/generators/qwik/src-generator.js +134 -167
  39. package/dist/src/generators/react/blocks.js +122 -127
  40. package/dist/src/generators/react/generator.js +314 -259
  41. package/dist/src/generators/react/helpers.js +23 -28
  42. package/dist/src/generators/react/state.js +34 -51
  43. package/dist/src/generators/react-native/index.js +72 -84
  44. package/dist/src/generators/react-native/sanitize-react-native-block-styles.js +14 -26
  45. package/dist/src/generators/rsc.js +30 -36
  46. package/dist/src/generators/solid/blocks.js +46 -43
  47. package/dist/src/generators/solid/helpers/styles.js +11 -11
  48. package/dist/src/generators/solid/index.js +199 -190
  49. package/dist/src/generators/solid/state/helpers.js +76 -90
  50. package/dist/src/generators/solid/state/signals.js +30 -37
  51. package/dist/src/generators/solid/state/state.js +35 -48
  52. package/dist/src/generators/solid/state/store.js +40 -46
  53. package/dist/src/generators/stencil/collect-class-string.js +10 -12
  54. package/dist/src/generators/stencil/generate.js +158 -145
  55. package/dist/src/generators/svelte/blocks.js +146 -144
  56. package/dist/src/generators/svelte/helpers.js +10 -17
  57. package/dist/src/generators/svelte/svelte.js +321 -287
  58. package/dist/src/generators/swift-ui.js +162 -101
  59. package/dist/src/generators/taro.js +32 -36
  60. package/dist/src/generators/template.js +71 -74
  61. package/dist/src/generators/vue/blocks.js +116 -107
  62. package/dist/src/generators/vue/compositionApi.js +67 -50
  63. package/dist/src/generators/vue/helpers.js +71 -96
  64. package/dist/src/generators/vue/optionsApi.js +134 -105
  65. package/dist/src/generators/vue/vue.js +210 -207
  66. package/dist/src/helpers/babel-transform.js +40 -63
  67. package/dist/src/helpers/bindings.js +4 -12
  68. package/dist/src/helpers/camel-case.js +4 -5
  69. package/dist/src/helpers/capitalize.js +1 -1
  70. package/dist/src/helpers/component-file-extensions.js +23 -35
  71. package/dist/src/helpers/create-mitosis-component.js +22 -26
  72. package/dist/src/helpers/create-mitosis-context.js +5 -12
  73. package/dist/src/helpers/create-mitosis-node.js +10 -12
  74. package/dist/src/helpers/dash-case.js +2 -2
  75. package/dist/src/helpers/dedent.js +18 -22
  76. package/dist/src/helpers/event-handlers.js +1 -1
  77. package/dist/src/helpers/fast-clone.js +1 -1
  78. package/dist/src/helpers/filter-empty-text-nodes.js +2 -2
  79. package/dist/src/helpers/generic-format.js +7 -8
  80. package/dist/src/helpers/get-bindings.js +4 -4
  81. package/dist/src/helpers/get-components-used.js +3 -3
  82. package/dist/src/helpers/get-components.js +4 -4
  83. package/dist/src/helpers/get-custom-imports.js +10 -12
  84. package/dist/src/helpers/get-prop-functions.js +7 -8
  85. package/dist/src/helpers/get-props-ref.js +8 -8
  86. package/dist/src/helpers/get-props.js +12 -13
  87. package/dist/src/helpers/get-refs.js +4 -4
  88. package/dist/src/helpers/get-state-object-string.js +42 -61
  89. package/dist/src/helpers/get-state-used.js +7 -8
  90. package/dist/src/helpers/get-styles.js +6 -6
  91. package/dist/src/helpers/getters-to-functions.js +8 -12
  92. package/dist/src/helpers/handle-missing-state.js +3 -3
  93. package/dist/src/helpers/has-bindings-text.js +6 -6
  94. package/dist/src/helpers/has-component.js +4 -4
  95. package/dist/src/helpers/has-props.js +3 -3
  96. package/dist/src/helpers/has-stateful-dom.js +4 -4
  97. package/dist/src/helpers/has.js +3 -3
  98. package/dist/src/helpers/indent.js +2 -3
  99. package/dist/src/helpers/is-children.js +4 -5
  100. package/dist/src/helpers/is-component.js +1 -1
  101. package/dist/src/helpers/is-html-attribute.js +2 -11
  102. package/dist/src/helpers/is-mitosis-node.js +1 -1
  103. package/dist/src/helpers/is-root-text-node.js +1 -1
  104. package/dist/src/helpers/is-upper-case.js +1 -1
  105. package/dist/src/helpers/is-valid-attribute-name.js +1 -1
  106. package/dist/src/helpers/json.js +2 -2
  107. package/dist/src/helpers/map-refs.js +29 -40
  108. package/dist/src/helpers/merge-options.js +20 -31
  109. package/dist/src/helpers/mitosis-imports.js +5 -6
  110. package/dist/src/helpers/nodes/for.js +2 -3
  111. package/dist/src/helpers/nullable.js +1 -3
  112. package/dist/src/helpers/on-event.js +32 -36
  113. package/dist/src/helpers/output.js +4 -5
  114. package/dist/src/helpers/parse-node.js +13 -5
  115. package/dist/src/helpers/parsers.js +10 -14
  116. package/dist/src/helpers/patterns.js +6 -8
  117. package/dist/src/helpers/plugins/process-code/index.js +114 -120
  118. package/dist/src/helpers/plugins/process-signals.js +114 -125
  119. package/dist/src/helpers/plugins/process-target-blocks.js +18 -20
  120. package/dist/src/helpers/process-http-requests.js +8 -4
  121. package/dist/src/helpers/remove-surrounding-block.js +2 -2
  122. package/dist/src/helpers/render-imports.js +99 -111
  123. package/dist/src/helpers/replace-identifiers.js +40 -49
  124. package/dist/src/helpers/replace-new-lines-in-strings.js +3 -3
  125. package/dist/src/helpers/signals/signals.js +27 -35
  126. package/dist/src/helpers/slots.js +11 -20
  127. package/dist/src/helpers/state.js +1 -3
  128. package/dist/src/helpers/strip-meta-properties.js +6 -6
  129. package/dist/src/helpers/strip-state-and-props-refs.js +21 -32
  130. package/dist/src/helpers/styles/collect-css.js +39 -44
  131. package/dist/src/helpers/styles/collect-styled-components.js +30 -28
  132. package/dist/src/helpers/styles/helpers.js +23 -29
  133. package/dist/src/helpers/trace-reference-to-module-path.js +3 -4
  134. package/dist/src/helpers/transform-state-setters.js +16 -19
  135. package/dist/src/helpers/traverse-nodes.js +2 -2
  136. package/dist/src/helpers/try-prettier-format.js +3 -3
  137. package/dist/src/helpers/typescript-project.js +25 -25
  138. package/dist/src/helpers/typescript.js +1 -3
  139. package/dist/src/modules/plugins.js +20 -28
  140. package/dist/src/parsers/angular.js +49 -57
  141. package/dist/src/parsers/builder/builder.js +448 -343
  142. package/dist/src/parsers/builder/helpers.js +10 -10
  143. package/dist/src/parsers/context.js +15 -17
  144. package/dist/src/parsers/jsx/ast.js +11 -11
  145. package/dist/src/parsers/jsx/component-types.js +22 -32
  146. package/dist/src/parsers/jsx/context.js +12 -12
  147. package/dist/src/parsers/jsx/element-parser.js +43 -54
  148. package/dist/src/parsers/jsx/exports.js +12 -14
  149. package/dist/src/parsers/jsx/function-parser.js +108 -119
  150. package/dist/src/parsers/jsx/helpers.js +11 -13
  151. package/dist/src/parsers/jsx/hooks/helpers.js +14 -16
  152. package/dist/src/parsers/jsx/hooks/index.js +34 -44
  153. package/dist/src/parsers/jsx/hooks/use-target.js +27 -27
  154. package/dist/src/parsers/jsx/imports.js +7 -17
  155. package/dist/src/parsers/jsx/jsx.js +92 -91
  156. package/dist/src/parsers/jsx/props-types.js +8 -10
  157. package/dist/src/parsers/jsx/props.js +15 -23
  158. package/dist/src/parsers/jsx/signals.js +28 -29
  159. package/dist/src/parsers/jsx/state.d.ts +2 -4
  160. package/dist/src/parsers/jsx/state.js +59 -93
  161. package/dist/src/parsers/svelte/css/index.js +1 -1
  162. package/dist/src/parsers/svelte/helpers/bindings.js +18 -19
  163. package/dist/src/parsers/svelte/helpers/children.js +5 -6
  164. package/dist/src/parsers/svelte/helpers/expressions.js +7 -9
  165. package/dist/src/parsers/svelte/helpers/hooks.js +2 -2
  166. package/dist/src/parsers/svelte/helpers/post-process.js +49 -70
  167. package/dist/src/parsers/svelte/helpers/string.js +5 -5
  168. package/dist/src/parsers/svelte/html/actions.js +17 -10
  169. package/dist/src/parsers/svelte/html/each.js +11 -16
  170. package/dist/src/parsers/svelte/html/element.js +68 -78
  171. package/dist/src/parsers/svelte/html/fragment.js +3 -3
  172. package/dist/src/parsers/svelte/html/if-else.js +11 -18
  173. package/dist/src/parsers/svelte/html/index.js +14 -14
  174. package/dist/src/parsers/svelte/html/mustache-tag.js +5 -5
  175. package/dist/src/parsers/svelte/html/slot.js +5 -5
  176. package/dist/src/parsers/svelte/html/text.js +7 -14
  177. package/dist/src/parsers/svelte/index.js +23 -72
  178. package/dist/src/parsers/svelte/instance/context.js +17 -17
  179. package/dist/src/parsers/svelte/instance/expressions.js +2 -2
  180. package/dist/src/parsers/svelte/instance/functions.js +35 -30
  181. package/dist/src/parsers/svelte/instance/hooks.js +4 -5
  182. package/dist/src/parsers/svelte/instance/imports.js +11 -21
  183. package/dist/src/parsers/svelte/instance/index.js +22 -22
  184. package/dist/src/parsers/svelte/instance/properties.js +11 -23
  185. package/dist/src/parsers/svelte/instance/reactive.js +11 -11
  186. package/dist/src/parsers/svelte/instance/references.js +13 -13
  187. package/dist/src/parsers/svelte/instance/statements.js +3 -3
  188. package/dist/src/parsers/svelte/module/index.js +14 -26
  189. package/dist/src/parsers/svelte/typescript/index.js +27 -36
  190. package/dist/src/plugins/compile-away-builder-components.js +223 -156
  191. package/dist/src/plugins/compile-away-components.js +13 -21
  192. package/dist/src/plugins/map-styles.js +7 -7
  193. package/dist/src/symbols/symbol-processor.js +44 -62
  194. package/dist/src/targets.js +19 -19
  195. package/dist/src/types/mitosis-node.js +1 -1
  196. package/package.json +1 -1
@@ -1,41 +1,21 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
19
- }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
- };
22
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  exports.compileAwayBuilderComponents = exports.compileAwayBuilderComponentsFromTree = exports.components = void 0;
27
- var sdk_1 = require("@builder.io/sdk");
28
- var json5_1 = __importDefault(require("json5"));
29
- var lodash_1 = require("lodash");
30
- var legacy_1 = __importDefault(require("neotraverse/legacy"));
31
- var bindings_1 = require("../helpers/bindings");
32
- var create_mitosis_node_1 = require("../helpers/create-mitosis-node");
33
- var filter_empty_text_nodes_1 = require("../helpers/filter-empty-text-nodes");
34
- var is_mitosis_node_1 = require("../helpers/is-mitosis-node");
35
- var builder_1 = require("../parsers/builder");
36
- var getCssFromNode = function (node) {
7
+ const sdk_1 = require("@builder.io/sdk");
8
+ const json5_1 = __importDefault(require("json5"));
9
+ const lodash_1 = require("lodash");
10
+ const legacy_1 = __importDefault(require("neotraverse/legacy"));
11
+ const bindings_1 = require("../helpers/bindings");
12
+ const create_mitosis_node_1 = require("../helpers/create-mitosis-node");
13
+ const filter_empty_text_nodes_1 = require("../helpers/filter-empty-text-nodes");
14
+ const is_mitosis_node_1 = require("../helpers/is-mitosis-node");
15
+ const builder_1 = require("../parsers/builder");
16
+ const getCssFromNode = (node) => {
37
17
  var _a;
38
- var css = (_a = node.bindings.css) === null || _a === void 0 ? void 0 : _a.code;
18
+ const css = (_a = node.bindings.css) === null || _a === void 0 ? void 0 : _a.code;
39
19
  if (css) {
40
20
  return json5_1.default.parse(css);
41
21
  }
@@ -43,25 +23,37 @@ var getCssFromNode = function (node) {
43
23
  };
44
24
  function getComponentInputNames(componentName) {
45
25
  var _a;
46
- var componentInfo = sdk_1.Builder.components.find(function (item) { return item.name === componentName; });
47
- return ((_a = componentInfo === null || componentInfo === void 0 ? void 0 : componentInfo.inputs) === null || _a === void 0 ? void 0 : _a.map(function (item) { return item.name; })) || [];
26
+ const componentInfo = sdk_1.Builder.components.find((item) => item.name === componentName);
27
+ return ((_a = componentInfo === null || componentInfo === void 0 ? void 0 : componentInfo.inputs) === null || _a === void 0 ? void 0 : _a.map((item) => item.name)) || [];
48
28
  }
49
- var wrapOutput = function (node, child, components) {
50
- var inputNames = getComponentInputNames(node.name);
29
+ const wrapOutput = (node, child, components) => {
30
+ const inputNames = getComponentInputNames(node.name);
51
31
  (0, exports.compileAwayBuilderComponentsFromTree)(child, components);
52
- return (0, create_mitosis_node_1.createMitosisNode)(__assign(__assign({}, node), { properties: __assign({}, lodash_1.omit.apply(void 0, __spreadArray([node.properties], inputNames, false))), bindings: __assign({}, lodash_1.omit.apply(void 0, __spreadArray([node.bindings], inputNames, false))),
32
+ return (0, create_mitosis_node_1.createMitosisNode)({
33
+ ...node,
34
+ properties: {
35
+ ...(0, lodash_1.omit)(node.properties, ...inputNames),
36
+ },
37
+ bindings: {
38
+ ...(0, lodash_1.omit)(node.bindings, ...inputNames),
39
+ },
53
40
  // TODO: forward tagName as a $tagName="..."
54
- name: node.properties._tagName || node.properties.$tagName || 'div', children: Array.isArray(child) ? child : [child] }));
41
+ name: node.properties._tagName || node.properties.$tagName || 'div',
42
+ children: Array.isArray(child) ? child : [child],
43
+ });
55
44
  };
56
45
  exports.components = {
57
- CoreButton: function (node, context, components) {
58
- var properties = {};
59
- var bindings = {};
46
+ CoreButton(node, context, components) {
47
+ const properties = {};
48
+ const bindings = {};
60
49
  if (!node.properties.href && node.bindings.css) {
61
- var css = json5_1.default.parse(node.bindings.css.code);
50
+ const css = json5_1.default.parse(node.bindings.css.code);
62
51
  // When using button tag ensure we have all: unset and
63
52
  // be sure that is the first style in the list
64
- node.bindings.css.code = json5_1.default.stringify(__assign({ all: 'unset' }, css));
53
+ node.bindings.css.code = json5_1.default.stringify({
54
+ all: 'unset',
55
+ ...css,
56
+ });
65
57
  }
66
58
  if ('link' in node.properties) {
67
59
  properties.href = node.properties.link;
@@ -88,15 +80,25 @@ exports.components = {
88
80
  ];
89
81
  }
90
82
  if ('openInNewTab' in node.bindings) {
91
- bindings.target = "".concat(node.bindings.openInNewTab, " ? '_blank' : '_self'");
83
+ bindings.target = `${node.bindings.openInNewTab} ? '_blank' : '_self'`;
92
84
  }
93
- var omitFields = ['link', 'openInNewTab', 'text'];
94
- var hasLink = node.properties.link || node.bindings.link;
95
- return (0, create_mitosis_node_1.createMitosisNode)(__assign(__assign({}, node), {
85
+ const omitFields = ['link', 'openInNewTab', 'text'];
86
+ const hasLink = node.properties.link || node.bindings.link;
87
+ return (0, create_mitosis_node_1.createMitosisNode)({
88
+ ...node,
96
89
  // TODO: use 'button' tag for no link, and add `all: unset` to CSS string only then
97
- name: hasLink ? 'a' : 'button', properties: __assign(__assign({}, (0, lodash_1.omit)(node.properties, omitFields)), properties), bindings: __assign(__assign({}, (0, lodash_1.omit)(node.bindings, omitFields)), bindings) }));
90
+ name: hasLink ? 'a' : 'button',
91
+ properties: {
92
+ ...(0, lodash_1.omit)(node.properties, omitFields),
93
+ ...properties,
94
+ },
95
+ bindings: {
96
+ ...(0, lodash_1.omit)(node.bindings, omitFields),
97
+ ...bindings,
98
+ },
99
+ });
98
100
  },
99
- Embed: function (node, context, components) {
101
+ Embed(node, context, components) {
100
102
  return wrapOutput(node, (0, create_mitosis_node_1.createMitosisNode)({
101
103
  name: node.properties.builderTag || 'div',
102
104
  properties: {
@@ -104,23 +106,19 @@ exports.components = {
104
106
  },
105
107
  }), components);
106
108
  },
107
- BuilderAccordion: function (node, context, components) {
109
+ BuilderAccordion(node, context, components) {
108
110
  var _a;
109
- var itemsJSON = ((_a = node.bindings.items) === null || _a === void 0 ? void 0 : _a.code) || '[]';
110
- var accordionItems = json5_1.default.parse(itemsJSON);
111
- var children = accordionItems.map(function (accordionItem) {
112
- var titleChildren = accordionItem.title.map(function (element) {
113
- return (0, builder_1.builderElementToMitosisNode)(element, {
114
- includeBuilderExtras: true,
115
- preserveTextBlocks: true,
116
- });
117
- });
118
- var detailChildren = accordionItem.detail.map(function (element) {
119
- return (0, builder_1.builderElementToMitosisNode)(element, {
120
- includeBuilderExtras: true,
121
- preserveTextBlocks: true,
122
- });
123
- });
111
+ const itemsJSON = ((_a = node.bindings.items) === null || _a === void 0 ? void 0 : _a.code) || '[]';
112
+ const accordionItems = json5_1.default.parse(itemsJSON);
113
+ const children = accordionItems.map((accordionItem) => {
114
+ const titleChildren = accordionItem.title.map((element) => (0, builder_1.builderElementToMitosisNode)(element, {
115
+ includeBuilderExtras: true,
116
+ preserveTextBlocks: true,
117
+ }));
118
+ const detailChildren = accordionItem.detail.map((element) => (0, builder_1.builderElementToMitosisNode)(element, {
119
+ includeBuilderExtras: true,
120
+ preserveTextBlocks: true,
121
+ }));
124
122
  return (0, create_mitosis_node_1.createMitosisNode)({
125
123
  name: 'div',
126
124
  properties: { builder: 'accordion' },
@@ -146,30 +144,30 @@ exports.components = {
146
144
  children: children,
147
145
  }), components);
148
146
  },
149
- BuilderMasonry: function () {
147
+ BuilderMasonry() {
150
148
  // TODO
151
149
  return (0, create_mitosis_node_1.createMitosisNode)({
152
150
  name: 'div',
153
151
  properties: { 'data-missing-component': 'BuilderMasonry' },
154
152
  });
155
153
  },
156
- BuilderTabs: function () {
154
+ BuilderTabs() {
157
155
  // TODO
158
156
  return (0, create_mitosis_node_1.createMitosisNode)({
159
157
  name: 'div',
160
158
  properties: { 'data-missing-component': 'BuilderTabs' },
161
159
  });
162
160
  },
163
- BuilderCarousel: function () {
161
+ BuilderCarousel() {
164
162
  // TODO
165
163
  return (0, create_mitosis_node_1.createMitosisNode)({
166
164
  name: 'div',
167
165
  properties: { 'data-missing-component': 'BuilderCarousel' },
168
166
  });
169
167
  },
170
- CustomCode: function (node, context, components) {
168
+ CustomCode(node, context, components) {
171
169
  var _a;
172
- var bindings = {};
170
+ const bindings = {};
173
171
  if ((_a = node === null || node === void 0 ? void 0 : node.bindings) === null || _a === void 0 ? void 0 : _a.code) {
174
172
  bindings.innerHTML = node.bindings.code;
175
173
  }
@@ -181,58 +179,76 @@ exports.components = {
181
179
  bindings: bindings,
182
180
  }), components);
183
181
  },
184
- CoreSection: function (node, context, components) {
182
+ CoreSection(node, context, components) {
185
183
  var _a, _b;
186
- var css = getCssFromNode(node);
184
+ const css = getCssFromNode(node);
187
185
  return wrapOutput(node, (0, create_mitosis_node_1.createMitosisNode)({
188
186
  name: 'section',
189
- properties: __assign(__assign(__assign({}, node.properties), { $name: 'section' }), (((_a = node.bindings.lazyLoad) === null || _a === void 0 ? void 0 : _a.code) === 'true' && {
190
- lazyLoad: 'true',
191
- })),
187
+ properties: {
188
+ ...node.properties,
189
+ $name: 'section',
190
+ ...(((_a = node.bindings.lazyLoad) === null || _a === void 0 ? void 0 : _a.code) === 'true' && {
191
+ lazyLoad: 'true',
192
+ }),
193
+ },
192
194
  bindings: {
193
195
  css: (0, bindings_1.createSingleBinding)({
194
- code: JSON.stringify(__assign(__assign({}, css), { width: '100%', alignSelf: 'stretch', flexGrow: '1', boxSizing: 'border-box', maxWidth: "".concat((((_b = node.bindings.maxWidth) === null || _b === void 0 ? void 0 : _b.code) && Number(node.bindings.maxWidth.code)) || 1200, "px"), display: 'flex', flexDirection: 'column', alignItems: 'stretch', marginLeft: 'auto', marginRight: 'auto' })),
196
+ code: JSON.stringify({
197
+ ...css,
198
+ width: '100%',
199
+ alignSelf: 'stretch',
200
+ flexGrow: '1',
201
+ boxSizing: 'border-box',
202
+ maxWidth: `${(((_b = node.bindings.maxWidth) === null || _b === void 0 ? void 0 : _b.code) && Number(node.bindings.maxWidth.code)) || 1200}px`,
203
+ display: 'flex',
204
+ flexDirection: 'column',
205
+ alignItems: 'stretch',
206
+ marginLeft: 'auto',
207
+ marginRight: 'auto',
208
+ }),
195
209
  }),
196
210
  },
197
211
  children: node.children,
198
212
  }), components);
199
213
  },
200
- Columns: function (node, context, components) {
201
- var _a;
202
- var columns = node.children.filter(filter_empty_text_nodes_1.filterEmptyTextNodes).map(function (item) {
214
+ Columns(node, context, components) {
215
+ const columns = node.children.filter(filter_empty_text_nodes_1.filterEmptyTextNodes).map((item) => {
203
216
  var _a;
204
217
  return ({
205
218
  width: parseFloat(item.properties.width || ((_a = item.bindings.width) === null || _a === void 0 ? void 0 : _a.code) || '0') || 0,
206
219
  children: item.children,
207
220
  });
208
221
  });
209
- var gutterSize = (node.properties.getterSize && parseFloat(node.properties.getterSize)) || 20;
222
+ const gutterSize = (node.properties.getterSize && parseFloat(node.properties.getterSize)) || 20;
210
223
  function getWidth(index) {
211
224
  return (columns[index] && columns[index].width) || 100 / columns.length;
212
225
  }
213
226
  function getColumnWidth(index) {
214
- return "".concat(Math.round(getWidth(index)), "%");
227
+ return `${Math.round(getWidth(index))}%`;
215
228
  }
216
- var properties = node.properties;
229
+ const { properties } = node;
217
230
  return wrapOutput(node, (0, create_mitosis_node_1.createMitosisNode)({
218
231
  name: 'div',
219
232
  bindings: {
220
233
  css: (0, bindings_1.createSingleBinding)({
221
- code: JSON.stringify(__assign({ gap: "".concat(gutterSize, "px"), display: 'flex' }, (properties.stackColumnsAt === 'never'
222
- ? {}
223
- : (_a = {},
224
- _a["@media (max-width: ".concat(properties.stackColumnsAt === 'mobile' ? 640 : 991, "px)")] = {
225
- flexDirection: properties.reverseColumnsWhenStacked === 'true'
226
- ? 'column-reverse'
227
- : 'column',
228
- alignItems: 'stretch',
229
- gap: "0px",
230
- },
231
- _a)))),
234
+ code: JSON.stringify({
235
+ gap: `${gutterSize}px`,
236
+ display: 'flex',
237
+ ...(properties.stackColumnsAt === 'never'
238
+ ? {}
239
+ : {
240
+ [`@media (max-width: ${properties.stackColumnsAt === 'mobile' ? 640 : 991}px)`]: {
241
+ flexDirection: properties.reverseColumnsWhenStacked === 'true'
242
+ ? 'column-reverse'
243
+ : 'column',
244
+ alignItems: 'stretch',
245
+ gap: `0px`,
246
+ },
247
+ }),
248
+ }),
232
249
  }),
233
250
  },
234
- children: columns.map(function (col, index) {
235
- var _a;
251
+ children: columns.map((col, index) => {
236
252
  return (0, create_mitosis_node_1.createMitosisNode)({
237
253
  name: 'div',
238
254
  properties: {
@@ -240,14 +256,22 @@ exports.components = {
240
256
  },
241
257
  bindings: {
242
258
  css: (0, bindings_1.createSingleBinding)({
243
- code: JSON.stringify(__assign({ display: 'flex', flexDirection: 'column', alignItems: 'stretch', lineHeight: 'normal', width: "".concat(getColumnWidth(index)), marginLeft: "".concat(index === 0 ? 0 : gutterSize, "px") }, (properties.stackColumnsAt === 'never'
244
- ? {}
245
- : (_a = {},
246
- _a["@media (max-width: ".concat(properties.stackColumnsAt === 'mobile' ? 640 : 991, "px)")] = {
247
- width: '100%',
248
- marginLeft: 0,
249
- },
250
- _a)))),
259
+ code: JSON.stringify({
260
+ display: 'flex',
261
+ flexDirection: 'column',
262
+ alignItems: 'stretch',
263
+ lineHeight: 'normal',
264
+ width: `${getColumnWidth(index)}`,
265
+ marginLeft: `${index === 0 ? 0 : gutterSize}px`,
266
+ ...(properties.stackColumnsAt === 'never'
267
+ ? {}
268
+ : {
269
+ [`@media (max-width: ${properties.stackColumnsAt === 'mobile' ? 640 : 991}px)`]: {
270
+ width: '100%',
271
+ marginLeft: 0,
272
+ },
273
+ }),
274
+ }),
251
275
  }),
252
276
  },
253
277
  children: col.children,
@@ -255,35 +279,51 @@ exports.components = {
255
279
  }),
256
280
  }), components);
257
281
  },
258
- Image: function (node, context, components) {
282
+ Image(node, context, components) {
259
283
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
260
- var _k = node.properties, backgroundSize = _k.backgroundSize, backgroundPosition = _k.backgroundPosition;
261
- var srcset = node.properties.srcset;
262
- var aspectRatio = ((_a = node.bindings.aspectRatio) === null || _a === void 0 ? void 0 : _a.code)
284
+ const { backgroundSize, backgroundPosition } = node.properties;
285
+ const { srcset } = node.properties;
286
+ let aspectRatio = ((_a = node.bindings.aspectRatio) === null || _a === void 0 ? void 0 : _a.code)
263
287
  ? parseFloat(node.bindings.aspectRatio.code)
264
288
  : null;
265
289
  if (typeof aspectRatio === 'number' && isNaN(aspectRatio)) {
266
290
  aspectRatio = null;
267
291
  }
268
- var image = node.properties.image;
269
- var srcSet = srcset || generateBuilderIoSrcSet(image);
270
- var css = getCssFromNode(node);
271
- var noWebp = ((_b = node.bindings.noWebp) === null || _b === void 0 ? void 0 : _b.code) === 'true';
272
- var img = (0, create_mitosis_node_1.createMitosisNode)({
292
+ const image = node.properties.image;
293
+ const srcSet = srcset || generateBuilderIoSrcSet(image);
294
+ const css = getCssFromNode(node);
295
+ const noWebp = ((_b = node.bindings.noWebp) === null || _b === void 0 ? void 0 : _b.code) === 'true';
296
+ const img = (0, create_mitosis_node_1.createMitosisNode)({
273
297
  name: 'img',
274
- properties: noUndefined(__assign({ loading: 'lazy', sizes: node.properties.sizes, alt: node.properties.altText }, (noWebp
275
- ? {
276
- src: image,
277
- }
278
- : {
279
- srcSet: srcSet || null,
280
- }))),
298
+ properties: noUndefined({
299
+ loading: 'lazy',
300
+ sizes: node.properties.sizes,
301
+ alt: node.properties.altText,
302
+ // We set noWebp to true for SVGs. in this case, we
303
+ // also don't need srcset, just a src is better
304
+ ...(noWebp
305
+ ? {
306
+ src: image,
307
+ }
308
+ : {
309
+ srcSet: srcSet || null,
310
+ }),
311
+ }),
281
312
  bindings: noUndefined({
282
313
  src: ((_c = node.bindings.image) === null || _c === void 0 ? void 0 : _c.code) && { code: (_d = node.bindings.image) === null || _d === void 0 ? void 0 : _d.code },
283
314
  sizes: ((_e = node.bindings.sizes) === null || _e === void 0 ? void 0 : _e.code) && { code: (_f = node.bindings.sizes) === null || _f === void 0 ? void 0 : _f.code },
284
315
  style: ((_g = node.bindings.style) === null || _g === void 0 ? void 0 : _g.code) && { code: (_h = node.bindings.style) === null || _h === void 0 ? void 0 : _h.code },
285
316
  css: (0, bindings_1.createSingleBinding)({
286
- code: JSON.stringify(__assign(__assign({ aspectRatio: aspectRatio ? String((0, lodash_1.round)(1 / aspectRatio, 2)) : undefined, objectFit: backgroundSize || 'cover', objectPosition: backgroundPosition || 'center', width: '100%' }, css), { display: undefined, flexDirection: undefined, position: css.position === 'relative' ? undefined : css.position })),
317
+ code: JSON.stringify({
318
+ aspectRatio: aspectRatio ? String((0, lodash_1.round)(1 / aspectRatio, 2)) : undefined,
319
+ objectFit: backgroundSize || 'cover',
320
+ objectPosition: backgroundPosition || 'center',
321
+ width: '100%',
322
+ ...css,
323
+ display: undefined,
324
+ flexDirection: undefined,
325
+ position: css.position === 'relative' ? undefined : css.position,
326
+ }),
287
327
  }),
288
328
  }),
289
329
  });
@@ -291,15 +331,24 @@ exports.components = {
291
331
  return img;
292
332
  }
293
333
  // TODO: deal with links: anchor tag and href
294
- var root = (0, create_mitosis_node_1.createMitosisNode)({
334
+ const root = (0, create_mitosis_node_1.createMitosisNode)({
295
335
  name: 'div',
296
336
  bindings: noUndefined({
297
337
  css: (0, bindings_1.createSingleBinding)({
298
- code: JSON.stringify(__assign(__assign({ display: 'flex', flexDirection: 'column' }, css), { position: 'relative' })),
338
+ code: JSON.stringify({
339
+ display: 'flex',
340
+ flexDirection: 'column',
341
+ ...css,
342
+ position: 'relative',
343
+ }),
299
344
  }),
300
345
  }),
301
- children: __spreadArray([
302
- __assign(__assign({}, img), { bindings: __assign(__assign({}, img.bindings), { css: (0, bindings_1.createSingleBinding)({
346
+ children: [
347
+ {
348
+ ...img,
349
+ bindings: {
350
+ ...img.bindings,
351
+ css: (0, bindings_1.createSingleBinding)({
303
352
  code: JSON.stringify({
304
353
  position: 'absolute',
305
354
  inset: '0',
@@ -308,27 +357,39 @@ exports.components = {
308
357
  objectFit: backgroundSize || 'cover',
309
358
  objectPosition: backgroundPosition || 'center',
310
359
  }),
311
- }) }) })
312
- ], node.children.map(function (child) {
313
- var newChild = __assign(__assign({}, child), { bindings: __assign(__assign({}, child.bindings), { css: (0, bindings_1.createSingleBinding)({
314
- code: JSON.stringify(__assign({ position: 'relative' }, getCssFromNode(child))),
315
- }) }) });
316
- (0, exports.compileAwayBuilderComponentsFromTree)(newChild, components);
317
- return newChild;
318
- }), true),
360
+ }),
361
+ },
362
+ },
363
+ ...node.children.map((child) => {
364
+ const newChild = {
365
+ ...child,
366
+ bindings: {
367
+ ...child.bindings,
368
+ css: (0, bindings_1.createSingleBinding)({
369
+ code: JSON.stringify({
370
+ position: 'relative',
371
+ ...getCssFromNode(child),
372
+ }),
373
+ }),
374
+ },
375
+ };
376
+ (0, exports.compileAwayBuilderComponentsFromTree)(newChild, components);
377
+ return newChild;
378
+ }),
379
+ ],
319
380
  });
320
381
  return root;
321
382
  },
322
- Video: function (node, context, components) {
383
+ Video(node, context, components) {
323
384
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
324
- var aspectRatio = ((_a = node.bindings.aspectRatio) === null || _a === void 0 ? void 0 : _a.code)
385
+ let aspectRatio = ((_a = node.bindings.aspectRatio) === null || _a === void 0 ? void 0 : _a.code)
325
386
  ? parseFloat(node.bindings.aspectRatio.code)
326
387
  : null;
327
388
  if (typeof aspectRatio === 'number' && isNaN(aspectRatio)) {
328
389
  aspectRatio = null;
329
390
  }
330
- var videoContainerNodes = [];
331
- var css = getCssFromNode(node);
391
+ const videoContainerNodes = [];
392
+ const css = getCssFromNode(node);
332
393
  videoContainerNodes.push((0, create_mitosis_node_1.createMitosisNode)({
333
394
  name: 'video',
334
395
  properties: noUndefined({
@@ -358,7 +419,15 @@ exports.components = {
358
419
  },
359
420
  loop: ((_m = node.bindings.loop) === null || _m === void 0 ? void 0 : _m.code) && { code: (_o = node.bindings.loop) === null || _o === void 0 ? void 0 : _o.code },
360
421
  css: (0, bindings_1.createSingleBinding)({
361
- code: JSON.stringify(__assign({ width: '100%', height: '100%', objectFit: node.properties.fit, objectPosition: node.properties.position, borderRadius: '1', position: aspectRatio ? 'absolute' : '' }, css)),
422
+ code: JSON.stringify({
423
+ width: '100%',
424
+ height: '100%',
425
+ objectFit: node.properties.fit,
426
+ objectPosition: node.properties.position,
427
+ borderRadius: '1',
428
+ position: aspectRatio ? 'absolute' : '',
429
+ ...css,
430
+ }),
362
431
  }),
363
432
  }),
364
433
  children: [
@@ -410,7 +479,7 @@ exports.components = {
410
479
  },
411
480
  children: node.children,
412
481
  }));
413
- var videoContainer = (0, create_mitosis_node_1.createMitosisNode)({
482
+ const videoContainer = (0, create_mitosis_node_1.createMitosisNode)({
414
483
  name: 'div',
415
484
  bindings: {
416
485
  css: (0, bindings_1.createSingleBinding)({ code: JSON.stringify({ position: 'relative' }) }),
@@ -420,12 +489,12 @@ exports.components = {
420
489
  return wrapOutput(node, videoContainer, components);
421
490
  },
422
491
  };
423
- var compileAwayBuilderComponentsFromTree = function (tree, components) {
492
+ const compileAwayBuilderComponentsFromTree = (tree, components) => {
424
493
  (0, legacy_1.default)(tree).forEach(function (item) {
425
494
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
426
- var mapper = components[item.name];
495
+ const mapper = components[item.name];
427
496
  if (mapper) {
428
- var result = mapper(item, this, components);
497
+ const result = mapper(item, this, components);
429
498
  if (result) {
430
499
  this.update(result);
431
500
  }
@@ -434,50 +503,48 @@ var compileAwayBuilderComponentsFromTree = function (tree, components) {
434
503
  });
435
504
  };
436
505
  exports.compileAwayBuilderComponentsFromTree = compileAwayBuilderComponentsFromTree;
437
- var compileAwayBuilderComponents = function (pluginOptions) {
438
- if (pluginOptions === void 0) { pluginOptions = {}; }
439
- var obj = exports.components;
506
+ const compileAwayBuilderComponents = (pluginOptions = {}) => {
507
+ let obj = exports.components;
440
508
  if (pluginOptions.omit) {
441
509
  obj = (0, lodash_1.omit)(obj, pluginOptions.omit);
442
510
  }
443
511
  if (pluginOptions.only) {
444
512
  obj = (0, lodash_1.pick)(obj, pluginOptions.only);
445
513
  }
446
- return function (options) { return ({
514
+ return (options) => ({
447
515
  json: {
448
- pre: function (json) {
516
+ pre: (json) => {
449
517
  (0, exports.compileAwayBuilderComponentsFromTree)(json, obj);
450
518
  },
451
519
  },
452
- }); };
520
+ });
453
521
  };
454
522
  exports.compileAwayBuilderComponents = compileAwayBuilderComponents;
455
- function updateQueryParam(uri, key, value) {
456
- if (uri === void 0) { uri = ''; }
457
- var re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
458
- var separator = uri.indexOf('?') !== -1 ? '&' : '?';
523
+ function updateQueryParam(uri = '', key, value) {
524
+ const re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
525
+ const separator = uri.indexOf('?') !== -1 ? '&' : '?';
459
526
  if (uri.match(re)) {
460
527
  return uri.replace(re, '$1' + key + '=' + encodeURIComponent(value) + '$2');
461
528
  }
462
529
  return uri + separator + key + '=' + encodeURIComponent(value);
463
530
  }
464
531
  function generateBuilderIoSrcSet(image) {
465
- var isBuilderIo = !!(image || '').match(/builder\.io/);
532
+ const isBuilderIo = !!(image || '').match(/builder\.io/);
466
533
  return isBuilderIo
467
534
  ? [100, 200, 400, 800, 1200, 1600, 2000]
468
- .map(function (size) { return "".concat(updateQueryParam(image, 'width', String(size)), " ").concat(size, "w"); })
535
+ .map((size) => `${updateQueryParam(image, 'width', String(size))} ${size}w`)
469
536
  .concat([image])
470
537
  .join(', ')
471
538
  : '';
472
539
  }
473
540
  function noUndefined(obj) {
474
- var cleanObj = {};
475
- for (var key in obj) {
541
+ const cleanObj = {};
542
+ for (const key in obj) {
476
543
  if (Object.prototype.hasOwnProperty.call(obj, key)) {
477
- var value = obj[key];
544
+ const value = obj[key];
478
545
  if (value != null) {
479
546
  if (typeof value == 'object') {
480
- var ret = noUndefined(value);
547
+ const ret = noUndefined(value);
481
548
  if (Object.keys(ret).length) {
482
549
  cleanObj[key] = ret;
483
550
  }
@@ -1,25 +1,17 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
6
  exports.compileAwayComponents = exports.getRenderOptions = void 0;
18
- var lodash_1 = require("lodash");
19
- var legacy_1 = __importDefault(require("neotraverse/legacy"));
20
- var is_mitosis_node_1 = require("../helpers/is-mitosis-node");
21
- var getRenderOptions = function (node) {
22
- return __assign(__assign({}, (0, lodash_1.mapValues)(node.properties, function (value) { return "\"".concat(value, "\""); })), (0, lodash_1.mapValues)(node.bindings, function (value) { return "{".concat(value, "}"); }));
7
+ const lodash_1 = require("lodash");
8
+ const legacy_1 = __importDefault(require("neotraverse/legacy"));
9
+ const is_mitosis_node_1 = require("../helpers/is-mitosis-node");
10
+ const getRenderOptions = (node) => {
11
+ return {
12
+ ...(0, lodash_1.mapValues)(node.properties, (value) => `"${value}"`),
13
+ ...(0, lodash_1.mapValues)(node.bindings, (value) => `{${value}}`),
14
+ };
23
15
  };
24
16
  exports.getRenderOptions = getRenderOptions;
25
17
  /**
@@ -38,14 +30,14 @@ exports.getRenderOptions = getRenderOptions;
38
30
  * ]
39
31
  * })
40
32
  */
41
- var compileAwayComponents = function (pluginOptions) { return function (options) { return ({
33
+ const compileAwayComponents = (pluginOptions) => (options) => ({
42
34
  json: {
43
- pre: function (json) {
35
+ pre: (json) => {
44
36
  (0, legacy_1.default)(json).forEach(function (item) {
45
37
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
46
- var mapper = pluginOptions.components[item.name];
38
+ const mapper = pluginOptions.components[item.name];
47
39
  if (mapper) {
48
- var result = mapper(item, this);
40
+ const result = mapper(item, this);
49
41
  if (result) {
50
42
  this.update(result);
51
43
  }
@@ -54,5 +46,5 @@ var compileAwayComponents = function (pluginOptions) { return function (options)
54
46
  });
55
47
  },
56
48
  },
57
- }); }; };
49
+ });
58
50
  exports.compileAwayComponents = compileAwayComponents;