@builder.io/mitosis 0.0.63 → 0.0.65

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 (167) hide show
  1. package/dist/src/constants/html_tags.js +63 -0
  2. package/dist/src/flow.d.ts +3 -0
  3. package/dist/src/flow.js +5 -1
  4. package/dist/src/generators/angular.d.ts +1 -0
  5. package/dist/src/generators/angular.js +33 -10
  6. package/dist/src/generators/react/generator.js +4 -2
  7. package/dist/src/generators/react-native.js +51 -34
  8. package/dist/src/generators/svelte.js +7 -3
  9. package/dist/src/index.d.ts +1 -0
  10. package/dist/src/index.js +1 -0
  11. package/dist/src/types/config.d.ts +3 -1
  12. package/dist/tsconfig.build.tsbuildinfo +1 -1
  13. package/package.json +1 -1
  14. package/dist/src/__tests__/data/advanced-ref.raw.d.ts +0 -4
  15. package/dist/src/__tests__/data/advanced-ref.raw.jsx +0 -39
  16. package/dist/src/__tests__/data/basic-boolean-attribute-component.raw.d.ts +0 -6
  17. package/dist/src/__tests__/data/basic-boolean-attribute-component.raw.jsx +0 -8
  18. package/dist/src/__tests__/data/basic-boolean-attribute.raw.d.ts +0 -6
  19. package/dist/src/__tests__/data/basic-boolean-attribute.raw.jsx +0 -15
  20. package/dist/src/__tests__/data/basic-child-component.raw.d.ts +0 -1
  21. package/dist/src/__tests__/data/basic-child-component.raw.jsx +0 -21
  22. package/dist/src/__tests__/data/basic-context.raw.d.ts +0 -1
  23. package/dist/src/__tests__/data/basic-context.raw.jsx +0 -29
  24. package/dist/src/__tests__/data/basic-custom-mitosis-package.raw.d.ts +0 -1
  25. package/dist/src/__tests__/data/basic-custom-mitosis-package.raw.jsx +0 -10
  26. package/dist/src/__tests__/data/basic-for-show.raw.d.ts +0 -1
  27. package/dist/src/__tests__/data/basic-for-show.raw.jsx +0 -20
  28. package/dist/src/__tests__/data/basic-for.raw.d.ts +0 -1
  29. package/dist/src/__tests__/data/basic-for.raw.jsx +0 -23
  30. package/dist/src/__tests__/data/basic-forwardRef-metadata.raw.d.ts +0 -5
  31. package/dist/src/__tests__/data/basic-forwardRef-metadata.raw.jsx +0 -17
  32. package/dist/src/__tests__/data/basic-forwardRef.raw.d.ts +0 -5
  33. package/dist/src/__tests__/data/basic-forwardRef.raw.jsx +0 -14
  34. package/dist/src/__tests__/data/basic-onChange.raw.d.ts +0 -1
  35. package/dist/src/__tests__/data/basic-onChange.raw.jsx +0 -17
  36. package/dist/src/__tests__/data/basic-onMount-update.raw.d.ts +0 -5
  37. package/dist/src/__tests__/data/basic-onMount-update.raw.jsx +0 -17
  38. package/dist/src/__tests__/data/basic-onUpdate-return.raw.d.ts +0 -1
  39. package/dist/src/__tests__/data/basic-onUpdate-return.raw.jsx +0 -24
  40. package/dist/src/__tests__/data/basic-outputs-meta.raw.d.ts +0 -1
  41. package/dist/src/__tests__/data/basic-outputs-meta.raw.jsx +0 -17
  42. package/dist/src/__tests__/data/basic-outputs.raw.d.ts +0 -1
  43. package/dist/src/__tests__/data/basic-outputs.raw.jsx +0 -14
  44. package/dist/src/__tests__/data/basic-preserve-export-or-local-statement.raw.d.ts +0 -6
  45. package/dist/src/__tests__/data/basic-preserve-export-or-local-statement.raw.jsx +0 -14
  46. package/dist/src/__tests__/data/basic-props-destructure.raw.d.ts +0 -6
  47. package/dist/src/__tests__/data/basic-props-destructure.raw.jsx +0 -14
  48. package/dist/src/__tests__/data/basic-props.raw.d.ts +0 -6
  49. package/dist/src/__tests__/data/basic-props.raw.jsx +0 -13
  50. package/dist/src/__tests__/data/basic-ref-assignment.raw.d.ts +0 -4
  51. package/dist/src/__tests__/data/basic-ref-assignment.raw.jsx +0 -15
  52. package/dist/src/__tests__/data/basic-ref-usePrevious.raw.d.ts +0 -5
  53. package/dist/src/__tests__/data/basic-ref-usePrevious.raw.jsx +0 -35
  54. package/dist/src/__tests__/data/basic-ref.raw.d.ts +0 -4
  55. package/dist/src/__tests__/data/basic-ref.raw.jsx +0 -36
  56. package/dist/src/__tests__/data/basic.raw.d.ts +0 -6
  57. package/dist/src/__tests__/data/basic.raw.jsx +0 -22
  58. package/dist/src/__tests__/data/blocks/button-with-metadata.raw.d.ts +0 -7
  59. package/dist/src/__tests__/data/blocks/button-with-metadata.raw.jsx +0 -23
  60. package/dist/src/__tests__/data/blocks/button.raw.d.ts +0 -7
  61. package/dist/src/__tests__/data/blocks/button.raw.jsx +0 -18
  62. package/dist/src/__tests__/data/blocks/classname-jsx.raw.d.ts +0 -7
  63. package/dist/src/__tests__/data/blocks/classname-jsx.raw.jsx +0 -15
  64. package/dist/src/__tests__/data/blocks/columns.raw.d.ts +0 -12
  65. package/dist/src/__tests__/data/blocks/columns.raw.jsx +0 -42
  66. package/dist/src/__tests__/data/blocks/content-slot-html.raw.d.ts +0 -7
  67. package/dist/src/__tests__/data/blocks/content-slot-html.raw.jsx +0 -15
  68. package/dist/src/__tests__/data/blocks/content-slot-jsx.raw.d.ts +0 -6
  69. package/dist/src/__tests__/data/blocks/content-slot-jsx.raw.jsx +0 -15
  70. package/dist/src/__tests__/data/blocks/custom-code.raw.d.ts +0 -5
  71. package/dist/src/__tests__/data/blocks/custom-code.raw.jsx +0 -48
  72. package/dist/src/__tests__/data/blocks/embed.raw.d.ts +0 -4
  73. package/dist/src/__tests__/data/blocks/embed.raw.jsx +0 -48
  74. package/dist/src/__tests__/data/blocks/form.raw.d.ts +0 -25
  75. package/dist/src/__tests__/data/blocks/form.raw.jsx +0 -272
  76. package/dist/src/__tests__/data/blocks/image.raw.d.ts +0 -15
  77. package/dist/src/__tests__/data/blocks/image.raw.jsx +0 -65
  78. package/dist/src/__tests__/data/blocks/img-state.raw.d.ts +0 -1
  79. package/dist/src/__tests__/data/blocks/img-state.raw.jsx +0 -17
  80. package/dist/src/__tests__/data/blocks/img.raw.d.ts +0 -9
  81. package/dist/src/__tests__/data/blocks/img.raw.jsx +0 -11
  82. package/dist/src/__tests__/data/blocks/input.raw.d.ts +0 -11
  83. package/dist/src/__tests__/data/blocks/input.raw.jsx +0 -8
  84. package/dist/src/__tests__/data/blocks/multiple-onUpdate.raw.d.ts +0 -1
  85. package/dist/src/__tests__/data/blocks/multiple-onUpdate.raw.jsx +0 -13
  86. package/dist/src/__tests__/data/blocks/multiple-onUpdateWithDeps.raw.d.ts +0 -1
  87. package/dist/src/__tests__/data/blocks/multiple-onUpdateWithDeps.raw.jsx +0 -25
  88. package/dist/src/__tests__/data/blocks/onInit-onMount.raw.d.ts +0 -1
  89. package/dist/src/__tests__/data/blocks/onInit-onMount.raw.jsx +0 -13
  90. package/dist/src/__tests__/data/blocks/onInit.raw.d.ts +0 -8
  91. package/dist/src/__tests__/data/blocks/onInit.raw.jsx +0 -20
  92. package/dist/src/__tests__/data/blocks/onMount.raw.d.ts +0 -1
  93. package/dist/src/__tests__/data/blocks/onMount.raw.jsx +0 -13
  94. package/dist/src/__tests__/data/blocks/onUpdate.raw.d.ts +0 -1
  95. package/dist/src/__tests__/data/blocks/onUpdate.raw.jsx +0 -10
  96. package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.d.ts +0 -5
  97. package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.jsx +0 -14
  98. package/dist/src/__tests__/data/blocks/raw-text.raw.d.ts +0 -5
  99. package/dist/src/__tests__/data/blocks/raw-text.raw.jsx +0 -7
  100. package/dist/src/__tests__/data/blocks/root-fragment-multi-node.raw.d.ts +0 -7
  101. package/dist/src/__tests__/data/blocks/root-fragment-multi-node.raw.jsx +0 -18
  102. package/dist/src/__tests__/data/blocks/rootShow.raw.d.ts +0 -3
  103. package/dist/src/__tests__/data/blocks/rootShow.raw.jsx +0 -9
  104. package/dist/src/__tests__/data/blocks/section-state.raw.d.ts +0 -6
  105. package/dist/src/__tests__/data/blocks/section-state.raw.jsx +0 -17
  106. package/dist/src/__tests__/data/blocks/section.raw.d.ts +0 -7
  107. package/dist/src/__tests__/data/blocks/section.raw.jsx +0 -11
  108. package/dist/src/__tests__/data/blocks/select.raw.d.ts +0 -11
  109. package/dist/src/__tests__/data/blocks/select.raw.jsx +0 -14
  110. package/dist/src/__tests__/data/blocks/self-referencing-component-with-children.raw.d.ts +0 -1
  111. package/dist/src/__tests__/data/blocks/self-referencing-component-with-children.raw.jsx +0 -15
  112. package/dist/src/__tests__/data/blocks/self-referencing-component.raw.d.ts +0 -1
  113. package/dist/src/__tests__/data/blocks/self-referencing-component.raw.jsx +0 -12
  114. package/dist/src/__tests__/data/blocks/shadow-dom.raw.d.ts +0 -6
  115. package/dist/src/__tests__/data/blocks/shadow-dom.raw.jsx +0 -52
  116. package/dist/src/__tests__/data/blocks/slot-html.raw.d.ts +0 -5
  117. package/dist/src/__tests__/data/blocks/slot-html.raw.jsx +0 -15
  118. package/dist/src/__tests__/data/blocks/slot-jsx.raw.d.ts +0 -5
  119. package/dist/src/__tests__/data/blocks/slot-jsx.raw.jsx +0 -12
  120. package/dist/src/__tests__/data/blocks/stamped-io.raw.d.ts +0 -6
  121. package/dist/src/__tests__/data/blocks/stamped-io.raw.jsx +0 -60
  122. package/dist/src/__tests__/data/blocks/submit-button.raw.d.ts +0 -6
  123. package/dist/src/__tests__/data/blocks/submit-button.raw.jsx +0 -9
  124. package/dist/src/__tests__/data/blocks/text.raw.d.ts +0 -8
  125. package/dist/src/__tests__/data/blocks/text.raw.jsx +0 -19
  126. package/dist/src/__tests__/data/blocks/textarea.raw.d.ts +0 -8
  127. package/dist/src/__tests__/data/blocks/textarea.raw.jsx +0 -6
  128. package/dist/src/__tests__/data/blocks/video.raw.d.ts +0 -17
  129. package/dist/src/__tests__/data/blocks/video.raw.jsx +0 -21
  130. package/dist/src/__tests__/data/context/component-with-context.lite.d.ts +0 -3
  131. package/dist/src/__tests__/data/context/component-with-context.lite.jsx +0 -21
  132. package/dist/src/__tests__/data/context/simple.context.lite.d.ts +0 -9
  133. package/dist/src/__tests__/data/context/simple.context.lite.js +0 -15
  134. package/dist/src/__tests__/data/default-props/default-props.raw.d.ts +0 -7
  135. package/dist/src/__tests__/data/default-props/default-props.raw.jsx +0 -23
  136. package/dist/src/__tests__/data/jsx-json.spec.d.ts +0 -2
  137. package/dist/src/__tests__/data/jsx-json.spec.js +0 -10226
  138. package/dist/src/__tests__/data/nested-styles.lite.d.ts +0 -1
  139. package/dist/src/__tests__/data/nested-styles.lite.jsx +0 -20
  140. package/dist/src/__tests__/data/show/nested-show.raw.d.ts +0 -6
  141. package/dist/src/__tests__/data/show/nested-show.raw.jsx +0 -11
  142. package/dist/src/__tests__/data/show/show-with-for.raw.d.ts +0 -6
  143. package/dist/src/__tests__/data/show/show-with-for.raw.jsx +0 -9
  144. package/dist/src/__tests__/data/styles/class-and-className.raw.d.ts +0 -1
  145. package/dist/src/__tests__/data/styles/class-and-className.raw.jsx +0 -10
  146. package/dist/src/__tests__/data/styles/class.raw.d.ts +0 -1
  147. package/dist/src/__tests__/data/styles/class.raw.jsx +0 -10
  148. package/dist/src/__tests__/data/styles/className.raw.d.ts +0 -1
  149. package/dist/src/__tests__/data/styles/className.raw.jsx +0 -10
  150. package/dist/src/__tests__/data/styles/classState.raw.d.ts +0 -1
  151. package/dist/src/__tests__/data/styles/classState.raw.jsx +0 -13
  152. package/dist/src/__tests__/data/types/component-props-interface.raw.d.ts +0 -6
  153. package/dist/src/__tests__/data/types/component-props-interface.raw.jsx +0 -6
  154. package/dist/src/__tests__/data/types/component-props-type.raw.d.ts +0 -6
  155. package/dist/src/__tests__/data/types/component-props-type.raw.jsx +0 -6
  156. package/dist/src/__tests__/data/types/component-with-default-values-types.raw.d.ts +0 -5
  157. package/dist/src/__tests__/data/types/component-with-default-values-types.raw.jsx +0 -9
  158. package/dist/src/__tests__/data/types/foo-type.d.ts +0 -1
  159. package/dist/src/__tests__/data/types/foo-type.js +0 -2
  160. package/dist/src/__tests__/data/types/preserve-typing.raw.d.ts +0 -8
  161. package/dist/src/__tests__/data/types/preserve-typing.raw.jsx +0 -6
  162. package/dist/src/__tests__/data/types/type-dependency.raw.d.ts +0 -7
  163. package/dist/src/__tests__/data/types/type-dependency.raw.jsx +0 -6
  164. package/dist/src/__tests__/data/types/type-export.lite.d.ts +0 -3
  165. package/dist/src/__tests__/data/types/type-export.lite.jsx +0 -6
  166. package/dist/src/__tests__/shared.d.ts +0 -8
  167. package/dist/src/__tests__/shared.js +0 -369
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function Button(props) {
5
- return (<div>
6
- <mitosis_1.Show when={props.link}>
7
- <a {...props.attributes} href={props.link} target={props.openLinkInNewTab ? '_blank' : undefined}>
8
- {props.text}
9
- </a>
10
- </mitosis_1.Show>
11
- <mitosis_1.Show when={!props.link}>
12
- <button {...props.attributes} type="button">
13
- {props.text}
14
- </button>
15
- </mitosis_1.Show>
16
- </div>);
17
- }
18
- exports.default = Button;
@@ -1,7 +0,0 @@
1
- import type { JSX } from '../../../../jsx-runtime';
2
- declare type Props = {
3
- [key: string]: string | JSX.Element;
4
- slotTesting: JSX.Element;
5
- };
6
- export default function ClassNameCode(props: Props): JSX.Element;
7
- export {};
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function ClassNameCode(props) {
5
- var state = (0, mitosis_1.useStore)({
6
- bindings: 'a binding',
7
- });
8
- return (<div>
9
- {/*// @ts-ignore */}
10
- <div className="no binding">Without Binding</div>
11
- {/*// @ts-ignore */}
12
- <div className={state.bindings}>With binding</div>
13
- </div>);
14
- }
15
- exports.default = ClassNameCode;
@@ -1,12 +0,0 @@
1
- declare type Column = {
2
- content: any;
3
- width?: number;
4
- };
5
- export interface ColumnProps {
6
- columns?: Column[];
7
- space?: number;
8
- stackColumnsAt?: 'tablet' | 'mobile' | 'never';
9
- reverseColumnsWhenStacked?: boolean;
10
- }
11
- export default function Column(props: ColumnProps): import("@builder.io/mitosis/jsx-runtime").JSX.Element;
12
- export {};
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function Column(props) {
5
- var state = (0, mitosis_1.useStore)({
6
- getColumns: function () {
7
- return props.columns || [];
8
- },
9
- getGutterSize: function () {
10
- return typeof props.space === 'number' ? props.space || 0 : 20;
11
- },
12
- getWidth: function (index) {
13
- var columns = this.getColumns();
14
- return (columns[index] && columns[index].width) || 100 / columns.length;
15
- },
16
- getColumnCssWidth: function (index) {
17
- var columns = this.getColumns();
18
- var gutterSize = this.getGutterSize();
19
- var subtractWidth = (gutterSize * (columns.length - 1)) / columns.length;
20
- return "calc(".concat(this.getWidth(index), "% - ").concat(subtractWidth, "px)");
21
- },
22
- });
23
- return (<div class="builder-columns" css={{
24
- display: 'flex',
25
- flexDirection: 'column',
26
- alignItems: 'stretch',
27
- lineHeight: 'normal',
28
- '@media (max-width: 999px)': {
29
- flexDirection: 'row',
30
- },
31
- '@media (max-width: 639px)': {
32
- flexDirection: 'row-reverse',
33
- },
34
- }}>
35
- <mitosis_1.For each={props.columns}>
36
- {function (column, index) { return (<div class="builder-column" css={{ flexGrow: '1' }}>
37
- {column.content} {index}
38
- </div>); }}
39
- </mitosis_1.For>
40
- </div>);
41
- }
42
- exports.default = Column;
@@ -1,7 +0,0 @@
1
- import type { JSX } from '../../../../jsx-runtime';
2
- declare type Props = {
3
- [key: string]: string | JSX.Element;
4
- slotTesting: JSX.Element;
5
- };
6
- export default function ContentSlotCode(props: Props): JSX.Element;
7
- export {};
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function ContentSlotCode(props) {
5
- return (<div>
6
- <mitosis_1.Slot name={props.slotTesting}/>
7
- <div>
8
- <hr />
9
- </div>
10
- <div>
11
- <mitosis_1.Slot />
12
- </div>
13
- </div>);
14
- }
15
- exports.default = ContentSlotCode;
@@ -1,6 +0,0 @@
1
- import type { JSX } from '../../../../jsx-runtime';
2
- declare type Props = {
3
- [key: string]: string | JSX.Element;
4
- };
5
- export default function ContentSlotJsxCode(props: Props): JSX.Element;
6
- export {};
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function ContentSlotJsxCode(props) {
5
- return (<div>
6
- <mitosis_1.Show when={props.slotTesting}>
7
- <div>{props.slotTesting}</div>
8
- </mitosis_1.Show>
9
- <div>
10
- <hr />
11
- </div>
12
- <div>{props.children}</div>
13
- </div>);
14
- }
15
- exports.default = ContentSlotJsxCode;
@@ -1,5 +0,0 @@
1
- export interface CustomCodeProps {
2
- code: string;
3
- replaceNodes?: boolean;
4
- }
5
- export default function CustomCode(props: CustomCodeProps): import("@builder.io/mitosis/jsx-runtime").JSX.Element;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function CustomCode(props) {
5
- var elem = (0, mitosis_1.useRef)(null);
6
- var state = (0, mitosis_1.useStore)({
7
- scriptsInserted: [],
8
- scriptsRun: [],
9
- findAndRunScripts: function () {
10
- // TODO: Move this function to standalone one in '@builder.io/utils'
11
- if (elem && typeof window !== 'undefined') {
12
- /** @type {HTMLScriptElement[]} */
13
- var scripts = elem.getElementsByTagName('script');
14
- for (var i = 0; i < scripts.length; i++) {
15
- var script = scripts[i];
16
- if (script.src) {
17
- if (state.scriptsInserted.includes(script.src)) {
18
- continue;
19
- }
20
- state.scriptsInserted.push(script.src);
21
- var newScript = document.createElement('script');
22
- newScript.async = true;
23
- newScript.src = script.src;
24
- document.head.appendChild(newScript);
25
- }
26
- else if (!script.type ||
27
- ['text/javascript', 'application/javascript', 'application/ecmascript'].includes(script.type)) {
28
- if (state.scriptsRun.includes(script.innerText)) {
29
- continue;
30
- }
31
- try {
32
- state.scriptsRun.push(script.innerText);
33
- new Function(script.innerText)();
34
- }
35
- catch (error) {
36
- console.warn('`CustomCode`: Error running script:', error);
37
- }
38
- }
39
- }
40
- }
41
- },
42
- });
43
- (0, mitosis_1.onMount)(function () {
44
- state.findAndRunScripts();
45
- });
46
- return (<div ref={elem} class={'builder-custom-code' + (props.replaceNodes ? ' replace-nodes' : '')} innerHTML={props.code}></div>);
47
- }
48
- exports.default = CustomCode;
@@ -1,4 +0,0 @@
1
- export interface EmbedProps {
2
- content: string;
3
- }
4
- export default function Embed(props: EmbedProps): import("@builder.io/mitosis/jsx-runtime").JSX.Element;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function Embed(props) {
5
- var elem = (0, mitosis_1.useRef)(null);
6
- var state = (0, mitosis_1.useStore)({
7
- scriptsInserted: [],
8
- scriptsRun: [],
9
- findAndRunScripts: function () {
10
- // TODO: Move this function to standalone one in '@builder.io/utils'
11
- if (elem && typeof window !== 'undefined') {
12
- /** @type {HTMLScriptElement[]} */
13
- var scripts = elem.getElementsByTagName('script');
14
- for (var i = 0; i < scripts.length; i++) {
15
- var script = scripts[i];
16
- if (script.src) {
17
- if (state.scriptsInserted.includes(script.src)) {
18
- continue;
19
- }
20
- state.scriptsInserted.push(script.src);
21
- var newScript = document.createElement('script');
22
- newScript.async = true;
23
- newScript.src = script.src;
24
- document.head.appendChild(newScript);
25
- }
26
- else if (!script.type ||
27
- ['text/javascript', 'application/javascript', 'application/ecmascript'].includes(script.type)) {
28
- if (state.scriptsRun.includes(script.innerText)) {
29
- continue;
30
- }
31
- try {
32
- state.scriptsRun.push(script.innerText);
33
- new Function(script.innerText)();
34
- }
35
- catch (error) {
36
- console.warn('`Embed`: Error running script:', error);
37
- }
38
- }
39
- }
40
- }
41
- },
42
- });
43
- (0, mitosis_1.onMount)(function () {
44
- state.findAndRunScripts();
45
- });
46
- return <div ref={elem} class="builder-embed" innerHTML={props.content}></div>;
47
- }
48
- exports.default = Embed;
@@ -1,25 +0,0 @@
1
- import { BuilderElement } from '@builder.io/sdk';
2
- export interface FormProps {
3
- attributes?: any;
4
- name?: string;
5
- action?: string;
6
- validate?: boolean;
7
- method?: string;
8
- builderBlock?: BuilderElement;
9
- sendSubmissionsTo?: string;
10
- sendSubmissionsToEmail?: string;
11
- sendWithJs?: boolean;
12
- contentType?: string;
13
- customHeaders?: {
14
- [key: string]: string;
15
- };
16
- successUrl?: string;
17
- previewState?: FormState;
18
- successMessage?: BuilderElement[];
19
- errorMessage?: BuilderElement[];
20
- sendingMessage?: BuilderElement[];
21
- resetFormOnSubmit?: boolean;
22
- errorMessagePath?: string;
23
- }
24
- export declare type FormState = 'unsubmitted' | 'sending' | 'success' | 'error';
25
- export default function FormComponent(props: FormProps): import("@builder.io/mitosis/jsx-runtime").JSX.Element;
@@ -1,272 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var mitosis_1 = require("@builder.io/mitosis");
40
- var _fake_1 = require("@fake");
41
- var sdk_1 = require("@builder.io/sdk");
42
- var _fake_2 = require("@fake");
43
- var _fake_3 = require("@fake");
44
- var _fake_4 = require("@fake");
45
- function FormComponent(props) {
46
- var _a;
47
- var state = (0, mitosis_1.useStore)({
48
- formState: 'unsubmitted',
49
- // TODO: separate response and error?
50
- responseData: null,
51
- formErrorMessage: '',
52
- get submissionState() {
53
- return (sdk_1.Builder.isEditing && props.previewState) || state.formState;
54
- },
55
- onSubmit: function (event) {
56
- var _this = this;
57
- var _a;
58
- var sendWithJs = props.sendWithJs || props.sendSubmissionsTo === 'email';
59
- if (props.sendSubmissionsTo === 'zapier') {
60
- event.preventDefault();
61
- }
62
- else if (sendWithJs) {
63
- if (!(props.action || props.sendSubmissionsTo === 'email')) {
64
- event.preventDefault();
65
- return;
66
- }
67
- event.preventDefault();
68
- var el = event.currentTarget;
69
- var headers = props.customHeaders || {};
70
- var body = void 0;
71
- var formData = new FormData(el);
72
- // TODO: maybe support null
73
- var formPairs = Array.from(event.currentTarget.querySelectorAll('input,select,textarea'))
74
- .filter(function (el) { return !!el.name; })
75
- .map(function (el) {
76
- var value;
77
- var key = el.name;
78
- if (el instanceof HTMLInputElement) {
79
- if (el.type === 'radio') {
80
- if (el.checked) {
81
- value = el.name;
82
- return { key: key, value: value };
83
- }
84
- }
85
- else if (el.type === 'checkbox') {
86
- value = el.checked;
87
- }
88
- else if (el.type === 'number' || el.type === 'range') {
89
- var num = el.valueAsNumber;
90
- if (!isNaN(num)) {
91
- value = num;
92
- }
93
- }
94
- else if (el.type === 'file') {
95
- // TODO: one vs multiple files
96
- value = el.files;
97
- }
98
- else {
99
- value = el.value;
100
- }
101
- }
102
- else {
103
- value = el.value;
104
- }
105
- return { key: key, value: value };
106
- });
107
- var contentType_1 = props.contentType;
108
- if (props.sendSubmissionsTo === 'email') {
109
- contentType_1 = 'multipart/form-data';
110
- }
111
- Array.from(formPairs).forEach(function (_a) {
112
- var value = _a.value;
113
- if (value instanceof File ||
114
- (Array.isArray(value) && value[0] instanceof File) ||
115
- value instanceof FileList) {
116
- contentType_1 = 'multipart/form-data';
117
- }
118
- });
119
- // TODO: send as urlEncoded or multipart by default
120
- // because of ease of use and reliability in browser API
121
- // for encoding the form?
122
- if (contentType_1 !== 'application/json') {
123
- body = formData;
124
- }
125
- else {
126
- // Json
127
- var json_1 = {};
128
- Array.from(formPairs).forEach(function (_a) {
129
- var value = _a.value, key = _a.key;
130
- (0, _fake_3.set)(json_1, key, value);
131
- });
132
- body = JSON.stringify(json_1);
133
- }
134
- if (contentType_1 && contentType_1 !== 'multipart/form-data') {
135
- if (
136
- /* Zapier doesn't allow content-type header to be sent from browsers */
137
- !(sendWithJs && ((_a = props.action) === null || _a === void 0 ? void 0 : _a.includes('zapier.com')))) {
138
- headers['content-type'] = contentType_1;
139
- }
140
- }
141
- var presubmitEvent = new CustomEvent('presubmit', {
142
- detail: {
143
- body: body,
144
- },
145
- });
146
- if (formRef) {
147
- formRef.dispatchEvent(presubmitEvent);
148
- if (presubmitEvent.defaultPrevented) {
149
- return;
150
- }
151
- }
152
- state.formState = 'sending';
153
- var formUrl = "".concat(sdk_1.builder.env === 'dev' ? 'http://localhost:5000' : 'https://builder.io', "/api/v1/form-submit?apiKey=").concat(sdk_1.builder.apiKey, "&to=").concat(btoa(props.sendSubmissionsToEmail || ''), "&name=").concat(encodeURIComponent(props.name || ''));
154
- fetch(props.sendSubmissionsTo === 'email'
155
- ? formUrl
156
- : props.action /* TODO: throw error if no action URL */, {
157
- body: body,
158
- headers: headers,
159
- method: props.method || 'post',
160
- }).then(function (res) { return __awaiter(_this, void 0, void 0, function () {
161
- var body, contentType, message, submitSuccessEvent, event_1;
162
- return __generator(this, function (_a) {
163
- switch (_a.label) {
164
- case 0:
165
- contentType = res.headers.get('content-type');
166
- if (!(contentType && contentType.indexOf('application/json') !== -1)) return [3 /*break*/, 2];
167
- return [4 /*yield*/, res.json()];
168
- case 1:
169
- body = _a.sent();
170
- return [3 /*break*/, 4];
171
- case 2: return [4 /*yield*/, res.text()];
172
- case 3:
173
- body = _a.sent();
174
- _a.label = 4;
175
- case 4:
176
- if (!res.ok && props.errorMessagePath) {
177
- message = (0, _fake_4.get)(body, props.errorMessagePath);
178
- if (message) {
179
- if (typeof message !== 'string') {
180
- /* TODO: ideally convert json to yaml so it woul dbe like
181
- error: - email has been taken */
182
- message = JSON.stringify(message);
183
- }
184
- state.formErrorMessage = message;
185
- }
186
- }
187
- state.responseData = body;
188
- state.formState = res.ok ? 'success' : 'error';
189
- if (res.ok) {
190
- submitSuccessEvent = new CustomEvent('submit:success', {
191
- detail: {
192
- res: res,
193
- body: body,
194
- },
195
- });
196
- if (formRef) {
197
- formRef.dispatchEvent(submitSuccessEvent);
198
- if (submitSuccessEvent.defaultPrevented) {
199
- return [2 /*return*/];
200
- }
201
- /* TODO: option to turn this on/off? */
202
- if (props.resetFormOnSubmit !== false) {
203
- formRef.reset();
204
- }
205
- }
206
- /* TODO: client side route event first that can be preventDefaulted */
207
- if (props.successUrl) {
208
- if (formRef) {
209
- event_1 = new CustomEvent('route', {
210
- detail: {
211
- url: props.successUrl,
212
- },
213
- });
214
- formRef.dispatchEvent(event_1);
215
- if (!event_1.defaultPrevented) {
216
- location.href = props.successUrl;
217
- }
218
- }
219
- else {
220
- location.href = props.successUrl;
221
- }
222
- }
223
- }
224
- return [2 /*return*/];
225
- }
226
- });
227
- }); }, function (err) {
228
- var submitErrorEvent = new CustomEvent('submit:error', {
229
- detail: {
230
- error: err,
231
- },
232
- });
233
- if (formRef) {
234
- formRef.dispatchEvent(submitErrorEvent);
235
- if (submitErrorEvent.defaultPrevented) {
236
- return;
237
- }
238
- }
239
- state.responseData = err;
240
- state.formState = 'error';
241
- });
242
- }
243
- },
244
- });
245
- var formRef = (0, mitosis_1.useRef)(null);
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
- <mitosis_1.Show when={props.builderBlock && props.builderBlock.children}>
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}/>; }}
250
- </mitosis_1.For>
251
- </mitosis_1.Show>
252
-
253
- <mitosis_1.Show when={state.submissionState === 'error'}>
254
- <_fake_2.BuilderBlocks dataPath="errorMessage" blocks={props.errorMessage}/>
255
- </mitosis_1.Show>
256
-
257
- <mitosis_1.Show when={state.submissionState === 'sending'}>
258
- <_fake_2.BuilderBlocks dataPath="sendingMessage" blocks={props.sendingMessage}/>
259
- </mitosis_1.Show>
260
-
261
- <mitosis_1.Show when={state.submissionState === 'error' && state.responseData}>
262
- <pre class="builder-form-error-text" css={{ padding: '10px', color: 'red', textAlign: 'center' }}>
263
- {JSON.stringify(state.responseData, null, 2)}
264
- </pre>
265
- </mitosis_1.Show>
266
-
267
- <mitosis_1.Show when={state.submissionState === 'success'}>
268
- <_fake_2.BuilderBlocks dataPath="successMessage" blocks={props.successMessage}/>
269
- </mitosis_1.Show>
270
- </form>);
271
- }
272
- exports.default = FormComponent;
@@ -1,15 +0,0 @@
1
- export interface ImageProps {
2
- _class?: string;
3
- image: string;
4
- sizes?: string;
5
- lazy?: boolean;
6
- height?: number;
7
- width?: number;
8
- altText?: string;
9
- backgroundSize?: string;
10
- backgroundPosition?: string;
11
- srcset?: string;
12
- aspectRatio?: number;
13
- children?: any;
14
- }
15
- export default function Image(props: ImageProps): import("@builder.io/mitosis/jsx-runtime").JSX.Element;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function Image(props) {
5
- var pictureRef = (0, mitosis_1.useRef)();
6
- var state = (0, mitosis_1.useStore)({
7
- scrollListener: null,
8
- imageLoaded: false,
9
- setLoaded: function () {
10
- state.imageLoaded = true;
11
- },
12
- useLazyLoading: function () {
13
- // TODO: Add more checks here, like testing for real web browsers
14
- return !!props.lazy && isBrowser();
15
- },
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];
21
- (0, mitosis_1.onMount)(function () {
22
- if (state.useLazyLoading()) {
23
- // throttled scroll capture listener
24
- var listener_1 = function () {
25
- if (pictureRef) {
26
- var rect = pictureRef.getBoundingClientRect();
27
- var buffer = window.innerHeight / 2;
28
- if (rect.top < window.innerHeight + buffer) {
29
- setLoad(true);
30
- state.scrollListener = null;
31
- window.removeEventListener('scroll', listener_1);
32
- }
33
- }
34
- };
35
- state.scrollListener = listener_1;
36
- window.addEventListener('scroll', listener_1, {
37
- capture: true,
38
- passive: true,
39
- });
40
- listener_1();
41
- }
42
- });
43
- (0, mitosis_1.onUnMount)(function () {
44
- if (state.scrollListener) {
45
- window.removeEventListener('scroll', state.scrollListener);
46
- }
47
- });
48
- return (<div>
49
- <picture ref={pictureRef}>
50
- <mitosis_1.Show when={!state.useLazyLoading() || load}>
51
- <img alt={props.altText} aria-role={props.altText ? 'presentation' : undefined} css={{
52
- opacity: '1',
53
- transition: 'opacity 0.2s ease-in-out',
54
- objectFit: 'cover',
55
- objectPosition: 'center',
56
- }} class={'builder-image' + (props._class ? ' ' + props._class : '')} src={props.image} onLoad={function () { return state.setLoaded(); }}
57
- // TODO: memoize on image on client
58
- srcset={props.srcset} sizes={props.sizes}/>
59
- </mitosis_1.Show>
60
- <source srcset={props.srcset}/>
61
- </picture>
62
- {props.children}
63
- </div>);
64
- }
65
- exports.default = Image;
@@ -1 +0,0 @@
1
- export default function ImgStateComponent(): import("@builder.io/mitosis/jsx-runtime").JSX.Element;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var mitosis_1 = require("@builder.io/mitosis");
4
- function ImgStateComponent() {
5
- var state = (0, mitosis_1.useStore)({
6
- canShow: true,
7
- images: ['http://example.com/qwik.png'],
8
- });
9
- return (<div>
10
- <mitosis_1.For each={state.images}>
11
- {function (item, itemIndex) { return (<>
12
- <img class={'custom-class'} src={item} key={itemIndex}/>
13
- </>); }}
14
- </mitosis_1.For>
15
- </div>);
16
- }
17
- exports.default = ImgStateComponent;