@kubuild/renderer 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-dispatcher.d.ts.map +1 -1
- package/dist/action-runners/api-request.d.ts +13 -1
- package/dist/action-runners/api-request.d.ts.map +1 -1
- package/dist/artboard-portal-host.d.ts +3 -0
- package/dist/artboard-portal-host.d.ts.map +1 -1
- package/dist/code-generator.d.ts +5 -1
- package/dist/code-generator.d.ts.map +1 -1
- package/dist/form-context.d.ts.map +1 -1
- package/dist/index.cjs +88 -88
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +88 -88
- package/dist/legacy-actions.d.ts +19 -0
- package/dist/legacy-actions.d.ts.map +1 -0
- package/dist/nodes/extended-form-nodes.d.ts +118 -0
- package/dist/nodes/extended-form-nodes.d.ts.map +1 -0
- package/dist/nodes/form-nodes.d.ts.map +1 -1
- package/dist/nodes/index.d.ts +2 -0
- package/dist/nodes/index.d.ts.map +1 -1
- package/dist/nodes/radio-group-context.d.ts +12 -0
- package/dist/nodes/radio-group-context.d.ts.map +1 -0
- package/dist/preview-adapter.d.ts +5 -4
- package/dist/preview-adapter.d.ts.map +1 -1
- package/dist/prop-resolution.d.ts.map +1 -1
- package/dist/render-context.d.ts +8 -0
- package/dist/render-context.d.ts.map +1 -1
- package/dist/renderer.d.ts +31 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderers/conversion/accordion.d.ts +20 -0
- package/dist/renderers/conversion/accordion.d.ts.map +1 -0
- package/dist/renderers/conversion/carousel.d.ts +13 -0
- package/dist/renderers/conversion/carousel.d.ts.map +1 -0
- package/dist/renderers/conversion/countdown.d.ts +50 -0
- package/dist/renderers/conversion/countdown.d.ts.map +1 -0
- package/dist/renderers/conversion/divider.d.ts +9 -0
- package/dist/renderers/conversion/divider.d.ts.map +1 -0
- package/dist/renderers/conversion/index.d.ts +13 -0
- package/dist/renderers/conversion/index.d.ts.map +1 -0
- package/dist/renderers/conversion/rating.d.ts +14 -0
- package/dist/renderers/conversion/rating.d.ts.map +1 -0
- package/dist/renderers/conversion/shared.d.ts +17 -0
- package/dist/renderers/conversion/shared.d.ts.map +1 -0
- package/dist/renderers/conversion/tabs.d.ts +7 -0
- package/dist/renderers/conversion/tabs.d.ts.map +1 -0
- package/dist/renderers/extended-form-renderers.d.ts +8 -0
- package/dist/renderers/extended-form-renderers.d.ts.map +1 -0
- package/dist/renderers/index.d.ts +2 -0
- package/dist/renderers/index.d.ts.map +1 -1
- package/dist/renderers/render-node-content.d.ts.map +1 -1
- package/dist/styles.d.ts +58 -2
- package/dist/styles.d.ts.map +1 -1
- package/dist/theme.d.ts +20 -0
- package/dist/theme.d.ts.map +1 -0
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import se from"react";import{isActionBinding as Ao}from"@kubuild/schema";import{createDefaultComponentRegistry as No}from"@kubuild/components";import{createContext as pn,useContext as fn,useMemo as gn}from"react";import{resolveBinding as ke}from"@kubuild/core";import{isVariableBinding as Qe,isActionBinding as mn}from"@kubuild/schema";import{jsx as yn}from"react/jsx-runtime";var re=Object.freeze({}),et=pn(re);function bn(i){if(!i)return re;let e=i.variables?Object.freeze({...i.variables}):void 0,o=i.componentArtboards?Object.freeze([...i.componentArtboards]):void 0,r=i.resolveArtboard??(o?n=>o.find(t=>t.artboardType==="component"&&t.triggerId===n):void 0);return Object.freeze({variables:e,...i.assetProvider?{assetProvider:i.assetProvider}:{},...i.actionRegistry?{actionRegistry:i.actionRegistry}:{},...i.onDiagnostic?{onDiagnostic:i.onDiagnostic}:{},...o?{componentArtboards:o}:{},...r?{resolveArtboard:r}:{},...i.artboardSurface?{artboardSurface:i.artboardSurface}:{},...i.tracking?{tracking:Object.freeze({...i.tracking})}:{}})}function rr(i){let e=new Map(Object.entries(i?.assets??{})),o=new Map(Object.entries(i?.actions??{})),r={resolve:t=>e.get(t)||t},n={get:t=>o.get(t),register:(t,d)=>{o.set(t,d)},unregister:t=>{o.delete(t)}};return bn({variables:i?.variables,assetProvider:r,actionRegistry:n,onDiagnostic:i?.onDiagnostic})}var tt=({value:i,children:e})=>{let o=gn(()=>i||re,[i]);return yn(et.Provider,{value:o,children:e})};function nt(){return fn(et)}function Ae(i,e){if(!(!i||!e))try{let o=i.resolve(e);return typeof o=="string"?o:void 0}catch{return}}function ot(i,e){return e==null?e:Qe(e)?ke(e,i).value:typeof e=="string"&&e.includes("{{")?e.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(o,r)=>{let n=ke({key:r},i);return n.status==="resolved"?String(n.value):o}):e}function rt(i,e){if(!e||typeof e!="object")return{value:e,invalidPaths:[]};let o=[],r=(t,d)=>{if(t==null)return t;if(Qe(t)){let l=ke(t,i);return l.status==="empty"&&o.push(d),l.value}if(typeof t=="string")return t.includes("{{")?t.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(l,c)=>{let p=ke({key:c},i);return p.status!=="resolved"?(o.push(d),l):String(p.value)}):t;if(Array.isArray(t))return t.map((l,c)=>r(l,`${d}[${c}]`));if(typeof t=="object"){let l={};for(let[c,p]of Object.entries(t))l[c]=r(p,d?`${d}.${c}`:c);return l}return t},n={};for(let[t,d]of Object.entries(e))n[t]=r(d,t);return{value:n,invalidPaths:o}}function it(i,e){return rt(i,e).value}function at(i,e){return!i||!e?!1:!!i.get(e)}function st(i){let{action:e,nodeId:o,document:r,context:n,onDiagnostic:t}=i;if(!mn(e)){let f={code:"INVALID_ACTION_PAYLOAD",actionType:typeof e?.type=="string"?e.type:"unknown",nodeId:o,message:`Invalid action binding on node ${o||"unknown"}.`};return t?.(f),n?.onDiagnostic?.(f),!1}let d=n?.actionRegistry?.get(e.type);if(!d){let f={code:"UNKNOWN_ACTION",actionType:e.type,nodeId:o,message:`No action handler registered for action type "${e.type}".`};return t?.(f),n?.onDiagnostic?.(f),!1}let{value:l,invalidPaths:c}=rt(n,e.payload);if(c.length>0){let f={code:"INVALID_ACTION_BINDING",actionType:e.type,nodeId:o,message:`Action "${e.type}" payload has unresolved binding path(s) [${c.join(", ")}] on node ${o||"unknown"}; handler was not invoked.`,invalidPaths:c};return t?.(f),n?.onDiagnostic?.(f),!1}let p={nodeId:o,document:r,variables:n?.variables};try{let f=d(l,p);return f&&typeof f.catch=="function"&&f.catch(a=>{let s={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:o,message:`Action "${e.type}" handler threw an asynchronous error: ${a instanceof Error?a.message:String(a)}`,error:a};t?.(s),n?.onDiagnostic?.(s)}),!0}catch(f){let a={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:o,message:`Action "${e.type}" handler threw a synchronous error: ${f instanceof Error?f.message:String(f)}`,error:f};return t?.(a),n?.onDiagnostic?.(a),!1}}import{AlertTriangle as Do}from"lucide-react";function dt(i){if(!i||typeof i!="object")return{};let e={...i};if(e.colSpan!==void 0&&e.colSpan!==null&&e.colSpan!==""){if(!e.gridColumn){let o=String(e.colSpan).trim();e.gridColumn=o.startsWith("span")?o:`span ${o}`}delete e.colSpan}if(e.rowSpan!==void 0&&e.rowSpan!==null&&e.rowSpan!==""){if(!e.gridRow){let o=String(e.rowSpan).trim();e.gridRow=o.startsWith("span")?o:`span ${o}`}delete e.rowSpan}if(e.width==="hug"?e.width="fit-content":e.width==="fill"&&(e.width="100%",e.flex||(e.flex="1 1 0%")),e.height==="hug"?e.height="fit-content":e.height==="fill"&&(e.height="100%",e.flex||(e.flex="1 1 0%")),e.sizingMode==="hug"?(e.width=e.width||"fit-content",delete e.sizingMode):e.sizingMode==="fill"&&(e.flex||(e.flex="1 1 0%"),delete e.sizingMode),typeof e.gap=="number"&&(e.gap=`${e.gap}px`),typeof e.rowGap=="number"&&(e.rowGap=`${e.rowGap}px`),typeof e.columnGap=="number"&&(e.columnGap=`${e.columnGap}px`),typeof e.borderTopLeftRadius=="number"&&(e.borderTopLeftRadius=`${e.borderTopLeftRadius}px`),typeof e.borderTopRightRadius=="number"&&(e.borderTopRightRadius=`${e.borderTopRightRadius}px`),typeof e.borderBottomRightRadius=="number"&&(e.borderBottomRightRadius=`${e.borderBottomRightRadius}px`),typeof e.borderBottomLeftRadius=="number"&&(e.borderBottomLeftRadius=`${e.borderBottomLeftRadius}px`),typeof e.borderRadius=="number"&&(e.borderRadius=`${e.borderRadius}px`),e.backdropBlur!==void 0&&e.backdropBlur!==null&&e.backdropBlur!==""){let o=String(e.backdropBlur).trim(),n=`blur(${typeof e.backdropBlur=="number"||/^\d+$/.test(o)?`${o}px`:o})`;e.backdropFilter=n,e.WebkitBackdropFilter=n,delete e.backdropBlur}else e.backdropFilter&&typeof e.backdropFilter=="string"&&(e.WebkitBackdropFilter=e.backdropFilter);if(e.gradient&&typeof e.gradient=="string"?(e.backgroundImage=e.gradient,delete e.gradient):e.backgroundGradient&&typeof e.backgroundGradient=="string"&&(e.backgroundImage=e.backgroundGradient,delete e.backgroundGradient),e.backgroundImage&&typeof e.backgroundImage=="string"){let o=e.backgroundImage.trim();o!==""&&o!=="none"&&!o.startsWith("url(")&&!o.includes("gradient(")&&(o.startsWith("http://")||o.startsWith("https://")||o.startsWith("data:")||o.startsWith("blob:")||o.startsWith("/")||o.startsWith("./"))&&(e.backgroundImage=`url("${o}")`)}return e}function lt(i,e="desktop"){if(!i)return{};let o=i.base||{},r=i[e]||{},n={...o,...r};return dt(n)}function hn(i){return String(i).replace(/[{};]+/g,"")}function vn(i){return i.replace(/["\\\]]/g,"\\$&")}function ae(i,e){if(!i||typeof i!="object")return"";let o=dt(i),r=[],n=e?.important?" !important":"";for(let[t,d]of Object.entries(o)){if(d==null||d==="")continue;let l=t.replace(/[A-Z]/g,c=>`-${c.toLowerCase()}`);l.startsWith("--")||l.startsWith("-webkit-")||l.startsWith("-moz-")||l.startsWith("-")&&(l=l.substring(1)),r.push(`${l}: ${hn(d)}${n};`)}return r.join(" ")}function ct(i,e={important:!0}){if(!i?.document)return"";let o=[],r=n=>{let t=n.styles?.states;if(t&&typeof t=="object")for(let[d,l]of Object.entries(t)){let c=ae(l,{important:e.important!==!1});if(!c)continue;let p=/^::?[a-zA-Z-]+$/.test(d)?d:null;p&&o.push(`[data-kubuild-node="${vn(n.id)}"]${p} { ${c} }`)}n.children?.forEach(r)};return r(i.document),o.join(`
|
|
2
|
-
`)}
|
|
1
|
+
import ve from"react";import{isActionBinding as Yo}from"@kubuild/schema";import{createDefaultComponentRegistry as fa}from"@kubuild/components";import{createContext as lr,useContext as cr,useMemo as ur}from"react";import{resolveBinding as Ue}from"@kubuild/core";import{isVariableBinding as ln,isActionBinding as pr}from"@kubuild/schema";import{isSafeActionUrl as sr}from"@kubuild/schema";import{interpolateValue as Zt}from"@kubuild/core";import{useState as rr,useEffect as ir}from"react";var ar=0,yt=class{toasts=[];listeners=new Set;timers=new Map;showToast(e){let n=typeof e=="string"?{message:e}:e,i=n.id||`toast_${Date.now()}_${++ar}`,r=n.type||n.variant||"info",o=n.duration!==void 0?Math.max(0,n.duration):4e3,s=n.position||"top-right",d=n.dismissible!==!1;this.timers.has(i)&&(clearTimeout(this.timers.get(i)),this.timers.delete(i));let c={id:i,type:r,message:n.message,title:n.title,duration:o,position:s,dismissible:d,createdAt:Date.now(),dismiss:()=>this.dismissToast(i)};if(this.toasts=this.toasts.filter(u=>u.id!==i).concat(c),o>0){let u=setTimeout(()=>{this.dismissToast(i)},o);this.timers.set(i,u)}return this.notify(),c}dismissToast(e){this.timers.has(e)&&(clearTimeout(this.timers.get(e)),this.timers.delete(e));let n=this.toasts.length;this.toasts=this.toasts.filter(i=>i.id!==e),this.toasts.length!==n&&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 n of this.listeners)try{n(e)}catch(i){console.error("Error in toast listener callback:",i)}}},xe=new yt;function Qt(t=xe){let[e,n]=rr(()=>t.getToasts());return ir(()=>(n(t.getToasts()),t.subscribe(i=>{n(i)})),[t]),{toasts:e,showToast:i=>t.showToast(i),dismissToast:i=>t.dismissToast(i),clearToasts:()=>t.clearToasts()}}async function dr(t,e){if(e?.copyFn)return await e.copyFn(t),!0;if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")try{return await navigator.clipboard.writeText(t),!0}catch{}if(typeof document<"u")try{let n=document.createElement("textarea");n.value=t,n.setAttribute("readonly",""),n.style.position="fixed",n.style.top="-9999px",n.style.left="-9999px",n.style.opacity="0",document.body.appendChild(n),n.focus(),n.select();let i=document.execCommand("copy");if(document.body.removeChild(n),i)return!0}catch{}return!1}var _e=(t,e)=>{let n=t.payload||{},i=String(n.url||"").trim();if(!i)throw new Error("Navigation URL cannot be empty");if(!sr(i))throw new Error(`Disallowed or unsafe protocol in navigation URL: "${i}"`);let r=n.target||"_self",o=n.replace??!1,s=n.behavior||"smooth",d=n.scroll??!0;if(i.startsWith("#")){if(typeof document<"u"){try{let u=document.querySelector(i)||document.getElementById(i.slice(1));u&&typeof u.scrollIntoView=="function"&&u.scrollIntoView({behavior:d===!1?"auto":s,block:"start"})}catch{}if(typeof window<"u"&&window.location)try{window.location.hash=i}catch{}}return{url:i,target:"_self",replace:o,scroll:d,behavior:s,navigated:!0,isAnchor:!0}}if(r==="_blank")return typeof window<"u"&&typeof window.open=="function"&&window.open(i,"_blank","noopener,noreferrer"),{url:i,target:r,replace:o,scroll:d,behavior:s,navigated:!0,isAnchor:!1};let c=typeof e.onNavigate=="function"&&e.onNavigate||typeof e.navigateFn=="function"&&e.navigateFn;return c?(c(i,{target:r,replace:o,scroll:d,behavior:s}),{url:i,target:r,replace:o,scroll:d,behavior:s,navigated:!0,isAnchor:!1}):(typeof window<"u"&&window.location&&(o?window.location.replace(i):window.location.assign(i)),{url:i,target:r,replace:o,scroll:d,behavior:s,navigated:!0,isAnchor:!1})},en=async(t,e)=>{let n=t.payload||{},i=n.text!==void 0?n.text:n.value!==void 0?n.value:"",r=typeof i=="object"&&i!==null?JSON.stringify(i):String(i??""),o=typeof e.copyFn=="function"?e.copyFn:typeof e.clipboardFn=="function"?e.clipboardFn:void 0;return await dr(r,{copyFn:o}),n.notify!==!1&&(n.notify===!0||n.toastMessage)&&(e.toastManager||xe).showToast({message:n.toastMessage||"Copied to clipboard!",type:"success",duration:3e3}),{text:r,copied:!0}},tn=(t,e)=>{let i=(t.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 r of Object.keys(e.form))e.form[r]="";if(typeof document<"u")try{let r=i?document.getElementById(i):document.querySelector("form");r&&typeof r.reset=="function"&&r.reset()}catch{}return{formId:i,reset:!0}},nn=(t,e)=>{let n=t.payload||{},i=String(n.eventName||"").trim(),r=String(Zt(i,e)).trim();if(!r)throw new Error("Custom event name cannot be empty");let o=n.detail||{},s={};for(let[c,u]of Object.entries(o))s[c]=Zt(u,e);let d=!1;if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let c=new CustomEvent(r,{detail:s,bubbles:n.bubbles!==!1,cancelable:n.cancelable!==!1});window.dispatchEvent(c),d=!0;let u=window;Array.isArray(u.dataLayer)&&u.dataLayer.push({event:r,...s})}return{eventName:r,detail:s,dispatched:d}};import{useState as on,useEffect as rn,useCallback as ht}from"react";var vt=class{modals=new Map;activeStack=[];listeners=new Set;openModal(e){if(!e||typeof e!="string")return;let n=e.trim();if(n){if(this.modals.set(n,!0),this.activeStack=this.activeStack.filter(i=>i!==n).concat(n),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let i=new CustomEvent("kubuild:modal:open",{detail:{modalId:n},bubbles:!0});window.dispatchEvent(i)}catch{}this.notify()}}closeModal(e){if(e&&typeof e=="string"){let n=e.trim();if(this.modals.set(n,!1),this.activeStack=this.activeStack.filter(i=>i!==n),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let i=new CustomEvent("kubuild:modal:close",{detail:{modalId:n},bubbles:!0});window.dispatchEvent(i)}catch{}}else{let n=this.activeStack.pop();if(n){if(this.modals.set(n,!1),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let i=new CustomEvent("kubuild:modal:close",{detail:{modalId:n},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[n,i]of this.modals.entries())e[n]=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 n of this.listeners)try{n(e)}catch(i){console.error("Error in modal listener callback:",i)}}},ae=new vt;function an(t,e=ae){if(!t)return{isOpen:!1,open:()=>{},close:()=>{},toggle:()=>!1};let[n,i]=on(()=>e.isModalOpen(t));rn(()=>(i(e.isModalOpen(t)),e.subscribe(d=>{i(!!d[t])})),[t,e]);let r=ht(()=>e.openModal(t),[t,e]),o=ht(()=>e.closeModal(t),[t,e]),s=ht(()=>e.toggleModal(t),[t,e]);return{isOpen:n,open:r,close:o,toggle:s}}function sn(t=ae){let[e,n]=on(()=>t.getState());return rn(()=>(n(t.getState()),t.subscribe(i=>{n(i)})),[t]),{modals:e,activeModals:t.getActiveModals(),isOpen:i=>!!e[i],openModal:i=>t.openModal(i),closeModal:i=>t.closeModal(i),toggleModal:i=>t.toggleModal(i)}}var He=(t,e)=>{let n=t.payload||{},i=String(n.message||"").trim();if(!i)throw new Error("Toast message cannot be empty");let r=n.type||n.variant||"info",o=n.duration!==void 0?n.duration:4e3,s=n.position||"top-right",d=n.title?String(n.title):void 0,u=(e.toastManager||xe).showToast({message:i,type:r,duration:o,position:s,title:d});return{id:u.id,message:u.message,type:u.type,title:u.title,duration:u.duration,position:u.position}},$e=(t,e)=>{let n=t.payload||{},i=n.modalId||n.modalNodeId||n.targetNodeId||n.nodeId,r=i?String(i).trim():"";if(!r)throw new Error("Modal ID or Modal Node ID is required for open_modal action");let o=e.modalManager||ae,d=!!n.toggle?o.toggleModal(r):(o.openModal(r),!0);if(e.state&&typeof e.state=="object"){let c=e.state.modals||{};e.state.modals={...c,[r]:d},e.state[r]=d}return e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${r}_open`]=d),{modalId:r,open:d}},ze=(t,e)=>$e({...t,payload:{...t.payload||{},toggle:!0}},e),qe=(t,e)=>{let n=t.payload||{},i=n.modalId||n.modalNodeId||n.targetNodeId||n.nodeId,r=i?String(i).trim():void 0;if((e.modalManager||ae).closeModal(r),r){if(e.state&&typeof e.state=="object"){let s=e.state.modals||{};e.state.modals={...s,[r]:!1},e.state[r]=!1}e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${r}_open`]=!1)}else e.state&&typeof e.state=="object"&&(e.state.modals={});return{modalId:r||"all",open:!1}};var xt=Object.freeze({navigate:_e,open_modal:$e,close_modal:qe,toggle_modal:ze,show_toast:He}),Ga=Object.freeze(Object.keys(xt));function Se(t){return!!(t&&Object.prototype.hasOwnProperty.call(xt,t))}function je(t,e){return e?!!t?.get(e)||Se(e):!1}async function dn(t,e,n){let i=Se(t)?xt[t]:void 0;if(!i)throw new Error(`No built-in handler for legacy action type "${t}".`);let r=n.context,o={id:`legacy_${t}_${n.nodeId||"node"}`,type:t,payload:e||{}},s={nodeId:n.nodeId,document:n.document,variables:n.context?.variables?{...n.context.variables}:{},state:{},toastManager:r?.toastManager,modalManager:r?.modalManager};return i(o,s,new AbortController().signal)}import{jsx as mr}from"react/jsx-runtime";var ke=Object.freeze({}),cn=lr(ke);function fr(t){if(!t)return ke;let e=t.variables?Object.freeze({...t.variables}):void 0,n=t.componentArtboards?Object.freeze([...t.componentArtboards]):void 0,i=t.resolveArtboard??(n?r=>n.find(o=>o.artboardType==="component"&&o.triggerId===r):void 0);return Object.freeze({variables:e,...t.assetProvider?{assetProvider:t.assetProvider}:{},...t.actionRegistry?{actionRegistry:t.actionRegistry}:{},...t.onDiagnostic?{onDiagnostic:t.onDiagnostic}:{},...n?{componentArtboards:n}:{},...i?{resolveArtboard:i}:{},...t.artboardSurface?{artboardSurface:t.artboardSurface}:{},...t.tracking?{tracking:Object.freeze({...t.tracking})}:{},...t.theme?{theme:Object.freeze({...t.theme})}:{}})}function is(t){let e=new Map(Object.entries(t?.assets??{})),n=new Map(Object.entries(t?.actions??{})),i={resolve:o=>e.get(o)||o},r={get:o=>n.get(o),register:(o,s)=>{n.set(o,s)},unregister:o=>{n.delete(o)}};return fr({variables:t?.variables,assetProvider:i,actionRegistry:r,onDiagnostic:t?.onDiagnostic})}var un=({value:t,children:e})=>{let n=ur(()=>t||ke,[t]);return mr(cn.Provider,{value:n,children:e})};function pn(){return cr(cn)}function kt(t,e){if(!(!t||!e))try{let n=t.resolve(e);return typeof n=="string"?n:void 0}catch{return}}function fn(t,e){return e==null?e:ln(e)?Ue(e,t).value:typeof e=="string"&&e.includes("{{")?e.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(n,i)=>{let r=Ue({key:i},t);return r.status==="resolved"?String(r.value):n}):e}function mn(t,e){if(!e||typeof e!="object")return{value:e,invalidPaths:[]};let n=[],i=(o,s)=>{if(o==null)return o;if(ln(o)){let d=Ue(o,t);return d.status==="empty"&&n.push(s),d.value}if(typeof o=="string")return o.includes("{{")?o.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(d,c)=>{let u=Ue({key:c},t);return u.status!=="resolved"?(n.push(s),d):String(u.value)}):o;if(Array.isArray(o))return o.map((d,c)=>i(d,`${s}[${c}]`));if(typeof o=="object"){let d={};for(let[c,u]of Object.entries(o))d[c]=i(u,s?`${s}.${c}`:c);return d}return o},r={};for(let[o,s]of Object.entries(e))r[o]=i(s,o);return{value:r,invalidPaths:n}}function gn(t,e){return mn(t,e).value}function as(t,e){return!t||!e?!1:!!t.get(e)}function bn(t){let{action:e,nodeId:n,document:i,context:r,onDiagnostic:o}=t;if(!pr(e)){let a={code:"INVALID_ACTION_PAYLOAD",actionType:typeof e?.type=="string"?e.type:"unknown",nodeId:n,message:`Invalid action binding on node ${n||"unknown"}.`};return o?.(a),r?.onDiagnostic?.(a),!1}let s=r?.actionRegistry?.get(e.type),d=!s&&Se(e.type);if(d&&t.allowBuiltinHandlers===!1)return!1;if(!s&&!d){let a={code:"UNKNOWN_ACTION",actionType:e.type,nodeId:n,message:`No action handler registered for action type "${e.type}".`};return o?.(a),r?.onDiagnostic?.(a),!1}let{value:c,invalidPaths:u}=mn(r,e.payload);if(u.length>0){let a={code:"INVALID_ACTION_BINDING",actionType:e.type,nodeId:n,message:`Action "${e.type}" payload has unresolved binding path(s) [${u.join(", ")}] on node ${n||"unknown"}; handler was not invoked.`,invalidPaths:u};return o?.(a),r?.onDiagnostic?.(a),!1}if(!s)return dn(e.type,c,{nodeId:n,document:i,context:r}).catch(a=>{let l={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:n,message:`Built-in "${e.type}" action failed: ${a instanceof Error?a.message:String(a)}`,error:a};o?.(l),r?.onDiagnostic?.(l)}),!0;let f={nodeId:n,document:i,variables:r?.variables};try{let a=s(c,f);return a&&typeof a.catch=="function"&&a.catch(l=>{let p={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:n,message:`Action "${e.type}" handler threw an asynchronous error: ${l instanceof Error?l.message:String(l)}`,error:l};o?.(p),r?.onDiagnostic?.(p)}),!0}catch(a){let l={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:n,message:`Action "${e.type}" handler threw a synchronous error: ${a instanceof Error?a.message:String(a)}`,error:a};return o?.(l),r?.onDiagnostic?.(l),!1}}import{AlertTriangle as Xo}from"lucide-react";import{BREAKPOINT_MEDIA_QUERIES as gr,BREAKPOINT_ORDER as Ct}from"@kubuild/schema";function wt(t){if(!t||typeof t!="object")return{};let e={...t};if(e.colSpan!==void 0&&e.colSpan!==null&&e.colSpan!==""){if(!e.gridColumn){let n=String(e.colSpan).trim();e.gridColumn=n.startsWith("span")?n:`span ${n}`}delete e.colSpan}if(e.rowSpan!==void 0&&e.rowSpan!==null&&e.rowSpan!==""){if(!e.gridRow){let n=String(e.rowSpan).trim();e.gridRow=n.startsWith("span")?n:`span ${n}`}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 n=String(e.backdropBlur).trim(),r=`blur(${typeof e.backdropBlur=="number"||/^\d+$/.test(n)?`${n}px`:n})`;e.backdropFilter=r,e.WebkitBackdropFilter=r,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 n=e.backgroundImage.trim();n!==""&&n!=="none"&&!n.startsWith("url(")&&!n.includes("gradient(")&&(n.startsWith("http://")||n.startsWith("https://")||n.startsWith("data:")||n.startsWith("blob:")||n.startsWith("/")||n.startsWith("./"))&&(e.backgroundImage=`url("${n}")`)}return e}function St(t,e="desktop"){if(!t)return{};let n=t.base||{},i=t[e]||{},r={...n,...i};return wt(r)}function Ie(t){return t?wt(t.base||{}):{}}function Rt(t){return t==null||t===""}function br(t){let e=Ie(t),n={};if(!t)return{base:e,overrides:n};for(let i of Ct){let r=t[i];if(!r||typeof r!="object"||Object.keys(r).length===0)continue;let o=St(t,i),s={};for(let[d,c]of Object.entries(o))Rt(c)||c!==e[d]&&(s[d]=c);for(let[d,c]of Object.entries(e))Rt(c)||Rt(o[d])&&(s[d]="unset");Object.keys(s).length>0&&(n[i]=s)}return{base:e,overrides:n}}function Tt(t,e={}){let n={desktop:[],tablet:[],mobile:[]};if(!t)return n;let i=r=>{if(r.styles){let{overrides:o}=br(r.styles);for(let s of Ct){let d=o[s];if(!d)continue;let c=hn(d,e);c&&n[s].push({nodeId:r.id,declarations:c})}}r.children?.forEach(i)};return i(t),n}function yn(t){return`[data-kubuild-node="${hr(t)}"]`}function We(t,e={important:!0}){if(!t?.document)return"";let n=Tt(t.document,{important:e.important!==!1}),i=[];for(let r of Ct){let o=n[r];if(o.length===0)continue;let s=o.map(d=>` ${yn(d.nodeId)} { ${d.declarations} }`).join(`
|
|
2
|
+
`);i.push(`@media ${gr[r]} {
|
|
3
|
+
${s}
|
|
4
|
+
}`)}return i.join(`
|
|
5
|
+
`)}function yr(t){return String(t).replace(/[{};]+/g,"")}function hr(t){return t.replace(/["\\\]]/g,"\\$&")}var vr=new Set(["animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth"]);function xr(t,e){return typeof e=="number"&&e!==0&&!t.startsWith("--")&&!vr.has(t)?`${e}px`:yr(e)}function Ke(t,e){return!t||typeof t!="object"?"":hn(wt(t),e)}function hn(t,e){let n=[],i=e?.important?" !important":"";for(let[r,o]of Object.entries(t)){if(o==null||o==="")continue;let s=r.replace(/[A-Z]/g,d=>`-${d.toLowerCase()}`);s.startsWith("--")||s.startsWith("-webkit-")||s.startsWith("-moz-")||s.startsWith("-")&&(s=s.substring(1)),n.push(`${s}: ${xr(r,o)}${i};`)}return n.join(" ")}function vn(t,e={important:!0}){if(!t?.document)return"";let n=[],i=r=>{let o=r.styles?.states;if(o&&typeof o=="object")for(let[s,d]of Object.entries(o)){let c=Ke(d,{important:e.important!==!1});if(!c)continue;let u=/^::?[a-zA-Z-]+$/.test(s)?s:null;u&&n.push(`${yn(r.id)}${u} { ${c} }`)}r.children?.forEach(i)};return i(t.document),n.join(`
|
|
6
|
+
`)}var xn=`
|
|
3
7
|
*, *::before, *::after {
|
|
4
8
|
box-sizing: border-box;
|
|
5
9
|
}
|
|
@@ -25,7 +29,7 @@ input, button, textarea, select {
|
|
|
25
29
|
p, h1, h2, h3, h4, h5, h6 {
|
|
26
30
|
overflow-wrap: break-word;
|
|
27
31
|
}
|
|
28
|
-
`.trim();var
|
|
32
|
+
`.trim();var kr=`
|
|
29
33
|
/* Entrance / AOS Keyframes */
|
|
30
34
|
@keyframes kb-anim-fade {
|
|
31
35
|
from { opacity: 0; }
|
|
@@ -101,10 +105,10 @@ p, h1, h2, h3, h4, h5, h6 {
|
|
|
101
105
|
0%, 100% { opacity: 0.75; }
|
|
102
106
|
50% { opacity: 1; }
|
|
103
107
|
}
|
|
104
|
-
`.trim();function
|
|
108
|
+
`.trim();function Ge(t){return t.replace(/["\\\]]/g,"\\$&")}function Rr(t,e){let n=Ge(t),i=[];switch(e){case"lift":i.push(`[data-kubuild-node="${n}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease !important; will-change: transform; }`,`[data-kubuild-node="${n}"]: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="${n}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; will-change: transform; }`,`[data-kubuild-node="${n}"]:hover { transform: scale(1.04) !important; }`);break;case"glow":i.push(`[data-kubuild-node="${n}"] { transition: box-shadow 0.25s ease !important; }`,`[data-kubuild-node="${n}"]:hover { box-shadow: 0 0 20px 2px rgba(59, 130, 246, 0.5) !important; }`);break;case"tilt":i.push(`[data-kubuild-node="${n}"] { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; will-change: transform; }`,`[data-kubuild-node="${n}"]:hover { transform: rotate(2deg) scale(1.02) !important; }`);break;default:break}return i}function Cr(t,e){let n=Ge(t),i=[];switch(e){case"pulse":i.push(`[data-kubuild-node="${n}"] { animation: kb-loop-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite !important; }`);break;case"bounce":i.push(`[data-kubuild-node="${n}"] { animation: kb-loop-bounce 1.5s ease-in-out infinite !important; }`);break;case"spin":i.push(`[data-kubuild-node="${n}"] { animation: kb-loop-spin 3s linear infinite !important; }`);break;case"float":i.push(`[data-kubuild-node="${n}"] { animation: kb-loop-float 3s ease-in-out infinite !important; }`);break;case"shimmer":i.push(`[data-kubuild-node="${n}"] { animation: kb-loop-shimmer 2s ease-in-out infinite !important; }`);break;default:break}return i}function wr(t,e){if(!e.type||e.type==="none")return[];let n=Ge(t),i=typeof e.duration=="number"?e.duration:600,r=typeof e.delay=="number"?e.delay:0,o=e.easing||"ease-out";return[`[data-kubuild-node="${n}"] { animation-name: kb-anim-${e.type} !important; animation-duration: ${i}ms !important; animation-delay: ${r}ms !important; animation-timing-function: ${o} !important; animation-fill-mode: both !important; }`]}function Ye(t){if(!t?.document)return"";let e=[],n=!1,i=r=>{let o=r.animation;o&&(o.hoverEffect&&o.hoverEffect!=="none"&&(e.push(...Rr(r.id,o.hoverEffect)),n=!0),o.loopEffect&&o.loopEffect!=="none"&&(e.push(...Cr(r.id,o.loopEffect)),n=!0),o.type&&o.type!=="none"&&(e.push(...wr(r.id,o)),n=!0)),r.children?.forEach(i)};return i(t.document),n?`${kr}
|
|
105
109
|
|
|
106
110
|
${e.join(`
|
|
107
|
-
`)}`:""}function dr(i,e){let o=e||(typeof window<"u"?window.document:null);if(!o)return!1;let r=o.querySelector(`[data-kubuild-node="${Re(i)}"]`);if(!r)return!1;let n=r.style.animation;return r.style.animation="none",r.offsetWidth,r.style.animation=n,r.dispatchEvent(new CustomEvent("kubuild:replay-animation",{bubbles:!0,detail:{nodeId:i}})),!0}import{Component as Cn}from"react";import{AlertTriangle as $n}from"lucide-react";import{jsx as Ne,jsxs as Ce}from"react/jsx-runtime";var $e=class extends Cn{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,o){this.props.onError&&this.props.onError(e,o),this.props.onDiagnostic&&this.props.onDiagnostic({code:"ACTION_EXECUTION_ERROR",actionType:"render",nodeId:this.props.nodeId,message:`Render error in <${this.props.componentType}> (ID: ${this.props.nodeId}): ${e.message}`,error:e})}render(){if(this.state.hasError){let{nodeId:e,componentType:o,mode:r="runtime"}=this.props,n=this.state.error?.message||"Unknown render error";return r==="editor"?Ce("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:[Ce("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[Ne($n,{size:14,"aria-hidden":"true"}),Ce("span",{children:["Component Render Error: <",o,">"]})]}),Ce("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",Ne("code",{children:e})," \u2014 ",n]})]}):Ne("div",{"data-kubuild-node":e,"data-kubuild-error":o,style:{display:"none"},"aria-hidden":"true"})}return this.props.children}};import{isVariableBinding as Sn}from"@kubuild/schema";import{primitiveTypeForField as pt}from"@kubuild/components";import{resolveBinding as Tn}from"@kubuild/core";function En(i){switch(i){case"string":return"";case"number":return 0;case"boolean":return!1}}function In(i,e,o,r,n){let t=i.props?.[e.name],d=pt(e);if(d===void 0||t===void 0)return t;let l=o.defaultProps?.[e.name]??e.defaultValue??En(d);if(Sn(t)){let c=Tn(t,r);return typeof c.value===d?d==="string"&&c.value===""&&typeof t.fallback=="string"&&t.fallback.trim().length>0?t.fallback:c.value:(n.push({code:"INCOMPATIBLE_BINDING_TYPE",nodeId:i.id,propName:e.name,expectedType:d,actualType:typeof c.value,message:`Prop "${e.name}" on node "${i.id}" expected a ${d} but resolved binding "${t.key}" produced a ${typeof c.value}.`}),l)}return d==="string"&&typeof t=="string"&&t.includes("{{")?ot(r,t):t}function ft(i,e,o){let r=i.props||{};if(!e||!e.propFields||e.propFields.length===0)return{props:r,diagnostics:[]};let n=[],t={...r};for(let d of e.propFields)pt(d)!==void 0&&(t[d.name]=In(i,d,e,o,n));return{props:t,diagnostics:n}}import mo from"react";import{isAssetReference as bo,isVariableBinding as M}from"@kubuild/schema";import{icons as on,Package as yo,Puzzle as ho,AlertTriangle as vo}from"lucide-react";import{resolveBinding as xo,sanitizeUrl as oe,sanitizeHtml as ko}from"@kubuild/core";import{createContext as Zn,useContext as Ot,useState as pe,useCallback as L,useRef as Ft,useMemo as fe,useEffect as Vt}from"react";import{applyFieldTransform as Mt,validateFieldValue as Qn,validateForm as eo,ActionPipelineExecutor as to}from"@kubuild/core";import{isSafeActionUrl as Pn}from"@kubuild/schema";import{ActionCancellationError as De,ActionTimeoutError as Fe}from"@kubuild/core";var ne=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 An(i,e,o){if(!i||typeof i!="string")throw new ne("API request URL is required",{url:i});let r=i.trim();if(!Pn(r))throw new ne(`Disallowed or unsafe protocol in API request URL: "${r}"`,{url:r});let n=r;if(o&&!r.startsWith("http://")&&!r.startsWith("https://")&&!r.startsWith("//")){let t=o.endsWith("/")?o.slice(0,-1):o,d=r.startsWith("/")?r:`/${r}`;n=`${t}${d}`}if(e&&typeof e=="object"&&Object.keys(e).length>0){let[t,d]=n.split("?"),l=new URLSearchParams(d||"");for(let[p,f]of Object.entries(e))f!=null&&(Array.isArray(f)?f.forEach(a=>l.append(p,String(a))):l.set(p,String(f)));let c=l.toString();n=c?`${t}?${c}`:t}return n}function Nn(i,e,o,r={}){let n=i.toUpperCase(),t={...r};if(n==="GET"||n==="HEAD")return{body:void 0,headers:t};if(e==null)return{body:void 0,headers:t};let d=Object.keys(t).find(p=>p.toLowerCase()==="content-type"),l=d?t[d]:void 0,c=(o||"").toLowerCase();if(c==="form-data"||c==="formdata"||c==="multipart"||l&&l.includes("multipart/form-data")){if(typeof FormData<"u"&&e instanceof FormData)return d&&delete t[d],{body:e,headers:t};if(typeof FormData<"u"&&typeof e=="object"&&e!==null){let p=new FormData;for(let[f,a]of Object.entries(e))a!=null&&(typeof Blob<"u"&&a instanceof Blob?p.append(f,a):Array.isArray(a)?a.forEach(s=>p.append(f,typeof s=="object"?JSON.stringify(s):String(s))):typeof a=="object"?p.append(f,JSON.stringify(a)):p.append(f,String(a)));return d&&delete t[d],{body:p,headers:t}}}if(c==="urlencoded"||c==="url-encoded"||l&&l.includes("application/x-www-form-urlencoded")){if(typeof URLSearchParams<"u"&&e instanceof URLSearchParams)return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:t};if(typeof e=="object"&&e!==null){let p=new URLSearchParams;for(let[f,a]of Object.entries(e))a!=null&&(Array.isArray(a)?a.forEach(s=>p.append(f,String(s))):p.append(f,String(a)));return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:p,headers:t}}if(typeof e=="string")return d||(t["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:t}}if(c==="raw"||c==="text")return d||(t["Content-Type"]="text/plain;charset=UTF-8"),{body:typeof e=="string"?e:String(e),headers:t};if(typeof e=="object"&&e!==null)return d||(t["Content-Type"]="application/json"),{body:JSON.stringify(e),headers:t};if(typeof e=="string"){if(!d)try{JSON.parse(e),t["Content-Type"]="application/json"}catch{t["Content-Type"]="text/plain;charset=UTF-8"}return{body:e,headers:t}}return{body:String(e),headers:t}}async function Dn(i){let e=i.headers.get("content-type")||"",o=await i.text();if(!o||o.trim()==="")return null;if(e.includes("application/json")||e.includes("+json"))try{return JSON.parse(o)}catch{return o}let r=o.trim();if(r.startsWith("{")&&r.endsWith("}")||r.startsWith("[")&&r.endsWith("]"))try{return JSON.parse(r)}catch{return o}return o}function Me(i){let e=i?.defaultTimeout,o=i?.baseUrl,r=i?.headers;return async function(t,d,l){let c=d.fetchFn||i?.fetchFn||(typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch:typeof fetch<"u"?fetch:void 0);if(!c)throw new ne("No fetch implementation available for API request runner",{stepId:t.id});let p=t.payload||{},f=String(p.method||"GET").toUpperCase(),a=p.timeout??e,s=p.baseUrl??o,u=An(String(p.url||""),p.queryParams,s),g={...r||{},...p.headers||{}},{body:y,headers:m}=Nn(f,p.body,p.bodyFormat||p.bodyType,g),v=new AbortController,h,x=()=>{v.abort(l?.reason)};if(l){if(l.aborted)throw new De(l.reason instanceof Error?l.reason.message:"API request cancelled",t.id);l.addEventListener("abort",x,{once:!0})}a!==void 0&&a>0&&(h=setTimeout(()=>{v.abort(new Fe(`API request timed out after ${a}ms`,a,t.id))},a));try{let b=await c(u,{method:f,headers:m,body:y,signal:v.signal}),R={};b.headers&&typeof b.headers.forEach=="function"&&b.headers.forEach((S,T)=>{R[T.toLowerCase()]=S});let k=await Dn(b),w={ok:b.ok,status:b.status,statusText:b.statusText,headers:R,data:k,body:k,url:b.url||u};if(!b.ok){let S=(typeof k=="object"&&k!==null&&"message"in k?String(k.message):void 0)||(typeof k=="string"&&k.length<200?k:void 0)||`HTTP ${b.status} ${b.statusText||"Error"}`;throw new ne(`API request failed: ${S}`,{status:b.status,statusText:b.statusText,url:u,method:f,data:k,headers:R,response:w,stepId:t.id})}return w}catch(b){if(b instanceof ne)throw b;if(v.signal.aborted){let k=v.signal.reason;if(k instanceof Fe||k instanceof Error&&k.name==="ActionTimeoutError"||k instanceof De||k instanceof Error&&k.name==="ActionCancellationError")throw k;if(b instanceof Error&&(b.name==="AbortError"||b.name==="TimeoutError"))throw h===void 0&&l?.aborted?new De("API request cancelled",t.id):new Fe(`API request timed out after ${a}ms`,a??0,t.id)}let R=b instanceof Error?b.message:String(b);throw new ne(`Network error during API request: ${R}`,{url:u,method:f,isNetworkError:!0,stepId:t.id,cause:b})}finally{h!==void 0&&clearTimeout(h),l&&l.removeEventListener("abort",x)}}}var gt=Me();import{useState as Fn,useEffect as Mn}from"react";var On=0,Oe=class{toasts=[];listeners=new Set;timers=new Map;showToast(e){let o=typeof e=="string"?{message:e}:e,r=o.id||`toast_${Date.now()}_${++On}`,n=o.type||o.variant||"info",t=o.duration!==void 0?Math.max(0,o.duration):4e3,d=o.position||"top-right",l=o.dismissible!==!1;this.timers.has(r)&&(clearTimeout(this.timers.get(r)),this.timers.delete(r));let c={id:r,type:n,message:o.message,title:o.title,duration:t,position:d,dismissible:l,createdAt:Date.now(),dismiss:()=>this.dismissToast(r)};if(this.toasts=this.toasts.filter(p=>p.id!==r).concat(c),t>0){let p=setTimeout(()=>{this.dismissToast(r)},t);this.timers.set(r,p)}return this.notify(),c}dismissToast(e){this.timers.has(e)&&(clearTimeout(this.timers.get(e)),this.timers.delete(e));let o=this.toasts.length;this.toasts=this.toasts.filter(r=>r.id!==e),this.toasts.length!==o&&this.notify()}clearToasts(){for(let e of this.timers.values())clearTimeout(e);this.timers.clear(),this.toasts=[],this.notify()}getToasts(){return[...this.toasts]}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){let e=this.getToasts();for(let o of this.listeners)try{o(e)}catch(r){console.error("Error in toast listener callback:",r)}}},ie=new Oe;function mt(i=ie){let[e,o]=Fn(()=>i.getToasts());return Mn(()=>(o(i.getToasts()),i.subscribe(r=>{o(r)})),[i]),{toasts:e,showToast:r=>i.showToast(r),dismissToast:r=>i.dismissToast(r),clearToasts:()=>i.clearToasts()}}import{useState as bt,useEffect as yt,useCallback as Ve}from"react";var 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(r=>r!==o).concat(o),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:open",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(r)}catch{}this.notify()}}closeModal(e){if(e&&typeof e=="string"){let o=e.trim();if(this.modals.set(o,!1),this.activeStack=this.activeStack.filter(r=>r!==o),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:close",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(r)}catch{}}else{let o=this.activeStack.pop();if(o){if(this.modals.set(o,!1),typeof window<"u"&&typeof window.dispatchEvent=="function")try{let r=new CustomEvent("kubuild:modal:close",{detail:{modalId:o},bubbles:!0});window.dispatchEvent(r)}catch{}}else for(let r of this.modals.keys())this.modals.set(r,!1)}this.notify()}toggleModal(e){return this.isModalOpen(e)?(this.closeModal(e),!1):(this.openModal(e),!0)}isModalOpen(e){return e?!!this.modals.get(e.trim()):!1}hasState(e){return e?this.modals.has(e.trim()):!1}getState(){let e={};for(let[o,r]of this.modals.entries())e[o]=r;return e}getActiveModals(){return[...this.activeStack]}reset(){this.modals.clear(),this.activeStack=[],this.notify()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){let e=this.getState();for(let o of this.listeners)try{o(e)}catch(r){console.error("Error in modal listener callback:",r)}}},J=new Be;function ht(i,e=J){if(!i)return{isOpen:!1,open:()=>{},close:()=>{},toggle:()=>!1};let[o,r]=bt(()=>e.isModalOpen(i));yt(()=>(r(e.isModalOpen(i)),e.subscribe(l=>{r(!!l[i])})),[i,e]);let n=Ve(()=>e.openModal(i),[i,e]),t=Ve(()=>e.closeModal(i),[i,e]),d=Ve(()=>e.toggleModal(i),[i,e]);return{isOpen:o,open:n,close:t,toggle:d}}function vt(i=J){let[e,o]=bt(()=>i.getState());return yt(()=>(o(i.getState()),i.subscribe(r=>{o(r)})),[i]),{modals:e,activeModals:i.getActiveModals(),isOpen:r=>!!e[r],openModal:r=>i.openModal(r),closeModal:r=>i.closeModal(r),toggleModal:r=>i.toggleModal(r)}}var xt=(i,e)=>{let o=i.payload||{},r=String(o.message||"").trim();if(!r)throw new Error("Toast message cannot be empty");let n=o.type||o.variant||"info",t=o.duration!==void 0?o.duration:4e3,d=o.position||"top-right",l=o.title?String(o.title):void 0,p=(e.toastManager||ie).showToast({message:r,type:n,duration:t,position:d,title:l});return{id:p.id,message:p.message,type:p.type,title:p.title,duration:p.duration,position:p.position}},_e=(i,e)=>{let o=i.payload||{},r=o.modalId||o.modalNodeId||o.targetNodeId||o.nodeId,n=r?String(r).trim():"";if(!n)throw new Error("Modal ID or Modal Node ID is required for open_modal action");let t=e.modalManager||J,l=!!o.toggle?t.toggleModal(n):(t.openModal(n),!0);if(e.state&&typeof e.state=="object"){let c=e.state.modals||{};e.state.modals={...c,[n]:l},e.state[n]=l}return e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${n}_open`]=l),{modalId:n,open:l}},kt=(i,e)=>_e({...i,payload:{...i.payload||{},toggle:!0}},e),Rt=(i,e)=>{let o=i.payload||{},r=o.modalId||o.modalNodeId||o.targetNodeId||o.nodeId,n=r?String(r).trim():void 0;if((e.modalManager||J).closeModal(n),n){if(e.state&&typeof e.state=="object"){let d=e.state.modals||{};e.state.modals={...d,[n]:!1},e.state[n]=!1}e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${n}_open`]=!1)}else e.state&&typeof e.state=="object"&&(e.state.modals={});return{modalId:n||"all",open:!1}};import{isSafeActionUrl as Vn}from"@kubuild/schema";import{interpolateValue as wt}from"@kubuild/core";async function Bn(i,e){if(e?.copyFn)return await e.copyFn(i),!0;if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")try{return await navigator.clipboard.writeText(i),!0}catch{}if(typeof document<"u")try{let o=document.createElement("textarea");o.value=i,o.setAttribute("readonly",""),o.style.position="fixed",o.style.top="-9999px",o.style.left="-9999px",o.style.opacity="0",document.body.appendChild(o),o.focus(),o.select();let r=document.execCommand("copy");if(document.body.removeChild(o),r)return!0}catch{}return!1}var Ct=(i,e)=>{let o=i.payload||{},r=String(o.url||"").trim();if(!r)throw new Error("Navigation URL cannot be empty");if(!Vn(r))throw new Error(`Disallowed or unsafe protocol in navigation URL: "${r}"`);let n=o.target||"_self",t=o.replace??!1,d=o.behavior||"smooth",l=o.scroll??!0;if(r.startsWith("#")){if(typeof document<"u"){try{let p=document.querySelector(r)||document.getElementById(r.slice(1));p&&typeof p.scrollIntoView=="function"&&p.scrollIntoView({behavior:l===!1?"auto":d,block:"start"})}catch{}if(typeof window<"u"&&window.location)try{window.location.hash=r}catch{}}return{url:r,target:"_self",replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!0}}if(n==="_blank")return typeof window<"u"&&typeof window.open=="function"&&window.open(r,"_blank","noopener,noreferrer"),{url:r,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1};let c=typeof e.onNavigate=="function"&&e.onNavigate||typeof e.navigateFn=="function"&&e.navigateFn;return c?(c(r,{target:n,replace:t,scroll:l,behavior:d}),{url:r,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1}):(typeof window<"u"&&window.location&&(t?window.location.replace(r):window.location.assign(r)),{url:r,target:n,replace:t,scroll:l,behavior:d,navigated:!0,isAnchor:!1})},$t=async(i,e)=>{let o=i.payload||{},r=o.text!==void 0?o.text:o.value!==void 0?o.value:"",n=typeof r=="object"&&r!==null?JSON.stringify(r):String(r??""),t=typeof e.copyFn=="function"?e.copyFn:typeof e.clipboardFn=="function"?e.clipboardFn:void 0;return await Bn(n,{copyFn:t}),o.notify!==!1&&(o.notify===!0||o.toastMessage)&&(e.toastManager||ie).showToast({message:o.toastMessage||"Copied to clipboard!",type:"success",duration:3e3}),{text:n,copied:!0}},St=(i,e)=>{let r=(i.payload||{}).formId||(typeof e.formId=="string"?e.formId:void 0);if(typeof e.resetForm=="function"&&e.resetForm(),e.form&&typeof e.form=="object")for(let n of Object.keys(e.form))e.form[n]="";if(typeof document<"u")try{let n=r?document.getElementById(r):document.querySelector("form");n&&typeof n.reset=="function"&&n.reset()}catch{}return{formId:r,reset:!0}},Tt=(i,e)=>{let o=i.payload||{},r=String(o.eventName||"").trim(),n=String(wt(r,e)).trim();if(!n)throw new Error("Custom event name cannot be empty");let t=o.detail||{},d={};for(let[c,p]of Object.entries(t))d[c]=wt(p,e);let l=!1;if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let c=new CustomEvent(n,{detail:d,bubbles:o.bubbles!==!1,cancelable:o.cancelable!==!1});window.dispatchEvent(c),l=!0;let p=window;Array.isArray(p.dataLayer)&&p.dataLayer.push({event:n,...d})}return{eventName:n,detail:d,dispatched:l}};import{TRACKING_RELAY_PROTOCOL_VERSION as Hn}from"@kubuild/schema";import{interpolateValue as Se,generateTrackingEventId as Ln}from"@kubuild/core";var ue="data-kubuild-tracking";function It(i){if(typeof window>"u"||typeof document>"u")return()=>{};if(!i||i.enabled===!1)return Et(),()=>{};let e=i.providers||{};if(e.meta&&e.meta.enabled!==!1&&e.meta.pixelId){let o=e.meta.pixelId.trim(),r=`kubuild-tracking-meta-${o}`;document.getElementById(r)||((function(n,t,d,l,c,p,f){n.fbq||(c=n.fbq=function(){c.callMethod?c.callMethod.apply(c,arguments):c.queue.push(arguments)},n._fbq||(n._fbq=c),c.push=c,c.loaded=!0,c.version="2.0",c.queue=[],p=t.createElement(d),p.async=!0,p.id=r,p.setAttribute(ue,"meta"),p.src=l,f=t.getElementsByTagName(d)[0],f&&f.parentNode?f.parentNode.insertBefore(p,f):t.head.appendChild(p))})(window,document,"script","https://connect.facebook.net/en_US/fbevents.js"),window.fbq&&(window.fbq("init",o),i.autoPageView!==!1&&window.fbq("track","PageView")))}if(e.google&&e.google.enabled!==!1&&e.google.measurementId){let o=e.google.measurementId.trim(),r=`kubuild-tracking-ga4-${o}`;if(!document.getElementById(r)){window.dataLayer=window.dataLayer||[],window.gtag=window.gtag||function(){window.dataLayer?.push(arguments)},window.gtag("js",new Date),window.gtag("config",o,{send_page_view:i.autoPageView!==!1});let n=document.createElement("script");n.id=r,n.async=!0,n.setAttribute(ue,"google"),n.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(o)}`,document.head.appendChild(n)}}if(e.gtm&&e.gtm.enabled!==!1&&e.gtm.containerId){let o=e.gtm.containerId.trim(),r=`kubuild-tracking-gtm-${o}`;if(!document.getElementById(r)){window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":new Date().getTime(),event:"gtm.js"});let n=document.createElement("script");n.id=r,n.async=!0,n.setAttribute(ue,"gtm"),n.src=`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(o)}`,document.head.appendChild(n)}}if(e.tiktok&&e.tiktok.enabled!==!1&&e.tiktok.pixelId){let o=e.tiktok.pixelId.trim(),r=`kubuild-tracking-tiktok-${o}`;document.getElementById(r)||(function(n,t,d){n.TiktokAnalyticsObject=d;var l=n[d]=n[d]||[];l.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],l.setAndDefer=function(p,f){p[f]=function(){p.push([f].concat(Array.prototype.slice.call(arguments,0)))}};for(var c=0;c<l.methods.length;c++)l.setAndDefer(l,l.methods[c]);l.instance=function(p){for(var f=l._i[p]||[],a=0;a<l.methods.length;a++)l.setAndDefer(f,l.methods[a]);return f},l.load=function(p,f){var a="https://analytics.tiktok.com/i18n/pixel/events.js";l._i=l._i||{},l._i[p]=[],l._i[p]._u=a,l._t=l._t||{},l._t[p]=+new Date,l._o=l._o||{},l._o[p]=f||{};var s=document.createElement("script");s.type="text/javascript",s.async=!0,s.src=a+"?sdkid="+p+"&lib="+d,s.id=r,s.setAttribute(ue,"tiktok");var u=document.getElementsByTagName("script")[0];u&&u.parentNode?u.parentNode.insertBefore(s,u):document.head.appendChild(s)},l.load(o),i.autoPageView!==!1&&l.page()})(window,document,"ttq")}return()=>{Et()}}function Et(){if(typeof document>"u")return;document.querySelectorAll(`script[${ue}]`).forEach(e=>{e.parentNode?.removeChild(e)})}var _n=new Set(["AddPaymentInfo","AddToCart","AddToWishlist","CompleteRegistration","Contact","CustomizeProduct","Donate","FindLocation","InitiateCheckout","Lead","PageView","Purchase","Schedule","Search","StartTrial","SubmitApplication","Subscribe","ViewContent"]);function Pt(i,e,o){if(typeof window>"u")return;let r=o?.config;if(r&&r.enabled===!1)return;let n=o?.provider||"all",t=o?.eventId,d=e||{},l=o?.eventType,c=(n==="all"||n==="meta")&&(!r?.providers?.meta||r.providers.meta.enabled!==!1),p=(n==="all"||n==="google")&&(!r?.providers?.google||r.providers.google.enabled!==!1),f=(n==="all"||n==="tiktok")&&(!r?.providers?.tiktok||r.providers.tiktok.enabled!==!1),a=r?.providers?.gtm,s=n==="gtm"&&(!a||a.enabled!==!1)||n==="all"&&!!a&&a.enabled!==!1&&!!a.containerId;if(r?.debugMode&&console.log(`[Browser Pixel Track: ${i}]`,{eventId:t,targetProvider:n,eventType:l,params:d}),c&&typeof window.fbq=="function"){let g=l==="custom"||!l&&!_n.has(i)?"trackCustom":"track";t?window.fbq(g,i,d,{eventID:t}):window.fbq(g,i,d)}p&&typeof window.gtag=="function"&&window.gtag("event",i,{...d,...t?{event_id:t}:{}}),f&&window.ttq&&typeof window.ttq.track=="function"&&window.ttq.track(i,d,t?{event_id:t}:void 0),s&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...d,event:i,...t?{event_id:t}:{}}))}var At=async(i,e)=>{let o=i.payload||{};if(o.enabled===!1)return{eventName:o.eventName||"",eventId:"",delivery:o.delivery||"both",provider:o.provider||"all",params:{},userData:{},skipped:!0,reason:"Track event step is disabled"};let r=e.document,n=e.trackingConfig||r?.tracking||r?.metadata?.tracking;if(n&&n.enabled===!1)return{eventName:o.eventName||"",eventId:"",delivery:o.delivery||"both",provider:o.provider||"all",params:{},userData:{},skipped:!0,reason:"Tracking is disabled globally in document settings"};let t=String(o.eventName||"").trim(),d=String(Se(t,e)).trim();if(!d)throw new Error("Track event name cannot be empty");let l=o.params||{},c={};for(let[h,x]of Object.entries(l))c[h]=Se(x,e);let p=o.userData||{},f={};for(let[h,x]of Object.entries(p))f[h]=Se(x,e);let a=o.eventId?String(Se(o.eventId,e)):"";a||(a=Ln());let s=o.delivery||n?.defaultDelivery||"both",u=o.provider||"all",g=!1,y=!1,m,v;if((s==="client_only"||s==="both")&&(Pt(d,c,{eventId:a,config:n,provider:u,eventType:o.eventType}),g=!0),s==="server_only"||s==="both"){let h=e.trackingRuntime,x=e.reportDiagnostic,b=(R,k)=>{h?.onLog?.(R,k),n?.debugMode&&console.log(`[KUBUILD Tracking] ${R}`,k??"")};if(u==="gtm")v="GTM is client-side only (dataLayer); no server delivery";else if(!h?.relayUrl)v="Server delivery skipped: no tracking relay configured (RenderContext.tracking.relayUrl)",b(v,{eventName:d,eventId:a}),x?.({code:"TRACKING_RELAY_NOT_CONFIGURED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:d,message:v});else{let R={version:Hn,provider:u,...h.documentId?{documentId:h.documentId}:{},event:{eventName:d,eventId:a,...o.eventType?{eventType:o.eventType}:{},eventTime:Math.floor(Date.now()/1e3),...typeof window<"u"&&window.location?.href?{eventSourceUrl:window.location.href}:{},actionSource:"website",params:c,userData:f}};try{let k=h.fetchFn||e.fetch||(typeof fetch=="function"?fetch:void 0);if(!k)throw new Error("fetch is not available in this environment");let w=await k(h.relayUrl,{method:"POST",headers:{"Content-Type":"application/json",...h.relayHeaders||{}},credentials:h.credentials??"same-origin",keepalive:!0,body:JSON.stringify(R)}),S=await(typeof w.json=="function"?w.json().catch(()=>null):null);w.ok&&(S?.success??!0)?y=!0:m=S?.error?.message||`Tracking relay responded with status ${w.status}`}catch(k){m=k instanceof Error?k.message:String(k)}m&&(b(`Tracking relay failed: ${m}`,{eventName:d,eventId:a}),x?.({code:"TRACKING_RELAY_FAILED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:d,message:m}))}}return{eventName:d,eventId:a,delivery:s,provider:u,params:c,userData:f,clientDispatched:g,serverDispatched:y,serverError:m,...v?{serverSkippedReason:v}:{}}};import{useMemo as qn}from"react";import{CheckCircle2 as jn,AlertCircle as zn,AlertTriangle as Un,Info as Wn,X as Kn}from"lucide-react";import{Fragment as Xn,jsx as ee,jsxs as He}from"react/jsx-runtime";var Yn={"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"}},Nt={success:{bg:"#f0fdf4",border:"#bbf7d0",text:"#166534",titleText:"#14532d",iconColor:"#16a34a",Icon:jn},error:{bg:"#fef2f2",border:"#fecaca",text:"#991b1b",titleText:"#7f1d1d",iconColor:"#dc2626",Icon:zn},warning:{bg:"#fffbeb",border:"#fde68a",text:"#92400e",titleText:"#78350f",iconColor:"#d97706",Icon:Un},info:{bg:"#eff6ff",border:"#bfdbfe",text:"#1e40af",titleText:"#1e3a8a",iconColor:"#2563eb",Icon:Wn}},Gn=({toast:i})=>{let e=Nt[i.type]||Nt.info,o=e.Icon;return He("div",{role:"alert","aria-live":"polite","data-testid":`toast-${i.id}`,"data-toast-type":i.type,style:{display:"flex",alignItems:"flex-start",gap:"12px",width:"100%",maxWidth:"380px",minWidth:"280px",padding:"12px 14px",backgroundColor:e.bg,border:`1px solid ${e.border}`,borderRadius:"8px",boxShadow:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",color:e.text,fontSize:"14px",lineHeight:"1.4",pointerEvents:"auto",animation:"kubuildToastIn 200ms cubic-bezier(0.16, 1, 0.3, 1)",wordBreak:"break-word",boxSizing:"border-box",transition:"all 200ms ease"},children:[ee("div",{style:{flexShrink:0,marginTop:"2px",color:e.iconColor},children:ee(o,{size:18,color:e.iconColor})}),He("div",{style:{flex:1,minWidth:0},children:[i.title&&ee("div",{style:{fontWeight:600,fontSize:"14px",marginBottom:"2px",color:e.titleText},children:i.title}),ee("div",{style:{color:e.text},children:i.message})]}),i.dismissible&&ee("button",{type:"button","aria-label":"Close notification",onClick:i.dismiss,"data-testid":`toast-dismiss-${i.id}`,style:{flexShrink:0,background:"none",border:"none",cursor:"pointer",padding:"2px",marginLeft:"4px",color:e.text,opacity:.7,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px"},children:ee(Kn,{size:16})})]})},Dt=({manager:i=ie,position:e,className:o,maxVisible:r=5})=>{let{toasts:n}=mt(i),t=qn(()=>{if(e)return{[e]:n.filter(l=>(l.position||"top-right")===e)};let d={"top-right":[],"top-left":[],"top-center":[],"bottom-right":[],"bottom-left":[],"bottom-center":[]};return n.forEach(l=>{let c=l.position||"top-right";d[c].push(l)}),d},[n,e]);return n.length===0?null:He(Xn,{children:[ee("style",{children:`
|
|
111
|
+
`)}`:""}function ms(t,e){let n=e||(typeof window<"u"?window.document:null);if(!n)return!1;let i=n.querySelector(`[data-kubuild-node="${Ge(t)}"]`);if(!i)return!1;let r=i.style.animation;return i.style.animation="none",i.offsetWidth,i.style.animation=r,i.dispatchEvent(new CustomEvent("kubuild:replay-animation",{bubbles:!0,detail:{nodeId:t}})),!0}import{mergeThemes as Sr,themeToCssVariables as kn}from"@kubuild/schema";function Xe(t,e){return Sr(t?.theme,e?.theme)}function Je(t){let e={};for(let[n,i]of kn(t))e[n]=i;return e}function Rn(t){return kn(t).map(([e,n])=>`${e}: ${n};`).join(" ")}import{Component as Tr}from"react";import{AlertTriangle as Er}from"lucide-react";import{jsx as Et,jsxs as Qe}from"react/jsx-runtime";var Ze=class extends Tr{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,n){this.props.onError&&this.props.onError(e,n),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:n,mode:i="runtime"}=this.props,r=this.state.error?.message||"Unknown render error";return i==="editor"?Qe("div",{"data-kubuild-node":e,"data-kubuild-error":n,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:[Qe("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[Et(Er,{size:14,"aria-hidden":"true"}),Qe("span",{children:["Component Render Error: <",n,">"]})]}),Qe("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",Et("code",{children:e})," \u2014 ",r]})]}):Et("div",{"data-kubuild-node":e,"data-kubuild-error":n,style:{display:"none"},"aria-hidden":"true"})}return this.props.children}};import{isVariableBinding as $r,findDeprecatedPropAliases as Ir}from"@kubuild/schema";import{primitiveTypeForField as wn}from"@kubuild/components";import{resolveBinding as Nr}from"@kubuild/core";function Pr(t){switch(t){case"string":return"";case"number":return 0;case"boolean":return!1}}function Cn(t,e,n,i,r){let o=t.props?.[e.name],s=wn(e);if(s===void 0||o===void 0)return o;let d=n.defaultProps?.[e.name]??e.defaultValue??Pr(s);if($r(o)){let c=Nr(o,i);return typeof c.value===s?s==="string"&&c.value===""&&typeof o.fallback=="string"&&o.fallback.trim().length>0?o.fallback:c.value:(r.push({code:"INCOMPATIBLE_BINDING_TYPE",nodeId:t.id,propName:e.name,expectedType:s,actualType:typeof c.value,message:`Prop "${e.name}" on node "${t.id}" expected a ${s} but resolved binding "${o.key}" produced a ${typeof c.value}.`}),d)}return s==="string"&&typeof o=="string"&&o.includes("{{")?fn(i,o):o}function Sn(t,e,n){let i=t.props||{},r=Ir(t.type,i),o=r.map(d=>({code:"DEPRECATED_PROP",nodeId:t.id,componentType:t.type,propName:d.propName,canonicalName:d.canonicalName,message:`Prop "${d.propName}" on ${t.type} node "${t.id}" is deprecated; use "${d.canonicalName}" (run migrateDocument to rename it).`}));if(!e||!e.propFields||e.propFields.length===0)return{props:i,diagnostics:o};let s={...i};for(let d of e.propFields){if(wn(d)===void 0)continue;s[d.name]=Cn(t,d,e,n,o);let c=r.find(u=>u.inEffect&&u.canonicalName===d.name);c&&s[d.name]===void 0&&(s[d.name]=Cn(t,{...d,name:c.propName},e,n,o))}return{props:s,diagnostics:o}}import Ji from"react";import{isAssetReference as Qi,isVariableBinding as z}from"@kubuild/schema";import{icons as Ko,Package as Zi,Puzzle as ea,AlertTriangle as ta}from"lucide-react";import{resolveBinding as na,sanitizeUrl as he,sanitizeHtml as oa}from"@kubuild/core";import{createContext as Xr,useContext as On,useState as Pe,useCallback as K,useRef as Dn,useMemo as Ae,useEffect as Mn}from"react";import{applyFieldTransform as Fn,validateFieldValue as Jr,validateForm as Qr,ActionPipelineExecutor as Zr}from"@kubuild/core";import{isSafeActionUrl as Ar}from"@kubuild/schema";import{ActionCancellationError as $t,ActionTimeoutError as It}from"@kubuild/core";var me=class extends Error{status;statusText;url;method;data;headers;response;isTimeout;isCancelled;isNetworkError;stepId;cause;constructor(e,n){super(e),this.name="ApiRequestError",this.status=n?.status,this.statusText=n?.statusText,this.url=n?.url,this.method=n?.method,this.data=n?.data,this.headers=n?.headers,this.response=n?.response,this.isTimeout=n?.isTimeout??!1,this.isCancelled=n?.isCancelled??!1,this.isNetworkError=n?.isNetworkError??!1,this.stepId=n?.stepId,this.cause=n?.cause}};function Dr(t,e,n){if(!t||typeof t!="string")throw new me("API request URL is required",{url:t});let i=t.trim();if(!Ar(i))throw new me(`Disallowed or unsafe protocol in API request URL: "${i}"`,{url:i});let r=i;if(n&&!i.startsWith("http://")&&!i.startsWith("https://")&&!i.startsWith("//")){let o=n.endsWith("/")?n.slice(0,-1):n,s=i.startsWith("/")?i:`/${i}`;r=`${o}${s}`}if(e&&typeof e=="object"&&Object.keys(e).length>0){let[o,s]=r.split("?"),d=new URLSearchParams(s||"");for(let[u,f]of Object.entries(e))f!=null&&(Array.isArray(f)?f.forEach(a=>d.append(u,String(a))):d.set(u,String(f)));let c=d.toString();r=c?`${o}?${c}`:o}return r}function Fr(t,e,n,i={}){let r=t.toUpperCase(),o={...i};if(r==="GET"||r==="HEAD")return{body:void 0,headers:o};if(e==null)return{body:void 0,headers:o};let s=Object.keys(o).find(u=>u.toLowerCase()==="content-type"),d=s?o[s]:void 0,c=(n||"").toLowerCase();if(c==="form-data"||c==="formdata"||c==="multipart"||d&&d.includes("multipart/form-data")){if(typeof FormData<"u"&&e instanceof FormData)return s&&delete o[s],{body:e,headers:o};if(typeof FormData<"u"&&typeof e=="object"&&e!==null){let u=new FormData;for(let[f,a]of Object.entries(e))a!=null&&(typeof Blob<"u"&&a instanceof Blob?u.append(f,a):Array.isArray(a)?a.forEach(l=>u.append(f,typeof l=="object"?JSON.stringify(l):String(l))):typeof a=="object"?u.append(f,JSON.stringify(a)):u.append(f,String(a)));return s&&delete o[s],{body:u,headers:o}}}if(c==="urlencoded"||c==="url-encoded"||d&&d.includes("application/x-www-form-urlencoded")){if(typeof URLSearchParams<"u"&&e instanceof URLSearchParams)return s||(o["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:o};if(typeof e=="object"&&e!==null){let u=new URLSearchParams;for(let[f,a]of Object.entries(e))a!=null&&(Array.isArray(a)?a.forEach(l=>u.append(f,String(l))):u.append(f,String(a)));return s||(o["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:u,headers:o}}if(typeof e=="string")return s||(o["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:o}}if(c==="raw"||c==="text")return s||(o["Content-Type"]="text/plain;charset=UTF-8"),{body:typeof e=="string"?e:String(e),headers:o};if(typeof e=="object"&&e!==null)return s||(o["Content-Type"]="application/json"),{body:JSON.stringify(e),headers:o};if(typeof e=="string"){if(!s)try{JSON.parse(e),o["Content-Type"]="application/json"}catch{o["Content-Type"]="text/plain;charset=UTF-8"}return{body:e,headers:o}}return{body:String(e),headers:o}}async function Or(t){let e=t.headers.get("content-type")||"",n=await t.text();if(!n||n.trim()==="")return null;if(e.includes("application/json")||e.includes("+json"))try{return JSON.parse(n)}catch{return n}let i=n.trim();if(i.startsWith("{")&&i.endsWith("}")||i.startsWith("[")&&i.endsWith("]"))try{return JSON.parse(i)}catch{return n}return n}function Mr(t,e){if(t.body!==void 0)return t.body;if(e.trigger==="submit"&&e.form&&typeof e.form=="object")return{...e.form}}function Nt(t){let e=t?.defaultTimeout,n=t?.baseUrl,i=t?.headers;return async function(o,s,d){let c=s.fetchFn||t?.fetchFn||(typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch:typeof fetch<"u"?fetch:void 0);if(!c)throw new me("No fetch implementation available for API request runner",{stepId:o.id});let u=o.payload||{},f=String(u.method||"GET").toUpperCase(),a=u.timeout??e,l=u.baseUrl??n,p=Dr(String(u.url||""),u.queryParams,l),m={...i||{},...u.headers||{}},{body:b,headers:y}=Fr(f,Mr(u,s),u.bodyFormat||u.bodyType,m),v=new AbortController,h,x=()=>{v.abort(d?.reason)};if(d){if(d.aborted)throw new $t(d.reason instanceof Error?d.reason.message:"API request cancelled",o.id);d.addEventListener("abort",x,{once:!0})}a!==void 0&&a>0&&(h=setTimeout(()=>{v.abort(new It(`API request timed out after ${a}ms`,a,o.id))},a));try{let g=await c(p,{method:f,headers:y,body:b,signal:v.signal}),S={};g.headers&&typeof g.headers.forEach=="function"&&g.headers.forEach((C,w)=>{S[w.toLowerCase()]=C});let k=await Or(g),R={ok:g.ok,status:g.status,statusText:g.statusText,headers:S,data:k,body:k,url:g.url||p};if(!g.ok){let C=(typeof k=="object"&&k!==null&&"message"in k?String(k.message):void 0)||(typeof k=="string"&&k.length<200?k:void 0)||`HTTP ${g.status} ${g.statusText||"Error"}`;throw new me(`API request failed: ${C}`,{status:g.status,statusText:g.statusText,url:p,method:f,data:k,headers:S,response:R,stepId:o.id})}return R}catch(g){if(g instanceof me)throw g;if(v.signal.aborted){let k=v.signal.reason;if(k instanceof It||k instanceof Error&&k.name==="ActionTimeoutError"||k instanceof $t||k instanceof Error&&k.name==="ActionCancellationError")throw k;if(g instanceof Error&&(g.name==="AbortError"||g.name==="TimeoutError"))throw h===void 0&&d?.aborted?new $t("API request cancelled",o.id):new It(`API request timed out after ${a}ms`,a??0,o.id)}let S=g instanceof Error?g.message:String(g);throw new me(`Network error during API request: ${S}`,{url:p,method:f,isNetworkError:!0,stepId:o.id,cause:g})}finally{h!==void 0&&clearTimeout(h),d&&d.removeEventListener("abort",x)}}}var Tn=Nt();import{TRACKING_RELAY_PROTOCOL_VERSION as Vr}from"@kubuild/schema";import{interpolateValue as et,generateTrackingEventId as Lr}from"@kubuild/core";var Ne="data-kubuild-tracking";function $n(t){if(typeof window>"u"||typeof document>"u")return()=>{};if(!t||t.enabled===!1)return En(),()=>{};let e=t.providers||{};if(e.meta&&e.meta.enabled!==!1&&e.meta.pixelId){let n=e.meta.pixelId.trim(),i=`kubuild-tracking-meta-${n}`;document.getElementById(i)||((function(r,o,s,d,c,u,f){r.fbq||(c=r.fbq=function(){c.callMethod?c.callMethod.apply(c,arguments):c.queue.push(arguments)},r._fbq||(r._fbq=c),c.push=c,c.loaded=!0,c.version="2.0",c.queue=[],u=o.createElement(s),u.async=!0,u.id=i,u.setAttribute(Ne,"meta"),u.src=d,f=o.getElementsByTagName(s)[0],f&&f.parentNode?f.parentNode.insertBefore(u,f):o.head.appendChild(u))})(window,document,"script","https://connect.facebook.net/en_US/fbevents.js"),window.fbq&&(window.fbq("init",n),t.autoPageView!==!1&&window.fbq("track","PageView")))}if(e.google&&e.google.enabled!==!1&&e.google.measurementId){let n=e.google.measurementId.trim(),i=`kubuild-tracking-ga4-${n}`;if(!document.getElementById(i)){window.dataLayer=window.dataLayer||[],window.gtag=window.gtag||function(){window.dataLayer?.push(arguments)},window.gtag("js",new Date),window.gtag("config",n,{send_page_view:t.autoPageView!==!1});let r=document.createElement("script");r.id=i,r.async=!0,r.setAttribute(Ne,"google"),r.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(n)}`,document.head.appendChild(r)}}if(e.gtm&&e.gtm.enabled!==!1&&e.gtm.containerId){let n=e.gtm.containerId.trim(),i=`kubuild-tracking-gtm-${n}`;if(!document.getElementById(i)){window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":new Date().getTime(),event:"gtm.js"});let r=document.createElement("script");r.id=i,r.async=!0,r.setAttribute(Ne,"gtm"),r.src=`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(n)}`,document.head.appendChild(r)}}if(e.tiktok&&e.tiktok.enabled!==!1&&e.tiktok.pixelId){let n=e.tiktok.pixelId.trim(),i=`kubuild-tracking-tiktok-${n}`;document.getElementById(i)||(function(r,o,s){r.TiktokAnalyticsObject=s;var d=r[s]=r[s]||[];d.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],d.setAndDefer=function(u,f){u[f]=function(){u.push([f].concat(Array.prototype.slice.call(arguments,0)))}};for(var c=0;c<d.methods.length;c++)d.setAndDefer(d,d.methods[c]);d.instance=function(u){for(var f=d._i[u]||[],a=0;a<d.methods.length;a++)d.setAndDefer(f,d.methods[a]);return f},d.load=function(u,f){var a="https://analytics.tiktok.com/i18n/pixel/events.js";d._i=d._i||{},d._i[u]=[],d._i[u]._u=a,d._t=d._t||{},d._t[u]=+new Date,d._o=d._o||{},d._o[u]=f||{};var l=document.createElement("script");l.type="text/javascript",l.async=!0,l.src=a+"?sdkid="+u+"&lib="+s,l.id=i,l.setAttribute(Ne,"tiktok");var p=document.getElementsByTagName("script")[0];p&&p.parentNode?p.parentNode.insertBefore(l,p):document.head.appendChild(l)},d.load(n),t.autoPageView!==!1&&d.page()})(window,document,"ttq")}return()=>{En()}}function En(){if(typeof document>"u")return;document.querySelectorAll(`script[${Ne}]`).forEach(e=>{e.parentNode?.removeChild(e)})}var Br=new Set(["AddPaymentInfo","AddToCart","AddToWishlist","CompleteRegistration","Contact","CustomizeProduct","Donate","FindLocation","InitiateCheckout","Lead","PageView","Purchase","Schedule","Search","StartTrial","SubmitApplication","Subscribe","ViewContent"]);function In(t,e,n){if(typeof window>"u")return;let i=n?.config;if(i&&i.enabled===!1)return;let r=n?.provider||"all",o=n?.eventId,s=e||{},d=n?.eventType,c=(r==="all"||r==="meta")&&(!i?.providers?.meta||i.providers.meta.enabled!==!1),u=(r==="all"||r==="google")&&(!i?.providers?.google||i.providers.google.enabled!==!1),f=(r==="all"||r==="tiktok")&&(!i?.providers?.tiktok||i.providers.tiktok.enabled!==!1),a=i?.providers?.gtm,l=r==="gtm"&&(!a||a.enabled!==!1)||r==="all"&&!!a&&a.enabled!==!1&&!!a.containerId;if(i?.debugMode&&console.log(`[Browser Pixel Track: ${t}]`,{eventId:o,targetProvider:r,eventType:d,params:s}),c&&typeof window.fbq=="function"){let m=d==="custom"||!d&&!Br.has(t)?"trackCustom":"track";o?window.fbq(m,t,s,{eventID:o}):window.fbq(m,t,s)}u&&typeof window.gtag=="function"&&window.gtag("event",t,{...s,...o?{event_id:o}:{}}),f&&window.ttq&&typeof window.ttq.track=="function"&&window.ttq.track(t,s,o?{event_id:o}:void 0),l&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...s,event:t,...o?{event_id:o}:{}}))}var Nn=async(t,e)=>{let n=t.payload||{};if(n.enabled===!1)return{eventName:n.eventName||"",eventId:"",delivery:n.delivery||"both",provider:n.provider||"all",params:{},userData:{},skipped:!0,reason:"Track event step is disabled"};let i=e.document,r=e.trackingConfig||i?.tracking||i?.metadata?.tracking;if(r&&r.enabled===!1)return{eventName:n.eventName||"",eventId:"",delivery:n.delivery||"both",provider:n.provider||"all",params:{},userData:{},skipped:!0,reason:"Tracking is disabled globally in document settings"};let o=String(n.eventName||"").trim(),s=String(et(o,e)).trim();if(!s)throw new Error("Track event name cannot be empty");let d=n.params||{},c={};for(let[h,x]of Object.entries(d))c[h]=et(x,e);let u=n.userData||{},f={};for(let[h,x]of Object.entries(u))f[h]=et(x,e);let a=n.eventId?String(et(n.eventId,e)):"";a||(a=Lr());let l=n.delivery||r?.defaultDelivery||"both",p=n.provider||"all",m=!1,b=!1,y,v;if((l==="client_only"||l==="both")&&(In(s,c,{eventId:a,config:r,provider:p,eventType:n.eventType}),m=!0),l==="server_only"||l==="both"){let h=e.trackingRuntime,x=e.reportDiagnostic,g=(S,k)=>{h?.onLog?.(S,k),r?.debugMode&&console.log(`[KUBUILD Tracking] ${S}`,k??"")};if(p==="gtm")v="GTM is client-side only (dataLayer); no server delivery";else if(!h?.relayUrl)v="Server delivery skipped: no tracking relay configured (RenderContext.tracking.relayUrl)",g(v,{eventName:s,eventId:a}),x?.({code:"TRACKING_RELAY_NOT_CONFIGURED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:s,message:v});else{let S={version:Vr,provider:p,...h.documentId?{documentId:h.documentId}:{},event:{eventName:s,eventId:a,...n.eventType?{eventType:n.eventType}:{},eventTime:Math.floor(Date.now()/1e3),...typeof window<"u"&&window.location?.href?{eventSourceUrl:window.location.href}:{},actionSource:"website",params:c,userData:f}};try{let k=h.fetchFn||e.fetch||(typeof fetch=="function"?fetch:void 0);if(!k)throw new Error("fetch is not available in this environment");let R=await k(h.relayUrl,{method:"POST",headers:{"Content-Type":"application/json",...h.relayHeaders||{}},credentials:h.credentials??"same-origin",keepalive:!0,body:JSON.stringify(S)}),C=await(typeof R.json=="function"?R.json().catch(()=>null):null);R.ok&&(C?.success??!0)?b=!0:y=C?.error?.message||`Tracking relay responded with status ${R.status}`}catch(k){y=k instanceof Error?k.message:String(k)}y&&(g(`Tracking relay failed: ${y}`,{eventName:s,eventId:a}),x?.({code:"TRACKING_RELAY_FAILED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:s,message:y}))}}return{eventName:s,eventId:a,delivery:l,provider:p,params:c,userData:f,clientDispatched:m,serverDispatched:b,serverError:y,...v?{serverSkippedReason:v}:{}}};import{useMemo as _r}from"react";import{CheckCircle2 as Hr,AlertCircle as zr,AlertTriangle as qr,Info as jr,X as Ur}from"lucide-react";import{Fragment as Gr,jsx as le,jsxs as Pt}from"react/jsx-runtime";var Wr={"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"}},Pn={success:{bg:"#f0fdf4",border:"#bbf7d0",text:"#166534",titleText:"#14532d",iconColor:"#16a34a",Icon:Hr},error:{bg:"#fef2f2",border:"#fecaca",text:"#991b1b",titleText:"#7f1d1d",iconColor:"#dc2626",Icon:zr},warning:{bg:"#fffbeb",border:"#fde68a",text:"#92400e",titleText:"#78350f",iconColor:"#d97706",Icon:qr},info:{bg:"#eff6ff",border:"#bfdbfe",text:"#1e40af",titleText:"#1e3a8a",iconColor:"#2563eb",Icon:jr}},Kr=({toast:t})=>{let e=Pn[t.type]||Pn.info,n=e.Icon;return Pt("div",{role:"alert","aria-live":"polite","data-testid":`toast-${t.id}`,"data-toast-type":t.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:[le("div",{style:{flexShrink:0,marginTop:"2px",color:e.iconColor},children:le(n,{size:18,color:e.iconColor})}),Pt("div",{style:{flex:1,minWidth:0},children:[t.title&&le("div",{style:{fontWeight:600,fontSize:"14px",marginBottom:"2px",color:e.titleText},children:t.title}),le("div",{style:{color:e.text},children:t.message})]}),t.dismissible&&le("button",{type:"button","aria-label":"Close notification",onClick:t.dismiss,"data-testid":`toast-dismiss-${t.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:le(Ur,{size:16})})]})},An=({manager:t=xe,position:e,className:n,maxVisible:i=5})=>{let{toasts:r}=Qt(t),o=_r(()=>{if(e)return{[e]:r.filter(d=>(d.position||"top-right")===e)};let s={"top-right":[],"top-left":[],"top-center":[],"bottom-right":[],"bottom-left":[],"bottom-center":[]};return r.forEach(d=>{let c=d.position||"top-right";s[c].push(d)}),s},[r,e]);return r.length===0?null:Pt(Gr,{children:[le("style",{children:`
|
|
108
112
|
@keyframes kubuildToastIn {
|
|
109
113
|
from {
|
|
110
114
|
opacity: 0;
|
|
@@ -115,9 +119,9 @@ ${e.join(`
|
|
|
115
119
|
transform: translateY(0) scale(1);
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
|
-
`}),Object.entries(
|
|
122
|
+
`}),Object.entries(o).map(([s,d])=>{if(!d||d.length===0)return null;let c=d.slice(-i);return le("div",{"data-testid":`toast-container-${s}`,className:n,style:{position:"fixed",zIndex:99999,display:"flex",flexDirection:"column",gap:"8px",maxWidth:"calc(100vw - 32px)",pointerEvents:"none",...Wr[s]},children:c.map(u=>le(Kr,{toast:u},u.id))},s)})]})};function Yr(t){return{api_request:t?.apiRequest?Nt(t.apiRequest):Tn,show_toast:He,open_modal:$e,close_modal:qe,toggle_modal:ze,navigate:_e,copy_clipboard:en,reset_form:tn,custom_event:nn,track_event:Nn,...t?.handlers||{}}}function tt(t,e){let n=Yr(e);for(let[i,r]of Object.entries(n))(!t.hasHandler(i)||e?.handlers?.[i]||e?.apiRequest)&&t.registerHandler(i,r);return t}import{jsx as ti}from"react/jsx-runtime";var At=Xr(null);function ei(t,e){let n=new Set([...Object.keys(t),...Object.keys(e)]);for(let i of n)if(t[i]!==e[i])return!0;return!1}var Bn=({formId:t,formConfig:e,initialValues:n,onSubmit:i,onSuccess:r,onError:o,actions:s,nodeId:d,document:c,onDiagnostic:u,children:f})=>{let a=pn(),l=Ae(()=>t||e?.formId||d||"kubuild-form",[t,e?.formId,d]),p=Ae(()=>({...e?.initialValues||{},...n||{}}),[e?.initialValues,n]),[m,b]=Pe(p),[y,v]=Pe(p),[h,x]=Pe({}),[g,S]=Pe({}),[k,R]=Pe(!1),C=Dn(new Map),w=Dn({values:y,errors:h,touched:g,initialValues:m,isSubmitting:k,formConfig:e});Mn(()=>{w.current={values:y,errors:h,touched:g,initialValues:m,isSubmitting:k,formConfig:e}});let T=K($=>{if(!$||!$.name)return()=>{};let L={name:$.name,rules:$.rules||[],validateOn:$.validateOn||"blur",label:$.label,defaultValue:$.defaultValue,transform:$.transform,disabled:$.disabled,required:$.required};return C.current.set($.name,L),$.defaultValue!==void 0&&(w.current.values[$.name]===void 0&&(w.current.values[$.name]=$.defaultValue),v(B=>B[$.name]===void 0?{...B,[$.name]:$.defaultValue}:B)),()=>{C.current.delete($.name)}},[]),P=K($=>C.current.get($),[]),I=K(($,L)=>{let B=C.current.get($),X=w.current.values,de=L!==void 0?L:X[$];B?.transform&&(de=Fn(de,B.transform));let W=[...B?.rules||[]];return B?.required&&!W.some(q=>q.type==="required")&&W.unshift({type:"required",message:`${B.label||$} is required`}),Jr(de,W,X)},[]),N=K($=>{let L=$||w.current.values,B=Array.from(C.current.values());return Qr(L,B)},[]),O=K(($,L)=>{x(B=>{if(L)return{...B,[$]:L};if(B[$]===void 0)return B;let X={...B};return delete X[$],X})},[]),A=K($=>{x({...$})},[]),F=K(($,L,B)=>{let X=C.current.get($),de=L;X?.transform&&(de=Fn(L,X.transform)),v(ee=>({...ee,[$]:de}));let W=X?.validateOn||e?.validateOn||"blur";if(B!==void 0?B:W==="change"){let ee=I($,de);O($,ee)}},[e?.validateOn,I,O]),M=K(($,L=!0,B)=>{S(q=>({...q,[$]:L}));let de=C.current.get($)?.validateOn||e?.validateOn||"blur";if(B!==void 0?B:de==="blur"&&L){let q=I($);O($,q)}},[e?.validateOn,I,O]),ne=K(($,L=!1)=>{v(B=>L?{...$}:{...B,...$})},[]),ie=K($=>{R($)},[]),fe=K($=>{let L=$||m;$&&b($),v({...L}),x({}),S({}),R(!1)},[m]),Le=K(async $=>{if($&&typeof $.preventDefault=="function"&&$.preventDefault(),w.current.isSubmitting)return!1;let L=w.current.values,B={};for(let W of C.current.keys())B[W]=!0;S(B);let X=N(L);if(x(X),!(Object.keys(X).length===0)){if(o?.(X),e?.scrollToFirstError!==!1&&typeof window<"u"&&typeof c<"u"){let q=Object.keys(X)[0];if(q)try{let ee=window.document.querySelector(`[name="${q}"], [data-field="${q}"]`);ee&&(ee.scrollIntoView({behavior:"smooth",block:"center"}),ee.focus?.())}catch{}}return!1}R(!0);try{if(s&&s.length>0){let W=s.filter(q=>q.trigger==="submit"&&q.enabled!==!1);if(W.length>0){let q=new Zr;tt(q);for(let ee of W){let Ee=await q.execute(ee,{context:{trigger:"submit",form:L,variables:a?.variables?{...a.variables}:{},nodeId:d,document:c}});if(!Ee.success){let Xt=Ee.error instanceof Error?Ee.error.message:String(Ee.error||"Submit pipeline failed"),Jt={code:"ACTION_EXECUTION_ERROR",actionType:ee.steps[0]?.type||"submit",nodeId:d,message:`Form submit pipeline failed: ${Xt}`,error:Ee.error};return u?.(Jt),a?.onDiagnostic?.(Jt),o?.({_form:Xt}),R(!1),!1}}}}return i&&await i(L,{formId:l,setSubmitting:ie,resetForm:fe,setErrors:x}),r?.(L),e?.resetOnSubmit&&fe(),!0}catch(W){let q=W instanceof Error?W.message:String(W),ee={code:"ACTION_EXECUTION_ERROR",actionType:"submit",nodeId:d,message:`Form submit execution error: ${q}`,error:W};return u?.(ee),a?.onDiagnostic?.(ee),o?.({_form:q}),!1}finally{R(!1)}},[e,s,d,c,u,a,i,r,o,l,ie,fe,N]),Gt=Ae(()=>Object.keys(h).length===0,[h]),Yt=Ae(()=>ei(y,m),[y,m]),or=Ae(()=>({formId:l,formConfig:e,initialValues:m,values:y,errors:h,touched:g,isSubmitting:k,isValid:Gt,dirty:Yt,setFieldValue:F,setFieldTouched:M,setFieldError:O,setErrors:A,setValues:ne,setSubmitting:ie,resetForm:fe,validateField:I,validateForm:N,handleFormSubmit:Le,registerField:T,getFieldBinding:P}),[l,e,m,y,h,g,k,Gt,Yt,F,M,O,A,ne,ie,fe,I,N,Le,T,P]);return ti(At.Provider,{value:or,children:f})};function te(){return On(At)}function pd(){return On(At)}function fd(){let t=te();return{isSubmitting:t?.isSubmitting??!1,isValid:t?.isValid??!0,dirty:t?.dirty??!1,errors:t?.errors??{}}}function md(t,e){let n=te();n&&t&&n.registerField(e||{name:t}),Mn(()=>{if(!n||!t)return;let l=n.registerField(e||{name:t});return()=>{l()}},[n,t,e]);let i=n?.values[t]!==void 0?n.values[t]:e?.defaultValue,r=n?.errors[t],o=!!n?.touched[t],s=!!(r&&o),d=K((l,p)=>{n?.setFieldValue(t,l,p)},[n,t]),c=K((l=!0,p)=>{n?.setFieldTouched(t,l,p)},[n,t]),u=K(l=>{n?.setFieldError(t,l)},[n,t]),f=K(l=>{if(l&&typeof l=="object"&&"target"in l&&l.target){let p=l.target;if(p.type==="checkbox")d(p.checked);else if(p.type==="number"){let m=p.value===""?"":Number(p.value);d(m)}else d(p.value)}else d(l)},[d]),a=K(()=>{c(!0)},[c]);return{value:i,error:r,touched:o,isInvalid:s,setValue:d,setTouched:c,setError:u,onChange:f,onBlur:a}}import{useRef as ni}from"react";import{jsx as Vn}from"react/jsx-runtime";var G=({as:t="p",id:e,className:n,style:i,value:r,isEditable:o,nodeId:s,onClick:d,onChange:c,...u})=>{let f=ni(!1),a=t;return o?Vn(a,{id:e,className:n,style:{...i,outline:"none",cursor:"text"},contentEditable:!0,suppressContentEditableWarning:!0,"data-kubuild-node":s,onClick:l=>{d?.(l)},onFocus:()=>{f.current=!0},onInput:l=>{let p=l.currentTarget.textContent??"";c?.(p,!1)},onBlur:l=>{f.current=!1;let p=l.currentTarget.textContent??"";c?.(p,!0)},onKeyDown:l=>{l.key==="Escape"&&l.currentTarget.blur()},...u,children:r}):Vn(a,{id:e,className:n,style:i,onClick:d,"data-kubuild-node":s,...u,children:r})};import{useRef as Ln,useLayoutEffect as oi,useEffect as ri,useMemo as ii}from"react";import{jsx as _n}from"react/jsx-runtime";var ai=typeof window<"u"?oi:ri;function si(t){return t?t.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(e,n,i)=>{let r=i;return r=r.replace(/(^|[\s,{}])body(?=[\s,{])/g,"$1:host, body"),r=r.replace(/(^|[\s,{}])html(?=[\s,{])/g,"$1:host, html"),`<style${n}>
|
|
119
123
|
:host { display: block; }
|
|
120
|
-
${n}</style>`}):""}var qt=({id:i,style:e,onClick:o,dataKubuildNode:r,html:n,role:t})=>{let d=Ht(null),l=Ht(null),c=so(()=>co(n),[n]);return lo(()=>{let p=d.current;if(p){if(typeof p.attachShadow=="function"){if(!l.current)if(p.shadowRoot)l.current=p.shadowRoot;else try{l.current=p.attachShadow({mode:"open"})}catch{l.current=p.shadowRoot}if(l.current){l.current.innerHTML=c;return}}p.innerHTML=c}},[c]),Lt("div",{ref:d,id:i,style:e,onClick:o,"data-kubuild-node":r,role:t,children:Lt("template",{shadowrootmode:"open",dangerouslySetInnerHTML:{__html:c}})})};import{useEffect as ge}from"react";import jt,{useEffect as uo}from"react";import{ActionPipelineExecutor as po}from"@kubuild/core";async function _(i){let{node:e,trigger:o,document:r,context:n,formContext:t,extraContext:d,onDiagnostic:l,onActionDispatch:c,executor:p}=i;if(!e.actions||!Array.isArray(e.actions)||e.actions.length===0)return{executed:!1,success:!0};let f=e.actions.filter(u=>u.trigger===o&&u.enabled!==!1);if(f.length===0)return{executed:!1,success:!0};let a=p||new po;Te(a);let s={form:t?{...t.values}:{},variables:n?.variables?{...n.variables}:{},nodeId:e.id,document:r,toastManager:n?.toastManager,modalManager:n?.modalManager,trackingConfig:n?.trackingConfig||r?.tracking||r?.metadata?.tracking,trackingRuntime:n?.tracking,reportDiagnostic:u=>{l?.(u),n?.onDiagnostic?.(u)},...d||{}};for(let u of f){let g=await a.execute(u,{context:s});if(c&&u.steps.length>0&&c(u.steps[0].type,u.steps[0].payload,e.id),!g.success){let y=g.error instanceof Error?g.error.message:String(g.error||`Action pipeline "${u.id}" failed`),m={code:"ACTION_EXECUTION_ERROR",actionType:u.steps[0]?.type||o,nodeId:e.id,message:y,error:g.error};return l?.(m),n?.onDiagnostic?.(m),{executed:!0,success:!1,error:g.error}}}return{executed:!0,success:!0}}function zt(i,e){if(!i.actions?.some(t=>t.trigger==="load"&&t.enabled!==!1))return;let r=jt?.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||jt?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(r?.H||r?.ReactCurrentDispatcher?.current)try{uo(()=>{e.mode!=="editor"&&_({node:i,trigger:"load",document:e.document,context:e.context,formContext:e.formContext,onDiagnostic:e.onDiagnostic,onActionDispatch:e.onActionDispatch})},[i,e.document,e.context,e.formContext,e.onDiagnostic,e.onActionDispatch,e.mode])}catch{}}import{jsx as q,jsxs as Ee}from"react/jsx-runtime";var Ut=({id:i,name:e,action:o,method:r="POST",target:n,autoComplete:t,style:d,onClick:l,mode:c,dataKubuildNode:p,children:f})=>{let a=Q();return q("form",{id:i,name:e,action:o,method:r,target:n,autoComplete:t,style:d,onClick:l,onSubmit:g=>{if(c==="editor"){g.preventDefault();return}a&&a.handleFormSubmit(g)},onReset:()=>{a&&a.resetForm()},"data-kubuild-node":p,role:"form","aria-label":e,children:f})},Wt=({id:i,name:e,type:o="text",placeholder:r,defaultValue:n,required:t,disabled:d,readOnly:l,rules:c,validateOn:p,transform:f,style:a,onClick:s,actions:u,nodeId:g,document:y,renderContext:m,onDiagnostic:v,onActionDispatch:h,dataKubuildNode:x})=>{let b=Q();if(b&&e&&b.registerField({name:e,defaultValue:n,required:t,disabled:d,rules:c||[],validateOn:p,transform:f}),ge(()=>{if(!b||!e)return;let F=b.registerField({name:e,defaultValue:n,required:t,disabled:d,rules:c||[],validateOn:p,transform:f});return()=>{F()}},[b,e,n,t,d,c,p,f]),!b||!e)return q("input",{id:i,type:o,name:e,placeholder:r,defaultValue:n!==void 0?String(n):void 0,required:t,disabled:d,readOnly:l,style:a,onClick:s,"data-kubuild-node":x});let R=b.values[e],k=R!=null?String(R):n!=null?String(n):"",w=b.errors[e],S=!!b.touched[e],T=!!(w&&S);return q("input",{id:i,type:o,name:e,placeholder:r,value:k,onChange:F=>{let j=F.target.value;o==="number"&&(j=F.target.value===""?"":Number(F.target.value)),b.setFieldValue(e,j),u&&u.length>0&&_({node:{id:g||i||e,type:"input",actions:u},trigger:"change",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:j},onDiagnostic:v,onActionDispatch:h})},onBlur:()=>{b.setFieldTouched(e,!0),u&&u.length>0&&_({node:{id:g||i||e,type:"input",actions:u},trigger:"blur",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:b.values[e]},onDiagnostic:v,onActionDispatch:h})},onFocus:()=>{u&&u.length>0&&_({node:{id:g||i||e,type:"input",actions:u},trigger:"focus",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:b.values[e]},onDiagnostic:v,onActionDispatch:h})},required:t,disabled:d,readOnly:l,style:a,onClick:s,"data-kubuild-node":x,"data-field":e,"data-invalid":T?"true":void 0,"aria-invalid":T?!0:void 0,"aria-errormessage":w?`${i}-error`:void 0})},Kt=({id:i,name:e,placeholder:o,defaultValue:r,rows:n=4,required:t,disabled:d,readOnly:l,rules:c,validateOn:p,transform:f,style:a,onClick:s,actions:u,nodeId:g,document:y,renderContext:m,onDiagnostic:v,onActionDispatch:h,dataKubuildNode:x})=>{let b=Q();if(b&&e&&b.registerField({name:e,defaultValue:r,required:t,disabled:d,rules:c||[],validateOn:p,transform:f}),ge(()=>{if(!b||!e)return;let F=b.registerField({name:e,defaultValue:r,required:t,disabled:d,rules:c||[],validateOn:p,transform:f});return()=>{F()}},[b,e,r,t,d,c,p,f]),!b||!e)return q("textarea",{id:i,name:e,placeholder:o,defaultValue:r!==void 0?String(r):void 0,rows:n,required:t,disabled:d,readOnly:l,style:a,onClick:s,"data-kubuild-node":x});let R=b.values[e],k=R!=null?String(R):r!=null?String(r):"",w=b.errors[e],S=!!b.touched[e],T=!!(w&&S);return q("textarea",{id:i,name:e,placeholder:o,rows:n,value:k,onChange:F=>{b.setFieldValue(e,F.target.value),u&&u.length>0&&_({node:{id:g||i||e,type:"textarea",actions:u},trigger:"change",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:F.target.value},onDiagnostic:v,onActionDispatch:h})},onBlur:()=>{b.setFieldTouched(e,!0),u&&u.length>0&&_({node:{id:g||i||e,type:"textarea",actions:u},trigger:"blur",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:b.values[e]},onDiagnostic:v,onActionDispatch:h})},onFocus:()=>{u&&u.length>0&&_({node:{id:g||i||e,type:"textarea",actions:u},trigger:"focus",document:y,context:m,formContext:b,extraContext:{fieldName:e,fieldValue:b.values[e]},onDiagnostic:v,onActionDispatch:h})},required:t,disabled:d,readOnly:l,style:a,onClick:s,"data-kubuild-node":x,"data-field":e,"data-invalid":T?"true":void 0,"aria-invalid":T?!0:void 0,"aria-errormessage":w?`${i}-error`:void 0})},Yt=({id:i,name:e,placeholder:o,defaultValue:r,required:n,disabled:t,rules:d,validateOn:l,optionsList:c,style:p,onClick:f,actions:a,nodeId:s,document:u,renderContext:g,onDiagnostic:y,onActionDispatch:m,dataKubuildNode:v})=>{let h=Q();if(h&&e&&h.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:d||[],validateOn:l}),ge(()=>{if(!h||!e)return;let I=h.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:d||[],validateOn:l});return()=>{I()}},[h,e,r,n,t,d,l]),!h||!e)return Ee("select",{id:i,name:e,defaultValue:r!==void 0?String(r):"",required:n,disabled:t,style:p,onClick:f,"data-kubuild-node":v,children:[o&&q("option",{value:"",disabled:!0,children:o}),c.map((I,D)=>q("option",{value:I.value,children:I.label},D))]});let x=h.values[e],b=x!=null?String(x):r!=null?String(r):"",R=h.errors[e],k=!!h.touched[e],w=!!(R&&k);return Ee("select",{id:i,name:e,value:b,onChange:I=>{h.setFieldValue(e,I.target.value),a&&a.length>0&&_({node:{id:s||i||e,type:"select",actions:a},trigger:"change",document:u,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:I.target.value},onDiagnostic:y,onActionDispatch:m})},onBlur:()=>{h.setFieldTouched(e,!0),a&&a.length>0&&_({node:{id:s||i||e,type:"select",actions:a},trigger:"blur",document:u,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:y,onActionDispatch:m})},onFocus:()=>{a&&a.length>0&&_({node:{id:s||i||e,type:"select",actions:a},trigger:"focus",document:u,context:g,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:y,onActionDispatch:m})},required:n,disabled:t,style:p,onClick:f,"data-kubuild-node":v,"data-field":e,"data-invalid":w?"true":void 0,"aria-invalid":w?!0:void 0,"aria-errormessage":R?`${i}-error`:void 0,children:[o&&q("option",{value:"",disabled:!0,children:o}),c.map((I,D)=>q("option",{value:I.value,children:I.label},D))]})},Gt=({id:i,name:e,label:o="",defaultChecked:r=!1,required:n,disabled:t,rules:d,validateOn:l,style:c,onClick:p,actions:f,nodeId:a,document:s,renderContext:u,onDiagnostic:g,onActionDispatch:y,dataKubuildNode:m,isEditable:v,onNodePropChange:h})=>{let x=Q();x&&e&&x.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:d||[],validateOn:l}),ge(()=>{if(!x||!e)return;let w=x.registerField({name:e,defaultValue:r,required:n,disabled:t,rules:d||[],validateOn:l});return()=>{w()}},[x,e,r,n,t,d,l]);let b=x&&e&&x.values[e]!==void 0?!!x.values[e]:r;return Ee("label",{id:i,style:c,onClick:p,"data-kubuild-node":m,children:[q("input",{type:"checkbox",name:e,checked:b,onChange:w=>{x&&e&&(x.setFieldValue(e,w.target.checked),f&&f.length>0&&_({node:{id:a||i||e,type:"checkbox",actions:f},trigger:"change",document:s,context:u,formContext:x,extraContext:{fieldName:e,fieldValue:w.target.checked},onDiagnostic:g,onActionDispatch:y}))},onBlur:()=>{x&&e&&(x.setFieldTouched(e,!0),f&&f.length>0&&_({node:{id:a||i||e,type:"checkbox",actions:f},trigger:"blur",document:s,context:u,formContext:x,extraContext:{fieldName:e,fieldValue:b},onDiagnostic:g,onActionDispatch:y}))},required:n,disabled:t,style:{cursor:t?"not-allowed":"pointer"},"data-field":e}),v?q(K,{as:"span",value:o,isEditable:v,nodeId:m||"",onChange:(w,S)=>h?.(m||"","label",w,S)}):q("span",{children:o})]})},Xt=({id:i,name:e,label:o="",value:r="",defaultChecked:n=!1,required:t,disabled:d,rules:l,validateOn:c,style:p,onClick:f,actions:a,nodeId:s,document:u,renderContext:g,onDiagnostic:y,onActionDispatch:m,dataKubuildNode:v,isEditable:h,onNodePropChange:x})=>{let b=Q();b&&e&&b.registerField({name:e,defaultValue:n?r:void 0,required:t,disabled:d,rules:l||[],validateOn:c}),ge(()=>{if(!b||!e)return;let S=b.registerField({name:e,defaultValue:n?r:void 0,required:t,disabled:d,rules:l||[],validateOn:c});return()=>{S()}},[b,e,n,r,t,d,l,c]);let R=b&&e&&b.values[e]!==void 0?b.values[e]===r:n;return Ee("label",{id:i,style:p,onClick:f,"data-kubuild-node":v,children:[q("input",{type:"radio",name:e,value:r,checked:R,onChange:()=>{b&&e&&(b.setFieldValue(e,r),a&&a.length>0&&_({node:{id:s||i||e,type:"radio",actions:a},trigger:"change",document:u,context:g,formContext:b,extraContext:{fieldName:e,fieldValue:r},onDiagnostic:y,onActionDispatch:m}))},onBlur:()=>{b&&e&&(b.setFieldTouched(e,!0),a&&a.length>0&&_({node:{id:s||i||e,type:"radio",actions:a},trigger:"blur",document:u,context:g,formContext:b,extraContext:{fieldName:e,fieldValue:r},onDiagnostic:y,onActionDispatch:m}))},required:t,disabled:d,style:{cursor:d?"not-allowed":"pointer"},"data-field":e}),h?q(K,{as:"span",value:o,isEditable:h,nodeId:v||"",onChange:(S,T)=>x?.(v||"","label",S,T)}):q("span",{children:o})]})};async function fo(i){let{event:e,buttonType:o,disabled:r,formRuntime:n,onClick:t,node:d,actions:l,document:c,renderContext:p,onDiagnostic:f,onActionDispatch:a,executeActions:s=_}=i;if(r)return;if(o==="submit"){if(n&&!await n.handleFormSubmit(e))return}else o==="reset"&&n?.resetForm();if(t){t(e);return}let u=d||(l?{id:"button",type:"button",actions:l}:void 0);u?.actions&&u.actions.length>0&&await s({node:u,trigger:"click",document:c,context:p,formContext:n,onDiagnostic:f,onActionDispatch:a})}var Jt=({id:i,buttonType:e,disabled:o,ariaLabel:r,style:n,onClick:t,actions:d,node:l,document:c,renderContext:p,onDiagnostic:f,onActionDispatch:a,dataKubuildNode:s,actionAttrs:u,children:g})=>{let y=Q(),m=y?.isSubmitting===!0,v=o||e==="submit"&&m;return q("button",{id:i,type:e,disabled:v,"aria-disabled":v?!0:void 0,"aria-label":r,"aria-busy":e==="submit"&&m?!0:void 0,tabIndex:v?-1:0,style:n,onClick:v?void 0:async x=>{await fo({event:x,buttonType:e,disabled:v,formRuntime:y,onClick:t,node:l||(d?{id:s||i||"button",type:"button",actions:d}:void 0),document:c,renderContext:p,onDiagnostic:f,onActionDispatch:a})},"data-kubuild-node":s,...u,children:g})};function Zt(i){return i?i.replace(/[-_](\w)/g,(e,o)=>o.toUpperCase()).replace(/^\w/,e=>e.toUpperCase()):""}function Qt(i){if(!i||typeof i!="string")return null;let e=i.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function en(i){if(!i||typeof i!="string")return null;let e=i.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function tn(i){if(i==="16:9")return"16 / 9";if(i==="4:3")return"4 / 3";if(i==="1:1")return"1 / 1";if(i==="9:16")return"9 / 16";if(typeof i=="string"&&i!=="auto")return i.replace(":"," / ")}import qe from"react";import{ARTBOARD_REFERENCE_NODE_TYPE as go}from"@kubuild/schema";import{jsx as Y,jsxs as je}from"react/jsx-runtime";function nn(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,childrenElements:d,handleClick:l,context:c,mode:p,isModalOpen:f}=i,a=n.modalId||t.modalId||e.id,s=String(a).trim(),u=c?.modalManager||J,g=p==="editor"&&c?.artboardSurface==="component";switch(e.type){case"modal":{if(!f&&p==="runtime")return Y(qe.Fragment,{});let y=n.backdrop!==!1&&t.backdrop!==!1,m=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,v=n.showCloseButton!==!1&&t.showCloseButton!==!1,h=n.title??t.title,x=h!==void 0?String(h):void 0,b=n.size||t.size||"md",R=b==="sm"?"400px":b==="lg"?"768px":b==="fullscreen"?"100%":"560px",k=b==="fullscreen"?"100%":"auto";return Y("div",{id:`${o}-overlay`,"data-kubuild-overlay":s,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",alignItems:"flex-start",justifyContent:"center",padding:b==="fullscreen"?"0":"16px"}:{position:p==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:y?"rgba(15, 23, 42, 0.65)":"transparent",backdropFilter:y?"blur(4px)":"none",display:"flex",alignItems:b==="fullscreen"?"stretch":"center",justifyContent:"center",zIndex:9999,padding:b==="fullscreen"?"0":"16px"},onClick:w=>{w.target===w.currentTarget&&m&&p==="runtime"&&u.closeModal(s)},children:je("div",{id:o,style:{...r,position:"relative",boxSizing:"border-box",maxWidth:R,height:k,width:"100%"},onClick:l,"data-kubuild-node":e.id,role:"dialog","aria-modal":"true","aria-label":typeof x=="string"?x:"Modal Dialog",children:[v&&Y("button",{type:"button","aria-label":"Close modal",style:{position:"absolute",top:"14px",right:"14px",background:"transparent",border:"none",fontSize:"18px",cursor:"pointer",color:"#64748b",padding:"4px 8px",lineHeight:1},onClick:w=>{w.stopPropagation(),u.closeModal(s)},children:"\u2715"}),x&&Y("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(x)}),d]})})}case"drawer":{if(!f&&p==="runtime")return Y(qe.Fragment,{});let y=n.placement||t.placement||"right",m=n.backdrop!==!1&&t.backdrop!==!1,v=n.closeOnBackdrop!==!1&&t.closeOnBackdrop!==!1,h=n.showCloseButton!==!1&&t.showCloseButton!==!1,x=n.title??t.title,b=x!==void 0?String(x):void 0,R=y==="top"||y==="bottom";return Y("div",{id:`${o}-overlay`,"data-kubuild-overlay":s,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",justifyContent:y==="left"?"flex-start":y==="right"?"flex-end":"center",alignItems:"flex-start",padding:"16px"}:{position:p==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:m?"rgba(15, 23, 42, 0.5)":"transparent",backdropFilter:m?"blur(2px)":"none",display:"flex",justifyContent:y==="left"?"flex-start":y==="right"?"flex-end":"center",alignItems:y==="top"?"flex-start":y==="bottom"?"flex-end":"stretch",zIndex:9999},onClick:k=>{k.target===k.currentTarget&&v&&p==="runtime"&&u.closeModal(s)},children:je("div",{id:o,style:{...r,position:"relative",boxSizing:"border-box",height:g||R?"auto":"100%",...g?{minHeight:"240px"}:{},width:R?"100%":r.width||"320px",maxHeight:g?"none":R?"80vh":"100%",overflowY:"auto"},onClick:l,"data-kubuild-node":e.id,role:"region","aria-label":typeof b=="string"?b:"Drawer",children:[h&&Y("button",{type:"button","aria-label":"Close drawer",style:{position:"absolute",top:"14px",right:"14px",background:"transparent",border:"none",fontSize:"18px",cursor:"pointer",color:"#64748b",padding:"4px 8px",lineHeight:1},onClick:k=>{k.stopPropagation(),u.closeModal(s)},children:"\u2715"}),b&&Y("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(b)}),d]})})}case"collapsible":return Y("div",{id:o,style:{...r,display:(p==="editor"?!0:!!f)?r.display||"block":"none"},onClick:l,"data-kubuild-node":e.id,"data-kubuild-collapsible":s,children:d});case go:{if(p==="runtime")return Y(qe.Fragment,{});let y=typeof t.artboardId=="string"?t.artboardId:void 0,m=(typeof t.label=="string"&&t.label.trim().length>0?t.label:y)||"artboard";return je("div",{id:o,style:{display:"inline-flex",alignItems:"center",gap:"6px",padding:"6px 10px",border:"1px dashed #94a3b8",borderRadius:"6px",backgroundColor:"#f8fafc",color:"#475569",fontSize:"12px",fontFamily:"ui-sans-serif, system-ui, sans-serif",cursor:"pointer",...r},onClick:l,"data-kubuild-node":e.id,"data-kubuild-artboard-reference":y,title:`Opens artboard "${m}" \u2014 edit it on its own canvas surface`,children:[Y("span",{"aria-hidden":"true",children:"\u29C9"}),Y("span",{children:`Opens: ${m}`})]})}default:return null}}import{jsx as C,jsxs as G}from"react/jsx-runtime";function Ro(i){let{node:e,document:o,definition:r,resolvedProps:n,styles:t,context:d,childrenElements:l,handleClick:c}=i;if(r?.renderer&&typeof r.renderer=="function"){let p=r.renderer;return typeof p=="function"&&!p.prototype?.isReactComponent?p({node:e,document:o,props:n,styles:t,context:d,children:l,onClick:c}):C(p,{node:e,document:o,props:n,styles:t,context:d,onClick:c,children:l})}return null}function wo(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,handleClick:d,childrenElements:l}=i;switch(e.type){case"page":return C("div",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,children:l});case"section":{let c=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return C("section",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,"aria-label":c,children:l})}case"container":return C("div",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,children:l});case"columns":return C("div",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,children:l});case"flex":case"grid":{let c=typeof n.ariaLabel=="string"?n.ariaLabel:typeof t.ariaLabel=="string"?t.ariaLabel:void 0;return C("div",{id:o,style:r,onClick:d,"data-kubuild-node":e.id,"aria-label":c,children:l})}default:return null}}function Co(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:c,childrenElements:p,selectedNodeId:f}=i,a=e.id===f;switch(e.type){case"heading":{let s=typeof n.level=="number"?n.level:1,u=`h${Math.min(Math.max(s,1),6)}`||"h1",g=String(n.text??n.content??t.text??t.content??""),y=d==="editor"&&a&&!M(t.text)&&!M(t.content);return C(K,{as:u,id:o,style:r,value:g,isEditable:y,nodeId:e.id,onClick:l,onChange:(m,v)=>c?.(e.id,"text",m,v)})}case"text":{let s=String(n.text??n.content??t.text??t.content??""),u=typeof n.as=="string"?n.as:typeof t.as=="string"?t.as:typeof n.tag=="string"?n.tag:typeof t.tag=="string"?t.tag:(t.content!==void 0||n.content!==void 0)&&t.text===void 0&&n.text===void 0?"p":"span",g=d==="editor"&&a&&!M(t.text)&&!M(t.content);return C(K,{as:u,id:o,style:r,value:s,isEditable:g,nodeId:e.id,onClick:l,onChange:(y,m)=>c?.(e.id,"text",y,m)})}case"paragraph":{let s=String(n.text??n.content??t.text??t.content??""),u=d==="editor"&&a&&!M(t.text)&&!M(t.content);return C(K,{as:"p",id:o,style:r,value:s,isEditable:u,nodeId:e.id,onClick:l,onChange:(g,y)=>c?.(e.id,"text",g,y)})}case"link":{let s=String(n.text??n.label??n.content??t.text??t.label??t.content??""),u=typeof n.href=="string"?n.href:"#",g=typeof n.target=="string"?n.target:void 0,y=d==="editor"&&a&&!M(t.text)&&!M(t.label)&&!M(t.content),m=typeof n.rel=="string"?n.rel:g==="_blank"?"noopener noreferrer":void 0,v=d==="editor"?void 0:oe(u,"#"),h=x=>{d==="editor"&&x.preventDefault(),l(x)};return y?C(K,{as:"a",id:o,style:r,value:s,isEditable:y,nodeId:e.id,onClick:h,onChange:(x,b)=>{let R="text"in t?"text":"label";c?.(e.id,R,x,b)},href:v,target:g,rel:m}):C("a",{id:o,style:r,href:v,target:g,rel:m,onClick:h,"data-kubuild-node":e.id,children:s})}case"blockquote":{let s=typeof n.quote=="string"?n.quote:typeof n.text=="string"?n.text:typeof t.quote=="string"?t.quote:typeof t.text=="string"?t.text:void 0,u=typeof n.cite=="string"?n.cite:typeof t.cite=="string"?t.cite:void 0,g=d==="editor"&&a&&!M(t.quote)&&!M(t.text),y={borderLeft:"4px solid #cbd5e1",paddingLeft:"1rem",margin:"1rem 0",fontStyle:"italic",color:"#475569",...r};return G("blockquote",{id:o,style:y,onClick:l,"data-kubuild-node":e.id,cite:u,children:[s!==void 0?g?C(K,{as:"p",value:s,isEditable:g,nodeId:e.id,onChange:(m,v)=>{let h="quote"in t?"quote":"text";c?.(e.id,h,m,v)}}):C("p",{children:s}):null,p,u&&G("cite",{style:{display:"block",fontStyle:"normal",fontSize:"0.875rem",marginTop:"0.5rem",color:"#64748b"},children:["\u2014 ",u]})]})}case"badge":{let s=String(n.text??n.label??t.text??t.label??""),u=typeof n.variant=="string"?n.variant:typeof t.variant=="string"?t.variant:"default",g=d==="editor"&&a&&!M(t.text)&&!M(t.label);return C("span",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,"data-variant":u,"data-badge-variant":u,children:g?C(K,{as:"span",value:s,isEditable:g,nodeId:e.id,onChange:(y,m)=>{let v="text"in t?"text":"label";c?.(e.id,v,y,m)}}):s})}case"code-block":{let s=String(n.code??t.code??""),u=typeof n.language=="string"?n.language:typeof t.language=="string"?t.language:"plaintext";return d==="editor"?C("pre",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,"data-language":u,children:C("code",{className:`language-${u}`,contentEditable:!0,suppressContentEditableWarning:!0,onBlur:g=>c?.(e.id,"code",g.currentTarget.textContent??"",!0),children:s})}):C("pre",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,"data-language":u,children:C("code",{className:`language-${u}`,children:s})})}default:return null}}function $o(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:c,childrenElements:p,selectedNodeId:f}=i,a=e.id===f;switch(e.type){case"list":{let u=(n.tag||t.tag)==="ol"||n.ordered===!0||t.ordered===!0?"ol":"ul",g=typeof n.listStyleType=="string"?n.listStyleType:typeof n.listStyle=="string"?n.listStyle:typeof t.listStyleType=="string"?t.listStyleType:typeof t.listStyle=="string"?t.listStyle:void 0,y=g==="custom-icon"||g==="none"?"none":g,m={...r,...y?{listStyleType:y}:{}};return C(u,{id:o,style:m,onClick:l,"data-kubuild-node":e.id,"data-list-style":g,children:p})}case"list-item":{let s=n.text!==void 0?String(n.text):t.text!==void 0?String(t.text):void 0,u=d==="editor"&&a&&!M(t.text)&&s!==void 0;return G("li",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,children:[s!==void 0&&(u?C(K,{as:"span",value:s,isEditable:u,nodeId:e.id,onChange:(g,y)=>c?.(e.id,"text",g,y)}):s),p]})}default:return null}}function So(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,mode:d,handleClick:l,onNodePropChange:c,childrenElements:p,selectedNodeId:f}=i,a=e.id===f;switch(e.type){case"table":{let s=typeof n.cellPadding=="number"?n.cellPadding:void 0,u=typeof n.cellSpacing=="number"?n.cellSpacing:void 0,g=typeof n.border=="number"?n.border:void 0,y=n.striped===!0||t.striped===!0,m=n.bordered===!0||t.bordered===!0,v=n.hover===!0||t.hover===!0,h=n.compact===!0||t.compact===!0;return C("table",{id:o,style:r,cellPadding:s,cellSpacing:u,border:g,onClick:l,"data-kubuild-node":e.id,"data-striped":y?"true":void 0,"data-bordered":m?"true":void 0,"data-hover":v?"true":void 0,"data-compact":h?"true":void 0,children:C("tbody",{children:p})})}case"table-row":return C("tr",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,children:p});case"table-cell":{let u=n.tag==="th"||t.tag==="th"||n.isHeader===!0||t.isHeader===!0||n.cellType==="header"||t.cellType==="header"||n.type==="th"||t.type==="th"?"th":"td",g=typeof n.colSpan=="number"?n.colSpan:typeof t.colSpan=="number"?t.colSpan:void 0,y=typeof n.rowSpan=="number"?n.rowSpan:typeof t.rowSpan=="number"?t.rowSpan:void 0,m=n.text!==void 0?String(n.text):t.text!==void 0?String(t.text):void 0,v=d==="editor"&&a&&!M(t.text)&&m!==void 0;return G(u,{id:o,colSpan:g,rowSpan:y,style:r,onClick:l,"data-kubuild-node":e.id,children:[m!==void 0&&(v?C(K,{as:"span",value:m,isEditable:v,nodeId:e.id,onChange:(h,x)=>c?.(e.id,"text",h,x)}):m),p]})}default:return null}}function ze(i){let o=`<svg xmlns="http://www.w3.org/2000/svg" width="600" height="400" viewBox="0 0 600 400" fill="none">
|
|
124
|
+
${r}</style>`}):""}var Hn=({id:t,style:e,onClick:n,dataKubuildNode:i,html:r,role:o})=>{let s=Ln(null),d=Ln(null),c=ii(()=>si(r),[r]);return ai(()=>{let u=s.current;if(u){if(typeof u.attachShadow=="function"){if(!d.current)if(u.shadowRoot)d.current=u.shadowRoot;else try{d.current=u.attachShadow({mode:"open"})}catch{d.current=u.shadowRoot}if(d.current){d.current.innerHTML=c;return}}u.innerHTML=c}},[c]),_n("div",{ref:s,id:t,style:e,onClick:n,"data-kubuild-node":i,role:o,children:_n("template",{shadowrootmode:"open",dangerouslySetInnerHTML:{__html:c}})})};import{useContext as ui,useEffect as De}from"react";import{createContext as di}from"react";var nt=di(null);import zn,{useEffect as li}from"react";import{ActionPipelineExecutor as ci}from"@kubuild/core";async function _(t){let{node:e,trigger:n,document:i,context:r,formContext:o,extraContext:s,onDiagnostic:d,onActionDispatch:c,executor:u}=t;if(!e.actions||!Array.isArray(e.actions)||e.actions.length===0)return{executed:!1,success:!0};let f=e.actions.filter(p=>p.trigger===n&&p.enabled!==!1);if(f.length===0)return{executed:!1,success:!0};let a=u||new ci;tt(a);let l={trigger:n,form:o?{...o.values}:{},variables:r?.variables?{...r.variables}:{},nodeId:e.id,document:i,toastManager:r?.toastManager,modalManager:r?.modalManager,trackingConfig:r?.trackingConfig||i?.tracking||i?.metadata?.tracking,trackingRuntime:r?.tracking,reportDiagnostic:p=>{d?.(p),r?.onDiagnostic?.(p)},...s||{}};for(let p of f){let m=await a.execute(p,{context:l});if(c&&p.steps.length>0&&c(p.steps[0].type,p.steps[0].payload,e.id),!m.success){let b=m.error instanceof Error?m.error.message:String(m.error||`Action pipeline "${p.id}" failed`),y={code:"ACTION_EXECUTION_ERROR",actionType:p.steps[0]?.type||n,nodeId:e.id,message:b,error:m.error};return d?.(y),r?.onDiagnostic?.(y),{executed:!0,success:!1,error:m.error}}}return{executed:!0,success:!0}}function qn(t,e){if(!t.actions?.some(o=>o.trigger==="load"&&o.enabled!==!1))return;let i=zn?.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||zn?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(i?.H||i?.ReactCurrentDispatcher?.current)try{li(()=>{e.mode!=="editor"&&_({node:t,trigger:"load",document:e.document,context:e.context,formContext:e.formContext,onDiagnostic:e.onDiagnostic,onActionDispatch:e.onActionDispatch})},[t,e.document,e.context,e.formContext,e.onDiagnostic,e.onActionDispatch,e.mode])}catch{}}import{jsx as Y,jsxs as ot}from"react/jsx-runtime";var jn=({id:t,name:e,action:n,method:i="POST",target:r,autoComplete:o,style:s,onClick:d,mode:c,dataKubuildNode:u,children:f})=>{let a=te();return Y("form",{id:t,name:e,action:n,method:i,target:r,autoComplete:o,style:s,onClick:d,onSubmit:m=>{if(c==="editor"){m.preventDefault();return}a&&a.handleFormSubmit(m)},onReset:()=>{a&&a.resetForm()},"data-kubuild-node":u,role:"form","aria-label":e,children:f})},Un=({id:t,name:e,type:n="text",placeholder:i,defaultValue:r,required:o,disabled:s,readOnly:d,rules:c,validateOn:u,transform:f,style:a,onClick:l,actions:p,nodeId:m,document:b,renderContext:y,onDiagnostic:v,onActionDispatch:h,dataKubuildNode:x})=>{let g=te();if(g&&e&&g.registerField({name:e,defaultValue:r,required:o,disabled:s,rules:c||[],validateOn:u,transform:f}),De(()=>{if(!g||!e)return;let N=g.registerField({name:e,defaultValue:r,required:o,disabled:s,rules:c||[],validateOn:u,transform:f});return()=>{N()}},[g,e,r,o,s,c,u,f]),!g||!e)return Y("input",{id:t,type:n,name:e,placeholder:i,defaultValue:r!==void 0?String(r):void 0,required:o,disabled:s,readOnly:d,style:a,onClick:l,"data-kubuild-node":x});let S=g.values[e],k=S!=null?String(S):r!=null?String(r):"",R=g.errors[e],C=!!g.touched[e],w=!!(R&&C);return Y("input",{id:t,type:n,name:e,placeholder:i,value:k,onChange:N=>{let O=N.target.value;n==="number"&&(O=N.target.value===""?"":Number(N.target.value)),g.setFieldValue(e,O),p&&p.length>0&&_({node:{id:m||t||e,type:"input",actions:p},trigger:"change",document:b,context:y,formContext:g,extraContext:{fieldName:e,fieldValue:O},onDiagnostic:v,onActionDispatch:h})},onBlur:()=>{g.setFieldTouched(e,!0),p&&p.length>0&&_({node:{id:m||t||e,type:"input",actions:p},trigger:"blur",document:b,context:y,formContext:g,extraContext:{fieldName:e,fieldValue:g.values[e]},onDiagnostic:v,onActionDispatch:h})},onFocus:()=>{p&&p.length>0&&_({node:{id:m||t||e,type:"input",actions:p},trigger:"focus",document:b,context:y,formContext:g,extraContext:{fieldName:e,fieldValue:g.values[e]},onDiagnostic:v,onActionDispatch:h})},required:o,disabled:s,readOnly:d,style:a,onClick:l,"data-kubuild-node":x,"data-field":e,"data-invalid":w?"true":void 0,"aria-invalid":w?!0:void 0,"aria-errormessage":R?`${t}-error`:void 0})},Wn=({id:t,name:e,placeholder:n,defaultValue:i,rows:r=4,required:o,disabled:s,readOnly:d,rules:c,validateOn:u,transform:f,style:a,onClick:l,actions:p,nodeId:m,document:b,renderContext:y,onDiagnostic:v,onActionDispatch:h,dataKubuildNode:x})=>{let g=te();if(g&&e&&g.registerField({name:e,defaultValue:i,required:o,disabled:s,rules:c||[],validateOn:u,transform:f}),De(()=>{if(!g||!e)return;let N=g.registerField({name:e,defaultValue:i,required:o,disabled:s,rules:c||[],validateOn:u,transform:f});return()=>{N()}},[g,e,i,o,s,c,u,f]),!g||!e)return Y("textarea",{id:t,name:e,placeholder:n,defaultValue:i!==void 0?String(i):void 0,rows:r,required:o,disabled:s,readOnly:d,style:a,onClick:l,"data-kubuild-node":x});let S=g.values[e],k=S!=null?String(S):i!=null?String(i):"",R=g.errors[e],C=!!g.touched[e],w=!!(R&&C);return Y("textarea",{id:t,name:e,placeholder:n,rows:r,value:k,onChange:N=>{g.setFieldValue(e,N.target.value),p&&p.length>0&&_({node:{id:m||t||e,type:"textarea",actions:p},trigger:"change",document:b,context:y,formContext:g,extraContext:{fieldName:e,fieldValue:N.target.value},onDiagnostic:v,onActionDispatch:h})},onBlur:()=>{g.setFieldTouched(e,!0),p&&p.length>0&&_({node:{id:m||t||e,type:"textarea",actions:p},trigger:"blur",document:b,context:y,formContext:g,extraContext:{fieldName:e,fieldValue:g.values[e]},onDiagnostic:v,onActionDispatch:h})},onFocus:()=>{p&&p.length>0&&_({node:{id:m||t||e,type:"textarea",actions:p},trigger:"focus",document:b,context:y,formContext:g,extraContext:{fieldName:e,fieldValue:g.values[e]},onDiagnostic:v,onActionDispatch:h})},required:o,disabled:s,readOnly:d,style:a,onClick:l,"data-kubuild-node":x,"data-field":e,"data-invalid":w?"true":void 0,"aria-invalid":w?!0:void 0,"aria-errormessage":R?`${t}-error`:void 0})},Kn=({id:t,name:e,placeholder:n,defaultValue:i,required:r,disabled:o,rules:s,validateOn:d,optionsList:c,style:u,onClick:f,actions:a,nodeId:l,document:p,renderContext:m,onDiagnostic:b,onActionDispatch:y,dataKubuildNode:v})=>{let h=te();if(h&&e&&h.registerField({name:e,defaultValue:i,required:r,disabled:o,rules:s||[],validateOn:d}),De(()=>{if(!h||!e)return;let P=h.registerField({name:e,defaultValue:i,required:r,disabled:o,rules:s||[],validateOn:d});return()=>{P()}},[h,e,i,r,o,s,d]),!h||!e)return ot("select",{id:t,name:e,defaultValue:i!==void 0?String(i):"",required:r,disabled:o,style:u,onClick:f,"data-kubuild-node":v,children:[n&&Y("option",{value:"",disabled:!0,children:n}),c.map((P,I)=>Y("option",{value:P.value,children:P.label},I))]});let x=h.values[e],g=x!=null?String(x):i!=null?String(i):"",S=h.errors[e],k=!!h.touched[e],R=!!(S&&k);return ot("select",{id:t,name:e,value:g,onChange:P=>{h.setFieldValue(e,P.target.value),a&&a.length>0&&_({node:{id:l||t||e,type:"select",actions:a},trigger:"change",document:p,context:m,formContext:h,extraContext:{fieldName:e,fieldValue:P.target.value},onDiagnostic:b,onActionDispatch:y})},onBlur:()=>{h.setFieldTouched(e,!0),a&&a.length>0&&_({node:{id:l||t||e,type:"select",actions:a},trigger:"blur",document:p,context:m,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:b,onActionDispatch:y})},onFocus:()=>{a&&a.length>0&&_({node:{id:l||t||e,type:"select",actions:a},trigger:"focus",document:p,context:m,formContext:h,extraContext:{fieldName:e,fieldValue:h.values[e]},onDiagnostic:b,onActionDispatch:y})},required:r,disabled:o,style:u,onClick:f,"data-kubuild-node":v,"data-field":e,"data-invalid":R?"true":void 0,"aria-invalid":R?!0:void 0,"aria-errormessage":S?`${t}-error`:void 0,children:[n&&Y("option",{value:"",disabled:!0,children:n}),c.map((P,I)=>Y("option",{value:P.value,children:P.label},I))]})},Gn=({id:t,name:e,label:n="",defaultChecked:i=!1,required:r,disabled:o,rules:s,validateOn:d,style:c,onClick:u,actions:f,nodeId:a,document:l,renderContext:p,onDiagnostic:m,onActionDispatch:b,dataKubuildNode:y,isEditable:v,onNodePropChange:h})=>{let x=te();x&&e&&x.registerField({name:e,defaultValue:i,required:r,disabled:o,rules:s||[],validateOn:d}),De(()=>{if(!x||!e)return;let R=x.registerField({name:e,defaultValue:i,required:r,disabled:o,rules:s||[],validateOn:d});return()=>{R()}},[x,e,i,r,o,s,d]);let g=x&&e&&x.values[e]!==void 0?!!x.values[e]:i;return ot("label",{id:t,style:c,onClick:u,"data-kubuild-node":y,children:[Y("input",{type:"checkbox",name:e,checked:g,onChange:R=>{x&&e&&(x.setFieldValue(e,R.target.checked),f&&f.length>0&&_({node:{id:a||t||e,type:"checkbox",actions:f},trigger:"change",document:l,context:p,formContext:x,extraContext:{fieldName:e,fieldValue:R.target.checked},onDiagnostic:m,onActionDispatch:b}))},onBlur:()=>{x&&e&&(x.setFieldTouched(e,!0),f&&f.length>0&&_({node:{id:a||t||e,type:"checkbox",actions:f},trigger:"blur",document:l,context:p,formContext:x,extraContext:{fieldName:e,fieldValue:g},onDiagnostic:m,onActionDispatch:b}))},required:r,disabled:o,style:{cursor:o?"not-allowed":"pointer"},"data-field":e}),v?Y(G,{as:"span",value:n,isEditable:v,nodeId:y||"",onChange:(R,C)=>h?.(y||"","label",R,C)}):Y("span",{children:n})]})},rt=({id:t,name:e,label:n="",value:i="",defaultChecked:r=!1,required:o,disabled:s,rules:d,validateOn:c,style:u,onClick:f,actions:a,nodeId:l,document:p,renderContext:m,onDiagnostic:b,onActionDispatch:y,dataKubuildNode:v,isEditable:h,onNodePropChange:x})=>{let g=te(),S=ui(nt),k=!!S?.name,R=k?S.name:e,C=k?S.required:o,w=!!(s||S?.disabled);g&&R&&!k&&g.registerField({name:R,defaultValue:r?i:void 0,required:C,disabled:w,rules:d||[],validateOn:c}),De(()=>{if(!g||!R||k)return;let N=g.registerField({name:R,defaultValue:r?i:void 0,required:C,disabled:w,rules:d||[],validateOn:c});return()=>{N()}},[g,R,k,r,i,C,w,d,c]);let T=g&&R&&g.values[R]!==void 0?g.values[R]===i:r;return ot("label",{id:t,style:u,onClick:f,"data-kubuild-node":v,children:[Y("input",{type:"radio",name:R,value:i,checked:T,onChange:()=>{g&&R&&(g.setFieldValue(R,i),a&&a.length>0&&_({node:{id:l||t||R,type:"radio",actions:a},trigger:"change",document:p,context:m,formContext:g,extraContext:{fieldName:R,fieldValue:i},onDiagnostic:b,onActionDispatch:y}))},onBlur:()=>{g&&R&&(g.setFieldTouched(R,!0),a&&a.length>0&&_({node:{id:l||t||R,type:"radio",actions:a},trigger:"blur",document:p,context:m,formContext:g,extraContext:{fieldName:R,fieldValue:i},onDiagnostic:b,onActionDispatch:y}))},required:C,disabled:w,style:{cursor:w?"not-allowed":"pointer"},"data-field":R}),h?Y(G,{as:"span",value:n,isEditable:h,nodeId:v||"",onChange:(N,O)=>x?.(v||"","label",N,O)}):Y("span",{children:n})]})};async function Dt(t){let{event:e,buttonType:n,disabled:i,formRuntime:r,onClick:o,node:s,actions:d,document:c,renderContext:u,onDiagnostic:f,onActionDispatch:a,executeActions:l=_}=t;if(i)return;if(n==="submit"){if(r&&!await r.handleFormSubmit(e))return}else n==="reset"&&r?.resetForm();if(o){o(e);return}let p=s||(d?{id:"button",type:"button",actions:d}:void 0);p?.actions&&p.actions.length>0&&await l({node:p,trigger:"click",document:c,context:u,formContext:r,onDiagnostic:f,onActionDispatch:a})}var Yn=({id:t,buttonType:e,disabled:n,ariaLabel:i,style:r,onClick:o,actions:s,node:d,document:c,renderContext:u,onDiagnostic:f,onActionDispatch:a,dataKubuildNode:l,actionAttrs:p,children:m})=>{let b=te(),y=b?.isSubmitting===!0,v=n||e==="submit"&&y;return Y("button",{id:t,type:e,disabled:v,"aria-disabled":v?!0:void 0,"aria-label":i,"aria-busy":e==="submit"&&y?!0:void 0,tabIndex:v?-1:0,style:r,onClick:v?void 0:async x=>{await Dt({event:x,buttonType:e,disabled:v,formRuntime:b,onClick:o,node:d||(s?{id:l||t||"button",type:"button",actions:s}:void 0),document:c,renderContext:u,onDiagnostic:f,onActionDispatch:a})},"data-kubuild-node":l,...p,children:m})};import{useEffect as to,useMemo as pi,useState as at}from"react";import{icons as fi,Loader2 as mi}from"lucide-react";function it(t){return t?t.replace(/[-_](\w)/g,(e,n)=>n.toUpperCase()).replace(/^\w/,e=>e.toUpperCase()):""}function Xn(t){if(!t||typeof t!="string")return null;let e=t.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function Jn(t){if(!t||typeof t!="string")return null;let e=t.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function Qn(t){if(t==="16:9")return"16 / 9";if(t==="4:3")return"4 / 3";if(t==="1:1")return"1 / 1";if(t==="9:16")return"9 / 16";if(typeof t=="string"&&t!=="auto")return t.replace(":"," / ")}import{Fragment as ao,jsx as H,jsxs as ge}from"react/jsx-runtime";var gi={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},bi={fontSize:"12px",color:"#64748b"},yi={fontSize:"12px",color:"#dc2626"},hi=[];function Ot(t){let e=te();e&&t?.name&&e.registerField(t);let n=t?.name,{defaultValue:i,required:r,disabled:o,rules:s,validateOn:d}=t||{};return to(()=>{if(!(!e||!n))return e.registerField({name:n,defaultValue:i,required:r,disabled:o,rules:s||[],validateOn:d})},[e,n,i,r,o,s,d]),e}function Ft(t,e,n,i,r,o){!t.actions||t.actions.length===0||_({node:{id:t.nodeId||r,type:e,actions:t.actions},trigger:n,document:t.document,context:t.renderContext,formContext:i,extraContext:{fieldName:r,fieldValue:o},onDiagnostic:t.onDiagnostic,onActionDispatch:t.onActionDispatch})}function Mt({id:t,helperText:e,error:n}){return!e&&!n?null:ge(ao,{children:[e?H("span",{style:bi,"data-kubuild-helper-text":!0,children:e}):null,n?H("span",{id:t?`${t}-error`:void 0,role:"alert",style:yi,"data-kubuild-field-error":!0,children:n}):null]})}var no=({id:t,name:e,defaultSelected:n,required:i,disabled:r,orientation:o="vertical",helperText:s,ariaLabel:d,style:c,onClick:u,dataKubuildNode:f,children:a})=>{let l=Ot(e?{name:e,defaultValue:n||void 0,required:i,disabled:r,rules:hi}:null),p=pi(()=>e?{name:e,required:i,disabled:r}:null,[e,i,r]),m=l&&e&&l.touched[e]?l.errors[e]:void 0,b={...c,...o==="horizontal"?{flexDirection:"row",flexWrap:"wrap"}:{}};return H(nt.Provider,{value:p,children:ge("div",{id:t,role:"radiogroup","aria-label":d,"aria-required":i?!0:void 0,"aria-disabled":r?!0:void 0,"aria-invalid":m?!0:void 0,"aria-orientation":o,style:b,onClick:u,"data-kubuild-node":f,"data-field":e,children:[a,H(Mt,{id:t,helperText:s,error:m})]})})},Zn={sm:{width:28,height:16},md:{width:36,height:20},lg:{width:44,height:24}},oo=t=>{let{id:e,name:n,label:i="",value:r,defaultChecked:o=!1,switchSize:s="md",required:d,disabled:c,helperText:u,ariaLabel:f,rules:a,validateOn:l,style:p,onClick:m,dataKubuildNode:b,isEditable:y,onNodePropChange:v}=t,h=r!==void 0&&r!==""?r:!0,x=Ot(n?{name:n,defaultValue:o?h:!1,required:d,disabled:c,rules:a||[],validateOn:l}:null),[g,S]=at(o),k=!!(x&&n),R=k?x.values[n]:void 0,C=k?R!==void 0?R===h||R===!0:o:g,w=k&&x.touched[n]?x.errors[n]:void 0,T=F=>{let M=F.target.checked?h:!1;k?x.setFieldValue(n,M):S(F.target.checked),Ft(t,"switch","change",x,n||e||"switch",M)},P=()=>{k&&x.setFieldTouched(n,!0),Ft(t,"switch","blur",x,n||e||"switch",C?h:!1)},I=Zn[s]||Zn.md,N=I.height-4,O={position:"relative",display:"inline-block",flexShrink:0,width:I.width,height:I.height,borderRadius:I.height,backgroundColor:C?"#2563eb":"#cbd5e1",opacity:c?.5:1,transition:"background-color 150ms ease"},A={position:"absolute",top:2,left:C?I.width-N-2:2,width:N,height:N,borderRadius:"50%",backgroundColor:"#ffffff",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.2)",transition:"left 150ms ease"};return ge("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[ge("label",{id:e,style:{position:"relative",...p,cursor:c?"not-allowed":p?.cursor},onClick:m,"data-kubuild-node":b,children:[H("input",{type:"checkbox",role:"switch",name:n,value:typeof h=="string"?h:void 0,checked:C,"aria-checked":C,"aria-label":f,"aria-invalid":w?!0:void 0,onChange:T,onBlur:P,required:d,disabled:c,style:gi,"data-field":n}),H("span",{"aria-hidden":"true",style:O,"data-kubuild-switch-track":!0,"data-state":C?"on":"off",children:H("span",{style:A})}),y?H(G,{as:"span",value:i,isEditable:y,nodeId:b||"",onChange:(F,M)=>v?.(b||"","label",F,M)}):H("span",{children:i})]}),H(Mt,{id:e,helperText:u,error:w})]})};function vi(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function xi(t,e){if(typeof e!="number"||!(e>0))return{accepted:t,rejected:[]};let n=e*1024*1024;return{accepted:t.filter(i=>i.size<=n),rejected:t.filter(i=>i.size>n)}}var ro=t=>{let{id:e,name:n,label:i="",accept:r,maxFileSize:o,multiple:s=!1,showPreview:d=!0,required:c,disabled:u,helperText:f,ariaLabel:a,rules:l,validateOn:p,style:m,onClick:b,mode:y,dataKubuildNode:v,isEditable:h,onNodePropChange:x}=t,g=Ot(n?{name:n,required:c,disabled:u,rules:l||[],validateOn:p}:null),[S,k]=at([]),[R,C]=at(void 0),w=!!(g&&n),T=e?`${e}-input`:void 0,P=w&&g.touched[n]?g.errors[n]:void 0,I=R||P,N=A=>{let F=Array.from(A.target.files||[]),{accepted:M,rejected:ne}=xi(F,o),ie=ne.length>0?`${ne.map(Le=>`"${Le.name}"`).join(", ")} exceed${ne.length===1?"s":""} the ${o} MB limit`:void 0;C(ie),k(M);let fe=s?M:M[0]??null;w&&(g.setFieldValue(n,fe),g.setFieldTouched(n,!0,!ie),ie&&g.setFieldError(n,ie)),Ft(t,"file-upload","change",g,n||e||"file-upload",fe)},O=w?g.values[n]:void 0;return to(()=>{w&&O==null&&k([])},[w,O]),ge("div",{id:e,style:m,onClick:b,"data-kubuild-node":v,children:[h?H(G,{as:"span",value:i,isEditable:h,nodeId:v||"",onChange:(A,F)=>x?.(v||"","label",A,F)}):i?H("label",{htmlFor:T,children:i}):null,H("input",{id:T,type:"file",name:n,accept:r&&r!=="*/*"?r:void 0,multiple:s,required:c,disabled:u,"aria-label":a,"aria-invalid":I?!0:void 0,"aria-errormessage":I&&e?`${e}-error`:void 0,onChange:N,tabIndex:y==="editor"?-1:void 0,style:y==="editor"?{pointerEvents:"none"}:void 0,"data-field":n}),d&&S.length>0?H("ul",{"data-kubuild-file-preview":!0,style:{margin:0,paddingLeft:"18px",fontSize:"12px",color:"#475569"},children:S.map(A=>ge("li",{children:[A.name," (",vi(A.size),")"]},`${A.name}-${A.size}`))}):null,H(Mt,{id:e,helperText:f,error:I})]})},ki="@keyframes kubuild-spin{to{transform:rotate(360deg)}}";function eo(t){if(!t)return null;let e=fi;return e[it(t)]||e[t]||null}var io=({id:t,label:e,loadingText:n,showSpinner:i=!0,autoDisableOnSubmit:r=!0,buttonType:o,variant:s,disabled:d,prefixIcon:c,suffixIcon:u,ariaLabel:f,title:a,style:l,onClick:p,node:m,document:b,renderContext:y,onDiagnostic:v,onActionDispatch:h,dataKubuildNode:x,isEditable:g,onNodePropChange:S})=>{let k=te(),[R,C]=at(!1),w=R||o==="submit"&&k?.isSubmitting===!0,T=!!d||r&&w,P=async A=>{if(!T){C(!0);try{await Dt({event:A,buttonType:o,disabled:T,formRuntime:k,onClick:p,node:m,document:b,renderContext:y,onDiagnostic:v,onActionDispatch:h})}finally{C(!1)}}},I=eo(c),N=eo(u),O=w&&n?n:e;return ge("button",{id:t,type:o,disabled:T,"aria-disabled":T?!0:void 0,"aria-busy":w?!0:void 0,"aria-label":f,title:a,tabIndex:T?-1:0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"8px",...l},onClick:T?void 0:P,"data-kubuild-node":x,"data-variant":s,"data-state":w?"submitting":"idle",children:[w&&i?ge(ao,{children:[H("style",{children:ki}),H(mi,{size:16,"aria-hidden":"true","data-kubuild-spinner":!0,style:{animation:"kubuild-spin 1s linear infinite"}})]}):I?H(I,{size:16,"aria-hidden":!0}):null,g&&!w?H(G,{as:"span",value:e,isEditable:g,nodeId:x||"",onChange:(A,F)=>S?.(x||"","label",A,F)}):H("span",{children:O}),!w&&N?H(N,{size:16,"aria-hidden":!0}):null]})};import Bt from"react";import{ARTBOARD_REFERENCE_NODE_TYPE as Ri}from"@kubuild/schema";import{jsx as oe,jsxs as Vt}from"react/jsx-runtime";function so(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,childrenElements:s,handleClick:d,context:c,mode:u,isModalOpen:f}=t,a=r.modalId||o.modalId||e.id,l=String(a).trim(),p=c?.modalManager||ae,m=u==="editor"&&c?.artboardSurface==="component";switch(e.type){case"modal":{if(!f&&u==="runtime")return oe(Bt.Fragment,{});let b=r.backdrop!==!1&&o.backdrop!==!1,y=r.closeOnBackdrop!==!1&&o.closeOnBackdrop!==!1,v=r.showCloseButton!==!1&&o.showCloseButton!==!1,h=r.title??o.title,x=h!==void 0?String(h):void 0,g=r.size||o.size||"md",S=g==="sm"?"400px":g==="lg"?"768px":g==="fullscreen"?"100%":"560px",k=g==="fullscreen"?"100%":"auto";return oe("div",{id:`${n}-overlay`,"data-kubuild-overlay":l,"data-kubuild-isolated":m?"true":void 0,style:m?{position:"relative",display:"flex",alignItems:"flex-start",justifyContent:"center",padding:g==="fullscreen"?"0":"16px"}:{position:u==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:b?"rgba(15, 23, 42, 0.65)":"transparent",backdropFilter:b?"blur(4px)":"none",display:"flex",alignItems:g==="fullscreen"?"stretch":"center",justifyContent:"center",zIndex:9999,padding:g==="fullscreen"?"0":"16px"},onClick:R=>{R.target===R.currentTarget&&y&&u==="runtime"&&p.closeModal(l)},children:Vt("div",{id:n,style:{...i,position:"relative",boxSizing:"border-box",maxWidth:S,height:k,width:"100%"},onClick:d,"data-kubuild-node":e.id,role:"dialog","aria-modal":"true","aria-label":typeof x=="string"?x:"Modal Dialog",children:[v&&oe("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:R=>{R.stopPropagation(),p.closeModal(l)},children:"\u2715"}),x&&oe("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(x)}),s]})})}case"drawer":{if(!f&&u==="runtime")return oe(Bt.Fragment,{});let b=r.placement||o.placement||"right",y=r.backdrop!==!1&&o.backdrop!==!1,v=r.closeOnBackdrop!==!1&&o.closeOnBackdrop!==!1,h=r.showCloseButton!==!1&&o.showCloseButton!==!1,x=r.title??o.title,g=x!==void 0?String(x):void 0,S=b==="top"||b==="bottom";return oe("div",{id:`${n}-overlay`,"data-kubuild-overlay":l,"data-kubuild-isolated":m?"true":void 0,style:m?{position:"relative",display:"flex",justifyContent:b==="left"?"flex-start":b==="right"?"flex-end":"center",alignItems:"flex-start",padding:"16px"}:{position:u==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:y?"rgba(15, 23, 42, 0.5)":"transparent",backdropFilter:y?"blur(2px)":"none",display:"flex",justifyContent:b==="left"?"flex-start":b==="right"?"flex-end":"center",alignItems:b==="top"?"flex-start":b==="bottom"?"flex-end":"stretch",zIndex:9999},onClick:k=>{k.target===k.currentTarget&&v&&u==="runtime"&&p.closeModal(l)},children:Vt("div",{id:n,style:{...i,position:"relative",boxSizing:"border-box",height:m||S?"auto":"100%",...m?{minHeight:"240px"}:{},width:S?"100%":i.width||"320px",maxHeight:m?"none":S?"80vh":"100%",overflowY:"auto"},onClick:d,"data-kubuild-node":e.id,role:"region","aria-label":typeof g=="string"?g:"Drawer",children:[h&&oe("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(),p.closeModal(l)},children:"\u2715"}),g&&oe("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(g)}),s]})})}case"collapsible":return oe("div",{id:n,style:{...i,display:(u==="editor"?!0:!!f)?i.display||"block":"none"},onClick:d,"data-kubuild-node":e.id,"data-kubuild-collapsible":l,children:s});case Ri:{if(u==="runtime")return oe(Bt.Fragment,{});let b=typeof o.artboardId=="string"?o.artboardId:void 0,y=(typeof o.label=="string"&&o.label.trim().length>0?o.label:b)||"artboard";return Vt("div",{id:n,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:d,"data-kubuild-node":e.id,"data-kubuild-artboard-reference":b,title:`Opens artboard "${y}" \u2014 edit it on its own canvas surface`,children:[oe("span",{"aria-hidden":"true",children:"\u29C9"}),oe("span",{children:`Opens: ${y}`})]})}default:return null}}import{isVariableBinding as lo}from"@kubuild/schema";import{jsx as Fe}from"react/jsx-runtime";var j=t=>typeof t=="string"?t:void 0;function co(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,context:s,mode:d,document:c,onDiagnostic:u,onActionDispatch:f,handleClick:a,onNodePropChange:l,childrenElements:p,selectedNodeId:m}=t,b=e.id===m,y=d==="editor"&&b&&!lo(o.label),v=e.formConfig?.rules||r.rules||o.rules||[],h=r.validateOn||o.validateOn,x=r.required===!0,g=r.disabled===!0,S={actions:e.actions,nodeId:e.id,document:c,renderContext:s,onDiagnostic:u,onActionDispatch:f};switch(e.type){case"switch":{let k=j(r.switchSize);return Fe(oo,{id:n,name:j(r.name),label:String(r.label??"Switch"),value:r.value!==void 0?String(r.value):void 0,defaultChecked:r.defaultChecked===!0,switchSize:k==="sm"||k==="lg"?k:"md",required:x,disabled:g,helperText:j(r.helperText),ariaLabel:j(r.ariaLabel),rules:v,validateOn:h,style:i,onClick:a,dataKubuildNode:e.id,isEditable:y,onNodePropChange:l,...S})}case"file-upload":{let k=typeof r.maxFileSize=="number"?r.maxFileSize:void 0;return Fe(ro,{id:n,name:j(r.name),label:String(r.label??""),accept:j(r.accept),maxFileSize:k,multiple:r.multiple===!0,showPreview:r.showPreview!==!1,required:x,disabled:g,helperText:j(r.helperText),ariaLabel:j(r.ariaLabel),rules:v,validateOn:h,style:i,onClick:a,mode:d,dataKubuildNode:e.id,isEditable:y,onNodePropChange:l,...S})}case"radio-group":{let k=j(r.defaultSelected),R=e.children?.find(C=>C.props?.defaultChecked===!0&&typeof C.props?.value=="string")?.props?.value;return Fe(no,{id:n,name:j(r.name),defaultSelected:k||R,required:x,disabled:g,orientation:r.orientation==="horizontal"?"horizontal":"vertical",helperText:j(r.helperText),ariaLabel:j(r.ariaLabel),style:i,onClick:a,dataKubuildNode:e.id,children:p})}case"radio-item":return Fe(rt,{id:n,name:j(r.name),label:String(r.label??"Radio"),value:r.value!==void 0?String(r.value):"option",defaultChecked:r.defaultChecked===!0,required:x,disabled:g,rules:v,validateOn:h,style:i,onClick:a,dataKubuildNode:e.id,isEditable:y,onNodePropChange:l,...S});case"button-submit":{let k=r.buttonType??o.buttonType,R=k==="reset"||k==="button"?k:"submit",C=String(r.label??r.text??"Submit");return Fe(io,{id:n,label:C,loadingText:j(r.loadingText),showSpinner:r.showSpinner!==!1,autoDisableOnSubmit:r.autoDisableOnSubmit!==!1,buttonType:d==="editor"?"button":R,variant:j(r.variant),disabled:g,prefixIcon:j(r.prefixIcon),suffixIcon:j(r.suffixIcon),ariaLabel:j(r.ariaLabel),title:j(r.title),style:i,onClick:g?void 0:a,node:e,document:c,renderContext:s,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id,isEditable:y&&!lo(o.text),onNodePropChange:l})}default:return null}}import{useEffect as uo,useRef as po,useState as fo}from"react";function st(t,e){let n=t.resolvedProps[e];return n!==void 0?n:t.props[e]}function V(t,e,n=""){let i=st(t,e);return i==null||typeof i=="object"?n:String(i)}function Z(t,e,n){let i=st(t,e),r=typeof i=="number"?i:typeof i=="string"&&i.trim()!==""?Number(i):NaN;return Number.isFinite(r)?r:n}function be(t,e,n){let i=st(t,e);return typeof i=="boolean"?i:i==="true"?!0:i==="false"?!1:n}function ye(t){let e=st(t,"ariaLabel");return typeof e=="string"&&e.trim()!==""?e:void 0}function dt(t,e){return e?t.id===e?!0:(t.children??[]).some(n=>dt(n,e)):!1}function lt(t,e){return e?(t.children??[]).findIndex(n=>dt(n,e)):-1}import{jsx as Re,jsxs as mo}from"react/jsx-runtime";function Ht(t){let e=Math.max(0,Math.ceil((Number.isFinite(t)?t:0)/1e3));return{days:Math.floor(e/86400),hours:Math.floor(e%86400/3600),minutes:Math.floor(e%3600/60),seconds:e%60,totalSeconds:e}}var ce=t=>String(t).padStart(2,"0");function go(t,e){let n=Ht(t);return e==="mm:ss"?`${ce(Math.floor(n.totalSeconds/60))}:${ce(n.seconds)}`:e==="d h m s"?`${n.days}d ${ce(n.hours)}h ${ce(n.minutes)}m ${ce(n.seconds)}s`:`${ce(Math.floor(n.totalSeconds/3600))}:${ce(n.minutes)}:${ce(n.seconds)}`}function Lt(t,e){let n=new Intl.DateTimeFormat("en-US",{timeZone:e,hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),i={};for(let s of n.formatToParts(new Date(t)))s.type!=="literal"&&(i[s.type]=Number(s.value));let r=Date.UTC(i.year,i.month-1,i.day,i.hour===24?0:i.hour,i.minute,i.second),o=t-(t%1e3+1e3)%1e3;return r-o}var Ci=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?)?$/,wi=/(?:Z|[+-]\d{2}:?\d{2})$/i;function ct(t,e="UTC"){let n=(t||"").trim();if(!n)return null;if(wi.test(n)){let l=Date.parse(n);return Number.isFinite(l)?l:null}let i=Ci.exec(n);if(!i)return null;let[,r,o,s,d="0",c="0",u="0"]=i,f=Date.UTC(Number(r),Number(o)-1,Number(s),Number(d),Number(c),Number(u));if(!Number.isFinite(f))return null;let a=e&&e.trim()?e.trim():"UTC";try{let l=f-Lt(f,a);return f-Lt(l,a)}catch{return f}}var _t=new Map;function Si(){_t.clear()}function bo(t){try{return typeof window>"u"?null:(t==="local"?window.localStorage:window.sessionStorage)??null}catch{return null}}function yo(t){let{key:e,durationMs:n,now:i,storage:r}=t,o=f=>{if(!f)return null;try{let a=JSON.parse(f);if(typeof a.deadline=="number"&&Number.isFinite(a.deadline)&&a.duration===n)return a.deadline}catch{}return null},s;try{s=r?r.getItem(e):void 0}catch{s=void 0}let d=o(s)??o(_t.get(e));if(d!==null)return d;let c=i+n,u=JSON.stringify({deadline:c,duration:n});_t.set(e,u);try{r?.setItem(e,u)}catch{}return c}function ho(t){return _({node:t.node,trigger:"expire",document:t.document,context:t.context,onDiagnostic:t.onDiagnostic,onActionDispatch:t.onActionDispatch})}function Ti(t){return t==="mm:ss"||t==="d h m s"?t:"hh:mm:ss"}var Ei=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o}=t,s=r==="editor",d=V(t,"mode","evergreen")==="fixed"?"fixed":"evergreen",c=Math.max(0,Z(t,"durationMinutes",15))*6e4,u=V(t,"targetDate"),f=V(t,"timezone","UTC"),a=Ti(V(t,"format","hh:mm:ss")),l=V(t,"label"),p=V(t,"expireBehavior","text"),m=V(t,"expiredText","This offer has expired."),b=V(t,"storage","session")==="local"?"local":"session",y=`kubuild:countdown:${V(t,"storageKey")||e.id}`,v=[V(t,"labelDays","Days"),V(t,"labelHours","Hours"),V(t,"labelMinutes","Minutes"),V(t,"labelSeconds","Seconds")],[h,x]=fo(()=>{if(d==="evergreen")return c;if(s){let I=ct(u,f);return I===null?null:Math.max(0,I-Date.now())}return null}),[g,S]=fo(!1),k=po(!1),R=po(t);R.current=t,uo(()=>{if(s){if(d==="evergreen")x(c);else{let I=ct(u,f);x(I===null?null:Math.max(0,I-Date.now()))}S(!1)}},[s,d,c,u,f]),uo(()=>{if(s)return;let I=d==="fixed"?ct(u,f):yo({key:y,durationMs:c,now:Date.now(),storage:bo(b)});if(I===null){x(null);return}let N,O=()=>{let A=Math.max(0,I-Date.now());return x(A),A<=0?(N!==void 0&&clearInterval(N),S(!0),k.current||(k.current=!0,ho(R.current)),!1):!0};return O()&&(N=setInterval(O,1e3)),()=>{N!==void 0&&clearInterval(N)}},[s,d,c,u,f,y,b]);let C=ye(t)||l||"Countdown";if(!s&&g&&p==="hide")return Re("div",{id:n,style:{...i,display:"none"},"data-kubuild-node":e.id,"data-kubuild-countdown-state":"expired","aria-hidden":"true"});if(!s&&g&&p==="text")return Re("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,"data-kubuild-countdown-state":"expired",role:"status",children:m});let w=h===null?null:Ht(h),T=s?"frozen":g?"expired":"running",P;return a==="d h m s"?P=(w?[w.days,w.hours,w.minutes,w.seconds]:[null,null,null,null]).map((N,O)=>mo("span",{"data-kubuild-countdown-unit":["days","hours","minutes","seconds"][O],style:{display:"inline-flex",flexDirection:"column",alignItems:"center",minWidth:"2.5em"},children:[Re("span",{children:N===null?"--":O===0?String(N):ce(N)}),v[O]?Re("span",{style:{fontSize:"0.4em",fontWeight:500,opacity:.75,textTransform:"uppercase"},children:v[O]}):null]},O)):P=Re("span",{"data-kubuild-countdown-value":"",children:h===null?a==="mm:ss"?"--:--":"--:--:--":go(h,a)}),mo("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,"data-kubuild-countdown-state":T,role:"timer","aria-live":"off","aria-atomic":"true","aria-label":C,children:[l?Re("span",{"data-kubuild-countdown-label":"",children:l}):null,P]})};function vo(t){return Re(Ei,{options:t})}import{createContext as $i,useCallback as Ii,useContext as Ni,useMemo as xo,useState as ko}from"react";import{jsx as se,jsxs as ut}from"react/jsx-runtime";var Ro=$i(null);function Co(t,e,n){if(t.has(e)){let r=new Set(t);return r.delete(e),r}if(!n)return new Set([e]);let i=new Set(t);return i.add(e),i}var Pi=["text","content","quote","label","title","caption"];function wo(t,e){let n=t.props??{};for(let i of Pi){let r=n[i];if(typeof r=="string"&&r.trim()){e.push(r.trim());break}}for(let i of t.children??[])wo(i,e)}function So(t){let e=(t.children??[]).filter(n=>n.type==="accordion-item").map(n=>{let i=n.props?.title,r=[];for(let o of n.children??[])wo(o,r);return typeof i!="string"||!i.trim()||r.length===0?null:{"@type":"Question",name:i.trim(),acceptedAnswer:{"@type":"Answer",text:r.join(" ")}}}).filter(n=>n!==null);return e.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e}}function To(t){return JSON.stringify(t).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var Ai=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o,childrenElements:s}=t,d=be(t,"allowMultiple",!1),c=Math.trunc(Z(t,"defaultOpenIndex",0)),u=V(t,"icon","chevron"),f=be(t,"faqSchema",!1),[a,l]=ko(()=>c>=0?new Set([c]):new Set),p=Ii(v=>l(h=>Co(h,v,d)),[d]),m=xo(()=>(e.children??[]).map(v=>v.id),[e.children]),b=xo(()=>({rootDomId:n,itemIds:m,openIndices:a,toggle:p,icon:u}),[n,m,a,p,u]),y=r==="runtime"&&f?So(e):null;return ut("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,"data-kubuild-accordion":n,"aria-label":ye(t),children:[se(Ro.Provider,{value:b,children:s}),y?se("script",{type:"application/ld+json","data-kubuild-faq-schema":"",dangerouslySetInnerHTML:{__html:To(y)}}):null]})},Di=({icon:t,open:e})=>{if(t==="none")return null;let n={width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,focusable:"false",style:{flexShrink:0,transition:"transform 200ms ease",transform:t==="chevron"&&e?"rotate(180deg)":void 0}};return t==="plus"?ut("svg",{...n,children:[se("path",{d:"M5 12h14"}),e?null:se("path",{d:"M12 5v14"})]}):se("svg",{...n,children:se("path",{d:"m6 9 6 6 6-6"})})},Fi=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o,childrenElements:s,selectedNodeId:d}=t,c=Ni(Ro),[u,f]=ko(!1),a=c?c.itemIds.indexOf(e.id):-1,p=(c&&a>=0?c.openIndices.has(a):u)||r==="editor"&&dt(e,d),m=V(t,"title","Question"),b=`${n}-header`,y=`${n}-panel`,v=c?.rootDomId??n,h=()=>{c&&a>=0?c.toggle(a):f(g=>!g)},x=g=>{if(!["ArrowDown","ArrowUp","Home","End"].includes(g.key))return;let S=g.currentTarget.closest("[data-kubuild-accordion]");if(!S)return;let k=Array.from(S.querySelectorAll("button[data-kubuild-accordion-trigger]")).filter(T=>T.getAttribute("data-kubuild-accordion-trigger")===v),R=k.indexOf(g.currentTarget);if(R<0)return;g.preventDefault();let C=k.length,w=g.key==="Home"?0:g.key==="End"?C-1:g.key==="ArrowDown"?(R+1)%C:(R-1+C)%C;k[w]?.focus()};return ut("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,"data-state":p?"open":"closed",children:[ut("button",{type:"button",id:b,"aria-expanded":p,"aria-controls":y,"data-kubuild-accordion-trigger":v,onClick:h,onKeyDown:x,style:{display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"16px 0",background:"transparent",border:"none",font:"inherit",fontWeight:600,color:"inherit",textAlign:"left",cursor:"pointer"},children:[se("span",{children:m}),se(Di,{icon:c?.icon??"chevron",open:p})]}),se("div",{id:y,role:"region","aria-labelledby":b,hidden:!p,style:{paddingBottom:"16px"},children:s})]})};function Eo(t){return se(Ai,{options:t})}function $o(t){return se(Fi,{options:t})}import{createContext as Oi,useContext as Mi,useEffect as Bi,useMemo as Io,useRef as Vi,useState as Li}from"react";import{jsx as Te,jsxs as zi}from"react/jsx-runtime";var No=Oi(null);function pt(t,e){return e<=0||!Number.isFinite(t)?0:Math.min(Math.max(Math.trunc(t),0),e-1)}var _i=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o,childrenElements:s,selectedNodeId:d,onNodePropChange:c}=t,u=Io(()=>e.children??[],[e.children]),f=u.length,a=pt(Z(t,"activeIndex",0),f),[l,p]=Li(a),m=Vi([]);Bi(()=>{p(a)},[a]);let b=r==="editor"?lt(e,d):-1,y=pt(b>=0?b:l,f),v=t.instanceSuffix??"",h=C=>`${n}-tab-${C}`,x=u.map(C=>`${C.id}${v}`),g=(C,w=!1)=>{let T=pt(C,f);p(T),w&&m.current[T]?.focus(),r==="editor"&&T!==a&&c?.(e.id,"activeIndex",T,!0)},S=(C,w)=>{let T=null;C.key==="ArrowRight"?T=(w+1)%f:C.key==="ArrowLeft"?T=(w-1+f)%f:C.key==="Home"?T=0:C.key==="End"&&(T=f-1),T!==null&&(C.preventDefault(),g(T,!0))},k=x.join("|"),R=Io(()=>({activeIndex:y,panelIds:k?k.split("|"):[],tabId:C=>`${n}-tab-${C}`}),[y,k,n]);return zi("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,children:[Te("div",{role:"tablist","aria-label":ye(t),"aria-orientation":"horizontal",style:{display:"flex",gap:"4px",borderBottom:"1px solid #e2e8f0",overflowX:"auto"},children:u.map((C,w)=>{let T=C.props?.label,P=typeof T=="string"&&T?T:`Tab ${w+1}`,I=w===y;return Te("button",{ref:N=>{m.current[w]=N},type:"button",role:"tab",id:h(w),"aria-selected":I,"aria-controls":x[w],tabIndex:I?0:-1,"data-kubuild-tab-index":w,onClick:()=>g(w),onKeyDown:N=>S(N,w),style:{padding:"10px 16px",background:"transparent",border:"none",borderBottom:I?"2px solid currentColor":"2px solid transparent",marginBottom:"-1px",font:"inherit",fontWeight:I?600:500,color:"inherit",opacity:I?1:.65,cursor:"pointer",whiteSpace:"nowrap"},children:P},C.id)})}),Te(No.Provider,{value:R,children:s})]})},Hi=({options:t})=>{let{node:e,domId:n,styles:i,handleClick:r,childrenElements:o}=t,s=Mi(No),d=s?s.panelIds.indexOf(n):-1,c=!s||d===s.activeIndex;return Te("div",{id:n,style:c?i:{...i,display:"none"},onClick:r,"data-kubuild-node":e.id,role:s?"tabpanel":void 0,"aria-labelledby":s&&d>=0?s.tabId(d):void 0,tabIndex:s?0:void 0,hidden:!c,children:o})};function Po(t){return Te(_i,{options:t})}function Ao(t){return Te(Hi,{options:t})}import qi,{useEffect as Oo,useRef as ji,useState as zt}from"react";import{Fragment as Ki,jsx as ue,jsxs as Fo}from"react/jsx-runtime";var Mo=40;function ft(t,e,n,i){if(n<=0)return 0;let r=t+e;return i?(r%n+n)%n:Math.min(Math.max(r,0),n-1)}function Bo(t,e,n=Mo){let i=e-t;return Math.abs(i)<n?0:i<0?-1:1}function Ui(){let[t,e]=zt(!1);return Oo(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;let n;try{n=window.matchMedia("(prefers-reduced-motion: reduce)")}catch{return}let i=()=>e(n.matches);if(i(),typeof n.addEventListener=="function")return n.addEventListener("change",i),()=>n.removeEventListener("change",i)},[]),t}var Do=t=>({position:"absolute",top:"50%",[t]:"8px",transform:"translateY(-50%)",width:"36px",height:"36px",borderRadius:"9999px",border:"1px solid rgba(15, 23, 42, 0.1)",background:"rgba(255, 255, 255, 0.9)",color:"#0f172a",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",fontSize:"18px",lineHeight:1,zIndex:1}),Wi=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o,childrenElements:s,selectedNodeId:d}=t,c=r==="runtime",u=qi.Children.toArray(s),f=u.length,a=be(t,"autoplay",!1),l=Math.max(1e3,Z(t,"interval",5e3)),p=be(t,"loop",!0),m=be(t,"showDots",!0),b=be(t,"showArrows",!0),[y,v]=zt(0),[h,x]=zt(!1),g=Ui(),S=ji(null),k=r==="editor"?lt(e,d):-1,R=ft(k>=0?k:y,0,f,!1),C=c&&a&&!g&&!h&&f>1;Oo(()=>{if(!C)return;let A=setInterval(()=>{v(F=>ft(F,1,f,!0))},l);return()=>clearInterval(A)},[C,l,f]);let w=A=>v(F=>ft(F,A,f,p)),T=A=>{A.key==="ArrowLeft"?(A.preventDefault(),w(-1)):A.key==="ArrowRight"&&(A.preventDefault(),w(1))},P=A=>{S.current=A.touches[0]?.clientX??null},I=A=>{let F=S.current;S.current=null;let M=A.changedTouches[0]?.clientX;if(F===null||M===void 0)return;let ne=Bo(F,M);ne!==0&&w(-ne)},N=p||R>0,O=p||R<f-1;return Fo("div",{id:n,style:{position:"relative",overflow:"hidden",...i},onClick:o,"data-kubuild-node":e.id,role:"region","aria-roledescription":"carousel","aria-label":ye(t)||"Carousel",tabIndex:0,onKeyDown:T,onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),onFocus:()=>x(!0),onBlur:()=>x(!1),onTouchStart:P,onTouchEnd:I,children:[ue("div",{"data-kubuild-carousel-track":"","aria-live":C?"off":"polite",style:{display:"flex",width:"100%",transform:`translateX(-${R*100}%)`,transition:g?"none":"transform 400ms ease"},children:u.map((A,F)=>ue("div",{role:"group","aria-roledescription":"slide","aria-label":`${F+1} of ${f}`,"aria-hidden":c&&F!==R?!0:void 0,"data-kubuild-carousel-slide":F,style:{flex:"0 0 100%",minWidth:0,boxSizing:"border-box"},children:A},F))}),b&&f>1?Fo(Ki,{children:[ue("button",{type:"button","aria-label":"Previous slide",disabled:!N,onClick:()=>w(-1),style:{...Do("left"),opacity:N?1:.4},children:ue("span",{"aria-hidden":"true",children:"\u2039"})}),ue("button",{type:"button","aria-label":"Next slide",disabled:!O,onClick:()=>w(1),style:{...Do("right"),opacity:O?1:.4},children:ue("span",{"aria-hidden":"true",children:"\u203A"})})]}):null,m&&f>1?ue("div",{role:"group","aria-label":"Choose slide",style:{display:"flex",justifyContent:"center",gap:"8px",padding:"12px 0"},children:u.map((A,F)=>ue("button",{type:"button","aria-label":`Go to slide ${F+1}`,"aria-current":F===R?"true":void 0,"data-kubuild-carousel-dot":F,onClick:()=>v(F),style:{width:"8px",height:"8px",padding:0,borderRadius:"9999px",border:"none",background:F===R?"#0f172a":"#cbd5e1",cursor:"pointer"}},F))}):null]})};function Vo(t){return ue(Wi,{options:t})}import{jsx as Ce,jsxs as Yi}from"react/jsx-runtime";var _o=10;function mt(t,e){let n=Math.min(Math.max(Math.round(Number.isFinite(e)?e:5),1),_o),i=Math.min(Math.max(Number.isFinite(t)?t:0,0),n);return{value:Math.round(i*2)/2,max:n}}function Ho(t,e){let n=mt(t,e);return Array.from({length:n.max},(i,r)=>n.value>=r+1?1:n.value>=r+.5?.5:0)}function zo(t,e,n){let i=mt(e,n);return(t||"{value} out of {max}").replace(/\{value\}/g,String(i.value)).replace(/\{max\}/g,String(i.max))}var Lo="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",Gi=({size:t,fill:e,color:n,emptyColor:i})=>Yi("span",{"aria-hidden":"true","data-kubuild-rating-star":e,style:{position:"relative",display:"inline-block",width:t,height:t,lineHeight:0},children:[Ce("svg",{width:t,height:t,viewBox:"0 0 24 24",focusable:"false",children:Ce("polygon",{points:Lo,fill:i})}),e>0?Ce("span",{style:{position:"absolute",top:0,left:0,width:`${e*100}%`,height:"100%",overflow:"hidden"},children:Ce("svg",{width:t,height:t,viewBox:"0 0 24 24",focusable:"false",children:Ce("polygon",{points:Lo,fill:n})})}):null]});function qo(t){let{node:e,domId:n,styles:i,handleClick:r}=t,{value:o,max:s}=mt(Z(t,"value",5),Z(t,"max",5)),d=Math.max(4,Z(t,"size",20)),c=V(t,"color","#f59e0b")||"#f59e0b",u=V(t,"emptyColor","#e2e8f0")||"#e2e8f0",f=zo(V(t,"labelTemplate","{value} out of {max}"),o,s);return Ce("div",{id:n,style:{display:"inline-flex",alignItems:"center",gap:"2px",...i},onClick:r,"data-kubuild-node":e.id,role:"img","aria-label":f,children:Ho(o,s).map((a,l)=>Ce(Gi,{size:d,fill:a,color:c,emptyColor:u},l))})}import{jsx as Oe,jsxs as Xi}from"react/jsx-runtime";function jo(t){let{node:e,domId:n,styles:i,handleClick:r}=t,o=V(t,"lineStyle","solid"),s=o==="dashed"||o==="dotted"?o:"solid",d=Math.max(0,Z(t,"thickness",1)),c=V(t,"color","#e2e8f0")||"#e2e8f0",u=V(t,"label").trim(),f=`${d}px ${s} ${c}`;return u?Xi("div",{id:n,style:{display:"flex",alignItems:"center",gap:"12px",...i},onClick:r,"data-kubuild-node":e.id,role:"separator","aria-orientation":"horizontal","aria-label":u,children:[Oe("span",{"aria-hidden":"true",style:{flex:1,borderTop:f}}),Oe("span",{style:{fontSize:"12px",fontWeight:500,color:"#64748b",whiteSpace:"nowrap"},children:u}),Oe("span",{"aria-hidden":"true",style:{flex:1,borderTop:f}})]}):Oe("hr",{id:n,style:{height:0,border:"none",borderTop:f,...i},onClick:r,"data-kubuild-node":e.id})}function Uo(t){let{node:e,domId:n,styles:i,handleClick:r,mode:o}=t;return Oe("div",{id:n,style:{width:"100%",...i,height:i.height??"24px",...o==="editor"?{outline:"1px dashed #cbd5e1",outlineOffset:"-1px"}:{}},onClick:r,"data-kubuild-node":e.id,"data-kubuild-spacer":"","aria-hidden":"true"})}function Wo(t){switch(t.node.type){case"countdown":return vo(t);case"accordion":return Eo(t);case"accordion-item":return $o(t);case"tabs":return Po(t);case"tab-panel":return Ao(t);case"carousel":return Vo(t);case"rating":return qo(t);case"divider":return jo(t);case"spacer":return Uo(t);default:return null}}import{jsx as E,jsxs as re}from"react/jsx-runtime";function ra(t){let{node:e,document:n,definition:i,resolvedProps:r,styles:o,context:s,childrenElements:d,handleClick:c}=t;if(i?.renderer&&typeof i.renderer=="function"){let u=i.renderer;return typeof u=="function"&&!u.prototype?.isReactComponent?u({node:e,document:n,props:r,styles:o,context:s,children:d,onClick:c}):E(u,{node:e,document:n,props:r,styles:o,context:s,onClick:c,children:d})}return null}function ia(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,handleClick:s,childrenElements:d}=t;switch(e.type){case"page":return E("div",{id:n,style:i,onClick:s,"data-kubuild-node":e.id,children:d});case"section":{let c=typeof r.ariaLabel=="string"?r.ariaLabel:typeof o.ariaLabel=="string"?o.ariaLabel:void 0;return E("section",{id:n,style:i,onClick:s,"data-kubuild-node":e.id,"aria-label":c,children:d})}case"container":return E("div",{id:n,style:i,onClick:s,"data-kubuild-node":e.id,children:d});case"columns":return E("div",{id:n,style:i,onClick:s,"data-kubuild-node":e.id,children:d});case"flex":case"grid":{let c=typeof r.ariaLabel=="string"?r.ariaLabel:typeof o.ariaLabel=="string"?o.ariaLabel:void 0;return E("div",{id:n,style:i,onClick:s,"data-kubuild-node":e.id,"aria-label":c,children:d})}default:return null}}function aa(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,mode:s,handleClick:d,onNodePropChange:c,childrenElements:u,selectedNodeId:f}=t,a=e.id===f;switch(e.type){case"heading":{let l=typeof r.level=="number"?r.level:1,p=`h${Math.min(Math.max(l,1),6)}`||"h1",m=String(r.text??r.content??o.text??o.content??""),b=s==="editor"&&a&&!z(o.text)&&!z(o.content);return E(G,{as:p,id:n,style:i,value:m,isEditable:b,nodeId:e.id,onClick:d,onChange:(y,v)=>c?.(e.id,"text",y,v)})}case"text":{let l=String(r.text??r.content??o.text??o.content??""),p=typeof r.as=="string"?r.as:typeof o.as=="string"?o.as:typeof r.tag=="string"?r.tag:typeof o.tag=="string"?o.tag:o.content!==void 0&&o.text===void 0?"p":"span",m=s==="editor"&&a&&!z(o.text)&&!z(o.content);return E(G,{as:p,id:n,style:i,value:l,isEditable:m,nodeId:e.id,onClick:d,onChange:(b,y)=>c?.(e.id,"text",b,y)})}case"paragraph":{let l=String(r.text??r.content??o.text??o.content??""),p=s==="editor"&&a&&!z(o.text)&&!z(o.content);return E(G,{as:"p",id:n,style:i,value:l,isEditable:p,nodeId:e.id,onClick:d,onChange:(m,b)=>c?.(e.id,"text",m,b)})}case"link":{let l=String(r.text??r.label??r.content??o.text??o.label??o.content??""),p=typeof r.href=="string"?r.href:"#",m=typeof r.target=="string"?r.target:void 0,b=s==="editor"&&a&&!z(o.text)&&!z(o.label)&&!z(o.content),y=typeof r.rel=="string"?r.rel:m==="_blank"?"noopener noreferrer":void 0,v=s==="editor"?void 0:he(p,"#"),h=x=>{s==="editor"&&x.preventDefault(),d(x)};return b?E(G,{as:"a",id:n,style:i,value:l,isEditable:b,nodeId:e.id,onClick:h,onChange:(x,g)=>c?.(e.id,"text",x,g),href:v,target:m,rel:y}):E("a",{id:n,style:i,href:v,target:m,rel:y,onClick:h,"data-kubuild-node":e.id,children:l})}case"blockquote":{let l=typeof r.text=="string"?r.text:typeof r.quote=="string"?r.quote:typeof o.text=="string"?o.text:typeof o.quote=="string"?o.quote:void 0,p=typeof r.cite=="string"?r.cite:typeof o.cite=="string"?o.cite:void 0,m=s==="editor"&&a&&!z(o.quote)&&!z(o.text),b={borderLeft:"4px solid #cbd5e1",paddingLeft:"1rem",margin:"1rem 0",fontStyle:"italic",color:"#475569",...i};return re("blockquote",{id:n,style:b,onClick:d,"data-kubuild-node":e.id,cite:p,children:[l!==void 0?m?E(G,{as:"p",value:l,isEditable:m,nodeId:e.id,onChange:(y,v)=>c?.(e.id,"text",y,v)}):E("p",{children:l}):null,u,p&&re("cite",{style:{display:"block",fontStyle:"normal",fontSize:"0.875rem",marginTop:"0.5rem",color:"#64748b"},children:["\u2014 ",p]})]})}case"badge":{let l=String(r.text??r.label??o.text??o.label??""),p=typeof r.variant=="string"?r.variant:typeof o.variant=="string"?o.variant:"default",m=s==="editor"&&a&&!z(o.text)&&!z(o.label);return E("span",{id:n,style:i,onClick:d,"data-kubuild-node":e.id,"data-variant":p,"data-badge-variant":p,children:m?E(G,{as:"span",value:l,isEditable:m,nodeId:e.id,onChange:(b,y)=>c?.(e.id,"text",b,y)}):l})}case"code-block":{let l=String(r.code??o.code??""),p=typeof r.language=="string"?r.language:typeof o.language=="string"?o.language:"plaintext";return s==="editor"?E("pre",{id:n,style:i,onClick:d,"data-kubuild-node":e.id,"data-language":p,children:E("code",{className:`language-${p}`,contentEditable:!0,suppressContentEditableWarning:!0,onBlur:m=>c?.(e.id,"code",m.currentTarget.textContent??"",!0),children:l})}):E("pre",{id:n,style:i,onClick:d,"data-kubuild-node":e.id,"data-language":p,children:E("code",{className:`language-${p}`,children:l})})}default:return null}}function sa(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,mode:s,handleClick:d,onNodePropChange:c,childrenElements:u,selectedNodeId:f}=t,a=e.id===f;switch(e.type){case"list":{let p=(r.tag||o.tag)==="ol"||r.ordered===!0||o.ordered===!0?"ol":"ul",m=typeof r.listStyleType=="string"?r.listStyleType:typeof r.listStyle=="string"?r.listStyle:typeof o.listStyleType=="string"?o.listStyleType:typeof o.listStyle=="string"?o.listStyle:void 0,b=m==="custom-icon"||m==="none"?"none":m,y={...i,...b?{listStyleType:b}:{}};return E(p,{id:n,style:y,onClick:d,"data-kubuild-node":e.id,"data-list-style":m,children:u})}case"list-item":{let l=r.text!==void 0?String(r.text):o.text!==void 0?String(o.text):void 0,p=s==="editor"&&a&&!z(o.text)&&l!==void 0;return re("li",{id:n,style:i,onClick:d,"data-kubuild-node":e.id,children:[l!==void 0&&(p?E(G,{as:"span",value:l,isEditable:p,nodeId:e.id,onChange:(m,b)=>c?.(e.id,"text",m,b)}):l),u]})}default:return null}}function da(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,mode:s,handleClick:d,onNodePropChange:c,childrenElements:u,selectedNodeId:f}=t,a=e.id===f;switch(e.type){case"table":{let l=typeof r.cellPadding=="number"?r.cellPadding:void 0,p=typeof r.cellSpacing=="number"?r.cellSpacing:void 0,m=typeof r.border=="number"?r.border:void 0,b=r.striped===!0||o.striped===!0,y=r.bordered===!0||o.bordered===!0,v=r.hover===!0||o.hover===!0,h=r.compact===!0||o.compact===!0;return E("table",{id:n,style:i,cellPadding:l,cellSpacing:p,border:m,onClick:d,"data-kubuild-node":e.id,"data-striped":b?"true":void 0,"data-bordered":y?"true":void 0,"data-hover":v?"true":void 0,"data-compact":h?"true":void 0,children:E("tbody",{children:u})})}case"table-row":return E("tr",{id:n,style:i,onClick:d,"data-kubuild-node":e.id,children:u});case"table-cell":{let p=r.tag==="th"||o.tag==="th"||r.isHeader===!0||o.isHeader===!0||r.cellType==="header"||o.cellType==="header"||r.type==="th"||o.type==="th"?"th":"td",m=typeof r.colSpan=="number"?r.colSpan:typeof o.colSpan=="number"?o.colSpan:void 0,b=typeof r.rowSpan=="number"?r.rowSpan:typeof o.rowSpan=="number"?o.rowSpan:void 0,y=r.text!==void 0?String(r.text):o.text!==void 0?String(o.text):void 0,v=s==="editor"&&a&&!z(o.text)&&y!==void 0;return re(p,{id:n,colSpan:m,rowSpan:b,style:i,onClick:d,"data-kubuild-node":e.id,children:[y!==void 0&&(v?E(G,{as:"span",value:y,isEditable:v,nodeId:e.id,onChange:(h,x)=>c?.(e.id,"text",h,x)}):y),u]})}default:return null}}function qt(t){let n=`<svg xmlns="http://www.w3.org/2000/svg" width="600" height="400" viewBox="0 0 600 400" fill="none">
|
|
121
125
|
<rect width="100%" height="100%" fill="#f8fafc"/>
|
|
122
126
|
<rect x="2" y="2" width="596" height="396" fill="none" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="6 6" rx="8"/>
|
|
123
127
|
<g fill="#94a3b8" transform="translate(268, 140)">
|
|
@@ -126,110 +130,106 @@ ${n}</style>`}):""}var qt=({id:i,style:e,onClick:o,dataKubuildNode:r,html:n,role
|
|
|
126
130
|
<path d="m56 48-12-16-10 12-8-8-14 16h44z" fill="#94a3b8"/>
|
|
127
131
|
</g>
|
|
128
132
|
<text x="300" y="235" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="500" text-anchor="middle" fill="#64748b">
|
|
129
|
-
${(
|
|
133
|
+
${(t||"Image").replace(/[<>&"]/g,"")}
|
|
130
134
|
</text>
|
|
131
|
-
</svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(o)}`}function To(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,context:d,mode:l,handleClick:c,definition:p}=i;switch(e.type){case"image":{let f=M(t.src)?t.src:void 0,a=n.src!==void 0?n.src:t.src!==void 0?t.src:t.asset,s;bo(a)?s=Ae(d?.assetProvider,a.assetId)||a.fallbackUrl:typeof a=="string"&&a.trim().length>0&&(s=Ae(d?.assetProvider,a)||a),(!s||!s.trim())&&(f&&typeof f.fallback=="string"&&f.fallback.trim().length>0?s=f.fallback:l==="editor"&&(s=f?ze(`{${f.key}}`):typeof p?.defaultProps?.src=="string"&&p.defaultProps.src.trim().length>0?p.defaultProps.src:ze("Image")));let u=typeof n.alt=="string"?n.alt:typeof t.alt=="string"?t.alt:"",g=typeof n.fit=="string"?n.fit:void 0,y=n.loading==="eager"?"eager":"lazy",m=typeof n.width=="number"?n.width:void 0,v=typeof n.height=="number"?n.height:void 0,h=s?oe(s,""):void 0;!h&&l==="editor"&&(h=ze(f?`{${f.key}}`:"Image"));let x=r?.objectFit,b={...r,...g&&x===void 0?{objectFit:g}:{}};return C("img",{id:o,src:h,alt:u,role:u===""?"presentation":void 0,loading:y,width:m,height:v,style:b,onClick:c,"data-kubuild-node":e.id})}case"video":{let f=n.src??n.url??t.src??t.url,a=typeof f=="string"?f:void 0,s=typeof n.poster=="string"?n.poster:void 0,u=n.controls!==!1,g=n.autoplay===!0,y=n.loop===!0,m=n.muted===!0,v=n.playsInline!==!1,h=n.aspectRatio,x={position:"relative",width:r.width||"100%",...h?{aspectRatio:tn(h)}:{},...r},b=a?Qt(a):null,R=a?en(a):null;if(b){let S=`https://www.youtube.com/embed/${b}?autoplay=${g?1:0}&loop=${y?1:0}&mute=${m?1:0}&controls=${u?1:0}`,T=oe(S,"");return C("div",{id:o,"data-video-provider":"youtube",style:x,onClick:c,"data-kubuild-node":e.id,children:C("iframe",{src:T,title:"YouTube video player",style:{width:"100%",height:"100%",border:0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0})})}if(R){let S=`https://player.vimeo.com/video/${R}?autoplay=${g?1:0}&loop=${y?1:0}&muted=${m?1:0}`,T=oe(S,"");return C("div",{id:o,"data-video-provider":"vimeo",style:x,onClick:c,"data-kubuild-node":e.id,children:C("iframe",{src:T,title:"Vimeo video player",style:{width:"100%",height:"100%",border:0},allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0})})}let k=a?oe(a,""):void 0,w=s?oe(s,""):void 0;return C("video",{id:o,src:k,poster:w,controls:u,autoPlay:g,loop:y,muted:m,playsInline:v,style:x,onClick:c,"data-kubuild-node":e.id})}case"icon":{let f=typeof n.name=="string"?n.name:"Square",a=typeof n.size=="number"?n.size:24,s=typeof n.color=="string"?n.color:"currentColor",u=typeof n.strokeWidth=="number"?n.strokeWidth:2,g=Zt(f),y=on[g]||on[f]||yo;return C("span",{id:o,"data-icon-name":f,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",...r},onClick:c,"data-kubuild-node":e.id,children:C(y,{size:a,color:s,strokeWidth:u})})}case"html-embed":{let f=typeof n.html=="string"?n.html:"",s=n.sanitize!==!1?ko(f):f;return!s.trim()&&l==="editor"?C("div",{id:o,style:{...r,minHeight:"60px",border:"1px dashed #94a3b8",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f8fafc",color:"#64748b",fontSize:"0.875rem"},onClick:c,"data-kubuild-node":e.id,children:C("span",{children:"</> HTML Embed \u2014 Click to configure HTML code in Inspector Panel"})}):C(qt,{id:o,style:r,html:s,onClick:c,dataKubuildNode:e.id})}default:return null}}function Eo(i){let{node:e,domId:o,styles:r,resolvedProps:n,props:t,context:d,mode:l,document:c,onDiagnostic:p,onActionDispatch:f,handleClick:a,onNodePropChange:s,childrenElements:u,selectedNodeId:g}=i,y=e.id===g;switch(e.type){case"button":{let m=n.label??n.text??n.content??t.label??t.text??t.content??"Button",v=n.activeLabel??t.activeLabel,h=String(i.isModalOpen&&v?v:m),x=typeof n.href=="string"?n.href:typeof t.href=="string"?t.href:void 0,b=typeof n.target=="string"?n.target:typeof t.target=="string"?t.target:void 0,R=n.buttonType??n.type??t.buttonType??t.type,k=typeof R=="string"&&["submit","reset","button"].includes(R)?R:"button",w=n.disabled===!0||t.disabled===!0,S=typeof n.ariaLabel=="string"?n.ariaLabel:void 0,T=l==="editor"&&y&&t.isEditable!==!1&&!M(t.label)&&!M(t.text),P=typeof n.rel=="string"?n.rel:typeof t.rel=="string"?t.rel:b==="_blank"?"noopener noreferrer":void 0,I={};if(t.action&&!w){let D=typeof t.action=="object"?t.action.type:t.action;if(I["data-kubuild-action"]=D,d?.actionRegistry){let F=at(d.actionRegistry,D);I["data-kubuild-action-resolved"]=F?"true":"false"}}if(x&&!w){let D=l==="editor"?void 0:oe(x,"#");return C("a",{id:o,href:D,target:b,rel:P,tabIndex:0,style:r,onClick:a,"data-kubuild-node":e.id,"aria-label":S,...I,children:h})}return T?C(K,{as:"button",id:o,type:l==="editor"?"button":k,disabled:w,"aria-disabled":w?!0:void 0,"aria-label":S,tabIndex:w?-1:0,style:r,value:h,isEditable:T,nodeId:e.id,onClick:w?void 0:a,onChange:(D,F)=>s?.(e.id,"label",D,F),...I}):C(Jt,{id:o,buttonType:l==="editor"?"button":k,disabled:w,ariaLabel:S,style:r,onClick:w?void 0:a,actions:e.actions,node:e,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,actionAttrs:I,children:h})}case"form":{let m=typeof n.action=="string"?n.action:void 0,v=typeof n.method=="string"?n.method:"POST",h=typeof n.target=="string"?n.target:void 0,x=typeof n.autoComplete=="string"?n.autoComplete:void 0,b=typeof n.name=="string"?n.name:void 0,R=e.formConfig,k={formId:R?.formId||t.formId||b||e.id,resetOnSubmit:n.resetOnSubmit===!0||(R?.resetOnSubmit??!1),scrollToFirstError:n.scrollToFirstError!==!1&&(R?.scrollToFirstError??!0),validateOn:n.validateOn||R?.validateOn||"blur",initialValues:n.initialValues||R?.initialValues};return C(Bt,{formId:k.formId,formConfig:k,initialValues:k.initialValues,actions:e.actions,nodeId:e.id,document:c,onDiagnostic:p,children:C(Ut,{id:o,name:b,action:m&&l!=="editor"?oe(m,""):void 0,method:v,target:h,autoComplete:x,style:r,onClick:a,mode:l,dataKubuildNode:e.id,children:u})})}case"input":{let m=typeof n.name=="string"?n.name:void 0,v=typeof n.type=="string"?n.type:"text",h=typeof n.placeholder=="string"?n.placeholder:void 0,x=n.defaultValue!==void 0?n.defaultValue:void 0,b=n.required===!0,R=n.disabled===!0,k=n.readOnly===!0,w=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,T=n.transform||t.transform;return C(Wt,{id:o,name:m,type:v,placeholder:h,defaultValue:x,required:b,disabled:R,readOnly:k,rules:w,validateOn:S,transform:T,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"textarea":{let m=typeof n.name=="string"?n.name:void 0,v=typeof n.placeholder=="string"?n.placeholder:void 0,h=n.defaultValue!==void 0?n.defaultValue:void 0,x=typeof n.rows=="number"?n.rows:4,b=n.required===!0,R=n.disabled===!0,k=n.readOnly===!0,w=e.formConfig?.rules||n.rules||t.rules||[],S=n.validateOn||t.validateOn,T=n.transform||t.transform;return C(Kt,{id:o,name:m,placeholder:v,defaultValue:h,rows:x,required:b,disabled:R,readOnly:k,rules:w,validateOn:S,transform:T,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"select":{let m=typeof n.name=="string"?n.name:void 0,v=typeof n.placeholder=="string"?n.placeholder:void 0,h=n.defaultValue!==void 0?n.defaultValue:void 0,x=n.required===!0,b=n.disabled===!0,R=e.formConfig?.rules||n.rules||t.rules||[],k=n.validateOn||t.validateOn,w=[],S=n.options??t.options;if(Array.isArray(S))w=S.map(T=>{if(typeof T=="object"&&T!==null){let P=T;return{label:String(P.label??P.value??""),value:String(P.value??P.label??"")}}return{label:String(T),value:String(T)}});else if(typeof S=="string")try{let T=JSON.parse(S);Array.isArray(T)&&(w=T.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)}}))}catch{}return C(Yt,{id:o,name:m,placeholder:v,defaultValue:h,required:x,disabled:b,rules:R,validateOn:k,optionsList:w,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"checkbox":{let m=typeof n.name=="string"?n.name:void 0,v=String(n.label??"Checkbox"),h=n.value!==void 0?String(n.value):"yes",x=n.defaultChecked===!0,b=n.required===!0,R=n.disabled===!0,k=e.formConfig?.rules||n.rules||t.rules||[],w=n.validateOn||t.validateOn,S=l==="editor"&&y&&!M(t.label);return C(Gt,{id:o,name:m,label:v,value:h,defaultChecked:x,required:b,disabled:R,rules:k,validateOn:w,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:s})}case"radio":{let m=typeof n.name=="string"?n.name:void 0,v=String(n.label??"Radio"),h=n.value!==void 0?String(n.value):"option",x=n.defaultChecked===!0,b=n.required===!0,R=n.disabled===!0,k=n.rules||t.rules||[],w=n.validateOn||t.validateOn,S=l==="editor"&&y&&!M(t.label);return C(Xt,{id:o,name:m,label:v,value:h,defaultChecked:x,required:b,disabled:R,rules:k,validateOn:w,style:r,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:d,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,isEditable:S,onNodePropChange:s})}default:return null}}function Io(i){let{node:e,domId:o,styles:r,props:n,context:t,mode:d,handleClick:l,onDiagnostic:c,renderChildNode:p}=i;if(e.type!=="collection")return null;let f=typeof n.sourceKey=="string"?n.sourceKey:void 0,a=typeof n.itemAlias=="string"&&n.itemAlias.length>0?n.itemAlias:"item",s=`${a}Index`,u=f?xo({key:f},t).value:void 0;if(!Array.isArray(u)){let y={code:"INVALID_COLLECTION_SOURCE",nodeId:e.id,propName:"sourceKey",message:`Collection node "${e.id}" expected an array at variable path "${f??"(missing sourceKey)"}" but found ${u===void 0?"nothing":typeof u}.`};return c?.(y),t?.onDiagnostic?.(y),d==="editor"?G("div",{id:o,"data-kubuild-node":e.id,"data-kubuild-collection-invalid":e.type,style:{...r,border:"2px dashed #f59e0b",backgroundColor:"#fffbeb",padding:"12px",color:"#b45309",fontSize:"0.875rem",borderRadius:"4px"},onClick:l,children:[G("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[C(vo,{size:16}),C("strong",{children:"Collection: expected an array"})]}),G("div",{children:["Source path ",C("code",{children:f??"(none)"})," did not resolve to an array. Found"," ",C("code",{children:u===void 0?"nothing":typeof u}),"."]})]}):C("div",{id:o,"data-kubuild-node":e.id,style:{display:"contents"},"data-kubuild-empty-collection":"invalid-source"})}let g=e.children||[];return g.length===0||u.length===0?C("div",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,"data-kubuild-collection-empty":u.length===0?"true":void 0,children:u.length===0&&d==="editor"&&G("div",{style:{padding:"12px",border:"1px dashed #cbd5e1",borderRadius:"4px",color:"#94a3b8",fontSize:"0.875rem",textAlign:"center"},children:["Empty Collection (",C("code",{children:f})," has 0 items)"]})}):C("div",{id:o,style:r,onClick:l,"data-kubuild-node":e.id,children:u.map((y,m)=>{let v={...t,variables:{...t.variables,[a]:y,[s]:m}},h=`__iter_${m}`;return C(mo.Fragment,{children:g.map(x=>p(x,h,v))},`collection-item-${m}`)})})}function Po(i){let{node:e,domId:o,styles:r,handleClick:n,mode:t,childrenElements:d}=i;return t==="editor"?G("div",{id:o,style:{...r,border:"2px dashed #e2e8f0",padding:"16px",backgroundColor:"#f8fafc"},onClick:n,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:[G("div",{style:{display:"flex",alignItems:"center",gap:"8px",color:"#64748b"},children:[C(ho,{size:16}),G("span",{children:["Unknown Component: ",e.type]}),G("span",{style:{fontSize:"12px",color:"#94a3b8"},children:["(",e.id,")"]})]}),d]}):C("div",{id:o,style:r,onClick:n,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:d})}function rn(i){let e=Ro(i);if(e)return e;let o=wo(i);if(o)return o;let r=Co(i);if(r)return r;let n=$o(i);if(n)return n;let t=So(i);if(t)return t;let d=To(i);if(d)return d;let l=Eo(i);if(l)return l;let c=Io(i);if(c)return c;let p=nn(i);return p||Po(i)}import{jsx as X,jsxs as me}from"react/jsx-runtime";function Fo(i,e){if(!i)return!1;try{let o=se,r=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(!!(r&&(r.H||r.ReactCurrentDispatcher?.current))){let{isOpen:t}=ht(i,e);return t}}catch{}return e.isModalOpen(i)}function be({node:i,document:e,registry:o,context:r,viewport:n="desktop",mode:t="runtime",onNodeClick:d,onDiagnostic:l,onActionDispatch:c,onNodePropChange:p,selectedNodeId:f,instanceSuffix:a=""}){let s=r||re,u=lt(i.styles,n),g=i.props||{},y=o.get(i.type),m=a?`${i.id}${a}`:i.id,{props:v,diagnostics:h}=ft(i,y,s);h.forEach(B=>{l?.(B),s?.onDiagnostic?.(B)}),zt(i,{document:e,context:s,onDiagnostic:l,onActionDispatch:c,mode:t});let x=async B=>{B.stopPropagation(),d&&d(i.id,B),i.actions&&i.actions.length>0&&!g.disabled&&await _({node:i,trigger:"click",document:e,context:s,onDiagnostic:l,onActionDispatch:c}),g.action&&!g.disabled&&(st({action:g.action,nodeId:i.id,document:e,context:s,onDiagnostic:l}),c&&Ao(g.action)&&c(g.action.type,it(s,g.action.payload),i.id))},b=i.children?.map(B=>X(be,{node:B,document:e,registry:o,context:s,viewport:n,mode:t,onNodeClick:d,onDiagnostic:l,onActionDispatch:c,onNodePropChange:p,selectedNodeId:f,instanceSuffix:a},`${B.id}${a}`)),R=(B,de="",ve=s)=>X(be,{node:B,document:e,registry:o,context:ve,viewport:n,mode:t,onNodeClick:d,onDiagnostic:l,onActionDispatch:c,onNodePropChange:p,selectedNodeId:f,instanceSuffix:`${a}${de}`},`${B.id}${a}${de}`),k=g.modalId||g.modalNodeId||g.targetModalId,w=s?.modalManager||J,S=k?w.hasState(k):!1,T=Fo(k,w),P=S?T:!!g.defaultOpen,I={...u},D=i.type==="modal"||i.type==="drawer"||i.type==="collapsible";(g.modalId||g.modalNodeId)&&i.type!=="button"&&i.type!=="link"&&!D&&!P&&(I.display="none");let j;try{j=rn({node:i,document:e,registry:o,context:s,viewport:n,mode:t,styles:I,props:g,resolvedProps:v,definition:y,domId:m,childrenElements:b,handleClick:x,onNodeClick:d,onDiagnostic:l,onActionDispatch:c,onNodePropChange:p,selectedNodeId:f,instanceSuffix:a,isModalOpen:P,renderChildNode:R})}catch(B){t==="editor"?j=me("div",{"data-kubuild-node":i.id,"data-kubuild-error":i.type,style:{padding:"12px 16px",margin:"4px 0",backgroundColor:"#fef2f2",border:"1px solid #ef4444",borderRadius:"6px",color:"#b91c1c",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"13px",lineHeight:"1.4"},children:[me("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[X(Do,{size:14,"aria-hidden":"true"}),me("span",{children:["Component Render Error: <",i.type,">"]})]}),me("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",X("code",{children:i.id})," \u2014 ",B instanceof Error?B.message:String(B)]})]}):j=X("div",{"data-kubuild-node":i.id,"data-kubuild-error":i.type,style:{display:"none"},"aria-hidden":"true"})}return X($e,{nodeId:i.id,componentType:i.type,mode:t,onDiagnostic:l,children:j})}var Mo=({document:i,registry:e=No(),context:o,viewport:r="desktop",mode:n="runtime",className:t,showToastContainer:d=!0,onNodeClick:l,onDiagnostic:c,onActionDispatch:p,onNodePropChange:f,selectedNodeId:a})=>{if(!i||!i.document)return X("div",{className:t,children:"Empty Document"});let s=se.useMemo(()=>ct(i),[i]),u=se.useMemo(()=>we(i),[i]),g=se.useMemo(()=>i?.tracking?JSON.stringify(i.tracking):null,[i?.tracking]);return se.useEffect(()=>{if(n==="runtime"&&i?.tracking&&g)return It(i.tracking)},[n,g]),X(tt,{value:o,children:me("div",{className:`kubuild-canvas-root ${t||""}`,children:[s?X("style",{"data-kubuild-state-styles":!0,children:s}):null,u?X("style",{"data-kubuild-animation-styles":!0,children:u}):null,X(be,{node:i.document,document:i,registry:e,context:o,viewport:r,mode:n,onNodeClick:l,onDiagnostic:c,onActionDispatch:p,onNodePropChange:f,selectedNodeId:a}),d&&X(Dt,{})]})})},Ie=se.memo(Mo);import an from"react";import Oo from"react-dom";import{createDefaultComponentRegistry as Vo}from"@kubuild/components";import{Fragment as dn,jsx as ye,jsxs as _o}from"react/jsx-runtime";function sn(i){let e=i.document?.document;if(e)return e.children?.[0]??void 0}function Bo(i,e){return i.filter(o=>o.artboardType==="component"&&!!o.triggerId&&!!e[o.triggerId]&&!!sn(o))}var Ue=({artboards:i,registry:e,context:o=re,viewport:r="desktop",mode:n="runtime",modalManager:t,container:d,onDiagnostic:l,onActionDispatch:c})=>{let p=t||J,{modals:f}=vt(p),a=an.useMemo(()=>e||Vo(),[e]),s=an.useMemo(()=>(i??o.componentArtboards??[]).filter(m=>m.artboardType==="component"),[i,o.componentArtboards]);if(n==="editor")return null;let u=Bo(s,f);if(u.length===0)return null;let g=d!==void 0?d:typeof globalThis.document<"u"?globalThis.document.body:null;return g?ye(dn,{children:u.map(y=>{let m=sn(y);return m?Oo.createPortal(ye("div",{"data-kubuild-artboard-portal":y.id,style:{pointerEvents:"auto"},children:ye(be,{node:m,document:y.document,registry:a,context:o,viewport:r,mode:"runtime",onDiagnostic:l,onActionDispatch:c})},y.id),g,y.id):null})}):null},Ba=({componentArtboards:i,modalManager:e,portalContainer:o,...r})=>_o(dn,{children:[ye(Ie,{...r}),ye(Ue,{artboards:i,registry:r.registry,context:r.context,viewport:r.viewport,mode:r.mode,modalManager:e,container:o,onDiagnostic:r.onDiagnostic,onActionDispatch:r.onActionDispatch})]});import{useMemo as We,useState as Ho}from"react";import{Fragment as zo,jsx as te,jsxs as he}from"react/jsx-runtime";var ln=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}}),Lo=Object.freeze({mobile:480,tablet:768,desktop:1024});function Ua(i,e){let o={...Lo,...e};return i<=o.mobile?"mobile":i<=o.tablet?"tablet":"desktop"}function cn(i,e){let o=ln[i]||ln.desktop,r=e?.[i];return{...o,...r}}function qo(i,e,o){let r=cn(i,e),n=o??r.scale??1,t=l=>typeof l=="number"?`${l}px`:l,d={width:t(r.width),maxWidth:t(r.maxWidth),minWidth:t(r.minWidth),height:t(r.height),minHeight:t(r.minHeight),maxHeight:t(r.maxHeight),aspectRatio:r.aspectRatio,transition:"width 0.2s ease, max-width 0.2s ease, height 0.2s ease"};return n!==1&&(d.transform=`scale(${n})`,d.transformOrigin="top center"),d}var jo=({document:i,viewport:e="desktop",onViewportChange:o,viewportConfigs:r,breakpoints:n,registry:t,context:d,mode:l="runtime",showChrome:c=!1,chromeTitle:p,editorOverlay:f,scale:a,className:s,style:u,canvasClassName:g,canvasStyle:y,onNodeClick:m,onDiagnostic:v,onActionDispatch:h,componentArtboards:x})=>{let[b,R]=Ho(null),k=x??d?.componentArtboards,w=We(()=>cn(e,r),[e,r]),S=We(()=>qo(e,r,a),[e,r,a]),T=We(()=>({...S,...y,position:"relative",boxSizing:"border-box"}),[S,y]);return he("div",{"data-kubuild-preview-container":!0,"data-viewport":e,className:`kubuild-preview-viewport-adapter ${s||""}`,style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start",width:"100%",height:"100%",boxSizing:"border-box",...u},children:[c&&he("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:[he("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[te("span",{style:{fontWeight:600},children:p||i.metadata?.title||"Preview"}),te("span",{"data-testid":"viewport-badge",style:{fontSize:"10px",padding:"2px 6px",borderRadius:"4px",backgroundColor:"#334155",color:"#94a3b8",textTransform:"uppercase",fontWeight:700},children:e}),te("span",{style:{fontSize:"11px",color:"#64748b"},children:w.label||`${w.width} \xD7 ${w.height||"auto"}`})]}),o&&te("div",{"data-testid":"viewport-switcher",style:{display:"flex",gap:"4px",backgroundColor:"#0f172a",padding:"2px",borderRadius:"6px"},children:["desktop","tablet","mobile"].map(P=>{let I=e===P;return te("button",{type:"button","data-testid":`viewport-btn-${P}`,onClick:()=>o(P),style:{padding:"4px 10px",fontSize:"11px",fontWeight:500,borderRadius:"4px",border:"none",cursor:"pointer",textTransform:"capitalize",backgroundColor:I?"#3b82f6":"transparent",color:I?"#ffffff":"#94a3b8",transition:"all 0.15s ease"},children:P},P)})})]}),he("div",{"data-kubuild-preview-canvas":!0,"data-viewport":e,className:`kubuild-preview-canvas ${g||""}`,style:T,children:[te(Ie,{document:i,registry:t,context:d,viewport:e,mode:l,onNodeClick:m,onDiagnostic:v,onActionDispatch:h}),k&&k.length>0&&he(zo,{children:[te("div",{ref:R,"data-kubuild-preview-overlay-host":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,transform:"translate3d(0, 0, 0)",pointerEvents:"none"}}),b&&te(Ue,{artboards:k,registry:t,context:d,viewport:e,mode:l,container:b,onDiagnostic:v,onActionDispatch:h})]}),f&&te("div",{"data-kubuild-preview-overlay":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10},children:f})]})]})},Wa=jo;import{CURRENT_SCHEMA_VERSION as Uo}from"@kubuild/schema";function V(i){return i==null?"":String(i).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function E(i){return V(i)}function Wo(i){if(!i||typeof i!="string")return null;let e=i.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function Ko(i){if(!i||typeof i!="string")return null;let e=i.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function U(i,e,o){let r=" ".repeat(e*(o.indentSize??2)),n=" ".repeat((e+1)*(o.indentSize??2)),t=i.props||{},d=i.children||[],c=o.includeNodeClasses!==!1?`kb-node-${i.id}`:"",p=(...a)=>a.filter(Boolean).join(" "),f=t.id?` id="${E(t.id)}"`:"";switch(i.type){case"page":{let a=o.rootTag||"main",s=p("kb-page",c),u=d.map(g=>U(g,e+1,o)).join(`
|
|
132
|
-
`);return
|
|
133
|
-
${
|
|
134
|
-
${
|
|
135
|
-
`);return
|
|
136
|
-
${
|
|
137
|
-
${
|
|
138
|
-
`);return
|
|
139
|
-
${
|
|
140
|
-
${
|
|
141
|
-
`);return
|
|
142
|
-
${
|
|
143
|
-
${
|
|
144
|
-
`);return`${
|
|
145
|
-
${m}
|
|
146
|
-
${r}</a>`}return`${r}<a class="${y}"${f}${a}${s}${u}>${V(g??"Link")}</a>`}case"blockquote":{let a=t.cite?` cite="${E(t.cite)}"`:"",s=t.quote??t.text??t.value,u=t.author??t.citeAuthor,g=p("kb-blockquote",c);if(s||u){let y=s?`${n}<p>${V(s)}</p>`:"",m=u?`${n}<cite>${V(u)}</cite>`:"",v=[y,m].filter(Boolean).join(`
|
|
147
|
-
`);return`${r}<blockquote class="${g}"${f}${a}>
|
|
148
|
-
${v}
|
|
149
|
-
${r}</blockquote>`}if(d.length>0){let y=d.map(m=>U(m,e+1,o)).join(`
|
|
150
|
-
`);return`${r}<blockquote class="${g}"${f}${a}>
|
|
135
|
+
</svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(n)}`}function la(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,context:s,mode:d,handleClick:c,definition:u}=t;switch(e.type){case"image":{let f=z(o.src)?o.src:void 0,a=r.src!==void 0?r.src:o.src!==void 0?o.src:o.asset,l;Qi(a)?l=kt(s?.assetProvider,a.assetId)||a.fallbackUrl:typeof a=="string"&&a.trim().length>0&&(l=kt(s?.assetProvider,a)||a),(!l||!l.trim())&&(f&&typeof f.fallback=="string"&&f.fallback.trim().length>0?l=f.fallback:d==="editor"&&(l=f?qt(`{${f.key}}`):typeof u?.defaultProps?.src=="string"&&u.defaultProps.src.trim().length>0?u.defaultProps.src:qt("Image")));let p=typeof r.alt=="string"?r.alt:typeof o.alt=="string"?o.alt:"",m=typeof r.fit=="string"?r.fit:void 0,b=r.loading==="eager"?"eager":"lazy",y=typeof r.width=="number"?r.width:void 0,v=typeof r.height=="number"?r.height:void 0,h=l?he(l,""):void 0;!h&&d==="editor"&&(h=qt(f?`{${f.key}}`:"Image"));let x=i?.objectFit,g={...i,...m&&x===void 0?{objectFit:m}:{}};return E("img",{id:n,src:h,alt:p,role:p===""?"presentation":void 0,loading:b,width:y,height:v,style:g,onClick:c,"data-kubuild-node":e.id})}case"video":{let f=r.src??r.url??o.src??o.url,a=typeof f=="string"?f:void 0,l=typeof r.poster=="string"?r.poster:void 0,p=r.controls!==!1,m=r.autoplay===!0,b=r.loop===!0,y=r.muted===!0,v=r.playsInline!==!1,h=r.aspectRatio,x={position:"relative",width:i.width||"100%",...h?{aspectRatio:Qn(h)}:{},...i},g=a?Xn(a):null,S=a?Jn(a):null;if(g){let C=`https://www.youtube.com/embed/${g}?autoplay=${m?1:0}&loop=${b?1:0}&mute=${y?1:0}&controls=${p?1:0}`,w=he(C,"");return E("div",{id:n,"data-video-provider":"youtube",style:x,onClick:c,"data-kubuild-node":e.id,children:E("iframe",{src:w,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(S){let C=`https://player.vimeo.com/video/${S}?autoplay=${m?1:0}&loop=${b?1:0}&muted=${y?1:0}`,w=he(C,"");return E("div",{id:n,"data-video-provider":"vimeo",style:x,onClick:c,"data-kubuild-node":e.id,children:E("iframe",{src:w,title:"Vimeo video player",style:{width:"100%",height:"100%",border:0},allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0})})}let k=a?he(a,""):void 0,R=l?he(l,""):void 0;return E("video",{id:n,src:k,poster:R,controls:p,autoPlay:m,loop:b,muted:y,playsInline:v,style:x,onClick:c,"data-kubuild-node":e.id})}case"icon":{let f=typeof r.name=="string"?r.name:"Square",a=typeof r.size=="number"?r.size:24,l=typeof r.color=="string"?r.color:"currentColor",p=typeof r.strokeWidth=="number"?r.strokeWidth:2,m=it(f),b=Ko[m]||Ko[f]||Zi;return E("span",{id:n,"data-icon-name":f,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",...i},onClick:c,"data-kubuild-node":e.id,children:E(b,{size:a,color:l,strokeWidth:p})})}case"html-embed":{let f=typeof r.html=="string"?r.html:"",l=r.sanitize!==!1?oa(f):f;return!l.trim()&&d==="editor"?E("div",{id:n,style:{...i,minHeight:"60px",border:"1px dashed #94a3b8",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f8fafc",color:"#64748b",fontSize:"0.875rem"},onClick:c,"data-kubuild-node":e.id,children:E("span",{children:"</> HTML Embed \u2014 Click to configure HTML code in Inspector Panel"})}):E(Hn,{id:n,style:i,html:l,onClick:c,dataKubuildNode:e.id})}default:return null}}function ca(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,context:s,mode:d,document:c,onDiagnostic:u,onActionDispatch:f,handleClick:a,onNodePropChange:l,childrenElements:p,selectedNodeId:m}=t,b=e.id===m;switch(e.type){case"button":{let y=r.label??r.text??r.content??o.label??o.text??o.content??"Button",v=r.activeLabel??o.activeLabel,h=String(t.isModalOpen&&v?v:y),x=typeof r.href=="string"?r.href:typeof o.href=="string"?o.href:void 0,g=typeof r.target=="string"?r.target:typeof o.target=="string"?o.target:void 0,S=r.buttonType??r.type??o.buttonType??o.type,k=typeof S=="string"&&["submit","reset","button"].includes(S)?S:"button",R=r.disabled===!0||o.disabled===!0,C=typeof r.ariaLabel=="string"?r.ariaLabel:void 0,w=d==="editor"&&b&&o.isEditable!==!1&&!z(o.label)&&!z(o.text),T=typeof r.rel=="string"?r.rel:typeof o.rel=="string"?o.rel:g==="_blank"?"noopener noreferrer":void 0,P={};if(o.action&&!R){let I=typeof o.action=="object"?o.action.type:o.action;if(P["data-kubuild-action"]=I,s?.actionRegistry||Se(I)){let N=je(s?.actionRegistry,I);P["data-kubuild-action-resolved"]=N?"true":"false"}}if(x&&!R){let I=d==="editor"?void 0:he(x,"#");return E("a",{id:n,href:I,target:g,rel:T,tabIndex:0,style:i,onClick:a,"data-kubuild-node":e.id,"aria-label":C,...P,children:h})}return w?E(G,{as:"button",id:n,type:d==="editor"?"button":k,disabled:R,"aria-disabled":R?!0:void 0,"aria-label":C,tabIndex:R?-1:0,style:i,value:h,isEditable:w,nodeId:e.id,onClick:R?void 0:a,onChange:(I,N)=>l?.(e.id,"label",I,N),...P}):E(Yn,{id:n,buttonType:d==="editor"?"button":k,disabled:R,ariaLabel:C,style:i,onClick:R?void 0:a,actions:e.actions,node:e,document:c,renderContext:s,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id,actionAttrs:P,children:h})}case"form":{let y=typeof r.action=="string"?r.action:void 0,v=typeof r.method=="string"?r.method:"POST",h=typeof r.target=="string"?r.target:void 0,x=typeof r.autoComplete=="string"?r.autoComplete:void 0,g=typeof r.name=="string"?r.name:void 0,S=e.formConfig,k={formId:S?.formId||o.formId||g||e.id,resetOnSubmit:r.resetOnSubmit===!0||(S?.resetOnSubmit??!1),scrollToFirstError:r.scrollToFirstError!==!1&&(S?.scrollToFirstError??!0),validateOn:r.validateOn||S?.validateOn||"blur",initialValues:r.initialValues||S?.initialValues};return E(Bn,{formId:k.formId,formConfig:k,initialValues:k.initialValues,actions:e.actions,nodeId:e.id,document:c,onDiagnostic:u,children:E(jn,{id:n,name:g,action:y&&d!=="editor"?he(y,""):void 0,method:v,target:h,autoComplete:x,style:i,onClick:a,mode:d,dataKubuildNode:e.id,children:p})})}case"input":{let y=typeof r.name=="string"?r.name:void 0,v=typeof r.type=="string"?r.type:"text",h=typeof r.placeholder=="string"?r.placeholder:void 0,x=r.defaultValue!==void 0?r.defaultValue:void 0,g=r.required===!0,S=r.disabled===!0,k=r.readOnly===!0,R=e.formConfig?.rules||r.rules||o.rules||[],C=r.validateOn||o.validateOn,w=r.transform||o.transform;return E(Un,{id:n,name:y,type:v,placeholder:h,defaultValue:x,required:g,disabled:S,readOnly:k,rules:R,validateOn:C,transform:w,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:s,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id})}case"textarea":{let y=typeof r.name=="string"?r.name:void 0,v=typeof r.placeholder=="string"?r.placeholder:void 0,h=r.defaultValue!==void 0?r.defaultValue:void 0,x=typeof r.rows=="number"?r.rows:4,g=r.required===!0,S=r.disabled===!0,k=r.readOnly===!0,R=e.formConfig?.rules||r.rules||o.rules||[],C=r.validateOn||o.validateOn,w=r.transform||o.transform;return E(Wn,{id:n,name:y,placeholder:v,defaultValue:h,rows:x,required:g,disabled:S,readOnly:k,rules:R,validateOn:C,transform:w,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:s,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id})}case"select":{let y=typeof r.name=="string"?r.name:void 0,v=typeof r.placeholder=="string"?r.placeholder:void 0,h=r.defaultValue!==void 0?r.defaultValue:void 0,x=r.required===!0,g=r.disabled===!0,S=e.formConfig?.rules||r.rules||o.rules||[],k=r.validateOn||o.validateOn,R=[],C=r.options??o.options;if(Array.isArray(C))R=C.map(w=>{if(typeof w=="object"&&w!==null){let T=w;return{label:String(T.label??T.value??""),value:String(T.value??T.label??"")}}return{label:String(w),value:String(w)}});else if(typeof C=="string")try{let w=JSON.parse(C);Array.isArray(w)&&(R=w.map(T=>{if(typeof T=="object"&&T!==null){let P=T;return{label:String(P.label??P.value??""),value:String(P.value??P.label??"")}}return{label:String(T),value:String(T)}}))}catch{}return E(Kn,{id:n,name:y,placeholder:v,defaultValue:h,required:x,disabled:g,rules:S,validateOn:k,optionsList:R,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:s,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id})}case"checkbox":{let y=typeof r.name=="string"?r.name:void 0,v=String(r.label??"Checkbox"),h=r.value!==void 0?String(r.value):"yes",x=r.defaultChecked===!0,g=r.required===!0,S=r.disabled===!0,k=e.formConfig?.rules||r.rules||o.rules||[],R=r.validateOn||o.validateOn,C=d==="editor"&&b&&!z(o.label);return E(Gn,{id:n,name:y,label:v,value:h,defaultChecked:x,required:g,disabled:S,rules:k,validateOn:R,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:s,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id,isEditable:C,onNodePropChange:l})}case"radio":{let y=typeof r.name=="string"?r.name:void 0,v=String(r.label??"Radio"),h=r.value!==void 0?String(r.value):"option",x=r.defaultChecked===!0,g=r.required===!0,S=r.disabled===!0,k=r.rules||o.rules||[],R=r.validateOn||o.validateOn,C=d==="editor"&&b&&!z(o.label);return E(rt,{id:n,name:y,label:v,value:h,defaultChecked:x,required:g,disabled:S,rules:k,validateOn:R,style:i,onClick:a,actions:e.actions,nodeId:e.id,document:c,renderContext:s,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id,isEditable:C,onNodePropChange:l})}default:return null}}function ua(t){let{node:e,domId:n,styles:i,props:r,context:o,mode:s,handleClick:d,onDiagnostic:c,renderChildNode:u}=t;if(e.type!=="collection")return null;let f=typeof r.sourceKey=="string"?r.sourceKey:void 0,a=typeof r.itemAlias=="string"&&r.itemAlias.length>0?r.itemAlias:"item",l=`${a}Index`,p=f?na({key:f},o).value:void 0;if(!Array.isArray(p)){let b={code:"INVALID_COLLECTION_SOURCE",nodeId:e.id,propName:"sourceKey",message:`Collection node "${e.id}" expected an array at variable path "${f??"(missing sourceKey)"}" but found ${p===void 0?"nothing":typeof p}.`};return c?.(b),o?.onDiagnostic?.(b),s==="editor"?re("div",{id:n,"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:d,children:[re("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[E(ta,{size:16}),E("strong",{children:"Collection: expected an array"})]}),re("div",{children:["Source path ",E("code",{children:f??"(none)"})," did not resolve to an array. Found"," ",E("code",{children:p===void 0?"nothing":typeof p}),"."]})]}):E("div",{id:n,"data-kubuild-node":e.id,style:{display:"contents"},"data-kubuild-empty-collection":"invalid-source"})}let m=e.children||[];return m.length===0||p.length===0?E("div",{id:n,style:i,onClick:d,"data-kubuild-node":e.id,"data-kubuild-collection-empty":p.length===0?"true":void 0,children:p.length===0&&s==="editor"&&re("div",{style:{padding:"12px",border:"1px dashed #cbd5e1",borderRadius:"4px",color:"#94a3b8",fontSize:"0.875rem",textAlign:"center"},children:["Empty Collection (",E("code",{children:f})," has 0 items)"]})}):E("div",{id:n,style:i,onClick:d,"data-kubuild-node":e.id,children:p.map((b,y)=>{let v={...o,variables:{...o.variables,[a]:b,[l]:y}},h=`__iter_${y}`;return E(Ji.Fragment,{children:m.map(x=>u(x,h,v))},`collection-item-${y}`)})})}function pa(t){let{node:e,domId:n,styles:i,handleClick:r,mode:o,childrenElements:s}=t;return o==="editor"?re("div",{id:n,style:{...i,border:"2px dashed #e2e8f0",padding:"16px",backgroundColor:"#f8fafc"},onClick:r,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:[re("div",{style:{display:"flex",alignItems:"center",gap:"8px",color:"#64748b"},children:[E(ea,{size:16}),re("span",{children:["Unknown Component: ",e.type]}),re("span",{style:{fontSize:"12px",color:"#94a3b8"},children:["(",e.id,")"]})]}),s]}):E("div",{id:n,style:i,onClick:r,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:s})}function Go(t){let e=ra(t);if(e)return e;let n=ia(t);if(n)return n;let i=aa(t);if(i)return i;let r=sa(t);if(r)return r;let o=da(t);if(o)return o;let s=la(t);if(s)return s;let d=ca(t);if(d)return d;let c=co(t);if(c)return c;let u=ua(t);if(u)return u;let f=so(t);if(f)return f;let a=Wo(t);return a||pa(t)}import{Fragment as ha,jsx as J,jsxs as we}from"react/jsx-runtime";function ma(t,e){if(!t)return!1;try{let n=ve,i=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(!!(i&&(i.H||i.ReactCurrentDispatcher?.current))){let{isOpen:o}=an(t,e);return o}}catch{}return e.isModalOpen(t)}function Me({node:t,document:e,registry:n,context:i,viewport:r="desktop",mode:o="runtime",responsive:s="viewport",onNodeClick:d,onDiagnostic:c,onActionDispatch:u,onNodePropChange:f,selectedNodeId:a,instanceSuffix:l=""}){let p=i||ke,m=s==="css"?Ie(t.styles):St(t.styles,r),b=t.props||{},y=n.get(t.type),v=l?`${t.id}${l}`:t.id,{props:h,diagnostics:x}=Sn(t,y,p);x.forEach(M=>{c?.(M),p?.onDiagnostic?.(M)}),qn(t,{document:e,context:p,onDiagnostic:c,onActionDispatch:u,mode:o});let g=async M=>{M.stopPropagation(),d&&d(t.id,M),t.actions&&t.actions.length>0&&!b.disabled&&await _({node:t,trigger:"click",document:e,context:p,onDiagnostic:c,onActionDispatch:u}),b.action&&!b.disabled&&(bn({action:b.action,nodeId:t.id,document:e,context:p,onDiagnostic:c,allowBuiltinHandlers:o!=="editor"}),u&&Yo(b.action)&&u(b.action.type,gn(p,b.action.payload),t.id))},S=t.children?.map(M=>J(Me,{node:M,document:e,registry:n,context:p,viewport:r,mode:o,responsive:s,onNodeClick:d,onDiagnostic:c,onActionDispatch:u,onNodePropChange:f,selectedNodeId:a,instanceSuffix:l},`${M.id}${l}`)),k=(M,ne="",ie=p)=>J(Me,{node:M,document:e,registry:n,context:ie,viewport:r,mode:o,responsive:s,onNodeClick:d,onDiagnostic:c,onActionDispatch:u,onNodePropChange:f,selectedNodeId:a,instanceSuffix:`${l}${ne}`},`${M.id}${l}${ne}`),R=b.modalId||b.modalNodeId||b.targetModalId,C=p?.modalManager||ae,w=R?C.hasState(R):!1,T=ma(R,C),P=w?T:!!b.defaultOpen,I={...m},N=t.type==="modal"||t.type==="drawer"||t.type==="collapsible";(b.modalId||b.modalNodeId)&&t.type!=="button"&&t.type!=="link"&&!N&&!P&&(I.display="none");let A;try{A=Go({node:t,document:e,registry:n,context:p,viewport:r,mode:o,styles:I,props:b,resolvedProps:h,definition:y,domId:v,childrenElements:S,handleClick:g,onNodeClick:d,onDiagnostic:c,onActionDispatch:u,onNodePropChange:f,selectedNodeId:a,instanceSuffix:l,isModalOpen:P,renderChildNode:k})}catch(M){o==="editor"?A=we("div",{"data-kubuild-node":t.id,"data-kubuild-error":t.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:[we("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[J(Xo,{size:14,"aria-hidden":"true"}),we("span",{children:["Component Render Error: <",t.type,">"]})]}),we("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",J("code",{children:t.id})," \u2014 ",M instanceof Error?M.message:String(M)]})]}):A=J("div",{"data-kubuild-node":t.id,"data-kubuild-error":t.type,style:{display:"none"},"aria-hidden":"true"})}let F=o==="editor"&&b.action&&!b.disabled?ba(b.action,p):null;return J(Ze,{nodeId:t.id,componentType:t.type,mode:o,onDiagnostic:c,children:F!==null?we(ha,{children:[A,J(ga,{nodeId:t.id,actionType:F})]}):A})}function ga({nodeId:t,actionType:e}){return we("span",{role:"note","data-kubuild-diagnostic":"UNKNOWN_ACTION","data-kubuild-diagnostic-node":t,title:`No action handler registered for action type "${e}". Register it in the render context's actionRegistry or convert it to an action pipeline.`,style:{display:"inline-flex",alignItems:"center",gap:"4px",marginLeft:"4px",padding:"1px 6px",borderRadius:"4px",backgroundColor:"#fffbeb",border:"1px solid #f59e0b",color:"#b45309",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"11px",lineHeight:"16px",verticalAlign:"middle",whiteSpace:"nowrap"},children:[J(Xo,{size:12,"aria-hidden":"true"}),"Unknown action: ",e]})}function ba(t,e){return Yo(t)?je(e?.actionRegistry,t.type)?null:t.type:"invalid"}function jt(t,e,n){return t||(e==="runtime"&&n===void 0?"css":"viewport")}var ya=({document:t,registry:e=fa(),context:n,viewport:i,mode:r="runtime",responsive:o,className:s,showToastContainer:d=!0,onNodeClick:c,onDiagnostic:u,onActionDispatch:f,onNodePropChange:a,selectedNodeId:l})=>{if(!t||!t.document)return J("div",{className:s,children:"Empty Document"});let p=i??"desktop",m=jt(o,r,i),b=ve.useMemo(()=>m==="css"?We(t):"",[t,m]),y=ve.useMemo(()=>vn(t),[t]),v=ve.useMemo(()=>Ye(t),[t]),h=ve.useMemo(()=>Je(Xe(t,n)),[t,n]),x=ve.useMemo(()=>t?.tracking?JSON.stringify(t.tracking):null,[t?.tracking]);return ve.useEffect(()=>{if(r==="runtime"&&t?.tracking&&x)return $n(t.tracking)},[r,x]),J(un,{value:n,children:we("div",{className:`kubuild-canvas-root ${s||""}`,style:h,children:[b?J("style",{"data-kubuild-responsive-styles":!0,children:b}):null,y?J("style",{"data-kubuild-state-styles":!0,children:y}):null,v?J("style",{"data-kubuild-animation-styles":!0,children:v}):null,J(Me,{node:t.document,document:t,registry:e,context:n,viewport:p,mode:r,responsive:m,onNodeClick:c,onDiagnostic:u,onActionDispatch:f,onNodePropChange:a,selectedNodeId:l}),d&&J(An,{})]})})},gt=ve.memo(ya);import Jo from"react";import va from"react-dom";import{createDefaultComponentRegistry as xa}from"@kubuild/components";import{Fragment as er,jsx as Be,jsxs as Zo}from"react/jsx-runtime";function Qo(t){let e=t.document?.document;if(e)return e.children?.[0]??void 0}function ka(t,e){return t.filter(n=>n.artboardType==="component"&&!!n.triggerId&&!!e[n.triggerId]&&!!Qo(n))}var Ut=({artboards:t,registry:e,context:n=ke,viewport:i,mode:r="runtime",responsive:o,modalManager:s,container:d,onDiagnostic:c,onActionDispatch:u})=>{let f=s||ae,{modals:a}=sn(f),l=Jo.useMemo(()=>e||xa(),[e]),p=Jo.useMemo(()=>(t??n.componentArtboards??[]).filter(x=>x.artboardType==="component"),[t,n.componentArtboards]);if(r==="editor")return null;let m=i??"desktop",b=jt(o,"runtime",i),y=ka(p,a);if(y.length===0)return null;let v=d!==void 0?d:typeof globalThis.document<"u"?globalThis.document.body:null;return v?Be(er,{children:y.map(h=>{let x=Qo(h);if(!x)return null;let g=b==="css"?We(h.document):"";return va.createPortal(Zo("div",{"data-kubuild-artboard-portal":h.id,style:{pointerEvents:"auto",...Je(Xe(h.document,n))},children:[g?Be("style",{"data-kubuild-responsive-styles":!0,children:g}):null,Be(Me,{node:x,document:h.document,registry:l,context:n,viewport:m,mode:"runtime",responsive:b,onDiagnostic:c,onActionDispatch:u})]},h.id),v,h.id)})}):null},Uc=({componentArtboards:t,modalManager:e,portalContainer:n,...i})=>Zo(er,{children:[Be(gt,{...i}),Be(Ut,{artboards:t,registry:i.registry,context:i.context,viewport:i.viewport,mode:i.mode,responsive:i.responsive,modalManager:e,container:n,onDiagnostic:i.onDiagnostic,onActionDispatch:i.onActionDispatch})]});import{useMemo as Wt,useState as Ra}from"react";import{BREAKPOINTS as Kt}from"@kubuild/schema";import{Fragment as Ta,jsx as pe,jsxs as Ve}from"react/jsx-runtime";var tr=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}}),Ca=Object.freeze({mobile:Kt.mobile.maxWidth,tablet:Kt.tablet.maxWidth,desktop:Kt.desktop.minWidth});function eu(t,e){let n={...Ca,...e};return t<=n.mobile?"mobile":t<=n.tablet?"tablet":"desktop"}function nr(t,e){let n=tr[t]||tr.desktop,i=e?.[t];return{...n,...i}}function wa(t,e,n){let i=nr(t,e),r=n??i.scale??1,o=d=>typeof d=="number"?`${d}px`:d,s={width:o(i.width),maxWidth:o(i.maxWidth),minWidth:o(i.minWidth),height:o(i.height),minHeight:o(i.minHeight),maxHeight:o(i.maxHeight),aspectRatio:i.aspectRatio,transition:"width 0.2s ease, max-width 0.2s ease, height 0.2s ease"};return r!==1&&(s.transform=`scale(${r})`,s.transformOrigin="top center"),s}var Sa=({document:t,viewport:e="desktop",onViewportChange:n,viewportConfigs:i,breakpoints:r,registry:o,context:s,mode:d="runtime",showChrome:c=!1,chromeTitle:u,editorOverlay:f,scale:a,className:l,style:p,canvasClassName:m,canvasStyle:b,onNodeClick:y,onDiagnostic:v,onActionDispatch:h,componentArtboards:x})=>{let[g,S]=Ra(null),k=x??s?.componentArtboards,R=Wt(()=>nr(e,i),[e,i]),C=Wt(()=>wa(e,i,a),[e,i,a]),w=Wt(()=>({...C,...b,position:"relative",boxSizing:"border-box"}),[C,b]);return Ve("div",{"data-kubuild-preview-container":!0,"data-viewport":e,className:`kubuild-preview-viewport-adapter ${l||""}`,style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start",width:"100%",height:"100%",boxSizing:"border-box",...p},children:[c&&Ve("div",{"data-kubuild-preview-chrome":!0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",maxWidth:C.maxWidth||C.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:[Ve("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[pe("span",{style:{fontWeight:600},children:u||t.metadata?.title||"Preview"}),pe("span",{"data-testid":"viewport-badge",style:{fontSize:"10px",padding:"2px 6px",borderRadius:"4px",backgroundColor:"#334155",color:"#94a3b8",textTransform:"uppercase",fontWeight:700},children:e}),pe("span",{style:{fontSize:"11px",color:"#64748b"},children:R.label||`${R.width} \xD7 ${R.height||"auto"}`})]}),n&&pe("div",{"data-testid":"viewport-switcher",style:{display:"flex",gap:"4px",backgroundColor:"#0f172a",padding:"2px",borderRadius:"6px"},children:["desktop","tablet","mobile"].map(T=>{let P=e===T;return pe("button",{type:"button","data-testid":`viewport-btn-${T}`,onClick:()=>n(T),style:{padding:"4px 10px",fontSize:"11px",fontWeight:500,borderRadius:"4px",border:"none",cursor:"pointer",textTransform:"capitalize",backgroundColor:P?"#3b82f6":"transparent",color:P?"#ffffff":"#94a3b8",transition:"all 0.15s ease"},children:T},T)})})]}),Ve("div",{"data-kubuild-preview-canvas":!0,"data-viewport":e,className:`kubuild-preview-canvas ${m||""}`,style:w,children:[pe(gt,{document:t,registry:o,context:s,viewport:e,mode:d,onNodeClick:y,onDiagnostic:v,onActionDispatch:h}),k&&k.length>0&&Ve(Ta,{children:[pe("div",{ref:S,"data-kubuild-preview-overlay-host":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,transform:"translate3d(0, 0, 0)",pointerEvents:"none"}}),g&&pe(Ut,{artboards:k,registry:o,context:s,viewport:e,mode:d,container:g,onDiagnostic:v,onActionDispatch:h})]}),f&&pe("div",{"data-kubuild-preview-overlay":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10},children:f})]})]})},tu=Sa;import{CURRENT_SCHEMA_VERSION as Ea,BREAKPOINT_MEDIA_QUERIES as $a,BREAKPOINT_ORDER as Ia}from"@kubuild/schema";function U(t){return t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function D(t){return U(t)}function Na(t){if(!t||typeof t!="string")return null;let e=t.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i);return e?e[1]:null}function Pa(t){if(!t||typeof t!="string")return null;let e=t.match(/(?:vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|))(\d+)/i);return e?e[3]:null}function Q(t,e,n){let i=" ".repeat(e*(n.indentSize??2)),r=" ".repeat((e+1)*(n.indentSize??2)),o=t.props||{},s=t.children||[],c=n.includeNodeClasses!==!1?`kb-node-${t.id}`:"",u=(...a)=>a.filter(Boolean).join(" "),f=o.id?` id="${D(o.id)}"`:"";switch(t.type){case"page":{let a=n.rootTag||"main",l=u("kb-page",c),p=s.map(m=>Q(m,e+1,n)).join(`
|
|
136
|
+
`);return p?`${i}<${a} class="${l}"${f}>
|
|
137
|
+
${p}
|
|
138
|
+
${i}</${a}>`:`${i}<${a} class="${l}"${f}></${a}>`}case"section":{let a=o.ariaLabel?` aria-label="${D(o.ariaLabel)}"`:"",l=u("kb-section",c),p=s.map(m=>Q(m,e+1,n)).join(`
|
|
139
|
+
`);return p?`${i}<section class="${l}"${f}${a}>
|
|
140
|
+
${p}
|
|
141
|
+
${i}</section>`:`${i}<section class="${l}"${f}${a}></section>`}case"container":{let a=u("kb-container",c),l=s.map(p=>Q(p,e+1,n)).join(`
|
|
142
|
+
`);return l?`${i}<div class="${a}"${f}>
|
|
143
|
+
${l}
|
|
144
|
+
${i}</div>`:`${i}<div class="${a}"${f}></div>`}case"columns":{let a=u("kb-columns",c),l=s.map(p=>Q(p,e+1,n)).join(`
|
|
145
|
+
`);return l?`${i}<div class="${a}"${f}>
|
|
146
|
+
${l}
|
|
147
|
+
${i}</div>`:`${i}<div class="${a}"${f}></div>`}case"heading":{let a="h2";typeof o.level=="string"&&/^h[1-6]$/i.test(o.level)?a=o.level.toLowerCase():typeof o.level=="number"&&o.level>=1&&o.level<=6?a=`h${o.level}`:typeof o.tag=="string"&&/^h[1-6]$/i.test(o.tag)&&(a=o.tag.toLowerCase());let l=o.text??o.value??o.content??"Heading",p=u("kb-heading",c);return`${i}<${a} class="${p}"${f}>${U(l)}</${a}>`}case"paragraph":{let a=o.text??o.value??o.content??"",l=u("kb-paragraph",c);return`${i}<p class="${l}"${f}>${U(a)}</p>`}case"text":{let a=o.as||"p",l=o.text??o.value??o.content??"",p=u("kb-text",c);return`${i}<${a} class="${p}"${f}>${U(l)}</${a}>`}case"link":{let a=o.href?` href="${D(o.href)}"`:' href="#"',l=o.target?` target="${D(o.target)}"`:"",p=o.rel?` rel="${D(o.rel)}"`:l.includes("_blank")?' rel="noopener noreferrer"':"",m=o.text??o.label??o.value,b=u("kb-link",c);if(s.length>0){let y=s.map(v=>Q(v,e+1,n)).join(`
|
|
148
|
+
`);return`${i}<a class="${b}"${f}${a}${l}${p}>
|
|
151
149
|
${y}
|
|
152
|
-
${
|
|
153
|
-
|
|
154
|
-
${r}</div>`;if(u)return`${r}<div class="kb-video-wrapper ${c}"${f}>
|
|
155
|
-
${n}<iframe src="https://player.vimeo.com/video/${E(u)}" title="${E(t.title||"Video player")}" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
|
|
156
|
-
${r}</div>`;let y=t.poster?` poster="${E(t.poster)}"`:"",m=t.controls!==!1?" controls":"",v=t.autoplay?" autoplay":"",h=t.loop?" loop":"",x=t.muted?" muted":"",b=a?` src="${E(a)}"`:"";return`${r}<video class="${g}"${f}${b}${y}${m}${v}${h}${x}></video>`}case"icon":{let a=t.name||t.icon||"star",s=t.ariaLabel?` aria-label="${E(t.ariaLabel)}"`:' aria-hidden="true"',u=p("kb-icon",c);return`${r}<span class="${u}"${f}${s} data-icon="${E(a)}"></span>`}case"html-embed":{let a=t.html??t.content??"",s=p("kb-html-embed",c);return a?`${r}<div class="${s}"${f}>
|
|
157
|
-
${n}${a}
|
|
158
|
-
${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"',u=t.disabled?" disabled":"",g=p("kb-button",c);if(t.href){let y=` href="${E(t.href)}"`,m=t.target?` target="${E(t.target)}"`:"";return`${r}<a class="${g}"${f}${y}${m}>${V(a)}</a>`}return`${r}<button class="${g}"${f}${s}${u}>${V(a)}</button>`}case"form":{let a=t.action?` action="${E(t.action)}"`:"",s=t.method?` method="${E(t.method)}"`:' method="POST"',u=p("kb-form",c),g=d.map(y=>U(y,e+1,o)).join(`
|
|
159
|
-
`);return g?`${r}<form class="${u}"${f}${a}${s}>
|
|
160
|
-
${g}
|
|
161
|
-
${r}</form>`:`${r}<form class="${u}"${f}${a}${s}></form>`}case"input":{let a=t.type?` type="${E(t.type)}"`:' type="text"',s=t.name?` name="${E(t.name)}"`:"",u=t.placeholder?` placeholder="${E(t.placeholder)}"`:"",g=t.value!==void 0?` value="${E(t.value)}"`:"",y=t.required?" required":"",m=t.disabled?" disabled":"",v=p("kb-input",c);return`${r}<input class="${v}"${f}${a}${s}${u}${g}${y}${m} />`}case"textarea":{let a=t.name?` name="${E(t.name)}"`:"",s=t.placeholder?` placeholder="${E(t.placeholder)}"`:"",u=t.rows?` rows="${E(t.rows)}"`:' rows="4"',g=t.value??t.defaultValue??"",y=t.required?" required":"",m=t.disabled?" disabled":"",v=p("kb-textarea",c);return`${r}<textarea class="${v}"${f}${a}${s}${u}${y}${m}>${V(g)}</textarea>`}case"select":{let a=t.name?` name="${E(t.name)}"`:"",s=t.required?" required":"",u=t.disabled?" disabled":"",g=p("kb-select",c),y=Array.isArray(t.options)?t.options:[],m=" ".repeat((e+1)*(o.indentSize??2)),v=y.map(h=>{let x=typeof h=="object"?h.value:h,b=typeof h=="object"?h.label:h,R=t.value===x||t.defaultValue===x?" selected":"";return`${m}<option value="${E(x)}"${R}>${V(b)}</option>`}).join(`
|
|
162
|
-
`);return v?`${r}<select class="${g}"${f}${a}${s}${u}>
|
|
150
|
+
${i}</a>`}return`${i}<a class="${b}"${f}${a}${l}${p}>${U(m??"Link")}</a>`}case"blockquote":{let a=o.cite?` cite="${D(o.cite)}"`:"",l=o.quote??o.text??o.value,p=o.author??o.citeAuthor,m=u("kb-blockquote",c);if(l||p){let b=l?`${r}<p>${U(l)}</p>`:"",y=p?`${r}<cite>${U(p)}</cite>`:"",v=[b,y].filter(Boolean).join(`
|
|
151
|
+
`);return`${i}<blockquote class="${m}"${f}${a}>
|
|
163
152
|
${v}
|
|
164
|
-
${
|
|
165
|
-
`);return
|
|
166
|
-
${
|
|
167
|
-
${
|
|
168
|
-
|
|
169
|
-
${
|
|
170
|
-
${r}
|
|
171
|
-
|
|
172
|
-
${
|
|
173
|
-
${
|
|
174
|
-
`);return
|
|
175
|
-
${
|
|
176
|
-
${
|
|
177
|
-
`);return
|
|
153
|
+
${i}</blockquote>`}if(s.length>0){let b=s.map(y=>Q(y,e+1,n)).join(`
|
|
154
|
+
`);return`${i}<blockquote class="${m}"${f}${a}>
|
|
155
|
+
${b}
|
|
156
|
+
${i}</blockquote>`}return`${i}<blockquote class="${m}"${f}${a}></blockquote>`}case"badge":{let a=o.text??o.label??o.value??"Badge",l=u("kb-badge",c);return`${i}<span class="${l}"${f}>${U(a)}</span>`}case"code-block":{let a=o.code??o.text??o.value??"",l=o.language||o.lang,p=l?` class="language-${D(l)}"`:"",m=u("kb-code-block",c);return`${i}<pre class="${m}"${f}><code${p}>${U(a)}</code></pre>`}case"divider":{let a=u("kb-divider",c),l=o.text??o.label;return l?`${i}<div class="${a}"${f} role="separator"><span>${U(l)}</span></div>`:`${i}<hr class="${a}"${f} />`}case"spacer":{let a=u("kb-spacer",c);return`${i}<div class="${a}"${f} aria-hidden="true"></div>`}case"image":{let a=o.src?` src="${D(o.src)}"`:' src=""',l=o.alt?` alt="${D(o.alt)}"`:' alt=""',p=o.loading?` loading="${D(o.loading)}"`:' loading="lazy"',m=u("kb-image",c);return`${i}<img class="${m}"${f}${a}${l}${p} />`}case"video":{let a=o.src||"",l=Na(a),p=Pa(a),m=u("kb-video",c);if(l)return`${i}<div class="kb-video-wrapper ${c}"${f}>
|
|
157
|
+
${r}<iframe src="https://www.youtube-nocookie.com/embed/${D(l)}" title="${D(o.title||"Video player")}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
|
158
|
+
${i}</div>`;if(p)return`${i}<div class="kb-video-wrapper ${c}"${f}>
|
|
159
|
+
${r}<iframe src="https://player.vimeo.com/video/${D(p)}" title="${D(o.title||"Video player")}" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
|
|
160
|
+
${i}</div>`;let b=o.poster?` poster="${D(o.poster)}"`:"",y=o.controls!==!1?" controls":"",v=o.autoplay?" autoplay":"",h=o.loop?" loop":"",x=o.muted?" muted":"",g=a?` src="${D(a)}"`:"";return`${i}<video class="${m}"${f}${g}${b}${y}${v}${h}${x}></video>`}case"icon":{let a=o.name||o.icon||"star",l=o.ariaLabel?` aria-label="${D(o.ariaLabel)}"`:' aria-hidden="true"',p=u("kb-icon",c);return`${i}<span class="${p}"${f}${l} data-icon="${D(a)}"></span>`}case"html-embed":{let a=o.html??o.content??"",l=u("kb-html-embed",c);return a?`${i}<div class="${l}"${f}>
|
|
161
|
+
${r}${a}
|
|
162
|
+
${i}</div>`:`${i}<div class="${l}"${f}></div>`}case"button":{let a=o.label??o.text??o.value??"Button",l=o.type?` type="${D(o.type)}"`:' type="button"',p=o.disabled?" disabled":"",m=u("kb-button",c);if(o.href){let b=` href="${D(o.href)}"`,y=o.target?` target="${D(o.target)}"`:"";return`${i}<a class="${m}"${f}${b}${y}>${U(a)}</a>`}return`${i}<button class="${m}"${f}${l}${p}>${U(a)}</button>`}case"form":{let a=o.action?` action="${D(o.action)}"`:"",l=o.method?` method="${D(o.method)}"`:' method="POST"',p=u("kb-form",c),m=s.map(b=>Q(b,e+1,n)).join(`
|
|
163
|
+
`);return m?`${i}<form class="${p}"${f}${a}${l}>
|
|
164
|
+
${m}
|
|
165
|
+
${i}</form>`:`${i}<form class="${p}"${f}${a}${l}></form>`}case"input":{let a=o.type?` type="${D(o.type)}"`:' type="text"',l=o.name?` name="${D(o.name)}"`:"",p=o.placeholder?` placeholder="${D(o.placeholder)}"`:"",m=o.value!==void 0?` value="${D(o.value)}"`:"",b=o.required?" required":"",y=o.disabled?" disabled":"",v=u("kb-input",c);return`${i}<input class="${v}"${f}${a}${l}${p}${m}${b}${y} />`}case"textarea":{let a=o.name?` name="${D(o.name)}"`:"",l=o.placeholder?` placeholder="${D(o.placeholder)}"`:"",p=o.rows?` rows="${D(o.rows)}"`:' rows="4"',m=o.value??o.defaultValue??"",b=o.required?" required":"",y=o.disabled?" disabled":"",v=u("kb-textarea",c);return`${i}<textarea class="${v}"${f}${a}${l}${p}${b}${y}>${U(m)}</textarea>`}case"select":{let a=o.name?` name="${D(o.name)}"`:"",l=o.required?" required":"",p=o.disabled?" disabled":"",m=u("kb-select",c),b=Array.isArray(o.options)?o.options:[],y=" ".repeat((e+1)*(n.indentSize??2)),v=b.map(h=>{let x=typeof h=="object"?h.value:h,g=typeof h=="object"?h.label:h,S=o.value===x||o.defaultValue===x?" selected":"";return`${y}<option value="${D(x)}"${S}>${U(g)}</option>`}).join(`
|
|
166
|
+
`);return v?`${i}<select class="${m}"${f}${a}${l}${p}>
|
|
178
167
|
${v}
|
|
179
|
-
${
|
|
180
|
-
`);return
|
|
181
|
-
${
|
|
182
|
-
${
|
|
183
|
-
`);return
|
|
184
|
-
${
|
|
185
|
-
${
|
|
186
|
-
`);return
|
|
187
|
-
${
|
|
188
|
-
${
|
|
168
|
+
${i}</select>`:`${i}<select class="${m}"${f}${a}${l}${p}></select>`}case"checkbox":{let a=o.name?` name="${D(o.name)}"`:"",l=o.checked||o.defaultChecked?" checked":"",p=o.label??o.text??"",m=u("kb-checkbox-label",c);return`${i}<label class="${m}"${f}><input type="checkbox"${a}${l} /><span>${U(p)}</span></label>`}case"radio":{let a=o.name?` name="${D(o.name)}"`:"",l=o.value?` value="${D(o.value)}"`:"",p=o.checked||o.defaultChecked?" checked":"",m=o.label??o.text??"",b=u("kb-radio-label",c);return`${i}<label class="${b}"${f}><input type="radio"${a}${l}${p} /><span>${U(m)}</span></label>`}case"list":{let a=o.tag==="ol"||o.type==="ol"||o.ordered?"ol":"ul",l=u("kb-list",c),p=s.map(m=>Q(m,e+1,n)).join(`
|
|
169
|
+
`);return p?`${i}<${a} class="${l}"${f}>
|
|
170
|
+
${p}
|
|
171
|
+
${i}</${a}>`:`${i}<${a} class="${l}"${f}></${a}>`}case"list-item":{let a=o.text??o.value,l=u("kb-list-item",c);if(s.length>0){let p=s.map(m=>Q(m,e+1,n)).join(`
|
|
172
|
+
`);return`${i}<li class="${l}"${f}>
|
|
173
|
+
${p}
|
|
174
|
+
${i}</li>`}return`${i}<li class="${l}"${f}>${U(a??"List item")}</li>`}case"table":{let a=u("kb-table",c),l=s.map(p=>Q(p,e+1,n)).join(`
|
|
175
|
+
`);return l?`${i}<table class="${a}"${f}>
|
|
176
|
+
${l}
|
|
177
|
+
${i}</table>`:`${i}<table class="${a}"${f}></table>`}case"table-row":{let a=u("kb-table-row",c),l=s.map(p=>Q(p,e+1,n)).join(`
|
|
178
|
+
`);return l?`${i}<tr class="${a}"${f}>
|
|
179
|
+
${l}
|
|
180
|
+
${i}</tr>`:`${i}<tr class="${a}"${f}></tr>`}case"table-cell":{let l=o.isHeader||o.type==="header"||o.tag==="th"?"th":"td",p=o.colSpan&&Number(o.colSpan)>1?` colspan="${D(o.colSpan)}"`:"",m=o.rowSpan&&Number(o.rowSpan)>1?` rowspan="${D(o.rowSpan)}"`:"",b=o.text??o.value??"",y=u("kb-table-cell",c);if(s.length>0){let v=s.map(h=>Q(h,e+1,n)).join(`
|
|
181
|
+
`);return`${i}<${l} class="${y}"${f}${p}${m}>
|
|
182
|
+
${v}
|
|
183
|
+
${i}</${l}>`}return`${i}<${l} class="${y}"${f}${p}${m}>${U(b)}</${l}>`}case"collection":{let a=u("kb-collection",c),l=s.map(p=>Q(p,e+1,n)).join(`
|
|
184
|
+
`);return l?`${i}<div class="${a}"${f}>
|
|
185
|
+
${l}
|
|
186
|
+
${i}</div>`:`${i}<div class="${a}"${f}></div>`}default:{let a=u(`kb-${t.type}`,c),l=s.map(p=>Q(p,e+1,n)).join(`
|
|
187
|
+
`);return l?`${i}<div class="${a}"${f}>
|
|
188
|
+
${l}
|
|
189
|
+
${i}</div>`:`${i}<div class="${a}"${f}></div>`}}}function Aa(t,e={}){let n="document"in t?t.document:t;return n?Q(n,0,e):""}function bt(t,e,n=""){if(!e.trim())return"";let i=e.split(";").map(o=>o.trim()).filter(Boolean);if(i.length===0)return"";let r=i.map(o=>`${n} ${o};`).join(`
|
|
190
|
+
`);return`${n}${t} {
|
|
191
|
+
${r}
|
|
192
|
+
${n}}`}var Da={desktop:"Desktop Breakpoint",tablet:"Tablet Breakpoint",mobile:"Mobile Breakpoint"};function Fa(t,e={}){let n="document"in t?t.document:t;if(!n)return"";let i=e.classPrefix||"kb-node-",r=[],o=[],s=l=>{let p=`.${i}${l.id}`;if(l.styles){let m=Ke(Ie(l.styles));if(m&&r.push(bt(p,m)),l.styles.states&&typeof l.styles.states=="object")for(let[b,y]of Object.entries(l.styles.states)){if(!y)continue;let v=/^::?[a-zA-Z-]+$/.test(b)?b:null;if(!v)continue;let h=Ke(y);h&&o.push(bt(`${p}${v}`,h))}}l.children?.forEach(s)};s(n);let d=Tt(n),c=[];e.includeReset!==!1&&c.push(`/* ==========================================================================
|
|
189
193
|
Baseline Reset & Typography Standards
|
|
190
194
|
========================================================================== */
|
|
191
|
-
${
|
|
195
|
+
${xn}`);let u="document"in t?Rn(t.theme):"";u&&c.push(`/* ==========================================================================
|
|
196
|
+
Design Tokens
|
|
197
|
+
========================================================================== */
|
|
198
|
+
${bt(":root",u)}`),r.length>0&&c.push(`/* ==========================================================================
|
|
192
199
|
Component Styles
|
|
193
200
|
========================================================================== */
|
|
194
|
-
${
|
|
201
|
+
${r.join(`
|
|
195
202
|
|
|
196
|
-
`)}`),
|
|
203
|
+
`)}`),o.length>0&&c.push(`/* ==========================================================================
|
|
197
204
|
Interactive & Hover States
|
|
198
205
|
========================================================================== */
|
|
199
|
-
${
|
|
200
|
-
|
|
201
|
-
`)}`),t.length>0&&p.push(`/* ==========================================================================
|
|
202
|
-
Tablet Breakpoint (max-width: 1024px)
|
|
203
|
-
========================================================================== */
|
|
204
|
-
@media (max-width: 1024px) {
|
|
205
|
-
${t.join(`
|
|
206
|
+
${o.join(`
|
|
206
207
|
|
|
207
|
-
`)}
|
|
208
|
-
}
|
|
209
|
-
Mobile Breakpoint (max-width: 640px)
|
|
208
|
+
`)}`);for(let l of Ia){let p=d[l].map(b=>bt(`.${i}${b.nodeId}`,b.declarations," ")).filter(Boolean);if(p.length===0)continue;let m=$a[l];c.push(`/* ==========================================================================
|
|
209
|
+
${Da[l]} ${m}
|
|
210
210
|
========================================================================== */
|
|
211
|
-
@media
|
|
212
|
-
${
|
|
211
|
+
@media ${m} {
|
|
212
|
+
${p.join(`
|
|
213
213
|
|
|
214
214
|
`)}
|
|
215
|
-
}`)
|
|
215
|
+
}`)}let f="document"in t?t:{schema:"stora.page",version:Ea,document:n},a=Ye(f);return a&&c.push(`/* ==========================================================================
|
|
216
216
|
Animations & Motion Keyframes
|
|
217
217
|
========================================================================== */
|
|
218
|
-
${a}`),
|
|
218
|
+
${a}`),c.join(`
|
|
219
219
|
|
|
220
|
-
`)}function
|
|
221
|
-
`:"",
|
|
220
|
+
`)}function cu(t,e={}){let n=U(t.metadata?.title||"KUBUILD Page"),i=t.metadata?.description?D(t.metadata.description):"",r=t.metadata?.author?D(t.metadata.author):"",o=e.lang||"en",s=Fa(t,e.cssOptions),d=Aa(t,e.htmlOptions),c=i?` <meta name="description" content="${i}">
|
|
221
|
+
`:"",u=r?` <meta name="author" content="${r}">
|
|
222
222
|
`:"";return`<!DOCTYPE html>
|
|
223
|
-
<html lang="${
|
|
223
|
+
<html lang="${o}">
|
|
224
224
|
<head>
|
|
225
225
|
<meta charset="UTF-8">
|
|
226
226
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
227
|
-
<title>${
|
|
228
|
-
${c}${
|
|
229
|
-
${
|
|
227
|
+
<title>${n}</title>
|
|
228
|
+
${c}${u} <style>
|
|
229
|
+
${s}
|
|
230
230
|
</style>
|
|
231
231
|
</head>
|
|
232
232
|
<body>
|
|
233
|
-
${
|
|
233
|
+
${d}
|
|
234
234
|
</body>
|
|
235
|
-
</html>`}export{
|
|
235
|
+
</html>`}export{kr as ANIMATION_KEYFRAMES_CSS,me as ApiRequestError,Ut as ArtboardPortalHost,Ga as BUILTIN_LEGACY_ACTION_TYPES,Mo as CAROUSEL_SWIPE_THRESHOLD,Ze as ComponentErrorBoundary,Ca as DEFAULT_BREAKPOINTS,xn as DEFAULT_CSS_RESET,ke as DEFAULT_RENDER_CONTEXT,tr as DEFAULT_VIEWPORT_CONFIGS,G as EditableText,io as FormButtonSubmitNode,Gn as FormCheckboxNode,jn as FormContainerNode,ro as FormFileUploadNode,Un as FormInputNode,no as FormRadioGroupNode,rt as FormRadioNode,At as FormRuntimeContext,Bn as FormRuntimeProvider,Kn as FormSelectNode,Yn as FormSubmitButtonNode,oo as FormSwitchNode,Wn as FormTextareaNode,Hn as HtmlEmbedView,tu as KubuildPreviewViewport,Uc as KubuildProjectRenderer,gt as KubuildRenderer,Br as META_STANDARD_EVENTS,vt as ModalManager,Me as NodeRenderer,Sa as PreviewViewportAdapter,_o as RATING_MAX_STARS,nt as RadioGroupContext,un as RenderContextProvider,Kr as ToastCard,An as ToastContainer,yt as ToastManager,Tn as apiRequestRunner,Qn as aspectRatioToCss,Dr as buildApiUrl,So as buildFaqJsonLd,pt as clampTabIndex,qe as closeModalRunner,Ye as collectAnimationStylesCss,Tt as collectResponsiveCssRules,We as collectResponsiveStylesCss,vn as collectStateStylesCss,en as copyClipboardRunner,dr as copyToClipboard,Nt as createApiRequestHandler,Yr as createDefaultActionRunners,is as createMinimalRenderContext,qt as createPlaceholderImage,fr as createRenderContext,nn as customEventRunner,bn as dispatchAction,_ as executeNodeActions,In as fireBrowserPixel,ho as fireCountdownExpire,go as formatCountdown,zo as formatRatingLabel,Fa as generateDocumentCss,Aa as generateSemanticHtml,cu as generateStandaloneHtml,Qo as getArtboardContentNode,bo as getCountdownStorage,wr as getEntranceAnimationCss,Rr as getHoverEffectCss,Cr as getLoopEffectCss,Lt as getTimeZoneOffsetMs,ba as getUnresolvedLegacyActionType,Jn as getVimeoId,Xn as getYouTubeId,Dt as handleFormButtonClick,Se as hasBuiltinLegacyAction,$n as injectTrackingScripts,as as isActionRegistered,je as isLegacyActionResolvable,ae as modalManager,_e as navigateRunner,yn as nodeAttributeSelector,mt as normalizeRating,wt as normalizeStyleObject,$e as openModalRunner,xi as partitionFilesBySize,Fr as prepareRequestBody,Ho as ratingStarFills,tt as registerDefaultActionRunners,En as removeTrackingScripts,ua as renderCollectionNode,Wo as renderConversionNode,ra as renderCustomComponent,co as renderExtendedFormNode,pa as renderFallbackNode,ca as renderFormNode,so as renderInteractiveNode,ia as renderLayoutNode,sa as renderListNode,la as renderMediaNode,Go as renderNodeContent,da as renderTableNode,aa as renderTypographyNode,ms as replayNodeAnimation,Si as resetCountdownMemoryStore,tn as resetFormRunner,gn as resolveActionPayload,mn as resolveActionPayloadDetailed,Mr as resolveApiRequestBody,kt as resolveAssetSync,Ie as resolveBaseNodeStyles,yo as resolveEvergreenDeadline,ct as resolveFixedDeadline,St as resolveNodeStyles,jt as resolveResponsiveMode,br as resolveResponsiveStyleLayers,Xe as resolveRuntimeTheme,fn as resolveVariable,wa as resolveViewportContainerStyle,nr as resolveViewportDimensions,eu as resolveViewportFromWidth,dn as runBuiltinLegacyAction,ka as selectOpenComponentArtboards,To as serializeJsonForScript,He as showToastRunner,Ht as splitCountdown,ft as stepCarouselIndex,Ke as styleDefinitionToCssDeclarations,Bo as swipeDirection,Rn as themeToCssDeclarations,Je as themeToCssProperties,it as toPascalCase,xe as toastManager,Co as toggleAccordionIndex,ze as toggleModalRunner,Nn as trackEventRunner,si as transformEmbedHtml,pd as useFormContext,md as useFormField,te as useFormRuntime,fd as useFormStatus,an as useModal,sn as useModals,qn as useNodeLoadActions,pn as useRenderContext,Qt as useToasts};
|