@builder.io/sdk-react-nextjs 0.7.1-0 → 0.7.1-2

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 (35) hide show
  1. package/lib/browser/{USE_CLIENT_BUNDLE-9195e6a5.js → USE_CLIENT_BUNDLE-11d41596.js} +1 -1
  2. package/lib/browser/{USE_CLIENT_BUNDLE-7a3bf41a.mjs → USE_CLIENT_BUNDLE-48d9356f.mjs} +2 -2
  3. package/lib/{edge/USE_SERVER_BUNDLE-f184d7eb.mjs → browser/USE_SERVER_BUNDLE-3875256b.mjs} +1 -1
  4. package/lib/{edge/USE_SERVER_BUNDLE-3f12faf4.js → browser/USE_SERVER_BUNDLE-568694d9.js} +1 -1
  5. package/lib/browser/bundle-05622db1.js +76 -0
  6. package/lib/browser/{bundle-7285a09d.mjs → bundle-242ae8b5.mjs} +522 -502
  7. package/lib/browser/index.cjs +1 -1
  8. package/lib/browser/index.mjs +3 -3
  9. package/lib/edge/{USE_CLIENT_BUNDLE-4a0cfa69.mjs → USE_CLIENT_BUNDLE-6eb1ee54.mjs} +2 -2
  10. package/lib/edge/{USE_CLIENT_BUNDLE-3cca560e.js → USE_CLIENT_BUNDLE-bba76732.js} +1 -1
  11. package/lib/{node/USE_SERVER_BUNDLE-cd844269.js → edge/USE_SERVER_BUNDLE-305bf94a.js} +1 -1
  12. package/lib/{node/USE_SERVER_BUNDLE-22e86776.mjs → edge/USE_SERVER_BUNDLE-66d4b8c4.mjs} +1 -1
  13. package/lib/edge/bundle-1b9b93c7.js +96 -0
  14. package/lib/edge/{bundle-a5949d33.mjs → bundle-3d31ba5d.mjs} +1936 -1888
  15. package/lib/edge/index.cjs +1 -1
  16. package/lib/edge/index.mjs +3 -3
  17. package/lib/node/USE_CLIENT_BUNDLE-8147b412.js +23 -0
  18. package/lib/node/USE_CLIENT_BUNDLE-e041d92c.mjs +657 -0
  19. package/lib/{browser/USE_SERVER_BUNDLE-e5c2279a.mjs → node/USE_SERVER_BUNDLE-1634816a.mjs} +1 -1
  20. package/lib/{browser/USE_SERVER_BUNDLE-d7b13097.js → node/USE_SERVER_BUNDLE-8c1ae1f0.js} +1 -1
  21. package/lib/node/bundle-4203318d.js +116 -0
  22. package/lib/node/{bundle-0358b224.mjs → bundle-7ebcd79e.mjs} +783 -640
  23. package/lib/node/index.cjs +1 -1
  24. package/lib/node/index.mjs +22 -23
  25. package/package.json +1 -2
  26. package/types/constants/sdk-version.d.ts +1 -1
  27. package/types/functions/evaluate/choose-eval.d.ts +6 -0
  28. package/types/functions/evaluate/evaluate.d.ts +1 -5
  29. package/types/functions/evaluate/helpers.d.ts +7 -1
  30. package/types/functions/get-content/types.d.ts +94 -3
  31. package/lib/browser/bundle-620ae296.js +0 -76
  32. package/lib/edge/bundle-a0f5cad2.js +0 -96
  33. package/lib/node/USE_CLIENT_BUNDLE-63c7fe77.js +0 -61
  34. package/lib/node/USE_CLIENT_BUNDLE-d9e90ed7.mjs +0 -747
  35. package/lib/node/bundle-630ffe6d.js +0 -76
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./bundle-630ffe6d.js"),t=require("./USE_CLIENT_BUNDLE-63c7fe77.js");require("isolated-vm");require("lru-cache");require("react/jsx-runtime");require("react");require("next/navigation");require("./USE_SERVER_BUNDLE-cd844269.js");exports.Blocks=e.Blocks;exports.Columns=e.Columns;exports.Content=e.ContentVariants;exports.RenderBlocks=e.RenderBlocks;exports.RenderContent=e.RenderContent;exports.Symbol=e.Symbol;exports.Text=e.Text;exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getAllContent=e.getAllContent;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.getContent=e.getContent;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.track=e.track;exports.Button=t.Button;exports.Fragment=t.FragmentComponent;exports.Image=t.Image;exports.Section=t.SectionComponent;exports.Video=t.Video;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./bundle-4203318d.js"),t=require("./USE_CLIENT_BUNDLE-8147b412.js");require("lru-cache");require("react/jsx-runtime");require("react");require("next/navigation");require("./USE_SERVER_BUNDLE-8c1ae1f0.js");exports.Blocks=e.Blocks;exports.Columns=e.Columns;exports.Content=e.ContentVariants;exports.RenderBlocks=e.RenderBlocks;exports.RenderContent=e.RenderContent;exports.Symbol=e.Symbol;exports.Text=e.Text;exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getAllContent=e.getAllContent;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.getContent=e.getContent;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.track=e.track;exports.Button=t.Button;exports.Fragment=t.FragmentComponent;exports.Image=t.Image;exports.Section=t.SectionComponent;exports.Video=t.Video;
@@ -1,35 +1,34 @@
1
- import { B as m, u as c, C as g, R as p, t as l, S as C, T as d, A as u, n as B, F as S, x as f, o as h, y as E, D as R, z as x, i as k, h as y, v as F, w as P, E as b } from "./bundle-0358b224.mjs";
2
- import { b as w, F as A, c as T, S as V, V as z } from "./USE_CLIENT_BUNDLE-d9e90ed7.mjs";
3
- import "isolated-vm";
1
+ import { B as i, t as m, C as c, R as g, q as p, S as l, T as C, z as d, m as f, E as u, w as B, n as S, x as E, A as R, y as h, i as x, f as k, u as y, v as P, D as b } from "./bundle-7ebcd79e.mjs";
2
+ import { b as w, F as A, c as F, S as T, V } from "./USE_CLIENT_BUNDLE-e041d92c.mjs";
4
3
  import "lru-cache";
5
4
  import "react/jsx-runtime";
6
5
  import "react";
7
6
  import "next/navigation";
8
- import "./USE_SERVER_BUNDLE-22e86776.mjs";
7
+ import "./USE_SERVER_BUNDLE-1634816a.mjs";
9
8
  export {
10
- m as Blocks,
9
+ i as Blocks,
11
10
  w as Button,
12
- c as Columns,
13
- g as Content,
11
+ m as Columns,
12
+ c as Content,
14
13
  A as Fragment,
15
- T as Image,
16
- p as RenderBlocks,
17
- l as RenderContent,
18
- V as Section,
19
- C as Symbol,
20
- d as Text,
21
- z as Video,
22
- u as _processContentResult,
23
- B as createRegisterComponentMessage,
24
- S as fetchBuilderProps,
25
- f as fetchEntries,
26
- h as fetchOneEntry,
14
+ F as Image,
15
+ g as RenderBlocks,
16
+ p as RenderContent,
17
+ T as Section,
18
+ l as Symbol,
19
+ C as Text,
20
+ V as Video,
21
+ d as _processContentResult,
22
+ f as createRegisterComponentMessage,
23
+ u as fetchBuilderProps,
24
+ B as fetchEntries,
25
+ S as fetchOneEntry,
27
26
  E as getAllContent,
28
27
  R as getBuilderSearchParams,
29
- x as getContent,
30
- k as isEditing,
31
- y as isPreviewing,
32
- F as register,
28
+ h as getContent,
29
+ x as isEditing,
30
+ k as isPreviewing,
31
+ y as register,
33
32
  P as setEditorSettings,
34
33
  b as track
35
34
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@builder.io/sdk-react-nextjs",
3
3
  "description": "Builder.io RSC SDK for NextJS App Directory",
4
- "version": "0.7.1-0",
4
+ "version": "0.7.1-2",
5
5
  "files": [
6
6
  "lib",
7
7
  "types"
@@ -97,7 +97,6 @@
97
97
  "build:browser": "SDK_ENV=browser vite build --mode lib"
98
98
  },
99
99
  "peerDependencies": {
100
- "isolated-vm": "^4.6.0",
101
100
  "next": "^13.4.20",
102
101
  "react": "^18.2.0",
103
102
  "react-dom": "^18.2.0"
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.7.1-0";
1
+ export declare const SDK_VERSION = "0.7.1-2";
@@ -0,0 +1,6 @@
1
+ import type { ExecutorArgs } from './helpers.js';
2
+ /**
3
+ * Even though we have separate runtimes for browser/node/edge, sometimes frameworks will
4
+ * end up sending the server runtime code to the browser (most notably in dev mode).
5
+ */
6
+ export declare const chooseBrowserOrServerEval: (args: ExecutorArgs) => any;
@@ -1,6 +1,2 @@
1
- import type { ExecutorArgs } from './helpers.js';
2
- export type EvaluatorArgs = Omit<ExecutorArgs, 'builder' | 'event'> & {
3
- event?: Event;
4
- isExpression?: boolean;
5
- };
1
+ import type { EvaluatorArgs } from './helpers.js';
6
2
  export declare function evaluate({ code, context, localState, rootState, rootSetState, event, isExpression }: EvaluatorArgs): any;
@@ -1,5 +1,9 @@
1
1
  import type { BuilderContextInterface, BuilderRenderState } from '../../context/types.js';
2
- import type { getUserAttributes } from '../track/helpers.js';
2
+ import { getUserAttributes } from '../track/helpers.js';
3
+ export type EvaluatorArgs = Omit<ExecutorArgs, 'builder' | 'event'> & {
4
+ event?: Event;
5
+ isExpression?: boolean;
6
+ };
3
7
  export type BuilderGlobals = {
4
8
  isEditing: boolean | undefined;
5
9
  isBrowser: boolean | undefined;
@@ -16,3 +20,5 @@ export type FunctionArguments = ReturnType<typeof getFunctionArguments>;
16
20
  export declare const getFunctionArguments: ({ builder, context, event, state }: Pick<ExecutorArgs, "context" | "builder" | "event"> & {
17
21
  state: BuilderRenderState;
18
22
  }) => [string, Event | BuilderRenderState | import("../../context/types.js").BuilderRenderContext | BuilderGlobals][];
23
+ export declare const getBuilderGlobals: () => BuilderGlobals;
24
+ export declare const parseCode: (code: string, { isExpression }: Pick<EvaluatorArgs, 'isExpression'>) => string;
@@ -5,11 +5,42 @@ export interface GetContentOptions {
5
5
  apiKey: string;
6
6
  /** Number of items to fetch. Default is 1 */
7
7
  limit?: number;
8
- /** User attributes to target on, such as { urlPath: '/foo', device: 'mobile', ...etc } */
8
+ /**
9
+ * Use to specify an offset for pagination of results. The default is 0.
10
+ */
11
+ offset?: number;
12
+ /**
13
+ * User attribute key value pairs to be used for targeting
14
+ * https://www.builder.io/c/docs/custom-targeting-attributes
15
+ *
16
+ * e.g.
17
+ * ```js
18
+ * userAttributes: {
19
+ * urlPath: '/',
20
+ * returnVisitor: true,
21
+ * device: 'mobile'
22
+ * }
23
+ * ```
24
+ */
9
25
  userAttributes?: (Record<string, string> & {
10
26
  urlPath?: string;
11
27
  }) | null;
12
- /** Custom query */
28
+ /**
29
+ * Mongodb style query of your data. E.g.:
30
+ *
31
+ * ```js
32
+ * query: {
33
+ * id: 'abc123',
34
+ * data: {
35
+ * myCustomField: { $gt: 20 },
36
+ * }
37
+ * }
38
+ * ```
39
+ *
40
+ * See more info on MongoDB's query operators and format.
41
+ *
42
+ * @see {@link https://docs.mongodb.com/manual/reference/operator/query/}
43
+ */
13
44
  query?: Record<string, any>;
14
45
  /**
15
46
  * Any other API options.
@@ -30,7 +61,7 @@ export interface GetContentOptions {
30
61
  */
31
62
  canTrack?: boolean;
32
63
  /**
33
- * Include references in the response. Defaults to `true`.
64
+ * Include content of references in the response. Defaults to `true`.
34
65
  * @deprecated use `enrich` instead
35
66
  */
36
67
  includeRefs?: boolean;
@@ -48,4 +79,64 @@ export interface GetContentOptions {
48
79
  * Defaults to `v3`.
49
80
  */
50
81
  apiVersion?: 'v2' | 'v3';
82
+ /**
83
+ * Only include these fields.
84
+ * Note: 'omit' takes precedence over 'fields'
85
+ *
86
+ * @example
87
+ * ```
88
+ * fields: 'id, name, data.customField'
89
+ * ```
90
+ */
91
+ fields?: string;
92
+ /**
93
+ * Omit only these fields.
94
+ * Note: 'omit' takes precedence over 'fields'
95
+ *
96
+ * @example
97
+ * ```
98
+ * omit: 'data.bigField,data.blocks'
99
+ * ```
100
+ */
101
+ omit?: string;
102
+ /**
103
+ * Seconds to cache content. Sets the max-age of the cache-control header
104
+ * response header.
105
+ *
106
+ * Use a higher value for better performance, lower for content that will change more frequently
107
+ *
108
+ * @see {@link https://www.builder.io/c/docs/query-api#__next:~:text=%26includeRefs%3Dtrue-,cacheSeconds,-No}
109
+ */
110
+ cacheSeconds?: number;
111
+ /**
112
+ * Builder.io uses stale-while-revalidate caching at the CDN level. This means we always serve
113
+ * from edge cache and update caches in the background for maximum possible performance. This also
114
+ * means that the more frequently content is requested, the more fresh it will be. The longest we
115
+ * will ever hold something in stale cache is 1 day by default, and you can set this to be shorter
116
+ * yourself as well. We suggest keeping this high unless you have content that must change rapidly
117
+ * and gets very little traffic.
118
+ *
119
+ * @see {@link https://www.fastly.com/blog/prevent-application-network-instability-serve-stale-content}
120
+ */
121
+ staleCacheSeconds?: number;
122
+ /**
123
+ * Property to order results by.
124
+ * Use 1 for ascending and -1 for descending.
125
+ *
126
+ * The key is what you're sorting on, so the following example sorts by createdDate
127
+ * and because the value is 1, the sort is ascending.
128
+ *
129
+ * @example
130
+ * ```
131
+ * createdDate: 1
132
+ * ```
133
+ */
134
+ sort?: {
135
+ [key: string]: 1 | -1;
136
+ };
137
+ /**
138
+ * Include content entries in a response that are still in
139
+ * draft mode and un-archived. Default is false.
140
+ */
141
+ includeUnpublished?: boolean;
51
142
  }
@@ -1,76 +0,0 @@
1
- "use strict";const Fe=require("lru-cache"),s=require("react/jsx-runtime"),Pe=require("react"),v=require("./USE_CLIENT_BUNDLE-9195e6a5.js");require("next/navigation");const I=e=>JSON.parse(JSON.stringify(e)),se={small:{min:320,default:321,max:640},medium:{min:641,default:642,max:991},large:{min:990,default:991,max:1200}},J=(e,t=se)=>`@media (max-width: ${t[e].max}px)`,ce=({small:e,medium:t})=>{const n=I(se);if(!e||!t)return n;const o=Math.floor(e/2);n.small={max:e,min:o,default:o+1};const i=n.small.max+1;n.medium={max:t,min:i,default:i+1};const r=n.medium.max+1;return n.large={max:2e3,min:r,default:r+1},n},C="rsc",T="[Builder.io]: ",k={log:(...e)=>console.log(T,...e),error:(...e)=>console.error(T,...e),warn:(...e)=>console.warn(T,...e),debug:(...e)=>console.debug(T,...e)};function S(){return typeof window<"u"&&typeof document<"u"}function Oe(){return S()&&window.self!==window.top}function A(){return Oe()&&window.location.search.indexOf("builder.frameEditing=")!==-1}const We=()=>{if(S()){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},Ne=()=>typeof navigator=="object"&&navigator.userAgent||"",le=()=>{const e=Ne(),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()||C==="reactNative"}},n=e.match(/Tablet|iPad/i),o=We();return{urlPath:o==null?void 0:o.pathname,host:(o==null?void 0:o.host)||(o==null?void 0:o.hostname),device:n?"tablet":t.any()?"mobile":"desktop"}},Le=({builder:e,context:t,event:n,state:o})=>Object.entries({state:o,Builder:e,builder:e,context:t,event:n}),Me=({code:e,builder:t,context:n,event:o,localState:i,rootSetState:r,rootState:a})=>{const l=Le({builder:t,context:n,event:o,state:_e(a,i,r)});return new Function(...l.map(([c])=>c),e)(...l.map(([,c])=>c))};function _e(e,t,n){if(e===t)throw new Error("rootState === localState");return new Proxy(e,{get:(o,i)=>t&&i in t?t[i]:e[i],set:(o,i,r)=>{if(t&&i in t)throw new Error("Writing to local state is not allowed as it is read-only.");return e[i]=r,n==null||n(e),!0}})}function B({code:e,context:t,localState:n,rootState:o,rootSetState:i,event:r,isExpression:a=!0}){if(e===""){k.warn("Skipping evaluation of empty code block.");return}const l={isEditing:A(),isBrowser:S(),isServer:!S(),getUserAttributes:()=>le()},f={code:a&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e,builder:l,context:t,event:r,rootSetState:i,rootState:o,localState:n};try{return Me(f)}catch(h){k.error("Failed code evaluation: "+h.message,{code:e});return}}const Ue=(e,t,n)=>{if(Object(e)!==e)return e;const o=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);return o.slice(0,-1).reduce((i,r,a)=>Object(i[r])===i[r]?i[r]:i[r]=Math.abs(Number(o[a+1]))>>0===+o[a+1]?[]:{},e)[o[o.length-1]]=n,e};const Ke=({block:e,context:t,localState:n,rootState:o,rootSetState:i})=>{if(!e.bindings)return e;const r=I(e),a={...r,properties:{...r.properties},actions:{...r.actions}};for(const l in e.bindings){const c=e.bindings[l],u=B({code:c,localState:n,rootState:o,rootSetState:i,context:t});Ue(a,l,u)}return a};function R({block:e,context:t,shouldEvaluateBindings:n,localState:o,rootState:i,rootSetState:r}){const a=e;return n?Ke({block:a,localState:o,rootState:i,rootSetState:r,context:t}):a}const He=e=>e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase(),w=e=>e!=null,ue=e=>Object.entries(e).map(([n,o])=>{if(typeof o=="string")return`${He(n)}: ${o};`}).filter(w),De=e=>ue(e).join(`
2
- `),O=({mediaQuery:e,className:t,styles:n})=>{const o=`.${t} {
3
- ${De(n)}
4
- }`;return e?`${e} {
5
- ${o}
6
- }`:o};function V(e){return s.jsx("style",{dangerouslySetInnerHTML:{__html:e.styles},id:e.id})}function _(e){const t=function(){const i=R({block:e.block,localState:e.context.localState,rootState:e.context.rootState,rootSetState:e.context.rootSetState,context:e.context.context,shouldEvaluateBindings:!0});return w(i.hide)?!i.hide:w(i.show)?i.show:!0},n=function(){var d;const i=R({block:e.block,localState:e.context.localState,rootState:e.context.rootState,rootSetState:e.context.rootSetState,context:e.context.context,shouldEvaluateBindings:!0}),r=i.responsiveStyles,a=e.context.content,l=ce(((d=a==null?void 0:a.meta)==null?void 0:d.breakpoints)||{}),c=r==null?void 0:r.large,u=r==null?void 0:r.medium,f=r==null?void 0:r.small,h=i.id;if(!h)return"";const p=c?O({className:h,styles:c}):"",m=u?O({className:h,styles:u,mediaQuery:J("medium",l)}):"",g=f?O({className:h,styles:f,mediaQuery:J("small",l)}):"";return[p,m,g].join(" ")};return s.jsx(s.Fragment,{children:n()&&t()?s.jsx(s.Fragment,{children:s.jsx(V,{styles:n()})}):null})}function ze(e){var t;return{...(t=e.component)==null?void 0:t.options,...e.options,builderBlock:e}}const qe=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],W=e=>typeof e=="string"&&qe.includes(e.toLowerCase()),Ge=({block:e,context:t,registeredComponents:n})=>{var r;const o=(r=R({block:e,localState:t.localState,rootState:t.rootState,rootSetState:t.rootSetState,context:t.context,shouldEvaluateBindings:!1}).component)==null?void 0:r.name;if(!o)return null;const i=n[o];if(i)return i;console.warn(`
7
- Could not find a registered component named "${o}".
8
- If you registered it, is the file that registered it imported by the file that needs to render it?`)},Je=({block:e,context:t})=>{const{repeat:n,...o}=e;if(!(n!=null&&n.collection))return;const i=B({code:n.collection,localState:t.localState,rootState:t.rootState,rootSetState:t.rootSetState,context:t.context});if(!Array.isArray(i))return;const r=n.collection.split(".").pop(),a=n.itemName||(r?r+"Item":"item");return i.map((c,u)=>({context:{...t,localState:{...t.localState,$index:u,$item:c,[a]:c,[`$${a}Index`]:u}},block:o}))};function Ye(e){const t=e.repeatContext;return s.jsx($,{block:e.block,context:t,registeredComponents:e.registeredComponents})}function Xe(e){return e.charAt(0).toUpperCase()+e.slice(1)}const Qe=e=>`on${Xe(e)}`,Ze=(e,t)=>n=>B({code:e,context:t.context,localState:t.localState,rootState:t.rootState,rootSetState:t.rootSetState,event:n,isExpression:!1});function et(e){const t={},n=e.block.actions??{};for(const o in n){if(!n.hasOwnProperty(o))continue;const i=n[o];let r=Qe(o);if(e.stripPrefix)switch(C){case"vue2":case"vue3":r=r.replace("v-on:","");break;case"svelte":r=r.replace("on:","");break}t[r]=Ze(i,e)}return t}function tt(e){return e.className=e.class,delete e.class,e}const nt=e=>({href:e.href});function de({block:e,context:t}){var o;const n={...nt(e),...e.properties,"builder-id":e.id,style:e.style?ot(e.style):void 0,class:[e.id,"builder-block",e.class,(o=e.properties)==null?void 0:o.class].filter(Boolean).join(" ")};return tt(n)}function ot(e){switch(C){case"svelte":case"vue2":case"vue3":case"solid":return ue(e).join(" ");case"qwik":case"reactNative":case"react":case"rsc":return e}}const it=({componentOptions:e,builderBlock:t,context:n,componentRef:o,includeBlockProps:i,isInteractive:r,contextValue:a})=>r?{Wrapper:o,block:t,context:n,wrapperProps:e}:{...e,...i?{attributes:de({block:t,context:a})}:{}};function Y(e){var n,o;const t=e.isInteractive?v.InteractiveElement:e.componentRef;return s.jsx(s.Fragment,{children:e.componentRef?s.jsx(s.Fragment,{children:s.jsxs(t,{...it({componentOptions:e.componentOptions,builderBlock:e.builderBlock,context:e.context,componentRef:e.componentRef,includeBlockProps:e.includeBlockProps,isInteractive:e.isInteractive,contextValue:e.context}),children:[(n=e.blockChildren)==null?void 0:n.map(i=>s.jsx($,{block:i,context:e.context,registeredComponents:e.registeredComponents},"block-"+i.id)),(o=e.blockChildren)==null?void 0:o.map(i=>s.jsx(_,{block:i,context:e.context},"block-style-"+i.id))]})}):null})}function $(e){var u,f,h,p;const t=function(){return Ge({block:e.block,context:e.context,registeredComponents:e.registeredComponents})},n=function(){return Je({block:e.block,context:e.context})},o=function(){return n()?e.block:R({block:e.block,localState:e.context.localState,rootState:e.context.rootState,rootSetState:e.context.rootSetState,context:e.context.context,shouldEvaluateBindings:!0})},i=function(){return e.block.tagName||"div"},r=function(){return"hide"in o()?!o().hide:"show"in o()?o().show:!0},a=function(){var d;return!((d=t())!=null&&d.component)&&!n()?o().children??[]:[]},l=function(){var g,d,b,x,y;return{blockChildren:o().children??[],componentRef:(g=t())==null?void 0:g.component,componentOptions:{...ze(o()),builderContext:e.context,...((d=t())==null?void 0:d.name)==="Symbol"||((b=t())==null?void 0:b.name)==="Columns"?{builderComponents:e.registeredComponents}:{}},context:c,registeredComponents:e.registeredComponents,builderBlock:o(),includeBlockProps:((x=t())==null?void 0:x.noWrap)===!0,isInteractive:!((y=t())!=null&&y.isRSC)}},c=e.context;return s.jsx(s.Fragment,{children:r()?s.jsx(s.Fragment,{children:(u=t())!=null&&u.noWrap?s.jsx(s.Fragment,{children:s.jsx(Y,{...l()})}):s.jsxs(s.Fragment,{children:[W(i())?s.jsx(s.Fragment,{children:s.jsx(v.BlockWrapper,{Wrapper:i(),block:o(),context:e.context,hasChildren:!1})}):null,!W(i())&&n()?s.jsx(s.Fragment,{children:(f=n())==null?void 0:f.map((m,g)=>s.jsx(Ye,{repeatContext:m.context,block:m.block,registeredComponents:e.registeredComponents},g))}):null,!W(i())&&!n()?s.jsx(s.Fragment,{children:s.jsxs(v.BlockWrapper,{Wrapper:i(),block:o(),context:e.context,hasChildren:!0,children:[s.jsx(Y,{...l()}),(h=a())==null?void 0:h.map(m=>s.jsx($,{block:m,context:c,registeredComponents:e.registeredComponents},"block-"+m.id)),(p=a())==null?void 0:p.map(m=>s.jsx(_,{block:m,context:c},"block-style-"+m.id))]})}):null]})}):null})}function F(e){var t,n;return s.jsxs(v.BlocksWrapper,{blocks:e.blocks,parent:e.parent,path:e.path,styleProp:e.styleProp,children:[e.blocks?s.jsx(s.Fragment,{children:(t=e.blocks)==null?void 0:t.map(o=>s.jsx($,{block:o,context:e.context,registeredComponents:e.registeredComponents},"render-block-"+o.id))}):null,e.blocks?s.jsx(s.Fragment,{children:(n=e.blocks)==null?void 0:n.map(o=>s.jsx(_,{block:o,context:e.context},"block-style-"+o.id))}):null]})}function me(e){var m;const t=typeof e.space=="number"?e.space||0:20,n=e.columns||[],o=e.stackColumnsAt||"tablet",i=function(d){var b;return((b=n[d])==null?void 0:b.width)||100/n.length},r=function(d){const b=t*(n.length-1)/n.length;return`calc(${i(d)}% - ${b}px)`},a=function({stackedStyle:d,desktopStyle:b}){return o==="tablet"?d:b},l=function({stackedStyle:d,desktopStyle:b}){return o==="never"?b:d},c=e.stackColumnsAt==="never"?"row":e.reverseColumnsWhenStacked?"column-reverse":"column",u=function(){return{"--flex-dir":c,"--flex-dir-tablet":a({stackedStyle:c,desktopStyle:"row"})}},f=function(d){const b=d===0?0:t,x=r(d),y=`${b}px`,q="100%",G=0;return{width:x,["marginLeft"]:y,"--column-width-mobile":l({stackedStyle:q,desktopStyle:x}),"--column-margin-left-mobile":l({stackedStyle:G,desktopStyle:y}),"--column-width-tablet":a({stackedStyle:q,desktopStyle:x}),"--column-margin-left-tablet":a({stackedStyle:G,desktopStyle:y})}},h=function(d){var x,y;return ce(((y=(x=e.builderContext.content)==null?void 0:x.meta)==null?void 0:y.breakpoints)||{})[d].max},p=function(){return`
9
- @media (max-width: ${h("medium")}px) {
10
- .${e.builderBlock.id}-breakpoints {
11
- flex-direction: var(--flex-dir-tablet);
12
- align-items: stretch;
13
- }
14
-
15
- .${e.builderBlock.id}-breakpoints > .builder-column {
16
- width: var(--column-width-tablet) !important;
17
- margin-left: var(--column-margin-left-tablet) !important;
18
- }
19
- }
20
-
21
- @media (max-width: ${h("small")}px) {
22
- .${e.builderBlock.id}-breakpoints {
23
- flex-direction: var(--flex-dir);
24
- align-items: stretch;
25
- }
26
-
27
- .${e.builderBlock.id}-breakpoints > .builder-column {
28
- width: var(--column-width-mobile) !important;
29
- margin-left: var(--column-margin-left-mobile) !important;
30
- }
31
- },
32
- `};return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:`builder-columns ${e.builderBlock.id}-breakpoints div-666689ca`,style:u(),children:[s.jsx(s.Fragment,{children:s.jsx(V,{styles:p()})}),(m=e.columns)==null?void 0:m.map((g,d)=>Pe.createElement("div",{className:"builder-column div-666689ca-2",style:f(d),key:d},s.jsx(F,{path:`component.options.columns.${d}.blocks`,parent:e.builderBlock.id,styleProp:{flexGrow:"1"},context:e.builderContext,registeredComponents:e.builderComponents,blocks:g.blocks})))]}),s.jsx("style",{children:`.div-666689ca {
33
- display: flex;
34
- line-height: normal;
35
- }.div-666689ca-2 {
36
- display: flex;
37
- flex-direction: column;
38
- align-items: stretch;
39
- }`})]})}function X(e){return e.replace(/http(s)?:/,"")}function rt(e="",t,n){const o=new RegExp("([?&])"+t+"=.*?(&|$)","i"),i=e.indexOf("?")!==-1?"&":"?";return e.match(o)?e.replace(o,"$1"+t+"="+encodeURIComponent(n)+"$2"):e+i+t+"="+encodeURIComponent(n)}function at(e,t){if(!e||!(e!=null&&e.match(/cdn\.shopify\.com/))||!t)return e;if(t==="master")return X(e);const n=e.match(/(_\d+x(\d+)?)?(\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?)/i);if(n){const o=e.split(n[0]),i=n[3],r=t.match("x")?t:`${t}x`;return X(`${o[0]}_${r}${i}`)}return null}function st(e){if(!e)return e;const t=[100,200,400,800,1200,1600,2e3];if(e.match(/builder\.io/)){let n=e;const o=Number(e.split("?width=")[1]);return isNaN(o)||(n=`${n} ${o}w`),t.filter(i=>i!==o).map(i=>`${rt(e,"width",i)} ${i}w`).concat([n]).join(", ")}return e.match(/cdn\.shopify\.com/)?t.map(n=>[at(e,`${n}x${n}`),n]).filter(([n])=>!!n).map(([n,o])=>`${n} ${o}w`).concat([e]).join(", "):e}const E=e=>Object.values((e==null?void 0:e.variations)||{}).map(t=>({...t,testVariationId:t.id,id:e==null?void 0:e.id})),ct=({canTrack:e,content:t})=>!(!(E(t).length>0)||!e||S());function lt(e,t,n){var a;function o(){function l(g,d,b){let x="";if(b){const y=new Date;y.setTime(y.getTime()+b*24*60*60*1e3),x="; expires="+y.toUTCString()}document.cookie=g+"="+(d||"")+x+"; path=/; Secure; SameSite=None"}function c(g){const d=g+"=",b=document.cookie.split(";");for(let x=0;x<b.length;x++){let y=b[x];for(;y.charAt(0)===" ";)y=y.substring(1,y.length);if(y.indexOf(d)===0)return y.substring(d.length,y.length)}return null}const u=`builder.tests.${e}`,f=c(u),h=t.map(g=>g.id).concat(e);if(f&&h.includes(f))return f;let p=0;const m=Math.random();for(let g=0;g<t.length;g++){const d=t[g],b=d.testRatio;if(p+=b,m<p)return l(u,d.id),d.id}return l(u,e),e}const i=o(),r=(a=document.currentScript)==null?void 0:a.previousElementSibling;if(n){r.remove();const l=document.currentScript;l==null||l.remove()}else{const l=t.concat({id:e}).filter(c=>c.id!==i).map(c=>`.variant-${c.id} { display: none; }
40
- `).join("");r.innerHTML=l}}function ut(e,t,n){var c;if(!navigator.cookieEnabled)return;function o(u){const f=u+"=",h=document.cookie.split(";");for(let p=0;p<h.length;p++){let m=h[p];for(;m.charAt(0)===" ";)m=m.substring(1,m.length);if(m.indexOf(f)===0)return m.substring(f.length,m.length)}return null}const i=`builder.tests.${t}`,r=o(i),a=(c=document.currentScript)==null?void 0:c.parentElement,l=e===t;if(r===e){if(l)return;a==null||a.removeAttribute("hidden"),a==null||a.removeAttribute("aria-hidden")}else{l&&(n?a==null||a.remove():(a==null||a.setAttribute("hidden","true"),a==null||a.setAttribute("aria-hidden","true")));return}}const dt=e=>e==="react"||e==="reactNative",fe=dt(C),ge="builderIoAbTest",he="builderIoRenderContent",mt=()=>{const e=lt.toString().replace(/\s+/g," "),t=ut.toString().replace(/\s+/g," ");return`
41
- window.${ge} = ${e}
42
- window.${he} = ${t}
43
- `},ft=(e,t)=>`
44
- window.${ge}("${t}",${JSON.stringify(e)}, ${fe})`,gt=({contentId:e,variationId:t})=>`
45
- window.${he}("${t}", "${e}", ${fe})`,ht={name:"Core:Button",image:"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F81a15681c3e74df09677dfc57a615b13",defaultStyles:{appearance:"none",paddingTop:"15px",paddingBottom:"15px",paddingLeft:"25px",paddingRight:"25px",backgroundColor:"#000000",color:"white",borderRadius:"4px",textAlign:"center",cursor:"pointer"},inputs:[{name:"text",type:"text",defaultValue:"Click me!",bubble:!0},{name:"link",type:"url",bubble:!0},{name:"openLinkInNewTab",type:"boolean",defaultValue:!1,friendlyName:"Open link in new tab"}],static:!0,noWrap:!0},pt={name:"Columns",isRSC:!0,inputs:[{name:"columns",type:"array",broadcast:!0,subFields:[{name:"blocks",type:"array",hideFromUI:!0,defaultValue:[{"@type":"@builder.io/sdk:Element",responsiveStyles:{large:{display:"flex",flexDirection:"column",alignItems:"stretch",flexShrink:"0",position:"relative",marginTop:"30px",textAlign:"center",lineHeight:"normal",height:"auto",minHeight:"20px",minWidth:"20px",overflow:"hidden"}},component:{name:"Image",options:{image:"https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d",backgroundPosition:"center",backgroundSize:"cover",aspectRatio:.7004048582995948}}},{"@type":"@builder.io/sdk:Element",responsiveStyles:{large:{display:"flex",flexDirection:"column",alignItems:"stretch",flexShrink:"0",position:"relative",marginTop:"30px",textAlign:"center",lineHeight:"normal",height:"auto"}},component:{name:"Text",options:{text:"<p>Enter some text...</p>"}}}]},{name:"width",type:"number",hideFromUI:!0,helperText:"Width %, e.g. set to 50 to fill half of the space"},{name:"link",type:"url",helperText:"Optionally set a url that clicking this column will link to"}],defaultValue:[{blocks:[{"@type":"@builder.io/sdk:Element",responsiveStyles:{large:{display:"flex",flexDirection:"column",alignItems:"stretch",flexShrink:"0",position:"relative",marginTop:"30px",textAlign:"center",lineHeight:"normal",height:"auto",minHeight:"20px",minWidth:"20px",overflow:"hidden"}},component:{name:"Image",options:{image:"https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d",backgroundPosition:"center",backgroundSize:"cover",aspectRatio:.7004048582995948}}},{"@type":"@builder.io/sdk:Element",responsiveStyles:{large:{display:"flex",flexDirection:"column",alignItems:"stretch",flexShrink:"0",position:"relative",marginTop:"30px",textAlign:"center",lineHeight:"normal",height:"auto"}},component:{name:"Text",options:{text:"<p>Enter some text...</p>"}}}]},{blocks:[{"@type":"@builder.io/sdk:Element",responsiveStyles:{large:{display:"flex",flexDirection:"column",alignItems:"stretch",flexShrink:"0",position:"relative",marginTop:"30px",textAlign:"center",lineHeight:"normal",height:"auto",minHeight:"20px",minWidth:"20px",overflow:"hidden"}},component:{name:"Image",options:{image:"https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d",backgroundPosition:"center",backgroundSize:"cover",aspectRatio:.7004048582995948}}},{"@type":"@builder.io/sdk:Element",responsiveStyles:{large:{display:"flex",flexDirection:"column",alignItems:"stretch",flexShrink:"0",position:"relative",marginTop:"30px",textAlign:"center",lineHeight:"normal",height:"auto"}},component:{name:"Text",options:{text:"<p>Enter some text...</p>"}}}]}],onChange:e=>{function t(){n.forEach(o=>{o.delete("width")})}const n=e.get("columns");Array.isArray(n)&&n.find(i=>i.get("width"))&&(n.find(r=>!r.get("width"))||n.reduce((l,c)=>l+c.get("width"),0)!==100)&&t()}},{name:"space",type:"number",defaultValue:20,helperText:"Size of gap between columns",advanced:!0},{name:"stackColumnsAt",type:"string",defaultValue:"tablet",helperText:"Convert horizontal columns to vertical at what device size",enum:["tablet","mobile","never"],advanced:!0},{name:"reverseColumnsWhenStacked",type:"boolean",defaultValue:!1,helperText:"When stacking columns for mobile devices, reverse the ordering",advanced:!0}]},bt={name:"Fragment",static:!0,hidden:!0,canHaveChildren:!0,noWrap:!0},yt={name:"Image",static:!0,image:"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4",defaultStyles:{position:"relative",minHeight:"20px",minWidth:"20px",overflow:"hidden"},canHaveChildren:!0,inputs:[{name:"image",type:"file",bubble:!0,allowedFileTypes:["jpeg","jpg","png","svg"],required:!0,defaultValue:"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F72c80f114dc149019051b6852a9e3b7a",onChange:e=>{e.delete("srcset"),e.delete("noWebp");function n(a,l=6e4){return new Promise((c,u)=>{const f=document.createElement("img");let h=!1;f.onload=()=>{h=!0,c(f)},f.addEventListener("error",p=>{console.warn("Image load failed",p.error),u(p.error)}),f.src=a,setTimeout(()=>{h||u(new Error("Image load timed out"))},l)})}function o(a){return Math.round(a*1e3)/1e3}const i=e.get("image"),r=e.get("aspectRatio");if(fetch(i).then(a=>a.blob()).then(a=>{a.type.includes("svg")&&e.set("noWebp",!0)}),i&&(!r||r===.7041))return n(i).then(a=>{const l=e.get("aspectRatio");e.get("image")===i&&(!l||l===.7041)&&a.width&&a.height&&(e.set("aspectRatio",o(a.height/a.width)),e.set("height",a.height),e.set("width",a.width))})}},{name:"backgroundSize",type:"text",defaultValue:"cover",enum:[{label:"contain",value:"contain",helperText:"The image should never get cropped"},{label:"cover",value:"cover",helperText:"The image should fill it's box, cropping when needed"}]},{name:"backgroundPosition",type:"text",defaultValue:"center",enum:["center","top","left","right","bottom","top left","top right","bottom left","bottom right"]},{name:"altText",type:"string",helperText:"Text to display when the user has images off"},{name:"height",type:"number",hideFromUI:!0},{name:"width",type:"number",hideFromUI:!0},{name:"sizes",type:"string",hideFromUI:!0},{name:"srcset",type:"string",hideFromUI:!0},{name:"lazy",type:"boolean",defaultValue:!0,hideFromUI:!0},{name:"fitContent",type:"boolean",helperText:"When child blocks are provided, fit to them instead of using the image's aspect ratio",defaultValue:!0},{name:"aspectRatio",type:"number",helperText:"This is the ratio of height/width, e.g. set to 1.5 for a 300px wide and 200px tall photo. Set to 0 to not force the image to maintain it's aspect ratio",advanced:!0,defaultValue:.7041}]},xt={name:"Core:Section",static:!0,image:"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a",inputs:[{name:"maxWidth",type:"number",defaultValue:1200},{name:"lazyLoad",type:"boolean",defaultValue:!1,advanced:!0,description:"Only render this section when in view"}],defaultStyles:{paddingLeft:"20px",paddingRight:"20px",paddingTop:"50px",paddingBottom:"50px",marginTop:"0px",width:"100vw",marginLeft:"calc(50% - 50vw)"},canHaveChildren:!0,defaultChildren:[{"@type":"@builder.io/sdk:Element",responsiveStyles:{large:{textAlign:"center"}},component:{name:"Text",options:{text:"<p><b>I am a section! My content keeps from getting too wide, so that it's easy to read even on big screens.</b></p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur</p>"}}}]},St={name:"Symbol",noWrap:!0,static:!0,isRSC:!0,inputs:[{name:"symbol",type:"uiSymbol"},{name:"dataOnly",helperText:"Make this a data symbol that doesn't display any UI",type:"boolean",defaultValue:!1,advanced:!0,hideFromUI:!0},{name:"inheritState",helperText:"Inherit the parent component state and data",type:"boolean",defaultValue:!1,advanced:!0},{name:"renderToLiquid",helperText:"Render this symbols contents to liquid. Turn off to fetch with javascript and use custom targeting",type:"boolean",defaultValue:!1,advanced:!0,hideFromUI:!0},{name:"useChildren",hideFromUI:!0,type:"boolean"}]},vt={name:"Text",static:!0,isRSC:!0,image:"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-text_fields-24px%20(1).svg?alt=media&token=12177b73-0ee3-42ca-98c6-0dd003de1929",inputs:[{name:"text",type:"html",required:!0,autoFocus:!0,bubble:!0,defaultValue:"Enter some text..."}],defaultStyles:{lineHeight:"normal",height:"auto",textAlign:"center"}};function pe(e){var t;return s.jsx("div",{className:"builder-text",dangerouslySetInnerHTML:{__html:((t=e.text)==null?void 0:t.toString())||""},style:{outline:"none"}})}const kt={name:"Video",canHaveChildren:!0,defaultStyles:{minHeight:"20px",minWidth:"20px"},image:"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-videocam-24px%20(1).svg?alt=media&token=49a84e4a-b20e-4977-a650-047f986874bb",inputs:[{name:"video",type:"file",allowedFileTypes:["mp4"],bubble:!0,defaultValue:"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/assets%2FKQlEmWDxA0coC3PK6UvkrjwkIGI2%2F28cb070609f546cdbe5efa20e931aa4b?alt=media&token=912e9551-7a7c-4dfb-86b6-3da1537d1a7f",required:!0},{name:"posterImage",type:"file",allowedFileTypes:["jpeg","png"],helperText:"Image to show before the video plays"},{name:"autoPlay",type:"boolean",defaultValue:!0},{name:"controls",type:"boolean",defaultValue:!1},{name:"muted",type:"boolean",defaultValue:!0},{name:"loop",type:"boolean",defaultValue:!0},{name:"playsInline",type:"boolean",defaultValue:!0},{name:"fit",type:"text",defaultValue:"cover",enum:["contain","cover","fill","auto"]},{name:"preload",type:"text",defaultValue:"metadata",enum:["auto","metadata","none"]},{name:"fitContent",type:"boolean",helperText:"When child blocks are provided, fit to them instead of using the aspect ratio",defaultValue:!0,advanced:!0},{name:"position",type:"text",defaultValue:"center",enum:["center","top","left","right","bottom","top left","top right","bottom left","bottom right"]},{name:"height",type:"number",advanced:!0},{name:"width",type:"number",advanced:!0},{name:"aspectRatio",type:"number",advanced:!0,defaultValue:.7004048582995948},{name:"lazyLoad",type:"boolean",helperText:'Load this video "lazily" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',defaultValue:!0,advanced:!0}]},wt={name:"Embed",static:!0,inputs:[{name:"url",type:"url",required:!0,defaultValue:"",helperText:"e.g. enter a youtube url, google map, etc",onChange:e=>{const t=e.get("url");if(t)return e.set("content","Loading..."),fetch(`https://iframe.ly/api/iframely?url=${t}&api_key=ae0e60e78201a3f2b0de4b`).then(o=>o.json()).then(o=>{e.get("url")===t&&(o.html?e.set("content",o.html):e.set("content","Invalid url, please try another"))}).catch(o=>{e.set("content","There was an error embedding this URL, please try again or another URL")});e.delete("content")}},{name:"content",type:"html",defaultValue:'<div style="padding: 20px; text-align: center">(Choose an embed URL)<div>',hideFromUI:!0}]},Ct=["text/javascript","application/javascript","application/ecmascript"],It=e=>Ct.includes(e.type),Tt={name:"Raw:Img",hideFromInsertMenu:!0,image:"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4",inputs:[{name:"image",bubble:!0,type:"file",allowedFileTypes:["jpeg","jpg","png","svg","gif","webp"],required:!0}],noWrap:!0,static:!0},Et={name:"Custom Code",static:!0,requiredPermissions:["editCode"],inputs:[{name:"code",type:"html",required:!0,defaultValue:"<p>Hello there, I am custom HTML code!</p>",code:!0},{name:"replaceNodes",type:"boolean",helperText:"Preserve server rendered dom nodes",advanced:!0},{name:"scriptsClientOnly",type:"boolean",defaultValue:!1,helperText:"Only print and run scripts on the client. Important when scripts influence DOM that could be replaced when client loads",advanced:!0}]},Q=()=>[{component:v.Button,...ht},{component:me,...pt},{component:v.CustomCode,...Et},{component:v.Embed,...wt},{component:v.FragmentComponent,...bt},{component:v.Image,...yt},{component:v.ImgComponent,...Tt},{component:v.SectionComponent,...xt},{component:$e,...St},{component:pe,...vt},{component:v.Video,...kt}],Z=[],Rt=e=>({type:"builder.registerComponent",data:N(e)}),jt=e=>{const t=e.toString().trim();return`return (${!t.startsWith("function")&&!t.startsWith("(")?"function ":""}${t}).apply(this, arguments)`},At=e=>typeof e=="function"?jt(e):I(e),N=({inputs:e,...t})=>({...I(t),inputs:e==null?void 0:e.map(n=>Object.entries(n).reduce((o,[i,r])=>({...o,[i]:At(r)}),{}))}),Bt=e=>{var r;const t=e.family+(e.kind&&!e.kind.includes("#")?", "+e.kind:""),n=t.split(",")[0],o=e.fileUrl??((r=e==null?void 0:e.files)==null?void 0:r.regular);let i="";if(o&&t&&n&&(i+=`
46
- @font-face {
47
- font-family: "${t}";
48
- src: local("${n}"), url('${o}') format('woff2');
49
- font-display: fallback;
50
- font-weight: 400;
51
- }
52
- `.trim()),e.files)for(const a in e.files){if(!(String(Number(a))===a))continue;const c=e.files[a];c&&c!==o&&(i+=`
53
- @font-face {
54
- font-family: "${t}";
55
- src: url('${c}') format('woff2');
56
- font-display: fallback;
57
- font-weight: ${a};
58
- }
59
- `.trim())}return i},Vt=({customFonts:e})=>{var t;return((t=e==null?void 0:e.map(n=>Bt(n)))==null?void 0:t.join(" "))||""},$t=({cssCode:e,contentId:t})=>e?t?(e==null?void 0:e.replace(/&/g,`div[builder-content-id="${t}"]`))||"":e:"";function Ft(e){const t=`
60
- ${$t({cssCode:e.cssCode,contentId:e.contentId})}
61
- ${Vt({customFonts:e.customFonts})}
62
-
63
- .builder-text > p:first-of-type, .builder-text > .builder-paragraph:first-of-type {
64
- margin: 0;
65
- }
66
- .builder-text > p, .builder-text > .builder-paragraph {
67
- color: inherit;
68
- line-height: inherit;
69
- letter-spacing: inherit;
70
- font-weight: inherit;
71
- font-size: inherit;
72
- text-align: inherit;
73
- font-family: inherit;
74
- }
75
- `.trim();return s.jsx(V,{styles:t})}const Pt=({content:e,data:t,locale:n})=>{var r,a,l;const o={};(a=(r=e==null?void 0:e.data)==null?void 0:r.inputs)==null||a.forEach(c=>{var u;c.name&&c.defaultValue!==void 0&&((u=e==null?void 0:e.data)!=null&&u.state)&&e.data.state[c.name]===void 0&&(o[c.name]=c.defaultValue)});const i={...(l=e==null?void 0:e.data)==null?void 0:l.state,...t,...n?{locale:n}:{}};return{...o,...i}},Ot=({content:e,data:t})=>e?{...e,data:{...e==null?void 0:e.data,...t},meta:e==null?void 0:e.meta}:void 0;function Wt(){return typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:globalThis}function Nt(){const e=Wt().fetch;if(typeof e>"u")throw console.warn(`Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project.
76
- 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 be=Nt(),Lt=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},ye=({name:e,canTrack:t})=>{var n;try{return t?(n=document.cookie.split("; ").find(o=>o.startsWith(`${e}=`)))==null?void 0:n.split("=")[1]:void 0}catch(o){k.warn("[COOKIE] GET error: ",(o==null?void 0:o.message)||o);return}},xe=async e=>ye(e),Mt=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(w).join("; "),_t=[["secure",""],["SameSite","None"]],Ut=({name:e,value:t,expires:n})=>{const i=(S()?location.protocol==="https:":!0)?_t:[[]],r=n?[["expires",n.toUTCString()]]:[[]],a=[[e,t],...r,["path","/"],["domain",Lt(window.location.hostname)],...i];return Mt(a)},Se=async({name:e,value:t,expires:n,canTrack:o})=>{try{if(!o)return;const i=Ut({name:e,value:t,expires:n});document.cookie=i}catch(i){k.warn("[COOKIE] SET error: ",(i==null?void 0:i.message)||i)}};function Kt(){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 ve(){return Kt().replace(/-/g,"")}const ke="builderSessionId",Ht=async({canTrack:e})=>{if(!e)return;const t=await xe({name:ke,canTrack:e});if(w(t))return t;{const n=Dt();return zt({id:n,canTrack:e}),n}},Dt=()=>ve(),zt=({id:e,canTrack:t})=>Se({name:ke,value:e,canTrack:t}),we=()=>S()&&typeof localStorage<"u"?localStorage:void 0,qt=({key:e,canTrack:t})=>{var n;try{return t?(n=we())==null?void 0:n.getItem(e):void 0}catch(o){console.debug("[LocalStorage] GET error: ",o);return}},Gt=({key:e,canTrack:t,value:n})=>{var o;try{t&&((o=we())==null||o.setItem(e,n))}catch(i){console.debug("[LocalStorage] SET error: ",i)}},Ce="builderVisitorId",Jt=({canTrack:e})=>{if(!e)return;const t=qt({key:Ce,canTrack:e});if(w(t))return t;{const n=Yt();return Xt({id:n,canTrack:e}),n}},Yt=()=>ve(),Xt=({id:e,canTrack:t})=>Gt({key:Ce,value:e,canTrack:t}),Qt=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await Ht({canTrack:e}),n=Jt({canTrack:e});return{sessionId:t,visitorId:n}},Zt=async({type:e,canTrack:t,apiKey:n,metadata:o,...i})=>({type:e,data:{...i,metadata:{url:location.href,...o},...await Qt({canTrack:t}),userAttributes:le(),ownerId:n}});async function Ie(e){if(!e.apiKey){k.error("Missing API key for track call. Please provide your API key.");return}if(e.canTrack&&!A()&&(S()||C==="reactNative"))return fetch("https://cdn.builder.io/api/v1/track",{method:"POST",body:JSON.stringify({events:[await Zt(e)]}),headers:{"content-type":"application/json"},mode:"cors"}).catch(t=>{console.error("Failed to track: ",t)})}const en=e=>Ie({...e,canTrack:!0}),tn="0.7.1-0",ee={};function Te(e,t){let n=ee[e];if(n||(n=ee[e]=[]),n.push(t),S()){const o={type:"builder.register",data:{type:e,info:t}};try{parent.postMessage(o,"*"),parent!==window&&window.postMessage(o,"*")}catch(i){console.debug("Could not postmessage",i)}}}const nn=()=>{Te("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 te=!1;const on=(e={})=>{var t,n;te||(te=!0,S()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:C,version:tn,supportsPatchUpdates:!1,supportsAddBlockScoping:!0,supportsCustomBreakpoints:!0}},"*"),(n=window.parent)==null||n.postMessage({type:"builder.updateContent",data:{options:e}},"*"),window.addEventListener("message",({data:o})=>{var i,r;if(o!=null&&o.type)switch(o.type){case"builder.evaluate":{const a=o.data.text,l=o.data.arguments||[],c=o.data.id,u=new Function(a);let f,h=null;try{f=u.apply(null,l)}catch(p){h=p}h?(i=window.parent)==null||i.postMessage({type:"builder.evaluateError",data:{id:c,error:h.message}},"*"):f&&typeof f.then=="function"?f.then(p=>{var m;(m=window.parent)==null||m.postMessage({type:"builder.evaluateResult",data:{id:c,result:p}},"*")}).catch(console.error):(r=window.parent)==null||r.postMessage({type:"builder.evaluateResult",data:{result:f,id:c}},"*");break}}})))};function ne(e){return Math.round(e*1e3)/1e3}const rn=(e,t,n=!0)=>{if(!(e instanceof HTMLElement))return null;let o=n?e:e.parentElement;do{if(!o)return null;if(t(o))return o}while(o=o.parentElement);return null},an=e=>rn(e,t=>{const n=t.getAttribute("builder-id")||t.id;return(n==null?void 0:n.indexOf("builder-"))===0}),oe=({event:e,target:t})=>{const n=t.getBoundingClientRect(),o=e.clientX-n.left,i=e.clientY-n.top,r=ne(o/n.width),a=ne(i/n.height);return{x:r,y:a}},sn=e=>{const t=e.target,n=t&&an(t),o=(n==null?void 0:n.getAttribute("builder-id"))||(n==null?void 0:n.id);return{targetBuilderElement:o||void 0,metadata:{targetOffset:t?oe({event:e,target:t}):void 0,builderTargetOffset:n?oe({event:e,target:n}):void 0,builderElementIndex:n&&o?[].slice.call(document.getElementsByClassName(o)).indexOf(n):void 0}}},cn="builder.tests",U=e=>`${cn}.${e}`,ln=({contentId:e})=>xe({name:U(e),canTrack:!0}),un=({contentId:e})=>ye({name:U(e),canTrack:!0}),dn=({contentId:e,value:t})=>Se({name:U(e),value:t,canTrack:!0}),Ee=e=>w(e.id)&&w(e.variations)&&Object.keys(e.variations).length>0,mn=({id:e,variations:t})=>{var i;let n=0;const o=Math.random();for(const r in t){const a=(i=t[r])==null?void 0:i.testRatio;if(n+=a,o<n)return r}return e},Re=e=>{const t=mn(e);return dn({contentId:e.id,value:t}).catch(n=>{k.error("could not store A/B test variation: ",n)}),t},je=({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":"")}},fn=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!Ee(e))return e;const n=un({contentId:e.id})||Re({variations:e.variations,id:e.id}),o=je({item:e,testGroupId:n});return{...e,...o}},gn=async({item:e,canTrack:t})=>{if(!t||!Ee(e))return e;const o=await ln({contentId:e.id})||Re({variations:e.variations,id:e.id}),i=je({item:e,testGroupId:o});return{...e,...i}},j=e=>w(e)?e:!0,hn=e=>{const t=e.get("preview"),n=e.get("overrides."+t);return n||k.warn("No previewed ID found in search params."),n};function Ae(){globalThis._BUILDER_PREVIEW_LRU_CACHE||(globalThis._BUILDER_PREVIEW_LRU_CACHE=new Fe.LRUCache({max:500,ttl:1e3*60*5}))}function pn(e){Ae();const t=hn(e);return typeof t=="string"?globalThis._BUILDER_PREVIEW_LRU_CACHE.get(t):void 0}function L(e,t=null,n="."){return Object.keys(e).reduce((o,i)=>{const r=e[i],a=[t,i].filter(Boolean).join(n);return[typeof r=="object",r!==null,!(Array.isArray(r)&&r.length===0)].every(Boolean)?{...o,...L(r,a,n)}:{...o,[a]:r}},{})}const ie="builder.",bn="options.",yn=e=>{const t={};return e.forEach((n,o)=>{t[o]=n}),t},K=e=>{if(!e)return{};const t=Be(e),n={};return Object.keys(t).forEach(o=>{if(o.startsWith(ie)){const i=o.replace(ie,"").replace(bn,"");n[i]=t[o]}}),n},xn=()=>{if(!S())return{};const e=new URLSearchParams(window.location.search);return K(e)},Be=e=>e instanceof URLSearchParams?yn(e):e,Sn="v3",H=e=>{let{noTraverse:t=!1}=e;const{limit:n=30,userAttributes:o,query:i,model:r,apiKey:a,includeRefs:l=!0,enrich:c,locale:u,apiVersion:f=Sn}=e;if(!a)throw new Error("Missing API key");if(!["v2","v3"].includes(f))throw new Error(`Invalid apiVersion: expected 'v2' or 'v3', received '${f}'`);(e.limit===void 0||e.limit>1)&&!("noTraverse"in e)&&(t=!0);const h=new URL(`https://cdn.builder.io/api/${f}/content/${r}?apiKey=${a}&limit=${n}&noTraverse=${t}&includeRefs=${l}${u?`&locale=${u}`:""}${c?`&enrich=${c}`:""}`),p={...xn(),...Be(e.options||{})},m=L(p);for(const g in m)h.searchParams.set(g,String(m[g]));if(o&&h.searchParams.set("userAttributes",JSON.stringify(o)),i){const g=L({query:i});for(const d in g)h.searchParams.set(d,JSON.stringify(g[d]))}return h},vn=e=>"results"in e;async function P(e){const t=await D({...e,limit:1});return t&&t.results[0]||null}const kn=P,wn=async e=>{const t=H(e);return await(await be(t.href)).json()},Ve=async(e,t,n=H(e))=>{const o=j(e.canTrack);if(n.search.includes("preview=")){const r=[];for(const a of t.results){const l=pn(n.searchParams);r.push(l||a)}t.results=r}if(!o||!(S()||C==="reactNative"))return t;try{const r=[];for(const a of t.results)r.push(await gn({item:a,canTrack:o}));t.results=r}catch(r){k.error("Could not process A/B tests. ",r)}return t};async function D(e){try{const t=H(e),n=await wn(e);return vn(n)?Ve(e,n):(k.error("Error fetching data. ",{url:t,content:n,options:e}),null)}catch(t){return k.error("Error fetching data. ",t),null}}const Cn=D;function In(){return!S()||A()?!1:location.search.indexOf("builder.preview=")!==-1}function M(e){return s.jsx("script",{dangerouslySetInnerHTML:{__html:e.scriptStr},id:e.id})}function re(e){var i,r,a,l,c,u,f,h,p;const t=gt({variationId:(i=e.content)==null?void 0:i.testVariationId,contentId:(r=e.content)==null?void 0:r.id}),n=[...Q(),...Z,...e.customComponents||[]].reduce((m,{component:g,...d})=>({...m,[d.name]:{component:g,...N(d)}}),{}),o={content:Ot({content:e.content,data:e.data}),localState:void 0,rootState:Pt({content:e.content,data:e.data,locale:e.locale}),rootSetState:void 0,context:e.context||{},apiKey:e.apiKey,apiVersion:e.apiVersion,componentInfos:[...Q(),...Z,...e.customComponents||[]].reduce((m,{component:g,...d})=>({...m,[d.name]:N(d)}),{}),inheritedStyles:{}};return s.jsxs(v.EnableEditor,{content:e.content,model:e.model,context:e.context,apiKey:e.apiKey,canTrack:e.canTrack,locale:e.locale,includeRefs:e.includeRefs,enrich:e.enrich,classNameProp:e.classNameProp,showContent:e.showContent,builderContextSignal:o,children:[e.isSsrAbTest?s.jsx(s.Fragment,{children:s.jsx(M,{scriptStr:t})}):null,s.jsx(s.Fragment,{children:s.jsx(Ft,{contentId:(a=o.content)==null?void 0:a.id,cssCode:(c=(l=o.content)==null?void 0:l.data)==null?void 0:c.cssCode,customFonts:(f=(u=o.content)==null?void 0:u.data)==null?void 0:f.customFonts})}),s.jsx(F,{blocks:(p=(h=o.content)==null?void 0:h.data)==null?void 0:p.blocks,context:o,registeredComponents:n})]})}function z(e){var r,a,l;const t=ct({canTrack:j(e.canTrack),content:e.content}),n=function(){var u;return ft(E(e.content).map(f=>({id:f.testVariationId,testRatio:f.testRatio})),((u=e.content)==null?void 0:u.id)||"")},o=function(){return E(e.content).map(u=>`.variant-${u.testVariationId} { display: none; } `).join("")},i=function(){var u;return t?{...e.content,testVariationId:(u=e.content)==null?void 0:u.id}:fn({item:e.content,canTrack:j(e.canTrack)})};return s.jsxs(s.Fragment,{children:[!e.__isNestedRender&&C!=="reactNative"?s.jsx(s.Fragment,{children:s.jsx(M,{scriptStr:mt()})}):null,t?s.jsxs(s.Fragment,{children:[s.jsx(V,{id:`variants-styles-${(r=e.content)==null?void 0:r.id}`,styles:o()}),s.jsx(M,{scriptStr:n()}),(a=E(e.content))==null?void 0:a.map(c=>s.jsx(re,{content:c,showContent:!1,classNameProp:void 0,model:e.model,data:e.data,context:e.context,apiKey:e.apiKey,apiVersion:e.apiVersion,customComponents:e.customComponents,canTrack:e.canTrack,locale:e.locale,includeRefs:e.includeRefs,enrich:e.enrich,isSsrAbTest:t},c.testVariationId))]}):null,s.jsx(re,{content:i(),classNameProp:`variant-${(l=e.content)==null?void 0:l.id}`,showContent:!0,model:e.model,data:e.data,context:e.context,apiKey:e.apiKey,apiVersion:e.apiVersion,customComponents:e.customComponents,canTrack:e.canTrack,locale:e.locale,includeRefs:e.includeRefs,enrich:e.enrich,isSsrAbTest:t})]})}const Tn=async({builderContextValue:e,symbol:t})=>{if(t!=null&&t.model&&(e!=null&&e.apiKey))return P({model:t.model,apiKey:e.apiKey,apiVersion:e.apiVersion,...(t==null?void 0:t.entry)&&{query:{id:t.entry}}}).catch(n=>{k.error("Could not fetch symbol content: ",n)})};async function $e(e){var o,i,r,a;const t=function(){var c,u;return[e.attributes.className,"builder-symbol",(c=e.symbol)!=null&&c.inline?"builder-inline-symbol":void 0,(u=e.symbol)!=null&&u.dynamic||e.dynamic?"builder-dynamic-symbol":void 0].filter(Boolean).join(" ")},n=((o=e.symbol)==null?void 0:o.content)||await Tn({symbol:e.symbol,builderContextValue:e.builderContext});return s.jsx("div",{...e.attributes,className:t(),children:s.jsx(z,{__isNestedRender:!0,apiVersion:e.builderContext.apiVersion,apiKey:e.builderContext.apiKey,context:e.builderContext.context,customComponents:Object.values(e.builderComponents),data:{...(i=e.symbol)==null?void 0:i.data,...e.builderContext.localState,...(r=n==null?void 0:n.data)==null?void 0:r.state},model:(a=e.symbol)==null?void 0:a.model,content:n})})}const En=F,Rn=z,ae={};function jn(e){if(S()){Object.assign(ae,e);const t={type:"builder.settingsChange",data:ae};parent.postMessage(t,"*")}}const An=async e=>{var o,i,r;const t=e.path||((o=e.url)==null?void 0:o.pathname)||((i=e.userAttributes)==null?void 0:i.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:K(e.searchParams||((r=e.url)==null?void 0:r.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await P(n)}};exports.Blocks=F;exports.Columns=me;exports.ContentVariants=z;exports.RenderBlocks=En;exports.RenderContent=Rn;exports.Symbol=$e;exports.Text=pe;exports._processContentResult=Ve;exports._track=Ie;exports.createRegisterComponentMessage=Rt;exports.evaluate=B;exports.fastClone=I;exports.fetch=be;exports.fetchBuilderProps=An;exports.fetchEntries=D;exports.fetchOneEntry=P;exports.getAllContent=Cn;exports.getBlockActions=et;exports.getBlockProperties=de;exports.getBuilderSearchParams=K;exports.getContent=kn;exports.getDefaultCanTrack=j;exports.getInteractionPropertiesForEvent=sn;exports.getSrcSet=st;exports.init=Ae;exports.isBrowser=S;exports.isEditing=A;exports.isJsScript=It;exports.isPreviewing=In;exports.logger=k;exports.register=Te;exports.registerInsertMenu=nn;exports.setEditorSettings=jn;exports.setupBrowserForEditing=on;exports.track=en;