@builder.io/sdk-svelte 3.0.7 → 4.0.0

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 (58) hide show
  1. package/lib/browser/blocks/symbol/symbol.svelte +1 -1
  2. package/lib/browser/blocks/video/video.svelte +54 -9
  3. package/lib/browser/blocks/video/video.svelte.d.ts +2 -2
  4. package/lib/browser/components/content/components/enable-editor.svelte +6 -5
  5. package/lib/browser/components/content/components/enable-editor.svelte.d.ts +2 -2
  6. package/lib/browser/components/content/content.svelte +3 -3
  7. package/lib/browser/components/content/content.svelte.d.ts +2 -2
  8. package/lib/browser/components/content-variants/content-variants.svelte +2 -2
  9. package/lib/browser/components/content-variants/content-variants.svelte.d.ts +2 -2
  10. package/lib/browser/components/content-variants/content-variants.types.d.ts +2 -2
  11. package/lib/browser/constants/sdk-version.d.ts +1 -1
  12. package/lib/browser/constants/sdk-version.js +1 -1
  13. package/lib/browser/helpers/subscribe-to-editor.d.ts +13 -13
  14. package/lib/browser/helpers/subscribe-to-editor.js +6 -3
  15. package/lib/browser/scripts/init-editing.d.ts +3 -1
  16. package/lib/browser/scripts/init-editing.js +3 -1
  17. package/lib/edge/blocks/symbol/symbol.svelte +1 -1
  18. package/lib/edge/blocks/video/video.svelte +54 -9
  19. package/lib/edge/blocks/video/video.svelte.d.ts +2 -2
  20. package/lib/edge/components/content/components/enable-editor.svelte +6 -5
  21. package/lib/edge/components/content/components/enable-editor.svelte.d.ts +2 -2
  22. package/lib/edge/components/content/content.svelte +3 -3
  23. package/lib/edge/components/content/content.svelte.d.ts +2 -2
  24. package/lib/edge/components/content-variants/content-variants.svelte +2 -2
  25. package/lib/edge/components/content-variants/content-variants.svelte.d.ts +2 -2
  26. package/lib/edge/components/content-variants/content-variants.types.d.ts +2 -2
  27. package/lib/edge/constants/sdk-version.d.ts +1 -1
  28. package/lib/edge/constants/sdk-version.js +1 -1
  29. package/lib/edge/helpers/subscribe-to-editor.d.ts +13 -13
  30. package/lib/edge/helpers/subscribe-to-editor.js +6 -3
  31. package/lib/edge/scripts/init-editing.d.ts +3 -1
  32. package/lib/edge/scripts/init-editing.js +3 -1
  33. package/lib/node/blocks/symbol/symbol.svelte +1 -1
  34. package/lib/node/blocks/video/video.svelte +54 -9
  35. package/lib/node/blocks/video/video.svelte.d.ts +2 -2
  36. package/lib/node/components/content/components/enable-editor.svelte +6 -5
  37. package/lib/node/components/content/components/enable-editor.svelte.d.ts +2 -2
  38. package/lib/node/components/content/content.svelte +3 -3
  39. package/lib/node/components/content/content.svelte.d.ts +2 -2
  40. package/lib/node/components/content-variants/content-variants.svelte +2 -2
  41. package/lib/node/components/content-variants/content-variants.svelte.d.ts +2 -2
  42. package/lib/node/components/content-variants/content-variants.types.d.ts +2 -2
  43. package/lib/node/constants/sdk-version.d.ts +1 -1
  44. package/lib/node/constants/sdk-version.js +1 -1
  45. package/lib/node/helpers/subscribe-to-editor.d.ts +13 -13
  46. package/lib/node/helpers/subscribe-to-editor.js +6 -3
  47. package/lib/node/scripts/init-editing.d.ts +3 -1
  48. package/lib/node/scripts/init-editing.js +3 -1
  49. package/package.json +1 -1
  50. package/src/blocks/symbol/symbol.svelte +1 -1
  51. package/src/blocks/video/video.svelte +59 -8
  52. package/src/components/content/components/enable-editor.svelte +5 -4
  53. package/src/components/content/content.svelte +3 -3
  54. package/src/components/content-variants/content-variants.svelte +2 -2
  55. package/src/components/content-variants/content-variants.types.ts +2 -2
  56. package/src/constants/sdk-version.ts +1 -1
  57. package/src/helpers/subscribe-to-editor.ts +29 -16
  58. package/src/scripts/init-editing.ts +5 -1
@@ -72,7 +72,7 @@ $: onUpdateFn_0(...[symbol]);
72
72
  ...contentToUse?.data?.state,
73
73
  }}
74
74
  canTrack={$builderContext.canTrack}
75
- model={symbol?.model}
75
+ model={symbol?.model ?? ""}
76
76
  content={contentToUse}
77
77
  linkComponent={builderLinkComponent}
78
78
  blocksWrapper={blocksWrapper()}
@@ -1,4 +1,6 @@
1
- <script>export let autoPlay = undefined;
1
+ <script>import { onDestroy, onMount } from "svelte";
2
+ export let lazyLoad = undefined;
3
+ export let autoPlay = undefined;
2
4
  export let muted = undefined;
3
5
  export let controls = undefined;
4
6
  export let loop = undefined;
@@ -8,9 +10,8 @@ export let attributes = undefined;
8
10
  export let fit = undefined;
9
11
  export let position = undefined;
10
12
  export let aspectRatio = undefined;
11
- export let video = undefined;
12
13
  export let posterImage = undefined;
13
- export let lazyLoad = undefined;
14
+ export let video = undefined;
14
15
  export let fitContent = undefined;
15
16
  export let builderBlock = undefined;
16
17
  function stringifyStyles(stylesObj) {
@@ -57,6 +58,44 @@ $: spreadProps = () => {
57
58
  ...videoProps(),
58
59
  };
59
60
  };
61
+ let videoRef;
62
+ let lazyVideoObserver = undefined;
63
+ onMount(() => {
64
+ if (lazyLoad) {
65
+ const oberver = new IntersectionObserver(function (entries) {
66
+ entries.forEach(function (entry) {
67
+ if (!entry.isIntersecting)
68
+ return;
69
+ const videoElement = entry.target;
70
+ try {
71
+ // Convert HTMLCollection to Array and filter for source elements
72
+ Array.from(videoElement.children)
73
+ .filter((child) => child instanceof HTMLElement && child.tagName === "SOURCE")
74
+ .forEach((source) => {
75
+ const src = source.dataset.src;
76
+ if (src) {
77
+ source.src = src;
78
+ }
79
+ });
80
+ videoElement.load();
81
+ oberver.unobserve(videoElement);
82
+ }
83
+ catch (error) {
84
+ console.error("Error loading lazy video:", error);
85
+ }
86
+ });
87
+ });
88
+ if (videoRef) {
89
+ oberver.observe(videoRef);
90
+ }
91
+ lazyVideoObserver = oberver;
92
+ }
93
+ });
94
+ onDestroy(() => {
95
+ if (lazyVideoObserver) {
96
+ lazyVideoObserver.disconnect();
97
+ }
98
+ });
60
99
  </script>
61
100
 
62
101
  <div
@@ -82,13 +121,19 @@ $: spreadProps = () => {
82
121
  })}
83
122
  class="builder-video"
84
123
  {...spreadProps()}
85
- preload={preload || "metadata"}
86
- src={video || "no-src"}
124
+ bind:this={videoRef}
125
+ preload={lazyLoad ? "none" : preload || "metadata"}
87
126
  poster={posterImage}
88
- >
89
- {#if !lazyLoad}
90
- <source type="video/mp4" src={video} />
91
- {/if}</video
127
+ ><source
128
+ type="video/mp4"
129
+ {...lazyLoad
130
+ ? {
131
+ "data-src": video,
132
+ }
133
+ : {
134
+ src: video,
135
+ }}
136
+ /></video
92
137
  >
93
138
  {#if aspectRatio && !(fitContent && builderBlock?.children?.length)}
94
139
  <div
@@ -2,6 +2,7 @@ import { SvelteComponent } from "svelte";
2
2
  import type { VideoProps } from "./video.types";
3
3
  declare const __propDef: {
4
4
  props: {
5
+ lazyLoad?: VideoProps["lazyLoad"];
5
6
  autoPlay?: VideoProps["autoPlay"];
6
7
  muted?: VideoProps["muted"];
7
8
  controls?: VideoProps["controls"];
@@ -12,9 +13,8 @@ declare const __propDef: {
12
13
  fit?: VideoProps["fit"];
13
14
  position?: VideoProps["position"];
14
15
  aspectRatio?: VideoProps["aspectRatio"];
15
- video?: VideoProps["video"];
16
16
  posterImage?: VideoProps["posterImage"];
17
- lazyLoad?: VideoProps["lazyLoad"];
17
+ video?: VideoProps["video"];
18
18
  fitContent?: VideoProps["fitContent"];
19
19
  builderBlock?: VideoProps["builderBlock"];
20
20
  };
@@ -28,8 +28,8 @@ export let apiHost = undefined;
28
28
  export let locale = undefined;
29
29
  export let enrich = undefined;
30
30
  export let trustedHosts = undefined;
31
- export let model = undefined;
32
- export let content = undefined;
31
+ export let model;
32
+ export let content;
33
33
  export let context = undefined;
34
34
  export let data = undefined;
35
35
  export let showContent;
@@ -187,10 +187,11 @@ function elementRef_onIniteditingbldr(event) {
187
187
  trustedHosts: trustedHosts,
188
188
  }
189
189
  : {}),
190
+ modelName: model ?? "",
191
+ apiKey: apiKey,
190
192
  });
191
193
  Object.values($builderContextSignal.componentInfos).forEach((registeredComponent) => {
192
- if (!model ||
193
- !registeredComponent.models?.length ||
194
+ if (!registeredComponent.models?.length ||
194
195
  registeredComponent.models.includes(model)) {
195
196
  const message = createRegisterComponentMessage(registeredComponent);
196
197
  window.parent?.postMessage(message, "*");
@@ -217,7 +218,7 @@ function elementRef_onInitpreviewingbldr(event) {
217
218
  previewApiKey === apiKey &&
218
219
  (!content || searchParamPreviewId === content.id))) {
219
220
  fetchOneEntry({
220
- model: model || "",
221
+ model: model,
221
222
  apiKey: apiKey,
222
223
  apiVersion: $builderContextSignal.apiVersion,
223
224
  ...(searchParamPreviewModel === "BUILDER_STUDIO" && context?.symbolId
@@ -17,8 +17,8 @@ declare const __propDef: {
17
17
  locale?: BuilderEditorProps["locale"];
18
18
  enrich?: BuilderEditorProps["enrich"];
19
19
  trustedHosts?: BuilderEditorProps["trustedHosts"];
20
- model?: BuilderEditorProps["model"];
21
- content?: BuilderEditorProps["content"];
20
+ model: BuilderEditorProps["model"];
21
+ content: BuilderEditorProps["content"];
22
22
  context?: BuilderEditorProps["context"];
23
23
  data?: BuilderEditorProps["data"];
24
24
  showContent: BuilderEditorProps["showContent"];
@@ -16,7 +16,7 @@ import { getContentInitialValue, getRootStateInitialValue, } from "./content.hel
16
16
  import "./wrap-component-ref";
17
17
  export let apiKey;
18
18
  export let context = undefined;
19
- export let content = undefined;
19
+ export let content;
20
20
  export let customComponents = undefined;
21
21
  export let data = undefined;
22
22
  export let locale = undefined;
@@ -25,7 +25,7 @@ export let apiVersion = undefined;
25
25
  export let blocksWrapper = undefined;
26
26
  export let blocksWrapperProps = undefined;
27
27
  export let nonce = undefined;
28
- export let model = undefined;
28
+ export let model;
29
29
  export let apiHost = undefined;
30
30
  export let enrich = undefined;
31
31
  export let showContent;
@@ -81,7 +81,7 @@ let builderContextSignal = writable({
81
81
  BlocksWrapper: blocksWrapper || "div",
82
82
  BlocksWrapperProps: blocksWrapperProps || {},
83
83
  nonce: nonce || "",
84
- model: model || "",
84
+ model: model,
85
85
  });
86
86
  if (!apiKey) {
87
87
  logger.error("No API key provided to `Content` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
@@ -4,7 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  apiKey: ContentProps["apiKey"];
6
6
  context?: ContentProps["context"];
7
- content?: ContentProps["content"];
7
+ content: ContentProps["content"];
8
8
  customComponents?: ContentProps["customComponents"];
9
9
  data?: ContentProps["data"];
10
10
  locale?: ContentProps["locale"];
@@ -13,7 +13,7 @@ declare const __propDef: {
13
13
  blocksWrapper?: ContentProps["blocksWrapper"];
14
14
  blocksWrapperProps?: ContentProps["blocksWrapperProps"];
15
15
  nonce?: ContentProps["nonce"];
16
- model?: ContentProps["model"];
16
+ model: ContentProps["model"];
17
17
  apiHost?: ContentProps["apiHost"];
18
18
  enrich?: ContentProps["enrich"];
19
19
  showContent: ContentProps["showContent"];
@@ -9,11 +9,11 @@ import InlinedScript from "../inlined-script.svelte";
9
9
  import InlinedStyles from "../inlined-styles.svelte";
10
10
  import { checkShouldRenderVariants, getInitVariantsFnsScriptString, getUpdateCookieAndStylesScript, getVariants, } from "./helpers";
11
11
  export let canTrack = undefined;
12
- export let content = undefined;
12
+ export let content;
13
13
  export let isNestedRender = undefined;
14
14
  export let nonce = undefined;
15
15
  export let apiHost = undefined;
16
- export let model = undefined;
16
+ export let model;
17
17
  export let data = undefined;
18
18
  export let context = undefined;
19
19
  export let apiKey;
@@ -9,11 +9,11 @@ import type { ContentVariantsPrps } from "./content-variants.types";
9
9
  declare const __propDef: {
10
10
  props: {
11
11
  canTrack?: VariantsProviderProps["canTrack"];
12
- content?: VariantsProviderProps["content"];
12
+ content: VariantsProviderProps["content"];
13
13
  isNestedRender?: VariantsProviderProps["isNestedRender"];
14
14
  nonce?: VariantsProviderProps["nonce"];
15
15
  apiHost?: VariantsProviderProps["apiHost"];
16
- model?: VariantsProviderProps["model"];
16
+ model: VariantsProviderProps["model"];
17
17
  data?: VariantsProviderProps["data"];
18
18
  context?: VariantsProviderProps["context"];
19
19
  apiKey: VariantsProviderProps["apiKey"];
@@ -7,11 +7,11 @@ export interface ContentVariantsPrps extends ExtraFrameworkProps {
7
7
  /**
8
8
  * The Builder content JSON to render (required).
9
9
  */
10
- content?: Nullable<BuilderContent>;
10
+ content: Nullable<BuilderContent>;
11
11
  /**
12
12
  * The Builder content `model` to render (required).
13
13
  */
14
- model?: string;
14
+ model: string;
15
15
  /**
16
16
  * Additional data to inject into your Builder content (optional).
17
17
  */
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "3.0.7";
1
+ export declare const SDK_VERSION = "4.0.0";
@@ -1 +1 @@
1
- export const SDK_VERSION = "3.0.7";
1
+ export const SDK_VERSION = "4.0.0";
@@ -9,19 +9,19 @@ type ContentListener = Required<Pick<ContentProps, 'model' | 'trustedHosts'>> &
9
9
  };
10
10
  };
11
11
  export declare const createEditorListener: ({ model, trustedHosts, callbacks }: ContentListener) => (event: MessageEvent<any>) => void;
12
- type SubscribeToEditor = (
13
- /**
14
- * The Builder `model` to subscribe to
15
- */
16
- model: string,
17
- /**
18
- * The callback function to call when the content is updated.
19
- */
20
- callback: (updatedContent: BuilderContent) => void,
21
- /**
22
- * Extra options for the listener.
23
- */
24
- options?: {
12
+ type SubscribeToEditor = ({ model, apiKey, callback, trustedHosts }: {
13
+ /**
14
+ * The Builder `model` to subscribe to
15
+ */
16
+ model: string;
17
+ /**
18
+ * Builder API Key to use for the editor.
19
+ */
20
+ apiKey: string;
21
+ /**
22
+ * The callback function to call when the content is updated.
23
+ */
24
+ callback: (updatedContent: BuilderContent) => void;
25
25
  /**
26
26
  * List of hosts to allow editing content from.
27
27
  */
@@ -38,12 +38,15 @@ export const createEditorListener = ({ model, trustedHosts, callbacks }) => {
38
38
  * Subscribes to the Builder editor and listens to `content` updates of a certain `model`.
39
39
  * Sends the updated `content` to the `callback` function.
40
40
  */
41
- export const subscribeToEditor = (model, callback, options) => {
41
+ export const subscribeToEditor = ({ model, apiKey, callback, trustedHosts }) => {
42
42
  if (!isBrowser) {
43
43
  logger.warn('`subscribeToEditor` only works in the browser. It currently seems to be running on the server.');
44
44
  return () => { };
45
45
  }
46
- setupBrowserForEditing();
46
+ setupBrowserForEditing({
47
+ modelName: model,
48
+ apiKey
49
+ });
47
50
  const listener = createEditorListener({
48
51
  callbacks: {
49
52
  contentUpdate: callback,
@@ -51,7 +54,7 @@ export const subscribeToEditor = (model, callback, options) => {
51
54
  configureSdk: () => { }
52
55
  },
53
56
  model,
54
- trustedHosts: options?.trustedHosts
57
+ trustedHosts
55
58
  });
56
59
  window.addEventListener('message', listener);
57
60
  return () => {
@@ -1,5 +1,7 @@
1
1
  export declare const registerInsertMenu: () => void;
2
- export declare const setupBrowserForEditing: (options?: {
2
+ export declare const setupBrowserForEditing: (options: {
3
+ modelName: string;
4
+ apiKey: string;
3
5
  enrich?: boolean;
4
6
  includeRefs?: boolean;
5
7
  locale?: string;
@@ -27,7 +27,7 @@ export const registerInsertMenu = () => {
27
27
  });
28
28
  };
29
29
  let isSetupForEditing = false;
30
- export const setupBrowserForEditing = (options = {}) => {
30
+ export const setupBrowserForEditing = (options) => {
31
31
  if (isSetupForEditing) {
32
32
  return;
33
33
  }
@@ -43,6 +43,8 @@ export const setupBrowserForEditing = (options = {}) => {
43
43
  // scope our '+ add block' button styling
44
44
  supportsAddBlockScoping: true,
45
45
  supportsCustomBreakpoints: true,
46
+ modelName: options.modelName,
47
+ apiKey: options.apiKey,
46
48
  supportsXSmallBreakpoint: TARGET === 'reactNative' ? false : true,
47
49
  blockLevelPersonalization: true
48
50
  }
@@ -72,7 +72,7 @@ $: onUpdateFn_0(...[symbol]);
72
72
  ...contentToUse?.data?.state,
73
73
  }}
74
74
  canTrack={$builderContext.canTrack}
75
- model={symbol?.model}
75
+ model={symbol?.model ?? ""}
76
76
  content={contentToUse}
77
77
  linkComponent={builderLinkComponent}
78
78
  blocksWrapper={blocksWrapper()}
@@ -1,4 +1,6 @@
1
- <script>export let autoPlay = undefined;
1
+ <script>import { onDestroy, onMount } from "svelte";
2
+ export let lazyLoad = undefined;
3
+ export let autoPlay = undefined;
2
4
  export let muted = undefined;
3
5
  export let controls = undefined;
4
6
  export let loop = undefined;
@@ -8,9 +10,8 @@ export let attributes = undefined;
8
10
  export let fit = undefined;
9
11
  export let position = undefined;
10
12
  export let aspectRatio = undefined;
11
- export let video = undefined;
12
13
  export let posterImage = undefined;
13
- export let lazyLoad = undefined;
14
+ export let video = undefined;
14
15
  export let fitContent = undefined;
15
16
  export let builderBlock = undefined;
16
17
  function stringifyStyles(stylesObj) {
@@ -57,6 +58,44 @@ $: spreadProps = () => {
57
58
  ...videoProps(),
58
59
  };
59
60
  };
61
+ let videoRef;
62
+ let lazyVideoObserver = undefined;
63
+ onMount(() => {
64
+ if (lazyLoad) {
65
+ const oberver = new IntersectionObserver(function (entries) {
66
+ entries.forEach(function (entry) {
67
+ if (!entry.isIntersecting)
68
+ return;
69
+ const videoElement = entry.target;
70
+ try {
71
+ // Convert HTMLCollection to Array and filter for source elements
72
+ Array.from(videoElement.children)
73
+ .filter((child) => child instanceof HTMLElement && child.tagName === "SOURCE")
74
+ .forEach((source) => {
75
+ const src = source.dataset.src;
76
+ if (src) {
77
+ source.src = src;
78
+ }
79
+ });
80
+ videoElement.load();
81
+ oberver.unobserve(videoElement);
82
+ }
83
+ catch (error) {
84
+ console.error("Error loading lazy video:", error);
85
+ }
86
+ });
87
+ });
88
+ if (videoRef) {
89
+ oberver.observe(videoRef);
90
+ }
91
+ lazyVideoObserver = oberver;
92
+ }
93
+ });
94
+ onDestroy(() => {
95
+ if (lazyVideoObserver) {
96
+ lazyVideoObserver.disconnect();
97
+ }
98
+ });
60
99
  </script>
61
100
 
62
101
  <div
@@ -82,13 +121,19 @@ $: spreadProps = () => {
82
121
  })}
83
122
  class="builder-video"
84
123
  {...spreadProps()}
85
- preload={preload || "metadata"}
86
- src={video || "no-src"}
124
+ bind:this={videoRef}
125
+ preload={lazyLoad ? "none" : preload || "metadata"}
87
126
  poster={posterImage}
88
- >
89
- {#if !lazyLoad}
90
- <source type="video/mp4" src={video} />
91
- {/if}</video
127
+ ><source
128
+ type="video/mp4"
129
+ {...lazyLoad
130
+ ? {
131
+ "data-src": video,
132
+ }
133
+ : {
134
+ src: video,
135
+ }}
136
+ /></video
92
137
  >
93
138
  {#if aspectRatio && !(fitContent && builderBlock?.children?.length)}
94
139
  <div
@@ -2,6 +2,7 @@ import { SvelteComponent } from "svelte";
2
2
  import type { VideoProps } from "./video.types";
3
3
  declare const __propDef: {
4
4
  props: {
5
+ lazyLoad?: VideoProps["lazyLoad"];
5
6
  autoPlay?: VideoProps["autoPlay"];
6
7
  muted?: VideoProps["muted"];
7
8
  controls?: VideoProps["controls"];
@@ -12,9 +13,8 @@ declare const __propDef: {
12
13
  fit?: VideoProps["fit"];
13
14
  position?: VideoProps["position"];
14
15
  aspectRatio?: VideoProps["aspectRatio"];
15
- video?: VideoProps["video"];
16
16
  posterImage?: VideoProps["posterImage"];
17
- lazyLoad?: VideoProps["lazyLoad"];
17
+ video?: VideoProps["video"];
18
18
  fitContent?: VideoProps["fitContent"];
19
19
  builderBlock?: VideoProps["builderBlock"];
20
20
  };
@@ -28,8 +28,8 @@ export let apiHost = undefined;
28
28
  export let locale = undefined;
29
29
  export let enrich = undefined;
30
30
  export let trustedHosts = undefined;
31
- export let model = undefined;
32
- export let content = undefined;
31
+ export let model;
32
+ export let content;
33
33
  export let context = undefined;
34
34
  export let data = undefined;
35
35
  export let showContent;
@@ -187,10 +187,11 @@ function elementRef_onIniteditingbldr(event) {
187
187
  trustedHosts: trustedHosts,
188
188
  }
189
189
  : {}),
190
+ modelName: model ?? "",
191
+ apiKey: apiKey,
190
192
  });
191
193
  Object.values($builderContextSignal.componentInfos).forEach((registeredComponent) => {
192
- if (!model ||
193
- !registeredComponent.models?.length ||
194
+ if (!registeredComponent.models?.length ||
194
195
  registeredComponent.models.includes(model)) {
195
196
  const message = createRegisterComponentMessage(registeredComponent);
196
197
  window.parent?.postMessage(message, "*");
@@ -217,7 +218,7 @@ function elementRef_onInitpreviewingbldr(event) {
217
218
  previewApiKey === apiKey &&
218
219
  (!content || searchParamPreviewId === content.id))) {
219
220
  fetchOneEntry({
220
- model: model || "",
221
+ model: model,
221
222
  apiKey: apiKey,
222
223
  apiVersion: $builderContextSignal.apiVersion,
223
224
  ...(searchParamPreviewModel === "BUILDER_STUDIO" && context?.symbolId
@@ -17,8 +17,8 @@ declare const __propDef: {
17
17
  locale?: BuilderEditorProps["locale"];
18
18
  enrich?: BuilderEditorProps["enrich"];
19
19
  trustedHosts?: BuilderEditorProps["trustedHosts"];
20
- model?: BuilderEditorProps["model"];
21
- content?: BuilderEditorProps["content"];
20
+ model: BuilderEditorProps["model"];
21
+ content: BuilderEditorProps["content"];
22
22
  context?: BuilderEditorProps["context"];
23
23
  data?: BuilderEditorProps["data"];
24
24
  showContent: BuilderEditorProps["showContent"];
@@ -16,7 +16,7 @@ import { getContentInitialValue, getRootStateInitialValue, } from "./content.hel
16
16
  import "./wrap-component-ref";
17
17
  export let apiKey;
18
18
  export let context = undefined;
19
- export let content = undefined;
19
+ export let content;
20
20
  export let customComponents = undefined;
21
21
  export let data = undefined;
22
22
  export let locale = undefined;
@@ -25,7 +25,7 @@ export let apiVersion = undefined;
25
25
  export let blocksWrapper = undefined;
26
26
  export let blocksWrapperProps = undefined;
27
27
  export let nonce = undefined;
28
- export let model = undefined;
28
+ export let model;
29
29
  export let apiHost = undefined;
30
30
  export let enrich = undefined;
31
31
  export let showContent;
@@ -81,7 +81,7 @@ let builderContextSignal = writable({
81
81
  BlocksWrapper: blocksWrapper || "div",
82
82
  BlocksWrapperProps: blocksWrapperProps || {},
83
83
  nonce: nonce || "",
84
- model: model || "",
84
+ model: model,
85
85
  });
86
86
  if (!apiKey) {
87
87
  logger.error("No API key provided to `Content` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
@@ -4,7 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  apiKey: ContentProps["apiKey"];
6
6
  context?: ContentProps["context"];
7
- content?: ContentProps["content"];
7
+ content: ContentProps["content"];
8
8
  customComponents?: ContentProps["customComponents"];
9
9
  data?: ContentProps["data"];
10
10
  locale?: ContentProps["locale"];
@@ -13,7 +13,7 @@ declare const __propDef: {
13
13
  blocksWrapper?: ContentProps["blocksWrapper"];
14
14
  blocksWrapperProps?: ContentProps["blocksWrapperProps"];
15
15
  nonce?: ContentProps["nonce"];
16
- model?: ContentProps["model"];
16
+ model: ContentProps["model"];
17
17
  apiHost?: ContentProps["apiHost"];
18
18
  enrich?: ContentProps["enrich"];
19
19
  showContent: ContentProps["showContent"];
@@ -9,11 +9,11 @@ import InlinedScript from "../inlined-script.svelte";
9
9
  import InlinedStyles from "../inlined-styles.svelte";
10
10
  import { checkShouldRenderVariants, getInitVariantsFnsScriptString, getUpdateCookieAndStylesScript, getVariants, } from "./helpers";
11
11
  export let canTrack = undefined;
12
- export let content = undefined;
12
+ export let content;
13
13
  export let isNestedRender = undefined;
14
14
  export let nonce = undefined;
15
15
  export let apiHost = undefined;
16
- export let model = undefined;
16
+ export let model;
17
17
  export let data = undefined;
18
18
  export let context = undefined;
19
19
  export let apiKey;
@@ -9,11 +9,11 @@ import type { ContentVariantsPrps } from "./content-variants.types";
9
9
  declare const __propDef: {
10
10
  props: {
11
11
  canTrack?: VariantsProviderProps["canTrack"];
12
- content?: VariantsProviderProps["content"];
12
+ content: VariantsProviderProps["content"];
13
13
  isNestedRender?: VariantsProviderProps["isNestedRender"];
14
14
  nonce?: VariantsProviderProps["nonce"];
15
15
  apiHost?: VariantsProviderProps["apiHost"];
16
- model?: VariantsProviderProps["model"];
16
+ model: VariantsProviderProps["model"];
17
17
  data?: VariantsProviderProps["data"];
18
18
  context?: VariantsProviderProps["context"];
19
19
  apiKey: VariantsProviderProps["apiKey"];
@@ -7,11 +7,11 @@ export interface ContentVariantsPrps extends ExtraFrameworkProps {
7
7
  /**
8
8
  * The Builder content JSON to render (required).
9
9
  */
10
- content?: Nullable<BuilderContent>;
10
+ content: Nullable<BuilderContent>;
11
11
  /**
12
12
  * The Builder content `model` to render (required).
13
13
  */
14
- model?: string;
14
+ model: string;
15
15
  /**
16
16
  * Additional data to inject into your Builder content (optional).
17
17
  */
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "3.0.7";
1
+ export declare const SDK_VERSION = "4.0.0";
@@ -1 +1 @@
1
- export const SDK_VERSION = "3.0.7";
1
+ export const SDK_VERSION = "4.0.0";
@@ -9,19 +9,19 @@ type ContentListener = Required<Pick<ContentProps, 'model' | 'trustedHosts'>> &
9
9
  };
10
10
  };
11
11
  export declare const createEditorListener: ({ model, trustedHosts, callbacks }: ContentListener) => (event: MessageEvent<any>) => void;
12
- type SubscribeToEditor = (
13
- /**
14
- * The Builder `model` to subscribe to
15
- */
16
- model: string,
17
- /**
18
- * The callback function to call when the content is updated.
19
- */
20
- callback: (updatedContent: BuilderContent) => void,
21
- /**
22
- * Extra options for the listener.
23
- */
24
- options?: {
12
+ type SubscribeToEditor = ({ model, apiKey, callback, trustedHosts }: {
13
+ /**
14
+ * The Builder `model` to subscribe to
15
+ */
16
+ model: string;
17
+ /**
18
+ * Builder API Key to use for the editor.
19
+ */
20
+ apiKey: string;
21
+ /**
22
+ * The callback function to call when the content is updated.
23
+ */
24
+ callback: (updatedContent: BuilderContent) => void;
25
25
  /**
26
26
  * List of hosts to allow editing content from.
27
27
  */