@decido/shell 4.0.2 → 4.0.4
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/CenterComposite-V3LL23PG.mjs +64 -0
- package/dist/DebugPanel-NFXQOZQ6.mjs +1 -0
- package/dist/MorphShell-4JGDAN46.mjs +1 -0
- package/dist/PlaygroundAppSidebar-QI73PNRI.mjs +1 -0
- package/dist/PlaygroundChat-CBIIQMWU.mjs +1 -0
- package/dist/PlaygroundTerminal-MVZKXTYW.mjs +1 -0
- package/dist/PluginSandbox-MUNBFWGH.mjs +1 -0
- package/dist/ReactFlowEditor-2ALQWCHQ.mjs +6 -0
- package/dist/ReactFlowEditor-ROZ6RF3K.css +1 -0
- package/dist/TimelineEditor-UPRRXXVM.mjs +3 -0
- package/dist/WidgetSlotPanel-YX2VBQAP.mjs +1 -0
- package/dist/chunk-3YEFIKFH.mjs +1 -0
- package/dist/chunk-53FADIUX.mjs +1 -0
- package/dist/chunk-5FWJFDER.mjs +285 -0
- package/dist/chunk-6K3AFDP5.mjs +1 -0
- package/dist/chunk-AGAAZ2MU.mjs +1 -0
- package/dist/chunk-BCP43BRV.mjs +2 -0
- package/dist/chunk-BSJBW64M.mjs +1 -0
- package/dist/chunk-C5FD536O.mjs +1 -0
- package/dist/chunk-DTH34ILQ.mjs +1 -0
- package/dist/chunk-DWP77YZU.mjs +1 -0
- package/dist/chunk-O3OWL3Q2.mjs +1 -0
- package/dist/chunk-POBZMHZ5.mjs +7 -0
- package/dist/chunk-S3AQ4QDD.mjs +42 -0
- package/dist/chunk-XDA6ZRIQ.mjs +1 -0
- package/dist/chunk-XTDMHHMW.mjs +5 -0
- package/dist/chunk-YAYNNUEX.mjs +12 -0
- package/dist/chunk-YEKQJ4YC.mjs +1 -0
- package/dist/chunk-YHFKY5MB.mjs +1 -0
- package/dist/chunk-ZKD74U4X.mjs +1 -0
- package/dist/index.css +1 -0
- package/dist/index.js +506 -0
- package/dist/index.mjs +89 -0
- package/dist/useIntentLens-OCAUBNOQ.mjs +1 -0
- package/dist/useSuggestionsStore-Q4KVPU7L.mjs +1 -0
- package/dist/wasm-A4BTVJWV.mjs +1 -0
- package/package.json +18 -19
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import{a as Ae,d as Ce,e as de,h as _e,i as Fe}from"./chunk-53FADIUX.mjs";import{e as ze}from"./chunk-S3AQ4QDD.mjs";import"./chunk-C5FD536O.mjs";import"./chunk-6K3AFDP5.mjs";import"./chunk-DTH34ILQ.mjs";import{a as je}from"./chunk-3YEFIKFH.mjs";import{a as Le}from"./chunk-YAYNNUEX.mjs";import"./chunk-BCP43BRV.mjs";import"./chunk-O3OWL3Q2.mjs";import{a as Ne}from"./chunk-ZKD74U4X.mjs";import{a as ye}from"./chunk-BSJBW64M.mjs";import"./chunk-AGAAZ2MU.mjs";import{a as Be,c as be}from"./chunk-YHFKY5MB.mjs";import{a as h}from"./chunk-XDA6ZRIQ.mjs";import"./chunk-YEKQJ4YC.mjs";import{useRef as Da,useEffect as Oa}from"react";import{Panel as dt,Group as $a,Separator as Aa}from"react-resizable-panels";import xa,{useState as et}from"react";import{motion as ha}from"motion/react";import{X as va}from"lucide-react";import{useState as xe,useCallback as Pe,useRef as vt,useEffect as wt}from"react";import{motion as he,AnimatePresence as ke}from"motion/react";import{FolderOpen as Nt,Plus as Ct,Check as St,X as Tt,FileText as Ve,Network as Ue}from"lucide-react";import{useTimelineStore as K}from"@decido/engine";import{useBlueprintNavigation as Pt}from"@decido/engine";import{useState as Se}from"react";import{motion as mt,AnimatePresence as pt}from"motion/react";import{FileText as ut,Network as gt,MoreVertical as ft,Edit3 as bt,Copy as yt,Trash2 as xt}from"lucide-react";import{Fragment as ht,jsx as V,jsxs as Y}from"react/jsx-runtime";var Te=({id:p,name:r,nodeCount:d,isActive:s,isSubflow:o,onSelect:v,onRename:w,onDuplicate:g,onDelete:y})=>{let[N,C]=Se(!1),[c,f]=Se(r),[b,S]=Se(!1),E=()=>{let e=c.trim();e&&e!==r&&w(e),C(!1)},i=o?"violet":"cyan",u=o?gt:ut;return Y("div",{className:`group relative flex items-center gap-2 px-3 py-2 rounded-xl cursor-pointer transition-all mb-0.5 ${s?`bg-${i}-500/15 border border-${i}-500/30`:"hover:bg-surface-glass border border-transparent"}`,onClick:()=>!N&&v(),children:[V(u,{size:14,className:s?`text-${i}-400`:o?"text-violet-400/60":"text-text-muted"}),N?V("div",{className:"flex-1 flex items-center gap-1",children:V("input",{autoFocus:!0,value:c,onChange:e=>f(e.target.value),onKeyDown:e=>{e.key==="Enter"&&E(),e.key==="Escape"&&C(!1)},onBlur:E,className:"flex-1 bg-surface-glass border border-cyan-500/30 rounded px-2 py-0.5 text-xs text-text-primary focus:outline-hidden font-mono",onClick:e=>e.stopPropagation()})}):Y(ht,{children:[Y("div",{className:"flex-1 min-w-0",children:[V("div",{className:`text-xs font-medium truncate ${s?"text-text-primary":o?"text-text-secondary":"text-text-primary"}`,children:r||p}),Y("div",{className:"text-[10px] text-text-muted font-mono",children:[d," nodos"]})]}),o&&V("span",{className:"text-[9px] bg-violet-500/10 text-violet-400 px-1.5 py-0.5 rounded-full font-mono",children:"sub"}),V("button",{onClick:e=>{e.stopPropagation(),S(!b)},className:"opacity-0 group-hover:opacity-100 p-1 rounded hover:bg-surface-glass text-text-muted transition-all",children:V(ft,{size:14})})]}),V(pt,{children:b&&Y(mt.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},className:"absolute right-0 top-full z-50 bg-surface-tertiary border border-border-default rounded-xl shadow-2xl overflow-hidden mt-1 min-w-[140px]",onClick:e=>e.stopPropagation(),children:[Y("button",{onClick:()=>{f(r||p),C(!0),S(!1)},className:"flex items-center gap-2 w-full px-3 py-2 text-xs text-text-primary hover:bg-surface-glass transition-colors",children:[V(bt,{size:12})," Renombrar"]}),Y("button",{onClick:()=>{g(),S(!1)},className:"flex items-center gap-2 w-full px-3 py-2 text-xs text-text-primary hover:bg-surface-glass transition-colors",children:[V(yt,{size:12})," Duplicar"]}),y&&Y("button",{onClick:()=>{y(),S(!1)},className:"flex items-center gap-2 w-full px-3 py-2 text-xs text-red-400 hover:bg-red-500/10 transition-colors border-t border-border-subtle",children:[V(xt,{size:12})," Eliminar"]})]})})]})};import{Fragment as kt,jsx as I,jsxs as z}from"react/jsx-runtime";var Ge=({isOpen:p,onClose:r})=>{let d=K(t=>t.timelines),s=K(t=>t.blueprintLibrary),o=h(t=>t.prototypeBrand),v=h(t=>t.setPrototypeBrand),w=Pt(t=>t.resetNavigation),g=K(t=>t.createTimeline),y=K(t=>t.addKeyframe),N=K(t=>t.addBlueprint),C=K(t=>t.duplicateTimeline),c=K(t=>t.renameTimeline),f=K(t=>t.deleteTimeline),[b,S]=xe(!1),[E,i]=xe("blueprint"),[u,e]=xe(""),[l,T]=xe(!1),n=vt(null);wt(()=>{let t=k=>{n.current&&!n.current.contains(k.target)&&T(!1)};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[]);let x=Pe(()=>{if(u.trim()){if(E==="subflow"){let t=`subflow_${u.trim().toLowerCase().replace(/\s+/g,"_")}`,k=g(u.trim(),t);y(k,{t:0,track:"entry",label:"Entrada",position:{x:300,y:50}}),y(k,{t:5,track:"return",label:"Retorno",handle:"success",position:{x:300,y:300}});let P=`bp_${u.trim().toLowerCase().replace(/\s+/g,"_")}`,M=K.getState().timelines[k];M&&N({...M,id:P,isSubflow:!0,signature:{inputs:{},outputs:{}},metadata:{author:"user",version:"1.0.0",tags:["custom"],description:u.trim(),isPublic:!1,createdAt:Date.now(),updatedAt:Date.now()}}),v(k)}else v(g(u.trim()));e(""),S(!1)}},[u,E,g,y,N,v]),a=Pe(t=>{w(),v(t)},[v,w]),m=Pe(t=>{if(f(t)&&o===t){let P=Object.keys(d).filter(M=>M!==t);P.length>0&&v(P[0])}},[f,o,d,v]),A=Object.entries(d),O=Object.entries(s),B={};for(let[t]of Object.entries(d))t.startsWith("subflow_")&&(B[`bp_${t.replace("subflow_","")}`]=t);return I(ke,{children:p&&z(kt,{children:[I(he.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 bg-surface-overlay z-40",onClick:r}),z(he.div,{initial:{opacity:0,x:-20,scale:.95},animate:{opacity:1,x:0,scale:1},exit:{opacity:0,x:-20,scale:.95},transition:{type:"spring",damping:25,stiffness:300},className:"fixed left-4 bottom-20 z-50 w-80 max-h-[60vh] bg-surface-primary border border-border-default rounded-2xl shadow-2xl overflow-hidden flex flex-col",style:{backdropFilter:"blur(20px)"},onClick:t=>t.stopPropagation(),children:[z("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border-default bg-surface-glass",children:[z("div",{className:"flex items-center gap-2",children:[I(Nt,{size:16,className:"text-cyan-400"}),I("span",{className:"text-sm font-bold text-text-primary tracking-wide",children:"Blueprints"}),I("span",{className:"text-[10px] bg-surface-glass text-text-secondary px-1.5 py-0.5 rounded-full font-mono",children:A.length})]}),z("div",{className:"relative",ref:n,children:[I("button",{onClick:()=>T(!l),className:"p-1.5 rounded-lg hover:bg-cyan-500/20 text-cyan-400 transition-colors",title:"Crear nuevo",children:I(Ct,{size:16})}),I(ke,{children:l&&z(he.div,{initial:{opacity:0,scale:.9,y:-5},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,y:-5},className:"absolute right-0 top-full mt-1 z-50 bg-surface-tertiary border border-border-default rounded-xl shadow-2xl overflow-hidden min-w-[180px]",children:[z("button",{onClick:()=>{i("blueprint"),S(!0),T(!1)},className:"flex items-center gap-2 w-full px-3 py-2.5 text-xs text-text-primary hover:bg-surface-glass transition-colors",children:[I(Ve,{size:13,className:"text-cyan-400"}),z("div",{className:"text-left",children:[I("div",{className:"font-medium",children:"Nuevo Blueprint"}),I("div",{className:"text-[10px] text-text-muted",children:"Flujo principal"})]})]}),z("button",{onClick:()=>{i("subflow"),S(!0),T(!1)},className:"flex items-center gap-2 w-full px-3 py-2.5 text-xs text-text-primary hover:bg-surface-glass transition-colors border-t border-border-subtle",children:[I(Ue,{size:13,className:"text-violet-400"}),z("div",{className:"text-left",children:[I("div",{className:"font-medium",children:"Nuevo SubFlow"}),I("div",{className:"text-[10px] text-text-muted",children:"Con Entry + Return"})]})]})]})})]})]}),I(ke,{children:b&&I(he.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},className:"overflow-hidden border-b border-border-default",children:z("div",{className:"flex items-center gap-2 px-4 py-3",children:[E==="subflow"?I(Ue,{size:14,className:"text-violet-400 shrink-0"}):I(Ve,{size:14,className:"text-cyan-400 shrink-0"}),I("input",{autoFocus:!0,value:u,onChange:t=>e(t.target.value),onKeyDown:t=>{t.key==="Enter"&&x(),t.key==="Escape"&&S(!1)},placeholder:E==="subflow"?"Nombre del subflow...":"Nombre del blueprint...",className:"flex-1 bg-surface-glass border border-border-default rounded-lg px-3 py-1.5 text-xs text-text-primary focus:outline-hidden focus:border-cyan-500/50 font-mono"}),I("button",{onClick:x,className:"p-1.5 rounded-lg bg-cyan-500/20 text-cyan-400 hover:bg-cyan-500/30",children:I(St,{size:14})}),I("button",{onClick:()=>S(!1),className:"p-1.5 rounded-lg hover:bg-surface-glass text-text-muted",children:I(Tt,{size:14})})]})})}),z("div",{className:"flex-1 overflow-y-auto custom-scrollbar",children:[z("div",{className:"px-2 py-1",children:[I("div",{className:"px-2 py-1.5 text-[9px] font-bold text-text-muted uppercase tracking-widest",children:"Blueprints Principales"}),A.map(([t,k])=>I(Te,{id:t,name:k.name||t,nodeCount:k.keyframes?.length||0,isActive:t===o,onSelect:()=>a(t),onRename:P=>c(t,P),onDuplicate:()=>{v(C(t))},onDelete:A.length>1?()=>m(t):void 0},t))]}),O.length>0&&z("div",{className:"px-2 py-1 border-t border-border-subtle",children:[I("div",{className:"px-2 py-1.5 text-[9px] font-bold text-text-muted uppercase tracking-widest",children:"Subflujos"}),O.map(([t,k])=>{let P=B[t]||"";return I(Te,{id:t,name:k.name||t,nodeCount:k.keyframes?.length||0,isActive:P===o,isSubflow:!0,onSelect:()=>P&&a(P),onRename:M=>P&&c(P,M),onDuplicate:()=>P&&v(C(P)),onDelete:()=>P&&m(P)},t)})]})]})]})]})})};import{useMemo as At}from"react";import{motion as qe,AnimatePresence as Bt}from"motion/react";import{AlertTriangle as zt,X as jt,TreePine as Lt}from"lucide-react";import{useTimelineStore as He}from"@decido/engine";import{useBlueprintNavigation as _t}from"@decido/engine";import{useState as It}from"react";import{ChevronRight as Et,ChevronDown as Rt,FileText as Mt,Network as Dt,Zap as Ot,AlertTriangle as $t}from"lucide-react";import{jsx as _,jsxs as We}from"react/jsx-runtime";var ve=({node:p,activeId:r,onNavigate:d})=>{let[s,o]=It(p.depth<2),v=p.children.length>0,w=p.id===r,g=p.type==="trigger"?_(Ot,{size:13,className:"text-amber-400"}):p.type==="subflow"?_(Dt,{size:13,className:p.isCyclic?"text-red-400":"text-violet-400"}):p.type==="orphan"?_($t,{size:13,className:"text-text-muted"}):_(Mt,{size:13,className:"text-cyan-400"});return We("div",{children:[We("div",{className:`flex items-center gap-1.5 px-2 py-1.5 rounded-lg cursor-pointer transition-all mb-0.5 ${w?"bg-cyan-500/15 border border-cyan-500/30":p.isCyclic?"bg-red-500/5 border border-red-500/20 hover:bg-red-500/10":"hover:bg-surface-glass border border-transparent"}`,style:{paddingLeft:`${8+p.depth*16}px`},onClick:()=>d(p.id),children:[v?_("button",{onClick:y=>{y.stopPropagation(),o(!s)},className:"p-0.5 rounded hover:bg-surface-glass text-text-muted shrink-0",children:s?_(Rt,{size:12}):_(Et,{size:12})}):_("span",{className:"w-5 shrink-0"}),g,_("span",{className:`text-xs truncate flex-1 ${w?"text-text-primary font-medium":p.isCyclic?"text-red-300":"text-text-secondary"}`,children:p.name}),p.isCyclic&&_("span",{className:"text-[8px] bg-red-500/20 text-red-400 px-1 py-0.5 rounded font-mono",children:"CICLO"}),p.type==="trigger"&&_("span",{className:"text-[8px] bg-amber-500/10 text-amber-400 px-1 py-0.5 rounded font-mono",children:"\u26A1"})]}),v&&s&&_("div",{children:p.children.map(y=>_(ve,{node:y,activeId:r,onNavigate:d},y.id))})]})};import{Fragment as Ft,jsx as U,jsxs as ee}from"react/jsx-runtime";var Ke=({isOpen:p,onClose:r})=>{let d=He(c=>c.timelines),s=He(c=>c.blueprintLibrary),o=h(c=>c.setPrototypeBrand),v=_t(c=>c.resetNavigation),w=h(c=>c.prototypeBrand),{roots:g,orphans:y,cycleWarnings:N}=At(()=>{let c={},f=new Set;for(let[n,x]of Object.entries(d)){let a=(x.keyframes||[]).filter(m=>m.track==="subflow"&&m.targetBlueprintId);a.length>0&&(c[n]=a.map(m=>m.targetBlueprintId),a.forEach(m=>f.add(m.targetBlueprintId)))}let b={};for(let n of Object.keys(d))if(n.startsWith("subflow_")){let x=`bp_${n.replace("subflow_","")}`;b[x]=n}let S=new Set([...f].map(n=>b[n]).filter(Boolean)),E=[],i=(n,x,a)=>{let m=d[n],A=m?.name||n,O=n.startsWith("subflow_"),B=(m?.keyframes||[]).some(M=>M.track==="trigger");if(x.has(n))return E.push(`Ciclo: ${[...x].join(" \u2192 ")} \u2192 ${n}`),{id:n,name:A,type:"subflow",children:[],isCyclic:!0,depth:a};let t=new Set(x);t.add(n);let P=(c[n]||[]).map(M=>{let q=b[M];return q?i(q,t,a+1):{id:M,name:M,type:"orphan",children:[],depth:a+1}});return{id:n,name:A,type:B?"trigger":O?"subflow":"blueprint",children:P,depth:a}},u=Object.keys(c).filter(n=>!S.has(n)),e=u.map(n=>i(n,new Set,0)),T=Object.keys(s).filter(n=>{let x=b[n];return x?!f.has(n)&&!u.includes(x):!1}).map(n=>({id:b[n]||n,name:s[n]?.name||n,type:"subflow",children:[],depth:0}));return{roots:e,orphans:T,cycleWarnings:E}},[d,s]),C=c=>{v(),o(c)};return U(Bt,{children:p&&ee(Ft,{children:[U(qe.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 bg-surface-overlay z-40",onClick:r}),ee(qe.div,{initial:{opacity:0,x:-20,scale:.95},animate:{opacity:1,x:0,scale:1},exit:{opacity:0,x:-20,scale:.95},transition:{type:"spring",damping:25,stiffness:300},className:"fixed left-4 bottom-20 z-50 w-96 max-h-[60vh] bg-surface-primary border border-border-default rounded-2xl shadow-2xl overflow-hidden flex flex-col",style:{backdropFilter:"blur(20px)"},onClick:c=>c.stopPropagation(),children:[ee("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border-default bg-surface-glass",children:[ee("div",{className:"flex items-center gap-2",children:[U(Lt,{size:16,className:"text-emerald-400"}),U("span",{className:"text-sm font-bold text-text-primary tracking-wide",children:"Jerarqu\xEDa"}),N.length>0&&ee("span",{className:"text-[10px] bg-red-500/20 text-red-400 px-1.5 py-0.5 rounded-full font-mono flex items-center gap-1",children:[U(zt,{size:10})," ",N.length," ciclo(s)"]})]}),U("button",{onClick:r,className:"p-1.5 rounded-lg hover:bg-surface-glass text-text-muted transition-colors",children:U(jt,{size:14})})]}),ee("div",{className:"flex-1 overflow-y-auto custom-scrollbar p-2",children:[g.length===0&&y.length===0&&U("div",{className:"text-center text-text-muted text-xs py-8",children:"No hay flujos con subflows referenciados"}),g.map(c=>U(ve,{node:c,activeId:w,onNavigate:C},c.id)),y.length>0&&ee("div",{className:"mt-3 pt-3 border-t border-border-subtle",children:[U("div",{className:"px-2 py-1 text-[9px] font-bold text-text-muted uppercase tracking-widest",children:"Sin Referencia"}),y.map(c=>U(ve,{node:c,activeId:w,onNavigate:C},c.id))]})]})]})]})})};import Vt from"react";import{Pause as Ut,Play as Gt,RotateCcw as Wt}from"lucide-react";import{jsx as J,jsxs as oe}from"react/jsx-runtime";var Je=Vt.memo(function({currentTime:r,seekTime:d,playbackSpeed:s,setPlaybackSpeed:o,isPlaying:v,setIsPlaying:w,handleResetPlayground:g,currentTimeline:y}){return oe("div",{className:"flex items-center gap-3 w-full bg-surface-overlay p-2 rounded-xl border border-border-subtle",children:[oe("span",{className:"text-xs font-mono text-text-secondary w-10 text-right",children:[r.toFixed(1),"s"]}),oe("div",{className:"relative flex-1 h-6 flex items-center group cursor-pointer",children:[J("div",{className:"absolute w-full h-1.5 bg-surface-glass rounded-full overflow-hidden group-hover:bg-surface-glass transition-colors",children:J("div",{className:"h-full bg-purple-500/50 group-hover:bg-purple-400 transition-colors",style:{width:`${r/Math.max(y.duration,1)*100}%`}})}),J("input",{type:"range",min:"0",max:y.duration,step:"0.1",value:r,onChange:N=>d(parseFloat(N.target.value)),className:"absolute w-full h-full opacity-0 cursor-pointer z-20"}),y.keyframes.map((N,C)=>J("div",{className:"absolute top-1/2 -translate-y-1/2 w-2 h-2 rounded-full border border-[#1e1e1f] z-10 pointer-events-none transition-all group-hover:scale-125",style:{left:`calc(${N.t/y.duration*100}% - 4px)`,backgroundColor:r>=N.t?"#a855f7":"#52525b"}},C))]}),oe("span",{className:"text-xs font-mono text-text-muted w-10",children:[y.duration.toFixed(1),"s"]}),oe("div",{className:"flex gap-1 border-l border-border-default pl-2 ml-1",children:[J("button",{onClick:()=>w(!v),className:"w-8 h-8 rounded-lg bg-surface-glass hover:bg-purple-500/20 text-text-primary flex items-center justify-center transition-colors",children:v?J(Ut,{size:14}):J(Gt,{size:14,className:"ml-0.5"})}),oe("button",{onClick:()=>o(s===1?2:1),className:"w-8 h-8 rounded-lg hover:bg-surface-glass text-text-secondary flex items-center justify-center transition-colors text-[10px] font-bold",children:[s,"x"]}),J("button",{onClick:g,className:"w-8 h-8 rounded-lg hover:bg-surface-glass text-text-secondary flex items-center justify-center transition-colors",title:"Rewind & Reset Engine",children:J(Wt,{size:14})})]})]})});import qt,{useState as Xe,useMemo as Ht,useCallback as Ie,useEffect as Kt}from"react";import{AnimatePresence as Jt,motion as Xt}from"motion/react";import{Wand2 as Yt,Clock as Qt,Mic as Zt,MessageCircle as ea,Terminal as ta,Network as aa,Variable as sa,Download as oa,Layout as ra,HelpCircle as na,Trash2 as ia}from"lucide-react";import{useTimelineStore as Ee,useEngineStore as la}from"@decido/engine";import{jsx as D,jsxs as we}from"react/jsx-runtime";var Ye=[{cmd:"/add",args:"<type> [label]",desc:"Agregar nodo",icon:D(ea,{size:14,className:"text-blue-400"})},{cmd:"/shell",args:"<action> [label]",desc:"Nodo Shell",icon:D(ta,{size:14,className:"text-teal-400"})},{cmd:"/connect",args:"<nodeA> <nodeB>",desc:"Conectar nodos",icon:D(aa,{size:14,className:"text-violet-400"})},{cmd:"/var",args:"<name> <value>",desc:"Definir variable",icon:D(sa,{size:14,className:"text-emerald-400"})},{cmd:"/export",args:"",desc:"Exportar DSD",icon:D(oa,{size:14,className:"text-cyan-400"})},{cmd:"/ui",args:"[componentId]",desc:"UI Components",icon:D(ra,{size:14,className:"text-pink-400"})},{cmd:"/clear",args:"",desc:"Limpiar nodos",icon:D(ia,{size:14,className:"text-red-400"})},{cmd:"/help",args:"",desc:"Ayuda",icon:D(na,{size:14,className:"text-text-secondary"})}],Qe=qt.memo(function({inputValue:r="",setInputValue:d,isGenerating:s=!1,handleGeneratePlayground:o,setIsVoiceActive:v,prototypeBrand:w="",handleExport:g}){let[y,N]=Xe(!1),[C,c]=Xe(0),f=Ht(()=>{if(!r.startsWith("/"))return[];let i=r.split(" ")[0].toLowerCase();return Ye.filter(u=>u.cmd.startsWith(i))},[r]);Kt(()=>{N(r.startsWith("/")&&f.length>0),c(0)},[r,f.length]);let b=Ie(()=>{let i=r.trim().split(/\s+/),u=i[0]?.toLowerCase();if(u==="/add"||u==="/shell"){let e=i[1]||(u==="/shell"?"config":"dialogue"),l=i.slice(2).join(" ")||e,T={dialogue:"dialogue",logic:"logic",ui:"ui",render:"render",subflow:"subflow",entry:"entry",return:"return",trigger:"trigger",condition:"condition",set:"set",registerButton:"shell:registerButton",activitybar:"shell:registerButton",registerTab:"shell:registerTab",tab:"shell:registerTab",registerPanel:"shell:registerPanel",panel:"shell:registerPanel",registerSidebar:"shell:registerSidebar",sidebar:"shell:registerSidebar",registerStatusBar:"shell:registerStatusBar",statusbar:"shell:registerStatusBar",registerTopBar:"shell:registerTopBar",topbar:"shell:registerTopBar",registerAction:"shell:registerAction",command:"shell:registerAction",toggleSidebar:"shell:toggleSidebar",togglePanel:"shell:togglePanel",splitPane:"shell:splitPane",focusTab:"shell:focusTab",closeTab:"shell:closeTab",setTheme:"shell:setTheme",theme:"shell:setTheme",applyPalette:"shell:applyPalette",palette:"shell:applyPalette",updateToken:"shell:updateToken",token:"shell:updateToken",notification:"shell:notification",notify:"shell:notification",modal:"shell:modal",execCommand:"shell:execCommand",exec:"shell:execCommand",shortcut:"shell:shortcut",emitEvent:"shell:emitEvent",emit:"shell:emitEvent",config:"shell:config",shellConfig:"shell:config"},n={"shell:registerButton":"registerActivityBarItem","shell:registerTab":"openTab","shell:registerPanel":"registerPanelView","shell:registerSidebar":"registerSidebarView","shell:registerStatusBar":"registerStatusBarItem","shell:registerTopBar":"registerTopBarItem","shell:registerAction":"registerCommand","shell:toggleSidebar":"toggleSidebar","shell:togglePanel":"togglePanel","shell:splitPane":"splitPane","shell:focusTab":"focusTab","shell:closeTab":"closeTab","shell:setTheme":"setTheme","shell:applyPalette":"applyPalette","shell:updateToken":"updateToken","shell:notification":"showNotification","shell:modal":"showModal","shell:execCommand":"executeCommand","shell:shortcut":"registerShortcut","shell:emitEvent":"emitEvent","shell:config":"shellConfig"},x=e;u==="/shell"&&!e.startsWith("shell:")?x=T[e]||`shell:${e}`:x=T[e]||e;let a={t:Date.now(),track:x,position:{x:200+Math.random()*600,y:100+Math.random()*400},label:l,state:l};x==="dialogue"?(a.speech=l,a.actorId="assistant"):x==="subflow"&&(a.targetBlueprintId=""),x.startsWith("shell:")&&(a.track="shell",a.type=x,a.shellAction=n[x]||x.replace("shell:","")),Ee.getState().addKeyframe(w,a),h.getState().addLog(`\u2705 Nodo "${l}" (${x}) agregado al canvas`,"success")}else if(u==="/var"){let e=i[1],l=i.slice(2).join(" ");e&&(la.getState().setVariable(e,l||""),h.getState().addLog(`\u{1F4CA} Variable "${e}" = "${l}"`,"info"))}else if(u==="/export")g();else if(u==="/ui"){let e=Object.values(ye.getState().components);if(i[1]){let l=e.find(T=>T.id===i[1]||T.name.toLowerCase().includes(i[1].toLowerCase()));l&&(Ee.getState().addKeyframe(w,{t:Date.now(),track:"render",position:{x:200+Math.random()*600,y:100+Math.random()*400},label:l.name,state:l.name,uiSchema:l.schema,autoComplete:!1}),h.getState().addLog(`\u{1F5BC}\uFE0F UI Component "${l.name}" agregado`,"success"))}else h.getState().addLog(`\u{1F3A8} UI Components:
|
|
2
|
+
${e.map(l=>`\u2022 ${l.name} (${l.source})`).join(`
|
|
3
|
+
`)||"Ninguno disponible"}`,"info")}else if(u==="/clear")Ee.getState().setDynamicTimelines(e=>({...e,[w]:{...e[w],keyframes:[],edges:[]}})),h.getState().addLog("\u{1F5D1}\uFE0F Canvas limpiado","warning");else if(u==="/help")h.getState().addLog(`\u{1F4CB} Comandos Creator:
|
|
4
|
+
${Ye.map(e=>`${e.cmd} ${e.args} \u2014 ${e.desc}`).join(`
|
|
5
|
+
`)}`,"info");else return!1;return d(""),!0},[r,w,g,d]),S=Ie(()=>{r.startsWith("/")?b():o()},[r,b,o]),E=Ie(i=>{if(y){if(i.key==="ArrowDown")i.preventDefault(),c(u=>Math.min(u+1,f.length-1));else if(i.key==="ArrowUp")i.preventDefault(),c(u=>Math.max(u-1,0));else if(i.key==="Enter"&&f[C]){i.preventDefault(),d(f[C].cmd+" "),N(!1);return}else if(i.key==="Escape"){N(!1);return}}i.key==="Enter"&&!y&&!s&&S()},[y,C,f,s,S,d]);return we("div",{className:"relative",children:[D(Jt,{children:y&&we(Xt.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:8},className:"absolute bottom-full left-0 mb-2 w-full bg-surface-secondary/95 backdrop-blur-xl border border-border-default rounded-xl shadow-2xl shadow-black/50 overflow-hidden z-50",children:[D("div",{className:"px-3 py-1.5 border-b border-border-subtle",children:D("span",{className:"text-[9px] font-bold text-text-muted uppercase tracking-widest",children:"/ Comandos Creator"})}),D("div",{className:"max-h-[200px] overflow-y-auto py-1",children:f.map((i,u)=>we("button",{onClick:()=>{d(i.cmd+" "),N(!1)},className:`w-full flex items-center gap-2.5 px-3 py-2 text-xs transition-colors ${u===C?"bg-purple-500/15 text-text-primary":"text-text-secondary hover:text-text-primary hover:bg-surface-glass"}`,children:[i.icon,D("span",{className:"font-mono font-bold text-purple-300",children:i.cmd}),D("span",{className:"text-text-muted font-mono",children:i.args}),D("span",{className:"ml-auto text-[10px] text-text-muted truncate max-w-[150px]",children:i.desc})]},i.cmd))})]})}),we("div",{className:"flex items-center gap-2 sm:gap-3 w-full bg-surface-overlay p-1.5 sm:p-2 rounded-xl border border-border-subtle focus-within:border-cyan-500/30 transition-colors mt-2",children:[D(Yt,{size:20,className:"text-purple-400 ml-2"}),D("input",{type:"text",placeholder:"Escribe / para comandos, o un prompt AI...",value:r,onChange:i=>d(i.target.value),onKeyDown:E,className:"w-full bg-transparent text-text-primary placeholder-text-muted outline-hidden text-sm h-10"}),D("button",{onClick:S,disabled:s,className:"px-3 sm:px-4 py-2 rounded-lg font-bold text-xs sm:text-sm transition-colors disabled:opacity-50 min-w-[70px] sm:min-w-[100px] flex justify-center items-center bg-purple-500/20 text-purple-400 hover:bg-purple-500/30",children:s?D(Qt,{size:16,className:"animate-spin"}):"Enviar"}),D("div",{className:"w-px h-6 bg-surface-glass mx-1"}),D("button",{onClick:()=>v(!0),className:"w-10 h-10 rounded-full flex items-center justify-center border transition-all shadow-[0_0_15px_rgba(6,182,212,0.15)] text-purple-400 bg-purple-500/10 border-purple-500/20 hover:bg-purple-500/20",children:D(Zt,{size:18})})]})]})});import ca from"react";import{Layers as Re,Terminal as da,Volume2 as ma,VolumeX as pa,Minimize as ua,Maximize as ga,FolderOpen as fa,TreePine as ba}from"lucide-react";import{useTimelineStore as ya}from"@decido/engine";import{jsx as R,jsxs as X}from"react/jsx-runtime";var Ze=ca.memo(function({dynamicTimelines:r,prototypeBrand:d,showCanvas:s,setShowCanvas:o,isTerminalOpen:v,setIsTerminalOpen:w,isMuted:g,setIsMuted:y,selectedVoice:N,setSelectedVoice:C,isFullscreen:c,toggleFullscreen:f,handleExport:b,config:S,isBlueprintManagerOpen:E,setIsBlueprintManagerOpen:i,isTreeOpen:u,setIsTreeOpen:e}){return X("div",{className:"flex w-full overflow-x-auto custom-scrollbar pb-2 sm:pb-3 pt-1 mt-1 items-center justify-between gap-2 sm:gap-4",children:[X("div",{className:"flex items-center gap-1.5 sm:gap-2 min-w-max",children:[X("button",{onClick:()=>i(!E),className:"bg-surface-secondary hover:bg-surface-tertiary border border-border-default rounded-lg text-xs font-medium text-text-primary px-3 py-2 outline-hidden cursor-pointer hover:border-cyan-400/50 transition-colors flex items-center gap-2",children:[R(fa,{size:14,className:"text-cyan-400"}),R("span",{className:"max-w-[120px] truncate",children:r[d]?.name||d}),R("span",{className:"text-[10px] text-text-muted font-mono",children:r[d]?.keyframes?.length||0})]}),R("button",{onClick:()=>e(!u),className:"bg-surface-secondary hover:bg-surface-tertiary border border-border-default rounded-lg text-xs font-medium text-text-primary px-2.5 py-2 outline-hidden cursor-pointer hover:border-emerald-400/50 transition-colors flex items-center gap-1.5",title:"Jerarqu\xEDa de dependencias",children:R(ba,{size:14,className:"text-emerald-400"})}),R("div",{className:"w-px h-6 bg-surface-glass mx-1"}),X("button",{onClick:()=>o(!s),className:`px-3 py-2 rounded-lg transition-all text-xs font-medium flex items-center gap-2 shrink-0 ${s?"text-text-primary bg-surface-glass":"text-text-secondary hover:text-cyan-400 hover:bg-surface-glass border border-transparent"}`,title:"Panel 3D / Diagrama",children:[R(Re,{size:14})," ",R("span",{className:"hidden sm:inline",children:"Visualizador"})]}),X("button",{onClick:()=>w(!v),className:`px-3 py-2 rounded-lg transition-all text-xs font-medium flex items-center gap-2 shrink-0 ${v?"text-text-primary bg-surface-glass":"text-text-secondary hover:text-purple-400 hover:bg-surface-glass border border-transparent"}`,title:"Panel de Logs",children:[R(da,{size:14})," ",R("span",{className:"hidden sm:inline",children:"Logs OS"})]}),R("div",{className:"w-px h-6 bg-surface-glass mx-1"}),R("button",{onClick:()=>y(!g),className:`px-3 py-2 rounded-lg transition-all text-xs font-medium flex items-center justify-center shrink-0 ${g?"text-text-muted hover:text-red-400 hover:bg-surface-glass border border-transparent":"text-text-primary bg-surface-glass"}`,title:g?"Activar Audio":"Silenciar",children:g?R(pa,{size:16}):R(ma,{size:16})}),R("select",{value:N,onChange:l=>C(l.target.value),className:"bg-surface-secondary hover:bg-surface-tertiary border border-border-default rounded-lg text-xs font-medium text-text-primary px-3 py-2 outline-hidden cursor-pointer focus:border-cyan-400 transition-colors",children:S?.voices?.map(l=>X("option",{value:l,children:["Voz: ",l]},l))}),R("button",{onClick:f,className:"px-3 py-2 rounded-lg transition-all text-xs font-medium flex items-center justify-center shrink-0 text-text-muted hover:text-text-primary hover:bg-surface-glass border border-transparent",title:"Pantalla Completa",children:c?R(ua,{size:16}):R(ga,{size:16})})]}),X("div",{className:"flex items-center gap-2 sm:gap-3 shrink-0 pr-1",children:[X("label",{className:"flex items-center gap-2 shrink-0 px-4 py-2 rounded-xl font-medium text-sm transition-colors border bg-cyan-500/10 text-cyan-500 hover:bg-cyan-500/20 border-transparent cursor-pointer",title:"Importar DSD",children:[R(Re,{size:16})," ",R("span",{className:"hidden sm:inline",children:"Importar DSD"}),R("input",{type:"file",accept:".dsd,.json",className:"hidden",onChange:l=>{let T=l.target.files?.[0];if(!T)return;let n=new FileReader;n.onload=x=>{try{let a=JSON.parse(x.target?.result);a.format==="decido-standard-document"&&a.blueprint?(ya.getState().setDynamicTimelines(m=>({...m,[a.brand||d]:a.blueprint})),h.getState().addLog(`Se ha importado el blueprint de ${a.brand} (${a.blueprint.keyframes.length} nodos)`,"success")):h.getState().addLog("El archivo no es un DSD v\xE1lido.","error")}catch{h.getState().addLog("Error al parsear archivo DSD.","error")}},n.readAsText(T),l.target.value=""}})]}),X("button",{onClick:b,className:"flex items-center gap-2 shrink-0 px-4 py-2 rounded-xl font-medium text-sm transition-colors border bg-purple-500/10 text-purple-400 hover:bg-purple-500/20 border-transparent",title:"Exportar DSD",children:[R(Re,{size:16})," ",R("span",{className:"hidden sm:inline",children:"Exportar DSD"})]})]})]})});import{Fragment as tt,jsx as F,jsxs as me}from"react/jsx-runtime";var at=xa.memo(function({step:r,isVoiceActive:d,setIsVoiceActive:s,currentTime:o,seekTime:v,playbackSpeed:w,setPlaybackSpeed:g,isPlaying:y,setIsPlaying:N,handleResetPlayground:C,dynamicTimelines:c,prototypeBrand:f,setPrototypeBrand:b,inputValue:S,setInputValue:E,isGenerating:i,handleGeneratePlayground:u,showCanvas:e,setShowCanvas:l,isTerminalOpen:T,setIsTerminalOpen:n,isMuted:x,setIsMuted:a,selectedVoice:m,setSelectedVoice:A,isFullscreen:O,toggleFullscreen:B,handleExport:t,dynamicPersona:k,setSuggestions:P,isCreatorMode:M,VoiceWidget:q,config:te}){if(r==="action"||r==="profile"||!M&&!d)return null;let[W,re]=et(!1),[Q,$]=et(!1),ne=c[f]||{duration:10,keyframes:[]};return me(tt,{children:[F("div",{className:"absolute bottom-0 left-0 w-full p-3 sm:p-4 md:p-6 bg-linear-to-t from-surface-primary via-surface-primary to-transparent z-40 flex flex-col items-center",children:F(ha.div,{layout:!0,className:`w-full max-w-4xl relative ${d?"h-64":""}`,children:d?me("div",{className:"flex flex-col w-full h-full relative p-2 bg-surface-tertiary border border-cyan-500/30 rounded-4xl shadow-lg",children:[me("div",{className:"flex w-full items-center justify-between mb-2",children:[F("span",{className:"text-cyan-400 font-medium px-4 bg-linear-to-r from-cyan-400 via-purple-400 to-indigo-400 text-transparent bg-clip-text animate-pulse",children:"Capturando Audio de IA..."}),F("button",{onClick:()=>s(!1),className:"w-8 h-8 rounded-full bg-surface-glass hover:bg-surface-glass flex items-center justify-center text-text-secondary hover:text-text-primary transition-colors",children:F(va,{size:16})})]}),F("div",{className:"flex-1 w-full rounded-2xl overflow-hidden relative",children:q?F(q,{isCompact:!0,persona:k,onSuggestionsUpdate:P,selectedVoice:m,controls:{setPrototypeBrand:b,setShowCanvas:l,setIsPlaying:N,handleExport:t,setInputValue:E,handleGeneratePlayground:u}}):F("div",{className:"p-4 flex flex-col items-center justify-center h-full text-text-muted font-mono text-sm border border-border-subtle rounded-xl bg-surface-glass",children:"M\xF3dulo de Voz no proporcionado."})})]}):me("div",{className:`bg-surface-tertiary/90 border border-border-default rounded-xl sm:rounded-2xl shadow-xl backdrop-blur-md p-3 sm:p-4 md:p-5 flex flex-col gap-3 sm:gap-4 transition-all ${M?"border-purple-500/30":""}`,children:[M&&F(Je,{currentTime:o,seekTime:v,playbackSpeed:w,setPlaybackSpeed:g,isPlaying:y,setIsPlaying:N,handleResetPlayground:C,currentTimeline:ne}),M&&me(tt,{children:[F(Qe,{inputValue:S,setInputValue:E,isGenerating:i,handleGeneratePlayground:u,setIsVoiceActive:s,prototypeBrand:f,handleExport:t}),F(Ze,{dynamicTimelines:c,prototypeBrand:f,showCanvas:e,setShowCanvas:l,isTerminalOpen:T,setIsTerminalOpen:n,isMuted:x,setIsMuted:a,selectedVoice:m,setSelectedVoice:A,isFullscreen:O,toggleFullscreen:B,handleExport:t,config:te,isBlueprintManagerOpen:W,setIsBlueprintManagerOpen:re,isTreeOpen:Q,setIsTreeOpen:$})]})]})})}),F(Ge,{isOpen:W,onClose:()=>re(!1)}),F(Ke,{isOpen:Q,onClose:()=>$(!1)})]})});import{useTimelineStore as Ba}from"@decido/engine";import{useCallback as Me,useEffect as wa}from"react";import{useTimelineStore as Na}from"@decido/engine";import{useEngineStore as De}from"@decido/engine";import{useReactiveEngine as Ca}from"@decido/engine";import{useAIDirector as Sa}from"@decido/engine";import{AudioController as Ta}from"@decido/engine";var st=p=>{let r=h(e=>e.prototypeBrand),d=h(e=>e.setInputValue),s=h(e=>e.addLog),o=h(e=>e.addChatMessage),v=Na(e=>e.timelines),{semanticMatch:w,isThinking:g}=Ca(p),{generateKeyframeOnTheFly:y,generateTimeline:N,isGenerating:C}=Sa(p),{emitEvent:c,isConnected:f}=Ae(),b=v[r],S=De(e=>e.lastEvent);wa(()=>{let e=T=>{let n=T.detail?.html;if(n){let x=`web-${Date.now()}`;de({chatId:x,shellType:"nexusai-preview",label:"Reporte en Vivo",data:{html:n,css:"",javascript:""}}),h.getState().setIsSidebarOpen(!1)}},l=T=>{T.detail?.query&&h.getState().setIsSidebarOpen(!1)};return window.addEventListener("studio:render-preview",e),window.addEventListener("studio:search-order",l),()=>{window.removeEventListener("studio:render-preview",e),window.removeEventListener("studio:search-order",l)}},[]);let E=Me(e=>{if(!b)return;let l=b.keyframes.find(T=>T.id===e);l&&(s(`Reaccionando a Nodo: ${l.state||l.id}`,"system"),De.getState().dispatchEvent({type:"USER_INTENT_MATCHED",targetNodeId:e,routeHandle:"success"}))},[b,s]),i=Me(async e=>{if(!e||!e.trim())return;s(`Analizando intenci\xF3n: "${e}"`,"system"),Ta.stop(),o({type:"text",sender:"user",text:e});let l=localStorage.getItem("decido_selected_shell");if(l==="nexusai-preview"||l==="iframe"){s("\u{1F310} Web Preview mode \u2014 generando HTML directo...","system"),o({type:"text",sender:"system",text:"\u{1F310} Generando dise\xF1o web..."});let m=localStorage.getItem("google_gemini_api_key")||window.__DECIDO__?._apiKey||import.meta.env?.VITE_GEMINI_API_KEY||"",A=localStorage.getItem("decido_gemini_model")||"gemini-3-flash-preview";if(!m){o({type:"error",sender:"system",text:"\u26A0\uFE0F No se encontr\xF3 API key de Gemini."});return}let O=Ne.getState().getActiveInstance(),B=O?.data?.html||"",t=O?.data?.css||"",k=O?.data?.javascript||"",P=!!B.trim(),M=window.__DECIDO__?.selectedElementSelector||null,q=M?`
|
|
6
|
+
|
|
7
|
+
IMPORTANT: The user has SELECTED a specific element: \`${M}\`. Focus your changes ONLY on this element and its children. Do not modify other parts of the page.`:"",te=P?`You are an expert web developer. The user has an EXISTING web page and wants to MODIFY it.${q}
|
|
8
|
+
|
|
9
|
+
CURRENT HTML:
|
|
10
|
+
\`\`\`html
|
|
11
|
+
${B}
|
|
12
|
+
\`\`\`
|
|
13
|
+
|
|
14
|
+
CURRENT CSS:
|
|
15
|
+
\`\`\`css
|
|
16
|
+
${t}
|
|
17
|
+
\`\`\`
|
|
18
|
+
|
|
19
|
+
CURRENT JavaScript:
|
|
20
|
+
\`\`\`javascript
|
|
21
|
+
${k}
|
|
22
|
+
\`\`\`
|
|
23
|
+
|
|
24
|
+
Apply the user's requested changes to the EXISTING code above. Keep everything else intact.
|
|
25
|
+
IMPORTANT: DO NOT USE JSON. Instead, strictly format your response using these XML-like tags:
|
|
26
|
+
<decido-html>
|
|
27
|
+
<!-- your html here without <html> or <body> tags -->
|
|
28
|
+
</decido-html>
|
|
29
|
+
<decido-css>
|
|
30
|
+
/* your tailwind/custom css here */
|
|
31
|
+
</decido-css>
|
|
32
|
+
<decido-js>
|
|
33
|
+
// your javascript here
|
|
34
|
+
</decido-js>
|
|
35
|
+
Use Tailwind CSS classes. Do not include explanatory text outside the tags.`:`You are an expert web developer. Generate HTML, CSS, and JavaScript for the user's request.
|
|
36
|
+
IMPORTANT: DO NOT USE JSON. Instead, strictly format your response using these XML-like tags:
|
|
37
|
+
<decido-html>
|
|
38
|
+
<!-- your html here without <html> or <body> tags -->
|
|
39
|
+
</decido-html>
|
|
40
|
+
<decido-css>
|
|
41
|
+
/* your tailwind/custom css here */
|
|
42
|
+
</decido-css>
|
|
43
|
+
<decido-js>
|
|
44
|
+
// your javascript here
|
|
45
|
+
</decido-js>
|
|
46
|
+
Use Tailwind CSS classes for styling (it will be auto-loaded). Write modern, responsive, visually stunning code.
|
|
47
|
+
Use vibrant gradients, dark backgrounds (#0a0a0a, #1a1a2e), neon accent colors, smooth animations, and premium typography.
|
|
48
|
+
Do not include any explanatory text outside the tags.`;try{let W=h.getState().activeChatId||"_default",Q=(h.getState().chatMessagesByInstance[W]||[]).filter(L=>(L.sender==="user"||L.sender==="agent")&&L.type==="text"&&L.text?.trim()).slice(-10),$=[];for(let L of Q){let ce=L.sender==="user"?"user":"model";$.length>0&&$[$.length-1].role===ce?$[$.length-1].parts[0].text+=`
|
|
49
|
+
`+(L.text||""):$.push({role:ce,parts:[{text:L.text||""}]})}($.length===0||$[$.length-1].role!=="user")&&$.push({role:"user",parts:[{text:e}]});let ne=`https://generativelanguage.googleapis.com/v1beta/models/${A}:generateContent?key=${m}`;be.gemini(`POST ${A} | ${$.length} turns | prompt: ${te.length} chars`,{model:A,turnsCount:$.length});let pe=performance.now(),ae=await fetch(ne,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:$,systemInstruction:{parts:[{text:te}]},generationConfig:{temperature:.7,maxOutputTokens:16384}})}),ue=Math.round(performance.now()-pe),ge=await ae.json(),H=ge?.candidates?.[0]?.content?.parts?.[0]?.text||"",fe=ge?.usageMetadata?.totalTokenCount||0;be.gemini(`Response ${ae.status} | ${ue}ms | ${fe} tokens | ${H.length} chars`,{status:ae.status,duration:ue,tokens:fe});let j={html:"",css:"",javascript:""},ie=/<decido-html>([\s\S]*?)<\/decido-html>/i.exec(H),se=/<decido-css>([\s\S]*?)<\/decido-css>/i.exec(H),Z=/<decido-js>([\s\S]*?)<\/decido-js>/i.exec(H);if(ie||se||Z)j.html=ie?ie[1].trim():"",j.css=se?se[1].trim():"",j.javascript=Z?Z[1].trim():"";else{let L=H.trim(),ce=/```(?:json)?\s*([\s\S]*?)```/i.exec(H);ce?L=ce[1].trim():L=L.replace(/^```json\s*/i,"").replace(/\s*```$/i,"").trim();try{j=JSON.parse(L)}catch($e){console.error("Web Preview Parse Error:",$e,H),j.html=`
|
|
50
|
+
<div class="fixed inset-0 flex flex-col items-center justify-center bg-gray-900 text-white p-6 text-center font-sans z-[9999]">
|
|
51
|
+
<div class="bg-red-500/10 border border-red-500 text-red-400 p-4 rounded-xl max-w-lg shadow-2xl">
|
|
52
|
+
<h3 class="font-bold text-lg mb-2">Error de Generaci\xF3n AI</h3>
|
|
53
|
+
<p class="text-sm opacity-80 mb-4">El modelo gener\xF3 c\xF3digo que no cumple con el formato XML o JSON estricto.</p>
|
|
54
|
+
<div class="text-xs text-left bg-black/50 p-2 rounded overflow-auto max-h-48 text-gray-300">
|
|
55
|
+
${$e.message}
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>`}}let le;P&&O?(le=O.id,Ne.getState().upsertInstance({id:le,sourceChatId:O.sourceChatId,shellType:"nexusai-preview",label:O.label,data:{html:j.html,css:j.css,javascript:j.javascript}})):(le=`web-${Date.now()}`,de({chatId:le,shellType:"nexusai-preview",label:e.slice(0,40),data:{html:j.html,css:j.css,javascript:j.javascript}})),o({type:"text",sender:"agent",text:`${P?"\u{1F504} Dise\xF1o actualizado":"\u2705 Dise\xF1o web generado"}. Revisa el panel derecho.`,morphInstanceId:le}),s(`\u{1F310} HTML ${P?"actualizado":"generado"} en Web Preview`,"success")}catch(W){be.gemini(`ERROR: ${W.message}`,{error:W.message},"error"),o({type:"error",sender:"system",text:`Error generando HTML: ${W.message}`})}return}else if(l==="dataway-studio"){s("Dataway Studio \u2014 generando M-Script...","system");let m=localStorage.getItem("dataway_active_resource"),A=localStorage.getItem("dataway_active_connector")||"google_sheets";if(!m){o({type:"error",sender:"system",text:"Debes seleccionar una tabla en el panel Recursos de Dataway primero."});return}let O=`loading-${Date.now()}`;o({id:O,type:"text",sender:"system",text:"Analizando esquema y generando M-Script..."});try{let B=import.meta.env?.VITE_API_BASE_URL||"http://localhost:3001",t=await fetch(`${B}/api/dataway/copilot`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:e,connectorId:A,resource:m})});if(!t.ok){let P=await t.json().catch(()=>({error:`HTTP ${t.status}`}));throw new Error(P.error||`Error del servidor HTTP ${t.status}`)}let k=await t.json();if(k.script){let P=k.explanation?`**An\xE1lisis de la IA:** ${k.explanation}
|
|
59
|
+
|
|
60
|
+
`:"";o({type:"text",sender:"agent",text:`${P}Pipeline actualizado. Revisa el resultado:
|
|
61
|
+
|
|
62
|
+
\`\`\`dataway
|
|
63
|
+
${k.script}
|
|
64
|
+
\`\`\``}),window.dispatchEvent(new CustomEvent("intent:dataway-generate-script",{detail:{script:k.script,resource:k.targetResource}}))}else o({type:"error",sender:"system",text:"El agente no retorn\xF3 c\xF3digo."})}catch(B){o({type:"error",sender:"system",text:`Error de IA: ${B.message}`})}return}if(!b){s("No hay blueprint activo para evaluar.","error");return}let T=typeof window<"u"&&window.__DECIDO__?.intentEnabled!==!1,n=T&&/agrega|suma|añade|conecta|modifica|cambia|elimina|borra|parchea|actualiza|inserta|mueve/i.test(e);if(T&&/grafo|flujo|nodos|complejo|historia|blueprint|escenario|onboarding|proceso|workflow|pipeline|crea\s+(un|una|el|la|los|las)\s|diseña|genera\s+(un|una)|construye|orquest|trigger|subflujo|set\s+variable|marque\s+user\.|shell|tema|theme|sidebar|panel|activity\s*bar|status\s*bar|top\s*bar|notificaci[oó]n|shortcut|atajo|layout|configura\s+(el|la|los|las)\s/i.test(e)||n){s(`Intenci\xF3n compleja detectada. ${n?"Editando Grafo...":"Construyendo Nuevo Grafo..."}`,"system");let m=await N(e,r,15,n,b);m===!0?o({type:"text",sender:"system",text:"Se ha modificado el grafo contextualmente seg\xFAn tus instrucciones."}):m&&m.keyframes&&m.keyframes.length>0?(E(m.keyframes[0].id),o({type:"text",sender:"system",text:"Se ha creado un nuevo grafo."})):s("Fallo al generar el Blueprint con IA.","error");return}let a=T?await w(e,b):null;if(a&&a!=="GENERATE"&&typeof a=="string")E(a);else if(a&&typeof a=="object"&&a.intent==="UI_ACTION"){s(`\u{1F3A8} UI_ACTION detectada. Montando artefacto: ${a.artifact}`,"system"),h.getState().setActiveArtifactData({artifact:a.artifact,...a.payload});let m=`ui-${a.artifact}-${Date.now()}`;de({chatId:m,shellType:"nexusai-preview",label:a.artifact||"Visualizaci\xF3n",data:{artifact:a.artifact,...a.payload}}),o({type:"text",sender:"agent",text:"He preparado la visualizaci\xF3n solicitada en el panel derecho.",morphInstanceId:m})}else if(a&&typeof a=="object"&&a.intent==="MCP_ACTION")s(`Manejando intenci\xF3n MCP_ACTION: ${a.tool}`,"system"),De.getState().dispatchEvent({type:"MCP_EXECUTION_REQUESTED",payload:{tool:a.tool,parameters:a.parameters}}),o({type:"text",sender:"system",text:`Ejecutando herramienta externa: ${a.tool}`});else if(a&&typeof a=="object"&&a.intent==="UI_COMPONENT"){s(`\u{1F3A8} UI_COMPONENT generado por IA: ${a.name}`,"system");let m=`ai_${Date.now()}`;ye.getState().addComponent({id:m,name:a.name||"AI Component",category:a.category||"custom",schema:a.schema,dataContract:{inputs:{},outputs:{}},tags:a.tags||["ai-generated"],source:"ai-generated",createdAt:Date.now(),updatedAt:Date.now()}),de({chatId:`comp-${m}`,shellType:"nexusai-preview",label:a.name||"AI Component",data:{html:a.schema,schema:a.schema},artifact:{id:m,name:a.name||"AI Component",data:{html:a.schema,schema:a.schema}}}),o({type:"ui-artifact",sender:"agent",text:`\u{1F3A8} ${a.name}`,actorId:"system",uiSchema:JSON.stringify(a.schema),morphInstanceId:`comp-${m}`}),o({type:"text",sender:"system",text:`Componente "${a.name}" guardado en la biblioteca UI. Accede con /ui.`,morphInstanceId:`comp-${m}`})}else{s("Intenci\xF3n reactiva detectada. Inventando nodo en vivo...","system");let m=await y(e,r,b);m?E(m.id):s("Fallo al generar morfolog\xEDa reactiva.","error")}},[b,r,w,y,N,E,s,o,c,f]),u=Me(async e=>{let l=typeof e=="string"?e:void 0;e&&typeof e.preventDefault=="function"&&e.preventDefault();let T=h.getState().inputValue,n=l||T;!n||typeof n!="string"||!n.trim()||(await i(n),d(""))},[i,d]);return{handleUserCommand:i,handleGeneratePlayground:u,isGenerating:C||g}};import{useState as ot,useRef as Pa,useCallback as rt}from"react";function nt(){let[p,r]=ot(!1),[d,s]=ot(null),o=Pa(null),v=rt(async()=>{try{let g=await navigator.mediaDevices.getDisplayMedia({video:{displaySurface:"browser",frameRate:{ideal:60}},audio:!0}),N=[{mimeType:"video/webm;codecs=vp9,opus",videoBitsPerSecond:8e6},{mimeType:"video/webm;codecs=h264,opus",videoBitsPerSecond:8e6},{mimeType:"video/webm;codecs=vp8,opus",videoBitsPerSecond:5e6},{mimeType:"video/webm",videoBitsPerSecond:25e5}].find(f=>MediaRecorder.isTypeSupported(f.mimeType));N||(N={mimeType:"",videoBitsPerSecond:25e5});let C=new MediaRecorder(g,N),c=[];return C.ondataavailable=f=>{f.data.size>0&&c.push(f.data)},C.onstop=()=>{let f=new Blob(c,{type:"video/webm"}),b=URL.createObjectURL(f),S=document.createElement("a");S.style.display="none",S.href=b,S.download=`decido-demo-${new Date().getTime()}.webm`,document.body.appendChild(S),S.click(),URL.revokeObjectURL(b),r(!1)},o.current=C,new Promise(f=>{let b=3;s(b);let S=setInterval(()=>{b-=1,b>0?s(b):(clearInterval(S),s(null),C.start(),r(!0),g.getVideoTracks()[0].onended=()=>{C.state!=="inactive"&&C.stop()},f(!0))},1e3)})}catch(g){return console.error("Error starting recording:",g),r(!1),s(null),!1}},[]),w=rt(()=>{o.current&&o.current.state!=="inactive"&&o.current.stop()},[]);return{isRecording:p,countdown:d,startRecording:v,stopRecording:w}}import{useMemo as ka}from"react";import{usePlaybackSimulator as Ia}from"@decido/engine";function it(p){let r=ka(()=>({id:`tape-${p}`,events:[{t:.1,event:{type:"SYSTEM_START"},description:"Arranque Autom\xE1tico"}]}),[p]);return Ia(r)}import{useTimelineStore as Ea}from"@decido/engine";function lt(){let{prototypeBrand:p,addLog:r}=h(),d=Ea(o=>o.timelines[p]);return{handleExport:async()=>{if(!d){r("No hay un blueprint activo para exportar.","error");return}try{let o={format:"decido-standard-document",version:"1.0",exportedAt:new Date().toISOString(),brand:p,blueprint:d},v=new Blob([JSON.stringify(o,null,2)],{type:"application/json"}),w=URL.createObjectURL(v),g=document.createElement("a");g.href=w,g.download=`${p}-demo.dsd`,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(w),r(`Grafo exportado exitosamente como ${p}-demo.dsd`,"success")}catch(o){r(`Error exportando DSD: ${o}`,"error"),console.error(o)}}}}import{useEffect as Ra,useCallback as Ma}from"react";function ct(){let p=h(s=>s.isFullscreen),r=h(s=>s.setIsFullscreen),d=Ma(()=>{document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():document.documentElement.requestFullscreen().catch(s=>console.error(`Fullscreen err: ${s.message}`))},[]);return Ra(()=>{let s=()=>r(!!document.fullscreenElement);return document.addEventListener("fullscreenchange",s),()=>document.removeEventListener("fullscreenchange",s)},[r]),{isFullscreen:p,toggleFullscreen:d}}import{Fragment as za,jsx as G,jsxs as Oe}from"react/jsx-runtime";function Bo({aiProvider:p,VoiceWidget:r,config:d}){let s=h(),{step:o,selectedProfile:v,prototypeBrand:w,setPrototypeBrand:g,isMuted:y,setIsMuted:N,selectedVoice:C,setSelectedVoice:c,isVoiceActive:f,setIsVoiceActive:b,isTerminalOpen:S,setIsTerminalOpen:E,isCreatorMode:i,setIsCreatorMode:u,inputValue:e,setInputValue:l,logs:T,setLogs:n}=s,x=Da(null);Oa(()=>{x.current&&x.current.scrollIntoView({behavior:"smooth"})},[T]);let a=Ba(Z=>Z.timelines),{handleGeneratePlayground:m,isGenerating:A}=st(p),{demoState:O,showCanvas:B,setShowCanvas:t}=_e(),{currentTime:k,isPlaying:P,setIsPlaying:M,playbackSpeed:q,setPlaybackSpeed:te,seekTime:W,resetSimulation:re}=it(w),{safeConfig:Q,activeConfig:$,suggestions:ne,setSuggestions:pe,dynamicPersona:ae,authAvailableLicenses:ue,handleProfileSelect:ge}=Fe(d,w),{handleExport:H}=lt(),{isFullscreen:fe,toggleFullscreen:j}=ct(),{isRecording:ie}=nt(),se=Be(Z=>Z.isOpen);return G("div",{className:"flex flex-col h-full relative min-w-0 min-h-0",children:Oe($a,{orientation:"vertical",className:"flex-1 min-h-0 min-w-0",children:[Oe(dt,{id:"chat-area",defaultSize:se?65:100,className:"flex flex-col relative min-h-0 min-w-0",children:[G("div",{className:`flex-1 z-10 flex flex-col relative min-h-0 min-w-0 ${i?"overflow-y-auto p-4 md:p-6 pb-48 justify-end":"overflow-hidden"}`,children:G(Ce,{fallbackName:"Motor de Chat",children:G(ze,{step:o,selectedProfile:v,authAvailableLicenses:ue,handleProfileSelect:ge,activeConfig:$,demoState:O,suggestions:ne,setInputValue:l,isGenerating:A,config:Q,isCreatorMode:i,handleGeneratePlayground:m,isVoiceActive:f,setIsVoiceActive:b,VoiceWidget:r,dynamicPersona:ae,setSuggestions:pe,selectedVoice:C,showCanvas:B,setShowCanvas:t})})}),i&&G(Ce,{fallbackName:"Terminal de Logs",children:G(je,{isOpen:S,setIsOpen:E,logs:T,setLogs:n,logsEndRef:x})}),G(at,{step:o,isVoiceActive:f,setIsVoiceActive:b,currentTime:k,seekTime:W,playbackSpeed:q,setPlaybackSpeed:te,dynamicTimelines:a,prototypeBrand:w,setPrototypeBrand:g,inputValue:e,setInputValue:l,isGenerating:A,handleGeneratePlayground:m,isPlaying:P,setIsPlaying:M,handleResetPlayground:re,showCanvas:B,setShowCanvas:t,isTerminalOpen:S,setIsTerminalOpen:E,isMuted:y,setIsMuted:N,selectedVoice:C,setSelectedVoice:c,isFullscreen:fe,toggleFullscreen:j,demoState:O,isRecording:ie,handleExport:H,dynamicPersona:ae,setSuggestions:pe,isCreatorMode:i,setIsCreatorMode:u,VoiceWidget:r,config:Q})]}),se&&Oe(za,{children:[G(Aa,{className:"h-2 hover:bg-cyan-500/20 active:bg-cyan-500/30 transition-colors cursor-row-resize z-40 relative group flex items-center justify-center",children:G("div",{className:"h-[2px] w-12 bg-surface-glass rounded-full group-hover:bg-cyan-500 transition-colors"})}),G(dt,{id:"debug-panel",defaultSize:35,minSize:15,children:G(Le,{})})]})]})})}export{Bo as CenterComposite};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-YAYNNUEX.mjs";import"./chunk-BCP43BRV.mjs";import"./chunk-O3OWL3Q2.mjs";import"./chunk-ZKD74U4X.mjs";import"./chunk-BSJBW64M.mjs";import"./chunk-AGAAZ2MU.mjs";import"./chunk-YHFKY5MB.mjs";import"./chunk-XDA6ZRIQ.mjs";import"./chunk-YEKQJ4YC.mjs";export{a as DebugPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as a}from"./chunk-5FWJFDER.mjs";import"./chunk-C5FD536O.mjs";import"./chunk-BCP43BRV.mjs";import"./chunk-O3OWL3Q2.mjs";import"./chunk-ZKD74U4X.mjs";import"./chunk-AGAAZ2MU.mjs";import"./chunk-YHFKY5MB.mjs";import"./chunk-XDA6ZRIQ.mjs";import"./chunk-YEKQJ4YC.mjs";export{a as MorphShell};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-XTDMHHMW.mjs";import"./chunk-6K3AFDP5.mjs";import"./chunk-XDA6ZRIQ.mjs";import"./chunk-YEKQJ4YC.mjs";export{a as PlaygroundAppSidebar};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as a}from"./chunk-S3AQ4QDD.mjs";import"./chunk-C5FD536O.mjs";import"./chunk-6K3AFDP5.mjs";import"./chunk-DTH34ILQ.mjs";import"./chunk-ZKD74U4X.mjs";import"./chunk-BSJBW64M.mjs";import"./chunk-AGAAZ2MU.mjs";import"./chunk-YHFKY5MB.mjs";import"./chunk-XDA6ZRIQ.mjs";import"./chunk-YEKQJ4YC.mjs";export{a as PlaygroundChat};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-3YEFIKFH.mjs";import"./chunk-YEKQJ4YC.mjs";export{a as PlaygroundTerminal};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-YEKQJ4YC.mjs";import{probe as n,probeStart as a}from"@decido/logger";var t=class{worker=null;config;pendingRequests=new Map;isReady=!1;readyPromise;readyResolve;onRpcRequest;onWidgetRegister;onLog;onError;constructor(e){this.config=e,this.readyPromise=new Promise(r=>{this.readyResolve=r})}async start(){let e=a("sandbox.start",{context:{module:"sdk",component:"PluginSandbox"}});if(this.config.trusted){this.isReady=!0,this.readyResolve(),e({pluginId:this.config.pluginId,trusted:!0});return}let r=new URL("./sandbox-worker.js",import.meta.url);this.worker=new Worker(r,{type:"module",name:`plugin-${this.config.pluginId}`}),this.worker.onmessage=i=>{this.handleWorkerMessage(i.data)},this.worker.onerror=i=>{n("sandbox.error",{pluginId:this.config.pluginId,error:i.message},{level:"error",context:{module:"sdk",component:"PluginSandbox"}}),console.error(`[Sandbox:${this.config.pluginId}] Worker error:`,i.message),this.onError&&this.onError(i.message)},this.sendToWorker({type:"SANDBOX_INIT",pluginId:this.config.pluginId,payload:{pluginUrl:this.config.pluginUrl,tenantId:this.config.tenantId,permissions:this.config.permissions||[]}});let o=this.config.timeout||1e4;await Promise.race([this.readyPromise,new Promise((i,s)=>setTimeout(()=>s(new Error(`Plugin "${this.config.pluginId}" sandbox init timed out after ${o}ms`)),o))]),e({pluginId:this.config.pluginId,trusted:!1})}async mount(){this.config.trusted||this.sendToWorker({type:"SANDBOX_MOUNT",pluginId:this.config.pluginId})}async unmount(){this.config.trusted||this.sendToWorker({type:"SANDBOX_UNMOUNT",pluginId:this.config.pluginId})}broadcastEvent(e,r){this.worker&&this.sendToWorker({type:"SANDBOX_EVENT_BROADCAST",pluginId:this.config.pluginId,payload:{topic:e,data:r}})}destroy(){n("sandbox.destroy",{pluginId:this.config.pluginId,pendingRequests:this.pendingRequests.size},{context:{module:"sdk",component:"PluginSandbox"}}),this.worker&&(this.sendToWorker({type:"SANDBOX_DESTROY",pluginId:this.config.pluginId}),setTimeout(()=>{this.worker?.terminate(),this.worker=null},500));for(let[,e]of this.pendingRequests)clearTimeout(e.timer),e.reject(new Error("Sandbox destroyed"));this.pendingRequests.clear()}sendToWorker(e){this.worker?.postMessage(e)}handleWorkerMessage(e){switch(e.type){case"SANDBOX_READY":this.isReady=!0,this.readyResolve();break;case"SANDBOX_RPC_REQUEST":n("sandbox.rpc.request",{pluginId:e.pluginId,action:e.payload?.action},{context:{module:"sdk",component:"PluginSandbox"},security:{tier:1}}),this.handleRpcFromPlugin(e);break;case"SANDBOX_RPC_RESPONSE":this.handleRpcResponse(e);break;case"SANDBOX_EVENT_EMIT":break;case"SANDBOX_WIDGET_REGISTER":this.onWidgetRegister&&this.onWidgetRegister(e.payload);break;case"SANDBOX_LOG":if(this.onLog)this.onLog(e.payload?.level||"log",e.payload?.args||[]);else{let r=e.payload?.level||"log",o=`[Sandbox:${e.pluginId}]`;console[r]?.(o,...e.payload?.args||[])}break;case"SANDBOX_ERROR":console.error(`[Sandbox:${e.pluginId}] Error:`,e.error),this.onError&&this.onError(e.error||"Unknown error");break;default:console.warn(`[Sandbox:${e.pluginId}] Unknown message type: ${e.type}`)}}async handleRpcFromPlugin(e){if(!e.requestId||!this.onRpcRequest){this.sendToWorker({type:"SANDBOX_RPC_RESPONSE",pluginId:e.pluginId,requestId:e.requestId,error:"No RPC handler available"});return}try{let r=await this.onRpcRequest(e.payload?.action,e.payload?.data);this.sendToWorker({type:"SANDBOX_RPC_RESPONSE",pluginId:e.pluginId,requestId:e.requestId,payload:r})}catch(r){this.sendToWorker({type:"SANDBOX_RPC_RESPONSE",pluginId:e.pluginId,requestId:e.requestId,error:r.message})}}handleRpcResponse(e){let r=e.requestId;if(!r)return;let o=this.pendingRequests.get(r);o&&(clearTimeout(o.timer),this.pendingRequests.delete(r),e.error?o.reject(new Error(e.error)):o.resolve(e.payload))}};export{t as PluginSandbox};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{a as jt,b as Kt,c as ot,d as Vt,h as Gt,i as $e,j as $t,k as Ht,l as Ut,m as Yt,o as qt,p as Wt,q as Jt}from"./chunk-POBZMHZ5.mjs";import{d as Ft}from"./chunk-O3OWL3Q2.mjs";import{a as Ge}from"./chunk-BSJBW64M.mjs";import"./chunk-YHFKY5MB.mjs";import{a as ee}from"./chunk-XDA6ZRIQ.mjs";import"./chunk-YEKQJ4YC.mjs";import gn,{useCallback as Oe,useEffect as Ze,useRef as Hr,useState as Bt}from"react";import{useEngineStore as Qe,useTimelineStore as Ne}from"@decido/engine";import{convertLegacyTimelineToBlueprint as hn}from"@decido/core";import{useBlueprintNavigation as et}from"@decido/engine";var re=(u,s)=>()=>(s||u((s={exports:{}}).exports,s),s.exports),ke=re((u,s)=>{var f=Object.defineProperty,x=(E,y,A)=>y in E?f(E,y,{enumerable:!0,configurable:!0,writable:!0,value:A}):E[y]=A,d=(E,y)=>()=>(y||E((y={exports:{}}).exports,y),y.exports),e=(E,y,A)=>x(E,typeof y!="symbol"?y+"":y,A),r=d((E,y)=>{"use strict";var A="\0",S="\0",P="",O=class{constructor(g){e(this,"_isDirected",!0),e(this,"_isMultigraph",!1),e(this,"_isCompound",!1),e(this,"_label"),e(this,"_defaultNodeLabelFn",()=>{}),e(this,"_defaultEdgeLabelFn",()=>{}),e(this,"_nodes",{}),e(this,"_in",{}),e(this,"_preds",{}),e(this,"_out",{}),e(this,"_sucs",{}),e(this,"_edgeObjs",{}),e(this,"_edgeLabels",{}),e(this,"_nodeCount",0),e(this,"_edgeCount",0),e(this,"_parent"),e(this,"_children"),g&&(this._isDirected=Object.hasOwn(g,"directed")?g.directed:!0,this._isMultigraph=Object.hasOwn(g,"multigraph")?g.multigraph:!1,this._isCompound=Object.hasOwn(g,"compound")?g.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[S]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(g){return this._label=g,this}graph(){return this._label}setDefaultNodeLabel(g){return this._defaultNodeLabelFn=g,typeof g!="function"&&(this._defaultNodeLabelFn=()=>g),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var g=this;return this.nodes().filter(a=>Object.keys(g._in[a]).length===0)}sinks(){var g=this;return this.nodes().filter(a=>Object.keys(g._out[a]).length===0)}setNodes(g,a){var m=arguments,v=this;return g.forEach(function(C){m.length>1?v.setNode(C,a):v.setNode(C)}),this}setNode(g,a){return Object.hasOwn(this._nodes,g)?(arguments.length>1&&(this._nodes[g]=a),this):(this._nodes[g]=arguments.length>1?a:this._defaultNodeLabelFn(g),this._isCompound&&(this._parent[g]=S,this._children[g]={},this._children[S][g]=!0),this._in[g]={},this._preds[g]={},this._out[g]={},this._sucs[g]={},++this._nodeCount,this)}node(g){return this._nodes[g]}hasNode(g){return Object.hasOwn(this._nodes,g)}removeNode(g){var a=this;if(Object.hasOwn(this._nodes,g)){var m=v=>a.removeEdge(a._edgeObjs[v]);delete this._nodes[g],this._isCompound&&(this._removeFromParentsChildList(g),delete this._parent[g],this.children(g).forEach(function(v){a.setParent(v)}),delete this._children[g]),Object.keys(this._in[g]).forEach(m),delete this._in[g],delete this._preds[g],Object.keys(this._out[g]).forEach(m),delete this._out[g],delete this._sucs[g],--this._nodeCount}return this}setParent(g,a){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(a===void 0)a=S;else{a+="";for(var m=a;m!==void 0;m=this.parent(m))if(m===g)throw new Error("Setting "+a+" as parent of "+g+" would create a cycle");this.setNode(a)}return this.setNode(g),this._removeFromParentsChildList(g),this._parent[g]=a,this._children[a][g]=!0,this}_removeFromParentsChildList(g){delete this._children[this._parent[g]][g]}parent(g){if(this._isCompound){var a=this._parent[g];if(a!==S)return a}}children(g=S){if(this._isCompound){var a=this._children[g];if(a)return Object.keys(a)}else{if(g===S)return this.nodes();if(this.hasNode(g))return[]}}predecessors(g){var a=this._preds[g];if(a)return Object.keys(a)}successors(g){var a=this._sucs[g];if(a)return Object.keys(a)}neighbors(g){var a=this.predecessors(g);if(a){let v=new Set(a);for(var m of this.successors(g))v.add(m);return Array.from(v.values())}}isLeaf(g){var a;return this.isDirected()?a=this.successors(g):a=this.neighbors(g),a.length===0}filterNodes(g){var a=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});a.setGraph(this.graph());var m=this;Object.entries(this._nodes).forEach(function([M,H]){g(M)&&a.setNode(M,H)}),Object.values(this._edgeObjs).forEach(function(M){a.hasNode(M.v)&&a.hasNode(M.w)&&a.setEdge(M,m.edge(M))});var v={};function C(M){var H=m.parent(M);return H===void 0||a.hasNode(H)?(v[M]=H,H):H in v?v[H]:C(H)}return this._isCompound&&a.nodes().forEach(M=>a.setParent(M,C(M))),a}setDefaultEdgeLabel(g){return this._defaultEdgeLabelFn=g,typeof g!="function"&&(this._defaultEdgeLabelFn=()=>g),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(g,a){var m=this,v=arguments;return g.reduce(function(C,M){return v.length>1?m.setEdge(C,M,a):m.setEdge(C,M),M}),this}setEdge(){var g,a,m,v,C=!1,M=arguments[0];typeof M=="object"&&M!==null&&"v"in M?(g=M.v,a=M.w,m=M.name,arguments.length===2&&(v=arguments[1],C=!0)):(g=M,a=arguments[1],m=arguments[3],arguments.length>2&&(v=arguments[2],C=!0)),g=""+g,a=""+a,m!==void 0&&(m=""+m);var H=D(this._isDirected,g,a,m);if(Object.hasOwn(this._edgeLabels,H))return C&&(this._edgeLabels[H]=v),this;if(m!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(g),this.setNode(a),this._edgeLabels[H]=C?v:this._defaultEdgeLabelFn(g,a,m);var W=K(this._isDirected,g,a,m);return g=W.v,a=W.w,Object.freeze(W),this._edgeObjs[H]=W,L(this._preds[a],g),L(this._sucs[g],a),this._in[a][H]=W,this._out[g][H]=W,this._edgeCount++,this}edge(g,a,m){var v=arguments.length===1?$(this._isDirected,arguments[0]):D(this._isDirected,g,a,m);return this._edgeLabels[v]}edgeAsObj(){let g=this.edge(...arguments);return typeof g!="object"?{label:g}:g}hasEdge(g,a,m){var v=arguments.length===1?$(this._isDirected,arguments[0]):D(this._isDirected,g,a,m);return Object.hasOwn(this._edgeLabels,v)}removeEdge(g,a,m){var v=arguments.length===1?$(this._isDirected,arguments[0]):D(this._isDirected,g,a,m),C=this._edgeObjs[v];return C&&(g=C.v,a=C.w,delete this._edgeLabels[v],delete this._edgeObjs[v],B(this._preds[a],g),B(this._sucs[g],a),delete this._in[a][v],delete this._out[g][v],this._edgeCount--),this}inEdges(g,a){return this.isDirected()?this.filterEdges(this._in[g],g,a):this.nodeEdges(g,a)}outEdges(g,a){return this.isDirected()?this.filterEdges(this._out[g],g,a):this.nodeEdges(g,a)}nodeEdges(g,a){if(g in this._nodes)return this.filterEdges({...this._in[g],...this._out[g]},g,a)}filterEdges(g,a,m){if(g){var v=Object.values(g);return m?v.filter(function(C){return C.v===a&&C.w===m||C.v===m&&C.w===a}):v}}};function L(g,a){g[a]?g[a]++:g[a]=1}function B(g,a){--g[a]||delete g[a]}function D(g,a,m,v){var C=""+a,M=""+m;if(!g&&C>M){var H=C;C=M,M=H}return C+P+M+P+(v===void 0?A:v)}function K(g,a,m,v){var C=""+a,M=""+m;if(!g&&C>M){var H=C;C=M,M=H}var W={v:C,w:M};return v&&(W.name=v),W}function $(g,a){return D(g,a.v,a.w,a.name)}y.exports=O}),i=d((E,y)=>{y.exports="3.0.2"}),t=d((E,y)=>{y.exports={Graph:r(),version:i()}}),l=d((E,y)=>{var A=r();y.exports={write:S,read:L};function S(B){var D={options:{directed:B.isDirected(),multigraph:B.isMultigraph(),compound:B.isCompound()},nodes:P(B),edges:O(B)};return B.graph()!==void 0&&(D.value=structuredClone(B.graph())),D}function P(B){return B.nodes().map(function(D){var K=B.node(D),$=B.parent(D),g={v:D};return K!==void 0&&(g.value=K),$!==void 0&&(g.parent=$),g})}function O(B){return B.edges().map(function(D){var K=B.edge(D),$={v:D.v,w:D.w};return D.name!==void 0&&($.name=D.name),K!==void 0&&($.value=K),$})}function L(B){var D=new A(B.options).setGraph(B.value);return B.nodes.forEach(function(K){D.setNode(K.v,K.value),K.parent&&D.setParent(K.v,K.parent)}),B.edges.forEach(function(K){D.setEdge({v:K.v,w:K.w,name:K.name},K.value)}),D}}),o=d((E,y)=>{y.exports=S;var A=()=>1;function S(O,L,B,D){return P(O,String(L),B||A,D||function(K){return O.outEdges(K)})}function P(O,L,B,D){var K={},$=!0,g=0,a=O.nodes(),m=function(H){var W=B(H);K[H.v].distance+W<K[H.w].distance&&(K[H.w]={distance:K[H.v].distance+W,predecessor:H.v},$=!0)},v=function(){a.forEach(function(H){D(H).forEach(function(W){var le=W.v===H?W.v:W.w,Te=le===W.v?W.w:W.v;m({v:le,w:Te})})})};a.forEach(function(H){var W=H===L?0:Number.POSITIVE_INFINITY;K[H]={distance:W}});for(var C=a.length,M=1;M<C&&($=!1,g++,v(),!!$);M++);if(g===C-1&&($=!1,v(),$))throw new Error("The graph contains a negative weight cycle");return K}}),n=d((E,y)=>{y.exports=A;function A(S){var P={},O=[],L;function B(D){Object.hasOwn(P,D)||(P[D]=!0,L.push(D),S.successors(D).forEach(B),S.predecessors(D).forEach(B))}return S.nodes().forEach(function(D){L=[],B(D),L.length&&O.push(L)}),O}}),c=d((E,y)=>{var A=class{constructor(){e(this,"_arr",[]),e(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(S){return S.key})}has(S){return Object.hasOwn(this._keyIndices,S)}priority(S){var P=this._keyIndices[S];if(P!==void 0)return this._arr[P].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(S,P){var O=this._keyIndices;if(S=String(S),!Object.hasOwn(O,S)){var L=this._arr,B=L.length;return O[S]=B,L.push({key:S,priority:P}),this._decrease(B),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var S=this._arr.pop();return delete this._keyIndices[S.key],this._heapify(0),S.key}decrease(S,P){var O=this._keyIndices[S];if(P>this._arr[O].priority)throw new Error("New priority is greater than current priority. Key: "+S+" Old: "+this._arr[O].priority+" New: "+P);this._arr[O].priority=P,this._decrease(O)}_heapify(S){var P=this._arr,O=2*S,L=O+1,B=S;O<P.length&&(B=P[O].priority<P[B].priority?O:B,L<P.length&&(B=P[L].priority<P[B].priority?L:B),B!==S&&(this._swap(S,B),this._heapify(B)))}_decrease(S){for(var P=this._arr,O=P[S].priority,L;S!==0&&(L=S>>1,!(P[L].priority<O));)this._swap(S,L),S=L}_swap(S,P){var O=this._arr,L=this._keyIndices,B=O[S],D=O[P];O[S]=D,O[P]=B,L[D.key]=S,L[B.key]=P}};y.exports=A}),h=d((E,y)=>{var A=c();y.exports=P;var S=()=>1;function P(L,B,D,K){var $=function(g){return L.outEdges(g)};return O(L,String(B),D||S,K||$)}function O(L,B,D,K){var $={},g=new A,a,m,v=function(C){var M=C.v!==a?C.v:C.w,H=$[M],W=D(C),le=m.distance+W;if(W<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+W);le<H.distance&&(H.distance=le,H.predecessor=a,g.decrease(M,le))};for(L.nodes().forEach(function(C){var M=C===B?0:Number.POSITIVE_INFINITY;$[C]={distance:M},g.add(C,M)});g.size()>0&&(a=g.removeMin(),m=$[a],m.distance!==Number.POSITIVE_INFINITY);)K(a).forEach(v);return $}}),_=d((E,y)=>{var A=h();y.exports=S;function S(P,O,L){return P.nodes().reduce(function(B,D){return B[D]=A(P,D,O,L),B},{})}}),j=d((E,y)=>{y.exports=A;function A(P,O,L){if(P[O].predecessor!==void 0)throw new Error("Invalid source vertex");if(P[L].predecessor===void 0&&L!==O)throw new Error("Invalid destination vertex");return{weight:P[L].distance,path:S(P,O,L)}}function S(P,O,L){for(var B=[],D=L;D!==O;)B.push(D),D=P[D].predecessor;return B.push(O),B.reverse()}}),G=d((E,y)=>{y.exports=A;function A(S){var P=0,O=[],L={},B=[];function D(K){var $=L[K]={onStack:!0,lowlink:P,index:P++};if(O.push(K),S.successors(K).forEach(function(m){Object.hasOwn(L,m)?L[m].onStack&&($.lowlink=Math.min($.lowlink,L[m].index)):(D(m),$.lowlink=Math.min($.lowlink,L[m].lowlink))}),$.lowlink===$.index){var g=[],a;do a=O.pop(),L[a].onStack=!1,g.push(a);while(K!==a);B.push(g)}}return S.nodes().forEach(function(K){Object.hasOwn(L,K)||D(K)}),B}}),Y=d((E,y)=>{var A=G();y.exports=S;function S(P){return A(P).filter(function(O){return O.length>1||O.length===1&&P.hasEdge(O[0],O[0])})}}),b=d((E,y)=>{y.exports=S;var A=()=>1;function S(O,L,B){return P(O,L||A,B||function(D){return O.outEdges(D)})}function P(O,L,B){var D={},K=O.nodes();return K.forEach(function($){D[$]={},D[$][$]={distance:0},K.forEach(function(g){$!==g&&(D[$][g]={distance:Number.POSITIVE_INFINITY})}),B($).forEach(function(g){var a=g.v===$?g.w:g.v,m=L(g);D[$][a]={distance:m,predecessor:$}})}),K.forEach(function($){var g=D[$];K.forEach(function(a){var m=D[a];K.forEach(function(v){var C=m[$],M=g[v],H=m[v],W=C.distance+M.distance;W<H.distance&&(H.distance=W,H.predecessor=M.predecessor)})})}),D}}),k=d((E,y)=>{function A(P){var O={},L={},B=[];function D(K){if(Object.hasOwn(L,K))throw new S;Object.hasOwn(O,K)||(L[K]=!0,O[K]=!0,P.predecessors(K).forEach(D),delete L[K],B.push(K))}if(P.sinks().forEach(D),Object.keys(O).length!==P.nodeCount())throw new S;return B}var S=class extends Error{constructor(){super(...arguments)}};y.exports=A,A.CycleException=S}),p=d((E,y)=>{var A=k();y.exports=S;function S(P){try{A(P)}catch(O){if(O instanceof A.CycleException)return!1;throw O}return!0}}),I=d((E,y)=>{y.exports=A;function A(P,O,L,B,D){Array.isArray(O)||(O=[O]);var K=(P.isDirected()?P.successors:P.neighbors).bind(P),$={};return O.forEach(function(g){if(!P.hasNode(g))throw new Error("Graph does not have node: "+g);D=S(P,g,L==="post",$,K,B,D)}),D}function S(P,O,L,B,D,K,$){return Object.hasOwn(B,O)||(B[O]=!0,L||($=K($,O)),D(O).forEach(function(g){$=S(P,g,L,B,D,K,$)}),L&&($=K($,O))),$}}),T=d((E,y)=>{var A=I();y.exports=S;function S(P,O,L){return A(P,O,L,function(B,D){return B.push(D),B},[])}}),z=d((E,y)=>{var A=T();y.exports=S;function S(P,O){return A(P,O,"post")}}),V=d((E,y)=>{var A=T();y.exports=S;function S(P,O){return A(P,O,"pre")}}),q=d((E,y)=>{var A=r(),S=c();y.exports=P;function P(O,L){var B=new A,D={},K=new S,$;function g(m){var v=m.v===$?m.w:m.v,C=K.priority(v);if(C!==void 0){var M=L(m);M<C&&(D[v]=$,K.decrease(v,M))}}if(O.nodeCount()===0)return B;O.nodes().forEach(function(m){K.add(m,Number.POSITIVE_INFINITY),B.setNode(m)}),K.decrease(O.nodes()[0],0);for(var a=!1;K.size()>0;){if($=K.removeMin(),Object.hasOwn(D,$))B.setEdge($,D[$]);else{if(a)throw new Error("Input graph is not connected: "+O);a=!0}O.nodeEdges($).forEach(g)}return B}}),N=d((E,y)=>{var A=h(),S=o();y.exports=P;function P(L,B,D,K){return O(L,B,D,K||function($){return L.outEdges($)})}function O(L,B,D,K){if(D===void 0)return A(L,B,D,K);for(var $=!1,g=L.nodes(),a=0;a<g.length;a++){for(var m=K(g[a]),v=0;v<m.length;v++){var C=m[v],M=C.v===g[a]?C.v:C.w,H=M===C.v?C.w:C.v;D({v:M,w:H})<0&&($=!0)}if($)return S(L,B,D,K)}return A(L,B,D,K)}}),w=d((E,y)=>{y.exports={bellmanFord:o(),components:n(),dijkstra:h(),dijkstraAll:_(),extractPath:j(),findCycles:Y(),floydWarshall:b(),isAcyclic:p(),postorder:z(),preorder:V(),prim:q(),shortestPaths:N(),reduce:I(),tarjan:G(),topsort:k()}}),R=t();s.exports={Graph:R.Graph,json:l(),alg:w(),version:R.version}}),Ur=re((u,s)=>{var f=class{constructor(){let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,r=e._prev;if(r!==e)return x(r),r}enqueue(e){let r=this._sentinel;e._prev&&e._next&&x(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){let e=[],r=this._sentinel,i=r._prev;for(;i!==r;)e.push(JSON.stringify(i,d)),i=i._prev;return"["+e.join(", ")+"]"}};function x(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function d(e,r){if(e!=="_next"&&e!=="_prev")return r}s.exports=f}),Yr=re((u,s)=>{var f=ke().Graph,x=Ur();s.exports=e;var d=()=>1;function e(n,c){if(n.nodeCount()<=1)return[];let h=t(n,c||d);return r(h.graph,h.buckets,h.zeroIdx).flatMap(_=>n.outEdges(_.v,_.w))}function r(n,c,h){let _=[],j=c[c.length-1],G=c[0],Y;for(;n.nodeCount();){for(;Y=G.dequeue();)i(n,c,h,Y);for(;Y=j.dequeue();)i(n,c,h,Y);if(n.nodeCount()){for(let b=c.length-2;b>0;--b)if(Y=c[b].dequeue(),Y){_=_.concat(i(n,c,h,Y,!0));break}}}return _}function i(n,c,h,_,j){let G=j?[]:void 0;return n.inEdges(_.v).forEach(Y=>{let b=n.edge(Y),k=n.node(Y.v);j&&G.push({v:Y.v,w:Y.w}),k.out-=b,l(c,h,k)}),n.outEdges(_.v).forEach(Y=>{let b=n.edge(Y),k=Y.w,p=n.node(k);p.in-=b,l(c,h,p)}),n.removeNode(_.v),G}function t(n,c){let h=new f,_=0,j=0;n.nodes().forEach(b=>{h.setNode(b,{v:b,in:0,out:0})}),n.edges().forEach(b=>{let k=h.edge(b.v,b.w)||0,p=c(b),I=k+p;h.setEdge(b.v,b.w,I),j=Math.max(j,h.node(b.v).out+=p),_=Math.max(_,h.node(b.w).in+=p)});let G=o(j+_+3).map(()=>new x),Y=_+1;return h.nodes().forEach(b=>{l(G,Y,h.node(b))}),{graph:h,buckets:G,zeroIdx:Y}}function l(n,c,h){h.out?h.in?n[h.out-h.in+c].enqueue(h):n[n.length-1].enqueue(h):n[0].enqueue(h)}function o(n){let c=[];for(let h=0;h<n;h++)c.push(h);return c}}),ce=re((u,s)=>{"use strict";var f=ke().Graph;s.exports={addBorderNode:c,addDummyNode:x,applyWithChunking:j,asNonCompoundGraph:e,buildLayerMatrix:l,intersectRect:t,mapValues:V,maxRank:G,normalizeRanks:o,notime:k,partition:Y,pick:z,predecessorWeights:i,range:T,removeEmptyRanks:n,simplify:d,successorWeights:r,time:b,uniqueId:I,zipObject:q};function x(N,w,R,E){for(var y=E;N.hasNode(y);)y=I(E);return R.dummy=w,N.setNode(y,R),y}function d(N){let w=new f().setGraph(N.graph());return N.nodes().forEach(R=>w.setNode(R,N.node(R))),N.edges().forEach(R=>{let E=w.edge(R.v,R.w)||{weight:0,minlen:1},y=N.edge(R);w.setEdge(R.v,R.w,{weight:E.weight+y.weight,minlen:Math.max(E.minlen,y.minlen)})}),w}function e(N){let w=new f({multigraph:N.isMultigraph()}).setGraph(N.graph());return N.nodes().forEach(R=>{N.children(R).length||w.setNode(R,N.node(R))}),N.edges().forEach(R=>{w.setEdge(R,N.edge(R))}),w}function r(N){let w=N.nodes().map(R=>{let E={};return N.outEdges(R).forEach(y=>{E[y.w]=(E[y.w]||0)+N.edge(y).weight}),E});return q(N.nodes(),w)}function i(N){let w=N.nodes().map(R=>{let E={};return N.inEdges(R).forEach(y=>{E[y.v]=(E[y.v]||0)+N.edge(y).weight}),E});return q(N.nodes(),w)}function t(N,w){let R=N.x,E=N.y,y=w.x-R,A=w.y-E,S=N.width/2,P=N.height/2;if(!y&&!A)throw new Error("Not possible to find intersection inside of the rectangle");let O,L;return Math.abs(A)*S>Math.abs(y)*P?(A<0&&(P=-P),O=P*y/A,L=P):(y<0&&(S=-S),O=S,L=S*A/y),{x:R+O,y:E+L}}function l(N){let w=T(G(N)+1).map(()=>[]);return N.nodes().forEach(R=>{let E=N.node(R),y=E.rank;y!==void 0&&(w[y][E.order]=R)}),w}function o(N){let w=N.nodes().map(E=>{let y=N.node(E).rank;return y===void 0?Number.MAX_VALUE:y}),R=j(Math.min,w);N.nodes().forEach(E=>{let y=N.node(E);Object.hasOwn(y,"rank")&&(y.rank-=R)})}function n(N){let w=N.nodes().map(S=>N.node(S).rank).filter(S=>S!==void 0),R=j(Math.min,w),E=[];N.nodes().forEach(S=>{let P=N.node(S).rank-R;E[P]||(E[P]=[]),E[P].push(S)});let y=0,A=N.graph().nodeRankFactor;Array.from(E).forEach((S,P)=>{S===void 0&&P%A!==0?--y:S!==void 0&&y&&S.forEach(O=>N.node(O).rank+=y)})}function c(N,w,R,E){let y={width:0,height:0};return arguments.length>=4&&(y.rank=R,y.order=E),x(N,"border",y,w)}function h(N,w=_){let R=[];for(let E=0;E<N.length;E+=w){let y=N.slice(E,E+w);R.push(y)}return R}var _=65535;function j(N,w){if(w.length>_){let R=h(w);return N.apply(null,R.map(E=>N.apply(null,E)))}else return N.apply(null,w)}function G(N){let w=N.nodes().map(R=>{let E=N.node(R).rank;return E===void 0?Number.MIN_VALUE:E});return j(Math.max,w)}function Y(N,w){let R={lhs:[],rhs:[]};return N.forEach(E=>{w(E)?R.lhs.push(E):R.rhs.push(E)}),R}function b(N,w){let R=Date.now();try{return w()}finally{console.log(N+" time: "+(Date.now()-R)+"ms")}}function k(N,w){return w()}var p=0;function I(N){var w=++p;return N+(""+w)}function T(N,w,R=1){w==null&&(w=N,N=0);let E=A=>A<w;R<0&&(E=A=>w<A);let y=[];for(let A=N;E(A);A+=R)y.push(A);return y}function z(N,w){let R={};for(let E of w)N[E]!==void 0&&(R[E]=N[E]);return R}function V(N,w){let R=w;return typeof w=="string"&&(R=E=>E[w]),Object.entries(N).reduce((E,[y,A])=>(E[y]=R(A,y),E),{})}function q(N,w){return N.reduce((R,E,y)=>(R[E]=w[y],R),{})}}),qr=re((u,s)=>{"use strict";var f=Yr(),x=ce().uniqueId;s.exports={run:d,undo:r};function d(i){(i.graph().acyclicer==="greedy"?f(i,t(i)):e(i)).forEach(l=>{let o=i.edge(l);i.removeEdge(l),o.forwardName=l.name,o.reversed=!0,i.setEdge(l.w,l.v,o,x("rev"))});function t(l){return o=>l.edge(o).weight}}function e(i){let t=[],l={},o={};function n(c){Object.hasOwn(o,c)||(o[c]=!0,l[c]=!0,i.outEdges(c).forEach(h=>{Object.hasOwn(l,h.w)?t.push(h):n(h.w)}),delete l[c])}return i.nodes().forEach(n),t}function r(i){i.edges().forEach(t=>{let l=i.edge(t);if(l.reversed){i.removeEdge(t);let o=l.forwardName;delete l.reversed,delete l.forwardName,i.setEdge(t.w,t.v,l,o)}})}}),Wr=re((u,s)=>{"use strict";var f=ce();s.exports={run:x,undo:e};function x(r){r.graph().dummyChains=[],r.edges().forEach(i=>d(r,i))}function d(r,i){let t=i.v,l=r.node(t).rank,o=i.w,n=r.node(o).rank,c=i.name,h=r.edge(i),_=h.labelRank;if(n===l+1)return;r.removeEdge(i);let j,G,Y;for(Y=0,++l;l<n;++Y,++l)h.points=[],G={width:0,height:0,edgeLabel:h,edgeObj:i,rank:l},j=f.addDummyNode(r,"edge",G,"_d"),l===_&&(G.width=h.width,G.height=h.height,G.dummy="edge-label",G.labelpos=h.labelpos),r.setEdge(t,j,{weight:h.weight},c),Y===0&&r.graph().dummyChains.push(j),t=j;r.setEdge(t,o,{weight:h.weight},c)}function e(r){r.graph().dummyChains.forEach(i=>{let t=r.node(i),l=t.edgeLabel,o;for(r.setEdge(t.edgeObj,l);t.dummy;)o=r.successors(i)[0],r.removeNode(i),l.points.push({x:t.x,y:t.y}),t.dummy==="edge-label"&&(l.x=t.x,l.y=t.y,l.width=t.width,l.height=t.height),i=o,t=r.node(i)})}}),He=re((u,s)=>{"use strict";var{applyWithChunking:f}=ce();s.exports={longestPath:x,slack:d};function x(e){var r={};function i(t){var l=e.node(t);if(Object.hasOwn(r,t))return l.rank;r[t]=!0;let o=e.outEdges(t).map(c=>c==null?Number.POSITIVE_INFINITY:i(c.w)-e.edge(c).minlen);var n=f(Math.min,o);return n===Number.POSITIVE_INFINITY&&(n=0),l.rank=n}e.sources().forEach(i)}function d(e,r){return e.node(r.w).rank-e.node(r.v).rank-e.edge(r).minlen}}),Xt=re((u,s)=>{"use strict";var f=ke().Graph,x=He().slack;s.exports=d;function d(t){var l=new f({directed:!1}),o=t.nodes()[0],n=t.nodeCount();l.setNode(o,{});for(var c,h;e(l,t)<n;)c=r(l,t),h=l.hasNode(c.v)?x(t,c):-x(t,c),i(l,t,h);return l}function e(t,l){function o(n){l.nodeEdges(n).forEach(c=>{var h=c.v,_=n===h?c.w:h;!t.hasNode(_)&&!x(l,c)&&(t.setNode(_,{}),t.setEdge(n,_,{}),o(_))})}return t.nodes().forEach(o),t.nodeCount()}function r(t,l){return l.edges().reduce((o,n)=>{let c=Number.POSITIVE_INFINITY;return t.hasNode(n.v)!==t.hasNode(n.w)&&(c=x(l,n)),c<o[0]?[c,n]:o},[Number.POSITIVE_INFINITY,null])[1]}function i(t,l,o){t.nodes().forEach(n=>l.node(n).rank+=o)}}),Jr=re((u,s)=>{"use strict";var f=Xt(),x=He().slack,d=He().longestPath,e=ke().alg.preorder,r=ke().alg.postorder,i=ce().simplify;s.exports=t,t.initLowLimValues=c,t.initCutValues=l,t.calcCutValue=n,t.leaveEdge=_,t.enterEdge=j,t.exchangeEdges=G;function t(p){p=i(p),d(p);var I=f(p);c(I),l(I,p);for(var T,z;T=_(I);)z=j(I,p,T),G(I,p,T,z)}function l(p,I){var T=r(p,p.nodes());T=T.slice(0,T.length-1),T.forEach(z=>o(p,I,z))}function o(p,I,T){var z=p.node(T),V=z.parent;p.edge(T,V).cutvalue=n(p,I,T)}function n(p,I,T){var z=p.node(T),V=z.parent,q=!0,N=I.edge(T,V),w=0;return N||(q=!1,N=I.edge(V,T)),w=N.weight,I.nodeEdges(T).forEach(R=>{var E=R.v===T,y=E?R.w:R.v;if(y!==V){var A=E===q,S=I.edge(R).weight;if(w+=A?S:-S,b(p,T,y)){var P=p.edge(T,y).cutvalue;w+=A?-P:P}}}),w}function c(p,I){arguments.length<2&&(I=p.nodes()[0]),h(p,{},1,I)}function h(p,I,T,z,V){var q=T,N=p.node(z);return I[z]=!0,p.neighbors(z).forEach(w=>{Object.hasOwn(I,w)||(T=h(p,I,T,w,z))}),N.low=q,N.lim=T++,V?N.parent=V:delete N.parent,T}function _(p){return p.edges().find(I=>p.edge(I).cutvalue<0)}function j(p,I,T){var z=T.v,V=T.w;I.hasEdge(z,V)||(z=T.w,V=T.v);var q=p.node(z),N=p.node(V),w=q,R=!1;q.lim>N.lim&&(w=N,R=!0);var E=I.edges().filter(y=>R===k(p,p.node(y.v),w)&&R!==k(p,p.node(y.w),w));return E.reduce((y,A)=>x(I,A)<x(I,y)?A:y)}function G(p,I,T,z){var V=T.v,q=T.w;p.removeEdge(V,q),p.setEdge(z.v,z.w,{}),c(p),l(p,I),Y(p,I)}function Y(p,I){var T=p.nodes().find(V=>!I.node(V).parent),z=e(p,T);z=z.slice(1),z.forEach(V=>{var q=p.node(V).parent,N=I.edge(V,q),w=!1;N||(N=I.edge(q,V),w=!0),I.node(V).rank=I.node(q).rank+(w?N.minlen:-N.minlen)})}function b(p,I,T){return p.hasEdge(I,T)}function k(p,I,T){return T.low<=I.lim&&I.lim<=T.lim}}),Xr=re((u,s)=>{"use strict";var f=He(),x=f.longestPath,d=Xt(),e=Jr();s.exports=r;function r(o){var n=o.graph().ranker;if(n instanceof Function)return n(o);switch(o.graph().ranker){case"network-simplex":l(o);break;case"tight-tree":t(o);break;case"longest-path":i(o);break;case"none":break;default:l(o)}}var i=x;function t(o){x(o),d(o)}function l(o){e(o)}}),Zr=re((u,s)=>{s.exports=f;function f(e){let r=d(e);e.graph().dummyChains.forEach(i=>{let t=e.node(i),l=t.edgeObj,o=x(e,r,l.v,l.w),n=o.path,c=o.lca,h=0,_=n[h],j=!0;for(;i!==l.w;){if(t=e.node(i),j){for(;(_=n[h])!==c&&e.node(_).maxRank<t.rank;)h++;_===c&&(j=!1)}if(!j){for(;h<n.length-1&&e.node(_=n[h+1]).minRank<=t.rank;)h++;_=n[h]}e.setParent(i,_),i=e.successors(i)[0]}})}function x(e,r,i,t){let l=[],o=[],n=Math.min(r[i].low,r[t].low),c=Math.max(r[i].lim,r[t].lim),h,_;h=i;do h=e.parent(h),l.push(h);while(h&&(r[h].low>n||c>r[h].lim));for(_=h,h=t;(h=e.parent(h))!==_;)o.push(h);return{path:l.concat(o.reverse()),lca:_}}function d(e){let r={},i=0;function t(l){let o=i;e.children(l).forEach(t),r[l]={low:o,lim:i++}}return e.children().forEach(t),r}}),Qr=re((u,s)=>{var f=ce();s.exports={run:x,cleanup:i};function x(t){let l=f.addDummyNode(t,"root",{},"_root"),o=e(t),n=Object.values(o),c=f.applyWithChunking(Math.max,n)-1,h=2*c+1;t.graph().nestingRoot=l,t.edges().forEach(j=>t.edge(j).minlen*=h);let _=r(t)+1;t.children().forEach(j=>d(t,l,h,_,c,o,j)),t.graph().nodeRankFactor=h}function d(t,l,o,n,c,h,_){let j=t.children(_);if(!j.length){_!==l&&t.setEdge(l,_,{weight:0,minlen:o});return}let G=f.addBorderNode(t,"_bt"),Y=f.addBorderNode(t,"_bb"),b=t.node(_);t.setParent(G,_),b.borderTop=G,t.setParent(Y,_),b.borderBottom=Y,j.forEach(k=>{d(t,l,o,n,c,h,k);let p=t.node(k),I=p.borderTop?p.borderTop:k,T=p.borderBottom?p.borderBottom:k,z=p.borderTop?n:2*n,V=I!==T?1:c-h[_]+1;t.setEdge(G,I,{weight:z,minlen:V,nestingEdge:!0}),t.setEdge(T,Y,{weight:z,minlen:V,nestingEdge:!0})}),t.parent(_)||t.setEdge(l,G,{weight:0,minlen:c+h[_]})}function e(t){var l={};function o(n,c){var h=t.children(n);h&&h.length&&h.forEach(_=>o(_,c+1)),l[n]=c}return t.children().forEach(n=>o(n,1)),l}function r(t){return t.edges().reduce((l,o)=>l+t.edge(o).weight,0)}function i(t){var l=t.graph();t.removeNode(l.nestingRoot),delete l.nestingRoot,t.edges().forEach(o=>{var n=t.edge(o);n.nestingEdge&&t.removeEdge(o)})}}),eo=re((u,s)=>{var f=ce();s.exports=x;function x(e){function r(i){let t=e.children(i),l=e.node(i);if(t.length&&t.forEach(r),Object.hasOwn(l,"minRank")){l.borderLeft=[],l.borderRight=[];for(let o=l.minRank,n=l.maxRank+1;o<n;++o)d(e,"borderLeft","_bl",i,l,o),d(e,"borderRight","_br",i,l,o)}}e.children().forEach(r)}function d(e,r,i,t,l,o){let n={width:0,height:0,rank:o,borderType:r},c=l[r][o-1],h=f.addDummyNode(e,"border",n,i);l[r][o]=h,e.setParent(h,t),c&&e.setEdge(c,h,{weight:1})}}),to=re((u,s)=>{"use strict";s.exports={adjust:f,undo:x};function f(o){let n=o.graph().rankdir.toLowerCase();(n==="lr"||n==="rl")&&d(o)}function x(o){let n=o.graph().rankdir.toLowerCase();(n==="bt"||n==="rl")&&r(o),(n==="lr"||n==="rl")&&(t(o),d(o))}function d(o){o.nodes().forEach(n=>e(o.node(n))),o.edges().forEach(n=>e(o.edge(n)))}function e(o){let n=o.width;o.width=o.height,o.height=n}function r(o){o.nodes().forEach(n=>i(o.node(n))),o.edges().forEach(n=>{let c=o.edge(n);c.points.forEach(i),Object.hasOwn(c,"y")&&i(c)})}function i(o){o.y=-o.y}function t(o){o.nodes().forEach(n=>l(o.node(n))),o.edges().forEach(n=>{let c=o.edge(n);c.points.forEach(l),Object.hasOwn(c,"x")&&l(c)})}function l(o){let n=o.x;o.x=o.y,o.y=n}}),ro=re((u,s)=>{"use strict";var f=ce();s.exports=x;function x(d){let e={},r=d.nodes().filter(n=>!d.children(n).length),i=r.map(n=>d.node(n).rank),t=f.applyWithChunking(Math.max,i),l=f.range(t+1).map(()=>[]);function o(n){if(e[n])return;e[n]=!0;let c=d.node(n);l[c.rank].push(n),d.successors(n).forEach(o)}return r.sort((n,c)=>d.node(n).rank-d.node(c).rank).forEach(o),l}}),oo=re((u,s)=>{"use strict";var f=ce().zipObject;s.exports=x;function x(e,r){let i=0;for(let t=1;t<r.length;++t)i+=d(e,r[t-1],r[t]);return i}function d(e,r,i){let t=f(i,i.map((_,j)=>j)),l=r.flatMap(_=>e.outEdges(_).map(j=>({pos:t[j.w],weight:e.edge(j).weight})).sort((j,G)=>j.pos-G.pos)),o=1;for(;o<i.length;)o<<=1;let n=2*o-1;o-=1;let c=new Array(n).fill(0),h=0;return l.forEach(_=>{let j=_.pos+o;c[j]+=_.weight;let G=0;for(;j>0;)j%2&&(G+=c[j+1]),j=j-1>>1,c[j]+=_.weight;h+=_.weight*G}),h}}),ao=re((u,s)=>{s.exports=f;function f(x,d=[]){return d.map(e=>{let r=x.inEdges(e);if(r.length){let i=r.reduce((t,l)=>{let o=x.edge(l),n=x.node(l.v);return{sum:t.sum+o.weight*n.order,weight:t.weight+o.weight}},{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:e}})}}),no=re((u,s)=>{"use strict";var f=ce();s.exports=x;function x(r,i){let t={};r.forEach((o,n)=>{let c=t[o.v]={indegree:0,in:[],out:[],vs:[o.v],i:n};o.barycenter!==void 0&&(c.barycenter=o.barycenter,c.weight=o.weight)}),i.edges().forEach(o=>{let n=t[o.v],c=t[o.w];n!==void 0&&c!==void 0&&(c.indegree++,n.out.push(t[o.w]))});let l=Object.values(t).filter(o=>!o.indegree);return d(l)}function d(r){let i=[];function t(o){return n=>{n.merged||(n.barycenter===void 0||o.barycenter===void 0||n.barycenter>=o.barycenter)&&e(o,n)}}function l(o){return n=>{n.in.push(o),--n.indegree===0&&r.push(n)}}for(;r.length;){let o=r.pop();i.push(o),o.in.reverse().forEach(t(o)),o.out.forEach(l(o))}return i.filter(o=>!o.merged).map(o=>f.pick(o,["vs","i","barycenter","weight"]))}function e(r,i){let t=0,l=0;r.weight&&(t+=r.barycenter*r.weight,l+=r.weight),i.weight&&(t+=i.barycenter*i.weight,l+=i.weight),r.vs=i.vs.concat(r.vs),r.barycenter=t/l,r.weight=l,r.i=Math.min(i.i,r.i),i.merged=!0}}),so=re((u,s)=>{var f=ce();s.exports=x;function x(r,i){let t=f.partition(r,G=>Object.hasOwn(G,"barycenter")),l=t.lhs,o=t.rhs.sort((G,Y)=>Y.i-G.i),n=[],c=0,h=0,_=0;l.sort(e(!!i)),_=d(n,o,_),l.forEach(G=>{_+=G.vs.length,n.push(G.vs),c+=G.barycenter*G.weight,h+=G.weight,_=d(n,o,_)});let j={vs:n.flat(!0)};return h&&(j.barycenter=c/h,j.weight=h),j}function d(r,i,t){let l;for(;i.length&&(l=i[i.length-1]).i<=t;)i.pop(),r.push(l.vs),t++;return t}function e(r){return(i,t)=>i.barycenter<t.barycenter?-1:i.barycenter>t.barycenter?1:r?t.i-i.i:i.i-t.i}}),io=re((u,s)=>{var f=ao(),x=no(),d=so();s.exports=e;function e(t,l,o,n){let c=t.children(l),h=t.node(l),_=h?h.borderLeft:void 0,j=h?h.borderRight:void 0,G={};_&&(c=c.filter(p=>p!==_&&p!==j));let Y=f(t,c);Y.forEach(p=>{if(t.children(p.v).length){let I=e(t,p.v,o,n);G[p.v]=I,Object.hasOwn(I,"barycenter")&&i(p,I)}});let b=x(Y,o);r(b,G);let k=d(b,n);if(_&&(k.vs=[_,k.vs,j].flat(!0),t.predecessors(_).length)){let p=t.node(t.predecessors(_)[0]),I=t.node(t.predecessors(j)[0]);Object.hasOwn(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+p.order+I.order)/(k.weight+2),k.weight+=2}return k}function r(t,l){t.forEach(o=>{o.vs=o.vs.flatMap(n=>l[n]?l[n].vs:n)})}function i(t,l){t.barycenter!==void 0?(t.barycenter=(t.barycenter*t.weight+l.barycenter*l.weight)/(t.weight+l.weight),t.weight+=l.weight):(t.barycenter=l.barycenter,t.weight=l.weight)}}),lo=re((u,s)=>{var f=ke().Graph,x=ce();s.exports=d;function d(r,i,t,l){l||(l=r.nodes());let o=e(r),n=new f({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(c=>r.node(c));return l.forEach(c=>{let h=r.node(c),_=r.parent(c);(h.rank===i||h.minRank<=i&&i<=h.maxRank)&&(n.setNode(c),n.setParent(c,_||o),r[t](c).forEach(j=>{let G=j.v===c?j.w:j.v,Y=n.edge(G,c),b=Y!==void 0?Y.weight:0;n.setEdge(G,c,{weight:r.edge(j).weight+b})}),Object.hasOwn(h,"minRank")&&n.setNode(c,{borderLeft:h.borderLeft[i],borderRight:h.borderRight[i]}))}),n}function e(r){for(var i;r.hasNode(i=x.uniqueId("_root")););return i}}),co=re((u,s)=>{s.exports=f;function f(x,d,e){let r={},i;e.forEach(t=>{let l=x.parent(t),o,n;for(;l;){if(o=x.parent(l),o?(n=r[o],r[o]=l):(n=i,i=l),n&&n!==l){d.setEdge(n,l);return}l=o}})}}),uo=re((u,s)=>{"use strict";var f=ro(),x=oo(),d=io(),e=lo(),r=co(),i=ke().Graph,t=ce();s.exports=l;function l(h,_={}){if(typeof _.customOrder=="function"){_.customOrder(h,l);return}let j=t.maxRank(h),G=o(h,t.range(1,j+1),"inEdges"),Y=o(h,t.range(j-1,-1,-1),"outEdges"),b=f(h);if(c(h,b),_.disableOptimalOrderHeuristic)return;let k=Number.POSITIVE_INFINITY,p,I=_.constraints||[];for(let T=0,z=0;z<4;++T,++z){n(T%2?G:Y,T%4>=2,I),b=t.buildLayerMatrix(h);let V=x(h,b);V<k?(z=0,p=Object.assign({},b),k=V):V===k&&(p=structuredClone(b))}c(h,p)}function o(h,_,j){let G=new Map,Y=(b,k)=>{G.has(b)||G.set(b,[]),G.get(b).push(k)};for(let b of h.nodes()){let k=h.node(b);if(typeof k.rank=="number"&&Y(k.rank,b),typeof k.minRank=="number"&&typeof k.maxRank=="number")for(let p=k.minRank;p<=k.maxRank;p++)p!==k.rank&&Y(p,b)}return _.map(function(b){return e(h,b,j,G.get(b)||[])})}function n(h,_,j){let G=new i;h.forEach(function(Y){j.forEach(p=>G.setEdge(p.left,p.right));let b=Y.graph().root,k=d(Y,b,G,_);k.vs.forEach((p,I)=>Y.node(p).order=I),r(Y,G,k.vs)})}function c(h,_){Object.values(_).forEach(j=>j.forEach((G,Y)=>h.node(G).order=Y))}}),po=re((u,s)=>{"use strict";var f=ke().Graph,x=ce();s.exports={positionX:j,findType1Conflicts:d,findType2Conflicts:e,addConflict:i,hasConflict:t,verticalAlignment:l,horizontalCompaction:o,alignCoordinates:h,findSmallestWidthAlignment:c,balance:_};function d(b,k){let p={};function I(T,z){let V=0,q=0,N=T.length,w=z[z.length-1];return z.forEach((R,E)=>{let y=r(b,R),A=y?b.node(y).order:N;(y||R===w)&&(z.slice(q,E+1).forEach(S=>{b.predecessors(S).forEach(P=>{let O=b.node(P),L=O.order;(L<V||A<L)&&!(O.dummy&&b.node(S).dummy)&&i(p,P,S)})}),q=E+1,V=A)}),z}return k.length&&k.reduce(I),p}function e(b,k){let p={};function I(z,V,q,N,w){let R;x.range(V,q).forEach(E=>{R=z[E],b.node(R).dummy&&b.predecessors(R).forEach(y=>{let A=b.node(y);A.dummy&&(A.order<N||A.order>w)&&i(p,y,R)})})}function T(z,V){let q=-1,N,w=0;return V.forEach((R,E)=>{if(b.node(R).dummy==="border"){let y=b.predecessors(R);y.length&&(N=b.node(y[0]).order,I(V,w,E,q,N),w=E,q=N)}I(V,w,V.length,N,z.length)}),V}return k.length&&k.reduce(T),p}function r(b,k){if(b.node(k).dummy)return b.predecessors(k).find(p=>b.node(p).dummy)}function i(b,k,p){if(k>p){let T=k;k=p,p=T}let I=b[k];I||(b[k]=I={}),I[p]=!0}function t(b,k,p){if(k>p){let I=k;k=p,p=I}return!!b[k]&&Object.hasOwn(b[k],p)}function l(b,k,p,I){let T={},z={},V={};return k.forEach(q=>{q.forEach((N,w)=>{T[N]=N,z[N]=N,V[N]=w})}),k.forEach(q=>{let N=-1;q.forEach(w=>{let R=I(w);if(R.length){R=R.sort((y,A)=>V[y]-V[A]);let E=(R.length-1)/2;for(let y=Math.floor(E),A=Math.ceil(E);y<=A;++y){let S=R[y];z[w]===w&&N<V[S]&&!t(p,w,S)&&(z[S]=w,z[w]=T[w]=T[S],N=V[S])}}})}),{root:T,align:z}}function o(b,k,p,I,T){let z={},V=n(b,k,p,T),q=T?"borderLeft":"borderRight";function N(E,y){let A=V.nodes().slice(),S={},P=A.pop();for(;P;){if(S[P])E(P);else{S[P]=!0,A.push(P);for(let O of y(P))A.push(O)}P=A.pop()}}function w(E){z[E]=V.inEdges(E).reduce((y,A)=>Math.max(y,z[A.v]+V.edge(A)),0)}function R(E){let y=V.outEdges(E).reduce((S,P)=>Math.min(S,z[P.w]-V.edge(P)),Number.POSITIVE_INFINITY),A=b.node(E);y!==Number.POSITIVE_INFINITY&&A.borderType!==q&&(z[E]=Math.max(z[E],y))}return N(w,V.predecessors.bind(V)),N(R,V.successors.bind(V)),Object.keys(I).forEach(E=>z[E]=z[p[E]]),z}function n(b,k,p,I){let T=new f,z=b.graph(),V=G(z.nodesep,z.edgesep,I);return k.forEach(q=>{let N;q.forEach(w=>{let R=p[w];if(T.setNode(R),N){var E=p[N],y=T.edge(E,R);T.setEdge(E,R,Math.max(V(b,w,N),y||0))}N=w})}),T}function c(b,k){return Object.values(k).reduce((p,I)=>{let T=Number.NEGATIVE_INFINITY,z=Number.POSITIVE_INFINITY;Object.entries(I).forEach(([q,N])=>{let w=Y(b,q)/2;T=Math.max(N+w,T),z=Math.min(N-w,z)});let V=T-z;return V<p[0]&&(p=[V,I]),p},[Number.POSITIVE_INFINITY,null])[1]}function h(b,k){let p=Object.values(k),I=x.applyWithChunking(Math.min,p),T=x.applyWithChunking(Math.max,p);["u","d"].forEach(z=>{["l","r"].forEach(V=>{let q=z+V,N=b[q];if(N===k)return;let w=Object.values(N),R=I-x.applyWithChunking(Math.min,w);V!=="l"&&(R=T-x.applyWithChunking(Math.max,w)),R&&(b[q]=x.mapValues(N,E=>E+R))})})}function _(b,k){return x.mapValues(b.ul,(p,I)=>{if(k)return b[k.toLowerCase()][I];{let T=Object.values(b).map(z=>z[I]).sort((z,V)=>z-V);return(T[1]+T[2])/2}})}function j(b){let k=x.buildLayerMatrix(b),p=Object.assign(d(b,k),e(b,k)),I={},T;["u","d"].forEach(V=>{T=V==="u"?k:Object.values(k).reverse(),["l","r"].forEach(q=>{q==="r"&&(T=T.map(E=>Object.values(E).reverse()));let N=(V==="u"?b.predecessors:b.successors).bind(b),w=l(b,T,p,N),R=o(b,T,w.root,w.align,q==="r");q==="r"&&(R=x.mapValues(R,E=>-E)),I[V+q]=R})});let z=c(b,I);return h(I,z),_(I,b.graph().align)}function G(b,k,p){return(I,T,z)=>{let V=I.node(T),q=I.node(z),N=0,w;if(N+=V.width/2,Object.hasOwn(V,"labelpos"))switch(V.labelpos.toLowerCase()){case"l":w=-V.width/2;break;case"r":w=V.width/2;break}if(w&&(N+=p?w:-w),w=0,N+=(V.dummy?k:b)/2,N+=(q.dummy?k:b)/2,N+=q.width/2,Object.hasOwn(q,"labelpos"))switch(q.labelpos.toLowerCase()){case"l":w=q.width/2;break;case"r":w=-q.width/2;break}return w&&(N+=p?w:-w),w=0,N}}function Y(b,k){return b.node(k).width}}),go=re((u,s)=>{"use strict";var f=ce(),x=po().positionX;s.exports=d;function d(r){r=f.asNonCompoundGraph(r),e(r),Object.entries(x(r)).forEach(([i,t])=>r.node(i).x=t)}function e(r){let i=f.buildLayerMatrix(r),t=r.graph().ranksep,l=r.graph().rankalign,o=0;i.forEach(n=>{let c=n.reduce((h,_)=>{let j=r.node(_).height;return h>j?h:j},0);n.forEach(h=>{let _=r.node(h);l==="top"?_.y=o+_.height/2:l==="bottom"?_.y=o+c-_.height/2:_.y=o+c/2}),o+=c+t})}}),ho=re((u,s)=>{"use strict";var f=qr(),x=Wr(),d=Xr(),e=ce().normalizeRanks,r=Zr(),i=ce().removeEmptyRanks,t=Qr(),l=eo(),o=to(),n=uo(),c=go(),h=ce(),_=ke().Graph;s.exports=j;function j(a,m={}){let v=m.debugTiming?h.time:h.notime;return v("layout",()=>{let C=v(" buildLayoutGraph",()=>N(a));return v(" runLayout",()=>G(C,v,m)),v(" updateInputGraph",()=>Y(a,C)),C})}function G(a,m,v){m(" makeSpaceForEdgeLabels",()=>w(a)),m(" removeSelfEdges",()=>B(a)),m(" acyclic",()=>f.run(a)),m(" nestingGraph.run",()=>t.run(a)),m(" rank",()=>d(h.asNonCompoundGraph(a))),m(" injectEdgeLabelProxies",()=>R(a)),m(" removeEmptyRanks",()=>i(a)),m(" nestingGraph.cleanup",()=>t.cleanup(a)),m(" normalizeRanks",()=>e(a)),m(" assignRankMinMax",()=>E(a)),m(" removeEdgeLabelProxies",()=>y(a)),m(" normalize.run",()=>x.run(a)),m(" parentDummyChains",()=>r(a)),m(" addBorderSegments",()=>l(a)),m(" order",()=>n(a,v)),m(" insertSelfEdges",()=>D(a)),m(" adjustCoordinateSystem",()=>o.adjust(a)),m(" position",()=>c(a)),m(" positionSelfEdges",()=>K(a)),m(" removeBorderNodes",()=>L(a)),m(" normalize.undo",()=>x.undo(a)),m(" fixupEdgeLabelCoords",()=>P(a)),m(" undoCoordinateSystem",()=>o.undo(a)),m(" translateGraph",()=>A(a)),m(" assignNodeIntersects",()=>S(a)),m(" reversePoints",()=>O(a)),m(" acyclic.undo",()=>f.undo(a))}function Y(a,m){a.nodes().forEach(v=>{let C=a.node(v),M=m.node(v);C&&(C.x=M.x,C.y=M.y,C.order=M.order,C.rank=M.rank,m.children(v).length&&(C.width=M.width,C.height=M.height))}),a.edges().forEach(v=>{let C=a.edge(v),M=m.edge(v);C.points=M.points,Object.hasOwn(M,"x")&&(C.x=M.x,C.y=M.y)}),a.graph().width=m.graph().width,a.graph().height=m.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb",rankalign:"center"},p=["acyclicer","ranker","rankdir","align","rankalign"],I=["width","height","rank"],T={width:0,height:0},z=["minlen","weight","width","height","labeloffset"],V={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},q=["labelpos"];function N(a){let m=new _({multigraph:!0,compound:!0}),v=g(a.graph());return m.setGraph(Object.assign({},k,$(v,b),h.pick(v,p))),a.nodes().forEach(C=>{let M=g(a.node(C)),H=$(M,I);Object.keys(T).forEach(W=>{H[W]===void 0&&(H[W]=T[W])}),m.setNode(C,H),m.setParent(C,a.parent(C))}),a.edges().forEach(C=>{let M=g(a.edge(C));m.setEdge(C,Object.assign({},V,$(M,z),h.pick(M,q)))}),m}function w(a){let m=a.graph();m.ranksep/=2,a.edges().forEach(v=>{let C=a.edge(v);C.minlen*=2,C.labelpos.toLowerCase()!=="c"&&(m.rankdir==="TB"||m.rankdir==="BT"?C.width+=C.labeloffset:C.height+=C.labeloffset)})}function R(a){a.edges().forEach(m=>{let v=a.edge(m);if(v.width&&v.height){let C=a.node(m.v),M={rank:(a.node(m.w).rank-C.rank)/2+C.rank,e:m};h.addDummyNode(a,"edge-proxy",M,"_ep")}})}function E(a){let m=0;a.nodes().forEach(v=>{let C=a.node(v);C.borderTop&&(C.minRank=a.node(C.borderTop).rank,C.maxRank=a.node(C.borderBottom).rank,m=Math.max(m,C.maxRank))}),a.graph().maxRank=m}function y(a){a.nodes().forEach(m=>{let v=a.node(m);v.dummy==="edge-proxy"&&(a.edge(v.e).labelRank=v.rank,a.removeNode(m))})}function A(a){let m=Number.POSITIVE_INFINITY,v=0,C=Number.POSITIVE_INFINITY,M=0,H=a.graph(),W=H.marginx||0,le=H.marginy||0;function Te(fe){let he=fe.x,F=fe.y,Q=fe.width,be=fe.height;m=Math.min(m,he-Q/2),v=Math.max(v,he+Q/2),C=Math.min(C,F-be/2),M=Math.max(M,F+be/2)}a.nodes().forEach(fe=>Te(a.node(fe))),a.edges().forEach(fe=>{let he=a.edge(fe);Object.hasOwn(he,"x")&&Te(he)}),m-=W,C-=le,a.nodes().forEach(fe=>{let he=a.node(fe);he.x-=m,he.y-=C}),a.edges().forEach(fe=>{let he=a.edge(fe);he.points.forEach(F=>{F.x-=m,F.y-=C}),Object.hasOwn(he,"x")&&(he.x-=m),Object.hasOwn(he,"y")&&(he.y-=C)}),H.width=v-m+W,H.height=M-C+le}function S(a){a.edges().forEach(m=>{let v=a.edge(m),C=a.node(m.v),M=a.node(m.w),H,W;v.points?(H=v.points[0],W=v.points[v.points.length-1]):(v.points=[],H=M,W=C),v.points.unshift(h.intersectRect(C,H)),v.points.push(h.intersectRect(M,W))})}function P(a){a.edges().forEach(m=>{let v=a.edge(m);if(Object.hasOwn(v,"x"))switch((v.labelpos==="l"||v.labelpos==="r")&&(v.width-=v.labeloffset),v.labelpos){case"l":v.x-=v.width/2+v.labeloffset;break;case"r":v.x+=v.width/2+v.labeloffset;break}})}function O(a){a.edges().forEach(m=>{let v=a.edge(m);v.reversed&&v.points.reverse()})}function L(a){a.nodes().forEach(m=>{if(a.children(m).length){let v=a.node(m),C=a.node(v.borderTop),M=a.node(v.borderBottom),H=a.node(v.borderLeft[v.borderLeft.length-1]),W=a.node(v.borderRight[v.borderRight.length-1]);v.width=Math.abs(W.x-H.x),v.height=Math.abs(M.y-C.y),v.x=H.x+v.width/2,v.y=C.y+v.height/2}}),a.nodes().forEach(m=>{a.node(m).dummy==="border"&&a.removeNode(m)})}function B(a){a.edges().forEach(m=>{if(m.v===m.w){var v=a.node(m.v);v.selfEdges||(v.selfEdges=[]),v.selfEdges.push({e:m,label:a.edge(m)}),a.removeEdge(m)}})}function D(a){var m=h.buildLayerMatrix(a);m.forEach(v=>{var C=0;v.forEach((M,H)=>{var W=a.node(M);W.order=H+C,(W.selfEdges||[]).forEach(le=>{h.addDummyNode(a,"selfedge",{width:le.label.width,height:le.label.height,rank:W.rank,order:H+ ++C,e:le.e,label:le.label},"_se")}),delete W.selfEdges})})}function K(a){a.nodes().forEach(m=>{var v=a.node(m);if(v.dummy==="selfedge"){var C=a.node(v.e.v),M=C.x+C.width/2,H=C.y,W=v.x-M,le=C.height/2;a.setEdge(v.e,v.label),a.removeNode(m),v.label.points=[{x:M+2*W/3,y:H-le},{x:M+5*W/6,y:H-le},{x:M+W,y:H},{x:M+5*W/6,y:H+le},{x:M+2*W/3,y:H+le}],v.label.x=v.x,v.label.y=v.y}})}function $(a,m){return h.mapValues(h.pick(a,m),Number)}function g(a){var m={};return a&&Object.entries(a).forEach(([v,C])=>{typeof v=="string"&&(v=v.toLowerCase()),m[v]=C}),m}}),mo=re((u,s)=>{var f=ce(),x=ke().Graph;s.exports={debugOrdering:d};function d(e){let r=f.buildLayerMatrix(e),i=new x({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(t=>{i.setNode(t,{label:t}),i.setParent(t,"layer"+e.node(t).rank)}),e.edges().forEach(t=>i.setEdge(t.v,t.w,{},t.name)),r.forEach((t,l)=>{let o="layer"+l;i.setNode(o,{rank:"same"}),t.reduce((n,c)=>(i.setEdge(n,c,{style:"invis"}),c))}),i}}),fo=re((u,s)=>{s.exports="2.0.4"}),bo=re((u,s)=>{s.exports={graphlib:ke(),layout:ho(),debug:mo(),util:{time:ce().time,notime:ce().notime},version:fo()}}),at=bo();function Ue(u,s,f={}){let{direction:x="TB",nodeWidth:d=260,nodeHeight:e=180,rankSep:r=100,nodeSep:i=80}=f,t=new at.graphlib.Graph().setDefaultEdgeLabel(()=>({}));return t.setGraph({rankdir:x,ranksep:r,nodesep:i,marginx:50,marginy:50}),u.forEach(o=>{let n=o.measured?.width||d,c=o.measured?.height||e;t.setNode(o.id,{width:n,height:c})}),s.forEach(o=>{t.setEdge(o.source,o.target)}),at.layout(t),{nodes:u.map(o=>{let n=t.node(o.id),c=o.measured?.width||d,h=o.measured?.height||e;return{...o,position:{x:n.x-c/2,y:n.y-h/2}}}),edges:s}}import{Home as mn,ChevronRight as fn}from"lucide-react";import{DialogueNode as rr,LogicNode as or,StateNode as ar,SubflowNode as ea,EntryNode as ta,ReturnNode as ra,RenderNode as nr,TriggerNode as sr,ConditionalNode as ir,SetVariableNode as lr,MorphNode as dr}from"@decido/canvas-core";import{PanelLeft as vo}from"lucide-react";import{GripVertical as xo}from"lucide-react";import{jsx as we,jsxs as Ye}from"react/jsx-runtime";var Zt={teal:{border:"border-teal-500/30",bg:"from-teal-500/15 to-cyan-500/10",text:"text-teal-400",ring:"ring-teal-400",glow:"rgba(20,184,166,0.6)"},cyan:{border:"border-cyan-500/30",bg:"from-cyan-500/15 to-sky-500/10",text:"text-cyan-400",ring:"ring-cyan-400",glow:"rgba(6,182,212,0.6)"},sky:{border:"border-sky-500/30",bg:"from-sky-500/15 to-blue-500/10",text:"text-sky-400",ring:"ring-sky-400",glow:"rgba(14,165,233,0.6)"},indigo:{border:"border-indigo-500/30",bg:"from-indigo-500/15 to-violet-500/10",text:"text-indigo-400",ring:"ring-indigo-400",glow:"rgba(99,102,241,0.6)"},rose:{border:"border-rose-500/30",bg:"from-rose-500/15 to-pink-500/10",text:"text-rose-400",ring:"ring-rose-400",glow:"rgba(244,63,94,0.6)"},amber:{border:"border-amber-500/30",bg:"from-amber-500/15 to-orange-500/10",text:"text-amber-400",ring:"ring-amber-400",glow:"rgba(245,158,11,0.6)"},emerald:{border:"border-emerald-500/30",bg:"from-emerald-500/15 to-green-500/10",text:"text-emerald-400",ring:"ring-emerald-400",glow:"rgba(16,185,129,0.6)"},violet:{border:"border-violet-500/30",bg:"from-violet-500/15 to-purple-500/10",text:"text-violet-400",ring:"ring-violet-400",glow:"rgba(139,92,246,0.6)"},pink:{border:"border-pink-500/30",bg:"from-pink-500/15 to-rose-500/10",text:"text-pink-400",ring:"ring-pink-400",glow:"rgba(236,72,153,0.6)"},orange:{border:"border-orange-500/30",bg:"from-orange-500/15 to-amber-500/10",text:"text-orange-400",ring:"ring-orange-400",glow:"rgba(249,115,22,0.6)"}},te=({label:u,icon:s,accentColor:f,isExecuting:x,children:d,extraHandles:e})=>{let r=Zt[f]||Zt.teal,i=x?`ring-2 ${r.ring} shadow-[0_0_20px_${r.glow}] scale-105 z-50`:"";return Ye("div",{className:`bg-surface-tertiary ${r.border} border rounded-xl shadow-2xl w-[240px] overflow-hidden group hover:${r.border.replace("/30","/60")} transition-all duration-300 ${i}`,children:[Ye("div",{className:`bg-linear-to-r ${r.bg} px-3 py-2 border-b ${r.border.replace("/30","/20")} flex items-center justify-between`,children:[Ye("div",{className:"flex items-center gap-2",children:[we("span",{className:r.text,children:s}),we("span",{className:`text-xs font-bold ${r.text} uppercase tracking-widest`,children:u})]}),we("div",{className:`${r.text} opacity-30 cursor-grab active:cursor-grabbing hover:opacity-80 transition-colors custom-drag-handle`,children:we(xo,{size:14})})]}),we("div",{className:"p-3 flex flex-col gap-3",children:d}),we($e,{type:"target",position:ot.Top,className:"w-3! h-3! bg-teal-500! border-teal-400/50! -top-1.5!"}),we($e,{type:"source",id:"success",position:ot.Bottom,className:"w-3! h-3! bg-emerald-500! border-emerald-400/50! -bottom-1.5!"}),e?.map(t=>we($e,{type:"source",id:t.id,position:t.position,className:t.className},t.id))]})},U=({label:u,value:s,onChange:f,placeholder:x,type:d="text",options:e})=>Ye("div",{className:"flex flex-col gap-1",children:[we("label",{className:"text-[10px] uppercase tracking-wider text-text-muted",children:u}),d==="select"&&e?we("select",{value:s,onChange:r=>f(r.target.value),className:"bg-surface-tertiary/50 border border-border-subtle rounded-lg px-2 py-1.5 text-xs text-text-primary w-full focus:outline-hidden focus:border-teal-500/50 transition-colors appearance-none cursor-pointer",children:e.map(r=>we("option",{value:r.value,children:r.label},r.value))}):we("input",{type:d,value:s,onChange:r=>f(r.target.value),className:"bg-surface-tertiary/50 border border-border-subtle rounded-lg px-2 py-1.5 text-xs text-text-primary w-full focus:outline-hidden focus:border-teal-500/50 transition-colors font-mono",placeholder:x})]});import{useTimelineStore as yo}from"@decido/engine";import{jsx as ze,jsxs as No}from"react/jsx-runtime";var nt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=yo(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return No(te,{id:u,label:"Activity Bar",icon:ze(vo,{size:14}),accentColor:"teal",isExecuting:s.isExecuting,children:[ze(U,{label:"ID",value:s.shellItemId||"",onChange:e=>d("shellItemId",e),placeholder:"btn-explorer"}),ze(U,{label:"T\xEDtulo",value:s.shellTitle||"",onChange:e=>d("shellTitle",e),placeholder:"Explorador"}),ze(U,{label:"\xCDcono",value:s.shellIcon||"",onChange:e=>d("shellIcon",e),placeholder:"fas fa-folder"}),ze(U,{label:"View ID",value:s.shellViewId||"",onChange:e=>d("shellViewId",e),placeholder:"explorer-view"}),ze(U,{label:"Orden",value:String(s.shellOrder||0),onChange:e=>d("shellOrder",parseInt(e)||0),type:"number"})]})};import{FileText as Eo}from"lucide-react";import{useTimelineStore as wo}from"@decido/engine";import{jsx as De,jsxs as Co}from"react/jsx-runtime";var st=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=wo(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return Co(te,{id:u,label:"Open Tab",icon:De(Eo,{size:14}),accentColor:"cyan",isExecuting:s.isExecuting,children:[De(U,{label:"Tab ID",value:s.shellTabId||"",onChange:e=>d("shellTabId",e),placeholder:"settings-tab"}),De(U,{label:"T\xEDtulo",value:s.shellTabTitle||"",onChange:e=>d("shellTabTitle",e),placeholder:"Configuraci\xF3n"}),De(U,{label:"Componente",value:s.shellTabComponent||"",onChange:e=>d("shellTabComponent",e),placeholder:"settings-view"}),De(U,{label:"\xCDcono",value:s.shellIcon||"",onChange:e=>d("shellIcon",e),placeholder:"fas fa-cog"})]})};import{PanelBottom as ko}from"lucide-react";import{useTimelineStore as So}from"@decido/engine";import{jsx as it,jsxs as To}from"react/jsx-runtime";var lt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=So(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return To(te,{id:u,label:"Panel View",icon:it(ko,{size:14}),accentColor:"indigo",isExecuting:s.isExecuting,children:[it(U,{label:"Panel ID",value:s.shellPanelId||"",onChange:e=>d("shellPanelId",e),placeholder:"output-panel"}),it(U,{label:"T\xEDtulo",value:s.shellPanelTitle||"",onChange:e=>d("shellPanelTitle",e),placeholder:"Output"})]})};import{Sidebar as Io}from"lucide-react";import{useTimelineStore as Po}from"@decido/engine";import{jsx as dt,jsxs as _o}from"react/jsx-runtime";var ct=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Po(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return _o(te,{id:u,label:"Sidebar View",icon:dt(Io,{size:14}),accentColor:"sky",isExecuting:s.isExecuting,children:[dt(U,{label:"View ID",value:s.shellSidebarId||"",onChange:e=>d("shellSidebarId",e),placeholder:"file-explorer"}),dt(U,{label:"T\xEDtulo",value:s.shellSidebarTitle||"",onChange:e=>d("shellSidebarTitle",e),placeholder:"Archivos"})]})};import{Minus as Ro}from"lucide-react";import{useTimelineStore as Oo}from"@decido/engine";import{jsx as Le,jsxs as Ao}from"react/jsx-runtime";var ut=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Oo(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return Ao(te,{id:u,label:"Status Bar",icon:Le(Ro,{size:14}),accentColor:"emerald",isExecuting:s.isExecuting,children:[Le(U,{label:"Item ID",value:s.shellStatusId||"",onChange:e=>d("shellStatusId",e),placeholder:"git-branch"}),Le(U,{label:"Texto",value:s.shellStatusText||"",onChange:e=>d("shellStatusText",e),placeholder:"main \u2713"}),Le(U,{label:"Alineaci\xF3n",value:s.shellStatusAlign||"left",onChange:e=>d("shellStatusAlign",e),type:"select",options:[{value:"left",label:"\u2190 Izquierda"},{value:"right",label:"\u2192 Derecha"}]}),Le(U,{label:"Orden",value:String(s.shellOrder||0),onChange:e=>d("shellOrder",parseInt(e)||0),type:"number"})]})};import{ArrowUpFromDot as zo}from"lucide-react";import{useTimelineStore as Mo}from"@decido/engine";import{jsx as Me,jsxs as Bo}from"react/jsx-runtime";var pt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Mo(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return Bo(te,{id:u,label:"Top Bar",icon:Me(zo,{size:14}),accentColor:"violet",isExecuting:s.isExecuting,children:[Me(U,{label:"Item ID",value:s.shellTopBarId||"",onChange:e=>d("shellTopBarId",e),placeholder:"toggle-sidebar"}),Me(U,{label:"T\xEDtulo",value:s.shellTitle||"",onChange:e=>d("shellTitle",e),placeholder:"Panel Izquierdo"}),Me(U,{label:"\xCDcono",value:s.shellIcon||"",onChange:e=>d("shellIcon",e),placeholder:"fas fa-bars"}),Me(U,{label:"Command ID",value:s.shellCommandId||"",onChange:e=>d("shellCommandId",e),placeholder:"layout.toggleSidebar"}),Me(U,{label:"Orden",value:String(s.shellOrder||0),onChange:e=>d("shellOrder",parseInt(e)||0),type:"number"})]})};import{Terminal as Do}from"lucide-react";import{useTimelineStore as Lo}from"@decido/engine";import{jsx as qe,jsxs as Fo}from"react/jsx-runtime";var gt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Lo(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return Fo(te,{id:u,label:"Register Cmd",icon:qe(Do,{size:14}),accentColor:"amber",isExecuting:s.isExecuting,children:[qe(U,{label:"Command ID",value:s.shellCommandId||"",onChange:e=>d("shellCommandId",e),placeholder:"myModule.doSomething"}),qe(U,{label:"T\xEDtulo",value:s.shellTitle||"",onChange:e=>d("shellTitle",e),placeholder:"Hacer algo"}),qe(U,{label:"Categor\xEDa",value:s.shellCategory||"",onChange:e=>d("shellCategory",e),placeholder:"General"})]})};import{PanelLeftClose as jo,PanelBottomClose as Ko,Columns2 as Vo,Focus as Go,X as $o}from"lucide-react";import{useTimelineStore as We}from"@decido/engine";import{jsx as xe,jsxs as Qt}from"react/jsx-runtime";var ht=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=We(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return xe(te,{id:u,label:"Toggle Sidebar",icon:xe(jo,{size:14}),accentColor:"sky",isExecuting:s.isExecuting,children:xe(U,{label:"Estado",value:s.shellVisible||"toggle",onChange:e=>d("shellVisible",e),type:"select",options:[{value:"toggle",label:"\u2194 Toggle"},{value:"true",label:"\u{1F441} Mostrar"},{value:"false",label:"\u{1F6AB} Ocultar"}]})})},mt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=We(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return xe(te,{id:u,label:"Toggle Panel",icon:xe(Ko,{size:14}),accentColor:"indigo",isExecuting:s.isExecuting,children:xe(U,{label:"Estado",value:s.shellVisible||"toggle",onChange:e=>d("shellVisible",e),type:"select",options:[{value:"toggle",label:"\u2194 Toggle"},{value:"true",label:"\u{1F441} Mostrar"},{value:"false",label:"\u{1F6AB} Ocultar"}]})})},ft=({id:u,data:s})=>xe(te,{id:u,label:"Split Pane",icon:xe(Vo,{size:14}),accentColor:"violet",isExecuting:s.isExecuting,children:xe("div",{className:"text-[10px] text-text-muted italic",children:"Divide el editor en un nuevo panel"})}),bt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=We(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return Qt(te,{id:u,label:"Focus Tab",icon:xe(Go,{size:14}),accentColor:"cyan",isExecuting:s.isExecuting,children:[xe(U,{label:"Pane ID",value:s.shellPaneId||"",onChange:e=>d("shellPaneId",e),placeholder:"pane-main"}),xe(U,{label:"Tab ID",value:s.shellTabId||"",onChange:e=>d("shellTabId",e),placeholder:"settings-tab"})]})},xt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=We(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return Qt(te,{id:u,label:"Close Tab",icon:xe($o,{size:14}),accentColor:"rose",isExecuting:s.isExecuting,children:[xe(U,{label:"Pane ID",value:s.shellPaneId||"",onChange:e=>d("shellPaneId",e),placeholder:"pane-main"}),xe(U,{label:"Tab ID",value:s.shellTabId||"",onChange:e=>d("shellTabId",e),placeholder:"settings-tab"})]})};import{Palette as Ho,Paintbrush as Uo,Pipette as Yo}from"lucide-react";import{useTimelineStore as vt}from"@decido/engine";import{jsx as Ce,jsxs as er}from"react/jsx-runtime";var yt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=vt(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return Ce(te,{id:u,label:"Set Theme",icon:Ce(Ho,{size:14}),accentColor:"amber",isExecuting:s.isExecuting,children:Ce(U,{label:"Tema",value:s.shellTheme||"dark",onChange:e=>d("shellTheme",e),type:"select",options:[{value:"dark",label:"\u{1F319} Dark"},{value:"light",label:"\u2600\uFE0F Light"}]})})},Nt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=vt(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return er(te,{id:u,label:"Apply Palette",icon:Ce(Uo,{size:14}),accentColor:"pink",isExecuting:s.isExecuting,children:[Ce(U,{label:"Primary",value:s.shellPrimary||"",onChange:e=>d("shellPrimary",e),placeholder:"#6366f1"}),Ce(U,{label:"Secondary",value:s.shellSecondary||"",onChange:e=>d("shellSecondary",e),placeholder:"#8b5cf6"}),Ce(U,{label:"Accent",value:s.shellAccent||"",onChange:e=>d("shellAccent",e),placeholder:"#f59e0b"}),Ce(U,{label:"BG Main",value:s.shellBgMain||"",onChange:e=>d("shellBgMain",e),placeholder:"#070720"}),Ce(U,{label:"BG Content",value:s.shellBgContent||"",onChange:e=>d("shellBgContent",e),placeholder:"#0F0F23"})]})},Et=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=vt(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return er(te,{id:u,label:"CSS Token",icon:Ce(Yo,{size:14}),accentColor:"orange",isExecuting:s.isExecuting,children:[Ce(U,{label:"Token",value:s.shellToken||"",onChange:e=>d("shellToken",e),placeholder:"--color-primary"}),Ce(U,{label:"Valor",value:s.shellTokenValue||"",onChange:e=>d("shellTokenValue",e),placeholder:"#6366f1"})]})};import{Bell as qo,SquareStack as Wo,Play as Jo,Keyboard as Xo,Radio as Zo}from"lucide-react";import{useTimelineStore as Fe}from"@decido/engine";import{jsx as ge,jsxs as je}from"react/jsx-runtime";var wt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Fe(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return je(te,{id:u,label:"Notification",icon:ge(qo,{size:14}),accentColor:"emerald",isExecuting:s.isExecuting,children:[ge(U,{label:"Tipo",value:s.shellNotifType||"info",onChange:e=>d("shellNotifType",e),type:"select",options:[{value:"info",label:"\u2139\uFE0F Info"},{value:"success",label:"\u2705 Success"},{value:"warning",label:"\u26A0\uFE0F Warning"},{value:"error",label:"\u274C Error"}]}),ge(U,{label:"T\xEDtulo",value:s.shellNotifTitle||"",onChange:e=>d("shellNotifTitle",e),placeholder:"Operaci\xF3n exitosa"}),ge(U,{label:"Mensaje",value:s.shellNotifMessage||"",onChange:e=>d("shellNotifMessage",e),placeholder:"Los cambios se guardaron"})]})},Ct=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Fe(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return je(te,{id:u,label:"Show Modal",icon:ge(Wo,{size:14}),accentColor:"violet",isExecuting:s.isExecuting,children:[ge(U,{label:"T\xEDtulo",value:s.shellModalTitle||"",onChange:e=>d("shellModalTitle",e),placeholder:"Confirmaci\xF3n"}),ge(U,{label:"Contenido HTML",value:s.shellModalContent||"",onChange:e=>d("shellModalContent",e),placeholder:"<p>\xBFEst\xE1s seguro?</p>"})]})},kt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Fe(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return je(te,{id:u,label:"Exec Command",icon:ge(Jo,{size:14}),accentColor:"teal",isExecuting:s.isExecuting,children:[ge(U,{label:"Command ID",value:s.shellCommandId||"",onChange:e=>d("shellCommandId",e),placeholder:"palette.toggle"}),ge(U,{label:"Argumento (JSON)",value:s.shellCommandArg||"",onChange:e=>d("shellCommandArg",e),placeholder:'{"key": "value"}'})]})},St=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Fe(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return je(te,{id:u,label:"Shortcut",icon:ge(Xo,{size:14}),accentColor:"amber",isExecuting:s.isExecuting,children:[ge(U,{label:"Keys",value:s.shellKeys||"",onChange:e=>d("shellKeys",e),placeholder:"Control+Shift+P"}),ge(U,{label:"Command ID",value:s.shellCommandId||"",onChange:e=>d("shellCommandId",e),placeholder:"palette.toggle"}),ge(U,{label:"Descripci\xF3n",value:s.shellShortcutDesc||"",onChange:e=>d("shellShortcutDesc",e),placeholder:"Abrir paleta"})]})},Tt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Fe(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return je(te,{id:u,label:"Emit Event",icon:ge(Zo,{size:14}),accentColor:"rose",isExecuting:s.isExecuting,children:[ge(U,{label:"Evento",value:s.shellEventName||"",onChange:e=>d("shellEventName",e),placeholder:"app:customEvent"}),ge(U,{label:"Data (JSON)",value:s.shellEventData||"",onChange:e=>d("shellEventData",e),placeholder:'{"msg": "hello"}'})]})};import{Settings2 as tr}from"lucide-react";import{useTimelineStore as Qo}from"@decido/engine";import{jsx as Se,jsxs as It}from"react/jsx-runtime";var Pt=({id:u,data:s})=>{let f=ee(e=>e.prototypeBrand),x=Qo(e=>e.updateKeyframe),d=(e,r)=>x(f,u,{[e]:r});return It(te,{id:u,label:"Shell Config",icon:Se(tr,{size:14}),accentColor:"teal",isExecuting:s.isExecuting,children:[Se(U,{label:"Tema",value:s.shellTheme||"",onChange:e=>d("shellTheme",e),type:"select",options:[{value:"",label:"\u2014 Sin cambio \u2014"},{value:"dark",label:"\u{1F319} Dark"},{value:"light",label:"\u2600\uFE0F Light"}]}),Se(U,{label:"Primary",value:s.shellPrimary||"",onChange:e=>d("shellPrimary",e),placeholder:"#6366f1"}),Se(U,{label:"Accent",value:s.shellAccent||"",onChange:e=>d("shellAccent",e),placeholder:"#f59e0b"}),Se(U,{label:"Sidebar",value:s.shellSidebarState||"",onChange:e=>d("shellSidebarState",e),type:"select",options:[{value:"",label:"\u2014 Sin cambio \u2014"},{value:"true",label:"\u{1F441} Visible"},{value:"false",label:"\u{1F6AB} Oculto"}]}),Se(U,{label:"Panel",value:s.shellPanelState||"",onChange:e=>d("shellPanelState",e),type:"select",options:[{value:"",label:"\u2014 Sin cambio \u2014"},{value:"true",label:"\u{1F441} Visible"},{value:"false",label:"\u{1F6AB} Oculto"}]}),It("div",{className:"flex flex-col gap-1",children:[Se("label",{className:"text-[10px] uppercase tracking-wider text-text-muted",children:"Config Extra (JSON)"}),Se("textarea",{value:s.shellConfigJson||"",onChange:e=>d("shellConfigJson",e.target.value),className:"bg-surface-tertiary/50 border border-border-subtle rounded-lg px-2 py-1.5 text-xs text-text-primary w-full focus:outline-hidden focus:border-teal-500/50 transition-colors font-mono resize-y min-h-[40px]",placeholder:'{"shortcuts": [{"id": "s1", "keys": "Ctrl+K", "commandId": "palette.toggle"}]}',rows:2})]}),It("div",{className:"flex items-center gap-2 pt-1 border-t border-border-subtle",children:[Se(tr,{size:12,className:"text-teal-400"}),Se("span",{className:"text-[10px] font-mono text-teal-400",children:"Full Shell Configuration"})]})]})};var cr={dialogue:rr,"ai:dialogue":rr,logic:or,"mcp:execute":or,ui:ar,"ui:state":ar,"core:subflow":ea,"core:entry":ta,"core:return":ra,"ui:render":nr,render:nr,trigger:sr,"event:trigger":sr,condition:ir,"logic:condition":ir,set:lr,"state:set":lr,morph:dr,"ui:morph":dr,"shell:registerButton":nt,"shell:registerTab":st,"shell:registerPanel":lt,"shell:registerSidebar":ct,"shell:registerStatusBar":ut,"shell:registerTopBar":pt,"shell:registerAction":gt,"shell:toggleSidebar":ht,"shell:togglePanel":mt,"shell:splitPane":ft,"shell:focusTab":bt,"shell:closeTab":xt,"shell:setTheme":yt,"shell:applyPalette":Nt,"shell:updateToken":Et,"shell:notification":wt,"shell:modal":Ct,"shell:execCommand":kt,"shell:shortcut":St,"shell:emitEvent":Tt,"shell:config":Pt},ur={"ai:dialogue":100,"ui:state":450,"mcp:execute":800,"core:subflow":1100,"core:entry":300,"core:return":300,"ui:render":1400,render:1400,"event:trigger":-200,"logic:condition":600,"state:set":1e3,set:1e3,morph:1400,"ui:morph":1400,"shell:registerButton":1700,"shell:registerTab":1700,"shell:registerPanel":1700,"shell:registerSidebar":1700,"shell:registerStatusBar":1700,"shell:registerTopBar":1700,"shell:registerAction":1700,"shell:toggleSidebar":2e3,"shell:togglePanel":2e3,"shell:splitPane":2e3,"shell:focusTab":2e3,"shell:closeTab":2e3,"shell:setTheme":2300,"shell:applyPalette":2300,"shell:updateToken":2300,"shell:notification":2600,"shell:modal":2600,"shell:execCommand":2600,"shell:shortcut":2600,"shell:emitEvent":2600,"shell:config":2900},pr={dialogue:"dialogue","ai:dialogue":"dialogue",logic:"logic","mcp:execute":"logic",ui:"ui","ui:state":"ui","core:subflow":"subflow","core:entry":"entry","core:return":"return","ui:render":"render",render:"render",trigger:"trigger","event:trigger":"trigger",condition:"condition","logic:condition":"condition",set:"set","state:set":"set"};function gr(u){let s={...u.payload},f=u.type;return f==="core:subflow"&&(s.label=u.payload.label),(f==="ui:render"||f==="render")&&(s.label=u.payload.label||u.payload.state||"UI Component",s.state=u.payload.state||u.payload.label||"UI Component",s.uiSchema=u.payload.uiSchema||u.payload.schema),f==="event:trigger"&&Object.assign(s,{triggerType:u.payload.triggerType||"SYSTEM_START",cronExpression:u.payload.cronExpression,webhookPath:u.payload.webhookPath,eventChannel:u.payload.eventChannel,guardExpression:u.payload.guardExpression,priority:u.payload.priority}),f==="logic:condition"&&(s.conditionExpression=u.payload.conditionExpression||""),(f==="morph"||f==="ui:morph")&&Object.assign(s,{morphType:u.payload.morphType||"workbench",morphData:u.payload.morphData||null,componentId:u.payload.componentId||"",suspendOnMorph:u.payload.suspendOnMorph||!1}),f.startsWith("shell:")&&Object.keys(u.payload).forEach(x=>{x.startsWith("shell")&&(s[x]=u.payload[x])}),s}function _t(u,s,f,x){let d={t:Date.now(),track:u,position:f,label:s,state:s};return u==="dialogue"?(d.speech="Nuevo di\xE1logo...",d.actorId="assistant"):u==="render"&&x?.uiSchema?(d.uiSchema=x.uiSchema,d.autoComplete=!1):u==="subflow"?d.targetBlueprintId="":u==="morph"?d.morphType="workbench":u==="set"?(d.target="",d.value=""):u==="condition"&&(d.conditionExpression="true"),u.startsWith("shell:")&&(d.track="shell",d.shellAction=x?.shellAction||u.replace("shell:","")),d}var oa=new Set(["success","error","true","false","fallback","cancel"]),aa={success:"#22c55e",error:"#ef4444",true:"#22c55e",false:"#ef4444",fallback:"#f97316",cancel:"#a855f7"};function hr(u,s,f){return u.map(x=>{let d=x.sourceHandle||"success",e=oa.has(d)?d:"success",r=aa[e]||"#a855f7",i=s.includes(x.source),t=f.includes(x.id),l=t?"#22d3ee":r,o=t?`drop-shadow(0 0 10px ${l})`:i?"drop-shadow(0 0 5px rgba(255,255,255,0.8))":"none";return{id:x.id,source:x.source,target:x.target,sourceHandle:e,targetHandle:x.targetHandle,animated:i||t,style:{stroke:l,strokeWidth:t?5:i?4:3,filter:o},markerEnd:{type:Kt.ArrowClosed,color:l}}})}import{MessageCircle as na,Cpu as sa,Monitor as ae,Network as ia,LogIn as la,LogOut as da,Zap as ca,Layout as mr,GitBranch as ua}from"lucide-react";import{Fragment as ga,jsx as Z,jsxs as Ke}from"react/jsx-runtime";var pa=[{section:"Di\xE1logo"},{track:"dialogue",label:"Dialogue Node",icon:Z(na,{size:14,className:"text-blue-400"}),color:"hover:bg-blue-500/10"},{section:"L\xF3gica"},{track:"logic",label:"Logic Gate",icon:Z(sa,{size:14,className:"text-amber-400"}),color:"hover:bg-amber-500/10"},{section:"Estado UI"},{track:"ui",label:"State Change",icon:Z(ae,{size:14,className:"text-purple-400"}),color:"hover:bg-purple-500/10"},{section:"HSM / Subflujos"},{track:"subflow",label:"Subflow",icon:Z(ia,{size:14,className:"text-violet-400"}),color:"hover:bg-violet-500/10"},{track:"entry",label:"Entry",icon:Z(la,{size:14,className:"text-emerald-400"}),color:"hover:bg-emerald-500/10"},{track:"return",label:"Return",icon:Z(da,{size:14,className:"text-rose-400"}),color:"hover:bg-rose-500/10"},{section:"Triggers / Branching"},{track:"trigger",label:"Event Trigger",icon:Z(ca,{size:14,className:"text-yellow-400"}),color:"hover:bg-yellow-500/10"},{track:"condition",label:"Condici\xF3n",icon:Z(ua,{size:14,className:"text-amber-400"}),color:"hover:bg-amber-500/10"},{track:"set",label:"Set Variable",icon:Z(mr,{size:14,className:"text-violet-400"}),color:"hover:bg-violet-500/10"},{section:"Morfolog\xEDa"},{track:"morph",label:"Morph Stage",icon:Z(ae,{size:14,className:"text-purple-400"}),color:"hover:bg-purple-500/10"},{section:"\u{1F5A5}\uFE0F Shell: Registro"},{track:"shell:registerButton",label:"Activity Bar",icon:Z(ae,{size:14,className:"text-teal-400"}),color:"hover:bg-teal-500/10",extra:{shellAction:"registerActivityBarItem"}},{track:"shell:registerTab",label:"Open Tab",icon:Z(ae,{size:14,className:"text-cyan-400"}),color:"hover:bg-cyan-500/10",extra:{shellAction:"openTab"}},{track:"shell:registerPanel",label:"Panel View",icon:Z(ae,{size:14,className:"text-indigo-400"}),color:"hover:bg-indigo-500/10",extra:{shellAction:"registerPanelView"}},{track:"shell:registerSidebar",label:"Sidebar View",icon:Z(ae,{size:14,className:"text-sky-400"}),color:"hover:bg-sky-500/10",extra:{shellAction:"registerSidebarView"}},{track:"shell:registerStatusBar",label:"Status Bar",icon:Z(ae,{size:14,className:"text-emerald-400"}),color:"hover:bg-emerald-500/10",extra:{shellAction:"registerStatusBarItem"}},{track:"shell:registerTopBar",label:"Top Bar",icon:Z(ae,{size:14,className:"text-violet-400"}),color:"hover:bg-violet-500/10",extra:{shellAction:"registerTopBarItem"}},{track:"shell:registerAction",label:"Register Cmd",icon:Z(ae,{size:14,className:"text-amber-400"}),color:"hover:bg-amber-500/10",extra:{shellAction:"registerCommand"}},{section:"\u{1F5A5}\uFE0F Shell: Layout"},{track:"shell:toggleSidebar",label:"Toggle Sidebar",icon:Z(ae,{size:14,className:"text-sky-400"}),color:"hover:bg-sky-500/10",extra:{shellAction:"toggleSidebar"}},{track:"shell:togglePanel",label:"Toggle Panel",icon:Z(ae,{size:14,className:"text-indigo-400"}),color:"hover:bg-indigo-500/10",extra:{shellAction:"togglePanel"}},{track:"shell:splitPane",label:"Split Pane",icon:Z(ae,{size:14,className:"text-violet-400"}),color:"hover:bg-violet-500/10",extra:{shellAction:"splitPane"}},{track:"shell:focusTab",label:"Focus Tab",icon:Z(ae,{size:14,className:"text-cyan-400"}),color:"hover:bg-cyan-500/10",extra:{shellAction:"focusTab"}},{track:"shell:closeTab",label:"Close Tab",icon:Z(ae,{size:14,className:"text-rose-400"}),color:"hover:bg-rose-500/10",extra:{shellAction:"closeTab"}},{section:"\u{1F5A5}\uFE0F Shell: Tema"},{track:"shell:setTheme",label:"Set Theme",icon:Z(ae,{size:14,className:"text-amber-400"}),color:"hover:bg-amber-500/10",extra:{shellAction:"setTheme"}},{track:"shell:applyPalette",label:"Apply Palette",icon:Z(ae,{size:14,className:"text-pink-400"}),color:"hover:bg-pink-500/10",extra:{shellAction:"applyPalette"}},{track:"shell:updateToken",label:"CSS Token",icon:Z(ae,{size:14,className:"text-orange-400"}),color:"hover:bg-orange-500/10",extra:{shellAction:"updateToken"}},{section:"\u{1F5A5}\uFE0F Shell: Interacci\xF3n"},{track:"shell:notification",label:"Notification",icon:Z(ae,{size:14,className:"text-emerald-400"}),color:"hover:bg-emerald-500/10",extra:{shellAction:"showNotification"}},{track:"shell:modal",label:"Show Modal",icon:Z(ae,{size:14,className:"text-violet-400"}),color:"hover:bg-violet-500/10",extra:{shellAction:"showModal"}},{track:"shell:execCommand",label:"Exec Command",icon:Z(ae,{size:14,className:"text-teal-400"}),color:"hover:bg-teal-500/10",extra:{shellAction:"executeCommand"}},{track:"shell:shortcut",label:"Shortcut",icon:Z(ae,{size:14,className:"text-amber-400"}),color:"hover:bg-amber-500/10",extra:{shellAction:"registerShortcut"}},{track:"shell:emitEvent",label:"Emit Event",icon:Z(ae,{size:14,className:"text-rose-400"}),color:"hover:bg-rose-500/10",extra:{shellAction:"emitEvent"}},{section:"\u{1F5A5}\uFE0F Shell: Config"},{track:"shell:config",label:"Shell Config",icon:Z(ae,{size:14,className:"text-teal-400"}),color:"hover:bg-teal-500/10",extra:{shellAction:"shellConfig"}}],fr=({x:u,y:s,onAdd:f,onClose:x})=>{let d=Ge(i=>i.components),e=Object.values(d),r={position:"fixed",left:Math.min(u,window.innerWidth-240),top:Math.min(s,window.innerHeight-600),zIndex:999};return Ke("div",{style:r,className:"w-56 bg-surface-secondary/95 backdrop-blur-xl border border-border-default rounded-xl shadow-2xl shadow-black/50 overflow-hidden",children:[Z("div",{className:"px-3 py-2 border-b border-border-subtle",children:Z("span",{className:"text-[10px] font-bold text-text-muted uppercase tracking-widest",children:"\u2795 Agregar Nodo"})}),Ke("div",{className:"max-h-[480px] overflow-y-auto py-1",children:[pa.map((i,t)=>i.section?Z("div",{className:"px-3 pt-2 pb-1 text-[9px] font-bold text-text-muted uppercase tracking-widest",children:i.section},`s-${t}`):Ke("button",{onClick:()=>f(i.track,i.label,i.extra),className:`w-full flex items-center gap-2.5 px-3 py-1.5 text-xs text-text-primary hover:text-text-primary transition-colors ${i.color}`,children:[i.icon,Z("span",{children:i.label})]},`i-${t}`)),e.length>0&&Ke(ga,{children:[Z("div",{className:"px-3 pt-2 pb-1 text-[9px] font-bold text-text-muted uppercase tracking-widest",children:"UI Components"}),e.map(i=>Ke("button",{onClick:()=>f("render",i.name,{uiSchema:i.schema}),className:"w-full flex items-center gap-2.5 px-3 py-1.5 text-xs text-text-primary hover:text-text-primary hover:bg-pink-500/10 transition-colors",children:[Z(mr,{size:14,className:i.source==="ai-generated"?"text-pink-400":"text-cyan-400"}),Z("span",{children:i.name}),Z("span",{className:"ml-auto text-[9px] text-text-muted",children:i.source==="ai-generated"?"AI":"built-in"})]},i.id))]})]})]})};import ha from"react";import{Undo2 as ma,Redo2 as fa,LayoutGrid as ba,AlignHorizontalDistributeCenter as xa,AlignVerticalDistributeCenter as va,Trash2 as ya}from"lucide-react";import{jsx as me,jsxs as Rt}from"react/jsx-runtime";var br=ha.memo(function({canUndo:s,canRedo:f,undoCount:x,redoCount:d,undo:e,redo:r,nodes:i,edges:t,setNodes:l,updateKeyframePosition:o,removeKeyframe:n,activeTimelineId:c,currentBlueprintId:h,fitView:_,setSelectedNodeId:j}){return Rt("div",{className:"absolute top-3 right-3 z-20 flex items-center gap-1 bg-surface-secondary/90 backdrop-blur-xs border border-border-default rounded-lg p-1",children:[Rt("button",{onClick:e,disabled:!s,className:"flex items-center gap-1 px-2 py-1.5 rounded-md text-xs transition-colors disabled:opacity-30 disabled:cursor-not-allowed hover:bg-surface-glass text-text-primary",title:"Deshacer (\u2318Z)",children:[me(ma,{size:14}),s&&me("span",{className:"text-[9px] text-emerald-400 font-mono",children:x})]}),me("div",{className:"w-px h-4 bg-surface-glass"}),Rt("button",{onClick:r,disabled:!f,className:"flex items-center gap-1 px-2 py-1.5 rounded-md text-xs transition-colors disabled:opacity-30 disabled:cursor-not-allowed hover:bg-surface-glass text-text-primary",title:"Rehacer (\u2318\u21E7Z)",children:[me(fa,{size:14}),f&&me("span",{className:"text-[9px] text-blue-400 font-mono",children:d})]}),me("div",{className:"w-px h-4 bg-surface-glass"}),me("button",{onClick:()=>{let{nodes:p}=Ue(i,t,{direction:"TB"});l(p),p.forEach(I=>o(c,I.id,I.position)),setTimeout(()=>_({padding:.2,duration:600}),50)},className:"flex items-center gap-1 px-2 py-1.5 rounded-md text-xs transition-colors hover:bg-surface-glass text-text-primary",title:"Organizar Nodos (Dagre Layout)",children:me(ba,{size:14})}),me("div",{className:"w-px h-4 bg-surface-glass"}),me("button",{onClick:()=>{let p=i.filter(T=>T.selected);if(p.length<2)return;let I=p.reduce((T,z)=>T+z.position.y,0)/p.length;l(T=>T.map(z=>z.selected?{...z,position:{...z.position,y:I}}:z)),p.forEach(T=>o(c,T.id,{...T.position,y:I}))},className:"flex items-center gap-1 px-2 py-1.5 rounded-md text-xs transition-colors hover:bg-surface-glass text-text-primary",title:"Alinear Horizontalmente",children:me(xa,{size:14})}),me("button",{onClick:()=>{let p=i.filter(T=>T.selected);if(p.length<2)return;let I=p.reduce((T,z)=>T+z.position.x,0)/p.length;l(T=>T.map(z=>z.selected?{...z,position:{...z.position,x:I}}:z)),p.forEach(T=>o(c,T.id,{...T.position,x:I}))},className:"flex items-center gap-1 px-2 py-1.5 rounded-md text-xs transition-colors hover:bg-surface-glass text-text-primary",title:"Alinear Verticalmente",children:me(va,{size:14})}),me("div",{className:"w-px h-4 bg-surface-glass"}),me("button",{onClick:()=>{let p=i.filter(T=>T.selected);if(p.length===0)return;let I=h||c;p.forEach(T=>n(I,T.id)),j(null)},className:"flex items-center gap-1 px-2 py-1.5 rounded-md text-xs transition-colors hover:bg-red-500/20 text-red-400",title:"Eliminar Seleccionados",children:me(ya,{size:14})})]})});function xr(u){return s=>{let f=s.metaKey||s.ctrlKey,x=s.target;if(x.tagName==="INPUT"||x.tagName==="TEXTAREA"||x.tagName==="SELECT")return;let d=u.getNodes(),e=u.getEdges(),r=u.currentBlueprintId||u.activeTimelineId;if(f&&s.key==="a"&&(s.preventDefault(),u.setNodes(i=>i.map(t=>({...t,selected:!0}))),u.setEdges(i=>i.map(t=>({...t,selected:!0})))),f&&s.key==="c"){let i=d.filter(l=>l.selected);if(!i.length)return;let t=new Set(i.map(l=>l.id));u.clipboard.current={nodes:i,edges:e.filter(l=>t.has(l.source)&&t.has(l.target))}}if(f&&s.key==="v"){let{nodes:i,edges:t}=u.clipboard.current;if(!i.length)return;s.preventDefault();let l={};u.setNodes(o=>o.map(n=>({...n,selected:!1}))),i.forEach(o=>{let n=`${o.id}_copy_${Date.now()}_${Math.random().toString(36).substring(7)}`;l[o.id]=n,u.addKeyframe(r,{id:n,t:Date.now(),track:u.NODE_TYPE_TO_TRACK[o.type||""]||o.type||"dialogue",label:`${o.data.label||o.data.state||"Copy"} (copia)`,state:`${o.data.state||o.data.label||"Copy"} (copia)`,position:{x:o.position.x+50,y:o.position.y+50},speech:o.data.speech,actorId:o.data.actorId,intent:o.data.intent,uiSchema:o.data.uiSchema||o.data.schema,autoComplete:o.data.autoComplete,triggerType:o.data.triggerType,guardExpression:o.data.guardExpression,priority:o.data.priority,conditionExpression:o.data.conditionExpression,variableTarget:o.data.variableTarget,variableValue:o.data.variableValue,targetBlueprintId:o.data.targetBlueprintId,handle:o.data.handle})}),t.forEach(o=>{let n=l[o.source],c=l[o.target];n&&c&&u.addTimelineEdge(r,{id:`edge-${n}-${c}-${Date.now()}`,source:n,target:c,sourceHandle:o.sourceHandle||null,targetHandle:o.targetHandle||null})})}if(s.key==="Delete"||s.key==="Backspace"){let i=d.filter(l=>l.selected),t=e.filter(l=>l.selected);if(!i.length&&!t.length)return;s.preventDefault(),i.forEach(l=>u.removeKeyframe(r,l.id)),t.forEach(l=>u.removeTimelineEdge(r,l.id)),u.setSelectedNodeId(null)}}}import Sa from"react";import{X as Ta,Variable as Ia}from"lucide-react";import{motion as Pa,AnimatePresence as _a}from"motion/react";import{useTimelineStore as Sr,useEngineStore as Ra}from"@decido/engine";import{Mic2 as Na,Monitor as Ea,Zap as Ot,Image as wa,PenSquare as Ca}from"lucide-react";import{jsx as J,jsxs as ne}from"react/jsx-runtime";var ka={dialogue:{icon:Na,label:"Di\xE1logo",color:"text-purple-400",bg:"bg-purple-500/10",border:"border-purple-500/20"},ui:{icon:Ea,label:"Estado UI",color:"text-cyan-400",bg:"bg-cyan-500/10",border:"border-cyan-500/20"},logic:{icon:Ot,label:"L\xF3gica MCP",color:"text-orange-400",bg:"bg-orange-500/10",border:"border-orange-500/20"},render:{icon:wa,label:"UI Render",color:"text-pink-400",bg:"bg-pink-500/10",border:"border-pink-500/20"},trigger:{icon:Ot,label:"Trigger",color:"text-yellow-400",bg:"bg-yellow-500/10",border:"border-yellow-500/20"},set:{icon:Ca,label:"Set Variable",color:"text-violet-400",bg:"bg-violet-500/10",border:"border-violet-500/20"}};function vr(u){return ka[u]||{icon:Ot,label:u,color:"text-orange-400",bg:"bg-orange-500/10",border:"border-orange-500/20"}}var yr=({keyframe:u,onUpdate:s})=>ne("div",{className:"flex flex-col gap-4",children:[J("h4",{className:"text-[10px] font-bold text-purple-400/40 uppercase tracking-widest border-b border-purple-500/20 pb-1",children:"Configuraci\xF3n Di\xE1logo"}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"Actor ID"}),ne("select",{value:u.actorId||"system",onChange:f=>s({actorId:f.target.value}),className:"bg-surface-overlay border border-border-default rounded px-2 py-1.5 text-xs text-purple-300 focus:outline-hidden focus:border-purple-500/50",children:[J("option",{value:"system",children:"\u{1F680} System"}),J("option",{value:"user",children:"\u{1F464} User"}),J("option",{value:"client",children:"\u{1F4BC} Client"}),J("option",{value:"inventory_agent",children:"\u{1F4E6} Inventory Agent"})]})]}),ne("div",{className:"flex flex-col gap-1 flex-1",children:[ne("label",{className:"text-[10px] text-text-muted flex justify-between",children:[J("span",{children:"Texto (TTS)"}),ne("span",{className:"text-purple-400/50",children:[u.speech?.length||0," chars"]})]}),J("textarea",{value:u.speech||"",onChange:f=>s({speech:f.target.value}),className:"bg-surface-overlay border border-border-default rounded px-2 py-2 text-xs text-text-primary focus:outline-hidden focus:border-purple-500/50 min-h-[120px] resize-y",placeholder:"Escribe el di\xE1logo aqu\xED..."})]})]}),Nr=({keyframe:u,onUpdate:s})=>ne("div",{className:"flex flex-col gap-4",children:[J("h4",{className:"text-[10px] font-bold text-cyan-400/40 uppercase tracking-widest border-b border-cyan-500/20 pb-1",children:"Eventos Interfaz"}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"App State Trigger"}),J("input",{type:"text",value:u.state||"",onChange:f=>s({state:f.target.value}),className:"bg-surface-overlay border border-border-default rounded px-2 py-1.5 text-xs text-cyan-300 font-mono focus:outline-hidden focus:border-cyan-500/50",placeholder:"e.g., loading_screen"})]}),J("div",{className:"mt-1 bg-surface-glass rounded-lg border border-border-default p-3",children:ne("label",{className:"flex items-start gap-3 cursor-pointer",children:[J("input",{type:"checkbox",checked:u.canvas||!1,onChange:f=>s({canvas:f.target.checked}),className:"mt-0.5 rounded border-border-strong bg-surface-glass text-cyan-500 w-4 h-4 cursor-pointer"}),ne("div",{className:"flex flex-col",children:[J("span",{className:"text-xs font-bold text-cyan-300",children:"Embeber Lienzo 3D"}),J("span",{className:"text-[10px] text-text-muted mt-1",children:"Al pasar por este nodo, mostrar\xE1 el motor SpatialCanvas3D."})]})]})})]}),Er=({keyframe:u,onUpdate:s})=>ne("div",{className:"flex flex-col gap-4",children:[J("h4",{className:"text-[10px] font-bold text-pink-400/40 uppercase tracking-widest border-b border-pink-500/20 pb-1",children:"UI Component"}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"Nombre"}),J("input",{type:"text",value:u.label||u.state||"",onChange:f=>s({label:f.target.value,state:f.target.value}),className:"bg-surface-overlay border border-border-default rounded px-2 py-1.5 text-xs text-pink-300 font-mono focus:outline-hidden focus:border-pink-500/50",placeholder:"e.g., Formulario Contacto"})]}),J("div",{className:"bg-surface-glass rounded-lg border border-border-default p-3",children:ne("label",{className:"flex items-start gap-3 cursor-pointer",children:[J("input",{type:"checkbox",checked:u.autoComplete??!0,onChange:f=>s({autoComplete:f.target.checked}),className:"mt-0.5 rounded border-border-strong bg-surface-glass text-pink-500 w-4 h-4 cursor-pointer"}),ne("div",{className:"flex flex-col",children:[J("span",{className:"text-xs font-bold text-pink-300",children:"Auto-Complete"}),J("span",{className:"text-[10px] text-text-muted mt-1",children:"Si activo, el nodo se completa al mostrarse. Si no, espera interacci\xF3n."})]})]})}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"UI Schema (JSON)"}),J("textarea",{value:typeof u.uiSchema=="object"?JSON.stringify(u.uiSchema,null,2):u.uiSchema||"",onChange:f=>{try{s({uiSchema:JSON.parse(f.target.value)})}catch{}},className:"bg-surface-overlay border border-border-default rounded px-2 py-2 text-[10px] text-pink-200 font-mono focus:outline-hidden focus:border-pink-500/50 min-h-[80px] resize-y",placeholder:'{"type":"div","children":...}'})]})]}),wr=({keyframe:u,onUpdate:s})=>ne("div",{className:"flex flex-col gap-4",children:[J("h4",{className:"text-[10px] font-bold text-orange-400/40 uppercase tracking-widest border-b border-orange-500/20 pb-1",children:"Motor de L\xF3gica"}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"T\xF3pico / Intenci\xF3n"}),J("input",{type:"text",value:u.intent||"",onChange:f=>s({intent:f.target.value}),className:"bg-surface-overlay border border-border-default rounded px-2 py-1.5 text-xs text-orange-300 font-mono focus:outline-hidden focus:border-orange-500/50",placeholder:"e.g., process_payment"})]}),J("div",{className:"p-3 bg-orange-500/10 border border-orange-500/20 rounded",children:J("p",{className:"text-[10px] text-orange-300/80 leading-relaxed",children:"Este nodo disparar\xE1 eventos hacia el Event Mesh para orquestar servicios remotos."})})]}),Cr=({keyframe:u,onUpdate:s})=>ne("div",{className:"flex flex-col gap-4",children:[J("h4",{className:"text-[10px] font-bold text-yellow-400/40 uppercase tracking-widest border-b border-yellow-500/20 pb-1",children:"Activaci\xF3n Autom\xE1tica"}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"Guard Expression"}),J("input",{type:"text",value:u.guardExpression||"",onChange:f=>s({guardExpression:f.target.value}),className:"bg-surface-overlay border border-border-default rounded px-2 py-1.5 text-xs text-yellow-300 font-mono focus:outline-hidden focus:border-yellow-500/50",placeholder:"!user.onboardingComplete"}),J("span",{className:"text-[9px] text-text-muted",children:"Si true, el flujo se auto-activa al cargar la app."})]}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"Prioridad"}),J("input",{type:"number",value:u.priority||0,onChange:f=>s({priority:parseInt(f.target.value)||0}),className:"bg-surface-overlay border border-border-default rounded px-2 py-1.5 text-xs text-yellow-300 font-mono focus:outline-hidden focus:border-yellow-500/50 w-20",placeholder:"0"}),J("span",{className:"text-[9px] text-text-muted",children:"Mayor = se eval\xFAa primero."})]})]}),kr=({keyframe:u,onUpdate:s})=>ne("div",{className:"flex flex-col gap-4",children:[J("h4",{className:"text-[10px] font-bold text-violet-400/40 uppercase tracking-widest border-b border-violet-500/20 pb-1",children:"Escritura de Variable"}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"Variable Target"}),J("input",{type:"text",value:u.variableTarget||"",onChange:f=>s({variableTarget:f.target.value}),className:"bg-surface-overlay border border-border-default rounded px-2 py-1.5 text-xs text-violet-300 font-mono focus:outline-hidden focus:border-violet-500/50",placeholder:"e.g., user.onboardingComplete"}),J("span",{className:"text-[9px] text-text-muted",children:'Prefijo "user." = persistente. Sin prefijo = sesi\xF3n.'})]}),ne("div",{className:"flex flex-col gap-1",children:[J("label",{className:"text-[10px] text-text-muted",children:"Valor"}),J("input",{type:"text",value:u.variableValue??"",onChange:f=>s({variableValue:f.target.value}),className:"bg-surface-overlay border border-border-default rounded px-2 py-1.5 text-xs text-emerald-300 font-mono focus:outline-hidden focus:border-violet-500/50",placeholder:"e.g., true, 50, user.xp + 10"}),J("span",{className:"text-[9px] text-text-muted",children:"Puede ser literal o expresi\xF3n JS."})]})]});import{jsx as de,jsxs as ve}from"react/jsx-runtime";var Tr=({selectedNodeId:u,onClose:s})=>{let f=ee(c=>c.prototypeBrand),x=Sr(c=>c.timelines),d=Sr(c=>c.updateKeyframe),e=Ra(c=>c.variables),r=x[f]?.keyframes.find(c=>c.id===u),i=r?.track||"",t=Sa.useMemo(()=>{if(!r)return[];let h=((r.speech||"")+(r.state||"")).match(/\{\{([^}]+)\}\}/g)||[];return[...new Set(h.map(_=>_.replace(/\{\{|\}\}/g,"").trim()))]},[r?.speech,r?.state,r]);if(!r)return null;let l=vr(i),o=l.icon,n=c=>d(f,r.id,c);return de(_a,{children:ve(Pa.div,{initial:{x:300,opacity:0},animate:{x:0,opacity:1},exit:{x:300,opacity:0},transition:{type:"spring",bounce:0,duration:.3},className:"absolute right-0 top-0 bottom-0 w-[300px] bg-surface-primary border-l border-border-default z-50 shadow-2xl flex flex-col",children:[ve("div",{className:`p-4 border-b border-border-default flex items-center justify-between ${l.bg}`,children:[ve("div",{className:"flex items-center gap-2",children:[de(o,{size:16,className:l.color}),de("h3",{className:`text-sm font-bold uppercase tracking-widest ${l.color}`,children:l.label})]}),de("button",{onClick:s,className:"p-1 rounded-md hover:bg-surface-glass text-text-primary/50 hover:text-text-primary transition-colors",children:de(Ta,{size:16})})]}),ve("div",{className:"flex-1 overflow-y-auto p-4 custom-scrollbar flex flex-col gap-5",children:[ve("div",{className:"flex flex-col gap-2",children:[de("h4",{className:"text-[10px] font-bold text-text-primary/40 uppercase tracking-widest border-b border-border-default pb-1",children:"Metadatos Base"}),ve("div",{className:"grid grid-cols-2 gap-2 mt-1",children:[ve("div",{className:"flex flex-col gap-1",children:[de("label",{className:"text-[10px] text-text-muted",children:"Node ID"}),de("input",{type:"text",value:r.id,readOnly:!0,className:"bg-surface-overlay border border-border-subtle rounded px-2 py-1 text-xs text-text-secondary font-mono outline-hidden"})]}),ve("div",{className:"flex flex-col gap-1",children:[de("label",{className:"text-[10px] text-text-muted",children:"Tiempo (t)"}),ve("div",{className:"flex items-center border border-border-default rounded overflow-hidden",children:[de("input",{type:"number",step:"0.1",value:r.t,onChange:c=>n({t:parseFloat(c.target.value)||0}),className:"bg-surface-glass px-2 py-1 text-xs text-text-primary outline-hidden w-full font-mono"}),de("span",{className:"bg-surface-glass px-2 py-1 text-xs text-text-muted border-l border-border-default",children:"s"})]})]})]})]}),i==="dialogue"&&de(yr,{keyframe:r,onUpdate:n}),i==="ui"&&de(Nr,{keyframe:r,onUpdate:n}),i==="render"&&de(Er,{keyframe:r,onUpdate:n}),i==="logic"&&de(wr,{keyframe:r,onUpdate:n}),i==="trigger"&&de(Cr,{keyframe:r,onUpdate:n}),i==="set"&&de(kr,{keyframe:r,onUpdate:n}),ve("div",{className:"flex flex-col gap-3 mt-2",children:[ve("h4",{className:"text-[10px] font-bold text-emerald-400/40 uppercase tracking-widest border-b border-emerald-500/20 pb-1 flex items-center gap-1.5",children:[de(Ia,{size:10}),"Data Bindings"]}),t.length>0&&ve("div",{className:"flex flex-col gap-1",children:[de("span",{className:"text-[9px] text-text-muted uppercase",children:"Variables Referenciadas"}),de("div",{className:"flex flex-wrap gap-1",children:t.map(c=>ve("span",{className:`text-[10px] font-mono px-1.5 py-0.5 rounded border ${e[c]!==void 0?"bg-emerald-500/10 border-emerald-500/20 text-emerald-400":"bg-red-500/10 border-red-500/20 text-red-400"}`,children:[`{{${c}}}`," ",e[c]!==void 0?`= ${e[c]}`:"\u26A0 undefined"]},c))})]}),ve("div",{className:"p-2 bg-emerald-500/5 border border-emerald-500/10 rounded text-[10px] text-text-muted",children:["Usa ",de("code",{className:"text-emerald-400 bg-surface-glass px-1 rounded",children:"{{variable}}"})," en el texto para interpolar valores del Motor."]})]})]})]})})};import{useState as zt,useMemo as Kr}from"react";import{motion as Vr,AnimatePresence as Wa}from"motion/react";import{ChevronDown as Ja,ChevronRight as Xa,GripVertical as Za,PanelLeftClose as Qa,PanelLeft as en,Search as tn,Layout as rn,Image as on}from"lucide-react";import{MessageCircle as Ir,Cpu as Pr,Monitor as At,Network as _r,LogIn as Oa,LogOut as Aa,Zap as Rr,Layout as za,GitBranch as Ma,PenSquare as Ba,Terminal as Or,PanelBottom as Ar,Sidebar as Da,Minus as La,ArrowUpFromDot as Fa,FileText as ja,Columns2 as zr,Focus as Ka,X as Va,Palette as Mr,Paintbrush as Ga,Pipette as $a,Bell as Br,SquareStack as Ha,Play as Ua,Keyboard as Ya,Radio as qa,Settings2 as Dr,PanelLeft as Lr}from"lucide-react";import{jsx as X}from"react/jsx-runtime";var Fr="application/decido-node",jr=[{id:"dialogue",label:"Di\xE1logo",icon:X(Ir,{size:14}),items:[{type:"dialogue",label:"Dialogue",icon:X(Ir,{size:16}),color:"border-blue-500/40",description:"Nodo de di\xE1logo AI"}]},{id:"logic",label:"L\xF3gica / MCP",icon:X(Pr,{size:14}),items:[{type:"logic",label:"Logic Gate",icon:X(Pr,{size:16}),color:"border-amber-500/40",description:"Evaluaci\xF3n condicional"}]},{id:"ui",label:"Estado UI",icon:X(At,{size:14}),items:[{type:"ui",label:"State Change",icon:X(At,{size:16}),color:"border-purple-500/40",description:"Cambio de estado visual"}]},{id:"hsm",label:"HSM / Subflujos",icon:X(_r,{size:14}),items:[{type:"core:subflow",label:"Subflow",icon:X(_r,{size:16}),color:"border-violet-500/40",description:"Subflujo jer\xE1rquico"},{type:"core:entry",label:"Entry",icon:X(Oa,{size:16}),color:"border-emerald-500/40",description:"Punto de entrada"},{type:"core:return",label:"Return",icon:X(Aa,{size:16}),color:"border-rose-500/40",description:"Punto de retorno"}]},{id:"triggers",label:"Triggers / Branching",icon:X(Rr,{size:14}),items:[{type:"trigger",label:"Event Trigger",icon:X(Rr,{size:16}),color:"border-yellow-500/40",description:"Disparador de evento"},{type:"condition",label:"Condici\xF3n",icon:X(Ma,{size:16}),color:"border-amber-500/40",description:"Bifurcaci\xF3n condicional"},{type:"set",label:"Set Variable",icon:X(Ba,{size:16}),color:"border-violet-500/40",description:"Escribir variable (UserState o sesi\xF3n)"}]},{id:"morphology",label:"Morfolog\xEDa",icon:X(za,{size:14}),items:[{type:"morph",label:"Morph Stage",icon:X(At,{size:16}),color:"border-purple-500/40",description:"Controlar \xE1rea de renderizado"}]},{id:"shell-register",label:"\u{1F5A5}\uFE0F Shell: Registro",icon:X(Or,{size:14}),items:[{type:"shell:registerButton",label:"Activity Bar",icon:X(Lr,{size:16}),color:"border-teal-500/40",description:"Registrar bot\xF3n en Activity Bar",meta:{shellAction:"registerActivityBarItem"}},{type:"shell:registerTab",label:"Open Tab",icon:X(ja,{size:16}),color:"border-cyan-500/40",description:"Abrir tab en el editor",meta:{shellAction:"openTab"}},{type:"shell:registerPanel",label:"Panel View",icon:X(Ar,{size:16}),color:"border-indigo-500/40",description:"Registrar vista en panel inferior",meta:{shellAction:"registerPanelView"}},{type:"shell:registerSidebar",label:"Sidebar View",icon:X(Da,{size:16}),color:"border-sky-500/40",description:"Registrar vista en sidebar",meta:{shellAction:"registerSidebarView"}},{type:"shell:registerStatusBar",label:"Status Bar",icon:X(La,{size:16}),color:"border-emerald-500/40",description:"A\xF1adir item al status bar",meta:{shellAction:"registerStatusBarItem"}},{type:"shell:registerTopBar",label:"Top Bar",icon:X(Fa,{size:16}),color:"border-violet-500/40",description:"A\xF1adir bot\xF3n al top bar",meta:{shellAction:"registerTopBarItem"}},{type:"shell:registerAction",label:"Register Cmd",icon:X(Or,{size:16}),color:"border-amber-500/40",description:"Registrar un comando",meta:{shellAction:"registerCommand"}}]},{id:"shell-layout",label:"\u{1F5A5}\uFE0F Shell: Layout",icon:X(zr,{size:14}),items:[{type:"shell:toggleSidebar",label:"Toggle Sidebar",icon:X(Lr,{size:16}),color:"border-sky-500/40",description:"Mostrar/ocultar sidebar",meta:{shellAction:"toggleSidebar"}},{type:"shell:togglePanel",label:"Toggle Panel",icon:X(Ar,{size:16}),color:"border-indigo-500/40",description:"Mostrar/ocultar panel",meta:{shellAction:"togglePanel"}},{type:"shell:splitPane",label:"Split Pane",icon:X(zr,{size:16}),color:"border-violet-500/40",description:"Dividir editor",meta:{shellAction:"splitPane"}},{type:"shell:focusTab",label:"Focus Tab",icon:X(Ka,{size:16}),color:"border-cyan-500/40",description:"Enfocar un tab",meta:{shellAction:"focusTab"}},{type:"shell:closeTab",label:"Close Tab",icon:X(Va,{size:16}),color:"border-rose-500/40",description:"Cerrar un tab",meta:{shellAction:"closeTab"}}]},{id:"shell-theme",label:"\u{1F5A5}\uFE0F Shell: Tema",icon:X(Mr,{size:14}),items:[{type:"shell:setTheme",label:"Set Theme",icon:X(Mr,{size:16}),color:"border-amber-500/40",description:"Cambiar dark/light",meta:{shellAction:"setTheme"}},{type:"shell:applyPalette",label:"Apply Palette",icon:X(Ga,{size:16}),color:"border-pink-500/40",description:"Aplicar paleta de colores",meta:{shellAction:"applyPalette"}},{type:"shell:updateToken",label:"CSS Token",icon:X($a,{size:16}),color:"border-orange-500/40",description:"Modificar token CSS",meta:{shellAction:"updateToken"}}]},{id:"shell-interaction",label:"\u{1F5A5}\uFE0F Shell: Interacci\xF3n",icon:X(Br,{size:14}),items:[{type:"shell:notification",label:"Notification",icon:X(Br,{size:16}),color:"border-emerald-500/40",description:"Mostrar toast",meta:{shellAction:"showNotification"}},{type:"shell:modal",label:"Show Modal",icon:X(Ha,{size:16}),color:"border-violet-500/40",description:"Abrir modal",meta:{shellAction:"showModal"}},{type:"shell:execCommand",label:"Exec Command",icon:X(Ua,{size:16}),color:"border-teal-500/40",description:"Ejecutar comando",meta:{shellAction:"executeCommand"}},{type:"shell:shortcut",label:"Shortcut",icon:X(Ya,{size:16}),color:"border-amber-500/40",description:"Registrar atajo",meta:{shellAction:"registerShortcut"}},{type:"shell:emitEvent",label:"Emit Event",icon:X(qa,{size:16}),color:"border-rose-500/40",description:"Emitir evento",meta:{shellAction:"emitEvent"}}]},{id:"shell-config",label:"\u{1F5A5}\uFE0F Shell: Config",icon:X(Dr,{size:14}),items:[{type:"shell:config",label:"Shell Config",icon:X(Dr,{size:16}),color:"border-teal-500/40",description:"Configuraci\xF3n completa del shell",meta:{shellAction:"shellConfig"}}]}];import{jsx as se,jsxs as _e}from"react/jsx-runtime";var Gr=({className:u})=>{let[s,f]=zt(!1),[x,d]=zt({dialogue:!0,logic:!0,ui:!0,render:!0,hsm:!1,triggers:!1,morphology:!1,"shell-register":!0,"shell-layout":!0,"shell-theme":!0,"shell-interaction":!0,"shell-config":!0}),[e,r]=zt(""),i=Ge(n=>n.components),t=Kr(()=>{let n=Object.values(i).map(h=>({type:"render",label:h.name,icon:se(rn,{size:16}),color:h.source==="ai-generated"?"border-pink-500/40":"border-cyan-500/40",description:`${h.category} \xB7 ${h.source}`,meta:{uiSchema:h.schema,componentId:h.id}})),c=[...jr];return c.splice(3,0,{id:"render",label:"UI Render",icon:se(on,{size:14}),items:n}),c},[i]),l=Kr(()=>{if(!e.trim())return t;let n=e.toLowerCase();return t.map(c=>({...c,items:c.items.filter(h=>h.label.toLowerCase().includes(n)||h.type.toLowerCase().includes(n)||(h.description||"").toLowerCase().includes(n))})).filter(c=>c.items.length>0)},[t,e]),o=(n,c)=>{n.dataTransfer.setData(Fr,JSON.stringify({type:c.type,label:c.label,meta:c.meta||{}})),n.dataTransfer.effectAllowed="move"};return s?se("div",{className:`flex flex-col items-center py-3 px-1 bg-surface-primary/80 border-r border-border-subtle ${u||""}`,children:se("button",{onClick:()=>f(!1),className:"p-2 rounded-lg text-text-muted hover:text-text-primary hover:bg-surface-glass transition-colors",title:"Abrir Palette",children:se(en,{size:18})})}):_e(Vr.div,{initial:{width:0,opacity:0},animate:{width:220,opacity:1},exit:{width:0,opacity:0},transition:{duration:.2},className:`flex flex-col bg-surface-primary/90 border-r border-border-subtle overflow-hidden select-none ${u||""}`,style:{width:220},children:[_e("div",{className:"flex items-center justify-between px-3 py-2.5 border-b border-border-subtle",children:[se("span",{className:"text-xs font-bold text-text-secondary uppercase tracking-wider",children:"Nodos"}),se("button",{onClick:()=>f(!0),className:"p-1 rounded text-text-muted hover:text-text-primary hover:bg-surface-glass transition-colors",children:se(Qa,{size:14})})]}),se("div",{className:"px-2 py-2 border-b border-border-subtle",children:_e("div",{className:"flex items-center gap-2 bg-surface-glass rounded-lg px-2.5 py-1.5",children:[se(tn,{size:12,className:"text-text-muted shrink-0"}),se("input",{type:"text",placeholder:"Buscar nodos...",value:e,onChange:n=>r(n.target.value),className:"bg-transparent text-xs text-text-primary placeholder-zinc-600 outline-hidden w-full"})]})}),se("div",{className:"flex-1 overflow-y-auto custom-scrollbar",children:l.map(n=>_e("div",{children:[_e("button",{onClick:()=>d(c=>({...c,[n.id]:!c[n.id]})),className:"w-full flex items-center gap-2 px-3 py-2 text-xs font-semibold text-text-secondary hover:text-text-primary hover:bg-surface-glass transition-colors",children:[x[n.id]?se(Ja,{size:12}):se(Xa,{size:12}),se("span",{className:"text-text-muted",children:n.icon}),se("span",{children:n.label}),se("span",{className:"ml-auto text-[10px] text-text-muted bg-surface-glass px-1.5 py-0.5 rounded",children:n.items.length})]}),se(Wa,{children:x[n.id]&&se(Vr.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.15},className:"overflow-hidden",children:n.items.map(c=>_e("div",{draggable:!0,onDragStart:h=>o(h,c),className:`flex items-center gap-2 px-3 py-2 mx-2 mb-1 rounded-lg border bg-surface-secondary/60 hover:bg-surface-glass cursor-grab active:cursor-grabbing transition-all group ${c.color}`,children:[se(Za,{size:12,className:"text-text-muted group-hover:text-text-secondary shrink-0"}),se("div",{className:"text-text-secondary group-hover:text-text-primary shrink-0",children:c.icon}),_e("div",{className:"flex-1 min-w-0",children:[se("div",{className:"text-[11px] font-medium text-text-primary group-hover:text-text-primary truncate",children:c.label}),c.description&&se("div",{className:"text-[9px] text-text-muted truncate",children:c.description})]})]},`${n.id}-${c.type}-${c.label}`))})})]},n.id))})]})};import{useState as Je,useCallback as Mt}from"react";import{motion as an,AnimatePresence as nn}from"motion/react";import{Variable as sn,Plus as ln,Trash2 as dn,ChevronDown as cn,ChevronRight as un,Search as pn}from"lucide-react";import{useEngineStore as Xe}from"@decido/engine";import{jsx as ie,jsxs as Re}from"react/jsx-runtime";var $r=({isOpen:u,onToggle:s})=>{let f=Xe(b=>b.variables),x=Xe(b=>b.setVariable),[d,e]=Je(""),[r,i]=Je(""),[t,l]=Je(""),[o,n]=Je(null),c=Object.entries(f).filter(([b])=>!t||b.toLowerCase().includes(t.toLowerCase())),h=Mt(()=>{if(!d.trim())return;let b=r;if(r==="true")b=!0;else if(r==="false")b=!1;else if(!isNaN(Number(r))&&r.trim())b=Number(r);else try{b=JSON.parse(r)}catch{}x(d.trim(),b),e(""),i("")},[d,r,x]),_=Mt(b=>{let p={...Xe.getState().variables};delete p[b],Xe.setState({variables:p})},[]),j=Mt((b,k)=>{let p=k;if(k==="true")p=!0;else if(k==="false")p=!1;else if(!isNaN(Number(k))&&k.trim())p=Number(k);else try{p=JSON.parse(k)}catch{}x(b,p),n(null)},[x]),G=b=>typeof b=="boolean"?"text-amber-400":typeof b=="number"?"text-blue-400":typeof b=="object"?"text-violet-400":"text-emerald-400",Y=b=>typeof b=="boolean"?"bool":typeof b=="number"?"num":typeof b=="object"?"obj":"str";return Re("div",{className:"absolute bottom-0 left-0 right-0 z-30",children:[Re("button",{onClick:s,className:"flex items-center gap-2 px-3 py-1.5 bg-surface-secondary/90 backdrop-blur-xs border-t border-x border-border-default rounded-t-lg text-xs text-text-secondary hover:text-emerald-400 transition-colors ml-4",children:[ie(sn,{size:12}),ie("span",{className:"font-bold uppercase tracking-wider text-[9px]",children:"Variables"}),ie("span",{className:"ml-1 bg-emerald-500/20 text-emerald-400 text-[9px] px-1.5 py-0.5 rounded-full font-mono",children:Object.keys(f).length}),u?ie(cn,{size:10}):ie(un,{size:10})]}),ie(nn,{children:u&&ie(an.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},className:"bg-surface-secondary/95 backdrop-blur-xl border-t border-border-default overflow-hidden",children:Re("div",{className:"max-h-[220px] overflow-y-auto custom-scrollbar",children:[ie("div",{className:"flex items-center gap-2 p-2 border-b border-border-subtle",children:Re("div",{className:"flex items-center gap-1 flex-1 bg-surface-overlay rounded-lg px-2 border border-border-subtle",children:[ie(pn,{size:12,className:"text-text-muted"}),ie("input",{type:"text",placeholder:"Buscar...",value:t,onChange:b=>l(b.target.value),className:"bg-transparent text-xs text-text-primary outline-hidden py-1.5 w-full placeholder-zinc-600"})]})}),Re("div",{className:"divide-y divide-white/5",children:[c.length===0&&ie("div",{className:"text-center text-text-muted text-[10px] py-4",children:t?"Sin resultados":"No hay variables definidas"}),c.map(([b,k])=>Re("div",{className:"flex items-center gap-2 px-3 py-1.5 hover:bg-surface-glass group transition-colors",children:[ie("span",{className:`text-[9px] font-bold uppercase ${G(k)} bg-surface-glass px-1 py-0.5 rounded`,children:Y(k)}),ie("span",{className:"text-xs text-text-primary font-mono truncate min-w-[100px]",children:b}),ie("span",{className:"text-text-muted text-[10px]",children:"="}),o===b?ie("input",{autoFocus:!0,defaultValue:typeof k=="object"?JSON.stringify(k):String(k),onBlur:p=>j(b,p.target.value),onKeyDown:p=>{p.key==="Enter"&&j(b,p.target.value),p.key==="Escape"&&n(null)},className:"flex-1 bg-surface-overlay border border-emerald-500/30 rounded px-1.5 py-0.5 text-xs text-text-primary outline-hidden font-mono"}):ie("span",{onClick:()=>n(b),className:`flex-1 text-xs font-mono truncate cursor-pointer hover:text-text-primary transition-colors ${G(k)}`,children:typeof k=="object"?JSON.stringify(k):String(k)}),ie("button",{onClick:()=>_(b),className:"opacity-0 group-hover:opacity-100 text-text-muted hover:text-red-400 transition-all p-0.5",children:ie(dn,{size:10})})]},b))]}),Re("div",{className:"flex items-center gap-2 p-2 border-t border-border-subtle bg-surface-glass",children:[ie(ln,{size:12,className:"text-emerald-500"}),ie("input",{type:"text",placeholder:"nombre",value:d,onChange:b=>e(b.target.value),onKeyDown:b=>{b.key==="Enter"&&h()},className:"bg-surface-overlay border border-border-subtle rounded px-2 py-1 text-xs text-emerald-300 font-mono outline-hidden w-[120px] focus:border-emerald-500/30"}),ie("span",{className:"text-text-muted text-[10px]",children:"="}),ie("input",{type:"text",placeholder:"valor",value:r,onChange:b=>i(b.target.value),onKeyDown:b=>{b.key==="Enter"&&h()},className:"bg-surface-overlay border border-border-subtle rounded px-2 py-1 text-xs text-text-primary font-mono outline-hidden flex-1 focus:border-emerald-500/30"}),ie("button",{onClick:h,disabled:!d.trim(),className:"px-2 py-1 text-[10px] bg-emerald-500/10 text-emerald-400 rounded font-bold hover:bg-emerald-500/20 disabled:opacity-30 transition-colors",children:"Agregar"})]})]})})})]})};import{Fragment as xn,jsx as ye,jsxs as Pe}from"react/jsx-runtime";var bn=({className:u,style:s,id:f})=>{let{fitView:x,getIntersectingNodes:d,screenToFlowPosition:e}=Gt(),[r,i,t]=Ut([]),[l,o,n]=Yt([]),[c,h]=Bt(null),[_,j]=Bt(!1),G=Hr(null),Y=Hr({nodes:[],edges:[]}),[b,k]=Bt(null),p=ee(F=>F.prototypeBrand),I=Qe(F=>F.activeNodeIds),T=Qe(F=>F.activeEdgeIds),z=Ne(F=>F.timelines),V=Ne(F=>F.blueprintLibrary),q=Ne(F=>F.updateKeyframePosition),N=Ne(F=>F.updateKeyframe),w=Ne(F=>F.addEdge),R=Ne(F=>F.removeEdge),E=Ne(F=>F.addKeyframe),y=Ne(F=>F.removeKeyframe),A=Ne(F=>F.undo),S=Ne(F=>F.redo),P=Ne(F=>F.setActiveTimeline),O=Ne(F=>F.pastTimelines),L=Ne(F=>F.futureTimelines);Ze(()=>{P(p)},[p,P]),Ze(()=>{let F=Q=>{(Q.metaKey||Q.ctrlKey)&&Q.key==="z"&&!Q.shiftKey?(Q.preventDefault(),A()):(Q.metaKey||Q.ctrlKey)&&(Q.key==="Z"||Q.key==="y")&&(Q.preventDefault(),S())};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[A,S]);let B=(O[p]?.length||0)>0,D=(L[p]?.length||0)>0,K=et(F=>F.currentBlueprintId),$=et(F=>F.pushNavigation),g=K?V[K]:null,a=g||z[p];Ze(()=>{if(!a)return;let F=g?K:p,Q=hn(F,a.keyframes||[],a.edges||[]),be=Object.values(Q.nodes),ue={};be.forEach(oe=>{oe.visual?.x!==void 0&&oe.visual?.y!==void 0&&(oe.visual.y!==0||oe.visual.x!==0)&&(ue[oe.id]={x:oe.visual.x,y:oe.visual.y})});let Be=150,Ie=be.filter(oe=>!ue[oe.id]),tt=!0;for(;Ie.length>0&&tt;)tt=!1,Ie=Ie.filter(oe=>{let pe=Q.edges.find(Ee=>Ee.target===oe.id&&ue[Ee.source]);if(pe){let Ee=ue[pe.source],Ve={x:Ee.x,y:Ee.y+Be},rt=!0;for(;rt;)rt=Object.values(ue).some(Lt=>Math.abs(Lt.x-Ve.x)<50&&Math.abs(Lt.y-Ve.y)<50),rt&&(Ve.x+=250);return ue[oe.id]=Ve,tt=!0,!1}return!0});Ie.forEach((oe,pe)=>{ue[oe.id]={x:ur[oe.type]||0,y:pe*100}});let Ae=be.map(oe=>({id:oe.id,type:oe.type,position:ue[oe.id],parentId:oe.visual?.parentId,extent:oe.visual?.parentId?"parent":void 0,data:{keyframeId:oe.id,isInteractive:!0,isExecuting:I.includes(oe.id),onUpdateNodeData:(pe,Ee)=>N(F,pe,Ee),variables:Qe.getState().variables,isSpeaking:Qe.getState().isSpeaking,registeredMorphComponents:Ft(),onDrillDown:(pe,Ee)=>$({blueprintId:pe,label:Ee}),...gr(oe)}})),Dt=a.edges?hr(a.edges,I,T):[];if(i(Ae),o(Dt),G.current!==F){if(G.current=F,(Ae.every(pe=>pe.position.x===0&&pe.position.y===0)||Ae.filter(pe=>pe.position.x===0&&pe.position.y===0).length>Ae.length*.5)&&Ae.length>1){let{nodes:pe}=Ue(Ae,Dt,{direction:"TB"});i(pe),pe.forEach(Ee=>q(p,Ee.id,Ee.position))}setTimeout(()=>x({padding:.2,duration:800}),50)}},[a,I,g,i,o,x]);let m=Oe(F=>{o(Q=>Vt(F,Q)),w(p,{id:`edge-${F.source}-${F.target}-${Date.now()}`,source:F.source,target:F.target,sourceHandle:F.sourceHandle||null,targetHandle:F.targetHandle||null})},[p,w,o]),v=Oe(F=>{F.forEach(Q=>R(p,Q.id))},[p,R]),C=Oe((F,Q,be)=>{(be.length>1?be:[Q]).forEach(ue=>{if(q(p,ue.id,ue.position),ue.id===Q.id){let Be=d(ue).filter(Ie=>Ie.type==="group");ue.type!=="group"&&N(p,ue.id,{parentId:Be[0]?.id||void 0})}})},[p,q,N,d]),M=Oe((F,Q)=>h(Q.id),[]),H=Oe(()=>{h(null),k(null)},[]),W=Oe(F=>{F.preventDefault();let Q=e({x:F.clientX,y:F.clientY});k({x:F.clientX,y:F.clientY,flowPos:Q})},[e]),le=Oe((F,Q,be)=>{if(!b)return;E(K||p,_t(F,Q,b.flowPos,be)),k(null)},[b,p,K,E]);Ze(()=>{let F=xr({getNodes:()=>r,getEdges:()=>l,setNodes:i,setEdges:o,clipboard:Y,activeTimelineId:p,currentBlueprintId:K,addKeyframe:E,addTimelineEdge:w,removeKeyframe:y,removeTimelineEdge:R,setSelectedNodeId:h,NODE_TYPE_TO_TRACK:pr});return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[r,l,p,K,i,o,E,w,y,R]);let Te=et(F=>F.navigationStack),fe=et(F=>F.navigateToLevel),he=Te.length>1;return Pe("div",{style:s,className:`relative flex flex-col overflow-hidden w-full h-full ${u||""}`,id:f,children:[he&&Pe("div",{className:"flex-none flex items-center gap-1 px-3 py-2 bg-surface-overlay border-b border-border-default backdrop-blur-xs z-10",children:[Pe("button",{onClick:()=>fe(0),className:"flex items-center gap-1 text-xs text-text-secondary hover:text-text-primary transition-colors px-1.5 py-0.5 rounded hover:bg-surface-glass",children:[ye(mn,{size:12}),ye("span",{children:"Root"})]}),Te.slice(1).map((F,Q)=>Pe(gn.Fragment,{children:[ye(fn,{size:12,className:"text-text-muted"}),Pe("button",{onClick:()=>fe(Q+1),className:`text-xs px-1.5 py-0.5 rounded transition-colors ${Q+1===Te.length-1?"text-purple-300 bg-purple-500/10 border border-purple-500/20":"text-text-secondary hover:text-text-primary hover:bg-surface-glass"}`,children:["\u{1F4E6} ",F.label]})]},Q+1))]}),Pe("div",{className:"flex-1 relative flex overflow-hidden",onDragOver:F=>{F.preventDefault(),F.dataTransfer.dropEffect="move"},onDrop:F=>{F.preventDefault();let Q=F.dataTransfer.getData("application/decido-node");if(Q)try{let{type:be,label:ue,meta:Be}=JSON.parse(Q),Ie=e({x:F.clientX,y:F.clientY});E(K||p,_t(be,ue,Ie,Be))}catch(be){console.error("[ReactFlowEditor] Drop failed:",be)}},children:[ye(Gr,{}),Pe(Ht,{nodes:r,edges:l,nodeTypes:cr,onNodesChange:t,onEdgesChange:n,onEdgesDelete:v,onConnect:m,onNodeDragStop:C,onNodeClick:M,onPaneClick:H,onPaneContextMenu:W,colorMode:"dark",fitView:!0,fitViewOptions:{padding:.2},minZoom:.1,selectionOnDrag:!0,panOnDrag:[1],selectionMode:jt.Partial,multiSelectionKeyCode:"Meta",deleteKeyCode:null,children:[ye(Wt,{className:"fill-white"}),ye(br,{canUndo:B,canRedo:D,undoCount:O[p]?.length||0,redoCount:L[p]?.length||0,undo:A,redo:S,nodes:r,edges:l,setNodes:i,updateKeyframePosition:q,removeKeyframe:y,activeTimelineId:p,currentBlueprintId:K,fitView:x,setSelectedNodeId:h}),ye(Jt,{nodeStrokeColor:()=>"#ffffff",nodeColor:()=>"#333333",maskColor:"rgba(0, 0, 0, 0.7)"}),ye(qt,{color:"#555",gap:20})]}),b&&Pe(xn,{children:[ye("div",{className:"fixed inset-0 z-998",onClick:()=>k(null)}),ye(fr,{x:b.x,y:b.y,onAdd:le,onClose:()=>k(null)})]})]}),c&&ye(Tr,{selectedNodeId:c,onClose:()=>h(null)}),ye($r,{isOpen:_,onToggle:()=>j(F=>!F)})]})},yl=u=>ye($t,{children:ye(bn,{...u})});export{yl as ReactFlowEditor};
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
@dagrejs/dagre/dist/dagre.esm.js:
|
|
5
|
+
(*! For license information please see dagre.esm.js.LEGAL.txt *)
|
|
6
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
|