@builder.io/sdk-react 2.0.19 → 2.0.22

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 (68) hide show
  1. package/lib/browser/blocks-exports.cjs +31 -31
  2. package/lib/browser/blocks-exports.mjs +833 -833
  3. package/lib/browser/index.cjs +1 -1
  4. package/lib/browser/index.mjs +1 -1
  5. package/lib/browser/{server-entry-c8020f19.cjs → server-entry-5770bca9.cjs} +2 -2
  6. package/lib/browser/{server-entry-12189812.js → server-entry-b83ba684.js} +1 -2
  7. package/lib/browser/server-entry.cjs +1 -1
  8. package/lib/browser/server-entry.mjs +1 -1
  9. package/lib/edge/{accordion-634b0466.js → accordion-78c3d81b.js} +1 -1
  10. package/lib/edge/{accordion-eaf2e50a.cjs → accordion-80133dd8.cjs} +1 -1
  11. package/lib/edge/blocks-5084bbec.cjs +12 -0
  12. package/lib/edge/{blocks-51761337.js → blocks-852d317b.js} +240 -233
  13. package/lib/edge/blocks-exports.cjs +1 -1
  14. package/lib/edge/blocks-exports.mjs +2 -2
  15. package/lib/edge/{button-6d2144c3.js → button-0a729557.js} +2 -2
  16. package/lib/edge/{button-a0aad19e.cjs → button-a97c0d05.cjs} +1 -1
  17. package/lib/edge/{columns-030a6892.js → columns-1149d23a.js} +6 -6
  18. package/lib/edge/{columns-44d76a14.cjs → columns-2bd50130.cjs} +4 -4
  19. package/lib/edge/{content-variants-46a433c2.js → content-variants-86962b96.js} +306 -308
  20. package/lib/edge/content-variants-cbd84920.cjs +134 -0
  21. package/lib/edge/{evaluate-6febb3ef.js → evaluate-46f56681.js} +671 -659
  22. package/lib/edge/{evaluate-29260bf8.cjs → evaluate-617e3bee.cjs} +11 -13
  23. package/lib/edge/{form-855a28fc.js → form-1811c08f.js} +6 -6
  24. package/lib/edge/form-c42561fb.cjs +1 -0
  25. package/lib/edge/{get-class-prop-name-a6353748.js → get-class-prop-name-6e4205e7.js} +1 -1
  26. package/lib/edge/{get-class-prop-name-6320e936.cjs → get-class-prop-name-dc89023a.cjs} +1 -1
  27. package/lib/edge/{image-eebfcbac.cjs → image-54d2f755.cjs} +3 -3
  28. package/lib/edge/{image-6a074aab.js → image-6970c193.js} +24 -24
  29. package/lib/edge/{img-56b4a196.js → img-0bc990ef.js} +1 -1
  30. package/lib/edge/{img-1f88586f.cjs → img-70b9d719.cjs} +1 -1
  31. package/lib/edge/index.cjs +1 -1
  32. package/lib/edge/index.mjs +1 -1
  33. package/lib/edge/{input-35f6fbdd.cjs → input-21071030.cjs} +1 -1
  34. package/lib/edge/{input-7873f170.js → input-3689c63d.js} +1 -1
  35. package/lib/edge/{select-eb16d7cc.js → select-65ebd3fd.js} +1 -1
  36. package/lib/edge/{select-f03c5ba6.cjs → select-cb7c2f44.cjs} +1 -1
  37. package/lib/edge/{server-entry-dbe27fb2.cjs → server-entry-8ce6f347.cjs} +2 -2
  38. package/lib/edge/{server-entry-77a5a1a0.js → server-entry-9d83b8e5.js} +1 -2
  39. package/lib/edge/server-entry.cjs +1 -1
  40. package/lib/edge/server-entry.mjs +1 -1
  41. package/lib/edge/{slot-93865012.cjs → slot-21cc91d8.cjs} +1 -1
  42. package/lib/edge/{slot-c9a7a451.js → slot-e5f3b92d.js} +4 -4
  43. package/lib/edge/{symbol-b6b36212.cjs → symbol-0cc07e41.cjs} +1 -1
  44. package/lib/edge/{symbol-6657c638.js → symbol-56e5b927.js} +2 -2
  45. package/lib/edge/{tabs-44484f49.js → tabs-0e6f6b5b.js} +4 -4
  46. package/lib/edge/{tabs-020fedaa.cjs → tabs-9390d611.cjs} +1 -1
  47. package/lib/edge/{text-e00e3cdc.js → text-b68c0d5a.js} +2 -2
  48. package/lib/edge/{text-562c8568.cjs → text-baaedac7.cjs} +1 -1
  49. package/lib/node/blocks-exports.cjs +31 -31
  50. package/lib/node/blocks-exports.mjs +817 -844
  51. package/lib/node/index.cjs +1 -1
  52. package/lib/node/index.mjs +2 -2
  53. package/lib/node/init.cjs +1 -1
  54. package/lib/node/init.mjs +2 -2
  55. package/lib/node/{server-entry-82ab17f2.cjs → server-entry-52b8f10a.cjs} +2 -2
  56. package/lib/node/{server-entry-902ea0c4.js → server-entry-5b32494d.js} +1 -2
  57. package/lib/node/server-entry.cjs +1 -1
  58. package/lib/node/server-entry.mjs +1 -1
  59. package/lib/node/{should-force-browser-runtime-in-node-f20178fa.cjs → should-force-browser-runtime-in-node-253f1726.cjs} +4 -4
  60. package/lib/node/{should-force-browser-runtime-in-node-0b0cefdf.js → should-force-browser-runtime-in-node-68bc74aa.js} +56 -29
  61. package/package.json +1 -1
  62. package/types/constants/sdk-version.d.ts +1 -1
  63. package/types/functions/evaluate/browser-runtime/browser.d.ts +0 -6
  64. package/types/functions/evaluate/helpers.d.ts +5 -0
  65. package/types/types/input.d.ts +1 -1
  66. package/lib/edge/blocks-b8c9a72a.cjs +0 -12
  67. package/lib/edge/content-variants-3eef022e.cjs +0 -134
  68. package/lib/edge/form-59059e97.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./blocks-exports.cjs"),e=require("./server-entry-82ab17f2.cjs");require("react/jsx-runtime");require("react");require("./should-force-browser-runtime-in-node-f20178fa.cjs");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.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-52b8f10a.cjs");require("react/jsx-runtime");require("react");require("./should-force-browser-runtime-in-node-253f1726.cjs");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.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
@@ -1,8 +1,8 @@
1
1
  import { Blocks as s, BuilderContext as n, Button as m, Columns as c, Content as g, Fragment as a, Image as p, Section as d, Symbol as l, Text as u, Video as f } from "./blocks-exports.mjs";
2
- import { _processContentResult as C, createRegisterComponentMessage as E, fetchBuilderProps as h, fetchEntries as x, fetchOneEntry as S, getBuilderSearchParams as b, isEditing as P, isPreviewing as k, register as y, setEditorSettings as R, subscribeToEditor as T, track as v } from "./server-entry-902ea0c4.js";
2
+ import { _processContentResult as C, createRegisterComponentMessage as E, fetchBuilderProps as h, fetchEntries as x, fetchOneEntry as S, getBuilderSearchParams as b, isEditing as P, isPreviewing as k, register as y, setEditorSettings as R, subscribeToEditor as T, track as v } from "./server-entry-5b32494d.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
5
- import "./should-force-browser-runtime-in-node-0b0cefdf.js";
5
+ import "./should-force-browser-runtime-in-node-68bc74aa.js";
6
6
  export {
7
7
  s as Blocks,
8
8
  n as BuilderContext,
package/lib/node/init.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./should-force-browser-runtime-in-node-f20178fa.cjs"),t=require("isolated-vm");require("./server-entry-82ab17f2.cjs");const r=i=>{if(e.shouldForceBrowserRuntimeInNode({shouldLogWarning:!0}))return;const{ivmIsolateOptions:o}=i||{};e.setIvm(t,o)};exports.initializeNodeRuntime=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./should-force-browser-runtime-in-node-253f1726.cjs"),t=require("isolated-vm");require("./server-entry-52b8f10a.cjs");const r=i=>{if(e.shouldForceBrowserRuntimeInNode({shouldLogWarning:!0}))return;const{ivmIsolateOptions:o}=i||{};e.setIvm(t,o)};exports.initializeNodeRuntime=r;
package/lib/node/init.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { shouldForceBrowserRuntimeInNode as t, setIvm as r } from "./should-force-browser-runtime-in-node-0b0cefdf.js";
1
+ import { shouldForceBrowserRuntimeInNode as t, setIvm as r } from "./should-force-browser-runtime-in-node-68bc74aa.js";
2
2
  import e from "isolated-vm";
3
- import "./server-entry-902ea0c4.js";
3
+ import "./server-entry-5b32494d.js";
4
4
  const u = (o) => {
5
5
  if (t({
6
6
  shouldLogWarning: !0
@@ -1,2 +1,2 @@
1
- "use strict";const I="react",b="[Builder.io]: ",d={log:(...e)=>console.log(b,...e),error:(...e)=>console.error(b,...e),warn:(...e)=>console.warn(b,...e),debug:(...e)=>console.debug(b,...e)};function c(){return typeof window!="undefined"&&typeof document!="undefined"}const ce=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},M=e=>e instanceof URLSearchParams?ce(e):e,U=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function ue(){return c()&&window.self!==window.top}function F(e){return ue()&&U(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const de=()=>{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},le=()=>typeof navigator=="object"&&navigator.userAgent||"",N=()=>{const e=le(),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()||I==="reactNative"}},n=e.match(/Tablet|iPad/i),r=de();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 fe(e){const t=e||(c()?window.location.search:void 0);return t?U(t).indexOf("builder.preview=")!==-1:!1}const ge=e=>({type:"builder.registerComponent",data:k(e)}),he=e=>{const t=e.toString().trim();return`return (${!t.startsWith("function")&&!t.startsWith("(")?"function ":""}${t}).apply(this, arguments)`};function k(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?he(n):n))}const x={};function D(e,t){e==="plugin"&&(t=k(t));let n=x[e];if(n||(n=x[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(o){console.debug("Could not postmessage",o)}}}const R={};function pe(e){if(c()){Object.assign(R,e);const t={type:"builder.settingsChange",data:R};parent.postMessage(t,"*")}}const B="builder.",me="options.",P=e=>{if(!e)return{};const t=M(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(B)){const o=r.replace(B,"").replace(me,"");n[o]=t[r]}}),n},ye=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return P(e)},Se=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},j=({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}},K=async e=>j(e),we=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),be=[["secure",""],["SameSite","None"]],Ie=({name:e,value:t,expires:n})=>{const o=(c()?location.protocol==="https:":!0)?be:[[]],s=n?[["expires",n.toUTCString()]]:[[]],a=[[e,t],...s,["path","/"],["domain",Se(window.location.hostname)],...o];return we(a)},_=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const o=Ie({name:e,value:t,expires:n});document.cookie=o}catch(o){d.warn("[COOKIE] SET error: ",(o==null?void 0:o.message)||o)}};function ve(){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 W(){return ve().replace(/-/g,"")}const $="builderSessionId",Ee=async({canTrack:e})=>{if(!e)return;const t=await K({name:$,canTrack:e});if(p(t))return t;{const n=ke();return Pe({id:n,canTrack:e}),n}},ke=()=>W(),Pe=({id:e,canTrack:t})=>_({name:$,value:e,canTrack:t}),G=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,Ce=({key:e,canTrack:t})=>{var n;try{return t?(n=G())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Oe=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=G())==null||r.setItem(e,n))}catch(o){console.debug("[LocalStorage] SET error: ",o)}},z="builderVisitorId",Ae=({canTrack:e})=>{if(!e)return;const t=Ce({key:z,canTrack:e});if(p(t))return t;{const n=Te();return xe({id:n,canTrack:e}),n}},Te=()=>W(),xe=({id:e,canTrack:t})=>Oe({key:z,value:e,canTrack:t}),Re=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await Ee({canTrack:e}),n=Ae({canTrack:e});return{sessionId:t,visitorId:n}},Be=async({type:e,canTrack:t,apiKey:n,metadata:r,...o})=>({type:e,data:{...o,metadata:{url:location.href,...r},...await Re({canTrack:t}),userAttributes:N(),ownerId:n}});async function J(e){if(!e.apiKey){d.error("Missing API key for track call. Please provide your API key.");return}if(e.canTrack&&!F()&&(c()||I==="reactNative"))return fetch("https://cdn.builder.io/api/v1/track",{method:"POST",body:JSON.stringify({events:[await Be(e)]}),headers:{"content-type":"application/json"},mode:"cors"}).catch(t=>{console.error("Failed to track: ",t)})}const Le=e=>J({...e,canTrack:!0}),Ve=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function H(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||Ve).findIndex(o=>o.startsWith("*.")?r.endsWith(o.slice(1)):o===r)>-1}const Me="2.0.19",Ue=()=>{D("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 L=!1;const X=(e={})=>{var t,n;L||(L=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:I,version:Me,supportsPatchUpdates:!1,supportsAddBlockScoping:!0,supportsCustomBreakpoints:!0}},"*"),(n=window.parent)==null||n.postMessage({type:"builder.updateContent",data:{options:e}},"*"),window.addEventListener("message",r=>{var s,a;if(!H(e.trustedHosts,r))return;const{data:o}=r;if(o!=null&&o.type)switch(o.type){case"builder.evaluate":{const l=o.data.text,y=o.data.arguments||[],m=o.data.id,v=new Function(l);let u,g=null;try{u=v.apply(null,y)}catch(h){g=h}g?(s=window.parent)==null||s.postMessage({type:"builder.evaluateError",data:{id:m,error:g.message}},"*"):u&&typeof u.then=="function"?u.then(h=>{var S;(S=window.parent)==null||S.postMessage({type:"builder.evaluateResult",data:{id:m,result:h}},"*")}).catch(console.error):(a=window.parent)==null||a.postMessage({type:"builder.evaluateResult",data:{result:u,id:m}},"*");break}}})))},q=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!H(t,r))return;const{data:o}=r;if(o)switch(o.type){case"builder.configureSdk":{n.configureSdk(o.data);break}case"builder.triggerAnimation":{n.animation(o.data);break}case"builder.contentUpdate":{const s=o.data,a=s.key||s.alias||s.entry||s.modelName,l=s.data;a===e&&n.contentUpdate(l);break}}},Fe=(e,t,n)=>{if(!c)return d.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};X();const r=q({callbacks:{contentUpdate:t,animation:()=>{},configureSdk:()=>{}},model:e,trustedHosts:n==null?void 0:n.trustedHosts});return window.addEventListener("message",r),()=>{window.removeEventListener("message",r)}},Ne="builder.tests",C=e=>`${Ne}.${e}`,De=({contentId:e})=>K({name:C(e),canTrack:!0}),je=({contentId:e})=>j({name:C(e),canTrack:!0}),Ke=({contentId:e,value:t})=>_({name:C(e),value:t,canTrack:!0}),Q=e=>p(e.id)&&p(e.variations)&&Object.keys(e.variations).length>0,_e=({id:e,variations:t})=>{var o;let n=0;const r=Math.random();for(const s in t){const a=(o=t[s])==null?void 0:o.testRatio;if(n+=a,r<n)return s}return e},Y=e=>{const t=_e(e);return Ke({contentId:e.id,value:t}).catch(n=>{d.error("could not store A/B test variation: ",n)}),t},Z=({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":"")}},We=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!Q(e))return e;const n=je({contentId:e.id})||Y({variations:e.variations,id:e.id}),r=Z({item:e,testGroupId:n});return{...e,...r}},$e=async({item:e,canTrack:t})=>{if(!t||!Q(e))return e;const r=await De({contentId:e.id})||Y({variations:e.variations,id:e.id}),o=Z({item:e,testGroupId:r});return{...e,...o}},ee=e=>p(e)?e:!0;function Ge(){return typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:globalThis}function ze(){const e=Ge().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 te=ze();function E(e,t=null,n="."){return Object.keys(e).reduce((r,o)=>{const s=e[o],a=[t,o].filter(Boolean).join(n);return[typeof s=="object",s!==null,!(Array.isArray(s)&&s.length===0)].every(Boolean)?{...r,...E(s,a,n)}:{...r,[a]:s}},{})}function ne(e,t,n={}){for(const r in e){const o=e[r],s=t?t+"."+r:r;o&&typeof o=="object"&&!Array.isArray(o)&&!Object.keys(o).find(a=>a.startsWith("$"))?ne(o,s,n):n[s]=o}return n}const Je="v3",V=e=>typeof e=="number"&&!isNaN(e)&&e>=0,O=e=>{const{limit:t=30,userAttributes:n,query:r,model:o,apiKey:s,enrich:a,locale:l,apiVersion:y=Je,fields:m,omit:v,offset:u,cacheSeconds:g,staleCacheSeconds:h,sort:S,includeUnpublished:A}=e;if(!s)throw new Error("Missing API key");if(!["v3"].includes(y))throw new Error(`Invalid apiVersion: expected 'v3', received '${y}'`);const ie=t!==1,i=new URL(`https://cdn.builder.io/api/${y}/content/${o}`);if(i.searchParams.set("apiKey",s),i.searchParams.set("limit",String(t)),i.searchParams.set("noTraverse",String(ie)),i.searchParams.set("includeRefs",String(!0)),l&&i.searchParams.set("locale",l),a&&i.searchParams.set("enrich",String(a)),i.searchParams.set("omit",v||"meta.componentsUsed"),m&&i.searchParams.set("fields",m),Number.isFinite(u)&&u>-1&&i.searchParams.set("offset",String(Math.floor(u))),typeof A=="boolean"&&i.searchParams.set("includeUnpublished",String(A)),g&&V(g)&&i.searchParams.set("cacheSeconds",String(g)),h&&V(h)&&i.searchParams.set("staleCacheSeconds",String(h)),S){const f=E({sort:S});for(const w in f)i.searchParams.set(w,JSON.stringify(f[w]))}const ae={...ye(),...M(e.options||{})},T=E(ae);for(const f in T)i.searchParams.set(f,String(T[f]));if(n&&i.searchParams.set("userAttributes",JSON.stringify(n)),r){const f=ne({query:r});for(const w in f)i.searchParams.set(w,JSON.stringify(f[w]))}return i},He=e=>"results"in e;async function re(e){const t=await se({...e,limit:1});return t&&t[0]||null}const Xe=async e=>{var s;const t=O(e);return await(await((s=e.fetch)!=null?s:te)(t.href,e.fetchOptions)).json()},oe=async(e,t,n=O(e))=>{const r=ee(e.canTrack);if(n.search.includes("preview="),!r||!(c()||I==="reactNative"))return t.results;try{const o=[];for(const s of t.results)o.push(await $e({item:s,canTrack:r}));t.results=o}catch(o){d.error("Could not process A/B tests. ",o)}return t.results};async function se(e){try{const t=O(e),n=await Xe(e);return He(n)?oe(e,n):(d.error("Error fetching data. ",{url:t,content:n,options:e}),null)}catch(t){return d.error("Error fetching data. ",t),null}}const qe=async e=>{var r,o,s;const t=e.path||((r=e.url)==null?void 0:r.pathname)||((o=e.userAttributes)==null?void 0:o.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:P(e.searchParams||((s=e.url)==null?void 0:s.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await re(n)}};exports.MSG_PREFIX=b;exports.TARGET=I;exports._processContentResult=oe;exports._track=J;exports.checkIsDefined=p;exports.createEditorListener=q;exports.createRegisterComponentMessage=ge;exports.fetch=te;exports.fetchBuilderProps=qe;exports.fetchEntries=se;exports.fetchOneEntry=re;exports.getBuilderSearchParams=P;exports.getDefaultCanTrack=ee;exports.getUserAttributes=N;exports.handleABTestingSync=We;exports.isBrowser=c;exports.isEditing=F;exports.isPreviewing=fe;exports.logger=d;exports.register=D;exports.registerInsertMenu=Ue;exports.serializeIncludingFunctions=k;exports.setEditorSettings=pe;exports.setupBrowserForEditing=X;exports.subscribeToEditor=Fe;exports.track=Le;
1
+ "use strict";const I="react",b="[Builder.io]: ",d={log:(...e)=>console.log(b,...e),error:(...e)=>console.error(b,...e),warn:(...e)=>console.warn(b,...e),debug:(...e)=>console.debug(b,...e)};function c(){return typeof window!="undefined"&&typeof document!="undefined"}const ae=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},M=e=>e instanceof URLSearchParams?ae(e):e,U=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function ce(){return c()&&window.self!==window.top}function F(e){return ce()&&U(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const ue=()=>{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},de=()=>typeof navigator=="object"&&navigator.userAgent||"",N=()=>{const e=de(),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()||I==="reactNative"}},n=e.match(/Tablet|iPad/i),r=ue();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 le(e){const t=e||(c()?window.location.search:void 0);return t?U(t).indexOf("builder.preview=")!==-1:!1}const fe=e=>({type:"builder.registerComponent",data:k(e)}),ge=e=>{const t=e.toString().trim();return`return (${!t.startsWith("function")&&!t.startsWith("(")?"function ":""}${t}).apply(this, arguments)`};function k(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?ge(n):n))}const x={};function D(e,t){e==="plugin"&&(t=k(t));let n=x[e];if(n||(n=x[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(o){console.debug("Could not postmessage",o)}}}const R={};function he(e){if(c()){Object.assign(R,e);const t={type:"builder.settingsChange",data:R};parent.postMessage(t,"*")}}const B="builder.",pe="options.",P=e=>{if(!e)return{};const t=M(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(B)){const o=r.replace(B,"").replace(pe,"");n[o]=t[r]}}),n},me=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return P(e)},ye=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},j=({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}},K=async e=>j(e),Se=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),we=[["secure",""],["SameSite","None"]],be=({name:e,value:t,expires:n})=>{const o=(c()?location.protocol==="https:":!0)?we:[[]],s=n?[["expires",n.toUTCString()]]:[[]],a=[[e,t],...s,["path","/"],["domain",ye(window.location.hostname)],...o];return Se(a)},_=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const o=be({name:e,value:t,expires:n});document.cookie=o}catch(o){d.warn("[COOKIE] SET error: ",(o==null?void 0:o.message)||o)}};function Ie(){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 W(){return Ie().replace(/-/g,"")}const $="builderSessionId",ve=async({canTrack:e})=>{if(!e)return;const t=await K({name:$,canTrack:e});if(p(t))return t;{const n=Ee();return ke({id:n,canTrack:e}),n}},Ee=()=>W(),ke=({id:e,canTrack:t})=>_({name:$,value:e,canTrack:t}),G=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,Pe=({key:e,canTrack:t})=>{var n;try{return t?(n=G())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Ce=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=G())==null||r.setItem(e,n))}catch(o){console.debug("[LocalStorage] SET error: ",o)}},z="builderVisitorId",Oe=({canTrack:e})=>{if(!e)return;const t=Pe({key:z,canTrack:e});if(p(t))return t;{const n=Ae();return Te({id:n,canTrack:e}),n}},Ae=()=>W(),Te=({id:e,canTrack:t})=>Ce({key:z,value:e,canTrack:t}),xe=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await ve({canTrack:e}),n=Oe({canTrack:e});return{sessionId:t,visitorId:n}},Re=async({type:e,canTrack:t,apiKey:n,metadata:r,...o})=>({type:e,data:{...o,metadata:{url:location.href,...r},...await xe({canTrack:t}),userAttributes:N(),ownerId:n}});async function J(e){if(!e.apiKey){d.error("Missing API key for track call. Please provide your API key.");return}if(e.canTrack&&!F()&&(c()||I==="reactNative"))return fetch("https://cdn.builder.io/api/v1/track",{method:"POST",body:JSON.stringify({events:[await Re(e)]}),headers:{"content-type":"application/json"},mode:"cors"}).catch(t=>{console.error("Failed to track: ",t)})}const Be=e=>J({...e,canTrack:!0}),Le=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function H(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||Le).findIndex(o=>o.startsWith("*.")?r.endsWith(o.slice(1)):o===r)>-1}const Ve="2.0.22",Me=()=>{D("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 L=!1;const X=(e={})=>{var t,n;L||(L=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:I,version:Ve,supportsPatchUpdates:!1,supportsAddBlockScoping:!0,supportsCustomBreakpoints:!0}},"*"),(n=window.parent)==null||n.postMessage({type:"builder.updateContent",data:{options:e}},"*"),window.addEventListener("message",r=>{var s,a;if(!H(e.trustedHosts,r))return;const{data:o}=r;if(o!=null&&o.type)switch(o.type){case"builder.evaluate":{const l=o.data.text,y=o.data.arguments||[],m=o.data.id,v=new Function(l);let u,g=null;try{u=v.apply(null,y)}catch(h){g=h}g?(s=window.parent)==null||s.postMessage({type:"builder.evaluateError",data:{id:m,error:g.message}},"*"):u&&typeof u.then=="function"?u.then(h=>{var S;(S=window.parent)==null||S.postMessage({type:"builder.evaluateResult",data:{id:m,result:h}},"*")}).catch(console.error):(a=window.parent)==null||a.postMessage({type:"builder.evaluateResult",data:{result:u,id:m}},"*");break}}})))},q=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!H(t,r))return;const{data:o}=r;if(o)switch(o.type){case"builder.configureSdk":{n.configureSdk(o.data);break}case"builder.triggerAnimation":{n.animation(o.data);break}case"builder.contentUpdate":{const s=o.data,a=s.key||s.alias||s.entry||s.modelName,l=s.data;a===e&&n.contentUpdate(l);break}}},Ue=(e,t,n)=>{if(!c)return d.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};X();const r=q({callbacks:{contentUpdate:t,animation:()=>{},configureSdk:()=>{}},model:e,trustedHosts:n==null?void 0:n.trustedHosts});return window.addEventListener("message",r),()=>{window.removeEventListener("message",r)}},Fe="builder.tests",C=e=>`${Fe}.${e}`,Ne=({contentId:e})=>K({name:C(e),canTrack:!0}),De=({contentId:e})=>j({name:C(e),canTrack:!0}),je=({contentId:e,value:t})=>_({name:C(e),value:t,canTrack:!0}),Q=e=>p(e.id)&&p(e.variations)&&Object.keys(e.variations).length>0,Ke=({id:e,variations:t})=>{var o;let n=0;const r=Math.random();for(const s in t){const a=(o=t[s])==null?void 0:o.testRatio;if(n+=a,r<n)return s}return e},Y=e=>{const t=Ke(e);return je({contentId:e.id,value:t}).catch(n=>{d.error("could not store A/B test variation: ",n)}),t},Z=({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":"")}},_e=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!Q(e))return e;const n=De({contentId:e.id})||Y({variations:e.variations,id:e.id}),r=Z({item:e,testGroupId:n});return{...e,...r}},We=async({item:e,canTrack:t})=>{if(!t||!Q(e))return e;const r=await Ne({contentId:e.id})||Y({variations:e.variations,id:e.id}),o=Z({item:e,testGroupId:r});return{...e,...o}},ee=e=>p(e)?e:!0;function $e(){return typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:globalThis}function Ge(){const e=$e().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 ze=Ge();function E(e,t=null,n="."){return Object.keys(e).reduce((r,o)=>{const s=e[o],a=[t,o].filter(Boolean).join(n);return[typeof s=="object",s!==null,!(Array.isArray(s)&&s.length===0)].every(Boolean)?{...r,...E(s,a,n)}:{...r,[a]:s}},{})}function te(e,t,n={}){for(const r in e){const o=e[r],s=t?t+"."+r:r;o&&typeof o=="object"&&!Array.isArray(o)&&!Object.keys(o).find(a=>a.startsWith("$"))?te(o,s,n):n[s]=o}return n}const Je="v3",V=e=>typeof e=="number"&&!isNaN(e)&&e>=0,O=e=>{const{limit:t=30,userAttributes:n,query:r,model:o,apiKey:s,enrich:a,locale:l,apiVersion:y=Je,fields:m,omit:v,offset:u,cacheSeconds:g,staleCacheSeconds:h,sort:S,includeUnpublished:A}=e;if(!s)throw new Error("Missing API key");if(!["v3"].includes(y))throw new Error(`Invalid apiVersion: expected 'v3', received '${y}'`);const se=t!==1,i=new URL(`https://cdn.builder.io/api/${y}/content/${o}`);if(i.searchParams.set("apiKey",s),i.searchParams.set("limit",String(t)),i.searchParams.set("noTraverse",String(se)),i.searchParams.set("includeRefs",String(!0)),l&&i.searchParams.set("locale",l),a&&i.searchParams.set("enrich",String(a)),i.searchParams.set("omit",v||"meta.componentsUsed"),m&&i.searchParams.set("fields",m),Number.isFinite(u)&&u>-1&&i.searchParams.set("offset",String(Math.floor(u))),typeof A=="boolean"&&i.searchParams.set("includeUnpublished",String(A)),g&&V(g)&&i.searchParams.set("cacheSeconds",String(g)),h&&V(h)&&i.searchParams.set("staleCacheSeconds",String(h)),S){const f=E({sort:S});for(const w in f)i.searchParams.set(w,JSON.stringify(f[w]))}const ie={...me(),...M(e.options||{})},T=E(ie);for(const f in T)i.searchParams.set(f,String(T[f]));if(n&&i.searchParams.set("userAttributes",JSON.stringify(n)),r){const f=te({query:r});for(const w in f)i.searchParams.set(w,JSON.stringify(f[w]))}return i},He=e=>"results"in e;async function ne(e){const t=await oe({...e,limit:1});return t&&t[0]||null}const Xe=async e=>{var s;const t=O(e);return await(await((s=e.fetch)!=null?s:ze)(t.href,e.fetchOptions)).json()},re=async(e,t,n=O(e))=>{const r=ee(e.canTrack);if(n.search.includes("preview="),!r||!(c()||I==="reactNative"))return t.results;try{const o=[];for(const s of t.results)o.push(await We({item:s,canTrack:r}));t.results=o}catch(o){d.error("Could not process A/B tests. ",o)}return t.results};async function oe(e){try{const t=O(e),n=await Xe(e);return He(n)?re(e,n):(d.error("Error fetching data. ",{url:t,content:n,options:e}),null)}catch(t){return d.error("Error fetching data. ",t),null}}const qe=async e=>{var r,o,s;const t=e.path||((r=e.url)==null?void 0:r.pathname)||((o=e.userAttributes)==null?void 0:o.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:P(e.searchParams||((s=e.url)==null?void 0:s.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await ne(n)}};exports.MSG_PREFIX=b;exports.TARGET=I;exports._processContentResult=re;exports._track=J;exports.checkIsDefined=p;exports.createEditorListener=q;exports.createRegisterComponentMessage=fe;exports.fetchBuilderProps=qe;exports.fetchEntries=oe;exports.fetchOneEntry=ne;exports.getBuilderSearchParams=P;exports.getDefaultCanTrack=ee;exports.getUserAttributes=N;exports.handleABTestingSync=_e;exports.isBrowser=c;exports.isEditing=F;exports.isPreviewing=le;exports.logger=d;exports.register=D;exports.registerInsertMenu=Me;exports.serializeIncludingFunctions=k;exports.setEditorSettings=he;exports.setupBrowserForEditing=X;exports.subscribeToEditor=Ue;exports.track=Be;
@@ -302,7 +302,7 @@ function $(t, e) {
302
302
  const n = new URL(e.origin), r = n.hostname;
303
303
  return (t || kt).findIndex((o) => o.startsWith("*.") ? r.endsWith(o.slice(1)) : o === r) > -1;
304
304
  }
305
- const Et = "2.0.19", zt = () => {
305
+ const Et = "2.0.22", zt = () => {
306
306
  ot("insertMenu", {
307
307
  name: "_default",
308
308
  default: !0,
@@ -670,7 +670,6 @@ export {
670
670
  m as checkIsDefined,
671
671
  Ot as createEditorListener,
672
672
  $t as createRegisterComponentMessage,
673
- Mt as fetch,
674
673
  qt as fetchBuilderProps,
675
674
  Wt as fetchEntries,
676
675
  jt as fetchOneEntry,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-entry-82ab17f2.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-52b8f10a.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-902ea0c4.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-5b32494d.js";
2
2
  export {
3
3
  r as _processContentResult,
4
4
  s as createRegisterComponentMessage,
@@ -1,4 +1,4 @@
1
- "use strict";const serverEntry=require("./server-entry-82ab17f2.cjs"),getFunctionArguments=({builder:e,context:t,event:n,state:r})=>Object.entries({state:r,Builder:e,builder:e,context:t,event:n}),getBuilderGlobals=()=>({isEditing:serverEntry.isEditing(),isBrowser:serverEntry.isBrowser(),isServer:!serverEntry.isBrowser(),getUserAttributes:()=>serverEntry.getUserAttributes()}),parseCode=(e,{isExpression:t=!0})=>t&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e,SDK_NAME_FOR_TARGET=(()=>{switch(serverEntry.TARGET){case"rsc":return"react-nextjs";case"reactNative":return"react-native";default:return serverEntry.TARGET}})(),SDK_NAME=`@builder.io/sdk-${SDK_NAME_FOR_TARGET}`,fastClone=e=>JSON.parse(JSON.stringify(e)),set=(e,t,n)=>{if(Object(e)!==e)return e;const r=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);return r.slice(0,-1).reduce((o,s,i)=>Object(o[s])===o[s]?o[s]:o[s]=Math.abs(Number(r[i+1]))>>0===+r[i+1]?[]:{},e)[r[r.length-1]]=n,e},noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(e){}const getSyncValName=e=>`bldr_${e}_sync`,BUILDER_SET_STATE_NAME="BUILDER_SET_STATE",INJECTED_IVM_GLOBAL="BUILDER_IVM",REF_TO_PROXY_FN=`
1
+ "use strict";const serverEntry=require("./server-entry-52b8f10a.cjs"),getFunctionArguments=({builder:e,context:t,event:o,state:n})=>Object.entries({state:n,Builder:e,builder:e,context:t,event:o}),getBuilderGlobals=()=>({isEditing:serverEntry.isEditing(),isBrowser:serverEntry.isBrowser(),isServer:!serverEntry.isBrowser(),getUserAttributes:()=>serverEntry.getUserAttributes()}),parseCode=(e,{isExpression:t=!0})=>t&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e;function flattenState({rootState:e,localState:t,rootSetState:o}){return new Proxy(e,{get:(n,r)=>{if(t&&r in t)return t[r];const s=n[r];return typeof s=="object"&&s!==null?flattenState({rootState:s,localState:void 0,rootSetState:o?i=>{n[r]=i,o(n)}:void 0}):s},set:(n,r,s)=>{if(t&&r in t)throw new Error("Writing to local state is not allowed as it is read-only.");return n[r]=s,o==null||o(n),!0}})}const SDK_NAME_FOR_TARGET=(()=>{switch(serverEntry.TARGET){case"rsc":return"react-nextjs";case"reactNative":return"react-native";default:return serverEntry.TARGET}})(),SDK_NAME=`@builder.io/sdk-${SDK_NAME_FOR_TARGET}`,fastClone=e=>JSON.parse(JSON.stringify(e)),set=(e,t,o)=>{if(Object(e)!==e)return e;const n=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);return n.slice(0,-1).reduce((r,s,i)=>Object(r[s])===r[s]?r[s]:r[s]=Math.abs(Number(n[i+1]))>>0===+n[i+1]?[]:{},e)[n[n.length-1]]=o,e},noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(e){}const getSyncValName=e=>`bldr_${e}_sync`,BUILDER_SET_STATE_NAME="BUILDER_SET_STATE",INJECTED_IVM_GLOBAL="BUILDER_IVM",REF_TO_PROXY_FN=`
2
2
  var refToProxy = (obj) => {
3
3
  if (typeof obj !== 'object' || obj === null) {
4
4
  return obj;
@@ -24,9 +24,9 @@ var refToProxy = (obj) => {
24
24
  }
25
25
  })
26
26
  }
27
- `,processCode=({code:e,args:t})=>{const n=t.map(([r])=>`var ${r} = refToProxy(${getSyncValName(r)}); `).join("");return`
27
+ `,processCode=({code:e,args:t})=>{const o=t.map(([n])=>`var ${n} = refToProxy(${getSyncValName(n)}); `).join("");return`
28
28
  ${REF_TO_PROXY_FN}
29
- ${n}
29
+ ${o}
30
30
  function theFunction() {
31
31
  ${e}
32
32
  }
@@ -45,4 +45,4 @@ if (typeof output === 'object' && output !== null) {
45
45
  ${SHOULD_MENTION_INITIALIZE_SCRIPT?`- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".`:""}
46
46
  - add the following import: \`await import('isolated-vm')\`.
47
47
 
48
- For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;throw new Error(e)};function setIsolateContext(e={memoryLimit:128}){const t=getIvm(),r=new t.Isolate(e).createContextSync(),o=r.global;return o.setSync("global",o.derefInto()),o.setSync("log",function(...s){console.log(...s)}),o.setSync(INJECTED_IVM_GLOBAL,t),IVM_CONTEXT=r,r}const getIsolateContext=()=>IVM_CONTEXT||setIsolateContext(),runInNode=({code:e,builder:t,context:n,event:r,localState:o,rootSetState:s,rootState:i})=>{const y=getIvm(),p=fastClone({...i,...o}),l=getFunctionArguments({builder:t,context:n,event:r,state:p}),a=getIsolateContext(),d=a.global;d.setSync(BUILDER_SET_STATE_NAME,function(c,u){set(i,c,u),s==null||s(i)}),l.forEach(([c,u])=>{const N=typeof u=="object"?new y.Reference(c==="builder"?{...u,getUserAttributes:()=>u.getUserAttributes()}:u):null;d.setSync(getSyncValName(c),N)});const I=processCode({code:e,args:l}),E=a.evalClosureSync(I);try{return JSON.parse(E)}catch{return E}};function isNodeRuntime(){var e;return typeof process!="undefined"&&serverEntry.checkIsDefined((e=process==null?void 0:process.versions)==null?void 0:e.node)}const shouldForceBrowserRuntimeInNode=({shouldLogWarning:e})=>{var o;if(!isNodeRuntime())return!1;const t=process.arch==="arm64",n=process.version.startsWith("v20"),r=(o=process.env.NODE_OPTIONS)==null?void 0:o.includes("--no-node-snapshot");return t&&n&&!r?(e&&serverEntry.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};exports.fastClone=fastClone;exports.getBuilderGlobals=getBuilderGlobals;exports.getFunctionArguments=getFunctionArguments;exports.parseCode=parseCode;exports.runInNode=runInNode;exports.set=set;exports.setIvm=setIvm;exports.shouldForceBrowserRuntimeInNode=shouldForceBrowserRuntimeInNode;
48
+ For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;throw new Error(e)};function setIsolateContext(e={memoryLimit:128}){const t=getIvm(),n=new t.Isolate(e).createContextSync(),r=n.global;return r.setSync("global",r.derefInto()),r.setSync("log",function(...s){console.log(...s)}),r.setSync(INJECTED_IVM_GLOBAL,t),IVM_CONTEXT=n,n}const getIsolateContext=()=>IVM_CONTEXT||setIsolateContext(),runInNode=({code:e,builder:t,context:o,event:n,localState:r,rootSetState:s,rootState:i})=>{const y=getIvm(),f=fastClone({...i,...r}),l=getFunctionArguments({builder:t,context:o,event:n,state:f}),a=getIsolateContext(),d=a.global;d.setSync(BUILDER_SET_STATE_NAME,function(c,u){set(i,c,u),s==null||s(i)}),l.forEach(([c,u])=>{const N=typeof u=="object"?new y.Reference(c==="builder"?{...u,getUserAttributes:()=>u.getUserAttributes()}:u):null;d.setSync(getSyncValName(c),N)});const I=processCode({code:e,args:l}),E=a.evalClosureSync(I);try{return JSON.parse(E)}catch{return E}};function isNodeRuntime(){var e;return typeof process!="undefined"&&serverEntry.checkIsDefined((e=process==null?void 0:process.versions)==null?void 0:e.node)}const shouldForceBrowserRuntimeInNode=({shouldLogWarning:e})=>{var r;if(!isNodeRuntime())return!1;const t=process.arch==="arm64",o=process.version.startsWith("v20"),n=(r=process.env.NODE_OPTIONS)==null?void 0:r.includes("--no-node-snapshot");return t&&o&&!n?(e&&serverEntry.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};exports.fastClone=fastClone;exports.flattenState=flattenState;exports.getBuilderGlobals=getBuilderGlobals;exports.getFunctionArguments=getFunctionArguments;exports.parseCode=parseCode;exports.runInNode=runInNode;exports.set=set;exports.setIvm=setIvm;exports.shouldForceBrowserRuntimeInNode=shouldForceBrowserRuntimeInNode;
@@ -1,11 +1,11 @@
1
- import { isEditing, isBrowser, getUserAttributes, TARGET, logger, MSG_PREFIX, checkIsDefined } from "./server-entry-902ea0c4.js";
1
+ import { isEditing, isBrowser, getUserAttributes, TARGET, logger, MSG_PREFIX, checkIsDefined } from "./server-entry-5b32494d.js";
2
2
  const getFunctionArguments = ({
3
3
  builder: e,
4
4
  context: t,
5
5
  event: r,
6
- state: o
6
+ state: n
7
7
  }) => Object.entries({
8
- state: o,
8
+ state: n,
9
9
  Builder: e,
10
10
  // legacy
11
11
  builder: e,
@@ -18,7 +18,33 @@ const getFunctionArguments = ({
18
18
  getUserAttributes: () => getUserAttributes()
19
19
  }), parseCode = (e, {
20
20
  isExpression: t = !0
21
- }) => /* we disable this for cases where we definitely don't want a return */ t && !(e.includes(";") || e.includes(" return ") || e.trim().startsWith("return ")) ? `return (${e});` : e, SDK_NAME_FOR_TARGET = (() => {
21
+ }) => /* we disable this for cases where we definitely don't want a return */ t && !(e.includes(";") || e.includes(" return ") || e.trim().startsWith("return ")) ? `return (${e});` : e;
22
+ function flattenState({
23
+ rootState: e,
24
+ localState: t,
25
+ rootSetState: r
26
+ }) {
27
+ return new Proxy(e, {
28
+ get: (n, o) => {
29
+ if (t && o in t)
30
+ return t[o];
31
+ const s = n[o];
32
+ return typeof s == "object" && s !== null ? flattenState({
33
+ rootState: s,
34
+ localState: void 0,
35
+ rootSetState: r ? (i) => {
36
+ n[o] = i, r(n);
37
+ } : void 0
38
+ }) : s;
39
+ },
40
+ set: (n, o, s) => {
41
+ if (t && o in t)
42
+ throw new Error("Writing to local state is not allowed as it is read-only.");
43
+ return n[o] = s, r == null || r(n), !0;
44
+ }
45
+ });
46
+ }
47
+ const SDK_NAME_FOR_TARGET = (() => {
22
48
  switch (TARGET) {
23
49
  case "rsc":
24
50
  return "react-nextjs";
@@ -30,8 +56,8 @@ const getFunctionArguments = ({
30
56
  })(), SDK_NAME = `@builder.io/sdk-${SDK_NAME_FOR_TARGET}`, fastClone = (e) => JSON.parse(JSON.stringify(e)), set = (e, t, r) => {
31
57
  if (Object(e) !== e)
32
58
  return e;
33
- const o = Array.isArray(t) ? t : t.toString().match(/[^.[\]]+/g);
34
- return o.slice(0, -1).reduce((n, s, i) => Object(n[s]) === n[s] ? n[s] : n[s] = Math.abs(Number(o[i + 1])) >> 0 === +o[i + 1] ? [] : {}, e)[o[o.length - 1]] = r, e;
59
+ const n = Array.isArray(t) ? t : t.toString().match(/[^.[\]]+/g);
60
+ return n.slice(0, -1).reduce((o, s, i) => Object(o[s]) === o[s] ? o[s] : o[s] = Math.abs(Number(n[i + 1])) >> 0 === +n[i + 1] ? [] : {}, e)[n[n.length - 1]] = r, e;
35
61
  }, noop = () => {
36
62
  };
37
63
  let safeDynamicRequire = noop;
@@ -69,7 +95,7 @@ var refToProxy = (obj) => {
69
95
  code: e,
70
96
  args: t
71
97
  }) => {
72
- const r = t.map(([o]) => `var ${o} = refToProxy(${getSyncValName(o)}); `).join("");
98
+ const r = t.map(([n]) => `var ${n} = refToProxy(${getSyncValName(n)}); `).join("");
73
99
  return `
74
100
  ${REF_TO_PROXY_FN}
75
101
  ${r}
@@ -112,49 +138,49 @@ const setIvm = (e, t = {}) => {
112
138
  function setIsolateContext(e = {
113
139
  memoryLimit: 128
114
140
  }) {
115
- const t = getIvm(), o = new t.Isolate(e).createContextSync(), n = o.global;
116
- return n.setSync("global", n.derefInto()), n.setSync("log", function(...s) {
141
+ const t = getIvm(), n = new t.Isolate(e).createContextSync(), o = n.global;
142
+ return o.setSync("global", o.derefInto()), o.setSync("log", function(...s) {
117
143
  console.log(...s);
118
- }), n.setSync(INJECTED_IVM_GLOBAL, t), IVM_CONTEXT = o, o;
144
+ }), o.setSync(INJECTED_IVM_GLOBAL, t), IVM_CONTEXT = n, n;
119
145
  }
120
146
  const getIsolateContext = () => IVM_CONTEXT || setIsolateContext(), runInNode = ({
121
147
  code: e,
122
148
  builder: t,
123
149
  context: r,
124
- event: o,
125
- localState: n,
150
+ event: n,
151
+ localState: o,
126
152
  rootSetState: s,
127
153
  rootState: i
128
154
  }) => {
129
- const I = getIvm(), N = fastClone({
155
+ const E = getIvm(), I = fastClone({
130
156
  ...i,
131
- ...n
132
- }), a = getFunctionArguments({
157
+ ...o
158
+ }), l = getFunctionArguments({
133
159
  builder: t,
134
160
  context: r,
135
- event: o,
136
- state: N
137
- }), l = getIsolateContext(), d = l.global;
161
+ event: n,
162
+ state: I
163
+ }), a = getIsolateContext(), d = a.global;
138
164
  d.setSync(BUILDER_SET_STATE_NAME, function(c, u) {
139
165
  set(i, c, u), s == null || s(i);
140
- }), a.forEach(([c, u]) => {
141
- const f = typeof u == "object" ? new I.Reference(
166
+ }), l.forEach(([c, u]) => {
167
+ const y = typeof u == "object" ? new E.Reference(
142
168
  // workaround: methods with default values for arguments is not being cloned over
143
169
  c === "builder" ? {
144
170
  ...u,
145
171
  getUserAttributes: () => u.getUserAttributes()
146
172
  } : u
147
173
  ) : null;
148
- d.setSync(getSyncValName(c), f);
174
+ d.setSync(getSyncValName(c), y);
149
175
  });
150
- const p = processCode({
176
+ const N = processCode({
151
177
  code: e,
152
- args: a
153
- }), E = l.evalClosureSync(p);
178
+ args: l
179
+ }), f = a.evalClosureSync(N);
154
180
  try {
155
- return JSON.parse(E);
181
+ return JSON.parse(f);
156
182
  } catch {
157
- return E;
183
+ return f;
158
184
  }
159
185
  };
160
186
  function isNodeRuntime() {
@@ -164,14 +190,15 @@ function isNodeRuntime() {
164
190
  const shouldForceBrowserRuntimeInNode = ({
165
191
  shouldLogWarning: e
166
192
  }) => {
167
- var n;
193
+ var o;
168
194
  if (!isNodeRuntime())
169
195
  return !1;
170
- const t = process.arch === "arm64", r = process.version.startsWith("v20"), o = (n = process.env.NODE_OPTIONS) == null ? void 0 : n.includes("--no-node-snapshot");
171
- return t && r && !o ? (e && 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;
196
+ const t = process.arch === "arm64", r = process.version.startsWith("v20"), n = (o = process.env.NODE_OPTIONS) == null ? void 0 : o.includes("--no-node-snapshot");
197
+ return t && r && !n ? (e && 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;
172
198
  };
173
199
  export {
174
200
  fastClone,
201
+ flattenState,
175
202
  getBuilderGlobals,
176
203
  getFunctionArguments,
177
204
  parseCode,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@builder.io/sdk-react",
3
3
  "description": "Builder.io SDK for React",
4
- "version": "2.0.19",
4
+ "version": "2.0.22",
5
5
  "homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/react",
6
6
  "type": "module",
7
7
  "repository": {
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "2.0.19";
1
+ export declare const SDK_VERSION = "2.0.22";
@@ -1,8 +1,2 @@
1
- import type { BuilderRenderState } from '../../../context/types';
2
1
  import type { ExecutorArgs } from '../helpers';
3
2
  export declare const runInBrowser: ({ code, builder, context, event, localState, rootSetState, rootState }: ExecutorArgs) => any;
4
- export declare function flattenState({ rootState, localState, rootSetState }: {
5
- rootState: Record<string | symbol, any>;
6
- localState: Record<string | symbol, any> | undefined;
7
- rootSetState: ((rootState: BuilderRenderState) => void) | undefined;
8
- }): BuilderRenderState;
@@ -23,3 +23,8 @@ export declare const getFunctionArguments: ({ builder, context, event, state }:
23
23
  }) => [string, Event | BuilderRenderState | import("../../context/types").BuilderRenderContext | BuilderGlobals][];
24
24
  export declare const getBuilderGlobals: () => BuilderGlobals;
25
25
  export declare const parseCode: (code: string, { isExpression }: Pick<EvaluatorArgs, 'isExpression'>) => string;
26
+ export declare function flattenState({ rootState, localState, rootSetState }: {
27
+ rootState: Record<string | symbol, any>;
28
+ localState: Record<string | symbol, any> | undefined;
29
+ rootSetState: ((rootState: BuilderRenderState) => void) | undefined;
30
+ }): BuilderRenderState;
@@ -117,6 +117,6 @@ export interface Input {
117
117
  valueType?: {
118
118
  type?: string;
119
119
  };
120
- onChange?: ((options: Map<string, any>) => void | Promise<void>) | string;
120
+ onChange?: ((options: Map<string, any>, previousOptions?: Map<string, any>) => void | Promise<void>) | string;
121
121
  meta?: Record<string, any>;
122
122
  }
@@ -1,12 +0,0 @@
1
- "use strict";const c=require("react/jsx-runtime"),g=require("react"),T=require("./blocks-exports.cjs"),p=require("./server-entry-dbe27fb2.cjs"),B=require("./evaluate-29260bf8.cjs"),K=require("./get-class-prop-name-6320e936.cjs"),G=require("./dynamic-renderer-b29b45ca.cjs"),$=g.createContext({registeredComponents:{}});function V(e){var n;return{...(n=e.component)==null?void 0:n.options,...e.options}}function Z(e,...n){const t=Object.assign({},e);for(const r of n)delete t[r];return t}const R=e=>JSON.parse(JSON.stringify(e));function j(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(t=>j(t));if(e["@type"]==="@builder.io/sdk:Element")return e;const n={};for(const t in e)t!=="meta"&&Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=j(e[t]));return n}const J=["svelte","vue","angular","qwik","solid"].includes(p.TARGET),Q=e=>{if(J){const n=R(e);return{...n,properties:{...n.properties},actions:{...n.actions}}}else{const n=j(Z(e,"children","meta"));return{...n,properties:{...n.properties},actions:{...n.actions},children:e.children,meta:e.meta}}},X=({block:e,context:n,localState:t,rootState:r,rootSetState:o})=>{if(!e.bindings)return e;const s=Q(e);for(const l in e.bindings){const d=e.bindings[l],f=B.evaluate({code:d,localState:t,rootState:r,rootSetState:o,context:n,enableCache:!0});B.set(s,l,f)}return s};function Y({block:e,context:n,shouldEvaluateBindings:t,localState:r,rootState:o,rootSetState:s}){const l=e;return t?X({block:l,localState:r,rootState:o,rootSetState:s,context:n}):l}const P=e=>e?e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase():"";function ee(e,n,t={}){let r,o,s,l=null,d=0;const f=function(){d=t.leading===!1?0:Date.now(),l=null,s=e.apply(r,o),l||(r=o=null)};return function(){const a=Date.now();!d&&t.leading===!1&&(d=a);const m=n-(a-d);return r=this,o=arguments,m<=0||m>n?(l&&(clearTimeout(l),l=null),d=a,s=e.apply(r,o),l||(r=o=null)):!l&&t.trailing!==!1&&(l=setTimeout(f,m)),s}}function S(e,...n){const t=Object(e);for(let r=1;r<arguments.length;r++){const o=arguments[r];if(o!=null)for(const s in o)Object.prototype.hasOwnProperty.call(o,s)&&(t[s]=o[s])}return t}function te(e){for(const n of e)switch(n.trigger){case"pageLoad":F(n);break;case"scrollInView":oe(n);break}}function N(e){console.warn(`Cannot animate element: element with ID ${e} not found!`)}function D(e,n){const t=ne(e),r=getComputedStyle(n),o=e.steps[0].styles,s=e.steps[e.steps.length-1].styles,l=[o,s];for(const d of l)for(const f of t)f in d||(d[f]=r[f])}function ne(e){const n=[];for(const t of e.steps)for(const r in t.styles)n.indexOf(r)===-1&&n.push(r);return n}function F(e){const n=Array.prototype.slice.call(document.getElementsByClassName(e.elementId||e.id||""));if(!n.length){N(e.elementId||e.id||"");return}Array.from(n).forEach(t=>{D(e,t),t.style.transition="none",t.style.transitionDelay="0",S(t.style,e.steps[0].styles),setTimeout(()=>{t.style.transition=`all ${e.duration}s ${P(e.easing)}`,e.delay&&(t.style.transitionDelay=e.delay+"s"),S(t.style,e.steps[1].styles),setTimeout(()=>{t.style.transition="",t.style.transitionDelay=""},(e.delay||0)*1e3+e.duration*1e3+100)})})}function oe(e){const n=Array.prototype.slice.call(document.getElementsByClassName(e.elementId||e.id||""));if(!n.length){N(e.elementId||e.id||"");return}Array.from(n).forEach(t=>{D(e,t);let r=!1,o=!1;function s(){!r&&d(t)?(r=!0,o=!0,setTimeout(()=>{S(t.style,e.steps[1].styles),e.repeat||document.removeEventListener("scroll",l),setTimeout(()=>{o=!1,e.repeat||(t.style.transition="",t.style.transitionDelay="")},(e.duration+(e.delay||0))*1e3+100)})):e.repeat&&r&&!o&&!d(t)&&(r=!1,S(t.style,e.steps[0].styles))}const l=ee(s,200,{leading:!1});function d(m){const y=m.getBoundingClientRect(),k=window.innerHeight,i=(e.thresholdPercent||0)/100*k;return y.bottom>i&&y.top<k-i}const f=e.steps[0].styles;function a(){S(t.style,f)}a(),setTimeout(()=>{t.style.transition=`all ${e.duration}s ${P(e.easing)}`,e.delay&&(t.style.transitionDelay=e.delay+"s")}),document.addEventListener("scroll",l,{capture:!0,passive:!0}),s()})}const _=e=>Object.entries(e).map(([t,r])=>{if(typeof r=="string")return`${P(t)}: ${r};`}).filter(p.checkIsDefined),re=e=>_(e).join(`
2
- `),v=({mediaQuery:e,className:n,styles:t})=>{const r=`.${n} {
3
- ${re(t)}
4
- }`;return e?`${e} {
5
- ${r}
6
- }`:r};function se({style:e}){return e}const ce=({block:e,context:n})=>M(se({style:e.style||{},context:n,block:e}));function M(e){switch(p.TARGET){case"svelte":case"vue":case"solid":case"angular":return _(e).join(" ");case"qwik":case"reactNative":case"react":case"rsc":return e}}const le=({block:e,registeredComponents:n})=>{var o;const t=(o=e.component)==null?void 0:o.name;if(!t)return null;const r=n[t];if(r)return r;console.warn(`
7
- Could not find a registered component named "${t}".
8
- If you registered it, is the file that registered it imported by the file that needs to render it?`)},ie=({block:e,context:n})=>{const{repeat:t,...r}=e;if(!(t!=null&&t.collection))return;const o=B.evaluate({code:t.collection,localState:n.localState,rootState:n.rootState,rootSetState:n.rootSetState,context:n.context,enableCache:!0});if(!Array.isArray(o))return;const s=t.collection.split(".").pop(),l=t.itemName||(s?s+"Item":"item");return o.map((f,a)=>({context:{...n,localState:{...n.localState,$index:a,$item:f,[l]:f,[`$${l}Index`]:a}},block:r}))},ae=(e,n)=>{var t;return(t=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&t.builderLinkComponent?{builderLinkComponent:n}:{}},ue=(e,n)=>{var t;return(t=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&t.builderComponents?{builderComponents:n}:{}},de=(e,n)=>{var t;return(t=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&t.builderBlock?{builderBlock:n}:{}},fe=(e,n)=>{var t;return(t=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&t.builderContext?{builderContext:n}:{}},L={small:{min:320,default:321,max:640},medium:{min:641,default:642,max:991},large:{min:990,default:991,max:1200}},A=(e,n=L)=>`@media (max-width: ${n[e].max}px)`,q=({small:e,medium:n})=>{const t=R(L);if(!e||!n)return t;const r=Math.floor(e/2);t.small={max:e,min:r,default:r+1};const o=t.small.max+1;t.medium={max:n,min:o,default:o+1};const s=t.medium.max+1;return t.large={max:2e3,min:s,default:s+1},t};function H(e){return c.jsx("style",{dangerouslySetInnerHTML:{__html:e.styles},"data-id":e.id,nonce:e.nonce})}function me(e){function n(){const r=e.block;return p.checkIsDefined(r.hide)?!r.hide:p.checkIsDefined(r.show)?r.show:!0}function t(){var h,x,I;const r=e.block,o=r.responsiveStyles,s=e.context.content,l=q(((h=s==null?void 0:s.meta)==null?void 0:h.breakpoints)||{}),d=o==null?void 0:o.large,f=o==null?void 0:o.medium,a=o==null?void 0:o.small,m=r.id;if(!m)return"";const y=d?v({className:m,styles:d}):"",k=f?v({className:m,styles:f,mediaQuery:A("medium",l)}):"",C=a?v({className:m,styles:a,mediaQuery:A("small",l)}):"",i=r.animations&&r.animations.find(w=>w.trigger==="hover");let u="";if(i){const w=((I=(x=i.steps)==null?void 0:x[1])==null?void 0:I.styles)||{};u=v({className:`${m}:hover`,styles:{...w,transition:`all ${i.duration}s ${P(i.easing)}`,transitionDelay:i.delay?`${i.delay}s`:"0s"}})||""}return[y,k,C,u].join(" ")}return c.jsx(c.Fragment,{children:t()&&n()?c.jsx(c.Fragment,{children:c.jsx(H,{id:"builderio-block",styles:t(),nonce:e.context.nonce})}):null})}function he(e){return e.charAt(0).toUpperCase()+e.slice(1)}const ge=e=>`on${he(e)}`,pe=(e,n)=>t=>B.evaluate({code:e,context:n.context,localState:n.localState,rootState:n.rootState,rootSetState:n.rootSetState,event:t,isExpression:!1,enableCache:!0});function U(e){var r;const n={},t=(r=e.block.actions)!=null?r:{};for(const o in t){if(!t.hasOwnProperty(o))continue;const s=t[o];let l=ge(o);if(e.stripPrefix)switch(p.TARGET){case"vue":l=l.replace("v-on:","");break;case"svelte":l=l.replace("on:","");break}n[l]=pe(s,e)}return n}function xe({properties:e}){return e}const ye=e=>({href:e.href});function E({block:e,context:n}){var r;const t={...ye(e),...e.properties,"builder-id":e.id,style:ce({block:e,context:n}),[K.getClassPropName()]:[e.id,"builder-block",e.class,(r=e.properties)==null?void 0:r.class].filter(Boolean).join(" ")};return xe({properties:t,context:n,block:e})}function ke(e){return c.jsx(G.DynamicRenderer,{TagName:e.Wrapper,attributes:E({block:e.block,context:e.context}),actionAttributes:U({block:e.block,rootState:e.context.rootState,rootSetState:e.context.rootSetState,localState:e.context.localState,context:e.context.context,stripPrefix:!0}),children:e.children})}function Ce(e){return c.jsx(c.Fragment,{children:e.children})}function Se(e){function n(){return e.includeBlockProps?{...E({block:e.block,context:e.context}),...U({block:e.block,rootState:e.context.rootState,rootSetState:e.context.rootSetState,localState:e.context.localState,context:e.context.context})}:{}}return c.jsx(c.Fragment,{children:e.Wrapper.load?c.jsx(c.Fragment,{children:c.jsx(Ce,{load:e.Wrapper.load,fallback:e.Wrapper.fallback,props:e.wrapperProps,attributes:n(),children:e.children})}):c.jsx(e.Wrapper,{...e.wrapperProps,attributes:n(),children:e.children})})}const be=({componentOptions:e,builderBlock:n,context:t,componentRef:r,includeBlockProps:o,isInteractive:s,contextValue:l})=>{const d={...e,...o?{attributes:E({block:n,context:l})}:{}};return s?{Wrapper:r,block:n,context:t,wrapperProps:e,includeBlockProps:o}:d};function O(e){var r;const[n,t]=g.useState(()=>e.isInteractive?Se:e.componentRef);return c.jsx(c.Fragment,{children:e.componentRef?c.jsx(c.Fragment,{children:c.jsx(n,{...be({componentOptions:e.componentOptions,builderBlock:e.builderBlock,context:e.context,componentRef:e.componentRef,linkComponent:e.linkComponent,includeBlockProps:e.includeBlockProps,isInteractive:e.isInteractive,contextValue:e.context}),children:(r=e.blockChildren)==null?void 0:r.map(o=>c.jsx(b,{block:o,context:e.context,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},o.id))})}):null})}function W(e){const[n,t]=g.useState(()=>e.repeatContext);return c.jsx(T.BuilderContext.Provider,{value:n,children:c.jsx(b,{block:e.block,context:n,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent})})}function b(e){var m,y,k,C;function n(){return ie({block:e.block,context:e.context})}const[t,r]=g.useState(()=>({value:null,update:!1}));function o(){var u;if(t.value&&!t.update&&!p.isPreviewing())return t.value;const i=(u=e.block.repeat)!=null&&u.collection?e.block:Y({block:e.block,localState:e.context.localState,rootState:e.context.rootState,rootSetState:e.context.rootSetState,context:e.context.context,shouldEvaluateBindings:!0});return t.value=i,t.update=!1,i}function s(){return le({block:o(),registeredComponents:e.registeredComponents})}function l(){var u;return e.block.tagName==="a"||((u=o().properties)==null?void 0:u.href)||o().href?e.linkComponent||"a":e.block.tagName||"div"}function d(){var h,x;if((h=e.block.repeat)!=null&&h.collection)return!!((x=n==null?void 0:n())!=null&&x.length);const i="hide"in o()?o().hide:!1;return("show"in o()?o().show:!0)&&!i}function f(){var u,h;return!((u=s==null?void 0:s())!=null&&u.component)&&!n()?(h=o().children)!=null?h:[]:[]}function a(){var i,u,h,x;return{blockChildren:(i=o().children)!=null?i:[],componentRef:(u=s==null?void 0:s())==null?void 0:u.component,componentOptions:{...V(o()),...de(s(),o()),...fe(s(),e.context),...ae(s(),e.linkComponent),...ue(s(),e.registeredComponents)},context:e.context,linkComponent:e.linkComponent,registeredComponents:e.registeredComponents,builderBlock:o(),includeBlockProps:((h=s==null?void 0:s())==null?void 0:h.noWrap)===!0,isInteractive:!((x=s==null?void 0:s())!=null&&x.isRSC&&p.TARGET==="rsc")}}return g.useEffect(()=>{const i=o().id,u=o().animations;u&&i&&te(u.map(h=>({...h,elementId:i})))},[]),g.useEffect(()=>{t.update=!0}),c.jsx(c.Fragment,{children:d()?c.jsxs(c.Fragment,{children:[c.jsx(me,{block:o(),context:e.context}),(m=s==null?void 0:s())!=null&&m.noWrap?n()?c.jsx(c.Fragment,{children:(C=n())==null?void 0:C.map((i,u)=>c.jsx(W,{repeatContext:i.context,block:i.block,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},u))}):c.jsx(O,{componentRef:a().componentRef,componentOptions:a().componentOptions,blockChildren:a().blockChildren,context:a().context,registeredComponents:a().registeredComponents,linkComponent:a().linkComponent,builderBlock:a().builderBlock,includeBlockProps:a().includeBlockProps,isInteractive:a().isInteractive}):c.jsx(c.Fragment,{children:n()?c.jsx(c.Fragment,{children:(k=n())==null?void 0:k.map((i,u)=>c.jsx(W,{repeatContext:i.context,block:i.block,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},u))}):c.jsxs(ke,{Wrapper:l(),block:o(),context:e.context,children:[c.jsx(O,{componentRef:a().componentRef,componentOptions:a().componentOptions,blockChildren:a().blockChildren,context:a().context,registeredComponents:a().registeredComponents,linkComponent:a().linkComponent,builderBlock:a().builderBlock,includeBlockProps:a().includeBlockProps,isInteractive:a().isInteractive}),(y=f())==null?void 0:y.map(i=>c.jsx(b,{block:i,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent,context:e.context},i.id))]})})]}):null})}function ve(e){const n=g.useRef(null);function t(){var s;return"builder-blocks"+((s=e.blocks)!=null&&s.length?"":" no-blocks")}function r(){var s,l;p.isEditing()&&!((s=e.blocks)!=null&&s.length)&&((l=window.parent)==null||l.postMessage({type:"builder.clickEmptyBlocks",data:{parentElementId:e.parent,dataPath:e.path}},"*"))}function o(){var s,l;p.isEditing()&&!((s=e.blocks)!=null&&s.length)&&((l=window.parent)==null||l.postMessage({type:"builder.hoverEmptyBlocks",data:{parentElementId:e.parent,dataPath:e.path}},"*"))}return g.useEffect(()=>{},[]),c.jsxs(c.Fragment,{children:[c.jsx(e.BlocksWrapper,{ref:n,className:t()+" props-blocks-wrapper-51ef31b4","builder-path":e.path,"builder-parent-id":e.parent,style:e.styleProp,onClick:s=>r(),onMouseEnter:s=>o(),onKeyPress:s=>r(),...e.BlocksWrapperProps,children:e.children}),c.jsx("style",{children:`.props-blocks-wrapper-51ef31b4 {
9
- display: flex;
10
- flex-direction: column;
11
- align-items: stretch;
12
- }`})]})}function z(e){var r,o,s;const n=g.useContext(T.BuilderContext),t=g.useContext($);return c.jsx(ve,{blocks:e.blocks,parent:e.parent,path:e.path,styleProp:e.styleProp,BlocksWrapper:((r=e.context)==null?void 0:r.BlocksWrapper)||n.BlocksWrapper,BlocksWrapperProps:((o=e.context)==null?void 0:o.BlocksWrapperProps)||n.BlocksWrapperProps,children:e.blocks?c.jsx(c.Fragment,{children:(s=e.blocks)==null?void 0:s.map(l=>c.jsx(b,{block:l,linkComponent:e.linkComponent,context:e.context||n,registeredComponents:e.registeredComponents||t.registeredComponents},l.id))}):null})}const Be=Object.freeze(Object.defineProperty({__proto__:null,default:z},Symbol.toStringTag,{value:"Module"}));exports.Block=b;exports.Blocks=z;exports.ComponentsContext=$;exports.InlinedStyles=H;exports.blocks=Be;exports.fastClone=R;exports.getSizesForBreakpoints=q;exports.mapStyleObjToStrIfNeeded=M;exports.triggerAnimation=F;