@builder.io/sdk-react 0.12.3 → 0.12.5

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/lib/browser/index.cjs +25 -29
  2. package/lib/browser/index.mjs +736 -669
  3. package/lib/{edge/server-entry-f978b3a5.js → browser/server-entry-b9bdd327.js} +5 -6
  4. package/lib/browser/{server-entry-df9eba5d.cjs → server-entry-fc715776.cjs} +1 -1
  5. package/lib/browser/server-entry.cjs +1 -1
  6. package/lib/browser/server-entry.mjs +1 -1
  7. package/lib/edge/index.cjs +38 -42
  8. package/lib/edge/index.mjs +1280 -1212
  9. package/lib/{browser/server-entry-f978b3a5.js → edge/server-entry-57d4ae22.js} +4 -5
  10. package/lib/{node/server-entry-df9eba5d.cjs → edge/server-entry-fc715776.cjs} +1 -1
  11. package/lib/edge/server-entry.cjs +1 -1
  12. package/lib/edge/server-entry.mjs +1 -1
  13. package/lib/node/index.cjs +7 -11
  14. package/lib/node/index.mjs +321 -253
  15. package/lib/node/{server-entry-46908b1b.js → server-entry-0457c4c8.js} +3 -4
  16. package/lib/{edge/server-entry-df9eba5d.cjs → node/server-entry-bcb725be.cjs} +1 -1
  17. package/lib/node/server-entry.cjs +1 -1
  18. package/lib/node/server-entry.mjs +1 -1
  19. package/package.json +1 -1
  20. package/types/blocks/button/button.types.d.ts +2 -1
  21. package/types/blocks/columns/columns.types.d.ts +3 -3
  22. package/types/blocks/symbol/symbol.types.d.ts +2 -2
  23. package/types/components/block/block.d.ts +1 -0
  24. package/types/components/block/components/block-wrapper.d.ts +1 -0
  25. package/types/components/block/components/component-ref/component-ref.helpers.d.ts +4 -1
  26. package/types/components/block/components/repeated-block.d.ts +3 -5
  27. package/types/components/blocks/blocks.types.d.ts +1 -0
  28. package/types/components/content-variants/content-variants.types.d.ts +6 -2
  29. package/types/constants/sdk-version.d.ts +1 -1
  30. package/types/functions/evaluate/should-force-browser-runtime-in-node.d.ts +1 -0
  31. package/types/functions/get-block-properties.d.ts +5 -1
  32. package/types/functions/get-class-prop-name.d.ts +1 -0
  33. package/types/functions/get-style.d.ts +12 -0
  34. package/types/functions/transform-block-properties.d.ts +7 -5
  35. package/types/functions/transform-style-property.d.ts +7 -0
  36. package/types/helpers/omit.d.ts +1 -0
  37. package/types/types/builder-block.d.ts +1 -0
  38. package/types/types/builder-props.d.ts +3 -0
@@ -1,29 +1,46 @@
1
1
  "use client";
2
2
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
3
- import { createContext, useState, useContext, createElement, useRef, useEffect } from "react";
4
- import { i as isEditing, j as isBrowser, k as getUserAttributes, l as fastClone, m as logger, n as checkIsDefined, T as TARGET, r as register, o as getDefaultCanTrack, p as _track, a as isPreviewing, c as createRegisterComponentMessage, b as fetchOneEntry, q as fetch$1, u as components, v as serializeComponentInfo, w as handleABTestingSync } from "./server-entry-46908b1b.js";
5
- import { _ as H, h as K, f as z, g as q, e as Y, d as G, s as J, t as Q } from "./server-entry-46908b1b.js";
3
+ import { createContext, useState, useContext, useRef, useEffect, createElement } from "react";
4
+ import { T as TARGET, i as isEditing, j as isBrowser, k as getUserAttributes, l as fastClone, m as checkIsDefined, n as logger, r as register, o as getDefaultCanTrack, p as _track, a as isPreviewing, c as createRegisterComponentMessage, b as fetchOneEntry, q as fetch$1, u as components, v as serializeComponentInfo, w as handleABTestingSync } from "./server-entry-0457c4c8.js";
5
+ import { _ as H, h as K, f as z, g as q, e as Y, d as G, s as J, t as Q } from "./server-entry-0457c4c8.js";
6
6
  import { createRequire } from "node:module";
7
+ const EMPTY_HTML_ELEMENTS = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]), isEmptyElement = (e) => typeof e == "string" && EMPTY_HTML_ELEMENTS.has(e.toLowerCase());
8
+ function DynamicRenderer(e) {
9
+ return /* @__PURE__ */ jsx(Fragment, { children: isEmptyElement(e.TagName) ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes }) }) : /* @__PURE__ */ jsx(Fragment, { children: typeof e.TagName == "string" ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes, children: e.children }) }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes, children: e.children }) }) }) });
10
+ }
11
+ const getClassPropName = () => {
12
+ switch (TARGET) {
13
+ case "react":
14
+ case "reactNative":
15
+ case "rsc":
16
+ return "className";
17
+ case "svelte":
18
+ case "vue":
19
+ case "solid":
20
+ case "qwik":
21
+ return "class";
22
+ }
23
+ };
7
24
  function Button(e) {
8
- return /* @__PURE__ */ jsx(Fragment, { children: e.link ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
9
- "a",
10
- {
11
- ...e.attributes,
12
- href: e.link,
13
- target: e.openLinkInNewTab ? "_blank" : void 0,
14
- role: "button",
15
- children: e.text
16
- }
17
- ) }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
18
- "button",
25
+ return /* @__PURE__ */ jsx(
26
+ DynamicRenderer,
19
27
  {
20
- role: "button",
21
- ...e.attributes,
22
- className: `builder-button ${e.attributes.className}`,
23
- style: e.attributes.style,
28
+ TagName: e.link ? e.builderLinkComponent || "a" : "button",
29
+ attributes: {
30
+ ...e.attributes,
31
+ [getClassPropName()]: `${e.link ? "" : "builder-button"} ${e.attributes[getClassPropName()] || ""}`,
32
+ ...e.link ? {
33
+ href: e.link,
34
+ target: e.openLinkInNewTab ? "_blank" : void 0,
35
+ role: "link"
36
+ } : {
37
+ role: "button"
38
+ }
39
+ },
40
+ actionAttributes: {},
24
41
  children: e.text
25
42
  }
26
- ) }) });
43
+ );
27
44
  }
28
45
  const builderContext = createContext({
29
46
  content: null,
@@ -78,13 +95,13 @@ const getFunctionArguments = ({
78
95
  rootSetState: r,
79
96
  rootState: a
80
97
  }) => {
81
- const c = getFunctionArguments({
98
+ const s = getFunctionArguments({
82
99
  builder: t,
83
100
  context: n,
84
101
  event: i,
85
102
  state: flattenState(a, o, r)
86
103
  });
87
- return new Function(...c.map(([s]) => s), e)(...c.map(([, s]) => s));
104
+ return new Function(...s.map(([c]) => c), e)(...s.map(([, c]) => c));
88
105
  };
89
106
  function flattenState(e, t, n) {
90
107
  if (e === t)
@@ -171,39 +188,50 @@ output;
171
188
  rootSetState: r,
172
189
  rootState: a
173
190
  }) => {
174
- const c = fastClone({
191
+ const s = fastClone({
175
192
  ...a,
176
193
  ...o
177
- }), s = getFunctionArguments({
194
+ }), c = getFunctionArguments({
178
195
  builder: t,
179
196
  context: n,
180
197
  event: i,
181
- state: c
198
+ state: s
182
199
  }), l = getIsolateContext(), d = l.global;
183
200
  d.setSync("global", d.derefInto()), d.setSync("log", function(...f) {
184
201
  console.log(...f);
185
- }), d.setSync(BUILDER_SET_STATE_NAME, function(f, b) {
186
- set(a, f, b), r == null || r(a);
187
- }), s.forEach(([f, b]) => {
188
- const y = typeof b == "object" ? new ivm.Reference(
202
+ }), d.setSync(BUILDER_SET_STATE_NAME, function(f, h) {
203
+ set(a, f, h), r == null || r(a);
204
+ }), c.forEach(([f, h]) => {
205
+ const y = typeof h == "object" ? new ivm.Reference(
189
206
  // workaround: methods with default values for arguments is not being cloned over
190
207
  f === "builder" ? {
191
- ...b,
192
- getUserAttributes: () => b.getUserAttributes()
193
- } : b
208
+ ...h,
209
+ getUserAttributes: () => h.getUserAttributes()
210
+ } : h
194
211
  ) : null;
195
212
  d.setSync(getSyncValName(f), y);
196
213
  }), d.setSync(INJECTED_IVM_GLOBAL, ivm);
197
214
  const g = processCode({
198
215
  code: e,
199
- args: s
200
- }), S = l.evalSync(g);
216
+ args: c
217
+ }), x = l.evalSync(g);
201
218
  try {
202
- return JSON.parse(S);
219
+ return JSON.parse(x);
203
220
  } catch {
204
- return S;
221
+ return x;
205
222
  }
206
- }, chooseBrowserOrServerEval = (e) => isBrowser() ? runInBrowser(e) : runInNode(e);
223
+ };
224
+ function isNodeRuntime() {
225
+ var e;
226
+ return typeof process != "undefined" && checkIsDefined((e = process == null ? void 0 : process.versions) == null ? void 0 : e.node);
227
+ }
228
+ const shouldForceBrowserRuntimeInNode = () => {
229
+ var i;
230
+ if (!isNodeRuntime())
231
+ return !1;
232
+ const e = process.arch === "arm64", t = process.version.startsWith("v20"), n = (i = process.env.NODE_OPTIONS) == null ? void 0 : i.includes("--no-node-snapshot");
233
+ return e && t && !n ? (logger.log("Skipping usage of `isolated-vm` to avoid crashes in Node v20 on an arm64 machine.\n If you would like to use the `isolated-vm` package on this machine, please provide the `NODE_OPTIONS=--no-node-snapshot` config to your Node process.\n See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.\n "), !0) : !1;
234
+ }, chooseBrowserOrServerEval = (e) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(e) : runInNode(e);
207
235
  function evaluate({
208
236
  code: e,
209
237
  context: t,
@@ -217,7 +245,7 @@ function evaluate({
217
245
  logger.warn("Skipping evaluation of empty code block.");
218
246
  return;
219
247
  }
220
- const c = {
248
+ const s = {
221
249
  code: parseCode(e, {
222
250
  isExpression: a
223
251
  }),
@@ -229,9 +257,9 @@ function evaluate({
229
257
  localState: n
230
258
  };
231
259
  try {
232
- return chooseBrowserOrServerEval(c);
233
- } catch (s) {
234
- logger.error("Failed code evaluation: " + s.message, {
260
+ return chooseBrowserOrServerEval(s);
261
+ } catch (c) {
262
+ logger.error("Failed code evaluation: " + c.message, {
235
263
  code: e
236
264
  });
237
265
  return;
@@ -258,15 +286,15 @@ const evaluateBindings = ({
258
286
  ...r.actions
259
287
  }
260
288
  };
261
- for (const c in e.bindings) {
262
- const s = e.bindings[c], l = evaluate({
263
- code: s,
289
+ for (const s in e.bindings) {
290
+ const c = e.bindings[s], l = evaluate({
291
+ code: c,
264
292
  localState: n,
265
293
  rootState: i,
266
294
  rootSetState: o,
267
295
  context: t
268
296
  });
269
- set(a, c, l);
297
+ set(a, s, l);
270
298
  }
271
299
  return a;
272
300
  };
@@ -329,14 +357,14 @@ const getComponent = ({
329
357
  if (!Array.isArray(o))
330
358
  return;
331
359
  const r = n.collection.split(".").pop(), a = n.itemName || (r ? r + "Item" : "item");
332
- return o.map((s, l) => ({
360
+ return o.map((c, l) => ({
333
361
  context: {
334
362
  ...t,
335
363
  localState: {
336
364
  ...t.localState,
337
365
  $index: l,
338
- $item: s,
339
- [a]: s,
366
+ $item: c,
367
+ [a]: c,
340
368
  [`$${a}Index`]: l
341
369
  }
342
370
  },
@@ -416,7 +444,7 @@ function BlockStyles(e) {
416
444
  return checkIsDefined(i.hide) ? !i.hide : checkIsDefined(i.show) ? i.show : !0;
417
445
  }
418
446
  function n() {
419
- var b;
447
+ var h;
420
448
  const i = getProcessedBlock({
421
449
  block: e.block,
422
450
  localState: e.context.localState,
@@ -425,16 +453,16 @@ function BlockStyles(e) {
425
453
  context: e.context.context,
426
454
  shouldEvaluateBindings: !0
427
455
  }), o = i.responsiveStyles, r = e.context.content, a = getSizesForBreakpoints(
428
- ((b = r == null ? void 0 : r.meta) == null ? void 0 : b.breakpoints) || {}
429
- ), c = o == null ? void 0 : o.large, s = o == null ? void 0 : o.medium, l = o == null ? void 0 : o.small, d = i.id;
456
+ ((h = r == null ? void 0 : r.meta) == null ? void 0 : h.breakpoints) || {}
457
+ ), s = o == null ? void 0 : o.large, c = o == null ? void 0 : o.medium, l = o == null ? void 0 : o.small, d = i.id;
430
458
  if (!d)
431
459
  return "";
432
- const g = c ? createCssClass({
460
+ const g = s ? createCssClass({
433
461
  className: d,
434
- styles: c
435
- }) : "", S = s ? createCssClass({
462
+ styles: s
463
+ }) : "", x = c ? createCssClass({
436
464
  className: d,
437
- styles: s,
465
+ styles: c,
438
466
  mediaQuery: getMaxWidthQueryForSize(
439
467
  "medium",
440
468
  a
@@ -447,7 +475,7 @@ function BlockStyles(e) {
447
475
  a
448
476
  )
449
477
  }) : "";
450
- return [g, S, f].join(" ");
478
+ return [g, x, f].join(" ");
451
479
  }
452
480
  return /* @__PURE__ */ jsx(Fragment, { children: n() && t() ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(InlinedStyles, { styles: n() }) }) : null });
453
481
  }
@@ -484,10 +512,36 @@ function getBlockActions(e) {
484
512
  }
485
513
  return t;
486
514
  }
515
+ function transformStyleProperty({
516
+ style: e
517
+ }) {
518
+ return e;
519
+ }
520
+ const getStyle = ({
521
+ block: e,
522
+ context: t
523
+ }) => mapStyleObjToStrIfNeeded(transformStyleProperty({
524
+ style: e.style || {},
525
+ context: t,
526
+ block: e
527
+ }));
528
+ function mapStyleObjToStrIfNeeded(e) {
529
+ switch (TARGET) {
530
+ case "svelte":
531
+ case "vue":
532
+ case "solid":
533
+ return convertStyleMapToCSSArray(e).join(" ");
534
+ case "qwik":
535
+ case "reactNative":
536
+ case "react":
537
+ case "rsc":
538
+ return e;
539
+ }
540
+ }
487
541
  function transformBlockProperties({
488
542
  properties: e
489
543
  }) {
490
- return e.className = e.class, delete e.class, e;
544
+ return e;
491
545
  }
492
546
  const extractRelevantRootBlockProperties = (e) => ({
493
547
  href: e.href
@@ -501,8 +555,11 @@ function getBlockProperties({
501
555
  ...extractRelevantRootBlockProperties(e),
502
556
  ...e.properties,
503
557
  "builder-id": e.id,
504
- style: e.style ? getStyleAttribute(e.style) : void 0,
505
- class: [e.id, "builder-block", e.class, (i = e.properties) == null ? void 0 : i.class].filter(Boolean).join(" ")
558
+ style: getStyle({
559
+ block: e,
560
+ context: t
561
+ }),
562
+ [getClassPropName()]: [e.id, "builder-block", e.class, (i = e.properties) == null ? void 0 : i.class].filter(Boolean).join(" ")
506
563
  };
507
564
  return transformBlockProperties({
508
565
  properties: n,
@@ -510,23 +567,6 @@ function getBlockProperties({
510
567
  block: e
511
568
  });
512
569
  }
513
- function getStyleAttribute(e) {
514
- switch (TARGET) {
515
- case "svelte":
516
- case "vue":
517
- case "solid":
518
- return convertStyleMapToCSSArray(e).join(" ");
519
- case "qwik":
520
- case "reactNative":
521
- case "react":
522
- case "rsc":
523
- return e;
524
- }
525
- }
526
- const EMPTY_HTML_ELEMENTS = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]), isEmptyElement = (e) => typeof e == "string" && EMPTY_HTML_ELEMENTS.has(e.toLowerCase());
527
- function DynamicRenderer(e) {
528
- return /* @__PURE__ */ jsx(Fragment, { children: isEmptyElement(e.TagName) ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes }) }) : /* @__PURE__ */ jsx(Fragment, { children: typeof e.TagName == "string" ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes, children: e.children }) }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(e.TagName, { ...e.attributes, ...e.actionAttributes, children: e.children }) }) }) });
529
- }
530
570
  function BlockWrapper(e) {
531
571
  return /* @__PURE__ */ jsx(
532
572
  DynamicRenderer,
@@ -579,7 +619,7 @@ const getWrapperProps = ({
579
619
  isInteractive: r,
580
620
  contextValue: a
581
621
  }) => {
582
- const c = {
622
+ const s = {
583
623
  ...e,
584
624
  /**
585
625
  * If `noWrap` is set to `true`, then the block's props/attributes are provided to the
@@ -598,7 +638,7 @@ const getWrapperProps = ({
598
638
  context: n,
599
639
  wrapperProps: e,
600
640
  includeBlockProps: o
601
- } : c;
641
+ } : s;
602
642
  };
603
643
  function ComponentRef(e) {
604
644
  var i;
@@ -613,6 +653,7 @@ function ComponentRef(e) {
613
653
  builderBlock: e.builderBlock,
614
654
  context: e.context,
615
655
  componentRef: e.componentRef,
656
+ linkComponent: e.linkComponent,
616
657
  includeBlockProps: e.includeBlockProps,
617
658
  isInteractive: e.isInteractive,
618
659
  contextValue: e.context
@@ -622,7 +663,8 @@ function ComponentRef(e) {
622
663
  {
623
664
  block: o,
624
665
  context: e.context,
625
- registeredComponents: e.registeredComponents
666
+ registeredComponents: e.registeredComponents,
667
+ linkComponent: e.linkComponent
626
668
  },
627
669
  o.id
628
670
  ))
@@ -636,12 +678,13 @@ function RepeatedBlock(e) {
636
678
  {
637
679
  block: e.block,
638
680
  context: t,
639
- registeredComponents: e.registeredComponents
681
+ registeredComponents: e.registeredComponents,
682
+ linkComponent: e.linkComponent
640
683
  }
641
684
  ) });
642
685
  }
643
686
  function Block(e) {
644
- var d, g, S;
687
+ var d, g, x;
645
688
  function t() {
646
689
  return getComponent({
647
690
  block: e.block,
@@ -667,7 +710,8 @@ function Block(e) {
667
710
  });
668
711
  }
669
712
  function o() {
670
- return e.block.tagName || "div";
713
+ var h;
714
+ return e.block.tagName === "a" || ((h = i().properties) == null ? void 0 : h.href) || i().href ? e.linkComponent || "a" : e.block.tagName || "div";
671
715
  }
672
716
  function r() {
673
717
  var y, I;
@@ -677,77 +721,86 @@ function Block(e) {
677
721
  return ("show" in i() ? i().show : !0) && !f;
678
722
  }
679
723
  function a() {
680
- var b, y;
681
- return !((b = t == null ? void 0 : t()) != null && b.component) && !n() ? (y = i().children) != null ? y : [] : [];
724
+ var h, y;
725
+ return !((h = t == null ? void 0 : t()) != null && h.component) && !n() ? (y = i().children) != null ? y : [] : [];
682
726
  }
683
- function c() {
684
- var f, b, y, I, E, v;
727
+ function s() {
728
+ var f, h, y, I, E, v, C, T, w;
685
729
  return {
686
730
  blockChildren: (f = i().children) != null ? f : [],
687
- componentRef: (b = t == null ? void 0 : t()) == null ? void 0 : b.component,
731
+ componentRef: (h = t == null ? void 0 : t()) == null ? void 0 : h.component,
688
732
  componentOptions: {
689
733
  ...getBlockComponentOptions(i()),
690
734
  builderContext: e.context,
691
- ...((y = t == null ? void 0 : t()) == null ? void 0 : y.name) === "Symbol" || ((I = t == null ? void 0 : t()) == null ? void 0 : I.name) === "Columns" ? {
735
+ ...((y = t == null ? void 0 : t()) == null ? void 0 : y.name) === "Core:Button" || ((I = t == null ? void 0 : t()) == null ? void 0 : I.name) === "Symbol" || ((E = t == null ? void 0 : t()) == null ? void 0 : E.name) === "Columns" ? {
736
+ builderLinkComponent: e.linkComponent
737
+ } : {},
738
+ ...((v = t == null ? void 0 : t()) == null ? void 0 : v.name) === "Symbol" || ((C = t == null ? void 0 : t()) == null ? void 0 : C.name) === "Columns" ? {
692
739
  builderComponents: e.registeredComponents
693
740
  } : {}
694
741
  },
695
- context: s,
742
+ context: c,
743
+ linkComponent: e.linkComponent,
696
744
  registeredComponents: e.registeredComponents,
697
745
  builderBlock: i(),
698
- includeBlockProps: ((E = t == null ? void 0 : t()) == null ? void 0 : E.noWrap) === !0,
699
- isInteractive: !((v = t == null ? void 0 : t()) != null && v.isRSC)
746
+ includeBlockProps: ((T = t == null ? void 0 : t()) == null ? void 0 : T.noWrap) === !0,
747
+ isInteractive: !((w = t == null ? void 0 : t()) != null && w.isRSC)
700
748
  };
701
749
  }
702
- const [s, l] = useState(() => e.context);
750
+ const [c, l] = useState(() => e.context);
703
751
  return /* @__PURE__ */ jsx(Fragment, { children: r() ? /* @__PURE__ */ jsxs(Fragment, { children: [
704
752
  /* @__PURE__ */ jsx(BlockStyles, { block: e.block, context: e.context }),
705
753
  (d = t == null ? void 0 : t()) != null && d.noWrap ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
706
754
  ComponentRef,
707
755
  {
708
- componentRef: c().componentRef,
709
- componentOptions: c().componentOptions,
710
- blockChildren: c().blockChildren,
711
- context: c().context,
712
- registeredComponents: c().registeredComponents,
713
- builderBlock: c().builderBlock,
714
- includeBlockProps: c().includeBlockProps,
715
- isInteractive: c().isInteractive
756
+ componentRef: s().componentRef,
757
+ componentOptions: s().componentOptions,
758
+ blockChildren: s().blockChildren,
759
+ context: s().context,
760
+ registeredComponents: s().registeredComponents,
761
+ linkComponent: s().linkComponent,
762
+ builderBlock: s().builderBlock,
763
+ includeBlockProps: s().includeBlockProps,
764
+ isInteractive: s().isInteractive
716
765
  }
717
- ) }) : /* @__PURE__ */ jsx(Fragment, { children: n() ? /* @__PURE__ */ jsx(Fragment, { children: (S = n()) == null ? void 0 : S.map((f, b) => /* @__PURE__ */ jsx(
766
+ ) }) : /* @__PURE__ */ jsx(Fragment, { children: n() ? /* @__PURE__ */ jsx(Fragment, { children: (x = n()) == null ? void 0 : x.map((f, h) => /* @__PURE__ */ jsx(
718
767
  RepeatedBlock,
719
768
  {
720
769
  repeatContext: f.context,
721
770
  block: f.block,
722
- registeredComponents: e.registeredComponents
771
+ registeredComponents: e.registeredComponents,
772
+ linkComponent: e.linkComponent
723
773
  },
724
- b
774
+ h
725
775
  )) }) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
726
776
  BlockWrapper,
727
777
  {
728
778
  Wrapper: o(),
729
779
  block: i(),
730
780
  context: e.context,
781
+ linkComponent: e.linkComponent,
731
782
  children: [
732
783
  /* @__PURE__ */ jsx(
733
784
  ComponentRef,
734
785
  {
735
- componentRef: c().componentRef,
736
- componentOptions: c().componentOptions,
737
- blockChildren: c().blockChildren,
738
- context: c().context,
739
- registeredComponents: c().registeredComponents,
740
- builderBlock: c().builderBlock,
741
- includeBlockProps: c().includeBlockProps,
742
- isInteractive: c().isInteractive
786
+ componentRef: s().componentRef,
787
+ componentOptions: s().componentOptions,
788
+ blockChildren: s().blockChildren,
789
+ context: s().context,
790
+ registeredComponents: s().registeredComponents,
791
+ linkComponent: s().linkComponent,
792
+ builderBlock: s().builderBlock,
793
+ includeBlockProps: s().includeBlockProps,
794
+ isInteractive: s().isInteractive
743
795
  }
744
796
  ),
745
797
  (g = a()) == null ? void 0 : g.map((f) => /* @__PURE__ */ jsx(
746
798
  Block,
747
799
  {
748
800
  block: f,
749
- context: s,
750
- registeredComponents: e.registeredComponents
801
+ context: c,
802
+ registeredComponents: e.registeredComponents,
803
+ linkComponent: e.linkComponent
751
804
  },
752
805
  f.id
753
806
  ))
@@ -825,6 +878,7 @@ function Blocks(e) {
825
878
  Block,
826
879
  {
827
880
  block: a,
881
+ linkComponent: e.linkComponent,
828
882
  context: e.context || t,
829
883
  registeredComponents: e.registeredComponents || n.registeredComponents
830
884
  },
@@ -840,13 +894,13 @@ function Columns(e) {
840
894
  ), [i, o] = useState(() => e.columns || []), [r, a] = useState(
841
895
  () => e.stackColumnsAt || "tablet"
842
896
  );
843
- function c(v) {
897
+ function s(v) {
844
898
  var C;
845
899
  return ((C = i[v]) == null ? void 0 : C.width) || 100 / i.length;
846
900
  }
847
- function s(v) {
901
+ function c(v) {
848
902
  const C = t * (i.length - 1) / i.length;
849
- return `calc(${c(v)}% - ${C}px)`;
903
+ return `calc(${s(v)}% - ${C}px)`;
850
904
  }
851
905
  function l({
852
906
  stackedStyle: v,
@@ -860,7 +914,7 @@ function Columns(e) {
860
914
  }) {
861
915
  return r === "never" ? C : v;
862
916
  }
863
- const [g, S] = useState(
917
+ const [g, x] = useState(
864
918
  () => e.stackColumnsAt === "never" ? "row" : e.reverseColumnsWhenStacked ? "column-reverse" : "column"
865
919
  );
866
920
  function f() {
@@ -872,9 +926,14 @@ function Columns(e) {
872
926
  })
873
927
  };
874
928
  }
875
- function b(v) {
876
- const C = v === 0 ? 0 : t, T = s(v), w = `${C}px`, R = "100%", j = 0;
929
+ function h(v) {
930
+ const C = v === 0 ? 0 : t, T = c(v), w = `${C}px`, R = "100%", j = 0;
877
931
  return {
932
+ ...{
933
+ display: "flex",
934
+ flexDirection: "column",
935
+ alignItems: "stretch"
936
+ },
878
937
  width: T,
879
938
  ["marginLeft"]: w,
880
939
  "--column-width-mobile": d({
@@ -932,41 +991,45 @@ function Columns(e) {
932
991
  /* @__PURE__ */ jsxs(
933
992
  "div",
934
993
  {
935
- className: `builder-columns ${e.builderBlock.id}-breakpoints div-3c01d6ec`,
994
+ className: `builder-columns ${e.builderBlock.id}-breakpoints div-6f826264`,
936
995
  style: f(),
937
996
  children: [
938
997
  /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(InlinedStyles, { styles: I() }) }),
939
- (E = e.columns) == null ? void 0 : E.map((v, C) => /* @__PURE__ */ createElement(
940
- "div",
998
+ (E = e.columns) == null ? void 0 : E.map((v, C) => /* @__PURE__ */ jsx(
999
+ DynamicRenderer,
941
1000
  {
942
- className: "builder-column div-3c01d6ec-2",
943
- style: b(C),
944
- key: C
1001
+ TagName: v.link ? e.builderLinkComponent || "a" : "div",
1002
+ actionAttributes: {},
1003
+ attributes: {
1004
+ ...v.link ? {
1005
+ href: v.link
1006
+ } : {},
1007
+ [getClassPropName()]: "builder-column",
1008
+ style: mapStyleObjToStrIfNeeded(h(C))
1009
+ },
1010
+ children: /* @__PURE__ */ jsx(
1011
+ Blocks,
1012
+ {
1013
+ path: `component.options.columns.${C}.blocks`,
1014
+ parent: e.builderBlock.id,
1015
+ styleProp: {
1016
+ flexGrow: "1"
1017
+ },
1018
+ context: e.builderContext,
1019
+ registeredComponents: e.builderComponents,
1020
+ linkComponent: e.builderLinkComponent,
1021
+ blocks: v.blocks
1022
+ }
1023
+ )
945
1024
  },
946
- /* @__PURE__ */ jsx(
947
- Blocks,
948
- {
949
- path: `component.options.columns.${C}.blocks`,
950
- parent: e.builderBlock.id,
951
- styleProp: {
952
- flexGrow: "1"
953
- },
954
- context: e.builderContext,
955
- registeredComponents: e.builderComponents,
956
- blocks: v.blocks
957
- }
958
- )
1025
+ C
959
1026
  ))
960
1027
  ]
961
1028
  }
962
1029
  ),
963
- /* @__PURE__ */ jsx("style", { children: `.div-3c01d6ec {
1030
+ /* @__PURE__ */ jsx("style", { children: `.div-6f826264 {
964
1031
  display: flex;
965
1032
  line-height: normal;
966
- }.div-3c01d6ec-2 {
967
- display: flex;
968
- flex-direction: column;
969
- align-items: stretch;
970
1033
  }` })
971
1034
  ] });
972
1035
  }
@@ -1004,7 +1067,7 @@ function getSrcSet(e) {
1004
1067
  return e.match(/cdn\.shopify\.com/) ? t.map((n) => [getShopifyImageUrl(e, `${n}x${n}`), n]).filter(([n]) => !!n).map(([n, i]) => `${n} ${i}w`).concat([e]).join(", ") : e;
1005
1068
  }
1006
1069
  function Image(e) {
1007
- var o, r, a, c;
1070
+ var o, r, a, s;
1008
1071
  function t() {
1009
1072
  var d;
1010
1073
  const l = e.image || e.src;
@@ -1020,18 +1083,18 @@ function Image(e) {
1020
1083
  return getSrcSet(l);
1021
1084
  }
1022
1085
  function n() {
1023
- var s;
1024
- return (s = t == null ? void 0 : t()) != null && s.match(/builder\.io/) && !e.noWebp ? t().replace(/\?/g, "?format=webp&") : "";
1086
+ var c;
1087
+ return (c = t == null ? void 0 : t()) != null && c.match(/builder\.io/) && !e.noWebp ? t().replace(/\?/g, "?format=webp&") : "";
1025
1088
  }
1026
1089
  function i() {
1027
- const s = {
1090
+ const c = {
1028
1091
  position: "absolute",
1029
1092
  height: "100%",
1030
1093
  width: "100%",
1031
1094
  left: "0px",
1032
1095
  top: "0px"
1033
1096
  };
1034
- return e.aspectRatio ? s : void 0;
1097
+ return e.aspectRatio ? c : void 0;
1035
1098
  }
1036
1099
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1037
1100
  /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -1064,7 +1127,7 @@ function Image(e) {
1064
1127
  }
1065
1128
  }
1066
1129
  ) }) : null,
1067
- (c = (a = e.builderBlock) == null ? void 0 : a.children) != null && c.length && e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: e.children }) : null,
1130
+ (s = (a = e.builderBlock) == null ? void 0 : a.children) != null && s.length && e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: e.children }) : null,
1068
1131
  !e.fitContent && e.children ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", { className: "div-40c70c9b-2", children: e.children }) }) : null
1069
1132
  ] }),
1070
1133
  /* @__PURE__ */ jsx("style", { children: `.img-40c70c9b {
@@ -1319,7 +1382,7 @@ const componentInfo$b = {
1319
1382
  });
1320
1383
  }
1321
1384
  const n = e.get("columns");
1322
- Array.isArray(n) && n.find((o) => o.get("width")) && (n.find((r) => !r.get("width")) || n.reduce((c, s) => c + s.get("width"), 0) !== 100) && t();
1385
+ Array.isArray(n) && n.find((o) => o.get("width")) && (n.find((r) => !r.get("width")) || n.reduce((s, c) => s + c.get("width"), 0) !== 100) && t();
1323
1386
  }
1324
1387
  }, {
1325
1388
  name: "space",
@@ -1367,12 +1430,12 @@ const componentInfo$b = {
1367
1430
  function CustomCode(e) {
1368
1431
  const t = useRef(null), [n, i] = useState(() => []), [o, r] = useState(() => []);
1369
1432
  return useEffect(() => {
1370
- var c;
1371
- if (!((c = t.current) != null && c.getElementsByTagName) || typeof window == "undefined")
1433
+ var s;
1434
+ if (!((s = t.current) != null && s.getElementsByTagName) || typeof window == "undefined")
1372
1435
  return;
1373
1436
  const a = t.current.getElementsByTagName("script");
1374
- for (let s = 0; s < a.length; s++) {
1375
- const l = a[s];
1437
+ for (let c = 0; c < a.length; c++) {
1438
+ const l = a[c];
1376
1439
  if (l.src) {
1377
1440
  if (n.includes(l.src))
1378
1441
  continue;
@@ -1429,8 +1492,8 @@ const componentInfo$8 = {
1429
1492
  }]
1430
1493
  }, SCRIPT_MIME_TYPES = ["text/javascript", "application/javascript", "application/ecmascript"], isJsScript = (e) => SCRIPT_MIME_TYPES.includes(e.type);
1431
1494
  function Embed(e) {
1432
- const t = useRef(null), [n, i] = useState(() => []), [o, r] = useState(() => []), [a, c] = useState(() => !1);
1433
- function s() {
1495
+ const t = useRef(null), [n, i] = useState(() => []), [o, r] = useState(() => []), [a, s] = useState(() => !1);
1496
+ function c() {
1434
1497
  if (!t.current || !t.current.getElementsByTagName)
1435
1498
  return;
1436
1499
  const l = t.current.getElementsByTagName("script");
@@ -1438,18 +1501,18 @@ function Embed(e) {
1438
1501
  const g = l[d];
1439
1502
  if (g.src && !n.includes(g.src)) {
1440
1503
  n.push(g.src);
1441
- const S = document.createElement("script");
1442
- S.async = !0, S.src = g.src, document.head.appendChild(S);
1504
+ const x = document.createElement("script");
1505
+ x.async = !0, x.src = g.src, document.head.appendChild(x);
1443
1506
  } else if (isJsScript(g) && !o.includes(g.innerText))
1444
1507
  try {
1445
1508
  o.push(g.innerText), new Function(g.innerText)();
1446
- } catch (S) {
1447
- console.warn("`Embed`: Error running script:", S);
1509
+ } catch (x) {
1510
+ console.warn("`Embed`: Error running script:", x);
1448
1511
  }
1449
1512
  }
1450
1513
  }
1451
1514
  return useEffect(() => {
1452
- t.current && !a && (c(!0), s());
1515
+ t.current && !a && (s(!0), c());
1453
1516
  }, [t.current, a]), /* @__PURE__ */ jsx(
1454
1517
  "div",
1455
1518
  {
@@ -1485,17 +1548,17 @@ const componentInfo$7 = {
1485
1548
  defaultValue: "https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F72c80f114dc149019051b6852a9e3b7a",
1486
1549
  onChange: (e) => {
1487
1550
  e.delete("srcset"), e.delete("noWebp");
1488
- function n(a, c = 6e4) {
1489
- return new Promise((s, l) => {
1551
+ function n(a, s = 6e4) {
1552
+ return new Promise((c, l) => {
1490
1553
  const d = document.createElement("img");
1491
1554
  let g = !1;
1492
1555
  d.onload = () => {
1493
- g = !0, s(d);
1494
- }, d.addEventListener("error", (S) => {
1495
- console.warn("Image load failed", S.error), l(S.error);
1556
+ g = !0, c(d);
1557
+ }, d.addEventListener("error", (x) => {
1558
+ console.warn("Image load failed", x.error), l(x.error);
1496
1559
  }), d.src = a, setTimeout(() => {
1497
1560
  g || l(new Error("Image load timed out"));
1498
- }, c);
1561
+ }, s);
1499
1562
  });
1500
1563
  }
1501
1564
  function i(a) {
@@ -1506,8 +1569,8 @@ const componentInfo$7 = {
1506
1569
  a.type.includes("svg") && e.set("noWebp", !0);
1507
1570
  }), o && (!r || r === 0.7041))
1508
1571
  return n(o).then((a) => {
1509
- const c = e.get("aspectRatio");
1510
- e.get("image") === o && (!c || c === 0.7041) && a.width && a.height && (e.set("aspectRatio", i(a.height / a.width)), e.set("height", a.height), e.set("width", a.width));
1572
+ const s = e.get("aspectRatio");
1573
+ e.get("image") === o && (!s || s === 0.7041) && a.width && a.height && (e.set("aspectRatio", i(a.height / a.width)), e.set("height", a.height), e.set("width", a.width));
1511
1574
  });
1512
1575
  }
1513
1576
  }, {
@@ -1819,7 +1882,7 @@ const componentInfo = {
1819
1882
  }]
1820
1883
  };
1821
1884
  function Video(e) {
1822
- var i, o, r, a, c, s, l;
1885
+ var i, o, r, a, s, c, l;
1823
1886
  function t() {
1824
1887
  return {
1825
1888
  ...e.autoPlay === !0 ? {
@@ -1887,7 +1950,7 @@ function Video(e) {
1887
1950
  }
1888
1951
  }
1889
1952
  ) }) : null,
1890
- (c = (a = e.builderBlock) == null ? void 0 : a.children) != null && c.length && e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
1953
+ (s = (a = e.builderBlock) == null ? void 0 : a.children) != null && s.length && e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
1891
1954
  "div",
1892
1955
  {
1893
1956
  style: {
@@ -1898,7 +1961,7 @@ function Video(e) {
1898
1961
  children: e.children
1899
1962
  }
1900
1963
  ) }) : null,
1901
- (l = (s = e.builderBlock) == null ? void 0 : s.children) != null && l.length && !e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
1964
+ (l = (c = e.builderBlock) == null ? void 0 : c.children) != null && l.length && !e.fitContent ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
1902
1965
  "div",
1903
1966
  {
1904
1967
  style: {
@@ -2120,7 +2183,7 @@ const findParentElement = (e, t, n = !0) => {
2120
2183
  builderElementIndex: n && i ? [].slice.call(document.getElementsByClassName(i)).indexOf(n) : void 0
2121
2184
  }
2122
2185
  };
2123
- }, SDK_VERSION = "0.12.3", registerInsertMenu = () => {
2186
+ }, SDK_VERSION = "0.12.5", registerInsertMenu = () => {
2124
2187
  register("insertMenu", {
2125
2188
  name: "_default",
2126
2189
  default: !0,
@@ -2172,22 +2235,22 @@ const setupBrowserForEditing = (e = {}) => {
2172
2235
  if (o != null && o.type)
2173
2236
  switch (o.type) {
2174
2237
  case "builder.evaluate": {
2175
- const c = o.data.text, s = o.data.arguments || [], l = o.data.id, d = new Function(c);
2176
- let g, S = null;
2238
+ const s = o.data.text, c = o.data.arguments || [], l = o.data.id, d = new Function(s);
2239
+ let g, x = null;
2177
2240
  try {
2178
- g = d.apply(null, s);
2241
+ g = d.apply(null, c);
2179
2242
  } catch (f) {
2180
- S = f;
2243
+ x = f;
2181
2244
  }
2182
- S ? (r = window.parent) == null || r.postMessage({
2245
+ x ? (r = window.parent) == null || r.postMessage({
2183
2246
  type: "builder.evaluateError",
2184
2247
  data: {
2185
2248
  id: l,
2186
- error: S.message
2249
+ error: x.message
2187
2250
  }
2188
2251
  }, "*") : g && typeof g.then == "function" ? g.then((f) => {
2189
- var b;
2190
- (b = window.parent) == null || b.postMessage({
2252
+ var h;
2253
+ (h = window.parent) == null || h.postMessage({
2191
2254
  type: "builder.evaluateResult",
2192
2255
  data: {
2193
2256
  id: l,
@@ -2207,56 +2270,56 @@ const setupBrowserForEditing = (e = {}) => {
2207
2270
  })));
2208
2271
  };
2209
2272
  function EnableEditor(e) {
2210
- var j, P, A, F, _, V, $;
2273
+ var j, P, A, F, N, _, V;
2211
2274
  const t = useRef(null), [n, i] = useState(() => 0);
2212
2275
  useState(() => !0);
2213
2276
  function o(u) {
2214
- var h, x;
2277
+ var b, S;
2215
2278
  const m = {
2216
2279
  ...e.builderContextSignal.rootState,
2217
2280
  ...u
2218
2281
  };
2219
- e.builderContextSignal.rootSetState ? (x = (h = e.builderContextSignal).rootSetState) == null || x.call(h, m) : e.setBuilderContextSignal((p) => ({
2282
+ e.builderContextSignal.rootSetState ? (S = (b = e.builderContextSignal).rootSetState) == null || S.call(b, m) : e.setBuilderContextSignal((p) => ({
2220
2283
  ...p,
2221
2284
  rootState: m
2222
2285
  }));
2223
2286
  }
2224
2287
  function r(u) {
2225
- var h, x, p, k, B;
2288
+ var b, S, p, k, B;
2226
2289
  const m = {
2227
2290
  ...e.builderContextSignal.content,
2228
2291
  ...u,
2229
2292
  data: {
2230
- ...(h = e.builderContextSignal.content) == null ? void 0 : h.data,
2293
+ ...(b = e.builderContextSignal.content) == null ? void 0 : b.data,
2231
2294
  ...u == null ? void 0 : u.data
2232
2295
  },
2233
2296
  meta: {
2234
- ...(x = e.builderContextSignal.content) == null ? void 0 : x.meta,
2297
+ ...(S = e.builderContextSignal.content) == null ? void 0 : S.meta,
2235
2298
  ...u == null ? void 0 : u.meta,
2236
2299
  breakpoints: ((p = u == null ? void 0 : u.meta) == null ? void 0 : p.breakpoints) || ((B = (k = e.builderContextSignal.content) == null ? void 0 : k.meta) == null ? void 0 : B.breakpoints)
2237
2300
  }
2238
2301
  };
2239
- e.setBuilderContextSignal((N) => ({
2240
- ...N,
2302
+ e.setBuilderContextSignal(($) => ({
2303
+ ...$,
2241
2304
  content: m
2242
2305
  }));
2243
2306
  }
2244
2307
  useState(() => 0);
2245
- const [a, c] = useState(
2308
+ const [a, s] = useState(
2246
2309
  () => !1
2247
- ), [s, l] = useState(
2310
+ ), [c, l] = useState(
2248
2311
  () => e.contentWrapper || "div"
2249
2312
  );
2250
2313
  function d(u) {
2251
- var h;
2314
+ var b;
2252
2315
  if (!isFromTrustedHost(e.trustedHosts, u))
2253
2316
  return;
2254
2317
  const { data: m } = u;
2255
2318
  if (m)
2256
2319
  switch (m.type) {
2257
2320
  case "builder.configureSdk": {
2258
- const x = m.data, { breakpoints: p, contentId: k } = x;
2259
- if (!k || k !== ((h = e.builderContextSignal.content) == null ? void 0 : h.id))
2321
+ const S = m.data, { breakpoints: p, contentId: k } = S;
2322
+ if (!k || k !== ((b = e.builderContextSignal.content) == null ? void 0 : b.id))
2260
2323
  return;
2261
2324
  p && r({
2262
2325
  meta: {
@@ -2266,15 +2329,15 @@ function EnableEditor(e) {
2266
2329
  break;
2267
2330
  }
2268
2331
  case "builder.contentUpdate": {
2269
- const x = m.data, p = x.key || x.alias || x.entry || x.modelName, k = x.data;
2332
+ const S = m.data, p = S.key || S.alias || S.entry || S.modelName, k = S.data;
2270
2333
  p === e.model && (r(k), i(n + 1));
2271
2334
  break;
2272
2335
  }
2273
2336
  }
2274
2337
  }
2275
2338
  function g() {
2276
- var m, h;
2277
- const u = (h = (m = e.builderContextSignal.content) == null ? void 0 : m.data) == null ? void 0 : h.jsCode;
2339
+ var m, b;
2340
+ const u = (b = (m = e.builderContextSignal.content) == null ? void 0 : m.data) == null ? void 0 : b.jsCode;
2278
2341
  u && evaluate({
2279
2342
  code: u,
2280
2343
  context: e.context || {},
@@ -2283,28 +2346,28 @@ function EnableEditor(e) {
2283
2346
  rootSetState: e.builderContextSignal.rootSetState
2284
2347
  });
2285
2348
  }
2286
- const [S, f] = useState(() => ({})), [b, y] = useState(() => !1);
2349
+ const [x, f] = useState(() => ({})), [h, y] = useState(() => !1);
2287
2350
  function I(u) {
2288
- var m, h;
2351
+ var m, b;
2289
2352
  if (e.builderContextSignal.content) {
2290
- const x = (m = e.builderContextSignal.content) == null ? void 0 : m.testVariationId, p = (h = e.builderContextSignal.content) == null ? void 0 : h.id;
2353
+ const S = (m = e.builderContextSignal.content) == null ? void 0 : m.testVariationId, p = (b = e.builderContextSignal.content) == null ? void 0 : b.id;
2291
2354
  _track({
2292
2355
  type: "click",
2293
2356
  canTrack: getDefaultCanTrack(e.canTrack),
2294
2357
  contentId: p,
2295
2358
  apiKey: e.apiKey,
2296
- variationId: x !== p ? x : void 0,
2359
+ variationId: S !== p ? S : void 0,
2297
2360
  ...getInteractionPropertiesForEvent(u),
2298
- unique: !b
2361
+ unique: !h
2299
2362
  });
2300
2363
  }
2301
- b || y(!0);
2364
+ h || y(!0);
2302
2365
  }
2303
2366
  function E(u) {
2304
2367
  return u.replace(
2305
2368
  /{{([^}]+)}}/g,
2306
- (m, h) => evaluate({
2307
- code: h,
2369
+ (m, b) => evaluate({
2370
+ code: b,
2308
2371
  context: e.context || {},
2309
2372
  localState: void 0,
2310
2373
  rootState: e.builderContextSignal.rootState,
@@ -2313,22 +2376,22 @@ function EnableEditor(e) {
2313
2376
  );
2314
2377
  }
2315
2378
  function v({ url: u, key: m }) {
2316
- fetch$1(u).then((h) => h.json()).then((h) => {
2379
+ fetch$1(u).then((b) => b.json()).then((b) => {
2317
2380
  var p, k;
2318
- const x = {
2381
+ const S = {
2319
2382
  ...e.builderContextSignal.rootState,
2320
- [m]: h
2383
+ [m]: b
2321
2384
  };
2322
- (k = (p = e.builderContextSignal).rootSetState) == null || k.call(p, x), S[m] = !0;
2323
- }).catch((h) => {
2324
- console.error("error fetching dynamic data", u, h);
2385
+ (k = (p = e.builderContextSignal).rootSetState) == null || k.call(p, S), x[m] = !0;
2386
+ }).catch((b) => {
2387
+ console.error("error fetching dynamic data", u, b);
2325
2388
  });
2326
2389
  }
2327
2390
  function C() {
2328
- var m, h, x;
2329
- const u = (x = (h = (m = e.builderContextSignal.content) == null ? void 0 : m.data) == null ? void 0 : h.httpRequests) != null ? x : {};
2391
+ var m, b, S;
2392
+ const u = (S = (b = (m = e.builderContextSignal.content) == null ? void 0 : m.data) == null ? void 0 : b.httpRequests) != null ? S : {};
2330
2393
  Object.entries(u).forEach(([p, k]) => {
2331
- if (k && (!S[p] || isEditing())) {
2394
+ if (k && (!x[p] || isEditing())) {
2332
2395
  const B = E(k);
2333
2396
  v({
2334
2397
  url: B,
@@ -2369,19 +2432,19 @@ function EnableEditor(e) {
2369
2432
  }), Object.values(
2370
2433
  e.builderContextSignal.componentInfos
2371
2434
  ).forEach((m) => {
2372
- var x;
2373
- const h = createRegisterComponentMessage(m);
2374
- (x = window.parent) == null || x.postMessage(h, "*");
2435
+ var S;
2436
+ const b = createRegisterComponentMessage(m);
2437
+ (S = window.parent) == null || S.postMessage(b, "*");
2375
2438
  }), window.addEventListener(
2376
2439
  "builder:component:stateChangeListenerActivated",
2377
2440
  T
2378
2441
  );
2379
2442
  }
2380
2443
  function R(u) {
2381
- const m = new URL(location.href).searchParams, h = m.get("builder.preview"), x = m.get(
2382
- `builder.preview.${h}`
2444
+ const m = new URL(location.href).searchParams, b = m.get("builder.preview"), S = m.get(
2445
+ `builder.preview.${b}`
2383
2446
  ), p = m.get("apiKey") || m.get("builder.space");
2384
- h === e.model && p === e.apiKey && (!e.content || x === e.content.id) && fetchOneEntry({
2447
+ b === e.model && p === e.apiKey && (!e.content || S === e.content.id) && fetchOneEntry({
2385
2448
  model: e.model,
2386
2449
  apiKey: e.apiKey,
2387
2450
  apiVersion: e.builderContextSignal.apiVersion
@@ -2417,13 +2480,13 @@ function EnableEditor(e) {
2417
2480
  var u, m;
2418
2481
  if (isBrowser()) {
2419
2482
  if (isEditing() && t.current && t.current.dispatchEvent(new CustomEvent("initeditingbldr")), e.builderContextSignal.content && getDefaultCanTrack(e.canTrack)) {
2420
- const x = (u = e.builderContextSignal.content) == null ? void 0 : u.testVariationId, p = (m = e.builderContextSignal.content) == null ? void 0 : m.id, k = e.apiKey;
2483
+ const S = (u = e.builderContextSignal.content) == null ? void 0 : u.testVariationId, p = (m = e.builderContextSignal.content) == null ? void 0 : m.id, k = e.apiKey;
2421
2484
  _track({
2422
2485
  type: "impression",
2423
2486
  canTrack: !0,
2424
2487
  contentId: p,
2425
2488
  apiKey: k,
2426
- variationId: x !== p ? x : void 0
2489
+ variationId: S !== p ? S : void 0
2427
2490
  });
2428
2491
  }
2429
2492
  isPreviewing() && t.current && t.current.dispatchEvent(new CustomEvent("initpreviewingbldr"));
@@ -2456,19 +2519,19 @@ function EnableEditor(e) {
2456
2519
  T
2457
2520
  ));
2458
2521
  }, []), /* @__PURE__ */ jsx(builderContext.Provider, { value: e.builderContextSignal, children: e.builderContextSignal.content ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ createElement(
2459
- s,
2522
+ c,
2460
2523
  {
2461
2524
  key: n,
2462
2525
  ref: t,
2463
2526
  onClick: (u) => I(u),
2464
- "builder-content-id": (_ = e.builderContextSignal.content) == null ? void 0 : _.id,
2527
+ "builder-content-id": (N = e.builderContextSignal.content) == null ? void 0 : N.id,
2465
2528
  "builder-model": e.model,
2466
2529
  ...e.showContent ? {} : {
2467
2530
  hidden: !0,
2468
2531
  "aria-hidden": !0
2469
2532
  },
2470
2533
  ...e.contentWrapperProps,
2471
- className: `variant-${((V = e.content) == null ? void 0 : V.testVariationId) || (($ = e.content) == null ? void 0 : $.id)}`
2534
+ className: `variant-${((_ = e.content) == null ? void 0 : _.testVariationId) || ((V = e.content) == null ? void 0 : V.id)}`
2472
2535
  },
2473
2536
  e.children
2474
2537
  ) }) : null });
@@ -2485,16 +2548,16 @@ font-display: fallback;
2485
2548
  font-weight: 400;
2486
2549
  }
2487
2550
  `.trim()), e.files)
2488
- for (const c in e.files) {
2489
- if (!(String(Number(c)) === c))
2551
+ for (const s in e.files) {
2552
+ if (!(String(Number(s)) === s))
2490
2553
  continue;
2491
- const l = e.files[c];
2554
+ const l = e.files[s];
2492
2555
  l && l !== i && (o += `
2493
2556
  @font-face {
2494
2557
  font-family: "${t}";
2495
2558
  src: url('${l}') format('woff2');
2496
2559
  font-display: fallback;
2497
- font-weight: ${c};
2560
+ font-weight: ${s};
2498
2561
  }
2499
2562
  `.trim());
2500
2563
  }
@@ -2544,10 +2607,10 @@ const getRootStateInitialValue = ({
2544
2607
  data: t,
2545
2608
  locale: n
2546
2609
  }) => {
2547
- var r, a, c;
2610
+ var r, a, s;
2548
2611
  const i = {}, o = ((r = e == null ? void 0 : e.data) == null ? void 0 : r.state) || {};
2549
- return (c = (a = e == null ? void 0 : e.data) == null ? void 0 : a.inputs) == null || c.forEach((s) => {
2550
- s.name && s.defaultValue !== void 0 && (i[s.name] = s.defaultValue);
2612
+ return (s = (a = e == null ? void 0 : e.data) == null ? void 0 : a.inputs) == null || s.forEach((c) => {
2613
+ c.name && c.defaultValue !== void 0 && (i[c.name] = c.defaultValue);
2551
2614
  }), {
2552
2615
  ...i,
2553
2616
  ...o,
@@ -2568,7 +2631,7 @@ const getRootStateInitialValue = ({
2568
2631
  meta: e == null ? void 0 : e.meta
2569
2632
  } : void 0;
2570
2633
  function ContentComponent(e) {
2571
- var s, l, d, g, S, f, b;
2634
+ var c, l, d, g, x, f, h;
2572
2635
  const [t, n] = useState(
2573
2636
  () => {
2574
2637
  var y, I;
@@ -2581,7 +2644,7 @@ function ContentComponent(e) {
2581
2644
  }
2582
2645
  );
2583
2646
  function i(y) {
2584
- c((I) => ({
2647
+ s((I) => ({
2585
2648
  ...I,
2586
2649
  rootState: y
2587
2650
  }));
@@ -2606,7 +2669,7 @@ function ContentComponent(e) {
2606
2669
  }),
2607
2670
  {}
2608
2671
  )
2609
- ), [a, c] = useState(() => ({
2672
+ ), [a, s] = useState(() => ({
2610
2673
  content: getContentInitialValue({
2611
2674
  content: e.content,
2612
2675
  data: e.data
@@ -2663,24 +2726,26 @@ function ContentComponent(e) {
2663
2726
  builderContextSignal: a,
2664
2727
  contentWrapper: e.contentWrapper,
2665
2728
  contentWrapperProps: e.contentWrapperProps,
2729
+ linkComponent: e.linkComponent,
2666
2730
  trustedHosts: e.trustedHosts,
2667
- setBuilderContextSignal: c,
2731
+ setBuilderContextSignal: s,
2668
2732
  children: [
2669
2733
  e.isSsrAbTest ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(InlinedScript, { scriptStr: t }) }) : null,
2670
2734
  /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
2671
2735
  ContentStyles,
2672
2736
  {
2673
- contentId: (s = a.content) == null ? void 0 : s.id,
2737
+ contentId: (c = a.content) == null ? void 0 : c.id,
2674
2738
  cssCode: (d = (l = a.content) == null ? void 0 : l.data) == null ? void 0 : d.cssCode,
2675
- customFonts: (S = (g = a.content) == null ? void 0 : g.data) == null ? void 0 : S.customFonts
2739
+ customFonts: (x = (g = a.content) == null ? void 0 : g.data) == null ? void 0 : x.customFonts
2676
2740
  }
2677
2741
  ) }),
2678
2742
  /* @__PURE__ */ jsx(
2679
2743
  Blocks,
2680
2744
  {
2681
- blocks: (b = (f = a.content) == null ? void 0 : f.data) == null ? void 0 : b.blocks,
2745
+ blocks: (h = (f = a.content) == null ? void 0 : f.data) == null ? void 0 : h.blocks,
2682
2746
  context: a,
2683
- registeredComponents: o
2747
+ registeredComponents: o,
2748
+ linkComponent: e.linkComponent
2684
2749
  }
2685
2750
  )
2686
2751
  ]
@@ -2690,7 +2755,7 @@ function ContentComponent(e) {
2690
2755
  );
2691
2756
  }
2692
2757
  function ContentVariants(e) {
2693
- var a, c;
2758
+ var a, s;
2694
2759
  const [t, n] = useState(
2695
2760
  () => checkShouldRenderVariants({
2696
2761
  canTrack: getDefaultCanTrack(e.canTrack),
@@ -2698,23 +2763,23 @@ function ContentVariants(e) {
2698
2763
  })
2699
2764
  );
2700
2765
  function i() {
2701
- var s;
2766
+ var c;
2702
2767
  return getUpdateCookieAndStylesScript(
2703
2768
  getVariants(e.content).map((l) => ({
2704
2769
  id: l.testVariationId,
2705
2770
  testRatio: l.testRatio
2706
2771
  })),
2707
- ((s = e.content) == null ? void 0 : s.id) || ""
2772
+ ((c = e.content) == null ? void 0 : c.id) || ""
2708
2773
  );
2709
2774
  }
2710
2775
  function o() {
2711
- return getVariants(e.content).map((s) => `.variant-${s.testVariationId} { display: none; } `).join("");
2776
+ return getVariants(e.content).map((c) => `.variant-${c.testVariationId} { display: none; } `).join("");
2712
2777
  }
2713
2778
  function r() {
2714
- var s;
2779
+ var c;
2715
2780
  return t ? {
2716
2781
  ...e.content,
2717
- testVariationId: (s = e.content) == null ? void 0 : s.id
2782
+ testVariationId: (c = e.content) == null ? void 0 : c.id
2718
2783
  } : handleABTestingSync({
2719
2784
  item: e.content,
2720
2785
  canTrack: getDefaultCanTrack(e.canTrack)
@@ -2732,10 +2797,10 @@ function ContentVariants(e) {
2732
2797
  }
2733
2798
  ),
2734
2799
  /* @__PURE__ */ jsx(InlinedScript, { scriptStr: i() }),
2735
- (c = getVariants(e.content)) == null ? void 0 : c.map((s) => /* @__PURE__ */ jsx(
2800
+ (s = getVariants(e.content)) == null ? void 0 : s.map((c) => /* @__PURE__ */ jsx(
2736
2801
  ContentComponent,
2737
2802
  {
2738
- content: s,
2803
+ content: c,
2739
2804
  showContent: !1,
2740
2805
  model: e.model,
2741
2806
  data: e.data,
@@ -2743,6 +2808,7 @@ function ContentVariants(e) {
2743
2808
  apiKey: e.apiKey,
2744
2809
  apiVersion: e.apiVersion,
2745
2810
  customComponents: e.customComponents,
2811
+ linkComponent: e.linkComponent,
2746
2812
  canTrack: e.canTrack,
2747
2813
  locale: e.locale,
2748
2814
  includeRefs: e.includeRefs,
@@ -2754,7 +2820,7 @@ function ContentVariants(e) {
2754
2820
  contentWrapperProps: e.contentWrapperProps,
2755
2821
  trustedHosts: e.trustedHosts
2756
2822
  },
2757
- s.testVariationId
2823
+ c.testVariationId
2758
2824
  ))
2759
2825
  ] }) : null,
2760
2826
  /* @__PURE__ */ jsx(
@@ -2768,6 +2834,7 @@ function ContentVariants(e) {
2768
2834
  apiKey: e.apiKey,
2769
2835
  apiVersion: e.apiVersion,
2770
2836
  customComponents: e.customComponents,
2837
+ linkComponent: e.linkComponent,
2771
2838
  canTrack: e.canTrack,
2772
2839
  locale: e.locale,
2773
2840
  includeRefs: e.includeRefs,
@@ -2802,11 +2869,11 @@ const fetchSymbolContent = async ({
2802
2869
  });
2803
2870
  };
2804
2871
  function Symbol$1(e) {
2805
- var r, a, c, s;
2872
+ var r, a, s, c;
2806
2873
  function t() {
2807
2874
  var l, d;
2808
2875
  return [
2809
- e.attributes.className,
2876
+ e.attributes[getClassPropName()],
2810
2877
  "builder-symbol",
2811
2878
  (l = e.symbol) != null && l.inline ? "builder-inline-symbol" : void 0,
2812
2879
  (d = e.symbol) != null && d.dynamic || e.dynamic ? "builder-dynamic-symbol" : void 0
@@ -2841,10 +2908,11 @@ function Symbol$1(e) {
2841
2908
  data: {
2842
2909
  ...(a = e.symbol) == null ? void 0 : a.data,
2843
2910
  ...e.builderContext.localState,
2844
- ...(c = n == null ? void 0 : n.data) == null ? void 0 : c.state
2911
+ ...(s = n == null ? void 0 : n.data) == null ? void 0 : s.state
2845
2912
  },
2846
- model: (s = e.symbol) == null ? void 0 : s.model,
2847
- content: n
2913
+ model: (c = e.symbol) == null ? void 0 : c.model,
2914
+ content: n,
2915
+ linkComponent: e.builderLinkComponent
2848
2916
  }
2849
2917
  ) });
2850
2918
  }