@builder.io/mitosis 0.0.56-1 → 0.0.56-101

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 (394) hide show
  1. package/dist/src/__tests__/angular.test.js +5 -13
  2. package/dist/src/__tests__/builder.test.js +3 -3
  3. package/dist/src/__tests__/data/advanced-ref.raw.d.ts +4 -0
  4. package/dist/src/__tests__/data/advanced-ref.raw.jsx +39 -0
  5. package/dist/src/__tests__/data/basic-child-component.raw.d.ts +1 -0
  6. package/dist/src/__tests__/data/basic-child-component.raw.jsx +21 -0
  7. package/dist/src/__tests__/data/basic-context.raw.d.ts +1 -0
  8. package/dist/src/__tests__/data/basic-context.raw.jsx +29 -0
  9. package/dist/src/__tests__/data/basic-custom-mitosis-package.raw.d.ts +1 -0
  10. package/dist/src/__tests__/data/basic-custom-mitosis-package.raw.jsx +10 -0
  11. package/dist/src/__tests__/data/basic-for-show.raw.d.ts +1 -0
  12. package/dist/src/__tests__/data/basic-for-show.raw.jsx +20 -0
  13. package/dist/src/__tests__/data/basic-for.raw.d.ts +1 -0
  14. package/dist/src/__tests__/data/basic-for.raw.jsx +23 -0
  15. package/dist/src/__tests__/data/basic-forwardRef-metadata.raw.d.ts +5 -0
  16. package/dist/src/__tests__/data/basic-forwardRef-metadata.raw.jsx +17 -0
  17. package/dist/src/__tests__/data/basic-forwardRef.raw.d.ts +5 -0
  18. package/dist/src/__tests__/data/basic-forwardRef.raw.jsx +14 -0
  19. package/dist/src/__tests__/data/basic-onChange.raw.d.ts +1 -0
  20. package/dist/src/__tests__/data/basic-onChange.raw.jsx +17 -0
  21. package/dist/src/__tests__/data/basic-onMount-update.raw.d.ts +5 -0
  22. package/dist/src/__tests__/data/basic-onMount-update.raw.jsx +17 -0
  23. package/dist/src/__tests__/data/basic-onUpdate-return.raw.d.ts +1 -0
  24. package/dist/src/__tests__/data/basic-onUpdate-return.raw.jsx +24 -0
  25. package/dist/src/__tests__/data/basic-outputs-meta.raw.d.ts +1 -0
  26. package/dist/src/__tests__/data/basic-outputs-meta.raw.jsx +17 -0
  27. package/dist/src/__tests__/data/basic-outputs.raw.d.ts +1 -0
  28. package/dist/src/__tests__/data/basic-outputs.raw.jsx +14 -0
  29. package/dist/src/__tests__/data/basic-preserve-export-or-local-statement.raw.d.ts +6 -0
  30. package/dist/src/__tests__/data/basic-preserve-export-or-local-statement.raw.jsx +14 -0
  31. package/dist/src/__tests__/data/basic-props-destructure.raw.d.ts +6 -0
  32. package/dist/src/__tests__/data/basic-props-destructure.raw.jsx +14 -0
  33. package/dist/src/__tests__/data/basic-props.raw.d.ts +6 -0
  34. package/dist/src/__tests__/data/basic-props.raw.jsx +13 -0
  35. package/dist/src/__tests__/data/basic-ref-assignment.raw.d.ts +4 -0
  36. package/dist/src/__tests__/data/basic-ref-assignment.raw.jsx +15 -0
  37. package/dist/src/__tests__/data/basic-ref-usePrevious.raw.d.ts +5 -0
  38. package/dist/src/__tests__/data/basic-ref-usePrevious.raw.jsx +35 -0
  39. package/dist/src/__tests__/data/basic-ref.raw.d.ts +4 -0
  40. package/dist/src/__tests__/data/basic-ref.raw.jsx +36 -0
  41. package/dist/src/__tests__/data/basic.raw.d.ts +6 -1
  42. package/dist/src/__tests__/data/basic.raw.jsx +13 -4
  43. package/dist/src/__tests__/data/blocks/button-with-metadata.raw.d.ts +1 -1
  44. package/dist/src/__tests__/data/blocks/button.raw.d.ts +1 -1
  45. package/dist/src/__tests__/data/blocks/classname-jsx.raw.d.ts +7 -0
  46. package/dist/src/__tests__/data/blocks/classname-jsx.raw.jsx +15 -0
  47. package/dist/src/__tests__/data/blocks/columns.raw.d.ts +1 -1
  48. package/dist/src/__tests__/data/blocks/columns.raw.jsx +1 -1
  49. package/dist/src/__tests__/data/blocks/content-slot-html.raw.d.ts +7 -0
  50. package/dist/src/__tests__/data/blocks/content-slot-html.raw.jsx +15 -0
  51. package/dist/src/__tests__/data/blocks/content-slot-jsx.raw.d.ts +6 -0
  52. package/dist/src/__tests__/data/blocks/content-slot-jsx.raw.jsx +12 -0
  53. package/dist/src/__tests__/data/blocks/custom-code.raw.d.ts +1 -1
  54. package/dist/src/__tests__/data/blocks/custom-code.raw.jsx +3 -7
  55. package/dist/src/__tests__/data/blocks/embed.raw.d.ts +1 -1
  56. package/dist/src/__tests__/data/blocks/embed.raw.jsx +3 -7
  57. package/dist/src/__tests__/data/blocks/form.raw.d.ts +1 -1
  58. package/dist/src/__tests__/data/blocks/form.raw.jsx +8 -8
  59. package/dist/src/__tests__/data/blocks/image.raw.d.ts +2 -2
  60. package/dist/src/__tests__/data/blocks/image.raw.jsx +9 -10
  61. package/dist/src/__tests__/data/blocks/img-state.raw.d.ts +1 -0
  62. package/dist/src/__tests__/data/blocks/img-state.raw.jsx +17 -0
  63. package/dist/src/__tests__/data/blocks/img.raw.d.ts +1 -1
  64. package/dist/src/__tests__/data/blocks/input.raw.d.ts +1 -1
  65. package/dist/src/__tests__/data/blocks/input.raw.jsx +1 -3
  66. package/dist/src/__tests__/data/blocks/multiple-onUpdate.raw.d.ts +1 -1
  67. package/dist/src/__tests__/data/blocks/multiple-onUpdateWithDeps.raw.d.ts +1 -1
  68. package/dist/src/__tests__/data/blocks/multiple-onUpdateWithDeps.raw.jsx +7 -1
  69. package/dist/src/__tests__/data/blocks/onInit-onMount.raw.d.ts +1 -0
  70. package/dist/src/__tests__/data/blocks/onInit-onMount.raw.jsx +13 -0
  71. package/dist/src/__tests__/data/blocks/onInit.raw.d.ts +8 -0
  72. package/dist/src/__tests__/data/blocks/onInit.raw.jsx +20 -0
  73. package/dist/src/__tests__/data/blocks/onMount.raw.d.ts +1 -1
  74. package/dist/src/__tests__/data/blocks/onUpdate.raw.d.ts +1 -1
  75. package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.d.ts +1 -1
  76. package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.jsx +1 -1
  77. package/dist/src/__tests__/data/blocks/raw-text.raw.d.ts +1 -1
  78. package/dist/src/__tests__/data/blocks/rootShow.raw.d.ts +1 -1
  79. package/dist/src/__tests__/data/blocks/section-state.raw.d.ts +6 -0
  80. package/dist/src/__tests__/data/blocks/section-state.raw.jsx +17 -0
  81. package/dist/src/__tests__/data/blocks/section.raw.d.ts +1 -1
  82. package/dist/src/__tests__/data/blocks/select.raw.d.ts +1 -1
  83. package/dist/src/__tests__/data/blocks/select.raw.jsx +1 -3
  84. package/dist/src/__tests__/data/blocks/self-referencing-component-with-children.raw.d.ts +1 -1
  85. package/dist/src/__tests__/data/blocks/self-referencing-component.raw.d.ts +1 -1
  86. package/dist/src/__tests__/data/blocks/shadow-dom.raw.d.ts +1 -1
  87. package/dist/src/__tests__/data/blocks/shadow-dom.raw.jsx +2 -4
  88. package/dist/src/__tests__/data/blocks/slot-html.raw.d.ts +5 -0
  89. package/dist/src/__tests__/data/blocks/slot-html.raw.jsx +15 -0
  90. package/dist/src/__tests__/data/blocks/slot-jsx.raw.d.ts +5 -0
  91. package/dist/src/__tests__/data/blocks/slot-jsx.raw.jsx +12 -0
  92. package/dist/src/__tests__/data/blocks/stamped-io.raw.d.ts +1 -1
  93. package/dist/src/__tests__/data/blocks/stamped-io.raw.jsx +4 -5
  94. package/dist/src/__tests__/data/blocks/submit-button.raw.d.ts +1 -1
  95. package/dist/src/__tests__/data/blocks/text.raw.d.ts +1 -1
  96. package/dist/src/__tests__/data/blocks/text.raw.jsx +3 -1
  97. package/dist/src/__tests__/data/blocks/textarea.raw.d.ts +1 -1
  98. package/dist/src/__tests__/data/blocks/video.raw.d.ts +1 -1
  99. package/dist/src/__tests__/data/blocks/video.raw.jsx +1 -1
  100. package/dist/src/__tests__/data/context/component-with-context.lite.d.ts +3 -1
  101. package/dist/src/__tests__/data/context/component-with-context.lite.jsx +7 -2
  102. package/dist/src/__tests__/data/default-props/default-props.raw.d.ts +7 -0
  103. package/dist/src/__tests__/data/default-props/default-props.raw.jsx +23 -0
  104. package/dist/src/__tests__/data/jsx-json.spec.d.ts +2 -0
  105. package/dist/src/__tests__/data/jsx-json.spec.js +10226 -0
  106. package/dist/src/__tests__/data/nested-styles.lite.d.ts +1 -0
  107. package/dist/src/__tests__/data/nested-styles.lite.jsx +20 -0
  108. package/dist/src/__tests__/data/show/nested-show.raw.d.ts +6 -0
  109. package/dist/src/__tests__/data/show/nested-show.raw.jsx +11 -0
  110. package/dist/src/__tests__/data/show/show-with-for.raw.d.ts +6 -0
  111. package/dist/src/__tests__/data/show/show-with-for.raw.jsx +9 -0
  112. package/dist/src/__tests__/data/styles/class-and-className.raw.d.ts +1 -0
  113. package/dist/src/__tests__/data/styles/class-and-className.raw.jsx +10 -0
  114. package/dist/src/__tests__/data/styles/class.raw.d.ts +1 -0
  115. package/dist/src/__tests__/data/styles/class.raw.jsx +10 -0
  116. package/dist/src/__tests__/data/styles/className.raw.d.ts +1 -0
  117. package/dist/src/__tests__/data/styles/className.raw.jsx +10 -0
  118. package/dist/src/__tests__/data/styles/classState.raw.d.ts +1 -0
  119. package/dist/src/__tests__/data/styles/classState.raw.jsx +13 -0
  120. package/dist/src/__tests__/data/types/component-props-interface.raw.d.ts +6 -0
  121. package/dist/src/__tests__/data/types/component-props-interface.raw.jsx +6 -0
  122. package/dist/src/__tests__/data/types/component-props-type.raw.d.ts +6 -0
  123. package/dist/src/__tests__/data/types/component-props-type.raw.jsx +6 -0
  124. package/dist/src/__tests__/data/types/component-with-default-values-types.raw.d.ts +5 -0
  125. package/dist/src/__tests__/data/types/component-with-default-values-types.raw.jsx +9 -0
  126. package/dist/src/__tests__/data/types/foo-type.d.ts +1 -0
  127. package/dist/src/{jsx-types.js → __tests__/data/types/foo-type.js} +0 -0
  128. package/dist/src/__tests__/data/types/preserve-typing.raw.d.ts +8 -0
  129. package/dist/src/__tests__/data/types/preserve-typing.raw.jsx +6 -0
  130. package/dist/src/__tests__/data/types/type-dependency.raw.d.ts +7 -0
  131. package/dist/src/__tests__/data/types/type-dependency.raw.jsx +6 -0
  132. package/dist/src/__tests__/data/types/type-export.lite.d.ts +3 -0
  133. package/dist/src/__tests__/data/types/type-export.lite.jsx +6 -0
  134. package/dist/src/__tests__/hash-code.test.d.ts +1 -0
  135. package/dist/src/__tests__/hash-code.test.js +11 -0
  136. package/dist/src/__tests__/html.test.js +2 -13
  137. package/dist/src/__tests__/liquid.test.js +2 -103
  138. package/dist/src/__tests__/lit.test.d.ts +1 -0
  139. package/dist/src/__tests__/lit.test.js +7 -0
  140. package/dist/src/__tests__/marko.test.d.ts +1 -0
  141. package/dist/src/__tests__/marko.test.js +14 -0
  142. package/dist/src/__tests__/parse-jsx.test.js +28 -0
  143. package/dist/src/__tests__/qwik/convert-method-to-function.test.d.ts +1 -0
  144. package/dist/src/__tests__/qwik/convert-method-to-function.test.js +37 -0
  145. package/dist/src/__tests__/qwik/src-generator.test.d.ts +1 -0
  146. package/dist/src/__tests__/qwik/src-generator.test.js +65 -0
  147. package/dist/src/__tests__/qwik.directive.test.js +1 -0
  148. package/dist/src/__tests__/qwik.test.js +54 -23
  149. package/dist/src/__tests__/react-native.test.js +3 -136
  150. package/dist/src/__tests__/react.test.js +9 -136
  151. package/dist/src/__tests__/shared.d.ts +3 -0
  152. package/dist/src/__tests__/shared.js +308 -0
  153. package/dist/src/__tests__/solid.test.js +5 -97
  154. package/dist/src/__tests__/stencil.test.js +3 -98
  155. package/dist/src/__tests__/styles.test.d.ts +1 -0
  156. package/dist/src/__tests__/styles.test.js +23 -0
  157. package/dist/src/__tests__/svelte.test.js +2 -31
  158. package/dist/src/__tests__/vue.test.js +2 -134
  159. package/dist/src/__tests__/webcomponent.test.js +8 -5
  160. package/dist/src/constants/hooks.d.ts +7 -0
  161. package/dist/src/constants/hooks.js +10 -0
  162. package/dist/src/flow.d.ts +6 -0
  163. package/dist/src/flow.js +6 -2
  164. package/dist/src/generators/angular.d.ts +10 -2
  165. package/dist/src/generators/angular.js +245 -47
  166. package/dist/src/generators/builder.d.ts +2 -2
  167. package/dist/src/generators/builder.js +26 -29
  168. package/dist/src/generators/context/{react copy.d.ts → qwik.d.ts} +2 -2
  169. package/dist/src/generators/context/{react copy.js → qwik.js} +4 -5
  170. package/dist/src/generators/context/react.js +1 -1
  171. package/dist/src/generators/context/solid.js +1 -1
  172. package/dist/src/generators/context/svelte.d.ts +1 -1
  173. package/dist/src/generators/context/svelte.js +1 -1
  174. package/dist/src/generators/helpers/context.js +1 -2
  175. package/dist/src/generators/html.d.ts +1 -1
  176. package/dist/src/generators/html.js +365 -108
  177. package/dist/src/generators/liquid.d.ts +1 -1
  178. package/dist/src/generators/liquid.js +18 -25
  179. package/dist/src/generators/lit/collect-class-string.d.ts +2 -0
  180. package/dist/src/generators/lit/collect-class-string.js +43 -0
  181. package/dist/src/generators/lit/generate.d.ts +5 -0
  182. package/dist/src/generators/lit/generate.js +223 -0
  183. package/dist/src/generators/lit/index.d.ts +1 -0
  184. package/dist/src/generators/lit/index.js +17 -0
  185. package/dist/src/generators/marko/generate.d.ts +21 -0
  186. package/dist/src/generators/marko/generate.js +289 -0
  187. package/dist/src/generators/marko/index.d.ts +1 -0
  188. package/dist/src/generators/marko/index.js +17 -0
  189. package/dist/src/generators/mitosis.d.ts +1 -1
  190. package/dist/src/generators/mitosis.js +39 -34
  191. package/dist/src/generators/qwik/add-prevent-default.d.ts +7 -0
  192. package/dist/src/generators/qwik/add-prevent-default.js +32 -0
  193. package/dist/src/generators/qwik/component-generator.d.ts +4 -0
  194. package/dist/src/generators/qwik/component-generator.js +311 -0
  195. package/dist/src/generators/qwik/component.d.ts +1 -0
  196. package/dist/src/generators/qwik/component.js +68 -36
  197. package/dist/src/generators/qwik/convert-method-to-function.d.ts +1 -0
  198. package/dist/src/generators/qwik/convert-method-to-function.js +162 -0
  199. package/dist/src/generators/qwik/directives.js +43 -23
  200. package/dist/src/generators/qwik/handlers.js +6 -22
  201. package/dist/src/generators/qwik/index.d.ts +3 -1
  202. package/dist/src/generators/qwik/index.js +3 -1
  203. package/dist/src/generators/qwik/jsx.d.ts +12 -0
  204. package/dist/src/generators/qwik/jsx.js +81 -24
  205. package/dist/src/generators/qwik/src-generator.d.ts +21 -8
  206. package/dist/src/generators/qwik/src-generator.js +177 -43
  207. package/dist/src/generators/qwik/styles.js +3 -3
  208. package/dist/src/generators/react/generator.d.ts +6 -0
  209. package/dist/src/generators/react/generator.js +447 -0
  210. package/dist/src/generators/react/helpers.d.ts +2 -0
  211. package/dist/src/generators/react/helpers.js +14 -0
  212. package/dist/src/generators/react/index.d.ts +2 -0
  213. package/dist/src/generators/react/index.js +18 -0
  214. package/dist/src/generators/react/state.d.ts +9 -0
  215. package/dist/src/generators/react/state.js +109 -0
  216. package/dist/src/generators/react/types.d.ts +10 -0
  217. package/dist/src/generators/react/types.js +2 -0
  218. package/dist/src/generators/react-native.d.ts +2 -2
  219. package/dist/src/generators/react-native.js +8 -10
  220. package/dist/src/generators/react.d.ts +7 -3
  221. package/dist/src/generators/react.js +190 -92
  222. package/dist/src/generators/solid/index.d.ts +3 -0
  223. package/dist/src/generators/solid/index.js +345 -0
  224. package/dist/src/generators/solid/state.d.ts +19 -0
  225. package/dist/src/generators/solid/state.js +144 -0
  226. package/dist/src/generators/solid/types.d.ts +6 -0
  227. package/dist/src/generators/solid/types.js +2 -0
  228. package/dist/src/generators/solid.d.ts +3 -2
  229. package/dist/src/generators/solid.js +86 -50
  230. package/dist/src/generators/stencil/collect-class-string.d.ts +1 -1
  231. package/dist/src/generators/stencil/collect-class-string.js +10 -11
  232. package/dist/src/generators/stencil/generate.d.ts +1 -1
  233. package/dist/src/generators/stencil/generate.js +16 -31
  234. package/dist/src/generators/svelte.d.ts +2 -2
  235. package/dist/src/generators/svelte.js +160 -88
  236. package/dist/src/generators/swift-ui.d.ts +1 -1
  237. package/dist/src/generators/swift-ui.js +19 -20
  238. package/dist/src/generators/template.d.ts +1 -1
  239. package/dist/src/generators/template.js +11 -18
  240. package/dist/src/generators/vue.d.ts +17 -9
  241. package/dist/src/generators/vue.js +227 -106
  242. package/dist/src/helpers/babel-transform.js +8 -14
  243. package/dist/src/helpers/create-mitosis-component.d.ts +1 -1
  244. package/dist/src/helpers/create-mitosis-component.js +1 -1
  245. package/dist/src/helpers/create-mitosis-node.js +1 -1
  246. package/dist/src/helpers/fast-clone.js +1 -3
  247. package/dist/src/helpers/filter-empty-text-nodes.js +1 -2
  248. package/dist/src/helpers/get-bindings.d.ts +2 -0
  249. package/dist/src/helpers/get-bindings.js +18 -0
  250. package/dist/src/helpers/get-custom-imports.d.ts +15 -0
  251. package/dist/src/helpers/get-custom-imports.js +40 -0
  252. package/dist/src/helpers/get-prop-functions.d.ts +5 -0
  253. package/dist/src/helpers/get-prop-functions.js +29 -0
  254. package/dist/src/helpers/get-props-ref.d.ts +2 -0
  255. package/dist/src/helpers/get-props-ref.js +32 -0
  256. package/dist/src/helpers/get-refs.js +3 -2
  257. package/dist/src/helpers/get-state-object-string.d.ts +6 -4
  258. package/dist/src/helpers/get-state-object-string.js +37 -27
  259. package/dist/src/helpers/get-styles.js +4 -3
  260. package/dist/src/helpers/getters-to-functions.d.ts +1 -1
  261. package/dist/src/helpers/getters-to-functions.js +3 -2
  262. package/dist/src/helpers/handle-missing-state.js +1 -1
  263. package/dist/src/helpers/has-bindings-text.d.ts +2 -0
  264. package/dist/src/helpers/has-bindings-text.js +21 -0
  265. package/dist/src/helpers/has-stateful-dom.d.ts +2 -0
  266. package/dist/src/helpers/has-stateful-dom.js +21 -0
  267. package/dist/src/helpers/has.d.ts +9 -0
  268. package/dist/src/helpers/has.js +27 -0
  269. package/dist/src/helpers/is-children.js +3 -1
  270. package/dist/src/helpers/is-component.js +1 -3
  271. package/dist/src/helpers/is-html-attribute.d.ts +4 -0
  272. package/dist/src/helpers/is-html-attribute.js +380 -0
  273. package/dist/src/helpers/json.d.ts +3 -1
  274. package/dist/src/helpers/map-refs.js +39 -14
  275. package/dist/src/helpers/nullable.d.ts +3 -0
  276. package/dist/src/helpers/nullable.js +7 -0
  277. package/dist/src/helpers/parsers.js +1 -2
  278. package/dist/src/helpers/process-http-requests.js +1 -1
  279. package/dist/src/helpers/render-imports.d.ts +20 -2
  280. package/dist/src/helpers/render-imports.js +115 -54
  281. package/dist/src/helpers/render-imports.test.d.ts +1 -0
  282. package/dist/src/helpers/render-imports.test.js +33 -0
  283. package/dist/src/helpers/replace-idenifiers.js +5 -7
  284. package/dist/src/helpers/slots.d.ts +2 -0
  285. package/dist/src/helpers/slots.js +8 -0
  286. package/dist/src/helpers/state.d.ts +11 -0
  287. package/dist/src/helpers/state.js +43 -0
  288. package/dist/src/helpers/strip-state-and-props-refs.d.ts +6 -1
  289. package/dist/src/helpers/strip-state-and-props-refs.js +70 -15
  290. package/dist/src/helpers/styles/collect-css.d.ts +6 -0
  291. package/dist/src/helpers/styles/collect-css.js +87 -0
  292. package/dist/src/helpers/styles/collect-css.test.d.ts +1 -0
  293. package/dist/src/helpers/styles/collect-css.test.js +18 -0
  294. package/dist/src/helpers/styles/collect-styled-components.d.ts +2 -0
  295. package/dist/src/helpers/styles/collect-styled-components.js +61 -0
  296. package/dist/src/helpers/styles/helpers.d.ts +31 -0
  297. package/dist/src/helpers/styles/helpers.js +80 -0
  298. package/dist/src/helpers/typescript.d.ts +5 -0
  299. package/dist/src/helpers/typescript.js +2 -0
  300. package/dist/src/index.d.ts +12 -4
  301. package/dist/src/index.js +28 -8
  302. package/dist/src/modules/plugins.d.ts +1 -1
  303. package/dist/src/parsers/angular.js +22 -34
  304. package/dist/src/parsers/builder.d.ts +32 -29
  305. package/dist/src/parsers/builder.js +99 -85
  306. package/dist/src/parsers/jsx/ast.d.ts +3 -0
  307. package/dist/src/parsers/jsx/ast.js +74 -0
  308. package/dist/src/parsers/jsx/component-types.d.ts +6 -0
  309. package/dist/src/parsers/jsx/component-types.js +88 -0
  310. package/dist/src/parsers/jsx/context.d.ts +6 -0
  311. package/dist/src/parsers/jsx/context.js +68 -0
  312. package/dist/src/parsers/jsx/helpers.d.ts +3 -0
  313. package/dist/src/parsers/jsx/helpers.js +36 -0
  314. package/dist/src/parsers/jsx/index.d.ts +4 -0
  315. package/dist/src/parsers/jsx/index.js +25 -0
  316. package/dist/src/parsers/jsx/jsx.d.ts +10 -0
  317. package/dist/src/parsers/{jsx.js → jsx/jsx.js} +258 -330
  318. package/dist/src/parsers/jsx/metadata.d.ts +12 -0
  319. package/dist/src/parsers/jsx/metadata.js +70 -0
  320. package/dist/src/parsers/jsx/props.d.ts +2 -0
  321. package/dist/src/parsers/jsx/props.js +72 -0
  322. package/dist/src/parsers/jsx/state.d.ts +13 -0
  323. package/dist/src/parsers/jsx/state.js +161 -0
  324. package/dist/src/parsers/jsx/types.d.ts +11 -0
  325. package/dist/src/parsers/jsx/types.js +2 -0
  326. package/dist/src/parsers/liquid.js +51 -149
  327. package/dist/src/plugins/compile-away-builder-components.js +161 -116
  328. package/dist/src/symbols/symbol-processor.d.ts +2 -0
  329. package/dist/src/symbols/symbol-processor.js +58 -20
  330. package/dist/src/targets.d.ts +11 -6
  331. package/dist/src/targets.js +13 -1
  332. package/dist/src/types/config.d.ts +42 -13
  333. package/dist/src/types/json.d.ts +5 -2
  334. package/dist/src/types/mitosis-component.d.ts +40 -12
  335. package/dist/src/types/mitosis-node.d.ts +15 -9
  336. package/dist/src/types/transpiler.d.ts +14 -0
  337. package/dist/src/types/transpiler.js +2 -0
  338. package/dist/test/qwik/Accordion/low.jsx +45 -12
  339. package/dist/test/qwik/Accordion/med.jsx +2 -8
  340. package/dist/test/qwik/For/low.jsx +46 -27
  341. package/dist/test/qwik/For/med.jsx +2 -8
  342. package/dist/test/qwik/Image/high.js +1 -1
  343. package/dist/test/qwik/Image/med.js +24 -18
  344. package/dist/test/qwik/Image.slow/high.js +1 -1
  345. package/dist/test/qwik/Image.slow/med.js +24 -18
  346. package/dist/test/qwik/bindings/low.cjs +16 -4
  347. package/dist/test/qwik/bindings/med.cjs +1 -10
  348. package/dist/test/qwik/button/high.js +1 -1
  349. package/dist/test/qwik/button/low.js +18 -4
  350. package/dist/test/qwik/button/med.js +4 -10
  351. package/dist/test/qwik/component/bindings/low.jsx +72 -11
  352. package/dist/test/qwik/component/bindings/med.jsx +3 -49
  353. package/dist/test/qwik/component/component/inputs/high.cjsx +1 -1
  354. package/dist/test/qwik/component/component/inputs/med.cjsx +18 -15
  355. package/dist/test/qwik/for-loop.bindings/high.cjs +0 -0
  356. package/dist/test/qwik/for-loop.bindings/low.cjs +56 -0
  357. package/dist/test/qwik/for-loop.bindings/med.cjs +5 -0
  358. package/dist/test/qwik/hello_world/stylesheet/low.jsx +17 -3
  359. package/dist/test/qwik/hello_world/stylesheet/med.jsx +2 -8
  360. package/dist/test/qwik/mount/high.cjs +0 -0
  361. package/dist/test/qwik/mount/low.cjs +47 -0
  362. package/dist/test/qwik/mount/med.cjs +3 -0
  363. package/dist/test/qwik/page-with-symbol/low.js +17 -3
  364. package/dist/test/qwik/page-with-symbol/med.js +2 -8
  365. package/dist/test/qwik/show-hide/high.jsx +1 -1
  366. package/dist/test/qwik/show-hide/med.jsx +28 -21
  367. package/dist/test/qwik/svg/low.js +22 -5
  368. package/dist/test/qwik/svg/med.js +2 -8
  369. package/dist/test/qwik/todo/Todo.cjs/high.cjs +6 -10
  370. package/dist/test/qwik/todo/Todo.cjs/med.cjs +18 -15
  371. package/dist/test/qwik/todo/Todo.js/high.js +7 -10
  372. package/dist/test/qwik/todo/Todo.js/med.js +17 -15
  373. package/dist/test/qwik/todo/Todo.tsx/high.tsx +7 -10
  374. package/dist/test/qwik/todo/Todo.tsx/med.tsx +17 -15
  375. package/dist/test/qwik/todos/Todo.tsx/high.tsx +1 -1
  376. package/dist/test/qwik/todos/Todo.tsx/low.tsx +18 -13
  377. package/dist/test/qwik/todos/Todo.tsx/med.tsx +1 -6
  378. package/dist/tsconfig.build.tsbuildinfo +1 -1
  379. package/dist/tsconfig.tsbuildinfo +1 -1
  380. package/jsx-runtime.d.ts +2133 -0
  381. package/package.json +20 -8
  382. package/README.md +0 -239
  383. package/dist/src/__tests__/data/blocks/onUpdate.raw copy.d.ts +0 -1
  384. package/dist/src/__tests__/data/blocks/onUpdate.raw copy.jsx +0 -10
  385. package/dist/src/__tests__/data/blocks/slot.raw.d.ts +0 -5
  386. package/dist/src/__tests__/data/blocks/slot.raw.jsx +0 -6
  387. package/dist/src/__tests__/data/blocks/styles.raw.d.ts +0 -1
  388. package/dist/src/__tests__/data/blocks/styles.raw.jsx +0 -10
  389. package/dist/src/helpers/babel-transform copy.d.ts +0 -8
  390. package/dist/src/helpers/babel-transform copy.js +0 -138
  391. package/dist/src/helpers/collect-styles.d.ts +0 -35
  392. package/dist/src/helpers/collect-styles.js +0 -178
  393. package/dist/src/jsx-types.d.ts +0 -1171
  394. package/dist/src/parsers/jsx.d.ts +0 -20
@@ -3,14 +3,24 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
3
3
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
4
  return cooked;
5
5
  };
6
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
7
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
8
+ if (ar || !(i in from)) {
9
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
10
+ ar[i] = from[i];
11
+ }
12
+ }
13
+ return to.concat(ar || Array.prototype.slice.call(from));
14
+ };
6
15
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
16
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
17
  };
9
18
  Object.defineProperty(exports, "__esModule", { value: true });
10
19
  exports.componentToAngular = exports.blockToAngular = void 0;
11
20
  var dedent_1 = __importDefault(require("dedent"));
21
+ var json5_1 = __importDefault(require("json5"));
12
22
  var standalone_1 = require("prettier/standalone");
13
- var collect_styles_1 = require("../helpers/collect-styles");
23
+ var collect_css_1 = require("../helpers/styles/collect-css");
14
24
  var fast_clone_1 = require("../helpers/fast-clone");
15
25
  var get_refs_1 = require("../helpers/get-refs");
16
26
  var get_state_object_string_1 = require("../helpers/get-state-object-string");
@@ -21,21 +31,51 @@ var jsx_1 = require("../parsers/jsx");
21
31
  var plugins_1 = require("../modules/plugins");
22
32
  var is_children_1 = __importDefault(require("../helpers/is-children"));
23
33
  var get_props_1 = require("../helpers/get-props");
34
+ var get_props_ref_1 = require("../helpers/get-props-ref");
35
+ var get_prop_functions_1 = require("../helpers/get-prop-functions");
24
36
  var lodash_1 = require("lodash");
25
37
  var strip_meta_properties_1 = require("../helpers/strip-meta-properties");
26
38
  var remove_surrounding_block_1 = require("../helpers/remove-surrounding-block");
27
39
  var indent_1 = require("../helpers/indent");
40
+ var slots_1 = require("../helpers/slots");
41
+ var get_custom_imports_1 = require("../helpers/get-custom-imports");
42
+ var get_components_used_1 = require("../helpers/get-components-used");
43
+ var is_upper_case_1 = require("../helpers/is-upper-case");
44
+ var BUILT_IN_COMPONENTS = new Set(['Show', 'For', 'Fragment']);
28
45
  var mappers = {
29
- Fragment: function (json, options) {
46
+ Fragment: function (json, options, blockOptions) {
30
47
  return "<div>".concat(json.children
31
- .map(function (item) { return (0, exports.blockToAngular)(item, options); })
48
+ .map(function (item) { return (0, exports.blockToAngular)(item, options, blockOptions); })
32
49
  .join('\n'), "</div>");
33
50
  },
51
+ Slot: function (json, options, blockOptions) {
52
+ return "<ng-content ".concat(Object.keys(json.bindings)
53
+ .map(function (binding) {
54
+ var _a, _b, _c;
55
+ if (binding === 'name') {
56
+ var selector = (0, lodash_1.kebabCase)((_b = (_a = json.bindings.name) === null || _a === void 0 ? void 0 : _a.code) === null || _b === void 0 ? void 0 : _b.replace('props.slot', ''));
57
+ return "select=\"[".concat(selector, "]\"");
58
+ }
59
+ return "".concat((_c = json.bindings[binding]) === null || _c === void 0 ? void 0 : _c.code);
60
+ })
61
+ .join('\n'), "></ng-content>");
62
+ },
34
63
  };
35
- var blockToAngular = function (json, options) {
64
+ // TODO: Maybe in the future allow defining `string | function` as values
65
+ var BINDINGS_MAPPER = {
66
+ innerHTML: 'innerHTML',
67
+ style: 'ngStyle',
68
+ };
69
+ var blockToAngular = function (json, options, blockOptions) {
70
+ var _a, _b, _c, _d, _e, _f;
36
71
  if (options === void 0) { options = {}; }
72
+ if (blockOptions === void 0) { blockOptions = {}; }
73
+ var contextVars = (blockOptions === null || blockOptions === void 0 ? void 0 : blockOptions.contextVars) || [];
74
+ var outputVars = (blockOptions === null || blockOptions === void 0 ? void 0 : blockOptions.outputVars) || [];
75
+ var childComponents = (blockOptions === null || blockOptions === void 0 ? void 0 : blockOptions.childComponents) || [];
76
+ var domRefs = (blockOptions === null || blockOptions === void 0 ? void 0 : blockOptions.domRefs) || [];
37
77
  if (mappers[json.name]) {
38
- return mappers[json.name](json, options);
78
+ return mappers[json.name](json, options, blockOptions);
39
79
  }
40
80
  if ((0, is_children_1.default)(json)) {
41
81
  return "<ng-content></ng-content>";
@@ -43,26 +83,44 @@ var blockToAngular = function (json, options) {
43
83
  if (json.properties._text) {
44
84
  return json.properties._text;
45
85
  }
46
- if (json.bindings._text) {
47
- return "{{".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(json.bindings._text), "}}");
86
+ if (/props\.slot/.test((_a = json.bindings._text) === null || _a === void 0 ? void 0 : _a.code)) {
87
+ var selector = (0, lodash_1.kebabCase)((_c = (_b = json.bindings._text) === null || _b === void 0 ? void 0 : _b.code) === null || _c === void 0 ? void 0 : _c.replace('props.slot', ''));
88
+ return "<ng-content select=\"[".concat(selector, "]\"></ng-content>");
89
+ }
90
+ if ((_d = json.bindings._text) === null || _d === void 0 ? void 0 : _d.code) {
91
+ return "{{".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(json.bindings._text.code, {
92
+ // the context is the class
93
+ contextVars: [],
94
+ outputVars: outputVars,
95
+ domRefs: domRefs,
96
+ }), "}}");
48
97
  }
49
98
  var str = '';
99
+ var needsToRenderSlots = [];
50
100
  if (json.name === 'For') {
51
- str += "<ng-container *ngFor=\"let ".concat(json.properties._forName, " of ").concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(json.bindings.each), "\">");
52
- str += json.children
53
- .map(function (item) { return (0, exports.blockToAngular)(item, options); })
54
- .join('\n');
101
+ var indexName = json.scope.For[1];
102
+ str += "<ng-container *ngFor=\"let ".concat(json.properties._forName, " of ").concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_e = json.bindings.each) === null || _e === void 0 ? void 0 : _e.code, {
103
+ contextVars: contextVars,
104
+ outputVars: outputVars,
105
+ domRefs: domRefs,
106
+ })).concat(indexName ? "; let ".concat(indexName, " = index") : '', "\">");
107
+ str += json.children.map(function (item) { return (0, exports.blockToAngular)(item, options, blockOptions); }).join('\n');
55
108
  str += "</ng-container>";
56
109
  }
57
110
  else if (json.name === 'Show') {
58
- str += "<ng-container *ngIf=\"".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(json.bindings.when), "\">");
59
- str += json.children
60
- .map(function (item) { return (0, exports.blockToAngular)(item, options); })
61
- .join('\n');
111
+ str += "<ng-container *ngIf=\"".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_f = json.bindings.when) === null || _f === void 0 ? void 0 : _f.code, {
112
+ contextVars: contextVars,
113
+ outputVars: outputVars,
114
+ domRefs: domRefs,
115
+ }), "\">");
116
+ str += json.children.map(function (item) { return (0, exports.blockToAngular)(item, options, blockOptions); }).join('\n');
62
117
  str += "</ng-container>";
63
118
  }
64
119
  else {
65
- str += "<".concat(json.name, " ");
120
+ var elSelector = childComponents.find(function (impName) { return impName === json.name; })
121
+ ? (0, lodash_1.kebabCase)(json.name)
122
+ : json.name;
123
+ str += "<".concat(elSelector, " ");
66
124
  // TODO: spread support for angular
67
125
  // if (json.bindings._spread) {
68
126
  // str += `v-bind="${stripStateAndPropsRefs(
@@ -83,22 +141,41 @@ var blockToAngular = function (json, options) {
83
141
  if (key.startsWith('$')) {
84
142
  continue;
85
143
  }
86
- var value = json.bindings[key];
144
+ var _g = json.bindings[key], code = _g.code, _h = _g.arguments, cusArgs = _h === void 0 ? ['event'] : _h;
87
145
  // TODO: proper babel transform to replace. Util for this
88
- var useValue = (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(value);
146
+ var useValue = (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(code, {
147
+ contextVars: contextVars,
148
+ outputVars: outputVars,
149
+ domRefs: domRefs,
150
+ }).replace(/"/g, '&quot;');
89
151
  if (key.startsWith('on')) {
90
152
  var event_1 = key.replace('on', '').toLowerCase();
91
- if (event_1 === 'change' &&
92
- json.name === 'input' /* todo: other tags */) {
153
+ if (event_1 === 'change' && json.name === 'input' /* todo: other tags */) {
93
154
  event_1 = 'input';
94
155
  }
95
156
  // TODO: proper babel transform to replace. Util for this
96
- var finalValue = (0, remove_surrounding_block_1.removeSurroundingBlock)(useValue.replace(/event\./g, '$event.'));
157
+ var eventName = cusArgs[0];
158
+ var regexp = new RegExp('(^|\\n|\\r| |;|\\(|\\[|!)' + eventName + '(\\?\\.|\\.|\\(| |;|\\)|$)', 'g');
159
+ var replacer = '$1$event$2';
160
+ var finalValue = (0, remove_surrounding_block_1.removeSurroundingBlock)(useValue.replace(regexp, replacer));
97
161
  str += " (".concat(event_1, ")=\"").concat(finalValue, "\" ");
98
162
  }
163
+ else if (key === 'class') {
164
+ str += " [class]=\"".concat(useValue, "\" ");
165
+ }
99
166
  else if (key === 'ref') {
100
167
  str += " #".concat(useValue, " ");
101
168
  }
169
+ else if ((0, slots_1.isSlotProperty)(key)) {
170
+ var lowercaseKey = key.replace('slot', '')[0].toLowerCase() + key.replace('slot', '').substring(1);
171
+ needsToRenderSlots.push("".concat(useValue.replace(/(\/\>)|\>/, " ".concat(lowercaseKey, ">"))));
172
+ }
173
+ else if (BINDINGS_MAPPER[key]) {
174
+ str += " [".concat(BINDINGS_MAPPER[key], "]=\"").concat(useValue, "\" ");
175
+ }
176
+ else if (key.includes('-')) {
177
+ str += " [attr.".concat(key, "]=\"").concat(useValue, "\" ");
178
+ }
102
179
  else {
103
180
  str += " [".concat(key, "]=\"").concat(useValue, "\" ");
104
181
  }
@@ -107,12 +184,13 @@ var blockToAngular = function (json, options) {
107
184
  return str + ' />';
108
185
  }
109
186
  str += '>';
187
+ if (needsToRenderSlots.length > 0) {
188
+ str += needsToRenderSlots.map(function (el) { return el; }).join('');
189
+ }
110
190
  if (json.children) {
111
- str += json.children
112
- .map(function (item) { return (0, exports.blockToAngular)(item, options); })
113
- .join('\n');
191
+ str += json.children.map(function (item) { return (0, exports.blockToAngular)(item, options, blockOptions); }).join('\n');
114
192
  }
115
- str += "</".concat(json.name, ">");
193
+ str += "</".concat(elSelector, ">");
116
194
  }
117
195
  return str;
118
196
  };
@@ -120,24 +198,86 @@ exports.blockToAngular = blockToAngular;
120
198
  var componentToAngular = function (options) {
121
199
  if (options === void 0) { options = {}; }
122
200
  return function (_a) {
123
- var _b;
124
- var component = _a.component;
201
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
202
+ var _component = _a.component;
125
203
  // Make a copy we can safely mutate, similar to babel's toolchain
126
- var json = (0, fast_clone_1.fastClone)(component);
204
+ var json = (0, fast_clone_1.fastClone)(_component);
127
205
  if (options.plugins) {
128
206
  json = (0, plugins_1.runPreJsonPlugins)(json, options.plugins);
129
207
  }
130
- var props = (0, get_props_1.getProps)(component);
131
- var refs = Array.from((0, get_refs_1.getRefs)(json));
132
- (0, map_refs_1.mapRefs)(json, function (refName) { return "this.".concat(refName, ".nativeElement"); });
208
+ var _o = (0, get_props_ref_1.getPropsRef)(json, true), forwardProp = _o[0], hasPropRef = _o[1];
209
+ var childComponents = [];
210
+ var propsTypeRef = json.propsTypeRef !== 'any' ? json.propsTypeRef : undefined;
211
+ json.imports.forEach(function (_a) {
212
+ var imports = _a.imports;
213
+ Object.keys(imports).forEach(function (key) {
214
+ if (imports[key] === 'default') {
215
+ childComponents.push(key);
216
+ }
217
+ });
218
+ });
219
+ var customImports = (0, get_custom_imports_1.getCustomImports)(json);
220
+ var _p = json.exports, localExports = _p === void 0 ? {} : _p;
221
+ var localExportVars = Object.keys(localExports)
222
+ .filter(function (key) { return localExports[key].usedInLocal; })
223
+ .map(function (key) { return "".concat(key, " = ").concat(key, ";"); });
224
+ var metaOutputVars = ((_c = (_b = json.meta) === null || _b === void 0 ? void 0 : _b.useMetadata) === null || _c === void 0 ? void 0 : _c.outputs) || [];
225
+ var contextVars = Object.keys(((_d = json === null || json === void 0 ? void 0 : json.context) === null || _d === void 0 ? void 0 : _d.get) || {});
226
+ var injectables = contextVars.map(function (variableName) {
227
+ var _a, _b, _c, _d;
228
+ var variableType = (_a = json === null || json === void 0 ? void 0 : json.context) === null || _a === void 0 ? void 0 : _a.get[variableName].name;
229
+ if ((_b = options === null || options === void 0 ? void 0 : options.experimental) === null || _b === void 0 ? void 0 : _b.injectables) {
230
+ return (_c = options === null || options === void 0 ? void 0 : options.experimental) === null || _c === void 0 ? void 0 : _c.injectables(variableName, variableType);
231
+ }
232
+ if ((_d = options === null || options === void 0 ? void 0 : options.experimental) === null || _d === void 0 ? void 0 : _d.inject) {
233
+ return "@Inject(forwardRef(() => ".concat(variableType, ")) public ").concat(variableName, ": ").concat(variableType);
234
+ }
235
+ return "public ".concat(variableName, " : ").concat(variableType);
236
+ });
237
+ var hasConstructor = Boolean(injectables.length || ((_e = json.hooks) === null || _e === void 0 ? void 0 : _e.onInit));
238
+ var props = (0, get_props_1.getProps)(json);
239
+ // prevent jsx props from showing up as @Input
240
+ if (hasPropRef) {
241
+ props.delete(forwardProp);
242
+ }
243
+ props.delete('children');
244
+ var outputVars = (0, lodash_1.uniq)(__spreadArray(__spreadArray([], metaOutputVars, true), (0, get_prop_functions_1.getPropFunctions)(json), true));
245
+ // remove props for outputs
246
+ outputVars.forEach(function (variableName) {
247
+ props.delete(variableName);
248
+ });
249
+ var outputs = outputVars.map(function (variableName) {
250
+ var _a, _b;
251
+ if ((_a = options === null || options === void 0 ? void 0 : options.experimental) === null || _a === void 0 ? void 0 : _a.outputs) {
252
+ return (_b = options === null || options === void 0 ? void 0 : options.experimental) === null || _b === void 0 ? void 0 : _b.outputs(json, variableName);
253
+ }
254
+ return "@Output() ".concat(variableName, " = new EventEmitter()");
255
+ });
256
+ var hasOnMount = Boolean((_f = json.hooks) === null || _f === void 0 ? void 0 : _f.onMount);
257
+ var domRefs = (0, get_refs_1.getRefs)(json);
258
+ var jsRefs = Object.keys(json.refs).filter(function (ref) { return !domRefs.has(ref); });
259
+ var stateVars = Object.keys((json === null || json === void 0 ? void 0 : json.state) || {});
260
+ var componentsUsed = Array.from((0, get_components_used_1.getComponentsUsed)(json)).filter(function (item) { return item.length && (0, is_upper_case_1.isUpperCase)(item[0]) && !BUILT_IN_COMPONENTS.has(item); });
261
+ (0, map_refs_1.mapRefs)(json, function (refName) {
262
+ var isDomRef = domRefs.has(refName);
263
+ return "this.".concat(isDomRef ? '' : '_').concat(refName).concat(isDomRef ? '.nativeElement' : '');
264
+ });
133
265
  if (options.plugins) {
134
266
  json = (0, plugins_1.runPostJsonPlugins)(json, options.plugins);
135
267
  }
136
- var css = (0, collect_styles_1.collectCss)(json);
268
+ var css = (0, collect_css_1.collectCss)(json);
137
269
  if (options.prettier !== false) {
138
270
  css = tryFormat(css, 'css');
139
271
  }
140
- var template = json.children.map(function (item) { return (0, exports.blockToAngular)(item); }).join('\n');
272
+ var blockOptions = {
273
+ contextVars: contextVars,
274
+ outputVars: outputVars,
275
+ domRefs: [],
276
+ childComponents: childComponents,
277
+ };
278
+ var template = json.children
279
+ .map(function (item) { return (0, exports.blockToAngular)(item, options, blockOptions); })
280
+ .join('\n');
141
281
  if (options.prettier !== false) {
142
282
  template = tryFormat(template, 'html');
143
283
  }
@@ -145,30 +285,88 @@ var componentToAngular = function (options) {
145
285
  var dataString = (0, get_state_object_string_1.getStateObjectStringFromComponent)(json, {
146
286
  format: 'class',
147
287
  valueMapper: function (code) {
148
- return (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(code, { replaceWith: 'this.' });
288
+ return (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(code, {
289
+ replaceWith: 'this.',
290
+ contextVars: contextVars,
291
+ outputVars: outputVars,
292
+ domRefs: Array.from(domRefs),
293
+ stateVars: stateVars,
294
+ });
149
295
  },
150
296
  });
151
- var str = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { Component ", "", " } from '@angular/core';\n ", "\n\n @Component({\n selector: '", "',\n template: `\n ", "\n `,\n ", "\n })\n export default class ", " {\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n }\n "], ["\n import { Component ", "", " } from '@angular/core';\n ", "\n\n @Component({\n selector: '", "',\n template: \\`\n ", "\n \\`,\n ", "\n })\n export default class ", " {\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n }\n "])), refs.length ? ', ViewChild, ElementRef' : '', props.size ? ', Input' : '', (0, render_imports_1.renderPreComponent)(json), (0, lodash_1.kebabCase)(json.name || 'my-component'), (0, indent_1.indent)(template, 8).replace(/`/g, '\\`').replace(/\$\{/g, '\\${'), css.length
297
+ var str = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: `\n ", "\n `,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "], ["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: \\`\n ", "\n \\`,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "])), outputs.length ? 'Output, EventEmitter, \n' : '', ((_g = options === null || options === void 0 ? void 0 : options.experimental) === null || _g === void 0 ? void 0 : _g.inject) ? 'Inject, forwardRef,' : '', domRefs.size ? ', ViewChild, ElementRef' : '', props.size ? ', Input' : '', options.standalone ? "import { CommonModule } from '@angular/common';" : '', json.types ? json.types.join('\n') : '', !json.defaultProps ? '' : "const defaultProps = ".concat(json5_1.default.stringify(json.defaultProps), "\n"), (0, render_imports_1.renderPreComponent)({
298
+ component: json,
299
+ target: 'angular',
300
+ excludeMitosisComponents: !options.standalone,
301
+ }), options.standalone
302
+ ? // TODO: also add child component imports here as well
303
+ "\n standalone: true,\n imports: [CommonModule".concat(componentsUsed.length ? ", ".concat(componentsUsed.join(', ')) : '', "],\n ")
304
+ : '', (0, lodash_1.kebabCase)(json.name || 'my-component'), (0, indent_1.indent)(template, 8).replace(/`/g, '\\`').replace(/\$\{/g, '\\${'), css.length
152
305
  ? "styles: [\n `".concat((0, indent_1.indent)(css, 8), "`\n ],")
153
- : '', component.name, Array.from(props)
154
- .map(function (item) { return "@Input() ".concat(item, ": any"); })
155
- .join('\n'), refs
306
+ : '', json.name, localExportVars.join('\n'), customImports.map(function (name) { return "".concat(name, " = ").concat(name); }).join('\n'), Array.from(props)
307
+ .filter(function (item) { return !(0, slots_1.isSlotProperty)(item) && item !== 'children'; })
308
+ .map(function (item) {
309
+ var propType = propsTypeRef ? "".concat(propsTypeRef, "[\"").concat(item, "\"]") : 'any';
310
+ var propDeclaration = "@Input() ".concat(item, ": ").concat(propType);
311
+ if (json.defaultProps && json.defaultProps.hasOwnProperty(item)) {
312
+ propDeclaration += " = defaultProps[\"".concat(item, "\"]");
313
+ }
314
+ return propDeclaration;
315
+ })
316
+ .join('\n'), outputs.join('\n'), Array.from(domRefs)
156
317
  .map(function (refName) { return "@ViewChild('".concat(refName, "') ").concat(refName, ": ElementRef"); })
157
- .join('\n'), !component.hooks.onMount
318
+ .join('\n'), dataString, jsRefs
319
+ .map(function (ref) {
320
+ var argument = json.refs[ref].argument;
321
+ var typeParameter = json.refs[ref].typeParameter;
322
+ return "private _".concat(ref).concat(typeParameter ? ": ".concat(typeParameter) : '').concat(argument
323
+ ? " = ".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(argument, {
324
+ replaceWith: 'this.',
325
+ contextVars: contextVars,
326
+ outputVars: outputVars,
327
+ domRefs: Array.from(domRefs),
328
+ stateVars: stateVars,
329
+ }))
330
+ : '', ";");
331
+ })
332
+ .join('\n'), !hasConstructor
158
333
  ? ''
159
- : "ngOnInit() {\n ".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(component.hooks.onMount.code, {
160
- replaceWith: 'this.',
161
- }), "\n }"), !((_b = component.hooks.onUpdate) === null || _b === void 0 ? void 0 : _b.length)
334
+ : "constructor(\n".concat(injectables.join(',\n'), ") {\n ").concat(!((_h = json.hooks) === null || _h === void 0 ? void 0 : _h.onInit)
335
+ ? ''
336
+ : "\n ".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_j = json.hooks.onInit) === null || _j === void 0 ? void 0 : _j.code, {
337
+ replaceWith: 'this.',
338
+ contextVars: contextVars,
339
+ outputVars: outputVars,
340
+ }), "\n "), "\n }\n "), !hasOnMount
341
+ ? ''
342
+ : "ngOnInit() {\n \n ".concat(!((_k = json.hooks) === null || _k === void 0 ? void 0 : _k.onMount)
343
+ ? ''
344
+ : "\n ".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_l = json.hooks.onMount) === null || _l === void 0 ? void 0 : _l.code, {
345
+ replaceWith: 'this.',
346
+ contextVars: contextVars,
347
+ outputVars: outputVars,
348
+ domRefs: Array.from(domRefs),
349
+ stateVars: stateVars,
350
+ }), "\n "), "\n }"), !((_m = json.hooks.onUpdate) === null || _m === void 0 ? void 0 : _m.length)
162
351
  ? ''
163
- : "ngAfterContentChecked() {\n ".concat(component.hooks.onUpdate.map(function (hook) {
164
- return (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(hook.code, {
352
+ : "ngAfterContentChecked() {\n ".concat(json.hooks.onUpdate.reduce(function (code, hook) {
353
+ code += (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(hook.code, {
165
354
  replaceWith: 'this.',
355
+ contextVars: contextVars,
356
+ outputVars: outputVars,
357
+ domRefs: Array.from(domRefs),
358
+ stateVars: stateVars,
166
359
  });
167
- }), "\n }"), !component.hooks.onUnMount
360
+ return code + '\n';
361
+ }, ''), "\n }"), !json.hooks.onUnMount
168
362
  ? ''
169
- : "ngOnDestroy() {\n ".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(component.hooks.onUnMount.code, {
363
+ : "ngOnDestroy() {\n ".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(json.hooks.onUnMount.code, {
170
364
  replaceWith: 'this.',
171
- }), "\n }"), dataString);
365
+ contextVars: contextVars,
366
+ outputVars: outputVars,
367
+ domRefs: Array.from(domRefs),
368
+ stateVars: stateVars,
369
+ }), "\n }"));
172
370
  if (options.plugins) {
173
371
  str = (0, plugins_1.runPreCodePlugins)(str, options.plugins);
174
372
  }
@@ -1,6 +1,6 @@
1
1
  import { MitosisNode } from '../types/mitosis-node';
2
2
  import { BuilderElement } from '@builder.io/sdk';
3
- import { TranspilerArgs } from '../types/config';
3
+ import { TranspilerArgs } from '../types/transpiler';
4
4
  export interface ToBuilderOptions {
5
5
  includeIds?: boolean;
6
6
  }
@@ -10,7 +10,7 @@ declare type InternalOptions = {
10
10
  export declare const blockToBuilder: (json: MitosisNode, options?: ToBuilderOptions, _internalOptions?: InternalOptions) => BuilderElement;
11
11
  export declare const componentToBuilder: (options?: ToBuilderOptions) => ({ component }: TranspilerArgs) => {
12
12
  data: {
13
- httpRequests: any;
13
+ httpRequests: import("../types/json")._JSON;
14
14
  jsCode: string;
15
15
  tsCode: string;
16
16
  blocks: BuilderElement[];
@@ -33,6 +33,8 @@ var lodash_1 = require("lodash");
33
33
  var builder_1 = require("../parsers/builder");
34
34
  var remove_surrounding_block_1 = require("../helpers/remove-surrounding-block");
35
35
  var traverse_1 = __importDefault(require("traverse"));
36
+ var symbol_processor_1 = require("../symbols/symbol-processor");
37
+ var state_1 = require("../helpers/state");
36
38
  var omitMetaProperties = function (obj) {
37
39
  return (0, lodash_1.omitBy)(obj, function (_value, key) { return key.startsWith('$'); });
38
40
  };
@@ -57,9 +59,7 @@ var componentMappers = __assign(__assign({}, (!builder_1.symbolBlocksAsChildren
57
59
  : {
58
60
  Symbol: function (node, options) {
59
61
  var child = node.children[0];
60
- var symbolOptions = (node.bindings.symbol &&
61
- json5_1.default.parse(node.bindings.symbol)) ||
62
- {};
62
+ var symbolOptions = (node.bindings.symbol && json5_1.default.parse(node.bindings.symbol.code)) || {};
63
63
  if (child) {
64
64
  (0, lodash_1.set)(symbolOptions, 'content.data.blocks', child.children.map(function (item) { return (0, exports.blockToBuilder)(item, options); }));
65
65
  }
@@ -82,12 +82,13 @@ var componentMappers = __assign(__assign({}, (!builder_1.symbolBlocksAsChildren
82
82
  block.children = [];
83
83
  return block;
84
84
  }, For: function (node, options) {
85
+ var _a;
85
86
  return el({
86
87
  component: {
87
88
  name: 'Core:Fragment',
88
89
  },
89
90
  repeat: {
90
- collection: node.bindings.each,
91
+ collection: (_a = node.bindings.each) === null || _a === void 0 ? void 0 : _a.code,
91
92
  itemName: node.properties._forName,
92
93
  },
93
94
  children: node.children
@@ -95,13 +96,14 @@ var componentMappers = __assign(__assign({}, (!builder_1.symbolBlocksAsChildren
95
96
  .map(function (node) { return (0, exports.blockToBuilder)(node, options); }),
96
97
  }, options);
97
98
  }, Show: function (node, options) {
99
+ var _a;
98
100
  return el({
99
101
  // TODO: the reverse mapping for this
100
102
  component: {
101
103
  name: 'Core:Fragment',
102
104
  },
103
105
  bindings: {
104
- show: node.bindings.when,
106
+ show: (_a = node.bindings.when) === null || _a === void 0 ? void 0 : _a.code,
105
107
  },
106
108
  children: node.children
107
109
  .filter(filter_empty_text_nodes_1.filterEmptyTextNodes)
@@ -109,7 +111,7 @@ var componentMappers = __assign(__assign({}, (!builder_1.symbolBlocksAsChildren
109
111
  }, options);
110
112
  } });
111
113
  var el = function (options, toBuilderOptions) { return (__assign(__assign({ '@type': '@builder.io/sdk:Element' }, (toBuilderOptions.includeIds && {
112
- id: 'builder-' + Math.random().toString(36).split('.')[1],
114
+ id: 'builder-' + (0, symbol_processor_1.hashCodeAsString)(options),
113
115
  })), options)); };
114
116
  function tryFormat(code) {
115
117
  var str = code;
@@ -129,20 +131,20 @@ function tryFormat(code) {
129
131
  }
130
132
  var blockToBuilder = function (json, options, _internalOptions) {
131
133
  var _a;
132
- var _b;
134
+ var _b, _c, _d, _e, _f, _g;
133
135
  if (options === void 0) { options = {}; }
134
136
  if (_internalOptions === void 0) { _internalOptions = {}; }
135
137
  var mapper = !_internalOptions.skipMapper && componentMappers[json.name];
136
138
  if (mapper) {
137
139
  return mapper(json, options);
138
140
  }
139
- if (json.properties._text || json.bindings._text) {
141
+ if (json.properties._text || ((_b = json.bindings._text) === null || _b === void 0 ? void 0 : _b.code)) {
140
142
  return el({
141
143
  tagName: 'span',
142
- bindings: __assign({}, (json.bindings._text
144
+ bindings: __assign({}, (((_c = json.bindings._text) === null || _c === void 0 ? void 0 : _c.code)
143
145
  ? {
144
- 'component.options.text': json.bindings._text,
145
- 'json.bindings._text': undefined,
146
+ 'component.options.text': json.bindings._text.code,
147
+ 'json.bindings._text.code': undefined,
146
148
  }
147
149
  : {})),
148
150
  component: {
@@ -158,9 +160,10 @@ var blockToBuilder = function (json, options, _internalOptions) {
158
160
  var actions = {};
159
161
  for (var key in bindings) {
160
162
  var eventBindingKeyRegex = /^on([A-Z])/;
161
- var firstCharMatchForEventBindingKey = (_b = key.match(eventBindingKeyRegex)) === null || _b === void 0 ? void 0 : _b[1];
163
+ var firstCharMatchForEventBindingKey = (_d = key.match(eventBindingKeyRegex)) === null || _d === void 0 ? void 0 : _d[1];
162
164
  if (firstCharMatchForEventBindingKey) {
163
- actions[key.replace(eventBindingKeyRegex, firstCharMatchForEventBindingKey.toLowerCase())] = (0, remove_surrounding_block_1.removeSurroundingBlock)(bindings[key]);
165
+ actions[key.replace(eventBindingKeyRegex, firstCharMatchForEventBindingKey.toLowerCase())] =
166
+ (0, remove_surrounding_block_1.removeSurroundingBlock)((_e = bindings[key]) === null || _e === void 0 ? void 0 : _e.code);
164
167
  delete bindings[key];
165
168
  }
166
169
  }
@@ -172,24 +175,24 @@ var blockToBuilder = function (json, options, _internalOptions) {
172
175
  return "continue";
173
176
  }
174
177
  var value = bindings[key];
175
- var parsed = (0, lodash_1.attempt)(function () { return json5_1.default.parse(value); });
178
+ var parsed = (0, lodash_1.attempt)(function () { return json5_1.default.parse(value === null || value === void 0 ? void 0 : value.code); });
176
179
  if (!(parsed instanceof Error)) {
177
180
  componentOptions[key] = parsed;
178
181
  }
179
182
  else {
180
- builderBindings["component.options.".concat(key)] = bindings[key];
183
+ builderBindings["component.options.".concat(key)] = bindings[key].code;
181
184
  }
182
185
  };
183
186
  for (var key in bindings) {
184
187
  _loop_1(key);
185
188
  }
186
189
  }
187
- var hasCss = !!bindings.css;
190
+ var hasCss = !!((_f = bindings.css) === null || _f === void 0 ? void 0 : _f.code);
188
191
  var responsiveStyles = {
189
192
  large: {},
190
193
  };
191
194
  if (hasCss) {
192
- var cssRules = json5_1.default.parse(bindings.css);
195
+ var cssRules = json5_1.default.parse((_g = bindings.css) === null || _g === void 0 ? void 0 : _g.code);
193
196
  var cssRuleKeys = Object.keys(cssRules);
194
197
  for (var _i = 0, cssRuleKeys_1 = cssRuleKeys; _i < cssRuleKeys_1.length; _i++) {
195
198
  var ruleKey = cssRuleKeys_1[_i];
@@ -208,7 +211,7 @@ var blockToBuilder = function (json, options, _internalOptions) {
208
211
  }
209
212
  if (thisIsComponent) {
210
213
  for (var key in json.bindings) {
211
- bindings["component.options.".concat(key)] = json.bindings[key];
214
+ builderBindings["component.options.".concat(key)] = json.bindings[key].code;
212
215
  }
213
216
  }
214
217
  return el(__assign(__assign(__assign(__assign({ tagName: thisIsComponent ? undefined : json.name }, (hasCss && {
@@ -221,11 +224,9 @@ var blockToBuilder = function (json, options, _internalOptions) {
221
224
  })), { code: {
222
225
  bindings: builderBindings,
223
226
  actions: actions,
224
- }, properties: thisIsComponent
225
- ? undefined
226
- : omitMetaProperties(json.properties), bindings: thisIsComponent
227
+ }, properties: thisIsComponent ? undefined : omitMetaProperties(json.properties), bindings: thisIsComponent
227
228
  ? builderBindings
228
- : (0, lodash_1.omit)(bindings, 'css'), actions: actions, children: json.children
229
+ : (0, lodash_1.omit)((0, lodash_1.mapValues)(bindings, function (value) { return value === null || value === void 0 ? void 0 : value.code; }), 'css'), actions: actions, children: json.children
229
230
  .filter(filter_empty_text_nodes_1.filterEmptyTextNodes)
230
231
  .map(function (child) { return (0, exports.blockToBuilder)(child, options); }) }), options);
231
232
  };
@@ -235,16 +236,12 @@ var componentToBuilder = function (options) {
235
236
  return function (_a) {
236
237
  var _b, _c, _d, _e;
237
238
  var component = _a.component;
238
- var hasState = Boolean(Object.keys(component.state).length);
239
+ var hasState = (0, state_1.checkHasState)(component);
239
240
  var result = (0, fast_clone_1.fastClone)({
240
241
  data: {
241
242
  httpRequests: (_c = (_b = component === null || component === void 0 ? void 0 : component.meta) === null || _b === void 0 ? void 0 : _b.useMetadata) === null || _c === void 0 ? void 0 : _c.httpRequests,
242
- jsCode: tryFormat((0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n\n ", "\n \n ", "\n "], ["\n ", "\n\n ", "\n \n ", "\n "])), !(0, has_props_1.hasProps)(component) ? '' : "var props = state;", !hasState
243
- ? ''
244
- : "Object.assign(state, ".concat((0, get_state_object_string_1.getStateObjectStringFromComponent)(component), ");"), !((_d = component.hooks.onMount) === null || _d === void 0 ? void 0 : _d.code) ? '' : component.hooks.onMount.code)),
245
- tsCode: tryFormat((0, dedent_1.default)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n\n ", "\n\n ", "\n "], ["\n ", "\n\n ", "\n\n ", "\n "])), !(0, has_props_1.hasProps)(component) ? '' : "var props = state;", !hasState
246
- ? ''
247
- : "useState(".concat((0, get_state_object_string_1.getStateObjectStringFromComponent)(component), ");"), !((_e = component.hooks.onMount) === null || _e === void 0 ? void 0 : _e.code)
243
+ jsCode: tryFormat((0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n\n ", "\n \n ", "\n "], ["\n ", "\n\n ", "\n \n ", "\n "])), !(0, has_props_1.hasProps)(component) ? '' : "var props = state;", !hasState ? '' : "Object.assign(state, ".concat((0, get_state_object_string_1.getStateObjectStringFromComponent)(component), ");"), !((_d = component.hooks.onMount) === null || _d === void 0 ? void 0 : _d.code) ? '' : component.hooks.onMount.code)),
244
+ tsCode: tryFormat((0, dedent_1.default)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n\n ", "\n\n ", "\n "], ["\n ", "\n\n ", "\n\n ", "\n "])), !(0, has_props_1.hasProps)(component) ? '' : "var props = state;", !hasState ? '' : "useState(".concat((0, get_state_object_string_1.getStateObjectStringFromComponent)(component), ");"), !((_e = component.hooks.onMount) === null || _e === void 0 ? void 0 : _e.code)
248
245
  ? ''
249
246
  : "onMount(() => {\n ".concat(component.hooks.onMount.code, "\n })"))),
250
247
  blocks: component.children
@@ -1,8 +1,8 @@
1
1
  import { MitosisContext } from '../../types/mitosis-context';
2
- declare type ContextToReactOptions = {
2
+ declare type ContextToQwikOptions = {
3
3
  format?: boolean;
4
4
  };
5
- export declare const contextToReact: (options?: ContextToReactOptions) => ({ context }: {
5
+ export declare const contextToQwik: (options?: ContextToQwikOptions) => ({ context }: {
6
6
  context: MitosisContext;
7
7
  }) => string;
8
8
  export {};
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.contextToReact = void 0;
3
+ exports.contextToQwik = void 0;
4
4
  var standalone_1 = require("prettier/standalone");
5
- var get_state_object_string_1 = require("../../helpers/get-state-object-string");
6
- var contextToReact = function (options) {
5
+ var contextToQwik = function (options) {
7
6
  if (options === void 0) { options = {}; }
8
7
  return function (_a) {
9
8
  var context = _a.context;
10
- var str = "\n import { createContext } from 'react';\n\n export default createContext(".concat((0, get_state_object_string_1.getMemberObjectString)(context.value), ")\n ");
9
+ var str = "\n import { createContext } from '@builder.io/qwik';\n\n export default createContext(\"".concat(context.name, "\")\n ");
11
10
  if (options.format !== false) {
12
11
  try {
13
12
  str = (0, standalone_1.format)(str, {
@@ -25,4 +24,4 @@ var contextToReact = function (options) {
25
24
  return str;
26
25
  };
27
26
  };
28
- exports.contextToReact = contextToReact;
27
+ exports.contextToQwik = contextToQwik;