@builder.io/mitosis 0.0.56-13 → 0.0.56-16

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 (217) hide show
  1. package/dist/src/__tests__/angular.test.js +2 -104
  2. package/dist/src/__tests__/builder.test.js +3 -3
  3. package/dist/src/__tests__/data/basic-child-component.raw.jsx +1 -2
  4. package/dist/src/__tests__/data/basic-context.raw.d.ts +1 -0
  5. package/dist/src/__tests__/data/basic-context.raw.jsx +29 -0
  6. package/dist/src/__tests__/data/basic-custom-mitosis-package.raw.d.ts +1 -0
  7. package/dist/src/__tests__/data/basic-custom-mitosis-package.raw.jsx +10 -0
  8. package/dist/src/__tests__/data/basic-for-show.raw.jsx +2 -3
  9. package/dist/src/__tests__/data/basic-for.raw.jsx +2 -3
  10. package/dist/src/__tests__/data/basic-forwardRef-metadata.raw.d.ts +5 -0
  11. package/dist/src/__tests__/data/basic-forwardRef-metadata.raw.jsx +17 -0
  12. package/dist/src/__tests__/data/basic-forwardRef.raw.d.ts +5 -0
  13. package/dist/src/__tests__/data/basic-forwardRef.raw.jsx +14 -0
  14. package/dist/src/__tests__/data/basic-onChange.raw.d.ts +1 -0
  15. package/dist/src/__tests__/data/basic-onChange.raw.jsx +17 -0
  16. package/dist/src/__tests__/data/basic-onMount-update.raw.jsx +1 -1
  17. package/dist/src/__tests__/data/basic-onUpdate-return.raw.d.ts +1 -0
  18. package/dist/src/__tests__/data/basic-onUpdate-return.raw.jsx +24 -0
  19. package/dist/src/__tests__/data/basic-outputs-meta.raw.jsx +1 -1
  20. package/dist/src/__tests__/data/basic-outputs.raw.jsx +1 -1
  21. package/dist/src/__tests__/data/basic-preserve-export-or-local-statement.raw.d.ts +6 -0
  22. package/dist/src/__tests__/data/basic-preserve-export-or-local-statement.raw.jsx +14 -0
  23. package/dist/src/__tests__/data/basic-props-destructure.raw.d.ts +6 -0
  24. package/dist/src/__tests__/data/basic-props-destructure.raw.jsx +14 -0
  25. package/dist/src/__tests__/data/basic-props.raw.d.ts +6 -0
  26. package/dist/src/__tests__/data/basic-props.raw.jsx +13 -0
  27. package/dist/src/__tests__/data/basic-ref-assignment.raw.d.ts +4 -0
  28. package/dist/src/__tests__/data/basic-ref-assignment.raw.jsx +15 -0
  29. package/dist/src/__tests__/data/basic-ref-usePrevious.raw.d.ts +5 -0
  30. package/dist/src/__tests__/data/basic-ref-usePrevious.raw.jsx +35 -0
  31. package/dist/src/__tests__/data/basic-ref.raw.d.ts +4 -0
  32. package/dist/src/__tests__/data/basic-ref.raw.jsx +36 -0
  33. package/dist/src/__tests__/data/basic.raw.d.ts +6 -1
  34. package/dist/src/__tests__/data/basic.raw.jsx +10 -3
  35. package/dist/src/__tests__/data/blocks/classname-jsx.raw.jsx +1 -1
  36. package/dist/src/__tests__/data/blocks/columns.raw.jsx +1 -1
  37. package/dist/src/__tests__/data/blocks/custom-code.raw.jsx +3 -7
  38. package/dist/src/__tests__/data/blocks/embed.raw.jsx +3 -7
  39. package/dist/src/__tests__/data/blocks/form.raw.jsx +3 -3
  40. package/dist/src/__tests__/data/blocks/image.raw.jsx +8 -9
  41. package/dist/src/__tests__/data/blocks/img-state.raw.jsx +1 -1
  42. package/dist/src/__tests__/data/blocks/input.raw.jsx +1 -3
  43. package/dist/src/__tests__/data/blocks/multiple-onUpdateWithDeps.raw.jsx +7 -1
  44. package/dist/src/__tests__/data/blocks/onInit.raw.d.ts +8 -1
  45. package/dist/src/__tests__/data/blocks/onInit.raw.jsx +13 -3
  46. package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.jsx +1 -1
  47. package/dist/src/__tests__/data/blocks/section-state.raw.jsx +1 -1
  48. package/dist/src/__tests__/data/blocks/select.raw.jsx +1 -3
  49. package/dist/src/__tests__/data/blocks/shadow-dom.raw.jsx +2 -4
  50. package/dist/src/__tests__/data/blocks/stamped-io.raw.jsx +2 -4
  51. package/dist/src/__tests__/data/blocks/text.raw.jsx +2 -5
  52. package/dist/src/__tests__/data/styles/class-and-className.raw.jsx +1 -3
  53. package/dist/src/__tests__/data/styles/className.raw.jsx +1 -3
  54. package/dist/src/__tests__/data/styles/classState.raw.d.ts +1 -0
  55. package/dist/src/__tests__/data/styles/classState.raw.jsx +12 -0
  56. package/dist/src/__tests__/data/types/component-props-interface.raw.d.ts +6 -0
  57. package/dist/src/__tests__/data/types/component-props-interface.raw.jsx +6 -0
  58. package/dist/src/__tests__/data/types/component-props-type.raw.d.ts +6 -0
  59. package/dist/src/__tests__/data/types/component-props-type.raw.jsx +6 -0
  60. package/dist/src/__tests__/data/types/preserve-typing.raw.d.ts +8 -0
  61. package/dist/src/__tests__/data/types/preserve-typing.raw.jsx +6 -0
  62. package/dist/src/__tests__/html.test.js +2 -145
  63. package/dist/src/__tests__/liquid.test.js +2 -109
  64. package/dist/src/__tests__/parse-jsx.test.js +22 -0
  65. package/dist/src/__tests__/qwik/convertMethodToFunction.test.d.ts +1 -0
  66. package/dist/src/__tests__/qwik/convertMethodToFunction.test.js +34 -0
  67. package/dist/src/__tests__/qwik/src-generator.test.d.ts +1 -0
  68. package/dist/src/__tests__/qwik/src-generator.test.js +65 -0
  69. package/dist/src/__tests__/qwik.test.js +44 -21
  70. package/dist/src/__tests__/react-native.test.js +2 -135
  71. package/dist/src/__tests__/react.test.js +5 -177
  72. package/dist/src/__tests__/shared.d.ts +3 -0
  73. package/dist/src/__tests__/shared.js +224 -0
  74. package/dist/src/__tests__/solid.test.js +2 -103
  75. package/dist/src/__tests__/stencil.test.js +3 -98
  76. package/dist/src/__tests__/styles.test.js +9 -1
  77. package/dist/src/__tests__/svelte.test.js +6 -0
  78. package/dist/src/__tests__/vue.test.js +2 -134
  79. package/dist/src/__tests__/webcomponent.test.js +6 -165
  80. package/dist/src/constants/hooks.d.ts +6 -0
  81. package/dist/src/constants/hooks.js +9 -0
  82. package/dist/src/generators/angular.d.ts +1 -1
  83. package/dist/src/generators/angular.js +66 -34
  84. package/dist/src/generators/builder.d.ts +1 -1
  85. package/dist/src/generators/builder.js +6 -12
  86. package/dist/src/generators/context/{react copy.d.ts → qwik.d.ts} +2 -2
  87. package/dist/src/generators/context/{react copy.js → qwik.js} +4 -5
  88. package/dist/src/generators/context/svelte.d.ts +1 -1
  89. package/dist/src/generators/helpers/context.js +1 -2
  90. package/dist/src/generators/html.d.ts +1 -1
  91. package/dist/src/generators/html.js +206 -120
  92. package/dist/src/generators/liquid.d.ts +1 -1
  93. package/dist/src/generators/liquid.js +6 -14
  94. package/dist/src/generators/mitosis.d.ts +1 -1
  95. package/dist/src/generators/mitosis.js +30 -29
  96. package/dist/src/generators/qwik/component-generator.d.ts +4 -0
  97. package/dist/src/generators/qwik/component-generator.js +271 -0
  98. package/dist/src/generators/qwik/component.js +4 -5
  99. package/dist/src/generators/qwik/convertMethodToFunction.d.ts +1 -0
  100. package/dist/src/generators/qwik/convertMethodToFunction.js +161 -0
  101. package/dist/src/generators/qwik/directives.js +20 -18
  102. package/dist/src/generators/qwik/index.d.ts +3 -1
  103. package/dist/src/generators/qwik/index.js +3 -1
  104. package/dist/src/generators/qwik/jsx.js +10 -6
  105. package/dist/src/generators/qwik/src-generator.d.ts +19 -7
  106. package/dist/src/generators/qwik/src-generator.js +149 -31
  107. package/dist/src/generators/qwik/styles.js +1 -2
  108. package/dist/src/generators/react-native.d.ts +2 -2
  109. package/dist/src/generators/react-native.js +3 -6
  110. package/dist/src/generators/react.d.ts +4 -2
  111. package/dist/src/generators/react.js +88 -68
  112. package/dist/src/generators/solid.d.ts +1 -1
  113. package/dist/src/generators/solid.js +9 -12
  114. package/dist/src/generators/stencil/generate.d.ts +1 -1
  115. package/dist/src/generators/stencil/generate.js +5 -11
  116. package/dist/src/generators/svelte.d.ts +1 -1
  117. package/dist/src/generators/svelte.js +19 -26
  118. package/dist/src/generators/swift-ui.d.ts +1 -1
  119. package/dist/src/generators/swift-ui.js +6 -12
  120. package/dist/src/generators/template.d.ts +1 -1
  121. package/dist/src/generators/template.js +6 -14
  122. package/dist/src/generators/vue.d.ts +12 -6
  123. package/dist/src/generators/vue.js +62 -31
  124. package/dist/src/helpers/babel-transform.js +3 -8
  125. package/dist/src/helpers/create-mitosis-component.d.ts +1 -1
  126. package/dist/src/helpers/create-mitosis-component.js +1 -1
  127. package/dist/src/helpers/fast-clone.js +1 -3
  128. package/dist/src/helpers/filter-empty-text-nodes.js +1 -2
  129. package/dist/src/helpers/get-bindings.d.ts +2 -0
  130. package/dist/src/helpers/get-bindings.js +18 -0
  131. package/dist/src/helpers/get-props-ref.d.ts +2 -0
  132. package/dist/src/helpers/get-props-ref.js +32 -0
  133. package/dist/src/helpers/getters-to-functions.d.ts +1 -1
  134. package/dist/src/helpers/getters-to-functions.js +1 -1
  135. package/dist/src/helpers/has-bindings-text.d.ts +2 -0
  136. package/dist/src/helpers/has-bindings-text.js +21 -0
  137. package/dist/src/helpers/has-stateful-dom.d.ts +2 -0
  138. package/dist/src/helpers/has-stateful-dom.js +21 -0
  139. package/dist/src/helpers/is-children.js +1 -2
  140. package/dist/src/helpers/is-component.js +1 -3
  141. package/dist/src/helpers/is-html-attribute.d.ts +1 -1
  142. package/dist/src/helpers/is-html-attribute.js +4 -19
  143. package/dist/src/helpers/map-refs.js +4 -1
  144. package/dist/src/helpers/parsers.js +1 -2
  145. package/dist/src/helpers/render-imports.d.ts +18 -2
  146. package/dist/src/helpers/render-imports.js +86 -45
  147. package/dist/src/helpers/render-imports.test.d.ts +1 -0
  148. package/dist/src/helpers/render-imports.test.js +19 -0
  149. package/dist/src/helpers/replace-idenifiers.js +2 -5
  150. package/dist/src/helpers/strip-state-and-props-refs.d.ts +2 -1
  151. package/dist/src/helpers/strip-state-and-props-refs.js +5 -8
  152. package/dist/src/helpers/styles/collect-css.d.ts +6 -0
  153. package/dist/src/helpers/styles/collect-css.js +87 -0
  154. package/dist/src/helpers/styles/collect-css.test.d.ts +1 -0
  155. package/dist/src/helpers/styles/collect-css.test.js +18 -0
  156. package/dist/src/helpers/styles/collect-styled-components.d.ts +2 -0
  157. package/dist/src/helpers/styles/collect-styled-components.js +61 -0
  158. package/dist/src/helpers/styles/helpers.d.ts +30 -0
  159. package/dist/src/helpers/styles/helpers.js +61 -0
  160. package/dist/src/helpers/typescript.d.ts +2 -0
  161. package/dist/src/helpers/typescript.js +2 -0
  162. package/dist/src/index.d.ts +7 -4
  163. package/dist/src/index.js +24 -8
  164. package/dist/src/jsx-types.d.ts +1 -0
  165. package/dist/src/modules/plugins.d.ts +1 -1
  166. package/dist/src/parsers/angular.js +10 -28
  167. package/dist/src/parsers/builder.d.ts +23 -23
  168. package/dist/src/parsers/builder.js +15 -33
  169. package/dist/src/parsers/jsx.d.ts +2 -1
  170. package/dist/src/parsers/jsx.js +214 -64
  171. package/dist/src/parsers/liquid.js +51 -149
  172. package/dist/src/plugins/compile-away-builder-components.js +4 -10
  173. package/dist/src/symbols/symbol-processor.js +4 -6
  174. package/dist/src/targets.d.ts +5 -3
  175. package/dist/src/targets.js +7 -1
  176. package/dist/src/types/config.d.ts +37 -17
  177. package/dist/src/types/mitosis-component.d.ts +30 -10
  178. package/dist/src/types/transpiler.d.ts +14 -0
  179. package/dist/src/types/transpiler.js +2 -0
  180. package/dist/test/qwik/Accordion/low.jsx +1 -0
  181. package/dist/test/qwik/For/low.jsx +1 -0
  182. package/dist/test/qwik/Image/med.js +2 -1
  183. package/dist/test/qwik/Image.slow/med.js +2 -1
  184. package/dist/test/qwik/bindings/low.cjs +3 -2
  185. package/dist/test/qwik/button/low.js +1 -0
  186. package/dist/test/qwik/component/bindings/low.jsx +2 -1
  187. package/dist/test/qwik/component/component/inputs/med.cjsx +2 -1
  188. package/dist/test/qwik/for-loop.bindings/high.cjs +0 -0
  189. package/dist/test/qwik/for-loop.bindings/low.cjs +47 -0
  190. package/dist/test/qwik/for-loop.bindings/med.cjs +5 -0
  191. package/dist/test/qwik/hello_world/stylesheet/low.jsx +1 -0
  192. package/dist/test/qwik/mount/high.cjs +0 -0
  193. package/dist/test/qwik/mount/low.cjs +44 -0
  194. package/dist/test/qwik/mount/med.cjs +3 -0
  195. package/dist/test/qwik/page-with-symbol/low.js +1 -0
  196. package/dist/test/qwik/show-hide/med.jsx +2 -1
  197. package/dist/test/qwik/svg/low.js +1 -0
  198. package/dist/test/qwik/todo/Todo.cjs/med.cjs +1 -0
  199. package/dist/test/qwik/todo/Todo.js/med.js +1 -0
  200. package/dist/test/qwik/todo/Todo.tsx/med.tsx +1 -0
  201. package/dist/test/qwik/todos/Todo.tsx/low.tsx +1 -0
  202. package/dist/tsconfig.build.tsbuildinfo +1 -1
  203. package/dist/tsconfig.tsbuildinfo +1 -1
  204. package/package.json +6 -3
  205. package/README.md +0 -239
  206. package/dist/src/__tests__/data/blocks/content-slot.raw.d.ts +0 -6
  207. package/dist/src/__tests__/data/blocks/content-slot.raw.jsx +0 -13
  208. package/dist/src/__tests__/data/blocks/onUpdate.raw copy.d.ts +0 -1
  209. package/dist/src/__tests__/data/blocks/onUpdate.raw copy.jsx +0 -10
  210. package/dist/src/__tests__/data/blocks/slot.raw.d.ts +0 -5
  211. package/dist/src/__tests__/data/blocks/slot.raw.jsx +0 -6
  212. package/dist/src/__tests__/data/blocks/styles.raw.d.ts +0 -1
  213. package/dist/src/__tests__/data/blocks/styles.raw.jsx +0 -10
  214. package/dist/src/helpers/babel-transform copy.d.ts +0 -8
  215. package/dist/src/helpers/babel-transform copy.js +0 -138
  216. package/dist/src/helpers/collect-styles.d.ts +0 -29
  217. package/dist/src/helpers/collect-styles.js +0 -176
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  function CustomCode(props) {
5
- var elem = (0, mitosis_1.useRef)();
6
- var state = (0, mitosis_1.useState)({
5
+ var elem = (0, mitosis_1.useRef)(null);
6
+ var state = (0, mitosis_1.useStore)({
7
7
  scriptsInserted: [],
8
8
  scriptsRun: [],
9
9
  findAndRunScripts: function () {
@@ -24,11 +24,7 @@ function CustomCode(props) {
24
24
  document.head.appendChild(newScript);
25
25
  }
26
26
  else if (!script.type ||
27
- [
28
- 'text/javascript',
29
- 'application/javascript',
30
- 'application/ecmascript',
31
- ].includes(script.type)) {
27
+ ['text/javascript', 'application/javascript', 'application/ecmascript'].includes(script.type)) {
32
28
  if (state.scriptsRun.includes(script.innerText)) {
33
29
  continue;
34
30
  }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  function Embed(props) {
5
- var elem = (0, mitosis_1.useRef)();
6
- var state = (0, mitosis_1.useState)({
5
+ var elem = (0, mitosis_1.useRef)(null);
6
+ var state = (0, mitosis_1.useStore)({
7
7
  scriptsInserted: [],
8
8
  scriptsRun: [],
9
9
  findAndRunScripts: function () {
@@ -24,11 +24,7 @@ function Embed(props) {
24
24
  document.head.appendChild(newScript);
25
25
  }
26
26
  else if (!script.type ||
27
- [
28
- 'text/javascript',
29
- 'application/javascript',
30
- 'application/ecmascript',
31
- ].includes(script.type)) {
27
+ ['text/javascript', 'application/javascript', 'application/ecmascript'].includes(script.type)) {
32
28
  if (state.scriptsRun.includes(script.innerText)) {
33
29
  continue;
34
30
  }
@@ -44,7 +44,7 @@ var _fake_3 = require("@fake");
44
44
  var _fake_4 = require("@fake");
45
45
  function FormComponent(props) {
46
46
  var _a;
47
- var state = (0, mitosis_1.useState)({
47
+ var state = (0, mitosis_1.useStore)({
48
48
  state: 'unsubmitted',
49
49
  // TODO: separate response and error?
50
50
  responseData: null,
@@ -242,11 +242,11 @@ function FormComponent(props) {
242
242
  }
243
243
  },
244
244
  });
245
- var formRef = (0, mitosis_1.useRef)();
245
+ var formRef = (0, mitosis_1.useRef)(null);
246
246
  return (<form validate={props.validate} ref={formRef} action={!props.sendWithJs && props.action} method={props.method} name={props.name} onSubmit={function (event) { return state.onSubmit(event); }} {...props.attributes}>
247
247
  <mitosis_1.Show when={props.builderBlock && props.builderBlock.children}>
248
248
  <mitosis_1.For each={(_a = props.builderBlock) === null || _a === void 0 ? void 0 : _a.children}>
249
- {function (block, index) { return (<_fake_1.BuilderBlock key={block.id} block={block} index={index}/>); }}
249
+ {function (block, index) { return <_fake_1.BuilderBlock key={block.id} block={block} index={index}/>; }}
250
250
  </mitosis_1.For>
251
251
  </mitosis_1.Show>
252
252
 
@@ -3,22 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  function Image(props) {
5
5
  var pictureRef = (0, mitosis_1.useRef)();
6
- var state = (0, mitosis_1.useState)({
6
+ var state = (0, mitosis_1.useStore)({
7
7
  scrollListener: null,
8
8
  imageLoaded: false,
9
- load: false,
10
9
  setLoaded: function () {
11
10
  state.imageLoaded = true;
12
11
  },
13
- isBrowser: function () {
14
- return (typeof window !== 'undefined' &&
15
- window.navigator.product != 'ReactNative');
16
- },
17
12
  useLazyLoading: function () {
18
13
  // TODO: Add more checks here, like testing for real web browsers
19
- return !!props.lazy && state.isBrowser();
14
+ return !!props.lazy && isBrowser();
20
15
  },
21
16
  });
17
+ function isBrowser() {
18
+ return typeof window !== 'undefined' && window.navigator.product != 'ReactNative';
19
+ }
20
+ var _a = (0, mitosis_1.useState)(false), load = _a[0], setLoad = _a[1];
22
21
  (0, mitosis_1.onMount)(function () {
23
22
  if (state.useLazyLoading()) {
24
23
  // throttled scroll capture listener
@@ -27,7 +26,7 @@ function Image(props) {
27
26
  var rect = pictureRef.getBoundingClientRect();
28
27
  var buffer = window.innerHeight / 2;
29
28
  if (rect.top < window.innerHeight + buffer) {
30
- state.load = true;
29
+ setLoad(true);
31
30
  state.scrollListener = null;
32
31
  window.removeEventListener('scroll', listener_1);
33
32
  }
@@ -48,7 +47,7 @@ function Image(props) {
48
47
  });
49
48
  return (<>
50
49
  <picture ref={pictureRef}>
51
- <mitosis_1.Show when={!state.useLazyLoading() || state.load}>
50
+ <mitosis_1.Show when={!state.useLazyLoading() || load}>
52
51
  <img alt={props.altText} aria-role={props.altText ? 'presentation' : undefined} css={{
53
52
  opacity: '1',
54
53
  transition: 'opacity 0.2s ease-in-out',
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  function ImgStateComponent() {
5
- var state = (0, mitosis_1.useState)({
5
+ var state = (0, mitosis_1.useStore)({
6
6
  canShow: true,
7
7
  images: ['http://example.com/qwik.png'],
8
8
  });
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  require("@builder.io/mitosis");
4
4
  var sdk_1 = require("@builder.io/sdk");
5
5
  function FormInputComponent(props) {
6
- return (<input {...props.attributes} key={sdk_1.Builder.isEditing && props.defaultValue
7
- ? props.defaultValue
8
- : 'default-key'} placeholder={props.placeholder} type={props.type} name={props.name} value={props.value} defaultValue={props.defaultValue} required={props.required}/>);
6
+ return (<input {...props.attributes} key={sdk_1.Builder.isEditing && props.defaultValue ? props.defaultValue : 'default-key'} placeholder={props.placeholder} type={props.type} name={props.name} value={props.value} defaultValue={props.defaultValue} required={props.required}/>);
9
7
  }
10
8
  exports.default = FormInputComponent;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  function MultipleOnUpdateWithDeps() {
5
- var state = (0, mitosis_1.useState)({
5
+ var state = (0, mitosis_1.useStore)({
6
6
  a: 'a',
7
7
  b: 'b',
8
8
  c: 'c',
@@ -10,9 +10,15 @@ function MultipleOnUpdateWithDeps() {
10
10
  });
11
11
  (0, mitosis_1.onUpdate)(function () {
12
12
  console.log('Runs when a or b changes', state.a, state.b);
13
+ if (state.a === 'a') {
14
+ state.a = 'b';
15
+ }
13
16
  }, [state.a, state.b]);
14
17
  (0, mitosis_1.onUpdate)(function () {
15
18
  console.log('Runs when c or d changes', state.c, state.d);
19
+ if (state.a === 'a') {
20
+ state.a = 'b';
21
+ }
16
22
  }, [state.c, state.d]);
17
23
  return <div />;
18
24
  }
@@ -1 +1,8 @@
1
- export default function OnInit(): JSX.Element;
1
+ declare type Props = {
2
+ name: string;
3
+ };
4
+ export declare const defaultValues: {
5
+ name: string;
6
+ };
7
+ export default function OnInit(props: Props): JSX.Element;
8
+ export {};
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultValues = void 0;
3
4
  var mitosis_1 = require("@builder.io/mitosis");
4
- function OnInit() {
5
+ exports.defaultValues = {
6
+ name: 'PatrickJS',
7
+ };
8
+ function OnInit(props) {
9
+ var state = (0, mitosis_1.useStore)({
10
+ // name: props.name
11
+ // name: defaultValues.name || props.name,
12
+ name: '',
13
+ });
5
14
  (0, mitosis_1.onInit)(function () {
6
- console.log('Runs once every update/rerender');
15
+ state.name = exports.defaultValues.name || props.name;
16
+ console.log('set defaults with props');
7
17
  });
8
- return <div />;
18
+ return <div>Default name defined by parent {state.name}</div>;
9
19
  }
10
20
  exports.default = OnInit;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  function OnUpdateWithDeps() {
5
- var state = (0, mitosis_1.useState)({
5
+ var state = (0, mitosis_1.useStore)({
6
6
  a: 'a',
7
7
  b: 'b',
8
8
  });
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  function SectionStateComponent(props) {
5
- var state = (0, mitosis_1.useState)({
5
+ var state = (0, mitosis_1.useStore)({
6
6
  max: 42,
7
7
  items: [42],
8
8
  });
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  var sdk_1 = require("@builder.io/sdk");
5
5
  function SelectComponent(props) {
6
- return (<select {...props.attributes} value={props.value} key={sdk_1.Builder.isEditing && props.defaultValue
7
- ? props.defaultValue
8
- : 'default-key'} defaultValue={props.defaultValue} name={props.name}>
6
+ return (<select {...props.attributes} value={props.value} key={sdk_1.Builder.isEditing && props.defaultValue ? props.defaultValue : 'default-key'} defaultValue={props.defaultValue} name={props.name}>
9
7
  <mitosis_1.For each={props.options}>
10
8
  {function (option, index) { return (<option value={option.value} data-index={index}>
11
9
  {option.name || option.value}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
4
  (0, mitosis_1.useMetadata)({ isAttachedToShadowDom: true });
5
5
  function SmileReviews(props) {
6
- var state = (0, mitosis_1.useState)({
6
+ var state = (0, mitosis_1.useStore)({
7
7
  reviews: [],
8
8
  name: 'test',
9
9
  showReviewPrompt: false,
@@ -17,9 +17,7 @@ function SmileReviews(props) {
17
17
  });
18
18
  });
19
19
  return (<div data-user={state.name}>
20
- <button onClick={function () { return (state.showReviewPrompt = true); }}>
21
- Write a review
22
- </button>
20
+ <button onClick={function () { return (state.showReviewPrompt = true); }}>Write a review</button>
23
21
  <mitosis_1.Show when={state.showReviewPrompt}>
24
22
  <input placeholder="Email"/>
25
23
 
@@ -4,7 +4,7 @@ var mitosis_1 = require("@builder.io/mitosis");
4
4
  var lodash_1 = require("lodash");
5
5
  var lodash_2 = require("lodash");
6
6
  function SmileReviews(props) {
7
- var state = (0, mitosis_1.useState)({
7
+ var state = (0, mitosis_1.useStore)({
8
8
  reviews: [],
9
9
  name: 'test',
10
10
  showReviewPrompt: false,
@@ -24,9 +24,7 @@ function SmileReviews(props) {
24
24
  });
25
25
  });
26
26
  return (<div data-user={state.name}>
27
- <button onClick={function () { return (state.showReviewPrompt = true); }}>
28
- Write a review
29
- </button>
27
+ <button onClick={function () { return (state.showReviewPrompt = true); }}>Write a review</button>
30
28
  <mitosis_1.Show when={state.showReviewPrompt}>
31
29
  <input placeholder="Email"/>
32
30
 
@@ -10,13 +10,10 @@ function Text(props) {
10
10
  !(((_b = (_a = props.builderBlock) === null || _a === void 0 ? void 0 : _a.bindings) === null || _b === void 0 ? void 0 : _b['component.options.text']) ||
11
11
  ((_d = (_c = props.builderBlock) === null || _c === void 0 ? void 0 : _c.bindings) === null || _d === void 0 ? void 0 : _d['options.text']) ||
12
12
  ((_f = (_e = props.builderBlock) === null || _e === void 0 ? void 0 : _e.bindings) === null || _f === void 0 ? void 0 : _f['text']));
13
- var state = (0, mitosis_1.useState)({ name: 'Decadef20' });
13
+ var state = (0, mitosis_1.useStore)({ name: 'Decadef20' });
14
14
  // TODO: Add back dynamic `direction` CSS prop when we add support for some
15
15
  // sort of dynamic CSS
16
16
  // css={{ direction: props.rtlMode ? 'rtl' : 'ltr' }}
17
- return (<div contentEditable={allowEditingText || undefined} data-name={{ test: state.name || 'any name' }} innerHTML={props.text ||
18
- props.content ||
19
- state.name ||
20
- '<p class="text-lg">my name</p>'}/>);
17
+ return (<div contentEditable={allowEditingText || undefined} data-name={{ test: state.name || 'any name' }} innerHTML={props.text || props.content || state.name || '<p class="text-lg">my name</p>'}/>);
21
18
  }
22
19
  exports.default = Text;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  function MyBasicComponent() {
4
- return (<div
5
- // @ts-ignore
6
- className="test" class="test2" css={{
4
+ return (<div className="test" class="test2" css={{
7
5
  padding: '10px',
8
6
  }}>
9
7
  Hello! I can run in React, Vue, Solid, or Liquid!
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  function MyBasicComponent() {
4
- return (<div
5
- // @ts-ignore
6
- className="test" css={{
4
+ return (<div className="test" css={{
7
5
  padding: '10px',
8
6
  }}>
9
7
  Hello! I can run in React, Vue, Solid, or Liquid!
@@ -0,0 +1 @@
1
+ export default function MyBasicComponent(): JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var mitosis_1 = require("@builder.io/mitosis");
4
+ function MyBasicComponent() {
5
+ var _a = (0, mitosis_1.useState)('testClassName'), classState = _a[0], setClassState = _a[1];
6
+ return (<div class={classState} css={{
7
+ padding: '10px',
8
+ }}>
9
+ Hello! I can run in React, Vue, Solid, or Liquid!
10
+ </div>);
11
+ }
12
+ exports.default = MyBasicComponent;
@@ -0,0 +1,6 @@
1
+ interface Person {
2
+ name: string;
3
+ age?: number;
4
+ }
5
+ export default function MyBasicComponent(props: Person | never): JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function MyBasicComponent(props) {
4
+ return <div>Hello! I can run in React, Vue, Solid, or Liquid! {props.name}</div>;
5
+ }
6
+ exports.default = MyBasicComponent;
@@ -0,0 +1,6 @@
1
+ declare type Person = {
2
+ name: string;
3
+ age?: number;
4
+ };
5
+ export default function MyBasicComponent(props: Person): JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function MyBasicComponent(props) {
4
+ return <div>Hello! I can run in React, Vue, Solid, or Liquid! {props.name}</div>;
5
+ }
6
+ exports.default = MyBasicComponent;
@@ -0,0 +1,8 @@
1
+ export declare type A = 'test';
2
+ export interface C {
3
+ n: 'test';
4
+ }
5
+ export default function MyBasicComponent(props: {
6
+ name: string;
7
+ age?: number;
8
+ }): JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function MyBasicComponent(props) {
4
+ return <div>Hello! I can run in React, Vue, Solid, or Liquid! {props.name}</div>;
5
+ }
6
+ exports.default = MyBasicComponent;
@@ -1,150 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var html_1 = require("../generators/html");
4
- var jsx_1 = require("../parsers/jsx");
5
- var basic = require('./data/basic.raw');
6
- var basicFor = require('./data/basic-for.raw');
7
- var className = require('./data/blocks/classname-jsx.raw');
8
- var submitButtonBlock = require('./data/blocks/submit-button.raw');
9
- var inputBlock = require('./data/blocks/input.raw');
10
- var selectBlock = require('./data/blocks/select.raw');
11
- // const formBlock = require('./data/blocks/form.raw');
12
- var button = require('./data/blocks/button.raw');
13
- var textarea = require('./data/blocks/textarea.raw');
14
- var img = require('./data/blocks/img.raw');
15
- var video = require('./data/blocks/video.raw');
16
- var section = require('./data/blocks/section.raw');
17
- var sectionState = require('./data/blocks/section-state.raw');
18
- var text = require('./data/blocks/text.raw');
19
- var image = require('./data/blocks/image.raw');
20
- var imageState = require('./data/blocks/img-state.raw');
21
- var columns = require('./data/blocks/columns.raw');
22
- var onUpdate = require('./data/blocks/onUpdate.raw');
23
- var onUpdateWithDeps = require('./data/blocks/onUpdateWithDeps.raw');
24
- var multipleOnUpdate = require('./data/blocks/multiple-onUpdate.raw');
25
- var multipleOnUpdateWithDeps = require('./data/blocks/multiple-onUpdateWithDeps.raw');
26
- var onMount = require('./data/blocks/onMount.raw');
27
- var stamped = require('./data/blocks/stamped-io.raw');
28
- var shadowDom = require('./data/blocks/shadow-dom.raw');
4
+ var shared_1 = require("./shared");
29
5
  describe('Html', function () {
30
- test('className', function () {
31
- var component = (0, jsx_1.parseJsx)(className);
32
- var output = (0, html_1.componentToHtml)()({ component: component });
33
- expect(output).toMatchSnapshot();
34
- });
35
- test('Basic', function () {
36
- var component = (0, jsx_1.parseJsx)(basic);
37
- var output = (0, html_1.componentToHtml)()({ component: component });
38
- expect(output).toMatchSnapshot();
39
- });
40
- test('BasicFor', function () {
41
- var component = (0, jsx_1.parseJsx)(basicFor);
42
- var output = (0, html_1.componentToHtml)()({ component: component });
43
- expect(output).toMatchSnapshot();
44
- });
45
- test('Input block', function () {
46
- var component = (0, jsx_1.parseJsx)(inputBlock);
47
- var output = (0, html_1.componentToHtml)()({ component: component });
48
- expect(output).toMatchSnapshot();
49
- });
50
- test('Submit button block', function () {
51
- var component = (0, jsx_1.parseJsx)(submitButtonBlock);
52
- var output = (0, html_1.componentToHtml)()({ component: component });
53
- expect(output).toMatchSnapshot();
54
- });
55
- test('Select block', function () {
56
- var component = (0, jsx_1.parseJsx)(selectBlock);
57
- var output = (0, html_1.componentToHtml)()({ component: component });
58
- expect(output).toMatchSnapshot();
59
- });
60
- // test('Form block', () => {
61
- // const component = parseJsx(formBlock);
62
- // const output = componentToHtml()({ component });
63
- // expect(output).toMatchSnapshot();
64
- // });
65
- test('Button', function () {
66
- var component = (0, jsx_1.parseJsx)(button);
67
- var output = (0, html_1.componentToHtml)()({ component: component });
68
- expect(output).toMatchSnapshot();
69
- });
70
- test('Textarea', function () {
71
- var component = (0, jsx_1.parseJsx)(textarea);
72
- var output = (0, html_1.componentToHtml)()({ component: component });
73
- expect(output).toMatchSnapshot();
74
- });
75
- test('Img', function () {
76
- var component = (0, jsx_1.parseJsx)(img);
77
- var output = (0, html_1.componentToHtml)()({ component: component });
78
- expect(output).toMatchSnapshot();
79
- });
80
- test('ImageState', function () {
81
- var component = (0, jsx_1.parseJsx)(imageState);
82
- var output = (0, html_1.componentToHtml)()({ component: component });
83
- expect(output).toMatchSnapshot();
84
- });
85
- test('Video', function () {
86
- var component = (0, jsx_1.parseJsx)(video);
87
- var output = (0, html_1.componentToHtml)()({ component: component });
88
- expect(output).toMatchSnapshot();
89
- });
90
- test('Section', function () {
91
- var component = (0, jsx_1.parseJsx)(section);
92
- var output = (0, html_1.componentToHtml)()({ component: component });
93
- expect(output).toMatchSnapshot();
94
- });
95
- test('SectionState', function () {
96
- var component = (0, jsx_1.parseJsx)(sectionState);
97
- var output = (0, html_1.componentToHtml)()({ component: component });
98
- expect(output).toMatchSnapshot();
99
- });
100
- test('Text', function () {
101
- var component = (0, jsx_1.parseJsx)(text);
102
- var output = (0, html_1.componentToHtml)()({ component: component });
103
- expect(output).toMatchSnapshot();
104
- });
105
- test('Image', function () {
106
- var component = (0, jsx_1.parseJsx)(image);
107
- var output = (0, html_1.componentToHtml)()({ component: component });
108
- expect(output).toMatchSnapshot();
109
- });
110
- test('Columns', function () {
111
- var component = (0, jsx_1.parseJsx)(columns);
112
- var output = (0, html_1.componentToHtml)()({ component: component });
113
- expect(output).toMatchSnapshot();
114
- });
115
- test('onUpdate', function () {
116
- var component = (0, jsx_1.parseJsx)(onUpdate);
117
- var output = (0, html_1.componentToHtml)()({ component: component });
118
- expect(output).toMatchSnapshot();
119
- });
120
- test('onUpdateWithDeps', function () {
121
- var component = (0, jsx_1.parseJsx)(onUpdateWithDeps);
122
- var output = (0, html_1.componentToHtml)()({ component: component });
123
- expect(output).toMatchSnapshot();
124
- });
125
- test('multipleOnUpdate', function () {
126
- var component = (0, jsx_1.parseJsx)(multipleOnUpdate);
127
- var output = (0, html_1.componentToHtml)()({ component: component });
128
- expect(output).toMatchSnapshot();
129
- });
130
- test('multipleOnnUpdateWithDeps', function () {
131
- var component = (0, jsx_1.parseJsx)(multipleOnUpdateWithDeps);
132
- var output = (0, html_1.componentToHtml)()({ component: component });
133
- expect(output).toMatchSnapshot();
134
- });
135
- test('onMount & onUnMount', function () {
136
- var component = (0, jsx_1.parseJsx)(onMount);
137
- var output = (0, html_1.componentToHtml)()({ component: component });
138
- expect(output).toMatchSnapshot();
139
- });
140
- test('Stamped', function () {
141
- var component = (0, jsx_1.parseJsx)(stamped);
142
- var html = (0, html_1.componentToHtml)()({ component: component });
143
- expect(html).toMatchSnapshot();
144
- });
145
- test('Shadow DOM', function () {
146
- var component = (0, jsx_1.parseJsx)(shadowDom);
147
- var html = (0, html_1.componentToHtml)()({ component: component });
148
- expect(html).toMatchSnapshot();
149
- });
6
+ (0, shared_1.runTestsForTarget)('html', (0, html_1.componentToHtml)());
150
7
  });
@@ -1,114 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var liquid_1 = require("../generators/liquid");
4
- var jsx_1 = require("../parsers/jsx");
5
- var basic = require('./data/basic.raw');
6
- var submitButtonBlock = require('./data/blocks/submit-button.raw');
7
- var inputBlock = require('./data/blocks/input.raw');
8
- var selectBlock = require('./data/blocks/select.raw');
9
- var formBlock = require('./data/blocks/form.raw');
10
- var button = require('./data/blocks/button.raw');
11
- var textarea = require('./data/blocks/textarea.raw');
12
- var img = require('./data/blocks/img.raw');
13
- var video = require('./data/blocks/video.raw');
14
- var section = require('./data/blocks/section.raw');
15
- var text = require('./data/blocks/text.raw');
16
- var rawText = require('./data/blocks/raw-text.raw');
17
- var customCode = require('./data/blocks/custom-code.raw');
18
- var stamped = require('./data/blocks/stamped-io.raw');
19
- var embed = require('./data/blocks/embed.raw');
20
- var image = require('./data/blocks/image.raw');
21
- var columns = require('./data/blocks/columns.raw');
22
- var classNameJsx = require('./data/blocks/classname-jsx.raw');
4
+ var shared_1 = require("./shared");
23
5
  describe('Liquid', function () {
24
- test('Basic', function () {
25
- var component = (0, jsx_1.parseJsx)(basic);
26
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
27
- expect(output).toMatchSnapshot();
28
- });
29
- test('Input block', function () {
30
- var component = (0, jsx_1.parseJsx)(inputBlock);
31
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
32
- expect(output).toMatchSnapshot();
33
- });
34
- test('Submit button block', function () {
35
- var component = (0, jsx_1.parseJsx)(submitButtonBlock);
36
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
37
- expect(output).toMatchSnapshot();
38
- });
39
- test('Select block', function () {
40
- var component = (0, jsx_1.parseJsx)(selectBlock);
41
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
42
- expect(output).toMatchSnapshot();
43
- });
44
- test('Form block', function () {
45
- var component = (0, jsx_1.parseJsx)(formBlock);
46
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
47
- expect(output).toMatchSnapshot();
48
- });
49
- test('Button', function () {
50
- var component = (0, jsx_1.parseJsx)(button);
51
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
52
- expect(output).toMatchSnapshot();
53
- });
54
- test('Textarea', function () {
55
- var component = (0, jsx_1.parseJsx)(textarea);
56
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
57
- expect(output).toMatchSnapshot();
58
- });
59
- test('Img', function () {
60
- var component = (0, jsx_1.parseJsx)(img);
61
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
62
- expect(output).toMatchSnapshot();
63
- });
64
- test('Video', function () {
65
- var component = (0, jsx_1.parseJsx)(video);
66
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
67
- expect(output).toMatchSnapshot();
68
- });
69
- test('Section', function () {
70
- var component = (0, jsx_1.parseJsx)(section);
71
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
72
- expect(output).toMatchSnapshot();
73
- });
74
- test('Text', function () {
75
- var component = (0, jsx_1.parseJsx)(text);
76
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
77
- expect(output).toMatchSnapshot();
78
- });
79
- test('RawText', function () {
80
- var component = (0, jsx_1.parseJsx)(rawText);
81
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
82
- expect(output).toMatchSnapshot();
83
- });
84
- test('Stamped.io', function () {
85
- var component = (0, jsx_1.parseJsx)(stamped);
86
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
87
- expect(output).toMatchSnapshot();
88
- });
89
- test('CustomCode', function () {
90
- var component = (0, jsx_1.parseJsx)(customCode);
91
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
92
- expect(output).toMatchSnapshot();
93
- });
94
- test('Embed', function () {
95
- var component = (0, jsx_1.parseJsx)(customCode);
96
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
97
- expect(output).toMatchSnapshot();
98
- });
99
- test('Image', function () {
100
- var component = (0, jsx_1.parseJsx)(image);
101
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
102
- expect(output).toMatchSnapshot();
103
- });
104
- test('Columns', function () {
105
- var component = (0, jsx_1.parseJsx)(columns);
106
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
107
- expect(output).toMatchSnapshot();
108
- });
109
- test('ClassName', function () {
110
- var component = (0, jsx_1.parseJsx)(classNameJsx);
111
- var output = (0, liquid_1.componentToLiquid)()({ component: component });
112
- expect(output).toMatchSnapshot();
113
- });
6
+ (0, shared_1.runTestsForTarget)('liquid', (0, liquid_1.componentToLiquid)());
114
7
  });