@kubuild/renderer 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-dispatcher.d.ts.map +1 -1
- package/dist/action-runners/tracking.d.ts +2 -0
- package/dist/action-runners/tracking.d.ts.map +1 -1
- package/dist/code-generator.d.ts.map +1 -1
- package/dist/index.cjs +82 -71
- package/dist/index.js +81 -70
- package/dist/prop-resolution.d.ts.map +1 -1
- package/dist/render-context.d.ts +4 -2
- package/dist/render-context.d.ts.map +1 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderers/render-node-content.d.ts +6 -0
- package/dist/renderers/render-node-content.d.ts.map +1 -1
- package/dist/tracking/tracking-manager.d.ts +1 -1
- package/dist/tracking/tracking-manager.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var Kn=Object.create;var Fe=Object.defineProperty;var Yn=Object.getOwnPropertyDescriptor;var Gn=Object.getOwnPropertyNames;var Xn=Object.getPrototypeOf,Jn=Object.prototype.hasOwnProperty;var Zn=(i,e)=>{for(var o in e)Fe(i,o,{get:e[o],enumerable:!0})},Gt=(i,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Gn(e))!Jn.call(i,n)&&n!==o&&Fe(i,n,{get:()=>e[n],enumerable:!(r=Yn(e,n))||r.enumerable});return i};var be=(i,e,o)=>(o=i!=null?Kn(Xn(i)):{},Gt(e||!i||!i.__esModule?Fe(o,"default",{value:i,enumerable:!0}):o,i)),Qn=i=>Gt(Fe({},"__esModule",{value:!0}),i);var wo={};Zn(wo,{ANIMATION_KEYFRAMES_CSS:()=>Qt,ApiRequestError:()=>ae,ArtboardPortalHost:()=>ze,ComponentErrorBoundary:()=>Te,DEFAULT_BREAKPOINTS:()=>Ln,DEFAULT_CSS_RESET:()=>nt,DEFAULT_RENDER_CONTEXT:()=>ue,DEFAULT_VIEWPORT_CONFIGS:()=>Lt,EditableText:()=>X,FormCheckboxNode:()=>It,FormContainerNode:()=>St,FormInputNode:()=>Tt,FormRadioNode:()=>At,FormRuntimeContext:()=>qe,FormRuntimeProvider:()=>kt,FormSelectNode:()=>Pt,FormSubmitButtonNode:()=>Nt,FormTextareaNode:()=>Et,HtmlEmbedView:()=>Ct,KubuildPreviewViewport:()=>vo,KubuildProjectRenderer:()=>yo,KubuildRenderer:()=>Ae,META_STANDARD_EVENTS:()=>gn,ModalManager:()=>He,NodeRenderer:()=>ve,PreviewViewportAdapter:()=>jn,RenderContextProvider:()=>We,ToastCard:()=>yn,ToastContainer:()=>xt,ToastManager:()=>Be,apiRequestRunner:()=>rt,aspectRatioToCss:()=>Ot,buildApiUrl:()=>cn,closeModalRunner:()=>ct,collectAnimationStylesCss:()=>Se,collectStateStylesCss:()=>tt,copyClipboardRunner:()=>ft,copyToClipboard:()=>fn,createApiRequestHandler:()=>Ve,createDefaultActionRunners:()=>hn,createMinimalRenderContext:()=>eo,createRenderContext:()=>Jt,customEventRunner:()=>mt,dispatchAction:()=>Ze,executeNodeActions:()=>_,fireBrowserPixel:()=>ht,generateDocumentCss:()=>Un,generateSemanticHtml:()=>zn,generateStandaloneHtml:()=>Ro,getArtboardContentNode:()=>Ht,getEntranceAnimationCss:()=>nn,getHoverEffectCss:()=>en,getLoopEffectCss:()=>tn,getVimeoId:()=>Mt,getYouTubeId:()=>Ft,handleFormButtonClick:()=>wn,injectTrackingScripts:()=>yt,isActionRegistered:()=>Je,modalManager:()=>Q,navigateRunner:()=>pt,normalizeStyleObject:()=>Qe,openModalRunner:()=>Le,prepareRequestBody:()=>un,registerDefaultActionRunners:()=>Pe,removeTrackingScripts:()=>bt,renderCollectionNode:()=>Dn,renderCustomComponent:()=>Sn,renderFallbackNode:()=>Fn,renderFormNode:()=>Nn,renderInteractiveNode:()=>Vt,renderLayoutNode:()=>Tn,renderListNode:()=>Pn,renderMediaNode:()=>An,renderNodeContent:()=>Bt,renderTableNode:()=>In,renderTypographyNode:()=>En,replayNodeAnimation:()=>oo,resetFormRunner:()=>gt,resolveActionPayload:()=>Xe,resolveActionPayloadDetailed:()=>Ge,resolveAssetSync:()=>Me,resolveNodeStyles:()=>et,resolveVariable:()=>Ye,resolveViewportContainerStyle:()=>qn,resolveViewportDimensions:()=>qt,resolveViewportFromWidth:()=>ho,selectOpenComponentArtboards:()=>Hn,showToastRunner:()=>dt,styleDefinitionToCssDeclarations:()=>ge,toPascalCase:()=>Dt,toastManager:()=>fe,toggleModalRunner:()=>lt,trackEventRunner:()=>vt,transformEmbedHtml:()=>kn,useFormContext:()=>uo,useFormField:()=>fo,useFormRuntime:()=>ee,useFormStatus:()=>po,useModal:()=>at,useModals:()=>st,useNodeLoadActions:()=>$t,useRenderContext:()=>Ke,useToasts:()=>it});module.exports=Qn(wo);var me=be(require("react"),1),Mn=require("@kubuild/schema"),On=require("@kubuild/components");var ye=require("react"),Ce=require("@kubuild/core"),$e=require("@kubuild/schema"),Zt=require("react/jsx-runtime"),ue=Object.freeze({}),Xt=(0,ye.createContext)(ue);function Jt(i){if(!i)return ue;let e=i.variables?Object.freeze({...i.variables}):void 0,o=i.componentArtboards?Object.freeze([...i.componentArtboards]):void 0,r=i.resolveArtboard??(o?n=>o.find(t=>t.artboardType==="component"&&t.triggerId===n):void 0);return Object.freeze({variables:e,...i.assetProvider?{assetProvider:i.assetProvider}:{},...i.actionRegistry?{actionRegistry:i.actionRegistry}:{},...i.onDiagnostic?{onDiagnostic:i.onDiagnostic}:{},...o?{componentArtboards:o}:{},...r?{resolveArtboard:r}:{},...i.artboardSurface?{artboardSurface:i.artboardSurface}:{}})}function eo(i){let e=new Map(Object.entries(i?.assets??{})),o=new Map(Object.entries(i?.actions??{})),r={resolve:t=>e.get(t)||t},n={get:t=>o.get(t),register:(t,d)=>{o.set(t,d)},unregister:t=>{o.delete(t)}};return Jt({variables:i?.variables,assetProvider:r,actionRegistry:n,onDiagnostic:i?.onDiagnostic})}var We=({value:i,children:e})=>{let o=(0,ye.useMemo)(()=>i||ue,[i]);return(0,Zt.jsx)(Xt.Provider,{value:o,children:e})};function Ke(){return(0,ye.useContext)(Xt)}function Me(i,e){if(!(!i||!e))try{let o=i.resolve(e);return typeof o=="string"?o:void 0}catch{return}}function Ye(i,e){return e==null?e:(0,$e.isVariableBinding)(e)?(0,Ce.resolveBinding)(e,i).value:typeof e=="string"&&e.includes("{{")?e.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(o,r)=>{let n=(0,Ce.resolveBinding)({key:r},i);return n.status==="resolved"?String(n.value):o}):e}function Ge(i,e){if(!e||typeof e!="object")return{value:e,invalidPaths:[]};let o=[],r=(t,d)=>{if(t==null)return t;if((0,$e.isVariableBinding)(t)){let l=(0,Ce.resolveBinding)(t,i);return l.status==="empty"&&o.push(d),l.value}if(typeof t=="string")return t.includes("{{")?t.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(l,u)=>{let c=(0,Ce.resolveBinding)({key:u},i);return c.status!=="resolved"?(o.push(d),l):String(c.value)}):t;if(Array.isArray(t))return t.map((l,u)=>r(l,`${d}[${u}]`));if(typeof t=="object"){let l={};for(let[u,c]of Object.entries(t))l[u]=r(c,d?`${d}.${u}`:u);return l}return t},n={};for(let[t,d]of Object.entries(e))n[t]=r(d,t);return{value:n,invalidPaths:o}}function Xe(i,e){return Ge(i,e).value}function Je(i,e){return!i||!e?!1:!!i.get(e)}function Ze(i){let{action:e,nodeId:o,document:r,context:n,onDiagnostic:t}=i;if(!(0,$e.isActionBinding)(e)){let f={code:"INVALID_ACTION_PAYLOAD",actionType:typeof e?.type=="string"?e.type:"unknown",nodeId:o,message:`Invalid action binding on node ${o||"unknown"}.`};return t?.(f),n?.onDiagnostic?.(f),!1}let d=n?.actionRegistry?.get(e.type);if(!d){let f={code:"UNKNOWN_ACTION",actionType:e.type,nodeId:o,message:`No action handler registered for action type "${e.type}".`};return t?.(f),n?.onDiagnostic?.(f),!1}let{value:l,invalidPaths:u}=Ge(n,e.payload);if(u.length>0){let f={code:"INVALID_ACTION_BINDING",actionType:e.type,nodeId:o,message:`Action "${e.type}" payload has unresolved binding path(s) [${u.join(", ")}] on node ${o||"unknown"}; handler was not invoked.`,invalidPaths:u};return t?.(f),n?.onDiagnostic?.(f),!1}let c={nodeId:o,document:r,variables:n?.variables};try{let f=d(l,c);return f&&typeof f.catch=="function"&&f.catch(s=>{let a={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:o,message:`Action "${e.type}" handler threw an asynchronous error: ${s instanceof Error?s.message:String(s)}`,error:s};t?.(a),n?.onDiagnostic?.(a)}),!0}catch(f){let s={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:o,message:`Action "${e.type}" handler threw a synchronous error: ${f instanceof Error?f.message:String(f)}`,error:f};return t?.(s),n?.onDiagnostic?.(s),!1}}var Vn=require("lucide-react");function Qe(i){if(!i||typeof i!="object")return{};let e={...i};if(e.colSpan!==void 0&&e.colSpan!==null&&e.colSpan!==""){if(!e.gridColumn){let o=String(e.colSpan).trim();e.gridColumn=o.startsWith("span")?o:`span ${o}`}delete e.colSpan}if(e.rowSpan!==void 0&&e.rowSpan!==null&&e.rowSpan!==""){if(!e.gridRow){let o=String(e.rowSpan).trim();e.gridRow=o.startsWith("span")?o:`span ${o}`}delete e.rowSpan}if(e.width==="hug"?e.width="fit-content":e.width==="fill"&&(e.width="100%",e.flex||(e.flex="1 1 0%")),e.height==="hug"?e.height="fit-content":e.height==="fill"&&(e.height="100%",e.flex||(e.flex="1 1 0%")),e.sizingMode==="hug"?(e.width=e.width||"fit-content",delete e.sizingMode):e.sizingMode==="fill"&&(e.flex||(e.flex="1 1 0%"),delete e.sizingMode),typeof e.gap=="number"&&(e.gap=`${e.gap}px`),typeof e.rowGap=="number"&&(e.rowGap=`${e.rowGap}px`),typeof e.columnGap=="number"&&(e.columnGap=`${e.columnGap}px`),typeof e.borderTopLeftRadius=="number"&&(e.borderTopLeftRadius=`${e.borderTopLeftRadius}px`),typeof e.borderTopRightRadius=="number"&&(e.borderTopRightRadius=`${e.borderTopRightRadius}px`),typeof e.borderBottomRightRadius=="number"&&(e.borderBottomRightRadius=`${e.borderBottomRightRadius}px`),typeof e.borderBottomLeftRadius=="number"&&(e.borderBottomLeftRadius=`${e.borderBottomLeftRadius}px`),typeof e.borderRadius=="number"&&(e.borderRadius=`${e.borderRadius}px`),e.backdropBlur!==void 0&&e.backdropBlur!==null&&e.backdropBlur!==""){let o=String(e.backdropBlur).trim(),n=`blur(${typeof e.backdropBlur=="number"||/^\d+$/.test(o)?`${o}px`:o})`;e.backdropFilter=n,e.WebkitBackdropFilter=n,delete e.backdropBlur}else e.backdropFilter&&typeof e.backdropFilter=="string"&&(e.WebkitBackdropFilter=e.backdropFilter);if(e.gradient&&typeof e.gradient=="string"?(e.backgroundImage=e.gradient,delete e.gradient):e.backgroundGradient&&typeof e.backgroundGradient=="string"&&(e.backgroundImage=e.backgroundGradient,delete e.backgroundGradient),e.backgroundImage&&typeof e.backgroundImage=="string"){let o=e.backgroundImage.trim();o!==""&&o!=="none"&&!o.startsWith("url(")&&!o.includes("gradient(")&&(o.startsWith("http://")||o.startsWith("https://")||o.startsWith("data:")||o.startsWith("blob:")||o.startsWith("/")||o.startsWith("./"))&&(e.backgroundImage=`url("${o}")`)}return e}function et(i,e="desktop"){if(!i)return{};let o=i.base||{},r=i[e]||{},n={...o,...r};return Qe(n)}function to(i){return String(i).replace(/[{};]+/g,"")}function no(i){return i.replace(/["\\\]]/g,"\\$&")}function ge(i,e){if(!i||typeof i!="object")return"";let o=Qe(i),r=[],n=e?.important?" !important":"";for(let[t,d]of Object.entries(o)){if(d==null||d==="")continue;let l=t.replace(/[A-Z]/g,u=>`-${u.toLowerCase()}`);l.startsWith("--")||l.startsWith("-webkit-")||l.startsWith("-moz-")||l.startsWith("-")&&(l=l.substring(1)),r.push(`${l}: ${to(d)}${n};`)}return r.join(" ")}function tt(i,e={important:!0}){if(!i?.document)return"";let o=[],r=n=>{let t=n.styles?.states;if(t&&typeof t=="object")for(let[d,l]of Object.entries(t)){let u=ge(l,{important:e.important!==!1});if(!u)continue;let c=/^::?[a-zA-Z-]+$/.test(d)?d:null;c&&o.push(`[data-kubuild-node="${no(n.id)}"]${c} { ${u} }`)}n.children?.forEach(r)};return r(i.document),o.join(`
|
|
2
|
-
`)}var
|
|
1
|
+
"use strict";var Xn=Object.create;var Fe=Object.defineProperty;var Jn=Object.getOwnPropertyDescriptor;var Zn=Object.getOwnPropertyNames;var Qn=Object.getPrototypeOf,eo=Object.prototype.hasOwnProperty;var to=(r,e)=>{for(var o in e)Fe(r,o,{get:e[o],enumerable:!0})},Xt=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Zn(e))!eo.call(r,n)&&n!==o&&Fe(r,n,{get:()=>e[n],enumerable:!(i=Jn(e,n))||i.enumerable});return r};var be=(r,e,o)=>(o=r!=null?Xn(Qn(r)):{},Xt(e||!r||!r.__esModule?Fe(o,"default",{value:r,enumerable:!0}):o,r)),no=r=>Xt(Fe({},"__esModule",{value:!0}),r);var So={};to(So,{ANIMATION_KEYFRAMES_CSS:()=>en,ApiRequestError:()=>ae,ArtboardPortalHost:()=>Ue,ComponentErrorBoundary:()=>Te,DEFAULT_BREAKPOINTS:()=>jn,DEFAULT_CSS_RESET:()=>ot,DEFAULT_RENDER_CONTEXT:()=>ce,DEFAULT_VIEWPORT_CONFIGS:()=>qt,EditableText:()=>X,FormCheckboxNode:()=>At,FormContainerNode:()=>Tt,FormInputNode:()=>Et,FormRadioNode:()=>Nt,FormRuntimeContext:()=>qe,FormRuntimeProvider:()=>Rt,FormSelectNode:()=>Pt,FormSubmitButtonNode:()=>Dt,FormTextareaNode:()=>It,HtmlEmbedView:()=>$t,KubuildPreviewViewport:()=>Ro,KubuildProjectRenderer:()=>xo,KubuildRenderer:()=>Ae,META_STANDARD_EVENTS:()=>mn,ModalManager:()=>He,NodeRenderer:()=>ve,PreviewViewportAdapter:()=>Un,RenderContextProvider:()=>Ke,ToastCard:()=>vn,ToastContainer:()=>kt,ToastManager:()=>Be,apiRequestRunner:()=>it,aspectRatioToCss:()=>Vt,buildApiUrl:()=>un,closeModalRunner:()=>ut,collectAnimationStylesCss:()=>Se,collectStateStylesCss:()=>nt,copyClipboardRunner:()=>gt,copyToClipboard:()=>gn,createApiRequestHandler:()=>Ve,createDefaultActionRunners:()=>xn,createMinimalRenderContext:()=>oo,createPlaceholderImage:()=>ze,createRenderContext:()=>Zt,customEventRunner:()=>bt,dispatchAction:()=>Qe,executeNodeActions:()=>_,fireBrowserPixel:()=>vt,generateDocumentCss:()=>Yn,generateSemanticHtml:()=>Kn,generateStandaloneHtml:()=>$o,getArtboardContentNode:()=>Lt,getEntranceAnimationCss:()=>on,getHoverEffectCss:()=>tn,getLoopEffectCss:()=>nn,getVimeoId:()=>Ot,getYouTubeId:()=>Mt,handleFormButtonClick:()=>$n,injectTrackingScripts:()=>ht,isActionRegistered:()=>Ze,modalManager:()=>Q,navigateRunner:()=>ft,normalizeStyleObject:()=>et,openModalRunner:()=>Le,prepareRequestBody:()=>pn,registerDefaultActionRunners:()=>Ie,removeTrackingScripts:()=>yt,renderCollectionNode:()=>Mn,renderCustomComponent:()=>En,renderFallbackNode:()=>On,renderFormNode:()=>Fn,renderInteractiveNode:()=>Bt,renderLayoutNode:()=>In,renderListNode:()=>An,renderMediaNode:()=>Dn,renderNodeContent:()=>_t,renderTableNode:()=>Nn,renderTypographyNode:()=>Pn,replayNodeAnimation:()=>ao,resetFormRunner:()=>mt,resolveActionPayload:()=>Je,resolveActionPayloadDetailed:()=>Xe,resolveAssetSync:()=>Me,resolveNodeStyles:()=>tt,resolveVariable:()=>Ge,resolveViewportContainerStyle:()=>zn,resolveViewportDimensions:()=>jt,resolveViewportFromWidth:()=>ko,selectOpenComponentArtboards:()=>qn,showToastRunner:()=>lt,styleDefinitionToCssDeclarations:()=>fe,toPascalCase:()=>Ft,toastManager:()=>pe,toggleModalRunner:()=>ct,trackEventRunner:()=>xt,transformEmbedHtml:()=>wn,useFormContext:()=>go,useFormField:()=>bo,useFormRuntime:()=>ee,useFormStatus:()=>mo,useModal:()=>st,useModals:()=>dt,useNodeLoadActions:()=>St,useRenderContext:()=>Ye,useToasts:()=>at});module.exports=no(So);var me=be(require("react"),1),Vn=require("@kubuild/schema"),Bn=require("@kubuild/components");var ye=require("react"),Ce=require("@kubuild/core"),$e=require("@kubuild/schema"),Qt=require("react/jsx-runtime"),ce=Object.freeze({}),Jt=(0,ye.createContext)(ce);function Zt(r){if(!r)return ce;let e=r.variables?Object.freeze({...r.variables}):void 0,o=r.componentArtboards?Object.freeze([...r.componentArtboards]):void 0,i=r.resolveArtboard??(o?n=>o.find(t=>t.artboardType==="component"&&t.triggerId===n):void 0);return Object.freeze({variables:e,...r.assetProvider?{assetProvider:r.assetProvider}:{},...r.actionRegistry?{actionRegistry:r.actionRegistry}:{},...r.onDiagnostic?{onDiagnostic:r.onDiagnostic}:{},...o?{componentArtboards:o}:{},...i?{resolveArtboard:i}:{},...r.artboardSurface?{artboardSurface:r.artboardSurface}:{},...r.tracking?{tracking:Object.freeze({...r.tracking})}:{}})}function oo(r){let e=new Map(Object.entries(r?.assets??{})),o=new Map(Object.entries(r?.actions??{})),i={resolve:t=>e.get(t)||t},n={get:t=>o.get(t),register:(t,d)=>{o.set(t,d)},unregister:t=>{o.delete(t)}};return Zt({variables:r?.variables,assetProvider:i,actionRegistry:n,onDiagnostic:r?.onDiagnostic})}var Ke=({value:r,children:e})=>{let o=(0,ye.useMemo)(()=>r||ce,[r]);return(0,Qt.jsx)(Jt.Provider,{value:o,children:e})};function Ye(){return(0,ye.useContext)(Jt)}function Me(r,e){if(!(!r||!e))try{let o=r.resolve(e);return typeof o=="string"?o:void 0}catch{return}}function Ge(r,e){return e==null?e:(0,$e.isVariableBinding)(e)?(0,Ce.resolveBinding)(e,r).value:typeof e=="string"&&e.includes("{{")?e.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(o,i)=>{let n=(0,Ce.resolveBinding)({key:i},r);return n.status==="resolved"?String(n.value):o}):e}function Xe(r,e){if(!e||typeof e!="object")return{value:e,invalidPaths:[]};let o=[],i=(t,d)=>{if(t==null)return t;if((0,$e.isVariableBinding)(t)){let l=(0,Ce.resolveBinding)(t,r);return l.status==="empty"&&o.push(d),l.value}if(typeof t=="string")return t.includes("{{")?t.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(l,c)=>{let p=(0,Ce.resolveBinding)({key:c},r);return p.status!=="resolved"?(o.push(d),l):String(p.value)}):t;if(Array.isArray(t))return t.map((l,c)=>i(l,`${d}[${c}]`));if(typeof t=="object"){let l={};for(let[c,p]of Object.entries(t))l[c]=i(p,d?`${d}.${c}`:c);return l}return t},n={};for(let[t,d]of Object.entries(e))n[t]=i(d,t);return{value:n,invalidPaths:o}}function Je(r,e){return Xe(r,e).value}function Ze(r,e){return!r||!e?!1:!!r.get(e)}function Qe(r){let{action:e,nodeId:o,document:i,context:n,onDiagnostic:t}=r;if(!(0,$e.isActionBinding)(e)){let f={code:"INVALID_ACTION_PAYLOAD",actionType:typeof e?.type=="string"?e.type:"unknown",nodeId:o,message:`Invalid action binding on node ${o||"unknown"}.`};return t?.(f),n?.onDiagnostic?.(f),!1}let d=n?.actionRegistry?.get(e.type);if(!d){let f={code:"UNKNOWN_ACTION",actionType:e.type,nodeId:o,message:`No action handler registered for action type "${e.type}".`};return t?.(f),n?.onDiagnostic?.(f),!1}let{value:l,invalidPaths:c}=Xe(n,e.payload);if(c.length>0){let f={code:"INVALID_ACTION_BINDING",actionType:e.type,nodeId:o,message:`Action "${e.type}" payload has unresolved binding path(s) [${c.join(", ")}] on node ${o||"unknown"}; handler was not invoked.`,invalidPaths:c};return t?.(f),n?.onDiagnostic?.(f),!1}let p={nodeId:o,document:i,variables:n?.variables};try{let f=d(l,p);return f&&typeof f.catch=="function"&&f.catch(a=>{let s={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:o,message:`Action "${e.type}" handler threw an asynchronous error: ${a instanceof Error?a.message:String(a)}`,error:a};t?.(s),n?.onDiagnostic?.(s)}),!0}catch(f){let a={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:o,message:`Action "${e.type}" handler threw a synchronous error: ${f instanceof Error?f.message:String(f)}`,error:f};return t?.(a),n?.onDiagnostic?.(a),!1}}var _n=require("lucide-react");function et(r){if(!r||typeof r!="object")return{};let e={...r};if(e.colSpan!==void 0&&e.colSpan!==null&&e.colSpan!==""){if(!e.gridColumn){let o=String(e.colSpan).trim();e.gridColumn=o.startsWith("span")?o:`span ${o}`}delete e.colSpan}if(e.rowSpan!==void 0&&e.rowSpan!==null&&e.rowSpan!==""){if(!e.gridRow){let o=String(e.rowSpan).trim();e.gridRow=o.startsWith("span")?o:`span ${o}`}delete e.rowSpan}if(e.width==="hug"?e.width="fit-content":e.width==="fill"&&(e.width="100%",e.flex||(e.flex="1 1 0%")),e.height==="hug"?e.height="fit-content":e.height==="fill"&&(e.height="100%",e.flex||(e.flex="1 1 0%")),e.sizingMode==="hug"?(e.width=e.width||"fit-content",delete e.sizingMode):e.sizingMode==="fill"&&(e.flex||(e.flex="1 1 0%"),delete e.sizingMode),typeof e.gap=="number"&&(e.gap=`${e.gap}px`),typeof e.rowGap=="number"&&(e.rowGap=`${e.rowGap}px`),typeof e.columnGap=="number"&&(e.columnGap=`${e.columnGap}px`),typeof e.borderTopLeftRadius=="number"&&(e.borderTopLeftRadius=`${e.borderTopLeftRadius}px`),typeof e.borderTopRightRadius=="number"&&(e.borderTopRightRadius=`${e.borderTopRightRadius}px`),typeof e.borderBottomRightRadius=="number"&&(e.borderBottomRightRadius=`${e.borderBottomRightRadius}px`),typeof e.borderBottomLeftRadius=="number"&&(e.borderBottomLeftRadius=`${e.borderBottomLeftRadius}px`),typeof e.borderRadius=="number"&&(e.borderRadius=`${e.borderRadius}px`),e.backdropBlur!==void 0&&e.backdropBlur!==null&&e.backdropBlur!==""){let o=String(e.backdropBlur).trim(),n=`blur(${typeof e.backdropBlur=="number"||/^\d+$/.test(o)?`${o}px`:o})`;e.backdropFilter=n,e.WebkitBackdropFilter=n,delete e.backdropBlur}else e.backdropFilter&&typeof e.backdropFilter=="string"&&(e.WebkitBackdropFilter=e.backdropFilter);if(e.gradient&&typeof e.gradient=="string"?(e.backgroundImage=e.gradient,delete e.gradient):e.backgroundGradient&&typeof e.backgroundGradient=="string"&&(e.backgroundImage=e.backgroundGradient,delete e.backgroundGradient),e.backgroundImage&&typeof e.backgroundImage=="string"){let o=e.backgroundImage.trim();o!==""&&o!=="none"&&!o.startsWith("url(")&&!o.includes("gradient(")&&(o.startsWith("http://")||o.startsWith("https://")||o.startsWith("data:")||o.startsWith("blob:")||o.startsWith("/")||o.startsWith("./"))&&(e.backgroundImage=`url("${o}")`)}return e}function tt(r,e="desktop"){if(!r)return{};let o=r.base||{},i=r[e]||{},n={...o,...i};return et(n)}function ro(r){return String(r).replace(/[{};]+/g,"")}function io(r){return r.replace(/["\\\]]/g,"\\$&")}function fe(r,e){if(!r||typeof r!="object")return"";let o=et(r),i=[],n=e?.important?" !important":"";for(let[t,d]of Object.entries(o)){if(d==null||d==="")continue;let l=t.replace(/[A-Z]/g,c=>`-${c.toLowerCase()}`);l.startsWith("--")||l.startsWith("-webkit-")||l.startsWith("-moz-")||l.startsWith("-")&&(l=l.substring(1)),i.push(`${l}: ${ro(d)}${n};`)}return i.join(" ")}function nt(r,e={important:!0}){if(!r?.document)return"";let o=[],i=n=>{let t=n.styles?.states;if(t&&typeof t=="object")for(let[d,l]of Object.entries(t)){let c=fe(l,{important:e.important!==!1});if(!c)continue;let p=/^::?[a-zA-Z-]+$/.test(d)?d:null;p&&o.push(`[data-kubuild-node="${io(n.id)}"]${p} { ${c} }`)}n.children?.forEach(i)};return i(r.document),o.join(`
|
|
2
|
+
`)}var ot=`
|
|
3
3
|
*, *::before, *::after {
|
|
4
4
|
box-sizing: border-box;
|
|
5
5
|
}
|
|
@@ -25,7 +25,7 @@ input, button, textarea, select {
|
|
|
25
25
|
p, h1, h2, h3, h4, h5, h6 {
|
|
26
26
|
overflow-wrap: break-word;
|
|
27
27
|
}
|
|
28
|
-
`.trim();var
|
|
28
|
+
`.trim();var en=`
|
|
29
29
|
/* Entrance / AOS Keyframes */
|
|
30
30
|
@keyframes kb-anim-fade {
|
|
31
31
|
from { opacity: 0; }
|
|
@@ -101,10 +101,10 @@ p, h1, h2, h3, h4, h5, h6 {
|
|
|
101
101
|
0%, 100% { opacity: 0.75; }
|
|
102
102
|
50% { opacity: 1; }
|
|
103
103
|
}
|
|
104
|
-
`.trim();function Oe(
|
|
104
|
+
`.trim();function Oe(r){return r.replace(/["\\\]]/g,"\\$&")}function tn(r,e){let o=Oe(r),i=[];switch(e){case"lift":i.push(`[data-kubuild-node="${o}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease !important; will-change: transform; }`,`[data-kubuild-node="${o}"]:hover { transform: translateY(-4px) !important; box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1) !important; }`);break;case"scale":i.push(`[data-kubuild-node="${o}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; will-change: transform; }`,`[data-kubuild-node="${o}"]:hover { transform: scale(1.04) !important; }`);break;case"glow":i.push(`[data-kubuild-node="${o}"] { transition: box-shadow 0.25s ease !important; }`,`[data-kubuild-node="${o}"]:hover { box-shadow: 0 0 20px 2px rgba(59, 130, 246, 0.5) !important; }`);break;case"tilt":i.push(`[data-kubuild-node="${o}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; will-change: transform; }`,`[data-kubuild-node="${o}"]:hover { transform: rotate(2deg) scale(1.02) !important; }`);break;default:break}return i}function nn(r,e){let o=Oe(r),i=[];switch(e){case"pulse":i.push(`[data-kubuild-node="${o}"] { animation: kb-loop-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite !important; }`);break;case"bounce":i.push(`[data-kubuild-node="${o}"] { animation: kb-loop-bounce 1.5s ease-in-out infinite !important; }`);break;case"spin":i.push(`[data-kubuild-node="${o}"] { animation: kb-loop-spin 3s linear infinite !important; }`);break;case"float":i.push(`[data-kubuild-node="${o}"] { animation: kb-loop-float 3s ease-in-out infinite !important; }`);break;case"shimmer":i.push(`[data-kubuild-node="${o}"] { animation: kb-loop-shimmer 2s ease-in-out infinite !important; }`);break;default:break}return i}function on(r,e){if(!e.type||e.type==="none")return[];let o=Oe(r),i=typeof e.duration=="number"?e.duration:600,n=typeof e.delay=="number"?e.delay:0,t=e.easing||"ease-out";return[`[data-kubuild-node="${o}"] { animation-name: kb-anim-${e.type} !important; animation-duration: ${i}ms !important; animation-delay: ${n}ms !important; animation-timing-function: ${t} !important; animation-fill-mode: both !important; }`]}function Se(r){if(!r?.document)return"";let e=[],o=!1,i=n=>{let t=n.animation;t&&(t.hoverEffect&&t.hoverEffect!=="none"&&(e.push(...tn(n.id,t.hoverEffect)),o=!0),t.loopEffect&&t.loopEffect!=="none"&&(e.push(...nn(n.id,t.loopEffect)),o=!0),t.type&&t.type!=="none"&&(e.push(...on(n.id,t)),o=!0)),n.children?.forEach(i)};return i(r.document),o?`${en}
|
|
105
105
|
|
|
106
106
|
${e.join(`
|
|
107
|
-
`)}`:""}function oo(i,e){let o=e||(typeof window<"u"?window.document:null);if(!o)return!1;let r=o.querySelector(`[data-kubuild-node="${Oe(i)}"]`);if(!r)return!1;let n=r.style.animation;return r.style.animation="none",r.offsetWidth,r.style.animation=n,r.dispatchEvent(new CustomEvent("kubuild:replay-animation",{bubbles:!0,detail:{nodeId:i}})),!0}var on=require("react"),rn=require("lucide-react"),ie=require("react/jsx-runtime"),Te=class extends on.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,o){this.props.onError&&this.props.onError(e,o),this.props.onDiagnostic&&this.props.onDiagnostic({code:"ACTION_EXECUTION_ERROR",actionType:"render",nodeId:this.props.nodeId,message:`Render error in <${this.props.componentType}> (ID: ${this.props.nodeId}): ${e.message}`,error:e})}render(){if(this.state.hasError){let{nodeId:e,componentType:o,mode:r="runtime"}=this.props,n=this.state.error?.message||"Unknown render error";return r==="editor"?(0,ie.jsxs)("div",{"data-kubuild-node":e,"data-kubuild-error":o,style:{padding:"12px 16px",margin:"4px 0",backgroundColor:"#fef2f2",border:"1px solid #ef4444",borderRadius:"6px",color:"#b91c1c",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"13px",lineHeight:"1.4"},children:[(0,ie.jsxs)("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[(0,ie.jsx)(rn.AlertTriangle,{size:14,"aria-hidden":"true"}),(0,ie.jsxs)("span",{children:["Component Render Error: <",o,">"]})]}),(0,ie.jsxs)("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",(0,ie.jsx)("code",{children:e})," \u2014 ",n]})]}):(0,ie.jsx)("div",{"data-kubuild-node":e,"data-kubuild-error":o,style:{display:"none"},"aria-hidden":"true"})}return this.props.children}};var an=require("@kubuild/schema"),ot=require("@kubuild/components"),sn=require("@kubuild/core");function ro(i){switch(i){case"string":return"";case"number":return 0;case"boolean":return!1}}function io(i,e,o,r,n){let t=i.props?.[e.name],d=(0,ot.primitiveTypeForField)(e);if(d===void 0||t===void 0)return t;let l=o.defaultProps?.[e.name]??e.defaultValue??ro(d);if((0,an.isVariableBinding)(t)){let u=(0,sn.resolveBinding)(t,r);return typeof u.value===d?u.value:(n.push({code:"INCOMPATIBLE_BINDING_TYPE",nodeId:i.id,propName:e.name,expectedType:d,actualType:typeof u.value,message:`Prop "${e.name}" on node "${i.id}" expected a ${d} but resolved binding "${t.key}" produced a ${typeof u.value}.`}),l)}return d==="string"&&typeof t=="string"&&t.includes("{{")?Ye(r,t):t}function dn(i,e,o){let r=i.props||{};if(!e||!e.propFields||e.propFields.length===0)return{props:r,diagnostics:[]};let n=[],t={...r};for(let d of e.propFields)(0,ot.primitiveTypeForField)(d)!==void 0&&(t[d.name]=io(i,d,e,o,n));return{props:t,diagnostics:n}}var $n=be(require("react"),1),M=require("@kubuild/schema"),ce=require("lucide-react"),Z=require("@kubuild/core");var T=require("react"),de=require("@kubuild/core");var ln=require("@kubuild/schema"),pe=require("@kubuild/core"),ae=class extends Error{status;statusText;url;method;data;headers;response;isTimeout;isCancelled;isNetworkError;stepId;cause;constructor(e,o){super(e),this.name="ApiRequestError",this.status=o?.status,this.statusText=o?.statusText,this.url=o?.url,this.method=o?.method,this.data=o?.data,this.headers=o?.headers,this.response=o?.response,this.isTimeout=o?.isTimeout??!1,this.isCancelled=o?.isCancelled??!1,this.isNetworkError=o?.isNetworkError??!1,this.stepId=o?.stepId,this.cause=o?.cause}};function cn(i,e,o){if(!i||typeof i!="string")throw new ae("API request URL is required",{url:i});let r=i.trim();if(!(0,ln.isSafeActionUrl)(r))throw new ae(`Disallowed or unsafe protocol in API request URL: "${r}"`,{url:r});let n=r;if(o&&!r.startsWith("http://")&&!r.startsWith("https://")&&!r.startsWith("//")){let t=o.endsWith("/")?o.slice(0,-1):o,d=r.startsWith("/")?r:`/${r}`;n=`${t}${d}`}if(e&&typeof e=="object"&&Object.keys(e).length>0){let[t,d]=n.split("?"),l=new URLSearchParams(d||"");for(let[c,f]of Object.entries(e))f!=null&&(Array.isArray(f)?f.forEach(s=>l.append(c,String(s))):l.set(c,String(f)));let u=l.toString();n=u?`${t}?${u}`:t}return n}function un(i,e,o,r={}){let n=i.toUpperCase(),t={...r};if(n==="GET"||n==="HEAD")return{body:void 0,headers:t};if(e==null)return{body:void 0,headers:t};let d=Object.keys(t).find(c=>c.toLowerCase()==="content-type"),l=d?t[d]:void 0,u=(o||"").toLowerCase();if(u==="form-data"||u==="formdata"||u==="multipart"||l&&l.includes("multipart/form-data")){if(typeof FormData<"u"&&e instanceof FormData)return d&&delete t[d],{body:e,headers:t};if(typeof FormData<"u"&&typeof e=="object"&&e!==null){let c=new FormData;for(let[f,s]of Object.entries(e))s!=null&&(typeof Blob<"u"&&s instanceof Blob?c.append(f,s):Array.isArray(s)?s.forEach(a=>c.append(f,typeof a=="object"?JSON.stringify(a):String(a))):typeof s=="object"?c.append(f,JSON.stringify(s)):c.append(f,String(s)));return d&&delete t[d],{body:c,headers:t}}}if(u==="urlencoded"||u==="url-encoded"||l&&l.includes("application/x-www-form-urlencoded")){if(typeof URLSearchParams<"u"&&e instanceof URLSearchParams)return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:t};if(typeof e=="object"&&e!==null){let c=new URLSearchParams;for(let[f,s]of Object.entries(e))s!=null&&(Array.isArray(s)?s.forEach(a=>c.append(f,String(a))):c.append(f,String(s)));return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:c,headers:t}}if(typeof e=="string")return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:t}}if(u==="raw"||u==="text")return d||(t["Content-Type"]="text/plain;charset=UTF-8"),{body:typeof e=="string"?e:String(e),headers:t};if(typeof e=="object"&&e!==null)return d||(t["Content-Type"]="application/json"),{body:JSON.stringify(e),headers:t};if(typeof e=="string"){if(!d)try{JSON.parse(e),t["Content-Type"]="application/json"}catch{t["Content-Type"]="text/plain;charset=UTF-8"}return{body:e,headers:t}}return{body:String(e),headers:t}}async function ao(i){let e=i.headers.get("content-type")||"",o=await i.text();if(!o||o.trim()==="")return null;if(e.includes("application/json")||e.includes("+json"))try{return JSON.parse(o)}catch{return o}let r=o.trim();if(r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]"))try{return JSON.parse(r)}catch{return o}return o}function Ve(i){let e=i?.defaultTimeout,o=i?.baseUrl,r=i?.headers;return async function(t,d,l){let u=d.fetchFn||i?.fetchFn||(typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch:typeof fetch<"u"?fetch:void 0);if(!u)throw new ae("No fetch implementation available for API request runner",{stepId:t.id});let c=t.payload||{},f=String(c.method||"GET").toUpperCase(),s=c.timeout??e,a=c.baseUrl??o,p=cn(String(c.url||""),c.queryParams,a),g={...r||{},...c.headers||{}},{body:y,headers:b}=un(f,c.body,c.bodyFormat||c.bodyType,g),h=new AbortController,v,x=()=>{h.abort(l?.reason)};if(l){if(l.aborted)throw new pe.ActionCancellationError(l.reason instanceof Error?l.reason.message:"API request cancelled",t.id);l.addEventListener("abort",x,{once:!0})}s!==void 0&&s>0&&(v=setTimeout(()=>{h.abort(new pe.ActionTimeoutError(`API request timed out after ${s}ms`,s,t.id))},s));try{let m=await u(p,{method:f,headers:b,body:y,signal:h.signal}),C={};m.headers&&typeof m.headers.forEach=="function"&&m.headers.forEach((S,P)=>{C[P.toLowerCase()]=S});let R=await ao(m),w={ok:m.ok,status:m.status,statusText:m.statusText,headers:C,data:R,body:R,url:m.url||p};if(!m.ok){let S=(typeof R=="object"&&R!==null&&"message"in R?String(R.message):void 0)||(typeof R=="string"&&R.length<200?R:void 0)||`HTTP ${m.status} ${m.statusText||"Error"}`;throw new ae(`API request failed: ${S}`,{status:m.status,statusText:m.statusText,url:p,method:f,data:R,headers:C,response:w,stepId:t.id})}return w}catch(m){if(m instanceof ae)throw m;if(h.signal.aborted){let R=h.signal.reason;if(R instanceof pe.ActionTimeoutError||R instanceof Error&&R.name==="ActionTimeoutError"||R instanceof pe.ActionCancellationError||R instanceof Error&&R.name==="ActionCancellationError")throw R;if(m instanceof Error&&(m.name==="AbortError"||m.name==="TimeoutError"))throw v===void 0&&l?.aborted?new pe.ActionCancellationError("API request cancelled",t.id):new pe.ActionTimeoutError(`API request timed out after ${s}ms`,s??0,t.id)}let C=m instanceof Error?m.message:String(m);throw new ae(`Network error during API request: ${C}`,{url:p,method:f,isNetworkError:!0,stepId:t.id,cause:m})}finally{v!==void 0&&clearTimeout(v),l&&l.removeEventListener("abort",x)}}}var rt=Ve();var _e=require("react"),so=0,Be=class{toasts=[];listeners=new Set;timers=new Map;showToast(e){let o=typeof e=="string"?{message:e}:e,r=o.id||`toast_${Date.now()}_${++so}`,n=o.type||o.variant||"info",t=o.duration!==void 0?Math.max(0,o.duration):4e3,d=o.position||"top-right",l=o.dismissible!==!1;this.timers.has(r)&&(clearTimeout(this.timers.get(r)),this.timers.delete(r));let u={id:r,type:n,message:o.message,title:o.title,duration:t,position:d,dismissible:l,createdAt:Date.now(),dismiss:()=>this.dismissToast(r)};if(this.toasts=this.toasts.filter(c=>c.id!==r).concat(u),t>0){let c=setTimeout(()=>{this.dismissToast(r)},t);this.timers.set(r,c)}return this.notify(),u}dismissToast(e){this.timers.has(e)&&(clearTimeout(this.timers.get(e)),this.timers.delete(e));let o=this.toasts.length;this.toasts=this.toasts.filter(r=>r.id!==e),this.toasts.length!==o&&this.notify()}clearToasts(){for(let e of this.timers.values())clearTimeout(e);this.timers.clear(),this.toasts=[],this.notify()}getToasts(){return[...this.toasts]}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){let e=this.getToasts();for(let o of this.listeners)try{o(e)}catch(r){console.error("Error in toast listener callback:",r)}}},fe=new Be;function it(i=fe){let[e,o]=(0,_e.useState)(()=>i.getToasts());return(0,_e.useEffect)(()=>(o(i.getToasts()),i.subscribe(r=>{o(r)})),[i]),{toasts:e,showToast:r=>i.showToast(r),dismissToast:r=>i.dismissToast(r),clearToasts:()=>i.clearToasts()}}var oe=require("react"),He=class{modals=new Map;activeStack=[];listeners=new Set;openModal(e){if(!e||typeof e!="string")return;let o=e.trim();if(o){if(this.modals.set(o,!0),this.activeStack=this.activeStack.filter(r=>r!==o).concat(o),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:open",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(r)}catch{}this.notify()}}closeModal(e){if(e&&typeof e=="string"){let o=e.trim();if(this.modals.set(o,!1),this.activeStack=this.activeStack.filter(r=>r!==o),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:close",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(r)}catch{}}else{let o=this.activeStack.pop();if(o){if(this.modals.set(o,!1),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:close",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(r)}catch{}}else for(let r of this.modals.keys())this.modals.set(r,!1)}this.notify()}toggleModal(e){return this.isModalOpen(e)?(this.closeModal(e),!1):(this.openModal(e),!0)}isModalOpen(e){return e?!!this.modals.get(e.trim()):!1}hasState(e){return e?this.modals.has(e.trim()):!1}getState(){let e={};for(let[o,r]of this.modals.entries())e[o]=r;return e}getActiveModals(){return[...this.activeStack]}reset(){this.modals.clear(),this.activeStack=[],this.notify()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){let e=this.getState();for(let o of this.listeners)try{o(e)}catch(r){console.error("Error in modal listener callback:",r)}}},Q=new He;function at(i,e=Q){if(!i)return{isOpen:!1,open:()=>{},close:()=>{},toggle:()=>!1};let[o,r]=(0,oe.useState)(()=>e.isModalOpen(i));(0,oe.useEffect)(()=>(r(e.isModalOpen(i)),e.subscribe(l=>{r(!!l[i])})),[i,e]);let n=(0,oe.useCallback)(()=>e.openModal(i),[i,e]),t=(0,oe.useCallback)(()=>e.closeModal(i),[i,e]),d=(0,oe.useCallback)(()=>e.toggleModal(i),[i,e]);return{isOpen:o,open:n,close:t,toggle:d}}function st(i=Q){let[e,o]=(0,oe.useState)(()=>i.getState());return(0,oe.useEffect)(()=>(o(i.getState()),i.subscribe(r=>{o(r)})),[i]),{modals:e,activeModals:i.getActiveModals(),isOpen:r=>!!e[r],openModal:r=>i.openModal(r),closeModal:r=>i.closeModal(r),toggleModal:r=>i.toggleModal(r)}}var dt=(i,e)=>{let o=i.payload||{},r=String(o.message||"").trim();if(!r)throw new Error("Toast message cannot be empty");let n=o.type||o.variant||"info",t=o.duration!==void 0?o.duration:4e3,d=o.position||"top-right",l=o.title?String(o.title):void 0,c=(e.toastManager||fe).showToast({message:r,type:n,duration:t,position:d,title:l});return{id:c.id,message:c.message,type:c.type,title:c.title,duration:c.duration,position:c.position}},Le=(i,e)=>{let o=i.payload||{},r=o.modalId||o.modalNodeId||o.targetNodeId||o.nodeId,n=r?String(r).trim():"";if(!n)throw new Error("Modal ID or Modal Node ID is required for open_modal action");let t=e.modalManager||Q,l=!!o.toggle?t.toggleModal(n):(t.openModal(n),!0);if(e.state&&typeof e.state=="object"){let u=e.state.modals||{};e.state.modals={...u,[n]:l},e.state[n]=l}return e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${n}_open`]=l),{modalId:n,open:l}},lt=(i,e)=>Le({...i,payload:{...i.payload||{},toggle:!0}},e),ct=(i,e)=>{let o=i.payload||{},r=o.modalId||o.modalNodeId||o.targetNodeId||o.nodeId,n=r?String(r).trim():void 0;if((e.modalManager||Q).closeModal(n),n){if(e.state&&typeof e.state=="object"){let d=e.state.modals||{};e.state.modals={...d,[n]:!1},e.state[n]=!1}e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${n}_open`]=!1)}else e.state&&typeof e.state=="object"&&(e.state.modals={});return{modalId:n||"all",open:!1}};var pn=require("@kubuild/schema"),ut=require("@kubuild/core");async function fn(i,e){if(e?.copyFn)return await e.copyFn(i),!0;if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")try{return await navigator.clipboard.writeText(i),!0}catch{}if(typeof document<"u")try{let o=document.createElement("textarea");o.value=i,o.setAttribute("readonly",""),o.style.position="fixed",o.style.top="-9999px",o.style.left="-9999px",o.style.opacity="0",document.body.appendChild(o),o.focus(),o.select();let r=document.execCommand("copy");if(document.body.removeChild(o),r)return!0}catch{}return!1}var pt=(i,e)=>{let o=i.payload||{},r=String(o.url||"").trim();if(!r)throw new Error("Navigation URL cannot be empty");if(!(0,pn.isSafeActionUrl)(r))throw new Error(`Disallowed or unsafe protocol in navigation URL: "${r}"`);let n=o.target||"_self",t=o.replace??!1,d=o.behavior||"smooth",l=o.scroll??!0;if(r.startsWith("#")){if(typeof document<"u"){try{let c=document.querySelector(r)||document.getElementById(r.slice(1));c&&typeof c.scrollIntoView=="function"&&c.scrollIntoView({behavior:l===!1?"auto":d,block:"start"})}catch{}if(typeof window<"u"&&window.location)try{window.location.hash=r}catch{}}return{url:r,target:"_self",replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!0}}if(n==="_blank")return typeof window<"u"&&typeof window.open=="function"&&window.open(r,"_blank","noopener,noreferrer"),{url:r,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1};let u=typeof e.onNavigate=="function"&&e.onNavigate||typeof e.navigateFn=="function"&&e.navigateFn;return u?(u(r,{target:n,replace:t,scroll:l,behavior:d}),{url:r,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1}):(typeof window<"u"&&window.location&&(t?window.location.replace(r):window.location.assign(r)),{url:r,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1})},ft=async(i,e)=>{let o=i.payload||{},r=o.text!==void 0?o.text:o.value!==void 0?o.value:"",n=typeof r=="object"&&r!==null?JSON.stringify(r):String(r??""),t=typeof e.copyFn=="function"?e.copyFn:typeof e.clipboardFn=="function"?e.clipboardFn:void 0;return await fn(n,{copyFn:t}),o.notify!==!1&&(o.notify===!0||o.toastMessage)&&(e.toastManager||fe).showToast({message:o.toastMessage||"Copied to clipboard!",type:"success",duration:3e3}),{text:n,copied:!0}},gt=(i,e)=>{let r=(i.payload||{}).formId||(typeof e.formId=="string"?e.formId:void 0);if(typeof e.resetForm=="function"&&e.resetForm(),e.form&&typeof e.form=="object")for(let n of Object.keys(e.form))e.form[n]="";if(typeof document<"u")try{let n=r?document.getElementById(r):document.querySelector("form");n&&typeof n.reset=="function"&&n.reset()}catch{}return{formId:r,reset:!0}},mt=(i,e)=>{let o=i.payload||{},r=String(o.eventName||"").trim(),n=String((0,ut.interpolateValue)(r,e)).trim();if(!n)throw new Error("Custom event name cannot be empty");let t=o.detail||{},d={};for(let[u,c]of Object.entries(t))d[u]=(0,ut.interpolateValue)(c,e);let l=!1;if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let u=new CustomEvent(n,{detail:d,bubbles:o.bubbles!==!1,cancelable:o.cancelable!==!1});window.dispatchEvent(u),l=!0;let c=window;Array.isArray(c.dataLayer)&&c.dataLayer.push({event:n,...d})}return{eventName:n,detail:d,dispatched:l}};var se=require("@kubuild/core");var Ee="data-kubuild-tracking";function yt(i){if(typeof window>"u"||typeof document>"u")return()=>{};if(!i||i.enabled===!1)return bt(),()=>{};let e=i.providers||{};if(e.meta&&e.meta.enabled!==!1&&e.meta.pixelId){let o=e.meta.pixelId.trim(),r=`kubuild-tracking-meta-${o}`;document.getElementById(r)||((function(n,t,d,l,u,c,f){n.fbq||(u=n.fbq=function(){u.callMethod?u.callMethod.apply(u,arguments):u.queue.push(arguments)},n._fbq||(n._fbq=u),u.push=u,u.loaded=!0,u.version="2.0",u.queue=[],c=t.createElement(d),c.async=!0,c.id=r,c.setAttribute(Ee,"meta"),c.src=l,f=t.getElementsByTagName(d)[0],f&&f.parentNode?f.parentNode.insertBefore(c,f):t.head.appendChild(c))})(window,document,"script","https://connect.facebook.net/en_US/fbevents.js"),window.fbq&&(window.fbq("init",o),i.autoPageView!==!1&&window.fbq("track","PageView")))}if(e.google&&e.google.enabled!==!1&&e.google.measurementId){let o=e.google.measurementId.trim(),r=`kubuild-tracking-ga4-${o}`;if(!document.getElementById(r)){window.dataLayer=window.dataLayer||[],window.gtag=window.gtag||function(){window.dataLayer?.push(arguments)},window.gtag("js",new Date),window.gtag("config",o,{send_page_view:i.autoPageView!==!1});let n=document.createElement("script");n.id=r,n.async=!0,n.setAttribute(Ee,"google"),n.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(o)}`,document.head.appendChild(n)}}if(e.gtm&&e.gtm.enabled!==!1&&e.gtm.containerId){let o=e.gtm.containerId.trim(),r=`kubuild-tracking-gtm-${o}`;if(!document.getElementById(r)){window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":new Date().getTime(),event:"gtm.js"});let n=document.createElement("script");n.id=r,n.async=!0,n.setAttribute(Ee,"gtm"),n.src=`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(o)}`,document.head.appendChild(n)}}if(e.tiktok&&e.tiktok.enabled!==!1&&e.tiktok.pixelId){let o=e.tiktok.pixelId.trim(),r=`kubuild-tracking-tiktok-${o}`;document.getElementById(r)||(function(n,t,d){n.TiktokAnalyticsObject=d;var l=n[d]=n[d]||[];l.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],l.setAndDefer=function(c,f){c[f]=function(){c.push([f].concat(Array.prototype.slice.call(arguments,0)))}};for(var u=0;u<l.methods.length;u++)l.setAndDefer(l,l.methods[u]);l.instance=function(c){for(var f=l._i[c]||[],s=0;s<l.methods.length;s++)l.setAndDefer(f,l.methods[s]);return f},l.load=function(c,f){var s="https://analytics.tiktok.com/i18n/pixel/events.js";l._i=l._i||{},l._i[c]=[],l._i[c]._u=s,l._t=l._t||{},l._t[c]=+new Date,l._o=l._o||{},l._o[c]=f||{};var a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=s+"?sdkid="+c+"&lib="+d,a.id=r,a.setAttribute(Ee,"tiktok");var p=document.getElementsByTagName("script")[0];p&&p.parentNode?p.parentNode.insertBefore(a,p):document.head.appendChild(a)},l.load(o),i.autoPageView!==!1&&l.page()})(window,document,"ttq")}return()=>{bt()}}function bt(){if(typeof document>"u")return;document.querySelectorAll(`script[${Ee}]`).forEach(e=>{e.parentNode?.removeChild(e)})}var gn=new Set(["AddPaymentInfo","AddToCart","AddToWishlist","CompleteRegistration","Contact","CustomizeProduct","Donate","FindLocation","InitiateCheckout","Lead","PageView","Purchase","Schedule","Search","StartTrial","SubmitApplication","Subscribe","ViewContent"]);function ht(i,e,o){if(typeof window>"u")return;let r=o?.config;if(r&&r.enabled===!1)return;let n=o?.provider||"all",t=o?.eventId,d=e||{},l=o?.eventType,u=(n==="all"||n==="meta")&&(!r?.providers?.meta||r.providers.meta.enabled!==!1),c=(n==="all"||n==="google")&&(!r?.providers?.google||r.providers.google.enabled!==!1),f=(n==="all"||n==="tiktok")&&(!r?.providers?.tiktok||r.providers.tiktok.enabled!==!1);if(r?.debugMode&&console.log(`[Browser Pixel Track: ${i}]`,{eventId:t,targetProvider:n,eventType:l,params:d}),u&&typeof window.fbq=="function"){let a=l==="custom"||!l&&!gn.has(i)?"trackCustom":"track";t?window.fbq(a,i,d,{eventID:t}):window.fbq(a,i,d)}c&&typeof window.gtag=="function"&&window.gtag("event",i,{...d,...t?{event_id:t}:{}}),f&&window.ttq&&typeof window.ttq.track=="function"&&window.ttq.track(i,d,t?{event_id:t}:void 0)}var vt=async(i,e)=>{let o=i.payload||{};if(o.enabled===!1)return{eventName:o.eventName||"",eventId:"",delivery:o.delivery||"both",provider:o.provider||"all",params:{},userData:{},skipped:!0,reason:"Track event step is disabled"};let r=e.document,n=e.trackingConfig||r?.tracking||r?.metadata?.tracking;if(n&&n.enabled===!1)return{eventName:o.eventName||"",eventId:"",delivery:o.delivery||"both",provider:o.provider||"all",params:{},userData:{},skipped:!0,reason:"Tracking is disabled globally in document settings"};let t=String(o.eventName||"").trim(),d=String((0,se.interpolateValue)(t,e)).trim();if(!d)throw new Error("Track event name cannot be empty");let l=o.params||{},u={};for(let[h,v]of Object.entries(l))u[h]=(0,se.interpolateValue)(v,e);let c=o.userData||{},f={};for(let[h,v]of Object.entries(c))f[h]=(0,se.interpolateValue)(v,e);let s=o.eventId?String((0,se.interpolateValue)(o.eventId,e)):"";s||(s=(0,se.generateTrackingEventId)());let a=o.delivery||n?.defaultDelivery||"both",p=o.provider||"all",g=!1,y=!1,b;if((a==="client_only"||a==="both")&&(ht(d,u,{eventId:s,config:n,provider:p,eventType:o.eventType}),g=!0),a==="server_only"||a==="both"){let h=o.serverRelayUrl;!h&&n?.providers&&(p==="meta"?h=n.providers.meta?.serverRelayUrl:p==="tiktok"?h=n.providers.tiktok?.serverRelayUrl:p==="google"?h=n.providers.google?.serverRelayUrl:h=n.providers.meta?.serverRelayUrl||n.providers.tiktok?.serverRelayUrl||n.providers.google?.serverRelayUrl);let v={eventName:d,eventId:s,eventTime:Math.floor(Date.now()/1e3),eventSourceUrl:typeof window<"u"?window.location.href:void 0,params:u,userData:f};if(typeof window<"u"&&h)try{let m=await(e.fetch||window.fetch)(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({event:v,provider:p})});m.ok?y=!0:b=`Server relay responded with status ${m.status}`}catch(x){b=x instanceof Error?x.message:String(x)}else try{let x=await(0,se.dispatchServerTracking)(v,n);y=x.success,x.success||(b="One or more server tracking providers failed")}catch(x){b=x instanceof Error?x.message:String(x)}}return{eventName:d,eventId:s,delivery:a,provider:p,params:u,userData:f,clientDispatched:g,serverDispatched:y,serverError:b}};var bn=require("react");var re=require("lucide-react"),W=require("react/jsx-runtime"),lo={"top-right":{top:"16px",right:"16px",alignItems:"flex-end"},"top-left":{top:"16px",left:"16px",alignItems:"flex-start"},"top-center":{top:"16px",left:"50%",transform:"translateX(-50%)",alignItems:"center"},"bottom-right":{bottom:"16px",right:"16px",alignItems:"flex-end"},"bottom-left":{bottom:"16px",left:"16px",alignItems:"flex-start"},"bottom-center":{bottom:"16px",left:"50%",transform:"translateX(-50%)",alignItems:"center"}},mn={success:{bg:"#f0fdf4",border:"#bbf7d0",text:"#166534",titleText:"#14532d",iconColor:"#16a34a",Icon:re.CheckCircle2},error:{bg:"#fef2f2",border:"#fecaca",text:"#991b1b",titleText:"#7f1d1d",iconColor:"#dc2626",Icon:re.AlertCircle},warning:{bg:"#fffbeb",border:"#fde68a",text:"#92400e",titleText:"#78350f",iconColor:"#d97706",Icon:re.AlertTriangle},info:{bg:"#eff6ff",border:"#bfdbfe",text:"#1e40af",titleText:"#1e3a8a",iconColor:"#2563eb",Icon:re.Info}},yn=({toast:i})=>{let e=mn[i.type]||mn.info,o=e.Icon;return(0,W.jsxs)("div",{role:"alert","aria-live":"polite","data-testid":`toast-${i.id}`,"data-toast-type":i.type,style:{display:"flex",alignItems:"flex-start",gap:"12px",width:"100%",maxWidth:"380px",minWidth:"280px",padding:"12px 14px",backgroundColor:e.bg,border:`1px solid ${e.border}`,borderRadius:"8px",boxShadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",color:e.text,fontSize:"14px",lineHeight:"1.4",pointerEvents:"auto",animation:"kubuildToastIn 200ms cubic-bezier(0.16, 1, 0.3, 1)",wordBreak:"break-word",boxSizing:"border-box",transition:"all 200ms ease"},children:[(0,W.jsx)("div",{style:{flexShrink:0,marginTop:"2px",color:e.iconColor},children:(0,W.jsx)(o,{size:18,color:e.iconColor})}),(0,W.jsxs)("div",{style:{flex:1,minWidth:0},children:[i.title&&(0,W.jsx)("div",{style:{fontWeight:600,fontSize:"14px",marginBottom:"2px",color:e.titleText},children:i.title}),(0,W.jsx)("div",{style:{color:e.text},children:i.message})]}),i.dismissible&&(0,W.jsx)("button",{type:"button","aria-label":"Close notification",onClick:i.dismiss,"data-testid":`toast-dismiss-${i.id}`,style:{flexShrink:0,background:"none",border:"none",cursor:"pointer",padding:"2px",marginLeft:"4px",color:e.text,opacity:.7,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px"},children:(0,W.jsx)(re.X,{size:16})})]})},xt=({manager:i=fe,position:e,className:o,maxVisible:r=5})=>{let{toasts:n}=it(i),t=(0,bn.useMemo)(()=>{if(e)return{[e]:n.filter(l=>(l.position||"top-right")===e)};let d={"top-right":[],"top-left":[],"top-center":[],"bottom-right":[],"bottom-left":[],"bottom-center":[]};return n.forEach(l=>{let u=l.position||"top-right";d[u].push(l)}),d},[n,e]);return n.length===0?null:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)("style",{children:`
|
|
107
|
+
`)}`:""}function ao(r,e){let o=e||(typeof window<"u"?window.document:null);if(!o)return!1;let i=o.querySelector(`[data-kubuild-node="${Oe(r)}"]`);if(!i)return!1;let n=i.style.animation;return i.style.animation="none",i.offsetWidth,i.style.animation=n,i.dispatchEvent(new CustomEvent("kubuild:replay-animation",{bubbles:!0,detail:{nodeId:r}})),!0}var rn=require("react"),an=require("lucide-react"),ie=require("react/jsx-runtime"),Te=class extends rn.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,o){this.props.onError&&this.props.onError(e,o),this.props.onDiagnostic&&this.props.onDiagnostic({code:"ACTION_EXECUTION_ERROR",actionType:"render",nodeId:this.props.nodeId,message:`Render error in <${this.props.componentType}> (ID: ${this.props.nodeId}): ${e.message}`,error:e})}render(){if(this.state.hasError){let{nodeId:e,componentType:o,mode:i="runtime"}=this.props,n=this.state.error?.message||"Unknown render error";return i==="editor"?(0,ie.jsxs)("div",{"data-kubuild-node":e,"data-kubuild-error":o,style:{padding:"12px 16px",margin:"4px 0",backgroundColor:"#fef2f2",border:"1px solid #ef4444",borderRadius:"6px",color:"#b91c1c",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"13px",lineHeight:"1.4"},children:[(0,ie.jsxs)("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[(0,ie.jsx)(an.AlertTriangle,{size:14,"aria-hidden":"true"}),(0,ie.jsxs)("span",{children:["Component Render Error: <",o,">"]})]}),(0,ie.jsxs)("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",(0,ie.jsx)("code",{children:e})," \u2014 ",n]})]}):(0,ie.jsx)("div",{"data-kubuild-node":e,"data-kubuild-error":o,style:{display:"none"},"aria-hidden":"true"})}return this.props.children}};var sn=require("@kubuild/schema"),rt=require("@kubuild/components"),dn=require("@kubuild/core");function so(r){switch(r){case"string":return"";case"number":return 0;case"boolean":return!1}}function lo(r,e,o,i,n){let t=r.props?.[e.name],d=(0,rt.primitiveTypeForField)(e);if(d===void 0||t===void 0)return t;let l=o.defaultProps?.[e.name]??e.defaultValue??so(d);if((0,sn.isVariableBinding)(t)){let c=(0,dn.resolveBinding)(t,i);return typeof c.value===d?d==="string"&&c.value===""&&typeof t.fallback=="string"&&t.fallback.trim().length>0?t.fallback:c.value:(n.push({code:"INCOMPATIBLE_BINDING_TYPE",nodeId:r.id,propName:e.name,expectedType:d,actualType:typeof c.value,message:`Prop "${e.name}" on node "${r.id}" expected a ${d} but resolved binding "${t.key}" produced a ${typeof c.value}.`}),l)}return d==="string"&&typeof t=="string"&&t.includes("{{")?Ge(i,t):t}function ln(r,e,o){let i=r.props||{};if(!e||!e.propFields||e.propFields.length===0)return{props:i,diagnostics:[]};let n=[],t={...i};for(let d of e.propFields)(0,rt.primitiveTypeForField)(d)!==void 0&&(t[d.name]=lo(r,d,e,o,n));return{props:t,diagnostics:n}}var Tn=be(require("react"),1),F=require("@kubuild/schema"),le=require("lucide-react"),Z=require("@kubuild/core");var E=require("react"),se=require("@kubuild/core");var cn=require("@kubuild/schema"),ue=require("@kubuild/core"),ae=class extends Error{status;statusText;url;method;data;headers;response;isTimeout;isCancelled;isNetworkError;stepId;cause;constructor(e,o){super(e),this.name="ApiRequestError",this.status=o?.status,this.statusText=o?.statusText,this.url=o?.url,this.method=o?.method,this.data=o?.data,this.headers=o?.headers,this.response=o?.response,this.isTimeout=o?.isTimeout??!1,this.isCancelled=o?.isCancelled??!1,this.isNetworkError=o?.isNetworkError??!1,this.stepId=o?.stepId,this.cause=o?.cause}};function un(r,e,o){if(!r||typeof r!="string")throw new ae("API request URL is required",{url:r});let i=r.trim();if(!(0,cn.isSafeActionUrl)(i))throw new ae(`Disallowed or unsafe protocol in API request URL: "${i}"`,{url:i});let n=i;if(o&&!i.startsWith("http://")&&!i.startsWith("https://")&&!i.startsWith("//")){let t=o.endsWith("/")?o.slice(0,-1):o,d=i.startsWith("/")?i:`/${i}`;n=`${t}${d}`}if(e&&typeof e=="object"&&Object.keys(e).length>0){let[t,d]=n.split("?"),l=new URLSearchParams(d||"");for(let[p,f]of Object.entries(e))f!=null&&(Array.isArray(f)?f.forEach(a=>l.append(p,String(a))):l.set(p,String(f)));let c=l.toString();n=c?`${t}?${c}`:t}return n}function pn(r,e,o,i={}){let n=r.toUpperCase(),t={...i};if(n==="GET"||n==="HEAD")return{body:void 0,headers:t};if(e==null)return{body:void 0,headers:t};let d=Object.keys(t).find(p=>p.toLowerCase()==="content-type"),l=d?t[d]:void 0,c=(o||"").toLowerCase();if(c==="form-data"||c==="formdata"||c==="multipart"||l&&l.includes("multipart/form-data")){if(typeof FormData<"u"&&e instanceof FormData)return d&&delete t[d],{body:e,headers:t};if(typeof FormData<"u"&&typeof e=="object"&&e!==null){let p=new FormData;for(let[f,a]of Object.entries(e))a!=null&&(typeof Blob<"u"&&a instanceof Blob?p.append(f,a):Array.isArray(a)?a.forEach(s=>p.append(f,typeof s=="object"?JSON.stringify(s):String(s))):typeof a=="object"?p.append(f,JSON.stringify(a)):p.append(f,String(a)));return d&&delete t[d],{body:p,headers:t}}}if(c==="urlencoded"||c==="url-encoded"||l&&l.includes("application/x-www-form-urlencoded")){if(typeof URLSearchParams<"u"&&e instanceof URLSearchParams)return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:t};if(typeof e=="object"&&e!==null){let p=new URLSearchParams;for(let[f,a]of Object.entries(e))a!=null&&(Array.isArray(a)?a.forEach(s=>p.append(f,String(s))):p.append(f,String(a)));return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:p,headers:t}}if(typeof e=="string")return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:t}}if(c==="raw"||c==="text")return d||(t["Content-Type"]="text/plain;charset=UTF-8"),{body:typeof e=="string"?e:String(e),headers:t};if(typeof e=="object"&&e!==null)return d||(t["Content-Type"]="application/json"),{body:JSON.stringify(e),headers:t};if(typeof e=="string"){if(!d)try{JSON.parse(e),t["Content-Type"]="application/json"}catch{t["Content-Type"]="text/plain;charset=UTF-8"}return{body:e,headers:t}}return{body:String(e),headers:t}}async function co(r){let e=r.headers.get("content-type")||"",o=await r.text();if(!o||o.trim()==="")return null;if(e.includes("application/json")||e.includes("+json"))try{return JSON.parse(o)}catch{return o}let i=o.trim();if(i.startsWith("{")&&i.endsWith("}")||i.startsWith("[")&&i.endsWith("]"))try{return JSON.parse(i)}catch{return o}return o}function Ve(r){let e=r?.defaultTimeout,o=r?.baseUrl,i=r?.headers;return async function(t,d,l){let c=d.fetchFn||r?.fetchFn||(typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch:typeof fetch<"u"?fetch:void 0);if(!c)throw new ae("No fetch implementation available for API request runner",{stepId:t.id});let p=t.payload||{},f=String(p.method||"GET").toUpperCase(),a=p.timeout??e,s=p.baseUrl??o,u=un(String(p.url||""),p.queryParams,s),g={...i||{},...p.headers||{}},{body:y,headers:m}=pn(f,p.body,p.bodyFormat||p.bodyType,g),v=new AbortController,h,x=()=>{v.abort(l?.reason)};if(l){if(l.aborted)throw new ue.ActionCancellationError(l.reason instanceof Error?l.reason.message:"API request cancelled",t.id);l.addEventListener("abort",x,{once:!0})}a!==void 0&&a>0&&(h=setTimeout(()=>{v.abort(new ue.ActionTimeoutError(`API request timed out after ${a}ms`,a,t.id))},a));try{let b=await c(u,{method:f,headers:m,body:y,signal:v.signal}),w={};b.headers&&typeof b.headers.forEach=="function"&&b.headers.forEach((S,T)=>{w[T.toLowerCase()]=S});let k=await co(b),C={ok:b.ok,status:b.status,statusText:b.statusText,headers:w,data:k,body:k,url:b.url||u};if(!b.ok){let S=(typeof k=="object"&&k!==null&&"message"in k?String(k.message):void 0)||(typeof k=="string"&&k.length<200?k:void 0)||`HTTP ${b.status} ${b.statusText||"Error"}`;throw new ae(`API request failed: ${S}`,{status:b.status,statusText:b.statusText,url:u,method:f,data:k,headers:w,response:C,stepId:t.id})}return C}catch(b){if(b instanceof ae)throw b;if(v.signal.aborted){let k=v.signal.reason;if(k instanceof ue.ActionTimeoutError||k instanceof Error&&k.name==="ActionTimeoutError"||k instanceof ue.ActionCancellationError||k instanceof Error&&k.name==="ActionCancellationError")throw k;if(b instanceof Error&&(b.name==="AbortError"||b.name==="TimeoutError"))throw h===void 0&&l?.aborted?new ue.ActionCancellationError("API request cancelled",t.id):new ue.ActionTimeoutError(`API request timed out after ${a}ms`,a??0,t.id)}let w=b instanceof Error?b.message:String(b);throw new ae(`Network error during API request: ${w}`,{url:u,method:f,isNetworkError:!0,stepId:t.id,cause:b})}finally{h!==void 0&&clearTimeout(h),l&&l.removeEventListener("abort",x)}}}var it=Ve();var _e=require("react"),uo=0,Be=class{toasts=[];listeners=new Set;timers=new Map;showToast(e){let o=typeof e=="string"?{message:e}:e,i=o.id||`toast_${Date.now()}_${++uo}`,n=o.type||o.variant||"info",t=o.duration!==void 0?Math.max(0,o.duration):4e3,d=o.position||"top-right",l=o.dismissible!==!1;this.timers.has(i)&&(clearTimeout(this.timers.get(i)),this.timers.delete(i));let c={id:i,type:n,message:o.message,title:o.title,duration:t,position:d,dismissible:l,createdAt:Date.now(),dismiss:()=>this.dismissToast(i)};if(this.toasts=this.toasts.filter(p=>p.id!==i).concat(c),t>0){let p=setTimeout(()=>{this.dismissToast(i)},t);this.timers.set(i,p)}return this.notify(),c}dismissToast(e){this.timers.has(e)&&(clearTimeout(this.timers.get(e)),this.timers.delete(e));let o=this.toasts.length;this.toasts=this.toasts.filter(i=>i.id!==e),this.toasts.length!==o&&this.notify()}clearToasts(){for(let e of this.timers.values())clearTimeout(e);this.timers.clear(),this.toasts=[],this.notify()}getToasts(){return[...this.toasts]}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){let e=this.getToasts();for(let o of this.listeners)try{o(e)}catch(i){console.error("Error in toast listener callback:",i)}}},pe=new Be;function at(r=pe){let[e,o]=(0,_e.useState)(()=>r.getToasts());return(0,_e.useEffect)(()=>(o(r.getToasts()),r.subscribe(i=>{o(i)})),[r]),{toasts:e,showToast:i=>r.showToast(i),dismissToast:i=>r.dismissToast(i),clearToasts:()=>r.clearToasts()}}var oe=require("react"),He=class{modals=new Map;activeStack=[];listeners=new Set;openModal(e){if(!e||typeof e!="string")return;let o=e.trim();if(o){if(this.modals.set(o,!0),this.activeStack=this.activeStack.filter(i=>i!==o).concat(o),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let i=new CustomEvent("kubuild:modal:open",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(i)}catch{}this.notify()}}closeModal(e){if(e&&typeof e=="string"){let o=e.trim();if(this.modals.set(o,!1),this.activeStack=this.activeStack.filter(i=>i!==o),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let i=new CustomEvent("kubuild:modal:close",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(i)}catch{}}else{let o=this.activeStack.pop();if(o){if(this.modals.set(o,!1),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let i=new CustomEvent("kubuild:modal:close",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(i)}catch{}}else for(let i of this.modals.keys())this.modals.set(i,!1)}this.notify()}toggleModal(e){return this.isModalOpen(e)?(this.closeModal(e),!1):(this.openModal(e),!0)}isModalOpen(e){return e?!!this.modals.get(e.trim()):!1}hasState(e){return e?this.modals.has(e.trim()):!1}getState(){let e={};for(let[o,i]of this.modals.entries())e[o]=i;return e}getActiveModals(){return[...this.activeStack]}reset(){this.modals.clear(),this.activeStack=[],this.notify()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){let e=this.getState();for(let o of this.listeners)try{o(e)}catch(i){console.error("Error in modal listener callback:",i)}}},Q=new He;function st(r,e=Q){if(!r)return{isOpen:!1,open:()=>{},close:()=>{},toggle:()=>!1};let[o,i]=(0,oe.useState)(()=>e.isModalOpen(r));(0,oe.useEffect)(()=>(i(e.isModalOpen(r)),e.subscribe(l=>{i(!!l[r])})),[r,e]);let n=(0,oe.useCallback)(()=>e.openModal(r),[r,e]),t=(0,oe.useCallback)(()=>e.closeModal(r),[r,e]),d=(0,oe.useCallback)(()=>e.toggleModal(r),[r,e]);return{isOpen:o,open:n,close:t,toggle:d}}function dt(r=Q){let[e,o]=(0,oe.useState)(()=>r.getState());return(0,oe.useEffect)(()=>(o(r.getState()),r.subscribe(i=>{o(i)})),[r]),{modals:e,activeModals:r.getActiveModals(),isOpen:i=>!!e[i],openModal:i=>r.openModal(i),closeModal:i=>r.closeModal(i),toggleModal:i=>r.toggleModal(i)}}var lt=(r,e)=>{let o=r.payload||{},i=String(o.message||"").trim();if(!i)throw new Error("Toast message cannot be empty");let n=o.type||o.variant||"info",t=o.duration!==void 0?o.duration:4e3,d=o.position||"top-right",l=o.title?String(o.title):void 0,p=(e.toastManager||pe).showToast({message:i,type:n,duration:t,position:d,title:l});return{id:p.id,message:p.message,type:p.type,title:p.title,duration:p.duration,position:p.position}},Le=(r,e)=>{let o=r.payload||{},i=o.modalId||o.modalNodeId||o.targetNodeId||o.nodeId,n=i?String(i).trim():"";if(!n)throw new Error("Modal ID or Modal Node ID is required for open_modal action");let t=e.modalManager||Q,l=!!o.toggle?t.toggleModal(n):(t.openModal(n),!0);if(e.state&&typeof e.state=="object"){let c=e.state.modals||{};e.state.modals={...c,[n]:l},e.state[n]=l}return e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${n}_open`]=l),{modalId:n,open:l}},ct=(r,e)=>Le({...r,payload:{...r.payload||{},toggle:!0}},e),ut=(r,e)=>{let o=r.payload||{},i=o.modalId||o.modalNodeId||o.targetNodeId||o.nodeId,n=i?String(i).trim():void 0;if((e.modalManager||Q).closeModal(n),n){if(e.state&&typeof e.state=="object"){let d=e.state.modals||{};e.state.modals={...d,[n]:!1},e.state[n]=!1}e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${n}_open`]=!1)}else e.state&&typeof e.state=="object"&&(e.state.modals={});return{modalId:n||"all",open:!1}};var fn=require("@kubuild/schema"),pt=require("@kubuild/core");async function gn(r,e){if(e?.copyFn)return await e.copyFn(r),!0;if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")try{return await navigator.clipboard.writeText(r),!0}catch{}if(typeof document<"u")try{let o=document.createElement("textarea");o.value=r,o.setAttribute("readonly",""),o.style.position="fixed",o.style.top="-9999px",o.style.left="-9999px",o.style.opacity="0",document.body.appendChild(o),o.focus(),o.select();let i=document.execCommand("copy");if(document.body.removeChild(o),i)return!0}catch{}return!1}var ft=(r,e)=>{let o=r.payload||{},i=String(o.url||"").trim();if(!i)throw new Error("Navigation URL cannot be empty");if(!(0,fn.isSafeActionUrl)(i))throw new Error(`Disallowed or unsafe protocol in navigation URL: "${i}"`);let n=o.target||"_self",t=o.replace??!1,d=o.behavior||"smooth",l=o.scroll??!0;if(i.startsWith("#")){if(typeof document<"u"){try{let p=document.querySelector(i)||document.getElementById(i.slice(1));p&&typeof p.scrollIntoView=="function"&&p.scrollIntoView({behavior:l===!1?"auto":d,block:"start"})}catch{}if(typeof window<"u"&&window.location)try{window.location.hash=i}catch{}}return{url:i,target:"_self",replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!0}}if(n==="_blank")return typeof window<"u"&&typeof window.open=="function"&&window.open(i,"_blank","noopener,noreferrer"),{url:i,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1};let c=typeof e.onNavigate=="function"&&e.onNavigate||typeof e.navigateFn=="function"&&e.navigateFn;return c?(c(i,{target:n,replace:t,scroll:l,behavior:d}),{url:i,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1}):(typeof window<"u"&&window.location&&(t?window.location.replace(i):window.location.assign(i)),{url:i,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1})},gt=async(r,e)=>{let o=r.payload||{},i=o.text!==void 0?o.text:o.value!==void 0?o.value:"",n=typeof i=="object"&&i!==null?JSON.stringify(i):String(i??""),t=typeof e.copyFn=="function"?e.copyFn:typeof e.clipboardFn=="function"?e.clipboardFn:void 0;return await gn(n,{copyFn:t}),o.notify!==!1&&(o.notify===!0||o.toastMessage)&&(e.toastManager||pe).showToast({message:o.toastMessage||"Copied to clipboard!",type:"success",duration:3e3}),{text:n,copied:!0}},mt=(r,e)=>{let i=(r.payload||{}).formId||(typeof e.formId=="string"?e.formId:void 0);if(typeof e.resetForm=="function"&&e.resetForm(),e.form&&typeof e.form=="object")for(let n of Object.keys(e.form))e.form[n]="";if(typeof document<"u")try{let n=i?document.getElementById(i):document.querySelector("form");n&&typeof n.reset=="function"&&n.reset()}catch{}return{formId:i,reset:!0}},bt=(r,e)=>{let o=r.payload||{},i=String(o.eventName||"").trim(),n=String((0,pt.interpolateValue)(i,e)).trim();if(!n)throw new Error("Custom event name cannot be empty");let t=o.detail||{},d={};for(let[c,p]of Object.entries(t))d[c]=(0,pt.interpolateValue)(p,e);let l=!1;if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let c=new CustomEvent(n,{detail:d,bubbles:o.bubbles!==!1,cancelable:o.cancelable!==!1});window.dispatchEvent(c),l=!0;let p=window;Array.isArray(p.dataLayer)&&p.dataLayer.push({event:n,...d})}return{eventName:n,detail:d,dispatched:l}};var bn=require("@kubuild/schema"),ge=require("@kubuild/core");var Ee="data-kubuild-tracking";function ht(r){if(typeof window>"u"||typeof document>"u")return()=>{};if(!r||r.enabled===!1)return yt(),()=>{};let e=r.providers||{};if(e.meta&&e.meta.enabled!==!1&&e.meta.pixelId){let o=e.meta.pixelId.trim(),i=`kubuild-tracking-meta-${o}`;document.getElementById(i)||((function(n,t,d,l,c,p,f){n.fbq||(c=n.fbq=function(){c.callMethod?c.callMethod.apply(c,arguments):c.queue.push(arguments)},n._fbq||(n._fbq=c),c.push=c,c.loaded=!0,c.version="2.0",c.queue=[],p=t.createElement(d),p.async=!0,p.id=i,p.setAttribute(Ee,"meta"),p.src=l,f=t.getElementsByTagName(d)[0],f&&f.parentNode?f.parentNode.insertBefore(p,f):t.head.appendChild(p))})(window,document,"script","https://connect.facebook.net/en_US/fbevents.js"),window.fbq&&(window.fbq("init",o),r.autoPageView!==!1&&window.fbq("track","PageView")))}if(e.google&&e.google.enabled!==!1&&e.google.measurementId){let o=e.google.measurementId.trim(),i=`kubuild-tracking-ga4-${o}`;if(!document.getElementById(i)){window.dataLayer=window.dataLayer||[],window.gtag=window.gtag||function(){window.dataLayer?.push(arguments)},window.gtag("js",new Date),window.gtag("config",o,{send_page_view:r.autoPageView!==!1});let n=document.createElement("script");n.id=i,n.async=!0,n.setAttribute(Ee,"google"),n.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(o)}`,document.head.appendChild(n)}}if(e.gtm&&e.gtm.enabled!==!1&&e.gtm.containerId){let o=e.gtm.containerId.trim(),i=`kubuild-tracking-gtm-${o}`;if(!document.getElementById(i)){window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":new Date().getTime(),event:"gtm.js"});let n=document.createElement("script");n.id=i,n.async=!0,n.setAttribute(Ee,"gtm"),n.src=`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(o)}`,document.head.appendChild(n)}}if(e.tiktok&&e.tiktok.enabled!==!1&&e.tiktok.pixelId){let o=e.tiktok.pixelId.trim(),i=`kubuild-tracking-tiktok-${o}`;document.getElementById(i)||(function(n,t,d){n.TiktokAnalyticsObject=d;var l=n[d]=n[d]||[];l.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],l.setAndDefer=function(p,f){p[f]=function(){p.push([f].concat(Array.prototype.slice.call(arguments,0)))}};for(var c=0;c<l.methods.length;c++)l.setAndDefer(l,l.methods[c]);l.instance=function(p){for(var f=l._i[p]||[],a=0;a<l.methods.length;a++)l.setAndDefer(f,l.methods[a]);return f},l.load=function(p,f){var a="https://analytics.tiktok.com/i18n/pixel/events.js";l._i=l._i||{},l._i[p]=[],l._i[p]._u=a,l._t=l._t||{},l._t[p]=+new Date,l._o=l._o||{},l._o[p]=f||{};var s=document.createElement("script");s.type="text/javascript",s.async=!0,s.src=a+"?sdkid="+p+"&lib="+d,s.id=i,s.setAttribute(Ee,"tiktok");var u=document.getElementsByTagName("script")[0];u&&u.parentNode?u.parentNode.insertBefore(s,u):document.head.appendChild(s)},l.load(o),r.autoPageView!==!1&&l.page()})(window,document,"ttq")}return()=>{yt()}}function yt(){if(typeof document>"u")return;document.querySelectorAll(`script[${Ee}]`).forEach(e=>{e.parentNode?.removeChild(e)})}var mn=new Set(["AddPaymentInfo","AddToCart","AddToWishlist","CompleteRegistration","Contact","CustomizeProduct","Donate","FindLocation","InitiateCheckout","Lead","PageView","Purchase","Schedule","Search","StartTrial","SubmitApplication","Subscribe","ViewContent"]);function vt(r,e,o){if(typeof window>"u")return;let i=o?.config;if(i&&i.enabled===!1)return;let n=o?.provider||"all",t=o?.eventId,d=e||{},l=o?.eventType,c=(n==="all"||n==="meta")&&(!i?.providers?.meta||i.providers.meta.enabled!==!1),p=(n==="all"||n==="google")&&(!i?.providers?.google||i.providers.google.enabled!==!1),f=(n==="all"||n==="tiktok")&&(!i?.providers?.tiktok||i.providers.tiktok.enabled!==!1),a=i?.providers?.gtm,s=n==="gtm"&&(!a||a.enabled!==!1)||n==="all"&&!!a&&a.enabled!==!1&&!!a.containerId;if(i?.debugMode&&console.log(`[Browser Pixel Track: ${r}]`,{eventId:t,targetProvider:n,eventType:l,params:d}),c&&typeof window.fbq=="function"){let g=l==="custom"||!l&&!mn.has(r)?"trackCustom":"track";t?window.fbq(g,r,d,{eventID:t}):window.fbq(g,r,d)}p&&typeof window.gtag=="function"&&window.gtag("event",r,{...d,...t?{event_id:t}:{}}),f&&window.ttq&&typeof window.ttq.track=="function"&&window.ttq.track(r,d,t?{event_id:t}:void 0),s&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...d,event:r,...t?{event_id:t}:{}}))}var xt=async(r,e)=>{let o=r.payload||{};if(o.enabled===!1)return{eventName:o.eventName||"",eventId:"",delivery:o.delivery||"both",provider:o.provider||"all",params:{},userData:{},skipped:!0,reason:"Track event step is disabled"};let i=e.document,n=e.trackingConfig||i?.tracking||i?.metadata?.tracking;if(n&&n.enabled===!1)return{eventName:o.eventName||"",eventId:"",delivery:o.delivery||"both",provider:o.provider||"all",params:{},userData:{},skipped:!0,reason:"Tracking is disabled globally in document settings"};let t=String(o.eventName||"").trim(),d=String((0,ge.interpolateValue)(t,e)).trim();if(!d)throw new Error("Track event name cannot be empty");let l=o.params||{},c={};for(let[h,x]of Object.entries(l))c[h]=(0,ge.interpolateValue)(x,e);let p=o.userData||{},f={};for(let[h,x]of Object.entries(p))f[h]=(0,ge.interpolateValue)(x,e);let a=o.eventId?String((0,ge.interpolateValue)(o.eventId,e)):"";a||(a=(0,ge.generateTrackingEventId)());let s=o.delivery||n?.defaultDelivery||"both",u=o.provider||"all",g=!1,y=!1,m,v;if((s==="client_only"||s==="both")&&(vt(d,c,{eventId:a,config:n,provider:u,eventType:o.eventType}),g=!0),s==="server_only"||s==="both"){let h=e.trackingRuntime,x=e.reportDiagnostic,b=(w,k)=>{h?.onLog?.(w,k),n?.debugMode&&console.log(`[KUBUILD Tracking] ${w}`,k??"")};if(u==="gtm")v="GTM is client-side only (dataLayer); no server delivery";else if(!h?.relayUrl)v="Server delivery skipped: no tracking relay configured (RenderContext.tracking.relayUrl)",b(v,{eventName:d,eventId:a}),x?.({code:"TRACKING_RELAY_NOT_CONFIGURED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:d,message:v});else{let w={version:bn.TRACKING_RELAY_PROTOCOL_VERSION,provider:u,...h.documentId?{documentId:h.documentId}:{},event:{eventName:d,eventId:a,...o.eventType?{eventType:o.eventType}:{},eventTime:Math.floor(Date.now()/1e3),...typeof window<"u"&&window.location?.href?{eventSourceUrl:window.location.href}:{},actionSource:"website",params:c,userData:f}};try{let k=h.fetchFn||e.fetch||(typeof fetch=="function"?fetch:void 0);if(!k)throw new Error("fetch is not available in this environment");let C=await k(h.relayUrl,{method:"POST",headers:{"Content-Type":"application/json",...h.relayHeaders||{}},credentials:h.credentials??"same-origin",keepalive:!0,body:JSON.stringify(w)}),S=await(typeof C.json=="function"?C.json().catch(()=>null):null);C.ok&&(S?.success??!0)?y=!0:m=S?.error?.message||`Tracking relay responded with status ${C.status}`}catch(k){m=k instanceof Error?k.message:String(k)}m&&(b(`Tracking relay failed: ${m}`,{eventName:d,eventId:a}),x?.({code:"TRACKING_RELAY_FAILED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:d,message:m}))}}return{eventName:d,eventId:a,delivery:s,provider:u,params:c,userData:f,clientDispatched:g,serverDispatched:y,serverError:m,...v?{serverSkippedReason:v}:{}}};var hn=require("react");var re=require("lucide-react"),W=require("react/jsx-runtime"),po={"top-right":{top:"16px",right:"16px",alignItems:"flex-end"},"top-left":{top:"16px",left:"16px",alignItems:"flex-start"},"top-center":{top:"16px",left:"50%",transform:"translateX(-50%)",alignItems:"center"},"bottom-right":{bottom:"16px",right:"16px",alignItems:"flex-end"},"bottom-left":{bottom:"16px",left:"16px",alignItems:"flex-start"},"bottom-center":{bottom:"16px",left:"50%",transform:"translateX(-50%)",alignItems:"center"}},yn={success:{bg:"#f0fdf4",border:"#bbf7d0",text:"#166534",titleText:"#14532d",iconColor:"#16a34a",Icon:re.CheckCircle2},error:{bg:"#fef2f2",border:"#fecaca",text:"#991b1b",titleText:"#7f1d1d",iconColor:"#dc2626",Icon:re.AlertCircle},warning:{bg:"#fffbeb",border:"#fde68a",text:"#92400e",titleText:"#78350f",iconColor:"#d97706",Icon:re.AlertTriangle},info:{bg:"#eff6ff",border:"#bfdbfe",text:"#1e40af",titleText:"#1e3a8a",iconColor:"#2563eb",Icon:re.Info}},vn=({toast:r})=>{let e=yn[r.type]||yn.info,o=e.Icon;return(0,W.jsxs)("div",{role:"alert","aria-live":"polite","data-testid":`toast-${r.id}`,"data-toast-type":r.type,style:{display:"flex",alignItems:"flex-start",gap:"12px",width:"100%",maxWidth:"380px",minWidth:"280px",padding:"12px 14px",backgroundColor:e.bg,border:`1px solid ${e.border}`,borderRadius:"8px",boxShadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",color:e.text,fontSize:"14px",lineHeight:"1.4",pointerEvents:"auto",animation:"kubuildToastIn 200ms cubic-bezier(0.16, 1, 0.3, 1)",wordBreak:"break-word",boxSizing:"border-box",transition:"all 200ms ease"},children:[(0,W.jsx)("div",{style:{flexShrink:0,marginTop:"2px",color:e.iconColor},children:(0,W.jsx)(o,{size:18,color:e.iconColor})}),(0,W.jsxs)("div",{style:{flex:1,minWidth:0},children:[r.title&&(0,W.jsx)("div",{style:{fontWeight:600,fontSize:"14px",marginBottom:"2px",color:e.titleText},children:r.title}),(0,W.jsx)("div",{style:{color:e.text},children:r.message})]}),r.dismissible&&(0,W.jsx)("button",{type:"button","aria-label":"Close notification",onClick:r.dismiss,"data-testid":`toast-dismiss-${r.id}`,style:{flexShrink:0,background:"none",border:"none",cursor:"pointer",padding:"2px",marginLeft:"4px",color:e.text,opacity:.7,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px"},children:(0,W.jsx)(re.X,{size:16})})]})},kt=({manager:r=pe,position:e,className:o,maxVisible:i=5})=>{let{toasts:n}=at(r),t=(0,hn.useMemo)(()=>{if(e)return{[e]:n.filter(l=>(l.position||"top-right")===e)};let d={"top-right":[],"top-left":[],"top-center":[],"bottom-right":[],"bottom-left":[],"bottom-center":[]};return n.forEach(l=>{let c=l.position||"top-right";d[c].push(l)}),d},[n,e]);return n.length===0?null:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)("style",{children:`
|
|
108
108
|
@keyframes kubuildToastIn {
|
|
109
109
|
from {
|
|
110
110
|
opacity: 0;
|
|
@@ -115,110 +115,121 @@ ${e.join(`
|
|
|
115
115
|
transform: translateY(0) scale(1);
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
-
`}),Object.entries(t).map(([d,l])=>{if(!l||l.length===0)return null;let
|
|
118
|
+
`}),Object.entries(t).map(([d,l])=>{if(!l||l.length===0)return null;let c=l.slice(-i);return(0,W.jsx)("div",{"data-testid":`toast-container-${d}`,className:o,style:{position:"fixed",zIndex:99999,display:"flex",flexDirection:"column",gap:"8px",maxWidth:"calc(100vw - 32px)",pointerEvents:"none",...po[d]},children:c.map(p=>(0,W.jsx)(vn,{toast:p},p.id))},d)})]})};function xn(r){return{api_request:r?.apiRequest?Ve(r.apiRequest):it,show_toast:lt,open_modal:Le,close_modal:ut,toggle_modal:ct,navigate:ft,copy_clipboard:gt,reset_form:mt,custom_event:bt,track_event:xt,...r?.handlers||{}}}function Ie(r,e){let o=xn(e);for(let[i,n]of Object.entries(o))(!r.hasHandler(i)||e?.handlers?.[i]||e?.apiRequest)&&r.registerHandler(i,n);return r}var kn=require("react/jsx-runtime"),qe=(0,E.createContext)(null);function fo(r,e){let o=new Set([...Object.keys(r),...Object.keys(e)]);for(let i of o)if(r[i]!==e[i])return!0;return!1}var Rt=({formId:r,formConfig:e,initialValues:o,onSubmit:i,onSuccess:n,onError:t,actions:d,nodeId:l,document:c,onDiagnostic:p,children:f})=>{let a=Ye(),s=(0,E.useMemo)(()=>r||e?.formId||l||"kubuild-form",[r,e?.formId,l]),u=(0,E.useMemo)(()=>({...e?.initialValues||{},...o||{}}),[e?.initialValues,o]),[g,y]=(0,E.useState)(u),[m,v]=(0,E.useState)(u),[h,x]=(0,E.useState)({}),[b,w]=(0,E.useState)({}),[k,C]=(0,E.useState)(!1),S=(0,E.useRef)(new Map),T=(0,E.useRef)({values:m,errors:h,touched:b,initialValues:g,isSubmitting:k,formConfig:e});(0,E.useEffect)(()=>{T.current={values:m,errors:h,touched:b,initialValues:g,isSubmitting:k,formConfig:e}});let A=(0,E.useCallback)($=>{if(!$||!$.name)return()=>{};let D={name:$.name,rules:$.rules||[],validateOn:$.validateOn||"blur",label:$.label,defaultValue:$.defaultValue,transform:$.transform,disabled:$.disabled,required:$.required};return S.current.set($.name,D),$.defaultValue!==void 0&&(T.current.values[$.name]===void 0&&(T.current.values[$.name]=$.defaultValue),v(N=>N[$.name]===void 0?{...N,[$.name]:$.defaultValue}:N)),()=>{S.current.delete($.name)}},[]),P=(0,E.useCallback)($=>S.current.get($),[]),O=(0,E.useCallback)(($,D)=>{let N=S.current.get($),Y=T.current.values,ne=D!==void 0?D:Y[$];N?.transform&&(ne=(0,se.applyFieldTransform)(ne,N.transform));let z=[...N?.rules||[]];return N?.required&&!z.some(B=>B.type==="required")&&z.unshift({type:"required",message:`${N.label||$} is required`}),(0,se.validateFieldValue)(ne,z,Y)},[]),V=(0,E.useCallback)($=>{let D=$||T.current.values,N=Array.from(S.current.values());return(0,se.validateForm)(D,N)},[]),K=(0,E.useCallback)(($,D)=>{x(N=>{if(D)return{...N,[$]:D};if(N[$]===void 0)return N;let Y={...N};return delete Y[$],Y})},[]),q=(0,E.useCallback)($=>{x({...$})},[]),ke=(0,E.useCallback)(($,D,N)=>{let Y=S.current.get($),ne=D;Y?.transform&&(ne=(0,se.applyFieldTransform)(D,Y.transform)),v(J=>({...J,[$]:ne}));let z=Y?.validateOn||e?.validateOn||"blur";if(N!==void 0?N:z==="change"){let J=O($,ne);K($,J)}},[e?.validateOn,O,K]),Ne=(0,E.useCallback)(($,D=!0,N)=>{w(B=>({...B,[$]:D}));let ne=S.current.get($)?.validateOn||e?.validateOn||"blur";if(N!==void 0?N:ne==="blur"&&D){let B=O($);K($,B)}},[e?.validateOn,O,K]),zt=(0,E.useCallback)(($,D=!1)=>{v(N=>D?{...$}:{...N,...$})},[]),De=(0,E.useCallback)($=>{C($)},[]),Re=(0,E.useCallback)($=>{let D=$||g;$&&y($),v({...D}),x({}),w({}),C(!1)},[g]),Ut=(0,E.useCallback)(async $=>{if($&&typeof $.preventDefault=="function"&&$.preventDefault(),T.current.isSubmitting)return!1;let D=T.current.values,N={};for(let z of S.current.keys())N[z]=!0;w(N);let Y=V(D);if(x(Y),!(Object.keys(Y).length===0)){if(t?.(Y),e?.scrollToFirstError!==!1&&typeof window<"u"&&typeof c<"u"){let B=Object.keys(Y)[0];if(B)try{let J=window.document.querySelector(`[name="${B}"], [data-field="${B}"]`);J&&(J.scrollIntoView({behavior:"smooth",block:"center"}),J.focus?.())}catch{}}return!1}C(!0);try{if(d&&d.length>0){let z=d.filter(B=>B.trigger==="submit"&&B.enabled!==!1);if(z.length>0){let B=new se.ActionPipelineExecutor;Ie(B);for(let J of z){let we=await B.execute(J,{context:{form:D,variables:a?.variables?{...a.variables}:{},nodeId:l,document:c}});if(!we.success){let Yt=we.error instanceof Error?we.error.message:String(we.error||"Submit pipeline failed"),Gt={code:"ACTION_EXECUTION_ERROR",actionType:J.steps[0]?.type||"submit",nodeId:l,message:`Form submit pipeline failed: ${Yt}`,error:we.error};return p?.(Gt),a?.onDiagnostic?.(Gt),t?.({_form:Yt}),C(!1),!1}}}}return i&&await i(D,{formId:s,setSubmitting:De,resetForm:Re,setErrors:x}),n?.(D),e?.resetOnSubmit&&Re(),!0}catch(z){let B=z instanceof Error?z.message:String(z),J={code:"ACTION_EXECUTION_ERROR",actionType:"submit",nodeId:l,message:`Form submit execution error: ${B}`,error:z};return p?.(J),a?.onDiagnostic?.(J),t?.({_form:B}),!1}finally{C(!1)}},[e,d,l,c,p,a,i,n,t,s,De,Re,V]),Wt=(0,E.useMemo)(()=>Object.keys(h).length===0,[h]),Kt=(0,E.useMemo)(()=>fo(m,g),[m,g]),Gn=(0,E.useMemo)(()=>({formId:s,formConfig:e,initialValues:g,values:m,errors:h,touched:b,isSubmitting:k,isValid:Wt,dirty:Kt,setFieldValue:ke,setFieldTouched:Ne,setFieldError:K,setErrors:q,setValues:zt,setSubmitting:De,resetForm:Re,validateField:O,validateForm:V,handleFormSubmit:Ut,registerField:A,getFieldBinding:P}),[s,e,g,m,h,b,k,Wt,Kt,ke,Ne,K,q,zt,De,Re,O,V,Ut,A,P]);return(0,kn.jsx)(qe.Provider,{value:Gn,children:f})};function ee(){return(0,E.useContext)(qe)}function go(){return(0,E.useContext)(qe)}function mo(){let r=ee();return{isSubmitting:r?.isSubmitting??!1,isValid:r?.isValid??!0,dirty:r?.dirty??!1,errors:r?.errors??{}}}function bo(r,e){let o=ee();o&&r&&o.registerField(e||{name:r}),(0,E.useEffect)(()=>{if(!o||!r)return;let s=o.registerField(e||{name:r});return()=>{s()}},[o,r,e]);let i=o?.values[r]!==void 0?o.values[r]:e?.defaultValue,n=o?.errors[r],t=!!o?.touched[r],d=!!(n&&t),l=(0,E.useCallback)((s,u)=>{o?.setFieldValue(r,s,u)},[o,r]),c=(0,E.useCallback)((s=!0,u)=>{o?.setFieldTouched(r,s,u)},[o,r]),p=(0,E.useCallback)(s=>{o?.setFieldError(r,s)},[o,r]),f=(0,E.useCallback)(s=>{if(s&&typeof s=="object"&&"target"in s&&s.target){let u=s.target;if(u.type==="checkbox")l(u.checked);else if(u.type==="number"){let g=u.value===""?"":Number(u.value);l(g)}else l(u.value)}else l(s)},[l]),a=(0,E.useCallback)(()=>{c(!0)},[c]);return{value:i,error:n,touched:t,isInvalid:d,setValue:l,setTouched:c,setError:p,onChange:f,onBlur:a}}var Rn=require("react"),wt=require("react/jsx-runtime"),X=({as:r="p",id:e,className:o,style:i,value:n,isEditable:t,nodeId:d,onClick:l,onChange:c,...p})=>{let f=(0,Rn.useRef)(!1),a=r;return t?(0,wt.jsx)(a,{id:e,className:o,style:{...i,outline:"none",cursor:"text"},contentEditable:!0,suppressContentEditableWarning:!0,"data-kubuild-node":d,onClick:s=>{l?.(s)},onFocus:()=>{f.current=!0},onInput:s=>{let u=s.currentTarget.textContent??"";c?.(u,!1)},onBlur:s=>{f.current=!1;let u=s.currentTarget.textContent??"";c?.(u,!0)},onKeyDown:s=>{s.key==="Escape"&&s.currentTarget.blur()},...p,children:n}):(0,wt.jsx)(a,{id:e,className:o,style:i,onClick:l,"data-kubuild-node":d,...p,children:n})};var de=require("react"),Ct=require("react/jsx-runtime"),yo=typeof window<"u"?de.useLayoutEffect:de.useEffect;function wn(r){return r?r.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(e,o,i)=>{let n=i;return n=n.replace(/(^|[\s,{}])body(?=[\s,{])/g,"$1:host, body"),n=n.replace(/(^|[\s,{}])html(?=[\s,{])/g,"$1:host, html"),`<style${o}>
|
|
119
119
|
:host { display: block; }
|
|
120
|
-
${n}</style>`}):""}var Ct=({id:i,style:e,onClick:o,dataKubuildNode:r,html:n,role:t})=>{let d=(0,le.useRef)(null),l=(0,le.useRef)(null),u=(0,le.useMemo)(()=>kn(n),[n]);return go(()=>{let c=d.current;if(c){if(typeof c.attachShadow=="function"){if(!l.current)if(c.shadowRoot)l.current=c.shadowRoot;else try{l.current=c.attachShadow({mode:"open"})}catch{l.current=c.shadowRoot}if(l.current){l.current.innerHTML=u;return}}c.innerHTML=u}},[u]),(0,wt.jsx)("div",{ref:d,id:i,style:e,onClick:o,"data-kubuild-node":r,role:t,children:(0,wt.jsx)("template",{shadowrootmode:"open",dangerouslySetInnerHTML:{__html:u}})})};var he=require("react");var Ie=be(require("react"),1),Rn=require("@kubuild/core");async function _(i){let{node:e,trigger:o,document:r,context:n,formContext:t,extraContext:d,onDiagnostic:l,onActionDispatch:u,executor:c}=i;if(!e.actions||!Array.isArray(e.actions)||e.actions.length===0)return{executed:!1,success:!0};let f=e.actions.filter(p=>p.trigger===o&&p.enabled!==!1);if(f.length===0)return{executed:!1,success:!0};let s=c||new Rn.ActionPipelineExecutor;Pe(s);let a={form:t?{...t.values}:{},variables:n?.variables?{...n.variables}:{},nodeId:e.id,document:r,toastManager:n?.toastManager,modalManager:n?.modalManager,trackingConfig:n?.trackingConfig||r?.tracking||r?.metadata?.tracking,...d||{}};for(let p of f){let g=await s.execute(p,{context:a});if(u&&p.steps.length>0&&u(p.steps[0].type,p.steps[0].payload,e.id),!g.success){let y=g.error instanceof Error?g.error.message:String(g.error||`Action pipeline "${p.id}" failed`),b={code:"ACTION_EXECUTION_ERROR",actionType:p.steps[0]?.type||o,nodeId:e.id,message:y,error:g.error};return l?.(b),n?.onDiagnostic?.(b),{executed:!0,success:!1,error:g.error}}}return{executed:!0,success:!0}}function $t(i,e){if(!i.actions?.some(t=>t.trigger==="load"&&t.enabled!==!1))return;let r=Ie.default?.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||Ie.default?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(r?.H||r?.ReactCurrentDispatcher?.current)try{(0,Ie.useEffect)(()=>{e.mode!=="editor"&&_({node:i,trigger:"load",document:e.document,context:e.context,formContext:e.formContext,onDiagnostic:e.onDiagnostic,onActionDispatch:e.onActionDispatch})},[i,e.document,e.context,e.formContext,e.onDiagnostic,e.onActionDispatch,e.mode])}catch{}}var F=require("react/jsx-runtime"),St=({id:i,name:e,action:o,method:r="POST",target:n,autoComplete:t,style:d,onClick:l,mode:u,dataKubuildNode:c,children:f})=>{let s=ee();return(0,F.jsx)("form",{id:i,name:e,action:o,method:r,target:n,autoComplete:t,style:d,onClick:l,onSubmit:g=>{if(u==="editor"){g.preventDefault();return}s&&s.handleFormSubmit(g)},onReset:()=>{s&&s.resetForm()},"data-kubuild-node":c,role:"form","aria-label":e,children:f})},Tt=({id:i,name:e,type:o="text",placeholder:r,defaultValue:n,required:t,disabled:d,readOnly:l,rules:u,validateOn:c,transform:f,style:s,onClick:a,actions:p,nodeId:g,document:y,renderContext:b,onDiagnostic:h,onActionDispatch:v,dataKubuildNode:x})=>{let m=ee();if(m&&e&&m.registerField({name:e,defaultValue:n,required:t,disabled:d,rules:u||[],validateOn:c,transform:f}),(0,he.useEffect)(()=>{if(!m||!e)return;let V=m.registerField({name:e,defaultValue:n,required:t,disabled:d,rules:u||[],validateOn:c,transform:f});return()=>{V()}},[m,e,n,t,d,u,c,f]),!m||!e)return(0,F.jsx)("input",{id:i,type:o,name:e,placeholder:r,defaultValue:n!==void 0?String(n):void 0,required:t,disabled:d,readOnly:l,style:s,onClick:a,"data-kubuild-node":x});let C=m.values[e],R=C!=null?String(C):n!=null?String(n):"",w=m.errors[e],S=!!m.touched[e],P=!!(w&&S);return(0,F.jsx)("input",{id:i,type:o,name:e,placeholder:r,value:R,onChange:V=>{let K=V.target.value;o==="number"&&(K=V.target.value===""?"":Number(V.target.value)),m.setFieldValue(e,K),p&&p.length>0&&_({node:{id:g||i||e,type:"input",actions:p},trigger:"change",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:K},onDiagnostic:h,onActionDispatch:v})},onBlur:()=>{m.setFieldTouched(e,!0),p&&p.length>0&&_({node:{id:g||i||e,type:"input",actions:p},trigger:"blur",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:h,onActionDispatch:v})},onFocus:()=>{p&&p.length>0&&_({node:{id:g||i||e,type:"input",actions:p},trigger:"focus",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:h,onActionDispatch:v})},required:t,disabled:d,readOnly:l,style:s,onClick:a,"data-kubuild-node":x,"data-field":e,"data-invalid":P?"true":void 0,"aria-invalid":P?!0:void 0,"aria-errormessage":w?`${i}-error`:void 0})},Et=({id:i,name:e,placeholder:o,defaultValue:r,rows:n=4,required:t,disabled:d,readOnly:l,rules:u,validateOn:c,transform:f,style:s,onClick:a,actions:p,nodeId:g,document:y,renderContext:b,onDiagnostic:h,onActionDispatch:v,dataKubuildNode:x})=>{let m=ee();if(m&&e&&m.registerField({name:e,defaultValue:r,required:t,disabled:d,rules:u||[],validateOn:c,transform:f}),(0,he.useEffect)(()=>{if(!m||!e)return;let V=m.registerField({name:e,defaultValue:r,required:t,disabled:d,rules:u||[],validateOn:c,transform:f});return()=>{V()}},[m,e,r,t,d,u,c,f]),!m||!e)return(0,F.jsx)("textarea",{id:i,name:e,placeholder:o,defaultValue:r!==void 0?String(r):void 0,rows:n,required:t,disabled:d,readOnly:l,style:s,onClick:a,"data-kubuild-node":x});let C=m.values[e],R=C!=null?String(C):r!=null?String(r):"",w=m.errors[e],S=!!m.touched[e],P=!!(w&&S);return(0,F.jsx)("textarea",{id:i,name:e,placeholder:o,rows:n,value:R,onChange:V=>{m.setFieldValue(e,V.target.value),p&&p.length>0&&_({node:{id:g||i||e,type:"textarea",actions:p},trigger:"change",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:V.target.value},onDiagnostic:h,onActionDispatch:v})},onBlur:()=>{m.setFieldTouched(e,!0),p&&p.length>0&&_({node:{id:g||i||e,type:"textarea",actions:p},trigger:"blur",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:h,onActionDispatch:v})},onFocus:()=>{p&&p.length>0&&_({node:{id:g||i||e,type:"textarea",actions:p},trigger:"focus",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:h,onActionDispatch:v})},required:t,disabled:d,readOnly:l,style:s,onClick:a,"data-kubuild-node":x,"data-field":e,"data-invalid":P?"true":void 0,"aria-invalid":P?!0:void 0,"aria-errormessage":w?`${i}-error`:void 0})},Pt=({id:i,name:e,placeholder:o,defaultValue:r,required:n,disabled:t,rules:d,validateOn:l,optionsList:u,style:c,onClick:f,actions:s,nodeId:a,document:p,renderContext:g,onDiagnostic:y,onActionDispatch:b,dataKubuildNode:h})=>{let v=ee();if(v&&e&&v.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:d||[],validateOn:l}),(0,he.useEffect)(()=>{if(!v||!e)return;let I=v.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:d||[],validateOn:l});return()=>{I()}},[v,e,r,n,t,d,l]),!v||!e)return(0,F.jsxs)("select",{id:i,name:e,defaultValue:r!==void 0?String(r):"",required:n,disabled:t,style:c,onClick:f,"data-kubuild-node":h,children:[o&&(0,F.jsx)("option",{value:"",disabled:!0,children:o}),u.map((I,O)=>(0,F.jsx)("option",{value:I.value,children:I.label},O))]});let x=v.values[e],m=x!=null?String(x):r!=null?String(r):"",C=v.errors[e],R=!!v.touched[e],w=!!(C&&R);return(0,F.jsxs)("select",{id:i,name:e,value:m,onChange:I=>{v.setFieldValue(e,I.target.value),s&&s.length>0&&_({node:{id:a||i||e,type:"select",actions:s},trigger:"change",document:p,context:g,formContext:v,extraContext:{fieldName:e,fieldValue:I.target.value},onDiagnostic:y,onActionDispatch:b})},onBlur:()=>{v.setFieldTouched(e,!0),s&&s.length>0&&_({node:{id:a||i||e,type:"select",actions:s},trigger:"blur",document:p,context:g,formContext:v,extraContext:{fieldName:e,fieldValue:v.values[e]},onDiagnostic:y,onActionDispatch:b})},onFocus:()=>{s&&s.length>0&&_({node:{id:a||i||e,type:"select",actions:s},trigger:"focus",document:p,context:g,formContext:v,extraContext:{fieldName:e,fieldValue:v.values[e]},onDiagnostic:y,onActionDispatch:b})},required:n,disabled:t,style:c,onClick:f,"data-kubuild-node":h,"data-field":e,"data-invalid":w?"true":void 0,"aria-invalid":w?!0:void 0,"aria-errormessage":C?`${i}-error`:void 0,children:[o&&(0,F.jsx)("option",{value:"",disabled:!0,children:o}),u.map((I,O)=>(0,F.jsx)("option",{value:I.value,children:I.label},O))]})},It=({id:i,name:e,label:o="",defaultChecked:r=!1,required:n,disabled:t,rules:d,validateOn:l,style:u,onClick:c,actions:f,nodeId:s,document:a,renderContext:p,onDiagnostic:g,onActionDispatch:y,dataKubuildNode:b,isEditable:h,onNodePropChange:v})=>{let x=ee();x&&e&&x.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:d||[],validateOn:l}),(0,he.useEffect)(()=>{if(!x||!e)return;let w=x.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:d||[],validateOn:l});return()=>{w()}},[x,e,r,n,t,d,l]);let m=x&&e&&x.values[e]!==void 0?!!x.values[e]:r;return(0,F.jsxs)("label",{id:i,style:u,onClick:c,"data-kubuild-node":b,children:[(0,F.jsx)("input",{type:"checkbox",name:e,checked:m,onChange:w=>{x&&e&&(x.setFieldValue(e,w.target.checked),f&&f.length>0&&_({node:{id:s||i||e,type:"checkbox",actions:f},trigger:"change",document:a,context:p,formContext:x,extraContext:{fieldName:e,fieldValue:w.target.checked},onDiagnostic:g,onActionDispatch:y}))},onBlur:()=>{x&&e&&(x.setFieldTouched(e,!0),f&&f.length>0&&_({node:{id:s||i||e,type:"checkbox",actions:f},trigger:"blur",document:a,context:p,formContext:x,extraContext:{fieldName:e,fieldValue:m},onDiagnostic:g,onActionDispatch:y}))},required:n,disabled:t,style:{cursor:t?"not-allowed":"pointer"},"data-field":e}),h?(0,F.jsx)(X,{as:"span",value:o,isEditable:h,nodeId:b||"",onChange:(w,S)=>v?.(b||"","label",w,S)}):(0,F.jsx)("span",{children:o})]})},At=({id:i,name:e,label:o="",value:r="",defaultChecked:n=!1,required:t,disabled:d,rules:l,validateOn:u,style:c,onClick:f,actions:s,nodeId:a,document:p,renderContext:g,onDiagnostic:y,onActionDispatch:b,dataKubuildNode:h,isEditable:v,onNodePropChange:x})=>{let m=ee();m&&e&&m.registerField({name:e,defaultValue:n?r:void 0,required:t,disabled:d,rules:l||[],validateOn:u}),(0,he.useEffect)(()=>{if(!m||!e)return;let S=m.registerField({name:e,defaultValue:n?r:void 0,required:t,disabled:d,rules:l||[],validateOn:u});return()=>{S()}},[m,e,n,r,t,d,l,u]);let C=m&&e&&m.values[e]!==void 0?m.values[e]===r:n;return(0,F.jsxs)("label",{id:i,style:c,onClick:f,"data-kubuild-node":h,children:[(0,F.jsx)("input",{type:"radio",name:e,value:r,checked:C,onChange:()=>{m&&e&&(m.setFieldValue(e,r),s&&s.length>0&&_({node:{id:a||i||e,type:"radio",actions:s},trigger:"change",document:p,context:g,formContext:m,extraContext:{fieldName:e,fieldValue:r},onDiagnostic:y,onActionDispatch:b}))},onBlur:()=>{m&&e&&(m.setFieldTouched(e,!0),s&&s.length>0&&_({node:{id:a||i||e,type:"radio",actions:s},trigger:"blur",document:p,context:g,formContext:m,extraContext:{fieldName:e,fieldValue:r},onDiagnostic:y,onActionDispatch:b}))},required:t,disabled:d,style:{cursor:d?"not-allowed":"pointer"},"data-field":e}),v?(0,F.jsx)(X,{as:"span",value:o,isEditable:v,nodeId:h||"",onChange:(S,P)=>x?.(h||"","label",S,P)}):(0,F.jsx)("span",{children:o})]})};async function wn(i){let{event:e,buttonType:o,disabled:r,formRuntime:n,onClick:t,node:d,actions:l,document:u,renderContext:c,onDiagnostic:f,onActionDispatch:s,executeActions:a=_}=i;if(r)return;if(o==="submit"){if(n&&!await n.handleFormSubmit(e))return}else o==="reset"&&n?.resetForm();if(t){t(e);return}let p=d||(l?{id:"button",type:"button",actions:l}:void 0);p?.actions&&p.actions.length>0&&await a({node:p,trigger:"click",document:u,context:c,formContext:n,onDiagnostic:f,onActionDispatch:s})}var Nt=({id:i,buttonType:e,disabled:o,ariaLabel:r,style:n,onClick:t,actions:d,node:l,document:u,renderContext:c,onDiagnostic:f,onActionDispatch:s,dataKubuildNode:a,actionAttrs:p,children:g})=>{let y=ee(),b=y?.isSubmitting===!0,h=o||e==="submit"&&b;return(0,F.jsx)("button",{id:i,type:e,disabled:h,"aria-disabled":h?!0:void 0,"aria-label":r,"aria-busy":e==="submit"&&b?!0:void 0,tabIndex:h?-1:0,style:n,onClick:h?void 0:async x=>{await wn({event:x,buttonType:e,disabled:h,formRuntime:y,onClick:t,node:l||(d?{id:a||i||"button",type:"button",actions:d}:void 0),document:u,renderContext:c,onDiagnostic:f,onActionDispatch:s})},"data-kubuild-node":a,...p,children:g})};function Dt(i){return i?i.replace(/[-_](\w)/g,(e,o)=>o.toUpperCase()).replace(/^\w/,e=>e.toUpperCase()):""}function Ft(i){if(!i||typeof i!="string")return null;let e=i.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function Mt(i){if(!i||typeof i!="string")return null;let e=i.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function Ot(i){if(i==="16:9")return"16 / 9";if(i==="4:3")return"4 / 3";if(i==="1:1")return"1 / 1";if(i==="9:16")return"9 / 16";if(typeof i=="string"&&i!=="auto")return i.replace(":"," / ")}var je=be(require("react"),1),Cn=require("@kubuild/schema");var U=require("react/jsx-runtime");function Vt(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,childrenElements:d,handleClick:l,context:u,mode:c,isModalOpen:f}=i,s=n.modalId||t.modalId||e.id,a=String(s).trim(),p=u?.modalManager||Q,g=c==="editor"&&u?.artboardSurface==="component";switch(e.type){case"modal":{if(!f&&c==="runtime")return(0,U.jsx)(je.default.Fragment,{});let y=n.backdrop!==!1&&t.backdrop!==!1,b=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,h=n.showCloseButton!==!1&&t.showCloseButton!==!1,v=n.title??t.title,x=v!==void 0?String(v):void 0,m=n.size||t.size||"md",C=m==="sm"?"400px":m==="lg"?"768px":m==="fullscreen"?"100%":"560px",R=m==="fullscreen"?"100%":"auto";return(0,U.jsx)("div",{id:`${o}-overlay`,"data-kubuild-overlay":a,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",alignItems:"flex-start",justifyContent:"center",padding:m==="fullscreen"?"0":"16px"}:{position:c==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:y?"rgba(15, 23, 42, 0.65)":"transparent",backdropFilter:y?"blur(4px)":"none",display:"flex",alignItems:m==="fullscreen"?"stretch":"center",justifyContent:"center",zIndex:9999,padding:m==="fullscreen"?"0":"16px"},onClick:w=>{w.target===w.currentTarget&&b&&c==="runtime"&&p.closeModal(a)},children:(0,U.jsxs)("div",{id:o,style:{...r,position:"relative",boxSizing:"border-box",maxWidth:C,height:R,width:"100%"},onClick:l,"data-kubuild-node":e.id,role:"dialog","aria-modal":"true","aria-label":typeof x=="string"?x:"Modal Dialog",children:[h&&(0,U.jsx)("button",{type:"button","aria-label":"Close modal",style:{position:"absolute",top:"14px",right:"14px",background:"transparent",border:"none",fontSize:"18px",cursor:"pointer",color:"#64748b",padding:"4px 8px",lineHeight:1},onClick:w=>{w.stopPropagation(),p.closeModal(a)},children:"\u2715"}),x&&(0,U.jsx)("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(x)}),d]})})}case"drawer":{if(!f&&c==="runtime")return(0,U.jsx)(je.default.Fragment,{});let y=n.placement||t.placement||"right",b=n.backdrop!==!1&&t.backdrop!==!1,h=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,v=n.showCloseButton!==!1&&t.showCloseButton!==!1,x=n.title??t.title,m=x!==void 0?String(x):void 0,C=y==="top"||y==="bottom";return(0,U.jsx)("div",{id:`${o}-overlay`,"data-kubuild-overlay":a,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",justifyContent:y==="left"?"flex-start":y==="right"?"flex-end":"center",alignItems:"flex-start",padding:"16px"}:{position:c==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:b?"rgba(15, 23, 42, 0.5)":"transparent",backdropFilter:b?"blur(2px)":"none",display:"flex",justifyContent:y==="left"?"flex-start":y==="right"?"flex-end":"center",alignItems:y==="top"?"flex-start":y==="bottom"?"flex-end":"stretch",zIndex:9999},onClick:R=>{R.target===R.currentTarget&&h&&c==="runtime"&&p.closeModal(a)},children:(0,U.jsxs)("div",{id:o,style:{...r,position:"relative",boxSizing:"border-box",height:g||C?"auto":"100%",...g?{minHeight:"240px"}:{},width:C?"100%":r.width||"320px",maxHeight:g?"none":C?"80vh":"100%",overflowY:"auto"},onClick:l,"data-kubuild-node":e.id,role:"region","aria-label":typeof m=="string"?m:"Drawer",children:[v&&(0,U.jsx)("button",{type:"button","aria-label":"Close drawer",style:{position:"absolute",top:"14px",right:"14px",background:"transparent",border:"none",fontSize:"18px",cursor:"pointer",color:"#64748b",padding:"4px 8px",lineHeight:1},onClick:R=>{R.stopPropagation(),p.closeModal(a)},children:"\u2715"}),m&&(0,U.jsx)("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(m)}),d]})})}case"collapsible":return(0,U.jsx)("div",{id:o,style:{...r,display:(c==="editor"?!0:!!f)?r.display||"block":"none"},onClick:l,"data-kubuild-node":e.id,"data-kubuild-collapsible":a,children:d});case Cn.ARTBOARD_REFERENCE_NODE_TYPE:{if(c==="runtime")return(0,U.jsx)(je.default.Fragment,{});let y=typeof t.artboardId=="string"?t.artboardId:void 0,b=(typeof t.label=="string"&&t.label.trim().length>0?t.label:y)||"artboard";return(0,U.jsxs)("div",{id:o,style:{display:"inline-flex",alignItems:"center",gap:"6px",padding:"6px 10px",border:"1px dashed #94a3b8",borderRadius:"6px",backgroundColor:"#f8fafc",color:"#475569",fontSize:"12px",fontFamily:"ui-sans-serif, system-ui, sans-serif",cursor:"pointer",...r},onClick:l,"data-kubuild-node":e.id,"data-kubuild-artboard-reference":y,title:`Opens artboard "${b}" \u2014 edit it on its own canvas surface`,children:[(0,U.jsx)("span",{"aria-hidden":"true",children:"\u29C9"}),(0,U.jsx)("span",{children:`Opens: ${b}`})]})}default:return null}}var k=require("react/jsx-runtime");function Sn(i){let{node:e,document:o,definition:r,resolvedProps:n,styles:t,context:d,childrenElements:l,handleClick:u}=i;if(r?.renderer&&typeof r.renderer=="function"){let c=r.renderer;return typeof c=="function"&&!c.prototype?.isReactComponent?c({node:e,document:o,props:n,styles:t,context:d,children:l,onClick:u}):(0,k.jsx)(c,{node:e,document:o,props:n,styles:t,context:d,onClick:u,children:l})}return null}function Tn(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,handleClick:d,childrenElements:l}=i;switch(e.type){case"page":return(0,k.jsx)("div",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,children:l});case"section":{let u=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return(0,k.jsx)("section",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,"aria-label":u,children:l})}case"container":return(0,k.jsx)("div",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,children:l});case"columns":return(0,k.jsx)("div",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,children:l});case"flex":case"grid":{let u=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return(0,k.jsx)("div",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,"aria-label":u,children:l})}default:return null}}function En(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:u,childrenElements:c,selectedNodeId:f}=i,s=e.id===f;switch(e.type){case"heading":{let a=typeof n.level=="number"?n.level:1,p=`h${Math.min(Math.max(a,1),6)}`||"h1",g=String(n.text??n.content??t.text??t.content??""),y=d==="editor"&&s&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,k.jsx)(X,{as:p,id:o,style:r,value:g,isEditable:y,nodeId:e.id,onClick:l,onChange:(b,h)=>u?.(e.id,"text",b,h)})}case"text":{let a=String(n.text??n.content??t.text??t.content??""),p=typeof n.as=="string"?n.as:typeof t.as=="string"?t.as:typeof n.tag=="string"?n.tag:typeof t.tag=="string"?t.tag:(t.content!==void 0||n.content!==void 0)&&t.text===void 0&&n.text===void 0?"p":"span",g=d==="editor"&&s&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,k.jsx)(X,{as:p,id:o,style:r,value:a,isEditable:g,nodeId:e.id,onClick:l,onChange:(y,b)=>u?.(e.id,"text",y,b)})}case"paragraph":{let a=String(n.text??n.content??t.text??t.content??""),p=d==="editor"&&s&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,k.jsx)(X,{as:"p",id:o,style:r,value:a,isEditable:p,nodeId:e.id,onClick:l,onChange:(g,y)=>u?.(e.id,"text",g,y)})}case"link":{let a=String(n.text??n.label??n.content??t.text??t.label??t.content??""),p=typeof n.href=="string"?n.href:"#",g=typeof n.target=="string"?n.target:void 0,y=d==="editor"&&s&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.label)&&!(0,M.isVariableBinding)(t.content),b=typeof n.rel=="string"?n.rel:g==="_blank"?"noopener noreferrer":void 0,h=d==="editor"?void 0:(0,Z.sanitizeUrl)(p,"#"),v=x=>{d==="editor"&&x.preventDefault(),l(x)};return y?(0,k.jsx)(X,{as:"a",id:o,style:r,value:a,isEditable:y,nodeId:e.id,onClick:v,onChange:(x,m)=>{let C="text"in t?"text":"label";u?.(e.id,C,x,m)},href:h,target:g,rel:b}):(0,k.jsx)("a",{id:o,style:r,href:h,target:g,rel:b,onClick:v,"data-kubuild-node":e.id,children:a})}case"blockquote":{let a=typeof n.quote=="string"?n.quote:typeof n.text=="string"?n.text:typeof t.quote=="string"?t.quote:typeof t.text=="string"?t.text:void 0,p=typeof n.cite=="string"?n.cite:typeof t.cite=="string"?t.cite:void 0,g=d==="editor"&&s&&!(0,M.isVariableBinding)(t.quote)&&!(0,M.isVariableBinding)(t.text),y={borderLeft:"4px solid #cbd5e1",paddingLeft:"1rem",margin:"1rem 0",fontStyle:"italic",color:"#475569",...r};return(0,k.jsxs)("blockquote",{id:o,style:y,onClick:l,"data-kubuild-node":e.id,cite:p,children:[a!==void 0?g?(0,k.jsx)(X,{as:"p",value:a,isEditable:g,nodeId:e.id,onChange:(b,h)=>{let v="quote"in t?"quote":"text";u?.(e.id,v,b,h)}}):(0,k.jsx)("p",{children:a}):null,c,p&&(0,k.jsxs)("cite",{style:{display:"block",fontStyle:"normal",fontSize:"0.875rem",marginTop:"0.5rem",color:"#64748b"},children:["\u2014 ",p]})]})}case"badge":{let a=String(n.text??n.label??t.text??t.label??""),p=typeof n.variant=="string"?n.variant:typeof t.variant=="string"?t.variant:"default",g=d==="editor"&&s&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.label);return(0,k.jsx)("span",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,"data-variant":p,"data-badge-variant":p,children:g?(0,k.jsx)(X,{as:"span",value:a,isEditable:g,nodeId:e.id,onChange:(y,b)=>{let h="text"in t?"text":"label";u?.(e.id,h,y,b)}}):a})}case"code-block":{let a=String(n.code??t.code??""),p=typeof n.language=="string"?n.language:typeof t.language=="string"?t.language:"plaintext";return d==="editor"?(0,k.jsx)("pre",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,"data-language":p,children:(0,k.jsx)("code",{className:`language-${p}`,contentEditable:!0,suppressContentEditableWarning:!0,onBlur:g=>u?.(e.id,"code",g.currentTarget.textContent??"",!0),children:a})}):(0,k.jsx)("pre",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,"data-language":p,children:(0,k.jsx)("code",{className:`language-${p}`,children:a})})}default:return null}}function Pn(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:u,childrenElements:c,selectedNodeId:f}=i,s=e.id===f;switch(e.type){case"list":{let p=(n.tag||t.tag)==="ol"||n.ordered===!0||t.ordered===!0?"ol":"ul",g=typeof n.listStyleType=="string"?n.listStyleType:typeof n.listStyle=="string"?n.listStyle:typeof t.listStyleType=="string"?t.listStyleType:typeof t.listStyle=="string"?t.listStyle:void 0,y=g==="custom-icon"||g==="none"?"none":g,b={...r,...y?{listStyleType:y}:{}};return(0,k.jsx)(p,{id:o,style:b,onClick:l,"data-kubuild-node":e.id,"data-list-style":g,children:c})}case"list-item":{let a=n.text!==void 0?String(n.text):t.text!==void 0?String(t.text):void 0,p=d==="editor"&&s&&!(0,M.isVariableBinding)(t.text)&&a!==void 0;return(0,k.jsxs)("li",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,children:[a!==void 0&&(p?(0,k.jsx)(X,{as:"span",value:a,isEditable:p,nodeId:e.id,onChange:(g,y)=>u?.(e.id,"text",g,y)}):a),c]})}default:return null}}function In(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:u,childrenElements:c,selectedNodeId:f}=i,s=e.id===f;switch(e.type){case"table":{let a=typeof n.cellPadding=="number"?n.cellPadding:void 0,p=typeof n.cellSpacing=="number"?n.cellSpacing:void 0,g=typeof n.border=="number"?n.border:void 0,y=n.striped===!0||t.striped===!0,b=n.bordered===!0||t.bordered===!0,h=n.hover===!0||t.hover===!0,v=n.compact===!0||t.compact===!0;return(0,k.jsx)("table",{id:o,style:r,cellPadding:a,cellSpacing:p,border:g,onClick:l,"data-kubuild-node":e.id,"data-striped":y?"true":void 0,"data-bordered":b?"true":void 0,"data-hover":h?"true":void 0,"data-compact":v?"true":void 0,children:(0,k.jsx)("tbody",{children:c})})}case"table-row":return(0,k.jsx)("tr",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,children:c});case"table-cell":{let p=n.tag==="th"||t.tag==="th"||n.isHeader===!0||t.isHeader===!0||n.cellType==="header"||t.cellType==="header"||n.type==="th"||t.type==="th"?"th":"td",g=typeof n.colSpan=="number"?n.colSpan:typeof t.colSpan=="number"?t.colSpan:void 0,y=typeof n.rowSpan=="number"?n.rowSpan:typeof t.rowSpan=="number"?t.rowSpan:void 0,b=n.text!==void 0?String(n.text):t.text!==void 0?String(t.text):void 0,h=d==="editor"&&s&&!(0,M.isVariableBinding)(t.text)&&b!==void 0;return(0,k.jsxs)(p,{id:o,colSpan:g,rowSpan:y,style:r,onClick:l,"data-kubuild-node":e.id,children:[b!==void 0&&(h?(0,k.jsx)(X,{as:"span",value:b,isEditable:h,nodeId:e.id,onChange:(v,x)=>u?.(e.id,"text",v,x)}):b),c]})}default:return null}}function An(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,context:d,mode:l,handleClick:u}=i;switch(e.type){case"image":{let c=n.src!==void 0?n.src:t.src!==void 0?t.src:t.asset,f;(0,M.isAssetReference)(c)?f=Me(d?.assetProvider,c.assetId)||c.fallbackUrl:typeof c=="string"&&(f=Me(d?.assetProvider,c)||c);let s=typeof n.alt=="string"?n.alt:typeof t.alt=="string"?t.alt:"",a=typeof n.fit=="string"?n.fit:void 0,p=n.loading==="eager"?"eager":"lazy",g=typeof n.width=="number"?n.width:void 0,y=typeof n.height=="number"?n.height:void 0,b=f?(0,Z.sanitizeUrl)(f,""):void 0,h=r?.objectFit,v={...r,...a&&h===void 0?{objectFit:a}:{}};return(0,k.jsx)("img",{id:o,src:b,alt:s,role:s===""?"presentation":void 0,loading:p,width:g,height:y,style:v,onClick:u,"data-kubuild-node":e.id})}case"video":{let c=n.src??n.url??t.src??t.url,f=typeof c=="string"?c:void 0,s=typeof n.poster=="string"?n.poster:void 0,a=n.controls!==!1,p=n.autoplay===!0,g=n.loop===!0,y=n.muted===!0,b=n.playsInline!==!1,h=n.aspectRatio,v={position:"relative",width:r.width||"100%",...h?{aspectRatio:Ot(h)}:{},...r},x=f?Ft(f):null,m=f?Mt(f):null;if(x){let w=`https://www.youtube.com/embed/${x}?autoplay=${p?1:0}&loop=${g?1:0}&mute=${y?1:0}&controls=${a?1:0}`,S=(0,Z.sanitizeUrl)(w,"");return(0,k.jsx)("div",{id:o,"data-video-provider":"youtube",style:v,onClick:u,"data-kubuild-node":e.id,children:(0,k.jsx)("iframe",{src:S,title:"YouTube video player",style:{width:"100%",height:"100%",border:0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0})})}if(m){let w=`https://player.vimeo.com/video/${m}?autoplay=${p?1:0}&loop=${g?1:0}&muted=${y?1:0}`,S=(0,Z.sanitizeUrl)(w,"");return(0,k.jsx)("div",{id:o,"data-video-provider":"vimeo",style:v,onClick:u,"data-kubuild-node":e.id,children:(0,k.jsx)("iframe",{src:S,title:"Vimeo video player",style:{width:"100%",height:"100%",border:0},allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0})})}let C=f?(0,Z.sanitizeUrl)(f,""):void 0,R=s?(0,Z.sanitizeUrl)(s,""):void 0;return(0,k.jsx)("video",{id:o,src:C,poster:R,controls:a,autoPlay:p,loop:g,muted:y,playsInline:b,style:v,onClick:u,"data-kubuild-node":e.id})}case"icon":{let c=typeof n.name=="string"?n.name:"Square",f=typeof n.size=="number"?n.size:24,s=typeof n.color=="string"?n.color:"currentColor",a=typeof n.strokeWidth=="number"?n.strokeWidth:2,p=Dt(c),g=ce.icons[p]||ce.icons[c]||ce.Package;return(0,k.jsx)("span",{id:o,"data-icon-name":c,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",...r},onClick:u,"data-kubuild-node":e.id,children:(0,k.jsx)(g,{size:f,color:s,strokeWidth:a})})}case"html-embed":{let c=typeof n.html=="string"?n.html:"",s=n.sanitize!==!1?(0,Z.sanitizeHtml)(c):c;return!s.trim()&&l==="editor"?(0,k.jsx)("div",{id:o,style:{...r,minHeight:"60px",border:"1px dashed #94a3b8",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f8fafc",color:"#64748b",fontSize:"0.875rem"},onClick:u,"data-kubuild-node":e.id,children:(0,k.jsx)("span",{children:"</> HTML Embed \u2014 Click to configure HTML code in Inspector Panel"})}):(0,k.jsx)(Ct,{id:o,style:r,html:s,onClick:u,dataKubuildNode:e.id})}default:return null}}function Nn(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,context:d,mode:l,document:u,onDiagnostic:c,onActionDispatch:f,handleClick:s,onNodePropChange:a,childrenElements:p,selectedNodeId:g}=i,y=e.id===g;switch(e.type){case"button":{let b=n.label??n.text??n.content??t.label??t.text??t.content??"Button",h=n.activeLabel??t.activeLabel,v=String(i.isModalOpen&&h?h:b),x=typeof n.href=="string"?n.href:typeof t.href=="string"?t.href:void 0,m=typeof n.target=="string"?n.target:typeof t.target=="string"?t.target:void 0,C=n.buttonType??n.type??t.buttonType??t.type,R=typeof C=="string"&&["submit","reset","button"].includes(C)?C:"button",w=n.disabled===!0||t.disabled===!0,S=typeof n.ariaLabel=="string"?n.ariaLabel:void 0,P=l==="editor"&&y&&t.isEditable!==!1&&!(0,M.isVariableBinding)(t.label)&&!(0,M.isVariableBinding)(t.text),A=typeof n.rel=="string"?n.rel:typeof t.rel=="string"?t.rel:m==="_blank"?"noopener noreferrer":void 0,I={};if(t.action&&!w){let O=typeof t.action=="object"?t.action.type:t.action;if(I["data-kubuild-action"]=O,d?.actionRegistry){let V=Je(d.actionRegistry,O);I["data-kubuild-action-resolved"]=V?"true":"false"}}if(x&&!w){let O=l==="editor"?void 0:(0,Z.sanitizeUrl)(x,"#");return(0,k.jsx)("a",{id:o,href:O,target:m,rel:A,tabIndex:0,style:r,onClick:s,"data-kubuild-node":e.id,"aria-label":S,...I,children:v})}return P?(0,k.jsx)(X,{as:"button",id:o,type:l==="editor"?"button":R,disabled:w,"aria-disabled":w?!0:void 0,"aria-label":S,tabIndex:w?-1:0,style:r,value:v,isEditable:P,nodeId:e.id,onClick:w?void 0:s,onChange:(O,V)=>a?.(e.id,"label",O,V),...I}):(0,k.jsx)(Nt,{id:o,buttonType:l==="editor"?"button":R,disabled:w,ariaLabel:S,style:r,onClick:w?void 0:s,actions:e.actions,node:e,document:u,renderContext:d,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,actionAttrs:I,children:v})}case"form":{let b=typeof n.action=="string"?n.action:void 0,h=typeof n.method=="string"?n.method:"POST",v=typeof n.target=="string"?n.target:void 0,x=typeof n.autoComplete=="string"?n.autoComplete:void 0,m=typeof n.name=="string"?n.name:void 0,C=e.formConfig,R={formId:C?.formId||t.formId||m||e.id,resetOnSubmit:n.resetOnSubmit===!0||(C?.resetOnSubmit??!1),scrollToFirstError:n.scrollToFirstError!==!1&&(C?.scrollToFirstError??!0),validateOn:n.validateOn||C?.validateOn||"blur",initialValues:n.initialValues||C?.initialValues};return(0,k.jsx)(kt,{formId:R.formId,formConfig:R,initialValues:R.initialValues,actions:e.actions,nodeId:e.id,document:u,onDiagnostic:c,children:(0,k.jsx)(St,{id:o,name:m,action:b&&l!=="editor"?(0,Z.sanitizeUrl)(b,""):void 0,method:h,target:v,autoComplete:x,style:r,onClick:s,mode:l,dataKubuildNode:e.id,children:p})})}case"input":{let b=typeof n.name=="string"?n.name:void 0,h=typeof n.type=="string"?n.type:"text",v=typeof n.placeholder=="string"?n.placeholder:void 0,x=n.defaultValue!==void 0?n.defaultValue:void 0,m=n.required===!0,C=n.disabled===!0,R=n.readOnly===!0,w=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,P=n.transform||t.transform;return(0,k.jsx)(Tt,{id:o,name:b,type:h,placeholder:v,defaultValue:x,required:m,disabled:C,readOnly:R,rules:w,validateOn:S,transform:P,style:r,onClick:s,actions:e.actions,nodeId:e.id,document:u,renderContext:d,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"textarea":{let b=typeof n.name=="string"?n.name:void 0,h=typeof n.placeholder=="string"?n.placeholder:void 0,v=n.defaultValue!==void 0?n.defaultValue:void 0,x=typeof n.rows=="number"?n.rows:4,m=n.required===!0,C=n.disabled===!0,R=n.readOnly===!0,w=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,P=n.transform||t.transform;return(0,k.jsx)(Et,{id:o,name:b,placeholder:h,defaultValue:v,rows:x,required:m,disabled:C,readOnly:R,rules:w,validateOn:S,transform:P,style:r,onClick:s,actions:e.actions,nodeId:e.id,document:u,renderContext:d,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"select":{let b=typeof n.name=="string"?n.name:void 0,h=typeof n.placeholder=="string"?n.placeholder:void 0,v=n.defaultValue!==void 0?n.defaultValue:void 0,x=n.required===!0,m=n.disabled===!0,C=e.formConfig?.rules||n.rules||t.rules||[],R=n.validateOn||t.validateOn,w=[],S=n.options??t.options;if(Array.isArray(S))w=S.map(P=>{if(typeof P=="object"&&P!==null){let A=P;return{label:String(A.label??A.value??""),value:String(A.value??A.label??"")}}return{label:String(P),value:String(P)}});else if(typeof S=="string")try{let P=JSON.parse(S);Array.isArray(P)&&(w=P.map(A=>{if(typeof A=="object"&&A!==null){let I=A;return{label:String(I.label??I.value??""),value:String(I.value??I.label??"")}}return{label:String(A),value:String(A)}}))}catch{}return(0,k.jsx)(Pt,{id:o,name:b,placeholder:h,defaultValue:v,required:x,disabled:m,rules:C,validateOn:R,optionsList:w,style:r,onClick:s,actions:e.actions,nodeId:e.id,document:u,renderContext:d,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"checkbox":{let b=typeof n.name=="string"?n.name:void 0,h=String(n.label??"Checkbox"),v=n.value!==void 0?String(n.value):"yes",x=n.defaultChecked===!0,m=n.required===!0,C=n.disabled===!0,R=e.formConfig?.rules||n.rules||t.rules||[],w=n.validateOn||t.validateOn,S=l==="editor"&&y&&!(0,M.isVariableBinding)(t.label);return(0,k.jsx)(It,{id:o,name:b,label:h,value:v,defaultChecked:x,required:m,disabled:C,rules:R,validateOn:w,style:r,onClick:s,actions:e.actions,nodeId:e.id,document:u,renderContext:d,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:a})}case"radio":{let b=typeof n.name=="string"?n.name:void 0,h=String(n.label??"Radio"),v=n.value!==void 0?String(n.value):"option",x=n.defaultChecked===!0,m=n.required===!0,C=n.disabled===!0,R=n.rules||t.rules||[],w=n.validateOn||t.validateOn,S=l==="editor"&&y&&!(0,M.isVariableBinding)(t.label);return(0,k.jsx)(At,{id:o,name:b,label:h,value:v,defaultChecked:x,required:m,disabled:C,rules:R,validateOn:w,style:r,onClick:s,actions:e.actions,nodeId:e.id,document:u,renderContext:d,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:a})}default:return null}}function Dn(i){let{node:e,domId:o,styles:r,props:n,context:t,mode:d,handleClick:l,onDiagnostic:u,renderChildNode:c}=i;if(e.type!=="collection")return null;let f=typeof n.sourceKey=="string"?n.sourceKey:void 0,s=typeof n.itemAlias=="string"&&n.itemAlias.length>0?n.itemAlias:"item",a=`${s}Index`,p=f?(0,Z.resolveBinding)({key:f},t).value:void 0;if(!Array.isArray(p)){let y={code:"INVALID_COLLECTION_SOURCE",nodeId:e.id,propName:"sourceKey",message:`Collection node "${e.id}" expected an array at variable path "${f??"(missing sourceKey)"}" but found ${p===void 0?"nothing":typeof p}.`};return u?.(y),t?.onDiagnostic?.(y),d==="editor"?(0,k.jsxs)("div",{id:o,"data-kubuild-node":e.id,"data-kubuild-collection-invalid":e.type,style:{...r,border:"2px dashed #f59e0b",backgroundColor:"#fffbeb",padding:"12px",color:"#b45309",fontSize:"0.875rem",borderRadius:"4px"},onClick:l,children:[(0,k.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[(0,k.jsx)(ce.AlertTriangle,{size:16}),(0,k.jsx)("strong",{children:"Collection: expected an array"})]}),(0,k.jsxs)("div",{children:["Source path ",(0,k.jsx)("code",{children:f??"(none)"})," did not resolve to an array. Found"," ",(0,k.jsx)("code",{children:p===void 0?"nothing":typeof p}),"."]})]}):(0,k.jsx)("div",{id:o,"data-kubuild-node":e.id,style:{display:"contents"},"data-kubuild-empty-collection":"invalid-source"})}let g=e.children||[];return g.length===0||p.length===0?(0,k.jsx)("div",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,"data-kubuild-collection-empty":p.length===0?"true":void 0,children:p.length===0&&d==="editor"&&(0,k.jsxs)("div",{style:{padding:"12px",border:"1px dashed #cbd5e1",borderRadius:"4px",color:"#94a3b8",fontSize:"0.875rem",textAlign:"center"},children:["Empty Collection (",(0,k.jsx)("code",{children:f})," has 0 items)"]})}):(0,k.jsx)("div",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,children:p.map((y,b)=>{let h={...t,variables:{...t.variables,[s]:y,[a]:b}},v=`__iter_${b}`;return(0,k.jsx)($n.default.Fragment,{children:g.map(x=>c(x,v,h))},`collection-item-${b}`)})})}function Fn(i){let{node:e,domId:o,styles:r,handleClick:n,mode:t,childrenElements:d}=i;return t==="editor"?(0,k.jsxs)("div",{id:o,style:{...r,border:"2px dashed #e2e8f0",padding:"16px",backgroundColor:"#f8fafc"},onClick:n,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:[(0,k.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",color:"#64748b"},children:[(0,k.jsx)(ce.Puzzle,{size:16}),(0,k.jsxs)("span",{children:["Unknown Component: ",e.type]}),(0,k.jsxs)("span",{style:{fontSize:"12px",color:"#94a3b8"},children:["(",e.id,")"]})]}),d]}):(0,k.jsx)("div",{id:o,style:r,onClick:n,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:d})}function Bt(i){let e=Sn(i);if(e)return e;let o=Tn(i);if(o)return o;let r=En(i);if(r)return r;let n=Pn(i);if(n)return n;let t=In(i);if(t)return t;let d=An(i);if(d)return d;let l=Nn(i);if(l)return l;let u=Dn(i);if(u)return u;let c=Vt(i);return c||Fn(i)}var H=require("react/jsx-runtime");function mo(i,e){if(!i)return!1;try{let o=me.default,r=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(!!(r&&(r.H||r.ReactCurrentDispatcher?.current))){let{isOpen:t}=at(i,e);return t}}catch{}return e.isModalOpen(i)}function ve({node:i,document:e,registry:o,context:r,viewport:n="desktop",mode:t="runtime",onNodeClick:d,onDiagnostic:l,onActionDispatch:u,onNodePropChange:c,selectedNodeId:f,instanceSuffix:s=""}){let a=r||ue,p=et(i.styles,n),g=i.props||{},y=o.get(i.type),b=s?`${i.id}${s}`:i.id,{props:h,diagnostics:v}=dn(i,y,a);v.forEach(q=>{l?.(q),a?.onDiagnostic?.(q)}),$t(i,{document:e,context:a,onDiagnostic:l,onActionDispatch:u,mode:t});let x=async q=>{q.stopPropagation(),d&&d(i.id,q),i.actions&&i.actions.length>0&&!g.disabled&&await _({node:i,trigger:"click",document:e,context:a,onDiagnostic:l,onActionDispatch:u}),g.action&&!g.disabled&&(Ze({action:g.action,nodeId:i.id,document:e,context:a,onDiagnostic:l}),u&&(0,Mn.isActionBinding)(g.action)&&u(g.action.type,Xe(a,g.action.payload),i.id))},m=i.children?.map(q=>(0,H.jsx)(ve,{node:q,document:e,registry:o,context:a,viewport:n,mode:t,onNodeClick:d,onDiagnostic:l,onActionDispatch:u,onNodePropChange:c,selectedNodeId:f,instanceSuffix:s},`${q.id}${s}`)),C=(q,ke="",Ne=a)=>(0,H.jsx)(ve,{node:q,document:e,registry:o,context:Ne,viewport:n,mode:t,onNodeClick:d,onDiagnostic:l,onActionDispatch:u,onNodePropChange:c,selectedNodeId:f,instanceSuffix:`${s}${ke}`},`${q.id}${s}${ke}`),R=g.modalId||g.modalNodeId||g.targetModalId,w=a?.modalManager||Q,S=R?w.hasState(R):!1,P=mo(R,w),A=S?P:!!g.defaultOpen,I={...p},O=i.type==="modal"||i.type==="drawer"||i.type==="collapsible";(g.modalId||g.modalNodeId)&&i.type!=="button"&&i.type!=="link"&&!O&&!A&&(I.display="none");let K;try{K=Bt({node:i,document:e,registry:o,context:a,viewport:n,mode:t,styles:I,props:g,resolvedProps:h,definition:y,domId:b,childrenElements:m,handleClick:x,onNodeClick:d,onDiagnostic:l,onActionDispatch:u,onNodePropChange:c,selectedNodeId:f,instanceSuffix:s,isModalOpen:A,renderChildNode:C})}catch(q){t==="editor"?K=(0,H.jsxs)("div",{"data-kubuild-node":i.id,"data-kubuild-error":i.type,style:{padding:"12px 16px",margin:"4px 0",backgroundColor:"#fef2f2",border:"1px solid #ef4444",borderRadius:"6px",color:"#b91c1c",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"13px",lineHeight:"1.4"},children:[(0,H.jsxs)("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[(0,H.jsx)(Vn.AlertTriangle,{size:14,"aria-hidden":"true"}),(0,H.jsxs)("span",{children:["Component Render Error: <",i.type,">"]})]}),(0,H.jsxs)("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",(0,H.jsx)("code",{children:i.id})," \u2014 ",q instanceof Error?q.message:String(q)]})]}):K=(0,H.jsx)("div",{"data-kubuild-node":i.id,"data-kubuild-error":i.type,style:{display:"none"},"aria-hidden":"true"})}return(0,H.jsx)(Te,{nodeId:i.id,componentType:i.type,mode:t,onDiagnostic:l,children:K})}var bo=({document:i,registry:e=(0,On.createDefaultComponentRegistry)(),context:o,viewport:r="desktop",mode:n="runtime",className:t,showToastContainer:d=!0,onNodeClick:l,onDiagnostic:u,onActionDispatch:c,onNodePropChange:f,selectedNodeId:s})=>{if(!i||!i.document)return(0,H.jsx)("div",{className:t,children:"Empty Document"});let a=me.default.useMemo(()=>tt(i),[i]),p=me.default.useMemo(()=>Se(i),[i]),g=me.default.useMemo(()=>i?.tracking?JSON.stringify(i.tracking):null,[i?.tracking]);return me.default.useEffect(()=>{if(n==="runtime"&&i?.tracking&&g)return yt(i.tracking)},[n,g]),(0,H.jsx)(We,{value:o,children:(0,H.jsxs)("div",{className:`kubuild-canvas-root ${t||""}`,children:[a?(0,H.jsx)("style",{"data-kubuild-state-styles":!0,children:a}):null,p?(0,H.jsx)("style",{"data-kubuild-animation-styles":!0,children:p}):null,(0,H.jsx)(ve,{node:i.document,document:i,registry:e,context:o,viewport:r,mode:n,onNodeClick:l,onDiagnostic:u,onActionDispatch:c,onNodePropChange:f,selectedNodeId:s}),d&&(0,H.jsx)(xt,{})]})})},Ae=me.default.memo(bo);var _t=be(require("react"),1),Bn=be(require("react-dom"),1),_n=require("@kubuild/components");var te=require("react/jsx-runtime");function Ht(i){let e=i.document?.document;if(e)return e.children?.[0]??void 0}function Hn(i,e){return i.filter(o=>o.artboardType==="component"&&!!o.triggerId&&!!e[o.triggerId]&&!!Ht(o))}var ze=({artboards:i,registry:e,context:o=ue,viewport:r="desktop",mode:n="runtime",modalManager:t,container:d,onDiagnostic:l,onActionDispatch:u})=>{let c=t||Q,{modals:f}=st(c),s=_t.default.useMemo(()=>e||(0,_n.createDefaultComponentRegistry)(),[e]),a=_t.default.useMemo(()=>(i??o.componentArtboards??[]).filter(b=>b.artboardType==="component"),[i,o.componentArtboards]);if(n==="editor")return null;let p=Hn(a,f);if(p.length===0)return null;let g=d!==void 0?d:typeof globalThis.document<"u"?globalThis.document.body:null;return g?(0,te.jsx)(te.Fragment,{children:p.map(y=>{let b=Ht(y);return b?Bn.default.createPortal((0,te.jsx)("div",{"data-kubuild-artboard-portal":y.id,style:{pointerEvents:"auto"},children:(0,te.jsx)(ve,{node:b,document:y.document,registry:s,context:o,viewport:r,mode:"runtime",onDiagnostic:l,onActionDispatch:u})},y.id),g,y.id):null})}):null},yo=({componentArtboards:i,modalManager:e,portalContainer:o,...r})=>(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)(Ae,{...r}),(0,te.jsx)(ze,{artboards:i,registry:r.registry,context:r.context,viewport:r.viewport,mode:r.mode,modalManager:e,container:o,onDiagnostic:r.onDiagnostic,onActionDispatch:r.onActionDispatch})]});var xe=require("react");var j=require("react/jsx-runtime"),Lt=Object.freeze({desktop:{width:"100%",maxWidth:"1280px",minHeight:"600px",label:"Desktop (1280px)",isFluid:!0},tablet:{width:"768px",height:"1024px",minHeight:"600px",label:"Tablet (768 \xD7 1024)",isFluid:!1},mobile:{width:"375px",height:"667px",minHeight:"500px",label:"Mobile (375 \xD7 667)",isFluid:!1}}),Ln=Object.freeze({mobile:480,tablet:768,desktop:1024});function ho(i,e){let o={...Ln,...e};return i<=o.mobile?"mobile":i<=o.tablet?"tablet":"desktop"}function qt(i,e){let o=Lt[i]||Lt.desktop,r=e?.[i];return{...o,...r}}function qn(i,e,o){let r=qt(i,e),n=o??r.scale??1,t=l=>typeof l=="number"?`${l}px`:l,d={width:t(r.width),maxWidth:t(r.maxWidth),minWidth:t(r.minWidth),height:t(r.height),minHeight:t(r.minHeight),maxHeight:t(r.maxHeight),aspectRatio:r.aspectRatio,transition:"width 0.2s ease, max-width 0.2s ease, height 0.2s ease"};return n!==1&&(d.transform=`scale(${n})`,d.transformOrigin="top center"),d}var jn=({document:i,viewport:e="desktop",onViewportChange:o,viewportConfigs:r,breakpoints:n,registry:t,context:d,mode:l="runtime",showChrome:u=!1,chromeTitle:c,editorOverlay:f,scale:s,className:a,style:p,canvasClassName:g,canvasStyle:y,onNodeClick:b,onDiagnostic:h,onActionDispatch:v,componentArtboards:x})=>{let[m,C]=(0,xe.useState)(null),R=x??d?.componentArtboards,w=(0,xe.useMemo)(()=>qt(e,r),[e,r]),S=(0,xe.useMemo)(()=>qn(e,r,s),[e,r,s]),P=(0,xe.useMemo)(()=>({...S,...y,position:"relative",boxSizing:"border-box"}),[S,y]);return(0,j.jsxs)("div",{"data-kubuild-preview-container":!0,"data-viewport":e,className:`kubuild-preview-viewport-adapter ${a||""}`,style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start",width:"100%",height:"100%",boxSizing:"border-box",...p},children:[u&&(0,j.jsxs)("div",{"data-kubuild-preview-chrome":!0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",maxWidth:S.maxWidth||S.width,padding:"8px 12px",marginBottom:"8px",backgroundColor:"#1e293b",color:"#f8fafc",borderRadius:"8px",fontSize:"12px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},children:[(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,j.jsx)("span",{style:{fontWeight:600},children:c||i.metadata?.title||"Preview"}),(0,j.jsx)("span",{"data-testid":"viewport-badge",style:{fontSize:"10px",padding:"2px 6px",borderRadius:"4px",backgroundColor:"#334155",color:"#94a3b8",textTransform:"uppercase",fontWeight:700},children:e}),(0,j.jsx)("span",{style:{fontSize:"11px",color:"#64748b"},children:w.label||`${w.width} \xD7 ${w.height||"auto"}`})]}),o&&(0,j.jsx)("div",{"data-testid":"viewport-switcher",style:{display:"flex",gap:"4px",backgroundColor:"#0f172a",padding:"2px",borderRadius:"6px"},children:["desktop","tablet","mobile"].map(A=>{let I=e===A;return(0,j.jsx)("button",{type:"button","data-testid":`viewport-btn-${A}`,onClick:()=>o(A),style:{padding:"4px 10px",fontSize:"11px",fontWeight:500,borderRadius:"4px",border:"none",cursor:"pointer",textTransform:"capitalize",backgroundColor:I?"#3b82f6":"transparent",color:I?"#ffffff":"#94a3b8",transition:"all 0.15s ease"},children:A},A)})})]}),(0,j.jsxs)("div",{"data-kubuild-preview-canvas":!0,"data-viewport":e,className:`kubuild-preview-canvas ${g||""}`,style:P,children:[(0,j.jsx)(Ae,{document:i,registry:t,context:d,viewport:e,mode:l,onNodeClick:b,onDiagnostic:h,onActionDispatch:v}),R&&R.length>0&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{ref:C,"data-kubuild-preview-overlay-host":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,transform:"translate3d(0, 0, 0)",pointerEvents:"none"}}),m&&(0,j.jsx)(ze,{artboards:R,registry:t,context:d,viewport:e,mode:l,container:m,onDiagnostic:h,onActionDispatch:v})]}),f&&(0,j.jsx)("div",{"data-kubuild-preview-overlay":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10},children:f})]})]})},vo=jn;function L(i){return i==null?"":String(i).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function E(i){return L(i)}function xo(i){if(!i||typeof i!="string")return null;let e=i.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function ko(i){if(!i||typeof i!="string")return null;let e=i.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function G(i,e,o){let r=" ".repeat(e*(o.indentSize??2)),n=" ".repeat((e+1)*(o.indentSize??2)),t=i.props||{},d=i.children||[],u=o.includeNodeClasses!==!1?`kb-node-${i.id}`:"",c=(...s)=>s.filter(Boolean).join(" "),f=t.id?` id="${E(t.id)}"`:"";switch(i.type){case"page":{let s=o.rootTag||"main",a=c("kb-page",u),p=d.map(g=>G(g,e+1,o)).join(`
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
${r
|
|
130
|
-
|
|
131
|
-
${a}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
${
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
${
|
|
138
|
-
${
|
|
139
|
-
|
|
120
|
+
${n}</style>`}):""}var $t=({id:r,style:e,onClick:o,dataKubuildNode:i,html:n,role:t})=>{let d=(0,de.useRef)(null),l=(0,de.useRef)(null),c=(0,de.useMemo)(()=>wn(n),[n]);return yo(()=>{let p=d.current;if(p){if(typeof p.attachShadow=="function"){if(!l.current)if(p.shadowRoot)l.current=p.shadowRoot;else try{l.current=p.attachShadow({mode:"open"})}catch{l.current=p.shadowRoot}if(l.current){l.current.innerHTML=c;return}}p.innerHTML=c}},[c]),(0,Ct.jsx)("div",{ref:d,id:r,style:e,onClick:o,"data-kubuild-node":i,role:t,children:(0,Ct.jsx)("template",{shadowrootmode:"open",dangerouslySetInnerHTML:{__html:c}})})};var he=require("react");var Pe=be(require("react"),1),Cn=require("@kubuild/core");async function _(r){let{node:e,trigger:o,document:i,context:n,formContext:t,extraContext:d,onDiagnostic:l,onActionDispatch:c,executor:p}=r;if(!e.actions||!Array.isArray(e.actions)||e.actions.length===0)return{executed:!1,success:!0};let f=e.actions.filter(u=>u.trigger===o&&u.enabled!==!1);if(f.length===0)return{executed:!1,success:!0};let a=p||new Cn.ActionPipelineExecutor;Ie(a);let s={form:t?{...t.values}:{},variables:n?.variables?{...n.variables}:{},nodeId:e.id,document:i,toastManager:n?.toastManager,modalManager:n?.modalManager,trackingConfig:n?.trackingConfig||i?.tracking||i?.metadata?.tracking,trackingRuntime:n?.tracking,reportDiagnostic:u=>{l?.(u),n?.onDiagnostic?.(u)},...d||{}};for(let u of f){let g=await a.execute(u,{context:s});if(c&&u.steps.length>0&&c(u.steps[0].type,u.steps[0].payload,e.id),!g.success){let y=g.error instanceof Error?g.error.message:String(g.error||`Action pipeline "${u.id}" failed`),m={code:"ACTION_EXECUTION_ERROR",actionType:u.steps[0]?.type||o,nodeId:e.id,message:y,error:g.error};return l?.(m),n?.onDiagnostic?.(m),{executed:!0,success:!1,error:g.error}}}return{executed:!0,success:!0}}function St(r,e){if(!r.actions?.some(t=>t.trigger==="load"&&t.enabled!==!1))return;let i=Pe.default?.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||Pe.default?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(i?.H||i?.ReactCurrentDispatcher?.current)try{(0,Pe.useEffect)(()=>{e.mode!=="editor"&&_({node:r,trigger:"load",document:e.document,context:e.context,formContext:e.formContext,onDiagnostic:e.onDiagnostic,onActionDispatch:e.onActionDispatch})},[r,e.document,e.context,e.formContext,e.onDiagnostic,e.onActionDispatch,e.mode])}catch{}}var M=require("react/jsx-runtime"),Tt=({id:r,name:e,action:o,method:i="POST",target:n,autoComplete:t,style:d,onClick:l,mode:c,dataKubuildNode:p,children:f})=>{let a=ee();return(0,M.jsx)("form",{id:r,name:e,action:o,method:i,target:n,autoComplete:t,style:d,onClick:l,onSubmit:g=>{if(c==="editor"){g.preventDefault();return}a&&a.handleFormSubmit(g)},onReset:()=>{a&&a.resetForm()},"data-kubuild-node":p,role:"form","aria-label":e,children:f})},Et=({id:r,name:e,type:o="text",placeholder:i,defaultValue:n,required:t,disabled:d,readOnly:l,rules:c,validateOn:p,transform:f,style:a,onClick:s,actions:u,nodeId:g,document:y,renderContext:m,onDiagnostic:v,onActionDispatch:h,dataKubuildNode:x})=>{let b=ee();if(b&&e&&b.registerField({name:e,defaultValue:n,required:t,disabled:d,rules:c||[],validateOn:p,transform:f}),(0,he.useEffect)(()=>{if(!b||!e)return;let V=b.registerField({name:e,defaultValue:n,required:t,disabled:d,rules:c||[],validateOn:p,transform:f});return()=>{V()}},[b,e,n,t,d,c,p,f]),!b||!e)return(0,M.jsx)("input",{id:r,type:o,name:e,placeholder:i,defaultValue:n!==void 0?String(n):void 0,required:t,disabled:d,readOnly:l,style:a,onClick:s,"data-kubuild-node":x});let w=b.values[e],k=w!=null?String(w):n!=null?String(n):"",C=b.errors[e],S=!!b.touched[e],T=!!(C&&S);return(0,M.jsx)("input",{id:r,type:o,name:e,placeholder:i,value:k,onChange:V=>{let K=V.target.value;o==="number"&&(K=V.target.value===""?"":Number(V.target.value)),b.setFieldValue(e,K),u&&u.length>0&&_({node:{id:g||r||e,type:"input",actions:u},trigger:"change",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:K},onDiagnostic:v,onActionDispatch:h})},onBlur:()=>{b.setFieldTouched(e,!0),u&&u.length>0&&_({node:{id:g||r||e,type:"input",actions:u},trigger:"blur",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:b.values[e]},onDiagnostic:v,onActionDispatch:h})},onFocus:()=>{u&&u.length>0&&_({node:{id:g||r||e,type:"input",actions:u},trigger:"focus",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:b.values[e]},onDiagnostic:v,onActionDispatch:h})},required:t,disabled:d,readOnly:l,style:a,onClick:s,"data-kubuild-node":x,"data-field":e,"data-invalid":T?"true":void 0,"aria-invalid":T?!0:void 0,"aria-errormessage":C?`${r}-error`:void 0})},It=({id:r,name:e,placeholder:o,defaultValue:i,rows:n=4,required:t,disabled:d,readOnly:l,rules:c,validateOn:p,transform:f,style:a,onClick:s,actions:u,nodeId:g,document:y,renderContext:m,onDiagnostic:v,onActionDispatch:h,dataKubuildNode:x})=>{let b=ee();if(b&&e&&b.registerField({name:e,defaultValue:i,required:t,disabled:d,rules:c||[],validateOn:p,transform:f}),(0,he.useEffect)(()=>{if(!b||!e)return;let V=b.registerField({name:e,defaultValue:i,required:t,disabled:d,rules:c||[],validateOn:p,transform:f});return()=>{V()}},[b,e,i,t,d,c,p,f]),!b||!e)return(0,M.jsx)("textarea",{id:r,name:e,placeholder:o,defaultValue:i!==void 0?String(i):void 0,rows:n,required:t,disabled:d,readOnly:l,style:a,onClick:s,"data-kubuild-node":x});let w=b.values[e],k=w!=null?String(w):i!=null?String(i):"",C=b.errors[e],S=!!b.touched[e],T=!!(C&&S);return(0,M.jsx)("textarea",{id:r,name:e,placeholder:o,rows:n,value:k,onChange:V=>{b.setFieldValue(e,V.target.value),u&&u.length>0&&_({node:{id:g||r||e,type:"textarea",actions:u},trigger:"change",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:V.target.value},onDiagnostic:v,onActionDispatch:h})},onBlur:()=>{b.setFieldTouched(e,!0),u&&u.length>0&&_({node:{id:g||r||e,type:"textarea",actions:u},trigger:"blur",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:b.values[e]},onDiagnostic:v,onActionDispatch:h})},onFocus:()=>{u&&u.length>0&&_({node:{id:g||r||e,type:"textarea",actions:u},trigger:"focus",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:b.values[e]},onDiagnostic:v,onActionDispatch:h})},required:t,disabled:d,readOnly:l,style:a,onClick:s,"data-kubuild-node":x,"data-field":e,"data-invalid":T?"true":void 0,"aria-invalid":T?!0:void 0,"aria-errormessage":C?`${r}-error`:void 0})},Pt=({id:r,name:e,placeholder:o,defaultValue:i,required:n,disabled:t,rules:d,validateOn:l,optionsList:c,style:p,onClick:f,actions:a,nodeId:s,document:u,renderContext:g,onDiagnostic:y,onActionDispatch:m,dataKubuildNode:v})=>{let h=ee();if(h&&e&&h.registerField({name:e,defaultValue:i,required:n,disabled:t,rules:d||[],validateOn:l}),(0,he.useEffect)(()=>{if(!h||!e)return;let P=h.registerField({name:e,defaultValue:i,required:n,disabled:t,rules:d||[],validateOn:l});return()=>{P()}},[h,e,i,n,t,d,l]),!h||!e)return(0,M.jsxs)("select",{id:r,name:e,defaultValue:i!==void 0?String(i):"",required:n,disabled:t,style:p,onClick:f,"data-kubuild-node":v,children:[o&&(0,M.jsx)("option",{value:"",disabled:!0,children:o}),c.map((P,O)=>(0,M.jsx)("option",{value:P.value,children:P.label},O))]});let x=h.values[e],b=x!=null?String(x):i!=null?String(i):"",w=h.errors[e],k=!!h.touched[e],C=!!(w&&k);return(0,M.jsxs)("select",{id:r,name:e,value:b,onChange:P=>{h.setFieldValue(e,P.target.value),a&&a.length>0&&_({node:{id:s||r||e,type:"select",actions:a},trigger:"change",document:u,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:P.target.value},onDiagnostic:y,onActionDispatch:m})},onBlur:()=>{h.setFieldTouched(e,!0),a&&a.length>0&&_({node:{id:s||r||e,type:"select",actions:a},trigger:"blur",document:u,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:y,onActionDispatch:m})},onFocus:()=>{a&&a.length>0&&_({node:{id:s||r||e,type:"select",actions:a},trigger:"focus",document:u,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:y,onActionDispatch:m})},required:n,disabled:t,style:p,onClick:f,"data-kubuild-node":v,"data-field":e,"data-invalid":C?"true":void 0,"aria-invalid":C?!0:void 0,"aria-errormessage":w?`${r}-error`:void 0,children:[o&&(0,M.jsx)("option",{value:"",disabled:!0,children:o}),c.map((P,O)=>(0,M.jsx)("option",{value:P.value,children:P.label},O))]})},At=({id:r,name:e,label:o="",defaultChecked:i=!1,required:n,disabled:t,rules:d,validateOn:l,style:c,onClick:p,actions:f,nodeId:a,document:s,renderContext:u,onDiagnostic:g,onActionDispatch:y,dataKubuildNode:m,isEditable:v,onNodePropChange:h})=>{let x=ee();x&&e&&x.registerField({name:e,defaultValue:i,required:n,disabled:t,rules:d||[],validateOn:l}),(0,he.useEffect)(()=>{if(!x||!e)return;let C=x.registerField({name:e,defaultValue:i,required:n,disabled:t,rules:d||[],validateOn:l});return()=>{C()}},[x,e,i,n,t,d,l]);let b=x&&e&&x.values[e]!==void 0?!!x.values[e]:i;return(0,M.jsxs)("label",{id:r,style:c,onClick:p,"data-kubuild-node":m,children:[(0,M.jsx)("input",{type:"checkbox",name:e,checked:b,onChange:C=>{x&&e&&(x.setFieldValue(e,C.target.checked),f&&f.length>0&&_({node:{id:a||r||e,type:"checkbox",actions:f},trigger:"change",document:s,context:u,formContext:x,extraContext:{fieldName:e,fieldValue:C.target.checked},onDiagnostic:g,onActionDispatch:y}))},onBlur:()=>{x&&e&&(x.setFieldTouched(e,!0),f&&f.length>0&&_({node:{id:a||r||e,type:"checkbox",actions:f},trigger:"blur",document:s,context:u,formContext:x,extraContext:{fieldName:e,fieldValue:b},onDiagnostic:g,onActionDispatch:y}))},required:n,disabled:t,style:{cursor:t?"not-allowed":"pointer"},"data-field":e}),v?(0,M.jsx)(X,{as:"span",value:o,isEditable:v,nodeId:m||"",onChange:(C,S)=>h?.(m||"","label",C,S)}):(0,M.jsx)("span",{children:o})]})},Nt=({id:r,name:e,label:o="",value:i="",defaultChecked:n=!1,required:t,disabled:d,rules:l,validateOn:c,style:p,onClick:f,actions:a,nodeId:s,document:u,renderContext:g,onDiagnostic:y,onActionDispatch:m,dataKubuildNode:v,isEditable:h,onNodePropChange:x})=>{let b=ee();b&&e&&b.registerField({name:e,defaultValue:n?i:void 0,required:t,disabled:d,rules:l||[],validateOn:c}),(0,he.useEffect)(()=>{if(!b||!e)return;let S=b.registerField({name:e,defaultValue:n?i:void 0,required:t,disabled:d,rules:l||[],validateOn:c});return()=>{S()}},[b,e,n,i,t,d,l,c]);let w=b&&e&&b.values[e]!==void 0?b.values[e]===i:n;return(0,M.jsxs)("label",{id:r,style:p,onClick:f,"data-kubuild-node":v,children:[(0,M.jsx)("input",{type:"radio",name:e,value:i,checked:w,onChange:()=>{b&&e&&(b.setFieldValue(e,i),a&&a.length>0&&_({node:{id:s||r||e,type:"radio",actions:a},trigger:"change",document:u,context:g,formContext:b,extraContext:{fieldName:e,fieldValue:i},onDiagnostic:y,onActionDispatch:m}))},onBlur:()=>{b&&e&&(b.setFieldTouched(e,!0),a&&a.length>0&&_({node:{id:s||r||e,type:"radio",actions:a},trigger:"blur",document:u,context:g,formContext:b,extraContext:{fieldName:e,fieldValue:i},onDiagnostic:y,onActionDispatch:m}))},required:t,disabled:d,style:{cursor:d?"not-allowed":"pointer"},"data-field":e}),h?(0,M.jsx)(X,{as:"span",value:o,isEditable:h,nodeId:v||"",onChange:(S,T)=>x?.(v||"","label",S,T)}):(0,M.jsx)("span",{children:o})]})};async function $n(r){let{event:e,buttonType:o,disabled:i,formRuntime:n,onClick:t,node:d,actions:l,document:c,renderContext:p,onDiagnostic:f,onActionDispatch:a,executeActions:s=_}=r;if(i)return;if(o==="submit"){if(n&&!await n.handleFormSubmit(e))return}else o==="reset"&&n?.resetForm();if(t){t(e);return}let u=d||(l?{id:"button",type:"button",actions:l}:void 0);u?.actions&&u.actions.length>0&&await s({node:u,trigger:"click",document:c,context:p,formContext:n,onDiagnostic:f,onActionDispatch:a})}var Dt=({id:r,buttonType:e,disabled:o,ariaLabel:i,style:n,onClick:t,actions:d,node:l,document:c,renderContext:p,onDiagnostic:f,onActionDispatch:a,dataKubuildNode:s,actionAttrs:u,children:g})=>{let y=ee(),m=y?.isSubmitting===!0,v=o||e==="submit"&&m;return(0,M.jsx)("button",{id:r,type:e,disabled:v,"aria-disabled":v?!0:void 0,"aria-label":i,"aria-busy":e==="submit"&&m?!0:void 0,tabIndex:v?-1:0,style:n,onClick:v?void 0:async x=>{await $n({event:x,buttonType:e,disabled:v,formRuntime:y,onClick:t,node:l||(d?{id:s||r||"button",type:"button",actions:d}:void 0),document:c,renderContext:p,onDiagnostic:f,onActionDispatch:a})},"data-kubuild-node":s,...u,children:g})};function Ft(r){return r?r.replace(/[-_](\w)/g,(e,o)=>o.toUpperCase()).replace(/^\w/,e=>e.toUpperCase()):""}function Mt(r){if(!r||typeof r!="string")return null;let e=r.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function Ot(r){if(!r||typeof r!="string")return null;let e=r.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function Vt(r){if(r==="16:9")return"16 / 9";if(r==="4:3")return"4 / 3";if(r==="1:1")return"1 / 1";if(r==="9:16")return"9 / 16";if(typeof r=="string"&&r!=="auto")return r.replace(":"," / ")}var je=be(require("react"),1),Sn=require("@kubuild/schema");var U=require("react/jsx-runtime");function Bt(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,childrenElements:d,handleClick:l,context:c,mode:p,isModalOpen:f}=r,a=n.modalId||t.modalId||e.id,s=String(a).trim(),u=c?.modalManager||Q,g=p==="editor"&&c?.artboardSurface==="component";switch(e.type){case"modal":{if(!f&&p==="runtime")return(0,U.jsx)(je.default.Fragment,{});let y=n.backdrop!==!1&&t.backdrop!==!1,m=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,v=n.showCloseButton!==!1&&t.showCloseButton!==!1,h=n.title??t.title,x=h!==void 0?String(h):void 0,b=n.size||t.size||"md",w=b==="sm"?"400px":b==="lg"?"768px":b==="fullscreen"?"100%":"560px",k=b==="fullscreen"?"100%":"auto";return(0,U.jsx)("div",{id:`${o}-overlay`,"data-kubuild-overlay":s,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",alignItems:"flex-start",justifyContent:"center",padding:b==="fullscreen"?"0":"16px"}:{position:p==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:y?"rgba(15, 23, 42, 0.65)":"transparent",backdropFilter:y?"blur(4px)":"none",display:"flex",alignItems:b==="fullscreen"?"stretch":"center",justifyContent:"center",zIndex:9999,padding:b==="fullscreen"?"0":"16px"},onClick:C=>{C.target===C.currentTarget&&m&&p==="runtime"&&u.closeModal(s)},children:(0,U.jsxs)("div",{id:o,style:{...i,position:"relative",boxSizing:"border-box",maxWidth:w,height:k,width:"100%"},onClick:l,"data-kubuild-node":e.id,role:"dialog","aria-modal":"true","aria-label":typeof x=="string"?x:"Modal Dialog",children:[v&&(0,U.jsx)("button",{type:"button","aria-label":"Close modal",style:{position:"absolute",top:"14px",right:"14px",background:"transparent",border:"none",fontSize:"18px",cursor:"pointer",color:"#64748b",padding:"4px 8px",lineHeight:1},onClick:C=>{C.stopPropagation(),u.closeModal(s)},children:"\u2715"}),x&&(0,U.jsx)("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(x)}),d]})})}case"drawer":{if(!f&&p==="runtime")return(0,U.jsx)(je.default.Fragment,{});let y=n.placement||t.placement||"right",m=n.backdrop!==!1&&t.backdrop!==!1,v=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,h=n.showCloseButton!==!1&&t.showCloseButton!==!1,x=n.title??t.title,b=x!==void 0?String(x):void 0,w=y==="top"||y==="bottom";return(0,U.jsx)("div",{id:`${o}-overlay`,"data-kubuild-overlay":s,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",justifyContent:y==="left"?"flex-start":y==="right"?"flex-end":"center",alignItems:"flex-start",padding:"16px"}:{position:p==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:m?"rgba(15, 23, 42, 0.5)":"transparent",backdropFilter:m?"blur(2px)":"none",display:"flex",justifyContent:y==="left"?"flex-start":y==="right"?"flex-end":"center",alignItems:y==="top"?"flex-start":y==="bottom"?"flex-end":"stretch",zIndex:9999},onClick:k=>{k.target===k.currentTarget&&v&&p==="runtime"&&u.closeModal(s)},children:(0,U.jsxs)("div",{id:o,style:{...i,position:"relative",boxSizing:"border-box",height:g||w?"auto":"100%",...g?{minHeight:"240px"}:{},width:w?"100%":i.width||"320px",maxHeight:g?"none":w?"80vh":"100%",overflowY:"auto"},onClick:l,"data-kubuild-node":e.id,role:"region","aria-label":typeof b=="string"?b:"Drawer",children:[h&&(0,U.jsx)("button",{type:"button","aria-label":"Close drawer",style:{position:"absolute",top:"14px",right:"14px",background:"transparent",border:"none",fontSize:"18px",cursor:"pointer",color:"#64748b",padding:"4px 8px",lineHeight:1},onClick:k=>{k.stopPropagation(),u.closeModal(s)},children:"\u2715"}),b&&(0,U.jsx)("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(b)}),d]})})}case"collapsible":return(0,U.jsx)("div",{id:o,style:{...i,display:(p==="editor"?!0:!!f)?i.display||"block":"none"},onClick:l,"data-kubuild-node":e.id,"data-kubuild-collapsible":s,children:d});case Sn.ARTBOARD_REFERENCE_NODE_TYPE:{if(p==="runtime")return(0,U.jsx)(je.default.Fragment,{});let y=typeof t.artboardId=="string"?t.artboardId:void 0,m=(typeof t.label=="string"&&t.label.trim().length>0?t.label:y)||"artboard";return(0,U.jsxs)("div",{id:o,style:{display:"inline-flex",alignItems:"center",gap:"6px",padding:"6px 10px",border:"1px dashed #94a3b8",borderRadius:"6px",backgroundColor:"#f8fafc",color:"#475569",fontSize:"12px",fontFamily:"ui-sans-serif, system-ui, sans-serif",cursor:"pointer",...i},onClick:l,"data-kubuild-node":e.id,"data-kubuild-artboard-reference":y,title:`Opens artboard "${m}" \u2014 edit it on its own canvas surface`,children:[(0,U.jsx)("span",{"aria-hidden":"true",children:"\u29C9"}),(0,U.jsx)("span",{children:`Opens: ${m}`})]})}default:return null}}var R=require("react/jsx-runtime");function En(r){let{node:e,document:o,definition:i,resolvedProps:n,styles:t,context:d,childrenElements:l,handleClick:c}=r;if(i?.renderer&&typeof i.renderer=="function"){let p=i.renderer;return typeof p=="function"&&!p.prototype?.isReactComponent?p({node:e,document:o,props:n,styles:t,context:d,children:l,onClick:c}):(0,R.jsx)(p,{node:e,document:o,props:n,styles:t,context:d,onClick:c,children:l})}return null}function In(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,handleClick:d,childrenElements:l}=r;switch(e.type){case"page":return(0,R.jsx)("div",{id:o,style:i,onClick:d,"data-kubuild-node":e.id,children:l});case"section":{let c=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return(0,R.jsx)("section",{id:o,style:i,onClick:d,"data-kubuild-node":e.id,"aria-label":c,children:l})}case"container":return(0,R.jsx)("div",{id:o,style:i,onClick:d,"data-kubuild-node":e.id,children:l});case"columns":return(0,R.jsx)("div",{id:o,style:i,onClick:d,"data-kubuild-node":e.id,children:l});case"flex":case"grid":{let c=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return(0,R.jsx)("div",{id:o,style:i,onClick:d,"data-kubuild-node":e.id,"aria-label":c,children:l})}default:return null}}function Pn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:c,childrenElements:p,selectedNodeId:f}=r,a=e.id===f;switch(e.type){case"heading":{let s=typeof n.level=="number"?n.level:1,u=`h${Math.min(Math.max(s,1),6)}`||"h1",g=String(n.text??n.content??t.text??t.content??""),y=d==="editor"&&a&&!(0,F.isVariableBinding)(t.text)&&!(0,F.isVariableBinding)(t.content);return(0,R.jsx)(X,{as:u,id:o,style:i,value:g,isEditable:y,nodeId:e.id,onClick:l,onChange:(m,v)=>c?.(e.id,"text",m,v)})}case"text":{let s=String(n.text??n.content??t.text??t.content??""),u=typeof n.as=="string"?n.as:typeof t.as=="string"?t.as:typeof n.tag=="string"?n.tag:typeof t.tag=="string"?t.tag:(t.content!==void 0||n.content!==void 0)&&t.text===void 0&&n.text===void 0?"p":"span",g=d==="editor"&&a&&!(0,F.isVariableBinding)(t.text)&&!(0,F.isVariableBinding)(t.content);return(0,R.jsx)(X,{as:u,id:o,style:i,value:s,isEditable:g,nodeId:e.id,onClick:l,onChange:(y,m)=>c?.(e.id,"text",y,m)})}case"paragraph":{let s=String(n.text??n.content??t.text??t.content??""),u=d==="editor"&&a&&!(0,F.isVariableBinding)(t.text)&&!(0,F.isVariableBinding)(t.content);return(0,R.jsx)(X,{as:"p",id:o,style:i,value:s,isEditable:u,nodeId:e.id,onClick:l,onChange:(g,y)=>c?.(e.id,"text",g,y)})}case"link":{let s=String(n.text??n.label??n.content??t.text??t.label??t.content??""),u=typeof n.href=="string"?n.href:"#",g=typeof n.target=="string"?n.target:void 0,y=d==="editor"&&a&&!(0,F.isVariableBinding)(t.text)&&!(0,F.isVariableBinding)(t.label)&&!(0,F.isVariableBinding)(t.content),m=typeof n.rel=="string"?n.rel:g==="_blank"?"noopener noreferrer":void 0,v=d==="editor"?void 0:(0,Z.sanitizeUrl)(u,"#"),h=x=>{d==="editor"&&x.preventDefault(),l(x)};return y?(0,R.jsx)(X,{as:"a",id:o,style:i,value:s,isEditable:y,nodeId:e.id,onClick:h,onChange:(x,b)=>{let w="text"in t?"text":"label";c?.(e.id,w,x,b)},href:v,target:g,rel:m}):(0,R.jsx)("a",{id:o,style:i,href:v,target:g,rel:m,onClick:h,"data-kubuild-node":e.id,children:s})}case"blockquote":{let s=typeof n.quote=="string"?n.quote:typeof n.text=="string"?n.text:typeof t.quote=="string"?t.quote:typeof t.text=="string"?t.text:void 0,u=typeof n.cite=="string"?n.cite:typeof t.cite=="string"?t.cite:void 0,g=d==="editor"&&a&&!(0,F.isVariableBinding)(t.quote)&&!(0,F.isVariableBinding)(t.text),y={borderLeft:"4px solid #cbd5e1",paddingLeft:"1rem",margin:"1rem 0",fontStyle:"italic",color:"#475569",...i};return(0,R.jsxs)("blockquote",{id:o,style:y,onClick:l,"data-kubuild-node":e.id,cite:u,children:[s!==void 0?g?(0,R.jsx)(X,{as:"p",value:s,isEditable:g,nodeId:e.id,onChange:(m,v)=>{let h="quote"in t?"quote":"text";c?.(e.id,h,m,v)}}):(0,R.jsx)("p",{children:s}):null,p,u&&(0,R.jsxs)("cite",{style:{display:"block",fontStyle:"normal",fontSize:"0.875rem",marginTop:"0.5rem",color:"#64748b"},children:["\u2014 ",u]})]})}case"badge":{let s=String(n.text??n.label??t.text??t.label??""),u=typeof n.variant=="string"?n.variant:typeof t.variant=="string"?t.variant:"default",g=d==="editor"&&a&&!(0,F.isVariableBinding)(t.text)&&!(0,F.isVariableBinding)(t.label);return(0,R.jsx)("span",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,"data-variant":u,"data-badge-variant":u,children:g?(0,R.jsx)(X,{as:"span",value:s,isEditable:g,nodeId:e.id,onChange:(y,m)=>{let v="text"in t?"text":"label";c?.(e.id,v,y,m)}}):s})}case"code-block":{let s=String(n.code??t.code??""),u=typeof n.language=="string"?n.language:typeof t.language=="string"?t.language:"plaintext";return d==="editor"?(0,R.jsx)("pre",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,"data-language":u,children:(0,R.jsx)("code",{className:`language-${u}`,contentEditable:!0,suppressContentEditableWarning:!0,onBlur:g=>c?.(e.id,"code",g.currentTarget.textContent??"",!0),children:s})}):(0,R.jsx)("pre",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,"data-language":u,children:(0,R.jsx)("code",{className:`language-${u}`,children:s})})}default:return null}}function An(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:c,childrenElements:p,selectedNodeId:f}=r,a=e.id===f;switch(e.type){case"list":{let u=(n.tag||t.tag)==="ol"||n.ordered===!0||t.ordered===!0?"ol":"ul",g=typeof n.listStyleType=="string"?n.listStyleType:typeof n.listStyle=="string"?n.listStyle:typeof t.listStyleType=="string"?t.listStyleType:typeof t.listStyle=="string"?t.listStyle:void 0,y=g==="custom-icon"||g==="none"?"none":g,m={...i,...y?{listStyleType:y}:{}};return(0,R.jsx)(u,{id:o,style:m,onClick:l,"data-kubuild-node":e.id,"data-list-style":g,children:p})}case"list-item":{let s=n.text!==void 0?String(n.text):t.text!==void 0?String(t.text):void 0,u=d==="editor"&&a&&!(0,F.isVariableBinding)(t.text)&&s!==void 0;return(0,R.jsxs)("li",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,children:[s!==void 0&&(u?(0,R.jsx)(X,{as:"span",value:s,isEditable:u,nodeId:e.id,onChange:(g,y)=>c?.(e.id,"text",g,y)}):s),p]})}default:return null}}function Nn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:c,childrenElements:p,selectedNodeId:f}=r,a=e.id===f;switch(e.type){case"table":{let s=typeof n.cellPadding=="number"?n.cellPadding:void 0,u=typeof n.cellSpacing=="number"?n.cellSpacing:void 0,g=typeof n.border=="number"?n.border:void 0,y=n.striped===!0||t.striped===!0,m=n.bordered===!0||t.bordered===!0,v=n.hover===!0||t.hover===!0,h=n.compact===!0||t.compact===!0;return(0,R.jsx)("table",{id:o,style:i,cellPadding:s,cellSpacing:u,border:g,onClick:l,"data-kubuild-node":e.id,"data-striped":y?"true":void 0,"data-bordered":m?"true":void 0,"data-hover":v?"true":void 0,"data-compact":h?"true":void 0,children:(0,R.jsx)("tbody",{children:p})})}case"table-row":return(0,R.jsx)("tr",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,children:p});case"table-cell":{let u=n.tag==="th"||t.tag==="th"||n.isHeader===!0||t.isHeader===!0||n.cellType==="header"||t.cellType==="header"||n.type==="th"||t.type==="th"?"th":"td",g=typeof n.colSpan=="number"?n.colSpan:typeof t.colSpan=="number"?t.colSpan:void 0,y=typeof n.rowSpan=="number"?n.rowSpan:typeof t.rowSpan=="number"?t.rowSpan:void 0,m=n.text!==void 0?String(n.text):t.text!==void 0?String(t.text):void 0,v=d==="editor"&&a&&!(0,F.isVariableBinding)(t.text)&&m!==void 0;return(0,R.jsxs)(u,{id:o,colSpan:g,rowSpan:y,style:i,onClick:l,"data-kubuild-node":e.id,children:[m!==void 0&&(v?(0,R.jsx)(X,{as:"span",value:m,isEditable:v,nodeId:e.id,onChange:(h,x)=>c?.(e.id,"text",h,x)}):m),p]})}default:return null}}function ze(r){let o=`<svg xmlns="http://www.w3.org/2000/svg" width="600" height="400" viewBox="0 0 600 400" fill="none">
|
|
121
|
+
<rect width="100%" height="100%" fill="#f8fafc"/>
|
|
122
|
+
<rect x="2" y="2" width="596" height="396" fill="none" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="6 6" rx="8"/>
|
|
123
|
+
<g fill="#94a3b8" transform="translate(268, 140)">
|
|
124
|
+
<rect width="64" height="64" rx="8" fill="#e2e8f0"/>
|
|
125
|
+
<circle cx="24" cy="24" r="6" fill="#94a3b8"/>
|
|
126
|
+
<path d="m56 48-12-16-10 12-8-8-14 16h44z" fill="#94a3b8"/>
|
|
127
|
+
</g>
|
|
128
|
+
<text x="300" y="235" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="500" text-anchor="middle" fill="#64748b">
|
|
129
|
+
${(r||"Image").replace(/[<>&"]/g,"")}
|
|
130
|
+
</text>
|
|
131
|
+
</svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(o)}`}function Dn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,context:d,mode:l,handleClick:c,definition:p}=r;switch(e.type){case"image":{let f=(0,F.isVariableBinding)(t.src)?t.src:void 0,a=n.src!==void 0?n.src:t.src!==void 0?t.src:t.asset,s;(0,F.isAssetReference)(a)?s=Me(d?.assetProvider,a.assetId)||a.fallbackUrl:typeof a=="string"&&a.trim().length>0&&(s=Me(d?.assetProvider,a)||a),(!s||!s.trim())&&(f&&typeof f.fallback=="string"&&f.fallback.trim().length>0?s=f.fallback:l==="editor"&&(s=f?ze(`{${f.key}}`):typeof p?.defaultProps?.src=="string"&&p.defaultProps.src.trim().length>0?p.defaultProps.src:ze("Image")));let u=typeof n.alt=="string"?n.alt:typeof t.alt=="string"?t.alt:"",g=typeof n.fit=="string"?n.fit:void 0,y=n.loading==="eager"?"eager":"lazy",m=typeof n.width=="number"?n.width:void 0,v=typeof n.height=="number"?n.height:void 0,h=s?(0,Z.sanitizeUrl)(s,""):void 0;!h&&l==="editor"&&(h=ze(f?`{${f.key}}`:"Image"));let x=i?.objectFit,b={...i,...g&&x===void 0?{objectFit:g}:{}};return(0,R.jsx)("img",{id:o,src:h,alt:u,role:u===""?"presentation":void 0,loading:y,width:m,height:v,style:b,onClick:c,"data-kubuild-node":e.id})}case"video":{let f=n.src??n.url??t.src??t.url,a=typeof f=="string"?f:void 0,s=typeof n.poster=="string"?n.poster:void 0,u=n.controls!==!1,g=n.autoplay===!0,y=n.loop===!0,m=n.muted===!0,v=n.playsInline!==!1,h=n.aspectRatio,x={position:"relative",width:i.width||"100%",...h?{aspectRatio:Vt(h)}:{},...i},b=a?Mt(a):null,w=a?Ot(a):null;if(b){let S=`https://www.youtube.com/embed/${b}?autoplay=${g?1:0}&loop=${y?1:0}&mute=${m?1:0}&controls=${u?1:0}`,T=(0,Z.sanitizeUrl)(S,"");return(0,R.jsx)("div",{id:o,"data-video-provider":"youtube",style:x,onClick:c,"data-kubuild-node":e.id,children:(0,R.jsx)("iframe",{src:T,title:"YouTube video player",style:{width:"100%",height:"100%",border:0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0})})}if(w){let S=`https://player.vimeo.com/video/${w}?autoplay=${g?1:0}&loop=${y?1:0}&muted=${m?1:0}`,T=(0,Z.sanitizeUrl)(S,"");return(0,R.jsx)("div",{id:o,"data-video-provider":"vimeo",style:x,onClick:c,"data-kubuild-node":e.id,children:(0,R.jsx)("iframe",{src:T,title:"Vimeo video player",style:{width:"100%",height:"100%",border:0},allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0})})}let k=a?(0,Z.sanitizeUrl)(a,""):void 0,C=s?(0,Z.sanitizeUrl)(s,""):void 0;return(0,R.jsx)("video",{id:o,src:k,poster:C,controls:u,autoPlay:g,loop:y,muted:m,playsInline:v,style:x,onClick:c,"data-kubuild-node":e.id})}case"icon":{let f=typeof n.name=="string"?n.name:"Square",a=typeof n.size=="number"?n.size:24,s=typeof n.color=="string"?n.color:"currentColor",u=typeof n.strokeWidth=="number"?n.strokeWidth:2,g=Ft(f),y=le.icons[g]||le.icons[f]||le.Package;return(0,R.jsx)("span",{id:o,"data-icon-name":f,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",...i},onClick:c,"data-kubuild-node":e.id,children:(0,R.jsx)(y,{size:a,color:s,strokeWidth:u})})}case"html-embed":{let f=typeof n.html=="string"?n.html:"",s=n.sanitize!==!1?(0,Z.sanitizeHtml)(f):f;return!s.trim()&&l==="editor"?(0,R.jsx)("div",{id:o,style:{...i,minHeight:"60px",border:"1px dashed #94a3b8",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f8fafc",color:"#64748b",fontSize:"0.875rem"},onClick:c,"data-kubuild-node":e.id,children:(0,R.jsx)("span",{children:"</> HTML Embed \u2014 Click to configure HTML code in Inspector Panel"})}):(0,R.jsx)($t,{id:o,style:i,html:s,onClick:c,dataKubuildNode:e.id})}default:return null}}function Fn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,context:d,mode:l,document:c,onDiagnostic:p,onActionDispatch:f,handleClick:a,onNodePropChange:s,childrenElements:u,selectedNodeId:g}=r,y=e.id===g;switch(e.type){case"button":{let m=n.label??n.text??n.content??t.label??t.text??t.content??"Button",v=n.activeLabel??t.activeLabel,h=String(r.isModalOpen&&v?v:m),x=typeof n.href=="string"?n.href:typeof t.href=="string"?t.href:void 0,b=typeof n.target=="string"?n.target:typeof t.target=="string"?t.target:void 0,w=n.buttonType??n.type??t.buttonType??t.type,k=typeof w=="string"&&["submit","reset","button"].includes(w)?w:"button",C=n.disabled===!0||t.disabled===!0,S=typeof n.ariaLabel=="string"?n.ariaLabel:void 0,T=l==="editor"&&y&&t.isEditable!==!1&&!(0,F.isVariableBinding)(t.label)&&!(0,F.isVariableBinding)(t.text),A=typeof n.rel=="string"?n.rel:typeof t.rel=="string"?t.rel:b==="_blank"?"noopener noreferrer":void 0,P={};if(t.action&&!C){let O=typeof t.action=="object"?t.action.type:t.action;if(P["data-kubuild-action"]=O,d?.actionRegistry){let V=Ze(d.actionRegistry,O);P["data-kubuild-action-resolved"]=V?"true":"false"}}if(x&&!C){let O=l==="editor"?void 0:(0,Z.sanitizeUrl)(x,"#");return(0,R.jsx)("a",{id:o,href:O,target:b,rel:A,tabIndex:0,style:i,onClick:a,"data-kubuild-node":e.id,"aria-label":S,...P,children:h})}return T?(0,R.jsx)(X,{as:"button",id:o,type:l==="editor"?"button":k,disabled:C,"aria-disabled":C?!0:void 0,"aria-label":S,tabIndex:C?-1:0,style:i,value:h,isEditable:T,nodeId:e.id,onClick:C?void 0:a,onChange:(O,V)=>s?.(e.id,"label",O,V),...P}):(0,R.jsx)(Dt,{id:o,buttonType:l==="editor"?"button":k,disabled:C,ariaLabel:S,style:i,onClick:C?void 0:a,actions:e.actions,node:e,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,actionAttrs:P,children:h})}case"form":{let m=typeof n.action=="string"?n.action:void 0,v=typeof n.method=="string"?n.method:"POST",h=typeof n.target=="string"?n.target:void 0,x=typeof n.autoComplete=="string"?n.autoComplete:void 0,b=typeof n.name=="string"?n.name:void 0,w=e.formConfig,k={formId:w?.formId||t.formId||b||e.id,resetOnSubmit:n.resetOnSubmit===!0||(w?.resetOnSubmit??!1),scrollToFirstError:n.scrollToFirstError!==!1&&(w?.scrollToFirstError??!0),validateOn:n.validateOn||w?.validateOn||"blur",initialValues:n.initialValues||w?.initialValues};return(0,R.jsx)(Rt,{formId:k.formId,formConfig:k,initialValues:k.initialValues,actions:e.actions,nodeId:e.id,document:c,onDiagnostic:p,children:(0,R.jsx)(Tt,{id:o,name:b,action:m&&l!=="editor"?(0,Z.sanitizeUrl)(m,""):void 0,method:v,target:h,autoComplete:x,style:i,onClick:a,mode:l,dataKubuildNode:e.id,children:u})})}case"input":{let m=typeof n.name=="string"?n.name:void 0,v=typeof n.type=="string"?n.type:"text",h=typeof n.placeholder=="string"?n.placeholder:void 0,x=n.defaultValue!==void 0?n.defaultValue:void 0,b=n.required===!0,w=n.disabled===!0,k=n.readOnly===!0,C=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,T=n.transform||t.transform;return(0,R.jsx)(Et,{id:o,name:m,type:v,placeholder:h,defaultValue:x,required:b,disabled:w,readOnly:k,rules:C,validateOn:S,transform:T,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"textarea":{let m=typeof n.name=="string"?n.name:void 0,v=typeof n.placeholder=="string"?n.placeholder:void 0,h=n.defaultValue!==void 0?n.defaultValue:void 0,x=typeof n.rows=="number"?n.rows:4,b=n.required===!0,w=n.disabled===!0,k=n.readOnly===!0,C=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,T=n.transform||t.transform;return(0,R.jsx)(It,{id:o,name:m,placeholder:v,defaultValue:h,rows:x,required:b,disabled:w,readOnly:k,rules:C,validateOn:S,transform:T,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"select":{let m=typeof n.name=="string"?n.name:void 0,v=typeof n.placeholder=="string"?n.placeholder:void 0,h=n.defaultValue!==void 0?n.defaultValue:void 0,x=n.required===!0,b=n.disabled===!0,w=e.formConfig?.rules||n.rules||t.rules||[],k=n.validateOn||t.validateOn,C=[],S=n.options??t.options;if(Array.isArray(S))C=S.map(T=>{if(typeof T=="object"&&T!==null){let A=T;return{label:String(A.label??A.value??""),value:String(A.value??A.label??"")}}return{label:String(T),value:String(T)}});else if(typeof S=="string")try{let T=JSON.parse(S);Array.isArray(T)&&(C=T.map(A=>{if(typeof A=="object"&&A!==null){let P=A;return{label:String(P.label??P.value??""),value:String(P.value??P.label??"")}}return{label:String(A),value:String(A)}}))}catch{}return(0,R.jsx)(Pt,{id:o,name:m,placeholder:v,defaultValue:h,required:x,disabled:b,rules:w,validateOn:k,optionsList:C,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"checkbox":{let m=typeof n.name=="string"?n.name:void 0,v=String(n.label??"Checkbox"),h=n.value!==void 0?String(n.value):"yes",x=n.defaultChecked===!0,b=n.required===!0,w=n.disabled===!0,k=e.formConfig?.rules||n.rules||t.rules||[],C=n.validateOn||t.validateOn,S=l==="editor"&&y&&!(0,F.isVariableBinding)(t.label);return(0,R.jsx)(At,{id:o,name:m,label:v,value:h,defaultChecked:x,required:b,disabled:w,rules:k,validateOn:C,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:s})}case"radio":{let m=typeof n.name=="string"?n.name:void 0,v=String(n.label??"Radio"),h=n.value!==void 0?String(n.value):"option",x=n.defaultChecked===!0,b=n.required===!0,w=n.disabled===!0,k=n.rules||t.rules||[],C=n.validateOn||t.validateOn,S=l==="editor"&&y&&!(0,F.isVariableBinding)(t.label);return(0,R.jsx)(Nt,{id:o,name:m,label:v,value:h,defaultChecked:x,required:b,disabled:w,rules:k,validateOn:C,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:s})}default:return null}}function Mn(r){let{node:e,domId:o,styles:i,props:n,context:t,mode:d,handleClick:l,onDiagnostic:c,renderChildNode:p}=r;if(e.type!=="collection")return null;let f=typeof n.sourceKey=="string"?n.sourceKey:void 0,a=typeof n.itemAlias=="string"&&n.itemAlias.length>0?n.itemAlias:"item",s=`${a}Index`,u=f?(0,Z.resolveBinding)({key:f},t).value:void 0;if(!Array.isArray(u)){let y={code:"INVALID_COLLECTION_SOURCE",nodeId:e.id,propName:"sourceKey",message:`Collection node "${e.id}" expected an array at variable path "${f??"(missing sourceKey)"}" but found ${u===void 0?"nothing":typeof u}.`};return c?.(y),t?.onDiagnostic?.(y),d==="editor"?(0,R.jsxs)("div",{id:o,"data-kubuild-node":e.id,"data-kubuild-collection-invalid":e.type,style:{...i,border:"2px dashed #f59e0b",backgroundColor:"#fffbeb",padding:"12px",color:"#b45309",fontSize:"0.875rem",borderRadius:"4px"},onClick:l,children:[(0,R.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[(0,R.jsx)(le.AlertTriangle,{size:16}),(0,R.jsx)("strong",{children:"Collection: expected an array"})]}),(0,R.jsxs)("div",{children:["Source path ",(0,R.jsx)("code",{children:f??"(none)"})," did not resolve to an array. Found"," ",(0,R.jsx)("code",{children:u===void 0?"nothing":typeof u}),"."]})]}):(0,R.jsx)("div",{id:o,"data-kubuild-node":e.id,style:{display:"contents"},"data-kubuild-empty-collection":"invalid-source"})}let g=e.children||[];return g.length===0||u.length===0?(0,R.jsx)("div",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,"data-kubuild-collection-empty":u.length===0?"true":void 0,children:u.length===0&&d==="editor"&&(0,R.jsxs)("div",{style:{padding:"12px",border:"1px dashed #cbd5e1",borderRadius:"4px",color:"#94a3b8",fontSize:"0.875rem",textAlign:"center"},children:["Empty Collection (",(0,R.jsx)("code",{children:f})," has 0 items)"]})}):(0,R.jsx)("div",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,children:u.map((y,m)=>{let v={...t,variables:{...t.variables,[a]:y,[s]:m}},h=`__iter_${m}`;return(0,R.jsx)(Tn.default.Fragment,{children:g.map(x=>p(x,h,v))},`collection-item-${m}`)})})}function On(r){let{node:e,domId:o,styles:i,handleClick:n,mode:t,childrenElements:d}=r;return t==="editor"?(0,R.jsxs)("div",{id:o,style:{...i,border:"2px dashed #e2e8f0",padding:"16px",backgroundColor:"#f8fafc"},onClick:n,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:[(0,R.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",color:"#64748b"},children:[(0,R.jsx)(le.Puzzle,{size:16}),(0,R.jsxs)("span",{children:["Unknown Component: ",e.type]}),(0,R.jsxs)("span",{style:{fontSize:"12px",color:"#94a3b8"},children:["(",e.id,")"]})]}),d]}):(0,R.jsx)("div",{id:o,style:i,onClick:n,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:d})}function _t(r){let e=En(r);if(e)return e;let o=In(r);if(o)return o;let i=Pn(r);if(i)return i;let n=An(r);if(n)return n;let t=Nn(r);if(t)return t;let d=Dn(r);if(d)return d;let l=Fn(r);if(l)return l;let c=Mn(r);if(c)return c;let p=Bt(r);return p||On(r)}var H=require("react/jsx-runtime");function ho(r,e){if(!r)return!1;try{let o=me.default,i=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(!!(i&&(i.H||i.ReactCurrentDispatcher?.current))){let{isOpen:t}=st(r,e);return t}}catch{}return e.isModalOpen(r)}function ve({node:r,document:e,registry:o,context:i,viewport:n="desktop",mode:t="runtime",onNodeClick:d,onDiagnostic:l,onActionDispatch:c,onNodePropChange:p,selectedNodeId:f,instanceSuffix:a=""}){let s=i||ce,u=tt(r.styles,n),g=r.props||{},y=o.get(r.type),m=a?`${r.id}${a}`:r.id,{props:v,diagnostics:h}=ln(r,y,s);h.forEach(q=>{l?.(q),s?.onDiagnostic?.(q)}),St(r,{document:e,context:s,onDiagnostic:l,onActionDispatch:c,mode:t});let x=async q=>{q.stopPropagation(),d&&d(r.id,q),r.actions&&r.actions.length>0&&!g.disabled&&await _({node:r,trigger:"click",document:e,context:s,onDiagnostic:l,onActionDispatch:c}),g.action&&!g.disabled&&(Qe({action:g.action,nodeId:r.id,document:e,context:s,onDiagnostic:l}),c&&(0,Vn.isActionBinding)(g.action)&&c(g.action.type,Je(s,g.action.payload),r.id))},b=r.children?.map(q=>(0,H.jsx)(ve,{node:q,document:e,registry:o,context:s,viewport:n,mode:t,onNodeClick:d,onDiagnostic:l,onActionDispatch:c,onNodePropChange:p,selectedNodeId:f,instanceSuffix:a},`${q.id}${a}`)),w=(q,ke="",Ne=s)=>(0,H.jsx)(ve,{node:q,document:e,registry:o,context:Ne,viewport:n,mode:t,onNodeClick:d,onDiagnostic:l,onActionDispatch:c,onNodePropChange:p,selectedNodeId:f,instanceSuffix:`${a}${ke}`},`${q.id}${a}${ke}`),k=g.modalId||g.modalNodeId||g.targetModalId,C=s?.modalManager||Q,S=k?C.hasState(k):!1,T=ho(k,C),A=S?T:!!g.defaultOpen,P={...u},O=r.type==="modal"||r.type==="drawer"||r.type==="collapsible";(g.modalId||g.modalNodeId)&&r.type!=="button"&&r.type!=="link"&&!O&&!A&&(P.display="none");let K;try{K=_t({node:r,document:e,registry:o,context:s,viewport:n,mode:t,styles:P,props:g,resolvedProps:v,definition:y,domId:m,childrenElements:b,handleClick:x,onNodeClick:d,onDiagnostic:l,onActionDispatch:c,onNodePropChange:p,selectedNodeId:f,instanceSuffix:a,isModalOpen:A,renderChildNode:w})}catch(q){t==="editor"?K=(0,H.jsxs)("div",{"data-kubuild-node":r.id,"data-kubuild-error":r.type,style:{padding:"12px 16px",margin:"4px 0",backgroundColor:"#fef2f2",border:"1px solid #ef4444",borderRadius:"6px",color:"#b91c1c",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"13px",lineHeight:"1.4"},children:[(0,H.jsxs)("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[(0,H.jsx)(_n.AlertTriangle,{size:14,"aria-hidden":"true"}),(0,H.jsxs)("span",{children:["Component Render Error: <",r.type,">"]})]}),(0,H.jsxs)("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",(0,H.jsx)("code",{children:r.id})," \u2014 ",q instanceof Error?q.message:String(q)]})]}):K=(0,H.jsx)("div",{"data-kubuild-node":r.id,"data-kubuild-error":r.type,style:{display:"none"},"aria-hidden":"true"})}return(0,H.jsx)(Te,{nodeId:r.id,componentType:r.type,mode:t,onDiagnostic:l,children:K})}var vo=({document:r,registry:e=(0,Bn.createDefaultComponentRegistry)(),context:o,viewport:i="desktop",mode:n="runtime",className:t,showToastContainer:d=!0,onNodeClick:l,onDiagnostic:c,onActionDispatch:p,onNodePropChange:f,selectedNodeId:a})=>{if(!r||!r.document)return(0,H.jsx)("div",{className:t,children:"Empty Document"});let s=me.default.useMemo(()=>nt(r),[r]),u=me.default.useMemo(()=>Se(r),[r]),g=me.default.useMemo(()=>r?.tracking?JSON.stringify(r.tracking):null,[r?.tracking]);return me.default.useEffect(()=>{if(n==="runtime"&&r?.tracking&&g)return ht(r.tracking)},[n,g]),(0,H.jsx)(Ke,{value:o,children:(0,H.jsxs)("div",{className:`kubuild-canvas-root ${t||""}`,children:[s?(0,H.jsx)("style",{"data-kubuild-state-styles":!0,children:s}):null,u?(0,H.jsx)("style",{"data-kubuild-animation-styles":!0,children:u}):null,(0,H.jsx)(ve,{node:r.document,document:r,registry:e,context:o,viewport:i,mode:n,onNodeClick:l,onDiagnostic:c,onActionDispatch:p,onNodePropChange:f,selectedNodeId:a}),d&&(0,H.jsx)(kt,{})]})})},Ae=me.default.memo(vo);var Ht=be(require("react"),1),Hn=be(require("react-dom"),1),Ln=require("@kubuild/components");var te=require("react/jsx-runtime");function Lt(r){let e=r.document?.document;if(e)return e.children?.[0]??void 0}function qn(r,e){return r.filter(o=>o.artboardType==="component"&&!!o.triggerId&&!!e[o.triggerId]&&!!Lt(o))}var Ue=({artboards:r,registry:e,context:o=ce,viewport:i="desktop",mode:n="runtime",modalManager:t,container:d,onDiagnostic:l,onActionDispatch:c})=>{let p=t||Q,{modals:f}=dt(p),a=Ht.default.useMemo(()=>e||(0,Ln.createDefaultComponentRegistry)(),[e]),s=Ht.default.useMemo(()=>(r??o.componentArtboards??[]).filter(m=>m.artboardType==="component"),[r,o.componentArtboards]);if(n==="editor")return null;let u=qn(s,f);if(u.length===0)return null;let g=d!==void 0?d:typeof globalThis.document<"u"?globalThis.document.body:null;return g?(0,te.jsx)(te.Fragment,{children:u.map(y=>{let m=Lt(y);return m?Hn.default.createPortal((0,te.jsx)("div",{"data-kubuild-artboard-portal":y.id,style:{pointerEvents:"auto"},children:(0,te.jsx)(ve,{node:m,document:y.document,registry:a,context:o,viewport:i,mode:"runtime",onDiagnostic:l,onActionDispatch:c})},y.id),g,y.id):null})}):null},xo=({componentArtboards:r,modalManager:e,portalContainer:o,...i})=>(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)(Ae,{...i}),(0,te.jsx)(Ue,{artboards:r,registry:i.registry,context:i.context,viewport:i.viewport,mode:i.mode,modalManager:e,container:o,onDiagnostic:i.onDiagnostic,onActionDispatch:i.onActionDispatch})]});var xe=require("react");var j=require("react/jsx-runtime"),qt=Object.freeze({desktop:{width:"100%",maxWidth:"1280px",minHeight:"600px",label:"Desktop (1280px)",isFluid:!0},tablet:{width:"768px",height:"1024px",minHeight:"600px",label:"Tablet (768 \xD7 1024)",isFluid:!1},mobile:{width:"375px",height:"667px",minHeight:"500px",label:"Mobile (375 \xD7 667)",isFluid:!1}}),jn=Object.freeze({mobile:480,tablet:768,desktop:1024});function ko(r,e){let o={...jn,...e};return r<=o.mobile?"mobile":r<=o.tablet?"tablet":"desktop"}function jt(r,e){let o=qt[r]||qt.desktop,i=e?.[r];return{...o,...i}}function zn(r,e,o){let i=jt(r,e),n=o??i.scale??1,t=l=>typeof l=="number"?`${l}px`:l,d={width:t(i.width),maxWidth:t(i.maxWidth),minWidth:t(i.minWidth),height:t(i.height),minHeight:t(i.minHeight),maxHeight:t(i.maxHeight),aspectRatio:i.aspectRatio,transition:"width 0.2s ease, max-width 0.2s ease, height 0.2s ease"};return n!==1&&(d.transform=`scale(${n})`,d.transformOrigin="top center"),d}var Un=({document:r,viewport:e="desktop",onViewportChange:o,viewportConfigs:i,breakpoints:n,registry:t,context:d,mode:l="runtime",showChrome:c=!1,chromeTitle:p,editorOverlay:f,scale:a,className:s,style:u,canvasClassName:g,canvasStyle:y,onNodeClick:m,onDiagnostic:v,onActionDispatch:h,componentArtboards:x})=>{let[b,w]=(0,xe.useState)(null),k=x??d?.componentArtboards,C=(0,xe.useMemo)(()=>jt(e,i),[e,i]),S=(0,xe.useMemo)(()=>zn(e,i,a),[e,i,a]),T=(0,xe.useMemo)(()=>({...S,...y,position:"relative",boxSizing:"border-box"}),[S,y]);return(0,j.jsxs)("div",{"data-kubuild-preview-container":!0,"data-viewport":e,className:`kubuild-preview-viewport-adapter ${s||""}`,style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start",width:"100%",height:"100%",boxSizing:"border-box",...u},children:[c&&(0,j.jsxs)("div",{"data-kubuild-preview-chrome":!0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",maxWidth:S.maxWidth||S.width,padding:"8px 12px",marginBottom:"8px",backgroundColor:"#1e293b",color:"#f8fafc",borderRadius:"8px",fontSize:"12px",fontFamily:"system-ui, -apple-system, sans-serif",boxSizing:"border-box"},children:[(0,j.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,j.jsx)("span",{style:{fontWeight:600},children:p||r.metadata?.title||"Preview"}),(0,j.jsx)("span",{"data-testid":"viewport-badge",style:{fontSize:"10px",padding:"2px 6px",borderRadius:"4px",backgroundColor:"#334155",color:"#94a3b8",textTransform:"uppercase",fontWeight:700},children:e}),(0,j.jsx)("span",{style:{fontSize:"11px",color:"#64748b"},children:C.label||`${C.width} \xD7 ${C.height||"auto"}`})]}),o&&(0,j.jsx)("div",{"data-testid":"viewport-switcher",style:{display:"flex",gap:"4px",backgroundColor:"#0f172a",padding:"2px",borderRadius:"6px"},children:["desktop","tablet","mobile"].map(A=>{let P=e===A;return(0,j.jsx)("button",{type:"button","data-testid":`viewport-btn-${A}`,onClick:()=>o(A),style:{padding:"4px 10px",fontSize:"11px",fontWeight:500,borderRadius:"4px",border:"none",cursor:"pointer",textTransform:"capitalize",backgroundColor:P?"#3b82f6":"transparent",color:P?"#ffffff":"#94a3b8",transition:"all 0.15s ease"},children:A},A)})})]}),(0,j.jsxs)("div",{"data-kubuild-preview-canvas":!0,"data-viewport":e,className:`kubuild-preview-canvas ${g||""}`,style:T,children:[(0,j.jsx)(Ae,{document:r,registry:t,context:d,viewport:e,mode:l,onNodeClick:m,onDiagnostic:v,onActionDispatch:h}),k&&k.length>0&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("div",{ref:w,"data-kubuild-preview-overlay-host":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,transform:"translate3d(0, 0, 0)",pointerEvents:"none"}}),b&&(0,j.jsx)(Ue,{artboards:k,registry:t,context:d,viewport:e,mode:l,container:b,onDiagnostic:v,onActionDispatch:h})]}),f&&(0,j.jsx)("div",{"data-kubuild-preview-overlay":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10},children:f})]})]})},Ro=Un;var Wn=require("@kubuild/schema");function L(r){return r==null?"":String(r).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function I(r){return L(r)}function wo(r){if(!r||typeof r!="string")return null;let e=r.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function Co(r){if(!r||typeof r!="string")return null;let e=r.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function G(r,e,o){let i=" ".repeat(e*(o.indentSize??2)),n=" ".repeat((e+1)*(o.indentSize??2)),t=r.props||{},d=r.children||[],c=o.includeNodeClasses!==!1?`kb-node-${r.id}`:"",p=(...a)=>a.filter(Boolean).join(" "),f=t.id?` id="${I(t.id)}"`:"";switch(r.type){case"page":{let a=o.rootTag||"main",s=p("kb-page",c),u=d.map(g=>G(g,e+1,o)).join(`
|
|
132
|
+
`);return u?`${i}<${a} class="${s}"${f}>
|
|
133
|
+
${u}
|
|
134
|
+
${i}</${a}>`:`${i}<${a} class="${s}"${f}></${a}>`}case"section":{let a=t.ariaLabel?` aria-label="${I(t.ariaLabel)}"`:"",s=p("kb-section",c),u=d.map(g=>G(g,e+1,o)).join(`
|
|
135
|
+
`);return u?`${i}<section class="${s}"${f}${a}>
|
|
136
|
+
${u}
|
|
137
|
+
${i}</section>`:`${i}<section class="${s}"${f}${a}></section>`}case"container":{let a=p("kb-container",c),s=d.map(u=>G(u,e+1,o)).join(`
|
|
138
|
+
`);return s?`${i}<div class="${a}"${f}>
|
|
139
|
+
${s}
|
|
140
|
+
${i}</div>`:`${i}<div class="${a}"${f}></div>`}case"columns":{let a=p("kb-columns",c),s=d.map(u=>G(u,e+1,o)).join(`
|
|
141
|
+
`);return s?`${i}<div class="${a}"${f}>
|
|
142
|
+
${s}
|
|
143
|
+
${i}</div>`:`${i}<div class="${a}"${f}></div>`}case"heading":{let a="h2";typeof t.level=="string"&&/^h[1-6]$/i.test(t.level)?a=t.level.toLowerCase():typeof t.level=="number"&&t.level>=1&&t.level<=6?a=`h${t.level}`:typeof t.tag=="string"&&/^h[1-6]$/i.test(t.tag)&&(a=t.tag.toLowerCase());let s=t.text??t.value??t.content??"Heading",u=p("kb-heading",c);return`${i}<${a} class="${u}"${f}>${L(s)}</${a}>`}case"paragraph":{let a=t.text??t.value??t.content??"",s=p("kb-paragraph",c);return`${i}<p class="${s}"${f}>${L(a)}</p>`}case"text":{let a=t.as||"p",s=t.text??t.value??t.content??"",u=p("kb-text",c);return`${i}<${a} class="${u}"${f}>${L(s)}</${a}>`}case"link":{let a=t.href?` href="${I(t.href)}"`:' href="#"',s=t.target?` target="${I(t.target)}"`:"",u=t.rel?` rel="${I(t.rel)}"`:s.includes("_blank")?' rel="noopener noreferrer"':"",g=t.text??t.label??t.value,y=p("kb-link",c);if(d.length>0){let m=d.map(v=>G(v,e+1,o)).join(`
|
|
144
|
+
`);return`${i}<a class="${y}"${f}${a}${s}${u}>
|
|
145
|
+
${m}
|
|
146
|
+
${i}</a>`}return`${i}<a class="${y}"${f}${a}${s}${u}>${L(g??"Link")}</a>`}case"blockquote":{let a=t.cite?` cite="${I(t.cite)}"`:"",s=t.quote??t.text??t.value,u=t.author??t.citeAuthor,g=p("kb-blockquote",c);if(s||u){let y=s?`${n}<p>${L(s)}</p>`:"",m=u?`${n}<cite>${L(u)}</cite>`:"",v=[y,m].filter(Boolean).join(`
|
|
147
|
+
`);return`${i}<blockquote class="${g}"${f}${a}>
|
|
148
|
+
${v}
|
|
149
|
+
${i}</blockquote>`}if(d.length>0){let y=d.map(m=>G(m,e+1,o)).join(`
|
|
150
|
+
`);return`${i}<blockquote class="${g}"${f}${a}>
|
|
140
151
|
${y}
|
|
141
|
-
${
|
|
142
|
-
${n}<iframe src="https://www.youtube-nocookie.com/embed/${
|
|
143
|
-
${
|
|
144
|
-
${n}<iframe src="https://player.vimeo.com/video/${
|
|
145
|
-
${
|
|
146
|
-
${n}${
|
|
147
|
-
${
|
|
148
|
-
`);return g?`${
|
|
152
|
+
${i}</blockquote>`}return`${i}<blockquote class="${g}"${f}${a}></blockquote>`}case"badge":{let a=t.text??t.label??t.value??"Badge",s=p("kb-badge",c);return`${i}<span class="${s}"${f}>${L(a)}</span>`}case"code-block":{let a=t.code??t.text??t.value??"",s=t.language||t.lang,u=s?` class="language-${I(s)}"`:"",g=p("kb-code-block",c);return`${i}<pre class="${g}"${f}><code${u}>${L(a)}</code></pre>`}case"divider":{let a=p("kb-divider",c),s=t.text??t.label;return s?`${i}<div class="${a}"${f} role="separator"><span>${L(s)}</span></div>`:`${i}<hr class="${a}"${f} />`}case"spacer":{let a=p("kb-spacer",c);return`${i}<div class="${a}"${f} aria-hidden="true"></div>`}case"image":{let a=t.src?` src="${I(t.src)}"`:' src=""',s=t.alt?` alt="${I(t.alt)}"`:' alt=""',u=t.loading?` loading="${I(t.loading)}"`:' loading="lazy"',g=p("kb-image",c);return`${i}<img class="${g}"${f}${a}${s}${u} />`}case"video":{let a=t.src||"",s=wo(a),u=Co(a),g=p("kb-video",c);if(s)return`${i}<div class="kb-video-wrapper ${c}"${f}>
|
|
153
|
+
${n}<iframe src="https://www.youtube-nocookie.com/embed/${I(s)}" title="${I(t.title||"Video player")}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
|
154
|
+
${i}</div>`;if(u)return`${i}<div class="kb-video-wrapper ${c}"${f}>
|
|
155
|
+
${n}<iframe src="https://player.vimeo.com/video/${I(u)}" title="${I(t.title||"Video player")}" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
|
|
156
|
+
${i}</div>`;let y=t.poster?` poster="${I(t.poster)}"`:"",m=t.controls!==!1?" controls":"",v=t.autoplay?" autoplay":"",h=t.loop?" loop":"",x=t.muted?" muted":"",b=a?` src="${I(a)}"`:"";return`${i}<video class="${g}"${f}${b}${y}${m}${v}${h}${x}></video>`}case"icon":{let a=t.name||t.icon||"star",s=t.ariaLabel?` aria-label="${I(t.ariaLabel)}"`:' aria-hidden="true"',u=p("kb-icon",c);return`${i}<span class="${u}"${f}${s} data-icon="${I(a)}"></span>`}case"html-embed":{let a=t.html??t.content??"",s=p("kb-html-embed",c);return a?`${i}<div class="${s}"${f}>
|
|
157
|
+
${n}${a}
|
|
158
|
+
${i}</div>`:`${i}<div class="${s}"${f}></div>`}case"button":{let a=t.label??t.text??t.value??"Button",s=t.type?` type="${I(t.type)}"`:' type="button"',u=t.disabled?" disabled":"",g=p("kb-button",c);if(t.href){let y=` href="${I(t.href)}"`,m=t.target?` target="${I(t.target)}"`:"";return`${i}<a class="${g}"${f}${y}${m}>${L(a)}</a>`}return`${i}<button class="${g}"${f}${s}${u}>${L(a)}</button>`}case"form":{let a=t.action?` action="${I(t.action)}"`:"",s=t.method?` method="${I(t.method)}"`:' method="POST"',u=p("kb-form",c),g=d.map(y=>G(y,e+1,o)).join(`
|
|
159
|
+
`);return g?`${i}<form class="${u}"${f}${a}${s}>
|
|
149
160
|
${g}
|
|
150
|
-
${
|
|
151
|
-
`);return
|
|
152
|
-
${
|
|
153
|
-
${
|
|
154
|
-
`);return
|
|
155
|
-
${
|
|
156
|
-
${
|
|
157
|
-
`);return`${
|
|
158
|
-
${
|
|
159
|
-
${
|
|
160
|
-
`);return
|
|
161
|
-
${
|
|
162
|
-
${
|
|
163
|
-
`);return
|
|
164
|
-
${
|
|
165
|
-
${
|
|
166
|
-
`);return`${
|
|
167
|
-
${
|
|
168
|
-
${
|
|
169
|
-
`);return
|
|
170
|
-
${
|
|
171
|
-
${
|
|
172
|
-
`);return
|
|
173
|
-
${
|
|
174
|
-
${
|
|
175
|
-
`);return`${o}${
|
|
161
|
+
${i}</form>`:`${i}<form class="${u}"${f}${a}${s}></form>`}case"input":{let a=t.type?` type="${I(t.type)}"`:' type="text"',s=t.name?` name="${I(t.name)}"`:"",u=t.placeholder?` placeholder="${I(t.placeholder)}"`:"",g=t.value!==void 0?` value="${I(t.value)}"`:"",y=t.required?" required":"",m=t.disabled?" disabled":"",v=p("kb-input",c);return`${i}<input class="${v}"${f}${a}${s}${u}${g}${y}${m} />`}case"textarea":{let a=t.name?` name="${I(t.name)}"`:"",s=t.placeholder?` placeholder="${I(t.placeholder)}"`:"",u=t.rows?` rows="${I(t.rows)}"`:' rows="4"',g=t.value??t.defaultValue??"",y=t.required?" required":"",m=t.disabled?" disabled":"",v=p("kb-textarea",c);return`${i}<textarea class="${v}"${f}${a}${s}${u}${y}${m}>${L(g)}</textarea>`}case"select":{let a=t.name?` name="${I(t.name)}"`:"",s=t.required?" required":"",u=t.disabled?" disabled":"",g=p("kb-select",c),y=Array.isArray(t.options)?t.options:[],m=" ".repeat((e+1)*(o.indentSize??2)),v=y.map(h=>{let x=typeof h=="object"?h.value:h,b=typeof h=="object"?h.label:h,w=t.value===x||t.defaultValue===x?" selected":"";return`${m}<option value="${I(x)}"${w}>${L(b)}</option>`}).join(`
|
|
162
|
+
`);return v?`${i}<select class="${g}"${f}${a}${s}${u}>
|
|
163
|
+
${v}
|
|
164
|
+
${i}</select>`:`${i}<select class="${g}"${f}${a}${s}${u}></select>`}case"checkbox":{let a=t.name?` name="${I(t.name)}"`:"",s=t.checked||t.defaultChecked?" checked":"",u=t.label??t.text??"",g=p("kb-checkbox-label",c);return`${i}<label class="${g}"${f}><input type="checkbox"${a}${s} /><span>${L(u)}</span></label>`}case"radio":{let a=t.name?` name="${I(t.name)}"`:"",s=t.value?` value="${I(t.value)}"`:"",u=t.checked||t.defaultChecked?" checked":"",g=t.label??t.text??"",y=p("kb-radio-label",c);return`${i}<label class="${y}"${f}><input type="radio"${a}${s}${u} /><span>${L(g)}</span></label>`}case"list":{let a=t.tag==="ol"||t.type==="ol"||t.ordered?"ol":"ul",s=p("kb-list",c),u=d.map(g=>G(g,e+1,o)).join(`
|
|
165
|
+
`);return u?`${i}<${a} class="${s}"${f}>
|
|
166
|
+
${u}
|
|
167
|
+
${i}</${a}>`:`${i}<${a} class="${s}"${f}></${a}>`}case"list-item":{let a=t.text??t.value,s=p("kb-list-item",c);if(d.length>0){let u=d.map(g=>G(g,e+1,o)).join(`
|
|
168
|
+
`);return`${i}<li class="${s}"${f}>
|
|
169
|
+
${u}
|
|
170
|
+
${i}</li>`}return`${i}<li class="${s}"${f}>${L(a??"List item")}</li>`}case"table":{let a=p("kb-table",c),s=d.map(u=>G(u,e+1,o)).join(`
|
|
171
|
+
`);return s?`${i}<table class="${a}"${f}>
|
|
172
|
+
${s}
|
|
173
|
+
${i}</table>`:`${i}<table class="${a}"${f}></table>`}case"table-row":{let a=p("kb-table-row",c),s=d.map(u=>G(u,e+1,o)).join(`
|
|
174
|
+
`);return s?`${i}<tr class="${a}"${f}>
|
|
175
|
+
${s}
|
|
176
|
+
${i}</tr>`:`${i}<tr class="${a}"${f}></tr>`}case"table-cell":{let s=t.isHeader||t.type==="header"||t.tag==="th"?"th":"td",u=t.colSpan&&Number(t.colSpan)>1?` colspan="${I(t.colSpan)}"`:"",g=t.rowSpan&&Number(t.rowSpan)>1?` rowspan="${I(t.rowSpan)}"`:"",y=t.text??t.value??"",m=p("kb-table-cell",c);if(d.length>0){let v=d.map(h=>G(h,e+1,o)).join(`
|
|
177
|
+
`);return`${i}<${s} class="${m}"${f}${u}${g}>
|
|
178
|
+
${v}
|
|
179
|
+
${i}</${s}>`}return`${i}<${s} class="${m}"${f}${u}${g}>${L(y)}</${s}>`}case"collection":{let a=p("kb-collection",c),s=d.map(u=>G(u,e+1,o)).join(`
|
|
180
|
+
`);return s?`${i}<div class="${a}"${f}>
|
|
181
|
+
${s}
|
|
182
|
+
${i}</div>`:`${i}<div class="${a}"${f}></div>`}default:{let a=p(`kb-${r.type}`,c),s=d.map(u=>G(u,e+1,o)).join(`
|
|
183
|
+
`);return s?`${i}<div class="${a}"${f}>
|
|
184
|
+
${s}
|
|
185
|
+
${i}</div>`:`${i}<div class="${a}"${f}></div>`}}}function Kn(r,e={}){let o="document"in r?r.document:r;return o?G(o,0,e):""}function We(r,e,o=""){if(!e.trim())return"";let i=e.split(";").map(t=>t.trim()).filter(Boolean);if(i.length===0)return"";let n=i.map(t=>`${o} ${t};`).join(`
|
|
186
|
+
`);return`${o}${r} {
|
|
176
187
|
${n}
|
|
177
|
-
${o}}`}function
|
|
188
|
+
${o}}`}function Yn(r,e={}){let o="document"in r?r.document:r;if(!o)return"";let i=e.classPrefix||"kb-node-",n=[],t=[],d=[],l=[],c=s=>{let u=`.${i}${s.id}`;if(s.styles){let g={...s.styles.base||{},...s.styles.desktop||{}},y=fe(g);if(y&&n.push(We(u,y)),s.styles.tablet){let m=fe(s.styles.tablet);m&&t.push(We(u,m," "))}if(s.styles.mobile){let m=fe(s.styles.mobile);m&&d.push(We(u,m," "))}if(s.styles.states&&typeof s.styles.states=="object")for(let[m,v]of Object.entries(s.styles.states)){if(!v)continue;let h=/^::?[a-zA-Z-]+$/.test(m)?m:null;if(!h)continue;let x=fe(v);x&&l.push(We(`${u}${h}`,x))}}s.children?.forEach(c)};c(o);let p=[];e.includeReset!==!1&&p.push(`/* ==========================================================================
|
|
178
189
|
Baseline Reset & Typography Standards
|
|
179
190
|
========================================================================== */
|
|
180
|
-
${
|
|
191
|
+
${ot}`),n.length>0&&p.push(`/* ==========================================================================
|
|
181
192
|
Component Styles
|
|
182
193
|
========================================================================== */
|
|
183
194
|
${n.join(`
|
|
184
195
|
|
|
185
|
-
`)}`),l.length>0&&
|
|
196
|
+
`)}`),l.length>0&&p.push(`/* ==========================================================================
|
|
186
197
|
Interactive & Hover States
|
|
187
198
|
========================================================================== */
|
|
188
199
|
${l.join(`
|
|
189
200
|
|
|
190
|
-
`)}`),t.length>0&&
|
|
201
|
+
`)}`),t.length>0&&p.push(`/* ==========================================================================
|
|
191
202
|
Tablet Breakpoint (max-width: 1024px)
|
|
192
203
|
========================================================================== */
|
|
193
204
|
@media (max-width: 1024px) {
|
|
194
205
|
${t.join(`
|
|
195
206
|
|
|
196
207
|
`)}
|
|
197
|
-
}`),d.length>0&&
|
|
208
|
+
}`),d.length>0&&p.push(`/* ==========================================================================
|
|
198
209
|
Mobile Breakpoint (max-width: 640px)
|
|
199
210
|
========================================================================== */
|
|
200
211
|
@media (max-width: 640px) {
|
|
201
212
|
${d.join(`
|
|
202
213
|
|
|
203
214
|
`)}
|
|
204
|
-
}`);let f="document"in
|
|
215
|
+
}`);let f="document"in r?r:{schema:"stora.page",version:Wn.CURRENT_SCHEMA_VERSION,document:o},a=Se(f);return a&&p.push(`/* ==========================================================================
|
|
205
216
|
Animations & Motion Keyframes
|
|
206
217
|
========================================================================== */
|
|
207
|
-
${
|
|
218
|
+
${a}`),p.join(`
|
|
208
219
|
|
|
209
|
-
`)}function
|
|
210
|
-
`:"",
|
|
220
|
+
`)}function $o(r,e={}){let o=L(r.metadata?.title||"KUBUILD Page"),i=r.metadata?.description?I(r.metadata.description):"",n=r.metadata?.author?I(r.metadata.author):"",t=e.lang||"en",d=Yn(r,e.cssOptions),l=Kn(r,e.htmlOptions),c=i?` <meta name="description" content="${i}">
|
|
221
|
+
`:"",p=n?` <meta name="author" content="${n}">
|
|
211
222
|
`:"";return`<!DOCTYPE html>
|
|
212
223
|
<html lang="${t}">
|
|
213
224
|
<head>
|
|
214
225
|
<meta charset="UTF-8">
|
|
215
226
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
216
227
|
<title>${o}</title>
|
|
217
|
-
${
|
|
228
|
+
${c}${p} <style>
|
|
218
229
|
${d}
|
|
219
230
|
</style>
|
|
220
231
|
</head>
|
|
221
232
|
<body>
|
|
222
233
|
${l}
|
|
223
234
|
</body>
|
|
224
|
-
</html>`}0&&(module.exports={ANIMATION_KEYFRAMES_CSS,ApiRequestError,ArtboardPortalHost,ComponentErrorBoundary,DEFAULT_BREAKPOINTS,DEFAULT_CSS_RESET,DEFAULT_RENDER_CONTEXT,DEFAULT_VIEWPORT_CONFIGS,EditableText,FormCheckboxNode,FormContainerNode,FormInputNode,FormRadioNode,FormRuntimeContext,FormRuntimeProvider,FormSelectNode,FormSubmitButtonNode,FormTextareaNode,HtmlEmbedView,KubuildPreviewViewport,KubuildProjectRenderer,KubuildRenderer,META_STANDARD_EVENTS,ModalManager,NodeRenderer,PreviewViewportAdapter,RenderContextProvider,ToastCard,ToastContainer,ToastManager,apiRequestRunner,aspectRatioToCss,buildApiUrl,closeModalRunner,collectAnimationStylesCss,collectStateStylesCss,copyClipboardRunner,copyToClipboard,createApiRequestHandler,createDefaultActionRunners,createMinimalRenderContext,createRenderContext,customEventRunner,dispatchAction,executeNodeActions,fireBrowserPixel,generateDocumentCss,generateSemanticHtml,generateStandaloneHtml,getArtboardContentNode,getEntranceAnimationCss,getHoverEffectCss,getLoopEffectCss,getVimeoId,getYouTubeId,handleFormButtonClick,injectTrackingScripts,isActionRegistered,modalManager,navigateRunner,normalizeStyleObject,openModalRunner,prepareRequestBody,registerDefaultActionRunners,removeTrackingScripts,renderCollectionNode,renderCustomComponent,renderFallbackNode,renderFormNode,renderInteractiveNode,renderLayoutNode,renderListNode,renderMediaNode,renderNodeContent,renderTableNode,renderTypographyNode,replayNodeAnimation,resetFormRunner,resolveActionPayload,resolveActionPayloadDetailed,resolveAssetSync,resolveNodeStyles,resolveVariable,resolveViewportContainerStyle,resolveViewportDimensions,resolveViewportFromWidth,selectOpenComponentArtboards,showToastRunner,styleDefinitionToCssDeclarations,toPascalCase,toastManager,toggleModalRunner,trackEventRunner,transformEmbedHtml,useFormContext,useFormField,useFormRuntime,useFormStatus,useModal,useModals,useNodeLoadActions,useRenderContext,useToasts});
|
|
235
|
+
</html>`}0&&(module.exports={ANIMATION_KEYFRAMES_CSS,ApiRequestError,ArtboardPortalHost,ComponentErrorBoundary,DEFAULT_BREAKPOINTS,DEFAULT_CSS_RESET,DEFAULT_RENDER_CONTEXT,DEFAULT_VIEWPORT_CONFIGS,EditableText,FormCheckboxNode,FormContainerNode,FormInputNode,FormRadioNode,FormRuntimeContext,FormRuntimeProvider,FormSelectNode,FormSubmitButtonNode,FormTextareaNode,HtmlEmbedView,KubuildPreviewViewport,KubuildProjectRenderer,KubuildRenderer,META_STANDARD_EVENTS,ModalManager,NodeRenderer,PreviewViewportAdapter,RenderContextProvider,ToastCard,ToastContainer,ToastManager,apiRequestRunner,aspectRatioToCss,buildApiUrl,closeModalRunner,collectAnimationStylesCss,collectStateStylesCss,copyClipboardRunner,copyToClipboard,createApiRequestHandler,createDefaultActionRunners,createMinimalRenderContext,createPlaceholderImage,createRenderContext,customEventRunner,dispatchAction,executeNodeActions,fireBrowserPixel,generateDocumentCss,generateSemanticHtml,generateStandaloneHtml,getArtboardContentNode,getEntranceAnimationCss,getHoverEffectCss,getLoopEffectCss,getVimeoId,getYouTubeId,handleFormButtonClick,injectTrackingScripts,isActionRegistered,modalManager,navigateRunner,normalizeStyleObject,openModalRunner,prepareRequestBody,registerDefaultActionRunners,removeTrackingScripts,renderCollectionNode,renderCustomComponent,renderFallbackNode,renderFormNode,renderInteractiveNode,renderLayoutNode,renderListNode,renderMediaNode,renderNodeContent,renderTableNode,renderTypographyNode,replayNodeAnimation,resetFormRunner,resolveActionPayload,resolveActionPayloadDetailed,resolveAssetSync,resolveNodeStyles,resolveVariable,resolveViewportContainerStyle,resolveViewportDimensions,resolveViewportFromWidth,selectOpenComponentArtboards,showToastRunner,styleDefinitionToCssDeclarations,toPascalCase,toastManager,toggleModalRunner,trackEventRunner,transformEmbedHtml,useFormContext,useFormField,useFormRuntime,useFormStatus,useModal,useModals,useNodeLoadActions,useRenderContext,useToasts});
|