@builder.io/sdk-react 3.0.6 → 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 (77) hide show
  1. package/lib/browser/blocks-exports.cjs +32 -32
  2. package/lib/browser/blocks-exports.mjs +923 -860
  3. package/lib/browser/index.cjs +1 -1
  4. package/lib/browser/index.mjs +1 -1
  5. package/lib/browser/{server-entry-df5e89e5.js → server-entry-422fad84.js} +51 -40
  6. package/lib/browser/server-entry-916191b4.cjs +2 -0
  7. package/lib/browser/server-entry.cjs +1 -1
  8. package/lib/browser/server-entry.mjs +1 -1
  9. package/lib/edge/{accordion-fbfb71f4.cjs → accordion-2f83fc75.cjs} +1 -1
  10. package/lib/edge/{accordion-289f3464.js → accordion-e1b77652.js} +1 -1
  11. package/lib/edge/{blocks-582a7fd7.js → blocks-0885e182.js} +1305 -1280
  12. package/lib/edge/blocks-5165c164.cjs +30 -0
  13. package/lib/edge/blocks-exports.cjs +1 -1
  14. package/lib/edge/blocks-exports.mjs +2 -2
  15. package/lib/edge/{button-da357144.cjs → button-d7197e96.cjs} +1 -1
  16. package/lib/edge/{button-9b112da6.js → button-d878f35c.js} +2 -2
  17. package/lib/edge/{columns-a211113f.cjs → columns-46729516.cjs} +1 -1
  18. package/lib/edge/{columns-aba58dda.js → columns-b365c86a.js} +3 -3
  19. package/lib/edge/{content-variants-08f4371c.js → content-variants-1594c868.js} +281 -279
  20. package/lib/edge/content-variants-c6cab1c3.cjs +134 -0
  21. package/lib/edge/{form-e3a3afd4.cjs → form-9844766c.cjs} +1 -1
  22. package/lib/edge/{form-4d4553c2.js → form-b66c20a3.js} +3 -3
  23. package/lib/edge/{get-class-prop-name-fbe244e3.cjs → get-class-prop-name-0b992cfb.cjs} +1 -1
  24. package/lib/edge/{get-class-prop-name-38c2baca.js → get-class-prop-name-dac81472.js} +1 -1
  25. package/lib/edge/{img-c49066fa.js → img-c4a772a8.js} +1 -1
  26. package/lib/edge/{img-8d549af8.cjs → img-fb35350a.cjs} +1 -1
  27. package/lib/edge/index.cjs +1 -1
  28. package/lib/edge/index.mjs +1 -1
  29. package/lib/edge/{input-1ae3842f.cjs → input-122768ac.cjs} +1 -1
  30. package/lib/edge/{input-e7301f4e.js → input-57c5b097.js} +1 -1
  31. package/lib/edge/{personalization-container-035be6ba.js → personalization-container-7e63edce.js} +4 -4
  32. package/lib/edge/{personalization-container-25cd8b5e.cjs → personalization-container-a17ae615.cjs} +1 -1
  33. package/lib/edge/{select-4187b229.js → select-3d4324ef.js} +1 -1
  34. package/lib/edge/{select-64fdaa79.cjs → select-7f750b70.cjs} +1 -1
  35. package/lib/edge/server-entry-77166102.cjs +2 -0
  36. package/lib/edge/{server-entry-61fca4f7.js → server-entry-c1673af2.js} +55 -44
  37. package/lib/edge/server-entry.cjs +1 -1
  38. package/lib/edge/server-entry.mjs +1 -1
  39. package/lib/edge/{slot-d6c46a42.js → slot-05ef18a0.js} +3 -3
  40. package/lib/edge/{slot-995f63c2.cjs → slot-123c0993.cjs} +1 -1
  41. package/lib/edge/symbol-ee314d5a.cjs +1 -0
  42. package/lib/edge/{symbol-623dc717.js → symbol-f488bea0.js} +25 -25
  43. package/lib/edge/{tabs-12ba41b1.js → tabs-244d53fa.js} +3 -3
  44. package/lib/edge/{tabs-d39499cd.cjs → tabs-edb82022.cjs} +1 -1
  45. package/lib/edge/{video-a3f10439.js → video-52df64e2.js} +54 -17
  46. package/lib/edge/video-cc58dd83.cjs +1 -0
  47. package/lib/node/blocks-exports.cjs +32 -32
  48. package/lib/node/blocks-exports.mjs +912 -849
  49. package/lib/node/index.cjs +1 -1
  50. package/lib/node/index.mjs +3 -3
  51. package/lib/node/init.cjs +1 -1
  52. package/lib/node/init.mjs +3 -3
  53. package/lib/node/{server-entry-27d9d31e.js → server-entry-4df60fc5.js} +51 -40
  54. package/lib/node/server-entry-8ab8c78b.cjs +2 -0
  55. package/lib/node/server-entry.cjs +1 -1
  56. package/lib/node/server-entry.mjs +1 -1
  57. package/lib/node/{setIvm-2dde9074.js → setIvm-0edfc727.js} +1 -1
  58. package/lib/node/{setIvm-784fe19f.cjs → setIvm-6405aa63.cjs} +1 -1
  59. package/lib/node/setIvm.cjs +1 -1
  60. package/lib/node/setIvm.mjs +2 -2
  61. package/lib/node/{should-force-browser-runtime-in-node-cd6baa94.cjs → should-force-browser-runtime-in-node-6d4dbff9.cjs} +1 -1
  62. package/lib/node/{should-force-browser-runtime-in-node-80f081c8.js → should-force-browser-runtime-in-node-7a39b073.js} +1 -1
  63. package/package.json +1 -1
  64. package/types/components/content-variants/content-variants.types.d.ts +2 -2
  65. package/types/constants/device-sizes.d.ts +3 -2
  66. package/types/constants/sdk-version.d.ts +1 -1
  67. package/types/helpers/subscribe-to-editor.d.ts +13 -13
  68. package/types/scripts/init-editing.d.ts +3 -1
  69. package/types/types/builder-block.d.ts +0 -1
  70. package/types/types/builder-content.d.ts +1 -0
  71. package/lib/browser/server-entry-a1c64831.cjs +0 -2
  72. package/lib/edge/blocks-459a090b.cjs +0 -30
  73. package/lib/edge/content-variants-4b5899b5.cjs +0 -134
  74. package/lib/edge/server-entry-2ef4e66a.cjs +0 -2
  75. package/lib/edge/symbol-498daa97.cjs +0 -1
  76. package/lib/edge/video-4ecfd08b.cjs +0 -1
  77. package/lib/node/server-entry-98ebff74.cjs +0 -2
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./blocks-exports.cjs"),e=require("./server-entry-a1c64831.cjs");require("react/jsx-runtime");require("react");exports.Blocks=t.Blocks;exports.BuilderContext=t.BuilderContext;exports.Button=t.Button;exports.Columns=t.Columns;exports.Content=t.Content;exports.Fragment=t.Fragment;exports.Image=t.Image;exports.Section=t.Section;exports.Symbol=t.Symbol;exports.Text=t.Text;exports.Video=t.Video;exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setClientUserAttributes=e.setClientUserAttributes;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./blocks-exports.cjs"),e=require("./server-entry-916191b4.cjs");require("react/jsx-runtime");require("react");exports.Blocks=t.Blocks;exports.BuilderContext=t.BuilderContext;exports.Button=t.Button;exports.Columns=t.Columns;exports.Content=t.Content;exports.Fragment=t.Fragment;exports.Image=t.Image;exports.Section=t.Section;exports.Symbol=t.Symbol;exports.Text=t.Text;exports.Video=t.Video;exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setClientUserAttributes=e.setClientUserAttributes;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
@@ -1,5 +1,5 @@
1
1
  import { Blocks as o, BuilderContext as s, Button as n, Columns as c, Content as m, Fragment as g, Image as a, Section as l, Symbol as u, Text as d, Video as p } from "./blocks-exports.mjs";
2
- import { _processContentResult as f, createRegisterComponentMessage as B, fetchBuilderProps as E, fetchEntries as b, fetchOneEntry as h, getBuilderSearchParams as x, isEditing as S, isPreviewing as P, register as k, setClientUserAttributes as y, setEditorSettings as R, subscribeToEditor as T, track as v } from "./server-entry-df5e89e5.js";
2
+ import { _processContentResult as f, createRegisterComponentMessage as B, fetchBuilderProps as E, fetchEntries as b, fetchOneEntry as h, getBuilderSearchParams as x, isEditing as S, isPreviewing as P, register as k, setClientUserAttributes as y, setEditorSettings as R, subscribeToEditor as T, track as v } from "./server-entry-422fad84.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
5
5
  export {
@@ -67,11 +67,11 @@ const ne = (t) => ({
67
67
  function j(t) {
68
68
  return JSON.parse(JSON.stringify(t, (e, n) => typeof n == "function" ? dt(n) : n));
69
69
  }
70
- const B = {};
70
+ const R = {};
71
71
  function ft(t, e) {
72
72
  t === "plugin" && (e = j(e));
73
- let n = B[t];
74
- if (n || (n = B[t] = []), n.push(e), c()) {
73
+ let n = R[t];
74
+ if (n || (n = R[t] = []), n.push(e), c()) {
75
75
  const r = {
76
76
  type: "builder.register",
77
77
  data: {
@@ -97,13 +97,13 @@ function re(t) {
97
97
  parent.postMessage(e, "*");
98
98
  }
99
99
  }
100
- const V = "builder.", ht = "options.", W = (t) => {
100
+ const N = "builder.", ht = "options.", W = (t) => {
101
101
  if (!t)
102
102
  return {};
103
103
  const e = M(t), n = {};
104
104
  return Object.keys(e).forEach((r) => {
105
- if (r.startsWith(V)) {
106
- const s = r.replace(V, "").replace(ht, "");
105
+ if (r.startsWith(N)) {
106
+ const s = r.replace(N, "").replace(ht, "");
107
107
  n[s] = e[r];
108
108
  }
109
109
  }), n;
@@ -112,7 +112,7 @@ const V = "builder.", ht = "options.", W = (t) => {
112
112
  return {};
113
113
  const t = new URLSearchParams(window.location.search);
114
114
  return W(t);
115
- }, _ = "3.0.6", $ = () => ({
115
+ }, _ = "4.0.0", $ = () => ({
116
116
  "X-Builder-SDK": v,
117
117
  "X-Builder-SDK-GEN": "2",
118
118
  "X-Builder-SDK-Version": _
@@ -167,13 +167,13 @@ function St() {
167
167
  function J() {
168
168
  return St().replace(/-/g, "");
169
169
  }
170
- const z = "builderSessionId", wt = async ({
170
+ const X = "builderSessionId", wt = async ({
171
171
  canTrack: t
172
172
  }) => {
173
173
  if (!t)
174
174
  return;
175
175
  const e = await G({
176
- name: z,
176
+ name: X,
177
177
  canTrack: t
178
178
  });
179
179
  if (y(e))
@@ -189,16 +189,16 @@ const z = "builderSessionId", wt = async ({
189
189
  id: t,
190
190
  canTrack: e
191
191
  }) => P({
192
- name: z,
192
+ name: X,
193
193
  value: t,
194
194
  canTrack: e
195
- }), H = () => c() && typeof localStorage != "undefined" ? localStorage : void 0, kt = ({
195
+ }), z = () => c() && typeof localStorage != "undefined" ? localStorage : void 0, kt = ({
196
196
  key: t,
197
197
  canTrack: e
198
198
  }) => {
199
199
  var n;
200
200
  try {
201
- return e ? (n = H()) == null ? void 0 : n.getItem(t) : void 0;
201
+ return e ? (n = z()) == null ? void 0 : n.getItem(t) : void 0;
202
202
  } catch (r) {
203
203
  console.debug("[LocalStorage] GET error: ", r);
204
204
  return;
@@ -210,17 +210,17 @@ const z = "builderSessionId", wt = async ({
210
210
  }) => {
211
211
  var r;
212
212
  try {
213
- e && ((r = H()) == null || r.setItem(t, n));
213
+ e && ((r = z()) == null || r.setItem(t, n));
214
214
  } catch (s) {
215
215
  console.debug("[LocalStorage] SET error: ", s);
216
216
  }
217
- }, X = "builderVisitorId", Et = ({
217
+ }, H = "builderVisitorId", Et = ({
218
218
  canTrack: t
219
219
  }) => {
220
220
  if (!t)
221
221
  return;
222
222
  const e = kt({
223
- key: X,
223
+ key: H,
224
224
  canTrack: t
225
225
  });
226
226
  if (y(e))
@@ -236,7 +236,7 @@ const z = "builderSessionId", wt = async ({
236
236
  id: t,
237
237
  canTrack: e
238
238
  }) => At({
239
- key: X,
239
+ key: H,
240
240
  value: t,
241
241
  canTrack: e
242
242
  });
@@ -310,12 +310,12 @@ async function xt({
310
310
  const se = (t) => xt({
311
311
  ...t,
312
312
  canTrack: !0
313
- }), Rt = ["*.beta.builder.io", "beta.builder.io", "builder.io", "localhost", "qa.builder.io"];
313
+ }), Bt = ["*.beta.builder.io", "beta.builder.io", "builder.io", "localhost", "qa.builder.io"];
314
314
  function Q(t, e) {
315
315
  if (!e.origin.startsWith("http") && !e.origin.startsWith("https"))
316
316
  return !1;
317
317
  const n = new URL(e.origin), r = n.hostname;
318
- return (t || Rt).findIndex((s) => s.startsWith("*.") ? r.endsWith(s.slice(1)) : s === r) > -1;
318
+ return (t || Bt).findIndex((s) => s.startsWith("*.") ? r.endsWith(s.slice(1)) : s === r) > -1;
319
319
  }
320
320
  const oe = () => {
321
321
  ft("insertMenu", {
@@ -340,10 +340,10 @@ const oe = () => {
340
340
  }]
341
341
  });
342
342
  };
343
- let N = !1;
344
- const Bt = (t = {}) => {
343
+ let V = !1;
344
+ const Rt = (t) => {
345
345
  var e, n;
346
- N || (N = !0, c() && ((e = window.parent) == null || e.postMessage({
346
+ V || (V = !0, c() && ((e = window.parent) == null || e.postMessage({
347
347
  type: "builder.sdkInfo",
348
348
  data: {
349
349
  target: v,
@@ -353,6 +353,9 @@ const Bt = (t = {}) => {
353
353
  // scope our '+ add block' button styling
354
354
  supportsAddBlockScoping: !0,
355
355
  supportsCustomBreakpoints: !0,
356
+ modelName: t.modelName,
357
+ apiKey: t.apiKey,
358
+ supportsXSmallBreakpoint: !0,
356
359
  blockLevelPersonalization: !0
357
360
  }
358
361
  }, "*"), (n = window.parent) == null || n.postMessage({
@@ -429,26 +432,34 @@ const Bt = (t = {}) => {
429
432
  break;
430
433
  }
431
434
  }
432
- }, ie = (t, e, n) => {
435
+ }, ie = ({
436
+ model: t,
437
+ apiKey: e,
438
+ callback: n,
439
+ trustedHosts: r
440
+ }) => {
433
441
  if (!c)
434
442
  return f.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."), () => {
435
443
  };
436
- Bt();
437
- const r = Lt({
444
+ Rt({
445
+ modelName: t,
446
+ apiKey: e
447
+ });
448
+ const s = Lt({
438
449
  callbacks: {
439
- contentUpdate: e,
450
+ contentUpdate: n,
440
451
  animation: () => {
441
452
  },
442
453
  configureSdk: () => {
443
454
  }
444
455
  },
445
456
  model: t,
446
- trustedHosts: n == null ? void 0 : n.trustedHosts
457
+ trustedHosts: r
447
458
  });
448
- return window.addEventListener("message", r), () => {
449
- window.removeEventListener("message", r);
459
+ return window.addEventListener("message", s), () => {
460
+ window.removeEventListener("message", s);
450
461
  };
451
- }, Vt = "builder.tests", C = (t) => `${Vt}.${t}`, Nt = ({
462
+ }, Nt = "builder.tests", C = (t) => `${Nt}.${t}`, Vt = ({
452
463
  contentId: t
453
464
  }) => G({
454
465
  name: C(t),
@@ -529,7 +540,7 @@ const Bt = (t = {}) => {
529
540
  }) => {
530
541
  if (!e || !Y(t))
531
542
  return t;
532
- const r = await Nt({
543
+ const r = await Vt({
533
544
  contentId: t.id
534
545
  }) || Z({
535
546
  variations: t.variations,
@@ -624,7 +635,7 @@ function Jt(t) {
624
635
  }
625
636
  return e;
626
637
  }
627
- const zt = "v3", D = (t) => typeof t == "number" && !isNaN(t) && t >= 0, U = (t) => {
638
+ const Xt = "v3", D = (t) => typeof t == "number" && !isNaN(t) && t >= 0, U = (t) => {
628
639
  const {
629
640
  limit: e = 30,
630
641
  userAttributes: n,
@@ -633,7 +644,7 @@ const zt = "v3", D = (t) => typeof t == "number" && !isNaN(t) && t >= 0, U = (t)
633
644
  apiKey: o,
634
645
  enrich: i,
635
646
  locale: u,
636
- apiVersion: b = zt,
647
+ apiVersion: b = Xt,
637
648
  fields: p,
638
649
  omit: k,
639
650
  offset: l,
@@ -667,11 +678,11 @@ const zt = "v3", D = (t) => typeof t == "number" && !isNaN(t) && t >= 0, U = (t)
667
678
  };
668
679
  m = {
669
680
  ...m,
670
- ...Xt(x)
681
+ ...Ht(x)
671
682
  };
672
- const R = E(x);
673
- for (const d in R)
674
- a.searchParams.set(d, String(R[d]));
683
+ const B = E(x);
684
+ for (const d in B)
685
+ a.searchParams.set(d, String(B[d]));
675
686
  if (Object.keys(m).length > 0 && a.searchParams.set("userAttributes", JSON.stringify(m)), r) {
676
687
  const d = et({
677
688
  query: r
@@ -680,15 +691,15 @@ const zt = "v3", D = (t) => typeof t == "number" && !isNaN(t) && t >= 0, U = (t)
680
691
  a.searchParams.set(w, JSON.stringify(d[w]));
681
692
  }
682
693
  return a;
683
- }, Ht = (t) => {
694
+ }, zt = (t) => {
684
695
  const e = {};
685
696
  for (const n in t)
686
697
  n.startsWith("userAttributes.") && (e[n] = t[n], delete t[n]);
687
698
  return e;
688
- }, Xt = (t) => {
699
+ }, Ht = (t) => {
689
700
  if (c() && t.preview === "BUILDER_STUDIO") {
690
701
  t["userAttributes.urlPath"] = window.location.pathname, t["userAttributes.host"] = window.location.host;
691
- const e = Ht(t), {
702
+ const e = zt(t), {
692
703
  userAttributes: n
693
704
  } = Jt(e);
694
705
  return n;
@@ -783,7 +794,7 @@ export {
783
794
  j as serializeIncludingFunctions,
784
795
  ce as setClientUserAttributes,
785
796
  re as setEditorSettings,
786
- Bt as setupBrowserForEditing,
797
+ Rt as setupBrowserForEditing,
787
798
  ie as subscribeToEditor,
788
799
  se as track,
789
800
  tt as userAttributesService
@@ -0,0 +1,2 @@
1
+ "use strict";const y="react",E="[Builder.io]: ",d={log:(...e)=>console.log(E,...e),error:(...e)=>console.error(E,...e),warn:(...e)=>console.warn(E,...e),debug:(...e)=>console.debug(E,...e)};function c(){return typeof window!="undefined"&&typeof document!="undefined"}const me=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},j=e=>e instanceof URLSearchParams?me(e):e,W=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function be(){return c()&&window.self!==window.top}function $(e){return be()&&W(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const ye=()=>{if(c()){const e=new URL(location.href);return e.pathname===""&&(e.pathname="/"),e}else return console.warn("Cannot get location for tracking in non-browser environment"),null},Se=()=>typeof navigator=="object"&&navigator.userAgent||"",G=()=>{const e=Se(),t={Android(){return e.match(/Android/i)},BlackBerry(){return e.match(/BlackBerry/i)},iOS(){return e.match(/iPhone|iPod/i)},Opera(){return e.match(/Opera Mini/i)},Windows(){return e.match(/IEMobile/i)||e.match(/WPDesktop/i)},any(){return t.Android()||t.BlackBerry()||t.iOS()||t.Opera()||t.Windows()||y==="reactNative"}},n=e.match(/Tablet|iPad/i),r=ye();return{urlPath:r==null?void 0:r.pathname,host:(r==null?void 0:r.host)||(r==null?void 0:r.hostname),device:n?"tablet":t.any()?"mobile":"desktop"}},p=e=>e!=null;function we(e){const t=e||(c()?window.location.search:void 0);return t?W(t).indexOf("builder.preview=")!==-1:!1}const ve=e=>({type:"builder.registerComponent",data:O(e)}),Ee=e=>{const t=e.toString().trim(),n=/^[a-zA-Z0-9_]+\s*=>/i.test(t);return`return (${!t.startsWith("function")&&!t.startsWith("async")&&!t.startsWith("(")&&!n?"function ":""}${t}).apply(this, arguments)`};function O(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?Ee(n):n))}const F={};function J(e,t){e==="plugin"&&(t=O(t));let n=F[e];if(n||(n=F[e]=[]),n.push(t),c()){const r={type:"builder.register",data:{type:e,info:t}};try{parent.postMessage(r,"*"),parent!==window&&window.postMessage(r,"*")}catch(s){console.debug("Could not postmessage",s)}}}const V={};function Ie(e){if(c()){Object.assign(V,e);const t={type:"builder.settingsChange",data:V};parent.postMessage(t,"*")}}const D="builder.",ke="options.",C=e=>{if(!e)return{};const t=j(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(D)){const s=r.replace(D,"").replace(ke,"");n[s]=t[r]}}),n},Ae=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return C(e)},z="4.0.0",X=()=>({"X-Builder-SDK":y,"X-Builder-SDK-GEN":"2","X-Builder-SDK-Version":z}),Oe=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},P=({name:e,canTrack:t})=>{var n;try{return t?(n=document.cookie.split("; ").find(r=>r.startsWith(`${e}=`)))==null?void 0:n.split("=")[1]:void 0}catch(r){d.warn("[COOKIE] GET error: ",(r==null?void 0:r.message)||r);return}},H=async e=>P(e),Ce=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),Pe=[["secure",""],["SameSite","None"]],Te=({name:e,value:t,expires:n})=>{const s=(c()?location.protocol==="https:":!0)?Pe:[[]],o=n?[["expires",n.toUTCString()]]:[[]],i=[[e,t],...o,["path","/"],["domain",Oe(window.location.hostname)],...s];return Ce(i)},T=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const s=Te({name:e,value:t,expires:n});document.cookie=s}catch(s){d.warn("[COOKIE] SET error: ",(s==null?void 0:s.message)||s)}};function Ue(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)})}function Q(){return Ue().replace(/-/g,"")}const Y="builderSessionId",Be=async({canTrack:e})=>{if(!e)return;const t=await H({name:Y,canTrack:e});if(p(t))return t;{const n=xe();return Re({id:n,canTrack:e}),n}},xe=()=>Q(),Re=({id:e,canTrack:t})=>T({name:Y,value:e,canTrack:t}),Z=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,Le=({key:e,canTrack:t})=>{var n;try{return t?(n=Z())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Ne=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=Z())==null||r.setItem(e,n))}catch(s){console.debug("[LocalStorage] SET error: ",s)}},q="builderVisitorId",Fe=({canTrack:e})=>{if(!e)return;const t=Le({key:q,canTrack:e});if(p(t))return t;{const n=Ve();return De({id:n,canTrack:e}),n}},Ve=()=>Q(),De=({id:e,canTrack:t})=>Ne({key:q,value:e,canTrack:t});function ee(e){var t;typeof process!="undefined"&&((t=process.env)!=null&&t.DEBUG)&&String(process.env.DEBUG)=="true"&&d.log(e)}const Me=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await Be({canTrack:e}),n=Fe({canTrack:e});return{sessionId:t,visitorId:n}},Ke=async({type:e,canTrack:t,apiKey:n,metadata:r,...s})=>({type:e,data:{...s,metadata:{url:location.href,...r},...await Me({canTrack:t}),userAttributes:G(),ownerId:n}});async function te({apiHost:e,...t}){if(!t.apiKey){d.error("Missing API key for track call. Please provide your API key.");return}if(!t.canTrack||$()||!(c()||y==="reactNative"))return;const r=`${e||"https://cdn.builder.io"}/api/v1/track`;return ee(r),fetch(r,{method:"POST",body:JSON.stringify({events:[await Ke(t)]}),headers:{"content-type":"application/json",...X()},mode:"cors"}).catch(s=>{console.error("Failed to track: ",s)})}const _e=e=>te({...e,canTrack:!0}),je=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function ne(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||je).findIndex(s=>s.startsWith("*.")?r.endsWith(s.slice(1)):s===r)>-1}const We=()=>{J("insertMenu",{name:"_default",default:!0,items:[{name:"Box"},{name:"Text"},{name:"Image"},{name:"Columns"},{name:"Core:Section"},{name:"Core:Button"},{name:"Embed"},{name:"Custom Code"}]})};let M=!1;const re=e=>{var t,n;M||(M=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:y,version:z,supportsPatchUpdates:!1,supportsAddBlockScoping:!0,supportsCustomBreakpoints:!0,modelName:e.modelName,apiKey:e.apiKey,supportsXSmallBreakpoint:!0,blockLevelPersonalization:!0}},"*"),(n=window.parent)==null||n.postMessage({type:"builder.updateContent",data:{options:e}},"*"),window.addEventListener("message",r=>{var o,i;if(!ne(e.trustedHosts,r))return;const{data:s}=r;if(s!=null&&s.type)switch(s.type){case"builder.evaluate":{const u=s.data.text,S=s.data.arguments||[],m=s.data.id,I=new Function(u);let l,g=null;try{l=I.apply(null,S)}catch(h){g=h}g?(o=window.parent)==null||o.postMessage({type:"builder.evaluateError",data:{id:m,error:g.message}},"*"):l&&typeof l.then=="function"?l.then(h=>{var w;(w=window.parent)==null||w.postMessage({type:"builder.evaluateResult",data:{id:m,result:h}},"*")}).catch(console.error):(i=window.parent)==null||i.postMessage({type:"builder.evaluateResult",data:{result:l,id:m}},"*");break}}})))},se=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!ne(t,r))return;const{data:s}=r;if(s)switch(s.type){case"builder.configureSdk":{n.configureSdk(s.data);break}case"builder.triggerAnimation":{n.animation(s.data);break}case"builder.contentUpdate":{const o=s.data,i=o.key||o.alias||o.entry||o.modelName,u=o.data;i===e&&n.contentUpdate(u);break}}},$e=({model:e,apiKey:t,callback:n,trustedHosts:r})=>{if(!c)return d.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};re({modelName:e,apiKey:t});const s=se({callbacks:{contentUpdate:n,animation:()=>{},configureSdk:()=>{}},model:e,trustedHosts:r});return window.addEventListener("message",s),()=>{window.removeEventListener("message",s)}},Ge="builder.tests",U=e=>`${Ge}.${e}`,Je=({contentId:e})=>H({name:U(e),canTrack:!0}),ze=({contentId:e})=>P({name:U(e),canTrack:!0}),Xe=({contentId:e,value:t})=>T({name:U(e),value:t,canTrack:!0}),oe=e=>p(e.id)&&p(e.variations)&&Object.keys(e.variations).length>0,He=({id:e,variations:t})=>{var s;let n=0;const r=Math.random();for(const o in t){const i=(s=t[o])==null?void 0:s.testRatio;if(n+=i,r<n)return o}return e},ie=e=>{const t=He(e);return Xe({contentId:e.id,value:t}).catch(n=>{d.error("could not store A/B test variation: ",n)}),t},ae=({item:e,testGroupId:t})=>{const n=e.variations[t];return t===e.id||!n?{testVariationId:e.id,testVariationName:"Default"}:{data:n.data,testVariationId:n.id,testVariationName:n.name||(n.id===e.id?"Default":"")}},Qe=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!oe(e))return e;const n=ze({contentId:e.id})||ie({variations:e.variations,id:e.id}),r=ae({item:e,testGroupId:n});return{...e,...r}},Ye=async({item:e,canTrack:t})=>{if(!t||!oe(e))return e;const r=await Je({contentId:e.id})||ie({variations:e.variations,id:e.id}),s=ae({item:e,testGroupId:r});return{...e,...s}},K="builder.userAttributes";function Ze(){let e=!0;const t=new Set;return{setUserAttributes(n){if(!c())return;const r={...this.getUserAttributes(),...n};T({name:K,value:JSON.stringify(r),canTrack:e}),t.forEach(s=>s(r))},getUserAttributes(){return c()?JSON.parse(P({name:K,canTrack:e})||"{}"):{}},subscribeOnUserAttributesChange(n){return t.add(n),()=>{t.delete(n)}},setCanTrack(n){e=n}}}const B=Ze(),qe=e=>{B.setUserAttributes(e)},ce=e=>{const t=p(e)?e:!0;return B.setCanTrack(t),t};function et(){return typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:globalThis}function tt(){const e=et().fetch;if(typeof e=="undefined")throw console.warn(`Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project.
2
+ For more information, read https://github.com/BuilderIO/this-package-uses-fetch`),new Error("Builder SDK could not find a global `fetch` function");return e}const nt=tt();function A(e,t=null,n="."){return Object.keys(e).reduce((r,s)=>{const o=e[s],i=[t,s].filter(Boolean).join(n);return[typeof o=="object",o!==null,!(Array.isArray(o)&&o.length===0)].every(Boolean)?{...r,...A(o,i,n)}:{...r,[i]:o}},{})}function ue(e,t,n={}){for(const r in e){const s=e[r],o=t?t+"."+r:r;s&&typeof s=="object"&&!Array.isArray(s)&&!Object.keys(s).find(i=>i.startsWith("$"))?ue(s,o,n):n[o]=s}return n}function rt(e){const t={};for(const n in e){const r=n.split(".");let s=t;for(let o=0;o<r.length;o++){const i=r[o];o===r.length-1?s[i]=e[n]:(s[i]=s[i]||{},s=s[i])}}return t}const st="v3",_=e=>typeof e=="number"&&!isNaN(e)&&e>=0,x=e=>{const{limit:t=30,userAttributes:n,query:r,model:s,apiKey:o,enrich:i,locale:u,apiVersion:S=st,fields:m,omit:I,offset:l,cacheSeconds:g,staleCacheSeconds:h,sort:w,includeUnpublished:R,apiHost:ge}=e;if(!o)throw new Error("Missing API key");if(!["v3"].includes(S))throw new Error(`Invalid apiVersion: expected 'v3', received '${S}'`);const he=t!==1,pe=ge||"https://cdn.builder.io",a=new URL(`${pe}/api/${S}/content/${s}`);a.searchParams.set("apiKey",o),a.searchParams.set("limit",String(t)),a.searchParams.set("noTraverse",String(he)),a.searchParams.set("includeRefs",String(!0));const k=u||(n==null?void 0:n.locale);let b=n||{};if(k&&(a.searchParams.set("locale",k),b={locale:k,...b}),i&&a.searchParams.set("enrich",String(i)),a.searchParams.set("omit",I||"meta.componentsUsed"),m&&a.searchParams.set("fields",m),Number.isFinite(l)&&l>-1&&a.searchParams.set("offset",String(Math.floor(l))),typeof R=="boolean"&&a.searchParams.set("includeUnpublished",String(R)),g&&_(g)&&a.searchParams.set("cacheSeconds",String(g)),h&&_(h)&&a.searchParams.set("staleCacheSeconds",String(h)),w){const f=A({sort:w});for(const v in f)a.searchParams.set(v,JSON.stringify(f[v]))}const L={...Ae(),...j(e.options||{})};b={...b,...it(L)};const N=A(L);for(const f in N)a.searchParams.set(f,String(N[f]));if(Object.keys(b).length>0&&a.searchParams.set("userAttributes",JSON.stringify(b)),r){const f=ue({query:r});for(const v in f)a.searchParams.set(v,JSON.stringify(f[v]))}return a},ot=e=>{const t={};for(const n in e)n.startsWith("userAttributes.")&&(t[n]=e[n],delete e[n]);return t},it=e=>{if(c()&&e.preview==="BUILDER_STUDIO"){e["userAttributes.urlPath"]=window.location.pathname,e["userAttributes.host"]=window.location.host;const t=ot(e),{userAttributes:n}=rt(t);return n}return{}},at=e=>"results"in e;async function le(e){const t=await fe({...e,limit:1});return t&&t[0]||null}const ct=async e=>{var i,u;const t=x(e),n=(i=e.fetch)!=null?i:nt,r={...e.fetchOptions,headers:{...(u=e.fetchOptions)==null?void 0:u.headers,...X()}};return await(await n(t.href,r)).json()},de=async(e,t,n=x(e))=>{const r=ce(e.canTrack);if(n.search.includes("preview="),!r||!(c()||y==="reactNative"))return t.results;try{const s=[];for(const o of t.results)s.push(await Ye({item:o,canTrack:r}));t.results=s}catch(s){d.error("Could not process A/B tests. ",s)}return t.results};async function fe(e){const t=x(e),n=await ct(e);if(!at(n))throw d.error("Error fetching data. ",{url:t,content:n,options:e}),n;return de(e,n)}const ut=async e=>{var r,s,o;const t=e.path||((r=e.url)==null?void 0:r.pathname)||((s=e.userAttributes)==null?void 0:s.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:C(e.searchParams||((o=e.url)==null?void 0:o.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await le(n)}};exports.TARGET=y;exports._processContentResult=de;exports._track=te;exports.checkIsDefined=p;exports.createEditorListener=se;exports.createRegisterComponentMessage=ve;exports.fetchBuilderProps=ut;exports.fetchEntries=fe;exports.fetchOneEntry=le;exports.getBuilderSearchParams=C;exports.getDefaultCanTrack=ce;exports.getUserAttributes=G;exports.handleABTestingSync=Qe;exports.isBrowser=c;exports.isEditing=$;exports.isPreviewing=we;exports.logFetch=ee;exports.logger=d;exports.register=J;exports.registerInsertMenu=We;exports.serializeIncludingFunctions=O;exports.setClientUserAttributes=qe;exports.setEditorSettings=Ie;exports.setupBrowserForEditing=re;exports.subscribeToEditor=$e;exports.track=_e;exports.userAttributesService=B;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-entry-a1c64831.cjs");exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-entry-916191b4.cjs");exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
@@ -1,4 +1,4 @@
1
- import { _processContentResult as r, createRegisterComponentMessage as s, fetchBuilderProps as i, fetchEntries as n, fetchOneEntry as o, getBuilderSearchParams as c, isEditing as g, isPreviewing as a, register as d, setEditorSettings as E, subscribeToEditor as f, track as h } from "./server-entry-df5e89e5.js";
1
+ import { _processContentResult as r, createRegisterComponentMessage as s, fetchBuilderProps as i, fetchEntries as n, fetchOneEntry as o, getBuilderSearchParams as c, isEditing as g, isPreviewing as a, register as d, setEditorSettings as E, subscribeToEditor as f, track as h } from "./server-entry-422fad84.js";
2
2
  export {
3
3
  r as _processContentResult,
4
4
  s as createRegisterComponentMessage,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),j=require("react"),g=require("./blocks-exports.cjs");require("./server-entry-2ef4e66a.cjs");function S(e){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(i,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}return i.default=e,Object.freeze(i)}const v=S(j),y=e=>e.toString();function p(e){var u;const[i,r]=j.useState(()=>[]);function s(){return!!(e.grid||e.oneAtATime)}function O(){return{display:"flex",alignItems:"stretch",flexDirection:"column",...e.grid&&{flexDirection:"row",alignItems:"flex-start",flexWrap:"wrap"}}}function C(){const n={...{display:"flex",flexDirection:"column"},alignItems:"stretch",cursor:"pointer"};return Object.fromEntries(Object.entries(n).filter(([l,a])=>a!==void 0))}function h(t){return`builder-accordion-title builder-accordion-title-${i.includes(t)?"open":"closed"}`}function k(t){return`builder-accordion-detail builder-accordion-detail-${i.includes(t)?"open":"closed"}`}function d(){let t=null;if(e.grid&&i.length&&document){const l=i[0];let o=document.querySelector(`.builder-accordion-title[data-index="${l}"]`);if(t=l,o){let m=o.getBoundingClientRect();for(;o=o&&o.nextElementSibling;)if(o){if(o.classList.contains("builder-accordion-detail"))continue;const f=o.getBoundingClientRect();if(f.left>m.left){const b=parseInt(o.getAttribute("data-index")||"",10);isNaN(b)||(m=f,t=b)}else break}}}return typeof t=="number"&&(t=t+1),t}function I(){const t={order:typeof d()=="number"?d():void 0,...e.grid&&{width:"100%"}};return Object.fromEntries(Object.entries(t).filter(([n,l])=>l!==void 0))}function x(t){i.includes(t)?r(s()?[]:i.filter(n=>n!==t)):r(s()?[t]:i.concat(t))}return c.jsx("div",{className:"builder-accordion",style:O(),children:(u=e.items)==null?void 0:u.map((t,n)=>c.jsxs(v.Fragment,{children:[c.jsx("div",{className:h(n),style:{...C(),...e.grid&&{width:e.gridRowWidth,order:d()!==null?y(n):y(n+1)}},"data-index":n,onClick:l=>x(n),children:c.jsx(g.Blocks,{blocks:t.title,path:`items.${n}.title`,parent:e.builderBlock.id,context:e.builderContext,registeredComponents:e.builderComponents,linkComponent:e.builderLinkComponent})}),i.includes(n)?c.jsx("div",{className:k(n),style:I(),children:c.jsx(g.Blocks,{blocks:t.detail,path:`items.${n}.detail`,parent:e.builderBlock.id,context:e.builderContext,registeredComponents:e.builderComponents,linkComponent:e.builderLinkComponent})}):null]},n))})}exports.default=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),j=require("react"),g=require("./blocks-exports.cjs");require("./server-entry-77166102.cjs");function S(e){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(i,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}return i.default=e,Object.freeze(i)}const v=S(j),y=e=>e.toString();function p(e){var u;const[i,r]=j.useState(()=>[]);function s(){return!!(e.grid||e.oneAtATime)}function O(){return{display:"flex",alignItems:"stretch",flexDirection:"column",...e.grid&&{flexDirection:"row",alignItems:"flex-start",flexWrap:"wrap"}}}function C(){const n={...{display:"flex",flexDirection:"column"},alignItems:"stretch",cursor:"pointer"};return Object.fromEntries(Object.entries(n).filter(([l,a])=>a!==void 0))}function h(t){return`builder-accordion-title builder-accordion-title-${i.includes(t)?"open":"closed"}`}function k(t){return`builder-accordion-detail builder-accordion-detail-${i.includes(t)?"open":"closed"}`}function d(){let t=null;if(e.grid&&i.length&&document){const l=i[0];let o=document.querySelector(`.builder-accordion-title[data-index="${l}"]`);if(t=l,o){let m=o.getBoundingClientRect();for(;o=o&&o.nextElementSibling;)if(o){if(o.classList.contains("builder-accordion-detail"))continue;const f=o.getBoundingClientRect();if(f.left>m.left){const b=parseInt(o.getAttribute("data-index")||"",10);isNaN(b)||(m=f,t=b)}else break}}}return typeof t=="number"&&(t=t+1),t}function I(){const t={order:typeof d()=="number"?d():void 0,...e.grid&&{width:"100%"}};return Object.fromEntries(Object.entries(t).filter(([n,l])=>l!==void 0))}function x(t){i.includes(t)?r(s()?[]:i.filter(n=>n!==t)):r(s()?[t]:i.concat(t))}return c.jsx("div",{className:"builder-accordion",style:O(),children:(u=e.items)==null?void 0:u.map((t,n)=>c.jsxs(v.Fragment,{children:[c.jsx("div",{className:h(n),style:{...C(),...e.grid&&{width:e.gridRowWidth,order:d()!==null?y(n):y(n+1)}},"data-index":n,onClick:l=>x(n),children:c.jsx(g.Blocks,{blocks:t.title,path:`items.${n}.title`,parent:e.builderBlock.id,context:e.builderContext,registeredComponents:e.builderComponents,linkComponent:e.builderLinkComponent})}),i.includes(n)?c.jsx("div",{className:k(n),style:I(),children:c.jsx(g.Blocks,{blocks:t.detail,path:`items.${n}.detail`,parent:e.builderBlock.id,context:e.builderContext,registeredComponents:e.builderComponents,linkComponent:e.builderLinkComponent})}):null]},n))})}exports.default=p;
@@ -2,7 +2,7 @@ import { jsx as l, jsxs as j } from "react/jsx-runtime";
2
2
  import * as p from "react";
3
3
  import { useState as x } from "react";
4
4
  import { Blocks as g } from "./blocks-exports.mjs";
5
- import "./server-entry-61fca4f7.js";
5
+ import "./server-entry-c1673af2.js";
6
6
  const y = (t) => t.toString();
7
7
  function B(t) {
8
8
  var a;