@builder.io/sdk-solid 0.1.2 → 0.1.3

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 (38) hide show
  1. package/dist/sdk-solid.cjs +34 -0
  2. package/dist/sdk-solid.js +3937 -0
  3. package/package.json +5 -6
  4. package/src/blocks/BaseText.jsx +5 -1
  5. package/src/blocks/button/button.jsx +25 -7
  6. package/src/blocks/columns/columns.jsx +84 -38
  7. package/src/blocks/custom-code/custom-code.jsx +25 -3
  8. package/src/blocks/embed/embed.jsx +14 -2
  9. package/src/blocks/form/form.jsx +175 -121
  10. package/src/blocks/fragment/fragment.jsx +2 -1
  11. package/src/blocks/image/image.jsx +75 -38
  12. package/src/blocks/img/img.jsx +15 -5
  13. package/src/blocks/input/input.jsx +17 -2
  14. package/src/blocks/raw-text/raw-text.jsx +8 -2
  15. package/src/blocks/section/section.jsx +24 -14
  16. package/src/blocks/select/select.jsx +21 -6
  17. package/src/blocks/submit-button/submit-button.jsx +6 -3
  18. package/src/blocks/symbol/symbol.jsx +54 -15
  19. package/src/blocks/text/text.jsx +2 -1
  20. package/src/blocks/textarea/textarea.jsx +11 -2
  21. package/src/blocks/video/video.jsx +49 -27
  22. package/src/components/render-block/block-styles.jsx +45 -21
  23. package/src/components/render-block/render-block.helpers.js +90 -0
  24. package/src/components/render-block/render-block.jsx +110 -131
  25. package/src/components/render-block/render-component.jsx +26 -9
  26. package/src/components/render-block/render-repeated-block.jsx +20 -24
  27. package/src/components/render-blocks.jsx +70 -30
  28. package/src/components/render-content/builder-editing.jsx +2 -1
  29. package/src/components/render-content/components/render-styles.jsx +17 -8
  30. package/src/components/render-content/render-content.jsx +234 -148
  31. package/src/components/render-inlined-styles.jsx +14 -4
  32. package/src/functions/track/helpers.js +50 -0
  33. package/src/functions/{track.js → track/index.js} +10 -6
  34. package/src/functions/track/interaction.js +53 -0
  35. package/src/index.js +1 -1
  36. package/vite.config.ts +18 -0
  37. package/solid-index.jsx +0 -5
  38. package/src/components/render-block/render-component-with-context.jsx +0 -28
@@ -0,0 +1,53 @@
1
+ function round(num) {
2
+ return Math.round(num * 1e3) / 1e3;
3
+ }
4
+ const findParentElement = (target, callback, checkElement = true) => {
5
+ if (!(target instanceof HTMLElement)) {
6
+ return null;
7
+ }
8
+ let parent = checkElement ? target : target.parentElement;
9
+ do {
10
+ if (!parent) {
11
+ return null;
12
+ }
13
+ const matches = callback(parent);
14
+ if (matches) {
15
+ return parent;
16
+ }
17
+ } while (parent = parent.parentElement);
18
+ return null;
19
+ };
20
+ const findBuilderParent = (target) => findParentElement(target, (el) => {
21
+ const id = el.getAttribute("builder-id") || el.id;
22
+ return Boolean((id == null ? void 0 : id.indexOf("builder-")) === 0);
23
+ });
24
+ const computeOffset = ({
25
+ event,
26
+ target
27
+ }) => {
28
+ const targetRect = target.getBoundingClientRect();
29
+ const xOffset = event.clientX - targetRect.left;
30
+ const yOffset = event.clientY - targetRect.top;
31
+ const xRatio = round(xOffset / targetRect.width);
32
+ const yRatio = round(yOffset / targetRect.height);
33
+ return {
34
+ x: xRatio,
35
+ y: yRatio
36
+ };
37
+ };
38
+ const getInteractionPropertiesForEvent = (event) => {
39
+ const target = event.target;
40
+ const targetBuilderElement = target && findBuilderParent(target);
41
+ const builderId = (targetBuilderElement == null ? void 0 : targetBuilderElement.getAttribute("builder-id")) || (targetBuilderElement == null ? void 0 : targetBuilderElement.id);
42
+ return {
43
+ targetBuilderElement: builderId || void 0,
44
+ metadata: {
45
+ targetOffset: target ? computeOffset({ event, target }) : void 0,
46
+ builderTargetOffset: targetBuilderElement ? computeOffset({ event, target: targetBuilderElement }) : void 0,
47
+ builderElementIndex: targetBuilderElement && builderId ? [].slice.call(document.getElementsByClassName(builderId)).indexOf(targetBuilderElement) : void 0
48
+ }
49
+ };
50
+ };
51
+ export {
52
+ getInteractionPropertiesForEvent
53
+ };
package/src/index.js CHANGED
@@ -8,7 +8,7 @@ export * from "./functions/register.js";
8
8
  export * from "./functions/set-editor-settings.js";
9
9
  export * from "./functions/get-content/index.js";
10
10
  export * from "./functions/get-builder-search-params/index.js";
11
- import { track } from "./functions/track";
11
+ import { track } from "./functions/track/index.js";
12
12
  export {
13
13
  track
14
14
  };
package/vite.config.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { resolve } from 'path';
2
+ import { defineConfig } from 'vite';
3
+ import solidPlugin from 'vite-plugin-solid';
4
+ // import dts from 'vite-plugin-dts';
5
+
6
+ // https://vitejs.dev/config/
7
+ export default defineConfig({
8
+ plugins: [
9
+ solidPlugin(),
10
+ // dts({ insertTypesEntry: true })
11
+ ],
12
+ build: {
13
+ lib: {
14
+ entry: resolve(__dirname, 'src/index.js'),
15
+ formats: ['cjs', 'es'],
16
+ },
17
+ },
18
+ });
package/solid-index.jsx DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * We need to have a `.jsx` entry point for our SolidJS SDK. To avoid enforcing this to all other frameworks,
3
- * we add this file and use it to re-export the index.js file from the Mitosis-generated code.
4
- */
5
- export * from './src/index.js';
@@ -1,28 +0,0 @@
1
- import { Dynamic } from "solid-js/web";
2
- import BuilderContext from "../../context/builder.context.js";
3
- import RenderComponent from "./render-component.jsx";
4
- function RenderComponentWithContext(props) {
5
- return <Dynamic value={{
6
- get content() {
7
- return props.context.content;
8
- },
9
- get state() {
10
- return props.context.state;
11
- },
12
- get context() {
13
- return props.context.context;
14
- },
15
- get apiKey() {
16
- return props.context.apiKey;
17
- },
18
- get registeredComponents() {
19
- return props.context.registeredComponents;
20
- },
21
- get inheritedStyles() {
22
- return props.context.inheritedStyles;
23
- }
24
- }} component={BuilderContext.Provider}>
25
- <RenderComponent componentRef={props.componentRef} componentOptions={props.componentOptions} blockChildren={props.blockChildren} context={props.context}></RenderComponent>
26
- </Dynamic>;
27
- }
28
- export default RenderComponentWithContext;