@kubuild/renderer 0.3.1 → 0.5.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/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Bn=Object.create;var Ne=Object.defineProperty;var Hn=Object.getOwnPropertyDescriptor;var _n=Object.getOwnPropertyNames;var Ln=Object.getPrototypeOf,qn=Object.prototype.hasOwnProperty;var jn=(o,e)=>{for(var i in e)Ne(o,i,{get:e[i],enumerable:!0})},Lt=(o,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of _n(e))!qn.call(o,n)&&n!==i&&Ne(o,n,{get:()=>e[n],enumerable:!(r=Hn(e,n))||r.enumerable});return o};var ge=(o,e,i)=>(i=o!=null?Bn(Ln(o)):{},Lt(e||!o||!o.__esModule?Ne(i,"default",{value:o,enumerable:!0}):i,o)),zn=o=>Lt(Ne({},"__esModule",{value:!0}),o);var go={};jn(go,{ANIMATION_KEYFRAMES_CSS:()=>Ut,ApiRequestError:()=>ae,ArtboardPortalHost:()=>qe,ComponentErrorBoundary:()=>$e,DEFAULT_BREAKPOINTS:()=>Nn,DEFAULT_CSS_RESET:()=>et,DEFAULT_RENDER_CONTEXT:()=>ce,DEFAULT_VIEWPORT_CONFIGS:()=>Ft,EditableText:()=>G,FormCheckboxNode:()=>kt,FormContainerNode:()=>ht,FormInputNode:()=>xt,FormRadioNode:()=>Ct,FormRuntimeContext:()=>_e,FormRuntimeProvider:()=>ft,FormSelectNode:()=>Rt,FormSubmitButtonNode:()=>wt,FormTextareaNode:()=>vt,HtmlEmbedView:()=>bt,KubuildPreviewViewport:()=>co,KubuildProjectRenderer:()=>so,KubuildRenderer:()=>Pe,ModalManager:()=>Be,NodeRenderer:()=>ye,PreviewViewportAdapter:()=>Dn,RenderContextProvider:()=>ze,ToastCard:()=>ln,ToastContainer:()=>pt,ToastManager:()=>Oe,apiRequestRunner:()=>nt,aspectRatioToCss:()=>Et,buildApiUrl:()=>tn,closeModalRunner:()=>lt,collectAnimationStylesCss:()=>we,collectStateStylesCss:()=>Qe,copyClipboardRunner:()=>ct,copyToClipboard:()=>rn,createApiRequestHandler:()=>Me,createDefaultActionRunners:()=>dn,createMinimalRenderContext:()=>Un,createRenderContext:()=>jt,dispatchAction:()=>Ge,executeNodeActions:()=>H,generateDocumentCss:()=>On,generateSemanticHtml:()=>Mn,generateStandaloneHtml:()=>fo,getArtboardContentNode:()=>Nt,getEntranceAnimationCss:()=>Yt,getHoverEffectCss:()=>Wt,getLoopEffectCss:()=>Kt,getVimeoId:()=>Tt,getYouTubeId:()=>St,handleFormButtonClick:()=>gn,isActionRegistered:()=>Xe,modalManager:()=>Q,navigateRunner:()=>dt,normalizeStyleObject:()=>Je,openModalRunner:()=>He,prepareRequestBody:()=>nn,registerDefaultActionRunners:()=>Se,renderCollectionNode:()=>wn,renderCustomComponent:()=>yn,renderFallbackNode:()=>$n,renderFormNode:()=>Cn,renderInteractiveNode:()=>Pt,renderLayoutNode:()=>hn,renderListNode:()=>vn,renderMediaNode:()=>kn,renderNodeContent:()=>At,renderTableNode:()=>Rn,renderTypographyNode:()=>xn,replayNodeAnimation:()=>Yn,resetFormRunner:()=>ut,resolveActionPayload:()=>Ye,resolveActionPayloadDetailed:()=>Ke,resolveAssetSync:()=>Fe,resolveNodeStyles:()=>Ze,resolveVariable:()=>We,resolveViewportContainerStyle:()=>Fn,resolveViewportDimensions:()=>Dt,resolveViewportFromWidth:()=>lo,selectOpenComponentArtboards:()=>In,showToastRunner:()=>at,styleDefinitionToCssDeclarations:()=>fe,toPascalCase:()=>$t,toastManager:()=>pe,toggleModalRunner:()=>st,transformEmbedHtml:()=>pn,useFormContext:()=>to,useFormField:()=>oo,useFormRuntime:()=>ee,useFormStatus:()=>no,useModal:()=>rt,useModals:()=>it,useNodeLoadActions:()=>yt,useRenderContext:()=>Ue,useToasts:()=>ot});module.exports=zn(go);var Ee=ge(require("react"),1),Sn=require("@kubuild/schema"),Tn=require("@kubuild/components");var me=require("react"),ke=require("@kubuild/core"),Ce=require("@kubuild/schema"),zt=require("react/jsx-runtime"),ce=Object.freeze({}),qt=(0,me.createContext)(ce);function jt(o){if(!o)return ce;let e=o.variables?Object.freeze({...o.variables}):void 0,i=o.componentArtboards?Object.freeze([...o.componentArtboards]):void 0,r=o.resolveArtboard??(i?n=>i.find(t=>t.artboardType==="component"&&t.triggerId===n):void 0);return Object.freeze({variables:e,...o.assetProvider?{assetProvider:o.assetProvider}:{},...o.actionRegistry?{actionRegistry:o.actionRegistry}:{},...o.onDiagnostic?{onDiagnostic:o.onDiagnostic}:{},...i?{componentArtboards:i}:{},...r?{resolveArtboard:r}:{},...o.artboardSurface?{artboardSurface:o.artboardSurface}:{}})}function Un(o){let e=new Map(Object.entries(o?.assets??{})),i=new Map(Object.entries(o?.actions??{})),r={resolve:t=>e.get(t)||t},n={get:t=>i.get(t),register:(t,l)=>{i.set(t,l)},unregister:t=>{i.delete(t)}};return jt({variables:o?.variables,assetProvider:r,actionRegistry:n,onDiagnostic:o?.onDiagnostic})}var ze=({value:o,children:e})=>{let i=(0,me.useMemo)(()=>o||ce,[o]);return(0,zt.jsx)(qt.Provider,{value:i,children:e})};function Ue(){return(0,me.useContext)(qt)}function Fe(o,e){if(!(!o||!e))try{let i=o.resolve(e);return typeof i=="string"?i:void 0}catch{return}}function We(o,e){return e==null?e:(0,Ce.isVariableBinding)(e)?(0,ke.resolveBinding)(e,o).value:typeof e=="string"&&e.includes("{{")?e.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(i,r)=>{let n=(0,ke.resolveBinding)({key:r},o);return n.status==="resolved"?String(n.value):i}):e}function Ke(o,e){if(!e||typeof e!="object")return{value:e,invalidPaths:[]};let i=[],r=(t,l)=>{if(t==null)return t;if((0,Ce.isVariableBinding)(t)){let u=(0,ke.resolveBinding)(t,o);return u.status==="empty"&&i.push(l),u.value}if(typeof t=="string")return t.includes("{{")?t.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(u,p)=>{let c=(0,ke.resolveBinding)({key:p},o);return c.status!=="resolved"?(i.push(l),u):String(c.value)}):t;if(Array.isArray(t))return t.map((u,p)=>r(u,`${l}[${p}]`));if(typeof t=="object"){let u={};for(let[p,c]of Object.entries(t))u[p]=r(c,l?`${l}.${p}`:p);return u}return t},n={};for(let[t,l]of Object.entries(e))n[t]=r(l,t);return{value:n,invalidPaths:i}}function Ye(o,e){return Ke(o,e).value}function Xe(o,e){return!o||!e?!1:!!o.get(e)}function Ge(o){let{action:e,nodeId:i,document:r,context:n,onDiagnostic:t}=o;if(!(0,Ce.isActionBinding)(e)){let f={code:"INVALID_ACTION_PAYLOAD",actionType:typeof e?.type=="string"?e.type:"unknown",nodeId:i,message:`Invalid action binding on node ${i||"unknown"}.`};return t?.(f),n?.onDiagnostic?.(f),!1}let l=n?.actionRegistry?.get(e.type);if(!l){let f={code:"UNKNOWN_ACTION",actionType:e.type,nodeId:i,message:`No action handler registered for action type "${e.type}".`};return t?.(f),n?.onDiagnostic?.(f),!1}let{value:u,invalidPaths:p}=Ke(n,e.payload);if(p.length>0){let f={code:"INVALID_ACTION_BINDING",actionType:e.type,nodeId:i,message:`Action "${e.type}" payload has unresolved binding path(s) [${p.join(", ")}] on node ${i||"unknown"}; handler was not invoked.`,invalidPaths:p};return t?.(f),n?.onDiagnostic?.(f),!1}let c={nodeId:i,document:r,variables:n?.variables};try{let f=l(u,c);return f&&typeof f.catch=="function"&&f.catch(a=>{let s={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:i,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:i,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 En=require("lucide-react");function Je(o){if(!o||typeof o!="object")return{};let e={...o};if(e.colSpan!==void 0&&e.colSpan!==null&&e.colSpan!==""){if(!e.gridColumn){let i=String(e.colSpan).trim();e.gridColumn=i.startsWith("span")?i:`span ${i}`}delete e.colSpan}if(e.rowSpan!==void 0&&e.rowSpan!==null&&e.rowSpan!==""){if(!e.gridRow){let i=String(e.rowSpan).trim();e.gridRow=i.startsWith("span")?i:`span ${i}`}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 i=String(e.backdropBlur).trim(),n=`blur(${typeof e.backdropBlur=="number"||/^\d+$/.test(i)?`${i}px`:i})`;e.backdropFilter=n,e.WebkitBackdropFilter=n,delete e.backdropBlur}else e.backdropFilter&&typeof e.backdropFilter=="string"&&(e.WebkitBackdropFilter=e.backdropFilter);return 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}function Ze(o,e="desktop"){if(!o)return{};let i=o.base||{},r=o[e]||{},n={...i,...r};return Je(n)}function Wn(o){return String(o).replace(/[{};]+/g,"")}function Kn(o){return o.replace(/["\\\]]/g,"\\$&")}function fe(o,e){if(!o||typeof o!="object")return"";let i=Je(o),r=[],n=e?.important?" !important":"";for(let[t,l]of Object.entries(i)){if(l==null||l==="")continue;let u=t.replace(/[A-Z]/g,p=>`-${p.toLowerCase()}`);u.startsWith("--")||u.startsWith("-webkit-")||u.startsWith("-moz-")||u.startsWith("-")&&(u=u.substring(1)),r.push(`${u}: ${Wn(l)}${n};`)}return r.join(" ")}function Qe(o,e={important:!0}){if(!o?.document)return"";let i=[],r=n=>{let t=n.styles?.states;if(t&&typeof t=="object")for(let[l,u]of Object.entries(t)){let p=fe(u,{important:e.important!==!1});if(!p)continue;let c=/^::?[a-zA-Z-]+$/.test(l)?l:null;c&&i.push(`[data-kubuild-node="${Kn(n.id)}"]${c} { ${p} }`)}n.children?.forEach(r)};return r(o.document),i.join(`
1
+ "use strict";var Bn=Object.create;var Ne=Object.defineProperty;var Hn=Object.getOwnPropertyDescriptor;var _n=Object.getOwnPropertyNames;var Ln=Object.getPrototypeOf,qn=Object.prototype.hasOwnProperty;var jn=(r,e)=>{for(var o in e)Ne(r,o,{get:e[o],enumerable:!0})},Lt=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of _n(e))!qn.call(r,n)&&n!==o&&Ne(r,n,{get:()=>e[n],enumerable:!(i=Hn(e,n))||i.enumerable});return r};var ge=(r,e,o)=>(o=r!=null?Bn(Ln(r)):{},Lt(e||!r||!r.__esModule?Ne(o,"default",{value:r,enumerable:!0}):o,r)),zn=r=>Lt(Ne({},"__esModule",{value:!0}),r);var go={};jn(go,{ANIMATION_KEYFRAMES_CSS:()=>Wt,ApiRequestError:()=>ae,ArtboardPortalHost:()=>qe,ComponentErrorBoundary:()=>$e,DEFAULT_BREAKPOINTS:()=>Nn,DEFAULT_CSS_RESET:()=>et,DEFAULT_RENDER_CONTEXT:()=>ce,DEFAULT_VIEWPORT_CONFIGS:()=>Ft,EditableText:()=>G,FormCheckboxNode:()=>Rt,FormContainerNode:()=>ht,FormInputNode:()=>xt,FormRadioNode:()=>Ct,FormRuntimeContext:()=>_e,FormRuntimeProvider:()=>ft,FormSelectNode:()=>kt,FormSubmitButtonNode:()=>wt,FormTextareaNode:()=>vt,HtmlEmbedView:()=>bt,KubuildPreviewViewport:()=>co,KubuildProjectRenderer:()=>so,KubuildRenderer:()=>Pe,ModalManager:()=>Be,NodeRenderer:()=>ye,PreviewViewportAdapter:()=>Dn,RenderContextProvider:()=>ze,ToastCard:()=>ln,ToastContainer:()=>pt,ToastManager:()=>Oe,apiRequestRunner:()=>nt,aspectRatioToCss:()=>Et,buildApiUrl:()=>tn,closeModalRunner:()=>lt,collectAnimationStylesCss:()=>we,collectStateStylesCss:()=>Qe,copyClipboardRunner:()=>ct,copyToClipboard:()=>rn,createApiRequestHandler:()=>Me,createDefaultActionRunners:()=>dn,createMinimalRenderContext:()=>Wn,createRenderContext:()=>jt,dispatchAction:()=>Ge,executeNodeActions:()=>H,generateDocumentCss:()=>On,generateSemanticHtml:()=>Mn,generateStandaloneHtml:()=>fo,getArtboardContentNode:()=>Nt,getEntranceAnimationCss:()=>Yt,getHoverEffectCss:()=>Ut,getLoopEffectCss:()=>Kt,getVimeoId:()=>Tt,getYouTubeId:()=>St,handleFormButtonClick:()=>gn,isActionRegistered:()=>Xe,modalManager:()=>Q,navigateRunner:()=>dt,normalizeStyleObject:()=>Je,openModalRunner:()=>He,prepareRequestBody:()=>nn,registerDefaultActionRunners:()=>Se,renderCollectionNode:()=>wn,renderCustomComponent:()=>yn,renderFallbackNode:()=>$n,renderFormNode:()=>Cn,renderInteractiveNode:()=>Pt,renderLayoutNode:()=>hn,renderListNode:()=>vn,renderMediaNode:()=>Rn,renderNodeContent:()=>At,renderTableNode:()=>kn,renderTypographyNode:()=>xn,replayNodeAnimation:()=>Yn,resetFormRunner:()=>ut,resolveActionPayload:()=>Ye,resolveActionPayloadDetailed:()=>Ke,resolveAssetSync:()=>Fe,resolveNodeStyles:()=>Ze,resolveVariable:()=>Ue,resolveViewportContainerStyle:()=>Fn,resolveViewportDimensions:()=>Dt,resolveViewportFromWidth:()=>lo,selectOpenComponentArtboards:()=>In,showToastRunner:()=>at,styleDefinitionToCssDeclarations:()=>fe,toPascalCase:()=>$t,toastManager:()=>pe,toggleModalRunner:()=>st,transformEmbedHtml:()=>pn,useFormContext:()=>to,useFormField:()=>oo,useFormRuntime:()=>ee,useFormStatus:()=>no,useModal:()=>rt,useModals:()=>it,useNodeLoadActions:()=>yt,useRenderContext:()=>We,useToasts:()=>ot});module.exports=zn(go);var Ee=ge(require("react"),1),Sn=require("@kubuild/schema"),Tn=require("@kubuild/components");var me=require("react"),Re=require("@kubuild/core"),Ce=require("@kubuild/schema"),zt=require("react/jsx-runtime"),ce=Object.freeze({}),qt=(0,me.createContext)(ce);function jt(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}:{}})}function Wn(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,l)=>{o.set(t,l)},unregister:t=>{o.delete(t)}};return jt({variables:r?.variables,assetProvider:i,actionRegistry:n,onDiagnostic:r?.onDiagnostic})}var ze=({value:r,children:e})=>{let o=(0,me.useMemo)(()=>r||ce,[r]);return(0,zt.jsx)(qt.Provider,{value:o,children:e})};function We(){return(0,me.useContext)(qt)}function Fe(r,e){if(!(!r||!e))try{let o=r.resolve(e);return typeof o=="string"?o:void 0}catch{return}}function Ue(r,e){return e==null?e:(0,Ce.isVariableBinding)(e)?(0,Re.resolveBinding)(e,r).value:typeof e=="string"&&e.includes("{{")?e.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(o,i)=>{let n=(0,Re.resolveBinding)({key:i},r);return n.status==="resolved"?String(n.value):o}):e}function Ke(r,e){if(!e||typeof e!="object")return{value:e,invalidPaths:[]};let o=[],i=(t,l)=>{if(t==null)return t;if((0,Ce.isVariableBinding)(t)){let u=(0,Re.resolveBinding)(t,r);return u.status==="empty"&&o.push(l),u.value}if(typeof t=="string")return t.includes("{{")?t.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(u,p)=>{let c=(0,Re.resolveBinding)({key:p},r);return c.status!=="resolved"?(o.push(l),u):String(c.value)}):t;if(Array.isArray(t))return t.map((u,p)=>i(u,`${l}[${p}]`));if(typeof t=="object"){let u={};for(let[p,c]of Object.entries(t))u[p]=i(c,l?`${l}.${p}`:p);return u}return t},n={};for(let[t,l]of Object.entries(e))n[t]=i(l,t);return{value:n,invalidPaths:o}}function Ye(r,e){return Ke(r,e).value}function Xe(r,e){return!r||!e?!1:!!r.get(e)}function Ge(r){let{action:e,nodeId:o,document:i,context:n,onDiagnostic:t}=r;if(!(0,Ce.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 l=n?.actionRegistry?.get(e.type);if(!l){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:u,invalidPaths:p}=Ke(n,e.payload);if(p.length>0){let f={code:"INVALID_ACTION_BINDING",actionType:e.type,nodeId:o,message:`Action "${e.type}" payload has unresolved binding path(s) [${p.join(", ")}] on node ${o||"unknown"}; handler was not invoked.`,invalidPaths:p};return t?.(f),n?.onDiagnostic?.(f),!1}let c={nodeId:o,document:i,variables:n?.variables};try{let f=l(u,c);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 En=require("lucide-react");function Je(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 Ze(r,e="desktop"){if(!r)return{};let o=r.base||{},i=r[e]||{},n={...o,...i};return Je(n)}function Un(r){return String(r).replace(/[{};]+/g,"")}function Kn(r){return r.replace(/["\\\]]/g,"\\$&")}function fe(r,e){if(!r||typeof r!="object")return"";let o=Je(r),i=[],n=e?.important?" !important":"";for(let[t,l]of Object.entries(o)){if(l==null||l==="")continue;let u=t.replace(/[A-Z]/g,p=>`-${p.toLowerCase()}`);u.startsWith("--")||u.startsWith("-webkit-")||u.startsWith("-moz-")||u.startsWith("-")&&(u=u.substring(1)),i.push(`${u}: ${Un(l)}${n};`)}return i.join(" ")}function Qe(r,e={important:!0}){if(!r?.document)return"";let o=[],i=n=>{let t=n.styles?.states;if(t&&typeof t=="object")for(let[l,u]of Object.entries(t)){let p=fe(u,{important:e.important!==!1});if(!p)continue;let c=/^::?[a-zA-Z-]+$/.test(l)?l:null;c&&o.push(`[data-kubuild-node="${Kn(n.id)}"]${c} { ${p} }`)}n.children?.forEach(i)};return i(r.document),o.join(`
2
2
  `)}var et=`
3
3
  *, *::before, *::after {
4
4
  box-sizing: border-box;
@@ -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 Ut=`
28
+ `.trim();var Wt=`
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 De(o){return o.replace(/["\\\]]/g,"\\$&")}function Wt(o,e){let i=De(o),r=[];switch(e){case"lift":r.push(`[data-kubuild-node="${i}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease !important; will-change: transform; }`,`[data-kubuild-node="${i}"]: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":r.push(`[data-kubuild-node="${i}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; will-change: transform; }`,`[data-kubuild-node="${i}"]:hover { transform: scale(1.04) !important; }`);break;case"glow":r.push(`[data-kubuild-node="${i}"] { transition: box-shadow 0.25s ease !important; }`,`[data-kubuild-node="${i}"]:hover { box-shadow: 0 0 20px 2px rgba(59, 130, 246, 0.5) !important; }`);break;case"tilt":r.push(`[data-kubuild-node="${i}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; will-change: transform; }`,`[data-kubuild-node="${i}"]:hover { transform: rotate(2deg) scale(1.02) !important; }`);break;default:break}return r}function Kt(o,e){let i=De(o),r=[];switch(e){case"pulse":r.push(`[data-kubuild-node="${i}"] { animation: kb-loop-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite !important; }`);break;case"bounce":r.push(`[data-kubuild-node="${i}"] { animation: kb-loop-bounce 1.5s ease-in-out infinite !important; }`);break;case"spin":r.push(`[data-kubuild-node="${i}"] { animation: kb-loop-spin 3s linear infinite !important; }`);break;case"float":r.push(`[data-kubuild-node="${i}"] { animation: kb-loop-float 3s ease-in-out infinite !important; }`);break;case"shimmer":r.push(`[data-kubuild-node="${i}"] { animation: kb-loop-shimmer 2s ease-in-out infinite !important; }`);break;default:break}return r}function Yt(o,e){if(!e.type||e.type==="none")return[];let i=De(o),r=typeof e.duration=="number"?e.duration:600,n=typeof e.delay=="number"?e.delay:0,t=e.easing||"ease-out";return[`[data-kubuild-node="${i}"] { animation-name: kb-anim-${e.type} !important; animation-duration: ${r}ms !important; animation-delay: ${n}ms !important; animation-timing-function: ${t} !important; animation-fill-mode: both !important; }`]}function we(o){if(!o?.document)return"";let e=[],i=!1,r=n=>{let t=n.animation;t&&(t.hoverEffect&&t.hoverEffect!=="none"&&(e.push(...Wt(n.id,t.hoverEffect)),i=!0),t.loopEffect&&t.loopEffect!=="none"&&(e.push(...Kt(n.id,t.loopEffect)),i=!0),t.type&&t.type!=="none"&&(e.push(...Yt(n.id,t)),i=!0)),n.children?.forEach(r)};return r(o.document),i?`${Ut}
104
+ `.trim();function De(r){return r.replace(/["\\\]]/g,"\\$&")}function Ut(r,e){let o=De(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 Kt(r,e){let o=De(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 Yt(r,e){if(!e.type||e.type==="none")return[];let o=De(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 we(r){if(!r?.document)return"";let e=[],o=!1,i=n=>{let t=n.animation;t&&(t.hoverEffect&&t.hoverEffect!=="none"&&(e.push(...Ut(n.id,t.hoverEffect)),o=!0),t.loopEffect&&t.loopEffect!=="none"&&(e.push(...Kt(n.id,t.loopEffect)),o=!0),t.type&&t.type!=="none"&&(e.push(...Yt(n.id,t)),o=!0)),n.children?.forEach(i)};return i(r.document),o?`${Wt}
105
105
 
106
106
  ${e.join(`
107
- `)}`:""}function Yn(o,e){let i=e||(typeof window<"u"?window.document:null);if(!i)return!1;let r=i.querySelector(`[data-kubuild-node="${De(o)}"]`);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:o}})),!0}var Xt=require("react"),Gt=require("lucide-react"),ie=require("react/jsx-runtime"),$e=class extends Xt.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,i){this.props.onError&&this.props.onError(e,i),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:i,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":i,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)(Gt.AlertTriangle,{size:14,"aria-hidden":"true"}),(0,ie.jsxs)("span",{children:["Component Render Error: <",i,">"]})]}),(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":i,style:{display:"none"},"aria-hidden":"true"})}return this.props.children}};var Jt=require("@kubuild/schema"),tt=require("@kubuild/components"),Zt=require("@kubuild/core");function Xn(o){switch(o){case"string":return"";case"number":return 0;case"boolean":return!1}}function Gn(o,e,i,r,n){let t=o.props?.[e.name],l=(0,tt.primitiveTypeForField)(e);if(l===void 0||t===void 0)return t;let u=i.defaultProps?.[e.name]??e.defaultValue??Xn(l);if((0,Jt.isVariableBinding)(t)){let p=(0,Zt.resolveBinding)(t,r);return typeof p.value===l?p.value:(n.push({code:"INCOMPATIBLE_BINDING_TYPE",nodeId:o.id,propName:e.name,expectedType:l,actualType:typeof p.value,message:`Prop "${e.name}" on node "${o.id}" expected a ${l} but resolved binding "${t.key}" produced a ${typeof p.value}.`}),u)}return l==="string"&&typeof t=="string"&&t.includes("{{")?We(r,t):t}function Qt(o,e,i){let r=o.props||{};if(!e||!e.propFields||e.propFields.length===0)return{props:r,diagnostics:[]};let n=[],t={...r};for(let l of e.propFields)(0,tt.primitiveTypeForField)(l)!==void 0&&(t[l.name]=Gn(o,l,e,i,n));return{props:t,diagnostics:n}}var bn=ge(require("react"),1),M=require("@kubuild/schema"),de=require("lucide-react"),Z=require("@kubuild/core");var T=require("react"),se=require("@kubuild/core");var en=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,i){super(e),this.name="ApiRequestError",this.status=i?.status,this.statusText=i?.statusText,this.url=i?.url,this.method=i?.method,this.data=i?.data,this.headers=i?.headers,this.response=i?.response,this.isTimeout=i?.isTimeout??!1,this.isCancelled=i?.isCancelled??!1,this.isNetworkError=i?.isNetworkError??!1,this.stepId=i?.stepId,this.cause=i?.cause}};function tn(o,e,i){if(!o||typeof o!="string")throw new ae("API request URL is required",{url:o});let r=o.trim();if(!(0,en.isSafeActionUrl)(r))throw new ae(`Disallowed or unsafe protocol in API request URL: "${r}"`,{url:r});let n=r;if(i&&!r.startsWith("http://")&&!r.startsWith("https://")&&!r.startsWith("//")){let t=i.endsWith("/")?i.slice(0,-1):i,l=r.startsWith("/")?r:`/${r}`;n=`${t}${l}`}if(e&&typeof e=="object"&&Object.keys(e).length>0){let[t,l]=n.split("?"),u=new URLSearchParams(l||"");for(let[c,f]of Object.entries(e))f!=null&&(Array.isArray(f)?f.forEach(a=>u.append(c,String(a))):u.set(c,String(f)));let p=u.toString();n=p?`${t}?${p}`:t}return n}function nn(o,e,i,r={}){let n=o.toUpperCase(),t={...r};if(n==="GET"||n==="HEAD")return{body:void 0,headers:t};if(e==null)return{body:void 0,headers:t};let l=Object.keys(t).find(c=>c.toLowerCase()==="content-type"),u=l?t[l]:void 0,p=(i||"").toLowerCase();if(p==="form-data"||p==="formdata"||p==="multipart"||u&&u.includes("multipart/form-data")){if(typeof FormData<"u"&&e instanceof FormData)return l&&delete t[l],{body:e,headers:t};if(typeof FormData<"u"&&typeof e=="object"&&e!==null){let c=new FormData;for(let[f,a]of Object.entries(e))a!=null&&(typeof Blob<"u"&&a instanceof Blob?c.append(f,a):Array.isArray(a)?a.forEach(s=>c.append(f,typeof s=="object"?JSON.stringify(s):String(s))):typeof a=="object"?c.append(f,JSON.stringify(a)):c.append(f,String(a)));return l&&delete t[l],{body:c,headers:t}}}if(p==="urlencoded"||p==="url-encoded"||u&&u.includes("application/x-www-form-urlencoded")){if(typeof URLSearchParams<"u"&&e instanceof URLSearchParams)return l||(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,a]of Object.entries(e))a!=null&&(Array.isArray(a)?a.forEach(s=>c.append(f,String(s))):c.append(f,String(a)));return l||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:c,headers:t}}if(typeof e=="string")return l||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:t}}if(p==="raw"||p==="text")return l||(t["Content-Type"]="text/plain;charset=UTF-8"),{body:typeof e=="string"?e:String(e),headers:t};if(typeof e=="object"&&e!==null)return l||(t["Content-Type"]="application/json"),{body:JSON.stringify(e),headers:t};if(typeof e=="string"){if(!l)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 Jn(o){let e=o.headers.get("content-type")||"",i=await o.text();if(!i||i.trim()==="")return null;if(e.includes("application/json")||e.includes("+json"))try{return JSON.parse(i)}catch{return i}let r=i.trim();if(r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]"))try{return JSON.parse(r)}catch{return i}return i}function Me(o){let e=o?.defaultTimeout,i=o?.baseUrl,r=o?.headers;return async function(t,l,u){let p=l.fetchFn||o?.fetchFn||(typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch:typeof fetch<"u"?fetch:void 0);if(!p)throw new ae("No fetch implementation available for API request runner",{stepId:t.id});let c=t.payload||{},f=String(c.method||"GET").toUpperCase(),a=c.timeout??e,s=c.baseUrl??i,d=tn(String(c.url||""),c.queryParams,s),g={...r||{},...c.headers||{}},{body:y,headers:b}=nn(f,c.body,c.bodyFormat||c.bodyType,g),x=new AbortController,h,v=()=>{x.abort(u?.reason)};if(u){if(u.aborted)throw new ue.ActionCancellationError(u.reason instanceof Error?u.reason.message:"API request cancelled",t.id);u.addEventListener("abort",v,{once:!0})}a!==void 0&&a>0&&(h=setTimeout(()=>{x.abort(new ue.ActionTimeoutError(`API request timed out after ${a}ms`,a,t.id))},a));try{let m=await p(d,{method:f,headers:b,body:y,signal:x.signal}),w={};m.headers&&typeof m.headers.forEach=="function"&&m.headers.forEach((S,P)=>{w[P.toLowerCase()]=S});let k=await Jn(m),C={ok:m.ok,status:m.status,statusText:m.statusText,headers:w,data:k,body:k,url:m.url||d};if(!m.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 ${m.status} ${m.statusText||"Error"}`;throw new ae(`API request failed: ${S}`,{status:m.status,statusText:m.statusText,url:d,method:f,data:k,headers:w,response:C,stepId:t.id})}return C}catch(m){if(m instanceof ae)throw m;if(x.signal.aborted){let k=x.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(m instanceof Error&&(m.name==="AbortError"||m.name==="TimeoutError"))throw h===void 0&&u?.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=m instanceof Error?m.message:String(m);throw new ae(`Network error during API request: ${w}`,{url:d,method:f,isNetworkError:!0,stepId:t.id,cause:m})}finally{h!==void 0&&clearTimeout(h),u&&u.removeEventListener("abort",v)}}}var nt=Me();var Ve=require("react"),Zn=0,Oe=class{toasts=[];listeners=new Set;timers=new Map;showToast(e){let i=typeof e=="string"?{message:e}:e,r=i.id||`toast_${Date.now()}_${++Zn}`,n=i.type||i.variant||"info",t=i.duration!==void 0?Math.max(0,i.duration):4e3,l=i.position||"top-right",u=i.dismissible!==!1;this.timers.has(r)&&(clearTimeout(this.timers.get(r)),this.timers.delete(r));let p={id:r,type:n,message:i.message,title:i.title,duration:t,position:l,dismissible:u,createdAt:Date.now(),dismiss:()=>this.dismissToast(r)};if(this.toasts=this.toasts.filter(c=>c.id!==r).concat(p),t>0){let c=setTimeout(()=>{this.dismissToast(r)},t);this.timers.set(r,c)}return this.notify(),p}dismissToast(e){this.timers.has(e)&&(clearTimeout(this.timers.get(e)),this.timers.delete(e));let i=this.toasts.length;this.toasts=this.toasts.filter(r=>r.id!==e),this.toasts.length!==i&&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 i of this.listeners)try{i(e)}catch(r){console.error("Error in toast listener callback:",r)}}},pe=new Oe;function ot(o=pe){let[e,i]=(0,Ve.useState)(()=>o.getToasts());return(0,Ve.useEffect)(()=>(i(o.getToasts()),o.subscribe(r=>{i(r)})),[o]),{toasts:e,showToast:r=>o.showToast(r),dismissToast:r=>o.dismissToast(r),clearToasts:()=>o.clearToasts()}}var oe=require("react"),Be=class{modals=new Map;activeStack=[];listeners=new Set;openModal(e){if(!e||typeof e!="string")return;let i=e.trim();if(i){if(this.modals.set(i,!0),this.activeStack=this.activeStack.filter(r=>r!==i).concat(i),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:open",{detail:{modalId:i},bubbles:!0});window.dispatchEvent(r)}catch{}this.notify()}}closeModal(e){if(e&&typeof e=="string"){let i=e.trim();if(this.modals.set(i,!1),this.activeStack=this.activeStack.filter(r=>r!==i),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:close",{detail:{modalId:i},bubbles:!0});window.dispatchEvent(r)}catch{}}else{let i=this.activeStack.pop();if(i){if(this.modals.set(i,!1),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:close",{detail:{modalId:i},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[i,r]of this.modals.entries())e[i]=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 i of this.listeners)try{i(e)}catch(r){console.error("Error in modal listener callback:",r)}}},Q=new Be;function rt(o,e=Q){if(!o)return{isOpen:!1,open:()=>{},close:()=>{},toggle:()=>!1};let[i,r]=(0,oe.useState)(()=>e.isModalOpen(o));(0,oe.useEffect)(()=>(r(e.isModalOpen(o)),e.subscribe(u=>{r(!!u[o])})),[o,e]);let n=(0,oe.useCallback)(()=>e.openModal(o),[o,e]),t=(0,oe.useCallback)(()=>e.closeModal(o),[o,e]),l=(0,oe.useCallback)(()=>e.toggleModal(o),[o,e]);return{isOpen:i,open:n,close:t,toggle:l}}function it(o=Q){let[e,i]=(0,oe.useState)(()=>o.getState());return(0,oe.useEffect)(()=>(i(o.getState()),o.subscribe(r=>{i(r)})),[o]),{modals:e,activeModals:o.getActiveModals(),isOpen:r=>!!e[r],openModal:r=>o.openModal(r),closeModal:r=>o.closeModal(r),toggleModal:r=>o.toggleModal(r)}}var at=(o,e)=>{let i=o.payload||{},r=String(i.message||"").trim();if(!r)throw new Error("Toast message cannot be empty");let n=i.type||i.variant||"info",t=i.duration!==void 0?i.duration:4e3,l=i.position||"top-right",u=i.title?String(i.title):void 0,c=(e.toastManager||pe).showToast({message:r,type:n,duration:t,position:l,title:u});return{id:c.id,message:c.message,type:c.type,title:c.title,duration:c.duration,position:c.position}},He=(o,e)=>{let i=o.payload||{},r=i.modalId||i.modalNodeId||i.targetNodeId||i.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,u=!!i.toggle?t.toggleModal(n):(t.openModal(n),!0);if(e.state&&typeof e.state=="object"){let p=e.state.modals||{};e.state.modals={...p,[n]:u},e.state[n]=u}return e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${n}_open`]=u),{modalId:n,open:u}},st=(o,e)=>He({...o,payload:{...o.payload||{},toggle:!0}},e),lt=(o,e)=>{let i=o.payload||{},r=i.modalId||i.modalNodeId||i.targetNodeId||i.nodeId,n=r?String(r).trim():void 0;if((e.modalManager||Q).closeModal(n),n){if(e.state&&typeof e.state=="object"){let l=e.state.modals||{};e.state.modals={...l,[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 on=require("@kubuild/schema");async function rn(o,e){if(e?.copyFn)return await e.copyFn(o),!0;if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")try{return await navigator.clipboard.writeText(o),!0}catch{}if(typeof document<"u")try{let i=document.createElement("textarea");i.value=o,i.setAttribute("readonly",""),i.style.position="fixed",i.style.top="-9999px",i.style.left="-9999px",i.style.opacity="0",document.body.appendChild(i),i.focus(),i.select();let r=document.execCommand("copy");if(document.body.removeChild(i),r)return!0}catch{}return!1}var dt=(o,e)=>{let i=o.payload||{},r=String(i.url||"").trim();if(!r)throw new Error("Navigation URL cannot be empty");if(!(0,on.isSafeActionUrl)(r))throw new Error(`Disallowed or unsafe protocol in navigation URL: "${r}"`);let n=i.target||"_self",t=i.replace??!1,l=i.behavior||"smooth",u=i.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:u===!1?"auto":l,block:"start"})}catch{}if(typeof window<"u"&&window.location)try{window.location.hash=r}catch{}}return{url:r,target:"_self",replace:t,scroll:u,behavior:l,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:u,behavior:l,navigated:!0,isAnchor:!1};let p=typeof e.onNavigate=="function"&&e.onNavigate||typeof e.navigateFn=="function"&&e.navigateFn;return p?(p(r,{target:n,replace:t,scroll:u,behavior:l}),{url:r,target:n,replace:t,scroll:u,behavior:l,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:u,behavior:l,navigated:!0,isAnchor:!1})},ct=async(o,e)=>{let i=o.payload||{},r=i.text!==void 0?i.text:i.value!==void 0?i.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 rn(n,{copyFn:t}),i.notify!==!1&&(i.notify===!0||i.toastMessage)&&(e.toastManager||pe).showToast({message:i.toastMessage||"Copied to clipboard!",type:"success",duration:3e3}),{text:n,copied:!0}},ut=(o,e)=>{let r=(o.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}};var sn=require("react");var re=require("lucide-react"),W=require("react/jsx-runtime"),Qn={"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"}},an={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}},ln=({toast:o})=>{let e=an[o.type]||an.info,i=e.Icon;return(0,W.jsxs)("div",{role:"alert","aria-live":"polite","data-testid":`toast-${o.id}`,"data-toast-type":o.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)(i,{size:18,color:e.iconColor})}),(0,W.jsxs)("div",{style:{flex:1,minWidth:0},children:[o.title&&(0,W.jsx)("div",{style:{fontWeight:600,fontSize:"14px",marginBottom:"2px",color:e.titleText},children:o.title}),(0,W.jsx)("div",{style:{color:e.text},children:o.message})]}),o.dismissible&&(0,W.jsx)("button",{type:"button","aria-label":"Close notification",onClick:o.dismiss,"data-testid":`toast-dismiss-${o.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})})]})},pt=({manager:o=pe,position:e,className:i,maxVisible:r=5})=>{let{toasts:n}=ot(o),t=(0,sn.useMemo)(()=>{if(e)return{[e]:n.filter(u=>(u.position||"top-right")===e)};let l={"top-right":[],"top-left":[],"top-center":[],"bottom-right":[],"bottom-left":[],"bottom-center":[]};return n.forEach(u=>{let p=u.position||"top-right";l[p].push(u)}),l},[n,e]);return n.length===0?null:(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)("style",{children:`
107
+ `)}`:""}function Yn(r,e){let o=e||(typeof window<"u"?window.document:null);if(!o)return!1;let i=o.querySelector(`[data-kubuild-node="${De(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 Xt=require("react"),Gt=require("lucide-react"),ie=require("react/jsx-runtime"),$e=class extends Xt.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)(Gt.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 Jt=require("@kubuild/schema"),tt=require("@kubuild/components"),Zt=require("@kubuild/core");function Xn(r){switch(r){case"string":return"";case"number":return 0;case"boolean":return!1}}function Gn(r,e,o,i,n){let t=r.props?.[e.name],l=(0,tt.primitiveTypeForField)(e);if(l===void 0||t===void 0)return t;let u=o.defaultProps?.[e.name]??e.defaultValue??Xn(l);if((0,Jt.isVariableBinding)(t)){let p=(0,Zt.resolveBinding)(t,i);return typeof p.value===l?p.value:(n.push({code:"INCOMPATIBLE_BINDING_TYPE",nodeId:r.id,propName:e.name,expectedType:l,actualType:typeof p.value,message:`Prop "${e.name}" on node "${r.id}" expected a ${l} but resolved binding "${t.key}" produced a ${typeof p.value}.`}),u)}return l==="string"&&typeof t=="string"&&t.includes("{{")?Ue(i,t):t}function Qt(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 l of e.propFields)(0,tt.primitiveTypeForField)(l)!==void 0&&(t[l.name]=Gn(r,l,e,o,n));return{props:t,diagnostics:n}}var bn=ge(require("react"),1),M=require("@kubuild/schema"),de=require("lucide-react"),Z=require("@kubuild/core");var T=require("react"),se=require("@kubuild/core");var en=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 tn(r,e,o){if(!r||typeof r!="string")throw new ae("API request URL is required",{url:r});let i=r.trim();if(!(0,en.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,l=i.startsWith("/")?i:`/${i}`;n=`${t}${l}`}if(e&&typeof e=="object"&&Object.keys(e).length>0){let[t,l]=n.split("?"),u=new URLSearchParams(l||"");for(let[c,f]of Object.entries(e))f!=null&&(Array.isArray(f)?f.forEach(a=>u.append(c,String(a))):u.set(c,String(f)));let p=u.toString();n=p?`${t}?${p}`:t}return n}function nn(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 l=Object.keys(t).find(c=>c.toLowerCase()==="content-type"),u=l?t[l]:void 0,p=(o||"").toLowerCase();if(p==="form-data"||p==="formdata"||p==="multipart"||u&&u.includes("multipart/form-data")){if(typeof FormData<"u"&&e instanceof FormData)return l&&delete t[l],{body:e,headers:t};if(typeof FormData<"u"&&typeof e=="object"&&e!==null){let c=new FormData;for(let[f,a]of Object.entries(e))a!=null&&(typeof Blob<"u"&&a instanceof Blob?c.append(f,a):Array.isArray(a)?a.forEach(s=>c.append(f,typeof s=="object"?JSON.stringify(s):String(s))):typeof a=="object"?c.append(f,JSON.stringify(a)):c.append(f,String(a)));return l&&delete t[l],{body:c,headers:t}}}if(p==="urlencoded"||p==="url-encoded"||u&&u.includes("application/x-www-form-urlencoded")){if(typeof URLSearchParams<"u"&&e instanceof URLSearchParams)return l||(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,a]of Object.entries(e))a!=null&&(Array.isArray(a)?a.forEach(s=>c.append(f,String(s))):c.append(f,String(a)));return l||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:c,headers:t}}if(typeof e=="string")return l||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:t}}if(p==="raw"||p==="text")return l||(t["Content-Type"]="text/plain;charset=UTF-8"),{body:typeof e=="string"?e:String(e),headers:t};if(typeof e=="object"&&e!==null)return l||(t["Content-Type"]="application/json"),{body:JSON.stringify(e),headers:t};if(typeof e=="string"){if(!l)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 Jn(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 Me(r){let e=r?.defaultTimeout,o=r?.baseUrl,i=r?.headers;return async function(t,l,u){let p=l.fetchFn||r?.fetchFn||(typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch:typeof fetch<"u"?fetch:void 0);if(!p)throw new ae("No fetch implementation available for API request runner",{stepId:t.id});let c=t.payload||{},f=String(c.method||"GET").toUpperCase(),a=c.timeout??e,s=c.baseUrl??o,d=tn(String(c.url||""),c.queryParams,s),g={...i||{},...c.headers||{}},{body:y,headers:b}=nn(f,c.body,c.bodyFormat||c.bodyType,g),x=new AbortController,h,v=()=>{x.abort(u?.reason)};if(u){if(u.aborted)throw new ue.ActionCancellationError(u.reason instanceof Error?u.reason.message:"API request cancelled",t.id);u.addEventListener("abort",v,{once:!0})}a!==void 0&&a>0&&(h=setTimeout(()=>{x.abort(new ue.ActionTimeoutError(`API request timed out after ${a}ms`,a,t.id))},a));try{let m=await p(d,{method:f,headers:b,body:y,signal:x.signal}),w={};m.headers&&typeof m.headers.forEach=="function"&&m.headers.forEach((S,P)=>{w[P.toLowerCase()]=S});let R=await Jn(m),C={ok:m.ok,status:m.status,statusText:m.statusText,headers:w,data:R,body:R,url:m.url||d};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:d,method:f,data:R,headers:w,response:C,stepId:t.id})}return C}catch(m){if(m instanceof ae)throw m;if(x.signal.aborted){let R=x.signal.reason;if(R instanceof ue.ActionTimeoutError||R instanceof Error&&R.name==="ActionTimeoutError"||R instanceof ue.ActionCancellationError||R instanceof Error&&R.name==="ActionCancellationError")throw R;if(m instanceof Error&&(m.name==="AbortError"||m.name==="TimeoutError"))throw h===void 0&&u?.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=m instanceof Error?m.message:String(m);throw new ae(`Network error during API request: ${w}`,{url:d,method:f,isNetworkError:!0,stepId:t.id,cause:m})}finally{h!==void 0&&clearTimeout(h),u&&u.removeEventListener("abort",v)}}}var nt=Me();var Ve=require("react"),Zn=0,Oe=class{toasts=[];listeners=new Set;timers=new Map;showToast(e){let o=typeof e=="string"?{message:e}:e,i=o.id||`toast_${Date.now()}_${++Zn}`,n=o.type||o.variant||"info",t=o.duration!==void 0?Math.max(0,o.duration):4e3,l=o.position||"top-right",u=o.dismissible!==!1;this.timers.has(i)&&(clearTimeout(this.timers.get(i)),this.timers.delete(i));let p={id:i,type:n,message:o.message,title:o.title,duration:t,position:l,dismissible:u,createdAt:Date.now(),dismiss:()=>this.dismissToast(i)};if(this.toasts=this.toasts.filter(c=>c.id!==i).concat(p),t>0){let c=setTimeout(()=>{this.dismissToast(i)},t);this.timers.set(i,c)}return this.notify(),p}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 Oe;function ot(r=pe){let[e,o]=(0,Ve.useState)(()=>r.getToasts());return(0,Ve.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"),Be=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 Be;function rt(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(u=>{i(!!u[r])})),[r,e]);let n=(0,oe.useCallback)(()=>e.openModal(r),[r,e]),t=(0,oe.useCallback)(()=>e.closeModal(r),[r,e]),l=(0,oe.useCallback)(()=>e.toggleModal(r),[r,e]);return{isOpen:o,open:n,close:t,toggle:l}}function it(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 at=(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,l=o.position||"top-right",u=o.title?String(o.title):void 0,c=(e.toastManager||pe).showToast({message:i,type:n,duration:t,position:l,title:u});return{id:c.id,message:c.message,type:c.type,title:c.title,duration:c.duration,position:c.position}},He=(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,u=!!o.toggle?t.toggleModal(n):(t.openModal(n),!0);if(e.state&&typeof e.state=="object"){let p=e.state.modals||{};e.state.modals={...p,[n]:u},e.state[n]=u}return e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${n}_open`]=u),{modalId:n,open:u}},st=(r,e)=>He({...r,payload:{...r.payload||{},toggle:!0}},e),lt=(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 l=e.state.modals||{};e.state.modals={...l,[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 on=require("@kubuild/schema");async function rn(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 dt=(r,e)=>{let o=r.payload||{},i=String(o.url||"").trim();if(!i)throw new Error("Navigation URL cannot be empty");if(!(0,on.isSafeActionUrl)(i))throw new Error(`Disallowed or unsafe protocol in navigation URL: "${i}"`);let n=o.target||"_self",t=o.replace??!1,l=o.behavior||"smooth",u=o.scroll??!0;if(i.startsWith("#")){if(typeof document<"u"){try{let c=document.querySelector(i)||document.getElementById(i.slice(1));c&&typeof c.scrollIntoView=="function"&&c.scrollIntoView({behavior:u===!1?"auto":l,block:"start"})}catch{}if(typeof window<"u"&&window.location)try{window.location.hash=i}catch{}}return{url:i,target:"_self",replace:t,scroll:u,behavior:l,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:u,behavior:l,navigated:!0,isAnchor:!1};let p=typeof e.onNavigate=="function"&&e.onNavigate||typeof e.navigateFn=="function"&&e.navigateFn;return p?(p(i,{target:n,replace:t,scroll:u,behavior:l}),{url:i,target:n,replace:t,scroll:u,behavior:l,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:u,behavior:l,navigated:!0,isAnchor:!1})},ct=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 rn(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}},ut=(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}};var sn=require("react");var re=require("lucide-react"),U=require("react/jsx-runtime"),Qn={"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"}},an={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}},ln=({toast:r})=>{let e=an[r.type]||an.info,o=e.Icon;return(0,U.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,U.jsx)("div",{style:{flexShrink:0,marginTop:"2px",color:e.iconColor},children:(0,U.jsx)(o,{size:18,color:e.iconColor})}),(0,U.jsxs)("div",{style:{flex:1,minWidth:0},children:[r.title&&(0,U.jsx)("div",{style:{fontWeight:600,fontSize:"14px",marginBottom:"2px",color:e.titleText},children:r.title}),(0,U.jsx)("div",{style:{color:e.text},children:r.message})]}),r.dismissible&&(0,U.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,U.jsx)(re.X,{size:16})})]})},pt=({manager:r=pe,position:e,className:o,maxVisible:i=5})=>{let{toasts:n}=ot(r),t=(0,sn.useMemo)(()=>{if(e)return{[e]:n.filter(u=>(u.position||"top-right")===e)};let l={"top-right":[],"top-left":[],"top-center":[],"bottom-right":[],"bottom-left":[],"bottom-center":[]};return n.forEach(u=>{let p=u.position||"top-right";l[p].push(u)}),l},[n,e]);return n.length===0?null:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)("style",{children:`
108
108
  @keyframes kubuildToastIn {
109
109
  from {
110
110
  opacity: 0;
@@ -115,66 +115,66 @@ ${e.join(`
115
115
  transform: translateY(0) scale(1);
116
116
  }
117
117
  }
118
- `}),Object.entries(t).map(([l,u])=>{if(!u||u.length===0)return null;let p=u.slice(-r);return(0,W.jsx)("div",{"data-testid":`toast-container-${l}`,className:i,style:{position:"fixed",zIndex:99999,display:"flex",flexDirection:"column",gap:"8px",maxWidth:"calc(100vw - 32px)",pointerEvents:"none",...Qn[l]},children:p.map(c=>(0,W.jsx)(ln,{toast:c},c.id))},l)})]})};function dn(o){return{api_request:o?.apiRequest?Me(o.apiRequest):nt,show_toast:at,open_modal:He,close_modal:lt,toggle_modal:st,navigate:dt,copy_clipboard:ct,reset_form:ut,...o?.handlers||{}}}function Se(o,e){let i=dn(e);for(let[r,n]of Object.entries(i))(!o.hasHandler(r)||e?.handlers?.[r]||e?.apiRequest)&&o.registerHandler(r,n);return o}var cn=require("react/jsx-runtime"),_e=(0,T.createContext)(null);function eo(o,e){let i=new Set([...Object.keys(o),...Object.keys(e)]);for(let r of i)if(o[r]!==e[r])return!0;return!1}var ft=({formId:o,formConfig:e,initialValues:i,onSubmit:r,onSuccess:n,onError:t,actions:l,nodeId:u,document:p,onDiagnostic:c,children:f})=>{let a=Ue(),s=(0,T.useMemo)(()=>o||e?.formId||u||"kubuild-form",[o,e?.formId,u]),d=(0,T.useMemo)(()=>({...e?.initialValues||{},...i||{}}),[e?.initialValues,i]),[g,y]=(0,T.useState)(d),[b,x]=(0,T.useState)(d),[h,v]=(0,T.useState)({}),[m,w]=(0,T.useState)({}),[k,C]=(0,T.useState)(!1),S=(0,T.useRef)(new Map),P=(0,T.useRef)({values:b,errors:h,touched:m,initialValues:g,isSubmitting:k,formConfig:e});(0,T.useEffect)(()=>{P.current={values:b,errors:h,touched:m,initialValues:g,isSubmitting:k,formConfig:e}});let I=(0,T.useCallback)($=>{if(!$||!$.name)return()=>{};let F={name:$.name,rules:$.rules||[],validateOn:$.validateOn||"blur",label:$.label,defaultValue:$.defaultValue,transform:$.transform,disabled:$.disabled,required:$.required};return S.current.set($.name,F),$.defaultValue!==void 0&&(P.current.values[$.name]===void 0&&(P.current.values[$.name]=$.defaultValue),x(N=>N[$.name]===void 0?{...N,[$.name]:$.defaultValue}:N)),()=>{S.current.delete($.name)}},[]),A=(0,T.useCallback)($=>S.current.get($),[]),O=(0,T.useCallback)(($,F)=>{let N=S.current.get($),Y=P.current.values,ne=F!==void 0?F: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,T.useCallback)($=>{let F=$||P.current.values,N=Array.from(S.current.values());return(0,se.validateForm)(F,N)},[]),K=(0,T.useCallback)(($,F)=>{v(N=>{if(F)return{...N,[$]:F};if(N[$]===void 0)return N;let Y={...N};return delete Y[$],Y})},[]),q=(0,T.useCallback)($=>{v({...$})},[]),xe=(0,T.useCallback)(($,F,N)=>{let Y=S.current.get($),ne=F;Y?.transform&&(ne=(0,se.applyFieldTransform)(F,Y.transform)),x(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]),Ae=(0,T.useCallback)(($,F=!0,N)=>{w(B=>({...B,[$]:F}));let ne=S.current.get($)?.validateOn||e?.validateOn||"blur";if(N!==void 0?N:ne==="blur"&&F){let B=O($);K($,B)}},[e?.validateOn,O,K]),Mt=(0,T.useCallback)(($,F=!1)=>{x(N=>F?{...$}:{...N,...$})},[]),Ie=(0,T.useCallback)($=>{C($)},[]),ve=(0,T.useCallback)($=>{let F=$||g;$&&y($),x({...F}),v({}),w({}),C(!1)},[g]),Ot=(0,T.useCallback)(async $=>{if($&&typeof $.preventDefault=="function"&&$.preventDefault(),P.current.isSubmitting)return!1;let F=P.current.values,N={};for(let z of S.current.keys())N[z]=!0;w(N);let Y=V(F);if(v(Y),!(Object.keys(Y).length===0)){if(t?.(Y),e?.scrollToFirstError!==!1&&typeof window<"u"&&typeof p<"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(l&&l.length>0){let z=l.filter(B=>B.trigger==="submit"&&B.enabled!==!1);if(z.length>0){let B=new se.ActionPipelineExecutor;Se(B);for(let J of z){let Re=await B.execute(J,{context:{form:F,variables:a?.variables?{...a.variables}:{},nodeId:u,document:p}});if(!Re.success){let Ht=Re.error instanceof Error?Re.error.message:String(Re.error||"Submit pipeline failed"),_t={code:"ACTION_EXECUTION_ERROR",actionType:J.steps[0]?.type||"submit",nodeId:u,message:`Form submit pipeline failed: ${Ht}`,error:Re.error};return c?.(_t),a?.onDiagnostic?.(_t),t?.({_form:Ht}),C(!1),!1}}}}return r&&await r(F,{formId:s,setSubmitting:Ie,resetForm:ve,setErrors:v}),n?.(F),e?.resetOnSubmit&&ve(),!0}catch(z){let B=z instanceof Error?z.message:String(z),J={code:"ACTION_EXECUTION_ERROR",actionType:"submit",nodeId:u,message:`Form submit execution error: ${B}`,error:z};return c?.(J),a?.onDiagnostic?.(J),t?.({_form:B}),!1}finally{C(!1)}},[e,l,u,p,c,a,r,n,t,s,Ie,ve,V]),Vt=(0,T.useMemo)(()=>Object.keys(h).length===0,[h]),Bt=(0,T.useMemo)(()=>eo(b,g),[b,g]),Vn=(0,T.useMemo)(()=>({formId:s,formConfig:e,initialValues:g,values:b,errors:h,touched:m,isSubmitting:k,isValid:Vt,dirty:Bt,setFieldValue:xe,setFieldTouched:Ae,setFieldError:K,setErrors:q,setValues:Mt,setSubmitting:Ie,resetForm:ve,validateField:O,validateForm:V,handleFormSubmit:Ot,registerField:I,getFieldBinding:A}),[s,e,g,b,h,m,k,Vt,Bt,xe,Ae,K,q,Mt,Ie,ve,O,V,Ot,I,A]);return(0,cn.jsx)(_e.Provider,{value:Vn,children:f})};function ee(){return(0,T.useContext)(_e)}function to(){return(0,T.useContext)(_e)}function no(){let o=ee();return{isSubmitting:o?.isSubmitting??!1,isValid:o?.isValid??!0,dirty:o?.dirty??!1,errors:o?.errors??{}}}function oo(o,e){let i=ee();i&&o&&i.registerField(e||{name:o}),(0,T.useEffect)(()=>{if(!i||!o)return;let s=i.registerField(e||{name:o});return()=>{s()}},[i,o,e]);let r=i?.values[o]!==void 0?i.values[o]:e?.defaultValue,n=i?.errors[o],t=!!i?.touched[o],l=!!(n&&t),u=(0,T.useCallback)((s,d)=>{i?.setFieldValue(o,s,d)},[i,o]),p=(0,T.useCallback)((s=!0,d)=>{i?.setFieldTouched(o,s,d)},[i,o]),c=(0,T.useCallback)(s=>{i?.setFieldError(o,s)},[i,o]),f=(0,T.useCallback)(s=>{if(s&&typeof s=="object"&&"target"in s&&s.target){let d=s.target;if(d.type==="checkbox")u(d.checked);else if(d.type==="number"){let g=d.value===""?"":Number(d.value);u(g)}else u(d.value)}else u(s)},[u]),a=(0,T.useCallback)(()=>{p(!0)},[p]);return{value:r,error:n,touched:t,isInvalid:l,setValue:u,setTouched:p,setError:c,onChange:f,onBlur:a}}var un=require("react"),gt=require("react/jsx-runtime"),G=({as:o="p",id:e,className:i,style:r,value:n,isEditable:t,nodeId:l,onClick:u,onChange:p,...c})=>{let f=(0,un.useRef)(!1),a=o;return t?(0,gt.jsx)(a,{id:e,className:i,style:{...r,outline:"none",cursor:"text"},contentEditable:!0,suppressContentEditableWarning:!0,"data-kubuild-node":l,onClick:s=>{u?.(s)},onFocus:()=>{f.current=!0},onInput:s=>{let d=s.currentTarget.textContent??"";p?.(d,!1)},onBlur:s=>{f.current=!1;let d=s.currentTarget.textContent??"";p?.(d,!0)},onKeyDown:s=>{s.key==="Escape"&&s.currentTarget.blur()},...c,children:n}):(0,gt.jsx)(a,{id:e,className:i,style:r,onClick:u,"data-kubuild-node":l,...c,children:n})};var le=require("react"),mt=require("react/jsx-runtime"),ro=typeof window<"u"?le.useLayoutEffect:le.useEffect;function pn(o){return o?o.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(e,i,r)=>{let n=r;return n=n.replace(/(^|[\s,{}])body(?=[\s,{])/g,"$1:host, body"),n=n.replace(/(^|[\s,{}])html(?=[\s,{])/g,"$1:host, html"),`<style${i}>
118
+ `}),Object.entries(t).map(([l,u])=>{if(!u||u.length===0)return null;let p=u.slice(-i);return(0,U.jsx)("div",{"data-testid":`toast-container-${l}`,className:o,style:{position:"fixed",zIndex:99999,display:"flex",flexDirection:"column",gap:"8px",maxWidth:"calc(100vw - 32px)",pointerEvents:"none",...Qn[l]},children:p.map(c=>(0,U.jsx)(ln,{toast:c},c.id))},l)})]})};function dn(r){return{api_request:r?.apiRequest?Me(r.apiRequest):nt,show_toast:at,open_modal:He,close_modal:lt,toggle_modal:st,navigate:dt,copy_clipboard:ct,reset_form:ut,...r?.handlers||{}}}function Se(r,e){let o=dn(e);for(let[i,n]of Object.entries(o))(!r.hasHandler(i)||e?.handlers?.[i]||e?.apiRequest)&&r.registerHandler(i,n);return r}var cn=require("react/jsx-runtime"),_e=(0,T.createContext)(null);function eo(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 ft=({formId:r,formConfig:e,initialValues:o,onSubmit:i,onSuccess:n,onError:t,actions:l,nodeId:u,document:p,onDiagnostic:c,children:f})=>{let a=We(),s=(0,T.useMemo)(()=>r||e?.formId||u||"kubuild-form",[r,e?.formId,u]),d=(0,T.useMemo)(()=>({...e?.initialValues||{},...o||{}}),[e?.initialValues,o]),[g,y]=(0,T.useState)(d),[b,x]=(0,T.useState)(d),[h,v]=(0,T.useState)({}),[m,w]=(0,T.useState)({}),[R,C]=(0,T.useState)(!1),S=(0,T.useRef)(new Map),P=(0,T.useRef)({values:b,errors:h,touched:m,initialValues:g,isSubmitting:R,formConfig:e});(0,T.useEffect)(()=>{P.current={values:b,errors:h,touched:m,initialValues:g,isSubmitting:R,formConfig:e}});let I=(0,T.useCallback)($=>{if(!$||!$.name)return()=>{};let F={name:$.name,rules:$.rules||[],validateOn:$.validateOn||"blur",label:$.label,defaultValue:$.defaultValue,transform:$.transform,disabled:$.disabled,required:$.required};return S.current.set($.name,F),$.defaultValue!==void 0&&(P.current.values[$.name]===void 0&&(P.current.values[$.name]=$.defaultValue),x(N=>N[$.name]===void 0?{...N,[$.name]:$.defaultValue}:N)),()=>{S.current.delete($.name)}},[]),A=(0,T.useCallback)($=>S.current.get($),[]),O=(0,T.useCallback)(($,F)=>{let N=S.current.get($),Y=P.current.values,ne=F!==void 0?F: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,T.useCallback)($=>{let F=$||P.current.values,N=Array.from(S.current.values());return(0,se.validateForm)(F,N)},[]),K=(0,T.useCallback)(($,F)=>{v(N=>{if(F)return{...N,[$]:F};if(N[$]===void 0)return N;let Y={...N};return delete Y[$],Y})},[]),q=(0,T.useCallback)($=>{v({...$})},[]),xe=(0,T.useCallback)(($,F,N)=>{let Y=S.current.get($),ne=F;Y?.transform&&(ne=(0,se.applyFieldTransform)(F,Y.transform)),x(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]),Ae=(0,T.useCallback)(($,F=!0,N)=>{w(B=>({...B,[$]:F}));let ne=S.current.get($)?.validateOn||e?.validateOn||"blur";if(N!==void 0?N:ne==="blur"&&F){let B=O($);K($,B)}},[e?.validateOn,O,K]),Mt=(0,T.useCallback)(($,F=!1)=>{x(N=>F?{...$}:{...N,...$})},[]),Ie=(0,T.useCallback)($=>{C($)},[]),ve=(0,T.useCallback)($=>{let F=$||g;$&&y($),x({...F}),v({}),w({}),C(!1)},[g]),Ot=(0,T.useCallback)(async $=>{if($&&typeof $.preventDefault=="function"&&$.preventDefault(),P.current.isSubmitting)return!1;let F=P.current.values,N={};for(let z of S.current.keys())N[z]=!0;w(N);let Y=V(F);if(v(Y),!(Object.keys(Y).length===0)){if(t?.(Y),e?.scrollToFirstError!==!1&&typeof window<"u"&&typeof p<"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(l&&l.length>0){let z=l.filter(B=>B.trigger==="submit"&&B.enabled!==!1);if(z.length>0){let B=new se.ActionPipelineExecutor;Se(B);for(let J of z){let ke=await B.execute(J,{context:{form:F,variables:a?.variables?{...a.variables}:{},nodeId:u,document:p}});if(!ke.success){let Ht=ke.error instanceof Error?ke.error.message:String(ke.error||"Submit pipeline failed"),_t={code:"ACTION_EXECUTION_ERROR",actionType:J.steps[0]?.type||"submit",nodeId:u,message:`Form submit pipeline failed: ${Ht}`,error:ke.error};return c?.(_t),a?.onDiagnostic?.(_t),t?.({_form:Ht}),C(!1),!1}}}}return i&&await i(F,{formId:s,setSubmitting:Ie,resetForm:ve,setErrors:v}),n?.(F),e?.resetOnSubmit&&ve(),!0}catch(z){let B=z instanceof Error?z.message:String(z),J={code:"ACTION_EXECUTION_ERROR",actionType:"submit",nodeId:u,message:`Form submit execution error: ${B}`,error:z};return c?.(J),a?.onDiagnostic?.(J),t?.({_form:B}),!1}finally{C(!1)}},[e,l,u,p,c,a,i,n,t,s,Ie,ve,V]),Vt=(0,T.useMemo)(()=>Object.keys(h).length===0,[h]),Bt=(0,T.useMemo)(()=>eo(b,g),[b,g]),Vn=(0,T.useMemo)(()=>({formId:s,formConfig:e,initialValues:g,values:b,errors:h,touched:m,isSubmitting:R,isValid:Vt,dirty:Bt,setFieldValue:xe,setFieldTouched:Ae,setFieldError:K,setErrors:q,setValues:Mt,setSubmitting:Ie,resetForm:ve,validateField:O,validateForm:V,handleFormSubmit:Ot,registerField:I,getFieldBinding:A}),[s,e,g,b,h,m,R,Vt,Bt,xe,Ae,K,q,Mt,Ie,ve,O,V,Ot,I,A]);return(0,cn.jsx)(_e.Provider,{value:Vn,children:f})};function ee(){return(0,T.useContext)(_e)}function to(){return(0,T.useContext)(_e)}function no(){let r=ee();return{isSubmitting:r?.isSubmitting??!1,isValid:r?.isValid??!0,dirty:r?.dirty??!1,errors:r?.errors??{}}}function oo(r,e){let o=ee();o&&r&&o.registerField(e||{name:r}),(0,T.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],l=!!(n&&t),u=(0,T.useCallback)((s,d)=>{o?.setFieldValue(r,s,d)},[o,r]),p=(0,T.useCallback)((s=!0,d)=>{o?.setFieldTouched(r,s,d)},[o,r]),c=(0,T.useCallback)(s=>{o?.setFieldError(r,s)},[o,r]),f=(0,T.useCallback)(s=>{if(s&&typeof s=="object"&&"target"in s&&s.target){let d=s.target;if(d.type==="checkbox")u(d.checked);else if(d.type==="number"){let g=d.value===""?"":Number(d.value);u(g)}else u(d.value)}else u(s)},[u]),a=(0,T.useCallback)(()=>{p(!0)},[p]);return{value:i,error:n,touched:t,isInvalid:l,setValue:u,setTouched:p,setError:c,onChange:f,onBlur:a}}var un=require("react"),gt=require("react/jsx-runtime"),G=({as:r="p",id:e,className:o,style:i,value:n,isEditable:t,nodeId:l,onClick:u,onChange:p,...c})=>{let f=(0,un.useRef)(!1),a=r;return t?(0,gt.jsx)(a,{id:e,className:o,style:{...i,outline:"none",cursor:"text"},contentEditable:!0,suppressContentEditableWarning:!0,"data-kubuild-node":l,onClick:s=>{u?.(s)},onFocus:()=>{f.current=!0},onInput:s=>{let d=s.currentTarget.textContent??"";p?.(d,!1)},onBlur:s=>{f.current=!1;let d=s.currentTarget.textContent??"";p?.(d,!0)},onKeyDown:s=>{s.key==="Escape"&&s.currentTarget.blur()},...c,children:n}):(0,gt.jsx)(a,{id:e,className:o,style:i,onClick:u,"data-kubuild-node":l,...c,children:n})};var le=require("react"),mt=require("react/jsx-runtime"),ro=typeof window<"u"?le.useLayoutEffect:le.useEffect;function pn(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 bt=({id:o,style:e,onClick:i,dataKubuildNode:r,html:n,role:t})=>{let l=(0,le.useRef)(null),u=(0,le.useRef)(null),p=(0,le.useMemo)(()=>pn(n),[n]);return ro(()=>{let c=l.current;if(c){if(typeof c.attachShadow=="function"){if(!u.current)if(c.shadowRoot)u.current=c.shadowRoot;else try{u.current=c.attachShadow({mode:"open"})}catch{u.current=c.shadowRoot}if(u.current){u.current.innerHTML=p;return}}c.innerHTML=p}},[p]),(0,mt.jsx)("div",{ref:l,id:o,style:e,onClick:i,"data-kubuild-node":r,role:t,children:(0,mt.jsx)("template",{shadowrootmode:"open",dangerouslySetInnerHTML:{__html:p}})})};var be=require("react");var Te=ge(require("react"),1),fn=require("@kubuild/core");async function H(o){let{node:e,trigger:i,document:r,context:n,formContext:t,extraContext:l,onDiagnostic:u,onActionDispatch:p,executor:c}=o;if(!e.actions||!Array.isArray(e.actions)||e.actions.length===0)return{executed:!1,success:!0};let f=e.actions.filter(d=>d.trigger===i&&d.enabled!==!1);if(f.length===0)return{executed:!1,success:!0};let a=c||new fn.ActionPipelineExecutor;Se(a);let s={form:t?{...t.values}:{},variables:n?.variables?{...n.variables}:{},nodeId:e.id,document:r,toastManager:n?.toastManager,modalManager:n?.modalManager,...l||{}};for(let d of f){let g=await a.execute(d,{context:s});if(p&&d.steps.length>0&&p(d.steps[0].type,d.steps[0].payload,e.id),!g.success){let y=g.error instanceof Error?g.error.message:String(g.error||`Action pipeline "${d.id}" failed`),b={code:"ACTION_EXECUTION_ERROR",actionType:d.steps[0]?.type||i,nodeId:e.id,message:y,error:g.error};return u?.(b),n?.onDiagnostic?.(b),{executed:!0,success:!1,error:g.error}}}return{executed:!0,success:!0}}function yt(o,e){if(!o.actions?.some(t=>t.trigger==="load"&&t.enabled!==!1))return;let r=Te.default?.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||Te.default?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(r?.H||r?.ReactCurrentDispatcher?.current)try{(0,Te.useEffect)(()=>{e.mode!=="editor"&&H({node:o,trigger:"load",document:e.document,context:e.context,formContext:e.formContext,onDiagnostic:e.onDiagnostic,onActionDispatch:e.onActionDispatch})},[o,e.document,e.context,e.formContext,e.onDiagnostic,e.onActionDispatch,e.mode])}catch{}}var D=require("react/jsx-runtime"),ht=({id:o,name:e,action:i,method:r="POST",target:n,autoComplete:t,style:l,onClick:u,mode:p,dataKubuildNode:c,children:f})=>{let a=ee();return(0,D.jsx)("form",{id:o,name:e,action:i,method:r,target:n,autoComplete:t,style:l,onClick:u,onSubmit:g=>{if(p==="editor"){g.preventDefault();return}a&&a.handleFormSubmit(g)},onReset:()=>{a&&a.resetForm()},"data-kubuild-node":c,role:"form","aria-label":e,children:f})},xt=({id:o,name:e,type:i="text",placeholder:r,defaultValue:n,required:t,disabled:l,readOnly:u,rules:p,validateOn:c,transform:f,style:a,onClick:s,actions:d,nodeId:g,document:y,renderContext:b,onDiagnostic:x,onActionDispatch:h,dataKubuildNode:v})=>{let m=ee();if(m&&e&&m.registerField({name:e,defaultValue:n,required:t,disabled:l,rules:p||[],validateOn:c,transform:f}),(0,be.useEffect)(()=>{if(!m||!e)return;let V=m.registerField({name:e,defaultValue:n,required:t,disabled:l,rules:p||[],validateOn:c,transform:f});return()=>{V()}},[m,e,n,t,l,p,c,f]),!m||!e)return(0,D.jsx)("input",{id:o,type:i,name:e,placeholder:r,defaultValue:n!==void 0?String(n):void 0,required:t,disabled:l,readOnly:u,style:a,onClick:s,"data-kubuild-node":v});let w=m.values[e],k=w!=null?String(w):n!=null?String(n):"",C=m.errors[e],S=!!m.touched[e],P=!!(C&&S);return(0,D.jsx)("input",{id:o,type:i,name:e,placeholder:r,value:k,onChange:V=>{let K=V.target.value;i==="number"&&(K=V.target.value===""?"":Number(V.target.value)),m.setFieldValue(e,K),d&&d.length>0&&H({node:{id:g||o||e,type:"input",actions:d},trigger:"change",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:K},onDiagnostic:x,onActionDispatch:h})},onBlur:()=>{m.setFieldTouched(e,!0),d&&d.length>0&&H({node:{id:g||o||e,type:"input",actions:d},trigger:"blur",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:h})},onFocus:()=>{d&&d.length>0&&H({node:{id:g||o||e,type:"input",actions:d},trigger:"focus",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:h})},required:t,disabled:l,readOnly:u,style:a,onClick:s,"data-kubuild-node":v,"data-field":e,"data-invalid":P?"true":void 0,"aria-invalid":P?!0:void 0,"aria-errormessage":C?`${o}-error`:void 0})},vt=({id:o,name:e,placeholder:i,defaultValue:r,rows:n=4,required:t,disabled:l,readOnly:u,rules:p,validateOn:c,transform:f,style:a,onClick:s,actions:d,nodeId:g,document:y,renderContext:b,onDiagnostic:x,onActionDispatch:h,dataKubuildNode:v})=>{let m=ee();if(m&&e&&m.registerField({name:e,defaultValue:r,required:t,disabled:l,rules:p||[],validateOn:c,transform:f}),(0,be.useEffect)(()=>{if(!m||!e)return;let V=m.registerField({name:e,defaultValue:r,required:t,disabled:l,rules:p||[],validateOn:c,transform:f});return()=>{V()}},[m,e,r,t,l,p,c,f]),!m||!e)return(0,D.jsx)("textarea",{id:o,name:e,placeholder:i,defaultValue:r!==void 0?String(r):void 0,rows:n,required:t,disabled:l,readOnly:u,style:a,onClick:s,"data-kubuild-node":v});let w=m.values[e],k=w!=null?String(w):r!=null?String(r):"",C=m.errors[e],S=!!m.touched[e],P=!!(C&&S);return(0,D.jsx)("textarea",{id:o,name:e,placeholder:i,rows:n,value:k,onChange:V=>{m.setFieldValue(e,V.target.value),d&&d.length>0&&H({node:{id:g||o||e,type:"textarea",actions:d},trigger:"change",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:V.target.value},onDiagnostic:x,onActionDispatch:h})},onBlur:()=>{m.setFieldTouched(e,!0),d&&d.length>0&&H({node:{id:g||o||e,type:"textarea",actions:d},trigger:"blur",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:h})},onFocus:()=>{d&&d.length>0&&H({node:{id:g||o||e,type:"textarea",actions:d},trigger:"focus",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:h})},required:t,disabled:l,readOnly:u,style:a,onClick:s,"data-kubuild-node":v,"data-field":e,"data-invalid":P?"true":void 0,"aria-invalid":P?!0:void 0,"aria-errormessage":C?`${o}-error`:void 0})},Rt=({id:o,name:e,placeholder:i,defaultValue:r,required:n,disabled:t,rules:l,validateOn:u,optionsList:p,style:c,onClick:f,actions:a,nodeId:s,document:d,renderContext:g,onDiagnostic:y,onActionDispatch:b,dataKubuildNode:x})=>{let h=ee();if(h&&e&&h.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:l||[],validateOn:u}),(0,be.useEffect)(()=>{if(!h||!e)return;let A=h.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:l||[],validateOn:u});return()=>{A()}},[h,e,r,n,t,l,u]),!h||!e)return(0,D.jsxs)("select",{id:o,name:e,defaultValue:r!==void 0?String(r):"",required:n,disabled:t,style:c,onClick:f,"data-kubuild-node":x,children:[i&&(0,D.jsx)("option",{value:"",disabled:!0,children:i}),p.map((A,O)=>(0,D.jsx)("option",{value:A.value,children:A.label},O))]});let v=h.values[e],m=v!=null?String(v):r!=null?String(r):"",w=h.errors[e],k=!!h.touched[e],C=!!(w&&k);return(0,D.jsxs)("select",{id:o,name:e,value:m,onChange:A=>{h.setFieldValue(e,A.target.value),a&&a.length>0&&H({node:{id:s||o||e,type:"select",actions:a},trigger:"change",document:d,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:A.target.value},onDiagnostic:y,onActionDispatch:b})},onBlur:()=>{h.setFieldTouched(e,!0),a&&a.length>0&&H({node:{id:s||o||e,type:"select",actions:a},trigger:"blur",document:d,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:y,onActionDispatch:b})},onFocus:()=>{a&&a.length>0&&H({node:{id:s||o||e,type:"select",actions:a},trigger:"focus",document:d,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:y,onActionDispatch:b})},required:n,disabled:t,style:c,onClick:f,"data-kubuild-node":x,"data-field":e,"data-invalid":C?"true":void 0,"aria-invalid":C?!0:void 0,"aria-errormessage":w?`${o}-error`:void 0,children:[i&&(0,D.jsx)("option",{value:"",disabled:!0,children:i}),p.map((A,O)=>(0,D.jsx)("option",{value:A.value,children:A.label},O))]})},kt=({id:o,name:e,label:i="",defaultChecked:r=!1,required:n,disabled:t,rules:l,validateOn:u,style:p,onClick:c,actions:f,nodeId:a,document:s,renderContext:d,onDiagnostic:g,onActionDispatch:y,dataKubuildNode:b,isEditable:x,onNodePropChange:h})=>{let v=ee();v&&e&&v.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:l||[],validateOn:u}),(0,be.useEffect)(()=>{if(!v||!e)return;let C=v.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:l||[],validateOn:u});return()=>{C()}},[v,e,r,n,t,l,u]);let m=v&&e&&v.values[e]!==void 0?!!v.values[e]:r;return(0,D.jsxs)("label",{id:o,style:p,onClick:c,"data-kubuild-node":b,children:[(0,D.jsx)("input",{type:"checkbox",name:e,checked:m,onChange:C=>{v&&e&&(v.setFieldValue(e,C.target.checked),f&&f.length>0&&H({node:{id:a||o||e,type:"checkbox",actions:f},trigger:"change",document:s,context:d,formContext:v,extraContext:{fieldName:e,fieldValue:C.target.checked},onDiagnostic:g,onActionDispatch:y}))},onBlur:()=>{v&&e&&(v.setFieldTouched(e,!0),f&&f.length>0&&H({node:{id:a||o||e,type:"checkbox",actions:f},trigger:"blur",document:s,context:d,formContext:v,extraContext:{fieldName:e,fieldValue:m},onDiagnostic:g,onActionDispatch:y}))},required:n,disabled:t,style:{cursor:t?"not-allowed":"pointer"},"data-field":e}),x?(0,D.jsx)(G,{as:"span",value:i,isEditable:x,nodeId:b||"",onChange:(C,S)=>h?.(b||"","label",C,S)}):(0,D.jsx)("span",{children:i})]})},Ct=({id:o,name:e,label:i="",value:r="",defaultChecked:n=!1,required:t,disabled:l,rules:u,validateOn:p,style:c,onClick:f,actions:a,nodeId:s,document:d,renderContext:g,onDiagnostic:y,onActionDispatch:b,dataKubuildNode:x,isEditable:h,onNodePropChange:v})=>{let m=ee();m&&e&&m.registerField({name:e,defaultValue:n?r:void 0,required:t,disabled:l,rules:u||[],validateOn:p}),(0,be.useEffect)(()=>{if(!m||!e)return;let S=m.registerField({name:e,defaultValue:n?r:void 0,required:t,disabled:l,rules:u||[],validateOn:p});return()=>{S()}},[m,e,n,r,t,l,u,p]);let w=m&&e&&m.values[e]!==void 0?m.values[e]===r:n;return(0,D.jsxs)("label",{id:o,style:c,onClick:f,"data-kubuild-node":x,children:[(0,D.jsx)("input",{type:"radio",name:e,value:r,checked:w,onChange:()=>{m&&e&&(m.setFieldValue(e,r),a&&a.length>0&&H({node:{id:s||o||e,type:"radio",actions:a},trigger:"change",document:d,context:g,formContext:m,extraContext:{fieldName:e,fieldValue:r},onDiagnostic:y,onActionDispatch:b}))},onBlur:()=>{m&&e&&(m.setFieldTouched(e,!0),a&&a.length>0&&H({node:{id:s||o||e,type:"radio",actions:a},trigger:"blur",document:d,context:g,formContext:m,extraContext:{fieldName:e,fieldValue:r},onDiagnostic:y,onActionDispatch:b}))},required:t,disabled:l,style:{cursor:l?"not-allowed":"pointer"},"data-field":e}),h?(0,D.jsx)(G,{as:"span",value:i,isEditable:h,nodeId:x||"",onChange:(S,P)=>v?.(x||"","label",S,P)}):(0,D.jsx)("span",{children:i})]})};async function gn(o){let{event:e,buttonType:i,disabled:r,formRuntime:n,onClick:t,node:l,actions:u,document:p,renderContext:c,onDiagnostic:f,onActionDispatch:a,executeActions:s=H}=o;if(r)return;if(i==="submit"){if(n&&!await n.handleFormSubmit(e))return}else i==="reset"&&n?.resetForm();if(t){t(e);return}let d=l||(u?{id:"button",type:"button",actions:u}:void 0);d?.actions&&d.actions.length>0&&await s({node:d,trigger:"click",document:p,context:c,formContext:n,onDiagnostic:f,onActionDispatch:a})}var wt=({id:o,buttonType:e,disabled:i,ariaLabel:r,style:n,onClick:t,actions:l,node:u,document:p,renderContext:c,onDiagnostic:f,onActionDispatch:a,dataKubuildNode:s,actionAttrs:d,children:g})=>{let y=ee(),b=y?.isSubmitting===!0,x=i||e==="submit"&&b;return(0,D.jsx)("button",{id:o,type:e,disabled:x,"aria-disabled":x?!0:void 0,"aria-label":r,"aria-busy":e==="submit"&&b?!0:void 0,tabIndex:x?-1:0,style:n,onClick:x?void 0:async v=>{await gn({event:v,buttonType:e,disabled:x,formRuntime:y,onClick:t,node:u||(l?{id:s||o||"button",type:"button",actions:l}:void 0),document:p,renderContext:c,onDiagnostic:f,onActionDispatch:a})},"data-kubuild-node":s,...d,children:g})};function $t(o){return o?o.replace(/[-_](\w)/g,(e,i)=>i.toUpperCase()).replace(/^\w/,e=>e.toUpperCase()):""}function St(o){if(!o||typeof o!="string")return null;let e=o.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function Tt(o){if(!o||typeof o!="string")return null;let e=o.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function Et(o){if(o==="16:9")return"16 / 9";if(o==="4:3")return"4 / 3";if(o==="1:1")return"1 / 1";if(o==="9:16")return"9 / 16";if(typeof o=="string"&&o!=="auto")return o.replace(":"," / ")}var Le=ge(require("react"),1),mn=require("@kubuild/schema");var U=require("react/jsx-runtime");function Pt(o){let{node:e,domId:i,styles:r,resolvedProps:n,props:t,childrenElements:l,handleClick:u,context:p,mode:c,isModalOpen:f}=o,a=n.modalId||t.modalId||e.id,s=String(a).trim(),d=p?.modalManager||Q,g=c==="editor"&&p?.artboardSurface==="component";switch(e.type){case"modal":{if(!f&&c==="runtime")return(0,U.jsx)(Le.default.Fragment,{});let y=n.backdrop!==!1&&t.backdrop!==!1,b=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,x=n.showCloseButton!==!1&&t.showCloseButton!==!1,h=n.title??t.title,v=h!==void 0?String(h):void 0,m=n.size||t.size||"md",w=m==="sm"?"400px":m==="lg"?"768px":m==="fullscreen"?"100%":"560px",k=m==="fullscreen"?"100%":"auto";return(0,U.jsx)("div",{id:`${i}-overlay`,"data-kubuild-overlay":s,"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:C=>{C.target===C.currentTarget&&b&&c==="runtime"&&d.closeModal(s)},children:(0,U.jsxs)("div",{id:i,style:{...r,position:"relative",boxSizing:"border-box",maxWidth:w,height:k,width:"100%"},onClick:u,"data-kubuild-node":e.id,role:"dialog","aria-modal":"true","aria-label":typeof v=="string"?v:"Modal Dialog",children:[x&&(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(),d.closeModal(s)},children:"\u2715"}),v&&(0,U.jsx)("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(v)}),l]})})}case"drawer":{if(!f&&c==="runtime")return(0,U.jsx)(Le.default.Fragment,{});let y=n.placement||t.placement||"right",b=n.backdrop!==!1&&t.backdrop!==!1,x=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,h=n.showCloseButton!==!1&&t.showCloseButton!==!1,v=n.title??t.title,m=v!==void 0?String(v):void 0,w=y==="top"||y==="bottom";return(0,U.jsx)("div",{id:`${i}-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: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:k=>{k.target===k.currentTarget&&x&&c==="runtime"&&d.closeModal(s)},children:(0,U.jsxs)("div",{id:i,style:{...r,position:"relative",boxSizing:"border-box",height:g||w?"auto":"100%",...g?{minHeight:"240px"}:{},width:w?"100%":r.width||"320px",maxHeight:g?"none":w?"80vh":"100%",overflowY:"auto"},onClick:u,"data-kubuild-node":e.id,role:"region","aria-label":typeof m=="string"?m:"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(),d.closeModal(s)},children:"\u2715"}),m&&(0,U.jsx)("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(m)}),l]})})}case"collapsible":return(0,U.jsx)("div",{id:i,style:{...r,display:(c==="editor"?!0:!!f)?r.display||"block":"none"},onClick:u,"data-kubuild-node":e.id,"data-kubuild-collapsible":s,children:l});case mn.ARTBOARD_REFERENCE_NODE_TYPE:{if(c==="runtime")return(0,U.jsx)(Le.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:i,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:u,"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 R=require("react/jsx-runtime");function yn(o){let{node:e,document:i,definition:r,resolvedProps:n,styles:t,context:l,childrenElements:u,handleClick:p}=o;if(r?.renderer&&typeof r.renderer=="function"){let c=r.renderer;return typeof c=="function"&&!c.prototype?.isReactComponent?c({node:e,document:i,props:n,styles:t,context:l,children:u,onClick:p}):(0,R.jsx)(c,{node:e,document:i,props:n,styles:t,context:l,onClick:p,children:u})}return null}function hn(o){let{node:e,domId:i,styles:r,resolvedProps:n,props:t,handleClick:l,childrenElements:u}=o;switch(e.type){case"page":return(0,R.jsx)("div",{id:i,style:r,onClick:l,"data-kubuild-node":e.id,children:u});case"section":{let p=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return(0,R.jsx)("section",{id:i,style:r,onClick:l,"data-kubuild-node":e.id,"aria-label":p,children:u})}case"container":return(0,R.jsx)("div",{id:i,style:r,onClick:l,"data-kubuild-node":e.id,children:u});case"columns":return(0,R.jsx)("div",{id:i,style:r,onClick:l,"data-kubuild-node":e.id,children:u});case"flex":case"grid":{let p=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return(0,R.jsx)("div",{id:i,style:r,onClick:l,"data-kubuild-node":e.id,"aria-label":p,children:u})}default:return null}}function xn(o){let{node:e,domId:i,styles:r,resolvedProps:n,props:t,mode:l,handleClick:u,onNodePropChange:p,childrenElements:c,selectedNodeId:f}=o,a=e.id===f;switch(e.type){case"heading":{let s=typeof n.level=="number"?n.level:1,d=`h${Math.min(Math.max(s,1),6)}`||"h1",g=String(n.text??n.content??t.text??t.content??""),y=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,R.jsx)(G,{as:d,id:i,style:r,value:g,isEditable:y,nodeId:e.id,onClick:u,onChange:(b,x)=>p?.(e.id,"text",b,x)})}case"text":{let s=String(n.text??n.content??t.text??t.content??""),d=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=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,R.jsx)(G,{as:d,id:i,style:r,value:s,isEditable:g,nodeId:e.id,onClick:u,onChange:(y,b)=>p?.(e.id,"text",y,b)})}case"paragraph":{let s=String(n.text??n.content??t.text??t.content??""),d=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,R.jsx)(G,{as:"p",id:i,style:r,value:s,isEditable:d,nodeId:e.id,onClick:u,onChange:(g,y)=>p?.(e.id,"text",g,y)})}case"link":{let s=String(n.text??n.label??n.content??t.text??t.label??t.content??""),d=typeof n.href=="string"?n.href:"#",g=typeof n.target=="string"?n.target:void 0,y=l==="editor"&&a&&!(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,x=l==="editor"?void 0:(0,Z.sanitizeUrl)(d,"#"),h=v=>{l==="editor"&&v.preventDefault(),u(v)};return y?(0,R.jsx)(G,{as:"a",id:i,style:r,value:s,isEditable:y,nodeId:e.id,onClick:h,onChange:(v,m)=>{let w="text"in t?"text":"label";p?.(e.id,w,v,m)},href:x,target:g,rel:b}):(0,R.jsx)("a",{id:i,style:r,href:x,target:g,rel:b,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,d=typeof n.cite=="string"?n.cite:typeof t.cite=="string"?t.cite:void 0,g=l==="editor"&&a&&!(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,R.jsxs)("blockquote",{id:i,style:y,onClick:u,"data-kubuild-node":e.id,cite:d,children:[s!==void 0?g?(0,R.jsx)(G,{as:"p",value:s,isEditable:g,nodeId:e.id,onChange:(b,x)=>{let h="quote"in t?"quote":"text";p?.(e.id,h,b,x)}}):(0,R.jsx)("p",{children:s}):null,c,d&&(0,R.jsxs)("cite",{style:{display:"block",fontStyle:"normal",fontSize:"0.875rem",marginTop:"0.5rem",color:"#64748b"},children:["\u2014 ",d]})]})}case"badge":{let s=String(n.text??n.label??t.text??t.label??""),d=typeof n.variant=="string"?n.variant:typeof t.variant=="string"?t.variant:"default",g=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.label);return(0,R.jsx)("span",{id:i,style:r,onClick:u,"data-kubuild-node":e.id,"data-variant":d,"data-badge-variant":d,children:g?(0,R.jsx)(G,{as:"span",value:s,isEditable:g,nodeId:e.id,onChange:(y,b)=>{let x="text"in t?"text":"label";p?.(e.id,x,y,b)}}):s})}case"code-block":{let s=String(n.code??t.code??""),d=typeof n.language=="string"?n.language:typeof t.language=="string"?t.language:"plaintext";return l==="editor"?(0,R.jsx)("pre",{id:i,style:r,onClick:u,"data-kubuild-node":e.id,"data-language":d,children:(0,R.jsx)("code",{className:`language-${d}`,contentEditable:!0,suppressContentEditableWarning:!0,onBlur:g=>p?.(e.id,"code",g.currentTarget.textContent??"",!0),children:s})}):(0,R.jsx)("pre",{id:i,style:r,onClick:u,"data-kubuild-node":e.id,"data-language":d,children:(0,R.jsx)("code",{className:`language-${d}`,children:s})})}default:return null}}function vn(o){let{node:e,domId:i,styles:r,resolvedProps:n,props:t,mode:l,handleClick:u,onNodePropChange:p,childrenElements:c,selectedNodeId:f}=o,a=e.id===f;switch(e.type){case"list":{let d=(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,R.jsx)(d,{id:i,style:b,onClick:u,"data-kubuild-node":e.id,"data-list-style":g,children:c})}case"list-item":{let s=n.text!==void 0?String(n.text):t.text!==void 0?String(t.text):void 0,d=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&s!==void 0;return(0,R.jsxs)("li",{id:i,style:r,onClick:u,"data-kubuild-node":e.id,children:[s!==void 0&&(d?(0,R.jsx)(G,{as:"span",value:s,isEditable:d,nodeId:e.id,onChange:(g,y)=>p?.(e.id,"text",g,y)}):s),c]})}default:return null}}function Rn(o){let{node:e,domId:i,styles:r,resolvedProps:n,props:t,mode:l,handleClick:u,onNodePropChange:p,childrenElements:c,selectedNodeId:f}=o,a=e.id===f;switch(e.type){case"table":{let s=typeof n.cellPadding=="number"?n.cellPadding:void 0,d=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,x=n.hover===!0||t.hover===!0,h=n.compact===!0||t.compact===!0;return(0,R.jsx)("table",{id:i,style:r,cellPadding:s,cellSpacing:d,border:g,onClick:u,"data-kubuild-node":e.id,"data-striped":y?"true":void 0,"data-bordered":b?"true":void 0,"data-hover":x?"true":void 0,"data-compact":h?"true":void 0,children:(0,R.jsx)("tbody",{children:c})})}case"table-row":return(0,R.jsx)("tr",{id:i,style:r,onClick:u,"data-kubuild-node":e.id,children:c});case"table-cell":{let d=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,x=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&b!==void 0;return(0,R.jsxs)(d,{id:i,colSpan:g,rowSpan:y,style:r,onClick:u,"data-kubuild-node":e.id,children:[b!==void 0&&(x?(0,R.jsx)(G,{as:"span",value:b,isEditable:x,nodeId:e.id,onChange:(h,v)=>p?.(e.id,"text",h,v)}):b),c]})}default:return null}}function kn(o){let{node:e,domId:i,styles:r,resolvedProps:n,props:t,context:l,mode:u,handleClick:p}=o;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=Fe(l?.assetProvider,c.assetId)||c.fallbackUrl:typeof c=="string"&&(f=Fe(l?.assetProvider,c)||c);let a=typeof n.alt=="string"?n.alt:typeof t.alt=="string"?t.alt:"",s=typeof n.fit=="string"?n.fit:void 0,d=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,x=r?.objectFit,h={...r,...s&&x===void 0?{objectFit:s}:{}};return(0,R.jsx)("img",{id:i,src:b,alt:a,role:a===""?"presentation":void 0,loading:d,width:g,height:y,style:h,onClick:p,"data-kubuild-node":e.id})}case"video":{let c=n.src??n.url??t.src??t.url,f=typeof c=="string"?c:void 0,a=typeof n.poster=="string"?n.poster:void 0,s=n.controls!==!1,d=n.autoplay===!0,g=n.loop===!0,y=n.muted===!0,b=n.playsInline!==!1,x=n.aspectRatio,h={position:"relative",width:r.width||"100%",...x?{aspectRatio:Et(x)}:{},...r},v=f?St(f):null,m=f?Tt(f):null;if(v){let C=`https://www.youtube.com/embed/${v}?autoplay=${d?1:0}&loop=${g?1:0}&mute=${y?1:0}&controls=${s?1:0}`,S=(0,Z.sanitizeUrl)(C,"");return(0,R.jsx)("div",{id:i,"data-video-provider":"youtube",style:h,onClick:p,"data-kubuild-node":e.id,children:(0,R.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 C=`https://player.vimeo.com/video/${m}?autoplay=${d?1:0}&loop=${g?1:0}&muted=${y?1:0}`,S=(0,Z.sanitizeUrl)(C,"");return(0,R.jsx)("div",{id:i,"data-video-provider":"vimeo",style:h,onClick:p,"data-kubuild-node":e.id,children:(0,R.jsx)("iframe",{src:S,title:"Vimeo video player",style:{width:"100%",height:"100%",border:0},allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0})})}let w=f?(0,Z.sanitizeUrl)(f,""):void 0,k=a?(0,Z.sanitizeUrl)(a,""):void 0;return(0,R.jsx)("video",{id:i,src:w,poster:k,controls:s,autoPlay:d,loop:g,muted:y,playsInline:b,style:h,onClick:p,"data-kubuild-node":e.id})}case"icon":{let c=typeof n.name=="string"?n.name:"Square",f=typeof n.size=="number"?n.size:24,a=typeof n.color=="string"?n.color:"currentColor",s=typeof n.strokeWidth=="number"?n.strokeWidth:2,d=$t(c),g=de.icons[d]||de.icons[c]||de.Package;return(0,R.jsx)("span",{id:i,"data-icon-name":c,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",...r},onClick:p,"data-kubuild-node":e.id,children:(0,R.jsx)(g,{size:f,color:a,strokeWidth:s})})}case"html-embed":{let c=typeof n.html=="string"?n.html:"",a=n.sanitize!==!1?(0,Z.sanitizeHtml)(c):c;return!a.trim()&&u==="editor"?(0,R.jsx)("div",{id:i,style:{...r,minHeight:"60px",border:"1px dashed #94a3b8",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f8fafc",color:"#64748b",fontSize:"0.875rem"},onClick:p,"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)(bt,{id:i,style:r,html:a,onClick:p,dataKubuildNode:e.id})}default:return null}}function Cn(o){let{node:e,domId:i,styles:r,resolvedProps:n,props:t,context:l,mode:u,document:p,onDiagnostic:c,onActionDispatch:f,handleClick:a,onNodePropChange:s,childrenElements:d,selectedNodeId:g}=o,y=e.id===g;switch(e.type){case"button":{let b=n.label??n.text??n.content??t.label??t.text??t.content??"Button",x=n.activeLabel??t.activeLabel,h=String(o.isModalOpen&&x?x:b),v=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,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,P=u==="editor"&&y&&t.isEditable!==!1&&!(0,M.isVariableBinding)(t.label)&&!(0,M.isVariableBinding)(t.text),I=typeof n.rel=="string"?n.rel:typeof t.rel=="string"?t.rel:m==="_blank"?"noopener noreferrer":void 0,A={};if(t.action&&!C){let O=typeof t.action=="object"?t.action.type:t.action;if(A["data-kubuild-action"]=O,l?.actionRegistry){let V=Xe(l.actionRegistry,O);A["data-kubuild-action-resolved"]=V?"true":"false"}}if(v&&!C){let O=u==="editor"?void 0:(0,Z.sanitizeUrl)(v,"#");return(0,R.jsx)("a",{id:i,href:O,target:m,rel:I,tabIndex:0,style:r,onClick:a,"data-kubuild-node":e.id,"aria-label":S,...A,children:h})}return P?(0,R.jsx)(G,{as:"button",id:i,type:u==="editor"?"button":k,disabled:C,"aria-disabled":C?!0:void 0,"aria-label":S,tabIndex:C?-1:0,style:r,value:h,isEditable:P,nodeId:e.id,onClick:C?void 0:a,onChange:(O,V)=>s?.(e.id,"label",O,V),...A}):(0,R.jsx)(wt,{id:i,buttonType:u==="editor"?"button":k,disabled:C,ariaLabel:S,style:r,onClick:C?void 0:a,actions:e.actions,node:e,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,actionAttrs:A,children:h})}case"form":{let b=typeof n.action=="string"?n.action:void 0,x=typeof n.method=="string"?n.method:"POST",h=typeof n.target=="string"?n.target:void 0,v=typeof n.autoComplete=="string"?n.autoComplete:void 0,m=typeof n.name=="string"?n.name:void 0,w=e.formConfig,k={formId:w?.formId||t.formId||m||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)(ft,{formId:k.formId,formConfig:k,initialValues:k.initialValues,actions:e.actions,nodeId:e.id,document:p,onDiagnostic:c,children:(0,R.jsx)(ht,{id:i,name:m,action:b&&u!=="editor"?(0,Z.sanitizeUrl)(b,""):void 0,method:x,target:h,autoComplete:v,style:r,onClick:a,mode:u,dataKubuildNode:e.id,children:d})})}case"input":{let b=typeof n.name=="string"?n.name:void 0,x=typeof n.type=="string"?n.type:"text",h=typeof n.placeholder=="string"?n.placeholder:void 0,v=n.defaultValue!==void 0?n.defaultValue:void 0,m=n.required===!0,w=n.disabled===!0,k=n.readOnly===!0,C=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,P=n.transform||t.transform;return(0,R.jsx)(xt,{id:i,name:b,type:x,placeholder:h,defaultValue:v,required:m,disabled:w,readOnly:k,rules:C,validateOn:S,transform:P,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"textarea":{let b=typeof n.name=="string"?n.name:void 0,x=typeof n.placeholder=="string"?n.placeholder:void 0,h=n.defaultValue!==void 0?n.defaultValue:void 0,v=typeof n.rows=="number"?n.rows:4,m=n.required===!0,w=n.disabled===!0,k=n.readOnly===!0,C=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,P=n.transform||t.transform;return(0,R.jsx)(vt,{id:i,name:b,placeholder:x,defaultValue:h,rows:v,required:m,disabled:w,readOnly:k,rules:C,validateOn:S,transform:P,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"select":{let b=typeof n.name=="string"?n.name:void 0,x=typeof n.placeholder=="string"?n.placeholder:void 0,h=n.defaultValue!==void 0?n.defaultValue:void 0,v=n.required===!0,m=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(P=>{if(typeof P=="object"&&P!==null){let I=P;return{label:String(I.label??I.value??""),value:String(I.value??I.label??"")}}return{label:String(P),value:String(P)}});else if(typeof S=="string")try{let P=JSON.parse(S);Array.isArray(P)&&(C=P.map(I=>{if(typeof I=="object"&&I!==null){let A=I;return{label:String(A.label??A.value??""),value:String(A.value??A.label??"")}}return{label:String(I),value:String(I)}}))}catch{}return(0,R.jsx)(Rt,{id:i,name:b,placeholder:x,defaultValue:h,required:v,disabled:m,rules:w,validateOn:k,optionsList:C,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"checkbox":{let b=typeof n.name=="string"?n.name:void 0,x=String(n.label??"Checkbox"),h=n.value!==void 0?String(n.value):"yes",v=n.defaultChecked===!0,m=n.required===!0,w=n.disabled===!0,k=e.formConfig?.rules||n.rules||t.rules||[],C=n.validateOn||t.validateOn,S=u==="editor"&&y&&!(0,M.isVariableBinding)(t.label);return(0,R.jsx)(kt,{id:i,name:b,label:x,value:h,defaultChecked:v,required:m,disabled:w,rules:k,validateOn:C,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:s})}case"radio":{let b=typeof n.name=="string"?n.name:void 0,x=String(n.label??"Radio"),h=n.value!==void 0?String(n.value):"option",v=n.defaultChecked===!0,m=n.required===!0,w=n.disabled===!0,k=n.rules||t.rules||[],C=n.validateOn||t.validateOn,S=u==="editor"&&y&&!(0,M.isVariableBinding)(t.label);return(0,R.jsx)(Ct,{id:i,name:b,label:x,value:h,defaultChecked:v,required:m,disabled:w,rules:k,validateOn:C,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:s})}default:return null}}function wn(o){let{node:e,domId:i,styles:r,props:n,context:t,mode:l,handleClick:u,onDiagnostic:p,renderChildNode:c}=o;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`,d=f?(0,Z.resolveBinding)({key:f},t).value:void 0;if(!Array.isArray(d)){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 ${d===void 0?"nothing":typeof d}.`};return p?.(y),t?.onDiagnostic?.(y),l==="editor"?(0,R.jsxs)("div",{id:i,"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:u,children:[(0,R.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[(0,R.jsx)(de.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:d===void 0?"nothing":typeof d}),"."]})]}):(0,R.jsx)("div",{id:i,"data-kubuild-node":e.id,style:{display:"contents"},"data-kubuild-empty-collection":"invalid-source"})}let g=e.children||[];return g.length===0||d.length===0?(0,R.jsx)("div",{id:i,style:r,onClick:u,"data-kubuild-node":e.id,"data-kubuild-collection-empty":d.length===0?"true":void 0,children:d.length===0&&l==="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:i,style:r,onClick:u,"data-kubuild-node":e.id,children:d.map((y,b)=>{let x={...t,variables:{...t.variables,[a]:y,[s]:b}},h=`__iter_${b}`;return(0,R.jsx)(bn.default.Fragment,{children:g.map(v=>c(v,h,x))},`collection-item-${b}`)})})}function $n(o){let{node:e,domId:i,styles:r,handleClick:n,mode:t,childrenElements:l}=o;return t==="editor"?(0,R.jsxs)("div",{id:i,style:{...r,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)(de.Puzzle,{size:16}),(0,R.jsxs)("span",{children:["Unknown Component: ",e.type]}),(0,R.jsxs)("span",{style:{fontSize:"12px",color:"#94a3b8"},children:["(",e.id,")"]})]}),l]}):(0,R.jsx)("div",{id:i,style:r,onClick:n,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:l})}function At(o){let e=yn(o);if(e)return e;let i=hn(o);if(i)return i;let r=xn(o);if(r)return r;let n=vn(o);if(n)return n;let t=Rn(o);if(t)return t;let l=kn(o);if(l)return l;let u=Cn(o);if(u)return u;let p=wn(o);if(p)return p;let c=Pt(o);return c||$n(o)}var _=require("react/jsx-runtime");function io(o,e){if(!o)return!1;try{let i=Ee.default,r=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(!!(r&&(r.H||r.ReactCurrentDispatcher?.current))){let{isOpen:t}=rt(o,e);return t}}catch{}return e.isModalOpen(o)}function ye({node:o,document:e,registry:i,context:r,viewport:n="desktop",mode:t="runtime",onNodeClick:l,onDiagnostic:u,onActionDispatch:p,onNodePropChange:c,selectedNodeId:f,instanceSuffix:a=""}){let s=r||ce,d=Ze(o.styles,n),g=o.props||{},y=i.get(o.type),b=a?`${o.id}${a}`:o.id,{props:x,diagnostics:h}=Qt(o,y,s);h.forEach(q=>{u?.(q),s?.onDiagnostic?.(q)}),yt(o,{document:e,context:s,onDiagnostic:u,onActionDispatch:p,mode:t});let v=async q=>{q.stopPropagation(),l&&l(o.id,q),o.actions&&o.actions.length>0&&!g.disabled&&await H({node:o,trigger:"click",document:e,context:s,onDiagnostic:u,onActionDispatch:p}),g.action&&!g.disabled&&(Ge({action:g.action,nodeId:o.id,document:e,context:s,onDiagnostic:u}),p&&(0,Sn.isActionBinding)(g.action)&&p(g.action.type,Ye(s,g.action.payload),o.id))},m=o.children?.map(q=>(0,_.jsx)(ye,{node:q,document:e,registry:i,context:s,viewport:n,mode:t,onNodeClick:l,onDiagnostic:u,onActionDispatch:p,onNodePropChange:c,selectedNodeId:f,instanceSuffix:a},`${q.id}${a}`)),w=(q,xe="",Ae=s)=>(0,_.jsx)(ye,{node:q,document:e,registry:i,context:Ae,viewport:n,mode:t,onNodeClick:l,onDiagnostic:u,onActionDispatch:p,onNodePropChange:c,selectedNodeId:f,instanceSuffix:`${a}${xe}`},`${q.id}${a}${xe}`),k=g.modalId||g.modalNodeId||g.targetModalId,C=s?.modalManager||Q,S=k?C.hasState(k):!1,P=io(k,C),I=S?P:!!g.defaultOpen,A={...d},O=o.type==="modal"||o.type==="drawer"||o.type==="collapsible";(g.modalId||g.modalNodeId)&&o.type!=="button"&&o.type!=="link"&&!O&&!I&&(A.display="none");let K;try{K=At({node:o,document:e,registry:i,context:s,viewport:n,mode:t,styles:A,props:g,resolvedProps:x,definition:y,domId:b,childrenElements:m,handleClick:v,onNodeClick:l,onDiagnostic:u,onActionDispatch:p,onNodePropChange:c,selectedNodeId:f,instanceSuffix:a,isModalOpen:I,renderChildNode:w})}catch(q){t==="editor"?K=(0,_.jsxs)("div",{"data-kubuild-node":o.id,"data-kubuild-error":o.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,_.jsxs)("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[(0,_.jsx)(En.AlertTriangle,{size:14,"aria-hidden":"true"}),(0,_.jsxs)("span",{children:["Component Render Error: <",o.type,">"]})]}),(0,_.jsxs)("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",(0,_.jsx)("code",{children:o.id})," \u2014 ",q instanceof Error?q.message:String(q)]})]}):K=(0,_.jsx)("div",{"data-kubuild-node":o.id,"data-kubuild-error":o.type,style:{display:"none"},"aria-hidden":"true"})}return(0,_.jsx)($e,{nodeId:o.id,componentType:o.type,mode:t,onDiagnostic:u,children:K})}var ao=({document:o,registry:e=(0,Tn.createDefaultComponentRegistry)(),context:i,viewport:r="desktop",mode:n="runtime",className:t,showToastContainer:l=!0,onNodeClick:u,onDiagnostic:p,onActionDispatch:c,onNodePropChange:f,selectedNodeId:a})=>{if(!o||!o.document)return(0,_.jsx)("div",{className:t,children:"Empty Document"});let s=Ee.default.useMemo(()=>Qe(o),[o]),d=Ee.default.useMemo(()=>we(o),[o]);return(0,_.jsx)(ze,{value:i,children:(0,_.jsxs)("div",{className:`kubuild-canvas-root ${t||""}`,children:[s?(0,_.jsx)("style",{"data-kubuild-state-styles":!0,children:s}):null,d?(0,_.jsx)("style",{"data-kubuild-animation-styles":!0,children:d}):null,(0,_.jsx)(ye,{node:o.document,document:o,registry:e,context:i,viewport:r,mode:n,onNodeClick:u,onDiagnostic:p,onActionDispatch:c,onNodePropChange:f,selectedNodeId:a}),l&&(0,_.jsx)(pt,{})]})})},Pe=Ee.default.memo(ao);var It=ge(require("react"),1),Pn=ge(require("react-dom"),1),An=require("@kubuild/components");var te=require("react/jsx-runtime");function Nt(o){let e=o.document?.document;if(e)return e.children?.[0]??void 0}function In(o,e){return o.filter(i=>i.artboardType==="component"&&!!i.triggerId&&!!e[i.triggerId]&&!!Nt(i))}var qe=({artboards:o,registry:e,context:i=ce,viewport:r="desktop",mode:n="runtime",modalManager:t,container:l,onDiagnostic:u,onActionDispatch:p})=>{let c=t||Q,{modals:f}=it(c),a=It.default.useMemo(()=>e||(0,An.createDefaultComponentRegistry)(),[e]),s=It.default.useMemo(()=>(o??i.componentArtboards??[]).filter(b=>b.artboardType==="component"),[o,i.componentArtboards]);if(n==="editor")return null;let d=In(s,f);if(d.length===0)return null;let g=l!==void 0?l:typeof globalThis.document<"u"?globalThis.document.body:null;return g?(0,te.jsx)(te.Fragment,{children:d.map(y=>{let b=Nt(y);return b?Pn.default.createPortal((0,te.jsx)("div",{"data-kubuild-artboard-portal":y.id,style:{pointerEvents:"auto"},children:(0,te.jsx)(ye,{node:b,document:y.document,registry:a,context:i,viewport:r,mode:"runtime",onDiagnostic:u,onActionDispatch:p})},y.id),g,y.id):null})}):null},so=({componentArtboards:o,modalManager:e,portalContainer:i,...r})=>(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)(Pe,{...r}),(0,te.jsx)(qe,{artboards:o,registry:r.registry,context:r.context,viewport:r.viewport,mode:r.mode,modalManager:e,container:i,onDiagnostic:r.onDiagnostic,onActionDispatch:r.onActionDispatch})]});var he=require("react");var j=require("react/jsx-runtime"),Ft=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}}),Nn=Object.freeze({mobile:480,tablet:768,desktop:1024});function lo(o,e){let i={...Nn,...e};return o<=i.mobile?"mobile":o<=i.tablet?"tablet":"desktop"}function Dt(o,e){let i=Ft[o]||Ft.desktop,r=e?.[o];return{...i,...r}}function Fn(o,e,i){let r=Dt(o,e),n=i??r.scale??1,t=u=>typeof u=="number"?`${u}px`:u,l={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&&(l.transform=`scale(${n})`,l.transformOrigin="top center"),l}var Dn=({document:o,viewport:e="desktop",onViewportChange:i,viewportConfigs:r,breakpoints:n,registry:t,context:l,mode:u="runtime",showChrome:p=!1,chromeTitle:c,editorOverlay:f,scale:a,className:s,style:d,canvasClassName:g,canvasStyle:y,onNodeClick:b,onDiagnostic:x,onActionDispatch:h,componentArtboards:v})=>{let[m,w]=(0,he.useState)(null),k=v??l?.componentArtboards,C=(0,he.useMemo)(()=>Dt(e,r),[e,r]),S=(0,he.useMemo)(()=>Fn(e,r,a),[e,r,a]),P=(0,he.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",...d},children:[p&&(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||o.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"}`})]}),i&&(0,j.jsx)("div",{"data-testid":"viewport-switcher",style:{display:"flex",gap:"4px",backgroundColor:"#0f172a",padding:"2px",borderRadius:"6px"},children:["desktop","tablet","mobile"].map(I=>{let A=e===I;return(0,j.jsx)("button",{type:"button","data-testid":`viewport-btn-${I}`,onClick:()=>i(I),style:{padding:"4px 10px",fontSize:"11px",fontWeight:500,borderRadius:"4px",border:"none",cursor:"pointer",textTransform:"capitalize",backgroundColor:A?"#3b82f6":"transparent",color:A?"#ffffff":"#94a3b8",transition:"all 0.15s ease"},children:I},I)})})]}),(0,j.jsxs)("div",{"data-kubuild-preview-canvas":!0,"data-viewport":e,className:`kubuild-preview-canvas ${g||""}`,style:P,children:[(0,j.jsx)(Pe,{document:o,registry:t,context:l,viewport:e,mode:u,onNodeClick:b,onDiagnostic:x,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"}}),m&&(0,j.jsx)(qe,{artboards:k,registry:t,context:l,viewport:e,mode:u,container:m,onDiagnostic:x,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})]})]})},co=Dn;function L(o){return o==null?"":String(o).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function E(o){return L(o)}function uo(o){if(!o||typeof o!="string")return null;let e=o.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function po(o){if(!o||typeof o!="string")return null;let e=o.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function X(o,e,i){let r=" ".repeat(e*(i.indentSize??2)),n=" ".repeat((e+1)*(i.indentSize??2)),t=o.props||{},l=o.children||[],p=i.includeNodeClasses!==!1?`kb-node-${o.id}`:"",c=(...a)=>a.filter(Boolean).join(" "),f=t.id?` id="${E(t.id)}"`:"";switch(o.type){case"page":{let a=i.rootTag||"main",s=c("kb-page",p),d=l.map(g=>X(g,e+1,i)).join(`
121
- `);return d?`${r}<${a} class="${s}"${f}>
120
+ ${n}</style>`}):""}var bt=({id:r,style:e,onClick:o,dataKubuildNode:i,html:n,role:t})=>{let l=(0,le.useRef)(null),u=(0,le.useRef)(null),p=(0,le.useMemo)(()=>pn(n),[n]);return ro(()=>{let c=l.current;if(c){if(typeof c.attachShadow=="function"){if(!u.current)if(c.shadowRoot)u.current=c.shadowRoot;else try{u.current=c.attachShadow({mode:"open"})}catch{u.current=c.shadowRoot}if(u.current){u.current.innerHTML=p;return}}c.innerHTML=p}},[p]),(0,mt.jsx)("div",{ref:l,id:r,style:e,onClick:o,"data-kubuild-node":i,role:t,children:(0,mt.jsx)("template",{shadowrootmode:"open",dangerouslySetInnerHTML:{__html:p}})})};var be=require("react");var Te=ge(require("react"),1),fn=require("@kubuild/core");async function H(r){let{node:e,trigger:o,document:i,context:n,formContext:t,extraContext:l,onDiagnostic:u,onActionDispatch:p,executor:c}=r;if(!e.actions||!Array.isArray(e.actions)||e.actions.length===0)return{executed:!1,success:!0};let f=e.actions.filter(d=>d.trigger===o&&d.enabled!==!1);if(f.length===0)return{executed:!1,success:!0};let a=c||new fn.ActionPipelineExecutor;Se(a);let s={form:t?{...t.values}:{},variables:n?.variables?{...n.variables}:{},nodeId:e.id,document:i,toastManager:n?.toastManager,modalManager:n?.modalManager,...l||{}};for(let d of f){let g=await a.execute(d,{context:s});if(p&&d.steps.length>0&&p(d.steps[0].type,d.steps[0].payload,e.id),!g.success){let y=g.error instanceof Error?g.error.message:String(g.error||`Action pipeline "${d.id}" failed`),b={code:"ACTION_EXECUTION_ERROR",actionType:d.steps[0]?.type||o,nodeId:e.id,message:y,error:g.error};return u?.(b),n?.onDiagnostic?.(b),{executed:!0,success:!1,error:g.error}}}return{executed:!0,success:!0}}function yt(r,e){if(!r.actions?.some(t=>t.trigger==="load"&&t.enabled!==!1))return;let i=Te.default?.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||Te.default?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(i?.H||i?.ReactCurrentDispatcher?.current)try{(0,Te.useEffect)(()=>{e.mode!=="editor"&&H({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 D=require("react/jsx-runtime"),ht=({id:r,name:e,action:o,method:i="POST",target:n,autoComplete:t,style:l,onClick:u,mode:p,dataKubuildNode:c,children:f})=>{let a=ee();return(0,D.jsx)("form",{id:r,name:e,action:o,method:i,target:n,autoComplete:t,style:l,onClick:u,onSubmit:g=>{if(p==="editor"){g.preventDefault();return}a&&a.handleFormSubmit(g)},onReset:()=>{a&&a.resetForm()},"data-kubuild-node":c,role:"form","aria-label":e,children:f})},xt=({id:r,name:e,type:o="text",placeholder:i,defaultValue:n,required:t,disabled:l,readOnly:u,rules:p,validateOn:c,transform:f,style:a,onClick:s,actions:d,nodeId:g,document:y,renderContext:b,onDiagnostic:x,onActionDispatch:h,dataKubuildNode:v})=>{let m=ee();if(m&&e&&m.registerField({name:e,defaultValue:n,required:t,disabled:l,rules:p||[],validateOn:c,transform:f}),(0,be.useEffect)(()=>{if(!m||!e)return;let V=m.registerField({name:e,defaultValue:n,required:t,disabled:l,rules:p||[],validateOn:c,transform:f});return()=>{V()}},[m,e,n,t,l,p,c,f]),!m||!e)return(0,D.jsx)("input",{id:r,type:o,name:e,placeholder:i,defaultValue:n!==void 0?String(n):void 0,required:t,disabled:l,readOnly:u,style:a,onClick:s,"data-kubuild-node":v});let w=m.values[e],R=w!=null?String(w):n!=null?String(n):"",C=m.errors[e],S=!!m.touched[e],P=!!(C&&S);return(0,D.jsx)("input",{id:r,type:o,name:e,placeholder:i,value:R,onChange:V=>{let K=V.target.value;o==="number"&&(K=V.target.value===""?"":Number(V.target.value)),m.setFieldValue(e,K),d&&d.length>0&&H({node:{id:g||r||e,type:"input",actions:d},trigger:"change",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:K},onDiagnostic:x,onActionDispatch:h})},onBlur:()=>{m.setFieldTouched(e,!0),d&&d.length>0&&H({node:{id:g||r||e,type:"input",actions:d},trigger:"blur",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:h})},onFocus:()=>{d&&d.length>0&&H({node:{id:g||r||e,type:"input",actions:d},trigger:"focus",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:h})},required:t,disabled:l,readOnly:u,style:a,onClick:s,"data-kubuild-node":v,"data-field":e,"data-invalid":P?"true":void 0,"aria-invalid":P?!0:void 0,"aria-errormessage":C?`${r}-error`:void 0})},vt=({id:r,name:e,placeholder:o,defaultValue:i,rows:n=4,required:t,disabled:l,readOnly:u,rules:p,validateOn:c,transform:f,style:a,onClick:s,actions:d,nodeId:g,document:y,renderContext:b,onDiagnostic:x,onActionDispatch:h,dataKubuildNode:v})=>{let m=ee();if(m&&e&&m.registerField({name:e,defaultValue:i,required:t,disabled:l,rules:p||[],validateOn:c,transform:f}),(0,be.useEffect)(()=>{if(!m||!e)return;let V=m.registerField({name:e,defaultValue:i,required:t,disabled:l,rules:p||[],validateOn:c,transform:f});return()=>{V()}},[m,e,i,t,l,p,c,f]),!m||!e)return(0,D.jsx)("textarea",{id:r,name:e,placeholder:o,defaultValue:i!==void 0?String(i):void 0,rows:n,required:t,disabled:l,readOnly:u,style:a,onClick:s,"data-kubuild-node":v});let w=m.values[e],R=w!=null?String(w):i!=null?String(i):"",C=m.errors[e],S=!!m.touched[e],P=!!(C&&S);return(0,D.jsx)("textarea",{id:r,name:e,placeholder:o,rows:n,value:R,onChange:V=>{m.setFieldValue(e,V.target.value),d&&d.length>0&&H({node:{id:g||r||e,type:"textarea",actions:d},trigger:"change",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:V.target.value},onDiagnostic:x,onActionDispatch:h})},onBlur:()=>{m.setFieldTouched(e,!0),d&&d.length>0&&H({node:{id:g||r||e,type:"textarea",actions:d},trigger:"blur",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:h})},onFocus:()=>{d&&d.length>0&&H({node:{id:g||r||e,type:"textarea",actions:d},trigger:"focus",document:y,context:b,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:h})},required:t,disabled:l,readOnly:u,style:a,onClick:s,"data-kubuild-node":v,"data-field":e,"data-invalid":P?"true":void 0,"aria-invalid":P?!0:void 0,"aria-errormessage":C?`${r}-error`:void 0})},kt=({id:r,name:e,placeholder:o,defaultValue:i,required:n,disabled:t,rules:l,validateOn:u,optionsList:p,style:c,onClick:f,actions:a,nodeId:s,document:d,renderContext:g,onDiagnostic:y,onActionDispatch:b,dataKubuildNode:x})=>{let h=ee();if(h&&e&&h.registerField({name:e,defaultValue:i,required:n,disabled:t,rules:l||[],validateOn:u}),(0,be.useEffect)(()=>{if(!h||!e)return;let A=h.registerField({name:e,defaultValue:i,required:n,disabled:t,rules:l||[],validateOn:u});return()=>{A()}},[h,e,i,n,t,l,u]),!h||!e)return(0,D.jsxs)("select",{id:r,name:e,defaultValue:i!==void 0?String(i):"",required:n,disabled:t,style:c,onClick:f,"data-kubuild-node":x,children:[o&&(0,D.jsx)("option",{value:"",disabled:!0,children:o}),p.map((A,O)=>(0,D.jsx)("option",{value:A.value,children:A.label},O))]});let v=h.values[e],m=v!=null?String(v):i!=null?String(i):"",w=h.errors[e],R=!!h.touched[e],C=!!(w&&R);return(0,D.jsxs)("select",{id:r,name:e,value:m,onChange:A=>{h.setFieldValue(e,A.target.value),a&&a.length>0&&H({node:{id:s||r||e,type:"select",actions:a},trigger:"change",document:d,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:A.target.value},onDiagnostic:y,onActionDispatch:b})},onBlur:()=>{h.setFieldTouched(e,!0),a&&a.length>0&&H({node:{id:s||r||e,type:"select",actions:a},trigger:"blur",document:d,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:y,onActionDispatch:b})},onFocus:()=>{a&&a.length>0&&H({node:{id:s||r||e,type:"select",actions:a},trigger:"focus",document:d,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:y,onActionDispatch:b})},required:n,disabled:t,style:c,onClick:f,"data-kubuild-node":x,"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,D.jsx)("option",{value:"",disabled:!0,children:o}),p.map((A,O)=>(0,D.jsx)("option",{value:A.value,children:A.label},O))]})},Rt=({id:r,name:e,label:o="",defaultChecked:i=!1,required:n,disabled:t,rules:l,validateOn:u,style:p,onClick:c,actions:f,nodeId:a,document:s,renderContext:d,onDiagnostic:g,onActionDispatch:y,dataKubuildNode:b,isEditable:x,onNodePropChange:h})=>{let v=ee();v&&e&&v.registerField({name:e,defaultValue:i,required:n,disabled:t,rules:l||[],validateOn:u}),(0,be.useEffect)(()=>{if(!v||!e)return;let C=v.registerField({name:e,defaultValue:i,required:n,disabled:t,rules:l||[],validateOn:u});return()=>{C()}},[v,e,i,n,t,l,u]);let m=v&&e&&v.values[e]!==void 0?!!v.values[e]:i;return(0,D.jsxs)("label",{id:r,style:p,onClick:c,"data-kubuild-node":b,children:[(0,D.jsx)("input",{type:"checkbox",name:e,checked:m,onChange:C=>{v&&e&&(v.setFieldValue(e,C.target.checked),f&&f.length>0&&H({node:{id:a||r||e,type:"checkbox",actions:f},trigger:"change",document:s,context:d,formContext:v,extraContext:{fieldName:e,fieldValue:C.target.checked},onDiagnostic:g,onActionDispatch:y}))},onBlur:()=>{v&&e&&(v.setFieldTouched(e,!0),f&&f.length>0&&H({node:{id:a||r||e,type:"checkbox",actions:f},trigger:"blur",document:s,context:d,formContext:v,extraContext:{fieldName:e,fieldValue:m},onDiagnostic:g,onActionDispatch:y}))},required:n,disabled:t,style:{cursor:t?"not-allowed":"pointer"},"data-field":e}),x?(0,D.jsx)(G,{as:"span",value:o,isEditable:x,nodeId:b||"",onChange:(C,S)=>h?.(b||"","label",C,S)}):(0,D.jsx)("span",{children:o})]})},Ct=({id:r,name:e,label:o="",value:i="",defaultChecked:n=!1,required:t,disabled:l,rules:u,validateOn:p,style:c,onClick:f,actions:a,nodeId:s,document:d,renderContext:g,onDiagnostic:y,onActionDispatch:b,dataKubuildNode:x,isEditable:h,onNodePropChange:v})=>{let m=ee();m&&e&&m.registerField({name:e,defaultValue:n?i:void 0,required:t,disabled:l,rules:u||[],validateOn:p}),(0,be.useEffect)(()=>{if(!m||!e)return;let S=m.registerField({name:e,defaultValue:n?i:void 0,required:t,disabled:l,rules:u||[],validateOn:p});return()=>{S()}},[m,e,n,i,t,l,u,p]);let w=m&&e&&m.values[e]!==void 0?m.values[e]===i:n;return(0,D.jsxs)("label",{id:r,style:c,onClick:f,"data-kubuild-node":x,children:[(0,D.jsx)("input",{type:"radio",name:e,value:i,checked:w,onChange:()=>{m&&e&&(m.setFieldValue(e,i),a&&a.length>0&&H({node:{id:s||r||e,type:"radio",actions:a},trigger:"change",document:d,context:g,formContext:m,extraContext:{fieldName:e,fieldValue:i},onDiagnostic:y,onActionDispatch:b}))},onBlur:()=>{m&&e&&(m.setFieldTouched(e,!0),a&&a.length>0&&H({node:{id:s||r||e,type:"radio",actions:a},trigger:"blur",document:d,context:g,formContext:m,extraContext:{fieldName:e,fieldValue:i},onDiagnostic:y,onActionDispatch:b}))},required:t,disabled:l,style:{cursor:l?"not-allowed":"pointer"},"data-field":e}),h?(0,D.jsx)(G,{as:"span",value:o,isEditable:h,nodeId:x||"",onChange:(S,P)=>v?.(x||"","label",S,P)}):(0,D.jsx)("span",{children:o})]})};async function gn(r){let{event:e,buttonType:o,disabled:i,formRuntime:n,onClick:t,node:l,actions:u,document:p,renderContext:c,onDiagnostic:f,onActionDispatch:a,executeActions:s=H}=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 d=l||(u?{id:"button",type:"button",actions:u}:void 0);d?.actions&&d.actions.length>0&&await s({node:d,trigger:"click",document:p,context:c,formContext:n,onDiagnostic:f,onActionDispatch:a})}var wt=({id:r,buttonType:e,disabled:o,ariaLabel:i,style:n,onClick:t,actions:l,node:u,document:p,renderContext:c,onDiagnostic:f,onActionDispatch:a,dataKubuildNode:s,actionAttrs:d,children:g})=>{let y=ee(),b=y?.isSubmitting===!0,x=o||e==="submit"&&b;return(0,D.jsx)("button",{id:r,type:e,disabled:x,"aria-disabled":x?!0:void 0,"aria-label":i,"aria-busy":e==="submit"&&b?!0:void 0,tabIndex:x?-1:0,style:n,onClick:x?void 0:async v=>{await gn({event:v,buttonType:e,disabled:x,formRuntime:y,onClick:t,node:u||(l?{id:s||r||"button",type:"button",actions:l}:void 0),document:p,renderContext:c,onDiagnostic:f,onActionDispatch:a})},"data-kubuild-node":s,...d,children:g})};function $t(r){return r?r.replace(/[-_](\w)/g,(e,o)=>o.toUpperCase()).replace(/^\w/,e=>e.toUpperCase()):""}function St(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 Tt(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 Et(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 Le=ge(require("react"),1),mn=require("@kubuild/schema");var W=require("react/jsx-runtime");function Pt(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,childrenElements:l,handleClick:u,context:p,mode:c,isModalOpen:f}=r,a=n.modalId||t.modalId||e.id,s=String(a).trim(),d=p?.modalManager||Q,g=c==="editor"&&p?.artboardSurface==="component";switch(e.type){case"modal":{if(!f&&c==="runtime")return(0,W.jsx)(Le.default.Fragment,{});let y=n.backdrop!==!1&&t.backdrop!==!1,b=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,x=n.showCloseButton!==!1&&t.showCloseButton!==!1,h=n.title??t.title,v=h!==void 0?String(h):void 0,m=n.size||t.size||"md",w=m==="sm"?"400px":m==="lg"?"768px":m==="fullscreen"?"100%":"560px",R=m==="fullscreen"?"100%":"auto";return(0,W.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: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:C=>{C.target===C.currentTarget&&b&&c==="runtime"&&d.closeModal(s)},children:(0,W.jsxs)("div",{id:o,style:{...i,position:"relative",boxSizing:"border-box",maxWidth:w,height:R,width:"100%"},onClick:u,"data-kubuild-node":e.id,role:"dialog","aria-modal":"true","aria-label":typeof v=="string"?v:"Modal Dialog",children:[x&&(0,W.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(),d.closeModal(s)},children:"\u2715"}),v&&(0,W.jsx)("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(v)}),l]})})}case"drawer":{if(!f&&c==="runtime")return(0,W.jsx)(Le.default.Fragment,{});let y=n.placement||t.placement||"right",b=n.backdrop!==!1&&t.backdrop!==!1,x=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,h=n.showCloseButton!==!1&&t.showCloseButton!==!1,v=n.title??t.title,m=v!==void 0?String(v):void 0,w=y==="top"||y==="bottom";return(0,W.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: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&&x&&c==="runtime"&&d.closeModal(s)},children:(0,W.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:u,"data-kubuild-node":e.id,role:"region","aria-label":typeof m=="string"?m:"Drawer",children:[h&&(0,W.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(),d.closeModal(s)},children:"\u2715"}),m&&(0,W.jsx)("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(m)}),l]})})}case"collapsible":return(0,W.jsx)("div",{id:o,style:{...i,display:(c==="editor"?!0:!!f)?i.display||"block":"none"},onClick:u,"data-kubuild-node":e.id,"data-kubuild-collapsible":s,children:l});case mn.ARTBOARD_REFERENCE_NODE_TYPE:{if(c==="runtime")return(0,W.jsx)(Le.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,W.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:u,"data-kubuild-node":e.id,"data-kubuild-artboard-reference":y,title:`Opens artboard "${b}" \u2014 edit it on its own canvas surface`,children:[(0,W.jsx)("span",{"aria-hidden":"true",children:"\u29C9"}),(0,W.jsx)("span",{children:`Opens: ${b}`})]})}default:return null}}var k=require("react/jsx-runtime");function yn(r){let{node:e,document:o,definition:i,resolvedProps:n,styles:t,context:l,childrenElements:u,handleClick:p}=r;if(i?.renderer&&typeof i.renderer=="function"){let c=i.renderer;return typeof c=="function"&&!c.prototype?.isReactComponent?c({node:e,document:o,props:n,styles:t,context:l,children:u,onClick:p}):(0,k.jsx)(c,{node:e,document:o,props:n,styles:t,context:l,onClick:p,children:u})}return null}function hn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,handleClick:l,childrenElements:u}=r;switch(e.type){case"page":return(0,k.jsx)("div",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,children:u});case"section":{let p=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return(0,k.jsx)("section",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,"aria-label":p,children:u})}case"container":return(0,k.jsx)("div",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,children:u});case"columns":return(0,k.jsx)("div",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,children:u});case"flex":case"grid":{let p=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return(0,k.jsx)("div",{id:o,style:i,onClick:l,"data-kubuild-node":e.id,"aria-label":p,children:u})}default:return null}}function xn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,mode:l,handleClick:u,onNodePropChange:p,childrenElements:c,selectedNodeId:f}=r,a=e.id===f;switch(e.type){case"heading":{let s=typeof n.level=="number"?n.level:1,d=`h${Math.min(Math.max(s,1),6)}`||"h1",g=String(n.text??n.content??t.text??t.content??""),y=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,k.jsx)(G,{as:d,id:o,style:i,value:g,isEditable:y,nodeId:e.id,onClick:u,onChange:(b,x)=>p?.(e.id,"text",b,x)})}case"text":{let s=String(n.text??n.content??t.text??t.content??""),d=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=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,k.jsx)(G,{as:d,id:o,style:i,value:s,isEditable:g,nodeId:e.id,onClick:u,onChange:(y,b)=>p?.(e.id,"text",y,b)})}case"paragraph":{let s=String(n.text??n.content??t.text??t.content??""),d=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.content);return(0,k.jsx)(G,{as:"p",id:o,style:i,value:s,isEditable:d,nodeId:e.id,onClick:u,onChange:(g,y)=>p?.(e.id,"text",g,y)})}case"link":{let s=String(n.text??n.label??n.content??t.text??t.label??t.content??""),d=typeof n.href=="string"?n.href:"#",g=typeof n.target=="string"?n.target:void 0,y=l==="editor"&&a&&!(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,x=l==="editor"?void 0:(0,Z.sanitizeUrl)(d,"#"),h=v=>{l==="editor"&&v.preventDefault(),u(v)};return y?(0,k.jsx)(G,{as:"a",id:o,style:i,value:s,isEditable:y,nodeId:e.id,onClick:h,onChange:(v,m)=>{let w="text"in t?"text":"label";p?.(e.id,w,v,m)},href:x,target:g,rel:b}):(0,k.jsx)("a",{id:o,style:i,href:x,target:g,rel:b,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,d=typeof n.cite=="string"?n.cite:typeof t.cite=="string"?t.cite:void 0,g=l==="editor"&&a&&!(0,M.isVariableBinding)(t.quote)&&!(0,M.isVariableBinding)(t.text),y={borderLeft:"4px solid #cbd5e1",paddingLeft:"1rem",margin:"1rem 0",fontStyle:"italic",color:"#475569",...i};return(0,k.jsxs)("blockquote",{id:o,style:y,onClick:u,"data-kubuild-node":e.id,cite:d,children:[s!==void 0?g?(0,k.jsx)(G,{as:"p",value:s,isEditable:g,nodeId:e.id,onChange:(b,x)=>{let h="quote"in t?"quote":"text";p?.(e.id,h,b,x)}}):(0,k.jsx)("p",{children:s}):null,c,d&&(0,k.jsxs)("cite",{style:{display:"block",fontStyle:"normal",fontSize:"0.875rem",marginTop:"0.5rem",color:"#64748b"},children:["\u2014 ",d]})]})}case"badge":{let s=String(n.text??n.label??t.text??t.label??""),d=typeof n.variant=="string"?n.variant:typeof t.variant=="string"?t.variant:"default",g=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&!(0,M.isVariableBinding)(t.label);return(0,k.jsx)("span",{id:o,style:i,onClick:u,"data-kubuild-node":e.id,"data-variant":d,"data-badge-variant":d,children:g?(0,k.jsx)(G,{as:"span",value:s,isEditable:g,nodeId:e.id,onChange:(y,b)=>{let x="text"in t?"text":"label";p?.(e.id,x,y,b)}}):s})}case"code-block":{let s=String(n.code??t.code??""),d=typeof n.language=="string"?n.language:typeof t.language=="string"?t.language:"plaintext";return l==="editor"?(0,k.jsx)("pre",{id:o,style:i,onClick:u,"data-kubuild-node":e.id,"data-language":d,children:(0,k.jsx)("code",{className:`language-${d}`,contentEditable:!0,suppressContentEditableWarning:!0,onBlur:g=>p?.(e.id,"code",g.currentTarget.textContent??"",!0),children:s})}):(0,k.jsx)("pre",{id:o,style:i,onClick:u,"data-kubuild-node":e.id,"data-language":d,children:(0,k.jsx)("code",{className:`language-${d}`,children:s})})}default:return null}}function vn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,mode:l,handleClick:u,onNodePropChange:p,childrenElements:c,selectedNodeId:f}=r,a=e.id===f;switch(e.type){case"list":{let d=(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={...i,...y?{listStyleType:y}:{}};return(0,k.jsx)(d,{id:o,style:b,onClick:u,"data-kubuild-node":e.id,"data-list-style":g,children:c})}case"list-item":{let s=n.text!==void 0?String(n.text):t.text!==void 0?String(t.text):void 0,d=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&s!==void 0;return(0,k.jsxs)("li",{id:o,style:i,onClick:u,"data-kubuild-node":e.id,children:[s!==void 0&&(d?(0,k.jsx)(G,{as:"span",value:s,isEditable:d,nodeId:e.id,onChange:(g,y)=>p?.(e.id,"text",g,y)}):s),c]})}default:return null}}function kn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,mode:l,handleClick:u,onNodePropChange:p,childrenElements:c,selectedNodeId:f}=r,a=e.id===f;switch(e.type){case"table":{let s=typeof n.cellPadding=="number"?n.cellPadding:void 0,d=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,x=n.hover===!0||t.hover===!0,h=n.compact===!0||t.compact===!0;return(0,k.jsx)("table",{id:o,style:i,cellPadding:s,cellSpacing:d,border:g,onClick:u,"data-kubuild-node":e.id,"data-striped":y?"true":void 0,"data-bordered":b?"true":void 0,"data-hover":x?"true":void 0,"data-compact":h?"true":void 0,children:(0,k.jsx)("tbody",{children:c})})}case"table-row":return(0,k.jsx)("tr",{id:o,style:i,onClick:u,"data-kubuild-node":e.id,children:c});case"table-cell":{let d=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,x=l==="editor"&&a&&!(0,M.isVariableBinding)(t.text)&&b!==void 0;return(0,k.jsxs)(d,{id:o,colSpan:g,rowSpan:y,style:i,onClick:u,"data-kubuild-node":e.id,children:[b!==void 0&&(x?(0,k.jsx)(G,{as:"span",value:b,isEditable:x,nodeId:e.id,onChange:(h,v)=>p?.(e.id,"text",h,v)}):b),c]})}default:return null}}function Rn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,context:l,mode:u,handleClick:p}=r;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=Fe(l?.assetProvider,c.assetId)||c.fallbackUrl:typeof c=="string"&&(f=Fe(l?.assetProvider,c)||c);let a=typeof n.alt=="string"?n.alt:typeof t.alt=="string"?t.alt:"",s=typeof n.fit=="string"?n.fit:void 0,d=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,x=i?.objectFit,h={...i,...s&&x===void 0?{objectFit:s}:{}};return(0,k.jsx)("img",{id:o,src:b,alt:a,role:a===""?"presentation":void 0,loading:d,width:g,height:y,style:h,onClick:p,"data-kubuild-node":e.id})}case"video":{let c=n.src??n.url??t.src??t.url,f=typeof c=="string"?c:void 0,a=typeof n.poster=="string"?n.poster:void 0,s=n.controls!==!1,d=n.autoplay===!0,g=n.loop===!0,y=n.muted===!0,b=n.playsInline!==!1,x=n.aspectRatio,h={position:"relative",width:i.width||"100%",...x?{aspectRatio:Et(x)}:{},...i},v=f?St(f):null,m=f?Tt(f):null;if(v){let C=`https://www.youtube.com/embed/${v}?autoplay=${d?1:0}&loop=${g?1:0}&mute=${y?1:0}&controls=${s?1:0}`,S=(0,Z.sanitizeUrl)(C,"");return(0,k.jsx)("div",{id:o,"data-video-provider":"youtube",style:h,onClick:p,"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 C=`https://player.vimeo.com/video/${m}?autoplay=${d?1:0}&loop=${g?1:0}&muted=${y?1:0}`,S=(0,Z.sanitizeUrl)(C,"");return(0,k.jsx)("div",{id:o,"data-video-provider":"vimeo",style:h,onClick:p,"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 w=f?(0,Z.sanitizeUrl)(f,""):void 0,R=a?(0,Z.sanitizeUrl)(a,""):void 0;return(0,k.jsx)("video",{id:o,src:w,poster:R,controls:s,autoPlay:d,loop:g,muted:y,playsInline:b,style:h,onClick:p,"data-kubuild-node":e.id})}case"icon":{let c=typeof n.name=="string"?n.name:"Square",f=typeof n.size=="number"?n.size:24,a=typeof n.color=="string"?n.color:"currentColor",s=typeof n.strokeWidth=="number"?n.strokeWidth:2,d=$t(c),g=de.icons[d]||de.icons[c]||de.Package;return(0,k.jsx)("span",{id:o,"data-icon-name":c,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",...i},onClick:p,"data-kubuild-node":e.id,children:(0,k.jsx)(g,{size:f,color:a,strokeWidth:s})})}case"html-embed":{let c=typeof n.html=="string"?n.html:"",a=n.sanitize!==!1?(0,Z.sanitizeHtml)(c):c;return!a.trim()&&u==="editor"?(0,k.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:p,"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)(bt,{id:o,style:i,html:a,onClick:p,dataKubuildNode:e.id})}default:return null}}function Cn(r){let{node:e,domId:o,styles:i,resolvedProps:n,props:t,context:l,mode:u,document:p,onDiagnostic:c,onActionDispatch:f,handleClick:a,onNodePropChange:s,childrenElements:d,selectedNodeId:g}=r,y=e.id===g;switch(e.type){case"button":{let b=n.label??n.text??n.content??t.label??t.text??t.content??"Button",x=n.activeLabel??t.activeLabel,h=String(r.isModalOpen&&x?x:b),v=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,w=n.buttonType??n.type??t.buttonType??t.type,R=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,P=u==="editor"&&y&&t.isEditable!==!1&&!(0,M.isVariableBinding)(t.label)&&!(0,M.isVariableBinding)(t.text),I=typeof n.rel=="string"?n.rel:typeof t.rel=="string"?t.rel:m==="_blank"?"noopener noreferrer":void 0,A={};if(t.action&&!C){let O=typeof t.action=="object"?t.action.type:t.action;if(A["data-kubuild-action"]=O,l?.actionRegistry){let V=Xe(l.actionRegistry,O);A["data-kubuild-action-resolved"]=V?"true":"false"}}if(v&&!C){let O=u==="editor"?void 0:(0,Z.sanitizeUrl)(v,"#");return(0,k.jsx)("a",{id:o,href:O,target:m,rel:I,tabIndex:0,style:i,onClick:a,"data-kubuild-node":e.id,"aria-label":S,...A,children:h})}return P?(0,k.jsx)(G,{as:"button",id:o,type:u==="editor"?"button":R,disabled:C,"aria-disabled":C?!0:void 0,"aria-label":S,tabIndex:C?-1:0,style:i,value:h,isEditable:P,nodeId:e.id,onClick:C?void 0:a,onChange:(O,V)=>s?.(e.id,"label",O,V),...A}):(0,k.jsx)(wt,{id:o,buttonType:u==="editor"?"button":R,disabled:C,ariaLabel:S,style:i,onClick:C?void 0:a,actions:e.actions,node:e,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,actionAttrs:A,children:h})}case"form":{let b=typeof n.action=="string"?n.action:void 0,x=typeof n.method=="string"?n.method:"POST",h=typeof n.target=="string"?n.target:void 0,v=typeof n.autoComplete=="string"?n.autoComplete:void 0,m=typeof n.name=="string"?n.name:void 0,w=e.formConfig,R={formId:w?.formId||t.formId||m||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,k.jsx)(ft,{formId:R.formId,formConfig:R,initialValues:R.initialValues,actions:e.actions,nodeId:e.id,document:p,onDiagnostic:c,children:(0,k.jsx)(ht,{id:o,name:m,action:b&&u!=="editor"?(0,Z.sanitizeUrl)(b,""):void 0,method:x,target:h,autoComplete:v,style:i,onClick:a,mode:u,dataKubuildNode:e.id,children:d})})}case"input":{let b=typeof n.name=="string"?n.name:void 0,x=typeof n.type=="string"?n.type:"text",h=typeof n.placeholder=="string"?n.placeholder:void 0,v=n.defaultValue!==void 0?n.defaultValue:void 0,m=n.required===!0,w=n.disabled===!0,R=n.readOnly===!0,C=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,P=n.transform||t.transform;return(0,k.jsx)(xt,{id:o,name:b,type:x,placeholder:h,defaultValue:v,required:m,disabled:w,readOnly:R,rules:C,validateOn:S,transform:P,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"textarea":{let b=typeof n.name=="string"?n.name:void 0,x=typeof n.placeholder=="string"?n.placeholder:void 0,h=n.defaultValue!==void 0?n.defaultValue:void 0,v=typeof n.rows=="number"?n.rows:4,m=n.required===!0,w=n.disabled===!0,R=n.readOnly===!0,C=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,P=n.transform||t.transform;return(0,k.jsx)(vt,{id:o,name:b,placeholder:x,defaultValue:h,rows:v,required:m,disabled:w,readOnly:R,rules:C,validateOn:S,transform:P,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"select":{let b=typeof n.name=="string"?n.name:void 0,x=typeof n.placeholder=="string"?n.placeholder:void 0,h=n.defaultValue!==void 0?n.defaultValue:void 0,v=n.required===!0,m=n.disabled===!0,w=e.formConfig?.rules||n.rules||t.rules||[],R=n.validateOn||t.validateOn,C=[],S=n.options??t.options;if(Array.isArray(S))C=S.map(P=>{if(typeof P=="object"&&P!==null){let I=P;return{label:String(I.label??I.value??""),value:String(I.value??I.label??"")}}return{label:String(P),value:String(P)}});else if(typeof S=="string")try{let P=JSON.parse(S);Array.isArray(P)&&(C=P.map(I=>{if(typeof I=="object"&&I!==null){let A=I;return{label:String(A.label??A.value??""),value:String(A.value??A.label??"")}}return{label:String(I),value:String(I)}}))}catch{}return(0,k.jsx)(kt,{id:o,name:b,placeholder:x,defaultValue:h,required:v,disabled:m,rules:w,validateOn:R,optionsList:C,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id})}case"checkbox":{let b=typeof n.name=="string"?n.name:void 0,x=String(n.label??"Checkbox"),h=n.value!==void 0?String(n.value):"yes",v=n.defaultChecked===!0,m=n.required===!0,w=n.disabled===!0,R=e.formConfig?.rules||n.rules||t.rules||[],C=n.validateOn||t.validateOn,S=u==="editor"&&y&&!(0,M.isVariableBinding)(t.label);return(0,k.jsx)(Rt,{id:o,name:b,label:x,value:h,defaultChecked:v,required:m,disabled:w,rules:R,validateOn:C,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:s})}case"radio":{let b=typeof n.name=="string"?n.name:void 0,x=String(n.label??"Radio"),h=n.value!==void 0?String(n.value):"option",v=n.defaultChecked===!0,m=n.required===!0,w=n.disabled===!0,R=n.rules||t.rules||[],C=n.validateOn||t.validateOn,S=u==="editor"&&y&&!(0,M.isVariableBinding)(t.label);return(0,k.jsx)(Ct,{id:o,name:b,label:x,value:h,defaultChecked:v,required:m,disabled:w,rules:R,validateOn:C,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:p,renderContext:l,onDiagnostic:c,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:s})}default:return null}}function wn(r){let{node:e,domId:o,styles:i,props:n,context:t,mode:l,handleClick:u,onDiagnostic:p,renderChildNode:c}=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`,d=f?(0,Z.resolveBinding)({key:f},t).value:void 0;if(!Array.isArray(d)){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 ${d===void 0?"nothing":typeof d}.`};return p?.(y),t?.onDiagnostic?.(y),l==="editor"?(0,k.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:u,children:[(0,k.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[(0,k.jsx)(de.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:d===void 0?"nothing":typeof d}),"."]})]}):(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||d.length===0?(0,k.jsx)("div",{id:o,style:i,onClick:u,"data-kubuild-node":e.id,"data-kubuild-collection-empty":d.length===0?"true":void 0,children:d.length===0&&l==="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:i,onClick:u,"data-kubuild-node":e.id,children:d.map((y,b)=>{let x={...t,variables:{...t.variables,[a]:y,[s]:b}},h=`__iter_${b}`;return(0,k.jsx)(bn.default.Fragment,{children:g.map(v=>c(v,h,x))},`collection-item-${b}`)})})}function $n(r){let{node:e,domId:o,styles:i,handleClick:n,mode:t,childrenElements:l}=r;return t==="editor"?(0,k.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,k.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",color:"#64748b"},children:[(0,k.jsx)(de.Puzzle,{size:16}),(0,k.jsxs)("span",{children:["Unknown Component: ",e.type]}),(0,k.jsxs)("span",{style:{fontSize:"12px",color:"#94a3b8"},children:["(",e.id,")"]})]}),l]}):(0,k.jsx)("div",{id:o,style:i,onClick:n,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:l})}function At(r){let e=yn(r);if(e)return e;let o=hn(r);if(o)return o;let i=xn(r);if(i)return i;let n=vn(r);if(n)return n;let t=kn(r);if(t)return t;let l=Rn(r);if(l)return l;let u=Cn(r);if(u)return u;let p=wn(r);if(p)return p;let c=Pt(r);return c||$n(r)}var _=require("react/jsx-runtime");function io(r,e){if(!r)return!1;try{let o=Ee.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}=rt(r,e);return t}}catch{}return e.isModalOpen(r)}function ye({node:r,document:e,registry:o,context:i,viewport:n="desktop",mode:t="runtime",onNodeClick:l,onDiagnostic:u,onActionDispatch:p,onNodePropChange:c,selectedNodeId:f,instanceSuffix:a=""}){let s=i||ce,d=Ze(r.styles,n),g=r.props||{},y=o.get(r.type),b=a?`${r.id}${a}`:r.id,{props:x,diagnostics:h}=Qt(r,y,s);h.forEach(q=>{u?.(q),s?.onDiagnostic?.(q)}),yt(r,{document:e,context:s,onDiagnostic:u,onActionDispatch:p,mode:t});let v=async q=>{q.stopPropagation(),l&&l(r.id,q),r.actions&&r.actions.length>0&&!g.disabled&&await H({node:r,trigger:"click",document:e,context:s,onDiagnostic:u,onActionDispatch:p}),g.action&&!g.disabled&&(Ge({action:g.action,nodeId:r.id,document:e,context:s,onDiagnostic:u}),p&&(0,Sn.isActionBinding)(g.action)&&p(g.action.type,Ye(s,g.action.payload),r.id))},m=r.children?.map(q=>(0,_.jsx)(ye,{node:q,document:e,registry:o,context:s,viewport:n,mode:t,onNodeClick:l,onDiagnostic:u,onActionDispatch:p,onNodePropChange:c,selectedNodeId:f,instanceSuffix:a},`${q.id}${a}`)),w=(q,xe="",Ae=s)=>(0,_.jsx)(ye,{node:q,document:e,registry:o,context:Ae,viewport:n,mode:t,onNodeClick:l,onDiagnostic:u,onActionDispatch:p,onNodePropChange:c,selectedNodeId:f,instanceSuffix:`${a}${xe}`},`${q.id}${a}${xe}`),R=g.modalId||g.modalNodeId||g.targetModalId,C=s?.modalManager||Q,S=R?C.hasState(R):!1,P=io(R,C),I=S?P:!!g.defaultOpen,A={...d},O=r.type==="modal"||r.type==="drawer"||r.type==="collapsible";(g.modalId||g.modalNodeId)&&r.type!=="button"&&r.type!=="link"&&!O&&!I&&(A.display="none");let K;try{K=At({node:r,document:e,registry:o,context:s,viewport:n,mode:t,styles:A,props:g,resolvedProps:x,definition:y,domId:b,childrenElements:m,handleClick:v,onNodeClick:l,onDiagnostic:u,onActionDispatch:p,onNodePropChange:c,selectedNodeId:f,instanceSuffix:a,isModalOpen:I,renderChildNode:w})}catch(q){t==="editor"?K=(0,_.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,_.jsxs)("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[(0,_.jsx)(En.AlertTriangle,{size:14,"aria-hidden":"true"}),(0,_.jsxs)("span",{children:["Component Render Error: <",r.type,">"]})]}),(0,_.jsxs)("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",(0,_.jsx)("code",{children:r.id})," \u2014 ",q instanceof Error?q.message:String(q)]})]}):K=(0,_.jsx)("div",{"data-kubuild-node":r.id,"data-kubuild-error":r.type,style:{display:"none"},"aria-hidden":"true"})}return(0,_.jsx)($e,{nodeId:r.id,componentType:r.type,mode:t,onDiagnostic:u,children:K})}var ao=({document:r,registry:e=(0,Tn.createDefaultComponentRegistry)(),context:o,viewport:i="desktop",mode:n="runtime",className:t,showToastContainer:l=!0,onNodeClick:u,onDiagnostic:p,onActionDispatch:c,onNodePropChange:f,selectedNodeId:a})=>{if(!r||!r.document)return(0,_.jsx)("div",{className:t,children:"Empty Document"});let s=Ee.default.useMemo(()=>Qe(r),[r]),d=Ee.default.useMemo(()=>we(r),[r]);return(0,_.jsx)(ze,{value:o,children:(0,_.jsxs)("div",{className:`kubuild-canvas-root ${t||""}`,children:[s?(0,_.jsx)("style",{"data-kubuild-state-styles":!0,children:s}):null,d?(0,_.jsx)("style",{"data-kubuild-animation-styles":!0,children:d}):null,(0,_.jsx)(ye,{node:r.document,document:r,registry:e,context:o,viewport:i,mode:n,onNodeClick:u,onDiagnostic:p,onActionDispatch:c,onNodePropChange:f,selectedNodeId:a}),l&&(0,_.jsx)(pt,{})]})})},Pe=Ee.default.memo(ao);var It=ge(require("react"),1),Pn=ge(require("react-dom"),1),An=require("@kubuild/components");var te=require("react/jsx-runtime");function Nt(r){let e=r.document?.document;if(e)return e.children?.[0]??void 0}function In(r,e){return r.filter(o=>o.artboardType==="component"&&!!o.triggerId&&!!e[o.triggerId]&&!!Nt(o))}var qe=({artboards:r,registry:e,context:o=ce,viewport:i="desktop",mode:n="runtime",modalManager:t,container:l,onDiagnostic:u,onActionDispatch:p})=>{let c=t||Q,{modals:f}=it(c),a=It.default.useMemo(()=>e||(0,An.createDefaultComponentRegistry)(),[e]),s=It.default.useMemo(()=>(r??o.componentArtboards??[]).filter(b=>b.artboardType==="component"),[r,o.componentArtboards]);if(n==="editor")return null;let d=In(s,f);if(d.length===0)return null;let g=l!==void 0?l:typeof globalThis.document<"u"?globalThis.document.body:null;return g?(0,te.jsx)(te.Fragment,{children:d.map(y=>{let b=Nt(y);return b?Pn.default.createPortal((0,te.jsx)("div",{"data-kubuild-artboard-portal":y.id,style:{pointerEvents:"auto"},children:(0,te.jsx)(ye,{node:b,document:y.document,registry:a,context:o,viewport:i,mode:"runtime",onDiagnostic:u,onActionDispatch:p})},y.id),g,y.id):null})}):null},so=({componentArtboards:r,modalManager:e,portalContainer:o,...i})=>(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)(Pe,{...i}),(0,te.jsx)(qe,{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 he=require("react");var j=require("react/jsx-runtime"),Ft=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}}),Nn=Object.freeze({mobile:480,tablet:768,desktop:1024});function lo(r,e){let o={...Nn,...e};return r<=o.mobile?"mobile":r<=o.tablet?"tablet":"desktop"}function Dt(r,e){let o=Ft[r]||Ft.desktop,i=e?.[r];return{...o,...i}}function Fn(r,e,o){let i=Dt(r,e),n=o??i.scale??1,t=u=>typeof u=="number"?`${u}px`:u,l={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&&(l.transform=`scale(${n})`,l.transformOrigin="top center"),l}var Dn=({document:r,viewport:e="desktop",onViewportChange:o,viewportConfigs:i,breakpoints:n,registry:t,context:l,mode:u="runtime",showChrome:p=!1,chromeTitle:c,editorOverlay:f,scale:a,className:s,style:d,canvasClassName:g,canvasStyle:y,onNodeClick:b,onDiagnostic:x,onActionDispatch:h,componentArtboards:v})=>{let[m,w]=(0,he.useState)(null),R=v??l?.componentArtboards,C=(0,he.useMemo)(()=>Dt(e,i),[e,i]),S=(0,he.useMemo)(()=>Fn(e,i,a),[e,i,a]),P=(0,he.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",...d},children:[p&&(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||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(I=>{let A=e===I;return(0,j.jsx)("button",{type:"button","data-testid":`viewport-btn-${I}`,onClick:()=>o(I),style:{padding:"4px 10px",fontSize:"11px",fontWeight:500,borderRadius:"4px",border:"none",cursor:"pointer",textTransform:"capitalize",backgroundColor:A?"#3b82f6":"transparent",color:A?"#ffffff":"#94a3b8",transition:"all 0.15s ease"},children:I},I)})})]}),(0,j.jsxs)("div",{"data-kubuild-preview-canvas":!0,"data-viewport":e,className:`kubuild-preview-canvas ${g||""}`,style:P,children:[(0,j.jsx)(Pe,{document:r,registry:t,context:l,viewport:e,mode:u,onNodeClick:b,onDiagnostic:x,onActionDispatch:h}),R&&R.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"}}),m&&(0,j.jsx)(qe,{artboards:R,registry:t,context:l,viewport:e,mode:u,container:m,onDiagnostic:x,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})]})]})},co=Dn;function L(r){return r==null?"":String(r).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function E(r){return L(r)}function uo(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 po(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 X(r,e,o){let i=" ".repeat(e*(o.indentSize??2)),n=" ".repeat((e+1)*(o.indentSize??2)),t=r.props||{},l=r.children||[],p=o.includeNodeClasses!==!1?`kb-node-${r.id}`:"",c=(...a)=>a.filter(Boolean).join(" "),f=t.id?` id="${E(t.id)}"`:"";switch(r.type){case"page":{let a=o.rootTag||"main",s=c("kb-page",p),d=l.map(g=>X(g,e+1,o)).join(`
121
+ `);return d?`${i}<${a} class="${s}"${f}>
122
122
  ${d}
123
- ${r}</${a}>`:`${r}<${a} class="${s}"${f}></${a}>`}case"section":{let a=t.ariaLabel?` aria-label="${E(t.ariaLabel)}"`:"",s=c("kb-section",p),d=l.map(g=>X(g,e+1,i)).join(`
124
- `);return d?`${r}<section class="${s}"${f}${a}>
123
+ ${i}</${a}>`:`${i}<${a} class="${s}"${f}></${a}>`}case"section":{let a=t.ariaLabel?` aria-label="${E(t.ariaLabel)}"`:"",s=c("kb-section",p),d=l.map(g=>X(g,e+1,o)).join(`
124
+ `);return d?`${i}<section class="${s}"${f}${a}>
125
125
  ${d}
126
- ${r}</section>`:`${r}<section class="${s}"${f}${a}></section>`}case"container":{let a=c("kb-container",p),s=l.map(d=>X(d,e+1,i)).join(`
127
- `);return s?`${r}<div class="${a}"${f}>
126
+ ${i}</section>`:`${i}<section class="${s}"${f}${a}></section>`}case"container":{let a=c("kb-container",p),s=l.map(d=>X(d,e+1,o)).join(`
127
+ `);return s?`${i}<div class="${a}"${f}>
128
128
  ${s}
129
- ${r}</div>`:`${r}<div class="${a}"${f}></div>`}case"columns":{let a=c("kb-columns",p),s=l.map(d=>X(d,e+1,i)).join(`
130
- `);return s?`${r}<div class="${a}"${f}>
129
+ ${i}</div>`:`${i}<div class="${a}"${f}></div>`}case"columns":{let a=c("kb-columns",p),s=l.map(d=>X(d,e+1,o)).join(`
130
+ `);return s?`${i}<div class="${a}"${f}>
131
131
  ${s}
132
- ${r}</div>`:`${r}<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",d=c("kb-heading",p);return`${r}<${a} class="${d}"${f}>${L(s)}</${a}>`}case"paragraph":{let a=t.text??t.value??t.content??"",s=c("kb-paragraph",p);return`${r}<p class="${s}"${f}>${L(a)}</p>`}case"text":{let a=t.as||"p",s=t.text??t.value??t.content??"",d=c("kb-text",p);return`${r}<${a} class="${d}"${f}>${L(s)}</${a}>`}case"link":{let a=t.href?` href="${E(t.href)}"`:' href="#"',s=t.target?` target="${E(t.target)}"`:"",d=t.rel?` rel="${E(t.rel)}"`:s.includes("_blank")?' rel="noopener noreferrer"':"",g=t.text??t.label??t.value,y=c("kb-link",p);if(l.length>0){let b=l.map(x=>X(x,e+1,i)).join(`
133
- `);return`${r}<a class="${y}"${f}${a}${s}${d}>
132
+ ${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",d=c("kb-heading",p);return`${i}<${a} class="${d}"${f}>${L(s)}</${a}>`}case"paragraph":{let a=t.text??t.value??t.content??"",s=c("kb-paragraph",p);return`${i}<p class="${s}"${f}>${L(a)}</p>`}case"text":{let a=t.as||"p",s=t.text??t.value??t.content??"",d=c("kb-text",p);return`${i}<${a} class="${d}"${f}>${L(s)}</${a}>`}case"link":{let a=t.href?` href="${E(t.href)}"`:' href="#"',s=t.target?` target="${E(t.target)}"`:"",d=t.rel?` rel="${E(t.rel)}"`:s.includes("_blank")?' rel="noopener noreferrer"':"",g=t.text??t.label??t.value,y=c("kb-link",p);if(l.length>0){let b=l.map(x=>X(x,e+1,o)).join(`
133
+ `);return`${i}<a class="${y}"${f}${a}${s}${d}>
134
134
  ${b}
135
- ${r}</a>`}return`${r}<a class="${y}"${f}${a}${s}${d}>${L(g??"Link")}</a>`}case"blockquote":{let a=t.cite?` cite="${E(t.cite)}"`:"",s=t.quote??t.text??t.value,d=t.author??t.citeAuthor,g=c("kb-blockquote",p);if(s||d){let y=s?`${n}<p>${L(s)}</p>`:"",b=d?`${n}<cite>${L(d)}</cite>`:"",x=[y,b].filter(Boolean).join(`
136
- `);return`${r}<blockquote class="${g}"${f}${a}>
135
+ ${i}</a>`}return`${i}<a class="${y}"${f}${a}${s}${d}>${L(g??"Link")}</a>`}case"blockquote":{let a=t.cite?` cite="${E(t.cite)}"`:"",s=t.quote??t.text??t.value,d=t.author??t.citeAuthor,g=c("kb-blockquote",p);if(s||d){let y=s?`${n}<p>${L(s)}</p>`:"",b=d?`${n}<cite>${L(d)}</cite>`:"",x=[y,b].filter(Boolean).join(`
136
+ `);return`${i}<blockquote class="${g}"${f}${a}>
137
137
  ${x}
138
- ${r}</blockquote>`}if(l.length>0){let y=l.map(b=>X(b,e+1,i)).join(`
139
- `);return`${r}<blockquote class="${g}"${f}${a}>
138
+ ${i}</blockquote>`}if(l.length>0){let y=l.map(b=>X(b,e+1,o)).join(`
139
+ `);return`${i}<blockquote class="${g}"${f}${a}>
140
140
  ${y}
141
- ${r}</blockquote>`}return`${r}<blockquote class="${g}"${f}${a}></blockquote>`}case"badge":{let a=t.text??t.label??t.value??"Badge",s=c("kb-badge",p);return`${r}<span class="${s}"${f}>${L(a)}</span>`}case"code-block":{let a=t.code??t.text??t.value??"",s=t.language||t.lang,d=s?` class="language-${E(s)}"`:"",g=c("kb-code-block",p);return`${r}<pre class="${g}"${f}><code${d}>${L(a)}</code></pre>`}case"divider":{let a=c("kb-divider",p),s=t.text??t.label;return s?`${r}<div class="${a}"${f} role="separator"><span>${L(s)}</span></div>`:`${r}<hr class="${a}"${f} />`}case"spacer":{let a=c("kb-spacer",p);return`${r}<div class="${a}"${f} aria-hidden="true"></div>`}case"image":{let a=t.src?` src="${E(t.src)}"`:' src=""',s=t.alt?` alt="${E(t.alt)}"`:' alt=""',d=t.loading?` loading="${E(t.loading)}"`:' loading="lazy"',g=c("kb-image",p);return`${r}<img class="${g}"${f}${a}${s}${d} />`}case"video":{let a=t.src||"",s=uo(a),d=po(a),g=c("kb-video",p);if(s)return`${r}<div class="kb-video-wrapper ${p}"${f}>
141
+ ${i}</blockquote>`}return`${i}<blockquote class="${g}"${f}${a}></blockquote>`}case"badge":{let a=t.text??t.label??t.value??"Badge",s=c("kb-badge",p);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,d=s?` class="language-${E(s)}"`:"",g=c("kb-code-block",p);return`${i}<pre class="${g}"${f}><code${d}>${L(a)}</code></pre>`}case"divider":{let a=c("kb-divider",p),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=c("kb-spacer",p);return`${i}<div class="${a}"${f} aria-hidden="true"></div>`}case"image":{let a=t.src?` src="${E(t.src)}"`:' src=""',s=t.alt?` alt="${E(t.alt)}"`:' alt=""',d=t.loading?` loading="${E(t.loading)}"`:' loading="lazy"',g=c("kb-image",p);return`${i}<img class="${g}"${f}${a}${s}${d} />`}case"video":{let a=t.src||"",s=uo(a),d=po(a),g=c("kb-video",p);if(s)return`${i}<div class="kb-video-wrapper ${p}"${f}>
142
142
  ${n}<iframe src="https://www.youtube-nocookie.com/embed/${E(s)}" title="${E(t.title||"Video player")}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
143
- ${r}</div>`;if(d)return`${r}<div class="kb-video-wrapper ${p}"${f}>
143
+ ${i}</div>`;if(d)return`${i}<div class="kb-video-wrapper ${p}"${f}>
144
144
  ${n}<iframe src="https://player.vimeo.com/video/${E(d)}" title="${E(t.title||"Video player")}" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
145
- ${r}</div>`;let y=t.poster?` poster="${E(t.poster)}"`:"",b=t.controls!==!1?" controls":"",x=t.autoplay?" autoplay":"",h=t.loop?" loop":"",v=t.muted?" muted":"",m=a?` src="${E(a)}"`:"";return`${r}<video class="${g}"${f}${m}${y}${b}${x}${h}${v}></video>`}case"icon":{let a=t.name||t.icon||"star",s=t.ariaLabel?` aria-label="${E(t.ariaLabel)}"`:' aria-hidden="true"',d=c("kb-icon",p);return`${r}<span class="${d}"${f}${s} data-icon="${E(a)}"></span>`}case"html-embed":{let a=t.html??t.content??"",s=c("kb-html-embed",p);return a?`${r}<div class="${s}"${f}>
145
+ ${i}</div>`;let y=t.poster?` poster="${E(t.poster)}"`:"",b=t.controls!==!1?" controls":"",x=t.autoplay?" autoplay":"",h=t.loop?" loop":"",v=t.muted?" muted":"",m=a?` src="${E(a)}"`:"";return`${i}<video class="${g}"${f}${m}${y}${b}${x}${h}${v}></video>`}case"icon":{let a=t.name||t.icon||"star",s=t.ariaLabel?` aria-label="${E(t.ariaLabel)}"`:' aria-hidden="true"',d=c("kb-icon",p);return`${i}<span class="${d}"${f}${s} data-icon="${E(a)}"></span>`}case"html-embed":{let a=t.html??t.content??"",s=c("kb-html-embed",p);return a?`${i}<div class="${s}"${f}>
146
146
  ${n}${a}
147
- ${r}</div>`:`${r}<div class="${s}"${f}></div>`}case"button":{let a=t.label??t.text??t.value??"Button",s=t.type?` type="${E(t.type)}"`:' type="button"',d=t.disabled?" disabled":"",g=c("kb-button",p);if(t.href){let y=` href="${E(t.href)}"`,b=t.target?` target="${E(t.target)}"`:"";return`${r}<a class="${g}"${f}${y}${b}>${L(a)}</a>`}return`${r}<button class="${g}"${f}${s}${d}>${L(a)}</button>`}case"form":{let a=t.action?` action="${E(t.action)}"`:"",s=t.method?` method="${E(t.method)}"`:' method="POST"',d=c("kb-form",p),g=l.map(y=>X(y,e+1,i)).join(`
148
- `);return g?`${r}<form class="${d}"${f}${a}${s}>
147
+ ${i}</div>`:`${i}<div class="${s}"${f}></div>`}case"button":{let a=t.label??t.text??t.value??"Button",s=t.type?` type="${E(t.type)}"`:' type="button"',d=t.disabled?" disabled":"",g=c("kb-button",p);if(t.href){let y=` href="${E(t.href)}"`,b=t.target?` target="${E(t.target)}"`:"";return`${i}<a class="${g}"${f}${y}${b}>${L(a)}</a>`}return`${i}<button class="${g}"${f}${s}${d}>${L(a)}</button>`}case"form":{let a=t.action?` action="${E(t.action)}"`:"",s=t.method?` method="${E(t.method)}"`:' method="POST"',d=c("kb-form",p),g=l.map(y=>X(y,e+1,o)).join(`
148
+ `);return g?`${i}<form class="${d}"${f}${a}${s}>
149
149
  ${g}
150
- ${r}</form>`:`${r}<form class="${d}"${f}${a}${s}></form>`}case"input":{let a=t.type?` type="${E(t.type)}"`:' type="text"',s=t.name?` name="${E(t.name)}"`:"",d=t.placeholder?` placeholder="${E(t.placeholder)}"`:"",g=t.value!==void 0?` value="${E(t.value)}"`:"",y=t.required?" required":"",b=t.disabled?" disabled":"",x=c("kb-input",p);return`${r}<input class="${x}"${f}${a}${s}${d}${g}${y}${b} />`}case"textarea":{let a=t.name?` name="${E(t.name)}"`:"",s=t.placeholder?` placeholder="${E(t.placeholder)}"`:"",d=t.rows?` rows="${E(t.rows)}"`:' rows="4"',g=t.value??t.defaultValue??"",y=t.required?" required":"",b=t.disabled?" disabled":"",x=c("kb-textarea",p);return`${r}<textarea class="${x}"${f}${a}${s}${d}${y}${b}>${L(g)}</textarea>`}case"select":{let a=t.name?` name="${E(t.name)}"`:"",s=t.required?" required":"",d=t.disabled?" disabled":"",g=c("kb-select",p),y=Array.isArray(t.options)?t.options:[],b=" ".repeat((e+1)*(i.indentSize??2)),x=y.map(h=>{let v=typeof h=="object"?h.value:h,m=typeof h=="object"?h.label:h,w=t.value===v||t.defaultValue===v?" selected":"";return`${b}<option value="${E(v)}"${w}>${L(m)}</option>`}).join(`
151
- `);return x?`${r}<select class="${g}"${f}${a}${s}${d}>
150
+ ${i}</form>`:`${i}<form class="${d}"${f}${a}${s}></form>`}case"input":{let a=t.type?` type="${E(t.type)}"`:' type="text"',s=t.name?` name="${E(t.name)}"`:"",d=t.placeholder?` placeholder="${E(t.placeholder)}"`:"",g=t.value!==void 0?` value="${E(t.value)}"`:"",y=t.required?" required":"",b=t.disabled?" disabled":"",x=c("kb-input",p);return`${i}<input class="${x}"${f}${a}${s}${d}${g}${y}${b} />`}case"textarea":{let a=t.name?` name="${E(t.name)}"`:"",s=t.placeholder?` placeholder="${E(t.placeholder)}"`:"",d=t.rows?` rows="${E(t.rows)}"`:' rows="4"',g=t.value??t.defaultValue??"",y=t.required?" required":"",b=t.disabled?" disabled":"",x=c("kb-textarea",p);return`${i}<textarea class="${x}"${f}${a}${s}${d}${y}${b}>${L(g)}</textarea>`}case"select":{let a=t.name?` name="${E(t.name)}"`:"",s=t.required?" required":"",d=t.disabled?" disabled":"",g=c("kb-select",p),y=Array.isArray(t.options)?t.options:[],b=" ".repeat((e+1)*(o.indentSize??2)),x=y.map(h=>{let v=typeof h=="object"?h.value:h,m=typeof h=="object"?h.label:h,w=t.value===v||t.defaultValue===v?" selected":"";return`${b}<option value="${E(v)}"${w}>${L(m)}</option>`}).join(`
151
+ `);return x?`${i}<select class="${g}"${f}${a}${s}${d}>
152
152
  ${x}
153
- ${r}</select>`:`${r}<select class="${g}"${f}${a}${s}${d}></select>`}case"checkbox":{let a=t.name?` name="${E(t.name)}"`:"",s=t.checked||t.defaultChecked?" checked":"",d=t.label??t.text??"",g=c("kb-checkbox-label",p);return`${r}<label class="${g}"${f}><input type="checkbox"${a}${s} /><span>${L(d)}</span></label>`}case"radio":{let a=t.name?` name="${E(t.name)}"`:"",s=t.value?` value="${E(t.value)}"`:"",d=t.checked||t.defaultChecked?" checked":"",g=t.label??t.text??"",y=c("kb-radio-label",p);return`${r}<label class="${y}"${f}><input type="radio"${a}${s}${d} /><span>${L(g)}</span></label>`}case"list":{let a=t.tag==="ol"||t.type==="ol"||t.ordered?"ol":"ul",s=c("kb-list",p),d=l.map(g=>X(g,e+1,i)).join(`
154
- `);return d?`${r}<${a} class="${s}"${f}>
153
+ ${i}</select>`:`${i}<select class="${g}"${f}${a}${s}${d}></select>`}case"checkbox":{let a=t.name?` name="${E(t.name)}"`:"",s=t.checked||t.defaultChecked?" checked":"",d=t.label??t.text??"",g=c("kb-checkbox-label",p);return`${i}<label class="${g}"${f}><input type="checkbox"${a}${s} /><span>${L(d)}</span></label>`}case"radio":{let a=t.name?` name="${E(t.name)}"`:"",s=t.value?` value="${E(t.value)}"`:"",d=t.checked||t.defaultChecked?" checked":"",g=t.label??t.text??"",y=c("kb-radio-label",p);return`${i}<label class="${y}"${f}><input type="radio"${a}${s}${d} /><span>${L(g)}</span></label>`}case"list":{let a=t.tag==="ol"||t.type==="ol"||t.ordered?"ol":"ul",s=c("kb-list",p),d=l.map(g=>X(g,e+1,o)).join(`
154
+ `);return d?`${i}<${a} class="${s}"${f}>
155
155
  ${d}
156
- ${r}</${a}>`:`${r}<${a} class="${s}"${f}></${a}>`}case"list-item":{let a=t.text??t.value,s=c("kb-list-item",p);if(l.length>0){let d=l.map(g=>X(g,e+1,i)).join(`
157
- `);return`${r}<li class="${s}"${f}>
156
+ ${i}</${a}>`:`${i}<${a} class="${s}"${f}></${a}>`}case"list-item":{let a=t.text??t.value,s=c("kb-list-item",p);if(l.length>0){let d=l.map(g=>X(g,e+1,o)).join(`
157
+ `);return`${i}<li class="${s}"${f}>
158
158
  ${d}
159
- ${r}</li>`}return`${r}<li class="${s}"${f}>${L(a??"List item")}</li>`}case"table":{let a=c("kb-table",p),s=l.map(d=>X(d,e+1,i)).join(`
160
- `);return s?`${r}<table class="${a}"${f}>
159
+ ${i}</li>`}return`${i}<li class="${s}"${f}>${L(a??"List item")}</li>`}case"table":{let a=c("kb-table",p),s=l.map(d=>X(d,e+1,o)).join(`
160
+ `);return s?`${i}<table class="${a}"${f}>
161
161
  ${s}
162
- ${r}</table>`:`${r}<table class="${a}"${f}></table>`}case"table-row":{let a=c("kb-table-row",p),s=l.map(d=>X(d,e+1,i)).join(`
163
- `);return s?`${r}<tr class="${a}"${f}>
162
+ ${i}</table>`:`${i}<table class="${a}"${f}></table>`}case"table-row":{let a=c("kb-table-row",p),s=l.map(d=>X(d,e+1,o)).join(`
163
+ `);return s?`${i}<tr class="${a}"${f}>
164
164
  ${s}
165
- ${r}</tr>`:`${r}<tr class="${a}"${f}></tr>`}case"table-cell":{let s=t.isHeader||t.type==="header"||t.tag==="th"?"th":"td",d=t.colSpan&&Number(t.colSpan)>1?` colspan="${E(t.colSpan)}"`:"",g=t.rowSpan&&Number(t.rowSpan)>1?` rowspan="${E(t.rowSpan)}"`:"",y=t.text??t.value??"",b=c("kb-table-cell",p);if(l.length>0){let x=l.map(h=>X(h,e+1,i)).join(`
166
- `);return`${r}<${s} class="${b}"${f}${d}${g}>
165
+ ${i}</tr>`:`${i}<tr class="${a}"${f}></tr>`}case"table-cell":{let s=t.isHeader||t.type==="header"||t.tag==="th"?"th":"td",d=t.colSpan&&Number(t.colSpan)>1?` colspan="${E(t.colSpan)}"`:"",g=t.rowSpan&&Number(t.rowSpan)>1?` rowspan="${E(t.rowSpan)}"`:"",y=t.text??t.value??"",b=c("kb-table-cell",p);if(l.length>0){let x=l.map(h=>X(h,e+1,o)).join(`
166
+ `);return`${i}<${s} class="${b}"${f}${d}${g}>
167
167
  ${x}
168
- ${r}</${s}>`}return`${r}<${s} class="${b}"${f}${d}${g}>${L(y)}</${s}>`}case"collection":{let a=c("kb-collection",p),s=l.map(d=>X(d,e+1,i)).join(`
169
- `);return s?`${r}<div class="${a}"${f}>
168
+ ${i}</${s}>`}return`${i}<${s} class="${b}"${f}${d}${g}>${L(y)}</${s}>`}case"collection":{let a=c("kb-collection",p),s=l.map(d=>X(d,e+1,o)).join(`
169
+ `);return s?`${i}<div class="${a}"${f}>
170
170
  ${s}
171
- ${r}</div>`:`${r}<div class="${a}"${f}></div>`}default:{let a=c(`kb-${o.type}`,p),s=l.map(d=>X(d,e+1,i)).join(`
172
- `);return s?`${r}<div class="${a}"${f}>
171
+ ${i}</div>`:`${i}<div class="${a}"${f}></div>`}default:{let a=c(`kb-${r.type}`,p),s=l.map(d=>X(d,e+1,o)).join(`
172
+ `);return s?`${i}<div class="${a}"${f}>
173
173
  ${s}
174
- ${r}</div>`:`${r}<div class="${a}"${f}></div>`}}}function Mn(o,e={}){let i="document"in o?o.document:o;return i?X(i,0,e):""}function je(o,e,i=""){if(!e.trim())return"";let r=e.split(";").map(t=>t.trim()).filter(Boolean);if(r.length===0)return"";let n=r.map(t=>`${i} ${t};`).join(`
175
- `);return`${i}${o} {
174
+ ${i}</div>`:`${i}<div class="${a}"${f}></div>`}}}function Mn(r,e={}){let o="document"in r?r.document:r;return o?X(o,0,e):""}function je(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(`
175
+ `);return`${o}${r} {
176
176
  ${n}
177
- ${i}}`}function On(o,e={}){let i="document"in o?o.document:o;if(!i)return"";let r=e.classPrefix||"kb-node-",n=[],t=[],l=[],u=[],p=s=>{let d=`.${r}${s.id}`;if(s.styles){let g={...s.styles.base||{},...s.styles.desktop||{}},y=fe(g);if(y&&n.push(je(d,y)),s.styles.tablet){let b=fe(s.styles.tablet);b&&t.push(je(d,b," "))}if(s.styles.mobile){let b=fe(s.styles.mobile);b&&l.push(je(d,b," "))}if(s.styles.states&&typeof s.styles.states=="object")for(let[b,x]of Object.entries(s.styles.states)){if(!x)continue;let h=/^::?[a-zA-Z-]+$/.test(b)?b:null;if(!h)continue;let v=fe(x);v&&u.push(je(`${d}${h}`,v))}}s.children?.forEach(p)};p(i);let c=[];e.includeReset!==!1&&c.push(`/* ==========================================================================
177
+ ${o}}`}function On(r,e={}){let o="document"in r?r.document:r;if(!o)return"";let i=e.classPrefix||"kb-node-",n=[],t=[],l=[],u=[],p=s=>{let d=`.${i}${s.id}`;if(s.styles){let g={...s.styles.base||{},...s.styles.desktop||{}},y=fe(g);if(y&&n.push(je(d,y)),s.styles.tablet){let b=fe(s.styles.tablet);b&&t.push(je(d,b," "))}if(s.styles.mobile){let b=fe(s.styles.mobile);b&&l.push(je(d,b," "))}if(s.styles.states&&typeof s.styles.states=="object")for(let[b,x]of Object.entries(s.styles.states)){if(!x)continue;let h=/^::?[a-zA-Z-]+$/.test(b)?b:null;if(!h)continue;let v=fe(x);v&&u.push(je(`${d}${h}`,v))}}s.children?.forEach(p)};p(o);let c=[];e.includeReset!==!1&&c.push(`/* ==========================================================================
178
178
  Baseline Reset & Typography Standards
179
179
  ========================================================================== */
180
180
  ${et}`),n.length>0&&c.push(`/* ==========================================================================
@@ -201,19 +201,19 @@ ${t.join(`
201
201
  ${l.join(`
202
202
 
203
203
  `)}
204
- }`);let f="document"in o?o:{schema:"stora.page",version:"1.0.0",document:i},a=we(f);return a&&c.push(`/* ==========================================================================
204
+ }`);let f="document"in r?r:{schema:"stora.page",version:"1.0.0",document:o},a=we(f);return a&&c.push(`/* ==========================================================================
205
205
  Animations & Motion Keyframes
206
206
  ========================================================================== */
207
207
  ${a}`),c.join(`
208
208
 
209
- `)}function fo(o,e={}){let i=L(o.metadata?.title||"KUBUILD Page"),r=o.metadata?.description?E(o.metadata.description):"",n=o.metadata?.author?E(o.metadata.author):"",t=e.lang||"en",l=On(o,e.cssOptions),u=Mn(o,e.htmlOptions),p=r?` <meta name="description" content="${r}">
209
+ `)}function fo(r,e={}){let o=L(r.metadata?.title||"KUBUILD Page"),i=r.metadata?.description?E(r.metadata.description):"",n=r.metadata?.author?E(r.metadata.author):"",t=e.lang||"en",l=On(r,e.cssOptions),u=Mn(r,e.htmlOptions),p=i?` <meta name="description" content="${i}">
210
210
  `:"",c=n?` <meta name="author" content="${n}">
211
211
  `:"";return`<!DOCTYPE html>
212
212
  <html lang="${t}">
213
213
  <head>
214
214
  <meta charset="UTF-8">
215
215
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
216
- <title>${i}</title>
216
+ <title>${o}</title>
217
217
  ${p}${c} <style>
218
218
  ${l}
219
219
  </style>