@builder.io/sdk-react 2.0.16 → 2.0.21

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 (83) hide show
  1. package/lib/browser/blocks-exports.cjs +31 -31
  2. package/lib/browser/blocks-exports.mjs +852 -829
  3. package/lib/browser/index.cjs +1 -1
  4. package/lib/browser/index.mjs +22 -23
  5. package/lib/browser/{server-entry-c1666709.cjs → server-entry-6e52be8e.cjs} +2 -2
  6. package/lib/browser/{server-entry-1db0d96b.js → server-entry-8f273525.js} +1 -3
  7. package/lib/browser/server-entry.cjs +1 -1
  8. package/lib/browser/server-entry.mjs +1 -1
  9. package/lib/edge/{accordion-7c1c7c56.js → accordion-0fa0cd9f.js} +1 -1
  10. package/lib/edge/{accordion-09162a27.cjs → accordion-98e5d925.cjs} +1 -1
  11. package/lib/edge/blocks-4dac2e8c.cjs +12 -0
  12. package/lib/edge/{blocks-46c07b56.js → blocks-805edb5d.js} +296 -276
  13. package/lib/edge/blocks-exports.cjs +1 -1
  14. package/lib/edge/blocks-exports.mjs +2 -2
  15. package/lib/edge/{button-f2daea13.cjs → button-04692c59.cjs} +1 -1
  16. package/lib/edge/{button-a923f8ff.js → button-8c912189.js} +2 -2
  17. package/lib/edge/columns-4d8db53c.cjs +28 -0
  18. package/lib/edge/{columns-eee4f51c.js → columns-70a13cfe.js} +8 -9
  19. package/lib/edge/content-variants-7570438f.cjs +134 -0
  20. package/lib/edge/{content-variants-1368cab1.js → content-variants-d11198bc.js} +306 -309
  21. package/lib/edge/{evaluate-93701356.js → evaluate-29e9d055.js} +736 -711
  22. package/lib/edge/{evaluate-4c9b2e86.cjs → evaluate-826010e9.cjs} +13 -15
  23. package/lib/edge/form-13c77d47.cjs +1 -0
  24. package/lib/edge/{form-d0eb0af4.js → form-28c6dcde.js} +16 -17
  25. package/lib/edge/{get-class-prop-name-7cd1376f.cjs → get-class-prop-name-182b0edb.cjs} +1 -1
  26. package/lib/edge/{get-class-prop-name-1c373615.js → get-class-prop-name-c9e11804.js} +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-6c8139db.cjs → img-8f2d03d2.cjs} +1 -1
  30. package/lib/edge/{img-6e16ade6.js → img-ca1be569.js} +1 -1
  31. package/lib/edge/index.cjs +1 -1
  32. package/lib/edge/index.mjs +1 -1
  33. package/lib/edge/{input-c78fef2b.cjs → input-0456a323.cjs} +1 -1
  34. package/lib/edge/{input-a7e9c157.js → input-3db08208.js} +1 -1
  35. package/lib/edge/{select-3cf593bd.js → select-251dfaa4.js} +1 -1
  36. package/lib/edge/{select-bd1e231b.cjs → select-b851ff58.cjs} +1 -1
  37. package/lib/edge/{server-entry-6b3ad048.js → server-entry-05e6ebef.js} +1 -3
  38. package/lib/edge/{server-entry-d09af943.cjs → server-entry-75427eb3.cjs} +2 -2
  39. package/lib/edge/server-entry.cjs +1 -1
  40. package/lib/edge/server-entry.mjs +1 -1
  41. package/lib/edge/slot-279f992e.cjs +1 -0
  42. package/lib/edge/{slot-a5a9a30f.js → slot-76c2cebc.js} +6 -7
  43. package/lib/edge/{symbol-9de15518.cjs → symbol-020487c5.cjs} +1 -1
  44. package/lib/edge/{symbol-77d331c6.js → symbol-47130603.js} +2 -2
  45. package/lib/edge/{tabs-63d6ea85.js → tabs-3cc397e4.js} +13 -14
  46. package/lib/edge/tabs-c6053c2d.cjs +1 -0
  47. package/lib/edge/{text-4d508bbc.js → text-29ef4fd5.js} +8 -9
  48. package/lib/edge/text-c9d83141.cjs +1 -0
  49. package/lib/node/blocks-exports.cjs +31 -31
  50. package/lib/node/blocks-exports.mjs +807 -822
  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-1db0d96b.js → server-entry-83392238.js} +1 -2
  56. package/lib/node/{server-entry-c1666709.cjs → server-entry-b5908591.cjs} +2 -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-1188ea7b.js → should-force-browser-runtime-in-node-31b1e2f2.js} +57 -30
  60. package/lib/node/should-force-browser-runtime-in-node-391032cf.cjs +48 -0
  61. package/package.json +1 -1
  62. package/types/components/awaiter.d.ts +14 -0
  63. package/types/constants/sdk-version.d.ts +1 -1
  64. package/types/context/component-reference-types.d.ts +4 -0
  65. package/types/context/types.d.ts +2 -1
  66. package/types/functions/evaluate/browser-runtime/browser.d.ts +0 -6
  67. package/types/functions/evaluate/helpers.d.ts +5 -0
  68. package/lib/browser/init.cjs +0 -8
  69. package/lib/browser/init.mjs +0 -64
  70. package/lib/browser/should-force-browser-runtime-in-node-00f3cfef.js +0 -17
  71. package/lib/browser/should-force-browser-runtime-in-node-f768fb5d.cjs +0 -1
  72. package/lib/edge/blocks-273f24cc.cjs +0 -12
  73. package/lib/edge/columns-0b8c2260.cjs +0 -28
  74. package/lib/edge/content-variants-575b5dbf.cjs +0 -134
  75. package/lib/edge/form-bd184008.cjs +0 -1
  76. package/lib/edge/init.cjs +0 -8
  77. package/lib/edge/init.mjs +0 -64
  78. package/lib/edge/should-force-browser-runtime-in-node-2b14e4a8.cjs +0 -1
  79. package/lib/edge/should-force-browser-runtime-in-node-560bddfb.js +0 -17
  80. package/lib/edge/slot-ab7fc875.cjs +0 -1
  81. package/lib/edge/tabs-e6fa664e.cjs +0 -1
  82. package/lib/edge/text-ab5d2747.cjs +0 -1
  83. package/lib/node/should-force-browser-runtime-in-node-37010e2f.cjs +0 -48
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./blocks-exports.cjs"),e=require("./server-entry-c1666709.cjs");require("react/jsx-runtime");require("react");require("./should-force-browser-runtime-in-node-37010e2f.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-b5908591.cjs");require("react/jsx-runtime");require("react");require("./should-force-browser-runtime-in-node-391032cf.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-1db0d96b.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-83392238.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
5
- import "./should-force-browser-runtime-in-node-1188ea7b.js";
5
+ import "./should-force-browser-runtime-in-node-31b1e2f2.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-37010e2f.cjs"),t=require("isolated-vm");require("./server-entry-c1666709.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-391032cf.cjs"),t=require("isolated-vm");require("./server-entry-b5908591.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-1188ea7b.js";
1
+ import { shouldForceBrowserRuntimeInNode as t, setIvm as r } from "./should-force-browser-runtime-in-node-31b1e2f2.js";
2
2
  import e from "isolated-vm";
3
- import "./server-entry-1db0d96b.js";
3
+ import "./server-entry-83392238.js";
4
4
  const u = (o) => {
5
5
  if (t({
6
6
  shouldLogWarning: !0
@@ -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.16", zt = () => {
305
+ const Et = "2.0.21", 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,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.16",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.21",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;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-entry-c1666709.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-b5908591.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-1db0d96b.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-83392238.js";
2
2
  export {
3
3
  r as _processContentResult,
4
4
  s as createRegisterComponentMessage,
@@ -1,11 +1,11 @@
1
- import { isEditing, isBrowser, getUserAttributes, TARGET, logger, MSG_PREFIX, checkIsDefined } from "./server-entry-1db0d96b.js";
1
+ import { isEditing, isBrowser, getUserAttributes, TARGET, logger, MSG_PREFIX, checkIsDefined } from "./server-entry-83392238.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}
@@ -89,7 +115,7 @@ if (typeof output === 'object' && output !== null) {
89
115
  let IVM_INSTANCE = null, IVM_CONTEXT = null;
90
116
  const setIvm = (e, t = {}) => {
91
117
  IVM_INSTANCE = e, setIsolateContext(t);
92
- }, SHOULD_MENTION_INITIALIZE_SCRIPT = SDK_NAME === "@builder.io/sdk-react-nextjs" || SDK_NAME === "@builder.io/sdk-react" || SDK_NAME === "@builder.io/sdk-qwik", getIvm = () => {
118
+ }, SHOULD_MENTION_INITIALIZE_SCRIPT = SDK_NAME === "@builder.io/sdk-react-nextjs" || SDK_NAME === "@builder.io/sdk-react" || SDK_NAME === "@builder.io/sdk-qwik" || SDK_NAME === "@builder.io/sdk-vue", getIvm = () => {
93
119
  try {
94
120
  if (IVM_INSTANCE)
95
121
  return IVM_INSTANCE;
@@ -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 E = 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 E.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
- }), I = l.evalClosureSync(p);
178
+ args: l
179
+ }), f = a.evalClosureSync(N);
154
180
  try {
155
- return JSON.parse(I);
181
+ return JSON.parse(f);
156
182
  } catch {
157
- return I;
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,
@@ -0,0 +1,48 @@
1
+ "use strict";const serverEntry=require("./server-entry-b5908591.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
+ var refToProxy = (obj) => {
3
+ if (typeof obj !== 'object' || obj === null) {
4
+ return obj;
5
+ }
6
+ return new Proxy({}, {
7
+ get(target, key) {
8
+ if (key === 'copySync') {
9
+ return () => obj.copySync();
10
+ }
11
+ const val = obj.getSync(key);
12
+ if (typeof val?.getSync === 'function') {
13
+ return refToProxy(val);
14
+ }
15
+ return val;
16
+ },
17
+ set(target, key, value) {
18
+ const v = typeof value === 'object' ? new ${INJECTED_IVM_GLOBAL}.Reference(value) : value;
19
+ obj.setSync(key, v);
20
+ ${BUILDER_SET_STATE_NAME}(key, value)
21
+ },
22
+ deleteProperty(target, key) {
23
+ obj.deleteSync(key);
24
+ }
25
+ })
26
+ }
27
+ `,processCode=({code:e,args:t})=>{const o=t.map(([n])=>`var ${n} = refToProxy(${getSyncValName(n)}); `).join("");return`
28
+ ${REF_TO_PROXY_FN}
29
+ ${o}
30
+ function theFunction() {
31
+ ${e}
32
+ }
33
+
34
+ const output = theFunction()
35
+
36
+ if (typeof output === 'object' && output !== null) {
37
+ return JSON.stringify(output.copySync ? output.copySync() : output);
38
+ } else {
39
+ return output;
40
+ }
41
+ `};let IVM_INSTANCE=null,IVM_CONTEXT=null;const setIvm=(e,t={})=>{IVM_INSTANCE=e,setIsolateContext(t)},SHOULD_MENTION_INITIALIZE_SCRIPT=SDK_NAME==="@builder.io/sdk-react-nextjs"||SDK_NAME==="@builder.io/sdk-react"||SDK_NAME==="@builder.io/sdk-qwik"||SDK_NAME==="@builder.io/sdk-vue",getIvm=()=>{try{if(IVM_INSTANCE)return IVM_INSTANCE;const t=safeDynamicRequire("isolated-vm");if(t)return t}catch(t){serverEntry.logger.error("isolated-vm import error.",t)}const e=`${serverEntry.MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
42
+
43
+ SOLUTION: In a server-only execution path within your application, do one of the following:
44
+
45
+ ${SHOULD_MENTION_INITIALIZE_SCRIPT?`- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".`:""}
46
+ - add the following import: \`await import('isolated-vm')\`.
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(),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;
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.16",
4
+ "version": "2.0.21",
5
5
  "homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/react",
6
6
  "type": "module",
7
7
  "repository": {
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Placeholder component to be overridden by specific SDKs.
4
+ * Allows to dynamically import components.
5
+ */
6
+ type AwaiterProps = {
7
+ load: () => Promise<any>;
8
+ props?: any;
9
+ attributes?: any;
10
+ fallback?: any;
11
+ children?: any;
12
+ };
13
+ declare function Awaiter(props: AwaiterProps): React.JSX.Element;
14
+ export default Awaiter;
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "2.0.16";
1
+ export declare const SDK_VERSION = "2.0.21";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * To be overriden to the correct `Component` type for each framework.
3
+ */
4
+ export type ComponentReference = any;
@@ -3,9 +3,10 @@ import type { ApiVersion } from '../types/api-version';
3
3
  import type { BuilderContent } from '../types/builder-content';
4
4
  import type { ComponentInfo } from '../types/components';
5
5
  import type { Dictionary, Nullable } from '../types/typescript';
6
+ import type { ComponentReference } from './component-reference-types';
6
7
  import type { ExtraContextTypes } from './extra-context-types';
7
8
  export type RegisteredComponent = ComponentInfo & {
8
- component: any;
9
+ component: ComponentReference;
9
10
  };
10
11
  export type RegisteredComponents = Dictionary<RegisteredComponent>;
11
12
  export type BuilderRenderState = Record<string, unknown>;
@@ -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;
@@ -1,8 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const shouldForceBrowserRuntimeInNode=require("./should-force-browser-runtime-in-node-f768fb5d.cjs"),ivm=require("isolated-vm"),serverEntry=require("./server-entry-c1666709.cjs"),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}`,noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(t){}const INJECTED_IVM_GLOBAL="BUILDER_IVM";let IVM_INSTANCE=null;const setIvm=(t,e={})=>{IVM_INSTANCE=t,setIsolateContext(e)},SHOULD_MENTION_INITIALIZE_SCRIPT=SDK_NAME==="@builder.io/sdk-react-nextjs"||SDK_NAME==="@builder.io/sdk-react"||SDK_NAME==="@builder.io/sdk-qwik",getIvm=()=>{try{if(IVM_INSTANCE)return IVM_INSTANCE;const e=safeDynamicRequire("isolated-vm");if(e)return e}catch(e){serverEntry.logger.error("isolated-vm import error.",e)}const t=`${serverEntry.MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
2
-
3
- SOLUTION: In a server-only execution path within your application, do one of the following:
4
-
5
- ${SHOULD_MENTION_INITIALIZE_SCRIPT?`- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".`:""}
6
- - add the following import: \`await import('isolated-vm')\`.
7
-
8
- For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;throw new Error(t)};function setIsolateContext(t={memoryLimit:128}){const e=getIvm(),r=new e.Isolate(t).createContextSync(),o=r.global;return o.setSync("global",o.derefInto()),o.setSync("log",function(...n){console.log(...n)}),o.setSync(INJECTED_IVM_GLOBAL,e),r}const initializeNodeRuntime=t=>{if(shouldForceBrowserRuntimeInNode.shouldForceBrowserRuntimeInNode({shouldLogWarning:!0}))return;const{ivmIsolateOptions:e}=t||{};setIvm(ivm,e)};exports.initializeNodeRuntime=initializeNodeRuntime;
@@ -1,64 +0,0 @@
1
- import { shouldForceBrowserRuntimeInNode } from "./should-force-browser-runtime-in-node-00f3cfef.js";
2
- import ivm from "isolated-vm";
3
- import { TARGET, logger, MSG_PREFIX } from "./server-entry-1db0d96b.js";
4
- const SDK_NAME_FOR_TARGET = (() => {
5
- switch (TARGET) {
6
- case "rsc":
7
- return "react-nextjs";
8
- case "reactNative":
9
- return "react-native";
10
- default:
11
- return TARGET;
12
- }
13
- })(), SDK_NAME = `@builder.io/sdk-${SDK_NAME_FOR_TARGET}`, noop = () => {
14
- };
15
- let safeDynamicRequire = noop;
16
- try {
17
- safeDynamicRequire = eval("require");
18
- } catch (t) {
19
- }
20
- const INJECTED_IVM_GLOBAL = "BUILDER_IVM";
21
- let IVM_INSTANCE = null;
22
- const setIvm = (t, e = {}) => {
23
- IVM_INSTANCE = t, setIsolateContext(e);
24
- }, SHOULD_MENTION_INITIALIZE_SCRIPT = SDK_NAME === "@builder.io/sdk-react-nextjs" || SDK_NAME === "@builder.io/sdk-react" || SDK_NAME === "@builder.io/sdk-qwik", getIvm = () => {
25
- try {
26
- if (IVM_INSTANCE)
27
- return IVM_INSTANCE;
28
- const e = safeDynamicRequire("isolated-vm");
29
- if (e)
30
- return e;
31
- } catch (e) {
32
- logger.error("isolated-vm import error.", e);
33
- }
34
- const t = `${MSG_PREFIX}could not import \`isolated-vm\` module for safe script execution on a Node server.
35
-
36
- SOLUTION: In a server-only execution path within your application, do one of the following:
37
-
38
- ${SHOULD_MENTION_INITIALIZE_SCRIPT ? `- import and call \`initializeNodeRuntime()\` from "${SDK_NAME}/node/init".` : ""}
39
- - add the following import: \`await import('isolated-vm')\`.
40
-
41
- For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;
42
- throw new Error(t);
43
- };
44
- function setIsolateContext(t = {
45
- memoryLimit: 128
46
- }) {
47
- const e = getIvm(), i = new e.Isolate(t).createContextSync(), o = i.global;
48
- return o.setSync("global", o.derefInto()), o.setSync("log", function(...n) {
49
- console.log(...n);
50
- }), o.setSync(INJECTED_IVM_GLOBAL, e), i;
51
- }
52
- const initializeNodeRuntime = (t) => {
53
- if (shouldForceBrowserRuntimeInNode({
54
- shouldLogWarning: !0
55
- }))
56
- return;
57
- const {
58
- ivmIsolateOptions: e
59
- } = t || {};
60
- setIvm(ivm, e);
61
- };
62
- export {
63
- initializeNodeRuntime
64
- };
@@ -1,17 +0,0 @@
1
- import { checkIsDefined as i, logger as t } from "./server-entry-1db0d96b.js";
2
- function a() {
3
- var o;
4
- return typeof process != "undefined" && i((o = process == null ? void 0 : process.versions) == null ? void 0 : o.node);
5
- }
6
- const d = ({
7
- shouldLogWarning: o
8
- }) => {
9
- var e;
10
- if (!a())
11
- return !1;
12
- const s = process.arch === "arm64", n = process.version.startsWith("v20"), r = (e = process.env.NODE_OPTIONS) == null ? void 0 : e.includes("--no-node-snapshot");
13
- return s && n && !r ? (o && t.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;
14
- };
15
- export {
16
- d as shouldForceBrowserRuntimeInNode
17
- };
@@ -1 +0,0 @@
1
- "use strict";const s=require("./server-entry-c1666709.cjs");function t(){var e;return typeof process!="undefined"&&s.checkIsDefined((e=process==null?void 0:process.versions)==null?void 0:e.node)}const c=({shouldLogWarning:e})=>{var o;if(!t())return!1;const n=process.arch==="arm64",r=process.version.startsWith("v20"),i=(o=process.env.NODE_OPTIONS)==null?void 0:o.includes("--no-node-snapshot");return n&&r&&!i?(e&&s.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.shouldForceBrowserRuntimeInNode=c;
@@ -1,12 +0,0 @@
1
- "use strict";const l=require("react/jsx-runtime"),p=require("react"),W=require("./blocks-exports.cjs"),g=require("./server-entry-d09af943.cjs"),B=require("./evaluate-4c9b2e86.cjs"),K=require("./get-class-prop-name-7cd1376f.cjs"),G=require("./dynamic-renderer-b29b45ca.cjs"),R=e=>JSON.parse(JSON.stringify(e)),$=p.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}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(g.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 c in e.bindings){const d=e.bindings[c],f=B.evaluate({code:d,localState:t,rootState:r,rootSetState:o,context:n,enableCache:!0});B.set(s,c,f)}return s};function Y({block:e,context:n,shouldEvaluateBindings:t,localState:r,rootState:o,rootSetState:s}){const c=e;return t?X({block:c,localState:r,rootState:o,rootSetState:s,context:n}):c}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,c=null,d=0;const f=function(){d=t.leading===!1?0:Date.now(),c=null,s=e.apply(r,o),c||(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?(c&&(clearTimeout(c),c=null),d=a,s=e.apply(r,o),c||(r=o=null)):!c&&t.trailing!==!1&&(c=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,c=[o,s];for(const d of c)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",c),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 c=ee(s,200,{leading:!1});function d(m){const x=m.getBoundingClientRect(),k=window.innerHeight,i=(e.thresholdPercent||0)/100*k;return x.bottom>i&&x.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",c,{capture:!0,passive:!0}),s()})}const _=e=>Object.entries(e).map(([t,r])=>{if(typeof r=="string")return`${P(t)}: ${r};`}).filter(g.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(g.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(),c=t.itemName||(s?s+"Item":"item");return o.map((f,a)=>({context:{...n,localState:{...n.localState,$index:a,$item:f,[c]:f,[`$${c}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 l.jsx("style",{dangerouslySetInnerHTML:{__html:e.styles},"data-id":e.id,nonce:e.nonce})}function me(e){function n(){const r=e.block;return g.checkIsDefined(r.hide)?!r.hide:g.checkIsDefined(r.show)?r.show:!0}function t(){var h,y,I;const r=e.block,o=r.responsiveStyles,s=e.context.content,c=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 x=d?v({className:m,styles:d}):"",k=f?v({className:m,styles:f,mediaQuery:A("medium",c)}):"",C=a?v({className:m,styles:a,mediaQuery:A("small",c)}):"",i=r.animations&&r.animations.find(w=>w.trigger==="hover");let u="";if(i){const w=((I=(y=i.steps)==null?void 0:y[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[x,k,C,u].join(" ")}return l.jsx(l.Fragment,{children:t()&&n()?l.jsx(l.Fragment,{children:l.jsx(H,{id:"builderio-block",styles:t(),nonce:e.context.nonce})}):null})}function he(e){return e.charAt(0).toUpperCase()+e.slice(1)}const pe=e=>`on${he(e)}`,ge=(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 c=pe(o);if(e.stripPrefix)switch(g.TARGET){case"vue":c=c.replace("v-on:","");break;case"svelte":c=c.replace("on:","");break}n[c]=ge(s,e)}return n}function ye({properties:e}){return e}const xe=e=>({href:e.href});function E({block:e,context:n}){var r;const t={...xe(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 ye({properties:t,context:n,block:e})}function ke(e){return l.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){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 l.jsx(e.Wrapper,{...e.wrapperProps,attributes:n(),children:e.children})}const Se=({componentOptions:e,builderBlock:n,context:t,componentRef:r,includeBlockProps:o,isInteractive:s,contextValue:c})=>{const d={...e,...o?{attributes:E({block:n,context:c})}:{}};return s?{Wrapper:r,block:n,context:t,wrapperProps:e,includeBlockProps:o}:d};function O(e){var r;const[n,t]=p.useState(()=>e.isInteractive?Ce:e.componentRef);return l.jsx(l.Fragment,{children:e.componentRef?l.jsx(l.Fragment,{children:l.jsx(n,{...Se({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=>l.jsx(b,{block:o,context:e.context,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},o.id))})}):null})}function T(e){const[n,t]=p.useState(()=>e.repeatContext);return l.jsx(W.BuilderContext.Provider,{value:n,children:l.jsx(b,{block:e.block,context:n,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent})})}function b(e){var m,x,k,C;function n(){return ie({block:e.block,context:e.context})}const[t,r]=p.useState(()=>({value:null,update:!1}));function o(){var u;if(t.value&&!t.update&&!g.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 c(){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,y;if((h=e.block.repeat)!=null&&h.collection)return!!((y=n==null?void 0:n())!=null&&y.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,y;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:!((y=s==null?void 0:s())!=null&&y.isRSC&&g.TARGET==="rsc")}}return p.useEffect(()=>{const i=o().id,u=o().animations;u&&i&&te(u.map(h=>({...h,elementId:i})))},[]),p.useEffect(()=>{t.update=!0}),l.jsx(l.Fragment,{children:d()?l.jsxs(l.Fragment,{children:[l.jsx(me,{block:o(),context:e.context}),(m=s==null?void 0:s())!=null&&m.noWrap?n()?l.jsx(l.Fragment,{children:(C=n())==null?void 0:C.map((i,u)=>l.jsx(T,{repeatContext:i.context,block:i.block,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},u))}):l.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}):l.jsx(l.Fragment,{children:n()?l.jsx(l.Fragment,{children:(k=n())==null?void 0:k.map((i,u)=>l.jsx(T,{repeatContext:i.context,block:i.block,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},u))}):l.jsxs(ke,{Wrapper:c(),block:o(),context:e.context,children:[l.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}),(x=f())==null?void 0:x.map(i=>l.jsx(b,{block:i,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent,context:e.context},i.id))]})})]}):null})}function be(e){const n=p.useRef(null);function t(){var s;return"builder-blocks"+((s=e.blocks)!=null&&s.length?"":" no-blocks")}function r(){var s,c;g.isEditing()&&!((s=e.blocks)!=null&&s.length)&&((c=window.parent)==null||c.postMessage({type:"builder.clickEmptyBlocks",data:{parentElementId:e.parent,dataPath:e.path}},"*"))}function o(){var s,c;g.isEditing()&&!((s=e.blocks)!=null&&s.length)&&((c=window.parent)==null||c.postMessage({type:"builder.hoverEmptyBlocks",data:{parentElementId:e.parent,dataPath:e.path}},"*"))}return p.useEffect(()=>{},[]),l.jsxs(l.Fragment,{children:[l.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}),l.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=p.useContext(W.BuilderContext),t=p.useContext($);return l.jsx(be,{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?l.jsx(l.Fragment,{children:(s=e.blocks)==null?void 0:s.map(c=>l.jsx(b,{block:c,linkComponent:e.linkComponent,context:e.context||n,registeredComponents:e.registeredComponents||t.registeredComponents},c.id))}):null})}const ve=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=ve;exports.fastClone=R;exports.getSizesForBreakpoints=q;exports.mapStyleObjToStrIfNeeded=M;exports.triggerAnimation=F;
@@ -1,28 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),o=require("react"),s=require("./blocks-273f24cc.cjs"),q=require("./dynamic-renderer-b29b45ca.cjs"),p=require("./get-class-prop-name-7cd1376f.cjs");require("./blocks-exports.cjs");require("./server-entry-d09af943.cjs");require("./evaluate-4c9b2e86.cjs");require("./should-force-browser-runtime-in-node-2b14e4a8.cjs");const B=t=>`builder-columns ${t}-breakpoints`;function z(t){var f,g;const[u,A]=o.useState(()=>typeof t.space=="number"?t.space||0:20),[c,L]=o.useState(()=>t.columns||[]),[d,N]=o.useState(()=>t.stackColumnsAt||"tablet");function y(e){return e.link?t.builderLinkComponent||"a":"div"}function x(e){var n;return((n=c[e])==null?void 0:n.width)||100/c.length}function C(e){const n=x(e),i=u*(c.length-1)*(n/100);return`calc(${n}% - ${i}px)`}function a({stackedStyle:e,desktopStyle:n}){return d==="tablet"?e:n}function m({stackedStyle:e,desktopStyle:n}){return d==="never"?n:e}const[b,W]=o.useState(()=>t.stackColumnsAt==="never"?"row":t.reverseColumnsWhenStacked?"column-reverse":"column");function v(){return{"--flex-dir":b,"--flex-dir-tablet":a({stackedStyle:b,desktopStyle:"row"})}}function w(e){const n=e===0?0:u,i=C(e),r=`${n}px`,h="100%",S=0;return{...{display:"flex",flexDirection:"column",alignItems:"stretch"},width:i,["marginLeft"]:r,"--column-width-mobile":m({stackedStyle:h,desktopStyle:i}),"--column-margin-left-mobile":m({stackedStyle:S,desktopStyle:r}),"--column-width-tablet":a({stackedStyle:h,desktopStyle:i}),"--column-margin-left-tablet":a({stackedStyle:S,desktopStyle:r})}}function k(e){var i,r;return s.getSizesForBreakpoints(((r=(i=t.builderContext.content)==null?void 0:i.meta)==null?void 0:r.breakpoints)||{})[e].max}function $(){const e=`.${t.builderBlock.id}-breakpoints > .builder-column`;return`
2
- @media (max-width: ${k("medium")}px) {
3
- .${t.builderBlock.id}-breakpoints {
4
- flex-direction: var(--flex-dir-tablet);
5
- align-items: stretch;
6
- }
7
-
8
- ${e} {
9
- width: var(--column-width-tablet) !important;
10
- margin-left: var(--column-margin-left-tablet) !important;
11
- }
12
- }
13
-
14
- @media (max-width: ${k("small")}px) {
15
- .${t.builderBlock.id}-breakpoints {
16
- flex-direction: var(--flex-dir);
17
- align-items: stretch;
18
- }
19
-
20
- ${e} {
21
- width: var(--column-width-mobile) !important;
22
- margin-left: var(--column-margin-left-mobile) !important;
23
- }
24
- },
25
- `}function j(e,n){return{...e.link?{href:e.link}:{},[p.getClassPropName()]:"builder-column",style:s.mapStyleObjToStrIfNeeded(w(n))}}return l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:B((f=t.builderBlock)==null?void 0:f.id)+" div-34f576bb",style:v(),children:[l.jsx(s.InlinedStyles,{id:"builderio-columns",styles:$(),nonce:t.builderContext.nonce}),(g=t.columns)==null?void 0:g.map((e,n)=>l.jsx(q.DynamicRenderer,{TagName:y(e),actionAttributes:{},attributes:j(e,n),children:l.jsx(s.Blocks,{path:`component.options.columns.${n}.blocks`,parent:t.builderBlock.id,styleProp:{flexGrow:"1"},context:t.builderContext,registeredComponents:t.builderComponents,linkComponent:t.builderLinkComponent,blocks:e.blocks})},n))]}),l.jsx("style",{children:`.div-34f576bb {
26
- display: flex;
27
- line-height: normal;
28
- }`})]})}exports.default=z;