@kubuild/renderer 0.10.1 → 0.11.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-runners/tracking.d.cts.map +1 -1
- package/dist/action-runners/tracking.d.ts.map +1 -1
- package/dist/index.cjs +55 -55
- package/dist/index.js +63 -63
- package/dist/renderer.d.cts.map +1 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/tracking/tracking-manager.d.cts +34 -11
- package/dist/tracking/tracking-manager.d.cts.map +1 -1
- package/dist/tracking/tracking-manager.d.ts +34 -11
- package/dist/tracking/tracking-manager.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import ve from"react";import{isActionBinding as tr}from"@kubuild/schema";import{createDefaultComponentRegistry as Ca}from"@kubuild/components";import{createContext as gr,useContext as br,useMemo as yr}from"react";import{resolveBinding as Ge}from"@kubuild/core";import{isVariableBinding as fn,isActionBinding as hr}from"@kubuild/schema";import{isSafeActionUrl as fr}from"@kubuild/schema";import{interpolateValue as on}from"@kubuild/core";import{useState as cr,useEffect as ur}from"react";var pr=0,vt=class{toasts=[];listeners=new Set;timers=new Map;showToast(e){let n=typeof e=="string"?{message:e}:e,i=n.id||`toast_${Date.now()}_${++pr}`,r=n.type||n.variant||"info",o=n.duration!==void 0?Math.max(0,n.duration):4e3,a=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:a,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 vt;function nn(t=xe){let[e,n]=cr(()=>t.getToasts());return ur(()=>(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 mr(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 qe=(t,e)=>{let n=t.payload||{},i=String(n.url||"").trim();if(!i)throw new Error("Navigation URL cannot be empty");if(!fr(i))throw new Error(`Disallowed or unsafe protocol in navigation URL: "${i}"`);let r=n.target||"_self",o=n.replace??!1,a=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":a,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:a,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:a,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:a}),{url:i,target:r,replace:o,scroll:d,behavior:a,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:a,navigated:!0,isAnchor:!1})},rn=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 mr(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}},an=(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}},sn=(t,e)=>{let n=t.payload||{},i=String(n.eventName||"").trim(),r=String(on(i,e)).trim();if(!r)throw new Error("Custom event name cannot be empty");let o=n.detail||{},a={};for(let[c,u]of Object.entries(o))a[c]=on(u,e);let d=!1;if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let c=new CustomEvent(r,{detail:a,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,...a})}return{eventName:r,detail:a,dispatched:d}};import{useState as dn,useEffect as ln,useCallback as xt}from"react";var kt=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 kt;function cn(t,e=ae){if(!t)return{isOpen:!1,open:()=>{},close:()=>{},toggle:()=>!1};let[n,i]=dn(()=>e.isModalOpen(t));ln(()=>(i(e.isModalOpen(t)),e.subscribe(d=>{i(!!d[t])})),[t,e]);let r=xt(()=>e.openModal(t),[t,e]),o=xt(()=>e.closeModal(t),[t,e]),a=xt(()=>e.toggleModal(t),[t,e]);return{isOpen:n,open:r,close:o,toggle:a}}function un(t=ae){let[e,n]=dn(()=>t.getState());return ln(()=>(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 je=(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,a=n.position||"top-right",d=n.title?String(n.title):void 0,u=(e.toastManager||xe).showToast({message:i,type:r,duration:o,position:a,title:d});return{id:u.id,message:u.message,type:u.type,title:u.title,duration:u.duration,position:u.position}},Ie=(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}},Ue=(t,e)=>Ie({...t,payload:{...t.payload||{},toggle:!0}},e),We=(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 a=e.state.modals||{};e.state.modals={...a,[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 Rt=Object.freeze({navigate:qe,open_modal:Ie,close_modal:We,toggle_modal:Ue,show_toast:je}),rs=Object.freeze(Object.keys(Rt));function Te(t){return!!(t&&Object.prototype.hasOwnProperty.call(Rt,t))}function Ke(t,e){return e?!!t?.get(e)||Te(e):!1}async function pn(t,e,n){let i=Te(t)?Rt[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||{}},a={nodeId:n.nodeId,document:n.document,variables:n.context?.variables?{...n.context.variables}:{},state:{},toastManager:r?.toastManager,modalManager:r?.modalManager};return i(o,a,new AbortController().signal)}import{jsx as xr}from"react/jsx-runtime";var ke=Object.freeze({}),mn=gr(ke);function vr(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})}:{},...t.onFormSubmit?{onFormSubmit:t.onFormSubmit}:{}})}function gs(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,a)=>{n.set(o,a)},unregister:o=>{n.delete(o)}};return vr({variables:t?.variables,assetProvider:i,actionRegistry:r,onDiagnostic:t?.onDiagnostic})}var gn=({value:t,children:e})=>{let n=yr(()=>t||ke,[t]);return xr(mn.Provider,{value:n,children:e})};function bn(){return br(mn)}function Ct(t,e){if(!(!t||!e))try{let n=t.resolve(e);return typeof n=="string"?n:void 0}catch{return}}function yn(t,e){return e==null?e:fn(e)?Ge(e,t).value:typeof e=="string"&&e.includes("{{")?e.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(n,i)=>{let r=Ge({key:i},t);return r.status==="resolved"?String(r.value):n}):e}function hn(t,e){if(!e||typeof e!="object")return{value:e,invalidPaths:[]};let n=[],i=(o,a)=>{if(o==null)return o;if(fn(o)){let d=Ge(o,t);return d.status==="empty"&&n.push(a),d.value}if(typeof o=="string")return o.includes("{{")?o.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(d,c)=>{let u=Ge({key:c},t);return u.status!=="resolved"?(n.push(a),d):String(u.value)}):o;if(Array.isArray(o))return o.map((d,c)=>i(d,`${a}[${c}]`));if(typeof o=="object"){let d={};for(let[c,u]of Object.entries(o))d[c]=i(u,a?`${a}.${c}`:c);return d}return o},r={};for(let[o,a]of Object.entries(e))r[o]=i(a,o);return{value:r,invalidPaths:n}}function vn(t,e){return hn(t,e).value}function bs(t,e){return!t||!e?!1:!!t.get(e)}function xn(t){let{action:e,nodeId:n,document:i,context:r,onDiagnostic:o}=t;if(!hr(e)){let s={code:"INVALID_ACTION_PAYLOAD",actionType:typeof e?.type=="string"?e.type:"unknown",nodeId:n,message:`Invalid action binding on node ${n||"unknown"}.`};return o?.(s),r?.onDiagnostic?.(s),!1}let a=r?.actionRegistry?.get(e.type),d=!a&&Te(e.type);if(d&&t.allowBuiltinHandlers===!1)return!1;if(!a&&!d){let s={code:"UNKNOWN_ACTION",actionType:e.type,nodeId:n,message:`No action handler registered for action type "${e.type}".`};return o?.(s),r?.onDiagnostic?.(s),!1}let{value:c,invalidPaths:u}=hn(r,e.payload);if(u.length>0){let s={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?.(s),r?.onDiagnostic?.(s),!1}if(!a)return pn(e.type,c,{nodeId:n,document:i,context:r}).catch(s=>{let l={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:n,message:`Built-in "${e.type}" action failed: ${s instanceof Error?s.message:String(s)}`,error:s};o?.(l),r?.onDiagnostic?.(l)}),!0;let f={nodeId:n,document:i,variables:r?.variables};try{let s=a(c,f);return s&&typeof s.catch=="function"&&s.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(s){let l={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:n,message:`Action "${e.type}" handler threw a synchronous error: ${s instanceof Error?s.message:String(s)}`,error:s};return o?.(l),r?.onDiagnostic?.(l),!1}}import{AlertTriangle as nr}from"lucide-react";import{BREAKPOINT_MEDIA_QUERIES as kr,BREAKPOINT_ORDER as St}from"@kubuild/schema";function Tt(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 Et(t,e="desktop"){if(!t)return{};let n=t.base||{},i=t[e]||{},r={...n,...i};return Tt(r)}function Ne(t){return t?Tt(t.base||{}):{}}function wt(t){return t==null||t===""}function Rr(t){let e=Ne(t),n={};if(!t)return{base:e,overrides:n};for(let i of St){let r=t[i];if(!r||typeof r!="object"||Object.keys(r).length===0)continue;let o=Et(t,i),a={};for(let[d,c]of Object.entries(o))wt(c)||c!==e[d]&&(a[d]=c);for(let[d,c]of Object.entries(e))wt(c)||wt(o[d])&&(a[d]="unset");Object.keys(a).length>0&&(n[i]=a)}return{base:e,overrides:n}}function $t(t,e={}){let n={desktop:[],tablet:[],mobile:[]};if(!t)return n;let i=r=>{if(r.styles){let{overrides:o}=Rr(r.styles);for(let a of St){let d=o[a];if(!d)continue;let c=Rn(d,e);c&&n[a].push({nodeId:r.id,declarations:c})}}r.children?.forEach(i)};return i(t),n}function kn(t){return`[data-kubuild-node="${wr(t)}"]`}function Ye(t,e={important:!0}){if(!t?.document)return"";let n=$t(t.document,{important:e.important!==!1}),i=[];for(let r of St){let o=n[r];if(o.length===0)continue;let a=o.map(d=>` ${kn(d.nodeId)} { ${d.declarations} }`).join(`
|
|
2
|
-
`);i.push(`@media ${
|
|
1
|
+
import xe from"react";import{isActionBinding as ir}from"@kubuild/schema";import{createDefaultComponentRegistry as Ma}from"@kubuild/components";import{createContext as xr,useContext as vr,useMemo as kr}from"react";import{resolveBinding as Ke}from"@kubuild/core";import{isVariableBinding as mn,isActionBinding as Rr}from"@kubuild/schema";import{isSafeActionUrl as yr}from"@kubuild/schema";import{interpolateValue as rn}from"@kubuild/core";import{useState as mr,useEffect as gr}from"react";var br=0,xt=class{toasts=[];listeners=new Set;timers=new Map;showToast(e){let n=typeof e=="string"?{message:e}:e,i=n.id||`toast_${Date.now()}_${++br}`,o=n.type||n.variant||"info",r=n.duration!==void 0?Math.max(0,n.duration):4e3,a=n.position||"top-right",c=n.dismissible!==!1;this.timers.has(i)&&(clearTimeout(this.timers.get(i)),this.timers.delete(i));let d={id:i,type:o,message:n.message,title:n.title,duration:r,position:a,dismissible:c,createdAt:Date.now(),dismiss:()=>this.dismissToast(i)};if(this.toasts=this.toasts.filter(p=>p.id!==i).concat(d),r>0){let p=setTimeout(()=>{this.dismissToast(i)},r);this.timers.set(i,p)}return this.notify(),d}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)}}},ve=new xt;function on(t=ve){let[e,n]=mr(()=>t.getToasts());return gr(()=>(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 hr(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 qe=(t,e)=>{let n=t.payload||{},i=String(n.url||"").trim();if(!i)throw new Error("Navigation URL cannot be empty");if(!yr(i))throw new Error(`Disallowed or unsafe protocol in navigation URL: "${i}"`);let o=n.target||"_self",r=n.replace??!1,a=n.behavior||"smooth",c=n.scroll??!0;if(i.startsWith("#")){if(typeof document<"u"){try{let p=document.querySelector(i)||document.getElementById(i.slice(1));p&&typeof p.scrollIntoView=="function"&&p.scrollIntoView({behavior:c===!1?"auto":a,block:"start"})}catch{}if(typeof window<"u"&&window.location)try{window.location.hash=i}catch{}}return{url:i,target:"_self",replace:r,scroll:c,behavior:a,navigated:!0,isAnchor:!0}}if(o==="_blank")return typeof window<"u"&&typeof window.open=="function"&&window.open(i,"_blank","noopener,noreferrer"),{url:i,target:o,replace:r,scroll:c,behavior:a,navigated:!0,isAnchor:!1};let d=typeof e.onNavigate=="function"&&e.onNavigate||typeof e.navigateFn=="function"&&e.navigateFn;return d?(d(i,{target:o,replace:r,scroll:c,behavior:a}),{url:i,target:o,replace:r,scroll:c,behavior:a,navigated:!0,isAnchor:!1}):(typeof window<"u"&&window.location&&(r?window.location.replace(i):window.location.assign(i)),{url:i,target:o,replace:r,scroll:c,behavior:a,navigated:!0,isAnchor:!1})},an=async(t,e)=>{let n=t.payload||{},i=n.text!==void 0?n.text:n.value!==void 0?n.value:"",o=typeof i=="object"&&i!==null?JSON.stringify(i):String(i??""),r=typeof e.copyFn=="function"?e.copyFn:typeof e.clipboardFn=="function"?e.clipboardFn:void 0;return await hr(o,{copyFn:r}),n.notify!==!1&&(n.notify===!0||n.toastMessage)&&(e.toastManager||ve).showToast({message:n.toastMessage||"Copied to clipboard!",type:"success",duration:3e3}),{text:o,copied:!0}},sn=(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 o of Object.keys(e.form))e.form[o]="";if(typeof document<"u")try{let o=i?document.getElementById(i):document.querySelector("form");o&&typeof o.reset=="function"&&o.reset()}catch{}return{formId:i,reset:!0}},dn=(t,e)=>{let n=t.payload||{},i=String(n.eventName||"").trim(),o=String(rn(i,e)).trim();if(!o)throw new Error("Custom event name cannot be empty");let r=n.detail||{},a={};for(let[d,p]of Object.entries(r))a[d]=rn(p,e);let c=!1;if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let d=new CustomEvent(o,{detail:a,bubbles:n.bubbles!==!1,cancelable:n.cancelable!==!1});window.dispatchEvent(d),c=!0;let p=window;Array.isArray(p.dataLayer)&&p.dataLayer.push({event:o,...a})}return{eventName:o,detail:a,dispatched:c}};import{useState as ln,useEffect as cn,useCallback as vt}from"react";var kt=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 kt;function un(t,e=ae){if(!t)return{isOpen:!1,open:()=>{},close:()=>{},toggle:()=>!1};let[n,i]=ln(()=>e.isModalOpen(t));cn(()=>(i(e.isModalOpen(t)),e.subscribe(c=>{i(!!c[t])})),[t,e]);let o=vt(()=>e.openModal(t),[t,e]),r=vt(()=>e.closeModal(t),[t,e]),a=vt(()=>e.toggleModal(t),[t,e]);return{isOpen:n,open:o,close:r,toggle:a}}function pn(t=ae){let[e,n]=ln(()=>t.getState());return cn(()=>(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 ze=(t,e)=>{let n=t.payload||{},i=String(n.message||"").trim();if(!i)throw new Error("Toast message cannot be empty");let o=n.type||n.variant||"info",r=n.duration!==void 0?n.duration:4e3,a=n.position||"top-right",c=n.title?String(n.title):void 0,p=(e.toastManager||ve).showToast({message:i,type:o,duration:r,position:a,title:c});return{id:p.id,message:p.message,type:p.type,title:p.title,duration:p.duration,position:p.position}},Ie=(t,e)=>{let n=t.payload||{},i=n.modalId||n.modalNodeId||n.targetNodeId||n.nodeId,o=i?String(i).trim():"";if(!o)throw new Error("Modal ID or Modal Node ID is required for open_modal action");let r=e.modalManager||ae,c=!!n.toggle?r.toggleModal(o):(r.openModal(o),!0);if(e.state&&typeof e.state=="object"){let d=e.state.modals||{};e.state.modals={...d,[o]:c},e.state[o]=c}return e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${o}_open`]=c),{modalId:o,open:c}},je=(t,e)=>Ie({...t,payload:{...t.payload||{},toggle:!0}},e),Ue=(t,e)=>{let n=t.payload||{},i=n.modalId||n.modalNodeId||n.targetNodeId||n.nodeId,o=i?String(i).trim():void 0;if((e.modalManager||ae).closeModal(o),o){if(e.state&&typeof e.state=="object"){let a=e.state.modals||{};e.state.modals={...a,[o]:!1},e.state[o]=!1}e.variables&&typeof e.variables=="object"&&(e.variables[`modal_${o}_open`]=!1)}else e.state&&typeof e.state=="object"&&(e.state.modals={});return{modalId:o||"all",open:!1}};var Rt=Object.freeze({navigate:qe,open_modal:Ie,close_modal:Ue,toggle_modal:je,show_toast:ze}),hs=Object.freeze(Object.keys(Rt));function Te(t){return!!(t&&Object.prototype.hasOwnProperty.call(Rt,t))}function We(t,e){return e?!!t?.get(e)||Te(e):!1}async function fn(t,e,n){let i=Te(t)?Rt[t]:void 0;if(!i)throw new Error(`No built-in handler for legacy action type "${t}".`);let o=n.context,r={id:`legacy_${t}_${n.nodeId||"node"}`,type:t,payload:e||{}},a={nodeId:n.nodeId,document:n.document,variables:n.context?.variables?{...n.context.variables}:{},state:{},toastManager:o?.toastManager,modalManager:o?.modalManager};return i(r,a,new AbortController().signal)}import{jsx as wr}from"react/jsx-runtime";var ke=Object.freeze({}),gn=xr(ke);function Cr(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?o=>n.find(r=>r.artboardType==="component"&&r.triggerId===o):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})}:{},...t.onFormSubmit?{onFormSubmit:t.onFormSubmit}:{}})}function Is(t){let e=new Map(Object.entries(t?.assets??{})),n=new Map(Object.entries(t?.actions??{})),i={resolve:r=>e.get(r)||r},o={get:r=>n.get(r),register:(r,a)=>{n.set(r,a)},unregister:r=>{n.delete(r)}};return Cr({variables:t?.variables,assetProvider:i,actionRegistry:o,onDiagnostic:t?.onDiagnostic})}var bn=({value:t,children:e})=>{let n=kr(()=>t||ke,[t]);return wr(gn.Provider,{value:n,children:e})};function yn(){return vr(gn)}function Ct(t,e){if(!(!t||!e))try{let n=t.resolve(e);return typeof n=="string"?n:void 0}catch{return}}function hn(t,e){return e==null?e:mn(e)?Ke(e,t).value:typeof e=="string"&&e.includes("{{")?e.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(n,i)=>{let o=Ke({key:i},t);return o.status==="resolved"?String(o.value):n}):e}function xn(t,e){if(!e||typeof e!="object")return{value:e,invalidPaths:[]};let n=[],i=(r,a)=>{if(r==null)return r;if(mn(r)){let c=Ke(r,t);return c.status==="empty"&&n.push(a),c.value}if(typeof r=="string")return r.includes("{{")?r.replace(/\{\{\s*([\w.-]+)\s*\}\}/g,(c,d)=>{let p=Ke({key:d},t);return p.status!=="resolved"?(n.push(a),c):String(p.value)}):r;if(Array.isArray(r))return r.map((c,d)=>i(c,`${a}[${d}]`));if(typeof r=="object"){let c={};for(let[d,p]of Object.entries(r))c[d]=i(p,a?`${a}.${d}`:d);return c}return r},o={};for(let[r,a]of Object.entries(e))o[r]=i(a,r);return{value:o,invalidPaths:n}}function vn(t,e){return xn(t,e).value}function Ns(t,e){return!t||!e?!1:!!t.get(e)}function kn(t){let{action:e,nodeId:n,document:i,context:o,onDiagnostic:r}=t;if(!Rr(e)){let s={code:"INVALID_ACTION_PAYLOAD",actionType:typeof e?.type=="string"?e.type:"unknown",nodeId:n,message:`Invalid action binding on node ${n||"unknown"}.`};return r?.(s),o?.onDiagnostic?.(s),!1}let a=o?.actionRegistry?.get(e.type),c=!a&&Te(e.type);if(c&&t.allowBuiltinHandlers===!1)return!1;if(!a&&!c){let s={code:"UNKNOWN_ACTION",actionType:e.type,nodeId:n,message:`No action handler registered for action type "${e.type}".`};return r?.(s),o?.onDiagnostic?.(s),!1}let{value:d,invalidPaths:p}=xn(o,e.payload);if(p.length>0){let s={code:"INVALID_ACTION_BINDING",actionType:e.type,nodeId:n,message:`Action "${e.type}" payload has unresolved binding path(s) [${p.join(", ")}] on node ${n||"unknown"}; handler was not invoked.`,invalidPaths:p};return r?.(s),o?.onDiagnostic?.(s),!1}if(!a)return fn(e.type,d,{nodeId:n,document:i,context:o}).catch(s=>{let l={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:n,message:`Built-in "${e.type}" action failed: ${s instanceof Error?s.message:String(s)}`,error:s};r?.(l),o?.onDiagnostic?.(l)}),!0;let f={nodeId:n,document:i,variables:o?.variables};try{let s=a(d,f);return s&&typeof s.catch=="function"&&s.catch(l=>{let u={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};r?.(u),o?.onDiagnostic?.(u)}),!0}catch(s){let l={code:"ACTION_EXECUTION_ERROR",actionType:e.type,nodeId:n,message:`Action "${e.type}" handler threw a synchronous error: ${s instanceof Error?s.message:String(s)}`,error:s};return r?.(l),o?.onDiagnostic?.(l),!1}}import{AlertTriangle as ar}from"lucide-react";import{BREAKPOINT_MEDIA_QUERIES as Sr,BREAKPOINT_ORDER as St}from"@kubuild/schema";function Tt(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(),o=`blur(${typeof e.backdropBlur=="number"||/^\d+$/.test(n)?`${n}px`:n})`;e.backdropFilter=o,e.WebkitBackdropFilter=o,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 Et(t,e="desktop"){if(!t)return{};let n=t.base||{},i=t[e]||{},o={...n,...i};return Tt(o)}function Ne(t){return t?Tt(t.base||{}):{}}function wt(t){return t==null||t===""}function Tr(t){let e=Ne(t),n={};if(!t)return{base:e,overrides:n};for(let i of St){let o=t[i];if(!o||typeof o!="object"||Object.keys(o).length===0)continue;let r=Et(t,i),a={};for(let[c,d]of Object.entries(r))wt(d)||d!==e[c]&&(a[c]=d);for(let[c,d]of Object.entries(e))wt(d)||wt(r[c])&&(a[c]="unset");Object.keys(a).length>0&&(n[i]=a)}return{base:e,overrides:n}}function $t(t,e={}){let n={desktop:[],tablet:[],mobile:[]};if(!t)return n;let i=o=>{if(o.styles){let{overrides:r}=Tr(o.styles);for(let a of St){let c=r[a];if(!c)continue;let d=Cn(c,e);d&&n[a].push({nodeId:o.id,declarations:d})}}o.children?.forEach(i)};return i(t),n}function Rn(t){return`[data-kubuild-node="${$r(t)}"]`}function Ge(t,e={important:!0}){if(!t?.document)return"";let n=$t(t.document,{important:e.important!==!1}),i=[];for(let o of St){let r=n[o];if(r.length===0)continue;let a=r.map(c=>` ${Rn(c.nodeId)} { ${c.declarations} }`).join(`
|
|
2
|
+
`);i.push(`@media ${Sr[o]} {
|
|
3
3
|
${a}
|
|
4
4
|
}`)}return i.join(`
|
|
5
|
-
`)}function
|
|
6
|
-
`)}var
|
|
5
|
+
`)}function Er(t){return String(t).replace(/[{};]+/g,"")}function $r(t){return t.replace(/["\\\]]/g,"\\$&")}var Ir=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 Nr(t,e){return typeof e=="number"&&e!==0&&!t.startsWith("--")&&!Ir.has(t)?`${e}px`:Er(e)}function Ye(t,e){return!t||typeof t!="object"?"":Cn(Tt(t),e)}function Cn(t,e){let n=[],i=e?.important?" !important":"";for(let[o,r]of Object.entries(t)){if(r==null||r==="")continue;let a=o.replace(/[A-Z]/g,c=>`-${c.toLowerCase()}`);a.startsWith("--")||a.startsWith("-webkit-")||a.startsWith("-moz-")||a.startsWith("-")&&(a=a.substring(1)),n.push(`${a}: ${Nr(o,r)}${i};`)}return n.join(" ")}function wn(t,e={important:!0}){if(!t?.document)return"";let n=[],i=o=>{let r=o.styles?.states;if(r&&typeof r=="object")for(let[a,c]of Object.entries(r)){let d=Ye(c,{important:e.important!==!1});if(!d)continue;let p=/^::?[a-zA-Z-]+$/.test(a)?a:null;p&&n.push(`${Rn(o.id)}${p} { ${d} }`)}o.children?.forEach(i)};return i(t.document),n.join(`
|
|
6
|
+
`)}var Sn=`
|
|
7
7
|
*, *::before, *::after {
|
|
8
8
|
box-sizing: border-box;
|
|
9
9
|
}
|
|
@@ -29,7 +29,7 @@ input, button, textarea, select {
|
|
|
29
29
|
p, h1, h2, h3, h4, h5, h6 {
|
|
30
30
|
overflow-wrap: break-word;
|
|
31
31
|
}
|
|
32
|
-
`.trim();var
|
|
32
|
+
`.trim();var Pr=`
|
|
33
33
|
/* Entrance / AOS Keyframes */
|
|
34
34
|
@keyframes kb-anim-fade {
|
|
35
35
|
from { opacity: 0; }
|
|
@@ -105,10 +105,10 @@ p, h1, h2, h3, h4, h5, h6 {
|
|
|
105
105
|
0%, 100% { opacity: 0.75; }
|
|
106
106
|
50% { opacity: 1; }
|
|
107
107
|
}
|
|
108
|
-
`.trim();function
|
|
108
|
+
`.trim();function Xe(t){return t.replace(/["\\\]]/g,"\\$&")}function Ar(t,e){let n=Xe(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 Fr(t,e){let n=Xe(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 Dr(t,e){if(!e.type||e.type==="none")return[];let n=Xe(t),i=typeof e.duration=="number"?e.duration:600,o=typeof e.delay=="number"?e.delay:0,r=e.easing||"ease-out";return[`[data-kubuild-node="${n}"] { animation-name: kb-anim-${e.type} !important; animation-duration: ${i}ms !important; animation-delay: ${o}ms !important; animation-timing-function: ${r} !important; animation-fill-mode: both !important; }`]}function Je(t){if(!t?.document)return"";let e=[],n=!1,i=o=>{let r=o.animation;r&&(r.hoverEffect&&r.hoverEffect!=="none"&&(e.push(...Ar(o.id,r.hoverEffect)),n=!0),r.loopEffect&&r.loopEffect!=="none"&&(e.push(...Fr(o.id,r.loopEffect)),n=!0),r.type&&r.type!=="none"&&(e.push(...Dr(o.id,r)),n=!0)),o.children?.forEach(i)};return i(t.document),n?`${Pr}
|
|
109
109
|
|
|
110
110
|
${e.join(`
|
|
111
|
-
`)}`:""}function ws(t,e){let n=e||(typeof window<"u"?window.document:null);if(!n)return!1;let i=n.querySelector(`[data-kubuild-node="${Je(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 Pr,themeToCssVariables as Sn}from"@kubuild/schema";function Ze(t,e){return Pr(t?.theme,e?.theme)}function et(t){let e={};for(let[n,i]of Sn(t))e[n]=i;return e}function Tn(t){return Sn(t).map(([e,n])=>`${e}: ${n};`).join(" ")}import{Component as Ar}from"react";import{AlertTriangle as Fr}from"lucide-react";import{jsx as It,jsxs as tt}from"react/jsx-runtime";var nt=class extends Ar{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"?tt("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:[tt("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[It(Fr,{size:14,"aria-hidden":"true"}),tt("span",{children:["Component Render Error: <",n,">"]})]}),tt("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",It("code",{children:e})," \u2014 ",r]})]}):It("div",{"data-kubuild-node":e,"data-kubuild-error":n,style:{display:"none"},"aria-hidden":"true"})}return this.props.children}};import{isVariableBinding as Dr,findDeprecatedPropAliases as Or}from"@kubuild/schema";import{primitiveTypeForField as $n}from"@kubuild/components";import{resolveBinding as Mr}from"@kubuild/core";function Vr(t){switch(t){case"string":return"";case"number":return 0;case"boolean":return!1}}function En(t,e,n,i,r){let o=t.props?.[e.name],a=$n(e);if(a===void 0||o===void 0)return o;let d=n.defaultProps?.[e.name]??e.defaultValue??Vr(a);if(Dr(o)){let c=Mr(o,i);return typeof c.value===a?a==="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:a,actualType:typeof c.value,message:`Prop "${e.name}" on node "${t.id}" expected a ${a} but resolved binding "${o.key}" produced a ${typeof c.value}.`}),d)}return a==="string"&&typeof o=="string"&&o.includes("{{")?yn(i,o):o}function In(t,e,n){let i=t.props||{},r=Or(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 a={...i};for(let d of e.propFields){if($n(d)===void 0)continue;a[d.name]=En(t,d,e,n,o);let c=r.find(u=>u.inEffect&&u.canonicalName===d.name);c&&a[d.name]===void 0&&(a[d.name]=En(t,{...d,name:c.propName},e,n,o))}return{props:a,diagnostics:o}}import sa from"react";import{isAssetReference as da,isVariableBinding as q}from"@kubuild/schema";import{icons as Zo,Package as la,Puzzle as ca,AlertTriangle as ua}from"lucide-react";import{resolveBinding as pa,sanitizeUrl as he,sanitizeHtml as fa}from"@kubuild/core";import{createContext as ni,useContext as Ln,useState as Ae,useCallback as G,useRef as Vn,useMemo as Fe,useEffect as _n}from"react";import{applyFieldTransform as Bn,validateFieldValue as oi,validateForm as ri,ActionPipelineExecutor as ii}from"@kubuild/core";import{isSafeActionUrl as Br}from"@kubuild/schema";import{ActionCancellationError as Nt,ActionTimeoutError as Pt}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 Lr(t,e,n){if(!t||typeof t!="string")throw new me("API request URL is required",{url:t});let i=t.trim();if(!Br(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,a=i.startsWith("/")?i:`/${i}`;r=`${o}${a}`}if(e&&typeof e=="object"&&Object.keys(e).length>0){let[o,a]=r.split("?"),d=new URLSearchParams(a||"");for(let[u,f]of Object.entries(e))f!=null&&(Array.isArray(f)?f.forEach(s=>d.append(u,String(s))):d.set(u,String(f)));let c=d.toString();r=c?`${o}?${c}`:o}return r}function _r(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 a=Object.keys(o).find(u=>u.toLowerCase()==="content-type"),d=a?o[a]: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 a&&delete o[a],{body:e,headers:o};if(typeof FormData<"u"&&typeof e=="object"&&e!==null){let u=new FormData;for(let[f,s]of Object.entries(e))s!=null&&(typeof Blob<"u"&&s instanceof Blob?u.append(f,s):Array.isArray(s)?s.forEach(l=>u.append(f,typeof l=="object"?JSON.stringify(l):String(l))):typeof s=="object"?u.append(f,JSON.stringify(s)):u.append(f,String(s)));return a&&delete o[a],{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 a||(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,s]of Object.entries(e))s!=null&&(Array.isArray(s)?s.forEach(l=>u.append(f,String(l))):u.append(f,String(s)));return a||(o["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:u,headers:o}}if(typeof e=="string")return a||(o["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:o}}if(c==="raw"||c==="text")return a||(o["Content-Type"]="text/plain;charset=UTF-8"),{body:typeof e=="string"?e:String(e),headers:o};if(typeof e=="object"&&e!==null)return a||(o["Content-Type"]="application/json"),{body:JSON.stringify(e),headers:o};if(typeof e=="string"){if(!a)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 Hr(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 zr(t,e){if(t.body!==void 0)return t.body;if(e.trigger==="submit"&&e.form&&typeof e.form=="object")return{...e.form}}function At(t){let e=t?.defaultTimeout,n=t?.baseUrl,i=t?.headers;return async function(o,a,d){let c=a.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(),s=u.timeout??e,l=u.baseUrl??n,p=Lr(String(u.url||""),u.queryParams,l),g={...i||{},...u.headers||{}},{body:b,headers:h}=_r(f,zr(u,a),u.bodyFormat||u.bodyType,g),x=new AbortController,v,y=()=>{x.abort(d?.reason)};if(d){if(d.aborted)throw new Nt(d.reason instanceof Error?d.reason.message:"API request cancelled",o.id);d.addEventListener("abort",y,{once:!0})}s!==void 0&&s>0&&(v=setTimeout(()=>{x.abort(new Pt(`API request timed out after ${s}ms`,s,o.id))},s));try{let m=await c(p,{method:f,headers:h,body:b,signal:x.signal}),S={};m.headers&&typeof m.headers.forEach=="function"&&m.headers.forEach((C,w)=>{S[w.toLowerCase()]=C});let k=await Hr(m),R={ok:m.ok,status:m.status,statusText:m.statusText,headers:S,data:k,body:k,url:m.url||p};if(!m.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 ${m.status} ${m.statusText||"Error"}`;throw new me(`API request failed: ${C}`,{status:m.status,statusText:m.statusText,url:p,method:f,data:k,headers:S,response:R,stepId:o.id})}return R}catch(m){if(m instanceof me)throw m;if(x.signal.aborted){let k=x.signal.reason;if(k instanceof Pt||k instanceof Error&&k.name==="ActionTimeoutError"||k instanceof Nt||k instanceof Error&&k.name==="ActionCancellationError")throw k;if(m instanceof Error&&(m.name==="AbortError"||m.name==="TimeoutError"))throw v===void 0&&d?.aborted?new Nt("API request cancelled",o.id):new Pt(`API request timed out after ${s}ms`,s??0,o.id)}let S=m instanceof Error?m.message:String(m);throw new me(`Network error during API request: ${S}`,{url:p,method:f,isNetworkError:!0,stepId:o.id,cause:m})}finally{v!==void 0&&clearTimeout(v),d&&d.removeEventListener("abort",y)}}}var Nn=At();import{TRACKING_RELAY_PROTOCOL_VERSION as jr}from"@kubuild/schema";import{interpolateValue as ot,generateTrackingEventId as Ur}from"@kubuild/core";var Pe="data-kubuild-tracking";function An(t){if(typeof window>"u"||typeof document>"u")return()=>{};if(!t||t.enabled===!1)return Pn(),()=>{};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,a,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(a),u.async=!0,u.id=i,u.setAttribute(Pe,"meta"),u.src=d,f=o.getElementsByTagName(a)[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(Pe,"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(Pe,"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,a){r.TiktokAnalyticsObject=a;var d=r[a]=r[a]||[];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]||[],s=0;s<d.methods.length;s++)d.setAndDefer(f,d.methods[s]);return f},d.load=function(u,f){var s="https://analytics.tiktok.com/i18n/pixel/events.js";d._i=d._i||{},d._i[u]=[],d._i[u]._u=s,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=s+"?sdkid="+u+"&lib="+a,l.id=i,l.setAttribute(Pe,"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()=>{Pn()}}function Pn(){if(typeof document>"u")return;document.querySelectorAll(`script[${Pe}]`).forEach(e=>{e.parentNode?.removeChild(e)})}var qr=new Set(["AddPaymentInfo","AddToCart","AddToWishlist","CompleteRegistration","Contact","CustomizeProduct","Donate","FindLocation","InitiateCheckout","Lead","PageView","Purchase","Schedule","Search","StartTrial","SubmitApplication","Subscribe","ViewContent"]);function Fn(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,a=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),s=i?.providers?.gtm,l=r==="gtm"&&(!s||s.enabled!==!1)||r==="all"&&!!s&&s.enabled!==!1&&!!s.containerId;if(i?.debugMode&&console.log(`[Browser Pixel Track: ${t}]`,{eventId:o,targetProvider:r,eventType:d,params:a}),c&&typeof window.fbq=="function"){let g=d==="custom"||!d&&!qr.has(t)?"trackCustom":"track";o?window.fbq(g,t,a,{eventID:o}):window.fbq(g,t,a)}u&&typeof window.gtag=="function"&&window.gtag("event",t,{...a,...o?{event_id:o}:{}}),f&&window.ttq&&typeof window.ttq.track=="function"&&window.ttq.track(t,a,o?{event_id:o}:void 0),l&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...a,event:t,...o?{event_id:o}:{}}))}var Dn=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(),a=String(ot(o,e)).trim();if(!a)throw new Error("Track event name cannot be empty");let d=n.params||{},c={};for(let[v,y]of Object.entries(d))c[v]=ot(y,e);let u=n.userData||{},f={};for(let[v,y]of Object.entries(u))f[v]=ot(y,e);let s=n.eventId?String(ot(n.eventId,e)):"";s||(s=Ur());let l=n.delivery||r?.defaultDelivery||"both",p=n.provider||"all",g=!1,b=!1,h,x;if((l==="client_only"||l==="both")&&(Fn(a,c,{eventId:s,config:r,provider:p,eventType:n.eventType}),g=!0),l==="server_only"||l==="both"){let v=e.trackingRuntime,y=e.reportDiagnostic,m=(S,k)=>{v?.onLog?.(S,k),r?.debugMode&&console.log(`[KUBUILD Tracking] ${S}`,k??"")};if(p==="gtm")x="GTM is client-side only (dataLayer); no server delivery";else if(!v?.relayUrl)x="Server delivery skipped: no tracking relay configured (RenderContext.tracking.relayUrl)",m(x,{eventName:a,eventId:s}),y?.({code:"TRACKING_RELAY_NOT_CONFIGURED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:a,message:x});else{let S={version:jr,provider:p,...v.documentId?{documentId:v.documentId}:{},event:{eventName:a,eventId:s,...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=v.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(v.relayUrl,{method:"POST",headers:{"Content-Type":"application/json",...v.relayHeaders||{}},credentials:v.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:h=C?.error?.message||`Tracking relay responded with status ${R.status}`}catch(k){h=k instanceof Error?k.message:String(k)}h&&(m(`Tracking relay failed: ${h}`,{eventName:a,eventId:s}),y?.({code:"TRACKING_RELAY_FAILED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:a,message:h}))}}return{eventName:a,eventId:s,delivery:l,provider:p,params:c,userData:f,clientDispatched:g,serverDispatched:b,serverError:h,...x?{serverSkippedReason:x}:{}}};import{useMemo as Wr}from"react";import{CheckCircle2 as Kr,AlertCircle as Gr,AlertTriangle as Yr,Info as Xr,X as Jr}from"lucide-react";import{Fragment as ei,jsx as ce,jsxs as Ft}from"react/jsx-runtime";var Qr={"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"}},On={success:{bg:"#f0fdf4",border:"#bbf7d0",text:"#166534",titleText:"#14532d",iconColor:"#16a34a",Icon:Kr},error:{bg:"#fef2f2",border:"#fecaca",text:"#991b1b",titleText:"#7f1d1d",iconColor:"#dc2626",Icon:Gr},warning:{bg:"#fffbeb",border:"#fde68a",text:"#92400e",titleText:"#78350f",iconColor:"#d97706",Icon:Yr},info:{bg:"#eff6ff",border:"#bfdbfe",text:"#1e40af",titleText:"#1e3a8a",iconColor:"#2563eb",Icon:Xr}},Zr=({toast:t})=>{let e=On[t.type]||On.info,n=e.Icon;return Ft("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:[ce("div",{style:{flexShrink:0,marginTop:"2px",color:e.iconColor},children:ce(n,{size:18,color:e.iconColor})}),Ft("div",{style:{flex:1,minWidth:0},children:[t.title&&ce("div",{style:{fontWeight:600,fontSize:"14px",marginBottom:"2px",color:e.titleText},children:t.title}),ce("div",{style:{color:e.text},children:t.message})]}),t.dismissible&&ce("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:ce(Jr,{size:16})})]})},Mn=({manager:t=xe,position:e,className:n,maxVisible:i=5})=>{let{toasts:r}=nn(t),o=Wr(()=>{if(e)return{[e]:r.filter(d=>(d.position||"top-right")===e)};let a={"top-right":[],"top-left":[],"top-center":[],"bottom-right":[],"bottom-left":[],"bottom-center":[]};return r.forEach(d=>{let c=d.position||"top-right";a[c].push(d)}),a},[r,e]);return r.length===0?null:Ft(ei,{children:[ce("style",{children:`
|
|
111
|
+
`)}`:""}function Bs(t,e){let n=e||(typeof window<"u"?window.document:null);if(!n)return!1;let i=n.querySelector(`[data-kubuild-node="${Xe(t)}"]`);if(!i)return!1;let o=i.style.animation;return i.style.animation="none",i.offsetWidth,i.style.animation=o,i.dispatchEvent(new CustomEvent("kubuild:replay-animation",{bubbles:!0,detail:{nodeId:t}})),!0}import{mergeThemes as Or,themeToCssVariables as Tn}from"@kubuild/schema";function Qe(t,e){return Or(t?.theme,e?.theme)}function Ze(t){let e={};for(let[n,i]of Tn(t))e[n]=i;return e}function En(t){return Tn(t).map(([e,n])=>`${e}: ${n};`).join(" ")}import{Component as Mr}from"react";import{AlertTriangle as Vr}from"lucide-react";import{jsx as It,jsxs as et}from"react/jsx-runtime";var tt=class extends Mr{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,o=this.state.error?.message||"Unknown render error";return i==="editor"?et("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:[et("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[It(Vr,{size:14,"aria-hidden":"true"}),et("span",{children:["Component Render Error: <",n,">"]})]}),et("div",{style:{fontSize:"11px",color:"#7f1d1d",wordBreak:"break-all"},children:["Node ID: ",It("code",{children:e})," \u2014 ",o]})]}):It("div",{"data-kubuild-node":e,"data-kubuild-error":n,style:{display:"none"},"aria-hidden":"true"})}return this.props.children}};import{isVariableBinding as Br,findDeprecatedPropAliases as Lr}from"@kubuild/schema";import{primitiveTypeForField as In}from"@kubuild/components";import{resolveBinding as _r}from"@kubuild/core";function Hr(t){switch(t){case"string":return"";case"number":return 0;case"boolean":return!1}}function $n(t,e,n,i,o){let r=t.props?.[e.name],a=In(e);if(a===void 0||r===void 0)return r;let c=n.defaultProps?.[e.name]??e.defaultValue??Hr(a);if(Br(r)){let d=_r(r,i);return typeof d.value===a?a==="string"&&d.value===""&&typeof r.fallback=="string"&&r.fallback.trim().length>0?r.fallback:d.value:(o.push({code:"INCOMPATIBLE_BINDING_TYPE",nodeId:t.id,propName:e.name,expectedType:a,actualType:typeof d.value,message:`Prop "${e.name}" on node "${t.id}" expected a ${a} but resolved binding "${r.key}" produced a ${typeof d.value}.`}),c)}return a==="string"&&typeof r=="string"&&r.includes("{{")?hn(i,r):r}function Nn(t,e,n){let i=t.props||{},o=Lr(t.type,i),r=o.map(c=>({code:"DEPRECATED_PROP",nodeId:t.id,componentType:t.type,propName:c.propName,canonicalName:c.canonicalName,message:`Prop "${c.propName}" on ${t.type} node "${t.id}" is deprecated; use "${c.canonicalName}" (run migrateDocument to rename it).`}));if(!e||!e.propFields||e.propFields.length===0)return{props:i,diagnostics:r};let a={...i};for(let c of e.propFields){if(In(c)===void 0)continue;a[c.name]=$n(t,c,e,n,r);let d=o.find(p=>p.inEffect&&p.canonicalName===c.name);d&&a[c.name]===void 0&&(a[c.name]=$n(t,{...c,name:d.propName},e,n,r))}return{props:a,diagnostics:r}}import va from"react";import{isAssetReference as ka,isVariableBinding as z}from"@kubuild/schema";import{icons as or,Package as Ra,Puzzle as Ca,AlertTriangle as wa}from"lucide-react";import{resolveBinding as Sa,sanitizeUrl as he,sanitizeHtml as Ta}from"@kubuild/core";import{createContext as gi,useContext as zn,useState as Pe,useCallback as G,useRef as Hn,useMemo as Ae,useEffect as jn}from"react";import{applyFieldTransform as qn,validateFieldValue as bi,validateForm as yi,ActionPipelineExecutor as hi}from"@kubuild/core";import{isSafeActionUrl as qr}from"@kubuild/schema";import{ActionCancellationError as Nt,ActionTimeoutError as Pt}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 zr(t,e,n){if(!t||typeof t!="string")throw new me("API request URL is required",{url:t});let i=t.trim();if(!qr(i))throw new me(`Disallowed or unsafe protocol in API request URL: "${i}"`,{url:i});let o=i;if(n&&!i.startsWith("http://")&&!i.startsWith("https://")&&!i.startsWith("//")){let r=n.endsWith("/")?n.slice(0,-1):n,a=i.startsWith("/")?i:`/${i}`;o=`${r}${a}`}if(e&&typeof e=="object"&&Object.keys(e).length>0){let[r,a]=o.split("?"),c=new URLSearchParams(a||"");for(let[p,f]of Object.entries(e))f!=null&&(Array.isArray(f)?f.forEach(s=>c.append(p,String(s))):c.set(p,String(f)));let d=c.toString();o=d?`${r}?${d}`:r}return o}function jr(t,e,n,i={}){let o=t.toUpperCase(),r={...i};if(o==="GET"||o==="HEAD")return{body:void 0,headers:r};if(e==null)return{body:void 0,headers:r};let a=Object.keys(r).find(p=>p.toLowerCase()==="content-type"),c=a?r[a]:void 0,d=(n||"").toLowerCase();if(d==="form-data"||d==="formdata"||d==="multipart"||c&&c.includes("multipart/form-data")){if(typeof FormData<"u"&&e instanceof FormData)return a&&delete r[a],{body:e,headers:r};if(typeof FormData<"u"&&typeof e=="object"&&e!==null){let p=new FormData;for(let[f,s]of Object.entries(e))s!=null&&(typeof Blob<"u"&&s instanceof Blob?p.append(f,s):Array.isArray(s)?s.forEach(l=>p.append(f,typeof l=="object"?JSON.stringify(l):String(l))):typeof s=="object"?p.append(f,JSON.stringify(s)):p.append(f,String(s)));return a&&delete r[a],{body:p,headers:r}}}if(d==="urlencoded"||d==="url-encoded"||c&&c.includes("application/x-www-form-urlencoded")){if(typeof URLSearchParams<"u"&&e instanceof URLSearchParams)return a||(r["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:r};if(typeof e=="object"&&e!==null){let p=new URLSearchParams;for(let[f,s]of Object.entries(e))s!=null&&(Array.isArray(s)?s.forEach(l=>p.append(f,String(l))):p.append(f,String(s)));return a||(r["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:p,headers:r}}if(typeof e=="string")return a||(r["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8"),{body:e,headers:r}}if(d==="raw"||d==="text")return a||(r["Content-Type"]="text/plain;charset=UTF-8"),{body:typeof e=="string"?e:String(e),headers:r};if(typeof e=="object"&&e!==null)return a||(r["Content-Type"]="application/json"),{body:JSON.stringify(e),headers:r};if(typeof e=="string"){if(!a)try{JSON.parse(e),r["Content-Type"]="application/json"}catch{r["Content-Type"]="text/plain;charset=UTF-8"}return{body:e,headers:r}}return{body:String(e),headers:r}}async function Ur(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 Wr(t,e){if(t.body!==void 0)return t.body;if(e.trigger==="submit"&&e.form&&typeof e.form=="object")return{...e.form}}function At(t){let e=t?.defaultTimeout,n=t?.baseUrl,i=t?.headers;return async function(r,a,c){let d=a.fetchFn||t?.fetchFn||(typeof globalThis<"u"&&typeof globalThis.fetch=="function"?globalThis.fetch:typeof fetch<"u"?fetch:void 0);if(!d)throw new me("No fetch implementation available for API request runner",{stepId:r.id});let p=r.payload||{},f=String(p.method||"GET").toUpperCase(),s=p.timeout??e,l=p.baseUrl??n,u=zr(String(p.url||""),p.queryParams,l),g={...i||{},...p.headers||{}},{body:b,headers:h}=jr(f,Wr(p,a),p.bodyFormat||p.bodyType,g),v=new AbortController,x,y=()=>{v.abort(c?.reason)};if(c){if(c.aborted)throw new Nt(c.reason instanceof Error?c.reason.message:"API request cancelled",r.id);c.addEventListener("abort",y,{once:!0})}s!==void 0&&s>0&&(x=setTimeout(()=>{v.abort(new Pt(`API request timed out after ${s}ms`,s,r.id))},s));try{let m=await d(u,{method:f,headers:h,body:b,signal:v.signal}),S={};m.headers&&typeof m.headers.forEach=="function"&&m.headers.forEach((C,w)=>{S[w.toLowerCase()]=C});let R=await Ur(m),k={ok:m.ok,status:m.status,statusText:m.statusText,headers:S,data:R,body:R,url:m.url||u};if(!m.ok){let C=(typeof R=="object"&&R!==null&&"message"in R?String(R.message):void 0)||(typeof R=="string"&&R.length<200?R:void 0)||`HTTP ${m.status} ${m.statusText||"Error"}`;throw new me(`API request failed: ${C}`,{status:m.status,statusText:m.statusText,url:u,method:f,data:R,headers:S,response:k,stepId:r.id})}return k}catch(m){if(m instanceof me)throw m;if(v.signal.aborted){let R=v.signal.reason;if(R instanceof Pt||R instanceof Error&&R.name==="ActionTimeoutError"||R instanceof Nt||R instanceof Error&&R.name==="ActionCancellationError")throw R;if(m instanceof Error&&(m.name==="AbortError"||m.name==="TimeoutError"))throw x===void 0&&c?.aborted?new Nt("API request cancelled",r.id):new Pt(`API request timed out after ${s}ms`,s??0,r.id)}let S=m instanceof Error?m.message:String(m);throw new me(`Network error during API request: ${S}`,{url:u,method:f,isNetworkError:!0,stepId:r.id,cause:m})}finally{x!==void 0&&clearTimeout(x),c&&c.removeEventListener("abort",y)}}}var Pn=At();import{TRACKING_RELAY_PROTOCOL_VERSION as ni}from"@kubuild/schema";import{interpolateValue as ot,generateTrackingEventId as oi,resolveTrackingConfig as ri}from"@kubuild/core";import{resolveTrackingConfig as Fn,selectTrackingPixels as Kr}from"@kubuild/core";var Dn="data-kubuild-tracking",Ft=new Set;function Gr(t){return`${t.provider}:${t.pixelId}`}function nt(t,e,n){let i=document.createElement("script");i.id=t,i.async=!0,i.setAttribute(Dn,e),i.src=n;let o=document.getElementsByTagName("script")[0];o?.parentNode?o.parentNode.insertBefore(i,o):document.head.appendChild(i)}function Yr(){if(!window.fbq){let t=window.fbq=function(...e){t.callMethod?t.callMethod.apply(t,e):t.queue.push(e)};window._fbq||(window._fbq=t),t.push=t,t.loaded=!0,t.version="2.0",t.queue=[]}document.getElementById("kubuild-tracking-meta")||nt("kubuild-tracking-meta","meta","https://connect.facebook.net/en_US/fbevents.js")}function Xr(t){window.dataLayer=window.dataLayer||[],window.gtag||(window.gtag=function(){window.dataLayer?.push(arguments)},window.gtag("js",new Date)),document.getElementById("kubuild-tracking-ga4")||nt("kubuild-tracking-ga4","google",`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(t)}`)}function Jr(){let t=window;if(t.ttq&&typeof t.ttq.load=="function")return t.ttq;t.TiktokAnalyticsObject="ttq";let e=t.ttq=t.ttq||[];e.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],e.setAndDefer=function(n,i){n[i]=function(){n.push([i].concat(Array.prototype.slice.call(arguments,0)))}};for(let n=0;n<e.methods.length;n++)e.setAndDefer(e,e.methods[n]);return e.instance=function(n){let i=e._i[n]||[];for(let o=0;o<e.methods.length;o++)e.setAndDefer(i,e.methods[o]);return i},e.load=function(n,i){let o="https://analytics.tiktok.com/i18n/pixel/events.js";e._i=e._i||{},e._i[n]=[],e._i[n]._u=o,e._t=e._t||{},e._t[n]=+new Date,e._o=e._o||{},e._o[n]=i||{},nt(`kubuild-tracking-tiktok-${n}`,"tiktok",`${o}?sdkid=${n}&lib=ttq`)},e}function Qr(t){let e=t.pixelId;switch(t.provider){case"meta":Yr(),window.fbq?.("init",e);break;case"google":Xr(e),window.gtag?.("config",e,{send_page_view:!1});break;case"gtm":window.dataLayer=window.dataLayer||[],document.getElementById(`kubuild-tracking-gtm-${e}`)||(window.dataLayer.push({"gtm.start":new Date().getTime(),event:"gtm.js"}),nt(`kubuild-tracking-gtm-${e}`,"gtm",`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(e)}`));break;case"tiktok":Jr().load(e);break;default:break}}function Zr(t){switch(t.provider){case"meta":window.fbq?.("trackSingle",t.pixelId,"PageView");break;case"google":window.gtag?.("event","page_view",{send_to:t.pixelId});break;case"tiktok":(window.ttq?.instance?window.ttq.instance(t.pixelId):window.ttq)?.page();break;default:break}}function On(t,e={}){if(typeof window>"u"||typeof document>"u")return()=>{};let n=t||e.inheritedPixels?.length?Fn(t,e.inheritedPixels):null;if(!n||n.enabled===!1)return An(),()=>{};for(let i of n.pixels){if(!i.pixelId||i.provider==="custom")continue;let o=Gr(i);Ft.has(o)||(Qr(i),Ft.add(o),n.autoPageView!==!1&&!i.disabledEvents.includes("PageView")&&Zr(i))}return()=>{An()}}function An(){if(Ft.clear(),typeof document>"u")return;document.querySelectorAll(`script[${Dn}]`).forEach(e=>{e.parentNode?.removeChild(e)})}var ei=new Set(["AddPaymentInfo","AddToCart","AddToWishlist","CompleteRegistration","Contact","CustomizeProduct","Donate","FindLocation","InitiateCheckout","Lead","PageView","Purchase","Schedule","Search","StartTrial","SubmitApplication","Subscribe","ViewContent"]);function Mn(t,e){return e==="custom"||!e&&!ei.has(t)}function ti(t,e,n){let i=n.provider||"all",o=n.eventId;if((i==="all"||i==="meta")&&typeof window.fbq=="function"){let r=Mn(t,n.eventType)?"trackCustom":"track";o?window.fbq(r,t,e,{eventID:o}):window.fbq(r,t,e)}(i==="all"||i==="google")&&typeof window.gtag=="function"&&window.gtag("event",t,{...e,...o?{event_id:o}:{}}),(i==="all"||i==="tiktok")&&typeof window.ttq?.track=="function"&&window.ttq.track(t,e,o?{event_id:o}:void 0),i==="gtm"&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...e,event:t,...o?{event_id:o}:{}}))}function Vn(t,e,n={}){if(typeof window>"u")return;let i=e||{},o=n.eventId;if(!n.config&&!n.inheritedPixels?.length){ti(t,i,n);return}let r=Fn(n.config,n.inheritedPixels);if(r.enabled===!1)return;let a=Kr(r,{provider:n.provider||"all",pixelIds:n.pixelIds,eventName:t}).filter(d=>d.pixelId&&d.provider!=="custom");r.debugMode&&console.log(`[Browser Pixel Track: ${t}]`,{eventId:o,pixels:a.map(d=>d.id),eventType:n.eventType,params:i});let c=!1;for(let d of a)switch(d.provider){case"meta":if(typeof window.fbq=="function"){let p=Mn(t,n.eventType)?"trackSingleCustom":"trackSingle";window.fbq(p,d.pixelId,t,i,...o?[{eventID:o}]:[])}break;case"google":typeof window.gtag=="function"&&window.gtag("event",t,{...i,send_to:d.pixelId,...o?{event_id:o}:{}});break;case"tiktok":{let p=window.ttq?.instance?window.ttq.instance(d.pixelId):window.ttq;p&&typeof p.track=="function"&&p.track(t,i,o?{event_id:o}:void 0);break}case"gtm":c||(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...i,event:t,...o?{event_id:o}:{}}),c=!0);break;default:break}}var Bn=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,o=e.trackingConfig||i?.tracking||i?.metadata?.tracking,r=e.trackingRuntime?.inheritedPixels,a=o||r?.length?ri(o,r):void 0;if(a&&a.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 c=String(n.eventName||"").trim(),d=String(ot(c,e)).trim();if(!d)throw new Error("Track event name cannot be empty");let p=n.params||{},f={};for(let[m,S]of Object.entries(p))f[m]=ot(S,e);let s=n.userData||{},l={};for(let[m,S]of Object.entries(s))l[m]=ot(S,e);let u=n.eventId?String(ot(n.eventId,e)):"";u||(u=oi());let g=n.delivery||a?.defaultDelivery||"both",b=n.provider||"all",h=!1,v=!1,x,y;if((g==="client_only"||g==="both")&&(Vn(d,f,{eventId:u,config:a,provider:b,pixelIds:n.pixelIds,eventType:n.eventType}),h=!0),g==="server_only"||g==="both"){let m=e.trackingRuntime,S=e.reportDiagnostic,R=(k,C)=>{m?.onLog?.(k,C),a?.debugMode&&console.log(`[KUBUILD Tracking] ${k}`,C??"")};if(b==="gtm")y="GTM is client-side only (dataLayer); no server delivery";else if(!m?.relayUrl)y="Server delivery skipped: no tracking relay configured (RenderContext.tracking.relayUrl)",R(y,{eventName:d,eventId:u}),S?.({code:"TRACKING_RELAY_NOT_CONFIGURED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:d,message:y});else{let k={version:ni,provider:b,...m.documentId?{documentId:m.documentId}:{},...n.pixelIds?.length?{pixelIds:n.pixelIds}:{},event:{eventName:d,eventId:u,...n.eventType?{eventType:n.eventType}:{},eventTime:Math.floor(Date.now()/1e3),...typeof window<"u"&&window.location?.href?{eventSourceUrl:window.location.href}:{},actionSource:"website",params:f,userData:l}};try{let C=m.fetchFn||e.fetch||(typeof fetch=="function"?fetch:void 0);if(!C)throw new Error("fetch is not available in this environment");let w=await C(m.relayUrl,{method:"POST",headers:{"Content-Type":"application/json",...m.relayHeaders||{}},credentials:m.credentials??"same-origin",keepalive:!0,body:JSON.stringify(k)}),T=await(typeof w.json=="function"?w.json().catch(()=>null):null);w.ok&&(T?.success??!0)?v=!0:x=T?.error?.message||`Tracking relay responded with status ${w.status}`}catch(C){x=C instanceof Error?C.message:String(C)}x&&(R(`Tracking relay failed: ${x}`,{eventName:d,eventId:u}),S?.({code:"TRACKING_RELAY_FAILED",nodeId:typeof e.nodeId=="string"?e.nodeId:void 0,eventName:d,message:x}))}}return{eventName:d,eventId:u,delivery:g,provider:b,params:f,userData:l,clientDispatched:h,serverDispatched:v,serverError:x,...y?{serverSkippedReason:y}:{}}};import{useMemo as ii}from"react";import{CheckCircle2 as ai,AlertCircle as si,AlertTriangle as di,Info as li,X as ci}from"lucide-react";import{Fragment as fi,jsx as ce,jsxs as Dt}from"react/jsx-runtime";var ui={"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"}},Ln={success:{bg:"#f0fdf4",border:"#bbf7d0",text:"#166534",titleText:"#14532d",iconColor:"#16a34a",Icon:ai},error:{bg:"#fef2f2",border:"#fecaca",text:"#991b1b",titleText:"#7f1d1d",iconColor:"#dc2626",Icon:si},warning:{bg:"#fffbeb",border:"#fde68a",text:"#92400e",titleText:"#78350f",iconColor:"#d97706",Icon:di},info:{bg:"#eff6ff",border:"#bfdbfe",text:"#1e40af",titleText:"#1e3a8a",iconColor:"#2563eb",Icon:li}},pi=({toast:t})=>{let e=Ln[t.type]||Ln.info,n=e.Icon;return Dt("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:[ce("div",{style:{flexShrink:0,marginTop:"2px",color:e.iconColor},children:ce(n,{size:18,color:e.iconColor})}),Dt("div",{style:{flex:1,minWidth:0},children:[t.title&&ce("div",{style:{fontWeight:600,fontSize:"14px",marginBottom:"2px",color:e.titleText},children:t.title}),ce("div",{style:{color:e.text},children:t.message})]}),t.dismissible&&ce("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:ce(ci,{size:16})})]})},_n=({manager:t=ve,position:e,className:n,maxVisible:i=5})=>{let{toasts:o}=on(t),r=ii(()=>{if(e)return{[e]:o.filter(c=>(c.position||"top-right")===e)};let a={"top-right":[],"top-left":[],"top-center":[],"bottom-right":[],"bottom-left":[],"bottom-center":[]};return o.forEach(c=>{let d=c.position||"top-right";a[d].push(c)}),a},[o,e]);return o.length===0?null:Dt(fi,{children:[ce("style",{children:`
|
|
112
112
|
@keyframes kubuildToastIn {
|
|
113
113
|
from {
|
|
114
114
|
opacity: 0;
|
|
@@ -119,9 +119,9 @@ ${e.join(`
|
|
|
119
119
|
transform: translateY(0) scale(1);
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
`}),Object.entries(
|
|
122
|
+
`}),Object.entries(r).map(([a,c])=>{if(!c||c.length===0)return null;let d=c.slice(-i);return ce("div",{"data-testid":`toast-container-${a}`,className:n,style:{position:"fixed",zIndex:99999,display:"flex",flexDirection:"column",gap:"8px",maxWidth:"calc(100vw - 32px)",pointerEvents:"none",...ui[a]},children:d.map(p=>ce(pi,{toast:p},p.id))},a)})]})};function mi(t){return{api_request:t?.apiRequest?At(t.apiRequest):Pn,show_toast:ze,open_modal:Ie,close_modal:Ue,toggle_modal:je,navigate:qe,copy_clipboard:an,reset_form:sn,custom_event:dn,track_event:Bn,...t?.handlers||{}}}function rt(t,e){let n=mi(e);for(let[i,o]of Object.entries(n))(!t.hasHandler(i)||e?.handlers?.[i]||e?.apiRequest)&&t.registerHandler(i,o);return t}import{jsx as vi}from"react/jsx-runtime";var Ot=gi(null);function xi(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 Un=({formId:t,formConfig:e,initialValues:n,onSubmit:i,onSuccess:o,onError:r,actions:a,nodeId:c,document:d,onDiagnostic:p,children:f})=>{let s=yn(),l=Ae(()=>t||e?.formId||c||"kubuild-form",[t,e?.formId,c]),u=Ae(()=>({...e?.initialValues||{},...n||{}}),[e?.initialValues,n]),[g,b]=Pe(u),[h,v]=Pe(u),[x,y]=Pe({}),[m,S]=Pe({}),[R,k]=Pe(!1),C=Hn(new Map),w=Hn({values:h,errors:x,touched:m,initialValues:g,isSubmitting:R,formConfig:e});jn(()=>{w.current={values:h,errors:x,touched:m,initialValues:g,isSubmitting:R,formConfig:e}});let T=G($=>{if(!$||!$.name)return()=>{};let B={name:$.name,rules:$.rules||[],validateOn:$.validateOn||"blur",label:$.label,defaultValue:$.defaultValue,transform:$.transform,disabled:$.disabled,required:$.required};return C.current.set($.name,B),$.defaultValue!==void 0&&(w.current.values[$.name]===void 0&&(w.current.values[$.name]=$.defaultValue),v(V=>V[$.name]===void 0?{...V,[$.name]:$.defaultValue}:V)),()=>{C.current.delete($.name)}},[]),P=G($=>C.current.get($),[]),I=G(($,B)=>{let V=C.current.get($),X=w.current.values,de=B!==void 0?B:X[$];V?.transform&&(de=qn(de,V.transform));let K=[...V?.rules||[]];return V?.required&&!K.some(j=>j.type==="required")&&K.unshift({type:"required",message:`${V.label||$} is required`}),bi(de,K,X)},[]),N=G($=>{let B=$||w.current.values,V=Array.from(C.current.values());return yi(B,V)},[]),O=G(($,B)=>{y(V=>{if(B)return{...V,[$]:B};if(V[$]===void 0)return V;let X={...V};return delete X[$],X})},[]),A=G($=>{y({...$})},[]),D=G(($,B,V)=>{let X=C.current.get($),de=B;X?.transform&&(de=qn(B,X.transform)),v(ee=>({...ee,[$]:de}));let K=X?.validateOn||e?.validateOn||"blur";if(V!==void 0?V:K==="change"){let ee=I($,de);O($,ee)}},[e?.validateOn,I,O]),M=G(($,B=!0,V)=>{S(j=>({...j,[$]:B}));let de=C.current.get($)?.validateOn||e?.validateOn||"blur";if(V!==void 0?V:de==="blur"&&B){let j=I($);O($,j)}},[e?.validateOn,I,O]),ne=G(($,B=!1)=>{v(V=>B?{...$}:{...V,...$})},[]),ie=G($=>{k($)},[]),le=G($=>{let B=$||g;$&&b($),v({...B}),y({}),S({}),k(!1)},[g]),He=G(async $=>{if($&&typeof $.preventDefault=="function"&&$.preventDefault(),w.current.isSubmitting)return!1;let B=w.current.values,V={};for(let K of C.current.keys())V[K]=!0;S(V);let X=N(B);if(y(X),!(Object.keys(X).length===0)){if(r?.(X),e?.scrollToFirstError!==!1&&typeof window<"u"&&typeof d<"u"){let j=Object.keys(X)[0];if(j)try{let ee=window.document.querySelector(`[name="${j}"], [data-field="${j}"]`);ee&&(ee.scrollIntoView({behavior:"smooth",block:"center"}),ee.focus?.())}catch{}}return!1}k(!0);try{if(a&&a.length>0){let K=a.filter(j=>j.trigger==="submit"&&j.enabled!==!1);if(K.length>0){let j=new hi;rt(j);for(let ee of K){let $e=await j.execute(ee,{context:{trigger:"submit",form:B,variables:s?.variables?{...s.variables}:{},nodeId:c,document:d}});if(!$e.success){let tn=$e.error instanceof Error?$e.error.message:String($e.error||"Submit pipeline failed"),nn={code:"ACTION_EXECUTION_ERROR",actionType:ee.steps[0]?.type||"submit",nodeId:c,message:`Form submit pipeline failed: ${tn}`,error:$e.error};return p?.(nn),s?.onDiagnostic?.(nn),r?.({_form:tn}),k(!1),!1}}}}return i&&await i(B,{formId:l,setSubmitting:ie,resetForm:le,setErrors:y}),s?.onFormSubmit&&await s.onFormSubmit({formId:l,nodeId:c,values:B},{setErrors:y,resetForm:le}),o?.(B),e?.resetOnSubmit&&le(),!0}catch(K){let j=K instanceof Error?K.message:String(K),ee={code:"ACTION_EXECUTION_ERROR",actionType:"submit",nodeId:c,message:`Form submit execution error: ${j}`,error:K};return p?.(ee),s?.onDiagnostic?.(ee),r?.({_form:j}),!1}finally{k(!1)}},[e,a,c,d,p,s,i,o,r,l,ie,le,N]),Zt=Ae(()=>Object.keys(x).length===0,[x]),en=Ae(()=>xi(h,g),[h,g]),fr=Ae(()=>({formId:l,formConfig:e,initialValues:g,values:h,errors:x,touched:m,isSubmitting:R,isValid:Zt,dirty:en,setFieldValue:D,setFieldTouched:M,setFieldError:O,setErrors:A,setValues:ne,setSubmitting:ie,resetForm:le,validateField:I,validateForm:N,handleFormSubmit:He,registerField:T,getFieldBinding:P}),[l,e,g,h,x,m,R,Zt,en,D,M,O,A,ne,ie,le,I,N,He,T,P]);return vi(Ot.Provider,{value:fr,children:f})};function te(){return zn(Ot)}function Vd(){return zn(Ot)}function Bd(){let t=te();return{isSubmitting:t?.isSubmitting??!1,isValid:t?.isValid??!0,dirty:t?.dirty??!1,errors:t?.errors??{}}}function Ld(t,e){let n=te();n&&t&&n.registerField(e||{name:t}),jn(()=>{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,o=n?.errors[t],r=!!n?.touched[t],a=!!(o&&r),c=G((l,u)=>{n?.setFieldValue(t,l,u)},[n,t]),d=G((l=!0,u)=>{n?.setFieldTouched(t,l,u)},[n,t]),p=G(l=>{n?.setFieldError(t,l)},[n,t]),f=G(l=>{if(l&&typeof l=="object"&&"target"in l&&l.target){let u=l.target;if(u.type==="checkbox")c(u.checked);else if(u.type==="number"){let g=u.value===""?"":Number(u.value);c(g)}else c(u.value)}else c(l)},[c]),s=G(()=>{d(!0)},[d]);return{value:i,error:o,touched:r,isInvalid:a,setValue:c,setTouched:d,setError:p,onChange:f,onBlur:s}}import{useRef as Fe,useLayoutEffect as ki,useEffect as Ri,useMemo as Ci}from"react";import{jsx as Gn}from"react/jsx-runtime";var wi=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u"?ki:Ri;function De(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Wn(t){let e=typeof window<"u"?window.getSelection():null;if(!e||e.rangeCount===0)return null;let n=e.getRangeAt(0);if(!t.contains(n.endContainer))return null;try{let i=n.cloneRange();return i.selectNodeContents(t),i.setEnd(n.endContainer,n.endOffset),i.toString().length}catch{return null}}function Kn(t,e){let n=typeof window<"u"?window.getSelection():null;if(!n)return;let i=0,o=!1,r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),a=r.nextNode();for(;a;){let c=a.textContent?.length??0;if(i+c>=e){let d=Math.min(Math.max(e-i,0),c),p=document.createRange();p.setStart(a,d),p.collapse(!0),n.removeAllRanges(),n.addRange(p),o=!0;break}i+=c,a=r.nextNode()}if(!o){let c=document.createRange();c.selectNodeContents(t),c.collapse(!1),n.removeAllRanges(),n.addRange(c)}}var Y=({as:t="p",id:e,className:n,style:i,value:o,isEditable:r,nodeId:a,onClick:c,onChange:d,...p})=>{let f=Fe(null),s=Fe(!1),l=Fe(null),u=Fe(De(o??"")),g=Fe(o);s.current||(u.current=De(o??""));let b=u.current,h=Ci(()=>({__html:b}),[b]);wi(()=>{let y=g.current!==o;if(g.current=o,!r||!f.current)return;let m=document.activeElement===f.current||f.current.contains(document.activeElement);if(s.current&&m){y&&f.current.textContent!==o?(f.current.textContent=o??"",u.current=De(o??""),Kn(f.current,(o??"").length)):l.current!==null&&Wn(f.current)===0&&l.current>0&&Kn(f.current,l.current),l.current=null;return}f.current.textContent!==o&&(f.current.textContent=o??"",u.current=De(o??""))},[o,r]);let v=t;if(!r)return Gn(v,{id:e,className:n,style:i,onClick:c,"data-kubuild-node":a,...p,children:o});let x=typeof t=="string"&&(t.startsWith("h")||t==="button"||t==="span"||t==="a");return Gn(v,{ref:f,id:e,className:n,style:{...i,outline:"none",cursor:"text",userSelect:"text",WebkitUserSelect:"text"},contentEditable:!0,suppressContentEditableWarning:!0,draggable:!1,"data-kubuild-node":a,dangerouslySetInnerHTML:h,onPointerDown:y=>{y.stopPropagation()},onMouseDown:y=>{y.stopPropagation()},onClick:y=>{y.stopPropagation(),c?.(y)},onDoubleClick:y=>{y.stopPropagation()},onDragStart:y=>{y.preventDefault(),y.stopPropagation()},onFocus:()=>{s.current=!0},onInput:y=>{let m=y.currentTarget,S=m.textContent??"";l.current=Wn(m),d?.(S,!1)},onBlur:y=>{s.current=!1,l.current=null;let m=y.currentTarget.textContent??"";u.current=De(m),d?.(m,!0)},onKeyDown:y=>{y.key==="Escape"?y.currentTarget.blur():y.key==="Enter"&&x&&!y.shiftKey&&(y.preventDefault(),y.currentTarget.blur())},...p},a)};import{useRef as Yn,useLayoutEffect as Si,useEffect as Ti,useMemo as Ei}from"react";import{jsx as Xn}from"react/jsx-runtime";var $i=typeof window<"u"?Si:Ti;function Ii(t){return t?t.replace(/<style\b([^>]*)>([\s\S]*?)<\/style>/gi,(e,n,i)=>{let o=i;return o=o.replace(/(^|[\s,{}])body(?=[\s,{])/g,"$1:host, body"),o=o.replace(/(^|[\s,{}])html(?=[\s,{])/g,"$1:host, html"),`<style${n}>
|
|
123
123
|
:host { display: block; }
|
|
124
|
-
${r}</style>`}):""}var Kn=({id:t,style:e,onClick:n,dataKubuildNode:i,html:r,role:o})=>{let a=Un(null),d=Un(null),c=mi(()=>bi(r),[r]);return gi(()=>{let u=a.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]),Wn("div",{ref:a,id:t,style:e,onClick:n,"data-kubuild-node":i,role:o,children:Wn("template",{shadowrootmode:"open",dangerouslySetInnerHTML:{__html:c}})})};import{useContext as xi,useEffect as Me}from"react";import{createContext as yi}from"react";var it=yi(null);import Gn,{useEffect as hi}from"react";import{ActionPipelineExecutor as vi}from"@kubuild/core";async function _(t){let{node:e,trigger:n,document:i,context:r,formContext:o,extraContext:a,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 s=u||new vi;rt(s);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)},...a||{}};for(let p of f){let g=await s.execute(p,{context:l});if(c&&p.steps.length>0&&c(p.steps[0].type,p.steps[0].payload,e.id),!g.success){let b=g.error instanceof Error?g.error.message:String(g.error||`Action pipeline "${p.id}" failed`),h={code:"ACTION_EXECUTION_ERROR",actionType:p.steps[0]?.type||n,nodeId:e.id,message:b,error:g.error};return d?.(h),r?.onDiagnostic?.(h),{executed:!0,success:!1,error:g.error}}}return{executed:!0,success:!0}}function Yn(t,e){if(!t.actions?.some(o=>o.trigger==="load"&&o.enabled!==!1))return;let i=Gn?.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||Gn?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(i?.H||i?.ReactCurrentDispatcher?.current)try{hi(()=>{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{Fragment as Vt,jsx as z,jsxs as Re}from"react/jsx-runtime";var ki={fontSize:"12px",color:"#dc2626"};function Ot({id:t,message:e}){return z("span",{id:t?`${t}-error`:void 0,role:"alert",style:ki,"data-kubuild-field-error":!0,children:e})}var Xn=({id:t,name:e,action:n,method:i="POST",target:r,autoComplete:o,style:a,onClick:d,mode:c,dataKubuildNode:u,children:f})=>{let s=te();return z("form",{id:t,name:e,action:n,method:i,target:r,autoComplete:o,style:a,onClick:d,onSubmit:g=>{if(c==="editor"){g.preventDefault();return}s&&s.handleFormSubmit(g)},onReset:()=>{s&&s.resetForm()},"data-kubuild-node":u,role:"form","aria-label":e,children:f})},Jn=({id:t,name:e,type:n="text",placeholder:i,defaultValue:r,required:o,disabled:a,readOnly:d,rules:c,validateOn:u,transform:f,style:s,onClick:l,actions:p,nodeId:g,document:b,renderContext:h,onDiagnostic:x,onActionDispatch:v,dataKubuildNode:y})=>{let m=te();if(m&&e&&m.registerField({name:e,defaultValue:r,required:o,disabled:a,rules:c||[],validateOn:u,transform:f}),Me(()=>{if(!m||!e)return;let N=m.registerField({name:e,defaultValue:r,required:o,disabled:a,rules:c||[],validateOn:u,transform:f});return()=>{N()}},[m,e,r,o,a,c,u,f]),!m||!e)return z("input",{id:t,type:n,name:e,placeholder:i,defaultValue:r!==void 0?String(r):void 0,required:o,disabled:a,readOnly:d,style:s,onClick:l,"data-kubuild-node":y});let S=m.values[e],k=S!=null?String(S):r!=null?String(r):"",R=m.errors[e],C=!!m.touched[e],w=!!(R&&C);return Re(Vt,{children:[z("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)),m.setFieldValue(e,O),p&&p.length>0&&_({node:{id:g||t||e,type:"input",actions:p},trigger:"change",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:O},onDiagnostic:x,onActionDispatch:v})},onBlur:()=>{m.setFieldTouched(e,!0),p&&p.length>0&&_({node:{id:g||t||e,type:"input",actions:p},trigger:"blur",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:v})},onFocus:()=>{p&&p.length>0&&_({node:{id:g||t||e,type:"input",actions:p},trigger:"focus",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:v})},required:o,disabled:a,readOnly:d,style:s,onClick:l,"data-kubuild-node":y,"data-field":e,"data-invalid":w?"true":void 0,"aria-invalid":w?!0:void 0,"aria-errormessage":w&&t?`${t}-error`:void 0}),w&&z(Ot,{id:t,message:R})]})},Qn=({id:t,name:e,placeholder:n,defaultValue:i,rows:r=4,required:o,disabled:a,readOnly:d,rules:c,validateOn:u,transform:f,style:s,onClick:l,actions:p,nodeId:g,document:b,renderContext:h,onDiagnostic:x,onActionDispatch:v,dataKubuildNode:y})=>{let m=te();if(m&&e&&m.registerField({name:e,defaultValue:i,required:o,disabled:a,rules:c||[],validateOn:u,transform:f}),Me(()=>{if(!m||!e)return;let N=m.registerField({name:e,defaultValue:i,required:o,disabled:a,rules:c||[],validateOn:u,transform:f});return()=>{N()}},[m,e,i,o,a,c,u,f]),!m||!e)return z("textarea",{id:t,name:e,placeholder:n,defaultValue:i!==void 0?String(i):void 0,rows:r,required:o,disabled:a,readOnly:d,style:s,onClick:l,"data-kubuild-node":y});let S=m.values[e],k=S!=null?String(S):i!=null?String(i):"",R=m.errors[e],C=!!m.touched[e],w=!!(R&&C);return Re(Vt,{children:[z("textarea",{id:t,name:e,placeholder:n,rows:r,value:k,onChange:N=>{m.setFieldValue(e,N.target.value),p&&p.length>0&&_({node:{id:g||t||e,type:"textarea",actions:p},trigger:"change",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:N.target.value},onDiagnostic:x,onActionDispatch:v})},onBlur:()=>{m.setFieldTouched(e,!0),p&&p.length>0&&_({node:{id:g||t||e,type:"textarea",actions:p},trigger:"blur",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:v})},onFocus:()=>{p&&p.length>0&&_({node:{id:g||t||e,type:"textarea",actions:p},trigger:"focus",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:x,onActionDispatch:v})},required:o,disabled:a,readOnly:d,style:s,onClick:l,"data-kubuild-node":y,"data-field":e,"data-invalid":w?"true":void 0,"aria-invalid":w?!0:void 0,"aria-errormessage":w&&t?`${t}-error`:void 0}),w&&z(Ot,{id:t,message:R})]})},Zn=({id:t,name:e,placeholder:n,defaultValue:i,required:r,disabled:o,rules:a,validateOn:d,optionsList:c,style:u,onClick:f,actions:s,nodeId:l,document:p,renderContext:g,onDiagnostic:b,onActionDispatch:h,dataKubuildNode:x})=>{let v=te();if(v&&e&&v.registerField({name:e,defaultValue:i,required:r,disabled:o,rules:a||[],validateOn:d}),Me(()=>{if(!v||!e)return;let P=v.registerField({name:e,defaultValue:i,required:r,disabled:o,rules:a||[],validateOn:d});return()=>{P()}},[v,e,i,r,o,a,d]),!v||!e)return Re("select",{id:t,name:e,defaultValue:i!==void 0?String(i):"",required:r,disabled:o,style:u,onClick:f,"data-kubuild-node":x,children:[n&&z("option",{value:"",disabled:!0,children:n}),c.map((P,I)=>z("option",{value:P.value,children:P.label},I))]});let y=v.values[e],m=y!=null?String(y):i!=null?String(i):"",S=v.errors[e],k=!!v.touched[e],R=!!(S&&k);return Re(Vt,{children:[Re("select",{id:t,name:e,value:m,onChange:P=>{v.setFieldValue(e,P.target.value),s&&s.length>0&&_({node:{id:l||t||e,type:"select",actions:s},trigger:"change",document:p,context:g,formContext:v,extraContext:{fieldName:e,fieldValue:P.target.value},onDiagnostic:b,onActionDispatch:h})},onBlur:()=>{v.setFieldTouched(e,!0),s&&s.length>0&&_({node:{id:l||t||e,type:"select",actions:s},trigger:"blur",document:p,context:g,formContext:v,extraContext:{fieldName:e,fieldValue:v.values[e]},onDiagnostic:b,onActionDispatch:h})},onFocus:()=>{s&&s.length>0&&_({node:{id:l||t||e,type:"select",actions:s},trigger:"focus",document:p,context:g,formContext:v,extraContext:{fieldName:e,fieldValue:v.values[e]},onDiagnostic:b,onActionDispatch:h})},required:r,disabled:o,style:u,onClick:f,"data-kubuild-node":x,"data-field":e,"data-invalid":R?"true":void 0,"aria-invalid":R?!0:void 0,"aria-errormessage":R&&t?`${t}-error`:void 0,children:[n&&z("option",{value:"",disabled:!0,children:n}),c.map((P,I)=>z("option",{value:P.value,children:P.label},I))]}),R&&z(Ot,{id:t,message:S})]})},eo=({id:t,name:e,label:n="",defaultChecked:i=!1,required:r,disabled:o,rules:a,validateOn:d,style:c,onClick:u,actions:f,nodeId:s,document:l,renderContext:p,onDiagnostic:g,onActionDispatch:b,dataKubuildNode:h,isEditable:x,onNodePropChange:v})=>{let y=te();y&&e&&y.registerField({name:e,defaultValue:i,required:r,disabled:o,rules:a||[],validateOn:d}),Me(()=>{if(!y||!e)return;let R=y.registerField({name:e,defaultValue:i,required:r,disabled:o,rules:a||[],validateOn:d});return()=>{R()}},[y,e,i,r,o,a,d]);let m=y&&e&&y.values[e]!==void 0?!!y.values[e]:i;return Re("label",{id:t,style:c,onClick:u,"data-kubuild-node":h,children:[z("input",{type:"checkbox",name:e,checked:m,onChange:R=>{y&&e&&(y.setFieldValue(e,R.target.checked),f&&f.length>0&&_({node:{id:s||t||e,type:"checkbox",actions:f},trigger:"change",document:l,context:p,formContext:y,extraContext:{fieldName:e,fieldValue:R.target.checked},onDiagnostic:g,onActionDispatch:b}))},onBlur:()=>{y&&e&&(y.setFieldTouched(e,!0),f&&f.length>0&&_({node:{id:s||t||e,type:"checkbox",actions:f},trigger:"blur",document:l,context:p,formContext:y,extraContext:{fieldName:e,fieldValue:m},onDiagnostic:g,onActionDispatch:b}))},required:r,disabled:o,style:{cursor:o?"not-allowed":"pointer"},"data-field":e}),x?z(Y,{as:"span",value:n,isEditable:x,nodeId:h||"",onChange:(R,C)=>v?.(h||"","label",R,C)}):z("span",{children:n})]})},at=({id:t,name:e,label:n="",value:i="",defaultChecked:r=!1,required:o,disabled:a,rules:d,validateOn:c,style:u,onClick:f,actions:s,nodeId:l,document:p,renderContext:g,onDiagnostic:b,onActionDispatch:h,dataKubuildNode:x,isEditable:v,onNodePropChange:y})=>{let m=te(),S=xi(it),k=!!S?.name,R=k?S.name:e,C=k?S.required:o,w=!!(a||S?.disabled);m&&R&&!k&&m.registerField({name:R,defaultValue:r?i:void 0,required:C,disabled:w,rules:d||[],validateOn:c}),Me(()=>{if(!m||!R||k)return;let N=m.registerField({name:R,defaultValue:r?i:void 0,required:C,disabled:w,rules:d||[],validateOn:c});return()=>{N()}},[m,R,k,r,i,C,w,d,c]);let T=m&&R&&m.values[R]!==void 0?m.values[R]===i:r;return Re("label",{id:t,style:u,onClick:f,"data-kubuild-node":x,children:[z("input",{type:"radio",name:R,value:i,checked:T,onChange:()=>{m&&R&&(m.setFieldValue(R,i),s&&s.length>0&&_({node:{id:l||t||R,type:"radio",actions:s},trigger:"change",document:p,context:g,formContext:m,extraContext:{fieldName:R,fieldValue:i},onDiagnostic:b,onActionDispatch:h}))},onBlur:()=>{m&&R&&(m.setFieldTouched(R,!0),s&&s.length>0&&_({node:{id:l||t||R,type:"radio",actions:s},trigger:"blur",document:p,context:g,formContext:m,extraContext:{fieldName:R,fieldValue:i},onDiagnostic:b,onActionDispatch:h}))},required:C,disabled:w,style:{cursor:w?"not-allowed":"pointer"},"data-field":R}),v?z(Y,{as:"span",value:n,isEditable:v,nodeId:x||"",onChange:(N,O)=>y?.(x||"","label",N,O)}):z("span",{children:n})]})};async function Mt(t){let{event:e,buttonType:n,disabled:i,formRuntime:r,onClick:o,node:a,actions:d,document:c,renderContext:u,onDiagnostic:f,onActionDispatch:s,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=a||(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:s})}var to=({id:t,buttonType:e,disabled:n,ariaLabel:i,style:r,onClick:o,actions:a,node:d,document:c,renderContext:u,onDiagnostic:f,onActionDispatch:s,dataKubuildNode:l,actionAttrs:p,children:g})=>{let b=te(),h=b?.isSubmitting===!0,x=n||e==="submit"&&h;return z("button",{id:t,type:e,disabled:x,"aria-disabled":x?!0:void 0,"aria-label":i,"aria-busy":e==="submit"&&h?!0:void 0,tabIndex:x?-1:0,style:r,onClick:x?void 0:async y=>{await Mt({event:y,buttonType:e,disabled:x,formRuntime:b,onClick:o,node:d||(a?{id:l||t||"button",type:"button",actions:a}:void 0),document:c,renderContext:u,onDiagnostic:f,onActionDispatch:s})},"data-kubuild-node":l,...p,children:g})};import{useEffect as so,useMemo as Ri,useState as dt}from"react";import{icons as Ci,Loader2 as wi}from"lucide-react";function st(t){return t?t.replace(/[-_](\w)/g,(e,n)=>n.toUpperCase()).replace(/^\w/,e=>e.toUpperCase()):""}function no(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 oo(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 ro(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 fo,jsx as H,jsxs as ge}from"react/jsx-runtime";var Si={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},Ti={fontSize:"12px",color:"#64748b"},Ei={fontSize:"12px",color:"#dc2626"},$i=[];function Lt(t){let e=te();e&&t?.name&&e.registerField(t);let n=t?.name,{defaultValue:i,required:r,disabled:o,rules:a,validateOn:d}=t||{};return so(()=>{if(!(!e||!n))return e.registerField({name:n,defaultValue:i,required:r,disabled:o,rules:a||[],validateOn:d})},[e,n,i,r,o,a,d]),e}function Bt(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 _t({id:t,helperText:e,error:n}){return!e&&!n?null:ge(fo,{children:[e?H("span",{style:Ti,"data-kubuild-helper-text":!0,children:e}):null,n?H("span",{id:t?`${t}-error`:void 0,role:"alert",style:Ei,"data-kubuild-field-error":!0,children:n}):null]})}var lo=({id:t,name:e,defaultSelected:n,required:i,disabled:r,orientation:o="vertical",helperText:a,ariaLabel:d,style:c,onClick:u,dataKubuildNode:f,children:s})=>{let l=Lt(e?{name:e,defaultValue:n||void 0,required:i,disabled:r,rules:$i}:null),p=Ri(()=>e?{name:e,required:i,disabled:r}:null,[e,i,r]),g=l&&e&&l.touched[e]?l.errors[e]:void 0,b={...c,...o==="horizontal"?{flexDirection:"row",flexWrap:"wrap"}:{}};return H(it.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":g?!0:void 0,"aria-orientation":o,style:b,onClick:u,"data-kubuild-node":f,"data-field":e,children:[s,H(_t,{id:t,helperText:a,error:g})]})})},io={sm:{width:28,height:16},md:{width:36,height:20},lg:{width:44,height:24}},co=t=>{let{id:e,name:n,label:i="",value:r,defaultChecked:o=!1,switchSize:a="md",required:d,disabled:c,helperText:u,ariaLabel:f,rules:s,validateOn:l,style:p,onClick:g,dataKubuildNode:b,isEditable:h,onNodePropChange:x}=t,v=r!==void 0&&r!==""?r:!0,y=Lt(n?{name:n,defaultValue:o?v:!1,required:d,disabled:c,rules:s||[],validateOn:l}:null),[m,S]=dt(o),k=!!(y&&n),R=k?y.values[n]:void 0,C=k?R!==void 0?R===v||R===!0:o:m,w=k&&y.touched[n]?y.errors[n]:void 0,T=D=>{let M=D.target.checked?v:!1;k?y.setFieldValue(n,M):S(D.target.checked),Bt(t,"switch","change",y,n||e||"switch",M)},P=()=>{k&&y.setFieldTouched(n,!0),Bt(t,"switch","blur",y,n||e||"switch",C?v:!1)},I=io[a]||io.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:g,"data-kubuild-node":b,children:[H("input",{type:"checkbox",role:"switch",name:n,value:typeof v=="string"?v: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:Si,"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})}),h?H(Y,{as:"span",value:i,isEditable:h,nodeId:b||"",onChange:(D,M)=>x?.(b||"","label",D,M)}):H("span",{children:i})]}),H(_t,{id:e,helperText:u,error:w})]})};function Ii(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Ni(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 uo=t=>{let{id:e,name:n,label:i="",accept:r,maxFileSize:o,multiple:a=!1,showPreview:d=!0,required:c,disabled:u,helperText:f,ariaLabel:s,rules:l,validateOn:p,style:g,onClick:b,mode:h,dataKubuildNode:x,isEditable:v,onNodePropChange:y}=t,m=Lt(n?{name:n,required:c,disabled:u,rules:l||[],validateOn:p}:null),[S,k]=dt([]),[R,C]=dt(void 0),w=!!(m&&n),T=e?`${e}-input`:void 0,P=w&&m.touched[n]?m.errors[n]:void 0,I=R||P,N=A=>{let D=Array.from(A.target.files||[]),{accepted:M,rejected:ne}=Ni(D,o),ie=ne.length>0?`${ne.map(ze=>`"${ze.name}"`).join(", ")} exceed${ne.length===1?"s":""} the ${o} MB limit`:void 0;C(ie),k(M);let le=a?M:M[0]??null;w&&(m.setFieldValue(n,le),m.setFieldTouched(n,!0,!ie),ie&&m.setFieldError(n,ie)),Bt(t,"file-upload","change",m,n||e||"file-upload",le)},O=w?m.values[n]:void 0;return so(()=>{w&&O==null&&k([])},[w,O]),ge("div",{id:e,style:g,onClick:b,"data-kubuild-node":x,children:[v?H(Y,{as:"span",value:i,isEditable:v,nodeId:x||"",onChange:(A,D)=>y?.(x||"","label",A,D)}):i?H("label",{htmlFor:T,children:i}):null,H("input",{id:T,type:"file",name:n,accept:r&&r!=="*/*"?r:void 0,multiple:a,required:c,disabled:u,"aria-label":s,"aria-invalid":I?!0:void 0,"aria-errormessage":I&&e?`${e}-error`:void 0,onChange:N,tabIndex:h==="editor"?-1:void 0,style:h==="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," (",Ii(A.size),")"]},`${A.name}-${A.size}`))}):null,H(_t,{id:e,helperText:f,error:I})]})},Pi="@keyframes kubuild-spin{to{transform:rotate(360deg)}}";function ao(t){if(!t)return null;let e=Ci;return e[st(t)]||e[t]||null}var po=({id:t,label:e,loadingText:n,showSpinner:i=!0,autoDisableOnSubmit:r=!0,buttonType:o,variant:a,disabled:d,prefixIcon:c,suffixIcon:u,ariaLabel:f,title:s,style:l,onClick:p,node:g,document:b,renderContext:h,onDiagnostic:x,onActionDispatch:v,dataKubuildNode:y,isEditable:m,onNodePropChange:S})=>{let k=te(),[R,C]=dt(!1),w=R||o==="submit"&&k?.isSubmitting===!0,T=!!d||r&&w,P=async A=>{if(!T){C(!0);try{await Mt({event:A,buttonType:o,disabled:T,formRuntime:k,onClick:p,node:g,document:b,renderContext:h,onDiagnostic:x,onActionDispatch:v})}finally{C(!1)}}},I=ao(c),N=ao(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:s,tabIndex:T?-1:0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"8px",...l},onClick:T?void 0:P,"data-kubuild-node":y,"data-variant":a,"data-state":w?"submitting":"idle",children:[w&&i?ge(fo,{children:[H("style",{children:Pi}),H(wi,{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,m&&!w?H(Y,{as:"span",value:e,isEditable:m,nodeId:y||"",onChange:(A,D)=>S?.(y||"","label",A,D)}):H("span",{children:O}),!w&&N?H(N,{size:16,"aria-hidden":!0}):null]})};import Ht from"react";import{ARTBOARD_REFERENCE_NODE_TYPE as Ai}from"@kubuild/schema";import{jsx as oe,jsxs as zt}from"react/jsx-runtime";function mo(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,childrenElements:a,handleClick:d,context:c,mode:u,isModalOpen:f}=t,s=r.modalId||o.modalId||e.id,l=String(s).trim(),p=c?.modalManager||ae,g=u==="editor"&&c?.artboardSurface==="component";switch(e.type){case"modal":{if(!f&&u==="runtime")return oe(Ht.Fragment,{});let b=r.backdrop!==!1&&o.backdrop!==!1,h=r.closeOnBackdrop!==!1&&o.closeOnBackdrop!==!1,x=r.showCloseButton!==!1&&o.showCloseButton!==!1,v=r.title??o.title,y=v!==void 0?String(v):void 0,m=r.size||o.size||"md",S=m==="sm"?"400px":m==="lg"?"768px":m==="fullscreen"?"100%":"560px",k=m==="fullscreen"?"100%":"auto";return oe("div",{id:`${n}-overlay`,"data-kubuild-overlay":l,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",alignItems:"flex-start",justifyContent:"center",padding:m==="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:m==="fullscreen"?"stretch":"center",justifyContent:"center",zIndex:9999,padding:m==="fullscreen"?"0":"16px"},onClick:R=>{R.target===R.currentTarget&&h&&u==="runtime"&&p.closeModal(l)},children:zt("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 y=="string"?y:"Modal Dialog",children:[x&&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"}),y&&oe("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(y)}),a]})})}case"drawer":{if(!f&&u==="runtime")return oe(Ht.Fragment,{});let b=r.placement||o.placement||"right",h=r.backdrop!==!1&&o.backdrop!==!1,x=r.closeOnBackdrop!==!1&&o.closeOnBackdrop!==!1,v=r.showCloseButton!==!1&&o.showCloseButton!==!1,y=r.title??o.title,m=y!==void 0?String(y):void 0,S=b==="top"||b==="bottom";return oe("div",{id:`${n}-overlay`,"data-kubuild-overlay":l,"data-kubuild-isolated":g?"true":void 0,style:g?{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:h?"rgba(15, 23, 42, 0.5)":"transparent",backdropFilter:h?"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&&x&&u==="runtime"&&p.closeModal(l)},children:zt("div",{id:n,style:{...i,position:"relative",boxSizing:"border-box",height:g||S?"auto":"100%",...g?{minHeight:"240px"}:{},width:S?"100%":i.width||"320px",maxHeight:g?"none":S?"80vh":"100%",overflowY:"auto"},onClick:d,"data-kubuild-node":e.id,role:"region","aria-label":typeof m=="string"?m:"Drawer",children:[v&&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"}),m&&oe("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(m)}),a]})})}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:a});case Ai:{if(u==="runtime")return oe(Ht.Fragment,{});let b=typeof o.artboardId=="string"?o.artboardId:void 0,h=(typeof o.label=="string"&&o.label.trim().length>0?o.label:b)||"artboard";return zt("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 "${h}" \u2014 edit it on its own canvas surface`,children:[oe("span",{"aria-hidden":"true",children:"\u29C9"}),oe("span",{children:`Opens: ${h}`})]})}default:return null}}import{isVariableBinding as go}from"@kubuild/schema";import{jsx as Ve}from"react/jsx-runtime";var U=t=>typeof t=="string"?t:void 0;function bo(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,context:a,mode:d,document:c,onDiagnostic:u,onActionDispatch:f,handleClick:s,onNodePropChange:l,childrenElements:p,selectedNodeId:g}=t,b=e.id===g,h=d==="editor"&&b&&!go(o.label),x=e.formConfig?.rules||r.rules||o.rules||[],v=r.validateOn||o.validateOn,y=r.required===!0,m=r.disabled===!0,S={actions:e.actions,nodeId:e.id,document:c,renderContext:a,onDiagnostic:u,onActionDispatch:f};switch(e.type){case"switch":{let k=U(r.switchSize);return Ve(co,{id:n,name:U(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:y,disabled:m,helperText:U(r.helperText),ariaLabel:U(r.ariaLabel),rules:x,validateOn:v,style:i,onClick:s,dataKubuildNode:e.id,isEditable:h,onNodePropChange:l,...S})}case"file-upload":{let k=typeof r.maxFileSize=="number"?r.maxFileSize:void 0;return Ve(uo,{id:n,name:U(r.name),label:String(r.label??""),accept:U(r.accept),maxFileSize:k,multiple:r.multiple===!0,showPreview:r.showPreview!==!1,required:y,disabled:m,helperText:U(r.helperText),ariaLabel:U(r.ariaLabel),rules:x,validateOn:v,style:i,onClick:s,mode:d,dataKubuildNode:e.id,isEditable:h,onNodePropChange:l,...S})}case"radio-group":{let k=U(r.defaultSelected),R=e.children?.find(C=>C.props?.defaultChecked===!0&&typeof C.props?.value=="string")?.props?.value;return Ve(lo,{id:n,name:U(r.name),defaultSelected:k||R,required:y,disabled:m,orientation:r.orientation==="horizontal"?"horizontal":"vertical",helperText:U(r.helperText),ariaLabel:U(r.ariaLabel),style:i,onClick:s,dataKubuildNode:e.id,children:p})}case"radio-item":return Ve(at,{id:n,name:U(r.name),label:String(r.label??"Radio"),value:r.value!==void 0?String(r.value):"option",defaultChecked:r.defaultChecked===!0,required:y,disabled:m,rules:x,validateOn:v,style:i,onClick:s,dataKubuildNode:e.id,isEditable:h,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 Ve(po,{id:n,label:C,loadingText:U(r.loadingText),showSpinner:r.showSpinner!==!1,autoDisableOnSubmit:r.autoDisableOnSubmit!==!1,buttonType:d==="editor"?"button":R,variant:U(r.variant),disabled:m,prefixIcon:U(r.prefixIcon),suffixIcon:U(r.suffixIcon),ariaLabel:U(r.ariaLabel),title:U(r.title),style:i,onClick:m?void 0:s,node:e,document:c,renderContext:a,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id,isEditable:h&&!go(o.text),onNodePropChange:l})}default:return null}}import{useEffect as yo,useRef as ho,useState as vo}from"react";function lt(t,e){let n=t.resolvedProps[e];return n!==void 0?n:t.props[e]}function L(t,e,n=""){let i=lt(t,e);return i==null||typeof i=="object"?n:String(i)}function Z(t,e,n){let i=lt(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=lt(t,e);return typeof i=="boolean"?i:i==="true"?!0:i==="false"?!1:n}function ye(t){let e=lt(t,"ariaLabel");return typeof e=="string"&&e.trim()!==""?e:void 0}function ct(t,e){return e?t.id===e?!0:(t.children??[]).some(n=>ct(n,e)):!1}function ut(t,e){return e?(t.children??[]).findIndex(n=>ct(n,e)):-1}import{jsx as Ce,jsxs as xo}from"react/jsx-runtime";function Ut(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 ue=t=>String(t).padStart(2,"0");function ko(t,e){let n=Ut(t);return e==="mm:ss"?`${ue(Math.floor(n.totalSeconds/60))}:${ue(n.seconds)}`:e==="d h m s"?`${n.days}d ${ue(n.hours)}h ${ue(n.minutes)}m ${ue(n.seconds)}s`:`${ue(Math.floor(n.totalSeconds/3600))}:${ue(n.minutes)}:${ue(n.seconds)}`}function qt(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 a of n.formatToParts(new Date(t)))a.type!=="literal"&&(i[a.type]=Number(a.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 Fi=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?)?$/,Di=/(?:Z|[+-]\d{2}:?\d{2})$/i;function pt(t,e="UTC"){let n=(t||"").trim();if(!n)return null;if(Di.test(n)){let l=Date.parse(n);return Number.isFinite(l)?l:null}let i=Fi.exec(n);if(!i)return null;let[,r,o,a,d="0",c="0",u="0"]=i,f=Date.UTC(Number(r),Number(o)-1,Number(a),Number(d),Number(c),Number(u));if(!Number.isFinite(f))return null;let s=e&&e.trim()?e.trim():"UTC";try{let l=f-qt(f,s);return f-qt(l,s)}catch{return f}}var jt=new Map;function Oi(){jt.clear()}function Ro(t){try{return typeof window>"u"?null:(t==="local"?window.localStorage:window.sessionStorage)??null}catch{return null}}function Co(t){let{key:e,durationMs:n,now:i,storage:r}=t,o=f=>{if(!f)return null;try{let s=JSON.parse(f);if(typeof s.deadline=="number"&&Number.isFinite(s.deadline)&&s.duration===n)return s.deadline}catch{}return null},a;try{a=r?r.getItem(e):void 0}catch{a=void 0}let d=o(a)??o(jt.get(e));if(d!==null)return d;let c=i+n,u=JSON.stringify({deadline:c,duration:n});jt.set(e,u);try{r?.setItem(e,u)}catch{}return c}function wo(t){return _({node:t.node,trigger:"expire",document:t.document,context:t.context,onDiagnostic:t.onDiagnostic,onActionDispatch:t.onActionDispatch})}function Mi(t){return t==="mm:ss"||t==="d h m s"?t:"hh:mm:ss"}var Vi=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o}=t,a=r==="editor",d=L(t,"mode","evergreen")==="fixed"?"fixed":"evergreen",c=Math.max(0,Z(t,"durationMinutes",15))*6e4,u=L(t,"targetDate"),f=L(t,"timezone","UTC"),s=Mi(L(t,"format","hh:mm:ss")),l=L(t,"label"),p=L(t,"expireBehavior","text"),g=L(t,"expiredText","This offer has expired."),b=L(t,"storage","session")==="local"?"local":"session",h=`kubuild:countdown:${L(t,"storageKey")||e.id}`,x=[L(t,"labelDays","Days"),L(t,"labelHours","Hours"),L(t,"labelMinutes","Minutes"),L(t,"labelSeconds","Seconds")],[v,y]=vo(()=>{if(d==="evergreen")return c;if(a){let I=pt(u,f);return I===null?null:Math.max(0,I-Date.now())}return null}),[m,S]=vo(!1),k=ho(!1),R=ho(t);R.current=t,yo(()=>{if(a){if(d==="evergreen")y(c);else{let I=pt(u,f);y(I===null?null:Math.max(0,I-Date.now()))}S(!1)}},[a,d,c,u,f]),yo(()=>{if(a)return;let I=d==="fixed"?pt(u,f):Co({key:h,durationMs:c,now:Date.now(),storage:Ro(b)});if(I===null){y(null);return}let N,O=()=>{let A=Math.max(0,I-Date.now());return y(A),A<=0?(N!==void 0&&clearInterval(N),S(!0),k.current||(k.current=!0,wo(R.current)),!1):!0};return O()&&(N=setInterval(O,1e3)),()=>{N!==void 0&&clearInterval(N)}},[a,d,c,u,f,h,b]);let C=ye(t)||l||"Countdown";if(!a&&m&&p==="hide")return Ce("div",{id:n,style:{...i,display:"none"},"data-kubuild-node":e.id,"data-kubuild-countdown-state":"expired","aria-hidden":"true"});if(!a&&m&&p==="text")return Ce("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,"data-kubuild-countdown-state":"expired",role:"status",children:g});let w=v===null?null:Ut(v),T=a?"frozen":m?"expired":"running",P;return s==="d h m s"?P=(w?[w.days,w.hours,w.minutes,w.seconds]:[null,null,null,null]).map((N,O)=>xo("span",{"data-kubuild-countdown-unit":["days","hours","minutes","seconds"][O],style:{display:"inline-flex",flexDirection:"column",alignItems:"center",minWidth:"2.5em"},children:[Ce("span",{children:N===null?"--":O===0?String(N):ue(N)}),x[O]?Ce("span",{style:{fontSize:"0.4em",fontWeight:500,opacity:.75,textTransform:"uppercase"},children:x[O]}):null]},O)):P=Ce("span",{"data-kubuild-countdown-value":"",children:v===null?s==="mm:ss"?"--:--":"--:--:--":ko(v,s)}),xo("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?Ce("span",{"data-kubuild-countdown-label":"",children:l}):null,P]})};function So(t){return Ce(Vi,{options:t})}import{createContext as Bi,useCallback as Li,useContext as _i,useMemo as To,useState as Eo}from"react";import{jsx as se,jsxs as ft}from"react/jsx-runtime";var $o=Bi(null);function Io(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 Hi=["text","content","quote","label","title","caption"];function No(t,e){let n=t.props??{};for(let i of Hi){let r=n[i];if(typeof r=="string"&&r.trim()){e.push(r.trim());break}}for(let i of t.children??[])No(i,e)}function Po(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??[])No(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 Ao(t){return JSON.stringify(t).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var zi=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o,childrenElements:a}=t,d=be(t,"allowMultiple",!1),c=Math.trunc(Z(t,"defaultOpenIndex",0)),u=L(t,"icon","chevron"),f=be(t,"faqSchema",!1),[s,l]=Eo(()=>c>=0?new Set([c]):new Set),p=Li(x=>l(v=>Io(v,x,d)),[d]),g=To(()=>(e.children??[]).map(x=>x.id),[e.children]),b=To(()=>({rootDomId:n,itemIds:g,openIndices:s,toggle:p,icon:u}),[n,g,s,p,u]),h=r==="runtime"&&f?Po(e):null;return ft("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,"data-kubuild-accordion":n,"aria-label":ye(t),children:[se($o.Provider,{value:b,children:a}),h?se("script",{type:"application/ld+json","data-kubuild-faq-schema":"",dangerouslySetInnerHTML:{__html:Ao(h)}}):null]})},qi=({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"?ft("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"})})},ji=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o,childrenElements:a,selectedNodeId:d}=t,c=_i($o),[u,f]=Eo(!1),s=c?c.itemIds.indexOf(e.id):-1,p=(c&&s>=0?c.openIndices.has(s):u)||r==="editor"&&ct(e,d),g=L(t,"title","Question"),b=`${n}-header`,h=`${n}-panel`,x=c?.rootDomId??n,v=()=>{c&&s>=0?c.toggle(s):f(m=>!m)},y=m=>{if(!["ArrowDown","ArrowUp","Home","End"].includes(m.key))return;let S=m.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")===x),R=k.indexOf(m.currentTarget);if(R<0)return;m.preventDefault();let C=k.length,w=m.key==="Home"?0:m.key==="End"?C-1:m.key==="ArrowDown"?(R+1)%C:(R-1+C)%C;k[w]?.focus()};return ft("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,"data-state":p?"open":"closed",children:[ft("button",{type:"button",id:b,"aria-expanded":p,"aria-controls":h,"data-kubuild-accordion-trigger":x,onClick:v,onKeyDown:y,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:g}),se(qi,{icon:c?.icon??"chevron",open:p})]}),se("div",{id:h,role:"region","aria-labelledby":b,hidden:!p,style:{paddingBottom:"16px"},children:a})]})};function Fo(t){return se(zi,{options:t})}function Do(t){return se(ji,{options:t})}import{createContext as Ui,useContext as Wi,useEffect as Ki,useMemo as Oo,useRef as Gi,useState as Yi}from"react";import{jsx as Ee,jsxs as Qi}from"react/jsx-runtime";var Mo=Ui(null);function mt(t,e){return e<=0||!Number.isFinite(t)?0:Math.min(Math.max(Math.trunc(t),0),e-1)}var Xi=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o,childrenElements:a,selectedNodeId:d,onNodePropChange:c}=t,u=Oo(()=>e.children??[],[e.children]),f=u.length,s=mt(Z(t,"activeIndex",0),f),[l,p]=Yi(s),g=Gi([]);Ki(()=>{p(s)},[s]);let b=r==="editor"?ut(e,d):-1,h=mt(b>=0?b:l,f),x=t.instanceSuffix??"",v=C=>`${n}-tab-${C}`,y=u.map(C=>`${C.id}${x}`),m=(C,w=!1)=>{let T=mt(C,f);p(T),w&&g.current[T]?.focus(),r==="editor"&&T!==s&&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(),m(T,!0))},k=y.join("|"),R=Oo(()=>({activeIndex:h,panelIds:k?k.split("|"):[],tabId:C=>`${n}-tab-${C}`}),[h,k,n]);return Qi("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,children:[Ee("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===h;return Ee("button",{ref:N=>{g.current[w]=N},type:"button",role:"tab",id:v(w),"aria-selected":I,"aria-controls":y[w],tabIndex:I?0:-1,"data-kubuild-tab-index":w,onClick:()=>m(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)})}),Ee(Mo.Provider,{value:R,children:a})]})},Ji=({options:t})=>{let{node:e,domId:n,styles:i,handleClick:r,childrenElements:o}=t,a=Wi(Mo),d=a?a.panelIds.indexOf(n):-1,c=!a||d===a.activeIndex;return Ee("div",{id:n,style:c?i:{...i,display:"none"},onClick:r,"data-kubuild-node":e.id,role:a?"tabpanel":void 0,"aria-labelledby":a&&d>=0?a.tabId(d):void 0,tabIndex:a?0:void 0,hidden:!c,children:o})};function Vo(t){return Ee(Xi,{options:t})}function Bo(t){return Ee(Ji,{options:t})}import Zi,{useEffect as Ho,useRef as ea,useState as Wt}from"react";import{Fragment as oa,jsx as pe,jsxs as _o}from"react/jsx-runtime";var zo=40;function gt(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 qo(t,e,n=zo){let i=e-t;return Math.abs(i)<n?0:i<0?-1:1}function ta(){let[t,e]=Wt(!1);return Ho(()=>{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 Lo=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}),na=({options:t})=>{let{node:e,domId:n,styles:i,mode:r,handleClick:o,childrenElements:a,selectedNodeId:d}=t,c=r==="runtime",u=Zi.Children.toArray(a),f=u.length,s=be(t,"autoplay",!1),l=Math.max(1e3,Z(t,"interval",5e3)),p=be(t,"loop",!0),g=be(t,"showDots",!0),b=be(t,"showArrows",!0),[h,x]=Wt(0),[v,y]=Wt(!1),m=ta(),S=ea(null),k=r==="editor"?ut(e,d):-1,R=gt(k>=0?k:h,0,f,!1),C=c&&s&&!m&&!v&&f>1;Ho(()=>{if(!C)return;let A=setInterval(()=>{x(D=>gt(D,1,f,!0))},l);return()=>clearInterval(A)},[C,l,f]);let w=A=>x(D=>gt(D,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 D=S.current;S.current=null;let M=A.changedTouches[0]?.clientX;if(D===null||M===void 0)return;let ne=qo(D,M);ne!==0&&w(-ne)},N=p||R>0,O=p||R<f-1;return _o("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:()=>y(!0),onMouseLeave:()=>y(!1),onFocus:()=>y(!0),onBlur:()=>y(!1),onTouchStart:P,onTouchEnd:I,children:[pe("div",{"data-kubuild-carousel-track":"","aria-live":C?"off":"polite",style:{display:"flex",width:"100%",transform:`translateX(-${R*100}%)`,transition:m?"none":"transform 400ms ease"},children:u.map((A,D)=>pe("div",{role:"group","aria-roledescription":"slide","aria-label":`${D+1} of ${f}`,"aria-hidden":c&&D!==R?!0:void 0,"data-kubuild-carousel-slide":D,style:{flex:"0 0 100%",minWidth:0,boxSizing:"border-box"},children:A},D))}),b&&f>1?_o(oa,{children:[pe("button",{type:"button","aria-label":"Previous slide",disabled:!N,onClick:()=>w(-1),style:{...Lo("left"),opacity:N?1:.4},children:pe("span",{"aria-hidden":"true",children:"\u2039"})}),pe("button",{type:"button","aria-label":"Next slide",disabled:!O,onClick:()=>w(1),style:{...Lo("right"),opacity:O?1:.4},children:pe("span",{"aria-hidden":"true",children:"\u203A"})})]}):null,g&&f>1?pe("div",{role:"group","aria-label":"Choose slide",style:{display:"flex",justifyContent:"center",gap:"8px",padding:"12px 0"},children:u.map((A,D)=>pe("button",{type:"button","aria-label":`Go to slide ${D+1}`,"aria-current":D===R?"true":void 0,"data-kubuild-carousel-dot":D,onClick:()=>x(D),style:{width:"8px",height:"8px",padding:0,borderRadius:"9999px",border:"none",background:D===R?"#0f172a":"#cbd5e1",cursor:"pointer"}},D))}):null]})};function jo(t){return pe(na,{options:t})}import{jsx as we,jsxs as ia}from"react/jsx-runtime";var Wo=10;function bt(t,e){let n=Math.min(Math.max(Math.round(Number.isFinite(e)?e:5),1),Wo),i=Math.min(Math.max(Number.isFinite(t)?t:0,0),n);return{value:Math.round(i*2)/2,max:n}}function Ko(t,e){let n=bt(t,e);return Array.from({length:n.max},(i,r)=>n.value>=r+1?1:n.value>=r+.5?.5:0)}function Go(t,e,n){let i=bt(e,n);return(t||"{value} out of {max}").replace(/\{value\}/g,String(i.value)).replace(/\{max\}/g,String(i.max))}var Uo="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",ra=({size:t,fill:e,color:n,emptyColor:i})=>ia("span",{"aria-hidden":"true","data-kubuild-rating-star":e,style:{position:"relative",display:"inline-block",width:t,height:t,lineHeight:0},children:[we("svg",{width:t,height:t,viewBox:"0 0 24 24",focusable:"false",children:we("polygon",{points:Uo,fill:i})}),e>0?we("span",{style:{position:"absolute",top:0,left:0,width:`${e*100}%`,height:"100%",overflow:"hidden"},children:we("svg",{width:t,height:t,viewBox:"0 0 24 24",focusable:"false",children:we("polygon",{points:Uo,fill:n})})}):null]});function Yo(t){let{node:e,domId:n,styles:i,handleClick:r}=t,{value:o,max:a}=bt(Z(t,"value",5),Z(t,"max",5)),d=Math.max(4,Z(t,"size",20)),c=L(t,"color","#f59e0b")||"#f59e0b",u=L(t,"emptyColor","#e2e8f0")||"#e2e8f0",f=Go(L(t,"labelTemplate","{value} out of {max}"),o,a);return we("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:Ko(o,a).map((s,l)=>we(ra,{size:d,fill:s,color:c,emptyColor:u},l))})}import{jsx as Be,jsxs as aa}from"react/jsx-runtime";function Xo(t){let{node:e,domId:n,styles:i,handleClick:r}=t,o=L(t,"lineStyle","solid"),a=o==="dashed"||o==="dotted"?o:"solid",d=Math.max(0,Z(t,"thickness",1)),c=L(t,"color","#e2e8f0")||"#e2e8f0",u=L(t,"label").trim(),f=`${d}px ${a} ${c}`;return u?aa("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:[Be("span",{"aria-hidden":"true",style:{flex:1,borderTop:f}}),Be("span",{style:{fontSize:"12px",fontWeight:500,color:"#64748b",whiteSpace:"nowrap"},children:u}),Be("span",{"aria-hidden":"true",style:{flex:1,borderTop:f}})]}):Be("hr",{id:n,style:{height:0,border:"none",borderTop:f,...i},onClick:r,"data-kubuild-node":e.id})}function Jo(t){let{node:e,domId:n,styles:i,handleClick:r,mode:o}=t;return Be("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 Qo(t){switch(t.node.type){case"countdown":return So(t);case"accordion":return Fo(t);case"accordion-item":return Do(t);case"tabs":return Vo(t);case"tab-panel":return Bo(t);case"carousel":return jo(t);case"rating":return Yo(t);case"divider":return Xo(t);case"spacer":return Jo(t);default:return null}}import{jsx as E,jsxs as re}from"react/jsx-runtime";function ma(t){let{node:e,document:n,definition:i,resolvedProps:r,styles:o,context:a,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:a,children:d,onClick:c}):E(u,{node:e,document:n,props:r,styles:o,context:a,onClick:c,children:d})}return null}function ga(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,handleClick:a,childrenElements:d}=t;switch(e.type){case"page":return E("div",{id:n,style:i,onClick:a,"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:a,"data-kubuild-node":e.id,"aria-label":c,children:d})}case"container":return E("div",{id:n,style:i,onClick:a,"data-kubuild-node":e.id,children:d});case"columns":return E("div",{id:n,style:i,onClick:a,"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:a,"data-kubuild-node":e.id,"aria-label":c,children:d})}default:return null}}function ba(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,mode:a,handleClick:d,onNodePropChange:c,childrenElements:u,selectedNodeId:f}=t,s=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",g=String(r.text??r.content??o.text??o.content??""),b=a==="editor"&&s&&!q(o.text)&&!q(o.content);return E(Y,{as:p,id:n,style:i,value:g,isEditable:b,nodeId:e.id,onClick:d,onChange:(h,x)=>c?.(e.id,"text",h,x)})}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",g=a==="editor"&&s&&!q(o.text)&&!q(o.content);return E(Y,{as:p,id:n,style:i,value:l,isEditable:g,nodeId:e.id,onClick:d,onChange:(b,h)=>c?.(e.id,"text",b,h)})}case"paragraph":{let l=String(r.text??r.content??o.text??o.content??""),p=a==="editor"&&s&&!q(o.text)&&!q(o.content);return E(Y,{as:"p",id:n,style:i,value:l,isEditable:p,nodeId:e.id,onClick:d,onChange:(g,b)=>c?.(e.id,"text",g,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:"#",g=typeof r.target=="string"?r.target:void 0,b=a==="editor"&&s&&!q(o.text)&&!q(o.label)&&!q(o.content),h=typeof r.rel=="string"?r.rel:g==="_blank"?"noopener noreferrer":void 0,x=a==="editor"?void 0:he(p,"#"),v=y=>{a==="editor"&&y.preventDefault(),d(y)};return b?E(Y,{as:"a",id:n,style:i,value:l,isEditable:b,nodeId:e.id,onClick:v,onChange:(y,m)=>c?.(e.id,"text",y,m),href:x,target:g,rel:h}):E("a",{id:n,style:i,href:x,target:g,rel:h,onClick:v,"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,g=a==="editor"&&s&&!q(o.quote)&&!q(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?g?E(Y,{as:"p",value:l,isEditable:g,nodeId:e.id,onChange:(h,x)=>c?.(e.id,"text",h,x)}):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",g=a==="editor"&&s&&!q(o.text)&&!q(o.label);return E("span",{id:n,style:i,onClick:d,"data-kubuild-node":e.id,"data-variant":p,"data-badge-variant":p,children:g?E(Y,{as:"span",value:l,isEditable:g,nodeId:e.id,onChange:(b,h)=>c?.(e.id,"text",b,h)}):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 a==="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:g=>c?.(e.id,"code",g.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 ya(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,mode:a,handleClick:d,onNodePropChange:c,childrenElements:u,selectedNodeId:f}=t,s=e.id===f;switch(e.type){case"list":{let p=(r.tag||o.tag)==="ol"||r.ordered===!0||o.ordered===!0?"ol":"ul",g=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=g==="custom-icon"||g==="none"?"none":g,h={...i,...b?{listStyleType:b}:{}};return E(p,{id:n,style:h,onClick:d,"data-kubuild-node":e.id,"data-list-style":g,children:u})}case"list-item":{let l=r.text!==void 0?String(r.text):o.text!==void 0?String(o.text):void 0,p=a==="editor"&&s&&!q(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(Y,{as:"span",value:l,isEditable:p,nodeId:e.id,onChange:(g,b)=>c?.(e.id,"text",g,b)}):l),u]})}default:return null}}function ha(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,mode:a,handleClick:d,onNodePropChange:c,childrenElements:u,selectedNodeId:f}=t,s=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,g=typeof r.border=="number"?r.border:void 0,b=r.striped===!0||o.striped===!0,h=r.bordered===!0||o.bordered===!0,x=r.hover===!0||o.hover===!0,v=r.compact===!0||o.compact===!0;return E("table",{id:n,style:i,cellPadding:l,cellSpacing:p,border:g,onClick:d,"data-kubuild-node":e.id,"data-striped":b?"true":void 0,"data-bordered":h?"true":void 0,"data-hover":x?"true":void 0,"data-compact":v?"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",g=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,h=r.text!==void 0?String(r.text):o.text!==void 0?String(o.text):void 0,x=a==="editor"&&s&&!q(o.text)&&h!==void 0;return re(p,{id:n,colSpan:g,rowSpan:b,style:i,onClick:d,"data-kubuild-node":e.id,children:[h!==void 0&&(x?E(Y,{as:"span",value:h,isEditable:x,nodeId:e.id,onChange:(v,y)=>c?.(e.id,"text",v,y)}):h),u]})}default:return null}}function Kt(t){let n=`<svg xmlns="http://www.w3.org/2000/svg" width="600" height="400" viewBox="0 0 600 400" fill="none">
|
|
124
|
+
${o}</style>`}):""}var Jn=({id:t,style:e,onClick:n,dataKubuildNode:i,html:o,role:r})=>{let a=Yn(null),c=Yn(null),d=Ei(()=>Ii(o),[o]);return $i(()=>{let p=a.current;if(p){if(typeof p.attachShadow=="function"){if(!c.current)if(p.shadowRoot)c.current=p.shadowRoot;else try{c.current=p.attachShadow({mode:"open"})}catch{c.current=p.shadowRoot}if(c.current){c.current.innerHTML=d;return}}p.innerHTML=d}},[d]),Xn("div",{ref:a,id:t,style:e,onClick:n,"data-kubuild-node":i,role:r,children:Xn("template",{shadowrootmode:"open",dangerouslySetInnerHTML:{__html:d}})})};import{useContext as Fi,useEffect as Oe}from"react";import{createContext as Ni}from"react";var it=Ni(null);import Qn,{useEffect as Pi}from"react";import{ActionPipelineExecutor as Ai}from"@kubuild/core";async function _(t){let{node:e,trigger:n,document:i,context:o,formContext:r,extraContext:a,onDiagnostic:c,onActionDispatch:d,executor:p}=t;if(!e.actions||!Array.isArray(e.actions)||e.actions.length===0)return{executed:!1,success:!0};let f=e.actions.filter(u=>u.trigger===n&&u.enabled!==!1);if(f.length===0)return{executed:!1,success:!0};let s=p||new Ai;rt(s);let l={trigger:n,form:r?{...r.values}:{},variables:o?.variables?{...o.variables}:{},nodeId:e.id,document:i,toastManager:o?.toastManager,modalManager:o?.modalManager,trackingConfig:o?.trackingConfig||i?.tracking||i?.metadata?.tracking,trackingRuntime:o?.tracking,reportDiagnostic:u=>{c?.(u),o?.onDiagnostic?.(u)},...a||{}};for(let u of f){let g=await s.execute(u,{context:l});if(d&&u.steps.length>0&&d(u.steps[0].type,u.steps[0].payload,e.id),!g.success){let b=g.error instanceof Error?g.error.message:String(g.error||`Action pipeline "${u.id}" failed`),h={code:"ACTION_EXECUTION_ERROR",actionType:u.steps[0]?.type||n,nodeId:e.id,message:b,error:g.error};return c?.(h),o?.onDiagnostic?.(h),{executed:!0,success:!1,error:g.error}}}return{executed:!0,success:!0}}function Zn(t,e){if(!t.actions?.some(r=>r.trigger==="load"&&r.enabled!==!1))return;let i=Qn?.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE||Qn?.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(i?.H||i?.ReactCurrentDispatcher?.current)try{Pi(()=>{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{Fragment as Bt,jsx as q,jsxs as Re}from"react/jsx-runtime";var Di={fontSize:"12px",color:"#dc2626"};function Mt({id:t,message:e}){return q("span",{id:t?`${t}-error`:void 0,role:"alert",style:Di,"data-kubuild-field-error":!0,children:e})}var eo=({id:t,name:e,action:n,method:i="POST",target:o,autoComplete:r,style:a,onClick:c,mode:d,dataKubuildNode:p,children:f})=>{let s=te();return q("form",{id:t,name:e,action:n,method:i,target:o,autoComplete:r,style:a,onClick:c,onSubmit:g=>{if(d==="editor"){g.preventDefault();return}s&&s.handleFormSubmit(g)},onReset:()=>{s&&s.resetForm()},"data-kubuild-node":p,role:"form","aria-label":e,children:f})},to=({id:t,name:e,type:n="text",placeholder:i,defaultValue:o,required:r,disabled:a,readOnly:c,rules:d,validateOn:p,transform:f,style:s,onClick:l,actions:u,nodeId:g,document:b,renderContext:h,onDiagnostic:v,onActionDispatch:x,dataKubuildNode:y})=>{let m=te();if(m&&e&&m.registerField({name:e,defaultValue:o,required:r,disabled:a,rules:d||[],validateOn:p,transform:f}),Oe(()=>{if(!m||!e)return;let N=m.registerField({name:e,defaultValue:o,required:r,disabled:a,rules:d||[],validateOn:p,transform:f});return()=>{N()}},[m,e,o,r,a,d,p,f]),!m||!e)return q("input",{id:t,type:n,name:e,placeholder:i,defaultValue:o!==void 0?String(o):void 0,required:r,disabled:a,readOnly:c,style:s,onClick:l,"data-kubuild-node":y});let S=m.values[e],R=S!=null?String(S):o!=null?String(o):"",k=m.errors[e],C=!!m.touched[e],w=!!(k&&C);return Re(Bt,{children:[q("input",{id:t,type:n,name:e,placeholder:i,value:R,onChange:N=>{let O=N.target.value;n==="number"&&(O=N.target.value===""?"":Number(N.target.value)),m.setFieldValue(e,O),u&&u.length>0&&_({node:{id:g||t||e,type:"input",actions:u},trigger:"change",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:O},onDiagnostic:v,onActionDispatch:x})},onBlur:()=>{m.setFieldTouched(e,!0),u&&u.length>0&&_({node:{id:g||t||e,type:"input",actions:u},trigger:"blur",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:v,onActionDispatch:x})},onFocus:()=>{u&&u.length>0&&_({node:{id:g||t||e,type:"input",actions:u},trigger:"focus",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:v,onActionDispatch:x})},required:r,disabled:a,readOnly:c,style:s,onClick:l,"data-kubuild-node":y,"data-field":e,"data-invalid":w?"true":void 0,"aria-invalid":w?!0:void 0,"aria-errormessage":w&&t?`${t}-error`:void 0}),w&&q(Mt,{id:t,message:k})]})},no=({id:t,name:e,placeholder:n,defaultValue:i,rows:o=4,required:r,disabled:a,readOnly:c,rules:d,validateOn:p,transform:f,style:s,onClick:l,actions:u,nodeId:g,document:b,renderContext:h,onDiagnostic:v,onActionDispatch:x,dataKubuildNode:y})=>{let m=te();if(m&&e&&m.registerField({name:e,defaultValue:i,required:r,disabled:a,rules:d||[],validateOn:p,transform:f}),Oe(()=>{if(!m||!e)return;let N=m.registerField({name:e,defaultValue:i,required:r,disabled:a,rules:d||[],validateOn:p,transform:f});return()=>{N()}},[m,e,i,r,a,d,p,f]),!m||!e)return q("textarea",{id:t,name:e,placeholder:n,defaultValue:i!==void 0?String(i):void 0,rows:o,required:r,disabled:a,readOnly:c,style:s,onClick:l,"data-kubuild-node":y});let S=m.values[e],R=S!=null?String(S):i!=null?String(i):"",k=m.errors[e],C=!!m.touched[e],w=!!(k&&C);return Re(Bt,{children:[q("textarea",{id:t,name:e,placeholder:n,rows:o,value:R,onChange:N=>{m.setFieldValue(e,N.target.value),u&&u.length>0&&_({node:{id:g||t||e,type:"textarea",actions:u},trigger:"change",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:N.target.value},onDiagnostic:v,onActionDispatch:x})},onBlur:()=>{m.setFieldTouched(e,!0),u&&u.length>0&&_({node:{id:g||t||e,type:"textarea",actions:u},trigger:"blur",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:v,onActionDispatch:x})},onFocus:()=>{u&&u.length>0&&_({node:{id:g||t||e,type:"textarea",actions:u},trigger:"focus",document:b,context:h,formContext:m,extraContext:{fieldName:e,fieldValue:m.values[e]},onDiagnostic:v,onActionDispatch:x})},required:r,disabled:a,readOnly:c,style:s,onClick:l,"data-kubuild-node":y,"data-field":e,"data-invalid":w?"true":void 0,"aria-invalid":w?!0:void 0,"aria-errormessage":w&&t?`${t}-error`:void 0}),w&&q(Mt,{id:t,message:k})]})},oo=({id:t,name:e,placeholder:n,defaultValue:i,required:o,disabled:r,rules:a,validateOn:c,optionsList:d,style:p,onClick:f,actions:s,nodeId:l,document:u,renderContext:g,onDiagnostic:b,onActionDispatch:h,dataKubuildNode:v})=>{let x=te();if(x&&e&&x.registerField({name:e,defaultValue:i,required:o,disabled:r,rules:a||[],validateOn:c}),Oe(()=>{if(!x||!e)return;let P=x.registerField({name:e,defaultValue:i,required:o,disabled:r,rules:a||[],validateOn:c});return()=>{P()}},[x,e,i,o,r,a,c]),!x||!e)return Re("select",{id:t,name:e,defaultValue:i!==void 0?String(i):"",required:o,disabled:r,style:p,onClick:f,"data-kubuild-node":v,children:[n&&q("option",{value:"",disabled:!0,children:n}),d.map((P,I)=>q("option",{value:P.value,children:P.label},I))]});let y=x.values[e],m=y!=null?String(y):i!=null?String(i):"",S=x.errors[e],R=!!x.touched[e],k=!!(S&&R);return Re(Bt,{children:[Re("select",{id:t,name:e,value:m,onChange:P=>{x.setFieldValue(e,P.target.value),s&&s.length>0&&_({node:{id:l||t||e,type:"select",actions:s},trigger:"change",document:u,context:g,formContext:x,extraContext:{fieldName:e,fieldValue:P.target.value},onDiagnostic:b,onActionDispatch:h})},onBlur:()=>{x.setFieldTouched(e,!0),s&&s.length>0&&_({node:{id:l||t||e,type:"select",actions:s},trigger:"blur",document:u,context:g,formContext:x,extraContext:{fieldName:e,fieldValue:x.values[e]},onDiagnostic:b,onActionDispatch:h})},onFocus:()=>{s&&s.length>0&&_({node:{id:l||t||e,type:"select",actions:s},trigger:"focus",document:u,context:g,formContext:x,extraContext:{fieldName:e,fieldValue:x.values[e]},onDiagnostic:b,onActionDispatch:h})},required:o,disabled:r,style:p,onClick:f,"data-kubuild-node":v,"data-field":e,"data-invalid":k?"true":void 0,"aria-invalid":k?!0:void 0,"aria-errormessage":k&&t?`${t}-error`:void 0,children:[n&&q("option",{value:"",disabled:!0,children:n}),d.map((P,I)=>q("option",{value:P.value,children:P.label},I))]}),k&&q(Mt,{id:t,message:S})]})},ro=({id:t,name:e,label:n="",defaultChecked:i=!1,required:o,disabled:r,rules:a,validateOn:c,style:d,onClick:p,actions:f,nodeId:s,document:l,renderContext:u,onDiagnostic:g,onActionDispatch:b,dataKubuildNode:h,isEditable:v,onNodePropChange:x})=>{let y=te();y&&e&&y.registerField({name:e,defaultValue:i,required:o,disabled:r,rules:a||[],validateOn:c}),Oe(()=>{if(!y||!e)return;let k=y.registerField({name:e,defaultValue:i,required:o,disabled:r,rules:a||[],validateOn:c});return()=>{k()}},[y,e,i,o,r,a,c]);let m=y&&e&&y.values[e]!==void 0?!!y.values[e]:i;return Re("label",{id:t,style:d,onClick:p,"data-kubuild-node":h,children:[q("input",{type:"checkbox",name:e,checked:m,onChange:k=>{y&&e&&(y.setFieldValue(e,k.target.checked),f&&f.length>0&&_({node:{id:s||t||e,type:"checkbox",actions:f},trigger:"change",document:l,context:u,formContext:y,extraContext:{fieldName:e,fieldValue:k.target.checked},onDiagnostic:g,onActionDispatch:b}))},onBlur:()=>{y&&e&&(y.setFieldTouched(e,!0),f&&f.length>0&&_({node:{id:s||t||e,type:"checkbox",actions:f},trigger:"blur",document:l,context:u,formContext:y,extraContext:{fieldName:e,fieldValue:m},onDiagnostic:g,onActionDispatch:b}))},required:o,disabled:r,style:{cursor:r?"not-allowed":"pointer"},"data-field":e}),v?q(Y,{as:"span",value:n,isEditable:v,nodeId:h||"",onChange:(k,C)=>x?.(h||"","label",k,C)}):q("span",{children:n})]})},at=({id:t,name:e,label:n="",value:i="",defaultChecked:o=!1,required:r,disabled:a,rules:c,validateOn:d,style:p,onClick:f,actions:s,nodeId:l,document:u,renderContext:g,onDiagnostic:b,onActionDispatch:h,dataKubuildNode:v,isEditable:x,onNodePropChange:y})=>{let m=te(),S=Fi(it),R=!!S?.name,k=R?S.name:e,C=R?S.required:r,w=!!(a||S?.disabled);m&&k&&!R&&m.registerField({name:k,defaultValue:o?i:void 0,required:C,disabled:w,rules:c||[],validateOn:d}),Oe(()=>{if(!m||!k||R)return;let N=m.registerField({name:k,defaultValue:o?i:void 0,required:C,disabled:w,rules:c||[],validateOn:d});return()=>{N()}},[m,k,R,o,i,C,w,c,d]);let T=m&&k&&m.values[k]!==void 0?m.values[k]===i:o;return Re("label",{id:t,style:p,onClick:f,"data-kubuild-node":v,children:[q("input",{type:"radio",name:k,value:i,checked:T,onChange:()=>{m&&k&&(m.setFieldValue(k,i),s&&s.length>0&&_({node:{id:l||t||k,type:"radio",actions:s},trigger:"change",document:u,context:g,formContext:m,extraContext:{fieldName:k,fieldValue:i},onDiagnostic:b,onActionDispatch:h}))},onBlur:()=>{m&&k&&(m.setFieldTouched(k,!0),s&&s.length>0&&_({node:{id:l||t||k,type:"radio",actions:s},trigger:"blur",document:u,context:g,formContext:m,extraContext:{fieldName:k,fieldValue:i},onDiagnostic:b,onActionDispatch:h}))},required:C,disabled:w,style:{cursor:w?"not-allowed":"pointer"},"data-field":k}),x?q(Y,{as:"span",value:n,isEditable:x,nodeId:v||"",onChange:(N,O)=>y?.(v||"","label",N,O)}):q("span",{children:n})]})};async function Vt(t){let{event:e,buttonType:n,disabled:i,formRuntime:o,onClick:r,node:a,actions:c,document:d,renderContext:p,onDiagnostic:f,onActionDispatch:s,executeActions:l=_}=t;if(i)return;if(n==="submit"){if(o&&!await o.handleFormSubmit(e))return}else n==="reset"&&o?.resetForm();if(r){r(e);return}let u=a||(c?{id:"button",type:"button",actions:c}:void 0);u?.actions&&u.actions.length>0&&await l({node:u,trigger:"click",document:d,context:p,formContext:o,onDiagnostic:f,onActionDispatch:s})}var io=({id:t,buttonType:e,disabled:n,ariaLabel:i,style:o,onClick:r,actions:a,node:c,document:d,renderContext:p,onDiagnostic:f,onActionDispatch:s,dataKubuildNode:l,actionAttrs:u,children:g})=>{let b=te(),h=b?.isSubmitting===!0,v=n||e==="submit"&&h;return q("button",{id:t,type:e,disabled:v,"aria-disabled":v?!0:void 0,"aria-label":i,"aria-busy":e==="submit"&&h?!0:void 0,tabIndex:v?-1:0,style:o,onClick:v?void 0:async y=>{await Vt({event:y,buttonType:e,disabled:v,formRuntime:b,onClick:r,node:c||(a?{id:l||t||"button",type:"button",actions:a}:void 0),document:d,renderContext:p,onDiagnostic:f,onActionDispatch:s})},"data-kubuild-node":l,...u,children:g})};import{useEffect as po,useMemo as Oi,useState as dt}from"react";import{icons as Mi,Loader2 as Vi}from"lucide-react";function st(t){return t?t.replace(/[-_](\w)/g,(e,n)=>n.toUpperCase()).replace(/^\w/,e=>e.toUpperCase()):""}function ao(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 so(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 lo(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 yo,jsx as H,jsxs as ge}from"react/jsx-runtime";var Bi={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},Li={fontSize:"12px",color:"#64748b"},_i={fontSize:"12px",color:"#dc2626"},Hi=[];function _t(t){let e=te();e&&t?.name&&e.registerField(t);let n=t?.name,{defaultValue:i,required:o,disabled:r,rules:a,validateOn:c}=t||{};return po(()=>{if(!(!e||!n))return e.registerField({name:n,defaultValue:i,required:o,disabled:r,rules:a||[],validateOn:c})},[e,n,i,o,r,a,c]),e}function Lt(t,e,n,i,o,r){!t.actions||t.actions.length===0||_({node:{id:t.nodeId||o,type:e,actions:t.actions},trigger:n,document:t.document,context:t.renderContext,formContext:i,extraContext:{fieldName:o,fieldValue:r},onDiagnostic:t.onDiagnostic,onActionDispatch:t.onActionDispatch})}function Ht({id:t,helperText:e,error:n}){return!e&&!n?null:ge(yo,{children:[e?H("span",{style:Li,"data-kubuild-helper-text":!0,children:e}):null,n?H("span",{id:t?`${t}-error`:void 0,role:"alert",style:_i,"data-kubuild-field-error":!0,children:n}):null]})}var fo=({id:t,name:e,defaultSelected:n,required:i,disabled:o,orientation:r="vertical",helperText:a,ariaLabel:c,style:d,onClick:p,dataKubuildNode:f,children:s})=>{let l=_t(e?{name:e,defaultValue:n||void 0,required:i,disabled:o,rules:Hi}:null),u=Oi(()=>e?{name:e,required:i,disabled:o}:null,[e,i,o]),g=l&&e&&l.touched[e]?l.errors[e]:void 0,b={...d,...r==="horizontal"?{flexDirection:"row",flexWrap:"wrap"}:{}};return H(it.Provider,{value:u,children:ge("div",{id:t,role:"radiogroup","aria-label":c,"aria-required":i?!0:void 0,"aria-disabled":o?!0:void 0,"aria-invalid":g?!0:void 0,"aria-orientation":r,style:b,onClick:p,"data-kubuild-node":f,"data-field":e,children:[s,H(Ht,{id:t,helperText:a,error:g})]})})},co={sm:{width:28,height:16},md:{width:36,height:20},lg:{width:44,height:24}},mo=t=>{let{id:e,name:n,label:i="",value:o,defaultChecked:r=!1,switchSize:a="md",required:c,disabled:d,helperText:p,ariaLabel:f,rules:s,validateOn:l,style:u,onClick:g,dataKubuildNode:b,isEditable:h,onNodePropChange:v}=t,x=o!==void 0&&o!==""?o:!0,y=_t(n?{name:n,defaultValue:r?x:!1,required:c,disabled:d,rules:s||[],validateOn:l}:null),[m,S]=dt(r),R=!!(y&&n),k=R?y.values[n]:void 0,C=R?k!==void 0?k===x||k===!0:r:m,w=R&&y.touched[n]?y.errors[n]:void 0,T=D=>{let M=D.target.checked?x:!1;R?y.setFieldValue(n,M):S(D.target.checked),Lt(t,"switch","change",y,n||e||"switch",M)},P=()=>{R&&y.setFieldTouched(n,!0),Lt(t,"switch","blur",y,n||e||"switch",C?x:!1)},I=co[a]||co.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:d?.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",...u,cursor:d?"not-allowed":u?.cursor},onClick:g,"data-kubuild-node":b,children:[H("input",{type:"checkbox",role:"switch",name:n,value:typeof x=="string"?x:void 0,checked:C,"aria-checked":C,"aria-label":f,"aria-invalid":w?!0:void 0,onChange:T,onBlur:P,required:c,disabled:d,style:Bi,"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})}),h?H(Y,{as:"span",value:i,isEditable:h,nodeId:b||"",onChange:(D,M)=>v?.(b||"","label",D,M)}):H("span",{children:i})]}),H(Ht,{id:e,helperText:p,error:w})]})};function qi(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function zi(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 go=t=>{let{id:e,name:n,label:i="",accept:o,maxFileSize:r,multiple:a=!1,showPreview:c=!0,required:d,disabled:p,helperText:f,ariaLabel:s,rules:l,validateOn:u,style:g,onClick:b,mode:h,dataKubuildNode:v,isEditable:x,onNodePropChange:y}=t,m=_t(n?{name:n,required:d,disabled:p,rules:l||[],validateOn:u}:null),[S,R]=dt([]),[k,C]=dt(void 0),w=!!(m&&n),T=e?`${e}-input`:void 0,P=w&&m.touched[n]?m.errors[n]:void 0,I=k||P,N=A=>{let D=Array.from(A.target.files||[]),{accepted:M,rejected:ne}=zi(D,r),ie=ne.length>0?`${ne.map(He=>`"${He.name}"`).join(", ")} exceed${ne.length===1?"s":""} the ${r} MB limit`:void 0;C(ie),R(M);let le=a?M:M[0]??null;w&&(m.setFieldValue(n,le),m.setFieldTouched(n,!0,!ie),ie&&m.setFieldError(n,ie)),Lt(t,"file-upload","change",m,n||e||"file-upload",le)},O=w?m.values[n]:void 0;return po(()=>{w&&O==null&&R([])},[w,O]),ge("div",{id:e,style:g,onClick:b,"data-kubuild-node":v,children:[x?H(Y,{as:"span",value:i,isEditable:x,nodeId:v||"",onChange:(A,D)=>y?.(v||"","label",A,D)}):i?H("label",{htmlFor:T,children:i}):null,H("input",{id:T,type:"file",name:n,accept:o&&o!=="*/*"?o:void 0,multiple:a,required:d,disabled:p,"aria-label":s,"aria-invalid":I?!0:void 0,"aria-errormessage":I&&e?`${e}-error`:void 0,onChange:N,tabIndex:h==="editor"?-1:void 0,style:h==="editor"?{pointerEvents:"none"}:void 0,"data-field":n}),c&&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," (",qi(A.size),")"]},`${A.name}-${A.size}`))}):null,H(Ht,{id:e,helperText:f,error:I})]})},ji="@keyframes kubuild-spin{to{transform:rotate(360deg)}}";function uo(t){if(!t)return null;let e=Mi;return e[st(t)]||e[t]||null}var bo=({id:t,label:e,loadingText:n,showSpinner:i=!0,autoDisableOnSubmit:o=!0,buttonType:r,variant:a,disabled:c,prefixIcon:d,suffixIcon:p,ariaLabel:f,title:s,style:l,onClick:u,node:g,document:b,renderContext:h,onDiagnostic:v,onActionDispatch:x,dataKubuildNode:y,isEditable:m,onNodePropChange:S})=>{let R=te(),[k,C]=dt(!1),w=k||r==="submit"&&R?.isSubmitting===!0,T=!!c||o&&w,P=async A=>{if(!T){C(!0);try{await Vt({event:A,buttonType:r,disabled:T,formRuntime:R,onClick:u,node:g,document:b,renderContext:h,onDiagnostic:v,onActionDispatch:x})}finally{C(!1)}}},I=uo(d),N=uo(p),O=w&&n?n:e;return ge("button",{id:t,type:r,disabled:T,"aria-disabled":T?!0:void 0,"aria-busy":w?!0:void 0,"aria-label":f,title:s,tabIndex:T?-1:0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"8px",...l},onClick:T?void 0:P,"data-kubuild-node":y,"data-variant":a,"data-state":w?"submitting":"idle",children:[w&&i?ge(yo,{children:[H("style",{children:ji}),H(Vi,{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,m&&!w?H(Y,{as:"span",value:e,isEditable:m,nodeId:y||"",onChange:(A,D)=>S?.(y||"","label",A,D)}):H("span",{children:O}),!w&&N?H(N,{size:16,"aria-hidden":!0}):null]})};import qt from"react";import{ARTBOARD_REFERENCE_NODE_TYPE as Ui}from"@kubuild/schema";import{jsx as oe,jsxs as zt}from"react/jsx-runtime";function ho(t){let{node:e,domId:n,styles:i,resolvedProps:o,props:r,childrenElements:a,handleClick:c,context:d,mode:p,isModalOpen:f}=t,s=o.modalId||r.modalId||e.id,l=String(s).trim(),u=d?.modalManager||ae,g=p==="editor"&&d?.artboardSurface==="component";switch(e.type){case"modal":{if(!f&&p==="runtime")return oe(qt.Fragment,{});let b=o.backdrop!==!1&&r.backdrop!==!1,h=o.closeOnBackdrop!==!1&&r.closeOnBackdrop!==!1,v=o.showCloseButton!==!1&&r.showCloseButton!==!1,x=o.title??r.title,y=x!==void 0?String(x):void 0,m=o.size||r.size||"md",S=m==="sm"?"400px":m==="lg"?"768px":m==="fullscreen"?"100%":"560px",R=m==="fullscreen"?"100%":"auto";return oe("div",{id:`${n}-overlay`,"data-kubuild-overlay":l,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",alignItems:"flex-start",justifyContent:"center",padding:m==="fullscreen"?"0":"16px"}:{position:p==="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:m==="fullscreen"?"stretch":"center",justifyContent:"center",zIndex:9999,padding:m==="fullscreen"?"0":"16px"},onClick:k=>{k.target===k.currentTarget&&h&&p==="runtime"&&u.closeModal(l)},children:zt("div",{id:n,style:{...i,position:"relative",boxSizing:"border-box",maxWidth:S,height:R,width:"100%"},onClick:c,"data-kubuild-node":e.id,role:"dialog","aria-modal":"true","aria-label":typeof y=="string"?y:"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:k=>{k.stopPropagation(),u.closeModal(l)},children:"\u2715"}),y&&oe("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(y)}),a]})})}case"drawer":{if(!f&&p==="runtime")return oe(qt.Fragment,{});let b=o.placement||r.placement||"right",h=o.backdrop!==!1&&r.backdrop!==!1,v=o.closeOnBackdrop!==!1&&r.closeOnBackdrop!==!1,x=o.showCloseButton!==!1&&r.showCloseButton!==!1,y=o.title??r.title,m=y!==void 0?String(y):void 0,S=b==="top"||b==="bottom";return oe("div",{id:`${n}-overlay`,"data-kubuild-overlay":l,"data-kubuild-isolated":g?"true":void 0,style:g?{position:"relative",display:"flex",justifyContent:b==="left"?"flex-start":b==="right"?"flex-end":"center",alignItems:"flex-start",padding:"16px"}:{position:p==="editor"?"absolute":"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:h?"rgba(15, 23, 42, 0.5)":"transparent",backdropFilter:h?"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:R=>{R.target===R.currentTarget&&v&&p==="runtime"&&u.closeModal(l)},children:zt("div",{id:n,style:{...i,position:"relative",boxSizing:"border-box",height:g||S?"auto":"100%",...g?{minHeight:"240px"}:{},width:S?"100%":i.width||"320px",maxHeight:g?"none":S?"80vh":"100%",overflowY:"auto"},onClick:c,"data-kubuild-node":e.id,role:"region","aria-label":typeof m=="string"?m:"Drawer",children:[x&&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:R=>{R.stopPropagation(),u.closeModal(l)},children:"\u2715"}),m&&oe("div",{style:{fontWeight:600,fontSize:"18px",marginBottom:"16px",color:"#0f172a"},children:String(m)}),a]})})}case"collapsible":return oe("div",{id:n,style:{...i,display:(p==="editor"?!0:!!f)?i.display||"block":"none"},onClick:c,"data-kubuild-node":e.id,"data-kubuild-collapsible":l,children:a});case Ui:{if(p==="runtime")return oe(qt.Fragment,{});let b=typeof r.artboardId=="string"?r.artboardId:void 0,h=(typeof r.label=="string"&&r.label.trim().length>0?r.label:b)||"artboard";return zt("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:c,"data-kubuild-node":e.id,"data-kubuild-artboard-reference":b,title:`Opens artboard "${h}" \u2014 edit it on its own canvas surface`,children:[oe("span",{"aria-hidden":"true",children:"\u29C9"}),oe("span",{children:`Opens: ${h}`})]})}default:return null}}import{isVariableBinding as xo}from"@kubuild/schema";import{jsx as Me}from"react/jsx-runtime";var U=t=>typeof t=="string"?t:void 0;function vo(t){let{node:e,domId:n,styles:i,resolvedProps:o,props:r,context:a,mode:c,document:d,onDiagnostic:p,onActionDispatch:f,handleClick:s,onNodePropChange:l,childrenElements:u,selectedNodeId:g}=t,b=e.id===g,h=c==="editor"&&b&&!xo(r.label),v=e.formConfig?.rules||o.rules||r.rules||[],x=o.validateOn||r.validateOn,y=o.required===!0,m=o.disabled===!0,S={actions:e.actions,nodeId:e.id,document:d,renderContext:a,onDiagnostic:p,onActionDispatch:f};switch(e.type){case"switch":{let R=U(o.switchSize);return Me(mo,{id:n,name:U(o.name),label:String(o.label??"Switch"),value:o.value!==void 0?String(o.value):void 0,defaultChecked:o.defaultChecked===!0,switchSize:R==="sm"||R==="lg"?R:"md",required:y,disabled:m,helperText:U(o.helperText),ariaLabel:U(o.ariaLabel),rules:v,validateOn:x,style:i,onClick:s,dataKubuildNode:e.id,isEditable:h,onNodePropChange:l,...S})}case"file-upload":{let R=typeof o.maxFileSize=="number"?o.maxFileSize:void 0;return Me(go,{id:n,name:U(o.name),label:String(o.label??""),accept:U(o.accept),maxFileSize:R,multiple:o.multiple===!0,showPreview:o.showPreview!==!1,required:y,disabled:m,helperText:U(o.helperText),ariaLabel:U(o.ariaLabel),rules:v,validateOn:x,style:i,onClick:s,mode:c,dataKubuildNode:e.id,isEditable:h,onNodePropChange:l,...S})}case"radio-group":{let R=U(o.defaultSelected),k=e.children?.find(C=>C.props?.defaultChecked===!0&&typeof C.props?.value=="string")?.props?.value;return Me(fo,{id:n,name:U(o.name),defaultSelected:R||k,required:y,disabled:m,orientation:o.orientation==="horizontal"?"horizontal":"vertical",helperText:U(o.helperText),ariaLabel:U(o.ariaLabel),style:i,onClick:s,dataKubuildNode:e.id,children:u})}case"radio-item":return Me(at,{id:n,name:U(o.name),label:String(o.label??"Radio"),value:o.value!==void 0?String(o.value):"option",defaultChecked:o.defaultChecked===!0,required:y,disabled:m,rules:v,validateOn:x,style:i,onClick:s,dataKubuildNode:e.id,isEditable:h,onNodePropChange:l,...S});case"button-submit":{let R=o.buttonType??r.buttonType,k=R==="reset"||R==="button"?R:"submit",C=String(o.label??o.text??"Submit");return Me(bo,{id:n,label:C,loadingText:U(o.loadingText),showSpinner:o.showSpinner!==!1,autoDisableOnSubmit:o.autoDisableOnSubmit!==!1,buttonType:c==="editor"?"button":k,variant:U(o.variant),disabled:m,prefixIcon:U(o.prefixIcon),suffixIcon:U(o.suffixIcon),ariaLabel:U(o.ariaLabel),title:U(o.title),style:i,onClick:m?void 0:s,node:e,document:d,renderContext:a,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,isEditable:h&&!xo(r.text),onNodePropChange:l})}default:return null}}import{useEffect as ko,useRef as Ro,useState as Co}from"react";function lt(t,e){let n=t.resolvedProps[e];return n!==void 0?n:t.props[e]}function L(t,e,n=""){let i=lt(t,e);return i==null||typeof i=="object"?n:String(i)}function Z(t,e,n){let i=lt(t,e),o=typeof i=="number"?i:typeof i=="string"&&i.trim()!==""?Number(i):NaN;return Number.isFinite(o)?o:n}function be(t,e,n){let i=lt(t,e);return typeof i=="boolean"?i:i==="true"?!0:i==="false"?!1:n}function ye(t){let e=lt(t,"ariaLabel");return typeof e=="string"&&e.trim()!==""?e:void 0}function ct(t,e){return e?t.id===e?!0:(t.children??[]).some(n=>ct(n,e)):!1}function ut(t,e){return e?(t.children??[]).findIndex(n=>ct(n,e)):-1}import{jsx as Ce,jsxs as wo}from"react/jsx-runtime";function Wt(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 ue=t=>String(t).padStart(2,"0");function So(t,e){let n=Wt(t);return e==="mm:ss"?`${ue(Math.floor(n.totalSeconds/60))}:${ue(n.seconds)}`:e==="d h m s"?`${n.days}d ${ue(n.hours)}h ${ue(n.minutes)}m ${ue(n.seconds)}s`:`${ue(Math.floor(n.totalSeconds/3600))}:${ue(n.minutes)}:${ue(n.seconds)}`}function jt(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 a of n.formatToParts(new Date(t)))a.type!=="literal"&&(i[a.type]=Number(a.value));let o=Date.UTC(i.year,i.month-1,i.day,i.hour===24?0:i.hour,i.minute,i.second),r=t-(t%1e3+1e3)%1e3;return o-r}var Wi=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?)?$/,Ki=/(?:Z|[+-]\d{2}:?\d{2})$/i;function pt(t,e="UTC"){let n=(t||"").trim();if(!n)return null;if(Ki.test(n)){let l=Date.parse(n);return Number.isFinite(l)?l:null}let i=Wi.exec(n);if(!i)return null;let[,o,r,a,c="0",d="0",p="0"]=i,f=Date.UTC(Number(o),Number(r)-1,Number(a),Number(c),Number(d),Number(p));if(!Number.isFinite(f))return null;let s=e&&e.trim()?e.trim():"UTC";try{let l=f-jt(f,s);return f-jt(l,s)}catch{return f}}var Ut=new Map;function Gi(){Ut.clear()}function To(t){try{return typeof window>"u"?null:(t==="local"?window.localStorage:window.sessionStorage)??null}catch{return null}}function Eo(t){let{key:e,durationMs:n,now:i,storage:o}=t,r=f=>{if(!f)return null;try{let s=JSON.parse(f);if(typeof s.deadline=="number"&&Number.isFinite(s.deadline)&&s.duration===n)return s.deadline}catch{}return null},a;try{a=o?o.getItem(e):void 0}catch{a=void 0}let c=r(a)??r(Ut.get(e));if(c!==null)return c;let d=i+n,p=JSON.stringify({deadline:d,duration:n});Ut.set(e,p);try{o?.setItem(e,p)}catch{}return d}function $o(t){return _({node:t.node,trigger:"expire",document:t.document,context:t.context,onDiagnostic:t.onDiagnostic,onActionDispatch:t.onActionDispatch})}function Yi(t){return t==="mm:ss"||t==="d h m s"?t:"hh:mm:ss"}var Xi=({options:t})=>{let{node:e,domId:n,styles:i,mode:o,handleClick:r}=t,a=o==="editor",c=L(t,"mode","evergreen")==="fixed"?"fixed":"evergreen",d=Math.max(0,Z(t,"durationMinutes",15))*6e4,p=L(t,"targetDate"),f=L(t,"timezone","UTC"),s=Yi(L(t,"format","hh:mm:ss")),l=L(t,"label"),u=L(t,"expireBehavior","text"),g=L(t,"expiredText","This offer has expired."),b=L(t,"storage","session")==="local"?"local":"session",h=`kubuild:countdown:${L(t,"storageKey")||e.id}`,v=[L(t,"labelDays","Days"),L(t,"labelHours","Hours"),L(t,"labelMinutes","Minutes"),L(t,"labelSeconds","Seconds")],[x,y]=Co(()=>{if(c==="evergreen")return d;if(a){let I=pt(p,f);return I===null?null:Math.max(0,I-Date.now())}return null}),[m,S]=Co(!1),R=Ro(!1),k=Ro(t);k.current=t,ko(()=>{if(a){if(c==="evergreen")y(d);else{let I=pt(p,f);y(I===null?null:Math.max(0,I-Date.now()))}S(!1)}},[a,c,d,p,f]),ko(()=>{if(a)return;let I=c==="fixed"?pt(p,f):Eo({key:h,durationMs:d,now:Date.now(),storage:To(b)});if(I===null){y(null);return}let N,O=()=>{let A=Math.max(0,I-Date.now());return y(A),A<=0?(N!==void 0&&clearInterval(N),S(!0),R.current||(R.current=!0,$o(k.current)),!1):!0};return O()&&(N=setInterval(O,1e3)),()=>{N!==void 0&&clearInterval(N)}},[a,c,d,p,f,h,b]);let C=ye(t)||l||"Countdown";if(!a&&m&&u==="hide")return Ce("div",{id:n,style:{...i,display:"none"},"data-kubuild-node":e.id,"data-kubuild-countdown-state":"expired","aria-hidden":"true"});if(!a&&m&&u==="text")return Ce("div",{id:n,style:i,onClick:r,"data-kubuild-node":e.id,"data-kubuild-countdown-state":"expired",role:"status",children:g});let w=x===null?null:Wt(x),T=a?"frozen":m?"expired":"running",P;return s==="d h m s"?P=(w?[w.days,w.hours,w.minutes,w.seconds]:[null,null,null,null]).map((N,O)=>wo("span",{"data-kubuild-countdown-unit":["days","hours","minutes","seconds"][O],style:{display:"inline-flex",flexDirection:"column",alignItems:"center",minWidth:"2.5em"},children:[Ce("span",{children:N===null?"--":O===0?String(N):ue(N)}),v[O]?Ce("span",{style:{fontSize:"0.4em",fontWeight:500,opacity:.75,textTransform:"uppercase"},children:v[O]}):null]},O)):P=Ce("span",{"data-kubuild-countdown-value":"",children:x===null?s==="mm:ss"?"--:--":"--:--:--":So(x,s)}),wo("div",{id:n,style:i,onClick:r,"data-kubuild-node":e.id,"data-kubuild-countdown-state":T,role:"timer","aria-live":"off","aria-atomic":"true","aria-label":C,children:[l?Ce("span",{"data-kubuild-countdown-label":"",children:l}):null,P]})};function Io(t){return Ce(Xi,{options:t})}import{createContext as Ji,useCallback as Qi,useContext as Zi,useMemo as No,useState as Po}from"react";import{jsx as se,jsxs as ft}from"react/jsx-runtime";var Ao=Ji(null);function Fo(t,e,n){if(t.has(e)){let o=new Set(t);return o.delete(e),o}if(!n)return new Set([e]);let i=new Set(t);return i.add(e),i}var ea=["text","content","quote","label","title","caption"];function Do(t,e){let n=t.props??{};for(let i of ea){let o=n[i];if(typeof o=="string"&&o.trim()){e.push(o.trim());break}}for(let i of t.children??[])Do(i,e)}function Oo(t){let e=(t.children??[]).filter(n=>n.type==="accordion-item").map(n=>{let i=n.props?.title,o=[];for(let r of n.children??[])Do(r,o);return typeof i!="string"||!i.trim()||o.length===0?null:{"@type":"Question",name:i.trim(),acceptedAnswer:{"@type":"Answer",text:o.join(" ")}}}).filter(n=>n!==null);return e.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e}}function Mo(t){return JSON.stringify(t).replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/&/g,"\\u0026").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var ta=({options:t})=>{let{node:e,domId:n,styles:i,mode:o,handleClick:r,childrenElements:a}=t,c=be(t,"allowMultiple",!1),d=Math.trunc(Z(t,"defaultOpenIndex",0)),p=L(t,"icon","chevron"),f=be(t,"faqSchema",!1),[s,l]=Po(()=>d>=0?new Set([d]):new Set),u=Qi(v=>l(x=>Fo(x,v,c)),[c]),g=No(()=>(e.children??[]).map(v=>v.id),[e.children]),b=No(()=>({rootDomId:n,itemIds:g,openIndices:s,toggle:u,icon:p}),[n,g,s,u,p]),h=o==="runtime"&&f?Oo(e):null;return ft("div",{id:n,style:i,onClick:r,"data-kubuild-node":e.id,"data-kubuild-accordion":n,"aria-label":ye(t),children:[se(Ao.Provider,{value:b,children:a}),h?se("script",{type:"application/ld+json","data-kubuild-faq-schema":"",dangerouslySetInnerHTML:{__html:Mo(h)}}):null]})},na=({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"?ft("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"})})},oa=({options:t})=>{let{node:e,domId:n,styles:i,mode:o,handleClick:r,childrenElements:a,selectedNodeId:c}=t,d=Zi(Ao),[p,f]=Po(!1),s=d?d.itemIds.indexOf(e.id):-1,u=(d&&s>=0?d.openIndices.has(s):p)||o==="editor"&&ct(e,c),g=L(t,"title","Question"),b=`${n}-header`,h=`${n}-panel`,v=d?.rootDomId??n,x=()=>{d&&s>=0?d.toggle(s):f(m=>!m)},y=m=>{if(!["ArrowDown","ArrowUp","Home","End"].includes(m.key))return;let S=m.currentTarget.closest("[data-kubuild-accordion]");if(!S)return;let R=Array.from(S.querySelectorAll("button[data-kubuild-accordion-trigger]")).filter(T=>T.getAttribute("data-kubuild-accordion-trigger")===v),k=R.indexOf(m.currentTarget);if(k<0)return;m.preventDefault();let C=R.length,w=m.key==="Home"?0:m.key==="End"?C-1:m.key==="ArrowDown"?(k+1)%C:(k-1+C)%C;R[w]?.focus()};return ft("div",{id:n,style:i,onClick:r,"data-kubuild-node":e.id,"data-state":u?"open":"closed",children:[ft("button",{type:"button",id:b,"aria-expanded":u,"aria-controls":h,"data-kubuild-accordion-trigger":v,onClick:x,onKeyDown:y,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:g}),se(na,{icon:d?.icon??"chevron",open:u})]}),se("div",{id:h,role:"region","aria-labelledby":b,hidden:!u,style:{paddingBottom:"16px"},children:a})]})};function Vo(t){return se(ta,{options:t})}function Bo(t){return se(oa,{options:t})}import{createContext as ra,useContext as ia,useEffect as aa,useMemo as Lo,useRef as sa,useState as da}from"react";import{jsx as Ee,jsxs as ua}from"react/jsx-runtime";var _o=ra(null);function mt(t,e){return e<=0||!Number.isFinite(t)?0:Math.min(Math.max(Math.trunc(t),0),e-1)}var la=({options:t})=>{let{node:e,domId:n,styles:i,mode:o,handleClick:r,childrenElements:a,selectedNodeId:c,onNodePropChange:d}=t,p=Lo(()=>e.children??[],[e.children]),f=p.length,s=mt(Z(t,"activeIndex",0),f),[l,u]=da(s),g=sa([]);aa(()=>{u(s)},[s]);let b=o==="editor"?ut(e,c):-1,h=mt(b>=0?b:l,f),v=t.instanceSuffix??"",x=C=>`${n}-tab-${C}`,y=p.map(C=>`${C.id}${v}`),m=(C,w=!1)=>{let T=mt(C,f);u(T),w&&g.current[T]?.focus(),o==="editor"&&T!==s&&d?.(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(),m(T,!0))},R=y.join("|"),k=Lo(()=>({activeIndex:h,panelIds:R?R.split("|"):[],tabId:C=>`${n}-tab-${C}`}),[h,R,n]);return ua("div",{id:n,style:i,onClick:r,"data-kubuild-node":e.id,children:[Ee("div",{role:"tablist","aria-label":ye(t),"aria-orientation":"horizontal",style:{display:"flex",gap:"4px",borderBottom:"1px solid #e2e8f0",overflowX:"auto"},children:p.map((C,w)=>{let T=C.props?.label,P=typeof T=="string"&&T?T:`Tab ${w+1}`,I=w===h;return Ee("button",{ref:N=>{g.current[w]=N},type:"button",role:"tab",id:x(w),"aria-selected":I,"aria-controls":y[w],tabIndex:I?0:-1,"data-kubuild-tab-index":w,onClick:()=>m(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)})}),Ee(_o.Provider,{value:k,children:a})]})},ca=({options:t})=>{let{node:e,domId:n,styles:i,handleClick:o,childrenElements:r}=t,a=ia(_o),c=a?a.panelIds.indexOf(n):-1,d=!a||c===a.activeIndex;return Ee("div",{id:n,style:d?i:{...i,display:"none"},onClick:o,"data-kubuild-node":e.id,role:a?"tabpanel":void 0,"aria-labelledby":a&&c>=0?a.tabId(c):void 0,tabIndex:a?0:void 0,hidden:!d,children:r})};function Ho(t){return Ee(la,{options:t})}function qo(t){return Ee(ca,{options:t})}import pa,{useEffect as Uo,useRef as fa,useState as Kt}from"react";import{Fragment as ba,jsx as pe,jsxs as jo}from"react/jsx-runtime";var Wo=40;function gt(t,e,n,i){if(n<=0)return 0;let o=t+e;return i?(o%n+n)%n:Math.min(Math.max(o,0),n-1)}function Ko(t,e,n=Wo){let i=e-t;return Math.abs(i)<n?0:i<0?-1:1}function ma(){let[t,e]=Kt(!1);return Uo(()=>{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 zo=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}),ga=({options:t})=>{let{node:e,domId:n,styles:i,mode:o,handleClick:r,childrenElements:a,selectedNodeId:c}=t,d=o==="runtime",p=pa.Children.toArray(a),f=p.length,s=be(t,"autoplay",!1),l=Math.max(1e3,Z(t,"interval",5e3)),u=be(t,"loop",!0),g=be(t,"showDots",!0),b=be(t,"showArrows",!0),[h,v]=Kt(0),[x,y]=Kt(!1),m=ma(),S=fa(null),R=o==="editor"?ut(e,c):-1,k=gt(R>=0?R:h,0,f,!1),C=d&&s&&!m&&!x&&f>1;Uo(()=>{if(!C)return;let A=setInterval(()=>{v(D=>gt(D,1,f,!0))},l);return()=>clearInterval(A)},[C,l,f]);let w=A=>v(D=>gt(D,A,f,u)),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 D=S.current;S.current=null;let M=A.changedTouches[0]?.clientX;if(D===null||M===void 0)return;let ne=Ko(D,M);ne!==0&&w(-ne)},N=u||k>0,O=u||k<f-1;return jo("div",{id:n,style:{position:"relative",overflow:"hidden",...i},onClick:r,"data-kubuild-node":e.id,role:"region","aria-roledescription":"carousel","aria-label":ye(t)||"Carousel",tabIndex:0,onKeyDown:T,onMouseEnter:()=>y(!0),onMouseLeave:()=>y(!1),onFocus:()=>y(!0),onBlur:()=>y(!1),onTouchStart:P,onTouchEnd:I,children:[pe("div",{"data-kubuild-carousel-track":"","aria-live":C?"off":"polite",style:{display:"flex",width:"100%",transform:`translateX(-${k*100}%)`,transition:m?"none":"transform 400ms ease"},children:p.map((A,D)=>pe("div",{role:"group","aria-roledescription":"slide","aria-label":`${D+1} of ${f}`,"aria-hidden":d&&D!==k?!0:void 0,"data-kubuild-carousel-slide":D,style:{flex:"0 0 100%",minWidth:0,boxSizing:"border-box"},children:A},D))}),b&&f>1?jo(ba,{children:[pe("button",{type:"button","aria-label":"Previous slide",disabled:!N,onClick:()=>w(-1),style:{...zo("left"),opacity:N?1:.4},children:pe("span",{"aria-hidden":"true",children:"\u2039"})}),pe("button",{type:"button","aria-label":"Next slide",disabled:!O,onClick:()=>w(1),style:{...zo("right"),opacity:O?1:.4},children:pe("span",{"aria-hidden":"true",children:"\u203A"})})]}):null,g&&f>1?pe("div",{role:"group","aria-label":"Choose slide",style:{display:"flex",justifyContent:"center",gap:"8px",padding:"12px 0"},children:p.map((A,D)=>pe("button",{type:"button","aria-label":`Go to slide ${D+1}`,"aria-current":D===k?"true":void 0,"data-kubuild-carousel-dot":D,onClick:()=>v(D),style:{width:"8px",height:"8px",padding:0,borderRadius:"9999px",border:"none",background:D===k?"#0f172a":"#cbd5e1",cursor:"pointer"}},D))}):null]})};function Go(t){return pe(ga,{options:t})}import{jsx as we,jsxs as ha}from"react/jsx-runtime";var Xo=10;function bt(t,e){let n=Math.min(Math.max(Math.round(Number.isFinite(e)?e:5),1),Xo),i=Math.min(Math.max(Number.isFinite(t)?t:0,0),n);return{value:Math.round(i*2)/2,max:n}}function Jo(t,e){let n=bt(t,e);return Array.from({length:n.max},(i,o)=>n.value>=o+1?1:n.value>=o+.5?.5:0)}function Qo(t,e,n){let i=bt(e,n);return(t||"{value} out of {max}").replace(/\{value\}/g,String(i.value)).replace(/\{max\}/g,String(i.max))}var Yo="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",ya=({size:t,fill:e,color:n,emptyColor:i})=>ha("span",{"aria-hidden":"true","data-kubuild-rating-star":e,style:{position:"relative",display:"inline-block",width:t,height:t,lineHeight:0},children:[we("svg",{width:t,height:t,viewBox:"0 0 24 24",focusable:"false",children:we("polygon",{points:Yo,fill:i})}),e>0?we("span",{style:{position:"absolute",top:0,left:0,width:`${e*100}%`,height:"100%",overflow:"hidden"},children:we("svg",{width:t,height:t,viewBox:"0 0 24 24",focusable:"false",children:we("polygon",{points:Yo,fill:n})})}):null]});function Zo(t){let{node:e,domId:n,styles:i,handleClick:o}=t,{value:r,max:a}=bt(Z(t,"value",5),Z(t,"max",5)),c=Math.max(4,Z(t,"size",20)),d=L(t,"color","#f59e0b")||"#f59e0b",p=L(t,"emptyColor","#e2e8f0")||"#e2e8f0",f=Qo(L(t,"labelTemplate","{value} out of {max}"),r,a);return we("div",{id:n,style:{display:"inline-flex",alignItems:"center",gap:"2px",...i},onClick:o,"data-kubuild-node":e.id,role:"img","aria-label":f,children:Jo(r,a).map((s,l)=>we(ya,{size:c,fill:s,color:d,emptyColor:p},l))})}import{jsx as Ve,jsxs as xa}from"react/jsx-runtime";function er(t){let{node:e,domId:n,styles:i,handleClick:o}=t,r=L(t,"lineStyle","solid"),a=r==="dashed"||r==="dotted"?r:"solid",c=Math.max(0,Z(t,"thickness",1)),d=L(t,"color","#e2e8f0")||"#e2e8f0",p=L(t,"label").trim(),f=`${c}px ${a} ${d}`;return p?xa("div",{id:n,style:{display:"flex",alignItems:"center",gap:"12px",...i},onClick:o,"data-kubuild-node":e.id,role:"separator","aria-orientation":"horizontal","aria-label":p,children:[Ve("span",{"aria-hidden":"true",style:{flex:1,borderTop:f}}),Ve("span",{style:{fontSize:"12px",fontWeight:500,color:"#64748b",whiteSpace:"nowrap"},children:p}),Ve("span",{"aria-hidden":"true",style:{flex:1,borderTop:f}})]}):Ve("hr",{id:n,style:{height:0,border:"none",borderTop:f,...i},onClick:o,"data-kubuild-node":e.id})}function tr(t){let{node:e,domId:n,styles:i,handleClick:o,mode:r}=t;return Ve("div",{id:n,style:{width:"100%",...i,height:i.height??"24px",...r==="editor"?{outline:"1px dashed #cbd5e1",outlineOffset:"-1px"}:{}},onClick:o,"data-kubuild-node":e.id,"data-kubuild-spacer":"","aria-hidden":"true"})}function nr(t){switch(t.node.type){case"countdown":return Io(t);case"accordion":return Vo(t);case"accordion-item":return Bo(t);case"tabs":return Ho(t);case"tab-panel":return qo(t);case"carousel":return Go(t);case"rating":return Zo(t);case"divider":return er(t);case"spacer":return tr(t);default:return null}}import{jsx as E,jsxs as re}from"react/jsx-runtime";function Ea(t){let{node:e,document:n,definition:i,resolvedProps:o,styles:r,context:a,childrenElements:c,handleClick:d}=t;if(i?.renderer&&typeof i.renderer=="function"){let p=i.renderer;return typeof p=="function"&&!p.prototype?.isReactComponent?p({node:e,document:n,props:o,styles:r,context:a,children:c,onClick:d}):E(p,{node:e,document:n,props:o,styles:r,context:a,onClick:d,children:c})}return null}function $a(t){let{node:e,domId:n,styles:i,resolvedProps:o,props:r,handleClick:a,childrenElements:c}=t;switch(e.type){case"page":return E("div",{id:n,style:i,onClick:a,"data-kubuild-node":e.id,children:c});case"section":{let d=typeof o.ariaLabel=="string"?o.ariaLabel:typeof r.ariaLabel=="string"?r.ariaLabel:void 0;return E("section",{id:n,style:i,onClick:a,"data-kubuild-node":e.id,"aria-label":d,children:c})}case"container":return E("div",{id:n,style:i,onClick:a,"data-kubuild-node":e.id,children:c});case"columns":return E("div",{id:n,style:i,onClick:a,"data-kubuild-node":e.id,children:c});case"flex":case"grid":{let d=typeof o.ariaLabel=="string"?o.ariaLabel:typeof r.ariaLabel=="string"?r.ariaLabel:void 0;return E("div",{id:n,style:i,onClick:a,"data-kubuild-node":e.id,"aria-label":d,children:c})}default:return null}}function Ia(t){let{node:e,domId:n,styles:i,resolvedProps:o,props:r,mode:a,handleClick:c,onNodePropChange:d,childrenElements:p,selectedNodeId:f}=t,s=e.id===f;switch(e.type){case"heading":{let l=typeof o.level=="number"?o.level:1,u=`h${Math.min(Math.max(l,1),6)}`||"h1",g=String(o.text??o.content??r.text??r.content??""),b=a==="editor"&&s&&!z(r.text)&&!z(r.content);return E(Y,{as:u,id:n,style:i,value:g,isEditable:b,nodeId:e.id,onClick:c,onChange:(h,v)=>d?.(e.id,"text",h,v)})}case"text":{let l=String(o.text??o.content??r.text??r.content??""),u=typeof o.as=="string"?o.as:typeof r.as=="string"?r.as:typeof o.tag=="string"?o.tag:typeof r.tag=="string"?r.tag:r.content!==void 0&&r.text===void 0?"p":"span",g=a==="editor"&&s&&!z(r.text)&&!z(r.content);return E(Y,{as:u,id:n,style:i,value:l,isEditable:g,nodeId:e.id,onClick:c,onChange:(b,h)=>d?.(e.id,"text",b,h)})}case"paragraph":{let l=String(o.text??o.content??r.text??r.content??""),u=a==="editor"&&s&&!z(r.text)&&!z(r.content);return E(Y,{as:"p",id:n,style:i,value:l,isEditable:u,nodeId:e.id,onClick:c,onChange:(g,b)=>d?.(e.id,"text",g,b)})}case"link":{let l=String(o.text??o.label??o.content??r.text??r.label??r.content??""),u=typeof o.href=="string"?o.href:"#",g=typeof o.target=="string"?o.target:void 0,b=a==="editor"&&s&&!z(r.text)&&!z(r.label)&&!z(r.content),h=typeof o.rel=="string"?o.rel:g==="_blank"?"noopener noreferrer":void 0,v=a==="editor"?void 0:he(u,"#"),x=y=>{a==="editor"&&y.preventDefault(),c(y)};return b?E(Y,{as:"a",id:n,style:i,value:l,isEditable:b,nodeId:e.id,onClick:x,onChange:(y,m)=>d?.(e.id,"text",y,m),href:v,target:g,rel:h}):E("a",{id:n,style:i,href:v,target:g,rel:h,onClick:x,"data-kubuild-node":e.id,children:l})}case"blockquote":{let l=typeof o.text=="string"?o.text:typeof o.quote=="string"?o.quote:typeof r.text=="string"?r.text:typeof r.quote=="string"?r.quote:void 0,u=typeof o.cite=="string"?o.cite:typeof r.cite=="string"?r.cite:void 0,g=a==="editor"&&s&&!z(r.quote)&&!z(r.text),b={borderLeft:"4px solid #cbd5e1",paddingLeft:"1rem",margin:"1rem 0",fontStyle:"italic",color:"#475569",...i};return re("blockquote",{id:n,style:b,onClick:c,"data-kubuild-node":e.id,cite:u,children:[l!==void 0?g?E(Y,{as:"p",value:l,isEditable:g,nodeId:e.id,onChange:(h,v)=>d?.(e.id,"text",h,v)}):E("p",{children:l}):null,p,u&&re("cite",{style:{display:"block",fontStyle:"normal",fontSize:"0.875rem",marginTop:"0.5rem",color:"#64748b"},children:["\u2014 ",u]})]})}case"badge":{let l=String(o.text??o.label??r.text??r.label??""),u=typeof o.variant=="string"?o.variant:typeof r.variant=="string"?r.variant:"default",g=a==="editor"&&s&&!z(r.text)&&!z(r.label);return E("span",{id:n,style:i,onClick:c,"data-kubuild-node":e.id,"data-variant":u,"data-badge-variant":u,children:g?E(Y,{as:"span",value:l,isEditable:g,nodeId:e.id,onChange:(b,h)=>d?.(e.id,"text",b,h)}):l})}case"code-block":{let l=String(o.code??r.code??""),u=typeof o.language=="string"?o.language:typeof r.language=="string"?r.language:"plaintext";return a==="editor"?E("pre",{id:n,style:i,onClick:c,"data-kubuild-node":e.id,"data-language":u,children:E("code",{className:`language-${u}`,contentEditable:!0,suppressContentEditableWarning:!0,onBlur:g=>d?.(e.id,"code",g.currentTarget.textContent??"",!0),children:l})}):E("pre",{id:n,style:i,onClick:c,"data-kubuild-node":e.id,"data-language":u,children:E("code",{className:`language-${u}`,children:l})})}default:return null}}function Na(t){let{node:e,domId:n,styles:i,resolvedProps:o,props:r,mode:a,handleClick:c,onNodePropChange:d,childrenElements:p,selectedNodeId:f}=t,s=e.id===f;switch(e.type){case"list":{let u=(o.tag||r.tag)==="ol"||o.ordered===!0||r.ordered===!0?"ol":"ul",g=typeof o.listStyleType=="string"?o.listStyleType:typeof o.listStyle=="string"?o.listStyle:typeof r.listStyleType=="string"?r.listStyleType:typeof r.listStyle=="string"?r.listStyle:void 0,b=g==="custom-icon"||g==="none"?"none":g,h={...i,...b?{listStyleType:b}:{}};return E(u,{id:n,style:h,onClick:c,"data-kubuild-node":e.id,"data-list-style":g,children:p})}case"list-item":{let l=o.text!==void 0?String(o.text):r.text!==void 0?String(r.text):void 0,u=a==="editor"&&s&&!z(r.text)&&l!==void 0;return re("li",{id:n,style:i,onClick:c,"data-kubuild-node":e.id,children:[l!==void 0&&(u?E(Y,{as:"span",value:l,isEditable:u,nodeId:e.id,onChange:(g,b)=>d?.(e.id,"text",g,b)}):l),p]})}default:return null}}function Pa(t){let{node:e,domId:n,styles:i,resolvedProps:o,props:r,mode:a,handleClick:c,onNodePropChange:d,childrenElements:p,selectedNodeId:f}=t,s=e.id===f;switch(e.type){case"table":{let l=typeof o.cellPadding=="number"?o.cellPadding:void 0,u=typeof o.cellSpacing=="number"?o.cellSpacing:void 0,g=typeof o.border=="number"?o.border:void 0,b=o.striped===!0||r.striped===!0,h=o.bordered===!0||r.bordered===!0,v=o.hover===!0||r.hover===!0,x=o.compact===!0||r.compact===!0;return E("table",{id:n,style:i,cellPadding:l,cellSpacing:u,border:g,onClick:c,"data-kubuild-node":e.id,"data-striped":b?"true":void 0,"data-bordered":h?"true":void 0,"data-hover":v?"true":void 0,"data-compact":x?"true":void 0,children:E("tbody",{children:p})})}case"table-row":return E("tr",{id:n,style:i,onClick:c,"data-kubuild-node":e.id,children:p});case"table-cell":{let u=o.tag==="th"||r.tag==="th"||o.isHeader===!0||r.isHeader===!0||o.cellType==="header"||r.cellType==="header"||o.type==="th"||r.type==="th"?"th":"td",g=typeof o.colSpan=="number"?o.colSpan:typeof r.colSpan=="number"?r.colSpan:void 0,b=typeof o.rowSpan=="number"?o.rowSpan:typeof r.rowSpan=="number"?r.rowSpan:void 0,h=o.text!==void 0?String(o.text):r.text!==void 0?String(r.text):void 0,v=a==="editor"&&s&&!z(r.text)&&h!==void 0;return re(u,{id:n,colSpan:g,rowSpan:b,style:i,onClick:c,"data-kubuild-node":e.id,children:[h!==void 0&&(v?E(Y,{as:"span",value:h,isEditable:v,nodeId:e.id,onChange:(x,y)=>d?.(e.id,"text",x,y)}):h),p]})}default:return null}}function Gt(t){let n=`<svg xmlns="http://www.w3.org/2000/svg" width="600" height="400" viewBox="0 0 600 400" fill="none">
|
|
125
125
|
<rect width="100%" height="100%" fill="#f8fafc"/>
|
|
126
126
|
<rect x="2" y="2" width="596" height="396" fill="none" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="6 6" rx="8"/>
|
|
127
127
|
<g fill="#94a3b8" transform="translate(268, 140)">
|
|
@@ -132,104 +132,104 @@ ${r}</style>`}):""}var Kn=({id:t,style:e,onClick:n,dataKubuildNode:i,html:r,role
|
|
|
132
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">
|
|
133
133
|
${(t||"Image").replace(/[<>&"]/g,"")}
|
|
134
134
|
</text>
|
|
135
|
-
</svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(n)}`}function va(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,context:a,mode:d,handleClick:c,definition:u}=t;switch(e.type){case"image":{let f=q(o.src)?o.src:void 0,s=r.src!==void 0?r.src:o.src!==void 0?o.src:o.asset,l;da(s)?l=Ct(a?.assetProvider,s.assetId)||s.fallbackUrl:typeof s=="string"&&s.trim().length>0&&(l=Ct(a?.assetProvider,s)||s),(!l||!l.trim())&&(f&&typeof f.fallback=="string"&&f.fallback.trim().length>0?l=f.fallback:d==="editor"&&(l=f?Kt(`{${f.key}}`):typeof u?.defaultProps?.src=="string"&&u.defaultProps.src.trim().length>0?u.defaultProps.src:Kt("Image")));let p=typeof r.alt=="string"?r.alt:typeof o.alt=="string"?o.alt:"",g=typeof r.fit=="string"?r.fit:void 0,b=r.loading==="eager"?"eager":"lazy",h=typeof r.width=="number"?r.width:void 0,x=typeof r.height=="number"?r.height:void 0,v=l?he(l,""):void 0;!v&&d==="editor"&&(v=Kt(f?`{${f.key}}`:"Image"));let y=i?.objectFit,m={...i,...g&&y===void 0?{objectFit:g}:{}};return E("img",{id:n,src:v,alt:p,role:p===""?"presentation":void 0,loading:b,width:h,height:x,style:m,onClick:c,"data-kubuild-node":e.id})}case"video":{let f=r.src??r.url??o.src??o.url,s=typeof f=="string"?f:void 0,l=typeof r.poster=="string"?r.poster:void 0,p=r.controls!==!1,g=r.autoplay===!0,b=r.loop===!0,h=r.muted===!0,x=r.playsInline!==!1,v=r.aspectRatio,y={position:"relative",width:i.width||"100%",...v?{aspectRatio:ro(v)}:{},...i},m=s?no(s):null,S=s?oo(s):null;if(m){let C=`https://www.youtube.com/embed/${m}?autoplay=${g?1:0}&loop=${b?1:0}&mute=${h?1:0}&controls=${p?1:0}`,w=he(C,"");return E("div",{id:n,"data-video-provider":"youtube",style:y,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=${g?1:0}&loop=${b?1:0}&muted=${h?1:0}`,w=he(C,"");return E("div",{id:n,"data-video-provider":"vimeo",style:y,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=s?he(s,""):void 0,R=l?he(l,""):void 0;return E("video",{id:n,src:k,poster:R,controls:p,autoPlay:g,loop:b,muted:h,playsInline:x,style:y,onClick:c,"data-kubuild-node":e.id})}case"icon":{let f=typeof r.name=="string"?r.name:"Square",s=typeof r.size=="number"?r.size:24,l=typeof r.color=="string"?r.color:"currentColor",p=typeof r.strokeWidth=="number"?r.strokeWidth:2,g=st(f),b=Zo[g]||Zo[f]||la;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:s,color:l,strokeWidth:p})})}case"html-embed":{let f=typeof r.html=="string"?r.html:"",l=r.sanitize!==!1?fa(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(Kn,{id:n,style:i,html:l,onClick:c,dataKubuildNode:e.id})}default:return null}}function xa(t){let{node:e,domId:n,styles:i,resolvedProps:r,props:o,context:a,mode:d,document:c,onDiagnostic:u,onActionDispatch:f,handleClick:s,onNodePropChange:l,childrenElements:p,selectedNodeId:g}=t,b=e.id===g;switch(e.type){case"button":{let h=r.label??r.text??r.content??o.label??o.text??o.content??"Button",x=r.activeLabel??o.activeLabel,v=String(t.isModalOpen&&x?x:h),y=typeof r.href=="string"?r.href:typeof o.href=="string"?o.href:void 0,m=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&&!q(o.label)&&!q(o.text),T=typeof r.rel=="string"?r.rel:typeof o.rel=="string"?o.rel:m==="_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,a?.actionRegistry||Te(I)){let N=Ke(a?.actionRegistry,I);P["data-kubuild-action-resolved"]=N?"true":"false"}}if(y&&!R){let I=d==="editor"?void 0:he(y,"#");return E("a",{id:n,href:I,target:m,rel:T,tabIndex:0,style:i,onClick:s,"data-kubuild-node":e.id,"aria-label":C,...P,children:v})}return w?E(Y,{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:v,isEditable:w,nodeId:e.id,onClick:R?void 0:s,onChange:(I,N)=>l?.(e.id,"label",I,N),...P}):E(to,{id:n,buttonType:d==="editor"?"button":k,disabled:R,ariaLabel:C,style:i,onClick:R?void 0:s,actions:e.actions,node:e,document:c,renderContext:a,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id,actionAttrs:P,children:v})}case"form":{let h=typeof r.action=="string"?r.action:void 0,x=typeof r.method=="string"?r.method:"POST",v=typeof r.target=="string"?r.target:void 0,y=typeof r.autoComplete=="string"?r.autoComplete:void 0,m=typeof r.name=="string"?r.name:void 0,S=e.formConfig,k={formId:S?.formId||o.formId||m||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(Hn,{formId:k.formId,formConfig:k,initialValues:k.initialValues,actions:e.actions,nodeId:e.id,document:c,onDiagnostic:u,children:E(Xn,{id:n,name:m,action:h&&d!=="editor"?he(h,""):void 0,method:x,target:v,autoComplete:y,style:i,onClick:s,mode:d,dataKubuildNode:e.id,children:p})})}case"input":{let h=typeof r.name=="string"?r.name:void 0,x=typeof r.type=="string"?r.type:"text",v=typeof r.placeholder=="string"?r.placeholder:void 0,y=r.defaultValue!==void 0?r.defaultValue:void 0,m=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(Jn,{id:n,name:h,type:x,placeholder:v,defaultValue:y,required:m,disabled:S,readOnly:k,rules:R,validateOn:C,transform:w,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:c,renderContext:a,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id})}case"textarea":{let h=typeof r.name=="string"?r.name:void 0,x=typeof r.placeholder=="string"?r.placeholder:void 0,v=r.defaultValue!==void 0?r.defaultValue:void 0,y=typeof r.rows=="number"?r.rows:4,m=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(Qn,{id:n,name:h,placeholder:x,defaultValue:v,rows:y,required:m,disabled:S,readOnly:k,rules:R,validateOn:C,transform:w,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:c,renderContext:a,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id})}case"select":{let h=typeof r.name=="string"?r.name:void 0,x=typeof r.placeholder=="string"?r.placeholder:void 0,v=r.defaultValue!==void 0?r.defaultValue:void 0,y=r.required===!0,m=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(Zn,{id:n,name:h,placeholder:x,defaultValue:v,required:y,disabled:m,rules:S,validateOn:k,optionsList:R,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:c,renderContext:a,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id})}case"checkbox":{let h=typeof r.name=="string"?r.name:void 0,x=String(r.label??"Checkbox"),v=r.value!==void 0?String(r.value):"yes",y=r.defaultChecked===!0,m=r.required===!0,S=r.disabled===!0,k=e.formConfig?.rules||r.rules||o.rules||[],R=r.validateOn||o.validateOn,C=d==="editor"&&b&&!q(o.label);return E(eo,{id:n,name:h,label:x,value:v,defaultChecked:y,required:m,disabled:S,rules:k,validateOn:R,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:c,renderContext:a,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id,isEditable:C,onNodePropChange:l})}case"radio":{let h=typeof r.name=="string"?r.name:void 0,x=String(r.label??"Radio"),v=r.value!==void 0?String(r.value):"option",y=r.defaultChecked===!0,m=r.required===!0,S=r.disabled===!0,k=r.rules||o.rules||[],R=r.validateOn||o.validateOn,C=d==="editor"&&b&&!q(o.label);return E(at,{id:n,name:h,label:x,value:v,defaultChecked:y,required:m,disabled:S,rules:k,validateOn:R,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:c,renderContext:a,onDiagnostic:u,onActionDispatch:f,dataKubuildNode:e.id,isEditable:C,onNodePropChange:l})}default:return null}}function ka(t){let{node:e,domId:n,styles:i,props:r,context:o,mode:a,handleClick:d,onDiagnostic:c,renderChildNode:u}=t;if(e.type!=="collection")return null;let f=typeof r.sourceKey=="string"?r.sourceKey:void 0,s=typeof r.itemAlias=="string"&&r.itemAlias.length>0?r.itemAlias:"item",l=`${s}Index`,p=f?pa({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),a==="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(ua,{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 g=e.children||[];return g.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&&a==="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,h)=>{let x={...o,variables:{...o.variables,[s]:b,[l]:h}},v=`__iter_${h}`;return E(sa.Fragment,{children:g.map(y=>u(y,v,x))},`collection-item-${h}`)})})}function Ra(t){let{node:e,domId:n,styles:i,handleClick:r,mode:o,childrenElements:a}=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(ca,{size:16}),re("span",{children:["Unknown Component: ",e.type]}),re("span",{style:{fontSize:"12px",color:"#94a3b8"},children:["(",e.id,")"]})]}),a]}):E("div",{id:n,style:i,onClick:r,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:a})}function er(t){let e=ma(t);if(e)return e;let n=ga(t);if(n)return n;let i=ba(t);if(i)return i;let r=ya(t);if(r)return r;let o=ha(t);if(o)return o;let a=va(t);if(a)return a;let d=xa(t);if(d)return d;let c=bo(t);if(c)return c;let u=ka(t);if(u)return u;let f=mo(t);if(f)return f;let s=Qo(t);return s||Ra(t)}import{Fragment as $a,jsx as J,jsxs as Se}from"react/jsx-runtime";function wa(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}=cn(t,e);return o}}catch{}return e.isModalOpen(t)}function Le({node:t,document:e,registry:n,context:i,viewport:r="desktop",mode:o="runtime",responsive:a="viewport",onNodeClick:d,onDiagnostic:c,onActionDispatch:u,onNodePropChange:f,selectedNodeId:s,instanceSuffix:l=""}){let p=i||ke,g=a==="css"?Ne(t.styles):Et(t.styles,r),b=t.props||{},h=n.get(t.type),x=l?`${t.id}${l}`:t.id,{props:v,diagnostics:y}=In(t,h,p);y.forEach(M=>{c?.(M),p?.onDiagnostic?.(M)}),Yn(t,{document:e,context:p,onDiagnostic:c,onActionDispatch:u,mode:o});let m=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&&(xn({action:b.action,nodeId:t.id,document:e,context:p,onDiagnostic:c,allowBuiltinHandlers:o!=="editor"}),u&&tr(b.action)&&u(b.action.type,vn(p,b.action.payload),t.id))},S=t.children?.map(M=>J(Le,{node:M,document:e,registry:n,context:p,viewport:r,mode:o,responsive:a,onNodeClick:d,onDiagnostic:c,onActionDispatch:u,onNodePropChange:f,selectedNodeId:s,instanceSuffix:l},`${M.id}${l}`)),k=(M,ne="",ie=p)=>J(Le,{node:M,document:e,registry:n,context:ie,viewport:r,mode:o,responsive:a,onNodeClick:d,onDiagnostic:c,onActionDispatch:u,onNodePropChange:f,selectedNodeId:s,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=wa(R,C),P=w?T:!!b.defaultOpen,I={...g},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=er({node:t,document:e,registry:n,context:p,viewport:r,mode:o,styles:I,props:b,resolvedProps:v,definition:h,domId:x,childrenElements:S,handleClick:m,onNodeClick:d,onDiagnostic:c,onActionDispatch:u,onNodePropChange:f,selectedNodeId:s,instanceSuffix:l,isModalOpen:P,renderChildNode:k})}catch(M){o==="editor"?A=Se("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:[Se("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[J(nr,{size:14,"aria-hidden":"true"}),Se("span",{children:["Component Render Error: <",t.type,">"]})]}),Se("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 D=o==="editor"&&b.action&&!b.disabled?Ta(b.action,p):null;return J(nt,{nodeId:t.id,componentType:t.type,mode:o,onDiagnostic:c,children:D!==null?Se($a,{children:[A,J(Sa,{nodeId:t.id,actionType:D})]}):A})}function Sa({nodeId:t,actionType:e}){return Se("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(nr,{size:12,"aria-hidden":"true"}),"Unknown action: ",e]})}function Ta(t,e){return tr(t)?Ke(e?.actionRegistry,t.type)?null:t.type:"invalid"}function Gt(t,e,n){return t||(e==="runtime"&&n===void 0?"css":"viewport")}var Ea=({document:t,registry:e=Ca(),context:n,viewport:i,mode:r="runtime",responsive:o,className:a,showToastContainer:d=!0,onNodeClick:c,onDiagnostic:u,onActionDispatch:f,onNodePropChange:s,selectedNodeId:l})=>{if(!t||!t.document)return J("div",{className:a,children:"Empty Document"});let p=i??"desktop",g=Gt(o,r,i),b=ve.useMemo(()=>g==="css"?Ye(t):"",[t,g]),h=ve.useMemo(()=>Cn(t),[t]),x=ve.useMemo(()=>Qe(t),[t]),v=ve.useMemo(()=>et(Ze(t,n)),[t,n]),y=ve.useMemo(()=>t?.tracking?JSON.stringify(t.tracking):null,[t?.tracking]);return ve.useEffect(()=>{if(r==="runtime"&&t?.tracking&&y)return An(t.tracking)},[r,y]),J(gn,{value:n,children:Se("div",{className:`kubuild-canvas-root ${a||""}`,style:v,children:[b?J("style",{"data-kubuild-responsive-styles":!0,children:b}):null,h?J("style",{"data-kubuild-state-styles":!0,children:h}):null,x?J("style",{"data-kubuild-animation-styles":!0,children:x}):null,J(Le,{node:t.document,document:t,registry:e,context:n,viewport:p,mode:r,responsive:g,onNodeClick:c,onDiagnostic:u,onActionDispatch:f,onNodePropChange:s,selectedNodeId:l}),d&&J(Mn,{})]})})},yt=ve.memo(Ea);import or from"react";import Ia from"react-dom";import{createDefaultComponentRegistry as Na}from"@kubuild/components";import{Fragment as ar,jsx as _e,jsxs as ir}from"react/jsx-runtime";function rr(t){let e=t.document?.document;if(e)return e.children?.[0]??void 0}function Pa(t,e){return t.filter(n=>n.artboardType==="component"&&!!n.triggerId&&!!e[n.triggerId]&&!!rr(n))}var Yt=({artboards:t,registry:e,context:n=ke,viewport:i,mode:r="runtime",responsive:o,modalManager:a,container:d,onDiagnostic:c,onActionDispatch:u})=>{let f=a||ae,{modals:s}=un(f),l=or.useMemo(()=>e||Na(),[e]),p=or.useMemo(()=>(t??n.componentArtboards??[]).filter(y=>y.artboardType==="component"),[t,n.componentArtboards]);if(r==="editor")return null;let g=i??"desktop",b=Gt(o,"runtime",i),h=Pa(p,s);if(h.length===0)return null;let x=d!==void 0?d:typeof globalThis.document<"u"?globalThis.document.body:null;return x?_e(ar,{children:h.map(v=>{let y=rr(v);if(!y)return null;let m=b==="css"?Ye(v.document):"";return Ia.createPortal(ir("div",{"data-kubuild-artboard-portal":v.id,style:{pointerEvents:"auto",...et(Ze(v.document,n))},children:[m?_e("style",{"data-kubuild-responsive-styles":!0,children:m}):null,_e(Le,{node:y,document:v.document,registry:l,context:n,viewport:g,mode:"runtime",responsive:b,onDiagnostic:c,onActionDispatch:u})]},v.id),x,v.id)})}):null},tu=({componentArtboards:t,modalManager:e,portalContainer:n,...i})=>ir(ar,{children:[_e(yt,{...i}),_e(Yt,{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 Xt,useState as Aa}from"react";import{BREAKPOINTS as Jt}from"@kubuild/schema";import{Fragment as Ma,jsx as fe,jsxs as He}from"react/jsx-runtime";var sr=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}}),Fa=Object.freeze({mobile:Jt.mobile.maxWidth,tablet:Jt.tablet.maxWidth,desktop:Jt.desktop.minWidth});function cu(t,e){let n={...Fa,...e};return t<=n.mobile?"mobile":t<=n.tablet?"tablet":"desktop"}function dr(t,e){let n=sr[t]||sr.desktop,i=e?.[t];return{...n,...i}}function Da(t,e,n){let i=dr(t,e),r=n??i.scale??1,o=d=>typeof d=="number"?`${d}px`:d,a={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&&(a.transform=`scale(${r})`,a.transformOrigin="top center"),a}var Oa=({document:t,viewport:e="desktop",onViewportChange:n,viewportConfigs:i,breakpoints:r,registry:o,context:a,mode:d="runtime",showChrome:c=!1,chromeTitle:u,editorOverlay:f,scale:s,className:l,style:p,canvasClassName:g,canvasStyle:b,onNodeClick:h,onDiagnostic:x,onActionDispatch:v,componentArtboards:y})=>{let[m,S]=Aa(null),k=y??a?.componentArtboards,R=Xt(()=>dr(e,i),[e,i]),C=Xt(()=>Da(e,i,s),[e,i,s]),w=Xt(()=>({...C,...b,position:"relative",boxSizing:"border-box"}),[C,b]);return He("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&&He("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:[He("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[fe("span",{style:{fontWeight:600},children:u||t.metadata?.title||"Preview"}),fe("span",{"data-testid":"viewport-badge",style:{fontSize:"10px",padding:"2px 6px",borderRadius:"4px",backgroundColor:"#334155",color:"#94a3b8",textTransform:"uppercase",fontWeight:700},children:e}),fe("span",{style:{fontSize:"11px",color:"#64748b"},children:R.label||`${R.width} \xD7 ${R.height||"auto"}`})]}),n&&fe("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 fe("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)})})]}),He("div",{"data-kubuild-preview-canvas":!0,"data-viewport":e,className:`kubuild-preview-canvas ${g||""}`,style:w,children:[fe(yt,{document:t,registry:o,context:a,viewport:e,mode:d,onNodeClick:h,onDiagnostic:x,onActionDispatch:v}),k&&k.length>0&&He(Ma,{children:[fe("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"}}),m&&fe(Yt,{artboards:k,registry:o,context:a,viewport:e,mode:d,container:m,onDiagnostic:x,onActionDispatch:v})]}),f&&fe("div",{"data-kubuild-preview-overlay":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10},children:f})]})]})},uu=Oa;import{CURRENT_SCHEMA_VERSION as Va,BREAKPOINT_MEDIA_QUERIES as Ba,BREAKPOINT_ORDER as La}from"@kubuild/schema";function W(t){return t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function F(t){return W(t)}function _a(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 Ha(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||{},a=t.children||[],c=n.includeNodeClasses!==!1?`kb-node-${t.id}`:"",u=(...s)=>s.filter(Boolean).join(" "),f=o.id?` id="${F(o.id)}"`:"";switch(t.type){case"page":{let s=n.rootTag||"main",l=u("kb-page",c),p=a.map(g=>Q(g,e+1,n)).join(`
|
|
136
|
-
`);return
|
|
137
|
-
${
|
|
138
|
-
${i}</${s}>`:`${i}<${s} class="${l}"${f}></${s}>`}case"section":{let s=
|
|
139
|
-
`);return
|
|
140
|
-
${
|
|
141
|
-
${i}</section>`:`${i}<section class="${l}"${f}${s}></section>`}case"container":{let s=
|
|
135
|
+
</svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(n)}`}function Aa(t){let{node:e,domId:n,styles:i,resolvedProps:o,props:r,context:a,mode:c,handleClick:d,definition:p}=t;switch(e.type){case"image":{let f=z(r.src)?r.src:void 0,s=o.src!==void 0?o.src:r.src!==void 0?r.src:r.asset,l;ka(s)?l=Ct(a?.assetProvider,s.assetId)||s.fallbackUrl:typeof s=="string"&&s.trim().length>0&&(l=Ct(a?.assetProvider,s)||s),(!l||!l.trim())&&(f&&typeof f.fallback=="string"&&f.fallback.trim().length>0?l=f.fallback:c==="editor"&&(l=f?Gt(`{${f.key}}`):typeof p?.defaultProps?.src=="string"&&p.defaultProps.src.trim().length>0?p.defaultProps.src:Gt("Image")));let u=typeof o.alt=="string"?o.alt:typeof r.alt=="string"?r.alt:"",g=typeof o.fit=="string"?o.fit:void 0,b=o.loading==="eager"?"eager":"lazy",h=typeof o.width=="number"?o.width:void 0,v=typeof o.height=="number"?o.height:void 0,x=l?he(l,""):void 0;!x&&c==="editor"&&(x=Gt(f?`{${f.key}}`:"Image"));let y=i?.objectFit,m={...i,...g&&y===void 0?{objectFit:g}:{}};return E("img",{id:n,src:x,alt:u,role:u===""?"presentation":void 0,loading:b,width:h,height:v,style:m,onClick:d,"data-kubuild-node":e.id})}case"video":{let f=o.src??o.url??r.src??r.url,s=typeof f=="string"?f:void 0,l=typeof o.poster=="string"?o.poster:void 0,u=o.controls!==!1,g=o.autoplay===!0,b=o.loop===!0,h=o.muted===!0,v=o.playsInline!==!1,x=o.aspectRatio,y={position:"relative",width:i.width||"100%",...x?{aspectRatio:lo(x)}:{},...i},m=s?ao(s):null,S=s?so(s):null;if(m){let C=`https://www.youtube.com/embed/${m}?autoplay=${g?1:0}&loop=${b?1:0}&mute=${h?1:0}&controls=${u?1:0}`,w=he(C,"");return E("div",{id:n,"data-video-provider":"youtube",style:y,onClick:d,"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=${g?1:0}&loop=${b?1:0}&muted=${h?1:0}`,w=he(C,"");return E("div",{id:n,"data-video-provider":"vimeo",style:y,onClick:d,"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 R=s?he(s,""):void 0,k=l?he(l,""):void 0;return E("video",{id:n,src:R,poster:k,controls:u,autoPlay:g,loop:b,muted:h,playsInline:v,style:y,onClick:d,"data-kubuild-node":e.id})}case"icon":{let f=typeof o.name=="string"?o.name:"Square",s=typeof o.size=="number"?o.size:24,l=typeof o.color=="string"?o.color:"currentColor",u=typeof o.strokeWidth=="number"?o.strokeWidth:2,g=st(f),b=or[g]||or[f]||Ra;return E("span",{id:n,"data-icon-name":f,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",...i},onClick:d,"data-kubuild-node":e.id,children:E(b,{size:s,color:l,strokeWidth:u})})}case"html-embed":{let f=typeof o.html=="string"?o.html:"",l=o.sanitize!==!1?Ta(f):f;return!l.trim()&&c==="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:d,"data-kubuild-node":e.id,children:E("span",{children:"</> HTML Embed \u2014 Click to configure HTML code in Inspector Panel"})}):E(Jn,{id:n,style:i,html:l,onClick:d,dataKubuildNode:e.id})}default:return null}}function Fa(t){let{node:e,domId:n,styles:i,resolvedProps:o,props:r,context:a,mode:c,document:d,onDiagnostic:p,onActionDispatch:f,handleClick:s,onNodePropChange:l,childrenElements:u,selectedNodeId:g}=t,b=e.id===g;switch(e.type){case"button":{let h=o.label??o.text??o.content??r.label??r.text??r.content??"Button",v=o.activeLabel??r.activeLabel,x=String(t.isModalOpen&&v?v:h),y=typeof o.href=="string"?o.href:typeof r.href=="string"?r.href:void 0,m=typeof o.target=="string"?o.target:typeof r.target=="string"?r.target:void 0,S=o.buttonType??o.type??r.buttonType??r.type,R=typeof S=="string"&&["submit","reset","button"].includes(S)?S:"button",k=o.disabled===!0||r.disabled===!0,C=typeof o.ariaLabel=="string"?o.ariaLabel:void 0,w=c==="editor"&&b&&r.isEditable!==!1&&!z(r.label)&&!z(r.text),T=typeof o.rel=="string"?o.rel:typeof r.rel=="string"?r.rel:m==="_blank"?"noopener noreferrer":void 0,P={};if(r.action&&!k){let I=typeof r.action=="object"?r.action.type:r.action;if(P["data-kubuild-action"]=I,a?.actionRegistry||Te(I)){let N=We(a?.actionRegistry,I);P["data-kubuild-action-resolved"]=N?"true":"false"}}if(y&&!k){let I=c==="editor"?void 0:he(y,"#");return E("a",{id:n,href:I,target:m,rel:T,tabIndex:0,style:i,onClick:s,"data-kubuild-node":e.id,"aria-label":C,...P,children:x})}return w?E(Y,{as:"button",id:n,type:c==="editor"?"button":R,disabled:k,"aria-disabled":k?!0:void 0,"aria-label":C,tabIndex:k?-1:0,style:i,value:x,isEditable:w,nodeId:e.id,onClick:k?void 0:s,onChange:(I,N)=>l?.(e.id,"label",I,N),...P}):E(io,{id:n,buttonType:c==="editor"?"button":R,disabled:k,ariaLabel:C,style:i,onClick:k?void 0:s,actions:e.actions,node:e,document:d,renderContext:a,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,actionAttrs:P,children:x})}case"form":{let h=typeof o.action=="string"?o.action:void 0,v=typeof o.method=="string"?o.method:"POST",x=typeof o.target=="string"?o.target:void 0,y=typeof o.autoComplete=="string"?o.autoComplete:void 0,m=typeof o.name=="string"?o.name:void 0,S=e.formConfig,R={formId:S?.formId||r.formId||m||e.id,resetOnSubmit:o.resetOnSubmit===!0||(S?.resetOnSubmit??!1),scrollToFirstError:o.scrollToFirstError!==!1&&(S?.scrollToFirstError??!0),validateOn:o.validateOn||S?.validateOn||"blur",initialValues:o.initialValues||S?.initialValues};return E(Un,{formId:R.formId,formConfig:R,initialValues:R.initialValues,actions:e.actions,nodeId:e.id,document:d,onDiagnostic:p,children:E(eo,{id:n,name:m,action:h&&c!=="editor"?he(h,""):void 0,method:v,target:x,autoComplete:y,style:i,onClick:s,mode:c,dataKubuildNode:e.id,children:u})})}case"input":{let h=typeof o.name=="string"?o.name:void 0,v=typeof o.type=="string"?o.type:"text",x=typeof o.placeholder=="string"?o.placeholder:void 0,y=o.defaultValue!==void 0?o.defaultValue:void 0,m=o.required===!0,S=o.disabled===!0,R=o.readOnly===!0,k=e.formConfig?.rules||o.rules||r.rules||[],C=o.validateOn||r.validateOn,w=o.transform||r.transform;return E(to,{id:n,name:h,type:v,placeholder:x,defaultValue:y,required:m,disabled:S,readOnly:R,rules:k,validateOn:C,transform:w,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:d,renderContext:a,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"textarea":{let h=typeof o.name=="string"?o.name:void 0,v=typeof o.placeholder=="string"?o.placeholder:void 0,x=o.defaultValue!==void 0?o.defaultValue:void 0,y=typeof o.rows=="number"?o.rows:4,m=o.required===!0,S=o.disabled===!0,R=o.readOnly===!0,k=e.formConfig?.rules||o.rules||r.rules||[],C=o.validateOn||r.validateOn,w=o.transform||r.transform;return E(no,{id:n,name:h,placeholder:v,defaultValue:x,rows:y,required:m,disabled:S,readOnly:R,rules:k,validateOn:C,transform:w,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:d,renderContext:a,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"select":{let h=typeof o.name=="string"?o.name:void 0,v=typeof o.placeholder=="string"?o.placeholder:void 0,x=o.defaultValue!==void 0?o.defaultValue:void 0,y=o.required===!0,m=o.disabled===!0,S=e.formConfig?.rules||o.rules||r.rules||[],R=o.validateOn||r.validateOn,k=[],C=o.options??r.options;if(Array.isArray(C))k=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)&&(k=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(oo,{id:n,name:h,placeholder:v,defaultValue:x,required:y,disabled:m,rules:S,validateOn:R,optionsList:k,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:d,renderContext:a,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id})}case"checkbox":{let h=typeof o.name=="string"?o.name:void 0,v=String(o.label??"Checkbox"),x=o.value!==void 0?String(o.value):"yes",y=o.defaultChecked===!0,m=o.required===!0,S=o.disabled===!0,R=e.formConfig?.rules||o.rules||r.rules||[],k=o.validateOn||r.validateOn,C=c==="editor"&&b&&!z(r.label);return E(ro,{id:n,name:h,label:v,value:x,defaultChecked:y,required:m,disabled:S,rules:R,validateOn:k,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:d,renderContext:a,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,isEditable:C,onNodePropChange:l})}case"radio":{let h=typeof o.name=="string"?o.name:void 0,v=String(o.label??"Radio"),x=o.value!==void 0?String(o.value):"option",y=o.defaultChecked===!0,m=o.required===!0,S=o.disabled===!0,R=o.rules||r.rules||[],k=o.validateOn||r.validateOn,C=c==="editor"&&b&&!z(r.label);return E(at,{id:n,name:h,label:v,value:x,defaultChecked:y,required:m,disabled:S,rules:R,validateOn:k,style:i,onClick:s,actions:e.actions,nodeId:e.id,document:d,renderContext:a,onDiagnostic:p,onActionDispatch:f,dataKubuildNode:e.id,isEditable:C,onNodePropChange:l})}default:return null}}function Da(t){let{node:e,domId:n,styles:i,props:o,context:r,mode:a,handleClick:c,onDiagnostic:d,renderChildNode:p}=t;if(e.type!=="collection")return null;let f=typeof o.sourceKey=="string"?o.sourceKey:void 0,s=typeof o.itemAlias=="string"&&o.itemAlias.length>0?o.itemAlias:"item",l=`${s}Index`,u=f?Sa({key:f},r).value:void 0;if(!Array.isArray(u)){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 ${u===void 0?"nothing":typeof u}.`};return d?.(b),r?.onDiagnostic?.(b),a==="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:c,children:[re("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[E(wa,{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:u===void 0?"nothing":typeof u}),"."]})]}):E("div",{id:n,"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?E("div",{id:n,style:i,onClick:c,"data-kubuild-node":e.id,"data-kubuild-collection-empty":u.length===0?"true":void 0,children:u.length===0&&a==="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:c,"data-kubuild-node":e.id,children:u.map((b,h)=>{let v={...r,variables:{...r.variables,[s]:b,[l]:h}},x=`__iter_${h}`;return E(va.Fragment,{children:g.map(y=>p(y,x,v))},`collection-item-${h}`)})})}function Oa(t){let{node:e,domId:n,styles:i,handleClick:o,mode:r,childrenElements:a}=t;return r==="editor"?re("div",{id:n,style:{...i,border:"2px dashed #e2e8f0",padding:"16px",backgroundColor:"#f8fafc"},onClick:o,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:[re("div",{style:{display:"flex",alignItems:"center",gap:"8px",color:"#64748b"},children:[E(Ca,{size:16}),re("span",{children:["Unknown Component: ",e.type]}),re("span",{style:{fontSize:"12px",color:"#94a3b8"},children:["(",e.id,")"]})]}),a]}):E("div",{id:n,style:i,onClick:o,"data-kubuild-node":e.id,"data-kubuild-unknown":e.type,children:a})}function rr(t){let e=Ea(t);if(e)return e;let n=$a(t);if(n)return n;let i=Ia(t);if(i)return i;let o=Na(t);if(o)return o;let r=Pa(t);if(r)return r;let a=Aa(t);if(a)return a;let c=Fa(t);if(c)return c;let d=vo(t);if(d)return d;let p=Da(t);if(p)return p;let f=ho(t);if(f)return f;let s=nr(t);return s||Oa(t)}import{resolveTrackingConfig as Va}from"@kubuild/core";import{Fragment as qa,jsx as J,jsxs as Se}from"react/jsx-runtime";function Ba(t,e){if(!t)return!1;try{let n=xe,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:r}=un(t,e);return r}}catch{}return e.isModalOpen(t)}function Be({node:t,document:e,registry:n,context:i,viewport:o="desktop",mode:r="runtime",responsive:a="viewport",onNodeClick:c,onDiagnostic:d,onActionDispatch:p,onNodePropChange:f,selectedNodeId:s,instanceSuffix:l=""}){let u=i||ke,g=a==="css"?Ne(t.styles):Et(t.styles,o),b=t.props||{},h=n.get(t.type),v=l?`${t.id}${l}`:t.id,{props:x,diagnostics:y}=Nn(t,h,u);y.forEach(M=>{d?.(M),u?.onDiagnostic?.(M)}),Zn(t,{document:e,context:u,onDiagnostic:d,onActionDispatch:p,mode:r});let m=async M=>{M.stopPropagation(),c&&c(t.id,M),t.actions&&t.actions.length>0&&!b.disabled&&await _({node:t,trigger:"click",document:e,context:u,onDiagnostic:d,onActionDispatch:p}),b.action&&!b.disabled&&(kn({action:b.action,nodeId:t.id,document:e,context:u,onDiagnostic:d,allowBuiltinHandlers:r!=="editor"}),p&&ir(b.action)&&p(b.action.type,vn(u,b.action.payload),t.id))},S=t.children?.map(M=>J(Be,{node:M,document:e,registry:n,context:u,viewport:o,mode:r,responsive:a,onNodeClick:c,onDiagnostic:d,onActionDispatch:p,onNodePropChange:f,selectedNodeId:s,instanceSuffix:l},`${M.id}${l}`)),R=(M,ne="",ie=u)=>J(Be,{node:M,document:e,registry:n,context:ie,viewport:o,mode:r,responsive:a,onNodeClick:c,onDiagnostic:d,onActionDispatch:p,onNodePropChange:f,selectedNodeId:s,instanceSuffix:`${l}${ne}`},`${M.id}${l}${ne}`),k=b.modalId||b.modalNodeId||b.targetModalId,C=u?.modalManager||ae,w=k?C.hasState(k):!1,T=Ba(k,C),P=w?T:!!b.defaultOpen,I={...g},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=rr({node:t,document:e,registry:n,context:u,viewport:o,mode:r,styles:I,props:b,resolvedProps:x,definition:h,domId:v,childrenElements:S,handleClick:m,onNodeClick:c,onDiagnostic:d,onActionDispatch:p,onNodePropChange:f,selectedNodeId:s,instanceSuffix:l,isModalOpen:P,renderChildNode:R})}catch(M){r==="editor"?A=Se("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:[Se("div",{style:{fontWeight:600,marginBottom:"4px",display:"flex",alignItems:"center",gap:"6px"},children:[J(ar,{size:14,"aria-hidden":"true"}),Se("span",{children:["Component Render Error: <",t.type,">"]})]}),Se("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 D=r==="editor"&&b.action&&!b.disabled?_a(b.action,u):null;return J(tt,{nodeId:t.id,componentType:t.type,mode:r,onDiagnostic:d,children:D!==null?Se(qa,{children:[A,J(La,{nodeId:t.id,actionType:D})]}):A})}function La({nodeId:t,actionType:e}){return Se("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(ar,{size:12,"aria-hidden":"true"}),"Unknown action: ",e]})}function _a(t,e){return ir(t)?We(e?.actionRegistry,t.type)?null:t.type:"invalid"}function Yt(t,e,n){return t||(e==="runtime"&&n===void 0?"css":"viewport")}var Ha=({document:t,registry:e=Ma(),context:n,viewport:i,mode:o="runtime",responsive:r,className:a,showToastContainer:c=!0,onNodeClick:d,onDiagnostic:p,onActionDispatch:f,onNodePropChange:s,selectedNodeId:l})=>{if(!t||!t.document)return J("div",{className:a,children:"Empty Document"});let u=i??"desktop",g=Yt(r,o,i),b=xe.useMemo(()=>g==="css"?Ge(t):"",[t,g]),h=xe.useMemo(()=>wn(t),[t]),v=xe.useMemo(()=>Je(t),[t]),x=xe.useMemo(()=>Ze(Qe(t,n)),[t,n]),y=t?.tracking??t?.metadata?.tracking,m=n?.tracking?.inheritedPixels,S=xe.useMemo(()=>!y&&!m?.length?null:JSON.stringify(Va(y,m)),[y,m]);return xe.useEffect(()=>{if(o==="runtime"&&S)return On(JSON.parse(S))},[o,S]),J(bn,{value:n,children:Se("div",{className:`kubuild-canvas-root ${a||""}`,style:x,children:[b?J("style",{"data-kubuild-responsive-styles":!0,children:b}):null,h?J("style",{"data-kubuild-state-styles":!0,children:h}):null,v?J("style",{"data-kubuild-animation-styles":!0,children:v}):null,J(Be,{node:t.document,document:t,registry:e,context:n,viewport:u,mode:o,responsive:g,onNodeClick:d,onDiagnostic:p,onActionDispatch:f,onNodePropChange:s,selectedNodeId:l}),c&&J(_n,{})]})})},yt=xe.memo(Ha);import sr from"react";import za from"react-dom";import{createDefaultComponentRegistry as ja}from"@kubuild/components";import{Fragment as cr,jsx as Le,jsxs as lr}from"react/jsx-runtime";function dr(t){let e=t.document?.document;if(e)return e.children?.[0]??void 0}function Ua(t,e){return t.filter(n=>n.artboardType==="component"&&!!n.triggerId&&!!e[n.triggerId]&&!!dr(n))}var Xt=({artboards:t,registry:e,context:n=ke,viewport:i,mode:o="runtime",responsive:r,modalManager:a,container:c,onDiagnostic:d,onActionDispatch:p})=>{let f=a||ae,{modals:s}=pn(f),l=sr.useMemo(()=>e||ja(),[e]),u=sr.useMemo(()=>(t??n.componentArtboards??[]).filter(y=>y.artboardType==="component"),[t,n.componentArtboards]);if(o==="editor")return null;let g=i??"desktop",b=Yt(r,"runtime",i),h=Ua(u,s);if(h.length===0)return null;let v=c!==void 0?c:typeof globalThis.document<"u"?globalThis.document.body:null;return v?Le(cr,{children:h.map(x=>{let y=dr(x);if(!y)return null;let m=b==="css"?Ge(x.document):"";return za.createPortal(lr("div",{"data-kubuild-artboard-portal":x.id,style:{pointerEvents:"auto",...Ze(Qe(x.document,n))},children:[m?Le("style",{"data-kubuild-responsive-styles":!0,children:m}):null,Le(Be,{node:y,document:x.document,registry:l,context:n,viewport:g,mode:"runtime",responsive:b,onDiagnostic:d,onActionDispatch:p})]},x.id),v,x.id)})}):null},yu=({componentArtboards:t,modalManager:e,portalContainer:n,...i})=>lr(cr,{children:[Le(yt,{...i}),Le(Xt,{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 Jt,useState as Wa}from"react";import{BREAKPOINTS as Qt}from"@kubuild/schema";import{Fragment as Xa,jsx as fe,jsxs as _e}from"react/jsx-runtime";var ur=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}}),Ka=Object.freeze({mobile:Qt.mobile.maxWidth,tablet:Qt.tablet.maxWidth,desktop:Qt.desktop.minWidth});function Tu(t,e){let n={...Ka,...e};return t<=n.mobile?"mobile":t<=n.tablet?"tablet":"desktop"}function pr(t,e){let n=ur[t]||ur.desktop,i=e?.[t];return{...n,...i}}function Ga(t,e,n){let i=pr(t,e),o=n??i.scale??1,r=c=>typeof c=="number"?`${c}px`:c,a={width:r(i.width),maxWidth:r(i.maxWidth),minWidth:r(i.minWidth),height:r(i.height),minHeight:r(i.minHeight),maxHeight:r(i.maxHeight),aspectRatio:i.aspectRatio,transition:"width 0.2s ease, max-width 0.2s ease, height 0.2s ease"};return o!==1&&(a.transform=`scale(${o})`,a.transformOrigin="top center"),a}var Ya=({document:t,viewport:e="desktop",onViewportChange:n,viewportConfigs:i,breakpoints:o,registry:r,context:a,mode:c="runtime",showChrome:d=!1,chromeTitle:p,editorOverlay:f,scale:s,className:l,style:u,canvasClassName:g,canvasStyle:b,onNodeClick:h,onDiagnostic:v,onActionDispatch:x,componentArtboards:y})=>{let[m,S]=Wa(null),R=y??a?.componentArtboards,k=Jt(()=>pr(e,i),[e,i]),C=Jt(()=>Ga(e,i,s),[e,i,s]),w=Jt(()=>({...C,...b,position:"relative",boxSizing:"border-box"}),[C,b]);return _e("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",...u},children:[d&&_e("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:[_e("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[fe("span",{style:{fontWeight:600},children:p||t.metadata?.title||"Preview"}),fe("span",{"data-testid":"viewport-badge",style:{fontSize:"10px",padding:"2px 6px",borderRadius:"4px",backgroundColor:"#334155",color:"#94a3b8",textTransform:"uppercase",fontWeight:700},children:e}),fe("span",{style:{fontSize:"11px",color:"#64748b"},children:k.label||`${k.width} \xD7 ${k.height||"auto"}`})]}),n&&fe("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 fe("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)})})]}),_e("div",{"data-kubuild-preview-canvas":!0,"data-viewport":e,className:`kubuild-preview-canvas ${g||""}`,style:w,children:[fe(yt,{document:t,registry:r,context:a,viewport:e,mode:c,onNodeClick:h,onDiagnostic:v,onActionDispatch:x}),R&&R.length>0&&_e(Xa,{children:[fe("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"}}),m&&fe(Xt,{artboards:R,registry:r,context:a,viewport:e,mode:c,container:m,onDiagnostic:v,onActionDispatch:x})]}),f&&fe("div",{"data-kubuild-preview-overlay":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:"none",zIndex:10},children:f})]})]})},Eu=Ya;import{CURRENT_SCHEMA_VERSION as Ja,BREAKPOINT_MEDIA_QUERIES as Qa,BREAKPOINT_ORDER as Za}from"@kubuild/schema";function W(t){return t==null?"":String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function F(t){return W(t)}function es(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 ts(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)),o=" ".repeat((e+1)*(n.indentSize??2)),r=t.props||{},a=t.children||[],d=n.includeNodeClasses!==!1?`kb-node-${t.id}`:"",p=(...s)=>s.filter(Boolean).join(" "),f=r.id?` id="${F(r.id)}"`:"";switch(t.type){case"page":{let s=n.rootTag||"main",l=p("kb-page",d),u=a.map(g=>Q(g,e+1,n)).join(`
|
|
136
|
+
`);return u?`${i}<${s} class="${l}"${f}>
|
|
137
|
+
${u}
|
|
138
|
+
${i}</${s}>`:`${i}<${s} class="${l}"${f}></${s}>`}case"section":{let s=r.ariaLabel?` aria-label="${F(r.ariaLabel)}"`:"",l=p("kb-section",d),u=a.map(g=>Q(g,e+1,n)).join(`
|
|
139
|
+
`);return u?`${i}<section class="${l}"${f}${s}>
|
|
140
|
+
${u}
|
|
141
|
+
${i}</section>`:`${i}<section class="${l}"${f}${s}></section>`}case"container":{let s=p("kb-container",d),l=a.map(u=>Q(u,e+1,n)).join(`
|
|
142
142
|
`);return l?`${i}<div class="${s}"${f}>
|
|
143
143
|
${l}
|
|
144
|
-
${i}</div>`:`${i}<div class="${s}"${f}></div>`}case"columns":{let s=
|
|
144
|
+
${i}</div>`:`${i}<div class="${s}"${f}></div>`}case"columns":{let s=p("kb-columns",d),l=a.map(u=>Q(u,e+1,n)).join(`
|
|
145
145
|
`);return l?`${i}<div class="${s}"${f}>
|
|
146
146
|
${l}
|
|
147
|
-
${i}</div>`:`${i}<div class="${s}"${f}></div>`}case"heading":{let s="h2";typeof
|
|
148
|
-
`);return`${i}<a class="${b}"${f}${s}${l}${
|
|
147
|
+
${i}</div>`:`${i}<div class="${s}"${f}></div>`}case"heading":{let s="h2";typeof r.level=="string"&&/^h[1-6]$/i.test(r.level)?s=r.level.toLowerCase():typeof r.level=="number"&&r.level>=1&&r.level<=6?s=`h${r.level}`:typeof r.tag=="string"&&/^h[1-6]$/i.test(r.tag)&&(s=r.tag.toLowerCase());let l=r.text??r.value??r.content??"Heading",u=p("kb-heading",d);return`${i}<${s} class="${u}"${f}>${W(l)}</${s}>`}case"paragraph":{let s=r.text??r.value??r.content??"",l=p("kb-paragraph",d);return`${i}<p class="${l}"${f}>${W(s)}</p>`}case"text":{let s=r.as||"p",l=r.text??r.value??r.content??"",u=p("kb-text",d);return`${i}<${s} class="${u}"${f}>${W(l)}</${s}>`}case"link":{let s=r.href?` href="${F(r.href)}"`:' href="#"',l=r.target?` target="${F(r.target)}"`:"",u=r.rel?` rel="${F(r.rel)}"`:l.includes("_blank")?' rel="noopener noreferrer"':"",g=r.text??r.label??r.value,b=p("kb-link",d);if(a.length>0){let h=a.map(v=>Q(v,e+1,n)).join(`
|
|
148
|
+
`);return`${i}<a class="${b}"${f}${s}${l}${u}>
|
|
149
149
|
${h}
|
|
150
|
-
${i}</a>`}return`${i}<a class="${b}"${f}${s}${l}${
|
|
150
|
+
${i}</a>`}return`${i}<a class="${b}"${f}${s}${l}${u}>${W(g??"Link")}</a>`}case"blockquote":{let s=r.cite?` cite="${F(r.cite)}"`:"",l=r.quote??r.text??r.value,u=r.author??r.citeAuthor,g=p("kb-blockquote",d);if(l||u){let b=l?`${o}<p>${W(l)}</p>`:"",h=u?`${o}<cite>${W(u)}</cite>`:"",v=[b,h].filter(Boolean).join(`
|
|
151
151
|
`);return`${i}<blockquote class="${g}"${f}${s}>
|
|
152
|
-
${
|
|
152
|
+
${v}
|
|
153
153
|
${i}</blockquote>`}if(a.length>0){let b=a.map(h=>Q(h,e+1,n)).join(`
|
|
154
154
|
`);return`${i}<blockquote class="${g}"${f}${s}>
|
|
155
155
|
${b}
|
|
156
|
-
${i}</blockquote>`}return`${i}<blockquote class="${g}"${f}${s}></blockquote>`}case"badge":{let s=
|
|
157
|
-
${
|
|
158
|
-
${i}</div>`;if(
|
|
159
|
-
${
|
|
160
|
-
${i}</div>`;let b=
|
|
161
|
-
${
|
|
162
|
-
${i}</div>`:`${i}<div class="${l}"${f}></div>`}case"button":{let s=
|
|
163
|
-
`);return g?`${i}<form class="${
|
|
156
|
+
${i}</blockquote>`}return`${i}<blockquote class="${g}"${f}${s}></blockquote>`}case"badge":{let s=r.text??r.label??r.value??"Badge",l=p("kb-badge",d);return`${i}<span class="${l}"${f}>${W(s)}</span>`}case"code-block":{let s=r.code??r.text??r.value??"",l=r.language||r.lang,u=l?` class="language-${F(l)}"`:"",g=p("kb-code-block",d);return`${i}<pre class="${g}"${f}><code${u}>${W(s)}</code></pre>`}case"divider":{let s=p("kb-divider",d),l=r.text??r.label;return l?`${i}<div class="${s}"${f} role="separator"><span>${W(l)}</span></div>`:`${i}<hr class="${s}"${f} />`}case"spacer":{let s=p("kb-spacer",d);return`${i}<div class="${s}"${f} aria-hidden="true"></div>`}case"image":{let s=r.src?` src="${F(r.src)}"`:' src=""',l=r.alt?` alt="${F(r.alt)}"`:' alt=""',u=r.loading?` loading="${F(r.loading)}"`:' loading="lazy"',g=p("kb-image",d);return`${i}<img class="${g}"${f}${s}${l}${u} />`}case"video":{let s=r.src||"",l=es(s),u=ts(s),g=p("kb-video",d);if(l)return`${i}<div class="kb-video-wrapper ${d}"${f}>
|
|
157
|
+
${o}<iframe src="https://www.youtube-nocookie.com/embed/${F(l)}" title="${F(r.title||"Video player")}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
|
158
|
+
${i}</div>`;if(u)return`${i}<div class="kb-video-wrapper ${d}"${f}>
|
|
159
|
+
${o}<iframe src="https://player.vimeo.com/video/${F(u)}" title="${F(r.title||"Video player")}" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
|
|
160
|
+
${i}</div>`;let b=r.poster?` poster="${F(r.poster)}"`:"",h=r.controls!==!1?" controls":"",v=r.autoplay?" autoplay":"",x=r.loop?" loop":"",y=r.muted?" muted":"",m=s?` src="${F(s)}"`:"";return`${i}<video class="${g}"${f}${m}${b}${h}${v}${x}${y}></video>`}case"icon":{let s=r.name||r.icon||"star",l=r.ariaLabel?` aria-label="${F(r.ariaLabel)}"`:' aria-hidden="true"',u=p("kb-icon",d);return`${i}<span class="${u}"${f}${l} data-icon="${F(s)}"></span>`}case"html-embed":{let s=r.html??r.content??"",l=p("kb-html-embed",d);return s?`${i}<div class="${l}"${f}>
|
|
161
|
+
${o}${s}
|
|
162
|
+
${i}</div>`:`${i}<div class="${l}"${f}></div>`}case"button":{let s=r.label??r.text??r.value??"Button",l=r.type?` type="${F(r.type)}"`:' type="button"',u=r.disabled?" disabled":"",g=p("kb-button",d);if(r.href){let b=` href="${F(r.href)}"`,h=r.target?` target="${F(r.target)}"`:"";return`${i}<a class="${g}"${f}${b}${h}>${W(s)}</a>`}return`${i}<button class="${g}"${f}${l}${u}>${W(s)}</button>`}case"form":{let s=r.action?` action="${F(r.action)}"`:"",l=r.method?` method="${F(r.method)}"`:' method="POST"',u=p("kb-form",d),g=a.map(b=>Q(b,e+1,n)).join(`
|
|
163
|
+
`);return g?`${i}<form class="${u}"${f}${s}${l}>
|
|
164
164
|
${g}
|
|
165
|
-
${i}</form>`:`${i}<form class="${
|
|
166
|
-
`);return
|
|
167
|
-
${
|
|
168
|
-
${i}</select>`:`${i}<select class="${g}"${f}${s}${l}${
|
|
169
|
-
`);return
|
|
170
|
-
${
|
|
171
|
-
${i}</${s}>`:`${i}<${s} class="${l}"${f}></${s}>`}case"list-item":{let s=
|
|
165
|
+
${i}</form>`:`${i}<form class="${u}"${f}${s}${l}></form>`}case"input":{let s=r.type?` type="${F(r.type)}"`:' type="text"',l=r.name?` name="${F(r.name)}"`:"",u=r.placeholder?` placeholder="${F(r.placeholder)}"`:"",g=r.value!==void 0?` value="${F(r.value)}"`:"",b=r.required?" required":"",h=r.disabled?" disabled":"",v=p("kb-input",d);return`${i}<input class="${v}"${f}${s}${l}${u}${g}${b}${h} />`}case"textarea":{let s=r.name?` name="${F(r.name)}"`:"",l=r.placeholder?` placeholder="${F(r.placeholder)}"`:"",u=r.rows?` rows="${F(r.rows)}"`:' rows="4"',g=r.value??r.defaultValue??"",b=r.required?" required":"",h=r.disabled?" disabled":"",v=p("kb-textarea",d);return`${i}<textarea class="${v}"${f}${s}${l}${u}${b}${h}>${W(g)}</textarea>`}case"select":{let s=r.name?` name="${F(r.name)}"`:"",l=r.required?" required":"",u=r.disabled?" disabled":"",g=p("kb-select",d),b=Array.isArray(r.options)?r.options:[],h=" ".repeat((e+1)*(n.indentSize??2)),v=b.map(x=>{let y=typeof x=="object"?x.value:x,m=typeof x=="object"?x.label:x,S=r.value===y||r.defaultValue===y?" selected":"";return`${h}<option value="${F(y)}"${S}>${W(m)}</option>`}).join(`
|
|
166
|
+
`);return v?`${i}<select class="${g}"${f}${s}${l}${u}>
|
|
167
|
+
${v}
|
|
168
|
+
${i}</select>`:`${i}<select class="${g}"${f}${s}${l}${u}></select>`}case"checkbox":{let s=r.name?` name="${F(r.name)}"`:"",l=r.checked||r.defaultChecked?" checked":"",u=r.label??r.text??"",g=p("kb-checkbox-label",d);return`${i}<label class="${g}"${f}><input type="checkbox"${s}${l} /><span>${W(u)}</span></label>`}case"radio":{let s=r.name?` name="${F(r.name)}"`:"",l=r.value?` value="${F(r.value)}"`:"",u=r.checked||r.defaultChecked?" checked":"",g=r.label??r.text??"",b=p("kb-radio-label",d);return`${i}<label class="${b}"${f}><input type="radio"${s}${l}${u} /><span>${W(g)}</span></label>`}case"list":{let s=r.tag==="ol"||r.type==="ol"||r.ordered?"ol":"ul",l=p("kb-list",d),u=a.map(g=>Q(g,e+1,n)).join(`
|
|
169
|
+
`);return u?`${i}<${s} class="${l}"${f}>
|
|
170
|
+
${u}
|
|
171
|
+
${i}</${s}>`:`${i}<${s} class="${l}"${f}></${s}>`}case"list-item":{let s=r.text??r.value,l=p("kb-list-item",d);if(a.length>0){let u=a.map(g=>Q(g,e+1,n)).join(`
|
|
172
172
|
`);return`${i}<li class="${l}"${f}>
|
|
173
|
-
${
|
|
174
|
-
${i}</li>`}return`${i}<li class="${l}"${f}>${W(s??"List item")}</li>`}case"table":{let s=
|
|
173
|
+
${u}
|
|
174
|
+
${i}</li>`}return`${i}<li class="${l}"${f}>${W(s??"List item")}</li>`}case"table":{let s=p("kb-table",d),l=a.map(u=>Q(u,e+1,n)).join(`
|
|
175
175
|
`);return l?`${i}<table class="${s}"${f}>
|
|
176
176
|
${l}
|
|
177
|
-
${i}</table>`:`${i}<table class="${s}"${f}></table>`}case"table-row":{let s=
|
|
177
|
+
${i}</table>`:`${i}<table class="${s}"${f}></table>`}case"table-row":{let s=p("kb-table-row",d),l=a.map(u=>Q(u,e+1,n)).join(`
|
|
178
178
|
`);return l?`${i}<tr class="${s}"${f}>
|
|
179
179
|
${l}
|
|
180
|
-
${i}</tr>`:`${i}<tr class="${s}"${f}></tr>`}case"table-cell":{let l=
|
|
181
|
-
`);return`${i}<${l} class="${h}"${f}${
|
|
182
|
-
${
|
|
183
|
-
${i}</${l}>`}return`${i}<${l} class="${h}"${f}${
|
|
180
|
+
${i}</tr>`:`${i}<tr class="${s}"${f}></tr>`}case"table-cell":{let l=r.isHeader||r.type==="header"||r.tag==="th"?"th":"td",u=r.colSpan&&Number(r.colSpan)>1?` colspan="${F(r.colSpan)}"`:"",g=r.rowSpan&&Number(r.rowSpan)>1?` rowspan="${F(r.rowSpan)}"`:"",b=r.text??r.value??"",h=p("kb-table-cell",d);if(a.length>0){let v=a.map(x=>Q(x,e+1,n)).join(`
|
|
181
|
+
`);return`${i}<${l} class="${h}"${f}${u}${g}>
|
|
182
|
+
${v}
|
|
183
|
+
${i}</${l}>`}return`${i}<${l} class="${h}"${f}${u}${g}>${W(b)}</${l}>`}case"collection":{let s=p("kb-collection",d),l=a.map(u=>Q(u,e+1,n)).join(`
|
|
184
184
|
`);return l?`${i}<div class="${s}"${f}>
|
|
185
185
|
${l}
|
|
186
|
-
${i}</div>`:`${i}<div class="${s}"${f}></div>`}default:{let s=
|
|
186
|
+
${i}</div>`:`${i}<div class="${s}"${f}></div>`}default:{let s=p(`kb-${t.type}`,d),l=a.map(u=>Q(u,e+1,n)).join(`
|
|
187
187
|
`);return l?`${i}<div class="${s}"${f}>
|
|
188
188
|
${l}
|
|
189
|
-
${i}</div>`:`${i}<div class="${s}"${f}></div>`}}}function
|
|
189
|
+
${i}</div>`:`${i}<div class="${s}"${f}></div>`}}}function ns(t,e={}){let n="document"in t?t.document:t;return n?Q(n,0,e):""}function ht(t,e,n=""){if(!e.trim())return"";let i=e.split(";").map(r=>r.trim()).filter(Boolean);if(i.length===0)return"";let o=i.map(r=>`${n} ${r};`).join(`
|
|
190
190
|
`);return`${n}${t} {
|
|
191
|
-
${
|
|
192
|
-
${n}}`}var
|
|
191
|
+
${o}
|
|
192
|
+
${n}}`}var os={desktop:"Desktop Breakpoint",tablet:"Tablet Breakpoint",mobile:"Mobile Breakpoint"};function rs(t,e={}){let n="document"in t?t.document:t;if(!n)return"";let i=e.classPrefix||"kb-node-",o=[],r=[],a=l=>{let u=`.${i}${l.id}`;if(l.styles){let g=Ye(Ne(l.styles));if(g&&o.push(ht(u,g)),l.styles.states&&typeof l.styles.states=="object")for(let[b,h]of Object.entries(l.styles.states)){if(!h)continue;let v=/^::?[a-zA-Z-]+$/.test(b)?b:null;if(!v)continue;let x=Ye(h);x&&r.push(ht(`${u}${v}`,x))}}l.children?.forEach(a)};a(n);let c=$t(n),d=[];e.includeReset!==!1&&d.push(`/* ==========================================================================
|
|
193
193
|
Baseline Reset & Typography Standards
|
|
194
194
|
========================================================================== */
|
|
195
|
-
${
|
|
195
|
+
${Sn}`);let p="document"in t?En(t.theme):"";p&&d.push(`/* ==========================================================================
|
|
196
196
|
Design Tokens
|
|
197
197
|
========================================================================== */
|
|
198
|
-
${ht(":root",
|
|
198
|
+
${ht(":root",p)}`),o.length>0&&d.push(`/* ==========================================================================
|
|
199
199
|
Component Styles
|
|
200
200
|
========================================================================== */
|
|
201
|
-
${
|
|
201
|
+
${o.join(`
|
|
202
202
|
|
|
203
|
-
`)}`),
|
|
203
|
+
`)}`),r.length>0&&d.push(`/* ==========================================================================
|
|
204
204
|
Interactive & Hover States
|
|
205
205
|
========================================================================== */
|
|
206
|
-
${
|
|
206
|
+
${r.join(`
|
|
207
207
|
|
|
208
|
-
`)}`);for(let l of
|
|
209
|
-
${
|
|
208
|
+
`)}`);for(let l of Za){let u=c[l].map(b=>ht(`.${i}${b.nodeId}`,b.declarations," ")).filter(Boolean);if(u.length===0)continue;let g=Qa[l];d.push(`/* ==========================================================================
|
|
209
|
+
${os[l]} ${g}
|
|
210
210
|
========================================================================== */
|
|
211
211
|
@media ${g} {
|
|
212
|
-
${
|
|
212
|
+
${u.join(`
|
|
213
213
|
|
|
214
214
|
`)}
|
|
215
|
-
}`)}let f="document"in t?t:{schema:"stora.page",version:
|
|
215
|
+
}`)}let f="document"in t?t:{schema:"stora.page",version:Ja,document:n},s=Je(f);return s&&d.push(`/* ==========================================================================
|
|
216
216
|
Animations & Motion Keyframes
|
|
217
217
|
========================================================================== */
|
|
218
|
-
${s}`),
|
|
218
|
+
${s}`),d.join(`
|
|
219
219
|
|
|
220
|
-
`)}function
|
|
221
|
-
`:"",
|
|
220
|
+
`)}function Mu(t,e={}){let n=W(t.metadata?.title||"KUBUILD Page"),i=t.metadata?.description?F(t.metadata.description):"",o=t.metadata?.author?F(t.metadata.author):"",r=e.lang||"en",a=rs(t,e.cssOptions),c=ns(t,e.htmlOptions),d=i?` <meta name="description" content="${i}">
|
|
221
|
+
`:"",p=o?` <meta name="author" content="${o}">
|
|
222
222
|
`:"";return`<!DOCTYPE html>
|
|
223
|
-
<html lang="${
|
|
223
|
+
<html lang="${r}">
|
|
224
224
|
<head>
|
|
225
225
|
<meta charset="UTF-8">
|
|
226
226
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
227
227
|
<title>${n}</title>
|
|
228
|
-
${
|
|
228
|
+
${d}${p} <style>
|
|
229
229
|
${a}
|
|
230
230
|
</style>
|
|
231
231
|
</head>
|
|
232
232
|
<body>
|
|
233
|
-
${
|
|
233
|
+
${c}
|
|
234
234
|
</body>
|
|
235
|
-
</html>`}export{
|
|
235
|
+
</html>`}export{Pr as ANIMATION_KEYFRAMES_CSS,me as ApiRequestError,Xt as ArtboardPortalHost,hs as BUILTIN_LEGACY_ACTION_TYPES,Wo as CAROUSEL_SWIPE_THRESHOLD,tt as ComponentErrorBoundary,Ka as DEFAULT_BREAKPOINTS,Sn as DEFAULT_CSS_RESET,ke as DEFAULT_RENDER_CONTEXT,ur as DEFAULT_VIEWPORT_CONFIGS,Y as EditableText,Mt as FieldError,bo as FormButtonSubmitNode,ro as FormCheckboxNode,eo as FormContainerNode,go as FormFileUploadNode,to as FormInputNode,fo as FormRadioGroupNode,at as FormRadioNode,Ot as FormRuntimeContext,Un as FormRuntimeProvider,oo as FormSelectNode,io as FormSubmitButtonNode,mo as FormSwitchNode,no as FormTextareaNode,Jn as HtmlEmbedView,Eu as KubuildPreviewViewport,yu as KubuildProjectRenderer,yt as KubuildRenderer,ei as META_STANDARD_EVENTS,kt as ModalManager,Be as NodeRenderer,Ya as PreviewViewportAdapter,Xo as RATING_MAX_STARS,it as RadioGroupContext,bn as RenderContextProvider,pi as ToastCard,_n as ToastContainer,xt as ToastManager,Pn as apiRequestRunner,lo as aspectRatioToCss,zr as buildApiUrl,Oo as buildFaqJsonLd,mt as clampTabIndex,Ue as closeModalRunner,Je as collectAnimationStylesCss,$t as collectResponsiveCssRules,Ge as collectResponsiveStylesCss,wn as collectStateStylesCss,an as copyClipboardRunner,hr as copyToClipboard,At as createApiRequestHandler,mi as createDefaultActionRunners,Is as createMinimalRenderContext,Gt as createPlaceholderImage,Cr as createRenderContext,dn as customEventRunner,kn as dispatchAction,_ as executeNodeActions,Vn as fireBrowserPixel,$o as fireCountdownExpire,So as formatCountdown,Qo as formatRatingLabel,rs as generateDocumentCss,ns as generateSemanticHtml,Mu as generateStandaloneHtml,dr as getArtboardContentNode,To as getCountdownStorage,Dr as getEntranceAnimationCss,Ar as getHoverEffectCss,Fr as getLoopEffectCss,jt as getTimeZoneOffsetMs,_a as getUnresolvedLegacyActionType,so as getVimeoId,ao as getYouTubeId,Vt as handleFormButtonClick,Te as hasBuiltinLegacyAction,On as injectTrackingScripts,Ns as isActionRegistered,We as isLegacyActionResolvable,ae as modalManager,qe as navigateRunner,Rn as nodeAttributeSelector,bt as normalizeRating,Tt as normalizeStyleObject,Ie as openModalRunner,zi as partitionFilesBySize,jr as prepareRequestBody,Jo as ratingStarFills,rt as registerDefaultActionRunners,An as removeTrackingScripts,Da as renderCollectionNode,nr as renderConversionNode,Ea as renderCustomComponent,vo as renderExtendedFormNode,Oa as renderFallbackNode,Fa as renderFormNode,ho as renderInteractiveNode,$a as renderLayoutNode,Na as renderListNode,Aa as renderMediaNode,rr as renderNodeContent,Pa as renderTableNode,Ia as renderTypographyNode,Bs as replayNodeAnimation,Gi as resetCountdownMemoryStore,sn as resetFormRunner,vn as resolveActionPayload,xn as resolveActionPayloadDetailed,Wr as resolveApiRequestBody,Ct as resolveAssetSync,Ne as resolveBaseNodeStyles,Eo as resolveEvergreenDeadline,pt as resolveFixedDeadline,Et as resolveNodeStyles,Yt as resolveResponsiveMode,Tr as resolveResponsiveStyleLayers,Qe as resolveRuntimeTheme,hn as resolveVariable,Ga as resolveViewportContainerStyle,pr as resolveViewportDimensions,Tu as resolveViewportFromWidth,fn as runBuiltinLegacyAction,Ua as selectOpenComponentArtboards,Mo as serializeJsonForScript,ze as showToastRunner,Wt as splitCountdown,gt as stepCarouselIndex,Ye as styleDefinitionToCssDeclarations,Ko as swipeDirection,En as themeToCssDeclarations,Ze as themeToCssProperties,st as toPascalCase,ve as toastManager,Fo as toggleAccordionIndex,je as toggleModalRunner,Bn as trackEventRunner,Ii as transformEmbedHtml,Vd as useFormContext,Ld as useFormField,te as useFormRuntime,Bd as useFormStatus,un as useModal,pn as useModals,Zn as useNodeLoadActions,yn as useRenderContext,on as useToasts};
|