@johpaz/hive-agents 0.0.23 → 0.0.25
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/README.md +16 -16
- package/dist/hive.js +160 -110
- package/dist/ui/assets/{index-DnfgD7Re.js → index-B2W3psUT.js} +16 -16
- package/dist/ui/assets/ui-z3jxn-RC.js +22 -0
- package/dist/ui/dist/assets/{index-DnfgD7Re.js → index-B2W3psUT.js} +16 -16
- package/dist/ui/dist/assets/ui-z3jxn-RC.js +22 -0
- package/dist/ui/dist/index.html +1 -1
- package/dist/ui/index.html +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/ui-C35uZsFJ.js +0 -22
- package/dist/ui/dist/assets/ui-C35uZsFJ.js +0 -22
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,r as n,t as r}from"./react-CJr1g6q1.js";import{a as i,c as a,i as o,n as s,o as c,r as l,s as u,t as d}from"./index-DnfgD7Re.js";var f=180/Math.PI,p={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function m(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*f,skewX:Math.atan(c)*f,scaleX:o,scaleY:s}}var h;function g(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?p:m(t.a,t.b,t.c,t.d,t.e,t.f)}function _(e){return e==null||(h||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),h.setAttribute(`transform`,e),!(e=h.transform.baseVal.consolidate()))?p:(e=e.matrix,m(e.a,e.b,e.c,e.d,e.e,e.f))}function v(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,s,c){if(e!==i||r!==a){var l=s.push(`translate(`,null,t,null,n);c.push({i:l-4,x:o(e,i)},{i:l-2,x:o(r,a)})}else (i||a)&&s.push(`translate(`+i+t+a+n)}function s(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:o(e,t)}))}function c(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:o(e,t)})}function l(e,t,n,r,a,s){if(e!==n||t!==r){var c=a.push(i(a)+`scale(`,null,`,`,null,`)`);s.push({i:c-4,x:o(e,n)},{i:c-2,x:o(t,r)})}else (n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),s(t.rotate,n.rotate,r,i),c(t.skewX,n.skewX,r,i),l(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var y=v(g,`px, `,`px)`,`deg)`),b=v(_,`, `,`)`,`)`),x=1e-12;function S(e){return((e=Math.exp(e))+1/e)/2}function C(e){return((e=Math.exp(e))-1/e)/2}function w(e){return((e=Math.exp(2*e))-1)/(e+1)}var T=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<x)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=S(y),c=s/(n*g)*(i*w(t*r+y)-C(y));return[a+c*d,o+c*f,s*i/S(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),E=e(t());function D(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var O=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return O(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return O(t)(e)}}}},k=(e,t)=>(n,r,i)=>{let a={storage:D(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return O(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},A={screen:`sessions`,perfil:null,meta:``,program:null,swarmProgress:null,agentStatuses:{},coordinatorState:{status:`idle`,currentWorker:null,activeWorkers:[],totalWorkers:15},selectedProviderId:null,selectedModelId:null,sessionId:null,curriculoId:null,isGenerating:!1,sessionRestored:!1,nodoActualId:null,selectedNodeId:null,xpTotal:0,logrosDesbloqueados:[],nodosCompletados:[],tiempoInicioSesion:null,vidas:3,racha:0,xpFloat:null,respuestasEvaluacion:{},puntajeEvaluacion:null,lastFeedback:null},j=0,M=r()(k((e,t)=>({...A,setScreen:t=>e({screen:t}),setSelectedProvider:t=>e({selectedProviderId:t}),setSelectedModel:t=>e({selectedModelId:t}),setPerfil:t=>e({perfil:t}),setMeta:t=>e({meta:t}),setProgram:t=>e({program:t,tiempoInicioSesion:Date.now(),nodoActualId:t.nodos[0]?.id??null}),setSwarmProgress:t=>e({swarmProgress:t}),setAgentStatus:(t,n)=>e(e=>({agentStatuses:{...e.agentStatuses,[t]:n},coordinatorState:{...e.coordinatorState,activeWorkers:Object.entries({...e.agentStatuses,[t]:n}).filter(([,e])=>e===`running`||e===`thinking`||e===`tool_call`).map(([e])=>e)}})),setCoordinatorStatus:(t,n)=>e(e=>({coordinatorState:{...e.coordinatorState,status:t,currentWorker:n??e.coordinatorState.currentWorker}})),setSessionId:t=>e({sessionId:t}),setCurriculoId:t=>e({curriculoId:t}),setIsGenerating:t=>e({isGenerating:t}),completarNodo:(t,n)=>e(e=>{let r=e.program?.nodos??[],i=r.findIndex(e=>e.id===t),a=i>=0&&i<r.length-1?r[i+1].id:null;return{nodosCompletados:[...e.nodosCompletados,t],xpTotal:e.xpTotal+n,nodoActualId:a??e.nodoActualId,program:e.program?{...e.program,nodos:e.program.nodos.map((e,n)=>e.id===t?{...e,estado:`completado`}:n===i+1?{...e,estado:`disponible`}:e)}:null}}),desbloquearLogro:t=>e(e=>({logrosDesbloqueados:e.logrosDesbloqueados.includes(t)?e.logrosDesbloqueados:[...e.logrosDesbloqueados,t]})),setNodoActual:t=>e({nodoActualId:t}),setLastFeedback:t=>e({lastFeedback:t}),responderEvaluacion:(t,n)=>e(e=>({respuestasEvaluacion:{...e.respuestasEvaluacion,[t]:n}})),setPuntajeEvaluacion:t=>e({puntajeEvaluacion:t}),restoreSession:(t,n)=>e({program:t,sessionId:n.sessionId,xpTotal:n.xpTotal,nodosCompletados:n.nodosCompletados||[],tiempoInicioSesion:Date.now(),nodoActualId:t.nodos[0]?.id??null,sessionRestored:!0,screen:`canvas`}),reset:()=>e(e=>({...A,selectedProviderId:e.selectedProviderId,selectedModelId:e.selectedModelId})),selectNode:t=>e({selectedNodeId:t,lastFeedback:null}),deselectNode:()=>e({selectedNodeId:null,lastFeedback:null}),perderVida:()=>e(e=>({vidas:Math.max(0,e.vidas-1)})),incrementarRacha:()=>e(e=>({racha:e.racha+1})),resetRacha:()=>e({racha:0}),showXpFloat:(n,r)=>{let i=++j;e({xpFloat:{nodeId:n,xp:r,key:i}}),setTimeout(()=>{t().xpFloat?.key===i&&e({xpFloat:null})},1400)}}),{name:`hivelearn-session-v1`,storage:D(()=>localStorage),partialize:e=>({screen:e.screen,program:e.program,sessionId:e.sessionId,curriculoId:e.curriculoId,perfil:e.perfil,meta:e.meta,xpTotal:e.xpTotal,nodosCompletados:e.nodosCompletados,nodoActualId:e.nodoActualId,selectedProviderId:e.selectedProviderId,selectedModelId:e.selectedModelId,vidas:e.vidas,racha:e.racha,logrosDesbloqueados:e.logrosDesbloqueados,swarmProgress:e.swarmProgress,agentStatuses:e.agentStatuses})})),N=u();function P(){let{selectedProviderId:e,selectedModelId:t,setSelectedProvider:n,setSelectedModel:r,setScreen:i}=M(),[a,o]=(0,E.useState)([]),[s,c]=(0,E.useState)([]),[l,u]=(0,E.useState)(!0),[d,f]=(0,E.useState)(null);(0,E.useEffect)(()=>{(async()=>{try{u(!0),f(null),o(((await(await fetch(`/api/providers`)).json()).providers||[]).filter(e=>e.enabled&&e.active)),c(((await(await fetch(`/api/models`)).json()).models||[]).filter(e=>e.enabled&&e.active))}catch(e){f(`Error al cargar proveedores y modelos. Verifica la conexión.`),console.error(`Error fetching providers/models:`,e)}finally{u(!1)}})()},[]);let p=s.filter(t=>t.provider_id===e),m=()=>{e&&t&&i(`profile`)},h=a.find(t=>t.id===e)?.name,g=s.find(e=>e.id===t)?.name;return l?(0,N.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-4 sm:p-6`,children:(0,N.jsxs)(`div`,{className:`text-center`,children:[(0,N.jsx)(`div`,{className:`text-5xl sm:text-6xl mb-3 sm:mb-4 animate-pulse`,children:`🐝`}),(0,N.jsx)(`h2`,{className:`text-xl sm:text-2xl font-bold text-blue-400 mb-2`,children:`Cargando...`}),(0,N.jsx)(`p`,{className:`text-sm sm:text-base text-gray-400`,children:`Obteniendo proveedores y modelos disponibles`})]})}):d?(0,N.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-4 sm:p-6`,children:(0,N.jsx)(`div`,{className:`w-full max-w-md bg-gray-900 rounded-xl sm:rounded-2xl border border-gray-800 p-4 sm:p-6 space-y-4`,children:(0,N.jsxs)(`div`,{className:`text-center`,children:[(0,N.jsx)(`div`,{className:`text-5xl sm:text-6xl mb-3`,children:`⚠️`}),(0,N.jsx)(`h2`,{className:`text-xl sm:text-2xl font-bold text-red-400 mb-2`,children:`Error`}),(0,N.jsx)(`p`,{className:`text-sm text-gray-400 mb-4`,children:d}),(0,N.jsx)(`button`,{onClick:()=>window.location.reload(),className:`rounded-lg sm:rounded-xl bg-blue-600 px-4 sm:px-6 py-2.5 text-sm font-bold text-white hover:bg-blue-500 transition-all`,children:`Reintentar`})]})})}):a.length===0?(0,N.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-4 sm:p-6`,children:(0,N.jsx)(`div`,{className:`w-full max-w-md bg-gray-900 rounded-xl sm:rounded-2xl border border-gray-800 p-4 sm:p-6 space-y-4`,children:(0,N.jsxs)(`div`,{className:`text-center`,children:[(0,N.jsx)(`div`,{className:`text-5xl sm:text-6xl mb-3`,children:`🔧`}),(0,N.jsx)(`h2`,{className:`text-xl sm:text-2xl font-bold text-blue-400 mb-2`,children:`Sin proveedores`}),(0,N.jsx)(`p`,{className:`text-sm text-gray-400 mb-4`,children:`No hay proveedores de IA configurados. Configura al menos uno en Settings > Providers.`}),(0,N.jsx)(`a`,{href:`/providers`,className:`inline-block rounded-lg sm:rounded-xl bg-blue-600 px-4 sm:px-6 py-2.5 text-sm font-bold text-white hover:bg-blue-500 transition-all`,children:`Ir a Providers`})]})})}):(0,N.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-4 sm:p-6`,children:(0,N.jsxs)(`div`,{className:`w-full max-w-md sm:max-w-lg`,children:[(0,N.jsxs)(`div`,{className:`text-center mb-6 sm:mb-8`,children:[(0,N.jsx)(`div`,{className:`text-5xl sm:text-6xl mb-2 sm:mb-3`,children:`🐝`}),(0,N.jsx)(`h1`,{className:`text-2xl sm:text-3xl font-bold text-blue-400`,children:`HiveLearn`}),(0,N.jsx)(`p`,{className:`text-sm sm:text-base text-gray-400 mt-1`,children:`Selecciona tu proveedor y modelo de IA`})]}),(0,N.jsxs)(`div`,{className:`bg-gray-900 rounded-xl sm:rounded-2xl border border-gray-800 p-4 sm:p-6 space-y-4 sm:space-y-5`,children:[(0,N.jsx)(`h2`,{className:`text-base sm:text-lg font-bold text-white`,children:`Configuración del modelo`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{className:`block text-xs text-gray-400 mb-2`,children:`Proveedor de IA`}),(0,N.jsx)(`div`,{className:`grid grid-cols-1 gap-2 max-h-40 sm:max-h-48 overflow-y-auto`,children:a.map(t=>(0,N.jsxs)(`button`,{onClick:()=>{n(t.id),r(null)},className:`rounded-lg py-2.5 sm:py-3 px-3 sm:px-4 text-xs sm:text-sm font-medium border transition-all text-left
|
|
2
|
-
${e===t.id?`bg-blue-500/20 border-blue-500 text-blue-300`:`bg-gray-800 border-gray-700 text-gray-300 hover:border-blue-500/50`}`,children:[(0,N.jsx)(`div`,{className:`font-bold`,children:t.name}),(0,N.jsxs)(`div`,{className:`text-[10px] sm:text-xs text-gray-500 mt-1`,children:[`ID: `,t.id]})]},t.id))})]}),e&&(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{className:`block text-xs text-gray-400 mb-2`,children:`Modelo`}),p.length===0?(0,N.jsx)(`div`,{className:`bg-gray-800 border border-gray-700 rounded-lg p-3 text-xs sm:text-sm text-gray-400`,children:`No hay modelos disponibles para este proveedor`}):(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2 max-h-40 sm:max-h-48 overflow-y-auto`,children:p.map(e=>(0,N.jsxs)(`button`,{onClick:()=>r(e.id),className:`rounded-lg py-2.5 sm:py-3 px-3 sm:px-4 text-xs sm:text-sm font-medium border transition-all text-left
|
|
3
|
-
${t===e.id?`bg-blue-500/20 border-blue-500 text-blue-300`:`bg-gray-800 border-gray-700 text-gray-300 hover:border-blue-500/50`}`,children:[(0,N.jsx)(`div`,{className:`font-bold`,children:e.name}),e.context_window&&(0,N.jsxs)(`div`,{className:`text-[10px] sm:text-xs text-gray-500 mt-1`,children:[`Contexto: `,(e.context_window/1e3).toFixed(0),`K tokens`]})]},e.id))})]}),e&&t&&(0,N.jsxs)(`div`,{className:`bg-blue-500/10 border border-blue-500/50 rounded-lg p-2.5 sm:p-3`,children:[(0,N.jsx)(`div`,{className:`text-[10px] sm:text-xs text-blue-400 mb-1`,children:`Selección actual:`}),(0,N.jsxs)(`div`,{className:`text-xs sm:text-sm text-white`,children:[(0,N.jsx)(`span`,{className:`font-bold`,children:h}),` → `,(0,N.jsx)(`span`,{className:`font-bold`,children:g})]})]}),(0,N.jsx)(`button`,{onClick:m,disabled:!e||!t,className:`w-full rounded-lg sm:rounded-xl bg-blue-600 py-2.5 sm:py-3 text-xs sm:text-sm font-bold text-white hover:bg-blue-500 disabled:opacity-40 disabled:cursor-not-allowed transition-all`,children:`Continuar →`})]})]})})}function F(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4),r=Math.floor(t/36e5),i=Math.floor(t/864e5);return n<60?`hace ${n} min`:r<24?`hace ${r} h`:`hace ${i} día${i===1?``:`s`}`}function I(){let{reset:e,setScreen:t,restoreSession:n,sessionId:r,program:i}=M(),[a,o]=(0,E.useState)([]),[s,c]=(0,E.useState)(!0),[l,u]=(0,E.useState)(null),[d,f]=(0,E.useState)(null),p=async()=>{try{let e=await(await fetch(`/api/hivelearn/sessions`)).json();o(Array.isArray(e)?e:[])}catch{o([])}finally{c(!1)}};(0,E.useEffect)(()=>{p()},[]);let m=()=>{e(),t(`profile`)},h=async e=>{u(e.session_id);try{if(r===e.session_id&&i){t(e.completada?`result`:`canvas`);return}let a=await fetch(`/api/hivelearn/sessions/${e.session_id}`);if(!a.ok)throw Error(`Session not found`);let o=await a.json(),s=JSON.parse(o.nodos_json||`[]`);n({sessionId:o.session_id,alumnoId:o.alumno_id,tema:o.meta??``,topicSlug:o.topic_slug??null,rangoEdad:o.rango_edad,nodos:s,gamificacion:{xpRecompensa:o.xp_total??0,logros:[],mensajeCelebracion:`¡Lección completada!`},evaluacion:{preguntas:[]},perfilAdaptacion:{rangoEdad:o.rango_edad??`adulto`,duracionSesion:o.tiempo_sesion??20,nodosRecomendados:o.total_nodos??s.length,estilo:o.estilo??`visual`,nivelPrevio:o.nivel_previo??`principiante`,tono:`amigable`}},{sessionId:o.session_id,xpTotal:o.xp_total??0,nodosCompletados:[]}),o.completada&&t(`result`)}catch(e){console.error(`[SessionsListScreen] handleContinue error:`,e)}finally{u(null)}},g=async e=>{if(window.confirm(`¿Eliminar esta sesión? No se puede deshacer.`)){f(e);try{await fetch(`/api/hivelearn/sessions/${e}`,{method:`DELETE`}),o(t=>t.filter(t=>t.session_id!==e))}catch{}finally{f(null)}}};return(0,N.jsxs)(`div`,{className:`flex-1 flex flex-col min-h-0 bg-gray-950 p-6 overflow-y-auto`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between mb-8`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,N.jsx)(`span`,{className:`text-3xl`,children:`🐝`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h1`,{className:`text-xl font-bold text-white`,children:`HiveLearn`}),(0,N.jsx)(`p`,{className:`text-xs text-gray-500`,children:`Tus sesiones de aprendizaje`})]})]}),(0,N.jsx)(`button`,{onClick:m,className:`flex items-center gap-2 px-5 py-2.5 rounded-full bg-blue-600 hover:bg-blue-500 text-white text-sm font-bold transition-all hover:scale-[1.03] active:scale-[0.97]`,children:`+ Nueva lección`})]}),s?(0,N.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,N.jsxs)(`div`,{className:`text-center`,children:[(0,N.jsx)(`div`,{className:`text-5xl mb-3 animate-pulse`,children:`🐝`}),(0,N.jsx)(`p`,{className:`text-gray-400 text-sm`,children:`Cargando sesiones...`})]})}):a.length===0?(0,N.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,N.jsxs)(`div`,{className:`text-center space-y-4`,children:[(0,N.jsx)(`div`,{className:`text-6xl`,children:`📚`}),(0,N.jsx)(`h2`,{className:`text-lg font-bold text-white`,children:`Sin sesiones aún`}),(0,N.jsx)(`p`,{className:`text-gray-500 text-sm`,children:`Crea tu primera lección personalizada`}),(0,N.jsx)(`button`,{onClick:m,className:`px-6 py-3 rounded-full bg-blue-600 hover:bg-blue-500 text-white text-sm font-bold transition-all`,children:`+ Nueva lección`})]})}):(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4`,children:a.map(e=>{let t=!!e.completada,n=e.total_nodos>0?Math.round(e.nodos_completados/e.total_nodos*100):0,r=l===e.session_id||d===e.session_id;return(0,N.jsxs)(`div`,{className:`rounded-2xl bg-gray-900 border border-gray-800 p-5 flex flex-col gap-4 hover:border-gray-700 transition-colors`,children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,N.jsx)(`span`,{className:`text-xs font-bold px-2.5 py-1 rounded-full ${t?`bg-green-500/15 text-green-400`:`bg-blue-500/15 text-blue-400`}`,children:t?`✅ Completada`:`🔵 En progreso`}),(0,N.jsx)(`span`,{className:`text-[11px] text-gray-600`,children:F(e.created_at)})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`p`,{className:`text-white font-semibold text-sm leading-snug line-clamp-2`,children:e.meta||`Sin tema`}),(0,N.jsx)(`p`,{className:`text-gray-500 text-xs mt-1`,children:e.nombre||e.alumno_id})]}),(0,N.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,N.jsxs)(`div`,{className:`flex justify-between text-xs text-gray-500`,children:[(0,N.jsxs)(`span`,{children:[e.nodos_completados,`/`,e.total_nodos,` nodos`]}),t&&e.evaluacion_puntaje!=null&&(0,N.jsxs)(`span`,{className:`text-amber-400 font-bold`,children:[e.evaluacion_puntaje,`%`]})]}),(0,N.jsx)(`div`,{className:`h-1.5 rounded-full bg-gray-800 overflow-hidden`,children:(0,N.jsx)(`div`,{className:`h-full rounded-full transition-all ${t?`bg-green-500`:`bg-blue-500`}`,style:{width:`${n}%`}})})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,N.jsx)(`span`,{className:`text-yellow-400 text-sm`,children:`⚡`}),(0,N.jsxs)(`span`,{className:`text-xs text-gray-400`,children:[e.xp_total,` XP · `,e.nivel_alcanzado]})]}),(0,N.jsxs)(`div`,{className:`flex gap-2 mt-auto pt-2 border-t border-gray-800`,children:[(0,N.jsx)(`button`,{onClick:()=>h(e),disabled:r,className:`flex-1 py-2 rounded-xl bg-blue-600/20 hover:bg-blue-600/30 text-blue-400 text-xs font-bold transition-colors disabled:opacity-50`,children:l===e.session_id?`Cargando...`:t?`Ver resultado`:`Continuar`}),(0,N.jsx)(`button`,{onClick:()=>g(e.session_id),disabled:r,className:`px-3 py-2 rounded-xl bg-red-500/10 hover:bg-red-500/20 text-red-400 text-xs transition-colors disabled:opacity-50`,title:`Eliminar sesión`,children:d===e.session_id?`...`:`🗑`})]})]},e.session_id)})})]})}function L(e){return e<=12?`nino`:e<=17?`adolescente`:`adulto`}var R={surfaceDim:`#0b1326`,surfaceContainerLowest:`#060e20`,surfaceContainerLow:`#131b2e`,surfaceContainerHigh:`#222a3d`,surfaceContainerHighest:`#2d3449`,primary:`#adc6ff`,primaryContainer:`#4d8eff`,secondary:`#ddb7ff`,secondaryContainer:`#6f00be`,onSurface:`#dae2fd`,onSurfaceVariant:`#c2c6d6`,onPrimaryFixed:`#001a42`,onPrimaryContainer:`#00285d`,outlineVariant:`#424754`,outline:`#8c909f`};function z(){return(0,N.jsxs)(`section`,{className:`flex w-[38%] xl:w-[40%] relative overflow-hidden flex-shrink-0 flex-col justify-between p-10 xl:p-12`,style:{backgroundColor:R.surfaceContainerLowest},children:[(0,N.jsxs)(`div`,{className:`absolute inset-0 z-0 pointer-events-none`,children:[(0,N.jsx)(`div`,{className:`absolute top-[-10%] right-[-10%] w-4/5 h-4/5 rounded-full`,style:{background:`radial-gradient(circle, ${R.primary}1a 0%, transparent 70%)`,filter:`blur(120px)`}}),(0,N.jsx)(`div`,{className:`absolute bottom-[-10%] left-[-10%] w-3/5 h-3/5 rounded-full`,style:{background:`radial-gradient(circle, ${R.secondary}1a 0%, transparent 70%)`,filter:`blur(100px)`}}),(0,N.jsx)(`img`,{src:`https://lh3.googleusercontent.com/aida-public/AB6AXuBGkgnfwJu1-vMqP18oBByE9qATAqmHAP3bSVLJ3EbK2jMB_AzAJgpyhYwBp5H5qcaJ7yjI-KwcyJtKLA1Jrvr4ETMSd-rkoqNfZws67nyBf_Plr9drWFQ5eGXP6asG_25PI6ihYhrKTqcUqaLpHdaMQNPKOOoPzJGAEddbDCawKI32IcTMgTeNusNLroHRO5mU90Ay0u0A-rAXYpNXUU9-AY2WhGSjsjhkaaVWlW9KxVrCPRJkN7rPGutl7bQtxPJCOmu23Icx224`,alt:`Abstract 3D digital sculpture of interconnected glowing nodes`,className:`w-full h-full object-cover scale-110`,style:{opacity:.35,mixBlendMode:`lighten`}}),(0,N.jsx)(`div`,{className:`absolute inset-0`,style:{background:`linear-gradient(to right, transparent 55%, ${R.surfaceContainerLowest}ee 100%)`}})]}),(0,N.jsx)(`div`,{className:`relative z-10 flex items-center gap-2`,children:(0,N.jsx)(`span`,{className:`text-2xl font-extrabold tracking-tight`,style:{fontFamily:`'Manrope', 'Inter', sans-serif`,color:R.onSurface},children:`🐝 HiveLearn`})}),(0,N.jsxs)(`div`,{className:`relative z-10 max-w-sm`,children:[(0,N.jsxs)(`h2`,{className:`text-4xl font-extrabold leading-tight mb-6`,style:{fontFamily:`'Manrope', 'Inter', sans-serif`,color:R.onSurface,letterSpacing:`-0.02em`},children:[`Eleva tu`,` `,(0,N.jsx)(`span`,{style:{color:R.primary},children:`curiosidad`}),` `,`al siguiente nivel.`]}),(0,N.jsx)(`p`,{className:`text-lg leading-relaxed font-light`,style:{color:R.onSurfaceVariant},children:`Únete a la red de conocimiento más avanzada, diseñada para adaptarse a tu ritmo y estilo único de aprendizaje.`})]}),(0,N.jsxs)(`div`,{className:`relative z-10 flex items-center gap-3 text-sm font-medium`,style:{color:`${R.onSurfaceVariant}77`},children:[(0,N.jsx)(`span`,{className:`w-2 h-2 rounded-full animate-pulse`,style:{backgroundColor:R.secondary}}),`Digital Nocturne Experience v1.0`]})]})}function B(){let{setPerfil:e,setScreen:t}=M(),[n,r]=(0,E.useState)({nombre:``,edad:16,tiempoSesion:30,nivelPrevio:`principiante`,estilo:`balanceado`}),[i,a]=(0,E.useState)(null),o=()=>{n.nombre.trim()&&(e({alumnoId:`alumno-${Date.now()}`,nombre:n.nombre.trim(),edad:n.edad,rangoEdad:L(n.edad),tiempoSesion:n.tiempoSesion,nivelPrevio:n.nivelPrevio,estilo:n.estilo,sesionesTotal:0,xpAcumulado:0,nivelActual:`Aprendiz`}),t(`goal`))},s=L(n.edad),c=s===`nino`?`🐣`:s===`adolescente`?`🚀`:`🎯`,l=s===`nino`?`Niño`:s===`adolescente`?`Adolescente`:`Adulto`;return(0,N.jsxs)(`div`,{className:`flex h-full overflow-hidden`,style:{backgroundColor:R.surfaceDim},children:[(0,N.jsx)(z,{}),(0,N.jsx)(`section`,{className:`w-full lg:w-[60%] flex flex-col overflow-y-auto`,style:{backgroundColor:R.surfaceDim},children:(0,N.jsxs)(`div`,{className:`w-full max-w-xl mx-auto px-6 pt-8 pb-10 sm:px-10 sm:pt-10`,children:[(0,N.jsxs)(`div`,{className:`hidden`,style:{fontFamily:`'Manrope', sans-serif`,fontWeight:700,fontSize:`1.25rem`,color:R.onSurface},children:[`🐝 `,(0,N.jsx)(`span`,{children:`HiveLearn`})]}),(0,N.jsxs)(`header`,{className:`mb-10`,children:[(0,N.jsx)(`h1`,{className:`text-3xl md:text-4xl font-black tracking-tight mb-3`,style:{fontFamily:`'Manrope', 'Inter', sans-serif`,color:R.onSurface,letterSpacing:`-0.02em`},children:`¿Quién va a aprender hoy?`}),(0,N.jsx)(`p`,{className:`text-base md:text-lg`,style:{color:R.onSurfaceVariant},children:`Configura tu perfil de Scholar para comenzar la exploración.`})]}),(0,N.jsxs)(`div`,{className:`rounded-2xl p-7 sm:p-9 space-y-7`,style:{backgroundColor:`${R.surfaceContainerLow}99`,backdropFilter:`blur(24px)`,WebkitBackdropFilter:`blur(24px)`,boxShadow:`0 0 60px -12px ${R.primary}1f`},children:[(0,N.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-5`,children:[(0,N.jsxs)(`div`,{className:`space-y-2`,children:[(0,N.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Nombre del Scholar`}),(0,N.jsx)(`input`,{className:`w-full rounded-xl px-4 py-3 text-sm placeholder:text-opacity-40 transition-all`,style:{...(e=>({backgroundColor:R.surfaceContainerLowest,border:`none`,outline:`none`,boxShadow:i===e?`0 0 0 2px ${R.primary}`:`0 0 0 1px ${R.outlineVariant}33`,color:R.onSurface,transition:`box-shadow 200ms ease`}))(`nombre`),fontFamily:`inherit`},placeholder:`Ej. Alex Rivera`,value:n.nombre,onChange:e=>r(t=>({...t,nombre:e.target.value})),onFocus:()=>a(`nombre`),onBlur:()=>a(null),onKeyDown:e=>e.key===`Enter`&&o()})]}),(0,N.jsxs)(`div`,{className:`space-y-2`,children:[(0,N.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Edad`}),(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,N.jsx)(`input`,{type:`range`,min:6,max:60,value:n.edad,onChange:e=>r(t=>({...t,edad:Number(e.target.value)})),className:`flex-1`,style:{accentColor:R.primary}}),(0,N.jsxs)(`div`,{className:`text-right flex-shrink-0`,style:{minWidth:`72px`},children:[(0,N.jsxs)(`p`,{className:`text-sm font-bold`,style:{color:R.primary},children:[n.edad,` años`]}),(0,N.jsxs)(`p`,{className:`text-[10px]`,style:{color:R.onSurfaceVariant},children:[c,` `,l]})]})]})]})]}),(0,N.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-5`,children:[(0,N.jsxs)(`div`,{className:`space-y-2`,children:[(0,N.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Tiempo de Sesión`}),(0,N.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:[15,30,45].map(e=>{let t=n.tiempoSesion===e;return(0,N.jsxs)(`button`,{onClick:()=>r(t=>({...t,tiempoSesion:e})),className:`py-2.5 rounded-xl text-sm font-bold transition-all duration-200 hover:-translate-y-0.5 active:scale-95`,style:{backgroundColor:t?`${R.primary}22`:`${R.surfaceContainerHighest}66`,color:t?R.primary:R.onSurfaceVariant,boxShadow:t?`0 0 0 1px ${R.primary}55, 0 0 14px ${R.primary}18`:`0 0 0 1px ${R.outlineVariant}20`},children:[e,` min`]},e)})})]}),(0,N.jsxs)(`div`,{className:`space-y-2`,children:[(0,N.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Experiencia Previa`}),(0,N.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:[[`principiante`,`🌱`,`Explorador`],[`principiante_base`,`🌿`,`Practicante`],[`intermedio`,`🌳`,`Maestro`]].map(([e,t,i])=>{let a=n.nivelPrevio===e;return(0,N.jsxs)(`button`,{onClick:()=>r(t=>({...t,nivelPrevio:e})),className:`py-3 rounded-xl text-xs font-medium flex flex-col items-center gap-1 transition-all duration-200 hover:-translate-y-0.5 active:scale-95`,style:{backgroundColor:a?`${R.secondaryContainer}22`:`${R.surfaceContainerHighest}66`,color:a?R.secondary:R.onSurfaceVariant,boxShadow:a?`0 0 0 1px ${R.secondary}55`:`0 0 0 1px ${R.outlineVariant}18`},children:[(0,N.jsx)(`span`,{className:`text-lg`,children:t}),(0,N.jsx)(`span`,{children:i})]},e)})})]})]}),(0,N.jsxs)(`div`,{className:`space-y-3`,children:[(0,N.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Estilo de Aprendizaje`}),(0,N.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-3`,children:[[`visual`,`🎨`,`Visual`],[`lectura`,`📖`,`Leyendo`],[`retos`,`🏆`,`Con retos`],[`balanceado`,`⚖️`,`Balanceado`]].map(([e,t,i])=>{let a=n.estilo===e;return(0,N.jsxs)(`button`,{onClick:()=>r(t=>({...t,estilo:e})),className:`flex flex-col items-center justify-center p-4 rounded-xl text-xs font-semibold transition-all duration-300 group hover:-translate-y-0.5 active:scale-95`,style:{backgroundColor:a?`${R.secondaryContainer}22`:`${R.surfaceContainerHighest}44`,color:a?R.secondary:R.onSurfaceVariant,boxShadow:a?`0 0 0 1px ${R.secondary}77, 0 0 18px ${R.secondary}14`:`0 0 0 1px ${R.outlineVariant}18`},children:[(0,N.jsx)(`span`,{className:`text-2xl mb-2 transition-transform duration-300 group-hover:scale-110`,style:{display:`block`},children:t}),i]},e)})})]}),(0,N.jsxs)(`div`,{className:`pt-2 flex flex-col gap-3`,children:[(0,N.jsxs)(`button`,{onClick:o,disabled:!n.nombre.trim(),className:`w-full py-4 px-8 rounded-full font-bold text-base flex items-center justify-center gap-3 transition-all duration-200 hover:scale-[1.02] active:scale-[0.97] disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:scale-100`,style:{background:`linear-gradient(135deg, ${R.primary}, ${R.primaryContainer})`,color:R.onPrimaryFixed,boxShadow:`0 8px 30px ${R.primary}2a, 0 4px 12px ${R.primaryContainer}33`,fontFamily:`'Manrope', 'Inter', sans-serif`},onMouseEnter:e=>{n.nombre.trim()&&(e.currentTarget.style.boxShadow=`0 12px 40px ${R.primary}44, 0 4px 16px ${R.primaryContainer}44`)},onMouseLeave:e=>{e.currentTarget.style.boxShadow=`0 8px 30px ${R.primary}2a, 0 4px 12px ${R.primaryContainer}33`},children:[`Comenzar Expedición`,(0,N.jsx)(`span`,{"aria-hidden":!0,children:`→`})]}),(0,N.jsx)(`button`,{onClick:()=>t(`sessions`),className:`w-full py-2.5 rounded-full text-sm font-medium text-gray-500 hover:text-gray-300 transition-colors`,children:`← Mis sesiones`})]})]}),(0,N.jsxs)(`div`,{className:`mt-8 flex items-center justify-center gap-8`,children:[(0,N.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,N.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:R.primary,boxShadow:`0 0 0 4px ${R.primary}33`}}),(0,N.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider`,style:{color:R.primary},children:`Perfil`})]}),(0,N.jsx)(`div`,{className:`w-12 h-px`,style:{backgroundColor:`${R.outlineVariant}33`}}),(0,N.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,N.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:`${R.outlineVariant}55`}}),(0,N.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider`,style:{color:`${R.onSurfaceVariant}55`},children:`Intereses`})]}),(0,N.jsx)(`div`,{className:`w-12 h-px`,style:{backgroundColor:`${R.outlineVariant}33`}}),(0,N.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,N.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:`${R.outlineVariant}55`}}),(0,N.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider`,style:{color:`${R.onSurfaceVariant}55`},children:`Plan`})]})]})]})}),(0,N.jsx)(`div`,{className:`fixed bottom-8 right-8 w-16 h-16 rounded-full pointer-events-none animate-pulse`,style:{background:`radial-gradient(circle, ${R.secondary}, ${R.secondaryContainer})`,filter:`blur(24px)`,opacity:.35}})]})}function ee(){let{setProgram:e,setSwarmProgress:t,setScreen:n,selectedProviderId:r,selectedModelId:i,setSessionId:a,setCurriculoId:o,setIsGenerating:s,setAgentStatus:c}=M();return{generateLesson:(0,E.useCallback)(async(l,u)=>{if(!r||!i){console.error(`HiveLearn: providerId y modelId son requeridos`);return}n(`loading`),s(!0),t({etapa:`tier0`,agenteActivo:`ProfileAgent`,porcentaje:2,mensaje:`Iniciando el enjambre de agentes...`});try{let d=await fetch(`/api/hivelearn/generate`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({perfil:l,meta:u,providerId:r,modelId:i})});if(!d.ok||!d.body)throw Error(`Error del servidor: ${d.status}`);let f=d.body.getReader(),p=new TextDecoder,m=``;for(;;){let{done:r,value:i}=await f.read();if(r)break;m+=p.decode(i,{stream:!0});let l=m.split(`
|
|
4
|
-
|
|
5
|
-
`);m=l.pop()??``;for(let r of l){if(!r.trim())continue;let i=`message`,l=``;for(let e of r.split(`
|
|
6
|
-
`))e.startsWith(`event: `)?i=e.slice(7).trim():e.startsWith(`data: `)&&(l=e.slice(6).trim());if(!l)continue;let u;try{u=JSON.parse(l)}catch{continue}switch(i){case`progress`:t(u);break;case`agent_started`:c(u.agentId,`running`);break;case`agent_completed`:c(u.agentId,`completed`);break;case`agent_failed`:c(u.agentId,`failed`);break;case`complete`:e(u),a(u.sessionId),o(u.curriculoId),s(!1),n(`canvas`);break;case`error`:throw Error(u.message??`Error desconocido del swarm`)}}}}catch(e){s(!1),t({etapa:`error`,agenteActivo:`Sistema`,porcentaje:0,mensaje:`Error: ${e.message}`})}},[e,t,n,r,i,a,o,s,c])}}var V=[{emoji:`🟨`,text:`Quiero aprender JavaScript básico`},{emoji:`🐍`,text:`Aprenderme Python desde cero`},{emoji:`🤖`,text:`Entender qué es la inteligencia artificial`},{emoji:`🎨`,text:`Aprender HTML y CSS para crear páginas web`},{emoji:`🗃️`,text:`Entender SQL y bases de datos`},{emoji:`🌐`,text:`Aprender a hacer APIs con Node.js`},{emoji:`🎮`,text:`Quiero crear videojuegos sencillos`},{emoji:`📦`,text:`Aprender a usar Git y GitHub`},{emoji:`🔗`,text:`Entender cómo funciona Internet`},{emoji:`📱`,text:`Quiero hacer mi primera app móvil`}],H={surfaceDim:`#0b1326`,surfaceContainerLowest:`#060e20`,surfaceContainerLow:`#131b2e`,surfaceContainerHigh:`#222a3d`,primary:`#adc6ff`,primaryContainer:`#4d8eff`,secondary:`#ddb7ff`,secondaryContainer:`#6f00be`,onSurface:`#dae2fd`,onSurfaceVariant:`#c2c6d6`,onPrimaryFixed:`#001a42`,outlineVariant:`#424754`};function te(){let{perfil:e,setMeta:t,setScreen:n}=M(),{generateLesson:r}=ee(),[i,a]=(0,E.useState)(``),[o,s]=(0,E.useState)(!1),c=async()=>{!i.trim()||!e||(t(i.trim()),await r(e,i.trim()))},l=e=>a(e);return(0,N.jsxs)(`div`,{className:`flex h-full overflow-hidden`,style:{backgroundColor:H.surfaceDim},children:[(0,N.jsxs)(`section`,{className:`relative hidden md:flex md:w-5/12 lg:w-[42%] overflow-hidden flex-col`,style:{backgroundColor:H.surfaceContainerLowest},children:[(0,N.jsxs)(`div`,{className:`absolute inset-0 z-0`,children:[(0,N.jsx)(`img`,{src:`https://lh3.googleusercontent.com/aida-public/AB6AXuBMUREpKV8QsPXhDYP2w2gnatPE1oMbXvbnisHvxsXKW1A09Qg-9JrPzSIgWUh5CFkN-RsfMBfjsd4YvqZh9V91eY-NUCTpfkabjwNp-CWJnvLNv-WLHIBtYpsheV2Mdr0_IOD0fuMvZpz8-KIKtozeo_OC-7P-hq9sMcvxcW2_ziiAamb7MwCid-LPKVGFXo_n2C44jdqXHxlVgdDVwpDyz9afCwfUyTKnAL4Kz4R4loFI5_ZF8qfmJBMWultN3H9yORp6Sj5uktE`,alt:`Ethereal nebula — deep indigo space`,className:`w-full h-full object-cover`,style:{opacity:.5}}),(0,N.jsx)(`div`,{className:`absolute inset-0`,style:{background:`linear-gradient(to top, ${H.surfaceContainerLowest} 0%, ${H.surfaceContainerLowest}55 30%, transparent 65%)`}}),(0,N.jsx)(`div`,{className:`absolute inset-0`,style:{background:`linear-gradient(to right, transparent 50%, ${H.surfaceContainerLowest}cc 100%)`}})]}),(0,N.jsx)(`div`,{className:`absolute top-1/3 left-1/4 w-72 h-72 rounded-full pointer-events-none`,style:{background:`radial-gradient(circle, ${H.secondaryContainer}44 0%, transparent 70%)`,filter:`blur(55px)`}}),(0,N.jsx)(`div`,{className:`absolute bottom-1/4 right-1/3 w-56 h-56 rounded-full pointer-events-none`,style:{background:`radial-gradient(circle, ${H.primaryContainer}2a 0%, transparent 70%)`,filter:`blur(45px)`}}),(0,N.jsxs)(`div`,{className:`relative z-10 flex flex-col p-8 xl:p-10 pt-8 h-full`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-3 mb-8`,children:[(0,N.jsx)(`div`,{className:`h-10 w-10 rounded-2xl flex items-center justify-center text-xl`,style:{backgroundColor:`${H.primary}1a`,backdropFilter:`blur(8px)`},children:`🐝`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`p`,{className:`font-bold text-base tracking-tight leading-tight`,style:{color:H.onSurface,fontFamily:`'Manrope', 'Inter', sans-serif`},children:`HiveLearn`}),(0,N.jsx)(`p`,{className:`text-[11px]`,style:{color:`${H.onSurfaceVariant}70`},children:`Aprendizaje adaptativo · 100% privado`})]})]}),(0,N.jsxs)(`div`,{className:`inline-flex items-center gap-2 px-4 py-2 rounded-full mb-6 self-start`,style:{backgroundColor:`${H.secondaryContainer}2a`,backdropFilter:`blur(16px)`,WebkitBackdropFilter:`blur(16px)`},children:[(0,N.jsx)(`span`,{className:`w-2 h-2 rounded-full animate-pulse`,style:{backgroundColor:H.secondary}}),(0,N.jsx)(`span`,{className:`text-sm font-medium tracking-wide`,style:{color:H.secondary,fontFamily:`'Inter', sans-serif`},children:`16 agentes listos para enseñarte`})]}),(0,N.jsxs)(`h1`,{className:`text-4xl xl:text-5xl font-extrabold leading-[1.07] mb-4`,style:{fontFamily:`'Manrope', 'Inter', sans-serif`,letterSpacing:`-0.02em`,color:H.onSurface},children:[`Expande tu`,` `,(0,N.jsx)(`span`,{style:{background:`linear-gradient(135deg, ${H.primary}, ${H.secondary})`,WebkitBackgroundClip:`text`,WebkitTextFillColor:`transparent`,backgroundClip:`text`},children:`horizonte.`})]}),(0,N.jsx)(`p`,{className:`text-base leading-relaxed max-w-xs`,style:{color:H.onSurfaceVariant},children:`Nuestra red neuronal de expertos está lista para sintetizar cualquier conocimiento para ti.`})]})]}),(0,N.jsx)(`main`,{className:`flex-1 flex flex-col overflow-y-auto`,style:{backgroundColor:H.surfaceDim},children:(0,N.jsxs)(`div`,{className:`w-full max-w-lg mx-auto px-6 pt-8 pb-10 md:px-10 md:pt-8`,children:[(0,N.jsxs)(`header`,{className:`mb-8`,children:[(0,N.jsxs)(`h2`,{className:`text-2xl md:text-3xl font-bold mb-1`,style:{fontFamily:`'Manrope', 'Inter', sans-serif`,color:H.onSurface},children:[`¡Hola,`,` `,(0,N.jsx)(`span`,{style:{background:`linear-gradient(135deg, ${H.primary}, ${H.primaryContainer})`,WebkitBackgroundClip:`text`,WebkitTextFillColor:`transparent`,backgroundClip:`text`},children:e?.nombre??`alumno`}),`! 👋`]}),(0,N.jsx)(`p`,{className:`text-lg`,style:{color:H.onSurfaceVariant},children:`¿Qué quieres aprender hoy?`})]}),(0,N.jsxs)(`div`,{className:`relative mb-6`,children:[(0,N.jsx)(`div`,{className:`absolute -inset-px rounded-2xl pointer-events-none transition-opacity duration-500`,style:{background:`linear-gradient(135deg, ${H.primary}44, ${H.secondary}22)`,filter:`blur(6px)`,opacity:o?1:.2}}),(0,N.jsx)(`textarea`,{className:`relative w-full min-h-[160px] rounded-2xl p-5 text-base leading-relaxed outline-none resize-none transition-all duration-300`,style:{backgroundColor:H.surfaceContainerLow,color:H.onSurface,border:`1px solid ${o?`${H.primary}55`:`${H.outlineVariant}22`}`,boxShadow:o?`0 0 0 3px ${H.primary}0c, 0 6px 30px ${H.primaryContainer}18`:`none`,fontFamily:`inherit`},placeholder:`Escribe tu meta de aprendizaje... Por ejemplo: 'Quiero entender los fundamentos de la mecánica cuántica' o 'Cómo crear una API con Node.js'`,value:i,onChange:e=>a(e.target.value),onFocus:()=>s(!0),onBlur:()=>s(!1)})]}),(0,N.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,N.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.2em]`,style:{color:`${H.onSurfaceVariant}77`},children:`Sugerencias para ti`}),(0,N.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:V.map(e=>{let t=i===e.text;return(0,N.jsxs)(`button`,{onClick:()=>l(e.text),className:`px-4 py-2 rounded-full text-sm font-medium transition-all duration-200 hover:-translate-y-0.5 active:scale-95`,style:{backgroundColor:t?`${H.primary}20`:`${H.surfaceContainerHigh}bb`,color:t?H.primary:H.onSurfaceVariant,border:t?`1px solid ${H.primary}44`:`1px solid ${H.outlineVariant}20`,boxShadow:t?`0 0 14px ${H.primary}18`:`none`},children:[(0,N.jsx)(`span`,{className:`mr-1`,children:e.emoji}),e.text]},e.text)})})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,N.jsx)(`button`,{onClick:()=>n(`profile`),className:`px-5 py-3 rounded-full text-sm font-medium transition-all duration-200 hover:scale-[1.02] active:scale-95`,style:{color:H.onSurfaceVariant},onMouseEnter:e=>{e.currentTarget.style.color=H.onSurface,e.currentTarget.style.backgroundColor=`${H.surfaceContainerHigh}88`},onMouseLeave:e=>{e.currentTarget.style.color=H.onSurfaceVariant,e.currentTarget.style.backgroundColor=`transparent`},children:`← Atrás`}),(0,N.jsx)(`button`,{onClick:c,disabled:!i.trim(),className:`px-8 py-3.5 rounded-full font-bold text-sm transition-all duration-200 hover:scale-[1.03] active:scale-[0.97] disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:scale-100`,style:{background:`linear-gradient(135deg, ${H.primary}, ${H.primaryContainer})`,color:H.onPrimaryFixed,boxShadow:`0 6px 24px ${H.primary}28, 0 3px 10px ${H.primaryContainer}33`,fontFamily:`'Manrope', sans-serif`},onMouseEnter:e=>{i.trim()&&(e.currentTarget.style.boxShadow=`0 10px 36px ${H.primary}44, 0 4px 14px ${H.primaryContainer}44`)},onMouseLeave:e=>{e.currentTarget.style.boxShadow=`0 6px 24px ${H.primary}28, 0 3px 10px ${H.primaryContainer}33`},children:`🐝 Iniciar Aprendizaje`})]})]})})]})}var U=[{id:`hl-profile-agent`,label:`Perfil`,icon:`👤`},{id:`hl-intent-agent`,label:`Intención`,icon:`🎯`},{id:`hl-structure-agent`,label:`Estructura`,icon:`🗺️`},{id:`hl-explanation-agent`,label:`Explicación`,icon:`📖`},{id:`hl-exercise-agent`,label:`Ejercicios`,icon:`✏️`},{id:`hl-quiz-agent`,label:`Quiz`,icon:`❓`},{id:`hl-challenge-agent`,label:`Reto`,icon:`⚡`},{id:`hl-code-agent`,label:`Código`,icon:`💻`},{id:`hl-svg-agent`,label:`Diagrama`,icon:`📊`},{id:`hl-gif-agent`,label:`Animación`,icon:`🎞️`},{id:`hl-infographic-agent`,label:`Infografía`,icon:`📈`},{id:`hl-image-agent`,label:`Imagen`,icon:`🖼️`},{id:`hl-gamification-agent`,label:`Gamificación`,icon:`🏆`},{id:`hl-evaluation-agent`,label:`Evaluación`,icon:`📝`},{id:`hl-feedback-agent`,label:`Feedback`,icon:`🧠`}],ne={"hl-profile-agent":{rol:`Analiza el historial y preferencias del alumno para personalizar la lección.`,acciones:{running:`Leyendo historial y preferencias...`,thinking:`Adaptando nivel de dificultad al alumno...`}},"hl-intent-agent":{rol:`Detecta el objetivo real de aprendizaje detrás de la solicitud.`,acciones:{running:`Interpretando el objetivo del alumno...`,thinking:`Clasificando tema y nivel de complejidad...`}},"hl-structure-agent":{rol:`Diseña la secuencia de nodos de la lección.`,acciones:{running:`Definiendo secuencia de nodos pedagógicos...`,thinking:`Calculando progresión de dificultad...`}},"hl-explanation-agent":{rol:`Genera las explicaciones principales del tema.`,acciones:{running:`Redactando explicación principal del concepto...`,tool_call:`Generando ejemplo concreto de aplicación...`}},"hl-exercise-agent":{rol:`Crea ejercicios prácticos para reforzar lo aprendido.`,acciones:{running:`Diseñando ejercicio con enunciado aplicado...`,thinking:`Ajustando dificultad según perfil...`}},"hl-quiz-agent":{rol:`Formula preguntas de comprensión con opciones múltiples.`,acciones:{running:`Formulando pregunta de opción múltiple...`,thinking:`Generando distractores coherentes...`}},"hl-challenge-agent":{rol:`Diseña un reto integrador al final del nodo.`,acciones:{running:`Construyendo escenario de reto real...`,thinking:`Definiendo criterios de éxito...`}},"hl-code-agent":{rol:`Produce snippets de código funcional y comentado.`,acciones:{running:`Escribiendo código de ejemplo funcional...`,tool_call:`Formateando y comentando bloque de código...`}},"hl-svg-agent":{rol:`Crea diagramas SVG para visualizar conceptos.`,acciones:{running:`Dibujando diagrama conceptual en SVG...`,thinking:`Calculando layout y proporciones...`}},"hl-gif-agent":{rol:`Genera animaciones frame a frame para ilustrar procesos.`,acciones:{running:`Creando frames de la animación educativa...`,thinking:`Definiendo transiciones y tiempos...`}},"hl-infographic-agent":{rol:`Produce infografías con datos y secciones clave.`,acciones:{running:`Organizando secciones de la infografía...`,thinking:`Seleccionando datos más relevantes...`}},"hl-image-agent":{rol:`Genera imágenes ilustrativas con IA generativa.`,acciones:{running:`Construyendo prompt de imagen detallado...`,tool_call:`Generando imagen con modelo de IA...`}},"hl-gamification-agent":{rol:`Define recompensas, logros y XP del nodo.`,acciones:{running:`Calculando XP y diseñando badges...`,thinking:`Personalizando mensaje de celebración...`}},"hl-evaluation-agent":{rol:`Genera preguntas para la evaluación final de la lección.`,acciones:{running:`Formulando preguntas de evaluación sumativa...`,thinking:`Balanceando dificultad de preguntas...`}},"hl-feedback-agent":{rol:`Prepara respuestas de feedback adaptadas al estilo del alumno.`,acciones:{running:`Generando feedback personalizado...`,thinking:`Ajustando tono y nivel de detalle...`}}},re={idle:`rgba(255,255,255,0.15)`,pending:`#64748b`,running:`#3b82f6`,thinking:`#a855f7`,tool_call:`#06b6d4`,completed:`#22c55e`,failed:`#ef4444`},ie={idle:`Esperando`,pending:`En cola`,running:`Trabajando`,thinking:`Pensando`,tool_call:`Usando tool`,completed:`Completado`,failed:`Error`};function ae({progress:e,status:t,currentWorker:n}){let r=2*Math.PI*80,i=r-e/100*r,a=t===`thinking`?`#a855f7`:t===`delegating`?`#06b6d4`:t===`assembling`?`#f59e0b`:t===`completed`?`#22c55e`:`#3b82f6`,o=t===`analyzing`?`Analizando perfil...`:t===`delegating`?`Delegando${n?` → ${n}`:`...`}`:t===`assembling`?`Ensamblando lección...`:t===`completed`?`Lección lista ✓`:`Iniciando...`;return(0,N.jsxs)(`div`,{className:`relative flex items-center justify-center`,children:[(0,N.jsxs)(`svg`,{className:`absolute w-[190px] h-[190px] -rotate-90`,viewBox:`0 0 190 190`,children:[(0,N.jsx)(`circle`,{cx:`95`,cy:`95`,r:80,fill:`none`,stroke:`rgba(255,255,255,0.04)`,strokeWidth:`1`,strokeDasharray:`4 6`}),(0,N.jsx)(`circle`,{cx:`95`,cy:`95`,r:80,fill:`none`,stroke:`rgba(255,255,255,0.06)`,strokeWidth:`4`}),(0,N.jsx)(`circle`,{cx:`95`,cy:`95`,r:80,fill:`none`,stroke:a,strokeWidth:`4`,strokeDasharray:r,strokeDashoffset:i,strokeLinecap:`round`,className:`transition-all duration-700`,style:{filter:`drop-shadow(0 0 6px ${a})`}}),(0,N.jsx)(`circle`,{cx:`95`,cy:`95`,r:70,fill:`none`,stroke:`${a}20`,strokeWidth:`1`})]}),(0,N.jsxs)(`div`,{className:`w-[140px] h-[140px] rounded-full flex flex-col items-center justify-center backdrop-blur-sm relative z-10 transition-all duration-500`,style:{background:`radial-gradient(circle at 35% 35%, ${a}30, rgba(15,20,50,0.9))`,border:`1.5px solid ${a}40`,boxShadow:`0 0 40px ${a}25, 0 0 80px ${a}10, inset 0 1px 0 rgba(255,255,255,0.08)`},children:[(0,N.jsx)(`span`,{className:`text-4xl select-none mb-1`,children:`🐝`}),(0,N.jsx)(`span`,{className:`text-[10px] font-bold text-white/40 uppercase tracking-widest`,children:`Coordinador`})]}),(0,N.jsx)(`div`,{className:`absolute -bottom-10 left-1/2 -translate-x-1/2 whitespace-nowrap px-3 py-1 rounded-full text-[10px] font-semibold tracking-wide transition-all duration-500`,style:{background:`${a}18`,border:`1px solid ${a}35`,color:a},children:o}),(0,N.jsx)(`div`,{className:`absolute -top-9 left-1/2 -translate-x-1/2`,children:(0,N.jsxs)(`span`,{className:`text-[11px] font-bold tabular-nums`,style:{color:a},children:[e,`%`]})})]})}function oe({workerNodes:e}){return(0,N.jsxs)(`svg`,{className:`absolute inset-0 pointer-events-none`,width:`620`,height:`620`,style:{overflow:`visible`},children:[(0,N.jsx)(`defs`,{children:e.filter(e=>e.status!==`idle`).map(({agent:e,status:t,x:n,y:r})=>{let i=310+n,a=310+r,o=re[t];return(0,N.jsxs)(`linearGradient`,{id:`grad-${e.id}`,x1:310,y1:310,x2:i,y2:a,gradientUnits:`userSpaceOnUse`,children:[(0,N.jsx)(`stop`,{offset:`0%`,stopColor:o,stopOpacity:`0.6`}),(0,N.jsx)(`stop`,{offset:`100%`,stopColor:o,stopOpacity:`0.05`})]},`grad-${e.id}`)})}),e.map(({agent:e,status:t,x:n,y:r})=>{if(t===`idle`)return null;let i=310+n,a=310+r,o=re[t],s=t===`running`||t===`thinking`||t===`tool_call`,c=t===`completed`,l=`beam-path-${e.id}`;return(0,N.jsxs)(`g`,{children:[(0,N.jsx)(`line`,{x1:310,y1:310,x2:i,y2:a,stroke:o,strokeWidth:s?1.5:.5,strokeOpacity:c?.15:s?.4:.1,strokeDasharray:c?`none`:`4 4`}),s&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`path`,{id:l,d:`M 310 310 L ${i} ${a}`,fill:`none`,stroke:`none`}),(0,N.jsx)(`circle`,{r:`3`,fill:o,fillOpacity:`0.9`,style:{filter:`drop-shadow(0 0 4px ${o})`},children:(0,N.jsx)(`animateMotion`,{dur:t===`tool_call`?`0.8s`:`1.4s`,repeatCount:`indefinite`,children:(0,N.jsx)(`mpath`,{href:`#${l}`})})}),(0,N.jsx)(`circle`,{r:`2`,fill:`white`,fillOpacity:`0.3`,children:(0,N.jsx)(`animateMotion`,{dur:t===`tool_call`?`0.8s`:`1.4s`,repeatCount:`indefinite`,begin:`0.7s`,children:(0,N.jsx)(`mpath`,{href:`#${l}`})})})]}),c&&(0,N.jsx)(`circle`,{cx:i,cy:a,r:`5`,fill:o,fillOpacity:`0.12`,stroke:o,strokeOpacity:`0.3`,strokeWidth:`1`})]},e.id)})]})}function se({agent:e,status:t,x:n,y:r}){let i=ne[e.id],a=re[t],o=i?.acciones[t]??ie[t],s=t===`running`||t===`thinking`||t===`tool_call`,c=t===`completed`,l=310+n,u=310+r,d=n>50,f=d?l-38-230-12:l+38+12,p=u-120/2;return(0,N.jsxs)(`div`,{className:`absolute pointer-events-none z-50 transition-all duration-200`,style:{left:`${f}px`,top:`${p}px`,width:`230px`},children:[(0,N.jsxs)(`div`,{className:`rounded-xl p-3.5 backdrop-blur-xl`,style:{background:`rgba(10, 15, 35, 0.92)`,border:`1px solid ${a}30`,boxShadow:`0 8px 32px rgba(0,0,0,0.5), 0 0 0 1px ${a}10`},children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,N.jsx)(`span`,{className:`text-lg`,children:e.icon}),(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,N.jsx)(`p`,{className:`text-[12px] font-bold text-white/90 leading-tight`,children:e.label}),(0,N.jsxs)(`div`,{className:`inline-flex items-center gap-1 mt-0.5 px-1.5 py-0.5 rounded-full text-[9px] font-semibold`,style:{background:`${a}18`,color:a},children:[s&&(0,N.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full animate-pulse`,style:{background:a}}),ie[t]]})]})]}),(0,N.jsx)(`p`,{className:`text-[10px] text-white/40 leading-relaxed mb-2`,children:i?.rol}),s&&(0,N.jsxs)(`div`,{className:`flex items-start gap-1.5 pt-2 border-t border-white/5`,children:[(0,N.jsx)(`span`,{className:`text-[10px] mt-px`,children:`⚡`}),(0,N.jsx)(`p`,{className:`text-[10px] font-medium leading-relaxed`,style:{color:a},children:o})]}),c&&(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5 pt-2 border-t border-white/5`,children:[(0,N.jsx)(`span`,{className:`text-[10px]`,children:`✅`}),(0,N.jsx)(`p`,{className:`text-[10px] font-medium text-emerald-400`,children:`Tarea entregada al coordinador`})]})]}),(0,N.jsx)(`div`,{className:`absolute top-1/2 -translate-y-1/2`,style:{[d?`right`:`left`]:`-5px`,width:0,height:0,borderTop:`5px solid transparent`,borderBottom:`5px solid transparent`,[d?`borderLeft`:`borderRight`]:`5px solid ${a}30`}})]})}function ce({agent:e,status:t,x:n,y:r,onMouseEnter:i,onMouseLeave:a}){let o=t===`running`||t===`thinking`||t===`tool_call`,s=t===`completed`,c=t===`failed`,l=re[t],u=o||s||c||t===`pending`?1:.3,d=o?ne[e.id]?.acciones[t]??ie[t]:null;return(0,N.jsxs)(`div`,{className:`absolute transition-all duration-700 cursor-pointer group`,style:{transform:`translate(${n-38}px, ${r-38}px)`,opacity:u,width:`76px`},onMouseEnter:i,onMouseLeave:a,children:[(0,N.jsxs)(`div`,{className:`w-[76px] h-[76px] rounded-full flex items-center justify-center relative transition-all duration-300 backdrop-blur-sm`,style:{background:o?`radial-gradient(circle at 35% 35%, ${l}20, rgba(15,20,50,0.85))`:s?`rgba(34,197,94,0.08)`:`rgba(255,255,255,0.04)`,border:o?`1.5px solid ${l}50`:s?`1.5px solid rgba(34,197,94,0.3)`:`1px solid rgba(255,255,255,0.08)`,boxShadow:o?`0 0 24px ${l}30, 0 0 48px ${l}12, inset 0 1px 0 rgba(255,255,255,0.06)`:s?`0 0 12px rgba(34,197,94,0.15)`:`none`},children:[o&&(0,N.jsx)(`div`,{className:`absolute inset-[-4px] rounded-full animate-ping`,style:{border:`1px solid ${l}25`,animationDuration:t===`tool_call`?`0.8s`:`1.5s`}}),(0,N.jsx)(`span`,{className:`text-2xl relative z-10 select-none ${o?`animate-pulse`:``}`,style:{animationDuration:`2s`},children:s?`✅`:c?`❌`:e.icon}),(0,N.jsx)(`div`,{className:`absolute -top-0.5 -right-0.5 w-4 h-4 rounded-full border-2 border-[#0b1326] transition-all duration-300`,style:{background:l,boxShadow:o?`0 0 6px ${l}`:`none`}})]}),(0,N.jsx)(`div`,{className:`mt-2 text-center`,children:(0,N.jsx)(`span`,{className:`text-[11px] font-semibold block leading-tight transition-colors duration-300 ${o?`text-white/80`:s?`text-emerald-400/70`:`text-white/35`}`,children:e.label})}),d&&(0,N.jsx)(`div`,{className:`mt-1.5 mx-auto px-2 py-0.5 rounded-full text-center animate-fade-in`,style:{background:`${l}15`,border:`1px solid ${l}25`,maxWidth:`90px`},children:(0,N.jsxs)(`span`,{className:`text-[8px] font-medium leading-tight block truncate`,style:{color:l},children:[d.replace(/\.\.\.$/,``),`…`]})})]})}function le({agentStatuses:e,progress:t,mensaje:n}){let r=t<20?`Análisis`:t<60?`Contenido`:t<90?`Finalización`:`Revisión final`,i=Object.values(e).filter(e=>e===`running`||e===`thinking`||e===`tool_call`).length,a=Object.values(e).filter(e=>e===`completed`).length,o=(0,E.useMemo)(()=>{let t=[],n=(e,n,r,i,a,o,s,c)=>{t.push({id:e,from:n,fromIcon:r,to:i,toIcon:a,action:o,type:s,color:c})};n(`start`,`🐝`,`🐝`,``,``,`Enjambre iniciado — analizando solicitud`,`start`,`#3b82f6`);let r=[`hl-profile-agent`,`hl-intent-agent`,`hl-structure-agent`],i=U.filter(e=>!r.includes(e.id));for(let t of r){let r=U.find(e=>e.id===t),i=e[t];(i===`running`||i===`thinking`||i===`completed`)&&n(`${t}-del`,`🐝`,`🐝`,r.label,r.icon,`Delegando análisis → ${r.label}`,`delegate`,`#06b6d4`),i===`completed`&&n(`${t}-ret`,r.label,r.icon,`Coordinador`,`🐝`,`${r.label} completado ✓`,`return`,`#22c55e`)}let a=i.filter(t=>{let n=e[t.id];return n===`running`||n===`thinking`||n===`tool_call`||n===`completed`});a.length>0&&n(`t1-launch`,`🐝`,`🐝`,``,``,`Lanzando ${a.length} agentes de contenido en paralelo`,`start`,`#a855f7`);for(let t of a){let r=e[t.id];(r===`running`||r===`thinking`||r===`tool_call`)&&n(`${t.id}-del`,`🐝`,`🐝`,t.label,t.icon,`${t.label}: generando contenido`,`delegate`,re[r]),r===`completed`&&n(`${t.id}-ret`,t.label,t.icon,`Coordinador`,`🐝`,`${t.label} entregó resultado ✓`,`return`,`#22c55e`)}return t.slice(-7)},[e]);return(0,N.jsxs)(`div`,{className:`w-full flex flex-col gap-4 h-full`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`text-[11px] font-bold text-white/50 uppercase tracking-[0.15em]`,children:`Flujo de Delegación`}),(0,N.jsxs)(`p`,{className:`text-[10px] text-white/25 mt-0.5`,children:[r,` en progreso`]})]}),(0,N.jsxs)(`div`,{className:`space-y-2`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsx)(`span`,{className:`text-[10px] text-white/35 font-medium`,children:n.length>40?n.slice(0,40)+`…`:n}),(0,N.jsxs)(`span`,{className:`text-[12px] font-bold text-blue-400 tabular-nums`,children:[t,`%`]})]}),(0,N.jsx)(`div`,{className:`h-2 rounded-full bg-white/5 overflow-hidden`,children:(0,N.jsx)(`div`,{className:`h-full rounded-full transition-all duration-700`,style:{width:`${Math.max(t,2)}%`,background:`linear-gradient(90deg, #3b82f6, #8b5cf6)`,boxShadow:`0 0 8px rgba(59,130,246,0.4)`}})}),(0,N.jsxs)(`div`,{className:`flex justify-between text-[9px] text-white/20`,children:[(0,N.jsxs)(`span`,{children:[a,` completados`]}),(0,N.jsxs)(`span`,{children:[i,` activos`]}),(0,N.jsxs)(`span`,{children:[U.length-a-i,` pendientes`]})]})]}),(0,N.jsx)(`div`,{className:`h-px bg-white/[0.05]`}),(0,N.jsx)(`div`,{className:`flex-1 flex flex-col gap-2 overflow-y-auto min-h-0`,children:o.map(e=>(0,N.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-xl p-2.5 transition-all duration-300`,style:{background:e.type===`return`?`rgba(34,197,94,0.04)`:e.type===`start`?`rgba(59,130,246,0.04)`:`rgba(255,255,255,0.03)`,border:`1px solid ${e.color}15`},children:[(0,N.jsx)(`div`,{className:`flex-shrink-0 w-6 h-6 rounded-full flex items-center justify-center text-[10px]`,style:{background:`${e.color}15`},children:e.type===`return`?`↩`:e.type===`start`?`▶`:`→`}),(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[e.to&&(0,N.jsxs)(`div`,{className:`flex items-center gap-1 mb-0.5`,children:[(0,N.jsx)(`span`,{className:`text-[10px]`,children:e.fromIcon}),(0,N.jsx)(`span`,{className:`text-[9px] text-white/25`,children:`→`}),(0,N.jsx)(`span`,{className:`text-[10px]`,children:e.toIcon}),(0,N.jsx)(`span`,{className:`text-[9px] font-semibold text-white/40`,children:e.to})]}),(0,N.jsx)(`p`,{className:`text-[10px] leading-relaxed`,style:{color:e.type===`return`?`#4ade80`:e.type===`start`?`#93c5fd`:`rgba(255,255,255,0.55)`},children:e.action})]})]},e.id))}),(0,N.jsxs)(`div`,{className:`pt-3 border-t border-white/[0.04] flex items-center justify-between`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,N.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full bg-blue-400 animate-pulse`}),(0,N.jsxs)(`span`,{className:`text-[9px] text-white/25`,children:[i,` de `,U.length,` agentes activos`]})]}),(0,N.jsx)(`span`,{className:`text-[9px] text-white/20`,children:`~2 min`})]})]})}function ue(){let{swarmProgress:e,meta:t,perfil:n,agentStatuses:r,coordinatorState:i}=M(),a=e?.porcentaje??0,o=e?.mensaje??`Iniciando el enjambre de agentes...`,[s,c]=(0,E.useState)(null),l=a<10?`analyzing`:a<80?`delegating`:a<95?`assembling`:`completed`,u=U.map((e,t)=>{let n=t/U.length*2*Math.PI-Math.PI/2,i=Math.cos(n)*210,a=Math.sin(n)*210;return{agent:e,status:r[e.id]??`idle`,x:i,y:a,angle:n}}),d=s?u.find(e=>e.agent.id===s):null,f=i.currentWorker?U.find(e=>e.id===i.currentWorker)?.label??null:null;return(0,N.jsxs)(`div`,{className:`absolute inset-0 bg-[#0b1326] overflow-hidden flex flex-col`,children:[(0,N.jsxs)(`div`,{className:`absolute inset-0 z-0 pointer-events-none`,children:[(0,N.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-br from-[#0a0e27] via-[#15102e] to-[#0d1128]`}),(0,N.jsx)(`div`,{className:`absolute top-1/4 left-1/3 -translate-x-1/2 -translate-y-1/2 w-[500px] h-[500px] bg-purple-600/15 rounded-full blur-[120px] animate-pulse`,style:{animationDuration:`6s`}}),(0,N.jsx)(`div`,{className:`absolute bottom-1/4 right-1/4 w-96 h-96 bg-blue-600/12 rounded-full blur-[100px] animate-pulse`,style:{animationDuration:`7s`}}),(0,N.jsx)(`div`,{className:`absolute top-2/3 left-1/2 -translate-x-1/2 w-72 h-72 bg-indigo-500/08 rounded-full blur-[80px] animate-pulse`,style:{animationDuration:`5s`}}),(0,N.jsx)(`div`,{className:`absolute inset-0`,children:[...Array(50)].map((e,t)=>(0,N.jsx)(`div`,{className:`absolute rounded-full animate-pulse`,style:{width:`${1+t%3*.8}px`,height:`${1+t%3*.8}px`,background:`rgba(255,255,255,${.08+t%4*.05})`,top:`${(t*37+13)%100}%`,left:`${(t*61+7)%100}%`,animationDelay:`${t*.3%5}s`,animationDuration:`${3+t%3}s`}},t))})]}),(0,N.jsxs)(`div`,{className:`relative z-20 flex items-center justify-between px-6 py-3.5 bg-[#0b1326]/70 backdrop-blur-md border-b border-white/[0.05]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,N.jsx)(`span`,{className:`text-xl`,children:`🐝`}),(0,N.jsx)(`span`,{className:`text-sm font-bold text-white/80`,children:`HiveLearn`}),(0,N.jsx)(`span`,{className:`text-white/20 text-xs`,children:`—`}),(0,N.jsx)(`span`,{className:`text-xs text-blue-400/70 font-medium`,children:o})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full bg-blue-400 animate-pulse`}),(0,N.jsx)(`span`,{className:`text-[10px] font-bold text-white/30 uppercase tracking-wider`,children:`Enjambre activo`})]})]}),(0,N.jsxs)(`div`,{className:`relative z-10 flex flex-1 min-h-0`,children:[(0,N.jsxs)(`div`,{className:`flex-1 flex items-center justify-center relative overflow-hidden`,children:[t&&(0,N.jsxs)(`div`,{className:`absolute top-4 left-6 z-20`,children:[(0,N.jsxs)(`p`,{className:`text-[12px] text-white/40 font-medium max-w-xs truncate`,children:[`"`,t,`"`]}),n&&(0,N.jsxs)(`p`,{className:`text-[10px] text-white/20 mt-0.5`,children:[n.nombre,` · `,n.tiempoSesion,` min`]})]}),(0,N.jsxs)(`div`,{className:`relative flex items-center justify-center`,style:{width:`620px`,height:`620px`},children:[(0,N.jsx)(oe,{workerNodes:u}),(0,N.jsxs)(`svg`,{className:`absolute inset-0 pointer-events-none`,width:620,height:620,children:[(0,N.jsx)(`circle`,{cx:310,cy:310,r:210,fill:`none`,stroke:`rgba(255,255,255,0.03)`,strokeWidth:`1`,strokeDasharray:`3 8`}),(0,N.jsx)(`circle`,{cx:310,cy:310,r:180,fill:`none`,stroke:`rgba(255,255,255,0.015)`,strokeWidth:`1`})]}),(0,N.jsx)(`div`,{className:`absolute`,style:{left:`310px`,top:`310px`,transform:`translate(-50%, -50%)`},children:(0,N.jsx)(ae,{progress:a,status:l,currentWorker:f})}),u.map(e=>(0,N.jsx)(`div`,{className:`absolute`,style:{left:`310px`,top:`310px`},children:(0,N.jsx)(ce,{agent:e.agent,status:e.status,x:e.x,y:e.y,onMouseEnter:()=>c(e.agent.id),onMouseLeave:()=>c(null)})},e.agent.id)),d&&d.status!==`idle`&&(0,N.jsx)(se,{agent:d.agent,status:d.status,x:d.x,y:d.y})]})]}),(0,N.jsx)(`div`,{className:`w-[360px] flex-shrink-0 border-l border-white/[0.04] p-6 flex flex-col`,style:{background:`rgba(13,19,42,0.7)`,backdropFilter:`blur(16px)`},children:(0,N.jsx)(le,{agentStatuses:r,progress:a,mensaje:o})})]})]})}function W(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=W(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var de={value:()=>{}};function fe(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new pe(n)}function pe(e){this._=e}function me(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}pe.prototype=fe.prototype={constructor:pe,on:function(e,t){var n=this._,r=me(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=he(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=ge(n[i],e.name,t);else if(t==null)for(i in n)n[i]=ge(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new pe(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function he(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function ge(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=de,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var _e={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function ve(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),_e.hasOwnProperty(t)?{space:_e[t],local:e}:e}function ye(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function be(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function xe(e){var t=ve(e);return(t.local?be:ye)(t)}function Se(){}function Ce(e){return e==null?Se:function(){return this.querySelector(e)}}function we(e){typeof e!=`function`&&(e=Ce(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new G(r,this._parents)}function Te(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Ee(){return[]}function De(e){return e==null?Ee:function(){return this.querySelectorAll(e)}}function Oe(e){return function(){return Te(e.apply(this,arguments))}}function ke(e){e=typeof e==`function`?Oe(e):De(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new G(r,i)}function Ae(e){return function(){return this.matches(e)}}function je(e){return function(t){return t.matches(e)}}var Me=Array.prototype.find;function Ne(e){return function(){return Me.call(this.children,e)}}function Pe(){return this.firstElementChild}function Fe(e){return this.select(e==null?Pe:Ne(typeof e==`function`?e:je(e)))}var Ie=Array.prototype.filter;function Le(){return Array.from(this.children)}function Re(e){return function(){return Ie.call(this.children,e)}}function ze(e){return this.selectAll(e==null?Le:Re(typeof e==`function`?e:je(e)))}function Be(e){typeof e!=`function`&&(e=Ae(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new G(r,this._parents)}function Ve(e){return Array(e.length)}function He(){return new G(this._enter||this._groups.map(Ve),this._parents)}function Ue(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ue.prototype={constructor:Ue,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function We(e){return function(){return e}}function Ge(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Ue(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Ke(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Ue(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function qe(e){return e.__data__}function Je(e,t){if(!arguments.length)return Array.from(this,qe);var n=t?Ke:Ge,r=this._parents,i=this._groups;typeof e!=`function`&&(e=We(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=Ye(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new G(o,r),o._enter=s,o._exit=c,o}function Ye(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Xe(){return new G(this._exit||this._groups.map(Ve),this._parents)}function Ze(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function Qe(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new G(s,this._parents)}function $e(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function et(e){e||=tt;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new G(i,this._parents).order()}function tt(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function nt(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function rt(){return Array.from(this)}function it(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function at(){let e=0;for(let t of this)++e;return e}function ot(){return!this.node()}function st(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function ct(e){return function(){this.removeAttribute(e)}}function lt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ut(e,t){return function(){this.setAttribute(e,t)}}function dt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function ft(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function pt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function mt(e,t){var n=ve(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?lt:ct:typeof t==`function`?n.local?pt:ft:n.local?dt:ut)(n,t))}function ht(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function gt(e){return function(){this.style.removeProperty(e)}}function _t(e,t,n){return function(){this.style.setProperty(e,t,n)}}function vt(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function yt(e,t,n){return arguments.length>1?this.each((t==null?gt:typeof t==`function`?vt:_t)(e,t,n??``)):bt(this.node(),e)}function bt(e,t){return e.style.getPropertyValue(t)||ht(e).getComputedStyle(e,null).getPropertyValue(t)}function xt(e){return function(){delete this[e]}}function St(e,t){return function(){this[e]=t}}function Ct(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function wt(e,t){return arguments.length>1?this.each((t==null?xt:typeof t==`function`?Ct:St)(e,t)):this.node()[e]}function Tt(e){return e.trim().split(/^|\s+/)}function Et(e){return e.classList||new Dt(e)}function Dt(e){this._node=e,this._names=Tt(e.getAttribute(`class`)||``)}Dt.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function Ot(e,t){for(var n=Et(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function kt(e,t){for(var n=Et(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function At(e){return function(){Ot(this,e)}}function jt(e){return function(){kt(this,e)}}function Mt(e,t){return function(){(t.apply(this,arguments)?Ot:kt)(this,e)}}function Nt(e,t){var n=Tt(e+``);if(arguments.length<2){for(var r=Et(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Mt:t?At:jt)(n,t))}function Pt(){this.textContent=``}function Ft(e){return function(){this.textContent=e}}function It(e){return function(){this.textContent=e.apply(this,arguments)??``}}function Lt(e){return arguments.length?this.each(e==null?Pt:(typeof e==`function`?It:Ft)(e)):this.node().textContent}function Rt(){this.innerHTML=``}function zt(e){return function(){this.innerHTML=e}}function Bt(e){return function(){this.innerHTML=e.apply(this,arguments)??``}}function Vt(e){return arguments.length?this.each(e==null?Rt:(typeof e==`function`?Bt:zt)(e)):this.node().innerHTML}function Ht(){this.nextSibling&&this.parentNode.appendChild(this)}function Ut(){return this.each(Ht)}function Wt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Gt(){return this.each(Wt)}function Kt(e){var t=typeof e==`function`?e:xe(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function qt(){return null}function Jt(e,t){var n=typeof e==`function`?e:xe(e),r=t==null?qt:typeof t==`function`?t:Ce(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Yt(){var e=this.parentNode;e&&e.removeChild(this)}function Xt(){return this.each(Yt)}function Zt(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Qt(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function $t(e){return this.select(e?Qt:Zt)}function en(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function tn(e){return function(t){e.call(this,t,this.__data__)}}function nn(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function rn(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function an(e,t,n){return function(){var r=this.__on,i,a=tn(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function on(e,t,n){var r=nn(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?an:rn,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function sn(e,t,n){var r=ht(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function cn(e,t){return function(){return sn(this,e,t)}}function ln(e,t){return function(){return sn(this,e,t.apply(this,arguments))}}function un(e,t){return this.each((typeof t==`function`?ln:cn)(e,t))}function*dn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var fn=[null];function G(e,t){this._groups=e,this._parents=t}function pn(){return new G([[document.documentElement]],fn)}function mn(){return this}G.prototype=pn.prototype={constructor:G,select:we,selectAll:ke,selectChild:Fe,selectChildren:ze,filter:Be,data:Je,enter:He,exit:Xe,join:Ze,merge:Qe,selection:mn,order:$e,sort:et,call:nt,nodes:rt,node:it,size:at,empty:ot,each:st,attr:mt,style:yt,property:wt,classed:Nt,text:Lt,html:Vt,raise:Ut,lower:Gt,append:Kt,insert:Jt,remove:Xt,clone:$t,datum:en,on,dispatch:un,[Symbol.iterator]:dn};function K(e){return typeof e==`string`?new G([[document.querySelector(e)]],[document.documentElement]):new G([[e]],fn)}function hn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function gn(e,t){if(e=hn(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var _n={passive:!1},vn={capture:!0,passive:!1};function yn(e){e.stopImmediatePropagation()}function bn(e){e.preventDefault(),e.stopImmediatePropagation()}function xn(e){var t=e.document.documentElement,n=K(e).on(`dragstart.drag`,bn,vn);`onselectstart`in t?n.on(`selectstart.drag`,bn,vn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Sn(e,t){var n=e.document.documentElement,r=K(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,bn,vn),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Cn=e=>()=>e;function wn(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}wn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Tn(e){return!e.ctrlKey&&!e.button}function En(){return this.parentNode}function Dn(e,t){return t??{x:e.x,y:e.y}}function On(){return navigator.maxTouchPoints||`ontouchstart`in this}function kn(){var e=Tn,t=En,n=Dn,r=On,i={},a=fe(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,_n).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(K(n.view).on(`mousemove.drag`,m,vn).on(`mouseup.drag`,h,vn),xn(n.view),yn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(bn(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){K(e.view).on(`mousemove.drag mouseup.drag`,null),Sn(e.view,l),bn(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(yn(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(bn(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(yn(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=gn(l||r,t),p,m,h;if((h=n.call(e,new wn(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=gn(l||a,t),_=o;break}u.call(r,e,new wn(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Cn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Cn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Cn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Cn(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}var An=0,jn=0,Mn=0,Nn=1e3,Pn,Fn,In=0,Ln=0,Rn=0,zn=typeof performance==`object`&&performance.now?performance:Date,Bn=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Vn(){return Ln||=(Bn(Hn),zn.now()+Rn)}function Hn(){Ln=0}function Un(){this._call=this._time=this._next=null}Un.prototype=Wn.prototype={constructor:Un,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Vn():+n)+(t==null?0:+t),!this._next&&Fn!==this&&(Fn?Fn._next=this:Pn=this,Fn=this),this._call=e,this._time=n,Yn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Yn())}};function Wn(e,t,n){var r=new Un;return r.restart(e,t,n),r}function Gn(){Vn(),++An;for(var e=Pn,t;e;)(t=Ln-e._time)>=0&&e._call.call(void 0,t),e=e._next;--An}function Kn(){Ln=(In=zn.now())+Rn,An=jn=0;try{Gn()}finally{An=0,Jn(),Ln=0}}function qn(){var e=zn.now(),t=e-In;t>Nn&&(Rn-=t,In=e)}function Jn(){for(var e,t=Pn,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Pn=n);Fn=e,Yn(r)}function Yn(e){An||(jn&&=clearTimeout(jn),e-Ln>24?(e<1/0&&(jn=setTimeout(Kn,e-zn.now()-Rn)),Mn&&=clearInterval(Mn)):(Mn||=(In=zn.now(),setInterval(qn,Nn)),An=1,Bn(Kn)))}function Xn(e,t,n){var r=new Un;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Zn=fe(`start`,`end`,`cancel`,`interrupt`),Qn=[];function $n(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;rr(e,n,{name:t,index:r,group:i,on:Zn,tween:Qn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function er(e,t){var n=nr(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function tr(e,t){var n=nr(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function nr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function rr(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Wn(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Xn(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(Xn(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function ir(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function ar(e){return this.each(function(){ir(this,e)})}function or(e,t){var n,r;return function(){var i=tr(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function sr(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=tr(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function cr(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=nr(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?or:sr)(n,e,t))}function lr(e,t,n){var r=e._id;return e.each(function(){var e=tr(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return nr(e,r).value[t]}}function ur(e,t){var n;return(typeof t==`number`?o:t instanceof c?i:(n=c(t))?(t=n,i):l)(e,t)}function dr(e){return function(){this.removeAttribute(e)}}function fr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pr(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function mr(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function hr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function gr(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function _r(e,t){var n=ve(e),r=n===`transform`?b:ur;return this.attrTween(e,typeof t==`function`?(n.local?gr:hr)(n,r,lr(this,`attr.`+e,t)):t==null?(n.local?fr:dr)(n):(n.local?mr:pr)(n,r,t))}function vr(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function yr(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function br(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&yr(e,i)),n}return i._value=t,i}function xr(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&vr(e,i)),n}return i._value=t,i}function Sr(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=ve(e);return this.tween(n,(r.local?br:xr)(r,t))}function Cr(e,t){return function(){er(this,e).delay=+t.apply(this,arguments)}}function wr(e,t){return t=+t,function(){er(this,e).delay=t}}function Tr(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Cr:wr)(t,e)):nr(this.node(),t).delay}function Er(e,t){return function(){tr(this,e).duration=+t.apply(this,arguments)}}function Dr(e,t){return t=+t,function(){tr(this,e).duration=t}}function Or(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Er:Dr)(t,e)):nr(this.node(),t).duration}function kr(e,t){if(typeof t!=`function`)throw Error();return function(){tr(this,e).ease=t}}function Ar(e){var t=this._id;return arguments.length?this.each(kr(t,e)):nr(this.node(),t).ease}function jr(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();tr(this,e).ease=n}}function Mr(e){if(typeof e!=`function`)throw Error();return this.each(jr(this._id,e))}function Nr(e){typeof e!=`function`&&(e=Ae(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new ci(r,this._parents,this._name,this._id)}function Pr(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new ci(o,this._parents,this._name,this._id)}function Fr(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function Ir(e,t,n){var r,i,a=Fr(t)?er:tr;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Lr(e,t){var n=this._id;return arguments.length<2?nr(this.node(),n).on.on(e):this.each(Ir(n,e,t))}function Rr(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function zr(){return this.on(`end.remove`,Rr(this._id))}function Br(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ce(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,$n(l[f],t,n,f,l,nr(u,n)));return new ci(a,this._parents,t,n)}function Vr(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=De(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=nr(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&$n(p,t,n,h,f,m);a.push(f),o.push(u)}return new ci(a,o,t,n)}var Hr=pn.prototype.constructor;function Ur(){return new Hr(this._groups,this._parents)}function Wr(e,t){var n,r,i;return function(){var a=bt(this,e),o=(this.style.removeProperty(e),bt(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Gr(e){return function(){this.style.removeProperty(e)}}function Kr(e,t,n){var r,i=n+``,a;return function(){var o=bt(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function qr(e,t,n){var r,i,a;return function(){var o=bt(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),bt(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Jr(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=tr(this,e),l=c.on,u=c.value[a]==null?s||=Gr(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Yr(e,t,n){var r=(e+=``)==`transform`?y:ur;return t==null?this.styleTween(e,Wr(e,r)).on(`end.style.`+e,Gr(e)):typeof t==`function`?this.styleTween(e,qr(e,r,lr(this,`style.`+e,t))).each(Jr(this._id,e)):this.styleTween(e,Kr(e,r,t),n).on(`end.style.`+e,null)}function Xr(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Zr(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Xr(e,a,n)),r}return a._value=t,a}function Qr(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,Zr(e,t,n??``))}function $r(e){return function(){this.textContent=e}}function ei(e){return function(){this.textContent=e(this)??``}}function ti(e){return this.tween(`text`,typeof e==`function`?ei(lr(this,`text`,e)):$r(e==null?``:e+``))}function ni(e){return function(t){this.textContent=e.call(this,t)}}function ri(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&ni(r)),t}return r._value=e,r}function ii(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,ri(e))}function ai(){for(var e=this._name,t=this._id,n=ui(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=nr(c,t);$n(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new ci(r,this._parents,e,n)}function oi(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=tr(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var si=0;function ci(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function li(e){return pn().transition(e)}function ui(){return++si}var di=pn.prototype;ci.prototype=li.prototype={constructor:ci,select:Br,selectAll:Vr,selectChild:di.selectChild,selectChildren:di.selectChildren,filter:Nr,merge:Pr,selection:Ur,transition:ai,call:di.call,nodes:di.nodes,node:di.node,size:di.size,empty:di.empty,each:di.each,on:Lr,attr:_r,attrTween:Sr,style:Yr,styleTween:Qr,text:ti,textTween:ii,remove:zr,tween:cr,delay:Tr,duration:Or,ease:Ar,easeVarying:Mr,end:oi,[Symbol.iterator]:di[Symbol.iterator]};function fi(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var pi={time:null,delay:0,duration:250,ease:fi};function mi(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function hi(e){var t,n;e instanceof ci?(t=e._id,e=e._name):(t=ui(),(n=pi).time=Vn(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&$n(c,e,t,l,o,n||mi(c,t));return new ci(r,this._parents,e,t)}pn.prototype.interrupt=ar,pn.prototype.transition=hi;var gi=e=>()=>e;function _i(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function vi(e,t,n){this.k=e,this.x=t,this.y=n}vi.prototype={constructor:vi,scale:function(e){return e===1?this:new vi(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new vi(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var yi=new vi(1,0,0);bi.prototype=vi.prototype;function bi(e){for(;!e.__zoom;)if(!(e=e.parentNode))return yi;return e.__zoom}function xi(e){e.stopImmediatePropagation()}function Si(e){e.preventDefault(),e.stopImmediatePropagation()}function Ci(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function wi(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Ti(){return this.__zoom||yi}function Ei(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Di(){return navigator.maxTouchPoints||`ontouchstart`in this}function Oi(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function ki(){var e=Ci,t=wi,n=Oi,r=Ei,i=Di,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=T,l=fe(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,Ti).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,E).on(`dblclick.zoom`,D).filter(i).on(`touchstart.zoom`,O).on(`touchmove.zoom`,k).on(`touchend.zoom touchcancel.zoom`,A).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,Ti),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(yi.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new vi(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new vi(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new vi(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=K(this.that).datum();l.call(e,this.that,new _i(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=gn(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],ir(this),s.start();Si(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function E(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=K(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=gn(t,i),l=t.clientX,u=t.clientY;xn(t.view),xi(t),a.mouse=[c,this.__zoom.invert(c)],ir(this),a.start();function d(e){if(Si(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=gn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Sn(e.view,a.moved),Si(e),a.event(e).end()}}function D(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=gn(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Si(r),s>0?K(this).transition().duration(s).call(x,d,c,r):K(this).call(_.transform,d,c,r)}}function O(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(xi(t),s=0;s<i;++s)c=r[s],l=gn(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),ir(this),a.start())}}function k(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(Si(e),s=0;s<a;++s)c=i[s],l=gn(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function A(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(xi(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=gn(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=K(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:gi(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:gi(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:gi(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:gi([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var q={error001:()=>`[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The React Flow parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`},Ai=[[-1/0,-1/0],[1/0,1/0]],ji=[`Enter`,` `,`Escape`],Mi={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},Ni;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Ni||={});var Pi;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Pi||={});var Fi;(function(e){e.Partial=`partial`,e.Full=`full`})(Fi||={});var Ii={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Li;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Li||={});var Ri;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Ri||={});var J;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(J||={});var zi={[J.Left]:J.Right,[J.Right]:J.Left,[J.Top]:J.Bottom,[J.Bottom]:J.Top};function Bi(e){return e===null?null:e?`valid`:`invalid`}var Vi=e=>`id`in e&&`source`in e&&`target`in e,Hi=e=>`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Ui=e=>`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Wi=(e,t=[0,0])=>{let{width:n,height:r}=Ca(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Gi=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:oa(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):Ui(n)?n:t.nodeLookup.get(n.id)),ia(e,i?ca(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),Ki=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=ia(n,ca(e)),r=!0)}),r?oa(n):{x:0,y:0,width:0,height:0}},qi=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s={...ha(t,[n,r,i]),width:t.width/i,height:t.height/i},c=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??null,l=e.height??t.height??t.initialHeight??null,u=ua(s,sa(t)),d=(i??0)*(l??0),f=a&&u>0;(!t.internals.handleBounds||f||u>=d||t.dragging)&&c.push(t)}return c},Ji=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function Yi(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function Xi({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return Promise.resolve(!0);let s=ba(Ki(Yi(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),Promise.resolve(!0)}function Zi({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,q.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&Sa(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=Sa(d)?ea(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,q.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function Qi({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=Ji(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var $i=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),ea=(e={x:0,y:0},t,n)=>({x:$i(e.x,t[0][0],t[1][0]-(n?.width??0)),y:$i(e.y,t[0][1],t[1][1]-(n?.height??0))});function ta(e,t,n){let{width:r,height:i}=Ca(n),{x:a,y:o}=n.internals.positionAbsolute;return ea(e,[[a,o],[a+r,o+i]],t)}var na=(e,t,n)=>e<t?$i(Math.abs(e-t),1,t)/t:e>n?-$i(Math.abs(e-n),1,t)/t:0,ra=(e,t,n=15,r=40)=>[na(e.x,r,t.width-r)*n,na(e.y,r,t.height-r)*n],ia=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),aa=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),oa=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),sa=(e,t=[0,0])=>{let{x:n,y:r}=Ui(e)?e.internals.positionAbsolute:Wi(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},ca=(e,t=[0,0])=>{let{x:n,y:r}=Ui(e)?e.internals.positionAbsolute:Wi(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},la=(e,t)=>oa(ia(aa(e),aa(t))),ua=(e,t)=>{let n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},da=e=>fa(e.width)&&fa(e.height)&&fa(e.x)&&fa(e.y),fa=e=>!isNaN(e)&&isFinite(e),pa=(e,t)=>{},ma=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ha=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?ma(s,o):s},ga=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function _a(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function va(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=_a(e,n),i=_a(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=_a(e.top??e.y??0,n),i=_a(e.bottom??e.y??0,n),a=_a(e.left??e.x??0,t),o=_a(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function ya(e,t,n,r,i,a){let{x:o,y:s}=ga(e,[t,n,r]),{x:c,y:l}=ga({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var ba=(e,t,n,r,i,a)=>{let o=va(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=$i(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=ya(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},xa=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Sa(e){return e!=null&&e!==`parent`}function Ca(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function wa(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Ta(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Ea(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Da(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Oa(e){return{...Mi,...e||{}}}function ka(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Fa(e),s=ha({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?ma(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var Aa=e=>({width:e.offsetWidth,height:e.offsetHeight}),ja=e=>e?.getRootNode?.()||window?.document,Ma=[`INPUT`,`SELECT`,`TEXTAREA`];function Na(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Ma.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Pa=e=>`clientX`in e,Fa=(e,t)=>{let n=Pa(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Ia=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Aa(t)}})};function La({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Ra(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function za({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case J.Left:return[t-Ra(t-r,a),n];case J.Right:return[t+Ra(r-t,a),n];case J.Top:return[t,n-Ra(n-i,a)];case J.Bottom:return[t,n+Ra(i-n,a)]}}function Ba({sourceX:e,sourceY:t,sourcePosition:n=J.Bottom,targetX:r,targetY:i,targetPosition:a=J.Top,curvature:o=.25}){let[s,c]=za({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=za({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=La({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Va({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function Ha({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function Ua({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=ia(ca(e),ca(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),ua({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},oa(a))>0}var Wa=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Ga=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),Ka=(e,t,n={})=>{if(!e.source||!e.target)return q.error006(),t;let r=n.getEdgeId||Wa,i;return i=Vi(e)?{...e}:{...e,id:r(e)},Ga(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function qa({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Va({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Ja={[J.Left]:{x:-1,y:0},[J.Right]:{x:1,y:0},[J.Top]:{x:0,y:-1},[J.Bottom]:{x:0,y:1}},Ya=({source:e,sourcePosition:t=J.Bottom,target:n})=>t===J.Left||t===J.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Xa=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function Za({source:e,sourcePosition:t=J.Bottom,target:n,targetPosition:r=J.Top,center:i,offset:a,stepPosition:o}){let s=Ja[t],c=Ja[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=Ya({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Va({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function Qa(e,t,n,r){let i=Math.min(Xa(e,t)/2,Xa(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function $a({sourceX:e,sourceY:t,sourcePosition:n=J.Bottom,targetX:r,targetY:i,targetPosition:a=J.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=Za({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=Qa(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function eo(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function to(e){let{sourceNode:t,targetNode:n}=e;if(!eo(t)||!eo(n))return null;let r=t.internals.handleBounds||no(t.handles),i=n.internals.handleBounds||no(n.handles),a=io(r?.source??[],e.sourceHandle),o=io(e.connectionMode===Ni.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,q.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||J.Bottom,c=o?.position||J.Top,l=ro(t,a,s),u=ro(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function no(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function ro(e,t,n=J.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??Ca(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case J.Top:return{x:i+o/2,y:a};case J.Right:return{x:i+o,y:a+s/2};case J.Bottom:return{x:i+o/2,y:a+s};case J.Left:return{x:i,y:a+s/2}}}function io(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function ao(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function oo(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=ao(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var so=1e3,co=10,lo={nodeOrigin:[0,0],nodeExtent:Ai,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},uo={...lo,checkEquality:!0};function fo(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function po(e,t,n){let r=fo(lo,n);for(let n of e.values())if(n.parentId)vo(n,e,t,r);else{let e=ea(Wi(n,r.nodeOrigin),Sa(n.extent)?n.extent:r.nodeExtent,Ca(n));n.internals.positionAbsolute=e}}function mo(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function ho(e){return e===`manual`}function go(e,t,n,r={}){let i=fo(uo,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!ho(i.zIndexMode)?so:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=ea(Wi(u,i.nodeOrigin),Sa(u.extent)?u.extent:i.nodeExtent,Ca(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:mo(u,e),z:yo(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&vo(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function _o(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function vo(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=fo(lo,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}_o(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*co),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=bo(e,u,o,s,a&&!ho(c)?so:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function yo(e,t,n){let r=fa(e.zIndex)?e.zIndex:0;return ho(n)?r:r+(e.selected?t:0)}function bo(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=Ca(e),l=Wi(e,n),u=Sa(e.extent)?ea(l,e.extent,c):l,d=ea({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=ta(d,c,t));let f=yo(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function xo(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=la(a.get(n.parentId)?.expandedRect??sa(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=Ca(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function So(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=Aa(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=Sa(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;e.parentId&&e.extent===`parent`?h=ta(h,s,t.get(e.parentId)):m&&(h=ea(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:Ia(`source`,r.nodeElement,p,d,e.id),target:Ia(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&vo(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:sa(g,i)}))}}if(f.length>0){let e=xo(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Co({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r),s=!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2]);return Promise.resolve(s)}function wo(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function To(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;wo(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),wo(`target`,s,c,e,i,o),t.set(r.id,r)}}function Eo(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Eo(n,t):!1}function Do(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Oo(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Eo(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function ko({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Ao({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=ma(a,t);return{x:o.x-a.x,y:o.y-a.y}}function jo({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=K(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?aa(Ki(s)):null,x=v&&l?Ao({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:ma(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=Zi({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=ko({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=ra(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=ka(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Oo(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=ko({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=kn().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=ka(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Fa(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=ka(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=Fa(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=Fa(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!(!d||p)&&(c=!1,d=!1,cancelAnimationFrame(o),s.size>0)){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=ko({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Do(t,`.${g}`,v))&&(!_||Do(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Mo(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())ua(i,sa(e))>0&&r.push(e);return r}var No=250;function Po(e,t,n,r){let i=[],a=1/0,o=Mo(e,n,t+No);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=ro(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Fo(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...ro(o,c,c.position,!0)}:c}function Io(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Lo(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Ro=()=>!0;function zo(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Ro,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=ja(e.target),E=0,D,{x:O,y:k}=Fa(e),A=Io(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Fo(i,A,r,c,t);if(!N)return;let P=Fa(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=ra(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},ee=c.get(i),V={inProgress:!0,isValid:null,from:ro(ee,B,J.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:ee,to:P,toHandle:null,toPosition:zi[B.position],toNode:null,pointer:P};function H(){M=!0,y(V),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&H();function te(e){if(!M){let{x:t,y:n}=Fa(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;H()}if(!x()||!B){U(e);return}let a=b();P=Fa(e,j),D=Po(ha(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=Bo(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=Lo(!!D,s.isValid);let u=c.get(i),f=u?ro(u,B,J.Left,!0):V.from,p={...V,from:f,isValid:L,to:s.toHandle&&L?ga({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:zi[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),V=p}function U(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=V,r={...n,toPosition:V.toHandle?V.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,te),T.removeEventListener(`mouseup`,U),T.removeEventListener(`touchmove`,te),T.removeEventListener(`touchend`,U)}}T.addEventListener(`mousemove`,te),T.addEventListener(`mouseup`,U),T.addEventListener(`touchmove`,te),T.addEventListener(`touchend`,U)}function Bo(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Ro,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Fa(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Io(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Ni.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Fo(t,e,a,u,n,!0)}return _}var Vo={onPointerDown:zo,isValid:Bo};function Ho({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=K(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&xa()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=ki().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:gn}}var Uo=e=>({x:e.x,y:e.y,zoom:e.k}),Wo=({x:e,y:t,zoom:n})=>yi.translate(e,t).scale(n),Go=(e,t)=>e.target.closest(`.${t}`),Ko=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),qo=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Jo=(e,t=0,n=qo,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Yo=e=>{let t=e.ctrlKey&&xa()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Xo({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(Go(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=gn(u),t=d*2**Yo(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Pi.Vertical?0:u.deltaX*f,m=i===Pi.Horizontal?0:u.deltaY*f;!xa()&&u.shiftKey&&i!==Pi.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Uo(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(u,h),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(u,h))}}function Zo({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Go(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function Qo({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Uo(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function $o({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Ko(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Uo(a.transform))}}function es({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Ko(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Uo(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function ts({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(Go(d,`${l}-flow__node`)||Go(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||Go(d,s)&&m||Go(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function ns({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:c,onDraggingChange:l}){let u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=ki().scaleExtent([t,n]).translateExtent(r),p=K(e).call(f);y({x:i.x,y:i.y,zoom:$i(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Yo);function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?s:T).transform(Jo(p,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:s,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!u.isZoomingOrPanning&&v();let O=i&&!S&&!r;f.clickDistance(D?1/0:!fa(E)||E<0?0:E);let k=O?Xo({zoomPanValues:u,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:c}):Zo({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});if(p.on(`wheel.zoom`,k,{passive:!1}),!r){let e=Qo({zoomPanValues:u,onDraggingChange:l,onPanZoomStart:o});f.on(`start`,e);let t=$o({zoomPanValues:u,panOnDrag:s,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,t);let r=es({zoomPanValues:u,panOnDrag:s,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:c,onDraggingChange:l});f.on(`end`,r)}let A=ts({zoomActivationKeyPressed:S,panOnDrag:s,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});f.filter(A),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Wo(e),i=f?.constrain()(r,t,n);return i&&await g(i),new Promise(e=>e(i))}async function b(e,t){let n=Wo(e);return await g(n,t),new Promise(e=>e(n))}function x(e){if(p){let t=Wo(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?bi(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?s:T).scaleTo(Jo(p,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?s:T).scaleBy(Jo(p,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function E(e){f?.scaleExtent(e)}function D(e){f?.translateExtent(e)}function O(e){let t=!fa(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:E,setTranslateExtent:D,syncViewport:x,setClickDistance:O}}var rs;(function(e){e.Line=`line`,e.Handle=`handle`})(rs||={});function is({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function as(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function os(e,t){return Math.max(0,t-e)}function ss(e,t){return Math.max(0,e-t)}function cs(e,t,n){return Math.max(0,t-e,e-n)}function ls(e,t){return e?!t:t}function us(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=cs(E,h,g),j=cs(D,_,v);if(o){let e=0,t=0;c&&w<0?e=os(y+w+O,o[0][0]):!c&&w>0&&(e=ss(y+E+O,o[1][0])),l&&T<0?t=os(b+T+k,o[0][1]):!l&&T>0&&(t=ss(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=ss(y+w,s[0][0]):!c&&w<0&&(e=os(y+E,s[1][0])),l&&T>0?t=ss(b+T,s[0][1]):!l&&T<0&&(t=os(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=cs(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?ss(b+k+E/C,o[1][1])*C:os(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?os(b+E/C,s[1][1])*C:ss(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=cs(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?ss(y+D*C+O,o[1][0])/C:os(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?os(y+D*C,s[1][0])/C:ss(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(ls(c,l)?-w:w)/C:w=(ls(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var ds={width:0,height:0,x:0,y:0},fs={...ds,pointerX:0,pointerY:0,aspectRatio:1};function ps(e){return[[0,0],[e.measured.width,e.measured.height]]}function ms(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function hs({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=K(e),o={controlDirection:as(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...ds},h={...fs};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:as(e)};let g,_=null,v=[],y,b,x,S=!1,C=kn().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=ka(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId),b=y&&g.extent===`parent`?ps(y):void 0),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=ms(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=ka(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=us(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,h.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,h.y-=T.y-t)}let F=is({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),I={...m,direction:F};p?.(e,I)!==!1&&(S=!0,d?.(e,I),r(T,l))}).on(`end`,e=>{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var gs=n((e=>{var n=t(),r=d();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=r.useSyncExternalStore,s=n.useRef,c=n.useEffect,l=n.useMemo,u=n.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),_s=e(n(((e,t)=>{t.exports=gs()}))(),1),vs=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},ys=e=>e?vs(e):vs,{useDebugValue:bs}=E.default,{useSyncExternalStoreWithSelector:xs}=_s.default,Ss=e=>e;function Cs(e,t=Ss,n){let r=xs(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return bs(r),r}var ws=(e,t)=>{let n=ys(e),r=(e,r=t)=>Cs(n,e,r);return Object.assign(r,n),r},Ts=(e,t)=>e?ws(e,t):ws;function Y(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}a();var Es=(0,E.createContext)(null),Ds=Es.Provider,Os=q.error001();function X(e,t){let n=(0,E.useContext)(Es);if(n===null)throw Error(Os);return Cs(n,e,t)}function Z(){let e=(0,E.useContext)(Es);if(e===null)throw Error(Os);return(0,E.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var ks={display:`none`},As={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},js=`react-flow__node-desc`,Ms=`react-flow__edge-desc`,Ns=`react-flow__aria-live`,Ps=e=>e.ariaLiveMessage,Fs=e=>e.ariaLabelConfig;function Is({rfId:e}){let t=X(Ps);return(0,N.jsx)(`div`,{id:`${Ns}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:As,children:t})}function Ls({rfId:e,disableKeyboardA11y:t}){let n=X(Fs);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`div`,{id:`${js}-${e}`,style:ks,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,N.jsx)(`div`,{id:`${Ms}-${e}`,style:ks,children:n[`edge.a11yDescription.default`]}),!t&&(0,N.jsx)(Is,{rfId:e})]})}var Rs=(0,E.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,N.jsx)(`div`,{className:W([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));Rs.displayName=`Panel`;function zs({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,N.jsx)(Rs,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev`,children:(0,N.jsx)(`a`,{href:`https://reactflow.dev`,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Bs=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Vs=e=>e.id;function Hs(e,t){return Y(e.selectedNodes.map(Vs),t.selectedNodes.map(Vs))&&Y(e.selectedEdges.map(Vs),t.selectedEdges.map(Vs))}function Us({onSelectionChange:e}){let t=Z(),{selectedNodes:n,selectedEdges:r}=X(Bs,Hs);return(0,E.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Ws=e=>!!e.onSelectionChangeHandlers;function Gs({onSelectionChange:e}){let t=X(Ws);return e||t?(0,N.jsx)(Us,{onSelectionChange:e}):null}var Ks=typeof window<`u`?E.useLayoutEffect:E.useEffect,qs=[0,0],Js={x:0,y:0,zoom:1},Ys=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],Xs=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Zs={translateExtent:Ai,nodeOrigin:qs,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Qs(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=X(Xs,Y),l=Z();Ks(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=Zs,s()}),[]);let u=(0,E.useRef)(Zs);return Ks(()=>{for(let s of Ys){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Oa(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Ys.map(t=>e[t])),null}function $s(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function ec(e){let[t,n]=(0,E.useState)(e===`system`?null:e);return(0,E.useEffect)(()=>{if(e!==`system`){n(e);return}let t=$s(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?$s()?.matches?`dark`:`light`:t}var tc=typeof document<`u`?document:null;function nc(e=null,t={target:tc,actInsideInputWithModifier:!0}){let[n,r]=(0,E.useState)(!1),i=(0,E.useRef)(!1),a=(0,E.useRef)(new Set([])),[o,s]=(0,E.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
|
|
7
|
-
`).replace(`
|
|
8
|
-
|
|
9
|
-
`,`
|
|
10
|
-
+`).split(`
|
|
11
|
-
`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,E.useEffect)(()=>{let n=t?.target??tc,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&Na(e))return!1;let n=ic(e.code,s);if(a.current.add(e[n]),rc(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=ic(e.code,s);rc(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function rc(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function ic(e,t){return t.includes(e)?`code`:`key`}var ac=()=>{let e=Z();return(0,E.useMemo)(()=>({zoomIn:t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):Promise.resolve(!1)},zoomOut:t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):Promise.resolve(!1)},zoomTo:(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=ba(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return ha(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=ga(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function oc(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)sc(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function sc(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function cc(e,t){return oc(e,t)}function lc(e,t){return oc(e,t)}function uc(e,t){return{id:e,type:`select`,selected:t}}function dc(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(uc(a.id,e)))}return r}function fc({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function pc(e){return{id:e.id,type:`remove`}}var mc=e=>Hi(e),hc=e=>Vi(e);function gc(e){return(0,E.forwardRef)(e)}function _c(e){let[t,n]=(0,E.useState)(BigInt(0)),[r]=(0,E.useState)(()=>vc(()=>n(e=>e+BigInt(1))));return Ks(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function vc(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var yc=(0,E.createContext)(null);function bc({children:e}){let t=Z(),n=_c((0,E.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=fc({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=_c((0,E.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(fc({items:s,lookup:o}))},[])),i=(0,E.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,N.jsx)(yc.Provider,{value:i,children:e})}function xc(){let e=(0,E.useContext)(yc);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Sc=e=>!!e.panZoom;function Cc(){let e=ac(),t=Z(),n=xc(),r=X(Sc),i=(0,E.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=mc(e)?e:n.get(e.id),a=i.parentId?Ta(i.position,i.measured,i.parentId,n,r):i.position;return sa({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&mc(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&hc(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await Qi({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(pc);o?.(f),c(e)}if(m){let e=d.map(pc);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=da(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=sa(s?r:a),l=ua(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=da(e)?e:a(e);if(!r)return!1;let i=ua(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return Gi(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??Da();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,E.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var wc=e=>e.selected,Tc=typeof window<`u`?window:void 0;function Ec({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Z(),{deleteElements:r}=Cc(),i=nc(e,{actInsideInputWithModifier:!1}),a=nc(t,{target:Tc});(0,E.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(wc),edges:e.filter(wc)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,E.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Dc(e){let t=Z();(0,E.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=Aa(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,q.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Oc={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},kc=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Ac({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=Pi.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:_,isControlledViewport:v,paneClickDistance:y,selectionOnDrag:b}){let x=Z(),S=(0,E.useRef)(null),{userSelectionActive:C,lib:w,connectionInProgress:T}=X(kc,Y),D=nc(f),O=(0,E.useRef)();Dc(S);let k=(0,E.useCallback)(e=>{_?.({x:e[0],y:e[1],zoom:e[2]}),v||x.setState({transform:e})},[_,v]);return(0,E.useEffect)(()=>{if(S.current){O.current=ns({domNode:S.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>x.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=x.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=x.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=x.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=O.current.getViewport();return x.setState({panZoom:O.current,transform:[e,t,n],domNode:S.current.closest(`.react-flow`)}),()=>{O.current?.destroy()}}},[]),(0,E.useEffect)(()=>{O.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:D,preventScrolling:p,noPanClassName:g,userSelectionActive:C,noWheelClassName:h,lib:w,onTransformChange:k,connectionInProgress:T,selectionOnDrag:b,paneClickDistance:y})},[e,t,n,r,i,a,o,s,D,p,g,C,h,w,k,T,b,y]),(0,N.jsx)(`div`,{className:`react-flow__renderer`,ref:S,style:Oc,children:m})}var jc=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Mc(){let{userSelectionActive:e,userSelectionRect:t}=X(jc,Y);return e&&t?(0,N.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Nc=(e,t)=>n=>{n.target===t.current&&e?.(n)},Pc=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function Fc({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Fi.Full,panOnDrag:r,paneClickDistance:i,selectionOnDrag:a,onSelectionStart:o,onSelectionEnd:s,onPaneClick:c,onPaneContextMenu:l,onPaneScroll:u,onPaneMouseEnter:d,onPaneMouseMove:f,onPaneMouseLeave:p,children:m}){let h=Z(),{userSelectionActive:g,elementsSelectable:_,dragging:v,connectionInProgress:y}=X(Pc,Y),b=_&&(e||g),x=(0,E.useRef)(null),S=(0,E.useRef)(),C=(0,E.useRef)(new Set),w=(0,E.useRef)(new Set),T=(0,E.useRef)(!1),D=e=>{if(T.current||y){T.current=!1;return}c?.(e),h.getState().resetSelectedElements(),h.setState({nodesSelectionActive:!1})},O=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}l?.(e)},k=u?e=>u(e):void 0;return(0,N.jsxs)(`div`,{className:W([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:v,selection:e}]),onClick:b?void 0:Nc(D,x),onContextMenu:Nc(O,x),onWheel:Nc(k,x),onPointerEnter:b?void 0:d,onPointerMove:b?e=>{let{userSelectionRect:r,transform:a,nodeLookup:s,edgeLookup:c,connectionLookup:l,triggerNodeChanges:u,triggerEdgeChanges:d,defaultEdgeOptions:f,resetSelectedElements:p}=h.getState();if(!S.current||!r)return;let{x:m,y:g}=Fa(e.nativeEvent,S.current),{startX:_,startY:v}=r;if(!T.current){let n=t?0:i;if(Math.hypot(m-_,g-v)<=n)return;p(),o?.(e)}T.current=!0;let y={startX:_,startY:v,x:m<_?m:_,y:g<v?g:v,width:Math.abs(m-_),height:Math.abs(g-v)},b=C.current,x=w.current;C.current=new Set(qi(s,y,a,n===Fi.Partial,!0).map(e=>e.id)),w.current=new Set;let E=f?.selectable??!0;for(let e of C.current){let t=l.get(e);if(t)for(let{edgeId:e}of t.values()){let t=c.get(e);t&&(t.selectable??E)&&w.current.add(e)}}Ea(b,C.current)||u(dc(s,C.current,!0)),Ea(x,w.current)||d(dc(c,w.current)),h.setState({userSelectionRect:y,userSelectionActive:!0,nodesSelectionActive:!1})}:f,onPointerUp:b?e=>{e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!g&&e.target===x.current&&h.getState().userSelectionRect&&D?.(e),h.setState({userSelectionActive:!1,userSelectionRect:null}),T.current&&(s?.(e),h.setState({nodesSelectionActive:C.current.size>0})))}:void 0,onPointerDownCapture:b?n=>{let{domNode:r}=h.getState();if(S.current=r?.getBoundingClientRect(),!S.current)return;let i=n.target===x.current;if(!i&&n.target.closest(`.nokey`)||!e||!(a&&i||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),T.current=!1;let{x:o,y:s}=Fa(n.nativeEvent,S.current);h.setState({userSelectionRect:{width:0,height:0,startX:o,startY:s,x:o,y:s}}),i||(n.stopPropagation(),n.preventDefault())}:void 0,onClickCapture:b?e=>{T.current&&=(e.stopPropagation(),!1)}:void 0,onPointerLeave:p,ref:x,style:Oc,children:[m,(0,N.jsx)(Mc,{})]})}function Ic({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,q.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Lc({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=Z(),[c,l]=(0,E.useState)(!1),u=(0,E.useRef)();return(0,E.useEffect)(()=>{u.current=jo({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Ic({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}})},[]),(0,E.useEffect)(()=>{if(!(t||!e.current||!u.current))return u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o}),()=>{u.current?.destroy()}},[n,r,t,a,e,i,o]),c}var Rc=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function zc(){let e=Z();return(0,E.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=Rc(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=ma(t,i));let{position:a,positionAbsolute:s}=Zi({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Bc=(0,E.createContext)(null),Vc=Bc.Provider;Bc.Consumer;var Hc=()=>(0,E.useContext)(Bc),Uc=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Wc=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o,u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===Ni.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function Gc({type:e=`source`,position:t=J.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=Z(),_=Hc(),{connectOnClick:v,noPanClassName:y,rfId:b}=X(Uc,Y),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=X(Wc(_,m,e),Y);_||g.getState().onError?.(`010`,q.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t}=g.getState();t(Ka(i,e))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=Pa(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Vo.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)},A=t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=ja(t.target),h=n||c,{connection:v,isValid:y}=Vo.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})};return(0,N.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:W([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?A:void 0,ref:p,...f,children:c})}var Kc=(0,E.memo)(gc(Gc));function qc({data:e,isConnectable:t,sourcePosition:n=J.Bottom}){return(0,N.jsxs)(N.Fragment,{children:[e?.label,(0,N.jsx)(Kc,{type:`source`,position:n,isConnectable:t})]})}function Jc({data:e,isConnectable:t,targetPosition:n=J.Top,sourcePosition:r=J.Bottom}){return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(Kc,{type:`target`,position:n,isConnectable:t}),e?.label,(0,N.jsx)(Kc,{type:`source`,position:r,isConnectable:t})]})}function Yc(){return null}function Xc({data:e,isConnectable:t,targetPosition:n=J.Top}){return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(Kc,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Zc={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Qc={input:qc,default:Jc,output:Xc,group:Yc};function $c(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var el=e=>{let{width:t,height:n,x:r,y:i}=Ki(e.nodeLookup,{filter:e=>!!e.selected});return{width:fa(t)?t:null,height:fa(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function tl({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Z(),{width:i,height:a,transformString:o,userSelectionActive:s}=X(el,Y),c=zc(),l=(0,E.useRef)(null);(0,E.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Lc({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,N.jsx)(`div`,{className:W([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,N.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(Zc,e.key)&&(e.preventDefault(),c({direction:Zc[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var nl=typeof window<`u`?window:void 0,rl=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function il({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,defaultViewport:T,translateExtent:E,minZoom:D,maxZoom:O,preventScrolling:k,onSelectionContextMenu:A,noWheelClassName:j,noPanClassName:M,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:L,userSelectionActive:R}=X(rl,Y),z=nc(l,{target:nl}),B=nc(h,{target:nl}),ee=B||w,V=B||b,H=u&&ee!==!0,te=z||R||H;return Ec({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,N.jsx)(Ac,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:V,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!z&&ee,defaultViewport:T,translateExtent:E,minZoom:D,maxZoom:O,zoomActivationKeyCode:g,preventScrolling:k,noWheelClassName:j,noPanClassName:M,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:H,children:(0,N.jsxs)(Fc,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:ee,isSelecting:!!te,selectionMode:d,selectionKeyPressed:z,paneClickDistance:s,selectionOnDrag:H,children:[e,L&&(0,N.jsx)(tl,{onSelectionContextMenu:A,noPanClassName:M,disableKeyboardA11y:P})]})})}il.displayName=`FlowRenderer`;var al=(0,E.memo)(il),ol=e=>t=>e?qi(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function sl(e){return X((0,E.useCallback)(ol(e),[e]),Y)}var cl=e=>e.updateNodeInternals;function ll(){let e=X(cl),[t]=(0,E.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,E.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function ul({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=Z(),a=(0,E.useRef)(null),o=(0,E.useRef)(null),s=(0,E.useRef)(e.sourcePosition),c=(0,E.useRef)(e.targetPosition),l=(0,E.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,E.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,E.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,E.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function dl({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=X(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},Y),S=y.type||`default`,C=g?.[S]||Qc[S];C===void 0&&(v?.(`003`,q.error003(S)),S=`default`,C=g?.default||Qc.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=Z(),k=wa(y),A=ul({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=Lc({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=zc();if(y.hidden)return null;let P=Ca(y),F=$c(y),I=T||w||t||n||r||i,L=n?e=>n(e,{...b.userNode}):void 0,R=r?e=>r(e,{...b.userNode}):void 0,z=i?e=>i(e,{...b.userNode}):void 0,B=a?e=>a(e,{...b.userNode}):void 0,ee=o?e=>o(e,{...b.userNode}):void 0,V=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&Ic({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},H=t=>{if(!(Na(t.nativeEvent)||m)){if(ji.includes(t.key)&&T)Ic({id:e,store:O,unselect:t.key===`Escape`,nodeRef:A});else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(Zc,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:Zc[t.key],factor:t.shiftKey?4:1})}}},te=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(qi(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+P.width/2,y.position.y+P.height/2,{zoom:t[2]}))};return(0,N.jsx)(`div`,{className:W([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:I?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...F},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:R,onMouseLeave:z,onContextMenu:B,onClick:V,onDoubleClick:ee,onKeyDown:D?H:void 0,tabIndex:D?0:void 0,onFocus:D?te:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${js}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,N.jsx)(Vc,{value:e,children:(0,N.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...P})})})}var fl=(0,E.memo)(dl),pl=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function ml(e){let{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:a}=X(pl,Y),o=sl(e.onlyRenderVisibleElements),s=ll();return(0,N.jsx)(`div`,{className:`react-flow__nodes`,style:Oc,children:o.map(o=>(0,N.jsx)(fl,{id:o,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:s,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:a},o))})}ml.displayName=`NodeRenderer`;var hl=(0,E.memo)(ml);function gl(e){return X((0,E.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Ua({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),Y)}var _l=({color:e=`none`,strokeWidth:t=1})=>(0,N.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),vl=({color:e=`none`,strokeWidth:t=1})=>(0,N.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),yl={[Ri.Arrow]:_l,[Ri.ArrowClosed]:vl};function bl(e){let t=Z();return(0,E.useMemo)(()=>Object.prototype.hasOwnProperty.call(yl,e)?yl[e]:(t.getState().onError?.(`009`,q.error009(e)),null),[e])}var xl=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=bl(t);return c?(0,N.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,N.jsx)(c,{color:n,strokeWidth:o})}):null},Sl=({defaultColor:e,rfId:t})=>{let n=X(e=>e.edges),r=X(e=>e.defaultEdgeOptions),i=(0,E.useMemo)(()=>oo(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,N.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,N.jsx)(`defs`,{children:i.map(e=>(0,N.jsx)(xl,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Sl.displayName=`MarkerDefinitions`;var Cl=(0,E.memo)(Sl);function wl({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,E.useState)({x:1,y:0,width:0,height:0}),p=W([`react-flow__edge-textwrapper`,l]),m=(0,E.useRef)(null);return(0,E.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,N.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,N.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,N.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}wl.displayName=`EdgeText`;var Tl=(0,E.memo)(wl);function El({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`path`,{...u,d:e,fill:`none`,className:W([`react-flow__edge-path`,u.className])}),l?(0,N.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&fa(t)&&fa(n)?(0,N.jsx)(Tl,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Dl({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===J.Left||e===J.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Ol({sourceX:e,sourceY:t,sourcePosition:n=J.Bottom,targetX:r,targetY:i,targetPosition:a=J.Top}){let[o,s]=Dl({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Dl({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=La({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function kl(e){return(0,E.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=Ol({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,N.jsx)(El,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Al=kl({isInternal:!1}),jl=kl({isInternal:!0});Al.displayName=`SimpleBezierEdge`,jl.displayName=`SimpleBezierEdgeInternal`;function Ml(e){return(0,E.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=J.Bottom,targetPosition:m=J.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=$a({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,N.jsx)(El,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Nl=Ml({isInternal:!1}),Pl=Ml({isInternal:!0});Nl.displayName=`SmoothStepEdge`,Pl.displayName=`SmoothStepEdgeInternal`;function Fl(e){return(0,E.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,N.jsx)(Nl,{...n,id:r,pathOptions:(0,E.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Il=Fl({isInternal:!1}),Ll=Fl({isInternal:!0});Il.displayName=`StepEdge`,Ll.displayName=`StepEdgeInternal`;function Rl(e){return(0,E.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=qa({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,N.jsx)(El,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var zl=Rl({isInternal:!1}),Bl=Rl({isInternal:!0});zl.displayName=`StraightEdge`,Bl.displayName=`StraightEdgeInternal`;function Vl(e){return(0,E.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=J.Bottom,targetPosition:s=J.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Ba({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,N.jsx)(El,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var Hl=Vl({isInternal:!1}),Ul=Vl({isInternal:!0});Hl.displayName=`BezierEdge`,Ul.displayName=`BezierEdgeInternal`;var Wl={default:Ul,straight:Bl,step:Ll,smoothstep:Pl,simplebezier:jl},Gl={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Kl=(e,t,n)=>n===J.Left?e-t:n===J.Right?e+t:e,ql=(e,t,n)=>n===J.Top?e-t:n===J.Bottom?e+t:e,Jl=`react-flow__edgeupdater`;function Yl({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,N.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:W([Jl,`${Jl}-${s}`]),cx:Kl(t,r,e),cy:ql(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function Xl({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=Z(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Vo.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,N.jsxs)(N.Fragment,{children:[(e===!0||e===`source`)&&(0,N.jsx)(Yl,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,N.jsx)(Yl,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Zl({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let y=X(t=>t.edgeLookup.get(e)),b=X(e=>e.defaultEdgeOptions);y=b?{...b,...y}:y;let x=y.type||`default`,S=h?.[x]||Wl[x];S===void 0&&(_?.(`011`,q.error011(x)),x=`default`,S=h?.default||Wl.default);let C=!!(y.focusable||t&&y.focusable===void 0),w=d!==void 0&&(y.reconnectable||n&&y.reconnectable===void 0),T=!!(y.selectable||r&&y.selectable===void 0),D=(0,E.useRef)(null),[O,k]=(0,E.useState)(!1),[A,j]=(0,E.useState)(!1),M=Z(),{zIndex:P,sourceX:F,sourceY:I,targetX:L,targetY:R,sourcePosition:z,targetPosition:B}=X((0,E.useCallback)(t=>{let n=t.nodeLookup.get(y.source),r=t.nodeLookup.get(y.target);if(!n||!r)return{zIndex:y.zIndex,...Gl};let i=to({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_});return{zIndex:Ha({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode}),...i||Gl}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Y),ee=(0,E.useMemo)(()=>y.markerStart?`url('#${ao(y.markerStart,m)}')`:void 0,[y.markerStart,m]),V=(0,E.useMemo)(()=>y.markerEnd?`url('#${ao(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||F===null||I===null||L===null||R===null)return null;let H=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=M.getState();T&&(M.setState({nodesSelectionActive:!1}),y.selected&&a?(r({nodes:[],edges:[y]}),D.current?.blur()):n([e])),i&&i(t,y)},te=a?e=>{a(e,{...y})}:void 0,U=o?e=>{o(e,{...y})}:void 0,ne=s?e=>{s(e,{...y})}:void 0,re=c?e=>{c(e,{...y})}:void 0,ie=l?e=>{l(e,{...y})}:void 0;return(0,N.jsx)(`svg`,{style:{zIndex:P},children:(0,N.jsxs)(`g`,{className:W([`react-flow__edge`,`react-flow__edge-${x}`,y.className,g,{selected:y.selected,animated:y.animated,inactive:!T&&!i,updating:O,selectable:T}]),onClick:H,onDoubleClick:te,onContextMenu:U,onMouseEnter:ne,onMouseMove:re,onMouseLeave:ie,onKeyDown:C?t=>{if(!v&&ji.includes(t.key)&&T){let{unselectNodesAndEdges:n,addSelectedEdges:r}=M.getState();t.key===`Escape`?(D.current?.blur(),n({edges:[y]})):r([e])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${Ms}-${m}`:void 0,ref:D,...y.domAttributes,children:[!A&&(0,N.jsx)(S,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:T,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:F,sourceY:I,targetX:L,targetY:R,sourcePosition:z,targetPosition:B,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:ee,markerEnd:V,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),w&&(0,N.jsx)(Xl,{edge:y,isReconnectable:w,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:F,sourceY:I,targetX:L,targetY:R,sourcePosition:z,targetPosition:B,setUpdateHover:k,setReconnecting:j})]})})}var Ql=(0,E.memo)(Zl),$l=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function eu({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=X($l,Y),b=gl(t);return(0,N.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,N.jsx)(Cl,{defaultColor:e,rfId:n}),b.map(e=>(0,N.jsx)(Ql,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}eu.displayName=`EdgeRenderer`;var tu=(0,E.memo)(eu),nu=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function ru({children:e}){return(0,N.jsx)(`div`,{className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:X(nu)},children:e})}function iu(e){let t=Cc(),n=(0,E.useRef)(!1);(0,E.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var au=e=>e.panZoom?.syncViewport;function ou(e){let t=X(au),n=Z();return(0,E.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function su(e){return e.connection.inProgress?{...e.connection,to:ha(e.connection.to,e.transform)}:{...e.connection}}function cu(e){return e?t=>e(su(t)):su}function lu(e){return X(cu(e),Y)}var uu=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function du({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=X(uu,Y);return a&&i&&c?(0,N.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,N.jsx)(`g`,{className:W([`react-flow__connection`,Bi(s)]),children:(0,N.jsx)(fu,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var fu=({style:e,type:t=Li.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=lu();if(!i)return;if(n)return(0,N.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Bi(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Li.Bezier:[m]=Ba(h);break;case Li.SimpleBezier:[m]=Ol(h);break;case Li.Step:[m]=$a({...h,borderRadius:0});break;case Li.SmoothStep:[m]=$a(h);break;default:[m]=qa(h)}return(0,N.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};fu.displayName=`ConnectionLine`;var pu={};function mu(e=pu){(0,E.useRef)(e),Z(),(0,E.useEffect)(()=>{},[e])}function hu(){Z(),(0,E.useRef)(!1),(0,E.useEffect)(()=>{},[])}function gu({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:P,zoomOnPinch:F,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:R,zoomOnDoubleClick:z,panOnDrag:B,onPaneClick:ee,onPaneMouseEnter:V,onPaneMouseMove:H,onPaneMouseLeave:te,onPaneScroll:U,onPaneContextMenu:ne,paneClickDistance:re,nodeClickDistance:ie,onEdgeContextMenu:ae,onEdgeMouseEnter:oe,onEdgeMouseMove:se,onEdgeMouseLeave:ce,reconnectRadius:le,onReconnect:ue,onReconnectStart:W,onReconnectEnd:de,noDragClassName:fe,noWheelClassName:pe,noPanClassName:me,disableKeyboardA11y:he,nodeExtent:ge,rfId:_e,viewport:ve,onViewportChange:ye}){return mu(e),mu(t),hu(),iu(n),ou(ve),(0,N.jsx)(al,{onPaneClick:ee,onPaneMouseEnter:V,onPaneMouseMove:H,onPaneMouseLeave:te,onPaneContextMenu:ne,onPaneScroll:U,paneClickDistance:re,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:P,zoomOnPinch:F,zoomOnDoubleClick:z,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:R,panOnDrag:B,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:fe,noWheelClassName:pe,noPanClassName:me,disableKeyboardA11y:he,onViewportChange:ye,isControlledViewport:!!ve,children:(0,N.jsxs)(ru,{children:[(0,N.jsx)(tu,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ue,onReconnectStart:W,onReconnectEnd:de,onlyRenderVisibleElements:T,onEdgeContextMenu:ae,onEdgeMouseEnter:oe,onEdgeMouseMove:se,onEdgeMouseLeave:ce,reconnectRadius:le,defaultMarkerColor:M,noPanClassName:me,disableKeyboardA11y:he,rfId:_e}),(0,N.jsx)(du,{style:h,type:m,component:g,containerStyle:_}),(0,N.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,N.jsx)(hl,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ie,onlyRenderVisibleElements:T,noPanClassName:me,noDragClassName:fe,disableKeyboardA11y:he,nodeExtent:ge,rfId:_e}),(0,N.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}gu.displayName=`GraphView`;var _u=(0,E.memo)(gu),vu=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??Ai;To(h,g,_);let{nodesInitialized:x}=go(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=ba(Ki(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Ai,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Ni.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Ii},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:pa,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Mi,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},yu=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>Ts((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await Xi({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...vu({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=go(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();To(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=So(e,n,r,i,a,o,l);d&&(po(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=ro(e,o.fromHandle,J.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=xo(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(cc(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(lc(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>uc(e,!0)));return}i(dc(r,new Set([...e]),!0)),a(dc(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>uc(e,!0)));return}a(dc(n,new Set([...e]))),i(dc(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(uc(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(uc(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,uc(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,uc(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(go(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return Co({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return Promise.resolve(!1);let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{p({connection:{...Ii}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...vu()})}},Object.is);function bu({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,E.useState)(()=>yu({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,N.jsx)(Ds,{value:m,children:(0,N.jsx)(bc,{children:p})})}function xu({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,E.useContext)(Es)?(0,N.jsx)(N.Fragment,{children:e}):(0,N.jsx)(bu,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var Su={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function Cu({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onSelectionChange:A,onSelectionDragStart:j,onSelectionDrag:M,onSelectionDragStop:P,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:L,onBeforeDelete:R,connectionMode:z,connectionLineType:B=Li.Bezier,connectionLineStyle:ee,connectionLineComponent:V,connectionLineContainerStyle:H,deleteKeyCode:te=`Backspace`,selectionKeyCode:U=`Shift`,selectionOnDrag:ne=!1,selectionMode:re=Fi.Full,panActivationKeyCode:ie=`Space`,multiSelectionKeyCode:ae=xa()?`Meta`:`Control`,zoomActivationKeyCode:oe=xa()?`Meta`:`Control`,snapToGrid:se,snapGrid:ce,onlyRenderVisibleElements:le=!1,selectNodesOnDrag:ue,nodesDraggable:de,autoPanOnNodeFocus:fe,nodesConnectable:pe,nodesFocusable:me,nodeOrigin:he=qs,edgesFocusable:ge,edgesReconnectable:_e,elementsSelectable:ve=!0,defaultViewport:ye=Js,minZoom:be=.5,maxZoom:xe=2,translateExtent:Se=Ai,preventScrolling:Ce=!0,nodeExtent:we,defaultMarkerColor:Te=`#b1b1b7`,zoomOnScroll:Ee=!0,zoomOnPinch:De=!0,panOnScroll:Oe=!1,panOnScrollSpeed:ke=.5,panOnScrollMode:Ae=Pi.Free,zoomOnDoubleClick:je=!0,panOnDrag:Me=!0,onPaneClick:Ne,onPaneMouseEnter:Pe,onPaneMouseMove:Fe,onPaneMouseLeave:Ie,onPaneScroll:Le,onPaneContextMenu:Re,paneClickDistance:ze=1,nodeClickDistance:Be=0,children:Ve,onReconnect:He,onReconnectStart:Ue,onReconnectEnd:We,onEdgeContextMenu:Ge,onEdgeDoubleClick:Ke,onEdgeMouseEnter:qe,onEdgeMouseMove:Je,onEdgeMouseLeave:Ye,reconnectRadius:Xe=10,onNodesChange:Ze,onEdgesChange:Qe,noDragClassName:$e=`nodrag`,noWheelClassName:et=`nowheel`,noPanClassName:tt=`nopan`,fitView:nt,fitViewOptions:rt,connectOnClick:it,attributionPosition:at,proOptions:ot,defaultEdgeOptions:st,elevateNodesOnSelect:ct=!0,elevateEdgesOnSelect:lt=!1,disableKeyboardA11y:ut=!1,autoPanOnConnect:dt,autoPanOnNodeDrag:ft,autoPanSpeed:pt,connectionRadius:mt,isValidConnection:ht,onError:gt,style:_t,id:vt,nodeDragThreshold:yt,connectionDragThreshold:bt,viewport:xt,onViewportChange:St,width:Ct,height:wt,colorMode:Tt=`light`,debug:Et,onScroll:Dt,ariaLabelConfig:Ot,zIndexMode:kt=`basic`,...At},jt){let Mt=vt||`1`,Nt=ec(Tt),Pt=(0,E.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Dt?.(e)},[Dt]);return(0,N.jsx)(`div`,{"data-testid":`rf__wrapper`,...At,onScroll:Pt,style:{..._t,...Su},ref:jt,className:W([`react-flow`,i,Nt]),id:vt,role:`application`,children:(0,N.jsxs)(xu,{nodes:e,edges:t,width:Ct,height:wt,fitView:nt,fitViewOptions:rt,minZoom:be,maxZoom:xe,nodeOrigin:he,nodeExtent:we,zIndexMode:kt,children:[(0,N.jsx)(Qs,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:de,autoPanOnNodeFocus:fe,nodesConnectable:pe,nodesFocusable:me,edgesFocusable:ge,edgesReconnectable:_e,elementsSelectable:ve,elevateNodesOnSelect:ct,elevateEdgesOnSelect:lt,minZoom:be,maxZoom:xe,nodeExtent:we,onNodesChange:Ze,onEdgesChange:Qe,snapToGrid:se,snapGrid:ce,connectionMode:z,translateExtent:Se,connectOnClick:it,defaultEdgeOptions:st,fitView:nt,fitViewOptions:rt,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onSelectionDrag:M,onSelectionDragStart:j,onSelectionDragStop:P,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:tt,nodeOrigin:he,rfId:Mt,autoPanOnConnect:dt,autoPanOnNodeDrag:ft,autoPanSpeed:pt,onError:gt,connectionRadius:mt,isValidConnection:ht,selectNodesOnDrag:ue,nodeDragThreshold:yt,connectionDragThreshold:bt,onBeforeDelete:R,debug:Et,ariaLabelConfig:Ot,zIndexMode:kt}),(0,N.jsx)(_u,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:B,connectionLineStyle:ee,connectionLineComponent:V,connectionLineContainerStyle:H,selectionKeyCode:U,selectionOnDrag:ne,selectionMode:re,deleteKeyCode:te,multiSelectionKeyCode:ae,panActivationKeyCode:ie,zoomActivationKeyCode:oe,onlyRenderVisibleElements:le,defaultViewport:ye,translateExtent:Se,minZoom:be,maxZoom:xe,preventScrolling:Ce,zoomOnScroll:Ee,zoomOnPinch:De,zoomOnDoubleClick:je,panOnScroll:Oe,panOnScrollSpeed:ke,panOnScrollMode:Ae,panOnDrag:Me,onPaneClick:Ne,onPaneMouseEnter:Pe,onPaneMouseMove:Fe,onPaneMouseLeave:Ie,onPaneScroll:Le,onPaneContextMenu:Re,paneClickDistance:ze,nodeClickDistance:Be,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:L,onReconnect:He,onReconnectStart:Ue,onReconnectEnd:We,onEdgeContextMenu:Ge,onEdgeDoubleClick:Ke,onEdgeMouseEnter:qe,onEdgeMouseMove:Je,onEdgeMouseLeave:Ye,reconnectRadius:Xe,defaultMarkerColor:Te,noDragClassName:$e,noWheelClassName:et,noPanClassName:tt,rfId:Mt,disableKeyboardA11y:ut,nodeExtent:we,viewport:xt,onViewportChange:St}),(0,N.jsx)(Gs,{onSelectionChange:A}),Ve,(0,N.jsx)(zs,{proOptions:ot,position:at}),(0,N.jsx)(Ls,{rfId:Mt,disableKeyboardA11y:ut})]})})}var wu=gc(Cu);q.error014();function Tu({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,N.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:W([`react-flow__background-pattern`,n,r])})}function Eu({radius:e,className:t}){return(0,N.jsx)(`circle`,{cx:e,cy:e,r:e,className:W([`react-flow__background-pattern`,`dots`,t])})}var Du;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Du||={});var Ou={[Du.Dots]:1,[Du.Lines]:1,[Du.Cross]:6},ku=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Au({id:e,variant:t=Du.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,E.useRef)(null),{transform:f,patternId:p}=X(ku,Y),m=r||Ou[t],h=t===Du.Dots,g=t===Du.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],y=m*f[2],b=Array.isArray(a)?a:[a,a],x=g?[y,y]:v,S=[b[0]*f[2]||1+x[0]/2,b[1]*f[2]||1+x[1]/2],C=`${p}${e||``}`;return(0,N.jsxs)(`svg`,{className:W([`react-flow__background`,l]),style:{...c,...Oc,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,N.jsx)(`pattern`,{id:C,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${S[0]},-${S[1]})`,children:h?(0,N.jsx)(Eu,{radius:y/2,className:u}):(0,N.jsx)(Tu,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,N.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}Au.displayName=`Background`;var ju=(0,E.memo)(Au);function Mu(){return(0,N.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,N.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Nu(){return(0,N.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,N.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Pu(){return(0,N.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,N.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function Fu(){return(0,N.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,N.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function Iu(){return(0,N.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,N.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Lu({children:e,className:t,...n}){return(0,N.jsx)(`button`,{type:`button`,className:W([`react-flow__controls-button`,t]),...n,children:e})}var Ru=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function zu({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=Z(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=X(Ru,Y),{zoomIn:y,zoomOut:b,fitView:x}=Cc(),S=()=>{y(),a?.()},C=()=>{b(),o?.()},w=()=>{x(i),s?.()},T=()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)};return(0,N.jsxs)(Rs,{className:W([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(Lu,{onClick:S,className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,N.jsx)(Mu,{})}),(0,N.jsx)(Lu,{onClick:C,className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,N.jsx)(Nu,{})})]}),n&&(0,N.jsx)(Lu,{className:`react-flow__controls-fitview`,onClick:w,title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,N.jsx)(Pu,{})}),r&&(0,N.jsx)(Lu,{className:`react-flow__controls-interactive`,onClick:T,title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,N.jsx)(Iu,{}):(0,N.jsx)(Fu,{})}),u]})}zu.displayName=`Controls`;var Bu=(0,E.memo)(zu);function Vu({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,N.jsx)(`rect`,{className:W([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var Hu=(0,E.memo)(Vu),Uu=e=>e.nodes.map(e=>e.id),Wu=e=>e instanceof Function?e:()=>e;function Gu({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Hu,onClick:o}){let s=X(Uu,Y),c=Wu(t),l=Wu(e),u=Wu(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,N.jsx)(N.Fragment,{children:s.map(e=>(0,N.jsx)(qu,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function Ku({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=X(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=Ca(r);return{node:r,x:i,y:a,width:o,height:s}},Y);return!l||l.hidden||!wa(l)?null:(0,N.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var qu=(0,E.memo)(Ku),Ju=(0,E.memo)(Gu),Yu=200,Xu=150,Zu=e=>!e.hidden,Qu=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?la(Ki(e.nodeLookup,{filter:Zu}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},$u=`react-flow__minimap-desc`;function ed({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:y=1,offsetScale:b=5}){let x=Z(),S=(0,E.useRef)(null),{boundingRect:C,viewBB:w,rfId:T,panZoom:D,translateExtent:O,flowWidth:k,flowHeight:A,ariaLabelConfig:j}=X(Qu,Y),M=e?.width??Yu,P=e?.height??Xu,F=C.width/M,I=C.height/P,L=Math.max(F,I),R=L*M,z=L*P,B=b*L,ee=C.x-(R-C.width)/2-B,V=C.y-(z-C.height)/2-B,H=R+B*2,te=z+B*2,U=`${$u}-${T}`,ne=(0,E.useRef)(0),re=(0,E.useRef)();ne.current=L,(0,E.useEffect)(()=>{if(S.current&&D)return re.current=Ho({domNode:S.current,panZoom:D,getTransform:()=>x.getState().transform,getViewScale:()=>ne.current}),()=>{re.current?.destroy()}},[D]),(0,E.useEffect)(()=>{re.current?.update({translateExtent:O,width:k,height:A,inversePan:v,pannable:h,zoomStep:y,zoomable:g})},[h,g,v,y,O,k,A]);let ie=p?e=>{let[t,n]=re.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ae=m?(0,E.useCallback)((e,t)=>{let n=x.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,oe=_??j[`minimap.ariaLabel`];return(0,N.jsx)(Rs,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*L:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:W([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,N.jsxs)(`svg`,{width:M,height:P,viewBox:`${ee} ${V} ${H} ${te}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":U,ref:S,onClick:ie,children:[oe&&(0,N.jsx)(`title`,{id:U,children:oe}),(0,N.jsx)(Ju,{onClick:ae,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,N.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${ee-B},${V-B}h${H+B*2}v${te+B*2}h${-H-B*2}z
|
|
12
|
-
M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}ed.displayName=`MiniMap`,(0,E.memo)(ed);var td=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,nd={[rs.Line]:`right`,[rs.Handle]:`bottom-right`};function rd({nodeId:e,position:t,variant:n=rs.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=Hc(),y=typeof e==`string`?e:v,b=Z(),x=(0,E.useRef)(null),S=n===rs.Handle,C=X((0,E.useCallback)(td(S&&p),[S,p]),Y),w=(0,E.useRef)(null),T=t??nd[n];return(0,E.useEffect)(()=>{if(!(!x.current||!y))return w.current||=hs({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=xo([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...Ta({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),w.current.update({controlPosition:T,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{w.current?.destroy()}},[T,s,c,l,u,d,h,g,_,m]),(0,N.jsx)(`div`,{className:W([`react-flow__resize-control`,`nodrag`,...T.split(`-`),n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}(0,E.memo)(rd);var id=[`Aprendiz`,`Explorador`,`Practicante`,`Experto`,`Maestro`,`Leyenda`];function ad(e){return e<50?id[0]:e<150?id[1]:e<300?id[2]:e<500?id[3]:e<800?id[4]:id[5]}function od(e,t){return t===`nino`?`¡${e} gotas de miel! 🍯`:t===`adolescente`?`+${e} XP 🔥`:`${e} puntos ganados`}function sd(){let{xpTotal:e,logrosDesbloqueados:t,program:n,desbloquearLogro:r}=M(),i=ad(e),a=n?.rangoEdad??`adulto`;return{xpTotal:e,nivelActual:i,rangoEdad:a,logrosDesbloqueados:t,checkLogros:(0,E.useCallback)(()=>{if(n?.gamificacion.logros)for(let e of n.gamificacion.logros)t.includes(e.id)||r(e.id)},[n,t,r]),formatXP:e=>od(e,a),porcentajeNivel:()=>e<50?e/50*100:e<150?(e-50)/100*100:e<300?(e-150)/150*100:e<500?(e-300)/200*100:e<800?(e-500)/300*100:100}}function cd({tema:e}){let{vidas:t,racha:n}=M(),{xpTotal:r,nivelActual:i,formatXP:a}=sd();return(0,N.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-gray-900/90 border-b border-gray-800 backdrop-blur z-20 min-h-[48px]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,N.jsx)(`span`,{className:`text-amber-400 text-base`,children:`🐝`}),(0,N.jsx)(`span`,{className:`text-white font-bold text-sm truncate max-w-[200px]`,children:e})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,N.jsx)(`div`,{className:`flex items-center gap-0.5`,children:Array.from({length:3}).map((e,n)=>(0,N.jsx)(`span`,{className:`text-lg transition-all duration-300 ${n<t?`opacity-100`:`opacity-20 grayscale`}`,children:`❤️`},n))}),n>=2&&(0,N.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-bold
|
|
13
|
-
${n>=5?`bg-red-500/20 border border-red-500/40 text-red-300`:n>=3?`bg-orange-500/20 border border-orange-500/40 text-orange-300`:`bg-amber-500/20 border border-amber-500/40 text-amber-300`}
|
|
14
|
-
`,children:[(0,N.jsx)(`span`,{className:n>=3?`animate-bounce`:``,children:`🔥`}),(0,N.jsx)(`span`,{children:n})]})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,N.jsxs)(`div`,{className:`flex flex-col items-end gap-0.5`,children:[(0,N.jsx)(`span`,{className:`text-amber-400 font-bold text-xs tabular-nums`,children:a(r)}),(0,N.jsx)(`div`,{className:`w-24 h-1 rounded-full bg-gray-700 overflow-hidden`,children:(0,N.jsx)(`div`,{className:`h-full rounded-full bg-gradient-to-r from-amber-600 to-yellow-400 transition-all duration-700`,style:{width:`${Math.min(r%100,100)}%`}})})]}),(0,N.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full bg-amber-500/15 border border-amber-500/30 text-amber-300 font-bold whitespace-nowrap`,children:i})]})]})}function ld(e,t={}){for(let n of e)n.valueString===void 0?n.valueMap&&(t[n.key]=ld(n.valueMap,{})):t[n.key]=n.valueString;return t}function ud(e,t){let n=t.replace(/^\//,``).split(`/`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r==null?void 0:String(r)}function dd({messages:e,onAction:t,isLoading:n,feedback:r}){let[i,a]=(0,E.useState)({}),[o,s]=(0,E.useState)({}),[c,l]=(0,E.useState)(!1),{compMap:u,dataModel:d,rootId:f}=(0,E.useMemo)(()=>{let t={},n={},r=``;for(let i of e){if(i.surfaceUpdate)for(let e of i.surfaceUpdate.components)t[e.id]=e;i.dataModelUpdate&&(n={...n,...ld(i.dataModelUpdate.contents)}),i.beginRendering&&(r=i.beginRendering.root)}return{compMap:t,dataModel:n,rootId:r}},[e]),p=(0,E.useCallback)(e=>e.path?ud(d,e.path)??e.literalString??``:e.literalString??``,[d]),m=(0,E.useCallback)(async e=>{let n={};for(let t of e.context??[])n[t.key]=p(t.value);Object.assign(n,{_selections:i,_textValues:o}),l(!0);try{await t?.({name:e.name,context:n})}finally{l(!1)}},[t,p,i,o]);return n?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,N.jsx)(`span`,{className:`text-white/30 text-sm animate-pulse`,children:`Cargando contenido...`})}):!f||!u[f]?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-8 text-white/20 text-sm`,children:`Sin contenido disponible`}):(0,N.jsx)(`div`,{className:`a2ui-surface space-y-0`,children:(0,N.jsx)(fd,{id:f,compMap:u,resolveValue:p,selections:i,setSelections:a,textValues:o,setTextValues:s,onAction:m,isSubmitting:c,feedback:r})})}function fd(e){let t=e.compMap[e.id];if(!t)return null;let n=Object.keys(t.component)[0],r=t.component[n],i={};switch(e.weight&&(i.flex=e.weight),n){case`Column`:return(0,N.jsx)(md,{...e,props:r,style:i});case`Row`:return(0,N.jsx)(hd,{...e,props:r,style:i});case`Card`:return(0,N.jsx)(gd,{...e,props:r,style:i});case`Text`:return(0,N.jsx)(_d,{...e,props:r,style:i});case`Button`:return(0,N.jsx)(vd,{...e,props:r,style:i});case`MultipleChoice`:return(0,N.jsx)(yd,{...e,props:r,style:i});case`TextField`:return(0,N.jsx)(bd,{...e,props:r,style:i});case`List`:return(0,N.jsx)(xd,{...e,props:r,style:i});case`Divider`:return(0,N.jsx)(Sd,{props:r,style:i});case`Image`:return(0,N.jsx)(Cd,{...e,props:r,style:i});default:return null}}function pd(e,t,n){return(e.children?.explicitList??[]).map(e=>(0,N.jsx)(fd,{...n,id:e,weight:t[e]?.weight},e))}function md({props:e,compMap:t,style:n,...r}){return(0,N.jsx)(`div`,{className:`flex flex-col`,style:{gap:`12px`,justifyContent:{start:`flex-start`,end:`flex-end`,center:`center`,spaceBetween:`space-between`}[e.distribution]??`flex-start`,alignItems:e.alignment===`center`?`center`:void 0,...n},children:pd(e,t,{...r,compMap:t})})}function hd({props:e,compMap:t,style:n,...r}){return(0,N.jsx)(`div`,{className:`flex flex-row`,style:{gap:`8px`,justifyContent:{start:`flex-start`,end:`flex-end`,center:`center`,spaceBetween:`space-between`}[e.distribution]??`flex-start`,alignItems:e.alignment===`center`?`center`:`flex-start`,flexWrap:e.wrap?`wrap`:void 0,...n},children:pd(e,t,{...r,compMap:t})})}function gd({props:e,compMap:t,style:n,...r}){return(0,N.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`rgba(255,255,255,0.03)`,borderColor:`rgba(255,255,255,0.08)`,...n},children:e.child&&(0,N.jsx)(fd,{...r,compMap:t,id:e.child})})}function _d({props:e,resolveValue:t,style:n}){let r=typeof e.text==`string`?e.text:t(e.text??{literalString:``}),i=e.usageHint??`body`;function a(e){return e.split(/(\*\*[^*]+\*\*|\*[^*]+\*|`[^`]+`|\n)/g).map((e,t)=>e.startsWith(`**`)&&e.endsWith(`**`)?(0,N.jsx)(`strong`,{className:`font-bold`,children:e.slice(2,-2)},t):e.startsWith(`*`)&&e.endsWith(`*`)?(0,N.jsx)(`em`,{className:`italic`,children:e.slice(1,-1)},t):e.startsWith("`")&&e.endsWith("`")?(0,N.jsx)(`code`,{className:`font-mono text-green-300 bg-black/30 px-1 rounded text-[0.9em]`,children:e.slice(1,-1)},t):e===`
|
|
15
|
-
`?(0,N.jsx)(`br`,{},t):e)}let o={h1:`text-2xl font-black text-white`,h2:`text-xl font-bold text-white`,h3:`text-base font-bold text-white`,h4:`text-sm font-semibold text-white/90`,h5:`text-xs font-semibold text-white/80`,body:`text-sm text-white/70 leading-relaxed`,caption:`text-xs text-white/40`,label:`text-xs font-semibold text-white/50 uppercase tracking-wider`,code:`font-mono text-xs text-green-300 bg-black/40 rounded-lg p-3 leading-relaxed whitespace-pre-wrap break-all`},s=o[i]??o.body;return i===`code`?(0,N.jsx)(`pre`,{className:s,style:n,children:r}):(0,N.jsx)(`p`,{className:s,style:n,children:a(r)})}function vd({props:e,compMap:t,resolveValue:n,onAction:r,isSubmitting:i,style:a,...o}){let s=e.action,c=e.variant??`primary`,l=c===`primary`?`bg-blue-600 hover:bg-blue-500 text-white font-bold`:c===`secondary`?`bg-white/5 hover:bg-white/10 text-white/70 border border-white/10`:c===`success`?`bg-emerald-600 hover:bg-emerald-500 text-white font-bold`:c===`danger`?`bg-red-600 hover:bg-red-500 text-white font-bold`:`bg-blue-600 hover:bg-blue-500 text-white font-bold`;return(0,N.jsx)(`button`,{onClick:()=>s&&r(s),disabled:i||e.disabled,className:`w-full py-2.5 rounded-xl text-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed flex items-center justify-center gap-2 ${l}`,style:a,children:i&&s?.name!==`complete_node`?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:`w-3.5 h-3.5 rounded-full border-2 border-white/20 border-t-white animate-spin`}),`Evaluando...`]}):e.child?(0,N.jsx)(fd,{...o,compMap:t,resolveValue:n,onAction:r,isSubmitting:i,id:e.child}):e.label??`Enviar`})}function yd({id:e,props:t,resolveValue:n,selections:r,setSelections:i,onAction:a,isSubmitting:o,feedback:s,style:c}){let l=t.maxAllowedSelections??1,u=r[e]??[],d=!!s,f=t.options??[],p=t=>{d||o||i(n=>{let r=n[e]??[];return l===1?{...n,[e]:[t]}:r.includes(t)?{...n,[e]:r.filter(e=>e!==t)}:r.length>=l?n:{...n,[e]:[...r,t]}})};return(0,N.jsx)(`div`,{className:`space-y-2`,style:c,children:f.map((e,t)=>{let r=n(e.label),i=e.value?n(e.value):r,a=u.includes(i),c=String.fromCharCode(65+t),l=d&&s.correcto&&a,f=d&&!s.correcto&&a;return(0,N.jsxs)(`button`,{onClick:()=>p(i),disabled:d||o,className:`w-full text-left px-3 py-2.5 rounded-xl border text-sm transition-all flex items-center gap-2.5
|
|
16
|
-
${l?`bg-emerald-500/15 border-emerald-500/60 text-emerald-200`:f?`bg-red-500/15 border-red-500/60 text-red-200`:a?`bg-blue-500/15 border-blue-500/50 text-blue-100`:`bg-white/[0.03] border-white/[0.08] text-white/65 hover:border-white/20 hover:bg-white/[0.06]`}
|
|
17
|
-
${d&&!a?`opacity-40`:``}
|
|
18
|
-
`,children:[(0,N.jsx)(`span`,{className:`text-xs font-bold w-6 h-6 rounded-lg flex items-center justify-center flex-shrink-0 transition-colors
|
|
19
|
-
${a?`bg-blue-500/40 text-blue-200`:`bg-white/5 text-white/40`}`,children:l?`✓`:f?`✗`:c}),(0,N.jsx)(`span`,{className:`leading-snug`,children:r})]},t)})})}function bd({id:e,props:t,textValues:n,setTextValues:r,feedback:i,style:a}){let o=n[e]??``,s=!!i,c=t.textFieldType===`code`||t.textFieldType===`multiline_code`;return(0,N.jsxs)(`div`,{className:`space-y-2`,style:a,children:[t.label&&(0,N.jsx)(`label`,{className:`text-xs font-semibold text-white/45 uppercase tracking-wider`,children:typeof t.label==`string`?t.label:t.label?.literalString??``}),(0,N.jsx)(`textarea`,{value:o,onChange:t=>r(n=>({...n,[e]:t.target.value})),disabled:s,placeholder:t.placeholder??(c?`Escribe el código aquí...`:`Escribe tu respuesta...`),rows:c?5:3,className:`w-full rounded-xl border px-3 py-2.5 text-sm resize-none outline-none transition-all
|
|
20
|
-
bg-white/[0.04] border-white/[0.08] focus:border-blue-500/50 focus:bg-white/[0.06]
|
|
21
|
-
disabled:opacity-50 placeholder:text-white/20
|
|
22
|
-
${c?`font-mono text-green-300 leading-relaxed`:`text-white/80 leading-relaxed`}`})]})}function xd({props:e,compMap:t,style:n,...r}){let i=e.direction??`vertical`,a=e.items?.explicitList??[];return(0,N.jsx)(`div`,{className:i===`horizontal`?`flex flex-row gap-2 overflow-x-auto pb-1`:`flex flex-col gap-2`,style:n,children:a.map(e=>(0,N.jsx)(fd,{...r,compMap:t,id:e},e))})}function Sd({props:e,style:t}){return(0,N.jsx)(`div`,{className:e.axis===`vertical`?`w-px bg-white/[0.06] self-stretch`:`h-px bg-white/[0.06] w-full`,style:t})}function Cd({props:e,resolveValue:t,style:n}){let r=typeof e.url==`string`?e.url:t(e.url??{literalString:``});return r?(0,N.jsx)(`div`,{className:`rounded-xl overflow-hidden border border-white/[0.08]`,style:n,children:(0,N.jsx)(`img`,{src:r,alt:e.alt??``,className:`w-full max-h-64 block`,style:{objectFit:{contain:`contain`,cover:`cover`,fill:`fill`}[e.fit]??`contain`}})}):null}function wd({feedback:e}){return(0,N.jsxs)(`div`,{className:`rounded-2xl border p-4 space-y-2 transition-all ${e.correcto?`bg-emerald-500/10 border-emerald-500/30`:`bg-blue-500/10 border-blue-500/30`}`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,N.jsx)(`span`,{className:`text-xl`,children:e.correcto?`✅`:`💡`}),(0,N.jsx)(`span`,{className:`text-sm font-bold flex-1 ${e.correcto?`text-emerald-300`:`text-blue-300`}`,children:e.mensajePrincipal}),e.xpGanado>0&&(0,N.jsxs)(`span`,{className:`text-xs font-bold text-amber-400 bg-amber-400/10 px-2 py-0.5 rounded-full border border-amber-400/20`,children:[`+`,e.xpGanado,` XP`]})]}),e.razonamiento&&(0,N.jsx)(`p`,{className:`text-xs text-white/40 pl-9 leading-relaxed`,children:e.razonamiento}),!e.correcto&&e.pistaSiIncorrecto&&(0,N.jsxs)(`p`,{className:`text-xs text-amber-300/60 pl-9 leading-relaxed`,children:[`💡 `,e.pistaSiIncorrecto]})]})}var Td=`lesson-node`;function Q(e,t,n=`body`){return{id:e,component:{Text:{text:{literalString:t},usageHint:n}}}}function Ed(e){return{id:e,component:{Divider:{axis:`horizontal`}}}}function $(e,t,n,r){return{id:e,component:{Column:{children:{explicitList:t},distribution:n,alignment:r}}}}function Dd(e,t,n,r){return{id:e,component:{Row:{children:{explicitList:t},distribution:n,wrap:r}}}}function Od(e,t){return{id:e,component:{Card:{child:t}}}}function kd(e,t,n,r=[],i=`primary`){return{id:e,component:{Button:{label:t,variant:i,action:{name:n,context:r}}}}}function Ad(e,t,n=1){return{id:e,component:{MultipleChoice:{options:t.map(e=>({label:{literalString:e},value:{literalString:e}})),maxAllowedSelections:n}}}}function jd(e,t,n,r=!1){return{id:e,component:{TextField:{label:{literalString:t},placeholder:n,textFieldType:r?`multiline_code`:`multiline`}}}}function Md(e,t,n=`vertical`){return{id:e,component:{List:{items:{explicitList:t},direction:n}}}}function Nd(e,t,n=`contain`){return{id:e,component:{Image:{url:{literalString:t},fit:n}}}}function Pd(e){let t=e.contenido?.microEval;if(!t)return{components:[],children:[]};let n=[],r=[];if(n.push(Ed(`me-divider`)),n.push(Q(`me-header`,`Verifica tu comprensión`,`label`)),n.push(Q(`me-question`,t.pregunta,`h4`)),r.push(`me-divider`,`me-header`,`me-question`),t.tipo===`multiple_choice`||t.tipo===`verdadero_falso`){let i=t.tipo===`verdadero_falso`?[`Verdadero`,`Falso`]:t.opciones??[];n.push(Ad(`me-mc`,i)),r.push(`me-mc`),n.push(kd(`me-submit`,`Comprobar respuesta ✓`,`check_answer`,[{key:`respuesta`,value:{path:`/_selections/me-mc/0`}},{key:`nodoId`,value:{literalString:e.id}},{key:`concepto`,value:{literalString:e.concepto}},{key:`tipoPedagogico`,value:{literalString:e.tipoPedagogico}},{key:`rangoEdad`,value:{literalString:e.rangoEdad}}])),r.push(`me-submit`)}else{let i=t.tipo===`completar_codigo`;n.push(jd(`me-tf`,``,i?`Escribe el código aquí...`:`Escribe tu respuesta...`,i)),r.push(`me-tf`),n.push(kd(`me-submit`,i?`Enviar código ✓`:`Enviar respuesta ✓`,`check_answer`,[{key:`respuesta`,value:{path:`/_textValues/me-tf`}},{key:`nodoId`,value:{literalString:e.id}},{key:`concepto`,value:{literalString:e.concepto}},{key:`tipoPedagogico`,value:{literalString:e.tipoPedagogico}},{key:`rangoEdad`,value:{literalString:e.rangoEdad}}])),r.push(`me-submit`)}return t.pista&&(n.push(Q(`me-hint`,`💡 Pista: ${t.pista}`,`caption`)),r.push(`me-hint`)),{components:n,children:r}}function Fd(e){let t=e.contenido,{components:n,children:r}=Pd(e),i=[],a=[],o=[];if(e.tipoPedagogico===`milestone`)return i=[$(`root`,[`ms-trophy`,`ms-title`,`ms-concept`,`ms-xp`,...r],`center`,`center`),Q(`ms-trophy`,`🏆`,`h1`),Q(`ms-title`,e.titulo,`h2`),Q(`ms-concept`,e.concepto,`body`),Q(`ms-xp`,`⭐ +${e.xpRecompensa} XP al completar`,`caption`),...n],Id(i,o);if(e.tipoPedagogico===`quiz`&&t?.quiz){let a=t.quiz,s=Array.isArray(a.opciones)?a.opciones:[];i=[$(`root`,[`q-question`,`q-mc`,...r]),Q(`q-question`,a.pregunta??e.concepto,`h4`),Ad(`q-mc`,s),kd(`q-check`,`Comprobar respuesta ✓`,`check_answer`,[{key:`respuesta`,value:{path:`/_selections/q-mc/0`}},{key:`nodoId`,value:{literalString:e.id}},{key:`concepto`,value:{literalString:e.concepto}},{key:`tipoPedagogico`,value:{literalString:e.tipoPedagogico}},{key:`rangoEdad`,value:{literalString:e.rangoEdad}}]),...n];let c=[`q-question`,`q-mc`,`q-check`,...r.length?[`me-divider`,...r.slice(1)]:[]];return i[0]=$(`root`,c),Id(i,o)}if(e.tipoPedagogico===`exercise`&&t?.ejercicio){let s=t.ejercicio,c=`ex-answer`;return a=[`ex-card`,c,`ex-submit`,...r],i=[$(`root`,a),Od(`ex-card`,`ex-card-inner`),$(`ex-card-inner`,[`ex-label`,`ex-enunciado`]),Q(`ex-label`,`📝 Ejercicio`,`label`),Q(`ex-enunciado`,s.enunciado,`body`),jd(c,`Tu respuesta`,`Escribe aquí...`),kd(`ex-submit`,`Enviar respuesta ✓`,`check_answer`,[{key:`respuesta`,value:{path:`/_textValues/${c}`}},{key:`nodoId`,value:{literalString:e.id}},{key:`concepto`,value:{literalString:e.concepto}},{key:`tipoPedagogico`,value:{literalString:e.tipoPedagogico}},{key:`rangoEdad`,value:{literalString:e.rangoEdad}}]),...n],s.pistaOpcional&&(i.push(Q(`ex-hint`,`💡 ${s.pistaOpcional}`,`caption`)),i[0].component.Column.children.explicitList.splice(2,0,`ex-hint`)),Id(i,o)}if(e.tipoPedagogico===`challenge`&&t?.reto){let e=t.reto,a=Array.isArray(e.pasos)?e.pasos:[],s=Array.isArray(e.criteriosExito)?e.criteriosExito:[],c=a.map((e,t)=>`reto-step-${t}`),l=s.map((e,t)=>`reto-crit-${t}`),u=a.map((e,t)=>Dd(`reto-step-${t}`,[`reto-step-${t}-num`,`reto-step-${t}-text`],`start`)),d=a.map((e,t)=>Q(`reto-step-${t}-num`,`${t+1}.`,`h5`)),f=a.map((e,t)=>Q(`reto-step-${t}-text`,e,`body`)),p=s.map((e,t)=>Q(`reto-crit-${t}`,`✓ ${e}`,`caption`));return i=[$(`root`,[`reto-card`,`reto-steps-label`,`reto-steps`,`reto-crit-label`,`reto-crits`,...r]),Od(`reto-card`,`reto-card-inner`),$(`reto-card-inner`,[`reto-header`,`reto-titulo`,`reto-contexto`]),Q(`reto-header`,`⚡ Reto`,`label`),Q(`reto-titulo`,e.titulo,`h3`),Q(`reto-contexto`,e.contexto,`body`),Q(`reto-steps-label`,`Pasos a seguir`,`label`),Md(`reto-steps`,c),...u,...d,...f,Q(`reto-crit-label`,`Criterios de éxito`,`label`),Md(`reto-crits`,l),...p,...n],Id(i,o)}if(e.tipoVisual===`code_block`&&t?.codigo){let e=t.codigo;return i=[$(`root`,[`code-lang-row`,`code-block`,`code-desc`,...r]),Dd(`code-lang-row`,[`code-lang-badge`]),Q(`code-lang-badge`,(e.lenguaje??`code`).toUpperCase(),`caption`),Q(`code-block`,e.codigo,`code`),...e.descripcionBreve?[Q(`code-desc`,e.descripcionBreve,`caption`)]:[],...n],Id(i,o)}if(e.tipoVisual===`svg_diagram`&&t?.svg?.svgString){let e=t.svg.svgString.replace(/<script[\s\S]*?<\/script>/gi,``).replace(/on\w+="[^"]*"/gi,``),a=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`;return i=[$(`root`,[`svg-img`,...r]),Nd(`svg-img`,a,`contain`),...n],Id(i,o)}if(e.tipoVisual===`infographic`&&t?.infografia){let e=Array.isArray(t.infografia.secciones)?t.infografia.secciones:[],a=e.map((e,t)=>`inf-sec-${t}`),s=e.map((e,t)=>Od(`inf-sec-${t}`,`inf-sec-${t}-inner`)),c=e.map((e,t)=>Dd(`inf-sec-${t}-inner`,[`inf-sec-${t}-emoji`,`inf-sec-${t}-content`],`start`)),l=e.map((e,t)=>Q(`inf-sec-${t}-emoji`,e.emoji,`h3`)),u=e.flatMap((e,t)=>[$(`inf-sec-${t}-content`,[`inf-sec-${t}-title`,`inf-sec-${t}-val`]),Q(`inf-sec-${t}-title`,e.titulo,`h5`),Q(`inf-sec-${t}-val`,e.valor,`body`)]);return i=[$(`root`,[`inf-list`,...r]),Md(`inf-list`,a),...s,...c,...l,...u,...n],Id(i,o)}if(e.tipoVisual===`gif_guide`&&t?.gifFrames){let e=Array.isArray(t.gifFrames.frames)?t.gifFrames.frames:[],a=e.map((e,t)=>`gif-frame-${t}`),s=e.flatMap((e,t)=>[Od(`gif-frame-${t}`,`gif-frame-${t}-inner`),$(`gif-frame-${t}-inner`,[`gif-${t}-emoji`,`gif-${t}-text`],`center`,`center`),Q(`gif-${t}-emoji`,e.emoji,`h2`),Q(`gif-${t}-text`,e.texto,`caption`)]);return i=[$(`root`,[`gif-label`,`gif-list`,...r]),Q(`gif-label`,`Paso a paso`,`label`),Md(`gif-list`,a,`horizontal`),...s,...n],Id(i,o)}if(e.tipoVisual===`audio_ai`&&t?.audio){let a=t.audio;return i=[$(`root`,[`aud-card`,`aud-play-btn`,...r]),Od(`aud-card`,`aud-card-inner`),$(`aud-card-inner`,[`aud-icon-row`,`aud-title`,`aud-text`],`center`,`center`),Dd(`aud-icon-row`,[`aud-icon`,`aud-label`],`center`),Q(`aud-icon`,`🎧`,`h2`),Q(`aud-label`,`Narración`,`label`),Q(`aud-title`,a.title??e.titulo,`h4`),Q(`aud-text`,a.narration_text,`body`),kd(`aud-play-btn`,`▶ Escuchar narración`,`play_audio`,[{key:`narration_text`,value:{literalString:a.narration_text}},{key:`speed`,value:{literalString:a.speed??`normal`}},{key:`voice_tone`,value:{literalString:a.voice_tone??`friendly`}}]),...n],Id(i,o)}if(e.tipoPedagogico===`evaluation`&&t?.evaluacion){let n=Array.isArray(t.evaluacion.preguntas)?t.evaluacion.preguntas:[],r=[],a=[];return n.forEach((e,t)=>{a.push(`eval-q-${t}-text`),r.push(Q(`eval-q-${t}-text`,`${t+1}. ${e.pregunta}`,`h5`)),e.tipo===`multiple_choice`&&e.opciones?(a.push(`eval-q-${t}-mc`),r.push(Ad(`eval-q-${t}-mc`,e.opciones))):(a.push(`eval-q-${t}-tf`),r.push(jd(`eval-q-${t}-tf`,``,`Escribe tu respuesta...`))),t<n.length-1&&(a.push(`eval-div-${t}`),r.push(Ed(`eval-div-${t}`)))}),i=[$(`root`,[...a,`eval-submit`]),...r,kd(`eval-submit`,`Enviar evaluación ✓`,`submit_evaluation`,[{key:`nodoId`,value:{literalString:e.id}}])],Id(i,o)}if(t?.explicacion){let s=t.explicacion;return a=[`exp-title`,`exp-body`,...r],i=[$(`root`,a),Q(`exp-title`,s.titulo??e.titulo,`h3`),Q(`exp-body`,s.explicacion??e.concepto,`body`),...n],s.ejemploConcreto&&(i.push(Od(`exp-example-card`,`exp-example-inner`)),i.push($(`exp-example-inner`,[`exp-example-label`,`exp-example-text`])),i.push(Q(`exp-example-label`,`Ejemplo`,`label`)),i.push(Q(`exp-example-text`,s.ejemploConcreto,`body`)),i[0].component.Column.children.explicitList.splice(2,0,`exp-example-card`)),Id(i,o)}return i=[$(`root`,[`fallback-text`,...r]),Q(`fallback-text`,e.concepto||`Contenido en preparación...`,`body`),...n],Id(i,o)}function Id(e,t){return[{surfaceUpdate:{surfaceId:Td,components:e}},{dataModelUpdate:{surfaceId:Td,contents:t}},{beginRendering:{surfaceId:Td,root:`root`,styles:{primaryColor:`#3b82f6`}}}]}var Ld={concept:{label:`Concepto`,color:`#3b82f6`,icon:`📖`},exercise:{label:`Ejercicio`,color:`#22c55e`,icon:`✏️`},quiz:{label:`Quiz`,color:`#a855f7`,icon:`❓`},challenge:{label:`Reto`,color:`#f59e0b`,icon:`⚡`},milestone:{label:`Logro`,color:`#eab308`,icon:`🏆`},evaluation:{label:`Evaluación`,color:`#ef4444`,icon:`📝`}};function Rd({nodo:e,position:t,onClose:n,onComplete:r}){let{lastFeedback:i,setLastFeedback:a}=M(),[o,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(!1),u=e!==null&&t!==null,d=(0,E.useMemo)(()=>e?Fd(e):[],[e?.id,e?.contenido]),f=async({name:t,context:n})=>{if(t===`play_audio`){if(!(`speechSynthesis`in window))return;window.speechSynthesis.cancel();let e=new SpeechSynthesisUtterance(n.narration_text??``);e.rate={slow:.8,normal:1,fast:1.3}[n.speed??`normal`]??1,e.lang=`es-ES`,window.speechSynthesis.speak(e);return}if(t===`check_answer`||t===`submit_eval`){if(!e)return;s(!0);try{let t=n.respuesta??``;!t&&n._selections&&(t=Object.values(n._selections)[0]?.[0]??``),!t&&n._textValues&&(t=Object.values(n._textValues)[0]??``);let{sessionId:r}=M.getState();a(await(await fetch(`/api/hivelearn/feedback`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({sessionId:r,nodoId:e.id,concepto:e.concepto,respuesta:t,rangoEdad:e.rangoEdad,tipoPedagogico:e.tipoPedagogico})})).json())}catch{a({correcto:!1,mensajePrincipal:`Error al evaluar. Intenta de nuevo.`,xpGanado:0})}finally{s(!1)}}},p=()=>{if(!e)return;let t=i?.xpGanado??e.xpRecompensa;l(!0),r(e,t),setTimeout(()=>{l(!1),a(null),n()},500)},m=()=>{e&&(r(e,0),a(null),n())},h=e?Ld[e.tipoPedagogico]??Ld.concept:null,g=e?.estado===`bloqueado`,_=e?.estado===`completado`,v=!(e!=null&&[`exercise`,`quiz`,`challenge`,`evaluation`].includes(e.tipoPedagogico)&&(e.tipoPedagogico===`exercise`&&e.contenido?.ejercicio||e.tipoPedagogico===`quiz`&&e.contenido?.quiz||e.tipoPedagogico===`challenge`&&e.contenido?.reto||e.tipoPedagogico===`evaluation`&&e.contenido?.evaluacion))||!!i||e?.tipoPedagogico===`milestone`;return(0,N.jsxs)(N.Fragment,{children:[u&&(0,N.jsx)(`div`,{className:`absolute inset-0 z-30`,style:{background:`rgba(8,13,26,0.55)`,backdropFilter:`blur(1px)`},onClick:n}),(0,N.jsxs)(`div`,{className:`absolute z-40 flex flex-col`,style:{left:t?.left??0,top:t?.top??0,width:`460px`,maxHeight:`75vh`,opacity:u?1:0,transform:u?`scale(1) translateY(0)`:`scale(0.94) translateY(8px)`,transition:`opacity 0.2s ease, transform 0.2s ease`,pointerEvents:u?`auto`:`none`,background:`rgba(8,13,26,0.97)`,border:h?`1px solid ${h.color}22`:`1px solid rgba(255,255,255,0.07)`,borderRadius:`20px`,boxShadow:h?`0 24px 64px rgba(0,0,0,0.6), 0 0 0 1px ${h.color}10, 0 0 40px ${h.color}08`:`0 24px 64px rgba(0,0,0,0.6)`},children:[h&&(0,N.jsx)(`div`,{style:{height:`3px`,background:h.color,borderRadius:`20px 20px 0 0`,opacity:.7}}),(0,N.jsxs)(`div`,{className:`flex-shrink-0 px-5 py-4`,style:{borderBottom:`1px solid rgba(255,255,255,0.05)`},children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,N.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-1.5`,children:[h&&(0,N.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,N.jsxs)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider px-2 py-0.5 rounded-md`,style:{background:`${h.color}15`,color:h.color,border:`1px solid ${h.color}25`},children:[h.icon,` `,h.label]}),e?.xpRecompensa&&e.xpRecompensa>0&&(0,N.jsxs)(`span`,{className:`text-[10px] font-bold text-amber-400/70`,children:[`⭐ `,e.xpRecompensa,` XP`]}),_&&(0,N.jsx)(`span`,{className:`text-[10px] font-bold text-emerald-400/70 bg-emerald-400/10 px-1.5 py-0.5 rounded-full`,children:`✅ Completado`})]}),(0,N.jsx)(`h2`,{className:`text-white font-bold text-[15px] leading-tight`,children:e?.titulo??``}),e?.concepto&&(0,N.jsx)(`p`,{className:`text-[11px] text-white/35 leading-snug`,children:e.concepto})]}),(0,N.jsx)(`button`,{onClick:n,className:`flex-shrink-0 w-8 h-8 rounded-xl flex items-center justify-center text-white/35 hover:text-white/80 hover:bg-white/5 transition-all text-sm`,children:`✕`})]}),h&&(0,N.jsx)(`div`,{className:`mt-3 h-0.5 rounded-full`,style:{background:`${h.color}12`},children:(0,N.jsx)(`div`,{className:`h-full rounded-full transition-all duration-700`,style:{width:_||i?.correcto?`100%`:`0%`,background:h.color}})})]}),(0,N.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-4 space-y-4 min-h-0`,children:g?(0,N.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-10 space-y-3 text-center`,children:[(0,N.jsx)(`div`,{className:`w-14 h-14 rounded-2xl flex items-center justify-center text-2xl`,style:{background:`rgba(255,255,255,0.03)`,border:`1px solid rgba(255,255,255,0.06)`},children:`🔒`}),(0,N.jsx)(`p`,{className:`text-white/50 font-semibold text-sm`,children:`Nodo bloqueado`}),(0,N.jsx)(`p`,{className:`text-white/25 text-xs`,children:`Completa los nodos anteriores primero.`})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(dd,{messages:d,onAction:f,isLoading:d.length===0,feedback:i}),i&&(0,N.jsx)(wd,{feedback:i}),_&&!i&&(0,N.jsx)(`div`,{className:`rounded-2xl p-3 text-center`,style:{background:`rgba(34,197,94,0.07)`,border:`1px solid rgba(34,197,94,0.18)`},children:(0,N.jsx)(`span`,{className:`text-emerald-400 text-sm font-semibold`,children:`✅ Ya completaste este nodo`})})]})}),!g&&!_&&(0,N.jsxs)(`div`,{className:`flex-shrink-0 px-5 py-4 flex gap-2.5`,style:{borderTop:`1px solid rgba(255,255,255,0.05)`},children:[(0,N.jsx)(`button`,{onClick:m,className:`flex-1 py-2.5 rounded-xl text-sm font-medium text-white/40 hover:text-white/70 transition-all`,style:{border:`1px solid rgba(255,255,255,0.07)`},children:`Saltar`}),(0,N.jsx)(`button`,{onClick:p,disabled:!v||c||o,className:`flex-[2.5] py-2.5 rounded-xl text-sm font-bold transition-all disabled:cursor-not-allowed`,style:{background:c?`#22c55e`:v?h?.color??`#3b82f6`:`rgba(255,255,255,0.05)`,color:v||c?`white`:`rgba(255,255,255,0.25)`,border:v?`none`:`1px solid rgba(255,255,255,0.07)`,opacity:o?.5:1,transform:c?`scale(0.97)`:void 0},children:c?`✓ Completado`:e?.tipoPedagogico===`milestone`?`🏆 Celebrar`:v?`Continuar →`:`Responde primero`})]})]})]})}function zd({xp:e,animKey:t,x:n,y:r}){let[i,a]=(0,E.useState)(!0);return(0,E.useEffect)(()=>{a(!0);let e=setTimeout(()=>a(!1),1300);return()=>clearTimeout(e)},[t]),i?(0,N.jsx)(`div`,{className:`pointer-events-none fixed z-50 select-none`,style:{left:n,top:r},children:(0,N.jsxs)(`div`,{className:`animate-xp-float text-base font-black text-amber-300 drop-shadow-[0_0_8px_rgba(251,191,36,0.8)] whitespace-nowrap`,children:[`+`,e,` XP ✨`]})},t):null}var Bd={concept:{band:`#3b82f6`,bg:`rgba(59,130,246,0.07)`,border:`rgba(59,130,246,0.25)`,text:`#93c5fd`,icon:`📖`,label:`Concepto`},exercise:{band:`#22c55e`,bg:`rgba(34,197,94,0.07)`,border:`rgba(34,197,94,0.25)`,text:`#86efac`,icon:`✏️`,label:`Ejercicio`},quiz:{band:`#a855f7`,bg:`rgba(168,85,247,0.07)`,border:`rgba(168,85,247,0.25)`,text:`#d8b4fe`,icon:`❓`,label:`Quiz`},challenge:{band:`#f59e0b`,bg:`rgba(245,158,11,0.07)`,border:`rgba(245,158,11,0.25)`,text:`#fcd34d`,icon:`⚡`,label:`Reto`},milestone:{band:`#eab308`,bg:`rgba(234,179,8,0.09)`,border:`rgba(234,179,8,0.30)`,text:`#fef08a`,icon:`🏆`,label:`Logro`},evaluation:{band:`#ef4444`,bg:`rgba(239,68,68,0.07)`,border:`rgba(239,68,68,0.25)`,text:`#fca5a5`,icon:`📝`,label:`Evaluación`}};function Vd({data:e}){let{nodo:t,isActive:n,isSelected:r,onClick:i}=e,a=Bd[t.tipoPedagogico]??Bd.concept,o=t.estado===`bloqueado`,s=t.estado===`completado`,c=t.estado===`disponible`,l=s?`#22c55e`:n&&c?a.band:a.border,u=n&&c?a.band:s?`#22c55e`:`transparent`;return(0,N.jsxs)(`div`,{className:`relative select-none transition-all duration-300`,style:{width:`200px`,opacity:o?.42:1},children:[(0,N.jsx)(Kc,{type:`target`,position:J.Left,className:`!w-2.5 !h-2.5 !border-2 !bg-transparent hover:!bg-white/20 transition-colors`,style:{borderColor:l,opacity:.5}}),(0,N.jsx)(Kc,{type:`source`,position:J.Right,className:`!w-2.5 !h-2.5 !border-2 !bg-transparent hover:!bg-white/20 transition-colors`,style:{borderColor:l,opacity:.5}}),(0,N.jsxs)(`div`,{onClick:()=>!o&&i(t),className:`rounded-2xl overflow-hidden cursor-pointer`,style:{background:s?`rgba(34,197,94,0.06)`:a.bg,border:`1.5px solid ${l}`,boxShadow:n&&c?`0 0 0 3px ${u}20, 0 0 20px ${u}25, 0 4px 24px rgba(0,0,0,0.4)`:s?`0 0 14px rgba(34,197,94,0.15), 0 4px 16px rgba(0,0,0,0.3)`:`0 4px 16px rgba(0,0,0,0.3)`,backdropFilter:`blur(8px)`},children:[(0,N.jsx)(`div`,{style:{height:`3px`,background:s?`#22c55e`:a.band,opacity:o?.3:1}}),(0,N.jsxs)(`div`,{className:`px-3 py-2.5 space-y-2`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsx)(`span`,{className:`text-[9px] font-bold uppercase tracking-wider px-1.5 py-0.5 rounded-md`,style:{background:`${a.band}18`,color:a.text,border:`1px solid ${a.band}25`},children:a.label}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1`,children:[n&&c&&(0,N.jsx)(`span`,{className:`text-[8px] font-bold px-1.5 py-0.5 rounded-full animate-pulse`,style:{background:`${a.band}25`,color:a.band,border:`1px solid ${a.band}40`},children:`ACTUAL`}),t.xpRecompensa>0&&!o&&(0,N.jsxs)(`span`,{className:`text-[9px] font-bold text-amber-400/70`,children:[`⭐`,t.xpRecompensa]})]})]}),(0,N.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,N.jsx)(`span`,{className:`text-[22px] leading-none flex-shrink-0 mt-0.5 ${o?`grayscale`:``}`,children:o?`🔒`:s?`✅`:a.icon}),(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,N.jsx)(`p`,{className:`text-[12px] font-bold leading-tight line-clamp-2 ${o?`text-white/35`:s?`text-emerald-300`:`text-white/90`}`,children:t.titulo}),(0,N.jsx)(`p`,{className:`text-[10px] text-white/30 mt-0.5 line-clamp-1 leading-snug`,children:t.concepto})]})]}),!o&&(0,N.jsxs)(`div`,{className:`flex items-center justify-between pt-1 border-t`,style:{borderColor:`${l}30`},children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,N.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full ${n?`animate-pulse`:``}`,style:{background:s?`#22c55e`:n?a.band:`rgba(255,255,255,0.2)`}}),(0,N.jsx)(`span`,{className:`text-[9px] text-white/30`,children:s?`Completado`:n?`En curso`:`Disponible`})]}),(0,N.jsx)(`button`,{className:`text-[10px] font-bold px-2.5 py-1 rounded-lg pointer-events-none ${s?`text-emerald-400 hover:bg-emerald-500/15`:`text-white/70 hover:text-white hover:bg-white/8`}`,style:s?{}:{background:`${a.band}15`,border:`1px solid ${a.band}25`},children:s?`↻ Revisar`:`Abrir →`})]})]})]}),r&&(0,N.jsx)(`div`,{className:`absolute inset-[-4px] rounded-[20px] pointer-events-none`,style:{border:`2px solid ${a.band}70`,boxShadow:`0 0 16px ${a.band}35`}}),n&&c&&(0,N.jsx)(`div`,{className:`absolute inset-[-3px] rounded-[18px] animate-ping pointer-events-none`,style:{border:`1px solid ${a.band}30`,animationDuration:`2s`}})]})}var Hd={focused:{color:`#22c55e`,label:`Atento`},distracted:{color:`#f59e0b`,label:`Distraído`},away:{color:`#ef4444`,label:`Ausente`},idle:{color:`rgba(255,255,255,0.2)`,label:`Cámara`},error:{color:`rgba(255,255,255,0.2)`,label:``}},Ud=1e4,Wd=40,Gd=2;function Kd({sessionId:e,onAttentionLost:t,enabled:n=!0}){let r=(0,E.useRef)(null),i=(0,E.useRef)(null),a=(0,E.useRef)(null),o=(0,E.useRef)(0),s=(0,E.useRef)(null),[c,l]=(0,E.useState)(`idle`),[u,d]=(0,E.useState)(!1),f=(0,E.useCallback)(async()=>{let n=r.current,a=i.current;if(!n||!a||n.readyState<2)return;let s=a.getContext(`2d`);if(!s)return;a.width=320,a.height=240,s.drawImage(n,0,0,320,240);let c=a.toDataURL(`image/jpeg`,.7).split(`,`)[1];try{let n=await fetch(`/api/hivelearn/vision`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({sessionId:e,imageBase64:c})});if(!n.ok){l(`error`);return}let r=await n.json();l(r.attention),r.score<Wd?(o.current++,o.current>=Gd&&(o.current=0,t?.())):o.current=0}catch{l(`error`)}},[e,t]);if((0,E.useEffect)(()=>{if(n)return navigator.mediaDevices?.getUserMedia({video:{width:320,height:240,facingMode:`user`}}).then(e=>{a.current=e,r.current&&(r.current.srcObject=e,r.current.play().catch(()=>{})),s.current=setInterval(f,Ud)}).catch(()=>{d(!0)}),()=>{s.current&&clearInterval(s.current),a.current?.getTracks().forEach(e=>e.stop())}},[n,f]),u||!n)return null;let p=Hd[c];return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`video`,{ref:r,style:{display:`none`},muted:!0,playsInline:!0}),(0,N.jsx)(`canvas`,{ref:i,style:{display:`none`}}),(0,N.jsxs)(`div`,{title:`Gemma te observa: ${p.label}`,className:`flex items-center gap-1.5 select-none`,style:{opacity:.6},children:[(0,N.jsx)(`div`,{className:`w-2 h-2 rounded-full ${c===`focused`?`animate-pulse`:``}`,style:{background:p.color,boxShadow:`0 0 6px ${p.color}80`}}),p.label&&(0,N.jsx)(`span`,{className:`text-[9px] font-medium`,style:{color:p.color},children:p.label})]})]})}var qd={hlNode:Vd};function Jd(){return(0,N.jsx)(bu,{children:(0,N.jsx)(Yd,{})})}function Yd(){let{flowToScreenPosition:e,getViewport:t}=Cc(),n=(0,E.useRef)(null),[r,i]=(0,E.useState)(null),{program:a,nodoActualId:o,nodosCompletados:s,xpFloat:c,selectedNodeId:l,selectNode:u,deselectNode:d,completarNodo:f,incrementarRacha:p,resetRacha:m,showXpFloat:h,setLastFeedback:g,setScreen:_,sessionId:v}=M(),{checkLogros:y}=sd(),[b,x]=(0,E.useState)({x:0,y:0}),[S,C]=(0,E.useState)(!1),w=(0,E.useMemo)(()=>a?.nodos.find(e=>e.id===l)??null,[a,l]),T=(0,E.useCallback)(()=>{if(!l||!n.current){i(null);return}let r=a?.nodos.find(e=>e.id===l);if(!r)return;let{zoom:o}=t(),s=e({x:r.posX,y:r.posY}),c=n.current.getBoundingClientRect(),u=s.x-c.left,d=s.y-c.top,f=200*o,p=130*o,m=c.width,h=c.height;if(o<.65){i({left:Math.max(16,(m-460)/2),top:Math.max(16,(h-480)/2)});return}let g=u+f+24;g+460>m-16&&(g=u-460-24,g<16&&(g=(m-460)/2));let _=d+p/2-80;_=Math.max(16,Math.min(_,h-480)),i({left:g,top:_})},[l,a,e,t]);(0,E.useEffect)(()=>{T()},[l,T]);let D=(0,E.useCallback)(e=>{u(e.id),g(null)},[u,g]),O=(0,E.useCallback)((e,t)=>{if(f(e.id,t),y(),t>0){let r=n.current?.querySelector(`[data-id="${e.id}"]`);if(r){let e=r.getBoundingClientRect(),t=n.current.getBoundingClientRect();x({x:e.left-t.left+e.width/2-40,y:e.top-t.top-10})}h(e.id,t),p()}else m()},[f,y,h,p,m]),k=(0,E.useMemo)(()=>a?a.nodos.map(e=>({id:e.id,type:`hlNode`,position:{x:e.posX,y:e.posY},data:{nodo:e,isActive:e.id===o,isSelected:e.id===l,onClick:D}})):[],[a,o,l,D]),A=(0,E.useMemo)(()=>a?a.nodos.slice(0,-1).map((e,t)=>{let n=a.nodos[t+1],r=e.estado===`completado`,i=e.estado===`disponible`,o=n.estado===`bloqueado`;return{id:`e-${e.id}-${n.id}`,source:e.id,target:n.id,animated:r||i,style:{stroke:r?`#22c55e`:i?`#3b82f6`:`#1e2a3e`,strokeWidth:r?2:i?1.5:1,opacity:o?.25:r?.7:.5,strokeDasharray:o?`5 5`:void 0}}}):[],[a]);if(!a)return null;let j=s.length>=a.nodos.filter(e=>e.tipoPedagogico!==`evaluation`).length;return(0,N.jsxs)(`div`,{className:`absolute inset-0 flex flex-col overflow-hidden`,style:{background:`#080d1a`},children:[(0,N.jsx)(cd,{tema:a.tema}),(0,N.jsx)(`div`,{className:`absolute top-2 right-32 z-20 flex items-center`,children:(0,N.jsx)(Kd,{sessionId:v??``,onAttentionLost:()=>C(!0),enabled:!!v})}),S&&(0,N.jsxs)(`div`,{className:`absolute inset-0 z-50 flex flex-col items-center justify-center gap-4`,style:{background:`rgba(8,13,26,0.85)`,backdropFilter:`blur(4px)`},children:[(0,N.jsx)(`span`,{className:`text-4xl`,children:`👀`}),(0,N.jsx)(`p`,{className:`text-white font-bold text-lg`,children:`¿Sigues ahí?`}),(0,N.jsx)(`p`,{className:`text-white/50 text-sm`,children:`Parece que te alejaste. Haz clic para continuar.`}),(0,N.jsx)(`button`,{onClick:()=>C(!1),className:`px-6 py-2.5 rounded-xl bg-blue-600 text-white font-bold text-sm hover:bg-blue-500 transition-all`,children:`¡Aquí estoy! →`})]}),j&&(0,N.jsx)(`div`,{className:`absolute top-14 right-4 z-20`,children:(0,N.jsx)(`button`,{onClick:()=>_(`evaluation`),className:`rounded-full bg-blue-600 px-4 py-1.5 text-xs font-bold text-white hover:bg-blue-500 shadow-lg shadow-blue-900/50 transition-all`,children:`📝 Evaluación final →`})}),(0,N.jsxs)(`div`,{ref:n,className:`flex-1 relative`,children:[(0,N.jsxs)(wu,{nodes:k,edges:A,nodeTypes:qd,fitView:!0,fitViewOptions:{padding:.3},proOptions:{hideAttribution:!0},nodesDraggable:!1,nodesConnectable:!1,selectNodesOnDrag:!1,onNodeClick:(e,t)=>{let n=a.nodos.find(e=>e.id===t.id);n&&n.estado!==`bloqueado`&&D(n)},onMove:T,style:{background:`#080d1a`},children:[(0,N.jsx)(ju,{color:`#1a2035`,gap:24,size:1.5,style:{opacity:.7}}),(0,N.jsx)(Bu,{className:`[&>button]:bg-[#111827] [&>button]:border-white/10 [&>button]:text-white/50 [&>button]:hover:bg-[#1f2937] [&>button]:hover:text-white/80`,showInteractive:!1})]}),c&&(0,N.jsx)(zd,{xp:c.xp,animKey:c.key,x:b.x,y:b.y}),(0,N.jsx)(Rd,{nodo:w,position:r,onClose:d,onComplete:O})]})]})}function Xd(){let{program:e,responderEvaluacion:t,respuestasEvaluacion:n,setPuntajeEvaluacion:r,setScreen:i,sessionId:a,xpTotal:o,logrosDesbloqueados:s}=M(),[c,l]=(0,E.useState)(0),[u,d]=(0,E.useState)(!1),f=e?.evaluacion.preguntas??[],p=f.length,m=c===p-1;return{preguntas:f,preguntaActual:c,total:p,esFinal:m,respuestasEvaluacion:n,responder:(0,E.useCallback)(e=>{t(c,e),m||l(e=>e+1)},[c,m,t]),finalizarEvaluacion:(0,E.useCallback)(async()=>{d(!0);try{let e=0;f.forEach((t,r)=>{let i=n[r];t.tipo===`multiple_choice`&&i===t.indiceCorrecto&&e++,t.tipo===`respuesta_corta`&&i&&e++});let t=Math.round(e/p*100);r(t),a&&fetch(`/api/hivelearn/complete-session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({sessionId:a,puntajeEvaluacion:t,xpTotal:o,logrosJson:JSON.stringify(s)})}).catch(()=>{}),i(`result`)}finally{d(!1)}},[f,n,p,r,i,a,o,s]),enviando:u}}function Zd(){let{program:e,perfil:t}=M(),{preguntas:n,preguntaActual:r,total:i,esFinal:a,responder:o,finalizarEvaluacion:s,enviando:c}=Xd(),[l,u]=(0,E.useState)(``);if(!e||n.length===0)return(0,N.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center`,children:(0,N.jsx)(`p`,{className:`text-gray-400`,children:`Cargando evaluación...`})});let d=n[r],f=e=>{o(e),u(``)};return(0,N.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-6`,children:(0,N.jsxs)(`div`,{className:`w-full max-w-lg`,children:[(0,N.jsxs)(`div`,{className:`text-center mb-6`,children:[(0,N.jsx)(`div`,{className:`text-4xl mb-2`,children:`📝`}),(0,N.jsx)(`h2`,{className:`text-xl font-bold text-white`,children:`Evaluación Final`}),(0,N.jsx)(`p`,{className:`text-sm text-gray-400 mt-1`,children:e.tema})]}),(0,N.jsxs)(`div`,{className:`mb-6`,children:[(0,N.jsxs)(`div`,{className:`flex justify-between text-xs text-gray-500 mb-1`,children:[(0,N.jsxs)(`span`,{children:[`Pregunta `,r+1,` de `,i]}),(0,N.jsxs)(`span`,{className:`text-blue-400`,children:[Math.round(r/i*100),`%`]})]}),(0,N.jsx)(`div`,{className:`h-1.5 rounded-full bg-gray-800`,children:(0,N.jsx)(`div`,{className:`h-full rounded-full bg-blue-500 transition-all duration-300`,style:{width:`${r/i*100}%`}})})]}),(0,N.jsxs)(`div`,{className:`bg-gray-900 rounded-2xl border border-gray-800 p-6 space-y-4`,children:[(0,N.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,N.jsx)(`span`,{className:`shrink-0 rounded-full bg-blue-500/20 border border-blue-500 w-6 h-6 flex items-center justify-center text-xs font-bold text-blue-400`,children:r+1}),(0,N.jsx)(`p`,{className:`text-sm text-white font-medium`,children:d.pregunta})]}),d.tipo===`multiple_choice`&&d.opciones&&(0,N.jsx)(`div`,{className:`space-y-2`,children:d.opciones.map((e,t)=>(0,N.jsxs)(`button`,{onClick:()=>f(t),className:`w-full text-left rounded-xl border border-gray-700 bg-gray-800 px-4 py-3 text-sm text-gray-300 hover:border-blue-500 hover:text-white transition-all`,children:[(0,N.jsxs)(`span`,{className:`font-bold text-blue-400 mr-2`,children:[String.fromCharCode(65+t),`.`]}),e]},t))}),d.tipo===`respuesta_corta`&&(0,N.jsxs)(`div`,{className:`space-y-3`,children:[(0,N.jsx)(`textarea`,{className:`w-full rounded-xl bg-gray-800 border border-gray-700 px-4 py-3 text-sm text-white focus:border-blue-500 outline-none resize-none h-24`,placeholder:`Escribe tu respuesta...`,value:l,onChange:e=>u(e.target.value)}),(0,N.jsx)(`button`,{onClick:()=>l.trim()&&f(l.trim()),disabled:!l.trim(),className:`w-full rounded-xl bg-blue-600 py-3 text-sm font-bold text-white hover:bg-blue-500 disabled:opacity-40 disabled:cursor-not-allowed`,children:a?`🏁 Finalizar evaluación`:`Siguiente →`})]}),d.tipo===`multiple_choice`&&a&&(0,N.jsx)(`button`,{onClick:s,disabled:c,className:`w-full mt-2 rounded-xl bg-green-600 py-3 text-sm font-bold text-white hover:bg-green-500 disabled:opacity-40`,children:c?`Calculando resultado...`:`🏁 Ver resultado final`})]}),(0,N.jsx)(`p`,{className:`text-center text-xs text-gray-600 mt-4`,children:d.tipo===`multiple_choice`?`📊 Selección múltiple`:`✍️ Respuesta corta`})]})})}function Qd({onClose:e}){let{sessionId:t}=M(),[n,r]=(0,E.useState)(0),[i,a]=(0,E.useState)(0),[o,s]=(0,E.useState)(``),[c,l]=(0,E.useState)(!1),[u,d]=(0,E.useState)(!1),f=async()=>{if(!n||!t){e();return}d(!0);try{await fetch(`/api/hivelearn/rate`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({sessionId:t,rating:n,comentario:o.trim()||void 0})}),l(!0),setTimeout(e,1800)}catch{e()}finally{d(!1)}},p=i||n;return(0,N.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,style:{background:`rgba(8,13,26,0.85)`,backdropFilter:`blur(4px)`},children:(0,N.jsx)(`div`,{className:`relative flex flex-col items-center gap-5 rounded-3xl px-8 py-8 w-full max-w-sm`,style:{background:`rgba(8,13,26,0.97)`,border:`1px solid rgba(255,255,255,0.08)`,boxShadow:`0 32px 80px rgba(0,0,0,0.7)`},children:c?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:`text-5xl`,children:`🎉`}),(0,N.jsx)(`p`,{className:`text-white font-bold text-lg text-center`,children:`¡Gracias por tu calificación!`}),(0,N.jsx)(`p`,{className:`text-white/40 text-sm text-center`,children:`Esto nos ayuda a mejorar la experiencia.`})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,N.jsx)(`span`,{className:`text-5xl`,children:`🏆`}),(0,N.jsx)(`h2`,{className:`text-white font-bold text-xl`,children:`¡Lección completada!`}),(0,N.jsx)(`p`,{className:`text-white/40 text-sm text-center`,children:`¿Cómo fue tu experiencia de aprendizaje?`})]}),(0,N.jsx)(`div`,{className:`flex gap-2`,children:[1,2,3,4,5].map(e=>(0,N.jsx)(`button`,{onClick:()=>r(e),onMouseEnter:()=>a(e),onMouseLeave:()=>a(0),className:`text-3xl transition-transform hover:scale-110 active:scale-95`,style:{filter:e<=p?`none`:`grayscale(1) opacity(0.3)`},children:`⭐`},e))}),n>0&&(0,N.jsx)(`p`,{className:`text-white/50 text-xs -mt-2`,children:[``,`¡Puedes mejorar!`,`Regular`,`Bien`,`Muy bien`,`¡Excelente!`][n]}),(0,N.jsx)(`textarea`,{value:o,onChange:e=>s(e.target.value),placeholder:`Comentario opcional... ¿qué mejorarías?`,maxLength:200,rows:2,className:`w-full text-xs text-white/70 rounded-xl px-3 py-2 resize-none outline-none`,style:{background:`rgba(255,255,255,0.04)`,border:`1px solid rgba(255,255,255,0.08)`}}),(0,N.jsxs)(`div`,{className:`flex gap-2.5 w-full`,children:[(0,N.jsx)(`button`,{onClick:e,className:`flex-1 py-2.5 rounded-xl text-sm text-white/35 hover:text-white/60 transition-all`,style:{border:`1px solid rgba(255,255,255,0.07)`},children:`Omitir`}),(0,N.jsx)(`button`,{onClick:f,disabled:!n||u,className:`flex-[2] py-2.5 rounded-xl text-sm font-bold text-white transition-all disabled:opacity-40`,style:{background:n?`#3b82f6`:`rgba(255,255,255,0.05)`},children:u?`Guardando...`:`Enviar calificación`})]})]})})})}function $d(e){return e>=90?{emoji:`🏆`,texto:`¡Excelente!`,color:`text-yellow-400`}:e>=70?{emoji:`⭐`,texto:`¡Muy bien!`,color:`text-amber-400`}:e>=50?{emoji:`👍`,texto:`Bien hecho`,color:`text-blue-400`}:{emoji:`💪`,texto:`¡Sigue practicando!`,color:`text-purple-400`}}function ef(){let{program:e,perfil:t,puntajeEvaluacion:n,xpTotal:r,logrosDesbloqueados:i,nodosCompletados:a,tiempoInicioSesion:o,reset:s,setScreen:c}=M(),{nivelActual:l,formatXP:u}=sd(),[d,f]=(0,E.useState)(!1);(0,E.useEffect)(()=>{let e=setTimeout(()=>f(!0),1200);return()=>clearTimeout(e)},[]);let p=n??0,m=$d(p),h=o?Math.round((Date.now()-o)/6e4):0,g=e?.gamificacion.logros.filter(e=>i.includes(e.id))??[];return(0,N.jsxs)(N.Fragment,{children:[d&&(0,N.jsx)(Qd,{onClose:()=>f(!1)}),(0,N.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-6`,children:(0,N.jsxs)(`div`,{className:`w-full max-w-md space-y-6`,children:[(0,N.jsxs)(`div`,{className:`text-center space-y-3`,children:[(0,N.jsx)(`div`,{className:`text-6xl`,children:m.emoji}),(0,N.jsx)(`h2`,{className:`text-3xl font-bold ${m.color}`,children:m.texto}),(0,N.jsxs)(`div`,{className:`text-6xl font-black text-white`,children:[p,`%`]}),(0,N.jsx)(`p`,{className:`text-gray-400 text-sm`,children:e?.gamificacion.mensajeCelebracion})]}),(0,N.jsx)(`div`,{className:`grid grid-cols-3 gap-3`,children:[{label:`XP ganado`,value:u(r),emoji:`⚡`},{label:`Nodo completado`,value:`${a.length}/${e?.nodos.length??0}`,emoji:`📚`},{label:`Tiempo`,value:`${h} min`,emoji:`⏱`}].map(e=>(0,N.jsxs)(`div`,{className:`rounded-xl bg-gray-900 border border-gray-800 p-3 text-center`,children:[(0,N.jsx)(`span`,{className:`text-2xl`,children:e.emoji}),(0,N.jsx)(`p`,{className:`text-sm font-bold text-white mt-1`,children:e.value}),(0,N.jsx)(`p`,{className:`text-xs text-gray-500`,children:e.label})]},e.label))}),(0,N.jsxs)(`div`,{className:`rounded-xl bg-blue-500/10 border border-blue-500/30 p-4 text-center`,children:[(0,N.jsx)(`p`,{className:`text-xs text-blue-400/70 uppercase tracking-widest`,children:`Nivel alcanzado`}),(0,N.jsx)(`p`,{className:`text-2xl font-black text-blue-400 mt-1`,children:l})]}),g.length>0&&(0,N.jsxs)(`div`,{className:`space-y-2`,children:[(0,N.jsx)(`p`,{className:`text-xs text-gray-500 font-bold uppercase tracking-widest`,children:`Logros desbloqueados`}),(0,N.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:g.map(e=>(0,N.jsxs)(`div`,{className:`rounded-xl bg-gray-900 border border-gray-800 p-3 flex items-center gap-2`,children:[(0,N.jsx)(`span`,{className:`text-2xl`,children:e.emoji}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`p`,{className:`text-xs font-bold text-white`,children:e.nombre}),(0,N.jsxs)(`p`,{className:`text-[10px] text-gray-500`,children:[`+`,e.xp,` XP`]})]})]},e.id))})]}),(0,N.jsxs)(`div`,{className:`flex gap-3`,children:[(0,N.jsx)(`button`,{onClick:s,className:`flex-1 rounded-xl bg-blue-600 py-3 text-sm font-bold text-white hover:bg-blue-500`,children:`🐝 Nueva lección`}),(0,N.jsx)(`button`,{onClick:()=>c(`sessions`),className:`flex-1 rounded-xl border border-gray-700 py-3 text-sm text-gray-400 hover:border-gray-500`,children:`← Mis sesiones`})]})]})})]})}function tf(){let e=M(e=>e.screen),t=M(e=>e.isGenerating),n=M(e=>e.program),r=M(e=>e.setSelectedProvider),i=M(e=>e.setSelectedModel),a=M(e=>e.setScreen),[o,s]=(0,E.useState)(!1);if((0,E.useEffect)(()=>{o||(async()=>{try{let e=await(await fetch(`/api/hivelearn/config`)).json();e.configured&&e.providerId&&e.modelId&&(r(e.providerId),i(e.modelId))}catch{}t||a(`sessions`),s(!0)})()},[o,r,i,a,t]),!o)return(0,N.jsx)(`div`,{className:`flex-1 flex flex-col min-h-0 -m-4 bg-gray-950 items-center justify-center flex`,children:(0,N.jsxs)(`div`,{className:`text-center`,children:[(0,N.jsx)(`div`,{className:`text-6xl mb-4 animate-pulse`,children:`🐝`}),(0,N.jsx)(`p`,{className:`text-blue-400 font-bold`,children:`Cargando HiveLearn...`})]})});let c=e===`loading`&&!n&&!t?`sessions`:e;return(0,N.jsxs)(`div`,{className:`flex-1 flex flex-col min-h-0 -m-4 bg-gray-950 overflow-hidden relative`,children:[c===`provider-select`&&(0,N.jsx)(P,{}),c===`sessions`&&(0,N.jsx)(I,{}),c===`profile`&&(0,N.jsx)(B,{}),c===`goal`&&(0,N.jsx)(te,{}),c===`loading`&&(0,N.jsx)(ue,{}),c===`canvas`&&(0,N.jsx)(Jd,{}),c===`evaluation`&&(0,N.jsx)(Zd,{}),c===`result`&&(0,N.jsx)(ef,{})]})}export{tf as LessonCanvas};
|