@johpaz/hive-agents 0.0.24 → 0.0.26

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.
@@ -0,0 +1,22 @@
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-B2W3psUT.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})}));function N(e,t={}){let n=typeof window<`u`?localStorage.getItem(`hive-auth-token`):null,r={...t.headers};return n&&(r.Authorization=`Bearer ${n}`),fetch(e,{...t,headers:r})}var P=u();function ee(){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 N(`/api/providers`)).json()).providers||[]).filter(e=>e.enabled&&e.active)),c(((await(await N(`/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,P.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-4 sm:p-6`,children:(0,P.jsxs)(`div`,{className:`text-center`,children:[(0,P.jsx)(`div`,{className:`text-5xl sm:text-6xl mb-3 sm:mb-4 animate-pulse`,children:`🐝`}),(0,P.jsx)(`h2`,{className:`text-xl sm:text-2xl font-bold text-blue-400 mb-2`,children:`Cargando...`}),(0,P.jsx)(`p`,{className:`text-sm sm:text-base text-gray-400`,children:`Obteniendo proveedores y modelos disponibles`})]})}):d?(0,P.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-4 sm:p-6`,children:(0,P.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,P.jsxs)(`div`,{className:`text-center`,children:[(0,P.jsx)(`div`,{className:`text-5xl sm:text-6xl mb-3`,children:`⚠️`}),(0,P.jsx)(`h2`,{className:`text-xl sm:text-2xl font-bold text-red-400 mb-2`,children:`Error`}),(0,P.jsx)(`p`,{className:`text-sm text-gray-400 mb-4`,children:d}),(0,P.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,P.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-4 sm:p-6`,children:(0,P.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,P.jsxs)(`div`,{className:`text-center`,children:[(0,P.jsx)(`div`,{className:`text-5xl sm:text-6xl mb-3`,children:`🔧`}),(0,P.jsx)(`h2`,{className:`text-xl sm:text-2xl font-bold text-blue-400 mb-2`,children:`Sin proveedores`}),(0,P.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,P.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,P.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-4 sm:p-6`,children:(0,P.jsxs)(`div`,{className:`w-full max-w-md sm:max-w-lg`,children:[(0,P.jsxs)(`div`,{className:`text-center mb-6 sm:mb-8`,children:[(0,P.jsx)(`div`,{className:`text-5xl sm:text-6xl mb-2 sm:mb-3`,children:`🐝`}),(0,P.jsx)(`h1`,{className:`text-2xl sm:text-3xl font-bold text-blue-400`,children:`HiveLearn`}),(0,P.jsx)(`p`,{className:`text-sm sm:text-base text-gray-400 mt-1`,children:`Selecciona tu proveedor y modelo de IA`})]}),(0,P.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,P.jsx)(`h2`,{className:`text-base sm:text-lg font-bold text-white`,children:`Configuración del modelo`}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`label`,{className:`block text-xs text-gray-400 mb-2`,children:`Proveedor de IA`}),(0,P.jsx)(`div`,{className:`grid grid-cols-1 gap-2 max-h-40 sm:max-h-48 overflow-y-auto`,children:a.map(t=>(0,P.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,P.jsx)(`div`,{className:`font-bold`,children:t.name}),(0,P.jsxs)(`div`,{className:`text-[10px] sm:text-xs text-gray-500 mt-1`,children:[`ID: `,t.id]})]},t.id))})]}),e&&(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`label`,{className:`block text-xs text-gray-400 mb-2`,children:`Modelo`}),p.length===0?(0,P.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,P.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,P.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,P.jsx)(`div`,{className:`font-bold`,children:e.name}),e.context_window&&(0,P.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,P.jsxs)(`div`,{className:`bg-blue-500/10 border border-blue-500/50 rounded-lg p-2.5 sm:p-3`,children:[(0,P.jsx)(`div`,{className:`text-[10px] sm:text-xs text-blue-400 mb-1`,children:`Selección actual:`}),(0,P.jsxs)(`div`,{className:`text-xs sm:text-sm text-white`,children:[(0,P.jsx)(`span`,{className:`font-bold`,children:h}),` → `,(0,P.jsx)(`span`,{className:`font-bold`,children:g})]})]}),(0,P.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 N(`/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 N(`/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 N(`/api/hivelearn/sessions/${e}`,{method:`DELETE`}),o(t=>t.filter(t=>t.session_id!==e))}catch{}finally{f(null)}}};return(0,P.jsxs)(`div`,{className:`flex-1 flex flex-col min-h-0 bg-gray-950 p-6 overflow-y-auto`,children:[(0,P.jsxs)(`div`,{className:`flex items-center justify-between mb-8`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,P.jsx)(`span`,{className:`text-3xl`,children:`🐝`}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h1`,{className:`text-xl font-bold text-white`,children:`HiveLearn`}),(0,P.jsx)(`p`,{className:`text-xs text-gray-500`,children:`Tus sesiones de aprendizaje`})]})]}),(0,P.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,P.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,P.jsxs)(`div`,{className:`text-center`,children:[(0,P.jsx)(`div`,{className:`text-5xl mb-3 animate-pulse`,children:`🐝`}),(0,P.jsx)(`p`,{className:`text-gray-400 text-sm`,children:`Cargando sesiones...`})]})}):a.length===0?(0,P.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,P.jsxs)(`div`,{className:`text-center space-y-4`,children:[(0,P.jsx)(`div`,{className:`text-6xl`,children:`📚`}),(0,P.jsx)(`h2`,{className:`text-lg font-bold text-white`,children:`Sin sesiones aún`}),(0,P.jsx)(`p`,{className:`text-gray-500 text-sm`,children:`Crea tu primera lección personalizada`}),(0,P.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,P.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,P.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,P.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,P.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,P.jsx)(`span`,{className:`text-[11px] text-gray-600`,children:F(e.created_at)})]}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`text-white font-semibold text-sm leading-snug line-clamp-2`,children:e.meta||`Sin tema`}),(0,P.jsx)(`p`,{className:`text-gray-500 text-xs mt-1`,children:e.nombre||e.alumno_id})]}),(0,P.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,P.jsxs)(`div`,{className:`flex justify-between text-xs text-gray-500`,children:[(0,P.jsxs)(`span`,{children:[e.nodos_completados,`/`,e.total_nodos,` nodos`]}),t&&e.evaluacion_puntaje!=null&&(0,P.jsxs)(`span`,{className:`text-amber-400 font-bold`,children:[e.evaluacion_puntaje,`%`]})]}),(0,P.jsx)(`div`,{className:`h-1.5 rounded-full bg-gray-800 overflow-hidden`,children:(0,P.jsx)(`div`,{className:`h-full rounded-full transition-all ${t?`bg-green-500`:`bg-blue-500`}`,style:{width:`${n}%`}})})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,P.jsx)(`span`,{className:`text-yellow-400 text-sm`,children:`⚡`}),(0,P.jsxs)(`span`,{className:`text-xs text-gray-400`,children:[e.xp_total,` XP · `,e.nivel_alcanzado]})]}),(0,P.jsxs)(`div`,{className:`flex gap-2 mt-auto pt-2 border-t border-gray-800`,children:[(0,P.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,P.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,P.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,P.jsxs)(`div`,{className:`absolute inset-0 z-0 pointer-events-none`,children:[(0,P.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,P.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,P.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,P.jsx)(`div`,{className:`absolute inset-0`,style:{background:`linear-gradient(to right, transparent 55%, ${R.surfaceContainerLowest}ee 100%)`}})]}),(0,P.jsx)(`div`,{className:`relative z-10 flex items-center gap-2`,children:(0,P.jsx)(`span`,{className:`text-2xl font-extrabold tracking-tight`,style:{fontFamily:`'Manrope', 'Inter', sans-serif`,color:R.onSurface},children:`🐝 HiveLearn`})}),(0,P.jsxs)(`div`,{className:`relative z-10 max-w-sm`,children:[(0,P.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,P.jsx)(`span`,{style:{color:R.primary},children:`curiosidad`}),` `,`al siguiente nivel.`]}),(0,P.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,P.jsxs)(`div`,{className:`relative z-10 flex items-center gap-3 text-sm font-medium`,style:{color:`${R.onSurfaceVariant}77`},children:[(0,P.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,P.jsxs)(`div`,{className:`flex h-full overflow-hidden`,style:{backgroundColor:R.surfaceDim},children:[(0,P.jsx)(z,{}),(0,P.jsx)(`section`,{className:`w-full lg:w-[60%] flex flex-col overflow-y-auto`,style:{backgroundColor:R.surfaceDim},children:(0,P.jsxs)(`div`,{className:`w-full max-w-xl mx-auto px-6 pt-8 pb-10 sm:px-10 sm:pt-10`,children:[(0,P.jsxs)(`div`,{className:`hidden`,style:{fontFamily:`'Manrope', sans-serif`,fontWeight:700,fontSize:`1.25rem`,color:R.onSurface},children:[`🐝 `,(0,P.jsx)(`span`,{children:`HiveLearn`})]}),(0,P.jsxs)(`header`,{className:`mb-10`,children:[(0,P.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,P.jsx)(`p`,{className:`text-base md:text-lg`,style:{color:R.onSurfaceVariant},children:`Configura tu perfil de Scholar para comenzar la exploración.`})]}),(0,P.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,P.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-5`,children:[(0,P.jsxs)(`div`,{className:`space-y-2`,children:[(0,P.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Nombre del Scholar`}),(0,P.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,P.jsxs)(`div`,{className:`space-y-2`,children:[(0,P.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Edad`}),(0,P.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,P.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,P.jsxs)(`div`,{className:`text-right flex-shrink-0`,style:{minWidth:`72px`},children:[(0,P.jsxs)(`p`,{className:`text-sm font-bold`,style:{color:R.primary},children:[n.edad,` años`]}),(0,P.jsxs)(`p`,{className:`text-[10px]`,style:{color:R.onSurfaceVariant},children:[c,` `,l]})]})]})]})]}),(0,P.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-5`,children:[(0,P.jsxs)(`div`,{className:`space-y-2`,children:[(0,P.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,P.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:[15,30,45].map(e=>{let t=n.tiempoSesion===e;return(0,P.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,P.jsxs)(`div`,{className:`space-y-2`,children:[(0,P.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Experiencia Previa`}),(0,P.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,P.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,P.jsx)(`span`,{className:`text-lg`,children:t}),(0,P.jsx)(`span`,{children:i})]},e)})})]})]}),(0,P.jsxs)(`div`,{className:`space-y-3`,children:[(0,P.jsx)(`label`,{className:`block text-xs font-bold uppercase tracking-widest`,style:{color:R.primary,fontFamily:`'Inter', sans-serif`},children:`Estilo de Aprendizaje`}),(0,P.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,P.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,P.jsx)(`span`,{className:`text-2xl mb-2 transition-transform duration-300 group-hover:scale-110`,style:{display:`block`},children:t}),i]},e)})})]}),(0,P.jsxs)(`div`,{className:`pt-2 flex flex-col gap-3`,children:[(0,P.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,P.jsx)(`span`,{"aria-hidden":!0,children:`→`})]}),(0,P.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,P.jsxs)(`div`,{className:`mt-8 flex items-center justify-center gap-8`,children:[(0,P.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,P.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:R.primary,boxShadow:`0 0 0 4px ${R.primary}33`}}),(0,P.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider`,style:{color:R.primary},children:`Perfil`})]}),(0,P.jsx)(`div`,{className:`w-12 h-px`,style:{backgroundColor:`${R.outlineVariant}33`}}),(0,P.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,P.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:`${R.outlineVariant}55`}}),(0,P.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider`,style:{color:`${R.onSurfaceVariant}55`},children:`Intereses`})]}),(0,P.jsx)(`div`,{className:`w-12 h-px`,style:{backgroundColor:`${R.outlineVariant}33`}}),(0,P.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,P.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:`${R.outlineVariant}55`}}),(0,P.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider`,style:{color:`${R.onSurfaceVariant}55`},children:`Plan`})]})]})]})}),(0,P.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 V(){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 N(`/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 H=[{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`}],U={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}=V(),[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,P.jsxs)(`div`,{className:`flex h-full overflow-hidden`,style:{backgroundColor:U.surfaceDim},children:[(0,P.jsxs)(`section`,{className:`relative hidden md:flex md:w-5/12 lg:w-[42%] overflow-hidden flex-col`,style:{backgroundColor:U.surfaceContainerLowest},children:[(0,P.jsxs)(`div`,{className:`absolute inset-0 z-0`,children:[(0,P.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,P.jsx)(`div`,{className:`absolute inset-0`,style:{background:`linear-gradient(to top, ${U.surfaceContainerLowest} 0%, ${U.surfaceContainerLowest}55 30%, transparent 65%)`}}),(0,P.jsx)(`div`,{className:`absolute inset-0`,style:{background:`linear-gradient(to right, transparent 50%, ${U.surfaceContainerLowest}cc 100%)`}})]}),(0,P.jsx)(`div`,{className:`absolute top-1/3 left-1/4 w-72 h-72 rounded-full pointer-events-none`,style:{background:`radial-gradient(circle, ${U.secondaryContainer}44 0%, transparent 70%)`,filter:`blur(55px)`}}),(0,P.jsx)(`div`,{className:`absolute bottom-1/4 right-1/3 w-56 h-56 rounded-full pointer-events-none`,style:{background:`radial-gradient(circle, ${U.primaryContainer}2a 0%, transparent 70%)`,filter:`blur(45px)`}}),(0,P.jsxs)(`div`,{className:`relative z-10 flex flex-col p-8 xl:p-10 pt-8 h-full`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-3 mb-8`,children:[(0,P.jsx)(`div`,{className:`h-10 w-10 rounded-2xl flex items-center justify-center text-xl`,style:{backgroundColor:`${U.primary}1a`,backdropFilter:`blur(8px)`},children:`🐝`}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`font-bold text-base tracking-tight leading-tight`,style:{color:U.onSurface,fontFamily:`'Manrope', 'Inter', sans-serif`},children:`HiveLearn`}),(0,P.jsx)(`p`,{className:`text-[11px]`,style:{color:`${U.onSurfaceVariant}70`},children:`Aprendizaje adaptativo · 100% privado`})]})]}),(0,P.jsxs)(`div`,{className:`inline-flex items-center gap-2 px-4 py-2 rounded-full mb-6 self-start`,style:{backgroundColor:`${U.secondaryContainer}2a`,backdropFilter:`blur(16px)`,WebkitBackdropFilter:`blur(16px)`},children:[(0,P.jsx)(`span`,{className:`w-2 h-2 rounded-full animate-pulse`,style:{backgroundColor:U.secondary}}),(0,P.jsx)(`span`,{className:`text-sm font-medium tracking-wide`,style:{color:U.secondary,fontFamily:`'Inter', sans-serif`},children:`16 agentes listos para enseñarte`})]}),(0,P.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:U.onSurface},children:[`Expande tu`,` `,(0,P.jsx)(`span`,{style:{background:`linear-gradient(135deg, ${U.primary}, ${U.secondary})`,WebkitBackgroundClip:`text`,WebkitTextFillColor:`transparent`,backgroundClip:`text`},children:`horizonte.`})]}),(0,P.jsx)(`p`,{className:`text-base leading-relaxed max-w-xs`,style:{color:U.onSurfaceVariant},children:`Nuestra red neuronal de expertos está lista para sintetizar cualquier conocimiento para ti.`})]})]}),(0,P.jsx)(`main`,{className:`flex-1 flex flex-col overflow-y-auto`,style:{backgroundColor:U.surfaceDim},children:(0,P.jsxs)(`div`,{className:`w-full max-w-lg mx-auto px-6 pt-8 pb-10 md:px-10 md:pt-8`,children:[(0,P.jsxs)(`header`,{className:`mb-8`,children:[(0,P.jsxs)(`h2`,{className:`text-2xl md:text-3xl font-bold mb-1`,style:{fontFamily:`'Manrope', 'Inter', sans-serif`,color:U.onSurface},children:[`¡Hola,`,` `,(0,P.jsx)(`span`,{style:{background:`linear-gradient(135deg, ${U.primary}, ${U.primaryContainer})`,WebkitBackgroundClip:`text`,WebkitTextFillColor:`transparent`,backgroundClip:`text`},children:e?.nombre??`alumno`}),`! 👋`]}),(0,P.jsx)(`p`,{className:`text-lg`,style:{color:U.onSurfaceVariant},children:`¿Qué quieres aprender hoy?`})]}),(0,P.jsxs)(`div`,{className:`relative mb-6`,children:[(0,P.jsx)(`div`,{className:`absolute -inset-px rounded-2xl pointer-events-none transition-opacity duration-500`,style:{background:`linear-gradient(135deg, ${U.primary}44, ${U.secondary}22)`,filter:`blur(6px)`,opacity:o?1:.2}}),(0,P.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:U.surfaceContainerLow,color:U.onSurface,border:`1px solid ${o?`${U.primary}55`:`${U.outlineVariant}22`}`,boxShadow:o?`0 0 0 3px ${U.primary}0c, 0 6px 30px ${U.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,P.jsxs)(`div`,{className:`space-y-3 mb-8`,children:[(0,P.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.2em]`,style:{color:`${U.onSurfaceVariant}77`},children:`Sugerencias para ti`}),(0,P.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:H.map(e=>{let t=i===e.text;return(0,P.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?`${U.primary}20`:`${U.surfaceContainerHigh}bb`,color:t?U.primary:U.onSurfaceVariant,border:t?`1px solid ${U.primary}44`:`1px solid ${U.outlineVariant}20`,boxShadow:t?`0 0 14px ${U.primary}18`:`none`},children:[(0,P.jsx)(`span`,{className:`mr-1`,children:e.emoji}),e.text]},e.text)})})]}),(0,P.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,P.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:U.onSurfaceVariant},onMouseEnter:e=>{e.currentTarget.style.color=U.onSurface,e.currentTarget.style.backgroundColor=`${U.surfaceContainerHigh}88`},onMouseLeave:e=>{e.currentTarget.style.color=U.onSurfaceVariant,e.currentTarget.style.backgroundColor=`transparent`},children:`← Atrás`}),(0,P.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, ${U.primary}, ${U.primaryContainer})`,color:U.onPrimaryFixed,boxShadow:`0 6px 24px ${U.primary}28, 0 3px 10px ${U.primaryContainer}33`,fontFamily:`'Manrope', sans-serif`},onMouseEnter:e=>{i.trim()&&(e.currentTarget.style.boxShadow=`0 10px 36px ${U.primary}44, 0 4px 14px ${U.primaryContainer}44`)},onMouseLeave:e=>{e.currentTarget.style.boxShadow=`0 6px 24px ${U.primary}28, 0 3px 10px ${U.primaryContainer}33`},children:`🐝 Iniciar Aprendizaje`})]})]})})]})}var ne=[{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:`🧠`}],re={"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...`}}},ie={idle:`rgba(255,255,255,0.15)`,pending:`#64748b`,running:`#3b82f6`,thinking:`#a855f7`,tool_call:`#06b6d4`,completed:`#22c55e`,failed:`#ef4444`},ae={idle:`Esperando`,pending:`En cola`,running:`Trabajando`,thinking:`Pensando`,tool_call:`Usando tool`,completed:`Completado`,failed:`Error`};function oe({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,P.jsxs)(`div`,{className:`relative flex items-center justify-center`,children:[(0,P.jsxs)(`svg`,{className:`absolute w-[190px] h-[190px] -rotate-90`,viewBox:`0 0 190 190`,children:[(0,P.jsx)(`circle`,{cx:`95`,cy:`95`,r:80,fill:`none`,stroke:`rgba(255,255,255,0.04)`,strokeWidth:`1`,strokeDasharray:`4 6`}),(0,P.jsx)(`circle`,{cx:`95`,cy:`95`,r:80,fill:`none`,stroke:`rgba(255,255,255,0.06)`,strokeWidth:`4`}),(0,P.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,P.jsx)(`circle`,{cx:`95`,cy:`95`,r:70,fill:`none`,stroke:`${a}20`,strokeWidth:`1`})]}),(0,P.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,P.jsx)(`span`,{className:`text-4xl select-none mb-1`,children:`🐝`}),(0,P.jsx)(`span`,{className:`text-[10px] font-bold text-white/40 uppercase tracking-widest`,children:`Coordinador`})]}),(0,P.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,P.jsx)(`div`,{className:`absolute -top-9 left-1/2 -translate-x-1/2`,children:(0,P.jsxs)(`span`,{className:`text-[11px] font-bold tabular-nums`,style:{color:a},children:[e,`%`]})})]})}function se({workerNodes:e}){return(0,P.jsxs)(`svg`,{className:`absolute inset-0 pointer-events-none`,width:`620`,height:`620`,style:{overflow:`visible`},children:[(0,P.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=ie[t];return(0,P.jsxs)(`linearGradient`,{id:`grad-${e.id}`,x1:310,y1:310,x2:i,y2:a,gradientUnits:`userSpaceOnUse`,children:[(0,P.jsx)(`stop`,{offset:`0%`,stopColor:o,stopOpacity:`0.6`}),(0,P.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=ie[t],s=t===`running`||t===`thinking`||t===`tool_call`,c=t===`completed`,l=`beam-path-${e.id}`;return(0,P.jsxs)(`g`,{children:[(0,P.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,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`path`,{id:l,d:`M 310 310 L ${i} ${a}`,fill:`none`,stroke:`none`}),(0,P.jsx)(`circle`,{r:`3`,fill:o,fillOpacity:`0.9`,style:{filter:`drop-shadow(0 0 4px ${o})`},children:(0,P.jsx)(`animateMotion`,{dur:t===`tool_call`?`0.8s`:`1.4s`,repeatCount:`indefinite`,children:(0,P.jsx)(`mpath`,{href:`#${l}`})})}),(0,P.jsx)(`circle`,{r:`2`,fill:`white`,fillOpacity:`0.3`,children:(0,P.jsx)(`animateMotion`,{dur:t===`tool_call`?`0.8s`:`1.4s`,repeatCount:`indefinite`,begin:`0.7s`,children:(0,P.jsx)(`mpath`,{href:`#${l}`})})})]}),c&&(0,P.jsx)(`circle`,{cx:i,cy:a,r:`5`,fill:o,fillOpacity:`0.12`,stroke:o,strokeOpacity:`0.3`,strokeWidth:`1`})]},e.id)})]})}function ce({agent:e,status:t,x:n,y:r}){let i=re[e.id],a=ie[t],o=i?.acciones[t]??ae[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,P.jsxs)(`div`,{className:`absolute pointer-events-none z-50 transition-all duration-200`,style:{left:`${f}px`,top:`${p}px`,width:`230px`},children:[(0,P.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,P.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,P.jsx)(`span`,{className:`text-lg`,children:e.icon}),(0,P.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,P.jsx)(`p`,{className:`text-[12px] font-bold text-white/90 leading-tight`,children:e.label}),(0,P.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,P.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full animate-pulse`,style:{background:a}}),ae[t]]})]})]}),(0,P.jsx)(`p`,{className:`text-[10px] text-white/40 leading-relaxed mb-2`,children:i?.rol}),s&&(0,P.jsxs)(`div`,{className:`flex items-start gap-1.5 pt-2 border-t border-white/5`,children:[(0,P.jsx)(`span`,{className:`text-[10px] mt-px`,children:`⚡`}),(0,P.jsx)(`p`,{className:`text-[10px] font-medium leading-relaxed`,style:{color:a},children:o})]}),c&&(0,P.jsxs)(`div`,{className:`flex items-center gap-1.5 pt-2 border-t border-white/5`,children:[(0,P.jsx)(`span`,{className:`text-[10px]`,children:`✅`}),(0,P.jsx)(`p`,{className:`text-[10px] font-medium text-emerald-400`,children:`Tarea entregada al coordinador`})]})]}),(0,P.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 le({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=ie[t],u=o||s||c||t===`pending`?1:.3,d=o?re[e.id]?.acciones[t]??ae[t]:null;return(0,P.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,P.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,P.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,P.jsx)(`span`,{className:`text-2xl relative z-10 select-none ${o?`animate-pulse`:``}`,style:{animationDuration:`2s`},children:s?`✅`:c?`❌`:e.icon}),(0,P.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,P.jsx)(`div`,{className:`mt-2 text-center`,children:(0,P.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,P.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,P.jsxs)(`span`,{className:`text-[8px] font-medium leading-tight block truncate`,style:{color:l},children:[d.replace(/\.\.\.$/,``),`…`]})})]})}function ue({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=ne.filter(e=>!r.includes(e.id));for(let t of r){let r=ne.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`,ie[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,P.jsxs)(`div`,{className:`w-full flex flex-col gap-4 h-full`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`h3`,{className:`text-[11px] font-bold text-white/50 uppercase tracking-[0.15em]`,children:`Flujo de Delegación`}),(0,P.jsxs)(`p`,{className:`text-[10px] text-white/25 mt-0.5`,children:[r,` en progreso`]})]}),(0,P.jsxs)(`div`,{className:`space-y-2`,children:[(0,P.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,P.jsx)(`span`,{className:`text-[10px] text-white/35 font-medium`,children:n.length>40?n.slice(0,40)+`…`:n}),(0,P.jsxs)(`span`,{className:`text-[12px] font-bold text-blue-400 tabular-nums`,children:[t,`%`]})]}),(0,P.jsx)(`div`,{className:`h-2 rounded-full bg-white/5 overflow-hidden`,children:(0,P.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,P.jsxs)(`div`,{className:`flex justify-between text-[9px] text-white/20`,children:[(0,P.jsxs)(`span`,{children:[a,` completados`]}),(0,P.jsxs)(`span`,{children:[i,` activos`]}),(0,P.jsxs)(`span`,{children:[ne.length-a-i,` pendientes`]})]})]}),(0,P.jsx)(`div`,{className:`h-px bg-white/[0.05]`}),(0,P.jsx)(`div`,{className:`flex-1 flex flex-col gap-2 overflow-y-auto min-h-0`,children:o.map(e=>(0,P.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,P.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,P.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[e.to&&(0,P.jsxs)(`div`,{className:`flex items-center gap-1 mb-0.5`,children:[(0,P.jsx)(`span`,{className:`text-[10px]`,children:e.fromIcon}),(0,P.jsx)(`span`,{className:`text-[9px] text-white/25`,children:`→`}),(0,P.jsx)(`span`,{className:`text-[10px]`,children:e.toIcon}),(0,P.jsx)(`span`,{className:`text-[9px] font-semibold text-white/40`,children:e.to})]}),(0,P.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,P.jsxs)(`div`,{className:`pt-3 border-t border-white/[0.04] flex items-center justify-between`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,P.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full bg-blue-400 animate-pulse`}),(0,P.jsxs)(`span`,{className:`text-[9px] text-white/25`,children:[i,` de `,ne.length,` agentes activos`]})]}),(0,P.jsx)(`span`,{className:`text-[9px] text-white/20`,children:`~2 min`})]})]})}function de(){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=ne.map((e,t)=>{let n=t/ne.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?ne.find(e=>e.id===i.currentWorker)?.label??null:null;return(0,P.jsxs)(`div`,{className:`absolute inset-0 bg-[#0b1326] overflow-hidden flex flex-col`,children:[(0,P.jsxs)(`div`,{className:`absolute inset-0 z-0 pointer-events-none`,children:[(0,P.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-br from-[#0a0e27] via-[#15102e] to-[#0d1128]`}),(0,P.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,P.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,P.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,P.jsx)(`div`,{className:`absolute inset-0`,children:[...Array(50)].map((e,t)=>(0,P.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,P.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,P.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,P.jsx)(`span`,{className:`text-xl`,children:`🐝`}),(0,P.jsx)(`span`,{className:`text-sm font-bold text-white/80`,children:`HiveLearn`}),(0,P.jsx)(`span`,{className:`text-white/20 text-xs`,children:`—`}),(0,P.jsx)(`span`,{className:`text-xs text-blue-400/70 font-medium`,children:o})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full bg-blue-400 animate-pulse`}),(0,P.jsx)(`span`,{className:`text-[10px] font-bold text-white/30 uppercase tracking-wider`,children:`Enjambre activo`})]})]}),(0,P.jsxs)(`div`,{className:`relative z-10 flex flex-1 min-h-0`,children:[(0,P.jsxs)(`div`,{className:`flex-1 flex items-center justify-center relative overflow-hidden`,children:[t&&(0,P.jsxs)(`div`,{className:`absolute top-4 left-6 z-20`,children:[(0,P.jsxs)(`p`,{className:`text-[12px] text-white/40 font-medium max-w-xs truncate`,children:[`"`,t,`"`]}),n&&(0,P.jsxs)(`p`,{className:`text-[10px] text-white/20 mt-0.5`,children:[n.nombre,` · `,n.tiempoSesion,` min`]})]}),(0,P.jsxs)(`div`,{className:`relative flex items-center justify-center`,style:{width:`620px`,height:`620px`},children:[(0,P.jsx)(se,{workerNodes:u}),(0,P.jsxs)(`svg`,{className:`absolute inset-0 pointer-events-none`,width:620,height:620,children:[(0,P.jsx)(`circle`,{cx:310,cy:310,r:210,fill:`none`,stroke:`rgba(255,255,255,0.03)`,strokeWidth:`1`,strokeDasharray:`3 8`}),(0,P.jsx)(`circle`,{cx:310,cy:310,r:180,fill:`none`,stroke:`rgba(255,255,255,0.015)`,strokeWidth:`1`})]}),(0,P.jsx)(`div`,{className:`absolute`,style:{left:`310px`,top:`310px`,transform:`translate(-50%, -50%)`},children:(0,P.jsx)(oe,{progress:a,status:l,currentWorker:f})}),u.map(e=>(0,P.jsx)(`div`,{className:`absolute`,style:{left:`310px`,top:`310px`},children:(0,P.jsx)(le,{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,P.jsx)(ce,{agent:d.agent,status:d.status,x:d.x,y:d.y})]})]}),(0,P.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,P.jsx)(ue,{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 fe={value:()=>{}};function pe(){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 me(n)}function me(e){this._=e}function he(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}})}me.prototype=pe.prototype={constructor:me,on:function(e,t){var n=this._,r=he(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=ge(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]=_e(n[i],e.name,t);else if(t==null)for(i in n)n[i]=_e(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 me(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 ge(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function _e(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=fe,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var ve={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 ye(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),ve.hasOwnProperty(t)?{space:ve[t],local:e}:e}function be(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 xe(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Se(e){var t=ye(e);return(t.local?xe:be)(t)}function Ce(){}function we(e){return e==null?Ce:function(){return this.querySelector(e)}}function Te(e){typeof e!=`function`&&(e=we(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 Ee(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function De(){return[]}function Oe(e){return e==null?De:function(){return this.querySelectorAll(e)}}function ke(e){return function(){return Ee(e.apply(this,arguments))}}function Ae(e){e=typeof e==`function`?ke(e):Oe(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 je(e){return function(){return this.matches(e)}}function Me(e){return function(t){return t.matches(e)}}var Ne=Array.prototype.find;function Pe(e){return function(){return Ne.call(this.children,e)}}function Fe(){return this.firstElementChild}function Ie(e){return this.select(e==null?Fe:Pe(typeof e==`function`?e:Me(e)))}var Le=Array.prototype.filter;function Re(){return Array.from(this.children)}function ze(e){return function(){return Le.call(this.children,e)}}function Be(e){return this.selectAll(e==null?Re:ze(typeof e==`function`?e:Me(e)))}function Ve(e){typeof e!=`function`&&(e=je(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 He(e){return Array(e.length)}function Ue(){return new G(this._enter||this._groups.map(He),this._parents)}function We(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}We.prototype={constructor:We,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 Ge(e){return function(){return e}}function Ke(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 We(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function qe(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 We(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Je(e){return e.__data__}function Ye(e,t){if(!arguments.length)return Array.from(this,Je);var n=t?qe:Ke,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Ge(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=Xe(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 Xe(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Ze(){return new G(this._exit||this._groups.map(He),this._parents)}function Qe(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 $e(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 et(){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 tt(e){e||=nt;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 nt(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function rt(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function it(){return Array.from(this)}function at(){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 ot(){let e=0;for(let t of this)++e;return e}function st(){return!this.node()}function ct(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 lt(e){return function(){this.removeAttribute(e)}}function ut(e){return function(){this.removeAttributeNS(e.space,e.local)}}function dt(e,t){return function(){this.setAttribute(e,t)}}function ft(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function pt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function mt(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 ht(e,t){var n=ye(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?ut:lt:typeof t==`function`?n.local?mt:pt:n.local?ft:dt)(n,t))}function gt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function _t(e){return function(){this.style.removeProperty(e)}}function vt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function yt(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function bt(e,t,n){return arguments.length>1?this.each((t==null?_t:typeof t==`function`?yt:vt)(e,t,n??``)):xt(this.node(),e)}function xt(e,t){return e.style.getPropertyValue(t)||gt(e).getComputedStyle(e,null).getPropertyValue(t)}function St(e){return function(){delete this[e]}}function Ct(e,t){return function(){this[e]=t}}function wt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Tt(e,t){return arguments.length>1?this.each((t==null?St:typeof t==`function`?wt:Ct)(e,t)):this.node()[e]}function Et(e){return e.trim().split(/^|\s+/)}function Dt(e){return e.classList||new Ot(e)}function Ot(e){this._node=e,this._names=Et(e.getAttribute(`class`)||``)}Ot.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 kt(e,t){for(var n=Dt(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function At(e,t){for(var n=Dt(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function jt(e){return function(){kt(this,e)}}function Mt(e){return function(){At(this,e)}}function Nt(e,t){return function(){(t.apply(this,arguments)?kt:At)(this,e)}}function Pt(e,t){var n=Et(e+``);if(arguments.length<2){for(var r=Dt(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Nt:t?jt:Mt)(n,t))}function Ft(){this.textContent=``}function It(e){return function(){this.textContent=e}}function Lt(e){return function(){this.textContent=e.apply(this,arguments)??``}}function Rt(e){return arguments.length?this.each(e==null?Ft:(typeof e==`function`?Lt:It)(e)):this.node().textContent}function zt(){this.innerHTML=``}function Bt(e){return function(){this.innerHTML=e}}function Vt(e){return function(){this.innerHTML=e.apply(this,arguments)??``}}function Ht(e){return arguments.length?this.each(e==null?zt:(typeof e==`function`?Vt:Bt)(e)):this.node().innerHTML}function Ut(){this.nextSibling&&this.parentNode.appendChild(this)}function Wt(){return this.each(Ut)}function Gt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Kt(){return this.each(Gt)}function qt(e){var t=typeof e==`function`?e:Se(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Jt(){return null}function Yt(e,t){var n=typeof e==`function`?e:Se(e),r=t==null?Jt:typeof t==`function`?t:we(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Xt(){var e=this.parentNode;e&&e.removeChild(this)}function Zt(){return this.each(Xt)}function Qt(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function $t(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function en(e){return this.select(e?$t:Qt)}function tn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function nn(e){return function(t){e.call(this,t,this.__data__)}}function rn(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 an(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 on(e,t,n){return function(){var r=this.__on,i,a=nn(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 sn(e,t,n){var r=rn(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?on:an,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function cn(e,t,n){var r=gt(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 ln(e,t){return function(){return cn(this,e,t)}}function un(e,t){return function(){return cn(this,e,t.apply(this,arguments))}}function dn(e,t){return this.each((typeof t==`function`?un:ln)(e,t))}function*fn(){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 pn=[null];function G(e,t){this._groups=e,this._parents=t}function mn(){return new G([[document.documentElement]],pn)}function hn(){return this}G.prototype=mn.prototype={constructor:G,select:Te,selectAll:Ae,selectChild:Ie,selectChildren:Be,filter:Ve,data:Ye,enter:Ue,exit:Ze,join:Qe,merge:$e,selection:hn,order:et,sort:tt,call:rt,nodes:it,node:at,size:ot,empty:st,each:ct,attr:ht,style:bt,property:Tt,classed:Pt,text:Rt,html:Ht,raise:Wt,lower:Kt,append:qt,insert:Yt,remove:Zt,clone:en,datum:tn,on:sn,dispatch:dn,[Symbol.iterator]:fn};function K(e){return typeof e==`string`?new G([[document.querySelector(e)]],[document.documentElement]):new G([[e]],pn)}function gn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function _n(e,t){if(e=gn(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 vn={passive:!1},yn={capture:!0,passive:!1};function bn(e){e.stopImmediatePropagation()}function xn(e){e.preventDefault(),e.stopImmediatePropagation()}function Sn(e){var t=e.document.documentElement,n=K(e).on(`dragstart.drag`,xn,yn);`onselectstart`in t?n.on(`selectstart.drag`,xn,yn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Cn(e,t){var n=e.document.documentElement,r=K(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,xn,yn),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 wn=e=>()=>e;function Tn(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}})}Tn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function En(e){return!e.ctrlKey&&!e.button}function Dn(){return this.parentNode}function On(e,t){return t??{x:e.x,y:e.y}}function kn(){return navigator.maxTouchPoints||`ontouchstart`in this}function An(){var e=En,t=Dn,n=On,r=kn,i={},a=pe(`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`,_,vn).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,yn).on(`mouseup.drag`,h,yn),Sn(n.view),bn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(xn(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),Cn(e.view,l),xn(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]))&&(bn(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])&&(xn(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])&&(bn(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=_n(l||r,t),p,m,h;if((h=n.call(e,new Tn(`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=_n(l||a,t),_=o;break}u.call(r,e,new Tn(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:wn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:wn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:wn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:wn(!!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 jn=0,Mn=0,Nn=0,Pn=1e3,Fn,In,Ln=0,Rn=0,zn=0,Bn=typeof performance==`object`&&performance.now?performance:Date,Vn=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Hn(){return Rn||=(Vn(Un),Bn.now()+zn)}function Un(){Rn=0}function Wn(){this._call=this._time=this._next=null}Wn.prototype=Gn.prototype={constructor:Wn,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Hn():+n)+(t==null?0:+t),!this._next&&In!==this&&(In?In._next=this:Fn=this,In=this),this._call=e,this._time=n,Xn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Xn())}};function Gn(e,t,n){var r=new Wn;return r.restart(e,t,n),r}function Kn(){Hn(),++jn;for(var e=Fn,t;e;)(t=Rn-e._time)>=0&&e._call.call(void 0,t),e=e._next;--jn}function qn(){Rn=(Ln=Bn.now())+zn,jn=Mn=0;try{Kn()}finally{jn=0,Yn(),Rn=0}}function Jn(){var e=Bn.now(),t=e-Ln;t>Pn&&(zn-=t,Ln=e)}function Yn(){for(var e,t=Fn,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:Fn=n);In=e,Xn(r)}function Xn(e){jn||(Mn&&=clearTimeout(Mn),e-Rn>24?(e<1/0&&(Mn=setTimeout(qn,e-Bn.now()-zn)),Nn&&=clearInterval(Nn)):(Nn||=(Ln=Bn.now(),setInterval(Jn,Pn)),jn=1,Vn(qn)))}function Zn(e,t,n){var r=new Wn;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Qn=pe(`start`,`end`,`cancel`,`interrupt`),$n=[];function er(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;ir(e,n,{name:t,index:r,group:i,on:Qn,tween:$n,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function tr(e,t){var n=rr(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function nr(e,t){var n=rr(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function rr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function ir(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Gn(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 Zn(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(Zn(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 ar(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 or(e){return this.each(function(){ar(this,e)})}function sr(e,t){var n,r;return function(){var i=nr(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 cr(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=nr(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 lr(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=rr(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?sr:cr)(n,e,t))}function ur(e,t,n){var r=e._id;return e.each(function(){var e=nr(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return rr(e,r).value[t]}}function dr(e,t){var n;return(typeof t==`number`?o:t instanceof c?i:(n=c(t))?(t=n,i):l)(e,t)}function fr(e){return function(){this.removeAttribute(e)}}function pr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function mr(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 hr(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 gr(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 _r(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 vr(e,t){var n=ye(e),r=n===`transform`?b:dr;return this.attrTween(e,typeof t==`function`?(n.local?_r:gr)(n,r,ur(this,`attr.`+e,t)):t==null?(n.local?pr:fr)(n):(n.local?hr:mr)(n,r,t))}function yr(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function br(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function xr(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&br(e,i)),n}return i._value=t,i}function Sr(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 Cr(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=ye(e);return this.tween(n,(r.local?xr:Sr)(r,t))}function wr(e,t){return function(){tr(this,e).delay=+t.apply(this,arguments)}}function Tr(e,t){return t=+t,function(){tr(this,e).delay=t}}function Er(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?wr:Tr)(t,e)):rr(this.node(),t).delay}function Dr(e,t){return function(){nr(this,e).duration=+t.apply(this,arguments)}}function Or(e,t){return t=+t,function(){nr(this,e).duration=t}}function kr(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Dr:Or)(t,e)):rr(this.node(),t).duration}function Ar(e,t){if(typeof t!=`function`)throw Error();return function(){nr(this,e).ease=t}}function jr(e){var t=this._id;return arguments.length?this.each(Ar(t,e)):rr(this.node(),t).ease}function Mr(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();nr(this,e).ease=n}}function Nr(e){if(typeof e!=`function`)throw Error();return this.each(Mr(this._id,e))}function Pr(e){typeof e!=`function`&&(e=je(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 li(r,this._parents,this._name,this._id)}function Fr(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 li(o,this._parents,this._name,this._id)}function Ir(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 Lr(e,t,n){var r,i,a=Ir(t)?tr:nr;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Rr(e,t){var n=this._id;return arguments.length<2?rr(this.node(),n).on.on(e):this.each(Lr(n,e,t))}function zr(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Br(){return this.on(`end.remove`,zr(this._id))}function Vr(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=we(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,er(l[f],t,n,f,l,rr(u,n)));return new li(a,this._parents,t,n)}function Hr(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Oe(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=rr(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&er(p,t,n,h,f,m);a.push(f),o.push(u)}return new li(a,o,t,n)}var Ur=mn.prototype.constructor;function Wr(){return new Ur(this._groups,this._parents)}function Gr(e,t){var n,r,i;return function(){var a=xt(this,e),o=(this.style.removeProperty(e),xt(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Kr(e){return function(){this.style.removeProperty(e)}}function qr(e,t,n){var r,i=n+``,a;return function(){var o=xt(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Jr(e,t,n){var r,i,a;return function(){var o=xt(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),xt(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Yr(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=nr(this,e),l=c.on,u=c.value[a]==null?s||=Kr(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Xr(e,t,n){var r=(e+=``)==`transform`?y:dr;return t==null?this.styleTween(e,Gr(e,r)).on(`end.style.`+e,Kr(e)):typeof t==`function`?this.styleTween(e,Jr(e,r,ur(this,`style.`+e,t))).each(Yr(this._id,e)):this.styleTween(e,qr(e,r,t),n).on(`end.style.`+e,null)}function Zr(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Qr(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Zr(e,a,n)),r}return a._value=t,a}function $r(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,Qr(e,t,n??``))}function ei(e){return function(){this.textContent=e}}function ti(e){return function(){this.textContent=e(this)??``}}function ni(e){return this.tween(`text`,typeof e==`function`?ti(ur(this,`text`,e)):ei(e==null?``:e+``))}function ri(e){return function(t){this.textContent=e.call(this,t)}}function ii(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&ri(r)),t}return r._value=e,r}function ai(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,ii(e))}function oi(){for(var e=this._name,t=this._id,n=di(),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=rr(c,t);er(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new li(r,this._parents,e,n)}function si(){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=nr(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 ci=0;function li(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function ui(e){return mn().transition(e)}function di(){return++ci}var fi=mn.prototype;li.prototype=ui.prototype={constructor:li,select:Vr,selectAll:Hr,selectChild:fi.selectChild,selectChildren:fi.selectChildren,filter:Pr,merge:Fr,selection:Wr,transition:oi,call:fi.call,nodes:fi.nodes,node:fi.node,size:fi.size,empty:fi.empty,each:fi.each,on:Rr,attr:vr,attrTween:Cr,style:Xr,styleTween:$r,text:ni,textTween:ai,remove:Br,tween:lr,delay:Er,duration:kr,ease:jr,easeVarying:Nr,end:si,[Symbol.iterator]:fi[Symbol.iterator]};function pi(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var mi={time:null,delay:0,duration:250,ease:pi};function hi(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function gi(e){var t,n;e instanceof li?(t=e._id,e=e._name):(t=di(),(n=mi).time=Hn(),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])&&er(c,e,t,l,o,n||hi(c,t));return new li(r,this._parents,e,t)}mn.prototype.interrupt=or,mn.prototype.transition=gi;var _i=e=>()=>e;function vi(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 yi(e,t,n){this.k=e,this.x=t,this.y=n}yi.prototype={constructor:yi,scale:function(e){return e===1?this:new yi(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new yi(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 bi=new yi(1,0,0);xi.prototype=yi.prototype;function xi(e){for(;!e.__zoom;)if(!(e=e.parentNode))return bi;return e.__zoom}function Si(e){e.stopImmediatePropagation()}function Ci(e){e.preventDefault(),e.stopImmediatePropagation()}function wi(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function Ti(){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 Ei(){return this.__zoom||bi}function Di(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Oi(){return navigator.maxTouchPoints||`ontouchstart`in this}function ki(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 Ai(){var e=wi,t=Ti,n=ki,r=Di,i=Oi,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=T,l=pe(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,Ei).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`,Ei),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(bi.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 yi(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 yi(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 yi(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 vi(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=_n(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)],ar(this),s.start();Ci(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=_n(t,i),l=t.clientX,u=t.clientY;Sn(t.view),Si(t),a.mouse=[c,this.__zoom.invert(c)],ar(this),a.start();function d(e){if(Ci(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]=_n(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Cn(e.view,a.moved),Ci(e),a.event(e).end()}}function D(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=_n(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);Ci(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(Si(t),s=0;s<i;++s)c=r[s],l=_n(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)),ar(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(Ci(e),s=0;s<a;++s)c=i[s],l=_n(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(Si(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=_n(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:_i(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:_i(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:_i(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:_i([[+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.`},ji=[[-1/0,-1/0],[1/0,1/0]],Mi=[`Enter`,` `,`Escape`],Ni={"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`},Pi;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Pi||={});var Fi;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Fi||={});var Ii;(function(e){e.Partial=`partial`,e.Full=`full`})(Ii||={});var Li={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Ri;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Ri||={});var zi;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(zi||={});var J;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(J||={});var Bi={[J.Left]:J.Right,[J.Right]:J.Left,[J.Top]:J.Bottom,[J.Bottom]:J.Top};function Vi(e){return e===null?null:e?`valid`:`invalid`}var Hi=e=>`id`in e&&`source`in e&&`target`in e,Ui=e=>`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Wi=e=>`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Gi=(e,t=[0,0])=>{let{width:n,height:r}=wa(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Ki=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:sa(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):Wi(n)?n:t.nodeLookup.get(n.id)),aa(e,i?la(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),qi=(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=aa(n,la(e)),r=!0)}),r?sa(n):{x:0,y:0,width:0,height:0}},Ji=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s={...ga(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=da(s,ca(t)),d=(i??0)*(l??0),f=a&&u>0;(!t.internals.handleBounds||f||u>=d||t.dragging)&&c.push(t)}return c},Yi=(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 Xi(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 Zi({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return Promise.resolve(!0);let s=xa(qi(Xi(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 Qi({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&&Ca(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=Ca(d)?ta(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 $i({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=Yi(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 ea=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),ta=(e={x:0,y:0},t,n)=>({x:ea(e.x,t[0][0],t[1][0]-(n?.width??0)),y:ea(e.y,t[0][1],t[1][1]-(n?.height??0))});function na(e,t,n){let{width:r,height:i}=wa(n),{x:a,y:o}=n.internals.positionAbsolute;return ta(e,[[a,o],[a+r,o+i]],t)}var ra=(e,t,n)=>e<t?ea(Math.abs(e-t),1,t)/t:e>n?-ea(Math.abs(e-n),1,t)/t:0,ia=(e,t,n=15,r=40)=>[ra(e.x,r,t.width-r)*n,ra(e.y,r,t.height-r)*n],aa=(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)}),oa=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),sa=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ca=(e,t=[0,0])=>{let{x:n,y:r}=Wi(e)?e.internals.positionAbsolute:Gi(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}},la=(e,t=[0,0])=>{let{x:n,y:r}=Wi(e)?e.internals.positionAbsolute:Gi(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)}},ua=(e,t)=>sa(aa(oa(e),oa(t))),da=(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)},fa=e=>pa(e.width)&&pa(e.height)&&pa(e.x)&&pa(e.y),pa=e=>!isNaN(e)&&isFinite(e),ma=(e,t)=>{},ha=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ga=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?ha(s,o):s},_a=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function va(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 ya(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=va(e,n),i=va(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=va(e.top??e.y??0,n),i=va(e.bottom??e.y??0,n),a=va(e.left??e.x??0,t),o=va(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 ba(e,t,n,r,i,a){let{x:o,y:s}=_a(e,[t,n,r]),{x:c,y:l}=_a({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 xa=(e,t,n,r,i,a)=>{let o=ya(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=ea(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=ba(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}},Sa=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Ca(e){return e!=null&&e!==`parent`}function wa(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Ta(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Ea(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 Da(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Oa(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function ka(e){return{...Ni,...e||{}}}function Aa(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Ia(e),s=ga({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?ha(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var ja=e=>({width:e.offsetWidth,height:e.offsetHeight}),Ma=e=>e?.getRootNode?.()||window?.document,Na=[`INPUT`,`SELECT`,`TEXTAREA`];function Pa(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Na.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Fa=e=>`clientX`in e,Ia=(e,t)=>{let n=Fa(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)}},La=(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,...ja(t)}})};function Ra({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 za(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Ba({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case J.Left:return[t-za(t-r,a),n];case J.Right:return[t+za(r-t,a),n];case J.Top:return[t,n-za(n-i,a)];case J.Bottom:return[t,n+za(i-n,a)]}}function Va({sourceX:e,sourceY:t,sourcePosition:n=J.Bottom,targetX:r,targetY:i,targetPosition:a=J.Top,curvature:o=.25}){let[s,c]=Ba({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Ba({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Ra({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 Ha({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 Ua({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 Wa({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=aa(la(e),la(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),da({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},sa(a))>0}var Ga=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Ka=(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)),qa=(e,t,n={})=>{if(!e.source||!e.target)return q.error006(),t;let r=n.getEdgeId||Ga,i;return i=Hi(e)?{...e}:{...e,id:r(e)},Ka(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Ja({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Ha({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Ya={[J.Left]:{x:-1,y:0},[J.Right]:{x:1,y:0},[J.Top]:{x:0,y:-1},[J.Bottom]:{x:0,y:1}},Xa=({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},Za=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function Qa({source:e,sourcePosition:t=J.Bottom,target:n,targetPosition:r=J.Top,center:i,offset:a,stepPosition:o}){let s=Ya[t],c=Ya[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=Xa({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]=Ha({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 $a(e,t,n,r){let i=Math.min(Za(e,t)/2,Za(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 eo({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]=Qa({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+=$a(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 to(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function no(e){let{sourceNode:t,targetNode:n}=e;if(!to(t)||!to(n))return null;let r=t.internals.handleBounds||ro(t.handles),i=n.internals.handleBounds||ro(n.handles),a=ao(r?.source??[],e.sourceHandle),o=ao(e.connectionMode===Pi.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=io(t,a,s),u=io(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function ro(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 io(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??wa(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 ao(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function oo(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function so(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=oo(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 co=1e3,lo=10,uo={nodeOrigin:[0,0],nodeExtent:ji,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},fo={...uo,checkEquality:!0};function po(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function mo(e,t,n){let r=po(uo,n);for(let n of e.values())if(n.parentId)yo(n,e,t,r);else{let e=ta(Gi(n,r.nodeOrigin),Ca(n.extent)?n.extent:r.nodeExtent,wa(n));n.internals.positionAbsolute=e}}function ho(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 go(e){return e===`manual`}function _o(e,t,n,r={}){let i=po(fo,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!go(i.zIndexMode)?co: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=ta(Gi(u,i.nodeOrigin),Ca(u.extent)?u.extent:i.nodeExtent,wa(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:ho(u,e),z:bo(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&&yo(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function vo(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 yo(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=po(uo,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}vo(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*lo),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=xo(e,u,o,s,a&&!go(c)?co: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 bo(e,t,n){let r=pa(e.zIndex)?e.zIndex:0;return go(n)?r:r+(e.selected?t:0)}function xo(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=wa(e),l=Gi(e,n),u=Ca(e.extent)?ta(l,e.extent,c):l,d=ta({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=na(d,c,t));let f=bo(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function So(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=ua(a.get(n.parentId)?.expandedRect??ca(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=wa(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 Co(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=ja(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=Ca(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;e.parentId&&e.extent===`parent`?h=na(h,s,t.get(e.parentId)):m&&(h=ta(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:La(`source`,r.nodeElement,p,d,e.id),target:La(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&yo(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:ca(g,i)}))}}if(f.length>0){let e=So(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function wo({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 To(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 Eo(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}`;To(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),To(`target`,s,c,e,i,o),t.set(r.id,r)}}function Do(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Do(n,t):!1}function Oo(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 ko(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Do(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 Ao({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 jo({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=ha(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Mo({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?oa(qi(s)):null,x=v&&l?jo({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)}:ha(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}=Qi({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]=Ao({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]=ia(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=Aa(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=ko(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Ao({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=An().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=Aa(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Ia(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=Aa(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=Ia(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=Ia(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]=Ao({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||!Oo(t,`.${g}`,v))&&(!_||Oo(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function No(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())da(i,ca(e))>0&&r.push(e);return r}var Po=250;function Fo(e,t,n,r){let i=[],a=1/0,o=No(e,n,t+Po);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}=io(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 Io(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,...io(o,c,c.position,!0)}:c}function Lo(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Ro(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var zo=()=>!0;function Bo(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:_=zo,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=Ma(e.target),E=0,D,{x:O,y:k}=Ia(e),A=Lo(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Io(i,A,r,c,t);if(!N)return;let P=Ia(e,j),ee=!1,F=null,I=!1,L=null;function R(){if(!u||!j)return;let[e,t]=ia(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(R)}let z={...N,nodeId:i,type:A,position:N.position},B=c.get(i),V={inProgress:!0,isValid:null,from:io(B,z,J.Left,!0),fromHandle:z,fromPosition:z.position,fromNode:B,to:P,toHandle:null,toPosition:Bi[z.position],toNode:null,pointer:P};function H(){M=!0,y(V),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&H();function U(e){if(!M){let{x:t,y:n}=Ia(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;H()}if(!x()||!z){te(e);return}let a=b();P=Ia(e,j),D=Fo(ga(P,a,!1,[1,1]),n,c,z),ee||=(R(),!0);let s=Vo(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});L=s.handleDomNode,F=s.connection,I=Ro(!!D,s.isValid);let u=c.get(i),f=u?io(u,z,J.Left,!0):V.from,p={...V,from:f,isValid:I,to:s.toHandle&&I?_a({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:I&&s.toHandle?s.toHandle.position:Bi[z.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),V=p}function te(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||L)&&F&&I&&h?.(F);let{inProgress:t,...n}=V,r={...n,toPosition:V.toHandle?V.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),ee=!1,I=!1,F=null,L=null,T.removeEventListener(`mousemove`,U),T.removeEventListener(`mouseup`,te),T.removeEventListener(`touchmove`,U),T.removeEventListener(`touchend`,te)}}T.addEventListener(`mousemove`,U),T.addEventListener(`mouseup`,te),T.addEventListener(`touchmove`,U),T.addEventListener(`touchend`,te)}function Vo(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=zo,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}=Ia(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=Lo(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===Pi.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Io(t,e,a,u,n,!0)}return _}var Ho={onPointerDown:Bo,isValid:Vo};function Uo({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&&Sa()?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=Ai().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:_n}}var Wo=e=>({x:e.x,y:e.y,zoom:e.k}),Go=({x:e,y:t,zoom:n})=>bi.translate(e,t).scale(n),Ko=(e,t)=>e.target.closest(`.${t}`),qo=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Jo=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Yo=(e,t=0,n=Jo,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Xo=e=>{let t=e.ctrlKey&&Sa()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Zo({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(Ko(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=_n(u),t=d*2**Xo(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Fi.Vertical?0:u.deltaX*f,m=i===Fi.Horizontal?0:u.deltaY*f;!Sa()&&u.shiftKey&&i!==Fi.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Wo(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 Qo({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Ko(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function $o({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Wo(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 es({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&qo(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Wo(a.transform))}}function ts({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&qo(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Wo(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function ns({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`&&(Ko(d,`${l}-flow__node`)||Ko(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||Ko(d,s)&&m||Ko(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 rs({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=Ai().scaleExtent([t,n]).translateExtent(r),p=K(e).call(f);y({x:i.x,y:i.y,zoom:ea(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Xo);function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?s:T).transform(Yo(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:!pa(E)||E<0?0:E);let k=O?Zo({zoomPanValues:u,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:c}):Qo({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});if(p.on(`wheel.zoom`,k,{passive:!1}),!r){let e=$o({zoomPanValues:u,onDraggingChange:l,onPanZoomStart:o});f.on(`start`,e);let t=es({zoomPanValues:u,panOnDrag:s,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,t);let r=ts({zoomPanValues:u,panOnDrag:s,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:c,onDraggingChange:l});f.on(`end`,r)}let A=ns({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=Go(e),i=f?.constrain()(r,t,n);return i&&await g(i),new Promise(e=>e(i))}async function b(e,t){let n=Go(e);return await g(n,t),new Promise(e=>e(n))}function x(e){if(p){let t=Go(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?xi(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(Yo(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(Yo(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=!pa(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 is;(function(e){e.Line=`line`,e.Handle=`handle`})(is||={});function as({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 os(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 ss(e,t){return Math.max(0,t-e)}function cs(e,t){return Math.max(0,e-t)}function ls(e,t,n){return Math.max(0,t-e,e-n)}function us(e,t){return e?!t:t}function ds(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=ls(E,h,g),j=ls(D,_,v);if(o){let e=0,t=0;c&&w<0?e=ss(y+w+O,o[0][0]):!c&&w>0&&(e=cs(y+E+O,o[1][0])),l&&T<0?t=ss(b+T+k,o[0][1]):!l&&T>0&&(t=cs(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=cs(y+w,s[0][0]):!c&&w<0&&(e=ss(y+E,s[1][0])),l&&T>0?t=cs(b+T,s[0][1]):!l&&T<0&&(t=ss(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=ls(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?cs(b+k+E/C,o[1][1])*C:ss(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?ss(b+E/C,s[1][1])*C:cs(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=ls(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?cs(y+D*C+O,o[1][0])/C:ss(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?ss(y+D*C,s[1][0])/C:cs(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=(us(c,l)?-w:w)/C:w=(us(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 fs={width:0,height:0,x:0,y:0},ps={...fs,pointerX:0,pointerY:0,aspectRatio:1};function ms(e){return[[0,0],[e.measured.width,e.measured.height]]}function hs(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 gs({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=K(e),o={controlDirection:os(`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={...fs},h={...ps};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:os(e)};let g,_=null,v=[],y,b,x,S=!1,C=An().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}=Aa(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`?ms(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=hs(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=Aa(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}=ds(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 ee=as({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),F={...m,direction:ee};p?.(e,F)!==!1&&(S=!0,d?.(e,F),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 _s=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}})),vs=e(n(((e,t)=>{t.exports=_s()}))(),1),ys=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},bs=e=>e?ys(e):ys,{useDebugValue:xs}=E.default,{useSyncExternalStoreWithSelector:Ss}=vs.default,Cs=e=>e;function ws(e,t=Cs,n){let r=Ss(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return xs(r),r}var Ts=(e,t)=>{let n=bs(e),r=(e,r=t)=>ws(n,e,r);return Object.assign(r,n),r},Es=(e,t)=>e?Ts(e,t):Ts;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 Ds=(0,E.createContext)(null),Os=Ds.Provider,ks=q.error001();function X(e,t){let n=(0,E.useContext)(Ds);if(n===null)throw Error(ks);return ws(n,e,t)}function Z(){let e=(0,E.useContext)(Ds);if(e===null)throw Error(ks);return(0,E.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var As={display:`none`},js={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Ms=`react-flow__node-desc`,Ns=`react-flow__edge-desc`,Ps=`react-flow__aria-live`,Fs=e=>e.ariaLiveMessage,Is=e=>e.ariaLabelConfig;function Ls({rfId:e}){let t=X(Fs);return(0,P.jsx)(`div`,{id:`${Ps}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:js,children:t})}function Rs({rfId:e,disableKeyboardA11y:t}){let n=X(Is);return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`div`,{id:`${Ms}-${e}`,style:As,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,P.jsx)(`div`,{id:`${Ns}-${e}`,style:As,children:n[`edge.a11yDescription.default`]}),!t&&(0,P.jsx)(Ls,{rfId:e})]})}var zs=(0,E.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,P.jsx)(`div`,{className:W([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));zs.displayName=`Panel`;function Bs({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,P.jsx)(zs,{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,P.jsx)(`a`,{href:`https://reactflow.dev`,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Vs=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}},Hs=e=>e.id;function Us(e,t){return Y(e.selectedNodes.map(Hs),t.selectedNodes.map(Hs))&&Y(e.selectedEdges.map(Hs),t.selectedEdges.map(Hs))}function Ws({onSelectionChange:e}){let t=Z(),{selectedNodes:n,selectedEdges:r}=X(Vs,Us);return(0,E.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Gs=e=>!!e.onSelectionChangeHandlers;function Ks({onSelectionChange:e}){let t=X(Gs);return e||t?(0,P.jsx)(Ws,{onSelectionChange:e}):null}var qs=typeof window<`u`?E.useLayoutEffect:E.useEffect,Js=[0,0],Ys={x:0,y:0,zoom:1},Xs=[...`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`],Zs=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}),Qs={translateExtent:ji,nodeOrigin:Js,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function $s(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=X(Zs,Y),l=Z();qs(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=Qs,s()}),[]);let u=(0,E.useRef)(Qs);return qs(()=>{for(let s of Xs){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:ka(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Xs.map(t=>e[t])),null}function ec(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function tc(e){let[t,n]=(0,E.useState)(e===`system`?null:e);return(0,E.useEffect)(()=>{if(e!==`system`){n(e);return}let t=ec(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?ec()?.matches?`dark`:`light`:t}var nc=typeof document<`u`?document:null;function rc(e=null,t={target:nc,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??nc,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)&&Pa(e))return!1;let n=ac(e.code,s);if(a.current.add(e[n]),ic(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=ac(e.code,s);ic(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 ic(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function ac(e,t){return t.includes(e)?`code`:`key`}var oc=()=>{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=xa(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 ga(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=_a(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function sc(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)cc(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 cc(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 lc(e,t){return sc(e,t)}function uc(e,t){return sc(e,t)}function dc(e,t){return{id:e,type:`select`,selected:t}}function fc(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(dc(a.id,e)))}return r}function pc({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 mc(e){return{id:e.id,type:`remove`}}var hc=e=>Ui(e),gc=e=>Hi(e);function _c(e){return(0,E.forwardRef)(e)}function vc(e){let[t,n]=(0,E.useState)(BigInt(0)),[r]=(0,E.useState)(()=>yc(()=>n(e=>e+BigInt(1))));return qs(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function yc(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var bc=(0,E.createContext)(null);function xc({children:e}){let t=Z(),n=vc((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=pc({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=vc((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(pc({items:s,lookup:o}))},[])),i=(0,E.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,P.jsx)(bc.Provider,{value:i,children:e})}function Sc(){let e=(0,E.useContext)(bc);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Cc=e=>!!e.panZoom;function wc(){let e=oc(),t=Z(),n=Sc(),r=X(Cc),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=hc(e)?e:n.get(e.id),a=i.parentId?Ea(i.position,i.measured,i.parentId,n,r):i.position;return ca({...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&&hc(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&&gc(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 $i({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(mc);o?.(f),c(e)}if(m){let e=d.map(mc);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=fa(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=ca(s?r:a),l=da(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=fa(e)?e:a(e);if(!r)return!1;let i=da(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 Ki(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??Oa();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 Tc=e=>e.selected,Ec=typeof window<`u`?window:void 0;function Dc({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Z(),{deleteElements:r}=wc(),i=rc(e,{actInsideInputWithModifier:!1}),a=rc(t,{target:Ec});(0,E.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Tc),edges:e.filter(Tc)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,E.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Oc(e){let t=Z();(0,E.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=ja(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 kc={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Ac=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function jc({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=Fi.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(Ac,Y),D=rc(f),O=(0,E.useRef)();Oc(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=rs({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,P.jsx)(`div`,{className:`react-flow__renderer`,ref:S,style:kc,children:m})}var Mc=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Nc(){let{userSelectionActive:e,userSelectionRect:t}=X(Mc,Y);return e&&t?(0,P.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 Pc=(e,t)=>n=>{n.target===t.current&&e?.(n)},Fc=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function Ic({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Ii.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(Fc,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,P.jsxs)(`div`,{className:W([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:v,selection:e}]),onClick:b?void 0:Pc(D,x),onContextMenu:Pc(O,x),onWheel:Pc(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}=Ia(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(Ji(s,y,a,n===Ii.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)}}Da(b,C.current)||u(fc(s,C.current,!0)),Da(x,w.current)||d(fc(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}=Ia(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:kc,children:[m,(0,P.jsx)(Nc,{})]})}function Lc({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 Rc({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=Mo({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Lc({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 zc=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Bc(){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=zc(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=ha(t,i));let{position:a,positionAbsolute:s}=Qi({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 Vc=(0,E.createContext)(null),Hc=Vc.Provider;Vc.Consumer;var Uc=()=>(0,E.useContext)(Vc),Wc=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Gc=(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===Pi.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function Kc({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(),_=Uc(),{connectOnClick:v,noPanClassName:y,rfId:b}=X(Wc,Y),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=X(Gc(_,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(qa(i,e))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=Fa(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Ho.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=Ma(t.target),h=n||c,{connection:v,isValid:y}=Ho.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,P.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 qc=(0,E.memo)(_c(Kc));function Jc({data:e,isConnectable:t,sourcePosition:n=J.Bottom}){return(0,P.jsxs)(P.Fragment,{children:[e?.label,(0,P.jsx)(qc,{type:`source`,position:n,isConnectable:t})]})}function Yc({data:e,isConnectable:t,targetPosition:n=J.Top,sourcePosition:r=J.Bottom}){return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(qc,{type:`target`,position:n,isConnectable:t}),e?.label,(0,P.jsx)(qc,{type:`source`,position:r,isConnectable:t})]})}function Xc(){return null}function Zc({data:e,isConnectable:t,targetPosition:n=J.Top}){return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(qc,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Qc={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},$c={input:Jc,default:Yc,output:Zc,group:Xc};function el(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 tl=e=>{let{width:t,height:n,x:r,y:i}=qi(e.nodeLookup,{filter:e=>!!e.selected});return{width:pa(t)?t:null,height:pa(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 nl({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Z(),{width:i,height:a,transformString:o,userSelectionActive:s}=X(tl,Y),c=Bc(),l=(0,E.useRef)(null);(0,E.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Rc({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,P.jsx)(`div`,{className:W([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,P.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(Qc,e.key)&&(e.preventDefault(),c({direction:Qc[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var rl=typeof window<`u`?window:void 0,il=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function al({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:N,onViewportChange:ee,isControlledViewport:F}){let{nodesSelectionActive:I,userSelectionActive:L}=X(il,Y),R=rc(l,{target:rl}),z=rc(h,{target:rl}),B=z||w,V=z||b,H=u&&B!==!0,U=R||L||H;return Dc({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,P.jsx)(jc,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:V,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!R&&B,defaultViewport:T,translateExtent:E,minZoom:D,maxZoom:O,zoomActivationKeyCode:g,preventScrolling:k,noWheelClassName:j,noPanClassName:M,onViewportChange:ee,isControlledViewport:F,paneClickDistance:s,selectionOnDrag:H,children:(0,P.jsxs)(Ic,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:B,isSelecting:!!U,selectionMode:d,selectionKeyPressed:R,paneClickDistance:s,selectionOnDrag:H,children:[e,I&&(0,P.jsx)(nl,{onSelectionContextMenu:A,noPanClassName:M,disableKeyboardA11y:N})]})})}al.displayName=`FlowRenderer`;var ol=(0,E.memo)(al),sl=e=>t=>e?Ji(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 cl(e){return X((0,E.useCallback)(sl(e),[e]),Y)}var ll=e=>e.updateNodeInternals;function ul(){let e=X(ll),[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 dl({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 fl({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]||$c[S];C===void 0&&(v?.(`003`,q.error003(S)),S=`default`,C=g?.default||$c.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=Ta(y),A=dl({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=Rc({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=Bc();if(y.hidden)return null;let N=wa(y),ee=el(y),F=T||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,L=r?e=>r(e,{...b.userNode}):void 0,R=i?e=>i(e,{...b.userNode}):void 0,z=a?e=>a(e,{...b.userNode}):void 0,B=o?e=>o(e,{...b.userNode}):void 0,V=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&Lc({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},H=t=>{if(!(Pa(t.nativeEvent)||m)){if(Mi.includes(t.key)&&T)Lc({id:e,store:O,unselect:t.key===`Escape`,nodeRef:A});else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(Qc,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:Qc[t.key],factor:t.shiftKey?4:1})}}},U=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(Ji(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,P.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:F?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...ee},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:L,onMouseLeave:R,onContextMenu:z,onClick:V,onDoubleClick:B,onKeyDown:D?H:void 0,tabIndex:D?0:void 0,onFocus:D?U:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Ms}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,P.jsx)(Hc,{value:e,children:(0,P.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,...N})})})}var pl=(0,E.memo)(fl),ml=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function hl(e){let{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:a}=X(ml,Y),o=cl(e.onlyRenderVisibleElements),s=ul();return(0,P.jsx)(`div`,{className:`react-flow__nodes`,style:kc,children:o.map(o=>(0,P.jsx)(pl,{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))})}hl.displayName=`NodeRenderer`;var gl=(0,E.memo)(hl);function _l(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&&Wa({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),Y)}var vl=({color:e=`none`,strokeWidth:t=1})=>(0,P.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),yl=({color:e=`none`,strokeWidth:t=1})=>(0,P.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`}),bl={[zi.Arrow]:vl,[zi.ArrowClosed]:yl};function xl(e){let t=Z();return(0,E.useMemo)(()=>Object.prototype.hasOwnProperty.call(bl,e)?bl[e]:(t.getState().onError?.(`009`,q.error009(e)),null),[e])}var Sl=({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=xl(t);return c?(0,P.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,P.jsx)(c,{color:n,strokeWidth:o})}):null},Cl=({defaultColor:e,rfId:t})=>{let n=X(e=>e.edges),r=X(e=>e.defaultEdgeOptions),i=(0,E.useMemo)(()=>so(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,P.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,P.jsx)(`defs`,{children:i.map(e=>(0,P.jsx)(Sl,{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};Cl.displayName=`MarkerDefinitions`;var wl=(0,E.memo)(Cl);function Tl({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,P.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,P.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,P.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Tl.displayName=`EdgeText`;var El=(0,E.memo)(Tl);function Dl({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`path`,{...u,d:e,fill:`none`,className:W([`react-flow__edge-path`,u.className])}),l?(0,P.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&pa(t)&&pa(n)?(0,P.jsx)(El,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Ol({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 kl({sourceX:e,sourceY:t,sourcePosition:n=J.Bottom,targetX:r,targetY:i,targetPosition:a=J.Top}){let[o,s]=Ol({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Ol({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Ra({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 Al(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]=kl({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,P.jsx)(Dl,{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 jl=Al({isInternal:!1}),Ml=Al({isInternal:!0});jl.displayName=`SimpleBezierEdge`,Ml.displayName=`SimpleBezierEdgeInternal`;function Nl(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]=eo({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,P.jsx)(Dl,{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 Pl=Nl({isInternal:!1}),Fl=Nl({isInternal:!0});Pl.displayName=`SmoothStepEdge`,Fl.displayName=`SmoothStepEdgeInternal`;function Il(e){return(0,E.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,P.jsx)(Pl,{...n,id:r,pathOptions:(0,E.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Ll=Il({isInternal:!1}),Rl=Il({isInternal:!0});Ll.displayName=`StepEdge`,Rl.displayName=`StepEdgeInternal`;function zl(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]=Ja({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,P.jsx)(Dl,{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 Bl=zl({isInternal:!1}),Vl=zl({isInternal:!0});Bl.displayName=`StraightEdge`,Vl.displayName=`StraightEdgeInternal`;function Hl(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]=Va({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,P.jsx)(Dl,{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 Ul=Hl({isInternal:!1}),Wl=Hl({isInternal:!0});Ul.displayName=`BezierEdge`,Wl.displayName=`BezierEdgeInternal`;var Gl={default:Wl,straight:Vl,step:Rl,smoothstep:Fl,simplebezier:Ml},Kl={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},ql=(e,t,n)=>n===J.Left?e-t:n===J.Right?e+t:e,Jl=(e,t,n)=>n===J.Top?e-t:n===J.Bottom?e+t:e,Yl=`react-flow__edgeupdater`;function Xl({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,P.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:W([Yl,`${Yl}-${s}`]),cx:ql(t,r,e),cy:Jl(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function Zl({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`;Ho.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,P.jsxs)(P.Fragment,{children:[(e===!0||e===`source`)&&(0,P.jsx)(Xl,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,P.jsx)(Xl,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Ql({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]||Gl[x];S===void 0&&(_?.(`011`,q.error011(x)),x=`default`,S=h?.default||Gl.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:N,sourceX:ee,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z}=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,...Kl};let i=no({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_});return{zIndex:Ua({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode}),...i||Kl}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Y),B=(0,E.useMemo)(()=>y.markerStart?`url('#${oo(y.markerStart,m)}')`:void 0,[y.markerStart,m]),V=(0,E.useMemo)(()=>y.markerEnd?`url('#${oo(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||ee===null||F===null||I===null||L===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)},U=a?e=>{a(e,{...y})}:void 0,te=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,P.jsx)(`svg`,{style:{zIndex:N},children:(0,P.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:U,onContextMenu:te,onMouseEnter:ne,onMouseMove:re,onMouseLeave:ie,onKeyDown:C?t=>{if(!v&&Mi.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?`${Ns}-${m}`:void 0,ref:D,...y.domAttributes,children:[!A&&(0,P.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:ee,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:B,markerEnd:V,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),w&&(0,P.jsx)(Zl,{edge:y,isReconnectable:w,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:ee,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z,setUpdateHover:k,setReconnecting:j})]})})}var $l=(0,E.memo)(Ql),eu=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function tu({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(eu,Y),b=_l(t);return(0,P.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,P.jsx)(wl,{defaultColor:e,rfId:n}),b.map(e=>(0,P.jsx)($l,{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))]})}tu.displayName=`EdgeRenderer`;var nu=(0,E.memo)(tu),ru=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function iu({children:e}){return(0,P.jsx)(`div`,{className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:X(ru)},children:e})}function au(e){let t=wc(),n=(0,E.useRef)(!1);(0,E.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var ou=e=>e.panZoom?.syncViewport;function su(e){let t=X(ou),n=Z();return(0,E.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function cu(e){return e.connection.inProgress?{...e.connection,to:ga(e.connection.to,e.transform)}:{...e.connection}}function lu(e){return e?t=>e(cu(t)):cu}function uu(e){return X(lu(e),Y)}var du=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function fu({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=X(du,Y);return a&&i&&c?(0,P.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,P.jsx)(`g`,{className:W([`react-flow__connection`,Vi(s)]),children:(0,P.jsx)(pu,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var pu=({style:e,type:t=Ri.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}=uu();if(!i)return;if(n)return(0,P.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:Vi(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 Ri.Bezier:[m]=Va(h);break;case Ri.SimpleBezier:[m]=kl(h);break;case Ri.Step:[m]=eo({...h,borderRadius:0});break;case Ri.SmoothStep:[m]=eo(h);break;default:[m]=Ja(h)}return(0,P.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};pu.displayName=`ConnectionLine`;var mu={};function hu(e=mu){(0,E.useRef)(e),Z(),(0,E.useEffect)(()=>{},[e])}function gu(){Z(),(0,E.useRef)(!1),(0,E.useEffect)(()=>{},[])}function _u({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:N,zoomOnPinch:ee,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,zoomOnDoubleClick:R,panOnDrag:z,onPaneClick:B,onPaneMouseEnter:V,onPaneMouseMove:H,onPaneMouseLeave:U,onPaneScroll:te,onPaneContextMenu:ne,paneClickDistance:re,nodeClickDistance:ie,onEdgeContextMenu:ae,onEdgeMouseEnter:oe,onEdgeMouseMove:se,onEdgeMouseLeave:ce,reconnectRadius:le,onReconnect:ue,onReconnectStart:de,onReconnectEnd:W,noDragClassName:fe,noWheelClassName:pe,noPanClassName:me,disableKeyboardA11y:he,nodeExtent:ge,rfId:_e,viewport:ve,onViewportChange:ye}){return hu(e),hu(t),gu(),au(n),su(ve),(0,P.jsx)(ol,{onPaneClick:B,onPaneMouseEnter:V,onPaneMouseMove:H,onPaneMouseLeave:U,onPaneContextMenu:ne,onPaneScroll:te,paneClickDistance:re,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:ee,zoomOnDoubleClick:R,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,panOnDrag:z,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,P.jsxs)(iu,{children:[(0,P.jsx)(nu,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ue,onReconnectStart:de,onReconnectEnd:W,onlyRenderVisibleElements:T,onEdgeContextMenu:ae,onEdgeMouseEnter:oe,onEdgeMouseMove:se,onEdgeMouseLeave:ce,reconnectRadius:le,defaultMarkerColor:M,noPanClassName:me,disableKeyboardA11y:he,rfId:_e}),(0,P.jsx)(fu,{style:h,type:m,component:g,containerStyle:_}),(0,P.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,P.jsx)(gl,{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,P.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}_u.displayName=`GraphView`;var vu=(0,E.memo)(_u),yu=({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??ji;Eo(h,g,_);let{nodesInitialized:x}=_o(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=xa(qi(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:ji,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Pi.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:{...Li},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ma,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Ni,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},bu=({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})=>Es((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 Zi({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...yu({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}=_o(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();Eo(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}=Co(e,n,r,i,a,o,l);d&&(mo(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=io(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=So(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(lc(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(uc(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=>dc(e,!0)));return}i(fc(r,new Set([...e]),!0)),a(fc(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>dc(e,!0)));return}a(fc(n,new Set([...e]))),i(fc(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(dc(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(dc(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,dc(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,dc(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]||(_o(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 wo({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:{...Li}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...yu()})}},Object.is);function xu({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)(()=>bu({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,P.jsx)(Os,{value:m,children:(0,P.jsx)(xc,{children:p})})}function Su({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)(Ds)?(0,P.jsx)(P.Fragment,{children:e}):(0,P.jsx)(xu,{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 Cu={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function wu({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:N,onSelectionContextMenu:ee,onSelectionStart:F,onSelectionEnd:I,onBeforeDelete:L,connectionMode:R,connectionLineType:z=Ri.Bezier,connectionLineStyle:B,connectionLineComponent:V,connectionLineContainerStyle:H,deleteKeyCode:U=`Backspace`,selectionKeyCode:te=`Shift`,selectionOnDrag:ne=!1,selectionMode:re=Ii.Full,panActivationKeyCode:ie=`Space`,multiSelectionKeyCode:ae=Sa()?`Meta`:`Control`,zoomActivationKeyCode:oe=Sa()?`Meta`:`Control`,snapToGrid:se,snapGrid:ce,onlyRenderVisibleElements:le=!1,selectNodesOnDrag:ue,nodesDraggable:de,autoPanOnNodeFocus:fe,nodesConnectable:pe,nodesFocusable:me,nodeOrigin:he=Js,edgesFocusable:ge,edgesReconnectable:_e,elementsSelectable:ve=!0,defaultViewport:ye=Ys,minZoom:be=.5,maxZoom:xe=2,translateExtent:Se=ji,preventScrolling:Ce=!0,nodeExtent:we,defaultMarkerColor:Te=`#b1b1b7`,zoomOnScroll:Ee=!0,zoomOnPinch:De=!0,panOnScroll:Oe=!1,panOnScrollSpeed:ke=.5,panOnScrollMode:Ae=Fi.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=tc(Tt),Pt=(0,E.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Dt?.(e)},[Dt]);return(0,P.jsx)(`div`,{"data-testid":`rf__wrapper`,...At,onScroll:Pt,style:{..._t,...Cu},ref:jt,className:W([`react-flow`,i,Nt]),id:vt,role:`application`,children:(0,P.jsxs)(Su,{nodes:e,edges:t,width:Ct,height:wt,fitView:nt,fitViewOptions:rt,minZoom:be,maxZoom:xe,nodeOrigin:he,nodeExtent:we,zIndexMode:kt,children:[(0,P.jsx)($s,{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:R,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:N,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:L,debug:Et,ariaLabelConfig:Ot,zIndexMode:kt}),(0,P.jsx)(vu,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:z,connectionLineStyle:B,connectionLineComponent:V,connectionLineContainerStyle:H,selectionKeyCode:te,selectionOnDrag:ne,selectionMode:re,deleteKeyCode:U,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:ee,onSelectionStart:F,onSelectionEnd:I,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,P.jsx)(Ks,{onSelectionChange:A}),Ve,(0,P.jsx)(Bs,{proOptions:ot,position:at}),(0,P.jsx)(Rs,{rfId:Mt,disableKeyboardA11y:ut})]})})}var Tu=_c(wu);q.error014();function Eu({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,P.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 Du({radius:e,className:t}){return(0,P.jsx)(`circle`,{cx:e,cy:e,r:e,className:W([`react-flow__background-pattern`,`dots`,t])})}var Ou;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Ou||={});var ku={[Ou.Dots]:1,[Ou.Lines]:1,[Ou.Cross]:6},Au=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function ju({id:e,variant:t=Ou.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(Au,Y),m=r||ku[t],h=t===Ou.Dots,g=t===Ou.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,P.jsxs)(`svg`,{className:W([`react-flow__background`,l]),style:{...c,...kc,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,P.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,P.jsx)(Du,{radius:y/2,className:u}):(0,P.jsx)(Eu,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,P.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}ju.displayName=`Background`;var Mu=(0,E.memo)(ju);function Nu(){return(0,P.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,P.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Pu(){return(0,P.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,P.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Fu(){return(0,P.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,P.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 Iu(){return(0,P.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,P.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 Lu(){return(0,P.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,P.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 Ru({children:e,className:t,...n}){return(0,P.jsx)(`button`,{type:`button`,className:W([`react-flow__controls-button`,t]),...n,children:e})}var zu=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Bu({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(zu,Y),{zoomIn:y,zoomOut:b,fitView:x}=wc(),S=()=>{y(),a?.()},C=()=>{b(),o?.()},w=()=>{x(i),s?.()},T=()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)};return(0,P.jsxs)(zs,{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,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(Ru,{onClick:S,className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,P.jsx)(Nu,{})}),(0,P.jsx)(Ru,{onClick:C,className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,P.jsx)(Pu,{})})]}),n&&(0,P.jsx)(Ru,{className:`react-flow__controls-fitview`,onClick:w,title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,P.jsx)(Fu,{})}),r&&(0,P.jsx)(Ru,{className:`react-flow__controls-interactive`,onClick:T,title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,P.jsx)(Lu,{}):(0,P.jsx)(Iu,{})}),u]})}Bu.displayName=`Controls`;var Vu=(0,E.memo)(Bu);function Hu({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,P.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 Uu=(0,E.memo)(Hu),Wu=e=>e.nodes.map(e=>e.id),Gu=e=>e instanceof Function?e:()=>e;function Ku({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Uu,onClick:o}){let s=X(Wu,Y),c=Gu(t),l=Gu(e),u=Gu(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,P.jsx)(P.Fragment,{children:s.map(e=>(0,P.jsx)(Ju,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function qu({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}=wa(r);return{node:r,x:i,y:a,width:o,height:s}},Y);return!l||l.hidden||!Ta(l)?null:(0,P.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 Ju=(0,E.memo)(qu),Yu=(0,E.memo)(Ku),Xu=200,Zu=150,Qu=e=>!e.hidden,$u=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?ua(qi(e.nodeLookup,{filter:Qu}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},ed=`react-flow__minimap-desc`;function td({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($u,Y),M=e?.width??Xu,N=e?.height??Zu,ee=C.width/M,F=C.height/N,I=Math.max(ee,F),L=I*M,R=I*N,z=b*I,B=C.x-(L-C.width)/2-z,V=C.y-(R-C.height)/2-z,H=L+z*2,U=R+z*2,te=`${ed}-${T}`,ne=(0,E.useRef)(0),re=(0,E.useRef)();ne.current=I,(0,E.useEffect)(()=>{if(S.current&&D)return re.current=Uo({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,P.jsx)(zs,{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*I: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,P.jsxs)(`svg`,{width:M,height:N,viewBox:`${B} ${V} ${H} ${U}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":te,ref:S,onClick:ie,children:[oe&&(0,P.jsx)(`title`,{id:te,children:oe}),(0,P.jsx)(Yu,{onClick:ae,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,P.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${B-z},${V-z}h${H+z*2}v${U+z*2}h${-H-z*2}z
12
+ M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}td.displayName=`MiniMap`,(0,E.memo)(td);var nd=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,rd={[is.Line]:`right`,[is.Handle]:`bottom-right`};function id({nodeId:e,position:t,variant:n=is.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=Uc(),y=typeof e==`string`?e:v,b=Z(),x=(0,E.useRef)(null),S=n===is.Handle,C=X((0,E.useCallback)(nd(S&&p),[S,p]),Y),w=(0,E.useRef)(null),T=t??rd[n];return(0,E.useEffect)(()=>{if(!(!x.current||!y))return w.current||=gs({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=So([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...Ea({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,P.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)(id);var ad=[`Aprendiz`,`Explorador`,`Practicante`,`Experto`,`Maestro`,`Leyenda`];function od(e){return e<50?ad[0]:e<150?ad[1]:e<300?ad[2]:e<500?ad[3]:e<800?ad[4]:ad[5]}function sd(e,t){return t===`nino`?`¡${e} gotas de miel! 🍯`:t===`adolescente`?`+${e} XP 🔥`:`${e} puntos ganados`}function cd(){let{xpTotal:e,logrosDesbloqueados:t,program:n,desbloquearLogro:r}=M(),i=od(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=>sd(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 ld({tema:e}){let{vidas:t,racha:n}=M(),{xpTotal:r,nivelActual:i,formatXP:a}=cd();return(0,P.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,P.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,P.jsx)(`span`,{className:`text-amber-400 text-base`,children:`🐝`}),(0,P.jsx)(`span`,{className:`text-white font-bold text-sm truncate max-w-[200px]`,children:e})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,P.jsx)(`div`,{className:`flex items-center gap-0.5`,children:Array.from({length:3}).map((e,n)=>(0,P.jsx)(`span`,{className:`text-lg transition-all duration-300 ${n<t?`opacity-100`:`opacity-20 grayscale`}`,children:`❤️`},n))}),n>=2&&(0,P.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,P.jsx)(`span`,{className:n>=3?`animate-bounce`:``,children:`🔥`}),(0,P.jsx)(`span`,{children:n})]})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,P.jsxs)(`div`,{className:`flex flex-col items-end gap-0.5`,children:[(0,P.jsx)(`span`,{className:`text-amber-400 font-bold text-xs tabular-nums`,children:a(r)}),(0,P.jsx)(`div`,{className:`w-24 h-1 rounded-full bg-gray-700 overflow-hidden`,children:(0,P.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,P.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 ud(e,t={}){for(let n of e)n.valueString===void 0?n.valueMap&&(t[n.key]=ud(n.valueMap,{})):t[n.key]=n.valueString;return t}function dd(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 fd({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,...ud(i.dataModelUpdate.contents)}),i.beginRendering&&(r=i.beginRendering.root)}return{compMap:t,dataModel:n,rootId:r}},[e]),p=(0,E.useCallback)(e=>e.path?dd(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,P.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,P.jsx)(`span`,{className:`text-white/30 text-sm animate-pulse`,children:`Cargando contenido...`})}):!f||!u[f]?(0,P.jsx)(`div`,{className:`flex items-center justify-center py-8 text-white/20 text-sm`,children:`Sin contenido disponible`}):(0,P.jsx)(`div`,{className:`a2ui-surface space-y-0`,children:(0,P.jsx)(pd,{id:f,compMap:u,resolveValue:p,selections:i,setSelections:a,textValues:o,setTextValues:s,onAction:m,isSubmitting:c,feedback:r})})}function pd(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,P.jsx)(hd,{...e,props:r,style:i});case`Row`:return(0,P.jsx)(gd,{...e,props:r,style:i});case`Card`:return(0,P.jsx)(_d,{...e,props:r,style:i});case`Text`:return(0,P.jsx)(vd,{...e,props:r,style:i});case`Button`:return(0,P.jsx)(yd,{...e,props:r,style:i});case`MultipleChoice`:return(0,P.jsx)(bd,{...e,props:r,style:i});case`TextField`:return(0,P.jsx)(xd,{...e,props:r,style:i});case`List`:return(0,P.jsx)(Sd,{...e,props:r,style:i});case`Divider`:return(0,P.jsx)(Cd,{props:r,style:i});case`Image`:return(0,P.jsx)(wd,{...e,props:r,style:i});default:return null}}function md(e,t,n){return(e.children?.explicitList??[]).map(e=>(0,P.jsx)(pd,{...n,id:e,weight:t[e]?.weight},e))}function hd({props:e,compMap:t,style:n,...r}){return(0,P.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:md(e,t,{...r,compMap:t})})}function gd({props:e,compMap:t,style:n,...r}){return(0,P.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:md(e,t,{...r,compMap:t})})}function _d({props:e,compMap:t,style:n,...r}){return(0,P.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,P.jsx)(pd,{...r,compMap:t,id:e.child})})}function vd({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,P.jsx)(`strong`,{className:`font-bold`,children:e.slice(2,-2)},t):e.startsWith(`*`)&&e.endsWith(`*`)?(0,P.jsx)(`em`,{className:`italic`,children:e.slice(1,-1)},t):e.startsWith("`")&&e.endsWith("`")?(0,P.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,P.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,P.jsx)(`pre`,{className:s,style:n,children:r}):(0,P.jsx)(`p`,{className:s,style:n,children:a(r)})}function yd({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,P.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,P.jsxs)(P.Fragment,{children:[(0,P.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,P.jsx)(pd,{...o,compMap:t,resolveValue:n,onAction:r,isSubmitting:i,id:e.child}):e.label??`Enviar`})}function bd({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,P.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,P.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,P.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,P.jsx)(`span`,{className:`leading-snug`,children:r})]},t)})})}function xd({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,P.jsxs)(`div`,{className:`space-y-2`,style:a,children:[t.label&&(0,P.jsx)(`label`,{className:`text-xs font-semibold text-white/45 uppercase tracking-wider`,children:typeof t.label==`string`?t.label:t.label?.literalString??``}),(0,P.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 Sd({props:e,compMap:t,style:n,...r}){let i=e.direction??`vertical`,a=e.items?.explicitList??[];return(0,P.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,P.jsx)(pd,{...r,compMap:t,id:e},e))})}function Cd({props:e,style:t}){return(0,P.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 wd({props:e,resolveValue:t,style:n}){let r=typeof e.url==`string`?e.url:t(e.url??{literalString:``});return r?(0,P.jsx)(`div`,{className:`rounded-xl overflow-hidden border border-white/[0.08]`,style:n,children:(0,P.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 Td({feedback:e}){return(0,P.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,P.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,P.jsx)(`span`,{className:`text-xl`,children:e.correcto?`✅`:`💡`}),(0,P.jsx)(`span`,{className:`text-sm font-bold flex-1 ${e.correcto?`text-emerald-300`:`text-blue-300`}`,children:e.mensajePrincipal}),e.xpGanado>0&&(0,P.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,P.jsx)(`p`,{className:`text-xs text-white/40 pl-9 leading-relaxed`,children:e.razonamiento}),!e.correcto&&e.pistaSiIncorrecto&&(0,P.jsxs)(`p`,{className:`text-xs text-amber-300/60 pl-9 leading-relaxed`,children:[`💡 `,e.pistaSiIncorrecto]})]})}var Ed=`lesson-node`;function Q(e,t,n=`body`){return{id:e,component:{Text:{text:{literalString:t},usageHint:n}}}}function Dd(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 Od(e,t,n,r){return{id:e,component:{Row:{children:{explicitList:t},distribution:n,wrap:r}}}}function kd(e,t){return{id:e,component:{Card:{child:t}}}}function Ad(e,t,n,r=[],i=`primary`){return{id:e,component:{Button:{label:t,variant:i,action:{name:n,context:r}}}}}function jd(e,t,n=1){return{id:e,component:{MultipleChoice:{options:t.map(e=>({label:{literalString:e},value:{literalString:e}})),maxAllowedSelections:n}}}}function Md(e,t,n,r=!1){return{id:e,component:{TextField:{label:{literalString:t},placeholder:n,textFieldType:r?`multiline_code`:`multiline`}}}}function Nd(e,t,n=`vertical`){return{id:e,component:{List:{items:{explicitList:t},direction:n}}}}function Pd(e,t,n=`contain`){return{id:e,component:{Image:{url:{literalString:t},fit:n}}}}function Fd(e){let t=e.contenido?.microEval;if(!t)return{components:[],children:[]};let n=[],r=[];if(n.push(Dd(`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(jd(`me-mc`,i)),r.push(`me-mc`),n.push(Ad(`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(Md(`me-tf`,``,i?`Escribe el código aquí...`:`Escribe tu respuesta...`,i)),r.push(`me-tf`),n.push(Ad(`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 Id(e){let t=e.contenido,{components:n,children:r}=Fd(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],Ld(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`),jd(`q-mc`,s),Ad(`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),Ld(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),kd(`ex-card`,`ex-card-inner`),$(`ex-card-inner`,[`ex-label`,`ex-enunciado`]),Q(`ex-label`,`📝 Ejercicio`,`label`),Q(`ex-enunciado`,s.enunciado,`body`),Md(c,`Tu respuesta`,`Escribe aquí...`),Ad(`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`)),Ld(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)=>Od(`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]),kd(`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`),Nd(`reto-steps`,c),...u,...d,...f,Q(`reto-crit-label`,`Criterios de éxito`,`label`),Nd(`reto-crits`,l),...p,...n],Ld(i,o)}if(e.tipoVisual===`code_block`&&t?.codigo){let e=t.codigo;return i=[$(`root`,[`code-lang-row`,`code-block`,`code-desc`,...r]),Od(`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],Ld(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]),Pd(`svg-img`,a,`contain`),...n],Ld(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)=>kd(`inf-sec-${t}`,`inf-sec-${t}-inner`)),c=e.map((e,t)=>Od(`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]),Nd(`inf-list`,a),...s,...c,...l,...u,...n],Ld(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)=>[kd(`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`),Nd(`gif-list`,a,`horizontal`),...s,...n],Ld(i,o)}if(e.tipoVisual===`audio_ai`&&t?.audio){let a=t.audio;return i=[$(`root`,[`aud-card`,`aud-play-btn`,...r]),kd(`aud-card`,`aud-card-inner`),$(`aud-card-inner`,[`aud-icon-row`,`aud-title`,`aud-text`],`center`,`center`),Od(`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`),Ad(`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],Ld(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(jd(`eval-q-${t}-mc`,e.opciones))):(a.push(`eval-q-${t}-tf`),r.push(Md(`eval-q-${t}-tf`,``,`Escribe tu respuesta...`))),t<n.length-1&&(a.push(`eval-div-${t}`),r.push(Dd(`eval-div-${t}`)))}),i=[$(`root`,[...a,`eval-submit`]),...r,Ad(`eval-submit`,`Enviar evaluación ✓`,`submit_evaluation`,[{key:`nodoId`,value:{literalString:e.id}}])],Ld(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(kd(`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`)),Ld(i,o)}return i=[$(`root`,[`fallback-text`,...r]),Q(`fallback-text`,e.concepto||`Contenido en preparación...`,`body`),...n],Ld(i,o)}function Ld(e,t){return[{surfaceUpdate:{surfaceId:Ed,components:e}},{dataModelUpdate:{surfaceId:Ed,contents:t}},{beginRendering:{surfaceId:Ed,root:`root`,styles:{primaryColor:`#3b82f6`}}}]}var Rd={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 zd({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?Id(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 N(`/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?Rd[e.tipoPedagogico]??Rd.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,P.jsxs)(P.Fragment,{children:[u&&(0,P.jsx)(`div`,{className:`absolute inset-0 z-30`,style:{background:`rgba(8,13,26,0.55)`,backdropFilter:`blur(1px)`},onClick:n}),(0,P.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,P.jsx)(`div`,{style:{height:`3px`,background:h.color,borderRadius:`20px 20px 0 0`,opacity:.7}}),(0,P.jsxs)(`div`,{className:`flex-shrink-0 px-5 py-4`,style:{borderBottom:`1px solid rgba(255,255,255,0.05)`},children:[(0,P.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,P.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-1.5`,children:[h&&(0,P.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,P.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,P.jsxs)(`span`,{className:`text-[10px] font-bold text-amber-400/70`,children:[`⭐ `,e.xpRecompensa,` XP`]}),_&&(0,P.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,P.jsx)(`h2`,{className:`text-white font-bold text-[15px] leading-tight`,children:e?.titulo??``}),e?.concepto&&(0,P.jsx)(`p`,{className:`text-[11px] text-white/35 leading-snug`,children:e.concepto})]}),(0,P.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,P.jsx)(`div`,{className:`mt-3 h-0.5 rounded-full`,style:{background:`${h.color}12`},children:(0,P.jsx)(`div`,{className:`h-full rounded-full transition-all duration-700`,style:{width:_||i?.correcto?`100%`:`0%`,background:h.color}})})]}),(0,P.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-4 space-y-4 min-h-0`,children:g?(0,P.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-10 space-y-3 text-center`,children:[(0,P.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,P.jsx)(`p`,{className:`text-white/50 font-semibold text-sm`,children:`Nodo bloqueado`}),(0,P.jsx)(`p`,{className:`text-white/25 text-xs`,children:`Completa los nodos anteriores primero.`})]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(fd,{messages:d,onAction:f,isLoading:d.length===0,feedback:i}),i&&(0,P.jsx)(Td,{feedback:i}),_&&!i&&(0,P.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,P.jsx)(`span`,{className:`text-emerald-400 text-sm font-semibold`,children:`✅ Ya completaste este nodo`})})]})}),!g&&!_&&(0,P.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,P.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,P.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 Bd({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,P.jsx)(`div`,{className:`pointer-events-none fixed z-50 select-none`,style:{left:n,top:r},children:(0,P.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 Vd={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 Hd({data:e}){let{nodo:t,isActive:n,isSelected:r,onClick:i}=e,a=Vd[t.tipoPedagogico]??Vd.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,P.jsxs)(`div`,{className:`relative select-none transition-all duration-300`,style:{width:`200px`,opacity:o?.42:1},children:[(0,P.jsx)(qc,{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,P.jsx)(qc,{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,P.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,P.jsx)(`div`,{style:{height:`3px`,background:s?`#22c55e`:a.band,opacity:o?.3:1}}),(0,P.jsxs)(`div`,{className:`px-3 py-2.5 space-y-2`,children:[(0,P.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,P.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,P.jsxs)(`div`,{className:`flex items-center gap-1`,children:[n&&c&&(0,P.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,P.jsxs)(`span`,{className:`text-[9px] font-bold text-amber-400/70`,children:[`⭐`,t.xpRecompensa]})]})]}),(0,P.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,P.jsx)(`span`,{className:`text-[22px] leading-none flex-shrink-0 mt-0.5 ${o?`grayscale`:``}`,children:o?`🔒`:s?`✅`:a.icon}),(0,P.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,P.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,P.jsx)(`p`,{className:`text-[10px] text-white/30 mt-0.5 line-clamp-1 leading-snug`,children:t.concepto})]})]}),!o&&(0,P.jsxs)(`div`,{className:`flex items-center justify-between pt-1 border-t`,style:{borderColor:`${l}30`},children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,P.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,P.jsx)(`span`,{className:`text-[9px] text-white/30`,children:s?`Completado`:n?`En curso`:`Disponible`})]}),(0,P.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,P.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,P.jsx)(`div`,{className:`absolute inset-[-3px] rounded-[18px] animate-ping pointer-events-none`,style:{border:`1px solid ${a.band}30`,animationDuration:`2s`}})]})}var Ud={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:``}},Wd=1e4,Gd=40,Kd=2;function qd({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 N(`/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<Gd?(o.current++,o.current>=Kd&&(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,Wd)}).catch(()=>{d(!0)}),()=>{s.current&&clearInterval(s.current),a.current?.getTracks().forEach(e=>e.stop())}},[n,f]),u||!n)return null;let p=Ud[c];return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`video`,{ref:r,style:{display:`none`},muted:!0,playsInline:!0}),(0,P.jsx)(`canvas`,{ref:i,style:{display:`none`}}),(0,P.jsxs)(`div`,{title:`Gemma te observa: ${p.label}`,className:`flex items-center gap-1.5 select-none`,style:{opacity:.6},children:[(0,P.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,P.jsx)(`span`,{className:`text-[9px] font-medium`,style:{color:p.color},children:p.label})]})]})}var Jd={hlNode:Hd};function Yd(){return(0,P.jsx)(xu,{children:(0,P.jsx)(Xd,{})})}function Xd(){let{flowToScreenPosition:e,getViewport:t}=wc(),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}=cd(),[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,P.jsxs)(`div`,{className:`absolute inset-0 flex flex-col overflow-hidden`,style:{background:`#080d1a`},children:[(0,P.jsx)(ld,{tema:a.tema}),(0,P.jsx)(`div`,{className:`absolute top-2 right-32 z-20 flex items-center`,children:(0,P.jsx)(qd,{sessionId:v??``,onAttentionLost:()=>C(!0),enabled:!!v})}),S&&(0,P.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,P.jsx)(`span`,{className:`text-4xl`,children:`👀`}),(0,P.jsx)(`p`,{className:`text-white font-bold text-lg`,children:`¿Sigues ahí?`}),(0,P.jsx)(`p`,{className:`text-white/50 text-sm`,children:`Parece que te alejaste. Haz clic para continuar.`}),(0,P.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,P.jsx)(`div`,{className:`absolute top-14 right-4 z-20`,children:(0,P.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,P.jsxs)(`div`,{ref:n,className:`flex-1 relative`,children:[(0,P.jsxs)(Tu,{nodes:k,edges:A,nodeTypes:Jd,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,P.jsx)(Mu,{color:`#1a2035`,gap:24,size:1.5,style:{opacity:.7}}),(0,P.jsx)(Vu,{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,P.jsx)(Bd,{xp:c.xp,animKey:c.key,x:b.x,y:b.y}),(0,P.jsx)(zd,{nodo:w,position:r,onClose:d,onComplete:O})]})]})}function Zd(){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&&N(`/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 Qd(){let{program:e,perfil:t}=M(),{preguntas:n,preguntaActual:r,total:i,esFinal:a,responder:o,finalizarEvaluacion:s,enviando:c}=Zd(),[l,u]=(0,E.useState)(``);if(!e||n.length===0)return(0,P.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center`,children:(0,P.jsx)(`p`,{className:`text-gray-400`,children:`Cargando evaluación...`})});let d=n[r],f=e=>{o(e),u(``)};return(0,P.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-6`,children:(0,P.jsxs)(`div`,{className:`w-full max-w-lg`,children:[(0,P.jsxs)(`div`,{className:`text-center mb-6`,children:[(0,P.jsx)(`div`,{className:`text-4xl mb-2`,children:`📝`}),(0,P.jsx)(`h2`,{className:`text-xl font-bold text-white`,children:`Evaluación Final`}),(0,P.jsx)(`p`,{className:`text-sm text-gray-400 mt-1`,children:e.tema})]}),(0,P.jsxs)(`div`,{className:`mb-6`,children:[(0,P.jsxs)(`div`,{className:`flex justify-between text-xs text-gray-500 mb-1`,children:[(0,P.jsxs)(`span`,{children:[`Pregunta `,r+1,` de `,i]}),(0,P.jsxs)(`span`,{className:`text-blue-400`,children:[Math.round(r/i*100),`%`]})]}),(0,P.jsx)(`div`,{className:`h-1.5 rounded-full bg-gray-800`,children:(0,P.jsx)(`div`,{className:`h-full rounded-full bg-blue-500 transition-all duration-300`,style:{width:`${r/i*100}%`}})})]}),(0,P.jsxs)(`div`,{className:`bg-gray-900 rounded-2xl border border-gray-800 p-6 space-y-4`,children:[(0,P.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,P.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,P.jsx)(`p`,{className:`text-sm text-white font-medium`,children:d.pregunta})]}),d.tipo===`multiple_choice`&&d.opciones&&(0,P.jsx)(`div`,{className:`space-y-2`,children:d.opciones.map((e,t)=>(0,P.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,P.jsxs)(`span`,{className:`font-bold text-blue-400 mr-2`,children:[String.fromCharCode(65+t),`.`]}),e]},t))}),d.tipo===`respuesta_corta`&&(0,P.jsxs)(`div`,{className:`space-y-3`,children:[(0,P.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,P.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,P.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,P.jsx)(`p`,{className:`text-center text-xs text-gray-600 mt-4`,children:d.tipo===`multiple_choice`?`📊 Selección múltiple`:`✍️ Respuesta corta`})]})})}function $d({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 N(`/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,P.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,P.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,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`span`,{className:`text-5xl`,children:`🎉`}),(0,P.jsx)(`p`,{className:`text-white font-bold text-lg text-center`,children:`¡Gracias por tu calificación!`}),(0,P.jsx)(`p`,{className:`text-white/40 text-sm text-center`,children:`Esto nos ayuda a mejorar la experiencia.`})]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,P.jsx)(`span`,{className:`text-5xl`,children:`🏆`}),(0,P.jsx)(`h2`,{className:`text-white font-bold text-xl`,children:`¡Lección completada!`}),(0,P.jsx)(`p`,{className:`text-white/40 text-sm text-center`,children:`¿Cómo fue tu experiencia de aprendizaje?`})]}),(0,P.jsx)(`div`,{className:`flex gap-2`,children:[1,2,3,4,5].map(e=>(0,P.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,P.jsx)(`p`,{className:`text-white/50 text-xs -mt-2`,children:[``,`¡Puedes mejorar!`,`Regular`,`Bien`,`Muy bien`,`¡Excelente!`][n]}),(0,P.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,P.jsxs)(`div`,{className:`flex gap-2.5 w-full`,children:[(0,P.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,P.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 ef(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 tf(){let{program:e,perfil:t,puntajeEvaluacion:n,xpTotal:r,logrosDesbloqueados:i,nodosCompletados:a,tiempoInicioSesion:o,reset:s,setScreen:c}=M(),{nivelActual:l,formatXP:u}=cd(),[d,f]=(0,E.useState)(!1);(0,E.useEffect)(()=>{let e=setTimeout(()=>f(!0),1200);return()=>clearTimeout(e)},[]);let p=n??0,m=ef(p),h=o?Math.round((Date.now()-o)/6e4):0,g=e?.gamificacion.logros.filter(e=>i.includes(e.id))??[];return(0,P.jsxs)(P.Fragment,{children:[d&&(0,P.jsx)($d,{onClose:()=>f(!1)}),(0,P.jsx)(`div`,{className:`min-h-screen bg-gray-950 flex items-center justify-center p-6`,children:(0,P.jsxs)(`div`,{className:`w-full max-w-md space-y-6`,children:[(0,P.jsxs)(`div`,{className:`text-center space-y-3`,children:[(0,P.jsx)(`div`,{className:`text-6xl`,children:m.emoji}),(0,P.jsx)(`h2`,{className:`text-3xl font-bold ${m.color}`,children:m.texto}),(0,P.jsxs)(`div`,{className:`text-6xl font-black text-white`,children:[p,`%`]}),(0,P.jsx)(`p`,{className:`text-gray-400 text-sm`,children:e?.gamificacion.mensajeCelebracion})]}),(0,P.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,P.jsxs)(`div`,{className:`rounded-xl bg-gray-900 border border-gray-800 p-3 text-center`,children:[(0,P.jsx)(`span`,{className:`text-2xl`,children:e.emoji}),(0,P.jsx)(`p`,{className:`text-sm font-bold text-white mt-1`,children:e.value}),(0,P.jsx)(`p`,{className:`text-xs text-gray-500`,children:e.label})]},e.label))}),(0,P.jsxs)(`div`,{className:`rounded-xl bg-blue-500/10 border border-blue-500/30 p-4 text-center`,children:[(0,P.jsx)(`p`,{className:`text-xs text-blue-400/70 uppercase tracking-widest`,children:`Nivel alcanzado`}),(0,P.jsx)(`p`,{className:`text-2xl font-black text-blue-400 mt-1`,children:l})]}),g.length>0&&(0,P.jsxs)(`div`,{className:`space-y-2`,children:[(0,P.jsx)(`p`,{className:`text-xs text-gray-500 font-bold uppercase tracking-widest`,children:`Logros desbloqueados`}),(0,P.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:g.map(e=>(0,P.jsxs)(`div`,{className:`rounded-xl bg-gray-900 border border-gray-800 p-3 flex items-center gap-2`,children:[(0,P.jsx)(`span`,{className:`text-2xl`,children:e.emoji}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`text-xs font-bold text-white`,children:e.nombre}),(0,P.jsxs)(`p`,{className:`text-[10px] text-gray-500`,children:[`+`,e.xp,` XP`]})]})]},e.id))})]}),(0,P.jsxs)(`div`,{className:`flex gap-3`,children:[(0,P.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,P.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 nf(){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 N(`/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,P.jsx)(`div`,{className:`flex-1 flex flex-col min-h-0 -m-4 bg-gray-950 items-center justify-center flex`,children:(0,P.jsxs)(`div`,{className:`text-center`,children:[(0,P.jsx)(`div`,{className:`text-6xl mb-4 animate-pulse`,children:`🐝`}),(0,P.jsx)(`p`,{className:`text-blue-400 font-bold`,children:`Cargando HiveLearn...`})]})});let c=e===`loading`&&!n&&!t?`sessions`:e;return(0,P.jsxs)(`div`,{className:`flex-1 flex flex-col min-h-0 -m-4 bg-gray-950 overflow-hidden relative`,children:[c===`provider-select`&&(0,P.jsx)(ee,{}),c===`sessions`&&(0,P.jsx)(I,{}),c===`profile`&&(0,P.jsx)(B,{}),c===`goal`&&(0,P.jsx)(te,{}),c===`loading`&&(0,P.jsx)(de,{}),c===`canvas`&&(0,P.jsx)(Yd,{}),c===`evaluation`&&(0,P.jsx)(Qd,{}),c===`result`&&(0,P.jsx)(tf,{})]})}export{nf as LessonCanvas};